
Modbus
È un protocollo fieldbus di automazione industriale basato su una comunicazione master/slave o client/server, in cui i dispositivi scambiano dati con PLC, sensori, attuatori, e Control System. Il sistema nella sua interezza include il protocollo di comunicazione, la configurazione degli indirizzi dei devices, il mapping dei registri per la lettura e la scrittura dei dati, e l’integrazione con BMS quali il NeuroN di MIRA La sua semplicità lo rende ideale per applicazioni in ambito energetico, HVAC, automazione di processo e controllo remoto.
Bi System supporta il sistema Modbus.
Feature
Aspetti normativi
Modbus è un protocollo di comunicazione aperto, sviluppato nel 1979, pensato inizialmente per la comunicazione tra PLC, e poi diffuso . Ecco i punti salienti dal punto di vista normativo:
- Protocollo libero da royalties: chiunque può implementarlo senza costi di licenza, il che ne ha favorito la diffusione in ambito industriale.
- Standardizzazione informale: pur non essendo uno standard ISO o IEC ufficiale, è ampiamente riconosciuto e adottato come de facto standard per la comunicazione industriale e il control system.
- Documentazione ufficiale: la Modbus Application Protocol Specification definisce formalmente struttura, codici funzione e modelli di indirizzamento.
- Compatibilità multi-piattaforma: può essere implementato su diversi mezzi fisici (RS232, RS485, Ethernet) e supporta vari formati (RTU, ASCII, TCP/IP).
🧩 Modello ISO/OSI e Modbus
Il protocollo si colloca in modo specifico, secondo il tipo, nel modello ISO/OSI che suddivide la comunicazione in 7 livelli. A differenza di protocolli più evoluti quali LonTalk e BACnet che occupano tutti e 7 i layer della pila, i tipi RTU e ASCII si fermano al livello 2 (DataLink), mentre Modbus TCP si estende fino al livello 4 grazie all’uso di TCP/IP.

Feature
Cenni tecnici
- Modbus RTU / ASCII: trasmettono i dati in formato binario esadecimale con controllo errori tramite CRC il tipo RTU, in caratteri ASCII e controllo errori LRC il tipo ASCII. Entrambi i tipi utilizzano la trasmissione differenziale su doppino intrecciato e schermato da 120 ohm tramite il transceiver RS485, trasmettono ad una velocità massima di 115 kbps, e necessitano di impedenze di fine e inizio linea. l’ Accesso al bus è di tipo master/slave, la distribuzione è vincolata alla topologia “entra ed esci”, e non prevede protezione e cifratura dei dati.
- Modbus TCP: incapsula i frame in pacchetti TCP/IP, permettendo la comunicazione su reti Ethernet o via WiFi. L’accesso alla rete è di tipo client/server con il pregio di poter disporre di più client(master) contemporaneamente; ogni nodo oltre a disporre di Id Modbus detiene anche un indirizzo IP. La velocità, la distribuzione, le infrastrutture, la sicurezza e cifratura disponibili sono quelle della rete. Di contro l’ utilizzo del TCP/IP introduce un certo overhead che può essere inefficiente in reti congestionate condivise con il control system.
Esempio di Frame RTU
[01][03][00][6B][00][03][76][87]
Slave ID: 01
Function: 03 (Read Holding Registers)
Start Address: 006B
Quantity: 0003
CRC: 7687
Esempio di Frame ASCII
:0103006B0003F6\r\n
Start: :
Slave ID: 01
Function: 03
Start Address: 006B
Quantity: 0003
LRC: F6
End: \r\n
Punti di forza e debolezze
Come ogni protocollo di comunicazione per Control System anche questo protocollo presenta vantaggi e svantaggi secondo l’impianto o l’applicazione da gestire.
Certamente è uno dei protocolli più longevi e forse anche il più conosciuto, la sua diffusione è mondiale, e il suo utilizzo accessibile a tutti.
Molti hanno cercato di farne versioni personalizzate, ma alla fine non s’è fatto altro che ottenere delle copie più o meno fedeli dell’originale.
Di seguito una serie di pregi e di mancanze:
Protocollo libero e aperto
È gratuito e senza licenza, e questo favorisce la diffusione e la standardizzazione semplificando l’interoperabilità tra dispositivi, e riducendo e accellerando i costi di sviluppo e integrazione.
Ampia compatibilità
Supportato da migliaia di dispositivi, consente aggiornamenti e comunicazioni efficienti tra hardware di marchi diversi; ideale per impianti eterogenei di control system.
Implementazione semplice
La struttura intuitiva, semplice e lineare, e i comandi essenziali e chiari permettono l’utilizzo anche su dispositivi e sistemi economici, con minime risorse e poche richieste.
Flessibilità nelle funzionalità
Sacrificando un po’ la struttura standard Modbus supporta comandi custom personalizzati e implementazioni parziali, e in questo modo può adattarsi alle esigenze specifiche dei singoli produttori.
Ottimale per Control System
Utilizza un semplice ed econonico cavo bifilare intrecciato per collegare i dispositivi remoti, riducendo così i cablaggi e semplificando la ricerca dei guasti e la manutenzione.
Sincronizzazione temporale delicata
RTU e ASCII dipendono dalla temporizzazione per delimitare i frame. Errori nei tempi possono causare perdite di comunicazione, soprattutto a velocità elevate.
Trasmissione half-duplex
La trasmissione su RS485 è consentita a un solo dispositivo alla volta, limitando di conseguenza la velocità e richiedendo controlli rigorosi della sequenza dei messaggi.
TCP soggetto a congestioni
La comunicazione tramite TCP dipende molto dalla qualità della rete Ethernet o della rete WiFi. In ambienti industriali trafficati o in presenza di interferenze elevate, può subire ritardi o disconnessioni.
Sicurezza limitata nativamente
I tipi RTU e ASCII non prevedeno cifratura o autenticazione. In contesti sensibili è necessario affiancare al Modbus altri protocolli esterni per proteggere i dati.
Gestione errori non strutturata
Il controllo si limita a un algoritmo di checksum e ad alcuni codici di eccezione. Non sono previsti sistemi di ritrasmissione o monitoraggio delle prestazioni.
Tech
La topologia dei tipi RTU e ASCII
Il protocollo Modbus prevede un sistema di comunicazione seriale la cui topologia impiantistica è tipicamente a bus lineare, dove tutti i dispositivi sono connessi lungo un unico cavo seriale (RS-485). Ogni nodo ha un indirizzo univoco e comunica in modalità master-slave, con un solo master che interroga i dispositivi slave uno alla volta. È fondamentale rispettare la terminazione alle estremità del bus per evitare riflessioni del segnale, e a questo scopo si adottano delle impedenze di inizio e fine linea con valore di 120 ohm.
La lunghezza massima e il numero di dispositivi dipendono molto dalla velocità di trasmissione e dalla qualità del cablaggio. La regola d’oro vuole che il doppino bus entra ed esca dallo stesso nodo senza ulteriori derivazioni, tuttavia delle volte per ragioni pratiche la connessione va fatta dentro scatole di derivazione a qualche metro di distanza dal nodo. Il ramo di cavo che va dalla scatola di derivazione al nodo viene chiamato “stub“, ed è fondamentale che gli stub siano assenti o quanto più corti possibile.

I Comandi
Di seguito una lista dei comandi standard più comuni:
Codice | Funzione | Area | Descrizione |
0x01 | Read Coils | Coils | Lettura fino a 2000 punti |
0x02 | Read discrete inputs | Discrete inputs | Lettura fino a 2000 punti |
0x03 | Read holding registers | Holding registers | Lettura fino a 125 word |
0x04 | Read input registers | Input registers | Lettura fino a 125 word |
0x05 | Write single coil | Coils | Scritura ON/OFF di un coil |
0x06 | Write single register | Holding registers | Scrittura del valore in un registro |
0x0F | Write multiply coils | coils | Scrittura ON/OFF fino a 1968 punti |
0x10 | Write multiply registers | Holding registers | Scrittura di valori fino a 123 word |