WB-MS Modbus Sensor: различия между версиями

Нет описания правки
Строка 128: Строка 128:
|}
|}


== Управление ==
=== Обмен данными ===
На физическом уровне модуль подключается через интерфейс [[RS-485]]. Для управления WB-MR6C используется протокол Modbus RTU. В устройствах Wirenboard данные Modbus передаются по линиям связи RS-485. Подробнее смотрите страницу [[Протокол Modbus]]. Modbus-адрес модуля задается на заводе и нанесен на наклейке на его боковой стороне. Адрес может быть изменен программно. Подробно смотрите в разделе [[#Управление_по_Modbus|Управление по Modbus]].


=== Параметры RS-485 ===
== Монтаж ==
Скорость 9600 бит/сек, данных - 8 бит, бит чётности – нет, стоповых бит - 2.
Релейный модуль монтируется на стандартную DIN-рейку шириной 35 мм и занимает ширину 3 DIN-модуля.


В датчиках с версией прошивки 3.1.0 и позднее эти настройки можно изменить - смотрите таблицу регистров Modbus.
Блоки безвинтовых зажимов на плате реле служат для подключения линий питания, управления (RS-485) и входных контактов. При использовании при монтаже наконечников типа НШВИ для установки проводов в безвинтовые зажимы необходимо, чтобы диаметр изолированных манжет не превышал 3,6 мм, сечение провода — 0,75 мм<sup>2</sup>, а длина проводящей втулки — 5—6 мм. Винтовые зажимы принимают провод сечением 2,5—4 мм<sup>2</sup>. Сечение провода должно соответствовать коммутируемой нагрузке.  


=== Команды Modbus, поддерживаемые устройством ===
При подключении коммутируемых устройств к контактам реле K1, K2 и K3 важно не превышать рекомендованный ток — 10 А.


{| border="1" class="wikitable" style="text-align:center"
Ток, протекающий при замыкании кнопки или выключателя, невелик, так что тип кнопки или выключателя может быть любым. Несмотря на встроенную защиту от дребезга, выбирайте качественные кнопки и выключатели, чтобы исключить ложные срабатывания из-за плохих контактов. Осторожно — в модификации HV на клеммах присутствует высокое напряжение!
!Command
!Dec
!Hex
|-
|READ_COIL || 1 || 0x01
|-
|READ_HOLDING_REGISTERS || 3 || 0x03
|-
|WRITE_SINGLE_COIL || 5 || 0x05
|-
|WRITE_SINGLE_REGISTER || 6 || 0x06
|-
|WRITE_MULTI_COILS || 15 || 0x0F
|-
|WRITE_MULTI_REGISTERS || 16 || 0x10
|-
|}


=== Функции===
Если устройство — последнее на линии RS-485, то между его входами A и B необходимо установить резистор-терминатор сопротивлением 120 Ом. Практика показывает, что в случае стендовых испытаний при небольшой длине линии RS-485 и небольшом количестве устройств терминатор на последнем устройстве в линии можно не устанавливать.


'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).
Модуль необходимо устанавливать таким образом, чтобы удовлетворять требованиям электробезопасности и не допускать случайного касания контактов, находящихся под высоким напряжением. Модуль должен эксплуатироваться при рекомендованных условиях окружающей среды.


По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель.
[[File:Installation_WBMR6C_+_WB5.png|650px|thumb|center|Образец монтажа и подключения модуля WB-MR6C. Выбор качественного блока питания очень важен для работы модуля. Кнопка с проводами зеленого цвета, подключенная ко входу 0 модуля, отключает все каналы одновременно.]]
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.


==== Инфракрасный приёмопередатчик ====
== Управление модулем через web-интерфейс Wiren Board ==
('''только в модификации I''')


[[WB-MSx_Consumer_IR_Manual|Инструкция по работе с ИК-приёмопередатчиком]]


=== Карта регистров хранения (Holding Registers)===


В процессе наполнения.


{|  border="1" class="wikitable" style="text-align:center"
== Управление по Modbus ==
!Регистр/ адрес
!тип
!чтение/ запись
!значение по умолчанию
!формат
!назначение
!к каким модификациям датчика применимо
|-


| 0 || input || R || 0x7FFF ||°C × 10 (signed)||Температура с встроенного датчика
Подробно о работе с модулем по протоколу Modbus написано в разделе [[Relay Module Modbus Management|Управление модулями реле Wirenboard по протоколу Modbus]].
|T
Там же можно найти карту регистров устройства.
|-
|1|| input || R || 0xFFFF ||<blockquote>%RH × 10 (signed)</blockquote>||Относительная влажность с встроенного датчика
|H
|-
|2
|input
|R
|<nowiki>-</nowiki>
|lux
|Освещённость с встроенного датчика
|L
|-
|3
|input
|R
|<nowiki>-</nowiki>
|dB
|Уровень шума
|S
|-
|4
|input
|R
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|
|-
|5
|input
|R
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|<nowiki>-</nowiki>
|
|-
|6
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с внешнего датчика
|D
|-
|7
|input
|R
|0x7FFF
|°C × 16 (signed)
|Температура с внешнего датчика
|D
|-
|8
|input
|R
|
|PPM
|Концентрация CO2
|
|-
 
|||||||||||
|
|-
|||||||||||
|
|-
|||||||||||
|
|-
|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
|-
|}
 
===Карта регистров флагов (Coils)===
 
 
{|  border="1" class="wikitable" style="text-align:center"
!Начальный адрес || Количество || Назначение
!В модификациях
|-
| 0 || number_of_banks || style="text-align:left" |Воспроизведение ИК-команды из соответствующего банка
|I
|-
| 1000 || number_of_banks|| style="text-align:left" |Чтение и запись в банки команд IR
|I
|-
| 2000 || number_of_banks || style="text-align:left" |Запись в банк команд IR использую IR-приёмник
|I
|-
| 5000 || 1 || style="text-align:left" |Очистка всех банков ИК-команд
|I
|-
| 5001 || 1 || style="text-align:left" |Запись ИК-команды с ИК-приёмника в Modbus регистры хранения (2000-2509), без сохранения в банк команд
|I
|-
| 5002 || 1 || style="text-align:left" |Воспроизведение ИК-команды из Modbus регистров хранения (2000-2509)
|I
|-
 
|}
5813

правок