Introduzione a ISaGRAF Sommario L`ambiente ISaGRAF

Transcript

Introduzione a ISaGRAF Sommario L`ambiente ISaGRAF
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
„
„
Introduzione a ISaGRAF
„
Alessandro Cavini, Marcello Montanari
D.E.I.S. – Università di Bologna
1
Alessandro Cavini, Marcello Montanari - ISaGRAF
L’ambiente ISaGRAF
Progetto in 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
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
„
5 moduli:
„
„
„
„
„
Projects
progetto e simulazione del controllo logico
Libraries
Archive
Book
Demo
librerie di I/O, funzioni e blocchi funzionali
archivio dei progetti e librerie
help in linea
Alessandro Cavini, Marcello Montanari - ISaGRAF
2
„
„
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
Alessandro Cavini, Marcello Montanari - ISaGRAF
4
Linguaggi in ISaGRAF (Standard IEC 61131-3)
ISaGRAF – Project Management
SFC (Sequential Flow Chart)
„
Si esegue da Windows cliccando
sull’icona Project
E’ una finestra in cui sono
elencati i progetti realizzati in
ISaGRAF. E’ possibile:
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
Alessandro Cavini, Marcello Montanari - ISaGRAF
Serve per salvare o caricare da floppy (o da una
cartella specifica) il backup di un progetto (in
formato .pia)
Inserimento del nome del progetto
Cliccando sul nuovo progetto (“edit”) si attiva la
finestra “Programs”
„
„
Š Si inseriscono tutti i “programmi” del progetto. Per programma si
intende una funzionalità utile per l’esecuzione del progetto, cioè:
„
„
Si sceglie dove eseguire il backup (Disk Drive)
Per caricare un progetto archiviato (.pia):
Definizione della struttura del progetto:
„
6
Moduli accessori di ISaGRAF – Archive Utility
File Æ New Project nella finestra Project
Management
„
Lista dei progetti
Descrizione
5
Creazione di un nuovo progetto
„
Creare un nuovo progetto
Cancellare un vecchio progetto
Commentare un progetto (Project
Descriptor)
Modificare progetti esistenti (Edit)
„
Controllo sequenziale in SFC
Archive Æ Restore. Seleziono l’archivio, che viene messo
nella directory dei progetti di ISaGRAF
Con il modulo Project lo posso aprire, ecc.
Operazioni di pre-elaborazione e post-elaborazione delle
variabili di I/O
Funzioni definite dall’utente, ecc.
Alessandro Cavini, Marcello Montanari - ISaGRAF
7
Alessandro Cavini, Marcello Montanari - ISaGRAF
8
Sviluppo del progetto
1. Descrizione del processo da automatizzare
Š
Esercitazione 1
L’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’elettrovalvola
EV2. 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
digitale
Livello cisterna
Liv_serb
analogico
Livello bottiglia
Liv_bot
analogico
Posizione bottiglia
POS_BOOK
digitale
Gli attuatori del sistema sono:
Elettrovalvola 1: elettrovalvola immissione liquido 1 EV1
digitale
Elettrovalvola 2: elettrovalvola immissione liquido 2 EV2
digitale
Elettrovalvola 3: elettrovalvola espulsione miscela
EV3
digitale
Motore del nastro trasportatore
MOT_NAST
digitale
L’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.
Descrizione del funzionamento
2. Definizione delle variabili
Š
Š
Variabili 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 conversione
6. Simulazione (o prova sull’impianto)
7. Documentazione
Alessandro Cavini, Marcello Montanari - ISaGRAF
9
Esercitazione 1a - Sommario
Alessandro Cavini, Marcello Montanari - ISaGRAF
10
1. Descrizione del funzionamento del processo
Progetto con I/O reale
„
„
Esempio di progetto
Operazioni di base in ISaGRAF
Š v. anche A.1.3. in User’s Guide ISaGRAF
„
„
„
Definizione dei programmi, delle variabili, delle schede di
I/O
Scrittura del programma in SFC, delle transizioni, ecc.
Simulazione
Alessandro Cavini, Marcello Montanari - ISaGRAF
11
Alessandro Cavini, Marcello Montanari - ISaGRAF
12
Funzionamento del processo
2. Definizione delle variabili
Input:
„
„
„
„
Attivazione del processo
Livello cisterna
Livello bottiglia
Posizione bottiglia
Start_Proc
Liv_serb
Liv_bot
POS_BOOK
digitale
analogico
analogico
digitale
EV1
EV2
EV3
MOT_NAST
digitale
digitale
digitale
digitale
Output:
„
„
„
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
13
Inserimento delle variabili /1
Elettrovalvola 1:
Elettrovalvola 2:
Elettrovalvola 3:
Motore del nastro trasportatore
Alessandro Cavini, Marcello Montanari - ISaGRAF
14
Inserimento delle variabili /2
In “Dictionary” si definiscono le variabili
„
Per ogni variabile viene definito:
Š il nome
Š la visibilità (global)
Š il tipo (digitale/analogica)
Š gli attributi (I/O, internal, ecc.)
„
Si inseriscono commenti con (*…*)
Inserimento nel progetto delle variabili e delle loro
caratteristiche
Alessandro Cavini, Marcello Montanari - ISaGRAF
15
Alessandro Cavini, Marcello Montanari - ISaGRAF
16
Inserimento delle variabili /3
Proprietà delle variabili /1
Visibilità
„
„
„
Tipo
Dalla finestra “Dictionary”, nella barra si seleziona la
visibilità e il tipo desiderati
„
„
„
Internal (variabili interna del PLC)
Input (letta dall’esterno)
Output (scritta su un dispositivo di output)
Constant (costante)
Alessandro Cavini, Marcello Montanari - ISaGRAF
il numero dello stato). E’ vera se lo stato N è attivo.
„
Š Reali 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
17
18
Esistono le costanti booleane TRUE (1) e FALSE (0)
Le costanti intere sono constanti a 32 bit con segno
Le costanti reali vanno specificate con il punto
decimale (es. 1.0)
Le costanti temporali seguono il seguente
formalismo:
Timer
Š Ad 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
Messages
Š Stringhe
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
Costanti
Tipo:
„
Analog: (Integer/real)
Š Intere con segno a 32 bit
Proprietà delle variabili /2
„
Boolean
Š Ad ogni stato viene associata una variabile booleana gsN.x (con N
Nella finestra vengono visualizzate le variabili con quella
visibilità e con quel tipo
Si possono modificare (Edit) e inserire (New) nuove
variabili. Nella finestra di inserimento, si specifica
l’attributo:
Š
Š
Š
Š
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)
„
FB instances, Defined Word
„
„
Iniziano per t#
L’unità di misura viene specificata dal suffisso h, m, s, ms
Esempio:
Š t#1h450ms
Š t#1h3m
Le stringhe si rappresentano fra apici (‘MESSAGE’)
Alessandro Cavini, Marcello Montanari - ISaGRAF
19
Alessandro Cavini, Marcello Montanari - ISaGRAF
20
Cross references
Conversion Table
Lista delle variabili, delle funzioni e dei programmi
utilizzati nel progetto
„
Servono per i dispositivi di interfaccia nonlineari
E’ possibile definire una caratteristica di I/O
nonlineare di tipo statico, inserita per punti
Per ogni oggetto, vengono riportate informazioni (es.
programmi in cui una variabile viene invocata)
„
si inserisce il valore elettrico letto in ingresso (o scritto in
uscita) 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
21
3. Interazione con il programma (I/O)
Dalla finestra “Programs” Æ
„
Inserimento negli slot del PLC di schede di I/O, con led,
interruttori, variabili analogiche di I/O
„
Serve per associare una variabile di I/O a un elemento
esterno di una scheda
Sono presenti 256 slot del PLC. Ad ogni slot si possono
associare diverse schede (predefinite, v. NOTE):
Š Boards: canali dello stesso tipo
2. Grafici
„
22
I/O connection
Esistono 2 modi, in fase di simulazione, per
interagire con il programma:
1. I/O connection
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
Š Equipments: insieme di boards (es. scheda con ingressi e uscite
Ambiente 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
analogici o binari)
Dopo aver scelto la scheda, si associano ai canali le
variabili di I/O desiderate
Associazione delle variabili ai dispositivi di I/O
Alessandro Cavini, Marcello Montanari - ISaGRAF
23
Alessandro Cavini, Marcello Montanari - ISaGRAF
24
Connessione con schede di I/O
Connessione con schede di I/O
Si 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 simulazione
Per 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
25
4. Funzionamento del processo
In fase di simulazione (v. avanti) l’interfaccia con il
mondo esterno è rappresentata dal pannello di
controllo
Modificando a mano gli ingressi del sistema, si
simula il funzionamento del processo
Alessandro Cavini, Marcello Montanari - ISaGRAF
26
Inserimento di un programma
Nella finestra Programs, si clicca su “Create new
program”
„
Si definisce:
Š il nome del programma
Š il linguaggio utilizzato
Š la tipologia di programma (controllo logico, funzione, ecc)
Cambiare!!!!!!
Alessandro Cavini, Marcello Montanari - ISaGRAF
27
Alessandro Cavini, Marcello Montanari - ISaGRAF
28
Modello di esecuzione del Software
Struttura del progetto - tipologia dei programmi
Architettura general-purpose dedicata al controllo
logico sequenziale
Implementazione di macchine degli stati per il
controllo del funzionamento di un impianto
Lettura INPUT
•Mappatura in memoria delle
letture (immagine di input)
Software Task
•Esecuzione dei task sulle
immagini in memoria
Attuazione OUTPUT
Lettura Input
Begin of Cycle
Sequential
End of Cycle
•Attuazione delle uscite sugli
attuatori (immagine di output)
Scrittura Output
Alessandro Cavini, Marcello Montanari - ISaGRAF
•Esecuzione ciclica
29
Tipologie di programmi /1
„
„
„
Viene eseguito all’inizio di ogni ciclo di esecuzione
Serve per la preelaborazione dei segnali di ingresso (es.
filtraggio, diagnosi)
NO in SFC
„
„
„
„
30
Funzioni con parametri di ingresso, che restituiscono
valori in uscita
Sono funzioni algebriche, in generale non lineari
NO in SFC
Function Block
Sequenziale (Grafcet), programma time-dependent
SOLO in SFC
„
„
Analoghe alle precedenti, ma non vengono persi i valori
delle variabili interne tra una chiamata e l’altra
Servono per implementare funzioni dinamiche
Child of…
Viene eseguito alla fine di ogni ciclo di esecuzione
Manipolazione delle variabili di output
NO in SFC
Alessandro Cavini, Marcello Montanari - ISaGRAF
Alessandro Cavini, Marcello Montanari - ISaGRAF
„
End of cycle
„
•Function
•Function block
•…
Function
Sequential
„
Child 2
Tipologie di programmi /2
Beginning of cycle
„
Child 1
„
31
Serve per implementare una gerarchia fra programmi
Alessandro Cavini, Marcello Montanari - ISaGRAF
32
Inserimento dei programmi
Scrittura del programma in SFC
I vari programmi, scritti nei diversi linguaggi, vengono
inseriti mediante editor opportuni
Si 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)
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
33
Linguaggio SFC
„
„
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
Step: (stato)
„
Step (all’interno del quale vengono definite azioni usando
ST).
Transizioni (condizioni booleane)
è identificato da un numero (e un
commento)
„
Step iniziale
„
Step attivo
2 variabili associate a STEP (Nnn è il
numero associato allo step):
„
Uno step non può essere seguito da un altro step
Una transizione non può essere seguita da un’altra
transizione
„
GSnnn.x: valore booleano che rappresenta
l’attività di uno step. Ha valore 1 quando lo
stato è attivo
GSnnn.t: tempo trascorso dall’ultima
attivazione dello step
Transizione:
„
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
34
SFC – Step e transizioni
Linguaggio grafico per rappresentare operazioni
sequenziali
E’ costituito da:
„
Si definiscono gli stati e le transizioni. Per ogni stato si
definiscono le azioni associate. Per ogni transizione si
definiscono le condizioni associate (eventi)
35
Alessandro Cavini, Marcello Montanari - ISaGRAF
E’ identificata da un numero (e un
commento)
E’ possibile definire transizioni mediante
salti a step (frecce)
36
SFC - Divergenze e convergenze
SFC - Macro step
Rappresenta un insieme di stati e
transizioni
Il numero di riferimento del
macrostato è il numero di riferimento
dello stato iniziale della macro
Nello stesso grafico SFC, viene
definito il contenuto del macrostato,
utilizzando gli stati Beginnig step e
Ending step
Singola
„
„
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
Doppia
„
Serve per definire azioni da eseguire
simultaneamente (in parallelo)
Alessandro Cavini, Marcello Montanari - ISaGRAF
37
SFC - Azioni associate a uno stato
„
„
„
Pulsed action (Action P o Action P1): Lista di
istruzioni ST o IL eseguite una volta all’attivazione
dello step
Non stored actions (normali): eseguite a ogni ciclo
in cui lo step è attivo
<boolean_var>(N); oppure <bool>;
/<boolean_var>;
<boolean_var>(S);
< boolean_var>(R);
Alessandro Cavini, Marcello Montanari - ISaGRAF
38
SFC – azioni “pulse” e “non-stored”
Modificano il valore di una variabile booleana in
funzione dell’attività di uno stato
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
39
Action P0: eseguita quando lo step diventa inattivo
Alessandro Cavini, Marcello Montanari - ISaGRAF
40
SFC - Transizioni
Code Generator – compilazione e simulazione
Nel menu “Make”:
La condizione associata a una transizione viene
definita in ST o LD/IL
„
„
„
Nell’editor si può scegliere il linguaggio da utilizzare
“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 progetto
Š Simulate
Alessandro Cavini, Marcello Montanari - ISaGRAF
41
Debugger
Alessandro Cavini, Marcello Montanari - ISaGRAF
6. Simulazione
Simulazione:
Possibilità di:
„
„
„
„
42
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 breakpoint
Fissare il tempo di cycle (durata in ms di un ciclo)
Visualizzare le variabili
„
N.b.: ricordarsi di compilare
con make
Visualizzazione degli stati
attivi
Uso del pannello di
controllo
Visualizzazione (Spy) e
Trace delle variabili
Š Mediante “Spy List” (lista delle variabili e del loro valore
istantaneo)
Š Mediante “Trace Variables” (andamento temporale delle variabili)
Archiviazione
Alessandro Cavini, Marcello Montanari - ISaGRAF
43
Alessandro Cavini, Marcello Montanari - ISaGRAF
44
Pannello di controllo e grafico
Esercizio 1b –progetto con I/O simulato
Pannello di controllo:
„
„
Definizione in ISaGRAF
Modifica e visualizzazione delle variabili
binarie e analogiche mediante
interruttori, led, display
E’ possibile modificare e visualizzare le
variabili di I/O precedentemente
associate ai canali delle schede negli
slot
„
„
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
Grafici:
„
„
La finestra del grafico si apre dall’icona
corrispondente in “debug program”
Interfaccia grafica
Alessandro Cavini, Marcello Montanari - ISaGRAF
45
Esercizio 1b
„
Il controllo sequenziale non subisce modifiche
Le variabili di input vanno convertite in variabili interne
Š Viene aggiunta la variabile POS_NAST per modellare il movimento
del nastro
Š Ora 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)
„
Lista di statement, separati da ;
(* commento *)
Operatori booleani per definire le condizioni (NOT,
AND, OR, ecc.)
Tipi Statement in ST
„
Il modello del processo viene scritto in ST in un
programma “Begin of cycle”
Alessandro Cavini, Marcello Montanari - ISaGRAF
46
Linguaggio ST
Modifiche:
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
„
47
Assegnamento
variabile :=espressione;
Chiamata a funzione
variabile:=nome_fun(param1, param2, …);
Alessandro Cavini, Marcello Montanari - ISaGRAF
48
Linguaggio ST – tipi di statement
„
„
„
„
„
Linguaggio ST
…
Selezione (IF, CASE)
IF bool THEN
int1=int2+int3;
END_IF;
Iterazione (WHILE REPEAT, FOR)
FOR index := 1 TO length BY 1 DO
<statement>;
END_FOR;
Controllo (RETURN, EXIT)
Altre:
Operatori:
„
Redge, fedge: rilevatori di fronti in salita e discesa
TSTART(<timer>), TSTOP(<timer>)
GSTART, GKILL, GFREEZE, etc. per la gestione di
processi figli
Š TSTART(timer_nn), TSTOP(timer_nn) per la gestione dei timer
Š GSTART, etc. per i programmi figli: es. GSTART(child)
Š Variabili GSnnn.t, GSnnn.x
V. Help di ISaGRAF
Alessandro Cavini, Marcello Montanari - ISaGRAF
49
Linguaggio ST
Alessandro Cavini, Marcello Montanari - ISaGRAF
50
I/O Connection vs Grafici
Slot di input e output
Alessandro Cavini, Marcello Montanari - ISaGRAF
51
Alessandro Cavini, Marcello Montanari - ISaGRAF
52
Grafici
Command Variable
Anziché collegare una variabile di input a un canale
di input di uno slot nel pannello, è possibile
impostare il suo valore attraverso l’interfaccia
grafica
„
Si possono selezionare:
„
„
Lo sfondo (background picture, .BMP)
Gli elementi per la visualizzazione e l’interazione sono:
„
Š Boolean Icon
Si possono associare 2 icone ai valori vero e falso (v. programma
ICONTOY2)
Š Grafici a barre
„ Per la visualizzazione di variabili analogiche
Š Display
„ Visualizzazione numerica di variabili analogiche
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
„
53
Esercizio 1c – uso di ACTION(P)
„
Alessandro Cavini, Marcello Montanari - ISaGRAF
54
Azioni in SFC
Si vuole contare il numero di bottiglie durante un
certo intervallo di tempo
„
La variabile deve essere definita INTERNAL (nel
Dictionary)
Bisogna attivare l’opzione “Command Variable” nella
finestra dell’oggetto grafico. In questo modo ISaGRAF
considera la variabile modificabile dall’utente durante la
simulazione
Durante la simulazione, si può impostare il valore della
variabile cliccando sull’icona, il grafico a barre o il display
corrispondente
In ISaGRAF si possono implementare azioni N (non
stored) e azioni P (pulsed)
Altri tipi di azioni
Si definisce la variabile intera num_bott, visualizzata nel
pannello di controllo
Si aggiorna la variabile contatore utilizzando una pulse
action in Riempimento bottiglia
„
„
„
„
„
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
55
Alessandro Cavini, Marcello Montanari - ISaGRAF
56
Esercizio 1d: programma figlio
Azioni SFC
Controllo della temperatura del serbatoio
Definizione di processi figlio:
„
„
„
Permettono l’attivazione di sequenze SFC figlie, in
funzione dello stato di attività dello stato
Dispositivi di supervisione
Processi con dinamica molto differente
Allarmi 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
„
57
Azioni SFC
58
Variabili Res_on e Temperat
Dinamica della temperatura in “Update”
Il flusso di esecuzione del programma figlio è influenzato
dal padre con i comandi:
IF Res_on THEN
Temperat:=Temperat+1;
ELSE
Temperat:=Temperat-1;
END_IF;
IF Temperat<=25 THEN
Temperat:=25;
END_IF;
Š GSTART
Š GKILL
Š GFREEZE
mette in esecuzione il figlio specificato
termina l’esecuzione del figlio
sospende l’esecuzione del figlio (si mantiene in
memoria lo stato del programma)
Š GRST
riattiva l’esecuzione dopo GFREEZE
Š GSTATUS
monitoring dello stato (attivo, sospeso, inattivo)
Vanno eseguite all’interno di azioni impulsive
ACTION(P)
GSTART(SON)
SON(S)
END_ACTION
Alessandro Cavini, Marcello Montanari - ISaGRAF
Alessandro Cavini, Marcello Montanari - ISaGRAF
Modifiche al progetto
L’uso di (S) e (R) è equivalente a usare GSTART e
GKILL all’interno di una pulsed action ST .
„
<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.
Processo figlio Con_temp, attivato nello stato
“Miscelazione liquidi” con GSTART(Con_temp)
(azione pulsed), disattivato nello stato iniziale
59
Alessandro Cavini, Marcello Montanari - ISaGRAF
60
Controllo della temperatura
Esercizio 1e
Si realizza il controllo di temperatura utilizzando le
istruzioni Set e Reset di processi figli
Con_temp(R) in “Stato iniziale”
Con_temp(S) in “Miscelazione”
Alessandro Cavini, Marcello Montanari - ISaGRAF
61
Alessandro Cavini, Marcello Montanari - ISaGRAF
62