TapHome

Orno OR-WE-517

Modbus RTU
Pridal
Posledná aktualizácia: 03. 2026
Orno OR-WE-517

Orno OR-WE-517 je trojfázový multitarifný elektromer na DIN lištu, ktorý komunikuje cez Modbus RTU po RS-485. Ide o priame pripojenie s menovitým prúdom do 80 A na fázu, certifikáciou MID (smernica 2014/32/EÚ) a šírkou 4,3 modulu na lište TH-35. Šablóna TapHome poskytuje 11 elektromerov pokrývajúcich prúd po fázach, energiu po fázach, celkovú trojfázovú energiu a 4-tarifné počítadlá energie spolu so servisnými atribútmi pre napätie, jalový/zdanlivý výkon, účinník a obojsmerné (príjem/výdaj) rozdelenie energie.

Všetky meracie registre používajú kódovanie IEEE 754 Float32 (2 Modbus slová na hodnotu), čítané cez funkčný kód 03 (holding registre). Šablóna tiež poskytuje servisné akcie na nastavenie hodín reálneho času merača, konfiguráciu tarifných plánov a zmenu Modbus slave ID.

Hardvérové zapojenie

Kabeláž RS-485

OR-WE-517 má zabudované rozhranie RS-485 pre Modbus RTU komunikáciu. Pripojte merač k TapHome Core RS-485 zbernici pomocou tienených komunikačných káblov s dvoma žilami:

  • A svorka na merači k A+/D+ na TapHome RS-485
  • B svorka na merači k B-/D- na TapHome RS-485

Použite zapojenie typu daisy-chain. Hviezdicová alebo odbočková topológia spôsobuje odrazy signálu a chyby komunikácie. Prepojenie medzi konvertorom a meračom by malo byť realizované tieným komunikačným káblom prispôsobeným štandardu RS-485.

Na úvodné nastavenie a testovanie je možné použiť aj štandardný USB-RS485 konvertor. Konvertor nie je súčasťou balenia merača.

Konfigurácia

Komunikačné parametre

Predvolené nastavenia Modbus zodpovedajú šablóne TapHome bez nutnosti úprav:

ParameterPredvolenéRozsah
Prenosová rýchlosť9600 bps1200, 2400, 4800, 9600
Dátové bity8Fixné
ParitaPárnaFixná
Stop bity1Fixné
Slave ID11–255

Komunikačný rámec používa 11-bitový formát: 1 štart bit, 8 dátových bitov, 1 bit párnej parity a 1 stop bit s kontrolou CRC.

Slave ID

Pri pripojení viacerých meračov na tú istú RS-485 zbernicu musí mať každý merač unikátne Slave ID. Predvolené Slave ID je 1 (konfigurovateľné od 1 do 255 cez holding register H:2). Po importovaní šablóny TapHome upravte Slave ID v nastaveniach pripojenia modulu tak, aby zodpovedalo fyzickému meraču. Šablóna tiež poskytuje servisnú akciu Slave ID na vzdialenú zmenu adresy cez Modbus.

Aktuálne Slave ID a prenosová rýchlosť sú viditeľné na LCD displeji merača (stránky 42 a 43).

Možnosti zariadenia

Šablóna vytvára 11 zariadení ModbusElectricityMeter a ModbusVariable organizovaných do troch skupín: snímače prúdu po fázach, elektromery po fázach a tarifné počítadlá energie. Celkové trojfázové zariadenie agreguje všetky fázy s dodatočnými systémovými atribútmi.

Monitorovanie prúdu po fázach

Tri zariadenia poskytujú meranie prúdu v reálnom čase pre každú fázu:

  • L1 Prúd — prúd fázy 1 (H:22, A) s napätím L1 ako servisný atribút (H:14, V)
  • L2 Prúd — prúd fázy 2 (H:24, A) s napätím L2 (H:16, V)
  • L3 Prúd — prúd fázy 3 (H:26, A) s napätím L3 (H:18, V)
Meranie energie po fázach

Tri zariadenia sledujú spotrebu činnej energie a výkonový odber po fázach s komplexnou sadou servisných atribútov:

  • Fáza L1 — celková činná energia (H:258, kWh) a činný výkon (H:30, kW). Servisné atribúty zahŕňajú napätie, prúd, jalový výkon (kVAr), zdanlivý výkon (kVA), účinník a obojsmerné počítadlá energie (príjem/výdaj činnej a jalovej energie).
  • Fáza L2 — celková činná energia (H:260, kWh) a činný výkon (H:32, kW). Rovnaké servisné atribúty po fázach ako L1.
  • Fáza L3 — celková činná energia (H:262, kWh) a činný výkon (H:34, kW). Rovnaké servisné atribúty po fázach ako L1.
Celková trojfázová energia

Jedno zariadenie poskytuje systémové súčty:

  • Celková energia (3-fázová) — celková činná energia (H:256, kWh) a celkový odber činného výkonu (H:28, kW). Servisné atribúty zahŕňajú frekvenciu siete (Hz), celkový jalový výkon (kVAr), celkový zdanlivý výkon (kVA), celkový účinník a obojsmerné počítadlá energie (príjem/výdaj činnej a jalovej energie).
Tarifné počítadlá energie

Štyri zariadenia sledujú kumulatívnu energiu podľa tarifných pásiem (T1–T4):

  • Tarifa T1Tarifa T4 — každá uvádza celkovú činnú energiu (kWh) so servisnými atribútmi pre príjem/výdaj činnej energie a príjem/výdaj/celkovú jalovú energiu. Tarifné merače sledujú iba kumulatívnu energiu, nie okamžitý výkonový odber.

Merač podporuje až 8 časových intervalov denne (pondelok až nedeľa jednotlivo) na priradenie tarifných pásiem T1–T4. Tarifné plány sú konfigurovateľné cez servisnú akciu Set Tariffs, ktorá umožňuje naprogramovať intervaly pre konkrétny deň alebo všetky dni naraz.

4-tarifná schopnosť je kľúčovým odlíšením OR-WE-517 oproti OR-WE-516 (ktorý podporuje RS-485, ale nemá tarifné plánovanie). OR-WE-513 nemá ani RS-485 ani podporu taríf.

Servisné akcie

Šablóna poskytuje tri servisné akcie na vzdialenú konfiguráciu:

  • Date/Time — nastavenie interných hodín reálneho času merača (rok, mesiac, deň, hodina, minúty, sekundy a deň v týždni) cez registre H:60–H:65
  • Set Tariffs — konfigurácia až 8 denných tarifných intervalov (T1–T4) pre vybraný deň alebo všetky dni naraz, zápis do registrov tarifného plánu od H:768
  • LCD Cycle time — nastavenie intervalu automatického posúvania LCD displeja (1–120 sekúnd)
Ďalšie možnosti

OR-WE-517 tiež sprístupňuje registre pre celkovú jalovú energiu po fázach (L1/L2/L3), sériové číslo, verziu firmvéru a hardvéru, kombinovaný konfiguračný kód a register priradenia taríf pre sviatky/víkendy. Tieto je možné pridať v budúcej aktualizácii šablóny.

Riešenie problémov

Žiadna komunikácia
  1. Overte zapojenie svoriek RS-485 A/B – vymeňte A a B, ak komunikácia nefunguje, pretože konvencie označovania sa líšia medzi výrobcami
  2. Potvrďte, že prenosová rýchlosť v TapHome zodpovedá nastaveniu merača (predvolená 9600 bps, viditeľná na LCD stránke 43)
  3. Overte, že Slave ID zodpovedá (predvolené 1, viditeľné na LCD stránke 42 vo formáte “Id 255”, kde 255 je aktuálna adresa)
  4. Skontrolujte, že nastavenie parity je Even (8E1) – tento merač štandardne používa párnu paritu, na rozdiel od niektorých meračov, ktoré majú predvolenú žiadnu paritu (8N1)
Nesprávne údaje
  1. Uistite sa, že merač je zapojený ako trojfázový 4-vodičový systém so všetkými tromi fázovými vodičmi a neutrálnym vodičom prepojenými cez svorky merača
  2. Pre obojsmerné meranie (príjem/výdaj energie) overte smer CT alebo smeru vodiča podľa toku energie – obrátená kabeláž spôsobí, že prijímaná energia sa zaregistruje ako odoslaná
Komunikácia cez Ethernet konvertor

OR-WE-517 je možné pripojiť aj cez RS-485 na Ethernet konvertor (napr. Waveshare RS485 to ETH). Pri použití takéhoto konvertora musí byť typ protokolu nastavený na RTU over TCP (nie štandardný Modbus TCP). Štandardné TCP rámovanie s týmto meračom nefunguje.

Dostupné zariadenia

Orno OR-WE-517 Modul
Servisné atribúty
Slave ID
Prenosová rýchlosť
Čas cyklu LCD
Pomer CTPrevod prúdového transformátora — platí len pre merače typu CT, nie pre priame zapojenie
Výstupná sadzba S0
ČasAktuálny dátum a čas z interných hodín reálneho času merača
Tarify (Po)
Tarify (Ut)
Tarify (St)
Tarify (Št)
Tarify (Pi)
Tarify (So)
Tarify (Ne)
Servisné akcie
Dátum/ČasNastaví interné hodiny reálneho času merača — dátum, čas a deň v týždni pre prevádzku tarifného plánu
Nastaviť tarifyKonfigurácia až 8 denných tarifných intervalov (T1–T4) pre vybraný deň alebo všetky dni naraz
Slave IDZmena adresy Modbus slave (1–255) pre konfigurácie zbernice RS-485 s viacerými meračmi
Čas cyklu LCDNastavenie intervalu automatického posúvania LCD displeja v sekundách

OR-WE-517

Servisné atribúty
${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)
Servisné akcie
Date/Time
Parametre: 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}
Parametre: 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
Parametre: Parameter1 (1–255 ID)
modbusw(H, 0x02, Uint16, ID)
LCD Cycle time
Parametre: Time [s] (1–120 t)
modbusw(H, 0x0d, Uint16, t)
Prúd L1 Premenná Len na čítanie
Register: H:22 Float Jednotka: A
Servisné atribúty
Napätie L1

Prúd L1

Čítanie
MODBUSR(H, 22, Float)
Servisné atribúty
L1 ${electric_voltage} [V]
round(modbusr(H, 0x0e, Float)*10)/10
Prúd L2 Premenná Len na čítanie
Register: H:24 Float Jednotka: A
Servisné atribúty
Napätie L2

Prúd L2

Čítanie
MODBUSR(H, 24, Float)
Servisné atribúty
L2 ${electric_voltage} [V]
round(modbusr(H, 0x10, Float)*10)/10
Prúd L3 Premenná Len na čítanie
Register: H:26 Float Jednotka: A
Servisné atribúty
Napätie L3

Prúd L3

Čítanie
MODBUSR(H, 26, Float)
Servisné atribúty
L3 ${electric_voltage} [V]
round(modbusr(H, 0x12, Float)*10)/10
Fáza L1 Elektromer Len na čítanie

Merač energie fázy 1 — celková činná energia a činný výkon s napätím, prúdom, jalový/zdanlivý výkon, účinník a obojsmerné počítadlá energie

Register: H:258 (readtotalconsumption), H:30 (readdemand) Float Jednotka: kWh / kW
Servisné atribúty
Napätie
Prúd
Jalový výkon
Zdanlivý výkon
Účinník
Činná energia odber
Činná energia dodávka
Jalová energia odber
Jalová energia dodávka

Fáza L1

Čítanie celkovej spotreby
MODBUSR(H, 0x102, Float)
Čítanie odberu
MODBUSR(H, 0x1e, Float)
Servisné atribúty
${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")
Fáza L2 Elektromer Len na čítanie
Register: H:260 (readtotalconsumption), H:32 (readdemand) Float Jednotka: kWh / kW
Servisné atribúty
Napätie
Prúd
Jalový výkon
Zdanlivý výkon
Účinník
Činná energia odber
Činná energia dodávka
Jalová energia odber
Jalová energia dodávka

Fáza L2

Čítanie celkovej spotreby
MODBUSR(H, 0x104, Float)
Čítanie odberu
MODBUSR(H, 0x20, Float)
Servisné atribúty
${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")
Fáza L3 Elektromer Len na čítanie
Register: H:262 (readtotalconsumption), H:34 (readdemand) Float Jednotka: kWh / kW
Servisné atribúty
Napätie
Prúd
Jalový výkon
Zdanlivý výkon
Účinník
Činná energia odber
Činná energia dodávka
Jalová energia odber
Jalová energia dodávka

Fáza L3

Čítanie celkovej spotreby
MODBUSR(H, 0x106, Float)
Čítanie odberu
MODBUSR(H, 0x22, Float)
Servisné atribúty
${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")
Tarif T1 Elektromer Len na čítanie

Kumulatívny počítadlo energie tarify 1 — celková činná energia s rozpisom pre odber/dodávku činnej a jalovej energie

Register: H:304 (readtotalconsumption) Float Jednotka: kWh
Servisné atribúty
Činná energia odber
Činná energia dodávka
Celková jalová energia
Jalová energia odber
Jalová energia dodávka

Tarif T1

Čítanie celkovej spotreby
MODBUSR(H, 0x130, Float)
Servisné atribúty
${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")
Tarif T2 Elektromer Len na čítanie
Register: H:316 (readtotalconsumption) Float Jednotka: kWh
Servisné atribúty
Činná energia odber
Činná energia dodávka
Celková jalová energia
Jalová energia odber
Jalová energia dodávka

Tarif T2

Čítanie celkovej spotreby
MODBUSR(H, 0x13c, Float)
Servisné atribúty
${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")
Tarif T3 Elektromer Len na čítanie
Register: H:328 (readtotalconsumption) Float Jednotka: kWh
Servisné atribúty
Činná energia odber
Činná energia dodávka
Celková jalová energia
Jalová energia odber
Jalová energia dodávka

Tarif T3

Čítanie celkovej spotreby
MODBUSR(H, 0x148, Float)
Servisné atribúty
${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")
Tarif T4 Elektromer Len na čítanie
Register: H:340 (readtotalconsumption) Float Jednotka: kWh
Servisné atribúty
Činná energia odber
Činná energia dodávka
Celková jalová energia
Jalová energia odber
Jalová energia dodávka

Tarif T4

Čítanie celkovej spotreby
MODBUSR(H, 0x154, Float)
Servisné atribúty
${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")
Celková energia (3-fázová) Elektromer Len na čítanie

Celkový 3-fázový systém — činná energia a odber výkonu s frekvenciou siete, jalový/zdanlivý výkon, účinník a obojsmerné počítadlá energie

Register: H:256 (readtotalconsumption), H:28 (readdemand) Float Jednotka: kWh / kW
Servisné atribúty
Frekvencia siete
Celkový jalový výkon
Celkový zdanlivý výkon
Celkový účinník
Činná energia odber
Činná energia dodávka
Jalová energia odber
Jalová energia dodávka

Celková energia (3-fázová)

Čítanie celkovej spotreby
MODBUSR(H, 0x100, Float)
Čítanie odberu
MODBUSR(H, 0x1c, Float)
Servisné atribúty
${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")
Pripojenie: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Možné vylepšenia (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

Zdroje