Blog

Mostra tutte le news
modbus logo

Questo articolo descrive i passaggi per risolvere diversi problemi di comunicazione Modbus TCP con l'unità di controllo Kolver del K-DUCER, sebbene i metodi siano applicabili in generale a qualsiasi dispositivo Modbus TCP. I metodi di risoluzione dei problemi sono elencati in ordine crescente di complessità


Mancata creazione di una connessione Modbus TCP

Verifica delle impostazioni generali

1. Verificare che il protocollo sul K-DUCER sia impostato su “Modbus TCP” (se si utilizza un protocollo combinato contenente “MB TCP”, passare temporaneamente a “Modbus TCP” singolo durante la risoluzione del problema e tornare al protocollo combinato una volta risolto).

2. Assicurarsi che il l'unità di controllo del K-DUCER sia sulla schermata di lavoro principale, al di fuori di tutti i menu, quando si tenta la connessione.

3. Abilitare l’opzione “LOCK IF NOT CONNECTED” nel menu General Settings dell'unità di controllo KDU, quindi tornare alla schermata di lavoro principale. Apparirà un messaggio popup bloccante se non c’è una connessione Modbus TCP attiva con il K-DUCER.

4. Il popup del punto 3 appare? Se sì, continuare. 
Se no, significa che esiste già una connessione Modbus TCP attiva verso l'unità di controllo K-DUCER. Le unità KDU-1A, KDU-NT e K-TESTER possono connettersi a un solo client Modbus TCP alla volta. Verificare se altri dispositivi stanno aprendo una connessione Modbus TCP verso l'unità di controllo Kolver.

Nota: i software Kolver K-Link, K-Graph, K-Expand e K-Torque-Analyzer usano tutti una connessione Modbus TCP per comunicare con il dispositivo Kolver. Chiudere tali programmi se attivi. 
K-Link è un servizio Windows: se installato, metterlo in pausa dall’app Servizi di Windows o disinstallarlo.
In alternativa, modificare l’indirizzo IP del controllore Kolver per impedire ad altri dispositivi di “rubare” la connessione.

Ping

5. Il dispositivo Kolver risponde al ping? Su un PC, aprire il prompt dei comandi (CMD) e digitare: nginxCopiaModificaping 192.168.100.101 sostituendo 192.168.100.101 con l’indirizzo IP del tuo dispositivo Kolver. Se il risultato non mostra “reply from 192.168.100.101 significa che il dispositivo non risponde al ping. Questo di solito indica che le impostazioni IP non sono configurate correttamente né sul dispositivo Kolver né sul client Modbus TCP. Vedi la sezione su come configurare correttamente un indirizzo IP.

modbus_Immagine1?>

Test della connessione con K-Expand o altri software Kolver

6. Se il dispositivo Kolver risponde al ping e appare il messaggio di errore “LOCK IF NOT CONNECTED” dal punto 3, prova a connetterti con uno dei software gratuiti Kolver per PC, come K-Graph (KDU-1A e KDU-NT), K-Torque-Analyzer (K-TESTER). Se la connessione fallisce, potrebbe esserci una configurazione errata dell’IP o un firewall che blocca la connessione. In questo caso, consultare il responsabile della rete.

Verifica della configurazione dell’indirizzo IP

7. Connessione diretta tra PC e K-DUCER (o tramite switch)

Impostare l’IP del PC su statico (manuale)
Configurare l’IP del Kolver in modo che:
  • usi la stessa subnet mask del PC
  • abbia gli stessi primi tre gruppi di numeri e l’ultimo gruppo diverso
Se la rete usa un gateway, inserirlo nelle impostazioni IP del Kolver; altrimenti impostare 0.0.0.0 come gateway.

Esempio con IP statici:
modbus_Immagine2?>

8. Connessione tramite router o server DHCPSe PC e K-DUCER sono connessi a una rete LAN con router o DHCP:
  • Il router deve riservare un intervallo di indirizzi per IP statici, con almeno un IP per ogni K-DUCER.
  • Solo per KDU-1A v38 (o altri modelli con DHCP): è possibile attivare l’assegnazione automatica dell’IP, ma bisogna prenotare un IP fisso sul DHCP per ogni KDU.
  • Configurare il PC in DHCP o manuale (statico).
    • Se manuale, usare un IP fuori dal range DHCP del router.

  • Configurare l’IP del Kolver con:
    • stessa subnet mask del PC

    • indirizzo fuori dal range DHCP

    • primi tre gruppi di numeri uguali al range DHCP, ultimo gruppo diverso

  • Se la rete usa un gateway, inserirlo; altrimenti 0.0.0.0.

Esempio con IP dinamici:
modbus_Immagine3?>


9. Ancora nessuna connessione con software Kolver?

Probabile presenza di firewall o di un elemento di rete che blocca la connessione. Consultare l’IT.


10. Connessione con software Kolver OK ma non con PLC o altro dispositivo

Segui le procedure di diagnostica per quel dispositivo e/o vedi la sezione Wireshark.
Assicurati che:
  • Porta TCP 502 (standard Modbus TCP)
  • IP del dispositivo Kolver corretto

11. Connessione del PLC solo momentanea

Possibili cause:
  1. Il PLC apre, scambia dati, poi chiude: trovare un’impostazione per mantenere la connessione aperta.
  2. Il PLC riceve un’eccezione Modbus e chiude: vedere la sezione errori.



Messaggi di eccezione Modbus

Server Busy Exception (codice 06)
→ accade se:
  • il PLC scrive su un registro mentre il motore avvita → soluzione: attendere la fine dell'avvitatura
  • qualcuno naviga nei menu di configurazione del Kolver → soluzione: tornare alla schermata principale

Illegal data address o Illegal data value
→ accade se:
  • Il PLC legge/scrive un registro inesistente → soluzione: controllare la Modbus Map corretta per il modello e versione del Kolver
  • Possibile mismatch tra Modbus Map e firmware → soluzione: contattare Kolver per aggiornamento gratuito o mappa compatibile



Altri problemi

Per risolvere altri tipi di problemi, può essere necessario utilizzare un software di analisi del traffico di rete, come Wireshark.

Wireshark è un analizzatore di protocolli di rete gratuito e open-source, in grado di catturare e visualizzare il traffico in tempo reale. Nel contesto industriale è uno strumento prezioso, poiché permette di vedere esattamente cosa accade sulla rete (ogni richiesta, risposta ed errore) consentendo di diagnosticare problemi che altrimenti resterebbero invisibili.

Conoscere almeno le funzionalità di base di Wireshark (o strumenti simili) rappresenta una competenza molto utile nel mondo dell’automazione industriale.

Anche se non si dispone del tempo o delle competenze per analizzare direttamente i pacchetti con Wireshark, registrare e condividere il file di cattura con il team tecnico di Kolver aiuterà notevolmente nell’individuazione della causa principale del problema.


Perché utilizzare Wireshark con Modbus TCP?

In ambienti industriali, Wireshark permette di:

  • Verificare la comunicazione tra dispositivi client e server
  • Identificare problemi di rete come pacchetti persi o timeout
  • Decodificare i messaggi Modbus per visualizzare i codici funzione e i dati reali
  • Individuare risposte di errore che potrebbero non essere riportate correttamente dal PLC
  • Analizzare problematiche di temporizzazione tra richieste e risposte


Catturare traffico Modbus TCP

1. Avviare una cattura

  • Selezionare l’interfaccia di rete collegata alla rete industriale
  • Cliccare su Start per avviare la registrazione dei pacchetti

2. Filtrare per indirizzo IP

Per concentrarsi sulla comunicazione del K-DUCER, utilizzare filtri di visualizzazione:

ip.src == 192.168.1.100 or ip.dst == 192.168.1.100

Sostituire 192.168.1.100 con l’indirizzo IP effettivo del K-DUCER.

Ricordarsi di interrompere la cattura al termine per poter salvare i dati acquisiti (File > Save As).

Catturare traffico tra due dispositivi esterni

Se il PC che esegue Wireshark non è quello che comunica direttamente con il controllore Kolver, collegarsi semplicemente alla stessa rete non sarà sufficiente: il traffico tra PLC e KDU non verrà inoltrato al PC.

In questo caso, è necessario un switch Ethernet gestito che consenta il mirroring del traffico. Un modello economico è il Netgear GS105E.

Configurazione:

  1. Collegare il cavo attualmente connesso al KDU allo switch Netgear
  2. Collegare un nuovo cavo dallo switch al controllore KDU
  3. Collegare un cavo dal PC a una porta configurata per il mirroring sullo switch GS105E (seguire il manuale del dispositivo)

In questo modo sarà possibile visualizzare tutto il traffico da e verso il KDU con Wireshark.


Riconoscere i problemi comuni Modbus TCP in Wireshark

Eccezione “Server Busy”

Verificare le risposte Modbus con codice di eccezione 06:

  • Nei dettagli del pacchetto, espandere: Modbus → Exception Code
  • Codice 06 = “Server Device Busy”

Analisi tipica in Wireshark

Sequenza standard di richieste/risposte Modbus:

  • Client → Server: Read Holding Registers (Function Code 03)
  • Server → Client: Risposta con dati oppure risposta di eccezione

Codici di eccezione comuni:
→ 01: Illegal Function
→ 02: Illegal Data Address
→ 03: Illegal Data Value
→ 06: Server Device Busy


Analisi dei tempi

La colonna “Time” in Wireshark aiuta a identificare:

  • Ritardi: tempi lunghi tra richiesta e risposta
  • Timeout: richieste senza risposta
  • Congestione di rete: pacchetti consegnati in ritardo

Suggerimenti pratici per Modbus con Wireshark

1. Salvare i filtri di cattura:
host 192.168.1.100 and port 502
2. Colorare i pacchetti per evidenziare:
Richieste Modbus (verde)
Risposte corrette (blu)
Risposte di eccezione (rosso)

3. Esportare i dati Modbus 
Interrompere la registrazione e salvare i pacchetti (File > Save As)


Best practice per comunicazioni Modbus TCP affidabili

1. Progettazione della rete
→ Utilizzare reti Ethernet industriali dedicate quando possibile
→ Segmentare correttamente la rete
→ Preferire switch gestiti per applicazioni critiche


2. Gestione degli indirizzi IP
→ 
Documentare tutti gli indirizzi dei dispositivi
→ Usare IP statici per i dispositivi industriali
→ Adottare uno schema di indirizzamento chiaro

3. Gestione degli errori
→ 
Implementare logiche di retry per errori temporanei
→ Registrare i fallimenti di comunicazione per l’analisi
→ Impostare valori di timeout appropriati

4. Ottimizzazione delle prestazioni
→ Leggere più registri con un’unica richiesta quando possibile
→ Utilizzare frequenze di polling adeguate: inferiori a 50ms raramente sono utili con un controllore di coppia intelligente, poiché gli algoritmi di controllo motore risiedono già all’interno del controllore. In caso di dubbio, iniziare da 100ms.
→ Attendere sempre la risposta Modbus prima di inviare una nuova richiesta. I dispositivi Kolver mettono in coda più richieste, ma nella pratica raramente è necessario.



La guida completa di Wireshark è disponibile al link: https://www.wireshark.org/docs/wsug_html_chunked/ 
Per qualunque quesito, il nostro team è sempre a disposizione.