LabVIEW Functional Global Variable

La Functional Global Variable (FGV) è un design pattern molto utilizzato in quanto gestendo una memoria internamente ed essendo non rientrante viene spesso utilizzato per evitare race condition. In realtà si evitano race condition solo se questo viene utilizzato inserendo al suo interno il codice operativo, prendendo in questo caso il nome di Action Egine (AE).
Functional Global e Application engines

La Functional Global Variable (FGV) è un design pattern molto utilizzato in quanto gestendo una memoria internamente ed essendo non rientrante viene spesso utilizzato per evitare race condition.

In realtà si evitano race condition solo se questo viene utilizzato inserendo al suo interno il codice operativo, prendendo in questo caso il nome di Action Egine (AE).

Design Pattern Functional Global Variable

Si basa su :

  • While Loop con Loop Condition a true (Single Cycle Loop.
  • Shift Register non inizializzato.
  • Il VI deve essere impostato come non rientrante (default tranne per FPGA in cui è rientrante di default).
  • Enumeratore per la scelta delle azioni (Init, Get, Set) salvato come Type Def.

La FGV, limita l’accesso concorrente, ma non lo elimina, situazioni come quella descritta sotto non sono prive di Race condition.

Il vantaggio quindi esclusivo della FGV rimane quello di avere una memoria per il dato con possibilità di inizializzazione o preset.

Action Engine (AE)

Con l’inclusione del codice di esecuzione all’interno della FGV, le cose cambiano, si parla in questo caso di Action Engine e il codice viene eseguito iternamente quindi non sarà possibile il riprodursi di accessi concorrenti.

Ma da programmatori diventa anche un pattern molto comodo in quanto la logica è inserita all’interno di un unico VI, che si potrà modificare, modificadone tutte le istanze in cui viene utilizzato.

Altro vantaggio è lo sfruttare le memorie degli shift register, per esempio tenendo memoria della cassa di un ATM (esame CLD).

Le operazioni si eseguono all’interno, semplificando l’applicazione.

Sei nuovo di labVIEW o lo conosci ma vuoi imparare ad usarlo al meglio?

Se ti stai approcciando a labVIEW potresti trovare interessante una consulenza o uno dei nostri corsi.

I nostri Ingegneri sono tutti LabVIEW Certified Developer e Architect e hanno una profonda esperienza in labview e sistemi di misura.

Possiamo aiutarti con servizi di progettazione completa, consulenza come risrsa aggiunta o tutor per farti partire con la giusta architettura, risparmiandoti gli errori iniziali.

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.