53
LabView Corso di laurea magistrale in Ingegneria delle Telecomunicazioni Misure Elettroniche per le Telecomunicazioni Gianfranco Miele [email protected]

LabView - unicas.itwebuser.unicas.it/misure/misuretlc/ppt/labview.pdf · 2010-11-11 · LabView Misure Elettroniche per le Telecomunicazioni Ambiente di sviluppo grafico: Codice Interfaccia

  • Upload
    others

  • View
    16

  • Download
    2

Embed Size (px)

Citation preview

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

Ciclo While

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

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

Running average

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

XY graph

Multi-plot XY Graph

Single-plot XY Graph

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

Formula Node: variabili temporanee

Si definiscono come uscite, ma non vengono collegate

Misure Elettroniche per le Telecomunicazioni