OPC组对象接口编程

简介: OPC组对象接口编程

OPC组对象接口

OPC组对象的COM接口模型如图

6e492caa805e462e955a5b800359e09c.png

(1)IOPCItemMgt接口及其成员函数的功能是允许OPC客户程序添加和删除项对象并可控制项对象的行为。

(2)IOPCGroupStateMgt接口及其成员函数允许客户程序管理组对象的所有状态,最基本的功能是改变组对象的更新速率和活动状态。

(3)IOPCPublicGroupStateMgt为可选接口,用于于将私有组对象转换成公共组对象,因为当客户创建一个组对象时,被初始化为私有组对象。

(4)lOPCSyncIO接口允许客户对服务器执行同步读/写操作,操作将一直运行到完成才返回。

(5)IOPCAsyncIO2接口允许客户对服务器执行异步读/写操作,操作被“排队等候”,函数立即返回。每项操作被看作一个“事务”,并被分配一个事务ID,当操作完成时,客户IOPCDataCallback接口的回调将执行。回调中的信息指出了事务ID和操作结果。

(6)IConnectionPointContainer接口:组对象必须实现此接口,与服务器对象的此接口的唯一区别是管理的出接口不一样,组对象管理的出接口是IOPCDataCallback接口,可使客户与服务器连接并进行最有效的数据传送。

(7)IOPCAsyncIO(old)接口是数据存取规范1.0必须实现的接口之一,按照程序兼容规则,符合规范2.0的服务器也应该实现规范1.0的必选接口。

(8)IDataObject(old)接口是OPC规范1.0需要服务器实现的接口,这允许使用OPC数据流格式创建客户与组对象之间的Advise接口,用于进行高效的数据交换。


OPC项

OPC项代表了与服务器里数据源的连接。从定制接口(Custom Interface)角度来看,一个OPC项不能被OPC客户程序作为一个对象来进行操作,因此,在OPC项中没有定义外部接口。所有对OPC项的操作都是利用OPC项的包容器(OPC组)或OPC项的定义来进行的。每个OPC项包含值(Value)、品质(Quality)和时间戳(Time S tamp)。值(Value)的类型是VARIANT,品质的类型是SHORT。值表示实际的数值,品质则标识数值是否有效,时间戳则反映从设备读取数据的时间或者服务器刷新其数据存储区的时间。应当注意的是项不是数据源,而只是与数据源的连接。OPC项应该被看成是数据地址的标识,而不是数据的物理源。OPC规范中定义两种数据源,即内存数据(cache data)和设备数据(device data)。每个OPC服务器都有数据存储区,存放着值、品质、时问戳,以及相关设备信息,这些数据称为内存数据。而现场设备中的数据则是设备数据。


OPC服务器总是按照一定的刷新频率通过相应驱动程序访问各个硬件设备,将现场数据送入数据存储区。这样对OPC客户而言,可以直接读/写服务器存储区中的内存数据。这些数据是服务器最近一次从现场设备获得的数据,但并不能代表现场设备中的实时数据。为了得到最新的数据,OPC客户可以将数据源指定为设备数据,这样服务器将立刻访问现场设备并将现场数据反馈给OPC客户。由于需要访问物理设备,所以OPC客户读取设备数据时速度较慢,往往用于某些特定的重要操作。

相关文章
|
存储 小程序 物联网
MQTT常见问题之小程序引用 paho-mqtt失败如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
算法 NoSQL 关系型数据库
九种分布式ID解决方案
在复杂的分布式系统中,往往需要对大量的数据进行唯一标识,比如在对一个订单表进行了分库分表操作,这时候数据库的自增ID显然不能作为某个订单的唯一标识。除此之外还有其他分布式场景对分布式ID的一些要求:
1348 0
|
存储 Oracle NoSQL
【赵渝强老师】Oracle的体系架构
Oracle数据库的核心在于其体系架构,主要包括数据库与实例、存储结构、进程结构和内存结构。数据库由物理文件组成,实例则是内存和进程的组合。存储结构分为逻辑和物理两部分,进程结构涉及多个后台进程如SMON、PMON、DBWn等,内存结构则包含SGA和PGA。掌握这些知识有助于更好地管理和优化Oracle数据库。
374 7
|
10月前
|
SQL 安全 关系型数据库
MySQL UDF提权
通过这些内容的详细介绍和实际案例分析,希望能帮助您深入理解MySQL UDF提权的机制、实现步骤及防范措施,提高系统的安全性和防护能力。
662 11
|
Docker Windows 容器
Docker在win10上报错,error during connect: In the default daemon configuration on Windows
Docker在win10上报错,error during connect: In the default daemon configuration on Windows
666 0
|
Java Spring
如何通过配置文件给 @Scheduled(fixedRate= )传值
【4月更文挑战第18天】如何通过配置文件给 @Scheduled(fixedRate= )传值
1321 3
|
机器人 Go 数据格式
[golang]推送钉钉机器人消息
[golang]推送钉钉机器人消息
239 0
|
缓存 关系型数据库 MySQL
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
error: Failed dependencies: mariadb-connector-c-config is obsoleted by mysql-community-server-8.0.36-1.el7.x86_64 问题解决
940 19
|
10月前
|
网络协议 Shell Linux
使用NPS内网穿透图文详细教程
使用NPS内网穿透图文详细教程
3031 1