opc ua java订阅_OPC UA的监控项、订阅、和通知

本文详细介绍了OPC UA的监控项(MonitoredItem)、订阅(Subscription)和通知(Notification)的工作原理。监控项用于指定要监控的节点,订阅负责向客户端报告通知,而通知描述了数据变化和事件。订阅包含一系列监控项,以客户定义的发布间隔发送NotificationMessages。服务器使用HasEventSource和HasNotifier引用类型来组织事件源和通知器,而Alarm作为Condition的特殊形式,具有活动、搁置和抑制状态。
摘要由CSDN通过智能技术生成

MonitoredItem

每个监控项均指明了要监控的项目(item)和用来发送通知的订阅。

item可以是一个节点的属性(node attribute)。

a0f5708c893ba6356662e5e6d41f433b.png

9639034.html

MonitorItem可以监控一个属性,一个变量或者一个事件

可以通过MonitorItem定义的过滤器(fiter),来决定是否产生一个通知

Queue attribute定义了可以被缓存的通知数量,可以通过配置策略决定丢弃新消息还是最老的消息

Triggering model

MonitoredItem服务允许某item只有在关联Item被触发时才会被触发

这是通过在触发对象和被触发对象间建立连接来实现的

3cd1624b7c43c90f1bbef058643645ee.png

9639034.html

Notification

描述了数据变化和事件的数据结构,通知会被打包为NotificationMessage并传送给Client。

订阅会以客户定义的发布间隔周期性的发送NotificationMessage。

Subscription

订阅用来向客户端报告通知,其行为可以被总结如下:

订阅包含一组由客户端分配的监控项。监控项可以生成通知,这些通知,由订阅发送给客户端

订阅拥有一个发布间隔,订阅的发布间隔定义了订阅执行的循环率。每次执行,订阅均试图发送一条NotificationMessages,NotificationMessages中包含了还没有报告给客户端的通知

订阅以回应发布请求的方式向客户端发送NotificationMessages。发布请求通常以接收顺序存储到Session中,当有通知需要发送时,在每次发布循环时,会从队列中取出相应的请求,并发送通知到客户端,如果没有待发送通知,请求则不会从队列中被删除

在循环的开始,如果已经存在待发送通知但还没有发布请求,服务器将会进入等待状态,一旦接收到发布请求,则立即向客户端发送通知,无需等待另外一次循环

订阅有一个存活计数器,保存了没有发送通知的周期循环次数,当循环次数达到用户在创建订阅时配置的预置,则会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值