Много таймаутов через WB-MGE

Добрый день!
Подскажите пожалуйста оптимальные параметры wb-mqtt-serial.conf для опроса устройств через WB-MGE. Сейчас такой конфиг и с ним постоянно сыплют таймауты в лог:

            "address": "192.168.43.170",
            "port": 1170,
            "devices": [
                {
                    "slave_id": "51",
                    "device_type": "WB-MR3",
                    "name": "Relay05 WB-MR3LV/I",
                    "id": "relay05",
                    "poll_interval": 2000,
                    "device_timeout_ms": 10000
                },
                {
                    "slave_id": "91",
                    "device_type": "WB-M1W2",
                    "name": "Temperature02",
                    "id": "temperature02",
                    "poll_interval": 2000,
                    "device_timeout_ms": 10000
                }
            ],
            "port_type": "tcp",
            "poll_interval": 2000,
            "response_timeout_ms": 5000
        }

Настройки на WB-MGE стандартные:
mge

Потерь до шлюза нет, собрано пока в тестовом режиме и соединено 2-метровым патчкордом.

В логах такое. Стабильно раз в 1-2 минуты таймаут, причем почти все до WB-MR3LV/I, а вот до WB-M1W2 изредка. Дело в кол-ве регистров? Что порекомендуете поднастроить?

Mar 26 15:12:06 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:12:48 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:28: Serial protocol error: request timed out
Mar 26 15:12:59 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:14:41 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 3 coil(s) @ 0 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:15:52 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:18:34 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:18:47 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:19:53 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:20:44 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:22:01 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 2 holding(s) @ 270 of device modbus:28: Serial protocol error: request timed out
Mar 26 15:23:48 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:24:19 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out
Mar 26 15:25:03 wirenboard-A4WP2ZIO user.notice serial: ModbusRTU::ReadRegisterRange(): failed to read 1 input(s) @ 121 of device modbus:51: Serial protocol error: request timed out

1 лайк

Прямо странно… а пинг, да подлиннее, (размер пакета) запустите параллельно, не воспроизводится.

Потерь до WB-MGE нет ни в каком виде.
Добавил еще WB-MRM2-mini на шину за WB-MGE - и тоже посыпались таймауты. После этого подредактировал шаблон, оставил только 3 регистра для опроса - и таймауты ушли. На WB-M1W2 опрашиваются 4 регистра - и таймаутов тоже нет вообще. Уменьшил также кол-во регистров и на WB-MR3LV/I до 7 - таймаутов стало меньше, но полностью все равно не ушли (раз в 7-10 минут).

Получается, дело в кол-ве регистров? Предполагаю, что как-то неоптимально они опрашиваются, пробовал еще поэкспериментировать с параметрами, но не очень понятно что они означают и на что влияют:
“poll_interval”
“device_timeout_ms”
“max_read_registers”
“guard_interval_us”
“delay_ms”
“max_reg_hole”
“max_bit_hole”
“frame_timeout_ms”
“device_max_fail_cycles”

Можно ли их расшифровать? К сожалению, в документации нигде не нашел описание этих параметров.

Стоит ли увеличивать скорость шины с 9600 до 115200?

Вот тут в Readme расписано:

Да, стоит. Если нет орграницений по качеству линии - то работает ощутимо быстрей.

После перевода на 115200, таймаутов стало совсем мало, но полностью не ушли. В среднем раз в полчаса-час. Еще будут рекомендации? Если нет, можно закрыть, раз в час уже не критично.

Уже раз в 5-10 минут - можно считать почти нормой, все же помехи наводятся в провода.