WB-MRGB не отвечает после попытки изменения скорости

Здравствуйте,

Возникла проблема с двумя модулями WB-MRGB - после попытки изменить скорость шины, оба модуля не отвечают.

0x3c - WB-MRGB
0xa6 - WB-MRM2-mini
0xa5 - WB-MRGB


wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-2 -b9600 -pnone -s2 --debug -a0x3c -t6 -r110 0x0c
Data to write: 0xc
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[3C][06][00][6E][00][0C][EC][FF]
Waiting for a confirmation...
ERROR Connection timed out: select
<3C><06><00><FE>ERROR occured!

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-2 -b1200 -pnone -s2 --debug -a0x3c -t3 -r110 -c1
Opening /dev/ttyRS485-2 at 1200 bauds (N, 8, 2)
[3C][03][00][6E][00][01][E1][3A]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-2 -b9600 -pnone -s2 --debug -a0x3c -t3 -r110 -c1
Opening /dev/ttyRS485-2 at 9600 bauds (N, 8, 2)
[3C][03][00][6E][00][01][E1][3A]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!

========================================

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-1 -b9600 -pnone -s2 --debug -a0xa6 -t6 -r110 0x0c
Data to write: 0xc
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[A6][06][00][6E][00][0C][F1][05]
Waiting for a confirmation...
<A6><06><00><6E><00><0C><F1><05>
SUCCESS: written 1 elements!

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-1 -b1200 -pnone -s2 --debug -a0xa6 -t3 -r110 -c1
Opening /dev/ttyRS485-1 at 1200 bauds (N, 8, 2)
[A6][03][00][6E][00][01][FC][C0]
Waiting for a confirmation...
<A6><03><02><00><0C><8D><98>
SUCCESS: read 1 of elements:
	Data: 0x000c 

=========================================

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-1 -b9600 -pnone -s2 --debug -a0xa5 -t6 -r110 0x0c
Data to write: 0xc
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[A5][06][00][6E][00][0C][F1][36]
Waiting for a confirmation...
ERROR Connection timed out: select
<A5>ERROR occured!

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-1 -b1200 -pnone -s2 --debug -a0xa5 -t3 -r110 -c1
Opening /dev/ttyRS485-1 at 1200 bauds (N, 8, 2)
[A5][03][00][6E][00][01][FC][F3]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!

wirenboard:~ # modbus_client -mrtu /dev/ttyRS485-1 -b9600 -pnone -s2 --debug -a0xa5 -t3 -r110 -c1
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[A5][03][00][6E][00][01][FC][F3]
Waiting for a confirmation...
ERROR Connection timed out: select
ERROR occured!

Добрый день, alex3, подскажете, какая версия прошивок у обоих устройств? (Можно фотографии наклеек прислать с серийником).

Уважаемая техподдержка,

будем ли мы как-то решать эту проблему?

alex3? к сожалению данную модель диммеров мы сняли с производства и поддержка ее закончилась. В них действительно есть неприятная особенность: смена baudrate (по крайней мере на 1200 бит/с) в их прошивке работает некорректно, с другими скоростями все в порядке.

Могу предложить два варианта: перебором (могу выложить сюда скрипт для Wiren Board) определить текущие настройки и поменять затем на нужные.
Приобрести новые диммеры, в которых этой проблемы нет:
Диммер светодиодных лент на DIN-рейку WB-MRGBW-D

Скрипт для определения текущих настроек можно скачать со страницы https://wirenboard.com/wiki/index.php/UART_Communication_Settings
По ссылке https://wirenboard.com/wiki/images/6/6a/Perebor.sh.tar.gz

Вот результат работы скрипта на /dev/ttyRS485-1 и /dev/ttyRS485-2

wirenboard:~ # ./perebor.sh
Progress : [##################################------] 87%       
Speed:1200      Stop bits:1     Parity:none     Modbus address:0x00b1   
Speed:1200	Stop bits:1     Parity:none     Modbus address:Data:0x00b2      
Speed:1200      Stop bits:1     Parity:none     Modbus address:Data:0x00b3
Progress : [#####################################---] 93%       
Speed:1200      Stop bits:2     Parity:none     Modbus address:0x00b1   
Speed:1200      Stop bits:2     Parity:none     Modbus address:Data:0x00b2      
Speed:1200      Stop bits:2     Parity:none     Modbus address:Data:0x00b3                              Progress : [########################################] 100%

wirenboard:~ # ./perebor.sh
Progress : [----------------------------------------] 0%
Speed:9600      Stop bits:1     Parity:none     Modbus address:0x00a4
Progress : [##--------------------------------------] 6%        
Speed:9600      Stop bits:2     Parity:none     Modbus address:0x00a4
Progress : [##################################------] 87%       
Speed:1200      Stop bits:1     Parity:none     Modbus address:0x00a1   
Speed:1200	Stop bits:1     Parity:none     Modbus address:Data:0x00a2      
Speed:1200      Stop bits:1     Parity:none     Modbus address:Data:0x00a3      
Speed:1200	Stop bits:1     Parity:none     Modbus address:Data:0x00a6
Progress : [####################################----] 91%
Progress : [#####################################---] 93%
Speed:1200      Stop bits:2     Parity:none     Modbus address:0x00a1   
Speed:1200      Stop bits:2     Parity:none     Modbus address:Data:0x00a2     
Speed:1200      Stop bits:2     Parity:none     Modbus address:Data:0x00a3      
Speed:1200      Stop bits:2     Parity:none     Modbus address:Data:0x00a6
Progress : [########################################] 100%

Искомые модули 0x3c и 0xa5 не найдены. Повторю, что модули подключены к шине, исправно реагируют на нажатие кнопки выключателя, но не отвечают на запросы по modbus.

Мне нужно вернуть их в рабочее состояние на любой скорости шины.

Так, скорее всего, у них поменялись и адреса. У вас есть возможность оставить подключенным одно из неисправных устройств к порту и опросить его скриптом? Устройство с адресом 0xa4 и скоростью 9600 – это известное какое-то устройство?

Да, все что выдал perebor.sh - это известные устройства. 0xa4 - это WB-MRGBW-D, на котором я пока не менял скорость, т.к. с ним тоже возможны проблемы, судя по форуму.

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

https://wirenboard.com/wiki/index.php/WB-MCU-Flasher - здесь сказано, что файлы прошивок присылаются по запросу.

Если перепрошивка может помочь, пришлите, пожалуйста прошивку для WB-MRGB.

alex3, беда в том, что устройства старые, и их прошивка тоже старая и не поддерживает перепрошивку.

Странно, что перебором найти не удалось, может, стоит попробовать в скрипте таймаут “-o 200” увеличить до 500.

Я, перед тем как рекомендовать способ с перебором, нашел один диммер вашей модели, может, с чуть более поздней прошивкой, “испортил” его, прописав 1200 в регистр скорости коммуникации, но смог потом найти и изменившийся адрес, и новую сокрость (установилась в 115200), а затем вернуть обратно.

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

Окей, попробую.

Скажите, какой оказался новый адрес в вашем случае?
Данный баг проявляется только со скоростью 1200 или при любом изменении?
Возможно ли поменять адрес путем отправки команды на адрес 0? (при условии, что устройство одно на линии)

Актуальна ли данная проблема для WB-MRGBW-D?

Только с 1200. Адрес изменился на 0x1a, скорость — на 115200.
Да, установка адреса через широковещательный 0-адрес должно работать.
В WB-MRGBW-В все вот эти известные баги устранены в последней прошивке (которая и удаленную перепрошивку поддерживает еще).

К сожалению, полное сканирование, установка адреса через широковещательный 0-адрес при соло-подключении к шине не дало результатов.

Модули полностью вышел из строя при попытке изменения скорости шины.

Вы могли бы заменить/починить эти модули, если я их вам отправлю?

Быстрее всего будет заменить их по гарантии на новые WB-MRGBW-D. Напишите пожалуйста запрос на info@contactless.ru с номером заказа, серийными номерами устройств и контактами и адресом для доставки замены. Вместо описания неисправности приложите ссылку на этот форум.