Strumenti Utente

Strumenti Sito


simulazione2018

Simulazione ministeriale seconda prova 2018

Risorse

Operazioni preliminari

Per prima cosa occorre leggere attentamente il testo e individuare le specifiche:

  • comandi dell'operatore: start, stop, emergenza, ecc.
  • ingressi: sensori impiegati e relative caratteristiche (analogici/digitali)
  • uscite: attuatori impiegati e relativo pilotaggio
  • sequenza delle operazioni
  • allarmi, emergenze e condizioni anomale di funzionamento
  • leggere con la massima attenzione le consegne indicate per punti
  • stabilire eventuali ipotesi aggiuntive o semplificative

Consideriamo il testo proposto e proviamo a ricavare le specifiche.

Comando:

  • assente perché il sistema è completamente automatico (non è previsto l'intervento dell'operatore)

Ingressi:

  • sensore di umidità
    • funzionamento a soglia e campo di valori intorno al 40%
    • può avere un'uscita analogica (proporzionale al tasso di umidità) ma si può pensare ad un condizionamento che produca un valore digitale che segnali il superamento o meno di una soglia (più semplice)
  • sensore di temperatura:
    • campo di temperatura 0-50°C
    • uscita analogica
    • tre soglie: 18°C, 20°C e 22°C
  • finecorsa guida vaporizzatore

Uscite:

  • vaporizzatore con
    • pompa azionata da motore
    • movimento avanti/indietro con un altro motore e finecorsa ai due estremi della guida
  • piastre riscaldanti elettriche
  • due ventole di aerazione
  • 6 lampade (accese a gruppi di due)

Ipotesi aggiuntive:

  • controllo tramite PLC
  • visto che un funzionamento è a soglia su userà un sensore di umidità analogico e un circuito di condizionamento con comparatore per aver un'uscita digitale
  • date le ridotte dimensioni della serra si ritengono sufficienti un solo sensore di temperatura e uno di umidità (eventualmente più sensori dello stesso tipo e valore medio ricavato con un sommatore non invertente con operazionale)
  • due ventole di areazione ai due estremi della serra azionate da due motori comandati dallo stesso segnale
  • considerata la bassa potenza in gioco si utilizzeranno motori e attuatori alimentati con tensione di rete monofase sicuramente disponibile; il comando avverrà tramite contattori o relè azionati dal PLC

Punto 1

Schema a blocchi del sistema acquisizione dati e sua descrizione.

schema a blocchi

Considerato il funzionamento a soglia verrà utilizzato un sensore di umidità analogico1) con un circuito di condizionamento a comparatore per segnalare il superamento della soglia del 40% con un segnale digitale (livello alto o basso di tensione).

Considerato il campo di temperatura ridotto, la facilità di utilizzo e la linearità si decide di impiegare il sensore di temperatura integrato LM35 con un circuito di condizionamento che adatti il segnale al range di tensione in ingresso del PLC (0-10 Volt).

I due finecorsa meccanici aprono un contatto normalmente chiuso quando attivati.

Le uscite sono tutte digitali:

  • due per il comando avanti/indietro del motore del vaporizzatore
  • una per la pompa del vaporizzatore
  • una per il comando dei due motori delle ventole
  • una per azionare le piastre riscaldanti
  • tre per accendere i tre gruppi di lampade

Punto 2

Caratteristiche dei sensori e loro condizionamento.

L'LM35 ha un'uscita in tensione e fornisce 10mV per ogni grado centigrado. Il segnale può essere condizionato con un circuito con amplificatore non invertente per avere 0V a 0°C e 10V a 50°C (si ipotizza che la precisione sia sufficiente). Il guadagno richiesto è 20 ed è ottenibile con due resistenze da 1k e 19k.

condizionamento lm35

In mancanza di un catalogo da cui scegliere il sensore analogico di umidità si ipotizza di avere un segnale in tensione tra 0 e 10 Volt. Un circuito con comparatore con una tensione di soglia di 4 Volt nell'ingresso non invertente produce un livello alto di tensione quando il tasso di umidità scende sotto il 40%. L'uso di un comparatore con uscita a collettore aperto (ad esempio l'LM311 2) ) permette di fissare il livello alto di tensione al valore richiesto dal PLC (24V producono il valore logico 1).

condizionamento sensore umidità

Usare un operazionale al posto del comparatore complica le cose perché bisogna sceglierne uno che funzioni con alimentazione singola (per motivi pratici e per avere il livello basso a 0V invece che a -Vcc) e adattare il segnale in uscita con un traslatore di livello che porti la tensione a 24V (si può fare con un BJT ma il comportamento è invertente, con un inverter oper-collector, con un comparatore tipo l'LM339… ma a quel punto tanto valeva usarlo subito).

Finecorsa meccanici con contatti normalmente chiusi (in mancanza di corrente comandano l'arresto del motore) da collegare direttamente agli ingressi del PLC.

Punto 3

Algoritmo di gestione dell'impianto.

Si individuano tre comandi indipendenti per lampade, vaporizzatore e riscaldamento/areazione. Il sistema di automazione non è propriamente sequenziale e si può pensare di gestire separatamente, con tre funzioni del programma, lampade, temperatura e umidità.

Per le lampade, usando la variabile che contiene l'ora dell'orologio di sistema, si comandano le uscite con delle istruzioni di comparazione:

  • 00 ≤ ora < 5: tre uscite attive
  • 5 ≤ ora < 8: due uscite attive
  • 8 ≤ ora < 18: una uscita attiva
  • 18 ≤ ora < 00: due uscite attive

Si usa la variabile che contiene il valore della temperatura, ottenuta tramite l'ingresso analogico, con delle istruzioni di comparazione:

  • comparatore con isteresi con soglie 18°C e 20°: attivazione piastre riscaldanti
  • comparatore con isteresi con soglie 20°C e 22°: attivazione ventole areazione

La gestione dell'umidità prevede un ciclo più complesso con un contatore all'indietro e dei consensi. Si può fare a stati o con un contatore. Con contatore all'indietro un possibile algoritmo è questo:

  • se l'umidità scende sotto il 40%, il conteggio è terminato e il vaporizzatore è a inizio guida si comincia il conteggio all'indietro (da 2 a 0)
  • ogni volta che il vaporizzatore arriva in fondo alla guida si decrementa il conteggio (dopo due corse avanti-indietro il conteggio è zero)
  • se il conteggio non è terminato e il vaporizzatore è a inizio guida si setta la marcia avanti (con memoria)
  • se il vaporizzatore è in fondo alla guida si setta la marcia indietro (con memoria)
  • i due finecorsa resettano la marcia avanti e la marcia indietro indietro
  • il motore della pompa si avvia durante la marcia avanti o indietro

L'inversione del motore monofase si fa con due teleruttori come mostrato qui.

Punto 4

In una prova scritta non è possibile ricordare tutte le funzioni, le istruzioni e le impostazioni di un PLC. Probabilmente è preferibile una soluzione generica che consideri le istruzioni comuni a tutti i PLC (contatti, bobine, temporizzatori, ecc.). Per funzionalità particolari (orologio hardware, ingressi analogici, ecc.) si faranno ipotesi aggiuntive che permettano di scrivere una soluzione generica.

Una possibile tabella di indirizzamento per ingressi e uscite è la seguente (questa va certamente indicata, se non altro come legenda per interpretare un eventuale programma in ladder dove si riporteranno solo i nomi simbolici o solo gli indirizzi).

nome indirizzo commento
FC1I0.0finecorsa NC inizio guida vaporizzatore
FC2I0.1finecorsa NC fine guida vaporizzatore
B1I0.2umidità minore del 40%
TEMPIW64segnale analogico temperatura (int tra o e 24678)
KM1Q0.0contattore marcia avanti motore vaporizzatore
KM2Q0.1contattore marcia indietro motore vaporizzatore
KM3Q0.2contattore motore pompa vaporizzatore
KM4Q0.3contattore piastre riscaldanti
KM5Q0.4contattore motore ventole
EL1Q0.5lampade 1 e 2
EL2Q0.6lampade 3 e 4
EL3Q0.7lampade 5 e 6

Questa tabella va completata aggiungendo i merker utilizzati nella propria soluzione. Ad esempio:

nomeindirizzocommento
VENTOLEM2.0attivazione ventole con isteresi
PIASTREM2.1attivazione piastre con isteresi
CNT_ENM2.2merker che abilita il conteggio da 2 a 0
CNT_OUTM2.3merker conteggio terminato
ERR_TIMEMW3codice errore lettura orologio HW (int)
T_NORMMD5temperatura normalizzata 0-1 (real)
T_GRADIMD9temperatura in gradi (real)

Si può pensare di affidare il comando dei tre tipi di attuatori a tre funzioni distinte: una per le lampade, una per il vaporizzatore e una per ventole e piastre.

Programma per PLC:

  • non esiste il blocco che realizzi un comparatore con isteresi, ma basta usare un blocco SR (set-reset con reset dominante) e delle istruzioni di confronto per ottenere il comportamento desiderato (superata una soglia si setta l'uscita, scendendo sotto l'altra soglia si resetta)
  • in alternativa si può implementare l'isteresi nel circuito di condizionamento con un trigger di Shmitt e usare 2 segnali digitali (uno per le piastre e uno per le ventole) al posto di un unico segnale analogico per la temperatura

Una possibile soluzione è contenuta in questo file zip.

Soluzione alternativa del 2024

Variante con contatore 2019

Una possibile soluzione per la gestione del sistema di umidificazione con un contatore (diversa da quella del progetto zippato) è mostrata in figura:

vaporizzatore con contatore

La logica è questa (in questo esempio i finecorsa sono normalmente aperti per semplicità):

  • quando l'umidità è meno del 40% (UMID alto) e se il conteggio è a zero si setta la pompa del vaporizzatore (M_VAP)
  • il vaporizzatore si spegne e il conteggio si azzera dopo che il carrello è tornato due volte al punto di partenza (FC1)
  • il finecorsa alla partenza arresta il movimento all'indietro (M_IND) e fa ripartire in avanti il carrello (M_AV) se il vaporizzatore è attivo
  • il finecorsa in fondo arresta il movimento in avanti (M_AV) e fa tornare indietro il carrello (M_IND)

Variante SFC

Per la gestione delle lampade e di ventole/piastre non serve usare la programmazione per passi - non c'è una vera e propria sequenzialità nel controllo - ma per la gestione del vaporizzatore potrebbe essere conveniente. Una possibile soluzione con diagramma SFC è la seguente (vedi appunti su SFC):

SFC gestione vaporizzatore

La codifica in ladder potrebbe non essere nemmeno richiesta; SFC infatti non è solo un formalismo per descrivere automi sequenziali ma anche un vero e proprio linguaggio di programmazione per PLC (per Siemens solo nei modelli S7-1500). Volendo tradurre da SFC a ladder si procede come indicato negli appunti:

  • il merker firstscan imposta lo stato iniziale e resetta tutti gli altri
  • cinque merker di passo, attivi uno alla volta, individuano la sequenza degli stati
  • le transizioni da uno stato al successivo dipendono dallo stato dei finecorsa (la prima anche dal segnale del sensore di umidità)
  • ad ogni transizione si resetta lo stato corrente e si attiva il successivo
  • la gestione delle uscite si fa a parte con un segmento per uscita, attivata dai merker di passo (in OR se attiva in più di uno stato) con una bobina semplice

Si ricorda che la programmazione per passi, oltre ad essere più robusta, è anche più semplice da implementare.

Osservazioni su quanto consegnato

In ordine sparso:

  • LA LEGGIBILITÀ PRIMA DI TUTTO! Quindi non risparmiare sulla carta, andare a capo, la lettura non deve essere una caccia al tesoro per capire qual è il passaggio successivo
  • la tabella con nomi simbolici e loro descrizione deve essere presente, preferibilmente all'inizio
  • non indicare blocchi e funzioni particolari del programma in TIA Portal (NORM_X, SCALE_X, orologio, ecc.) perché non è possibile ricordarle a memoria durante la prova scritta; al loro posto:
    • una spiegazione in due righe (ad esempio “il valore numerico generato dal convertitore ADC del PLC viene convertito in un valore reale compreso tra 0 e 50 contenuto nella variabile TEMP_GRADI”, oppure “il PLC contiene un orologio hardware che viene letto con un'istruzione; i dati riferiti all'orario sono disponibili come variabili in una struttura dati; utilizzeremo la variabile di tipo intero che contiene l'ora”)
    • oppure un blocco generico (ad esempio un blocco “lettura orologio” con in uscita una variabile “ora” o un blocco “ingresso analogico” con in uscita una variabile “temp_gradi”)
  • il diagramma SFC deve essere comprensibile; se si usano dei passi indicare a quale stato dell'automatismo corrispondono (breve descrizione… una riga al massimo); l'SFC potrebbe essere parte del punto 3, che chiede di descrivere l'algoritmo
  • non usare bobine S e R se non serve (lampade)
  • spiegare cos'è firstscan se lo si usa (“contatto che si chiude solo quando la CPU passa da STOP a RUN”)

Voti e osservazioni sul compito

Torna all'indice.

1)
ad esempio questo
2)
vedere questa scheda integrativa sui comparatori
Questo sito Web utilizza i cookie. Utilizzando il sito Web, l'utente accetta la memorizzazione dei cookie sul proprio computer. Inoltre riconosci di aver letto e compreso la nostra Informativa sulla privacy. Se non sei d'accordo, lascia il sito.Maggiori informazioni sui cookie
simulazione2018.txt · Ultima modifica: 2024/02/26 11:01 da admin