Het Modbus RTU-protocol is als een ‘gemeenschappelijke taal’ tussen industriële apparaten, waardoor een soepele ‘communicatie’ mogelijk is tussen apparaten zoals elektriciteitsmeters en sensoren van verschillende merken.
Modbus-communicatieprotocoltoepassingsdemonstratie
Dit artikel begeleidt u op de eenvoudigste en meest begrijpelijke manier door de toepassing van Modbus RTU in energiemeters. Zelfs als u een complete beginneling bent zonder technische achtergrond, kunt u gemakkelijk de kernpunten van dit belangrijke industriële communicatieprotocol begrijpen.

Wat is het Modbus RTU-protocol?
Modbus RTU is een serieel communicatieprotocol dat oorspronkelijk in 1979 door Modicon (nu onderdeel van Schneider Electric) werd ontwikkeld voor zijn PLC's (Programmable Logic Controllers).
Tegenwoordig is het een van de meest gebruikte protocollen in de industriële automatisering geworden, ondersteund door meer dan 400 fabrikanten wereldwijd.
Waarom heet het "RTU"? RTU is een afkorting voor "Remote Terminal Unit", wat aangeeft dat dit protocol voornamelijk wordt gebruikt voor communicatie tussen externe apparaten. Het is als een 'sms-systeem' tussen elektrische apparatuur, waarbij gegevens worden uitgewisseld via een eenvoudig verzoek- en antwoordmechanisme.
Hoe werkt Modbus RTU?
Modbus RTU maakt gebruik van een master{0}}slave-communicatiearchitectuur, zoals een leraar en leerlingen in een klaslokaal.
- Meester: De ‘leraar’, doorgaans een computer, PLC of concentrator, is verantwoordelijk voor het initiëren van vragen en opdrachten.
- Slaaf: De ‘leerling’, zoals een elektriciteitsmeter of sensor, kan alleen de vragen van de leraar beantwoorden en kan niet zelfstandig spreken. (In elektriciteitsmetertoepassingen...)

Modbus RTU-berichtformaat
"SMS-sjabloon" tussen apparaten
Modbus RTU-communicatieberichten zijn als zorgvuldig vervaardigde tekstberichten, met vaste formaatvereisten.
Een compleet Modbus RTU-bericht bevat de volgende onderdelen:
| Adrescode | Functiecode | Gegevensveld | Controleer code |
|---|---|---|---|
| 8-bits | 8-bits | N × 8-bits | 16-bits |
- Adrescode (1 byte): Equivalent aan een "telefoonnummer van de ontvanger", dat het adres van de doelenergiemeter (1-247) identificeert, waarbij 0 voor een broadcastadres staat.
- Functiecode (1 byte): Equivalent aan een "tekstberichttype", waarin de energiemeter wordt geïnstrueerd over de uit te voeren handeling (bijvoorbeeld gegevens lezen, gegevens schrijven, enz.).
- Gegevensveld (N bytes): De specifieke informatie die moet worden verzonden, zoals registeradres, gegevenswaarde, enz.
- CRC-controlesom (2 bytes): Equivalent aan een 'anti-namaakcode', die wordt gebruikt om te controleren op fouten tijdens de verzending.
Een typisch bericht voor het lezen van de totale positieve actieve energiegegevens van een UBS-energiemeter is als volgt:
[Adres 00][Functiecode 03][Startadres 00 0C][Leeslengte 00 02][CRC Checksum 05 D9]
Dit is hetzelfde als zeggen: "Alle meters, lees de gegevens uit register 000C, te beginnen met register 1."
Na ontvangst van het bericht zal meter #1 antwoorden met:
[Adres 01][Functiecode 03][Gegevenslengte 04][Gegevens 00 00 00 00][CRC Checksum FA 33]
Dit betekent: "Meter nr. 1 antwoordde: de totale gelezen positieve energiegegevenswaarde is 00 00 00 00 (hexadecimaal)" (Opmerking: deze meter nr. 1 is een nieuwe, ongebruikte meter). De onderstaande afbeelding is een testdemonstratie:

Het "databoek" in een elektriciteitsmeter: register uitgelegd
In het Modbus RTU-protocol worden alle gegevens van een elektriciteitsmeter opgeslagen in een 'spreadsheet'-het register. Registers zijn hoofdzakelijk onderverdeeld in vier typen:
| Registertype | Lees-/schrijftoestemming | Functiecodes | Typische opgeslagen inhoud |
|---|---|---|---|
| Spoelregister | Lezen/schrijven | 01, 05 | Relaisstatus, schakelbediening |
| Discreet invoerregister | Alleen lezen- | 02 | Digitale ingang (bijv. alarmsignalen) |
| Invoerregister | Alleen lezen- | 04 | Real- meetgegevens (spanning, stroom, enz.) |
| Registerhouden | Lezen/schrijven | 03, 06 | Apparaatparameters, geaccumuleerde energie, enz. |
Bij elektriciteitsmetertoepassingen zijn de meest voorkomende registers:
Invoerregister
(Functiecode 04H): slaat real-gemeten gegevens op, zoals spanning, stroom en vermogen.
Registerhouden
(Functiecode 03H): Slaat het totale elektriciteitsverbruik, apparaatparameters enz. op.
UBS Energiemeter Modbus Register Adresinformatietabel
Het Modbus-protocol-broadcastadres is 0x00. Raadpleeg de onderstaande tabel voor gedetailleerde Modbus-protocolregisteradresinformatie voor UBS-energiemeters:
| Registreren (hexadecimaal) | Variabele naam | Kenmerk (eenheid / R/W) | Gegevenstype | Graaf | Opmerkingen |
|---|---|---|---|---|---|
| 0x0000 | Gelijkstroomspanning | Eenheid: V, R/W: RO | S16 | 1 | Bereik: -9999~9999; Aflezing=Effectieve waarde × 10^(decimaalpunt) |
| 0x0001 | Spanning decimale punt | Eenheid: Geen, R/W: RO | U16 | 1 | Vaste waarde: 0 |
| 0x0002 | DC-stroomwaarde | Eenheid: A, R/W: RO | S16 | 1 | Bereik: -9999~9999 |
| 0x0003 | Huidig decimaalpunt | Eenheid: Geen, R/W: RO | U16 | 1 | Vaste waarde: 1 |
| 0x0008 | Vermogenswaarde | Eenheid: kW, R/W: RO | S16 | 1 | Bereik: -9999~9999 |
| 0x0009 | Vermogen decimaal punt | Eenheid: Geen, R/W: RO | U16 | 1 | Vaste waarde: 1 |
| 0x000C | Totale voorwaartse actieve energie | Eenheid: 0,001 kWh, R/W: RO | U32 | 2 | Hoge byte eerst, lage byte als laatste; Voorbeeld: als gegevens=5000 zijn, decimale punt=2 → Werkelijke waarde=5000 × 10^(2-3)=500.0 |
| 0x203C | Kanaal 1 Spanning | Eenheid: 0,0001V, R/W: RO | I32 | 2 | Hoge byte eerst, lage byte als laatste |
| 0x203E | Kanaal 2 Spanning | Eenheid: 0,0001V, R/W: RO | I32 | 2 | Altijd 0 |
| 0x2040 | Kanaal 1 Huidig | Eenheid: 0,0001A, R/W: RO | I32 | 2 | Hoge byte eerst, lage byte als laatste |
| 0x2042 | Kanaal 2 Huidig | Eenheid: 0,0001A, R/W: RO | I32 | 2 | Altijd 0 |
| 0x2044 | Kanaal 1 Vermogen | Eenheid: 0,0001 kW, R/W: RO | I32 | 2 | Hoge byte eerst, lage byte als laatste |
| 0x2046 | Kanaal 2 voeding | Eenheid: 0,0001 kW, R/W: RO | I32 | 2 | Altijd 0 |
| 0x9A00 | Voorwaartse actieve totale energie | Eenheid: kWh, R/W: RO | vlot | 2 | |
| 0xA001/0x8900 | Apparaatadres | Eenheid: Geen, R/W: RW | U16 | 1 | Bereik: 0~247 |
Demonstratie van het lezen van UBS-energiemeterberichten
Gebruik de hostcomputersoftware van de UBS-energiemeter en lees de volgende gegevens van de DJZ1226 DC slimme energiemeter: totale positieve actieve energie, spanning, stroom, vermogen en meteradres.

Zoals weergegeven in het bovenstaande diagram, is de gedetailleerde berichtinhoud die door de hostcomputer wordt verzonden en ontvangen als volgt:
13:25:30.229 Totale positieve actieve energie(000C0002) ...
13:25:30.256 ▼Verzenden:00 03 00 0C 00 02 05 D9
13:25:30.344 ▲Ontvangen:01 03 04 00 00 00 00 FA 33
13:25:30.359 Gelijkstroomspanning (00000002) ...
13:25:30.424 ▼Verzenden:00 03 00 00 00 02 C5 DA
13:25:30.428 ▲Ontvangen:01 03 04 00 17 00 03 0A 36
13:25:30.494 Gelijkstroom(00020002) ...
13:25:30.522 ▼Verzenden:00 03 00 02 00 02 64 1A
13:25:30.610 ▲Ontvangen:01 03 04 00 30 00 02 7B FD
13:25:30.621 Vermogen(00080002) ...
13:25:30.682 ▼Verzenden:00 03 00 08 00 02 44 18
13:25:30.690 ▲Ontvangen:01 03 04 00 01 00 02 2A 32
13:25:30.702 Communicatieadres 2(A0010001) ...
13:25:30.779 ▼Verzenden:00 03 A0 01 00 01 F6 1B
13:25:30.783 ▲Ontvangen:01 03 02 00 01 79 84
13:25:30.795 Einde van het lezen van gegevens.
Veelvoorkomende problemen en technieken voor probleemoplossing
Hoewel het Modbus RTU-protocol relatief eenvoudig is, kunnen er in praktische toepassingen toch verschillende problemen optreden. Hieronder volgen veelvoorkomende fouten en oplossingen bij de communicatie van elektriciteitsmeters:
Geen communicatiereactie
● Controleer fysieke verbindingen:
▪ Is de RS-485-bedrading correct (A/B-lijnen omgekeerd)?
▪ Zijn de afsluitweerstanden op elkaar afgestemd (sluit in het algemeen weerstanden van 120 Ω aan elk uiteinde van de bus aan)?
▪ Is de communicatieafstand groter dan de limiet (RS-485 kan theoretisch 1200 meter bereiken, maar de werkelijke afstanden worden beïnvloed door omgevingsfactoren).
● Controleer parameterinstellingen:
▪ Zijn de baudrate, databits, stopbits en pariteitsinstellingen consistent met die van de elektriciteitsmeter?
▪ Is het apparaatadres correct ingesteld (geen dubbele adressen)?
Intermitterende communicatie
● Controleer op lijninterferentie:
▪ Gebruik een afgeschermde kabel met getwist-paren en zorg ervoor dat de afscherming aan één uiteinde is geaard.
▪ Zorg ervoor dat de kabel niet parallel loopt met hoogspanningskabels-.
● Individuele apparaten testen:
▪ Sluit elke elektriciteitsmeter afzonderlijk aan om defecte apparaten op te lossen.
▪ Gebruik de speciale hostcomputersoftware van UBS Electronics (zoals AMS) om rechtstreeks met de elektriciteitsmeter te communiceren en het probleem te lokaliseren.
Gegevensfouten
● CRC-controle verifiëren:
▪ Controleer of de verzonden en ontvangen CRC-codes consistent zijn.
▪ Bevestig de volgorde van de databytes (Modbus RTU is meestal weinig-endian).
● Registertoewijzing controleren:
▪ Controleer of de gebruikte registeradressen overeenkomen met de handleiding van de elektriciteitsmeter.
▪ Noteer de offset van het registeradres.
Als u de in dit artikel genoemde UBS-hostcomputersoftware (Modbus RTU-protocol) moet gebruiken, neem dan contact op met de persoon die verantwoordelijk is voor de bestelling van uw UBS-elektriciteitsmeter en ontvang meer technische after--ondersteuning.




