Wat is Modbus TCP?
Modbus TCP is een industriële communicatiestandaard die gebaseerd is op het klassieke Modbus-protocol, maar werkt via Ethernet en TCP/IP in plaats van seriële communicatie (zoals RS-485).
Het protocol wordt veel gebruikt voor eenvoudige en betrouwbare communicatie tussen PLC’s, HMI’s, SCADA-systemen, Sensor, Actuator en I/O-modules.
🧠 Wat doet Modbus TCP?
Modbus TCP:
- Stuurt meet- en besturingsdata over standaard Ethernet
- Gebruikt het Modbus-protocol als applicatielaag
- Verstuurt berichten via poort 502 over TCP/IP
- Ondersteunt master-slave communicatie (één client stuurt meerdere servers aan)
🔧 Belangrijke kenmerken
Kenmerk | Beschrijving |
---|---|
Protocoltype | Open standaard, vrij te gebruiken |
Transportlaag | TCP/IP (poort 502) over Ethernet |
Structuur | Client/server (master/slave) |
Berichtformaat | Bevat Modbus PDU binnen een TCP-frame |
Schaalbaarheid | Meerdere clients en servers mogelijk |
Lees-/schrijfbewerkingen | Registers, coils, discrete inputs |
📦 Voorbeelden van toepassingen
- SCADA ↔ PLC communicatie
- PLC ↔ Remote I/O of frequentieregelaars
- Monitoring van energie- of watermeters
- Verbinding tussen HMI’s en Sensor/Actuator
- Integratie van bestaande installaties met nieuwe systemen
🔌 Modbus TCP vs. Modbus RTU
Aspect | Modbus TCP | Modbus RTU |
---|---|---|
Fysieke laag | Ethernet (RJ45, TCP/IP) | Serieel (RS-232 / RS-485) |
Snelheid | Hoog (10/100/1000 Mbit/s) | Lager (9.6–115.2 kbit/s typisch) |
Topologie | Ster of geswitcht netwerk | Busstructuur |
Compatibiliteit | Modernere netwerken en IT-integratie | Eenvoudige legacy-systemen |
Adressering | IP-adressen | Slave ID-nummers |
🏭 Voorbeelden van Modbus TCP-apparaten
- Siemens, Schneider, ABB, WAGO PLC’s
- HMI-panelen met Ethernet
- I/O-modules van Advantech, Beckhoff, Phoenix Contact
- Slimme energiemeters en flowmeters
✅ Voordelen
- Simpel en robuust protocol
- Breed ondersteund door fabrikanten
- Open standaard zonder licentiekosten
- Makkelijk te implementeren in SCADA of softwareplatforms
🔒 Let op: Beveiliging
Modbus TCP zelf biedt geen ingebouwde beveiliging. Daarom is het belangrijk om:
- Firewall te gebruiken
- Netwerken te segmenteren (bijv. via VLAN of DMZ)
- Modbus-communicatie alleen intern toe te staan
- Gebruik te maken van beveiligde varianten (zoals Modbus over TLS)
🔍 Deep dive: Hoe werkt Modbus TCP?
📤 1. Client stuurt een request
De Modbus client (master) bouwt een TCP-bericht op met daarin:
- Een Modbus Application Protocol (MBAP) header (7 bytes)
- Een PDU (Protocol Data Unit) met:
- Function code (zoals ‘read register’ = 0x03)
- Startadres (bijv. 40001)
- Aantal registers om te lezen of schrijven
Voorbeeld:
Lees 4 registers vanaf adres 40001 (function code 0x03).
Dit wordt verzonden via poort 502 over TCP/IP naar het IP-adres van het Modbus TCP-apparaat.
📥 2. Server ontvangt en verwerkt het bericht
De Modbus server (slave) ontvangt het bericht en voert het volgende uit:
- Valideert de instructie (adres, type, toegang)
- Leest of schrijft de gevraagde registers of coils
- Bouwt een response op met de gevraagde data (of foutcode)
🔁 3. Response terug naar client
De server stuurt een Modbus TCP response terug via dezelfde TCP-verbinding. Deze bevat:
- De originele MBAP-header (met transactie-ID)
- Function code (mogelijk met foutbit)
- Gelezen waarden of bevestiging van succesvolle actie
Bij fouten (bijv. ongeldig adres) wordt een foutcode teruggestuurd met het hoogste bit van de function code op 1 (bijv. 0x83 = fout bij 0x03).
🧪 Voorbeeldverloop
- Client stuurt: “Lees 2 registers vanaf 40001”
- Server antwoordt: “Register 40001 = 123, Register 40002 = 456”
- Client verwerkt deze data voor monitoring of sturing
🧠 Veelgebruikte function codes
Function code | Beschrijving |
---|---|
0x01 | Lees discrete outputs (coils) |
0x02 | Lees discrete inputs |
0x03 | Lees holding registers |
0x04 | Lees input registers |
0x05 | Schrijf één coil |
0x06 | Schrijf één register |
0x10 | Schrijf meerdere registers |
📌 Samengevat
Modbus TCP is een eenvoudig en veelgebruikt Ethernet-protocol voor communicatie tussen industriële apparaten. Het combineert de eenvoud van het Modbus-protocol met de snelheid en flexibiliteit van moderne Ethernet-netwerken.