通訊協(xié)議013——你碰到哪些OPC通訊問(wèn)題?

本文對(duì)OPC通訊常見問(wèn)題及處理進(jìn)行匯總。更多通訊資源請(qǐng)登錄網(wǎng)信智匯(wangxinzhihui.com)。
一、?? 不能瀏覽OPCServer列表
可能的原因有:
1、未發(fā)現(xiàn)OPCEnum服務(wù):如果Windows服務(wù)列表中未發(fā)現(xiàn)OPCEnum服務(wù),可通過(guò)以下辦法解決:
????a)? 檢查OpcEnum.exe是否在System32目錄下,在CMD中執(zhí)行以下命令
????????C:\Windows\System32\OpcEnum.exe /regserver
????b)? 檢查OpcEnum.exe是否在SysWOW64目錄下,則在CMD中執(zhí)行以下命令
????????C:\Windows\SysWOW64\OpcEnum.exe /regserver
????c)? 沒有發(fā)現(xiàn)OpcEnum.exe,安裝OPC Core Components Redistributable,可登錄網(wǎng)信智匯(wangxinzhihui.com)下載。
????d)? 安裝OPC Server仿真軟件,軟件包含了OPC DA組件包。如DSxPOpcSimulator、Matrikon OPC Server Simulation。
2.OPCEnum服務(wù)被禁止:設(shè)置OPCEnum服務(wù)為手動(dòng)或自動(dòng)狀態(tài)。
3.匿名訪問(wèn)權(quán)限沒有設(shè)置:需要在Windows COM安全設(shè)置中添加匿名訪問(wèn)權(quán)限。

4.OPCClient采用搜索注冊(cè)表的方式來(lái)枚舉OPC服務(wù)器,則應(yīng)該啟用Remote Registry服務(wù)。
5.OPC Server未注冊(cè)或注冊(cè)表信息丟失。
?
二、不能連接遠(yuǎn)程OPC Server
??? 1.顯示“RPC服務(wù)器不可用”:基本上是網(wǎng)絡(luò)不通的問(wèn)題,檢查網(wǎng)絡(luò)、防火墻。

? ? 2.顯示“CoCreateInstance:系統(tǒng)找不到指定的文件”:檢查OPC Server程序文件是否存在。

? ? 3.以Windwos服務(wù)方式運(yùn)行的OPC Server未啟動(dòng),檢查并啟動(dòng)。
??? 4. 用戶身份認(rèn)證的問(wèn)題:顯示錯(cuò)誤碼0x00000005,原因是在遠(yuǎn)程的計(jì)算機(jī)身份認(rèn)證沒有通過(guò)。 身份認(rèn)證是 Windows系統(tǒng)比較用戶名和密碼,如果是不能識(shí)別的用戶,就會(huì)立即拒絕訪問(wèn)。造成身份驗(yàn)證失敗的原因有:
????a)用戶賬戶在遠(yuǎn)程計(jì)算機(jī)上不存在: 如果試圖從的一個(gè)域訪問(wèn)另一個(gè)域時(shí),需要建立域間的信任關(guān)系,或者添加用戶到所有的域。如果使用的是工作組,就需要添加用戶到遠(yuǎn)程的計(jì)算機(jī),如果使用單域系統(tǒng)就不存在這個(gè)問(wèn)題。
????b)用戶密碼不對(duì)
????c)關(guān)閉“簡(jiǎn)單文件共享”(Simple File Sharing):簡(jiǎn)單文件共享會(huì)去掉遠(yuǎn)程訪問(wèn)計(jì)算機(jī)的用戶名和密碼,導(dǎo)致用戶不能被正確認(rèn)證。
5.訪問(wèn)控制列表問(wèn)題:錯(cuò)誤碼為0x80070005,DCOM配置問(wèn)題。系統(tǒng)檢查用戶賬戶是否有啟動(dòng)或者訪問(wèn)OPC Server 的權(quán)限. 這是利用訪問(wèn)控制列表(ACL)來(lái)完成的。對(duì)于每個(gè)應(yīng)用程序的ACL 包括了用戶賬戶的信息,哪些用戶被被允許或者拒絕對(duì)具有特定操作權(quán)限。檢查DCOM配置。
6. DCOM默認(rèn)模擬級(jí)別問(wèn)題:錯(cuò)誤碼為0x80070005。DCOM默認(rèn)模擬級(jí)別應(yīng)為“標(biāo)識(shí)”,不能為“匿名”。
7. OPC Server 身份識(shí)別的問(wèn)題:錯(cuò)誤碼為0x80070005,DCOM配置問(wèn)題。檢查DCOM配置。
????a)交互式用戶:是當(dāng)前登錄到運(yùn)行 COM 服務(wù)器的計(jì)算機(jī)的用戶。 如果標(biāo)識(shí)設(shè)置為交互式用戶,則如果服務(wù)器將其類工廠注冊(cè)為多用途,則所有客戶端都使用相同的服務(wù)器實(shí)例。這個(gè)賬戶是當(dāng)前登陸此計(jì)算機(jī)且駐留在OPC Server的計(jì)算機(jī)上,也就是必須有賬戶登錄,否則不能啟動(dòng)OPC Server,當(dāng)此用戶注銷時(shí),OPC Server就會(huì)關(guān)閉。如果服務(wù)器具有圖形用戶界面 (GUI) 客戶端需要查看,則應(yīng)使用交互式用戶作為服務(wù)器的標(biāo)識(shí)。
????b)啟動(dòng)用戶:這是應(yīng)用程序標(biāo)識(shí)的默認(rèn)設(shè)置。 OPC Server以訪問(wèn)的用戶認(rèn)證,操作系統(tǒng)會(huì)為每個(gè)訪問(wèn)的用戶創(chuàng)建一個(gè)實(shí)例,這樣會(huì)有三個(gè)問(wèn)題出現(xiàn):
若OPC Server只允許一個(gè)用戶訪問(wèn)時(shí),當(dāng)系統(tǒng)中已經(jīng)有了一個(gè)實(shí)例,再有其它用戶就無(wú)法訪問(wèn)。
若是OPC Server允許多個(gè)用戶訪問(wèn)時(shí),那么帶來(lái)的問(wèn)題是隨著不同用戶的訪問(wèn),就會(huì)打開多個(gè)實(shí)例,這樣就會(huì)占用更多的計(jì)算機(jī)的資源。
另外的一個(gè)問(wèn)題是硬件的搶占,如串口,當(dāng)一個(gè)使用了,其它的用戶就無(wú)法再使用。
????此外,客戶端不會(huì)看到服務(wù)器顯示的任何 GUI。
????c)指定用戶: OPC Server以指定的用戶賬戶認(rèn)證,這種情況需要在OPC Server的計(jì)算機(jī)上存在著要指定的賬戶,而且對(duì)于OPC Client必須知道此用戶。否則無(wú)法訪問(wèn)。這種方式下,每個(gè)客戶端都會(huì)與服務(wù)器的同一實(shí)例通信。 如果服務(wù)器具有 GUI,則不應(yīng)選擇此標(biāo)識(shí);如果這樣做,用戶將無(wú)法看到用戶界面。
????d)系統(tǒng)賬戶(僅用于服務(wù)):OPC Server以操作系統(tǒng)賬戶認(rèn)證,對(duì)于工作組還是域,系統(tǒng)賬戶都能被識(shí)別,也不需要有用戶登陸。但OPC server必須以服務(wù)的方式啟動(dòng)。
?
三、數(shù)據(jù)顯示Bad
1、數(shù)據(jù)源頭為Bad
2、OPC Client與OPC Server時(shí)間差太大
?
四、OPC通訊錯(cuò)誤碼

更多通訊資源請(qǐng)登錄網(wǎng)信智匯(wangxinzhihui.com)。
?