Protocolli di comunicazione supportati
Panoramica dei protocolli di comunicazione industriali e IoT supportati dalla piattaforma — Modbus, OPC UA, MQTT e DLMS/COSEM.
Modbus (RTU / TCP)
Scopo e descrizione
Protocollo industriale semplice e ampiamente diffuso per lo scambio di dati di processo tra controllori, sensori e attuatori. Sviluppato nel 1979 da Modicon (oggi Schneider Electric), è diventato lo standard de facto dell’automazione industriale. Viene utilizzato nei sistemi SCADA, nei PLC, negli azionamenti a frequenza variabile, negli strumenti di misura e nei sensori. Grazie alla semplicità di implementazione e ai requisiti minimi di risorse di calcolo, il protocollo è ideale per i sistemi embedded e i dispositivi con memoria limitata.
Architettura e modello dei dati
Il modello dei dati basato su registri si fonda su quattro tipi di spazio di indirizzamento:
- Coils (0x) — uscite discrete (lettura/scrittura di valori a bit)
- Discrete Inputs (1x) — ingressi discreti (sola lettura)
- Input Registers (3x) — registri di ingresso a 16 bit (sola lettura)
- Holding Registers (4x) — registri di mantenimento a 16 bit (lettura/scrittura)
Architettura client-server (master-slave): il dispositivo master avvia le richieste, gli slave rispondono. Ogni dispositivo slave ha un indirizzo univoco (1–247). Il protocollo non contiene alcuna semantica dei dati integrata: l’interpretazione dei valori dei registri è definita a livello applicativo e nella documentazione del dispositivo. Supporta operazioni di lettura e scrittura per singoli e per più registri.
Trasporto
Modbus RTU:
- Linee seriali RS-485 (fino a 32 dispositivi per bus, distanza fino a 1200 m) o RS-232 (punto-punto)
- Rappresentazione binaria dei dati
- Verifica dell’integrità tramite CRC-16
- Velocità di trasmissione: da 1200 a 115200 baud
- Trasmissione half-duplex
Modbus TCP:
- Incapsulamento dei frame Modbus in TCP/IP (porta 502)
- Intestazione MBAP (Modbus Application Protocol) per l’identificazione delle transazioni
- Trasmissione full-duplex
- Possibilità di operare contemporaneamente con più dispositivi
- Nessuna checksum richiesta (l’affidabilità è garantita da TCP)
Funzionalità principali
- Lettura e scrittura di segnali discreti (Coils) e registri
- Supporto dei Function Code standard (FC 01–06, 15–16, 23)
- Funzioni diagnostiche (FC 08)
- Lettura dei dati di identificazione del dispositivo (FC 17, 43)
- Requisiti minimi di risorse di calcolo per i dispositivi
- Implementazione e debug semplici
- Basso costo di implementazione
- Gestione delle eccezioni e codici di errore
- Supporto dei messaggi broadcast (indirizzo 0) in RTU
- Scalabilità fino a 247 dispositivi su una linea (RTU) o illimitata tramite TCP
OPC UA
Scopo e descrizione
Standard universale e multipiattaforma (OPC Unified Architecture, IEC 62541) per lo scambio sicuro e strutturato di dati industriali, metadati e informazioni semantiche. Sviluppato dalla OPC Foundation come successore delle specifiche classiche OPC DA/AE/HDA, elimina la dipendenza dalle tecnologie Microsoft DCOM. Consente l’integrazione verticale e orizzontale nei sistemi industriali — dal livello di campo ai sistemi informativi aziendali (ERP, MES). Supporta i concetti di Industrie 4.0 e di gemello digitale grazie alle ampie capacità di modellazione delle informazioni.
Architettura e modello dei dati
Modello dei dati orientato agli oggetti che rappresenta le informazioni come uno spazio di nodi indirizzabile (Address Space):
- Nodi di vario tipo: Variable, Object, Method, View, DataType, ReferenceType
- Attributi dei nodi: Value, DataType, AccessLevel, Timestamp, Quality, DisplayName, ecc.
- Riferimenti tra i nodi: gerarchici, associativi, basati su componenti
- Tipi di dati: primitivi, strutture, array, enumerazioni
Servizi supportati:
- Subscription — monitoraggio delle variazioni dei dati con intervalli di campionamento e filtri configurabili
- Events & Alarms — notifiche asincrone di eventi, allarmi e stati
- Historical Access — accesso a dati ed eventi archiviati
- Methods — invocazione remota di procedure sui dispositivi
Modelli informativi specifici di settore (Companion Specifications): meccanica, energia, oil & gas, farmaceutica.
Trasporto
UA Binary Protocol su TCP/IP:
- Protocollo binario con serializzazione ottimizzata (porta 4840)
- Prestazioni elevate e overhead minimo
HTTPS / SOAP:
- Profilo Web Services per l’integrazione con i sistemi aziendali
- Codifica JSON per le applicazioni cloud
OPC UA PubSub:
- Modello publisher-subscriber per i sistemi distribuiti
- Trasporto: UDP Multicast, MQTT, AMQP, Ethernet TSN
- Trasmissione deterministica per le applicazioni time-critical
Sicurezza:
- Modalità di sicurezza multilivello (None, Sign, SignAndEncrypt)
- Certificati X.509 per l’autenticazione
- Crittografia AES, RSA
Funzionalità principali
- Modellazione delle informazioni: trasmissione non solo di valori “grezzi” ma di dati complessi e strutturati con semantica, tipizzazione e metadati
- Sottoscrizioni con intervalli di polling configurabili, filtri deadband e buffering
- Eventi e sistema di allarmi con filtraggio condizionale
- Invocazione di metodi per il controllo dei dispositivi e l’esecuzione di operazioni
- Accesso ai dati storici con aggregazione
- Service discovery nelle reti locali
- Sicurezza integrata: crittografia del canale, autenticazione basata su certificati o nome utente/password, controllo degli accessi a livello di nodo
- Ridondanza del server e tolleranza ai guasti
- Multipiattaforma: Windows, Linux, VxWorks, QNX e altri sistemi operativi
- Scalabilità: dai microcontrollori ai sistemi distribuiti
MQTT
Scopo e descrizione
Protocollo di messaggistica leggero (Message Queuing Telemetry Transport) per telemetria, monitoraggio remoto e gestione di dispositivi IoT, ottimizzato per reti inaffidabili, larghezza di banda limitata e latenze elevate. Sviluppato nel 1999 da IBM per il monitoraggio di oleodotti, è stato standardizzato da OASIS e ISO/IEC (20922:2016). Ampiamente utilizzato nell’IoT industriale, nelle smart home, nella telematica veicolare e nelle applicazioni mobili. Il protocollo è incentrato sulla riduzione al minimo del traffico di rete e del consumo energetico dei dispositivi.
Architettura e modello dei dati
Modello Publish/Subscribe asincrono con un broker centralizzato:
- Publisher — dispositivo o applicazione che pubblica messaggi sui topic
- Subscriber — dispositivo o applicazione sottoscritto per ricevere i messaggi dai topic
- Broker — server centrale di instradamento dei messaggi (Mosquitto, HiveMQ, EMQ X, ecc.)
Topic — struttura di percorso gerarchica per la categorizzazione dei messaggi:
- Separatori di livello:
/(ad esempio,factory/building1/temperature) - Caratteri jolly:
+(singolo livello),#(più livelli) - Esempio di sottoscrizione:
sensors/+/temperatureoppurefactory/#
Formato dei dati definito dall’applicazione: JSON, Protocol Buffers, XML, dati binari, testo.
Retained messages: il broker conserva l’ultimo messaggio di un topic e lo recapita ai nuovi subscriber.
Sessioni persistenti: il broker mantiene le sottoscrizioni del client in caso di disconnessione.
Trasporto
- Livello di trasporto: TCP/IP (porta 1883 per le connessioni non protette)
- TLS/SSL (porta 8883) per crittografia e autenticazione
- WebSocket per l’integrazione con browser e applicazioni web
- Versioni del protocollo: MQTT 3.1.1 (la più diffusa), MQTT 5.0 (funzionalità estese)
- Dimensione dell’intestazione: minimo 2 byte (fixed header)
- Meccanismo keep-alive: PINGREQ/PINGRESP periodici per il monitoraggio della connessione
- Il funzionamento basato su broker garantisce il disaccoppiamento tra publisher e subscriber, lo scaling orizzontale e la gestione centralizzata
Funzionalità principali
- QoS (Quality of Service) con tre livelli di garanzia di consegna:
- QoS 0: At most once (senza conferma)
- QoS 1: At least once (con conferma)
- QoS 2: Exactly once (handshake a quattro fasi)
- Overhead di rete minimo: fixed header di 2 byte, codifica binaria efficiente
- LWT (Last Will and Testament): meccanismo di notifica automatica della disconnessione imprevista di un dispositivo — il broker pubblica un messaggio predefinito se il client termina la sessione in modo anomalo
- Clean Session / Persistent Session: possibilità di ripristinare sottoscrizioni e messaggi dopo la riconnessione
- Retained Messages: disponibilità dell’ultimo valore per i nuovi subscriber
- Basso consumo energetico: ideale per i dispositivi alimentati a batteria
- Scalabilità: supporto di milioni di connessioni simultanee su cluster di broker
- Sottoscrizioni con caratteri jolly per un filtraggio flessibile dei topic
DLMS / COSEM (IEC 62056)
Scopo e descrizione
Standard internazionale per lo scambio di dati con i contatori di utenze: elettricità, gas, acqua e calore (Device Language Message Specification / Companion Specification for Energy Metering). Sviluppato dalla DLMS User Association insieme all’IEC per garantire l’interoperabilità dei contatori intelligenti nei sistemi automatizzati di contabilizzazione e fatturazione (AMBS). Consente la lettura remota dei contatori, il monitoraggio della qualità dell’energia, la gestione delle tariffe e il rilevamento degli accessi non autorizzati. Ampiamente utilizzato dai gestori delle reti elettriche, dai fornitori di servizi pubblici e dagli integratori di sistemi Smart Grid.
Architettura e modello dei dati
Modello a oggetti COSEM (Companion Specification for Energy Metering):
- I dati del contatore sono rappresentati come oggetti logici (oggetti COSEM) con classi di interfaccia
- Codici OBIS (Object Identification System) — identificatore a sei byte per l’indirizzamento universale dei parametri:
A-B:C.D.E*F- A — tipo di energia (1=elettricità, 6=calore, 7=gas, 8=acqua)
- B — canale di misura
- C — grandezza fisica (ad esempio, 1=energia attiva)
- D — tipo di misura (8=tempo di integrazione)
- E — fascia tariffaria
- F — profondità storica
Protocollo DLMS:
- Livello applicativo secondo il modello OSI
- Associazioni con diversi diritti di accesso: Public, Reader, Manager
- Autenticazione: Low Level Security (LLS), High Level Security (HLS) con challenge-response
- Crittografia: supporto della DLMS Security Suite con algoritmi AES-GCM-128
- Load Profiles: oggetti buffer per la memorizzazione di serie temporali
- Sistema di scripting: esecuzione di sequenze di azioni sul contatore
Trasporto
Livello fisico e livello di collegamento dati:
- Porta ottica (IEC 62056-21, flag) — connessione diretta tramite testina a infrarossi per la lettura locale
- RS-485 / RS-232 con protocollo HDLC (High-Level Data Link Control) per reti multi-drop
- TCP/IP (porta 4059) — DLMS su TCP o incapsulamento IP per l’accesso remoto
- GSM/GPRS/LTE — trasmissione dati tramite reti mobili (protocolli wrapper)
- PLC (Power Line Communication) — trasmissione sulle linee elettriche (PRIME, G3-PLC)
- M-Bus — per l’integrazione con i sistemi di contabilizzazione di acqua e calore
Profili di trasmissione a seconda dell’implementazione del contatore:
- IEC 62056-46: COSEM su HDLC
- IEC 62056-47: trasporto COSEM su TCP-UDP/IP
Funzionalità principali
- Lettura del contatore — valori correnti di consumo energetico, potenza, tensione, corrente, fattore di potenza
- Load Profiles — dati dettagliati con marca temporale (intervalli di 15 min, orari, giornalieri)
- Registri eventi — registrazione di manomissioni del coperchio, interruzioni di alimentazione, sovratensioni, modifiche dei parametri
- Autenticazione e autorizzazione multilivello: controllo degli accessi basato sui ruoli (accesso pubblico, lettura, configurazione)
- Gestione delle tariffe — modifica remota di programmi tariffari e tariffe
- Sincronizzazione oraria per l’accuratezza delle marche temporali
- Controllo dei relè (connessione/disconnessione del carico)
- Monitoraggio della qualità dell’energia (cali di tensione, sovratensioni, armoniche)
- Supporto delle operazioni di gruppo su più contatori
- Protezione crittografica dei dati e integrità dei messaggi
Argomenti correlati
Questa pagina è stata utile?
Grazie per il tuo feedback!