In particolar modo vedremo:
Il Problema
Un tecnico PLC si è trovato di fronte a un problema di curva non lineare quando ha cercato di convertire un valore da 0.0 a 22.0 in una scala analogica da 0 a 32767 tramite un S7-1200. Nonostante l’uso di funzioni Normal_X e Scale_X, la conversione risultava irregolare.
Causa Tecnica Curva Non Lineare
Tutti i DAC hanno errori di non linearità. Nei PLC Siemens, il valore digitale corrispondente al 100% del valore del canale analogico non è 32767, ma 27648 (6C00 Hex). Questo può causare distorsioni nella conversione.
Soluzione Definitiva per Curva Non Lineare
Passo 1: Creazione della Tabella di Conversione
Per risolvere il problema, è necessario creare una tabella di conversione con coppie di valori reali e corrispondenti tensioni di ingresso. Considerando i punti lineari tra due valori, è possibile risolvere l’equazione della retta tra questi.
Passo 2: Implementazione della Tabella
Utilizzare la tabella creata per mappare i valori HMI ai valori corretti per l’uscita analogica. Questo può essere fatto usando una proporzione semplice: analogica := (.
Codice e Configurazione Curva Non Lineare
analogica := ( / 22.0) * 32768.0;
Verifica e Test della Soluzione
Per verificare la soluzione, controllare che i valori di uscita corrispondano esattamente a quelli attesi. Per maggiori dettagli consulta la documentazione ufficiale Siemens.
Errori Comuni Curva Non Lineare
Ecco alcuni errori comuni e le loro soluzioni:
- Errore di non linearità: Verificare la tabella di conversione e correggere eventuali distorsioni.
- Valori fuori scala: Assicurarsi che i valori HMI siano all’interno del range 0.0-22.0.
- Problemi di comunicazione: Verificare la configurazione di Profinet e la connessione dei dispositivi.
Domande Frequenti su Curva Non Lineare
Ecco alcune domande frequenti:
- Come posso correggere la curva non lineare? Creando una tabella di conversione e applicando una proporzione semplice.
- Qual è il valore digitale corretto per il 100% del canale analogico? 27648 (6C00 Hex).
- Come posso verificare la soluzione? Controllando che i valori di uscita corrispondano esattamente a quelli attesi.
Conclusione
Risolvere la curva non lineare su S7-1200 richiede una tabella di conversione accurata e l’applicazione di una proporzione semplice. Per ulteriori risorse, consulta il forum PLC ufficiale o la documentazione Siemens.
Approfondimento Tecnico Avanzato
Nell’ambito della programmazione PLC, la non linearità dei DAC (Digital-to-Analog Converter) è un fenomeno noto e ben documentato. Nei PLC Siemens S7-1200, il funzionamento interno è complesso e coinvolge diversi registri e funzioni per garantire una conversione precisa. La non linearità è principalmente dovuta alla differenza tra il valore digitale massimo (27648 in Hex, equivalente a 32768 in decimale) e il valore fisico corrispondente. Questo implica che per ottenere una conversione lineare tra un valore digitale e un valore analogico, è necessario un aggiustamento specifico. I registri coinvolti includono i registri di input/output (I/O), i registri di memoria (MEM) e i registri di stato (STATUS). Inoltre, la TIA (Totally Integrated Automation) offre strumenti avanzati per la gestione dei dati e la configurazione dei DAC, consentendo una maggiore precisione nella conversione.
Per comprendere meglio il funzionamento, è utile considerare l’equazione che descrive la conversione lineare: y = mx + b, dove ‘m’ rappresenta il coefficiente di pendenza e ‘b’ l’intercetta. Nei PLC Siemens, tuttavia, è necessario adattare questa equazione per tenere conto della non linearità. Ad esempio, per una conversione da un valore digitale a un valore analogico, è necessario calcolare la pendenza ‘m’ considerando il valore di offset e la scala di conversione. Questo processo richiede una comprensione approfondita dei registri di configurazione e delle funzioni di conversione disponibili nel PLC.
Metodi Alternativi e Varianti
Per affrontare il problema della curva non lineare nella conversione da valori digitali a valori analogici, esistono diverse strategie. Una prima opzione è l’utilizzo di una tabella di conversione. Questa tecnica prevede la creazione di una tabella con coppie di valori reali e corrispondenti valori analogici. Utilizzando questa tabella, è possibile mappare ogni valore digitale a un valore analogico corretto, compensando la non linearità. Un altro approccio è l’uso di funzioni matematiche specifiche, come la funzione di proporzionalità diretta, che può essere implementata direttamente nel codice PLC. Questo metodo richiede una buona conoscenza delle funzioni matematiche e della loro applicazione nel contesto del PLC. Infine, un metodo alternativo è l’utilizzo di algoritmi di compensazione che adattano dinamicamente la conversione in base ai valori di input, offrendo una soluzione più complessa ma flessibile.
Ognuno di questi metodi ha i suoi pro e contro. La tabella di conversione è semplice da implementare ma richiede un’ampia quantità di dati di riferimento. Le funzioni matematiche offrono una soluzione più pulita e diretta ma possono essere limitate in termini di flessibilità. Gli algoritmi di compensazione, d’altra parte, forniscono una soluzione personalizzabile ma richiedono un maggiore sforzo di programmazione e una buona comprensione delle dinamiche del sistema.
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


