Anteprima
Vedrai una selezione di 5 pagine su 20
Automazione dei processi industriali - Sequential Function Chart   Pag. 1 Automazione dei processi industriali - Sequential Function Chart   Pag. 2
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Automazione dei processi industriali - Sequential Function Chart   Pag. 6
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Automazione dei processi industriali - Sequential Function Chart   Pag. 11
Anteprima di 5 pagg. su 20.
Scarica il documento per vederlo tutto.
Automazione dei processi industriali - Sequential Function Chart   Pag. 16
1 su 20
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

SINCRONIZZAZIONE DI SEQUENZE INDIPENDENTI: ESEMPIO

Un altro esempio in cui viene utilizzato il semaforo è quando si vogliono sincronizzare due sequenze indipendenti.

Suppongo di avere un impianto chimico dove ci sono da fare delle operazioni: inserisco il liquido1 e il liquido2 in maniera contemporanea per un tot di unità; appena è terminato l'inserimento del liquido1 siccome la sostanza clinica in questione è problematica, occorre pulire la tubazione. Dopo che ho finito di pulire la tubazione e ho finito di inserire entrambi liquidi, posso inserire il liquido3. Il problema è che ho due oggetti che fanno i comodi loro (inserimento liquido1 e 2), ma l'altro stato successivo ha bisogno che entrambi siano finiti. Questo vuol dire che devo sincronizzare queste due sequenze che vanno ognuna per i fatti propri. Questo si fa tramite un semaforo.

SINCRONIZZAZIONE DI SEQUENZE INDIPENDENTI: PROBLEMATICA

Quello che voglio imporre è per...

esempio che posso passare da 4 a 5 e da 12 a 13 solo quando entrambe le due sequenze sono arrivate nello stato che voglio sincronizzare. Quindi 12 non va in 13 se 4 non è diventato attivo, viceversa 4 non va in 5 se 12 non è diventato attivo (4 e 12 vuol dire che ho finito di versare i due liquidi). Le condizioni non sono sufficienti per imporre una forma di sincronizzazione perché sono dei meccanismi slegati, cioè la verità o la falsità di una condizione non è strettamente legata al fatto che lo stato precedente sia attivo o meno, che è la cosa che interessa per fare la sincronizzazione, per gestire per esempio anche le zone condivise. Sono in 3 ma la condizione T4-5 può diventare vera indipendentemente dal fatto che io stia andando in 4, ma T4-5 in realtà non serve per gestire il passaggio; quindi T 4-5 è vera e T12-13 è vera non avviene nessuna transizione ma quando T4-5 diventa falsa e io sono ancora in 3, non

è vero che devo sincronizzarli ma in realtà questa condizione diventa vera perché T4-5 è falso, T12-13 è vera e questo implicherebbe il passaggio da 12 a 13.

SINCRONIZZAZIONE DI SEQUENZE INDIPENDENTI: SOLUZIONE CON SEMAFORO SLIDE26

Questo problema si risolve forzando la struttura semaforica che per via della presenza dello stato del semaforo, imponendo il passaggio da un ulteriore stato dell’SFC, impone la sincronizzazione. Abbiamo quindi un parallelismo e una sincronizzazione che sono i nostri due blocchi di una struttura di interconnessione di tipo parallelismo. Supponiamo di essere in una situazione di prima, ho lo stato 3 e 12 attivi e vorrei fare in modo che le sequenze si sincronizzassero. Posso passare da 12 in 13 con la condizione T12,13 attiva. Con una struttura di questo tipo, la transizione da 12 a 13 è legata al fatto di questa qua sia vera, ma anche che lo stato S sia vero. Lo stato S è attivo solo quando ho eseguito lo stato 4. Quando 4

diventa attivo succede cheda 4, per parallelismo, ho abilitato latransizione e quindi posso passare in 5e in S. La cosa interessa è che questo semaforo implica che 4 è arrivato dovedeve arrivare; quindi, a questo punto posso fare la transizione da 12 a 13perché sono sicuro che sono arrivato in 4 e quindi mi permetto di fare unoscorrimento verso 13. A differenza della struttura del semaforo per la mutuaesclusione delle sequenze, qui lo stato semaforico non deve essere mai unostato iniziale, altrimenti vanifico il meccanismo di sincronizzazione. Prima c'eraun'unica struttura parallelismo-sincronizzazione qua ce ne sono due, questo inqualche modo mi obbliga ad avere la stato iniziale attivo con il semaforo.

GERARCHIE TRA SFC: ESEMPIOSLIDE27

L'ultima problematica che guardiamo per SFC è quello legata alla gerarchia. In tutti i sistemi operativi, qualsiasi programma si lanci, il sistema operativogenera un clone di un programma di esecuzione e

riassegna il programmastesso su questo clone; quindi in realtà avviene per gemmazione di un processo già attivo che viene prima copiato e poi viene inizializzato. Qui il concetto è analogo e viene utilizzato per la generazione di "figli", è importante perché permette di programmare in maniera più facile. In questo esempio si deve controllare un nastro trasportatore attivato da un motore elettrico su cui scorrono delle scatole. Abbiamo la possibilità di fare due cose: azionare il movimento del nastro tramite il comando Nastro e abbiamo un sensore che permette di rilevare o meno la presenza della scatola nella posizione che ci interessa; quando arriva davanti alla fotocellula in presenza della condizione ScatolaP vera, si deve fermare il nastro e fare qualche operazione. Quindi c'è un sensore di misura che rileva il caso in cui la scatola risultasse difettosa e poi c'è l'attuatore che di fatto prende e loporta altrove. Inoltre, afianco a questo procedimento che chiameremo nominale, c'è una procedura di allarme; per cui, se per qualche motivo qualcuno si accorge di un problema di sicurezza, può scatenare un evento (allarme) che, indipendentemente da quello che sta succedendo, deve fermare il nastro e accendere una luce di emergenza.

SLIDE28

Per modellare questo tipo di situazione con un SFC vediamo una soluzione che chiameremo "senza strutturazione". Abbiamo lo stato iniziale 1 (doppio quadrato), per cui all'inizio si parte da lì e viene lanciato chiamando Nastro. Il comando Nastro è di tipo Non-store, quindi va ad oltranza. Avviene una scelta che è data da due rami che hanno delle condizioni mutuamente esclusive; avviene la scelta in funzione del segnale scatolaP che dice "pacco presente": se il pacco non è presente non ci si muove e il nastro continua ad andare; se il pacco è presente faccio qualcosa. Affianco a questo,

prevedo la possibilità che possa essere acceso un allarme (situazione iniziale), se l’allarme è vero devo andare nella sezione di destra, per cui accendere una luce di emergenza finchè non viene disattivato l’allarme.

Se invece c’è la scatola e non c’è l’allarme attivo faccio qualcosa (stato2) fino a quando non c’è più la scatola o scatta l’allarme.

scatolaP notscatolaP

Anche in questo caso le condizioni e sono mutuamente esclusive. Se scatta l’allarme e c’è una scatola allora viene accesa una luce di emergenza finché non viene spento l’allarme.

Il problema di questo SFC è legato al fatto che si dovrebbe evidenziare una certa non strutturazione perché c'è un pezzo di codice ripetuto, cioè vuol dire che ci sono una serie di operazioni che potrei evitare di replicare nella rappresentazione. Supponiamo che anziché ne abbia 2 io ne abbia

molti di più, dal punto di vista tecnico se per qualche motivo devo alterare la procedura delle luci d'emergenza e anziché farne due anziché e devo anche mettere un segnale acustico, capite che se io anziché avere due pezzi nell'SFC ne ho molti di più devo andare a toccare 100 pezzi e naturalmente suggerisce che forse una soluzione più smart potrebbe aiutarmi. SLIDE29 Vediamo come si possono complicare le cose. Nella versione base semplicemente non verifico nulla, nella versione più sofisticata introduco un'ulteriore complicazione al modello, cioè aggiungo una specifica al comportamento di quello che sta facendo la mia macchina automatica. Gestisco il sensore di misura che testa gli oggetti con qualche criterio. Per esempio, una telecamera capace di identificare la forma e le dimensioni dell'oggetto stesso. Questo sensore di misura restituisce un segnale "ok" che è vero o falso in funzione del fatto che

Il pezzo viene controllato per verificare se è conforme alle specifiche imposte. Se non è conforme, il pezzo viene evacuato attivando un altro attuatore che lo elimina. L'attuatore viene azionato tramite l'azione "elimina". Risulta complicato modificare la soluzione precedente perché sarebbe una versione legata a quella precedente in cui ho aggiunto dei pezzi.

Nella slide 30, in alto è rimasto uguale, 1, 2 e 3 sono identici. Sono nello stato 1 nominale che è attivo, poi in presenza dell'allarme o non allarme faccio due cose se la scatola è presente; quando la scatola è presente non c'è l'allarme situazione nominale, se invece scatta l'allarme emergenza. Invece quando la scatola c'è, ho chiesto di misurare la e mi restituisce il valore della condizione ok o non ok; accendo la telecamera, misuro le dimensioni dell'oggetto, le confronto con lo standard imposto ecc: se il pezzo è conforme allora

continuo ad andare e finire finché l'ascatola non va via dal sensore e non c'è l'allarme; se mentre sto cacciando viascatta l'allarme, allora accendo la luce d'emergenza; se invece il pezzo non era conforme e non c'era l'allarme, deve fare l'eliminazione perché il pacco non è conforme quindi devo accendere l'attuatore che prende il pacco e lo butta via (comando elimina). Dal punto di vista del sensore, l'informazione che viene rilevata è che non c'è più il pacco davanti alla fotocellula, almeno che non scatti l'allarme perché l'operatore ha fatto scattare l'allarme. C'è molta ridondanza perché tutte le volte che devo introdurre la gestione dell'allarme, devo aggiungere delle condizioni mutuamente esclusive e questo in qualche modo dovrebbe far presagire che c'è un minimo di inefficienza in questo disegno. Fa esattamente il lavoro che ciQuello che stiamo proponendo permette di agevolare lo sviluppo e la manutenzione del codice in maniera più sistematica, nonché per evitare errori perché se esiste un'unica procedura replicata via software 50 volte è diverso che programmare 50 volte in maniera uguale. Quindi si utilizza la gerarchia SFC. L'SFC padre può generare e controllare SFC figli. L'SFC figlio tecnicamente è un altro SFC, è un programma a sé stante che in maniera completamente autonoma una volta che viene attivato. È autonomo nel senso che le operazioni possono essere completamente sganciate da quello che sta facendo l'SFC padre, ma è sotto la potestà del padre che in qualsiasi momento può.
Dettagli
Publisher
A.A. 2022-2023
20 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/04 Automatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher mvezzani di informazioni apprese con la frequenza delle lezioni di Automazione dei processi industriali e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Notarnicola Ivano.