我目前正在使用Eclipse Milo订阅来自OPC UA服务器(也是Milo)的值:
client.getSubscriptionManager().createSubscription(interval).get();
不幸的是,订阅始终与特定的区间相关联。我正在寻找类似于“推送通知”的内容,即立即,没有特定的间隔。显然,可以创建一个非常频繁的订阅,但这不是一个优雅的方法。
浏览Milo源代码时,我注意到了课程LimitAlarmNode
。是否可以设置服务器上的节点设置为特定值后立即收到的警报?如果是这样,我该怎么做?
非常感谢。
答案 0 :(得分:2)
不幸的是,订阅始终与特定时间间隔相关联。我正在寻找类似于"推送通知"即时收到,没有特定的间隔。
OPC UA中没有即时订阅;通知将始终按订阅定义的时间间隔发布。当您只处理少量项目时,这似乎是不可取的,但当您发生数万(或更多)潜在变化时,它是唯一可扩展的方法。
OPC UA警报和条件在OPC UA事件模型之上定义。客户端当前支持订阅事件,因此如果您确实拥有支持警报的服务器,则客户端可以订阅它们。
不幸的是,服务器SDK中尚未实现事件,因此即使警报确实提供了您正在寻求支持的功能,也可能是服务器中的一种出路。
答案 1 :(得分:0)
根据OPC UA的Unified Automatiion文档,OPC UA客户端可以订阅三种类型的更改:
第二个选项似乎适用于您的用例,因为这是OPC UA服务器中不进行采样的选项。随着对象的事件发生,它们被添加到队列中。我不知道该怎么做,我不确定这个事件对象是Kevin Herron所说的:"事件尚未在服务器SDK中实现"。
(Source)