Protocollo Modbus

Cosa è il protocollo Modbus

Modbus fornisce un linguaggio comune affinché i dispositivi e le apparecchiature comunichino tra loro. Ad esempio, Modbus abilita i dispositivi su un sistema che misura temperatura e umidità collegati sulla stessa rete, comunicare i dati ad un computer di supervisione o PLC.

MODBUS: come lavora

Modicon ha pubblicato l’interfaccia di comunicazione Modbus per una rete Multidrop basata su un’architettura master/slave. Viene raggiunta la comunicazione tra i nodi Modbus con invio di richiesta e lettura di messaggi di tipo risposta.

MODBUS: come lavora

Modbus è uno standard di tipo aperto che descrive la finestra di dialogo di comunicazione dei messaggi. Modbus comunica su diversi tipi di supporti fisici come RS-232 seriale, RS-485, RS-422 e su Ethernet. Il supporto fisico verrà selezionato al momento dell’acquisto dei dispositivi. 
MODBUS: come lavora

L’interfaccia Modbus originale funzionava su comunicazione seriale RS-232, ma la maggior parte delle successive implementazioni Modbus utilizza RS-485 perché permetteva distanze maggiori, velocità più elevate e la possibilità di più dispositivi su un’unica rete multi-drop. 
MODBUS: come lavora

Su interfacce semplici come RS-485 e RS-232 i messaggi Modbus vengono inviati in forma semplice sulla rete e la rete sarà dedicata alla sola comunicazione Modbus. 
MODBUS: come lavora

Tuttavia se la rete richiede più dispositivi eterogenei utilizzando un sistema di rete più versatile come TCP/IP su ethernet, i messaggi Modbus sono incorporati nei pacchetti ethernet con il formato prescritto per questa interfaccia fisica. Quindi in questo caso, Modbus e altri tipi di protocolli misti possono coesistere contemporaneamente sulla stessa interfaccia fisica.
MODBUS: come lavora

La struttura principale del messaggio Modbus è peer-to-peer. Modbus è in grado di funzionare sia su reti pear-to-pear che multidrop. 
MODBUS: come lavora

I dispositivi Modbus comunicano utilizzando una tecnica master/slave (Client-server per ethernet) in cui un solo dispositivo può avviare transazioni (chiamate query). Gli altri dispositivi rispondono fornendo i dati richiesti al master o eseguendo l’azione richiesta nella query.
MODBUS: come lavora

Uno slave è un qualsiasi dispositivo periferico come un trasduttore I/O, una valvola, un’unità di rete o altri tipi di dispositivi di misurazione che elaborano le informazioni e invia il suo messaggio di risposta al Master tramite Modbus. 
MODBUS: come lavora

I Master possono indirizzare i singoli slave o avviare un messaggio broadcast a tutti gli slave. Gli slave restituiscono una risposta a tutte le richieste di messaggi indirizzati a loro individualmente ma non rispondere ai messaggi broadcast. 
MODBUS: come lavora

Gli slaves non avviano i messaggi da soli e rispondere solo alle richieste di messaggi trasmessi dal master. 
MODBUS: come lavora

Il controllo degli errori è un valore creato dal master o dallo slave all’inizio della trasmissione o della risposta e poi controllato quando il messaggio viene ricevuto per verificare che i contenuti siano corretti. 
MODBUS: come lavora

La risposta di uno slave è costituita da campi che confermano che ha ricevuto la richiesta, i dati da restituire e un errore di controllo dei dati. Se non si verifica alcun errore, la risposta dello slave contiene i dati richiesti. Se si verifica un errore nella richiesta del messaggio ricevuta dallo slave o se lo slave non è in grado di eseguire l’azione richiesta, lo slave restituirà un messaggio di eccezione come risposta. 
MODBUS: come il protocollo funziona tra i dispositivi

Ogni messaggio Modbus ha la stessa struttura. Quattro elementi di base sono presenti in ogni messaggio. La sequenza e l’ordine di questi elementi sono gli stessi per tutti i messaggi, ciò consente una facile analisi del contenuto del messaggio Modbus. 
MODBUS: come il protocollo funziona tra i dispositivi

Una conversazione viene sempre avviata da un master nella rete Modbus. 
MODBUS: come il protocollo funziona tra i dispositivi

Un master Modbus invia un messaggio e a seconda del contenuto del messaggio, lo slave interpreta il messaggio e vi risponde. 
MODBUS: come il protocollo funziona tra i dispositivi

Indirizzamento fisico degli slave nell’intestazione del messaggio viene utilizzato per definire quale dispositivo slave deve rispondere a un messaggio. Tutti gli altri nodi della rete Modbus ignora il messaggio se il campo dell’indirizzo non corrisponde al proprio indirizzo. 
MODBUS: come il protocollo funziona tra i dispositivi

Le funzioni Modbus eseguono lettura e scrittura, istruzioni ai registri della memoria interna dello slave per configurare, monitorare e controllare gli ingressi e le uscite dello slave. 
MODBUS: come il protocollo funziona tra i dispositivi

I dispositivi Modbus in genere includono una mappa di registro delineando dove la configurazione, i dati di input e output possono essere letti e scritti. Dovresti sempre fare riferimento alla mappa del registro dello slave del tuo dispositivo per comprendere meglio il suo funzionamento complessivo. 
MODBUS: come il protocollo funziona tra i dispositivi

Il modello di dati Modbus ha una struttura semplice descritta in quattro tipi di dati di base:
Ingressi discreti, uscite bobine, registro di ingresso (dati di ingresso) e Holding Registers (dati di output). L’area di richiesta del servizio del messaggio o Modbus Protocol Data Unit o PDU (Protocol data Unit) comprende un codice funzione e un numero di byte di dati richiesti dal master.
MODBUS: come il protocollo funziona tra i dispositivi

I registri di memoria Modbus di un dispositivo sono organizzati intorno ai quattro tipi di riferimento di dati di base e questo tipo di dati è ulteriormente identificato dal numero principale utilizzato nell’indirizzo di memoria dei dispositivi, come un registro basato su 0 che fa riferimento a un messaggio leggere o scrivere uscite discrete o bobine o un registro basato su 1 che fa riferimento alla lettura di ingressi discreti o un registro basato su 3 che fa riferimento alla lettura dei registri di ingresso e un registro basato su 4 che fa riferimento a  lettura o scrittura su registri di output o di mantenimento.
MODBUS: come il protocollo funziona tra i dispositivi

Il campo del codice funzione specifica quale gruppo di dati del registro legge o scrive da e verso lo slave. 
Ad esempio, un codice funzione 03, Read Holding Registers 40001-40002 è indirizzato come registro dati 0000 nel campo indirizzo dati del messaggio inviato allo slave.
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 03 funziona su questo tipo di Holding Register nella mappa dati dello slave perché la richiesta specifica l’utilizzo di un’operazione di tipo dati del registro dati di mantenimento e questo tipo di indirizzamento nella richiesta è implicito.
MODBUS: come il protocollo funziona tra i dispositivi

I campi nella PDU sono suddivisi in byte e raggruppati in base al nome del campo. Il messaggio di richiesta contiene il codice funzione 03, l’indirizzo iniziale HI e LO byte dell’indirizzo 0000 e il conteggio degli indirizzi da leggere dallo slave, registro HI e LO byte del valore di conteggio 0002 specifica il registro di partenza e quantità di registri da leggere dallo slave.
MODBUS: come il protocollo funziona tra i dispositivi

Esempio di richiesta di lettura dei primi due registri nell’area holding Register 01 (registro da 40001 a 40002) e quindi, per fare un altro esempio, l’Holding Register 40108 è effettivamente indirizzato come registro 108 nell’area dei dati di messaggio della PDU.
MODBUS: come il protocollo funziona tra i dispositivi

Molti dei tipi di dati prendono il nome del loro uso nel pilotare i relè, ad esempio, un’uscita fisica a bit singolo è chiamata bobina e un ingresso fisico a bit singolo è chiamato ingresso discreto o contatto.
MODBUS: come il protocollo funziona tra i dispositivi

Il campo del codice funzione del messaggio conterrà un byte che dice allo slave che tipo di azione intraprendere. 
MODBUS: come il protocollo funziona tra i dispositivi

I codici funzione validi vanno da 1 a 255, ma non tutti i codici si applicheranno a un particolare slave. Questa tabella evidenzia un sottoinsieme di funzioni Modbus standard. 
MODBUS: come il protocollo funziona tra i dispositivi

Inoltre il campo dati della richiesta principale, fornisce allo slave tutte le informazioni aggiuntive richieste dallo slave per completare l’azione specificata dal codice funzione nella richiesta del master, tipicamente includendo l’indirizzo del registro della mappa slave, il numero di registri da fornire nella richiesta e qualsiasi dato di scrittura dal master.

MODBUS: come il protocollo funziona tra i dispositivi

La risposta normale dello slave fa semplicemente eco al codice funzione originale della richiesta, ma la risposta di errore dello slave restituisce un codice che è equivalente al codice funzione originale con il bit più significativo impostato su logico 1
MODBUS: come il protocollo funziona tra i dispositivi

Ad esempio, il comando Read Holding Registers ha il codice funzione con 1 byte contenente 8 bit è binario 00 00 00 11.
MODBUS: come il protocollo funziona tra i dispositivi

Se il dispositivo slave accetta la richiesta senza errori restituirà lo stesso codice nella risposta. Tuttavia, se si verifica un errore, lo slave restituirà un 1 byte contenente 8 bit binari 10000011 che dice al dispositivo master che tipo di errore si è verificato o il motivo dell’errore. 
MODBUS: come il protocollo funziona tra i dispositivi

Questo codice funzione 01, Read Coil Code, serve per leggere da 1 a 2000 registri contigui per lo stato delle bobine in un dispositivo slave. 
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo iniziale dell’indirizzo di memoria  dello slave della prima bobina e il numero di bobine da leggere dal dispositivo slave. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 02, codice Leggi ingressi discreti, viene utilizzato per leggere da 1 a 2000 stadi contigui di ingressi discreti in uno slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo di partenza, dell’indirizzo di memoria dello slave del primo ingresso e il numero di bobine da leggere dal dispositivo slave. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 03, codice Read Holding Registers, viene utilizzato per leggere il contenuto di un blocco contiguo di registri di mantenimento in uno slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo di partenza e il numero di registri da leggere dal dispositivo slave. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 04, codice Read Input Registers, viene utilizzato per leggere da 1 a 125 registri di ingresso contigui in un dispositivo remoto.
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo del registro iniziale e il numero di registri. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzioni 05, Write Single coil Code, viene utilizzato per scrivere una singola uscita su ON o su OFF in un dispositivo slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 06, Write Single Register, viene utilizzato per scrivere registro di mantenimento in un dispositivo slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo del registro di memoria slave su cui scrivere. 
MODBUS: come il protocollo funziona tra i dispositivi

Il codice funzione 15, codice Write Multiple Coils, viene utilizzato per forzare ogni bobina in una sequenza di bobine su ON o su OFF in un dispositivo slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

La Request PDU specifica l’indirizzo di memoria delle bobine da forzare su ON o su OFF. 
MODBUS: come il protocollo funziona tra i dispositivi

E il codice funzione 16, Write Plus Register viene utilizzato per scrivere un blocco di registri contigui (da 1 a 123 registri) in un dispositivo slave remoto. 
MODBUS: come il protocollo funziona tra i dispositivi

Sebbene questi codici funzione rappresentino le funzioni di lettura e scrittura più comuni, sarebbe utile rivedere le specifiche Modbus per ulteriori informazioni.

Nessun commento:

Posta un commento