2017-02-10 11 views
1

настоящее время я использую Eclipse, Майло подписываться на значения от сервера OPC UA (также Мило):Как добавить тревоги в Eclipse, Milo

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

К сожалению, подписки всегда привязаны к конкретному интервала. Я ищу что-то вроде «push-уведомления», которое получено мгновенно, без определенного интервала. Очевидно, можно было бы создать очень частую подписку, но это не изящный подход.

Просмотр источника Мило, я заметил класс LimitAlarmNode. Возможно ли установить аварийный сигнал , который будет получен, как только узел на сервере будет установлен на определенное значение? Если да, то как я могу это сделать?

спасибо.

ответ

2

К сожалению, подписки всегда привязаны к определенному интервалу. Я ищу что-то вроде «push-уведомления», которое получается мгновенно, без определенного интервала.

В OPC UA нет мгновенных подписчиков; уведомления всегда будут опубликованы в интервале, определенном для подписки. Это может показаться нежелательным, если вы имеете дело только с несколькими предметами, но это единственный масштабируемый подход, когда происходят десятки тысяч (или более) потенциальных изменений.

Оповещения и условия OPC UA определяются поверх модели событий OPC UA. Клиент в настоящее время поддерживает подписку на события, поэтому, если у вас есть сервер, поддерживающий Alarms, клиент сможет подписаться на них.

К сожалению, пока события в SDK сервера еще не реализованы, поэтому даже если аварийные сигналы предоставили функциональность, которую вы ищете для поддержки, вероятно, это выход на сервер.

+0

Я столкнулся с той же проблемой. Мой сервер opc ua предоставляет функцию тревоги/события, но я не могу найти пример кода milo для подписки на события. Могу ли я получить несколько руководств по этому делу? Большое спасибо. –

+0

@TonnyTc запустите новый вопрос или спросите в списке рассылки или gitter пожалуйста. –

0

Согласно документации OPC UA Единой Automatiion существует три типа изменений, которые клиент OPC UA можно подписаться:

  1. подписываться на изменения данных значений переменных (атрибут значения переменного),
  2. подписаться на События объектов (атрибут EventNotifier объекта & EventFilter Set) и
  3. подписаться на агрегированные значения, которые рассчитываются в определенные пользователем интервалы времени на основе текущих значений переменных.

Второй вариант, по-видимому, применим к вашему варианту использования, потому что это тот, где не происходит выборки на сервере OPC UA. По мере того, как происходят события объекта, они добавляются в очередь. Я не знаю, как это сделать, и я не уверен, что это событие объектов - это то, о чем говорит Кевин Херрон, когда он заявил: «События еще не реализованы в SDK сервера».

(Source)