OPC UA: het protocol van Industrie 4.0
OPC UA (OPC Unified Architecture, IEC 62541) is het standaardprotocol voor Industrie 4.0. In tegenstelling tot Modbus, dat registers zonder context beschikbaar stelt, biedt OPC UA een objectgeoriënteerd informatiemodel: elke variabele is een getypeerd knooppunt in een hiërarchische adresruimte, met metagegevens (engineeringeenheid, bereik, beschrijving), aanroepbare methoden en gebeurtenissen.
Moderne besturingssystemen (Siemens S7-1500, Beckhoff CX, Rockwell ControlLogix), robots en recente SCADA-systemen beschikken allemaal over een OPC UA-server. Met de OPC UA → MQTT-bridge kunnen deze uitgebreide gegevens worden opgehaald en in de cloudarchitectuur worden geïntegreerd.
Architectuur van de OPC UA → MQTT-bridge
Serveurs OPC UA Bridge Eziwan MQTT Broker / UNS
─────────────── ────────────── ─────────────────
Siemens-PLC ─┐ ┌── OPC UA-client HiveMQ Cloud
Robot Beckhoff ─┤── TCP ───►│ Subscriptions MQTT AWS IoT Core
SCADA Ignition ─┤ │ MonitoredItems ──TLS► Mosquitto
MES Wonderware ─┘ │ Decode + Map Eziwan UNS
└── Sparkplug B / JSON
De bridge onderhoudt een permanente OPC UA-verbinding met elke server. Hij maakt OPC UA-abonnementen aan met MonitoredItems op de te bewaken knooppunten. De server verstuurt proactief de gewijzigde waarden (push-modus), wat veel efficiënter is dan Modbus-polling.
Toewijzing van OPC UA-knooppunten aan MQTT-topics
De configuratie van de bridge bestaat uit het koppelen van OPC UA NodeID’s aan MQTT-topics. Er bestaan twee benaderingen naast elkaar:
Handmatige toewijzing
OPC UA NodeID → Topic MQTT
ns=2;s=Station1.Pomp.Druk → fabriek/lijn1/pomp01/druk_bar
ns=2;s=Station1.Pomp.Debiet → fabriek/lijn1/pomp01/debiet_m3h
ns=2;s=Station1.Pomp.Status → fabriek/lijn1/pomp01/status
Automatische toewijzing (OPC UA → UNS) De bridge doorloopt de OPC UA-adresruimte en genereert automatisch een hiërarchie van bijbehorende MQTT-topics. Dit is de aanbevolen aanpak voor installaties met veel knooppunten.
Unified Namespace: OPC UA als bron van waarheid
De Unified Namespace (UNS) is de moderne IIoT-architectuur die door Industrie 4.0-experts wordt aanbevolen. Hierbij fungeert een centrale MQTT-broker (HiveMQ, EMQX, VerneMQ) als enige datahub:
| Bron | Publicatie in de UNS |
|---|---|
| PLC’s (OPC UA) | OPC UA-bridge → MQTT |
| Verouderde apparatuur (Modbus RTU) | Modbus-bridge → MQTT |
| M-Bus-meters | M-Bus-bridge → MQTT |
| MES / ERP | API → MQTT |
| IoT-sensoren | Native MQTT |
Alle applicaties (SCADA, MES, dashboards, AI) abonneren zich op de MQTT-broker naargelang hun behoeften. Geen point-to-point-integraties meer: elk systeem publiceert één keer, alle afnemers ontvangen de gegevens.
Sparkplug B: de specificatie voor de industriële UNS
Sparkplug B (Eclipse Foundation, spBv1.0) standaardiseert het gebruik van MQTT voor het IIoT:
Structuur van de onderwerpen:
spBv1.0/{group_id}/NBIRTH/{edge_node_id} ← Knooppuntverbinding
spBv1.0/{group_id}/DBIRTH/{edge_node_id}/{device_id} ← Connexion device
spBv1.0/{group_id}/NDATA/{edge_node_id} ← Knooppuntgegevens
spBv1.0/{group_id}/DDATA/{edge_node_id}/{device_id} ← Apparaatgegevens
spBv1.0/{group_id}/NDEATH/{edge_node_id} ← Afmelden (LWT)
Voordelen van Sparkplug B:
- Protobuf-payload (binair, 3 tot 10 keer compacter dan JSON)
- Beheer van de levenscyclus van apparaten (BIRTH/DEATH)
- Aliassen voor metrics om de bandbreedte te verminderen
- Compatibiliteit met HiveMQ Sparkplug Extension, Ignition Cirrus Link, AWS IoT SiteWise
Beveiliging van OPC UA + MQTT: meerlaagse beveiliging
De combinatie van OPC UA en MQTT biedt twee beveiligingslagen:
OPC UA-laag (veld → bridge):
- Beveiligingsmodus:
Sign & Encrypt(AES-256) - Authenticatie: x509-certificaat of gebruikersnaam/wachtwoord
- Validatie van server- en clientcertificaten
MQTT-laag (bridge → cloud):
- Transport: TLS 1.3
- Authenticatie: x509-clientcertificaat (wederzijdse TLS)
- Autorisatie: ACL per topic op de broker
Deze defense-in-depth-architectuur voldoet aan de aanbevelingen van IEC 62443 voor de cyberbeveiliging van industriële systemen.
Compatibiliteit met de belangrijkste cloudplatforms
| Platform | Protocol | Specifieke module |
|---|---|---|
| AWS IoT Core | MQTT TLS | AWS IoT SiteWise (native OPC UA) |
| Azure IoT Hub | MQTT / AMQP | Azure IoT OPC Publisher (open source) |
| HiveMQ Cloud | MQTT 5.0 + Sparkplug | Native Sparkplug-uitbreiding |
| Eziwan Cloud | MQTT TLS | Geïntegreerd dashboard + waarschuwingen |
| Ignition (Inductive Automation) | MQTT Transmission | Cirrus Link Sparkplug-module |