WB-MIR v1 - Modbus IR Remote Control: различия между версиями

Материал из Wiren Board
(не показано 19 промежуточных версий 5 участников)
Строка 1: Строка 1:
<translate>
{{DISPLAYTITLE:Устройство IR-управления WB-MIR v1}}


<!--T:1-->
'''Эта страница описывает устройство WB-MIR v1, снятое с производства в 11.2017. Прямая замена - улучшенный модуль [[WB-MIR v2 - Modbus IR Remote Control|WB-MIR v2]]'''
{{DISPLAYTITLE:Устройство IR-управления WB-MIR v.1}}


<!--T:2-->
'''Эта страница описывает устройство WB-MIR v.1, снятое с производства в 11.2017. Прямая замена - улучшенный модуль [[WB-MIR v2 - Modbus IR Remote Control|WB-MIR v.2]]'''
<!--T:3-->
[[File:WB-MIR-sample.png |300px|thumb|right| Модуль WB-MIR]]
[[File:WB-MIR-sample.png |300px|thumb|right| Модуль WB-MIR]]
[[File:Wb-MIR-sample_internals.png |300px|thumb|right| Внутренее устройство модуля. Видны подписи контактов на разъёмах]]
[[File:Wb-MIR-sample_internals.png |300px|thumb|right| Внутренее устройство модуля. Видны подписи контактов на разъёмах]]
[[File:Wb-mir-ir-transmitter.png |300px|thumb|right| Отверстие ИК-передатчика на задней стороне модуля]]
[[File:Wb-mir-ir-transmitter.png |300px|thumb|right| Отверстие ИК-передатчика на задней стороне модуля]]


<!--T:4-->
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п.
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п.
Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS.
Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS.


== Общий принцип работы == <!--T:5-->
== Входы ==
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается ко входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W.  
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W.  
В некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией).
D некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией).


==Монтаж== <!--T:6-->
==Монтаж==
Модуль монтируется на кондиционер при помощи двустороннего скотча таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу.
Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось бы напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу.


== Технические характеристики == <!--T:7-->
== Технические характеристики ==
{| class="wikitable"
{| class="wikitable"
! style="text-align: center;" | Параметр
! style="text-align: center;" | Параметр
Строка 41: Строка 35:
|-
|-
| Внешние датчики
| Внешние датчики
| Возможность подключения цифрового датчика температуры DS18B20
| Возможность подключения цифрового датчика температуры DS18B20.
|-
|-
! colspan="2" |Управление
! colspan="2" |Управление
Строка 56: Строка 50:
|Параметры интерфейса RS-485
|Параметры интерфейса RS-485
|  
|  
Скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2;  
скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2;  
Начиная с версии прошивки '''3.1.0''' параметры интерфейсы могут быть настроены программно:
Начиная с версии прошивки '''3.1.0''' параметры интерфейсы могут быть настроены программно:
*Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с <br>([[UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]])
*Скорость: 1200, 2400, 4800, 9600 (по умолчанию), 19200, 38400, 57600, 115200 бит/с
*Данные: 8 бит  
*Данные: 8 бит  
*Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even)  
*Проверка чётности: нет (по умолчанию), 1 - нечётный (odd), 2 - чётный (even)  
Строка 74: Строка 68:
|-
|-
| Относительная влажность воздуха
| Относительная влажность воздуха
| До 98%,без конденсата влаги
| до 98%,без конденсата влаги
|}
|}


== Обучение и использование модуля == <!--T:8-->
== Обучение и использование модуля ==


<!--T:9-->
Подробное описание и использования модуля, а также карта регистров, описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]].
Подробное описание и руководство по использованию модуля, а также карта регистров, описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]].


== Дополнительные Функции== <!--T:10-->
== Дополнительные Функции==


<!--T:11-->
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).


<!--T:12-->
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель.
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель.
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.   
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.   
Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3.
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.


== Карты регистров == <!--T:13-->
== Карты регистров ==


<!--T:14-->
Подробно описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]].
Подробно описаны в разделе [[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR]].


<!--T:15-->
==Сигнатура устройства ==
{| class="wikitable"
! rowspan="2" |Регистр/ адрес
! rowspan="2" |Тип
! rowspan="2" |Чтение/ запись
! rowspan="2" |Значение по умолчанию
! rowspan="2" |Формат
! rowspan="2" |Назначение
!Версии
прошивки
|-
!
|-
|6
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с встроенного датчика 1-Wire
|
|-
|7
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с внешнего датчика 1-Wire
|
|-
|
|
|
|
|
|
|
|-
|110
|holding
|RW
|96
|baud rate / 100
|Скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
| rowspan="3" |>3.1.0
|-
|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
|см. [[Sensors Modbus Management|Сигнатура устройства]]
|
|Сигнатура
|
|-
|220-241
|input
|R
|
|__date__ __time__
|Дата сборки прошивки
|
|-
|250-269
|input
|R
|
|строка, null-terminated
|Версия прошивки
|
|-
|270-271
|input
|R
|
|32-bit unsigned int
|Уникальный идентификатор (S/N)
|
|}
 
==Сигнатура устройства == <!--T:16-->


<!--T:17-->
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:


<!--T:18-->
{| class="wikitable"
{| class="wikitable"
! style="font-weight: bold;" | Модуль
! style="font-weight: bold;" | Модуль
Строка 235: Строка 99:
|}
|}


<!--T:19-->
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.


== Управление модулем из веб-интерфейса == <!--T:20-->
== Управление модулем из web-интерфейса ==


<!--T:21-->
В настоящий момент для подключения модуля WB-MIR имеется два шаблона '''WB-MIR''' и '''WB-MIR (simple)'''. Шаблон '''WB-MIR''' предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия '''WB-MIR (simple)''' может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.
В настоящий момент для подключения модуля WB-MIR имеется два шаблона '''WB-MIR''' и '''WB-MIR (simple)'''. Шаблон '''WB-MIR''' предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия '''WB-MIR (simple)''' может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.


<!--T:22-->
{| class="wikitable"
{| class="wikitable"
|[[File:Web_wb_mir.png |600px|thumb|right|Веб-интерфейс модуля WB-MIR]]  
|[[File:Web_wb_mir.png |600px|thumb|right|Веб-интерфейс модуля WB-MIR]]  
Строка 250: Строка 111:
|}
|}


<!--T:23-->
 
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.
{| class="wikitable"
{| class="wikitable"
Строка 262: Строка 123:
|Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]).
|Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]).
|-
|-
|Learn to ROMx||Запись ИК-сигнала в соответствующую ячейку ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|Learn to ROMx||Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|-
|-
|Play from ROMx||Воспроизведение ИК-сигнала из соответствующей ячейки ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|Play from ROMx||Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF.
|-
|-
|ROMx -> RAM||Копирование данных из соответствующей ячейки ПЗУ в оперативный буфер для редактирования (см. раздел [[#Постоянный режим|Постоянный режим]]). Для редактирования контрол переводится в положение ON, после редактирования — OFF.
|ROMx -> RAM||Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел [[#Постоянный режим|Постоянный режим]]). Для редактирования контрол переводится в положение ON, после редактирования — OFF.
|-
|-
|Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
|Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
Строка 276: Строка 137:
|}
|}


== Управление модулем из командной строки == <!--T:24-->
== Управление модулем из командной строки ==
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus. Подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].


=== Пример чтения регистров === <!--T:25-->
=== Пример чтения регистров ===
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:


<!--T:26-->
<syntaxhighlight lang="bash">echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
<syntaxhighlight lang="bash">echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>


<!--T:27-->
В результате выполнения команды получаем строку, например '''WBMIR'''. В этом примере модуль WB-MIR имеет Modbus-адрес 1.
В результате выполнения команды получаем строку, например, '''WBMIR'''. В этом примере модуль WB-MIR имеет Modbus-адрес 1.


</translate>
=== Перезагрузка ===
В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля:
<syntaxhighlight lang="bash">
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100
</syntaxhighlight>  
Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial. Перезагрузку лучше делать с одним устройством на шине.

Версия 01:18, 7 ноября 2017


Эта страница описывает устройство WB-MIR v1, снятое с производства в 11.2017. Прямая замена - улучшенный модуль WB-MIR v2

Модуль WB-MIR
Внутренее устройство модуля. Видны подписи контактов на разъёмах
Отверстие ИК-передатчика на задней стороне модуля

Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS.

Входы

Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. D некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией).

Монтаж

Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось бы напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу.

Технические характеристики

Параметр Значение
Питание
Напряжение питания 9 — 24 В постоянного тока
Потребляемая мощность

0.1 Вт

Дальнодействие передатчика < 1м
Внешние датчики Возможность подключения цифрового датчика температуры DS18B20.
Управление
Интерфейс управления 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
Габариты
Габариты 45x35x14 мм
Условия эксплуатации
Температура воздуха -40°С до +80°С
Относительная влажность воздуха до 98%,без конденсата влаги

Обучение и использование модуля

Подробное описание и использования модуля, а также карта регистров, описаны в разделе Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR.

Дополнительные Функции

Смена адреса производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).

По адресу 200 лежит сигнатура длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.

Карты регистров

Подробно описаны в разделе Инструкция по работе с ИК-приёмопередатчиком в устройствах WB-MS, WB-MSW, WB-MIR.

Сигнатура устройства

По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:

Модуль Сигнатура
WB-MIR WBMIR'0x00'

Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.

Управление модулем из web-интерфейса

В настоящий момент для подключения модуля WB-MIR имеется два шаблона WB-MIR и WB-MIR (simple). Шаблон WB-MIR предоставляет полный набор к функциям модуля из веб-интерфейса, включая обучение, а упрощенная версия WB-MIR (simple) может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.

Веб-интерфейс модуля WB-MIR
Упрощенный веб-интерфейс модуля WB-MIR


На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.

Название элемента управления Назначение
Input Voltage Напряжение питания модуля
Learn to RAM Запись ИК-сигнала в оперативный буфер (см. раздел Оперативный режим). Для обучения контрол переводится в положение ON, после обучения — OFF.
Play from RAM Воспроизведение ИК-сигнала из оперативного буфера (см. раздел Оперативный режим).
Learn to ROMx Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел Постоянный режим). Для обучения контрол переводится в положение ON, после обучения — OFF.
Play from ROMx Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел Постоянный режим). Для обучения контрол переводится в положение ON, после обучения — OFF.
ROMx -> RAM Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел Постоянный режим). Для редактирования контрол переводится в положение ON, после редактирования — OFF.
Internal/External Temperature Sensor Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
Serial NO Серийный номер модуля WB-MIR, может потребоваться при обращении в техподдержку.
Reset all ROM Сброс содержимого всех ячеек памяти. Будьте внимательны, очистка ПЗУ будет выполнена без запроса на подтверждение!

Управление модулем из командной строки

Программное обеспечение контроллера 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'`

В результате выполнения команды получаем строку, например WBMIR. В этом примере модуль WB-MIR имеет Modbus-адрес 1.

Перезагрузка

В ряде случаев может потребоваться перезагрузка модуля. Для этого в регистр 120 (0x78) необходимо записать любое значение, отличное от нуля:

modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a1 -t0x06 -r0x78 100

Такая перезагрузка равносильна сбросу по питанию и изменению адреса устройства на 0x01. Предварительно, конечно, необходимо остановить сервис wb-mqtt-serial. Перезагрузку лучше делать с одним устройством на шине.