Documente Academic
Documente Profesional
Documente Cultură
National Instruments 11500 N. Mopac Expressway Austin, Texas 78759 (512) 683-0100
LabVIEW Awards
Readers of Electronic Design name invention of LabVIEW as one of the Top 50 Milestones for the Electronics Industry LabVIEW 6.1 receives IAN Automation Excellence Award of 2002 Design News awards LabVIEW 6i Best Computer Productivity Tool of 2000 LabVIEW 6i chosen the Best of the Best in the software category by readers of Evaluation Engineering
Communication Protocols
Ethernet CAN DeviceNet USB IEEE 1394 RS-232 GPIB RS-485
Wolfram Research Mathematica Microsoft Excel The MathWorks MATLAB and Simulink MathSoft MathCAD Electronic Workbench MultiSim Texas Instruments Code Composer Studio Ansoft RF circuit design software Microsoft Access Microsoft SQL Server Oracle
LabVIEW Everywhere
Sensor Embedded (FPGA) Handheld Wireless Networked I/O PC Boards Industrial Computer (PXI) Tektronix Open Windows Oscilloscopes PC, Mac, Linux, Sun Workstation
NI LabVIEW
Graphical Programming Software for Measurement and Automation
LabVIEW is tightly integrated with all NI hardware, in addition to connecting to thousands of I/O devices from hundreds of different vendors.
10
Presentation with LabVIEW can be done on your PC or over a network, or you can take advantage of additional applications such as DIAdem.
11
Course Map
Introduction to LabVIEW Modular Programming Clusters Data Acquisition & Waveforms
Decision Making in a VI
Arrays
VI Customization
12
Course Goals
This course prepares you to:
Understand front panels, block diagrams, and connectors/icons Use the programming structures and data types that exist in LabVIEW Use various editing and debugging techniques Create and save your own VIs so you can use them as subVIs Display and log your data Create applications that use plug-in data acquisition (DAQ) boards Create applications that use GPIB and serial port instruments
13
Course Non-Goals
It is not the purpose of this course to discuss the following:
Every built-in LabVIEW object, function, or library VI Analog-to-digital (A/D) theory The detailed operation of the serial port or GPIB bus How to develop an instrument driver
14
15
Block Diagram Accompanying program for front panel Components wired together
16
17
Creating a new VI
FileNew VI to open a blank VI
FileNew to open the New dialog box and configure a VI template, global variable, control, etc
18
Template Browser
19
Menu
20
Graph Legend
21
Numeric Constant
Timing Function
22
Font ring
Alignment ring Distribution ring Resize ring Reorder ring Additional Buttons on the Context Help Button Block Diagram Toolbar Execution Highlighting button Step Into button Step Over button Step Out button
23
Tools Palette
LabVIEW automatically selects the tool needed Available on the front panel and the block diagram
24
Controls Palette
Contains the most commonly used controls
25
Functions Palette
Contains the Express VIs (interactive VIs with configurable dialog page) and the most commonly used functions
26
Palette Tools
Click pushpin to tack down palette
Graphical, floating palettes Subpalettes can be converted to floating palettes Use Palette Options to change palette view from Express to Advanced
27
28
Keep vi.lib in the LabVIEW 7.0 directory Place items in user.lib or instr.lib to have them appear in the Controls and Functions palettes
29
Owned Labels
Increment Buttons
Numeric Indicator
Boolean Control
Boolean Indicator
Numeric Control
30
31
Property Page
Right-click a control or indicator on the front panel and select Properties from the shortcut menu to access the property dialog box for that object
32
Block Diagram
Indicator Terminals
Wires
Nodes
33
34
Function Generator VI Same VI, viewed three different ways Yellow field designates a standard VI Blue field designates an Express VI
35
36
Boolean
String Dynamic
37
Wiring Techniques
Automatic Wiring Use Context Help Window when wiring Right-click wire and select Clean Up Wire Tip Strips Automatic wire routing Right-click terminals and select Visible ItemsTerminals
Hot Spot
38
Dataflow Programming
Block diagram executes dependent on the flow of data; block diagram does NOT execute left to right Node executes when data is available to ALL input terminals
39
Context Help
To display the Context Help window, select HelpShow Context Help, press the <Ctrl-H> keys, or press the Show Context Help Window button in the toolbar Move cursor over object to display help Connections: Required bold Recommended normal Optional - dimmed
Simple/Detailed Context Help Lock Help More Help
40
LabVIEW Help
Click the More Help button in the Context Help window Select HelpVI, Function, & How-To Help Click the sentence Click here for more help in the Context Help window. Contains detailed descriptions of most palettes, menus, tools, VIs, and functions, step-by-step instructions for using LabVIEW features, links to the LabVIEW Tutorial, PDF versions of all the LabVIEW manuals and Application Notes, and technical support resources.
41
NI Example Finder
To find an example, select HelpFind Examples Web-integrated Search by keyword, example type, hardware type, etc.
42
Debugging Techniques
Finding Errors
Click on broken Run button. A window showing the error appears
Execution Highlighting
Click on Execution Highlighting button; data flow is animated using bubbles. Values are displayed on wires.
43
Debugging Techniques
Probe
Right-click on wire and select probe and it shows data as it flows through the wire segment
Breakpoints
Right-click on wire and select Set Breakpoint; pause execution at the breakpoint.
Conditional Probe
Combination of a breakpoint and a probe. Right-click on wire and select custom probe.
44
Debugging Techniques
Step Into, Over, and Out buttons for Single Stepping
Click on Step Into button to enable single stepping Once Single Stepping has begun, the button steps into nodes Click on Step Over button to enable single stepping or to step over nodes Click on Step Out button to step out of nodes
45
Summary
Virtual instruments (VIs) have three main parts the front panel, the block diagram, and the icon and connector pane The front panel is the user interface of a LabVIEW program and the block diagram is the executable code The block diagram contains the graphical source code composed of nodes, terminals, and wires Use Express VIs, standard VIs and functions on the block diagram to create your measurement code. For the most common requirements, use Express VIs with interactive configuration dialogs to define your application. Floating Palettes: Tools Palette, Controls Palette (only when Front Panel Window is active), and Functions Palette (only when Block Diagram Window is active) There are help utilities including the Context Help Window and LabVIEW Help
46
Summary
Place controls (inputs) and indicators (outputs) in the front panel window Use the Operating tool to manipulate panel objects. Use the Positioning tool to select, move, and resize panel objects. Use the Wiring tool to connect diagram objects Control terminals have thicker borders than indicator terminals All front panel objects have property pages and shortcut menus Wiring is the mechanism to control dataflow and produce LabVIEW programs Broken Run arrow means a nonexecutable VI Various debugging tools and options available such as setting probes and breakpoints, execution highlighting, and single stepping
47
Tips
Common keyboard shortcuts
Windows <Ctrl-R> <Ctrl-F> <Ctrl-H> <Ctrl-B> <Ctrl-W> <Ctrl-E> Sun <-R> <-F> <-H> <-B> <-W> <-E> Linux <M-R> <M-F> <M-H> <M-B> <M-W> <M-E> MacOS <z-R> <z-F> <z-H> <z-B> <z-W> <z-E> Run a VI Find object Activate Context Help window Remove all broken wires Close the active window Toggle btwn Diagram/Panel Window
Access Tools Palette with <shift>-right-click Increment/Decrement faster using <shift> key
48
TOPICS SubVIs Icon and Connector Pane Using SubVIs Creating a SubVI from sections of a VI
49
LabVIEW Hierarchy
SubVI
50
SubVIs
Function Pseudo Code
function average (in1, in2, out) { out = (in1 + in2)/2.0; }
51
Icon/Connector
terminals
Icon
An icon represents a VI in other block diagrams A connector passes data to and receives data from a subVI through terminals
Connector
terminals
52
53
54
55
56
57
Using a VI as a SubVI
All Functions Select a VI
<OR>
58
59
60
Summary
VIs can be used as subVIs after you make the icon and connector Icon created using Icon Editor Connector defined by choosing number of terminals Load subVIs using the Select a VI option in the All Functions palette or dragging the icon onto a new diagram Online help for subVIs using the Show Context Help option Descriptions document functionality Use Create SubVI feature to easily modularize the block diagram
61
While Loops
Repeat (code);
Flow Chart
Pseudo Code
63
While Loops
1. Select While Loop 2. Enclose code to be repeated
64
Iteration Terminal
Conditional Terminal
65
Structure Tunnels
Tunnels feed data into and out of structures. The tunnel is a block that appears on the border; the color of the block is related to the data type wired to the tunnel. When a tunnel passes data into a loop, the loop executes only after data arrive at the tunnel. Data pass out of a loop after the loop terminates.
66
For Loops
Flow Chart
Pseudo Code
67
For Loops
In Structures subpalette of Functions palette Enclose code to be repeated and/or resize and add nodes inside boundary Executes diagram inside of loop a predetermined number of times
Count terminal (Numerical input) Wait Until Next ms Multiple function
68
Wait Functions
Wait Until Next ms Multiple
69
Wait Functions
Wait (ms)
70
Numeric Conversion
Numerics default to double-precision (8 bytes) or long integer (4 bytes) LabVIEW automatically converts to different representations For Loop count terminal always converts to a long integer Gray coercion dot on terminal indicates conversion
71
Numeric Conversion
LabVIEW chooses the representation that uses more bits. If the number of bits is the same, LabVIEW chooses unsigned over signed. To choose the representation, right-click on the terminal and select Representation. When LabVIEW converts floating-point numerics to integers, it rounds to the nearest integer. LabVIEW rounds x.5 to the nearest even integer. For example, LabVIEW rounds 2.5 to 2 and 3.5 to 4.
72
Initial Value
Value 1 Value 2
First Iteration
Second Iteration
Last Iteration
73
74
Feedback Nodes
Appears automatically in a For Loop or While Loop if you wire the output of a subVI, function, or group of subVIs and functions to the input of that same VI, function, or group. Stores data when the loop completes an iteration, sends that value to the next iteration of the loop, and transfers any data type
75
Feedback Node
Wire from output to input to automatically create a feedback node <OR> Place a feedback node from the FunctionsStructures palette
76
Output = 5
Output = 5
Run Once
VI stops execution
Run Again
Output = 5
Output = 5
77
Output = 4
Output = 8
Run Once
VI stops execution
Run Again
Output = 4
Output = 8
78
Summary
Two structures to repeat execution: While Loop and For Loop Loop timing controlled using Wait Until Next ms Multiple function, the Wait (ms) function, or the Time Delay Express VI. Coercion dots appear where LabVIEW coerces a numeric representation of one terminal to match the numeric representation of another terminal Feedback nodes and shift registers transfer data values from one iteration to the next Use shift registers only when more than one past iteration is needed
79
Lesson 4 Arrays
Array Functions
Polymorphism
80
Arrays
Collection of data elements that are of same type One or more dimensions, up to 2 elements per dimension Elements accessed by their index; first element is index 0
index 10-element array
2D array 0
0 1 2 3 4 5 6 7 8 9
31
1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7
1 2 3 4
81
82
83
Auto-Indexing
Loops can accumulate arrays at their boundaries with auto-indexing For Loops auto-index by default While Loops output the final value by default Right-click on tunnel and enable/disable auto-indexing
Auto-Indexing Enabled
Wire becomes thicker
1D Array 0 1 2 3 4 5
Auto-Indexing Disabled
Wire remains the same size
84
Creating 2D Arrays
1D Array
0 1 2 3 4 5
2D Array
Inner loop creates column elements Outer loop stacks them into rows
85
Auto-Index Input
An array input can be used to set the For Loop count terminal Number of elements in the array equals the count terminal input Run arrow not broken
86
Array Size
Initialize Array
87
Array Subset
88
Concatenate Inputs
default
89
Extracting a Row
90
Polymorphism
Function inputs can be of different types All LabVIEW arithmetic functions are polymorphic
Combination Scalar + Scalar Array + Scalar Result Scalar Array
Array + Array
Array
Array + Array
Array
91
Summary
Arrays group data elements of the same type. You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types. The array index is zero-based, which means it is in the range 0 to n 1, where n is the number of elements in the array. To create an array control or indicator, select an Array on the ControlsArray & Cluster palette, place it on the front panel, and drag a control or indicator into the array shell. If you wire an array to a For Loop or While Loop input tunnel, you can read and process every element in that array by enabling auto-indexing. By default, LabVIEW enables auto-indexing in For Loops and disables auto-indexing in While Loops. Polymorphism is the ability of a function to adjust to input data of different data structures.
92