stateflow - unicalfedele/teaching/stateflow.pdf · sistemi complessi reattivi basati sulla teoria...
TRANSCRIPT
Stateflow
Potente tool grafico di sviluppo per:
CONTROLLO COMPLESSO
PROBLEMI A LOGICA SUPERVISIONATA
Sistemi complessi reattivibasati sulla teoria delle macchine a stati finiti
Permettono di rappresentare la
“LOGICA DI SALTO”
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
Inizialmente:-Stateflow sta dormendo- On ed Off sono due stati OR- On è attivo
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
L’evento E_one è processato dalla radicegiù attraverso la gerarchia del diagramma:
E_one Si presenta l’evento E_one e sveglia il diagramma Stateflow
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
C’è una transizione valida dallo stato On allo stato Off.
La radice cerca se esiste una transizionevalida come risultato di E_one.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
Lo stato On è marcato inattivo
L’azione exitOn() dello stato Onè eseguita e completata.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
L’evento E_one è mandato in broadcastcome AZIONE DELLA TRANSIZIONE.
Questo secondo evento E_one èprocessato, ma poiché nessuno stato èattivo, non ha effetto.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
Lo stato Off è marcato attivo.L’azione entry dello stato entOff() èeseguita e completata.Il diagramma va a dormire.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
E_one Si presenta l’evento E_one e sveglia il diagramma Stateflow. Lo stato Off è attivo
C’è una transizione valida dallo stato Off allo stato On.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
L’azione exitOff() dello stato Off è eseguitae completata.Lo stato Off è marcato inattivo.Lo stato On è marcato attivo.L’azione entOn() è eseguita e completata.Il diagramma va a dormire.
Onentry: entOn()during: durOn()exit: exitOn()
Offentry: entOff()during: durOff()exit: exitOff()
E_one / E_one
E_one
L’evento sveglia lo Stateflow ma nessunatransizione valida è trovata.L’azione durOn() è eseguita e completata.Lo Stateflow va a dormire.
E_two Si presenta l’evento E_two e sveglia il diagramma Stateflow. Lo stato On è attivo
Stati
Decomposizione AND:
quando lo stato A è attivo, allora A1 e A2 sono attivi.
Stati
Lo stato B e C.C1 o C.C2 sono attivi nello stesso istante.
Stati
Transizioni
Transizioni
Transizioni
E L’evento E è mandato in broadcasting
Se la condizione [off_count]==0 è verificata:
1) l’azione off_count++ è immediatamente eseguita;2) l’evento Light_off è mandato in broadcasting;3) la transizione dallo stato On allo stato Off viene effettuata.
Transizioni
Transizioni
Transizioni
Transizioni
Transizioni
Transizioni
Transizioni
Transizioni
Transizioni
if (C1)D
elseif (C2)E
elseF
Transizioni
if (C_one)B
elseif (C_two)C
elseD
Transizioni
if (C1){
Action a1goto B
}else
Action a2
Cambio di una macchina
Cambio di una macchina
Cambio di una macchina
Cambio di una macchina
Quando Lascio_Frizione diventa vero, il sottostato di No_Folle che diventa attivo è quello più recentemente attivato.
Premo il pedale della frizione, poi lo rilascio senza cambiare marcia.
Cambio di una macchina
______Ei=0while(i<10){
i++;func1();
}Goto B----------------------For i=0:9
func1();
Es_FOR1
Es_FOR2
Es_FOR3
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Power switch model
Timer
T=0.1
Timer
Timer
Timer
Timer
Contatore temporizzato
Contatore temporizzato
Contatore temporizzato
Contatore temporizzato
Soglia1
Soglia 1
Soglia 1
Soglia 1
Soglia2
Soglia 2
Soglia 2
Soglia 2
Soglia3
Soglia 3
Soglia 3
Soglia 3
Controllo dinamica 1
Controllo dinamica 1
Controllo dinamica 1
Controllo dinamica 1
Controllo dinamica 2
Controllo dinamica 2
Controllo dinamica 2
Controllo dinamica 2
Contatore modulo 3
Contatore modulo 3
Contatore modulo 3
Contatore modulo 3
Cella di lavoro
Cella di lavoro
Piattaforma 1
Piattaforma 2
Deposito Robot
2 sec.
2 sec.
5 sec.
5 sec.
Cella di lavoro
Cella di lavoro