caricato da Utente2496

AUTOMI

annuncio pubblicitario
•
•
•
•
•
•
•
•
AUTOMI
classificazione dei sistemi
automi a stati finiti
caratteristiche di un sistema
sistemi a stati finiti ( automi )
modelli di rappresentazione dei sistemi a stati finiti
diagramma di transizione degli stati
esempi
CLASSIFICAZIONE DEI SISTEMI
SISTEMI CONTINUI
Si tratta di sistemi caratterizzati da variabili continue.
Esempio: Circuito elettrico ohmico - capacitivo
Le variabili evolvono con continuità (Sistemi continui) e sono continuamente osservate, cioè il
tempo è rappresentato da una semiretta continua (a tempo continuo).
esempio: Circuito elettrico ohmico - capacitivo
Le variabili sono continue (Sistemi continui), ma i loro valori non sono rilevati con continuità, bensì
a intervalli di tempo (a tempo discreto).
NB: Rientrano in questa classe tutti i sistemi continui controllati mediante controllori digitali.
SISTEMI DISCRETI
Sono sistemi caratterizzati da variabili discrete.
Esempio: Circuito elettrico ‘Interrotta’
Le variabili interruttore e lampada possono
assumere solo due configurazioni (alto/basso,
on/off, aperto/chiuso,
acceso/spento) (Sistema
discreto).
Le loro configurazioni sono rilevate con continuità
nel tempo (a tempo continuo).
esempio: Circuito elettrico ‘Interrotta’
Le variabili interruttore e lampada sono discrete
(Sistema discreto).
Le loro configurazioni sono rilevate a intervalli di
tempo (a tempo discreto).
NB: La classificazione del sistema come sistema discreto e quindi dei componenti Interruttore e
Lampada come componenti discreti risponde alle necessità di chi realizza o utilizza il sistema.
Ma per l’industria che costruisce gli interruttori e le lampade, questi non sono affatto componenti
discreti. La transizione da
uno stato all’altro non è istantanea, ma è caratterizzata da una
progressione continua di cui tener conto in sede di costruzione del componente.
I sistemi discreti a tempo discreto si dividono in due classi:
COMBINATORI
Sistemi in cui le uscite dipendono dal valore
attuale degli ingressi.
SEQUENZIALI
Sistemi in cui le uscite dipendono dal valore attuale
degli ingressi e dello stato.
Esempio: Comando con pulsanti di Marcia/Arresto di
un motore
Sono rappresentati mediante tavole di verità
I1
I2
L
A
A
OFF
A
C
OFF
C
A
OFF
C
C
ON
NB: sono sistemi in cui non vi è memoria della
configurazione degli ingressi negli istanti precedenti
quello attuale.
I sistemi discreti a tempo discreto sequenziali
vengono chiamati anche SISTEMI A STATI FINITI.
AUTOMA A STATI FINITI
L’automa a stati finiti è un sistema digitale, con un numero finito di ingressi ed uscite digitali e con
un numero finito di stati che, essendo numerabili, possono essere rappresentati con una variabile
ancora digitale.
Ricordiamo che:
a) L’informazione associata ad una grandezza elettrica digitale non è legata al valore della
tensione ma a codici numerici binari costruiti con segnali elettrici del tipo ON/OFF
a) L’ingresso
costituisce una sollecitazione che il sistema subisce dall’ambiente esterno
c) L’uscita
costituisce la risposta che il sistema dà all’ambiente esterno quando è stato sollecitato
da uno o più ingressi
d) Lo
stato è la condizione in cui si trova il sistema in un determinato istante e alla quale è
pervenuto in seguito alla sequenza di sollecitazioni subite negli istanti precedenti: questo
implica un effetto “memoria” dal quale non si può prescindere.
Per un sistema, essere in uno stato piuttosto che in un altro vuol dire dare risposte diverse per
lo stesso ingresso.
Caratteristiche di un automa
Ingressi, uscite e stati
l’attività di un automa si esplica come successione di azioni, secondo una gamma fissa
preregistrata (automa stupido ma utile) oppure in risposta a sollecitazioni esterne (automa
intelligente).
Le azioni si susseguono in sequenza, il sistema evolve da una fase operativa alla successiva;
pertanto l’automa è prima di tutto un sistema dinamico o sequenziale, ovvero un sistema
che modifica il proprio stato con l’avanzare del tempo.
Le azioni non hanno luogo con continuità bensì a scatti; dopo una breve fase di transito da
uno stato al successivo, segue una fase di mantenimento di durata maggiore.
Le azioni sono cioè separate da intervalli di tempo finiti, perciò l’automa è anche un sistema
discreto.
Nel compiere il suo ciclo di lavoro l’automa transita attraverso diverse situazioni interne,
dette stati.
Nel corso di un ciclo si verifica una successione di stati e il passaggio da uno stato all’altro è
imposto sia dalla logica operativa intrinseca della macchina, sia da eventuali sollecitazioni
esterne che condizionano il flusso operativo.
Per poter descrivere il funzionamento di un automa in modo preciso e rigoroso, non è sufficiente
ricorrere all’approccio descrittivo con il quale abbiamo esordito, è necessario rappresentare
simbolicamente gli elementi che ne identificano il comportamento e descrivere le relazioni che li
correlano.
Gli elementi fondamentali sono l’insieme degli ingressi, che influenzano l’evoluzione del sistema,
l’insieme degli stati, che originano le sequenze operative e l’insieme delle uscite, che sono gli
elementi utili.
Un insieme di elementi prende il nome di alfabeto. Gli elementi di questi insiemi vengono de
finiti variabili.
Per economia di scrittura, spesso ci si riferisce a un insieme di variabili con un solo simbolo, anzi
ché enumerarle a una a una.
I simboli compatti sono:
insieme variabili di ingresso: I(t)
insieme variabili di uscita: U(t)
insieme variabili di stato: X(t)
L’evidenziazione di ingressi e uscite non è sufficiente per rappresentare l’automa in quanto
mancano gli stati e le relative transizioni
A tale scopo un automa si puo cosi rappresentare:
sezione di memoria: memorizza lo stato attuale;
•sezione logica: prepara lo stato futuro.
•sezione di temporizzazione (clock): sincronizza l’evoluzione.
Per poter avanzare attraverso la sequenza dei propri stati, una macchina automatica sequenziale
deve ricordare lo stato nel quale si trova (per esempio un orologio ricorda l’ora indicata) e avere
una logica, una intelligenza, che le permetta di costruire, a partire dalla conoscenza dello stato
attuale, lo stato futuro, cioè quello successivo.
La macchina genera allora le uscite (output) in base alle sollecitazioni di ingresso (input) e allo
stato interno, registrato nella propria memoria.
Affinché il meccanismo sia cadenzato, è necessario poi un segnale che disciplini l’emissione delle
sequenze, cioè blocchi il sistema nel proprio stato per un dato intervallo di tempo, dopodiché dia
via libera alla transizione allo stato successivo.
Il segnale di clock svolge il ruolo di temporizzazione, chiudendo e aprendo il circuito, quindi
bloccando o rilasciando il processo di avanzamento degli stati.
esempio: Orologio digitale
L’orologio può essere senz’altro classificato come automa. È un sistema dinamico, dato che
evolve nel tempo; è discreto perché compie il passaggio da una condizione a quella
successiva a intervalli regolari distanziati da intervalli di tempo finiti. Consideriamo per
semplicità un orologio costituito solo dalle cifre dei minuti, rappresentate simbolicamente
DM = Decine dei Minuti
UM = Unità dei Minuti
DM e UM sono in questo caso le variabili di uscita.
L’orologio potrebbe poi disporre di due pulsanti, con stampigliate le sigle:
AVM: avanzamento veloce minuti
ALM: avanzamento lento minuti
Queste sono le variabili di ingresso.
A queste indicazioni corrisponde allora il blocco
mostrato a fianco come:
Esempio: Apertura a combinazione
Si consideri una cassaforte con apertura a combinazione a 4 cifre. La sequenza numerica vie ne
immessa facendo ruotare alternativamente a destra e a sinistra, in corrispondenza delle tacche
numeriche, la manopola che comanda il congegno di apertura, introducendo una sequenza
numerica prefissata.
Supponendo che la combinazione prefissata sia 1357 per essere sicuri di non scordarsi la
combinazione, ci si può limitare a memorizzare solo il primo numero della sequenza e affidarsi,
per la ricostruzione della sequenza, allo schema logico consistente nel sommare ogni volta 2 alla
cifra precedente.
La funzione di memoria è strettamente correlata con lo stato. È la memoria del sistema a
conservare lo stato, la condizione attuale.
La successione passata degli stati rappresenta la “storia” del sistema; in base a questa storia si
costruiscono gli stati futuri.
Gli stati si indicano simbolicamente con la lettera maiuscola S seguita da un indice numerico
progressivo, ovvero S0, S1, S2 ...
Lo stato presente viene chiamato stato attuale e indicato come S(t), lo stato al passo successivo
viene chiamato stato futuro e indicato come S(t + 1). Si noti che si è parlato di passo e non di
istante di tempo in qaunto Il funzionamento di un automa è indipendente dall’entità del passo
«clock»
stati S1, S2, S3, S4 ----- : 1 ➞ 3 ➞ 5 ➞ 7.
Esempio: Automa che genera la sequenza dei numeri naturali
Questo esempio dovrebbe fare luce su quanto detto ora. Un sistema, per generare
automaticamente la sequenza 0, 1, 2, 3 …, deve possedere una memoria (per conoscere il numero
appena generato) e una logica (per costruire il numero successivo in base al numero appena
generato).
In questo caso la logica è molto semplice e consiste nel sommare 1 al numero appena generato.
La tabella descrive sinteticamente
questo processo.
Conteggio pezzi
Un sistema per imballaggio conta tramite fotocellula delle lattine, prima di confezionarle. Ogni tre
lattine deve terminare il ciclo di conteggio e iniziare quello di imballaggio. Il conteggio avviene alla
rovescia partendo da 3.Rappresentare la sequenza degli stati del ciclo di conteggio.
la numerazione S3, S2, S1, S0 della sequenza
degli stati è convenzionale, ma viene fatta
coincidere con il conteggio per linearità di
ragionamento
Esempio: Serbatoio
Il sistema è costituito da:
a) un serbatoio d’acqua
b) un sensore SH per segnalare il raggiungimento del livello
massimo
c) un sensore SL per segnalare il raggiungimento del livello minimo
d) una elettrovalvola di carico VC
e) una valvola di scarico VS
f) un automa per la gestione delle operazioni secondo le modalità di
seguito indicate
Funzionamento:
Fase di scarico: partendo dalla condizione di serbatoio pieno, la valvola di carico VC è chiusa,
bloccando l’afflusso di acqua nel serbatoio, fino a quando il livello non scende al di sotto del valore
minimo per effetto del deflusso ottenuto manovrando la valvola di scarico VS.
Fase di carico: quando il livello minimo è stato raggiunto, la valvola VC viene aperta e resta aperta
fino a quando il serbatoio non si riempie raggiungendo il livello massimo, dopodiché si riparte con
la fase di scarico.
Nota: è abbastanza intuitivo che, per un buon funzionamento, la portata associata alla valvola di
carico VC sia maggiore di quella associata alla valvola di scarico VS.
Osservazione
Quando il livello dell’acqua è compreso tra quello massimo e quello minimo, i sensori generano per
l’automa lo stesso ingresso, sia durante la fase di carico che durante quella di scarico. E’
importante quindi che il sistema di controllo (automa) abbia una memoria che gli ricordi in quale
fase si trova, consentendogli di reagire con la giusta uscita (apertura o chiusura della valvola VC).
SERBATOIO
Un modo semplice per illustrare il comportamento del sistema di controllo è quello di utilizzare un diagramma
di stato come quello rappresentato nella Fig. 9.
SISTEMI A STATI FINITI
( AUTOMI )
• Gli automi a stati finiti sono sistemi dinamici, stazionari, con ingressi, stato, uscite e tempo
• discreti
• Sono dinamici i sistemi dotati di memoria (Es: flip-flop JK).
• La memoria è costituita dallo stato del sistema.
• Definizione: lo stato rappresenta una situazione in cui il sistema si trova per
effetto delle configurazioni degli ingressi negli istanti precedente
• Sono stazionari i sistemi i cui parametri restano costanti nel tempo.
•
NB: i sistemi a stati finiti sono una classe di sistemi molto importante in cui rientrano la
logica di controllo delle macchine utensili,
• il funzionamento di un sistema operativo per PC
• Il funzionamento di una lavatrice
• ……………………………………..
AUTOMA DI MEALY
Nel modello di Mealy l’uscita dipende dalla elaborazione,
da parte di una rete combinatoria, degli ingressi e dello
stato attuale.
Le uscite commutano durante la transizione dallo stato
attuale allo stato futuro (sia per i sistemi sincroni che
asincroni).
AUTOMA DI MOORE
Nel modello di Moore l’uscita dipende
dalla
elaborazione,da parte di una rete combinatoria,
del solo stato attuale.
MODELLO DI HUFFMAN
E un modello generale per rappresentare un
automa: un unico sottosistema combinatorio
retroazionato con elementi di memoria.
Gli elementi di memoria sono dei flip flop
(sincroni o asincroni): uno per ogni variabile
di stato.
CONFRONTO tra l’automa di Mealy e l’automa di Moore
La sintesi di un sistema a stati finiti può essere realizzata sia con il modello di Mealy che con
quello di Moore.
Tuttavia cambiano la complessità e le prestazioni del sistema costruito.
Automi di Mealy
•Sono più veloci, gli ingressi giungono
direttamente sul circuito delle uscite.
• Hanno un minor numero di stati, potendo
associare le uscite alle transizioni
Sono possibili uscite spurie transitorie
dovute a percorsi diversi, con differenti
ritardi di propagazione, cui gli ingressi sono
soggetti.
Automi di Moore
•Sono meno veloci, gli ingressi causano
direttamente solo il cambiamento dello
stato; le uscite si aggiornano dopo che il
nuovo stato si è stabilizzato.
•Hanno un maggior numero di stati, dovendo
associare le uscite agli stati
•Si
ottiene
un
maggior
controllo
sull’evoluzione
della macchina, grazie
all’aggiornamento delle uscite subordinato
al raggiungimento del nuovo stato
.
•Sono più facilmente testabili
MODELLI DI RAPPRESENTAZIONE DEI SISTEMI A STATI FINITI
Il funzionamento di un automa può essere illustrato (descritto) mediante:
• TABELLA di transizione degli stati e TABELLA delle uscite
• DIAGRAMMI di transizione degli stati
ESEMPIO: riconoscitore di sequenza per sblocco meccanismo
Descrizione: il sistema deve riportarsi allo stato iniziale ogni volta che riceve in ingresso un
carattere non valido.
Configurazioni valide per l’ingresso: {A, B, C, D, E, F}
Configurazioni previste per l’uscita: {blocco, sblocco}
Sequenza valida: BDA
La corrispondenza della logica di controllo (sistema) al modello di Mealy oppure di Moore è spesso
una scelta del progettista.
AUTOMA DI MEALY
La tabella di transizione degli stati descrive l’evoluzione dello stato del sistema in funzione dello
stato attuale e dell’ingresso:
Poiché le uscite dipendono oltre che dallo stato, anche dagli ingressi, per la loro indicazione si deve
costruire la tabella delle uscite:
AUTOMA DI MOORE
Poiché le uscite sono definite in corrispondenza degli stati, esse sono indicate nelle stesse
celle degli stati futuri.
DIAGRAMMA DI TRANSIZIONE DEGLI STATI
Il funzionamento di un automa può essere descritto anche con i diagrammi di transizione degli
stati (o grafi).
•A ogni nodo è associato uno stato ( x )
• A ogni arco è associato un ingresso, la freccia
indica la direzione della transizione di stato
causata dall’ingresso specificato
•Autoanello: transizione che parte e giunge sullo
stesso stato
• Lo stato iniziale
doppio cerchio.
viene
rappresentato
con
un
Esercizio precedente:
PASSI (Algoritmo) PER LO STUDIO DEGLI AUTOMI
Descrizione del sistema:
• Definizione degli ingressi, degli stati e delle uscite (attribuzione dei
configurazioni possibili)
simboli e esame delle
• Individuazione di uno stato iniziale da cui cominciare la costruzione
diagramma
della tabella o del
• Costruzione della tabella o del diagramma.
NB: si può cominciare da uno stato iniziale qualsiasi, normalmente si sceglie quello più comodo.
Il sistema di controllo, descritto mediante diagramma di transizione degli stati o mediante tabelle
di transizione, può essere implementato (realizzato) con
• hardware cablato per la specifica applicazione
• hardware programmabile, scrivendo uno specifico software di controllo.
• Il linguaggio di programmazione è il C ANSI, con compilatore Dev-C++.
ESEMPIO Comando di marcia / arresto di un motore
Descrizione del sistema
Il sistema di controllo è molto semplice: mediante due pulsanti si comanda la marcia e
l’arresto di un motore.
NB: occorrerebbe prevedere un terzo pulsante che ponga termine al controllo.
Definizione degli ingressi
Gli ingressi sono due pulsanti normalmente aperti (Marcia, Arresto), che possono assumere
solo due configurazioni (P: premuto, R: a riposo).
Definizione degli stati
Lo stato del sistema può essere rappresentato dal contatto di potenza oppure dalla
condizione del motore: F = fermo, M = in marcia.
Definizione delle uscite
L’uscita è rappresentata dal comando (COM) che si vuole esercitare sul motore. E’ un segnale
a due livelli (avvio motore, arresto motore).
Può essere associato allo stato: uscite = stato. Di conseguenza: modello di Moore.
Individuazione stato iniziale
Si deve decidere se cominciare con il motore fermo o in marcia. Ipotesi: motore fermo.
Scrivere il software di controllo.
Schema generale
Descrizione della logica di controllo mediante: diagramma di transizioni degli stati.
Automa di Moore.
Il software di controllo presenta fondamentalmente due sezioni:
• sezione di inizializzazione: in cui scrivere il codice da eseguire una sola volta, all’inizio
• sezione sotto scansione ciclica: in cui si scrive il codice di controllo, la cui esecuzione è
ripetuta ciclicamente.
Esempio di software di controllo:
ESEMPIO: COMANDO PUNTO LUCE: MEDIANTE RELE’ INTERRUTTORE
Descrizione del sistema
Il sistema è costituito da due pulsanti, un relè interruttore (con due posizioni di lavoro),
una lampada.
Premendo indifferentemente uno dei due pulsanti lo stato dei contatti del relè
interruttore commuta, e di conseguenza commuta anche lo stato della lampada.
Definizione degli ingressi
Gli ingressi sono due pulsanti normalmente aperti (S1, S2), che possono assumere solo
due configurazioni (P: premuto, R: a riposo).
(su scheda Velleman: Rilasciato = lettura 0)
Definizione degli stati
Lo stato del sistema può essere rappresentato dal contatto del relè oppure dallo stato della
lampada: contatto aperto = Lampada spenta, contatto chiuso = Lampada accesa. Simbolo L
= (ON, OFF).
Definizione delle uscite
L’uscita della logica di controllo è rappresentata da un comando impulsivo COM, che fa
commutare il relè.
Individuazione stato iniziale
Si deve decidere se cominciare con il contatto aperto o chiuso. Ipotesi: contatto aperto.
Schema generale
Soluzione
Costruzione del diagramma di transizione degli stati
Occorre scegliere quale rappresentazione utilizzare: Mealy o Moore?
Il sistema è molto semplice; l’uscita (il contatto di potenza) può essere fatta
corrispondere allo stato. In questo caso la rappresentazione è quello di Moore.
ESEMPIO: CONTROLLO TRAPANO AUTOMATICO
Descrizione del sistema
Premendo il pulsante S0 si alimenta il motore M1.
Il carrello porta utensile scende alla velocità v1.
L’attivazione del finecorsa S2 modifica la velocità di discesa del carrello
v2 < v1 e attiva il motore M2.
L’attivazione del finecorsa S3 disattiva il motore M2 a fa salire alla
velocità v1 il carrello.
L’attivazione del finecorsa S1 arresta il motore M1.
Schema generale
Definizione degli ingressi
Gli ingressi sono costituiti dal pulsante S0 e dai finecorsa S1, S2, S3.
Si tratta di segnali che possono assumere solo due configurazioni:
Pulsante: S0 = Rilasciato, Premuto
(su scheda Velleman: Rilasciato = lettura 0)
Finecorsa: S1, S2, S3= Rilasciato, Premuto
soluzione: Diagramma di transizione degli stati
NB: si dovrebbero assumere opportune precauzioni per evitare l’invio di comandi contraddittori
(interblocco)
ESEMPIO: MISCELATORE
Descrizione del sistema
Il sistema miscela due liquidi. Componenti:
•pulsanti S1, S2 normalmente aperti
•elettrovalvole M1, M2, M3 normalmente chiuse
•sensori di livello B0, B1, B2 normalmente aperti (asciutti), si chiudono in
presenza del liquido
• motore M0
Premendo S1 si avvia il ciclo, previa verifica di serbatoio vuoto (altrimenti
provvedere allo svuotamento).
Fasi del ciclo:
•con serbatoio vuoto (B0, B1, B2 asciutti) , elettrovalvole M2 e M3 chiuse,
motore fermo: si fa entrare il 1° liquido aprendo l’elettrovalvola M1;
• durante il riempimento si attiva B0: nessun intervento del controllo
•attivazione di B1: chiusura di M1, apertura di M2 (entrata del 2° liquido) e
avvio del motore
• attivazione di B2: chiusura di M2 e apertura di M3 (inizio scarico)
• disattivazione di B2: nessun intervento di controllo
• disattivazione di B1: arresto motore M0
• disattivazione di B0: chiusura M3 e ripetizione del ciclo.
NB: con serbatoio vuoto, premendo S2 il sistema si porta allo stato iniziale di riposo.
Definizione degli ingressi
Gli ingressi sono rappresentati dal pulsante S1 normalmente aperto e i tre sensori di livello
normalmente aperti.
Definizione degli stati
L’identificazione degli stati dipende dal modello:
• Moore: ad ogni uscita diversa occorre associare uno stato
• Mealy: possibile accorpare più stati
Definizione delle uscite
Le uscite rappresentano i comandi che il sistema di controllo deve emettere: il motore e le
tre elettrovalvole.
Individuazione stato iniziale
Si deve prevedere uno stato di attesa, da cui uscire con l’attivazione del pulsante S1.
Soluzione: modello di Moore
Soluzione: modello di Mealy
Esempio di software di controllo:
MISCELATORE: MOORE
Soluzione : modello di Mealy
Esempio di software di controllo:
MISCELATORE: MEALY
ESEMPI0:
Distributore di bibite
Costo della bibita: 40 €cent
Monete utilizzabili: 10 €cent , 20 €cent
Il sistema, oltre alla parte che gestisce l’automa, prevede:
a) una gettoniera che generi un codice numerico binario per ognuna delle due monete e per
la condizione di riposo (nessuna moneta)
b) un dispositivo che, su comando dell’automa, sganci la bibita
c) un dispositivo che, su comando dell’automa, sganci il resto
Si noti che per l’ingresso occorrono due bit, perché sono da codificare 3 condizioni diverse, e
quindi due linee (X1 e X0). I comandi per lo sgancio, invece, richiedono un bit ciascuno
perché ognuno di loro prevede solo due condizioni (sganciare o non sganciare): necessita
quindi una sola linea per ogni comando (B e R).
In situazioni diverse, dove ci siano più tipi di monete oppure più tipi di bibite oppure più
possibilità di resto, cresce il numero di condizioni da considerare e quindi cresce anche il
numero di bit e con esso il numero di linee.
Formalizziamo le variabili utilizzate.
Ingressi X1 X0 (binari):
Nessuna moneta (00); Moneta da 10 €cent (01); Moneta da 20 €cent (10).
Totale: 2 linee di ingresso (2 bit).
Uscite (binarie):
Comando per lo sgancio della bibita B (0/1); Comando per lo sgancio del resto R (0/1).
Totale: 2 linee di uscita (2 bit), una per il sottosistema di sgancio della bibita ed una per il
sottosistema di sgancio del resto.
Come per gli ingressi, è possibile fondere insieme le due uscite utilizzando una sola variabile a 2
bit. ( Es.: BR = 00 né bibita né resto; 01 non ammesso; 10 solo bibita, 11 bibita + resto ).
Stati:
Gli stati corrispondono alla somma di volta in volta accumulata con l’introduzione delle monete.
Risultano 5 stati: 0 €cent, 10 €cent, 20 €cent, 30 €cent.
In questo caso non servono variabili ma una locazione di memoria
Diagramma degli stati
Per descrivere le evoluzioni nel tempo del sistema, ovvero come esso passi da uno stato all’altro
quando viene sottoposto alle sollecitazioni degli ingressi esterni, vengono utilizzati i diagrammi di
stato.
La rappresentazione viene fatta utilizzando per ogni stato un cerchio (nodo) che porta indicato al
proprio interno il nome dello stato (S0 , S1 , …. oppure A, B, ….), e collegando i vari nodi con degli
archi orientati che indicano l’evoluzione da uno stato all’altro. Per completare i diagrammi,
vengono aggiunte le indicazioni sugli ingressi che generano l’evoluzione da uno stato all’altro e
sulle uscite corrispondenti a tale evoluzione.
Modello di Mealy:
in tale modello, nello stato terminale di una evoluzione non è possibile conoscere l’uscita se non
si conosce contemporaneamente anche l’ingresso che ha portato l’automa in quello stato (uno
stesso stato
possibilità di più uscite).
Per tale motivo, accanto agli archi orientati corrispondenti alle evoluzioni generate dagli
ingressi, vengono indicati sia gli ingressi stessi che le uscite (separati da una barra).
Modello di Moore:
in tale modello, noto lo stato raggiunto, è nota l’uscita corrispondente (uno stato una uscita). Per
tale motivo gli ingressi vengono indicati accanto agli archi orientati corrispondenti alle evoluzioni
che essi generano, mentre l’uscita viene indicata accanto al nome dello stato, all’interno del cerchio
rappresentativo dello stato stesso.
Per meglio comprendere la differenza tra modello di Mealy e modello di Moore, scegliamo di
utilizzare inizialmente il primo tipo; successivamente, con qualche piccola modifica al diagramma
ottenuto, passeremo all’altro tipo. Scopriremo che il modello di Moore, pur avendo di norma più
stati, consente una semplificazione del software.
La Fig. 6 illustra una prima stesura del diagramma di stato (automa di Mealy); una seconda stesura
si otterrà per passare al modello di Moore (Fig. 7); una terza ed ultima stesura (Fig. 8) si renderà
necessaria per risolvere alcuni problemi legati all’implementazione fisica dell’automa.
1) automa di Mealy)
Prima di procedere con la descrizione del diagramma di figura, occorre chiarire che lo schema
rappresentato indica tutte le possibili situazioni che possono presentarsi nella realtà.
Ad esempio, con una sequenza costituita da una moneta da 20c seguita da un’altra moneta da
20c, la macchina, partendo dallo stato di riposo “0c” passa prima allo stato “20c” e poi da questo
salta allo stato di riposo “0c”, dopo aver dato la bibita senza resto (Uscita “1/0c”).
Ancora, con una sequenza costituita da una moneta da 20c seguita da un’altra da 10c e ancora da
un’altra da 20c la macchina, partendo dallo stato di riposo “0c” passa prima allo stato “20c”, poi
allo stato “30c” e infine allo stato di riposo “0c”, dando la bibita con un resto di 10c (Uscita
“1/10c”).
E così via.
Ovviamente, se non viene raggiunto o superato il valore della bibita, l’automa resta in uno stato
intermedio con le uscite bloccate a “0/0c”.
a) Lo stato “0c” è lo stato di riposo; quello cioè in cui si trova la macchina quando è in attesa
di un nuovo ciclo per l’acquisto della bibita.
L’uscita è “0/0c” perché non devono essere dati né la bibita né il resto.
Con 10c si passa allo stato “10c”, mentre se la moneta introdotta è da 20c si passa allo stato
“20c”.
Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane sullo stesso stato.
Da notare che i nomi degli stati rappresentano anche l’ammontare di moneta introdotta. Per
tutti gli ingressi fin qui citati non devono essere dati né la bibita né il resto, non avendo
raggiunto una somma pari al valore della bibita (Uscita 0/0c).
b)Quando
la macchina è nello stato “10c” l’introduzione di una moneta da 10c la porta nello stato
“20c”, già visto; se la moneta , invece, è da 20c la macchina va nello stato “30c”.
Ancora una volta, non essendo stato raggiunto il valore della bibita, la macchina non deve dare
niente in uscita (Uscita 0/0). Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina
rimane sullo stesso stato.
C) Nello stato “20c” l’introduzione di una moneta da 10c fa passare la macchina nello stato “30c”,
senza alcuna conseguenza sull’uscita, mentre l’introduzione di una moneta da 20c la fa tornare
nello stato “0c”.
In quest’ultimo caso, avendo raggiunto il valore della bibita, la stessa viene sganciata senza alcun
resto (Uscita “1/0c”). Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane
sullo stesso stato.
d) Nello stato “30c” l’introduzione di una moneta o da 10c o da 20c fa tornare la macchina nello stato
di riposo “0c”: nel primo caso viene raggiunto esattamente il valore della bibita, per cui viene
sganciata la stessa senza resto (Uscita 1/0c); nel secondo caso, invece, viene superato il valore della
bibita, per cui vengono sganciati bibita e resto da 10c (Uscita 1/10c). Quando l’ingresso è “0c”
(nessuna moneta introdotta), la macchina rimane sullo stesso stato.
Tabelle di transizione di stato e di trasformazione di uscita
Tali tabelle hanno entrambe come indicatori di riga lo stato attuale e come
l’ingresso. Al loro interno riportano, rispettivamente, lo stato futuro e l’uscita.
indicatore di colonna
Nella Tab. a) è possibile conoscere lo stato futuro
incrociando stato attuale ed ingresso.
Analoga cosa vale per la Tab. b), con riferimento
all’uscita.
Come si può controllare anche dal diagramma degli stati, quando, ad esempio, se lo stato attuale è
“30c” e viene introdotta una moneta da 10c, la macchina si porta nello stato di riposo “0c” (stato
futuro) e dà come uscita “1/0c” (bibita senza resto).
Queste tabelle sono fondamentali per il progetto dell’automa in logica cablata, mentre in logica
programmata possono essere utilizzate o meno, a seconda della soluzione scelta.
all’automa di Moore,
Rispetto all’automa di Mealy, l’uscita è legata solo
allo stato cui fa riferimento, per cui
essa viene
direttamente indicata nel cerchietto rappresentativo
dello stato stesso.
Per garantire questa condizione per tutti gli stati, è
stato necessario aggiungere qualche stato in più.
La situazione cambia nel modo seguente:
a) Lo stato “0c” è lo stato di riposo; quello cioè in cui si trova la macchina quando è in attesa di
un nuovo ciclo per l’acquisto della bibita.
L’uscita è “0/0c” perché non devono essere dati né la bibita né il resto.
Con 10c si passa allo stato “10c”, mentre se la moneta introdotta è da 20c si passa allo stato
“20c”.
Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane sullo stesso stato.
Per tutti gli stati fin qui citati non devono essere dati né la bibita né il resto, non avendo
raggiunto una somma pari al valore della bibita (Uscita 0/0c).
Quando la macchina è nello stato “10c” l’introduzione di una moneta da 10c la porta nello stato
“20c”, già visto; se la moneta , invece, è da 20c la macchina va nello stato “30c”. Ancora una
volta, non essendo stato raggiunto il valore della bibita, la macchina non deve dare niente in
uscita (Uscita 0/0c). Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane
sullo stesso stato.
b)Nello stato “20c” l’introduzione di una moneta da 10c fa passare la macchina nello stato “30c”,
mentre l’introduzione di una moneta da 20c la fa passare nello stato “40c”.
In quest’ultimo caso, avendo raggiunto il valore della bibita, la stessa viene sganciata senza alcun
resto (Uscita “1/0c”).
Quando l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane sullo stesso stato.
c) Nello stato “30c” l’introduzione di una moneta da 10c fa passare la macchina nello stato “40c”,
mentre l’introduzione di una moneta da 20c la fa passare nello stato “50c”.In entrambi i casi viene
quindi raggiunto o superato il valore della bibita: nel primo caso viene sganciata la sola bibita
(Uscita 1/0c); nel secondo vengono sganciati bibita e resto da 10c (Uscita 1/10c). Quando
l’ingresso è “0c” (nessuna moneta introdotta), la macchina rimane sullo stesso stato.
d)Gli stati “40c” e “50c” sono di chiusura per il ciclo di acquisizione della bibita. Nel primo viene
rilasciata solo la bibita, nel secondo la bibita e il resto di 10c.
In entrambi i casi, essendosi chiuso il ciclo per l’acquisizione del prodotto, il sistema si riporta
nello stato di riposo. Si noti che gli ingressi 10c e 20c non avranno mai la possibilità di
presentarsi in questi due stati finali, perché il ritorno a zero dei segnali provenienti dalla
gettoniera, dopo il passaggio dell’ultima moneta (Ingresso “0c”), avrà già resettato la macchina
portandola nello Stato “0c”.
In ultima analisi, nei due stati finali, gli ingressi 10c e 20c rappresentano condizioni di indifferenza
(don’t care) e questo giustifica la X sulle evoluzioni finali che portano allo stato di riposo.
Tabelle di transizione di stato e di trasformazione di uscita
In questo caso, trattandosi di un automa di Moore per il quale l’uscita è legata solo allo stato, la
tabella di trasformazione di uscita non ha l’ingresso come indicatore di colonna (tabella ad una
sola dimensione).
STATO
FUTURO
STATO
ATTUALE
INGRESSO
USCITA
0c
10c
20c
0c
0c
10c
20c
0c
0/0c
10c
10c
20c
30c
10c
0/0c
20c
20c
30c
40c
20c
0/0c
30c
30c
40c
50c
30c
0/0c
40c
0c
0c
0c
40c
1/0c
50c
0c
0c
0c
50c
1/10c
Tab. c) Transizione di stato
Tab. d) Trasformazione di uscita
Come si può controllare anche dal diagramma degli stati, quando, ad esempio, lo stato attuale
è “30c” e viene introdotta una moneta da 10c, la macchina si porta nello stato “40c” (stato
futuro) e dà come uscita “1/0c” (bibita senza resto).
Per concludere, occorre ribadire che se si vuole rendere esecutivo il progetto bisogna
curare attentamente l’interfaccia con l’hardware, per cui può essere necessario in certi casi
apportare qualche correttivo al diagramma degli stati, che non ne cambia la struttura logica
ma semplicemente corregge certe situazioni
prodotte dalla suddetta necessità di
interfacciare l’hardware.
E’ questo il caso degli “Stati trappola”.
L’aggiunta di questi stati al diagramma si rende necessaria quando accade che un ingresso
che porta in uno stato fa anche uscire da quello stato. Il più delle volte succede che il ciclo
di acquisizione del microprocessore legga l’ingresso migliaia di volte per lo stesso stato,
innescando una deriva che porta il sistema ad evolvere velocemente da uno stato all’altro,
come impazzito.
Il problema si risolve inserendo tra due stati un terzo stato che blocchi l’evoluzione tra i
primi due finché l’ingresso non si è di nuovo azzerato: questo è il motivo per cui tale stato
aggiunto è stato qui definito “trappola”. La Fig. 8 riporta il diagramma di stato del
distributore di bibite modificato a questo scopo
Con riferimento alla Fig. 8, si veda ad
esempio quello che succede nello stato
“20c” con un ingresso 10c: il sistema si
porta nello stato “30 bis” e lì rimane
bloccato finché l’ingresso non si azzera;
azzeratosi l’ingresso, l’automa evolve
verso lo stato “30c”.
Si noti che i due stati di chiusura “40c” e
“50c” non sono preceduti da stati
trappola perché essi stessi fungono da
trappola; bisogna solo stare attenti a
sganciare bibita e/o resto una sola volta.
Le nuove tabelle di transizione di stato e di trasformazione
di uscita diventano:
STATO ATTUALE
INGRESSO
0c 10c 20c
0
0
10b 20b
10b
10
20b
20
30b
30
40
50
10
10
20
20
30
30
0
0
10b
20b
20b
30b
30b
40
40
50
10b
30b
20b
40
30b
50
40
50
STATO
FUTURO
USCITA
0
10b
10
20b
20
30b
30
40
50
0/0c
0/0c
0/0c
0/0c
0/0c
0/0c
0/0c
1/0c
1/10c
Scarica
Random flashcards
Present simple

2 Carte lambertigiorgia

creare flashcard