SlideShare a Scribd company logo
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
• 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
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
Window»Show 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 Instruments»LabVIEW 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
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 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 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 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
• Tools»Options 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
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
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
Functions»Structures 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
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

More Related Content

Lesson_1-4.ppt

  • 1. National Instruments Confidential 1 LabVIEW Introduction Course Semester National Instruments 11500 N. Mopac Expressway Austin, Texas 78759 (512) 683-0100
  • 2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15 Lesson 1 Introduction to LabVIEW TOPICS LabVIEW Environment Front Panel Block Diagram Dataflow Programming LabVIEW Help and Manuals Debugging a VI
  • 16. 16 Virtual Instruments (VIs) Front Panel • Controls = Inputs • Indicators = Outputs Block Diagram • Accompanying “program” for front panel • Components wired together
  • 18. 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…
  • 20. 20 Menu File Edit Operate Tools Browse Window Help
  • 21. 21 Front Panel Window Front Panel Toolbar Graph Legend Boolean Control Waveform Graph Icon Plot Legend Scale Legend Waveform Graph Owned Label
  • 22. 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. 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. 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. 25 Front Panel − Controls Palette Controls Palette Contains the most commonly used controls All Controls Palette Shows all controls
  • 26. 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. 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. 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. 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. 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. 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. 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
  • 34. 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. 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. 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. 37 Wiring the Block Diagram Scalar Numeric Boolean String 2D Array 1D Array Dynamic
  • 38. 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. 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. 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 object to display help • Connections: Required – bold Recommended – normal Optional - dimmed Simple/Detailed Context Help Lock Help More Help
  • 41. 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. 42 NI Example Finder • To find an example, select Help»Find Examples • Web-integrated • Search by keyword, example type, hardware type, etc.
  • 43. 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. 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. 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. 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. 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. 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> <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. 49 Lesson 2 Modular Programming TOPICS SubVIs Icon and Connector Pane Using SubVIs Creating a SubVI from sections of a VI
  • 51. 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. 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. 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. 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. 55 Creating the Connector Right-click the icon (Front Panel only)
  • 56. 56 Creating the Connector - continued Click with wiring tool
  • 57. 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. 58 Using a VI as a SubVI All Functions » Select a VI… <OR> Drag icon onto target diagram
  • 59. 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. 60 Create SubVI Option • Enclose area to be converted into a subVI • Select Create SubVI from the Edit Menu
  • 61. 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. 62 Lesson 3 Repetition and Loops TOPICS While Loops For Loops Accessing Previous Loop Data
  • 63. 63 While Loops LabVIEW While Loop Flow Chart Pseudo Code Repeat (code); Until Condition met; End;
  • 64. 64 While Loops 1. Select While Loop 2. Enclose code to be repeated 3. Drop or drag additional nodes and then wire
  • 65. 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. 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. 67 For Loops LabVIEW For Loop Flow Chart Pseudo Code N=100; i=0; Until i=N: Repeat (code; i=i+1); End;
  • 68. 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. 69 Wait Functions Wait Until Next ms Multiple Functions»Time & Dialog palette
  • 70. 70 Wait Functions Wait (ms) Functions»Time & Dialog palette Time Delay Functions»Time & Dialog palette
  • 71. 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. 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. 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. 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. 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. 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. 77 Initialized Shift Registers & Feedback Nodes Run Once VI stops execution Run Again Output = 5 Output = 5 Output = 5 Output = 5
  • 78. 78 Uninitialized Shift Registers & Feedback Nodes Run Once VI stops execution Run Again Output = 8 Output = 4 Output = 4 Output = 8
  • 79. 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. 80 Lesson 4 Arrays TOPICS Introduction to Arrays Auto Indexing Arrays Array Functions Polymorphism
  • 81. 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. 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. 83 1. Select Array Constant shell from the Array subpalette 2. Place the data object in the array shell Creating Array Constants
  • 84. 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. 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. 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
  • 89. 89 The Build Array Function Building a higher dimension array Concatenate Inputs Appending an element default
  • 90. 90 The Index Array Function Extracting an Element Extracting an Element of a Row Extracting a Row
  • 91. 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. 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