WB-MIR v1 - Modbus IR Remote Control: различия между версиями
Garik (обсуждение | вклад) |
Garik (обсуждение | вклад) |
||
(не показано 6 промежуточных версий 2 участников) | |||
Строка 16: | Строка 16: | ||
Управление модулем производится с контроллера или ПК по шине 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, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией). | В некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией). | ||
==Монтаж== <!--T:6--> | ==Монтаж== <!--T:6--> | ||
Модуль монтируется на кондиционер | Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу. | ||
== Технические характеристики == <!--T:7--> | == Технические характеристики == <!--T:7--> | ||
Строка 90: | Строка 90: | ||
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. | ||
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. | ||
Запись в эту область памяти не поддерживается, при | Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3. | ||
== Карты регистров == <!--T:13--> | == Карты регистров == <!--T:13--> | ||
Строка 139: | Строка 139: | ||
|96 | |96 | ||
|baud rate / 100 | |baud rate / 100 | ||
| | |скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 | ||
| rowspan="3" |>3.1.0 | | rowspan="3" |>3.1.0 | ||
|- | |- | ||
Строка 147: | Строка 147: | ||
|0 | |0 | ||
| | | | ||
| | |настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | ||
|- | |- | ||
|112 | |112 | ||
Строка 154: | Строка 154: | ||
|2 | |2 | ||
| | | | ||
| | |количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | ||
|- | |- | ||
| | | | ||
Строка 169: | Строка 169: | ||
|0 | |0 | ||
|отличное от 0 | |отличное от 0 | ||
| | |запись в регистр вызывает перезагрузку модуля без сохранения состояния | ||
| | | | ||
|- | |- | ||
Строка 177: | Строка 177: | ||
| - | | - | ||
|mV | |mV | ||
| | |текущее напряжение питания модуля | ||
| | | | ||
|- | |- | ||
Строка 193: | Строка 193: | ||
|см. [[Sensors Modbus Management|Сигнатура устройства]] | |см. [[Sensors Modbus Management|Сигнатура устройства]] | ||
| | | | ||
| | |сигнатура | ||
| | | | ||
|- | |- | ||
Строка 201: | Строка 201: | ||
| | | | ||
|__date__ __time__ | |__date__ __time__ | ||
| | |дата сборки прошивки | ||
| | | | ||
|- | |- | ||
Строка 209: | Строка 209: | ||
| | | | ||
|строка, null-terminated | |строка, null-terminated | ||
| | |версия прошивки | ||
| | | | ||
|- | |- | ||
Строка 217: | Строка 217: | ||
| | | | ||
|32-bit unsigned int | |32-bit unsigned int | ||
| | |уникальный идентификатор (S/N) | ||
| | | | ||
|} | |} | ||
Строка 239: | Строка 239: | ||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | ||
== Управление модулем из | == Управление модулем из web-интерфейса == <!--T:20--> | ||
<!--T:21--> | <!--T:21--> | ||
Строка 262: | Строка 262: | ||
|Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]). | |Play from RAM||Воспроизведение ИК-сигнала из оперативного буфера (см. раздел [[#Оперативный режим|Оперативный режим]]). | ||
|- | |- | ||
|Learn to ROMx||Запись ИК-сигнала в | |Learn to ROMx||Запись ИК-сигнала в соотв. ячейку ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. | ||
|- | |- | ||
|Play from ROMx||Воспроизведение ИК-сигнала из | |Play from ROMx||Воспроизведение ИК-сигнала из соотв. ячейки ПЗУ (см. раздел [[#Постоянный режим|Постоянный режим]]). Для обучения контрол переводится в положение ON, после обучения — OFF. | ||
|- | |- | ||
|ROMx -> RAM||Копирование данных из | |ROMx -> RAM||Копирование данных из соотв. ячейки ПЗУ в оперативный буфер для редактирования (см. раздел [[#Постоянный режим|Постоянный режим]]). Для редактирования контрол переводится в положение ON, после редактирования — OFF. | ||
|- | |- | ||
|Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | |Internal/External Temperature Sensor||Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом. | ||
Строка 277: | Строка 277: | ||
== Управление модулем из командной строки == <!--T:24--> | == Управление модулем из командной строки == <!--T:24--> | ||
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus | Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]]. | ||
=== Пример чтения регистров === <!--T:25--> | === Пример чтения регистров === <!--T:25--> | ||
Строка 288: | Строка 288: | ||
<!--T:27--> | <!--T:27--> | ||
В результате выполнения команды получаем строку, например | В результате выполнения команды получаем строку, например '''WBMIR'''. В этом примере модуль WB-MIR имеет Modbus-адрес 1. | ||
</translate> | </translate> |
Версия 14:28, 31 августа 2020
Эта страница описывает устройство WB-MIR v.1, снятое с производства в 11.2017. Прямая замена - улучшенный модуль WB-MIR v.2
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. Управление модулем производится с контроллера или ПК по шине RS-485 командами по протоколу MODBUS.
Входы
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается ко входам A и B. Внешний датчик температуры DS18B20 подключается по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1-W. В некоторых моделях присутствует внутренний датчик температуры DS18B20 в корпусе TO-92, распаянный в верхней левой части платы модуля (вид сверху корпуса датчика нанесен в этом месте шелкографией).
Монтаж
Модуль монтируется на кондиционер на двусторонний скотч таким образом, чтобы небольшое отверстие излучающего диода с обратной стороны располагалось напротив ИК-приемника кондиционера, не закрывая приемник от основного пульта устройства. Положение подбирается экспериментальным путем ввиду огромного множества конструкций корпусов кондиционеров. То же относится и к любым бытовым устройствам, управляемым по ИК-каналу.
Технические характеристики
Параметр | Значение |
---|---|
Питание | |
Напряжение питания | 9 — 24 В постоянного тока |
Потребляемая мощность |
0.1 Вт |
Дальнодействие передатчика | < 1м |
Внешние датчики | Возможность подключения цифрового датчика температуры DS18B20 |
Управление | |
Интерфейс управления | RS-485 |
Изоляция интерфейса | Неизолированный |
Протокол обмена данными | Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке |
Параметры интерфейса RS-485 |
Скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:
|
Габариты | |
Габариты | 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.
Регистр/ адрес | Тип | Чтение/ запись | Значение по умолчанию | Формат | Назначение | Версии
прошивки |
---|---|---|---|---|---|---|
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 | >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 | см. Сигнатура устройства | сигнатура | ||
220-241 | input | R | __date__ __time__ | дата сборки прошивки | ||
250-269 | input | R | строка, null-terminated | версия прошивки | ||
270-271 | input | R | 32-bit unsigned int | уникальный идентификатор (S/N) |
Сигнатура устройства
По адресу 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) может использоваться с уже обученным пультом и содержит гораздо меньшее количество элементов управления.
На примере полнофункционального модуля рассмотрим основные органы управления модулем и их назначение.
Название элемента управления | Назначение |
---|---|
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.