Подключение Энергомера се303

Добрый день.

Имеется контроллер Wiren Board 6. Подключеный к контроллеру счетчик Энергомера СЕ303 по инструкции.
Что мы желаем получить: забирать показания со счетчика по протоколу Modbus RTU при помощи собственного программного решения.
Что мы имеем: показания с счётчика не отображаются в веб-интерфейсе контроллера, не можем подключиться к счетчику программным решением по протоколу Modbus RTU.
Что мы сделали:

  • установили контроллер в рейку рядом со счетчиком;
  • подключили счетчик к контроллеру согласно инструкции;
  • подключили контроллер к ЛВС;
  • развернули на сервере собственное решение;
  • с сервера имеется доступ до контроллера по ip (заходит в интерфейс);
  • на контроллере настроили подключение согласно инструкции (Использование счётчика Энергомера CE303 с контроллером Wiren Board — Wiren Board);
  • в устройствах появился данный счётчик, но показаний никаких нет (прочерки);
  • на контроллере настроили Modbus RTU шлюз согласно инструкции (Шлюз Modbus RTU/TCP — Wiren Board).

Подскажите, в чем может быть причина или что было сделано не так?
Есть инструкция в которой по пунктам расписано, что и где нужно указать, чтобы получить желаемый результат при использовании указанных устройств.

Добрый день.
Во-первых благодарю за качественное, хорошее описание. Редко такое вижу.

Каким из интерфейсов подключались к счетчику? Если RS-485 - то покажите подключение к самому счетчику, к контроллеру (фото), настройки связи.
также пришлите, пожалуйста, архив с диагностической информацией контроллера. Создание архива описано в инструкции.

Так, а покажите логи сервиса wb-mqtt-serial?

Добрый день. Запросил с объекта где установлено оборудование требуемую информацию.

Подключались по rs-485, но возможности сфотографировать в данный момент нет, так как всё уже опламбировано. Специалист утверждает, что подключал по инструкции http://www.energomera.ru/ru/products/meters/ce303s31

архив с диагностической информацией
log_20220825T062325.log (4.7 КБ)

логи сервера wb-mqtt-serial

Создайте пожалуйста архив, вот так: Создание архива описано в инструкции.
Приведенного фрагмента совершенно недостаточно.

Я вижу перезапуск wb-mqtt-serial. Также приложите файл /etc/wb-mqtt-serial.conf

wb-mqtt-serial.conf (1.3 КБ)

В логе вижу:

what():  Can't change </dev/ttyRS485-1 9600 8 N 2> byte format. Set port settings to 8N1, please

Настройте порт как указано в документации: Использование счётчика Энергомера CE303 с контроллером Wiren Board — Wiren Board

изменили, не помогло

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

В зависимости от того как настроен wb-mqtt-mbgate, какие регистры и их адреса заданы.
Если по MQTT - то просто на адрес контроллера.

подключаемся через modbus rtu при помощи modbus-tk/modbus_rtu.py at master · ljean/modbus-tk · GitHub

в wb-mqtt-mbgate (Шлюз Modbus TCP — Wiren Board) указан последовательный порт (вроде бы так назывался) вместо modbus tcp. Или как правильно сделать?

Так, для начала нужно все ж определить какой тип передачи будет использоваться для работы, если хотите использовать именно Modbus over TCP - тут простого решения нет…
Почему не Modbus TCP?

Изначально у нас была работа только с MOXA к которой подключались по Modbus RTU, мы под нее и делали.

Хотелось бы сейчас настроить работу через RTU, в дальнейшем добавим TCP.

RTU - wb-mqtt-mbgate поддерживает через один из аппаратных портов контроллера. Один - занят, как я помню, счетчиком. Значит - нужно конфигурировать на второй и подключаться к нему. На каком этапе возникает пробема?

Доброе утро.
Проблема в понимании, что сделать далее по пунктам. (например, перейти в настройки шлюза, выбрать такой-то пункт, указать такое значение и т.д.)
Сейчас мы имеем: контроллер + подключеный к нему по rs-485 счётчик. Контроллер получает данные со счётчика.
Что мы хотим: получить данные со счётчика программным решением через modbus rtu.

Итак, по порядку.
Вот тут описание: Шлюз Modbus RTU/TCP — Wiren Board
В контроллере уже есть топики с данными, полученными со счетчика (в общем неважно откуда).
Любой MQTT топик контроллера может быть представлен регистром (или несколькими) в slave устройстве. Создаем конфиг порта так:


Ну и добавляем регистр, типа input, например. Удобно если у регистров будет один и тот же адрес устройства “ID данных Modbus”.
Попробуйте с одним регистром для эксперимента.
Mbgate - довольно простой, на самам деле, шлюз, который позволяет името через modbus доступ к MQTT.

т.е. я правильно понимаю, что нам потребуется:

  1. в “конфигурация режима modbus rtu/tcp-slave” настроить rtu на подключение со счетчиком;
  2. в разделе “Register bindings” в “Input Registers” выбираем требуемые регистры.
  3. подключаемся своим программным решение к modbus rtu

Вопрос в правильности действий. Все ли верно понял?
Подключение по ip-адресу контроллера, а какой порт указывать?

Нет. Счетчик уже настроен и никаких дечтвий с ним делать не нужно.

Да, верно.

RTU поддразумевает подключение к RS-485 порту. То есть к аппаратному порту.

мы включаем регистры и обращаемся к ним по ip-адрес_контроллера:id_данных_Modbus?

Повторюсь: ip-адрес подразумевает Modbus TCP Modbus RTU - это аппаратный RS485 порт.
То есть чтобы обращаться по “ip-адресу” следует выбрать режим работы mbgate “TCP” и работать используя Modbus TCP протокол.

а если мы выберем modbus tcp, то ip-адрес и порт оставляем без изменения?
подключаемся по ip-адрес_контроллера:502?