26
Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo Sistemi di controllo Time-driven e Event-driven

Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Embed Size (px)

Citation preview

Page 1: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Corso di Sistemi RT

Prof. Davide Brugali

Università degli Studi di Bergamo

Sistemi di controllo

Time-driven e Event-driven

Page 2: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

State Charts in UML

Page 3: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

State chart Diagrams

Page 4: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Specifiche del problema

4

Si progetti il sistema di regolazione automatica della velocità di un’autovettura. Il conducente interagisce con il sistema usando tre dispositivi:

leva di regolazione,

freno,

acceleratore.

Il sistema interagisce con il motore attraverso due dispositivi:

encoder che rileva la velocità dell’albero motore

Iniettore di benzina che varia la velocità del motore

Le condizioni iniziali di funzionamento del sistema di regolazione prevedono che:

il conducente abbia acceso il motore

il conducente stia usando l’auto manualmente

Page 5: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Specifiche del problema

5

Successivamente il conducente interagisce con il sistema di controllo secondo le seguenti modalità:M1: il conducente sposta la leva su ACCEL mantenendola in quella

posizione. Il sistema inizia l’accelerazione automatica e l’auto accelera

M2: il conducente rilascia la leva per mantenere la velocità raggiunta. Il sistema smette di accelerare e mantiene la velocità raggiunta dell’auto, che viene memorizzata per riferimenti futuri.

M3: il conducente usa il freno per disabilitare il sistema di guida automatico. L’auto è sotto il controllo manuale

M4: il conducente sposta la leva sulla posizione di RESUME per ripristinare il sistema di guida. Il sistema inizia una accelerazione (o decelerazione) per raggiungere la velocità precedentemente memorizzata

M5: quando la velocità memorizzata viene raggiunta questa viene mantenuta dal sistema

M6: il conducente sposta la leva sulla posizione OFF. Il sistema disabilita il controllo automatico e l’auto è sotto il controllo manuale

M7: il conducente ferma l’auto e spegne il motore

Page 6: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Eventi scambiati con l’ambiente esterno

6

Input del conducente e reazioni del sistema

Leva

evento Accel causa accelerazione automatica se non viene premuto il freno

evento Cruise attiva il sistema di controllo e può solo seguire evento Accel

evento Resume deve essere preceduto da disabilitazione del sistema di

controllo e memorizzazione della velocità raggiunta

evento Off disabilita sempre il sistema di controllo

Freno

evento Brake Pressed disabilita il sistema di guida automatico. Il controllo

automatico del veicolo non è possibile mentre il freno è premuto. Dopo aver

rilasciato il freno il controllo automatico può essere ripristinato

Motore

evento Engine On azzera la velocità desiderata

evento Engine Off disabilita ogni attività del sistema

Page 7: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Cruise Control statechart

Idle

Cruising OffInitial

Accelerating

Do/Increase Speed

Exit/Select Desired Speed

Resuming

Do/Resume Cruising

Cruising

Do/Maintain Speed

Engine On

Engine Off

Engine Running

Accel [Brake Off]

Automated Control

Accel

AccelCruise Reached Cruising

Off

Brake Pressed

Off

Resume [Brake Off]

Accel [Brake Off]

Statechart

7

Page 8: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Condizioni

definiscono un aspetto del sistema che puo` essere vero o falso in un certo momento

sono associate agli events

Notazione

event [condition]

8

Page 9: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Evento ``Timer``

evento speciale che specifica un evento dopo un certo intervallo di tempo

Notazione

after (elapsed time)

after (10 seconds)

9

Page 10: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Esempio di Condizioni

ATM partial statechart

10

Page 11: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Azioni

Computazione eseguita come risultato di una

transizione

Eseguita istantaneamente durante la transizione

Notazione

event/action

11

Page 12: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Esempio di Azioni

ATM partial statechart

12

Page 13: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Azioni Entry

Azione eseguita tutte le volte che si entra in uno stato

Eseguita prima di qualsiasi attività interna

Si usa se c`è più di una transizione che va in uno stato

Notazione

entry/action

13

Page 14: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Esempio di azioni entry

ATM partial statechart

14

Page 15: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Azione Exit

Azione eseguita tutte le volte che si esce da uno stato

Eseguita solo dopo il completamento di tutte le attivita`interne

Si usa se c`è più di una transizione che lascia uno stato

Notazione

exit/action

15

Page 16: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Esempio di azione exit

Cruise Control partial statechart

16

Page 17: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Attività

Sono computazioni eseguite per tutta la

durata di uno stato

Sono abilitate all`entrata in uno stato e

disabilitate all`uscita di uno stato

Notazioni

event/enable activity

event/disable activity

do/activity

17

Page 18: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Cruise Control statechart

18

Page 19: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Linee guida per sviluppo di statecharts

Nome dello stato deve riflettere un

intervallo di tempo reale

Nome dello stato unico

Deve essere possibile uscire da ogni

stato

STATI

19

Page 20: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Linee guida per sviluppo di statecharts

Non confondere evento (causa) con

azione (effetto)

Nomi di eventi e azioni non ambigui

Condizioni sugli eventi hanno valore

booleano

Azioni e condizioni sono opzionali: da

usare solo se necessario

AZIONI EVENTI

20

Page 21: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Confezionamento cioccolatini

Page 22: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Confezionamento cioccolatini Il sistema di confezionamento cioccolatini è composto

da un nastro trasportatore azionato da un motore, una

telecamera posta verticalmente sopra il nastro, un

pistone per rimuovere i cioccolatini dal nastro e

depositarli nella confezione aperta e un pistone per

sostituire la confezione piena con una vuota.

Sul nastro trasportatore vengono depositati (a sinistra

nell’immagine) due tipi di cioccolatini (uno alla volta):

FR : Ferrero Rocher

PC : Pocket Coffee

I cioccolatini arrivano in ordine casuale.

Ogni confezione deve contenere due cioccolatini di tipo

FR e un cioccolatino di tipo PC. Viene riempita una

confezione alla volta.

Page 23: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

Confezionamento cioccolatini Il nastro trasportatore è un sottosistema regolato che

mantiene la velocità costante. Quando un cioccolatino entra nel campo visivo della telecamera posta sopra il nastro, il sistema di confezionamento riconosce di che tipo è il cioccolatino. Se il cioccolatino rispetta una delle sequenze possibili (es. FR FR PC) viene azionato il pistone che lo deposita nella confezione aperta. Se invece il cioccolatino non rispetta una delle sequenze possibili (es. FR PC PC) viene lasciato sul nastro trasportatore.

Quando una confezione è completa, viene rimossa e sostituita con una vuota.

Nello stato iniziale il nastro trasportatore è in movimento ma non ci sono cioccolatini; la confezione aperta non contiene cioccolatini.

Page 24: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

SCADA

Page 25: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

SCADA

Si consideri un sistema di Supervisione, Controllo e

Acquisizione Dati (SCADA) per il controllo di una cella di

verniciatura. La cella di verniciatura è composta da tre

serbatoi (Tank) di vernice (rosso, verde e blu) e da un

serbatoio di mescola (Mixer) delle vernici come

mostrato nella figura seguente.

Ogni serbatoio di colore è collegato a una pompa che

fornisce la vernice per riempire il serbatoio. Ogni

serbatorio ha una valvola che regola il flusso di vernice

dal serbatoio di colore al serbatoio di mescola.

Quando un serbatoio diventa pieno, la pompa di

ingresso viene chiusa dal controllore. Parimenti, quando

un serbatoio diventa vuoto la valvola di uscita viene

chiusa dal controllore.

Page 26: Sistemi di controllo Time-driven e Event-drivenrobotics.unibg.it/teaching/srt/pdf/04_StateChart_Arduino.pdf · Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di

SCADA

Il serbatoio di mescola ha la pompa di verniciatura (Spray) che viene aperta e chiusa dal controllore quando l’operatore aziona o rilascia la leva sulla pistola di verniciatura. Quando il serbatoio di mescola diventa vuoto la pompa di verniciatura viene chiusa dal controllore. Quando il serbatoio di mescola diventa pieno le valvole dei serbatoi di colore vengono chiuse dal controllore. Quando il serbatoio di mescola non è vuoto, la pistol Spray può essere azionata.

Tutti i serbatoi hanno un sensore che misura il livello corrente di vernice.

All’avvio del sistema tutti i serbatoi sono vuoti e le pompe che forniscono la vernice ai serbatoi di colore vengono attivate dal controllore.