Интеграция с OPC UA
Описание
OPC UA – это современный стандарт передачи данных в промышленных сетях. В данном разделе описывается процесс настройки и использования OPC UA‑коннектора в Entaxy ION: установка компонента, запуск Prosys Simulation Server, создание маршрута и проверка получения данных от выбранного узла.
Процесс взаимодействия с OPC UA состоит из следующих шагов:
-
Устанавливаем фичу camel-milo:
feature:install -r camel-milo -
Проверяем, что установленные бандлы находятся в статусе Active:
590 │ Active │ 50 │ 1.65 │ bcpkix 591 │ Active │ 50 │ 1.65 │ bcprov 592 │ Active │ 50 │ 26.0.0.jre │ Guava: Google Core Libraries for Java 593 │ Active │ 50 │ 3.4.5 │ camel-milo 594 │ Active │ 50 │ 0.3.7 │ bsd-parser-core 595 │ Active │ 50 │ 0.3.7 │ sdk-client 596 │ Active │ 50 │ 0.3.7 │ sdk-core 597 │ Active │ 50 │ 0.3.7 │ sdk-server 598 │ Active │ 50 │ 0.3.7 │ stack-client 599 │ Active │ 50 │ 0.3.7 │ stack-core 600 │ Active │ 50 │ 0.3.7 │ stack-server 601 │ Active │ 50 │ 3.0.2 │ FindBugs-jsr305 602 │ Active │ 50 │ 0 │ wrap_file__C__Users_lyako_.m2_repository_com_digitalpetri_fsm_strict-machine_0.2_stric 603 │ Active │ 50 │ 0 │ wrap_file__C__Users_lyako_.m2_repository_com_digitalpetri_netty_netty-channel-fsm_0.3_ -
Скачиваем и устанавливаем программный эмулятор промышленного оборудования Prosys OPC UA Simulation Server:
-
На главной вкладке приложения найдем адрес OPC UA сервера, который будет использоваться клиентом для подключения.
В качестве источника данных используем пилообразный сигнал. Для этого откроем вкладку Objects, перейдем в папку Simulation и выберем переменную Sawtooth. На вкладке Атрибуты скопируем значение NodeId, уникального идентификатора узла, из которого будут считываться данные (ns=3;i=1003).
Это значение будет использоваться в параметре подключения:
node=RAW(ns=3;i=1003)Где:
-
node=RAW(…) - означает передачу идентификатора узла в исходном формате OPC UA без какой-либо интерпретации или преобразования со стороны клиента
-
ns=3 (Namespace Index) — индекс пространства имен
-
i=1003 (Identifier) — уникальный идентификатор самого узла внутри указанного пространства имен
-
-
Создаем профиль системы
opcuaи добавляем к нему:-
Входной кастомный коннектор. В точке кастомизации custom-route создаем маршрут, который выполняет подключение к OPC UA серверу, читает значение указанного узла и логирует полученные данные:
<?xml version="1.0" encoding="UTF-8"?> <entaxy:object-input-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0"> <from uri="milo-client:opc.tcp://LAPTOP-4PQ1JPTN:53530/OPCUA/SimulationServer?allowedSecurityPolicies=None&node=RAW(ns=3;i=1003)"/> <log message="OPC UA received data: ${body}"/> <m:respond now="true" continue="false"/> </entaxy:object-input-route>
-
-
Сохраняем изменения. При успешном подключении видим в логах отображение полученных данных:
14:15:57.206 INFO [milo-shared-thread-pool-0] OPC UA recived data: DataValue{value=Variant{value=-1.2}, status=StatusCode{name=Good, value=0x00000000, quality=good}, sourceTime=DateTime{utcTime=134201205570000000, javaDate=Wed Apr 08 14:15:57 MSK 2026}, serverTime=DateTime{utcTime=134201205571990000, javaDate=Wed Apr 08 14:15:57 MSK 2026}}