PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof....

37

Click here to load reader

Transcript of PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof....

Page 1: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 2: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 3: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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.

Page 4: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 5: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 6: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 7: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Indirizzamento formato Byte.bit : Idendificatore Byte . bit

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria

7

Page 8: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Indirizzamento formato Byte : Idendificatore TipoDato Indirizzo

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Memoria

8

Page 9: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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.

Page 10: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 11: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 12: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Altre versioni

12

Page 13: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 14: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 15: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 16: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 17: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 18: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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……….

Page 19: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 20: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 21: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Area di memoria dei merker speciali: il byte SM0

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Merker speciali

21

Page 22: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 23: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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.

Page 24: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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.

Page 25: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 26: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 27: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 28: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 29: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 30: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 31: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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”

Page 32: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Contatori - CTUD

32

+100

Page 33: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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.

Page 34: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 35: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

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

Page 36: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Soluzione con le variabili:

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Variabili

36( ... scontinua)

Page 37: PROGRAMMAZIONE PLC Siemens s7-200 · PROGRAMMAZIONE PLC Siemens s7-200 PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como “In quel periodo mi occupavo

Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - ComoPLC - Variabili

( ... segue)

Il RESET agisce solo sui bit.

In alternativa: MOVB 0, VB0

37