DALI gw 2 выдает ошибки в каналах MQTT

Добрый день, подключили 3 шлюза ECODin DALI GW2, выдает ошибки во вкладке “Каналы MQTT”. Посчитали, что проблема в общем адресе (у всех шлюзов адрес 21). Пробовали изменить адрес через modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r19 15, но не получается. При отключении 2 шлюзов, оставшийся все равно выдает ошибки. Если получится объяснить доступным языком, тк я начинающий в этой сфере буду очень благодарен!

Добрый день.
Покажите, что получаете в ответ на вашу команду.

Здравствуйте, Михаил! На команду изменения адреса выдает
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r19 17
Data to write: 0x11
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][06][00][13][00][11][BB][17]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
Но и вопрос по ошибкам в каналах MQTT, в моем понимании, если подключен только один шлюз, проблема бы отпала, но она осталась, ошибки R идут, я так понимаю то ошибка чтения регистра, верно? Так же во вкладке устройства шлюз тоже весь красный.

Предположу, что не остановлен сервис wb-mqtt-serial. Поэтому и смены адреса нет.

Опишите подробнее как настраивали подключение шлюза к контроллеру.

root@wirenboard-AYXCK7OQ:~# systemctl stop wb-mqtt-serial
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r19 17
Data to write: 0x11
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][06][00][13][00][11][BB][17]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
Отключаю
В плане настроек в интерфейсе ничего не делали, добавили через Конфигурационные файлы-настройка драйверов serial устройств. Дальше в устройствах он загорелся красным и в каналах mqtt выдал ошибки.Мы что то забыли?
Шлюз подключен к контроллеру по RS 485, согласно схеме подключения.

Пришлите фото подключения шлюза.


Меня смущает два момента:

  1. куда подключено;
  2. как подключено.

Подключите шлюз согласно документации и соблюдая требования к шине.

RS485 всех шлюзов запараллелены и идут в контроллер. В документации от RTU на шлюзе идут провода, к чему они должны идти и обязательны ли?

Я так понимаю, что вы подключаете шлюз к контроллеру по Modbus RTU — RS-485.

Подключите любой из портов RS-485 контроллера к клеммам A и B (RTU) шлюза соблюдая правила подключения шины RS-485.

2 Likes

Подключили порт RS 485 контроллера к клеммам А и В (RTU) шлюза и большинство ошибок пропало, остались только ошибки яркости и температуры света, но это, я так понимаю, из за того, что не подключены лампы. Вопрос с изменением адреса решился частично, после команды по изменению адреса выдает, что все ок, команда выполнена:
root@wirenboard-AYXCK7OQ:~# systemctl stop wb-mqtt-serial
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r19 5
Data to write: 0x5
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][06][00][13][00][05][BB][18]
Waiting for a confirmation…
<15><06><00><13><00><05><18>
SUCCESS: written 1 elements!
НО! шлюз продолжает работать на старом (21) адресе, реле отщелкивают. reboot и/или отключение питания не помогает, хотя не уверен, что это вообще нужно, ведь в документации шлюза сказано, что Все изменения (в том числе скорость передачи данных, номер порта, IP-адрес и пр.) вступают в силу сразу после записи нового значения в
соответствующий регистр. Изменение адреса в графе настроек драйверов serial на новый приводит к тому, что шлюз обратно в ошибки уходит, а если обратно на 21 адрес вернуть, снова работает. Напомню, изменение адреса нужно для работы с тремя шлюзами.

Я вижу успешную запись нового адреса. Пришлите вывод команды:

modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a5 -t0x03 -r20

root@wirenboard-AYXCK7OQ:~# systemctl stop wb-mqtt-serial
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r19 5
Data to write: 0x5
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][06][00][13][00][05][BB][18]
Waiting for a confirmation…
<15><06><00><13><00><05><18>
SUCCESS: written 1 elements!
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a5 -t0x03 -r20
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[05][03][00][14][00][01][C5][8A]
Waiting for a confirmation…
ERROR Connection timed out: select
ERROR occured!
Выдает ошибку, а если сразу же сделать запрос на 21 адрес, то вот
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x03 -r20
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][03][00][14][00][01][C7][1A]
Waiting for a confirmation…
<15><03><02><00><06><08><45>
SUCCESS: read 1 of elements:
Data: 0x0006

Пока не понимаю.
Покажите вывод команды:

modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x03 -r19

root@wirenboard-AYXCK7OQ:~# systemctl stop wb-mqtt-serial
root@wirenboard-AYXCK7OQ:~# modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x03 -r19
Opening /dev/ttyRS485-1 at 19200 bauds (N, 8, 1)
[15][03][00][13][00][01][76][DB]
Waiting for a confirmation…
<15><03><02><00><05><48><44>
SUCCESS: read 1 of elements:
Data: 0x0005

Чудеса какие-то. Переподайте питание на шлюз. И пробуйте подключиться по адресу 5.

Так же в ошибку уходит, работает на 21 адресе…

Я б проверил смену адреса, допустим, на 22. Затем попробовал б сменить адрес на другом шлюзе. Если б и это не помогло, то обратился в техподдержку оборудования, т.к. заявленный регистр для смены адреса перезаписываете, но по факту адрес не меняется.

Позвонил производителям, сказали, что у них стоит защита от случайных изменений настроек, после подобных изменений нужно “подтвердить” их, это 17 регистр в таблице управление по протоколу ModBus (странно, что он находится в блоке настройки ModBus TCP). Говорит, что нужно сначала прописать то, что я уже прописывал, а после “подтвердить” это изменение в 17 регистре со значением 1, далее перезагрузить шлюз. На словах все понятно, но так я только начинаю разбираться в этой сфере, опыта нет, поэтому нет понимания, как подтвердить свое изменение. Если в смене адреса ± все понятно, там я прописываю характеристики, старый/новый адрес шлюза и регистр, то что мне надо прописать в подтверждении?

Думаю, что нужна следующая команда:

modbus_client --debug -mrtu -b19200 -pnone -s1 /dev/ttyRS485-1 -a21 -t0x06 -r17 1
1 Like