Модуль счетных входов висит в ошибке, прошить не получается

Собственно, есть модуль WB-MCM8. При смене скорости порта на 115200 девайс в интерфейсе стал выглядеть вот так:

Прошить/рекавери не получается - 2026-08-27 19:21:01,505 Can’t connect to (/dev/ttyRS485-1 178; response_timeout: 0.20s), check physical connection or address/port

При этом если удалить устройство и по новой сканировать порт оно найдется, добавится в список,

но будет давать такую же ошибку

подскажите куда копать

PS до этого на скорость 9600 работал нормально

Добрый день!

Для диагностики проблемы пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в документации.

Убедитесь, что настройки устройства и порта контроллера одинаковы:

Вышлите содержимое регистров:

  • Скорость порта RS-485: 110 (0x006E)
  • Настройка бита чётности порта RS-485: 111 (0x006F)
  • Количество стоп-битов порта RS-485: 112 (0x0070)

Считать можно через modbus_client_rpc.

при попытке что либо считать из устройства вижу вот это:

modbus_client --debug -mrtu -b115200 -pnone /dev/ttyRS485-1 -a178 -t0x03 -r128
Opening /dev/ttyRS485-1 at 115200 bauds (N, 8, 1)
[B2][03][00][80][00][01][9F][E1]
Waiting for a confirmation...
ERROR Connection reset by peer: read
ERROR occured!

приложен диагностический архив, доступен только сотрудникам поддержки
(351,5 КБ)


modbus_client_rpc --debug -mrtu -b115200 -s2 -pnone /dev/ttyRS485-1 -a178 -t0x03 -r128
2026-08-27 22:44:24,446 [DEBUG] [b2][03][00][80][00][01][9f][e1]
2026-08-27 22:44:24,448 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2026-08-27 22:44:24,450 [DEBUG] RPC Client -> {'path': '/dev/ttyRS485-1', 'baud_rate': 115200, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 7, 'format': 'HEX', 'msg': 'b203008000019fe1', 'total_timeout': 1000} (1000 timeout ms)
2026-08-27 22:44:25,004 [DEBUG] Options: {'debug': True, 'mode': 'rtu', 'slave_addr': 178, 'read_count': 1, 'start_addr': 128, 'func_type': 3, 'timeout': 1000, 'address_decrement': False, 'baudrate': 115200, 'data_bits': 8, 'stop_bits': 2, 'parity_port': 'N', 'mqtt_broker': 'unix:///var/run/mosquitto/mosquitto.sock', 'serialport_host': '/dev/ttyRS485-1', 'write_data': []}
ERROR occurred
2026-08-27 22:44:26,007 [DEBUG] Error message: Server error
2026-08-27 22:44:26,008 [DEBUG] Error code: -32000
2026-08-27 22:44:26,008 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out

Спасибо за архив, посмотрели.

Первая команда не показательна по двум причинам: порт /dev/ttyRS485-1 в этот момент занят драйвером wb-mqtt-serial (обычный modbus_client требует остановки драйвера), и в ней не указан -s2, поэтому порт открылся как 8N1, а устройства Wiren Board работают с двумя стоповыми битами. Вторая команда, через modbus_client_rpc, корректная — и она показывает, что на 115 200 8N2 модуль действительно не отвечает.

Следующий шаг – проверить 9600. modbus_client_rpc передаёт параметры порта на один запрос, останавливать драйвер не нужно:

modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a178 -t0x03 -r128

Если ответ придёт — модуль остался на 9600, новая скорость в него не записалась. Тогда поднимайте её по инструкции, порядок важен: сначала скорость в настройках устройства, дождаться, пока каналы покраснеют, и только потом скорость порта — Настройка параметров подключения по RS-485.

Если и на 9600 тишина, остановите драйвер и спросите модуль напрямую — эта команда работает и в обычном режиме, и в режиме загрузчика (в загрузчике параметры связи фиксированы, 9600 8N2):

systemctl stop wb-mqtt-serial
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a178 --get-device-info
systemctl start wb-mqtt-serial

В ответе будут версии загрузчика и прошивки – по ним будет понятно, жив ли модуль и нужно ли восстановление. Если и здесь ответа нет, отключите модуль от общей шины и подключите его к контроллеру отдельным коротким отрезком, чтобы исключить влияние линии, и повторите запрос на 9600 8N2.

Ещё момент: в присланном архиве WB-MCM8 в конфигурации драйвера отсутствует. Для проверок командами это не мешает, но обновление прошивки из веб-интерфейса будет доступно только после того, как устройство снова добавлено в конфигурацию.

проверка 9600 (пробовал если честно)

modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a178 -t0x03 -r128
2026-08-28 02:13:07,167 [DEBUG] [b2][03][00][80][00][01][9f][e1]
2026-08-28 02:13:07,169 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2026-08-28 02:13:07,171 [DEBUG] RPC Client -> {'path': '/dev/ttyRS485-1', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 7, 'format': 'HEX', 'msg': 'b203008000019fe1', 'total_timeout': 1000} (1000 timeout ms)
2026-08-28 02:13:07,718 [DEBUG] Options: {'debug': True, 'mode': 'rtu', 'slave_addr': 178, 'read_count': 1, 'start_addr': 128, 'func_type': 3, 'timeout': 1000, 'address_decrement': False, 'baudrate': 9600, 'data_bits': 8, 'stop_bits': 2, 'parity_port': 'N', 'mqtt_broker': 'unix:///var/run/mosquitto/mosquitto.sock', 'serialport_host': '/dev/ttyRS485-1', 'write_data': []}
ERROR occurred
2026-08-28 02:13:08,721 [DEBUG] Error message: Server error
2026-08-28 02:13:08,722 [DEBUG] Error code: -32000
2026-08-28 02:13:08,723 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out

с остановкой сервиса:

wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a178 --get-device-info
/dev/ttyRS485-1 opened successfully.
Trying to probe (178 /dev/ttyRS485-1) at bootloader params...
Failed to connect (178 /dev/ttyRS485-1) at bootloader settings: Connection timed out

При этом как ни странно модуль мигает вместе со всеми, как живой :slight_smile:

Переставил в другой порт, буквально 10см витой пары:

modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyMOD2 -a178 -t0x03 -r128
2026-08-28 02:29:32,434 [DEBUG] [b2][03][00][80][00][01][9f][e1]
2026-08-28 02:29:32,436 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2026-08-28 02:29:32,439 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD2', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 7, 'format': 'HEX', 'msg': 'b203008000019fe1', 'total_timeout': 1000} (1000 timeout ms)
2026-08-28 02:29:32,984 [DEBUG] Options: {'debug': True, 'mode': 'rtu', 'slave_addr': 178, 'read_count': 1, 'start_addr': 128, 'func_type': 3, 'timeout': 1000, 'address_decrement': False, 'baudrate': 9600, 'data_bits': 8, 'stop_bits': 2, 'parity_port': 'N', 'mqtt_broker': 'unix:///var/run/mosquitto/mosquitto.sock', 'serialport_host': '/dev/ttyMOD2', 'write_data': []}
ERROR occurred
2026-08-28 02:29:33,985 [DEBUG] Error message: Server error
2026-08-28 02:29:33,986 [DEBUG] Error code: -32000
2026-08-28 02:29:33,986 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out

и напоследок

wb-mcu-fw-flasher -d /dev/ttyMOD2 -a178 --get-device-info
/dev/ttyMOD2 opened successfully.
Trying to probe (178 /dev/ttyMOD2) at bootloader params...
Failed to connect (178 /dev/ttyMOD2) at bootloader settings: Connection timed out

“Остальные” модули - на какой скорости работаеют? В случае остановки сервиса wb-mqtt-serial - мигает или светится? Если светится - то попробуйте выполнить запрос широковещательный в шину. При выполнении запроса (можно зациклить) - наблюдайте за светодиодом. Если при каждом запросе мигает - значит скорость и прочие параметры верны.
Если не мигает - тогда снова запустите wb-mqtt-serial.

все остальные на 115200. Этот через вебморду находится и определяется как 115200 так же (второй скриншот).

при остановке сервиса перестает мигать вместе с остальными

снова запустил wb-mqtt-serial. Модуль снова замигал.

И ничего непоменялось. Модуль по прежнему находится поиском через вебморду, добавляется в список девайсов но дает ошибку со скрина 1. При подаче всех команд из ответов поддержки выше ошибка такая же.

Вебморда даже версию прошивки из него вычитывает. Что не мешает ошибке продолжить иметь место быть

Текущая версия прошивки: 1.11.0 (актуальная)
Ошибка при чтении текущих настроек из устройства: Server error: Port IO error: Failed to prepare session: Serial protocol error: request timed out(-32000). Для параметров, отсутствующих в конфигурационном файле, отображаются значения по умолчанию

Но есть кое что новое, чего раньше не выдавало:

wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a178 --get-device-info
/dev/ttyRS485-1 opened successfully.
Trying to probe (178 /dev/ttyRS485-1) at bootloader params...
Failed to connect (178 /dev/ttyRS485-1) at bootloader settings: Response not from requested slave

Попробуйте оставить этот модуль единственным устройством на шине и считайте данные.

Убедитесь, что он не в режиме загрузчика.

Чтобы обнаружить устройство с неизвестными параметрами можно воспользоваться modbus_scanner_rpc.

потрудитесь отмотать на несколько сообщений выше и прочитать текст. У вас на сайте написано что поддержка отвечает в течение трех часов, а вы меня гоняете по кругу с 27 августа

Покажите пожалуйста результаты выполнения команд.

результаты выполнения каких команд?

Попробуйте оставить этот модуль единственным устройством на шине и считайте данные.

это? Ну пожалуйста:

modbus_client_rpc --debug -mrtu -b9600 -pnone -s2 /dev/ttyMOD2 -a178 -t0x03 -r128
2026-08-28 02:29:32,434 [DEBUG] [b2][03][00][80][00][01][9f][e1]
2026-08-28 02:29:32,436 [DEBUG] Connecting to broker unix:///var/run/mosquitto/mosquitto.sock
2026-08-28 02:29:32,439 [DEBUG] RPC Client -> {'path': '/dev/ttyMOD2', 'baud_rate': 9600, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2, 'response_size': 7, 'format': 'HEX', 'msg': 'b203008000019fe1', 'total_timeout': 1000} (1000 timeout ms)
2026-08-28 02:29:32,984 [DEBUG] Options: {'debug': True, 'mode': 'rtu', 'slave_addr': 178, 'read_count': 1, 'start_addr': 128, 'func_type': 3, 'timeout': 1000, 'address_decrement': False, 'baudrate': 9600, 'data_bits': 8, 'stop_bits': 2, 'parity_port': 'N', 'mqtt_broker': 'unix:///var/run/mosquitto/mosquitto.sock', 'serialport_host': '/dev/ttyMOD2', 'write_data': []}
ERROR occurred
2026-08-28 02:29:33,985 [DEBUG] Error message: Server error
2026-08-28 02:29:33,986 [DEBUG] Error code: -32000
2026-08-28 02:29:33,986 [DEBUG] Error data: Port IO error: Serial protocol error: request timed out

какие данные я должен считать? Любые? Ну вот вам любые

Добрый день!

Исходя из предоставленных вами данных, к сожалению, сейчас мы не можем убедиться, что неисправность вызвана проблемой в нашем устройстве, а не сторонними проблемами.
Чтобы быстрее разобраться в ситуации, вы можете отправить оборудование нам на диагностику. Взамен мы сразу вышлем вам новое устройство. Но если проблема с нашим устройством не подтвердится, мы попросим вас оплатить диагностику и доставку в обе стороны. Стоимость диагностики контроллера — 800 рублей, остальных модулей — 500 рублей, стоимость доставки согласно ценам курьерской службы.
Если вы согласны с таким вариантом, пожалуйста, напишите на info@wirenboard.com.
В письме укажите:

Курьер привезёт новое оборудование (указать устройство и количество) и заберёт старое.