TapHome

Orno OR-WE-517

Modbus RTU
Autor
Posljednje ažuriranje: 10. 2026
Orno OR-WE-517

Orno OR-WE-517 trofazno je višetarifno brojilo električne energije za ugradnju na DIN šinu koje komunicira protokolom Modbus RTU preko RS-485. Riječ je o brojilu za izravni priključak do 80 A po fazi, s certifikatom MID (Direktiva 2014/32/EU), koje na šini TH-35 zauzima 4,3 modula. Predložak TapHome daje 11 uređaja za mjerenje električne energije: struju po fazama, energiju po fazama, ukupnu trofaznu energiju i brojače energije za 4 tarife, uz servisne atribute za napon, jalovu/prividnu snagu, faktor snage i dvosmjerno mjerenje energije (preuzeta/predana).

Svi registri mjerenja koriste kodiranje IEEE 754 Float32 (2 Modbus riječi po vrijednosti) i čitaju se funkcijom 03 (holding registers). Predložak nudi i servisne radnje za postavljanje sata stvarnog vremena brojila, konfiguraciju rasporeda tarifa i promjenu Modbus Slave ID-a.

Hardversko spajanje

Ožičenje RS-485

OR-WE-517 ima ugrađeno sučelje RS-485 za komunikaciju Modbus RTU. Brojilo spojite na sabirnicu RS-485 centralne jedinice TapHome Core dvožilnim oklopljenim komunikacijskim kabelom:

  • Stezaljku A na brojilu na A+/D+ na TapHome RS-485
  • Stezaljku B na brojilu na B-/D- na TapHome RS-485

Koristite linijsku topologiju (daisy chain). Topologija zvijezde i odvojci uzrokuju refleksije signala i greške u komunikaciji. Pretvarač i brojilo treba povezati dvožilnim komunikacijskim kabelom prilagođenim standardu RS-485.

Za početnu konfiguraciju i testiranje može se koristiti i standardni pretvarač USB-RS485. Pretvarač nije uključen u isporuku brojila.

Konfiguracija

Komunikacijski parametri

Zadane postavke Modbusa odmah odgovaraju predlošku TapHome:

ParametarZadanoRaspon
Brzina prijenosa (baud rate)9600 bps1200, 2400, 4800, 9600
Podatkovni bitovi8Fiksno
ParitetparnaFiksno
Stop bitovi1Fiksno
Slave ID11–255

Komunikacijski okvir ima 11 bitova: 1 start bit, 8 podatkovnih bitova, 1 bit parnog pariteta i 1 stop bit, uz provjeru CRC.

Slave ID

Kada je na istu sabirnicu RS-485 spojeno više brojila, svako brojilo mora imati jedinstveni Slave ID. Zadani Slave ID je 1 (može se postaviti od 1 do 255 preko holding registra H:2). Nakon uvoza predloška TapHome prilagodite Slave ID u postavkama veze modula tako da odgovara brojilu. Predložak nudi i servisnu radnju Slave ID za daljinsku promjenu adrese preko Modbusa.

Trenutačni Slave ID i brzina prijenosa vidljivi su na LCD zaslonu brojila (stranice 42 i 43).

Mogućnosti uređaja

Predložak stvara 11 uređaja ModbusElectricityMeter i ModbusVariable podijeljenih u četiri skupine: senzori struje po fazama, brojila energije po fazama, uređaj ukupne trofazne energije i brojači energije po tarifama.

Praćenje struje po fazama

Tri uređaja mjere struju svake faze u stvarnom vremenu:

  • Struja L1 — struja faze 1 (H:22, A) s naponom L1 kao servisnim atributom (H:14, V)
  • Struja L2 — struja faze 2 (H:24, A) s naponom L2 (H:16, V)
  • Struja L3 — struja faze 3 (H:26, A) s naponom L3 (H:18, V)
Mjerenje energije po fazama

Tri uređaja prate potrošnju djelatne energije i snagu po fazama, s opsežnim skupom servisnih atributa:

  • Faza L1 — ukupna djelatna energija (H:258, kWh) i djelatna snaga (H:30, kW). Servisni atributi uključuju napon, struju, jalovu snagu (kVAr), prividnu snagu (kVA), faktor snage i dvosmjerne brojače energije (preuzeta/predana djelatna i jalova energija).
  • Faza L2 — ukupna djelatna energija (H:260, kWh) i djelatna snaga (H:32, kW). Isti servisni atributi po fazi kao L1.
  • Faza L3 — ukupna djelatna energija (H:262, kWh) i djelatna snaga (H:34, kW). Isti servisni atributi po fazi kao L1.
Ukupna trofazna energija

Jedan uređaj daje ukupne vrijednosti za cijeli sustav:

  • Ukupna energija (3 faze) — ukupna djelatna energija (H:256, kWh) i ukupna djelatna snaga (H:28, kW). Servisni atributi uključuju frekvenciju mreže (Hz), ukupnu jalovu snagu (kVAr), ukupnu prividnu snagu (kVA), ukupni faktor snage i dvosmjerne brojače energije (preuzeta/predana djelatna i jalova energija).
Brojači energije po tarifama

Četiri uređaja prate zbirnu energiju po tarifnim zonama (T1–T4):

  • Tarifa T1 do Tarifa T4 — svaki daje ukupnu djelatnu energiju (kWh) sa servisnim atributima za preuzetu/predanu djelatnu energiju i preuzetu/predanu/ukupnu jalovu energiju. Brojila tarifa prate samo zbirnu energiju, ne i trenutačnu snagu.

Brojilo podržava do 8 vremenskih intervala dnevno (zasebno za svaki dan od ponedjeljka do nedjelje) za dodjelu tarifnih zona T1–T4. Raspored tarifa postavlja se servisnom radnjom Postavi tarife, koja omogućuje programiranje intervala za određeni dan ili za sve dane odjednom.

Podrška za 4 tarife glavna je razlika između OR-WE-517 i OR-WE-516 (koji ima RS-485, ali nema raspored tarifa). OR-WE-513 nema ni RS-485 ni podršku za tarife.

Servisne radnje

Predložak nudi četiri servisne radnje za daljinsku konfiguraciju:

  • Datum/vrijeme — postavlja unutarnji sat stvarnog vremena brojila (godina, mjesec, dan, sat, minute, sekunde i dan u tjednu) preko registara H:60–H:65
  • Postavi tarife — konfigurira do 8 dnevnih intervala tarifa (T1–T4) za odabrani dan ili za sve dane odjednom i upisuje ih u registre rasporeda tarifa od H:768
  • Vrijeme izmjene prikaza LCD-a — postavlja interval automatske izmjene prikaza na LCD zaslonu (1–120 sekundi)
  • Slave ID — mijenja Modbus adresu brojila (1–255) preko holding registra H:2
Dodatne mogućnosti

OR-WE-517 ima i registre za ukupnu jalovu energiju po fazama (L1/L2/L3), serijski broj, verziju firmvera i hardvera, kombinirani konfiguracijski kod te registar za dodjelu tarifa za praznike i vikende. Oni se mogu dodati u nekom budućem ažuriranju predloška.

Rješavanje problema

Nema komunikacije
  1. Provjerite spojeve stezaljki A/B sučelja RS-485 — ako komunikacija ne radi, zamijenite A i B, jer se oznake razlikuju među proizvođačima
  2. Provjerite odgovara li brzina prijenosa u sustavu TapHome postavci brojila (zadano 9600 bps, vidljivo na LCD stranici 43)
  3. Provjerite odgovara li Slave ID (zadano 1, vidljivo na LCD stranici 42 u obliku „Id 255”, gdje je 255 trenutačna adresa)
  4. Provjerite je li paritet postavljen na Even (8E1) — ovo brojilo zadano koristi parni paritet, za razliku od nekih brojila koja zadano nemaju paritet (8N1)
Netočna očitanja
  1. Provjerite je li brojilo spojeno kao trofazni četverožilni sustav, sa sva tri fazna vodiča i neutralnim vodičem spojenima preko stezaljki brojila
  2. Kod dvosmjernog mjerenja (preuzeta/predana energija) provjerite odgovara li smjer strujnog transformatora ili vodiča smjeru toka energije — kod obrnutog spajanja preuzeta energija bilježi se kao predana
Komunikacija preko pretvarača za Ethernet

OR-WE-517 dostupan je i preko pretvarača RS-485 u Ethernet (npr. Waveshare RS485 to ETH). Kod takvog pretvarača vrsta protokola mora biti postavljena na RTU over TCP (ne standardni Modbus TCP). Standardni okviri TCP s ovim brojilom ne rade.

Dostupni uređaji

Orno OR-WE-517 Modul
Servisni atributi
Slave ID
Brzina prijenosa
Vrijeme izmjene prikaza LCD-a
Omjer strujnog transformatoraOmjer strujnog transformatora — primjenjuje se samo kod brojila sa strujnim transformatorima, ne kod izravnog priključka
Konstanta izlaza S0
VrijemeTrenutačni datum i vrijeme iz unutarnjeg sata stvarnog vremena brojila
Tarife (Pon)
Tarife (Uto)
Tarife (Sri)
Tarife (Čet)
Tarife (Pet)
Tarife (Sub)
Tarife (Ned)
Servisne radnje
Datum/vrijemePostavlja unutarnji sat stvarnog vremena brojila — datum, vrijeme i dan u tjednu za rad prema rasporedu tarifa
Postavi tarifeKonfiguracija do 8 dnevnih intervala tarifa (T1–T4) za odabrani dan ili za sve dane odjednom
Slave IDMijenja Modbus Slave adresu (1–255) za konfiguracije s više brojila na sabirnici RS-485
Vrijeme izmjene prikaza LCD-aPostavlja interval automatske izmjene prikaza na LCD zaslonu u sekundama

OR-WE-517

Servisni atributi
${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)
Servisne radnje
Date/Time
Parametri: 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}
Parametri: 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
Parametri: Parameter1 (1–255 ID)
modbusw(H, 0x02, Uint16, ID)
LCD Cycle time
Parametri: Time [s] (1–120 t)
modbusw(H, 0x0d, Uint16, t)
Struja L1 Varijabla Samo za čitanje
Registar: H:22 Float Jedinica: A
Servisni atributi
Napon L1

Struja L1

Čitanje
MODBUSR(H, 22, Float)
Servisni atributi
L1 ${electric_voltage} [V]
round(modbusr(H, 0x0e, Float)*10)/10
Struja L2 Varijabla Samo za čitanje
Registar: H:24 Float Jedinica: A
Servisni atributi
Napon L2

Struja L2

Čitanje
MODBUSR(H, 24, Float)
Servisni atributi
L2 ${electric_voltage} [V]
round(modbusr(H, 0x10, Float)*10)/10
Struja L3 Varijabla Samo za čitanje
Registar: H:26 Float Jedinica: A
Servisni atributi
Napon L3

Struja L3

Čitanje
MODBUSR(H, 26, Float)
Servisni atributi
L3 ${electric_voltage} [V]
round(modbusr(H, 0x12, Float)*10)/10
Faza L1 Brojilo električne energije Samo za čitanje

Brojilo energije faze 1 — ukupna djelatna energija i djelatna snaga s naponom, strujom, jalovom/prividnom snagom, faktorom snage i dvosmjernim brojačima energije

Registar: H:258 (readtotalconsumption), H:30 (readdemand) Float Jedinica: kWh / kW
Servisni atributi
Napon
Struja
Jalova snaga
Prividna snaga
Faktor snage
Preuzeta djelatna energija
Predana djelatna energija
Preuzeta jalova energija
Predana jalova energija

Faza L1

Čitanje ukupne potrošnje
MODBUSR(H, 0x102, Float)
Čitanje zahtjeva
MODBUSR(H, 0x1e, Float)
Servisni atributi
${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")
Faza L2 Brojilo električne energije Samo za čitanje
Registar: H:260 (readtotalconsumption), H:32 (readdemand) Float Jedinica: kWh / kW
Servisni atributi
Napon
Struja
Jalova snaga
Prividna snaga
Faktor snage
Preuzeta djelatna energija
Predana djelatna energija
Preuzeta jalova energija
Predana jalova energija

Faza L2

Čitanje ukupne potrošnje
MODBUSR(H, 0x104, Float)
Čitanje zahtjeva
MODBUSR(H, 0x20, Float)
Servisni atributi
${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")
Faza L3 Brojilo električne energije Samo za čitanje
Registar: H:262 (readtotalconsumption), H:34 (readdemand) Float Jedinica: kWh / kW
Servisni atributi
Napon
Struja
Jalova snaga
Prividna snaga
Faktor snage
Preuzeta djelatna energija
Predana djelatna energija
Preuzeta jalova energija
Predana jalova energija

Faza L3

Čitanje ukupne potrošnje
MODBUSR(H, 0x106, Float)
Čitanje zahtjeva
MODBUSR(H, 0x22, Float)
Servisni atributi
${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")
Tarifa T1 Brojilo električne energije Samo za čitanje

Zbirni brojač energije tarife 1 — ukupna djelatna energija s podjelom na preuzetu/predanu djelatnu i jalovu energiju

Registar: H:304 (readtotalconsumption) Float Jedinica: kWh
Servisni atributi
Preuzeta djelatna energija
Predana djelatna energija
Ukupna jalova energija
Preuzeta jalova energija
Predana jalova energija

Tarifa T1

Čitanje ukupne potrošnje
MODBUSR(H, 0x130, Float)
Servisni atributi
${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")
Tarifa T2 Brojilo električne energije Samo za čitanje
Registar: H:316 (readtotalconsumption) Float Jedinica: kWh
Servisni atributi
Preuzeta djelatna energija
Predana djelatna energija
Ukupna jalova energija
Preuzeta jalova energija
Predana jalova energija

Tarifa T2

Čitanje ukupne potrošnje
MODBUSR(H, 0x13c, Float)
Servisni atributi
${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")
Tarifa T3 Brojilo električne energije Samo za čitanje
Registar: H:328 (readtotalconsumption) Float Jedinica: kWh
Servisni atributi
Preuzeta djelatna energija
Predana djelatna energija
Ukupna jalova energija
Preuzeta jalova energija
Predana jalova energija

Tarifa T3

Čitanje ukupne potrošnje
MODBUSR(H, 0x148, Float)
Servisni atributi
${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")
Tarifa T4 Brojilo električne energije Samo za čitanje
Registar: H:340 (readtotalconsumption) Float Jedinica: kWh
Servisni atributi
Preuzeta djelatna energija
Predana djelatna energija
Ukupna jalova energija
Preuzeta jalova energija
Predana jalova energija

Tarifa T4

Čitanje ukupne potrošnje
MODBUSR(H, 0x154, Float)
Servisni atributi
${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")
Ukupna energija (3 faze) Brojilo električne energije Samo za čitanje

Ukupno za trofazni sustav — djelatna energija i snaga s frekvencijom mreže, jalovom/prividnom snagom, faktorom snage i dvosmjernim brojačima energije

Registar: H:256 (readtotalconsumption), H:28 (readdemand) Float Jedinica: kWh / kW
Servisni atributi
Frekvencija mreže
Ukupna jalova snaga
Ukupna prividna snaga
Ukupni faktor snage
Preuzeta djelatna energija
Predana djelatna energija
Preuzeta jalova energija
Predana jalova energija

Ukupna energija (3 faze)

Čitanje ukupne potrošnje
MODBUSR(H, 0x100, Float)
Čitanje zahtjeva
MODBUSR(H, 0x1c, Float)
Servisni atributi
${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")
Povezivanje: Modbus RTU • 9600 baud• 8E1 • Slave ID: $[SlaveId]
Moguća poboljšanja (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

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu