TapHome

Orno OR-WE-517

Modbus RTU
Beküldő
Utoljára frissítve: 03. 2026
Orno OR-WE-517

Az Orno OR-WE-517 egy DIN sínre szerelhető 3-fázisú többtarifás energiamérő, amely Modbus RTU protokollon kommunikál RS-485-ön keresztül. Közvetlenül csatlakoztatható mérő, fázisonként legfeljebb 80 A névleges árammal, MID tanúsítvánnyal (2014/32/EU irányelv), és 4,3 modult foglal el a TH-35 sínen. A TapHome sablon 11 villamos mérőt biztosít, amelyek lefedik a fázisonkénti áramot, a fázisonkénti energiát, a teljes 3-fázisú energiát és a 4-tarifás energiaszámlálókat, szervizattribútumokkal a feszültség, meddő/látszólagos teljesítmény, teljesítménytényező és kétirányú (vételezett/betáplált) energiabontás számára.

Minden mérési regiszter IEEE 754 Float32 kódolást használ (2 Modbus szó értékenként), a 03-as funkciókóddal olvasva (holding regiszterek). A sablon szervizakciókat is biztosít a mérő valós idejű órájának beállításához, a tarifás ütemezések konfigurálásához és a Modbus slave ID módosításához.

Hardvercsatlakoztatás

RS-485 bekötés

Az OR-WE-517 beépített RS-485 interfésszel rendelkezik a Modbus RTU kommunikációhoz. Csatlakoztasd a mérőt a TapHome Core RS-485 buszhoz kéteres árnyékolt kommunikációs kábellel:

  • A kapocs a mérőn az A+/D+ kapocshoz a TapHome RS-485-ön
  • B kapocs a mérőn a B-/D- kapocshoz a TapHome RS-485-ön

Használj daisy-chain topológiát. A csillag vagy csonk topológia jel-visszaverődéseket és kommunikációs hibákat okoz. A konverter és a mérő közötti összeköttetést az RS-485 szabványnak megfelelő kéteres kommunikációs kábellel kell megvalósítani.

A kezdeti konfiguráláshoz és teszteléshez szabványos USB-RS485 konverter is használható. A konverter nem tartozéka a mérőnek.

Konfiguráció

Kommunikációs paraméterek

Az alapértelmezett Modbus beállítások megfelelnek a TapHome sablonnak módosítás nélkül:

ParaméterAlapértelmezettTartomány
Átviteli sebesség9600 bps1200, 2400, 4800, 9600
Adatbitek8Fix
ParitásPárosFix
Stopbitek1Fix
Slave ID11–255

A kommunikációs keret 11 bites formátumot használ: 1 start bit, 8 adatbit, 1 páros paritásbit és 1 stop bit CRC ellenőrzéssel.

Slave ID

Több mérő ugyanazon RS-485 buszra történő csatlakoztatásakor minden mérőnek egyedi Slave ID-vel kell rendelkeznie. Az alapértelmezett Slave ID 1 (1-től 255-ig konfigurálható a H:2 holding regiszteren keresztül). A TapHome sablon importálása után állítsd be a Slave ID-t a modul csatlakozási beállításaiban a fizikai mérőnek megfelelően. A sablon egy Slave ID szervizakciót is biztosít a cím távoli módosításához Modbuson keresztül.

Az aktuális Slave ID és átviteli sebesség a mérő LCD kijelzőjén látható (42. és 43. oldal).

Eszközképességek

A sablon 11 ModbusElectricityMeter és ModbusVariable eszközt hoz létre, amelyek három csoportba szerveződnek: fázisonkénti áramérzékelők, fázisonkénti energiamérők és tarifaalapú energiaszámlálók. Egy teljes 3-fázisú energiaeszköz összesíti az összes fázist további rendszerszintű attribútumokkal.

Fázisonkénti áramfigyelés

Három eszköz biztosít valós idejű árammérést minden fázishoz:

  • L1 áram — 1. fázis árama (H:22, A) az L1 feszültséggel szervizattribútumként (H:14, V)
  • L2 áram — 2. fázis árama (H:24, A) az L2 feszültséggel (H:16, V)
  • L3 áram — 3. fázis árama (H:26, A) az L3 feszültséggel (H:18, V)
Fázisonkénti energiamérés

Három eszköz követi a hatásos energia fogyasztást és teljesítményfelvételt fázisonként, átfogó szervizattribútum-készlettel:

  • L1 fázis — összes hatásos energia (H:258, kWh) és hatásos teljesítmény (H:30, kW). A szervizattribútumok tartalmazzák a feszültséget, áramot, meddő teljesítményt (kVAr), látszólagos teljesítményt (kVA), teljesítménytényezőt és kétirányú energiaszámlálókat (vételezett/betáplált hatásos és meddő energia).
  • L2 fázis — összes hatásos energia (H:260, kWh) és hatásos teljesítmény (H:32, kW). Ugyanazok a fázisonkénti szervizattribútumok, mint az L1-nél.
  • L3 fázis — összes hatásos energia (H:262, kWh) és hatásos teljesítmény (H:34, kW). Ugyanazok a fázisonkénti szervizattribútumok, mint az L1-nél.
Teljes 3-fázisú energia

Egy eszköz biztosítja a rendszerszintű összesítéseket:

  • Összes energia (3-fázisú) — összes hatásos energia (H:256, kWh) és összes hatásos teljesítményfelvétel (H:28, kW). A szervizattribútumok tartalmazzák a hálózati frekvenciát (Hz), az összes meddő teljesítményt (kVAr), az összes látszólagos teljesítményt (kVA), az összes teljesítménytényezőt és kétirányú energiaszámlálókat (vételezett/betáplált hatásos és meddő energia).
Tarifás energiaszámlálók

Négy eszköz követi a kumulatív energiát tarifazónánként (T1–T4):

  • T1 tarifaT4 tarifa — mindegyik az összes hatásos energiát jelenti (kWh) szervizattribútumokkal a vételezett/betáplált hatásos energiához és a vételezett/betáplált/összes meddő energiához. A tarifás mérők csak kumulatív energiát követnek, nem pillanatnyi teljesítményfelvételt.

A mérő naponta legfeljebb 8 időintervallumot támogat (hétfőtől vasárnapig egyenként) a T1–T4 tarifazónák hozzárendeléséhez. A tarifás ütemezések a Set Tariffs szervizakcióval konfigurálhatók, amely lehetővé teszi az intervallumok programozását egy adott napra vagy az összes napra egyszerre.

A 4-tarifás képesség az OR-WE-517 fő megkülönböztető jellemzője az OR-WE-516-hoz képest (amely támogatja az RS-485-öt, de nincs tarifás ütemezése). Az OR-WE-513-nak sem RS-485, sem tarifatámogatása nincs.

Szervizakciók

A sablon három szervizakciót biztosít a távoli konfiguráláshoz:

  • Date/Time — a mérő belső valós idejű órájának beállítása (év, hónap, nap, óra, perc, másodperc és a hét napja) a H:60–H:65 regisztereken keresztül
  • Set Tariffs — legfeljebb 8 napi tarifaintervallum (T1–T4) konfigurálása egy kiválasztott napra vagy az összes napra egyszerre, a tarifás ütemezési regiszterekbe írva H:768-tól
  • LCD Cycle time — az LCD kijelző automatikus lapozási intervallumának beállítása (1–120 másodperc)
További képességek

Az OR-WE-517 regisztereket is biztosít a fázisonkénti összes meddő energiához (L1/L2/L3), sorozatszámhoz, firmware és hardver verzióhoz, kombinált konfigurációs kódhoz és az ünnepnap/hétvégi tarifák hozzárendelési regiszteréhez. Ezek egy jövőbeli sablonfrissítésben adhatók hozzá.

Hibaelhárítás

Nincs kommunikáció
  1. Ellenőrizd az RS-485 A/B kapcsok bekötését – cseréld fel az A-t és B-t, ha a kommunikáció nem működik, mivel a jelölési konvenciók gyártónként eltérhetnek
  2. Győződj meg arról, hogy az átviteli sebesség a TapHome-ban megegyezik a mérő beállításával (alapértelmezett 9600 bps, az LCD 43. oldalán látható)
  3. Ellenőrizd, hogy a Slave ID megegyezik (alapértelmezett 1, az LCD 42. oldalán látható „Id 255" formátumban, ahol 255 az aktuális cím)
  4. Ellenőrizd, hogy a paritás beállítás Even (8E1) – ez a mérő alapértelmezetten páros paritást használ, ellentétben egyes mérőkkel, amelyek alapértelmezetten paritás nélküliek (8N1)
Helytelen mérési értékek
  1. Győződj meg arról, hogy a mérő 3-fázisú 4-vezetékes rendszerként van bekötve, mindhárom fázisvezetékkel és a nullavezetékkel a mérő kapcsain keresztül vezetve
  2. Kétirányú mérésnél (vételezett/betáplált energia) ellenőrizd a CT irányt vagy a vezeték irányát az energiaáramlásnak megfelelően – fordított bekötés esetén a vételezett energia betápláltként regisztrálódik
Kommunikáció Ethernet konverteren keresztül

Az OR-WE-517 RS-485-Ethernet konverteren keresztül is elérhető (pl. Waveshare RS485 to ETH). Ilyen konverter használatakor a protokolltípust RTU over TCP-re kell beállítani (nem szabványos Modbus TCP). A szabványos TCP keretezés ezzel a mérővel nem működik.

Elérhető eszközök

Orno OR-WE-517 Modul
Szerviz attribútumok
Slave ID
Átviteli sebesség
LCD ciklusidő
CT arányÁramváltó arány — csak CT típusú mérőkre vonatkozik, közvetlen csatlakozású telepítésekre nem
S0 kimeneti arány
IdőAktuális dátum és idő a mérő belső valós idejű órájából
Tarifák (H)
Tarifák (K)
Tarifák (Sze)
Tarifák (Cs)
Tarifák (P)
Tarifák (Szo)
Tarifák (V)
Szerviz műveletek
Dátum/IdőA mérő belső valós idejű órájának beállítása — dátum, idő és a hét napja a tarifaterv működéséhez
Tarifák beállításaLegfeljebb 8 napi tarifaintervallum (T1–T4) konfigurálása egy kiválasztott napra vagy egyszerre minden napra
Slave IDModbus slave cím módosítása (1–255) több mérőt tartalmazó RS-485 busz konfigurációkhoz
LCD ciklusidőAz LCD kijelző automatikus görgetési intervallumának beállítása másodpercekben

OR-WE-517

Szerviz attribútumok
${device_SlaveId}
modbusr(H, 0x02, Uint16)
${baud_rate} [bps]
modbusr(H, 0x03, Uint16)
LCD ${cycle_time} [s]
modbusr(H, 0x0d, Uint16)
CT Rate
modbusr(H, 0x08, Uint16)
S0 output rate [imp/kWh]
modbusr(H, 0x09, Float)
${time}
var ret := modbusr(H, 0x3c, Uint32);
var ret1 := modbusr(H, 0x3e, Uint16);
var xx := modbusr(H, 0x40, Uint16);
tostring(getbyte(ret,1), "X2") 
+ ":" + tostring(getbyte(ret,2), "X2")
+ ":" + tostring(getbyte(ret,3), "X2")
+ " " + switch(getbyte(ret,0), 
1, "(Mo)",
2, "(Tu)",
3, "(We)",
4, "(Th)",
5, "(Fr)",
6, "(Sa)",
7, "(Su)", "Err")
+ " " + tostring(getbyte(ret1,1), "X2")
+ "." + tostring(getbyte(ret1,0), "X2")
+ ".20" + modbusr(H, 0x3f, LittleEndianUint16);

${tariff}s (Mo)
var wd1 := modbusr(H, 0x300, Uint32);
var wd2 := modbusr(H, 0x300 +2, Uint32);
var wd3 := modbusr(H, 0x300 +4, Uint32);
var wd4 := modbusr(H, 0x300 +6, Uint32);
var wd5 := modbusr(H, 0x300 +8, Uint32);
var wd6 := modbusr(H, 0x300 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (Tu)
var wd1 := modbusr(H, 0x30c, Uint32);
var wd2 := modbusr(H, 0x30c +2, Uint32);
var wd3 := modbusr(H, 0x30c +4, Uint32);
var wd4 := modbusr(H, 0x30c +6, Uint32);
var wd5 := modbusr(H, 0x30c +8, Uint32);
var wd6 := modbusr(H, 0x30c +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (We)
var wd1 := modbusr(H, 0x318, Uint32);
var wd2 := modbusr(H, 0x318 +2, Uint32);
var wd3 := modbusr(H, 0x318 +4, Uint32);
var wd4 := modbusr(H, 0x318 +6, Uint32);
var wd5 := modbusr(H, 0x318 +8, Uint32);
var wd6 := modbusr(H, 0x318 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (Th)
var wd1 := modbusr(H, 0x324, Uint32);
var wd2 := modbusr(H, 0x324 +2, Uint32);
var wd3 := modbusr(H, 0x324 +4, Uint32);
var wd4 := modbusr(H, 0x324 +6, Uint32);
var wd5 := modbusr(H, 0x324 +8, Uint32);
var wd6 := modbusr(H, 0x324 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (Fr)
var wd1 := modbusr(H, 0x330, Uint32);
var wd2 := modbusr(H, 0x330 +2, Uint32);
var wd3 := modbusr(H, 0x330 +4, Uint32);
var wd4 := modbusr(H, 0x330 +6, Uint32);
var wd5 := modbusr(H, 0x330 +8, Uint32);
var wd6 := modbusr(H, 0x330 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (Sa)
var wd1 := modbusr(H, 0x33c, Uint32);
var wd2 := modbusr(H, 0x33c +2, Uint32);
var wd3 := modbusr(H, 0x33c +4, Uint32);
var wd4 := modbusr(H, 0x33c +6, Uint32);
var wd5 := modbusr(H, 0x33c +8, Uint32);
var wd6 := modbusr(H, 0x33c +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
${tariff}s (Su)
var wd1 := modbusr(H, 0x348, Uint32);
var wd2 := modbusr(H, 0x348 +2, Uint32);
var wd3 := modbusr(H, 0x348 +4, Uint32);
var wd4 := modbusr(H, 0x348 +6, Uint32);
var wd5 := modbusr(H, 0x348 +8, Uint32);
var wd6 := modbusr(H, 0x348 +10, Uint32);

var out := "";
if ( getbyte(wd1,1) != 0, out := out +
    "[" + tostring(getbyte(wd1,3), "X2") + ":" + tostring(getbyte(wd1,2), "X2") + "-T" + tostring(getbyte(wd1,1), "X2") + "]" );
if ( getbyte(wd2,2) != 0, out := out +
    "[" + tostring(getbyte(wd1,0), "X2") + ":" + tostring(getbyte(wd2,3), "X2") + "-T" + tostring(getbyte(wd2,2), "X2") + "]" );
if ( getbyte(wd3,3) != 0, out := out +
    "[" + tostring(getbyte(wd2,1), "X2") + ":" + tostring(getbyte(wd2,0), "X2") + "-T" + tostring(getbyte(wd3,3), "X2") + "]" );
if ( getbyte(wd3,0) != 0, out := out +
    "[" + tostring(getbyte(wd3,2), "X2") + ":" + tostring(getbyte(wd3,1), "X2") + "-T" + tostring(getbyte(wd3,0), "X2") + "]" );
if ( getbyte(wd4,1) != 0, out := out +
    "[" + tostring(getbyte(wd4,3), "X2") + ":" + tostring(getbyte(wd4,2), "X2") + "-T" + tostring(getbyte(wd4,1), "X2") + "]" );
if ( getbyte(wd5,2) != 0, out := out +
    "[" + tostring(getbyte(wd4,0), "X2") + ":" + tostring(getbyte(wd5,3), "X2") + "-T" + tostring(getbyte(wd5,2), "X2") + "]" );
if ( getbyte(wd6,3) != 0, out := out +
    "[" + tostring(getbyte(wd5,1), "X2") + ":" + tostring(getbyte(wd5,0), "X2") + "-T" + tostring(getbyte(wd6,3), "X2") + "]" );
if ( getbyte(wd6,0) != 0, out := out +
    "[" + tostring(getbyte(wd6,2), "X2") + ":" + tostring(getbyte(wd6,1), "X2") + "-T" + tostring(getbyte(wd6,0), "X2") + "]" );

return(out)
Szerviz műveletek
Date/Time
Paraméterek: Year (22–99 YY), Month (1–12 MM), Day (1–31 DD), Hour (1–24 HH), Minutes (0–59 MI), Seconds (0–59 SS), Day of Week
var out1 := (tobcd(MI) << 8) + tobcd(SS);
var out2 := (tobcd(DW) << 8) + tobcd(HH);
var out3 := (tobcd(MM) << 8) + tobcd(DD);

modbusw(H, 0x3c, LittleEndianUint16, out1, out2, out3, YY);
${set_tarriffs}
Paraméterek: Interval 1 - ${hour} (0–23 HH1), Interval 1 - ${minutes} (0–59 MI1), Interval 1 - ${tariff} (0–4 T1), Interval 2 - Hour (0–23 HH2), Interval 2 - Minutes (0–59 MI2), Interval 2 - ${tariff} (0–4 T2), Interval 3 - Hour (0–23 HH3), Interval 3 - Minutes (0–59 MI3), Interval 3 - ${tariff} (0–4 T3), Interval 4 - Hour (0–23 HH4), Interval 4 - Minutes (0–59 MI4), Interval 4 - ${tariff} (0–4 T4), Interval 5 - Hour (0–23 HH5), Interval 5 - Minutes (0–59 MI5), Interval 5 - ${tariff} (0–4 T5), Interval 6 - Hour (0–23 HH6), Interval 6 - Minutes (0–59 MI6), Interval 6 - ${tariff} (0–4 T6), Interval 7 - Hour (0–23 HH7), Interval 7 - Minutes (0–59 MI7), Interval 7 - ${tariff} (0–4 T7), Interval 8 - Hour (0–23 HH8), Interval 8 - Minutes (0–59 MI8), Interval 8 - ${tariff} (0–4 T8), Day
var wd1 := (tobcd(HH1) << 24) + (tobcd(MI1) << 16) + (tobcd(T1) << 8) + tobcd(HH2);
var wd2 := (tobcd(MI2) << 24) + (tobcd(T2) << 16) + (tobcd(HH3) << 8) + tobcd(MI3);
var wd3 := (tobcd(T3) << 24) + (tobcd(HH4) << 16) + (tobcd(MI4) << 8) + tobcd(T4);
var wd4 := (tobcd(HH5) << 24) + (tobcd(MI5) << 16) + (tobcd(T5) << 8) + tobcd(HH6);
var wd5 := (tobcd(MI6) << 24) + (tobcd(T6) << 16) + (tobcd(HH7) << 8) + tobcd(MI7);
var wd6 := (tobcd(T7) << 24) + (tobcd(HH8) << 16) + (tobcd(MI8) << 8) + tobcd(T8);

if DoW = 0 or DoW = 1
    modbusw(H, 0x300, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 2
    modbusw(H, 0x30c, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 3
    modbusw(H, 0x318, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 4
    modbusw(H, 0x324, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 5
    modbusw(H, 0x330, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 6
    modbusw(H, 0x33c, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
if DoW = 0 or DoW = 7
    modbusw(H, 0x348, Uint32, wd1, wd2, wd3, wd4, wd5, wd6);
end
Slave ID
Paraméterek: Parameter1 (1–255 ID)
modbusw(H, 0x02, Uint16, ID)
LCD Cycle time
Paraméterek: Time [s] (1–120 t)
modbusw(H, 0x0d, Uint16, t)
L1 áram Változó Csak olvasható
Regiszter: H:22 Float Egység: A
Szerviz attribútumok
L1 feszültség

L1 áram

Olvasás
MODBUSR(H, 22, Float)
Szerviz attribútumok
L1 ${electric_voltage} [V]
round(modbusr(H, 0x0e, Float)*10)/10
L2 áram Változó Csak olvasható
Regiszter: H:24 Float Egység: A
Szerviz attribútumok
L2 feszültség

L2 áram

Olvasás
MODBUSR(H, 24, Float)
Szerviz attribútumok
L2 ${electric_voltage} [V]
round(modbusr(H, 0x10, Float)*10)/10
L3 áram Változó Csak olvasható
Regiszter: H:26 Float Egység: A
Szerviz attribútumok
L3 feszültség

L3 áram

Olvasás
MODBUSR(H, 26, Float)
Szerviz attribútumok
L3 ${electric_voltage} [V]
round(modbusr(H, 0x12, Float)*10)/10
L1 fázis Villanyóra Csak olvasható

1. fázis energiamérő — teljes hatásos energia és hatásos teljesítmény feszültséggel, árammal, meddő/látszólagos teljesítménnyel, teljesítménytényezővel és kétirányú energiaszámlálókkal

Regiszter: H:258 (readtotalconsumption), H:30 (readdemand) Float Egység: kWh / kW
Szerviz attribútumok
Feszültség
Áram
Meddő teljesítmény
Látszólagos teljesítmény
Teljesítménytényező
Előre irányú hatásos energia
Visszirányú hatásos energia
Előre irányú meddő energia
Visszirányú meddő energia

L1 fázis

Összes fogyasztás olvasása
MODBUSR(H, 0x102, Float)
Igény olvasása
MODBUSR(H, 0x1e, Float)
Szerviz attribútumok
${electric_voltage} [V]
tostring(modbusr(H, 0x0e,Float), "F2")
${electric_current} [A]
tostring(modbusr(H, 0x16,Float), "F2")
${reactive_power} [kVAr]
tostring(modbusr(H, 0x26,Float), "F2")
${apparent_power} [kVA]
tostring(modbusr(H, 0x2e,Float), "F2")
${power_factor}
tostring(modbusr(H, 0x36,Float), "F2")
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x10a,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x112,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x122,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x12a,Float), "F2")
L2 fázis Villanyóra Csak olvasható
Regiszter: H:260 (readtotalconsumption), H:32 (readdemand) Float Egység: kWh / kW
Szerviz attribútumok
Feszültség
Áram
Meddő teljesítmény
Látszólagos teljesítmény
Teljesítménytényező
Előre irányú hatásos energia
Visszirányú hatásos energia
Előre irányú meddő energia
Visszirányú meddő energia

L2 fázis

Összes fogyasztás olvasása
MODBUSR(H, 0x104, Float)
Igény olvasása
MODBUSR(H, 0x20, Float)
Szerviz attribútumok
${electric_voltage} [V]
tostring(modbusr(H, 0x10,Float), "F2")
${electric_current} [A]
tostring(modbusr(H, 0x18,Float), "F2")
${reactive_power} [kVAr]
tostring(modbusr(H, 0x28,Float), "F2")
${apparent_power} [kVA]
tostring(modbusr(H, 0x30,Float), "F2")
${power_factor}
tostring(modbusr(H, 0x38,Float), "F2")
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x10c,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x114,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x124,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x12c,Float), "F2")
L3 fázis Villanyóra Csak olvasható
Regiszter: H:262 (readtotalconsumption), H:34 (readdemand) Float Egység: kWh / kW
Szerviz attribútumok
Feszültség
Áram
Meddő teljesítmény
Látszólagos teljesítmény
Teljesítménytényező
Előre irányú hatásos energia
Visszirányú hatásos energia
Előre irányú meddő energia
Visszirányú meddő energia

L3 fázis

Összes fogyasztás olvasása
MODBUSR(H, 0x106, Float)
Igény olvasása
MODBUSR(H, 0x22, Float)
Szerviz attribútumok
${electric_voltage} [V]
tostring(modbusr(H, 0x12,Float), "F2")
${electric_current} [A]
tostring(modbusr(H, 0x1a,Float), "F2")
${reactive_power} [kVAr]
tostring(modbusr(H, 0x2a,Float), "F2")
${apparent_power} [kVA]
tostring(modbusr(H, 0x32,Float), "F2")
${power_factor}
tostring(modbusr(H, 0x3a,Float), "F2")
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x10e,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x116,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x126,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x12e,Float), "F2")
T1 tarifa Villanyóra Csak olvasható

T1 tarifa kumulatív energiaszámláló — teljes hatásos energia az előre/visszirányú hatásos és meddő energia részletezésével

Regiszter: H:304 (readtotalconsumption) Float Egység: kWh
Szerviz attribútumok
Előre irányú hatásos energia
Visszirányú hatásos energia
Teljes meddő energia
Előre irányú meddő energia
Visszirányú meddő energia

T1 tarifa

Összes fogyasztás olvasása
MODBUSR(H, 0x130, Float)
Szerviz attribútumok
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x132,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x134,Float), "F2")
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0x136,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x138,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x13a,Float), "F2")
T2 tarifa Villanyóra Csak olvasható
Regiszter: H:316 (readtotalconsumption) Float Egység: kWh
Szerviz attribútumok
Előre irányú hatásos energia
Visszirányú hatásos energia
Teljes meddő energia
Előre irányú meddő energia
Visszirányú meddő energia

T2 tarifa

Összes fogyasztás olvasása
MODBUSR(H, 0x13c, Float)
Szerviz attribútumok
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x13e,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x140,Float), "F2")
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0x142,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x144,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x146,Float), "F2")
T3 tarifa Villanyóra Csak olvasható
Regiszter: H:328 (readtotalconsumption) Float Egység: kWh
Szerviz attribútumok
Előre irányú hatásos energia
Visszirányú hatásos energia
Teljes meddő energia
Előre irányú meddő energia
Visszirányú meddő energia

T3 tarifa

Összes fogyasztás olvasása
MODBUSR(H, 0x148, Float)
Szerviz attribútumok
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x14a,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x14c,Float), "F2")
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0x14e,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x150,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x152,Float), "F2")
T4 tarifa Villanyóra Csak olvasható
Regiszter: H:340 (readtotalconsumption) Float Egység: kWh
Szerviz attribútumok
Előre irányú hatásos energia
Visszirányú hatásos energia
Teljes meddő energia
Előre irányú meddő energia
Visszirányú meddő energia

T4 tarifa

Összes fogyasztás olvasása
MODBUSR(H, 0x154, Float)
Szerviz attribútumok
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x156,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x158,Float), "F2")
${total_reactive_energy} [kVArh]
tostring(modbusr(H, 0x15a,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x15c,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x15e,Float), "F2")
Összenergia (3-fázisú) Villanyóra Csak olvasható

3-fázisú rendszer összesített adatok — hatásos energia és teljesítményigény hálózati frekvenciával, meddő/látszólagos teljesítménnyel, teljesítménytényezővel és kétirányú energiaszámlálókkal

Regiszter: H:256 (readtotalconsumption), H:28 (readdemand) Float Egység: kWh / kW
Szerviz attribútumok
Hálózati frekvencia
Teljes meddő teljesítmény
Teljes látszólagos teljesítmény
Teljes teljesítménytényező
Előre irányú hatásos energia
Visszirányú hatásos energia
Előre irányú meddő energia
Visszirányú meddő energia

Összenergia (3-fázisú)

Összes fogyasztás olvasása
MODBUSR(H, 0x100, Float)
Igény olvasása
MODBUSR(H, 0x1c, Float)
Szerviz attribútumok
${grid_frequency} [Hz]
tostring(modbusr(H, 0x14,Float), "F2")
${reactive_power} [kVAr]
tostring(modbusr(H, 0x24,Float), "F2")
${apparent_power} [kVA]
tostring(modbusr(H, 0x2c,Float), "F2")
${power_factor}
tostring(modbusr(H, 0x34,Float), "F2")
${forward_active_energy} [kWh]
tostring(modbusr(H, 0x108,Float), "F2")
${reverse_active_energy} [kWh]
tostring(modbusr(H, 0x110,Float), "F2")
${forward_reactive_energy} [kVArh]
tostring(modbusr(H, 0x120,Float), "F2")
${reverse_reactive_energy} [kVArh]
tostring(modbusr(H, 0x128,Float), "F2")
Kapcsolat: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Lehetséges fejlesztések (9)
  • H:280 Total Reactive Energy — Aggregate reactive energy counter (sum of all phases)
  • H:282 L1 Reactive Energy — Per-phase reactive energy — only forward/reverse reactive exposed, not total per-phase
  • H:284 L2 Reactive Energy — Per-phase reactive energy
  • H:286 L3 Reactive Energy — Per-phase reactive energy
  • H:0 Serial Number — 4-byte serial number, read-only
  • H:4 Software Version — Firmware version as float
  • H:6 Hardware Version — Hardware version as float
  • H:11 Combined Code — Configuration code, R/W
  • H:12 HOLIDAY-WEEKEND T — Holiday/weekend tariff assignment

Források