WB-MIR v2 - Modbus IR Remote Control: различия между версиями
Kilpio (обсуждение | вклад) |
|||
(не показаны 264 промежуточные версии 14 участников) | |||
Строка 1: | Строка 1: | ||
('''В процессе наполнения!''') | |||
[[File:WB-MIR-sample.png |300px|thumb|right| Модуль WB-MIR]] | |||
[[File:Wb-MIR-sample_internals.png |300px|thumb|right| Внутренее устройство модуля. Видны подписи контактов на разъёмах]] | |||
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. | Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. | ||
Управление производится с контроллера или ПК по шине RS-485 командами по протоколу | Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS. | ||
== | |||
== Принцип работы == | |||
Сигнал с пульта ДУ записывается ИК-приёмником и хранится в памяти устройства, откуда может быть воспроизведён. В текущей модификации устройство может хранить до 7 сигналов в постоянной памяти и один — в оперативном буфере. ИК-сигнал может быть также записан не с пульта ДУ, а передан в виде последовательности чисел по Modbus. Сохранённый сигнал воспроизводится ИК-передатчиком при получении специальной команды по Modbus. | |||
Устройство имеет два режима работы: постоянный и оперативный. | |||
В постоянном режиме записанные сигналы хранятся в Flash-ПЗУ устройства. В устройстве можно хранить не более 7 сигналов (в текущей версии прошивки 3.4.0). Сигналы, записанные в ПЗУ, сохраняются при отключении питания. Стоит отметить. что при каждой перезаписи сигнала расходуется физический ресурс ПЗУ процессора устройства — всего можно перезаписать сигнал не более 1000 раз. | |||
В оперативном режиме сигнал (только один) находится в оперативной памяти устройства. Он записывается туда Modbus-командой с внешнего устройства (например, контроллера [[Wiren Board]]). Сигнал может быть воспроизведён из оперативной памяти и затем перезаписан; ресурс ПЗУ при этом не расходуется. При отключении питания сигнал в оперативной памяти не сохраняется. | |||
==Способ хранения сигнала== | |||
Сигнал хранится в памяти устройства виде последовательности натуральных чисел (каждое от 0 до 65535), где каждое число - продолжительность логического 0 или 1 в сигнале в квантах по 10 микросекунд. Следовательно, максимальная продолжительность каждого нуля или единицы должна быть не более <code>65535 * 10 мкс = 655350 мкс = 0,655 секунд</code>. Первое число последовательности — длительность первой логической единицы. Конец последовательности маркируется двумя периодами продолжительностью 0. | |||
== Входы == | |||
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. | |||
D некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаяный в верхней левой части платы модуля (вид корпуса сверху нанесен в этом месте шелкографией). | |||
[[File:Buffer_mir.png |400px|thumb|right| Пример содержимого оперативного буфера WB-MIR]] | |||
== Технические характеристики == | |||
{| class="wikitable" | {| class="wikitable" | ||
! style="text-align: center;" | Параметр | ! style="text-align: center;" | Параметр | ||
Строка 18: | Строка 36: | ||
|- | |- | ||
|Напряжение питания | |Напряжение питания | ||
|9 — | |9 — 24 В постоянного тока | ||
|- | |- | ||
|Потребляемая мощность | |Потребляемая мощность | ||
| | | | ||
0 | 0,1 Вт в холостом режиме, 0,1 Вт при передаче ИК-команд | ||
|- | |- | ||
|Дальнодействие передатчика | |Дальнодействие передатчика | ||
|< | | < 1м | ||
|- | |- | ||
| Внешние датчики | | Внешние датчики | ||
| | | Возможность подключения цифрового датчика температуры. | ||
|- | |- | ||
! colspan="2" | | ! colspan="2" |Управление | ||
|- | |- | ||
| | |Интерфейс управления | ||
| | |RS-485 | ||
|- | |- | ||
| | |Изоляция интерфейса | ||
| | |Неизолированный | ||
|- | |- | ||
| | |Протокол обмена данными | ||
| | |Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке | ||
|- | |- | ||
|Параметры интерфейса RS-485 | |||
| | |||
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; | |||
Начиная с версии прошивки '''3.1.0''' параметры интерфейсы могут быть настроены программно: | |||
*Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с | |||
*Данные: 8 бит | |||
*Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even) | |||
*Стоповых бит: 2 (по умолчанию), 1 | |||
|- | |- | ||
| | ! colspan="2" |Габариты | ||
| | |- | ||
| Габариты | |||
| 45x35x14 мм | |||
|- | |||
! colspan="2" |Условия эксплуатации | |||
|- | |||
| Температура воздуха | |||
| -40°С до +80°С | |||
|- | |- | ||
| Относительная влажность воздуха | |||
| до 98%,без конденсата влаги | |||
|} | |} | ||
== | === Обмен данными === | ||
На физическом уровне модуль подключается через интерфейс [[RS-485]]. Для управления WB-MR6C используется протокол Modbus RTU. В устройствах Wirenboard данные Modbus передаются по линиям связи RS-485. Подробнее смотрите страницу [[Протокол Modbus]]. Modbus-адрес модуля задается на заводе и нанесен на наклейке на его боковой стороне. Адрес может быть изменен программно. Подробно смотрите в разделе [[#Управление_по_Modbus|Управление по Modbus]]. | |||
В датчиках с версией прошивки 3.1.0 и позднее эти настройки можно изменить - смотрите таблицу регистров Modbus. | |||
=== Функции=== | |||
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80). | |||
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | |||
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | |||
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | |||
== Управление по Modbus == | |||
Подробно о работе с модулем по протоколу Modbus написано в разделе [[Sensors_Modbus_Management|Управление датчиками Wirenboard по протоколу Modbus]]. | |||
Карта регистров устройства выглядит следующим образом: | |||
== | === Карта регистров хранения (Holding Registers)=== | ||
=== | {| border="1" class="wikitable" style="text-align:center" | ||
!Регистр/ адрес | |||
| | !тип | ||
!чтение/ запись | |||
!значение по умолчанию | |||
!формат | |||
!назначение | |||
|- | |||
|6 | |||
|input | |||
|R | |||
|0x7FFF | |||
|°C × 16 (signed) | |||
|Температура с внешнего датчика | |||
|- | |||
|7 | |||
|input | |||
|R | |||
|0x7FFF | |||
|°C × 16 (signed) | |||
|Температура с внешнего датчика | |||
|- | |||
|90 — 96 ||holding||RW|| || ||зарезервировано | |||
|- | |||
|100 — 105 | |||
||holding | |||
|| |||| ||зарезервировано | |||
|- | |||
| 110 || holding || RW || 96 || baud rate / 100 || скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 || все | |||
|- | |||
| 111 || holding || RW || 0 || || настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) || все | |||
|- | |- | ||
| | | 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2 || все | ||
|- | |- | ||
| | | 120 (0x78) || holding || RW || 0 || отличное от 0 || запись в регистр вызывает перезагрузку МК без сохранения состояния || все | ||
|- | |- | ||
| | | 121 (0x79) || input || R || - || mV || текущее напряжение питания модуля | ||
|все | |||
|- | |- | ||
| | | 128 (0x80) || holding || RW || 1 || || Modbus-адрес устройства | ||
|все | |||
|- | |- | ||
| | | 200-206 || input || R || {'W','B','M','I',R,0} || || сигнатура | ||
|все | |||
|- | |- | ||
| | | 220-241 || input || R || || __date__ __time__|| дата сборки прошивки | ||
|все | |||
|- | |- | ||
| | | 250-269 || input || R || || строка, null-terminated || версия прошивки | ||
|все | |||
|- | |- | ||
| | | 270-271 || input || R || || 32-bit unsigned int || уникальный идентификатор (S/N) | ||
|все | |||
|- | |- | ||
| | | 2000-2509 || holding || RW || || || Буфер периодов IR-приемопередатчика | ||
|WB-MS I, WB-MIR | |||
|- | |- | ||
|} | |} | ||
=== | ==Карта регистров флагов (Coils)== | ||
===Карта регистров флагов (Coils)=== | |||
{| border="1" class="wikitable" style="text-align:center" | |||
!Начальный адрес || Количество || Назначение || В модификациях | |||
|- | |||
| 0 || 1 || style="text-align:left" |Включение пищалки (buzzer) || все | |||
|- | |||
| 1 || 1 || style="text-align:left" | Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm || WB-MS C, WB-MSW2 | |||
|- | |||
| 2 || 1 || style="text-align:left" | Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 (только с версии прошивки 3.2.0!) || WB-MS C, WB-MSW2 | |||
|- | |||
| 5000 || 1 || style="text-align:left" | Очистка всех банков ИК-команд || WB-MS I, WB-MIR | |||
|- | |||
| 5001 || 1 || style="text-align:left" | Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд || WB-MS I, WB-MIR | |||
|- | |||
| 5002 || 1 || style="text-align:left" | Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509) || WB-MS I, WB-MIR | |||
|- | |||
| 5100 (в прошивке 3.1.0 и ранее - 0) || number_of_banks || style="text-align:left" | Воспроизведение ИК-команды из соответствующего банка || WB-MS I, WB-MIR | |||
|- | |||
| 5200 (в прошивке 3.1.0 и ранее - 1000) || number_of_banks|| style="text-align:left" | Чтение и запись в банки команд IR || WB-MS I, WB-MIR | |||
|- | |||
| 5300 (в прошивке 3.1.0 и ранее - 2000)|| number_of_banks || style="text-align:left" | Запись в банк команд IR использую IR-приёмник || WB-MS I, WB-MIR | |||
|- | |||
|} | |||
=== | ===Сигнатура устройства === | ||
По адресу 200 лежит сигнатура релейного модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus: | |||
{ | {| class="wikitable" | ||
! style="font-weight: bold;" | Модуль | |||
= | ! style="font-weight: bold;" | Сигнатура | ||
|- | |||
| WB-MIR | |||
| WBMIR | |||
|- | |||
| WB-MS | |||
| WBMS | |||
|- | |||
| WB-MSW | |||
| WBMSW | |||
|- | |||
| | | WB-MSW2 | ||
| | | WB-MSW2 | ||
| | |} | ||
| | |||
| | |||
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | |||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | |||
== Управление модулем из командной строки == | |||
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | |||
=== Пример чтения регистров === | |||
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный шестнадцатеричный ответ в символьную строку: | |||
''' | <syntaxhighlight lang="bash">echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \ | ||
-a1 -t0x03 -r200 -c 6 | \ | |||
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight> | |||
''' | В результате выполнения команды получаем строку, например '''WBMR6'''. Релейный модуль WB-MR6 имеет Modbus-адрес 1. | ||
=== Перезагрузка === | |||
В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля: | |||
<syntaxhighlight lang="bash"> | |||
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100 | |||
</syntaxhighlight> | |||
Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Все реле при этом выключаются. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial и убедиться, что к контроллеру не подключены другие Modbus-устройства. |
Версия 15:38, 21 апреля 2017
(В процессе наполнения!)
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS.
Принцип работы
Сигнал с пульта ДУ записывается ИК-приёмником и хранится в памяти устройства, откуда может быть воспроизведён. В текущей модификации устройство может хранить до 7 сигналов в постоянной памяти и один — в оперативном буфере. ИК-сигнал может быть также записан не с пульта ДУ, а передан в виде последовательности чисел по Modbus. Сохранённый сигнал воспроизводится ИК-передатчиком при получении специальной команды по Modbus.
Устройство имеет два режима работы: постоянный и оперативный.
В постоянном режиме записанные сигналы хранятся в Flash-ПЗУ устройства. В устройстве можно хранить не более 7 сигналов (в текущей версии прошивки 3.4.0). Сигналы, записанные в ПЗУ, сохраняются при отключении питания. Стоит отметить. что при каждой перезаписи сигнала расходуется физический ресурс ПЗУ процессора устройства — всего можно перезаписать сигнал не более 1000 раз.
В оперативном режиме сигнал (только один) находится в оперативной памяти устройства. Он записывается туда Modbus-командой с внешнего устройства (например, контроллера Wiren Board). Сигнал может быть воспроизведён из оперативной памяти и затем перезаписан; ресурс ПЗУ при этом не расходуется. При отключении питания сигнал в оперативной памяти не сохраняется.
Способ хранения сигнала
Сигнал хранится в памяти устройства виде последовательности натуральных чисел (каждое от 0 до 65535), где каждое число - продолжительность логического 0 или 1 в сигнале в квантах по 10 микросекунд. Следовательно, максимальная продолжительность каждого нуля или единицы должна быть не более 65535 * 10 мкс = 655350 мкс = 0,655 секунд
. Первое число последовательности — длительность первой логической единицы. Конец последовательности маркируется двумя периодами продолжительностью 0.
Входы
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. D некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаяный в верхней левой части платы модуля (вид корпуса сверху нанесен в этом месте шелкографией).
Технические характеристики
Параметр | Значение |
---|---|
Питание | |
Напряжение питания | 9 — 24 В постоянного тока |
Потребляемая мощность |
0,1 Вт в холостом режиме, 0,1 Вт при передаче ИК-команд |
Дальнодействие передатчика | < 1м |
Внешние датчики | Возможность подключения цифрового датчика температуры. |
Управление | |
Интерфейс управления | RS-485 |
Изоляция интерфейса | Неизолированный |
Протокол обмена данными | Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке |
Параметры интерфейса RS-485 |
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:
|
Габариты | |
Габариты | 45x35x14 мм |
Условия эксплуатации | |
Температура воздуха | -40°С до +80°С |
Относительная влажность воздуха | до 98%,без конденсата влаги |
Обмен данными
На физическом уровне модуль подключается через интерфейс RS-485. Для управления WB-MR6C используется протокол Modbus RTU. В устройствах Wirenboard данные Modbus передаются по линиям связи RS-485. Подробнее смотрите страницу Протокол Modbus. Modbus-адрес модуля задается на заводе и нанесен на наклейке на его боковой стороне. Адрес может быть изменен программно. Подробно смотрите в разделе Управление по Modbus.
В датчиках с версией прошивки 3.1.0 и позднее эти настройки можно изменить - смотрите таблицу регистров Modbus.
Функции
Смена адреса производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).
По адресу 200 лежит сигнатура длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.
Управление по Modbus
Подробно о работе с модулем по протоколу Modbus написано в разделе Управление датчиками Wirenboard по протоколу Modbus. Карта регистров устройства выглядит следующим образом:
Карта регистров хранения (Holding Registers)
Регистр/ адрес | тип | чтение/ запись | значение по умолчанию | формат | назначение | |
---|---|---|---|---|---|---|
6 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | |
7 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | |
90 — 96 | holding | RW | зарезервировано | |||
100 — 105 | holding | зарезервировано | ||||
110 | holding | RW | 96 | baud rate / 100 | скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 | все |
111 | holding | RW | 0 | настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | все | |
112 | holding | RW | 2 | количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | все | |
120 (0x78) | holding | RW | 0 | отличное от 0 | запись в регистр вызывает перезагрузку МК без сохранения состояния | все |
121 (0x79) | input | R | - | mV | текущее напряжение питания модуля | все |
128 (0x80) | holding | RW | 1 | Modbus-адрес устройства | все | |
200-206 | input | R | {'W','B','M','I',R,0} | сигнатура | все | |
220-241 | input | R | __date__ __time__ | дата сборки прошивки | все | |
250-269 | input | R | строка, null-terminated | версия прошивки | все | |
270-271 | input | R | 32-bit unsigned int | уникальный идентификатор (S/N) | все | |
2000-2509 | holding | RW | Буфер периодов IR-приемопередатчика | WB-MS I, WB-MIR |
Карта регистров флагов (Coils)
Карта регистров флагов (Coils)
Начальный адрес | Количество | Назначение | В модификациях |
---|---|---|---|
0 | 1 | Включение пищалки (buzzer) | все |
1 | 1 | Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm | WB-MS C, WB-MSW2 |
2 | 1 | Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 (только с версии прошивки 3.2.0!) | WB-MS C, WB-MSW2 |
5000 | 1 | Очистка всех банков ИК-команд | WB-MS I, WB-MIR |
5001 | 1 | Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд | WB-MS I, WB-MIR |
5002 | 1 | Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509) | WB-MS I, WB-MIR |
5100 (в прошивке 3.1.0 и ранее - 0) | number_of_banks | Воспроизведение ИК-команды из соответствующего банка | WB-MS I, WB-MIR |
5200 (в прошивке 3.1.0 и ранее - 1000) | number_of_banks | Чтение и запись в банки команд IR | WB-MS I, WB-MIR |
5300 (в прошивке 3.1.0 и ранее - 2000) | number_of_banks | Запись в банк команд IR использую IR-приёмник | WB-MS I, WB-MIR |
Сигнатура устройства
По адресу 200 лежит сигнатура релейного модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
Модуль | Сигнатура |
---|---|
WB-MIR | WBMIR |
WB-MS | WBMS |
WB-MSW | WBMSW |
WB-MSW2 | WB-MSW2 |
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Управление модулем из командной строки
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице Modbus-client. Доступ к командной строке описан в статье SSH.
Пример чтения регистров
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный шестнадцатеричный ответ в символьную строку:
echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`
В результате выполнения команды получаем строку, например WBMR6. Релейный модуль WB-MR6 имеет Modbus-адрес 1.
Перезагрузка
В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля:
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100
Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Все реле при этом выключаются. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial и убедиться, что к контроллеру не подключены другие Modbus-устройства.