Design Pattern #4- Multiple State Machine

La macchina a stati multipla è l’ideale per chi deve eseguire una lunga serie di operazioni riguardanti un singolo stato del programma. la Multiple State Machine è molto utile se avete necessità di implementare multipli stati all' interno dei nostri stati ' fondamentali ' dell' applicazione.

Multiple State Machine(MSM)

Nel precedente articolo abbiamo visto il funzionamento della macchina a stati basata sugli eventi, oggi in questo articolo, vedremo insieme la Macchina a Stati Multipla.

La Multiple State Machine è un modello di progettazione molto particolare all’ interno di LabVIEW, che permette di dichiarare una serie di operazioni da eseguire, all’ interno di un Stato un singolo stato.

Come le precedenti SM, anche all’interno della MSM vi sono presenti casi fondamentali, obbligatori per la corretta implementazione: Initialize, Default, Idle, Error ed Exit.

La macchina a stati multipla è l’ideale per chi deve eseguire una lunga serie di operazioni riguardanti un singolo stato del programma.

Esempio: All’interno del caso ‘Initialize’ lo sviluppatore necessita di eseguire multiple operazioni come l’apertura di file di riferimenti, dei controlli di riferimento ecc.

Il modello di progettazione si presenta cosi:

Esempio di MSM

Per dichiarare quali operazioni svolgere in un singolo stato, è utile utilizzare un array di tipo stringa, contenente i vari stati che il programma eseguirà.

Utilizzando gli array avrete il vantaggio di dover dichiarare una sola volta per ogni caso le singole operazioni che dovranno esser eseguite.

Esempio: Nel caso di inizializzazione è stato dichiarato all’ interno di un vettore la lettura dei file di configurazione, e successivamente grazie alle funzioni dei vettori e bastato definire lo stato successivo.

Se il programma deve eseguire multiple operazioni in multipli casi, consiglio l’utilizzo di un cluster di stato, che vi permette di memorizzare lo stato all’ iterazione precedente.

In conclusione si può quindi dire che la Multiple State Machine è molto utile se avete necessità di implementare multipli stati all’ interno dei nostri stati ‘ fondamentali ‘ dell’ applicazione.

Nel Prossimo articolo vedremo la funzionalità dalla Queued-State Machine

Ora puoi approfondire questo argomento con uno dei nostri corsi HandsON.

Protocolli Industriali con LabVIEW

Scoprire i protocolli industriali, come integrarli in labview. In questo corso impararerai a implementare toolkit e librerie, per utilizzare protocolli come ModBus e OPC-UA
Intermedio

Liv. Intermedio

OnLine; Con Istrutttore

3 gg

LabVIEW UI/UX

Lo sviluppo di applicativi per Testing e Misure vede sempre più una necessità di integrare interfacce curate soprattutto in prospettiva dell'utilizzo da utenti meno esperti e nel considerare di ridurre errri e incertezze dovute spesso ad un interfaccia poco chiara e intuitva.
Intermedio

Liv. Intermedio

OnLine; Con Istrutttore

3 gg

Corso LabVIEW StateMachine Pro

Il paradigma di programmazione convenzionale è il data flow. Siamo abituati ad usare il cluster di errore per gestire la sequenza di esecuzione dei nodi in labview. La macchina a Stati, permette di gestire l'ordine di esecuzione condizionato all'uscita dello stato in esecuzione. L'implementazione di questo pattern permette quindi l'integrazione del diagramma di stato e una razionalizzazione dell'applicazione, diventando più flessibile, leggibile e manutenibile.
INTERMEDIO

Liv. INTERMEDIO

In Presenza

1 gg

Scopri i nostri servizi e Prodotti, Contattaci ora!

Altri articoli dal nostro Blog

Per diventare un programmatore LabVIEW esperto, è necessario dedicare diversi mesi o anche anni al perfezionamento delle proprie competenze. Questo processo include l’apprendimento di funzionalità avanzate come la gestione dei dati, l’interfacciamento hardware e l’ottimizzazione delle prestazioni.
LabVIEW, un ambiente di programmazione grafica ampiamente utilizzato per il controllo e l’automazione, offre potenti strumenti di sincronizzazione come eventi, code e notificatori per gestire la comunicazione tra processi paralleli. Tuttavia, quando si affronta la gestione del timeout su funzioni di sincronismo, è cruciale adottare strategie efficaci per garantire la reattività del sistema.