Home
Accesso / Registrazione
 di 

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.

AllegatoDimensione
art01-vi01.zip4.17 KB

 

 

Scrivi un commento all'articolo esprimendo la tua opinione sul tema, chiedendo eventuali spiegazioni e/o approfondimenti e contribuendo allo sviluppo dell'argomento proposto. Verranno accettati solo commenti a tema con l'argomento dell'articolo stesso. Commenti NON a tema dovranno essere necessariamente inseriti nel Forum creando un "nuovo argomento di discussione". Per commentare devi accedere al Blog
ritratto di Piero Boccadoro

Ho scoperto LabVIEW due anni fa quando un mio professore ce lo h

Ho scoperto LabVIEW due anni fa quando un mio professore ce lo ha fatto utilizzare per un esame e devo ammettere che è stata una piacevole scoperta.
Di sicuro, una delle poche cose buone fatte dalla Apple in tutta la loro storia. :)

ritratto di Antonello

A me onestamente LabVIEW pare troppo macchinoso. Non mi piace

A me onestamente LabVIEW pare troppo macchinoso.
Non mi piace granchè, se devo essere sincero.
Credo che la programmazione fatta con questo volume di "aiutini" grafici sia molto svilita..

ritratto di Emanuele

Grazie a Raffaele, riprendiamo l'argomento dopo un po' di tem

Grazie a Raffaele,
riprendiamo l'argomento dopo un po' di tempo :)

Tra gli articoli su Labview pubblicati in passato, segnalo uno dei più interessanti:

Come ridurre i costi degli strumenti di test della National Instruments

ritratto di Guest

Lavoro con Labview da oltre 10 anni e posso dire che in alcune s

Lavoro con Labview da oltre 10 anni e posso dire che in alcune situazioni, tipo controllo strumentazione ed acquisizione dati, non ha eguali per velocità di programmazione e raggiungimento di determinati obbiettivi. Il discorso è diverso nel caso in cui si devono realizzare applicazioni di media alta complessità, il paradigma di programmazione è abbastanza diverso da un classico linguaggio text-based.

ritratto di Raffaele Tegas

Grazie a te ed ai tuoi collaboratori per avermi consentito di sc

Grazie a te ed ai tuoi collaboratori per avermi consentito di scrivere questo tutorial. Mi auguro che il risultato possa migliorare continuamente e che, facendo tesoro di critiche e suggerimenti, possa contribuire all'espansione del vostro blog.
Grazie,

Raffaele

ritratto di Guest

Lavoro con Labview da oltre 10 anni e posso dire che in alcune s

Lavoro con Labview da oltre 10 anni e posso dire che in alcune situazioni, tipo controllo strumentazione ed acquisizione dati, non ha eguali per velocità di programmazione e raggiungimento di determinati obbiettivi. Il discorso è diverso nel caso in cui si devono realizzare applicazioni di media alta complessità, il paradigma di programmazione è abbastanza diverso da un classico linguaggio text-based.

ritratto di Piero Boccadoro

Senti, effettivamente la veste grafica che regala alla programma

Senti, effettivamente la veste grafica che regala alla programmazione non è esattamente quello che sembrerebbe utile agli esperti ma mi sento di confermare quello che ha scritto il nostro "ospite": LabVIEW è seriamente interessante e molto "propositivo".
Non guardarla come una veste semplicistica ma come un modo per rendere tutto più evidente e facilitare il debug di quello che fai :)

ritratto di Raffaele Tegas

Ciao, concordo con la diversità rispetto a linguaggi text-based

Ciao, concordo con la diversità rispetto a linguaggi text-based ma anche per applicazioni complesse, gli strumenti offerti, e la loro semplicità di utilizzo, sono davvero impressionanti. Il primo esempio che mi viene in mente è l'abbinamento con TestStand per poter automatizzare la sequenza di test e la generazione di report, oltre a feature che aiutano nella stesura di procedure di troubleshooting.
Per ogni strumento esiste un utilizzo ottimale che consente di definirlo la soluzione migliore. LabView si distingue dai classici linguaggi per la rapidità ed efficacia nello sviluppo di applicazioni di controllo e di interfacce grafiche dedicate allo scopo.

ritratto di Alessio Luchetta

Sono d'accordo , infatti nel corso della mia esperienza lavorati

Sono d'accordo , infatti nel corso della mia esperienza lavorativa ho sviluppato, utilizzando lv, applicazioni complesse con ottimi risultati.
E proprio grazie all'utilizzo degli add-on e di strumenti collegati il compito risulta più semplice.
Chi è abituato a programmare utilizzando linguaggi text-based può trovare "svilente" programmare in modo grafico, in realtà bisogna conoscere bene l'ambiente per evitare di incappare in errori , ad esempio gestione della memoria con variabili globali e locali. In questo senso dicevo che il paradigma di programmazione è diverso : il cosiddetto data flow.

Comunque a parte questi aspetti è sicuramente è uno strumento utilissimo, rapido e con ottima grafica.

ritratto di National Instruments

Ciao Piero, una piacevole invenzione fatta da National Instrumen

Ciao Piero, una piacevole invenzione fatta da National Instruments, non da Apple :)

ritratto di Piero Boccadoro

In realtà non ho la più pallida idea del perchè io l'abbia scrit

In realtà non ho la più pallida idea del perchè io l'abbia scritta così male ma Vi ringrazio per avermi ripreso visto che, scritta così, è certamente più che sbagliata!

Quello che avrei tanto voluto significare è che (per quanto ne so io) il programma fu sviluppato originariamente per sistemi Apple (e per quanto ne so io si tratta di una "creazione" datata 1986) e che la ritengo un'iniziativa lodevole di apertura (nonchè una questione di mentalità lungimirante) da parte di questa azienda.

Ma approfitterò volentieri della Vostra presenza qui per chiederVene conferma :D

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 7 utenti e 68 visitatori collegati.

Ultimi Commenti