Integracja licznika energii Modbus TCP do lokalnego monitorowania
Integracja licznika energii Modbus TCP do lokalnego monitorowania
Modbus TCP umożliwia lokalnej aplikacji odczytywanie pomiarów elektrycznych bezpośrednio z licznika energii Wi-Fi IAMMETER.
Jest odpowiedni dla:
- systemów PLC i SCADA;
- Home Assistant i Node-RED;
- lokalnych systemów zarządzania energią (EMS);
- systemów zarządzania budynkiem (BMS);
- monitorowania i automatyzacji z interwałem sekundowym;
- aplikacji, które muszą działać bez IAMMETER-Cloud.
Licznik energii IAMMETER
│
│ Wi-Fi / LAN
│ Modbus TCP
▼
Home Assistant, Node-RED, PLC, SCADA lub niestandardowy EMS
Klient inicjuje każde żądanie. Licznik zwraca wartości rejestrów dla napięcia, prądu, mocy czynnej, energii importowanej, energii eksportowanej, współczynnika mocy, częstotliwości i innych obsługiwanych pomiarów.
Modbus TCP to lokalny interfejs odpytywania. Jeśli licznik ma publikować dane do brokera, użyj MQTT. Jeśli ma przesyłać dane na serwer klienta, zobacz Odbieranie danych IAMMETER na własnym serwerze.
1. Dlaczego warto używać Modbus TCP?
W porównaniu z odpytywaniem chmury lub okresowym przesyłaniem danych z licznika, Modbus TCP zapewnia:
- bezpośredni dostęp przez lokalną sieć;
- brak zależności od IAMMETER-Cloud dla ścieżki danych;
- standardowy interfejs oparty na rejestrach;
- odpytywanie co sekundę dla obsługiwanych aplikacji;
- podpisane wartości mocy czynnej dla dwukierunkowego monitorowania energii;
- kompatybilność z popularnymi narzędziami automatyki i przemysłowymi.
Typowe zastosowania obejmują:
- sterowanie obciążeniem na podstawie bieżącej mocy z sieci;
- lokalny odczyt produkcji solarnej, wymiany z siecią lub obciążenia obwodu;
- dodanie licznika energii do Home Assistant;
- zbieranie pomiarów w Node-RED;
- integracja danych elektrycznych z PLC, SCADA, EMS lub BMS.
2. Obsługiwane liczniki IAMMETER
Obecne modele liczników energii IAMMETER obsługują dostępne tryby integracji z Home Assistant i otwartej integracji, w tym Modbus TCP. Wycofany model WEM3162 nie jest uwzględniony w tym przewodniku.
Główna różnica między modelami to liczba i przeznaczenie kanałów pomiarowych:
- liczniki jednokanałowe udostępniają blok rejestrów fazy A;
- liczniki dwukanałowe lub split-phase używają odpowiednich bloków kanałów;
- liczniki trójfazowe udostępniają bloki faz A, B i C;
- obsługiwane liczniki mogą również udostępniać sumy całkowite i opcjonalne pomiary mocy biernej.
Zawsze weryfikuj odpowiedź rejestrów względem konkretnego modelu i wersji oprogramowania używanego w projekcie.
WEM3046T i WEM3046TE
WEM3046T i WEM3046TE mierzą wtórne wyjście 5 A zewnętrznego przekładnika prądowego.
Wartości prądu pierwotnego, mocy i energii muszą zatem uwzględniać odpowiedni przekładni CT strony pierwotnej. Ten wymóg skalowania wynika z konstrukcji wejścia CT 5 A licznika; nie jest to zachowanie specyficzne dla Modbus TCP ani platformy.
Pamiętaj o udokumentowaniu i przetestowaniu przetwarzania przekładni CT wszędzie tam, gdzie te modele są integrowane.
3. Parametry połączenia
Oficjalny przykład Modbus Poll IAMMETER używa:
| Parametr | Przykładowa wartość |
|---|---|
| Połączenie | Modbus TCP/IP |
| Host | Lokalny adres IP licznika |
| Port TCP | 502 |
| ID urządzenia/jednostki | 1 |
| Kod funkcji | 03 — Odczyt rejestrów holdingowych |
| Limit czasu odpowiedzi | 1000 ms w przykładzie |

Użyj adresu IP licznika w sieci LAN jako hosta. Zarezerwowanie adresu w routerze może zapobiec przerwaniu integracji po zmianie adresu DHCP.
Powyższe wartości to parametry pokazane w oficjalnym przykładzie. Potwierdź rzeczywiste oprogramowanie i konfigurację przed zakodowaniem ich na stałe w oprogramowaniu produkcyjnym.
4. Szybki test z Modbus Poll
Aby potwierdzić łączność przed konfiguracją pełnej platformy:
- podłącz komputer i licznik IAMMETER do tej samej sieci LAN;
- znajdź lokalny adres IP licznika;
- utwórz połączenie Modbus TCP/IP do portu
502; - ustaw ID urządzenia na
1; - wybierz kod funkcji
03; - żądaj rejestrów holdingowych zaczynając od adresu
0; - porównaj zwrócone surowe wartości z regułami skalowania poniżej.

Zrzut ekranu używa szybkości skanowania wyświetlania 500 ms do testowania. Do normalnego użytku dokumentacja IAMMETER zaleca odpytywanie co sekundę, a nie traktowanie najszybszego ustawienia klienta jako obsługiwanego interwału produkcyjnego.
Jeśli połączenie nie działa, sprawdź:
- czy licznik i klient są w tej samej osiągalnej sieci;
- adres IP licznika;
- port TCP 502 i reguły zapory sieciowej;
- ID urządzenia i kod funkcji;
- czy inna aplikacja już kontroluje zamierzony przepływ odpytywania;
- wersję oprogramowania licznika.
5. Typy danych rejestrów i skalowanie
IAMMETER używa 16-bitowych rejestrów holdingowych.
Wartości 16-bitowe
Napięcie, prąd, współczynnik mocy i częstotliwość używają jednego rejestru:
| Pomiar | Typ surowy | Konwersja |
|---|---|---|
| Napięcie | Unsigned 16-bit | V = raw / 100 |
| Prąd | Unsigned 16-bit | A = raw / 100 |
| Współczynnik mocy | Unsigned 16-bit | PF = raw / 1000 |
| Częstotliwość | Unsigned 16-bit | Hz = raw / 100 |
Wartości 32-bitowe
Moc czynna, energia skumulowana i wartości mocy biernej używają dwóch kolejnych rejestrów.
Oficjalny przykład Modbus Poll wyświetla starsze 16-bitowe słowo jako pierwsze. Połącz słowa jako:
raw32 = (register[n] << 16) | register[n + 1]
Interpretuj moc czynną i bierną jako podpisane wartości 32-bitowe. Interpretuj liczniki impulsów energii skumulowanej jako wartości 32-bitowe bez znaku.
| Pomiar | Typ surowy | Konwersja |
|---|---|---|
| Moc czynna | Signed 32-bit | W = raw32 |
| Energia importowana/oddana | Unsigned 32-bit | kWh = raw32 / 800 |
| Energia eksportowana/pobrana | Unsigned 32-bit | kWh = raw32 / 800 |
| Moc bierna | Signed 32-bit | var = raw32 |
| Energia bierna indukcyjna/pojemnościowa | Unsigned 32-bit | kvarh = raw32 / 1000 |
Podpisana moc czynna pozwala integracji rozróżnić przeciwne kierunki przepływu energii. Potwierdź konwencję znaków względem orientacji CT i okablowania aplikacji podczas uruchomienia.
6. Podstawowa mapa rejestrów Modbus
Adresy rejestrów poniżej są przesunięciami dziesiętnymi. Klient powinien używać kodu funkcji 03.
Faza A
| Adres | Długość | Pomiar | Konwersja |
|---|---|---|---|
| 0 | 1 | Napięcie | Unsigned, /100 V |
| 1 | 1 | Prąd | Unsigned, /100 A |
| 2 | 2 | Moc czynna | Signed, W |
| 4 | 2 | Energia importowana/oddana | Unsigned, /800 kWh |
| 6 | 2 | Energia eksportowana/pobrana | Unsigned, /800 kWh |
| 8 | 1 | Współczynnik mocy | Unsigned, /1000 |
| 9 | 1 | Identyfikator modelu w starszej mapie | Nie używać jako jedynego oznaczenia bieżącego modelu |
Faza B
| Adres | Długość | Pomiar | Konwersja |
|---|---|---|---|
| 10 | 1 | Napięcie | Unsigned, /100 V |
| 11 | 1 | Prąd | Unsigned, /100 A |
| 12 | 2 | Moc czynna | Signed, W |
| 14 | 2 | Energia importowana/oddana | Unsigned, /800 kWh |
| 16 | 2 | Energia eksportowana/pobrana | Unsigned, /800 kWh |
| 18 | 1 | Współczynnik mocy | Unsigned, /1000 |
| 19 | 1 | Zarezerwowane | Nieużywane |
Faza C
| Adres | Długość | Pomiar | Konwersja |
|---|---|---|---|
| 20 | 1 | Napięcie | Unsigned, /100 V |
| 21 | 1 | Prąd | Unsigned, /100 A |
| 22 | 2 | Moc czynna | Signed, W |
| 24 | 2 | Energia importowana/oddana | Unsigned, /800 kWh |
| 26 | 2 | Energia eksportowana/pobrana | Unsigned, /800 kWh |
| 28 | 1 | Współczynnik mocy | Unsigned, /1000 |
| 29 | 1 | Zarezerwowane | Nieużywane |
Częstotliwość i sumy całkowite
| Adres | Długość | Pomiar | Konwersja |
|---|---|---|---|
| 30 | 1 | Częstotliwość | Unsigned, /100 Hz |
| 31 | 1 | Zarezerwowane | Nieużywane |
| 32 | 2 | Całkowita moc czynna | Signed, W |
| 34 | 2 | Całkowita energia importowana/oddana | Unsigned, /800 kWh |
| 36 | 2 | Całkowita energia eksportowana/pobrana | Unsigned, /800 kWh |
Rejestry sum całkowitych są najbardziej istotne dla liczników wielokanałowych. W przypadku integracji jednokanałowej użyj odpowiednich wartości fazy A i zweryfikuj wszelkie zwrócone sumy całkowite.
7. Opcjonalne rejestry mocy biernej
Rejestry mocy biernej są dostępne tylko wtedy, gdy pomiar mocy biernej jest obsługiwany i włączony w danym liczniku i oprogramowaniu.
| Adres | Długość | Pomiar | Konwersja |
|---|---|---|---|
| 38 | 2 | Moc bierna fazy A | Signed, var |
| 40 | 2 | Energia bierna indukcyjna fazy A | Unsigned, /1000 kvarh |
| 42 | 2 | Energia bierna pojemnościowa fazy A | Unsigned, /1000 kvarh |
| 44 | 2 | Moc bierna fazy B | Signed, var |
| 46 | 2 | Energia bierna indukcyjna fazy B | Unsigned, /1000 kvarh |
| 48 | 2 | Energia bierna pojemnościowa fazy B | Unsigned, /1000 kvarh |
| 50 | 2 | Moc bierna fazy C | Signed, var |
| 52 | 2 | Energia bierna indukcyjna fazy C | Unsigned, /1000 kvarh |
| 54 | 2 | Energia bierna pojemnościowa fazy C | Unsigned, /1000 kvarh |
Nie zakładaj, że te wartości są aktywne w każdej instalacji. Potwierdź model, oprogramowanie i ustawienie pomiaru mocy biernej.
8. Rejestry informacji o urządzeniu
| Adres | Długość | Opis |
|---|---|---|
| 56 | 8 | Numer seryjny urządzenia |
| 64 | 1 | Czas pracy w sekundach |
Traktuj numery seryjne i inne identyfikatory urządzeń jako dane operacyjne. Unikaj publikowania niesanitowanych wartości na zrzutach ekranu, w logach lub publicznych przykładach.
9. Przykłady integracji
Home Assistant
Modbus TCP to opcja IAMMETER dla Home Assistant dla użytkowników, którzy potrzebują szybkich lokalnych odczytów i automatyzacji.
Użyj przewodnika integracji IAMMETER z Home Assistant jako głównego punktu wejścia HA. Rozdziela on konfigurację licznika od konfiguracji Home Assistant i linkuje do bieżących metod implementacji Modbus.
Wideo:
Node-RED
Node-RED może odpytywać rejestry holdingowe, normalizować surowe wartości i kierować pomiary do przepływów automatyzacji, baz danych lub pulpitów nawigacyjnych.
PLC, SCADA, EMS i BMS
W przypadku integracji przemysłowej lub komercyjnej:
- udokumentuj użytą wersję mapy rejestrów;
- zastosuj poprawną konwersję ze znakiem/bez znaku;
- zweryfikuj kolejność bajtów i słów;
- potwierdź orientację CT i przekładnię CT;
- zdefiniuj zachowanie limitów czasu i ponownych prób;
- monitoruj ostatnie udane odpytywanie;
- unikaj nieobsługiwanych szybkości odpytywania;
- przetestuj przerwanie sieci i odzyskiwanie.
Niestandardowe oprogramowanie
Niestandardowy klient Modbus TCP powinien rozdzielić:
- logikę połączenia i ponownych prób;
- odczyty rejestrów;
- dekodowanie 16-bitowe i 32-bitowe;
- mapowanie modelu licznika i kanałów;
- normalizację przekładni CT tam, gdzie wymagana;
- logikę przechowywania i aplikacji.
10. Modbus TCP czy inny interfejs IAMMETER?
| Wymaganie | Zalecany interfejs |
|---|---|
| Lokalne odpytywanie co sekundę | Modbus TCP |
| Proste pobieranie JSON przez LAN | Lokalne API HTTP |
| Publikowanie danych do wielu odbiorców | MQTT |
| Przesyłanie z licznika do usługi webowej klienta | HTTP/HTTPS |
| Przesyłanie z licznika do niestandardowego serwera socketowego | TCP/TLS |
| Porównanie gotowych platform | Przewodnik integracji open-source |
Powiązane przewodniki:
- Lokalne API IAMMETER i otwarte interfejsy
- Otwartoźródłowe platformy monitorowania energii
- Tworzenie własnego systemu monitorowania energii
- Używanie IAMMETER bez internetu lub chmury
11. Oprogramowanie układowe (firmware)
Modbus TCP nie jest już eksperymentalną aktualizacją opisaną tylko przez oryginalny proces wydania z 2022 roku. W przypadku bieżącej instalacji użyj najnowszego oprogramowania dostępnego dla modelu licznika:
Zanotuj wersję oprogramowania używaną do walidacji mapy rejestrów i zachowania odpytywania.
12. Informacje o starszym wydaniu
Ten artykuł został pierwotnie opublikowany, gdy obsługa Modbus TCP została wprowadzona poprzez aktualizację oprogramowania.
Starsze instrukcje odnosiły się do oprogramowania 75.68 jako wymagania wstępnego aktualizacji i prosiły użytkowników o żądanie aktualizacji przez system opinii. Ten proces jest zachowany tutaj tylko jako kontekst historyczny i nie powinien być używany dla nowej instalacji.
Oryginalny zasób wydania:
Ostatnia aktualizacja: 16 lipca 2026 r.