Scenario: MODBUS for Snap4Industry Snap4City Applications

the ModBUS protocol isargely exploited in industrial plan.

More precisely, it can be integrated at level of IOT edge with special connectors and/or TCP/IP.

Seppure sia un protocollo nato ormai quattro decadi fa, è tutt’ora molto diffuso e da quando divenne uno standard de facto per la comunicazione industriale ha ricevuto numerosi aggiornamenti. Modbus è un protocollo di comunicazione industriale inizialmente pensato per PLC e poi, in pochi anni, diventato uno standard per la comunicazione fra device elettronici di vario tipo. Sebbene attualmente offra anche la possibilità di comunicazione via TCP, originariamente forniva soltanto comunicazione cablate via Ethernet, il quale permette di trasferire rapidamente una grande quantità di dati da e verso computer, e collegamenti di tipo RS485, più adatti a connessione con device dotati solo di layer di comunicazione di basso livello.

Modbus è un protocollo di comunicazione industriale inizialmente pensato per PLC e poi, in pochi anni, diventato uno standard per la comunicazione fra device elettronici di vario tipo. Sebbene attualmente offra anche la possibilità di comunicazione via TCP, originariamente forniva soltanto comunicazione cablate via Ethernet, il quale permette di trasferire rapidamente una grande quantità di dati da e verso computer, e collegamenti di tipo RS485, più adatti a connessione con device dotati solo di layer di comunicazione di basso livello.

La qualità dei dati trasmessi è verificata tramite checksum di tipo CRC e la comunicazione, come avviene tipicamente per questo tipo di protocollo, non può essere sospesa a meno di frammentazione dei dati in pacchetti più piccoli.

Modbus TCP è impiegato maggiormente nella comunicazione da PC a PC che, di default, avviene su porta 502. In questo caso non sono necessari particolari accorgimenti per la verifica dei dati trasmessi in quanto, trattandosi di una comunicazione TCP, essa è demandata a livelli differenti della pila ISO/OSI. Ancora una volta la comunicazione è di default half-duplex ma in questo caso, per ottenere una comunicazione full-duplex, è sufficiente usare due porte distinte per la trasmissione nei due sensi fra i terminali. Una soluzione analoga su RTU implicherebbe l’impiego di un secondo doppino e quindi modificare e complicare il cablaggio. Infine la versione TCP non fa distinzione fra collegamenti wireless o seriale ma richiede solamente di conoscere, oltre alla porta del ricevente, il suo indirizzo IP nella rete locale. I layer di routing dei dispositivi intermedi si occuperanno di instradare i pacchetti verso il giusto device alleggerendo quindi molto il livello di programmazione.

Modbus mette a disposizione un set predefinito di istruzioni ed il costruttore (o lo sviluppatore) decide se sfruttarne tutte o solo alcune. I comandi hanno una struttura omogenea e sono composti dalla concatenazione di: indirizzo dello slave, codice della funzione, dato ed error check. Le funzioni più comuni e abilitate sulla maggior parte dei device permettono la lettura e la scrittura di registri a 8 o 16 bit oppure di registri di I/O ad un bit detti coil.

Nelle seguenti figure possiamo vedere i nodi forniti dalla libreria di cui discuteremo le principali funzionalità.

Il nodo "modbus-read" permette di impostare una frequenza di polling con la quale vengono campionati i dati in ingresso. Si tratta di un modo molto rapido per configurare la lettura; ciononostante i nodi "getter" si rivelano essenziali per inviare dati strutturati al fine di sollecitare risposte specifiche dei device. Inoltre "getter" non ha una frequenza di polling predefinito. I nodi "modbus-response" e "modbus-response-info" sono impiegati per la lettura ed il filtraggio dei dati ricevuti dai "getter" ed i "read".

La configurazione di un terminale come device Modbus avviene con la configurazione dei nodi "modbusserver", dai quali è anche possibile impostare la porta di comunicazione. I nodi "write" eseguono le funzioni 5, 6, 15 e 16, permettendo dunque di inviare dati ad altri device. Le versioni "flex" dei nodi sono consigliate per comunicazioni che coinvolgono più di 10 terminali. Infine si sottolinea che, una voltata configurato il profilo di comunicazione da adoperare, non vi sono sostanziali differenze fra Modbus TCP e Seriale.