说明
OPC (OLE for process control)即用于过程控制领域的对象链接和嵌入技术,这一概念是由Fisher Rosemount公司1995年首次提出的,它借用了微软的OLE(Object Linking and Embedding)和COM(Component Object Model)/DCOM(Distributed Component Object Model) 技术,并应用于过程控制中。它为过程控制和工业自动化领域提供了一套标准的接口、属性和方法,是实现控制系统现场设备与过程监控级进行信息互连,实现控制系统开放性的关键技术。
《OPC驱动》指导用户进行OPC驱动的正确配置。内容可分为:
- 环境配置,环境配置保证标准的OPC客户端能够连接到OPC服务器
- 驱动配置,驱动配置则确保eview自带的OPC驱动能够从OPC服务器正确读取数据
该驱动所支持的读取和写入的数据类型有:
- BOOL
- Short
- Word
- Long
- DWord
- Float
- Double
- String
注意:
- 本机上的OPC服务
- 64位的OPC服务程序只能由64位的OPC驱动连接
- 32位OPC服务程序只能由32位OPC驱动连接。绝大部分OPC是32位的服务
- 如果OPC驱动和OPC服务的位数不同,会导致OPC服务连接不上
- 验证方法:
- 我们下面提供的OPC客户端工具是32位的,如果连得上本机OPC服务,说明OPC服务是32位,此时eview 的OPC驱动必须用32位,整个eview都需要是32位!
- 远程服务器上的OPC服务
eView服务上支持OPC环境配置
eview服务器需要OPC的环境配置,否则会浏览不到OPC(即使本机浏览本机也可能浏览不到)。截图:
解决办法:可以用如下方法之一去解决
- 以管理员身份执行RegOPCEnum\onekey.bat(ftp的software/opc目录下),否则在用工具浏览OPC Server时会提示:
- 安装Kepware KEPServer 4.500.46注册破解版.zip(ftp的software/opc目录下),但不需要运行,该软件安装过程会设置
驱动配置
- opc驱动在网关中无法使用,只能在windows版eview使用。
- 该驱动属于内置驱动,安装后就有了
设备配置
增加一个设备,设备属性如下:


- 设备连接类型选取“自定义”
- 连接字符串。支持三种写法:
- OPC服务名,访问本机的OPC服务,不带OPC。
- 如Matrikon.OPC.Simulation,表示访问本地(本机上的atrikon.OPC.Simulation服务名称)。
- OPC服务名@IP,访问远程机器OPC服务。
- OPC服务名@IP1,IP2,访问远程机器OPC服务。
- OPC连接串的查找方法
- 设备参数。通常不需要填写。
- 设备参数1:读取数据方式。缺省为空
- 空:表示要求OPC服务从设备读取
- 非空字符串:表示从OPC服务的缓存读取
- 设备参数2:读取IO方式,缺省为空
- 设备参数3:读取死区值,float类型,缺省为空。
设备配置如下图所示:

变量配置
增加变量时,地址格式有两种形式:
- ItemName。大部分OPC服务只要输入ItemName就可以了。
- ItemName@AccessPath。多数OPCServer不支持AccessPath。如果OPC服务支持AcceePath,且AccessPath为空,则只需要输入ItemName
- 示例:
- 如下面一个第三方工具选择Item界面如下,变量地址需要输入为:Random.Boolean。如果OPC服务存在AccessPath,则地址为:Random.Boolean@AccessPath:
- 对于下面模拟器的OPC服务,则地址为ItemName,如a.a.b,其中a.a.b为Knight.OPC.Server.VC上的一个item
- 变量配置步骤
- 在设备变量管理中,点击新增按钮
- 弹出变量新增界面,需要:
- 选择设备
- 输入一个自定义的变量名
- 地址:输入下面查找数据项得到的ItemName
- 数据类型:根据下面查找数据项找到的数据类型
- 点击保存


- 确认OPC数据正确性
- 配置好OPC设备和变量后,重启eview服务pkservermgr
- 使用PKTagMonitor查看,看配置的OPC点值是否取得

- OPC数据项的查找方法
- 运行上面的OPC查找工具,在查找的OPC服务列表中,双击要连接的OPC服务名称
- 服务名会出现在左侧树中。在服务名上右键鼠标,选择Add Group
- 在弹出框中都不需要修改Group Name等信息。直接点击“确定”
- 左侧书中,服务名下会出现New Group
- 在NewGroup右键,选择Add Item
- 在弹出的框中左侧树点击展开,再在右侧选择节点
- 上面Item Name框会显示Item名称。这个名称就是变量地址
- 点击Add Selected会增加到列表中,应该能读取到值
变量配置结果如下图所示:

验证步骤:
- 配置完成,可以运行eview,通过画面或者PKTagMonitor.exe查看数据是否正确

OPC模拟器
模拟器的使用:
- 以管理身份运行OPC_KOS_Server/KOSVC.exe,会出现Knight.OPC.Server.VC的模拟OPC服务界面
- 注册OPC服务。点击菜单OPC/Register,会弹出:Register OK
- 如果不是以管理员身份运行,则不会弹出Register OK,注册也无法成功。用其他OPC客户端查找本地的OPC服务,也会查找不到
- 模拟出来的OPC数据项(Item)名称
- 运行该模拟程序,自动产生的Item,见上图框出来的部分。如a.a.a,a.a.b
- 也可以增加自己定义的名称,点击AddItem按钮,在弹出的窗口中添加新的Item变量,填写Item变量名、数据类型以及初始值的属性


OPC环境配置
如果eview的OPC驱动,和OPC服务不在一个机器,也需要配置,见:eView服务上支持OPC环境配置
即使配置完毕,也不能保证一定能够远程连接上OPC
实在连不上,就在OPC服务的那台机器上,安装1个eview,进行本机访问,再把eview数据同步到主eview服务
《OPC环境配置》保证标准的OPC客户端能够连接到OPC服务器,同时eview的服务器能够管理其自带的OPC驱动。OPC服务包括本地服务和远程服务,OPC客户端连接本地服务不需要特殊的配置,但是连接远程服务则需要进行比较复杂的操作,所以这里以WindowXP环境为例,详细介绍远程连接的计算机配置。
1. 本地连接环境
注意给防火墙添加例外,允许服务和客户程序。(也可以直接选择关闭防火墙。)
2. 远程连接环境
„操作系统用户配置
在OPC服务器上用Administrator用户建立一个拥有管理员权限的用户并设置密码(密码不能为空),如用户名OPCClientUser,密码123;在OPC客户机上进行相同的操作,并用该用户登入。只有建立了能相互识别的用户账号,才可能建立OPC通讯。
„防火墙设置(OPC服务器和客户端上都要进行设置)
关闭window自带的防火墙。
„DCOM配置(OPC服务器和OPCClient服务器都要进行设置)
开始→运行→输入:dcomcnfg,打开组件服务界面。
在控制台根目录→组件服务→计算机→我的电脑,右键选择“属性”。

选择默认属性tab页,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“连接”。

打开COM安全属性页。分别编辑界面上的4个红框选中的按钮选项。在四个编辑选项中分别添加everyone、Administrators、INTERACTIVE、ANONYMOUS LOGIN、SYSTEM、NETWORK用户,并勾选上所有权限选项。

打开MSDTC属性页,点击安全性配置按钮,Windows7的环境下,此配置页面默认即可。
在OPC服务器上,还要回到“组件服务”界面,打开DCOM配置,找到注册的OPC服务器的名称选项,打开它的属性。
在常规属性页,将身份验证级别改成“无”。
在位置属性页,Windows7的环境下,此配置页面默认即可。
在标识属性页,选择“交互式用户”
有时做好dcom配置后,需要重新启动电脑才起作用。所以为了安全起见,建议最好重新启动一下电脑,再做下一步。
„本地安全策略配置
OPC服务器和OPCClient服务器都要设置:打开控制面版→管理工具→本地安全策略→本地策略→安全选项,选择“网络访问:本地账户的共享和安全模型”,双击打开属性对话框,将模式改成经典模式,如下图:

不能忘了这一步,否则会在连接OPC服务器时报“拒绝访问”的错误!
如果通过以上方法在客户端仍然无法访问OPC服务,可尝试在服务端上安装OPC官方OpcEnum库OPC Core Components 2.00 SDK 2.20.msi(部分系统需要管理员权限运行,Win7系统如果仍然不能安装,可使用matrikon OPC模拟器安装程序替代),并启用OpcEnum服务进行访问。
无法远程浏览OPC服务
以管理员身份运行cmd.exe,进入一键设置目录,运行onekey.bat,查看运行没有错误。不需要启用guest用户,或者新建其他用户。
运行dcomcnfg,在组件服务/计算机/我的电脑,右键属性
- 默认属性,在此计算机上启用分布式DCOM
- COM安全:4个选项中只需要增加Anonymous Logon的所有权限,guest和everyone等用户不需要配置。
- 标识选项:交互式用户。
- 常规的身份验证级别选项:无。
运行dcomcnfg,组件服务/计算机/我的电脑/DCOM配置的OPCEnum:必须在DCom的OPCEnum的安全中,配置
- 安全选项:启动和激活权限、访问权限、配置权限增加Anonymous Logon用户所有权限,guest和everyone不需要配置。
- 标识选项:交互式用户。
- 常规的身份验证级别选项:无。
这样就能浏览远程OPC服务了
无法连接远程OPC服务:
运行dcomcnfg,组件服务/计算机/我的电脑/DCOM配置的该OPC服务(名如:OpcServer.WinCC)属性中
- 安全选项:启动和激活权限、访问权限、配置权限增加Anonymous Logon用户所有权限,guest和everyone不需要配置。
- 标识选项:交互式用户。
- 常规的身份验证级别选项:无。
这样就能远程连接和访问OPC服务了。