PZEM-004T Manual (dansk)
đ PZEM-004T v3.0 â Dansk manual
Denne manual er en dansk oversĂŚttelse af producentens vejledning til PZEM-004T AC-kommunikationsmodul. Modulet mĂĽler AC-spĂŚnding, strøm, aktiv effekt, frekvens, effektfaktor og aktiv energi. Det har ikke selv et display â alle data lĂŚses ud via TTL-interfacet (seriel/UART) af din Arduino, ESP32, Raspberry Pi eller en PC med en USB-TTL-adapter.
Modulet findes i to udgaver:
- PZEM-004T-10A: MĂĽleomrĂĽde 10 A (indbygget shunt)
- PZEM-004T-100A: MĂĽleomrĂĽde 100 A (ekstern strømtransformer / strømtang) â det er denne udgave, KompoNemt sĂŚlger
â ď¸ Sikkerhed først
Modulet tilsluttes 230 V netspÌnding. Arbejd aldrig pü kredsløbet med strøm pü, og sørg for at alle 230V-forbindelser er isolerede og berøringssikre (brug fx et lukket kabinet). Fast installation i en eltavle eller i husets elinstallation mü kun udføres af en autoriseret elinstallatør.
1. Funktioner og mĂĽleomrĂĽder
| Müling | Müleomrüde | Opløsning | Nøjagtighed |
|---|---|---|---|
| đ SpĂŚnding | 80â260 V | 0,1 V | 0,5 % |
| ⥠Strøm | 0â10 A (10A-udgave) 0â100 A (100A-udgave) |
0,001 A | 0,5 % |
| đ Aktiv effekt | 0â2,3 kW (10A-udgave) 0â23 kW (100A-udgave) |
0,1 W | 0,5 % |
| đď¸ Effektfaktor | 0,00â1,00 | 0,01 | 1 % |
| ă°ď¸ Frekvens | 45â65 Hz | 0,1 Hz | 0,5 % |
| đ Aktiv energi | 0â9.999,99 kWh | 1 Wh | 0,5 % |
StartvĂŚrdier
- Mindste mülbare strøm: 0,01 A (10A-udgave) / 0,02 A (100A-udgave)
- Mindste mĂĽlbare effekt: 0,4 W
Visningsformat
- Effekt: Under 1000 W vises ĂŠn decimal (fx 999,9 W). Fra 1000 W vises kun hele tal (fx 1000 W).
- Energi: Under 10 kWh vises enheden Wh (1 kWh = 1000 Wh), fx 9999 Wh. Fra 10 kWh vises enheden kWh, fx 9999,99 kWh.
- Nulstilling af energi: Sker via software (se afsnit 2.5).
Alarm ved overbelastning
Du kan indstille en grĂŚnsevĂŚrdi for den aktive effekt. NĂĽr den mĂĽlte effekt overstiger grĂŚnsen, gĂĽr modulet i alarm (kan aflĂŚses i register 0x0009).
Kommunikationsinterface
UART-interface (TTL), galvanisk adskilt fra 230V-siden med optokoblere.
2. Kommunikationsprotokol
2.1 Fysisk lag
UART-kommunikation. Baudrate kan vĂŚlges (standard 9600), 8 databit, 1 stopbit, ingen paritet (9600 8N1).
2.2 Applikationslag
Modulet bruger Modbus-RTU. Følgende funktionskoder understøttes:
-
0x03â LĂŚs holding-register (indstillinger) -
0x04â LĂŚs input-register (mĂĽleresultater) -
0x06â Skriv enkelt register -
0x41â Kalibrering (kun til fabriksbrug) -
0x42â Nulstil energitĂŚller
Funktionskode 0x41 er kun til intern brug (adressen kan kun vĂŚre 0xF8) og bruges ved fabrikskalibrering og service. Efter funktionskoden sendes et 16-bit kodeord â standardkodeordet er 0x3721.
Adresser: Slave-adressen kan vĂŚre 0x01â0xF7. Adressen 0x00 er broadcast-adresse â her svarer modulet ikke. Adressen 0xF8 er en generel adresse, som kun mĂĽ bruges nĂĽr der er ĂŠt modul pĂĽ bussen; den kan bruges til kalibrering m.m.
2.3 AflĂŚsning af mĂĽleresultater
Masterens kommando (i alt 8 bytes):
Slave-adresse + 0x04 + Registeradresse (høj) + Registeradresse (lav) + Antal registre (høj) + Antal registre (lav) + CRC (høj) + CRC (lav)
Modulets svar er en af to typer:
Korrekt svar: Slave-adresse + 0x04 + Antal bytes + Register 1 data (høj) + Register 1 data (lav) + ... + CRC (høj) + CRC (lav) Fejlsvar: Slave-adresse + 0x84 + Fejlkode + CRC (høj) + CRC (lav)
Fejlkoder (gĂŚlder alle kommandoer):
-
0x01â Ulovlig funktion -
0x02â Ulovlig adresse -
0x03â Ulovlige data -
0x04â Slave-fejl
Registre med mĂĽleresultater:
| Register | Beskrivelse | Opløsning |
|---|---|---|
0x0000 |
SpĂŚnding | 1 LSB = 0,1 V |
0x0001 |
Strøm â nederste 16 bit | 1 LSB = 0,001 A |
0x0002 |
Strøm â øverste 16 bit | |
0x0003 |
Effekt â nederste 16 bit | 1 LSB = 0,1 W |
0x0004 |
Effekt â øverste 16 bit | |
0x0005 |
Energi â nederste 16 bit | 1 LSB = 1 Wh |
0x0006 |
Energi â øverste 16 bit | |
0x0007 |
Frekvens | 1 LSB = 0,1 Hz |
0x0008 |
Effektfaktor | 1 LSB = 0,01 |
0x0009 |
Alarmstatus |
0xFFFF = alarm, 0x0000 = ingen alarm |
Eksempel (CRC-koden er erstattet af 0xHH og 0xLL â det samme gĂŚlder resten af manualen). Masteren sender:
0x01 + 0x04 + 0x00 + 0x00 + 0x00 + 0x0A + 0xHH + 0xLL
Det betyder: lĂŚs 10 registre fra slave-adresse 0x01, startende ved register 0x0000. Korrekt svar fra modulet:
0x01 + 0x04 + 0x14 + 0x08 + 0x98 + 0x03 + 0xE8 + 0x00 + 0x00 + 0x08 + 0x98 + 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x00 + 0x01 + 0xF4 + 0x00 + 0x64 + 0x00 + 0x00 + 0xHH + 0xLL
Dataene betyder:
- SpĂŚnding er
0x0898= 2200 decimalt â 220,0 V - Strøm er
0x000003E8= 1000 â 1,000 A - Effekt er
0x00000898= 2200 â 220,0 W - Energi er
0x00000000= 0 â 0 Wh - Frekvens er
0x01F4= 500 â 50,0 Hz - Effektfaktor er
0x0064= 100 â 1,00 - Alarmstatus er
0x0000â effekten er under grĂŚnsevĂŚrdien
2.4 LĂŚs og ĂŚndr modulets indstillinger
Det er kun slave-adressen og effektalarmens grĂŚnsevĂŚrdi, der kan lĂŚses og ĂŚndres:
| Register | Beskrivelse | Opløsning |
|---|---|---|
0x0001 |
GrĂŚnsevĂŚrdi for effektalarm | 1 LSB = 1 W |
0x0002 |
Modbus-RTU-adresse | OmrĂĽde 0x0001â0x00F7
|
Indstillingerne lĂŚses pĂĽ samme mĂĽde som mĂĽleresultaterne (afsnit 2.3) â du skal bare bruge funktionskode 0x03 i stedet for 0x04.
Kommando til at ĂŚndre en indstilling (i alt 8 bytes):
Slave-adresse + 0x06 + Registeradresse (høj) + Registeradresse (lav) + RegistervÌrdi (høj) + RegistervÌrdi (lav) + CRC (høj) + CRC (lav)
Korrekt svar: Slave-adresse + 0x06 + Antal bytes + Registeradresse (lav) + RegistervÌrdi (høj) + RegistervÌrdi (lav) + CRC (høj) + CRC (lav) Fejlsvar: Slave-adresse + 0x86 + Fejlkode + CRC (høj) + CRC (lav)
Eksempel â sĂŚt alarmgrĂŚnsen:
0x01 + 0x06 + 0x00 + 0x01 + 0x08 + 0xFC + 0xHH + 0xLL
SĂŚtter register 0x0001 (effektalarm) til 0x08FC = 2300 W. Lykkes det, sender modulet prĂŚcis de samme data tilbage.
Eksempel â skift slave-adresse:
0x01 + 0x06 + 0x00 + 0x02 + 0x00 + 0x05 + 0xHH + 0xLL
SĂŚtter register 0x0002 (Modbus-RTU-adresse) til 0x0005. Lykkes det, sender modulet de samme data tilbage.
đĄ Tip fra vĂŚrkstedet: Vil du have flere PZEM-moduler pĂĽ samme serielle linje (fx ĂŠt pr. fase), sĂĽ giv dem hver sin adresse â ĂŠt ad gangen â før du kobler dem sammen.
2.5 Nulstil energitĂŚlleren
Kommando (4 bytes): Slave-adresse + 0x42 + CRC (høj) + CRC (lav) Korrekt svar: Slave-adresse + 0x42 + CRC (høj) + CRC (lav) Fejlsvar: Slave-adresse + 0xC2 + Fejlkode + CRC (høj) + CRC (lav)
2.6 Kalibrering
Kommando (6 bytes): 0xF8 + 0x41 + 0x37 + 0x21 + CRC (høj) + CRC (lav) Korrekt svar: 0xF8 + 0x41 + 0x37 + 0x21 + CRC (høj) + CRC (lav) Fejlsvar: 0xF8 + 0xC1 + Fejlkode + CRC (høj) + CRC (lav)
BemĂŚrk: Kalibreringen tager 3â4 sekunder. Hvis den lykkes, gĂĽr der 3â4 sekunder, fra masteren har sendt kommandoen, til svaret kommer fra modulet. Kalibrering er normalt kun nødvendig pĂĽ fabrikken.
2.7 CRC-kontrol
CRC-kontrollen er 16 bit og fylder to bytes. Generatorpolynomiet er X16 + X15 + X2 + 1, og vĂŚrdien der bruges i beregningen er 0xA001 (standard Modbus CRC-16). CRC beregnes over alle bytes i rammen undtagen selve CRC-bytes.
3. Funktionsdiagram
Internt bestür modulet af en AC-strømforsyning, et signalkredsløb og et mülesystem. Mülesystemet er adskilt fra TTL-interfacet med optokoblere, sü din microcontroller er galvanisk isoleret fra 230V-siden.
- PZEM-004T-10A: Klemmerne hedder N-OUT, N-IN, L-IN og L-OUT â strømmen løber gennem modulets indbyggede shunt.
- PZEM-004T-100A: Klemmerne hedder CT, CT, N og L â strømmen mĂĽles via den eksterne strømtang (CT).
TTL-siden har 4 stifter:
4. Tilslutning (100A-udgaven)
- SpÌndingsmüling: Forbind L (fase) og N (nul) til modulets L- og N-klemmer. Det er herfra, modulet müler spÌnding og samtidig für strøm til mülesiden.
- Strømtang (CT): SĂŚt strømtangens to ledninger i de to CT-klemmer. Klik tangen rundt om ĂŠn af ledningerne til belastningen (typisk fasen L) â aldrig rundt om bĂĽde L og N, sĂĽ udligner de hinanden og du mĂĽler 0 A.
- Belastning: Belastningen (fx en lampe eller et apparat) sidder pĂĽ L og N som normalt â strømmen skal bare løbe gennem tangen.
- TTL-side: Forbind GND, TX, RX og 5V til din microcontroller eller en USB-TTL-adapter (TX â RX og RX â TX).
SpĂŚnding: AC 80â260 V ¡ Strøm: 0â100 A
10A-udgaven tilsluttes i stedet direkte i serie: strømmen til belastningen løber ind og ud gennem modulets klemmer (maks. 10 A).
5. Ăvrige bemĂŚrkninger
5.1 TTL-interfacet er passivt
TTL-interfacet er passivt og skal have ekstern strømforsyning. Det betyder, at alle fire stifter (5V, RX, TX og GND) skal vĂŚre tilsluttet under kommunikation â ellers kan modulet ikke kommunikere.
5.2 Driftstemperatur
-20 °C til +60 °C.
đ§ Kom hurtigt i gang
-
Arduino / ESP32: Brug biblioteket
PZEM004Tv30af Jakub Mandula (findes i Arduino Library Manager). PĂĽ ESP32 kan du bruge en hardware-UART, fx Serial2. -
ESPHome: Brug platformen
pzemacsammen med enuart- ogmodbus-komponent â sĂĽ fĂĽr du spĂŚnding, strøm, effekt, energi, frekvens og effektfaktor direkte i Home Assistant. - Tasmota: Understøtter PZEM-004T v3 direkte (vĂŚlg "PZEM016 Rx" og "PZEM0XX Tx" under modulkonfiguration).
Har du spørgsmĂĽl? Skriv til os â vi hjĂŚlper gerne. đ§