你知道OPCEnum有什么用吗?看完本文你就对OPCEnum有了全新的认识。更多通讯资源请登录网信智汇()。
(资料图片)
我们在用OPCClient进行OPC通讯调试时,可以很方便地获取到本地或远程的OPC Server列表,这归功于OPCEnum的功劳。
下面,我们把OPCEunm禁止掉。
再点击“Refresh List”,这时,就无法获取到OPCServer列表。
通过以上的操作,我们可以看到OPCENUM的作用就是枚举本地或远程服务器上OPC Server列表,最终的目的是获取OPC Server的ProgID,以创建OPCServer对象,实现OPC通讯。
下面,我们对不能浏览OPCServer列表的原因进行总结。
1.未发现OPCEnum服务:如果Windows服务列表中未发现OPCEnum服务,可通过以下办法解决:
1)检查是否在System32目录下,在CMD中执行以下命令
C:\Windows\System32\ /regserver
2)检查是否在SysWOW64目录下,则在CMD中执行以下命令
C:\Windows\SysWOW64\ /regserver
3)没有发现,安装OPC Core Components Redistributable,可登录网信智汇()下载。
4)安装OPC Server仿真软件,软件包含了OPC DA组件包。如DSxPOpcSimulator、Matrikon OPC Server Simulation。
服务被禁止:设置OPCEnum服务为手动或自动状态。
3.匿名访问权限没有设置:需要在Windows COM安全设置中添加匿名访问权限。
最后1个问题,没有OPCEnum,是否还能进行OPC通讯?答案是肯定的。
1. 通过远程注册表的方式,同样可以获取本地或远程的OPC服务器列表,只是处于安全考虑,Remote Registry服务通常被禁止。
2. 对于Linux系统,既没有OPCEnum,也没有Remote Registry,那么怎么创建OPC通讯?我们知道OPCEnum的目的是获取OPC Server的CLSID,然后转换成ProgID,创建OPCServer对象。所以,我们只要提供OPCServer的CLSID给Linux的OPCClient同样可以实现与OPCServer的通讯。OPCServer的CLSID可以在OPC服务器上注册表里查找。
更多通讯资源请登录网信智汇()。