Sistemi di controllo

La logica di controllo

La notazione che utilizziamo è quella dei diagrammi a stati UML. Si tratta di una versione estesa di quelle che sono le classiche macchine a stati utilizzate nella progettazione H/W.

State machine, collapsed

Il diagramma, di fatto, è a tre livelli:

  • Al livello più alto, che comprende tutti i possibili stati, viene gestita l'eventuale richiesta di refresh da parte delle parti del sistema (semafori, control room), in modo da garantirne sempre e comunque l'allineamento;
  • Al livello intermedio, ci sono due macro-stati: attivo e disattivo; quest'ultimo è quello in cui tutti i semafori lampeggiano di colore giallo;
  • Al livello di maggior dettaglio si descrive lo stato attivo, che nel diagramma qui sopra è riassunto come un singolo elemento, ma successivamente viene illustrato nella sua completezza.

Un diagramma a più livelli come questo è detto diagramma a stati gerarchico.


Lo stato attivo

State machine, active state

In sostanza, il diagramma ci dice che:

  • Sono garantiti almeno 30 secondi di verde ai veicoli, prima che il semaforo stradale transiti dal verde al giallo;
  • Dopo la pressione del bottone di richiesta attraversamento, il display numerico visualizza i secondi mancanti al verde del semaforo pedonale;
  • Il giallo per i veicoli dura 5 secondi;
  • Il tempo di attraversamento è di 15 secondi, durante i quali il display numerico visualizza i secondi mancanti;
  • Negli ultimi 5 secondi i pedoni vengono sollecitati a completare l'attraversamento, facendo lampeggiare il verde del semaforo pedonale.

Al di là di questa breve sintesi, il diagramma specifica in modo formale e completo il comportamento del sistema; è ben evidente, per esempio, che negli stati diversi da Green e LongGreen l'evento di pressione del bottone di richiesta di attraversamento viene ignorato.


Giorgio Barchiesi
Albo degli Ingegneri Sez. A, N. 4027 della Prov. di Trento
P.IVA 02370260222, C.F. BRC GRG 58L26 C794R

Copyright © 2015-2024 Giorgio Barchiesi - Tutti i diritti riservati