LADDER LOGIC

Transcript

LADDER LOGIC
Reti e Sistemi per l’Automazione
LADDER
LOGIC
Stefano Panzieri
Ladder Logic - 1
Linguaggi di Programmazione
Reti e Sistemi per l’Automazione
◊ IEC 1131
◊
◊
◊
◊
◊
Linguaggio a contatti (Ladder Diagram)
Diagramma a blocchi funzionali (FBD)
Diagramma sequenziale funzionale (SFC)
Lista di istruzioni
Testo strutturato
Stefano Panzieri
Ladder Logic - 2
Ladder Diagram
Reti e Sistemi per l’Automazione
I1:4
I1:4
Stefano Panzieri
I1:7
I1:7
Ladder Logic - 3
U3:15
Functional Block Diagram (1)
I22
&
Reti e Sistemi per l’Automazione
M3
U31
+
I2
&
I15
I4
U6
&
Stefano Panzieri
M22
Ladder Logic - 4
Functional Block Diagram (2)
F1
I1
X1
Y1
Reti e Sistemi per l’Automazione
I2
X2
F2
X1
U1
Y1
I3
F3
X2
Y2
>BACK>
X3
I4
Stefano Panzieri
Ladder Logic - 5
A1
B1
A2
B2
U2
>BACK>
Sequential Functional Chart
Reti e Sistemi per l’Automazione
1
10
20
11
31
Stefano Panzieri
Ladder Logic - 6
41
Linguaggi Testuali
◊ Lista di istruzioni
Reti e Sistemi per l’Automazione
Start
LD
ADD
MUL
SUB
GT
STO
LD
◊ Testo strutturato
If (livello<livello_max)
then
valvola1 = true
else
allarme = true
valvola1 = false
end_if
aux=i25*10-4
i25
var
10
livello
25
m2
u39
Stefano Panzieri
Ladder Logic - 7
Linguaggio a contatti virtuale
◊ Area degli ingressi
◊ I1-I32

Ix:y
◊ Area delle uscite
Reti e Sistemi per l’Automazione
◊ U1-U32

◊ P1-P4
◊ W1-W512
◊ Address/Symbols
◊ Instruction comments
◊ Rung comments
 Tx
 Cx
Stefano Panzieri
-> Wx:y
◊ Database (eventuale)
◊ Area Contatori
◊ C1-C16
 Px
◊ Area Utente
Ux:y
◊ Area dei
Temporizzatori
◊ T1-T16
◊ Area PID
Ladder Logic - 8
Reti e Sistemi per l’Automazione
Ladder Logic
Stefano Panzieri
Ladder Logic - 9
Istruzioni di base
◊ Contatto normalmente
aperto
◊ Si chiude se il bit vale 1
◊ Contatto normalmente
chiuso
Reti e Sistemi per l’Automazione
◊ 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
U
◊ Riporta ad OFF un’uscita
Stefano Panzieri
L
Ladder Logic - 10
Esempio di Rung
Reti e Sistemi per l’Automazione
I1
I2
I3
I5
I6
I7
Stefano Panzieri
Ladder Logic - 11
I4
U1
Programmazione di una XOR
I1:4
I1:7
Reti e Sistemi per l’Automazione
I1:4
U3:15
I1:7
I1:4
I1:7
U3:15
Stefano Panzieri
Ladder Logic - 12
Programmazione di un elemento di memoria
I2:2
I3:9
Reti e Sistemi per l’Automazione
U1:1
I2:2
I3:9
U1:1
Stefano Panzieri
Ladder Logic - 13
U1 :1
Riconoscimento di Fronte di Salita
I1:1
W1:2
W1:1
Reti e Sistemi per l’Automazione
W1:2
I1:1
W1:2
W1:1
Stefano Panzieri
Ladder Logic - 14
Riconoscimento di Fronte di Discesa
I1:1
W1:2
W1:1
Reti e Sistemi per l’Automazione
W1:2
I1:1
W1:2
W1:1
Stefano Panzieri
Ladder Logic - 15
Flip-Flop di tipo D
I1:1
W1:2
W1:1
W1:2
Reti e Sistemi per l’Automazione
W1:1
U2:1
U2:1
U
U2:1
U2:1
L
I1:1
W1:2
W1:1
U2:1
Stefano Panzieri
Ladder Logic - 16
Due Programmi Non Equivalenti
Reti e Sistemi per l’Automazione
I1:1
U4:1
U1:15
U4:1
U1:15
U6:3
U1:15
U4:1
U1:15
I1:1
U4:1
L’ordine con cui vengono eseguiti i vari Rung è fondamentale
Stefano Panzieri
Ladder Logic - 17
U6:3
Istruzioni di Temporizzazione
Reti e Sistemi per l’Automazione
◊ 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.
Stefano Panzieri
Ladder Logic - 18
Temporizzatori
I3:1
T2
6000
I4:2
Reti e Sistemi per l’Automazione
T4R
1000
T2
T2
U3:2
T4
W1:5
T4R
W5:2
RES
Stefano Panzieri
Ladder Logic - 19
Ritardo di Spegnimento
I1:1
U2:1
Reti e Sistemi per l’Automazione
U2:1
T1
I1:1
T1
500
I1:1
5s
T1
U2:1
Stefano Panzieri
Ladder Logic - 20
Oscillatore ad Onda Quadra
I10:3
T6
T5
200
T5
Reti e Sistemi per l’Automazione
T6
300
U2:4
I10:3
2s
T5
3s
T6
U2:4
Stefano Panzieri
Ladder Logic - 21
Impulso all’Accensione
I3:2
T1
100
Reti e Sistemi per l’Automazione
T1
I3:2
1s
T1
U2:1
Stefano Panzieri
Ladder Logic - 22
U2:4
Impulso allo Spegnimento
I1:1
I1:1
T9
200
Reti e Sistemi per l’Automazione
W2:2
W2:1
W2:1
T9
W2:2
I1:1
W2:2
U1:1
I1:1
W2:1
W2:2
T9
2s
U1:1
Stefano Panzieri
Ladder Logic - 23
Istruzioni di Conteggio
Reti e Sistemi per l’Automazione
◊ Contatore ad incremento
◊ Se il rung di attivazione subisce una transizione falsovero 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
Stefano Panzieri
Ladder Logic - 24
Contatore
I1:2
Reti e Sistemi per l’Automazione
C2
122
C2
U2:4
W1:4
C2
RES
Stefano Panzieri
Ladder Logic - 25
Conteggio di Eventi
I1:1
W1:2
W1:1
W2:1
C4
3
C4
Reti e Sistemi per l’Automazione
U1:1
U1:1
W1:1
C4
C4
RES
I1:1
W1:1
W1:2
C4
U1:1
Stefano Panzieri
Ladder Logic - 26
W1:2 sostituire a w2:1
Temporizzatori e Contatori in Cascata
I1:1
T1
360000
T1
T2
180000
T5
T5
6000
Reti e Sistemi per l’Automazione
T5
C5
1000
I2:2
C5
RES
I5:4
C7
500
C7
C8
10
C7
RES
Stefano Panzieri
Ladder Logic - 27
Controllo del programma
◊ Etichetta --|LBL|-◊ Label per salti
◊ Salto --(JMP)--
Reti e Sistemi per l’Automazione
◊ 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.
Stefano Panzieri
Ladder Logic - 28
Esempio di Utilizzo del Salto
W1:1
200
Reti e Sistemi per l’Automazione
JMP
(procedura di inizializzazione)
W1:1
L
200
LBL
(programma)
Stefano Panzieri
Ladder Logic - 29
Esempio di Utilizzo del Master Control Relay
Reti e Sistemi per l’Automazione
MCR
(zona controllata)
MCR
Stefano Panzieri
Ladder Logic - 30
Esempio di Utilizzo del Salto a
Sottoprogramma
300
Reti e Sistemi per l’Automazione
JSR
300
JSR
300
SBR
(sottoprogramma)
RET
Stefano Panzieri
Ladder Logic - 31
Istruzione MOV
 Trasferimento di memoria
Reti e Sistemi per l’Automazione
 Il contenuto di una word è
trasferito in un’altra word
MOV
OP1
OP2
Stefano Panzieri
Ladder Logic - 32
Operazioni Aritmetico/Logiche
 Operazioni aritmetico/logiche a due operandi
 ADD
Reti e Sistemi per l’Automazione
 MUL
 SUB
 DIV
XXX
OP1
OP2
RES
 AND
 OR
Stefano Panzieri
Ladder Logic - 33
Istruzioni di Comparazione
 Le istruzioni di comparazione fanno parte delle
condizioni di attivazione dei rung
Reti e Sistemi per l’Automazione
 EQU
 NEQ
 GEQ
 LEQ
yyy
OP1
OP2
 GRT
 LES
Stefano Panzieri
Ladder Logic - 34
Esempio di Utilizzo di Operazioni Aritmetiche e istruzioni di
Comparazione
W3:1
Reti e Sistemi per l’Automazione
MCR
SUB
I2
25
W1
LEQ
W1
120
GEC
W1
90
MOV
W1
W125
MCR
Stefano Panzieri
Ladder Logic - 35
Altra Versione dell’Oscillatore
I10:3
T5
Reti e Sistemi per l’Automazione
T5
500
U2:4
GRT
T5.acc
200
Stefano Panzieri
Ladder Logic - 36
Registro a Scorrimento a Destra
 Registro di scorrimento a destra
 Nel caso in cui il rung sia attivato la word W viene
shiftata a destra di un bit
Reti e Sistemi per l’Automazione
 A sinistra entra il bit indicato come secondo operando
RSD
W3
I2:1
Stefano Panzieri
Ladder Logic - 37
Esempio di Utilizzo del Registro a Scorrimento
I22:1
Reti e Sistemi per l’Automazione
EQU
I23
654
RSD
W5
I22:1
U1:1
W5:12
Stefano Panzieri
U1:2
Ladder Logic - 38
Sequenziatore
 Realizza sequenze fissate di bit in uscita
Reti e Sistemi per l’Automazione
 Ad ogni esecuzione sull’uscita “out” vengono scritte la ciclicamente
le parole comprese tra “word” e “word”+num-1.
SEQ
out
word
num
Stefano Panzieri
Ladder Logic - 39
Istruzione PID
 Regolatore Proporzionale Integrale Derivativo
 Kp: guadagno proporzionale
 Kd : guadagno derivativo
 Ki: guadagno integrale
Reti e Sistemi per l’Automazione
 rif: word del riferimento
 var: variabile da controllare
 con: valore del controllo
PID
Kp
Kd
Ki
rif
var
con
Stefano Panzieri
Ladder Logic - 40
Istruzioni Di Comunicazione Via Rete
 SEND
 Invia un blocco di word ad
un altro PLC connesso in
rete
Reti e Sistemi per l’Automazione
 num: identificativo del PLC
SEND
num
ind
lun
 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
Stefano Panzieri
Ladder Logic - 41
GET
num
ind
lun