Добрый всем день. Помогите плз, а то уже и не знаю, в чем еще может быть дело…
Имеется WB-MGE, настроен Modbus RTU over TCP, 9600N1, к нему подключены 2-а китайских датчика - скорости и направления ветра с адресами 112 и 113 соответственно.
В Modbus Poll (фото прилагается) все прекрасно опрашивается, и по раздельности, и одновременно подключенные. Нужен регистр 0x2A - ну для начала хотя бы по одному регистру с устройства.
Написал простенький json (прилагается). Устройства практически идентичные, регистр один и тот же. Так вот в wirenboard датчик скорости работает, а направления дает ошибку.
Вообще - запрашиваете из ModbusPoll функцией 03 (holding регистр) а в шаблоне - input (функция 04) Не все устройства могут отдавать holding при запросе input.
Собственно, ошибок в шаблоне не вижу, проверил у себя на виртуальном устройстве.
Вот чего говорит
Jun 23 10:39:07 wirenboard-ABHCR5D4 wb-mqtt-serial[32105]: WARNING: [modbus] failed to read 1 input(s) @ 42 of device modbus:113: Serial protocol error: malformed response: invalid data size
Так, а включите пожалуйста debug (не забудьте потом выключить), будет в лог выводить и запросы и ответы/
Но дело, сеорее в том что не хватает в шаблоне
Вы были абсолютно правы, когда написали насчет " Не все устройства могут отдавать holding при запросе input". Я просто заменил на holding и все заработало. Результат полностью устраивает. СПАСИБО!!!