Карта Modbus-регистров RGBW-диммеров

Материал из Wiren Board

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

Прошивка 3.0

Условные обозначения
RO / RW Read only / Read/Write
Выделено жирным Значение регистра по умолчанию
xN Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.

Не указан — считать равным 1

Регистр поддерживает отправку данных с помощью событий Быстрого Modbus.
FW Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда.
Error: Значение при ошибке
Серый цвет ячейки Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки
Modbus-регистры устройства
Адрес Параметры регистра no_description Канал Описание Значения FW
Dec Hex Тип Доступ Формат
Состояние входов и счётчики нажатий
0 0x0000 Discrete Input RO bool Вход 1 Состояние 0 - неактивен
1 - активен
1 0x0001 Вход 2
2 0x0002 Вход 3
3 0x0003 Вход 4
32 0x0020 Input RO u16 Вход 1 Счётчик замыканий 0 − 65535
по кругу
33 0x0021 Вход 2
34 0x0022 Вход 3
35 0x0023 Вход 4
464 0x01D0 Input RO u16 Вход 1 Счётчик короткого нажатия 0 − 65535
по кругу
465 0x01D1 Вход 2
466 0x01D2 Вход 3
467 0x01D3 Вход 4
480 0x01E0 Input RO u16 Вход 1 Счётчик долгого нажатия 0 − 65535
по кругу
481 0x01E1 Вход 2
482 0x01E2 Вход 3
483 0x01E3 Вход 4
496 0x01F0 Input RO u16 Вход 1 Счётчик двойного нажатия 0 − 65535
по кругу
497 0x01F1 Вход 2
498 0x01F2 Вход 3
499 0x01F3 Вход 4
512 0x0200 Input RO u16 Вход 1 Счётчик короткого, а затем долгого нажатия 0 − 65535
по кругу
513 0x0201 Вход 2
514 0x0202 Вход 3
515 0x0203 Вход 4
Состояние выходов
0 0x0000 Coil RW bool Канал 1 Состояние при независимой работе 0 - выключен
1 - включён
1 0x0001 Канал 2
2 0x0002 Канал 3
3 0x0003 Coil RW bool Канал 4 Состояние при независимой работе или в режиме RGB+W 0 - выключен
1 - включён
4 0x0004 Coil RW bool Каналы 1 и 2 Состояние при параллельной работе 0 - выключен
1 - включён
5 0x0005 Каналы 3 и 4
6 0x0006 Каналы 1, 2, 3, 4
7 0x0007 Coil RW bool Каналы 1 и 2 Состояние каналов при работе с CCT лентой 0 - выключен
1 - включён
8 0x0008 Каналы 3 и 4
9 0x0009 Coil RW bool Каналы 1, 2, 3 Состояние каналов при работе с RGB лентой 0 - выключен
1 - включён
10 0x00010 Coil RW bool Каналы 1, 2, 3, 4 Непрерывная смена цвета RGB ленты 0 - выключен
1 - включён
Управление каналами
2000 0x07D0 Holding RW u16 Канал 1 Яркость при независимой работе x1, %
0 - 100 (50)
Error: 0xFFFF
2001 0x07D1 Канал 2
2002 0x07D2 Канал 3
2003 0x07D3 Holding RW u16 Канал 4 Яркость при независимой работе x1, %
0 - 100 (50)
Error: 0xFFFF
2004 0x07D4 Holding RW u16 Каналы 1 и 2 Яркость при параллельной работе x1, %
0 - 100 (50)
Error: 0xFFFF
2005 0x07D5 Каналы 3 и 4
2006 0x07D6 Каналы 1, 2, 3, 4
2007 0x07D7 Holding RW u16 Каналы 1 и 2 Цветовая температура CCT ленты x1, %
0 - 100 (50)
* 0 - тёплый цвет
* 100 - холодный цвет
Error: 0xFFFF
2008 0x07D8 Holding RW u16 Каналы 1 и 2 Яркость CCT ленты x1, %
0 - 100 (50)
Error: 0xFFFF
2009 0x07D9 Holding RW u16 Каналы 3 и 4 Цветовая температура CCT ленты x1, %
0 - 100 (50)
* 0 - тёплый цвет
* 100 - холодный цвет
Error: 0xFFFF
2010 0x07DA Holding RW u16 Каналы 3 и 4 Яркость CCT ленты x1, %
0 - 100 (50)
Error: 0xFFFF
2011 0x07DB Holding RW u16 Компонент R в цвете RGB ленты, RGB палитра x1
0 - 255 (127)
Error: 0xFFFF
2012 0x07DC Компонент G
2013 0x07DD Компонент B
2014 0x07DE Holding RW u16 Компонент H в цвете RGB ленты, HSV палитра x1, градус
0 - 360
Error: 0xFFFF
2015 0x07DF Компонент S x1, %
0 - 100
Error: 0xFFFF
2016 0x07E0 Компонент V x1, %
0 - 100 (50)
Error: 0xFFFF
2017 0x07E1 Holding RW u16 Скорость непрерывного изменения цвета RGB ленты, период увеличения Hue на 1 градус x1, миллисекунды %
3 - 10000 (30)
Error: 0xFFFF
Настройка выходов и прямое управление ШИМ выходов
70 0x0046 Канал 1 Минимальный ШИМ Holding register RW u16 0 – 2048 6
71 0x0047 Канал 2
72 0x0048 Канал 3
73 0x0049 Канал 4
80 0x0050 Канал 1 Максимальный ШИМ Holding register RW u16 0 – 2048 2048
81 0x0051 Канал 2
82 0x0052 Канал 3
83 0x0053 Канал 4
90 0x005A Канал 1 Прямое управление Holding register RW u16 0 – 2048 0
91 0x005B Канал 2
92 0x005C Канал 3
93 0x005D Канал 4
Обработка типов нажатий
1100 0x044C Вход 1 Время удержания входа в замкнутом состоянии для фиксации долгого нажатия Holding register RW u16 1 мс 500 - 5000 2000 -
1101 0x044D Вход 2
1102 0x044E Вход 3
1103 0x044F Вход 4
1120 0x0460 Вход 1 Скорость изменения параметра при удержании кнопки Holding register RW u16 1 мс/ед. 5 - 500 20
1121 0x0461 Вход 2
1122 0x0462 Вход 3
1123 0x0463 Вход 4
1140 0x0474 Вход 1 Время двойного нажатия Holding register RW u16 1 мс 100 - 2000 500
1141 0x0475 Вход 2
1142 0x0476 Вход 3
1143 0x0477 Вход 4
1160 0x0488 Вход 1 Время подавления дребезга Holding register RW u16 1 мс 5 - 200 50
1161 0x0489 Вход 2
1162 0x048A Вход 3
1163 0x048B Вход 4
Время изменения яркости, цветовой температуры и насыщенности цвета
3000 0x0BB8 Канал 1 Время увеличения яркости при независимой работе Holding register RW u16 1 мс 0 – 30000 100
3001 0x0BB9 Канал 2
3002 0x0BBA Канал 3
3003 0x0BBB Канал 4
3004 0x0BBC Каналы 1 и 2 Время увеличения яркости при параллельной работе Holding register RW u16 1 мс 0 – 30000 100
3005 0x0BBD Каналы 3 и 4
3006 0x0BBE Каналы 1, 2, 3, 4
3007 0x0BBF Каналы 1 и 2 Время увеличения цветовой температуры CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3008 0x0BC0 Каналы 1 и 2 Время увеличения яркости CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3009 0x0BC1 Каналы 3 и 4 Время увеличения цветовой температуры CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3010 0x0BC2 Каналы 3 и 4 Время увеличения яркости CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3011 0x0BC3 HSV-H Время увеличения цвета RGB ленты Holding register RW u16 1 мс 0 – 30000 100
3012 0x0BC4 HSV-S Время увеличения насыщенности цвета RGB ленты Holding register RW u16 1 мс 0 – 30000 100
3013 0x0BC5 HSV-V Время увеличения яркости RGB ленты Holding register RW u16 1 мс 0 – 30000 100
3100 0x0BB8 Канал 1 Время уменьшения яркости при независимой работе Holding register RW u16 1 мс 0 – 30000 100
3101 0x0BB9 Канал 2
3102 0x0BBA Канал 3
3103 0x0BBB Канал 4
3104 0x0BBC Каналы 1 и 2 Время уменьшения яркости при параллельной работе Holding register RW u16 1 мс 0 – 30000 100
3105 0x0BBD Каналы 3 и 4
3106 0x0BBE Каналы 1, 2, 3, 4
3107 0x0BBF Каналы 1 и 2 Время уменьшения цветовой температуры CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3108 0x0BC0 Каналы 1 и 2 Время уменьшения яркости CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3109 0x0BC1 Каналы 3 и 4 Время уменьшения цветовой температуры CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3110 0x0BC2 Каналы 3 и 4 Время уменьшения яркости CCT ленты Holding register RW u16 1 мс 0 – 30000 100
3111 0x0BC3 HSV-H Время уменьшения цвета RGB ленты Holding register RW u16 1 мс 0 – 30000 100
3112 0x0BC4 HSV-S Время уменьшения насыщенности цвета RGB ленты Holding register RW u16 1 мс 0 – 30000 100
3113 0x0BC5 HSV-V Время уменьшения яркости RGB ленты Holding register RW u16 1 мс 0 – 30000 100
Общие для всех режимов настройки
9 0x0009 Настройка частоты ШИМ выходов Holding register RW u16 1 1 – 240
F = 24 kHz / value
8
4000 0x0FA0 Настройка режима работы диммера Holding register RW u16 Код режима можно взять в таблице режимов работы 256

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 формате