LabVIEW tutorial – Introduzione

Introduzione a Labview

LabVIEW è un ambiente di sviluppo grafico altamente produttivo ed efficace, nato a metà degli anni ‘80. Può essere utilizzato per realizzare sistemi di automazione, controllo, elaborazione di segnali, apparecchiature di test automatico, ed altro ancora. In questa serie di articoli partiremo dalle basi ed esploreremo molte delle innumerevoli funzionalità di LabVIEW.

LabVIEW è un linguaggio di programmazione grafico ad alto livello che offre la possibilità di realizzare software modulari e riutilizzabili. A differenza dei linguaggi di programmazione classici, l’ambiente grafico mette a disposizione dei blocchi che rappresentano funzioni, dalle più semplici alle più complesse, gestibili tutte secondo le stesse modalità. 

Personalmente, ho avuto modo di utilizzare LabVIEW per realizzare stazioni di test automatici e ad oggi lo ritengo il miglior strumento disponibile per tale scopo. Il collaudo di un sistema come di una singola scheda è una parte importante della progettazione; si può facilmente capire come un collaudo inefficiente possa vanificare completamente gli sforzi fatti per la messa a punto di un progetto. 

Mentre all’estero la figura del Test Engineer è presente quasi ovunque e segue lo sviluppo di un progetto fin dagli inizi, da noi capita spesso che il progettista stesso sia incaricato di sviluppare l’attrezzatura ed il software di collaudo ma questi tendono ad avere un budget di spese e tempo sempre più limitato. Ecco perché LabVIEW offre un’ottima possibilità ai progettisti ed alle aziende per sviluppare con risparmio di tempo, quindi di denaro, e soprattutto realizzando software ad elevata manutenibilità. 

Con questa premessa non si pensi erroneamente che LabVIEW sia limitato a realizzare esclusivamente software di collaudo, esso offre infinite possibilità di applicazioni ma nella progettazione di un sistema elettronico o di una singola scheda, magari solo analogica e quindi priva di comunicazione verso un PC, LabVIEW offre ottime possibilità per realizzare un collaudo rapido ed efficace, anche grazie alle varie interfacce prodotte da National Instruments. In questo primo articolo verrà presentata l’interfaccia grafica di LabVIEW e i comandi base per poter accedere alle diverse funzioni. Nei successivi articoli scopriremo funzionalità come il riutilizzo dei VI creati, la manipolazione di stringhe e dati, la comunicazione seriale, l’interfacciamento verso gli strumenti mediante bus GPIB ed altro ancora.

 

Interfaccia grafica

All’esecuzione di LabVIEW viene presentata la possibilità di scegliere tra la creazione di un nuovo progetto e l’apertura di uno esistente. Scegliamo la prima opzione e creiamo un Blank VI (Virtual Instrument). Si apriranno tre finestre: la prima è denominata Front Panel (Figura 1) ed è la finestra di progettazione dell’interfaccia dell’applicazione; la seconda è denominata Block Diagram e rappresenta il “sorgente” dell’applicazione. La terza è la finestra dei controlli o delle funzioni (a seconda che si stia lavorando nel Front Panel o nel Block Diagram) e contiene tutti gli oggetti possibili da utilizzare nello sviluppo.

 

Figura 1 – Front Panel e Controls Palette

 

Guardiamo più nel dettaglio la finestra del Front Panel. In alto si può notare la barra dei menu ed immediatamente sotto, la barra di esecuzione e disegno i cui pulsanti rappresentano le seguenti funzioni: Esecuzione, Esecuzione continua, Interrompi esecuzione, Pausa, menu di dimensionamento e tipo caratteri, quattro pulsanti-menu riguardanti l’allineamento e la distribuzione degli oggetti grafici, barra di ricerca e pulsante della guida.

In alto a destra si vedono due figure: quella di sinistra rappresenta l’assegnazione dei segnali di ingresso e di uscita del VI, di cui parleremo in seguito, quella di destra è l’icona con cui il VI è rappresentato.

L’area quadrettata è lo spazio disponibile per inserire gli oggetti.

La seguente figura mostra la finestra Block Diagram

 

Figura 2 – Block Diagram e Functions Palette

 

A parte la mancanza di quadretti nell’area di progettazione, sembra uguale al Front Panel ma la differenza sostanziale sta nei cinque pulsanti di debug dell’applicazione che consentono di evidenziare graficamente l’esecuzione del programma, come di eseguirla a step. Vedremo in seguito alcuni esempi sull’utilizzo di queste funzionalità.

 

Creazione del primo VI

Quello che creeremo sarà un VI contenente un’indicatore di testo, un interruttore per cambiare il messaggio visualizzato ed un pulsante per interrompere l’esecuzione del VI stesso.

Passare alla finestra Front Panel e nella Controls Palette fare click su Text Inds nella sezione Express e successivamente su String Ind. Spostarsi nell’area di progettazione e posizionare l’indicatore, rinominandolo “Stringa di prova”. Con le stesse modalità, inserire un Toggle switch (dentro Buttons della sezione Express) e rinominarlo Interruttore. Il risultato apparirà così:

 

Figura 3 – Posizionamento oggetti nel Front Panel

 

Premere CTRL+E per passare al Block Diagram. Dalla Functions Palette, cliccare su Exec Control nella sezione Express e successivamente su Case structure. Posizionarsi nell’area di progettazione e fare un click in un’area vuota per scegliere il primo angolo della struttura Case; spostarsi ed eseguire click una seconda volta per scegliere l’angolo opposto. Il risultato apparirà come nella seguente figura:

 

Figura 4 – Posizionamento oggetti nel Block Diagram

 

Un Case Structure è l’equivalente di un switch-case in C, la variabile di ingresso può essere booleana, intera o altro.  Il tipo di variabile viene riconosciuto automaticamente quando si collega l’ingresso del Case ad un elemento. Collegare ora l’interruttore all’ingresso del Case: essendo l’interruttore un tipo booleano ed il case inserito di default dello stesso tipo, non si avranno cambiamenti nell’intestazione del case stesso.

Ora posizioniamo le stringhe da visualizzare: nella sezione Programming della Functions Palette, accedere String, e posizionare una String Constant all’interno del Case Structure. Una volta posizionato, scrivere all’interno la stringa Hello world!. Posizionandosi al centro del lato destro del rettangolo contenente la stringa, il cursore del mouse cambia trasformandosi da un puntatore a croce in un rocchetto di filo: questo indica la possibilità di eseguire un collegamento. Fare click e spostarsi fino alla freccia sul lato sinistro del quadrato Stringa di prova. Cliccare nuovamente per completare il collegamento. Effettuato il collegamento, si noterà un quadrato rosa sul bordo del Case structure e questo rappresenta il “pin” di collegamento tra la struttura e l’indicatore; questo pin andrà sempre collegato all’interno di ogni case della struttura, come vedremo tra poco.

Mediante le frecce poste ai lati dell’indicazione del case (in alto nel Case structure), passare al caso “False”. Posizionare una nuova String Constant, inserire il testo Hello EOS readers! e collegarla al pin di uscita.

Tornare al Front Panel e cliccare sul pulsante di esecuzione del VI (la prima icona nella barra dei pulsanti). L’esecuzione sarà interrotta immediatamente e nell’indicatore si leggerà il testo “Hello EOS”: provare a ridimensionare l’indicatore affinché visualizzi il testo intero. Cliccare sull’interruttore affinché cambi visivamente lo stato e si sposti verso l’alto, eseguire nuovamente il VI e vedere l’indicatore visualizzi ora “Hello world!”. Cerchiamo ora di rendere più dinamico ed interattivo il nostro VI.

All’interno del Block Diagram, inserire un While Loop con le stesse modalità indicate per il Case Structure; il While Loop dovrà contenere tutti gli elementi che abbiamo inserito prima. Questa struttura è equivalente ad un ciclo while, ripetuto finché è vera una certa condizione; la condizione è uno stato vero o falso che va collegato al segnale di STOP (cerchio rossi nel quadrato verde) in basso a destra della struttura creata. Cliccando col tasto destro sul pin dello stop apparirà un menu, come mostrato nella seguente figura:

 

Figura 5 – Opzioni dei pin

 

Questo menu è disponibile per ogni tipo di pin, ovviamente cambiano le specifiche proprietà, ma le funzioni Create e le Properties sono elementi comuni.

Oltre a poter selezionare quale condizione (vera o falsa) interrompa il ciclo, possiamo creare degli oggetti: costante, controllo ed indicatore. Constant e Control si creano per gestire gli input di un oggetto, Indicator per visualizzare un output. Cliccare su Create Control per creare un controllo (un pulsante) che consentirà di gestire l’esecuzione del ciclo while. Il pulsante verrà denominato di default “stop”. Nella seguente figura si può vedere il Block Diagram completo:

 

Figura 6 – Block Diagram completo

 

Eseguendo nuovamente il VI, si vedrà come questo rimanga in esecuzione ed il toggle dell’interruttore consenta di cambiare dinamicamente il testo visualizzato. Per interrompere l’esecuzione sarà sufficiente premere il pulsante STOP (aggiunto in automatico dal Block Diagram).

 

Figura 7 – Front Panel del VI in esecuzione

 

In allegato trovate il VI realizzato con questo primo tutorial. Potete provare a modificarlo, ad inserire ulteriori controlli e indicatori oppure a realizzarne uno vostro facendo esperienza con i comandi visti sopra.

 

Per ulteriori informazioni su LabVIEW, visitare la pagina dedicata sul sito National Instruments.

7 Comments

  1. Piero Boccadoro 16 novembre 2012
  2. Emanuele 16 novembre 2012
  3. Raffaele Tegas 16 novembre 2012
  4. Piero Boccadoro 16 novembre 2012
  5. Raffaele Tegas 17 novembre 2012
  6. Alessio Luchetta 17 novembre 2012
  7. Piero Boccadoro 24 novembre 2012

Leave a Reply