Перейти к содержанию

Навигация

WB Modbus Devices Firmware Update/en: различия между версиями

Обновление для соответствия новой версии исходной страницы.
м (FuzzyBot переименовал страницу WB-MCU-Flasher/en в WB Modbus Devices Firmware Update/en без оставления перенаправления: Часть переводимой страницы WB-MCU-Flasher.)
(Обновление для соответствия новой версии исходной страницы.)
Строка 1: Строка 1:
<languages/>
<languages/>
<div lang="ru" dir="ltr" class="mw-content-ltr">
{{DISPLAYTITLE:Обновление прошивки Modbus-устройств Wiren Board}}
== Общая информация ==
{{PeerTube
| link= https://peertube.wirenboard.com/video-playlists/embed/6623c76e-1abe-4728-959c-f5dde919d80c?playlistPosition=8
| playlist = true
| text= Обновление прошивок устройств (24:08)
}}
В modbus-устройствах Wiren Board есть [[Bootloader |загрузчик (bootloader)]], который позволяет обновлять прошивки по RS-485/Modbus RTU. В режиме загрузчика основные функции устройства отключаются, а коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2.
</div>


{{DISPLAYTITLE:Загрузка прошивок на устройства Wiren Board}}
<div lang="ru" dir="ltr" class="mw-content-ltr">
Сами прошивки выпускаются в формате релизов, которые привязаны к [[Wiren_Board_Software#releases| релизам программного обеспечения контроллера]], но имеют отличный от него цикл:
* '''testing''' — сюда попадают прошивки после внутреннего тестирования, доступны для пользователей testing-релиза контроллера;
* '''stable''' — через три недели после публикации в testing и при отсутствии сообщений об ошибках, прошивки считаются стабильными. В этот момент они становятся доступны и для пользователей stable-релиза контроллера. Если изменений в прошивке было много и они затрагивали основные функции устройства, то прошивка может немного задержаться в testing.
</div>


== Firmware bootloader ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
На странице каждого устройства есть ссылка на список изменений в прошивках, где прошивки в testing отмечены маркером «testing». Прошивка без отметки считается стабильной.
</div>


The new versions of our devices have a firmware bootloader. It allows you to update the firmware of our devices/Wiren Board modules via RS-485/Modbus RTU. The bootloader mode, in which it is possible to update the firmware, has been added to the devices.  
<div lang="ru" dir="ltr" class="mw-content-ltr">
Распределение прошивок по релизам позволяет избежать ситуации, когда свежая версия прошивки без продолжительного тестирования попадает в очень ответственную инсталляцию. Если для новой прошивки нужны новые функции в ПО контроллера, то либо они заедут в stable-релиз ПО вместе с прошивкой, либо прошивка задержится в testing до появления нужных функций в ПО.
</div>


In the bootloader mode, the main functionality of the device is disabled. '''Communication parameters in the bootloader mode are fixed and do not depend on the values in the device memory: 9600 8N2.'''
<div lang="ru" dir="ltr" class="mw-content-ltr">
Для прошивки подключённых через шлюз WB-MGE или аналог устройств, используйте перенаправление socat, [[WB FAQ/modbus-modules-behind-gateway | инструкция]].
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
== Автоматическое обновление ==
[[Image: Wb-fw-mcu-updater example 1.png |500px|thumb|right| Пример работы wb-fw-mcu-updater ]]
{{note|info|При обновлении прошивки удаляются ИК-команды, сохранённые в устройствах WB-MSW и WB-MIR. Рекомендуем сохранить банки команд перед обновлением с помощью [[WB-MSx Consumer IR Manual#Чтение/запись банков команд | скрипта]].}}
Автоматическое обновление прошивки выполняется с помощью предустановленной на контроллеры Wiren Board утилиты [[Wb-mcu-fw-updater | wb-mcu-fw-updater]] и позволяет установить свежую версию ПО сразу на все подключенные устройства или отдельно на каждое. Определение сигнатуры (модели) устройства, новой прошивки произойдет автоматически.
</div>


== Entering bootloader mode ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
Утилита работает только на нашем контроллере и ей нужен доступ в интернет. Если у вас нет интернета или нашего контроллера, смотрите раздел [[#manual|Ручное обновление]].
</div>


[[File:Bootloader.gif||right||Bootloader mode indication]]
<div lang="ru" dir="ltr" class="mw-content-ltr">
The device enters bootloader mode if:
Обновление прошивок устройств, подключенных к шлюзам WB-MGE и WM-MIO-E, также выполняется [[WB_Modbus_Devices_Firmware_Update#%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B8_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2,_%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%BD%D1%8B%D1%85_%D0%BA_%D1%88%D0%BB%D1%8E%D0%B7%D0%B0%D0%BC_WB-MGE_%D0%B8_WB-MIO-E |вручную с отображением сетевого порта в локальный]].
* the device has the correct firmware — the first 2 seconds after power on, the device operates in bootloader mode;
</div>
* the device does not have the correct firmware (for example, there was a failure when updating the firmware) — in this case, the bootloader mode is constantly active;
* when the main program in the holding-register 129 (0x81) was recorded 1 — in this case, the device is rebooted and remains in bootloader mode for 120 seconds.


Bootloader mode indication: the device Status indicator rarely flashes. When you download a new firmware, indicator stops changing state.
<div lang="ru" dir="ltr" class="mw-content-ltr">
=== Обновление всех устройств на шине ===
Вы можете обновить все устройства, настроенные в разделе '''Serial Devices Configuration''' [[Wiren Board Web Interface | веб-интерфейса]]
# Подключите устройства по [[RS-485 | шине RS-485]] к контроллеру.
# [[RS-485:Configuration via Web Interface | Настройте подключенные устройства]] в веб-интерфейсе.
# Откройте консоль контроллера по [[SSH]].
# Обновите все настроенные устройства командой:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-updater update-all
</syntaxhighlight>
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
=== Обновление одного устройства ===
Чтобы обновить только одно устройство:
# Подключите устройство по шине RS-485 к контроллеру.
# Узнайте [[Wiren Board Device Modbus Address | modbus-адрес]] устройства, которое хотите обновить.
# Откройте консоль контроллера по [[SSH]].
# Запустите утилиту <code>wb-mcu-fw-updater</code> параметрами: ключ <code>update-fw</code>, а также порт и modbus-адрес.
</div>


== Firmware ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
Например, обновим прошивку устройства с modbus-адресом <code>70</code> и подключенного к порту <code>/dev/ttyRS485-1</code>:
<syntaxhighlight lang="bash">
wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a70
</syntaxhighlight>
</div>


Writing firmware in the memory device is performed by a loader that gets its Modbus RTU. Firmware is stored in files with extension '''.wbfw'''. Currently available firmwares are available on request.
<div lang="ru" dir="ltr" class="mw-content-ltr">
Полный список параметров и примеры работы смотрите на [[Wb-mcu-fw-updater | странице утилиты]].
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
== Ручное обновление ==
{{Anchor|manual}}
=== Особенности ===
Этот способ используется если:
*на объекте нет доступа в интернет,
*у вас нет контроллера,
*вы обновляете прошивку устройств, [[WB_Modbus_Devices_Firmware_Update#Обновление_прошивки_устройств,_подключенных_к_шлюзам_WB-MGE_и_WB-MIO-E |подключенных за шлюзами WB-MGE и WB-MIO-E]].
</div>


== Device signatures ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
Во всех остальных случаях используйте [[WB_Modbus_Devices_Firmware_Update#Автоматическое_обновление |автоматическое обновление]].
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
Ручное обновление можно сделать утилитой '''[[wb-mcu-fw-flasher#Установка утилиты | wb-mcu-fw-flasher]]''', которую нужно предварительно установить. Способ установки отличается и зависит от используемой операционной системы.
</div>


When flashing at the factory, the signature — the name of the hardware type of the device — is recorded into the memory of the device. When overwriting the firmware, the current signature is compared with the firmware signature. Writing new firmware is possible only if the signatures match.
<div lang="ru" dir="ltr" class="mw-content-ltr">
=== Подготовка устройства ===
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
Прошивать устройства можно:
* по modbus-адресу устройства.
* по широковещательному адресу — <code>0</code>.
</div>


== Modbus ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
Для прошивки нескольких устройств на шине нужно поочереди перевести их в [[Bootloader MOD | режим загрузчика]] и прошить.
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
=== Загрузка прошивки в устройство ===
Для загрузки прошивки выполните шаги:
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки.
{{Wbincludes:Prepare modbus_client}}
# Скачайте из репозитория файл прошивки для вашего устройства по [[Firmware Repository For Wiren Board Modbus Devices | инструкции]].
# Загрузите файл прошивки на [[View controller files from your computer | контроллер]] или другое устройство.
# Перейдите в папку с файлом прошивки и выполните команду:
#:* на контроллере или компьютере с ОС Linux:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a25 -f ./firmware.wbfw
</syntaxhighlight>
#:* на компьютере с ОС Windows:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher_1.0.3.exe -j -d COM1 -a25 -f firmware.wbfw
</syntaxhighlight>
# Если вы выполняли команду с контроллера — запустите драйвер wb-mqtt-serial.
</div>


The device loader receives firmware via Modbus RTU. In the bootloader mode, the communication parameters are fixed and do not depend on the previous values in the device memory: 9600 8N2. According to the Modbus protocol, the device can be set to bootloader mode, if 1 is written to the holding register 129 (0x81) during the operation of the main program. In this scenario, the device restarts and remains in bootloader mode for 120 seconds.
<div lang="ru" dir="ltr" class="mw-content-ltr">
В команде выше мы флагом <code>-j</code> перевели устройство, подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) с адресом <code>25</code> в режим загрузчика, а затем прошили его.
</div>


The Modbus address of the bootloader firmware device should be selected as follows:
<div lang="ru" dir="ltr" class="mw-content-ltr">
Успешный процесс прошивки выглядит так:
<syntaxhighlight lang="bash">
~# wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f mr6c__1.15.5_master_971fe50.wbfw 
  /dev/ttyRS485-1 opened successfully.
  Send jump to bootloader command and wait 2 seconds...
  Ok, device will jump to bootloader.
  mr6c__1.15.5_master_971fe50.wbfw opened successfully, size 14720 bytes
</div>


# The main address for the firmware is the address specified in the device memory: that is, it is the standard address to which the device responds from the main program.
  <div lang="ru" dir="ltr" class="mw-content-ltr">
# To flash a device using a broadcast address of 0. This is a less preferred method.
Sending info block... OK
</div>


  <div lang="ru" dir="ltr" class="mw-content-ltr">
Sending data block 108 of 108... OK.
  All done!
</syntaxhighlight>
</div>


== Utility for WB-mcu-fw-flasher firmware ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
Если сигнатура устройства и файла прошивки не совпали, то вы получите сообщение об ошибке:
<syntaxhighlight lang="bash">
Sending info block...
  Error while sending info block: Slave device or server failure
  Data format is invalid or firmware signature doesn't match the device
</syntaxhighlight>
</div>


To transfer firmware to the devices, use the wb-mcu-fw-flasher utility launched from the Wiren Board controller (or a computer with Linux or Windows).  
<div lang="ru" dir="ltr" class="mw-content-ltr">
== Восстановление прошивки устройства ==
{{Anchor|fw-recovery}}
Если во время обновления произошел сбой, то устройство перейдет в [[Wbincludes:Bootloader MOD | режим загрузчика]] и вы можете восстановить его прошивку.
</div>


To install the utility '''on the Wiren Board controller''', run the following commands:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
=== Автоматически ===
apt-get update
Для автоматического восстановления прошивки одного или нескольких устройств можно использовать утилиту wb-mcu-fw-updater вы режимах '''recover''' и '''recover-all'''.
apt-get install wb-mcu-fw-flasher
</div>
</pre>


Software for '''MS Windows''' can be downloaded here: [[Media: Wb-mcu-fw-flasher_1.0.2.zip | Wb-mcu-fw-flasher_1.0.2.zip]].
<div lang="ru" dir="ltr" class="mw-content-ltr">
Чтобы восстановить устройство с адресом <code>10</code> и подключенное к порту <code>/dev/ttyRS485-1</code>, выполните команду:
<syntaxhighlight lang="bash">
wb-mcu-fw-updater recover /dev/ttyRS485-1 -a 10
</syntaxhighlight>
</div>


To install on a '''Debian computer''', download the package from here: [[Media: Wb-mcu-fw-flasher_1.0.2_amd64-all.deb | Wb-mcu-fw-flasher_1.0.2_amd64-all.deb]]
<div lang="ru" dir="ltr" class="mw-content-ltr">
and execute commands in the directory where the package was downloaded.
Подробнее о режимах recover и recover-all, читайте в [[Wb-mcu-fw-updater#Режимы|документации]].
<pre>
</div>
apt-get update
apt-get install libmodbus5
dpkg -i Wb-mcu-fw-flasher_1.0.2_amd64-all.deb


</pre>
<div lang="ru" dir="ltr" class="mw-content-ltr">
=== Вручную ===
Если вы не можете воспользоваться [[wb-mcu-fw-updater]], то вы восстановить прошивку устройств можно с помощью сервисной утилиты [[wb-mcu-fw-flasher]]. Также этот способ могут использовать пользователи компьютеров с ОС Windows.
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
Для этого вам понадобится сама утилита и файл прошивки:
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки.
{{Wbincludes:Prepare modbus_client}}
# [[Firmware Repository For Wiren Board Modbus Devices | Скачайте из репозитория]] файл прошивки для вашего устройства.
# Загрузите файл прошивки на [[View controller files from your computer | контроллер]] или другое устройство, на котором установлена утилита прошивки.
# Перейдите в папку с прошивкой и выполните команду:
#*на контроллере или компьютере с ОС Linux:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a 25 -f ./firmware.wbfw
</syntaxhighlight>
#*на компьютере с ОС Windows:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher_1.0.3.exe -d COM1 -a 25 -f firmware.wbfw
</syntaxhighlight>
</div>


wb-mcu-fw-flasher utility starting options:
<div lang="ru" dir="ltr" class="mw-content-ltr">
{| class="wikitable"
Здесь мы прошили находящееся в режиме загрузчика устройство с Modbus-адресом <code>25</code> и подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) файлом <code>firmware.wbfw</code>.
! Option !! Description !! Value by default
</div>
|-
| -d || serial port device ||
|-
| -f || firmware file ||
|-
| -a || Modbus address || 1
|-
| -j || Send a command to the device to enter bootloader mode ||
|-
| -r || Address of the holding register to enter bootloader mode || 129
|-
| -D || Enable debug mode ||
|}


Пример:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
==Обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E==
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
[[Image: superport-config.png |350px|thumb|right| Настройки шлюза для обновления прошивки]]
</pre>
Обновить прошивку устройства Wiren Board, подключенного к шлюзам [[WB-MGE_v.2_Modbus-Ethernet_Interface_Converter |WB-MGE]] и [[WB-MIO-E_v.2_Modbus_Interface_Converter |WB-MIO-E]] по RS-485, можно только в ручном режиме утилитой [[Wb-mcu-fw-flasher |wb-mcu-fw-flasher]]. Но сначала нужно отобразить сетевой порт в локальный утилитой [[Socat |socat]].
</div>


The example for Windows:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
Шлюз должен быть настроен в режим TCP Server/None (для WB-MGE v2, WB-MIO-E v2) или TCP Server (для WB-MGE v1, WB-MIO-E v1).
wb-mcu-fw-flasher.exe -j -d COM10 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
</div>
</pre>


COM10 is the name of the virtual serial port that is assigned to the USB RS-485 adapter.
<div lang="ru" dir="ltr" class="mw-content-ltr">
===Обновление на любой скорости соединения===
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
Настройки соединения могут быть любыми только если:
</div>


== Device flashing ==
<div lang="ru" dir="ltr" class="mw-content-ltr">
*версия wb-mcu-fw-flasher не ниже '''1.3.0''' (доступно в [[testing |testing]]),
*текущая версия прошивки устройства поддерживает '''131''' регистр (см. Журналы изменений на страницах устройств),
*текущая версия загрузчика не ниже '''1.3.0'''.
</div>


'''When flashing from the controller, stop wb-mqtt-serial:'''
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
'''Иначе обновление можно выполнить только со [[WB_Modbus_Devices_Firmware_Update#Обновление_со_стандартными_настройками_соединения |стандартными настройками 9600N2.]]'''
service wb-mqtt-serial stop
</div>
</pre>


Connect the device to RS-485.
<div lang="ru" dir="ltr" class="mw-content-ltr">
Ниже приведен пример со следующими исходными данными:
</div>


If you do not know the exact hardware type of the device, you can read its signature with the command:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
*Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23.
export mbusaddr=1;  echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a$mbusaddr -t0x03 -r290 -c 12 | grep Data | sed -e 's/0x00/\x/g' -e 's/Data://' -e 's/s//g'`|  xxd -r -p && echo ''
*Modbus-устройство Wiren Board с адресом 14.
</pre>  
*Соединение на скорости 115200 кбит/с.
Specify the address of the flash device in a  mbusaddr variable.
</div>


In the output of the command, you will get the device signature, for example, '''wbmr6c'''.
<div lang="ru" dir="ltr" class="mw-content-ltr">
{{note|info|'''Внимание!''' В вашем случае настройки могут быть другими.}}
</div>


Select the appropriate firmware, for example, WB-MR-MR6C_MCU3_3_1.9.4.wbfw.
<div lang="ru" dir="ltr" class="mw-content-ltr">
#[[Firmware_Repository_For_Wiren_Board_Modbus_Devices |Приготовьте файл прошивки]] и установите утилиту socat, если ее нет:
#:<syntaxhighlight lang="bash">
apt install socat
</syntaxhighlight>
#Дважды подключитесь к контроллеру по [[SSH |SSH]], у вас должно быть открыто два окна: первое для создания тоннеля socat, второе для отправки команд устройству.
#Остановите [[Wb-mqtt-serial_driver |wb-mqtt-serial]]:
#:<syntaxhighlight lang="bash">
systemctl stop wb-mqtt-serial
</syntaxhighlight>
#В первом окне запустите перенаправление утилитой socat с текущими настройками соединения:
#:<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-mcu-fw-flasher |wb-mcu-fw-flasher]], используя параметр <code>-J</code>. Укажите файл прошивки, который приготовили в начале:
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher -J -d /dev/ttyRS485-5 -a14 -f ./firmware.wbfw
</syntaxhighlight>
#Запустите wb-mqtt-serial
#:<syntaxhighlight lang="bash">
systemctl start wb-mqtt-serial
</syntaxhighlight>
</div>


Flash the device with the command:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
===Обновление со стандартными настройками соединения===
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 25 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw
Инструкция используется для устройств в которых текущая версия загрузчика ниже '''1.3.0''' и/или текущая прошивка не поддерживает '''131''' регистр.
</pre>
</div>  
The successful firmware process is as follows:
<pre>
  wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 1 -f WB-MR-MR6C_MCU3_3_1.9.4.wbfw         
  /dev/ttyRS485-1 opened successfully.
  Send jump to bootloader command and wait 2 seconds...
  Error: Connection timed out.
  May be device already in bootloader, try to send firmware...
  WB-MR-MR6C_MCU3_3_1.9.4.wbfw opened successfully, size 12136 bytes
  Sending info block... OK
  Sending data block 89 of 89... OK.
  All done!
</pre>


'''After successful flashing, the device will exit the bootloader mode itself and restart in the main program.'''
<div lang="ru" dir="ltr" class="mw-content-ltr">
В этом случае обновление можно выполнить только на скорости '''9600N2''', указав параметр <code>-j</code> для утилиты wb-mcu-fw-flasher. Если используются другие настройки соединения сначала нужно изменить их на стандартные.
</div>


The example of a signature mismatch error:
<div lang="ru" dir="ltr" class="mw-content-ltr">
<pre>
Рекомендуем также обновить загрузчик если его версия ниже '''1.3.0'''. Это позволит в дальнейшем обновлять прошивку на [[WB_Modbus_Devices_Firmware_Update#Обновление_на_любой_скорости_соединения |любой скорости соединения]].
Sending info block...
</div>
Error while sending info block: Slave device or server failure
Data format is invalid or firmware signature doesn't match the device
</pre>


<div lang="ru" dir="ltr" class="mw-content-ltr">
Рассмотрим синтетический пример обновления прошивки устройств, в котором используются нестандартные настройки соединения:
*Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23.
*К шлюзу подключено устройство WB-MDM3 с адресом 58.
*В настройках устройства и шлюза выставлена скорость 115200 кбит/с.
</div>


=== Firmware devices on the Modbus broadcast address 0 ===
<div lang="ru" dir="ltr" class="mw-content-ltr">
{{note|info| '''Внимание!''' В инструкции рассмотрен пример, в котором устройства работают на скорости '''115200 8N2'''. В вашем случае настройки соединения могут быть другими.}}
Чтобы обновить прошивку:
#Дважды подключитесь к контроллеру по [[SSH |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#Настройка шлюза для обновления прошивки | настройках шлюза]] установите скорость порта 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-flasher ([[WB_Modbus_Devices_Firmware_Update#Ручное_обновление|полная инструкция]]):
#:<syntaxhighlight lang="bash">
wb-mcu-fw-flasher -j -d /dev/ttyRS485-5 -a25 -f ./firmware.wbfw
</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>
</div>


Bootloader allows you to download firmware to devices via Modbus address 0. To do this, the device must be the only device on the bus and must be in bootloader mode.
<div lang="ru" dir="ltr" class="mw-content-ltr">
Если вам нужно прошить несколько устройств, то вы можете сперва изменить им скорость, перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз.
</div>


<div lang="ru" dir="ltr" class="mw-content-ltr">
===Настройка шлюза для обновления прошивки===
</div>


=== Flashing several devices on the bus ===
<div lang="ru" dir="ltr" class="mw-content-ltr">
Самый простой способ изменить настройки шлюза — подключиться к его встроенному веб-интерфейсу. Для этого нужно:
</div>


It is possible to flash several devices connected to the bus. The devices must be set to bootloader mode and flashed separately with a non-broadcast Modbus address. Flashing devices with the same address is possible if only one of them is in the bootloader mode. The devices shall be flashed at a time.
<div lang="ru" dir="ltr" class="mw-content-ltr">
#подключить шлюз к компьютеру UTP кабелем напрямую или через роутер,
#присвоить компьютеру статический IP-адрес в сети шлюза, например, 192.168.0.201,
#открыть браузер и ввести IP-адрес шлюза, по умолчанию 192.168.0.7.
</div>


'''Attention!''' The flashing of the devices in bootloader mode and of the same modbus address, or the flashing of multiple devices being in the bootloader mode at address 0 will not be performed; the existing firmware of the device will be ruined.
<div lang="ru" dir="ltr" class="mw-content-ltr">
==  Полезные ссылки ==
* [[Restore factory settings Wiren Board Modbus device | Восстановление доступа — сброс настроек связи]]
* [[Wiren Board Device Modbus Address | Modbus-адрес устройства Wiren Board]]
* [[wb-mcu-fw-updater | Утилита обновления и восстановления прошивок wb-mcu-fw-updater]]
* [[wb-mcu-fw-flasher | Сервисная утилита wb-mcu-fw-flasher]]
* [[Firmware Repository For Wiren Board Modbus Devices |Репозиторий прошивок для Modbus-устройств Wiren Board]]
</div>
wb_editors
14 457

правок