本文源自ioufev先生的博客《OPC和DCOM配置》(https://www.cnblogs.com/ioufev/p/9365919.html)及「geekc」先生的《OPC工作记录整理——第二篇(OPC客户端运行环境配置》(https://blog.csdn.net/u014801367/article/details/43058483),在此表示感谢!!

操作系统:win10专业版, 语言:java  环境:STS

采用的OPC服务器(仿真器):KepServerEx 6

由于采用java,所以必须配置(据说C#和VC不需要配置)

一、服务器端

1.OPC运行库

KEPServer集成了OPC运行库,所以不需要单独安装。如果单独安装,需要的文件包括9个文件:

OPC 数据交互环境配置-LMLPHP

安装过程:

对于OpenEnum.exe需要用“OpenEnum.exe /service”命令,其它的采用regsvr32来注册

2.创建用户并赋予访问权限 :计算机管理

创建用户:

OPCUser(任意合法名字)

123456 (密码)

添加到DCOM组, 方法:

2.1创建用户

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

3.2添加到DCOM组

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

3.防火墙关于 DCOM 和 OPC 的规则 :高级安全 Windows Defender 防火墙

(1)开放 DCOM 访问 :DCOM(wmi)启用135端口(只有一个计算机不需要设置)

(2)创建 OPC 程序规则 :允许程序 OPCEnum

  位置:"C:\Windows\SysWOW64\OpcEnum.exe"

(3)添加 OPC 服务器程序的规则:允许程序 KEPServer的server_runtime

  位置:"C:\Program Files (x 86) \Kepware\KEPServerEX 6\server_runtime.exe"

3.1配置防火墙规则:开放 DCOM 访问

打开防火墙

OPC 数据交互环境配置-LMLPHP

找到(DCOM-In)

OPC 数据交互环境配置-LMLPHP

右键属性--已启用

OPC 数据交互环境配置-LMLPHP

3.2创建 OPC 程序规则 :允许程序 OPCEnum

新建入站规则--程序--找到OpcEnum.exe

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

3.3添加 OPC 服务器程序的规则:允许程序 KEPServer的server_runtime

新建入站规则--程序--找到server_runtime.exe

OPC 数据交互环境配置-LMLPHP

4.组件服务:配置 COM 的安全设置

4.1 启用DCOM

打开组件服务

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

4.2组件服务:OpcEnum的安全选项

OPC 数据交互环境配置-LMLPHP

详细信息

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

4.3组件服务:KEPServer的安全选项

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

5.配置本地安全策略 :

本地安全策略 本地策略--网络访问--匿名 :启用

OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

二、客户端配置(这个博客比较粗,我认为上面就已经完成了配置,但还是根据这个进行了设置,但没有关闭防火墙)

1、首先是OPC客户端的用户名和密码需要和OPC服务器端的用户名和密码相同,而且需要赋予管理员权限,笔者也不是特别清楚这么做的原因是什么,但是如果没有这么配置的话,根本获取不到OPC的服务器列表。索性这样配置比不配置要好。

2、DCOM安全设置,在开始->运行中输入dcomcnfg,弹出DCOM安全设置窗口。

OPC 数据交互环境配置-LMLPHP

在属性->默认属性中进行如下配置:

在属性->默认协议中把DCOM协议改为面向连接的TCP/IP协议,如果没有的话,在下面的“添加”里面进行添加:OPC 数据交互环境配置-LMLPHP

OPC 数据交互环境配置-LMLPHP

在属性->COM安全中,进行配置:

如上图所示,分别有四项,访问权限的编辑限制和编辑默认值,和启动和激活权限的编辑,这里参见一。
OPC 数据交互环境配置-LMLPHP

在我的电脑->Distributed Transaction Coordinator->本地DTC的属性中进行设置:

OPC 数据交互环境配置-LMLPHP
 
    在安全选项卡下配置结果如下:
OPC 数据交互环境配置-LMLPHP

如此,则完成了第二步的配置。

3、本地安全策略设置

在我的电脑->控制面板->系统和安全->管理工具->本地安全策略中,打开本地策略->安全选项,在网络访问:本地帐户的共享和安全模型,更改为经典-对本地用户进行身份验证,不改变其本来身份,这项基本上是默认设置,但是非常重要。

OPC 数据交互环境配置-LMLPHP

到此,OPC客户端运行环境配置完毕。如果是OPC服务器的话,还需要在DCOM安全设置中针对具体的OPC服务器进行权限设置,因为网络上资料很多,笔者在此不做详细叙述。

05-23 10:25