1. 程式人生 > >.NET程式連線OPC Server時出錯 對 COM 元件的呼叫返回了錯誤 HRESULT E_FAIL

.NET程式連線OPC Server時出錯 對 COM 元件的呼叫返回了錯誤 HRESULT E_FAIL

最近在給鹿華系統做升級,為了實時性和穩定性,程式直接從DCS取數,程式是.NET開發的,呼叫OPC的DLL是OPCDAAuto.dll

系統裝的是Windows Server 2003 R2,配置好DCOM,初次嘗試成功連線OPCServer,程式10秒取數一次,在執行30小時後就再也連不上OPCServer了 錯誤如下

對 COM 元件的呼叫返回了錯誤 HRESULT E_FAIL

嘗試用OPC Client連線,報錯  有一個程式正在連線。。。。。。

剛開始懷疑是有人動過工控機,百度了很多都說是配置問題,然後又重新配置DCOM,又重灌系統,都不行 還是同樣錯誤

排除客戶端問題,懷疑是OPCServer,讓資訊中心幫忙重啟OPCServer,重啟之後連上了

OPCServer沒人動過,也沒人敢動,問題肯定還是出在客戶端,然後我又重新檢查了一下原始碼,Debug走了幾次,終於找到原因

程式碼有一行註釋被放開了,每次取數都new了一個物件連線OPCServer

天吶,如果按20秒連線一次,就連線了五千多次,OPCServer居然沒掛,OPC真強大

低階錯誤最致命,一定要多注意