|
|
Строка 4: |
Строка 4: |
| <!--T:1--> | | <!--T:1--> |
| {{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} | | {{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} |
|
| |
| == Карта регистров датчиков WB-MS и WB-MSW == <!--T:2-->
| |
|
| |
| === Карта регистров хранения (Holding Registers)=== <!--T:6-->
| |
|
| |
|
| <!--T:7--> | | <!--T:7--> |
Строка 19: |
Строка 15: |
| |С версии прошивки | | |С версии прошивки |
| |- | | |- |
| | 0 || input || R || 0x7FFF ||°C × 10 (signed)||Температура с встроенного датчика | | | 0 || coil || RW || 0 || - || Включение пищалки (buzzer) |
| |- | | |- |
| |1 || input || R || 0xFFFF ||<blockquote>%RH × 10 (signed)</blockquote>||Относительная влажность с встроенного датчика | | | 1 || coil || RW || 0 || - || Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm |
| |- | | |- |
| |3 || input || R ||<nowiki>-</nowiki> ||дБ × 100 ||Уровень шума, умноженный на 100 | | | 2 || coil || RW || 0 || - || Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 || 3.2.0 |
| |- | | |- |
| |4 | | | 3 || coil || RW || 1 || - || Включение датчика CO2 (1-вкл, 0-выкл) || 4.1.0 |
| |input | |
| |R | |
| |0x7FFF | |
| |°C × 100 (signed) | |
| |Температура с встроенного датчика | |
| | + | |
| | + | |
| | - | |
| | - | |
| | + | |
| |4.2 | |
| |- | | |- |
| |5 | | | 10 || coil || RW || 0 || - || Включение зеленого светодиода |
| |input | |
| |R | |
| |<nowiki>-</nowiki> | |
| |%RH × 100 (signed) | |
| |Относительная влажность с встроенного датчика | |
| | + | |
| | + | |
| | -
| |
| | - | |
| | + | |
| |4.2 | |
| |- | | |- |
| |6 | | | 11 || coil || RW || 0 || - || Включение красного светодиода |
| |input | |
| |R | |
| |0x7FFF | |
| |°C × 16 (signed) | |
| |Температура с внешнего датчика | |
| | D | |
| | + | |
| | - | |
| | - | |
| |<nowiki>-</nowiki>
| |
| | | |
| |- | | |- |
| |7 | | | 0 || input || R || 0x7FFF ||°C × 10 (signed)||Температура с встроенного датчика |
| |input | |
| |R | |
| |0x7FFF | |
| |°C × 16 (signed) | |
| |Температура с внешнего датчика | |
| | D
| |
| | +
| |
| | -
| |
| | -
| |
| |<nowiki>-</nowiki>
| |
| |
| |
| |- | | |- |
| |8 | | |1 || input || R || 0xFFFF ||<blockquote>%RH × 10 (signed)</blockquote>||Относительная влажность с встроенного датчика |
| |input | |
| | R | |
| |0xFFFF | |
| |PPM
| |
| |Концентрация CO2
| |
| | -
| |
| | - | |
| |С | |
| |C | |
| | | |
| |- | | |- |
| |9-10 | | |3 || input || R ||<nowiki>-</nowiki> ||дБ × 100 ||Уровень шума, умноженный на 100 |
| |input | |
| | R | |
| |
| |
| |лк | |
| |'''Освещенность, умноженная на 100''' (9 - старший разряд, 10 — младший разряд значения освещенности) | |
| | - | |
| | - | |
| | + | |
| |L
| |
| | | |
| |- | | |- |
| |11 | | |4 || input || R || 0x7FFF || °C × 100 (signed) ||Температура с встроенного датчика || 4.2 |
| |input | |
| | R | |
| |0xFFFF
| |
| |ppb | |
| |Качество воздуха | |
| | - | |
| | VOC | |
| | - | |
| | - | |
| | + | |
| | | |
| |- | | |- |
| |86 | | |5 || input || R || <nowiki>-</nowiki> || %RH × 100 (signed) || Относительная влажность с встроенного датчика || 4.2 |
| |input | |
| |R | |
| |0 | |
| |0 или 1 | |
| |'''Служебный регистр''', отсутствует в большинстве устройств. | |
| Текущий канал работы датчика уровня шума: 0 - канал низкоуровневых шумов, 1 - канал высокоуровневых шумов
| |
| |colspan="5"|msw v.3.4
| |
| |4.15.0 | |
| |- | | |- |
| |87 | | |8 || input || R || 0xFFFF || PPM || Концентрация CO2 |
| |input | |
| |R | |
| |0 | |
| | | |
| |Служебный регистр HOLD_REG_SPL_HIGHGAIN_RAW_INT | |
| |colspan="5"|msw v.3.4 | |
| |4.15.0 | |
| |- | | |- |
| |88 | | |9-10 || input || R || 0xFFFF || лк || '''Освещенность, умноженная на 100''' (9 - старший разряд, 10 — младший разряд значения освещенности) |
| |holding | |
| |RW | |
| |0 | |
| |ppm (400-1500) | |
| |'''Служебный регистр''', отсутствует в большинстве устройств. | |
| Ручная калибровка датчика CO2. Для калибровки запишите сюда текущее значение концентрации CO2, измеренное другим прибором.
| |
| | -
| |
| | -
| |
| | -
| |
| |C
| |
| |C
| |
| |3.12
| |
| |- | | |- |
| |89 | | |11 || input || R || 0xFFFF || ppb || Качество воздуха |
| |holding | |
| |RW | |
| |0xFF | |
| |дней | |
| |'''Служебный регистр''', отсутствует в большинстве устройств. | |
| Длительность цикла для алгоритма самокалибровки датчика CO (ABC)
| |
| | - | |
| | - | |
| | - | |
| |C | |
| |C | |
| |3.12
| |
| |- | | |- |
| |90||holding||RW||20 (200 ms)||× 10 ms||Время усреднения освещённости | | |86 || input || R || 0 || 0 или 1 || '''Служебный регистр''', присутствует начиная с модели 4.9. Текущий канал работы датчика уровня шума: 0 - канал низкоуровневых шумов, 1 - канал высокоуровневых шумов || 4.15.0 |
| |<blockquote>L, B</blockquote>
| |
| | -
| |
| | -
| |
| | - | |
| |<nowiki>-</nowiki>
| |
| | | |
| |- | | |- |
| | | |87 || input || R || 0 || - || Служебный регистр HOLD_REG_SPL_HIGHGAIN_RAW_INT || 4.15.0 |
| <!--T:28-->
| |
| |91||holding||RW||20 (200 ms)||× 10 ms | |
| ||Время усреднения шума | |
| |S
| |
| | -
| |
| | +
| |
| |S | |
| |S | |
| |- | | |- |
| | | |88 || holding || RW || 0 || ppm (400-1500) || '''Служебный регистр''', отсутствует в большинстве устройств. Ручная калибровка датчика CO2. Для калибровки запишите сюда текущее значение концентрации CO2, измеренное другим прибором ||3.12 |
| <!--T:29-->
| |
| |92 | |
| ||holding | |
| ||RW||0||x0.0625||Служебный регистр HOLD_REG_SPL_RAW_OFFSET - сдвиг значения АЦП | |
| |<nowiki>-</nowiki> | |
| |<nowiki>-</nowiki>
| |
| |S
| |
| |S
| |
| |S
| |
| |4.9.0 | |
| |- | | |- |
| | | |89 || holding || RW || 0xFF || дней || '''Служебный регистр''', отсутствует в большинстве устройств. Длительность цикла для алгоритма самокалибровки датчика CO (ABC) || 3.12 |
| <!--T:30-->
| |
| |93 | |
| ||holding | |
| ||RW||0||x0.1dB||Служебный регистр HOLD_REG_SPL_OFFSET - поправка к значению уровня шума | |
| |<nowiki>-</nowiki>
| |
| |<nowiki>-</nowiki> | |
| |S | |
| |S
| |
| |S
| |
| |4.9.0
| |
| |- | | |- |
| | | |91 || holding || RW || 20 (200 ms) ||× 10 ms || Время усреднения шума |
| | |
| | |
| | |
| <!--T:31-->
| |
| |- | | |- |
| |95 | | |92 || holding || RW || 0 || x0.0625 || Служебный регистр HOLD_REG_SPL_RAW_OFFSET - сдвиг значения АЦП || 4.9.0 |
| |holding | |
| |RW | |
| |1 | |
| |1 or 0 | |
| |Режим автокалибровки датчика CO2 (ABC) на атмосферный уровень CO2 | |
| | - | |
| | - | |
| | - | |
| |С | |
| |C
| |
| | | |
| |- | | |- |
| |96||holding||R||2000 / 5000||ppm | | |93 || holding || RW || 0 || x0.1dB || Служебный регистр HOLD_REG_SPL_OFFSET - поправка к значению уровня шума || 4.9.0 |
| ||(доступно с версии прошивки 3.5.0) Диапазон измерения концентрации CO2. Допустимые значения: 2000, 5000, 10000. | |
| | - | |
| | - | |
| | -
| |
| |C
| |
| |C | |
| |3.5.0 | |
| |- | | |- |
| | | |95 || holding || RW || 1 || 1 or 0 || Режим автокалибровки датчика CO2 (ABC) на атмосферный уровень CO2 |
| <!--T:8-->
| |
| |97||holding||RW||0||0 — 10 c | |
| ||Период между вспышками сигнальных светодиодов
| |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | + | |
| |3.13.0 | |
| |- | | |- |
| | | |96 || holding || R || 2000 / 5000 || ppm || Диапазон измерения концентрации CO2. Допустимые значения: 2000, 5000, 10000 || 3.5.0 |
| | |
| <!--T:9-->
| |
| |98||holding||RW||0||0 — 50 мс | |
| ||Длительность вспышки светодиодов | |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | + | |
| |3.13.0 | |
| |- | | |- |
| | | |97 || holding || RW || 0 || 0 — 10 c || Период между вспышками сигнальных светодиодов || 3.13.0 |
| | |
| | |
| | |
| | |
| <!--T:10-->
| |
| |99||holding||RW||16|| 1 = 0.0625C | |
| ||(доступно с версии прошивки 3.10.0) Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на значение регистра*0.0625C. Запишите 0, чтобы отключить фильтр.
| |
| | D | |
| | + | |
| | - | |
| | -
| |
| | -
| |
| |3.10.0 | |
| |- | | |- |
| | | |98 || holding || RW || 0 || 0 — 50 мс ||Длительность вспышки светодиодов || 3.13.0 |
| | |
| | |
| <!--T:32-->
| |
| |100 | |
| ||input | |
| ||R||||||Служебный регистр HOLD_REG_SPL_RAW_INT | |
| |<nowiki>-</nowiki> | |
| |<nowiki>-</nowiki>
| |
| |S
| |
| |S
| |
| |S
| |
| | | |
| |- | | |- |
| | | |100 || input || R || 0 || - || Служебный регистр HOLD_REG_SPL_RAW_INT |
| | |
| <!--T:11-->
| |
| |101 | |
| ||input | |
| ||R||||||Служебный регистр HOLD_REG_TH_READS | |
| |colspan="5"|все
| |
| |
| |
| |- | | |- |
| | | |101 || input || R || 0 || - || Служебный регистр: количество успешных считываний датчика температуры и влажности |
| <!--T:12-->
| |
| |102 | |
| ||input | |
| ||R||||||Служебный регистр HOLD_REG_TH_ERRORS | |
| |colspan="5"|все
| |
| |
| |
| |- | | |- |
| | | |102 || input || R || 0 || - || Служебный регистр: количество ошибок считывания датчика температуры и влажности |
| | |
| <!--T:33-->
| |
| |103 | |
| ||holding | |
| ||RW||||||Служебный регистр HOLD_REG_ILLUMINANCE_MODE | |
| |<nowiki>+</nowiki>
| |
| |<nowiki>+</nowiki>
| |
| |<nowiki>+</nowiki>
| |
| |<nowiki>-</nowiki>
| |
| |<nowiki>-</nowiki>
| |
| |
| |
| |- | | |- |
| | | |106 || input || R || 0 || - || Служебный регистр: значение baseline датчика CO2 |
| | |
| <!--T:13-->
| |
| |104-105 | |
| ||input | |
| ||R||||32-bit unsigned int||Время работы устройства (uptime counter) в секундах | |
| |colspan="5"|все
| |
| |
| |
| |- | | |- |
| | | |107 || input || R || 0xFFFF || - || Служебный регистр: сырые значения датчика CO2 |
| <!--T:14-->
| |
| |106||input||R|| || | |
| || Служебный регистр INPUT_REG_SGPC3_BASELINE | |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |
| |
| |- | | |- |
| | | |108 || input || R || 0xFFFF || - || Служебный регистр: версия датчика CO2 || 4.2 |
| <!--T:15-->
| |
| |107||input||R|| || | |
| || Служебный регистр INPUT_REG_SGPC3_RAW_SIGNAL | |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | + | |
| | | |
| |- | | |- |
| |108 | | |113 || holding || RW || 8 || мс || Задержка перед отправкой ответного пакета по RS-485 || 4.15.0 |
| |input | |
| |R | |
| |0xFFFF | |
| | | |
| |Служебный регистр SGPC3 VERSION | |
| | - | |
| | - | |
| | - | |
| | - | |
| | + | |
| |4.2 | |
| |- | | |- |
| | | |245 || holding || RW || 0 || °C × 100 (signed) || Температурная компенсация самонагрева для датчика температуры и влажности (значение вычитается из измереной температуры) || 4.2 |
| | |
| <!--T:16-->
| |
| | 110 || holding || RW || 96 || baud rate / 100 || скорость порта RS-485, '''делённая на 100'''. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 <br>([[UART_Communication_Settings|Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board]]) | |
| |colspan="5"|все | |
| | rowspan="3" |>3.1.0
| |
| |-
| |
| | 111 || holding || RW || 0 || || настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even)
| |
| |colspan="5"|все
| |
| |- | | |- |
| | 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | | |280 || input || R || 0 || - || Максимальное значение датчика движения за установленное время окна (Max motion) |
| |colspan="5"|все | |
| |- | | |- |
| | 113 || holding || RW || 8 || мс || Задержка перед отправкой ответного пакета по RS-485 | | |281 || input || R || 0 || - || Служебный регистр: сырое значение с АЦП датчика движения |
| |colspan="5"|все | |
| |4.15.0
| |
| |- | | |- |
| | 120 (0x78) || holding || RW || 0 || отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния | | |282 || holding || RW || 10 || с || Ширина временного окна для вычисления максимального усредненного значения датчика движения (от 1 до 60 секунд) |
| |colspan="5"|все
| |
| |
| |
| |- | | |- |
| | 121 (0x79) || input || R || - || mV || текущее напряжение питания модуля | | |283 || input || R || 0 || - ||Текущее усредненное значение движения в условных единицах (Current motion) |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| | 128 (0x80) || holding || RW || 1 || || Modbus-адрес устройства
| |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| | 129 (0x81) || holding || RW || 0 || 0 или 1 || Переход в [[WB-MCU-Flasher|режим загрузчика]]
| |
| |colspan="5"|все || 4.5.0
| |
| |-
| |
| | 200-206 || input || R || см. [[#Сигнатура устройства|Сигнатура устройства]] || || сигнатура
| |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| | 220-241 || input || R || || __date__ __time__|| дата сборки прошивки
| |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| |245
| |
| |holding
| |
| |RW
| |
| |0
| |
| |°C × 100 (signed)
| |
| |Температурная компенсация самонагрева для датчика температуры и влажности (значение вычитается из измереной температуры)
| |
| | +
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |4.2
| |
| |-
| |
| | 250-269 || input || R || || строка, null-terminated || версия прошивки
| |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| | 270-271 || input || R || || 32-bit unsigned int || уникальный идентификатор (S/N)
| |
| |colspan="5"|все
| |
| |
| |
| |-
| |
| |280||input||R|| ||
| |
| ||Максимальное значение датчика движения за установленное время окна (Max motion)
| |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |
| |
| |-
| |
| |281||input||R|| ||
| |
| ||Служебный регистр: сырое значение с АЦП датчика движения
| |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |
| |
| |-
| |
| |282||holding||RW||10||с
| |
| ||Ширина временного окна для вычисления максимального усредненного значения датчика движения (от 1 до 60 секунд)
| |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |
| |
| |-
| |
| |283||input||R|| ||
| |
| ||Текущее усредненное значение движения в условных единицах (Current motion) | |
| | -
| |
| | -
| |
| | -
| |
| | -
| |
| | +
| |
| |
| |
| |-
| |
| | |
| <!--T:17-->
| |
| |}
| |
| | |
| Входы 1-W устройства можно сконфигурировать как счётные входы:
| |
| | |
| {| class="wikitable"
| |
| !Регистр/ адрес
| |
| !Тип
| |
| !Чтение/ запись
| |
| !Значение по умолчанию
| |
| !Формат
| |
| !Назначение
| |
| !Версии прошивки
| |
| |-
| |
| |275
| |
| |holding
| |
| |RW
| |
| |0
| |
| |0 или 1
| |
| |Режим входа №1: 0 - 1-wire, 1 - дискретный вход
| |
| | rowspan="6" |>=4.0.0
| |
| |-
| |
| |276
| |
| |holding
| |
| |RW
| |
| |0
| |
| |0 или 1
| |
| |Режим входа №2: 0 - 1-wire, 1 - дискретный вход
| |
| |-
| |
| |277
| |
| |input
| |
| |R
| |
| |
| |
| |16-bit unsigned int
| |
| |Счетчик срабатываний для входа №1
| |
| |-
| |
| |278
| |
| |input
| |
| |R
| |
| |
| |
| |16-bit unsigned int
| |
| |Счетчик срабатываний для входа №2
| |
| |-
| |
| |0
| |
| |discrete
| |
| |R
| |
| |
| |
| |0 или 1
| |
| |Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
| |
| |-
| |
| |1
| |
| |discrete
| |
| |R
| |
| |
| |
| |0 или 1
| |
| |Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
| |
| |} | | |} |
|
| |
|
| ===Карта регистров флагов (Coils)=== <!--T:18-->
| |
| Регистры, связанные с ИК-управлением, описаны в статье [[WB-MSx_Consumer_IR_Manual]]. | | Регистры, связанные с ИК-управлением, описаны в статье [[WB-MSx_Consumer_IR_Manual]]. |
|
| |
|
| <!--T:19-->
| |
| {| border="1" class="wikitable" style="text-align:center"
| |
| !Начальный адрес || Количество || Назначение || В модификациях
| |
| !С версии прошивки
| |
| |-
| |
| | 0 || 1 || style="text-align:left" |Включение пищалки (buzzer) || WB-MSW v.3, WB-MSW2
| |
| |
| |
| |-
| |
| | 1 || 1 || style="text-align:left" | Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm || WB-MSW v.3, WB-MSW2
| |
| |
| |
| |-
| |
| | 2 || 1 || style="text-align:left" | Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 || WB-MS (2017 г. и новее), WB-MSW v.3, WB-MSW2,
| |
| |3.2.0
| |
| |-
| |
| |3
| |
| |1
| |
| | style="text-align:left"|Включение датчика CO2 (1-вкл, 0-выкл)
| |
| |WB-MSW v.3
| |
| |4.1.0
| |
| |-
| |
| | 10 || 1 || style="text-align:left" | Включение зеленого светодиода || WB-MSW v.3
| |
| |
| |
| |-
| |
| | 11 || 1 || style="text-align:left" | Включение красного светодиода || WB-MSW v.3
| |
| |
| |
| |-
| |
| |}
| |
|
| |
| ===Сигнатура устройства === <!--T:20-->
| |
|
| |
| <!--T:21-->
| |
| По адресу 200 хранится сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
| |
|
| |
| <!--T:22-->
| |
| {| class="wikitable"
| |
| ! style="font-weight: bold;" | Модуль
| |
| ! style="font-weight: bold;" | Сигнатура
| |
| |-
| |
| | WB-MS
| |
| | WBMS,'0x00','0x00'
| |
| |-
| |
| | WB-MSW
| |
| | WBMSW,'0x00'
| |
| |-
| |
| | WB-MSW2
| |
| | WBMSW2
| |
| |-
| |
| | WB-MSW v.3
| |
| | WBMSW3
| |
| |}
| |
|
| |
|
| <!--T:23-->
| | {{:Common_Modbus_Registers}} |
| Для получения сигнатуры устройства нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.
| |
| Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
| |
|
| |
|
|
| |
|
| </translate> | | </translate> |