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


#1

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


#2

#3

Добрый день!

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

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


#4

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


#5

Евгений, прикрепляю архив. В нём исходник, которым читаем девайс и лог результатов.
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, и видно как скачут (зизгазом) значения второго байта (а он старший)


#6

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

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

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

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

0x74f9da  * 3.125e-05 = 239.5668125

#7


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


#8

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