LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC

205
Tecnologie dei Sistemi di Automazione - Prof. Raff aele Iervolino 1 LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC Prof. Raffaele Iervolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli, Federico II

description

LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC. Prof. Raffaele Iervolino Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli, Federico II. Introduzione. - PowerPoint PPT Presentation

Transcript of LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC

Page 1: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 1

LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA

PROGRAMMABILE PLC

Prof. Raffaele Iervolino

Dipartimento di Informatica e Sistemistica

Università degli Studi di Napoli, Federico II

Page 2: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 2

Introduzione• I primi sistemi automatici programmabili furono

realizzati alla fine degli anni ’60 nell’industria automobilistica per sostituire i pannelli di controllo a relè

• Le caratteristiche di un PLC moderno sono rimaste sostanzialmente invariate (CPU, memoria RAM ed EPROM, interfacce di I/O)

• Gli ingressi e le uscite operano in genere in modo digitale a due livelli (di solito 0-24 V)

• Un PLC svolge ciclicamente sempre lo stesso programma

Page 3: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 3

Esempio di funzionamento di un PLC (1/III)

T 1 T 2

L

T 1

T 2

L

I1

I2

O 1

PLC

Si vuole realizzare un circuito elettrico con 2 interruttori normalmenteaperti ed 1 lampada, che si accende solo se entrambi gli interruttori sono chiusi.

Si noti che con il PLC i 2 interruttori non sono più in serie, ma occupano separatamente 2 ingressi del PLC.

Page 4: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 4

Esempio di funzionamento di un PLC (2/III)

Un generico programma che svolga le funzioni proprie del circuito elettrico può essere così articolato:

1) Controlla lo stato dell’ingresso I1

2) Controlla lo stato dell’ingresso I2

3) Solo se I1 e I2 sono entrambi alti accendi la lampada posta sull’uscita O1

4) Torna al punto 1

Page 5: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 5

Esempio di funzionamento di un PLC (3/III)

T 1

T 2

L

T 1

T 2

L

I1

I2

O 1

PLC

Mentre il circuito elettrico è diverso dal caso precedente, la connessione degli interruttori e della lampada sul PLC è rimasta invariata!!

Page 6: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 6

Definizione di PLC(standard IEC 61131)

• […] sistema elettronico a funzionamento digitale, destinato all’uso in ambito industriale, che utilizza una memoria programmabile per l’archiviazione interna di istruzioni […] e per controllare, mediante ingressi ed uscite sia digitali che analogici, vari tipi di macchine e processi.

Page 7: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 7

Programmazione dei PLC• I PLC attualmente non adottano uno standard per la

programmazione• Allo stato attuale esistono diversi linguaggi per PLC

diversi da macchina a macchina, a volte anche tra macchine dello stesso produttore

• Si usano linguaggi di basso livello• I programmi sono poco strutturati• E’ necessario istruire programmatori su diversi

linguaggi/dialetti• …

Page 8: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 8

Lo standard di programmazione dei PLC

Si fa riferimento allo standard 61131, Controllori Programmabili, parte 3, Linguaggi di Programmazione, del IEC (Comitato Elettrotecnico Internazionale) per la programmazione dei dispositivi di controllo, recepito nel 1996 dal CEI (Comitato Elettrotecnico Italiano).Esso prevede 5 linguaggi di programmazione:1)Testo strutturato (ST)2)Linguaggio a contatti (LD)3)Diagramma a blocchi funzionali (FBD)4)Lista di istruzioni (IL)5)Diagramma funzionale sequenziale (SFC)

Page 9: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 9

Variabili e Tipi di variabiliLo standard 61131 prevede alcuni tipi predefiniti di variabili:1)INT e UINT per rappresentare numeri interi rispettivamente in [-

32768, 32767] ed in [0, 216-1]2)REAL per rappresentare numeri reali nell’intervallo ±10±38

3)TIME per rappresentare una durata temporale in unità che vanno dai giorni ai ms T#dhmsms

4)DATE e TIME_OF_DAY per rappresentare la data e l’ora5)STRING per definire le stringhe di caratteri6)BOOL (1 bit), BYTE (8 bit), WORD (16 bit), DWORD (32 bit),

LWORD (64 bit)7)ANY se la variabile può essere di qualsiasi tipo8)ANY_NUM se la variabile può essere INT o REAL

Page 10: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 10

Tipi derivati

Possono essere introdotti vari tipi derivati in vari modi:

1) Per equivalenza a quelli predefiniti2) Per enumerazione3) Per restrizione dei tipi già definiti4) Definendo insiemi ordinati di più elementi

dello stesso tipo (array)5) Definendo insiemi di più elementi di tipo

diverso (struct)

Page 11: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 11

EsempioTYPE

impulsi : UINT(0..1000);stato : (fermo,funzionante,guasto,attesa);temperatura : REAL :=20.0;sens_temp : STRUCT

valore : temperatura;ult_calib : DATE;int_calib : TIME;val_max : REAL := 100.0;diagnos : BOOL;

END_STRUCTdati_term_forno : ARRAY[1..10] OF sens_temp;dati_term_imp : ARRAY[1..4,1..4] OF dati_term_forno;

END_TYPE

Page 12: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 12

Dichiarazione delle variabili

Le variabili vanno dichiarate in testa ai programmi, funzioni e blocchi funzionali, con il costrutto:

VARA,B : REAL;abil : BOOL;conteggio : impulsi;stato_forno : stato;termometro7 : temperatura :=0.0;termocoppia1 : sens_temp;forno1 : dati_term_forno;

END_VAR

Page 13: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 13

IL TESTO STRUTTURATO

Page 14: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 14

Il Testo Strutturato (ST)E’ un linguaggio di programmazione testuale, di alto livello (Pascal), per le applicazioni dell’automazione.

Esempi di operatori contemplati:1) Assegnazione :=

2) Aritmetici +,-,*,/,MOD,**

3) Relazione <,<=,>,>=,=,< >

4) Logici AND, OR, XOR, NOT

5) Parentesi ( e ) per cambiare l’ordine di esecuzione delle operazioni

Page 15: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 15

Il Testo Strutturato: costrutti di selezione

Esistono poi i consueti costrutti di selezione:1) IF cond THEN istr END_IF

2) IF cond1 THEN istr1 ELSIF cond2 THEN istr2 ELSE istr3 END_IF

3) CASE var OF val_i : istr_i ELSE istr END_CASE

Page 16: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 16

Il Testo Strutturato: costrutti iterativi

• FOR var=val1 TO var=var2 BY step DO istr END_FOR

• WHILE cond DO istr END_WHILE• REPEAT istr UNTIL cond END_REPEAT• EXIT per uscire da cicli in maniera immediata

Page 17: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 17

IL LADDER DIAGRAM

Page 18: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 18

Il Linguaggio a Contatti

• Il linguaggio a contatti (Ladder Diagram) è il più diffuso linguaggio di programmazione per PLC.

• Esso prevede l’utilizzo degli elementi: contatto aperto, contatto chiuso, bobina, temporizzatore e contatore, tipici degli schemi a relè elettromeccanici.

Page 19: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 19

Il Ladder Diagram

• La forma del programma deriva dalla logica a relè, con le due linee verticali laterali (i montanti della scala) rappresentati l’alimentazione e con le linee orizzontali (i pioli o rung) che alimentano una bobina se una certa combinazione di contatti abilita il flusso di energia.

Page 20: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 20

Esempio di programma

Page 21: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 21

Contatti e bobine

• I contatti sono associati agli ingressi digitali oppure a condizioni interne al dispositivo (rappresentati entrambi da bit di memoria).

• Una bobina è associata a un bit della memoria e, col suo tramite, comandare una uscita digitale o segnalare una condizione interna.

Page 22: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 22

Esecuzione di un LD

• Un LD viene eseguito secondo una modalità ciclica composta dalle seguenti fasi:– Lettura degli input e scrittura del loro stato in

locazioni di memoria particolari– Esecuzione del programma un rung dopo l’altro,

procedendo dall’alto verso il basso, da sinistra verso destra

– Scrittura delle uscite, prelevando il loro stato da locazioni di memoria particolari

Page 23: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 23

Es. di organizzazione dell’area dati della memoria RAM

• Per fissare le idee l’area dati della RAM può ad es. essere organizzata nel seguente modo:– Area degli input formata da 32 word di 16 bit associate

agli indirizzi I1-I32. Per ingressi digitali lo stato è associato al singolo bit x della word y, indirizzato come Ix:y . Gli ingressi analogici sono associati a singole word.

– Area degli output con 32 word a 16 bit, con indirizzi U1-U32, relative a uscite digitali e/o analogiche.

– Area utente con 512 word indirizzabili come W1-W512. Serve per la memorizzazione di condizioni interne.

Page 24: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 24

Uso di nomi simbolici

• E’ possibile assegnare dei nomi simbolici per designare particolari indirizzi allo scopo di migliorarne la leggibilità. Ad es. POMPA=U3:14 associa il nome simbolico POMPA all’indirizzo di memoria U3:14 (uscita digitale).

Page 25: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 25

Istruzioni di base

• Bobine e contatti sono le istruzioni di base del linguaggio a contatti.

• I contatti in un rung rappresentano le condizioni logiche da valutare per poter determinare lo stato che deve assumere l’uscita rappresentata dalla bobina.

• I contatti e le bobine devono essere sempre associati a bit di memoria oppure a nomi simbolici corrispondenti.

Page 26: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 26

Contatti NA e NC

• Contatto NA -| |- può essere associato a un bit di input (Ix:y), di uscita (Ux:y), interno (Wx:y), … . Se il bit associato vale 1 (ON) il processore chiuderà il contatto assicurando la continuità logica (elettrica) nel rung dove si trova. Se il bit vale 0 (OFF) il contatto rimarrà aperto.

• Contatto NC -|/|- è il duale del precedente.

Page 27: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 27

Bobina

• Bobina –( )– serve per controllare lo stato del bit a essa associato che può rappresentare un’uscita (Ux:y) o un marker interno (Wx:y). L’istruzione deve essere sempre inserita sulla destra alla fine del rung: se le condizioni logiche alla sua sinistra sono verificate (esiste cioè una continuità logica/elettrica) il suo stato viene portato a 1 (ON), altrimenti è posto a 0 (OFF).

Page 28: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 28

Es.1: Programmazione di una XOR

U3:15 = (I1:4 AND NOT(I1:7)) OR (NOT(I1:4) AND I1:7)

I1 :4

I1 :7

U 3 :1 5

Page 29: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 29

Es.2: Programmazione di un elemento di memoria (flip-flop SR)

SET RESET

U1:1 = NOT(I3:9) AND (I2:2 OR U1:1)

I2 :2

I3 :9

U 1 :1

Page 30: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 30

Es.3: Riconoscimento di fronte di salita

W1:1 = NOT(W1:2) AND I1:1W1:2 = I1:1

I1 :1

W 1 :2

W 1 :1

Page 31: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 31

Esercizio

• Tradurre in LD la seguente istruzione in ST

ENDIF

17: U1SET

T2) OR 7:6))AND(W2:OR(W2)5:W2 AND 1:I3 AND 1:((I5 IF

Page 32: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 32

Soluzione

Page 33: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 33

Istruzioni di temporizzazione e conteggio• Permettono di controllare delle operazioni basandosi sul trascorrere

del tempo o sul conteggio di eventi• Temporizzatore: se il rung dove si trova il temporizzatore presenta

una continuità logica, il temporizzatore è abilitato a contare il trascorrere del tempo. Il suo indirizzo può essere usato come indicatore dello stato del conteggio e sarà falso durante il conteggio e vero alla fine. Si resetterà solo quando la condizione del rung diventa falsa

• Temporizzatore a ritenuta: è analogo a prima, ma il valore raggiunto dal conteggio viene conservato se le condizioni di alimentazione diventano false

• Contatore: se il rung dove si trova il contatore subisce una transizione falso/vero il contatore incrementa il suo valore di una unità

Page 34: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 34

Istruzioni per il controllo del programma

• L’istruzione di salto permette, se alimentata, di saltare a un rung dove è presente l’istruzione di etichetta corrispondente.

• Si ottiene ponendo in un rung il costrutto --->>xyz dove xyz è una stringa che indica dove saltare.

• Con tali istruzioni è facile implementare le strutture del tipo IF-THEN-ELSE,WHILE, REPEAT, FOR.

• L’istruzione --<RETURN>-- è usata per la terminazione di funzioni e blocchi funzionali

Page 35: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 35

Es. Utilizzo del salto per una procedura di inizializzazione

W 1 :1

W 1 :1

(p ro ced u ra d i i n i z i a li z za z i o n e )

W 1 :1

(p ro g ra m m a )

>> xyz

xyz :

Page 36: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 36

Istuzioni di connessione• La coppia di istruzioni di connessione -->zyx> e

>zyx>-- viene utilizzata per spezzare un rung troppo lungo:

I1 :1 W 1 :2

I2 :1 U 2 :1

> zyx >

> zyx >

Page 37: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 37

IL DIAGRAMMA A BLOCCHI FUNZIONALI

Page 38: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 38

Il Diagramma a Blocchi Funzionali

• Il FBD è un linguaggio grafico in cui la programmazione avviene mediante assemblaggio di funzioni e/o blocchi funzionali (componenti) analogamente ad un circuito elettronico

• Il flusso del segnale procede sempre da sinistra verso destra

• Viene usato per implementare soprattutto funzioni logiche booleane e operazioni aritmetiche

Page 39: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 39

Una rete in FBD

• E’ una rete di funzioni e/o blocchi funzionali collegati tra loro

• L’ingresso di una funzione o di un blocco funzionale può anche essere direttamente il valore di una variabile o una costante

• Le uscite possono anche essere valori di variabili• La negazione di una variabile booleana si può

realizzare o mediante una funzione NOT o con un cerchietto posto prima dell’ingresso nel blocco grafico

Page 40: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 40

Esempio di una rete in FBDF 1

x1y1

x2

x1

x2

x3

I3

F 2

y1

y2

I1

I2

U 1

I4

x1

x2

U 2F 3

y1

y2

Page 41: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 41

LA LISTA DI ISTRUZIONI

Page 42: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 42

La Lista di Istruzioni

• E’ un linguaggio di basso livello, di tipo assemblativo, composto da sequenze di istruzioni su righi diversi

• Ogni istruzione è composta da un operatore (e da un modificatore) e da un operando

• Un’istruzione può essere preceduta da una etichetta del tipo x:

• Ogni operatore fa riferimento ad un accumulatore e all’operando

Page 43: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 43

Operatori PredefinitiGli operatori predefiniti sono:

– LD per assegnare all’acc il valore dell’operando– ST per porre il valore dell’acc nella variabile indicata

dall’operando– S per porre una variabile booleana a 1 se il valore nell’acc è 1– R per porre una variabile booleana a 0 se il valore nell’acc è 1– AND, OR, XOR per operazioni logiche – ADD, SUB, MUL, DIV per operazioni aritmetiche– GT, GE, EQ, NE, LE, LT per comparazioni– JMP per saltare all’etichetta indicata nel campo operando– CAL per realizzare la chiamata di un blocco funzionale– RET per realizzare il ritorno da una funzione o da un blocco

funzionale

Page 44: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 44

I Modificatori

Gli operatori possono essere seguiti da modificatori:– N indica una negazione dell’operando– ( indica che l’operatore viene valutato solo se si trova la corrispondente )– C , usato solo per gli operatori JMP, CAL e RET, serve per indicare che l’operatore è eseguito solo quando il valore corrente dell’acc è 1

Page 45: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 45

Es. Istruzioni per la XOR

LD a (* metti il valore di a nell’acc *)

ANDN b (* AND dell’acc con il NOT di b *)

OR( b (* OR dell’acc con l’espressione *)

ANDN a

)

ST c (* conserva l’acc in c *)

Page 46: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 46

PROGRAM ORGANIZATION UNITS (POU)

Page 47: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 47

Unità di organizzazione della programmazione

Esistono elementi comuni ai 5 linguaggi:• Variabili: strumento per rappresentare dati • Funzioni: quando l’uscita dipende solo

dall’ingresso attuale• Blocchi Funzionali: quando l’uscita dipende dagli

ingressi attuali e passati e dalle condizioni iniziali del blocco

• Programmi: insieme di elementi e costrutti di programmazione che garantisce il corretto trattamento dei dati di input

Page 48: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 48

Le POU• L’insieme delle variabili, funzioni, blocchi

funzionali, programmi rappresentano le unità di organizzazione della programmazione (POU)

• Una POU è sempre composta da 3 elementi:– definizione del tipo di POU e del suo nome

– la parte dichiarativa delle variabili e dei loro attributi

– Il corpo con le istruzioni nei linguaggi dello standard

Page 49: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 49

I task, le risorse e la configurazione

• I task regolano l’esecuzione di un programma/blocchi funzionali su base periodica, ciclica o al verificarsi di certi eventi particolari

• Le risorse sono entità in grado di eseguire i programmi

• La configurazione è l’elemento del linguaggio corrispondente a un dispositivo che corrisponde a una o più risorse

Page 50: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 50

Le Funzioni

• Sono POU riusabili che da certi valori di ingresso calcolano un solo valore in uscita (anche vettoriale)

• L’uscita ha lo stesso nome della funzione e può essere usato all’interno di espressioni

• Possono essere definite in maniera sia testuale che grafica

Page 51: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 51

Es. Definizione testuale di una funzione

FUNCTION nome_fun : tipo (* tipo della *) (* funzione *)

VAR_INPUT . . . . ; (* definizione delle *)

(* variabili di ingresso *)END_VAR

. . . . (* altre definizioni di *) (* variabili *)

. . . . (* corpo della funzione *) (* con assegnazione di *)

(* un valore a nome_fun *)END_FUNCTION

Page 52: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 52

Caratteristiche di una funzione

• Il corpo della funzione può essere scritto in uno dei 5 linguaggi dello standard, eccetto l’SFC

• Non possono essere definite variabili di uscita, di ingresso/uscita, direttamente rappresentate, esterne, globali, accessibili, a ritenuta

Page 53: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 53

Definizione grafica di una funzione

• La definizione della funzione è sempre racchiusa tra le parole chiavi FUNCTION ed END_FUNCTION

• Tuttavia l’interfaccia esterna è definita mediante un blocco rettangolare che ha a sinistra i parametri di input e a destra quelli di output per i quali occorre specificare i nomi e i tipi delle variabili

• Occorre infine scrivere il corpo della funzione in uno dei linguaggi possibili

Page 54: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 54

Es. Definizione grafica della funzione saturazioneFUNCTION

IF ABS(dato) < lim_soglia THENsoglia_sat := 0.0;

ELSEsoglia_sat := MIN(MAX(dato,-lim_sat),lim_sat);

END_IFEND_FUNCTION

dato

lim_soglia

lim_sat

soglia_sat

REAL

REAL

REAL

REAL

Page 55: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 55

Es. Definizione testuale della funzione saturazione

FUNCTION soglia_sat : REAL

VAR_INPUT

dato, lim_soglia, lim_sat : REAL;

END_VAR

IF ABS(dato) < lim_soglia THEN

soglia_sat := 0.0;

ELSE

soglia_sat := MIN(MAX(dato,-lim_sat),lim_sat);

END_IF

END_FUNCTION

Page 56: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 56

Funzioni predefinite (1/II)• Funzioni di conversione di tipo e di troncamento: ad

es. INT_TO_REAL( ), TRUNC( )• Funzioni numeriche: ABS, SQRT, LN, LOG, EXP,

SIN, ASIN, COS, ACOS, TAN, ATAN• Funzioni aritmetiche: ADD o +, MUL o *, SUB o -,

DIV o /, MOD, MOVE o :=, EXPT o **• Funzioni applicabili a stringhe di bit: SHL o SHR per

spostare N bit a sx o dx con riempimento di zeri, ROL o ROR per rotazioni circolari di N bit a sx o dx, AND o &, OR o >=1 nei linguaggi grafici, XOR o =2K+1 nei linguaggi grafici, NOT

Page 57: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 57

Funzioni predefinite (2/II)

• Funzioni di selezione: SEL, MUX, MAX, MIN, LIM

• Funzioni di comparazione: GT o >, GE o >=, LT o <, LE o <=, EQ o =, NE o < >

• Funzioni sulle stringhe di caratteri: LEN, LEFT, RIGHT, MID per l’estrazione di N caratteri a sx, dx, in mezzo, INSERT, DELETE, REPLACE, FIND

• Funzioni relative a operazioni su variabili di tipo temporale

Page 58: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 58

Overload e estensione delle funzioni

• Alcune funzioni possono essere sovraccaricate nel senso che possono usare variabili di ingresso di tipo diverso (es. l’addizione si può usare sia qualsiasi tipo numerico)

• Alcune funzioni possono essere estendibili, nel senso che il numero dei loro ingressi può essere variabile (es. l’addizione si può estendere ad un numero generico di addendi)

Page 59: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 59

Controllo di esecuzione• Per le funzioni definite con linguaggi grafici (LD o

FBD) è possibile controllare l’esecuzione della funzione mediante un ingresso implicito booleano EN

• Allo stesso modo esiste un’uscita implicita booleana ENO che diventa vera quando la funzione è eseguita senza errori

• Così, in una catena di funzioni, per essere sicuri che una funzione sia eseguita prima di un’altra basta connettere l’uscita ENO della prima con l’ingresso EN della seconda

Page 60: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 60

Es. Sottrazione di un offset da una misura (testuale)

FUNCTION corr_sens : WORD (*codifica BCD*)

VAR_INPUT

corr : BOOL;

in : WORD; (*codifica BCD*)

offset: INT;

END_VAR

IF corr THEN

corr_sens := INT_TO_BCD(BCD_TO_INT(in)-offset);

END_IF

END_FUNCTION

Page 61: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 61

Es. Sottrazione di un offset da una misura (grafico)

corr

in

offset

corr_sens

BOOL

WORD

INT

WORD

FUNCTION

corr BCD_TO_INT

EN

in

ENO

SUB

offset

EN ENO

INT_TO_BCD

EN corr_sens

END_FUNCTION

Page 62: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 62

I blocchi funzionali

• Sono delle POU dove i valori delle uscite non dipendono solo dagli ingressi ma anche dalle variabili interne

• Ciò significa che i valori delle variabili interne e di uscita si devono conservare tra due esecuzioni successive del blocco funzionale

• Il corpo del blocco funzionale può essere scritto in uno dei 5 linguaggi dello standard, compreso l’SFC

Page 63: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 63

Es. Definizione testuale di un blocco funzionale

FUNCTION_BLOCK esempioVAR_INPUT

. . . . ; (* definizione delle *) (* variabili di ingresso *)

END_VARVAR_OUTPUT

. . . . ; (* definizione delle *) (* variabili di uscita *)

END_VAR . . . . (* altre definizioni di variabili *) . . . . (* corpo del blocco funzionale *)END_FUNCTION_BLOCK

Page 64: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 64

Definizione grafica di un blocco funzionale

• La definizione grafica di un blocco funzionale è sempre racchiusa tra le parole chiavi FUNCTION_BLOCK e END_FUNCTION_BLOCK

• Tuttavia l’interfaccia esterna è definita mediante un blocco rettangolare che ha a sinistra i parametri di input e a destra quelli di output. Per le variabili interne bisogna specificare i nomi e i tipi

• Occorre infine scrivere il corpo della funzione in uno dei linguaggi possibili

Page 65: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 65

Blocchi funzionali predefiniti

Lo standard prevede che vi siano blocchi funzionali predefiniti:

– due flip-flop, per memorizzare una condizione logica (priorità del set e del reset)

– due rilevatori di fronte (salita e discesa)– contatori a incremento, a decremento e

bidirezionali– temporizzatori o timer a impulso, on-delay, off-

delay

Page 66: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 66

Es. Blocco flip-flop SR FUNCTION_BLOCK SR

VAR_INPUT

S1,R : BOOL ;

END_VAR

VAR_OUTPUT

Q1 : BOOL;

END_VAR

Q1 := S1 OR (Q1 AND NOT R)

END_FUNCTION_BLOCK

S 1 Q 1

Q 1 R

SR

S1 Q1BOOL

BOOL R

BOOL

Page 67: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 67

Es. Blocco flip-flop RSFUNCTION_BLOCK RS

VAR_INPUT

S,R1 : BOOL ;

END_VAR

VAR_OUTPUT

Q1 : BOOL;

END_VAR

Q1 := NOT R1 AND (Q1 OR S)

END_FUNCTION_BLOCK

S Q 1

Q 1

R 1

RS

S Q1BOOL

BOOL R1

BOOL

Page 68: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 68

Es. Rilevatore di fronte di salitaFUNCTION_BLOCK R_TRIG

VAR_INPUT CLK : BOOL ;

END_VARVAR_OUTPUT

Q : BOOL; END_VARVAR RETAIN

AUX : BOOL:=0; END_VARLD CLK (* corpo in IL *)ANDN AUXST QLD CLKST AUX

END_FUNCTION_BLOCK

R_TRIG

CLK QBOOL BOOL

Page 69: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 69

Es. Rilevatore di fronte di discesaFUNCTION_BLOCK F_TRIG

VAR_INPUT CLK : BOOL ;

END_VARVAR_OUTPUT

Q : BOOL; END_VARVAR RETAIN

AUX : BOOL:=1; END_VAR (* corpo in LD *)

END_FUNCTION_BLOCK

F_TRIG

CLK QBOOL BOOL

C L K A U X Q

A U X

Page 70: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 70

Osservazioni sui rilevatori di fronte

• I riconoscitori di fronte possono essere anche utilizzati implicitamente sulle variabili di input di altri blocchi funzionali

• Tali variabili vanno però definite con il tipo BOOL esteso con i qualificatori R_EDGE o F_EDGE

• In caso di definizione grafica sulle linee di ingresso si pongono i simboli > o <

Page 71: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 71

Es. Contatore a incrementoFUNCTION_BLOCK CTU

VAR_INPUT CU : BOOL R_TRIG; R : BOOL; PV : INT;

END_VARVAR_OUTPUT

Q : BOOL; CV : INT;

END_VARIF R THEN

CV := 0;ELSIF CU AND (CV<PV) THEN

CV := CV+1;ENDIFQ := (CV=PV);

END_FUNCTION_BLOCK

CTU

>CUQ

BOOL

BOOL RBOOL

INT PVCV INT

Page 72: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 72

Es. Contatore a decremento e contatore bidirezionale

CTD

>CDQ

BOOL

BOOL LDBOOL

INT PVCV INT

CTUD

>CUQU

BOOL

BOOL R

BOOL

INT PVCV INT

BOOL

BOOL

QD BOOL

>CD

LD

Page 73: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 73

Legenda variabili contatori• CU = ingresso sui cui fronti di salita il contatore è incrementato• CD = ingresso sui cui fronti di salita il contatore è decrementato• R = reset (porta a zero il conteggio)• PV = valore del conteggio di ingresso• LD = carica il contatore con il valore PV• Q = segnala che il contatore ha finito il conteggio (ha raggiunto

il valore del conteggio per il CTU oppure zero per il CTD)• QD = segnala che il contatore CTUD ha raggiunto lo zero• QU = segnala che il contatore CTUD ha raggiunto il valore PV• CV = valore raggiunto dal contatore

Page 74: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 74

Osservazioni sui contatori

• Occorre sempre prevedere un limite massimo al valore del conteggio PV assegnabile ad un contatore

• Questo limite può essere superato ponendo i contatori in cascata

Page 75: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 75

Timer a impulso, on-delay e off-delay• TP o timer a impulso genera in uscita una finestra

rettangolare di durata prestabilita quando l’ingresso diventa vero

• TON o timer on-delay alza la sua uscita dopo che è trascorso il tempo impostato da quando l’ingresso è alto, che deve restare tale, altrimenti il timer si resetta (ritardo di accensione)

• TOF o timer off-delay ha un’uscita alta quando l’ingresso è vero e si abbassa dopo il tempo impostato quando l’ingresso diventa falso (ritardo di spegnimento)

Page 76: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 76

Es. Definizione grafica del TP

IN

Q PT PT PT t

t

TP

IN QBOOL

TIME PT

BOOL

ET TIME

dove:• IN = ingresso che fa partire la temporizzazione• PT = tempo da contare • Q = uscita booleana su cui il temporizzatore agisce• ET = tempo trascorso

Page 77: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 77

Es. Definizione grafica del TON

IN

Q PT PT t

t

TON

IN QBOOL

TIME PT

BOOL

ET TIME

dove:• IN = ingresso che fa partire la temporizzazione• PT = tempo da contare • Q = uscita booleana su cui il temporizzatore agisce• ET = tempo trascorso

Page 78: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 78

Es. Definizione grafica del TOF

IN

Q PT PT t

t

TOF

IN QBOOL

TIME PT

BOOL

ET TIME

dove:• IN = ingresso che fa partire la temporizzazione• PT = tempo da contare • Q = uscita booleana su cui il temporizzatore agisce• ET = tempo trascorso

Page 79: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 79

Osservazioni sui temporizzatori

• Anche per i temporizzatori è previsto un tetto massimo al PT

• Tale valore può essere superato mettendo in cascata vari timer, realizzando così un conteggio di tempo pari alla somma dei singoli valori

• E’ possibile anche mettere in cascata ad un timer un contatore, e in tal caso il valore del conteggio è dato dal prodotto dei valori PT e PV

Page 80: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 80

Note sui blocchi funzionali

• Un blocco funzionale può contenere la chiamata ad altri blocchi funzionali o funzioni

• All’atto della definizione di un blocco è creata una loro istanza con nome e struttura dati univoci

• Un’istanza di un blocco funzionale si definisce come una variabile, con la sua stessa visibilità

• Oltre ai blocchi funzionali predefiniti, è possibile creare blocchi funzionali definiti dall’utente

Page 81: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 81

Es. Gestione di una risorsa comune (testuale)FUNCTION_BLOCK semaforo

VAR_INPUT richiesta, rilascio : BOOL;

END_VARVAR_OUTPUT

impegnata : BOOL;END_VARVAR

aux : BOOL :=0;END_VARimpegnata := aux;IF richiesta THEN

aux := 1;ELSIF rilascio THEN

impegnata := 0;aux := 0;

ENDIFEND_FUNCTION_BLOCK

Page 82: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 82

Es. Gestione di una risorsa comune (grafica)

richiesta

rilascio

semaforo

BOOL

BOOL

BOOL

FUNCTION_BLOCK

END_FUNCTION_BLOCK

impegnata

VARaux : BOOL:=0;

END_VAR...(* corpo in uno dei linguaggi *)...

Page 83: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 83

Es. Realizzazione di un’onda quadra su una variabile booleana (testuale - ST)

FUNCTION_BLOCK ondaquadraVAR_INPUT

abilita : BOOL; durata_ON, durata_OFF : TIME;

END_VARVAR_OUTPUT

uscita : BOOL;END_VARVAR

timer1, timer2 : TON; (*due istanze di timer TON*)END_VARtimer1(IN:=NOT(timer2.Q) AND abilita, PT:=durata_OFF);timer2(IN:=timer1.Q, PT:=durata_ON);uscita:=timer1.Q;

END_FUNCTION_BLOCK

Page 84: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 84

Es. Realizzazione di un’onda quadra su una variabile booleana (grafica)

N.B. il solo corpo della funzione ondaquadra è in linguaggio a contatti

abilita

uscita

timer2.Q

timer1.Q

timer1

IN Q

durata_OFF PT ET

timer2

IN Q

durata_ON PT ET

Page 85: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 85

Es. Realizzazione di un’onda quadra su una variabile booleana (grafica)

N.B. il solo corpo della funzione ondaquadra è in FBD

uscita

timer1

IN Q

durata_OFF PT ET

timer2

IN Q

durata_ON PT ET

ANDabilita

Page 86: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 86

Es. Realizzazione di un’onda quadra su una variabile booleana (testuale - IL)

N.B. il solo corpo della funzione ondaquadra è in IL

LDN timer2.QAND abilitaST timer1.INLD durata_OFFST timer1.PTCAL timer1CAL timer2(IN:=timer1.Q, PT:=durata_OFF)LD timer1.QST uscita

Page 87: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 87

Es. Chiamata del blocco funzionale ondaquadra

ondaquadra(abilita:=ing, durata_ON:=t#2s,

durata_OFF:=t#3s, uscita:=led);ondaquadra

abilitauscita

ing

t#2s durata_ONled

t#3s durata_OFF

Page 88: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 88

Es. Blocco funzionale antirimbalzo (grafica-FBD)

in

durata

antirimbalzo

BOOL

TIME

BOOL

FUNCTION_BLOCK

END_FUNCTION_BLOCK

out

VART1, T2 : TON;FLIPFLOP : SR;

END_VAR

in

durata

T1

out

IN

PT

T2IN

PT

FLIPFLOPS1

R

Q

Q

ET

ET

Q1

N.B. Serve per valutareun valore booleano solose è rimasto costante perun certo tempo

Page 89: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 89

I Programmi• Sono insiemi di elementi e costrutti dei 5 linguaggi di

programmazione dello standard per il controllo di una macchina o di un processo

• Si possono considerare come dei macro-blocchi funzionali con le seguenti caratteristiche:– definizione di variabili direttamente rappresentate in memoria– sono le uniche POU che possono accedere alle variabili

rappresentative degli input e output fisici del PLC– definizione di variabili globali e variabili di accesso che altri

programmi remoti possono indirizzare (VAR_ACCESS)– non possono istanziare se stessi– istanze di programmi possono solo essere dichiarate a livello di risorsa

Page 90: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 90

Es. Definizione testuale di un programma

PROGRAM nomeVAR_INPUT

. . . . ; (* definizione delle *) (* variabili di ingresso *)

END_VARVAR_OUTPUT

. . . . ; (* definizione delle *) (* variabili di uscita *)

END_VAR . . . .(* altre definizioni di variabili *) . . . .(* corpo del programma *)END_PROGRAM

Page 91: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 91

I Compiti/Task• Il compito/task serve per far eseguire un programma o un blocco

funzionale in maniera periodica o al verificarsi di certi eventi• Per definire un compito si possono usare:

– il parametro SINGLE di tipo BOOL, che indica la variabile booleana il cui fronte di salita è l’evento che causa un’unica esecuzione di un programma/blocco funzionale

– il parametro INTERVAL di tipo TIME che indica la durata del ciclo per un compito di tipo periodico

– in mancanza dei due parametri sopra descritti si definisce un compito ciclico continuo

– il parametro PRIORITY di tipo UINT che indica la priorità del compito (0 è la massima) ed è usato dallo schedulatore del dispositivo per gestire i vari compiti

Page 92: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 92

Osservazione sulle priorità dei task

• Se non viene definita la priorità di un task è quella minima

• Lo schedulatore (o algoritmo di schedulazione) dipende dal particolare PLC e può essere pre-emptive (i task di priorità maggiore possono interrompere quelli a priorità minore) o non pre-emptive

Page 93: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 93

Es. Definizioni di taskTASK ciclo_controllo(INTERVAL:=t#20ms,PRIORITY=0);

TASK allarme(SINGLE:=flag_allarme,PRIORITY=2);

TASK background

TASK ciclo_refresh(INTERVAL:=t#10ms,PRIORITY=5);

dove:

ciclo_controllo è un task periodico da eseguire ogni 20ms a priorità massima

allarme è un task da eseguire una sola volta quando la variabile booleana flag_allarme passa da falso a vero

background è un compito ciclico a minima priorità

ciclo_refresh è un compito periodico da eseguire ogni 10ms

Page 94: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 94

Utilizzo dei task

• Per assegnare un programma/blocco funzionale ad un particolare compito in maniera testuale si usa la parola chiave WITH

• In maniera grafica si scrive il nome del task nel blocco grafico

• Se un programma/blocco funzionale non è associato a un task, per default è eseguito in maniera ciclica continua con la minima priorità

Page 95: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 95

Le Risorse• Una risorsa/resource è un entità che è capace di eseguire un

programma• Si definisce con la parola chiave RESOURCE + nome

identificativo + ON + tipo di processore su cui va caricata; alla fine della definizione va posta la parola chiave END_RESOURCE

• Vanno definite poi eventuali variabili globali, ad accesso remoto, compiti e programmi che la compongono

• Per i programmi vanno assegnate le loro variabili di input e output collegandole a indirizzi di memoria corrispondenti a input e output fisici

• In particolare viene creata una istanza del programma, definito come un blocco funzionale, collegata a un compito e alle variabili su cui deve operare

Page 96: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 96

La Configurazione

• Corrisponde alla definizione di tutto il software che va caricato su un PLC

• Lo scopo della configurazione è:– definire le risorse a disposizione e allocare su di

esse i programmi– indicare la priorità di esecuzione dei programmi– definire le variabili globali accessibili da tutti i

programmi

Page 97: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 97

Definizione di una configurazione• Si definisce con la parola chiave CONFIGURATION +

nome• Vanno poi definite le variabili globali visibili da tutti gli

elementi della configurazione e le variabili di accesso remoto

• Vanno poi definite le risorse che la compongono (in pratica sono i processori a disposizione), che contengono i compiti e i programmi da assegnare ad ogni processore

• La parola chiave END_CONFIGURATION chiude la definizione

Page 98: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 98

Es. Definizione di una configurazioneCONFIGURATION controllore_cella

VAR_GLOBAL A : REAL; (* variabili visibili in tutta *) B : TIME; (* la configurazione *)

END_VARRESOURCE processore_1 ON pentium VAR_GLOBAL

flag_allarme : BOOL; (* visibile in tutta *) (* la risorsa *) END_VAR

TASK ciclo(INTERVAL:=t#20ms,PRIORITY=0); TASK allarme(SINGLE:=flag_allarme,PRIORITY=2); PROGRAM tornio : controllo_macchina (IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…) WITH ciclo; PROGRAM all_tornio : gestione_allarmi (IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…) WITH allarme; END_RESOURCE RESOURCE processore_2 ON AB486 PROGRAM cella : coordinamento (IN1:=…,IN2:=…,…,OUT1:=…,OUT2:=…,…); END_RESOURCEEND_CONFIGURATION

Page 99: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 99

IL DIAGRAMMA FUNZIONALE SEQUENZIALE

Page 100: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 100

Diagramma funzionale sequenziale

• Il linguaggio GRAFCET, adottato sin dal 1988 dal CEI come linguaggio per la descrizione dei sistemi di automazione industriale, è stato incluso nello standard 61131-3 con il nome di Sequential Functional Chart (SFC)

• Le sue caratteristiche ed i suoi scopi tuttavia sono diversi da quelli degli altri 4 linguaggi dello standard

Page 101: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 101

Caratteristiche del SFC• Si usa principalmente per la programmazione di

algoritmi di controllo di tipo logico-sequenziale• Poiché il comportamento di un algoritmo in SFC

dipende dallo stato precedente, si può utilizzare per programmare blocchi funzionali e programmi ma non funzioni

• Gli elementi base di un SFC sono– la fase (o tappa/passo) con le eventuali azioni associate– la transizione, con la condizione associata– l’arco orientato che connette fasi e transizioni

Page 102: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 102

La fase

• E’ una condizione del sistema modificabile solo all’occorrenza di un determinato evento, che genera una transizione che porta il sistema in una nuova fase

• Può essere in un certo istante attiva o inattiva• La condizione di un SFC è data dall’insieme delle

sue fasi attive• Se una fase è attiva, il comportamento del

programma/blocco funzionale descritto con l’SFC è definito dalle azioni associate a quella fase

Page 103: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 103

Definizione di una fase• Graficamente si definisce con un rettangolo al cui interno viene scritto il

nome della fase• Il rettangolo può essere connesso ad altri elementi (transizioni) attraverso

connettori sul bordo superiore e inferiore• Esiste anche una definizione testuale con il costrutto:

STEP nome_fase : azioni associate END_STEP

• Le fasi iniziali (attivate all’inizio dell’esecuzione) si distinguono graficamente ponendo due lineette verticali nel rettangolo, ovvero testualmente con:INITIAL_STEP nome_fase : azioni associate END_STEP

• Lo standard prevede una sola fase iniziale per ogni grafo SFC• Un blocco funzionale/programma può essere costituito da più grafi SFC

non connessi

Page 104: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 104

Note addizionali (1/II)• La definizione di una fase nome_fase comporta la

definizione di una variabile booleana nome_fase.X detta segnalatrice /marker della fase, il cui valore è 1 se la fase è attiva, altrimenti è 0

• Il valore di questa variabile è disponibile per la connessione grafica alla destra del rettangolo della fase

• Inizialmente vale 1 per le fasi iniziali, e 0 per tutte le altre• Solo a scopo illustrativo, per indicare graficamente lo stato di

una fase si ricorre per convenzione ad un pallino all’interno del rettangolo per indicare la fase correntemente attiva

Page 105: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 105

Note addizionali (2/II)• La definizione di una fase nome_fase comporta la

definizione di una variabile TIME nome_fase.T che rappresenta la durata dell’ultima attivazione della fase (se la fase è attiva, è il tempo trascorso dalla sua attivazione, se inattiva è la durata dell’ultima attivazione)

• Inizialmente questa variabile è impostata al valore t#0s per tutte le fasi

• Le variabili nome_fase.X e nome_fase.T non sono modificabili dall’utente, che può però utilizzarle

• Esse vanno inoltre considerate come variabili locali nella POU in cui l’SFC è definito

Page 106: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 106

La transizione

• E’ indicata da una barretta trasversale sull’arco orientato che collega le fasi

• Rappresenta la condizione che potrebbe far cambiare lo stato delle fasi

• Ad ogni transizione pertanto è associata una condizione, ossia una funzione booleana di variabili booleane, ovvero un’equazione a valori booleani o asserzioni

Page 107: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 107

Definizione di una transizione• Lo standard prevede vari modi per definire le condizioni delle

transizioni:– espressione in ST a destra della barretta– rete in LD a sinistra della barretta o collegata ad essa con un connettore– rete in FBD a sinistra della barretta o collegata ad essa con un connettore– assegnando un nome alla transizione, a destra della barretta, e

definendola a parte con il costruttoTRANSITION nome := …; (* condizione *)END_TRANSITION

– utilizzando il costrutto (senza nominare la transizione)TRANSITION FROM fase1 To fase2 := …; (* condizione *)END_TRANSITION

Page 108: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 108

Gli archi orientati

• Collegano tra loro le fasi, stabilendone la sequenza, e sono interrotti dalle barrette delle transizioni

• L’orientamento va sempre dal bordo inferiore di una o più fasi al bordo superiore di una o più fasi

• Anche se non necessario, si possono orientare gli archi con freccette, specialmente per connessioni dal basso verso l’alto

Page 109: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 109

Note addizionali• Se più fasi convergono in una stessa transizione o se alla

transizione succedono più fasi, si usa una doppia linea orizzontale per evidenziare le sequenze che devono evolvere in parallelo

• Per definizioni testuali dell’SFC, l’orientamento è fissato con i costrutti che definiscono le transizioni

• In generale, un grafo composto da fasi, transizioni e archi orientati è un SFC se:– due fasi non sono connesse direttamente, ma vi è una transizione tra

loro– due transizioni non sono connesse direttamente, ma vi è almeno una

fase tra loro

Page 110: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 110

quiete

avvio

a AND b

c

d

fase_A

fase_B

fase_C

fase_D

TR25TRANSITION TR25 :=(fase_C.T>=t#30s)AND(fase_B.X);END_TRANSITION

e AND NOT(f)

1

Es. Definizione grafica di un SFC

Page 111: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 111

Es. Definizione testuale di un SFCINITIAL_STEP quiete : END_STEPSTEP avvio : END_STEPSTEP fase_A: END_STEPSTEP fase_B: END_STEPSTEP fase_C: END_STEPSTEP fase_D: END_STEPTRANSITION FROM quiete TO avvio:= a AND b;END_TRANSITIONTRANSITION FROM avvio TO fase_A,fase_C:=c OR d;END_TRANSITIONTRANSITION FROM fase_A TO fase_B:= e AND NOT(f);END_TRANSITIONTRANSITION FROM fase_C TO fase_D:=(fase_C.T GE t#30s) AND (fase_B.X);END_TRANSITIONTRANSITION FROM fase_B, fase_D TO quiete:=1;END_TRANSITION

Page 112: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 112

Le azioni• Ad ogni fase si possono associare delle azioni• Si possono definire sia graficamente, indicandone il

nome e il corpo di istruzioni, sia testualmente con il costruttoACTION nome_azione:

. . . (*corpo dell’azione*)

END_ACTION• Anche una semplice variabile booleana può essere

un’azione, nel senso che se eseguita la variabile è portata a 1 (in tal caso non è presente il corpo dell’azione)

Page 113: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 113

Definizione grafica di un’azione

(1) (2) (3)

(4)

Page 114: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 114

Definizione del blocco di azione (1/II)Nel campo (1) va posto il qualificatore dell’azione che può essere:

– assente o N per qualificare l’azione come non memorizzata, da eseguire fintanto che la fase è attiva e ancora una volta quando la fase è disattivata

–P per qualificare un’azione da eseguire una sola volta quando la fase è attivata–D insieme ad una costante di tipo TIME per qualificare un’azione ritardata nel tempo se la

fase è ancora attiva e sino alla fine dell’attivazione, e poi ancora per una volta –L insieme ad una costante di tipo TIME per qualificare un’azione limitata nel tempo, eseguita

per la durata indicata o per la durata dell’attivazione della fase se minore, e poi ancora per una volta

–S o R per indicare il set o reset di un’azione memorizzata, che se settata in una fase resta in esecuzione anche dopo la disattivazione della fase, fino a quando non viene resettata, e poi ancora per un ciclo di scansione

–DS insieme ad una costante di tipo TIME per qualificare un’azione ritardata e memorizzata dopo la durata indicata se la fase è ancora attiva

–SL insieme ad una costante di tipo TIME per qualificare un’azione come memorizzata e limitata nel tempo, cioè eseguita per il tempo indicato anche se la fase si è disattivata

Page 115: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 115

Definizione del blocco di azione (2/II)• Nel campo (2) va posto il nome dell’azione

• Nel campo (3) va posta una variabile indicatrice (booleana) che è messa a 1 quando l’esecuzione dell’azione è terminata (ha solo scopi di documentazione e può essere omessa)

• Nel campo (4) va posto il corpo dell’azione, cioè quello che deve essere fatto, utilizzando uno dei linguaggi standard (compreso lo stesso SFC). Tale campo può essere omesso se l’azione viene definita a parte

Page 116: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 116

Connessione delle azioni alle fasi• Il blocco di azione può essere connesso alla fase graficamente,

tramite un collegamento a destra del rettangolo della fase, che stabilisce una relazione con la variabile segnalatrice della fase

• Una fase può essere connessa a più blocchi di azione• In alternativa si può ricorrere ad una definizione testuale del

tipo:STEP nome_fase:

var_booleana(N); (* azioni senza *) altra_var_booleana(P); (* corpo *)

AZIONE_COMPLESSA(L,t#30s,ind); (*a parte*)END_STEP

Page 117: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 117

Corpo dell’azione in SFC• Lo standard consente di definire il corpo di

un’azione anche in SFC

• Ciò consente di sviluppare un programma in SFC con una metodologia top-down, individuando prima le macro-fasi in cui passa il sistema e poi, per ognuna di esse, sviluppando in dettaglio nelle azioni le sequenze previste

Page 118: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 118

Note addizionali sui blocchi di azione• Lo standard consente l’uso di una variabile booleana associata

implicitamente ad ogni azione nome_azione.Q che è vera quando l’azione deve essere eseguita

• Le fasi cui non sono associate azioni possono essere qualificate come fasi di attesa (prima di passare ad un’altra fase)

• Lo standard prevede che i blocchi di azione possono essere utilizzati anche nel LD e nel FBD (in LD il blocco è attivato se alimentato; in FBD il blocco è attivato se l’ingresso booleano è vero)

• In ambedue i linguaggi LD e FBD, la variabile indicatrice del blocco di azione (campo (3)) può essere usata per segnalare il completamento dell’azione

Page 119: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 119

Regole di evoluzione1) Date le seguenti definizioni:

– una transizione è detta abilitata se tutte le fasi a monte di essa sono attive

– una transizione è detta superabile se è abilitata e la condizione a essa associata è vera

una prima regola di evoluzione dell’SFC afferma che se una transizione è superabile essa viene effettivamente superata: tutte le fasi a monte vengono disattivate e tutte le fasi a valle vengono attivate

2) Le operazioni di disattivazione/attivazione si susseguono nell’ordine indicato e la loro durata effettiva, piccola ma non nulla, è legata alla particolare implementazione ed è data dal tempo che intercorre tra due valutazioni successive del grafo

Page 120: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 120

Il problema dell’ambiguità

Può capitare che più transizioni distinte diventino superabili nello stesso istante.

Per rimuovere tale ambiguità, si è introdotta la regola:

3) Se più transizioni diventano superabili nello stesso istante, esse sono tutte superate contemporaneamente

Page 121: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 121

Il problema della stabilità

Un altro problema che può verificarsi è che una fase sia instabile, nel senso che ha la condizione associata alla transizione di uscita già vera quando la fase viene attivata.

In questo caso lo standard stabilisce che le azioni associate siano comunque eseguite prima della disattivazione della fase (cioè la durata dell’attivazione di una fase non può essere nulla)

Page 122: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 122

Strutture classiche di programmazione in SFC

A

B

A

B C

cond1 cond2

A B

C

cond1 cond2

Sequenza semplice

Scelta o divergenza Convergenza

Page 123: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 123

Osservazioni sulla divergenza

• Quando è presente una scelta/divergenza, occorre che le condizioni di scelta siano mutuamente esclusive

• La mutua esclusione tra le condizioni di scelta è garantita quando esse non sono mai vere contemporaneamente per loro natura

• In caso contrario occorre impostarla per costruzione ad es.:cond1’:=cond1;cond2’:=cond2 & (NOT cond1);

Page 124: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 124

Osservazioni sulla convergenza

• La convergenza è la chiusura naturale di una scelta

• Casi particolari di scelta+convergenza sono il salto di una sequenza e il ciclo di una sequenza

Page 125: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 125

Salto e ciclo di una sequenza

A

B

C

A

B

C

Page 126: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 126

Parallelismo o concorrenza

f1

f11 f21 f31

T1

Se T1 diventa superabile si attivano contemporaneamente f11,f21, f31, dando luogo a diverse sequenze che evolvono indipendentemente

Page 127: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 127

Sincronizzazione

f11 f21 f31

T1

Perché T1 sia superata occorre che f11,f21,f31 siano tutte attive. Esse cioè sono sincronizzate dalla transizione T1.

Page 128: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 128

Sincronizzazione locale

f3

f4

f5

f45

f46

f47

f20

T4

La sequenza di destra deveattendere che la sequenza di sinistra superi T4 per poterprocedere

Page 129: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 129

Struttura errata: scelta con sincronizzazione

f10

f11 f21

T10 T2

T20

f17 f24

La transizione T20 non diventeràmai superabile!!!

Page 130: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 130

Struttura errata: struttura ambigua

f1

f11 f21

T17

T1

f17 f24

T24

f2La fase f2 rischia di essereattivata due volte!!!

Page 131: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 131

Vantaggi dell’SFC

• Il linguaggio SFC è il migliore per la programmazione del controllo logico-sequenziale

• Le applicazioni di tali controllo esulano da quelle dell’automazione industriale: controllo di un sistema semaforico, di una stazione ferroviaria, dell’accesso a un canale di comunicazione, degli accessi a un data-base, della coda di un server

Page 132: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 132

Progetto del controllo con SFC (1/II)

• Scrittura dell’SFC funzionale:1) individuare le specifiche funzionali dell’impianto da

automatizzare2) esprimere tali specifiche in un linguaggio che non

permette ambiguità, ad es. adoperando l’SFC già nella scrittura delle specifiche, esprimendo le azioni da eseguire e le condizioni da valutare in linguaggio naturale (“apri valvola”, “spegni pompa”, “vai a destra”)

• L’SFC funzionale prodotto è utile anche ai fini della documentazione perché descrive esattamente quello che il sistema deve fare

Page 133: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 133

Progetto del controllo con SFC (2/II)

• Scrittura dell’SFC di controllo:1) a partire dalla descrizione funzionale del

controllo si può passare alla stesura del programma vero e proprio

2) una fase individuata a livello funzionale potrebbe poi dover essere realizzata come una sequenza di fasi intermedie (programmazione top-down)

Page 134: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 134

Note addizionali

• La scrittura dell’SFC di controllo e/o funzionale è vantaggiosa anche in fase di debugging del programma: se il sistema si blocca in una fase si deve capire solo perché la transizione di uscita non è stata superata

• Dal punto di vista implementativo/computazionale, un programma in SFC ha una maggiore efficienza poiché in ogni valutazione del grafo vanno effettivamente eseguite solo le azioni associate alle fasi attive e valutate solo le transizioni in uscita a tali fasi

Page 135: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 135

Es. Il carrello automaticoUn carrello trasportatore, a richiesta di un operatore, deve spostarsi alla destra di un binario, essere caricato per ribaltamento di un serbatoio e riportarsi a sinistra per scaricare il materiale.

g

fs fd

fr R

S D

Page 136: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 136

Architettura del sistema

• Il sistema comprende:– 3 segnali provenienti dai sensori di fine corsa, di cui 2 per

il carrello (cui corrispondono le variabili booleane fs e fd) ed 1 per il serbatorio (variabile fr)

– 1 segnale legato ad un pulsante di attivazione del ciclo (variabile g)

– 2 comandi di attuazione per il moto del carrello (variabili S e D)

– 1 segnale per il ribaltamento del serbatoio (variabile R)

Page 137: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 137

SFC funzionale per il carrello automatico

quiete

vai a destra

parti

arrivato a destra

carica

caricato

vai a sinistra

arrivato a sinistra

Page 138: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 138

SFC di controllo per il carrello automatico

quiete

vai_a_dx

g

fd

carica

fr

vai_a_sx

fs

N D

N R

N S

Page 139: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 139

Es. Il trapano automatico

p

S

D

R

a

m

b

y

xO

Segnali di input digitali:-p pulsante per comandare la partenza-a finecorsa slitta trapano in alto-m contatto di media corsa della slitta-b finercorsa della slitta trapano in basso-x contatto che segnala l’altezza del pezzoSegnali di output/comando digitali:-S che comanda la salita del trapano-D che comanda la discesa del trapano-R che attiva la rotazione del trapano-O che attiva l’oliatore

Page 140: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 140

Specifiche funzionali• Il ciclo inizia quando l’operatore preme il pulsante di

partenza, se è presente un pezzo• Se il pezzo è basso il trapano viene messo in rotazione e

fatto scendere fino al finecorsa basso; poi viene fatto risalire sino al finecorsa alto dove viene fermata la rotazione

• Se il pezzo è alto, il trapano in rotazione deve scendere fino al contatto medio e poi risalire; poi deve essere attivata la pompa oliatrice per 2s; infine il trapano deve scendere fino al finecorsa basso e poi risalire ed essere fermato

• Un nuovo ciclo può avviarsi solo se il pezzo trattato viene rimosso e sostituito con un altro

Page 141: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 141

Es. Distributore automatico di bibiteGli input di controllo sono:

– 1 segnale moneta dalla gettoniera– 1 segnale aperto che indica se il vano prelievi e stato aperto

Gli output di controllo sono:– 2 segnali BLOCCA e SBLOCCA che agiscono sulla porta del

vano prelievo– 2 segnali SA e SB per il comando di 2 pistoncini lineari (se il

segnale è presente il pistoncino va a dx, altrimenti una molla di richiamo lo riporta a sx)

L’obiettivo è che all’inserimento di una moneta, una sola bibita sia fatta cadere nel vano e sia possibile prelevarla

Page 142: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 142

SFC di controllo per il distributore

f1

f11 SBLOCCA f21

moneta

BLOCCA

Lt#1s SB

aperto

f12 f22

f21.T>=t#2s

Lt#1s SA

f23

f22.T>=t#2s

1

Page 143: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 143

Esempi di programmazione completi

1) Descrizione dell’impianto da controllare e degli ingressi e delle uscite del sistema di controllo

2) Specifiche di funzionamento da soddisfare3) Decomposizione funzionale del problema per

individuare funzionalità che si possono sviluppare autonomamente

4) Scrittura del programma di controllo5) Definizione delle risorse e della configurazione

del sistema di controllo

Page 144: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 144

Controllo sistema di illuminazione

• Due capannoni identici per cui occorre controllare i sistemi di illuminazione

• In ogni capannone sono presenti una scala e un ambiente di lavoro

Ls c ala

L1 L2

P 1s c ala

P 2s c ala

P 3s c ala

P 1 P 2

Page 145: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 145

Caratteristiche sistema di controllo

• Ingressi di controllo:– P1scala, P2scala, P3scala, P1, P2

segnali provenienti dai pulsanti di accensione

• Uscite di controllo:– Lscala, L1, L2 segnali di controllo

illuminazione

Page 146: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 146

Specifiche • Le luci della scala si devono accendere alla pressione di uno

dei pulsanti di accensione e rimanere accese per 60s• Se durante l’accensione delle luci della scala viene premuto di

nuovo uno dei pulsanti il conteggio del tempo deve ripartire• Se viene premuto il pulsante P1 [P2] si deve accendere

l’impianto L1 [L2] nell’ambiente di lavoro • Se uno dei pulsanti P1 o P2 viene premuto due volte entro

mezzo secondo, si devono accendere tutti e due gli impianti L1 e L2

• Se uno dei pulsanti P1 o P2 viene tenuto premuto per più di mezzo secondo, si devono spegnere tutti e due gli impianti L1 e L2

Page 147: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 147

Funzionalità

• Gestione di un impianto luminoso: blocco funzionale che può accendere, spegnere o cambiare lo stato di un’uscita

• Accensione temporizzata di un impianto luminoso: blocco funzionale che permette l’accensione per una durata impostabile e lo spegnimento immediato dell’impianto

• Riconoscimento doppia pressione su un pulsante: blocco funzionale che permette di distinguere se c’è un solo fronte di salita o due sull’ingresso

• Riconoscimento di una pressione continua del pulsante: blocco funzionale per distinguere tra segnale d’ingresso durato meno o più dell’intervallo prefissato

Page 148: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 148

Gestione luce

on

off

com

BOOL

BOOL

BOOL

luce BOOL

spenta

accesa

P

P

on

com

luce

P

P

off

com

gest_luce

FUNCTION_BLOCK

END_FUNCTION_BLOCK

Il fronte di salita sull’ingressoon mette a 1 l’uscita luceche è riportata a zero da un frontedi salita sull’ingresso off.Un fronte di salita su com fa cambiare lo stato dell’uscita.

Page 149: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 149

Accensione temporizzata

>on

>off

durata

BOOL

BOOL

TIME

luce BOOL

f1

f2

on

luce

timer_luce

FUNCTION_BLOCK

END_FUNCTION_BLOCK

f3 luce

on

1

(f2.T>durata OR off)AND NOT(on)

Permette l’accensione per unadurata impostabile e lo spegnimento immediato

Page 150: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 150

Riconoscimento doppia pressionein

durata

BOOL

TIME

singolo BOOL

quiete

primo

in

doppia_pres

FUNCTION_BLOCK

END_FUNCTION_BLOCK

doppio BOOL

LTPin

primo.T

durata

EN ENO

due doppio

GE

primo.T

durata

EN ENO

singolouno

1 1

Page 151: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 151

Riconoscimento pressione continua

in

durata

BOOL

TIME

corto BOOL

quiete

premuto

in

lung_pres

FUNCTION_BLOCK

END_FUNCTION_BLOCK

lungo BOOL

dopo lungocortoprima

1

NOT(in)

1

in AND (premuto.T>=durata)

Page 152: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 152

Programma gestione luci capannone

PROGRAM gest_luci_cap

VAR_INPUT P1,P2,P1scala,P2scala,P3scala : BOOL; END_VARVAR_OUTPUT L1,L2,Lscala : BOOL; END_VARVAR timer_scala : timer_luce; luce1,luce1:gest_luce;

lungo1,lungo2:lung_pres;doppio1,doppio2:doppia_pres; END_VAR

END_PROGRAM

P1scalaP2scalaP3scala

on

off

duratat#60s

ORtimer_scala

luce

lungo1P1

t#500ms

in

durata

corto

lungo

doppio1

t#500ms

in

durata

singolo

doppio

lungo2

t#500ms

in

durata

corto

lungo

doppio2

t#500ms

in

durata

singolo

doppio

P2

OR

OR

OR

OR

on

off

com

luce1

L1luce

onoff

com

luce2

L2luce

Lscala

Page 153: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 153

Risorse e Configurazione

• Occorre definire le risorse e la configurazione

• Si supponga di utilizzare un controllore con una sola risorsa di elaborazione PLC586

Page 154: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 154

Es. Configurazione 1CONFIGURATION contr_imp_luci

RESOURCE controllore ON PLC586

PROGRAM capan1:gest_luci(P1:=%I3.4,P2:=%I3.5,

P1scala:=%I3.6,P2scala:=%I3.7,P3scala:=%I3.8,

Lscala:=%Q1.1,L1:=%Q1.2,L2:=%Q3.4);

PROGRAM capan2:gest_luci(P1:=%I2.2,P2:=%I2.3, P1scala:=

%I2.4,P2scala:=%I2.5,P3scala:=%I2.6,

Lscala:=%Q4.1,L1:=%Q4.2,L2:=%Q4.4);

END_RESOURCE

END_CONFIGURATION

Page 155: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 155

Es. Configurazione 2CONFIGURATION contr_imp_luci RESOURCE primo_capan ON PLC586 PROGRAM capan1:gest_luci(P1:=%I3.4,P2:=%I3.5,

P1scala:=%I3.6,P2scala:=%I3.7,P3scala:=%I3.8,Lscala:=%Q1.1,L1:=%Q1.2,L2:=%Q3.4);

END_RESOURCERESOURCE secondo_capan ON PLC486 TASK periodo(INTERVAL:=t#10ms)

PROGRAM capan2:gest_luci(P1:=%I2.2,P2:=%I2.3, P1scala:=%I2.4,P2scala:=%I2.5,P3scala:=%I2.6,Lscala:=%Q4.1,L1:=%Q4.2,L2:=%Q4.4) WITH periodo;

END_RESOURCEEND_CONFIGURATION

Page 156: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 156

Sistema di nastri trasportatori

• Sistema composto da 3 nastri trasportatori identici

• I pacchi posati sul primo nastro vengono portati alla fine del terzo nastro da dove sono prelevati

• Allo scopo le movimentazioni dei 3 nastri devono essere opportunamente coordinate

Page 157: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 157

Schematizzazione funzionalenastro1

fotocellula

nastro2 nastro1

fotocellula fotocellula

Input di controllo:1) photo: segnale dalle fotocellule poste alla fine dei nastri2) p_dopo: indica se il dispositivo

successivo è pronto per accettare il pacco

Output di controllo:1) ava: controlla la movimentazione del nastro2) p_acc: indica al dispositivo precedente che il nastro è pronto a ricevere3) p_cons: indica al dispositivo successivo che il nastro è pronto a consegnare

Page 158: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 158

Gestione nastro

photo

p_dopo

BOOL

BOOL

ava BOOL

f1

f2

photo

gest_nastro

FUNCTION_BLOCK

END_FUNCTION_BLOCK

BOOL

BOOL

p_acc

p_cons

ava

p_acc

NOT(photo)

consegna

p_cons

p_dopo p_acc

ava

N

Page 159: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 159

Programma gestione nastriPROGRAM tre_nastri

VAR_INPUT phi1,phi2,ph3,pronto_a_valle: BOOL; END_VARVAR_OUTPUT ava1,ava2,ava3,pronto_ad_accettare, pronto_a_consegnare : BOOL; END_VARVAR nastro1,nastro2,nastro3 : gest_nastro; END_VAR

nastro1

photo

p_dopo

ava

p_acc

p_cons

nastro2

photo

p_dopo

ava

p_acc

p_cons

nastro3

photo

p_dopo

ava

p_acc

p_cons

ph1 ph2ava1 ava2 ava3

ph3

pronto_a_valle

pronto_ad_accettare

pronto_a_consegnare

END_PROGRAM

Page 160: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 160

Sistema di nastri trasportatori e girello automatico

nastro1

ph1

nastro2

ph2 girello

nastro3

ava1 ava2

ph3

ava3

fd

fssin

desphoto

ava

Input di controllo girello:1) photo segnale dalla fotocellula per indicare un pacco trasferito sul girello2) fs finecorsa antioraria del girello3) fd finecorsa oraria del girello4) p_dopo indica se il dispositivo dopo è pronto per accettare un pacco5) p_prima indica se il dispositivo prima è pronto a consegnare un pacco

Output di controllo girello:1) ava movimentazione rulli del girello2) sin fa ruotare il girello in senso antiorario3) des fa ruotare il girello in senso orario4) p_acc indica che il girello è pronto ad accettare un pacco dal dispositivo prima5) p_cons indica che il girello è pronto a consegnare un pacco al dispositivo dopo

Page 161: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 161

Gestione girello

photo

p_dopo

BOOL

BOOL

ava BOOL

fermo

consegna

p_prima

gest_girello

FUNCTION_BLOCK

END_FUNCTION_BLOCK

BOOLBOOL

p_accp_cons

NOT(photo)consegna

p_cons

p_dopo ava

N

BOOLBOOL

BOOLp_primafdfs

BOOLBOOL

sindes

ricevi avap_acc

photo

gira_sn sin

fs

gira_ds sin

fd

Page 162: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 162

PROGRAM nastri_girello

VAR_INPUT phi1,phi2,ph3,phg,fsg,fdg,pronto_a_valle: BOOL; END_VARVAR_OUTPUT ava1,ava2,ava3,avag,sing,desg,pronto_ad_accettare, pronto_a_consegnare : BOOL; END_VARVAR nastro1,nastro2,nastro3 : gest_nastro;

girello : gest_girello;END_VAR

nastro1

photo

p_dopo

ava

p_acc

p_cons

nastro2

photo

p_dopo

ava

p_acc

p_cons

ph1 ph2ava1 ava2

pronto_a_valle

pronto_ad_accettare

pronto_a_consegnare

nastro3

photo

p_dopo

ava

p_acc

p_cons

ava3ph3

photo

p_dopo

phg ava avaggest_girello

singdesg

p_accp_cons

fsgfdg

p_primafdfs sin

des

Page 163: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 163

Traduzione del SFC

• Non tutti i PLC comprendono l’SFC tra i possibili linguaggi di programmazione

• E’ necessaria una procedura di traduzione in modo che sia implementabile su qualsiasi macchina

• La procedura deve essere semplice e dettagliata, con relazioni biunivoche

• Ogni eventuale modifica dell’SFC deve poter essere convertita nelle modifiche alla traduzione

Page 164: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 164

Formalizzazione di un SFC

• Propedeutica alla traduzione di un SFC è la “formalizzazione” del suo comportamento

• Occorre cioè trovare equazioni booleane o algoritmi di evoluzione che descrivano le regole con cui le fasi evolvono:

1. Una fase diventa attiva se una delle transizioni a monte è superabile

2. Una fase viene disattivata se essa è attiva e se risulta superabile una delle transizioni a valle

Page 165: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 165

Equazioni booleane equivalenti

j1 jd

Tj FjTi Fi

i

n

f1 fe

Tk Fk Tf Ff

j hi

XjhFjFiXiXn ..:. Regola di attivazione della fase n

f hk

XfhFfFkNOTXnXn ..:. Regola di disattivazione

Page 166: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 166

Osservazioni• L’equazione booleana complessiva è data dall’OR

delle due equazioni scritte• In entrambe le equazioni booleane equivalenti

trovate, la n.X e le condizioni delle transizioni sono valutati all’istante attuale, viceversa i segnalatori delle fasi all’istante precedente

• Oltre alle equazioni di attivazione e disattivazione delle fasi occorre scrivere le equazioni delle azioni da eseguire

Page 167: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 167

Traduzione in equazioni booleane

• E’ richiesta la traduzione in equazioni booleane equivalenti per tutte le fasi e per tutte le azioni

• E’ necessaria poi un procedura di lettura degli ingressi e di scrittura delle uscite

• Tale procedimento è poco flessibile in quanto prevede l’inclusione delle condizioni delle transizioni nelle equazioni delle fasi

Page 168: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 168

Algoritmo di evoluzione

lettura ingressi

inizializzazione SFC

lettura ingressi

determinazionetransizioni superabili

esecuzione azioni

scrittura uscite

aggiornamentocondizione SFC

Fase di inizializzazione

Ciclo iterativo

Rappresentazione in forma algoritmica delle regole di evoluzione di un SFC

Page 169: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 169

Caratteristiche di un algoritmo di evoluzione

• Fase di inizializzazione:– lettura degli ingressi fisici– attivazione delle fasi iniziali ed esecuzione delle azioni

associate

• Ciclo iterativo:– aggiornamento degli ingressi fisici– determinazione delle uscite di controllo a partire dalle

transizioni superabili, dalle fasi attive e dall’esecuzione delle azioni

– scrittura delle uscite fisiche

Page 170: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 170

Codifica dell’algoritmo di evoluzione

• L’algoritmo evolutivo prevede la codifica dell’inizializzazione delle fasi, della valutazione delle transizioni, della determinazione della nuova condizione e delle azioni associate da svolgere

• E’ stato scelto il LD come linguaggio di codifica

Page 171: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 171

Operazioni preliminari

• Associare ad ogni fase una variabile booleana come segnalatore della fase (ad es. il nome della fase)

• Associare ad ogni transizione una variabile booleana come segnalatore della transizione (ad es. Tr+numero transizione)

Page 172: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 172

Sezioni dell’algoritmo in LD

L’algoritmo di evoluzione codificato in LD presenterà 4 sezioni in sequenza:

1. Sezione di inizializzazione

2. Sezione di valutazione delle transizioni

3. Sezione di aggiornamento della condizione

4. Sezione di esecuzione delle azioni

Page 173: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 173

Sezione di inizializzazione

• E’ eseguita una sola volta all’inizio

• Serve per porre a 1 i segnalatori delle fasi iniziali dell’SFC

• Ciò è possibile con bobine a memorizzazione associati ai segnalatori delle fasi iniziali

Page 174: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 174

Es. Inizializzazione in LD

INIZ fase_iniz_1

fase_iniz_n

S

S

AZIONI

Il bit di stato INIZ è 1 soloalla prima scansione!!

Page 175: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 175

Sezione di valutazione delle transizioni

• Valuta se tutte le transizioni sono superabili o meno, aggiornando lo stato dei segnalatori di transizione

• E’ necessaria così una istruzione in LD per ogni transizione per valutarne la superabilità

Page 176: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 176

Es. Valutazione delle transizioni in LD

fase_i Tricond

Trjcondfase_j

fase_k fase_f cond Trk

Page 177: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 177

Sezione di aggiornamento della condizione

• Per ogni transizione superabile, disattiva le fasi a monte e attiva quelle a valle

• Per ogni transizione quindi occorre un rung che disattivi le fasi a monte seguito da un rung che attivi le fasi a valle, quando la transizione è superabile

Page 178: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 178

Sezione di esecuzione delle azioni

• E’ preceduta dall’etichetta AZIONI cui punta il salto condizionato nella Sezione inizializzazione

• Si usa la variabile segnalatrice dello stato di attivazione di una fase per condizionare l’esecuzione dell’azione associata

Page 179: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 179

Traduzione delle variabili temporali

• In un SFC possono essere presenti variabili temporali associate alle fasi per condizionare le transizioni e nelle azioni limitate o ritardate nel tempo (L o D)

• Nel LD vanno implementate tramite il blocco funzionale predefinito dei temporizzatori TON

Page 180: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 180

Errori comuni

f1 AAA

AAAf2

f1 AAA

f2

NO SI

Page 181: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 181

Es. Il carrello automatico

g

fs fd

fr R

S D

Page 182: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 182

Es. Il carrello automatico in SFC

quiete

vai_a_dx

g

fd

carica

fr

vai_a_sx

fs

N D

N R

N S

Page 183: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 183

Es. Il carrello automatico in LD 1/IIIINIZ quiete

S

AZIONI

quiete g Tr1

vai_a_dx fd Tr2

carica fr Tr3

Tr4vai_a_sx fd

Sezione di inizializzazione

Sezione di valutazione delle transizioni

Page 184: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 184

Es. Il carrello automatico in LD 2/IIITr1 quiete

R

Tr2 vai_a_dx

R

Tr3 carica

R

Tr4 vai_a_sx

R

Tr1 vai_a_dx

S

Tr2

vai_a_sx

S

Tr3

carica

S

Tr4 quiete

S

Sezione di aggiornamento dellecondizioni

Page 185: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 185

Es. Il carrello automatico in LD 3/III

vai_a_dx D

carica R

vai_a_sx S

AZIONI:

Sezione di esecuzione delleazioni (tutte con il qualificatore N)

Page 186: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 186

Es. La cella robotizzata

• Si consideri una cella robotizzata costituita da un robot che deve servire:– 2 nastri trasportatori di alimentazione– 1 nastro trasportatore di distribuzione

• Il robot deve trasferire dei carichi che arrivano in maniera random dai nastri di alimentazione al nastro di distribuzione

Page 187: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 187

Es. La cella robotizzataNastro 1

Nastro 2

Nastro 3

PRES1

PRES2

PRES3

P1

P2

P3

P0

AVA1

AVA2

AVA3

OGG3

Input di controllo:1) PRESi: presenza oggetto nella posizione Pi, i=1..3 2) OGG3: presenza oggetto alla fine del nastro 33) OKi: avvenuto posizionamento del robot in Pi, i=0..3

Output di controllo:1) AVAi: avanzamento nastro i, i=1..32) VAIi: posizionamento del robot in Pi, i=0..33) CHIUDI: comando chiusura pinza del robot4) APRI: comando apertura pinza del robot

Page 188: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 188

SFC di controllo dei nastri

NOT PRES1T10

quiete1

f11 AVA1

PRES1T11

NOT PRES2T20

quiete2

f21 AVA2

PRES2T21

PRES3 AND quiete0T30

quiete3

f31 AVA3

OGG3T31

f32

NOT OGG3T32

Page 189: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 189

SFC di controllo del robot

quiete0

PRES2 AND NOT PRES1T2

f2 VAI2

OK2T4

PRES1T1

f1 VAI1

OK1T3

CHIUDIf3

f3.T>=0.5s AND quiete3T5

VAI3

f4 CHIUDI

f5

OK3T6

f5.T>=0.5sT7

VAI0f6

APRI

OK0T8

Page 190: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 190

Es. La cella robotizzata in LD 1/IX

INIZ quiete0

S

AZIONI

quiete2

quiete1

S

S

quiete3

S

Sezione di inizializzazione

Page 191: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 191

Es. La cella robotizzata in LD 2/IX

Sezione di valutazione delle transizioni

quiete0 PRES1 Tr1

Tr3

Tr4f2 OK2

quiete0 PRES2 Tr2PRES1

f1 OK1

f3 timer1.Q Tr5quiete3

Tr6f4 OK3

Tr7f5 timer2.Q

Page 192: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 192

Es. La cella robotizzata in LD 3/IX

Sezione di valutazione delle transizioni

f6 OK0 Tr8

Tr11

Tr20quiete2 PRES2

quiete1 PRES1 Tr10

f11 PRES1

f21 PRES2 Tr21

Tr30quiete3 PRES3

Tr31f31 OGG3

quiete0

f32 OGG3 Tr32

Page 193: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 193

Es. La cella robotizzata in LD 4/IX

Sezione di aggiornamento delle condizioni

Tr1 quiete0

R

Tr2

Tr3 f1

R

Tr4 f2

R

Tr5 f3

R

Tr6

f5

R

Tr7

f4

R

Tr8 f6

R

Page 194: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 194

Es. La cella robotizzata in LD 5/IX

Sezione di aggiornamento delle condizioni

Tr10 quiete1

R

Tr11

Tr20 quiete2

R

Tr21 f21

R

Tr30 quiete3

R

Tr31

f32

R

Tr32

f31

R

R

f11

Page 195: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 195

Es. La cella robotizzata in LD 6/IX

Sezione di aggiornamento delle condizioni

Tr1 f1

S

Tr2

Tr3 f3

S

Tr4

Tr5 f4

S

Tr6

f6

S

Tr7

f5

S

Tr8 quiete0

S

f2

S

Page 196: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 196

Es. La cella robotizzata in LD 7/IX

Sezione di aggiornamento delle condizioni

Tr10

S

Tr11

Tr20

quiete2

S

Tr21

f21

S

Tr30

quiete3

S

Tr31 f32

S

Tr32

f31

S

S

f11

quiete1

Page 197: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 197

Es. La cella robotizzata in LD 8/IX

f3 CHIUDI

f4

f1 VAI1

AZIONI:

f2 VAI2

f4 VAI3

f5 APRI

f6 VAI0

Sezione di esecuzione delleazioni

Page 198: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 198

Es. La cella robotizzata in LD 9/IX

f11 AVA1

f21

f31 AVA3

f3

f4

AVA2

timer1IN

PT

Q

ETt#500ms

timer2IN

PT

Q

ETt#500ms

Sezione di esecuzione delleazioni

Page 199: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 199

Macrofase e macroazione

• I concetti di macrofase e macroazione sono stati introdotti di recente per facilitare la programmazione in SFC

• Essendo cronologicamente posteriori, essi non sono presenti nello standard

Page 200: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 200

Macrofase

• La macrofase è un concetto introdotto per facilitare la descrizione di sistemi complessi

• Viene utilizzata per descrivere una particolare porzione di un SFC detta espansione della macrofase

• L’espansione della macrofase deve avere una sola fase di ingresso e una sola fase di uscita e non ci devono essere archi orientati che entrano o escano dalla espansione della macrofase

Page 201: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 201

Es. Macrofase

4

5M30

6

i30

O30

Page 202: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 202

Macroazione

• La macroazione è un’azione operata da un SFC che ha effetti sulla condizione di un altro SFC

• Viene introdotta per poter realizzare gerarchie tra gli SFC

• Per avere effetti deve agire cambiando i valori delle variabili segnalatrici dello stato

Page 203: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 203

Esempi di macroazioni

• SOSPENSIONE: permette ad un SFC di rendere inattive tutte le fasi di un altro SFC (equivale ad inserire una transizione superabile in uscita a tutte le fasi dell’SFC da sospendere)

• FORZATURA: permette ad un SFC di forzare la condizione di un altro SFC a prescindere dalle regole di evoluzione (equivale ad inserire una transizione superabile in uscita a tutte le fasi che non devono diventare attive, ed una in ingresso a tutte le fasi che devono diventare attive)

Page 204: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 204

Es. Sospensione

4

5

6

SOSPENDERE(G2)

G1

f11

f12

f13

a

b

c

f11

f12

f13

a

b

c

f5.X

f5.X

f5.X

G2 Interpretazione

Page 205: LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE  PLC

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 205

Es. Forzatura

4

5

6

FORZARE(G2,f12)

G1

f11

f12

f13

a

b

c

f11

f12

f13

a

b

c

f5.X

f5.X

G2 Interpretazione

f5.X