LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LA PROGRAMMAZIONE DEI CONTROLLORI A LOGICA PROGRAMMABILE PLC"

Transcript

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

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

3 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. T 1 T 2 L P L C I 1 I 2 T 1 T 2 O 1 L Si noti che con il PLC i 2 interruttori non sono più in serie, ma occupano separatamente 2 ingressi del PLC. Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 3

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

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

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

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

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

9 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 nell intervallo ±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 l ora 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 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 9

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

31 Esercizio Tradurre in LD la seguente istruzione in ST IF ((I5:1ANDI3:1ANDW2 :5)OR(W2: 6))AND(W2: 7 OR T2) SET U1: 7 1 ENDIF Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 31

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

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

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

35 Es. Utilizzo del salto per una procedura di inizializzazione W1:1 >> xyz (procedura di inizializzazione) W1:1 W1:1 xyz : (programma) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 35

36 Istuzioni di connessione La coppia di istruzioni di connessione -->zyx> e >zyx>-- viene utilizzata per spezzare un rung troppo lungo: I1:1 W1:2 > zyx > > zyx > I2:1 U2:1 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 36

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

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

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

40 Esempio di una rete in FBD I1 I2 x1 x2 F1 y1 I3 x1 x2 x3 F2 y1 y2 U1 F3 x1 y1 U2 I4 x2 y2 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 40

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

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

43 Operatori Predefiniti Gli 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 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 43

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

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 *) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 45

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

61 Es. Sottrazione di un offset da una misura (grafico) FUNCTION BOOL WORD INT corr_sens corr in offset WORD corr BCD_TO_INT SUB INT_TO_BCD EN ENO EN ENO EN corr_sens in offset END_FUNCTION Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 61

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

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

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

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

66 Es. Blocco flip-flop SR FUNCTION_BLOCK SR VAR_INPUT S1 Q1 S1,R : BOOL ; END_VAR VAR_OUTPUT Q1 R Q1 : BOOL; END_VAR Q1 := S1 OR (Q1 AND NOT R) END_FUNCTION_BLOCK SR BOOL S1 Q1 BOOL BOOL R Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 66

67 Es. Blocco flip-flop RS FUNCTION_BLOCK RS VAR_INPUT S,R1 : BOOL ; S R1 Q1 END_VAR VAR_OUTPUT Q1 Q1 : BOOL; END_VAR Q1 := NOT R1 AND (Q1 OR S) END_FUNCTION_BLOCK RS BOOL S Q1 BOOL BOOL R1 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 67

68 Es. Rilevatore di fronte di salita FUNCTION_BLOCK R_TRIG VAR_INPUT CLK : BOOL ; END_VAR VAR_OUTPUT Q : BOOL; 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 CLK R_TRIG Q BOOL Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 68

69 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 BOOL F_TRIG CLK Q BOOL CLK AUX Q (* corpo in LD *) AUX END_FUNCTION_BLOCK Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 69

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

71 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; INT END_VAR IF R THEN CV := 0; ELSIF CU AND (CV<PV) THEN CV := CV+1; ENDIF Q := (CV=PV); END_FUNCTION_BLOCK BOOL BOOL >CU R PV CTU Q CV BOOL INT Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 71

72 Es. Contatore a decremento e contatore bidirezionale CTUD BOOL BOOL INT >CD LD PV CTD Q CV BOOL INT BOOL BOOL BOOL BOOL INT >CU >CD R LD PV QU QD CV BOOL BOOL INT Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 72

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

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

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

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

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

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

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

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

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

82 Es. Gestione di una risorsa comune (grafica) FUNCTION_BLOCK BOOL semaforo richiesta impegnata BOOL BOOL rilascio VAR aux : BOOL:=0; END_VAR... (* corpo in uno dei linguaggi *)... END_FUNCTION_BLOCK Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 82

83 Es. Realizzazione di un onda 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 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 83

84 Es. Realizzazione di un onda quadra su una variabile booleana (grafica) abilita timer2.q timer1 IN Q durata_off PT ET N.B. il solo corpo della funzione ondaquadra è in linguaggio a contatti timer1.q timer2 IN Q durata_on PT ET uscita Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 84

85 Es. Realizzazione di un onda quadra su una variabile booleana (grafica) abilita AND IN timer1 Q uscita durata_off PT ET IN timer2 Q durata_on PT ET N.B. il solo corpo della funzione ondaquadra è in FBD Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 85

86 Es. Realizzazione di un onda quadra su una variabile booleana (testuale - IL) LDN AND ST LD ST CAL CAL LD ST timer2.q abilita timer1.in durata_off timer1.pt timer1 timer2(in:=timer1.q, PT:=durata_OFF) timer1.q uscita N.B. il solo corpo della funzione ondaquadra è in IL Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 86

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

88 Es. Blocco funzionale antirimbalzo (grafica-fbd) FUNCTION_BLOCK BOOL TIME antirimbalzo in durata VAR T1, T2 : TON; FLIPFLOP : SR; END_VAR in IN T1 out Q BOOL N.B. Serve per valutare un valore booleano solo se è rimasto costante per un certo tempo PT ET IN T2 Q FLIPFLOP S1 Q1 R out durata PT ET END_FUNCTION_BLOCK Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 88

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

110 quiete Es. Definizione grafica di un SFC a AND b avvio c d fase_a fase_c e AND NOT(f) TR25 TRANSITION TR25 :=(fase_c.t>=t#30s)and(fase_b.x); END_TRANSITION fase_b fase_d 1 Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 110

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

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 costrutto ACTION 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) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 112

113 Definizione grafica di un azione (1) (2) (3) (4) Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 113

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

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

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

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

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

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

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

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

122 Strutture classiche di programmazione in SFC A A A B cond1 cond2 cond1 cond2 B B C C Sequenza semplice Scelta o divergenza Convergenza Tecnologie dei Sistemi di Automazione - Prof. Raffaele Iervolino 122

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

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

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI INGEGNERIA ELETTRICA E DELLE TECNOLOGIE DELL INFORMAZIONE LAUREA TRIENNALE CORSO DI STUDI IN INGEGNERIA INFORMATICA Tecnologie informatiche

Dettagli

unità di organizzazione della programmazione

unità di organizzazione della programmazione Introduzione Organizzazione del software Lo standard prevede alcuni elementi comuni che prescindono dall effettivo linguaggio (o insieme di linguaggi) i) utilizzato per la programmazione Le variabili,

Dettagli

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

Reti e Sistemi per l Automazione LADDER LOGIC. Stefano Panzieri Ladder Logic - 1 LADDER LOGIC Stefano Panzieri Ladder Logic - 1 Linguaggi di Programmazione IEC 1131 Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali (FBD) Diagramma sequenziale funzionale (SFC) Lista

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione IEC 1131 Linguaggi di Programmazione Linguaggio a contatti (Ladder Diagram) Diagramma a blocchi funzionali (FBD) Diagramma sequenziale funzionale (SFC) Lista di istruzioni Testo strutturato Ladder Diagram

Dettagli

Luigi Piroddi

Luigi Piroddi Automazione industriale dispense del corso 16. Linguaggio a contatti (Ladder Diagram) piroddi@elet.polimi.it Introduzione Il linguaggio a contatti (o diagramma a scala, dall inglese ladder diagram, LD)

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 7 PLC Testo strutturato Università degli Studi di Bergamo, Automazione Industriale, A.A. 2017/2018, A. L. Cologni 1 Introduzione Il Testo strutturato è il linguaggio

Dettagli

Sequential Functional Chart

Sequential Functional Chart Sequential Functional Chart Nel 1975 nasce il GRAFCET GRAPHe de Coordination Etapes Transitions Nel 1987 è stato adottato come standard internazionale dall IEC (Comitato Elettrotecnico Internazionale)

Dettagli

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL.

PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL. PREMESSA In questa lezione analizziamo le diverse modalità di programmazione del PLC, soffermandoci in particolare sulle programmazioni KOP e AWL. MODALITA DI PROGRAMMAZIONE DEI PLC Durante il processo

Dettagli

POLITECNICO DI MILANO. V Facoltà di Ingegneria. Ladder Diagram. Sistemi ad Eventi Discreti

POLITECNICO DI MILANO. V Facoltà di Ingegneria. Ladder Diagram. Sistemi ad Eventi Discreti POLITECNICO DI MILANO V Facoltà di Ingegneria LD Ladder Diagram Sistemi ad Eventi Discreti Sommario Elementi Base Elementi Dinamici Temporizzazione e Contatori Controllo Programma e Blocchi Funzioni Ladder

Dettagli

STANDARD IEC PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione

STANDARD IEC PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione STANDARD IEC 61131 PRIMA PARTE Introduzione SECONDA PARTE Elementi comuni TERZA PARTE Linguaggi di programmazione 1 - Introduzione Un sistema di controllo di processi industriali deve avere tre caratteristiche

Dettagli

Ladder Diagram 16/03/2012. Sommario POLITECNICO DI MILANO. Introduzione. Elementi Base. Elementi Dinamici. Temporizzazione e Contatori

Ladder Diagram 16/03/2012. Sommario POLITECNICO DI MILANO. Introduzione. Elementi Base. Elementi Dinamici. Temporizzazione e Contatori POLITECNICO DI MILANO V Facoltà di Ingegneria LD Ladder Diagram Automazione Industriale A.A. 2011-2012 Sommario Elementi Base Elementi Dinamici Temporizzazione e Contatori Controllo Programma e Blocchi

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 5 PLC - SFC Università degli Studi di Bergamo, Automazione Industriale, A.A. 2016/2017, A. L. Cologni 1 Storia Prima degli anni 60 il CONTROLLO SEQUENZIALE era

Dettagli

Function Block Diagram

Function Block Diagram Function Block Diagram Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario Struttura del linguaggio e notazioni grafiche Come esprimere espressioni semplici e complesse

Dettagli

UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA

UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Normativa di riferimento Diagrammi funzionali Diagramma delle fasi/spostamenti Circuiti semiautomatici Circuiti automatici Circuiti sequenziali (ciclo quadro) (ciclo quadro) Circuiti sequenziali

Dettagli

Caratteristiche principali. Introduzione. Area Dati e convenzioni tipiche. Elementi di Base. Elementi di Base. Elementi di Base

Caratteristiche principali. Introduzione. Area Dati e convenzioni tipiche. Elementi di Base. Elementi di Base. Elementi di Base Introduzione Caratteristiche principali Ladder Diagram = letteralmente diagrammi a scala, perchè la disposizione grafica dei suoi simboli ricorda una scala in italiano è più usato il termine linguaggio

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 3 PLC - Ladder niversità degli Studi di Bergamo, Automazione Industriale, A.A. 2016/2017, A. L. Cologni 1 Idea base Il Ladder è un linguaggio a contatti: tra i

Dettagli

Linguaggi gg previsti dallo standard IEC 61131 parte III

Linguaggi gg previsti dallo standard IEC 61131 parte III Standard 61131 33 Linguaggi gg previsti dallo standard IEC 61131 parte III Testo strutturato Linguaggio a contatti Diagramma a blocchi funzionali Lista istruzioni Sequential Functional Chart Verrà presentato

Dettagli

CAPITOLO 3 - ALGORITMI E CODIFICA

CAPITOLO 3 - ALGORITMI E CODIFICA FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)

Dettagli

Impianto per il comando automatico di un garage

Impianto per il comando automatico di un garage Impianto per il comando automatico di un garage Elaborato per il corso di Tecnologie per i Sistemi d'automazione, tenuto dal professor Iervolino R. per il corso di laurea in Ingegneria Informatica. Per

Dettagli

Programmable Logic Controller Seconda Parte

Programmable Logic Controller Seconda Parte Programmable Logic Controller Seconda Parte Sistemi per l automazione industriale Stefano Maggi Marco Bassetti Dipartimento di Elettrotecnica lunedì 10 novembre 2008 Contenuti Principio di funzionamento

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

SFC. Sequential Functional Chart. Reti e Sistemi per l Automazione. Stefano Panzieri SFC - 1

SFC. Sequential Functional Chart. Reti e Sistemi per l Automazione. Stefano Panzieri SFC - 1 SFC Sequential Functional Chart Stefano Panzieri SFC - 1 Sequential Functional Chart Nel 1975 nasce il GRAFCET GRAPHe de Coordination Etapes Transitions Nel 1987 è stato adottato come standard internazionale

Dettagli

MODULO 2 ELEMENTI DI PROGRAMMAZIONE DEL PLC S SIEMENS PARTE PRIMA IL LINGUAGGIO A CONTATTI

MODULO 2 ELEMENTI DI PROGRAMMAZIONE DEL PLC S SIEMENS PARTE PRIMA IL LINGUAGGIO A CONTATTI MODULO 2 ELEMENTI DI PROGRAMMAZIONE DEL PLC S7 1200 SIEMENS PARTE PRIMA IL LINGUAGGIO A CONTATTI.. 2.1 CONTATTI E BOBINE (KOP) pag. 2 2.2 ISTRUZIONI DI IMPOSTAZIONE E RESET.pag. 3 2.3 LATCH DI BIT CON

Dettagli

Programmazione dei PLC in linguaggio Ladder

Programmazione dei PLC in linguaggio Ladder Programmazione dei PLC in linguaggio Ladder Prima Parte ITI Alessandro Volta - Sassuolo Anno Scolastico 2009/2010 Linguaggio LADDER (linguaggio a contatti ) Introduzione e concetti fondamentali Il LADDER

Dettagli

Structured Text. Structured Text. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio

Structured Text. Structured Text. Marco Mauri. Politecnico di Milano P.zza Leonardo da Vinci, Maggio Structured Text Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario La struttura del linguaggio Come assegnare un valore ad una variabile Come creare espressioni

Dettagli

Sistemi ad Eventi Discreti

Sistemi ad Eventi Discreti Sistemi ad Eventi Discreti a.a. 2014-2015 Prof. Luca Ferrarini Sequential function chart Obiettivi Comprensione e utilizzo del Sequential Function Chart (IEC 61131-3) Sviluppare modelli per realizzare

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione

Dettagli

LA PROGRAMMAZIONE DEL PLC /1

LA PROGRAMMAZIONE DEL PLC /1 LA PROGRAMMAZIONE DEL PLC /1 Per programmare correttamente un PLC è necessario... determinare ciò che il sistema deve eseguire ed in quale ordine; determinare il numero e il tipo di I/O (ingressi/uscite)

Dettagli

Luigi Piroddi

Luigi Piroddi Automazione industriale dispense del corso 17. GRAFCET Sequential Functional Chart piroddi@elet.polimi.it Introduzione Fino agli anni 70 le tecniche in uso per progettare sistemi di automazione erano:

Dettagli

Note sull utilizzo di ISAGRAF V. 3.31

Note sull utilizzo di ISAGRAF V. 3.31 Appendice B Note sull utilizzo di ISAGRAF V. 3.31 B.1 Lettura del fronte di salita di una variabile Nel linguaggio Ladder è sufficiente settare il contatore come in figura B.1(A) per leggere il fronte

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Dispositivi per il controllo

Dispositivi per il controllo Dispositivi per il controllo ordini di comando PARTE DI COMANDO PARTE DI POTENZA Controllori monolitici Controllori con architettura a bus Controllori basati su PC informazioni di ritorno PLC (Programmable

Dettagli

USO DEI TEMPORIZZATORI NEI PLC S7 1500

USO DEI TEMPORIZZATORI NEI PLC S7 1500 USO DEI TEMPORIZZATORI NEI PLC S7 1500 Prof. A. Messina Nel PLC ci sono quattro tipi di temporizzatori TON, TOF, TP, TONR che hanno le seguenti caratteristiche 1. Vengono controllati con un singolo elemento

Dettagli

diagramma funzionale sequenziale Sequential functional chart (SFC)

diagramma funzionale sequenziale Sequential functional chart (SFC) Introduzione Sequential functional chart (SFC) Linguaggio innovativo adatto per la scrittura di algoritmi per il controllo logico/sequenziale Nasce come risultato di una apposita commissione istituita

Dettagli

PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base

PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base PLC Sistemi a Logica Programmabile Il linguaggio AWL istruzioni di base Prof. Nicola Ingrosso Guida di riferimento all applicazione applicazione dei Microcontrollori Programmabili IPSIA G.Ferraris Brindisi

Dettagli

Sequential Functional Chart (SFC) - Parte 2

Sequential Functional Chart (SFC) - Parte 2 Sequential Functional Chart (SFC) - Parte 2 Vincenzo Suraci Automazione STRUTTURA DEL NUCLEO TEMATICO STRUTTURE DI COLLEGAMENTO Via Ariosto 25-00185 Roma http://www.diag.uniroma1.it 2 STRUTTURE DI COLLEGAMENTO

Dettagli

Sequential Function Chart

Sequential Function Chart Sequential Function Chart Marco Mauri Politecnico di Milano P.zza Leonardo da Vinci, 32 22-23 Maggio 2001 1 Sommario La struttura del linguaggio La definizione di sequenza in termini di passi e transizioni

Dettagli

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI

Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI Prof. Pagani Corrado LINGUAGGIO C: SELEZIONE E CICLI IF Ogni linguaggio di programmazione presenta almeno una struttura di controllo decisionale. La sintassi del linguaggio C è la seguente. if ()

Dettagli

5.4 Istruzione di input L istruzione di input ha la forma:

5.4 Istruzione di input L istruzione di input ha la forma: 5.2 Istruzione di output L istruzione di output ha la forma: cout

Dettagli

Sequential Functional Chart (SFC) - Parte 1

Sequential Functional Chart (SFC) - Parte 1 Sequential Functional Chart (SFC) - Parte Automazione //05 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO INTRODUZIONE ELEMENTI DI BASE REGOLE DI EVOLUZIONE ESECUZIONE CICLICA RISOLUZIONE AMBIGUITÀ SINTASSI

Dettagli

Automazione e territorio

Automazione e territorio Automazione e territorio ISTITUTO D ISTRUZIONE SUPERIORE M. Bartolo - PACHINO LICEO Classico -LICEO Scientifico LICEO delle Scienze Applicate - Liceo delle Scienze Umane I.T.I.S. (Elettronica e Elettrotecnica

Dettagli

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1) Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Dal ladder a SFC. Il linguaggio SFC. Sequential Functional Chart. Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1

Dal ladder a SFC. Il linguaggio SFC. Sequential Functional Chart. Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1 Il linguaggio SFC Sequential Functional Chart Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 1 Dal ladder a SFC Prof. P. Levi - Laboratorio di Informatica Industriale - SFC 2 Limitazioni

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

Dettagli

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali Paolo Bison Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09 Linguaggi procedurali, Paolo Bison, FI08, 2008-09-29 p.1 Linguaggi procedurali classe

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 2 PLC - Introduzione Università degli Studi di Bergamo, Automazione Industriale, A.A. 2016/2017, A. L. Cologni 1 Cos è un PLC PLC: Programmable Logic Controller

Dettagli

SISTEMI PER L INDUSTRIA E PLC 28/03/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione

SISTEMI PER L INDUSTRIA E PLC 28/03/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione 1) Illustrare brevemente le differenze tra PLC, Soft-PLC e Periferia (3 punti) 2) Illustrare i vantaggi del PLC rispetto alle logiche a relè (2

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 5 LABORATORIO DI SISTEMI OGGETTO: Progettare il software per il controllo di un serbatoio, gestendone la fase di riempimento e quella di

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema

Dettagli

Rappresentazione dell informazione

Rappresentazione dell informazione Rappresentazione dell informazione Codifica dei numeri Rappresentazioni in base 2, 8, 10 e 16 Rappresentazioni M+S, C1 e C2 Algoritmi di conversione di base Algoritmi di somma, moltiplicazione e divisione

Dettagli

SISTEMI PER L INDUSTRIA E PLC 10/01/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione

SISTEMI PER L INDUSTRIA E PLC 10/01/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione SISTEMI PER L INDUSTRIA E PLC 10/01/18 Teoria, 30minuti, Minimo 4 punti su 12 di Programmazione 1) Illustrare brevemente le differenze tra PLC, Soft-PLC e Periferia (3 punti) 2) Dato un Timer TON, illustrare

Dettagli

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Dettagli

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA

Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA TECNOLOGIE DEI SISTEMI DI CONTROLLO INTRODUZIONE PLC E DIAGRAMMA FUNZIONALE SEQUENZIALE Reggio Calabria, 29 Aprile 2009 ING.VALERIO SCORDAMAGLIA ESEMPIO: CARRELLO AUTOMATICO INTRODUZIONE PLC PROGRAMMABLE

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Vettori e matrici #1 Le variabili definite come coppie sono dette variabili scalari Fondamenti di Informatica 5. Algoritmi e pseudocodifica Una coppia è una variabile

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

Dettagli

Sistemi a microprocessore

Sistemi a microprocessore Sistemi a microprocessore Programma: Segnali analogici e digitali Uso di segnali digitali per la rappresentazione dei numeri interi La memoria e la CPU I programmi in linguaggio macchina La connessione

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 02/07/2015/ Foglio delle domande /VERSIONE 1 Matricola Cognome Nome 1) Il termine informatica viene dalla fusione delle seguenti parole a) informazione

Dettagli

Corso di Automazione industriale

Corso di Automazione industriale Corso di Automazione industriale Lezione 2 PLC - Introduzione Università degli Studi di Bergamo, Automazione Industriale, A.A. 2018/2019, M. Ermidoro 1 Cos è un PLC PLC: Programmable Logic Controller Unità

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time

L assegnamento. Andrea Marin. a.a. 2011/2012. Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Abbiamo visto È conveniente definire una macchina astratta C Lo stato della macchina ci

Dettagli

Linguaggio C: Espressioni

Linguaggio C: Espressioni Linguaggio C: Espressioni Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Ringraziamenti prof. Mirko Viroli, Università

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie. Reti combinatorie (segue) Reti combinatorie Sommatore Sottrattore Reti sequenziali Generatore di sequenze Riconoscitore di sequenze Reti combinatorie PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà

Dettagli

Controllo di sequenze nell automazione industriale

Controllo di sequenze nell automazione industriale Ingegneria e Tecnologie dei Sistemi di Controllo Controllo di sequenze nell automazione industriale PARTE 2 Prof. Alberto Tonielli, Ing. Andrea Tilli DEIS Alma Mater Studiorum Università di Bologna E-Mail:

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Ing. Lorenzo Vismara

Ing. Lorenzo Vismara Ing. Lorenzo Vismara ! "# #!$#%&# '(!)&!*)&#*$# +!, +$-.(( #!((%&#, #!& %&) /$#01&&#2! 0#( 3452 $ 6#( 1 2 &## #!7 #89): #;##( 1? )#&)< $9): #@82 #)AA)#&#&$( #7)&#7& @B && ##@A&#C 7 $C#&7 @B A&#)@#7&#

Dettagli

Introduzione al linguaggio macchina. Istruzione l/m

Introduzione al linguaggio macchina. Istruzione l/m Corso di Calcolatori Elettronici I Introduzione al linguaggio macchina Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32

PLC. PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32 PLC PROGRAMMABLE LOGIC CONTROLLER 2a parte CON RIFERIMENTO ALLE CPU SIEMENS ST 200 ED AL SW STEP 7 MICRO/WIN 32 SOFTWARE DI PROGRAMMAZIONE NORMATIVA IEC1131-3 - 1993 SCHEMI SEQUENZIALI FUNZIONALI (SFC)

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di

Dettagli

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali Porte logiche di base Cenni circuiti, reti combinatorie, reti sequenziali NOT AND A R A B R OR A R B Quindi NAND o NOR sono complete circuiti con solo porte NAND o solo porte NOR. Reti combinatorie Rete

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2012-2013 Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e

Dettagli

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense Circuiti e reti combinatorie Appendice A (libro italiano) + dispense Linguaggio del calcolatore Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e Anche per esprimere

Dettagli

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi Corso di Calcolatori Elettronici I A.A. 2010-2011 Architettura di un calcolatore: introduzione Lezione 18 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D

Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D Reti Sincrone Le reti sequenziali sincrone memorizzano il proprio stato in dei FF-D Le variabili di stato future sono quelle all ingresso dei FF-D mentre le variabili di stato presente sono le uscite dei

Dettagli

Nastro trasportatore con ribaltamento cassetta.

Nastro trasportatore con ribaltamento cassetta. Nastro trasportatore con ribaltamento cassetta. Il seguente progetto prevede il controllo di un nastro trasportatore (attraverso un PLC Siemens S71200 o S7-1500 programmato in LAD) in cui è presente un'isola

Dettagli

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova Pseudo codice, Paolo Bison, FI06, 2007-01-10 p.1 Pseudo codice linguaggio testuale mix di linguaggio naturale ed elementi

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

PLC E AUTOMAZIONE INDUSTRIALE

PLC E AUTOMAZIONE INDUSTRIALE FEDELE ing. Domenico Antonio PROGETTAZIONE DI IMPIANTI Viale Barlaam da Seminara, 16/D 88100 CATANZARO E-mail: mimmofed@alice.it PEC: domenicoantonio.fedele@ingpec.eu Web: www.ingfedele.it Dispense e appunti

Dettagli

Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo

Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo Corso di Calcolatori Elettronici I A.A. 2012-2013 Reti sequenziali notevoli: registri, registri a scorrimento, contatori ing. Alessandro Cilardo Accademia Aeronautica di Pozzuoli Corso Pegaso V GArn Elettronici

Dettagli