濟(jì)南達(dá)索機(jī)電科技有限公司
地 址:濟(jì)南市天橋區(qū)無影山中路153號(hào)香港國際
電 話:0531-85554311
傳 真:0531-85554537
QQ:1149156245
微 信:18663708113
WhatsApp:18663708113
Email:jndassaw@163.com
免責(zé)聲明:達(dá)索機(jī)電非本網(wǎng)站所推薦制造商的授權(quán)經(jīng)銷商,本網(wǎng)站上推薦制造商品牌名稱及商標(biāo)歸其權(quán)屬人所有。
OPC技術(shù)提供了一種互聯(lián)、可靠、安全的通信平臺(tái)。然而,OPC技術(shù)依賴于DCOM架構(gòu),包括Windows安全和防火墻設(shè)置、訪問控制列表、Server認(rèn)證等。本文給出了OPC DCOM配置過程中最常發(fā)生的5個(gè)問題、導(dǎo)致原因及解決方法。
1 不能瀏覽遠(yuǎn)程計(jì)算機(jī)的OPC Server
瀏覽是指OPC Client應(yīng)用程序能夠察看到安裝在遠(yuǎn)程計(jì)算機(jī)上的OPC Server。OPC Client執(zhí)行一次瀏覽操作實(shí)際是連接到駐留在遠(yuǎn)程計(jì)算機(jī)上的OPCEnum映像,并檢索出可訪問OPC Server列表。這包括了每個(gè)OPC Server的ProgID(用戶接口名字)和GUID(Global unique identifier,全局唯一標(biāo)識(shí)符),如圖1所示。OPC Client并不真正直接連接到OPC Server。
因此,瀏覽出的列表與OPC Server的狀態(tài)無關(guān),或者說與OPC Server的可操作與否無關(guān),瀏覽OPC Server失敗的直接原因是不能獲得與遠(yuǎn)程計(jì)算機(jī)上的OPCEnum通信所需的參數(shù),造成這個(gè)問題可能有如下原因。
1.1 OPCEnum沒有安裝
OPC基金會(huì)負(fù)責(zé)創(chuàng)建和維護(hù)OPCEnum。OPC基金會(huì)的成員能夠從OPC基金會(huì)直接免費(fèi)獲得OPCEnum。
1.2 OPCEnum被禁止
即使OPCEnum被安裝在遠(yuǎn)程的計(jì)算機(jī)上,它也必須能夠被執(zhí)行,否則通信將會(huì)失敗。
1.3 匿名訪問權(quán)限沒有被設(shè)置
OPCEnum需要匿名訪問權(quán)限才能正常的工作。因此需要在Windows COM缺省安全中添加匿名訪問權(quán)限。
2 不能連接遠(yuǎn)程計(jì)算機(jī)的OPC Server
能夠?yàn)g覽遠(yuǎn)程計(jì)算機(jī)的OPC Server和連接遠(yuǎn)程計(jì)算機(jī)的OPC Server是無關(guān)的。即使遠(yuǎn)程計(jì)算機(jī)沒有安裝OPCEnum,也可以連接遠(yuǎn)程計(jì)算機(jī)的OPC Server。在這種情況下,只要知道遠(yuǎn)程計(jì)算機(jī)上要連接的OPC Server的GUID。導(dǎo)致不能連接遠(yuǎn)程計(jì)算機(jī)的OPC Server可能有如下原因。
2.1 OPC Server被禁止
如果OPC Server被設(shè)置以Windows服務(wù)的方式運(yùn)行是不能夠禁止的,故需要檢查一下OPC Server是否被禁止。
2.2 用戶身份認(rèn)證的問題
認(rèn)證是驗(yàn)證用戶身份的流程。Windows系統(tǒng)會(huì)比較用戶名和密碼,如果是操作系統(tǒng)不能識(shí)別的用戶,就會(huì)拒絕訪問從而不能與OPC Server建立連接。下面兩種情況可能導(dǎo)致用戶身份認(rèn)證失?。?/p>
l 用戶的賬戶在遠(yuǎn)程的計(jì)算機(jī)上并不存在;
l 關(guān)閉Simple File Sharing(簡單文件共享)會(huì)去掉遠(yuǎn)程訪問計(jì)算機(jī)的用戶名和密碼,導(dǎo)致用戶不能被正確的認(rèn)證。
2.3 訪問控制列表問題
當(dāng)認(rèn)證了一個(gè)來訪問的用戶賬戶后,系統(tǒng)將檢查用戶賬戶是否有啟動(dòng)或者訪問OPC Server的權(quán)限,這是利用ACL(訪問控制列表)來完成的。每個(gè)應(yīng)用程序的ACL包括了用戶賬戶的信息,操作權(quán)限等。因此,可能由于賬戶在ACL中沒有相應(yīng)的操作權(quán)限而被操作系統(tǒng)拒絕訪問。
3 所有的Item顯示為Bad
當(dāng)與一個(gè)OPC Server建立連接時(shí),必須能夠識(shí)別遠(yuǎn)程計(jì)算機(jī)的賬戶并且給予它適當(dāng)?shù)脑L問權(quán)限。這就需要與OPC Server建立同步的通信連接,而且能夠輪詢到OPC Server的數(shù)據(jù)。如果所有的OPC Server項(xiàng)的數(shù)據(jù)屬性指示為bad quality,可能是由于下面兩個(gè)原因引起的。
3.1 在OPC Server里的數(shù)據(jù)實(shí)際就是bad
即OPC Server沒有正確的獲得數(shù)據(jù),這時(shí)需要檢查一下OPC Server和數(shù)據(jù)源之間的通信。
3.2 回調(diào)失敗
由于OPC Client采用訂閱的方式來更新,故可能由于回調(diào)失敗導(dǎo)致所有的Item顯示為Bad。
4 OPC Server所在計(jì)算機(jī)的CPU利用率高
4.1 OPC Client使用同步讀時(shí)的問題
在這種情況下,OPC Client沒有使用優(yōu)化的讀取方式,使得OPC Server花費(fèi)更多的計(jì)算機(jī)CPU周期處理OPC通信,可以考慮采用異步或訂閱的方式改進(jìn)。
4.2 OPC Client使用異步讀時(shí)的問題
在這種情況下,可能是由于OPC Server本身沒有優(yōu)化使得對(duì)OPC通信的響應(yīng)慢。
4.3 OPC Client使用讀設(shè)備的問題:
在這種情況下,OPC Client不斷地通過OPC Server與設(shè)備進(jìn)行直接的數(shù)據(jù)交換,這會(huì)明顯的減慢OPC Server。如果是這種情況,可把所有的讀設(shè)備改成讀Cache。
5.OPC Client不接收更新的數(shù)據(jù)
由于安全配置的問題會(huì)導(dǎo)致OPC Client不能接收更新的數(shù)據(jù)。OPC支持基于時(shí)間“subscription(訂閱)”機(jī)制,當(dāng)數(shù)據(jù)發(fā)生了變化時(shí),OPC Server會(huì)通過異步回調(diào)把訂閱的數(shù)據(jù)更新,同時(shí)發(fā)送更新的數(shù)據(jù)到OPC Client。在此過程中OPC Client不知道OPC Server將會(huì)在什么時(shí)候發(fā)送數(shù)據(jù),如果不能正確配置安全屬性,數(shù)據(jù)的更新就會(huì)失敗。在OPC Client應(yīng)用程序指示為“Bad.”若發(fā)現(xiàn)從OPC Server中取得的數(shù)據(jù)不更新,可以嘗試用同步的方式從OPC Server讀數(shù)據(jù)。若此時(shí)數(shù)據(jù)讀到了,那么可以確定是異步回調(diào)失敗導(dǎo)致,這可能是由下面的原因造成:
5.1防火墻
如果OPC Client在計(jì)算機(jī)防火墻之外,則從OPC Server發(fā)出的回調(diào)請(qǐng)求可能被防火墻阻塞,到達(dá)OPC Client可能失敗,此時(shí)應(yīng)關(guān)閉防火墻。
5.2身份認(rèn)證失敗
當(dāng)回調(diào)到達(dá)OPC Client所在的計(jì)算機(jī)后,操作系統(tǒng)會(huì)試圖認(rèn)證這個(gè)用戶的賬號(hào)和密碼,與存在的列表進(jìn)行比較,如果組合與列表不一樣Windows會(huì)拒絕訪問,原因如下:
5.2.1用戶名和密碼的組合
在回調(diào)的情況,可能出現(xiàn)OPC Client和OPC Server所在的兩臺(tái)計(jì)算機(jī)上的用戶和密碼不匹配導(dǎo)致身份認(rèn)證失敗,必須保證在兩臺(tái)計(jì)算機(jī)的用戶名和密碼組合一致。
5.2.2 Guest
在Windows XP或者后期的版本,當(dāng)使用工作組,缺省的情況下會(huì)把遠(yuǎn)程的用戶賬號(hào)強(qiáng)制為本地的Guest用戶。這是由Simple File Sharing完成的,這種缺省的設(shè)置使得的認(rèn)證不能正常工作。因此,需要關(guān)閉這個(gè)項(xiàng)。
5.2.3 OPC Server身份識(shí)別的問題
回調(diào)要對(duì)OPC Server作身份認(rèn)證,這個(gè)身份認(rèn)證由OPC Server的身份認(rèn)證的設(shè)置管理。
OPC Server以交互的用戶認(rèn)證,這個(gè)賬戶是當(dāng)前登陸此計(jì)算機(jī)且駐留在OPC Server的計(jì)算機(jī)上,也就是必須有賬戶登陸,否則不能啟動(dòng)OPC Server,當(dāng)此用戶注銷時(shí),OPC Server就會(huì)關(guān)閉,即使是計(jì)算機(jī)的重新啟動(dòng),也會(huì)造成OPC Server的短暫的關(guān)閉。
OPC Server以訪問的用戶認(rèn)證,操作系統(tǒng)會(huì)為每個(gè)訪問的用戶創(chuàng)建一個(gè)實(shí)例,這樣會(huì)有三個(gè)問題出現(xiàn),若OPC Server只允許一個(gè)用戶訪問時(shí),當(dāng)系統(tǒng)中已經(jīng)有了一個(gè)實(shí)例,再有其它用戶就無法訪問。若是OPC Server允許多個(gè)用戶訪問時(shí),那么帶來的問題是隨著不同用戶的訪問,就會(huì)打開多個(gè)實(shí)例,這樣就會(huì)占用更多的計(jì)算機(jī)的資源。另外的一個(gè)問題是硬件的搶占,如串口,當(dāng)一個(gè)使用了,其它的用戶就無法再使用。
OPC Server以指定的用戶賬戶認(rèn)證,這種情況需要在OPC Server的計(jì)算機(jī)上存在著要指定的賬戶,而且對(duì)于OPC Client必須知道此用戶。否則無法訪問。
OPC Server以操作系統(tǒng)賬戶認(rèn)證,對(duì)于工作組還是域,系統(tǒng)賬戶都能被識(shí)別,也不需要有用戶登陸。但OPC server必須以服務(wù)的方式啟動(dòng)。
5.3訪問控制列表的問題
當(dāng)Windows認(rèn)證用戶賬號(hào)初始化了回調(diào),接下來就會(huì)檢查OPC Client的賬戶的訪問控制列表里的訪問權(quán)限,必須確保OPC Client的賬戶可以被訪問。
濟(jì)南達(dá)索機(jī)電科技有限公司
地 址:濟(jì)南市天橋區(qū)無影山中路153號(hào)香港國際
電 話:0531-85554311
傳 真:0531-85554537
QQ:1149156245
微 信:18663708113
WhatsApp:18663708113
Email:jndassaw@163.com
免責(zé)聲明:達(dá)索機(jī)電非本網(wǎng)站所推薦制造商的授權(quán)經(jīng)銷商,本網(wǎng)站上推薦制造商品牌名稱及商標(biāo)歸其權(quán)屬人所有。
濟(jì)南達(dá)索機(jī)電科技有限公司 魯ICP備14030587號(hào)-1免責(zé)聲明:達(dá)索機(jī)電非本網(wǎng)站所推薦制造商的授權(quán)經(jīng)銷商,本網(wǎng)站上推薦制造商品牌名稱及商標(biāo)歸其權(quán)屬人所有。