Skip to content

The library to connect Neva MT power counters (Библиотека для связи со счетчиками электроэ��ергии Нева МТ (ООО "Тайпит - ИП"))

Notifications You must be signed in to change notification settings

ChernyaevAN/neva-mt-counter

Repository files navigation

Исходные коды (origin code)

Origin code is here, here and here.
Оригинальные исходные коды находятся здесь, здесь и здесь.
Оригинальные исходные коды написаны для Python 2.x.

Также существует библиотека для подключения к счетчикам, не связанная с указанными выше исходными кодами.

Библиотека для связи со счетчиками электроэнергии Нева МТ3хх

Работа с приборами учёта происходит согласно МЭК 61107 и OBIS кодам (кроме байта контрольной суммы пакета, он не соответствует МЭК 61107 (ISO 1155)). Работа согласно протоколу МЕК 61107 реализована отдельной библиотекой, которая может быть использована для работы с другими типами приборов.
Библиотека тестировалась на Ubuntu x64 23.10 и Python 3.11.
Список OBIS кодов и описание протокола находится в папке documents.

Основные изменения

  1. Устранены все ошибки при компиляции
  2. Добавлена возможность подключения счетчиков через TCP сервер

Варианты подключения счетчиков

Варианты подключения счетчиков указаны ниже:
Picture
Возможно прямое подключение к счетчику через последовательный порт с помощью оптического порта. Для некоторых моделей счетчиков возможно подключение по интерфейсу RS485, для этого потребуется конвертер интерфейсов RS485 - TCP/IP, например, RS485 - WiFi. На рисунке это конвертер 1. Возможно применение второго конвертера интерфейсов, который будет преобразовывать TCP/IP в RS232, т.е. в последовательный порт. На рисунке это конвертер 2. Такой конвертер в большинстве случаев избыточен при подключении конвертера 1 к любому вычислительному устройству достаточной мощности с операционной системой. Конвертер 2 целесообразен к применению, например, если программное обеспечение для подключения счетчиков будет устанавливаться на ESP8266 или что-то еще менее производительное.
Для подключения к конвертеру 1 в режиме TCP сервера можно использовать утилиту socat. Для создания виртуального последовательного порта используется следующий код:
socat pty,link=/dev/virtualcom0,raw tcp:192.168.XXX.XXX:YYYYY
XXX - IP адрес сервера, YYYYY - порт сервера, т.е. конвертера 1
Наиболее простым является прямое подключение к TCP серверу или клиенту конвертера 1. Такое подключение устраняет лишние преобразования интерфейсов. В библиотеке реализована возможность создания TCP сервера для подключения к ней конвертера 1 в режиме TCP клиента.

Средства отладки библиотеки

Утилита командной строки для работы со счётчиком. Производит считывание/запись значений OBIS параметров. Содержит алгоритм считывания архива получасовых показаний с разбором по 4-м тарифам согласно тарифному расписанию.
Параметр -p указывает на применяемый последовательный порт для связи со счетчиком, если в данном параметре установить :YYYYY, где YYYYY - номер порта для TCP сервера, то получение значений будет выполняться без последовательного порта.
Пример считывания версии счётчика:

> python test_serial.py -p ttyUSB0 --obis 60.01.04*FF
000V0201

Пример считывания показаний по всем тарифам за 2 (текущий и предыдущий) дня через TCP порт 18899:
> python test_serial.py -p :18899 --calc-half-hours 1
Вывод справки:
python test_serial.py -?.

Warning

При многократном применении pyserial возникает ошибка, необходимо после каждого применения программы перезагружать порт.

Имитатор счетчика

Утилита командной строки - имитатор работы счётчика (считывание/запись параметров OBIS) для отладки и технологических прогонов сервисного программного обеспечения для работы с этими счётчиками. Имитатор работает в режиме сервера, ожидающего подключений по TCP порту. Имитатор работает по аналогии с конвертером 1 в схеме подключения. Пример запуска имитатора со списком значений для OBIS параметров, например: -o 60.01.04*FF:000V020. Значения даты и времени можно не задавать, тогда возвращаются текущие показания:
00.09.02*FF: дата, ГГММДД
00.09.01*FF: время, ЧЧММСС
Вывод справки:
python meter_imitator.py -?

Important

Тестирование имитатора не выполнялось после устранения ошибок компиляции.

Внешние зависимости (requirements)

Для работы и тестирования библиотеки необходимы следующие внешние пакеты.

  1. pySerial. Установить можно используя pip в одну строку командного интерпритатора:
    pip install pyserial.
    Совместимая версия пакета указана в requirements.txt.

  2. argparse. Установить можно используя pip в одну строку командного интерпритатора:
    pip install argparse.
    Совместимая версия пакета указана в requirements.txt.

About

The library to connect Neva MT power counters (Библиотека для связи со счетчиками электроэнергии Нева МТ (ООО "Тайпит - ИП"))

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages