Но в логе видно:
Nov 30 18:09:07 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [modbus] Init: Input 0 type: setup register <modbus:6:holding: 1> <-- 1 (0x1)
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [modbus] Init: Input 0 module: setup register <modbus:6:holding: 3> <-- 3 (0x3)
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:6 is connected
Nov 30 18:09:10 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: [register handler] failed to write: <modbus:6:coil: 4>: Serial protocol error: request timed out
Nov 30 18:09:12 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:5 is disconnected
Nov 30 18:09:13 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:15 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:7 is disconnected
Nov 30 18:09:17 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:4 is disconnected
Nov 30 18:09:25 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: [register handler] failed to write: <modbus:3:holding: 42>: Serial protocol error: request timed out
Nov 30 18:09:27 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:28 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:3 is disconnected
Возможно, устройство не успевает отвечать?
В документации по этому поводу описано:
// Дополнительная задержка перед каждой отправкой данных в порт в микросекундах
// Если при работе с устройством теряются пакеты — попробуйте увеличить значение этого параметра.
// Для соответствия протоколу Modbus RTU, установите этот параметр в значение не менее 3.5 символа при выбранной скорости — это не нужно для устройств Wiren Board, но может потребоваться для устройств сторонних производителей. Нужное значение рассчитывается по формуле: guard_interval_us = (3.5*11*106)/(скорость в бит/с). Например, для скорости 9600 бит/с guard_interval_us = (3.5*11*106)/9600 = 4000 мкс.
"guard_interval_us": 1000,
“выключение шины” - это остановка wb-mqtt-serial?
В логе вижу для устройства с адресом 6, которое опимсано в конфиге как
{
"device_type" : "DRB88",
"name" : "UD12",
"slave_id" : "6"
},
строчки
Nov 30 18:02:18 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [modbus] Init: Input 0 type: setup register <modbus:6:holding: 1> <-- 1 (0x1)
Nov 30 18:02:19 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [modbus] Init: Input 0 module: setup register <modbus:6:holding: 3> <-- 3 (0x3)
Nov 30 18:02:19 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [serial device] device modbus:6 is connected
То есть в 1 регистр пишется 1
которое меняет параметры связи на 19200 8n1
При этом секции setup в конфиге нет, это лог работы с другим конфигом?