WB Modbus Devices Firmware Update: различия между версиями
(добавил теги перевода) |
(Отметить эту версию для перевода) |
||
Строка 2: | Строка 2: | ||
<translate> | <translate> | ||
{{DISPLAYTITLE:Обновление прошивки Modbus-устройств Wiren Board}} | {{DISPLAYTITLE:Обновление прошивки Modbus-устройств Wiren Board}} | ||
== Общая информация == | == Общая информация == <!--T:39--> | ||
{{PeerTube | {{PeerTube | ||
| link= https://peertube.wirenboard.com/video-playlists/embed/6623c76e-1abe-4728-959c-f5dde919d80c?playlistPosition=8 | | link= https://peertube.wirenboard.com/video-playlists/embed/6623c76e-1abe-4728-959c-f5dde919d80c?playlistPosition=8 | ||
Строка 10: | Строка 10: | ||
В modbus-устройствах Wiren Board есть [[Bootloader |загрузчик (bootloader)]], который позволяет обновлять прошивки по RS-485/Modbus RTU. В режиме загрузчика основные функции устройства отключаются, а коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2. | В modbus-устройствах Wiren Board есть [[Bootloader |загрузчик (bootloader)]], который позволяет обновлять прошивки по RS-485/Modbus RTU. В режиме загрузчика основные функции устройства отключаются, а коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2. | ||
<!--T:40--> | |||
Сами прошивки выпускаются в формате релизов, которые привязаны к [[Wiren_Board_Software#releases| релизам программного обеспечения контроллера]], но имеют отличный от него цикл: | Сами прошивки выпускаются в формате релизов, которые привязаны к [[Wiren_Board_Software#releases| релизам программного обеспечения контроллера]], но имеют отличный от него цикл: | ||
* '''testing''' — сюда попадают прошивки после внутреннего тестирования, доступны для пользователей testing-релиза контроллера; | * '''testing''' — сюда попадают прошивки после внутреннего тестирования, доступны для пользователей testing-релиза контроллера; | ||
* '''stable''' — через три недели после публикации в testing и при отсутствии сообщений об ошибках, прошивки считаются стабильными. В этот момент они становятся доступны и для пользователей stable-релиза контроллера. Если изменений в прошивке было много и они затрагивали основные функции устройства, то прошивка может немного задержаться в testing. | * '''stable''' — через три недели после публикации в testing и при отсутствии сообщений об ошибках, прошивки считаются стабильными. В этот момент они становятся доступны и для пользователей stable-релиза контроллера. Если изменений в прошивке было много и они затрагивали основные функции устройства, то прошивка может немного задержаться в testing. | ||
<!--T:41--> | |||
На странице каждого устройства есть ссылка на список изменений в прошивках, где прошивки в testing отмечены маркером «testing». Прошивка без отметки считается стабильной. | На странице каждого устройства есть ссылка на список изменений в прошивках, где прошивки в testing отмечены маркером «testing». Прошивка без отметки считается стабильной. | ||
<!--T:42--> | |||
Распределение прошивок по релизам позволяет избежать ситуации, когда свежая версия прошивки без продолжительного тестирования попадает в очень ответственную инсталляцию. Если для новой прошивки нужны новые функции в ПО контроллера, то либо они заедут в stable-релиз ПО вместе с прошивкой, либо прошивка задержится в testing до появления нужных функций в ПО. | Распределение прошивок по релизам позволяет избежать ситуации, когда свежая версия прошивки без продолжительного тестирования попадает в очень ответственную инсталляцию. Если для новой прошивки нужны новые функции в ПО контроллера, то либо они заедут в stable-релиз ПО вместе с прошивкой, либо прошивка задержится в testing до появления нужных функций в ПО. | ||
<!--T:43--> | |||
Для прошивки подключённых через шлюз WB-MGE или аналог устройств, используйте перенаправление socat, [[WB FAQ/modbus-modules-behind-gateway | инструкция]]. | Для прошивки подключённых через шлюз WB-MGE или аналог устройств, используйте перенаправление socat, [[WB FAQ/modbus-modules-behind-gateway | инструкция]]. | ||
== Автоматическое обновление == | == Автоматическое обновление == <!--T:44--> | ||
[[Image: Wb-fw-mcu-updater example 1.png |500px|thumb|right| Пример работы wb-fw-mcu-updater ]] | [[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#Чтение/запись банков команд | скрипта]].}} | {{note|info|При обновлении прошивки удаляются ИК-команды, сохранённые в устройствах WB-MSW и WB-MIR. Рекомендуем сохранить банки команд перед обновлением с помощью [[WB-MSx Consumer IR Manual#Чтение/запись банков команд | скрипта]].}} | ||
Автоматическое обновление прошивки выполняется с помощью предустановленной на контроллеры Wiren Board утилиты [[Wb-mcu-fw-updater | wb-mcu-fw-updater]] и позволяет установить свежую версию ПО сразу на все подключенные устройства или отдельно на каждое. Определение сигнатуры (модели) устройства, новой прошивки произойдет автоматически. | Автоматическое обновление прошивки выполняется с помощью предустановленной на контроллеры Wiren Board утилиты [[Wb-mcu-fw-updater | wb-mcu-fw-updater]] и позволяет установить свежую версию ПО сразу на все подключенные устройства или отдельно на каждое. Определение сигнатуры (модели) устройства, новой прошивки произойдет автоматически. | ||
<!--T:45--> | |||
Утилита работает только на нашем контроллере и ей нужен доступ в интернет. Если у вас нет интернета или нашего контроллера, смотрите раздел [[#manual|Ручное обновление]]. | Утилита работает только на нашем контроллере и ей нужен доступ в интернет. Если у вас нет интернета или нашего контроллера, смотрите раздел [[#manual|Ручное обновление]]. | ||
<!--T:46--> | |||
Обновление прошивок устройств, подключенных к шлюзам 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 |вручную с отображением сетевого порта в локальный]]. | Обновление прошивок устройств, подключенных к шлюзам 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 |вручную с отображением сетевого порта в локальный]]. | ||
=== Обновление всех устройств на шине === | === Обновление всех устройств на шине === <!--T:47--> | ||
Вы можете обновить все устройства, настроенные в разделе '''Serial Devices Configuration''' [[Wiren Board Web Interface | веб-интерфейса]] | Вы можете обновить все устройства, настроенные в разделе '''Serial Devices Configuration''' [[Wiren Board Web Interface | веб-интерфейса]] | ||
# Подключите устройства по [[RS-485 | шине RS-485]] к контроллеру. | # Подключите устройства по [[RS-485 | шине RS-485]] к контроллеру. | ||
Строка 39: | Строка 45: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Обновление одного устройства === | === Обновление одного устройства === <!--T:48--> | ||
Чтобы обновить только одно устройство: | Чтобы обновить только одно устройство: | ||
# Подключите устройство по шине RS-485 к контроллеру. | # Подключите устройство по шине RS-485 к контроллеру. | ||
Строка 46: | Строка 52: | ||
# Запустите утилиту <code>wb-mcu-fw-updater</code> параметрами: ключ <code>update-fw</code>, а также порт и modbus-адрес. | # Запустите утилиту <code>wb-mcu-fw-updater</code> параметрами: ключ <code>update-fw</code>, а также порт и modbus-адрес. | ||
<!--T:49--> | |||
Например, обновим прошивку устройства с modbus-адресом <code>70</code> и подключенного к порту <code>/dev/ttyRS485-1</code>: | Например, обновим прошивку устройства с modbus-адресом <code>70</code> и подключенного к порту <code>/dev/ttyRS485-1</code>: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 51: | Строка 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:50--> | |||
Полный список параметров и примеры работы смотрите на [[Wb-mcu-fw-updater | странице утилиты]]. | Полный список параметров и примеры работы смотрите на [[Wb-mcu-fw-updater | странице утилиты]]. | ||
== Ручное обновление == | == Ручное обновление == <!--T:51--> | ||
{{Anchor|manual}} | {{Anchor|manual}} | ||
=== Особенности === | === Особенности === | ||
Строка 61: | Строка 69: | ||
*вы обновляете прошивку устройств, [[WB_Modbus_Devices_Firmware_Update#Обновление_прошивки_устройств,_подключенных_к_шлюзам_WB-MGE_и_WB-MIO-E |подключенных за шлюзами WB-MGE и WB-MIO-E]]. | *вы обновляете прошивку устройств, [[WB_Modbus_Devices_Firmware_Update#Обновление_прошивки_устройств,_подключенных_к_шлюзам_WB-MGE_и_WB-MIO-E |подключенных за шлюзами WB-MGE и WB-MIO-E]]. | ||
<!--T:52--> | |||
Во всех остальных случаях используйте [[WB_Modbus_Devices_Firmware_Update#Автоматическое_обновление |автоматическое обновление]]. | Во всех остальных случаях используйте [[WB_Modbus_Devices_Firmware_Update#Автоматическое_обновление |автоматическое обновление]]. | ||
<!--T:53--> | |||
Ручное обновление можно сделать утилитой '''[[wb-mcu-fw-flasher#Установка утилиты | wb-mcu-fw-flasher]]''', которую нужно предварительно установить. Способ установки отличается и зависит от используемой операционной системы. | Ручное обновление можно сделать утилитой '''[[wb-mcu-fw-flasher#Установка утилиты | wb-mcu-fw-flasher]]''', которую нужно предварительно установить. Способ установки отличается и зависит от используемой операционной системы. | ||
=== Подготовка устройства === | === Подготовка устройства === <!--T:54--> | ||
<!--T:55--> | |||
Прошивать устройства можно: | Прошивать устройства можно: | ||
* по modbus-адресу устройства. | * по modbus-адресу устройства. | ||
* по широковещательному адресу — <code>0</code>. | * по широковещательному адресу — <code>0</code>. | ||
<!--T:56--> | |||
Для прошивки нескольких устройств на шине нужно поочереди перевести их в [[Bootloader MOD | режим загрузчика]] и прошить. | Для прошивки нескольких устройств на шине нужно поочереди перевести их в [[Bootloader MOD | режим загрузчика]] и прошить. | ||
=== Загрузка прошивки в устройство === | === Загрузка прошивки в устройство === <!--T:57--> | ||
Для загрузки прошивки выполните шаги: | Для загрузки прошивки выполните шаги: | ||
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки. | # Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки. | ||
Строка 90: | Строка 102: | ||
# Если вы выполняли команду с контроллера — запустите драйвер wb-mqtt-serial. | # Если вы выполняли команду с контроллера — запустите драйвер wb-mqtt-serial. | ||
<!--T:58--> | |||
В команде выше мы флагом <code>-j</code> перевели устройство, подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) с адресом <code>25</code> в режим загрузчика, а затем прошили его. | В команде выше мы флагом <code>-j</code> перевели устройство, подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) с адресом <code>25</code> в режим загрузчика, а затем прошили его. | ||
<!--T:59--> | |||
Успешный процесс прошивки выглядит так: | Успешный процесс прошивки выглядит так: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 100: | Строка 114: | ||
mr6c__1.15.5_master_971fe50.wbfw opened successfully, size 14720 bytes | mr6c__1.15.5_master_971fe50.wbfw opened successfully, size 14720 bytes | ||
Sending info block... OK | <!--T:60--> | ||
Sending info block... OK | |||
Sending data block 108 of 108... OK. | <!--T:61--> | ||
Sending data block 108 of 108... OK. | |||
All done! | All done! | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:62--> | |||
Если сигнатура устройства и файла прошивки не совпали, то вы получите сообщение об ошибке: | Если сигнатура устройства и файла прошивки не совпали, то вы получите сообщение об ошибке: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 113: | Строка 130: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Восстановление прошивки устройства == | == Восстановление прошивки устройства == <!--T:63--> | ||
{{Anchor|fw-recovery}} | {{Anchor|fw-recovery}} | ||
Если во время обновления произошел сбой, то устройство перейдет в [[Wbincludes:Bootloader MOD | режим загрузчика]] и вы можете восстановить его прошивку. | Если во время обновления произошел сбой, то устройство перейдет в [[Wbincludes:Bootloader MOD | режим загрузчика]] и вы можете восстановить его прошивку. | ||
=== Автоматически === | === Автоматически === <!--T:64--> | ||
Для автоматического восстановления прошивки одного или нескольких устройств можно использовать утилиту wb-mcu-fw-updater вы режимах '''recover''' и '''recover-all'''. | Для автоматического восстановления прошивки одного или нескольких устройств можно использовать утилиту wb-mcu-fw-updater вы режимах '''recover''' и '''recover-all'''. | ||
<!--T:65--> | |||
Чтобы восстановить устройство с адресом <code>10</code> и подключенное к порту <code>/dev/ttyRS485-1</code>, выполните команду: | Чтобы восстановить устройство с адресом <code>10</code> и подключенное к порту <code>/dev/ttyRS485-1</code>, выполните команду: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
Строка 125: | Строка 143: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:66--> | |||
Подробнее о режимах recover и recover-all, читайте в [[Wb-mcu-fw-updater#Режимы|документации]]. | Подробнее о режимах recover и recover-all, читайте в [[Wb-mcu-fw-updater#Режимы|документации]]. | ||
=== Вручную === | === Вручную === <!--T:67--> | ||
Если вы не можете воспользоваться [[wb-mcu-fw-updater]], то вы восстановить прошивку устройств можно с помощью сервисной утилиты [[wb-mcu-fw-flasher]]. Также этот способ могут использовать пользователи компьютеров с ОС Windows. | Если вы не можете воспользоваться [[wb-mcu-fw-updater]], то вы восстановить прошивку устройств можно с помощью сервисной утилиты [[wb-mcu-fw-flasher]]. Также этот способ могут использовать пользователи компьютеров с ОС Windows. | ||
<!--T:68--> | |||
Для этого вам понадобится сама утилита и файл прошивки: | Для этого вам понадобится сама утилита и файл прошивки: | ||
# Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки. | # Подключите устройство по [[RS-485 | шине RS-485]] к контроллеру или другому оборудованию, где установлена утилита прошивки. | ||
Строка 145: | Строка 165: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:69--> | |||
Здесь мы прошили находящееся в режиме загрузчика устройство с Modbus-адресом <code>25</code> и подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) файлом <code>firmware.wbfw</code>. | Здесь мы прошили находящееся в режиме загрузчика устройство с Modbus-адресом <code>25</code> и подключенное к порту <code>/dev/ttyRS485-1</code> (<code>COM1</code>) файлом <code>firmware.wbfw</code>. | ||
==Обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E== | ==Обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E== <!--T:70--> | ||
[[Image: superport-config.png |350px|thumb|right| Настройки шлюза для обновления прошивки]] | [[Image: superport-config.png |350px|thumb|right| Настройки шлюза для обновления прошивки]] | ||
Обновить прошивку устройства 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]]. | Обновить прошивку устройства 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]]. | ||
<!--T:71--> | |||
Шлюз должен быть настроен в режим TCP Server/None (для WB-MGE v2, WB-MIO-E v2) или TCP Server (для WB-MGE v1, WB-MIO-E v1). | Шлюз должен быть настроен в режим TCP Server/None (для WB-MGE v2, WB-MIO-E v2) или TCP Server (для WB-MGE v1, WB-MIO-E v1). | ||
===Обновление на любой скорости соединения=== | ===Обновление на любой скорости соединения=== <!--T:72--> | ||
<!--T:73--> | |||
Настройки соединения могут быть любыми только если: | Настройки соединения могут быть любыми только если: | ||
<!--T:74--> | |||
*версия wb-mcu-fw-flasher не ниже '''1.3.0''' (доступно в [[testing |testing]]), | *версия wb-mcu-fw-flasher не ниже '''1.3.0''' (доступно в [[testing |testing]]), | ||
*текущая версия прошивки устройства поддерживает '''131''' регистр (см. Журналы изменений на страницах устройств), | *текущая версия прошивки устройства поддерживает '''131''' регистр (см. Журналы изменений на страницах устройств), | ||
*текущая версия загрузчика не ниже '''1.3.0'''. | *текущая версия загрузчика не ниже '''1.3.0'''. | ||
<!--T:75--> | |||
'''Иначе обновление можно выполнить только со [[WB_Modbus_Devices_Firmware_Update#Обновление_со_стандартными_настройками_соединения |стандартными настройками 9600N2.]]''' | '''Иначе обновление можно выполнить только со [[WB_Modbus_Devices_Firmware_Update#Обновление_со_стандартными_настройками_соединения |стандартными настройками 9600N2.]]''' | ||
<!--T:76--> | |||
Ниже приведен пример со следующими исходными данными: | Ниже приведен пример со следующими исходными данными: | ||
<!--T:77--> | |||
*Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23. | *Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23. | ||
*Modbus-устройство Wiren Board с адресом 14. | *Modbus-устройство Wiren Board с адресом 14. | ||
*Соединение на скорости 115200 кбит/с. | *Соединение на скорости 115200 кбит/с. | ||
<!--T:78--> | |||
{{note|info|'''Внимание!''' В вашем случае настройки могут быть другими.}} | {{note|info|'''Внимание!''' В вашем случае настройки могут быть другими.}} | ||
<!--T:79--> | |||
#[[Firmware_Repository_For_Wiren_Board_Modbus_Devices |Приготовьте файл прошивки]] и установите утилиту socat, если ее нет: | #[[Firmware_Repository_For_Wiren_Board_Modbus_Devices |Приготовьте файл прошивки]] и установите утилиту socat, если ее нет: | ||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
Строка 193: | Строка 222: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===Обновление со стандартными настройками соединения=== | ===Обновление со стандартными настройками соединения=== <!--T:80--> | ||
Инструкция используется для устройств в которых текущая версия загрузчика ниже '''1.3.0''' и/или текущая прошивка не поддерживает '''131''' регистр. | Инструкция используется для устройств в которых текущая версия загрузчика ниже '''1.3.0''' и/или текущая прошивка не поддерживает '''131''' регистр. | ||
<!--T:81--> | |||
В этом случае обновление можно выполнить только на скорости '''9600N2''', указав параметр <code>-j</code> для утилиты wb-mcu-fw-flasher. Если используются другие настройки соединения сначала нужно изменить их на стандартные. | В этом случае обновление можно выполнить только на скорости '''9600N2''', указав параметр <code>-j</code> для утилиты wb-mcu-fw-flasher. Если используются другие настройки соединения сначала нужно изменить их на стандартные. | ||
<!--T:82--> | |||
Рекомендуем также обновить загрузчик если его версия ниже '''1.3.0'''. Это позволит в дальнейшем обновлять прошивку на [[WB_Modbus_Devices_Firmware_Update#Обновление_на_любой_скорости_соединения |любой скорости соединения]]. | Рекомендуем также обновить загрузчик если его версия ниже '''1.3.0'''. Это позволит в дальнейшем обновлять прошивку на [[WB_Modbus_Devices_Firmware_Update#Обновление_на_любой_скорости_соединения |любой скорости соединения]]. | ||
<!--T:83--> | |||
Рассмотрим синтетический пример обновления прошивки устройств, в котором используются нестандартные настройки соединения: | Рассмотрим синтетический пример обновления прошивки устройств, в котором используются нестандартные настройки соединения: | ||
*Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23. | *Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23. | ||
Строка 205: | Строка 237: | ||
*В настройках устройства и шлюза выставлена скорость 115200 кбит/с. | *В настройках устройства и шлюза выставлена скорость 115200 кбит/с. | ||
<!--T:84--> | |||
{{note|info| '''Внимание!''' В инструкции рассмотрен пример, в котором устройства работают на скорости '''115200 8N2'''. В вашем случае настройки соединения могут быть другими.}} | {{note|info| '''Внимание!''' В инструкции рассмотрен пример, в котором устройства работают на скорости '''115200 8N2'''. В вашем случае настройки соединения могут быть другими.}} | ||
Чтобы обновить прошивку: | Чтобы обновить прошивку: | ||
Строка 244: | Строка 277: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<!--T:85--> | |||
Если вам нужно прошить несколько устройств, то вы можете сперва изменить им скорость, перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз. | Если вам нужно прошить несколько устройств, то вы можете сперва изменить им скорость, перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз. | ||
===Настройка шлюза для обновления прошивки=== | ===Настройка шлюза для обновления прошивки=== <!--T:86--> | ||
<!--T:87--> | |||
Самый простой способ изменить настройки шлюза — подключиться к его встроенному веб-интерфейсу. Для этого нужно: | Самый простой способ изменить настройки шлюза — подключиться к его встроенному веб-интерфейсу. Для этого нужно: | ||
<!--T:88--> | |||
#подключить шлюз к компьютеру UTP кабелем напрямую или через роутер, | #подключить шлюз к компьютеру UTP кабелем напрямую или через роутер, | ||
#присвоить компьютеру статический IP-адрес в сети шлюза, например, 192.168.0.201, | #присвоить компьютеру статический IP-адрес в сети шлюза, например, 192.168.0.201, | ||
#открыть браузер и ввести IP-адрес шлюза, по умолчанию 192.168.0.7. | #открыть браузер и ввести IP-адрес шлюза, по умолчанию 192.168.0.7. | ||
== Полезные ссылки == | == Полезные ссылки == <!--T:89--> | ||
* [[Restore factory settings Wiren Board Modbus device | Восстановление доступа — сброс настроек связи]] | * [[Restore factory settings Wiren Board Modbus device | Восстановление доступа — сброс настроек связи]] | ||
* [[Wiren Board Device Modbus Address | Modbus-адрес устройства Wiren Board]] | * [[Wiren Board Device Modbus Address | Modbus-адрес устройства Wiren Board]] |
Версия 07:52, 27 августа 2024
Общая информация
В modbus-устройствах Wiren Board есть загрузчик (bootloader), который позволяет обновлять прошивки по RS-485/Modbus RTU. В режиме загрузчика основные функции устройства отключаются, а коммуникационные параметры в режиме загрузчика фиксированы и не зависят от значений в памяти устройства: 9600 8N2.
Сами прошивки выпускаются в формате релизов, которые привязаны к релизам программного обеспечения контроллера, но имеют отличный от него цикл:
- testing — сюда попадают прошивки после внутреннего тестирования, доступны для пользователей testing-релиза контроллера;
- stable — через три недели после публикации в testing и при отсутствии сообщений об ошибках, прошивки считаются стабильными. В этот момент они становятся доступны и для пользователей stable-релиза контроллера. Если изменений в прошивке было много и они затрагивали основные функции устройства, то прошивка может немного задержаться в testing.
На странице каждого устройства есть ссылка на список изменений в прошивках, где прошивки в testing отмечены маркером «testing». Прошивка без отметки считается стабильной.
Распределение прошивок по релизам позволяет избежать ситуации, когда свежая версия прошивки без продолжительного тестирования попадает в очень ответственную инсталляцию. Если для новой прошивки нужны новые функции в ПО контроллера, то либо они заедут в stable-релиз ПО вместе с прошивкой, либо прошивка задержится в testing до появления нужных функций в ПО.
Для прошивки подключённых через шлюз WB-MGE или аналог устройств, используйте перенаправление socat, инструкция.
Автоматическое обновление
При обновлении прошивки удаляются ИК-команды, сохранённые в устройствах WB-MSW и WB-MIR. Рекомендуем сохранить банки команд перед обновлением с помощью скрипта. Автоматическое обновление прошивки выполняется с помощью предустановленной на контроллеры Wiren Board утилиты wb-mcu-fw-updater и позволяет установить свежую версию ПО сразу на все подключенные устройства или отдельно на каждое. Определение сигнатуры (модели) устройства, новой прошивки произойдет автоматически.
Утилита работает только на нашем контроллере и ей нужен доступ в интернет. Если у вас нет интернета или нашего контроллера, смотрите раздел Ручное обновление.
Обновление прошивок устройств, подключенных к шлюзам WB-MGE и WM-MIO-E, также выполняется вручную с отображением сетевого порта в локальный.
Обновление всех устройств на шине
Вы можете обновить все устройства, настроенные в разделе Serial Devices Configuration веб-интерфейса
- Подключите устройства по шине RS-485 к контроллеру.
- Настройте подключенные устройства в веб-интерфейсе.
- Откройте консоль контроллера по SSH.
- Обновите все настроенные устройства командой:
wb-mcu-fw-updater update-all
Обновление одного устройства
Чтобы обновить только одно устройство:
- Подключите устройство по шине RS-485 к контроллеру.
- Узнайте modbus-адрес устройства, которое хотите обновить.
- Откройте консоль контроллера по SSH.
- Запустите утилиту
wb-mcu-fw-updater
параметрами: ключupdate-fw
, а также порт и modbus-адрес.
Например, обновим прошивку устройства с modbus-адресом 70
и подключенного к порту /dev/ttyRS485-1
:
wb-mcu-fw-updater update-fw /dev/ttyRS485-1 -a70
Полный список параметров и примеры работы смотрите на странице утилиты.
Ручное обновление
Особенности
Этот способ используется если:
- на объекте нет доступа в интернет,
- у вас нет контроллера,
- вы обновляете прошивку устройств, подключенных за шлюзами WB-MGE и WB-MIO-E.
Во всех остальных случаях используйте автоматическое обновление.
Ручное обновление можно сделать утилитой wb-mcu-fw-flasher, которую нужно предварительно установить. Способ установки отличается и зависит от используемой операционной системы.
Подготовка устройства
Прошивать устройства можно:
- по modbus-адресу устройства.
- по широковещательному адресу —
0
.
Для прошивки нескольких устройств на шине нужно поочереди перевести их в режим загрузчика и прошить.
Загрузка прошивки в устройство
Для загрузки прошивки выполните шаги:
- Подключите устройство по шине RS-485 к контроллеру или другому оборудованию, где установлена утилита прошивки.
- Если вы выполняете команды на контроллере:
- Откройте консоль контроллера по SSH.
- Остановите драйвер wb-mqtt-serial или иное ПО, которое опрашивает устройство.
- Скачайте из репозитория файл прошивки для вашего устройства по инструкции.
- Загрузите файл прошивки на контроллер или другое устройство.
- Перейдите в папку с файлом прошивки и выполните команду:
- на контроллере или компьютере с ОС Linux:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a25 -f ./firmware.wbfw
- на компьютере с ОС Windows:
wb-mcu-fw-flasher_1.0.3.exe -j -d COM1 -a25 -f firmware.wbfw
- Если вы выполняли команду с контроллера — запустите драйвер wb-mqtt-serial.
В команде выше мы флагом -j
перевели устройство, подключенное к порту /dev/ttyRS485-1
(COM1
) с адресом 25
в режим загрузчика, а затем прошили его.
Успешный процесс прошивки выглядит так:
~# 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
Sending info block... OK
Sending data block 108 of 108... OK.
All done!
Если сигнатура устройства и файла прошивки не совпали, то вы получите сообщение об ошибке:
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
Восстановление прошивки устройства
Если во время обновления произошел сбой, то устройство перейдет в режим загрузчика и вы можете восстановить его прошивку.
Автоматически
Для автоматического восстановления прошивки одного или нескольких устройств можно использовать утилиту wb-mcu-fw-updater вы режимах recover и recover-all.
Чтобы восстановить устройство с адресом 10
и подключенное к порту /dev/ttyRS485-1
, выполните команду:
wb-mcu-fw-updater recover /dev/ttyRS485-1 -a 10
Подробнее о режимах recover и recover-all, читайте в документации.
Вручную
Если вы не можете воспользоваться wb-mcu-fw-updater, то вы восстановить прошивку устройств можно с помощью сервисной утилиты wb-mcu-fw-flasher. Также этот способ могут использовать пользователи компьютеров с ОС Windows.
Для этого вам понадобится сама утилита и файл прошивки:
- Подключите устройство по шине RS-485 к контроллеру или другому оборудованию, где установлена утилита прошивки.
- Если вы выполняете команды на контроллере:
- Откройте консоль контроллера по SSH.
- Остановите драйвер wb-mqtt-serial или иное ПО, которое опрашивает устройство.
- Скачайте из репозитория файл прошивки для вашего устройства.
- Загрузите файл прошивки на контроллер или другое устройство, на котором установлена утилита прошивки.
- Перейдите в папку с прошивкой и выполните команду:
- на контроллере или компьютере с ОС Linux:
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a 25 -f ./firmware.wbfw
- на компьютере с ОС Windows:
wb-mcu-fw-flasher_1.0.3.exe -d COM1 -a 25 -f firmware.wbfw
Здесь мы прошили находящееся в режиме загрузчика устройство с Modbus-адресом 25
и подключенное к порту /dev/ttyRS485-1
(COM1
) файлом firmware.wbfw
.
Обновление прошивки устройств, подключенных к шлюзам WB-MGE и WB-MIO-E
Обновить прошивку устройства Wiren Board, подключенного к шлюзам WB-MGE и WB-MIO-E по RS-485, можно только в ручном режиме утилитой wb-mcu-fw-flasher. Но сначала нужно отобразить сетевой порт в локальный утилитой socat.
Шлюз должен быть настроен в режим TCP Server/None (для WB-MGE v2, WB-MIO-E v2) или TCP Server (для WB-MGE v1, WB-MIO-E v1).
Обновление на любой скорости соединения
Настройки соединения могут быть любыми только если:
- версия wb-mcu-fw-flasher не ниже 1.3.0 (доступно в testing),
- текущая версия прошивки устройства поддерживает 131 регистр (см. Журналы изменений на страницах устройств),
- текущая версия загрузчика не ниже 1.3.0.
Иначе обновление можно выполнить только со стандартными настройками 9600N2.
Ниже приведен пример со следующими исходными данными:
- Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23.
- Modbus-устройство Wiren Board с адресом 14.
- Соединение на скорости 115200 кбит/с.
Внимание! В вашем случае настройки могут быть другими.
- Приготовьте файл прошивки и установите утилиту socat, если ее нет:
apt install socat
- Дважды подключитесь к контроллеру по SSH, у вас должно быть открыто два окна: первое для создания тоннеля socat, второе для отправки команд устройству.
- Остановите wb-mqtt-serial:
systemctl stop wb-mqtt-serial
- В первом окне запустите перенаправление утилитой socat с текущими настройками соединения:
socat -d -d -d -x PTY,raw,b115200,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23
- Во втором окне запустите обновление прошивки устройства утилитой wb-mcu-fw-flasher, используя параметр
-J
. Укажите файл прошивки, который приготовили в начале:wb-mcu-fw-flasher -J -d /dev/ttyRS485-5 -a14 -f ./firmware.wbfw
- Запустите wb-mqtt-serial
systemctl start wb-mqtt-serial
Обновление со стандартными настройками соединения
Инструкция используется для устройств в которых текущая версия загрузчика ниже 1.3.0 и/или текущая прошивка не поддерживает 131 регистр.
В этом случае обновление можно выполнить только на скорости 9600N2, указав параметр -j
для утилиты wb-mcu-fw-flasher. Если используются другие настройки соединения сначала нужно изменить их на стандартные.
Рекомендуем также обновить загрузчик если его версия ниже 1.3.0. Это позволит в дальнейшем обновлять прошивку на любой скорости соединения.
Рассмотрим синтетический пример обновления прошивки устройств, в котором используются нестандартные настройки соединения:
- Шлюз WB-MGE (WB-MIO-E), настроенный на Modbus over TCP и имеющий IP-адрес 192.168.0.7, порт 23.
- К шлюзу подключено устройство WB-MDM3 с адресом 58.
- В настройках устройства и шлюза выставлена скорость 115200 кбит/с.
Внимание! В инструкции рассмотрен пример, в котором устройства работают на скорости 115200 8N2. В вашем случае настройки соединения могут быть другими. Чтобы обновить прошивку:
- Дважды подключитесь к контроллеру по SSH, у вас должно быть открыто два окна: первое для создания тоннеля socat, второе для отправки команд устройству.
- Остановите wb-mqtt-serial:
systemctl stop wb-mqtt-serial
- В первом окне запустите перенаправление:
socat -d -d -d -x PTY,raw,b115200,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23
- если у вас стабильный релиз до wb-2207 включительно, вместо параметра b115200, используйте
ispeed=115200,ospeed=115200
.
- Во втором окне измените скорость порта устройства на 9600 кбит/с:
modbus_client --debug -mrtu -b115200 -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 96
- В первом окне разорвите соединение socat клавишами Ctrl+C.
- В настройках шлюза установите скорость порта 9600 кбит/с.
- В первом окне снова запустите перенаправление socat с новыми параметрами соединения:
socat -d -d -d -x PTY,raw,b9600,parenb=0,cstopb=2,cs8,link=/dev/ttyRS485-5 tcp:192.168.0.7:23
- если у вас стабильный релиз до wb-2207 включительно, вместо параметра b9600, используйте
ispeed=9600,ospeed=9600
.
- Во втором окне запустите обновление прошивки устройства, например, утилитой wb-mcu-fw-flasher (полная инструкция):
wb-mcu-fw-flasher -j -d /dev/ttyRS485-5 -a25 -f ./firmware.wbfw
- После окончания прошивки верните в устройстве старую скорость 115200 кбит/с:
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-5 -a58 -t0x06 -r110 1152
- В первом окне разорвите соединение socat клавишами Ctrl+C.
- В настройках шлюза измените скорость порта с 9600 кбит/с на 115200 кбит/с.
- Подключите шлюз к контроллеру по Ethernet.
- Запустите wb-mqtt-serial
systemctl start wb-mqtt-serial
Если вам нужно прошить несколько устройств, то вы можете сперва изменить им скорость, перенастроить шлюз, а потом так же поочереди их прошить, вернуть им прежнюю скорость и снова перенастроить шлюз.
Настройка шлюза для обновления прошивки
Самый простой способ изменить настройки шлюза — подключиться к его встроенному веб-интерфейсу. Для этого нужно:
- подключить шлюз к компьютеру UTP кабелем напрямую или через роутер,
- присвоить компьютеру статический IP-адрес в сети шлюза, например, 192.168.0.201,
- открыть браузер и ввести IP-адрес шлюза, по умолчанию 192.168.0.7.