R&R - Siti Xoomxoomer.virgilio.it/beniaminarauch/LabView/LabVIEW.pdf · LabView è un ambiente per...
Transcript of R&R - Siti Xoomxoomer.virgilio.it/beniaminarauch/LabView/LabVIEW.pdf · LabView è un ambiente per...
1
©R&R
2
©R&R
LabVIEW
E’ un acronimo per
"Laboratory Virtual Instrument Engineering Workbench“
Ideato dalla National Instrument nel 1986
È standard mondiale per:
l’acquisizione dati (DAQ)il controllo della strumentazione
3
©R&R
Linguaggio graficoLabView è un ambiente per sviluppare programmi
Nei linguaggi tradizionali come il C e il Vbasic i programmi :
richiedono dati in inputproducono dati in outputsono formati da linee di codice
I programmi LabVIEW si scrivono in G ⇒ programmazione grafica
• si prendono degli oggetti,• si collegano tra loro • si stabiliscono le loro relazioni • si costruisce una specie di schema a blocchi
4
©R&R
Il linguaggio GIl codice sorgente è un diagramma
di elementi connessi da fili
I dati viaggiano attraverso i fili
Il flusso di dati controlla il codice
5
©R&R
Finestra di dialogo inizialeNew
Per iniziareUn nuovo
lavoro
OpenPer
riprendere il lavoro
6
©R&R
Scegliere
l’opzione
Blank VI
Premere OK
Creazione di un nuovo VI
7
©R&R
Cos’è un VI ?
I Programmi realizzati in LabVIEW vengono chiamati Strumenti Virtuali
Virtual Instruments
Gli strumenti virtuali (VI) contengono i seguenti elementi principali:
• Il pannello frontale;• Il diagramma a blocchi;
8
©R&R
L’icona
L’ambiente di lavoro
Il pannello frontale
Il diagramma a blocchi
Compaiono due finestre sovrapposte
9
©R&R
Disposizione affiancata
Per visualizzare entrambi gli schemi affiancati
utilizzare il menù a tendina
Window → Tile Left and Right.
Pannello
Frontale
Diagramma
A Blocchi
10
©R&R
Il Pannello FrontaleE’ l’interfaccia utente
Si Visualizza tramite il menù a tendina
Window→Show Front Panel
Contiene
Controlli e Indicatori
I terminali interattivi
di ingresso e di uscita
di un VI
11
©R&R
Il diagramma a blocchiIl diagramma a blocchi contiene
il codice sorgente grafico
composto da:
• nodi,
• terminali
• Fili di collegamento
E’ visualizzato tramite il menù a tendina
Window →Show Block Diagram
Terminali
Nodi
12
©R&R
Lo scambio dei dati
Il dialogo tra Pannello Frontale e Diagramma a Blocchi
I Controlli forniscono dati allo schema a blocchi del VI.
Gli indicatori visualizzano i dati che il diagramma a blocchi acquisisce o genera.
13
©R&R
Programmazione grafica
Osserviamo la differenza di terminologia rispetto alla programmazione tradizionale
14
©R&R
I Controlli
Sono potenziometri, pulsanti, quadranti
Simulano
i dispositivi
d’ingresso
degli strumenti
15
©R&R
Gli Indicatori
Sono Led e altri Visualizzatori
Simulano i dispositivi di uscita degli strumenti
16
©R&R
La Palette Controls
Per visualizzare la palette Controlssi clicca con il tasto destro del mouse in un’area libera del pannello
frontale.
Oppure si usa il menù a tendinaWindow→Show Controls Palette
Serve a disegnare il pannello frontale
17
©R&R
La palette Controls
• Controlli• Indicatori
Sono ben separatiE’ una palette semplificata
Una visione completa viene fornita dalla
Palette All Controls
Serve a inserire nel pannello frontale
18
©R&R
La Palette All ControlsNumeric Controlli e indicatori numerici
Boolean Controlli e indicatori booleani
String
Graph
Decoration
19
©R&R
La Palette FunctionContiene gli elementi operativi di LabView
Raccolta datiSimulazione segnali
Analisi di forme d’onda Salvataggio dati e Messaggi di errore
Strutture di controllo Temporizzazioni
Svolgimento calcoli Confronto fra dati
Elaborazione di segnaliConversione di tipi di dati
Insieme completo delle funzioni
Funzioni costruite dall’utente
Le funzioni non appaiono nel pannello frontale
20
©R&R
Esercizio
Una “misura” di temperatura
21
©R&R
Inserimento di un controllo
• Clicchiamo con il destro sul pannello frontale• Appare la Palette Controls• Clicchiamo su Num Ctrls (Numeric Controls)• Sulla finestra che appare scegliamo Pointer Slide
22
©R&R
Inserimento di un controllo
Trasciniamo il controllo sul pannello frontale
23
©R&R
I Terminali
Gli oggetti del pannello frontale
appaiono nel diagramma a blocchi
come oggetti chiamati Terminali.
24
©R&R
Cancellazione di Terminali
Nelle versioni precedenti di LabView
Non si poteva cancellare un terminale dallo schema a blocchi.
Il terminale scompariva solo dopo che si cancellava l’oggetto corrispondente sul pannello frontale.
C’è stretta corrispondenza
25
©R&R
Proprietà di un controllo
Ogni controllo è contraddistinto da due proprietà di tipo testualeLa sua LabelLa sua Caption
Label (Slide nel caso della figura) il nome che lo rappresenta nel diagramma a blocchi.
La Caption (invisibile nel caso in figura) descrizione che si può aggiungere non appare nel diagramma a blocchi
26
©R&R
Cambiamo valore alla Label
• Clicchiamo due volte sulla Label• La Label diventa nera• Inseriamo il nuovo valore della label• Il cambiamento si riflette nel terminale
27
©R&R
Cambiamo la scala• Clicchiamo sul valore max della scala• Il valore diventa bianco• Inseriamo il nuovo valore• La scala si adatta automaticamente
Oppure
Si clicca con il destro sul controllo
Si accede alla finestra Properties
Si sceglie la Scheda Scale
Si cambia Scale Range
28
©R&R
Inseriamo un Indicatore
• Clicchiamo con il destro sul pannello frontale• Appare la Palette Controls• Clicchiamo su Num Inds(Numeric Indicators)• Sulla finestra che appare scegliamo Thermometer• Trasciniamolo sul pannello frontale
29
©R&R
La nuova situazione
Nel diagramma a blocchi appare ora un nuovo terminale
Pannello frontale Diagramma a blocchi
30
©R&R Terminale di tipoControllo o Indicatore ?
I Control terminalshanno
bordi spessi
Gli Indicator terminalshanno
bordi sottili
31
©R&R
Costruzione del programmaScopo del programma:
Muovendo il controllo SlideLa temperatura sul termometro deve cambiare
Sono i punti del diagramma In cui va effettuato il collegamento
Il terminale Termometro ha un triangolino sul lato sinistro
rappresenta l’ingresso dell’indicatore
Il terminale Slide ha untriangolino sul lato destro
rappresenta l’uscita del controllo
32
©R&R
Come si fanno i collegamenti
Si deve disegnare un filo (wire) tra i due terminali
I fili rappresentano il flusso di dati all’interno del diagramma a blocchi
Per disegnare i fili si usa lo strumentoConnect Wire
della Palette Tools
33
©R&R
La palette Tools
Assicurarsi che sia selezionato lo strumentoSelezione Automatica del ToolIn questo modo il Labview sceglie da solo il Tool più appropriato mentre si costruisce ilDiagramma a blocchi.
Per farla comparire se non è presente:
Window→Show Tools Palette
In caso contrario è necessario scegliere ogni volta dalla Palette lo strumento necessario
34
©R&R
Come si traccia un filo
Con la scelta automatica del Tool abilitata quando avviciniamo il mouse ad un terminale
compare un “punto caldo”ed il mouse assume la forma
di un rocchetto di filoPer tracciare il filo cliccare con il mouse e
“trascinare” il filo fino all’altro terminale
35
©R&R
Collegamenti errati
Se il collegamento fatto ha una logica all’interno del VI
Il filo apparirà continuoAltrimenti apparirà
Tratteggiato (bad wire)
36
©R&R
Salvataggio del VI
Menù File ⇒ Save
Cartella in cui si salva
Nome del VI
37
©R&R
Esecuzione di un VISi usano i pulsanti
della barra degli strumenti
38
©R&R
Esecuzione continua
Muovendo il controllo Slideil termometro
adegua la suavisualizzazione
alla temperatura impostata
Per terminare l’esecuzione
premere il pulsante di Abort
39
©R&R
Esercizio
Un “controllo” di temperatura
40
©R&R
Il Pannello Frontale
Vogliamo poter impostare una soglia per la temperatura
Vogliamo che si accenda un led se la soglia viene superata
Interfaccia
Utente
41
©R&R
Inseriamo il controllo per la soglia
• Clicchiamo con il destro sul pannello frontale• Appare la Palette Controls• Scegliamo Num Ctrls• E poi di nuovo Num Ctrl• Trasciniamo il controllo sul pannello frontale
42
©R&R
Cambiamo valore alla Label• Il controllo Numerico ha la Label =Numeric• Clicchiamo due volte sulla Label• La Label diventa nera• Inseriamo il nuovo valore della Label = Soglia• Il cambiamento si riflette nel terminale del
Diagramma a Blocchi
Prima
Dopo
43
©R&R
Inseriamo un led• Clicchiamo con il destro sul pannello frontale• Compare la palette Controls• Scegliamo Leds• Scegliamo Round Led • Posizioniamo il controllo sul pannello frontale• Cambiamo la sua Label
44
©R&R
Situazione Ecco come devono apparire
Il Pannello Frontale Il Diagramma a blocchi
Il Led ha un terminale di ingresso True/False
45
©R&R
Scrittura del programma di controlloDobbiamo controllare se la temperatura supera il valore impostato
per la soglia
In caso positivo si deve accendere il Led
Per scrivere il programma dobbiamo lavorare
sul diagramma a blocchi
•Clicchiamo con il destro sul Diagramma a Blocchi
•Compare la Palette Functions
Per effettuare il paragone
ci serve la Funzione
Arith/Compare
46
©R&R
Arithmetic & ComparisonConsente di scegliere tra una vasta gamma di calcoli aritmetici e logici
Nel nostro caso dobbiamo selezionare
Comparison
(Paragoni)
E poi la funzione Greater? ( E’ più grande?)
47
©R&R
Greater?
Ha due terminali di ingresso x e y che vengono confrontati
Ha un terminale di uscita del tipo True/False
Se x>y l’uscita è True, altrimenti è False
Bisogna collegare:
All’ingresso x
il controllo di temperatura
All’ingresso y
La soglia
L’uscita va al Led
48
©R&R
I Nodi
I nodi sono oggetti del diagramma a blocchi che hanno ingressi e uscite e svolgono delle operazioni durante l’esecuzione di un VI
Sono analoghi alle Istruzioni, operatori e Funzioni di un linguaggio diprogrammazione
Nodi speciali sono:
•I Formula Nodes utili per valutare formule ed espressioni
•Le strutture (Cicli etc.)
Nel gergo del LabView
la funzione Greater?
inserita nel diagramma
è un nodo
NODO
49
©R&R
Diagramma a BlocchiNotiamo che nel diagramma si viene a creare una
Wire Junction
Eseguiamo il VI in modo continuo
Muoviamo il controllo di Temperatura
Il led si accenderà quando la temperatura supera la soglia
Proviamo il VI con diversi valori della soglia
50
©R&R
Esercizio
Sommiamo due numeri
51
©R&R Disegniamo l’interfaccia utente
Per immettere i numeri da sommare inseriamo due controlli numerici
Dalla Palette Controls scegliamo Num Ctrls e poi Num Ctrl
Cambiamo le Label dei due controlli in:
Primo Numero
Secondo Numero
52
©R&R
Per visualizzare il risultato
Ci vuole un Indicatore
Dalla Palette Controls scegliamo Num Inds e poi Num Ind
Posizioniamo il controllo sul Pannello Frontale
Cambiamo la sua Label in Risultato
53
©R&R
L’interfaccia utente
L’utente può inserire i valori dei numeri da sommare
nei corrispondenti controlli numerici
L’utente non può cambiare il valore del risultato
In quanto un indicatore visualizza
il valore calcolato dal programma
54
©R&R
Scriviamo il programma
Bisogna inserire la funzione matematica di somma
Scegliamo
Arith/Compare
e poi
Numeric
Nel diagramma a blocchi
Facciamo comparire
La Palette Functions
55
©R&R
Le Funzioni Numeriche
Scegliamo Add
56
©R&R
La funzione AddHa due terminali di ingresso x e y
Ha un terminale di uscitache rappresenta
la somma degli ingressix + y
Colleghiamo:
I due terminali
di tipo controllo
agli ingressi della funzione
Colleghiamo l’uscita della funzione al terminale indicatore che deve visualizzare il risultato
57
©R&R
Esecuzione del programma
L’utente cambia i valori dei numeri agendo sui controlli
Il risultato viene visualizzato nell’indicatore
58
©R&R
Esercizio
Somma di due numerie
Sottrazione di una costante
59
©R&R
Inseriamo una costanteClicchiamo con il destro sul diagramma a blocchi
60
©R&R
Le Costanti
Nel diagramma a blocchi compare la costante
La costante è una “sorgente “ di dati
del diagramma a blocchi
che non appare nel pannello frontale
e che fornisce valori fissi al diagramma
61
©R&R
Modifichiamo il diagramma
Costante
Il diagramma a blocchi
dopo l’inserimento della costante
Il risultato non è più
la somma dei numeri
Dobbiamo cancellare il collegamento
tra la funzione somma e il risultato
Clicchiamo sul collegamento
Il filo appare tratteggiato
Premiamo Canc
Il Collegamento scompare
62
©R&R
La funzione SubtractHa due terminali di ingresso x e y
Ha un terminale di uscitache rappresenta
la differenza degli ingressix - y
L’uscita della funzione Add
All’ingresso x di Subtract
La costante numerica
All’ingresso y di Subtract
Colleghiamo:
Colleghiamo l’uscita della funzione Subtract al terminale indicatore che deve visualizzare il risultato
Risultato= (Primo Numero + Secondo Numero) - K
63
©R&R
Esecuzione del programmaImpostiamo la costante
numerica al valore 7 cliccandoci sopra due volte
Eseguiamo il programma
Il risultato è corretto 45+ 3 = 48 48 – 7 = 41
La costante 7 non compare però nell’interfaccia utente
64
©R&R
Visualizzazione della costanteInseriamo nel pannello frontale
Un altro indicatore numerico
Controls ⇒ Num Inds ⇒ Num Ind
Nel diagramma
colleghiamo
La costante numerica
Al nuovo terminale
Notiamo che nel diagramma si viene a creare una
Wire Junction
65
©R&R
Esercizio
Addizionatrice On - Off
66
©R&R
Interfaccia utente
Il VI deve visualizzare:
La somma dei due numeri se l’interruttore è ON
0 se l’interruttore è OFF
Lo stato ON / OFF dell’interruttore viene indicato:
Dalla posizione del pulsante
Dall’accensione / spegnimento di un led
67
©R&R
Inserimento pulsante
Visualizziamo la Palette Controls e scegliamo Buttons
Compare la finestra Buttons & Switches
Scegliamo Toggle Switch
68
©R&R
Collegamento Led - SwitchInseriamo il led nel pannello frontale
Nella Palette Controls Scegliamo Ledse poi scegliamo Round Led
Cancelliamo la Label Boolean dello switch e scriviamo ON/OFF
Cancelliamo la Label Boolean del led
Lo switch ha una uscita Boolean (TF)
Il Led ha un ingresso Boolean (TF)
Colleghiamoli
Switch on ⇒ Led On
Switch off ⇒ Led Off
69
©R&R
Il nodo di SelezioneIn funzione della posizione dello switch
dobbiamo portate all’indicatore del risultato
Il risultato della funzione somma (se lo Switch è On)
Il valore della costante (0) (se lo Switch è Off)
Ci vuole un nodo di selezione (Select)
Ha due ingressi t (true) e f (false)
Ha un ingresso di selezione s
Se s= true viene riportato in uscita l’ingresso t
Se s= false viene riportato in uscita l’ingresso f
70
©R&R
Inserimento del nodo SelectClicchiamo con il destro sul diagramma a blocchi
71
©R&R
Scriviamo il programmaLa somma dei due numeri
è l’ingresso t del nodo select
La costante 0
è l’ingresso f del nodo Select
L’uscita dello switch (TF)
è l’ingresso s di selezione
Il risultato visualizzato sarà la somma se lo switch invia True
Il risultato visualizzato sarà 0 se lo switch invia True
72
©R&R
Esercizio
Le Porte Logiche
73
©R&R
Le funzioni BooleanVogliamo visualizzare tramite
l’accensione e lo spegnimento di ledil diverso funzionamento della
funzione AND e della funzione OR
Le funzioni And e OR accettano e forniscono
input e output di tipo Boolean
(True/False)
Palette Functions ⇒ Arith/Compare ⇒ Boolean
74
©R&R
Esercizio
Conversione da gradi Celsius a gradi Fahrenheit
75
©R&R
Un po’ di FisicaSiano F e C due misure della stessa
temperatura nelle due scale
C : 100 = F - 32 : (212 – 32)
C : 100 = F - 32 : 180
F – 32 = C * 180 / 100 = C * 1.8
F = C * 1.8 + 32
76
©R&R
Il Pannello Frontale•Un controllo per inserire la temperatura in gradi Celsius
•Un indicatore per visualizzare la temperatura corrispondente
E’ composto da:
Dalla Palette Controls ⇒ Num Ctrls ⇒ Num Ctrl
Dalla Palette Controls ⇒ Num Inds ⇒ Num Ind
Cambiare le Label in
Gradi Celsius
Gradi Fahrenheit
77
©R&R
Scriviamo il programma La formula da applicare è:
F = C * 1.8 + 32Ci vogliono due costanti
e due funzioni numeriche
Per inserirle dalla Palette Funtions ⇒ Arith/Compare ⇒ Numeric
Notiamo il colore
dei fili e dei nodi
Blu ⇒ Dato Intero
Arancione ⇒ Dato Reale
78
©R&R
Esercizio
La legge di Ohm
79
©R&R
Il pannello frontale
Disegniamo un “circuito” composto da
•Un generatore di tensione
•Una Resistenza
•Un Amperometro
Muovendo la manopola del generatore deve variare la corrente
80
©R&R
Controlli e IndicatoriDalla Palette
Controls ⇒Num Ctrls
Scegliamo:
•Num Ctrl per rappresentare la resistenza e impostarne il valore
•Knob per rappresentare la manopola del generatore di tensione
Dalla Palette
Controls ⇒Num Inds
Scegliamo:
•Meter per rappresentare il quadrante dell’amperometro
81
©R&R
Il disegno del circuitoDalla Palette
Controls ⇒All Controls
Scegliamo Decorations
Sono linee, frecce, forme varie
Servono per abbellire i VI
82
©R&R
Il programma “Legge di Ohm”
Legame Tensione (V), Resistenza (R) e Corrente (I)
Per realizzare il programma basta aggiungere un nodo che effettua la divisione
Palette Functions ⇒ Arith/Compare ⇒ Numeric ⇒ Divide
VR
I =