Costruisci il tuo test sequencer con OOP e Variant LookUpTable

Utilizzare una Variant lookup table, basata su Set/Get Variant Attribute, vediamo come utilizzarla con la programmazione ad oggetti, realizzando un semplice sequencer.

L’utilizzo di una Variant Lookup Table, basata su Set/Get Variant Attribute, offre un potente strumento per la gestione dinamica dei dati in LabVIEW. In questo articolo vedremo come combinare questa tecnica con la Programmazione a Oggetti (OOP) per realizzare un semplice test sequencer.

Obiettivo

Vogliamo costruire un test sequencer che dimostri la versatilità dell’approccio Set/Get Variant Attribute come lookup table, utilizzando le classi come elementi. L’obiettivo è rendere la gestione dei test modulare e scalabile, sfruttando i vantaggi della programmazione orientata agli oggetti.

1- Definizione delle classi

Classe Test: Rappresenta la classe astratta, ovvero il test come definizione. Per semplificare abbiamo creato un solo metodo che avrà il compito di contenere il codice di esecuzione del test.

Si crea quindi il lmetodo Test.VI che verrà riscritto (Override) nelle classi che ereditano da Test.

Procedimento: Andare su my computer e NEW/Class quindi spostarsi sulla classe Test appena creata e NEW/Vi from Dynamic Dispatch Template

Classe Test01: Eredita dalla classe Test e ne riscrive il metodo Test.vi

Procedura : Creare una nuova classe, quindi andare nelle property della classe appena creata, quindi in Inheritance , premere change inheritance e selezionare la classe test.

Ora eseguiamo l’override del metodo test selezionando la casse Test01 e New/vi from override, selezioniamo  Test.vi

Classe Test 2 : identica procedura della classe Test01

Al termine della procedura avremo cliccando show hierarchy sulla classe Test, la seguente gerarchia che mostra la relazione Padre/Figli tra la classe astratta Test e le classi figlio Test01 e Test02.

Il progetto mostrerà come da figura le classi con i relativi metodi Test.vi.

Ora creiamo un vi (da myComputer, New VI) e trasciniamo le classi Test01 e Test02, quindi andiamo nella palette Variant e trasciniamo il Variant Set attribute(ne serviranno 2).

Colleghiamo la classe Test come ingresso del variant(non è obbligatorio, si può mettere anche un variant o altro).

2- Esempio Applicativo:

Completare inserendo un For Loop (per farlo eseguire in modo continuo ho messo un while) in cui eseguire i test come nell’immagine successiva.

Quindi eseguendo il vi, il Get Variant Attribute seleziona la classe associata alla chiave di testo che ho associato nel Set Attribute.

Utilizzare questo modello per creare delle lookup table ha il vantaggio di inserire direttamente diversi tipi di dato, diversamente dei modelli basati sugli array è dinamico diversamente dall’utilizzo dei cluster e soprattutto come potrete trovare googlando sul tema, ha un algoritmo di ricerca non lineare che lo rende estremamente piu veloce.

3- Approfondimenti e ispirazioni:

ftp://ftp.ni.com/pub/events/webcasts/variant_attribute_lookup_table.pdf

https://forums.ni.com/t5/LabVIEW-Development-Best/Using-Variant-Attributes-for-High-Performance-Lookup-Tables-in/ba-p/3478922

Picture of Nicola Bavarone
Nicola Bavarone
Appassionato di LabVIEW CLA CPI

Altri articoli dal nostro Blog

Mettiti in contatto