一、 说明

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服务
    • 64位和32位OPC服务可以互相连接

二、 驱动配置

  • opc驱动在网关中无法使用,只能在windows版eview使用。
  • 该驱动属于内置驱动,安装后就有了

三、 设备配置

增加一个设备,设备属性如下:

  • 设备连接类型选取“自定义”
  • 连接字符串。支持三种写法:
  • OPC连接串的查找方法
    • 从FTP下载OPC工具并运行。ftp://ftp.peakinfo.cn/software/opc/OPC_KOS_Client/KOCTool.exe
    • 在弹出界面,主菜单:OPC/New Connection,会弹出:Connect OPC Server。如果是本地的OPC服务,点击Find
    • 列表中有对应的OPC服务,说明运行工具的机器可以连到这个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会增加到列表中,应该能读取到值
      •  证明OPC服务正常
      • 且获取数据正常


变量配置结果如下图所示:


五、验证步骤:

  • 配置完成,可以运行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环境配置

《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服务了。



  • 无标签