Modbus TCP ошибки каждые 40 минут Zentec Z031

К контроллеру подключен Zentec Z031 по Modbus TCP. Все работает штатно за исключением 2-х моментов.

  1. Ошибки каждые 40 минут, иногда каждые 30 минут.
  2. Переключение контролов срабатывает через раз. То есть изменил температуру на 1 градус. контрол через несколько сек вернулся к предыдущему значению. Изменил еще раз - все ок.

Куда копать?

Устройство:

Ошибки:

Home, [18.01.2024 17:49]
Error => name: /devices/ZentecZ0310/controls/ChannelCurrentTemperature/meta/error, value: r

Home, [18.01.2024 17:49]
Error => name: /devices/ZentecZ0310/controls/RotationSpeed/meta/error, value: r

Home, [18.01.2024 17:49]
Error => name: /devices/ZentecZ0310/controls/Mode/meta/error, value: r

Home, [18.01.2024 17:49]
Error => name: /devices/ZentecZ0310/controls/TargetTemperature/meta/error, value: r

Home, [18.01.2024 17:49]
Error => name: /devices/ZentecZ0310/controls/State/meta/error, value: r

Home, [18.01.2024 18:29]
Error => name: /devices/ZentecZ0310/controls/IndoorCurrentTemperature/meta/error, value: r

Home, [18.01.2024 18:29]
Error => name: /devices/ZentecZ0310/controls/ChannelCurrentTemperature/meta/error, value: r

Home, [18.01.2024 18:29]
Error => name: /devices/ZentecZ0310/controls/RotationSpeed/meta/error, value: r

Home, [18.01.2024 18:30]
Error => name: /devices/ZentecZ0310/controls/Mode/meta/error, value: r

Home, [18.01.2024 18:30]
Error => name: /devices/ZentecZ0310/controls/TargetTemperature/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E01/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E02/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E04/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E05/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E06/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E07/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E08/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/E17/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/IndoorCurrentTemperature/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/ChannelCurrentTemperature/meta/error, value: r

Home, [18.01.2024 19:11]
Error => name: /devices/ZentecZ0310/controls/RotationSpeed/meta/error, value: r

Шаблон устройства:

{
    "title": "Zentec_Z031",
    "device_type": "Zentec_Z031",
    "group": "g-control-panel",
    "response_timeout_ms": 1000,
    "guard_interval_us": 5000,
    "device": {
        "name": "Zentec_Z031",
        "id": "Zentec_Z031",
        "channels": [
            {
                "name": "State",
                "reg_type": "holding",
                "address": 40003,
                "type": "switch"
            },
            {
                "name": "Mode",
                "reg_type": "holding",
                "address": 40001,
                "type": "range",
                "offset": -1,
                "max": 1
            },
            {
                "name": "RotationSpeed",
                "reg_type": "holding",
                "address": 40000,
                "type": "range",
                "max": 7
            },
            {
                "name": "IndoorCurrentTemperature",
                "reg_type": "input",
                "address": 30000,
                "type": "temperature",
                "scale": 0.1
            },
            {
                "name": "ChannelCurrentTemperature",
                "reg_type": "input",
                "address": 40009,
                "type": "temperature",
                "scale": 0.1
            },
            {
                "name": "TargetTemperature",
                "reg_type": "holding",
                "address": 40002,
                "type": "range",
                "min": 15,
                "max": 30
            },
            {
                "name": "DisplayLock",
                "reg_type": "holding",
                "address": 50000,
                "type": "range",
                "max": 2
            },
            {
                "name": "TemperatureMeasuringPoint",
                "reg_type": "holding",
                "address": 50014,
                "type": "range",
                "max": 2
            },
            {
                "name": "AllowFanAutoMode",
                "reg_type": "holding",
                "address": "50005:0:1",
                "type": "switch"
            },
            {
                "name": "FanIconOutput",
                "reg_type": "holding",
                "address": "50005:1:1",
                "type": "switch"
            },
            {
                "name": "DisplayingTheAirflowIcon",
                "reg_type": "holding",
                "address": "50005:2:1",
                "type": "switch"
            },
            {
                "name": "AutoExitTimeFromAuxiliaryMenus",
                "reg_type": "holding",
                "address": 50050,
                "type": "range",
                "min": 5,
                "max": 30
            },
            {
                "name": "MinimumDaylight",
                "reg_type": "holding",
                "address": 50051,
                "type": "range",
                "min": 0,
                "max": 100
            },
            {
                "name": "MaximumDaylight",
                "reg_type": "holding",
                "address": 50052,
                "type": "range",
                "min": 0,
                "max": 100
            },
            {
                "name": "MinimumNightIllumination",
                "reg_type": "holding",
                "address": 50053,
                "type": "range",
                "min": 0,
                "max": 100
            },
            {
                "name": "MaximumNightIllumination",
                "reg_type": "holding",
                "address": 50054,
                "type": "range",
                "min": 0,
                "max": 100
            },
            {
                "name": "Built-inTemperatureCorrection",
                "reg_type": "holding",
                "address": 50049,
                "type": "value",
                "readonly": false
            },
            {
                "name": "E01",
                "reg_type": "holding",
                "address": "40004:0:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E02",
                "reg_type": "holding",
                "address": "40004:1:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E03",
                "reg_type": "holding",
                "address": "40004:2:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E04",
                "reg_type": "holding",
                "address": "40004:3:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E05",
                "reg_type": "holding",
                "address": "40004:4:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E06",
                "reg_type": "holding",
                "address": "40004:5:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E07",
                "reg_type": "holding",
                "address": "40004:6:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E08",
                "reg_type": "holding",
                "address": "40004:7:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E09",
                "reg_type": "holding",
                "address": "40004:8:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E10",
                "reg_type": "holding",
                "address": "40004:9:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E11",
                "reg_type": "holding",
                "address": "40004:10:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E12",
                "reg_type": "holding",
                "address": "40004:11:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E13",
                "reg_type": "holding",
                "address": "40004:12:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E14",
                "reg_type": "holding",
                "address": "40004:13:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E15",
                "reg_type": "holding",
                "address": "40004:14:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E16",
                "reg_type": "holding",
                "address": "40004:15:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E17",
                "reg_type": "holding",
                "address": "40005:0:1",
                "readonly": true,
                "type": "switch"
            },
            {
                "name": "E18",
                "reg_type": "holding",
                "address": "40005:1:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E19",
                "reg_type": "holding",
                "address": "40005:2:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E20",
                "reg_type": "holding",
                "address": "40005:3:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E21",
                "reg_type": "holding",
                "address": "40005:4:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E22",
                "reg_type": "holding",
                "address": "40005:5:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E23",
                "reg_type": "holding",
                "address": "40005:6:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E24",
                "reg_type": "holding",
                "address": "40005:7:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E25",
                "reg_type": "holding",
                "address": "40005:8:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E26",
                "reg_type": "holding",
                "address": "40005:9:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E27",
                "reg_type": "holding",
                "address": "40005:10:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E28",
                "reg_type": "holding",
                "address": "40005:11:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E29",
                "reg_type": "holding",
                "address": "40005:12:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E30",
                "reg_type": "holding",
                "address": "40005:13:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E31",
                "reg_type": "holding",
                "address": "40005:14:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E32",
                "reg_type": "holding",
                "address": "40005:15:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E33",
                "reg_type": "holding",
                "address": "40006:0:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E34",
                "reg_type": "holding",
                "address": "40006:1:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E35",
                "reg_type": "holding",
                "address": "40006:2:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E36",
                "reg_type": "holding",
                "address": "40006:3:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E37",
                "reg_type": "holding",
                "address": "40006:4:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E38",
                "reg_type": "holding",
                "address": "40006:5:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E39",
                "reg_type": "holding",
                "address": "40006:6:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E40",
                "reg_type": "holding",
                "address": "40006:7:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E41",
                "reg_type": "holding",
                "address": "40006:8:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E42",
                "reg_type": "holding",
                "address": "40006:9:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E43",
                "reg_type": "holding",
                "address": "40006:10:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E44",
                "reg_type": "holding",
                "address": "40006:11:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E45",
                "reg_type": "holding",
                "address": "40006:12:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E46",
                "reg_type": "holding",
                "address": "40006:13:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E47",
                "reg_type": "holding",
                "address": "40006:14:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            },
            {
                "name": "E48",
                "reg_type": "holding",
                "address": "40006:15:1",
                "readonly": true,
                "enabled": false,
                "type": "switch"
            }
        ],
        "translations": {
            "en": {
                "Zentec_Z031": "Zentec Z031 Programmable operating terminal"
            },
            "ru": {
                "Zentec_Z031": "Zentec Z031 Программируемый пользовательский терминал",
                "State": "Состояние",
                "RotationSpeed": "Скорость вентилятора",
                "IndoorCurrentTemperature": "Температура в помещении",
                "ChannelCurrentTemperature": "Температура в канале",
                "TargetTemperature": "Целевая температура",
                "TargetHumidity": "Целевая влажность",
                "TargetVOC": "Целевое качество воздуха VOC",
                "Mode": "Режим",
                "DisplayLock": "Блокировка дисплея",
                "TemperatureMeasuringPoint": "Точка измерения температуры",
                "AllowFanAutoMode": "Разрешить авторежим вентилятора",
                "FanIconOutput": "Вывод значка венитлятора",
                "DisplayingTheAirflowIcon": "Вывод значка обдува",
                "AutoExitTimeFromAuxiliaryMenus": "Время автовыхода из вспомогательных меню, сек:",
                "MinimumDaylight": "Минимальная дневная подсветка",
                "MaximumDaylight": "Максимальная дневная подсветка",
                "MinimumNightIllumination": "Минимальная ночная подсветка",
                "MaximumNightIllumination": "Максимальная ночная подсветка",
                "Built-inTemperatureCorrection": "Корректировка показний датчика температуры",
                "E01": "E01 - Включена пожарная сигнализация",
                "E02": "E02 - Отказ датчика t° приточного воздуха",
                "E03": "E03 - Отказ датчика t° отработаного теплоносителя",
                "E04": "E04 - Отказ датчика t° наружного воздуха",
                "E05": "E05 - Отказ датчика t° воздуха в помещении",
                "E06": "E06 - Отказ двигателя",
                "E07": "E07 - Сработал защитный термостат теплообменника",
                "E08": "E08 - Слишком низкая t° приточного воздуха",
                "E09": "E09 - Несоответствие параметров теплоносителя",
                "E12": "E12 - Проект пульта поврежден",
                "E17": "E17 - Встроенный датчик t° не отвечает"
            }
        }
    }
}

Debug:

Таймаут ответа (мс) 500 - частые ошибки
Таймаут ответа (мс) 1000 - шибки раз в 30-40 минут.
Увеличивать еще или можно что то друге подкрутить?

Добрый день.
Пришлите диагностический архив. Укажите ревизию контроллера и версию ПО.
Пришлите лог wb-mqtt-serial (с выключенным отладочным режимом) при таймауте ответа (мс) 500 и при таймауте ответа (мс) 1000.

Вполне возможно, что и целесообразно дальше увеличивать. Здесь надо смотреть на документацию самого Zentec Z031, какие там указаны рекомендации (рекомендаций может и нет, но ограничения по факту есть).

Может здесь стоит посмотреть в ту сторону, что значение температуры нужно писать в один регистр, а считывать из другого. Как предположение. Нужно смотреть карту регистров устройства.

Может здесь стоит посмотреть в ту сторону, что значение температуры нужно писать в один регистр, а считывать из другого. Как предположение. Нужно смотреть карту регистров устройства

Нет, пишется и читается одним регистром. (Документация)

В логах заметил сранную вещь.
Стоит скорость 4. Перетаскиваю ползунок на 3. Вижу оправляется 3 и за ним сразу 4.
Ползунок возвращается на 4. Второй раз перетаскиваю на 3 - отправляется только 3.

Далее переводу на 6 - пишется 6 и за ним 3. Второй раз на 6 - пишетсся только 6.
То есть срабатывает со второго раза практичеки всегда.

root@wirenboard-AWJY4GZR:~# journalctl -u wb-mqtt-serial -f |grep 40000
янв 19 14:48:42 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [serial port driver] setting device register: <modbus-tcp:0:holding: 40000> <- 3
янв 19 14:48:42 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [modbus] write 1 holding(s) @ 40000 of device modbus-tcp:0
янв 19 14:48:42 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 3
янв 19 14:48:44 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 4
янв 19 14:49:04 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [serial port driver] setting device register: <modbus-tcp:0:holding: 40000> <- 3
янв 19 14:49:04 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [modbus] write 1 holding(s) @ 40000 of device modbus-tcp:0
янв 19 14:49:04 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 3
янв 19 14:49:30 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [serial port driver] setting device register: <modbus-tcp:0:holding: 40000> <- 6
янв 19 14:49:30 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [modbus] write 1 holding(s) @ 40000 of device modbus-tcp:0
янв 19 14:49:30 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 6
янв 19 14:49:31 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 3
янв 19 14:49:52 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [serial port driver] setting device register: <modbus-tcp:0:holding: 40000> <- 6
янв 19 14:49:52 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [modbus] write 1 holding(s) @ 40000 of device modbus-tcp:0
янв 19 14:49:52 wirenboard-AWJY4GZR wb-mqtt-serial[15320]: DEBUG: [register] new val for <modbus-tcp:0:holding: 40000>: 6

Wirenboard release wb-2401 (as stable), target wb7/bullseye
HW: 7.2.1B

Диагностический архив:

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

во время ошибок лог такой:

19-01-2024 18:16:35.501	INFO: [serial device] device modbus-tcp:0 is connected
19-01-2024 18:16:31.770	WARNING: [serial device] device modbus-tcp:0 is disconnected
19-01-2024 18:16:31.766	WARNING: [modbus] failed to read 1 holding(s) @ 40000 of device modbus-tcp:0: Serial protocol error: request timed out
19-01-2024 18:16:30.744	WARNING: [modbus] failed to read 1 input(s) @ 40009 of device modbus-tcp:0: Serial protocol error: request timed out
19-01-2024 18:16:29.722	WARNING: [modbus] failed to read 1 input(s) @ 30000 of device modbus-tcp:0: Serial protocol error: request timed out

насобирал бльше ошибок:

при 500 и 1000 ошибки одинаковые. При 1000 они просто реже.

@mikhail.burchu Есть идеи?

Добрый день.

  1. Попробуйте установить параметр “Задержка перед записью в порт (мкс)” больше 4000, например 4500 (мкс).
  2. Таймаут ответа оставьте 1000 (мс).
    Сообщите о результате.

Это больше относится к проблеме записи в порт со второго раза? Протестировал с 4500 мкс - не помогло

А что насчет ошибок чтения? При увеличении таймаута ответа до 10000(мс) ошибки становятся реже, раз в 2-3 часа, но все равно есть.

Так же подключил wb-mge v.2 по TCP

на нем 3 устройства: два WB-MSW 4 (24 и 36) и один WB-M1W2 (51)

на них тоже наблюдаю в логах “request timed out”.
похоже проблема не в самом Zentec

24-01-2024 01:37:35.847	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:24: Serial protocol error: request timed out
24-01-2024 01:37:34.367	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 01:19:26.672	WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:36: Serial protocol error: malformed response: invalid crc
24-01-2024 01:19:26.384	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 01:19:25.875	WARNING: [modbus] failed to read 13 input(s) @ 0 of device modbus:36: Serial protocol error: request timed out
24-01-2024 01:19:25.373	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 01:15:24.828	WARNING: [serial client] Reading events failed: Serial protocol error: malformed response: invalid packet
24-01-2024 01:15:24.787	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:36: Serial protocol error: request timed out
24-01-2024 01:15:24.787	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 01:15:23.625	WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:36: Serial protocol error: request timed out
24-01-2024 01:15:23.625	WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:36: Serial protocol error: request timed out
24-01-2024 00:57:44.251	WARNING: [modbus] failed to read 1 holding(s) @ 40002 of device modbus-tcp:0: Serial protocol error: socket closed
24-01-2024 00:27:00.391	WARNING: [modbus] failed to read 2 holding(s) @ 97 of device modbus:24: Serial protocol error: request timed out
24-01-2024 00:24:59.828	WARNING: [serial client] Reading events failed: Serial protocol error: malformed response: invalid packet
24-01-2024 00:24:59.788	WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:36: Serial protocol error: request timed out
24-01-2024 00:24:59.788	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 00:24:58.538	WARNING: [modbus] failed to read 13 input(s) @ 0 of device modbus:36: Serial protocol error: request timed out
24-01-2024 00:16:08.127	WARNING: [modbus] failed to read 1 holding(s) @ 40001 of device modbus-tcp:0: Serial protocol error: socket closed
24-01-2024 00:12:53.835	WARNING: [serial client] Reading events failed: Serial protocol error: malformed response: invalid packet
24-01-2024 00:12:53.805	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:36: Serial protocol error: request timed out
24-01-2024 00:12:53.805	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:36: Serial protocol error: request timed out
24-01-2024 00:12:53.805	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
24-01-2024 00:12:52.211	WARNING: [modbus] failed to read 14 input(s) @ 270 of device modbus:36: Serial protocol error: request timed out
23-01-2024 21:07:21.772	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:24: Serial protocol error: malformed response: invalid crc
23-01-2024 21:07:21.772	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
23-01-2024 21:07:21.772	WARNING: [modbus] failed to read 34 input(s) @ 250 of device modbus:24: Serial protocol error: request timed out
23-01-2024 21:07:20.407	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
23-01-2024 21:01:18.334	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:36: Serial protocol error: request timed out
23-01-2024 20:47:11.783	WARNING: [modbus] failed to read 12 coil(s) @ 0 of device modbus:24: Serial protocol error: malformed response: invalid crc
23-01-2024 20:47:11.783	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
23-01-2024 20:47:11.783	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out
23-01-2024 20:47:11.783	WARNING: [modbus] failed to read 34 input(s) @ 250 of device modbus:24: Serial protocol error: request timed out
23-01-2024 20:47:10.363	WARNING: [serial client] Reading events failed: Serial protocol error: request timed out

Не думаю, что раз в 2-3 часа это частые ошибки.

Пришлите фото подключения всех устройств, по которым появляются ошибки.

Zentec Z031 подключен по Wifi.

Добрый день.
Извините за долгий ответ. Тема у меня затерялась. Не стесняйтесь тегать при долгом ожидании ответа.
Визуально по подключению вопросов нет.

Также интересно, почему используете именно широковещательный адрес для связи с устройством? Есть возможность использовать адрес устройства? Что документация на Zentec об этом говорит?

Здесь попробуйте использовать не стандартный порт (не 23).
Также вижу ошибки только по адресам 24 и 36, а по 51 нет ошибок. Все же похоже на шину. Попробуйте с терминатором. Также я бы попробовал эти три устройства подключить напрямую к контроллеру и посмотрел, как себя в таком случае шина ведет.

Спасибо за ответ.

24 и 36 стояли за WB-MGE v.2 (term включен, failsafe bias выключен). Длина шины была 30 - 40 см.
Попробую еще на конец повесить терминатор но честно говоря не думаю что поможет.

Также я бы попробовал эти три устройства подключить напрямую к контроллеру и посмотрел, как себя в таком случае шина ведет.

Делал, напрямую ошибок нет вообще, все работает отлично.

Здесь попробуйте использовать не стандартный порт (не 23).

Проверю, спасибо. А в чем заключается подозрение на 23 порт?

P.S. пробовал два разных WB-MGE v.2 с двумя устройствами после них. Один в локальной сети, второй через интернет. В обоих случаях наблюдались одинаковые ошибки. (Саму Eth сеть исключили, сеть гигабитная, построена на промышленном оборудовании, с ней проблем нет).

P.S.S. так де пробовали два WB-MGE v.2 - один мастер другой слейв. Между ними 1 метр витой пары. Все то же самое.

P.S.S.S ошибки обошли программно, но на будущее хорошо бы понять в чем было дело. Впереди проект где будут четыре WB-MGE v.2 в локальной сети и не хотелось бы получить сюрприз с ними.

Стандартный порт. Вдруг что-то туда тоже прилетает.

Попробую у себя данную конфигурацию проверить на частоту появления ошибок.
WB-MSW v4, WB-M1W2 и преобразователь. На какую скорость настроен обмен?

9600

0 это стандартный Modbus адрес у пульта. Широковещательные адреса данное устройство не поддерживает

Добрый день.
Повторил вашу конфигурацию.
Ошибки тоже появляются, но это, в принципе, не критично. Параметром Guard interval (us) можно снизить частоту появления ошибок.

Можете подробнее описать чем вредит появление ошибки на шине для вашей задачи?

Из-за ошибок чтения, запись нового значения в регистр не всегда происходит с первого раза.
Допустим в регистре число 3, мы записываем число 4, если произошла ошибка чтения после записи то в регистре остается число 3 а не 4. Это основная проблема.
Обошли программно: виртуальное устройство принимает значения от пользователя, далее пишет в канал, далее с промежутком по таймеру 3 раза читает канал и сверяет значение с установленным, если отличается пишет заново и запускает проверку заново. Решение так себе (костыль), но пока других вариантов не нашли.