seminario pratico di labview per l’acquisizione dati · eseguire codice in esecuzione continua in...

61
Page 1 of 61 Seminario Pratico di LabVIEW per l’Acquisizione Dati NOTA: per mantenere dei riferimenti comuni nello svolgimento degli esercizi che seguono, è consigliato copiare le cartelle Esercizi e Soluzioni sul desktop.

Upload: others

Post on 05-Jan-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1 of 61

Seminario Pratico di LabVIEW

per l’Acquisizione Dati

NOTA: per mantenere dei riferimenti comuni nello svolgimento degli

esercizi che seguono, è consigliato copiare le cartelle Esercizi e Soluzioni

sul desktop.

Page 2 of 61

Esercizio 1a: Configurazione Hardware (MAX)

Obiettivo

Connettere il tuo CompactDAQ al PC

Usare Measurement & Automation Explorer per configurare il tuo hardware e

verificare la connessione dei segnali

Parte A Connessione e Setup Hardware

L’hardware che avete di fronte include moduli di misura differenti per darvi la

possibilità di apprendere i vantaggi apportati dai sistemi di acquisizione dati

moudulari.

Creeremo semplici applicazioni per acquisizioni di tensione analogica, digital input,

accelerazione, estensione, temperatura così come generazioni di segnali digitali ed

analogici.

1. Verificare che lo chassis è connesso al tuo pc attraverso il cavo d’interfaccia USB

e che entrambi siano connessi all’alimentazione. Il LED verde di Power e quello

arancione dovebbero lampeggiare prima di utilizzare il Compact DAQ con il

software.

2. Assicurarsi che tutti i moduli sono correttamente inseriti nello chassis e se qualche

cavo vi sembra non collegato avvisate il vostro istruttore.

Parte B Configurazione Software

Similmente al Windows Device Manager, il quale gestisce tutte le periferiche connesse

al vostro PC, così MAX gestisce tutto il software e hardware di NI che avete installato.

In questo esercizio vedrai le principali caratteristiche di MAX: la voce Software e la

voce Devices and Interfaces.

1. Aprire MAX con un doppio click sull’icona presente sul Desktop oppure andate

alla voce Start » All Programs » National Instruments » Measurement &

Automation Explorer.

Note: In questa finestra avete accesso a due sistemi: i sistemi installati localmente che

trovate sotto la voce My System, e i sistemi remoti connessi alla vostra rete come ad

esempio NI CompactRIO (Lo utilizzerete nella sessione pomeridiana) o i sistemi PXI

Real-Time.

Page 3 of 61

1. Dopo aver lanciato MAX, espandete la voce My System » Devices and

Interfaces per riconoscere l’hardware connesso al vostro PC in locale.

Espandere il menu cDAQ-9178 per visualizzare i moduli connessi allo chassis

2. Espandendo la voce My System» Software è possibile osservare il software

installato e le versioni dei driver NI installati sul vostro pc.

Noterai le voci LabVIEW e NI-DAQmx. La prima indica l’ambiente di sviluppo che

useremo durante questo seminario e la seconda è il driver che consente al PC di

comunicare con l’hardware.

Page 4 of 61

3. Per testare la connettività dello chassis NI CompactDAQ cliccare con il tasto

destro del mouse sulla voce cDAQ-9178 e selezionare la voce Self-Test.

Se il tuo chassis è propriamente connesso al tuo PC, otterrai questo messaggio:

4. Per verificare la connessioni dello chassis NI CompactDAQ useremo il Pannello di

Test. Come esempio controllremo la connessione di segnale sul modulo per

termocoppie 9211.

a. Tasto Destro su NI 9211 e selezionare Test Panels…:

Page 5 of 61

b. Selezionando il Pannello di Test abbiamo aperto una semplice utility per

controllare i segnali connessi sui canali del modulo. Quado premi Start dovresti

osservare un segnale come nella seguente finestra.

c. Scaldare la termocoppia con la mano per osservare un aumento di temperatura.

d. Quanto hai finito il tuo test chiudere il Pannello cliccando sul pulsante Close.

Page 6 of 61

5. E’ possibile inoltre rinominare i moduli e richiamarli vedremo in maniera univoca

in LabVIEW

a. Per rinominare i moduli click con Tasto Destro sul modulo e selezionare

Rename

b. E’ possibile rinominare i moduli come nella figura seguente:

Page 7 of 61

Esercizio 1: Creazione di un VI per la simulazione

di segnali

Descrizione dell’esercizio

Obiettivo

In questo esercizio, realizzeremo un semplice VI che simula un segnale analogico e lo visualizza

in un grafico waveform.

Risultati

Al termine dell’esercizio saremo in grado di:

Utilizzare controlli/indicatori del Pannello Frontale.

Eseguire codice in esecuzione continua in LabVIEW.

Simulare l’acquisizione di segnali.

Istruzioni

1. Apriamo LabVIEW 2013 e selezioniamo la voce File » New VI

Page 8 of 61

2. Premi <Ctrl+T> per affiancare Diagramma a Blocchi e Pannello Frontale

3. Salvare questo VI nella cartella Esercizi\Esercizio 1\ selezionando la voce File » Save e

nominarlo Simulate Signal to Graph.vi.

4. Cliccare con il pulsante destro del mouse su qualsiasi spazio vuoto nello schema a blocchi

(finestra con sfondo bianco) per aprire la palette Functions e quindi selezionare la sottopaletta

Programming »Structure» While Loop. Cliccate col tasto sinistro sulla voce While Loop e

create ora un riquado nel diagramma a blocchi .

Page 9 of 61

Fare clic e disegnate un riquadro sul diagramma a blocchi per formare il ciclo while nella porzione di

diagramma che si desidera. È possibile ridimensionare il Ciclo While posizionando il cursore del

mouse sopra i bordi del loop.

È inoltre possibile creare un loop While premendo <Ctrl+Space> per aprire la finestra di dialogo

Quick Drop. Iniziare a digitare "While Loop" e apparirà nella lista dei possibili oggetti. Fare doppio

clic sul suo nome e apparirà il ciclo while sul vostro cursore esattamente come al punto 5.

5. I cicli while presentano due terminali nei loro angoli inferiori sinistro e destro.

Sul lato inferiore sinistro si trova il terminale d’iterazione, che fornisce il numero d’iterazione attuale

utilizzabile all’interno del ciclo stesso.

Sul lato inferiore destro, invece, si trova il terminale condizionale, il quale si presenta come un

Page 10 of 61

segnale di stop di default. Il ciclo fermerà la sua esecuzione quando su questo terminale giungerà un

valore booleano TRUE (Vero).

Osservate nell'angolo in alto a sinistra dello schermo la freccia di run spezzata.

Questo indica che in LabVIEW non è possibile eseguire un’applicazione che contiene un ciclo while

con il terminale condizionale non connesso .

Per la nostra applicazione, abbiamo bisogno di creare un pulsante di arresto, che l'utente dovrà

premere per fermare il Ciclo While e uscire dal programma.

6. Sul pannello frontale (finestra con sfondo grigio), cliccare con il pulsannte destro su uno spazio

vuoto per aprire la palette Controls e selezionare Silver » Boolean » Stop Button. Cliccate col

tasto sinistro sul pulsante Stop per selezionarlo.

LabVIEW contiene decine di elementi da utilizzare per la creazione di interfaccia grafica

7. Click sinistro del mouse dove si desidera posizionare il pulsante sul pannello frontale. Se si

preferisce, è possibile ridimensionare il pulsante Stop posizionandosi e trascinando uno dei bordi

del pulsante.

8. Osservando ora lo schema a blocchi, si può notare che un terminale per il pulsante di arresto è

apparso. Questo terminale funge da connettore tra il controllo sul pannello frontale alla

funzionalità dello schema a blocchi. Fare clic sul pulsante di stop e trascinarlo accanto al

terminale condizione del ciclo ( ) while.

Page 11 of 61

9. Spostare il cursore sul bordo destro del terminale pulsante stop notando che il bordo del

terminale lampeggia e il cursore ora sembra un rocchetto. Questo è lo strumento di cablaggio che

permette di tracciare i fili tra i diversi oggetti sullo schema a blocchi.

10. Click sinistro sul bordo destro del pulsante per tracciare un filo che terminerà con un altro click

una volta collegato al terminale condizionale del ciclo (come in figura)

Il filo trasporta l’informazione tra il pulsante Stop e il terminale condizionale

E’ stata così definita la condizione di uscita dal ciclo, la freccia di Run risulta ora piena e non

spezzata ( ) . L'applicazione attualmente non esegue nessun codice, ma avrete bisogno di

aggiungere all’interno del ciclo codice che sarà eseguito iterativamente.

11. Premere <Ctrl+Spazio> per aprire la finestra di dialogo Quick Drop e digitare "Simulate

Signal." Fare doppio click sulla voce Simulate Signal una volta che apparirà nella finestra Quick

Drop, così il VI Simulate Signal Express.vi apparirà automaticamente sul vostro cursore.

Quick Drop indicizza le funzioni di LabVIEW per una ricerca rapida

12. Clic sinistro del mouse per posizionare il Simulate Signal Express VI all'interno del Ciclo While,

successivamente una finestra di configurazione apparirà in maniera automatica.

Page 12 of 61

Tutti gli Express VIs presentano una finestra di configurazione

13. Per simulare segnali differenti provare a cambiare il tipo di segnale, i valori di ampiezza,

frequenza, offset, e la fase del segnale nella parte Signal della finestra di dialogo e visualizzare

le modifiche nella parte Result Preview.

14. Deselezionare la voce Use signal type name in basso a destra ed inserite il nome Simulated

Signal come nome per il vostro segnale.

15. Una volta scelto il segnale che si desidera visualizzare, quindi premere OK. Il Simulate Signal

Express VI è stato personalizzato in base alle impostazioni che hai fornito.

16. Spostarsti sul Pannello Frontale e usare la combinazione di tasti <Ctrl+Space> per rilanciare il

Quick Drop.

17. Digitare la parola chart. Doppio click sull’indicatore Waveform Chart (Silver).

18. Piazzare l’indicatore Waveform Chart (Silver) sul pannello frontale nella posizione che più

preferisci.

Page 13 of 61

19. Sul diagramma a blocchi selezionare il terminale in blu Waveform Chart e posizionarlo alla

destra del VI Simulate Signal.VI.

20. Utilizzare un filo per collegare l'uscita del segnale Simulate Express VI ("Simulated Signal") al

terminale Waveform Chart .

Si capirà a breve che i terminali grafici cambiano colore a seconda del tipo di dati ricevuto.

Il segnale simulato sarà pubblicato ad ogni iterazione sull’indicatore Waveform Chart

21. Visualizzate il pannello frontale ed eseguite il VI premendo la freccia Run. Il segnale simulato

creato nel VI Express è ora visualizzato sul grafico. Premere il pulsante Stop quando si vuole

arrestare il programma.

22. Clic con il pulsante destro del mouse su uno spazio vuoto sul pannello frontale per aprire la

paletta Controls, trovate la manopola di comando (Silver » Numeric » Knob (Silver)) e

posizionatela sul pannello frontale. Fare doppio clic sull'etichetta della manopola per cambiare il

nome in Amplitude.

23. Ripetere il passaggio 22 per creare un altro controllo Knob. Cambia ora la sua etichetta in

frequenza. Fare doppio clic sul valore massimo sulla scala (predefinito = 10) e modificarlo con

valore pari a 50.

Page 14 of 61

Pannello frontale con controlli Knobs

24. Nello schema a blocchi, spostare ora i due controlli “Amplitude” e “Frequency” all'interno del

ciclo While.

25. Collegare i due controlli agli ingressi Amplitude e Frequency della funzione Simulated Signal.VI

come in figura.

E’ possible ora cambiare programmaticamente Ampiezza e frequenza del segnale

26. Premere la freccia Run, cambiate il valore di Amplitude and Frequency per notare

conseguentemente l’effeto sul grafico. Sull'asse Y del grafico è abilitata l’opzione auto-scala per

massimizzare le dimensioni del segnale sul display. Per disabilitare questa funzione, fare clic

destro sul l grafico e deseleziona AutoScale Y.

Page 15 of 61

È ora possibile modificare il limite superiore e inferiore dell'asse Y cliccando sui numeri lungo l'asse

e digitando nuovi valori.

27. Arresta il programma premendo il pulsante Stop.

Passaggi Aggiuntivi

LabVIEW offre diversi strumenti che possono aiutare a fare debug della tua applicazione. I passi

successivi mostreranno come utilizzare alcuni degli strumenti di debug di LabVIEW più importanti

Block Diagram Cleanup

Quando si inizia a programmare in LabVIEW, non sempre si pensa a scrivere un codice leggibile e

mantenibile nel tempo. Questo si tramuta nella creazione di diagramma a blocchi poco organizzati.

LabVIEW’s Block Diagram Cleanup è uno strumento automatico di riordino del tuo codice per

migliorare la la leggibilità del tuo codice.

28. Premere l’icona Block Diagram Cleanup sulla barra menu come in figura.

Block Diagram Cleanup automaticamente riordinerà il codice del diagramma a blocchi

Page 16 of 61

Il diagramma a blocchi ora dovrebbe essere meglio organizzato, con fili cablati nella maniera

ottimale e una distribuzione spaziale di oggetti nel diagramma a blocchi uniforme.

Highlight Execution

28. Premere il pulsante Highlight Execution sulla barra menu. Si noti come la lampadina contenuta

nell’icona è ora accesa.

Highlight Execution rallenta l’esecuzione del codice per visualizzare il flusso dei dati

29. Lancia ora la tua applicazione con l’opzione Highlight Execution abilitata. Premere il tasto Run

ed osservare come i dati passano attraverso i fili del tuo codice.

Highlight Execution è uno strumento potente per osservare e capire se il codice si comporta

come ci si aspetta.

Context Help

30. Premere sull’icona punto di domanda in alto a destra per abilitare il Context Help

Context Help è un Help Contestuale

31. Con il Context Help attivo, posizionando il cursore del mouse sui differenti oggetti presenti nel

diagramma a blocchi e sul pannello frontale del tuo programma Simulate Signal to Graph.vi,

osserverai le varie descrizioni funzionali degli stessi.

Page 17 of 61

Context Help è un modo veloce per ottenere una panoramica sul funzionamento di un VI.

32. Click destro sul diagramma a blocchi, navigando all’interno della paletta delle funzioni notate

come il Context Help fornisce informazioni sulle funzioni contenute all’interno.

Notate inoltre come per alcuni oggetti la finestra del Context Help fornisce un link all’Help

dettagliato Detailed Help. Questo link aprirà l’Help di LabVIEW per ottenere maggiori

informazioni dettagliate sulla funzione selezionata.

33. Salvare - Simulate Signal to Graph.vi e chiuderlo.

Fine dell'esercizio 1

Page 18 of 61

Esercizio 2a: Acquisizione dati con NI LabVIEW

Descrizione dell’esercizio

Obiettivo

Il primo obiettivo di questo esercizio è imparare ad acquisire un set di dati di temperatura

utilizzando l’Express VI DAQ Assistant.

Il secondo obiettivo è quello di analizzare i dati di temperatura acquisiti e generare un segnale di

uscita digitale se la temperatura supera un valore limite di soglia.

Il terzo obiettivo è la creazione di un file per il salvataggio dei dati acquisiti per successive analisi

e post-processing dei dati.

Risultati

Al termine dell’esercizio saremo in grado di:

Utilizzare controlli/indicatori del Pannello Frontale.

Eseguire codice in esecuzione continua in LabVIEW.

Acquisire, analizzare e presentare segnali.

Configurazione hardware

In questo esercizio utilizzeremo lo chassis cDAQ-9178 con i seguenti moduli:

• NI 9211: Thermocouple analog input (Inserito nel secondo slot dello chassis)

• NI 9472: Digital Output Source (Inserito nel terzo slot dello chassis)

Istruzioni (Parte A)

1. Apriamo LabVIEW 2013 e selezioniamo la voce File » New VI

Page 19 of 61

2. Premi <Ctrl+T> per affiancare Diagramma a Blocchi e Pannello Frontale

3. Salvare questo VI nella cartella Esercizi\Esercizio 2\ selezionando la voce File » Save e

nominarlo Basic Measurement.vi

4. Aprire la paletta delle funzioni Functions Palette cliccando con il tasto destro sullo

spazio bianco sul diagramma a blocchi.

5. Selezionare la paletta Express » Input e cliccare su DAQ Assistant Express VI. Cliccate

con il tasto sinistro su uno spazio vuoto del diagramma a blocchi per posizionare il VI.

Page 20 of 61

Il VI DAQ Assistant è una funzione ad alto livello configurabile per poter acquisire dati

reali o simulare Hardware di acquisizione.

6. La finestra Create New… apparirà:

I task NI-DAQmx sono un gruppo di canali che presentano stesse caratteristiche di

temporizzazione e di trigger

7. Per configurare una misura di temperatura basata su termocoppia cliccate su Acquire

Signals » Analog Input » Temperature » Thermocouple.

Page 21 of 61

8. Cliccate sul segno + accanto al modulo nominato cDAQ1Mod2 (NI 9211) ed

evidenziate il canale ai0, e cliccate su Finish. Questo aggiunge un canale fisico al tuo

task di misura.

9. All’interno della finestra di configurazione cambiate la voce CJC Source in Built in e

Acquisition Mode in Continuous Samples.

10. Cambiate Samples to Read inserendo il valore 100.

11. Cambiate Rate (Hz) inserendo il valore 1k.

12. Cliccate sul pulsante Run. Dovresti visualizzare la lettura di temperatura proveniente

dalla termocoppia sul pannello di test.

13. Cliccate Stop e successivamente cliccate OK per chiudere la finestra di configurazione e

ritornare al diagramma a blocchi di LabVIEW.

14. LabVIEW automaticamente crea il codice per questo task di misura. Dato che abbiamo

selezionato la voce Continuous Samples measurement ha senso che il codice sia

Page 22 of 61

inserito all’interno di un ciclo. LabVIEW ci informa di questo e premendo su Yes

automatiamente sarà creato un ciclo While.

LabVIEW notifica che può inserire il codice all’interno di un ciclo While.

15. Click destro sul terminale output che trovate alla destra del VI DAQ Assistant e

selezionate la voce Create » Graph Indicator.

16. Rinominare il nuovo indicatore Waveform Graph da Data in Temperature.

17. Notate che il corrispondente grafico è posizionato sul pannello frontale.

18. Il tuo diagramma a blocchi dovrebbe assomigliare a quello della figura seguente. Il ciclo

While automaticamente aggiunge un pulsante di Stop per permetterti di terminare

l’esecuzione del tuo ciclo.

Page 23 of 61

Applicazione finita per acquisire dati di temperatura

19. Sul pannello frontale cliccate sulla freccia di Run per eseguire il VI e testare la

funzionalità.

Premere Stop per terminare.

20. Salvare il VI e chiuderlo.

Istruzioni (Parte B)

Per poter generare un segnale digitale on-off relativo al superamento di una temperatura di soglia

da parte della temperatura misurata con il modulo NI9211 è necessario utilizzare il modulo

NI9472: Digital Output Source.

21. All’interno della cartella Esercizio 2 aprire Analysis and Output.vi. Questo VI è

identico al VI appena creato ma è stato aggiunto dello spazio nel diagramma a blocchi

per aggiungere ulterior codice.

22. Cliccate con il tasto destro sul pannello frontale per aprire la paletta Controls palette.

Navigate nella sotto-paletta Controls » Silver » Numeric. Selezionate e posizionate un

controllo Numeric Control sul pannello frontale.

Page 24 of 61

23. Doppio click sull’etichetta del controllo numerico, rinominate il controllo con il nome

Alarm Level.

24. Passate ora al diagramma a blocchi, se il nuovo controllo Alarm Level non si trova dentro

al ciclo While trascinatelo all’interno come in figura.

Page 25 of 61

25. Premete <Ctrl+Spazio> per lanciare la finestra Quick Drop e digitate la parola

“Comparison” per cercare il VI Comparison Express VI.

26. Doppio-click su Comparison nella finestra con la lista dei risultati del Quick Drop e

posizionatelo all’interno del ciclo. Una volta posizionato, una finestra di dialogo come

quella in figura apparirà.

Finestra di configurazione di Comparison Express VI.

27. Selezionate l’opzione > Greater nella sezione Compare Condition, l’opzione Second

signal input dalla sezione Comparison Inputs e l'opzione One result per channel dalla

sezione Result. Cliccate su OK.

28. Connettete l'uscita del DAQ Assistant con l'ingresso Operand 1 del VI Comparison

Express VI e il controllo Alarm Level con l’ingresso Operand 2.

29. Il diagramma a blocchi risulta essere come in figura seguente:

Page 26 of 61

30. Sul pannello frontale, cliccate con il tasto destro del mouse e navigate nella paletta

cercando Controls » Silver » Boolean » LED (Silver). Posizionate il LED e

ridimensionatelo per una maggiore visibilità.

31. Rinominate il LED in Alarm. Il tuo pannello frontale assomiglerà a questo:

32. Sul Diagramma a Blocchi connettere l’uscita Result del VI Comparison Express VI

all’indicatore Alarm.

Page 27 of 61

33. Mandate in esecuzione il programma e modificate il valore Alarm Level sopra e sotto il

valore di temperatura acquisita. Osservate il led acceso quando la temperatura acquisita è

al di sopra del valore di allarme.

34. Arrestate l’esecuzione del VI cliccando sul pulsante di Stop.

35. Tornate sul diagramma a blocchi. Cliccate con il tasto destro sulla paletta delle funzioni e

selezionate il VI DAQ Assistant Express VI da Functions » Express » Output.

Posizionatelo all’interno del ciclo While.

L’aggiunta di un altro DAQ Assistant permette il controllo del modulo digitale

Page 28 of 61

36. All’interno della finestra di dialogo Create New… selezionate Generate Signals »

Digital Output » Line Output

37. Cliccare sulla voce Line Output nella seguente finestra e selezionare la linea port0/line0,

e poi cliccare su Finish.

38. Pemere OK nella finestra che appare. Le impostazioni di default sono correte per la

nostra applicazione.

39. Collegare con un filo l’uscita Result del vi Comparison Express VI’s all’ingresso data

del nuovo DAQ Assistant2 Express VI.

Una funzione Convert from Dynamic Data dati viene visualizzata automaticamente. In questo

caso, l'uscita del confronto VI Express è un tipo di dato dinamico (contenente maggiori

informazioni rispetto al singolo valore booleano), mentre l'ingresso del DAQ Assistant è un

ingresso booleano. LabVIEW inserisce in automatico questa funzione di conversione tra i due

nodi in modo che possano essere collegati senza errore di sintassi. Il diagramma a blocchi

dovrebbe apparire come qui di seguito:

Page 29 of 61

40. Mandare in esecuzione il programma. Notare come il LED0 del banco di LED presenti

sul modulo NI9472 che lo stesso sulla Demobox Blu si illumina se la temperatura

acquisita supera il valore Alarm Level.

41. Salvate il VI.

Istruzioni (Parte C)

L’obiettivo di questo esercizio è il salvataggio dei dati acquisiti su file per sia eseguire un analisi di

post-processing in futuro, che condividere i dati con i colleghi o per creare dei report.

1. Analysis and Output.vi dovrebbe essere ancora aperto dal precedetne esercizio. Se così non

fosse, riapritelo dalla cartella Esercizi/Esercizio 2.

2. Tasto destro sul diagramma a blocchi e si selezioni Functions » File I/O » Write to

Measurement File. Posizionate sul diagramma a blocchi l’Express VI all’interno del ciclo sul

diagramma a blocchi.

LabVIEW include dozzine di opzioni per leggere e scrivere file.

Page 30 of 61

3. Una finestra di configurazione apparirà essendo un Express VI. Configurate il vi come nella

finestra mostrata di sotto, tenete in mente la destinazione di salvataggio del file. Quando

finito cliccate OK.

Questa configurazione salverà un file binario che può essere processato dai più comuni

software di post-elaborazione come NI DIAdem o Microsoft Excel.

4. Collegare l’uscita del DAQ Assistant Express VI all’ingresso di Write to Measurement File

Express.VI

5. Il tuo diagramma a blocchi dovrebbe assomigliare a quello della figura successiva:

Questa completa applicazione acquisisce dati di misura di temperatura, genera un segnale

digitale di uscita se la temperatura supera una soglia e salva tutti i dati su file.

Page 31 of 61

6. Lanciate il VI momentaneamente e premete il controllo di STOP sul VI.

7. Il file sarà creato nella cartella specificata all’interno di Write to Measurement File Express

VI.

8. Navigare all’interno della cartella dove avete salvato il file.

9. Click con il tasto destro in Windows Explorer e selezionare With » Excel Importer per

aprirlo con Microsoft Excel. Osservate sia il tab relativo all’header del file che il tab relativo

ai dati salvati.

Dati relativi alla misura di temperatura savati su file attraverso l’applicazione LabVIEW

10. Chiudere il file e chiudere il VI.

Fine dell'esercizio 2

Page 32 of 61

Esercizio 3: Controllo esecuzione del programma

Descrizione dell’esercizio

Configurazione hardware In quest’esercizio useremo lo chassis cDAQ-9178 con i seguenti moduli:

NI 9237: input analogico bridge simultaneo - primo slot

NI 9211: input analogico per termocoppie - secondo slot

Obiettivo

Rappresentare la temperatura acquisita attraverso una termocoppia o la deformazione misurata ai

capi di un estensimetro a seconda della posizione assunta da un interruttore.

Risultati

Al termine dell’esercizio saremo in grado di:

usare le strutture While Loop e Case Structure.

configurare il VI Express DAQ Assistant per due misure di temperatura differenti

Istruzioni

1. Apriamo un nuovo VI.

2. Salviamo il VI nella cartella Esercizi/Esercizio 3 nominandolo Esercizio 3a.

3. Inseriamo un While Loop nel diagramma a blocchi. Apriamo la paletta Express»Execution

Control (come mostrato sotto) e selezioniamo While Loop. Tracciamolo abbastanza grande

per meglio poter adattare il codice che completeremo dentro.

Page 33 of 61

4. Sezioniamo la Struttura Case dalla stessa paletta e posizioniamelo all’interno del While

Loop come mostrato dalle immagini che seguono.

Page 34 of 61

Nei punti che seguiranno andremo ad aggiungere dei VI Express DAQ Assistant all’interno

delle due opzioni della Case Structure. Va ricordato che un DAQ Assistant servirà per

acquisire la temperatura dalla termocoppia, mentre l‘altro per misurare la deformazione di un

estensimetro (che trovate sul bordo sinistro delle demo box sopra la colonna di LED).

5. Dalla paletta Express»Input selezioniamo il VI Express DAQ Assistant come mostrato

sotto, e lo posizioniamo nella finestra con il caso TRUE della Case Structure.

Si apre la finestra Create New Express Task…

Page 35 of 61

6. Per configurare un’applicazione di misura di temperatura da termocoppie, clicchiamo su

Acquire Signal»Analog Input»Temperature»Thermocouple. Clicchiamo il segnale +

dopo cDAQ1Mod2 (il nome potrebbe cambiare) (NI 9211), sottolineiamo il canale ai0, e

confermiamo l'impostazione con Finish. Questa operazione aggiunge un canale fisico al

proprio task di misura.

7. Cambiamo il valore di CJC source in Built In e di Acquisition Mode in Continuous.

8. Cliccando sul pulsante Run, si vedrà la temperatura letta dalla termocoppia nella finestra

Express Task

Page 36 of 61

9. Clicchiamo su OK per chiudere la finestra di configurazione del VI Express e per ritornare al

diagramma a blocchi LabVIEW.

Il diagramma a blocchi dovrebbe assomigliare al codice seguente.

10. Passiamo il caso della Case Structure da TRUE a FALSE, agendo sul selettore di caso come

indicato qui di seguito.

11. Ripetiamo i passaggi svolti ai punti 5 e 6. Questa volta però scegliamo Strain come tipo di

segnale per la deformazione, e il primo canale ai0 del modulo 9237 come physical channel.

Page 37 of 61

12. Configuriamo il VI Express DAQ Assistant come mostrato nell’immagine che segue.

13. Passiamo al pannello frontale con la combinazione di tasti <Ctrl-E> e posizioniamo un

grafico di tipo Waveform Chart nel pannello.

14. Aggiungiamo un interruttore Vertical Toggle dalla paletta Booleana

Page 38 of 61

15. Il pannello frontale dovrebbe assomigliare alla figura seguente.

Page 39 of 61

16. Torniamo al diagramma a blocchi e colleghiamo il terminale del controllo booleano

all’ingresso della Case Structure, come mostrato nell’immagine che segue:

17. Colleghiamo le uscite dei VI Express DAQ Assistant al terminale di ingresso dell’indicatore

Waveform Chart. Vanno collegati attraversando la cornice del Case Structure. Portando il

filo oltre la cornice, si creerà sulla cornice stessa un quadratino bianco, detto Tunnel. Non va

dimenticato che entrambi i casi TRUE e FALSE devono essere collegati. Una volta

completati i due casi, il tunnel si colorerà di azzurro Nota: Per non sbagliare, dopo aver fatto

il primo collegamento, proviamo a collegare il filo partendo dal tunnel e spostandoci verso i

terminali del VI Express e del grafico!

Page 40 of 61

18. A questo punto siamo pronti per testare il VI, osservando cosa succede abbassando e

rialzando l’interruttore verticale a pannello frontale. Si vedrà la lettura della temperatura

rappresentata sul grafico in un caso oppure la misura di deformazione nell’altro. Stimolare la

termocoppia e l’estensimetro per verificarne le variazioni sul grafico.

Fine dell'esercizio 3

Page 41 of 61

Esercizio 4: Operazioni multiple con I/O analogici

Descrizione dell’esercizio

Come modularizzare la piattaforma NI Compact DAQ per gestire in parallelo l’acquisizione e la

generazione di segnali analogici

Configurazione hardware In quest’esercizio useremo lo chassis cDAQ-9178 con i seguenti moduli:

NI 9263: output analogico - quarto slot

NI 9215: input analogico - ottavo slot

Obiettivo Realizzare un’applicazione LabVIEW che genera un forma d’onda in uscita dal modulo NI 9263.

Questo segnale piloterà la piccola sirena che trovate all’interno della demobox. In parallelo

l’applicazione sarà in grado di acquisire un segnale audio connesso direttamente al connettore

AUDIO IN usando un canale di ingresso analogico del modulo NI 9215.

Risultati Al termine dell’esercizio saremo in grado di:

generare segnali da LabVIEW con il sistema di acquisizione dati NI CompactDAQ

eseguire loop in parallelo per operazioni analogiche multiple

Istruzioni 1. Apriamo un nuovo VI.

2. Salviamo il VI nella cartella Esercizi/Esercizio 4 nominandolo Esercizio 4.

3. Premiamo <Ctrl-E> per passare al diagramma a blocchi

4. Dalla paletta delle funzioni selezioniamo il VI Express Simulate Signal al percorso

FunctionsExpress»Input. Posizioniamo il VI nel diagramma a blocchi.

Page 42 of 61

5. Nella sezione Signal della finestra di configurazione, impostiamo Amplitude a 0,05 nella

sezione Timing impostiamo Samples per Second (Hz) su 10.000 e clicchiamo su OK per

confermare.

6. Dalla paletta delle funzioni selezioniamo il VI Express DAQ Assistant al percorso

FunctionsExpress»Input. Posizioniamo il VI nel diagramma a blocchi.

7. Selezioniamo Analog Output come Measurement Type e poi Voltage.

Page 43 of 61

8. Nella finestra successiva, clicchiamo il segnale + prossimo al cDAQ1Mod4 (NI 9263),

selezioniamo ao0, e confermiamo con il bottone Finish.

9. Selezioniamo quindi dal parametro Generation mode l’opzione Continuous Samples;

rimuoviamo il contrassegno in Use timing from waveform data, e impostiamo Rate (Hz) a

10,000. Confermiamo attraverso il pulsante OK.

Page 44 of 61

10. MOLTO IMPORTANTE - Non accettiamo la richiesta successiva che appare di far inserire

il codice in un While Loop.

11. Sul diagramma a blocchi, muoviamo il VI Express DAQ Assistant al lato destro del VI

Express Simulate Signal. Colleghiamo l’output Sine del Simulate Signal al terminale di

ingresso del DAQ Assistant. Il diagramma a blocchi dovrebbe assomigliare a quello seguente.

Page 45 of 61

12. Per fare eseguire il VI, creiamo un While Loop. Il While Loop permette a tutte le parti di

codice dentro il loop di eseguire continuamente fino a che il pulsante Stop non viene cliccato.

Selezioniamo il VI Express While Loop al percorso FunctionsExpress»Exec Ctrl.

13. Tracciamo il While Loop attorno al diagramma a blocchi. Il diagramma a blocchi dovrebbe

assomigliare alla figura riportata qui di seguito.

Creiamo un controllo per modificare la frequenza della forma d’onda sine

14. Passiamo al pannello frontale premendo <Ctrl-E>. Clicchiamo con il tasto destro sullo spazio

grigio vuoto per aprire la paletta dei controlli. Selezioniamo Vertical Pointer Slide dalla

subpalette Numeric Controls. Posizioniamo l’indicatore sul pannello frontale.

Page 46 of 61

15. Clicchiamo con il tasto destro il controllo appena inserito e selezioniamo la voce Properties.

Sul tab Appearance, modifichiamo l’etichetta in Frequenza. Sul tab Scale, modificate il

Scale Range mettendo il valore Minimum a 0.00 e il valore Maximum a 1000.00.

Clicchiamo su OK per chiudere la finestra delle proprietà.

16. Premiamo <Ctrl-E> per passare al diagramma a blocchi. Spostiamo il terminale del controllo

Frequenza dentro il While Loop, posizionandolo sul lato sinistro del VI Express Simulate

Signal. Colleghiamo quindi il controllo frequenza con l’ingresso Frequency.

17. Il diagramma a blocchi dovrebbe assomigliare alla figura seguente.

Page 47 of 61

18. Questo VI utilizzerà il valore passato dal controllo Frequenza sul pannello frontale per

generare un’onda di tipo seno alla frequenza specifica. L’onda seno verrà generata sul canale

analogico di uscita del modulo della Serie C NI 9263 dal VI Express DAQ Assistant.

Adesso creeeremo un loop per gestire l’ingresso analogico e acquisire un segnale sonoro.

19. Creiamo nel diagramma a blocchi dello spezio per inserire un altro While Loop al di sotto del

codice appena completato per la generazione analogica.

20. Posizioniamo il DAQ Assistant Express VI dalla sottopaletta Input della paletta

Functions»Express. Selezioniamo Analog Input come Measurement Type e quindi

Voltage. Nella finestra successiva, espandiamo i canali del cDAQ1Mod8 (NI 9215)

selezionando il segno +, e selezioniamo “ai1”. Confermiamo con il pulsante Finish.

Page 48 of 61

21. Nella finestra di configurazione del DAQ Assistant, impostiamo Acquire Continuously

come Timing Settings nella parte più bassa della finestra. Mettiamo Rate (Hz) su 100KHz,

Number of Samples 10K e clicchiamo OK.

22. Una volta cliccato OK, si aprirà una finestra di dialogo che chiederà di creare un While Loop

attorno al DAQ Assistant. Selezionate Yes per creare automaticamente un While Loop per

l’acquisizione continua.

Page 49 of 61

23. Il diagramma a blocchi dovrebbe assomigliare alla figura qui sopra. Creiamo a questo punto

un indicatore grafico per visualizzare i dati letti dal modulo di input analogico. Per creare un

indicatore grafico, clicchiamo con il tasto destro sul terminale di uscita data del VI Express

DAQ Assistant, e selezioniamo Create Graph Indicator.

24. Qui sotto segue una figura che rappresenta il diagramma a blocchi completo.

Page 50 of 61

25. Premiamo <Ctrl-E> per passare al pannello frontale di LabVIEW

26. Localizziamo il pulsante di controllo stop (F) e cliccando con il tasto destro procediamo a

sostituirlo con un pulsante di controllo di tipo STOP, come mostrato nella figura che segue

sotto. (Replace»Boolean»Stop Button)

27. Riorganizziamo i controlli e gli indicatori del pannello frontale affinchè assomiglino alla

figura qui sotto

Page 51 of 61

28. Salviamo il VI <Ctrl+S> nominandolo nella cartella Esercizi/Esercizio 4 e mandiamo in

esecuzione <Ctrl+R>

29. All’interno della demobox dovreste trovare un cavo mini-jack audio da connettere da un lato

al connettore AUDIOIN posizionato sul bordo sinistro della demobox e dall’altro ad un

dispositivo che generi un segnale sonoro (Telefono, smartphone, lettore mp3).

30. Premiamo entrambi i pulsanti STOP per fermare l’esecuzione dei loop e arrestare il codice.

Oltre l’esercizio Le strutture For Loop possono essere usate per generare array sfruttando una caratteristica

chiamata indicizzazione automatica, come mostrato nella figura sotto.

Proviamo a costruire il seguente diagramma a blocchi per manipolare ulteriormente la forma

d’onda generata

Page 52 of 61

Fine dell'esercizio 4

Page 53 of 61

Esercizio 5: Misura di Vibrazione, File I/O,

Filtraggio Mathscript

Descrizione dell’esercizio

Obiettivo L’obiettivo di questo esercizio è quello di mostrare come è possibile eseguire una misura di

vibrazione utilizzando un sensore accelerometrico, filtrare il segnale acquisito utilizzando sintassi

in matematica testuale e di salvare dati in un file utilizzando LabVIEW.

Risultati Al termine dell’esercizio saremo in grado di:

Usare il VI Express DAQ Assistant e rilevare le misure con LabVIEW

Usare il nodo Mathscript Node per importare codice scritto con sintassi in matematica

testuale

Usare il VI Express Write to Measurement File e salvare dati in un file usando

LabVIEW

Istruzioni

In questo esercizio utilizzeremo lo chassis cDAQ-9178 con il seguente modulo:

• NI 9234 AI +5V IEPE AC/DC (inserito nel settimo slot dello chassis)

1. Apriamo il VI Vibration.vi dalla cartella Esercizi/Esercizio 5. Il codice all’interno del

VI è da completare.

2. Trovate sulla parte sinistra l’Express VI DAQ Assistant. Aprite la sua finestra di

configurazione con un doppio click e inserite le seguenti impostazioni per acquisire una

segnale di durata FINITA dal modulo NI 9234.

Rate=25,6KHz

Number of Samples = 25600

Acquisition Mode = N Samples

Acquisiremo quindi un set di campioni per la durata temporale di 1secondo.

Page 54 of 61

3. Cliccate su Run in alto a destra per osservare in anteprima le vibrazioni acquisite provenienti

dall’accelerometro. (Questo è installato all’interno della Sound and Vibration DemoBox che

trovate all’interno della valigetta nera e connesso al modulo NI9234)

4. Cliccate su OK per chiudere il DAQ Assistant.VI

5. Nella parte centrale del diagramma a blocchi del VI trovate un riquadro col bordo azzurro nel

quale all’interno è scritto del codice in matematica testuale. Il riquadro si chiama MathScript

Node ed all’interno trovate del codice scritto in matematica testuale.

Questo codice esegue calcola una funzione FFT ed un filtraggio di tipo “ellipt” su un vettore

di nome A.

E’ necessario quindi ora definire l’uscita data del DAQ Assistant come vettore d’ingresso A

del nodo Mathscript.

Cliccate col tasto destro del mouse sul bordo sinistro del nodo Mathscript e selezionate la

voce Add Input.

6. Nel riquadro che si viene a creare digitate la lettera “A” come in figura:

Page 55 of 61

7. Connettete ora l’uscita data del DAQ Assistant.vi con l’ingresso A che avete appena creato.

8. Cliccate col tasto destro del mouse sul bordo destro del nodo Mathscript e selezionate la voce

Add Output. Aggiungete quindi in uscita al nodo le grandezze y e A. Dovreste ottenere un

diagramma a blocchi come il seguente:

9. Andremo ora a connettere i due vettori in uscita y e A sull’indicatore Waveform Graph in

modo da visualizzare segnale di vibrazione A e segnale filtrato y su di un grafico. Per poter

fare ciò è necessario utilizzare la funzione Build Array che trovate alla destra del nodo

MathScript che consente di creare un vettore che contiene i due seganali da passare

all’indicatore Waveform Graph.

Page 56 of 61

10. Risalviamo il VI.

11. Mandate in esecuzione il programma per osservare il segnale di vibrazione e il segnale

filtrato sul pannello frontale.

File I/O: Salvataggio su File dei dati:

Andremo ora a salvare su un file segnale acquisito e segnale filtrato

12. Clicchiamo col tasto destro sul diagramma a blocchi, selezioniamo il VI Express Write to

Measurement File dal percorso Express»Output e lo posizioniamo dentro il While Loop sul

diagramma a blocchi.

4. Apparirà la finestra di configurazione. Applichiamo le modifiche come riportate

nell’immagine che segue e confermiamo premendo il pulsante OK.

Page 57 of 61

5. Colleghiamo i dati provenienti dall’indicatore Waveform Graph all’ingresso del VI Express

Write to Measurement File.

6. Il nostro diagramma a blocchi dovrebbe assomigliare al seguente codice.

Page 58 of 61

7. Eseguiamo il VI premendo la freccia di Run e attendiamo 1 secondo per acquisizione e

salvataggio dati.

8. Il file di log è stato creato in una cartella specifica.

9. Apriamo il file usando Microsoft Office Excel o Notepad e controlliamo l’intestazione e i dati

della temperatura salvati nel file.

10. Chiudiamo il file dati e il VI LabVIEW.

Fine dell'esercizio 5

Page 59 of 61

Esercizio Opzionale: Il Driver di basso livello NI

DAQmx

Abbiamo appreso come l’utilizzo del VI Express DAQ Assistant.vi consente in pochi passi di

configurare ed eseguire un’acquisizione dati utilizzando LabVIEW e NI Compact DAQ. Tuttavia

per ottimizzare le prestazioni della tua applicazione DAQ e avere maggior controllo sulla catena

di acquisizione dati si dovrebbe utilizzare il driver DAQmx, driver standard di programmazione.

Il DAQ Assistant ad alto livello nasconde le funzioni di basso livello che il driver DAQmx

esegue. E’ possibile generare automaticamente il codice DAQmx corrispondente alle

impostazioni selezionate all’interno del DAQ Assistant.

1. Aprite Basic Measurement.VI all’interno della cartella Soluzioni/Esercizio 2/. E’un VI

che avete precedentemente creato durante lo svolgimento dell’esercizio 2.

2. Prima di generare codice DAQmx standard partedno dal DAQ Assistant è necessario

rimuovere il codice non utile creato precedentemente dall’Express VI.

3. Click con il tasto destro sul ciclo While e selezionate la voce Remove While Loop.

Successivamente premete il tasto <Delete> per rimuovere il bottone di Stop. Ripetere

questa procedura elimenando Temperature Graph così come qualunque filo superfluo

rimasto. E’ possibile usare lo shortcut <CTRL+B> per rimuovere tutti i fili non connessi

sul digramma a blocchi.

4. Quando vi trovate di fronte solo il DAQ Assistant.VI, cliccate su di esso con il tasto

destro del mouse e selezionate la voce Generate NI-DAQmx Code.

Generate NI-DAQmx code dalla configurazione del DAQ Assistant

5. Il tuo diagramma a blocchi dovrebbe apparire così:

Page 60 of 61

Codice DAQmx di basso livello equivalente alla configruazione selezionata nel DAQ

Assistant.

6. Il DAQ Assistant.VI è stato sostituito da 4 VIs. Andiamo ad esaminare la loro

funzionalità nei prossimi passi.

7. Apriamo prima il Context Help cliccano sull’icona ( ) sull’angolo in alto a destra del

diagramma a blocchi.

8. Passate ora il cursore del vostro mouse sopra ogni singolo VI che vedete nel codice ed

esaminate la descrizione e i fili di collegamento tra uno e l’altro.

9. DAQmx Read.vi legge dati basandosi sui paramentri che riceve da Untitled VI sulla parte

sinistra del diagramma a blocchi.

10. Doppio click su Untitled VI per aprire il rispettive diagramma a blocchi (codice mostrato

sotto)

Untitled VI contiene la configurazione di tutti i canali includendo i parametri

relativi al tipo di misura, ai coefficienti di scala ed alla temporizzazione.

11. Tutti i parametri connessi come ingressi dei differenti DAQmx setup VIs riflettono le

configurazioni originalmente selezionate nel DAQ Assistant Express VI.

12. Nota: Modificando questi parametri e i VI all’interno del diagramma a blocchi, potrai

programmaticamente cambaire i loro valori senza dover arrestare la tua applicazione e

riconfigurare l’Express VI dalla finestra di dialogo. Questo consente di risparmiare tempo

Page 61 of 61

di sviluppo e possibilmente di ottimizzare le prestazioni eliminando configurazioni non

necessari a seconda della tua applicazione.

13. Chiudare Untitled.VI e non salvare.