如何在Eclipse Milo中添加警报

问题描述 投票:1回答:2

我目前正在使用Eclipse Milo来订阅来自OPC UA服务器(也是Milo)的值:

client.getSubscriptionManager().createSubscription(interval).get();

不幸的是,订阅总是与特定时间间隔相关联。我正在寻找像“推送通知”这样的东西,它可以立即收到,没有特定的间隔。显然,可以创建一个非常频繁的订阅,但这不是一个优雅的方法。

浏览Milo源代码时,我注意到了类LimitAlarmNode。一旦服务器上的节点设置为特定值,是否可以设置收到的警报?如果是这样,我该怎么办?

非常感谢你。

java opc opc-ua milo
2个回答
2
投票

不幸的是,订阅总是与特定时间间隔相关联。我正在寻找像“推送通知”这样的东西,它可以立即收到,没有特定的间隔。

OPC UA中没有即时订阅;通知将始终按订阅定义的时间间隔发布。当您只处理少量项目时,这似乎是不可取的,但当您发生数万(或更多)潜在变化时,这是唯一可扩展的方法。

OPC UA报警和条件在OPC UA事件模型之上定义。客户端当前支持订阅事件,因此如果您确实拥有支持警报的服务器,则客户端可以订阅它们。

遗憾的是,服务器SDK中尚未实现事件,因此即使警报确实提供了您正在寻求支持的功能,也可能是服务器中的一种出路。


0
投票

根据统一自动化的OPC UA文档,OPC UA客户端可以订阅三种类型的更改:

  1. 订阅变量值的数据更改(变量的值属性),
  2. 订阅对象的事件(Object&EventFilter Set的EventNotifier属性),和
  3. 订阅聚合值,这些值基于当前的变量值以客户定义的时间间隔计算。

第二个选项似乎适用于您的用例,因为那是OPC UA服务器中不进行采样的选项。随着对象的事件发生,它们被添加到队列中。我不知道该怎么做,我不确定这个事件的对象是Kevin Herron所说的:“事件尚未在服务器SDK中实现”。

(Qazxswpoi)

© www.soinside.com 2019 - 2024. All rights reserved.