Jump to content

Счётчики электроэнергии серии MAP: таблица Modbus-регистров измеряемых и вычисляемых величин

From Wiren Board
This is the approved revision of this page, as well as being the most recent.

Детальное описание погрешностей: Счетчики WB-MAP: измеряемые параметры и погрешности, их названия в веб-интерфейсе Wiren Board.

Служебные регистры — серийный номер, номер партии, версия прошивки, напряжение питания и температура микроконтроллера, настройки порта RS-485: Счетчики WB-MAP: параметры подключения, версия прошивки и другие служебные регистры.

Обозначения в шаблонах

В таблицах регистров, описывающих измеряемые величины, используются следующие обозначения.

Для энергий (AP, AN, RP, RN, S, NP, NN): первая буква (A, R, S, N) — тип энергии, второй — направление:

  • A — активная;
  • R — реактивная;
  • S — кажущаяся, вычисляется как URMS x 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-битного регистра всегда прямой, в соответствии со стандартом.

Словам в столбце «Формат» соответствуют такие раскладки четырёх байт, где A — старший байт, D — младший:

В таблице Раскладка Как склеивать
big endian ABCD первым идёт старшее слово
little endian CDAB первым идёт младшее слово, байты внутри каждого слова прямые

Это важно, если счётчик опрашивает не контроллер Wiren Board, а сторонний ПЛК или SCADA. В них под «little endian» нередко понимают DCBA — перевёрнутыми все четыре байта. У счётчиков WB-MAP это не так: переставлены только слова, байты внутри слова стандартные.

Раскладка четырёхбайтового значения в двух регистрах: A — старший байт, D — младший

Регистры с типом Input читаются функцией 0x04, с типом Holding — функцией 0x03.

Пример для 32-битного значения. Оно занимает два соседних регистра: в первом 0xFAF0, во втором 0x0002. Младшее слово идёт первым, поэтому число — 0x0002FAF0, то есть 195312; дальше его умножают на множитель из столбца «Значения». Если те же байты склеить как DCBA, получится 0x0200F0FA = 33616122 — в 172 раза больше: такая ошибка видна сразу по бессмысленному результату.

Пример: считываем четыре регистра 0x2200 – 0x2203:

Номер регистра
0x2200 0x2201 0x2202 0x2203
Содержимое регистра 0xb4df 0x0dff 0x0000 0x0000

Смотрим в таблицу регистров:

Modbus-регистры устройства
Адрес Параметры регистра Описание Значения FW
Dec Hex Тип Доступ Формат
8704 0x2200 Input RO u64
little endian
Ch 2 Total AP energy
Суммарная прямая активная энергия для канала 2
x10−5, кВт·ч 2.1

Порядок регистров little-endian — значит, регистры идут от младшего к старшему. Поэтому регистры объединяются в шестнадцатеричное число 0x0000 0000 0dff b4df, оно же 234861791 в десятичной системе счисления. Для вычисления энергии нужно умножить его на число в столбце «Значения» (10−5 = 0.00001), поэтому в итоге получаем 2348.61791 кВт·ч.

Другими словами, чтобы получить итоговое число:

0x2200
младшая часть — значение оставляем «как есть»: 0xb4dfhex = 46303dec
0x2201
значение умножаем на 216: 0x0dffhex = 3583dec, 3583 x 65536 = 234815488
0x2202
значение умножаем на 232: 0 x 4294967296 = 0
0x2203
значение умножаем на 248: 0 x 281474976710656 = 0

Суммируем результаты: 46303 + 234815488 + 0 + 0 = 234861791. Сумму умножаем на 0.00001 (переносим точку на 5 знаков влево).

WB-MAP12E

См. Таблица регистров измеряемых и вычисляемых величин WB-MAP12E

WB-MAP12H

См. Таблица регистров измеряемых и вычисляемых величин WB-MAP12H

WB-MAP6S

См. Таблица регистров измеряемых и вычисляемых величин WB-MAP6S

WB-MAP3H

См. Таблица регистров измеряемых и вычисляемых величин WB-MAP3H

WB-MAP3E

См. Таблица регистров измеряемых и вычисляемых величин WB-MAP3E