Периферийные устройства с интерфейсом RS-485 серии WB-xxxx: различия между версиями

Материал из Wiren Board
Строка 41: Строка 41:
Значение каждого реле хранится в COIL. У 1го реле адресс 0, у 2го - 1 и т.д.
Значение каждого реле хранится в COIL. У 1го реле адресс 0, у 2го - 1 и т.д.


Так же поддерживается безопасный режим, при прекращение общения по modbus устройство отключает оба реле по прошествии x времени.  
==== Безопасный режим ====
В этом режиме при прекращение обмена данными по modbus устройство отключает оба реле по прошествии заданного времени.  
Для включения безопасного режима нужно записать значение отличное от 0 в HOLDING_REGISTER по адресу 2. Это значение - таймаут в секундах.
Для включения безопасного режима нужно записать значение отличное от 0 в HOLDING_REGISTER по адресу 2. Это значение - таймаут в секундах.


Так же поддерживается отключение кнопок, для этого нужно записать число 255(0xFF) в HOLDING_REGISTER по адресу 5.


Значение кнопок можно прочесть из HOLDING_REGISTER по адресу 6. 0 бит - 1я нопка, 1бит - 2я кнопка.
==== Кнопки  ====
Поведением по-умолчанию является прямое управление каналами реле. Отключить управление каналами с помощью кнопок можно, записав число 255(0xFF) в HOLDING_REGISTER по адресу 5.
 
В любом режиме работы, текущее состояние кнопок можно прочесть из HOLDING_REGISTER по адресу 6. 0 бит - 1я нопка, 1бит - 2я кнопка.
 
 
==== Карта регистров ====
{| border="1" cellpadding="5" cellspacing="0"
!Регистр / адрес
!тип
!чтение/запись
!формат
!назначение
|-
 
| 0 || coil || RW || 1 or 0|| состояние реле #1
|-
| 1 || coil || RW ||  1 or 0 ||состояние реле #2
|-
 
| 2 || holding || RW || seconds || таймаут для безопасного режима
|-
| 5 || holding || RW || 0: прямое управление каналами, 0xFF: отключить управление || режим работы кнопок
|-
 
| 6 || holding || R || bitmask, 0 бит - 1я нопка, 1бит - 2я кнопка.|| состояние кнопок
|-
 
| 0x80 || holding || RW || || Modbus-адрес устройства
|-
 
| 200-206 || holding || R || {'W','B','M','R','2',0} || сигнатура
|-
 
 
|}
 
 
 
 


=== WB-MRGB Димер RGB ===
=== WB-MRGB Димер RGB ===

Версия 12:52, 7 марта 2015

Общие команды и понятия для ModBus устройств

Команды поддерживаемые устройством

Command command (dec)
READ_COIL 1
WRITE_SINGLE_COIL 5
WRITE_MULTI_COILS 15
READ_HOLDING_REGISTERS 3
WRITE_SINGLE_REGISTER 6
WRITE_MULTI_REGISTERS 16



Смена адреса производится широковещательным сообщением (id 0) WRITE_SINGLE_REGISTER(6) с адресом 128(0x80).

Каждое устройство содержит свой заводской id. Для его получения нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.

Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.

WB-MRM2 Реле 2х канальное

Значение каждого реле хранится в COIL. У 1го реле адресс 0, у 2го - 1 и т.д.

Безопасный режим

В этом режиме при прекращение обмена данными по modbus устройство отключает оба реле по прошествии заданного времени. Для включения безопасного режима нужно записать значение отличное от 0 в HOLDING_REGISTER по адресу 2. Это значение - таймаут в секундах.


Кнопки

Поведением по-умолчанию является прямое управление каналами реле. Отключить управление каналами с помощью кнопок можно, записав число 255(0xFF) в HOLDING_REGISTER по адресу 5.

В любом режиме работы, текущее состояние кнопок можно прочесть из HOLDING_REGISTER по адресу 6. 0 бит - 1я нопка, 1бит - 2я кнопка.


Карта регистров

Регистр / адрес тип чтение/запись формат назначение
0 coil RW 1 or 0 состояние реле #1
1 coil RW 1 or 0 состояние реле #2
2 holding RW seconds таймаут для безопасного режима
5 holding RW 0: прямое управление каналами, 0xFF: отключить управление режим работы кнопок
6 holding R bitmask, 0 бит - 1я нопка, 1бит - 2я кнопка. состояние кнопок
0x80 holding RW Modbus-адрес устройства
200-206 holding R {'W','B','M','R','2',0} сигнатура



WB-MRGB Димер RGB

Управление светодиодами производится числом (0-255) с последующей экспоненциальной итерполяцией на 12 битный шим.

Значение хранится в HOLDING_REGISTER. по адресам 0 - 2 для R G B соответственно.

Так же поддерживается отключение кнопок, для этого нужно записать число 255(0xFF) в HOLDING_REGISTER по адресу 5.

Значение кнопок можно прочесть из HOLDING_REGISTER по адресу 6. 0 бит - 1я нопка, 1бит - 2я кнопка.