Modbus

Laatst bijgewerkt op 15 oktober 2025

Het Modbus communicatieprotocol is een veelgebruikte standaard in industriële automatisering. In deze handleiding leg ik in duidelijke taal uit wat Modbus is, welke varianten er zijn en hoe je het praktisch instelt. Je leest over Modbus RTU en Modbus TCP, registers en coils, en belangrijke instellingen zoals RS-485, baudrate en slave-ID.

Wat is het Modbus communicatieprotocol

Modbus is een simpel, open protocol ontwikkeld door Modicon (nu Schneider Electric) om gegevens uit te wisselen tussen elektronische apparaten. Het Modbus communicatieprotocol werkt volgens een master/slave-model bij seriële lijnen (RTU) en een client/server-model bij TCP. Apparaten vragen of leveren data via coils en registers met vaste adressering.

Architectuur: master/slave en client/server

Bij Modbus RTU is er één master die opdrachten en leesverzoeken stuurt en meerdere slaves die reageren. Bij Modbus TCP spreken we van client/server: een client (bijv. SCADA of PLC) verbindt met één of meerdere servers (apparaten) via TCP/IP.

Datarepresentatie: coils en registers

De uitwisseling gebeurt via coils (1 bit) en registers (16-bit woorden). Coils zijn typisch digitale uitgangen; discrete inputs zijn alleen-lezen digitale ingangen. Input registers bevatten analoge meetwaarden; holding registers zijn lees- en schrijfbaar voor setpoints en parameters.

Belangrijkste kenmerken

  1. Simpel en robuust — weinig overhead, betrouwbaar in industriële omgevingen
  2. Breed ondersteund — open standaard, door veel fabrikanten en apparaten
  3. Master‑Slave (RTU) / Client‑Server (TCP) — één partij bepaalt communicatie
  4. Gestandaardiseerde adresstructuur — vaste indeling voor coils en registers
  5. Flexibel transport — seriële lijnen (RS-232/RS-485) en Ethernet (TCP/IP)
  6. Deterministisch gedrag — voorspelbare timing dankzij mastergestuurde polling

Ondersteunde apparaten en toepassingen

Toepassing / apparaatBeschrijving
PLC’sVeel PLC’s ondersteunen Modbus RTU en/of Modbus TCP voor communicatie met randapparatuur.
Sensors & actuatorenSlimme sensoren (temperatuur, druk, flow) en actuatoren bieden vaak data via Modbus.
Frequentieregelaars en motorstartersAandrijvingen gebruiken Modbus om parameters te lezen of te schrijven.
Meet- en energiemetersEnergie- en meetmeters communiceren via Modbus-registers.
SCADA- en HMI-systemenFungeren vaak als master of client om data uit Modbus-slaves te verzamelen.
Gateways en convertersConverteren Modbus RTU naar TCP of naar andere protocollen (bijv. MQTT).

Instellen: Modbus RTU

Modbus RTU is bedoeld voor seriële communicatie en is geschikt voor eenvoudige, lokale netwerken.

Fysieke verbinding

  1. Gebruik RS-485 (meest gebruikt) of RS-232. RS-485 ondersteunt multidrop (meerdere apparaten op één lijn).
  2. Zorg voor correcte bekabeling en juiste afsluitweerstanden om reflecties te voorkomen.

Netwerkparameters

  1. Stel baudrate, databits, pariteit en stopbits identiek in op alle apparaten.
  2. Elke slave krijgt een uniek slave-ID (1–247).
  3. Polling: de master vraagt periodiek data op; goede timing voorkomt botsingen.

Instellen: Modbus TCP

Modbus TCP is Modbus over Ethernet via TCP/IP. De standaardpoort is 502. Een client (bijv. SCADA of PLC) maakt verbinding met een server/apparaat. Voor remote access en cloud-integratie kun je Modbus TCP inzetten in combinatie met netwerksegmentatie en beveiligingsmaatregelen.

Voor remote access en datalogging kun je Modbus TCP combineren met gateways en data‑loggers; let daarbij goed op IP-configuratie (vaste IP of betrouwbare DHCP-reservering) en op firewallregels.

Modbus memory model en registertypes

Modbus gebruikt vier registertypes met vaste logische adressen en functiecodes:

TypeLogisch adresbereikBeschrijvingFuncties (typisch)Toegankelijkheid
Coils0xxxxDigitale uitgangen (1 bit)01 (Read), 05/15 (Write)Lezen & Schrijven
Discrete Inputs1xxxxDigitale ingangen (1 bit)02 (Read)Alleen lezen
Input Registers3xxxxAnaloge ingangen (16-bit)04 (Read)Alleen lezen
Holding Registers4xxxxAnaloge waarden / instelparameters03 (Read), 06/16 (Write)Lezen & Schrijven

Praktische voorbeelden

In Modbus-berichten gebruik je offsets vanaf 0, niet de logische adressen. Voorbeelden:

  1. Holding Register 40001 → offset 0 bij functiecode 03.
  2. Holding Register 40010 → offset 9.
  3. Coils lezen: FC01; coils schrijven: FC05 (single) of FC15 (multiple).

Coils (0xxxx)

1 bit per adres, representeren digitale uitgangen. Voorbeeld: 00001 = lamp aan/uit. Lezen: FC01. Schrijven: FC05/FC15.

Discrete inputs (1xxxx)

1 bit per adres, alleen-lezen digitale ingangen. Lezen: FC02. Voorbeeld: 10001 = deur open/gesloten.

Input registers (3xxxx)

16-bit woorden, alleen-lezen. Gebruikt voor analoge meetwaarden (temperatuur, druk). Lezen: FC04. Voorbeeld: 30001 = temperatuur °C.

Holding registers (4xxxx)

16-bit woorden, lezen en schrijven; voor instelwaarden en procesdata. Lezen: FC03. Schrijven: FC06 (single) / FC16 (multiple). Voorbeeld: 40001 = setpoint temperatuur.

Logische adressen vs offsets

De logische adressen (zoals 40001) zijn bedoeld voor documentatie; in Modbus-berichten wordt alleen de offset verzonden. Verwarring tussen logische adressen en offsets is een veelvoorkomende foutbron — controleer altijd de apparaatdocumentatie.

Beveiliging en segmentatie

Modbus heeft geen ingebouwde security. Gebruik daarom netwerksegmentatie (VLAN’s), firewalls en VPN’s om het protocol te beschermen. Voor bredere IT/OT-issues is kennis van cybersecurity essentieel bij ontwerp en inbedrijfstelling.

Samenvatting

Modbus RTU en Modbus TCP vormen samen een robuuste en breed toepasbare standaard voor industriële communicatie. RTU is ideaal voor seriële verbindingen; TCP is geschikt voor Ethernet. Het geheugenmodel met coils en registers is vast, waarbij holding registers het meest flexibel zijn. Begrip van offsets, functiecodes (bijv. FC01, FC03, FC04) en seriële instellingen (baudrate, pariteit, stopbits) is essentieel voor een correcte implementatie.