Хочу рассказать про опыт подключения электросчетчика Eastron SDM220-Modbus и получения данных с него.
В целом ничего сложного нет, счетчик имеет стандартный интерфейс RS485 и поддерживает протокол Modbus.
Счетчик был куплен на aliexpress.
Для подключения был использован USB-RS485 адаптер собственного производства на базе FT232RL и SP485, но должно работать и с любым другим адаптером.
При подключении питания счетчик показывает текущие настройки, в том числе и скорость соединения, по умолчанию стояла скорость 2400, несмотря на то, что в даташине написана 9600. Я менял ее на 9600. Для этого нужно зажать на 3 сек. кнопку с угловой стрелкой, выбрать нужную настройку, изменить ее и и выйти из настроек зажав кнопку с круговыми стрелками.
Чтобы получить данные с устройства, нужно через адаптер usb-RS485 отправить в виртуальный com-порт 8-байтовый запрос:
Например, 01-04-00-00-00-02-71-CB
Где 01 — адрес устройства, виден на самом счетчике, по умолчанию — 1
04 — код операции, чтение регистра данных
00-00 — номер регистра, в этом регистре, например, хранится значение напряжения
00-02 — количество ячеек для чтения (2 байта)
71-CB — контрольная сумма по алгоритму CRC-16
Если все верно, в ответ прийдет сообщение вида:
Например, 01-04-04-43-4C-A1-C5-96-14
Где 01 — адрес
04 — код ответа на запрос
04 — кол-во байт ответа
43-4С-A1-C5 — возвращенное значение float в формате IEEE 754 в обратном порядке, т.е. значение должно быть C5-A1-4C-43
96-14 — контрольная сумма CRC-16
Для опроса счетчика была написана простенькая программа, которая позволяет опросить каждый отдельный регистр счетчика и все регистры последовательно.
Красным шрифтом пишется запрос, синим — ответ, зеленым — декодированное значение, коричневым результаты опроса всех регистров.
Для работы нужен .NET Framework 3.0, в списке нужно выбрать com-порт, к которому подключился преобразователь RS485
Саму программу, а также документацию на счетчик можно скачать на нашем сайте megadevices.com.ua
Планы на будущее — прикрутить ESP8266 и организовать передачу данных на Народный мониторинг
Автор: alk0v