Таблица Modbus-регистров измеряемых и вычисляемых величин для счётчика WB-MAP3E, прошивка 2.x
Детальное описание погрешностей: Счетчики WB-MAP: измеряемые параметры и погрешности, их названия в веб-интерфейсе Wiren Board.
Обозначения в шаблонах
В таблицах регистров, описывающих измеряемые величины, используются следующие обозначения.
Для энергий (AP, AN, RP, RN, S, NP, NN): первая буква (A, R, S, N) — тип энергии, второй — направление:
- A — активная;
- R — реактивная;
- S — кажущаяся, вычисляется как URMS * IRMS;
- N — неактивная.
Направление:
- P — прямая (positive);
- N — обратная (negative).
В таблице описания регистров термин «Суммарная/суммарный» означает, что параметр вычисляется для всех трех фаз трехфазного канала. В случае с расхождением данных в таблице с шаблоном устройства, верным значением регистра считайте соответствующее значение из шаблона. Текущие версии шаблонов находятся по этой ссылке.
Примечания к названиям таблиц регистров
Таблицы регистров соответствуют шаблонам для счетчиков.
Версию прошивки счетчика можно проверить командой
echo -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyRS485-1 -a$mbusaddr -t0x03 -r250 -c 16 | grep Data | sed -e 's/0x00/\x/g' -e 's/Data://' -e 's/s//g'`| xxd -r -p && echo ''
Здесь $mbusaddr
— Modbus-адрес счетчика.
Порядок байт, широкие регистры, вычисление значения
Некоторые измеряемые счётчиками значения занимают больше 16 бит — размера одного регистра Modbus. Такие значения записываются в нескольких расположенных подряд регистрах: 32-битные в двух регистрах, а 64-битные — в четырёх. Некоторое стороннее ПО, например, ioBroker, воспринимают Signed 32 little endian, как signed 32 big endian word swap. Если у вас не сходятся расчётные результаты с показаниям в вашем софте — смените там тип.
В таблицах ниже для таких регистров указаны типы u32, u64 (без знака), s32 и s64 (со знаком). В качестве адреса в таблице указан адрес первого из идущих подряд регистров.
Порядок регистров при декодировании может быть прямым (big-endian) и обратным (little-endian). При этом порядок двух байт внутри одного 16-битного регистра всегда прямой, в соответствии со стандартом.
Пример: считываем четыре регистра 0x2200 – 0x2203:
Номер регистра |
0x2200 | 0x2201 | 0x2202 | 0x2203 |
---|---|---|---|---|
Содержимое регистра | 0хb4df | 0x0dff | 0x0000 | 0x0000 |
Смотрим в таблицу регистров:
Адрес | Параметры регистра | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | |||
8704 | 0x2200 | Input | RO | u64 little endian |
Ch 2 Total AP energy Суммарная прямая активная энергия для канала 2 |
х10-5, кВт·ч | 2.1 |
Порядок регистров little-endian — значит, регистры идут от младшего к старшему. Поэтому регистры объединяются в шестнадцатеричное число 0x0000 0000 0dff b4df
, оно же 234861791 в десятичной системе счисления. Для вычисления энергии нужно умножить его на число в столбце "Значения" (10-5 = 0.00001), поэтому в итоге получаем 2348.61791 кВт·ч.
Другими словами, чтобы получить итоговое число:
- 0x2200
- младшая часть — значение оставляем «как есть» : 0хb4dfhex = 46303dec
- 0x2201
- значение умножаем на 216 : 0x0dffhex = 3583dec, 3583 * 65536 = 234815488
- 0x2202
- значение умножаем на 232 : 0 * 4294967296 = 0
- 0x2203
- значение умножаем на 248 : 0 * 281474976710656 = 0
Суммируем результаты : 46303 + 234815488 + 0 + 0 = 234861791. Сумму умножаем на 0.00001 (переносим запятую на 5 знаков влево).
Регистры устройства
Обратите внимание на версию прошивки устройства — таблицы регистров в разных версиях отличаются. На этой странице описаны регистры прошивки 2.x, описание регистров прошивки 1.0.1.
RO / RW | Read only / Read/Write |
Выделено жирным | Значение регистра по умолчанию |
xN | Множитель, на который надо умножить число из регистра, чтобы получить значение в единицах измерения.
Не указан — считать равным 1 |
⚡ | Регистр поддерживает отправку данных с помощью событий Быстрого Modbus. |
FW | Версия прошивки устройства, с которой появился регистр. Пусто — регистр был всегда. |
Error: | Значение при ошибке |
Серый цвет ячейки | Служебный регистр: назначение, формат и содержимое может измениться в новых версиях прошивки |
Адрес | Параметры регистра | Описание | Значения | FW | |||
---|---|---|---|---|---|---|---|
Dec | Hex | Тип | Доступ | Формат | |||
5136 | 0x1410 | Input | RO | u16 big endian |
Urms L1 Напряжение (RMS) на фазе L1 |
x0.01, В Error: 0xFFFF |
2.1 |
5136 | 0x1410 | Input | RO | u32 big endian |
Urms L1 Напряжение (RMS) на фазе L1 (два последовательных регистра, повышенное разрешение) |
x1.52588e-07, В Error: 0xFFFFFFFF |
2.1 |
6160 | 0x1810 | Input | RO | s32 little endian |
Upeak L1 Пиковое значение напряжения на фазе L1 |
x0.01, В Error: 0xFFFFFFFF |
2.1 |
5138 | 0x1412 | Input | RO | u16 big endian |
Urms L2 Напряжение (RMS) на фазе L2 |
x0.01, В Error: 0xFFFF |
2.1 |
5138 | 0x1412 | Input | RO | u32 big endian |
Urms L2 Напряжение (RMS) на фазе L2 (два последовательных регистра, повышенное разрешение) |
x1.52588e-07, В Error: 0xFFFFFFFF |
2.1 |
6162 | 0x1812 | Input | RO | s32 little endian |
Upeak L2 Пиковое значение напряжения на фазе L2 |
x0.01, В Error: 0xFFFFFFFF |
2.1 |
5140 | 0x1414 | Input | RO | u16 big endian |
Urms L3 Напряжение (RMS) на фазе L3 |
x0.01, В Error: 0xFFFF |
2.1 |
5140 | 0x1414 | Input | RO | u32 big endian |
Urms L3 Напряжение (RMS) на фазе L3 (два последовательных регистра, повышенное разрешение) |
x1.52588e-07, В Error: 0xFFFFFFFF |
2.1 |
6164 | 0x1814 | Input | RO | s32 little endian |
Upeak L3 Пиковое значение напряжения на фазе L3 |
x0.01, В Error: 0xFFFFFFFF |
2.1 |
4344 | 0x10F8 | Input | RO | u16 big endian |
Frequency Частота |
x0.01, Гц | 2.1 |
4349 | 0x10FD | Input | RO | s16 big endian |
Voltage angle L1 Фазовый угол сдвига напряжения между фазами (всегда 0, отсчет ведется от фазы L1) |
x0.1, градус Error: 0xFFF |
2.1 |
4350 | 0x10FE | Input | RO | s16 big endian |
Voltage angle L2 Фазовый угол сдвига напряжения между фазами L1 и L2 |
x0.1, градус Error: 0xFFF |
2.1 |
4351 | 0x10FF | Input | RO | s16 big endian |
Voltage angle L3 Фазовый угол сдвига напряжения между фазами L1 и L3 |
x0.1, градус Error: 0xFFF |
2.1 |
5142 | 0x1416 | Input | RO | u16 big endian |
Irms L1 Ток (RMS) на фазе L1 |
x0.016, А | 2.1 |
5142 | 0x1416 | Input | RO | u32 big endian |
Irms L1 Ток (RMS) на фазе L1 (два регистра подряд, повышенное разрешение) |
x2.44141e-07, А | 2.1 |
6168 | 0x1818 | Input | RO | s32 little endian |
Ipeak L1 Пиковое значение тока на фазе L1 |
x0.016, А | 2.1 |
4866 | 0x1302 | Input | RO | s32 big endian |
P L1 Активная мощность для фазы L1 |
x0.00512, Вт | 2.1 |
4874 | 0x130A | Input | RO | s32 big endian |
Q L1 Реактивная мощность для фазы L1 |
x0.00512, вар | 2.1 |
4882 | 0x1312 | Input | RO | s32 big endian |
S L1 Кажущаяся мощность для фазы L1 |
x0.00512, В·А | 2.1 |
4285 | 0x10BD | Input | RO | s16 big endian |
PF L1 Коэффициент мощности для фазы L1 |
x0.001 | 2.1 |
4612 | 0x1204 | Input | RO | u64 little endian |
AP energy L1 Прямая активная энергия для фазы L1 |
x1e-05, кВт·ч | 2.1 |
4644 | 0x1224 | Input | RO | u64 little endian |
RP energy L1 Прямая реактивная энергия для фазы L1 |
x1e-05, квар·ч | 2.1 |
5144 | 0x1418 | Input | RO | u16 big endian |
Irms L2 Ток (RMS) на фазе L2 |
x0.016, А | 2.1 |
5144 | 0x1418 | Input | RO | u32 big endian |
Irms L2 Ток (RMS) на фазе L2 (два регистра подряд, повышенное разрешение) |
x2.44141e-07, А | 2.1 |
6170 | 0x181A | Input | RO | s32 little endian |
Ipeak L2 Пиковое значение тока на фазе L2 |
x0.016, А | 2.1 |
4868 | 0x1304 | Input | RO | s32 big endian |
P L2 Активная мощность для фазы L2 |
x0.00512, Вт | 2.1 |
4876 | 0x130C | Input | RO | s32 big endian |
Q L2 Реактивная мощность для фазы L2 |
x0.00512, вар | 2.1 |
4884 | 0x1314 | Input | RO | s32 big endian |
S L2 Кажущаяся мощность для фазы L2 |
x0.00512, В·А | 2.1 |
4286 | 0x10BE | Input | RO | s16 big endian |
PF L2 Коэффициент мощности для фазы L2 |
x0.001 | 2.1 |
4616 | 0x1208 | Input | RO | u64 little endian |
AP energy L2 Прямая активная энергия для фазы L2 |
x1e-05, кВт·ч | 2.1 |
4648 | 0x1228 | Input | RO | u64 little endian |
RP energy L2 Прямая реактивная энергия для фазы L2 |
x1e-05, квар·ч | 2.1 |
5146 | 0x141A | Input | RO | u16 big endian |
Irms L3 Ток (RMS) на фазе L3 |
x0.016, А | 2.1 |
5146 | 0x141A | Input | RO | u32 big endian |
Irms L3 Ток (RMS) на фазе L3 (два регистра подряд, повышенное разрешение) |
x2.44141e-07, А | 2.1 |
6172 | 0x181C | Input | RO | s32 little endian |
Ipeak L3 Пиковое значение тока на фазе L3 |
x0.016, А | 2.1 |
4870 | 0x1306 | Input | RO | s32 big endian |
P L3 Активная мощность для фазы L3 |
x0.00512, Вт | 2.1 |
4878 | 0x130E | Input | RO | s32 big endian |
Q L3 Реактивная мощность для фазы L3 |
x0.00512, вар | 2.1 |
4886 | 0x1316 | Input | RO | s32 big endian |
S L3 Кажущаяся мощность для фазы L3 |
x0.00512, В·А | 2.1 |
4287 | 0x10BF | Input | RO | s16 big endian |
PF L3 Коэффициент мощности для фазы L3 |
x0.001 | 2.1 |
4620 | 0x120C | Input | RO | u64 little endian |
AP energy L3 Прямая активная энергия для фазы L3 |
x1e-05, кВт·ч | 2.1 |
4652 | 0x122C | Input | RO | u64 little endian |
RP energy L3 Прямая реактивная энергия для фазы L3 |
x1e-05, квар·ч | 2.1 |
4864 | 0x1300 | Input | RO | s32 big endian |
Total P Суммарная активная мощность |
x0.00512, Вт | 2.1 |
4872 | 0x1308 | Input | RO | s32 big endian |
Total Q Суммарная реактивная мощность |
x0.00512, вар | 2.1 |
4880 | 0x1310 | Input | RO | s32 big endian |
Total S Суммарная кажущаяся мощность |
x0.00512, В·А | 2.1 |
4284 | 0x10BC | Input | RO | s16 big endian |
Total PF Суммарный коэффициент мощности |
x0.001 | 2.1 |
4608 | 0x1200 | Input | RO | u64 little endian |
Total AP energy Суммарная прямая активная энергия |
x1e-05, кВт·ч | 2.1 |
4640 | 0x1220 | Input | RO | u64 little endian |
Total RP energy Суммарная прямая реактивная энергия |
x1e-05, квар·ч | 2.1 |
4345 | 0x10F9 | Input | RO | s16 big endian |
Phase angle L1 Угол фазового сдвига между напряжением и током для фазы L1 |
x0.1, градус | 2.1 |
4346 | 0x10FA | Input | RO | s16 big endian |
Phase angle L2 Угол фазового сдвига между напряжением и током для фазы L2 |
x0.1, градус | 2.1 |
4347 | 0x10FB | Input | RO | s16 big endian |
Phase angle L3 Угол фазового сдвига между напряжением и током для фазы L3 |
x0.1, градус | 2.1 |
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
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.
Адрес | Параметры регистра | Описание | Значения | |||
---|---|---|---|---|---|---|
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 формате |