MQTT, RS485, Modbus: quale protocollo scegliere per i vostri sensori sul campo?
Collegare i sensori industriali al cloud significa spesso far dialogare due mondi: l’OT, con i suoi bus seriali robusti, i suoi controllori logici programmabili e le sue apparecchiature esistenti; l’IT, con le sue reti IP, i suoi broker, i suoi database in tempo reale e i suoi dashboard cloud.
L'approccio corretto non consiste necessariamente nel sostituire l'infrastruttura sul campo. In molti progetti IIoT, la soluzione più efficace è quella di mantenere RS485/Modbus sul campo e utilizzare MQTT sul cloud, con un gateway in grado di tradurre, filtrare e pubblicare i dati in modo corretto.
RS485, Modbus, MQTT: tre concetti da non confondere
Prima di scegliere un protocollo, è necessario distinguere tre livelli che spesso vengono confusi:
| Termine | Funzione | Esempio d'uso |
|---|---|---|
| RS485 | Livello fisico seriale | Collegare più dispositivi su un bus a due fili |
| Modbus RTU | Protocollo applicativo su collegamento seriale | Leggere i registri di un contatore o di un sensore |
| MQTT | Protocollo publish/subscribe su IP | Pubblicare le misurazioni su un broker cloud |
Da ricordare RS485 trasporta il segnale, Modbus RTU struttura gli scambi con il campo, MQTT invia i dati ai sistemi IT o al cloud.
RS485 / Modbus: lo standard OT per le apparecchiature industriali
RS485: un collegamento seriale robusto per l'ambiente di campo
Il RS485 è un collegamento seriale differenziale utilizzato da tempo nel settore industriale. Continua ad essere molto diffuso perché è robusto, economico e adatto ad ambienti in cui le apparecchiature sono distribuite all’interno di un armadio, di un’officina o di un sito remoto.
Si usa spesso per collegare:
- controllori automatici industriali;
- contatori di energia;
- inverter;
- convertitori di frequenza;
- sensori di temperatura, pressione, portata o umidità;
- analizzatori di aria, acqua o energia.
La distanza massima teorica di un bus RS485 può raggiungere circa 1.200 metri in condizioni ottimali, ma dipende fortemente dalla velocità di trasmissione, dalla qualità del cavo, dalla topologia, dalla terminazione e dal livello di rumore elettromagnetico.
Modbus RTU: lettura e scrittura dei registri
Sulla RS485, il protocollo più diffuso è Modbus RTU. Esso definisce un metodo standardizzato per interrogare i dispositivi slave da un master: indirizzo slave, funzione di lettura o scrittura, indirizzo del registro, valore, controllo degli errori.
Vantaggi e limiti di Modbus RTU
| Punto | Lettura sul terreno |
|---|---|
| Robustezza | Adatto ad ambienti industriali e a lunghe distanze controllate |
| Interoperabilità | Molto diffuso su sensori, contatori, variatori e controllori logici |
| Semplicità | Lettura chiara dei registri, facile da diagnosticare con gli strumenti giusti |
| Limite principale | Non nativo IP: è necessario un gateway per integrarlo nel cloud |
| Punto di attenzione | Una terminazione errata, un cablaggio a stella o parametri seriali incoerenti possono compromettere gravemente la comunicazione |
MQTT: il protocollo ideale per la pubblicazione nel cloud
MQTT è un protocollo di tipo "publish/subscribe" progettato per il trasporto di messaggi leggeri su TCP/IP. È ampiamente utilizzato nelle architetture IoT e IIoT, poiché separa i produttori di dati dai consumatori.
Il principio è semplice:
- un client MQTT pubblica i messaggi;
- i messaggi vengono inviati su topics;
- un broker MQTT riceve, distribuisce e garantisce la sicurezza degli scambi;
- le applicazioni iscritte utilizzano i dati: monitoraggio, database di serie temporali, avvisi, data lake, strumenti aziendali.
Perché MQTT è un'ottima integrazione per Modbus
Modbus è molto efficace per interrogare le apparecchiature sul campo. MQTT è più adatto per pubblicare dati verso applicazioni remote.
| Esigenza | Protocollo più adatto |
|---|---|
| Leggere i registri di un sensore RS485 | Modbus RTU |
| Interrogare un PLC su Ethernet | Modbus TCP |
| Inviare i dati di misura al cloud | MQTT |
| Separare la raccolta dati sul campo dall’elaborazione IT | MQTT |
| Mantenere le apparecchiature industriali esistenti | RS485 / Modbus |
MQTT non è quindi un sostituto diretto dell'RS485. Funge piuttosto da livello di trasporto applicativo verso l'IT, una volta che i dati sul campo sono stati raccolti, normalizzati e contestualizzati.
Il ruolo del gateway Eziwan: fare da ponte tra OT e cloud
Il gateway Eziwan consente di collegare le apparecchiature sul campo e di trasmettere i relativi dati a servizi remoti. In un’architettura tipica, svolge tre funzioni:
- Raccolta OT: interrogazione di dispositivi Modbus RTU su RS485 o Modbus TCP su rete locale.
- Normalizzazione: conversione dei registri in valori utilizzabili con tag, unità di misura, data e ora e qualità.
- Pubblicazione IT: invio dei dati a un broker MQTT, a una piattaforma cloud o a un sistema di supervisione.
Configurazione Modbus su MQTT: i parametri da conoscere
1. Definizione del polling Modbus
Il primo passo consiste nel descrivere le apparecchiature da interrogare:
- indirizzo Modbus di ciascun slave;
- tipo di registro: registro di memoria, registro di ingresso, bobina, ingresso discreto;
- indirizzo del registro;
- formato dei dati: intero a 16 bit, intero a 32 bit, float a 32 bit, booleano;
- ordine delle parole e degli byte, se necessario;
- unità fisica;
- intervallo di lettura;
- nome del tag pubblicato sul lato MQTT.
Nota di attenzione Due dispositivi possono rappresentare la stessa misura utilizzando formati diversi. È quindi necessario verificare sempre la documentazione del produttore: indirizzo esatto, base di indicizzazione, tipo di registro, fattore di scala ed endianness.
2. Esempio di configurazione JSON
{
"modbus": {
"baud_rate": 9600,
"parity": "none",
"stop_bits": 1,
"slaves": [
{
"slave_id": 1,
"registers": [
{
"address": "0x0001",
"type": "holding",
"format": "float32",
"tag": "temperature",
"unit": "°C"
},
{
"address": "0x0003",
"type": "holding",
"format": "float32",
"tag": "humidity",
"unit": "%"
}
]
},
{
"slave_id": 2,
"registers": [
{
"address": "0x0010",
"type": "input",
"format": "int16",
"tag": "pressure",
"unit": "mbar"
}
]
}
]
},
"mqtt": {
"broker": "mqtt.example.com",
"port": 8883,
"tls": true,
"base_topic": "site/{site_id}/gateway/{device_id}/sensors"
}
}
3. Pubblicare dati strutturati
Una volta letto il valore, il gateway può pubblicare un messaggio MQTT strutturato:
Argomento: sito/parigi/gateway/eziwan-01/sensori/temperatura
Payload: {"value":23.4,"unit":"°C","timestamp":"2025-02-20T14:32:01Z","quality":"good"}
Un payload in chiaro facilita poi l'integrazione con:
- un database di serie temporali;
- un dashboard Grafana;
- un flusso Node-RED;
- un sistema SCADA cloud;
- un'applicazione aziendale;
- una piattaforma di monitoraggio centralizzata.
Modbus RTU vs Modbus TCP: qual è la differenza?
Modbus è presente principalmente in due forme nei progetti industriali: Modbus RTU e Modbus TCP.
| Criterio | Modbus RTU | Modbus TCP |
|---|---|---|
| Supporto | RS485 / RS232 | Ethernet o rete IP |
| Modalità di indirizzamento | Indirizzo slave | Indirizzo IP + porta |
| Frame | Compatto, con CRC | Incapsulato in TCP |
| Utilizzo tipico | Sensori, contatori, apparecchiature da campo | PLC, azionamenti, apparecchiature Ethernet |
| Diagnostica | Analizzatore seriale, tester Modbus RTU | Ping, scansione di rete, client Modbus TCP |
| Punti di attenzione | Cablaggio, terminazione, velocità, parità | Routing, firewall, VLAN, latenza di rete |
In un'architettura Eziwan, i due approcci possono coesistere: il bus RS485 per le apparecchiature di campo esistenti e la rete IP locale per le apparecchiature Ethernet.
Esempio di architettura: stabilimento con attrezzature miste
Un sito industriale può combinare diverse generazioni di impianti:
- un contatore di energia con protocollo Modbus RTU;
- un PLC collegato tramite bus seriale;
- un variatore accessibile tramite Modbus TCP;
- un sistema di supervisione cloud che acquisisce i dati tramite MQTT.
Questa architettura evita di sostituire le apparecchiature già in funzione. Il gateway diventa il punto di raccolta, conversione e pubblicazione.
Come scegliere il protocollo giusto in base al proprio contesto
| Situazione sul campo | Scelta consigliata | Perché |
|---|---|---|
| Apparecchiature esistenti con porta RS485 | Modbus RTU | Compatibile con numerosi sensori, contatori e controllori |
| Apparecchiature industriali con porta Ethernet | Modbus TCP | Più semplice da integrare in una rete IP locale |
| Nuovi sensori connessi | MQTT nativo, se disponibile | Pubblicazione diretta su un broker o una piattaforma cloud |
| Sistema SCADA esistente da mantenere | Accesso remoto sicuro o VPN | Continuità con l’architettura già in atto |
| Dati verso Grafana, InfluxDB o Node-RED | MQTT | Netta separazione tra raccolta e analisi |
| Sito isolato o mobile | Gateway con connettività cellulare | Raccolta dati sul campo senza dipendere da una rete cablata locale |
Sicurezza: aspetti fondamentali per un gateway di campo
Il collegamento dell'OT al cloud richiede un approccio prudente. L'obiettivo non è solo quello di trasmettere dati, ma di farlo con un livello di controllo adeguato al contesto industriale.
Buone pratiche raccomandate
- Segmentare le reti IT e OT per evitare accessi troppo ampi dal cloud verso il campo.
- Limitare i flussi in uscita ai servizi necessari: broker MQTT, monitoraggio, aggiornamenti o amministrazione.
- Applicare il principio del privilegio minimo: un dispositivo o un utente deve accedere solo alle risorse necessarie.
- Registrare le connessioni e gli eventi per facilitare l’audit e la diagnostica.
- Prevedere la revoca degli accessi in caso di cambio di fornitore, smarrimento di apparecchiature o incidenti.
- Crittografare le comunicazioni MQTT quando i dati escono dalla rete locale.
- Monitorare lo stato della connettività: latenza, riconnessioni, perdite di segnale, code locali.
Da non trascurare Una connessione 4G o LTE può risultare intermittente a seconda della copertura, dell’antenna, dell’ambiente radio e del carico di rete. È quindi necessario prevedere una strategia di riconnessione, di buffer locale e di marcatura temporale dei dati quando la continuità della misurazione è importante.
Errori comuni durante un progetto Modbus-MQTT
Confondere l'indirizzo di registro con l'indirizzo documentale
Alcuni produttori documentano i registri in base 1, altri in base 0. Una misura prevista su 40001 può quindi corrispondere a un indirizzo effettivo diverso a seconda dello strumento utilizzato.
Ignorare l'ordine delle parole
I valori a 32 bit, in particolare quelli in virgola mobile, possono essere codificati con diversi ordini delle parole. Una configurazione errata può generare valori incoerenti senza che la comunicazione Modbus risulti errata.
Andare al poller troppo spesso
Un bus RS485 condiviso non deve essere interrogato come un'API HTTP. Un polling troppo aggressivo può saturare il bus, aumentare gli errori CRC o oscurare i dispositivi più lenti.
Pubblicare argomenti MQTT troppo generici
Un argomento come data/value1 diventa presto inutilizzabile. È meglio strutturare gli argomenti indicando il sito, il gateway, l'apparecchiatura e il tag.
site/{site_id}/gateway/{gateway_id}/equipment/{asset_id}/metric/{tag}
Trascurare la qualità dei dati
Un valore privo di indicatori di qualità può essere interpretato in modo errato. L'aggiunta di un campo quality, di un timestamp ed eventualmente di un codice di errore facilita l'elaborazione da parte del sistema di supervisione.
Architettura standard consigliata
| Livello | Ruolo | Esempio |
|---|---|---|
| Campo | Misurazione e automazione | Sensori, contatori, PLC, variatori |
| Raccolta edge | Lettura Modbus, filtraggio, marcatura temporale | Gateway Eziwan |
| Trasporto | Pubblicazione MQTT sicura | Broker MQTT |
| Elaborazione | Archiviazione storica, avvisi, trasformazione | InfluxDB, Node-RED, piattaforma cloud |
| Visualizzazione | Supervisione e decisione | Grafana, SCADA cloud, applicazione aziendale |
Questa separazione rende l'architettura più chiara: l'infrastruttura rimane stabile, il gateway traduce i dati e il cloud li elabora.
Domande frequenti — MQTT, RS485 e Modbus
È possibile far coesistere Modbus RTU e MQTT sullo stesso gateway?
Sì. È addirittura uno degli scenari classici di un gateway IIoT: raccogliere i dati dal campo in Modbus RTU tramite RS485, per poi pubblicarli in MQTT verso un broker o una piattaforma cloud. I due protocolli non hanno lo stesso ruolo: Modbus serve a interrogare le apparecchiature, mentre MQTT serve a trasmettere i dati alle applicazioni.
Qual è la differenza tra RS485 e Modbus RTU?
RS485 è il livello fisico: cablaggio, segnali elettrici, topologia del bus. Modbus RTU è il protocollo applicativo: struttura dei frame, indirizzamento degli slave, funzioni di lettura o scrittura, controllo degli errori. È possibile utilizzare RS485 con altri protocolli, ma la combinazione RS485 + Modbus RTU rimane molto diffusa in ambito industriale.
Quanti dispositivi è possibile collegare a un bus RS485?
La risposta dipende dai ricetrasmettitori, dal carico elettrico del bus, dalla lunghezza del cavo, dalla velocità di trasmissione e dalla qualità dell’installazione. Il limite spesso citato per un segmento RS485 classico è di 32 carichi unitari, ma le moderne apparecchiature a basso carico e i ripetitori possono consentire architetture più estese. In pratica, è necessario verificare la topologia in base alle specifiche delle apparecchiature e ai vincoli del sito.
MQTT è adatto se la connettività 4G è intermittente?
MQTT può essere adattato alle connessioni intermittenti se l’architettura è progettata correttamente: qualità del servizio adeguata, riconnnessione corretta, marcatura temporale locale, coda sul lato gateway e monitoraggio dello stato della rete. Non bisogna tuttavia confondere la robustezza del protocollo con la disponibilità del segnale radio: la qualità della copertura mobile rimane un fattore determinante.
È meglio scegliere MQTT o OPC UA?
I due protocolli non rispondono esattamente alla stessa esigenza. MQTT è leggero e molto efficiente per la pubblicazione di messaggi verso un broker. OPC UA offre maggiori funzionalità per la modellazione delle apparecchiature, l’esposizione di una semantica industriale e l’integrazione di alcuni sistemi di automazione. In molti progetti, MQTT viene scelto per la pubblicazione nel cloud, mentre OPC UA rimane la scelta più indicata per la supervisione industriale o l’integrazione delle macchine.
Come garantire la sicurezza di una pubblicazione MQTT industriale?
È necessario, come minimo, crittografare le connessioni quando i dati escono dalla rete locale, autenticare i client, limitare i diritti per argomento, registrare le connessioni e prevedere la revoca degli accessi. La sicurezza deve inoltre estendersi al gateway stesso: amministrazione protetta, aggiornamenti controllati, segmentazione della rete e monitoraggio degli eventi.
Approfondimenti con Eziwan
Avete dispositivi RS485, Modbus RTU, Modbus TCP o MQTT da integrare in un'architettura cloud? L'approccio corretto consiste nel mappare i protocolli esistenti, identificare i vincoli sul campo e quindi definire un gateway adeguato tra OT e IT.
- Scopri il gateway Eziwan
- Esplora la piattaforma cloud Eziwan
- Confronta le opzioni di connettività
- Consulta la documentazione
- Parla con un esperto
Risorse aggiuntive
- Da Modbus RTU a MQTT — comprendere il bridge tra dispositivi RS485 Modbus RTU e broker MQTT
- RS485 Modbus 4G — collegare un bus RS485 Modbus tramite rete mobile
- Da OPC UA a MQTT — pubblicare dati OPC UA su un broker MQTT
- Protocolli industriali — Confronto tra Modbus, MQTT, OPC UA e altri protocolli industriali
- Gateway IIoT — Scegliere un gateway adatto al proprio impianto sul campo