100
правок
Kilpio (обсуждение | вклад) (Новая страница: «{{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} == Параметры Modbus == === Modbus-адрес === …») |
|||
(не показаны 183 промежуточные версии 9 участников) | |||
Строка 1: | Строка 1: | ||
<languages/> | |||
<translate> | |||
<!--T:1--> | |||
{{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} | {{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} | ||
== | == Карта регистров датчиков WB-MS и WB-MSW == <!--T:2--> | ||
=== Карта регистров хранения (Holding Registers)=== <!--T:6--> | |||
<!--T:7--> | |||
{| border="1" class="wikitable" style="text-align:center" | |||
!rowspan="2"|Регистр/ адрес | |||
!rowspan="2"|Тип | |||
!rowspan="2"|Чтение/ запись | |||
!rowspan="2"|Значение по умолчанию или при ошибке | |||
!rowspan="2"|Формат | |||
!rowspan="2"|Назначение | |||
!colspan="5"|Поддерживается в | |||
!С версии | |||
прошивки | |||
|- | |||
!WB-MS (код модели) | |||
!WB-MS v2 (код модели) | |||
!WB-MSW | |||
!WB-MSW2 | |||
!WB-MSW v.3 | |||
! | |||
|- | |||
| 0 || input || R || 0x7FFF ||°C × 10 (signed)||Температура с встроенного датчика | |||
| T | |||
| - | |||
| - | |||
| + | |||
|<nowiki>+</nowiki> | |||
| | |||
|- | |||
|1|| input || R || 0xFFFF ||<blockquote>%RH × 10 (signed)</blockquote>||Относительная влажность с встроенного датчика | |||
|H | |||
|<nowiki>-</nowiki> | |||
| + | |||
| + | |||
|<nowiki>+</nowiki> | |||
| | |||
|- | |||
|2 | |||
|input | |||
|R | |||
|<nowiki>-</nowiki> | |||
|лк | |||
|''(регистр не используется в датчиках WB-MSW, вместо него регистры 9 и 10)''<br>Освещённость с встроенного датчика | |||
|L | |||
|Lux | |||
| - | |||
| - | |||
|<nowiki>-</nowiki> | |||
| | |||
|- | |||
|3 | |||
|input | |||
|R | |||
|<nowiki>-</nowiki> | |||
|дБ × 100 | |||
|Уровень шума, умноженный на 100 | |||
|S | |||
|<nowiki>-</nowiki> | |||
| + | |||
|S | |||
|S | |||
| | |||
|- | |||
|4 | |||
|input | |||
|R | |||
|0x7FFF | |||
|°C × 100 (signed) | |||
|Температура с встроенного датчика | |||
| + | |||
| + | |||
| - | |||
| - | |||
| + | |||
|4.2 | |||
|- | |||
|5 | |||
|input | |||
|R | |||
|<nowiki>-</nowiki> | |||
|%RH × 100 (signed) | |||
|Относительная влажность с встроенного датчика | |||
| + | |||
| + | |||
| - | |||
| - | |||
| + | |||
|4.2 | |||
|- | |||
|6 | |||
|input | |||
|R | |||
|0x7FFF | |||
|°C × 16 (signed) | |||
|Температура с внешнего датчика | |||
| D | |||
| + | |||
| - | |||
| - | |||
|<nowiki>-</nowiki> | |||
| | |||
|- | |||
|7 | |||
|input | |||
|R | |||
|0x7FFF | |||
|°C × 16 (signed) | |||
|Температура с внешнего датчика | |||
| D | |||
| + | |||
| - | |||
| - | |||
|<nowiki>-</nowiki> | |||
| | |||
|- | |||
|8 | |||
|input | |||
| R | |||
|0xFFFF | |||
|PPM | |||
|Концентрация CO2 | |||
| - | |||
| - | |||
|С | |||
|C | |||
| | |||
|- | |||
|9-10 | |||
|input | |||
| R | |||
| | |||
|лк | |||
|'''Освещенность, умноженная на 100''' (9 - старший разряд, 10 — младший разряд значения освещенности) | |||
| - | |||
| - | |||
| + | |||
|L | |||
| | |||
|- | |||
|11 | |||
|input | |||
| R | |||
|0xFFFF | |||
|ppb | |||
|Качество воздуха | |||
| - | |||
| VOC | |||
| - | |||
| - | |||
| + | |||
| | |||
|- | |||
|86 | |||
|input | |||
|R | |||
|0 | |||
|0 или 1 | |||
|'''Служебный регистр''', отсутствует в большинстве устройств. | |||
Текущий канал работы датчика уровня шума: 0 - канал низкоуровневых шумов, 1 - канал высокоуровневых шумов | |||
|colspan="5"|msw v.3.4 | |||
|4.15.0 | |||
|- | |||
|87 | |||
|input | |||
|R | |||
|0 | |||
| | |||
|Служебный регистр HOLD_REG_SPL_HIGHGAIN_RAW_INT | |||
|colspan="5"|msw v.3.4 | |||
|4.15.0 | |||
|- | |||
|88 | |||
|holding | |||
|RW | |||
|0 | |||
|ppm (400-1500) | |||
|'''Служебный регистр''', отсутствует в большинстве устройств. | |||
Ручная калибровка датчика CO2. Для калибровки запишите сюда текущее значение концентрации CO2, измеренное другим прибором. | |||
| - | |||
| - | |||
| - | |||
|C | |||
|C | |||
|3.12 | |||
|- | |||
|89 | |||
|holding | |||
|RW | |||
|0xFF | |||
|дней | |||
|'''Служебный регистр''', отсутствует в большинстве устройств. | |||
Длительность цикла для алгоритма самокалибровки датчика CO (ABC) | |||
| - | |||
| - | |||
| - | |||
|C | |||
|C | |||
|3.12 | |||
|- | |||
|90||holding||RW||20 (200 ms)||× 10 ms||Время усреднения освещённости | |||
|<blockquote>L, B</blockquote> | |||
| - | |||
| - | |||
| - | |||
|<nowiki>-</nowiki> | |||
| | |||
|- | |||
<!--T:28--> | |||
|91||holding||RW||20 (200 ms)||× 10 ms | |||
||Время усреднения шума | |||
|S | |||
| - | |||
| + | |||
|S | |||
|S | |||
|- | |||
<!--T:29--> | |||
|92 | |||
||holding | |||
||RW||0||x0.0625||Служебный регистр HOLD_REG_SPL_RAW_OFFSET - сдвиг значения АЦП | |||
|<nowiki>-</nowiki> | |||
|<nowiki>-</nowiki> | |||
|S | |||
|S | |||
|S | |||
|4.9.0 | |||
|- | |||
<!--T:30--> | |||
|93 | |||
||holding | |||
||RW||0||x0.1dB||Служебный регистр HOLD_REG_SPL_OFFSET - поправка к значению уровня шума | |||
|<nowiki>-</nowiki> | |||
|<nowiki>-</nowiki> | |||
|S | |||
|S | |||
|S | |||
|4.9.0 | |||
|- | |||
<!--T:31--> | |||
|- | |||
|95 | |||
|holding | |||
|RW | |||
|1 | |||
|1 or 0 | |||
|Режим автокалибровки датчика CO2 (ABC) на атмосферный уровень CO2 | |||
| - | |||
| - | |||
| - | |||
|С | |||
|C | |||
| | |||
|- | |||
|96||holding||R||2000 / 5000||ppm | |||
||(доступно с версии прошивки 3.5.0) Диапазон измерения концентрации CO2. Допустимые значения: 2000, 5000, 10000. | |||
| - | |||
| - | |||
| - | |||
|C | |||
|C | |||
|3.5.0 | |||
|- | |||
<!--T:8--> | |||
|97||holding||RW||0||0 — 10 c | |||
||Период между вспышками сигнальных светодиодов | |||
| - | |||
| - | |||
| - | |||
| - | |||
| + | |||
|3.13.0 | |||
|- | |||
<!--T:9--> | |||
|98||holding||RW||0||0 — 50 мс | |||
||Длительность вспышки светодиодов | |||
| - | |||
| - | |||
| - | |||
| - | |||
| + | |||
|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 | |||
|- | |||
<!--T:32--> | |||
|100 | |||
||input | |||
||R||||||Служебный регистр HOLD_REG_SPL_RAW_INT | |||
|<nowiki>-</nowiki> | |||
|<nowiki>-</nowiki> | |||
|S | |||
|S | |||
|S | |||
| | |||
|- | |||
<!--T:11--> | |||
|101 | |||
||input | |||
||R||||||Служебный регистр HOLD_REG_TH_READS | |||
|colspan="5"|все | |||
| | |||
|- | |||
<!--T:12--> | |||
|102 | |||
||input | |||
||R||||||Служебный регистр HOLD_REG_TH_ERRORS | |||
|colspan="5"|все | |||
| | |||
|- | |||
<!--T:33--> | |||
|103 | |||
||holding | |||
||RW||||||Служебный регистр HOLD_REG_ILLUMINANCE_MODE | |||
|<nowiki>+</nowiki> | |||
|<nowiki>+</nowiki> | |||
|<nowiki>+</nowiki> | |||
|<nowiki>-</nowiki> | |||
|<nowiki>-</nowiki> | |||
| | |||
|- | |||
<!--T:13--> | |||
|104-105 | |||
||input | |||
||R||||32-bit unsigned int||Время работы устройства (uptime counter) в секундах | |||
|colspan="5"|все | |||
| | |||
|- | |- | ||
| | |||
<!--T:14--> | |||
|106||input||R|| || | |||
|| Служебный регистр INPUT_REG_SGPC3_BASELINE | |||
| - | |||
| - | |||
| - | |||
| - | |||
| + | |||
| | |||
|- | |- | ||
| | |||
|| | <!--T:15--> | ||
|107||input||R|| || | |||
|| Служебный регистр INPUT_REG_SGPC3_RAW_SIGNAL | |||
| - | |||
| - | |||
| - | |||
| - | |||
| + | |||
| | |||
|- | |- | ||
| | |108 | ||
| | |input | ||
| | |R | ||
| | |0xFFFF | ||
| | | | ||
|Служебный регистр SGPC3 VERSION | |||
| - | |||
| - | |||
| | | - | ||
| - | |||
| + | |||
|4.2 | |||
|- | |- | ||
|| holding || RW || | <!--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 | ||
| | |colspan="5"|все | ||
| | |||
|- | |- | ||
| | | 113 || holding || RW || 8 || мс || Задержка перед отправкой ответного пакета по RS-485 | ||
|colspan="5"|все | |||
|4.15.0 | |||
|- | |- | ||
| 120 (0x78) || holding || RW || 0 || отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния | | 120 (0x78) || holding || RW || 0 || отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния | ||
|colspan="5"|все | |||
| | |||
|- | |||
| 121 (0x79) || input || R || - || mV || текущее напряжение питания модуля | |||
|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" | {| 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]]. | |||
<!--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--> | |||
Для получения сигнатуры устройства нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. | |||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | |||
</translate> |
правок