Непонятное значение метрик с WB-MAP3H

Самостоятельно считываем через modbus регистры энергии “AP energy L1”, “S energy L1” с интервалом 1 минута. Визуализация показала “зигзагообразное” поведение (по остальным L2, L3 наблюдается схожая картина). Насколько я понимаю, метрика имеет накопительный эффект и должна расти только вверх, но никак не вниз. Почему так происходит?

Добрый день!

Скорее всего неправильно читаете, число действительно должно расти только вверх. Можете прислать максимально подробные настройки ПО, которым читаете?

Формат данных у нас U64, little-endian. Это значит 4 регистра Modbus подряд, начиная с номера, который написан в документации.

Сообщение перенесено в новую тему: Подключить WB-MAP3H к старому контроллеру

Евгений, прикрепляю архив. В нём исходник, которым читаем девайс и лог результатов.
Message part: F467007400000000
Message part: F4F3007400000000
Message part: F57D007400000000
Message part: F608007400000000
Message part: F692007400000000
Message part: F720007400000000
Message part: F7AD007400000000
Message part: F839007400000000
Message part: F8C4007400000000
Message part: F94F007400000000
Message part: F9DA007400000000

это сырые данные регистра 0x1244 (S energy L1)
тут little endian, и видно как скачут (зизгазом) значения второго байта (а он старший)

Ага, я понял в чём дело, кажется. Little-endian в данном случае - это порядок слов, а не байт. Порядок байт в 16-битном слове (регистре) задаётся стандартом Modbus и является big-endian.

Т.е. значение у вас будет такое:

F9DA007400000000 = 0xF9DA + (0x0074 << 16) +  (0x0000 << 32) + (0x0000 << 48) = 0x74f9da 

дальше конвертируем в Ватты (В*А):

0x74f9da  * 3.125e-05 = 239.5668125


Евгений, спасибо. Теперь всё ровно

а если магнитик на него положить, вниз не, не пойдет? :slight_smile: