In particolar modo vedremo:
Il Problema
Un tecnico PLC si è trovato a dover confrontare tre valori di pressione e memorizzare il valore più alto per poi usarlo come riferimento. Inizialmente pensava di comparare i primi due valori e fare passare il maggiore e poi compararlo con il terzo. La sfida è stata quella di eseguire questa operazione in KOP su un S7-1200.
Confronto Tre Valori di Pressione: Il Problema nel Dettaglio
Il problema specifico è la necessità di confrontare tre valori di pressione e identificare il più alto in un sistema S7-1200. Questo richiede una logica di confronto che può essere implementata in diversi modi, ma la scelta del linguaggio di programmazione può influenzare la leggibilità e l’efficienza.
Causa Tecnica Confronto Valori
La causa tecnica di questo problema è la mancanza di una funzione di confronto diretto per tre valori in KOP. In SCL, questo sarebbe più semplice, ma KOP richiede una struttura di programmazione diversa.
Soluzione Definitiva per Confronto Valori
Passo 1: Creazione del Funzionamento
Crea un Funzionamento (FC) che accetti tre valori di pressione come input. Questo passaggio è fondamentale per preparare i dati.
Passo 2: Implementazione del Confronto
Utilizza una struttura sequenziale per confrontare i valori. Il primo confronto è tra il primo e il secondo valore. Il risultato viene confrontato con il terzo valore.
Passo 3: Memorizzazione del Valore Più Alto
Salva il valore più alto in una variabile di output. Questo valore sarà poi utilizzato come riferimento.
Passo 4: Verifica della Logica
Verifica la logica del confronto per assicurarti che funzioni correttamente su diversi set di dati.
Passo 5: Test e Debug
Esegui test approfonditi per identificare e correggere eventuali errori nella logica di confronto.
Passo 6: Implementazione in KOP
Una volta verificata la logica, implementala nel linguaggio KOP del S7-1200.
Codice e Configurazione Confronto Valori
FC 1 VAR_IN IN_1: REAL; IN_2: REAL; IN_3: REAL; VAR_OUT OUT: REAL; END_VAR IF IN_1 > IN_2 THEN IF IN_1 > IN_3 THEN OUT := IN_1 ELSE OUT := IN_3 END_IF ELSE IF IN_2 > IN_3 THEN OUT := IN_2 ELSE OUT := IN_3 END_IF END_IF
Verifica e Test della Soluzione
Esegui una checklist dettagliata per verificare che il confronto dei valori funzioni correttamente. Per maggiori dettagli consulta la documentazione ufficiale Siemens.
Errori Comuni Confronto Valori
Ecco alcuni errori comuni nel confronto dei valori di pressione su S7-1200: errore di confronto logico, valori di input errati, configurazione errata del FC.
Domande Frequenti su Confronto Valori
Domanda 1: Come posso correggere un errore di confronto logico?
Risposta: Verifica la struttura sequenziale e assicurati che i confronti siano corretti.
Domanda 2: Perché i valori di input sono errati?
Risposta: Controlla la correttezza dei dati di input e la loro assegnazione.
Domanda 3: Come configurare correttamente il Funzionamento?
Risposta: Segui le istruzioni del manuale TIA Portal per la configurazione del FC.
Conclusione
La soluzione per il confronto di tre valori di pressione su S7-1200 è stata implementata con successo. Segui le best practice per mantenere la leggibilità e l’efficienza del codice. Per ulteriori risorse, consulta il forum PLC.
Approfondimento Tecnico Avanzato
Per affrontare il confronto tra tre valori di pressione in un sistema S7-1200, è essenziale comprendere il funzionamento interno del PLC e i registri coinvolti. Il KOP (Karrefeld Operator Programming) utilizza un set di istruzioni che si differenziano da quelle SCL (Structured Control Language). Quando si confrontano tre valori, è necessario impiegare una struttura di programmazione avanzata che gestisca la logica di confronto. In KOP, si utilizzano istruzioni come IF, THEN, ELSE per creare una sequenza di comparazioni. Ad esempio, per confrontare tre valori di pressione, si può creare una struttura di codice che inizia con il confronto tra il primo e il secondo valore, e poi confronta il risultato con il terzo valore. Questo implica l’utilizzo di registri speciali come DB1.DBX0.0 per memorizzare temporaneamente i valori. La complessità di questa operazione richiede una buona conoscenza della memoria e dell’architettura del PLC per garantire che i registri siano utilizzati in modo efficiente e che la logica di confronto sia corretta.
Un esempio concreto potrebbe essere: IF pressione1 > pressione2 THEN IF pressione1 > pressione3 THEN valore_più_alto = pressione1 ELSE valore_più_alto = pressione3 END_IF ELSE IF pressione2 > pressione3 THEN valore_più_alto = pressione2 ELSE valore_più_alto = pressione3 END_IF END_IF. In questo esempio, ‘pressione1’, ‘pressione2’ e ‘pressione3’ rappresentano i tre valori di pressione da confrontare, mentre ‘valore_più_alto’ è la variabile che memorizzerà il risultato. La struttura di codice sopra descritta è solo un esempio di come gestire il confronto in KOP, e richiede una buona comprensione delle istruzioni e dei registri del PLC.
Metodi Alternativi e Varianti
Esistono diverse metodologie per confrontare tre valori di pressione in un sistema S7-1200, ciascuna con i suoi pro e contro. Oltre al metodo KOP descritto precedentemente, si può considerare l’utilizzo di funzioni blocco (FB) per la gestione del confronto. Le FB offrono una maggiore flessibilità e possono essere riutilizzate in diverse parti del programma. Ad esempio, si può creare una FB che accetta tre valori di pressione come input e restituisce il valore più alto. Questo approccio è particolarmente utile in ambienti di sviluppo più complessi dove la riutilizzabilità del codice è fondamentale.
Un altro metodo alternativo è l’uso di SCL, che offre una sintassi più familiare per chi è abituato a programmare in alto livello. Tuttavia, SCL può risultare meno intuitivo per i manutentori che sono più familiari con KOP. Un esempio di confronto in SCL potrebbe essere: IF pressione1 > pressione2 AND pressione1 > pressione3 THEN valore_più_alto = pressione1 ELSE IF pressione2 > pressione3 THEN valore_più_alto = pressione2 ELSE valore_più_alto = pressione3 END_IF END_IF. Questo metodo è più facile da comprendere per chi è già familiare con le lingue di programmazione ad alto livello, ma potrebbe essere meno intuitivo per chi è più abituato a KOP.
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







