In particolar modo vedremo:
Il Problema
Il VMU-C EM di GAVAZZI è un dispositivo che raccoglie dati tramite RS485 e li rende disponibili in Modbus TCP. Tuttavia, configurare la comunicazione Modbus TCP può essere complesso, soprattutto per chi non ha esperienza con la parametrizzazione Modbus. Tecnico spesso si trova con il modulo TCP client busy, senza codici di errore, e senza una chiara guida su come impostare le mappe TCP per i vari dispositivi collegati.
Causa Tecnica Modbus TCP
La principale causa del problema è la mancanza di una chiara configurazione delle mappe TCP e degli indirizzi Modbus. Il VMU-C EM ha due porte RS485 per la comunicazione Modbus, ma la documentazione non è chiara sui registri e codici funzione da utilizzare. Inoltre, il dispositivo genera automaticamente una mappatura delle variabili, ma non è chiaro come gestire più identificativi TCP per i diversi strumenti collegati.
Soluzione Definitiva per Modbus TCP
Passo 1: Configurare il VMU-C EM come Master
Per configurare il VMU-C EM come Master, è necessario impostare correttamente le mappe TCP. Assegnare un ID TCP univoco a ciascun dispositivo collegato e configurare il registro Modbus corretto. Ad esempio, se il registro Modbus deve essere letto dal 40001, impostare MB_UNIT_ID nel database di istanza del MB_CLIENT.
Passo 2: Verificare la Comunicazione
Utilizzare un simulatore Modbus per verificare la comunicazione. Una volta stabilita la connessione, verificare il formato dei valori restituiti e come gestirli. Se si restituiscono due parole per registro, è necessario gestire queste parole in un puntatore di word.
Passo 3: Gestire Più Identificativi TCP
Per gestire più identificativi TCP, è necessario cambiare MB_UNIT_ID nel database di istanza del MB_CLIENT ogni volta che si passa da una lettura all’altra. Tuttavia, è possibile creare un blocco in SCL che gestisca automaticamente questo cambiamento senza dover disconnettere e riconnettere tutte le volte.
Codice e Configurazione Modbus TCP
FUNCTION_BLOCK FB_Modbus : <code>VAR MB_UNIT_ID : INT := 1; VAR MB_CLIENT : MB_CLIENT; END_VAR MB_CLIENT.MB_UNIT_ID := MB_UNIT_ID; MB_CLIENT.MB_HOSTNAME := '192.168.1.100'; MB_CLIENT.MB_PORT := 502; END_FUNCTION_BLOCK
Verifica e Test della Soluzione
Per verificare la soluzione, utilizzare una checklist dettagliata. Assicurarsi che gli indirizzi Modbus e le mappe TCP siano corretti e che i valori attesi siano raggiunti. Per maggiori dettagli consulta la documentazione ufficiale Siemens documentazione Siemens.
Errori Comuni Modbus TCP
Un errore comune è il modulo TCP client busy senza codici di errore. Questo può essere causato da una configurazione errata delle mappe TCP o da un problema di comunicazione fisica. Un altro errore frequente è la mancanza di chiarezza sui registri Modbus da utilizzare. Assicurarsi di leggere il registro corretto e di gestire correttamente i valori restituiti.
Domande Frequenti su Modbus TCP
Qual è il registro Modbus corretto da leggere?
Il registro Modbus corretto dipende dal dispositivo specifico e dalla sua configurazione. Assicurarsi di consultare la documentazione del dispositivo per determinare il registro corretto.
Come gestire più identificativi TCP?
È necessario cambiare MB_UNIT_ID nel database di istanza del MB_CLIENT ogni volta che si passa da una lettura all’altra. È possibile creare un blocco in SCL per gestire automaticamente questo cambiamento.
Perché il modulo TCP client rimane busy?
Questo può essere causato da una configurazione errata delle mappe TCP o da un problema di comunicazione fisica. Verificare la configurazione e la connessione fisica.
Conclusione
La configurazione Modbus TCP con il VMU-C EM di GAVAZZI richiede una corretta parametrizzazione delle mappe TCP e degli indirizzi Modbus. Seguire i passaggi sopra descritti per risolvere i problemi comuni e garantire una comunicazione fluida. Per ulteriori dettagli, consultare il forum PLC o la risorsa correlata forum PLC.
Approfondimento Tecnico Avanzato
L’approfondimento tecnico avanzato del VMU-C EM di GAVAZZI richiede una comprensione dettagliata del funzionamento interno del PLC/TIA e dei registri coinvolti nella comunicazione Modbus TCP. Il VMU-C EM è progettato per raccogliere dati tramite RS485 e renderli disponibili in Modbus TCP, ma la configurazione può essere complessa. Il dispositivo utilizza due porte RS485 per la comunicazione Modbus, e la documentazione spesso non fornisce dettagli chiari sui registri e codici funzione da utilizzare. Per esempio, il registro Modbus RTU 40001 potrebbe essere utilizzato per leggere dati specifici, mentre il registro 300001 potrebbe essere utilizzato per altre funzioni. La mappatura delle variabili è generata automaticamente, ma è essenziale comprendere come gestire queste mappe per garantire una comunicazione fluida tra il VMU-C EM e i vari dispositivi collegati. Inoltre, è importante conoscere il funzionamento interno del PLC/TIA per ottimizzare la configurazione e migliorare l’efficienza della comunicazione Modbus TCP.
Un’altra considerazione tecnica è l’utilizzo di registri multipli e codici funzione specifici per gestire più dispositivi collegati. Ad esempio, quando si ha più di un dispositivo collegato, è necessario gestire più identificativi TCP. Questo può essere fatto modificando il MB_UNIT_ID nel database di istanza del MB_CLIENT, ma è essenziale ricordare di disconnettere e riconnettere tutte le volte che si cambia ID TCP per evitare conflitti di comunicazione. La comprensione approfondita di questi dettagli tecnici può aiutare a prevenire errori comuni e migliorare l’efficienza della configurazione Modbus TCP.
Metodi Alternativi e Varianti
Esistono diversi approcci alternativi per risolvere problemi di configurazione Modbus TCP con il VMU-C EM di GAVAZZI. Uno dei metodi più comuni è l’utilizzo di un simulatore Modbus per testare la comunicazione senza il rischio di danneggiare i dispositivi fisici. Questo approccio è utile per capire quali registri leggere e cosa contengono, ma può essere limitato se non si conosce la configurazione esatta dei registri Modbus. Un altro metodo alternativo è l’utilizzo di un gateway Modbus per tradurre la comunicazione Modbus TCP in RS485, il che può essere utile se si ha già una rete RS485 configurata. Tuttavia, questo approccio può aggiungere complessità e latenza alla comunicazione.
Un altro approccio è l’utilizzo di un software di configurazione Modbus fornito dal produttore per configurare direttamente il VMU-C EM. Questo metodo può essere più intuitivo, ma potrebbe richiedere una comprensione più profonda della configurazione Modbus TCP. Ogni metodo ha i suoi pro e contro, e la scelta del metodo dipende dalle specifiche esigenze del progetto e dalla familiarità con gli strumenti disponibili. La scelta del metodo alternativo giusto può semplificare il processo di configurazione e migliorare l’efficienza della comunicazione Modbus TCP.
Stanco di andare a tentativi?
Se errori come questo ti mandano in panico, probabilmente ti mancano le basi solide della programmazione PLC.
Smetti di risolvere problemi uno alla volta e impara il metodo giusto dall’inizio.

“Semplifica, automatizza, sorridi: il mantra del programmatore zen.”
Dott. Strongoli Alessandro
Programmatore
CEO IO PROGRAMMO srl







