Sei sulla pagina 1di 114

Corso introduttivo a

LabVIEW 8.6

Massimo Lanzoni Corso Introduttivo a LabVIEW 1


Corsi LabVIEW e dintorni

http://www.ni.com/training/

Massimo Lanzoni Corso Introduttivo a LabVIEW 2


Outiline
 LabVIEW e strumentazione virtuale
 L’ ambiente LabVIEW
 Creazione di un VI, editing e debugging
 Funzioni base:
 SubVI
 Operazioni, strutture, variabili locali
 Grafici
 Property nodes
 Acquisizione : MAX, DAQ vi, VISA, GPIB

Massimo Lanzoni Corso Introduttivo a LabVIEW 3


Misurare e Controllare

Sensori ed
Sistema amplificatori
da
misurare
e Amplificatori ed
controllar Attuatori
e Analisi delle misure
e
Calcolo dei parametri
Strumento di controllo

Massimo Lanzoni Corso Introduttivo a LabVIEW 4


Strumentazione Virtuale

M
RO th
MaµP g DISPLAY
Y nin
µP R Tem
itio AND
µP
MO nd
p er
atu
re
o CONTROL
PR
OC ME RT
C
LA
Y ES PO Flo
D
SP D OL
488 A/
w
SO
DI ANNTR R
Co
nt ro US
CO BU lP
anel
RB
SO
Pre
ssu
S
CES
re
Ala
Tim rm
Con
O Ma
ing
diti
on
PR µ P th
A/D
s
TI
A /O
D/
ST
OP

Co /O MEMORY
nd DI Tim
itio I/O ing T
nin T P OR
g D/ 488
A
ROM /O
DI

Massimo Lanzoni Corso Introduttivo a LabVIEW 5


Strumentazione Virtuale

DAQ card
signal
input local
ADC
memory

signal
output BUS
DAC ITF
Sample
stream

Massimo Lanzoni Corso Introduttivo a LabVIEW 6


Strumento Virtuale ( VI )

Massimo Lanzoni Corso Introduttivo a LabVIEW 7


Strumento Virtuale ( VI )

Massimo Lanzoni Corso Introduttivo a LabVIEW 8


Elementi chiave di un VI

Hardware Software

• General purpose : • Rapidità di sviluppo


• I/O analogici • Facile debugging
• I/O digitali • Librerie potenti
• Massima flessibilità • Esecuzione veloce
• Alta velocità di • Portabilità
trasferimento dei • Riutilizzabilità
campioni
• Riutilizzabilità
Massimo Lanzoni Corso Introduttivo a LabVIEW 9
LabVIEW e
Strumentazione Virtuale

Hardwar Software
e
LabVIEW
DAQ boards

VXI / PXI

Massimo Lanzoni Corso Introduttivo a LabVIEW 10


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 11


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 12


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 13


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 14


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 15


LabVIEW

Massimo Lanzoni Corso Introduttivo a LabVIEW 16


L’ ambiente LabVIEW
Project

Diagram

Front panel

Massimo Lanzoni Corso Introduttivo a LabVIEW 17


Controls palette
(Front Panel)
Tool palette

Controls palette

Massimo Lanzoni Corso Introduttivo a LabVIEW 18


Functions Palette
(Diagram) Tool palette

Functions palette
Massimo Lanzoni Corso Introduttivo a LabVIEW 19
Front panel Status tool bar

Ordine oggetti
Font e formato caratteri
Run Spaziatura oggetti
Abort
Allineamento oggetti
Run continuo Pausa

Enter value

Massimo Lanzoni Corso Introduttivo a LabVIEW 20


Block diagram Status tool bar

Execution highlighting Step out


Clean Up Diagram
Skip over
Step into

Massimo Lanzoni Corso Introduttivo a LabVIEW 21


Tool palette

Automatic selection Positioning/Resizing Tool

Labeling Tool
Operating tool
Pop-Up Menu Tool
Wiring Tool
Scrolling Tool

Breakpoint Tool
Color Copying Tool

Coloring Tool
Probe Tool

Massimo Lanzoni Corso Introduttivo a LabVIEW 22


Controlli, indicatori e terminali

Controlli ed indicatori

terminali

Massimo Lanzoni Corso Introduttivo a LabVIEW 23


Operazioni e wiring

Massimo Lanzoni Corso Introduttivo a LabVIEW 24


Terminal View as icon (toggle)

Massimo Lanzoni Corso Introduttivo a LabVIEW 25


Wiring

Scalar 1D Array 2D Array

Numeric Orange (floating point)


Blue ( integer)

Boolean Green

String Purple

Hot Spot

Massimo Lanzoni Corso Introduttivo a LabVIEW 26


Dataflow programming rules
• L’ esecuzione avviene da SINISTRA a DESTRA
• I blocchi vengono eseguiti quando sono
presenti TUTTI I dati in ingresso
• I blocchi forniscono i dati a TUTTI i terminali di
uscita CONTEMPORANEAMENTE

Massimo Lanzoni Corso Introduttivo a LabVIEW 27


Flusso di dati
In esecuzione
In attesa di dati

Risultato non
valido

Massimo Lanzoni Corso Introduttivo a LabVIEW 28


Flusso di dati

Risultato
valido

Massimo Lanzoni Corso Introduttivo a LabVIEW 29


Debugging

Sintax error

Massimo Lanzoni Corso Introduttivo a LabVIEW 30


Tools di debugging

Probes e breakpoints

Massimo Lanzoni Corso Introduttivo a LabVIEW 31


Tools di debugging

Step out

Execution Highlighting Step into


Skip over

Massimo Lanzoni Corso Introduttivo a LabVIEW 32


Context help

Massimo Lanzoni Corso Introduttivo a LabVIEW 33


Editing shortcuts

Windows Sun Linux MacOS


<Ctrl-R> <♦-R> <M-R> <-R> Run a VI
<Ctrl-F> <♦-F> <M-F> <-F> Find object
<Ctrl-H> <♦-H> <M-H> <-H> Activate Context Help window
<Ctrl-B> <♦-B> <M-B> <-B> Remove all broken wires
<Ctrl-W> <♦-W> <M-W> <-W> Close the active window
<Ctrl-E> <♦-E> <M-E> <-E> Toggle btwn Diagram/Panel Window

TAB scorre la tools palette

Massimo Lanzoni Corso Introduttivo a LabVIEW 34


SubVI

Massimo Lanzoni Corso Introduttivo a LabVIEW 35


SubVI
Terminali subVI

Massimo Lanzoni Corso Introduttivo a LabVIEW 36


SubVI

Massimo Lanzoni Corso Introduttivo a LabVIEW 37


Creazione rapida

Massimo Lanzoni Corso Introduttivo a LabVIEW 38


Uso dei SubVI

Massimo Lanzoni Corso Introduttivo a LabVIEW 39


Strutture
For loop While loop

Timed While loop

Case

Event Case Math script

Formula node
Sequence
Feedback
Disable structure
Shared/local/global variables

Massimo Lanzoni Corso Introduttivo a LabVIEW 40


While loop

Iteretion terminal (OUT) Exit loop terminal (IN)

Massimo Lanzoni Corso Introduttivo a LabVIEW 41


Exit loop terminal

Massimo Lanzoni Corso Introduttivo a LabVIEW 42


Graphs e Charts

XY plots
Waveform Graph

Waveform Chart Logic plots

Intensity Chart e
Graph

3D plots

Massimo Lanzoni Corso Introduttivo a LabVIEW 43


Graphs e Charts

Massimo Lanzoni Corso Introduttivo a LabVIEW 44


Graphs e Charts

Massimo Lanzoni Corso Introduttivo a LabVIEW 45


Graphs e Charts

Ad un Graph non può essere collegato uno scalare !


I Graph non accumulano in memoria i dati precedenti

Massimo Lanzoni Corso Introduttivo a LabVIEW 46


Graphs e Charts
Per accumulare sul bordo del ciclo
i dati occorre abilitare l’ indicizzazione.

Massimo Lanzoni Corso Introduttivo a LabVIEW 47


Temporizzazioni
blocco Wait

Il blocco WAIT aggiunge una


pausa di durata fissa

Massimo Lanzoni Corso Introduttivo a LabVIEW 48


Temporizzazioni : blocco
Wait until next ms multiple

Il blocco WAIT UNTIL NEXT MS


MULTIPLE fa in modo attende finchè
il contatore di sistema non raggiunge
un multiplo intero del valore impostato

Massimo Lanzoni Corso Introduttivo a LabVIEW 49


Temporizzazioni : timed loop
Il timed loop verifica che l’ esecuzione del loop duri un prefissato
Intervallo di tempo (programmabile)

Massimo Lanzoni Corso Introduttivo a LabVIEW 50


Grafici multitraccia

Per plottare su un Chart diverse


tracce occorre creare un CLUSTER
dei dati in ingresso.

Il Graph può accogliere una matrice


2D e visualizza una traccia per
ogni RIGA

Massimo Lanzoni Corso Introduttivo a LabVIEW 51


Tipo Cluster
Il tipo CLUSTER (filo marrone)
raggruppa diverse informazioni
numeriche

L’ operazione di BUNDLE ha
come risultato un cluster
contenente i dati in ingresso

Analogo contrario per l’ operazione


UNBOUNDLE

Massimo Lanzoni Corso Introduttivo a LabVIEW 52


Matrici
Il blocco BUILD ARRAY permette di creare un
array n-dimensionale da elementi (n-1)-dimensionali
Dati scalari (n=0) indicizzazione

Array unidimensionale (n=1 k elementi)

Array bidimensionale (n=2 2 righe x k colonne)

Massimo Lanzoni Corso Introduttivo a LabVIEW 53


Shift Register

Initial Value Value 1 Value 2


Initial
Value Value 3
Value 1 Value 2 Value 3

Before
Loop First Second Last
Begins Iteration Iteration Iteration

Gli shift register permettono di avere a disposizione all’ inizio del ciclo il
valore di variabili al ciclo precedente.

Massimo Lanzoni Corso Introduttivo a LabVIEW 54


Shift Register

Per monitorare la variazione


di temperatura si utilizza uno
SHIFT REGISTER

Massimo Lanzoni Corso Introduttivo a LabVIEW 55


Shift Register
Initialized Uninitialized

RUN 1
Initial Value = 5 Initial Value = 0

RUN 2
Initial Value = 5 Initial Value = 8

Massimo Lanzoni Corso Introduttivo a LabVIEW 56


Feedback node

Massimo Lanzoni Corso Introduttivo a LabVIEW 57


Shift Register
n-1
n-2
n-3

Gli shift register permettono anche


di disporre dei valori ai cicli n-k.
La media mobile può essere
calcolata utilizzando uno shift register.

Massimo Lanzoni Corso Introduttivo a LabVIEW 58


Cicli FOR
Anche nei cicli FOR è possibile
accumulare i dati mediante
Indicizzazione e shift register

Il contenuto del FOR viene eseguito


esattamente n volte

Massimo Lanzoni Corso Introduttivo a LabVIEW 59


Cicli FOR
Non è necessario specificare N

Il numero di iterazioni può corrispondere


alla dimensione di un vettore di ingresso
mediante indicizzazione

Massimo Lanzoni Corso Introduttivo a LabVIEW 60


Cicli FOR
Indicizzazione in uscita: Non è necessario specificare N
accumulo i dati in un vettore

Indicizzazione in ingresso (autoindicizzazione):


eseguo il FOR tante volte quanti sono gli
elementi del vettore di ingresso indicizzato

Massimo Lanzoni Corso Introduttivo a LabVIEW 61


Matrici multidimensionali

indici

Massimo Lanzoni Corso Introduttivo a LabVIEW 62


Operazioni sulle matrici

Massimo Lanzoni Corso Introduttivo a LabVIEW 63


Operazioni sulle matrici

Numero di elementi

Inizializzazione

Sottoinsieme
Massimo Lanzoni Corso Introduttivo a LabVIEW 64
Operazioni sulle matrici

Aggiungere un elemento

Creare martici di dimensione superiore

Concatenare vettori

Massimo Lanzoni Corso Introduttivo a LabVIEW 65


Operazioni sulle matrici

Estrarre un elemento

Estrarre una riga

Massimo Lanzoni Corso Introduttivo a LabVIEW 66


Polimorfismo

La funzionalità di alcuni blocchi dipende dalle


proprietà dei dati collegati agli ingressi

Massimo Lanzoni Corso Introduttivo a LabVIEW 67


Polimorfismo: forzature

I punti grigi di forzatura


indicano che il dato in
ingresso è stato convertito
per renderlo omogeneo
con gli altri dati

I reali se convertiti in interi vengono arrotondati


all’ intero più vicino.
I reali del tipo x.5 vengono arrotondati
All’ intero pari più vicino
Es. 2.5  2
3.5  4

Massimo Lanzoni Corso Introduttivo a LabVIEW 68


CASE

La struttura case permette di controllare il flusso


di operazione in funzione del valore assunto da variabili
booleane, intere senza segno o stringa

Massimo Lanzoni Corso Introduttivo a LabVIEW 69


CASE
Nel caso la variabile di case sia di tipo intero senza segno o stringa
È possibile specificare più di due casi

Massimo Lanzoni Corso Introduttivo a LabVIEW 70


CASE
Un caso speciale è rappresentato dalla variabile error. Questa può essere
usata come variabile di case. I casi possibili sono “Error” e “No Error” cui
corrispondono cornici colorate rosso e verde rispettivamente.

Massimo Lanzoni Corso Introduttivo a LabVIEW 71


Flat Sequence

La struttura flat sequence permette di controlare il flusso di operazioni nel caso


Il controllo a flusso di dati non dia il risultato corretto.

Massimo Lanzoni Corso Introduttivo a LabVIEW 72


Sequence

La struttura sequence è del tutto simile alla flat sequence.


Permette di rispoarmiare spazio grafico a scapito della
leggibilità

Massimo Lanzoni Corso Introduttivo a LabVIEW 73


Sequence

Nel caso si debba passare dei dati da un frame al successivo si devono


utilizzare le variabili locali della sequence

Dato non Dato in uscita Dato proveniente


ancora disponibile dal frame da frame precedente

Massimo Lanzoni Corso Introduttivo a LabVIEW 74


Formula node
Talvolta è necessario eseguire delle operazioni complesse sui dati.
In questo caso può essere utilie ricorrere al sintetico formula node

Massimo Lanzoni Corso Introduttivo a LabVIEW 75


Expression nodes

Nel caso di espressioni di singola variabile è


conveniente utilizzare un Expression node

Massimo Lanzoni Corso Introduttivo a LabVIEW 76


Property nodes
I property nodes permettono di accedere da
programma alle proprietà degli oggetti sul
pannello (es. scale, visibilità, colori, valori, ecc.)

Property node

Massimo Lanzoni Corso Introduttivo a LabVIEW 77


Variabili locali
Le variabili locali rappresentano il valore di un controllo
o un indicatore. Sono molto utili per snellire il cablaggio
del programma.
Variabile locale che ne
modifica il valore

Controllo
(o indicatore)
Variabile locale che ne
rappresenta il valore attuale

Massimo Lanzoni Corso Introduttivo a LabVIEW 78


Event case

L’ event case permette di gestire


immediatamente eventi rari (es.
pressione di un tasto)
senza impegnare la CPU in un
loop continuo.

N.B. se l’ evento è la pressione


di un tasto occorre che la
mechanical action sia latched
e l’ evento da selezionare è
“Change value”

Massimo Lanzoni Corso Introduttivo a LabVIEW 79


Stringhe
Il tipo stringa (colore rosa) permette di rappresentare stringhe alfanumeriche di
caratteri ASCII visualizzabili e non.
Lunghezza stringa Concatenate
Indicatore stringa (out)

Controllo stringa (in) Format into string

Massimo Lanzoni Corso Introduttivo a LabVIEW 80


Output formattato
Il blocco Format into String è molto utile
per gestire output formattati di dati

Massimo Lanzoni Corso Introduttivo a LabVIEW 81


Sintassi della format string

La sintassi usata
per definire la format
string è quella del C

Massimo Lanzoni Corso Introduttivo a LabVIEW 82


Format String editor

E’ possibile aprire l’ editor


della format string che ne
aiuta la costruzione
nei casi più comuni

Massimo Lanzoni Corso Introduttivo a LabVIEW 83


Express VI
Build Text

Massimo Lanzoni Corso Introduttivo a LabVIEW 84


Input formattato

Analogamente il blocco Scan from String


permette di estrarre valori numerici da porzioni
di stringa.

Massimo Lanzoni Corso Introduttivo a LabVIEW 85


Output dati su file:
Write to Spreadsheet File

L’ output su file più comune in


Write to
LabVIEW permette di creare un file
Spreadsheet File
in formato spreadsheet, cioè
importabile in excel.

Massimo Lanzoni Corso Introduttivo a LabVIEW 86


Input dati da file:
Read from Spreadsheet File

Read from
Spreadsheet File

Massimo Lanzoni Corso Introduttivo a LabVIEW 87


Data Acquisition

DAQ Device
PCI 6024E

Cable

Terminaliera
BNC 2120

Computer

Massimo Lanzoni Corso Introduttivo a LabVIEW 88


BNC 2120

Massimo Lanzoni Corso Introduttivo a LabVIEW 89


BNC 2120

Massimo Lanzoni Corso Introduttivo a LabVIEW 90


BNC 2120

Massimo Lanzoni Corso Introduttivo a LabVIEW 91


BNC 2120

Massimo Lanzoni Corso Introduttivo a LabVIEW 92


Connessioni

Massimo Lanzoni Corso Introduttivo a LabVIEW 93


NI PCI-6024E

Scheda tipo MIO (multiple


input–output) senza buffer
on board per analog output
e analog trigger

Massimo Lanzoni Corso Introduttivo a LabVIEW 94


NI PCI-6024E

Massimo Lanzoni Corso Introduttivo a LabVIEW 95


NI MAX

Massimo Lanzoni Corso Introduttivo a LabVIEW 96


Acquisizione Express:
il DAQ Assistant

Massimo Lanzoni Corso Introduttivo a LabVIEW 97


Acquisizione con DAQmx

Massimo Lanzoni Corso Introduttivo a LabVIEW 98


Il tipo Waveform

Massimo Lanzoni Corso Introduttivo a LabVIEW 99


Acquisizione e
memorizzazione su file

file Waveform file Spreadsheet

Massimo Lanzoni Corso Introduttivo a LabVIEW 100


Lettura di waveform da file

Massimo Lanzoni Corso Introduttivo a LabVIEW 101


Analisi delle waveform

Express VI

Massimo Lanzoni Corso Introduttivo a LabVIEW 102


Analisi Express

Massimo Lanzoni Corso Introduttivo a LabVIEW 103


Generazione di tensioni

Massimo Lanzoni Corso Introduttivo a LabVIEW 104


Controllo di strumenti
via GPIB

GPIB Instrument GPIB Interface

GPIB Cable

Massimo Lanzoni Corso Introduttivo a LabVIEW 105


Scan degli strumenti GPIB

Massimo Lanzoni Corso Introduttivo a LabVIEW 106


Driver degli strumenti

Massimo Lanzoni Corso Introduttivo a LabVIEW 107


Controllo diretto: linguaggio SCPI

Massimo Lanzoni Corso Introduttivo a LabVIEW 108


NI VISA

Virtual Instrument Software Architecture

VISA

Serial GPIB VXI PXI

Massimo Lanzoni Corso Introduttivo a LabVIEW 109


NI VISA
Interface Resource Name Grammar

Serial ASRL[board][::INSTR]
GPIB GPIB[board]::primary address[::INSTR]
VXI VXI[board]::VXI logical address[::INSTR]
GPIB-VXI GPIB-VXI[board][::GPIB-VXI primary
address]::VXI logical address[::INSTR]

Massimo Lanzoni Corso Introduttivo a LabVIEW 110


NI VISA

Massimo Lanzoni Corso Introduttivo a LabVIEW 111


NI VISA serial

Massimo Lanzoni Corso Introduttivo a LabVIEW 112


Appendice A
NI PCI-6024E

Massimo Lanzoni Corso Introduttivo a LabVIEW 113


Links

Web events on demand:


http://sine.ni.com/apps/we/nievn.ni?action=display_weod_main

Tutorials on-line:
http://www.ni.com/events/tutorials/campus.htm

Forum tematici:
http://forums.ni.com/

Knowledge base:
http://digital.ni.com/public.nsf/MainPage?OpenForm&node=133020_US

Corsi disponibili:
http://www.ni.com/training/ http://cnx.rice.edu/content/col10241/1.2

Massimo Lanzoni Corso Introduttivo a LabVIEW 114