Una macchina espone già dati via Ethernet, ma il MES non riceve pezzi prodotti, allarmi o stati ciclo. Nella maggior parte dei casi il punto non è il cavo di rete: è capire come collegare Modbus TCP definendo correttamente ruoli, indirizzi, registri e frequenze di lettura. Una configurazione apparentemente minima può...
Come collegare Modbus TCP: architettura e prerequisiti
In una rete Modbus TCP il dispositivo che avvia la comunicazione è il client - storicamente chiamato master - mentre quello che mette a disposizione registri e coil è il server - storicamente slave. Un MES, uno SCADA o un gateway agiscono di norma come client; il PLC o il controllo macchina come server.
La comunicazione utilizza Ethernet e lo stack TCP/IP, generalmente sulla porta 502. A differenza di Modbus RTU su seriale, ogni dispositivo deve essere raggiungibile tramite un indirizzo IP e la qualità della rete incide direttamente sulla continuità del dato. Il primo requisito è quindi una rete industriale segmentata, documentata e con indirizzi statici o assegnazioni DHCP riservate.
Prima di configurare il collegamento servono quattro informazioni operative: indirizzo IP del dispositivo, porta TCP, ruolo Modbus e mappa dei registri. Senza una register map aggiornata non è possibile sapere se il registro 40001 contiene un contatore pezzi, una temperatura, una ricetta o una variabile non utilizzabile. È utile verificare anche la versione del firmware e le eventuali limitazioni del costruttore sul numero di connessioni simultanee.
Verificare rete e raggiungibilità
Il PLC e il sistema di acquisizione devono appartenere a reti instradabili tra loro. Se sono presenti VLAN, firewall industriali o collegamenti tra stabilimenti, la porta 502 deve essere consentita solo tra gli indirizzi necessari. Aprirla indiscriminatamente verso reti aziendali non controllate è una scelta da evitare.
Un test di ping conferma la raggiungibilità IP, ma non prova che Modbus TCP sia attivo. Il controllo successivo consiste nel verificare l'apertura della porta e nell'eseguire una lettura reale di un registro noto. Se il dispositivo risponde al ping ma non alla richiesta Modbus, le cause più comuni sono porta diversa dalla 502, funzione server non abilitata, firewall, limiti di connessione o configurazione errata del PLC.
Leggere registri, coil e tipi di dato senza errori
Modbus definisce quattro aree logiche. Le coil sono bit leggibili e scrivibili; gli input discreti sono bit di sola lettura; gli input register sono registri a 16 bit di sola lettura; gli holding register sono registri a 16 bit leggibili e scrivibili. Nelle macchine produttive, stati, consensi e allarmi sono spesso esposti come bit, mentre contatori, setpoint, tempi e valori analogici sono normalmente registri.
Il punto critico è che un registro Modbus non coincide sempre con un dato applicativo completo. Un valore `INT32`, `UINT32` o `FLOAT32` occupa due registri consecutivi; un `FLOAT64` ne occupa quattro. Inoltre, alcuni dispositivi inviano prima la word alta, altri la word bassa, e lo stesso può accadere per l'ordine dei byte. Un contatore pezzi che dovrebbe aumentare di una unità ma viene letto come un numero enorme è spesso un problema di endianness, non un difetto del PLC.
Anche l'indirizzamento richiede attenzione. Alcune mappe scrivono 40001, 40002 e così via, dove il prefisso identifica l'area holding register; altre chiedono invece un offset zero-based. Di conseguenza, il valore pubblicato come 40001 può dover essere interrogato come indirizzo 0. Non esiste una convenzione universale nell'interfaccia dei software: la verifica va fatta con il manuale del costruttore e con una lettura di test su un valore facilmente riconoscibile.
Creare una mappa dati orientata alla produzione
Acquisire tutti i registri disponibili raramente porta valore. Aumenta il traffico, rende più difficile la manutenzione e mescola dati diagnostici con indicatori realmente utili. La mappa va costruita partendo dai casi d'uso: avanzamento ordine, conteggio buoni e scarti, fermo macchina, causale di fermo, allarmi, ricetta attiva, parametri di qualità e consumi.
Per ogni tag conviene documentare nome, indirizzo, funzione Modbus, tipo di dato, unità di misura, fattore di scala, frequenza di lettura, valore plausibile e responsabilità applicativa. Se una temperatura è esposta come 235 ma rappresenta 23,5 °C, il fattore di scala deve essere definito nel punto di acquisizione, non interpretato ogni volta a valle.
Questa disciplina è decisiva quando gli stessi dati alimentano dashboard OEE, analisi BI, tracciabilità di lotto ed ERP. Un dato tecnicamente leggibile ma privo di contesto operativo non è ancora un dato utilizzabile per governare la produzione.
Configurazione pratica del client Modbus TCP
Una volta disponibili rete e mappa registri, la configurazione segue una sequenza lineare. Si crea la connessione indicando IP, porta e timeout, quindi si definiscono i tag con area Modbus, indirizzo, lunghezza e conversione del dato. Infine si stabilisce il ciclo di polling e si valida il risultato rispetto al comportamento reale della macchina.
La frequenza non va scelta per abitudine. Per un contatore pezzi o uno stato macchina possono essere sufficienti uno o due secondi; per segnali di processo veloci, come una coppia o una pressione durante una fase critica, potrebbero servire intervalli più stretti o un'altra architettura di acquisizione. Interrogare centinaia di registri ogni 100 millisecondi su un PLC già impegnato nel controllo macchina può introdurre carico inutile e generare timeout.
Quando più variabili sono consecutive, è preferibile leggerle in blocco anziché inviare una richiesta per ogni registro. Si riducono le transazioni TCP e i dati risultano più coerenti temporalmente. Il blocco non deve però essere eccessivo: molti dispositivi pongono limiti al numero massimo di registri per richiesta, e una lettura troppo ampia può includere zone non mappate o riservate.
La scrittura di coil e holding register merita una regola prudenziale: eseguirla solo quando esiste un requisito di integrazione chiaro, per esempio invio ricetta, consenso di avvio o scambio dell'ordine di produzione. Il MES non deve sostituirsi alla logica di sicurezza o al controllo real-time del PLC. Comandi, interblocchi e condizioni di sicurezza restano responsabilità dell'automazione di macchina.
Test, diagnostica e gestione degli errori
Il collaudo non si limita alla prima risposta positiva. Occorre confrontare i valori acquisiti con HMI, PLC o strumentazione di campo, verificando sia il valore istantaneo sia l'andamento nel tempo. Per un contatore cumulativo, ad esempio, va osservato il comportamento su più cicli macchina e dopo eventuali reset o cambi turno.
I codici eccezione Modbus aiutano a isolare il problema. Una funzione non supportata indica che il dispositivo non accetta il tipo di lettura richiesto; un indirizzo dati non valido rimanda alla mappa registri; un valore non valido può dipendere dalla lunghezza o dal formato della richiesta. Timeout e connessioni interrotte richiedono invece analisi di rete, saturazione del dispositivo e parametri di retry.
Un sistema industriale affidabile deve gestire anche l'assenza del dato. Se la comunicazione cade, è preferibile registrare qualità, timestamp e stato della connessione piuttosto che riproporre indefinitamente l'ultimo valore come se fosse attuale. Per KPI quali OEE o disponibilità, distinguere un fermo macchina da una perdita di comunicazione evita analisi fuorvianti.
Sicurezza OT e continuità operativa
Modbus TCP è efficace ma non integra meccanismi nativi di cifratura o autenticazione. La protezione deve quindi essere progettata nella rete: segmentazione OT, firewall con regole puntuali, accessi remoti controllati, inventario degli asset e monitoraggio delle connessioni. L'esposizione diretta di un PLC su Internet non è compatibile con una gestione responsabile dell'impianto.
Serve inoltre definire chi può modificare mappa registri, parametri di polling e regole di scrittura. Una variazione non documentata del programma PLC o del firmware può cambiare indirizzi, tipi di dato e significato delle variabili. La gestione delle versioni e una procedura di test prima della messa in produzione riducono fermi e contestazioni sui dati storici.
Per realtà con macchinari eterogenei, un agente leggero installato in stabilimento può centralizzare la raccolta Modbus TCP e inviare dati selezionati a una piattaforma cloud, senza introdurre server locali da mantenere. In questo scenario, PLCinCloud consente di collegare protocolli industriali e dati di produzione a dashboard, KPI e sistemi gestionali mantenendo separati rete di fabbrica e servizi applicativi.
Collegare Modbus TCP correttamente significa trasformare registri grezzi in informazioni affidabili su produzione, qualità e disponibilità. Il risultato dipende meno dalla complessità del protocollo e più dalla precisione con cui vengono definiti dati, responsabilità e condizioni operative: è lì che un collegamento di rete diventa un progetto di interconnessione utile allo stabilimento.