Получение дополнительных данных со счетчика Меркурий-236

Здравствуйте, столкнулся с проблемой при отправке запросов на счетчик меркурий-236.
Счетчик подключен к RS485-2, в качестве шаблона взял меркурий 230, в настройках включил “каналы заданные пользователем”.

В протоколе производителя указаны адреса команд на чтение.


Судя по логам, контроллер использует либо 08h, либо 05h, далее следует команда, допустим я собираюсь отправить запрос <адрес счетчика hex><08> с командой - <11>, ее я указал в настройках на первом скрине. Вот скрины протокола:


Далее я заглядываю в логи и вижу такую картину:

В нижней части видно что отправляется команда 61 05 1f 01, т.е. вместо 11f0 отправляется 1f01, как так получается я не понимаю, и каким образом выбирается команда на чтение тоже не понятно. Перепробовал множество команд, кроме тех что уже в шаблоне ни одна не работает корректно. Возможно я чего то не знаю, так как я еще новичек в этом деле.

Добрый день.
Пришлите диагностический архив, ревизию контроллера и версию ПО.
Правильно я понимаю, что выбранный вами шаблон работает и все параметры без ошибок читаются?
Дело в том, что насколько я понимаю, счетчик работает по своему протоколу “Меркурий” - его описания у меня нет, а по представленной вами информации не совсем понимаю, что вы делаете, и чего ожидаете.
Предположу, что код команды задается в адресе регистра, а в адресе регистра вы задаете только код параметра и BWRI.

Добрый день.
Получилось ли у вас решить вашу проблему?

День добрый, не получилось.

Выполните рекомендации выше и сообщите о результате.

Хорошо, как будет время, займусь этим вопросом.

приложен диагностический архив, доступен только сотрудникам поддержки
(136.7 KB)
Ревизия контроллера - 7.3.4
Версия ПО - wb-2310

По поводу кода команды, задаю аналогично шаблону, т.е. 0x->код_параметра->BWRI

Пришлите фото счетчика.
Также ответьте на предыдущие вопросы:

Но вам необходимо считать параметры, отсутствующие в шаблоне?

Пришлите документ на счетчик из которого вы присылаете скрины по “Мгновенным значениям”.

Фото счетчика:


Протокол взаимодействия:
Описание протокола взаимодействия со счётчиком Меркурий 236 версия ПО 8.0.0 M234 версия ПО 9.0.0 v. 131211.pdf (501.9 KB)
Параметры из шаблона считывает правильно.
Необходимые мне параметры: Серийный номер счетчика, Суммарная потребленная активная/реактивная энергия, Суммарная потребленная активная/реактивная энергия по тарифам, Дата и время.

Я думаю, вам необходимо работать с счетчиком для чтения вспомогательных параметров через RPC-MQTT.
Есть пример в документации.

Также замечу, что в описании реализации протокола Меркурия указано, что “Код команды задаётся в адресе регистра, при этом младший байт задаёт смещение данных в ответе”. По вашему скрину вижу, что вы не задаете код команды в адресе регистра, а сразу указываете код параметра.
Но тогда, к примеру, для считывания серийного номера в ответе стоит ожидать 7 байт. Но среди форматов поддерживаемых подобного не вижу.

Создавал канал по примеру из шаблона. Вот к примеру часть конфигурационного файла:
Screenshot_20240305_152721
В адресе регистра идут номер параметра и BWRI и все. Для примера делаю так же в своем тестовом канале:


В логах все верно:


Судя по всему внутренняя логика сама решает какой будет код команды опираясь на тип регистра (reg_type). Не понятно еще к чему привязывать формат(format).

Все-таки я бы попробовал RPC-MQTT. Таким образом можно отправить конкретную команду на чтение и посмотреть, что отвечает счетчик.
На скрине я вижу запрос от стандартной части шаблона. Уберите опрос стандартных каналов счетчика и тогда можно проследить, что запрашивает драйвер и что получает в ответ при настроенном вами канале.