Разработать код на Python для Modbus устройства + PostGres

Цена договорная
21 сентября 2021, 13:43 • 7 откликов • 48 просмотров
Привет.

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

Подробней.
Имеется прибор для учета электроэнергии с картой modbus (во вложении на рус. и англ языках)
У прибора имеется энергонезависимая память, в которую сохраняются значения при срабатывании какого то триггера, уставки. Например при увеличении напряжения, срабатывании дискретного входа (DI), или по минутному интервалу каждые 15 минут, и запись идет в память прибора по максимум 9 параметрам. (например ток пофазно, напряжение пофазно, мощность и частота).
В техническом задании прибор запараметрирован на сохранение в память приборов каждые 15 минут 4 параметров - Потребление Актив, Отдача Актив, Потребление Реактив, Отдача Актив. Таких записей может быть 4320 - 96 интервалов в сутки (15 минут) и на 45 дней. После заполнения памяти идет циклическая перезапись.

Сложность (для меня) опрашивать прибор и получать не текущие значения, а значения из памяти прибора, так как обращение идет к памяти устройства по тем же modbus тегам, и необходимо делать подтверждение прочтения текущей записи и переход к следующей записи. При этом необходимо учитывать обрывы каналов связи, и если эта запись отсутствует в базе данных, то необходимо начинать с нее, и проверять правильно ли записалась предыдущая запись, так как бывают ошибки.

Также имеется файл данных или журнал данных, который также хранится в памяти прибора.
Более подробное описание находится в карте регистров модбас этого устройства, пункт 2.10 страница 14 файла РМ130 _Modbus_rus

Необходимо на среде Linux разработать скрипт, который выступает в роли Modbus Master и через опрос по Modbus RTU либо Modbus TCP опрашивает прибор и сохраняет значения в базу данных POST GRES.
При этом количество приборов может быть несколько и опрашиваться как и через RTU, так и через TCP/IP. Коммуникации указываются в самом коде. Графический интерфейс не нужен. Параметры коммуникации также указываются в коде, что то вроде бит, четность, скорость опроса, таймаут, задержка и прочее для коммуникационных характеристик.
Также отдельно скрипт должен иметь возможность считывать регистры текущих (real time) запросов (пофазно ток,пофазно напряжение пофазно,пофазно углы токов и напряжений, общая активная, реактивная и полная мощность) + в будущем возможность масштабирования.
Каждому прибору присваивается уникальный 16 значный код, который назначается вручную. 16 значный код также записывается в БД.

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

Для проверки и отработки данного скрипта будет предоставлен удаленный компьютер на Windows с подключением к прибору, на котором можно будет тестировать работу системы 24 часа в сутки, прибор будет применяться стендовый.


Код и описание использования должно быть чистым, с комментариями, и отдельным описанием что как куда.

В результате на выходе у нас будет следующее:

Опрос modbus устройства через RS 485, добавление еще нескольких устройств к RS 485 и их опрос, а также опрос через TCP/IP, имитация обрывов связи, и сверка результирующих данных в БД PostGRES с фактическими значениями в памяти устройства.

PS Цена договорная, но ценник не задирайте, так как там код не сложный. Остальное все обсуждаемо.

Требования к специалистам;

опыт и понимание в области энергетики и автоматизации;
опыт работы с протоколом Modbus;
опыт в программировании;
опыт работы во фрилансе не менее 2 лет и реализованных успешных и неуспешных проектов - как минимум 10.
очень важно навык общения!))) для взаимосвязи друг с другом.






















Файлы
Отзывы
Михаил очень грамотный исполнитель. Больше наверное с моей стороны не было технической готовности, интересный собеседник, грамотный специалист в АСУ ТП, позитивный чел.
Необходимо было опрашивать устройство модбас через пайтон и добавить все значения в базу данных. Особенность в том, что значения необходимо получать не напрямую, а из энергонезависимой памяти прибора, что является экзотикой по модбасу, и с этим Михаил успешно справился.
10 балов из 10.
~ 3 года назад
Нормальное задание, документацией обеспечил, возникающие проблемы устранял в короткие сроки, на вопросы отвечал быстро и четко. Мне понравилось с ним работать!
~ 3 года назад