You are on page 1of 92

National Instruments Confidential 1

LabVIEW Introduction Course


Semester
National Instruments
11500 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 LabVIEW
Graphical Programming Software for Measurement and Automation
LabVIEW Real-Time Module LabVIEW FPGA Module LabVIEW PDA Module
LabVIEW Datalogging and
Supervisory 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 LabVIEW
LabVIEW 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 LabVIEW
LabVIEW 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 LabVIEW
LabVIEW 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 1
Introduction to LabVIEW
TOPICS
LabVIEW Environment
Front Panel
Block Diagram
Dataflow Programming
LabVIEW Help and Manuals
Debugging 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
FileNew VI to open a blank VI







FileNew 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
Graph
Legend
Boolean
Control
Waveform
Graph
Icon
Plot
Legend
Scale
Legend
Waveform
Graph
Owned
Label
22
Block Diagram Window
Wire
Data
Graph
Terminal
SubVI
While Loop
Structure
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 Button
Additional 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
WindowShow Tools Palette
25
Front Panel Controls Palette
Controls Palette
Contains the most commonly used controls

All Controls Palette
Shows all controls
26
Block Diagram Functions Palette
Functions Palette
Contains the Express VIs (interactive VIs with
configurable dialog page) and the most commonly
used functions
All Functions Palette
Shows 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 Owning
Palette
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 InstrumentsLabVIEW 7.0
30
Build the front panel with controls (inputs)
and indicators (outputs)
Numeric
Control
Numeric
Indicator
Owned
Labels

Increment
Buttons
Boolean
Control
Boolean
Indicator
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
Nodes Wires
Control
Terminals
Block Diagram Front Panel
Indicator
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 Array 1D 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
ItemsTerminals
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
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
41
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.
42
NI Example Finder
To find an example, select
HelpFind 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 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.
45
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
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

ToolsOptions selection set preferences in LabVIEW

VI Properties (File menu)

Windows Sun Linux MacOS
<Ctrl-R> <-R> <M-R> <z-R> Run a VI
<Ctrl-F> <-F> <M-F> <z-F> Find object
<Ctrl-H> <-H> <M-H> <z-H> Activate Context Help window
<Ctrl-B> <-B> <M-B> <z-B> Remove all broken wires
<Ctrl-W> <-W> <M-W> <z-W> Close the active window
<Ctrl-E> <-E> <M-E> <z-E> Toggle btwn Diagram/Panel Window
49
Lesson 2
Modular Programming
TOPICS
SubVIs
Icon and Connector Pane
Using SubVIs
Creating a SubVI from sections of a VI
50
LabVIEW Hierarchy
SubVI
51
SubVIs
Function Pseudo Code
function average (in1,
in2, out)
{
out = (in1 + in2)/2.0;
}

SubVI Block Diagram
Calling Program Pseudo Code
main
{
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 - continued
Click with
wiring tool
57
The Connector Pane
Terminal colors match the data types to which they are connected
Click 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 3
Repetition and Loops
TOPICS
While Loops
For Loops
Accessing Previous Loop Data
63
While Loops
LabVIEW While Loop Flow Chart Pseudo Code
Repeat (code);
Until Condition met;
End;

64
While Loops
1. 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 stops
Default: 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 Multiple
function
69
Wait Functions
Wait Until Next
ms Multiple



FunctionsTime
& Dialog palette
70
Wait Functions
Wait (ms)



FunctionsTime
& Dialog palette
Time Delay




FunctionsTime
& 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
Begins
First
Iteration
Second
Iteration
Last
Iteration
Initial Value
Value 1
Value 1
Value 2
Value 2
Value 3
Value 3
Initial
Value
74
Additional Shift Register Elements
Latest value
is passed to
right 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
FunctionsStructures palette
77
Initialized Shift Registers & Feedback Nodes
Run Once VI stops execution Run Again
Output = 5
Output = 5
Output = 5 Output = 5
78
Uninitialized Shift Registers & Feedback Nodes
Run Once VI stops execution Run Again
Output = 8
Output = 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 4
Arrays
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
index
10-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 6
0
1
2
3
4
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 elements
in the array equals
the count terminal
input
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 types
All 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
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.
Summary

You might also like