La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino1 LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC Prof. Raffaele Iervolino.

Presentazioni simili


Presentazione sul tema: "Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino1 LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC Prof. Raffaele Iervolino."— Transcript della presentazione:

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

2 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino2 Introduzione I primi sistemi automatici programmabili furono realizzati alla fine degli anni 60 nellindustria 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

3 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino3 Esempio di funzionamento di un PLC (1/III) Si vuole realizzare un circuito elettrico con 2 interruttori normalmente aperti 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.

4 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino4 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 dellingresso I 1 2)Controlla lo stato dellingresso I 2 3)Solo se I 1 e I 2 sono entrambi alti accendi la lampada posta sulluscita O 1 4)Torna al punto 1

5 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino5 Esempio di funzionamento di un PLC (3/III) Mentre il circuito elettrico è diverso dal caso precedente, la connessione degli interruttori e della lampada sul PLC è rimasta invariata!!

6 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino6 Definizione di PLC (standard IEC 61131) […] sistema elettronico a funzionamento digitale, destinato alluso in ambito industriale, che utilizza una memoria programmabile per larchiviazione interna di istruzioni […] e per controllare, mediante ingressi ed uscite sia digitali che analogici, vari tipi di macchine e processi.

7 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino7 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 …

8 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino8 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)

9 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino9 Variabili e Tipi di variabili Lo standard prevede alcuni tipi predefiniti di variabili: 1)INT e UINT per rappresentare numeri interi rispettivamente in [-32768, 32767] ed in [0, ] 2)REAL per rappresentare numeri reali nellintervallo ±10 ±38 3)TIME per rappresentare una durata temporale in unità che vanno dai giorni ai ms T# d h m s ms 4)DATE e TIME_OF_DAY per rappresentare la data e lora 5)STRING per definire le stringhe di caratteri 6)BOOL (1 bit), BYTE (8 bit), WORD (16 bit), DWORD (32 bit), LWORD (64 bit) 7)ANY se la variabile può essere di qualsiasi tipo 8)ANY_NUM se la variabile può essere INT o REAL

10 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino10 Tipi derivati Possono essere introdotti vari tipi derivati in vari modi: 1)Per equivalenza a quelli predefiniti 2)Per enumerazione 3)Per restrizione dei tipi già definiti 4)Definendo insiemi ordinati di più elementi dello stesso tipo (array) 5)Definendo insiemi di più elementi di tipo diverso (struct)

11 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino11 Esempio TYPE impulsi : UINT( ); 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_STRUCT dati_term_forno : ARRAY[1..10] OF sens_temp; dati_term_imp : ARRAY[1..4,1..4] OF dati_term_forno; END_TYPE

12 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino12 Dichiarazione delle variabili Le variabili vanno dichiarate in testa ai programmi, funzioni e blocchi funzionali, con il costrutto: VAR A,B : REAL; abil : BOOL; conteggio : impulsi; stato_forno : stato; termometro7 : temperatura :=0.0; termocoppia1 : sens_temp; forno1 : dati_term_forno; END_VAR

13 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino13 IL TESTO STRUTTURATO

14 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino14 Il Testo Strutturato (ST) E un linguaggio di programmazione testuale, di alto livello (Pascal), per le applicazioni dellautomazione. Esempi di operatori contemplati: 1)Assegnazione := 2)Aritmetici +,-,*,/,MOD,** 3)Relazione,>=,=, 4)Logici AND, OR, XOR, NOT 5)Parentesi ( e ) per cambiare lordine di esecuzione delle operazioni

15 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino15 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

16 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino16 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

17 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino17 IL LADDER DIAGRAM

18 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino18 Il Linguaggio a Contatti Il linguaggio a contatti (Ladder Diagram) è il più diffuso linguaggio di programmazione per PLC. Esso prevede lutilizzo degli elementi: contatto aperto, contatto chiuso, bobina, temporizzatore e contatore, tipici degli schemi a relè elettromeccanici.

19 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino19 Il Ladder Diagram La forma del programma deriva dalla logica a relè, con le due linee verticali laterali (i montanti della scala) rappresentati lalimentazione e con le linee orizzontali (i pioli o rung) che alimentano una bobina se una certa combinazione di contatti abilita il flusso di energia.

20 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino20 Esempio di programma

21 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino21 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.

22 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino22 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 laltro, procedendo dallalto verso il basso, da sinistra verso destra –Scrittura delle uscite, prelevando il loro stato da locazioni di memoria particolari

23 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino23 Es. di organizzazione dellarea dati della memoria RAM Per fissare le idee larea 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.

24 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino24 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 allindirizzo di memoria U3:14 (uscita digitale).

25 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino25 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 luscita rappresentata dalla bobina. I contatti e le bobine devono essere sempre associati a bit di memoria oppure a nomi simbolici corrispondenti.

26 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino26 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.

27 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino27 Bobina Bobina –( )– serve per controllare lo stato del bit a essa associato che può rappresentare unuscita (Ux:y) o un marker interno (Wx:y). Listruzione 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).

28 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino28 Es.1: Programmazione di una XOR U3:15 = (I1:4 AND NOT(I1:7)) OR (NOT(I1:4) AND I1:7)

29 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino29 Es.2: Programmazione di un elemento di memoria (flip-flop SR) SETRESET U1:1 = NOT(I3:9) AND (I2:2 OR U1:1)

30 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino30 Es.3: Riconoscimento di fronte di salita W1:1 = NOT(W1:2) AND I1:1 W1:2 = I1:1

31 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino31 Esercizio Tradurre in LD la seguente istruzione in ST

32 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino32 Soluzione

33 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino33 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à

34 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino34 Istruzioni per il controllo del programma Listruzione di salto permette, se alimentata, di saltare a un rung dove è presente listruzione 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. Listruzione è usata per la terminazione di funzioni e blocchi funzionali

35 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino35 Es. Utilizzo del salto per una procedura di inizializzazione

36 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino36 Istuzioni di connessione La coppia di istruzioni di connessione -->zyx> e >zyx>-- viene utilizzata per spezzare un rung troppo lungo:

37 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino37 IL DIAGRAMMA A BLOCCHI FUNZIONALI

38 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino38 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

39 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino39 Una rete in FBD E una rete di funzioni e/o blocchi funzionali collegati tra loro Lingresso 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 dellingresso nel blocco grafico

40 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino40 Esempio di una rete in FBD

41 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino41 LA LISTA DI ISTRUZIONI

42 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino42 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 Unistruzione può essere preceduta da una etichetta del tipo x: Ogni operatore fa riferimento ad un accumulatore e alloperando

43 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino43 Operatori Predefiniti Gli operatori predefiniti sono: –LD per assegnare allacc il valore delloperando –ST per porre il valore dellacc nella variabile indicata dalloperando –S per porre una variabile booleana a 1 se il valore nellacc è 1 –R per porre una variabile booleana a 0 se il valore nellacc è 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 alletichetta 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

44 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino44 I Modificatori Gli operatori possono essere seguiti da modificatori: – N indica una negazione delloperando – ( indica che loperatore viene valutato solo se si trova la corrispondente ) – C, usato solo per gli operatori JMP, CAL e RET, serve per indicare che loperatore è eseguito solo quando il valore corrente dellacc è 1

45 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino45 Es. Istruzioni per la XOR LDa (* metti il valore di a nellacc *) ANDN b (* AND dellacc con il NOT di b *) OR(b (* OR dellacc con lespressione *) ANDNa ) STc (* conserva lacc in c *)

46 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino46 PROGRAM ORGANIZATION UNITS (POU)

47 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino47 Unità di organizzazione della programmazione Esistono elementi comuni ai 5 linguaggi: Variabili: strumento per rappresentare dati Funzioni: quando luscita dipende solo dallingresso attuale Blocchi Funzionali: quando luscita 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

48 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino48 Le POU Linsieme 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

49 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino49 I task, le risorse e la configurazione I task regolano lesecuzione 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 è lelemento del linguaggio corrispondente a un dispositivo che corrisponde a una o più risorse

50 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino50 Le Funzioni Sono POU riusabili che da certi valori di ingresso calcolano un solo valore in uscita (anche vettoriale) Luscita ha lo stesso nome della funzione e può essere usato allinterno di espressioni Possono essere definite in maniera sia testuale che grafica

51 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino51 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

52 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino52 Caratteristiche di una funzione Il corpo della funzione può essere scritto in uno dei 5 linguaggi dello standard, eccetto lSFC Non possono essere definite variabili di uscita, di ingresso/uscita, direttamente rappresentate, esterne, globali, accessibili, a ritenuta

53 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino53 Definizione grafica di una funzione La definizione della funzione è sempre racchiusa tra le parole chiavi FUNCTION ed END_FUNCTION Tuttavia linterfaccia 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

54 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino54 Es. Definizione grafica della funzione saturazione FUNCTION IF ABS(dato) < lim_soglia THEN soglia_sat := 0.0; ELSE soglia_sat := MIN(MAX(dato,-lim_sat),lim_sat); END_IF END_FUNCTION

55 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino55 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

56 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino56 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

57 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino57 Funzioni predefinite (2/II) Funzioni di selezione: SEL, MUX, MAX, MIN, LIM Funzioni di comparazione: GT o >, GE o >=, LT o Funzioni sulle stringhe di caratteri: LEN, LEFT, RIGHT, MID per lestrazione di N caratteri a sx, dx, in mezzo, INSERT, DELETE, REPLACE, FIND Funzioni relative a operazioni su variabili di tipo temporale

58 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino58 Overload e estensione delle funzioni Alcune funzioni possono essere sovraccaricate nel senso che possono usare variabili di ingresso di tipo diverso (es. laddizione si può usare sia qualsiasi tipo numerico) Alcune funzioni possono essere estendibili, nel senso che il numero dei loro ingressi può essere variabile (es. laddizione si può estendere ad un numero generico di addendi)

59 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino59 Controllo di esecuzione Per le funzioni definite con linguaggi grafici (LD o FBD) è possibile controllare lesecuzione della funzione mediante un ingresso implicito booleano EN Allo stesso modo esiste unuscita 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 unaltra basta connettere luscita ENO della prima con lingresso EN della seconda

60 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino60 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

61 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino61 Es. Sottrazione di un offset da una misura (grafico)

62 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino62 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 lSFC

63 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino63 Es. Definizione testuale di un blocco funzionale FUNCTION_BLOCK esempio VAR_INPUT.... ; (* definizione delle *) (* variabili di ingresso *) END_VAR VAR_OUTPUT.... ; (* definizione delle *) (* variabili di uscita *) END_VAR.... (* altre definizioni di variabili *).... (* corpo del blocco funzionale *) END_FUNCTION_BLOCK

64 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino64 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 linterfaccia 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

65 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino65 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

66 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino66 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

67 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino67 Es. Blocco flip-flop RS FUNCTION_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

68 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino68 Es. Rilevatore di fronte di salita FUNCTION_BLOCK R_TRIG VAR_INPUT CLK : BOOL ; END_VAR VAR_OUTPUT Q : BOOL; END_VAR VAR RETAIN AUX : BOOL:=0; END_VAR LD CLK (* corpo in IL *) ANDN AUX ST Q LD CLK ST AUX END_FUNCTION_BLOCK

69 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino69 Es. Rilevatore di fronte di discesa FUNCTION_BLOCK F_TRIG VAR_INPUT CLK : BOOL ; END_VAR VAR_OUTPUT Q : BOOL; END_VAR VAR RETAIN AUX : BOOL:=1; END_VAR (* corpo in LD *) END_FUNCTION_BLOCK

70 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino70 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 <

71 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino71 Es. Contatore a incremento FUNCTION_BLOCK CTU VAR_INPUT CU : BOOL R_TRIG; R : BOOL; PV : INT; END_VAR VAR_OUTPUT Q : BOOL; CV : INT; END_VAR IF R THEN CV := 0; ELSIF CU AND (CV

72 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino72 Es. Contatore a decremento e contatore bidirezionale

73 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino73 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

74 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino74 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

75 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino75 Timer a impulso, on-delay e off-delay TP o timer a impulso genera in uscita una finestra rettangolare di durata prestabilita quando lingresso diventa vero TON o timer on-delay alza la sua uscita dopo che è trascorso il tempo impostato da quando lingresso è alto, che deve restare tale, altrimenti il timer si resetta (ritardo di accensione) TOF o timer off-delay ha unuscita alta quando lingresso è vero e si abbassa dopo il tempo impostato quando lingresso diventa falso (ritardo di spegnimento)

76 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino76 Es. Definizione grafica del TP dove: IN = ingresso che fa partire la temporizzazione PT = tempo da contare Q = uscita booleana su cui il temporizzatore agisce ET = tempo trascorso

77 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino77 Es. Definizione grafica del TON dove: IN = ingresso che fa partire la temporizzazione PT = tempo da contare Q = uscita booleana su cui il temporizzatore agisce ET = tempo trascorso

78 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino78 Es. Definizione grafica del TOF dove: IN = ingresso che fa partire la temporizzazione PT = tempo da contare Q = uscita booleana su cui il temporizzatore agisce ET = tempo trascorso

79 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino79 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

80 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino80 Note sui blocchi funzionali Un blocco funzionale può contenere la chiamata ad altri blocchi funzionali o funzioni Allatto della definizione di un blocco è creata una loro istanza con nome e struttura dati univoci Unistanza di un blocco funzionale si definisce come una variabile, con la sua stessa visibilità Oltre ai blocchi funzionali predefiniti, è possibile creare blocchi funzionali definiti dallutente

81 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino81 Es. Gestione di una risorsa comune (testuale) FUNCTION_BLOCK semaforo VAR_INPUT richiesta, rilascio : BOOL; END_VAR VAR_OUTPUT impegnata : BOOL; END_VAR VAR aux : BOOL :=0; END_VAR impegnata := aux; IF richiesta THEN aux := 1; ELSIF rilascio THEN impegnata := 0; aux := 0; ENDIF END_FUNCTION_BLOCK

82 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino82 Es. Gestione di una risorsa comune (grafica)

83 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino83 Es. Realizzazione di unonda quadra su una variabile booleana (testuale - ST) FUNCTION_BLOCK ondaquadra VAR_INPUT abilita : BOOL; durata_ON, durata_OFF : TIME; END_VAR VAR_OUTPUT uscita : BOOL; END_VAR VAR timer1, timer2 : TON; (*due istanze di timer TON*) END_VAR timer1(IN:=NOT(timer2.Q) AND abilita, PT:=durata_OFF); timer2(IN:=timer1.Q, PT:=durata_ON); uscita:=timer1.Q; END_FUNCTION_BLOCK

84 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino84 Es. Realizzazione di unonda quadra su una variabile booleana (grafica) N.B. il solo corpo della funzione ondaquadra è in linguaggio a contatti

85 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino85 Es. Realizzazione di unonda quadra su una variabile booleana (grafica) N.B. il solo corpo della funzione ondaquadra è in FBD

86 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino86 Es. Realizzazione di unonda quadra su una variabile booleana (testuale - IL) N.B. il solo corpo della funzione ondaquadra è in IL LDNtimer2.Q ANDabilita STtimer1.IN LDdurata_OFF STtimer1.PT CALtimer1 CALtimer2(IN:=timer1.Q, PT:=durata_OFF) LDtimer1.Q STuscita

87 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino87 Es. Chiamata del blocco funzionale ondaquadra ondaquadra(abilita:=ing, durata_ON:=t#2s, durata_OFF:=t#3s, uscita:=led);

88 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino88 Es. Blocco funzionale antirimbalzo (grafica-FBD) N.B. Serve per valutare un valore booleano solo se è rimasto costante per un certo tempo

89 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino89 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

90 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino90 Es. Definizione testuale di un programma PROGRAM nome VAR_INPUT.... ; (* definizione delle *) (* variabili di ingresso *) END_VAR VAR_OUTPUT.... ; (* definizione delle *) (* variabili di uscita *) END_VAR....(* altre definizioni di variabili *)....(* corpo del programma *) END_PROGRAM

91 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino91 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 è levento che causa ununica 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

92 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino92 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

93 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino93 Es. Definizioni di task TASK 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

94 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino94 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à

95 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino95 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

96 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino96 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

97 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino97 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

98 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino98 Es. Definizione di una configurazione CONFIGURATION controllore_cella VAR_GLOBAL A : REAL; (* variabili visibili in tutta *) B : TIME; (* la configurazione *) END_VAR RESOURCE 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_RESOURCE END_CONFIGURATION

99 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino99 IL DIAGRAMMA FUNZIONALE SEQUENZIALE

100 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino100 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 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

101 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino101 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 –larco orientato che connette fasi e transizioni

102 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino102 La fase E una condizione del sistema modificabile solo alloccorrenza 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 dallinsieme delle sue fasi attive Se una fase è attiva, il comportamento del programma/blocco funzionale descritto con lSFC è definito dalle azioni associate a quella fase

103 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino103 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 allinizio dellesecuzione) 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

104 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino104 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 allinterno del rettangolo per indicare la fase correntemente attiva

105 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino105 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 dellultima attivazione della fase (se la fase è attiva, è il tempo trascorso dalla sua attivazione, se inattiva è la durata dellultima 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 dallutente, che può però utilizzarle Esse vanno inoltre considerate come variabili locali nella POU in cui lSFC è definito

106 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino106 La transizione E indicata da una barretta trasversale sullarco 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 unequazione a valori booleani o asserzioni

107 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino107 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 costrutto TRANSITION nome := …; (* condizione *) END_TRANSITION –utilizzando il costrutto (senza nominare la transizione) TRANSITION FROM fase1 To fase2 := …; (* condizione *) END_TRANSITION

108 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino108 Gli archi orientati Collegano tra loro le fasi, stabilendone la sequenza, e sono interrotti dalle barrette delle transizioni Lorientamento 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 lalto

109 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino109 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 dellSFC, lorientamento è 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

110 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino110 Es. Definizione grafica di un SFC

111 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino111 Es. Definizione testuale di un SFC INITIAL_STEP quiete : END_STEP STEP avvio : END_STEP STEP fase_A: END_STEP STEP fase_B: END_STEP STEP fase_C: END_STEP STEP fase_D: END_STEP TRANSITION FROM quiete TO avvio:= a AND b; END_TRANSITION TRANSITION FROM avvio TO fase_A,fase_C:=c OR d; END_TRANSITION TRANSITION FROM fase_A TO fase_B:= e AND NOT(f); END_TRANSITION TRANSITION FROM fase_C TO fase_D:=(fase_C.T GE t#30s) AND (fase_B.X); END_TRANSITION TRANSITION FROM fase_B, fase_D TO quiete:=1; END_TRANSITION

112 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino112 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 costrutto ACTION nome_azione:... (*corpo dellazione*) END_ACTION Anche una semplice variabile booleana può essere unazione, nel senso che se eseguita la variabile è portata a 1 (in tal caso non è presente il corpo dellazione)

113 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino113 Definizione grafica di unazione

114 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino114 Definizione del blocco di azione (1/II) Nel campo (1) va posto il qualificatore dellazione che può essere: –assente o N per qualificare lazione come non memorizzata, da eseguire fintanto che la fase è attiva e ancora una volta quando la fase è disattivata –P per qualificare unazione da eseguire una sola volta quando la fase è attivata –D insieme ad una costante di tipo TIME per qualificare unazione ritardata nel tempo se la fase è ancora attiva e sino alla fine dellattivazione, e poi ancora per una volta –L insieme ad una costante di tipo TIME per qualificare unazione limitata nel tempo, eseguita per la durata indicata o per la durata dellattivazione della fase se minore, e poi ancora per una volta –S o R per indicare il set o reset di unazione 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 unazione ritardata e memorizzata dopo la durata indicata se la fase è ancora attiva –SL insieme ad una costante di tipo TIME per qualificare unazione come memorizzata e limitata nel tempo, cioè eseguita per il tempo indicato anche se la fase si è disattivata

115 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino115 Definizione del blocco di azione (2/II) Nel campo (2) va posto il nome dellazione Nel campo (3) va posta una variabile indicatrice (booleana) che è messa a 1 quando lesecuzione dellazione è terminata (ha solo scopi di documentazione e può essere omessa) Nel campo (4) va posto il corpo dellazione, cioè quello che deve essere fatto, utilizzando uno dei linguaggi standard (compreso lo stesso SFC). Tale campo può essere omesso se lazione viene definita a parte

116 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino116 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

117 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino117 Corpo dellazione in SFC Lo standard consente di definire il corpo di unazione 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

118 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino118 Note addizionali sui blocchi di azione Lo standard consente luso di una variabile booleana associata implicitamente ad ogni azione nome_azione.Q che è vera quando lazione deve essere eseguita Le fasi cui non sono associate azioni possono essere qualificate come fasi di attesa (prima di passare ad unaltra 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 lingresso 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 dellazione

119 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino119 Regole di evoluzione 1)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 dellSFC 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 nellordine 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

120 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino120 Il problema dellambiguità 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

121 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino121 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 dellattivazione di una fase non può essere nulla)

122 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino122 Strutture classiche di programmazione in SFC Sequenza semplice Scelta o divergenza Convergenza

123 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino123 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);

124 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino124 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

125 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino125 Salto e ciclo di una sequenza

126 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino126 Parallelismo o concorrenza Se T1 diventa superabile si attivano contemporaneamente f11, f21, f31, dando luogo a diverse sequenze che evolvono indipendentemente

127 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino127 Sincronizzazione Perché T1 sia superata occorre che f11, f21, f31 siano tutte attive. Esse cioè sono sincronizzate dalla transizione T1.

128 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino128 Sincronizzazione locale La sequenza di destra deve attendere che la sequenza di sinistra superi T4 per poter procedere

129 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino129 Struttura errata: scelta con sincronizzazione La transizione T20 non diventerà mai superabile!!!

130 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino130 Struttura errata: struttura ambigua La fase f2 rischia di essere attivata due volte!!!

131 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino131 Vantaggi dellSFC Il linguaggio SFC è il migliore per la programmazione del controllo logico-sequenziale Le applicazioni di tali controllo esulano da quelle dellautomazione industriale: controllo di un sistema semaforico, di una stazione ferroviaria, dellaccesso a un canale di comunicazione, degli accessi a un data-base, della coda di un server

132 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino132 Progetto del controllo con SFC (1/II) Scrittura dellSFC funzionale: 1)individuare le specifiche funzionali dellimpianto da automatizzare 2)esprimere tali specifiche in un linguaggio che non permette ambiguità, ad es. adoperando lSFC 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) LSFC funzionale prodotto è utile anche ai fini della documentazione perché descrive esattamente quello che il sistema deve fare

133 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino133 Progetto del controllo con SFC (2/II) Scrittura dellSFC 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)

134 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino134 Note addizionali La scrittura dellSFC 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

135 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino135 Es. Il carrello automatico Un 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.

136 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino136 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 )

137 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino137 SFC funzionale per il carrello automatico

138 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino138 SFC di controllo per il carrello automatico

139 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino139 Es. Il trapano automatico 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 laltezza del pezzo Segnali 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 loliatore

140 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino140 Specifiche funzionali Il ciclo inizia quando loperatore 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

141 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino141 Es. Distributore automatico di bibite Gli 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) Lobiettivo è che allinserimento di una moneta, una sola bibita sia fatta cadere nel vano e sia possibile prelevarla

142 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino142 SFC di controllo per il distributore

143 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino143 Esempi di programmazione completi 1)Descrizione dellimpianto da controllare e degli ingressi e delle uscite del sistema di controllo 2)Specifiche di funzionamento da soddisfare 3)Decomposizione funzionale del problema per individuare funzionalità che si possono sviluppare autonomamente 4)Scrittura del programma di controllo 5)Definizione delle risorse e della configurazione del sistema di controllo

144 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino144 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

145 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino145 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

146 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino146 Specifiche Le luci della scala si devono accendere alla pressione di uno dei pulsanti di accensione e rimanere accese per 60s Se durante laccensione 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 limpianto L1 [ L2] nellambiente 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

147 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino147 Funzionalità Gestione di un impianto luminoso: blocco funzionale che può accendere, spegnere o cambiare lo stato di unuscita Accensione temporizzata di un impianto luminoso: blocco funzionale che permette laccensione per una durata impostabile e lo spegnimento immediato dellimpianto Riconoscimento doppia pressione su un pulsante: blocco funzionale che permette di distinguere se cè un solo fronte di salita o due sullingresso Riconoscimento di una pressione continua del pulsante: blocco funzionale per distinguere tra segnale dingresso durato meno o più dellintervallo prefissato

148 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino148 Gestione luce Il fronte di salita sullingresso on mette a 1 luscita luce che è riportata a zero da un fronte di salita sullingresso off. Un fronte di salita su com fa cambiare lo stato delluscita.

149 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino149 Accensione temporizzata Permette laccensione per una durata impostabile e lo spegnimento immediato

150 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino150 Riconoscimento doppia pressione

151 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino151 Riconoscimento pressione continua

152 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino152 Programma gestione luci capannone

153 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino153 Risorse e Configurazione Occorre definire le risorse e la configurazione Si supponga di utilizzare un controllore con una sola risorsa di elaborazione PLC586

154 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino154 Es. Configurazione 1 CONFIGURATION 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

155 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino155 Es. Configurazione 2 CONFIGURATION 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_RESOURCE RESOURCE 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_RESOURCE END_CONFIGURATION

156 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino156 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

157 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino157 Schematizzazione funzionale Input di controllo: 1) photo : segnale dalle fotocellule poste alla fine dei nastri 2) p_dopo : indica se il dispositivo successivo è pronto per accettare il pacco Output di controllo: 1) ava : controlla la movimentazione del nastro 2) p_acc : indica al dispositivo precedente che il nastro è pronto a ricevere 3) p_cons : indica al dispositivo successivo che il nastro è pronto a consegnare

158 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino158 Gestione nastro

159 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino159 Programma gestione nastri

160 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino160 Sistema di nastri trasportatori e girello automatico Input di controllo girello: 1) photo segnale dalla fotocellula per indicare un pacco trasferito sul girello 2) fs finecorsa antioraria del girello 3) fd finecorsa oraria del girello 4) p_dopo indica se il dispositivo dopo è pronto per accettare un pacco 5) p_prima indica se il dispositivo prima è pronto a consegnare un pacco Output di controllo girello: 1) ava movimentazione rulli del girello 2) sin fa ruotare il girello in senso antiorario 3) des fa ruotare il girello in senso orario 4) p_acc indica che il girello è pronto ad accettare un pacco dal dispositivo prima 5) p_cons indica che il girello è pronto a consegnare un pacco al dispositivo dopo

161 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino161 Gestione girello

162 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino162

163 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino163 Traduzione del SFC Non tutti i PLC comprendono lSFC 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 dellSFC deve poter essere convertita nelle modifiche alla traduzione

164 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino164 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

165 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino165 Equazioni booleane equivalenti Regola di attivazione della fase n Regola di disattivazione

166 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino166 Osservazioni Lequazione booleana complessiva è data dallOR delle due equazioni scritte In entrambe le equazioni booleane equivalenti trovate, la n.X e le condizioni delle transizioni sono valutati allistante attuale, viceversa i segnalatori delle fasi allistante precedente Oltre alle equazioni di attivazione e disattivazione delle fasi occorre scrivere le equazioni delle azioni da eseguire

167 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino167 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 linclusione delle condizioni delle transizioni nelle equazioni delle fasi

168 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino168 Algoritmo di evoluzione Fase di inizializzazione Ciclo iterativo Rappresentazione in forma algoritmica delle regole di evoluzione di un SFC

169 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino169 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 dallesecuzione delle azioni –scrittura delle uscite fisiche

170 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino170 Codifica dellalgoritmo di evoluzione Lalgoritmo evolutivo prevede la codifica dellinizializzazione 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

171 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino171 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)

172 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino172 Sezioni dellalgoritmo in LD Lalgoritmo 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

173 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino173 Sezione di inizializzazione E eseguita una sola volta allinizio Serve per porre a 1 i segnalatori delle fasi iniziali dellSFC Ciò è possibile con bobine a memorizzazione associati ai segnalatori delle fasi iniziali

174 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino174 Es. Inizializzazione in LD Il bit di stato INIZ è 1 solo alla prima scansione!!

175 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino175 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à

176 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino176 Es. Valutazione delle transizioni in LD

177 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino177 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

178 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino178 Sezione di esecuzione delle azioni E preceduta dalletichetta AZIONI cui punta il salto condizionato nella Sezione inizializzazione Si usa la variabile segnalatrice dello stato di attivazione di una fase per condizionare lesecuzione dellazione associata

179 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino179 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

180 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino180 Errori comuni NO SI

181 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino181 Es. Il carrello automatico

182 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino182 Es. Il carrello automatico in SFC

183 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino183 Es. Il carrello automatico in LD 1/III Sezione di inizializzazione Sezione di valutazione delle transizioni

184 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino184 Es. Il carrello automatico in LD 2/III Sezione di aggiornamento delle condizioni

185 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino185 Es. Il carrello automatico in LD 3/III Sezione di esecuzione delle azioni (tutte con il qualificatore N)

186 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino186 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

187 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino187 Es. La cella robotizzata Input di controllo: 1) PRESi : presenza oggetto nella posizione Pi, i=1..3 2) OGG3 : presenza oggetto alla fine del nastro 3 3) OKi : avvenuto posizionamento del robot in Pi, i=0..3 Output di controllo: 1) AVAi : avanzamento nastro i, i=1..3 2) VAIi : posizionamento del robot in Pi, i=0..3 3) CHIUDI : comando chiusura pinza del robot 4) APRI : comando apertura pinza del robot

188 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino188 SFC di controllo dei nastri

189 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino189 SFC di controllo del robot

190 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino190 Es. La cella robotizzata in LD 1/IX Sezione di inizializzazione

191 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino191 Es. La cella robotizzata in LD 2/IX Sezione di valutazione delle transizioni

192 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino192 Es. La cella robotizzata in LD 3/IX Sezione di valutazione delle transizioni

193 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino193 Es. La cella robotizzata in LD 4/IX Sezione di aggiornamento delle condizioni

194 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino194 Es. La cella robotizzata in LD 5/IX Sezione di aggiornamento delle condizioni

195 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino195 Es. La cella robotizzata in LD 6/IX Sezione di aggiornamento delle condizioni

196 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino196 Es. La cella robotizzata in LD 7/IX Sezione di aggiornamento delle condizioni

197 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino197 Es. La cella robotizzata in LD 8/IX Sezione di esecuzione delle azioni

198 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino198 Es. La cella robotizzata in LD 9/IX Sezione di esecuzione delle azioni

199 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino199 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

200 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino200 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 Lespansione 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

201 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino201 Es. Macrofase

202 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino202 Macroazione La macroazione è unazione 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

203 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino203 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 dellSFC 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)

204 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino204 Es. Sospensione

205 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino205 Es. Forzatura


Scaricare ppt "Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino1 LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC Prof. Raffaele Iervolino."

Presentazioni simili


Annunci Google