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主要供客户程序来查看服务器中有用项的信息。

相关文章
|
芯片 SoC
FinFET工作原理、结构和应用特性介绍
FinFET的全称是Fin Field-Effect Transistor。它是一种新型互补金属氧化物半导体晶体管。FinFET 的名称是基于晶体管和鳍片形状的相似性。
11842 0
FinFET工作原理、结构和应用特性介绍
|
3月前
|
设计模式
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
建模底层逻辑问题之以命令设计模式为例,要用定义法建模,如何实现
|
3月前
|
uml
建模底层逻辑问题之在建模时,对现实进行抽象该如何操作
建模底层逻辑问题之在建模时,对现实进行抽象该如何操作
|
6月前
|
存储 测试技术 调度
LabVIEW使用硬件抽象层适应不同的接口
LabVIEW使用硬件抽象层适应不同的接口
43 0
|
3月前
|
安全 Java
建模底层逻辑问题之在建模过程中,知识层和操作层如何区分
建模底层逻辑问题之在建模过程中,知识层和操作层如何区分
|
设计模式 测试技术 持续交付
深入抽象和动态建模(1)
深入抽象和动态建模
214 0
深入抽象和动态建模(1)
|
设计模式 自然语言处理 前端开发
深入抽象和动态建模(2)
深入抽象和动态建模
深入抽象和动态建模(2)
|
设计模式 Linux C++
C++ 接口和实现分离初步简介
C++ 接口和实现分离初步简介
164 0
|
存储 XML 编译器
【C#基础】C# 程序通用结构
编程语言C# 程序结构的介绍 。
232 0
【C#基础】C# 程序通用结构
|
数据处理
《为并行图数据处理提供高层抽象/语言》电子版地址
为并行图数据处理提供高层抽象/语言
50 0
《为并行图数据处理提供高层抽象/语言》电子版地址