Проблема с опрососом - Модуль диммерный DDL84Ri

Добрый день.

Версия димера DDL84RI - 4 канала 4-20мА (выходы)
DDL84R_UM.pdf (1004.2 КБ)

Подключен один на 2 порту WB6.8 /dev/ttyRS485-2 9600 N 8 1
Настройки диммера HR1 = 0x0100

Димер работает, но проскакивают ошибки в опросе. wb-mqtt-serial

при опросе:
WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid crc
WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid data size
При управлении возникает иногда
WARNING: [register handler] failed to write: <modbus:18:holding: 5>: Serial protocol error: malformed response: invalid data size

Пробовал выставлять разные таймауты, периоды опроса, не помогает.

Хотелось бы узнать как можно решить данную проблему.
т.к. этот диммер один из немногих кто позволяет управлять 4-20мА

Шаблон

{
    "device_type": "DDL84Ri",
    "device": {
        "name": "DDL84Ri",
        "id": "ddl84ri",
        "max_read_registers": 4,
        "frame_timeout_ms": 0,
	"enabled": true,
        "channels": [
            {
                "name": "Channel 1",
                "reg_type": "holding",
                "address": 5,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 2",
                "reg_type": "holding",
                "address": 6,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 3",
                "reg_type": "holding",
                "address": 7,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 4",
                "reg_type": "holding",
                "address": 8,
                "type": "range",
                "max": "0x3ff"
            }
        ]
    }
}

log-file.txt (2.3 МБ)

Здравствуйте!
Пожалуйста, выполните следующие рекомендации.

  1. Физически отключите от шины все устройства, кроме диммера, их опрос отключите в конфигурации. Иногда устройства могут влиять на обмен данными с другими модулями.

  2. Убедитесь, что физическое подключение шины RS-485 выполнено согласно рекомендациям
    и пришлите фото подключения со стороны счетчика и со стороны контроллера. Основные требования - провода А и В шины RS-485 должны быть из одной витой пары, шина должна иметь линейную топологию, на конце установлен терминирующий резистор 120 Ом.

  3. В настройках аппаратной конфигурации порта, к которому подключен счетчик, включите терминирующий резистор и растяжку, как показано на скриншоте и сохраните конфигурацию:

  1. В настройках serial-устройств добавьте для используемого порта параметр guard interval (us):

Установите значение параметра в 5000 и сохраните конфигурацию:
image

  1. Установите максимальное количество читаемых за раз регистров в шаблоне в 1:
"max_read_registers": 1,
  1. Обновите все ПО контроллера на релиз wb-2201 (testing). Недавно было сделано обновление драйвера опроса serial-устройств. Используйте команду:
wb-release -t testing

Если после выполнения указанных выше действий ошибки будут все равно, то пришлите архив с диагностической информацией контроллера.
Также запустите драйвер опроса с максимальной диагностикой. Для этого выполните команды в консоли контроллера:

systemctl stop wb-mqtt-serial
wb-mqtt-serial -d3 2>&1 | grep WARNING -B 20 -A 20 | tee /root/serial_log

Дождитесь нескольких событий появления сообщений и остановите драйвер командой Ctrl + C, а файл /root/serial_log пришлите, пожалуйста для анализа.

  1. На 2 порт контроллера подключен только 1 диммер.
  2. Шина линейная, одна витая пара, резистор установлен.

  3. Резистор и растяжка включена.
  4. Добавил, установил 5000
  5. Установил в шаблоне “max_read_registers”: 1,
  6. На тестовую ветку перешел.
    3

Проблема не исчезла.

Архив: diag_output_AF54N5B6_2022-04-20-12.16.08.zip (107.5 КБ)

serial_log: serial_log (24 КБ)

Попробуйте еще увеличить таймаут ожидания ответа от модуля, установив, например 1 секунду для используемого порта:

Пришлите, пожалуйста, ваш файл конфигурации /mnt/data/etc/wb-mqtt-serial.conf

Увеличил, не помогло.

апр 20 17:24:47 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:47 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:49 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:49 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:49 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 8 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:51 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:51 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:53 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:53 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: malformed response: invalid data size
апр 20 17:24:53 wirenboard-AF54N5B6 wb-mqtt-serial[9037]: WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:18: Serial protocol error: malformed response: invalid crc

Конфигурация:wb-mqtt-serial.conf (1.9 КБ)

Перекинул диммер на WB7: (стабильная версия)
шаблон от DDL04, (одинаковые.)

Все аналогично:

Apr 20 17:33:11 wirenboard-AI6L2JVL wb-mqtt-serial[7193]: WARNING: [modbus] failed to read 4 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid data size
Apr 20 17:33:11 wirenboard-AI6L2JVL wb-mqtt-serial[7193]: WARNING: [modbus] failed to read 4 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid crc
Apr 20 17:33:24 wirenboard-AI6L2JVL wb-mqtt-serial[7193]: WARNING: [modbus] failed to read 4 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid data size
Apr 20 17:33:24 wirenboard-AI6L2JVL wb-mqtt-serial[7193]: WARNING: [modbus] failed to read 4 holding(s) @ 5 of device modbus:18: Serial protocol error: malformed response: invalid crc

Нашел проблему при которой появлялись invalid data size и invalid crc
На диммере нельзя менять на 1 стоп бит, всегда должно быть (2).
С (2) работает при настройке порта /dev/ttyRS485-2 9600 N 8 1

Сейчас в настройках порта стоит только:
Задержка перед записью в порт (мкс) 5000

Но теперь проскакивают вот такие ошибки:

апр 20 22:23:16 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:23:18 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [register handler] failed to write: <modbus:18:holding: 6>: Serial protocol error: request timed out
апр 20 22:23:45 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:24:38 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:25:06 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:26:22 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:27:05 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:27:45 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 20 22:28:38 wirenboard-AF54N5B6 wb-mqtt-serial[30418]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out

Что еще можно подкрутить?

Шаблон сейчас такой подгружен:

{
    "device_type": "DDL84Ri",
    "device": {
        "name": "DDL84Ri",
        "id": "ddl84ri",
        "max_read_registers": 0,
        "frame_timeout_ms": 0,
	"enabled": true,
        "channels": [
            {
                "name": "Channel 1",
                "reg_type": "holding",
                "address": 5,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 2",
                "reg_type": "holding",
                "address": 6,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 3",
                "reg_type": "holding",
                "address": 7,
                "type": "range",
                "max": "0x3ff"
            },
            {
                "name": "Channel 4",
                "reg_type": "holding",
                "address": 8,
                "type": "range",
                "max": "0x3ff"
            }
        ]
    }
}

{
“device_type”: “DDL84Ri”,
“device”: {
“name”: “DDL84Ri”,
“id”: “ddl84ri”,
“guard_interval_us”: 4000,
“enabled”: true,
“channels”: [
{
“name”: “Channel 1”,
“reg_type”: “holding”,
“address”: 5,
“type”: “range”,
“max”: “0x3ff”
},
{
“name”: “Channel 2”,
“reg_type”: “holding”,
“address”: 6,
“type”: “range”,
“max”: “0x3ff”
},
{
“name”: “Channel 3”,
“reg_type”: “holding”,
“address”: 7,
“type”: “range”,
“max”: “0x3ff”
},
{
“name”: “Channel 4”,
“reg_type”: “holding”,
“address”: 8,
“type”: “range”,
“max”: “0x3ff”
}
]
}
}

Он с порта сейчас берет, там 5000 стоит, это не поможет

Правильно ли я понимаю, что при опросе модуля диммера MDM3 ошибок нет при работе на обоих портах?

Не понимаю, почему нельзя, в документации указано, что можно:

Нужно проверить настройки обмена диммера. Считайте с помощью утилиты modbus_client регистры HR0 и HR1 несколько раз. Покажите вывод. Будут ли возникать ошибки при чтении регистров с помощью утилиты modbus_client?

Я на ночь в шаблоне изменил “frame_timeout_ms”: 100,
Ошибок стало меньше приходить в разы, но они все же есть.

Так же я заметил, что идет такое же количество и даже больше по Вашим диммерам
Прошивки самые новые Ваших устройств

2022-04-21 10:19:13,263 Update skipped: WB-MDM3 (port: /dev/ttyRS485-1; slaveid: 126) (has already latest fw 2.4.2)
2022-04-21 10:19:15,387 Update skipped: WB-MRGBW-D fw3 (port: /dev/ttyRS485-1; slaveid: 91) (has already latest fw 3.0.4)
2022-04-21 10:19:17,077 Update skipped: DDL84Ri (port: /dev/ttyRS485-2; slaveid: 18) (not supported in testing staging.03856)
2022-04-21 10:19:18,813 Update skipped: ALI-TEMP (port: /dev/ttyRS485-2; slaveid: 17) (not supported in testing staging.03856)

1 RS485 порт 9600 N 8 2 - 91 MRGBW, 126 MDM3.
2 RS485 порт 9600 N 8 1 - 18 DDL84Ri, 17 датчик уличный с Али.

За последний час

апр 21 08:13:56 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 21 08:23:53 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 2015 of device modbus:91: Serial protocol error: malformed response: invalid crc
апр 21 08:24:09 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 coil(s) @ 1 of device modbus:126: Serial protocol error: request timed out
апр 21 08:45:20 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 7 of device modbus:18: Serial protocol error: request timed out
апр 21 09:17:01 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 2 of device modbus:126: Serial protocol error: request timed out
апр 21 09:19:44 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 coil(s) @ 1 of device modbus:126: Serial protocol error: request timed out
апр 21 09:23:45 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 0 of device modbus:126: Serial protocol error: request timed out
апр 21 09:51:54 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 discrete(s) @ 5 of device modbus:126: Serial protocol error: request timed out
апр 21 09:53:50 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 discrete(s) @ 5 of device modbus:126: Serial protocol error: request timed out
апр 21 10:01:30 wirenboard-AF54N5B6 wb-mqtt-serial[21191]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: request timed out

Поменять то можно, но начинаются ошибки в большом количестве invalid data size и invalid crc
Также в одной из инструкций у них прописано:

Ошибок нет:
логи.txt (4.9 КБ)

Вот как я понял в настройка serial у вас стоит 1 стоп-бит и есть ошибки, а при чтении утилитой вы используете 2 стоп-бита и ошибок нет. И в настройках диммера DDL84R тоже стоит 2 стоп-бита. Попробуйте выставить в настройках порта RS-485-2 тоже 2 стоп-бита, а датчик с Али пока совсем отсоедините.

Сделал -s1, нет ошибок чтения: логи.txt (6.9 КБ)

Сейчас поменял на порту на 2 стоп бит, через час отпишусь, что по опросу будет.

Можно не ждать, уже прилетела первая

Датчик с али не отключил, он при 1 стоп бите хорошо работает на 2 установленых на порту.
причем на нем всех меньше ошибок было, хоть и китай.
6

апр 21 10:55:52 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [serial device] device modbus:17 is connected
апр 21 10:55:52 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [serial device] device modbus:18 is connected
апр 21 10:55:52 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: WARNING: [modbus] failed to read 1 input(s) @ 100 of device modbus:126: Serial protocol error: illegal data value
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [modbus] Init: Mode dp_title: setup register <modbus:91:holding: 1042> <-- 0 (0x0)
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [modbus] Init: Mode lp_title: setup register <modbus:91:holding: 1022> <-- 0 (0x0)
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [modbus] Init: Mode slp_title: setup register <modbus:91:holding: 1062> <-- 0 (0x0)
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [modbus] Init: Mode sp_title: setup register <modbus:91:holding: 1002> <-- 0 (0x0)
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [modbus] Init: Mode Dimmer mode: setup register <modbus:91:holding: 4000> <-- 0x0100 (0x100)
апр 21 10:55:53 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: INFO: [serial device] device modbus:91 is connected
апр 21 11:03:56 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: WARNING: [modbus] failed to read 1 holding(s) @ 6 of device modbus:18: Serial protocol error: request timed out
апр 21 11:12:05 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: WARNING: [modbus] failed to read 1 discrete(s) @ 1 of device modbus:126: Serial protocol error: request timed out
апр 21 11:13:02 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out
апр 21 11:13:55 wirenboard-AF54N5B6 wb-mqtt-serial[31020]: WARNING: [modbus] failed to read 1 holding(s) @ 5 of device modbus:18: Serial protocol error: request timed out


Можете дать удаленный доступ для диагностики? Можно прислать личным сообщением.

Отправил, личным сообщением