Modbus RTU uitgelegd: complete gids voor installateurs (2026)
Modbus RTU uitgelegd voor installateurs. Frame structuur, RS485 bekabeling, function codes, troubleshooting, en wat de EPBD per 2026 betekent.

Modbus RTU is sinds 1979 het werkpaard onder de industriele protocollen, en in 2026 nog steeds de eerste keuze op apparaat niveau in HVAC, warmtepompen, energiemeters en koeltechniek. Toch lopen veel installateurs vast op dezelfde drie struikelblokken: de frame structuur, de RS485 bekabeling en het verschil tussen function codes en register types. Dit artikel zet die drie helder op een rij.
Je leert hoe een Modbus RTU frame opgebouwd is, hoe je een RS485 daisy chain mechanisch en elektrisch correct aanlegt, welke function codes je in de praktijk nodig hebt, en hoe je een holding register byte voor byte uitleest. Aan het eind weet je ook wat de nieuwe EPBD verplichting per 1 januari 2026 voor jouw projecten betekent. Bedoeld voor installateurs, niet voor softwareontwikkelaars.
Key takeaways
- Modbus RTU stuurt vijf vaste velden over RS485: slave adres, function code, data, CRC, en daarna een silent interval van 3,5 character times.
- Een RS485 bus draagt maximaal 32 elektrische belastingen en 247 logische slave adressen, met 1.200 meter totale lengte als bovengrens.
- Per 1 januari 2026 verlaagt de EPBD recast (EU 2024/1275) de drempel voor verplichte gebouwautomatisering van 290 kW naar 70 kW, en Modbus RTU is dan vaak de onderlaag.
Wat is Modbus RTU precies?
Modbus RTU is een seriele variant van het Modbus protocol die binaire frames over RS485 (of RS232) verstuurt en cyclische redundancy check (CRC-16) gebruikt voor foutdetectie. RTU staat voor Remote Terminal Unit, een term die teruggaat naar de PLC wereld waar Modbus in 1979 door Modicon is geintroduceerd. De applicatie laag (function codes en register adressen) is identiek aan Modbus TCP en Modbus ASCII, alleen het transport verschilt.
Volgens de Modbus Application Protocol V1.1b3 specificatie, beheerd door de Modbus Organization, is de RTU variant de meest voorkomende invulling van Modbus over serieel. Je herkent een Modbus RTU installatie aan drie kabels op een klemmenbalk (A, B, GND) en een daisy chain topologie waar tot 32 apparaten elkaar volgen op één bus.
In 2026 zit Modbus RTU nog steeds in vrijwel elke nieuwe warmtepomp, energiemeter en koelregelaar. Hogere lagen zoals BACnet, KNX of OPC UA nemen de supervisie over, maar op de laag waar jij als installateur kabels trekt en eerst contact maakt blijft RTU de norm. Voor een algemene uitleg van wat Modbus is en waarom dat zo is, zie ook onze complete gids over Modbus.
Hoe is een Modbus RTU frame opgebouwd?
Een Modbus RTU frame heeft altijd vijf velden in vaste volgorde: slave adres, function code, data, CRC, en daarna een silent interval van 3,5 character times. Die volgorde verandert nooit, alleen de lengte van het data veld verschilt per function code.
Het slave adres is een byte met een waarde tussen 1 en 247. Adres 0 is gereserveerd voor broadcast berichten waarop slaves niet antwoorden. De function code zegt wat de master wil doen, bijvoorbeeld 0x03 voor het lezen van holding registers. Het data veld bevat de parameters van het verzoek of het antwoord, en is variabel van lengte. De CRC-16 is een 2 byte checksum die de slave (en master) berekent over alle voorgaande bytes, met polynoom 0xA001 conform de Modbus over Serial Line Specification V1.02, sectie 2.5.1.2.
Het silent interval van 3,5 character times is wat een installateur vaak vergeet maar wat in de praktijk veel verschil maakt. Bij baudrates tot 19.200 baud schaalt het interval mee met de baudrate (bij 9.600 baud is dat 3,65 ms), boven 19.200 baud is het vast 1,75 ms. Slaves gebruiken dat interval om te detecteren waar het ene frame eindigt en het volgende begint. Trekt je polling tool dat interval te kort, dan zie je willekeurige timeout fouten.
RS485 fysieke laag in de praktijk
Op elk RS485 apparaat zie je drie klemmen: A (signaal niet inverterend), B (signaal inverterend) en GND (gemeenschappelijke massa). De combinatie van A en B vormt het differentiele paar dat het signaal draagt, GND zorgt dat alle apparaten dezelfde referentiespanning hanteren.
In de praktijk zie je drie standaard fouten. De eerste is A en B verwisseld, wat de meeste apparaten verdragen want sommige fabrikanten labelen A en B andersom dan de TIA-485-A standaard. De tweede is GND vergeten, wat werkt totdat je apparaten op andere fasen van de installatie hangt en de spanningsverschillen oplopen. De derde is vermogenskabels te dicht bij de RS485 kabel, wat over een kabellengte van 50 meter al genoeg ruis kan injecteren om CRC errors te triggeren.
NEN 1010 paragraaf 528.1 vraagt minstens 200 mm parallelloop afstand tussen ELV signaalkabels (waaronder RS485) en LV vermogenskabels boven 230 V, of fysieke scheiding via een eigen goot. Voor een goede uitvoering, gebruik altijd getwiste paardraad met scherm, bij voorkeur Belden 9841 of een gelijkwaardige cat 5e met ferrite cores op kritieke punten.
Termineren: 120 ohm aan beide uiteinden
Plaats een 120 ohm termineringsweerstand aan beide fysieke uiteinden van de daisy chain, niet ertussen. Dat is de hele regel. Vergeten installateurs er een, dan ontstaan reflecties die het signaal vervormen en CRC errors veroorzaken. Plaatsen ze er drie of vier, dan trekken die parallel naar onder de minimum belasting van het lijn driver IC en zakt het signaal weg.
Veel moderne gateways en sommige slaves hebben een ingebouwde 120 ohm via een DIP switch of jumper. Controleer altijd of die geactiveerd is en of je hem niet ergens midden in de bus per ongeluk aan hebt staan.
Slave adressen, baudrate en parity
Elke slave op de bus krijgt een uniek slave adres tussen 1 en 247. Voor energiemeters wordt vaak gestart bij 1 en doorgenummerd, voor warmtepompen kun je het adres meestal in het servicemenu instellen of via DIP switches. Adressen worden in elk RTU frame meegestuurd, dus dubbele adressen leiden direct tot collisies en je ziet beide slaves antwoorden tegelijk.
De baudrate kies je per bus, niet per slave: alle apparaten op dezelfde fysieke RS485 lijn moeten dezelfde baudrate hanteren. In 2026 zijn de gangbare keuzes 9600, 19200 of 38400 baud. Standaard ModbusCloud projecten draaien op 9600 baud 8N1 omdat dat de meest stabiele combinatie is over een 200 tot 1.200 meter daisy chain. Hogere baudrates verkorten de polling cyclus, maar maken de installatie gevoeliger voor reflecties en kabel kwaliteit.
Parity is de tweede helft van het 8N1 jargon. 8N1 betekent 8 data bits, geen parity, 1 stop bit. De Modbus over Serial Line Specification voorziet ook 8E1 (even parity, 1 stop bit) en 8O1 (odd parity, 1 stop bit). Sommige oudere apparaten draaien dwingend op 8E1, kijk dus altijd in de datasheet voordat je een bus opzet.
Function codes en register types die ertoe doen
Een function code vertelt de slave wat de master wil doen. Van de 24 gedefinieerde codes in de specificatie gebruik je in HVAC en koeltechniek vooral zeven.
| FC | Naam | Toepassing | Wie gebruikt dit? |
|---|---|---|---|
| 01 | Read Coils | Lees aan/uit relais status | Koeltechniek, verlichting |
| 02 | Read Discrete Inputs | Lees alarm en status contacten | Alarm monitoring |
| 03 | Read Holding Registers | Lees setpoints en config | Dominante FC in HVAC |
| 04 | Read Input Registers | Lees meetwaarden | Energiemeters, PV |
| 05 | Write Single Coil | Zet relais aan of uit | Handmatig sturen |
| 06 | Write Single Register | Schrijf een setpoint | Setpoint wijzigen |
| 16 | Write Multiple Registers | Schrijf meerdere registers | Bulk configuratie |
De vier register types verschillen in toegang en in de Modicon prefix die je vaak in datasheets ziet. Coils (0x prefix) zijn 1 bit en lees-schrijfbaar, discrete inputs (1x) zijn 1 bit en alleen lezen, input registers (3x) zijn 16 bit en alleen lezen, holding registers (4x) zijn 16 bit en lees-schrijfbaar. In de praktijk zit 80 procent van wat je leest in holding (4x) en input (3x) registers.
Een 32 bit float over twee 16 bit registers is gangbaar bij energiemeters: kijk altijd in de datasheet of de fabrikant high word eerst (big endian) of low word eerst (little endian) verstuurt. Eastron, Carlo Gavazzi en de meeste Europese meters gebruiken big endian, sommige Aziatische merken doen het omgekeerd.
Praktijkvoorbeeld: een holding register lezen met FC03
Stel je leest de spanning L1 uit een Eastron SDM630, register adres 0x0000 (twee registers omdat de waarde een 32 bit float is). Het verzoek is precies 8 bytes lang.
| Byte | Inhoud | Betekenis |
|---|---|---|
| 0 | 0x01 | slave adres 1 |
| 1 | 0x03 | function code 03 (read holding registers) |
| 2-3 | 0x00 0x00 | start register adres |
| 4-5 | 0x00 0x02 | aantal registers (2) |
| 6-7 | 0xC4 0x0B | CRC-16 |
De slave antwoordt met 9 bytes: slave adres (1B), function code (1B), byte count (1B = 4), 4 data bytes (de float), en 2 bytes CRC. Bij 9600 baud zit zo'n volledige cyclus rond de 20 ms. Met een polling interval van 1 seconde kun je dus ruim 30 slaves achter elkaar uitvragen zonder overlap.
Troubleshooting: vijf veelvoorkomende RTU problemen
Wanneer een bus niet loopt zoals verwacht, doorloop je deze vijf in volgorde voordat je verder kijkt.
| Symptoom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Geen antwoord van een specifiek apparaat | Verkeerd slave adres of dubbel adres | Controleer DIP switches of menu instelling, gebruik logger om verkeer te zien |
| Random CRC errors over de hele bus | Termineringsweerstand vergeten of dubbel | Meet weerstand tussen A en B met meter uit, hoort 60 ohm te zijn (twee 120 ohm parallel) |
| Werkt op één apparaat, niet op meerdere | A en B verwisseld op een aftakking | Check elke aansluiting, A naar A en B naar B |
| Random timeouts bij hoge polling | Silent interval te kort | Verhoog polling interval naar minstens 2x de frame tijd plus 3,5 character times |
| Werkt overdag, faalt 's avonds | Vermogenskabel pakt RS485 kabel | Check NEN 1010 paragraaf 528.1, scheid kabels minstens 200 mm of via aparte goot |
Bij hardnekkige problemen helpt een seriele protocol logger zoals een USB-RS485 converter plus Wireshark of een Modbus scanner. Daarmee zie je per byte welk verzoek de master stuurt en welk antwoord (of geen antwoord) terugkomt.
Modbus RTU en de EPBD verplichting per 2026
Per 1 januari 2026 verlaagt de EPBD recast (EU 2024/1275), Artikel 14, de drempel voor verplichte gebouwautomatisering en monitoring (BACS) van 290 kW naar 70 kW effectief opgesteld vermogen voor verwarming of koeling in niet-residentiele gebouwen. Dat brengt een grote groep middelgrote panden onder de verplichting: kantoren rond 1.000 m², middelbare scholen, kleinere ziekenhuizen.
Voor een installateur betekent dat: vrijwel elke nieuwe warmtepomp boven 70 kW moet straks een digitaal datapunt opleveren naar een hoger systeem, en Modbus RTU is daarbij de meest voorkomende onderlaag. Volgens het EHPA Market Report 2025 ligt het Modbus aandeel in nieuwe Europese warmtepompen al op ongeveer 60 procent. Bij energiemeters, waar Eastron, Carlo Gavazzi en Janitza dominant zijn op de NL markt, is dat aandeel nog hoger.
In de praktijk maak je de keten met een gateway die de Modbus RTU bus uitleest en de data via MQTT of een API doorzet naar een monitoring platform. Daarmee voldoe je aan de Klasse B eis uit DIN EN ISO 52120-1 die de EPBD voorschrijft: continue dataverzameling per technische installatie. Bekijk hoe je een ModbusCloud Gateway inzet voor zo'n keten.
Wat is het verschil tussen Modbus RTU en Modbus TCP?
Modbus RTU stuurt binaire frames over een seriele RS485 of RS232 verbinding met CRC-16 foutdetectie. Modbus TCP stuurt dezelfde function codes in een TCP/IP pakket met MBAP header op poort 502 over Ethernet. De applicatie laag is identiek, alleen het transport verschilt.
Hoeveel slaves kun je op een Modbus RTU bus aansluiten?
Logisch ondersteunt Modbus RTU 247 slave adressen plus broadcast adres 0. Elektrisch beperkt RS485 tot 32 standaard belastingen per segment. Wie meer apparaten wil, splitst de bus met repeaters of gebruikt een tweede gateway poort.
Welke baudrate is gangbaar voor Modbus RTU?
9600 baud 8N1 is de meest stabiele default in Europese HVAC en koeltechniek. 19200 en 38400 baud worden gebruikt waar polling cycli korter moeten, maar zijn gevoeliger voor kabelkwaliteit en reflecties. Begin altijd op 9600, schaal op als alles loopt.
Heb je een termineringsweerstand nodig op Modbus RTU?
Ja, plaats een 120 ohm termineringsweerstand aan beide fysieke uiteinden van de daisy chain. Niet ertussen, want dan trekken de weerstanden parallel en zakt het signaal te ver onder de minimum belasting voor het lijn driver IC.
Hoe lang mag een Modbus RTU kabel zijn?
De TIA/EIA-485-A standaard staat tot 1.200 meter toe bij 9600 baud met getwiste paardraad. Op 38400 baud zakt dat naar ongeveer 600 meter. Houd voor stabiele installaties een marge van 30 procent op deze waarden aan.
Wat zijn 8N1, 8E1 en 8O1?
Het zijn afkortingen voor de seriele frame instelling: 8 data bits, parity (None, Even of Odd), en 1 stop bit. 8N1 is de Modbus default. 8E1 wordt door sommige oudere apparaten verplicht gebruikt. Alle apparaten op één bus moeten dezelfde instelling hanteren.
Klaar om monitoring volgens EPBD 2026 op te zetten? Een ModbusCloud Gateway leest de Modbus RTU bus uit en zet alle data versleuteld door naar een centraal dashboard. Bekijk hoe een complete keten eruitziet en wat dat voor jouw projecten betekent.
Klaar om te beginnen?
Bestel de ModbusCloud Gateway en monitor je installaties binnen 5 minuten.
Bekijk de gateway