Главное меню

arOPC+MQTT

Автор Dron, 30 апреля 2025, 17:36:53

Dron

Добрый день, начал экспериментировать с возможностями arOPC и решил испытать передачу данных через MQTT: идея такая один arOPC (развернут на сервере) передаёт данные MQTT брокеру (Mosquitto (развернут на моём ПК)), а другой экземпляр arOPC (на моём ПК) их от брокера принимает. Передачу данных MQTT брокеру организовал и проверил с помощью MQTT explorer - всё работает! Для второго сервера arOPC добавил устройство: симуляция, и вроде указал путь к тегу, проверил с помощью диагностики - связь есть! Вроде всё отлично, но почему то статус переменной тега "Uncertain limit ok", и на этом моменте я в тупике, как получить данные? Прикладываю скрины основных параметров коммуникации.
P.s. в arOPC и MQTT я новичок и возможно упускаю совсем банальную вещь  :-\

arOPC

Добрый день.

Очень похоже на несовпадение типов данных с обеих сторон.
Возможно, для публикации, выставлен тип float, а для подписки, строка.

Айрат

Dron

Большое спасибо за идею, попробую описать этот момент в деталях: на сервере значение изначально float, но брокеку я передаю его в формате string, чтобы MQTT explorer нормально отображал, соответственно в подписке пытаюсь ловить его тоже как строку.

arOPC

Добрый день.

В таком случае, вроде как, верно всё делаете.
Можете конфиги скинуть, посмотреть как вы настраиваете на публикацию и подпись?

Айрат

Dron

Добрый день, передаю конфигурацию тегов на сервере и тестовом клиенте

С уважением,
Андрей

arOPC

Добрый день.

Можете прислать конфигу OPC серверов в виде файлов.
Ошибка эта не воспроизводится, возможно в другом месте что то не то.

Айрат

Dron

Добрый день, высылаю конфигурационные файлы для севера и клиента


С уважением,
Андрей

arOPC

Добрый день.

Развернул вашу систему на своём брокере, не наблюдаю такого поведения.
Попробуйте с моим поработать. Параметры для подключения отправил в личку

Айрат

Dron

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

С уважением,
Андрей

Dron

Еще на раз все проверил, и кажется нашел ошибку с типом самой переменной в клиенте (исходная переменная float в MQTT передается в string (utf-8), поменял переменную в клиенте со string на float и всё завелось на локальном брокере. Единственное, если сбросить подключение на клиенте при повторном запуске он не всегда удачно подключается к брокеру: лечится перезапуском брокера.

С уважением,
Андрей