Modbus TCP-integrering av energimätare: Register och testning
Modbus TCP-integrering av energimätare för lokal övervakning
Modbus TCP gör att en lokal applikation kan läsa elmätningar direkt från en IAMMETER Wi-Fi-energimätare.
Det är lämpligt för:
- PLC- och SCADA-system;
- Home Assistant och Node-RED;
- lokala energihanteringssystem (EMS);
- byggnadsautomationssystem (BMS);
- övervakning och automatisering med en sekunds intervall;
- applikationer som måste fungera utan IAMMETER-Cloud.
IAMMETER energy meter
│
│ Wi-Fi / LAN
│ Modbus TCP
▼
Home Assistant, Node-RED, PLC, SCADA or custom EMS
Klienten initierar varje förfrågan. Mätaren returnerar registervärden för spänning, ström, aktiv effekt, importerad energi, exporterad energi, effektfaktor, frekvens och andra stödda mätningar.
Modbus TCP är ett lokalt pollningsgränssnitt. Om mätaren ska publicera data till en broker, använd MQTT. Om den ska ladda upp data till en kundserver, se Ta emot IAMMETER-data på din egen server.
1. Varför använda Modbus TCP?
Jämfört med molnpollning eller periodiska uppladdningar från mätaren ger Modbus TCP:
- direkt åtkomst över det lokala nätverket;
- inget beroende av IAMMETER-Cloud för dataflödet;
- ett standardiserat registerbaserat gränssnitt;
- pollning med en sekunds intervall för stödda applikationer;
- signerade aktiv-effektvärden för dubbelriktad energianalys;
- kompatibilitet med vanliga automatiserings- och industriverktyg.
Typiska användningsområden inkluderar:
- att styra en last utifrån realtidsdata från elnätet;
- att läsa solproduktion, nätutbyte eller kretsbelastning lokalt;
- att lägga till en energimätare i Home Assistant;
- att samla in mätningar i Node-RED;
- att integrera el-data i en PLC, SCADA, EMS eller BMS.
2. Stödda IAMMETER-mätare
Nuvarande IAMMETER-energimätarmodeller stöder de tillgängliga Home Assistant- och öppna integrationslägena, inklusive Modbus TCP. Den utgångna WEM3162 behandlas inte i den här guiden.
Den huvudsakliga skillnaden mellan modellerna är antalet och syftet med mätkanalerna:
- enkanalsmätare exponerar fas A-registerblocket;
- tvåkana- eller split-phase-mätare använder tillämpliga kanalblock;
- trefassmätare exponerar fas A-, B- och C-block;
- stödda mätare kan även exponera totalvärden och valfria reaktiva mätningar.
Validera alltid registerresponsen mot den exakta modellen och firmwaren som används i projektet.
WEM3046T och WEM3046TE
WEM3046T och WEM3046TE mäter 5 A-sekundärutgången från en extern strömtransformator.
Primärsidans ström-, effekt- och energivärden måste därför använda den tillämpliga externa CT-omvandlingen. Detta skalningskrav beror på mätarens 5 A CT-ingångsdesign; det är inte ett Modbus TCP- eller plattformsspecifikt beteende.
Håll CT-omvandlingsprocessen dokumenterad och testad där dessa modeller integreras.
3. Anslutningsparametrar
Det officiella IAMMETER Modbus Poll-exemplet använder:
| Parameter | Exempelvärde |
|---|---|
| Anslutning | Modbus TCP/IP |
| Värd | Mätarens lokala IP-adress |
| TCP-port | 502 |
| Enhet / Unit ID | 1 |
| Funktionskod | 03 — Läs hållarregister |
| Svarstimeout | 1000 ms i exemplet |

Använd mätarens LAN-IP-adress som värd. Att reservera adressen i routern kan förhindra att en integration bryts efter en DHCP-adressändring.
Värdena ovan är parametrarna som visas i det officiella exemplet. Bekräfta den faktiska firmwaren och platskonfigurationen innan du hårdkodar dem i produktionsprogramvara.
4. Snabbtest med Modbus Poll
För att bekräfta anslutningen innan du konfigurerar en komplett plattform:
- anslut datorn och IAMMETER-mätaren till samma LAN;
- hitta mätarens lokala IP-adress;
- skapa en Modbus TCP/IP-anslutning till port
502; - ställ in Device ID till
1; - välj Funktionskod
03; - begär hållarregister med start på adress
0; - jämför de returnerade råvärdena med skalningsreglerna nedan.

Skärmbilden använder en visningsfrekvens på 500 ms för testning. För normal användning rekommenderar IAMMETER-dokumentationen pollning med en sekunds intervall, snarare än att behandla den snabbaste klientinställningen som det stödda produktionsintervallet.
Om anslutningen misslyckas, kontrollera:
- att mätaren och klienten finns på samma nåbara nätverk;
- mätarens IP-adress;
- TCP-port 502 och brandväggsregler;
- Device ID och funktionskod;
- om en annan applikation redan styr den avsedda pollningsprocessen;
- mätarens firmwareversion.
5. Registerdatatyper och skalning
IAMMETER använder 16-bitars hållarregister.
16-bitars värden
Spänning, ström, effektfaktor och frekvens använder ett register:
| Mätning | Råtyp | Omvandling |
|---|---|---|
| Spänning | Osignerad 16-bit | V = raw / 100 |
| Ström | Osignerad 16-bit | A = raw / 100 |
| Effektfaktor | Osignerad 16-bit | PF = raw / 1000 |
| Frekvens | Osignerad 16-bit | Hz = raw / 100 |
32-bitars värden
Aktiv effekt, kumulativ energi och reaktiva värden använder två på varandra följande register.
Det officiella Modbus Poll-exemplet visar det höga 16-bitarsordet först. Kombinera orden som:
raw32 = (register[n] << 16) | register[n + 1]
Tolka aktiv och reaktiv effekt som signerade 32-bitarsvärden. Tolka kumulativa energipulsräknare som osignerade 32-bitarsvärden.
| Mätning | Råtyp | Omvandling |
|---|---|---|
| Aktiv effekt | Signerad 32-bit | W = raw32 |
| Importerad/framåtriktad energi | Osignerad 32-bit | kWh = raw32 / 800 |
| Exporterad/bakåtriktad energi | Osignerad 32-bit | kWh = raw32 / 800 |
| Reaktiv effekt | Signerad 32-bit | var = raw32 |
| Induktiv/kapacitiv reaktiv energi | Osignerad 32-bit | kvarh = raw32 / 1000 |
Signerad aktiv effekt gör att en integration kan skilja mellan motsatta effektriktningar. Bekräfta teckenkonventionen mot CT-orienteringen och applikationskopplingen vid driftsättning.
6. Grundläggande Modbus-registerkarta
Registeradresserna nedan är decimala offset. Klienten bör använda Funktionskod 03.
Fas A
| Adress | Längd | Mätning | Omvandling |
|---|---|---|---|
| 0 | 1 | Spänning | Osignerad, /100 V |
| 1 | 1 | Ström | Osignerad, /100 A |
| 2 | 2 | Aktiv effekt | Signerad, W |
| 4 | 2 | Importerad/framåtriktad energi | Osignerad, /800 kWh |
| 6 | 2 | Exporterad/bakåtriktad energi | Osignerad, /800 kWh |
| 8 | 1 | Effektfaktor | Osignerad, /1000 |
| 9 | 1 | Modellidentifierare i den äldre kartan | Använd inte som enda källa till aktuell modellkatalog |
Fas B
| Adress | Längd | Mätning | Omvandling |
|---|---|---|---|
| 10 | 1 | Spänning | Osignerad, /100 V |
| 11 | 1 | Ström | Osignerad, /100 A |
| 12 | 2 | Aktiv effekt | Signerad, W |
| 14 | 2 | Importerad/framåtriktad energi | Osignerad, /800 kWh |
| 16 | 2 | Exporterad/bakåtriktad energi | Osignerad, /800 kWh |
| 18 | 1 | Effektfaktor | Osignerad, /1000 |
| 19 | 1 | Reserverad | Används inte |
Fas C
| Adress | Längd | Mätning | Omvandling |
|---|---|---|---|
| 20 | 1 | Spänning | Osignerad, /100 V |
| 21 | 1 | Ström | Osignerad, /100 A |
| 22 | 2 | Aktiv effekt | Signerad, W |
| 24 | 2 | Importerad/framåtriktad energi | Osignerad, /800 kWh |
| 26 | 2 | Exporterad/bakåtriktad energi | Osignerad, /800 kWh |
| 28 | 1 | Effektfaktor | Osignerad, /1000 |
| 29 | 1 | Reserverad | Används inte |
Frekvens och totalvärden
| Adress | Längd | Mätning | Omvandling |
|---|---|---|---|
| 30 | 1 | Frekvens | Osignerad, /100 Hz |
| 31 | 1 | Reserverad | Används inte |
| 32 | 2 | Total aktiv effekt | Signerad, W |
| 34 | 2 | Total importerad/framåtriktad energi | Osignerad, /800 kWh |
| 36 | 2 | Total exporterad/bakåtriktad energi | Osignerad, /800 kWh |
Totalregistren är mest relevanta för flerkanalsmätare. För en enkanalsintegration, använd tillämpliga fas A-värden och validera eventuella returnerade totalvärden.
7. Valfria reaktiva register
Reaktiva register är endast tillgängliga när reaktiv mätning stöds och är aktiverad av den tillämpliga mätaren och firmwaren.
| Adress | Längd | Mätning | Omvandling |
|---|---|---|---|
| 38 | 2 | Fas A reaktiv effekt | Signerad, var |
| 40 | 2 | Fas A induktiv reaktiv energi | Osignerad, /1000 kvarh |
| 42 | 2 | Fas A kapacitiv reaktiv energi | Osignerad, /1000 kvarh |
| 44 | 2 | Fas B reaktiv effekt | Signerad, var |
| 46 | 2 | Fas B induktiv reaktiv energi | Osignerad, /1000 kvarh |
| 48 | 2 | Fas B kapacitiv reaktiv energi | Osignerad, /1000 kvarh |
| 50 | 2 | Fas C reaktiv effekt | Signerad, var |
| 52 | 2 | Fas C induktiv reaktiv energi | Osignerad, /1000 kvarh |
| 54 | 2 | Fas C kapacitiv reaktiv energi | Osignerad, /1000 kvarh |
Anta inte att dessa värden är aktiva på varje installation. Bekräfta modell, firmware och inställningen för reaktiv mätning.
8. Enhetsinformationsregister
| Adress | Längd | Beskrivning |
|---|---|---|
| 56 | 8 | Enhetens serienummer |
| 64 | 1 | Drifttid i sekunder |
Behandla serienummer och andra enhetsidentifierare som operationsdata. Undvik att publicera osanitiserade värden i skärmbilder, loggar eller offentliga exempel.
9. Integrationsexempel
Home Assistant
Modbus TCP är IAMMETER-alternativet för Home Assistant för användare som behöver snabba lokala avläsningar och automatisering.
Använd IAMMETER Home Assistant-integrationsguiden som huvudingång för HA. Den separerar mätarsidans konfiguration från Home Assistant-konfigurationen och länkar till de aktuella Modbus-implementeringsmetoderna.
Video:
Node-RED
Node-RED kan polla hållarregistren, normalisera råvärdena och skicka mätningarna vidare till automatiseringsflöden, databaser eller dashboards.
PLC, SCADA, EMS och BMS
För en industriell eller kommersiell integration:
- dokumentera vilken registerkartversion som används;
- tillämpa korrekt signerad/osignerad omvandling;
- validera byte- och ordningsföljd;
- bekräfta CT-orientering och CT-omvandling;
- definiera timeout- och retry-beteende;
- övervaka den senaste lyckade pollningen;
- undvik ej stödda pollningsfrekvenser;
- testa nätverksavbrott och återställning.
Egen programvara
En egen Modbus TCP-klient bör separera:
- anslutnings- och retry-logik;
- registeravläsningar;
- 16- och 32-bitars avkodning;
- mätarmodell- och kanalmappning;
- CT-omvandlingsnormalisering där det krävs;
- lagring och applikationslogik.
10. Modbus TCP eller ett annat IAMMETER-gränssnitt?
| Krav | Rekommenderat gränssnitt |
|---|---|
| Pollning med en sekunds intervall | Modbus TCP |
| Enkel JSON-hämtning över LAN | Lokalt HTTP-API |
| Publicera data till flera konsumenter | MQTT |
| Mätaren laddar upp till en kundwebbtjänst | HTTP/HTTPS |
| Mätaren laddar upp till en anpassad socket-server | TCP/TLS |
| Färdig plattformsjämförelse | Guide för öppen källkodsintegration |
Relaterade guider:
- IAMMETER lokala API:er och öppna gränssnitt
- Plattformar för energianalys med öppen källkod
- Utveckla ditt eget energianalyssystem
- Använd IAMMETER utan internet eller moln
11. Firmware
Modbus TCP är inte längre en experimentell uppgradering som endast beskrivs av den ursprungliga 2022-releaseprocessen. För en aktuell installation, använd den senaste firmware som finns tillgänglig för mätarmodellen:
Dokumentera den firmwareversion som används för att validera registerkartan och pollningsbeteendet.
12. Äldre versionsinformation
Den här artikeln publicerades ursprungligen när Modbus TCP-stöd introducerades genom en firmwareuppgradering.
De äldre instruktionerna hänvisade till firmware 75.68 som ett uppgraderingskrav och bad användare att begära uppgradering via återkopplingssystemet. Den processen behålls här endast som historisk kontext och bör inte användas för en ny installation.
Ursprunglig release-resurs:
Senast uppdaterad: 16 juli 2026