组态王通过网络OPC通讯时DCOM配置.docx
《组态王通过网络OPC通讯时DCOM配置.docx》由会员分享,可在线阅读,更多相关《组态王通过网络OPC通讯时DCOM配置.docx(26页珍藏版)》请在冰豆网上搜索。
组态王通过网络OPC通讯时DCOM配置
组态王通过网络OPC通讯时DCOM配置(内部)(总26页)
组态王通过网络OPC通讯时DCOM配置
说明文档
北京亚控科技发展有限公司
2021年6月
1.概述
组态王具有网络OPC功能,组态王与组态王之间可以通过网络以OPC方式进行通讯,同样其他OPCclient/OPCserver也可以通过网络与组态王之间以OPC方式进行通讯。
在使用网络OPC模式前,需要对充当OPC服务器的机器进行dcomcnfg程序配置,本文主要介绍在Windows2000、NT、XP、2003Server操作系统下,组态王采用OPC方式通讯时的DCOM配置。
win98操作系统不支持网络OPC功能。
2.基于WindowsNT/2000操作系统域计算机的DCOM配置
WinNT/2000操作系统自己带有dcomcnfg程序,设置过程如下:
1)打开dcomcnfg:
在windows菜单“开始”中选择“运行”,在编辑框中输入“dcomcnfg”,如下图2-1所示。
图2-1
2)定义属性:
点击“确定”后,弹出“分布式com配置属性”对话框,如下图2-2。
图2-2
进入“默认安全机制”属性页进行定义,如下图2-3:
图2-3
对“默认访问权限”,“默认启动权限”和“默认配置权限”进行设置,将everyone用户设置为“允许访问”,“允许调用”和“完全控制”,如图2-4、图2-5、图2-6所示。
图2-4
图2-5
图2-6
然后选中“opcEnum”,进行“属性”配置,弹出如下图2-7对话框:
图2-7
在“安全性”属性页中选中“使用自定义访问权限”,“使用自定义启动权限”,“和使用自定义配置权限”,并分别进行编辑,全部设置为”everyone”允许访问,允许设置,完全控制等。
3)再回到“分布式com配置属性”对话框中,选中,如下图2-8,
图2-8
进行属性配置,同样,在“安全性”属性页中选中“使用自定义访问权限”,“使用自定义启动权限”,“和使用自定义配置权限”,并分别进行编辑,全部设置为”everyone”允许访问,允许设置,完全控制等。
然后在“身份标识”属性页中选中“交互式用户”。
3.基于WindowsXPSP2/Server2003SP1操作系统域计算机的DCOM配置
3.1配置防火墙
WINDOWS防火墙是基于“例外”的,也就是默认情况下,防火墙将阻止外部“未被请求”的连接通过网络,而管理员可以在规则之外设置特定的应用程序或端口来响应外部“未被请求”的连接。
防火墙的例外可被归入两种层次的情况,一是应用程序层次,二是端口与协议层次。
前者可设置特定的程序来对“未被请求”的连接进行响应,后者可设置特定的TCP或UDP端口来允许相应的通信。
为了使OPC程序可以通过DCOM正常工作,必须在这两个层次上都进行设置。
防火墙的配置过程如下:
1)为了给系统提供必须的保护,WINDOWS防火墙是默认启用的(如图3-1)。
(个人)不推荐关闭WINDOWS防火墙,若通信连接失败,在调试过程中可以暂时关闭防火墙以确实问题是否是由防火墙所引起。
如若确定永久关闭防火墙,下面所述关于防火墙的设置均可忽略。
图3-1
2)进入WINDOWS控制面板,双击“WINDOWS防火墙”图标,打开“WINDOWS防火墙”设置对话框,选中“例外”选项卡,把相应OPCClient和Server程序添加进例外列表。
同时添加MicrosoftManagementConsole在Windows\System32目录下)和OPC应用程序OPCEnum在Windows\System32目录下) 到例外列表中(如图3-2)。
最后确保“文件和打印机共享”也被选中在例外列表中。
(注:
只有EXE程序可以被添加到例外列表中,对于DLL和OCX等类型的OPCServer和OPCClient,必须添加调用它们的EXE程序;本步设置可能要用到“添加程序”和“浏览”按钮。
)
图3-2
3)添加TCP135端口。
建立DCOM通信和对外来请求进行响应需要用到TCP135端口。
在“WINDOWS防火墙”的“例外”选项卡中,点击“添加端口”按钮。
在“添加端口”对话框中进行设置,如下图3-3所示。
图3-3
3.2DCOM配置
WindowsXPSP2和Windows2003SP1在DCOM安全方面进行了一些增强。
在WindowsXPSP2和Windows2003SP1中,若要通过网络使用OPC,应该注意到以下两个方面的问题:
一是用户可以通过“激活和访问权限”对话框对使用DCOM的应用程序的“限制权限”进行配置;二是在“激活和访问权限”中定义的每个用户,其本地和远程访问权限可以进行分别配置。
关于“激活和访问权限”,启动权限定义了谁可以本地或远程激活(或启动)基于COM的应用程序(比如OPCServer程序);访问权限定义了谁可以对已经启动起来的程序进行访问。
默认情况下,WindowsXPSP2和Windows2003SP1不允许经由网络的OPC通信。
为了使基于DCOM的OPC应用程序可以通过网络工作,用户应该被给予OPCServer和OPCClient的远程激活和访问权限。
WindowsXPSP2和Windows2003SP1下DCOM的配置过程如下:
1)点击“开始”-->“运行”。
输入DCOMCnfg,回车,打开“组件服务”窗口,如图3-4所示。
图3-4
2)双击“控制台根目录”下的“组件服务”展开“组件服务”文件夹,同样方式,展开“计算机”文件夹,右键点击右侧窗口的“我的电脑”图标,点击“属性”,打开属性对话框。
选中“默认属性”选项卡,勾选“在此计算机上启用分布式COM”,“默认身份验证级别”选“无”,如图3-5所示。
图3-5
3)选中“COM安全”选项卡,注意这里有4个按钮可供点击进入配置,如图3-6。
图3-6
4)配置访问和启动激活权限。
“访问权限”-->“编辑限制(L)…”
设置ANONYMOUSLOGON的本地访问及远程访问权限为允许。
(此设置与发挥作用有关,对于某些设置了“验证等级”为“无”以允许匿名连接的OPCServert和OPCClient,此设置也是必须的。
)
设置Everyone的的本地访问及远程访问权限为允许。
如图3-7所示。
图3-7
“启动和激活权限”-->“编辑限制(I)…”
设置ANONYMOUSLOGON的本地启动、本地激活、远程启动和远程激活权限为允许。
设置Everyone的本地启动、本地激活、远程启动和远程激活权限为允许。
(注:
为了安全,可建立专用于OPC通信的用户组,进行权限赋予。
)
如图3-8所示。
图3-8
设置默认访问和启动激活权限。
对于每个参与OPC通信的用户或组,均应赋予其本地和远程访问以及启动激活权限。
若相应用户或组没有出现,则应手动添加,然后赋予权限。
“访问权限”-->“编辑默认值(E)…”。
添加并设置ANONYMOUSLOGON的本地访问及远程访问权限为允许。
添加并设置Everyone的本地访问及远程访问权限为允许。
如图3-9所示。
图3-9
“启动和激活权限”-->“编辑默认值(D)…”。
添加并设置ANONYMOUSLOGON的本地启动、本地激活、远程启动和远程激活权限为允许。
添加并设置Everyone的本地启动、本地激活、远程启动和远程激活权限为允许。
如图3-10所示。
图3-10
5)配置OPCEnum与
双击“控制台根目录”下的“组件服务”展开“组件服务”文件夹,同样方式,展开“计算机”-“我的电脑”-“DCOM配置”-“OPCEnum”,点击右键“属性”,打开OPC属性对话框。
选择“常规”标签页,“身份验证级别”选“默认”。
如图3-11所示。
图3-11
选择“位置”标签页,勾选“在此计算机上运行应用程序”,如图3-12所示。
图3-12
选择“安全”标签页,设置“启动和激活权限”和“访问权限”为“使用默认值”如图3-13所示。
图3-13
“配置权限”选择“自定义”,点击“编辑”,添加并设置ANONYMOUSLOGON和Everyone的完全控制和读取为允许。
如图3-14所示。
图3-14
设置与OPCEnum相似,区别在于需要配置“交互式用户”。
选择属性的“标识”标签页,设置为“交互式用户”,如图3-15所示。
图3-15
6)完成以上设置后,重新启动计算机。
4.补充说明:
OPCClient不能连接OPCServer时可以尝试的方法
以上所说的配置是基于域的计算机DCOM配置,但有些情况是在一个网络中有的计算机在工作组中,有的计算机在域里,他们之间通过OPC如果不能访问,可以尝试用下面的方法设置计算机。
1)OPCServer的机器和OPCClient的机器用相同的用户名和密码登录,密码不能为空。
2)在操作系统的控制面板-管理工具-本地安全策略里面的安全选项里面有两个关于DCOM设置的项,在该项属性编辑安全-访问权限-安全限制添加everyone和ANONYMOUSLOGON用户权限,如图3-16、图3-17、图3-18。
图3-16
图3-17
图3-18
3)在OPCClient端PC机上把OPCServer端PC机的用户加载到本地用户列表里。
4)在DCOM配置时,在“访问权限”、“启动和激活权限”、“配置权限”里添加Interactive、SYSTEM、Network、administrators用户权限。
以下是用组态王做OPCServer和OPCClient测试的几种情况:
(1)工作组计算机和工作组计算机之间OPC通讯
当一个工作组的PC机连接到另外一台PC机时,除了按照上面说明进行DCOM配置外,还要注意下面几种情况(以下是用组态王做测试的情况)。
1)其一:
PC1机属于WORKGROUP,操作系统WindowsServer2003SP2,组态王做Client(或组态王做Server);
PC2机属于WORKGROUP,操作系统WindowsXPSP3,组态王做Server(或组态王做Client);
配置好DCOM后,就可以通过OPC通讯。
2)其二:
PC1机属于WORKGROUP,操作系统WindowsXPSP3/Server2003SP2,组态王做Client;
PC2机属于WORKGROUP,操作系统Windows2000,组态王做Server;
配置好DCOM后,两台PC机要以相同的用户名和密码登录,才可以通过OPC通讯。
3)其三:
PC1机属于WORKGROUP,操作系统WindowsXPSP3/Server2003SP2,组态王做Server;
PC2机属于WORKGROUP,操作系统Windows2000,组态王做Client;
配置好DCOM后,就可以通过OPC通讯。
(2)连接工作组计算机到域计算机
当一个工作组的PC机连接到另一个域的PC机时(即:
域PC机做OPCServer),除了按照上面说明进行DCOM配置外,还要注意下面几种情况(以下是用组态王做测试的情况)。
1)其一:
PC1机属于WORKGROUP,操作系统WindowsServer2003SP2,组态王做Client;
PC2机属于域,操作系统WindowsXPSP3,组态王做Server;
配置好DCOM后,两台PC机要以相同的用户名和密码登录,才可以通过OPC通讯。
2)其二:
PC1机属于WORKGROUP,操作系统WindowsXPSP3,组态王做Client;
PC2机属于域,操作系统WindowsXPSP3,组态王做Server;
配置好DCOM后,两台PC机要以相同的用户名和密码登录,才可以通过OPC通讯。
(3)连接域计算机到工作组计算机
当一个域的PC机连接到另一个工作组的PC机时(即:
工作组PC机做OPCServer),除了按照上面说明进行DCOM配置外,还要注意下面几种情况(以下是用组态王做测试的情况)。
3)其一:
PC1机属于WORKGROUP,操作系统WindowsServer2003SP2,组态王做Server;
PC2机属于域,操作系统WindowsXPSP3,组态王做Client;
配置好DCOM后,就可以通过OPC通讯。
4)其二:
PC1机属于WORKGROUP,操作系统WindowsXPSP3,组态王做Server;
PC2机属于域,操作系统WindowsXPSP3,组态王做Client;
配置好DCOM后,就可以通过OPC通讯。
5.OPC通讯同步和异步的差别
OPC客户和OPC服务器进行数据交互可以有两种不同方式,即同步方式和异步方式。
同步方式实现较为简单,当客户数目较少而且同服务器交互的数据量也比较少的时候可以采用这种方式;异步方式实现较为复杂,需要在客户程序中实现服务器回调函数。
然而当有大量客户和大量数据交互时,异步方式能提供高效的性能,尽量避免阻塞客户数据请求,并最大可能地节省CPU和网络资源。
6.网络OPC配置工具
组态王的安装程序里提供了一个网络OPC配置工具(路径:
ValuePack->工具->网络opc配置工具),在使用网络OPC模式前,需要配置充当OPC服务器的机器,即是指对dcomcnfg程序进行配置,以前我们需要手动进入dcomcnfg程序进行配置,现在我们只需使用DCOM配置工具对系统进行自动配置,实现手动配置的效果。
但目前测试的结果是有的机器用这个配置工具配置完成后可以实现OPC通讯,有的机器配置后还是不能实现OPC通讯。
同时发现用这个网络OPC配置工具配置完成后,如果你想再通过手动进行dcomcnfg程序配置,OPCEnum属性的“标识”标签页中的“交互式用户”变为不可选,恢复的办法是卸载网络OPC配置工具,然后卸载OPC服务程序,之后再安装OPC服务程序,“交互式用户”就变为可选了,实际上OPCEnum属性的“标识”标签页中的“交互式用户”不用配置为“交互式用户”。