
Liczniki energii Modbus RTU to najprostszy sposób, żeby zebrać dane o zużyciu prądu z wielu obwodów w jednym sterowniku PLC.
Jeden licznik podłączysz w kwadrans. Przy czterdziestu zaczynają się pytania o obciążenie magistrali RS-485, adresację, czas cyklu i obsługę awarii.
Na wspólnym webinarze ControlByte i Finder pokazaliśmy cały proces na żywo: od okablowania, przez program w CODESYS na sterowniku Finder Opta, aż po zapis pomiarów do pliku CSV skryptem w Pythonie. Poniżej znajdziesz nagranie i najważniejsze wnioski. Jeśli interesuje Cię sam odczyt jednego licznika w Pythonie, zajrzyj też do wpisu Pomiar energii w Pythonie: Finder Opta, licznik energii i Modbus TCP.
Plan webinaru
Webinar poprowadzili Szymon Adamek (ControlByte), Jakub Vetter (Finder) i Lucyna Radziun, która przez cały czas programowała sterownik na żywo. Omówiliśmy osiem bloków tematycznych:

- 40 liczników: co zmienia skala.
- RS-485: przewody i obciążenie.
- Modbus RTU: adresy i rejestry.
- Finder 7M: dobór i NFC.
- Opta: zbieranie i udostępnianie danych.
- Pętla odpytań i obsługa awarii.
- Konwerter Finder 6M.
- Zastosowania danych pomiarowych.
Dlaczego 40 liczników to inne zadanie niż jeden?
Przy jednym liczniku możesz dobrać prędkość transmisji i odczytywać, co chcesz i jak często chcesz. Przy 40 urządzeniach na wspólnej magistrali każda dodatkowa zmienna (energia czynna, bierna, pozorna, napięcie, prąd, współczynnik mocy, częstotliwość) wydłuża cały cykl odpytywania.

Zanim zaczniesz programować, podejmij cztery decyzje:

- Obciążenie magistrali: czy porty i przewody pozwolą połączyć wszystkie urządzenia?
- Plan adresów: każdy licznik musi mieć unikalny adres Modbus i jednoznaczną lokalizację w obiekcie.
- Czas odświeżania: jak często naprawdę potrzebujesz nowego odczytu? Próbkowanie co 100 ms przy 40 licznikach nie ma sensu i przeciąża komunikację.
- Reakcja na awarię: co zobaczy SCADA, gdy licznik przestanie odpowiadać?
Magistrala RS-485: limit urządzeń, topologia i terminacja
Klasyczny budżet obciążenia interfejsu RS-485 to 32 UL (jednostki obciążenia). Dlatego 40 liczników wymaga weryfikacji w dokumentacji konkretnych urządzeń. W praktyce masz dwie drogi: podzielić instalację na dwie magistrale po 20 liczników albo zastosować gateway, np. konwerter Finder 6M.

Zasady okablowania:
- magistrala ma dwa przewody różnicowe A i B oraz GND, który też trzeba podłączyć,
- urządzenia łączysz liniowo (szeregowo), nigdy w gwiazdę, z możliwie krótkimi odgałęzieniami,
- na obu końcach każdej magistrali montujesz rezystory terminujące (zwykle 120 Ω),
- komunikacja działa w trybie master/slave: Finder Opta jest masterem, liczniki są slave’ami.

Konfiguracja liczników Modbus RTU w CODESYS
W CODESYS Lucyna dodała każdy licznik jako osobną instancję Modbus Server pod portem COM, nadała kolejne adresy (1, 2, 3) i zdefiniowała dwa kanały odczytu:
- PowerMetrics: funkcja Read Input Registers (FC 04), długość 12 rejestrów, czyli 6 parametrów po 2 rejestry: napięcie, energia czynna, bierna, pozorna, współczynnik mocy i częstotliwość,
- Current: prąd, odczytywany osobno, bo leży dalej w mapie rejestrów.

Dla 40 liczników tę samą konfigurację powtarzasz dla pozostałych 37 urządzeń, zmieniając tylko adres.
Anatomia zapytania Modbus RTU i wartości 32-bitowe
Każda ramka Modbus RTU zawiera cztery elementy: adres (który licznik), funkcję (jaki odczyt, np. 04), dane (rejestr początkowy i liczbę rejestrów) oraz CRC (2 bajty kontroli poprawności). Adresy indywidualne to 1–247, a adres 0 służy do broadcastu, na który slave’y nie odpowiadają.

Licznik Finder 7M udostępnia pomiary jako wartości 32-bitowe, zapisane w dwóch kolejnych rejestrach 16-bitowych. W programie trzeba je złożyć z przesunięciem o 16 bitów i zinterpretować jako REAL (float). Typ danych, kolejność słów i jednostkę zawsze sprawdzaj w mapie rejestrów licznika, bo numeracja w dokumentacji i offset w bibliotece mogą się różnić o 1.

Liczniki energii Finder 7M: co mierzą i jak je skonfigurować
W webinarze wykorzystaliśmy dwa liczniki jednofazowe i jeden trójfazowy z serii Finder 7M. To liczniki bezpośrednie: jednofazowy 7M.24 (do 40 A) i trójfazowy 7M.38 (do 80 A). Mierzą napięcie i prąd, moc czynną, bierną i pozorną, współczynnik mocy, energię w obu kierunkach oraz częstotliwość. Pełną specyfikację znajdziesz na stronie serii 7M Finder.

Najważniejsze cechy:
- certyfikat MID, który potwierdza poprawność pomiaru i pozwala na rozliczenia (podliczniki),
- pomiar dwukierunkowy: cztery niekasowalne liczniki MID dla energii pobranej i oddanej,
- klasa dokładności B dla energii czynnej i klasa 2 dla energii biernej,
- wersje z komunikacją Modbus RTU (RS-485), M-Bus lub wyjściem impulsowym,
- w wersji trójfazowej trzy tryby sumowania: arytmetyczny, wektorowy i układ Arona.
Konfiguracja jest prosta: aplikacja Finder Toolbox NFC w telefonie ustawia adres Modbus, prędkość transmisji, parzystość i bity stopu oraz zakres informacji na wyświetlaczu.

Jeśli nie potrzebujesz komunikacji, aplikacja zapisuje historię odczytów i eksportuje ją do pliku CSV. Pamiętaj tylko, że licznik nie buforuje danych: każdy odczyt pokazuje stan z chwili, w której go wykonujesz.

Program PLC: jedna pętla dla dowolnej liczby liczników
Program w języku ST opiera się na strukturze ST_MeterData, która zbiera wszystkie pomiary jednego licznika: moc czynną, bierną i pozorną, współczynnik mocy, częstotliwość, napięcie i prąd. Z tej struktury powstaje tablica aMeters, z jednym elementem na każdy licznik.
W pętli FOR wskaźniki pPower i pCurrent są dynamicznie przepinane (instrukcja CASE) na bufory kolejnego licznika. Następnie funkcja WordsToReal zamienia dwa surowe słowa WORD na jedną wartość REAL.

Taki program jest uniwersalny: żeby obsłużyć 10 lub 40 liczników, zmieniasz górną granicę pętli i rozmiar tablicy oraz dodajesz kolejne instancje Modbus Server. Test na żywo pokazał poprawne odczyty ze wszystkich trzech liczników. Przy lampce LED moc bierna była ujemna (obciążenie pojemnościowe), a przy wentylatorze dodatnia (obciążenie indukcyjne).

Finder Opta i architektura systemu
Do komunikacji z licznikami potrzebujesz wersji Opty z portem RS-485: Plus (Ethernet + RS-485) lub Advanced (dodatkowo Wi-Fi i Bluetooth LE). Wersja Lite ma tylko Ethernet.

Typowa architektura wygląda tak: liczniki rozmawiają z Optą po Modbus RTU, a Opta buforuje odczyty i udostępnia je dalej po Modbus TCP, np. do systemu SCADA, panelu HMI albo skryptu w Pythonie. W takim układzie Opta jest masterem wobec liczników, ale serwerem wobec wizualizacji.

Czas cyklu, timeouty i obsługa awarii
Pętlę odpytywania warto traktować jak sekwencję stanów: przygotuj adres, funkcję i zakres rejestrów, uruchom jedną aktywną transakcję, obsłuż wynik (pomiar albo błąd, czas i status), przejdź do kolejnego adresu.

Prosty rachunek: jeśli jedna transakcja trwa ok. 50 ms, to pełny cykl dla 40 liczników zajmie około 2 s.

Jeden licznik, który nie odpowiada, wydłuża cykl o cały timeout. Przy 1 s timeoutu cykl rośnie do 2,95 s, a przy trzech ponowieniach nawet do 4,95 s. Dlatego:

- dobierz timeout do liczby urządzeń (przy 40 licznikach rozważ 2–3 s),
- nie odpytuj liczników częściej, niż naprawdę potrzebujesz (w demo: co 500 ms dla 3 liczników),
- napisz funkcję, która po timeoucie automatycznie ponawia komunikację z danym licznikiem, zamiast resetować sterownik,
- przechowuj status każdego pomiaru (aktualny / ostatnia znana wartość / błąd), żeby SCADA wiedziała, czy dane są świeże.

Konwerter Finder 6M: gdy RS-485 to za mało
Przy dużej liczbie liczników lub długich trasach (RS-485 to standardowo do ok. 1000 m magistrali) warto zastosować konwerter Finder 6M. To bramka Modbus RTU ↔ Modbus TCP, którą konfigurujesz przez wbudowany serwer WWW: adres IP, maskę, bramę, port TCP oraz parametry RTU (prędkość, parzystość, bity stopu).

Klient TCP (np. Opta, SCADA lub komputer) inicjuje odczyty przez bramkę, a urządzenia RTU odpowiadają na swojej magistrali. Według prowadzących do jednej bramki może się jednocześnie łączyć kilku klientów, co ułatwia rozbudowę systemu.

Zastosowania danych z liczników energii
Dane pomiarowe przydają się przede wszystkim do:
- podliczników i rozliczeń najemców: galerie handlowe, biurowce, ogródki działkowe (zużycie okresowe = stan końcowy − stan początkowy),
- wykrywania anomalii: np. zużycie wyraźnie wyższe niż w poprzednich miesiącach,
- kontroli poboru poza godzinami pracy: stałe 2 kW przez 12 h nocą to 24 kWh, które widać od razu na wykresie,
- utrzymania predykcyjnego: wzrost poboru mocy maszyny może zapowiadać zużycie łożysk lub innych elementów.


Modbus TCP i zapis pomiarów do CSV w Pythonie
Na koniec Lucyna dodała w projekcie CODESYS moduł Ethernet i urządzenie Modbus TCP Server Device, a tablicę z odczytami wszystkich liczników zmapowała na rejestry dostępne dla klientów TCP.

Krótki skrypt w Pythonie łączy się z Optą po Modbus TCP i co 2 sekundy dopisuje do pliku CSV pomiary z trzech liczników. Więcej o samym połączeniu Pythona ze sterownikiem przeczytasz we wpisie Python i Modbus: jak połączyć Pythona ze sterownikiem PLC.

Wynik otwierasz w Excelu: w pierwszej kolumnie jest czas odczytu, a w kolejnych moc czynna, bierna, napięcie, prąd i pozostałe parametry każdego licznika. Tak przygotowane dane możesz dalej analizować w Excelu, Pythonie lub modelach AI.

Najczęstsze pytania
Ile liczników energii można podłączyć do jednej magistrali RS-485?
Klasyczny budżet to 32 jednostki obciążenia (UL). Dokładna liczba zależy od obciążenia wnoszonego przez konkretne urządzenia, dlatego przy 40 licznikach podziel instalację na dwie magistrale albo zastosuj gateway.
Czy można łączyć liczniki jednofazowe i trójfazowe na jednej magistrali?
Tak. Na magistrali Modbus RTU liczy się unikalny adres i zgodne parametry transmisji, a nie liczba faz licznika.
Czy licznik Finder 7M przechowuje historię pomiarów?
Nie, licznik nie buforuje danych. Historię tworzysz sam: zapisując odczyty w aplikacji Finder Toolbox albo zbierając je sterownikiem i zapisując np. do CSV.
Czy dane można zapisać do JSON zamiast CSV?
Aplikacja Finder Toolbox eksportuje CSV. Jeśli jednak odczytujesz dane Pythonem przez Modbus TCP, możesz zapisać je w dowolnym formacie, także w JSON.
Podsumowanie
Obsługa 40 liczników energii Modbus RTU na jednym sterowniku to kwestia dobrego planu: podziału magistrali, unikalnych adresów, rozsądnego czasu cyklu i obsługi timeoutów. Finder Opta z licznikami Finder 7M i opcjonalnym konwerterem 6M pozwala zbudować taki system w kilka godzin, a dane od razu trafiają do SCADA, Excela lub Pythona. Podstawy protokołu znajdziesz w naszym minikursie Modbus RTU i TCP. Jeśli chcesz opanować komunikację przemysłową kompleksowo, sprawdź kurs poniżej.
Projekt przedstawiony na webinarze oraz w artykule możesz pobrać tutaj: https://github.com/Control-Byte/Finder-OPTA-CODESYS-Energy-meter









