IL LINGUAGGIO MIGLIORE PER COMINCIARE A PROGRAMMARE I PLC

Linguaggi di programmazione PLC

Logica ladder, blocchi FBD, SFC, SCL (testo strutturato); qual’è il linguaggio per PLC migliore per cominciare a programmare?

Benvenuto sul mio sito dedicato al mondo dell’automazione industriale, oggi osserveremo da vicino e confronteremo tre dei linguaggi per plc più apprezzati dai programmatori di tutto il mondo; parleremo infatti del linguaggio ladder, quello a blocchi di funzione, e quello di testo strutturato, tanto amato dai programmatori di computers.

Novità automazione e plc

Quando parliamo di linguaggio di programmazione, ci riferiamo al modo di scrivere le istruzioni, e in alcuni casi anche alle potenzialità che quel particolare linguaggio offre in termini di funzioni disponibili.

Per chi vuole cominciare a programmare i controllori logici programmabili, quasi sempre la strada più consigliata è quella di iniziare con il ladder, dato che risulta abbastanza semplice da osservare.

Ci sono però programmatori che già programmano in altri ambiti, che hanno più familiarità con un modo di scrivere più simile al nostro modo di pensare e parlare, ecco che in questo caso il linguaggio ST (nel mondo Siemens chiamato SCL), diventa molto più semplice da comprendere.

Il linguaggio a blocchi di funzione non si discosta troppo dal ladder, tuttavia, come vedremo nell’esercitazione di oggi, enfatizza molto le combinazioni logiche, con i blocchi di funzione OR, AND, XOR e così via.

Cominciamo a dare un’occhiata al programma ladder che troviamo nella prossima immagine, da questo partiremo per osservare i diversi modi scrivere le stesse istruzioni del plc nei diversi linguaggi.

Linguaggio ladder per PLC

Come vediamo nella figura sopra, sulla prima riga abbiamo inserito una combinazione logica booleana complessa, composta da un contatto aperto, con in parallelo due contatti chiusi. Questa combinazione si esprime come: “Se bit1=1, oppure (bit3 e bit4 valgono 0)”

Poi abbiamo un altro contatto chiuso, che rappresenta un “e bit 2 vale 0”, queste vengono combinate, e successivamente messe in AND con il confronto del valore di intero1 con la costante 10. Quest’ultima funzione è un altro AND.

Il risultato di questo ramo attiva bit10.

Nel ramo successivo abbiamo un temporizzatore che viene attivato da bit5, quindi potremmo dire (se bit 5 vale 1, attiva il temporizzatore), poi quando il timer ha finito di contare, attiva il bit chiamato bit9.

Le linee di programma ladder successive permettono di gestire un indice (intero2), che serve a scorrere il vettore di interi “vettore1”, e a ordinare in senso crescente gli elementi al suo interno.

Per gestire questo indice lo incrementiamo di uno a ogni scansione, e quando raggiunge 5 lo rimettiamo a 1.

L’ultima linea di programma confronta il valore dell’elemento del vettore puntato dall’indice, con il suo successivo, e se necessario, ne scambia i valori utilizzando la variabile d’appoggio.

Bene, ora che abbiamo visto come queste funzioni si scrivono in ladder, vediamo nella prossima immagine come appaiono in linguaggio FBD.

Linguaggio a blocchi di funzione FBD per PLC

Osserviamo la figura, e notiamo immediatamente la diversa rappresentazione della logica booleana. In questo linguaggio viene molto enfatizzata, per questo abbiamo i blocchi OR e AND disegnati in questo modo.

Per quanto riguarda la negazione NOT, in questo caso troviamo i cerchietti bianchi che negano direttamente l’ingresso, si potrebbe utilizzare al loro posto anche il blocchetto NOT.

Notiamo che l’istruzione di comparazione GT (maggiore), sostanzialmente si rappresenta in maniera identica al linguaggio ladder, tuttavia gli ingressi e le uscite dei blocchetti sono scritti direttamente come assegnazione delle funzioni, e non hanno i contatti.

La parte di gestione vettore è praticamente identica a quella scritta in linguaggio a logica di relè.

Osserviamo nella prossima figura le stesse istruzioni, questa volta in linguaggio di testo strutturato.

Linguaggio di testo strutturato ST per PLC (SCL)
Come vediamo dall’immagine sopra, quì le cose cambiano decisamente, e non ci sono simboli grafici.
Per quanto riguarda l’assegnazione della bobina bit10, ecco che questa volta essa diventa il risultato di un’espressione logica scritta in maniera prolissa, con tanto di parentesi per assegnare le priorità alle espressioni che la compongono.
Questo modo di scrivere le istruzioni è molto simile a quello che utilizziamo in altri linguaggi per computer, e notiamo che la variabile che conterrà il risultato, si trova a sinistra della scrittura e non a destra.

Nel linguaggio di testo strutturato il timer va prima definito, inoltre l’assegnazione del valore corrente a una variabile deve essere scritta in una linea di programma separata, così come l’assegnazione dell’uscita. Abbiamo per cui tre linee di programma per fare quello che in ladder richiedeva una linea solamente.

Il ciclo FOR è un potente costrutto di questo linguaggio, ed è praticamente presente in tutti i linguaggi di programmazione evoluti. Tutto sommato non è più veloce da scrivere rispetto agli altri due linguaggi, tuttavia l’indentazione delle righe di programma rendono la lettura dello stesso molto chiara.

Ok, ora che abbiamo visto come si differenziano questi linguaggi, quale sceglieresti, se non hai mai utilizzato un PLC? Io mi orienterei su quello che in prima battuta mi sembra più semplice da comprendere, tenendo conto che il linguaggio ladder e quello di testo strutturato sono ormai oggi quelli più impiegati nel mondo del lavoro.
Prima di lasciarti, ti invito a riflettere su un piccolo dettaglio: il linguaggio di testo strutturato è l’unico che puoi scrivere anche su un foglio di testo, e che puoi copiare e incollare dove vuoi.

Copyright(C) automazione-plc.it
P. IVA: 11676200964
Sito di informazione e didattica sull'automazione industriale, il mondo dei PLC e dei sistemi di supervisione.
Programmazione PLC.
Programmazione SCADA e HMI.
Apparecchiature e hardware industriale.
Strumentazione da campo.
Policy sulla Privacy e utilizzo dei Cookies