Мы ищем разработчика на Python для проектирования и реализации системы опроса электросчетчиков (модель ABM5F610) через модемы RS-485, подключенные по TCP (например, устройства Teleofis), в соответствии с коммуникационным протоколом GOST R IEC 61107-2001 (ASCII режим).
Система должна быть способна к периодическому сбору данных, правильной обработке сессий, хранению результатов в структурированных форматах и восстановлению пропущенных интервалов с использованием внутреннего архива счетчика.
Предпочтение будет отдано разработчикам, находящимся на территории Российской Федерации или стран СНГ, из-за знакомства с региональными стандартами и техническим контекстом.
Объем работы:
Связь со счетчиком:
Установить TCP-сокетное соединение с модемами (клиенты инициируют соединение)
Начать связь на 300 бод и переключиться на 9600 бод после ACK
Реализовать обмен по протоколу на основе ASCII:
/?,ACK,.P0(),.P1(...),.R1.PARAM(),.B0q()и т.д.Аутентификация с использованием пароля, указанного в конфигурации
Поддержка полного сеанса опроса и обработка всех ожидаемых паттернов ответов
Сбор и хранение данных:
Извлечение значений, включая серийный номер счетчика, дату, время, напряжение, ток и энергию
Хранение результатов в двух параллельных форматах:
JSONL (JSON построчно)
Excel (.xlsx) с инкрементальным обновлением (только добавление, без перезаписи)
Ведение логов по терминалу с временными метками и статусными сообщениями
Восстановление архива:
Автоматическое обнаружение разрывов во временных рядах
Использовать команды
.R1.NHALF()и.R1.BHALF(...)для получения пропущенных данныхКорректировать временные метки на основе внутреннего смещения времени счетчика
Обеспечить выравнивание по 30-минутным интервалам
Конфигурация:
Читать определения терминалов и счетчиков из одного файла
config.jsonПоддержка нескольких терминалов (TCP порты), каждый с одним или несколькими счетчиками
Текстовый интерфейс (TUI):
Интерфейс на основе терминала для отображения:
Статус активного терминала
Обратный отсчет до следующего цикла опроса
Последний опрошенный счетчик, текущее действие
Сообщения об ошибках и временные задержки
Обзор структуры проекта:
Ожидаемые скрипты/модули:
main_server.py: TCP-сервер, принимающий входящие соединения модемовpoll_manager.py: планировщик опросов на основе конфигурацииgost_meter_com.py: логика связи для протокола GOST 61107 ASCIIarchive_recover.py: обрабатывает восстановление пропущенных интервалов на основе архиваexcel_exporter.py: записывает и добавляет данные в файлы ExcelСтруктура каталогов:
results/,excel_results/,logs/,config.json
Дополнительные улучшения:
Эмулированное устройство ABM5F610 для разработки и тестирования
Функциональность FTP для загрузки файлов Excel на удаленный сервер
Интеграция службы systemd для автоматической работы в фоновом режиме
Требования:
Сильные навыки в Python 3.10+
Опыт программирования с использованием TCP-сокетов
Знание текстовых протоколов последовательной связи
Знакомство с манипуляцией файлами Excel в Python
Способность писать чистый, модульный и хорошо документированный код
Результаты:
Полная рабочая система с исходным кодом
Документация (README или отдельное руководство)
CLI интерфейс для первоначального запуска и мониторинга статуса терминала
Пример конфигурации и образцы выходных файлов
Предпочтительные квалификации:
Разработчик, находящийся в России или странах СНГ
Предыдущий опыт работы с учетом электроэнергии, телеметрией или SCADA системами
Способность предоставлять долгосрочную поддержку или расширения функционала в будущем
-
20 дней155 223 UAH
348 3 0 20 дней155 223 UAHЗдравствуйте.
Отличный, детально описанный проект. Я полностью понимаю ключевую задачу. Мой опыт в разработке для встраиваемых систем (Embedded) напрямую относится к этому проекту, поскольку я хорошо знаком с работой на уровне "железа", низкоуровневыми протоколами (включая ASCII-обмен) и последовательными интерфейсами. Построение системы опроса счетчиков, включая переключение скоростей и работу с архивами — это понятная для меня задача.
Хотя в запросе указан Python, для задачи промышленного сбора данных я настоятельно рекомендую более надежный стек: сервисное приложение на C# .NET и базу данных PostgreSQL.
Почему это лучше для вашего проекта:
Промышленная надежность: Статическая типизация C# отлавливает ошибки до запуска, а не в процессе работы 24/7. Это критично для систем, работающих без присмотра.
…
Высокая производительность и многопоточность: C# .NET изначально создан для эффективной работы с сотнями одновременных TCP-соединений без ограничений Python (GIL). Система будет легко масштабироваться.
Надежное хранение данных: Использование PostgreSQL вместо файлов (JSONL/Excel) гарантирует целостность данных, упрощает поиск пропусков и открывает возможности для аналитики. Экспорт в нужные вам форматы при этом сохранится.
При этом я отлично владею Python и готов реализовать проект строго по вашему ТЗ, если это принципиальное требование.
Для максимального масштаба: Если в будущем планируется опрос тысяч устройств параллельно, оптимальным решением станет Rust для бескомпромиссной производительности и эффективности.
Готов обсудить детали и выбрать оптимальную для вас архитектуру.
-
45 дней155 223 UAH
270 7 2 45 дней155 223 UAHДобрый вечер Ренат. смогу выполнить Вашу задачу. Имею опыт работы в среде Python. Пишите в личку для уточнения деталей.
-
30 дней99 786 UAH
421 30 дней99 786 UAHЗдравствуйте, Ренат,
Я разработчик на Python, также хорошо разбираюсь в программировании TCP Socket.
Я могу реализовать систему опроса для электрических счетчиков ABM5F610 через TCP-соединенные модемы RS-485, полностью соответствующую ГОСТ Р ИСО 61107-2001 (ASCII режим).
Моя работа обеспечит надежное, эффективное и безопасное решение.
Пожалуйста, напишите в личные сообщения, чтобы мы могли обсудить детали.
-
2 дня1109 UAH
1111 7 1 2 дня1109 UAHДобрый день! У меня есть опыт разработки телеметрических систем для электротехнического оборудования, включая работу с протоколами GOST и опросами через RS-485. Сделаю полнофункциональную систему для опроса ABM5F610 с TCP-коммуникацией, реализацией протокола GOST R IEC 61107-2001, сохранением данных в JSONL и Excel, архивным восстановлением и мониторинговым TUI. Проект будет модульным с четкой структурой директорий, как в требованиях, и будет поддерживать одновременную работу с несколькими терминалами. Готов начать работу немедленно.
-
Добрый день. Предоставленная модель счетчика не находится в поиске. На него нужна подробная документация от вас.
-
Актуальные фриланс-проекты в категории C и C++
Инженер по инфраструктуре резидентных проксиМы строим сеть резидентных прокси с нуля — полностью собственную, без сторонних поставщиков. Нам нужен один исключительный сетевой инженер для создания всей технической базы. Что вы будете строить: - Android SDK для фонового использования, который направляет прокси-трафик через… C и C++, DevOps ∙ 3 дня 9 часов назад ∙ 13 ставок |
Добробка в существующей версии 1с розница блока для РЦ(распределительного центра)В общем поясню, что у нас за база - есть общий сервер, где есть база Розница (где ставятся все приходы) - база УТП, куда переливаются все продажи - считается наценка, остатки по складам - маленькие базы розничных магазинов. По обменам у нас магазины обмениваются с базой Розница… C и C++, C# ∙ 3 дня 23 часа назад ∙ 6 ставок |
ПО Мастер-программа «KONSTRUCTOR»
185 490 UAH
Мы ищем очень опытного C++ разработчика для модернизации существующего ПО (мастер-программы). Программа отвечает за создание производного ПО представляющего аудио-визуальные сеансы психологической коррекции. Текущая версия написана на чистом WinAPI (Visual Studio 2019/2022).… C и C++, Десктопные приложения ∙ 9 дней 2 часа назад ∙ 19 ставок |
Написание кода для ArduinoНеобходимо разработать программное обеспечение для весового дозатора на базе Arduino Uno. Комплектующие: Arduino Uno R3 HX711 + тензодатчик LCD1602 I2C дисплей MAX7219 светодиодная матрица 8x32 5 кнопок управления 4-канальное реле 2 сигнальные лампы Вибромагнит грубого… C и C++, Встраиваемые системы и микроконтроллеры ∙ 10 дней 11 часов назад ∙ 15 ставок |
Нужно доработать проект или предоставить консультацию.
1000 UAH
|