LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di...

41
Stefano Panzieri Ladder Logic - 1 Reti e Sistemi per l’Automazione LADDER LOGIC

Transcript of LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di...

Page 1: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

Stefano Panzieri Ladder Logic - 1

Reti e

Sis

tem

i per

l’Auto

mazio

ne

LADDER

LOGIC

Page 2: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 3: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 4: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 5: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 6: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

Reti e

Sis

tem

i per

l’Auto

mazio

ne

Stefano Panzieri Ladder Logic - 6

Sequential Functional Chart

10

1

20

31 41

11

Page 7: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 8: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 9: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

Reti e

Sis

tem

i per

l’Auto

mazio

ne

Stefano Panzieri Ladder Logic - 9

Ladder Logic

Page 10: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 11: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 12: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 13: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 14: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 15: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 16: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 17: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 18: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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.

Page 19: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 20: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 21: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 22: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 23: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 24: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 25: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 26: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 27: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 28: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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.

Page 29: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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)

Page 30: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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)

Page 31: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 32: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 33: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 34: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 35: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 36: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 37: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 38: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 39: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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.

Page 40: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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

Page 41: LADDER LOGIC - dia.uniroma3.it · ione Stefano Panzieri Ladder Logic - 2 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali

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