Cadlog Blog

News e aggiornamenti per l'industria elettronica e l'ingegneria

Introduzione ai protocolli per la IIOT (Industrial IOT)

La IOT (Internet of Things) è sempre più importante per l’industria, dove la raccolta di dati e lo scambio di informazioni tra apparati consentono di spengere l’automazione al massimo, aumentare la flessibilità produttiva e ridurre gli errori al minimo. Lo scambio di dati tra oggetti avviene attraverso dei set di regole – detti protocolli – che definiscono quali tipi di informazioni devono essere scambiati e in che modo. L’esempio oggi più noto di protocollo di comunicazione è l’HTTP (hypertext transfer protocol), utilizzato dai browser per comunicare coi server web. È infatti il prefisso che compare all’inizio degli URL dei siti web.

Nell’ambito della Industrial (I) IoT, il “linguaggio” utilizzato dipende dal contesto e dunque di protocolli se ne usano diversi. I più comuni sono MQTT e CoAP, oltre a HTTP.

Ma vediamo innanzi tutto le definizioni dei principali termini in questo ambito.

Protocolli di trasporto (TCP, UDP)

I protocolli di trasporto, come dice la parola, sono responsabili del trasporto di messaggi o informazioni da un dispositivo all’altro. Possono essere di 2 tipi:

  • protocollo connectionless (UDP), che funziona cioè senza aspettare che sia stata stabilita una connessione. Le informazioni vengono inviate comunque, anche se non c’è nessuno dall’altra parte o la trasmissione è carente. È il più economico ed è preferibile quando la velocità e l’efficienza sono più importanti dell’affidabilità;
  • protocollo connection-oriented (TCP), ossia che richiede di creare un circuito predeterminato tra sorgente e destinatari prima di iniziare lo scambio di dati vero e proprio.

Pacchetto

Il pacchetto è l’unita di base dei dati trasmessi ed è composto da 3 parti: header (intestazione), che contiene tutte le informazioni di overhead necessarie alla trasmissione; payload, che contiene i dati utili trasmessi; checksum: un codice di controllo utilizzato per controllare la corretta ricezione dei dati.

Overhead

La parte di banda di trasmissione che viene utilizzata per spedire i dati aggiuntivi necessari per i protocolli di trasmissione stessa e per il monitoraggio, la gestione e il controllo della rete stessa, sia da parte di meccanismi automatici (per esempio, protocolli di protezione di rete) che da parte di sistemi di gestione esterni, per esempio per segnalare condizioni di guasto o per consentire la configurazione della rete tramite sistemi remoti centralizzati.

MQTT (Message Queue Telemetry Transport)

L’MQTT è un protocollo di messaggistica leggero, utilizzato in ambito industriale e nelle applicazioni mobili, come ad esempio in Facebook Messenger. È ideale quando sia la banda sia l’assorbimento elettrico sono limitati, come nel caso dei piccoli sensori, applicazioni in località remote, comunicazione tra macchine. Tale protocollo è basato su un modello publish/subscribe, nel quale un client pubblica un messaggio di un certo tipo (ad esempio temperatura, umidità) verso un broker, che lo distribuisce ai destinatari interessati.

Esempio di uso del protocollo MQTT

Esempio di uso del protocollo MQTT (da www.hivemq.com)

Rispetto al modello client-server del protocollo http, questo dell’MQTT è più adatto all’ambito IIOT, poiché è multicast, è scalabile e richiede un assorbimento di energia minimo.

CoAP (Constrained Application Protocol)

Il protocollo CoAP è una sorta di versione leggera dell’http, che però lavora sull’UDP anziché sul TCP. È stato progettato per lavorare in ambienti limitati, con scarsa larghezza di banda ed energia, ma nei quali la comunicazione deve essere rapida e ininterrotta. A differenza dell’http, il CoAP può supportare comunicazioni da uno a molti (multicast) ed è più veloce di altri protocolli basati su TCM. Dunque è un’ottima scelta per la comunicazione M2M (machine-to-machine).

È molto frequente vedere:

  • il protocollo CoAP utilizzato per la comunicazione da dispositivo a dispositivo (D2D) e da dispositivo a gateway (D2G);
  • il protocollo http per la comunicazione tra gateway e cloud.

MQTT, CoAP o HTTP?

Nella scelta tra MQTT e CoAP – entrambi validi per gli ambienti limitati – bisogna considerare il protocollo di trasporto che utilizzano:

  • l’MQTT è più adatto alla comunicazione basata sugli eventi, quando i dati devono essere inviati in serie (ad esempio valori di umidità o temperatura) a intervalli regolari e su un canale affidabile;
  • il CoAP va meglio in scenari che richiedano il monitoraggio continuo di determinate condizioni. Utilizzando l’UDP, il CoAP garantisce una comunicazione più veloce e dunque è migliore per gli scambi di dati M2M, D2D e D2G. È la scelta migliore anche in applicazioni IIOT nelle quali il CoAP opera sul lato dei sensori, mentre l’http per la comunicazione tra il gateway e il cloud.

L’http è invece la scelta per la comunicazione verso gli applicativi web o in tutti i casi in cui gli altri due protocolli non sono supportati dai dispositivi.

In conclusione, le variabili che entrano in gioco nella scelta del protocollo più adatto in ambito IIOT sono tre: velocità, affidabilità e sicurezza.

Vedi altri articoli su:

CadlogIntroduzione ai protocolli per la IIOT (Industrial IOT)

Articoli correlati

Vi consigliamo la lettura dei seguenti articoli