Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoLadislao Albano Poletti Modificato 8 anni fa
1
Strumentazione Virtuale con LabVIEW
2
Obbiettivo del Corso Comprendere i componenti di uno Stumento Virtuale Introduzione a LabVIEW e alle funzioni più comuni Realizzare una semplice applicazione di Acquisizione Dati Creare un sottoprogramma in LabVIEW Lavorare con Arrays, Clusters, e Strutture Imparare ad usare le opzioni di Stampa & Documentazione Sviluppare con Architetture di Programmazione di Base Pubblicare VIs sul Web
3
Sezione I Termini di LabVIEW Componenti di una applicazione LabVIEW Strumenti di programmazione LabVIEW Creare una applicazione in LabVIEW
4
Front Panel (Pannello Frontale) Controls = Ingressi Indicators = Uscite Block Diagram Codice associato al Pannello Frontale Componenti “filati” insieme I Programmi LabVIEW Sono Chiamati Virtual Instruments (VIs)
5
VI Front Panel (Pannello Frontale) Front Panel Toolbar Legenda Grafico Controllo Boleano Waveform Graph Icona Plot Legend Legenda Scala
6
VI Block Diagram (Diagramma a Blocchi) Filo Dati Terminale Grafico SubVI Struttura While Loop Block Diagram Toolbar Funzione Divisione Costante Numerica Funzione Tempo Terminale controllo Boleano
7
Express VIs, VIs and Funzioni Express VIs: VIs Interattivo con finestra dialogo configurazione Standard VIs: moduli VIs personalizzati con fili Functions: Elementi operativi fondamentali di LabVIEW; non ha pannello o diagramma Express VI Standard VI Funzioni
8
Palette Controls e Functions Controls Palette (Finestra Front Panel) Functions Palette (Finestra Block Diagram)
9
Operating Tool Positioning/Resizing Tool Labeling Tool Wiring Tool Shortcut Menu Tool Paletta Fluttuante Usata per operare o modificare gli oggetti del Pannello Frontale o del Diagramma a Blocchi. Scrolling Tool Breakpoint Tool Probe Tool Color Copy Tool Coloring Tool Tools Palette Selezione automatica del Tool
10
Modifica o imposta valori Posiziona/Ridimensiona Inserire o modifica testo Traccia fili (Collegamenti) Apre menu scorciatoia Paletta Fluttuante Usata per operare o modificare gli oggetti del Pannello Frontale o del Diagramma a Blocchi. Scrolling schermo Inserisce un Breakpoint Inserisce un Probe (sonda) Copia Colori Scelta dei colori Tools Palette Selezione automatica del Tool
11
Bottone Run Bottone Run Continuo Blocca Esecuzione Pausa/Continua Impostazioni Testo Alinea Oggetti Distribuisce Oggetti Riordina Ridimensiona oggetti panello frontale Bottone Esecuzione Evidenziata Bottone Step Into Bottone Step Over Bottone Step Out Bottoni in più presenti sulla Toolbar Diagrammi Status Toolbar
12
Do Not Delete This Slide
13
Aprire ed Eseguire un Virtual Instrument Example finder (Cerca Esempi)
14
Terminali dei Controlli Finestra Block Diagram Finestra Front Panel Terminali degli Indicatori Creare un VI
15
Creare un VI – Block Diagram
16
Wiring Tips – Block Diagram Wiring “Punto caldo” “Pulire” un collegamento Usa Posizionamento Automatico Filo Click per selezionare I fili
17
Do Not Delete This Slide
18
L’esecuzione sul Diagramma a blocchi dipende dal flusso dei dati; Il diagramma a blocchi NON viene eseguito da sinistra a destra Il Nodo viene eseguito solo quando TUTTI gli ingressi sono disponibili I Nodi passano i dati a tutti i terminali d’uscita a fine esecuzione Programmazione Dataflow (Flusso Dati)
19
Help Options (Opzioni di Aiuto) Context Help help InLinea Blocca help Diagramma Semplice/Complesso Ctrl + H (Attiva/Disattiva help) Informazioni InLinea Tutti I menu in linea Pop up sulle funzioni del diagramma per accedere direttamente alle informazioni in linea
20
Do Not Delete This Slide
21
Esercizio 1 - Converte °C in °F
22
Tecniche di Debug (correzione errori) Probe (Sonda) Click su pulsante “rotto” Run Appare la finestra con l’elenco degli errori Click su bottone Execution Highlighting; il flusso dei dati è evidenziato mediante pallini. I Valori sono visualizzati sui fili. click-destro sul filo per inserire il probe. Esso mostra il valore dei dati che transitano sul filo Potete anche selezionare il “Probe Tool ” dalla paletta Tools e fare click sul filo Esecuzione Evidenziata (Highlighting)
23
Sezione II – SubVIs Cos’è un subVI? Creare un’icona e un connettore per il subVI Usare un VI come subVI
24
Nodi del Diagramma a Blocchi Icona Nodo Espandibile Nodo Espanso VI che implementa una Funzione Stesso VI, visualizzato in 3 modi diversi Sfondo Giallo: indica un VI standard Sfondo Blu: indica un Express VI
25
SubVIs Un SubVI è un VI che può essere usato all’interno di un altro VI Simile ad una subroutine (sottoprogramma) Vantaggi –Modularità –Facilita il debug –Non è necessario riscrivere il codice –Richiede meno memoria
26
Icona e Connettore Una icona representa il VI in altri diagrammi a blocchi Un connettore mostra i terminali disponibili per il trasferimento dei dati Icon Connector Terminals
27
SubVIs
28
Passi per Creare un SubVI Creare l’ Icona Creare il Connettore Assegnare i Terminali Salvare il VI Inserire il VI dentro un VI di Livello Superiore
29
Creare l’ Icona Click-destro sull’icona presente nella finestra del Diagramma o sul Pannello Frontale (in alto a destra)
30
Creare il Connettore Click-destro sul’ icona (solo su front panel)
31
Assegnare I Terminali
32
Salvare il VI (consigli) Scegliere una Locazione facile da ricordare Organizzali per Funzionalità –Salva VIs simili nella stessa cartella (es. Math Utilities) Organizzali per Applicazione –Salva tutti i VIs usati per Applicazioni Specifiche nella stessa cartella o file di libreria (es. Lab 1 – Frequency Response) I Files di Libreria (.llbs) contengono più VI’s dentro un singolo file, ideali per trasferire intere applicazioni tra computers
33
Inserire il SubVI dentro un VI di Livello Superiore Accedere tramite l’apposita icona Functions >>All Functions >> Select a VI Oppure Trascinare l’icona nel diagramma destinazione
34
Scorciatoie per Lavorare in LabVIEW Tasti scorciatoia – – Attiva/Disattiva finestra Context Help – – Rimuove “Fili Rotti” dal Diagramma a Blocchi – – Commuta tra Front Panel and Block Diagram – – Annulla (Anche nel Menu Edit) Tools » Options… –> Imposta Preferenze in LabVIEW VI Properties –> Configurare l’Apparenza del VI, Documentare il VI, ecc.
35
Lezione 3 – Cicli e Ripetizioni Ciclo While Loop Ciclo For Shift Register (registri a scorrimento) Feedback Node (Nodi di retroazione)
36
Ciclo While Loop Il ciclo While Loop esegue ripetutamente il codice contenuto al suo interno finchè non si verifica una determinata condizione (True o False). Il ciclo viene eseguito sempre almeno una volta T Codice Condiz. ? Fine F DO Codice Ciclo WHILE Cond.
37
Ciclo While Loop (segue) Si può determinare la condizione di uscita dal ciclo While Loop mediante il teminale LOOP CONDITION che può avere due forme. stop if true (stop se vero). Il ciclo termina quando la condizione è Vera (True) Continue if True (stop se falsa). Il ciclo termina se la condizione è Falsa Il Terminale conta le iterazioni del ciclo. Il conteggio parte sempre da zero
38
Ciclo While Loop (esempio) Quanto varrà il valore dell’indicatore “Numero Iterazioni” alla fine del ciclo? Quanti cicli saranno stati eseguiti? Puo il ciclo terminare prima che “i” raggiunga il valore 10? Tunnel
39
Ciclo For Il ciclo For esegue ripetutamente il codice (diagramma) contenuto al suo interno finchè “i” diventa uguale a “N-1” Il numero di cicli è pari a N. Il contatore “i” parte da zero N=10 i=-1 WHILE i<(N-1) Codice Ciclo i=i+1 LOOP T F i=i+1 i<N- 1? Fine Codice N=10 i= - 1
40
Ciclo For (esempio) Quanto varrà il valore dell’indicatore “Numero Iterazioni” alla fine del ciclo? Quanti cicli saranno stati eseguiti? Quanti cicli verranno eseguiti se si pone N=0 e quanto varrà “i”?
41
Ciclo For – Casi particolari Per N<=0: Nessun ciclo viene eseguito; “i” restituisce zero. Per N=+infinito: esegue 2147483646 cicli. Per N mancante e Array indicizzato in ingresso: numero cicli=numero elementi array Per N>0 e Array indicizzzato: Esegue numero cicli pari al minore dei due.
42
I Tunnel nei cicli For e While Loop Un tunnel è un “foro” attraverso cui i dati entrano o escono dalla struttura Può essere indicizzato o non indicizzato Viene rappresentato come un quadratino sul bordo della struttura Tunnel Indicizzato Tunnel non Indicizzato
43
I Tunnel nei cicli For e While Loop (II) Di default i tunnel sono indicizzati nella struttura For e non indicizzati nella While Loop Dati in ingresso: vengono letti una volta sola a inizio ciclo (no indice); viene letto un dato ad ogni ciclo (indice abilitato) Dati in uscita: ultimo valore elaborato dal ciclo (no indice); un valore ad ogni ciclo (si indice), ma escono tutti insieme Tunnel Indicizzato Tunnel non Indicizzato
44
Registri a scorrimento (Shift Register) Servono a memorizzare i dati precedenti di una iterazione. Si presentano a coppie sul bordo della struttura Il terminale a destra riceve il dato dell’ultima operazione. I terminale a sinistra riporta il dato dell’iterazione precedente
45
Registri a scorrimento (Pila) I registri a scorrimento per realizzare una pila si possono aggiungere solo a sinistra. Il terminale più in alto contiene il dato più recente I terminale sottostante contiene il dato che il terminale superiore aveva nel ciclo precedente
46
Nodi di Retroazione (Feedback Node) Collegando l’uscita di un SubVI o di una funzione al proprio ingresso LabVIEW inserisce automaticamente un Nodo di Retroazione. IL Feedback Node è simile allo Shift register e svolge funzione analoga
47
Lezione 4 – Array Cosa sono gli array Come creare gli array con l’auto-indicizzazione Funzioni per gli Array Cos’è il polimorfismo
48
Cosa sono gli Array Struttura dati tipica dei linguaggi di programmazione. Dati omogenei (stesso tipo) organizzati in Vettori o Matrici. Ogni elemento dell’Array è individuato da un indice. Un Array può essere a una, due, …, n dimensioni (1D, 2D, 3D, ecc.) Indice Array (R, C Indice Array (R, C) Elemento Array (2, 3 Elemento Array (2, 3) Nota: Gli indici partono da zero (0)
49
Tipi e Caratteristiche degli Array Si possono fare Array di Numeri, Booleani, Stringhe, Forme d’Onda, Path e tipi di dato. Non si può creare un Array di Array, ma si può creare un Array di Cluster che contengano uno o più Array. Gli elementi degli Array sono ordinati. Per accedere agli elementi dell’Array si usa l’indice. L’indice ha base zero e può andare da 0 a n-1 dove n=numero elementi Array (0,0)(0,1)(0,2)(0,3) (1,0)(1,1)(1,2)(1,3) (2,0)(2,1)(2,2)(2,3) C--> 0 1 2 3 R012R012
50
Come creare un Array di Controlli o Indicatori Inserire la struttura Controls>>All Controls>> Array & Cluster Inserire il controllo o indicatore nella struttura Per aggiungere una o più dimensioni: Click destro su Array: Add Dimension Per visualizzare più elementi contemporaneamente trascinare l’angolo inferiore destro della struttura
51
Esempi di Array
52
Auto-indicizzazione di Array
53
Auto-indicizzazione di Array (II)
54
Funzioni per Array Le Funzioni per gli Array si trovano in: Function>>All Function>>Array
55
Lezione 5 – Clusters & Gestione Errori Cosa sono i Clusters Creare Clusters Funzioni per i Cluster Cluster di Errore
56
Cosa sono i Clusters (grappoli) Struttura dati che raggruppa tipi di dati insieme I dati possono essere di tipo diverso Analoga alla struct del C o alla record del VB Gli elementi devono essere tutti indicatori o controlli Sono come un fascio di fili all’interno di un cavo
57
Creare un Cluster 1.Selezionare un guscio Cluster Controls >> All Controls >> Array & Cluster 2. Mettere gli oggetti nel guscio
58
Creazione di costanti Cluster Ci sono tre modi per creare una costante Cluster 1.Trascinare il Cluster dal Pannello Frontale al Diagramma a blocchi 2.Selezionare da All Function>>Cluster l’icona Constant Cluster e inserire le costanti 3.Click destro sul terminale del claster e poi Create>>Constant
59
Ordine del Cluster 1.Click destro sul guscio del Cluster 2.Reorder controls in Cluster...
60
Funzioni per i Cluster Nella sottopaletta Cluster della paletta Functions>>All functions Possono essere accessibili anche con click destro sul terminale Bundle (L’etichetta terminale riflette il tipo di dato) Bundle By Name
61
Funzioni per i Cluster (II) Unbundle Unbundle By Name Unbundled cluster in the diagram
62
Clusters di Errore Un cluster di Errore contiene queste informazioni: –Boolean indica se è avvenuto un errore (status) –Integer indica il codice (numero) dell’errore –String Esplicita il tipo di errore (messaggio)
63
Tecniche di gestione errori L’informazione di Errore e passata da un SubVI al successivo Se un errore si manifesta in un SubVI, tutti i blocchi seguenti non saranno eseguiti nel modo usuale Il Cluster di Errore contiene tutte le condizioni di errore Gestione errori automatica error clusters
64
Section III – Data Acquisition Data acquisition (DAQ) basics Connecting Signals Simple DAQ application Computer DAQ Device Terminal Block Cable Sensors
65
Data Acquisition in LabVIEW Traditional NI-DAQ Specific VIs for performing: Analog Input Analog Output Digital I/O Counter operations NI-DAQmx Next generation driver: VIs for performing a task One set of VIs for all measurement types
66
DAQ – Data Acquisition Temperature Acquisition using the DAQ Assistant
67
Data Acquisition Terminology Resolution - Determines How Many Different Voltage Changes Can Be Measured –Larger Resolution More Precise Representation of Signal Range - Minimum and Maximum Voltages –Smaller range More Precise Representation of Signal Gain - Amplifies or Attenuates Signal for Best Fit in Range
68
Do Not Delete This Slide
69
Hardware Connections BNC-2120 SCB-68 NI-ELVIS SC-2075
70
Exercise 2 – Simple Data Acquisition Complete Convert C to F.vi, then create Thermometer.vi.
71
Do Not Delete This Slide
72
Section IV – Loops and Charts For Loop While Loop Charts Multiplots
73
Loops While Loops –Have Iteration Terminal –Always Run at least Once –Run According to Conditional Terminal For Loops – –Have Iteration Terminal – –Run According to input N of Count Terminal
74
Loops (cont.) 1. Select the loop 2. Enclose code to be repeated 3. Drop or drag additional nodes and then wire
75
Charts Waveform chart – special numeric indicator that can display a history of values Controls >> Graph Indicators >> Waveform Chart
76
Wiring Data into Charts Single Plot ChartsMultiplot Charts
77
Exercise 3 – Using loops Students build Use a loop.vi.
78
Section V – Arrays & File I/O Build arrays manually Have LabVIEW build arrays automatically Write to a spreadsheet file Read from a spreadsheet file
79
Adding an Array to the Front Panel From the Controls >> All Controls >> Array and Cluster subpalette, select the Array Shell Drop it on the screen.
80
Adding an Array (cont.) Place data object into shell (i.e. Numeric Control)
81
Creating an Array with a Loop Loops accumulate arrays at their boundaries
82
Creating 2D Arrays
83
File I/O File I/O – passing data to and from files - Files can be binary, text, or spreadsheet - Write/Read LabVIEW Measurements file (*.lvm) Writing to LVM file Reading from LVM file
84
Write LabVIEW Measurement File Includes the open, write, close and error handling functions Handles formatting the string with either a tab or comma delimiter Merge Signals function is used to combine data into the dynamic data type
85
Exercise 4 – Analyzing and Logging Data Students build Temperature Logger.vi
86
Section VI – Array Functions & Graphs Basic Array Functions Use graphs Create multiplots with graphs
87
Array Functions – Basics Functions >> All functions>> Array
88
Array Functions – Build Array
89
Graphs Selected from the Graph palette of Controls menu Controls>>All Controls>>Graphs Waveform Graph – Plot an array of numbers against their indices Express XY Graph – Plot one array against another Digital Waveform Graph – Plot bits from binary data
90
Do Not Delete This Slide
91
Graphs Right-Click on the Graph and choose Properties to Interactively Customize
92
Exercise 5 – Using Waveform Graphs
93
Section VII – Strings, Clusters, & Error Handling Strings Creating Clusters Cluster Functions Error I/O
94
Strings A string is a sequence of displayable or nondisplayable characters (ASCII) Many uses – displaying messages, instrument control, file I/O String control/indicator is in the Controls »Text Control or Text Indicator
95
Clusters Data structure that groups data together Data may be of different types Analogous to struct in C Elements must be either all controls or all indicators Thought of as wires bundled into a cable
96
Creating a Cluster 1.Select a Cluster shell Controls >> All Controls >> Array & Cluster 2. Place objects inside the shell
97
Cluster Functions In the Cluster subpalette of the Functions>>All functions palette Can also be accessed by right-clicking on the cluster terminal Bundle (Terminal labels reflect data type) Bundle By Name
98
Cluster Functions Unbundle Unbundle By Name Unbundled cluster in the diagram
99
Error Clusters Error cluster contains the following information: –Boolean to report whether error occurred –Integer to report a specific error code –String to give information about the error
100
Error Handling Techniques Error information is passed from one subVI to the next If an error occurs in one subVI, all subsequent subVIs are not executed in the usual manner Error Clusters contain all error conditions Automatic Error Handling error clusters
101
Section VIII - Case & Sequence Structures, Formula Nodes
102
Case Structures In the Structures subpalette of Functions palette Enclose nodes or drag them inside the structure Stacked like a deck of cards, only one case visible Functions >> Execution control
103
Exercise 6 – Error Clusters & Handling
104
Sequence Structures In the Execution Control subpalette of Functions palette Executes diagrams sequentially Right-click to add new frame
105
Formula Nodes In the Structures subpalette Implement complicated equations Variables created at border Variable names are case sensitive Each statement must terminate with a semicolon (;) Context Help Window shows available functions Note semicolon
106
Section IX – Printing & Documentation Print From File Menu to Printer, HTML, Rich Text File Programmatically Print Graphs or Front Panel Images Document VIs in VI Properties » Documentation Dialog Add Comments Using Free Labels on Front Panel & Block Diagram
107
Printing File » Print … Gives Many Printing Options –Choose to Print Icon, Front Panel, Block Diagram, VI Hierarchy, Included SubVIs, VI History Print Panel.vi (Programmatically Prints a Front Panel) – Functions » All Functions » Application Control Generate & Print Reports ( Functions » Output » Report )
108
Documenting VIs VI Properties » Documentation –Provide a Description and Help Information for a VI VI Properties » Revision History –Track Changes Between Versions of a VI Individual Controls » Description and Tip… –Right Click to Provide Description and Tip Strip Use Labeling Tool to Document Front Panels & Block Diagrams
109
Section X – Basic Programming Architecture Simple VI Architecture General VI Architecture State Machine Architecture
110
Simple VI Architecture Functional VI that produces results when run –No “start” or “stop” options –Suitable for lab tests, calculations Example: Convert C to F.vi
111
General VI Architecture Three Main Steps –Startup –Main Application –Shutdown
112
State Machine Architecture Advantages –Can go from any state from any other –Easy to modify and debug Disadvantages –Can lose events if two occur at the same time States: 0: Startup 1: Idle 2: Event 1 3: Event 2 4: Shutdown
113
Exercise 7 – Simple State Machine
114
Do Not Delete This Slide
115
Section XI – Remote Front Panels View & Control LabVIEW Front Panels from a Web Browser Requires no programming Remote clients see “live” front panel updates Multiple clients can view the same panel simultaneously Only one client can control the front panel at a time
116
Remote Panel Web Publishing Tool Tools » Web Publishing Tool… Click Save to Disk and VI is embedded into an HTML file After file is saved, it can be reopened and customized in any HTML editor
117
Remote Front Panels - Resources NI Developer Zone (zone.ni.com) –Search for Remote Front Panel –Tutorials & Instructions Are Available for Download –Information on Incorporating Web Cameras into Remote Panel Applications
118
Section XII – Additional Topics Property Nodes Local Variables Global Variables DataSocket Binary File I/O
119
Where Do I Go From Here? Example programs (Help» Find Examples…) LabVIEW Student Edition (www.ni.com/labviewse) Web resources (ni.com) –NI Developer Zone (zone.ni.com) –Application Notes –Info-labview newsgroup (www.info-labview.org/) –Instrument Driver Library (www.ni.com/idnet)
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.