LabView - unicas.itwebuser.unicas.it/misure/misuretlc/ppt/labview.pdf · 2010-11-11 · LabView...
Transcript of LabView - unicas.itwebuser.unicas.it/misure/misuretlc/ppt/labview.pdf · 2010-11-11 · LabView...
LabView
Corso di laurea magistrale in
Ingegneria delle Telecomunicazioni
Misure Elettroniche per le Telecomunicazioni
Gianfranco [email protected]
LabView
Misure Elettroniche per le Telecomunicazioni
Ambiente di sviluppo grafico: Codice Interfaccia utente
ModulareCompilatore 32 bitElevato numero di funzioniLibrerie per la gestione della strumentazioneLibrerie per l'acquisizione datiPossibilità di includere routine in altro linguaggio
Libreria di funzioni
• Calcolo, confronto, cicli di controllo
• Operazioni su aggregati di dati (stringhe, array, ...)
• I/O su file
• Gestione strumentazione (RS232, IEEE-488, VXI, ...)
• Acquisizione dati
• Analisi (Generazione ed elaborazione segnali, Statistica,
Fitting, Algebra lineare, ...)
• Comunicazione (DDE, TCP/IP, Bluetooth, ActiveX)
• Gestione applicazione (DLL, Timers, Sincronizzazione)
Misure Elettroniche per le Telecomunicazioni
Virtual Instrument (VI)
• Il Front Panel
• Il Block Diagram
• L’icona/connettore
Misure Elettroniche per le Telecomunicazioni
Front Panel
– E’ l’interfaccia utente dell’applicazione
Contiene:
- Controlli(input)
- Indicatori (output)
Misure Elettroniche per le Telecomunicazioni
Front Panel
Toolbar
Icona/Connettore
Controllonumerico
Etichetta
Legenda
Controllo
“Knob”
Indicatore
“Chart”
Misure Elettroniche per le Telecomunicazioni
Block Diagram
- E’ il codice sorgente dell’applicazione (in Linguaggio G)
- Controlli e indicatori del pannello appaiono come Terminali
- Nodi o funzioni: ricevono dati dai connettori di ingresso e
forniscono dati su quelli in uscita
Misure Elettroniche per le Telecomunicazioni
Dataflow programming
• Un nodo è eseguito quando i dati sono disponibili a TUTTI i suoi terminali di ingresso
• Un nodo fornisce i dati ai suoi terminali di uscita quando è terminata la sua esecuzione
• Se non esiste dipendenza tra due nodi, l’ordine con cui verranno eseguiti non è prevedibile !
• Data drivenIl modello di programmazione di LabView è
Misure Elettroniche per le Telecomunicazioni
Dataflow programming
Arancione (floating point)
Blu (interi)
Verde
Viola
Numeri
Booleani
Stringhe
• Un filo collega un’unica sorgente di dati con uno o più nodi
• Il colore e lo spessore del filo individuano il tipo di dato
Scalar Array 1D Array 2D
Misure Elettroniche per le Telecomunicazioni
L’ambiente di sviluppo: Le palette
Palette dei Controlli(Pannello)
Palette delle Funzioni(Diagramma)
Misure Elettroniche per le Telecomunicazioni
L’ambiente di sviluppo: La toolbar
Debugging
Stop
Continuous Run
Run
Misure Elettroniche per le Telecomunicazioni
L’ambiente di sviluppo: i tools
Operating: Inserimento dati
Positioning: Posizionamento e ridimensionamento
Labeling: Gestione etichette
Wiring: Collegamento (nel Block Diagram)
Object pop-up: Menu dell'oggetto
Scrolling: Scorrimento della finestra
Breakpoint: Inserimento stop (debug)
Probe: Visualizzazione dati nei fili (debug)
Color copy: Copia di un colore
Coloring: Per colorare un oggetto
Misure Elettroniche per le Telecomunicazioni
Tecniche di debug
Click sulla freccia spezzata: Info sull’errore
Highlighting button: Esecuzione animata
Probe: Mostra il valore dei dati mentre scorrono lungo i fili
Breakpoint: ferma l’esecuzione quando i dati sono disponibili sul filo
Single Step: Esecuzione passo-passo
Step Over: Esecuzione passo-passo, non entra nei nodi
Step Out: Esecuzione passo-passo, esce dai nodi nei quali è entrato
Misure Elettroniche per le Telecomunicazioni
SubVI
• Un VI può essere usato nel Block Diagram di un altro VI di
livello più alto
• Nel VI chiamante, un SubVI è rappresentato con la sua icona
Misure Elettroniche per le Telecomunicazioni
Realizzazione di un SubVI
• Disegno dell’icona
• Associazione di controlli
e indicatori alle caselle
del connettore
• Salvataggio su disco
Misure Elettroniche per le Telecomunicazioni
Realizzazione di un SubVI
• Functions >> Select a VI …
• Trascinare l’icona sul diagramma
chiamante
Misure Elettroniche per le Telecomunicazioni
Ciclo While
Iteration
terminalConditional
terminal
Qui va il codice da
iterare
Ripetere?
• Il ciclo termina quando si fornisce FALSE al conditional terminal
• Il codice è eseguito almeno una volta
• L'iteration terminal restituisce il numero di iterazioni raggiunto
Misure Elettroniche per le Telecomunicazioni
Waveform Chart
Legenda
Palette
Label
Aggiornamento:
• Strip chart
• Scope chart
• Sweep chart
Misure Elettroniche per le Telecomunicazioni
Visualizzazione con Waveform Chart
Ad ogni iterazione il waveform chart riceve uno
scalare
Misure Elettroniche per le Telecomunicazioni
Tipi numerici e conversioni
Coercion dot
I 16
DBL
DBL
• Interi con segno: I8, I16, I32
• Interi senza segno: U8, U16, U32
• In virgola mobile: SGL (32), DBL (64), EXT
• Complessi
Misure Elettroniche per le Telecomunicazioni
Comportamento dei controlli booleani
Switch - Commuta
per pressione e
rilascio
Latch – Ritorna
nello stato di
default quando
viene letto dal
diagramma
• When pressed
• When released
• Until released
Misure Elettroniche per le Telecomunicazioni
Ciclo While temporizzato
Esecuzione di azioni
ad intervalli prestabiliti
Impegno limitato di
risorse
Adeguamento ai tempi
di risposta dell'utente
Misure Elettroniche per le Telecomunicazioni
Grafici multiple-plot
• Bundle (nella palette Functions >> Cluster): assembla i
suoi ingressi in un unico cluster
• Un cluster è una struttura che raccoglie più elementi in un
nuovo tipo di dato
Misure Elettroniche per le Telecomunicazioni
Shift register
• Trasferiscono dati da una iterazione alla successiva
• Si inseriscono con un right-click sul bordo del loop
• Il terminale destro conserva il dato alla fine della iterazione
• Il terminale sinistro fornisce il dato alla iterazione successiva
Dapasso precedente
Per ilprossimopasso
Inizializzazione
Misure Elettroniche per le Telecomunicazioni
Shift register
L'ultimo valoreva passato qui
Si possono aggiungere altri shift register per ottenere
valori di iterazioni precedenti
1 loop prima
2 loop prima
3 loop prima
Misure Elettroniche per le Telecomunicazioni
Ciclo for
Numero di iterazioni
da eseguire
Numero corrente di
iterazioni
Esegue il codice al suo interno un numero
prestabilito di volte
Misure Elettroniche per le Telecomunicazioni
Array
Indice
array di 10 elementi 1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7
0 1 2 3 4 5 6 7 8 9
Arraybidimensionale
0 1 2 3 4 5 60 1 2 34
• Collezioni di elementi (dati) dello stesso tipo
• Una o più dimensioni, fino a 231 elementi per dimensione
• Si accede agli elementi con un indice per dimensione
• Il primo elemento ha sempre indice 0
Misure Elettroniche per le Telecomunicazioni
Controlli ed indicatori per gli array1. Selezionare Array dalla
palette dei controlli
Procedura analoga per le
costanti array
Add Dimension per 2D arrays
2. Inserire un controllo del tipo desideratonella Array Shell
Misure Elettroniche per le Telecomunicazioni
Autoindexing
•Il loop accumula l'array al suo margine
0 1 2 3 4 5
1D arr ay
Auto-Indexing abilitato
(Default nel For)
Scalare risultatodell'ultima iterazione
Auto-Indexing disabilitato
(Default nel While)
Misure Elettroniche per le Telecomunicazioni
Creazione array 2D
•Il loop interno crea gli elementi di ogni riga
•Il loop esterno sovrappone le righe
0 1 2 3 4 5
1D array
0123
2D array
# colonne
# righe
Misure Elettroniche per le Telecomunicazioni
Autoindexing e lettura di array
Non deve essere impostato
direttamente
Il ciclo viene eseguito per un numero di volte
pari al numero di elementi dell'array collegato
Misure Elettroniche per le Telecomunicazioni
Funzioni per gli array
4
1010 10 10 10
initializedarray
element
dimensionsize
Initialize Array
Number of 3 2 57 4Array
Elements
Misure Elettroniche per le Telecomunicazioni
Funzioni per gli array
3 2 5
7 1 4 23 2 57
1 4 2Array
Array
Elemento Nuovo array
3 2 5
1 4 21D Array
1D Array3 2 5
1 4 22D Array
array
ElementoArray con il nuovo elemento accodato
Build Array
3 2 5
1 4 21D Array
1D Array1D Array1 4 23 2 5
Dal menu di contesto:
“change to element”
“change to array”
La funzione Build Array
è resizable
Misure Elettroniche per le Telecomunicazioni
Funzioni per gli array
5
2
7 1 4 23 2 5
Array
Index
Element
0Row Index
2D Array
1 4 2
3 52
2Column Index
5
Element
arrayindex(0)
length
subarray
Array Subset
arrayindex
element
1 3 2 57 82
Index4
3 2 572
Length
Array SubsetArray
Index Array
Misure Elettroniche per le Telecomunicazioni
Funzioni per gli array
Estrae una riga
0
0
0
Estrae una colonnaIndex array
Dal menu di contesto della Index
Array:
" Add dimension
" Disable input
Misure Elettroniche per le Telecomunicazioni
Polimorfismo
• Ingressi delle funzioni di tipo diverso
• Comportamento dipendente dal tipo degli ingressi
• Tutte le funzioni aritmetiche sono polimorfiche
Scalare + Scalare
Array + Scalare
Combinazione Risultato
Scalare
Array
Array
1 4 2
2
4 6 7
5
2
7
Array + Array 3 2 5
1 4 2
Array + Array 1 4 2
3 2 5 7
Array3 6 4
4 6 7
Misure Elettroniche per le Telecomunicazioni
Waveform graph
Tracciano un array di valori numerici rispetto all'indice
Palette
Legenda
Misure Elettroniche per le Telecomunicazioni
Single plot waveform graph
1D Array
1D Array
Terminale del WaveformGraph (è un Array 1D)
Terminale del WaveformGraph (è un Cluster)
" X0 è il valore iniziale per le ascisse
" deltaX è la distanza orizzontale tra i punti del grafico
Misure Elettroniche per le Telecomunicazioni
Multiple plot waveform graph
clusters
cluster array
1D Arrays 2D array
Build Array
Terminale del
Waveform Graph (è un
Array 2D)
Terminale del Waveform
Graph (è un Array di
Cluster)
Misure Elettroniche per le Telecomunicazioni
Cluster
Combinano più strutture dati in un nuovo tipo dati
Possono contenere elementi di tipo diverso
Si possono definire costanti, controlli e indicatori di tipo Cluster
L'ordine degli elementi è importante
Unbundle
Misure Elettroniche per le Telecomunicazioni
Funzioni per i cluster
Modifica di un elemento
di un Cluster:
Misure Elettroniche per le Telecomunicazioni
Case
Selettore booleano:
if...then...else
• Solo un sottodiagramma viene eseguito
• Il valore passato al selettore determina il codice da eseguire
• Il selettore può essere booleano, numerico o stringa
Misure Elettroniche per le Telecomunicazioni
Case
• Con selettori di tipo numerico o stringa si possono gestire scelte
multiple
• “Add Case” dal menu di contesto per aggiungere nuove scelte
• Un Case deve essere quello di default
Misure Elettroniche per le Telecomunicazioni
Ingressi ed uscite del case (tunnel)
Tunnel di
uscita
• In TUTTI i case devono essere collegati TUTTI i tunnel
Misure Elettroniche per le Telecomunicazioni
Sequence
• I sottodiagrammi vengono eseguiti uno dopo l'altro
• Consente di fissare l'ordine di esecuzione di VI non dipendenti
Misure Elettroniche per le Telecomunicazioni
Sequence locals
• Passano dati da un frame al solo frame successivo
• Si definiscono sul bordo della Sequence
Sequence localin uscita dal
Frame 1
Dati nondisponibili
Datidisponibili
Misure Elettroniche per le Telecomunicazioni
Formula Node
- Implementazione di equazioni complicate
- Variabili create sul bordo
- I nomi delle variabili sono case sensitive
- Ogni istruzione deve terminare con un punto e virgola (;)
- <Ctrl-H> per l'elenco delle funzioni disponibili
Misure Elettroniche per le Telecomunicazioni
Formula Node: conditional branching
if (x >= 0) then
y = sqrt(x)
else
y = -99999.0
end if
Condition
Conditional Operator
True Condition
False Condition
Misure Elettroniche per le Telecomunicazioni