Sensors Modbus Management: различия между версиями
(не показано 16 промежуточных версий 6 участников) | |||
Строка 5: | Строка 5: | ||
{{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} | {{DISPLAYTITLE:Управление датчиками Wirenboard по протоколу Modbus}} | ||
== | == Карта регистров датчиков WB-MS и WB-MSW == <!--T:2--> | ||
=== Карта регистров хранения (Holding Registers)=== <!--T:6--> | === Карта регистров хранения (Holding Registers)=== <!--T:6--> | ||
Строка 158: | Строка 150: | ||
| R | | R | ||
|0xFFFF | |0xFFFF | ||
| | |ppb | ||
|Качество воздуха | |Качество воздуха | ||
| - | | - | ||
Строка 166: | Строка 158: | ||
| + | | + | ||
| | | | ||
|- | |||
|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 | |88 | ||
Строка 172: | Строка 183: | ||
|0 | |0 | ||
|ppm (400-1500) | |ppm (400-1500) | ||
|Ручная калибровка датчика CO2. Для калибровки запишите сюда текущее значение концентрации CO2, измеренное другим прибором | |'''Служебный регистр''', отсутствует в большинстве устройств. | ||
Ручная калибровка датчика CO2. Для калибровки запишите сюда текущее значение концентрации CO2, измеренное другим прибором. | |||
| - | | - | ||
| - | | - | ||
Строка 185: | Строка 197: | ||
|0xFF | |0xFF | ||
|дней | |дней | ||
|Длительность цикла для алгоритма самокалибровки датчика CO (ABC) | |'''Служебный регистр''', отсутствует в большинстве устройств. | ||
Длительность цикла для алгоритма самокалибровки датчика CO (ABC) | |||
| - | | - | ||
| - | | - | ||
Строка 202: | Строка 215: | ||
|- | |- | ||
<!--T:28--> | |||
|91||holding||RW||20 (200 ms)||× 10 ms | |91||holding||RW||20 (200 ms)||× 10 ms | ||
||Время усреднения шума | ||Время усреднения шума | ||
Строка 211: | Строка 225: | ||
|- | |- | ||
<!--T:29--> | |||
|92 | |92 | ||
||holding | ||holding | ||
Строка 222: | Строка 237: | ||
|- | |- | ||
<!--T:30--> | |||
|93 | |93 | ||
||holding | ||holding | ||
Строка 236: | Строка 252: | ||
<!--T:31--> | |||
|- | |- | ||
|95 | |95 | ||
Строка 261: | Строка 278: | ||
<!--T:8--> | <!--T:8--> | ||
|97||holding||RW||0 — 10 | |97||holding||RW||0||0 — 10 c | ||
||Период между вспышками сигнальных светодиодов | ||Период между вспышками сигнальных светодиодов | ||
| - | | - | ||
Строка 273: | Строка 290: | ||
<!--T:9--> | <!--T:9--> | ||
|98||holding||RW||0 — 50 | |98||holding||RW||0||0 — 50 мс | ||
||Длительность вспышки светодиодов | ||Длительность вспышки светодиодов | ||
| - | | - | ||
Строка 300: | Строка 317: | ||
<!--T:32--> | |||
|100 | |100 | ||
||input | ||input | ||
Строка 329: | Строка 347: | ||
<!--T:33--> | |||
|103 | |103 | ||
||holding | ||holding | ||
Строка 395: | Строка 414: | ||
| 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | | 112 || holding || RW || 2 || || количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | ||
|colspan="5"|все | |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 || запись в регистр вызывает перезагрузку модуля без сохранения состояния | ||
Строка 441: | Строка 464: | ||
|- | |- | ||
|280||input||R|| || | |280||input||R|| || | ||
||Максимальное значение датчика движения | ||Максимальное значение датчика движения за установленное время окна (Max motion) | ||
| - | | - | ||
| - | | - | ||
Строка 450: | Строка 473: | ||
|- | |- | ||
|281||input||R|| || | |281||input||R|| || | ||
|| | ||Служебный регистр: сырое значение с АЦП датчика движения | ||
| - | | - | ||
| - | | - | ||
Строка 468: | Строка 491: | ||
|- | |- | ||
|283||input||R|| || | |283||input||R|| || | ||
||Текущее усредненное значение движения в условных единицах | ||Текущее усредненное значение движения в условных единицах (Current motion) | ||
| - | | - | ||
| - | | - | ||
Строка 478: | Строка 501: | ||
<!--T:17--> | <!--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. | |||
|} | |} | ||
Строка 488: | Строка 566: | ||
!С версии прошивки | !С версии прошивки | ||
|- | |- | ||
| 0 || 1 || style="text-align:left" |Включение пищалки (buzzer) || | | 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-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 ( | | 2 || 1 || style="text-align:left" | Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 || WB-MS (2017 г. и новее), WB-MSW v.3, WB-MSW2, | ||
|3.2.0 | |3.2.0 | ||
|- | |- | ||
Строка 503: | Строка 581: | ||
|4.1.0 | |4.1.0 | ||
|- | |- | ||
| 10 || 1 || style="text-align:left" | Включение | | 10 || 1 || style="text-align:left" | Включение красного светодиода || WB-MSW v.3 | ||
| | | | ||
|- | |- | ||
| 11 || 1 || style="text-align:left" | Включение | | 11 || 1 || style="text-align:left" | Включение зеленого светодиода || WB-MSW v.3 | ||
| | | | ||
|- | |- | ||
Строка 538: | Строка 616: | ||
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр. | ||
</translate> | </translate> |
Текущая версия на 11:25, 17 ноября 2020
Карта регистров датчиков WB-MS и WB-MSW
Карта регистров хранения (Holding Registers)
Регистр/ адрес | Тип | Чтение/ запись | Значение по умолчанию или при ошибке | Формат | Назначение | Поддерживается в | С версии
прошивки | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
WB-MS (код модели) | WB-MS v2 (код модели) | WB-MSW | WB-MSW2 | WB-MSW v.3 | |||||||
0 | input | R | 0x7FFF | °C × 10 (signed) | Температура с встроенного датчика | T | - | - | + | + | |
1 | input | R | 0xFFFF |
|
Относительная влажность с встроенного датчика | H | - | + | + | + | |
2 | input | R | - | лк | (регистр не используется в датчиках WB-MSW, вместо него регистры 9 и 10) Освещённость с встроенного датчика |
L | Lux | - | - | - | |
3 | input | R | - | дБ × 100 | Уровень шума, умноженный на 100 | S | - | + | S | S | |
4 | input | R | 0x7FFF | °C × 100 (signed) | Температура с встроенного датчика | + | + | - | - | + | 4.2 |
5 | input | R | - | %RH × 100 (signed) | Относительная влажность с встроенного датчика | + | + | - | - | + | 4.2 |
6 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | D | + | - | - | - | |
7 | input | R | 0x7FFF | °C × 16 (signed) | Температура с внешнего датчика | D | + | - | - | - | |
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 - канал высокоуровневых шумов |
msw v.3.4 | 4.15.0 | ||||
87 | input | R | 0 | Служебный регистр HOLD_REG_SPL_HIGHGAIN_RAW_INT | 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 | Время усреднения освещённости |
|
- | - | - | - | |
91 | holding | RW | 20 (200 ms) | × 10 ms | Время усреднения шума | S | - | + | S | S | |
92 | holding | RW | 0 | x0.0625 | Служебный регистр HOLD_REG_SPL_RAW_OFFSET - сдвиг значения АЦП | - | - | S | S | S | 4.9.0 |
93 | holding | RW | 0 | x0.1dB | Служебный регистр HOLD_REG_SPL_OFFSET - поправка к значению уровня шума | - | - | S | S | S | 4.9.0 |
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 |
97 | holding | RW | 0 | 0 — 10 c | Период между вспышками сигнальных светодиодов | - | - | - | - | + | 3.13.0 |
98 | holding | RW | 0 | 0 — 50 мс | Длительность вспышки светодиодов | - | - | - | - | + | 3.13.0 |
99 | holding | RW | 16 | 1 = 0.0625C | (доступно с версии прошивки 3.10.0) Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на значение регистра*0.0625C. Запишите 0, чтобы отключить фильтр. | D | + | - | - | - | 3.10.0 |
100 | input | R | Служебный регистр HOLD_REG_SPL_RAW_INT | - | - | S | S | S | |||
101 | input | R | Служебный регистр HOLD_REG_TH_READS | все | |||||||
102 | input | R | Служебный регистр HOLD_REG_TH_ERRORS | все | |||||||
103 | holding | RW | Служебный регистр HOLD_REG_ILLUMINANCE_MODE | + | + | + | - | - | |||
104-105 | input | R | 32-bit unsigned int | Время работы устройства (uptime counter) в секундах | все | ||||||
106 | input | R | Служебный регистр INPUT_REG_SGPC3_BASELINE | - | - | - | - | + | |||
107 | input | R | Служебный регистр INPUT_REG_SGPC3_RAW_SIGNAL | - | - | - | - | + | |||
108 | input | R | 0xFFFF | Служебный регистр SGPC3 VERSION | - | - | - | - | + | 4.2 | |
110 | holding | RW | 96 | baud rate / 100 | скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 (Настройка параметров обмена данными по RS-485 для modbus-устройств Wiren Board) |
все | >3.1.0 | ||||
111 | holding | RW | 0 | настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even) | все | ||||||
112 | holding | RW | 2 | количество стоп-битов порта RS-485. Допустимые значения: 1, 2 | все | ||||||
113 | holding | RW | 8 | мс | Задержка перед отправкой ответного пакета по RS-485 | все | 4.15.0 | ||||
120 (0x78) | holding | RW | 0 | отличное от 0 | запись в регистр вызывает перезагрузку модуля без сохранения состояния | все | |||||
121 (0x79) | input | R | - | mV | текущее напряжение питания модуля | все | |||||
128 (0x80) | holding | RW | 1 | Modbus-адрес устройства | все | ||||||
129 (0x81) | holding | RW | 0 | 0 или 1 | Переход в режим загрузчика | все | 4.5.0 | ||||
200-206 | input | R | см. Сигнатура устройства | сигнатура | все | ||||||
220-241 | input | R | __date__ __time__ | дата сборки прошивки | все | ||||||
245 | holding | RW | 0 | °C × 100 (signed) | Температурная компенсация самонагрева для датчика температуры и влажности (значение вычитается из измереной температуры) | + | - | - | - | + | 4.2 |
250-269 | input | R | строка, null-terminated | версия прошивки | все | ||||||
270-271 | input | R | 32-bit unsigned int | уникальный идентификатор (S/N) | все | ||||||
280 | input | R | Максимальное значение датчика движения за установленное время окна (Max motion) | - | - | - | - | + | |||
281 | input | R | Служебный регистр: сырое значение с АЦП датчика движения | - | - | - | - | + | |||
282 | holding | RW | 10 | с | Ширина временного окна для вычисления максимального усредненного значения датчика движения (от 1 до 60 секунд) | - | - | - | - | + | |
283 | input | R | Текущее усредненное значение движения в условных единицах (Current motion) | - | - | - | - | + |
Входы 1-W устройства можно сконфигурировать как счётные входы:
Регистр/ адрес | Тип | Чтение/ запись | Значение по умолчанию | Формат | Назначение | Версии прошивки |
---|---|---|---|---|---|---|
275 | holding | RW | 0 | 0 или 1 | Режим входа №1: 0 - 1-wire, 1 - дискретный вход | >=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)
Регистры, связанные с ИК-управлением, описаны в статье WB-MSx_Consumer_IR_Manual.
Начальный адрес | Количество | Назначение | В модификациях | С версии прошивки |
---|---|---|---|---|
0 | 1 | Включение пищалки (buzzer) | WB-MSW v.3, WB-MSW2 | |
1 | 1 | Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm | WB-MSW v.3, WB-MSW2 | |
2 | 1 | Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 | WB-MS (2017 г. и новее), WB-MSW v.3, WB-MSW2, | 3.2.0 |
3 | 1 | Включение датчика CO2 (1-вкл, 0-выкл) | WB-MSW v.3 | 4.1.0 |
10 | 1 | Включение красного светодиода | WB-MSW v.3 | |
11 | 1 | Включение зеленого светодиода | WB-MSW v.3 |
Сигнатура устройства
По адресу 200 хранится сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
Модуль | Сигнатура |
---|---|
WB-MS | WBMS,'0x00','0x00' |
WB-MSW | WBMSW,'0x00' |
WB-MSW2 | WBMSW2 |
WB-MSW v.3 | WBMSW3 |
Для получения сигнатуры устройства нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.