Tempo di lettura: 6 minuti

Il Problema

Un tecnico PLC sta cercando di far comunicare un S7-1200 1215C con un ip camera tramite TCP/HTTP. L’obiettivo è inviare una stringa al PLC per disabilitare l’inserimento di ora e data nel flusso video. Purtroppo, anche osservando con Wireshark, non vede nessun flusso di dati tra il PLC e l’ip camera. Se prova lo stesso progetto fra il PLC e un PC con una sessione di Hyperterminal avviata, la stringa viene ricevuta senza problemi. Il problema potrebbe essere nella formattazione della richiesta o nella creazione della connessione.

Causa Tecnica s7-1200 tcp http non funziona

La comunicazione TCP/HTTP può fallire per diversi motivi. Uno dei problemi più comuni è la formattazione errata della stringa di richiesta HTTP. Inoltre, l’uso di uno switch può impedire la visualizzazione dei pacchetti se non è configurato correttamente. Un derivatore passivo a “T” o un network tap può aiutare a monitorare la comunicazione.

Soluzione Definitiva per s7-1200 tcp http non funziona

Step 1: Verifica la Connessione TCP

Assicurati che la connessione TCP sia stabilita correttamente. Usa l’istruzione TCON per stabilire la connessione e verifica lo stato con TCON.STATUS.

Step 2: Formatta Correttamente la Stringa di Richiesta HTTP

La stringa di richiesta HTTP deve essere formattata correttamente. Esempio corretto: ‘GET /cgi-bin/CGIProxy.fcgi?cmd%3DsetOSDSetting%26isEnableTimeStamp%3D0%26isEnableDevName%3D1%26dispPos%3D0%26isEnableOSDMask%3D0%26usr%3Duser%26pwd%3Dpassword HTTP/1.1\r\n$R$LHost: 192.168.0.11:2000\r\n$R$L$R$L’.

Step 3: Configura Correttamente Wireshark

Se non vedi i pacchetti con Wireshark, usa un derivatore passivo a “T” o un network tap per monitorare la comunicazione. Configura il filtro TCP/IP e HTTP per analizzare i pacchetti.

Step 4: Automatizza la Conversione del Dump Esadecimale

Per automatizzare la conversione del dump esadecimale, usa Notepad++ per trasformare i campi esadecimali in notazione esadecimale. Se sai programmare, crea un’immagine binaria della DB e usa Snap7 per riempirla.

Codice e Configurazione s7-1200 tcp http

CALL 'S7.TCP_SEND_STRING', IN_STRING:='GET /cgi-bin/CGIProxy.fcgi?cmd%3DsetOSDSetting%26isEnableTimeStamp%3D0%26isEnableDevName%3D1%26dispPos%3D0%26isEnableOSDMask%3D0%26usr%3Duser%26pwd%3Dpassword HTTP/1.1\r\n$R$LHost: 192.168.0.11:2000\r\n$R$L$R$L', IN_LEN:=LEN(IN_STRING)

Verifica e Test della Soluzione

Usa Wireshark per verificare la comunicazione TCP/HTTP. Assicurati che il server dell’ip camera risponda con un codice 200 OK. Per maggiori dettagli consulta la documentazione ufficiale Siemens.

Errori Comuni s7-1200 tcp http non funziona

1. Formattazione errata della stringa di richiesta HTTP.\n2. Connessione TCP non stabilita correttamente.\n3. Utilizzo di uno switch che non indirizza i pacchetti correttamente.\n4. Mancanza di un derivatore passivo a “T” per monitorare la comunicazione.

Domande Frequenti su s7-1200 tcp http non funziona

Domanda 1: Come posso verificare se la connessione TCP è stabilita correttamente?\nRisposta: Usa l’istruzione TCON.STATUS per verificare lo stato della connessione.\nDomanda 2: Perché non vedo i pacchetti con Wireshark?\nRisposta: Usa un derivatore passivo a “T” o un network tap per monitorare la comunicazione.\nDomanda 3: Come posso automatizzare la conversione del dump esadecimale?\nRisposta: Usa Notepad++ per trasformare i campi esadecimali in notazione esadecimale.

Conclusione

Risolvere il problema S7-1200 TCP HTTP non funziona richiede una verifica dettagliata della formattazione della stringa di richiesta, della connessione TCP e dell’uso di strumenti di monitoraggio come Wireshark. Per ulteriori risorse, consulta il forum PLC e la documentazione ufficiale Siemens.

Approfondimento Tecnico Avanzato

Nell’ambito della comunicazione PLC S7-1200, la comprensione del funzionamento interno è cruciale per ottimizzare le operazioni. Il PLC S7-1200 utilizza un’architettura basata su un processore centralizzato che gestisce le varie funzioni di input/output, controllo di processo e comunicazione. La comunicazione TCP/HTTP è gestita attraverso il modulo di comunicazione integrato, che si interfaccia con il TIA Portal per configurare e monitorare la connessione. I registri coinvolti nella comunicazione TCP/HTTP includono il registro di stato TCON per la connessione e il registro TSEND per l’invio dei dati. La profonda conoscenza di questi registri e del flusso di dati all’interno del PLC può aiutare a diagnosticare e risolvere problemi di comunicazione complessi.

Un esempio pratico è la configurazione di un registro di stato per monitorare lo stato della connessione TCP/HTTP. Se il registro TCON mostra uno stato di connessione errato, è possibile che il registro TSEND non stia inviando correttamente i dati. Inoltre, l’uso di strumenti di diagnostica avanzati come il TIA Portal può fornire ulteriori dettagli sulle operazioni interne del PLC, aiutando a identificare eventuali malfunzionamenti nel flusso di dati.

Metodi Alternativi e Varianti

Per risolvere problemi di comunicazione tra S7-1200 e dispositivi esterni come le telecamere IP, esistono diversi approcci. Un metodo alternativo è l’utilizzo di un server proxy per intermediare le comunicazioni. Questo approccio può semplificare la gestione delle connessioni e può essere particolarmente utile in ambienti complessi con molteplici dispositivi. Un pro di questo metodo è la maggiore flessibilità nella configurazione, mentre un contro potrebbe essere la necessità di gestire un server aggiuntivo.

Un’altra variante è l’uso di moduli di comunicazione esterni, come moduli Ethernet o MODBUS, che possono offrire una maggiore affidabilità e una maggiore facilità di configurazione rispetto alle funzioni di comunicazione integrate. Un pro di questo approccio è la maggiore robustezza, mentre un contro potrebbe essere il costo aggiuntivo e la complessità di integrazione.

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.


Scopri i Corsi TIA Portal per Principianti →

IT EN ES FR HI DE ZH