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