導航:首頁 > 配伺服器 > os如何訪問es的opc伺服器

os如何訪問es的opc伺服器

發布時間:2022-05-01 19:46:42

① opc客戶端如何遠程訪問opc伺服器的c#代碼

public void ListAll(Guid catid, out OpcServers[] serverslist)
{
serverslist = null;
Dispose();
Guid guid = new Guid("13486D51-4821-11D2-A494-3CB306C10000");
Type typeoflist = Type.GetTypeFromCLSID(guid);
OPCListObj = Activator.CreateInstance(typeoflist);
ifList = (IOPCServerList)OPCListObj;
if (ifList == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

ifList.EnumClassesOfCategories(1, ref catid, 0, ref catid, out EnumObj);
if (EnumObj == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

ifEnum = (IEnumGUID)EnumObj;
if (ifEnum == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

int maxcount = 300;
IntPtr ptrGuid = Marshal.AllocCoTaskMem(maxcount * 16);
int count = 0;
ifEnum.Next(maxcount, ptrGuid, out count);
if (count < 1)
{ Marshal.FreeCoTaskMem(ptrGuid); return; }

serverslist = new OpcServers[count];

byte[] guidbin = new byte[16];
int runGuid = (int)ptrGuid;
for (int i = 0; i < count; i++)
{
serverslist[i] = new OpcServers();
Marshal.Copy((IntPtr)runGuid, guidbin, 0, 16);
serverslist[i].ClsID = new Guid(guidbin);
ifList.GetClassDetails(ref serverslist[i].ClsID,
out serverslist[i].ProgID, out serverslist[i].ServerName);
runGuid += 16;
}

Marshal.FreeCoTaskMem(ptrGuid);
Dispose();
}

② 如何通過代碼連接遠程OPC伺服器

第62行的代碼,DCOM既然是遠程伺服器,那它就應該是可以運行在另外一台機器上,然後被其他機器的客戶端所使用。所以C++的客戶端代碼里,你可以通過編程的方式指定伺服器的名稱,但是對於C#來說,因為連接到DCOM伺服器並激活COM對象的操作是由CLR完成的,沒有辦法在代碼里指定。不過不用著急,指定DCOM伺服器還有另外一個方式,就是修改注冊表的鍵值,告訴本機的COM運行庫,伺服器在另外一台機器上,請把下面的鍵值添加到客戶端機器的注冊表裡:

HKEY_CLASSES_ROOT\APPID\{5e9ddec7-5767-11cf-beab-00aa006c3606}\RemoteServerName=<機器名>

下面的是我的代碼
public void ListAll(Guid catid, out OpcServers[] serverslist)
{
serverslist = null;
Dispose();
Guid guid = new Guid("13486D51-4821-11D2-A494-3CB306C10000");
Type typeoflist = Type.GetTypeFromCLSID(guid);
OPCListObj = Activator.CreateInstance(typeoflist);
ifList = (IOPCServerList)OPCListObj;
if (ifList == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

ifList.EnumClassesOfCategories(1, ref catid, 0, ref catid, out EnumObj);
if (EnumObj == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

ifEnum = (IEnumGUID)EnumObj;
if (ifEnum == null)
Marshal.ThrowExceptionForHR(HRESULTS.E_ABORT);

int maxcount = 300;
IntPtr ptrGuid = Marshal.AllocCoTaskMem(maxcount * 16);
int count = 0;
ifEnum.Next(maxcount, ptrGuid, out count);
if (count < 1)
{ Marshal.FreeCoTaskMem(ptrGuid); return; }

serverslist = new OpcServers[count];

byte[] guidbin = new byte[16];
int runGuid = (int)ptrGuid;
for (int i = 0; i < count; i++)
{
serverslist[i] = new OpcServers();
Marshal.Copy((IntPtr)runGuid, guidbin, 0, 16);
serverslist[i].ClsID = new Guid(guidbin);
ifList.GetClassDetails(ref serverslist[i].ClsID,
out serverslist[i].ProgID, out serverslist[i].ServerName);
runGuid += 16;
}

Marshal.FreeCoTaskMem(ptrGuid);
Dispose();
}

用此代碼連接本地OPC伺服器是沒有問題的,但是通過上面對注冊表的編輯,將伺服器換成遠程伺服器,就不能訪問,代碼運行起來還是連接的是本地OPC伺服器。請教各位我該如何設置才能連接遠程OPC伺服器

③ opc伺服器和客戶端如何連接,通訊

伺服器的話要看,如果是client-server結構的DCS,伺服器位於上位和控制器之間,他將你的指令和現場數據通過伺服器來經過交換,伺服器一般是冗餘配置,如果是並行結構來說沒有所謂伺服器的概念,只有個工程師站,程序的下裝通過工程師站,但是數據的獲取和指令的下達通過操作員站就行,這個好處就是當工程師站壞了的話操作員站可以正常工作
OPC伺服器的作用是通過OPC協議將DCS的數據取出,並開放,一般一個OPC伺服器下面連接一個或多個客戶端,客戶端通過安裝相應的軟體(也支持OPC協議),來取得DCS的協議

樂拾薌逸盆然朵邢瀏曄鏈特磊楓待謹璀楷塘丞彰

④ OPC客戶端如何與服務端遠程通訊,在同一區域網內,沒開防火牆

首先聲明變數,這樣才能觸發事件(DataChange)來獲取實時數據。連接不同的OPC伺服器只要改變其伺服器名稱和OPC伺服器所在的計算機名稱即可。

⑤ opc伺服器是什麼是硬體還是軟體啊!!麻煩知道的內行幫忙解釋解釋~~

opc既不是硬體也不是軟體。OPC是一種通訊規范,OPC基金會組織規定的一套規范,按照這個規范去把程序寫出來,包括一個OPC伺服器程序和一個OPC客戶端程序,只要是按規范寫的,不管是誰寫的,就能保證OPC伺服器能被OPC客戶端訪問。

opc伺服器向下可以讀取設備的數據,比如PLC、DCS等等,但這部分OPC規范是不管的,只要廠家用任意介面任意方法把設備數據讀到就OK,然後OPC伺服器程序把這些讀到的數據按規范要求開放在網路上,其他任意OPC客戶端程序,可以遠程瀏覽這些數據,並選擇讀取這些數據中需要的。

(5)os如何訪問es的opc伺服器擴展閱讀

OPC的工作原理

OPC以OLE/COM機製作為應用程序的通信標准,而OLE/COM是一種客戶端/伺服器模式,具有語言無關性、代碼重用性、易於集成性等優點。

OPC伺服器中的代碼確定了伺服器所存取的設備和數據、數據項的命名規則和伺服器存取數據的細節,不管現場設備以何種形式存在,客戶都以統一的方式去訪問,從而保證軟體對客戶的透明性,使得用戶完全從低層的開發中脫離出來。

客戶應用程序僅須使用標准介面和伺服器通信,而並不需要知道底層的實現細節。通過OPC伺服器,OPC客戶既可以直接讀寫物理VO設備的數據,也可操作SCADA,DCS等系統的埠變數(只要該系統提供OPC服務)。

⑥ opc伺服器設置(關鍵詞 wincc opc DCOM)win7 64位旗艦版,對DCOM進行設置

摘要 親,解決方法是使用 64 位版本的 DCOMCNFG。 運行 64 位版本的 mmc.exe,並運行以下命令行載入 64 位版本的組件服務管理單元。

⑦ 工業觸摸屏怎麼訪問OPC伺服器

觸摸屏訪問PC上的OPC伺服器或者組態軟體可以走Modbus RTU或者Modbus TCP協議,可以使用上海迅饒自動化科技有公司的OPCBridge軟體。這個軟體已經把OPC伺服器轉成Modbus伺服器了。
一般的觸摸屏,不管哪個品牌都支持Modbus協議的。沒有網口就走Modbus RTU,有網口則走Modbus TCP協議比較快。

⑧ 手機怎麼訪問OPC伺服器

是可以的,只要在PC上安裝上海迅饒自動化科技有限公司的OPCBridge.exe軟體。要是有什麼不清楚的地方,可以Q我:(1302198481)

OPCBridge.exe軟體主要用來解決遠程訪問OPC伺服器遇到的DCOM配置問題(遠程OPC缺點:通訊不穩定,DCOM配置麻煩,不利於維護)。在OPC伺服器運行的電腦上安裝OPCBridge.exe軟體後,通過此軟體讀取OPC伺服器並轉換成Modbus Server,這樣其它電腦僅僅通過訪問Modbus Server,就可以實現監視和控制(讀寫OPC Server)。另外此軟體內嵌一個WEB伺服器,可以用瀏覽器(IE,Chrome,火狐、Opera和蘋果等等)去瀏覽Item,並且控制。

閱讀全文

與os如何訪問es的opc伺服器相關的資料

熱點內容
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:525
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:170
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:816
c語言javaphp 瀏覽:804
程序員技術不分高低嗎 瀏覽:619
dos不是內部或外部命令 瀏覽:709
PC機與單片機通訊 瀏覽:675
二級加密圖 瀏覽:113
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825