Добрый день!
После обновления на 2410 перестал работать шлюз mbgate.
Со стороны modbus TCP все хорошо (и снифером пакеты смотрю со стороны другого устройства, и на стенде запускал модбас пул, подключался к контроллеру, соединение держит, все хорошо).
При изменении в вебе значения транслируемого параметра, вижу его изменения по модбас тср.
При записи по модбас (5ой функцией) значение не доходит до броккера, и в момент получения вайренбордом пакета mbgate сервис в журнал выдает ошибку ERROR: [mqtt] publish error: MOSQ_ERR_INVAL.
До обновления все работало при тех же параметрах настройки (то, что по модбасу летит то, что нужно - это точно).
По возможности прошу побыстрее воспроизвести проблему (чтобы понять, откатываться или нет).
На реальных объектах много света построено на связке “Сторонний контроллер - modbus TCP - mbgate - Диммеры WB”.
modbus_client --debug -mtcp 10.0.0.80 -p502 -a113 -t 0x01 -r 0x0
Connecting to 10.0.0.80:502
[00][01][00][00][00][06][71][01][00][00][00][01]
Waiting for a confirmation...
<00><01><00><00><00><04><71><01><01><00>
SUCCESS: read 1 of elements:
Data: 0x00
При этом в Debug выводе wb-mqtt-mbgate
wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><01><00><00><00><01>
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus incoming connection
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: ERROR Connection reset by peer: read
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><01><00><00><00><01>
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: [00][01][00][00][00][04][71][01][01][00]
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:49:32 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus closed connection
Записываю:
modbus_client --debug -mtcp 10.0.0.80 -p502 -a113 -t 0x05 -r 0x0 1
Data to write: 0x1
Connecting to 10.0.0.80:502
[00][01][00][00][00][06][71][05][00][00][FF][00]
Waiting for a confirmation...
<00><01><00><00><00><06><71><05><00><00><FF><00>
SUCCESS: written 1 elements!
modbus_client --debug -mtcp 10.0.0.80 -p502 -a113 -t 0x05 -r 0x0 0
Data to write: 0x0
Connecting to 10.0.0.80:502
[00][01][00][00][00][06][71][05][00][00][00][00]
Waiting for a confirmation...
<00><01><00><00><00><06><71><05><00><00><00><00>
SUCCESS: written 1 elements!
Соответственно:
wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><05><00><00><FF><00>
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus incoming connection
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><05><00><00><FF><00>
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [gateway] Set value via Modbus: /devices/wb-msw-v3_113/controls/Buzzer : 1
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: ERROR Connection reset by peer: read
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: [00][01][00][00][00][06][71][05][00][00][FF][00]
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:52:20 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus closed connection
wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><05><00><00><00><00>
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus incoming connection
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: <01><00><00><00><06><71><05><00><00><00><00>
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [gateway] Set value via Modbus: /devices/wb-msw-v3_113/controls/Buzzer : 0
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: ERROR Connection reset by peer: read
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: [00][01][00][00][00][06][71][05][00][00][00][00]
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: Waiting for an indication...
Nov 22 12:52:22 wirenboard-AYK5U4TB wb-mqtt-mbgate[3058541]: DEBUG: [modbus] Modbus closed connection
Для проверки отключите пожалуйста все кроме одного регистры и включите debug - чтобы показать что в лог пишется при выполнении записи.
Проблемы только на запись.
Если я из веб морды меняю переключателем состояние - по модбасу считываю его без проблем.
Если я записываю по модбасу, то состояние не меняется. При этом , как видно, на скриншоте, команда по модбасу прилетает в WB , а вот в брокер записать не может
Гораздо эффективнее - диагностический архив с включенным debug wb-mqtt-mbgate. сделанный через пару минут после перезапуска wb-mqtt-mbgate. Ну и вывод из modbus_client, которым читаете-записываете значения…
Вывод модбас клиента и журнала сервиса mbgate
(Сначала меняю состояние в веб интерфейса ВБ - он считывает значения, потом из клиента отправляю команду вкл - выкл - вкл -выкл). Файлы прикладываю. (Метки времени немного не совпадают)
Выложите еще пожалуйста диагностический архив. Создание архива описано в документации.
Позову разработчиков, у меня воспроизвести не получается. Посмотрю еще в логе самого брокера, (возможно он перегружен, как вариант).