OPC 协议认识

时间:2020-11-17 23:27:12   收藏:0   阅读:91

来源: https://blog.csdn.net/vevoliang/article/details/56015712

一、OPC

OPC是一种利用微软的COM/DCOM技术来达成自动化控制的协定,
采用典型的C/S模式,
针对硬件设备的驱动程序由硬件厂商完成,提供统一OPC接口标准的Server程序,
软件厂商只需按照OPC标准接口编写Client程序就访问Server程序进行读写,即可实现与硬件设备的通信。
OPC协定包括:
  1. DA(Data Access)规范:访问数据主要采用该规范
  2. A&E(Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问方式。
  3. HDA(History data access)规范
  4. OPC XML-DA规范

二、OPC UA

OPC UA(Unified Architecture):OPC协定的新版, 
不再拘束于COM/DCOM技术,意味着不再像传统的(Classic)OPC协定那样仅支持在Windows等平台上使用,具有跨平台性,同时OPC UA也使用了可靠的通信机制,接口简单一致。
比如:对传统的三种不同类型OPC服务器的访问 - 数据访问(DA)、报警和事件(AE)、历史数据访问(HDA),
要获得一个温度传感器的当前值、一个高温度事件和温度的历史平均值,要依次使用不同的命令执行;
而使用OPC UA,仅用一个组件就非常容易地完成了。配置和工程的时间也因此可以大大缩短。

三、OPC逻辑对象模型

包括3类对象:OPC server对象、OPC group对象、OPC item对象,每类对象都包括一系列接口。

OPC Server对象:

主要功能:

OPC Group对象:

主要功能:
属性:

OPC Item对象:

主要功能:
属性:
注:
1.Item的存储类型————VARIANT(编写程序时使用的主要也是它)
2.Item的数据类型(VARTYPE):
?技术分享图片?
3.Item的Alias:项的别名,由服务器设置,避免了项名称过长所带来的麻烦。
4.Group类型:公共组和私有组。公共组由多个客户共享,私有组只属于某一OPC客户。公共组对连接到服务器的所有客户都有效,而私有组只能对建立它的客户程序有效。(大多服务器未实现有公共组)
5.Item在服务器端定义,对应于硬件实际地址,客户端连接服务器端后创建并添加OPC Group,并创建一系列OPC Item(连接到服务器端定义的Item),将逻辑上等价的一组OPC Item添加到OPC Group中才能通过组对象来对数据进行存取操作。
 
kepserver上地址的数据类型
 
技术分享图片

四、OPC通信:

同步通信OPC客户端对OPC服务端进行读取操作时,OPC客户端必须等到OPC服务器端完成对应操作后才能返回,在此期间OPC客户端处于一直等待的状态。

异步通信OPC客户端对OPC服务器端进行读取操作时,OPC客户端发送请求后立即返回,不用等待服务器端,当OPC服务器端完成操作后再通知客户端程序。

订阅需要服务器端支持OPC A&E规范,由客户端设定数据的变化限度,如果数据源的实时数据变化超过了该限度,服务器则通过回调返回数据给客户端。

五、OPC客户端开发大致步骤:

  1. COM组件初始化;
  2. 创建服务器Server对象;
  3. 创建组Group对象;
  4. 创建项Item对象;
  5. 添加Item到Group中;
  6. 添加Group到Server对象中;
  7. 连接服务器(这里的顺序与具体实现有关),完成相应操作;
  8. COM组件关闭

原文:https://www.cnblogs.com/zouhao/p/13997212.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!