Я начал проект OPC UA, используя проект Milo для создания клиента OPC UA. Я все еще новичок в OPC UA. Прямо сейчас я застрял в поисках лучшей практики для чтения значений с нескольких узлов после изменения данных одного конкретного узла.
Информационная модель выглядит так: RfidSensorType
На моем сервере у меня будет несколько объектов этого RfidSensorType. Клиент создает подписку на узле CurrentAtTag для прослушивания изменений данных.
Мой вопрос: при изменении значения CurrentAtTag в моем клиенте будет вызвана функция обратного вызова, которая содержит UaMonitoredItem и DataValue CurrentAtTag. В моем приложении мне нужно обработать (одновременно) также значения Station, IOLPort и CurrentValue, которые также меняются в этот момент. Как я могу получить доступ к этим значениям в обратном вызове от CurrentAtTag?
Мое единственное решение: использование синхронного запроса на чтение в этом обратном вызове -> Это законный подход?
Мои исследования: 1) TriggeringService Я видел, что существует TriggerigService, который отслеживает элементы, отправляет отчеты только в том случае, если один конкретный узел меняет свои значения. Проблема: это вызовет несколько обратных вызовов, а noz - только один ... мне нужна вся информация одновременно для их дальнейшей обработки ..
2) Мониторинг событий В мониторинге событий можно выбрать «Поля событий», которые будут возвращаться для каждого уведомления о событии. Я не уверен, что могу выбрать CurrentAtTag, Station, IOLPort и CurrentValue ...
CurrentAtTag
иIOLPort
? Как то первое - медленное, а второе - быстро меняющееся? В противном случае я бы просто подписался на них всех и посмотрел, в порядке ли производительность. - person astrowalker   schedule 11.10.2016