Постоянные ошибки request timed out на разных интерфейсах

Здравствуйте.
Периодически (каждые несколько минут) сыпятся в лог ошибки:

WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 97 of device modbus:66: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus-tcp:33: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:66: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus:23: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 coil(s) @ 2 of device modbus:24: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus-tcp:33: Serial protocol error: request timed out
WARNING: [modbus] failed to read 1 input(s) @ 121 of device modbus:21: Serial protocol error: request timed out
WARNING: [modbus] failed to read 3 coil(s) @ 0 of device modbus-tcp:33: Serial protocol error: request timed out

Причем:

  • 21 устройство подключено непосредственно к /dev/ttyRS485-1 самого контроллера, других устройств там нет, длина провода 30см
  • 23 устройство подключено к WB-MGE v.1, других устройств там нет, длина провода 15см
  • 24 и 66 устройство подключено к другому WB-MGE v.1, других устройств там нет, общая длина шины 30см
  • 33 устройство подключено к WB-MGE v.2, других устройств там нет, длина провода 15см
    Таймаут ответа на всех портах 800мс.
    Но при этом в целом устройства работают нормально, скорость реакции в данном случае не критична. Т.о. беспокоит просто простыня однотипных ошибок. Подскажите куда копать?

Здравствуйте!
Изредка появление таких ошибок в целом не критично. Эти ошибки возникают только при обмене с устройствами, подключенные через преобразователи MGE/MIO?
Попробуйте для портов, которые работают через преобразователи MGE/MIO-E задать параметр Guard interval (us) в 5000:

Большая часть ошибок действительно связана с устройствами, подключенными через преобразователи MGE, но я думаю, это потому что у меня в системе в принципе большинство устройств подключено через преобразователи (напрямую к контроллеру сейчас подключен всего один модуль WB-MR3LV (id: 21) к порту /dev/ttyRS485-1 и два термостата от Новатек ТР-101 (id: 100 и 101). Причем наблюдается странная закономерность, ни разу не видел этих ошибок, связанных с устройствами 100 и 101, но при этом больше половины ошибок связаны с устройством 23 (WB-MR3LV, подключенный через WB-MGE v.1).
Задал параметр Guard interval (us) в 5000, но это ничего не изменило. Ошибки продолжают сыпаться с интервалом от нескольких раз в минуту до пяти минут (около 40шт. в час)

Попробуйте задать Guard interval (us) в 5000 для всех портов, даже где нет адаптера.
Еще попробуйте выставить принудительно для всех портов Response timeout (ms) в 1000.

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

Получилось ли решить проблему?

Нет, завтра псе попробую. Скорость везде 9600

Сегодня выставил Guard interval (us) в 5000 для всех портов и Response timeout (ms) в 1000. Буду наблюдать.
Не могу приложить диагностическую информацию, раздел Diagnostic collector web-интерфейса не загружается (крутится более 10мин, дальше ждать не стал), в чем может быть проблема?

Проверьте, работает ли сервис генерации архива:

systemctl status wb-diag-collect

Если сервис не работает, то запустите его командой:

systemctl start wb-diag-collect

Архив также можно создать из консоли. Команда

wb-diag-collect wb_diag

создаст файл /root/wb_diag_<SERIAL>_<DATE>.zip. Файл пришлите.

Действительно, служба почему-то была остановлена.
diag_output_A2UXTTRD_2022-07-20-15.02.48.zip (76.6 КБ)

В целом, как будто сообщений стало меньше, но все равно появляются и так же преимущественно от 23 устройства

А попробуйте конкретно для устройства с адресом 23 увеличить таймаут ожидания ответа, например до 2000 мс:

Не помогло

Тогда - диагностики требует именно сетевое соединение. Запишите все пакеты к/от MIO с моментом ошибки и проверьте - не теряется ли какой-нибудь.

wb.pcap (489.1 КБ)
Здесь десяток ошибок связи есть. Есть идея как их отыскать? Все осложняет то, что это не Modbus TCP, a Modbus over TCP

Да, у меня с наскока не получилось обработать так чтоб поделить на запрос - ответ.