Modbus RTU nei PLC - configurazione, registri e cablaggio

Schema di comunicazione industriale: da sinistra, topologia RS485 Daisy-Chain con protocollo Modbus RTU per sensori e attuatori; a destra, Industrial Ethernet Star Topology con Modbus TCP/EtherNet/IP per PLC, HMI e sistemi remoti.

Scritto da

Carmelo Mancini

Pubblicato il

28 ott 2026

Indice

Quando un PLC deve scambiare dati con inverter, contatori, sensori o moduli di I/O, una comunicazione instabile può fermare un’intera linea. Il protocollo modbus rtu offre una soluzione seriale semplice e collaudata, ma funziona bene solo quando indirizzi, parametri della porta, cablaggio e registri sono configurati con precisione. Qui spiego come opera, come si imposta in un PLC e quali errori conviene evitare nella pratica.

I punti essenziali per usare Modbus RTU senza sorprese

  • RS-485 è l’interfaccia più comune per collegare più dispositivi sulla stessa linea.
  • Ogni dispositivo deve condividere baud rate, parità, bit di stop e modalità RTU.
  • La trama contiene indirizzo, codice funzione, dati e CRC-16 per il controllo degli errori.
  • Gli indirizzi dei registri e l’ordine dei byte sono tra le cause più frequenti di letture sbagliate.
  • Il master interroga un dispositivo alla volta, mentre gli slave rispondono solo quando vengono chiamati.

Schema che illustra l'impatto del rumore sul protocollo Modbus RTU, con un comparatore che interpreta i segnali A e B sulla linea RS485.

Che cos’è Modbus RTU e perché è ancora usato nei PLC

Modbus RTU è una modalità di comunicazione seriale utilizzata per trasferire dati tra un dispositivo principale e uno o più dispositivi collegati alla stessa linea. In un impianto industriale il PLC può leggere la temperatura da un sensore, verificare la velocità di un inverter o modificare il setpoint di un regolatore usando messaggi brevi e strutturati.

Il suo punto di forza è la semplicità. Non richiede una rete complessa, ha costi contenuti e viene supportato da moltissimi dispositivi di produttori diversi. Per questo lo incontro spesso in quadri elettrici, macchine utensili, sistemi HVAC, contatori di energia e linee di automazione.

La comunicazione segue normalmente il modello master-slave, oggi descritto anche come client-server. Il master, spesso il PLC, avvia ogni richiesta; lo slave, per esempio un inverter, risponde con il valore richiesto o con un codice di errore. Non esiste quindi una trasmissione spontanea continua da parte dei dispositivi secondari.

Come funziona la comunicazione seriale

In una rete RTU tutti i dispositivi devono usare gli stessi parametri di trasmissione. I valori più comuni sono 9600 o 19.200 bit/s, formato 8E1, cioè 8 bit dati, parità pari e 1 bit di stop. Alcuni apparati usano 8N1 o 8N2, ma il formato deve essere identico su tutta la linea.

Parametro Impostazione tipica Cosa succede se è errato
Baud rate 9600 o 19.200 bit/s La trama viene interpretata con tempi sbagliati
Bit dati 8 I byte ricevuti risultano corrotti
Parità Even, Odd oppure None Compaiono errori di comunicazione
Bit di stop 1 oppure 2 senza parità Il ricevitore perde l’allineamento
Indirizzo nodo Da 1 a 247 Il dispositivo non risponde o risponde quello sbagliato

Ogni nodo deve avere un indirizzo univoco. L’indirizzo 0 è riservato al broadcast, cioè a un comando inviato a tutti i dispositivi, ma in questo caso gli slave non devono restituire una risposta. Gli indirizzi da 1 a 247 sono invece usati per le comunicazioni individuali.

La separazione tra una trama e l’altra non dipende da un carattere speciale, ma da un intervallo di silenzio sulla linea. Il tempo minimo è di 3,5 caratteri, mentre una pausa superiore a 1,5 caratteri durante la trama può far considerare il messaggio incompleto. È un dettaglio spesso trascurato quando si sviluppano driver personalizzati o si imposta un convertitore seriale.

Come leggere la trama e i registri Modbus

Una trama RTU è composta, in forma semplificata, da indirizzo del dispositivo, codice funzione, dati e controllo CRC. La lunghezza massima teorica della trama è 256 byte. Il CRC-16 permette al ricevitore di verificare se i bit sono arrivati integri, ma non corregge il messaggio: se il controllo fallisce, la risposta viene scartata.

Campo Funzione
Indirizzo Identifica il dispositivo destinatario
Codice funzione Indica l’operazione da eseguire
Dati Contengono indirizzo iniziale, quantità o valori
CRC Verifica l’integrità della comunicazione

I codici più usati in automazione sono il 01 per leggere le coil, il 02 per gli ingressi digitali, il 03 per i holding register, il 04 per gli input register, il 05 per scrivere una singola coil e il 06 per scrivere un singolo registro. Le funzioni 15 e 16 servono invece per scrivere gruppi di bit o registri in un’unica richiesta.

Qui nasce uno dei problemi più fastidiosi. Un manuale può indicare un registro come 40001, mentre il PLC può richiedere l’offset 0. In altri casi lo stesso valore viene presentato come registro 40001 ma deve essere interrogato con codice funzione 03 all’indirizzo 0. Prima di modificare il programma, controllo sempre codice funzione, offset, quantità e formato del dato.

Un registro Modbus ha normalmente 16 bit, ma un valore reale a 32 bit occupa due registri consecutivi. L’ordine dei byte è spesso definito, mentre l’ordine delle word può cambiare da un costruttore all’altro. Per questo un numero come 23,5 può apparire come un valore enorme o negativo se il PLC interpreta male il formato IEEE 754 o l’ordine delle word.

Come configurare Modbus RTU in un PLC

La configurazione diventa molto più rapida se la affronto come una piccola procedura ordinata. Non conviene collegare subito tutti i dispositivi e cambiare più parametri contemporaneamente, perché in caso di errore diventa difficile capire quale impostazione abbia causato il problema.

  1. Raccolgo la tabella registri del dispositivo e verifico i codici funzione supportati.
  2. Imposto lo stesso baud rate, formato dati, parità e numero di stop bit su PLC e slave.
  3. Assegno un indirizzo diverso a ogni nodo e controllo che non esistano duplicati.
  4. Collego un solo dispositivo per la prima prova, usando una richiesta semplice di lettura.
  5. Verifico la risposta con il diagnostico del PLC o con un analizzatore Modbus.
  6. Aggiungo gli altri nodi e imposto timeout, numero di tentativi e gestione degli errori.

Per una prima verifica scelgo spesso la funzione 03 su un registro di misura facilmente riconoscibile. Se il dispositivo restituisce una temperatura, una frequenza o un conteggio plausibile, posso concentrarmi sugli altri registri. Se invece arriva una risposta di eccezione, il problema può essere un indirizzo non valido, una funzione non supportata o una quantità di registri errata.

Il timeout deve essere abbastanza lungo da permettere al dispositivo di rispondere, ma non così elevato da bloccare il ciclo del PLC. In molti impianti si parte da 100-500 millisecondi, poi si adatta il valore in base al baud rate, al numero di registri e ai tempi dichiarati dal costruttore. Anche il numero di tentativi va limitato: ripetere indefinitamente una richiesta guasta può rallentare tutta la macchina.

Cablaggio RS-485 e problemi che sembrano software

Modbus RTU non è sinonimo di RS-485. RTU descrive il formato della comunicazione, mentre RS-485 è l’interfaccia elettrica usata più spesso per trasportarla. Questa distinzione è importante perché un programma perfetto non può compensare un bus cablato male.

La topologia consigliata è una linea dorsale con derivazioni brevi. Evito la configurazione a stella, soprattutto quando i cavi sono lunghi o il baud rate è elevato. Alle due estremità fisiche della linea inserisco normalmente resistenze di terminazione da 120 ohm, non su ogni dispositivo intermedio.

  • Uso un cavo twistato adatto alla comunicazione differenziale.
  • Controllo la polarità dei segnali A e B, perché la nomenclatura non è sempre coerente tra produttori.
  • Collego il riferimento comune quando il costruttore lo richiede.
  • Separo il cavo RS-485 da motori, contattori e cavi di potenza.
  • Verifico schermatura, messa a terra e protezione contro differenze di potenziale.

Quando la comunicazione è intermittente, guardo prima i contatori di errori e la qualità elettrica della linea. Un CRC errato suggerisce disturbi, terminazioni sbagliate o riflessioni; nessuna risposta può indicare un indirizzo errato, un problema di polarità, un dispositivo spento o parametri seriali incompatibili.

Su una tratta RS-485 si considera spesso il limite di 32 unit load, ma il numero reale dipende dai transceiver installati. Dispositivi moderni, ripetitori e segmentazioni possono cambiare questo limite. Non considero quindi sufficiente contare i dispositivi: verifico il carico elettrico dichiarato e la lunghezza del cavo prevista dal progetto.

Modbus RTU e Modbus TCP non sono intercambiabili

Entrambe le varianti usano gli stessi concetti di registri e codici funzione, ma il mezzo di trasmissione è diverso. RTU viaggia su una linea seriale, mentre Modbus TCP utilizza Ethernet e incapsula i dati in pacchetti TCP/IP. In una rete TCP non esistono i tempi di silenzio della trama RTU e il controllo CRC della seriale non viene usato nello stesso modo.

Caratteristica Modbus RTU Modbus TCP
Mezzo Seriale, soprattutto RS-485 Ethernet
Velocità pratica Dipende dal baud rate e dalla lunghezza della linea Generalmente superiore
Cablaggio Dorsale differenziale e terminazioni Infrastruttura Ethernet e switch
Adatto a Macchine compatte e retrofit Impianti con rete industriale già disponibile

Scelgo RTU quando devo collegare pochi dispositivi, mantenere bassi i costi o integrare apparecchiature già dotate di porta seriale. Preferisco TCP quando servono più nodi, maggiori velocità o un’integrazione diretta con SCADA, sistemi MES e infrastrutture Ethernet. Un gateway può collegare i due mondi, ma introduce un ulteriore punto da configurare e diagnosticare.

La semplicità di RTU non significa assenza di rischi. Il protocollo non offre da solo cifratura, autenticazione o gestione avanzata degli accessi. Per questo lo tengo su reti industriali segmentate e controllo con attenzione quali dispositivi possono scrivere sui registri, soprattutto quando la rete è collegata a sistemi aziendali.

Il controllo finale che evita la maggior parte degli errori

Prima di mettere in servizio una macchina, preparo una tabella con indirizzo nodo, parametri seriali, registri utilizzati, tipo di dato, unità di misura e valore ammesso. È un passaggio semplice, ma rende molto più veloce la manutenzione quando un dispositivo viene sostituito o si aggiunge un nuovo modulo.

La mia regola pratica è partire dalla comunicazione più piccola possibile, verificare un solo registro e solo dopo aumentare la quantità di dati. In questo modo si separano i problemi di cablaggio da quelli di configurazione e da quelli legati alla mappa registri. Quando questi tre livelli sono documentati, Modbus RTU resta una soluzione affidabile, economica e ancora molto efficace per l’automazione industriale.

Domande frequenti

PLC e slave devono usare lo stesso baud rate, numero di bit dati, parità e bit di stop. I valori comuni sono 9600 o 19.200 bit/s con formato 8E1, ma alcuni dispositivi richiedono 8N1 o 8N2.

La numerazione riportata nel manuale può includere il prefisso del tipo di registro, mentre il PLC può richiedere l'offset reale. Per evitare errori bisogna verificare insieme codice funzione, offset, quantità e formato del dato.

È preferibile una linea dorsale con derivazioni brevi, evitando la topologia a stella. Le resistenze di terminazione da 120 ohm vanno normalmente collocate alle due estremità fisiche della linea, mentre il cavo deve essere separato da motori, contattori e cavi di potenza.

Modbus RTU è adatto a macchine compatte, retrofit e impianti con pochi dispositivi dotati di porta seriale, mantenendo bassi i costi. Modbus TCP è preferibile quando servono più nodi, maggiore velocità o un'integrazione diretta con SCADA, MES e infrastrutture Ethernet.

Valuta l'articolo

Valutazione: 0.00 Numero di voti: 0

Tag:

modbus rtu rs-485 registri modbus tcp

Condividi post

Carmelo Mancini

Carmelo Mancini

Mi chiamo Carmelo Mancini e ho 13 anni di esperienza nel campo della meccanica di precisione e delle lavorazioni. La mia passione per questo settore è nata fin da giovane, quando ho iniziato a esplorare il funzionamento delle macchine e dei loro componenti. Sono affascinato dalla precisione e dalla cura necessarie per realizzare prodotti di alta qualità, e mi impegno a condividere le mie conoscenze con chi desidera approfondire questi argomenti. Nel mio lavoro, mi dedico a scrivere articoli che semplificano concetti complessi, analizzando le ultime tendenze e confrontando le informazioni disponibili. Credo fermamente nell'importanza di fornire contenuti utili, accurati e aggiornati, in modo che i lettori possano comprendere meglio le sfide e le opportunità nel mondo della meccanica di precisione. La mia missione è rendere accessibili informazioni preziose, affinché chiunque possa apprezzare la bellezza e la funzionalità delle lavorazioni di precisione.

Scrivi un commento