Локальное обнаружение OPC UA
Серверы обнаружения позволяют клиентам OPC UA получать сведения об одном или нескольких серверах OPC UA из одной точки.
Существует два типа серверов обнаружения OPC UA:
- Локальные серверы обнаружения (LDS)
- Глобальные серверы обнаружения (GDS)
В этой статье показано, как зарегистрировать сервер OPC UA в LDS и как клиент OPC UA может использовать этот LDS для подключения к серверу OPC UA.
Введение
Как следует из названия, локальный сервер обнаружения (LDS) может работать на том же устройстве, что и один или несколько серверов OPC UA. Например, можно установить один или несколько серверов OPC UA на управляющем устройстве PLCnext вместе с сервером OPC UA, входящим в состав PLCnext Runtime. Если на этом устройстве PLCnext Control также установлена LDS, то все серверы OPC UA на этом устройстве могут зарегистрироваться в LDS. Затем удаленный клиент OPC UA может просто запросить у LDS сведения обо всех серверах OPC UA, работающих на этом устройстве управления PLCnext, и использовать эти данные для прямого подключения к одному или нескольким из этих серверов OPC UA.
Несколько сбивает с толку тот факт, что сервер OPC UA также может зарегистрироваться в LDS, работающем на удаленном компьютере. машина. Таким образом, клиент OPC UA может использовать одну LDS для обнаружения всех серверов OPC UA, работающих во всей сети устройств.
В этой статье Unified Automation есть хорошее введение в серверы обнаружения OPC UA:
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 address: 192.168.1.10
DNS name: axc-f-2152-1
Local Discovery Server: Windows 10 PC
IP address: 192.168.1.42
DNS name: mypc.mycompany.com
OPC UA Client: Debian 10 PC
IP address: 192.168.1.3
Эти IP-адреса и DNS-имена будут использоваться в этой статье, но, конечно, вы должны изменить их для своего собственного приложения.
Настройка DNS-имен
Если в вашей сети нет DNS-сервера, отредактируйте hosts
файл на каждом устройстве.
Файл hosts находится в следующем каталоге:
- Windows:
C:\Windows\System32\drivers\etc\
- Линукс:
/etc/
Добавьте следующие новые записи DNS (заменив IP-адреса и имена DNS для вашего приложения):
В ПЛК добавьте LDS:
192.168.1.42 mypc.mycompany.com
На машине LDS добавьте ПЛК:
192.168.1.10 axc-f-2152-1
На клиентской машине OPC UA добавьте и LDS, и ПЛК:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Убедитесь, что все записи верны, проверив DNS-имена. (не IP-адреса), которые вы настроили на каждом устройстве.
Установите локальный сервер обнаружения
OPC Foundation предоставляет локальный сервер обнаружения в виде исполняемого файла на базе Windows. Это можно скачать бесплатно (после регистрации) с этой страницы:
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
Загрузите и установите этот LDS на компьютер с Windows.
Установите клиент OPC UA
В этом примере используется UaExpert из Unified Automation:
https://www.unified-automation.com/products/development-tools/uaexpert.html
Загрузите и установите UaExpert на клиентский компьютер OPC UA.
Найти сертификаты
Различные компоненты OPC UA — сервер, клиент и LDS — должны доверять друг другу, чтобы обеспечить безопасную связь. Доверие может быть достигнуто путем обмена общедоступными сертификатами, то есть помещением общедоступного сертификата каждого компонента в «хранилище доверия» для компонентов, которым необходимо доверять ему.
Публичный сертификат для каждого компонента можно найти следующим образом:
Сервер OPC UA
Сертификат устройства по умолчанию можно найти в хранилище удостоверений «OPC UA-self-signed». Это будет отличаться, если вы используете свой собственный сертификат.
Сертификат сервера OPC UA можно загрузить со страницы управления ПЛК через веб-интерфейс. Затем сертификат необходимо преобразовать из формата PEM в формат DER, чтобы его можно было использовать в других компонентах. Для этого преобразования можно использовать множество бесплатных инструментов, в том числе openssl
инструмент командной строки Linux. Пример команды bash, которую вы можете использовать:
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
Сервер LDS
По умолчанию сертификат для LDS находится здесь:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
Клиент OPC UA
- В UaExpert выберите пункт меню «Настройки» -> «Управление сертификатами».
- Нажмите кнопку «Копировать сертификат приложения в…».
- Сохраните сертификат где-нибудь под рукой.
Копировать сертификаты в доверенные хранилища
Скопируйте каждый сертификат (в формате .der) в хранилища доверенных сертификатов для двух других компонентов.
Хранилище доверия для каждого компонента может быть расположено следующим образом:
Сервер OPC UA (ПЛК)
Доверенным хранилищем является папка /opt/plcnext/Security/TrustStores/Empty/trusted
.
LDS
Доверенным хранилищем является папка C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
.
Клиент OPC UA (UaExpert)
- В UaExpert выберите пункт меню «Настройки» -> «Управление сертификатами».
- Нажмите кнопку «Открыть местоположение сертификата». Это хранилище доверия для UaExpert.
Проверить все брандмауэры
Как минимум убедитесь, что брандмауэр на сервере LDS разрешает трафик через порт 4840.
Настройка сервера OPC UA в PLCnext Engineer
В PLCnext Engineer в окне конфигурации OPC UA:
- Проверьте следующее:
- Имя DNS такое же, как и настроенное ранее.
- «Видимость переменных» нет «Нет».
- Включить регистрацию Discovery
- Установите для URL-адреса сервера значение
opc.tcp://mypc.mycompany.com:4840
. (заменив DNS-имя вашего компьютера с LDS)
Запишите проект PLCnext Engineer в ПЛК.
Теперь ПЛК автоматически попытается зарегистрировать сервер OPC UA в LDS.
Обнаружение и подключение к серверу OPC UA
- В UaExpert нажмите кнопку + (плюс) на панели инструментов.
- Нажмите правой кнопкой мыши на ветвь "Локальный" древовидного представления и выберите "Редактировать URL-адрес обнаружения".
- В текстовом поле введите
opc.tcp://mypc.mycompany.com:4840
. (заменив DNS-имя вашего компьютера с LDS) и нажмите OK.
Сервер OPC UA должен появиться в локальной ветви дерева. Теперь вы можете использовать эти данные для подключения к серверу 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. Отображаемое имя LDS — «OPC UA Local Discovery Server». - Обратите внимание, что LDS может вернуть URL-адрес сервера OPC UA с
.local.
. добавляется к DNS-имени. Это DNS-имя должно разрешаться многоадресным сервером mDNS. Если это DNS-имя не может быть разрешено, в окне журнала UaExpert появится сообщение об ошибке, содержащее URL-адрес. В задачи данного руководства не входит описание установки и настройки многоадресного DNS-сервера для разрешения DNS-имен с кодом.local.
. суффикс.
Заключение
Очевидно, что нет большой выгоды от использования LDS, когда в сети есть только один сервер OPC UA. Но для сетей, включающих большое количество серверов OPC UA, LDS обеспечивает удобный способ просмотра и подключения к этим серверам.
Промышленные технологии
- Глобальные, локальные и нелокальные переменные Python
- Ответ Discovery на проблемы цепочки поставок
- Область видимости переменной в C++
- Java 10 — определение типа локальной переменной
- Каковы преимущества сотрудничества с местным производителем металлоконструкций?
- Процесс открытия и почему он важен для ваших проектов развития?
- Локальные и глобальные системы управления производством
- Как компании B2B могут улучшить свое SEO
- Сертификат OPC UA «Push Management»
- Как вызвать функциональный блок из клиента OPC UA с помощью информационной модели