I controllori logici programmabili sono il cuore dell'automazione industriale, dove consentono il controllo e la regolazione precisi di macchine e processi. Offrono flessibilità, affidabilità ed efficienza in numerose applicazioni. È possibile trovare informazioni dettagliate e risposte alle domande più frequenti nella nostra sezione FAQ.
I sistemi elettrici e meccanici sono automatizzati in quasi tutti gli impianti di tecnologia di processo. Il controllo automatico dei componenti in base alla posizione degli interruttori o al trascorrere di un determinato periodo di tempo ne sono un esempio. A volte sono sufficienti semplici collegamenti binari, ma spesso sono necessari controlli di sequenza complessi. Per l'automazione vengono tipicamente utilizzati controllori logici programmabili (PLC).
Un controllore logico programmabile / PLC può essere considerato come un piccolo computer che esegue operazioni in base agli input e alle operazioni. Un PLC è composto almeno da un'unità di elaborazione centrale (CPU) e da moduli di input/output (moduli I/O). I moduli I/O sono solitamente collegati all'unità di elaborazione centrale tramite un bus di sistema, che fornisce loro anche la tensione.
Unità centrale JUMO variTRON 500 con funzione PLC, moduli di ingresso/uscita e pannello web (sul retro)
I PLC sono disponibili in varie versioni, che differiscono in termini di funzionalità e applicazione:
Questi controllori sono integrati in un unico alloggiamento. Contengono tutti i componenti necessari, quali CPU, ingressi/uscite e interfacce di comunicazione. Sono ideali per applicazioni di piccole dimensioni con requisiti di spazio minimi.
Questi sistemi sono costituiti da una CPU centrale e da moduli di ingresso/uscita separati che possono essere aggiunti o rimossi a seconda delle necessità. Offrono flessibilità ed espandibilità per applicazioni più complesse. Ciò include anche i sistemi di automazione della famiglia JUMO variTRON, anche se hanno una gamma di funzioni molto più ampia rispetto ai PLC standard.
Questi controllori sono stati sviluppati appositamente per applicazioni critiche per la sicurezza e soddisfano rigorosi standard di sicurezza. Sono utilizzati in settori in cui la protezione delle persone e degli impianti è una priorità assoluta.
I segnali provenienti da interruttori, sensori, ecc. vengono inoltrati all'unità di elaborazione centrale tramite moduli di ingresso, in modo che siano poi disponibili nel PLC. Esempi di segnali provenienti dall'impianto includono lo stato dei rispettivi interruttori di fine corsa, termostati, monitor di flusso e interruttori di livello, nonché i corrispondenti valori misurati dai sensori di temperatura, pressione o umidità. Il PLC collega i segnali e produce un risultato, che viene messo a disposizione dei moduli di uscita. Ad esempio, i relè vengono utilizzati per attivare elettrovalvole e motori. Di conseguenza, la funzionalità di un PLC è implementata nell'unità di elaborazione centrale, che funge da centro di controllo, per così dire.
Prima dell'introduzione dei PLC, i sistemi di controllo venivano implementati interconnettendo relè e relè temporizzati. Tale controllo richiedeva una quantità significativa di materiale e la funzione poteva essere modificata solo cambiando i circuiti. Inoltre, i sistemi erano soggetti a malfunzionamenti e la risoluzione dei problemi richiedeva molto tempo. Il compito dei primi PLC era quello di sostituire queste reti di relè.
Tutti i segnali di ingresso vengono elaborati ciclicamente da un programma PLC e collegati nel programma. Per la programmazione PLC sono disponibili ambienti di sviluppo come CODESYS, il che significa che i programmi vengono sviluppati in CODESYS e poi trasmessi al PLC.
Un PLC può essere programmato in vari linguaggi di programmazione definiti nella norma IEC 61131-3. Il programmatore può quindi scegliere il linguaggio di programmazione più adatto alle rispettive esigenze.
Il linguaggio di programmazione ladder logic, in uso dagli anni '60, è adatto per sostituire le reti di relè. È il linguaggio di programmazione più antico conosciuto. La sua rappresentazione del programma è simile a quella dei circuiti elettrici.
Immaginate un'applicazione molto semplice in cui un modulo di ingresso acquisisce lo stato di un interruttore di valore limite in un serbatoio e quello di 2 pulsanti. I rispettivi stati sono disponibili nel programma PLC tramite variabili con i nomi “LevelBelowTheLimit”, ‘PushbuttonLeft’ e “PushbuttonRight”. Una pompa è controllata tramite il relè di un modulo di uscita. Nel programma è indicata con il nome “PumpActivated”. La pompa deve essere attivata solo quando entrambi i pulsanti (entrambi, per motivi di sicurezza) sono premuti e il livello del punto è sceso al di sotto. Il semplice programma nel linguaggio di programmazione ladder logic appare come segue in CODESYS:
Beispielprogramm in Kontaktplan
È possibile osservare una struttura simile a quella di uno schema elettrico, composta da interruttori/pulsanti e relè. Una volta creato il programma, questo viene trasferito al PLC e verificato. Successivamente, l'ambiente di sviluppo CODESYS non è più necessario.
Già da tempo, nel linguaggio di programmazione ladder logic erano disponibili elementi di temporizzazione che consentono l'accensione/spegnimento ritardato o l'attivazione dell'uscita per un determinato periodo di tempo dopo l'attivazione. Ad esempio, è disponibile un blocco funzione con la denominazione TON. Esso attiva il suo segnale di uscita solo quando il suo ingresso è attivato per una durata minima. Se, ad esempio, la pompa deve essere attivata quando i pulsanti vengono premuti per un minimo di 5 secondi, il piccolo programma deve essere modificato come segue:
Programma di esempio modificato in logica ladder
I moduli funzionali standard includono anche flip-flop RS, contatori, elementi di temporizzazione (come ritardi di accensione e spegnimento) e rilevatori di fronti. Anche gli operatori matematici fanno parte delle dotazioni di programmazione standard.
Un altro linguaggio molto simile è il diagramma a blocchi funzionali orientato alla rete. In questo linguaggio, il piccolo programma è strutturato come segue:
Esempio di programma nel diagramma a blocchi funzionale
Il CFC (diagramma a funzioni continue) è un ulteriore sviluppo del diagramma a blocchi funzionali che consente di posizionare liberamente gli elementi. Per il resto, il CFC è molto simile nell'aspetto. Il linguaggio di programmazione è molto comune. In esso, il programma si presenta come segue:
Esempio di programma in diagramma di funzione continua
Un linguaggio relativamente poco utilizzato oggi è l'elenco delle istruzioni (IL), molto simile al linguaggio di programmazione assembler. Ogni istruzione in IL si basa principalmente sul caricamento di valori in un accumulatore, che avviene tramite l'istruzione LD. L'operazione corrispondente viene quindi eseguita con il primo parametro dell'accumulatore. Il risultato di questa operazione viene restituito all'accumulatore. Il piccolo programma è strutturato come segue nell'elenco delle istruzioni:
Esempio di programma nell'elenco delle istruzioni
Un altro linguaggio di programmazione è il codice ST (testo strutturato). Il codice ST è un linguaggio di programmazione basato su testo che consente di eseguire compiti di controllo complessi. La sua sintassi è simile a quella del linguaggio di programmazione Pascal. Consente l'uso di variabili, funzioni, loop e istruzioni condizionali. Il codice ST è particolarmente adatto alla programmazione di sequenze di processo complesse e calcoli matematici. Consente una programmazione strutturata e chiara, che facilita la manutenzione e l'ulteriore sviluppo dei programmi di controllo. Per il programma di esempio in codice ST sono necessarie solo 2 righe:
Esempio di programma in testo strutturato
Il linguaggio del diagramma funzionale sequenziale è ideale per implementare i controlli di sequenza. Immaginiamo un impianto di trattamento termico in cui il materiale da trattare viene convogliato all'interno dell'impianto tramite un nastro trasportatore. I primi 3 passaggi sono i seguenti
Nei programmi scritti in diagramma funzionale sequenziale, alcune fasi (ad es. riscaldamento e caricamento) sono collegate tra loro da condizioni di commutazione o transizioni. Le prime 3 fasi (+ BasicPosition) del programma necessarie per l'applicazione di esempio appaiono come segue nel linguaggio del diagramma funzionale sequenziale:
Collegamento delle fasi di processo nel diagramma funzionale sequenziale
È possibile definire programmi per ogni fase, ma questi vengono eseguiti solo quando la fase corrispondente è attiva. L'elaborazione inizia con la fase “BasicPosition”. Per questa fase non è memorizzato alcun programma, quindi non viene eseguita alcuna attività.
Per tutte le fasi successive vengono definiti programmi separati (ad es. in diagramma ladder). Se il pulsante di avvio viene premuto dalla posizione BasicPosition, viene attivata la fase “Heater” in modo che il generatore di calore venga abilitato dal programma memorizzato. La fase rimane attiva fino a quando la temperatura del riscaldatore raggiunge i 200 °C e la fase “Retract” diventa attiva. Il programma nella fase “Retract” abilita il controllo corrispondente per la porta e il motore del nastro.
Di conseguenza, vengono aggiunte ulteriori fasi con transizioni. L'ultima transizione attiva nuovamente la fase “BasicPosition”.