WB-MIR v2 - Modbus IR Remote Control
(В процессе наполнения!)
Обучаемый модуль с ИК-приёмопередатчиком для управления по ИК-каналу различными устройствами, включая кондиционеры, телевизоры и т.п. Управление модулем производится с контроллера или ПК по шине 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, линия КЫ-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.
Карта регистров хранения (Holding Registers)
В процессе наполнения.
Регистр/ адрес | тип | чтение/ запись | значение по умолчанию | формат | назначение | к каким модификациям датчика применимо |
---|---|---|---|---|---|---|
0 | input | R | 0x7FFF | °C × 10 (signed) | Температура с встроенного датчика | T |
1 | input | R | 0xFFFF |
|
Относительная влажность с встроенного датчика | H |
2 | input | R | - | lux | Освещённость с встроенного датчика | L |
3 | input | R | - | dB | Уровень шума | S |
4 | input | R | - | - | - | |
5 | input | R | - | - | - | |
6 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | D |
7 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | D |
8 | input | R | PPM | Концентрация CO2 | ||
90 | holding | RW | 20 (200 ms) | × 10 ms | Время усреднения освещённости |
|
91 | holding | RW | 20 (200 ms) | × 10 ms | Время усреднения шума | S |
100 | input | R | raw_val * 16 | Сырое усреднённое значение с АЦП микрофона | S | |
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','S',0,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-приемопередатчика | I |
Карта регистров флагов (Coils)
Начальный адрес | Количество | Назначение | В модификациях |
---|---|---|---|
0 | number_of_banks | Воспроизведение ИК-команды из соответствующего банка | I |
1000 | number_of_banks | Чтение и запись в банки команд IR | I |
2000 | number_of_banks | Запись в банк команд IR использую IR-приёмник | I |
5000 | 1 | Очистка всех банков ИК-команд | I |
5001 | 1 | Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд | I |
5002 | 1 | Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509) | I |