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

Строка 13: Строка 13:
=== Карта регистров датчиков ===
=== Карта регистров датчиков ===


{|  border="1" class="wikitable" style="text-align:center; width:1000px;"
=== Карта регистров хранения (Holding Registers)===
!Регистр / адрес
 
!Тип
В процессе наполнения.
!Чтение/запись
 
!Значение по умолчанию
{|  border="1" class="wikitable" style="text-align:center"
!Формат
!Регистр/ адрес
!Назначение
!тип
!чтение/ запись
!значение по умолчанию
!формат
!назначение
!к каким модификациям датчика применимо
|-
 
| 0 || input || R || 0x7FFF ||°C × 10 (signed)||Температура с встроенного датчика
|T
|-
|-
| 0 — x || coil || RW || - || 1 или 0|| состояние реле 1 — '''x'''
|1|| input || R || 0xFFFF ||<blockquote>%RH × 10 (signed)</blockquote>||Относительная влажность с встроенного датчика
|H
|-
|-
| 0 — y || discrete || R || - || 1 или 0
|2
|| состояние входа 1 — '''y'''
|input
|R
|<nowiki>-</nowiki>
|lux
|Освещённость с встроенного датчика
|L
|-
|-
| 5
|3
| holding
|input
| RW
|R
| 0
|<nowiki>-</nowiki>
| style="text-align:left;" |
|dB
* '''0''': кнопки без фиксации
|Уровень шума
* '''1''': выключатель с фиксацией
|S
* '''3''': отключить управление с помощью кнопок
|| режим работы кнопок
|-
|-
| 6
|4
(только в прошивках 1.5.3 и позднее)
|input
|| holding || RW || 0 |
|R
| style="text-align:left;" |
|<nowiki>-</nowiki>
* '''0''': не сохранять состояние реле при отключении питания
|<nowiki>-</nowiki>
* '''1''': сохранять состояние реле при отключении питания
|<nowiki>-</nowiki>
|| режим работы реле в случае отключении питания
|
|-
|-
| 8 || holding || RW || 0 || секунды || таймаут для безопасного режима
|5
|input
|R
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|
|-
|-
| 9 — '''(9+x)''' || holding || RW || 0 |
|6
|style="text-align:left;" |
|input
* '''0''': кнопки без фиксации
|R
* '''1''': выключатель с фиксацией
|0x7FFF
* '''3''': отключить управление с помощью кнопок
|°C × 16 (signed)
|| режим работы входа N;
|Температура с внешнего датчика
в регистре 5 должен быть записан "0"
|D
|-
|-
| 32 — '''(32+y)'''|| input || R || 0 || 16-bit unsigned int || счетчик срабатываний входа 1 — '''y'''
|7
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с внешнего датчика
|D
|-
|-
| 120 (0x78) || holding || RW || 0 ||  отличное от 0 || запись в регистр вызывает перезагрузку модуля без сохранения состояния
|8
|input
|R
|
|PPM
|Концентрация CO2
|
|-
|-
| 121 (0x79) || holding || R || - || мВ || текущее напряжение питания модуля
 
|||||||||||
|
|-
|-
| 128 (0x80) || holding || RW || 1 || 1 — 247
|||||||||||
|| Modbus-адрес устройства
|
|-
|-
| 200-206 || holding || R || {'X','X','X','X','X','X'} || || сигнатура устройства (см. таблицу ниже)
|||||||||||
|
|-
|-
| 220-241 || holding || R || ||  __date__ __time__||  дата сборки прошивки
|90||holding||RW||20 (200 ms)||× 10 ms||Время усреднения освещённости
|<blockquote>L</blockquote>
|-
|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
|-
|-
|}
|}
По адресу 200 лежит сигнатура релейного модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
По адресу 200 лежит сигнатура релейного модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:


Строка 75: Строка 147:
! style="font-weight: bold;" | Сигнатура
! style="font-weight: bold;" | Сигнатура
|-
|-
| WB-MR6C
| WB-MIR
| WBMR6
| WBMIR
|-
|-
| WB-MR3xV
| WB-MR3xV
Строка 97: Строка 169:
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Значение состояния каждого реле хранится в регистрах флагов (coil). У 1-го реле адрес регистра 0, у 2-го &mdash; 1 и т.д.


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

правок