
(1) 序言
在使用了OPC技术,并有网络数据访问的应用系统中,不可避免地要进行OPC DCOM权限配置。
DCOM配置与windows *** 作系统的安全体系结合在一起,而各版本的 *** 作系统(9x、NT、2000、XP等)的安全体现又或多或少地有所区别;同时,OPC服务器运行的方式也不尽相同(进程内、进程外、系统服务、有无界面……);而且,不同的应用系统对安全的要求也不同。总之,要想根据具体情况尽量合理地完成OPC DCOM配置并不是一件很轻松的事。
本文档根据各种不同的情况,讲述如何进行OPC DCOM配置。
(2) 准备
要进行DCOM安全配置, *** 作者通常必须拥有客户和服务器计算机的管理员权限。
【注意】一般情况下,DCOM通信是基于TCP/UDP的,所使用的端口不固定,很可能被一些防火墙软件屏蔽。如果本文下述配置不成功的话,请尝试关闭客户和服务器计算机上的防火墙,或者以带网络连接的安全模式启动系统(这时防火墙软件一般不被自动运行)。
(3) 最简单的情况
如果用户对网络安全基本上没有要求,或者处于客户、服务器程序开发阶段,......
(4) 服务器计算机始终有用户登录的情况(NT/2000)
这也是实际应用中比较常见的情况,但对于以NT服务方式运行的OPC服务器不适合。设置方法如下:
Ø 在服务器计算机上建立一个用户,如OPCUser,可以是管理员,也可以是一般用户,服务器计算机在运行OPC服务器时必须以这个用户登录。
Ø 在服务器计算机上建立一个用户组,如OPCClients。
(单一客户情况下可以不建立,建这个组的目的是管理方便)
Ø 在各个OPC客户计算机中,分别建立OPCUser用户,口令也要与服务器上的一致,可以设为普通用户以保证安全。
Ø 客户计算机运行时不必以OPCUser登录,比如使用ClientA登录,就要在服务器上建立相同的用户ClientA及相同的密码。并在服务器计算机上将ClientA加入到OPCClients组中。ClientA在客户和服务器计算机上都可以是普通用户。
Ø 服务器端DCOM配置
运行dcomcnfg,进行如下设置:
默认属性:
启用DCOM;
默认身份验证级别:连接
默认模拟级别:标识
默认安全机制:
默认访问权限:
至少要保证OPCClients组允许访问,也可放宽至Everyone;
默认启动权限:至少保证允许INTERACTIVE用户调用;
默认配置权限:一般情况下不需修改。
默认协议:保证面向连接的TCP/IP在最上,其它可以删除。
具体的服务器配置:
常规:身份验证级别为默认值;
位置:在这台计算机上运行;
安全性:使用默认的访问和启动权限,配置权限不要修改;
身份标识:交互式用户。
终结点:不修改。
OPCEnum程序配置:
在dcomcnfg程序的应用程序列表里找到opcenum.exe,对其按照上面具体服务器的配置进行设置。
Ø 客户计算机的配置:
为了保证OPC数据订阅等回调机制能正常运行,需要对客户计算机的DCOM权限进行配置。
默认属性、默认协议的配置和服务器端基本一致;
默认安全机制只需要修改默认访问权限。保证允许OPCUser访问。也可放宽至Everyone。
【注意】
在服务器没有用户登录的情况下,远程将无法启动OPC服务器;
对于有用户界面,并需要界面交互的OPC服务器,建议(可能必须)采用这种方式。
(5) OPC服务器为后台程序的情况(NT/2000)
这种情况下,服务器计算机可以没有用户登录。
做为后台程序,OPC服务器有两种运行方式:系统服务(service)方式和普通用户程序。
这里只介绍普通程序方式,系统服务方式的配置说明以后添加。
OPC服务器做为普通方式运行的后台程序,一般没有用户界面。完全可以按照(1)中有界面的方式进行配置,即设置为交互式用户启动。
但是(1)的配置方式限定了服务器计算机必须有用户登录,而且登录用户必须在客户计算机上有DCOM访问权限。所以,无界面的后台OPC服务器可以用另一种更灵活的方式运行。
配置方法:(未明确说明的部分与(1)相同)
在服务器端按照(1)中所述建立一个OPCUser用户,专门用来运行OPC服务器。然后在OPC服务器属性配置中,将启动方式改为指定用户,注意要输入用户密码。
这样,OPC服务器计算机可以用任意用户登录,当客户计算机发出连接请求时,系统负责以OPCUser的身份运行OPC服务器,如果已经运行则使用已有的OPC服务器。
【注意】还有一种启动方式,是“启动”用户。即系统以发连接请求的用户的身份启动OPC服务器,这可能造成服务器计算机上同时运行多个OPC服务器的实例,显然不妥。所以一般情况下不建议设置为“启动”用户,虽然它是缺省选项。
(6) Windows XP系统下的配置说明
在XP *** 作系统(SP1,不包括SP2及其以后版本)下,OPC的配置实际上和NT/2000基本一样,这体现在OPC DCOM相关的各项配置在注册表中的位置、名称都是一致的。
二者只是配置界面不同
出现这种问题原因如下1)OPCClient无法遍历远程计算机上的OPCServer列表,Telnet远程计算机的135端口不能连接。
排错思路:检测网络是否通畅,先关闭远程计算机上的的所有防火墙,能Ping通则说明链路通畅,不能则看看IP设置是否有问题,网络接线是否存在问题。如果关闭防火墙后正常,而开启防火墙后不正常,则说明防火墙规则未配置正确。如是遇到Win7及以上系统,注意检查Windows自带防火墙的几条规则,需要在Win7,Win2K8 *** 作系统的防火墙规则中添加两条规则,允许rpc动态端口和允许rpc终结点映射器。
2)Telnet远程计算机的135端口能连接。但OPCClient还是无法遍历远程计算机上的OPCServer列表。
排错思路:远程计算机上是否安装并注册OPC组件库文件,特别是opcenum(此组件的功能用于遍历本地所有注册的OPCServer名称),如是刚完成OPCDCOM配置的计算机,最好重启一次 *** 作系统。
3)OPCClient能遍历远程计算机上的OPCServer列表,无法连接指定的OPCServer
排错思路:能遍历远程计算机上的OPCServer列表,说明远程计算机整体的DCOM配置已经ok,连接不到指定的OPCServer,那么说明一定是目标OPCServer的配置或OPCServer本身的问题(如连接数限制,未授权等)
4)OPCClient能遍历远程计算机上的OPCServer列表,也可连接指定的OPCServer,但无法增加组。
排错思路:当你已经可以连接到远程计算机上指定的OPCServer时,说明已经成功了99%,但是无法添加组,则是OPCClient所在计算机的OPC配置不正确导致的,你若是不信,你可以使用Matrikon提供的OPCClient工具OPCExplorer.exe,添加组时选择“同步方式”试一试,你会发现是可以连接上的,而选择“异步方式”却不通。
在工业物联网(IIoT)时代,OPC/OPC UA作为一种统一的通信架构,解决了互通性和标准性的问题。OPC Classic的访问规范都是基于微软的COM/DCOM技术,这会给新增层面的通信带来不可根除的弱点。1.首先确保可以通过在OPC-1上打开OPC Explorer连接到Network Neighborhood->OPC-2->Matrikon.OPC.Simulation.1server的方式将OPC-1和OPC-2建立起DCOM连接,反之亦然。
2.在两台PC机上分别打开MatrikonOPC UA Tunneller Configuration Panel,选择Classic Client to Classic Server项打开配置页面。
3.打开 Tunneller Server Gateway Configuration页,确认Encryption功能处于未选中状态,然后点击Apply。这一步一定要在两台PC机上都进行确认否则将无法建立任何连接。
4.回到OPC-2里,在UA Tunneller的对话框里打开Tunneller Client-Side Gateway Configuration页面。点击 “+” 图标来添加一个新的Tunneller连接。
5.从下拉菜单中选择OPC-1然后点击OK,连接结果将会展示在左侧面板。
6.打开 OPC Explorer,你会看到OPC服务器都部署在Localhost下了,而且此时两台机器的OPC服务器通过Tunneller建立了连接。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)