Ingegneria e Tecnologie dei Sistemi di Controllo L-A Tema di Progetto n 1 Si progetti in ambiente CoDeSys il controllo di sequenze di un sistema costituito da un ascensore. Si utilizzi il file AscensoreSingolo.pro in cui è contenuta la riproduzione del comportamento del sistema non controllato e una interfaccia grafica di ausilio alla simulazione. Il controllo di sequenze deve garantire la corretta inizializzazione e il corretto funzionamento dell impianto. Si richiede che il funzionamento dell ascensore permetta un servizio efficiente delle richieste di chiamata dai piani e dall interno dell ascensore, considerando anche chiamate simultanee. Non si richiede una politica ottima per la gestione delle chiamate (minimizzazione dei tempi di attesa e/o dei percorsi effettuati dalle cabine, etc.), ma è importante che la politica scelta consenta un certo grado di efficienza complessiva. La politica di gestione adottata deve essere chiaramente descritta nella documentazione di progetto. Si faccia riferimento al seguente paragrafo Descrizione dell ascensore per una descrizione più approfondita dell impianto e del funzionamento richiesto. Linee guida per lo svolgimento: Il controllo di sequenze deve essere progettato utilizzando il linguaggio SFC e seguendo la metodologia basata sull attuatore generalizzato vista nel Corso. E importante utilizzare Function Blocks per organizzare in modo chiaro e leggibile il controllo di sequenze suddetto. Possono essere definite nuove variabili e funzioni per la realizzazione del Controllo di Sequenze. Per una maggiore leggibilità si consiglia di non estendere oltre le cinque righe il codice associato alle azioni e alle transizioni dell SFC. A tale scopo si raggruppino le istruzioni per azioni e transizioni in funzioni scritte preferibilmente in linguaggio ST; è comunque consentito l uso di LD, IL e FBD. Materiale e documentazione da produrre il giorno della presentazione del progetto: - CD o Flash-Key su cui sia memorizzato il progetto da presentare. Evitare assolutamente Floppy Disk. Il progetto deve essere in formato CoDeSys compatibile con la versione 2.3.8.1. - Relazione scritta di 3-4 pagine con gli elementi fondamentali del progetto (scelte compiute rispetto alle specifiche da soddisfare, struttura della soluzione, politiche adottate, etc.). 1
Descrizione dell ascensore Per la descrizione di dettaglio dell impianto e delle specifiche di funzionamento, si faccia riferimento alla propria esperienza in merito (gli ascensori sono impianti comuni). Di seguito si riportano solo alcune note rilevanti che vanno oltre l esperienza comune. Si faccia riferimento al paragrafo successivo, Descrizione delle variabili di I/O (Input/Output) e V (visualizzazione), per le variabili di I/O nominate. All accensione del sistema di controllo, l ascensore può partire da un piano qualsiasi, e solo la prima volta deve eseguire la fase di inizializzazione che consiste in : Chiusura delle porte (bisogna effettuare il controllo presenza passeggero) Discesa LENTA fino al piano terra, l ascensore raggiunge il finecorsa inferiore, poi risale fino al primo Sensore di piano che incontra. Apertura porte. Stato di attesa. Si presuppone che il sistema conosca a priori il numero di piani da gestire. Quando l ascensore si muove dal piano corrente al piano destinazione, le operazioni da effettuare sono le seguenti: Attesa di 2 secondi, chiusura delle porte (con gestione presenza passeggero nella zona delle porte), movimento LENTO fino al segnale di fine rampa del piano di partenza, movimento VELOCE, aggiornamento del piano corrente, movimento lento in prossimità del piano di destinazione (sensore di inizio rampa), arresto al piano ed attesa di due secondi, apertura porte ed attesa di 5 secondi. Gestione del pulsante Emergenza e del funzionamento dell impianto in tale condizione. Nell ascensore è presente un pulsante di Emergenza (variabile Emergenza) che può essere premuto dai passeggeri all interno della cabina per segnalare una situazione anomala. A seguito di una pressione del pulsante Emergenza il sistema si deve portare al più presto in una condizione di sicurezza che consenta l uscita dei passeggeri e deve sospendere il servizio delle altre chiamate (che dovranno essere comunque memorizzate) sino a che lo stesso pulsante non viene ripremuto. Gestione LED dell interfaccia utente. Diagnostica: Si presuppone che tra i sensori e gli attuatori dell impianto si possano guastare solo i sensori di rampa e piano. Il Controllo di Sequenze dovrà rilevare e gestire tali guasti secondo una politica opportuna decisa in fase di progetto. I segnali SensoreN, RampaNSu e RampaNGiu, con N = 0..7, sono ingressi del modello di simulazione utilizzati per imporre i guasti. Ovviamente sono da considerare inaccessibili per il Controllo di Sequenze. Per ottenere ulteriori chiarimenti sul significato dei segnali presenti e sul funzionamento non controllato dell impianto, si può fare riferimento al codice utilizzato per simulare l impianto stesso e contenuto in AscensoreSingolo.pro 2
Descrizione delle variabili di I/O (Input/Output) e V (visualizzazione) Variabili di Input: Aperta: BOOL; (*Sensore porta aperta (fine corsa)*) Chiusa: BOOL; (*Sensore porta chiusa (fine corsa)*) FineGiu: BOOL; (*Sensore fine corsa inferiore*) FineSu: BOOL; (*Sensore finecorsa superiore*) SensorePiano: BOOL; (*Sensore che dice se sono a un piano*) SensoreRampa: BOOL; (*Sesnore che indica la presenza di una rampa*) Presenza :BOOL; (*Sensore se c'è qualcuno tra le porte*) Emergenza: BOOL; (*Pulsante emergenza*) PT: BOOL; (*Pulsante INTERNO chiamata piano terra*) P1: BOOL; (*Pulsante INTERNO chiamata primo piano*) P2: BOOL; (*Pulsante INTERNO chiamata secondo piano*) P3: BOOL; (*Pulsante INTERNO chiamata terzo piano*) P4: BOOL; (*Pulsante INTERNO chiamata quarto piano*) P5: BOOL; (*Pulsante INTERNO chiamata quinto piano*) P6: BOOL; (*Pulsante INTERNO chiamata sesto piano*) P7: BOOL; (*Pulsante INTERNO chiamata settimo piano*) SuPianoT: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano1: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano2: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano3: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano4: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano5: BOOL; (*Pulsante chiamata pulsantiera esterna*) SuPiano6: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano7: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano6: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano5: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano4: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano3: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano2: BOOL; (*Pulsante chiamata pulsantiera esterna*) GiuPiano1: BOOL; (*Pulsante chiamata pulsantiera esterna*) Variabili di Output: Chiudi: BOOL; (*Comando per chiudere porta*) Apri: BOOL; (*Comando apertura porta*) Motore: BOOL; (*Comando azionamento motore*) Su: BOOL; (*Direzione del motore 1 va verso l'alto 0 va verso il basso*) Vel: BOOL; (*Velocità ascensore, se 1 velocità alta, se 0 velocità bassa*) Variabili di Visualizzazione: Corrente: INT; (*Variabile dove salvare il piano corrente*) Destinazione: INT; (*Variabile dove salvare la destinazione dell'ascensore*) EmergenzaVis: BOOL; (*Per visualizzare emergenza*) PTVis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P1Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P2Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) 3
P3Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P4Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P5Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P6Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) P7Vis: BOOL; (*Visualizzazione LED pulsantiera INTERNA*) SuPianoTVis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano1Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano2Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano3Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano4Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano5Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) SuPiano6Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano7Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano6Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano5Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano4Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano3Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano2Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) GiuPiano1Vis: BOOL; (*Visualizzazione LED pulsantiera ESTERNA*) FaultSensoreAlarm: BOOL; (*LED per segnalare che c'è un fault su un sensore*) FaultRampaAlarm: BOOL; (*LED per segnalare che c'è un fault su una rampa*) LED visualizzazione Fault ed emergenza LED pulsantiera interna Pulsanti per simulare guasti su sensori e rampe Pulsantiera esterna LED pulsantiera esterna Pulsantiera interna 4
Le variabili di input che possono essere lette per gestire il controllo, sono quelle riportate sopra, le altre variabili, come ad esempio Sensore1, sono variabili di ausilio alla simulazione e non possono essere usate nella gestione del controllo. I pulsanti per simulare i guasti sui sensori e sulle rampe, sono pulsanti che se premuti indicano che c è un guasto su un determinato sensore o rampa, questa variabile collegata al pulsante non può essere letta dalla logica di controllo, questa variabile serve per simulare l avvenuta di un guasto, serve per interagire con il sistema quando è in simulazione. La logica di controllo dovrà ricavarsi dal funzionamento del sistema che è avvenuto un guasto. 5