Подпишитесь на несколько узлов OPC-UA одновременно

Мне нужно подписаться на ~ 1000 узлов, которые были созданы в иерархии, например:

ns = 2; s = 0: Производство. E01. Температура окружающей среды.

ns = 2; s = 0: Производство.E01.Ambient.WindDir

ns = 2; s = 0: Производство.E01.Commands.AckAllErrors

ns = 2; s = 0: Производство. E03. Температура окружающей среды.

ns = 2; s = 0: Производство.E03.Ambient.WindDir

ns = 2; s = 0: Производство.E03.Ambient.WindSpeed

Я отношусь к каждому обновлению одинаково, поэтому вызов функции subscription.monitor() для каждого из них и создание новой функции обратного вызова не кажутся мне оптимальным способом.

Можно ли подписаться на несколько узлов с шаблоном, например на все узлы, которые подпадают под:

ns = 2; s = 0: Производство E01.


person mustafa    schedule 31.01.2019    source источник


Ответы (1)


Нет - нет возможности подписаться на «папку» в OPC UA.

Самый простой способ продолжить в вашем случае - сначала просмотреть папки с помощью службы OPC UA Обзор.

Сервер OPC UA вернет вам все ссылки с запрошенного начального узла (ссылки родитель-потомок OPC UA могут быть Organizes, HasComponent, Has Property , ...).

Затем вы можете использовать службы OPC UA CreateSubscription / CreateMonitoredItems для подписки на узлы.

person Camille G.    schedule 31.01.2019
comment
Есть ли ограничение на количество подписок? - person mustafa; 01.02.2019
comment
Да, есть. Это зависит от конфигурации вашего сервера. Обратите внимание, что вам не нужно создавать новую подписку для каждого отслеживаемого элемента. - person Frank Meerkötter; 01.02.2019