Sei sulla pagina 1di 4

SCUOLA DI LABVIEW

06

Training per principianti

CONTROLLO
a cura di Matteo Foini

DELLINTERFACCIA UTENTE
Il VI Ser ver permette di accedere alle propriet e ai metodi del pannello frontale

uando scrivete dei programmi, spesso dovete cambiare gli attributi degli oggetti del pannello frontale da programma. Per esempio, potreste desiderare di rendere un oggetto invisibile fino a un certo punto dellesecuzione del programma. In LabVIEW, si usa il VI Server per accedere alle propriet e ai metodi del pannello frontale. Questa lezione spiega il VI Server, i Property Node (nodi delle propriet), i Control Reference (riferimenti dei controlli) e gli Invoke Node (nodi di chiamata).

Gli oggetti possono avere metodi e propriet. I metodi effettuano unoperazione, come la reinizializzazione di un oggetto al suo valore di default. Le propriet sono gli attributi di un oggetto. Le propriet di un oggetto possono essere la dimensione, il colore, la visibilit e cos via.

CLASSI DEI CONTROLLI


Gli oggetti del pannello frontale in LabVIEW ereditano propriet e metodi da una classe. Quando create un controllo Stop, esso un oggetto della classe dei booleani e ha propriet e metodi associati con quella classe, come mostrato nella Figura 1.

CLASSE DEI VI
I controlli non sono gli unici oggetti di LabVIEW che appartengono ad una classe. Il vostro VI appartiene alla classe dei VI e ha associate le sue propriet e i suoi metodi. Per esempio, potete usare i metodi della classe dei VI per terminare lesecuzione del vostro VI, per sistemare la posizione del pannello frontale e per prendere unimmagine dello schema a blocchi. Potete usare le propriet della classe dei VI per cambiare il titolo della finestra del vostro pannello frontale, per recuperare la dimensione dello schema a blocchi e per nascondere il pulsante di abbandono.

Figura 1 - Esempio di classe di booleani

A. ARCHITETTURA DEL VI SERVER


Il VI Server una tecnologia indipendente dalla piattaforma e orientata agli oggetti che d accesso in maniera programmatica a LabVIEW e alle applicazioni in LabVIEW. Il VI Server svolge molte funzioni; tuttavia, questa lezione si concentra sullutilizzo del VI Server per controllare gli oggetti del pannello frontale e modificare le propriet di un VI e di LabVIEW. Per capire come usare il VI Server, utile comprendere la terminologia ad esso associata.

B. PROPERTY NODE
I Property Node danno accesso alle propriet di un oggetto. In alcune applicazioni, potreste aver bisogno di cambiare da programma laspetto del pannello frontale in risposta a certi dati di ingresso. Per esempio, se un utente inserisce una password non valida, potreste volere che cominci a lampeggiare un LED rosso. Un altro esempio cambiare colore a una traccia su un grafico. Quando i dati superano un certo valore, potreste voler mostrare una traccia rossa invece di una verde. I Property Node vi consentono di effettuare queste modifiche programmaticamente. Potete anche usare i Property Node per ridimensionare gli oggetti del pannello

TERMINOLOGIA OBJECT-ORIENTED
La programmazione orientata agli oggetti basata su oggetti. Un oggetto un membro di una classe. Una classe definisce cosa un oggetto capace di fare, quali operazioni pu effettuare (metodi) e quali propriet possiede, quali il colore, la dimensione e cos via.

26

SCUOLA DI LABVIEW

frontale, nascondere parti del pannello frontale, aggiungere cursori ai grafici da programma e cos via. I Property Node in LabVIEW sono molto potenti e hanno molti usi. Questa sezione descrive degli esempi di propriet specifiche che possono cambiare da programma lapparenza e la funzione degli oggetti del pannello frontale. Fate riferimento al LabVIEW Help per maggiori informazioni sui Property Node.

CREAZIONE DI PROPERTY NODE


Quando volete creare un Property Node da un oggetto del pannello frontale, cliccate con il tasto destro sulloggetto, selezionate CreateProperty Node e selezionate una propriet dal menu rapido. In questo modo LabVIEW crea sullo schema a blocchi un Property Node che implicitamente collegato alloggetto del pannello frontale. Se loggetto ha una propria etichetta, il Property Node avr la stessa etichetta. Potete cambiare letichetta dopo la creazione del nodo. Potete anche creare pi Property Node per lo stesso oggetto.

sulla propriet, cliccate con il tasto destro sul nodo e selezionate Change to Write dal menu rapido. Se la piccola freccia di direzione della propriet sulla destra, state leggendo il valore della propriet. Se la piccola freccia di direzione della propriet sulla sinistra, state scrivendo il valore della propriet. Se il Property Node nella figura 2 impostato su Read (Lettura), quando va in esecuzione d come dato di uscita un booleano True se il controllo visibile e un booleano False se esso invisibile. Suggerimento Alcune propriet sono di sola lettura (come la propriet Label) o di sola scrittura come la propriet Value (Signaling). Per aggiungere dei terminali al nodo, cliccate con il tasto destro e selezionate Add Element dal menu rapido o usate lo strumento Positioning per ridimensionare il nodo. Quindi, potete associare ad ogni terminale del Property Node una differente propriet dal suo menu rapido. Suggerimento I Property Node eseguono ogni terminale in ordine dallalto verso il basso. Alcune propriet usano i cluster. Questi cluster contengono diverse propriet alle quali potete accedere usando le funzioni dei cluster. Scrivere su queste propriet in gruppo richiede la funzione Bundle e leggere da queste propriet richiede la funzione Unbundle. Per accedere alle propriet raggruppate, selezionate dal menu rapido All Elements. Per esempio, potete accedere a tutti gli elementi nella propriet Position selezionando PropertiesPositionAll Elements dal menu rapido. Tuttavia, potete anche accedere agli elementi del cluster come propriet singole, come mostrato nella figura 3.

UTILIZZO DEI PROPERTY NODE

Quando create un Property Node, esso inizialmente ha un terminale che rappresenta una propriet che potete modificare per il corrispondente oggetto del pannello frontale. Usando questo terminale, potete impostare (scrivere) la propriet oppure ottenere (leggere) lo stato corrente di quella propriet. Per esempio, se create un Property Node per un controllo numerico digitale, esso appare sullo schema a blocchi con la propriet Visibleselezionata di default. Una piccola freccia appare sul lato destro di quel terminale, indicando che state leggendo il valore di quella propriet. Potete cambiare lazione in scrittura cliccando con il tasto destro sul terminale e selezionando Change To Write dal menu rapido. La scrittura di un booleano False sul terminale della propriet Visible fa sparire il controllo numerico dal pannello frontale quando il Property Node riceve i dati. Figura 3 - Propriet che utilizzano i cluster Un booleano True lo fa riapparire. Per avere informazioni sulla propriet, cliccate con il tasto destro sul nodo e poi selezionate Change C. RIFERIMENTI DEI CONTROLLI to Read dal menu rapido. Per impostare le informazioni Un Property Node creato da un oggetto del pannello frontale o da un terminale dello schema a blocchi un Property Node implicitamente collegato. Questo significa che il Property Node collegato alloggetto del pannello frontale. Che cosa succede se dovete inserire i vostri Property Node in un subVI?. Allora gli oggetti non sono pi situati sul pannello frontale del VI che contiene i Property Node. In questo caso avete bisogno di Property Figura 2 - Utilizzo dei Proper ty Node Node collegati esplicitamente. Potete creare un Property

27

SCUOLA DI LABVIEW

06

Node esplicitamente collegato collegando un riferimento a un Property Node generico. Se state costruendo un VI che contiene diversi Property Node o se state accedendo alla stessa propriet per parecchi controlli e indicatori, potete inserire il Property Node in un subVI e usare i riferimenti dei controlli per accedere a quel nodo. Un riferimento del controllo un riferimento a uno specifico oggetto del pannello frontale.

Nota Una stella rossa sul controllo Control Reference indica che il refnum di tipo strict. Fate riferimento alla sezione Strictly Typed and Weakly Typed Control References dellargomento Controlling Front Panel Objects del LabVIEW Help.

CREAZIONE DEI RIFERIMENTI DEI CONTROLLI


Per creare un riferimento del controllo per un oggetto del pannello frontale, cliccate con il tasto destro sulloggetto o sul suo terminale sullo schema a blocchi e selezionate CreateReference dal menu rapido. Potete collegare questo riferimento del controllo a un Property Node generico. Potete passare il riferimento del controllo ad un subVI usando un terminale control refnum.

CREAZIONE DI UN SUBVI CON I PROPERTY NODE


Come mostrato nella figura 4, il modo pi semplice di creare Property Node collegati esplicitamente di completare i seguenti passaggi: 1. Create il vostro VI. 2. Selezionate la parte dello schema a blocchi che nel subVI, come mostrato nella prima parte della figura 4. 3. Selezionate EditCreate SubVI. LabVIEW crea automaticamente i riferimenti dei controlli necessari al subVI. 4. Personalizzate e salvate il subVI. Come potete vedere nella seconda parte della figura 4, il subVI utilizza licona e il riquadro dei connettori di default. Il subVI creato mostrato nella figura 5. Notate che i controlli Refnum del pannello frontale sono stati creati e connessi a un property node sullo schema a blocchi.

UTILIZZO DEI RIFERIMENTI DEI CONTROLLI


Impostare le propriet con il metodo dei riferimenti dei controlli utile per impostare le stesse propriet per pi controlli. Alcune propriet si applicano a tutte le classi di controlli, come la propriet Disabled. Alcune propriet sono applicabili solo a certe classi di controlli, come la propriet Housing Size, che si applica solo ai controlli Dial e Knob. Lesempio della figura 6 mostra come costruire un VI che utilizza un riferimento dei controlli sul subVI per impostare lo stato di un controllo Enable/Disable sul pannello frontale del VI principale. Il VI principale invia un riferimento per il controllo numerico digitale al subVI insieme a un valore zero, uno o due dal controllo enumerated. Il subVI riceve il riferimento per mezzo di Ctl Refnum sul suo pannello frontale. Il riferimento viene poi passato al Property Node. Poich il Property Node adesso collegato ad un controllo numerico nel VI principale, il Property Node pu cambiare le propriet di quel controllo. In questo caso, il Property Node manipola lo stato Enabled/Disabled. Notate laspetto del Property Node nello schema a blocchi. Non potete selezionare una propriet in un Property Node generico fino a quando non viene

Figura 4 - Utilizzo di EditCreate subVI per creare i riferimenti dei controlli

Figura 5 - Sub VI creato utilizzando EditCreate SubVI

28

SCUOLA DI LABVIEW

scelta la classe.La classe viene scelta collegando un riferimento al Property Node, Questo un esempio di Property Node collegato esplicitamente: Esso non collegato ad un controllo fino a quando il VI non in esecuzione e un riferimento passato al Property Node. Il vantaggio di questo tipo di Property Node la sua natura

D. INVOKE NODE
Usate gli Invoke Node per accedere ai metodi di un oggetto. Diversamente dal Property Node, un singolo Invoke Node esegue solo un singolo metodo per unapplicazione o un VI. Selezionate un metodo usando lo strumento Operating per cliccare sul terminale del metodo o cliccando con il tasto destro sullarea bianca del nodo e selezionando Methods dal menu rapido. Potete anche creare un Invoke Node cliccando con il tasto destro sulloggetto, selezionando CreateInvoke Node e selezionando un metodo dal menu rapido. Il nome del metodo sempre il primo terminale nellelenco dei parametri dellInvoke Node. Se il metodo restituisce un valore, il terminale del metodo visualizza il valore restituito. Altrimenti il terminale del metodo non d alcun valore. LInvoke Node elenca i parametri dallalto verso il basso con il nome del metodo in cima e i parametri opzionali, che sono opachi, in basso.

METODI DI ESEMPIO
Figura 6 - Riferimenti dei controlli

generica. Poich esso non ha alcun collegamento esplicito ad alcun controllo, pu essere riutilizzato per pi controlli diversi, Questo generico Property Node disponibile nella palette Functions.

Un esempio di un metodo comune a tutti i controlli il metodo Reinitialize to Default. Usate questo metodo per reinizializzare un controllo riportandolo al suo valore di default in un qualsiasi punto del vostro VI. La VI class ha un metodo simile chiamato Reinitialize All to Default.

SELEZIONE DEL TIPO DI CONTROLLO


Quando inserite un Control Refnum nel pannello frontale di un subVI, avete poi bisogno di specificare la VI Server Class del controllo. Questo specifica il tipo di riferimenti dei controlli che quel subVI accetter. Nellesempio precedente, Control era selezionato come tipo VI Server Class, come mostrato nella figura 6. Questo consente al VI di accettare un riferimento per qualsiasi tipo di controllo del pannello frontale. Tuttavia, potete indicare una classe pi specifica per il refnum per rendere il subVI pi restrittivo. Per esempio, potete selezionare Digital come classe e il subVI pu accettare solo riferimenti a controlli numerici della classe Digital. La selezione di una classe pi generica per un refnum del controllo consente di accettare un pi vasto insieme di oggetti, ma limita le propriet disponibili a quelle che si applicano a tutti gli oggetti che il Property Node pu accettare. Per selezionare una specifica classe di controlli, cliccate con il tasto destro sul controllo e selezionate Select VI Server ClassGenericGObjectControl dal menu rapido. Poi selezionate la specifica classe di controlli di cui avete bisogno.

Figura 7 - Invoke Node per il metodo Expor t Image

La figura 7 un esempio di metodo associato alla classe Waveform Graph. Questo metodo esporta limmagine del waveform graph sulla clipboard o su un file.
Readerser vice.it n. 625

Note sullautore
Laureato in ingegneria nucleare al Politecnico di Milano, Matteo Foini lavora in qualit di Technical Marketing Engineer presso National Instruments Italy

29