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.

Vuoi approfondire l'argomento? Hai un progetto e stai cercando un Team che ti possa supportare?

ti potrebbero interessare

Nuovo sistema di controllo per Prove Motoriduttori

Bonfiglioli ha rinnovato il laboratorio prove con un sistema basato su CompactRIO, riducendo i tempi di acquisizione a 5 ms e integrando gestione cloud e allarmi real-time, migliorando efficienza e

Oltre la Taratura: L’Integrazione dei Sistemi di Gestione della Taratura nell’Era Digitale

La digitalizzazione dei processi di taratura consente tracciabilità, automazione e integrazione con altri sistemi aziendali, migliorando efficienza, qualità, sicurezza e conformità normativa.

LabVIEW: Come Far Crescere il Tuo Team Tecnico Interno

Dopo la pandemia si è tornati a investire su risorse interne per Test e Misura. Ma come formare team LabVIEW? ByteQX propone un percorso in 3 fasi: certificazioni, tool low-code