Ошибка во время сканирования портов

Добрый день, собран тестовый стенд: блок питания 24в, wirenboard 7, модуль DI-14WD, модуль AI6.

Версия прошивки контроллера: Wirenboard release wb-2602 (as stable), target wb7/bullseye.

Модуль AI6 подключен по RS485 к 1 порту контроллера WB. Мигает зеленый диод возле клеммы питания.

Настраиваю через веб-интерфейс. При быстром сканировании модуль AI6 не был найден, при медленном модуль нашелся и было предложено обновить модуль - тыкнул обновить и словил ошибку(к сожалению не сохранил). Пытаюсь повторно найти модуль - быстрая попытка ничего не находит, медленная стала отваливаться с ошибкой: “Произошла ошибка во время сканирования портов: /dev/ttyRS485-1 4800 8N2. Более детальную информацию можно посмотреть в системном журнале”.

В журанале:

28-05-2026 17:36:10.826 [wb-device-manager]	wb.device_manager.mqtt_rpc.MQTTRPCCallTimeoutError: rpc call to wb-mqtt-serial/port/Scan -> 10.00s: no answer [-33000]: rpc call params: {'total_timeout': 10000, 'command': 96, 'mode': 'start', 'path': '/dev/ttyRS485-1', 'baud_rate': 4800, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2}
28-05-2026 17:36:10.826 [wb-device-manager]	    raise MQTTRPCCallTimeoutError(
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 78, in make_rpc_call
28-05-2026 17:36:10.826 [wb-device-manager]	    return await rpc_client.make_rpc_call(
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3/dist-packages/wb/device_manager/fast_modbus_scan.py", line 53, in port_scan
28-05-2026 17:36:10.826 [wb-device-manager]	    res = await port_scan(self._rpc_client, port_config, fast_modbus_command, protocol, start)
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3/dist-packages/wb/device_manager/fast_modbus_scan.py", line 83, in _do_scan
28-05-2026 17:36:10.826 [wb-device-manager]	Traceback (most recent call last):
28-05-2026 17:36:10.826 [wb-device-manager]	The above exception was the direct cause of the following exception:
28-05-2026 17:36:10.826 [wb-device-manager]	asyncio.exceptions.TimeoutError
28-05-2026 17:36:10.826 [wb-device-manager]	    raise exceptions.TimeoutError() from exc
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3.9/asyncio/tasks.py", line 494, in wait_for
28-05-2026 17:36:10.826 [wb-device-manager]	    response = await asyncio.wait_for(response_f, timeout)
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3/dist-packages/wb/device_manager/mqtt_rpc.py", line 73, in make_rpc_call
28-05-2026 17:36:10.826 [wb-device-manager]	Traceback (most recent call last):
28-05-2026 17:36:10.826 [wb-device-manager]	The above exception was the direct cause of the following exception:
28-05-2026 17:36:10.826 [wb-device-manager]	asyncio.exceptions.CancelledError
28-05-2026 17:36:10.826 [wb-device-manager]	    fut.result()
28-05-2026 17:36:10.826 [wb-device-manager]	  File "/usr/lib/python3.9/asyncio/tasks.py", line 492, in wait_for
28-05-2026 17:36:10.826 [wb-device-manager]	Traceback (most recent call last):
28-05-2026 17:36:10.826 [wb-device-manager]	[ERROR] Unhandled exception during Fast Modbus search /dev/ttyRS485-1 4800 8N2: rpc call to wb-mqtt-serial/port/Scan -> 10.00s: no answer [-33000]: rpc call params: {'total_timeout': 10000, 'command': 96, 'mode': 'start', 'path': '/dev/ttyRS485-1', 'baud_rate': 4800, 'parity': 'N', 'data_bits': 8, 'stop_bits': 2}

Подробной информации об ошибке обновления модуля в журнале не нашел:

28-05-2026 11:41:12.659 [wb-device-manager]	[ERROR] WBMAI6 (sn: 117210, slave id: 208, /dev/ttyRS485-1 9600 8N2) bootloader update from 1.2.2 to 1.5.7 failed: Request timeout [-32600]: Serial protocol error: request timed out

Подскажите, пожалуйста, что пошло не так? В чем может быть проблема? И как починить?

Добрый день!

Из-за сбоя во время обновления модуль скорее всего перешел в режим загрузчика. Как диагностировать этот режим описано по ссылке.

В случае его перехода в режим загрузчика, можно восстановить прошивку вручную. Процесс описан здесь.

Если появятся вопросы, задавайте!

Добрый день!

Подскажите, вам удалось решить проблему?

Добрый день, вернусь к вопросу в 8 июня. Отпишусь в топик, заработало или нет.

В веб-админке контроллера нашел кнопку “Поиск устройств в режиме загрузчика” - похоже это альтернатива для команды в терминале:

modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x03 -r290 -c12

После того как нашел устройство в режиме загрузчика и его modbus адрес, подключился к контроллеру по ssh и выполнил в терминале:

wb-mcu-fw-updater recover /dev/ttyRS485-1 -a 208

Сейчас устройство снова определяется и добавилось в wb-mqtt-serial.

Из нюансов вы рекомендовали инструкцию по восстановлению загрузчика по этой ссылке, а в админке ведет по этой ссылке. По ссылке из админки есть предупреждение про “окирпичивание” в случае обновления загрузчика - что похоже и произошло, после предложения обновить модуль из админке при его первом поиске.

Вопрос. Как понять, что пошло не так при обновлении из админки? Питание не пропадало и инет стабильный. Хотелось бы исключить подобное.

Как только файл скачан и процесс запущен, интернет больше не участвует. Начинается передача данных по шине RS-485. Ошибка Request timeout означает, что в процессе обмена данными между контроллером и модулем WB-AI6 потерялись пакеты данных. Соответственно поэтому произошел сбой.