WB Dimmers Modbus Registers Map: различия между версиями

Материал из Wiren Board
(→‎Прошивка 1.0: перенес формулу ШИМ в описание, иначе было плохо понятно)
Строка 1269: Строка 1269:
|RW
|RW
|0
|0
|freq = 24 кГц / (value + 1) (0 - 239)
|0 - 239
|частота ШИМ *
|частота ШИМ *  <p>freq = 24 кГц / (value + 1) <p>
|
|
|-
|-

Версия 14:11, 1 февраля 2022

Регистры устройства

Прошивка 3.0

Версия 3.0 пока в разработке, подробнее читайте на форуме.

Wbincludes:Header Relay Registers |- ! colspan="13" style="text-align: left;"| Состояние входов и счётчики нажатий |- | class ="text-right" | 0 | 0x0000 | class="nowrap"| Вход 1 | rowspan="4" | Состояние | rowspan="4" | Discrete Input | rowspan="4" | RO | rowspan="4" | bool | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 - неактивен
1 - активен | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 1 | 0x0001 | Вход 2 |- | class ="text-right" | 2 | 0x0002 | Вход 3 |- | class ="text-right" | 3 | 0x0003 | Вход 4 |- | class ="text-right" | 32 | 0x0020 | Вход 1 | rowspan="4" | Счётчик замыканий | rowspan="4" | Input register | rowspan="4" | RO | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 − 65535
по кругу | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 33 | 0x0021 | Вход 2 |- | class ="text-right" | 34 | 0x0022 | Вход 3 |- | class ="text-right" | 35 | 0x0023 | Вход 4 |- | class ="text-right" | 464 | 0x01D0 | Вход 1 | rowspan="4" | Счётчик короткого нажатия | rowspan="4" | Input register | rowspan="4" | RO | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 − 65535
по кругу | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 465 | 0x01D1 | Вход 2 |- | class ="text-right" | 466 | 0x01D2 | Вход 3 |- | class ="text-right" | 467 | 0x01D3 | Вход 4 |- | class ="text-right" | 480 | 0x01E0 | Вход 1 | rowspan="4" | Счётчик долгого нажатия | rowspan="4" | Input register | rowspan="4" | RO | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 − 65535
по кругу | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 481 | 0x01E1 | Вход 2 |- | class ="text-right" | 482 | 0x01E2 | Вход 3 |- | class ="text-right" | 483 | 0x01E3 | Вход 4 |- | class ="text-right" | 496 | 0x01F0 | Вход 1 | rowspan="4" | Счётчик двойного нажатия | rowspan="4" | Input register | rowspan="4" | RO | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 − 65535
по кругу | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 497 | 0x01F1 | Вход 2 |- | class ="text-right" | 498 | 0x01F2 | Вход 3 |- | class ="text-right" | 499 | 0x01F3 | Вход 4 |- | class ="text-right" | 512 | 0x0200 | Вход 1 | rowspan="4" | Счётчик короткого, а затем долгого нажатия | rowspan="4" | Input register | rowspan="4" | RO | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 − 65535
по кругу | rowspan="4" | | rowspan="4" class ="text-right" | 0 | rowspan="4" | |- | class ="text-right" | 513 | 0x0201 | Вход 2 |- | class ="text-right" | 514 | 0x0202 | Вход 3 |- | class ="text-right" | 515 | 0x0203 | Вход 4 |- ! colspan="13" style="text-align: left;"| Состояние выходов |- | class="text-right" | 0 | 0x0000 | Канал 1 | rowspan="3" | Состояние при независимой работе | rowspan="3" | Coil | rowspan="3" | RW | rowspan="3" | bool | rowspan="3" | | rowspan="3" | | rowspan="3" | 0 - включён
1 - выключен | rowspan="3" class="text-right" | 0 | rowspan="3" | | rowspan="3" | |- | class="text-right" | 1 | 0x0001 | Канал 2 |- | class="text-right" | 2 | 0x0002 | Канал 3 |- | class="text-right" | 3 | 0x0003 | Канал 4 | Состояние при независимой работе или в режиме RGB+W | Coil
| RW | bool | | | 0 - включён
1 - выключен | class="text-right" | 0 | | |- | class="text-right" | 4 | 0x0004 | Каналы 1 и 2 | rowspan="3" | Состояние при параллельной работе | rowspan="3" | Coil
| rowspan="3" | RW | rowspan="3" | bool | rowspan="3" | | rowspan="3" | | rowspan="3" | 0 - включён
1 - выключен | rowspan="3" class="text-right" | 0 | rowspan="3" | | rowspan="3" | |- | class="text-right" | 5 | 0x0005 | Каналы 3 и 4 |- | class="text-right" | 6 | 0x0006 | Каналы 1, 2, 3, 4 |- | class="text-right" | 7 | 0x0007 | Каналы 1 и 2 | rowspan="2" | Состояние каналов при работе с CCT лентой | rowspan="2" | Coil
| rowspan="2" | RW | rowspan="2" | bool | rowspan="2" | | rowspan="2" | | rowspan="2" | 0 - включён
1 - выключен | rowspan="2" class="text-right" | 0 | rowspan="2" | | rowspan="2" | |- | class="text-right" | 8 | 0x0008 | Каналы 3 и 4 |- | class="text-right" | 9 | 0x0009 | Каналы 1, 2, 3 | Состояние каналов при работе с RGB лентой | Coil
| RW | bool | | | 0 - включён
1 - выключен | class="text-right" | 0 | | |- | class="text-right" | 10 | 0x000A | Каналы 1, 2, 3, 4 | Непрерывная смена цвета RGB ленты | Coil

| RW | bool | | | 0 - включён
1 - выключен | class="text-right" | 0 | | |- ! colspan="13" style="text-align: left;"| Управление каналами |- | class="text-right" | 2000 | | 0x07D0 | | Канал 1 | rowspan="3" | Яркость при независимой работе | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | rowspan="3" | % | rowspan="3" | 0 – 100 | rowspan="3" class="text-right" | 50 | rowspan="3" | 0xFFFF | rowspan="3" | |- | class="text-right" | 2001 | | 0x07D1 | | Канал 2 |- | class="text-right" | 2002 | | 0x07D2 | | Канал 3 |- | class="text-right" | 2003 | 0x07D3 | Канал 4 | Яркость при независимой работе или в режиме RGB+W | Holding register | RW | u16 | class="text-right" | 1 | % | | class="text-right" | 50 | 0xFFFF | |- | class="text-right" | 2004 | | 0x07D4 | | Каналы 1 и 2 | rowspan="3" | Яркость при параллельной работе | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | rowspan="3" | % | rowspan="3" | | rowspan="3" class="text-right" | 50 | rowspan="3" | 0xFFFF | rowspan="3" | |- | class="text-right" | 2005 | | 0x07D5 | | Каналы 3 и 4 |- | class="text-right" | 2006 | | 0x07D6 | | Каналы 1, 2, 3, 4 |- | class="text-right" | 2007 | 0x07D7 | Каналы 1 и 2 | Цветовая температура CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | % | 0 – 100:
* 0 - тёплый цвет
* 100 - холодный цвет | class="text-right" | 50 | 0xFFFF | |- | class="text-right" | 2008 | 0x07D8 | Каналы 1 и 2 | Яркость CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | % | 0 – 100 | class="text-right" | 50 | 0xFFFF | |- | class="text-right" | 2009 | 0x07D9 | Каналы 3 и 4 | Цветовая температура CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | % | 0 – 100:
* 0 - тёплый цвет
* 100 - холодный цвет | class="text-right" | 50 | 0xFFFF | |- | class="text-right" | 2010 | 0x07DA | Каналы 3 и 4 | Яркость CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | % | 0 – 100 | class="text-right" | 50 | 0xFFFF | |- | class="text-right" | 2011 | | 0x07DB | | Компонент R | rowspan="3" | в цвете RGB ленты, RGB палитра | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | rowspan="3" | - | rowspan="3" | 0 – 255 | rowspan="3" class="text-right" | 127 | rowspan="3" | 0xFFFF | rowspan="3" | |- | class="text-right" | 2012 | | 0x07DC | | Компонент G |- | class="text-right" | 2013 | | 0x07DD | | Компонент B |- | class="text-right" | 2014 | | 0x07DE | | Компонент H | rowspan="3" | в цвете RGB ленты, HSV палитра | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | | градус | | 0 – 360 | class="text-right" | 0 | rowspan="3" | 0xFFFF | rowspan="3" | |- | class="text-right" | 2015 | | 0x07DF | | Компонент S | | % | | 0 – 100 | class="text-right" | 100 |- | class="text-right" | 2016 | | 0x07E0 | | Компонент V | | % | | | class="text-right" | 50 |- | class="text-right" | 2017 | 0x07E1 | | Скорость непрерывного изменения цвета RGB ленты, период увеличения Hue на 1 градус | Holding register | RW | u16 | class="text-right" | 1 | мс | 3 – 10000 | class="text-right" | 30 | 0xFFFF | |- ! colspan="13" style="text-align: left;"| Настройка выходов и прямое управление ШИМ выходов |- | class="text-right" | 70 | 0x0046 | Канал 1 | rowspan="4" | Минимальный ШИМ | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 – 2048 | rowspan="4" class="text-right" | 6 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 71 | 0x0047 | Канал 2 |- | class="text-right" | 72 | 0x0048 | Канал 3 |- | class="text-right" | 73 | 0x0049 | Канал 4 |- | class="text-right" | 80 | 0x0050 | Канал 1 | rowspan="4" | Максимальный ШИМ | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 – 2048 | rowspan="4" class="text-right" | 2048 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 81 | 0x0051 | Канал 2 |- | class="text-right" | 82 | 0x0052 | Канал 3 |- | class="text-right" | 83 | 0x0053 | Канал 4 |- | class="text-right" | 90 | 0x005A | Канал 1 | rowspan="4" | Прямое управление | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | 0 – 2048 | rowspan="4" class="text-right" | 0 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 91 | 0x005B | Канал 2 |- | class="text-right" | 92 | 0x005C | Канал 3 |- | class="text-right" | 93 | 0x005D | Канал 4 |- ! colspan="13" style="text-align: left;"| Обработка типов нажатий |- | class="text-right" | 1100 | 0x044C | Вход 1 | rowspan="4" | Время удержания входа в замкнутом состоянии для фиксации долгого нажатия | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс | rowspan="4" | 500 - 5000 | rowspan="4" class="text-right" | 2000 | rowspan="4" | - | rowspan="4" | |- | class="text-right" | 1101 | 0x044D | Вход 2 |- | class="text-right" | 1102 | 0x044E | Вход 3 |- | class="text-right" | 1103 | 0x044F | Вход 4 |- | class="text-right" | 1120 | 0x0460 | Вход 1 | rowspan="4" | Скорость изменения параметра при удержании кнопки | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс/ед. | rowspan="4" | 5 - 500 | rowspan="4" class="text-right" | 20 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1121 | 0x0461 | Вход 2 |- | class="text-right" | 1122 | 0x0462 | Вход 3 |- | class="text-right" | 1123 | 0x0463 | Вход 4 |- | class="text-right" | 1140 | 0x0474 | Вход 1 | rowspan="4" | Время двойного нажатия | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс | rowspan="4" | 100 - 2000 | rowspan="4" class="text-right" | 500 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1141 | 0x0475 | Вход 2 |- | class="text-right" | 1142 | 0x0476 | Вход 3 |- | class="text-right" | 1143 | 0x0477 | Вход 4 |- | class="text-right" | 1160 | 0x0488 | Вход 1 | rowspan="4" | Время подавления дребезга | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс | rowspan="4" | 5 - 200 | rowspan="4" class="text-right" | 50 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1161 | 0x0489 | Вход 2 |- | class="text-right" | 1162 | 0x048A | Вход 3 |- | class="text-right" | 1163 | 0x048B | Вход 4 |- ! colspan="13" style="text-align: left;"| Время изменения яркости, цветовой температуры и насыщенности цвета |- | class="text-right" | 3000 | 0x0BB8 | Канал 1 | rowspan="4" | Время увеличения яркости при независимой работе | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс | rowspan="4" | 0 – 30000 | rowspan="4" class="text-right" | 100 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 3001 | 0x0BB9 | Канал 2 |- | class="text-right" | 3002 | 0x0BBA | Канал 3 |- | class="text-right" | 3003 | 0x0BBB | Канал 4 |- | class="text-right" | 3004 | 0x0BBC | Каналы 1 и 2 | rowspan="3" | Время увеличения яркости при параллельной работе | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | rowspan="3" | мс | rowspan="3" | 0 – 30000 | rowspan="3" class="text-right" | 100 | rowspan="3" | | rowspan="3" | |- | class="text-right" | 3005 | 0x0BBD | Каналы 3 и 4 |- | class="text-right" | 3006 | 0x0BBE | Каналы 1, 2, 3, 4 |- style="vertical-align:bottom;" | class="text-right" | 3007 | 0x0BBF | Каналы 1 и 2 | Время увеличения цветовой температуры CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3008 | 0x0BC0 | Каналы 1 и 2 | Время увеличения яркости CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3009 | 0x0BC1 | Каналы 3 и 4 | Время увеличения цветовой температуры CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3010 | 0x0BC2 | Каналы 3 и 4 | Время увеличения яркости CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3011 | 0x0BC3 | HSV-H | Время увеличения цвета RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3012 | 0x0BC4 | HSV-S | Время увеличения насыщенности цвета RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3013 | 0x0BC5 | HSV-V | Время увеличения яркости RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- | class="text-right" | 3100 | 0x0BB8 | Канал 1 | rowspan="4" | Время уменьшения яркости при независимой работе | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" class="text-right" | 1 | rowspan="4" | мс | rowspan="4" | 0 – 30000 | rowspan="4" class="text-right" | 100 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 3101 | 0x0BB9 | Канал 2 |- | class="text-right" | 3102 | 0x0BBA | Канал 3 |- | class="text-right" | 3103 | 0x0BBB | Канал 4 |- | class="text-right" | 3104 | 0x0BBC | Каналы 1 и 2 | rowspan="3" | Время уменьшения яркости при параллельной работе | rowspan="3" | Holding register | rowspan="3" | RW | rowspan="3" | u16 | rowspan="3" class="text-right" | 1 | rowspan="3" | мс | rowspan="3" | 0 – 30000 | rowspan="3" class="text-right" | 100 | rowspan="3" | | rowspan="3" | |- | class="text-right" | 3105 | 0x0BBD | Каналы 3 и 4 |- | class="text-right" | 3106 | 0x0BBE | Каналы 1, 2, 3, 4 |- style="vertical-align:bottom;" | class="text-right" | 3107 | 0x0BBF | Каналы 1 и 2 | Время уменьшения цветовой температуры CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3108 | 0x0BC0 | Каналы 1 и 2 | Время уменьшения яркости CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3109 | 0x0BC1 | Каналы 3 и 4 | Время уменьшения цветовой температуры CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3110 | 0x0BC2 | Каналы 3 и 4 | Время уменьшения яркости CCT ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3111 | 0x0BC3 | HSV-H | Время уменьшения цвета RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3112 | 0x0BC4 | HSV-S | Время уменьшения насыщенности цвета RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- style="vertical-align:bottom;" | class="text-right" | 3113 | 0x0BC5 | HSV-V | Время уменьшения яркости RGB ленты | Holding register | RW | u16 | class="text-right" | 1 | мс | 0 – 30000 | class="text-right" | 100 | | |- ! colspan="13" style="text-align: left;"| Общие для всех режимов настройки |- | class="text-right" | 9 | 0x0009 | | Настройка частоты ШИМ выходов | Holding register | RW | u16 | class="text-right" | 1 | | 1 – 240
F = 24 kHz / value | class="text-right" | 8 | | |- | class="text-right" | 4000 | 0x0FA0 | | Настройка режима работы диммера | Holding register | RW | u16 | | | Смотрите таблицу режимов работы | class="text-right" | 0 | | |}

Wbincludes:Header Relay Registers |+ Действия по типам нажатий |- | class="text-right" | 1000 | 0x03E8 | Вход 1 | rowspan="4" | Действие при коротком нажатии | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | Смотрите формулу расчёта ниже | rowspan="4" class="text-right" | 0 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1001 | 0x03E9 | Вход 2 |- | class="text-right" | 1002 | 0x03EA | Вход 3 |- | class="text-right" | 1003 | 0x03EB | Вход 4 |- | class="text-right" | 1020 | 0x03FC | Вход 1 | rowspan="4" | Дейтсвие при долгом нажатии | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | Смотрите формулу расчёта ниже | rowspan="4" class="text-right" | 0 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1021 | 0x03FD | Вход 2 |- | class="text-right" | 1022 | 0x03FE | Вход 3 |- | class="text-right" | 1023 | 0x03FF | Вход 4 |- | class="text-right" | 1040 | 0x0410 | Вход 1 | rowspan="4" | Дейтсвие при двойном нажатии | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | Смотрите формулу расчёта ниже | rowspan="4" class="text-right" | 0 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1041 | 0x0411 | Вход 2 |- | class="text-right" | 1042 | 0x0412 | Вход 3 |- | class="text-right" | 1043 | 0x0413 | Вход 4 |- | class="text-right" | 1060 | 0x0424 | Вход 1 | rowspan="4" | Действие при коротком, а затем долгом нажатии | rowspan="4" | Holding register | rowspan="4" | RW | rowspan="4" | u16 | rowspan="4" | | rowspan="4" | | rowspan="4" | Смотрите формулу расчёта ниже | rowspan="4" class="text-right" | 0 | rowspan="4" | | rowspan="4" | |- | class="text-right" | 1061 | 0x0425 | Вход 2 |- | class="text-right" | 1062 | 0x0426 | Вход 3 |- | class="text-right" | 1063 | 0x0427 | Вход 4 |}

Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу:

0000 0000 0000 0000

Старшие 4 бита - тип действия:

  • 0 - нет действия
  • 0b0001 - установить coil регистр в 0
  • 0b0010 - установить coil регистр в 1
  • 0b0011 - переключить coil регистр 0 <-> 1
  • 0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки)
  • 0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки)
  • 0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии.

0000 0000 0000 0000

Младшие 12 бит - номер регистра без базового адреса. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит.

Value = (action << 12) | reg_number

Кнопки меняют значения modbus-регистров. Могут быть изменены значения только coil регистров включения (coil 0-10) и holding регистров данных (2000-2017).

Новый формат версионирования прошивок

Изменения относительно старого формата:

  • Диапазон регистров «Модель устройства» расширен до 20 регистров
  • Версия формируется согласно semver и имеет формат MAJOR.MINOR.PATCH с опциональным суффиксом (-rc|+wb)SUFFIX
    Суффикс -rc означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком
    Суффикс +wb добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком
  • Цифры версии доступны по отдельности в формате u16 (для суффикса - i16), регистры 320-323
  • Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки
    Число рассчитывается по формуле:
    if (SUFFIX >= 0) {
        SUFFIX = SUFFIX + 128;
    } else {
        SUFFIX = -1 - SUFFIX;
    }
    VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
    Число доступно для чтения в little-endian и big-endian форматах
    Число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную
    Таким образом обеспечивается корректное сравнение версий:
    1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10
    

Wbincludes:Header Registers | 200-219 | 0x00C8 - 0x00D8 | Модель устройства | Input register | RO | null-terminated string | | | | | |rowspan="7"| 3.0.0 |- | 320 | 0x0140 |rowspan="4"| Версия прошивки в числовом формате |rowspan="4"| Input register |rowspan="4"| RO |rowspan="4"| u16 | | | MAJOR | | |- | 321 | 0x0141 | | | MINOR | | |- | 322 | 0x0142 | | | PATCH | | |- | 323 | 0x0143 | | | SUFFIX | | |- | 324-325 | 0x0144 - 0x0144 | Версия прошивки в Little Endian формате | Input register | RO | u32 | | | | | |- | 326-327 | 0x0146 - 0x0147 | Версия прошивки в Big Endian формате | Input register | RO | u32 | | | | | |- |}

Прошивка 1.0

Текущая серийная версия прошивки.

Регистр / адрес тип чтение/запись значение по умолчанию формат назначение Примечание
0 holding RW - 0-255 Уровень канала G, логарифмическая кривая
1 holding RW - 0-255 Уровень канала R, логарифмическая кривая
2 holding RW - 0-255 Уровень канала B, логарифмическая кривая
3 holding RW - 0-255 Уровень канала W, логарифмическая кривая WB-MRGBW-D
5 holding RW 0 0: стандартный режим, 1: отключить управление режим работы кнопок
6 input R 1 - нажата, 0 - отпущена состояние кнопки 1
7 input R 1 - нажата, 0 - отпущена состояние кнопки 2
8 input R 1 - нажата, 0 - отпущена состояние кнопки 3 (WB-MRGBW-D)
9 holding RW 0 0 - 239 частота ШИМ *

freq = 24 кГц / (value + 1)

13 holding RW 100 x 10ms (2 - 500) Время плавного изменения яркости во время включения и выключения
32 input R 0 0 - 65535 и дальше снова 0 количество нажатий кнопки 1 с версии 1.1.1
33 input R 0 0 - 65535 и дальше снова 0 количество нажатий кнопки 2 с версии 1.1.1
34 input R 0 0 - 65535 и дальше снова 0 количество нажатий кнопки 3 с версии 1.1.1
* Для регистра 9 приведена формула расчёта частоты.
Значение регистра считается так: value=24кГц/freq−1, где freq — нужная частота.
По умолчанию в регистр записано 0 — это 24 кГц: 24/24−1=0
В регистр пишется только целое число, возможные значения:
0 - 24 кГц
1 - 12 кГц
2 - 8 кГц
3 - 6 кГц
4 - 5.4 кГц
5 - 4 кГц


Общие для всех Modbus-устройств Wiren Board регистры
Адрес Параметры регистра Описание Значения
Dec Hex Тип Доступ Формат
104­-105 0x0068 - 0x0069 Input RO u32 Время работы с момента загрузки секунды
121 0x0079 Input RO u16 Текущее напряжение питания мВ
110 0x006E Holding RW u16 Скорость порта RS-485.
Настройка параметров подключения по RS-485
x100, Боды
12 — 1200 бит/с,
24 — 2400 бит/с,
48 — 4800 бит/с,
96 — 9600 бит/с,
192 — 19 200 бит/с,
384 — 38 400 бит/с,
576 — 57 600 бит/с,
1152 — 115 200 Кбит/с
111 0x006F Holding RW u16 Настройка бита чётности порта RS-485 0 — нет бита чётности (none),
1 — нечётный,
2 — чётный
112 0x0070 Holding RW u16 Количество стоп-битов порта RS-485 1, 2
113 0x0071 Holding RW u16 Время перед отправкой ответа на modbus запрос 0 - 254 мс
114 0x0072 Holding RW u16 Режим непрерывного чтения регистров с зазором 0 - отключен
1 - включен
2 - включение сохраняется после перезагрузки
128 0x0080 Holding RW u16 Modbus-адрес устройства (подробнее)
120 0x0078 Holding RW u16 Перезагрузка устройства без сохранения состояния любое, отличное от 0 перезагружает устройство
129 0x0081 Holding RW u16 Перевод в режим обновления прошивки на 2 минуты любое, отличное от 0 переводит устройство в режим обновления прошивки
130 0x0082 Holding RW u8 Отключение индикатора состояния 0 - активен,
1 - отключен
123 0x007B Input RO u16 Напряжение на микроконтроллере мВ
124 0x007C Input RO u16 Внутренняя температура микроконтроллера x0.1, °C
200-205 0x00C8 - 0x00CD Input RO string Модель устройства
206-219 0x00CE - 0x00DB Input RO string Расширение модели устройства. Для новых устройств WB-LED и WB-MAI6 поле поддерживается изначально, для остальных - в прошивках с "быстрым Modbus". Для чтения модели устройства нужно читать диапазон из 20 регистров (200 - 219). Если устройство возвращает ошибку Illegal Data Address - читать 6 регистров (200 - 205).
220-248 0x00DC - 0x00F8 Input RO string Хэш коммита и название ветки откуда собрана прошивка (2 символа в регистре)
250-265 0x00FA - 0x0109 Input RO string Версия прошивки
266-269 0x010A - 0x010D Input RO u64 Расширение серийного номера
270-271 0x010E - 0x010F Input RO u32 Серийный номер
290-301 0x0122 - 0x012D Holding RO string Сигнатура прошивки
330-336 0x014A - 0x0150 Holding RO string Версия загрузчика


Версия прошивки в устройствах с «Быстрым Modbus»

В устройствах, поддерживающих Быстрый Modbus, используется другой формат обозначения версии прошивки.

  • Диапазон регистров «Модель устройства» расширен до 20 регистров.
  • Версия формируется согласно semver и имеет формат MAJOR.MINOR.PATCH с опциональным суффиксом (-rc|+wb)SUFFIX:
    суффикс -rc означает, что прошивка предназначена для тестирования и может быть нестабильной. Хранится в регистре с отрицательным знаком;
    суффикс +wb добавляется, когда к прошивке, зафиксированной в релизе, требуется выпустить фикс. Хранится в регистре с положительным знаком.
  • Цифры версии доступны по отдельности в формате u16 (для суффикса - s16), регистры 320-323.
  • Доступно число u32, содержащее комбинацию цифр версии и позволяющее за одно сравнение понять, увеличилась или уменьшилась версия прошивки:
    число рассчитывается по формуле
    if (SUFFIX >= 0) {
        SUFFIX = SUFFIX + 128;
    } else {
        SUFFIX = -1 - SUFFIX;
    }
    VERSION = (MAJOR << 24) + (MINOR << 16) + (PATCH << 8) + SUFFIX;
    число доступно для чтения в little-endian и big-endian форматах;
    число для более свежей версии всегда будет больше, чем для предыдущей, в том числе, когда прошивка переходит из тестовой в стабильную.
    Таким образом обеспечивается корректное сравнение версий:
    1.2.3-rc1 < 1.2.3-rc10 < 1.2.3 < 1.2.3+wb1 < 1.2.3+wb10.
    


Регистры для хранения версии прошивки в устройствах с быстрым Modbus
Адрес Параметры регистра Описание Значения
Dec Hex Тип Доступ Формат
200-219 0x00C8 - 0x00DB Input RO string Модель устройства
320 0x0140 Input RO u16 Версия прошивки в числовом формате MAJOR
321 0x0141 MINOR
322 0x0142 PATCH
323 0x0143 s16 SUFFIX
324-325 0x0144 - 0x0145 Input RO u32 Версия прошивки в числовом формате
326-327 0x0146 - 0x0147 Input RO u32 Версия прошивки в Big Endian формате