16 343
правки
(Добавил про обновление через socat) |
|||
Строка 1: | Строка 1: | ||
{{DISPLAYTITLE: Работа с | {{DISPLAYTITLE: Работа с подключёнными к WB-MGE (WB-MIO-E) устройствами через socat}} | ||
== modbus_client == | |||
Утилита [[ Modbus-client | modbus_client]] для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки не умеет работать с протоколом Modbus over TCP, который используется для коммуникации с модулем WB-MGE и WB-MIO-E по сети Ethernet. | Утилита [[ Modbus-client | modbus_client]] для опроса устройств по протоколам Modbus RTU и Modbus TCP из командной строки не умеет работать с протоколом Modbus over TCP, который используется для коммуникации с модулем WB-MGE и WB-MIO-E по сети Ethernet. | ||
Строка 30: | Строка 30: | ||
Только при соблюдении всех условий обновление прошивки будет работать. | Только при соблюдении всех условий обновление прошивки будет работать. | ||
== Обновление прошивки == | |||
{{note|info|Инструкция подразумевает базовые навыки работы в коммандной строке, знание синтаксиса socat и хорошее понимание работы наших устройств. Ниже мы рассмотрим синтетический пример, который может сильно отличаться от вашей ситуации.}} | |||
Так как загрузчик наших устройств может работать только на скорости 9600 кбит/с, то и устройства за шлюзом должны работать на этой же скорости, как и сам шлюз. | |||
Допустим, у нас есть шлюз WB-MGE и подключенное к нему устройство WB-MDM3 с адресом 58 и работающее на скорости 115200 кбит/с: | |||
# Дважды подключитесь к контроллеру по [[SSH]],у вас должно быть открыто два окна: первое для создания тоннеля socat, второе для отправки команд устройству. | |||
# Остановите wb-mqtt-serial. | |||
# Настройте переадресацию socat: | |||
#:<syntaxhighlight lang="bash"> | |||
socat -d -d -d -x PTY,raw,ispeed=115200,ospeed=115200,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23& | |||
</syntaxhighlight> | |||
# Во втором окне измените скорость порта устройства на 9600: | |||
#:<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 96 | |||
</syntaxhighlight> | |||
# В первом окне разорвите соединение socat клавишами <kbd>Ctrl</kbd>+<kbd>C</kbd>. | |||
# Подключите Ethernet кабель шлюза WB-MGE к ноутбуку, откройте браузер и введите IP-адрес шлюза, например, 192.168.0.7 | |||
# В веб-интерфейсе шлюза измените настройки порта с 115200 кбит/с на 9600 кбит/с | |||
# Подключите шлюз к контроллеру по Ethernet. | |||
# В первом окне снова создайте тоннель socat, не забудьте изменить скорость в параметрах: | |||
#:<syntaxhighlight lang="bash"> | |||
socat -d -d -d -x PTY,raw,ispeed=9600,ospeed=9600,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23& | |||
</syntaxhighlight> | |||
# Во втором окне прошейте устройство, например, утилитой wb-mcu-fw-updater: | |||
#:<syntaxhighlight lang="bash"> | |||
wb-mcu-fw-updater update-fw /dev/ttyRS485-5 -a58 | |||
</syntaxhighlight> | |||
# После окончания прошивки верните в устройстве старую скорость 115200 кбит/с: | |||
#:<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 1152 | |||
</syntaxhighlight> | |||
# В первом окне разорвите соединение socat клавишами <kbd>Ctrl</kbd>+<kbd>C</kbd>. | |||
# Подключите Ethernet кабель шлюза WB-MGE к ноутбуку, откройте браузер и введите IP-адрес шлюза, например, 192.168.0.7 | |||
# В веб-интерфейсе шлюза измените настройки порта с 9600 кбит/с на 115200 кбит/с | |||
# Запустите wb-mqtt-serial | |||
Если вам нужно прошить несколько устройств, то вы можете серва изменить им скорость, потом перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз. | |||
== Информация по теме на портале == | == Информация по теме на портале == | ||
* [https://support.wirenboard.com/t/kak-smenit-proshivku-ili-skorost-u-modulya-wb-podklyuchyonnogo-k-tcp-portu/8480 Как сменить прошивку или скорость у модуля Wiren Board, подключённого к TCP порту?] | * [https://support.wirenboard.com/t/kak-smenit-proshivku-ili-skorost-u-modulya-wb-podklyuchyonnogo-k-tcp-portu/8480 Как сменить прошивку или скорость у модуля Wiren Board, подключённого к TCP порту?] | ||
* [https://support.wirenboard.com/t/wb-mio-e-nastrojka-podklyuchennogo-ustrojstva-modbus-client/8471 WB-MIO-E - настройка подключенного устройства modbus_client] | * [https://support.wirenboard.com/t/wb-mio-e-nastrojka-podklyuchennogo-ustrojstva-modbus-client/8471 WB-MIO-E - настройка подключенного устройства modbus_client] |