Title: LabVIEW Introduction Course Semester
1LabVIEW Introduction CourseSemester
- National Instruments11500 N. Mopac
ExpresswayAustin, 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)
3LabVIEW 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
4NI LabVIEW A History of Innovation
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
5Leveraging Commercial Technologies
- Communication Protocols
- Ethernet
- CAN
- DeviceNet
- USB
- IEEE 1394
- RS-232
- GPIB
- RS-485
- 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
6LabVIEW Everywhere
Sensor
Embedded (FPGA)
Handheld
Wireless
Networked I/O
PC Boards
Industrial Computer (PXI)
Tektronix Open Windows Oscilloscopes
PC, Mac, Linux, Sun
Workstation
7The LabVIEW Family
NI LabVIEW Graphical Programming Software for
Measurement and Automation
LabVIEW Datalogging and Supervisory Control Module
LabVIEW FPGA Module
LabVIEW Real-Time Module
LabVIEW PDA 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.
9Acquire 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.
10Analyze 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.
11Present 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.
12Course Map
Introduction to LabVIEW
Clusters
Data Acquisition Waveforms
Plotting Data
Modular Programming
Instrument Control
Decision Making in a VI
Repetition Loops
VI Customization
Strings and File I/O
Arrays
13Course 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
14Course 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
15Lesson 1Introduction to LabVIEW
- TOPICS
- LabVIEW Environment
- Front Panel
- Block Diagram
- Dataflow Programming
- LabVIEW Help and Manuals
- Debugging a VI
16Virtual Instruments (VIs)
- Front Panel
- Controls Inputs
- Indicators Outputs
- Block Diagram
- Accompanying program for front panel
- Components wired together
17LabVIEW Dialog Box
18Creating 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
19Template Browser
20Menu
File Edit Operate Tools Browse Window
Help
21Front Panel Window
Front Panel Toolbar
Icon
Boolean Control
Graph Legend
Waveform Graph Owned Label
Waveform Graph
Scale Legend
Plot Legend
22Block Diagram Window
Block Diagram Toolbar
Divide Function
SubVI
Graph Terminal
Wire Data
While Loop Structure
Numeric Constant
Timing Function
Boolean Control Terminal
23Front Panel and Block Diagram Toolbars
Font ring Alignment ring Distribution ring Resize
ring Reorder ring Context Help Button
Run button Continuous Run button Abort
button Pause/Continue button
Additional Buttons on the Block Diagram Toolbar
Warning indicator Enter button Broken Run button
- Execution Highlighting button
- Step Into button
- Step Over button
- Step Out button
24Tools 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
25Front Panel - Controls Palette
Controls Palette Contains the most commonly used
controls
All Controls Palette Shows all controls
26Block 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
27Palette Tools
Click pushpin to tack down palette
Search
Palette Options
Up to Owning Palette
- Graphical, floating palettes
- Subpalettes can be converted to floating palettes
- Use Palette Options to change palette view from
Express to Advanced
28Searching 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
29Customize Control Function Palette
Programs National InstrumentsLabVIEW 7.0
- 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
30Creating a VI Front Panel
Build the front panel with controls (inputs) and
indicators (outputs)
Numeric Indicator
Owned Labels Increment Buttons
Numeric Control
Boolean Control
Boolean Indicator
31 Shortcut Menus for Front Panel Objects
Right-click the digital display to access its
shortcut menu
Right-click the label to access its shortcut menu
32Property 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
33Creating a VI Block Diagram
Block Diagram
Front Panel
Control Terminals
Indicator Terminals
Wires
Nodes
34Express 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
35Block 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
36Block 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
37Wiring the Block Diagram
Scalar
2D Array
1D Array
Numeric
Boolean
String
Dynamic
38Wiring 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
39Dataflow 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 - Nodes supply data to all output terminals when
done
40Context Help
- To display the Context Help window, select
HelpShow Context Help, press the ltCtrl-Hgt keys,
or press the Show Context Help Window button in
the toolbar - Move cursor over objectto display help
- ConnectionsRequired boldRecommended
normalOptional - dimmed
Simple/Detailed Context Help Lock Help
More Help
41LabVIEW 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.
42NI Example Finder
- To find an example, select HelpFind Examples
- Web-integrated
- Search by keyword, example type, hardware type,
etc.
43Debugging 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.
44Debugging 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.
45Debugging 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
46Summary
- 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
47Summary
- 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
48Tips
- Common keyboard shortcuts
-
- Access Tools Palette with ltshiftgt-right-click
- Increment/Decrement faster using ltshiftgt key
- ToolsOptions selection set preferences in
LabVIEW - VI Properties (File menu)
Windows Sun Linux
MacOS ltCtrl-Rgt lt-Rgt ltM-Rgt ltz-Rgt Run a
VI ltCtrl-Fgt lt-Fgt ltM-Fgt ltz-Fgt Find
object ltCtrl-Hgt lt-Hgt ltM-Hgt ltz-Hgt Activate
Context Help window ltCtrl-Bgt lt-Bgt ltM-Bgt ltz-Bgt Rem
ove all broken wires ltCtrl-Wgt lt-Wgt ltM-Wgt ltz-Wgt Cl
ose the active window ltCtrl-Egt lt-Egt ltM-Egt ltz-Egt T
oggle btwn Diagram/Panel Window
49Lesson 2Modular Programming
- TOPICS
- SubVIs
- Icon and Connector Pane
- Using SubVIs
- Creating a SubVI from sections of a VI
50LabVIEW Hierarchy
SubVI
51SubVIs
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
52Icon/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
53SubVI 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
54Creating the Icon
- Icon graphical representation of a VI
- Right-click in the icon pane (Panel or Diagram)
- Always create a black and white icon
Create a custom icon
Default Icon
55Creating the Connector
Right-click the icon (Front Panel only)
56Creating the Connector - continued
Click withwiring tool
57The Connector Pane
Terminal colors match the data types to which
they are connected Click the terminal to see its
associated front panel object
58Using a VI as a SubVI
All Functions Select a VI ltORgt Drag
icon onto target diagram
59Help and Classifying Terminals
- Classify inputs and outputs
- Required Error if no connection
- Recommended Warning if no connection
- Optional No effect if no connection
60Create SubVI Option
- Enclose area to be converted into a subVI
- Select Create SubVI from the Edit Menu
61Summary
- 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
62Lesson 3Repetition and Loops
- TOPICS
- While Loops
- For Loops
- Accessing Previous Loop Data
63While Loops
Repeat (code) Until Condition met End
LabVIEW While Loop Flow Chart
Pseudo Code
64While Loops
1. Select While Loop
2. Enclose code to be repeated
3. Drop or drag additional nodes and then wire
65Select 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
66Structure 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.
67For Loops
N100 i0 Until iN Repeat (code
ii1) End
LabVIEW For Loop Flow Chart
Pseudo Code
68For 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
69Wait Functions
Wait Until Next ms Multiple FunctionsTime
Dialog palette
70Wait Functions
Wait (ms) FunctionsTime Dialog palette
Time Delay FunctionsTime Dialog palette
71Numeric 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
72Numeric 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.
73Accessing 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
74Additional Shift Register Elements
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
Latest value is passed to right terminal
1 loop ago 2 loops ago 3 loops ago
75Feedback 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
76Feedback Node
- Wire from output to input to automatically create
a feedback node - ltORgt
- Place a feedback node from the FunctionsStructure
s palette
77Initialized Shift Registers Feedback Nodes
Output 5
Output 5
Run Once VI stops execution Run
Again
Output 5
Output 5
78Uninitialized Shift Registers Feedback Nodes
Output 4
Output 8
Run Once VI stops execution Run
Again
Output 4
Output 8
79Summary
- 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
80Lesson 4Arrays
- TOPICS
- Introduction to Arrays
- Auto Indexing Arrays
- Array Functions
- Polymorphism
81Arrays
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
0 1 2 3 4 5 6
2D array
0
1
2
3
4
Five row by seven column array of 35 elements
82Array Controls and Indicators
1. Select the Array shell from the Controls
palette
2. Place data object inside shell
Add Dimension for 2D arrays
83Creating Array Constants
1. Select Array Constant shell from the Array
subpalette
2. Place the data object in the array shell
84Auto-Indexing
Auto-Indexing Enabled
- 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
Wire becomes thicker
1D Array
0 1 2 3 4 5
Auto-Indexing Disabled
Wire remains the same size
Only one value (last iteration) is passed out of
the loop
85Creating 2D Arrays
1D Array
2D Array
0 1 2 3 4 5
- Inner loop creates column elements
- Outer loop stacks them into rows
86Auto-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
87Common Array Functions
Array Size
Initialize Array
88Common Array Functions
Array Subset
89The Build Array Function
Appending an element
Concatenate Inputs
Building a higher dimension array
default
90The Index Array Function
Extracting an Element
Extracting a Row
Extracting an Element of a Row
91Polymorphism
Function inputs can be of different types All
LabVIEW arithmetic functions are polymorphic
Combination
Result
Scalar
Scalar Scalar
Array Scalar
Array
Array
Array Array
Array Array
Array
92Summary
- 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.