Indice

Simulazione ministeriale seconda prova 2018

Risorse

Operazioni preliminari

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

Consideriamo il testo proposto e proviamo a ricavare le specifiche.

Comando:

Ingressi:

Uscite:

Ipotesi aggiuntive:

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:

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:

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

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:

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:

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à):

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:

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

Osservazioni su quanto consegnato

In ordine sparso:

Voti e osservazioni sul compito

Torna all'indice.

1)
ad esempio questo
2)
vedere questa scheda integrativa sui comparatori