programmazione plc siemens s7-200 -...
TRANSCRIPT
PROGRAMMAZIONE PLC Siemens s7-200
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Programmazione
“In quel periodo mi occupavo di programmazione di macchine utensili. Furono i nostri colleghi disegnatori a dare formaalla programmazione in logica a contatti. Anche il nome Ladder Logic lo diedero loro. In pratica si disegnavano su di ungrande foglio di carta tutti i contatti a relè dei quadri cablati. Tempo dopo venni a sapere che fummo i primi a trasferire latradizionale logica a relè di origine tedesca - opportunamente scalata e semplificata – in un ambito di programmazioneindustriale vera e propria.”
Dick Morley, intervista a Automazione e Strumentazione, Aprile 2009
E’ considerato il padre del PLC.
ESEMPI0 Controllo marcia/arresto di un motore
Il motore si avvia appena premuto il pulsante S1, e si arresta appenapremuto il pulsante S2
Soluzione:
“In quel periodo mi occupavo di programmazione di macchine utensili. Furono i nostri colleghi disegnatori a dare formaalla programmazione in logica a contatti. Anche il nome Ladder Logic lo diedero loro. In pratica si disegnavano su di ungrande foglio di carta tutti i contatti a relè dei quadri cablati. Tempo dopo venni a sapere che fummo i primi a trasferire latradizionale logica a relè di origine tedesca - opportunamente scalata e semplificata – in un ambito di programmazioneindustriale vera e propria.”
Dick Morley, intervista a Automazione e Strumentazione, Aprile 2009
E’ considerato il padre del PLC.
1
ESEMPI0 Controllo marcia/arresto di un motore
Il motore si avvia appena premuto il pulsante S1, e si arresta appenapremuto il pulsante S2
Soluzione:TABELLA DEI SIMBOLI
SIMBOLI INDIRIZZO COMMENTO
S0 I0.0 Pulsante di avvio motore
S1 I0.1 Pulsante di stop
Motore Q0.0
PROGRAMMAZIONE PLC Siemens s7-200
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Programmazione
Cablaggio
del PLC emotore
PROGRAMMAZIONE PLC Siemens s7-200
1
PROGRAMMAZIONE PLC Siemens s7-200
NB: S1, S2 a riposo:PLC legge 0
Programma:VERSIONE 1 (Contatto di autoritenuta)
LADDER
IL
LD I0.0
O Q0.0
AN I0.1
= Q0.0
I0.0
STACK
b0
b1
b2
I0.0 OR Q0.0b0
b1
b2
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Programmazione
LD I0.0
O Q0.0
AN I0.1
= Q0.0
b2
[I0.0 OR Q0.0] AND NOT I0.1b0
b1
b2
Network 1
LD I0.0
S Q0.0 , 1
Network 2
LD I0.1
R Q0.0 , 1
I0.0b0
b1
VERSIONE 2 (comando Set / Reset)
NB: lo stack cresce versoil basso mediante loscorrimento dei valori chesono già presenti al suointerno.Il nuovo dato è inserito incima.
3
Network 1
LD I0.0
S Q0.0 , 1
Network 2
LD I0.1
R Q0.0 , 1
b1
b2
I0.1
I0.0
b0
b1
b2
NB: lo stack cresce versoil basso mediante loscorrimento dei valori chesono già presenti al suointerno.Il nuovo dato è inserito incima.ESERCIZIO: Scrivere un software di controllo che permetta l’avvio di un motore in seguito alla contemporanea pressione didue pulsanti S1 e S2 e l’accensione della relativa lampada di segnalazione. Il controllo deve arrestare il motore in seguitoall’attivazione del finecorsa B1 o del pulsante S3.
AREE DI MEMORIA
AREA OPERANDI(formato)
DESCRIZIONERegistro di immaginedi processo degliingressi I Byte.bitByte, Word, Double Word
È la memoria dove vengono scritti i valori degli ingressi digitali lettiall’inizio del ciclo di scansioneES: I0.1 IB3 IW8 ID10 (I0.0 →I15.7)
IDENTIFICATORE Per CPU 224
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria
Registro di immaginedi processo degliingressiRegistro di immaginedi processo delleuscite QByte.bitByte, Word, Double Word
È la memoria dove vengono trascritti i valori delle nuove uscite qualirisultanti dall’esecuzione del programma utente, prima di essere portatiall’esternoES: Q0.1 QB3 QW8 QD10 (Q0.0 →Q15.7)Memoria dellevariabili globali V Byte.bitByte, Word, Double Word
È la memoria dove vengono memorizzati i risultati intermedi emersidall’esecuzione del programma utenteES: V0.1 VB3 VW8 VD10 (V0.0 →V5119.7)Memoria dei merker M Byte.bit
Byte, Word, Double Word
È la memoria dove si possono memorizzare stati intermedidell’esecuzione del programma utenteES: M0.1 MB3 MW8 MD10 (M0.0 →M31.7)Memoria deitemporizzatori È la memoria riservata ai temporizzatori. Questi generano intervalli ditempo con risoluzione di 1 ms, 10 ms o 100 ms(T0 →T255)Memoria deitemporizzatori T Numerotemporizzatore
È la memoria riservata ai temporizzatori. Questi generano intervalli ditempo con risoluzione di 1 ms, 10 ms o 100 ms(T0 →T255)Memoria dei contatori C Numerocontatore
È la memoria riservata ai contatori. Questi possono essere di tre tipi:avanti, indietro, avanti/indietro (C0 →C255)Memoria dei contatoriveloci HC Numerocontatore
Conteggiano eventi veloci indipendenti dal ciclo di scansione della CPU(HC0 →HC5)4
AREA OPERANDI(formato)
DESCRIZIONE
Memoria degliaccumulatori AC Numeroaccumulatore
Sono registri di lettura/scrittura che possono essere usati comememoria (es: passare parametri da e verso sottoprogrammi)(AC0 →AC3)
IDENTIFICATORE
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria
Memoria degliaccumulatori AC Numeroaccumulatore
Sono registri di lettura/scrittura che possono essere usati comememoria (es: passare parametri da e verso sottoprogrammi)(AC0 →AC3)Memoria dei merkerspeciali SM Byte.bitByte, Word, Double Word
I merker speciali consentono di scambiare informazioni tra la CPU eil programma in esecuzioneES: SM0.1 SMB3 SMW8 SMD10 (SM0.0 →SM549.7)Memoria locale L Byte.bit
Byte, Word, Double Word
È una memoria simile alla V, ma con la differenza che quest’ultima èglobale, cioè accessibile da qualunque punto del programma utente(anche da sottoprogrammi)ES: L0.1 LB3 LW8 LD10 (L0.0 →L63.7)Ingressi analogici AI Word
È l’area di memoria dedicata alla conversione analogica – digitaleES: AIW2 (AIW0 →AIW62)È l’area di memoria dedicata alla conversione analogica – digitaleES: AIW2 (AIW0 →AIW62)Uscite analogici AQ Word
È l’area di memoria dedicata alla conversione digitale - analogicaES: QIW2 (AQW0 → AQW62)Area di memoria dei relèdi controllo sequenziale(SCR) S Byte.bit
Byte, Word, Double Word
I bit SCR o S servono ad organizzare il funzionamento o le fasi dilavoro di un impianto in segmenti di programmi equivalenti,permettono la segmentazione logica del programma di controlloES: S0.1 SB3 SW8 SD10 (S0.0 →S31.7)5
MEMORIAAccesso ai dati dell’S7 - 200
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria
Indirizzidei Byte
6
Byte (B)• 8 bit• indirizzi sia
dispari chepari
……
Byte
Byte
ByteByte
Byte
Word (W)• 16 bit• indirizzi
solo pari
……
Word
Word
Byte
Double Word (D)• 32 bit• indirizzi
solo pari
……
DoubleWord
Byte
2 B
yte
2 B
yte
4 B
y t
e
Memoria Memoria Memoria
99 VB99
100 VB100
101 VB101102 VB102
103 VB103
104 VB104
9899 VB99
100 VW100
101102 VW102
103
104
9899 VB99
100 VD100
101102
103
104
98
Indirizzidei Byte
Indirizzamento formato Byte.bit : Idendificatore Byte . bit
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria
7
Indirizzamento formato Byte : Idendificatore TipoDato Indirizzo
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria
8
Il numero e il fattore moltiplicativo del temporizzatore dipendono dalla risoluzione (base dei tempi) di cui si habisogno. Si hanno tre possibili risoluzioni: 1 m, 10 ms, 100 ms.I temporizzatori sono 256. Attraverso il numero si indica la risoluzione.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
TEMPORIZZATORI Ingresso che avvia latemporizzazioneFattore moltiplicativodella base dei tempi
Tipo diTemporizzatoreNumero delTemporizzatore
Il numero e il fattore moltiplicativo del temporizzatore dipendono dalla risoluzione (base dei tempi) di cui si habisogno. Si hanno tre possibili risoluzioni: 1 m, 10 ms, 100 ms.I temporizzatori sono 256. Attraverso il numero si indica la risoluzione.
9
Esempio: l’intervallo di 2 s può essere realizzato mediante temporizzatore da• 1 ms con fattore moltiplicativo pari a 2000• 10 ms con fattore moltiplicativo pari a 200• 100 ms con fattore moltiplicativo pari a 20.
NB: Se, per esempio, il T33 è utilizzato comeTON, non può nello stesso programma essereutilizzato come TOF.
Temporizzatore TON
Dal momento in cui l’ingresso IN è attivo T33comincia a scandire gli intervalli di 10 ms.Raggiunto il valore preimpostato (160 incrementi,corrispondenti a un intervallo di 1.6 s), iltemporizzatore porta a 1 il Bit di temporizzazione.Il funzionamento del temporizzatore può esseremeglio compreso attraverso i diagrammi temporali.
Network 1LD I0.0TON T33 , 160
Network 2LD T33= Q0.0
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
Dal momento in cui l’ingresso IN è attivo T33comincia a scandire gli intervalli di 10 ms.Raggiunto il valore preimpostato (160 incrementi,corrispondenti a un intervallo di 1.6 s), iltemporizzatore porta a 1 il Bit di temporizzazione.Il funzionamento del temporizzatore può esseremeglio compreso attraverso i diagrammi temporali.I0.0
Network 1LD I0.0TON T33 , 160
Network 2LD T33= Q0.0
10
T33(Valore attuale)
T33 (Bit di temporizzazione)Q0.0
Valore preimpostato( 160 )
Max fattore moltiplicativo 32 767
1.6 s
Descrizione: il motore elettrico deve essere avviato dopo 2.4 s dal momento in cui vienepremuto il pulsante S0. L’arresto avviene premendo il pulsante S1.ESEMPI0: avviamento temporizzato di un motore
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
SIMBOLI INDIRIZZO COMMENTO
S0 I0.0 Pulsante di avviomotore (NA)
S1 I0.1 Pulsante di arresto(NA)
Motore Q0.1
Premendo S0 si attiva il merker M0.0, il qualeresta attivo per il contatto di autoritenuta.L’attivazione del merker avvia latemporizzazione di T37, il quale raggiunto ilvalore preimpostato attiva il Bit ditemporizzazione T37.L’attivazione del Bit di temporizzazione pone inmarcia il motore e disattiva il merker M0.0 (nonpiù necessario al valore alto).L’attivazione del pulsante S1 arresta il motore.
Network 1
LD I0.0
O M0.0
= M0.0
Network 2LD M0.0
TON T37, 24
Network 3
LD T37
S Q0.1 , 1
R M0.0 , 1
Network 4LD I0.1
R Q0.1 , 1
11
Premendo S0 si attiva il merker M0.0, il qualeresta attivo per il contatto di autoritenuta.L’attivazione del merker avvia latemporizzazione di T37, il quale raggiunto ilvalore preimpostato attiva il Bit ditemporizzazione T37.L’attivazione del Bit di temporizzazione pone inmarcia il motore e disattiva il merker M0.0 (nonpiù necessario al valore alto).L’attivazione del pulsante S1 arresta il motore.
Network 1
LD I0.0
O M0.0
= M0.0
Network 2LD M0.0
TON T37, 24
Network 3
LD T37
S Q0.1 , 1
R M0.0 , 1
Network 4LD I0.1
R Q0.1 , 1
Altre versioni
12
Dal momento in cui l’ingresso I0.0 è attivo T1 comincia ascandire gli intervalli di 10 ms.Una disattivazione dell’ingresso congela latemporizzazione scandita fino a quel momento. Essariparte appena l’ingresso si riattiva.Raggiunto il valore preimpostato (200 incrementi,corrispondenti a un intervallo di 2 s), il temporizzatoreporta a 1 il Bit di temporizzazione.Tale Bit (e il valore attuale) è riportato a zero solomediante un comando di Reset (pulsante I0.1).
LD I0.0TONR T1 , 200
LD T1= Q0.0
LD I0.1R T1, 1
Temporizzatore TONR
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
Dal momento in cui l’ingresso I0.0 è attivo T1 comincia ascandire gli intervalli di 10 ms.Una disattivazione dell’ingresso congela latemporizzazione scandita fino a quel momento. Essariparte appena l’ingresso si riattiva.Raggiunto il valore preimpostato (200 incrementi,corrispondenti a un intervallo di 2 s), il temporizzatoreporta a 1 il Bit di temporizzazione.Tale Bit (e il valore attuale) è riportato a zero solomediante un comando di Reset (pulsante I0.1).I0.0
Valore preimpostato(2 s)
LD I0.0TONR T1 , 200
LD T1= Q0.0
LD I0.1R T1, 1
13
T1(Valore attuale)
T1 (Bit di temporizzazione)Q0.0
Valore preimpostato(2 s)
t1 t2
t1 + t2 = 2 s
Reset
ESEMPI0 : controllo processo temporizzatoDescrizione: un motore elettrico aziona un utensile che deve operare per 1 min e 12 s.L’avviamento del motore è comandato dal pulsante S1 (NA).L’attivazione del sensore di temperatura B1 (NC) provoca l’arresto del motore. Alla disattivazionedi B1 il motore deve riavviarsi e l’utensile terminare il ciclo di lavoro.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
Cablaggiodegliingressi
NB: B1 a riposo:PLC legge 1
14
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Programmazione
T5: temporizzatore da 100 ms
SIMBOLI INDIRIZZO COMMENTO
S1 I0.0 Pulsante di avvio motore(NA)
B1 I0.1 Sensore di temperatura(NC)
Motore Q0.0
TABELLA DEI SIMBOLIProgramma:
15
Dal momento in cui l’ingresso IN è attivo T33porta a 1 il Bit di temporizzazione.Il conteggio degli intervalli di 10 ms comincia colsopraggiungere di un fronte di discesasull’ingresso. Al raggiungimento del valorepreimpostato si• resetta il Bit di temporizzazione• blocca il conteggio degli intervalli ditempo.Una successiva riattivazione dell’ingresso• resetta il temporizzatore• riporta a 1 il Bit di temporizzazione.
LD I0.0TOF T33 , 160
LD T33= Q0.0
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
Temporizzatore TOF
Dal momento in cui l’ingresso IN è attivo T33porta a 1 il Bit di temporizzazione.Il conteggio degli intervalli di 10 ms comincia colsopraggiungere di un fronte di discesasull’ingresso. Al raggiungimento del valorepreimpostato si• resetta il Bit di temporizzazione• blocca il conteggio degli intervalli ditempo.Una successiva riattivazione dell’ingresso• resetta il temporizzatore• riporta a 1 il Bit di temporizzazione.I0.0
LD I0.0TOF T33 , 160
LD T33= Q0.0
16
I0.0
T33(Valore attuale)
T33 (Bit ditemporizzazione)Q0.0
Valore preimpostato(1.6 s)
1.6 s
Descrizione: il motore elettrico deve avviarsi appena premuto il pulsante S0 e arrestarsidopo un intervallo di 3 s dal momento in cui è premuto il pulsante S1.ESEMPI0: arresto temporizzato di un motore
Soluzione: si sceglie un temporizzatore TOF con base dei tempi 100 ms (esempio:T37). Il fattore moltiplicativo sarà pari a 30.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Temporizzatori
SIMBOLI INDIRIZZO COMMENTO
S0 I0.0 Pulsante di avvio motoreNA
S1 I0.1 Pulsante di arresto NC
Motore Q0.0
Soluzione: si sceglie un temporizzatore TOF con base dei tempi 100 ms (esempio:T37). Il fattore moltiplicativo sarà pari a 30.LD I0.0
S M0.0 , 1
LD M0.0
TOF T37, 30
LD T37
= Q0.0
LD I0.1
R M0.0 , 1
17
Premendo S0 si setta il merker M0.0, il quale, agendosull’ingresso di T37, porta bit T37 immediatamente a 1e di conseguenza all’avvio del motore.Premendo S1 si resetta M0.0. Ciò provoca un fronte didiscesa sull’ingresso di T37, il quale avvia latemporizzazione; raggiunto il valore preimpostato siresetta il bit di temporizzazione T37, e con ciò siarresta il motore.
LD I0.0
S M0.0 , 1
LD M0.0
TOF T37, 30
LD T37
= Q0.0
LD I0.1
R M0.0 , 1
CONFRONTO DI VALORI NUMERICI Gli operandi del confronto possono essere:
Tipo di operando Ladder IL• Byte B B• Numeri interi I W• Numeri interi a 32 bit D D• Numeri reali R R
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Confronto tra valori numerici
==B
IN1
IN2
BYTE NUMERIINTERI
DOUBLEWORD
NUMERIREALI
Il confronto corrisponde ad un contatto il cui statodipende da due valori numerici, con all’interno indicatoil tipo di confronto:LADDER ILLe istruzioni di Load, And, Or, se vere, pongono un 1 incima allo stack (1° livello).
LDB= IN1, IN2Esempi di istruzioni (operandi tipo byte):AB= IN1, IN2OB= IN1, IN2
LDB>= IN1, IN2AB>= IN1, IN2OB>= IN1, IN2……….18
BYTE NUMERIINTERI
DOUBLEWORD
NUMERIREALI
==B ==I ==D ==R
<>B <>I <>D <>R
>=B >=I >=D >=R
<=B <=I <=D <=R
>B >I >D >R
<B <I <D <R
LDB= IN1, IN2Esempi di istruzioni (operandi tipo byte):AB= IN1, IN2OB= IN1, IN2
LDB>= IN1, IN2AB>= IN1, IN2OB>= IN1, IN2……….
ESEMPIO
Il temporizzatore T38 conta intervalli da 100 ms.Quando il valore attuale raggiunge il valore di 40 ilcontatto di confronto si chiude e si attiva l’uscita Q0.0.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Confronto tra valori numerici
Il temporizzatore T38 conta intervalli da 100 ms.Quando il valore attuale raggiunge il valore di 40 ilcontatto di confronto si chiude e si attiva l’uscita Q0.0.
Network 1
LD I0.0
TON T38 , 100
Network 2
LDW>= T38, 40
= Q0.0
I0.0
STACK
b0
b1
I0.0
40
Valore attualedi T38
19
Network 1
LD I0.0
TON T38 , 100
Network 2
LDW>= T38, 40
= Q0.0
b1
b2
T38 >= 40
I0.0
b0
b1
b2 In cima allo stack viene caricato il risultato del confronto.
T38Valore attuale
40
T38 >= 40
Applicazione: generazione di segnale intermittente
Descrizione:
Il pulsante I0.0 avvia l’intermittenza di 1 Hz, con dutycycle del 50%.
Il pulsante I0.1 interrompe l’intermittenza.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Confronto tra valori numerici
Descrizione:
Il pulsante I0.0 avvia l’intermittenza di 1 Hz, con dutycycle del 50%.
Il pulsante I0.1 interrompe l’intermittenza.
20
Area di memoria dei merker speciali: il byte SM0
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Merker speciali
21
NB:• in Ladder occorre un segmento aggiuntivo• Segnalazione luminosa intermittente col bit SM0.5
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Merker speciali
ESEMPIO: Software di controllo che svolge le seguenti operazioni:• conteggio di 6 eventi, raggiunto il limite• attivazione di una segnalazione luminosa con frequenza di intermittenza pari a 1 Hz.
Prevedere la presenza di un pulsante di Start S0 e uno di Stop/Reset S1.
NB:• in Ladder occorre un segmento aggiuntivo• Segnalazione luminosa intermittente col bit SM0.5
22
ESEMPIO
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Confronto tra valori numerici
Carica il valore122 nel byte 0
NB: il codice operativo AB<= eseguel’AND tra• 1° livello dello stack e• il risultato del confronto VB0 <= Vb1
I0.0
Diagrammatemporale I0.1
23
Diagrammatemporale
0
VB0 <= VB1
I0.1
VB0 122
0VB1 234
Q0.0
NB: le istruzioni di confrontosono sempre eseguite,indipendentemente dallo statodel flusso di corrente.
CONTATORI
In Ladder i contatori sono rappresentati mediante box.
Per le operazioni di conteggio si dispone di tre tipi di contatori:
CTU: conta in avanti
CTD: conta indietro
CTUD: conta in avanti / indietro
I contatori contano le transizioni dal basso verso l’alto sui propri ingressi.
Il valore istantaneo scandito dal contatore rappresenta il valore attuale.
Un valore attuale che raggiunge il valore preimpostato (CTU, CTUD) o che si azzera (CTD) provoca uncambiamento dello stato del Bit di conteggio.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori
In Ladder i contatori sono rappresentati mediante box.
Per le operazioni di conteggio si dispone di tre tipi di contatori:
CTU: conta in avanti
CTD: conta indietro
CTUD: conta in avanti / indietro
I contatori contano le transizioni dal basso verso l’alto sui propri ingressi.
Il valore istantaneo scandito dal contatore rappresenta il valore attuale.
Un valore attuale che raggiunge il valore preimpostato (CTU, CTUD) o che si azzera (CTD) provoca uncambiamento dello stato del Bit di conteggio.
24
In Ladder i contatori sono rappresentati mediante box.
Per le operazioni di conteggio si dispone di tre tipi di contatori:
CTU: conta in avanti
CTD: conta indietro
CTUD: conta in avanti / indietro
I contatori contano le transizioni dal basso verso l’alto sui propri ingressi.
Il valore istantaneo scandito dal contatore rappresenta il valore attuale.
Un valore attuale che raggiunge il valore preimpostato (CTU, CTUD) o che si azzera (CTD) provoca uncambiamento dello stato del Bit di conteggio.
I contatori sono 256 (da C0 a C255). Ciascun contatore può essere associato a qualunque dei tre tipiappena descritti.
ESEMPIOValore dipreimpostazione
Reset delcontatore
Ingresso diconteggio
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTU
Contatore CTU
ESEMPIOValore dipreimpostazione
Ad ogni fronte di salita sull’ingresso CU ilcontatore C0 incrementa il proprio valoreattuale di 1.
Al raggiungimento del valorepreimpostato ( es: 4) viene attivato il Bitdi conteggio, che resta tale anche pervalori attuali superiori a quellopreimpostato (il conteggio si arresta se ilvalore attuale raggiunge quello max di32 767).
NB: nell’esempio il Bit di conteggioC0 attiva l’uscita Q0.0.
Il valore attuale è azzerato con attivazionedell’ingresso R.
Network 1LD I0.0LD I0.1CTU C0 , 4Network 2LD C0= Q0.0
CU
RPV
25
Ad ogni fronte di salita sull’ingresso CU ilcontatore C0 incrementa il proprio valoreattuale di 1.
Al raggiungimento del valorepreimpostato ( es: 4) viene attivato il Bitdi conteggio, che resta tale anche pervalori attuali superiori a quellopreimpostato (il conteggio si arresta se ilvalore attuale raggiunge quello max di32 767).
NB: nell’esempio il Bit di conteggioC0 attiva l’uscita Q0.0.
Il valore attuale è azzerato con attivazionedell’ingresso R.
NB: un reset sempre attivo impedisce al valore attuale di incrementarsi al sopraggiungere di un fronte di salita su CU.
Network 1LD I0.0LD I0.1CTU C0 , 4Network 2LD C0= Q0.0
Diagramma temporale CTUProf. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTU
CU
Valore attuale C0
R
12
34
5
10 0
26
C0 (Bit di conteggio)Q0.0
Valore attuale C0 0 0
Il reset attivo impediscel’aggiornamento del valoreattuale
ESEMPIO
Ingresso che forzail valore attuale aquellopreimpostato
Ingresso diconteggio indietro
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTD
Contatore CTD
Valore dipreimpostazione
Con l’attivazione dell’ingresso LD si faassumere il valore preimpostato (es: 4) alvalore attuale (e si resetta il Bit di conteggio).
Ad ogni fronte di salita sull’ingresso CD ilcontatore C0 decrementa il proprio valoreattuale di 1.
NB: un LD ancora attivo impedisce alcontatore di decrementare il valoreattuale.
Al raggiungimento dello zero da parte delvalore attuale viene attivato il Bit di conteggioe il contatore si arresta.
NB: nell’esempio il Bit di conteggio C0attiva l’uscita Q0.0.
Network 1LD I0.0LD I0.1CTD C0 , 6Network 2LD C0= Q0.0
CD
LDPV
+4
27
Con l’attivazione dell’ingresso LD si faassumere il valore preimpostato (es: 4) alvalore attuale (e si resetta il Bit di conteggio).
Ad ogni fronte di salita sull’ingresso CD ilcontatore C0 decrementa il proprio valoreattuale di 1.
NB: un LD ancora attivo impedisce alcontatore di decrementare il valoreattuale.
Al raggiungimento dello zero da parte delvalore attuale viene attivato il Bit di conteggioe il contatore si arresta.
NB: nell’esempio il Bit di conteggio C0attiva l’uscita Q0.0.
Network 1LD I0.0LD I0.1CTD C0 , 6Network 2LD C0= Q0.0+4
Diagramma temporale CTDProf. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTD
CD
Valore attuale C0
LD
12
34 4
0
3
28
C0 (Bit di conteggio)Q0.0
Valore attuale C0 0
Il load attivo impedisce l’aggiornamentodel valore attuale
ESEMPIO Contatori CTU e CTD
Descrizione Progettare il controllo di un nastro trasportatore, azionato da motore, su cui viaggiano dei pezzi. Il ciclo cominciapremendo il pulsante S1 (NA), che aziona il nastro. Un finecorsa B1 (NA) segnala che il pezzo è giunto a destinazione. Dopo 10conteggi il ciclo ha termine. Per la ripetizione del ciclo occorre premere nuovamente S1.
29
ESEMPIO
Contatore CTUD
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTUD
Inizialmente il contatore C0 ha valore attualenullo,
• al sopraggiungere di un fronte di salitasu CU incrementa il valore attuale
• al sopraggiungere di un fronte di salitasu CD decrementa il valore attuale
NB: il valore attuale può assumereanche valori negativi.
Quando il valore attuale raggiunge il valorepreimpostato (es: 4) si attiva il Bit di conteggio(che resta attivo finchè il valore attuale è >= aquello preimpostato).
Il contatore viene resettato con l’attivazionedell’ingresso R, che azzera il valore attuale e diconseguenza il Bit di conteggio.
Network 1LD I0.0LD I0.1LD I0.2CTUD C0 , 4Network 2LD C0= Q0.0
CU
CD
PV
R
30
Inizialmente il contatore C0 ha valore attualenullo,
• al sopraggiungere di un fronte di salitasu CU incrementa il valore attuale
• al sopraggiungere di un fronte di salitasu CD decrementa il valore attuale
NB: il valore attuale può assumereanche valori negativi.
Quando il valore attuale raggiunge il valorepreimpostato (es: 4) si attiva il Bit di conteggio(che resta attivo finchè il valore attuale è >= aquello preimpostato).
Il contatore viene resettato con l’attivazionedell’ingresso R, che azzera il valore attuale e diconseguenza il Bit di conteggio.
Network 1LD I0.0LD I0.1LD I0.2CTUD C0 , 4Network 2LD C0= Q0.0
PV
ESEMPIO
Progettare l’automazione di un parcheggio di 100 posti auto che svolga il seguentecontrollo:
• pulsanti di avvio del sistema S0 e Stop/Reset S1
• gestione di due pannelli di segnalazione: “Completo” (P1) , “Libero” (P2).
• pulsanti di auto in entrata S2 e auto in uscita S3, entrambi NA
Parcheggio
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTUD
Progettare l’automazione di un parcheggio di 100 posti auto che svolga il seguentecontrollo:
• pulsanti di avvio del sistema S0 e Stop/Reset S1
• gestione di due pannelli di segnalazione: “Completo” (P1) , “Libero” (P2).
• pulsanti di auto in entrata S2 e auto in uscita S3, entrambi NAS2S3 P1P2
SIMBOLI INDIRIZZO COMMENTO
SOLUZIONE
31
SIMBOLI INDIRIZZO COMMENTO
S0 I0.0 Pulsante di avvio NA
S1 I0.1 Pulsante di stop / reset NA
S2 I0.2 Auto in ingresso NA
S3 I0.3 Auto in uscita NA
P1 Q0.0 Panello “Completo”
P2 Q0.1 Pannello “Libero”
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTUD
32
+100
TRANSIZIONI
TRANSIZIONE POSITIVA
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Transizioni
NB: Un fronte di salita nelcontatto P determinal’emissione di un impulsoche dura 1 ciclo discansione.
Q0.0 attiva per un ciclo.
LD I0.0
EU
= Q0.0
L’istruzione EU (Edge Up)rileva una variazione di statodi I0.0:
• se da 0 a 1 (fronte positivo)pone 1 in cima allo stack
• altrimenti pone 0.
TRANSIZIONE NEGATIVANB: Un fronte di discesanel contatto N determinal’emissione di unimpulso che dura 1 ciclodi scansione.
Q0.0 attiva per un ciclo.
LD I0.0
ED
= Q0.0
L’istruzione ED (Edge Down)rileva una variazione di stato diI0.0:
• se da 1 a 0 (fronte negativo)pone 1 in cima allo stack
• altrimenti pone 0.
33
NB: Le transizioni positive e negative consistono in un cambiamento di stato del bitdi ingresso. Ciò implica l’impossibilità di rilevarle durante il primo ciclo di scansione.
NB: Un fronte di discesanel contatto N determinal’emissione di unimpulso che dura 1 ciclodi scansione.
Q0.0 attiva per un ciclo.
LD I0.0
ED
= Q0.0
L’istruzione ED (Edge Down)rileva una variazione di stato diI0.0:
• se da 1 a 0 (fronte negativo)pone 1 in cima allo stack
• altrimenti pone 0.
ESEMPIO
In modo RUN le variazionidello stato di Q0.1 e Q0.2sono troppo rapide per esserevisibili nello ‘stato delprogramma’.
Le uscite S e R congelanol’impulso in Q0.0 econsentono di vedere lavariazione nellavisualizzazione ‘stato delprogramma’.
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Transizioni
Versione 1 Versione 2
In modo RUN le variazionidello stato di Q0.1 e Q0.2sono troppo rapide per esserevisibili nello ‘stato delprogramma’.
Le uscite S e R congelanol’impulso in Q0.0 econsentono di vedere lavariazione nellavisualizzazione ‘stato delprogramma’.Network 1LD I0.0EUS Q0.0 , 1= Q0.1Network 2LD I0.0EDR Q0.0 , 1= Q0.2
34
I0.0
Q0.0
Q0.1
Q0.2
Uscite attive solo perun ciclo di scansione
Network 1LD I0.0EUS Q0.0 , 1= Q0.1Network 2LD I0.0EDR Q0.0 , 1= Q0.2
APPROFONDIMENTO: Alternativa ai contatori
Facendo ricorso alle variabili e alle transizioni è possibileevitare del tutto il ricorso ai contatori.ESEMPIO: Soluzione con i contatori
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Variabili
35
Soluzione con le variabili:
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Variabili
36( ... scontinua)
Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Variabili
( ... segue)
Il RESET agisce solo sui bit.
In alternativa: MOVB 0, VB0
37