equipment needed for this course
TRANSCRIPT
National Instruments Confidential1
LabVIEW Introduction CourseSemester
National Instruments11500 N. Mopac Expressway
Austin, Texas 78759(512) 683-0100
2
Graphical Programming for Test, Measurement, and Control
• Rapid application development with Express VIs and easy-to-use graphical environment
• Interactive measurement assistants and powerful redesigned DAQ interface for connecting to all types of I/O
• Expanded targeting options from Real-Time to FPGA to PDA
• Localized in French, German, and Japanese (Korean documentation)
3
• 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
LabVIEW Awards
4
May 2003
January 2002
August 2000
March 1998
February 1996
August 1993
September 1992
January 1990
October 1986
April 1983
• LabVIEW 7 Express VIs, I/O Assistants, FPGA/PDA targets
• LabVIEW 6.1 Enhanced networking capabilities, analysis
• LabVIEW 6i Internet-ready measurement intelligence
• LabVIEW 5.0 ActiveX, Multithreading
• LabVIEW 4.0 Added professional tools, improved debugging • LabVIEW 3.0 Multiplatform version of LabVIEW
• LabVIEW for Windows
• LabVIEW 2.0 for Macintosh
• LabVIEW 1.0 for Macintosh
• LabVIEW project begins
NI LabVIEW: A History of Innovation
5
Third-Party Software• 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 ®
Leveraging Commercial Technologies Communication Protocols
• Ethernet• CAN• DeviceNet• USB• IEEE 1394• RS-232• GPIB• RS-485
6
PC, Mac, Linux, Sun
LabVIEW Everywhere
Networked I/O
PC Boards
Workstation
Handheld
Embedded(FPGA)
Industrial Computer (PXI)
Wireless
Sensor
Tektronix Open Windows Oscilloscopes
7
The LabVIEW Family
NI LabVIEWGraphical Programming Software for Measurement and Automation
LabVIEW Real-Time Module LabVIEW FPGA Module LabVIEW PDA Module LabVIEW Datalogging andSupervisory Control Module
8
Acquire, Analyze, and Present
Nearly all test, measurement, and control applications can be divided into 3 main components: the ability to acquire, analyze, and
present data. LabVIEW is the easiest, most powerful tool for acquiring, analyzing, and presenting real-world data.
9
Acquire with LabVIEWLabVIEW can acquire data using the following devices and more:• GPIB, Serial, Ethernet, VXI, PXI Instruments• Data Acquisition (DAQ)• PCI eXtensions for Instrumentation (PXI)• Image Acquisition (IMAQ)• Motion Control• Real-Time (RT) PXI• PLC (through OPC Server)• PDA• Modular Instruments
LabVIEW is tightly integrated with all NI hardware, in addition to connecting to thousands of I/O devices from hundreds of different vendors.
10
Analyze with LabVIEWLabVIEW includes the following tools to help you analyze your data:• More than 400 measurement analysis functions for
Differential Equations, Optimization, Curve Fitting, Calculus, Linear Algebra, Statistics, etc.
• 12 new Express VIs specifically designed for measurement analysis, including filtering and spectral analysis
• Signal Processing VIs for Filtering, Windowing, Transforms, Peak Detection, Harmonic Analysis, Spectrum Analysis, etc.
Powerful measurement analysis is built in to the LabVIEW development environment.
11
Present with LabVIEWLabVIEW includes the following tools to help you present your data:• On your machine — Graphs, Charts,
Tables, Gauges, Meters, Tanks, 3D Controls, Picture Control, 3D Graphs (Windows Only), Report Generation (Windows Only)
• Over the Internet — Web Publishing Tools, Datasocket (Windows Only), TCP/IP, VI Server, Remote Panels, Email
• Enterprise Connectivity Toolset — SQL Tools (Databases), Internet Tools (FTP, Telnet, HTML)
Presentation with LabVIEW can be done on your PC or over a network, or you can take advantage of additional applications such as DIAdem.
12
Course Map
Introduction to LabVIEW
Repetition & Loops
Modular Programming
VI Customization
Data Acquisition& Waveforms
Instrument Control
Arrays
Plotting Data
Clusters
Decision Making in a VI
Strings and File I/O
13
Course Goals
• 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
This course prepares you to:
14
Course Non-Goals
• 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
It is not the purpose of this course to discuss the following:
15
Lesson 1Introduction to LabVIEW
TOPICSLabVIEW EnvironmentFront PanelBlock DiagramDataflow ProgrammingLabVIEW Help and ManualsDebugging a VI
16
Virtual Instruments (VIs)
Front Panel• Controls = Inputs• Indicators = Outputs
Block Diagram• Accompanying “program”
for front panel• Components wired
together
17
LabVIEW Dialog Box
18
Creating a new VI•File»New VI to open a blank VI
• File»New… to open the New dialog box and configure a VI template, global variable, control, etc…
19
Template Browser
20
Menu
File Edit Operate Tools Browse Window Help
21
Front Panel Window
Front Panel Toolbar
GraphLegend
BooleanControl
WaveformGraph
Icon
PlotLegend
ScaleLegend
WaveformGraphOwned Label
22
Block Diagram Window
Wire Data
GraphTerminal
SubVI
While LoopStructure
Block Diagram Toolbar Divide
Function
Numeric Constant
Timing Function
Boolean Control Terminal
23
Front Panel and Block Diagram Toolbars
Run button
Continuous Run button
Abort button
Pause/Continue button
• Execution Highlighting button• Step Into button• Step Over button• Step Out button
Warning indicator
Enter button
Broken Run button
Font ring
Alignment ring
Distribution ring
Resize ring
Reorder ring
Context Help ButtonAdditional Buttons on the Block Diagram Toolbar
24
Tools Palette• LabVIEW automatically selects the tool needed
• Available on the front panel and the block diagram
• A tool is a special operating mode of the mouse cursor
• Use the tools to operate and modify front panel and block diagram objects
• To show the tools palette, select Window»Show Tools Palette
25
Front Panel − Controls Palette
Controls PaletteContains the most commonly used controls
All Controls PaletteShows all controls
26
Block Diagram − Functions Palette
Functions PaletteContains the Express VIs (interactive VIs with configurable dialog page) and the most commonly used functions
All Functions PaletteShows all functions
27
Palette Tools
• Graphical, floating palettes • Subpalettes can be converted to floating palettes• Use Palette Options to change palette view from
Express to Advanced
Search Palette Options
Click pushpin to tack down palette
Up to OwningPalette
28
Searching for Controls, VIs, and Functions
• Press the search button to perform text searches of the palettes
• Click and drag an item from the search window to the block diagram or double-click an item to open the owning palette
29
Customize Control & Function Palette
• 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
Programs» National Instruments»LabVIEW 7.0
30
Build the front panel with controls (inputs) and indicators (outputs)
NumericControl
NumericIndicator Owned
Labels
IncrementButtons
BooleanControl
BooleanIndicator
Creating a VI Front Panel
31
Shortcut Menus for Front Panel Objects
Right-click the label to access its shortcut menu
Right-click the digital display to access its shortcut menu
32
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
33
NodesWires
ControlTerminals
Block DiagramFront PanelIndicator Terminals
Creating a VI Block Diagram
34
Express VIs, VIs and Functions• Express VIs: interactive VIs with configurable dialog page• Standard VIs: modularized VIs customized by wiring• Functions: fundamental operating elements of
LabVIEW; no front panel or block diagram
35
Block Diagram Nodes
Icon Expandable Node Expanded Node
• Function Generator VI• Same VI, viewed three different ways• Yellow field designates a standard VI• Blue field designates an Express VI
36
Block Diagram Terminals• Terminals are entry and exit ports
that exchange information between the panel and diagram
• Terminals are analogous to parameters and constants in text-based programming languages
• Right-click and toggle View As Icon to change the icon view
37
Wiring the Block Diagram
Scalar
Numeric
Boolean
String
2D Array1D Array
Dynamic
38
Wiring Techniques Hot Spot
• 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 Items»Terminals
View the terminal connections to a function
39
• 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
• Nodes supply data to all output terminals when done
Dataflow Programming
40
Context Help• To display the Context Help window, select
Help»Show Context Help, press the <Ctrl-H> keys, or press the Show Context Help Window button in the toolbar
• Move cursor over objectto display help
• Connections:Required – boldRecommended – normalOptional - dimmed
Simple/Detailed Context Help Lock Help More Help
41
LabVIEW Help
• Click the More Help button in the Context Help window• Select Help»VI, 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.
42
NI Example Finder
• To find an example, select Help»Find Examples
• Web-integrated• Search by keyword,
example type, hardware type, etc.
43
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.
44
Debugging TechniquesProbe
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.
45
Debugging Techniques
Step Into, Over, and Out buttons for Single Stepping
Click on Step Into button to enable single steppingOnce 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
46
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
47
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
48
Tips• Common keyboard shortcuts
• Access Tools Palette with <shift>-right-click• Increment/Decrement faster using <shift> key• Tools»Options selection — set preferences in LabVIEW• VI Properties (File menu)
Windows Sun Linux MacOS<Ctrl-R> <-R> <M-R> <-R> Run a VI<Ctrl-F> <-F> <M-F> <-F> Find object<Ctrl-H> <-H> <M-H> <-H> Activate Context Help window<Ctrl-B> <-B> <M-B> <-B> Remove all broken wires<Ctrl-W> <-W> <M-W> <-W> Close the active window<Ctrl-E> <-E> <M-E> <-E> Toggle btwn Diagram/Panel Window
49
Lesson 2Modular Programming
TOPICS
SubVIsIcon and Connector PaneUsing SubVIsCreating a SubVI from sections of a VI
50
LabVIEW Hierarchy
SubVI
51
SubVIs
Function Pseudo Codefunction average (in1, in2, out)
{out = (in1 + in2)/2.0;}
SubVI Block Diagram
Calling Program Pseudo Codemain{average (point1, point2, pointavg)
}
Calling VI Block Diagram
52
Icon/Connector
An icon represents a VI in other block diagrams
A connector passes data to and receives data from a subVI through terminals
Icon
Connector
terminals
terminals
53
SubVI Example – Calculating Slope• A VI within another VI is called a subVI• To use a VI as a subVI, create an icon and a connector pane after
building the front panel and block diagram
54
Creating the Icon• Icon: graphical representation of a VI• Right-click in the icon pane (Panel or Diagram)• Always create a black and white icon
Default Icon Create a custom icon
55
Creating the Connector
Right-click the icon (Front Panel only)
56
Creating the Connector - continuedClick withwiring tool
57
The Connector PaneTerminal colors match the data types to which they are connectedClick the terminal to see its associated front panel object
58
Using a VI as a SubVI
All Functions » Select a VI… <OR>
Drag icon onto target diagram
59
Help and Classifying Terminals
Classify inputs and outputs:• Required — Error if no connection• Recommended — Warning if no connection• Optional — No effect if no connection
60
Create SubVI Option• Enclose area to be converted into a subVI• Select Create SubVI from the Edit Menu
61
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
62
Lesson 3Repetition and Loops
TOPICSWhile LoopsFor LoopsAccessing Previous Loop Data
63
While Loops
LabVIEW While Loop Flow Chart Pseudo Code
Repeat (code);
Until Condition met;
End;
64
While Loops1. Select While Loop 2. Enclose code to be repeated
3. Drop or drag additional nodes and then wire
65
Select the Loop Condition
Click the Conditional Terminal with the Operating tool to define when the loop stopsDefault: Stop if True
Iteration Terminal Conditional Terminal
66
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.
67
For Loops
LabVIEW For Loop Flow Chart Pseudo Code
N=100;
i=0;
Until i=N:
Repeat (code; i=i+1);
End;
68
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 Multiplefunction
69
Wait Functions
Wait Until Next ms Multiple
Functions»Time & Dialog palette
70
Wait Functions
Wait (ms)
Functions»Time & Dialog palette
Time Delay
Functions»Time & Dialog palette
71
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
72
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.
73
Accessing Previous Loop Data – Shift Register• Available at left or right border of loop structures• Right-click the border and select Add Shift Register • Right terminal stores data on completion of iteration• Left terminal provides stored data at beginning of next iteration
Before Loop
BeginsFirst
IterationSecondIteration
LastIteration
Initial Value
Value 1
Value 1
Value 2
Value 2
Value 3
Value 3InitialValue
74
Additional Shift Register Elements
Latest valueis passed toright terminal
Right-click the left terminal to add new elements
Previous values are available at the left terminals
Right-click the border for a new shift register
1 loop ago
2 loops ago
3 loops ago
75
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
76
Feedback Node
• Wire from output to input to automatically create a feedback node
<OR>• Place a feedback node from the
Functions»Structures palette
77
Initialized Shift Registers & Feedback Nodes
Run Once VI stops execution Run Again
Output = 5Output = 5
Output = 5 Output = 5
78
Uninitialized Shift Registers & Feedback Nodes
Run Once VI stops execution Run Again
Output = 8Output = 4
Output = 4 Output = 8
79
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
80
Lesson 4Arrays
TOPICS
Introduction to Arrays
Auto Indexing Arrays
Array Functions
Polymorphism
81
• 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
31
index10-element array 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
2D array
Five row by seven column array of 35 elements
0 1 2 3 4 5 60 1 2 34
Arrays
82
Add Dimension for 2D arrays
1. Select the Array shell from the Controls palette
2. Place data object inside shell
Array Controls and Indicators
83
1. Select Array Constant shell from the Array subpalette
2. Place the data object in the array shell
Creating Array Constants
84
• 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
Wire becomes thicker
Wire remains the same size
Auto-Indexing Disabled
Auto-Indexing Enabled
Only one value (last iteration) is passed out of the loop
1D Array
0 1 2 3 4 5
85
• Inner loop creates column elements• Outer loop stacks them into rows
Creating 2D Arrays
1D Array
0 1 2 3 4 5
2D Array
86
Auto-Index Input
• An array input can be used to set the For Loop count terminal
• Number of elementsin the array equalsthe count terminalinput
• Run arrow not broken
87
Array Size
Initialize Array
Common Array Functions
88
Array Subset
Common Array Functions
89
The Build Array Function
Building a higher dimension array
Concatenate Inputs
Appending an element
default
90
The Index Array Function
Extracting an Element
Extracting an Element of a Row
Extracting a Row
91
Function inputs can be of different typesAll LabVIEW arithmetic functions are polymorphic
Scalar + Scalar
Array + Scalar
Combination Result
Scalar
Array
Array
Array + Array
Array + Array
Array
Polymorphism
92
• 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 Controls»Array & 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.
Summary