OPC技术学习总结,java从入门到精通第五版答案

在上图所示的例子中,针对4种控制设备所完成的3个应用系统一共需要开发3*4=12种驱动程序。新增应用软件或者硬件设备带来的只会是驱动程序种类的迅速增长。

1.2.2基于OPC技术的过程控制系统结构

基于OPC技术的过程控制系统则可以完美地解决传统方式种的上述问题。

OPC技术学习总结,java从入门到精通第五版答案

任何一种设备只需要提供一种驱动就可以供任何软件系统使用,系统构建完成后的最终结果是:

Ø  M类软件要使用N类硬件设备只需要开发N个驱动。

Ø  每增加1个新的应用软件不需要另外开发硬件设备的驱动程序;

Ø  每增加1个新的硬件设备只需要为开发1个新设备的驱动程序;

在上图所示的例子中,针对4种控制设备所完成的3个应用系统一共仅需要开发4种驱动程序。新增应用软件或者硬件设备可以轻松的扩展您的系统。

OPC技术学习总结,java从入门到精通第五版答案

1.3 工作原理


OPC技术学习总结,java从入门到精通第五版答案

详细原理图:

OPC技术学习总结,java从入门到精通第五版答案

1.4  OPC服务器所兼容的设备分类


Ø  硬件设备:DCS,PLC,扫描仪,电子设备…

Ø  应用软件:HMI,历史数据库,震动检测器…

Ø  通讯协议:DDE,Modbus,ODBC,GenCS…

Ø  操作系统:Windows,UNIX,VMS,Macintosh,嵌入式OS…

即OPC服务器可以从上面任何一种形式的数据产生实体中读取数据。这个实体可以是霍尼韦尔PHD的Application,也可以是Modbus的通讯协议,还可以是一种PLC,也就是一种Device(硬件设备),或者是一种Platform。

2.常用的OPC服务器

======================================================================

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

2.2 Kepware公司的OPCServer


一个商业软件,需要花费金钱购买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

3. 常用的OPC客户端

========================================================================

3.1 Matrikon公司的OPCClient


标准,稳定,单文件,通讯过程的信息还比较丰富,我是比较喜欢用它在创建OPC组时定义同步方式或异步方式来验证远程计算机的OPC配置是否正确。缺点就是大了点,2M多。

3.2 Kepware公司的OPCClient


功能很强大,标准,稳定,日志信息很丰富,最推荐的功能是支持对OPCServer中点名的条件过滤,支持点表的导入导出,支持自动导入OPCServer的所有点,根据点表识别好点坏点,按照列排序,用它可以弥补很多国产组态软件不能在线遍历OPCServer点表的功能、不能过滤OPCServer点的功能、不能识别OPCServer中好点坏点的功能等。缺点就是非单文件。

4. OPC Client和OPC Server配置的安全策略

===========================================================================================

下表是对 OPC Client和 OPC Server 所在操作系统之间的安全策略的配置对应说明:

OPC技术学习总结,java从入门到精通第五版答案

5. Java实现OPC客户端

===========================================================================

有两种开源包,分别是JeasyOpc和utgard(Openscada),他们的区别如下:

OPC技术学习总结,java从入门到精通第五版答案

经对比分析,我们采用Utgard(Openscada)开源技术,Openscada可以很好的实现与OPC服务器的链接及读写数据等功能,还可以随时获取和修改OPC的Server和Item的属性状态信息。所以它能够很好的满足我们的需求,建议使用Openscada。

5.1 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——用户登录密码

上一篇:揭开DRF序列化技术的神秘面纱


下一篇:远程IO模块的分类