Sei sulla pagina 1di 59

Ingengneria e tecnologia dei sistemi di

controllo L-A
INTRODUZIONE A ISAGRAF
Ing. Andrea Tilli
Ing. Matteo Sartini
DEIS - Universit di Bologna
Tel. 051-2093872
E-mail: {atilli, msartini}@deis.unibo.it

Sommario

Introduzione allambiente ISaGRAF




Descrizione dellambiente ISaGRAF

Funzionalit e concetti di base

Come definire e simulare un progetto in ISaGRAF

Esercizio

Presentazione progetto desame

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Introduzione

Modello di esecuzione del Software


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

Attuazione delle uscite sugli


attuatori (immagine di output)
Esecuzione ciclica

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Lambiente ISaGRAF

ISaGRAF 3.2
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
6 moduli:







Projects
Libraries
Archive
Book
Read me
Report

progetto e simulazione del controllo logico


librerie di I/O, funzioni e blocchi funzionali
archivio dei progetti e librerie
help in linea
leggimi
bug report

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Progetto in ISaGRAF

Per Project si intende unintera applicazione da eseguire


sul PLC
E composto da una serie di programmi, scritti
utilizzando i diversi linguaggi dello Standard IEC1131-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 singoli programmi


Modularit del codice
Possibilit di scelta dei linguaggi opportuni

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Linguaggi in ISaGRAF

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 relais (per variabili booleane)

IL (Instruction List, o AWL)




Simile allAssembler, 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

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Sequential Flow Chart (SFC)

SFC
Formalismo gerarchicamente superiore agli altri
linguaggi
Serve per progettare il controllo sequenziale


Progettazione del ciclo operativo mediante macchina degli stati

Gli altri linguaggi servono per implementare le azioni di


controllo (definite allinterno degli stati) e per definire le
transizioni tra gli stati

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Sviluppo del progetto

 Descrizione del processo da automatizzare





Descrizione del funzionamento


Definizione delle specifiche

 Progettazione del programma di controllo




Definizione delle variabili in gioco









Variabili di ingresso (sensori)


Variabili di uscita (attuatori)
Variabili interne

Connessione con schede I/O (per le variabili I/O)


Progettazione della struttura e dei singoli moduli del SW

 Scrittura del codice


 Simulazione (o prova sullimpianto)
 Documentazione
Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

ISaGRAF Project Management


Gestione dei progetti


Complicata!







Per caricare un progetto (da un file .pia) utilizzare la funzione Archive


Definire la directory di lavoro (ATTENZIONE al limite di 8 caratteri per le
directory (esempio C:\temp)
Posizionare il file .pia nella directory di lavoro scelta (C:\temp)
Utilizzare Archieve/options/disk drive per selezionare la directory scelta
Archieve/file/projects
 Restore di un archivio .pia per caricarlo nel workbench
 Backup per salvarlo dal workbench al file

Attenzione!


Una volta caricato, le modifiche al progetto sono definitive: salvataggio


automatico del programma nel workbench!
Il file .pia non viene invece toccato: aggiornato solo quando si esegue il backup
dal workbench al file tramite la funzione Archieve
Il file .pia in realt un file compresso contenente tutta la cartella
C:\ISAWIN\APL\Nome_Progetto
 Tutti i file da utilizzare (ad esempio per modificare linterfaccia grafica)
devono essere salvati sotto tale cartella affinch siano compresi nel file .pia
di backup

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

ISaGRAF Project Management


Una volta caricato nel workbench il
progetto pu essere modificato tramite
lapplicazione Projects

Si esegue da Windows cliccando


sullicona Project
E una finestra in cui sono elencati i
progetti caricati nel workbench di
ISaGRAF.
E possibile:





Lista dei progetti

Creare un nuovo progetto


Cancellare un vecchio progetto
Commentare un progetto (Project
Descriptor)
Modificare progetti esistenti (Edit)

Descrizione
Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Creazione di un nuovo progetto

Cliccando sul 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 lesecuzione del progetto, cio:
 Controllo sequenziale in SFC
 Operazioni di pre-elaborazione e post-elaborazione delle variabili di
I/O
 Funzioni definite dallutente, ecc.

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Esercitazione

Impianto di imbottigliamento
Limpianto da controllare consiste in una cisterna principale in cui devono essere inseriti due liquidi differenti.
Il primo liquido viene immesso nella cisterna tramite lelettrovalvola EV1 mentre il secondo liquido viene immesso tramite
lelettrovalvola EV2.
Il rapporto in volume tra liquido 1 e liquido 2 deve essere di 4:1.
Il livello del liquido allinterno 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 lelettrovalvola di espulsione del composto e attivo, si pu
procedere al riempimento della bottiglia (con lattivazione dellelettrovalvola 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



Si introduca 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.
Si aggiunga 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 analogica di ingresso che definisce la
temperatura e Temperat, mentre la variabile digitale di uscita che comanda lattivazione della resistenza di potenza e Res_on.
Si realizzi il controllo di temperatura invocando il processo figlio tramite le primitive GSTART e GKILL.

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Descrizione del funzionamento del processo

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Funzionamento del processo

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili
Funzionamento nominale










Input:
Attivazione del processo
Start_Proc
Livello cisterna
Liv_serb
Livello bottiglia
Liv_bot
Posizione bottiglia
POS_BOOK
Output:
Elettrovalvola 1:
EV1
Elettrovalvola 2:
EV2
Elettrovalvola 3:
EV3
Motore del nastro trasportatore MOT_NAST

digitale
analogico
analogico
digitale
digitale
digitale
digitale
digitale

Gestione temperatura


Temperatura

Resistenza per riscaldamento

Input:
Temperat
Output:
Res_on

Ingegneria e tecnologia dei sistemi di controllo L-A

analogico
digitale
ISaGRAF 3.2

Variabili

Inserimento delle variabili


Pulsante Dictionary per inserire e gestire le variabili

Inserimento nel progetto delle variabili e delle loro


caratteristiche
Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili

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 (**)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili

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 tipo
Si possono modificare (Edit) e inserire (New) nuove variabili.
Nella finestra di inserimento, si specifica lattributo:





Internal (variabili interna del PLC usata dai programmi utente)


Input (letta dallesterno)
Output (scritta su un dispositivo di output)
Constant (costante)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili

Visibilit




Globale (visibili in tutti i programmi del progetto)


Locale (visibile solo allinterno di un programma)
Common (visibile in tutti i programmi di tutti i progetti)

Tipo


Boolean


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 bit


Reali IEEE 32bit (1 bit di segno, 23 bit per la mantissa, 8 per
lesponente)
Se la variabile reale collegata a un I/O, viene rappresentato il suo
valore intero

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili

Tipo:


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

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Costanti




Esistono le costanti booleane TRUE (1) e FALSE (0)


Le costanti intere sono constanti a 32 bit con segno
Le constanti reali vanno specificate con il punto decimale
(es. 1.0)
Le costanti temporali seguono il seguente formalismo:




Iniziano per t#
Lunit di misura viene specificata dal suffisso h, m, s, ms
Esempio:
 t#1h450ms
 t#1h3m

Le stringhe si rappresentano fra apici (MESSAGE)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Cross references

Cross References
Lista delle variabili, delle funzioni e dei programmi
utilizzati nel progetto


Per ogni oggetto, vengono riportate informazioni (es.


programmi in cui una variabile viene invocata)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

Gestione I/O


Esistono 2 modi, in fase di simulazione, per interagire con il


programma:

I/O connection


Inserimento negli slot del PLC di schede di I/O, con led,


interruttori, variabili analogiche di I/O

Ambiente grafico


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

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

I/O connection


In fase di simulazione linterfaccia con il mondo esterno


rappresentata dal pannello di controllo
Modificando a mano gli ingressi del sistema, si simula il
funzionamento del processo
Possono essere visualizzate in questo modo solo variabili di
tipo input e output (non internal)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

I/O connection



Dalla finestra Programs  pulsante I/O connections


Associazione delle variabili ai dispositivi di I/O


Le variabili di ingresso e di uscita vanno associate a canali di schede


I/O del PLC, mediante il comando I/O Connection
Sono presenti 256 slot del PLC. Ad ogni slot si possono associare
diverse schede
 Boards: canali dello stesso tipo (es. booleano, analogico, stringa)
 Equipments: insieme di boards (es. scheda con ingressi e uscite
analogici o binari)
 Per le simulazioni utilizzare le schede specifiche

Dopo aver scelto la scheda, si associano ai canali le variabili di


I/O desiderate

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

I/O connection




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
Esempio: collegare variabili digitali in ingresso, analogiche in ingresso e
digitali in uscita (vedi esempio imbottigliatore)


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)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

Ambiente grafico





Anzich collegare una variabile di input a un canale di input di


uno slot nel pannello, possibile durante la simulazione
impostare il suo valore attraverso una interfaccia grafica
La variabile deve essere definita INTERNAL (nel Dictionary)
E possibile creare una interfaccia grafica tramite il comando
graphics

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

Ambiente grafico



Si pu inserire una immagine (.bmp) di sfondo


Si possono inserire pulsanti/icone (immagini .ico), grafici a
barre o display


Ad ogni elemento grafico si deve associare una variabile




Attenzione tali elementi devono essere nella cartella


C:\ISAWIN\APL\Nome_Progetto affinch siano presenti anche nel file
.pia di backup
Per variabili di input si deve selezionare lopzione Command Variable
nella finestra delloggetto grafico. In questo modo ISaGRAF considera la
variabile modificabile dallutente durante la simulazione.

Durante la simulazione, si pu impostare il valore della


variabile cliccando sullicona, il grafico a barre o il display
corrispondente

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Interazione con il programma (I/O)

Modalit Grafica



Nei progettini le connessioni i/o sono gi attive e funzionanti


Viene fornita una interfaccia grafica gi funzionante per
interagire con il processo

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Inserimento di un programma

Inserimento di un programma nel progetto





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)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi
Tipologie di programmi
Beginning of cycle




Viene eseguito allinizio di ogni ciclo di esecuzione


Serve per la preelaborazione dei segnali di ingresso (es. filtraggio, diagnosi)
Es. Utilizzato per simulare il funzionamento del sistema


NO in SFC; solitamente ST.

Sequential


Sequenziale, possibilitadi invocare figli (child) e funzioni (Functions)




SFC

End of cycle




Viene eseguito alla fine di ogni ciclo di esecuzione


Manipolazione delle variabili di output
Es. Utilizzato per simulare il funzionamento del sistema


NO in SFC; solitamente ST.

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi

Function





Funzioni con parametri di ingresso, che restituiscono valori in


uscita
Sono funzioni algebriche
NO in SFC; utilizzare ST

Function Block


Analoghe alle precedenti, ma non vengono persi i valori delle


variabili interne tra una chiamata e laltra
Servono per implementare funzioni dinamiche

Child of


Serve per implementare una gerarchia fra programmi

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi
I vari programmi, scritti nei diversi linguaggi, vengono inseriti
mediante editor opportuni

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC

Programma principale
Si definisce un ciclo sequenziale MAIN, in cui si scrive il
programma in SFC mediante leditor grafico


Esistono vari livelli di visualizzazione nelleditor:




Visualizzazione compatta in SFC (Level 1 blocco dello step +


commento)
Visualizzazione dettagliata in SFC e delle azioni da eseguire allinterno
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

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC


Step: (stato)


identificato da un numero (e un commento)




Numerazione automatica degli stati: utlizzare


anche il comando edit/renumber per problemi
di omonimia

Step iniziale

2 variabili associate a STEP (Nnn il


numero associato allo step):


GSnnn.x: valore booleano che rappresenta


lattivit di uno step.


Ha valore 1 quando lo stato attivo

GSnnn.t: tempo trascorso dallultima


attivazione dello step

Transizione:



E identificata da un numero (e un commento)


E possibile definire transizioni mediante salti
a step (frecce)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC

Divergenze
e
Convergenze

Parallelismo
e
Sincronizzazione

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC

Azioni associate a uno stato


Modificano il valore di una variabile booleana





boolean_var(N); (oppure semplicemente boolean_var;)


/boolean_var; (negazione di boolean_var)
boolean_var(S);
boolean_var(R);

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC


Azioni pulse (P) e non-stored (N)


Pulsed action (Action P): Lista di istruzioni ST o IL eseguite una volta


allattivazione dello step
Non stored actions (normali Action N): eseguite a ogni ciclo in cui lo step
attivo

Altri tipi di azioni possibili





relative alla gestione di SFC figli (v. avanti)


Chiamate di funzioni con variabili di ingresso e uscita (v. help)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Tipologie di programmi - SFC

Transizioni
La condizione associata a una transizione viene definita
in ST o LD/IL (AWL)


Nelleditor si pu scegliere il linguaggio da utilizzare

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Code Generator compilazione e simulazione

Compilazione e simulazione


Nel menu Make:




Make application: compila e segnala eventuali errori

Simulazione e debugging:



Make -> Make application


Debug -> Simulate
 Ricordarsi di compilare tramite make
 Visualizzazione degli stati attivi
nel grafo SFC
 Uso del pannello di controllo
simulazione in tempo reale (Real time mode) o step by step (con i comandi
Cycle to cycle mode e Execute one cycle)
possibile fissare i breakpoint e fissare il tempo di cycle (durata in ms di un
ciclo)
Visualizzazione delle variabili
 Mediante Spy List (lista delle variabili e del loro valore istantaneo)
 Mediante Trace Variables (andamento temporale delle variabili)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Pannello di controllo e grafico

Pannello di controllo:


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

Interfaccia Grafica:


La finestra del grafico si apre dallicona


corrispondente in debug program
Interfaccia grafica

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Linguaggio ST

Structured Text




Lista di statement (istruzioni), separata da ;


(* commento *)
Operatori booleani per definire le condizioni (NOT, AND, OR,
ecc.)

Esempi di Statement in ST


Assegnamento
variabile1 := variabile2 or variabile3;
variabile4 := false;
Chiamata a funzione
variabile:=nome_fun(param1, param2, );

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Linguaggio ST





Selezione (IF, CASE)


IF bool
THEN int1:=int2+int3;
ELSE int1:=0;
END_IF;
Iterazione (WHILE REPEAT, FOR) (ATTENZIONE!!!!)
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 timer


GSTART, etc. per i programmi figli: es. GSTART(child)
Variabili GSnnn.t, GSnnn.x
Redge e Fedge rilevatori di fronti di discesa e salita

V. Help di ISaGRAF
Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Esempio

Esempio 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 controllo
Si aggiorna la variabile contatore utilizzando una pulse action
in Riempimento bottiglia

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Esempio

Esempio: programma figlio


Controllo della temperatura del serbatoio
Definizione di processi figlio:




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)


Preferibilmente con i comandi GSTART(<child>) e
GKILL(<child>) definiti come ACTION(P)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Esempio

Luso di (S) e (R) equivalente a usare GSTART e GKILL


allinterno di una pulsed action ST .


Il flusso di esecuzione del programma figlio influenzato dal


padre con i comandi:







GSTART
mette in esecuzione il figlio specificato
GKILL
termina lesecuzione del figlio
GFREEZE
sospende lesecuzione del figlio (si mantiene in memoria
lo stato del programma)
GRST
riattiva lesecuzione dopo GFREEZE
GSTATUS
monitoring dello stato (attivo, sospeso, inattivo)

Vanno eseguite allinterno di azioni impulsive


ACTION(P):
GSTART(SON);
END_ACTION;
Ingegneria e tecnologia dei sistemi di controllo L-A

SON(S)

ISaGRAF 3.2

Ascensore singolo

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili INPUT
Utente:




Nuovo [A,-1..7]
piano premuto allinterno della cabina
piano0, piano7 [D] tasto chiamata dal piano
Emergenza [D]
tasto di emergenza

Porte:




Pres [D]
Chiusa [D]
Aperta [D]

presenza di una persona sulle porte (fotocellula)


porta chiusa (finecorsa)
porta aperta (finecorsa)

Ascensore:





Fine_su [D]
finecorsa sup. ascensore
Fine_giu [D] finecorsa inf. Ascensore (non dovrebbe essere utilizzato
nel funzionamento normale)
Sens [D]
sensore presenza ascensore al piano (uno per piano, la
variabile OR di tutti i sensori)
Rampa [D]
due per piano, una prima e una dopo il piano, per
rallentamento ascensore

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili OUTPUT

Utente:


Corr [A, 0..7]


accendere i LED)

piano corrente (p.e. utilizzato per

Porte:



Apri [D]
Chiudi [D]

comandi apertura/chiusura porte

Ascensore:




Motore [D]
comando movimento ascensore
Su [D]
direzione movimento (salita/discesa)
Vel [D]
velocit movimento (veloce/lento per
rallentare in prossimit del piano)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili INTERNE

Aggiornate nel modello dellimpianto e nel controllo


Utente:


Dest [A, 1..7] piano destinazione selezionato dallutente usata


in premuto() per la gestione della richiesta piano esterna e
della rchiesta allinterno dellascensore

Porte:


Porta [A, 0..50] posizione porta, per simulazione

Ascensore:



Altezza [A, -10150] posizione ascensore


Spostam [-2,2] spostamento ascensore (dipende da vel)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Gestione programma ST in Beginning of cycle

Modello simulato dellimpianto




Aggiornamento dello stato del sistema e delle variabili di


INPUT (sensori) in funzione delle variabili di OUTPUT (attuatori)
Selezione casuale del piano iniziale (variabile INIZIO)
sens vale 1 se altezza 0, 20, 40, 60, 140 (in
corrispondenza del piano)
rampa vale 1 se lascensore dista +/-4 dal piano

if mod(altezza,20)=0 then sens:=true;


else sens:=false;
end_if;
if mod(altezza,20)=4 or mod(altezza,20)=16 then rampa:=true;
else rampa:=false;
end_if;

+4, R
0, S
-4, R

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

SFC - figlio

Fase di inizializzazione


Eseguita solo una volta, allaccensione dellascensore (es. per


calo di tensione, ecc.)

Chiusura porte (controllo presenza passeggero)


Discesa LENTA fino al piano terra - lascensore raggiunge il
finecorsa inferiore, poi risale fino al primo sens (piano 0)
Apertura porte
Stato di attesa (stato 5)








corr:=0;
dest:=0;
nuovo:=-1;

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Funzioni:

Premuto:





In funzione degli input piano0, piano7 (pulsanti al


piano), di nuovo (richiesta interna allascensore) e corr
(piano corrente), indica se stato richiesto lascensore a un
piano
N.b. piano destinazione deve essere diverso da quello
corrente
NON implementata la gestione della richiesta di pi piani


Cosa succede se ci sono pi richieste contemporanee?

dest contiene il piano di destinazione (v. premuto() )

Direz:


Direzione in cui lascensore si deve muovere per raggiungere


la destinazione

Spegni:


Reset chiamate e aggiornamento della variabile corr

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Movimento ascensore

Attesa di 2 secondi
Chiusura porte (gestione presenza passeggero)
Movimento lento fino al segnale di fine rampa del piano
iniziale, nella direzione selezionata in base a corr e
dest
Movimento veloce







Aggiornamento del piano corrente in base ai segnali sens


In prossimit del piano di destinazione (v. segnale rampa)
movimento lento
Arresto al piano e attesa di 2s
Aggiornamento piano corrente e reset pulsanti al piano o
pulsante interno (con la funzione spegni() )
Apertura porte
(Attesa di 5s.)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Emergenza
Il funzionamento dellascensore deve essere sempre
interrompibile in presenza del segnale di emergenza
Possibili emergenze:




Tasto di allarme interno allascensore


Sovratemperatura azionamento
Sovracorrente fase motore

Struttura padre-figlio


In questo modo si risolve il problema di dover gestire le emergenze in


OGNI stato
Processo Figlio: funzionamento normale



Il processo figlio viene attivato allinizio


Se si verifica unemergenza, si sospende lesecuzione del figlio (con
FREEZE), si salva lo stato degli attuatori e si gestisce lemergenza
Si riattiva i processo figlio con GRST

Processo Padre: gestione emergenza

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

LAVATRICE (washcomp)

Progetto 1 Lavatrice




Temperatura di lavaggio (30, 60, 90)


Programma di lavaggio (prelavaggio, lavaggio, completo)
Gestione eventi anomali (otturazione del tubo di carico o di
scarico acqua, rottura resistenza di riscaldamento)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili


Set_temp
[I, A]
Set_program [I, A]

Run

Prewash
Wash
Rince











[I/O, D] attivazione ciclo lavaggio


[O, D]
[O, D]
[O, D]

Bulls_eye_op [I, D]
Bulls_eye_lk [O, D]
Fillsoap
Emptysoap
Soaplevel

temperatura desiderata
programma desiderato

prelavaggio attivo
lavaggio attivo
risciacquo attivo
apetura sportello per inserire il bucato
bloccaggio spoprtello

[I/O, D] riempimento sapone nel cassetto


[O, D] svuotamento sapone nel cassetto
[I, D] livello sapone

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili









Emptywater
Fillwater
Hot
Waterlevel
Temperature

[O, D]
[O, D]
[O, D]
[O, D]
[O, D]

svuotamento acqua
riempimento acqua
attivazione ciclo lavaggio
attivazione resistenza riscaldamento
temperatura acqua

Motor_on
Spin

[O, D]
attivazione motore lavatrice
[O, D]
rotazione cestello (grafica)

Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2

Variabili

Heat_fail
Wrt_in_fail
Wrt_out_fail

[Guasto, D]
[Guasto, D]
[Guasto, D]

rottura resistenza riscaldamento acqua


rottura elettrovalvola immissione acqua
rottura elettrovalvola immissione acqua

Heat_alrm

[O, D]

Wrt_in_alrm [O, D]
Wrt_out_alrm [O, D]
Bulls_eye_alrm[O, D]
Soapalarm
[O, D]
Prog_error
[O, D]
Temp_error
[O, D]

allarme: rilevata rottura resistenza


riscaldamento
allarme: mancata immissione acqua
allarme: mancato svuotamento acqua
allarme: sportello aperto
allarme: mancanza sapone cassetto
allarme: programma settato non corretto
allarme: temepratura settata non corretta










Ingegneria e tecnologia dei sistemi di controllo L-A

ISaGRAF 3.2