Power Meter WB-MAPxH документация

Добрый день!
Господа, может кто-то обладает информацией ниже, прошу поделиться.

  1. Где можно почитать более подробно о том, что имеется ввиду под терминами “input”, “u64” и “little endian” из таблицы на сайте
    https://wirenboard.com/wiki/index.php/Power_Meter_WB-MAP12H_Measuring_Registers

image
“input” по идее это “input registers”, которые читаются 4-ой функцией Модбас, а вот
“little endian”, как оказалось, тоже может относится как к байтам так и к словам.

Не могу прочитать 64-битные значения энергий, не пойму что делаю не так.

Прошу поделиться соображениями.

Shade, добрый день!

Я сошлюсь на нашу статью Драйвер wb-mqtt-serial:Примеры написания шаблонов, на раздел " WB-MAP3H". Там как раз расписан порядок байт в этих регистрах:

 big-endian    : ( [0xAA 0xBB] [0xCC 0xDD] => 0xAABBCCDD ) 
 little-endian : ( [0xAA 0xBB] [0xCC 0xDD] => 0xCCDDAABB )

Я для форума рисовал наглядную картинку, как хранятся биты little-endian в регистрах, повторю ее здесь:

1 лайк

Добрый день, Kilpio!
Спасибо за информацию, по little endian понятно, учитывал и такой вариант компоновки байтов.
Подозреваю:

  1. Либо неправильное толкование адресов регистров - прошу подтвердить что корректно обращаюсь - Модбас input_registers (чтение функцией 4), адреса с заменой “х” на “1” (счетчик WB-MAP3H)

    То есть для считывания “Суммарной прямой активной энергии” нужно обращаться в регистр 0x1200 (десятичный адрес - 4608)?
  2. Либо проблема в том, что в используемом нами OPC используется double (со знаком), а у вас беззнаковая переменная.
    Не могли бы Вы побитно расписать формат “u64”? Как это показано на примере по ссылке
    https://ru.wikipedia.org/wiki/Число_двойной_точности
    63-й (последний) бит используется как-то? Или не несет никакой информации?

Кажется разобрался. Под u64 имеется ввиду беззнаковое целое? Не стандартный дабл с плавающей точкой???

Да, совершенно верно, это “Unsigned 64-bit integer”, сейчас дополню документацию на wiki, спасибо!
Вся эта информация зарыта в wb-mqtt-serial.schema.json, о котором речь идет в статье.

Да, слово “integer” в документации думаю мне сэкономила бы времени:). Почему то я убедил себя, что это должна быть “плавающая точка” и никак не мог от этого отойти… Спасибо!

Вам спасибо, помогли нам улучшить документацию!