Восстановление заводских настроек
Общее
В этой статье описана процедура сброса настроек для устройств c Modbus RTU компании Wiren Board.
Сброс настроек устройств производится с помощью утилиты для прошивки wb-mcu-fw-flasher
. Опции запуска утилиты и примеры использования можно прочитать в статье Загрузка прошивок на устройства Wiren Board.
Перед использованием утилиты на контроллере нужно остановить wb-mqtt-serial
:
service wb-mqtt-serial stop
Сброс настроек связи по Modbus
Для сброса настроек связи по Modbus, нужно выполнить команду:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 17 -u
Где:
/dev/ttyRS485-1
— путь к порту на который подключено устройство.
-a 17
— modbus-адрес устройства. Допустимо представление как в десятичной, так и в шестнадцатеричной системе.
Пример выполнения команды:
root@wirenboard-A4DTZKTB:~# wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 17 -u
/dev/ttyRS485-1 opened successfully.
Send jump to bootloader command and wait 2 seconds...
Ok, device will jump to bootloader.
Send reset UART settings and modbus address command...
Ok.
Device is in Bootloader now! To flash FW run
wb-mcu-fw-flasher -d <port> -f <firmware.wbfw>
В результате настройки приемопередатчика устройства будут сброшены до заводских: скорость — 9600, чётность (parity) — N, количество стоп-бит — 2. Modbus-адрес устройства будет равен 0х0001. Пользовательские настройки сохраняются.
Сброс всех настроек
Для восстановления заводских настроек устройства нужно выполнить команду:
wb-mcu-fw-flasher -j -d /dev/ttyRS485-1 -a 17 -e
После этого пользовательские настройки и modbus-адрес устройства будут сброшены. Останется только информация в энергонезависимой памяти.
Восстановление доступа к устройствам
Для восстановления доступа к устройствам существует возможность сброса настроек приемопередатчика (UART) и modbus-адреса устройства по широковещательному адресу 0х0000
. Для этого устройство должно быть единственным устройством на шине и находиться в режиме загрузчика.
Переход в режим загрузчика
Устройство переходит в режим загрузчика, если:
- на устройстве имеется корректная прошивка, то первые 2 секунды после включения питания устройство работает в режиме загрузчика;
- на устройстве нет корректной прошивки (например, был сбой при обновлении прошивки), то режим загрузчика активен постоянно;
- при работе основной программы записать
1
в holding-регистр 129 (0x81) — в этом случае устройство перезагружается и остается в режиме загрузчика 120 секунд. Это можно сделать, запустив утилитуwb-mcu-fw-flasher
с ключем-j
.
В режиме загрузчика индикатор Status устройства мигает с периодом 1 секунда, а при записи прошивки мигание индикатора учащается.
Сброс настроек приемопередатчика
Для сброса настроек приемопередатчика и modbus-адреса устройства, воспользуемся первым условием из предыдущего пункта:
первые 2 секунды после включения питания устройство работает в режиме загрузчика
Следующую команду нужно выполнить за эти 2 секунды.
wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a0 -u
Пример правильного выполнения команды:
root@wirenboard-A4DTZKTB:~# wb-mcu-fw-flasher -d /dev/ttyRS485-1 -a0 -u
/dev/ttyRS485-1 opened successfully.
Send reset UART settings and modbus address command...
Ok.
Device is in Bootloader now! To flash FW run
wb-mcu-fw-flasher -d <port> -f <firmware.wbfw>
Настройки приемопередатчика устройства будут сброшены до заводских: скорость — 9600, чётность (parity) — N, количество стоп-бит — 2. Modbus-адрес устройства будет равен 0х0001.
Проверяем:
for i in {1..247}; do modbus_client -mrtu /dev/ttyRS485-1 --debug -a$i -t3 -r0x80 -s2 -pnone; done 2>/dev/null | grep Data:
Data: 0x0001