Sei sulla pagina 1di 34

PLC - Programmazione Prof.

Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

PROGRAMMAZIONE PLC Siemens s7-200

TABELLA DEI SIMBOLI

ESEMPI0: SIMBOLI INDIRIZZO COMMENTO

controllo marcia/arresto di un motore SB0 I0.0 Pulsante di avvio motore

SB1 I0.1 Pulsante di stop

Motore Q0.0

STACK
VERSIONE 1 (Contatto di autoritenuta)
b0 I0.0
b1
LADDER IL
b2

LD I0.0
b0 I0.0 OR Q0.0
b1
O Q0.0
b2

AN I0.1
b0 [I0.0 OR Q0.0] AND NOT I0.1
b1
= Q0.0 b2

1
PLC - Programmazione Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

VERSIONE 2 (comando Set / Reset)

LADDER IL

Network 1
b0 I0.0
LD I0.0
b1
S Q0.0 , 1
b2

Network 2

LD I0.1
b0 I0.1
R Q0.0 , 1
b1 I0.0

b2

NB: lo stack cresce verso il basso mediante lo scorrimento dei


valori che sono già presenti al suo interno.

Il nuovo dato è inserito in cima.

ESERCIZIO: Scrivere un software di controllo che permetta l’avvio di un motore in seguito alla contemporanea
pressione di due pulsanti S1 e S2 e l’accensione della relativa lampada di segnalazione. Il controllo deve arrestare il
motore in seguito all’attivazione del finecorsa B1 o del pulsante S3.
2
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Numero del
Temporizzatore

TEMPORIZZATORI Ingresso che avvia la


temporizzazione
Tipo di
Temporizzatore

Fattore moltiplicativo
della base dei tempi

Il numero e il fattore moltiplicativo del temporizzatore dipendono dalla risoluzione (base dei tempi) di cui si ha
bisogno. Si hanno tre possibili risoluzioni: 1 m, 10 ms, 100 ms.
I temporizzatori sono 256. Attraverso il numero si indica la risoluzione.

Esempio: l’intervallo di 2 s può essere realizzato mediante temporizzatore da


• 1 ms con fattore moltiplicativo pari a 2000 NB: Se, per esempio, il T33 è utilizzato come
• 10 ms con fattore moltiplicativo pari a 200 TON, non può nello stesso programma essere
• 100 ms con fattore moltiplicativo pari a 20. utilizzato come TOF.

3
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Temporizzatore TON

LADDER
IL
Dal momento in cui l’ingresso IN è attivo T33
Network 1
comincia a scandire gli intervalli di 10 ms.
LD I0.0
Raggiunto il valore preimpostato (160 incrementi, TON T33 , 160
corrispondenti a un intervallo di 1.6 s), il
temporizzatore porta a 1 il Bit di temporizzazione. Network 2
LD T33
Il funzionamento del temporizzatore può essere
= Q0.0
meglio compreso attraverso i diagrammi temporali.

I0.0

Max fattore moltiplicativo 32 767

Valore preimpostato 1.6 s


( 160 )

T33
(Valore attuale)

T33 (Bit di temporizzazione)


Q0.0
4
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPI0: avviamento temporizzato di un motore


Descrizione: il motore elettrico deve essere avviato dopo 2.4 s dal momento in cui viene
premuto il pulsante S0. L’arresto avviene premendo il pulsante S1.

LADDER

IL

SIMBOLI INDIRIZZO COMMENTO Network 1


LD I0.0
Pulsante di avvio
S0 I0.0 O M0.0
motore
= M0.0
S1 I0.1 Pulsante di arresto

Motore Q0.1
Network 2
LD M0.0
TON T37, 24
Premendo S0 si attiva il merker M0.0, il quale
resta attivo per il contatto di autoritenuta.
Network 3
L’attivazione del merker avvia la
LD T37
temporizzazione di T37, il quale raggiunto il
S Q0.1 , 1
valore preimpostato attiva il Bit di
temporizzazione T37. R M0.0 , 1

L’attivazione del Bit di temporizzazione pone in


Network 4
marcia il motore e disattiva il merker M0.0 (non
più necessario al valore alto). LD I0.1
R Q0.1 , 1
L’attivazione del pulsante S1 arresta il motore.

5
Altre versioni

6
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Temporizzatore TONR
LADDER
IL
Dal momento in cui l’ingresso I0.0 è attivo T1 comincia a
scandire gli intervalli di 10 ms. LD I0.0
TONR T1 , 200
Una disattivazione dell’ingresso blocca la temporizzazione,
che riparte appena l’ingresso si riattiva. LD T1
Raggiunto il valore preimpostato (200 incrementi, = Q0.0
corrispondenti a un intervallo di 2 s), il temporizzatore
porta a 1 il Bit di temporizzazione. LD I0.1
R T1, 1
Tale Bit è riportato a zero solo mediante un comando di
Reset (pulsante I0.1).

I0.0

Valore preimpostato t1 t2
(2 s)

T1 t1 + t2 = 2 s
(Valore attuale)

T1 (Bit di temporizzazione)
Q0.0

Reset
7
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPI0 : controllo processo temporizzato

Descrizione: un motore elettrico aziona un utensile che deve operare


per 1 min e 12 s.

L’avviamento del motore è comandato dal pulsante S1.

L’attivazione del sensore di temperatura B1 provoca l’arresto del


motore. Alla disattivazione di B1 il motore deve riavviarsi e l’utensile
terminare il ciclo di lavoro.

T5: temporizzatore da 100 ms

8
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Temporizzatore TOF

LADDER IL
Dal momento in cui l’ingresso IN è attivo T33
porta a 1 il Bit di temporizzazione.
LD I0.0
Il conteggio degli intervalli di 10 ms comincia col TOF T33 , 160
sopraggiungere di un fronte di discesa
sull’ingresso. Al raggiungimento del valore LD T33
preimpostato si = Q0.0
• resetta il Bit di temporizzazione
• blocca il conteggio degli intervalli di
tempo.
Una successiva riattivazione dell’ingresso
• resetta il temporizzatore
• riporta a 1 il Bit di temporizzazione.

I0.0

1.6 s
Valore preimpostato
(1.6 s)

T33
(Valore attuale)

T33 (Bit di
temporizzazione)
Q0.0
9
PLC - Temporizzatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPI0: arresto temporizzato di un motore

Descrizione: il motore elettrico deve avviarsi appena premuto il pulsante S0 e arrestarsi


dopo un intervallo di 3 s dal momento in cui è premuto il pulsante S1.

LADDER Soluzione: si sceglie un temporizzatore TOF con base dei IL


tempi 100 ms (esempio: T37). Il fattore moltiplicativo
sarà pari a 30.
LD I0.0
S M0.0 , 1
SIMBOLI INDIRIZZO COMMENTO
LD M0.0
SB0 I0.0 Pulsante di avvio motore
TOF T37, 30
SB1 I0.1 Pulsante di arresto

Motore Q0.0 LD T37


= Q0.0

Premendo S0 si setta il merker M0.0, il quale agendo


sull’ingresso di T37 fa si che il bit T37 si porti LD I0.1

immediatamente a 1 e con ciò che si avvii il motore. R M0.0 , 1

Premendo S1 si resetta M0.0. Ciò provoca un fronte di


discesa sull’ingresso di T37, il quale avvia la
temporizzazione; raggiunto il valore preimpostato si
resetta il bit di temporizzazione T37, e con ciò si
arresta il motore.

10
PLC - Contatori Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

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 un cambiamento
dello stato del Bit di conteggio.

I contatori sono 256 (da C0 a C255). Ciascun contatore può essere associato a qualunque dei tre tipi appena
descritti.

11
PLC - Contatori - CTU Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Contatore CTU Ingresso di


conteggio

Reset del
contatore

Valore di
preimpostazione
ESEMPIO

LADDER IL
Ad ogni fronte di salita sull’ingresso CU il
contatore C0 incrementa il proprio Network 1
valore attuale di 1. CU
LD I0.0
Al raggiungimento del valore
preimpostato ( es: 4) viene attivato il Bit R
LD I0.1
di conteggio, che resta tale anche per PV
valori attuali superiori a quello CTU C0 , 4
preimpostato (il conteggio si arresta se il
valore attuale raggiunge quello max di 32 Network 2
767). LD C0
NB: nell’esempio il Bit di conteggio = Q0.0
C0 attiva l’uscita Q0.0.
Il valore attuale è azzerato con
l’attivazione dell’ingresso R.
NB: un reset sempre attivo impedisce al valore attuale di incrementarsi al sopraggiungere di un fronte di salita su CU.

12
PLC - Contatori - CTU Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Diagramma temporale CTU

CU

5
4
3
2
1 1
Valore attuale C0
0 0

C0 (Bit di conteggio)
Q0.0

Il reset attivo impedisce


l’aggiornamento del valore
attuale
13
PLC - Contatori - CTD Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Contatore CTD
Ingresso di
conteggio indietro

Ingresso che forza


il valore attuale a
quello
ESEMPIO preimpostato

Valore di
preimpostazione
LADDER IL
Con l’attivazione dell’ingresso LD si fa
Network 1
assumere il valore preimpostato (es: 6) al
CD
valore attuale (e si resetta il Bit di conteggio).
LD I0.0
Ad ogni fronte di salita sull’ingresso CD il
LD
contatore C0 decrementa il proprio valore LD I0.1
PV
attuale di 1.
CTD C0 , 6
NB: un LD ancora attivo impedisce al
contatore di decrementare il valore Network 2
attuale. LD C0
Al raggiungimento dello zero da parte del = Q0.0
valore attuale viene attivato il Bit di conteggio
e il contatore si arresta.
NB: nell’esempio il Bit di conteggio C0
attiva l’uscita Q0.0.

14
PLC - Contatori - CTD Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Diagramma temporale CTD

CD

LD

4 4
3 3
2
1
Valore attuale C0
0

C0 (Bit di conteggio)
Q0.0

Il load attivo impedisce


l’aggiornamento del valore attuale

15
ESEMPIO Contatori CTU e CTD

Descrizione Progettare il controllo di un nastro trasportatore, azionato da motore, su cui viaggiano dei
pezzi. Il ciclo comincia premendo il pulsante S1, che aziona il nastro. Un finecorsa B1 segnala che il pezzo è
giunto a destinazione. Dopo 10 conteggi il ciclo ha termine.

16
PLC - Contatori - CTUD Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Contatore CTUD

ESEMPIO

LADDER Inizialmente il contatore C0 ha valore attuale


IL
nullo,
• al sopraggiungere di un fronte di
salita su CU incrementa il valore Network 1
attuale CU
LD I0.0
• al sopraggiungere di un fronte di
CD
salita su CD decrementa il valore LD I0.1
attuale
R
LD I0.2
NB: il valore attuale può PV
assumere anche valori negativi.
CTUD C0 , 4
Quando il valore attuale raggiunge il valore
preimpostato (es: 4) si attiva il Bit di Network 2
conteggio (che resta attivo finchè il valore LD C0
attuale è >= a quello preimpostato).
= Q0.0
Il contatore viene resettato con l’attivazione
dell’ingresso R, che azzera il valore attuale e
di conseguenza il Bit di conteggio.

17
PLC - Contatori - CTUD Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPIO

Progettare l’automazione di un parcheggio di 100 posti auto che svolga il


seguente controllo:
Parcheggio • pulsanti di avvio del sistema S0 e Stop/Reset S1
• gestione di due pannelli di segnalazione: “Completo” (P1) ,
“Libero” (P2).

S3 P1 S2 • pulsanti di auto in entrata S2 e auto in uscita S3

P2

SOLUZIONE

SIMBOLI INDIRIZZO COMMENTO

S0 I0.0 Pulsante di avvio

S1 I0.1 Pulsante di stop / reset

S2 I0.2 Auto in ingresso

S3 I0.3 Auto in uscita

P1 Q0.0 Panello “Completo”

P2 Q0.1 Pannello “Libero”

18
PLC - Contatori - CTUD Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

+100

19
PLC - Confronto tra valori numerici Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

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

LADDER IL

Il confronto corrisponde ad un contatto il cui stato Le istruzioni di Load, And, Or, se vere, pongono un 1 in
dipende da due valori numerici, con all’interno indicato cima allo stack (1° livello).
il tipo di confronto:
IN1
==B LDB= IN1, IN2
IN2

Esempi di istruzioni (operandi tipo byte):


NUMERI DOUBLE NUMERI
BYTE
INTERI WORD REALI AB= IN1, IN2
==B ==I ==D ==R OB= IN1, IN2
<>B <>I <>D <>R

>=B >=I >=D >=R


LDB>= IN1, IN2
<=B <=I <=D <=R
AB>= IN1, IN2
>B >I >D >R
OB>= IN1, IN2
<B <I <D <R
……….

20
PLC - Confronto tra valori numerici Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPIO

Il temporizzatore T38 conta intervalli da 100 ms.


Quando il valore attuale raggiunge il valore di 40 il
contatto di confronto si chiude e si attiva l’uscita Q0.0.
Valore attuale
di T38

I0.0

STACK

Network 1 b0 I0.0
40
b1
LD I0.0
T38
b2
Valore attuale
TON T38 , 100

T38 >= 40
Network 2 b0 T38 >= 40

b1 I0.0
LDW>= T38, 40
b2
= Q0.0 In cima allo stack viene caricato il risultato del confronto.
21
PLC - Confronto tra valori numerici Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPIO

NB: il codice operativo AB<= esegue


l’AND tra
• 1° livello dello stack e
• il risultato del confronto VB0 <= Vb1

I0.0

Diagramma
I0.1
temporale

VB0 0 122

VB1 0 234

NB: le istruzioni di confronto VB0 <= VB1


sono sempre eseguite,
indipendentemente dallo stato Q0.0
del flusso di corrente.
22
PLC - Confronto tra valori numerici Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPIO: Software di controllo che svolge le seguenti operazioni:


• conteggio di 6 eventi, raggiunto il limite
• attivazione di una segnalazione luminosa con frequenza di lampeggio pari a 1 Hz.
NB: con presenza di un pulsante di Start S0 e uno di Stop/Reset S1.

23
PLC - Merker speciali Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Byte SM0:

24
PLC - Merker speciali Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

ESEMPIO: Segnalazione luminosa intermittente col bit SM0.5

25
PLC - Transizioni Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

TRANSIZIONI

TRANSIZIONE POSITIVA

LD I0.0 L’istruzione EU (Edge Up) NB: Un fronte di salita nel


rileva una variazione di stato contatto P determina
EU di I0.0:
l’emissione di un impulso
= Q0.0 • se da 0 a 1 (fronte positivo) che dura 1 ciclo di
pone 1 in cima allo stack
scansione.
• altrimenti pone 0.

TRANSIZIONE NEGATIVA
L’istruzione ED (Edge Down) NB: Un fronte di salita
LD I0.0 rileva una variazione di stato di nel contatto N
I0.0: determina l’emissione
ED
• se da 1 a 0 (fronte negativo) di un impulso che dura
= Q0.0
pone 1 in cima allo stack 1 ciclo di scansione.
• altrimenti pone 0.

NB: Le transizioni positive e negative consistono in un cambiamento di stato del bit


di ingresso. Ciò implica l’impossibilità di rilevarle durante il primo ciclo di scansione.
26
PLC - Transizioni Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Versione 1 ESEMPIO Versione 2

In modo RUN le variazioni


dello stato di Q0.1 e Q0.2 sono
troppo rapide per essere
visibili nello ‘stato del
programma’.

Le uscite S e R congelano
l’impulso in Q0.0 e consentono
di vedere la variazione nella
visualizzazione ‘stato del
programma’.

Network 1
LD I0.0
EU
S Q0.0 , 1 I0.0
= Q0.1
Network 2
Q0.0
LD I0.0
ED
R Q0.0 , 1 Q0.1
Uscite attive solo per
= Q0.2
un ciclo di scansione
Q0.2

27
PLC - Memoria Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

MEMORIA
Accesso ai dati dell’S7 - 200

Memoria Indirizzi Memoria Memoria


dei Byte

Byte (B)


… Double Word (D)

98
Word (W) 98 98
• 8 bit Byte 99 VB99
Byte 99 VB99 • 16 bit Byte 99 VB99 • 32 bit
• indirizzi sia 100 VD100
2 Byte

Byte 100 VB100 100 VW100 • indirizzi


• indirizzi

4 Byte
dispari che Word
Byte 101 solo pari Double 101
pari 101 VB101 solo pari
102 VW102 Word 102
Byte 102 VB102
2 Byte

Word
103 VB103 103 103
Byte
104


104

104 VB104

28
PLC - Memoria Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Indirizzamento formato Byte.bit : Idendificatore Byte . bit

29
PLC - Memoria Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

Indirizzamento formato Byte : Idendificatore TipoDato Indirizzo

30
PLC - Memoria Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

AREE DI MEMORIA IDENTIFICATORE Per CPU 224

OPERANDI
AREA DESCRIZIONE
(formato)

Registro di immagine È la memoria dove vengono scritti i valori degli ingressi digitali letti
Byte.bit
di processo degli I Byte, Word, Double Word
all’inizio del ciclo di scansione
ingressi ES: I0.1 IB3 IW8 ID10 (I0.0 → I15.7)

Registro di immagine Byte.bit È la memoria dove vengono trascritti i valori delle nuove uscite quali
risultanti dall’esecuzione del programma utente, prima di essere portati
di processo delle Q Byte, Word, Double Word
all’esterno
uscite ES: Q0.1 QB3 QW8 QD10 (Q0.0 → Q15.7)

È la memoria dove vengono memorizzati i risultati intermedi emersi


Memoria delle Byte.bit
dall’esecuzione del programma utente
variabili globali
V Byte, Word, Double Word
ES: V0.1 VB3 VW8 VD10 (V0.0 → V5119.7)

È la memoria dove si possono memorizzare stati intermedi


Byte.bit
Memoria dei merker M Byte, Word, Double Word
dell’esecuzione del programma utente
ES: M0.1 MB3 MW8 MD10 (M0.0 → M31.7)

È la memoria riservata ai temporizzatori. Questi generano intervalli di


Memoria dei Numero
tempo con risoluzione di 1 ms, 10 ms o 100 ms
temporizzatori
T temporizzatore
(T0 → T255)

Numero È la memoria riservata ai contatori. Questi possono essere di tre tipi:


Memoria dei contatori C contatore avanti, indietro, avanti/indietro (C0 → C255)

Memoria dei contatori Numero Conteggiano eventi veloci indipendenti dal ciclo di scansione della CPU
veloci
HC contatore (HC0 → HC5)

31
PLC - Memoria Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

IDENTIFICATORE

OPERANDI
AREA DESCRIZIONE
(formato)

Sono registri di lettura/scrittura che possono essere usati come


Memoria degli Numero
AC memoria (es: passare parametri da e verso sottoprogrammi)
accumulatori accumulatore
(AC0 → AC3)
I merker speciali consentono di scambiare informazioni tra la CPU e
Memoria dei merker Byte.bit
il programma in esecuzione
speciali SM Byte, Word, Double Word
ES: SM0.1 SMB3 SMW8 SMD10 (SM0.0 → SM549.7)
È una memoria simile alla V, ma con la differenza che quest’ultima è
Byte.bit globale, cioè accessibile da qualunque punto del programma utente
Memoria locale L (anche da sottoprogrammi)
Byte, Word, Double Word
ES: L0.1 LB3 LW8 LD10 (L0.0 → L63.7)

È l’area di memoria dedicata alla conversione analogica – digitale


Ingressi analogici AI Word
ES: AIW2 (AIW0 → AIW62)

È l’area di memoria dedicata alla conversione digitale - analogica


Uscite analogici AQ Word
ES: QIW2 (AQW0 → AQW62)

I bit SCR o S servono ad organizzare il funzionamento o le fasi di


Area di memoria dei relè lavoro di un impianto in segmenti di programmi equivalenti,
Byte.bit
di controllo sequenziale S permettono la segmentazione logica del programma di controllo
Byte, Word, Double Word
(SCR)
ES: S0.1 SB3 SW8 SD10 (S0.0 → S31.7)

32
PLC - Variabili Prof. Capuzzimati Mario - ITIS “Magistri Cumacini” - Como

APPROFONDIMENTO: Alternativa ai contatori

Facendo ricorso alle variabili e alle transizioni è possibile evitare del tutto il ricorso ai contatori.
ESEMPIO: Soluzione con i contatori

33
Soluzione con le variabili:

MOVB 0, VB0
34

Potrebbero piacerti anche