OPC分层模型结构与对象接口编程

简介: OPC分层模型结构与对象接口编程

OPC分层模型结构

OPC数据访问提供从数据源读取和写入特定数据的手段。OPC数据访问对象是由如图4.5所示的分层结构构成。即一个OPC服务器对象(OPCServer)具有一个作为子对象的OPC组集合对象(OPCGroups)。在这个OPC组集合对象里可以添加多个的OPC组对象(OPCGroup)。各个OPC组对象具有一个作为子对象的OPC项集合对象(OPCItems)。在这个OPC项集合对象里可以添加多个OPC项对象(OPCItem)。此外,作为选用功能,OPC服务器对象还可以包含一个OPC浏览器对象(OPCBrowser)。

423af5bd63d0486fa93dd6f9d0ab9082.png

OPC对象中的最上层的对象是OPC服务器。一个OPC服务器里可以设置一个以上的OPC组。OPC服务器经常对应于某种特定的控制设备。例如,某种DCS控制系统或者某种PLC控制装置。

OPC组是可以进行某种目的数据访问的多个OPC项的集合,例如,某监视画面里所有需要更新的变量,或者某个设备监控相关的所有变量等。正因为有了OPC组,OPC应用程序就可以以同时需要的数据为一批进行数据访问也可以以OPC组为单位启动或停止数据访问。此外,OPC组还提供组内任何OPC项的数值变化时向OPC应用程序通知的数据变化事件,

OPC组有两种类型:公共组(Public)和局部组(Local or Private)。公共组可以为多个客户程序共享,而局部组只为某一个客户程序所有。在每个组里,客户程序可以定义多个OPC项。

OPC对象里最基本的对象是OPC项。OPC项是OPC服务器可认识的数据定义,通常相当于下位机的某个变量标签,并和数据源(如SCADA系统中的下位机的I/O)相连接。OPC项具有多个属性,但是其中最重要的属性是OPC项标识符。OPC项标识符是在控制系统中可识别OPC项的字符串。


OPC对象接口

OPC服务器接口

OPC服务器对象的COM接口模型如图4.6所示,其中带有()的接口为任选接口。图

0aebf5c499c34af8b934e104f7eeb3a8.png

(1)IUnknown接口:

COM对象必须实现的接口,主要负责对象的接口查询和生存期管理,包括QueryIntertface()、AddRef()和Release()函数。客户程序可以通过QueryInterfac()查询需要访问的接口。因此,客户程序只要得到对象的任何一个接口,就可以访问对象的所有接口。


(2)IOPCCommon接口

:OPC规范如DataAccess、Historical DataAccess、Alarms andEvents等的OPC Server对象的公共接口,通过该接口的函数,可以设置或查询组件应用程序的位置标识Local ID,从而实现客户应用程序与服务器的有效会话,且客户程序间不受干扰。


(3)IOPCServcr接口

:是Server对象的主要接口,主要完成Group对象的添加、删除、获取Server对象的状态、创建组对象枚举器等。


(4)IConnectionPointContainer接口:

是COM标准接口,支持可连接点对象。包含两个成员函数EnumConnectionPoints()和FindConnectionPoint()。EnumConnectionPoint()函数返回连接点枚举器,客户可以利用此枚举器访问COM对象的所有连接点。FindConnectionPoint()函数根据给定接口引用标识IID,返回相接口的连接点。当OPC服务器关闭时需要通知所有的客户程序释放OPC组对象和其中的OPC组员,此时,可利用该接口调用客户程序方的IOPCShutdown接口实现服务器的正常关闭。


(5)IOPCServerPublicGroups、IPersistFile和IOPCBrowseServerAddressSpace为可选接口

,OPC服务器提供商可根据需要选择是否需要实现。其中,IOPCServerPublicGroups接口用于对公共组进行管理;IPersistFile接口允许用户装载和保存服务器的设置,这些设置包括服务器通信的波特率、现场设备的地址和名称等。这样用户就可以知道服务器启动和配置的改变而不需要启动其他的程序。IOPCBrowseServerAddressSpace主要供客户程序来查看服务器中有用项的信息。

相关文章
|
存储 C语言 C++
66 C++ - 流的概念和流类库的结构
66 C++ - 流的概念和流类库的结构
83 0
|
数据库
主题域、概念、逻辑、物理四种模型有什么区别与联系?
主题域、概念、逻辑、物理四种模型有什么区别与联系?
|
4月前
|
设计模式
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
|
4月前
|
安全 Java
建模底层逻辑问题之在建模过程中,知识层和操作层如何区分
建模底层逻辑问题之在建模过程中,知识层和操作层如何区分
|
网络架构
详解CAN总线:CAN协议分层结构及功能
CAN协议涵盖了 ISO 规定的 OSI 基本参照模型中的传输层、数据链路层及物理层如下表 所示
详解CAN总线:CAN协议分层结构及功能
|
数据处理
《为并行图数据处理提供高层抽象/语言》电子版地址
为并行图数据处理提供高层抽象/语言
55 0
《为并行图数据处理提供高层抽象/语言》电子版地址
|
网络协议 算法 大数据
SOME/IP概述【分层结构及要实现的需求】
SOME/IP概述【分层结构及要实现的需求】
SOME/IP概述【分层结构及要实现的需求】
什么是调用结构?西门子S7-1200的调用结构如何使用?
今天我们来介绍一下西门子S7-1200的调用结构。在西门子S7-1200中采用调用结构来描述用户程序中块的调用层级,调用结构提供了几个方面的信息,包括所用的块,对其它块的调用,各块之间的关系,每个块的数据要求以及块的状态等
什么是调用结构?西门子S7-1200的调用结构如何使用?
|
SQL Java 数据库连接
数据层设计与开发(数据层标准实现类) | 学习笔记
简介:快速学习数据层设计与开发(数据层标准实现类)
153 0
数据层设计与开发(数据层标准实现类) | 学习笔记
|
编译器 C语言 索引
SystemVerilog学习-03-设计特性与接口
SystemVerilog学习-03-设计特性与接口
332 0
SystemVerilog学习-03-设计特性与接口