Download del PDF dell’intera serie di articoli sul Modbus
Il Protocollo Modbus è ancora oggi uno dei protocolli di comunicazione più diffusi nel settore dell’automazione industriale nonostante le sue origini risalgano al 1979. La sua solida e duratura presenza nella vasta panoramica dei protocolli industriali è dovuta al fatto che il Modbus è un protocollo semplice e diretto. Inoltre non è soggetto royalty ed è flessibile per cui può essere liberamente implementato ed adattato alle più svariate applicazioni.
Le risorse hardware e software richieste dal protocollo Modbus sono piuttosto esigue e quindi esso è utilizzabile anche in sistemi basati su piccoli ed economici microprocessori. La semplice ed essenziale struttura dei dati trasmessi permette una comunicazione efficace con un buon rapporto tra la parte utile dell’informazione ed il numero totale di bytes trasmessi. Il protocollo si presta anche ad implementazioni parziali dei comandi, limitate alle specifiche esigenze, nonché all’espansione con l’aggiunta di comandi custom da parte del produttore del dispositivo.
Molto spesso i produttori di dispositivi per l’automazione “cadono” nella tentazione di sviluppare un protocollo di comunicazione completamente proprietario pensando di fare la cosa più semplice ed efficace. Tuttavia questi protocolli sono frequentemente delle “brutte copie” di un protocollo già semplice e diretto come il Modbus ma non sono però compatibili ne con questo ne con altri protocolli standard. Ciò può costituire un vantaggio se si intende vincolare i clienti al proprio protocollo ma esclude la interoperabilità con tanti altri dispositivi commerciali e la possibilità che il prodotto sia esso stesso più commerciabile.
Il protocollo Modbus è basato su bus di campo e questo significa che è adatto allo scambio di informazioni tra apparecchiature fisicamente distinte e posizionabili anche a notevoli distanze tra loro. La realizzazione di un macchina automatica o di un impianto mediante un insieme di dispositivi tra loro interconnessi ha molteplici vantaggi come:
• Possibilità di realizzare l’impianto di automazione utilizzando dispositivi commerciali, realizzati da diversi produttori e facilmente sostituibili tra loro.
• Distribuzione dei vari dispositivi in posizioni strategiche per l’impianto, anche remote, con notevole riduzione e risparmio nei cablaggi degli I/O.
• Frazionamento dell’impianto con conseguente semplificazione dello sviluppo progettuale e delle operazioni di manutenzione e riparazione.
I dispositivi sono connessi tra loro mediante cavi dotati di pochi poli conduttori per formare una rete distribuita anche su elevate distanze. Il protocollo Modbus prevede diverse tipologie di connessione fisica tra i dispositivi. In particolare i mezzi di connessione più diffusi sono:
• Rete RS485 – Protocollo Modbus seriale
• Rete Ethernet – Protocollo Modbus TCP/IP
Il tipo di connessione adottata definisce quello che normalmente si chiama “Physical layer” del protocollo ossia l’hardware sul quale avviene lo scambio delle informazioni. In questa serie di articoli verrà trattato solo il protocollo Modbus su rete seriale RS485. Una seriale di questo tipo necessita di cavi con solo due poli per far transitare dati da un qualsiasi dispositivo all’altro.
Il successivo livello del protocollo, il “Data Link layer”, è invece di tipo software e comprende tutte le specifiche relative allo scambio dei frames di dati (sequenze di bytes) tra un dispositivo e l’altro. Questa parte prescinde dal contenuto informativo dei bytes e si occupa esclusivamente del loro invio sul bus di campo, del controllo delle temporizzazioni e degli errori mediante checksum.
Il protocollo Modbus è di tipo Master/Slave e quindi nella rete è presente sempre e solo un dispositivo Master che gestisce la comunicazione nei confronti di uno o più dispositivi Slave.
Ogni scambio di informazioni è originato dal Master il quale invia un frame di bytes sul bus di campo contente una particolare richiesta, normalmente un comando di lettura o di scrittura delle informazioni contenute in uno degli Slave. Tutti gli Slave sono normalmente in ricezione ed ascoltano le richieste del Master. Solo lo specifico Slave interrogato cattura le informazioni inviate dal Master, provvede all’esecuzione del comando e risponde al Master inviando a sua volta le proprie informazioni sulla rete.
Le modalità, secondo le quali le possibili richieste del Master e le relative risposte degli Slave sono codificate all’interno dei frames di comunicazione, sono definite dal successivo livello del protocollo, detto “Application protocol”, anch’esso di tipo software. E’ con questo livello finale del protocollo che interagisce l’applicazione specifica del dispositivo, nel caso del Master solitamente il programma di automazione del PLC, nel caso degli Slave il firmware di gestione degli specifici I/O del dispositivo. Questo livello costituisce l’interfaccia del protocollo con tutta la parte restante del software del dispositivo.
La descrizione del protocollo frazionata in successivi livelli di implementazione è definita dal modello ISO/OSI frequentemente utilizzato per rappresentare i protocolli di comunicazione:
Si noti che, nel caso del protocollo Modbus seriale, i livelli da 3 a 6 non sono utilizzati mentre questi invece fanno parte di una comunicazione strutturata su rete Ethernet.
Negli articoli successivi della serie “Modbus su RS485” saranno analizzati con maggior dettaglio i tre livelli utilizzati dal protocollo seriale facendo riferimento alla documentazione ufficiale del Modbus. Inoltre, in un articolo finale saranno fornite informazioni relative alla specifica implementazione del protocollo nei moduli Slave Overdigit. Questo articolo costituisce un esempio concreto di implementazione della comunicazione Modbus su RS485 e di come il protocollo possa essere ampliato per incrementarne le caratteristiche di base.