К содержимому
BlueTraktor
BlueTraktor · Обзор и работа с системой

Плагин OPC to MQTT Bridge

Чтение OPC UA по карте сигналов и передача значений в локальный MQTT через независимый экземпляр плагина.

Что делает OPC to MQTT Bridge

Bridge является обычным независимым плагином: каждый экземпляр хранит собственные параметры и карту. Он читает внешний OPC UA endpoint и передаёт выбранные сигналы в локальный MQTT. Он не добавляет тип или запись OPC UA в «Серверы», не требует экземпляра поставщика и не создаёт сервер для каждой карты.

Установка пакета в «Библиотеку» не запускает сбор. Bridge не обнаруживает ноды автоматически, не связывает их прямо с моделями и не выполняет команды оборудованию.

Подготовьте подключение

Подготовьте адрес OPC UA, доступ к нужным нодам и карту сигналов. На установке должен быть зарегистрирован локальный MQTT-сервер. В каталоге выберите совместимый пакет Bridge; установите его и проверьте разрешение в лицензии.

  1. Установите опубликованный подписанный пакет и проверьте точный ID, версию, платформу, совместимую ревизию runtime и разрешение в лицензии.
  2. В «Экземпляры» создайте Bridge. Укажите согласованный OPC UA endpoint и явно выберите зарегистрированный локальный MQTT-сервер. Пустой выбор не заменяется автоматически; внешний брокер здесь не предлагается.

Добавьте или импортируйте карту

В интерфейсе загружается JSON, не Excel и не CSV. Начните со скачиваемого примера ниже и замените учебные адреса нод на реальные данные своего OPC UA сервера.

  1. Добавьте сигналы вручную либо выберите «Импорт карты» для JSON. Просмотрите предварительную проверку и явно подтвердите замену карты. Импорт сам по себе не сохраняет и не запускает экземпляр.
  2. Для каждой строки проверьте NodeId или квалифицированный путь, название, тип, размерность, ID сигнала, точный топик и признак включения.

Как устроен файл карты

Сохраните текст в UTF-8 с расширением .json. В корне нужны schemaVersion: 1 и массив mappings; один объект массива описывает один сигнал. Это карта чтения, не MQTT-сообщение и не полная конфигурация экземпляра. Адрес сервера, выбор MQTT и пароли в неё не добавляют.

В примере Pressure — подпись для человека, ns=2;s=Pressure — NodeId, Double — фактический тип ноды, scalar — одиночное значение. Замените source.value по данным сервера: s= обозначает строковый идентификатор, i= — числовой. Эти формы не взаимозаменяемы.

topic задаёт отдельный точный топик с префиксом USEPI/, signalId — ID документа внутри сообщения. Для этого примера лист значения под выбранным MQTT-источником будет examples/opc/pump-1/pressure/value. name не заменяет signalId. payloadFormat оставьте usepi; enabled и retain задаются логическими true или false, не строками.

Адреса и имена в примерах вымышлены. Успешный импорт подтверждает формат карты, но не существование ноды, доступ к ней или правильность измерения. Перед запуском замените источники и топики на согласованные.

json
{
  "schemaVersion": 1,
  "mappings": [{
    "name": "Pressure",
    "source": {"kind": "nodeId", "value": "ns=2;s=Pressure"},
    "dataType": "Double", "shape": "scalar",
    "topic": "USEPI/examples/opc/pump-1", "signalId": "pressure",
    "payloadFormat": "usepi", "enabled": true, "retain": true
  }]
}

Какие значения можно читать

dataType проверяет тип ноды, а не преобразует произвольные данные: Double и Float — названия OPC UA, не Float64 и Float32 из карты Modbus. shape принимает auto, scalar, array или matrix. Неподходящий тип или размерность не выдаются за корректное измерение; полный перечень типов приведён в справочнике.

Настройте опрос или подписку

Выберите опрос или подписку, интервалы и MQTT QoS. При опросе Bridge читает значения по таймеру; при подписке получает уведомления OPC UA сервера. Доступность и допустимые интервалы проверьте на конкретном сервере. При начале подписки используются первые уведомления нод, а не дополнительный опрос.

Запустите экземпляр

  1. Проверьте всю карту, включая отключённые строки. JSON не допускает комментарии и запятую после последнего элемента; имена полей и значения типов чувствительны к регистру.
  2. Согласуйте права на точный endpoint и топики, сохраните конфигурацию и только затем запустите экземпляр. Настройка такого транспорта требует администратора и разрешения на настройку плагинов.

Проверьте данные и свяжите модель

Топики карты должны начинаться с USEPI в верхнем регистре и иметь непустое продолжение. ID сигнала задаётся явно; выбранный тип проверяет значение, а не преобразует его с потерей данных. Неподходящие строки, в том числе отключённые, нужно исправить до сохранения.

После запуска проверьте начальные и изменившиеся значения в дереве выбранного MQTT-источника, качество и время измерения. Работающий процесс или подтверждение брокера сами по себе не доказывают появление данных в Core.

Bridge передаёт входные сигналы, но не создаёт модель. Свяжите нужные листья USEPI с полями устройства и отдельно включите трансляцию. Core публикует полную актуальную модель в TRAKTOR; это не исходный топик ноды и не история измерений. Формат входа, правила путей и получение полной модели описаны в общей инструкции MQTT.

Защита и состояние

Пароли, личность клиента, сертификаты и доверие задавайте в отдельном разделе защиты экземпляра, а не в общей конфигурации или файле карты. Доступ к этому разделу также требует администратора и разрешения на настройку плагинов.

Изменение защиты проверяет ревизии и требует остановки старых OPC и MQTT соединений перед применением новых приватных данных. При неопределённом результате не повторяйте запись вслепую: проверьте состояние и актуальную ревизию. Отсутствие подтверждённой остановки не считается успешным обновлением.

После переподключения проверяйте текущие значения: пропущенные изменения не являются восстановленной историей. Ограниченная очередь может переполниться; состояние ошибки и повторный запуск не означают доставку без потерь.

None и Anonymous допустимы только для согласованного тестового режима. Наличие режима в форме не подтверждает защищённое соединение или совместимость конкретного промышленного сервера.

Переход с прежнего OPC UA

Если сигналы уже передаёт другой плагин или сборщик, сначала сохраните его карту и параметры. Установка Bridge не переносит эти настройки и не удаляет прежние подключения.

До запуска Bridge остановите старый экземпляр или подключение, которое пишет ту же карту, и проверьте сигналы, топики и потребителей. Два писателя одной карты могут конфликтовать. Переход требует явного согласования и проверки восстановления; не удаляйте старые настройки вслепую.

Не запускайте Bridge с той же картой поверх работающего старого писателя. Сначала согласуйте остановку и переход; установка нового пакета этого не делает.

Ошибки и остановка

Остановка экземпляра прекращает его сбор и публикации, но ранее доставленные значения сами не очищаются. Удаление экземпляра и удаление пакета являются отдельными действиями: сначала проверьте последствия и сохранность нужных данных.

Переход на Bridge не требует удаления MQTT-сервера, моделей или пользовательских пакетов. Не изменяйте их автоматически вместе с картой.