OPC UA: il protocollo dell’Industria 4.0
OPC UA (OPC Unified Architecture, IEC 62541) è il protocollo di riferimento dell’Industria 4.0. A differenza di Modbus, che espone registri privi di contesto, OPC UA espone un modello informativo orientato agli oggetti: ogni variabile è un nodo tipizzato in uno spazio di indirizzamento gerarchico, con metadati (unità di ingegneria, intervallo, descrizione), metodi invocabili ed eventi.
I moderni controllori (Siemens S7-1500, Beckhoff CX, Rockwell ControlLogix), i robot e i sistemi SCADA di ultima generazione sono tutti dotati di un server OPC UA. Il bridge OPC UA → MQTT consente di estrarre questi dati ricchi e di integrarli nell’architettura cloud.
Architettura del bridge OPC UA → MQTT
Serveurs OPC UA Bridge Eziwan MQTT Broker / UNS
─────────────── ────────────── ─────────────────
PLC Siemens ─┐ ┌── Client OPC UA HiveMQ Cloud
Robot Beckhoff ─┤── TCP ───►│ Subscriptions MQTT AWS IoT Core
SCADA Ignition ─┤ │ MonitoredItems ──TLS► Mosquitto
MES Wonderware ─┘ │ Decode + Map Eziwan UNS
└── Sparkplug B / JSON
Il bridge mantiene una connessione OPC UA persistente con ciascun server. Crea delle sottoscrizioni OPC UA con MonitoredItems sui nodi da monitorare. Il server invia in modo proattivo i valori modificati (modalità push), il che è molto più efficiente rispetto al polling Modbus.
Mappatura dei nodi OPC UA agli argomenti MQTT
La configurazione del bridge consiste nell’associare i NodeID OPC UA agli topic MQTT. Esistono due approcci:
Mappatura manuale
OPC UA NodeID → Topic MQTT
ns=2;s=Stazione1.Pompa.Pressione → stabilimento/linea1/pompa01/pressione_bar
ns=2;s=Stazione1.Pompa.Portata → stabilimento/linea1/pompa01/portata_m3h
ns=2;s=Stazione1.Pompa.Stato → stabilimento/linea1/pompa01/stato
Mappatura automatica (OPC UA → UNS) Il bridge analizza lo spazio di indirizzamento OPC UA e genera automaticamente una gerarchia di topic MQTT corrispondente. Questo è l’approccio consigliato per le installazioni con numerosi nodi.
Spazio dei nomi unificato: OPC UA come fonte di verità
L'Unified Namespace (UNS) è l’architettura IIoT moderna raccomandata dagli esperti dell’Industria 4.0. Essa prevede l’utilizzo di un broker MQTT centrale (HiveMQ, EMQX, VerneMQ) come hub dati unico:
| Fonte | Pubblicazione su UNS |
|---|---|
| Controllori (OPC UA) | Bridge OPC UA → MQTT |
| Apparecchiature legacy (Modbus RTU) | Bridge Modbus → MQTT |
| Contatori M-Bus | Bridge M-Bus → MQTT |
| MES / ERP | API → MQTT |
| Sensori IoT | MQTT nativo |
Tutte le applicazioni (SCADA, MES, dashboard, IA) si collegano al broker MQTT in base alle proprie esigenze. Niente più integrazioni punto a punto: ogni sistema pubblica una sola volta, tutti i consumatori ricevono.
Sparkplug B: la specifica per l’UNS industriale
Sparkplug B (Eclipse Foundation, spBv1.0) standardizza l’uso di MQTT per l’IIoT:
Struttura degli argomenti:
spBv1.0/{group_id}/NBIRTH/{edge_node_id} ← Connessione nodo
spBv1.0/{group_id}/DBIRTH/{edge_node_id}/{device_id} ← Connexion device
spBv1.0/{group_id}/NDATA/{edge_node_id} ← Dati del nodo
spBv1.0/{group_id}/DDATA/{edge_node_id}/{device_id} ← Dati del dispositivo
spBv1.0/{group_id}/NDEATH/{edge_node_id} ← Disconnessione (LWT)
Vantaggi di Sparkplug B:
- Payload Protobuf (binario, da 3 a 10 volte più compatto rispetto a JSON)
- Gestione del ciclo di vita dei dispositivi (BIRTH/DEATH)
- Alias delle metriche per ridurre la larghezza di banda
- Compatibilità con HiveMQ Sparkplug Extension, Ignition Cirrus Link, AWS IoT SiteWise
Sicurezza OPC UA + MQTT: difesa a più livelli
La combinazione di OPC UA e MQTT offre due livelli di sicurezza:
Livello OPC UA (campo → bridge):
- Modalità di sicurezza:
Sign & Encrypt(AES-256) - Autenticazione: certificato x509 o nome utente/password
- Verifica dei certificati del server e del client
Livello MQTT (bridge → cloud):
- Trasporto: TLS 1.3
- Autenticazione: certificato client x509 (TLS reciproco)
- Autorizzazione: ACL per argomento sul broker
Questa architettura defense-in-depth è conforme alle raccomandazioni della norma IEC 62443 in materia di sicurezza informatica dei sistemi industriali.
Compatibilità con le principali piattaforme cloud
| Piattaforma | Protocollo | Modulo specifico |
|---|---|---|
| AWS IoT Core | MQTT TLS | AWS IoT SiteWise (OPC UA nativo) |
| Azure IoT Hub | MQTT / AMQP | Azure IoT OPC Publisher (open source) |
| HiveMQ Cloud | MQTT 5.0 + Sparkplug | Estensione Sparkplug nativa |
| Eziwan Cloud | MQTT TLS | Dashboard + avvisi integrati |
| Ignition (Inductive Automation) | MQTT Transmission | Modulo Cirrus Link Sparkplug |