Lucidi ISaGRAF CavMont -  · 1 Introduzione a ISaGRAF Alessandro Cavini, Marcello Montanari...

16
1 Introduzione a ISaGRAF Alessandro Cavini, Marcello Montanari D.E.I.S. – Università di Bologna Alessandro Cavini, Marcello Montanari - ISaGRAF 2 Sommario Introduzione all’ambiente ISaGRAF Descrizione dell’ambiente ISaGRAF Funzionalità e concetti di base Come definire e simulare un progetto in ISaGRAF Esercizi Presentazione dei progetti per l’esame Alessandro Cavini, Marcello Montanari - ISaGRAF 3 L’ambiente ISaGRAF Ambiente di programmazione mediante il quale si sviluppano progetti per il controllo logico sequenziale (es. per PLC) Permette di scrivere il programma secondo lo standard IEC 61131-3 5 moduli: Projects progetto e simulazione del controllo logico Libraries librerie di I/O, funzioni e blocchi funzionali Archive archivio dei progetti e librerie Book help in linea Demo Alessandro Cavini, Marcello Montanari - ISaGRAF 4 Progetto in ISaGRAF Per Project si intende un’intera applicazione da eseguire sul PLC E’ composto da una serie di programmi, scritti utilizzando i diversi linguaggi dello Standard IEC61131-3 Es. sequenza di controllo in SFC, azioni di controllo in ST, funzioni in ST o IL/LD. Strutturazione del programma in sottoprogrammi Maggiore semplicità di scrittura dei programmi, con una scelta opportuna del linguaggio

Transcript of Lucidi ISaGRAF CavMont -  · 1 Introduzione a ISaGRAF Alessandro Cavini, Marcello Montanari...

1

Introduzione a ISaGRAF

Alessandro Cavini, Marcello MontanariD.E.I.S. – Università di Bologna

Alessandro Cavini, Marcello Montanari - ISaGRAF 2

SommarioIntroduzione all’ambiente ISaGRAF

Descrizione dell’ambiente ISaGRAFFunzionalità e concetti di baseCome definire e simulare un progetto in ISaGRAFEsercizi

Presentazione dei progetti per l’esame

Alessandro Cavini, Marcello Montanari - ISaGRAF 3

L’ambiente ISaGRAFAmbiente di programmazione mediante il quale si sviluppano progetti per il controllo logico sequenziale (es. per PLC)Permette di scrivere il programma secondo lo standard IEC 61131-3

5 moduli:Projects progetto e simulazione del controllo logicoLibraries librerie di I/O, funzioni e blocchi funzionaliArchive archivio dei progetti e librerieBook help in lineaDemo

Alessandro Cavini, Marcello Montanari - ISaGRAF 4

Progetto in ISaGRAFPer Project si intende un’intera applicazione da eseguire sul PLCE’ composto da una serie di programmi, scritti utilizzando i diversi linguaggi dello Standard IEC61131-3

Es. sequenza di controllo in SFC, azioni di controllo in ST, funzioni in ST o IL/LD.Strutturazione del programma in sottoprogrammiMaggiore semplicità di scrittura dei programmi, con una scelta opportuna del linguaggio

Alessandro Cavini, Marcello Montanari - ISaGRAF 5

Linguaggi in ISaGRAF (Standard IEC 61131-3)SFC (Sequential Flow Chart)

Stati (ST), Transizioni (ST o LD)

ST (Structured Text)Simile al Pascal, linguaggio di alto livello

LD (Ladder Diagram)Logica a relè (per variabili booleane)

IL (Instruction List, o AWL)Simile all’Assembler, linguaggio di basso livello

FBD/LD (Functional Block Diagram)Blocchi funzionali e schemi a contatto, simili a ladder(variabili booleane e analogiche). Utilizzato per definire funzioni

Alessandro Cavini, Marcello Montanari - ISaGRAF 6

ISaGRAF – Project ManagementSi esegue da Windows cliccandosull’icona ProjectE’ una finestra in cui sono elencati i progetti realizzati in ISaGRAF. E’ possibile:

Creare un nuovo progettoCancellare un vecchio progettoCommentare un progetto (Project Descriptor)Modificare progetti esistenti (Edit)

Descrizione

Lista dei progetti

Alessandro Cavini, Marcello Montanari - ISaGRAF 7

Creazione di un nuovo progettoFile New Project nella finestra Project Management

Inserimento del nome del progetto

Cliccando sul nuovo progetto (“edit”) si attiva la finestra “Programs”

Definizione della struttura del progetto:Si inseriscono tutti i “programmi” del progetto. Per programma si intende una funzionalità utile per l’esecuzione del progetto, cioè:

Controllo sequenziale in SFCOperazioni di pre-elaborazione e post-elaborazione delle variabili di I/OFunzioni definite dall’utente, ecc.

Alessandro Cavini, Marcello Montanari - ISaGRAF 8

Moduli accessori di ISaGRAF – Archive UtilityServe per salvare o caricare da floppy (o da una cartella specifica) il backup di un progetto (in formato .pia)

Si sceglie dove eseguire il backup (Disk Drive)

Per caricare un progetto archiviato (.pia):Archive Restore. Seleziono l’archivio, che viene messo nella directory dei progetti di ISaGRAFCon il modulo Project lo posso aprire, ecc.

Alessandro Cavini, Marcello Montanari - ISaGRAF 9

Sviluppo del progetto1. Descrizione del processo da automatizzare

Descrizione del funzionamento

2. Definizione delle variabiliVariabili di ingresso (sensori)Variabili di uscita (attuatori)

3. Connessione con schede I/O (per le variabili I/O)4. Progettazione del programma di controllo

Scrittura del codice

5. Grafici e tavole di conversione6. Simulazione (o prova sull’impianto)7. Documentazione

Alessandro Cavini, Marcello Montanari - ISaGRAF 10

Esercitazione 1L’impianto da controllare consiste in una cisterna principale in cui devono essere inseriti due liquidi differenti. Il primo liquido

viene immesso nella cisterna tramite l’elettrovalvola EV1 mentre il secondo liquido viene immesso tramite l’elettrovalvolaEV2. Il rapporto in volume tra liquido 1 e liquido 2 deve essere di 4:1. Il livello del liquido all’interno della cisterna e’acquisito tramite un sensore analogico. Una volta raggiunto il livello di 200 all'interno del serbatoio si deve permettere ai due liquidi di miscelarsi e di realizzare le opportune reazioni chimiche lasciandoli dentro la cisterna per 10 secondi.

A questo punto terminata la formazione del composto liquido finale si procede alla sua immissione nelle bottiglie. Le bottiglie sono presenti su un nastro trasportatore attivato dal segnale MOT_NAST. Quando il sensore (POS_BOOK) che segnala che la bottiglia si trova sotto l’elettrovalvola di espulsione del composto e’ attivo si può procedere al riempimento della bottiglia (con l’attivazione dell’elettrovalvola EV3). Il riempimento della bottiglia termina quando il suo livello raggiunge il valore di 100. A questo punto il nastro trasportatore può essere riattivato per il riempimento di una nuova bottiglia.

Il processo viene avviato dal segnale Start_Proc attivo e può essere interrotto solo quando il serbatoio e’ completamente vuoto.I sensori del sistema sono:Attivazione del processo Start_Proc digitaleLivello cisterna Liv_serb analogicoLivello bottiglia Liv_bot analogicoPosizione bottiglia POS_BOOK digitaleGli attuatori del sistema sono:Elettrovalvola 1: elettrovalvola immissione liquido 1 EV1 digitaleElettrovalvola 2: elettrovalvola immissione liquido 2 EV2 digitaleElettrovalvola 3: elettrovalvola espulsione miscela EV3 digitaleMotore del nastro trasportatore MOT_NAST digitaleL’esercitazione può essere realizzata tramite cinque progetti intermedi:1. Realizzazione del controllo del processo con i sensori e gli attuatori collegate agli slot del PLC. In questo caso si devono

settare manualmente le variabili di ingresso in funzione dei comandi dati sulle uscite per simulare “manualmente” il processo.

2. Realizzazione del controllo del processo utilizzando un interfaccia grafica di simulazione per un aggiornamento automatico degli ingressi in funzione delle uscite.

3. Al progetto precedente si introduce la possibilità di contare il numero di bottiglie che sono state riempite durante un determinato intervallo temporale. La variabile analogica che conta il numero di bottiglie e’ Num_bott.

4. Si aggiunge al progetto il controllo di temperatura del serbatoio. Esso viene realizzato con un processo figlio (Con_tem). Il processo figlio viene invocato come se fosse una variabile booleana. La variabile di ingresso che definisce la temperatura e’Temperat, mentre la variabile di uscita che comanda l’attivazione della resistenza di potenza e’ Res_on.

5. Si realizza il controllo di temperatura come al punto d invocando il processo figlio tramite le primitive GSTART e GKILL.

Alessandro Cavini, Marcello Montanari - ISaGRAF 11

Esercitazione 1a - SommarioProgetto con I/O reale

Esempio di progettoOperazioni di base in ISaGRAF

v. anche A.1.3. in User’s Guide ISaGRAF

Definizione dei programmi, delle variabili, delle schede di I/OScrittura del programma in SFC, delle transizioni, ecc.Simulazione

Alessandro Cavini, Marcello Montanari - ISaGRAF 12

1. Descrizione del funzionamento del processo

Alessandro Cavini, Marcello Montanari - ISaGRAF 13

Funzionamento del processo

Alessandro Cavini, Marcello Montanari - ISaGRAF 14

2. Definizione delle variabiliInput:

Attivazione del processo Start_Proc digitaleLivello cisterna Liv_serb analogicoLivello bottiglia Liv_bot analogicoPosizione bottiglia POS_BOOK digitale

Output:Elettrovalvola 1: EV1 digitaleElettrovalvola 2: EV2 digitaleElettrovalvola 3: EV3 digitaleMotore del nastro trasportatore MOT_NAST digitale

Alessandro Cavini, Marcello Montanari - ISaGRAF 15

Inserimento delle variabili /1

Inserimento nel progetto delle variabili e delle loro caratteristiche

Alessandro Cavini, Marcello Montanari - ISaGRAF 16

Inserimento delle variabili /2In “Dictionary” si definiscono le variabili

Per ogni variabile viene definito:il nomela visibilità (global)il tipo (digitale/analogica)gli attributi (I/O, internal, ecc.)

Si inseriscono commenti con (*…*)

Alessandro Cavini, Marcello Montanari - ISaGRAF 17

Inserimento delle variabili /3

Dalla finestra “Dictionary”, nella barra si seleziona la visibilità e il tipo desiderati

Nella finestra vengono visualizzate le variabili con quella visibilità e con quel tipoSi possono modificare (Edit) e inserire (New) nuove variabili. Nella finestra di inserimento, si specifica l’attributo:

Internal (variabili interna del PLC)Input (letta dall’esterno)Output (scritta su un dispositivo di output)Constant (costante)

Alessandro Cavini, Marcello Montanari - ISaGRAF 18

Proprietà delle variabili /1Visibilità

Globale (visibili in tutti i programmi del progetto)Locale (visibile solo all’interno di un programma)Common (visibile in tutti i programmi di tutti i progetti)

TipoBoolean

Ad ogni stato viene associata una variabile booleana gsN.x (con N il numero dello stato). E’ vera se lo stato N è attivo.

Analog: (Integer/real)Intere con segno a 32 bitReali IEEE 32bit (1 bit di segno, 23 bit per la mantissa, 8 per l’esponente)Se la variabile reale è collegata a un I/O, viene rappresentato il suo valore intero

Alessandro Cavini, Marcello Montanari - ISaGRAF 19

Proprietà delle variabili /2Tipo:

TimerAd ogni stato viene associata una variabile timer gsN.t (con N il numero dello stato). Il suo valore può essere usato per definire le transizioni, ecc.Una variabile timer può essere attivata o arrestata con TSTART e TSTOP nel linguaggio ST

MessagesStringhe

FB instances, Defined Word

Alessandro Cavini, Marcello Montanari - ISaGRAF 20

CostantiEsistono le costanti booleane TRUE (1) e FALSE (0)Le costanti intere sono constanti a 32 bit con segnoLe costanti reali vanno specificate con il punto decimale (es. 1.0)Le costanti temporali seguono il seguente formalismo:

Iniziano per t#L’unità di misura viene specificata dal suffisso h, m, s, msEsempio:

t#1h450mst#1h3m

Le stringhe si rappresentano fra apici (‘MESSAGE’)

Alessandro Cavini, Marcello Montanari - ISaGRAF 21

Cross referencesLista delle variabili, delle funzioni e dei programmi utilizzati nel progetto

Per ogni oggetto, vengono riportate informazioni (es. programmi in cui una variabile viene invocata)

Alessandro Cavini, Marcello Montanari - ISaGRAF 22

Conversion TableServono per i dispositivi di interfaccia nonlineariE’ possibile definire una caratteristica di I/O nonlineare di tipo statico, inserita per punti

si inserisce il valore elettrico letto in ingresso (o scritto inuscita) e il valore fisico associato (che verrà usato nella simulazione, all’interno del PLC)

Nella finestra delle variabili, si associa a una variabile una tabella di conversione mediante la voce “Conversion”

Alessandro Cavini, Marcello Montanari - ISaGRAF 23

3. Interazione con il programma (I/O)Esistono 2 modi, in fase di simulazione, per interagire con il programma:

1. I/O connectionInserimento negli slot del PLC di schede di I/O, con led, interruttori, variabili analogiche di I/O

2. GraficiAmbiente grafico interattivo che mostra la macchina da simulare e il suo funzionamento, mediante il quale èpossibile modificare il valore delle variabili di ingresso e visualizzare in forma numerica o grafica quelle di uscita

Associazione delle variabili ai dispositivi di I/O

Alessandro Cavini, Marcello Montanari - ISaGRAF 24

I/O connectionDalla finestra “Programs”

Serve per associare una variabile di I/O a un elemento esterno di una schedaSono presenti 256 slot del PLC. Ad ogni slot si possono associare diverse schede (predefinite, v. NOTE):

Boards: canali dello stesso tipoEquipments: insieme di boards (es. scheda con ingressi e uscite analogici o binari)

Dopo aver scelto la scheda, si associano ai canali le variabili di I/O desiderate

Alessandro Cavini, Marcello Montanari - ISaGRAF 25

Connessione con schede di I/OSi collegano le variabili di ingresso e di uscita ai canali di schede di I/O con il comando “I/O Connection”Variabili digitali di ingresso, analogiche di ingresso e digitali di uscita

Si utilizzano 3 schede differenti, collegate ai primi 3 slot del PLC. Nella lista delle schede predefinite, sono presenti schede da utilizzarsi per la simulazionePer ogni scheda, si collegano i canali alle variabili di I/O opportune (4 canali di output digitale, 2 di input digitale, 2 di input analogico)

Alessandro Cavini, Marcello Montanari - ISaGRAF 26

Connessione con schede di I/OIn fase di simulazione (v. avanti) l’interfaccia con il mondo esterno è rappresentata dal pannello di controlloModificando a mano gli ingressi del sistema, si simula il funzionamento del processo

Alessandro Cavini, Marcello Montanari - ISaGRAF 27

4. Funzionamento del processo

Cambiare!!!!!!

Alessandro Cavini, Marcello Montanari - ISaGRAF 28

Inserimento di un programmaNella finestra Programs, si clicca su “Create new program”

Si definisce:il nome del programmail linguaggio utilizzatola tipologia di programma (controllo logico, funzione, ecc)

Alessandro Cavini, Marcello Montanari - ISaGRAF 29

Modello di esecuzione del SoftwareArchitettura general-purpose dedicata al controllo logico sequenziale Implementazione di macchine degli stati per il controllo del funzionamento di un impianto

Lettura INPUT

Software Task

Attuazione OUTPUT

•Mappatura in memoria delle letture (immagine di input)

•Esecuzione dei task sulle immagini in memoria

•Attuazione delle uscite sugli attuatori (immagine di output)

•Esecuzione ciclicaAlessandro Cavini, Marcello Montanari - ISaGRAF 30

Struttura del progetto - tipologia dei programmi

Lettura Input

Scrittura Output

Begin of Cycle

Sequential

End of Cycle

•Function•Function block•…

Child 1

Child 2

Alessandro Cavini, Marcello Montanari - ISaGRAF 31

Tipologie di programmi /1Beginning of cycle

Viene eseguito all’inizio di ogni ciclo di esecuzioneServe per la preelaborazione dei segnali di ingresso (es. filtraggio, diagnosi) NO in SFC

SequentialSequenziale (Grafcet), programma time-dependentSOLO in SFC

End of cycleViene eseguito alla fine di ogni ciclo di esecuzioneManipolazione delle variabili di outputNO in SFC

Alessandro Cavini, Marcello Montanari - ISaGRAF 32

Tipologie di programmi /2Function

Funzioni con parametri di ingresso, che restituiscono valori in uscitaSono funzioni algebriche, in generale non lineariNO in SFC

Function BlockAnaloghe alle precedenti, ma non vengono persi i valori delle variabili interne tra una chiamata e l’altraServono per implementare funzioni dinamiche

Child of…Serve per implementare una gerarchia fra programmi

Alessandro Cavini, Marcello Montanari - ISaGRAF 33

Inserimento dei programmiI vari programmi, scritti nei diversi linguaggi, vengono inseriti mediante editor opportuni

Alessandro Cavini, Marcello Montanari - ISaGRAF 34

Scrittura del programma in SFCSi definisce un ciclo sequenziale MAIN, in cui si scrive il programma in SFC mediante l’editor grafico

Esistono vari livelli di visualizzazione nell’editor:Visualizzazione compatta in SFC (Level 1 – blocco dello step + commento)Visualizzazione dettagliata in SFC e delle azioni da eseguire all’interno degli stati (in IL o ST) (Level 2)

Si definiscono gli stati e le transizioni. Per ogni stato si definiscono le azioni associate. Per ogni transizione si definiscono le condizioni associate (eventi)

Alessandro Cavini, Marcello Montanari - ISaGRAF 35

Linguaggio SFCLinguaggio grafico per rappresentare operazioni sequenzialiE’ costituito da:

Step (all’interno del quale vengono definite azioni usando ST).Transizioni (condizioni booleane)

Uno step non può essere seguito da un altro stepUna transizione non può essere seguita da un’altra transizione

Alessandro Cavini, Marcello Montanari - ISaGRAF 36

SFC – Step e transizioniStep: (stato)

è identificato da un numero (e un commento)Step inizialeStep attivo

2 variabili associate a STEP (Nnn è il numero associato allo step):

GSnnn.x: valore booleano che rappresenta l’attività di uno step. Ha valore 1 quando lo stato è attivoGSnnn.t: tempo trascorso dall’ultima attivazione dello step

Transizione:E’ identificata da un numero (e un commento)E’ possibile definire transizioni mediante salti a step (frecce)

Alessandro Cavini, Marcello Montanari - ISaGRAF 37

SFC - Divergenze e convergenzeSingola

Le condizioni non sono implicitamente esclusive. La mutua esclusione va esplicitamente definita nelle transizioni (definendone la priorità) in modo che venga attivato un solo ramo alla volta

DoppiaServe per definire azioni da eseguire simultaneamente (in parallelo)

Alessandro Cavini, Marcello Montanari - ISaGRAF 38

SFC - Macro stepRappresenta un insieme di stati e transizioniIl numero di riferimento del macrostato è il numero di riferimento dello stato iniziale della macroNello stesso grafico SFC, viene definito il contenuto del macrostato, utilizzando gli stati Beginnig step e Ending step

Alessandro Cavini, Marcello Montanari - ISaGRAF 39

SFC - Azioni associate a uno statoModificano il valore di una variabile booleana in funzione dell’attività di uno stato

<boolean_var>(N); oppure <bool>;/<boolean_var>;<boolean_var>(S);< boolean_var>(R);

Alessandro Cavini, Marcello Montanari - ISaGRAF 40

SFC – azioni “pulse” e “non-stored”Pulsed action (Action P o Action P1): Lista di istruzioni ST o IL eseguite una volta all’attivazione dello stepNon stored actions (normali): eseguite a ogni cicloin cui lo step è attivo

Action P0: eseguita quando lo step diventa inattivo

Alessandro Cavini, Marcello Montanari - ISaGRAF 41

SFC - TransizioniLa condizione associata a una transizione viene definita in ST o LD/IL

Nell’editor si può scegliere il linguaggio da utilizzare

Alessandro Cavini, Marcello Montanari - ISaGRAF 42

Code Generator – compilazione e simulazioneNel menu “Make”:

“Verify”: per controllare la presenza di errori“Make application code”

In “Compiler options” si sceglie il target della compilazione (fra simulazione, PLC Motorola, Intel, codice C)

Simulazione del progettoSimulate

Alessandro Cavini, Marcello Montanari - ISaGRAF 43

DebuggerPossibilità di:

eseguire la simulazione in tempo reale (Real time mode) o step by step (con i comandi Cycle to cycle mode e Execute one cycle)Fissare i breakpointFissare il tempo di cycle (durata in ms di un ciclo)Visualizzare le variabili

Mediante “Spy List” (lista delle variabili e del loro valore istantaneo)Mediante “Trace Variables” (andamento temporale delle variabili)

Alessandro Cavini, Marcello Montanari - ISaGRAF 44

6. SimulazioneSimulazione:

N.b.: ricordarsi di compilare con make

Visualizzazione degli stati attiviUso del pannello di controlloVisualizzazione (Spy) e Trace delle variabili

Archiviazione

Alessandro Cavini, Marcello Montanari - ISaGRAF 45

Pannello di controllo e graficoPannello di controllo:

Modifica e visualizzazione delle variabili binarie e analogiche mediante interruttori, led, displayE’ possibile modificare e visualizzare le variabili di I/O precedentemente associate ai canali delle schede negli slot

Grafici:La finestra del grafico si apre dall’icona corrispondente in “debug program”Interfaccia grafica

Alessandro Cavini, Marcello Montanari - ISaGRAF 46

Esercizio 1b –progetto con I/O simulatoDefinizione in ISaGRAF

Del controllo sequenziale (in SFC)del modello (tempo discreto) del sistema, per l’aggiornamento automatico delle uscite del modello in funzione degli ingressi

Utilizzo dell’interfaccia grafica

Alessandro Cavini, Marcello Montanari - ISaGRAF 47

Esercizio 1bModifiche:

Il controllo sequenziale non subisce modificheLe variabili di input vanno convertite in variabili interne

Viene aggiunta la variabile POS_NAST per modellare il movimento del nastroOra le variabili di input non possono più essere modificate mediante pannello di controllo. Le variabili che devono essere modificate attraverso l’interfaccia grafica vanno definite come “command-variable” nell’interfaccia grafica (es. start_proc)

Il modello del processo viene scritto in ST in un programma “Begin of cycle”

Alessandro Cavini, Marcello Montanari - ISaGRAF 48

Linguaggio STLista di statement, separati da ;(* commento *)Operatori booleani per definire le condizioni (NOT, AND, OR, ecc.)

Tipi Statement in STAssegnamento variabile :=espressione;Chiamata a funzione variabile:=nome_fun(param1, param2, …);

Alessandro Cavini, Marcello Montanari - ISaGRAF 49

Linguaggio ST – tipi di statement…Selezione (IF, CASE)IF bool THENint1=int2+int3;

END_IF;Iterazione (WHILE REPEAT, FOR)FOR index := 1 TO length BY 1 DO<statement>;

END_FOR;Controllo (RETURN, EXIT)Altre:

TSTART(timer_nn), TSTOP(timer_nn) per la gestione dei timerGSTART, etc. per i programmi figli: es. GSTART(child)Variabili GSnnn.t, GSnnn.x

V. Help di ISaGRAFAlessandro Cavini, Marcello Montanari - ISaGRAF 50

Linguaggio STOperatori:

Redge, fedge: rilevatori di fronti in salita e discesa

TSTART(<timer>), TSTOP(<timer>)GSTART, GKILL, GFREEZE, etc. per la gestione di processi figli

Alessandro Cavini, Marcello Montanari - ISaGRAF 51

Linguaggio ST

Alessandro Cavini, Marcello Montanari - ISaGRAF 52

I/O Connection vs Grafici

Slot di input e output

Alessandro Cavini, Marcello Montanari - ISaGRAF 53

Grafici

Si possono selezionare:Lo sfondo (background picture, .BMP)Gli elementi per la visualizzazione e l’interazione sono:

Boolean IconSi possono associare 2 icone ai valori vero e falso (v. programma ICONTOY2)

Grafici a barrePer la visualizzazione di variabili analogiche

DisplayVisualizzazione numerica di variabili analogiche

Alessandro Cavini, Marcello Montanari - ISaGRAF 54

Command VariableAnziché collegare una variabile di input a un canale di input di uno slot nel pannello, è possibile impostare il suo valore attraverso l’interfaccia grafica

La variabile deve essere definita INTERNAL (nel Dictionary)Bisogna attivare l’opzione “Command Variable” nella finestra dell’oggetto grafico. In questo modo ISaGRAFconsidera la variabile modificabile dall’utente durante la simulazioneDurante la simulazione, si può impostare il valore della variabile cliccando sull’icona, il grafico a barre o il display corrispondente

Alessandro Cavini, Marcello Montanari - ISaGRAF 55

Esercizio 1c – uso di ACTION(P)Si vuole contare il numero di bottiglie durante un certo intervallo di tempo

Si definisce la variabile intera num_bott, visualizzata nel pannello di controlloSi aggiorna la variabile contatore utilizzando una pulseaction in Riempimento bottiglia

Alessandro Cavini, Marcello Montanari - ISaGRAF 56

Azioni in SFCIn ISaGRAF si possono implementare azioni N (non stored) e azioni P (pulsed)Altri tipi di azioni

time Limited, time Delayed, Stored and time Delayed, Delayed and Stored, Stored and time Limited

si realizzano come funzioni N e P e utilizzando opportunamente i timer

Alessandro Cavini, Marcello Montanari - ISaGRAF 57

Esercizio 1d: programma figlioControllo della temperatura del serbatoioDefinizione di processi figlio:

Dispositivi di supervisioneProcessi con dinamica molto differenteAllarmi nel sistema (gestiti a un livello gerarchico superiore)

2 metodologie equivalenti:Con i comandi <child> (S) e <child> (R)Con i comandi GSTART(<child>) e GKILL(<child>) definiti come ACTION(P)

Alessandro Cavini, Marcello Montanari - ISaGRAF 58

Azioni SFCPermettono l’attivazione di sequenze SFC figlie, in funzione dello stato di attività dello stato

<child_prog> (N): inizia la sequenza figlio quando lo stato diventa attivo e la uccide quando lo stato diventa inattivo<child_prog> : come con N<child_prog> (S): inizia la sequenza figlio quando lo stato diventa attivo (l’esecuzione termina con un reset). <child_prog> (R): termina la sequenza figlio quando lo stato diventa attivo.

Alessandro Cavini, Marcello Montanari - ISaGRAF 59

Azioni SFCL’uso di (S) e (R) è equivalente a usare GSTART e GKILL all’interno di una pulsed action ST .

Il flusso di esecuzione del programma figlio è influenzato dal padre con i comandi:

GSTART mette in esecuzione il figlio specificatoGKILL termina l’esecuzione del figlioGFREEZE sospende l’esecuzione del figlio (si mantiene in memoria lo stato del programma)GRST riattiva l’esecuzione dopo GFREEZEGSTATUS monitoring dello stato (attivo, sospeso, inattivo)

Vanno eseguite all’interno di azioni impulsiveACTION(P)

GSTART(SON) SON(S)END_ACTION

Alessandro Cavini, Marcello Montanari - ISaGRAF 60

Modifiche al progettoVariabili Res_on e TemperatDinamica della temperatura in “Update”

IF Res_on THEN Temperat:=Temperat+1;

ELSE Temperat:=Temperat-1;

END_IF;IF Temperat<=25 THEN

Temperat:=25;END_IF;

Processo figlio Con_temp, attivato nello stato “Miscelazione liquidi” con GSTART(Con_temp) (azione pulsed), disattivato nello stato iniziale

Alessandro Cavini, Marcello Montanari - ISaGRAF 61

Controllo della temperatura

Alessandro Cavini, Marcello Montanari - ISaGRAF 62

Esercizio 1eSi realizza il controllo di temperatura utilizzando le istruzioni Set e Reset di processi figliCon_temp(R) in “Stato iniziale”Con_temp(S) in “Miscelazione”