Opc通信协议介绍
1 Opc协议说明 OPC是⼀种利⽤微软的COM/DCOM技术来达成⾃动化控制的协定, 采⽤典型的C/S模式, 针对硬件设备的驱动程序由硬件⼚商完成,提供统⼀OPC接⼝标准的Server程序, 软件⼚商只需按照OPC标准接⼝编写Client程序就访问Server程序进⾏读写,即可实现与硬件设备的通信。 OPC协定包括: DA(Data Access)规范:访问数据主要采⽤该规范 A&E(Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问⽅式。 HDA(History data access)规范 OPC XML-DA规范
2 OPC UA OPC UA(Unified Architecture):OPC协定的新版, 不再拘束于COM/DCOM技术,意味着不再像传统的(Classic)OPC协定那样仅⽀持在Windows等平台上使⽤,具有跨平台性,同时OPC UA也使⽤了可靠的通信机制,接⼝简单⼀致。 ⽐如:对传统的三种不同类型OPC服务器的访问 - 数据访问(DA)、报警和事件(AE)、历史数据访问(HDA), 要获得⼀个温度传感器的当前值、⼀个⾼温度事件和温度的历史平均值,要依次使⽤不同的命令执⾏; ⽽使⽤OPC UA,仅⽤⼀个组件就⾮常容易地完成了。配置和⼯程的时间也因此可以⼤⼤缩短。
3 OPC逻辑对象模型 包括3类对象:OPC server对象、OPC group对象、OPC item对象,每类对象都包括⼀系列接⼝。 OPC Server 对象: 主要功能: 创建和管理OPC Group对象; 管理服务器内部的状
态信息。 OPC Group对象: 主要功能: 管理OPC Group对象的内部状态信息; 创建和管理Items对象; OPC服务器内部的实时数据存取服务(同步与异步⽅式)。 属性: name:组的名字,由客户端⾃⼰定义。 active:组的激活状态,如果为false则组内全部Item将不再从数据源取数据,在客户端中的表现是读取不到数据,同时写数据也影响不到服务器端。 update rate:服务器向客户端提交变化数据的更新速率(这个数值应⽐服务器设定的最⼩值⼤)。 Percent Dead band:数据死区,即能引起数据变化的最⼩数值百分⽐。 OPC Item对象: 主要功能: ⽤来描述实时数据,代表了与服务器数据源的连接,⽽不是数据源。 ⼀个项不能被OPC客户端访问,因此在OPC规范中没有对应于项的COM接⼝,所有对项的访问都需要通过OPC Group对象来实现。 属性: name:项的名称,在服务器对应于Item ID。 active:项的激活状态。 value:项的数据值。 quality:项的品质,代表数值的可信度。 Timestamp:时间戳,代表数据的存取时间。 注: 1.Item的存储类型————VARIANT(编写程序时使⽤的主要也是它) 2.Item的数据类型(VARTYPE):
3.Item的Alias:项的别名,由服务器设置,避免了项名称过长所带来的⿇烦。
4.Group类型:公共组和私有组。公共组由多个客户共享,私有组只属于某⼀OPC客户。公共组对连接到服务器的所有客户都有效,⽽私有组只能对建⽴它的客户程序有效。(⼤多服务器未实现有公共组)通信协议
5.Item在服务器端定义,对应于硬件实际地址,客户端连接服务器端后创建并添加OPC Group,并创建⼀系列OPC Item(连接到服务器端定义的Item),将逻辑上等价的⼀组OPC Item添加到OPC Group中才能通过组对象来对数据进⾏存取操作。
4 OPC通信: 同步通信:OPC客户端对OPC服务端进⾏读取操作时,OPC客户端必须等到OPC服务器端完成对应操作后才能返回,在此期间OPC客户端处于⼀直等待的状态。
异步通信:OPC客户端对OPC服务器端进⾏读取操作时,OPC客户端发送请求后⽴即返回,不⽤等待服务器端,当OPC服务器端完成操作后再通知客户端程序。
订阅:需要服务器端⽀持OPC A&E规范,由客户端设定数据的变化限度,如果数据源的实时数据变化超过了该限度,服务器则通过回调返回数据给客户端。
5 OPC客户端开发⼤致步骤 COM组件初始化; 创建服务器Server对象; 创建组Group对象; 创建项Item对象; 添加Item到Group中;添加Group到Server对象中; 连接服务器(这⾥的顺序与具体实现有关),完成相应操作; COM组件关闭
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论