Il protocollo di comunicazione Modbus è stato inventato da Modicon nel 1979 ed è il primo protocollo bus al mondo utilizzato in ambito industriale. Grazie al suo rilascio pubblico e gratuito, i produttori che lo utilizzano non devono pagare alcun canone, pertanto il protocollo Modbus è stato ampiamente utilizzato in tutto il mondo.
Il protocollo di comunicazione Modbus ha diverse varianti, le più comuni delle quali sono i protocolli Modbus RTU e Modbus TCP.
I due protocolli sono molto simili. Prendiamo come esempio la lettura di più registri di mantenimento per illustrare la differenza tra i due:
Il formato di invio della comunicazione Modbus RTU è il seguente: indirizzo dello slave 01 (che indica l'indirizzo dello slave) codice funzione 03 (lettura di registri di mantenimento singoli/multipli) indirizzo di partenza dei dati 00 00 (che indica la partenza da 40001) numero di dati 00 02 (che indica la lettura di due parole) codice di controllo CRC xx xx (il codice di controllo CRC in questo caso è C4 0B), che insieme è 01 03 00 00 00 02 C4 0B. Dopo l'invio, la stazione slave restituisce i dati. Il formato dei dati è: 01 03 04 01 02 03 04 5B 3C, dove 01 indirizzo della stazione slave, 03 codice funzione di lettura, 04 numero di byte di dati, 01 02 03 04 contenuto dei dati, 5B 3C è il codice di controllo CRC.

Il protocollo Modbus TCP aggiunge un'intestazione MBAP al protocollo Modbus RTU. Poiché il protocollo TCP è un servizio basato su connessioni affidabili, il codice di controllo CRC del protocollo RTU non è più necessario, pertanto il protocollo Modbus TCP non prevede alcun controllo CRC. La verifica mostra che l'intestazione MBAP è lunga sette byte. Ad eccezione del quinto e del sesto byte, il resto è sostanzialmente invariato. Ad esempio, utilizzando Modbus TCP per completare l'operazione sopra descritta, si invia 00 01 00 00 00 06 ff 03 00 00 00 02. Il quinto e il sesto byte sono 00 00 00 00 02. Il quinto e il sesto byte sono 00 06, il che significa che ci sono 6 byte dopo 00 06. Vedere la figura seguente per le operazioni specifiche

Il valore di ritorno è 00 01 00 00 00 07 ff 03 04 01 02 03 04. I primi 7 byte sono l'intestazione del messaggio MBAP, 03 la lettura del codice funzione, 04 i byte di dati, 01 02 03 04 rappresentano il contenuto dei dati.
Quindi il protocollo Modbus TCP è in realtà il protocollo Modbus RTU con il codice di controllo CRC rimosso, il codice dell'indirizzo dello slave precedente rimosso e un'intestazione MBAP di 7 byte aggiunta nella parte anteriore.

Il Modbus TCP si è evoluto sulla base di Ethernet e l'interfaccia fisica determina la velocità di comunicazione e il metodo di verifica.
Questa è la differenza fondamentale tra i protocolli Modbus RTU e Modbus TCP. La descrizione è più chiara e spero che possa risolvere i dubbi di tutti.