1 / 45

LabVIEW Lab oratory V irtual I nstrument E ngineering W orkbench

LabVIEW Lab oratory V irtual I nstrument E ngineering W orkbench. Introduzione. Introduzione. Introduzione. Ambiente di sviluppo per particolari applicazioni: Acquisizione dati e gestione strumentazione. Creazione di interfacce utente dedicate.

Download Presentation

LabVIEW Lab oratory V irtual I nstrument E ngineering W orkbench

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LabVIEWLaboratory Virtual Instrument Engineering Workbench • Introduzione Giada Giorgi

  2. Introduzione • Introduzione • Ambiente di sviluppo per particolari applicazioni: • Acquisizione dati e gestione strumentazione. • Creazione di interfacce utente dedicate. • Creazione di test dedicati per il controllo di apparati. • Ambiente grafico di programmazione grafica ad oggetti: • Il programma equivale a un diagrammi a blocchi. • Permette l’integrazione con sistemi per acquisizione dati e controllo di strumentazione: • Interfacce IEEE-488, RS-232/422, schede A/D-D/A, GPIB, VXI, LXI. • Dispone di una ricca collezione di librerie: • Interazione con il sistema operativo • Post-processing dei dati • Immissione e visualizzazione dei dati. Giada Giorgi

  3. Differenze tra strumento stand-alone e VI • Introduzione Strumento stand-alone • Interazione solo attraverso il pannello frontale. • Pannello frontale fisso. • Funzioni svolte da strumento prefissate. Strumento virtuale • Interazione indiretta con uno o più strumenti. • Pannello frontale gestibile dal programmatore. • Elaborazione e post-processing dei dati. • Sviluppo di appositi test di misura. Giada Giorgi

  4. GENERATORE DI FUNZIONI OSCILLOSCOPIO AMPLIF. LINEARE STRUMENTO VIRTUALE Esempio • Introduzione Giada Giorgi

  5. Definizione di Virtual Instrument (VI) • Un programma è detto Virtual instrument (VI). • L’aspetto e le operazioni dei VI “imitano” quelle degli strumenti reali, come oscilloscopi, multimetri, ecc. • Un VI è composto da 3 parti: • Pannello frontale: interfaccia utente • Diagramma a blocchi: contiene il codice sorgente del VI che ne definisce le funzionalità. • Icona e connettore: identificano il VI in modo da poterlo riutilizzare in un altro VI. • L’icona è un simbolo associato al VI. • Il connettore definisce gli ingressi e le uscite del VI. • Definizione di VI Giada Giorgi

  6. Pannello frontale – Front Panel • Pannello frontale Controllo Indicatore • Il pannello frontale è l’interfaccia utente di un VI. • E’ formato da controlli ed indicatori: • i controlli rappresentano gli ingressi del programma (manopole, bottoni, finestre di dialogo,ecc.), • gli indicatori rappresentano le uscite del VI (LED, display, messaggi testuali, ecc.). Giada Giorgi

  7. Diagramma a blocchi – Block Diagram • Il diagramma a blocchi contiene il codice sorgente. • Il codice sorgente è formato da funzioni e strutture rappresentati graficamente per mezzo di blocchi. • Gli oggetti del pannello frontale (input e output del programma) sono rappresentati da terminali. • Terminali e blocchi sono collegati per mezzo di fili (wires). • L’ordine di esecuzione del programma è determinato dal flusso di dati (dataflow). • Block Diagram Giada Giorgi

  8. Diagramma a blocchi – Block Diagram • Block Diagram Indicatore Filo Controlli Terminali Blocco Giada Giorgi

  9. Flusso di esecuzione - 1 • Block Diagram 3 8 5 Giada Giorgi

  10. Flusso di esecuzione - 2 • Block Diagram 3 8 5 1 7 Giada Giorgi

  11. Icona e connettore • Nell’angolo in alto a destra del pannello frontale e del block diagram è visualizzata l’icona associata al VI. • Right-click con il mouse sull’icona si aprirà un menù a tendina: • VI properties: informazioni sul VI. • Edit icon: creazione dell’icona. • Show connector: visualizza il connettore. • Right-click con il mouse sul connettore si aprirà un menù a tendina per impostarne le proprietà. • Usare il tool wiring per connettere indicatori e controlli ai terminali del connettore. • Icona e connettore Icona Connettore Giada Giorgi

  12. Ambiente di sviluppo • Ambiente di sviluppo Giada Giorgi

  13. Tools palette • Tools Palette Giada Giorgi

  14. Controls Palette Labview 8.0 • Disponibile solo per il Pannello frontale. • Contiene le librerie di oggetti indicatori e controlli. • Per posizionare un oggetto è sufficiente selezionare l’oggetto dalla Controls Palette e trascinarlo nel Pannello Frontale. • Controls Palette Giada Giorgi

  15. Functions Palette • Disponibile solo per il Diagramma a blocchi. • Contiene le librerie di blocchi e funzioni per la realizzazione del codice sorgente. • Per posizionare un oggetto è sufficiente selezionare l’oggetto dalla Functions Palette e trascinarlo nel Diagramma a Blocchi. • Functions Palette FUNCTIONS Giada Giorgi

  16. Running e Debugging • Running e Debugging Giada Giorgi

  17. Pannello frontale: Controlli ed Indicatori • Definizione dell’interfaccia utente. • L’interfaccia utente è data dall’insieme di controlli ed indicatori sul pannello frontale. • Right-click con il mouse sul controllo/indicatore viene visualizzato un menù a tendina: • Cambiare da controllo ad indicatore e viceversa. • Creare variabili locali, ecc. • Sostituire con un altro controllo/indic. • Inizializzare la variabile. • Modificare il tipo di dati, il range di valori accettabili, il loro formato, precisione e notazione. • Controlli ed Indicatori Giada Giorgi

  18. Pannello frontale: Controlli ed Indicatori • Controlli ed Indicatori Giada Giorgi

  19. Pannello frontale: Controlli ed Indicatori • Controlli ed Indicatori Giada Giorgi

  20. Pannello frontale: Diagrammi e grafici • Collezione di oggetti adatti alla rappresentazione di diagrammi e grafici. • Diverse modalità di connessione ai terminali interni al VI e di visualizzazione. • I più utilizzati sono: • Waveform chart: riceve in ingresso un valore scalare. • Waveform graph: riceve in ingresso un vettore di dati. • XY Graph: riceve in ingresso un cluster di numeri. • Diagrammi e grafici Giada Giorgi

  21. Pannello frontale: Waveform Chart • Tipo di indicatore numerico che visualizza uno o più plot di dati, tipicamente acquisiti ad un rate costante. • Mantiene la storia delle precedenti acquisizioni (la dimensione del buffer viene impostata da Chart History Length). • La frequenza con la quale vengono inviati i dati al chart determina la velocità di aggiornamento. • Diagrammi e grafici Giada Giorgi

  22. Pannello frontale: Waveform Graph • Aspetto sul pannello frontale identico ai Waveform Chart. • Vengono costruiti in un unico momento. • Visualizzano i dati contenuti in un vettore. • Diagrammi e grafici Giada Giorgi

  23. Pannello frontale: XY Graphs • Grafico di tipo general-purpose, in grado di visualizzare un insieme qualsiasi di punti. • Può inoltre visualizzare (funzioni avanzate) il piano di Nyquist, il piano S, Z, ecc. • Diagrammi e grafici Giada Giorgi

  24. Block diagram: Tipi di dati Controlli Indicatori Boolean Intero con segno a 32 bit Intero senza segno a 32 bit Intero con segno a 16 bit Intero senza segno a 16 bit Intero con segno a 8 bit Intero senza segno a 8 bit Double Double complesso • Tipi di dati String Cluster Giada Giorgi

  25. Block diagram: Ciclo for e while • I cicli vengono rappresentati mediante strutture grafiche. • Ogni struttura ha un bordo ridimensionabile che comprende la sezione del diagramma a blocchi appartenente al corpo del ciclo. • Le strutture hanno terminali che le connettono ad altri blocchi o strutture detti tunnel. • Quando sono disponibili dei valori validi in ingresso, queste strutture vengono eseguite automaticamente. • Al termine dell’esecuzione della struttura vengono automaticamente forniti i dati in uscita. • Ciclo for e while Giada Giorgi

  26. Block diagram: Ciclo For Si vuole calcolare la potenza y=x^a, dove i valori x ed a vengono forniti come variabili di ingresso: INPUT -> x //Base INPUT-> a //Esponente temp = 1 //Variabile temporanea N = a //Numero di cicli for i=0 to N-1{ temp=temp*x //Corpo del ciclo } y = temp -> OUTPUT//Potenza • Ciclo for e while Giada Giorgi

  27. Block diagram: Ciclo For Count terminal • Il valore del count terminal (N) indica il numero di iterazioni. E’ una variabile di ingresso. • Il valore dell’iteration terminal (i) contiene il numero di iterazioni completate. E’ una variabile di uscita. Il valore iniziale è pari a 0. • N ed i sono interi con segno a 32 bit. • Per passare dei valori da un’iterazione del ciclo alla successiva si usano degli shift register. Shift register Iteration terminal • Ciclo for e while Giada Giorgi

  28. Block diagram: Ciclo for • Invece dello shift register è possibile utilizzare una feedback note. • La feedback note viene creata automaticamente quando si collega l’uscita di un blocco con l’ingresso dello stesso. • Ciclo for e while Giada Giorgi

  29. Block diagram: While loop Iteration terminal Conditional terminal • Il ciclo while viene eseguito fino a quando il Conditional Terminal (variabile di ingresso booleana) assume uno specifico valore. • Per modificare il valore della variabile di controllo, right-click con il mouse sulla variabile e spuntare l’opzione desiderata dal menù a tendina. • Il valore dell’Iteration Terminal (i) contiene il numero di iterazioni completate. E’ una variabile di uscita. Il valore iniziale è pari a 0. • Ciclo for e while Giada Giorgi

  30. Block diagram: Osservazioni • Il valore delle variabili fornite in ingresso al ciclo viene letto soltanto una volta all’inizio del ciclo e non ad ogni iterazione del ciclo. • Il valore delle variabili in uscita al ciclo viene aggiornato soltanto alla fine del ciclo e non ad ogni iterazione del ciclo. • Le variabili locali sono utili per la lettura, all’interno di un ciclo, del valore di un controllo esterno al ciclo. • Ciclo for e while Giada Giorgi

  31. Block diagram: Variabili locali Esempio: si vuole realizzare un VI che incrementa un contatore ogni 250 ms con possibilità di fermare sia l’iterazione, sia il VI. Arresta iterazione ma non il VI (conteggio riparte da 0). Arresta VI (quindi anche iterazione) senza dover premere il pulsante “STOP”. • Ciclo for e while Giada Giorgi

  32. Block diagram: Prima soluzione… • Ciclo for e while Giada Giorgi

  33. Block diagram: Seconda soluzione… • Ciclo for e while Giada Giorgi

  34. Block Diagram: Struttura if • Queste strutture eseguono una parte di codice piuttosto che un’altra a seconda del valore assunto dalla variabile di controllo, detta Selector Terminal. • Per ottenere una struttura if è sufficiente collegare il Selector terminal ad una variabile di controllo di tipo Boolean. Case Selector identifier Selector terminal • Struttura if a case Giada Giorgi

  35. Block diagram: Struttura case • Per ottenere una struttura case è sufficiente collegare il Selector terminal ad una variabile di controllo di tipo Integer, String oppure di un altro tipo comunque enumerabile. • E’ possibile specificare anche un Default case. • Struttura if a case Giada Giorgi

  36. Block diagram: Sequence Structures • Le strutture Sequence servono per controllare il flusso di esecuzione di un programma. • Una “struttura sequenza” contiene uno o più subdiagrams (detti frame) che vengono eseguiti sequenzialmente. • All’interno di ogni frame l’ordine di esecuzione viene determinato dalle relazioni di dipendenza dei nodi, come avviene comunemente in Labview. • Esistono due tipi di Sequence Structures: • Flat Sequence structure; • Stacked Sequence structure. • Struttura sequence Giada Giorgi

  37. Block diagram: Flat sequence • Questa struttura visualizza tutti i frames contemporaneamente ed esegue i frames in modo sequenziale, iniziando da quello più a sinistra fino a quello più a destra. • Struttura sequence Giada Giorgi

  38. Block diagram: Stacked sequence • Questa struttura visualizza un frame per volta. Il primo frame che viene eseguito è il frame 0, quindi viene eseguito il frame 1 e così via fino all’ultimo frame. • Struttura sequence Giada Giorgi

  39. Block diagram: Formula node • Consente di valutare formule ed espressioni simili a quelle usate nel linguaggio C all’interno del diagramma a blocchi. • Struttura node Giada Giorgi

  40. Block diagram: Riassunto strutture Ciclo while Ciclo for Struttura case Struttura node Struttura sequence • Struttura node Giada Giorgi

  41. Array e matrici • Gestione di array • Creazione di un array • Indexing • Tipi di filo • Esempi • E’ possibile creare un array, o una matrice, di dati dello stesso tipo. • L’array può essere creato sia come valore di ingresso (controllo), sia come valore di uscita (indicatore). • Array e matrici sono indicizzati sempre a partire da 0. • Creazione di array Creazione di un array nel pannello frontale. Giada Giorgi

  42. Indexing • Gestione di array • Creazione di un array • Indexing • Tipi di filo • Esempi • I cicli permettono l’accesso indicizzato a un array. • Se l’indicizzazione è disabilitata, in uscita dal ciclo viene fornito solamente l’ultimo valore calcolato. • Se l’indicizzazione è abilitata, in uscita vengono forniti tutti i valori calcolati. • Per abilitare-disabilitare l’indicizzazione: Right-click con il tasto destro del mouse sul tunnel in uscita. • Indexing Tunnel con indicizzazione disabilitata. Giada Giorgi

  43. Indexing • Gestione di array • Creazione di un array • Indexing • Tipi di filo • Esempi • Se l’autoindicizzazione è abilitata, la connessione di un array a un ciclo for forza il numero di iterazioni alla dimensione dell’array. • Indexing Tunnel con indicizzazione abilitata. Giada Giorgi

  44. Tipi di filo • Gestione di array • Creazione di un array • Indexing • Tipi di filo • Esempi • Tipi di filo • Scalare: filo sottile • Array: filo spesso • Matrice: filo doppio Giada Giorgi

  45. Fine! Giada Giorgi

More Related