Applicazioni del PLC: software
1
Norme di Riferimento
Si occupano dei PLC le Norme IEC 1131 tradotte dalle EN 61131 e classificate per il CEI
dal Comitato Tecnico n˚ 65; in esse vengono trattati argomenti riguardanti l’hardware
ed il software dei controllori programmabili. Ogni linguaggio per la programmazione
fissato dalle norme sopracitate assume la seguente terminologia:
•
•
•
•
•
Ladder Diagram o schema a contatti = LD
Sequential Function Chart o diagramma funzionale sequenziale = SFC
Functional Block Diagram o schema a blocchi funzionali (logici) = FBD
Istruction List o lista di istruzioni (mnemonico) = IL
Structured Text o testuale strutturato (per algoritmi complessi) = ST
Si ritiene opportuno citare alcuni termini, tratti dal catalogo SIEMENS ma non normalizzati, che tuttavia sono entrati nell’uso comune e rappresentano alcuni dei linguaggi
di programmazione, in particolare:
•
•
•
il termine KOP (KOntactPlan) significa schema a contatti (ladder);
il termine FUP (FUnktionsPlan) è destinato alla programmazione con blocchi funzionali;
il termine AWL (AnWeisungListe) identifica il linguaggio mnemonico (lista di istruzioni).
È pure molto noto il termine GRAFCET, tratto dalle norme UTE francesi, che rappresenta il diagramma funzionale sequenziale.
2
Classificazione dei linguaggi di programmazione
Una prima classificazione di carattere generale dei linguaggi di programmazione comune a tutti i controllori programmabili, è fornita nello schema di figura 1, conformemente a quanto fissato dalla Norma IEC 1131-3 (CEI 65-40) che ha uniformato, almeno
Fig. 1 - Schema a blocchi dei linguaggi di programmazione per PLC.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
a livello sintattico, i diversi tipi di linguaggi; infatti prima dell’entrata in vigore di questo standard i costruttori di PLC offrivano codifiche con funzionalità praticamente identiche ma con sintassi spesso differenti tra loro.
Le Ditte interessate alla commercializzazione dei controllori, stanno adottando questo
standard in quanto, viceversa, per i tecnici operanti su controllori diversi si renderebbe
necessaria la conoscenza sia dell’hardware che del software dei controllori stessi.
3
Elementi o variabili software
A differenza di quelli hardware, visti nel precedente modulo, si intendono per elementi o variabili software quelli non “tangibili”, specificati dal costruttore nei dati tecnici
del PLC. Sono da considerare tali:
•
•
•
•
•
i temporizzatori;
i contatori;
i relè interni;
stack logico o registro risultati;
memorie dati.
I temporizzatori ed i contatori equivalgono ai corrispondenti elettromeccanici ed elettronici.
I relè interni, che possono essere volatili (non ritentivi) e non volatili (ritentivi), assumono varie terminologie e, a seconda del tipo di PLC, prendono il nome di: memorie
interne, indicatori, relè di appoggio, variabili interne, flag, merker, ecc. Equivalgono ai
relè ausiliari elettromeccanici e sono praticamente aree di memoria riservate a risultati
intermedi utilizzabili al momento opportuno.
Elementi estremamente importanti sono uno o più registri interni, che assumono varie
terminologie del tipo stack logico o registro risultati, ed hanno la stessa funzione in
tutti i PLC e cioè memorizzare i risultati intermedi delle istruzioni logiche del programma (2 esempio nella sottounità
8). Si considerano elementi software oltre che
hardware, anche tutte le uscite fisiche in quanto possono essere utilizzate come contatti ausiliari, allo stesso modo degli ingressi.
Le memorie dati sono destinate ad immagazzinare dati di vario tipo (numeri interi,
stringhe, ecc.).
Tutti gli elementi possono venire indirizzati, interrogati (test), combinati tra loro in
qualsiasi modo ed in qualunque punto del programma.
4
Linguaggio (schema) ladder (Ladder diagram)
Il nome deriva dall’inglese ladder e viene usualmente denominato “schema a contatti”;
a tutt’oggi è quello maggiormente impiegato in campo internazionale per la programmazione dei PLC.
I segni grafici utilizzati sono normalizzati IEC 1131 (Fig. 2) e spesso vengono riportati anche sulle unità di programmazione portatili.
Lo schema ladder strutturalmente è composto da due linee verticali e da linee orizzontali, sulle quali vengono disegnati gli elementi costituenti il sistema da controllare
(Fig. 3).
Fig. 2 - Segni grafici usati per il linguaggio ladder (a contatti). Da
Norma IEC 1131-3 (CEI 65-40).
a) contatto ON;
b) contatto OFF;
c) contatto rivelatore di transizione positiva (fronte di salita);
d) contatto rivelatore di transizione negativa (fronte di discesa);
e) variabile esterna o interna (output);
f) variabile esterna o interna negata (output not).
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Fig. 3 - a) esempio di schema ladder reale;
b) esempio di schema ladder semplificato (abitualmente usato).
Si distinguono:
• la barra d’alimentazione (riga verticale sinistra), cui fanno capo tutti gli elementi di
input;
• il ritorno comune o massa (riga verticale destra che spesso viene omessa), cui fanno
capo tutte le variabili d’uscita (output);
• la zona di test (o zona di input): in questa parte dello schema vengono disegnati i
vari input in serie e in parallelo, in chiusura e in apertura, seguendo la logica di evoluzione del processo; a seconda del loro stato verrà stabilita, attraverso il test eseguito dal microprocessore, in funzione del programma utente, la condizione della
variabile d’uscita (output);
• la zona di azione (o zona di output), destinata alle variabili d’uscita abilitate o meno
dalla zona precedente;
• i segni + stanno ad indicare che non vi è collegamento fisico tra le due zone, ma
solo la logica di processo dettata dalla programmazione; pure non vi è collegamento fisico tra i vari input, ma solo il test (interrogazione), che il microprocessore esegue sul loro livello logico 1 o 0;
Š
Di conseguenza non sarà più l’installatore a cablare fisicamente i vari contatti in
serie o parallelo ma si limiterà soltanto al collegamento di ogni contatto singolarmente sul modulo di ingresso del PLC. Sarà il microprocessore stesso a livello software, in base al risultato ottenuto dal test ed al programma steso dall’utente, a combinare gli ingressi in serie o in parallelo per abilitare o meno l’uscita. In base al test
verrà stabilito il livello 1 (tensione presente) se il contatto sul punto di ingresso del
modulo è chiuso, livello 0 se il contatto è aperto.
• per semplificare il disegno usualmente il segno + si omette; lo schema prende quindi la forma di figura 4; la lettura dello schema va fatta sempre da sinistra verso
destra e dall’alto verso il basso.
Come stabilito dalla Norma IEC 1131-3, per l’impiego dei segni grafici già presentati in
figura 2 si procede come segue:
Š
• viene usato questo segno grafico —| |— se
occorre attivare un’uscita quando il contatto
è ON (chiuso, livello 1, tensione presente);
• viene usato questo segno grafico —|/|— (condizione negata) se occorre attivare un’uscita
quando il contatto è OFF (aperto, livello 0,
tensione assente).
La figura 4 fornisce un esempio applicativo.
Nella programmazione ladder, viene denominata
linea di combinazione (Fig.
5) quella combinazione di contatti che termina con una variabile d’uscita singola o in parallelo con altre. La linea di
combinazione assume varie terminologie a seconda
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Fig. 4 - Uso dei contatti ON e
OFF per l’attivazione delle uscite:
a) l’uscita è attiva quando il contatto è in stato ON (chiuso);
b) l’uscita è attiva quando il contatto è in stato OFF (aperto).
Fig. 5 - a) indicazione delle linee di combinazione in uno schema ladder;
b) indicazione delle linee di combinazione con altri termini.
del tipo di controllore: ad esempio per i PLC SIEMENS o OMRON viene denominata
“network” o “segmento”.
5
Conversione degli schemi elettrici funzionali in
schemi ladder
Lo schema elettrico funzionale può essere convertito in schema ladder osservando alcune indicazioni di carattere generale per tutti i tipi di PLC:
• negli schemi elettrici funzionali il flusso logico dei segnali va da sinistra verso destra,
viceversa negli schemi ladder dall’alto verso il basso;
• nessun output può essere collegato direttamente alla barra di sinistra; per fare ciò
occorre interporre un contatto di un relè interno generico o speciale normalmente
in condizione ON. Tale contatto è inesistente fisicamente, ma per il PLC è un elemento da controllare come gli altri ingressi effettivi;
• non esiste limite al numero dei contatti da inserire nelle linee di combinazione
(memoria permettendo);
• tutti gli output possono essere utilizzati come contatti input (via software);
• nessun contatto può essere disposto a destra dell’output;
• è possibile collegare in parallelo più output (come già accennato);
• il programma viene eseguito ciclicamente dal primo indirizzo (a cui corrisponde la
prima istruzione) fino alla fine del programma.
6
Tecniche di programmazione
Molti circuiti elettrici funzionali non possono essere convertiti in schemi ladder semplicemente cambiandone i segni grafici e la disposizione. Si forniscono di seguito alcuni
esempi di conversione di schemi funzionali in schemi ladder, per la programmazione dei
PLC. Per semplicità i contatti vengono disegnati tutti in chiusura (NO).
Nelle figure 6 e 7 la conversione schema funzionale-ladder è immediata e non
necessita di commenti; viceversa la figura 8 a mostra la conversione reale che può
essere semplificata riscrivendo lo schema come in figura 8 b. Dal punto di vista elettrico il funzionamento non cambia, ma per la programmazione si preferisce spostare il
contatto singolo (1) di un ramo parallelo nella parte in basso del ramo stesso, per evitare di usare istruzioni di operazioni tra blocchi, risparmiando memoria e tempo di
scansione.
Lo schema di figura 9 rappresenta una variante al precedente con aggiunta di un
contatto in serie al circuito; nella figura 9a è descritta la conversione reale che può
essere semplificata riscrivendo il circuito come in figura 9 b. Elettricamente nulla
cambia ma per la programmazione è preferibile risolvere sempre prima i rami in paral-
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Fig. 6 - Schema funzionale con contatti
in serie, convertito in schema ladder.
Fig. 7 - Schema funzionale con contatti in parallelo, convertito in schema
ladder.
Fig. 8 - a) schema funzionale con contatti in
serie e parallelo, convertito in schema ladder;
b) stesso schema semplificato.
Fig. 9 - a) schema funzionale complesso convertito in
schema ladder; b) stesso schema semplificato.
lelo (OR), tenendo presenti le considerazioni precedenti, e quindi la serie (AND). Questo
tipo di soluzione è finalizzata al risparmio di righe di istruzione e semplifica la programmazione.
La figura 10 propone un circuito complesso con rami in serie ed in parallelo, risolto
come da figura 10 a; anche in questo caso conviene riscrivere il circuito come esemplificato nella figura 10 b. Il contatto 1 viene “esaminato” (test) dal PLC 2 volte
anche se fisicamente è sempre lo stesso. Volendo paragonare lo schema ad un circuito
elettromeccanico, è come se il contatto fosse sdoppiato (Fig. 10 c). Anche questa tecnica consente di evitare l’uso di operazioni tra blocchi, risparmiando memoria e tempo
di scansione.
La figura 11 presenta un circuito parallelo-serie, diviso in due blocchi (A-B), risolti
singolarmente, e combinati successivamente in serie; viceversa per la figura 12, che
propone un circuito serie-parallelo, in cui il risultato avviene risolvendo i blocchi (A-B),
e combinandoli poi in parallelo1
I blocchi dei casi esposti in alcuni PLC prendono il nome di stack.
1
Con riferimento ai PLC OMRON, le risoluzioni vengono eseguite mediante istruzioni particolari:
– AND-LOAD, che indica un’operazione logica di AND tra blocchi;
– OR-LOAD, che indica un’operazione logica di OR tra blocchi.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Fig. 10 - a) conversione in ladder di uno schema funzionale complesso;
b) medesimo schema riscritto per semplificarne la programmazione;
c) equivalente elettromeccanico del contatto 1.
Fig. 11 - Schema funzionale con contatti
parallelo-serie, convertito in schema ladder.
Fig. 12 - Schema funzionale con contatti
serie-parallelo, convertito in schema ladder.
Lo schema di figura 13 propone la risoluzione di blocchi serie-parallelo combinati:
nel caso esposto si divide il circuito in due blocchi (A-B), si programma ciascun blocco
combinandoli successivamente in un unico circuito. Per la risoluzione ogni PLC applicherà i codici del proprio set di istruzioni. Il circuito può comunque essere semplificato
usando le tecniche già studiate precedentemente.
Come già accennato nella sottounità 3 tutte le uscite e gli ingressi sono considerati
elementi software oltre che hardware; di conseguenza è possibile utilizzare un’uscita
fisica (hardware) come elemento software, tipicamente come ingresso, in quanto il
microprocessore eseguirà un test sul suo stato logico (1-0) come per qualunque altro
elemento, usando il risultato in combinazione (AND-OR) con gli altri ingressi fisici, in
funzione del programma utente. Tale tecnica è utilizzata, ad esempio, per operazioni
di autoritenuta (Fig. 14) o per controllo di interblocchi elettrici (Fig. 15) oppure
in tutti gli altri casi in cui non sia indispensabile usare un ingresso fisico (es. segnalazione) con risparmio sia economico che di cablaggio diminuendo il numero di input e
quindi i moduli di ingresso.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Fig. 13 - Risoluzione di blocchi circuitali serieparallelo.
Fig. 14 - Esempio di uscita usata come
ingresso in un circuito di autoritenuta.
Fig. 15 - Esempio di uscita usata come ingresso
per operazioni di interblocco.
Š
7
È doverosa un’osservazione riguardante la tecnica finora adottata per la risoluzione
degli schemi: i software di programmazione in schema ladder agiscono in modo tale
che, anche se il programmatore inserisce le variabili d’ingresso come da schema originale e cioè senza adottare nessuna delle tecniche finora presentate, provvedono
ugualmente, nella maggior parte delle combinazioni, alla codifica usando le istruzioni appropriate caso per caso. Nella impossibilità di risoluzione, il software stesso
fornisce un segnale di errore; in questa eventualità sarà il programmatore a riconfigurare il circuito. È buona norma quindi, già in fase di progettazione, procedere in
tal senso assicurando risparmio di memoria utente e maggiore velocità di scansione.
Linguaggio con diagramma funzionale
(Sequential Function Chart)
È comunemente denominato GRAFCET; prima normalizzato con norme UTE francesi, è
divenuto Norma CEI 3-35 (IEC 848).
Detto linguaggio descrive le funzioni di comando e controllo legate al processo senza
tenere conto del tipo di tecnologia usata, quindi nessun campo viene escluso: è un tipo di
programmazione destinata allo svolgimento di tipo sequenziale e denominato anche
“passo-passo”; presenta quindi molte affinità con il flow-chart (schema di flusso) e può
essere applicato anche a sistemi non elettrici o in abbinamento a due o più tecnologie.
Il linguaggio grafico, utilizzando solo segni geometrici ed una simbologia alfanumeri-
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
ca, può essere scritto ed interpretato da tecnici con esperienze diverse che non abbiano una conoscenza specifica nel settore elettrico-elettronico. I segni grafici adottati
sono descritti nella figura 16.
Il linguaggio presenta le seguenti caratteristiche:
•
•
•
•
•
ad ogni passo corrispondono uno o più comandi od azioni;
ad ogni transizione corrispondono una o più condizioni;
ogni azione è rappresentata da output;
ogni transizione è rappresentata da input;
passi e transizioni sono unite da segmenti che rappresentano i collegamenti orientati (se non vi è nessuna indicazione, il collegamento è diretto dall’alto verso il
basso). Un esempio di scrittura di una transizione in quattro modi diversi è rappresentato in figura 17.
Fig. 16 - Segni grafici usati per la preparazione dei diagrammi funzionali per sistemi di
comando e controllo (CEI 3-35).
a) passo (fase) iniziale, l’asterisco deve essere
sostituito dal numero assegnato al passo;
b) passo (fase), l’asterisco deve essere sostituito dal numero assegnato al passo;
c) passo attivo;
d) passo associato ad un’azione;
e) transizione; l’asterisco deve essere sostituito
da una lettera o numero assegnato alla transizione, i due asterischi vanno sostituiti con
le condizioni associate alla transizione: es.
testo, grafico o espressione booleana;
f) collegamento orientato;
g) esempio di salto di passo;
h) esempio di inizio sequenze simultanee;
i) esempio di divergenza di selezione di
sequenza.
Fig. 17 - Modi di rappresentazione delle condizioni di transizione (da Norma CEI 3-35).
Durante l’evoluzione del processo i passi possono essere:
–
–
attivi;
inattivi.
Per passo attivo si intende che i comandi o le azioni ad esso associati sono esecutivi (es.
eccitare la bobina di una elettrovalvola). Il comando non è memorizzato.
Per passo inattivo si intende che i comandi o le azioni ad esso associati devono terminare o mantenere il loro stato (es. eccitare la bobina di una elettrovalvola e mantenerla eccitata). Il comando è memorizzato.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
I vari passi-azioni che si susseguono uno dopo l’altro (Fig. 18), durante il funzionamento di un
sistema automatico, iniziano da una situazione di
riposo e vengono eseguiti solo dopo il superamento delle condizioni necessarie (transizioni); terminato il ciclo il programma riparte dal passo iniziale.
Nella stesura del programma occorre rispettare
alcune regole evolutive come indicato nella
Norma CEI 3-35:
• si dovrà avere almeno un passo iniziale;
• deve sempre esistere l’alternanza passo-transizione (Fig. 19);
• il superamento di una transizione determina la
disattivazione delle azioni associate ai passi
precedenti, a meno che non sia diversamente e
obbligatoriamente espresso, e l’attivazione
delle azioni associate ai passi successivi;
• la transizione viene superata quando tutte le
condizioni associate sono vere e tutti i passi
immediatamente precedenti sono attivi.
Il linguaggio con diagramma funzionale può essere rappresentato secondo due livelli:
• 1˚ livello, è denominato anche letterale, descritFig. 18 - Esempio di diagramma
tivo o funzionale e il compito degli elementi
funzionale.
che compongono il sistema viene descritto in
modo dettagliato; è comprensibile da qualsiasi tecnico (Fig. 20).
• 2˚ livello, è denominato anche tecnologico e descrive gli elementi che concorrono
alla risoluzione del sistema con specifici riferimenti tecnici; a questa soluzione va
sempre abbinata una legenda di interpretazione delle sigle (Fig. 21).
A volte è utile descrivere il sistema utilizzando entrambi i livelli (Fig. 22); si parla
allora di “descrizione tecnologica (2˚ livello) con didascalie funzionali (1˚ livello)”.
Fig. 19 - Descrizione dell’alternanza passotransizione; a) disposizione corretta; b) disposizione errata.
Fig. 20 - Diagramma funzionale di 1˚
livello.
Fig. 22 - Diagramma funzionale tecnologico con didascalie funzionali.
Fig. 21 - Diagramma funzionale di 2˚ livello.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
8
Linguaggio a lista di istruzioni (Istruction List)
È un linguaggio di tipo letterale denominato anche mnemonico, risulta molto potente
e non utilizza segni grafici; per contro non si ha la “visione” rapida del funzionamento
del sistema come per i precedenti linguaggi. Il set di istruzioni che contiene le abbreviazioni mnemoniche o alfanumeriche del linguaggio, dipende dal tipo di PLC anche se
i costruttori si stanno gradatamente uniformando allo standard internazionale IEC
1131. Comune a tutti i PLC è la riga di istruzioni così caratterizzata:
INDIRIZZO (step)
ISTRUZIONE (codice)
OPERANDO (elemento)
dove:
• indirizzo – è la locazione del dato nella memoria utente;
• istruzione (operatore) – è il comando tramite un codice macchina per il PLC (cioè che
cosa deve eseguire);
• operando o “dato” – è la conseguenza del comando (cioè su quale elemento o variabile hardware o software deve essere eseguito il comando stesso).
Un eventuale commento per ogni riga o dove ritenuto più significativo, può essere scritto dopo l’operando, interponendo un carattere specifico di inizio commento (; oppure
//). Ciò è importante per programmi complessi in quanto facilita la ricerca guasti o l’eventuale modifica da parte di personale che non necessariamente ha preso parte alla
stesura del programma stesso. In pratica il PLC viene istruito riga per riga sull’operazione che deve compiere. Con riferimento al set di istruzioni dei PLC della ditta OMRON,
si fornisce un semplice esempio di lista di istruzioni:
INDIRIZZO
00000
00001
00002
ISTRUZIONE
LD
OUT
END
OPERANDO
000.00
001.01
–
Dopo che il programma scritto è trasferito nella memoria utente, il PLC va posto in stato
RUN (esecuzione), di conseguenza la CPU inizia a leggere riga dopo riga il programma
scritto e ad eseguire sequenzialmente le istruzioni, tramite segnali che viaggiano sulle
linee bus (la scansione descritta è molto semplificata).
• Il program counter (contatore degli indirizzi della memoria utente), si posiziona
sulla locazione 00000.
• La CPU esamina l’istruzione relativa a quella locazione, in questo caso LD che significa: esegui un test sullo stato logico (1 o 0) dell’elemento n˚ 000.00 (nel caso specifico un ingresso) e memorizza il risultato nel registro risultati (2 per chiarimenti
nella sottounità 3). LD viene usato all’inizio di ogni combinazione logica.
• Il program counter è incrementato dalla locazione 00000 a 00001.
• La CPU esamina l’istruzione relativa a quella locazione, in questo caso OUT che significa: trasferisci il contenuto del registro risultati (1 o 0) all’elemento n˚ 001.01 (nel
caso specifico un’uscita, che sarà quindi attivata o disattivata).
• Il program counter è incrementato dalla locazione 00001 a 00002.
• La CPU esamina l’istruzione relativa a quella locazione, in questo caso END che significa: fine programma con conseguente reset del program counter alla locazione
00000 e inizio del secondo ciclo di scansione.
Ogni riga di istruzioni termina quindi con un’azione; a volte necessitano due righe per
l’azione completa come ad esempio per l’attivazione di un temporizzatore: la prima
riga è dedicata al comando di attivazione vero e proprio, la seconda per impostare il
valore di conteggio.
Š
È bene precisare che il linguaggio mnemonico descritto è l’unico comprensibile
direttamente dal controllore programmabile in quanto contiene i codici del “linguaggio macchina”. Per gli altri tipi di programmazione studiati precedentemente
(ladder, diagramma funzionale, blocchi logici), è l’unità di programmazione che
provvede a convertirli in linguaggio macchina.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
9
Fasi di programmazione del PLC
Le varie fasi di programmazione di un PLC sono identificate da una procedura come
indicata nel seguito:
•
•
•
•
•
studio del sistema;
assegnazione variabili;
scelta del linguaggio di programmazione;
scrittura del programma, codifica e trasferimento;
debug e archiviazione finale.
Studio del sistema – È chiaramente la prima fase di preparazione e consiste nello studio
del sistema da controllare e cioè un sistema esterno costituito da una o più macchine
industriali o altro in ambito civile su cui effettuare un controllo; può essere eseguita
mediante analisi esplicativa delle operazioni, oppure con schemi di flusso, descrivendo
la sequenza logica di funzionamento nelle varie fasi operative.
Nel caso il sistema risultasse piuttosto complesso, è consigliabile suddividerlo in sottoproblemi da risolvere singolarmente, conglobandoli quindi alla conclusione del lavoro.
Un attento esame deve essere posto alla determinazione degli elementi necessari a
garantire la sicurezza del sistema, descrivendo in modo dettagliato il funzionamento
degli elementi stessi e come i medesimi vengono ad interagire con le fasi di programmazione del PLC.
Assegnazione variabili – In base allo studio effettuato nella prima fase, risulta immediata l’individuazione del numero degli input, degli output, nonché del tipo di “segnale” (ON-OFF o analogico).
Ogni modello di PLC possiede un numero di identificazione dei propri elementi
hardware e software, descritto nel manuale d’uso; in questa fase è necessario abbinare
tale numerazione agli elementi funzionali individuati nello studio del sistema.
L’assegnazione può comprendere anche elementi non hardware quali: temporizzatori,
contatori, memorie interne, ecc.
TAB. 1
Esempio di assegnazioni variabili.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Il sistema di assegnazione descritto dipende dal software usato per la programmazione
e quindi dal costruttore del PLC; tale sistema non è infatti ancora universalmente adottato e di conseguenza, per conoscere la corrispondenza tra la rappresentazione diretta
di una variabile e la locazione fisica (numero di identificazione) dell’elemento indirizzato (I, O, memoria), si rimanda il lettore a quanto specificato nei manuali d’uso a corredo dell’apparecchiatura. È invece compito del programmatore compilare le tabelle di
assegnazione di cui un modello indicativo è riportato nella tabella 1.
Scelta del linguaggio di programmazione – Stabilite le prime due fasi occorre definire
il tipo di linguaggio destinato alla programmazione, tenendo conto del tipo di PLC considerato, dell’esperienza e del genere di preparazione del programmatore, dell’unità di
programmazione disponibile e della soluzione del sistema (grafico o letterale).
Si ricorda che i tipi di linguaggi normalizzati solitamente impiegati sono: ladder, lista di
istruzioni, diagramma funzionale, a blocchi logici.
Scrittura del programma, codifica e trasferimento – Durante la scrittura il programma
può essere trasferito direttamente nel controllore, tramite l’unità di programmazione
oppure tradotto (codifica) e quindi caricato in memoria. Occorre naturalmente conoscere i codici relativi alle istruzioni del PLC considerato.
È utile servirsi di tabelle prestampate per snellire e facilitare la funzione di scrittura e
codifica; esempi di tali tabelle sono riportati nelle tabelle 2 e 3.
Debug e archiviazione finale
Š
Per debug si intendono quelle operazioni atte all’individuazione e correzione degli
errori in un programma.
In questa fase è possibile l’utilizzo del modulo “simulatore” (2 unità didattica L.1.11).
Difficilmente si avrà l’esatta versione del programma al primo tentativo, quindi si renderà necessario apportare le correzioni e modifiche del caso. Dopo il massiccio intervento del PC per la programmazione dei PLC, anche il debug può essere eseguito con
simulazione software degli I/O, verificando anticipatamente il programma che può
essere scritto, ad esempio, in piccoli moduli e quindi testato. Un vantaggio del debug è
la possibilità di effettuare il test con gli I/O reali che possono essere mandati in errore
e quindi ogni allarme verificato a rischio zero; diversamente non usando la simulazione, il primo vero test della logica di controllo potrà essere verificato soltanto in presenza di una vera emergenza con le eventuali conseguenze.
Una volta testato e verificato definitivamente il programma, è necessario “salvare” il
lavoro, oltre che nella RAM del controllore, anche su supporti magnetici diversi (floppydisk, EPROM, CD-ROM).
La Norma CEI 44-5 (art. 18.8 - 18.9) nei riguardi della documentazione a corredo della
macchina industriale per la quale è stato progettato il programma utente, prescrive che
debbano essere fornite nel manuale di funzionamento dettagliate informazioni in
merito a: metodi di programmazione, verifica del programma, procedure di sicurezza
aggiuntive (se richieste).
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
TAB.
2
TAB.
Esempio per la preparazione degli schemi ladder.
3
Esempio per la programmazione in lista di istruzioni.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Esercizi da svolgere
1
Convertire in linguaggio ladder i seguenti circuiti:
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
2
Riconfigurare, per ottimizzare la programmazione in ladder, i seguenti circuiti:
3
Descrivere mediante il linguaggio con diagramma funzionale (Grafcet) di primo livello
la movimentazione di un’unità operatrice
mossa da motore asincrono trifase con
comando da due posti. Prevedere la protezione termica.
4
Ripetere l’esercizio 3 con lo stesso linguaggio, ma di secondo livello.
5
Descrivere mediante il linguaggio con diagramma funzionale (Grafcet) di secondo
livello con didascalie funzionali, il comando di un motore asincrono trifase con due
sensi di rotazione. Prevedere interblocchi
di tipo elettrico e relè termico.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Test di verifica
1
Nella zona di test, in uno schema ladder vengono disegnati:
a) solo i temporizzatori software;
b) gli output;
c) gli input.
2
Avendo a disposizione uno schema di flusso che riguarda l’automazione di un apparato, quale
linguaggio di programmazione sarebbe logico utilizzare:
a) diagramma funzionale (Grafcet);
b) lista di istruzioni;
c) ladder.
3
In un linguaggio a lista di istruzioni, l’operando è:
a) il primo elemento;
b) il secondo elemento;
c) il terzo elemento.
4
Se viene usato questo segno grafico —| / |— per una variabile d’ingresso durante la programmazione in schema ladder, cosa significa?
a) l’uscita è attivata dall’apertura di quell’ingresso;
b) l’uscita è già attivata;
c) l’uscita può essere attivata solo dopo il test di un altro ingresso in condizione ON.
5
Le uscite hardware di un PLC possono essere considerate variabili software?
a) no;
b) solo se non sono realmente attivate;
c) sì.
6
Che scopo ha la fase di “assegnazione variabili” prima della fase di programmazione di un
PLC?
a) testare tutti gli I/O;
b) decidere quale tipo di linguaggio usare;
c) assegnare un numero di identificazione agli elementi hardware e software.
7
Cosa si intende per “debug”?
a) operazione di salvataggio finale di un programma;
b) operazione atta a individuare e correggere errori nel programma;
c) conversione di uno schema a contatti in schema ladder.
8
Quali sono le regole fondamentali della programmazione in diagramma funzionale?
9
Descrivere i particolari di uno schema ladder.
10
Quali sono le terminologie di uso corrente, anche se non normalizzate, per indicare i principali linguaggi di programmazione?
11
Quali sono invece le terminologie secondo la Norma IEC 1131-1 per indicare i vari linguaggi di
programmazione?
12
Spiegare cosa si intende per passo “attivo” e “inattivo” nel linguaggio SFC.
13
Elencare quali sono gli elementi o variabili software.
14
Elencare nell’ordine quali sono le fasi di programmazione di un PLC.
www.
cal
der
i
ni
.
i
t
EDI
ZI
ONICALDERI
NI
Scarica

Applicazioni del PLC: software