Compound_Registr

Не нашел удобоваримого описания, что за зверь?
По моему рассуждению если это групповой запрос к устройству с последующей разборкой принятого пакета по словам, то и запрос к устройству должен идти пакетом, скажем задаете два регистра по 32, так и читать с устройства надо последовательно 4 регистра (по 16 бит). а они читаются разными запросами для каждого регистра. И в чем смысл такой группировки. О при этом сами устройства WB правильно читаются неразрывными пакетами. Видно по логу и осциллографу.
Что скажет WB?

Добрый день.
Командой 0x03 и так можно прочитать несколько последовательных регистров. Ну и 0x10 - записать.
Или имеется в виду реализация в wb-mqtt-serial?

Конечно, поддержка в mqtt. работаю по этому протоколу и хотелось использовать драйвер производителя. Может как задачу на ближайшие пару месяцев себе поставите?

@Jakov добрый день!

К сожалению, я ничего не понял. Пожалуйста приложите конфиг или шаблон устройства, логи, по которым вы делаете вывод, что что-то работает неправильно.

Естественно, никакого тайного знаения у нашего софта про “устройства WB” нет - вся логика определяется исключительно шаблоном. Драйвер wb-mqtt-serial объединяет чтение нескольких регистров в одну команду modbus, если:

  1. все регистры расположены последовательно, между ними нет промежутков
  2. в шаблоне задан параметр max_read_registers и он разрешает команду такой длины
  3. у всех каналов одинаковый poll_interval