M-Bus naast Modbus RTU: twee draden met busvoeding tegenover RS485 met registertabel
Op deze pagina

M-Bus (Meter-Bus) is een Europese veldbus voor het op afstand uitlezen van warmte-, water-, gas- en kWh-meters, vastgelegd in EN 13757. Het is niet hetzelfde als Modbus. M-Bus loopt over twee draden die de meters ook voeden, de polariteit maakt niet uit en elke meetwaarde komt met eenheid en factor binnen. Modbus RTU loopt over RS485, voedt niets en levert kale registerwaarden waarvan de betekenis in de registertabel van de fabrikant staat. Wil je een M-Bus-meter in een Modbus-systeem hebben, dan zet een gateway de waarden om, of je bestelt de meter met een Modbus-module.

Voor een installateur die warmte- en watermeters in een gebouw op afstand wil uitlezen, bepaalt dat verschil welke hardware in de meterkast komt. Hieronder staan de signaalniveaus, adressen en kabellengtes, en hoe een M-Bus-meter in een Modbus-systeem terechtkomt.

Wat M-Bus is en waar je het tegenkomt

M-Bus is een master-slavebus die gemaakt is voor verbruiksmeters. Horst Ziegler van de Universiteit Paderborn ontwikkelde hem in 1992 met Texas Instruments en Techem, eerst voor warmtemeters in EN 1434. Tegenwoordig beschrijft EN 13757-2 de fysieke laag en de linklaag, en EN 13757-3 de applicatielaag.

Je vindt M-Bus vooral waar veel meters in één gebouw hangen: appartementen met blokverwarming, utiliteitsbouw en warmtenetten. De meterbus haalt daar per woning of per groep de stand van de warmtemeter, de watermeter en soms de gasmeter op. Het medium staat in elk telegram: code 02 is elektriciteit, 03 gas, 04 warmte en 07 water (m-bus.com, §8.4.1).

Modbus komt uit de industriële automatisering en is niet voor meters bedacht. Daarom zie je in een meterkast vaak beide: M-Bus voor de warmte- en watermeters van de bewoners, Modbus voor de kWh-meters, omvormers en warmtepompen die een installateur of gebouwbeheersysteem uitleest.

Twee draden voeden de meter en dragen de data

Op M-Bus praten master en meter elk op een andere manier over dezelfde twee draden. De master zendt met spanning: een 1 is nominaal 36 V aan de busdriver, een 0 trekt de bus 12 V omlaag naar 24 V. De meter antwoordt met stroom. In rust trekt hij hooguit 1,5 mA, voor een 0 trekt hij 11 tot 20 mA extra (m-bus.com, §4.1).

1011010136 V24 V+11 tot 20 mA1,5 mA
Master naar meter
Spanning: een 0 trekt de bus 12 V omlaag.
Meter naar master
Stroom: een 0 vraagt 11 tot 20 mA extra.
De master moduleert de spanning, de meter de stroom. Bron: m-bus.com, §4.1.

Die 1,5 mA heet een unit load. Een meter die meer stroom nodig heeft, telt voor meerdere unit loads. Omdat de master de bus voedt, kan een meter zonder eigen batterij of netvoeding werken. Een RS485-bus doet dat niet: elk Modbus-apparaat heeft zijn eigen voeding.

De meter hangt via een gelijkrichter aan de bus. De twee aders zijn daardoor verwisselbaar, zegt de specificatie letterlijk: "the two bus lines can be interchanged without affecting the operation of the slaves" (m-bus.com, §4.4). Op Modbus RTU telt de polariteit wel. A en B verwisseld is daar een van de eerste dingen die je controleert als een apparaat niet antwoordt.

Adressen, baudrate en kabellengte

Een M-Bus-segment in de standaardconfiguratie heeft hooguit 250 meters, draait op 300 tot 9600 baud en gebruikt telefoonkabel van het type JYStY N x 2 x 0,8 mm (m-bus.com, §4.2). In het veld is 2400 baud de gangbaarste snelheid. Het tekenformaat is altijd 8E1: acht databits met even pariteit.

De afstand wordt vaak verkeerd geciteerd. De 350 m uit veel overzichten is de maximale afstand tussen een meter en de repeater. De totale kabellengte van een segment mag tot 1000 m, wat past bij een kabelcapaciteit van hooguit 180 nF. Met een lagere baudrate en minder meters kan het verder, zolang de busspanning in de 0-toestand nergens onder 12 V zakt.

Elke meter heeft een primair adres van 1 tot 250. Uit de fabriek staat dat vaak op 0, en twee meters op hetzelfde adres botsen. Daarom heeft M-Bus ook een secundair adres: het achtcijferige identificatienummer, de fabrikantcode, een versie en het medium (m-bus.com, §6.3.1). De master selecteert een meter dan op dat nummer via adres 253. Je hoeft zo niet bij elke meter een adres in te stellen, maar het uitlezen duurt langer.

Een M-Bus mag als lijn of als ster lopen. Modbus RTU vraagt een lijn met een afsluitweerstand aan beide uiteinden en aftakkingen van hooguit 20 m (Modbus over Serial Line V1.02, §3.4.2 en §3.4.3). Meer daarover staat in de RS485-bekabeling voor Modbus.

Een M-Bus-meter zegt zelf wat hij meet

M-Bus-data beschrijft zichzelf, Modbus-data niet. Elk M-Bus-record begint met een DIF die zegt hoe lang en hoe gecodeerd de waarde is, en een VIF die eenheid en factor geeft (m-bus.com, §8.4.2 en §8.4.3). Neem het record 04 06 D2 04 00 00. DIF 04 is een 32-bit getal en VIF 06 is energie in kWh. D2 04 00 00 is 1234, met de laagste byte eerst.

04DIF06VIFD20400001234 kWh04D21234 ?
M-Bus-record
DIF 04: 32-bit getal. VIF 06: energie in kWh. Waarde 1234.
Modbus-register
Alleen het getal 1234. Eenheid en factor staan in de registertabel van de fabrikant.
Dezelfde waarde, één keer met eenheid en één keer zonder.

Een Modbus-register is een 16-bit woord zonder eenheid. Of 1234 kWh, Wh of tienden van een kWh betekent, en in welk register de waarde staat, lees je in de handleiding. Hoe je zo'n tabel leest, staat in Modbus-registers uitgelegd.

Zelfbeschrijvend betekent niet dat alle M-Bus-meters dezelfde volgorde gebruiken. De norm legt niet vast welke waarden een meter stuurt en in welke volgorde. Daarvoor bestaat OMS, het Open Metering System, dat dit voor meters van verschillende fabrikanten gelijk trekt.

M-Bus en Modbus RTU naast elkaar

De tabel zet de punten naast elkaar waar je bij het aansluiten tegenaan loopt. De M-Bus-waarden komen uit de m-bus.com-documentatie, de Modbus-waarden uit Modbus over Serial Line V1.02.

M-BusModbus RTU
NormEN 13757-2 en -3Modbus over Serial Line V1.02 (modbus.org)
Fysieke laagEigen tweedraads bus, spanning en stroomRS485, differentieel
Voeding via de busJa, de master voedt de metersNee
PolariteitMaakt niet uitA en B moeten kloppen
TopologieLijn of sterLijn met afsluitweerstanden
Apparaten per segmentTot 25032 zonder repeater
AdressenPrimair 1 tot 250, plus secundair adres1 tot 247
Snelheid300 tot 9600 baud, meestal 2400Standaard 19 200 baud, 9600 gangbaar
Kabellengte350 m meter tot repeater, 1000 m totaal1000 m bij 9600 baud en AWG26
DataRecords met eenheid en factor16-bit registers zonder eenheid
Typische apparatenWarmte-, water- en gasmeterskWh-meters, omvormers, warmtepompen, regelaars

Snelheid is zelden de doorslag. Een meterstand verandert langzaam, en de M-Bus-specificatie geeft een meter tot 330 bittijden plus 50 ms om te antwoorden (m-bus.com, §5.4). Voor periodiek uitlezen is dat ruim genoeg. Voor regelen en schakelen kies je Modbus.

Een M-Bus-meter op een Modbus-systeem aansluiten

Een M-Bus-meter komt op een Modbus-systeem via een M-Bus-naar-Modbus-gateway. Die gateway is M-Bus-master: hij voedt de bus, leest de meters en zet elke waarde in holding registers die een Modbus-master leest.

M-BusWarmtemeterWatermeterkWh-meterM-Bus-naar-Modbus-gatewayM-Bus ⇄ ModbusModbus RTU of TCPModbus-masterM-BusRS485 of ethernet
De gateway voedt de M-Bus en zet de meterwaarden in holding registers.

De Seneca Z-KEY-MBUS is een voorbeeld. Hij leest tot 25 M-Bus-meters met samen 500 waarden en zet ze vanaf register 40001 neer, elke 32-bit waarde in twee registers (handleiding MI-00526, rev. 8, p. 5 en p. 24). Intesis en Carlo Gavazzi maken vergelijkbare gateways, met een scan die de meters vindt en de Modbus-tabel opbouwt.

Bij het instellen lopen installateurs tegen drie dingen aan. Ken je adres en baudrate niet, dan raadt Seneca een secundaire scan op alle baudrates aan, en die kan enkele minuten duren (MI-00526, p. 20). Staan twee meters op primair adres 0, dan botsen ze; lees die meters op secundair adres uit. En veel gateways zetten een BCD-tellerstand om naar een 32-bit float, waarna de Modbus-waarde volgens Seneca kan afwijken van het display (MI-00526, p. 25).

Een converter kan ook overbodig zijn. Sommige meters hebben een slot voor een communicatiemodule. Kamstrup levert voor de MULTICAL 403, 603 en 803 onder meer een M-Bus-module en een Modbus RTU-module (datasheets HC_003_20_21_22 en HC_003_67). Kies je bij de bestelling de Modbus-module, dan hangt de warmtemeter direct op de RS485-bus. Een vergelijking van meters met Modbus staat in de vergelijking van Modbus-energiemeters.

Wireless M-Bus en uitlezen op afstand

Wireless M-Bus is de draadloze variant, vastgelegd in EN 13757-4. Hij gebruikt licentievrije banden, in Europa 868 MHz en 169 MHz.

De Europese energie-efficiëntierichtlijn maakt uitlezen op afstand de norm. Artikel 9c van richtlijn 2012/27/EU, gewijzigd door richtlijn 2018/2002, gaat over warmtemeters en warmtekostenverdelers. Wat na 25 oktober 2020 is geplaatst, moet op afstand uitleesbaar zijn, waar dat technisch haalbaar en kosteneffectief is. Bestaande meters moeten uiterlijk 1 januari 2027 op afstand uitleesbaar zijn of vervangen, tenzij de lidstaat aantoont dat dat niet kostenefficiënt is. Op afstand uitleesbaar betekent niet per se bekabelde M-Bus: draadloos telt ook.

Waar ModbusCloud past

De ModbusCloud Gateway leest Modbus RTU via RS485 en Modbus TCP via ethernet, tot 32 Modbus-apparaten per RS485-lijn. Een M-Bus-meter lees je ermee uit via een M-Bus-naar-Modbus-gateway of via een Modbus-module in de meter. Staat de registertabel van die gateway of module niet in de bibliotheek, dan maak je zelf een template in het portaal. ModbusCloud maakt hem ook kosteloos zodra de registergegevens er zijn.

Is M-Bus hetzelfde als Modbus?

Nee. M-Bus is een meterbus volgens EN 13757 met een eigen tweedraads fysieke laag die de meters voedt. Modbus RTU loopt over RS485 en voedt niets. M-Bus stuurt waarden met eenheid en factor, Modbus kale registers. Een gateway kan M-Bus-waarden omzetten naar Modbus-registers.

Wat is M-Bus?

M-Bus, Meter-Bus, is een Europese veldbus voor het op afstand uitlezen van warmte-, water-, gas- en kWh-meters. Een master voedt de bus en vraagt de meters één voor één uit. Een segment heeft tot 250 meters op 300 tot 9600 baud, meestal 2400 baud.

Hoe lang mag een M-Bus-kabel zijn?

Tot 1000 m per segment in de standaardconfiguratie, met hooguit 350 m tussen een meter en de repeater. Dat past bij een kabelcapaciteit van hooguit 180 nF. Met minder meters en een lagere baudrate kan het verder, zolang de busspanning nergens onder 12 V zakt.

Maakt de polariteit van de M-Bus-draden uit?

Nee. Een M-Bus-meter hangt via een gelijkrichter aan de bus, dus je kunt de twee aders verwisselen. Bij Modbus RTU over RS485 telt de polariteit wel: A en B verwisselen is een gangbare oorzaak van een apparaat dat niet antwoordt.

Hoeveel M-Bus-meters kan ik op één gateway aansluiten?

Dat hangt af van de gateway. De norm staat 250 meters per segment toe, het echte aantal staat in de specificatie van de gateway. Elke meter vraagt minstens één unit load van 1,5 mA. De Seneca Z-KEY-MBUS leest er 25 uit, Intesis heeft varianten voor 20 en 50 meters.

Is RS485 hetzelfde als Modbus?

Nee. RS485 is de elektrische laag: twee draden met een differentieel signaal. Modbus RTU is het protocol dat over die twee draden loopt, met adressen, function codes en registers. M-Bus gebruikt geen RS485 maar een eigen fysieke laag met spanning en stroom.