In particolar modo vedremo:
Il Problema
Buonasera a tutti, è qualche ora che cerco di stabilire (la prima volta per me) la comunicazione tramite protocollo TCP/IP tra un PLC S7-1200 e una stampante (in questo caso) ZD420D della Zebra Technology. Fin da subito ero indeciso su quale istruzione fosse più corretto utilizzare (TCON e TSEND, oppure TSEND_C che se non ho capito male fa “entrambe le cose” in una volta sola) ma con risultato negativo; per quanto riguarda il mio device è settato correttamente su TCP/IP con indirizzo IP “192.168.1.50” e la sua porta default “9100”. Quello che devo fare nel caso specifico è inviare una serie di stringhe alla stampante tramite ethernet, nonché la stessa cosa che prima facevo di già utilizzando l’istruzione SEND_PTP con un modulo aggiunto CM1241 per comunicazione seriale. Senza andare nello specifico vorrei chiedere quale sia l’istruzione più adatta per fare ciò e per avere anche solo una risposta dal PLC se è vero che sto comunicando con il device e come farlo, come inviare dati e anche come riceverli (dovrei comunicare con un sensore presenza etichetta incorporato nella stampante con degli appositi comandi che invio tramite stringhe con contenuto ZPL). Vi ringrazio in anticipo per il vostro aiuto e vi lascio qualche screenshot in allegato. Ciao
Causa Tecnica TCP/IP
Per stabilire una comunicazione TCP/IP tra un PLC S7-1200 e una stampante, è necessario utilizzare le istruzioni TCONN per stabilire la connessione e TSEND e TRCV per inviare e ricevere dati. Il PLC deve essere configurato con l’indirizzo IP e la porta della stampante, mentre la stampante deve essere impostata per accettare connessioni TCP/IP.
Soluzione Definitiva per s7-1200 tcp/ip comunicazione stampante
Step 1: Configurare il PLC S7-1200
Innanzitutto, configurare il PLC S7-1200 con l’indirizzo IP della stampante e la porta TCP/IP corretta. Questo può essere fatto tramite il TIA Portal.
Step 2: Stabilire la Connessione
Utilizzare l’istruzione TCONN per stabilire la connessione TCP/IP con la stampante. Assicurarsi che l’indirizzo IP e la porta siano corretti.
Step 3: Inviare Dati alla Stampante
Una volta stabilita la connessione, utilizzare l’istruzione TSEND per inviare dati alla stampante. Assicurarsi di formattare correttamente le stringhe di comando ZPL.
Step 4: Ricevere Risposte dal PLC
Utilizzare l’istruzione TRCV per ricevere risposte dalla stampante. Questo può essere usato per verificare se la comunicazione è stata corretta.
Codice e Configurazione s7-1200 TCP/IP
CALL 'TCONN', '192.168.1.50', 9100
CALL 'TSEND', 'ZPL Comando'
CALL 'TRCV'
Verifica e Test della Soluzione
Per verificare la soluzione, controllare che il PLC e la stampante si comunichino correttamente. Utilizzare strumenti di diagnostica per verificare la connessione e il flusso dei dati. Per maggiori dettagli consulta la documentazione ufficiale Siemens.
Errori Comuni s7-1200 tcp/ip comunicazione stampante
1. Indirizzo IP errato
2. Porta TCP/IP non configurata
3. Problemi di rete
4. Istruzioni ZPL non corrette
5. Connessione non stabilita
Domande Frequenti su s7-1200 tcp/ip comunicazione stampante
Domanda 1: Come posso verificare la connessione TCP/IP?
Risposta: Utilizzare l’istruzione TRCV per ricevere risposte dalla stampante e verificare il flusso dei dati.
Domanda 2: Quali sono gli indirizzi IP e le porte standard per la comunicazione TCP/IP?
Risposta: Assicurarsi che l’indirizzo IP e la porta siano impostati correttamente sul PLC e sulla stampante.
Domanda 3: Come posso risolvere gli errori di comunicazione TCP/IP?
Risposta: Verificare l’indirizzo IP, la porta, la configurazione della rete e le istruzioni ZPL.
Conclusione
La comunicazione TCP/IP tra un PLC S7-1200 e una stampante può essere stabilita seguendo i passaggi sopra descritti. Assicurarsi di utilizzare le istruzioni TCONN, TSEND e TRCV correttamente e verificare la configurazione della rete. Per ulteriori risorse, consultare il forum PLC ufficiale.
Approfondimento Tecnico Avanzato
Nell’ambito della comunicazione TCP/IP tra un PLC S7-1200 e una stampante, è fondamentale comprendere il funzionamento interno del PLC tramite il software TIA (Totally Integrated Automation). Quando si tratta di stabilire una connessione TCP/IP, il PLC utilizza istruzioni come TCON per stabilire la connessione e TSEND per l’invio dei dati. I registri coinvolti in questo processo includono variabili di stato come ‘TCON_STATUS’ e ‘TSEND_STATUS’, che monitorano rispettivamente lo stato della connessione e la riuscita dell’invio dei dati. È essenziale configurare correttamente l’indirizzo IP e la porta del PLC per garantire una comunicazione fluida. Inoltre, è possibile utilizzare registri di memoria come ‘TX_BUFFER’ per memorizzare i dati da inviare alla stampante, consentendo un’interazione più dinamica e gestibile.
Un esempio pratico potrebbe essere l’utilizzo di un registro di memoria per memorizzare una stringa di comando ZPL, che viene poi inviata alla stampante tramite l’istruzione TSEND. Questo approccio permette una maggiore flessibilità nella gestione dei comandi e una migliore traccia degli eventi di comunicazione. La comprensione approfondita di questi registri e istruzioni è cruciale per garantire un’implementazione efficace della comunicazione TCP/IP tra il PLC e la stampante.
Metodi Alternativi e Varianti
Per risolvere il problema della comunicazione TCP/IP tra un PLC S7-1200 e una stampante, esistono diverse strade che possono essere percorse. Oltre all’utilizzo delle istruzioni TCON e TSEND, è possibile adottare approcci alternativi come l’uso di librerie di comunicazione di terze parti, che offrono funzionalità aggiuntive e una maggiore flessibilità. Ad esempio, l’integrazione con librerie come ‘OpenSSL’ può fornire una sicurezza di comunicazione superiore, mentre soluzioni basate su ‘MQTT’ permettono una comunicazione più leggera e adatta a reti con bassa larghezza di banda. Pro: queste varianti offrono maggiore robustezza e possibilità di personalizzazione; Contro: possono richiedere una configurazione più complessa e potrebbero avere un costo aggiuntivo. Un’altra variante è l’uso di moduli di comunicazione aggiuntivi, come il ‘CP1612-1’, che può semplificare l’implementazione ma comporta un costo hardware aggiuntivo.
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







