Проблемы при подключении mcm16

ок. Теперь выложите пожалуйста /etc/wb-mqtt-serial.conf и вывод

cat  /var/log/messages | grep serial 

там есть время в строчках, неактуальное сюда не надо.

P.S. до и после блока текста пишите три обратных кавычки (`) на отдельной строчке. например так:

```
длинный текст, например код или вывод команды
```

Jan 12 19:27:57 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 2 holding(s) @ 32 of device modbus:155
Jan 12 19:27:57 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 4 input(s) @ 0 of device modbus:6
Jan 12 19:27:57 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 2 input(s) @ 6 of device modbus:6
Jan 12 19:27:57 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 input(s) @ 121 of device modbus:6
Jan 12 19:27:57 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 holding(s) @ 8 of device modbus:65
Jan 12 19:27:58 wirenboard user.notice serial: TSerialDevice::ReadRegisterRange(
): warning: Serial protocol error: request timed out [slave_id is milur:255]
Jan 12 19:27:58 wirenboard user.notice serial: TSerialDevice::ReadRegisterRange(
): warning: Serial protocol error: request timed out [slave_id is milur:255]
Jan 12 19:27:58 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 input(s) @ 32 of device modbus:65
Jan 12 19:27:58 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 input(s) @ 121 of device modbus:65
Jan 12 19:27:58 wirenboard user.notice serial: TSerialDevice::ReadRegisterRange(
): warning: Serial protocol error: request timed out [slave_id is milur:255]
Jan 12 19:27:58 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 coil(s) @ 0 of device modbus:65
Jan 12 19:27:58 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 

теперь файл :

{
    "debug": false,
    "ports": [
        {
            "path": "/dev/ttyAPP1",
            "type": null,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "poll_interval": 100,
            "enabled": true,
            "devices": [
                {
                    "slave_id": "155",
                    "device_type": "WB-MRGB"
                },
                {
                    "slave_id": "32",
                    "device_type": "WB-MRM2",
                    "poll_interval": 20,
                    "delay_ms": 100
                },
                {
                    "slave_id": "35",
                    "device_type": "WB-MRM2"
                },
                {
                    "slave_id": "47",
                    "device_type": "WB-MRM2",
                    "poll_interval": 20
                },
                {
                    "slave_id": "126",
                    "device_type": "WB-MRM2",
                    "poll_interval": 20,
                    "delay_ms": 100
                },
                {
                    "slave_id": "55",
                    "device_type": "WB-MR14",
                    "setup": [
                        {
                            "address": "15",
                            "title": "holding",
                            "value": "255"
                        }
                    ],
                    "poll_interval": 20,
                    "delay_ms": 100
                },
                {
                    "slave_id": "211",
                    "device_type": "WB-MCM16"
                },
                {
                    "slave_id": "213",
                    "device_type": "WB-MCM16",
                    "max_read_registers": 30,
                    "poll_interval": 20,
                    "delay_ms": 100,
                    "max_reg_hole": 0
                },
                {
                    "slave_id": "59",
                    "device_type": "WB-MR14",
                    "setup": [
                        {
                            "address": "14",
                            "title": "holding",
                            "value": "3"
                        }
                    ],
                    "poll_interval": 20,
                    "delay_ms": 100
                },
                {
                    "slave_id": "65",
                    "device_type": "WB-MR14",
                    "poll_interval": 20,
                    "delay_ms": 100,
                    "setup": [
                        {
                            "address": "9",
                            "title": "holding",
                            "value": "3"
                        }
                    ],
                    "channels": [],
                    "max_read_registers": 0
                },
                {
                    "slave_id": "6",
                    "device_type": "WB-MS-THLS v.2"
                }
            ],
            "response_timeout_ms": 20
        },
        {
            "path": "/dev/ttyAPP3",
            "type": null,
            "enabled": true,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "devices": [],
            "response_timeout_ms": 10,
            "poll_interval": 20
        },
        {
            "path": "/dev/ttyAPP4",
            "enabled": true,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 1,
            "response_timeout_ms": 20,
            "devices": [
                {
                    "slave_id": "255",
                    "device_type": "Milur 104/105"
                }
            ]
        }
    ]
}

во-первых вы зря везде добавили delay_ms: вы сказали драйверу тормозить после каждого обмена данными с устройствами, вот он и тормозит.

Во-вторых, ошибки как-то довольно случайно распределены между устройствами. Если они повторяются часто, то дело видимо или в питании устройств, или в шине: некачественные провода, некачественных монтаж, лишние терминаторы, наводки и т.д.

похоже, что проблема и с mcm16 и с mr14 из-за выставленной delay ms. нужно убрать задержку со всех устройств, либо в настройках порта?

отключил delay ms вот файл:

{
    "debug": false,
    "ports": [
        {
            "path": "/dev/ttyAPP1",
            "type": null,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "poll_interval": 100,
            "enabled": true,
            "devices": [
                {
                    "slave_id": "155",
                    "device_type": "WB-MRGB"
                },
                {
                    "slave_id": "32",
                    "device_type": "WB-MRM2"
                },
                {
                    "slave_id": "35",
                    "device_type": "WB-MRM2"
                },
                {
                    "slave_id": "47",
                    "device_type": "WB-MRM2"
                },
                {
                    "slave_id": "126",
                    "device_type": "WB-MRM2"
                },
                {
                    "slave_id": "55",
                    "device_type": "WB-MR14",
                    "setup": [
                        {
                            "address": "15",
                            "title": "holding",
                            "value": "3"
                        }
                    ]
                },
                {
                    "slave_id": "211",
                    "device_type": "WB-MCM16"
                },
                {
                    "slave_id": "213",
                    "device_type": "WB-MCM16",
                    "max_read_registers": 30
                },
                {
                    "slave_id": "59",
                    "device_type": "WB-MR14",
                    "setup": [
                        {
                            "address": "14",
                            "title": "holding",
                            "value": "3"
                        }
                    ]
                },
                {
                    "slave_id": "65",
                    "device_type": "WB-MR14",
                    "setup": [
                        {
                            "address": "9",
                            "title": "holding",
                            "value": "3"
                        }
                    ]
                },
                {
                    "slave_id": "6",
                    "device_type": "WB-MS-THLS v.2"
                }
            ],
            "response_timeout_ms": 20
        },
        {
            "path": "/dev/ttyAPP3",
            "type": null,
            "enabled": true,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 2,
            "devices": [],
            "response_timeout_ms": 10,
            "poll_interval": 20
        },
        {
            "path": "/dev/ttyAPP4",
            "enabled": true,
            "baud_rate": 9600,
            "parity": "N",
            "data_bits": 8,
            "stop_bits": 1,
            "response_timeout_ms": 20,
            "devices": [
                {
                    "slave_id": "255",
                    "device_type": "Milur 104/105"
                }
            ]
        }
    ]
}

всё-равно не работает. модуль передаёт значения не регулярно. при замыкании входов в веб интерфейсе ничего не отображается.

вот ещё раз вывод команды:

Jan 13 08:59:45 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 3 holding(s) @ 6 of device modbus:32
Jan 13 08:59:45 wirenboard user.notice serial: TSerialDevice::ReadRegisterRange(
): warning: Serial protocol error: request timed out [slave_id is milur:255]
Jan 13 08:59:45 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 2 holding(s) @ 32 of device modbus:32
Jan 13 08:59:45 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 2 coil(s) @ 0 of device modbus:32
Jan 13 08:59:45 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 holding(s) @ 8 of device modbus:65
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 input(s) @ 32 of device modbus:65
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 input(s) @ 121 of device modbus:65
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 coil(s) @ 0 of device modbus:65
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 14 discrete(s) @ 0 of device modbus:65
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 4 input(s) @ 0 of device modbus:6
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 2 input(s) @ 6 of device modbus:6
Jan 13 08:59:46 wirenboard user.notice serial: TModbusDevice::ReadRegisterRange(
): failed to read 1 input(s) @ 121 of device modbus:6

вот эта опция, которую вы вписали, заставляет драйвер ждать ответа максимум 20мс. Уберите её, уберите вообще всю самодеятельность.

изменил настройки. действительно информация со входов начала считываться. но всё-равно это происходит с задержкой порядка 2-3 секунды. можно ли ускорить этот процесс? поможет ли усилитель rs-485?

проблемы решил следующим образом. переподключил всё оборудование вместе с mcm16 на изолированный порт rs-485. теперь всё работает.