
Un PLC è un piccolo computer adatto a controllare processi o macchinari industriali: un dispositivo con ingressi e uscite, di solito modulare che possa funzionare ininterrottamente e con grande affidabilità.
I PLC si possono programmare con cinque linguaggi standardizzati ed equivalenti, definiti in un documento della IEC (Sezione 61131-3):
· Ladder Diagram (LD) – sono degli schemi grafici che descrivono il funzionamento del PLC utilizzando contatti e bobine (di relè). Il Ladder è nato per facilitare la migrazione da sistemi cablati a sistemi con PLC: i tecnici dovevano semplicemente replicare gli schemi riportandoli dalla carta al PLC. Purtroppo il linguaggio non è così flessibile e alcune operazioni complesse sono difficili se non impossibili da tradurre.
· Sequential Function Charts (SFC) – Noto anche come Grafcet, organizza il programma in una sequenza di stati e facilita la soluzione di problemi complessi. Un tempo era necessario tradurre l’SFC in Ladder ma oggi molti software di programmazione permettono di lavorare direttamente in questa modalità grafica. Un programma in SFC si può modificare con estrema semplicità.
· Function Block Diagram (FBD) – permette di creare dei blocchi funzione con degli ingressi e delle uscite. Le funzioni si possono poi collegare tra di loro. Può essere più difficile da comprendere e mantenere ma l’approccio è abbastanza logico e intuitivo.
· Structured Text (ST) – è un linguaggio di programmazione ad alto livello ispirato al Pascal. Meno intuitivo per chi non è esperto programmatore ma sicuramente più flessibile: utilizzando il codice è possibile implementare ogni tipo di algoritmo.
· Instruction List (IL) – è un linguaggio a basso livello che dispone di poche e semplici operazioni per muovere dati, svolgere operazioni elementari e fare salti (jump). Tra le varie possibilità è quella più difficile da utilizzare ma l’unica in grado di garantire codice molto compatto e veloce (sempre che sia ben scritto!).
Noi ci concentreremo maggiormente sul Ladder.
Realizziamo un semplice progetto con il PLC di Siemens, attivando un LED collegato ad un'uscita utilizzando un pulsante.
Impariamo ad utilizzare una breadboard per costruire rapidamente dei progetti.
Il linguaggio più noto per la programmazione dei PLC è il linguaggio a contatti anche noto come ladder, LD o KOP. Il linguaggio è definito nelle normative IEC con il nome di LD anche se per il mondo Siemens è indicato con la sigla KOP che sta per KOntakt Plan. Il principio di funzionamento è molto semplice e più che un linguaggio potremmo definirlo un insieme di simboli per creare dei circuiti logici. Gli elementi base sono due:
· contatti aperti o chiusi;
· bobine.
I contatti modificano il flusso di una corrente che attiverà delle bobine (tipo quelle dei relè). Esistono contatti e bobine “semplici” ed altre più particolari che esamineremo in questa lezione e nelle successive.
Questo "approccio" può indurre una certa confusione… un conto è il PLC dotato di ingressi e uscite fisiche e reali in cui scorre la corrente, mentre un conto è il diagramma LD che è solo una definizione del comportamento che vogliamo che il PLC assuma (cioè quali uscite attiverà e come) in seguito ai segnali ricevuti. Invece che scrivere un software con delle istruzioni utilizzeremo dei circuiti virtuali.
Un diagramma LD è delimitato da due lunghe linee anche dette “montanti”: una porta la corrente e l’altra rappresenta la messa a terra (questa seconda linea a volte è omessa per alleggerire il disegno). Tra i due montanti collegheremo una serie di contatti e bobine che formano le “righe”[1] del diagramma. Su ogni riga avremo sempre a sinistra un gruppo di contatti e a destra una bobina. Ogni riga per poter produrre un effetto deve concludersi con una bobina.
I circuiti così composti non devono essere realizzati fisicamente! Sono solo nella memoria del PLC ed è come se li simulassimo al suo interno. Dobbiamo quindi immaginare una corrente “virtuale” che parte in alto, dal montante di sinistra e “scendendo”, attraversa tutte le righe che trova. Se lo stato dei contatti presenti sulla riga lo permette, la corrente raggiunge le bobine poste sulla destra e le “accende”.
il contatto è solo un simbolo che mi dice come interpretare lo stato di un morsetto d’ingresso del PLC. Abbiamo visto che lo stadio d’ingresso del PLC è dotato di una batteria di opto isolatori (o circuiti simili) che si attivano quando applichiamo una tensione. Prima di ogni esecuzione del codice caricato nel PLC, lo stato degli ingressi è trasferito in aree di memoria dedicata. Nei pressi del simbolo troveremo indicato l’indirizzo del bit a cui fa riferimento o eventualmente un nome simbolico, cioè un alias più intuitivo da comprendere. Nell’ambiente di programmazione del PLC troveremo una tabella in cui possiamo associare agli indirizzi un nome a piacere, un po’ come si fa con le variabili nei comuni linguaggi di programmazione.
Quando utilizziamo un contatto dobbiamo sempre abbinarlo a un bit di memoria, così che il contatto possa leggere il suo stato. Un contatto ladder (LD) “normalmente aperto” interpreterà il bit “così com’è”:
· se il bit è a 0, allora il “contatto LD” sarà aperto e quindi non farà passare la corrente virtuale;
· se il bit è a 1, allora il “contatto LD” sarà chiuso e farà passare la corrente virtuale.
Il contatto può essere associato a un qualsiasi bit di memoria, quindi se lo associamo a un bit d’ingresso possiamo dire che stiamo leggendo un ingresso… altrimenti semplicemente interpreterà il bit interno (che Siemens definisce “merker”).
Oltre al contatto normalmente aperto, il ladder prevede anche quello normalmente chiuso che di solito genera una certa confusione, ma se vi è chiaro il concetto che un “contatto ladder” indica solo il modo in cui leggere il bit a cui è associato, non dovrebbero esserci problemi. Il simbolo di questo elemento è del tutto simile a quello del contatto semplice con l’aggiunta di un segmento diagonale che mette in collegamento le due armature. Sopra o sotto il simbolo troveremo indicato l’indirizzo del bit a cui fa riferimento oppure un equivalente alias. Il bit può essere quello di un ingresso, oppure un bit di memoria (merker). Il contatto normalmente chiuso fa passare la corrente virtuale ma se “scatta” ne interrompe il flusso.
Il contatto normalmente chiuso modifica il suo stato coerentemente con il segnale/bit letto:
· bit “basso” → contatto chiuso → passa la corrente virtuale,
· bit “alto” → contatto aperto → non passa la corrente virtuale.
Il suo comportamento è l’opposto rispetto a quello del contatto normalmente aperto.
Una porta OR ha due ingressi e la sua uscita è attiva se almeno uno degli ingressi è nello stato “alto”. Volendola implementare con un PLC utilizzeremo due pulsanti fisici e un LED. Il LED si accenderà se almeno su uno dei due ingressi sarà presente un segnale.
Una porta AND attiverà la sua uscita se contemporaneamente, sui sui due ingressi, sono presenti due segnali.
Bobine e contatti possono essere associati non solo ai bit corrispondenti a ingressi e uscite ma anche ai bit di memoria interni o merker. La cosa ha senso perché se il nostro diagramma deve realizzare una certa funzione logica, avremo sicuramente necessità di utilizzare più livelli prima di calcolare i valori delle uscite e quindi serviranno delle “variabili interne” per poter elaborare i risultati parziali.
Alcuni contatti “speciali” permettono di rilevare i cambiamenti di un segnale, in particolare il momento in cui un segnale passa:
· dallo stato basso a quello alto – fronte di salita o fronte positivo (P),
· dallo stato alto a quello basso – fronte di discesa o fronte negativo (N).
L’azionamento di un pulsante non è mai un evento rapido e pulito perché è un dispositivo meccanico e quindi soggetto a rimbalzi sui contatti che producono un segnale “sporco”. Inoltre un PLC è molto rapido e anche se pensiamo di premere un tasto per poco tempo, in effetti l’azione durerà vari cicli di programma. Se vogliamo che una certa azione si attivi solo in un preciso momento (o durante un solo ciclo) conviene usare un contatto che possa rilevare i fronti di salita e di discesa e questo vale non solo per i pulsanti.
Il linguaggio ladder comprende un contatto speciale che possiamo usare per rilevare i fronti di salita (o positivi) di un segnale. Il simbolo è simile a quello del contatto aperto con una P (come “positivo”) al centro. Troveremo poi indicato il bit d’ingresso e anche un secondo bit (della memoria interna) per poter memorizzare lo stato del segnale e confrontarlo con quello dell’elaborazione precedente.
Il classico esercizio che troviamo in tutti i testi che trattano l’argomento PLC è lo schema ladder per l’avvio e l’arresto con autoritenuta di un motore. Lo schema prevede due pulsanti, uno di start e uno di stop utilizzati per attivare un morsetto d’uscita su cui solitamente è collegato un relè o un teleruttore che avvia un motore. Al posto del motore utilizzeremo un semplice LED. La soluzione che vedremo non è l’unica possibile ma è di sicuro quella più classica. Si definisce “con autoritenuta” perché una volta che attiviamo l’uscita, sarà lei stessa a mantenere attivo il contatto che la alimenta con un concetto di “cella di memoria”. L’effetto ottenuto è che per attivare il dispositivo collegato al morsetto d’uscita del PLC dovremo premere un’istante il tasto di avvio, mentre per fermarlo premeremo brevemente il tasto di arresto.
Complichiamo l'esempio della lezione precedente aggiungendo un controllo "avanti/indietro" per un motore trifase.
In elettronica esiste un componente chiamato Flip Flop SR (Set-Reset), utilizzato per memorizzare un bit… ma possiamo descriverlo in modo più semplice come una specie di contatto “impostabile” tramite i suoi due ingressi. I Flip Flop reali sono costruiti combinando due transistor oppure si trovano all’interno di circuiti integrati ed hanno due ingressi e 1 o 2 uscite:
· ingresso S – imposta il flip flop e attiva la sua uscita Q;
· ingresso R – azzera il flip flop e spegne l’uscita Q;
· uscita Q – cambia il suo stato a seconda delle azioni su S e R;
· uscita Q’ – ha sempre un valore opposto a quello di Q.
Il bit memorizzato, ovviamente, permane fino a che alimentiamo il circuito. Possiamo usare un Flip Flop per realizzare un meccanismo di autoritenuta, collegando agli ingressi S e R possiamo attivare tramite l’uscita Q un relè o un contattore e quindi attivare un motore o una lampada. I PLC offrono la possibilità di utilizzare dei Flip Flop tramite il ladder perché sono componenti utilissimi. Li troviamo sia in forma di contatti “speciali” di tipo S e R ma anche come “blocchi”.
Il vostro editor per il ladder potrebbe includere due tipi speciali di bobine, formate da una coppia di parentesi che racchiudono una So una R
Il PLC S7 offre dei bit speciali che possiamo utilizzare per generare dei segnali temporizzati o per tenere traccia della prima esecuzione del programma.
Un altro tipo di blocchi molto importanti nelle realizzazioni con PLC sono i temporizzatori, essenziali per attivare alcune azioni a tempi prestabiliti o per generare dei segnali con tempistiche precise. I sistemi di sviluppo dei vari produttori prevedono temporizzatori (timer) con differenti nomi. Qui cercherò di presentare un insieme di componenti che si ispirano al mondo Siemens ma che offrono comportamenti di tipo abbastanza comune.
Generatore di impulsi
Il primo temporizzatore che incontriamo è un generatore di impulsi, un componente che può emettere un segnale temporizzato di una durata prefissata, indicata dal programmatore. In questo modo possiamo generare dei segnali con temporizzazioni ben precise o che non durino troppo tempo.
Nell’ambiente di sviluppo di Siemens, il blocco è denominato “TP”. Il timer richiede un segnale d’ingresso (IN) necessario per attivare l’uscita (Q) per il tempo indicato con la linea PT (Preset Time). L’uscita ET (Elapsed Time) presenta un valore numerico che parte da 0 e cresce fino a raggiungere il valore indicato su PT(in secondi, millisecondi o microsecondi). Le linee PT e ET non sono di tipo booleano: la prima riceve un numero che indica la durata dell’impulso, mentre ET fornisce un conteggio, un numero che s’incrementa ad ogni scansione del PLC fino a raggiungere il valore impostato con PT.
Scopriamo come funziona il timer TON, un temporizzatore che si attiva dopo alcuni secondi e TOFF che si attiva alla cessazione di un segnale.
Realizziamo un blink (led che lampeggia) usando dei timer.
Un’altra categoria di blocchi molto utilizzati nei diagrammi ladder sono i contatori che servono per far attivare un’uscita dopo un certo numero di impulsi, utili per contare degli eventi o per far scattare dei meccanismi dopo che sono passati un certo numero di oggetti su un nastro trasportatore. Abbiamo blocchi per il conteggio:
· in avanti o ad incremento,
· all’indietro o a decremento,
· bidirezionali.
In questo esercizio controlliamo l'accensione di alcuni LED con i concetti appresi fino ad ora.
TIA Portal permette di creare dei merker di tipo "ritentivo", cioè che memorizzano l'informazione anche dopo lo spegnimento del dispositivo.
Anche se non si possiede un PLC è possibile utilizzare il simulatore di TIA Portal per sviluppare il codice.
Vediamo in dettaglio alcune caratteristiche elettriche ed elettroniche dei PLC, delle loro uscite e dei loro ingressi.
Per controllare un processo è necessario rilevare dei segnali prelevandoli da sensori che spesso sono di tipo analogico e producono segnali che variano all’interno di un certo intervallo. Oggi esistono sensori per ogni tipo di grandezza fisica: temperatura, umidità, velocità, spostamento, forza, flessione, flusso… I sensori analogici possono essere collegati direttamente a un PLC che può ricevere i due principali tipi di segnale elettrico industriale:
· segnali in tensione – i più comuni variano in un intervallo da 0 a 10 volt, ma anche con valori più ridotti per esempio da 0 a 5 volt;
· segnali in corrente – tipicamente da 4 a 20 mA oppure da 0 a 20 mA.
I segnali in tensione sono più semplici da generare e da trattare ma soggetti a disturbi, interferenze e deperimenti del livello. I sensori devono quindi essere collegati con cavi schermati che non possono essere troppo lunghi (massimo qualche metro).
I segnali in corrente richiedono un’elettronica più complessa e spesso i sensori devono essere collegati utilizzando speciali adattatori, sono però più immuni ai disturbi ed è possibile utilizzare cavi con lunghezze notevoli (anche qualche centinaio di metri).
Generiamo un segnale analogico tra 0 e 10 V e proviamo a leggerlo con il PLC. Sarà necessario dotarsi di un alimentatore esterno regolabile che possa fornire una tensione variabile tra 0 e 10V.
Un ottimo sistema per organizzare il codice e dividere la complessità è quello di utilizzare le funzioni. In TIA Portal possiamo creare delle funzioni semplici (chiamate “FC”), senza stato e delle funzioni con stato, chiamate “blocchi funzionali” (“FB”). Le funzioni “semplici” sono trattate come se fossero dei blocchi di codice indipendenti e non memorizzano nessuna informazione. Il tipico esempio di una funzione di questo tipo è quella che prende due numeri e li somma. Come per tutti gli altri blocchi creati all’interno di TIA Portal potremo decidere che linguaggio utilizzare al loro interno. Una funzione è contraddistinta da:
· un nome univoco;
· un codice di blocco es. “FC1” anch’esso univoco;
· dei parametri d’ingresso semplici (In) e dei parametri modificabili (InOut), il cui valore può essere modificato dalla funzione;
· uno o più valori restituiti che costituiscono il risultato della elaborazione;
· variabili e costanti “interne” utili per elaborare i parametri e produrre un risultato.
Le funzioni appariranno assieme agli altri blocchi di codice e le potremo utilizzare semplicemente trascinandole sul segmento in cui le vogliamo inserire.
Creiamo un Blocco Funzionale, cioè un blocco di codice che può essere richiamato come una funzione ma che può avere anche uno stato "memorizzato". Le funzioni infatti non possono avere "memoria" tra una chiamata e l'altra.
I moderni sistemi di sviluppo per PLC offrono la possibilità di suddividere il codice in più blocchi. Un blocco è un file che raccoglie un gruppo di istruzioni. Fino ad ora abbiamo sempre utilizzato un unico blocco, il blocco “Main OB1” sempre presente in ogni nuovo progetto. Con programmi molto semplici non c’è la necessità di suddividerli in più parti, anzi potrebbe anche essere deleterio perché perderemmo di vista le cose ma al crescere della complessità ha senso suddividere il codice. Possiamo quindi creare più blocchi organizzativi (OB) che saranno richiamati uno dopo l’altro. Con il solo blocco “OB1”, il PLC eseguirà tutto il codice presente al suo interno in un certo tempo (dipendente dalle operazioni che vi abbiamo inserito) e poi tornerà da capo eseguendolo ripetutamente. Il blocco “OB1” è detto “blocco di ciclo” e non è l’unico tipo di blocco che possiamo utilizzare, abbiamo infatti:
· blocchi di avvio (Startup Block);
· blocchi di ciclo (Program Cycle Block);
· blocchi allarme ritardo (Time Delay Interrupt Block);
· blocchi schedulati (Cyclic Interrupt Block);
· blocchi per interruzioni hardware (Hardware Interrupt Block);
· blocchi per la gestione degli errori temporali (Time Error Interrupt Block);
· blocchi per la gestione degli errori diagnostici (Diagnostic Error Interrupt Block).
I blocchi possono essere scritti nel linguaggio che preferiamo. Nel corso del libro abbiamo utilizzato esclusivamente il ladder (KOP) ma quando creiamo un blocco in TIA Portal possiamo scegliere quale linguaggio utilizzare tra KOP, SCL e FUP.Per creare un nuovo blocco cliccheremo sulla voce “Inserisci nuovo blocco” che troveremo nell’albero di navigazione del progetto, nella cartella “Blocchi di programma”
I PLC in genere non sono dotati di un display e nel caso in cui ne abbiano uno, questo è di dimensioni ridotte e consente di visualizzare limitate informazioni. Un display è utile per facilitare le interazioni tra l’utilizzatore e la macchina o il processo e anche per mostrare lo stato di funzionamento, allarmi, segnali, e tutto quello che serve per capire come il sistema funzioni e se lo faccia in modo corretto. Sempre più spesso ci attendiamo delle informazioni complete e comprensibili, magari combinate in un sinottico che dia con un colpo d’occhio un’idea completa. Per questo possiamo collegare al PLC dei pannelli evoluti anche chiamati “display HMI” (Human Machine Interface). Questi pannelli sono spesso dei pc industriali con schermo a colori, spesso touch screen e possono essere programmati con una certa semplicità. La comunicazione tra il PLC e lo schermo avviene solitamente su reti Ethernet e nel caso di Siemens utilizzando il protocollo Profinet, specifico per par comunicare un PLC con il mondo esterno.
Sul display va caricato un programma che si può creare con lo stesso software di programmazione del PLC, dotato di un editor grafico con cui disegnare le schermate, aggiungendo pulsanti, immagini, campi di teso, indicatori, pulsanti…
Per il collegamento di questo tipo di display è necessario predisporre un cavo di rete tra display e PLC. Per la programmazione dovrete collegare il display al PC su cui c’è TIA Portal. È possibile collegare PLC e Display tramite uno switch Ethernet così che poi si possa collegare anche il PC usato per la programmazione senza dover scollegare e ricollegare il tutto. Si può utilizzare un comune switch Ethernet per fare delle prove “a banco” ma per un’installazione definitiva utilizzate uno switch “industriale”: sia Siemens che altri fornitori offrono dei dispositivi adatti che sopportano temperature “estreme” e possono funzionare senza interruzioni e con sicurezza per lunghi periodi di tempo.
Quello che manca al ladder per diventare più efficace è quindi un metodo che gli permetta di risolvere anche i casi più critici ed è per questo che troviamo il grafcet, inizialmente introdotto in Francia negli anni ‘70, e poi aggiunto ai linguaggi standard di programmazione dei PLC. Viene da tutti trattato come un linguaggio anche se è più un metodo strutturato per risolvere dei problemi dividendoli in parti più piccole. Il grafcet o SFC (Sequential Function Chart o Diagramma Funzionale Sequenziale) permette di creare un sistema (o una macchina) a stati, suddividendo comportamenti complessi in tanti piccoli casi più semplici.
Un diagramma SFC richiede una certa formalità nella stesura. Vediamo quali sono gli elementi che lo compongono e come utilizzarli:
· stato,
· arco,
· transizione,
· azione.
L’azione descrive quello che accadrà in uno stato. Uno stato potrà avere associate una o più azioni rappresentate da un piccolo rettangolo in cui troveremo un “qualificatore” e una descrizione. Il qualificatore è una lettera che descrive il tipo di azione mentre la descrizione dell’azione indica o descrive l’effetto in modo discorsivo o preciso (a seconda del dettaglio del diagramma).
Le azioni saranno eseguite solo quando il passo a cui sono collegate è attivo. Possiamo avere vari tipi di azioni che generano diversi tipi di risposte o azioni, richiamando programmi e sottoprogrammi del PLC o proprio generando segnali di controllo che possono anche durare per più di uno stato. In alcuni diagrammi, all’interno del riquadro dell’azione può anche essere riportato il nome della variabile che sarà modificata (una specie di variabile di ritorno).
Non tutti i sistemi di programmazione dei PLC implementano l'SFC che però si può realizzare in Ladder. Vediamo come...
Una panoramica delle azioni SFC con relativa implementazione in Ladder
Proviamo a definire un semplice schema SFC e a tradurlo in Ladder con TIA Portal.
Affrontiamo un secondo esercizio in cui è presente anche una diramazione.
Realizziamo uno schema con un solo pulsante e più stati.
Un’azione “limitata nel tempo” può generare un segnale temporizzato. Entrando nello stato, l’azione si attiverà e durerà un certo tempo “t1”. Il simbolo di questo tipo di azione è riconoscibile dalla lettera “L” posta nel suo riquadro.
L’azione ritardata permette di generare un segnale dopo un certo tempo dall’attivazione dello stato. Il suo simbolo è contraddistinto dalla lettera “D” all’interno del riquadro del qualificatore. L’azione si attiva dopo un certo tempo (t1) dall’ingresso nello stato S10 e termina all’uscita dello stato. Se lo stato non resta attivo per un tempo sufficiente (superiore a t1), l’azione non si attiva.
L’azione impulsiva genera un singolo impulso, cioè si attiva per la durata di un ciclo di elaborazione del PLC. L’impulso si attiva in corrispondenza all’entrata nello stato a cui è associata l’azione. Il simbolo dell’azione impulsiva (pulsed) riporta una “P”. Questo tipo di azione è utile quando sia necessario attivare una certa elaborazione in corrispondenza dell’ingresso in uno stato, senza il rischio che ci siano ripetizioni.
Un’azione può durare per più di uno stato. Per ottenere questo comportamento utilizzeremo due tipi di comandi, il primo (S o Set) che attiverà l’azione e il secondo (R o Reset) che la disattiverà. Questi comandi devono essere associati a due azioni diverse e produrranno i loro effetti non appena il flusso di esecuzione raggiungerà questi stati.
Un azione memorizzata e ritardata permette di attivare un certo comportamento su più stati combinandolo con un timer. A differenza dell’azione S che si attiva immediatamente, l’azione SD (Stored and Delayed) scatta dopo un certo tempo t1 dall’ingresso nello stato a cui è collegata. Per disattivare l’azione è necessario incontrare uno stato con associato il comando di Reset (R).
Questa azione assomiglia apparentemente all’azione DS ma troviamo alcune importanti differenze, in fatti affinché l’azione possa attivarsi è necessario che lo stato a cui è associato il comando DS resti attivo per un certo tempo t1. Nel caso questo non avvenga, l’azione non scatterà. Quando l’azione è scattata, per disattivarla dovremo incontrare uno stato con associato il comando di reset (R).
L’azione memorizzata e limitata (SL o store e limited) si protrae per più stati, fino a che non incontriamo uno stato con il comando di reset ( R). L’azione si attiva non appena incontriamo lo stato a cui è associata a e dura per un periodo di tempo limitato (t1). Se il comando di reset dovesse arrivare prima dello scadere del tempo t1, l’azione sarà disattivata.
L’azione condizionata è contraddistinta dalla lettera “C” posta nel suo simbolo ed è simile ad una azione non stored, solo che l’azione dipende dall’intervento di una variabile esterna. Se la variabile (o condizione) esterna è attiva, allora lo sarà anche l’uscita. L’azione si disattiverà non appena usciremo dall’ stato a cui è associata, anche se la condizione di controllo è ancora attiva.
Il linguaggio SCL è sicuramente il più interessante ed accessibile dopo il ladder, infatti offre una potente espressività e la possibilità di scrivere ogni tipo di programma e quindi di risolvere problemi di ogni tipo. Il linguaggio assomiglia al Pascal a cui s’ispira ed è di tipo testuale. Possiamo creare un nuovo blocco organizzativo di tipo “Program Cycle” assegnando però il linguaggio “SCL” . Il blocco prenderà il primo codice utile dopo al blocco principale OB1 e quindi a partire da OB123. Purtroppo non è possibile modificare il codice del blocco “Main” che resterà di tipo KOP.
In questa lezione creeremo alcune variabili.
Proviamo ad utilizzare le variabili in SCL per identificare un fronte di salita.
Una breve panoramica dei cicli in SCL:
- for
- while
-repeat until
L'SCL è adatto a creare dei blocchi funzione richiamabili in altre parti del programma.
Realizziamo un blink in SCL.
Il linguaggio FUP prevede la scrittura di un programma combinando più blocchi funzionali. Sebbene possa sembrare un metodo semplice, nasconde molte insidie dovute alla difficoltà che si può incontrare nel dover prevedere come si propagheranno i segnali tra i vari blocchi. Gli sviluppi in FUP sono consigliabili per funzioni e blocchi funzionali che non richiedano grandi complessità. Per creare un blocco con questo linguaggio, procedete come di consueto, cliccando sulla voce “inserisci nuovo blocco” e selezionando il linguaggio “FUP”. L’editor che si aprirà vi permetterà di definire, nella parte superiore, delle variabili utilizzando una tabella e di combinare i vari blocchi, graficamente, nella parte inferiore.
Vi presento un PLC a basso costo, più accessibile di altri "famosi" e "blasonati". Questo PLC usa un software gratuito dotato di simulatore così che sia alla portata di tutti apprendere il funzionamento e la programmazione.
In questa lezione programmiamo un circuito di autoritenuta utilizzando il linguaggio LADDER sul plc elsist con l'ambiente logicLab
In questa lezione programmiamo un circuito per relè passo-passo utilizzando il linguaggio LADDER sul plc elsist con l'ambiente logicLab.
In questa lezione programmiamo un circuito per relè passo-passo utilizzando il linguaggio testuale sul plc elsist con l'ambiente logicLab
Grazie per aver partecipato al corso!
Trovate altre risorse sul mio canale YouTube (cercando Paolo Aliverti) o sul mio sito zeppelinmaker (punto) it.
Il mio libro sui PLC è disponibile su Amazon e in libreria.
Un PLC è un piccolo computer adatto a controllare processi o macchinari industriali: un dispositivo con ingressi e uscite, di solito modulare che possa funzionare ininterrottamente e con grande affidabilità.
I PLC sono presenti in ogni azienda che si occupa di produzione e sapere come funzionano può essere di grande aiuto per chi ci lavora e magari si occupa della manutenzione e dell’utilizzo delle macchine e degli impianti. I PLC sono adatti per intervenire all’interno di un'azienda su un processo, un macchinario o un impianto per:
· sviluppare qualcosa di nuovo,
· modificare qualcosa di esistente,
· effettuare delle manutenzioni,
· aggiornare un sistema obsoleto.
In questi casi la scelta dovrebbe cadere naturalmente su un PLC, proprio per le sue peculiari caratteristiche.
Questo corso è quindi dedicato a:
· un tecnico all’interno di un’azienda,
· uno studente,
· un hobbista.
In questo corso trovate delle lezioni sugli elementi fondamentali di questo argomento, necessari per comprendere e iniziare a utilizzare i PLC, magari costruendo i primi semplici circuiti.
Considerata la particolare forma del linguaggio Ladder non sono richieste delle conoscenze di programmazione.
Per poter seguire nel migliore dei modi i contenuti presentati nel libro è consigliabile avere a disposizione un PLC. Io ho acquistato un Siemens S7-1200 CPU 1211 usato a cui ho poi dovuto aggiungere il software di programmazione TIA Portal (a pagamento). Siemens offre degli Starter Kit che includono anche il software con regolare licenza ad un prezzo “abbastanza” accessibile (leggermente inferiore a 500€ e quindi paragonabile all’acquisto di un computer portatile di qualità). Nel libro cercherò di essere più generico possibile e quindi di presentare i contenuti in modo che si possano provare anche con altri PLC. Fortunatamente i linguaggi di programmazione utilizzati sono standard e quindi facilmente adattabili da un modello all’altro. Oltre a Siemens esistono altri produttori di PLC come Schneider, Omron, Mitsubishi che hanno prezzi inferiori. Esistono anche aziende italiane come la Elsist, un’azienda italiana che produce piccoli PLC programmabili con un software gratuito e dotato di simulatore.
Infine è possibile utilizzare anche programmi gratuiti ed open source come OpenPLC che include un simulatore e permette di trasformare un Arduino 2 o un RaspberryPI in un PLC.
Un altro prodotto interessante è il programma EasyPLC prodotto da Nirtec che include un ambiente per la programmazione “virtuale” di un PLC e degli impianti virtuali su cui provarli.
Per realizzare gli esperimenti riportati nel libro è necessario disporre di una dotazione minima di hardware elettronico. Nella maggior parte dei casi saranno sufficienti pochi e semplici componenti che potreste avere già nelle vostre cassettiere: resistori, pulsanti, potenziometri, qualche LED, jumper e una breadboard.