La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Strumentazione Virtuale con LabVIEW. Obbiettivo del Corso Comprendere i componenti di uno Stumento Virtuale Introduzione a LabVIEW e alle funzioni più.

Presentazioni simili


Presentazione sul tema: "Strumentazione Virtuale con LabVIEW. Obbiettivo del Corso Comprendere i componenti di uno Stumento Virtuale Introduzione a LabVIEW e alle funzioni più."— Transcript della presentazione:

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)


Scaricare ppt "Strumentazione Virtuale con LabVIEW. Obbiettivo del Corso Comprendere i componenti di uno Stumento Virtuale Introduzione a LabVIEW e alle funzioni più."

Presentazioni simili


Annunci Google