Maturità - 2004 Sistemi

M048 - ESAME DI STATO DI ISTITUTO PROFESSIONALE

Sessione ordinaria 2004 - Seconda prova scritta

CORSO DI NUOVO ORDINAMENTO

Indirizzo - TECNICO DELLE INDUSTRIE ELETTRONICHE

Tema di: SISTEMI, AUTOMAZIONE E ORGANIZZAZIONE DELLA PRODUZIONE

Un sistema a microprocessore controlla un dispositivo automatico di apertura e chiusura di un cancello, mediante l’impiego di porte di ingresso e di uscita opportunamente interfacciate.

li sistema si compone essenzialmente di:

  1. un motore, che può ruotare nel due sensi per consentire l'apertura o la chiusura dei cancello;
  2. due interruttori di fine corsa, che si chiudono rispettivamente a cancello completamente aperto e completamente chiuso;
  3. un sensore di prossimità che segnala la presenza di qualcuno nei pressi del cancello.

Il candidato, formulate le dovute ipotesi aggiuntive, determini:

  1. un diagramma a blocchi che descriva l'intero sistema;
  2. diagrammi dettagliati illustranti le soluzioni proposte per l'interfacciarnento di sensori e attuatori;
  3. lo schema di utilizzo delle porte di I/0 impiegate;
  4. un diagramma degli stati che descriva il funzionamento del sistema, o in sua alternativa, un diagramma di flusso di tipo funzionale per il programma di controllo del sistema;
  5. la codifica dei software di controllo in un linguaggio di programmazione di sua conoscenza.

Durata massima della prova: 6 ore

E' consentito soltanto l'uso di manuali tecnici e di calciatrici lanciabili non programmabili.

Non è consentito lasciare l’istituito prima che siano trascorse 3 ore dalla dettatura del tema

________________________________________________

Soluzione by prof. Vittorio Crapella

IPOTESI AGGIUNTIVE:

Dovendo utilizzare un microprocessore intendo riferirmi al classico Z80-CPU con relativa porta I/O di tipo Z80-PIO.

Per quanto concerne il sensore di prossimità intendo utilizzare due barriere ad infrarosso disposte una nelle vicinanze interne ed una nelle vicinanze esterne al cancello.

Il sistema che intendo illustrare utilizzerà un motore monofase 230 Vac con doppio avvolgimento uno per marcia avanti e uno per marcia indietro.

Anche se non menzionato nella traccia del tema, reputo implicito l’esistenza dei pulsanti APRI, CHIUDI e STOP (rispettivamente P1, P2, P3).

Ritengo inoltre utile prevedere un lampeggiante, ai fini della sicurezza, che segnali il cancello in movimento.

SCHEMA A BLOCCHI:

Il microprocessore Z80-CPU (Central Pocessing Unit) dialoga con Z80-PIO (Port Input/Output) con un BUS bidirezionale a 8 BIT ( 1 Byte) e con le quattro linee di controllo è in grado di indirizzare i dati di I/O sulle due porte (PORTA-A e PORTA-B) del PIO.

Inoltre gestisce il BUS di indirizzamento a 16 BIT per la memoria RAM ed EPROM unitamente alle linee di controllo Read/Write, Enable e di Cip Select.

Nella RAM vengono depositati i dati o variabili utilizzate durante l’esecuzione delle rutines che implementano il diagramma di flusso che più avanti illustrerò. Nella EPROM (Erasable-Programmable-Read-Only-Memory) sarà caricato, con idoneo programmatore, tutto il SW per la gestione dell’intero sistema.

La PORTA-A viene utilizzata come INPUT mentre quella B come OUTPUT.

Gli INPUT sono in totale 7 così identificati:

  • FC1 fine corsa 1 che chiuderà verso massa del circuito restituendo un livello logico zero a cancello completamente CHIUSO;
  • FC2 fine corsa 2 che chiuderà verso massa del circuito restituendo un livello logico zero a cancello completamente APERTO;
  • B1 barriera all’infrarosso posizionata all’esterno del cancello che manterrà uno stato logico zero con fascio non tagliato da cose o da persone.
  • B2 barriera all’infrarosso posizionata all’interno del cancello che manterrà uno stato logico zero con fascio non tagliato da cose o da persone;
  • P1 pulsante (N.A. normalmente aperto) che restituirà un livello logico zero se premuto per la funzione APRI;
  • P2 pulsante (N.A. normalmente aperto) che restituirà un livello logico zero se premuto per la funzione CHIUDI;
  • P3 pulsante (N.A. normalmente aperto) che restituirà un livello logico zero se premuto per la funzione STOP;

I contatti meccanici tipo quello dei pulsanti o finecorsa possono dare impulsi di rimbalzo in fase di chiusura o apertura e in particolari applicazioni bisognerebbe ripulirli con circuito antirimbalzo tipo memoria Set e Rest.

In questa applicazione non è necessario in quanto il sistema recepisce il primo cambio di stato e agisce di conseguenza ignorando i rimbalzi.

Gli OUTPUT sono in totale 3 così identificati:

  • RL1 relè 1 che si eccita per la marcia APRI;
  • RL2 relè 2 che si eccita per la marcia CHIUDI;
  • L1 abilitazione lampeggiante per la segnalazione di movimento cancello;

Considerato che si dispone di altre 5 uscite libere, si potrebbe prevedere anche dei LED di segnalazione ad esempio:

  • LED che si accende per segnalare che il cancello è aperto;
  • LED che si accende per segnalare che il cancello è chiuso;
  • LED che si accende quando è interrotto il fascio della barra all’infrarosso 1;
  • LED che si accende quando è interrotto il fascio della barra all’infrarosso 2;

Per segnalare se sta aprendo o chiudendo metto un LED in parallelo alla bobina dei rispettivi relè (vedi schema a relè).

Ogni ATTUATORE (RL1 e RL2) verrà pilotato da un transistore che funge da BUFFER (adattatore del livello di tensione e di potenza).

Un contatto N.C. di un relè sarà utilizzato per realizzare l’iterblocco dell’altro relè ai fini di evitare che possano eccitarsi contemporaneamente in caso di mal funzionamento del sistema.

BARRIERA ALL’INFRAROSSO

Ogni barriera all’infrarosso sarà composta da una parte TRASMITTENTE e una RICEVENTE.

Per renderla capace di discriminare gli infrarossi del fascio del TX dagli infrarossi dovuti ad altre fonti, intendo adottare un circuito trasmettitore con diodo LED ad infrarossi pilotato da un segnale ad onda quadra.

Nella Parte ricevente userò un foto-diodo sensibile agli infrarossi come il BPW41 seguito da un amplificatore operazionale (vedi schema più avanti) per il condizionamento del segnale cosi da amplificarlo e renderlo continuo atto ad essere riconosciuto come un livello logico basso se c’è infrarosso oppure livello logico alto se non c’è infrarosso.

Il foto-diodo essendo accoppiato all’operazionale con capacità passeranno solo i segnali del fascio essendo alternati e di durata molto stretta e cioè

Xc = 1/ 2¶ F C bassa (quantitativo di Ohm pochi) mentre tutti i segnali all’infrarosso di intensità fissa o con variazioni lente saranno bloccati da una Xc elevata.

Infatti variazioni veloci corrispondono a F alta che essendo nella formula al denominatore danno, a parità di capacità, risultato piccolo.

Se si utilizza un duty-cycle asimmetrico cioè la durata dell’impulso con livello logico basso molto breve rispetto all’intero periodo, si potrà far passare nel diodo LED emettitore di infrarossi una corrente impulsiva molto elevata cosi da aumentare l’intensità emissiva istantanea potendo arrivare a coprire distanze maggiori necessarie in questo caso anche di 4 o 5 metri.

Per aumentare l’emissione di infrarossi si possono prevedere due o più LED.

SCHEMA TRASMETTITORE INFRAROSSI

Utilizzando un NE555, configurato come multivibratore astabile, si generano sul pin 3 impulsi con duty-cycle asimmetrico come già accennato precedentemente.





SCHEMA RICEVITORE INFRAROSSI

Con C1 scarico l’uscita pin 3 è alta e rimane tale fino a quando C1 si carica, attraverso R1 e R2 a due terzi di Vcc cioè circa 8 Volt, dopo di ché il pin 3 va basso a livello 0V.

Quando C1 si scarica al valore pari ad un terzo di Vcc cioè a 4 V l’uscita torna alta e C1 ricomincia una nuova carica.

Il tempo t1 è determinato dal prodotto della costante 0,693 per (R1+R2) e per C1 cioè t1=0,693 * 22150 *470 *10-9 = 7,2 mS

Il tempo t2 dipende dalla scarica di C1 che avviene attraverso R2 chiusa a massa dal pin 7 cioè t2=0,693 * 150 * 470 * 10-9 = 48,8 m S.

Come si vede t2 (tempo di emissione infrarossi) è molto piccolo rispetto a t1.

Il transistore Q1 essendo un PNP rimarrà interdetto per tutto il tempo t1 mentre potrà condurre ed alimentare così i due diodi LED che emetteranno il fascio all’infrarosso solo per il tempo t2 cioè per brevissimo tempo.

Quando Q1 è in conduzione ogni diodo LED fa una caduta di tensione di circa 2V pertanto sulla resistenza da 3,3 Ohm cadranno 12V-4V = circa 8V.

La corrente durante t2 sarà I=V/R = 8/3,3 = 2,4 A di picco che tradotto in valore medio è come se circolasse una corrente pari a

2,4 A * (48,8 m S/7,2 mS) = 16,6 mA che è un valore idoneo per pilotare dei LED senza danneggiarli.

Intendo attribuire un livello logico 0 d’uscita della barriera B1 e B2 quando questa riceve normalmente il fascio all’infrarosso.

Infatti quando il foto diodo sarà colpito dal fascio intermittente ad infrarossi, varierà la sua conduzione facendo variare il potenziale sulla resistenza da 150K e la capacità da 2,2 nF, che offrirà una reattanza bassa, porta tale variazione (ipotizzabile di pochi mV) sul pin 3 dell’amplificatore non invertente U2A che amplificherà 1+ Rb/Ra.

Dai valori di Rb ed Ra si osserva che il guadagno è molto elevato, pari a 1001. Ne consegue che sul pin 1 uscirà un segnale impulsivo di qualche volt di ampiezza picco picco.

Attraverso la capacità da 1nF questo segnale arriva a U2B, verrá cosí raddrizzato dal diodo 1N4148 e livellato dalla capacità da 10uF.

La tensione sul condensatore da 10 uF pertanto assumerà valori attorno a qualche volt sufficienti a polarizzare attraverso la resistenza da 3k3 il transistore BC237 che, saturando, porterà l’uscita sul suo collettore a livello basso di 0V.

BUFFER D’USCITA E ATTUATORI A RELÈ

Il più semplice buffer capace di adattare l’uscita TTL del PIO con il livello di tensione del relè a 12V e in grado di sopportare la corrente, dell’ordine dei 30/40 mA, necessaria alla bobina del relè per chiudere i suoi contatti, è un transistore con emettitore a massa come dal seguente schema completo di interblocco:

SCHEMA A RELÈ – COMANDO MOTORE



Considerato che il livello alto d’uscita del PIO è circa 5V ed ipotizzando un beta (guadagno di corrente) del transistore BC237 anche solo 50 e una corrente del relè di 40 mA, la corrente di base sarà Ib= 40 / 50 = 0,8 mA e pertanto la resistenza in serie alla base sarà:

Rb = (5 – 0,6) V / 0,8 mA = 5,5 KOhm (valore commerciale 5,6 K).

Il relè che si eccita per primo interrompe l’alimentazione all’altro evitando la possibilità che al motore possa giungere tensione ad entrambi gli avvolgimenti sia per la marcia di APERTURA che per quella di CHIUSURA.

CIRCUITO LAMPEGGIANTE

Volendo si potrebbe creare all’interno del microprocessore una routine che generi sull’OUTPUT una onda quadra per comandare direttamente un foto-triac che a sua volta pilota il TRIAC di potenza per il comando ad intermittenza di una lampada a 230Vac ma preferisco affidarmi ad un oscillatore esterno a porte logiche di tipo NAND ed usare il livello TTL del PIO come abilitazione o meno dell’oscillatore.

Infatti se questo livello è basso (zero) e va sul pin di un NAND basta per forzare l’uscita ad uno e tenere cosi bloccato l’oscillatore e cioè lampada spenta mentre se il livello del PIO va alto l’oscillatore è libero di oscillare e la lampada lampeggia.

SCHEMA DEL LAMPEGGIANTE

Come porte NAND uso un integrato C-MOS del tipo CD4011 che contiene 4 porte più che sufficienti per realizzare un oscillatore ad onda quadra idoneo a pilotare il foto-triac MOC3020.

Quando il PIO manda sul pin 2 del CD4011 un livello basso forza l’uscita 3 a livello alto come pure i pin 6 e 5 che a loro volta mandano a livello basso i pin 4, 8, 9, 12 e 13; di conseguenza i pin 11 e 10 vanno a livello alto così non potranno fornire corrente al LED del foto-triac e pertanto la lampada rimarrà spenta.

Se il PIO, a motore in movimento, manda alto l’USCITA che va al pin 2 dal 4011 ed essendo già il pin 1 a livello alto garantito dalla R, i livelli sulle uscite dei NAND si invertono, il LED del foto-triac riceve corrente attraverso la 470 Ohm e innesca il triac che accenderà la lampada.

Ora però la capacità C inizierà la sua scarica attraverso la R e quando il livello sul pin 1 va sotto la soglia minima per garantire un 1 tutte le uscite ricommutano nell’altro stato spegnendo il LED e di conseguenza la lampada.

La capacità dovrà seguire un altro ciclo di carica e quando il pin 1 ritorna al livello alto le uscite si invertono di livello e nuovamente si accende la lampada.

Continuerà cosi fino a quando il microprocessore, spegnendo il motore, disabilita l’uscita L1 del lampeggiatore mandandola a livello basso cosi da bloccare l’oscillatore.

Il periodo dell’onda quadra generata del 4011 é all’incirca determinato da

1,8 R C pertanto volendo circa 1 secondo lampada ON e 1 OFF e fissando il valore della capacità a 1 uF sarà:

R = T/(1,8 C) = 2/1,8 * 106 = 1,11 Mega Ohm pari al valore commerciale di 1,2 MW .

I due NAND U1C e U1D sono messi in parallelo per raddoppiare la corrente d’uscita in quanto una porta CMOS da sola non garantirebbe la corrente di circa 8/10 mA necessaria per accendere adeguatamente il LED.

Si è fatto uso di un foto-triac per disaccoppiare la parte elettronica di comando con la parte di potenza a tensione di rete a 230Vac per motivi di sicurezza sia delle persone che del circuito elettronico stesso.

In oltre questo foto-triac innesca a zero-crossing cioè nell’istante che il ciclo della sinusoide del 230V passa per il valore zero volt e risale con il nuovo semi periodo così che la corrente di commutazione nel carico è la minima possibile.

DIAGRAMMA DI FLUSSO

Il diagramma di flusso rappresentato in figura riguarda esclusivamente quello inerente il controllo e funzionamento del cancello.

Tuttavia il microprocessore dovrà eseguire anche altre funzioni inerenti la gestione dei dati in entrata ed uscita del PIO: ad esempio dovrà gestire una rutine di "interrupt" che ogni tot milli secondi (1÷10 mS) andrà a leggere lo stato della porta d’ingresso per avere sempre a disposizione lo stato logico dei pulsanti, fine-corsa e barriere all’infrarosso da utilizzare nelle rutines derivanti dal diagramma di flusso che ora spiego.

Inizialmente, ogni qualvolta si accende il sistema per precauzione, vado a mettere il livello d’uscita dei relè e del lampeggiante a 0 e di conseguenza motore e lampeggiante spenti; si testa lo stato logico dei pulsanti che possono decidere se aprire o chiudere.

Passa a testare il pulsante P1 inerente l’apertura; se non è premuto = 1 proseguo e va a testare P2 altrimenti se è premuto = 0 va a gestire l’apertura del cancello.

Testa il fine corsa 2 per valutare se siamo già nella condizione di cancello aperto nel qual caso ritorno a inizio ciclo.

Se invece FC2 è aperto=1 prosegue e spengne il relè RL2 per fermare eventualmente il motore in marcia di chiusura; resta in pausa per 2 secondi circa, per dare il tempo al motore di fermarsi prima di ripartire nell’altro senso, poi mette in out il livello 1 per attivare il lampeggiante L1 e per eccitare RL1 = ON.

Intanto che il motore gira per aprire bisogna testare continuativamente gli ingressi per valutare se siamo a fine corsa FC2, se viene interrotta la barriera B1-B2 o se viene premuto il pulsante di stop P3 per intervenire in entrambi i casi a fermare il motore e il lampeggiante.

Rimane in questo ciclo di controllo fino a quando FC2 da la condizione di livello logico 0 cioè cancello tutto aperto prima di tornare all’inizio e fermare tutto.

Se nelle verifiche condizionali di partenza fosse stato premuto il pulsante di chiusura P2 si andrebbe a gestire le rutines di chiusura.

Testa il fine corsa 1 per valutare se siamo già nella condizione di cancello chiuso nel qual caso ritorno all’inizio.

Se invece FC1 è aperto=1 prosegue e spegne il relè RL1 per fermare il motore eventuale in marcia di apertura; resta in pausa per 2 secondi circa, per dare il tempo al motore di fermarsi prima di ripartire nell’altro senso, poi mette in out il livello 1 per attivare il lampeggiante L1 e per eccitare RL2 = ON.

Intanto che il motore gira per chiudere bisogna testare continuativamente gli ingressi per valutare se siamo a fine corsa FC1, se viene interrotta la barriera B1-B2 o se viene premuto il pulsante di stop P3 per intervenire in entrambi i casi a fermare il motore e il lampeggiante.

Rimane in questo ciclo di controllo fino a quando FC1 da la condizione di livello logico 0 cioè cancello tutto chiuso prima di tornare all’inizio e fermare tutto.

ALIMENTATORE

Per quanto concerne la parte alimentazione dell’intero sistema si deve prevedere due tensioni una di +5V e una di +12V.

Considerato che i consumi sono modesti vengono impiegati dei regolatori di tensione della serie 78xx in grado di erogare fino ad una corrente massima di 1A. Partendo da una tensione di 15V alternata (valore efficace) mediante i 4 diodi collegati a ponte ottengo un raddrizzamento a due semionde livellate dalla capacità di 2200 uF così da avere 15V * 1,41 meno la caduta sui diodi pari a circa 20Vcc.

I regolatori di tensione sono in grado di stabilizzare le tensioni d’uscita con un "ripple" (residuo di alternata) molto basso; il 7805 fornirà i +5V e il 7812 i +12V.

Le capacità da 0,1 uF fra i pin dei regolatori sono indispensabili per bloccare possibili auto-oscillazioni e per bypassare tutti i segnali spuri indesiderati.

CONSIDERAZIONI FINALI:

Se la traccia del tema non vincolava la soluzione con un microprocessore e relative porte I/O, personalmente avrei risolto l'intero progetto del sistema utilizzando un micro-controllore o meglio ancora un PLC.

L'utilizzo di un micro (PIC o ST6) ha il vantaggio di avere al suo interno sia la necessaria memoria RAM, EROM e non ha bisogno di altre periferiche di I/O.

L'utilizzo del PLC è ancora meglio perché nasce giá cablato per essere utilizzato con morsetti di INPUT e OUTPUT, basta implementare il diagramma di flusso nel linguaggio specifico, in base alla marca di PLC.

Il PLC inoltre offre il vantaggio di poter intervenire facilmente a modificare la programmazione software senza dover cancellare e riprogrammare EPROM.

Nella realizzazione pratica di un simile sistema adotterei una ulteriore miglioria per raddoppiare la sicurezza sulla fermata del motore a cancello tutto aperto o tutto chiuso adottando finecorsa aggiuntivi con contatti N.C da inserire come nello schema seguente:



Il motore sarà fermato sia in modo software attraverso i relè sia in modo hardware dai due finecorsa aggiunti. Infatti quando il cancello sarà tutto aperto il fine corsa FC2 apre il suo contatto N.C. interrompendo la forza motrice al motore; la stessa cosa avviene con la chiusura di FC1.