Плагин OPC to MQTT Bridge
Чтение OPC UA по карте сигналов и передача значений в локальный MQTT через независимый экземпляр плагина.
Что делает OPC to MQTT Bridge
Bridge является обычным независимым плагином: каждый экземпляр хранит собственные параметры и карту. Он читает внешний OPC UA endpoint и передаёт выбранные сигналы в локальный MQTT. Он не добавляет тип или запись OPC UA в «Серверы», не требует экземпляра поставщика и не создаёт сервер для каждой карты.
Установка пакета в «Библиотеку» не запускает сбор. Bridge не обнаруживает ноды автоматически, не связывает их прямо с моделями и не выполняет команды оборудованию.
Подготовьте подключение
Подготовьте адрес OPC UA, доступ к нужным нодам и карту сигналов. На установке должен быть зарегистрирован локальный MQTT-сервер. В каталоге выберите совместимый пакет Bridge; установите его и проверьте разрешение в лицензии.
- Установите опубликованный подписанный пакет и проверьте точный ID, версию, платформу, совместимую ревизию runtime и разрешение в лицензии.
- В «Экземпляры» создайте Bridge. Укажите согласованный OPC UA endpoint и явно выберите зарегистрированный локальный MQTT-сервер. Пустой выбор не заменяется автоматически; внешний брокер здесь не предлагается.
Добавьте или импортируйте карту
В интерфейсе загружается JSON, не Excel и не CSV. Начните со скачиваемого примера ниже и замените учебные адреса нод на реальные данные своего OPC UA сервера.
- Добавьте сигналы вручную либо выберите «Импорт карты» для JSON. Просмотрите предварительную проверку и явно подтвердите замену карты. Импорт сам по себе не сохраняет и не запускает экземпляр.
- Для каждой строки проверьте 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, не строками.
Адреса и имена в примерах вымышлены. Успешный импорт подтверждает формат карты, но не существование ноды, доступ к ней или правильность измерения. Перед запуском замените источники и топики на согласованные.
{
"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 сервера. Доступность и допустимые интервалы проверьте на конкретном сервере. При начале подписки используются первые уведомления нод, а не дополнительный опрос.
Запустите экземпляр
- Проверьте всю карту, включая отключённые строки. JSON не допускает комментарии и запятую после последнего элемента; имена полей и значения типов чувствительны к регистру.
- Согласуйте права на точный endpoint и топики, сохраните конфигурацию и только затем запустите экземпляр. Настройка такого транспорта требует администратора и разрешения на настройку плагинов.
Проверьте данные и свяжите модель
Топики карты должны начинаться с USEPI в верхнем регистре и иметь непустое продолжение. ID сигнала задаётся явно; выбранный тип проверяет значение, а не преобразует его с потерей данных. Неподходящие строки, в том числе отключённые, нужно исправить до сохранения.
После запуска проверьте начальные и изменившиеся значения в дереве выбранного MQTT-источника, качество и время измерения. Работающий процесс или подтверждение брокера сами по себе не доказывают появление данных в Core.
Bridge передаёт входные сигналы, но не создаёт модель. Свяжите нужные листья USEPI с полями устройства и отдельно включите трансляцию. Core публикует полную актуальную модель в TRAKTOR; это не исходный топик ноды и не история измерений. Формат входа, правила путей и получение полной модели описаны в общей инструкции MQTT.
Защита и состояние
Пароли, личность клиента, сертификаты и доверие задавайте в отдельном разделе защиты экземпляра, а не в общей конфигурации или файле карты. Доступ к этому разделу также требует администратора и разрешения на настройку плагинов.
Изменение защиты проверяет ревизии и требует остановки старых OPC и MQTT соединений перед применением новых приватных данных. При неопределённом результате не повторяйте запись вслепую: проверьте состояние и актуальную ревизию. Отсутствие подтверждённой остановки не считается успешным обновлением.
После переподключения проверяйте текущие значения: пропущенные изменения не являются восстановленной историей. Ограниченная очередь может переполниться; состояние ошибки и повторный запуск не означают доставку без потерь.
None и Anonymous допустимы только для согласованного тестового режима. Наличие режима в форме не подтверждает защищённое соединение или совместимость конкретного промышленного сервера.
Переход с прежнего OPC UA
Если сигналы уже передаёт другой плагин или сборщик, сначала сохраните его карту и параметры. Установка Bridge не переносит эти настройки и не удаляет прежние подключения.
До запуска Bridge остановите старый экземпляр или подключение, которое пишет ту же карту, и проверьте сигналы, топики и потребителей. Два писателя одной карты могут конфликтовать. Переход требует явного согласования и проверки восстановления; не удаляйте старые настройки вслепую.
Не запускайте Bridge с той же картой поверх работающего старого писателя. Сначала согласуйте остановку и переход; установка нового пакета этого не делает.
Ошибки и остановка
Остановка экземпляра прекращает его сбор и публикации, но ранее доставленные значения сами не очищаются. Удаление экземпляра и удаление пакета являются отдельными действиями: сначала проверьте последствия и сохранность нужных данных.
Переход на Bridge не требует удаления MQTT-сервера, моделей или пользовательских пакетов. Не изменяйте их автоматически вместе с картой.