Sensors Modbus Management/en: различия между версиями

Материал из Wiren Board
(Новая страница: «| 110 || holding || RW|| 96 || baud rate / 100 || RS-485 port speed, '''divided by 100'''. Permissible speeds: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200…»)
(Новая страница: «===Coils=== Registers related to IR control are described in WB-MSx_Consumer_IR_Manual/en.»)
Строка 413: Строка 413:
|}
|}


===Карта регистров флагов (Coils)===
===Coils===
Регистры, связанные с ИК-управлением, описаны в статье [[WB-MSx_Consumer_IR_Manual]].
Registers related to IR control are described in [[WB-MSx_Consumer_IR_Manual/en]].


{|  border="1" class="wikitable" style="text-align:center"
{|  border="1" class="wikitable" style="text-align:center"

Версия 10:45, 19 июля 2019

Другие языки:


Modbus parameters

Modbus address

Modbus-the address of the Wiren Board devices is easy to determine — it is printed on the sticker (the address is in decimal format). The new address of the device is written by the command WRITE_SINGLE_REGISTER to the storage register (holding register) with the address 128 (0x80). For details on how to determine (if the address has been changed) or change the Modbus address of the module, see Define and change the Modbus address of Wirenboard devices.

Modbus commands supported by the device

The Wirenboard sensors support all major Modbus commands. Read more here: Register reading and writing function codes.

Holding Registers

Register/ address Type Read/ write default or error Value Format Purpose Supported in From version

insertions

WB-MS (model code) WB-MS v2 (model code) WB-MSW WB-MSW2 WB-MSW V. 3
0 input R 0x7FFF °C × 10 (signed) Temperature with built-in sensor T - - + +
1 input R

%RH × 10 (signed)

relative humidity with built-in sensor H - + + +
2 input R - LC "(register is not used in WB-MSW sensors, registers 9 and 10 instead)"
Illumination from built-in sensor
L Lux - - -
3 input R - dB × 100 Noise level multiplied by 100 S - + S S
4 input R 0x7FFF °C × 100 (signed) Temperature with built-in sensor + + - - + 4.2
5 input R - %RH × 100 (signed) Relative humidity with built-in sensor + + - - + 4.2
6 input R 0x7FFF °C × 16 (signed) Temperature from external sensor D + - - -
7 input R 0x7FFF °C × 16 (signed) Temperature from external sensor D + - - -
8 input R 0xFFFF PPM CO2 concentration - - After C
9-10 input R LC The illumination, multiplied by 100 (9 - high-order, 10 — LSB luminance values) - - + L
11 input R 0xFFFF PPM Air quality - VOC - - +
88 holding RW 0 ppm (400-1500) Manual calibration of CO2 sensor. For calibration, write down here the current CO2 concentration measured by another instrument - - - C C 3.12
89 holding RW 0xFF days' Cycle time for co sensor self-calibration algorithm (ABC) - - - C C 3.12
90 holding RW 20 (200 ms) × 10 ms light averaging Time

L, B

- - - -
91 holding RW 20 (200 ms) × 10 ms Noise averaging time S - + S S
95 holding RW 1 1 or 0 CO2 sensor (ABC) auto-calibration to atmospheric CO2 - - - After C
96 holding R 2000 / 5000 ppm (available from firmware version 3.5.0) CO2 concentration measurement Range. Valid values: 2000, 5000, 10000. - - - C C 3.5.0
97 holding RW 0 — 10 c Period between flashes of signal LEDs - - - - + 3.13.0
98 holding RW 0 — 50 MS Led flash duration - - - - + 3.13.0
99 holding RW 16 1 = 0.0625 C (available from firmware version 3.10.0) suspicious value Filter for 1-Wire sensors (85.000 C, 127.937 C). The values are discarded if the previous value differs from the suspicious value by more than * 0.0625 C. Write 0 to disable the filter. D + - - - 3.10.0
101 input R Service register HOLD_REG_TH_READS all
102 input R Service register HOLD_REG_TH_ERRORS all
104-105 input R 32-bit unsigned int uptime counter in seconds all
106 input R Service register INPUT_REG_SGPC3_BASELINE - - - - +
107 input R Service register INPUT_REG_SGPC3_RAW_SIGNAL - - - - +
108 input R 0xFFFF Sgpc3 VERSION service register - - - - + 4.2
110 holding RW 96 baud rate / 100 RS-485 port speed, divided by 100. Permissible speeds: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200
(configure RS-485 communication parameters for wiren Board modbus devices)
all >3.1.0
111 holding RW 0 configure the RS-485 port parity bit. Valid values: 0 - no parity bit (none), 1 - odd (odd), 2 - even (even) all
112 holding RW 2 number of stop bits of RS-485 port. Valid values: 1, 2 all
120 (0x78) holding RW 0 non-0 writing to the register causes the module to restart without saving state all
121 (0x79) input R - mV current supply voltage of the module all
128 (0x80) holding RW 1 Modbus device address all
129 (0x81) holding RW 0 0 or 1 Go to bootloader mode all 4.5.0
200-206 input R see Device signature signature all
220-241 input | | | _date__ _time__ firmware build date all
245 holding RW 0 °C × 100 (signed) Self-heating temperature compensation for temperature and humidity sensor (value is subtracted from measured temperature) + - - - + 4.2
250-269 input | | / string, null-terminated firmware version all
270-271 input R 32-bit unsigned int unique identifier (S/N) all
280 input R Maximum value of motion sensor with ADC - - - - +
281 input R Value of the motion sensor with ADC - - - - +
282 holding RW 10 s The width of the time window for calculating the maximum average value of the motion sensor (from 1 to 60 seconds) - - - - +
283 input R Current average value of movement in conventional units - - - - +

Coils

Registers related to IR control are described in WB-MSx_Consumer_IR_Manual/en.

Начальный адрес Количество Назначение В модификациях С версии прошивки
0 1 Включение пищалки (buzzer) WB-MSW2, WB-MSW v.3
1 1 Принудительная калибровка встроенного датчика CO2. Включать после 20 минут работы при уровне CO2, равном 400 ppm WB-MSW2
2 1 Включение подогрева (heater) в микросхеме сенсора температуры и влажности HDC1080 WB-MS (в серии 2017 г.), WB-MSW2, WB-MSW v.3 3.2.0
3 1 Включение датчика CO2 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 регистр.

Управление модулем из командной строки

Программное обеспечение контроллера 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'`

В результате выполнения команды получаем строку, например WBMS. Модуль WB-MS в примере имеет Modbus-адрес 1.