Poszukujemy programisty Pythona do zaprojektowania i wdrożenia systemu do odczytu liczników energii elektrycznej (model ABM5F610) za pośrednictwem modemów RS-485 połączonych przez TCP (np. urządzenia Teleofis), zgodnie z protokołem komunikacyjnym GOST R IEC 61107-2001 (tryb ASCII).
System musi być zdolny do okresowego zbierania danych, odpowiedniego zarządzania sesjami, przechowywania wyników w ustrukturyzowanych formatach oraz przywracania pominiętych interwałów za pomocą wewnętrznego archiwum licznika.
Preferowani będą programiści z siedzibą w Federacji Rosyjskiej lub krajach WNP, ze względu na znajomość regionalnych standardów i kontekstu technicznego.
Zakres pracy:
Komunikacja z licznikami:
Nawiązanie komunikacji przez gniazdo TCP z modemami (klienci inicjują połączenie)
Rozpoczęcie komunikacji przy 300 baud i przełączenie na 9600 baud po ACK
Wdrożenie wymiany protokołu opartego na ASCII:
/?,ACK,.P0(),.P1(...),.R1.PARAM(),.B0q()itp.Uwierzytelnienie za pomocą hasła podanego w konfiguracji
Wsparcie pełnej sesji odczytu i obsługa wszystkich oczekiwanych wzorców odpowiedzi
Zbieranie i przechowywanie danych:
Ekstrakcja wartości, w tym numeru seryjnego licznika, daty, czasu, napięcia, prądu i energii
Przechowywanie wyników w dwóch równoległych formatach:
JSONL (JSON linia po linii)
Excel (.xlsx) z inkrementalną aktualizacją (tylko dodawanie, bez nadpisywania)
Utrzymywanie logowania dla każdego terminala z znacznikami czasu i komunikatami o statusie
Odzyskiwanie archiwum:
Automatyczne wykrywanie luk w szeregach czasowych
Użycie poleceń
.R1.NHALF()i.R1.BHALF(...)do odzyskania pominiętych danychDostosowanie znaczników czasu na podstawie wewnętrznego przesunięcia czasowego licznika
Zapewnienie wyrównania interwałów co 30 minut
Konfiguracja:
Odczyt definicji terminali i liczników z jednego pliku
config.jsonWsparcie dla wielu terminali (porty TCP), z których każdy ma jeden lub więcej liczników
Interfejs tekstowy (TUI):
Interfejs użytkownika oparty na terminalu do wyświetlania:
Status aktywnego terminala
Odwrotne odliczanie do następnego cyklu odczytu
Ostatni odczytany licznik, bieżąca operacja
Komunikaty o błędach i opóźnienia czasowe
Przegląd struktury projektu:
Oczekiwane skrypty/moduły:
main_server.py: serwer TCP akceptujący przychodzące połączenia modemówpoll_manager.py: harmonogram odczytów oparty na konfiguracjigost_meter_com.py: logika komunikacji dla protokołu GOST 61107 ASCIIarchive_recover.py: obsługuje odzyskiwanie na podstawie archiwum pominiętych interwałówexcel_exporter.py: zapisuje i dodaje do plików ExcelUkład katalogów:
results/,excel_results/,logs/,config.json
Opcjonalne ulepszenia:
Emulowany sprzęt ABM5F610 do rozwoju i testowania
Funkcjonalność przesyłania FTP do wysyłania plików Excel na zdalny serwer
Integracja usługi systemd do automatycznej pracy w tle
Wymagania:
Silna znajomość Pythona 3.10+
Doświadczenie w programowaniu gniazd TCP
Znajomość protokołów komunikacji szeregowej opartych na tekście
Znajomość manipulacji plikami Excel w Pythonie
Umiejętność pisania czystego, modularnego i dobrze udokumentowanego kodu
Wyniki:
Kompletny działający system z pełnym kodem źródłowym
Dokumentacja (README lub osobny podręcznik)
Interfejs CLI do początkowego uruchomienia i monitorowania statusu terminala
Przykładowa konfiguracja i przykładowe pliki wyjściowe
Preferowane kwalifikacje:
Programista z siedzibą w Rosji lub krajach WNP
Doświadczenie w zakresie pomiaru energii elektrycznej, telemetrii lub systemów SCADA
Umiejętność zapewnienia długoterminowego wsparcia lub przyszłych rozszerzeń funkcji
-
20 dni12 721 PLN
348 3 0 20 dni12 721 PLNCześć.
Świetny, szczegółowo opisany projekt. Doskonale rozumiem kluczowe zadanie. Moje doświadczenie w rozwijaniu systemów wbudowanych (Embedded) ma bezpośredni związek z tym projektem, ponieważ dobrze znam pracę na poziomie "sprzętu", niskopoziomowe protokoły (w tym wymianę ASCII) oraz interfejsy szeregowe. Budowa systemu odczytu liczników, w tym przełączanie prędkości i praca z archiwami — to zadanie, które jest dla mnie zrozumiałe.
Chociaż w zapytaniu wskazano Python, dla zadania przemysłowego zbierania danych zdecydowanie polecam bardziej niezawodny stos: aplikację serwisową w C# .NET i bazę danych PostgreSQL.
Dlaczego to lepsze dla Twojego projektu:
Przemysłowa niezawodność: Statyczne typowanie C# wychwytuje błędy przed uruchomieniem, a nie w trakcie pracy 24/7. To krytyczne dla systemów działających bez nadzoru.
…
Wysoka wydajność i wielowątkowość: C# .NET został stworzony z myślą o efektywnej pracy z setkami jednoczesnych połączeń TCP bez ograniczeń Pythona (GIL). System będzie łatwy do skalowania.
Niezawodne przechowywanie danych: Użycie PostgreSQL zamiast plików (JSONL/Excel) gwarantuje integralność danych, ułatwia wyszukiwanie braków i otwiera możliwości analityczne. Eksport do potrzebnych formatów pozostanie zachowany.
Jednocześnie doskonale posługuję się Pythonem i jestem gotów zrealizować projekt ściśle według Twojego TŻ, jeśli to jest zasadnicze wymaganie.
Dla maksymalnej skali: Jeśli w przyszłości planowane jest równoległe odczytywanie tysięcy urządzeń, optymalnym rozwiązaniem będzie Rust dla bezkompromisowej wydajności i efektywności.
Jestem gotów omówić szczegóły i wybrać optymalną dla Ciebie architekturę.
-
45 dni12 721 PLN
270 7 2 45 dni12 721 PLNDobry wieczór Renat. Mogę wykonać Twoje zadanie. Mam doświadczenie w pracy w środowisku Python. Pisz na priv w celu wyjaśnienia szczegółów.
-
30 dni8178 PLN
421 30 dni8178 PLNCześć Renat,
Jestem programistą Pythona, dobrze zaznajomionym z programowaniem gniazd TCP.
Mogę wdrożyć system odpytywania dla liczników energii ABM5F610 za pośrednictwem modemów RS-485 połączonych przez TCP, w pełni zgodny z GOST R IEC 61107-2001 (tryb ASCII).
Moja praca zapewni, że dostarczę niezawodne, wydajne i bezpieczne rozwiązanie.
Proszę o wiadomość, abyśmy mogli omówić szczegóły.
-
2 dni91 PLN
1111 7 1 2 dni91 PLNDzień dobry! Mam doświadczenie w opracowywaniu systemów telemetrycznych dla sprzętu elektrotechnicznego, w tym w pracy z protokołami GOST oraz zapytaniami przez RS-485. Stworzę w pełni funkcjonalny system do zapytań ABM5F610 z komunikacją TCP, realizacją protokołu GOST R IEC 61107-2001, przechowywaniem danych w JSONL i Excel, archiwalnym przywracaniem oraz monitorującym TUI. Projekt będzie modułowy z wyraźną strukturą katalogów, jak w wymaganiach, i będzie wspierał jednoczesną pracę z wieloma terminalami. Jestem gotów rozpocząć pracę natychmiast.
-
Добрый день. Предоставленная модель счетчика не находится в поиске. На него нужна подробная документация от вас.
-
Aktualne zlecenia dla freelancerów w kategorii C i C++
Inżynier infrastruktury proxy mieszkalnychBudujemy sieć proxy dla użytkowników od podstaw — w pełni własną, bez dostawców zewnętrznych. Potrzebujemy jednego wyjątkowego inżyniera sieci, który zbuduje całą podstawę techniczną. Co zbudujesz: - SDK w tle dla Androida, które kieruje ruch proxy przez urządzenia użytkowników… C i C++, DevOps ∙ 3 dni 3 godziny temu ∙ 12 ofert |
Dobrobka w istniejącej wersji 1c detalicznego bloku dla RC (centrum dystrybucji)Ogólnie wyjaśnię, co mamy za bazę - jest ogólny serwer, gdzie znajduje się baza Detal (gdzie rejestrowane są wszystkie przychody) - baza UTP, do której przelewają się wszystkie sprzedaże - liczy się marża, stany magazynowe - małe bazy detalicznych sklepów. W przypadku wymian,… C i C++, C# ∙ 3 dni 17 godzin temu ∙ 6 ofert |
Mistrzowska program «KONSTRUCTOR»
15 238 PLN
Szukamy bardzo doświadczonego programisty C++ do modernizacji istniejącego oprogramowania (programu głównego). Program odpowiada za tworzenie pochodnego oprogramowania reprezentującego sesje audiowizualnej korekcji psychologicznej. Obecna wersja jest napisana w czystym WinAPI… C i C++, Aplikacje desktopowe ∙ 8 dni 21 godzin temu ∙ 19 ofert |
Pisanie kodu dla ArduinoPotrzebne jest opracowanie oprogramowania dla wagowego dozownika opartego na Arduino Uno. Komponenty: Arduino Uno R3 HX711 + czujnik tensometryczny Wyświetlacz LCD1602 I2C Matryca LED MAX7219 8x32 5 przycisków sterujących 4-kanałowe przekaźniki 2 lampy sygnalizacyjne Wibromagnes… C i C++, Systemy wbudowane i mikrokontrolery ∙ 10 dni 5 godzin temu ∙ 15 ofert |
Trzeba dokończyć projekt lub udzielić konsultacji.
82 PLN
|