Модули razumdom

имею 4 модуля drm88r и 2 диммера ddm845r

  1. сбросил контроллер

  2. добавил модули, присвоив им адреса

  3. указал тип работы модулей

получил огромные задержки при работе модулей + они красные вечно, на фото еще частично но по факту не работают

  1. менял скорости и прочие моменты, но скорости меняются через раз, приходится постоянно сбрасывать модули и начинать сначала

в итоге не могу пользоваться этими устройствами, точнее заказчик не может. из-за отсутствия адекватной поддержки от производителя (они во всем винят меня, хотя я все делаю по инструкции) я хочу взорвать эти модули и купить заказчику за свой счет ваши модули. но это случится не скоро, поэтому если у вас есть возможность помочь мне с этими модулями то буду очень благодарен

Добрый день.
По скриншоту видно что устройство с адресом 6 ответило, с адресом 5 - на вторую попытку запроса прислало два байта. Картина похожа на неконтакт в одном из проводов шины.
Как у вас физически организована шина от контроллера к модулям (фото, лучше всего)? Точно ли соединены GND клеммы всех устройств?
Устройства “разумдом” опрашиваются, обычно, без каких-либо проблем.
Для проверки - можно взять отдельный, заведомо исправный кусок кабеля UTP и подключить одно устройство на порт, используя для шины по проводу из одной пары, для GND - целую пару.

С контактом всё хорошо, модули здесь работали, до тех пор пока вчера мы не сбросили модуль к заводским. При этом физически ничего не трогалось.

Фото запрошу, позже отправлю

Смотрите, я поочерёдно на всех модулях присвоил адрес
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0 2
а для
ddm845r modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r0 3

Затем также поочерёдно задал тип работы
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a5 -t0x06 -r2691 2

Включаю шину, они красные, но работают с задержкой. Выключаю шину, пытаюсь увеличить скорость командой
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r1 0x0101
но команда записывается только на 2 модуля, на всех остальных ошибка.

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

Модуль - имеется в виду drm88r или ddm845r?

Тут не совсем понял, какие адреса у модулей после присвоения стали?

дайте диагностический архив пожалуйста. Создание архива описано в документации.

Ну и файл /etc/wb-mqtt-serial.conf

Подготовил файлы
diag_output_AFNMM6MG_2022-11-30-18.zip (130.2 КБ)
wb-mqtt-serial.conf (1.9 КБ)

Еще раз попробовали добавить модули. WB модули идеально добавляются в контроллер. Идеально работают. разумдом нифига не работает.
Снова опишу что делаю:

  1. выключаю шину
  2. сбрасываю в ноль модуль
  3. задаю адреса “modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r0 2” для drm88r и " modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a34 -t0x06 -r0 3" для ddm845r. всего у меня 4 шт drm88r и 2 шт ddm845r, адреса естественно не повторяются.
  4. выкл/вкл чтобы адрес запомнился
  5. задаю режим работы “modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a5 -t0x06 -r2691 2
  6. увеличиваю скорость “modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a2 -t0x06 -r1 0x0101
  7. выкл/вкл чтобы скорость запомнилась
  8. включаю шину, добавляю модуль в wb-mqtt-serial.conf, проверяю работу, работает с большой задержкой или не работает вообще.

Начинаю сначала, снова сбрасываю, снова задаю режим работы, снова меняю скорость и прочие параметры. И не работает всё равно. Уже раз 100500 повторял эту операцию, менял порты - безрезультатно. Сброс контроллера не помог.

Причем 2 модуля drm88r вообще перестали реагировать на какие-либо команды.

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

После того как 100500 раз была проведена указанная выше операция мы снова будем снимать эти модули и отправлять в Тулу, так как 2 модуля вообще не работают. Но перед этим хочется разобраться в следующих вопросах:

  1. почему устройства любых параметрах скорости, битов, четности и т.п. работают с задержкой и красные в интерфейсе или не работают вообще
  2. почему я выключаю шину, задаю параметры, они записываются, потом включаю шину и снова выключаю и параметры уже не записываются? Разумеется, повторную команду я отправляю по новым реквизитам скорости и это не помогает никак.

Да, шину проверили, контакт везде хороший. После первого отключения wb-mqtt-serial.conf всё записывается нормально, после включения работает с большими задержками, после выключения уже не записывается.

каким шаблоном вы пользуетесь? можете прислать?

config-ddm845r.json (2.1 КБ)
config-drb88.json (2.0 КБ)

Стандартными, что есть в системе

“guard_interval_us”: 10000,

Но в логе видно:

Nov 30 18:09:07 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [modbus] Init: Input 0 type: setup register <modbus:6:holding: 1> <-- 1 (0x1)
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [modbus] Init: Input 0 module: setup register <modbus:6:holding: 3> <-- 3 (0x3)
Nov 30 18:09:09 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:6 is connected
Nov 30 18:09:10 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: [register handler] failed to write: <modbus:6:coil: 4>: Serial protocol error: request timed out
Nov 30 18:09:12 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:5 is disconnected
Nov 30 18:09:13 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:15 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:7 is disconnected
Nov 30 18:09:17 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:4 is disconnected
Nov 30 18:09:25 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: [register handler] failed to write: <modbus:3:holding: 42>: Serial protocol error: request timed out
Nov 30 18:09:27 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: WARNING: </dev/ttyRS485-1 19200 8 N 1>: closed due to repetetive errors
Nov 30 18:09:28 wirenboard-AFNMM6MG wb-mqtt-serial[31042]: INFO: [serial device] device modbus:3 is disconnected

Возможно, устройство не успевает отвечать?
В документации по этому поводу описано:

// Дополнительная задержка перед каждой отправкой данных в порт в микросекундах
            // Если при работе с устройством теряются пакеты — попробуйте увеличить значение этого параметра.
            // Для соответствия протоколу Modbus RTU, установите этот параметр в значение не менее 3.5 символа при выбранной скорости — это не нужно для устройств Wiren Board, но может потребоваться для устройств сторонних производителей. Нужное значение рассчитывается по формуле: guard_interval_us = (3.5*11*106)/(скорость в бит/с). Например, для скорости 9600 бит/с guard_interval_us = (3.5*11*106)/9600 = 4000 мкс.
            "guard_interval_us": 1000,

“выключение шины” - это остановка wb-mqtt-serial?

В логе вижу для устройства с адресом 6, которое опимсано в конфиге как

        {
          "device_type" : "DRB88",
          "name" : "UD12",
          "slave_id" : "6"
        },

строчки

Nov 30 18:02:18 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [modbus] Init: Input 0 type: setup register <modbus:6:holding: 1> <-- 1 (0x1)
Nov 30 18:02:19 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [modbus] Init: Input 0 module: setup register <modbus:6:holding: 3> <-- 3 (0x3)
Nov 30 18:02:19 wirenboard-AFNMM6MG wb-mqtt-serial[29700]: INFO: [serial device] device modbus:6 is connected

То есть в 1 регистр пишется 1


которое меняет параметры связи на 19200 8n1

При этом секции setup в конфиге нет, это лог работы с другим конфигом?

Да

Нет, всё что было я выкачал

Я ставил скорость 19200 на 8n1, значения в шаблоне устройства не менял

В качестве эксперимента - если оставить модули на стандартной скорости - они работают в wb-mqtt-serial? Есть ли ошибки?
Если несколько раз останавливать-запускать wb-mqtt-serial - есть ошибки, модули продолжают отвечать?
Если да - тогда надо поменять настройки скрости,
затем попробовать опросить их с помощью modbus_client, выключить-включить питание модулей и снова попробовать опрос modbus_client. Если успешно - вкелючить в wb-mqtt-serial.сщта debug и запустить его.