1、某些OPC 客户端连接本地服务器失败
某些OPCDa 客户端,例如ABBDCS,.WinCC 等,本地连接服务器失败,需特殊设置;
C#开发的就遇到此情况,排查原因,停滞了好几天,终于解决
1.1、打开DCOM 配置,64 位系统需执行:
1.2、从组件服务->计算机->我的电脑->DCOM 配置下选择OPC 服务器:
1.3、执行右键菜单,打开属性对话框:
即使本地也要设置为交互式用户!
其他OPC连接问题处理办法:
2、连接OPCDA 服务器异常
2.1、现象
OPCDA 服务(FameView.RunDB)启动,但远程或本地客户端连接均失败,使用OPC 客户端测试工具也失败!
2.2、分析
情况1: OPC 客户端以短连接方式频繁连接OPC 服务器.连接次数很多时,导致资源不能及时释放,会出现此现象;
情况2: 远程客户端频繁异常断网,导致异常在线客户偏多,连接资源不能释放,会出现此现象;
2.3、解决
较新版本组态的OPC 服务器支持参数:
当检测到连接次数达到1024 或者在线客户数达到512 时,会自动重启OPC 服务器,使得强制释放资源;
3、当C#开发的OPCClient复制到其他电脑时报错
3.1、问题图
3.2、处理办法
3.2.1、情况一
将opcdaauto.dll拷贝到c:\windows\system32 和 c:\windows\syswow64 目录下,
以管理员启动 cmd
运行 regsvr32 opcdaauto.dll
————————————————
3.2.2、情况二
无论win7_32还是win7_64位都执行一样的CMD命令,即regsvr32 opcdaauto.dll 。
如果从网上下载的opcdaauto.dll 文件放到了Windows\system32中执行上面的命令后提示不兼容,那就放到systemwow64中,然后执行上述命令,尽可能用管理员权限运行CMD;如果你的系统已经更新到最新,64位系统的话在systemwow64中应该会有opcdaauto.dll文件,我的笔记本就是已经存在了。
————————————————
3.2.3、情况三
Win10安装OPCDAAuto.dll
经过近3天的爬坑,终于验证了。在Win7 x64下,安装kepserverex v6后会自动安装在c:\Windows\SysWOW64\下,vs可以加载到。在Win10 x64下,不会自动安装,需手动拷贝到SysWOW64目录下,然后以管理员身份进入该目录(一定要这样做),用regsvr32 OPCDAAuto.dll命令注册,否则是各样的报错,导致注册不成功[OPCDAAuto.dll版本v2.2.5.30验证通过]
————————————————
4、Windows XP下的DCOM配置方法(OPC)
4.1、在防火墙中例外必要的程序:
1、进入WINDOWS 控制面板,双击"WINDOWS 防火墙"图标,打开“WINDOWS 防火墙”设置对话框:
2、选中<例外>选项卡,把相应OPC Client 和Server 程序添加进例外列表,如fmOpcSrv.exe 或fmOpcServer.exe;
3、 同时添加Microsoft Management Console (mmc.exe 在Windows\System32 目录下)和OPC 应用程序OPCEnum (opcenum.exe 在组态系统根目录下)到例外列表中;
4、 确保<文件和打印机共享>也被选中在例外列表中;
4.2、例外TCP 135 端口:
1、 DCOM 通信需要用到TCP 135 端口;
2、 在WINDOWS 防火墙的<例外>选项卡中,点击<添加端口>按钮:
3、 在“添加端口”对话框中进行设置;
4.3、 WINDOWS XP SP2 下DCOM 的配置过程如下:
1、 点击<开始>中的<运行>,执行DCOMCnfg.exe,打开<组件服务>窗口:
2、双击<控制台根目录>下的<组件服务>展开<组件服务>文件夹,同样方式,展开<计算机>文件夹,
右键点击右侧窗口的<我的电脑>图标,点击<属性>,打开属性对话框:
3、设置<默认属性>:
4、选中<COM 安全>选项卡,有4 个按钮可供点击,分别进入配置:
5、 执行<访问权限>下的<编辑限制(L)…>,允许所有访问:
6、 执行<启动和激活权限>下的<编辑限制(I)…>,允许所有启动/激活:
7、 执行<访问权限>下的<编辑默认值(E)…>,允许所有访问:
8、 执行<启动和激活权限>下的<编辑默认值(I)…>,允许所有启动/激活:
4.4、返回到dcomcnfg 程序界面,展开DCOM 配置:
4.5、 选中FameView OPCServer,右键点击执行属性进行配置;
1、 <常规>页面中的<身份验证级别>设为<默认>:
2、 在<位置>页面中,选择<在此计算机上运行应用程序>:
3、 在<安全性>页面中,<启动权限>设置为<使用默认值>,<访问权限>设置为<使用默认值>:
4、 <配置权限>设置为<自定义>,并执行<编辑>按钮,添加,<完全控制>置为允许:
5、 在<标识>页中,选择<交互式用户>:
4.6、 返回dcomcnfg 程序主界面,再选中项,打开<属性>页面,进行配置(与服务器配置相同):
4.7、 完成以上设置后,重新启动计算机;
4.8、 在运行OPC 服务器的主机中添加OPC 客户端主机的登录帐户:
1、 如果OPC 客户端需要远程访问OPC 服务器,运行OPC 服务器的主机操作系统,需要将OPC 客户端的登录帐号添加到OPC 服务器的主机中;
2、 在OPC 服务器主机中执行<开始/设置/控制面板/管理工具/计算机管理/本地用户和组/用户>,在空白处点击右键:
3、 执行<新用户>,将客户端机器的登录帐号添加进去:
4、 如果有多台客户端访问该服务器,需要将这些客户端机器的登录帐号都添加进来;
5、 如果多台客户机的登录帐号相同(用户名和密码都相同),只需在OPC 服务器主机中添加一个就可以了;
6、 总之,OPC 客户端主机的登录帐号,在OPC 服务器主机的计算机管理的用户列表中必须找到;
4.9、 正确配置后客户端依然无法访问OPC 服务器,请尝试:
1、 进入“管理工具->本地安全策略->本地策略->安全选项”:
2、 选择“网络访问->本地帐户的共享和安全模式”,并置为“经典-本地用户以自己的身份验证”:
4.10、 如果在执行组件<属性>时,不能发现<属性>菜单,请进行以下操作:
1、 在“ 服务” 里找到三个服务: Distributed Transaction Coordinator(DTC) 、Remote
Procedure Call (RPC)、Security Accounts Manager,都启动起来;
2、 如果启动DTC 遇到问题, 直接运行msdtc –resetlog;
3、 如果DTC 仍然运行运行失败,继续尝试:
a) 在命令行下运行 msdtc –uninstall,删除 msdtc 服务;
b) 在“本地连接”的属性中删除了 NetBIOS 协议;
c) 重新启动机器后,在命令行下运行 msdtc –install,安装 msdtc 服务;
d) 在数据库服务器上,在“组件服务”mmc 中,依次打开“组件服务”、“计算机”,在“我的电脑”上点右键选择“属性”, 然后选择“msdtc”选项卡中的“安全配置”,确认选中“网络 DTC 访问”,并选择“不要求进行验证”;