Использование OPC UA Local Discovery Servers для эффективной регистрации серверов и подключения клиентов
Серверы обнаружения позволяют OPC UA клиентам получать сведения об одном или нескольких OPC UA серверах из единственной точки.
Существует два типа серверов обнаружения OPC UA:
- Local Discovery Servers (LDS)
- Global Discovery Servers (GDS)
Эта статья покажет, как зарегистрировать OPC UA сервер в LDS и как OPC UA клиент может использовать этот LDS для подключения к OPC UA серверу.
Введение
Как следует из названия, Local Discovery Server (LDS) может запускаться на том же устройстве, что и один или несколько OPC UA серверов. Например, можно установить один или несколько OPC UA серверов на устройстве PLCnext Control наряду с OPC UA сервером, входящим в состав PLCnext Runtime. Если LDS также установлен на этом устройстве PLCnext Control, то все OPC UA серверы на этом устройстве могут зарегистрироваться в LDS. Тогда удаленный OPC UA клиент может просто запросить у LDS сведения обо всех OPC UA серверах, запущенных на этом устройстве PLCnext Control, и использовать эти сведения для прямого подключения к одному или нескольким из этих OPC UA серверов.
Немного сбивчиво, но также возможно, что OPC UA сервер регистрируется в LDS, запущенном на удаленной машине. Таким образом, один LDS может использоваться OPC UA клиентом для обнаружения всех OPC UA серверов, запущенных во всей сети устройств.
Хорошее введение в серверы обнаружения OPC UA есть в этой статье от Unified Automation:
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
Подготовка
Перед выполнением шагов в этой статье вы должны понимать:
- Базовую конфигурацию OPC UA сервера.
- Как подключить клиента к OPC UA серверу на устройстве PLCnext Control.
- Как хранятся и управляются сертификаты безопасности на устройстве PLCnext Control.
Процедура
Для этого примера сетевая настройка следующая:
OPC UA Server: AXC F 2152 FW 2020.6.1 IP: 192.168.1.10 DNS: axc-f-2152-1
Local Discovery Server: Windows 10 PC IP: 192.168.1.42 DNS: mypc.mycompany.com
OPC UA Client: Debian 10 PC IP: 192.168.1.3
Эти IP-адреса и DNS-имена будут использоваться в этой статье, но конечно вы должны изменить их для своего приложения.
Настройка DNS-имен
Если ваша сеть не включает DNS-сервер, отредактируйте файл hosts на каждом устройстве.
Файл hosts находится в следующих директориях:
- Windows:
C:\Windows\System32\drivers\etc\ - Linux:
/etc/
Добавьте следующие новые DNS-записи (подставляя IP-адреса и DNS-имена для вашего приложения):
На ПЛК добавьте LDS:
192.168.1.42 mypc.mycompany.com
На машине LDS добавьте ПЛК:
192.168.1.10 axc-f-2152-1
На машине OPC UA Client добавьте и LDS, и ПЛК:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Проверьте, что все записи верны, пропинговав DNS-имена (не IP-адреса), которые вы настроили на каждом устройстве.
Установка Local Discovery Server
OPC Foundation предоставляет Local Discovery Server в виде исполняемого файла для Windows. Его можно скачать бесплатно (после регистрации) на этой странице:
Скачайте и установите этот LDS на Windows-машине.
Установка OPC UA клиента
В этом примере используется UaExpert от Unified Automation:
https://www.unified-automation.com/products/development-tools/uaexpert.html
Скачайте и установите UaExpert на машине OPC UA Client.
Поиск сертификатов
Различные OPC UA компоненты — Сервер, Клиент и LDS — должны доверять друг другу для обеспечения безопасных коммуникаций. Доверие можно достичь обменом публичными сертификатами — то есть помещением публичного сертификата каждого компонента в «trust store» компонента(ов), которые должны ему доверять.
Публичный сертификат для каждого компонента можно найти следующим образом:
OPC UA Server
Сертификат устройства можно найти в Identity Store «OPC UA-self-signed» по умолчанию. Это будет иначе, если вы используете свой сертификат.
Сертификат OPC UA сервера можно скачать со страницы Web Based Management ПЛК. Сертификат затем должен быть конвертирован из формата PEM в формат DER для использования другими компонентами. Существует большое количество бесплатных инструментов для этой конвертации, включая командную строку openssl в Linux. Пример bash-команды, которую вы можете использовать:
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
LDS Server
По умолчанию сертификат для LDS находится здесь:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
OPC UA Client
- В UaExpert выберите пункт меню Settings → Manage Certificates.
- Нажмите кнопку «Copy Application Certificate To…».
- Сохраните сертификат в удобном месте.
Копирование сертификатов в Trust Stores
Скопируйте каждый сертификат (в формате .der) в trust stores для других двух компонентов.
Trust store для каждого компонента можно найти следующим образом:
OPC UA Server (ПЛК)
Trust store — папка /opt/plcnext/Security/TrustStores/Empty/trusted
LDS
Trust store — папка C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
OPC UA Client (UaExpert)
- В UaExpert выберите пункт меню Settings → Manage Certificates.
- Нажмите кнопку «Open Certificate Location». Это trust store для UaExpert.
Проверка всех файрволов
Минимум: проверьте, что файрвол на сервере LDS разрешает трафик на порту 4840.
Настройка OPC UA сервера в PLCnext Engineer
В PLCnext Engineer, в окне конфигурации OPC UA:
- Проверьте, что:
- DNS-имя совпадает с настроенным ранее.
- «Visibility of variables» не равно «None».
- Включите Discovery Registration
- Установите Server URL в
opc.tcp://mypc.mycompany.com:4840(подставляя DNS-имя вашей машины LDS)
Запишите проект PLCnext Engineer на ПЛК.
ПЛК теперь автоматически попытается зарегистрировать OPC UA сервер в LDS.
Обнаружение и подключение к OPC UA серверу
- В UaExpert нажмите кнопку + (плюс) на панели инструментов.
- Нажмите правой кнопкой на ветку «Local» в дереве и выберите «Edit Discovery URL».
- В текстовом поле введите
opc.tcp://mypc.mycompany.com:4840(подставляя DNS-имя вашей машины LDS) и нажмите OK.
OPC UA сервер должен появиться в ветке Local дерева. Теперь вы можете использовать эти сведения для подключения к OPC UA серверу обычным способом.
Устранение неполадок
- Файл лога LDS находится здесь:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.log. Можно изменить LogLevel (и многие другие параметры) в файле:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.ini.LogLevel = debugдает наиболее подробное логирование. После изменения настроек LDS может потребоваться перезапуск LDS через консоль Windows «Services». Отображаемое имя LDS — «OPC UA Local Discovery Server». - Обратите внимание, что LDS может вернуть URL OPC UA сервера с добавленным
.local.к DNS-имени. Это DNS-имя должно быть разрешимо мультикаст mDNS сервером. Если это DNS-имя не может быть разрешено, появится сообщение об ошибке, содержащее URL, в окне лога UaExpert. Описание установки и настройки мультикаст DNS сервера для разрешения DNS-имен с суффиксом.local.выходит за рамки этого руководства.
Заключение
Очевидно, что использование LDS не приносит большой пользы, когда в сети только один OPC UA сервер. Но для сетей, включающих большое количество OPC UA серверов, LDS предоставляет удобный способ просмотра и подключения к этим серверам.
Промышленные технологии
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- IoT-решение Discovery трансформирует управление цепями поставок
- Область видимости переменных в C++: локальные и глобальные
- Java 10: вывод типов локальных переменных (var) — руководство
- Почему партнерство с локальным металлообработчиком повышает надежность и рентабельность
- Мастерство фазы Discovery: почему она ведёт к успеху в проектах разработки
- Локальный vs Глобальный контроль производства: какая система ведет к эффективности
- Проверенные SEO-стратегии для B2B-компаний для видимости и роста
- Централизованное развертывание сертификатов OPC UA через GDS Push Management
- Вызов функциональных блоков ПЛК через OPC UA клиентов: Практическое руководство