昨天用kepserver準備做PLC的通訊。C#中引用了OPC的Interop.OPCAutomation.dll文件。但是遇到了問題:
KepServer = new OPCServer();
一直報錯:檢索 COM 類工廠中 CLSID 爲 {28E68F9A-8D75-11D1-8DC3-3C302A000000} 的組件失敗,原因是出現以下錯誤: 80040154 沒有註冊類 (異常來自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。
昨天找了好久,弄了好久,因爲感冒了腦子不轉,沒弄出來。早上繼續查資料,結合昨天的經歷,知道了問題所在。解決方法現總結如下:
1、電腦64位。安裝完kepserver之後,opc的大部分dll都在C:\Windows\SysWOW64下面。需要以下幾個dll文件:
- OPCDAAuto.dll
- opc_aeps.dll
- OpcCmdPs.dll
- opcdaauto.dll
- opcproxy.dll
2、在C:\Windows\SysWOW64下面,找到cmd.exe,右鍵“以管理員身份運行”,必須得用管理員,不然還會報錯。
3、在打開的cmd窗口裏,輸入REGSVR32 OPCDAAuto.dll,等等,即可。如下:
Microsoft Windows [版本 10.0.17134.829](c) 2018 Microsoft Corporation。保留所有權利。
C:\WINDOWS\system32>REGSVR32 OPCDAAuto.dll
C:\WINDOWS\system32>REGSVR32 opc_aeps.dll
C:\WINDOWS\system32>REGSVR32 OpcCmdPs.dll
C:\WINDOWS\system32>REGSVR32 opcdaauto.dll
C:\WINDOWS\system32>REGSVR32 opcproxy.dll
C:\WINDOWS\system32>
然後就不再報錯了,各位切記,64位電腦,調用cmd.exe要在C:\Windows\SysWOW64下面找啊,昨天搗了一天。