LabVIEW Pattern#7 Event Driven

La programmazione Event Driven è caratterizzata dall'ordine di esecuzione del codice che viene guidato dall'utente.

Nei precedenti articoli sulla programmazione labview, abbiamo utilizzato la struttura ad eventi, utilizzata negli stati Event/Idle per attendere un input da Interfaccia Grafica (UI).

In questo articolo parliamo di programmazione Event Driven.

La caratteristica dell’ Event Driven è dato dall’ordine di esecuzione del codice, guidato dagli eventi.

La differenza rispetto al polling, che si basa sul monitorare continuamente il valore di un input per l’esecuzione del codice, nella programmazione Event Driven, guidano gli eventi ovvero le azioni, i cambiamenti di valore, le azioni eseguite dall’utente, come il click del mouse. Si ottiene quindi un maggior numero di possibilità di controllo. Gli eventi possono essere scatenati dall’ultente

Static Event

Eventi che a loro volta possono essere di tipo Notifier e o Filter (Prima di eseguire l’evento chiedo, es. PanelClose? permettono di annullare l’evento (Discard?=T).

Static Filter Event

Eventi Dinamici

Gli eventi dinamici, sono definiti da utente (User Event) mediante registrazione alla event structure.

Nell’articolo Queues Vs Notifier, abbiamo visto i Notifier (singolo elemento, no memoria, MultiWriter,MultiReader) e le Queues (Buffer, No perdita dati, MultiWriter SingleReader).

Il meccanismo degli user event è un mix tra i due, infatti può avere relazioni modificabili (Multi-Writer,Single-Reader e Multi-Writer,Multi-Reader) e funziona generando dati su un buffer FIFO, anche qui ogni buffer deve essere registrato quindi chi vuole ricevere i dati deve registrarsi all’evento.

Abbiamo quindi già un primo vantaggio rispetto alle code, inoltre l’evento lavora sul dato, per cui chi lo riceve riceve anche il dato.

Per spiegare meglio, facciamo riferimento alla QSM invio una stringa per decidere il case e un variant per passare il dato.

In questo caso invece l’evento è messaggio e porta con se il dato.

In questo caso è il parametro stesso a generare uno stato/evento, senza dover ricorrere al variant.

Queue Message
Event Message

Vantaggi principali dell’event driven.

  1. Mantengono memoria come per le code.
  2. MultiWriter e MultiReader.
  3. il messaggio incapsula il dato.
  4. Possono essere utilizzate in combinazione con eventi statici per le interfacce.

Use case Event Producer/Consumer

In questo esempio, abbiamo creato un evento (Create User Event), facendo attenzione di dare una label alla costante boolean (questo sarà il nome dell’evento nella struttura Event).

Ci sono tre processi con strutture ad eventi, nella prima che rappresenta il producer, non registriamo l’evento perchè sarà il generatore di eventi, ovvero lui non deve rispondere al <GlobalStop>:User Event, ma lo genera.

Gli altri due processi invece registrano lo User Event attraverso il metodo Register Event.

Infatti i due processi che saranno i consumer, aspettano l’evento e lo eseguono quando viene generato dal primo processo (UI-Handle).

Registrando questi eventi possiamo comunicare tra strutture ad eventi in cui quel particolare evento è stato registrato.

Conclusione

La programmazione Event Driven permette un utilizzo delle risorse più efficiente, semplifica il codice e permette il controllo di eventi dell’ interfaccia come eventi del mouse, finestre.

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

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.
L’azienda leader nel settore elettrico in Ungheria ha collaborato con Bytelabs per implementare un sistema avanzato di collaudo e caratterizzazione degli avvolgimenti elettrici. Utilizzando tecnologie come Advantech ADAM 5000 TCP, LabVIEW e il power meter Yokogawa WT5000, il sistema permette test ad alta velocità, salvataggio sicuro dei dati su un server SQL e creazione automatica di report PDF. La flessibilità di eseguire test manuali o automatici ha migliorato l’efficienza operativa, consentendo un collaudo più rapido e una tracciabilità dei prodotti ottimizzata. L’implementazione ha portato a significativi miglioramenti nell’efficienza e nella qualità del processo di collaudo e caratterizzazione degli avvolgimenti elettrici.
La certificazione dei prodotti è fondamentale per garantire la sicurezza e la qualità dei prodotti che vengono immessi sul mercato. Tra le diverse fasi del processo di certificazione, i test giocano un ruolo centrale, sia per garantire la conformità del prodotto ai requisiti normativi sia per verificare la sua affidabilità e sicurezza.