Ingengneria e tecnologia dei sistemi dicontrollo 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
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Sommario
Introduzione all’ambiente ISaGRAF
Descrizione dell’ambiente ISaGRAF
Funzionalità e concetti di base
Come definire e simulare un progetto in ISaGRAF
Esercizio
Presentazione progetto d’esame
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Introduzione
Modello di esecuzione del Software
Architettura general-purpose dedicata al controllo logicosequenziale
Implementazione di macchine degli stati per il controllodel funzionamento di un impianto
Lettura INPUT
Software Task
Attuazione OUTPUT
•Mappatura in memoria delleletture (immagine di input)
•Esecuzione dei task sulleimmagini in memoria
•Attuazione delle uscite sugliattuatori (immagine di output)
•Esecuzione ciclica
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
L’ambiente ISaGRAF
ISaGRAF 3.2Ambiente di programmazione mediante il quale si
sviluppano progetti per il controllo logico sequenziale(es. per PLC)
Permette di scrivere il programma secondo lo standardIEC 61131-3
6 moduli:Projects progetto e simulazione del controllo logico
Libraries librerie di I/O, funzioni e blocchi funzionaliArchive archivio dei progetti e librerie
Book help in lineaRead me leggimiReport bug report
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Progetto in ISaGRAF
Per Project si intende un’intera applicazione da eseguiresul PLC
E’ composto da una serie di programmi, scrittiutilizzando 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 sottoprogrammiMaggiore 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 all’Assembler, linguaggio di basso livello
FBD/LD (Functional Block Diagram)Blocchi funzionali e schemi a contatto, simili a ladder (variabilibooleane 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 altrilinguaggi
Serve per progettare il controllo sequenzialeProgettazione del ciclo operativo mediante macchina degli stati
Gli altri linguaggi servono per implementare le azioni dicontrollo (definite all’interno 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 automatizzareDescrizione del funzionamento
Definizione delle specifiche
Progettazione del programma di controlloDefinizione 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 sull’impianto)
Documentazione
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
ISaGRAF – Project ManagementGestione 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 ledirectory (esempio C:\temp)Posizionare il file .pia nella directory di lavoro scelta (C:\temp)Utilizzare Archieve/options/disk drive per selezionare la directory sceltaArchieve/file/projects
Restore di un archivio .pia per “caricarlo” nel workbenchBackup per “salvarlo” dal workbench al file
Attenzione!Una volta caricato, le modifiche al progetto sono definitive: salvataggioautomatico del programma nel workbench!Il file .pia non viene invece toccato: aggiornato solo quando si esegue il backupdal workbench al file tramite la funzione ArchieveIl file .pia è in realtà un file compresso contenente tutta la cartellaC:\ISAWIN\APL\Nome_Progetto
Tutti i file da utilizzare (ad esempio per modificare l’interfaccia grafica)devono essere salvati sotto tale cartella affinchè siano compresi nel file .piadi backup
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
ISaGRAF – Project ManagementUna volta caricato nel workbench ilprogetto può essere modificato tramitel’applicazione Projects
Si esegue da Windows cliccandosull’icona Project
E’ una finestra in cui sono elencati iprogetti caricati nel workbench di
ISaGRAF.E’ possibile:
Creare un nuovo progettoCancellare un vecchio progettoCommentare un progetto (ProjectDescriptor) Modificare progetti esistenti (Edit)
Descrizione
Lista dei progetti
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 siintende una funzionalità utile per l’esecuzione del progetto, cioè:
Controllo sequenziale in SFC
Operazioni di pre-elaborazione e post-elaborazione delle variabili diI/O
Funzioni definite dall’utente, ecc.
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Esercitazione
Impianto di imbottigliamentoL’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 tramitel’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 opportunereazioni 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ò essereriattivato 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 1EV1 digitaleElettrovalvola 2: elettrovalvola immissione liquido 2EV2 digitaleElettrovalvola 3: elettrovalvola espulsione miscela EV3 digitaleMotore 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). Ilprocesso figlio viene invocato come se fosse una variabile booleana. La variabile analogica di ingresso che definisce latemperatura e’ Temperat, mentre la variabile digitale di uscita che comanda l’attivazione 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
Variabili
Funzionamento nominaleInput:
Attivazione del processo Start_Proc digitale
Livello cisterna Liv_serb analogico
Livello bottiglia Liv_bot analogico
Posizione bottiglia POS_BOOK digitale
Output:
Elettrovalvola 1: EV1 digitale
Elettrovalvola 2: EV2 digitale
Elettrovalvola 3: EV3 digitale
Motore del nastro trasportatore MOT_NAST digitale
Gestione temperaturaInput:
Temperatura Temperat analogico
Output:
Resistenza per riscaldamento Res_on digitale
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Variabili
Inserimento nel progetto delle variabili e delle lorocaratteristiche
Inserimento delle variabiliPulsante Dictionary per inserire e gestire le variabili
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Variabili
In “Dictionary” si definiscono le variabiliPer 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 lavisibilità e il tipo desiderati
Nella finestra vengono visualizzate le variabili con quellavisibilità 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 usata dai programmi utente)Input (letta dall’esterno)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 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 ilnumero 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 perl’esponente)
Se la variabile reale è collegata a un I/O, viene rappresentato il suovalore 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 ilnumero dello stato). Il suo valore può essere usato per definire letransizioni, ecc.
Una variabile timer può essere attivata o arrestata con TSTART eTSTOP 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#
L’unità 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 programmiutilizzati 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/OEsistono 2 modi, in fase di simulazione, per interagire con ilprogramma:
I/O connectionInserimento negli slot del PLC di schede di I/O, con led,interruttori, variabili analogiche di I/O
Ambiente graficoAmbiente grafico interattivo che mostra la macchina dasimulare e il suo funzionamento, mediante il quale èpossibile modificare il valore delle variabili di ingresso evisualizzare 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 connectionIn fase di simulazione l’interfaccia con il mondo esterno èrappresentata dal pannello di controllo
Modificando a mano gli ingressi del sistema, si simula ilfunzionamento del processo
Possono essere visualizzate in questo modo solo variabili ditipo 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 connectionDalla finestra “Programs” pulsante I/O connections
Associazione delle variabili ai dispositivi di I/OLe variabili di ingresso e di uscita vanno associate a canali di schedeI/O del PLC, mediante il comando “I/O Connection”
Sono presenti 256 slot del PLC. Ad ogni slot si possono associarediverse schede
Boards: canali dello stesso tipo (es. booleano, analogico, stringa)
Equipments: insieme di boards (es. scheda con ingressi e usciteanalogici o binari)
Per le simulazioni utilizzare le schede specifiche
Dopo aver scelto la scheda, si associano ai canali le variabili diI/O desiderate
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Interazione con il programma (I/O)
I/O connectionSi collegano le variabili di ingresso e di uscita ai canali di schede di I/O conil comando “I/O Connection”Variabili digitali di ingresso, analogiche di ingresso e digitali di uscitaEsempio: collegare variabili digitali in ingresso, analogiche in ingresso edigitali in uscita (vedi esempio imbottigliatore)
Si utilizzano 3 schede differenti, collegate ai primi 3 slot del PLC. Nella lista delleschede predefinite, sono presenti schede da utilizzarsi per la simulazionePer ogni scheda, si collegano i canali alle variabili di I/O opportune (4 canali dioutput 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 graficoAnziché collegare una variabile di input a un canale di input diuno slot nel pannello, è possibile durante la simulazioneimpostare 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 graficoSi può inserire una immagine (.bmp) di sfondo
Si possono inserire pulsanti/icone (immagini .ico), grafici abarre o display
Attenzione tali elementi devono essere nella cartellaC:\ISAWIN\APL\Nome_Progetto affinchè siano presenti anche nel file.pia di backup
Ad ogni elemento grafico si deve associare una variabilePer variabili di input si deve selezionare l’opzione “Command Variable”nella finestra dell’oggetto grafico. In questo modo ISaGRAF considera lavariabile modificabile dall’utente durante la simulazione.
Durante la simulazione, si può impostare il valore dellavariabile cliccando sull’icona, il grafico a barre o il displaycorrispondente
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Interazione con il programma (I/O)
Modalitá GraficaNei progettini le connessioni i/o sono già attive e funzionanti
Viene fornita una interfaccia grafica già funzionante perinteragire con il processo
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Inserimento di un programma
Inserimento di un programma nel progettoNella 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 cycleViene eseguito all’inizio di ogni ciclo di esecuzione
Serve per la preelaborazione dei segnali di ingresso (es. filtraggio, diagnosi)
Es. Utilizzato per simulare il funzionamento del sistemaNO in SFC; solitamente ST.
SequentialSequenziale, possibilita’di invocare figli (child) e funzioni (Functions)
SFC
End of cycleViene eseguito alla fine di ogni ciclo di esecuzione
Manipolazione delle variabili di output
Es. Utilizzato per simulare il funzionamento del sistemaNO in SFC; solitamente ST.
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Tipologie di programmi
FunctionFunzioni con parametri di ingresso, che restituiscono valori inuscita
Sono funzioni algebriche
NO in SFC; utilizzare ST
Function BlockAnaloghe alle precedenti, ma non vengono persi i valori dellevariabili interne tra una chiamata e l’altra
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 inseritimediante 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 ilprogramma 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’internodegli stati (in IL o ST) (Level 2)
Si definiscono gli stati e le transizioni. Per ogni stato sidefiniscono 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: utlizzareanche il comando edit/renumber per problemidi omonimia
Step iniziale
2 variabili associate a STEP (Nnn è ilnumero associato allo step):
GSnnn.x: valore booleano che rappresental’attività di uno step.
Ha valore 1 quando lo stato è attivo
GSnnn.t: tempo trascorso dall’ultimaattivazione dello step
Transizione:E’ identificata da un numero (e un commento)E’ possibile definire transizioni mediante saltia step (frecce)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Tipologie di programmi - SFC
Divergenzee
Convergenze
Parallelismoe
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 booleanaboolean_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
all’attivazione dello step
Non stored actions (normali Action N): eseguite a ogni ciclo in cui lo step èattivo
Altri tipi di azioni possibilirelative 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 definitain ST o LD/IL (AWL)
Nell’editor 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 simulazioneNel 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 attivinel grafo SFC
Uso del pannello di controllo
simulazione in tempo reale (Real time mode) o step by step (con i comandiCycle to cycle mode e Execute one cycle)
È possibile fissare i breakpoint e fissare il tempo di cycle (durata in ms di unciclo)
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 variabilibinarie e analogiche mediante interruttori,led, display
E’ possibile modificare e visualizzare levariabili di I/O precedentemente associateai canali delle schede negli slot
Interfaccia Grafica:La finestra del grafico si apre dall’iconacorrispondente in “debug program”
Interfaccia grafica
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Linguaggio ST
Structured TextLista di statement (istruzioni), separata da ;
(* commento *)
Operatori booleani per definire le condizioni (NOT, AND, OR,ecc.)
Esempi di Statement in STAssegnamentovariabile1 := variabile2 or variabile3;variabile4 := false;
Chiamata a funzionevariabile:=nome_fun(param1, param2, …);
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Linguaggio STSelezione (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 timerGSTART, etc. per i programmi figli: es. GSTART(child)Variabili GSnnn.t, GSnnn.xRedge 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 certointervallo di tempo
Si definisce la variabile intera num_bott, visualizzata nelpannello di controllo
Si aggiorna la variabile contatore utilizzando una pulse actionin 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>) eGKILL(<child>) definiti come ACTION(P)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Esempio
L’uso di (S) e (R) è equivalente a usare GSTART e GKILLall’interno di una pulsed action ST .
Il flusso di esecuzione del programma figlio è influenzato dalpadre con i comandi:
GSTART mette in esecuzione il figlio specificatoGKILL termina l’esecuzione del figlioGFREEZE sospende l’esecuzione del figlio (si mantiene in memorialo stato del programma)GRST riattiva l’esecuzione dopo GFREEZEGSTATUS monitoring dello stato (attivo, sospeso, inattivo)
Vanno eseguite all’interno di azioni impulsive
ACTION(P):GSTART(SON);END_ACTION;
SON(S)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Variabili INPUTUtente:
Nuovo [A,-1..7] piano premuto all’interno della cabinapiano0,… piano7 [D] tasto chiamata dal pianoEmergenza [D] tasto di emergenza
Porte:Pres [D] presenza di una persona sulle porte (fotocellula)Chiusa [D] porta chiusa (finecorsa)Aperta [D] porta aperta (finecorsa)
Ascensore:Fine_su [D] finecorsa sup. ascensoreFine_giu [D] finecorsa inf. Ascensore (non dovrebbe essere utilizzatonel funzionamento normale)Sens [D] sensore presenza ascensore al piano (uno per piano, lavariabile è OR di tutti i sensori)Rampa [D] due per piano, una prima e una dopo il piano, perrallentamento ascensore
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Variabili OUTPUT
Utente:Corr [A, 0..7] piano corrente (p.e. utilizzato peraccendere i LED)
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 – perrallentare in prossimità del piano)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
Variabili INTERNE
Aggiornate nel modello dell’impianto e nel controllo
Utente:Dest [A, 1..7] piano destinazione selezionato dall’utente – usatain premuto() per la gestione della richiesta piano esterna edella rchiesta all’interno dell’ascensore
Porte:Porta [A, 0..50] posizione porta, per simulazione
Ascensore:Altezza [A, -10…150] 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 dell’impiantoAggiornamento dello stato del sistema e delle variabili diINPUT (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 (incorrispondenza del piano)
“rampa“ vale 1 se l’ascensore dista +/-4 dal pianoif 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;0, S
-4, R
+4, R
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
SFC - figlio
Fase di inizializzazioneEseguita solo una volta, all’accensione dell’ascensore (es. percalo di tensione, ecc.)
Chiusura porte (controllo presenza passeggero)
Discesa LENTA fino al piano terra - l’ascensore raggiunge ilfinecorsa 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 alpiano), di “nuovo“ (richiesta interna all’ascensore) e “corr”(piano corrente), indica se è stato richiesto l’ascensore a unpianoN.b. piano destinazione deve essere diverso da quellocorrenteNON è 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 l’ascensore si deve muovere per raggiungerela 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 secondiChiusura porte (gestione presenza passeggero)Movimento lento fino al segnale di fine rampa del pianoiniziale, 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 lentoArresto al piano e attesa di 2sAggiornamento piano corrente e reset pulsanti al piano opulsante 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 dell’ascensore deve essere sempreinterrompibile in presenza del segnale di emergenza
Possibili emergenze:Tasto di allarme interno all’ascensore
Sovratemperatura azionamento
Sovracorrente fase motore
Struttura padre-figlioIn questo modo si risolve il problema di dover gestire le emergenze inOGNI stato
Processo Figlio: funzionamento normaleIl processo figlio viene attivato all’inizio
Se si verifica un’emergenza, si sospende l’esecuzione del figlio (conFREEZE), si salva lo stato degli attuatori e si gestisce l’emergenza
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 – LavatriceTemperatura di lavaggio (30°, 60°, 90°)
Programma di lavaggio (prelavaggio, lavaggio, completo)
Gestione eventi anomali (otturazione del tubo di carico o discarico acqua, rottura resistenza di riscaldamento)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
VariabiliSet_temp [I, A] temperatura desiderata
Set_program [I, A] programma desiderato
Run [I/O, D] attivazione ciclo lavaggio
Prewash [O, D] prelavaggio attivo
Wash [O, D] lavaggio attivo
Rince [O, D] risciacquo attivo
Bulls_eye_op [I, D] apetura sportello per inserire il bucato
Bulls_eye_lk [O, D] bloccaggio spoprtello
Fillsoap [I/O, D] riempimento sapone nel cassetto
Emptysoap [O, D] svuotamento sapone nel cassetto
Soaplevel [I, D] livello sapone
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
VariabiliEmptywater [O, D] svuotamento acqua
Fillwater [O, D] riempimento acqua
Hot [O, D] attivazione ciclo lavaggio
Waterlevel [O, D] attivazione resistenza riscaldamento
Temperature [O, D] temperatura acqua
Motor_on [O, D] attivazione motore lavatrice
Spin [O, D] rotazione cestello (grafica)
Ingegneria e tecnologia dei sistemi di controllo L-A ISaGRAF 3.2
VariabiliHeat_fail [Guasto, D] rottura resistenza riscaldamento acqua
Wrt_in_fail [Guasto, D] rottura elettrovalvola immissione acqua
Wrt_out_fail [Guasto, D] rottura elettrovalvola immissione acqua
Heat_alrm [O, D] allarme: rilevata rottura resistenza riscaldamento
Wrt_in_alrm [O, D] allarme: mancata immissione acqua
Wrt_out_alrm [O, D] allarme: mancato svuotamento acqua
Bulls_eye_alrm[O, D] allarme: sportello aperto
Soapalarm [O, D] allarme: mancanza sapone cassetto
Prog_error [O, D] allarme: programma settato non corretto
Temp_error [O, D] allarme: temepratura settata non corretta