Wbincludes:MAP Data Registers Preface: различия между версиями
(Новая страница: «''Детальное описание погрешностей: Power Meter WB-MAP12H Measuring Parameters |Счетчики WB-MAP: измеряемые пар...») |
Brainroot (обсуждение | вклад) |
||
Строка 74: | Строка 74: | ||
|} | |} | ||
Порядок регистров little-endian - значит, регистры идут от младшего к старшему. Поэтому регистры объединяются в итоговое число 0x0000 0000 0dff b4df, оно же 234861791. Для вычисления энергии нужно умножить его на 10<sup>-5</sup>, поэтому в итоге получаем 2348.61791 кВт·ч. | Порядок регистров little-endian - значит, регистры идут от младшего к старшему. Поэтому регистры объединяются в итоговое число 0x0000 0000 0dff b4df, оно же 234861791. Для вычисления энергии нужно умножить его на 10<sup>-5</sup>, поэтому в итоге получаем 2348.61791 кВт·ч. | ||
Другими словами, чтобы получить итоговое число: | |||
; 0x2200 | |||
: '''младшая часть''' значение оставляем "как есть" | |||
; 0x2201 | |||
: значение умножаем на 2^16 (на 65536) | |||
; 0x2202 | |||
: значение умножаем на 2^32 (на 4294967296) | |||
; 0x2203 | |||
: значение умножаем на 2^48 (на 281474976710656) | |||
Суммируем результаты. | |||
Сумму умножаем на 0,00001 (переносим запятую на 5 знаков влево). |
Версия 12:51, 1 декабря 2020
Детальное описание погрешностей: Счетчики 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-битные - в четырёх.
В таблицах ниже для таких регистров указаны типы u32, u64 (без знака), s32 и s64 (со знаком). В качестве адреса в таблице указан адрес первого из подряд идущих регистров.
Порядок регистров при декодировании может быть прямой (big-endian) и обратный (little-endian). При этом порядок двух байт внутри одного 16-битного регистра всегда прямой в соответствии со стандартом.
Пример: считываем четыре регистра 0x2200 - 0x2203:
Номер регистра |
0x2200 | 0x2201 | 0x2202 | 0x2203 |
---|---|---|---|---|
Содержимое регистра | 0хb4df | 0x0dff | 0x0000 | 0x0000 |
Смотрим в таблицу регистров:
Регистр / адрес (hex) | Тип | Разрядность | Порядок регистров | Формат | Множитель | Параметр | Назначение | Единицы измерения | Прошивка |
---|---|---|---|---|---|---|---|---|---|
0x2200 | input | u64 | little endian | (power_consumption) | 1e-05 | Ch 2 Total AP energy | Суммарная прямая активная энергия для канала 2 | кВт·ч | 2.1 |
Порядок регистров little-endian - значит, регистры идут от младшего к старшему. Поэтому регистры объединяются в итоговое число 0x0000 0000 0dff b4df, оно же 234861791. Для вычисления энергии нужно умножить его на 10-5, поэтому в итоге получаем 2348.61791 кВт·ч.
Другими словами, чтобы получить итоговое число:
- 0x2200
- младшая часть значение оставляем "как есть"
- 0x2201
- значение умножаем на 2^16 (на 65536)
- 0x2202
- значение умножаем на 2^32 (на 4294967296)
- 0x2203
- значение умножаем на 2^48 (на 281474976710656)
Суммируем результаты. Сумму умножаем на 0,00001 (переносим запятую на 5 знаков влево).