在上图所示的例子中,针对4种控制设备所完成的3个应用系统一共需要开发3*4=12种驱动程序。新增应用软件或者硬件设备带来的只会是驱动程序种类的迅速增长。
1.2.2基于OPC技术的过程控制系统结构
基于OPC技术的过程控制系统则可以完美地解决传统方式种的上述问题。
任何一种设备只需要提供一种驱动就可以供任何软件系统使用,系统构建完成后的最终结果是:
Ø M类软件要使用N类硬件设备只需要开发N个驱动。
Ø 每增加1个新的应用软件不需要另外开发硬件设备的驱动程序;
Ø 每增加1个新的硬件设备只需要为开发1个新设备的驱动程序;
在上图所示的例子中,针对4种控制设备所完成的3个应用系统一共仅需要开发4种驱动程序。新增应用软件或者硬件设备可以轻松的扩展您的系统。
详细原理图:
Ø 硬件设备:DCS,PLC,扫描仪,电子设备…
Ø 应用软件:HMI,历史数据库,震动检测器…
Ø 通讯协议:DDE,Modbus,ODBC,GenCS…
Ø 操作系统:Windows,UNIX,VMS,Macintosh,嵌入式OS…
即OPC服务器可以从上面任何一种形式的数据产生实体中读取数据。这个实体可以是霍尼韦尔PHD的Application,也可以是Modbus的通讯协议,还可以是一种PLC,也就是一种Device(硬件设备),或者是一种Platform。
======================================================================
2.1 Matrikon公司的OPCServer Simulator
简单,单文件注册后,各种数据类型,各种点类型(只读点,只写点,读写点)都有了,更好的一点是,如果想做大规模的测试,10万点,那么只需要在它的Random下添加任意名称即可,OPCServer会自动给你建出对应的测点,还是随机数变化。
2.1.1配置时的几个关键概念
Alias Group(Group) ——对Items的分类管理,自定义的。类似于Java中的包。
Alias (Item) ——一个Item代表与服务器进行通信的PLC或其它硬件设备上的一个地址。与Kepware中的一样。
配置顺序如下(在Alias Configuration下):
New AliasGroup/Alias --> Inset Alias
一个商业软件,需要花费金钱购买License的,但Kepware公司的OPCServer需要花钱的不是OPCServer本身,而是采集驱动。不过Kepware公司的OPCServer提供了不花钱的仿真驱动,用来测试上非常好的。
缺点就是太庞大,不简单,学习成本较高。但为了能满足OPC这类产品的各种测试,它真的是最佳选择。可以去它的官方网站下载。
2.2.1配置时的几个关键概念
Chanel——通道是一个从PC到一个或多个外部设备之间的传播媒介。一个通道可以用来代表一个串行端口(一个安装在个人电脑上的卡或是以太网接口)。
Device——设备代表了与服务器进行通信的PLC或其他硬件。它受限于Channel所选择的设备驱动程序(Device driver)。
Group——对tags的分类管理,自定义的。类似于Java中的包。
Tag——一个Tag代表与服务器进行通信的PLC或其它硬件设备上的一个地址。服务器允许动态标签(客户端自定义创建)和用户定义的静态标签(服务端管理人员创建的标签)。动态标签是直接进入了OPC客户端和指定设备存取数据。静态标签在服务器被创建的且支持标签扩展,他们可以从OPC客户浏览,支持标签浏览。
配置顺序如下:
New Channel -->New Device --> New Group/Tag --> New Tag
========================================================================
标准,稳定,单文件,通讯过程的信息还比较丰富,我是比较喜欢用它在创建OPC组时定义同步方式或异步方式来验证远程计算机的OPC配置是否正确。缺点就是大了点,2M多。
功能很强大,标准,稳定,日志信息很丰富,最推荐的功能是支持对OPCServer中点名的条件过滤,支持点表的导入导出,支持自动导入OPCServer的所有点,根据点表识别好点坏点,按照列排序,用它可以弥补很多国产组态软件不能在线遍历OPCServer点表的功能、不能过滤OPCServer点的功能、不能识别OPCServer中好点坏点的功能等。缺点就是非单文件。
4. OPC Client和OPC Server配置的安全策略
===========================================================================================
下表是对 OPC Client和 OPC Server 所在操作系统之间的安全策略的配置对应说明:
===========================================================================
有两种开源包,分别是JeasyOpc和utgard(Openscada),他们的区别如下:
经对比分析,我们采用Utgard(Openscada)开源技术,Openscada可以很好的实现与OPC服务器的链接及读写数据等功能,还可以随时获取和修改OPC的Server和Item的属性状态信息。所以它能够很好的满足我们的需求,建议使用Openscada。
OPC数据存取服务器由三个对象组成:服务器对象(Server)、组对象(Group)和项对象(Item)。
按说明配置好OPC Server 与 OPC Client 所在电脑的组件服务配置和防火墙设置(windows7直接关闭就行了)注意一定要把本机希望链接OPC服务的用户或用户组添加到DCOM配置列表中,否则链接会失败。
如果其他都配置好了,运行程序还是连接不上的话,首先常看防火墙是否配置(或关闭)。
OPC对象——服务器(OPC Server)、组(OPC Group)、项(OPC Item)。
Openscada开源项目:
ConnectionInformation中:
Host——本地主机/网络主机IP(示例:localhost(默认)、127.0.0.1)
Domain——域(默认为localhost)
User——用户名
Password——用户登录密码