TapHome

solvimus MBUS-GEM – M-Bus vodomjer

Modbus TCP
Autor
Posljednje ažuriranje: 11. 2026
solvimus MBUS-GEM – M-Bus vodomjer

TapHome nema vlastito M-Bus sučelje. Žičani M-Bus vodomjer spaja se preko pristupnika (gateway) s M-Busa na Modbus, a TapHome ga čita kao Modbus TCP uređaj. Ovaj predložak koristi pristupnik solvimus MBUS-GEM (MBUS-GE20M, MBUS-GE80M, MBUS-GE125M, MBUS-GE250M, MBUS-GE500M): pristupnik očitava brojila na svojoj M-Bus sabirnici i njihove podatke nudi kao Modbus TCP poslužitelj na portu 502. Jedan uvezeni modul predstavlja jedan vodomjer; za daljnja brojila predložak se uvozi ponovno.

Predložak čita volumen vode u m³, protok koji javlja samo brojilo i prosječni protok između dva očitanja pristupnika u l/h. Prosječni protok služi za otkrivanje curenja: smart rules u TapHome mogu ga uspoređivati s granicama, na primjer da pokrenu alarm kad voda teče i noću.

Predložak zajednice — još nije testiran na hardveru. Predložak je nastao u portalu TapHome iz korisničkog priručnika solvimus MBUS-GEM (verzija 1.31). Nije radio na stvarnom pristupniku i brojilu ni na simulatoru. Njegovi brojevi registara (RegMeter, RegVolume, RegFlow) privremene su vrijednosti: nakon uvoza instalater ih postavlja prema stupcu Register na kartici Meter pristupnika. Prije nego što se oslonite na vrijednosti, provjerite vezu testnim načinom pristupnika (vidi Konfiguracija); iskustva iz prakse su dobrodošla. XML preuzmite na ovoj stranici ili s portala TapHome: solvimus MBUS-GEM – M-Bus vodomjer — predložak zajednice, i uvezite ga kao novi modul.

Što vam treba

  • Pristupnik solvimus MBUS-GEM za žičani M-Bus s Modbus TCP: MBUS-GE20M, MBUS-GE80M, MBUS-GE125M, MBUS-GE250M ili MBUS-GE500M. MBUS-GEWM je inačica za bežični M-Bus i ovaj ga predložak ne pokriva.
  • Žičani M-Bus vodomjer (EN 13757) koji pristupnik može očitati. Ultrazvučni vodomjeri obično javljaju i protok.
  • Pristupnik i centralnu jedinicu Core u istoj lokalnoj mreži.

Hardversko spajanje

MBUS-GEM se montira na DIN šinu od 35 mm i ima vijčane stezaljke za M-Bus i napajanje te Ethernet priključak RJ45 (10/100 Mbit/s).

ModelM-Bus jedinična opterećenjaŠirinaNapajanjeBrzina M-Busa
MBUS-GE20M202 modula21,6–24,5 VDCmaks. 19200 bps
MBUS-GE80M802 modula21,6–24,5 VDCmaks. 19200 bps
MBUS-GE125M1253 modula12–36 VDCmaks. 9600 bps
MBUS-GE250M2503 modula12–36 VDCmaks. 9600 bps
MBUS-GE500M5003 modula12–36 VDCmaks. 9600 bps

Jedno jedinično opterećenje (UL) uglavnom odgovara jednom brojilu.

  1. Spojite M-Bus liniju vodomjera na M-Bus stezaljke pristupnika.
  2. Spojite pristupnik Ethernet kabelom u lokalnu mrežu.
  3. Spojite vanjsko napajanje od 24 VDC. Pristupnik se pokreće sam.

Konfiguracija

Mreža i popis brojila

Pristupnik se isporučuje sa statičkom IP adresom 192.168.1.101 (maska podmreže 255.255.255.0, zadani izlaz 192.168.1.254); njegovo web sučelje otvara se na http://192.168.1.101/. Pri prvoj prijavi administrator mora promijeniti lozinku. Alat Netdiscover tvrtke solvimus pronalazi pristupnik u mreži i može ga prebaciti na drugu statičku adresu ili na DHCP; uz DHCP dodijeljenu adresu pronađite u DHCP poslužitelju prema MAC adresi pristupnika. Bez DHCP poslužitelja pristupnik odabire adresu iz raspona 169.254.x.x. Predložak se pristupniku obraća preko IP adrese, zato mu dodijelite fiksnu adresu ili DHCP rezervaciju.

U web sučelju pretražite M-Bus sabirnicu kako bi se vodomjer pojavio na popisu brojila na kartici Meter, zajedno sa svojim vrijednostima (volumen i protok, ako ga brojilo javlja).

Postavke Modbusa na kartici Server

  1. Modbus mode postavite na Modbus TCP, a Modbus port ostavite na 502.
  2. Modbus float only ostavite isključeno. Taj način uklanja polja vrste i jedinice koja predložak provjerava.
  3. Modbus swap ostavite isključeno. Predložak očekuje zadani redoslijed riječi (najznačajnija riječ prva).
  4. Preporučuje se uključiti Modbus multi slave. Svako brojilo tada postaje zaseban virtualni Modbus slave s vlastitom adresom (1–247), a numeriranje registara počinje iznova za svako brojilo, pa brojila iste vrste imaju iste brojeve registara.

Nakon uključivanja ili isključivanja multi slave adrese na kartici Meter treba ponovno dodijeliti (kontekstni izbornik Allocate).

Ciklus očitanja

Pristupnik očitava brojila neovisno o Modbus zahtjevima: u Readout cycle na kartici Configuration ili u Cycle (u sekundama) pojedinog brojila na kartici Meter. Te postavke određuju koliko su svježe vrijednosti u TapHome. Neka M-Bus brojila na baterije dopuštaju samo ograničen broj očitanja dnevno; prije odabira kratkog ciklusa pogledajte tehnički list brojila.

Postavke predloška nakon uvoza

Pristupnik nema fiksnu tablicu registara. Svaki zapis brojila i svaka vrijednost brojila dobiva vlastiti blok od 10 holding registara, a početak svakog bloka prikazuje stupac Register na kartici Meter. Redoslijed vrijednosti slijedi redoslijed kojim brojilo šalje svoje M-Bus zapise, pa se razlikuje među modelima brojila. Predložak zato drži početak svakog bloka u varijabli modula i iz nje računa svaku adresu registra.

PostavkaGdjeVrijednost
IP adresaParametar uvozaAdresa pristupnika (dijalog uvoza predlaže 192.168.1.100; pristupnik se isporučuje s 192.168.1.101)
SlaveIdParametar uvoza (zadano 1)S multi slave: broj u stupcu Register u retku brojila. Bez multi slave: 255
RegMeterVarijabla modula (zadano 10)S multi slave: 10 (zapis brojila počinje u svakom virtualnom slaveu na 10). Bez multi slave: broj u stupcu Register u retku brojila
RegVolumeVarijabla modula (zadano 20)Broj u stupcu Register u retku volumena brojila (jedinica m³)
RegFlowVarijabla modula (zadano 30)Broj u stupcu Register u retku protoka brojila (jedinica m³/h, m³/min ili m³/s)

Zadane vrijednosti 10, 20 i 30 odgovaraju samo rasporedu testnog načina pristupnika; zamijenite ih brojevima stvarnog brojila.

Svaki uređaj provjerava vrstu zapisa i jedinicu svog bloka. Pogrešan broj prikazuje na uređaju grešku koja navodi varijablu modula, na primjer RegVolume does not point to a volume value in m³ … copy the Register number of this value from the gateway Meter tab.

Provjera veze pomoću Modbus test

Kad je na kartici Server uključen Modbus test, pristupnik daje statične testne podatke: zapis brojila na registru 10 i vrijednost energije (jedinica Wh, 1234,5678 Wh) na registru 20. Sa zadanim varijablama modula Volumen vode tada prihvaća registar 10 kao zapis brojila (uz upozorenje da medij testnog brojila, kod 2, nije voda) i javlja da registar 20 nije vrijednost volumena (kod jedinice 5). Kad vidite upravo te poruke, IP adresa, port, adresa slavea i brojevi registara stižu do pristupnika kako treba. Zatim isključite testni način i postavite varijable modula za stvarno brojilo.

Mogućnosti uređaja

Sva tri uređaja služe samo za čitanje i čitaju se svakih 15 s. Njihove se vrijednosti mijenjaju samo kad pristupnik očita brojilo, u svom ciklusu očitanja.

Volumen vode

Volumen vode je stanje vodomjera u m³ na tri decimale, pročitano kao skalirana vrijednost s pomičnim zarezom iz bloka volumena. Uređaj provjerava i zapis brojila:

PorukaVrstaZnačenje
RegMeter does not point to a meter entry …GreškaRegMeter pokazuje na blok koji nije zapis brojila
RegMeter points to a meter with medium code …, which is not a water meter …UpozorenjeBrojilo nije vodomjer (prihvaćeni kodovi medija: voda, hladna voda, topla voda, vruća voda i voda s dvostrukim registrom) — provjerite RegMeter i SlaveId
The gateway could not read the meter in its last readout …GreškaProvjerite M-Bus ožičenje, adresu brojila i popis brojila u pristupniku
Not all meter values were updated in the last gateway readoutUpozorenjePosljednje očitanje nije bilo potpuno

Servisni atribut Serijski broj brojila prikazuje serijski broj M-Bus brojila i pomaže potvrditi da predložak čita pravo brojilo. Serijski broj koji sadrži slova prikazuje se kao 0.

Prosječni protok vode

Prosječni protok vode je porast volumena između dva posljednja očitanja pristupnika podijeljen s vremenom između njihovih vremenskih oznaka, u l/h. Ponovno se izračunava samo kad se promijeni vremenska oznaka očitanja brojila, pa je to prosjek za jedan ciklus očitanja.

  • Nakon prvog očitanja, nakon ponovnog pokretanja centralne jedinice Core i nakon poništavanja brojila (volumen manji nego prije) vrijednost je 0 do sljedećeg očitanja.
  • Ako pristupnik prestane očitavati brojilo, ostaje posljednji prosjek; Volumen vode tada prikazuje grešku očitanja.

Uređaj čita isti blok volumena kao Volumen vode. Samo otkrivanje curenja — granice, radno vrijeme, alarme — postavljate pomoću smart rules u TapHome; predložak daje vrijednost.

Protok vode

Protok vode je protok koji javlja samo brojilo, preračunat u m³/h (iz m³/h, m³/min ili m³/s). Ne javlja svaki M-Bus vodomjer protok; ultrazvučna brojila to obično čine.

Rješavanje problema

Nema komunikacije

  • Provjerite jesu li pristupnik i centralna jedinica Core u istoj mreži i odgovara li pristupnik na ping.
  • Provjerite je li Modbus uključen na kartici Server, je li port 502 i blokira li ga vatrozid.
  • Upotrijebite gore opisani testni način.
  • Pristupnik u standardnoj konfiguraciji prihvaća najviše pet istodobnih Modbus TCP veza; iznad te granice nova veza zatvara najstariju.

Greška navodi varijablu modula

Broj u toj varijabli pokazuje na blok druge vrste ili jedinice. Ponovno prepišite broj iz stupca Register na kartici Meter; uz multi slave provjerite i SlaveId. Nakon uključivanja ili isključivanja multi slave ponovno dodijelite adrese (Allocate) i prepišite nove brojeve.

Vrijednosti se ne mijenjaju

Provjerite ciklus očitanja pristupnika i ograničenje očitanja brojila. Sistemsko vrijeme pristupnika mora biti točno (postavljeno ručno ili preko SNTP-a), inače su vremenske oznake očitanja i prosječni protok pogrešni.

Malo odstupanje od web stranice pristupnika

Vrijednost s pomičnim zarezom ima oko 7 značajnih znamenki, pa se posljednje znamenke mogu malo razlikovati od vrijednosti u web sučelju pristupnika.

Dostupni uređaji

solvimus MBUS-GEM – vodomjer Modul
Prilagođene varijable
RegMeter (numeric) = 10Početak zapisa brojila (serijski broj, vrijeme očitanja, stanje očitanja) — uz Modbus multi slave 10, inače broj iz stupca Register u retku brojila na kartici Meter
RegVolume (numeric) = 20Početak vrijednosti volumena (jedinica m³) — broj iz stupca Register u retku volumena na kartici Meter
RegFlow (numeric) = 30Početak vrijednosti protoka (jedinica m³/h, m³/min ili m³/s) — broj iz stupca Register u retku protoka na kartici Meter
Volumen vode Varijabla Samo za čitanje

Stanje vodomjera u m³ na tri decimale; prikazuje grešku kad pristupnik nije uspio očitati brojilo

Registar: H:RegVolume+4 Float Jedinica: m³ numeric
Servisni atributi
Serijski broj brojilaSerijski broj M-Bus brojila — potvrđuje da predložak čita pravo brojilo

Volumen vode

Čitanje
VAR info := MODBUSR(H, RegVolume+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 7, 1, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegVolume does not point to a volume value in m³ (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(unit) + ") – copy the Register number of this value from the gateway Meter tab");
    RETURN(NaN);
END
RETURN(ROUND(MODBUSR(H, RegVolume+4, Float) * factor * 1000) / 1000);
Čitanje (modul)
VAR meterInfo := MODBUSR(H, RegMeter+7, UInt16);
VAR medium := 0;
VAR flags := 0;
IF GETBITS(meterInfo, 8, 8) != 2
    ADDERROR(1, "RegMeter does not point to a meter entry (entry type " + TOSTRING(GETBITS(meterInfo, 8, 8)) + ") – set RegMeter to the start of the meter entry (10 with Modbus multi slave, otherwise the Register number of the meter row in the gateway Meter tab)");
ELSE
    medium := GETBITS(MODBUSR(H, RegMeter+3, UInt16), 0, 8);
    IF medium != 6 AND medium != 7 AND medium != 21 AND medium != 22 AND medium != 23
        ADDWARNING(2, "RegMeter points to a meter with medium code " + TOSTRING(medium) + ", which is not a water meter – check that RegMeter and SlaveId belong to the water meter");
    END
    flags := MODBUSR(H, RegMeter+8, UInt16);
    IF GETBIT(flags, 0)
        ADDERROR(3, "The gateway could not read the meter in its last readout – check the M-Bus wiring, the meter address and the meter list of the gateway");
    ELSEIF GETBIT(flags, 1)
        ADDWARNING(4, "Not all meter values were updated in the last gateway readout");
    END
END
Servisni atributi
Meter serial number
TOSTRING(MODBUSR(H, RegMeter+0, UInt32))
Prosječni protok vode Varijabla Samo za čitanje

Prosječni protok između dva posljednja očitanja pristupnika u l/h — za otkrivanje curenja, na primjer kad voda teče noću

Registar: H:RegVolume+4, H:RegMeter+4 Float, UInt32 Jedinica: l/h numeric

Prosječni protok vode

Čitanje
VAR info := MODBUSR(H, RegVolume+7, UInt16);
VAR ts := 0;
VAR vol := 0;
IF GETBITS(info, 8, 8) != 0 OR GETBITS(info, 0, 8) != 7
    ADDERROR(1, "RegVolume does not point to a volume value in m³ (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(GETBITS(info, 0, 8)) + ") – copy the Register number of the volume value from the gateway Meter tab");
    RETURN(NaN);
END
ts := MODBUSR(H, RegMeter+4, UInt32);
IF ts = 0
    RETURN(NaN);
END
IF ts != PrevTime
    vol := MODBUSR(H, RegVolume+4, Float);
    IF PrevTime > 0 AND ts > PrevTime AND vol >= PrevVolume
        AvgFlow := (vol - PrevVolume) * 1000 * 3600 / (ts - PrevTime);
    ELSE
        AvgFlow := 0;
    END
    PrevVolume := vol;
    PrevTime := ts;
END
RETURN(AvgFlow);
Protok vode Varijabla Samo za čitanje

Protok koji javlja samo brojilo, u m³/h; mijenja se samo pri svakom očitanju pristupnika

Registar: H:RegFlow+4 Float Jedinica: m³/h numeric

Protok vode

Čitanje
VAR info := MODBUSR(H, RegFlow+7, UInt16);
VAR unit := GETBITS(info, 0, 8);
VAR factor := SWITCH(unit, 15, 1, 16, 60, 17, 3600, 0);
IF GETBITS(info, 8, 8) != 0 OR factor = 0
    ADDERROR(1, "RegFlow does not point to a volume flow value (entry type " + TOSTRING(GETBITS(info, 8, 8)) + ", unit code " + TOSTRING(unit) + ") – copy the Register number of this value from the gateway Meter tab");
    RETURN(NaN);
END
RETURN(MODBUSR(H, RegFlow+4, Float) * factor);
Povezivanje: Modbus TCP • Slave ID: $[SlaveId]
Moguća poboljšanja (3)
  • H:RegVolume+0 Unscaled meter value (64-bit integer) with scaling factor — Int64 at offset 0–3 with the power-of-ten scaling factor at offset 6; preferred by the manual for exact billing, 0 when the meter sends a floating-point value. The template reads the scaled Float at offset 4.
  • H:RegVolume+8 Timestamp of the value from the meter — UNIX time provided by the meter for the value, 0 if the meter provides none. The template uses the readout time of the meter entry (H:RegMeter+4) instead.
  • H:RegMeter+2 Manufacturer code of the meter — Three letters encoded in 5-bit groups.

Izvori

  • solvimus MBUS-GEM User manual v1.31 (Modbus TCP server, network configuration)
  • solvimus MBUS-GEM datasheets (MBUS-GE20M/80M and MBUS-GE125M/250M/500M)

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.

Zajednica · nije provjereno

Ž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