|
|
(не показано 16 промежуточных версий 3 участников) |
Строка 1: |
Строка 1: |
| {{Draft}}
| |
| {{DISPLAYTITLE: Утилита socat}} | | {{DISPLAYTITLE: Утилита socat}} |
|
| |
|
Строка 24: |
Строка 23: |
| ===socat в контроллере Wiren Board=== | | ===socat в контроллере Wiren Board=== |
| В контроллере Wiren Board утилиту socat можно использовать для следующих задач: | | В контроллере Wiren Board утилиту socat можно использовать для следующих задач: |
| * обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E, | | * [[WB_Modbus_Devices_Firmware_Update#Обновление_прошивки_устройств,_подключенных_к_шлюзам_WB-MGE_и_WB-MIO-E |обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E]], |
| * конфигурирование устройств, подключенных к шлюзам WB-MGE и WB-MIO-E, через консоль,
| | * [[Socat#Конфигурирование_устройств_с_помощью_modbus_client |конфигурирование устройств]], подключенных к шлюзам WB-MGE и WB-MIO-E, через консоль, |
| * доступ к портам RS-485 контроллера из консоли компьютера. | | * [[Socat#Получение_доступа_к_порту_RS-485_контроллера_Wiren_Board_с_компьютера |доступ к портам RS-485]] контроллера из консоли компьютера. |
| | |
| ==Обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E==
| |
| | |
| Для обновления прошивки устройства требуется доступ контроллера к интернету. Поэтому вам придется задействовать оба Ethernet порта контроллера: один со статическим IP-адресом — для подключения шлюза, второй — для доступа к интернету. Порты можно легко сконфигурировать в [[Networks | веб-интерфейсе контроллера]].
| |
| | |
| Для обновления прошивки используется утилита wb-mcu-fw-updater. Она будет работать, только если выполнены два условия.
| |
| #Режим шлюза должен быть TCP Server/None (для WB-MGE v2, WB-MIO-E v2) или TCP Server (для WB-MGE v1, WB-MIO-E v1).
| |
| #Modbus-устройства и шлюз должны иметь следующие настройки обмена по интерфейсу RS-485:
| |
| #*скорость — 9600 бит/с,
| |
| #*биты данных — 8,
| |
| #*бит четности — нет,
| |
| #*количество стоп-битов — 2.
| |
| | |
| Поэтому для обновления прошивки нужно изменить параметры соединения, если они отличаются от указанных, а потом вернуть обратно.
| |
| | |
| ===Пример конфигурации===
| |
| Для примера возьмём конфигурацию:
| |
| *Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23.
| |
| *К шлюзу подключено устройство WB-MDM3 с адресом 58. | |
| *В настройках устройства и шлюза выставлена скорость 115200 кбит/с.
| |
| | |
| ===Инструкция===
| |
| Чтобы обновить прошивку:
| |
| #Дважды подключитесь к контроллеру по SSH, у вас должно быть открыто два окна: первое для создания тоннеля socat, второе для отправки команд устройству.
| |
| #Остановите wb-mqtt-serial:
| |
| #:<syntaxhighlight lang="bash">
| |
| systemctl stop wb-mqtt-serial
| |
| </syntaxhighlight>
| |
| #В первом окне запустите перенаправление:
| |
| #:<syntaxhighlight lang="bash">
| |
| socat -d -d -d -x PTY,raw,b115200,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23&
| |
| </syntaxhighlight>
| |
| #:если у вас стабильный релиз до wb-2207 включительно, вместо параметра b115200, используйте <code>ispeed=115200,ospeed=115200</code>.
| |
| #Во втором окне измените скорость порта устройства на 9600 кбит/с:
| |
| #:<syntaxhighlight lang="bash">
| |
| modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 96
| |
| </syntaxhighlight>
| |
| #В первом окне разорвите соединение socat клавишами <kbd>Ctrl</kbd>+<kbd>C</kbd>.
| |
| #В [[Socat#%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BA%20%D1%88%D0%BB%D1%8E%D0%B7%D0%B0 | настройках шлюза]] установите скорость порта 9600 кбит/с.
| |
| #В первом окне снова запустите перенаправление socat с новыми параметрами соединения:
| |
| #:<syntaxhighlight lang="bash">
| |
| socat -d -d -d -x PTY,raw,b9600,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23&
| |
| </syntaxhighlight>
| |
| #:если у вас стабильный релиз до wb-2207 включительно, вместо параметра b9600, используйте <code>ispeed=9600,ospeed=9600</code>.
| |
| #Во втором окне запустите обновление прошивки устройства, например, утилитой 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 -b9600 -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 1152
| |
| </syntaxhighlight>
| |
| #В первом окне разорвите соединение socat клавишами <kbd>Ctrl</kbd>+<kbd>C</kbd>.
| |
| #В настройках шлюза измените скорость порта с 9600 кбит/с на 115200 кбит/с.
| |
| #Подключите шлюз к контроллеру по Ethernet.
| |
| #Запустите wb-mqtt-serial
| |
| #:<syntaxhighlight lang="bash">
| |
| systemctl start wb-mqtt-serial
| |
| </syntaxhighlight>
| |
| | |
| Если вам нужно прошить несколько устройств, то вы можете сперва изменить им скорость, перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз.
| |
| | |
| ===Настройка шлюза для обновления прошивки===
| |
| [[Image: superport-config.png |350px|thumb|right| Настройки шлюза для обновления прошивки]]
| |
| Самый простой способ изменить настройки шлюза — подключиться к его встроенному веб-интерфейсу. Для этого нужно:
| |
| | |
| #подключить шлюз к компьютеру UTP кабелем напрямую или через роутер,
| |
| #присвоить компьютеру статический IP-адрес в сети шлюза, например, 192.168.0.201,
| |
| #открыть браузер и ввести IP-адрес шлюза, по умолчанию 192.168.0.7.
| |
| | |
| Если у вас нет возможности физически подключить шлюз к компьютеру, можно использовать GET-запросы из консоли контроллера.
| |
| | |
| Получить текущие параметры шлюза можно командой:
| |
| <syntaxhighlight lang="bash">
| |
| curl 'http://192.168.0.7/sernet1.shtml' -u admin:admin
| |
| </syntaxhighlight>
| |
| Ответ будет содержать html-файл с параметрами.
| |
| | |
| Записать настройки можно командой:
| |
| <syntaxhighlight lang="bash">
| |
| curl 'http://192.168.0.7/config.cgi?br=9600&bc=8&parity=1&stop=2&flow=1&xon=0&tim=0&num=0&srf=1&srm=1&srz=30&tnmode=3&mbtp=0&tcpstx=9&ticken=0&urh=16&urf=1&tlp=23&srh=86400&srq=3&ura=10&srp=1&srr=30&sru=0&srt=1&tnbode=7' -u admin:admin
| |
| </syntaxhighlight>
| |
|
| |
|
| == Конфигурирование устройств с помощью modbus_client == | | == Конфигурирование устройств с помощью modbus_client == |