Malleable VI

I VIM o VI malleable, sono Vi polimorfi sul dato. Sono da tenere in considerazione nella creazione delle proprie API.

I Malleable VI sono vi polimorfi sul dato.

Possono quindi adattarsi al dato di input trasformando di conseguenza il dato in uscita.

A differenza dei VI polimorfi che erano collezioni di vi’s incapsualti in un modello di vi chiamato Polimorfo, in questo caso non si devono fare diversi vi, sarà il vi che si adatta al dato.

Ovviamente necessitano di alcuni accorgimenti obbligatori.

Abbiamo provato a fare un esempio per farne capire non solo la funzionalità ma anche l’enorme comodità.

Obiettivo è quello di realizzare un Buffer Circolare polvalente per qualsiasi tipo di dato.

Scegliamo di utilizzare l’API Queue Operations

Queue Operations APi palette

Creazione del Buffer

Crea Buffer circolare
Il codice crea la coda e ne porta fuori la reference.

Se salviamo così comìè il codice come .vim (estensione per malleable vi) notiamo che la freccia sarà rotta.

Seguendo le indicazioni vediamo che il vi deve essere impostato come esecuzione rientrante preallocata, SubVI in linea e togliendo la spunta invece dalla automatic error handling e AllowDebug.

Impostazioni obbligatorie per vi malleable

Queste impostazioni saranno da ripetere per tutti i file che vogliamo salvare di tipo vim.

Sfruttiamo il vi Loss Enqueue per inserire i nuovi elementi, perdendo il più vecchio, il Get Queue Status, con il flag return data a True.

lossy enqueue
Notare che Queue in, Queue Out, element e elements si adatteranno, mentre message rimarrà una stringa adattandosi internamente al dato di ingresso.

L’ultimo VI di questa libreria è il Destroy Queue che distrugge la coda e dealloca la memoria.

destroy queue
Ora possiamo salvare i tre vi in una vi library.

Creiamo ora un Test VI per verificare il funzionamento

Test malleable circular buffer string
Ora basta modificare i dati di ingresso per ottenere un buffer circoare su numerici per esempio
Test malleable circular buffer numeric

L’introduzione dei VI Malleable, elimina la necessità di creare covertitori per i vari tipi di dato e direttamente le funzioni si adattano al dato, si deve prestare molta attenzione alle impostazioni che potrebbero modificarne il funzionaento e il risultato.

Troviamo già diversi VIM nelle palette riconoscibili dal colore arancio.

Vi malleable in array palette

Approfondimenti

https://www.ni.com/docs/en-US/bundle/labview/page/lvconcepts/malleable_vis_intro.html

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.