Failed to open session: Serial protocol error: request timed out

Добрый день!

Проблема с контроллером.
Подключены последовательно два устройства M1W2.
Устройства периодически отвечают (например, когда перекидываешь их на другой порт).
Спустя полминуты снова отваливаются.
Контроллер обновлен Wiren Board 7.3.3 (s/n A7VQWVA2), release wb-2401 (as stable)
Собрано в данный момент на стенде, проблемы с линией нет.

Если удастся подключиться, буду крайне благодарен.
95.165.165.23:1235
Данные для входа стандартные.

Диагностический архив прилагаю.

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

Спасибо!

01-04-2024 01:21:25.832 [wb-mqtt-serial]	DEBUG: [serial client] Failed to open session: Serial protocol error: request timed out [slave_id is modbus:149]
01-04-2024 01:21:25.798 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 9167 us
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Write: 95 06 00 72 00 01 f4 c5
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [modbus] write 1 (type 0)(s) @ 114 of device modbus:149
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 8000 us
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 2>272684: Wait until 272684
01-04-2024 01:21:25.788 [wb-mqtt-serial]	DEBUG: [serial client] Failed to open session: Serial protocol error: request timed out [slave_id is modbus:149]
01-04-2024 01:21:25.753 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 9167 us
01-04-2024 01:21:25.745 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Write: 95 06 00 72 00 01 f4 c5
01-04-2024 01:21:25.745 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
01-04-2024 01:21:25.745 [wb-mqtt-serial]	DEBUG: [modbus] write 1 (type 0)(s) @ 114 of device modbus:149
01-04-2024 01:21:25.745 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 8000 us
01-04-2024 01:21:25.743 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 2>272639: Wait until 272639


При переходе через внешний IP такой инфтерфейс.
Не знаю, в чем причина.
Локально - всё норм.

Добрый день. А что такое “внешний” IP? И как настроен MQTT адрес/порт в интерфейсе, “Настройки” - “Веб-интерфейс” - “Подключение к MQTT брокеру”?

Внешний - в смысле “белый”. Порты прокидывал на локальный 80

MQTT - стандартно. Скрин прилагаю

По этой ошибке подскажите, пожалуйста, что делать…
Failed to open session: Serial protocol error: request timed out

Так, подключаясь к “белому” адресу - как планируется получить доступ к локальному 192.168.xx?
Да, обратите внимание, в nginx контролллера настроен прокси, можно для mqtt использоваь тот же порт что и для http.

Не совсем понял, какую команду выполняете, какого результата ожидаете?

Я не выполняю никакую команду.
У меня в принципе не работает ни один аорт RS485 на контроллере.
В первом сообщении привел часть лога.

« Failed to open session: Serial protocol error: request timed out» - также из лога.

Да, устройства на шине никак не сканируются.

Так. Еще раз. Что именно и как (как выполнена шина?) подключено? От чего питаются устройства, какое напряжение питания на устройствах?
Как сконфигурированы сами порты? Точнее - соответствует ли их текущая конфигурация желаемой?
Ну, хотя бы посмотрите что выводится по fuser /dev/ttyRS* -v
Если устройства производства wirenboard - то в каком состоянии светодиод status? Как реагирует на отправку широковещательной команды с помощью modbus_client, на обычный опрос?

Подключены 2 модуля M1W2 к порту /dev/ttyRS485-1
Сконфигурированы стандартно 9600 8 N 2.

fuser /dev/ttyRS485-1 -v
                     ПОЛЬЗ-ЛЬ    PID ДОСТУП КОМАНДА
/dev/ttyS2:          root      20742 F.... wb-mqtt-serial


Устройства не отвечают, не сканируются.

root@wirenboard-A7VQWVA2:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a149 -t0x03 -r128
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[95][03][00][80][00][01][99][36]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!
root@wirenboard-A7VQWVA2:~# modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a181 -t0x03 -r128
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[B5][03][00][80][00][01][9E][56]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!

В логах

01-04-2024 23:36:06.440 [wb-mqtt-serial]	WARNING: </dev/ttyRS485-1 9600 8 N 2>: closed due to repetitive errors
01-04-2024 23:36:06.437 [wb-mqtt-serial]	DEBUG: [serial client] Failed to open session: Serial protocol error: request timed out [slave_id is modbus:149]
01-04-2024 23:36:06.359 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>759314: Wait until 760014
01-04-2024 23:36:06.259 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>759214: Wait until 760014
01-04-2024 23:36:06.159 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>759114: Wait until 760014
01-04-2024 23:36:06.059 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>759014: Wait until 760014
01-04-2024 23:36:05.960 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758915: Wait until 759014
01-04-2024 23:36:05.903 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 9167 us
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Write: 95 06 00 72 00 01 f4 c5
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Write: 95 06 00 72 00 01 f4 c5
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [modbus] write 1 (type 0)(s) @ 114 of device modbus:149
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 8000 us
01-04-2024 23:36:05.894 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 2>758849: Wait until 758849
01-04-2024 23:36:05.893 [wb-mqtt-serial]	DEBUG: [serial client] Failed to open session: Serial protocol error: request timed out [slave_id is modbus:149]
01-04-2024 23:36:05.859 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758814: Wait until 759014
01-04-2024 23:36:05.759 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758714: Wait until 759014
01-04-2024 23:36:05.659 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758614: Wait until 759014
01-04-2024 23:36:05.559 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758514: Wait until 759014
01-04-2024 23:36:05.559 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758514: Wait until 759014
01-04-2024 23:36:05.459 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758414: Wait until 759014
01-04-2024 23:36:05.359 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 9167 us
01-04-2024 23:36:05.359 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-2 9600 8 N 2>758314: Wait until 759014
01-04-2024 23:36:05.351 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Write: 95 06 00 72 00 01 f4 c5
01-04-2024 23:36:05.351 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 0 us
01-04-2024 23:36:05.351 [wb-mqtt-serial]	DEBUG: [modbus] write 1 (type 0)(s) @ 114 of device modbus:149
01-04-2024 23:36:05.349 [wb-mqtt-serial]	DEBUG: [port] /dev/ttyRS485-1: Sleep 8000 us
01-04-2024 23:36:05.349 [wb-mqtt-serial]	DEBUG: [serial client] </dev/ttyRS485-1 9600 8 N 2>758304: Wait until 758304
01-04-2024 23:36:05.349 [wb-mqtt-serial]	DEBUG: [serial client] Failed to open session: Serial protocol error: request timed out [slave_id is modbus:181]

Отлично. Все ж шина должна быть витой парой, но для тестов в принципе должно работать.
Возьмите кусок заведомо работоспособного кабеля и подключите один из модулей на второй порт.
Да, кстати, не соединяется:

ssh root@95.165.165.23 -p1235
kex_exchange_identification: Connection closed by remote host
Connection closed by 95.165.165.23 port 1235

А напряжение питания? Проверьте - есть ли оно на модулях и его величину.

Благодарю за помощь!
Оказалось, проблема с кабелем!
Как раз на жиле, подключенной к “А” первого модуля.
Прошу прощения, что отнял время.