發布日期:2022-04-17 點擊率:58 品牌:DOW
近段時間,遇到不少人都被OPCClient與OPCServer之間的通訊搞得頭大,通過幾次遠程協助后,總結了OPCClient和OPCServer在Windows上運行方式的恩怨,希望對各位有用。
目前市場上的OPCClient和OPCServer軟件在Windows上的運行方式有Windows桌面程序和WindowsNT服務。本來也沒啥。但由于OPCCLient是一個廠家的軟件,而OPCServer是另外一個廠家的軟件,由于軟件的多樣性,也就導致了如下一些現象:
1.OPCCLient連接目標OPCServer,發現無法連接,但在OPCServer計算機上明明看見OPCServer進程已經啟動。
2.OPCCLient連接目標OPCServer,能連接,也能看見測點,但無法獲取到數據。
經過多次現場的積累后,發現此類問題多出現在OPCClient和OPCServer軟件在Windows上的運行方式不同導致的。也就是說,OPCClient和OPCServer軟件的運行方式不一樣。譬如,OPCCLient是WindowsNT服務方式,而OPCServer是桌面程序方式(多是組態軟件的OPCServer都是桌面程序方式吧!!)。而當OPCCLient是Windows桌面程序方式,OPCServer時WindowsNT服務時,發現上面的現象基本不出現。這是為什么呢?
原因如下:
OPCClient和OPCServer都是基于DCOM的應用,DCOM的特點是OPCServer無需先運行或啟動,等待OPCCLient請求時,由操作系統在將OPCServer拽起來。這種機制的好處就是隨用隨啟。但這種機制如果處理不好吧,就會導致一些問題。當OPCCLient是WindowsNT服務時,OPCServer被拽起來后,是運行在System這個系統賬戶下面的。相對于Windows的桌面用戶來說,是另外一個隔離開的空間。因此當桌面運行類型的OPCServer被WindowsNT服務方式的OPCCLient拽起來后,被運行在System這個系統賬戶的空間。而如果這個OPCServer程序又做了全局唯一進程運行的限制或與數據庫只允許一個TCP連接時,上述的兩種現象基本就會出現。這就是這段時間好幾個朋友遇到的OPC通訊故障現象。
如果讓自己開發的OPC程序兼容性更好呢?
1.當開發OPCCLient程序時,最好使用Windows桌面程序方式,這種方式可兼容OPCServer程序運行在Windows桌面程序方式和WindowsNT服務方式。
2.當開發OPCServer程序時,最好使用WindowsNT服務方式,這種方式可兼容OPCClient程序運行在Windows桌面程序方式和WindowsNT服務方式。
如果很不幸遇到了WindowsNT服務的OPCClient去采集Windows桌面程序的OPCServer(加上OPCServer本身的全局唯一限制),那么你可以去WindowsNT服務的管理器中將WindowsNT服務的OPCClient更改為指定的系統用戶運行,大多數情況下可以解決問題。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV