Processo di Miscelazione

Le specifiche relative al sistema da progettare sono nella terza parte del file seguente:

Premi per scaricare il file prova.java Specifiche.pdf 98 KB

Dopo aver letto le specifiche passiamo ad analizzarle nel dettaglio. In fondo alla pagina troverai il link al file contenete i sorgenti del programma completato. 

Le specifiche chiedono di compiere i seguenti passi:

  1. Aprire V1 e V2 per caricare solvente e reagente
  2. Chiudere V1 dopo un tempo t dall’apertura
  3. Chiudere V2 dopo un tempo 2t dall’apertura
  4. Azionare MIX e aprire V4
  5. Dopo 10 secondi dall’apertura di V4, aprire V3 e accendere M1
  6. Estrarre 600 cm3 dal serbatoio
  7. Spegnere M1 e chiudere V3 e V4

 

Il primo conto da svolgere è quello per il calcolo del valore corretto del tempo t.  
Le specifiche indicano che la portata in uscita dai serbatoi è 10 cm3/s e il valore del livello dopo t secondi dev’essere 600cm3/s.

Considerando che la portata in ingresso al serbatoio è doppia nei primi t secondi, ne risulta la seguente equazione:

20*t + 10*t = 600 

30*t = 600 

t=20 

Quindi V1 deve rimanere aperta 40 secondi mentre V2 solo 20.

Tutte le valvole, MIX e M1 sono ovviamente valori booleani, anche l’indicatore di livello LD1 è booleano (in quanto simula il comportamento del sensore).
TIM1, TIM2, TIM3 sono gli indicatori di fine operazione associati rispettivamente a:

  • TIM1=TRUE sse V1 è rimasta aperta per 40 secondi
  • TIM2=TRUE sse V2 è rimasta aperta per 20 secondi
  • TIM3=TRUE sse l’estrazione della miscela è stata completata

Valori booleani speciali sono i valori di comando START e STOP i quali fanno rispettivamente iniziare e terminare la sequenza.

NOTA: STOP interrompe bruscamente la macchina ed è necessario riavviare il programma per riprendere il corretto funzionamento.

Stop pone a TRUE la variabile booleana ausiliaria ARRESTO.

Occorre anche una variabile che memorizzi il valore del livello di liquido in ogni istante, tale variabile è LEVEL, ovviamente di tipo intero.

Quando LEVEL scende a 0, l’indicatore di livello LD1 assume il valore FALSE, ad indicare che non c’è più liquido nel serbatoio.

Per il calcolo del valore di LEVEL, introduciamo due variabili ausiliarie CONTATORE1 e CONTATORE2 di tipo timer. Esse servono a memorizzare il tempo trascorso dall’avvio della sequenza e corrispondono linearmente alla quantità di solvente e reagente introdotte nel serbatoio. Esse infatti vengono incrementate dai contatori che regolano TIM1 e TIM2.

LEVEL non sarà altro che la somma, istante per istante delle quantità introdotte da ciascun serbatoio.

NOTA: CONTATORE1 e CONTATORE2 esprimono i millisecondi contati dal timer che le aggiorna, quindi per ottenere il valore corretto di cm3 introdotti, bisogna dividere il loro valore per 1000. 

A partire da queste considerazioni, una possibile rappresentazione del sistema con il Ladder Diagram di Isagraf è quella contenuta nel file seguente:

Premi per scaricare il file prova.java MixProc.zip 32.4 KB

Analizziamola:

  1. Inizializzazione della sequenza: simula il comportamento di un flip-flop SR in cui lo START gioca il ruolo del SET e V3 quello del RESET. La variabile così impostata è AUX. Essa assumerà il valore TRUE dopo che è stato premuto START e lo manterrà finché V3 non  viene attivata.
  2. Controllo del timer TIM1: attende 40 secondi dal momento in cui AUX diventa TRUE e poi pone TIM1 a TRUE.
  3. Controllo del timer TIM2: attende 20 secondi dal momento in cui AUX diventa TRUE e poi pone TIM2 a TRUE.
  4. Controllo della valvola V1: pone V1 a TRUE se la sequenza è stata attivata e se TIM1 non è ancora diventato TRUE.
  5. Controllo della valvola V2: pone V2 a TRUE se la sequenza è stata attivata e se TIM2 non è ancora diventato TRUE.
  6. Controllo LEVEL crescente: esegue la somma tra le quantità di liquido versate nel serbatoio, trasforma tale valore in cm3 e imposta il valore di LEVEL.
  7. Controllo LD1: pone LD1 a TRUE se il serbatoio non è vuoto. NOTA: nella rappresentazione grafica il valore di LD1 è invertito per motivi a me ignoti.
  8. Controllo MIX: Aziona MIX quando TIM1 e TIM2 si sono verificati.
  9. Controllo V4: Apre V4 quando TIM1 e TIM2 si sono verificati.
  10. Controllo V3: Apre V3 dopo 10 secondi dall’apertura di V4.
  11. Controllo M1: Aziona M1 contemporaneamente a V3.
  12. Controllo TIM3: Pone TIM3 a TRUE quando la sequenza di estrazione si è conclusa.
  13. Arresto d’emergenza: Blocca la macchina in corrispondenza della pressione del tasto STOP.

 

   Automazione

Boh