Здравствуйте.
Экспериментально выяснено, что при перезагрузке контроллера скорость порта в “Шлюз MQTT - Modbus RTU/TCP slave” слетает на 9600, хотя в UI показывает то, что было установлено.
Изменение скорости в UI и сохранение помогает до следующей перезагрузки.
Добрый день
Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера до и после перезагрузки. Создание архива описано в документации.
diag_output_AJV7E3S2_2025-02-18-15.16.18.zip (408,1 КБ)
diag_output_AJV7E3S2_2025-02-18-15.14.51.zip (408,2 КБ)
Первый по времени архив - сразу после включения (перезагрузки контроллера).
Второй - после того, как поменял скорость в UI.
Добрый день,
Прошу проверить, какая скорость установлена в конфигурационном файле:
cat /etc/wb-mqtt-mbgate.conf
Также прошу прислать скриншоты веб-интерфейса и вывод команды.
root@wirenboard-AJV7E3S2:~# cat /etc/wb-mqtt-mbgate.conf
{
“modbus”: {
“path”: “/dev/ttyRS485-2”,
“baud_rate”: 115200,
“parity”: “N”,
“data_bits”: 8,
“stop_bits”: 1
},
“mqtt”: {
“host”: “/var/run/mosquitto/mosquitto.sock”,
“port”: 0,
“auth”: false,
“username”: “”,
“password”: “”
},
“debug”: false,
“registers”: {
“discretes”: ,
“coils”: [
{
“enabled”: true,
“topic”: “HMI sauna/Печка”,
“unitId”: 2,
“address”: 2
}
],
“inputs”: ,
“holdings”: [
{
“enabled”: true,
“topic”: “HMI sauna/°t фактическая”,
“unitId”: 2,
“address”: 0,
“format”: “unsigned”,
“size”: 2,
“scale”: 1,
“byteswap”: false,
“wordswap”: false
},
{
“enabled”: true,
“topic”: “HMI sauna/°t целевая”,
“unitId”: 2,
“address”: 1,
“format”: “unsigned”,
“size”: 2,
“scale”: 1,
“byteswap”: false,
“wordswap”: false
}
]
}
}
Скорость в настройках всегда 115200. Для того чтобы “поменять в UI” я изменяю ее на что-то другое (например, 2400), а потом еще раз меняю на 115200.
Видимо, применяются настройки по разному при запуске сервиса и при перечитывании конфигурации после изменения в UI.
Добрый день,
Судя по выводу, всё отображается корректно.
Прошу выполнить следующие шаги:
- Проверьте текущее значение строки в конфигурационном файле:
cat /etc/wb-mqtt-mbgate.conf | grep "baud_rate"
- Измените значение
baud_rate
, если требуется. - Сохраните изменения и снова проверьте файл.
- Перезагрузите контроллер.
Сообщите, сохраняются ли изменения после перезагрузки.
Это мы с вами проверили первым шагом в этой переписке - я прислал вам архивы с этим конфигом после перезагрузки и после изменения в UI.
В файлах все хорошо, UI в них все меняет. Очевидно, разница только в применении конфига при старте сервиса и при сигнале из UI (не знаю, как именно вы применяете настройки на сервисе).
Сервис просто перезапускается. Нет разницы - запуск или “применение”.
А для чего этот же порт включен в настройках wb-mqtt-serial?
Из логов очевидно что сервис запускается вторым и меняет настройки порта как они у него сконфигурированы.
В wb-mqtt-serial порт был включен по умолчанию. Мне и в голову не пришло, что там надо что-то менять
Отключение помогло. Спасибо!
Ну да, это заводское состояние.
Дело в том что порты и другие аппаратные ресурсы могут быть использованы только одним сервисом, монопольно.
Рад что смог помочь.
Полагаю, в сервисах не хватает lock-файлов чтобы идентифицировать факт использования устройства.