Меркурий 206 RN
[flickr:id=33120319518]
Для расчёта crc8 modbus используется библиотека MinimalModbus
from minimalmodbus import _calculateCrcString as modbus_crc
Протокол обмена Меркурий 206 RN
Для общения со счетчиком необходимо знать его адрес. Для модели 206 это последние 8 цифр серийного номера. В моем случае это 19173106
в десятичном представлении либо 01 24 8E F2
в 16-ричном
ВАЖНО! Для счетчиков Меркурий 200 – шесть последних цифр заводского серийного номера Для счетчиков Меркурий 230, Меркурий 231 и Меркурий 233 – три последние цифры заводского номера или две последние цифры в случае если три последние образуют число более 240. Если Последние цифры получаются нули, то сетевой адрес «1». Универсальный адрес: «0» - для всех счетчиков, но пользоваться им можно если к преобразователю подключен только один трехфазный счетчик Меркурий. Для счетчиков Меркурий 203.2Т и Меркурий 206 – все восемь цифр серийного номера. Нулевой адрес, как у трехфазных, они не поддерживают.
Формат запроса
Адрес счетчика (4 байта) | Команда (1 байт) | CRC16 (Modbus) (2 байта)
Формат ответа
Адрес счетчика (4 байта) | Команда (1 байт) | Ответ (данные) | CRC16 (Modbus) (2 байта)
Коды запросов и ответов
0x21
- Текущая дата и время
0x22
- Лимит мощности (99990 Вт)
0x23
- Лимит энергии (9999 кВт*ч)
0x24
- Флаг перехода зимнее-летнее
0x25
- Флаг разрешения коррекции времени кнопками
0x26
- Чтение мощности
0x27
- Значение энергии *[16 байт]* [4] Тариф1 [4] Тариф2 [4] Тариф3 [4] Тариф4 Результат в (кВт*ч)*100
0x28
- Версия байт версии, байт подверсии
0x29
- Напряжение встроенной батарейки *[2 байта]* [1] Единицы Вольт [1] Десятые доли Вольт
0x2A
- Индикация на дисплее
0x2B
- Время последнего выключения
0x2C
- Время последнего включения
0x2D
- Функция испульсного выхода чтение
0x2F
- Серийный номер
0x31
- Тарифное расписание
0x63
- Текущие параметры электросети *[7 байт]* [2] Напряжение в Вольт*10 [2] Ток в Ампер*100 [3] Мощность в Ваттах
0x65
- Служебная информация
0x66
- Дата изготовления *[2 байта]* [1] день [1] месяц [1] год
0x67
- Индикация на дисплее
0x87
- Служебная информация
Полный исходный код программы для получения показаний со счётчика энергомера в репозитории на github. Я использовал библиотеку energy-meter-mercury206 в качестве исходников, переписал процедуру подключения через TCP/IP.
Ссылки
Руководство по эксплуатации и паспорт для "Меркурий 206"
Библиотека energy-meter-mercury206
Подключение счётчиков Меркурий