- Как зарегистрировать UA-сервер OPC на сервере обнаружения? Возможно ли это только в том случае, если производитель предоставляет для этого что-то вроде веб-интерфейса, или есть стандартизированный способ сделать это?
Производителю необходимо поддерживать профиль обнаружения. Спецификация OPC UA, часть 11 (доступна бесплатно после регистрации: https://opcfoundation.org/developer-tools/specifications-unified-architecture/) описывает это более подробно.
Существует три основных концепции OPC UA Discovery:
Локальный сервер обнаружения (LDS):
Клиенту необходимо знать IP-адрес сервера LDS, а затем он вызывает RegisterServer
или RegisterServer2
службу через OPC UA.
Локальный сервер обнаружения с расширением многоадресной рассылки (LDS-ME):
Сервер и клиент используют стандартизированные запросы многоадресной рассылки mDNS для поиска других экземпляров OPC UA в сети. Как только сервер LDS-ME объявляет о себе, обычный сервер OPC UA знает IP-адрес и вызывает RegisterServer
или RegisterServer2
Global Discovery Server (GDS):
Для больших систем может быть несколько подсетей, в которых многоадресные запросы не работают. GDS - это сервер обнаружения на уровне предприятия, который также поддерживает управление сертификатами.
- Как мне зарегистрировать UA-сервер OPC, созданный с помощью milo, на сервере обнаружения?
Eclipse Milo не полностью поддерживает функции обнаружения. Он в основном поддерживает СПД. В настоящее время у меня есть открытый PR, но, к сожалению, он еще не объединен: https://github.com/eclipse/milo/pull/89
- Можно ли отключить сервер обнаружения, который автоматически запускается с помощью milo opc ua-server?
Поскольку Eclipse Milo по умолчанию не поддерживает службы обнаружения, он не запускается автоматически. В любом случае вы можете определить, какие службы поддерживаются, добавив или удалив соответствующий набор служб. Посмотрите эту строку:
stackServer.addServiceSet((DiscoveryServiceSet) sessionManager);
https://github.com/eclipse/milo/pull/89/files#diff-6eb416ef6889e36b34b34e32cb78b823R122
- Как получить информацию о зарегистрированных серверах в milo?
После того, как другой сервер зарегистрировался через RegisterServer
или RegisterServer2
, клиент может получить список зарегистрированных серверов с помощью двух сервисных вызовов.
FindServers
возвращает список зарегистрированных серверов, которые называются RegisterServer
или RegisterServer2
FindServersOnNetwork
поддерживается только для серверов LDS-ME и дополнительно возвращает серверы, которые заявили о себе через сообщение mDNS, но еще не зарегистрировались.
Если вам нужен стек с открытым исходным кодом, который полностью реализует функции LDS и LDS-ME, вы можете взглянуть на проект open62541, который представляет собой реализацию OPC UA на C / C ++: https://github.com/open62541/open62541
Функция GDS в настоящее время находится в стадии разработки для стека open62541. (Отказ от ответственности: я один из основных разработчиков open62541)
Дополнительные ресурсы:
Вы также можете ознакомиться с моей статьей о функции обнаружения OPC UA LDS-ME и конкретном сценарии использования под названием OPC UA для Plug & Produce: автоматическое обнаружение устройств с использованием LDS-ME (https://mediatum.ub.tum.de/node?id=1375255)
person
Stefan Profanter
schedule
02.01.2019