Come funziona Modbus RTU?
Il protocollo Modbus è fondamentalmente un sistema che elabora richieste e risposte da dispositivi elettronici. L'architettura master / slave viene usata con le richieste del master che rispondono ai dispositivi slave.
Che cos'è un master Modbus RTU?
Un master RTU Modbus è il dispositivo centrale che effettua richieste di informazioni dai dispositivi slave collegati. Un controller centrale in un sistema di produzione automatizzato può svolgere il ruolo di un master RTU Modbus. Un'implementazione Modbus ha un master. I dispositivi master ottengono informazioni dagli slave e possono anche scrivere nei registri dei dispositivi slave.
Che cos'è uno slave RTU Modbus?
Lo slave RTU Modbus è il dispositivo che risponde alla richiesta effettuata dal dispositivo master. Non può avviare il trasferimento di informazioni ed è in un modello di mantenimento fino a quando non risponde a una richiesta fatta dal master.
Come detto, esiste un dispositivo master in un'implementazione Modbus RTU e possono esserci fino a 247 dispositivi slave. Ogni dispositivo slave è identificato da un indirizzo slave da 1 a 247.
Al centro del protocollo Modbus c'è il componente noto come Unità dati di protocollo (PDU). La PDU è costituita da un codice funzione e dati ed è costruita in modo coerente, indipendentemente dalla modalità di trasmissione Modbus usata. Il codice funzione specifica quali dati vengono richiesti dal master.
Nella modalità di trasmissione RTU di Modbus, attorno alla PDU sono racchiuse informazioni aggiuntive per creare l'intera Application Data Unit (ADU). Nel flusso di segnale e prima del codice funzione, in modalità RTU Modbus viene inviato un ID slave di 1 byte per identificare il dispositivo slave che dovrebbe soddisfare la richiesta. Alla PDU è aggiunto un CRC a 2 byte che garantisce l'invio e la ricezione della giusta quantità di byte.
I dispositivi Modbus supportano quattro tabelle di dati che vengono usate per facilitare la comunicazione tra i dispositivi. Sono ingressi discreti, uscite discrete (bobine), registri di ingresso e registri di mantenimento. I registri svolgono diverse funzioni e non sono tutti inclusi in tutti i dispositivi. In alcuni casi, solo i registri di mantenimento vengono utilizzati per la funzionalità I/O.
Campo |
Accesso |
Dimensione |
Descrizione |
Ingressi discreti |
solo lettura |
1 bit |
usati come ingressi |
Uscite delle bobine |
lettura/scrittura |
1 bit |
usato per il controllo dei discreti |
Registri d'ingresso |
sola lettura |
16 bit |
usati come ingresso |
Registri di mantenimento |
lettura/scrittura |
16 bit |
utilizzato per una varietà di cose tra cui ingresso, uscita, dati di configurazione, ecc. |
I codici funzione indicano come il master interagisce con il dispositivo slave specificato nell'ID slave. In base al codice funzione inviato, il dispositivo master può leggere uno dei registri dello slave o scrive su di essi.
Gli slave restituiscono codici di errore quando ricevono un pacchetto che contiene un errore nella richiesta. Vengono restituiti codici di errore per problemi come la richiesta di una funzione illegale, indirizzi di registro illegali, che non possono essere raggiunti dallo slave specificato e messaggi che indicano che il dispositivo slave è occupato o ha riscontrato un errore.
RTU Modbus richiede che tu conosca o definisca i parametri come tasso del baud, formato del carattere (8 bits senza parità, ecc), e ID slave all'avvio della comunicazione. Una mancata corrispondenza in uno di questi parametri comporterà il fallimento del tentativo di comunicazione.