Skip to main content

Pomiar energii w Pythonie pozwala dowiedzieć się o maszynie tego, czego nie powie żaden schemat: ile prądu naprawdę ciągnie silnik, kiedy miał pik prądowy i czy jego sprawność spada. W tym wpisie łączymy licznik energii, sterownik Finder Opta i Python, żeby zbierać dane napędu po Modbus i pokazywać je na żywo na własnym dashboardzie.

To naturalne rozwinięcie tematu komunikacji. Jeśli dopiero zaczynasz, zobacz najpierw jak połączyć Pythona ze sterownikiem PLC po Modbus – tutaj idziemy o krok dalej i budujemy kompletny system pomiaru energii.

Po co mierzyć energię silnika?

Większość napędów w zakładzie pracuje latami bez żadnego monitoringu. Tymczasem pomiar energii w Pythonie daje konkretne odpowiedzi: jakie jest typowe i maksymalne zużycie prądu, jak zmienia się moc czynna i bierna, kiedy silnik startuje i zatrzymuje się oraz czy z czasem nie rośnie pobór przy tej samej pracy. To wstęp do analizy danych ze sterowników PLC i do predykcyjnego utrzymania ruchu.

Architektura: licznik energii, falownik i Finder Opta

System składa się z czterech elementów spiętych w jeden łańcuch pomiarowy:

  • Licznik energii Finder – mierzy prąd, napięcie i moce na zaciskach napędu.
  • Falownik SINAMICS V20 z silnikiem – obiekt, który monitorujemy.
  • Finder Opta (PLC programowany w CODESYS) – zbiera dane z licznika po Modbus RTU.
  • Aplikacja Python – pobiera dane z Finder Opta po Modbus TCP (port 502) i przetwarza je.
Architektura pomiaru energii: licznik energii Finder, falownik SINAMICS V20, silnik i Finder Opta
Architektura aplikacji: licznik energii i falownik SINAMICS V20, dane zbiera Finder Opta i wysyła po Modbus TCP do Pythona.

Licznik energii rozmawia z Finder Opta po Modbus RTU – wystarczają dwa przewody A i B (transmisja szeregowa). Finder Opta udostępnia te dane wyżej po Modbus TCP, skąd odbiera je Python.

Finder Opta jako brama danych Modbus

Najważniejsza część aplikacji to pobranie parametrów sieciowych z licznika energii. Służy do tego program Energy napisany w języku Structured Text (ST). Odczytuje on rejestry Modbus i skaluje surowe wartości na realne jednostki, np. napięcie fazowe L1 czy prąd fazy L1 z odpowiednią liczbą miejsc po przecinku.

Program w języku Structured Text w CODESYS odczytujący rejestry Modbus licznika energii
Program ST na Finder Opta: odczyt rejestrów Modbus i skalowanie INT_TO_REAL na realne wartości prądu i napięcia.
  1. Finder Opta jako Modbus RTU Master odpytuje licznik (adres 33) i czyta serię input registers.
  2. Surowe wartości są skalowane w ST (INT_TO_REAL) na prąd, napięcie, częstotliwość i moce.
  3. Finder Opta wystawia te parametry jako Modbus TCP Server w serii Holding Registers.
  4. Aplikacja Python łączy się po Modbus TCP i pobiera gotowe odczyty.

Python i dashboard live we Flasku

Po stronie Pythona budujemy dashboard, który odświeża dane na żywo. Stack jest lekki i w całości darmowy:

  • pyModbus – komunikacja Modbus TCP/IP z Finder Opta.
  • Flask – lekki framework webowy serwujący dashboard.
  • Chart.js – wykresy aktualizowane w czasie rzeczywistym.
  • SQLite – baza danych z historią pomiarów.
Dashboard live pomiaru energii w Pythonie we Flasku z wykresem prądu silnika
Dashboard live we Flasku: prąd, napięcie, częstotliwość i moce odświeżane na bieżąco przez Modbus TCP.

Gdy zwiększamy prędkość silnika potencjometrem, reakcja jest widoczna od razu na wykresie poboru prądu. Obok pojawiają się kolejne parametry: napięcie sieciowe, częstotliwość oraz moc czynna, bierna i pozorna.

Wykrywanie stanu silnika i wstęp do predykcyjnego utrzymania ruchu

Aplikacja ma prostą, ale przydatną detekcję stanu: jeśli pobierany prąd przekracza ustalony próg, silnik jest ON; poniżej progu – OFF. To pokazuje, jak Python nadaje się do wykrywania stanów i anomalii w danych z linii produkcyjnej.

Wykrywanie stanu silnika w Pythonie na podstawie progu prądu
Po zatrzymaniu silnika prąd spada poniżej progu i aplikacja Python oznacza stan OFF.

Stąd już blisko do uczenia maszynowego i predykcyjnego utrzymania ruchu. Mając historię pomiarów, możesz wykrywać trendy poboru energii, które zapowiadają zużycie łożysk czy spadek sprawności napędu.

Baza danych i raporty: CSV, Excel i SQLite

Każdy pomiar trafia do bazy danych SQLite. W zakładce Baza danych widać prąd minimalny, maksymalny i średni, statusy ON/OFF oraz poszczególne moce i liczbę próbek.

Tabela pomiarów energii zapisana w bazie danych SQLite
Zakładka Baza danych: każdy pomiar (prąd, napięcie, moce, kierunek) trafia do bazy SQLite.

Pomiary można wyeksportować do pliku CSV z wybranego zakresu czasu. Format rozdzielany przecinkami otwiera się wprost w arkuszu kalkulacyjnym – idealny pod raport dla kierownika albo dalszą analizę.

Eksport pomiarów energii do pliku CSV otwartego w arkuszu kalkulacyjnym
Eksport CSV otwarty w arkuszu: gotowe dane do raportu, wizualizacji albo dalszej analizy.

Sama baza to kilka linii SQL: zapytanie CREATE TABLE tworzy tabelę pomiarów, a stałe w pliku app.py określają adres IP sterownika, port i Slave ID.

Schemat tabeli SQLite i konfiguracja skryptu Python do pomiaru energii
Kilka linii SQL tworzy tabelę pomiarów, a stałe w app.py ustawiają adres IP i rejestry Modbus.

Dlaczego automatyk powinien znać Python?

Pomiar energii w Pythonie to tylko jeden przykład. Podstawy tego języka przydają się każdemu elektrykowi, automatykowi i kierownikowi produkcji, bo pozwalają:

  • pobierać dane ze sterowników przemysłowych i linii produkcyjnych,
  • przetwarzać je i generować raporty (CSV, Excel, PDF),
  • budować własne, dopasowane aplikacje webowe i dashboardy,
  • integrować się z narzędziami typu InfluxDB czy Grafana,
  • wykrywać anomalie i wchodzić w uczenie maszynowe.

Najczęściej zadawane pytania (FAQ)

Czym jest Finder Opta?

To programowalny sterownik PLC oparty na Arduino, który programuje się w CODESYS. Obsługuje Modbus RTU i Modbus TCP, dzięki czemu świetnie nadaje się na bramę danych między licznikiem energii a aplikacją Python.

Jaką bibliotekę Pythona wybrać do Modbus TCP?

Najczęściej używa się biblioteki pyModbus. Pozwala ona połączyć się ze sterownikiem po Modbus TCP/IP (port 502) i odczytać rejestry, w których Finder Opta wystawia parametry energii.

Czy potrzebuję licznika energii Finder, żeby zmierzyć prąd?

Dowolny licznik energii z komunikacją Modbus zadziała podobnie. Licznik mierzy prąd, napięcie i moce, a sterownik tylko odczytuje jego rejestry i przekazuje dane dalej.

Czy to ma sens bez znajomości programowania?

Warto znać podstawy. Bez nich trudno poprawnie zintegrować cały łańcuch i mieć pewność, że pomiar jest wiarygodny i bezpieczny. Dlatego zaczynamy od podstaw Pythona dla przemysłu.

Podsumowanie

Pomiar energii w Pythonie łączy świat automatyki (licznik energii, Finder Opta, Modbus) ze światem analizy danych (Flask, SQLite, wykresy live). To prosty, tani i w pełni konfigurowalny sposób, żeby wreszcie wiedzieć, co naprawdę dzieje się z napędami w zakładzie.

Chcesz budować takie dashboardy samodzielnie? Zacznij od podstaw Pythona dla przemysłu:

O autorze

Maciej Kurantowicz

Author Maciej Kurantowicz

Automatyk i programista, CEO & Founder w ControlByte

Więcej postów tego autora Maciej Kurantowicz