Post on 25-Jan-2019
Stefano Panzieri Ladder Logic - 1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
LADDER
LOGIC
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 2
Linguaggi di Programmazione
◊ IEC 1131◊ Linguaggio a contatti (Ladder Diagram)
◊ Diagramma a blocchi funzionali (FBD)
◊ Diagramma sequenziale funzionale (SFC)
◊ Lista di istruzioni
◊ Testo strutturato
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 3
Ladder Diagram
I1:4
I1:7
I1:7
I1:4
U3:15
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 4
Functional Block Diagram (1)
&
&
+
&
I22
M3
I2
I15
I4
U31
M22
U6
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 5
Functional Block Diagram (2)
F1
X1
Y1
X2
F2
X1
Y1
X2
Y2
X3
F3
A1 B1
A2 B2
I1
I2
I3
I4
>BACK>
>BACK>
U1
U2
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 6
Sequential Functional Chart
10
1
20
31 41
11
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 7
Linguaggi Testuali
◊ Lista di istruzioni
Start LD i25
ADD var
MUL 10
SUB livello
GT 25
STO m2
LD u39
◊ Testo strutturatoIf (livello<livello_max)
then
valvola1 = true
else
allarme = true
valvola1 = false
end_if
aux=i25*10-4
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 8
Linguaggio a contatti virtuale
◊ Area degli ingressi◊ I1-I32 Ix:y
◊ Area delle uscite◊ U1-U32 Ux:y
◊ Area dei Temporizzatori◊ T1-T16 Tx
◊ Area Contatori◊ C1-C16 Cx
◊ Area PID◊ P1-P4 Px
◊ Area Utente◊ W1-W512 -> Wx:y
◊ Database (eventuale)◊ Address/Symbols
◊ Instruction comments
◊ Rung comments
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 9
Ladder Logic
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 10
Istruzioni di base
◊ Contatto normalmente aperto◊ Si chiude se il bit vale 1
◊ Contatto normalmente chiuso◊ Si apre se il bit vale 1
◊ Bobina◊ Se le condizioni logiche alla sua
sinistra sono verificate l’uscita associata andrà ad 1 (ON)
◊ Latch bobina◊ Mantiene lo stato ON anche
quando le condizioni di attivazione vengono a mancare
◊ Unlatch bobina◊ Riporta ad OFF un’uscita
L
U
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 11
Esempio di Rung
I1 I3 I4
I5
I7
I2 U1
I6
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 12
Programmazione di una XOR
I1:4
I1:7
I1:7
I1:4
U3:15
I1:4
U3:15
I1:7
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 13
Programmazione di un elemento di memoria
I2:2
U1:1
I3:9
I2:2
U1:1
I3:9 U1:1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 14
Riconoscimento di Fronte di Salita
I1:1
W1:1
W1:2
I1:1 W1:2 W1:1
W1:2
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 15
Riconoscimento di Fronte di Discesa
I1:1
W1:1
W1:2
I1:1 W1:2 W1:1
W1:2
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 16
Flip-Flop di tipo D
I1:1
W1:1
W1:2
U2:1
I1:1
W1:1
W1:2 W1:1
W1:2
U2:1
U2:1
U
L
U2:1
U2:1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 17
Due Programmi Non Equivalenti
I1:1 U4:1
U4:1 U1:15
U1:15 U6:3I1:1 U4:1
U4:1 U1:15
U1:15 U6:3
L’ordine con cui vengono eseguiti i vari Rung è fondamentale
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 18
Istruzioni di Temporizzazione
◊ Temporizzatore Tx◊ Se il rung che lo contiene è abilitato conta il trascorrere del tempo
fino ad un valore preimpostato.
◊ Quando arriva a questo valore Tx diventa vero.
◊ In Tx.acc è possibile leggere il tempo trascorso
◊ Se il rung torna falso prima del completamento del tempo Tx si disattiva.
◊ Temporizzatore a ritenuta TxR◊ Continua a contare anche se il rung di attivazione diventa falso.
◊ Reset temporizzatore RES◊ Resetta un temporizzatore a ritenuta.
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 19
Temporizzatori
I3:1
T2
W5:2
U3:2
T2
6000
I4:2
T4R
1000
T2 W1:5T4
T4R
RES
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 20
Ritardo di Spegnimento
I1:1
T1
U2:1
5s
I1:1 T1 U2:1
U2:1
T1
500
I1:1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 21
Oscillatore ad Onda Quadra
I10:3
T6
T5
U2:4
2s 3s
I10:3
U2:4
T5
200
T5
T6
300
T6
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 22
Impulso all’Accensione
I3:2
T1
U2:1
1s
I3:2
U2:4
T1
100
T1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 23
Impulso allo Spegnimento
I1:1
W2:2
W2:1
U1:1
T9
2s
I1:1 I1:1
W2:2 W2:1
T9
200
W2:1 W2:2T9
I1:1 U1:1W2:2
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 24
Istruzioni di Conteggio
◊ Contatore ad incremento◊ Se il rung di attivazione subisce una transizione falsovero il
contatore Cx si incrementa di un’unità.
◊ Cx.acc contiene il valore attuale del contatore
◊ Cx diventa vero quando il contatore raggiunge il limite preimpostato.
◊ Reset contatore◊ Riporta a zero il contatore Cx
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 25
Contatore
I1:2
C2
W1:4
U2:4
C2
122
C2
RES
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 26
Conteggio di EventiI1:1 W1:2
W2:1
C4
3
C4 U1:1
C4
W1:1
U1:1 W1:1
C4
RES
I1:1
W1:1
U1:1
C4
W1:2
W1:2 sostituire a w2:1
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 27
Temporizzatori e Contatori in Cascata
I1:1
T1
360000
T2
180000
T1
T5
6000
T5
C5
1000
T5
I2:2 C5
RES
I5:4
C7
500
C8
10
C7
C7
RES
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 28
Controllo del programma
◊ Etichetta --|LBL|--◊ Label per salti
◊ Salto --(JMP)--◊ Se il rung è abilitato il programma passa al rung con l’etichetta indicata
◊ Salto a sottoprogramma –(JSR)–
◊ Inizio sottoprogramma --|SBR|--
◊ Ritorno da sottoprogramma –(RET)–
◊ Master Control Relay –(MCR)– … –(MCR)–◊ I rung della zona delimitata non vengono eseguiti se la condizione è
falsa, e le bobine di uscita vengono resettate
◊ Zone control Last State –(ZCL)– … –(ZCL)–◊ I rung della zona delimitata non vengono eseguiti ma le bobine di uscita
rimangono inalterate.
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 29
Esempio di Utilizzo del Salto
W1:1 200
JMP
(procedura di inizializzazione)
L
W1:1
200
LBL
(programma)
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 30
Esempio di Utilizzo del Master Control Relay
MCR
MCR
(zona controllata)
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 31
Esempio di Utilizzo del Salto a
Sottoprogramma
JSR
RET
(sottoprogramma)
300
JSR
300
SBR
300
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 32
Istruzione MOV
MOV
OP1
OP2
Trasferimento di memoria
Il contenuto di una word è
trasferito in un’altra word
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 33
Operazioni Aritmetico/Logiche
XXX
OP1
OP2
RES
Operazioni aritmetico/logiche a due operandi
ADD
MUL
SUB
DIV
AND
OR
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 34
Istruzioni di Comparazione
yyy
OP1
OP2
Le istruzioni di comparazione fanno parte delle
condizioni di attivazione dei rung
EQU
NEQ
GEQ
LEQ
GRT
LES
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 35
Esempio di Utilizzo di Operazioni Aritmetiche e istruzioni di
Comparazione
W3:1
SUB
I2
25
W1
MOV
W1
W125
MCR
MCR
GEC
W1
90
LEQ
W1
120
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 36
Altra Versione dell’Oscillatore
I10:3
GRT
T5.acc
200
T5
T5
500
U2:4
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 37
Registro a Scorrimento a Destra
RSD
W3
I2:1
Registro di scorrimento a destra
Nel caso in cui il rung sia attivato la word W viene
shiftata a destra di un bit
A sinistra entra il bit indicato come secondo operando
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 38
Esempio di Utilizzo del Registro a Scorrimento
I22:1
EQU
I23
654
U1:1
RSD
W5
I22:1
U1:2W5:12
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 39
Sequenziatore
SEQ
out
word
num
Realizza sequenze fissate di bit in uscita
Ad ogni esecuzione sull’uscita “out” vengono scritte la ciclicamente
le parole comprese tra “word” e “word”+num-1.
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 40
Istruzione PID
PID
Kp
Kd
Ki
rif
var
con
Regolatore Proporzionale Integrale Derivativo
Kp: guadagno proporzionale
Kd : guadagno derivativo
Ki: guadagno integrale
rif: word del riferimento
var: variabile da controllare
con: valore del controllo
Reti e
Sis
tem
i per
l’Auto
mazio
ne
Stefano Panzieri Ladder Logic - 41
Istruzioni Di Comunicazione Via Rete
SEND
num
ind
lun
GET
num
ind
lun
SEND
Invia un blocco di word ad
un altro PLC connesso in
rete
num: identificativo del PLC
ind: indirizzo di partenza del
blocco da spedire
lun: lunghezza del blocco
GET
Riceve un blocco di word da
un altro PLC connesso in
rete