OPC协议学习笔记

OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。
换句话说,OPC协议就是上位机和PLC之间的一个桥梁,一种通讯协议。
OPC协定包括:

  • DA(Data Access)规范:访问数据主要采用该规范
  • A&E(Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问方式。
  • HDA(History data access)规范
  • OPC XML-DA规范

这里我只简单用过OPC协议;例如DA,A&E等等,实际上还需要参考opc协议的用户手册。

OPC架构

OPC的架构类似于C/S架构,通常有一个server和多个client。具体如下图所示;
OPC架构
这里就可以实现OPC Client 间接控制PLC的一个过程,OPC Server在中间起到一个桥梁的过程。

这里举一个简单的例子,这里以西门子的PLC为例,假设在PLC的V300.0地址进行读写,相当于单片机中的一个pin out,或者可以理解成一个开关量。这个开关量可以控制电机的开和关。

下面该如何通过OPC Client软件去控制这个电机呢?

  • 第一步:在OPC Server中添加相应的PLC设备(这里需要搭建相应的环境,不同的PLC,环境也是不相同)
  • 第二步:根据实际PLC中的地址,比如上面是V300.1, 将这个地址添加到相应的设备中;
  • 第三步:在server中是否可以正常读写,如果读写正确,表示server链路和PLC端可以正常通讯;
  • 第四步:编写opc client,这里可以是纯opc协议,也可以是opc-ua协议(后面继续介绍),需要在client中添加相应的地址,这个要和server里的地址相对应,比如V300.0的地址,在server中是 PLC.DEV1.MOTOR ,那么在client中也要将这个PLC.DEV1.MOTOR 标识添加;

OPC UA

OPC UA(Unified Architecture)OPC协定的新版, 不再拘束于COM/DCOM技术,意味着不再像传统的(Classic)OPC协定那样仅支持在Windows等平台上使用,具有跨平台性,同时OPC UA也使用了可靠的通信机制,接口简单一致。

比如:对传统的三种不同类型OPC服务器的访问 - 数据访问(DA)、报警和事件(AE)、历史数据访问(HDA),
要获得一个温度传感器的当前值、一个高温度事件和温度的历史平均值,要依次使用不同的命令执行;
而使用OPC UA,仅用一个组件就非常容易地完成了。

配置和工程的时间也因此可以大大缩短。

不出意外,下面基本上基于OPC UA协议进行展开。

常用的OPC-SERVER

比较常用的OPC软件有,KEPWARE ,或者叫 KEPSERVER

常见的开源库

  • open64521

猜你喜欢

转载自blog.csdn.net/u010632165/article/details/124508502
opc