Speciale IoT

Da OPC UA a MQTT — bridge industriale e Unified Namespace

Bridge da client OPC UA a publisher MQTT: Unified Namespace, Sparkplug B, HiveMQ, AWS IoT. Confronto tra OPC UA e Modbus, sicurezza, architettura IIoT moderna.

In breve
Un bridge OPC UA → MQTT si connette come client OPC UA ai vostri server (PLC, SCADA, robot) e pubblica i valori dei nodi sottoscritti in MQTT JSON o Sparkplug B verso un broker cloud. È il pilastro dell’Spazio dei nomi unificato (UNS), l’architettura di riferimento dell’Industria 4.0 per centralizzare tutti i dati di produzione.

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:

FontePubblicazione su UNS
Controllori (OPC UA)Bridge OPC UA → MQTT
Apparecchiature legacy (Modbus RTU)Bridge Modbus → MQTT
Contatori M-BusBridge M-Bus → MQTT
MES / ERPAPI → MQTT
Sensori IoTMQTT 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​

PiattaformaProtocolloModulo specifico
AWS IoT CoreMQTT TLSAWS IoT SiteWise (OPC UA nativo)
Azure IoT HubMQTT / AMQPAzure IoT OPC Publisher (open source)
HiveMQ CloudMQTT 5.0 + SparkplugEstensione Sparkplug nativa
Eziwan CloudMQTT TLSDashboard + avvisi integrati
Ignition (Inductive Automation)MQTT TransmissionModulo Cirrus Link Sparkplug

Domande frequenti

Da consultare anche