An Introduction to
NI LabVIEW
a Graphical System Design environment
for engineers and scientists worldwide
ni.com
Revised August 2012 for LabVIEW 2012
Hardware APIs
Built-in Libraries
Custom User Interfaces
Deployment Targets
Technology Abstractions
Programming Approaches
A Graphical System Design Environment for Engineers and Scientists Worldwide
ni.com | NI CONFIDENTIAL
Section I LabVIEW Environment
A.
B.
Set up Your Hardware
Take Your First Measurement
C.
D.
E.
Demonstration: Creating our First VI
LabVIEW Environment
Hands-On Exercise: Acquiring Data
ni.com
Open and Explore Final Project: Audio
Equalizer
Write a program that reads in a signal from a
microphone
A. Setting Up Your Hardware
Data Acquisition Device (DAQ)A
NI myDAQ
Configured in Measurement and Automation Explorer
(MAX)
Sound Card
ni.com
Available in most PCs
No additional configurations required
NI myDAQ
USB controlled,
bus powered
Analog Input:
2 channels, 200kS/s/ch,
16-bit resolution
Analog Output:
2 channels, 200kS/s/ch,
16-bit resolution
DIO: 8 lines
CTR: 1 counter
Integrated DMM: V, A, Ohm
Power Supply: +5 V, +/15 V
3.5 mm stereo audio jacks
Power
Supply:
+5
V lines,
8 DIO
1 counter
2 AI lines
2 AO lines
Power Supply
+/ 15 V
Audio IN/OUT
Integrated
DMM
ni.com
Demonstration: What is MAX?
D
EM
O
Measurement & Automation Explorer
Organizes all your National Instruments hardware
and software
Configure your hardware in MAX
Tests your device in MAX
ni.com
Exercise 1 Setting Up Your Hardware Device
Use MAX to configure and setup myDAQ
ni.com
What is an Audio Equalizer?
Its a car stereo!
Audio Equalizers adjust the volume of a
certain frequency within a signal.
We are going to build a 3-band Audio
Equalizer using filters that affects these
frequency ranges
ni.com
Bass
Midtones
Treble
1
2
Lets Explore the Final Project
Open up the myDAQ Audio Demo.vi and play around with it. Be sure
you have your microphone (or MP3 player) plugged in along with the
speakers!
ni.com
1
3
Time to Break it Down
Acquir
e
Analyz
e
Prese
nt
Gather data from
your myDAQ or
another data
acquisition
device.
Extract useful
information from your
data with interactive
wizards and more than
600 built-in LabVIEW
measurement analysis
and signal processing
functions.
Visualize results in
graphs and charts.
Create custom user
interfaces and reports
in text files, HTML,
Microsoft Word,
Microsoft Excel, and
more.
ni.com
1
4
Types of Signals to Acquire
Digital
Analog
Signal that varies
continuously
Most commonly a
voltage or current
In our case, the
microphone converts
sound pressure into
voltage
ni.com
1
5
Electrical signals that
transfer digital data
Usually represented
by on/off, high/low,
0/1
Demonstration: Creating Our First
D
EM
VI O
Front Panel Window
Graph
Indicator
Block Diagram Window
Output
Terminal
Input
Terminals
Boolean
Control
ni.com
1
7
LabVIEW Environment
What is the front panel
used for?
What is the block diagram
used for?
What are the inputs and
outputs called?
How does data travel on the
block diagram?
ni.com
1
8
Function and Controls Palettes
Where can you find the following Palettes?
Bonus: How
many of the tools
can you name?
ni.com
1
9
Data Types
What are the following data types?
ni.com
2
1
Toolbar
What do the following buttons do?
ni.com
2
2
Using the Search Functions
Can you name three ways you can search
for a function in LabVIEW?
Where are the following items located?
Feel free to reference LabVIEW to find the answers
DAQ Assistant
ni.com
Waveform Chart
2
4
Two Button Dialog
Dataflow Programming
Which VI(s) will execute
first?
ni.com
Which VI will execute
last?
2
5
Debugging Techniques
How do you use the following debugging
tools?
Execution Highlighting
Broken Run Arrow
Error List
Probes
Are there other debugging tools
you can think of?
ni.com
2
6
Context Help Window
How many ways to
display the context help
window can you list?
ni.com
2
7
Commenting Your Code
Double-click anywhere on your front panel
or block diagram to insert a comment
ni.com
2
8
Tips for Working in LabVIEW
Keystroke Shortcuts
<Ctrl-H> Activate/Deactivate Context Help Window
<Ctrl-B> Remove Broken Wires from Block Diagram
<Ctrl-E> Toggle between Front Panel and Block
Diagram
<Ctrl-Z> Undo (also in Edit menu)
<Ctrl-T> Tile Front Panel and Block Diagram
Tools Options Set Preferences in LabVIEW
File VI Properties Configure VI Appearance,
Documentation, etc.
Create Control/Constant/Indicator Right-click on
terminal to create
ni.com
2
9
Peak Detection
Convert Time-domain
signals to Frequencydomain signals
Analyze all frequency
components to find the
dominant frequency
In this exercise
Time
FF
T
We acquire a sound signal
Perform spectral analysis
to detect peak frequency
Display on graph
Frequenc
y
ni.com
3
0
Exercise 2 Acquiring a Signal with DAQ
Use the exercise template to:
Acquire a signal from your myDAQ device
Take a Spectral Measurement
Estimated Time:
15 minutes
ni.com
3
1
ni.com
4
0
Video: Blind Driver Challenge
YouTube Link Part 1
YouTube Link Part 2
ni.com
4
1
V
ID
EO
Section II Elements of Typical Programs
A.
B.
Demonstration: While Loops and SubVI
Loops
C.
Functions and SubVIs
D.
ni.com
While Loop
For Loop
Types of Functions
Creating Custom Functions (subVI)
Hands-On Exercise: Filtering and
Outputting Sound
4
2
Demonstration: While Loop and
Good Example
Bad Example
ni.com
D
EM
SubVIs O
4
3
While Loop
What do the following terminals do?
What is the minimum number of iterations
that a while loop will run?
ni.com
4
4
For Loop
What does the iteration terminal start counting
from?
How many times will a For Loop execute?
ni.com
4
5
Drawing a Loop
1. Select the structure
(Programming
Structures)
2. Enclose code to be repeated
3. Wire up the Stop Condition
and add any additional
code.
ni.com
4
6
3 Types of Functions
Express VIs: interactive VIs with configurable dialog page (blue
border)
Standard VIs: modularized VIs customized by wiring (customizable)
Primitive Functions: fundamental operating elements of LabVIEW; no
front panel or block diagram (yellow)
ni.com
4
7
LabVIEW Functions and SubVIs
Function Pseudo Code
Calling Program Pseudo Code
function average (in1, in2, out)
{
out = (in1 + in2)/2.0;
}
main
{
average (in1, in2, pointavg)
}
SubVI Block Diagram
Calling VI Block Diagram
ni.com
4
8
Create SubVI
What are some ways that you can create subVIs?
ni.com
4
9
Icon Editor and Connector Pane
Icon Editor
Connector Pane
Why is having a good
icon important?
How can you edit the
icon of your subVI?
ni.com
5
0
Where do you find the
connector pane?
How do you add inputs or
outputs to the connector
pane?
Analysis: Filters
Allows some frequencies of a
signal to pass more easily than
others
We will be using three types of
filters in our project
ni.com
Lowpass (Bass Filter)
Bandpass (Midtone Filter)
Highpass (Treble Filter)
5
1
Outputting a Signal to DAQ
Use analog output to
generate an audio wave
In our situation, we are
filtering the analog input
waveform, then
outputting this
waveform
ni.com
5
2
Exercise 3 Outputting Sound with myDAQ
Use LabVIEW Express VIs to:
Acquire a signal
Apply a filter
Output sound to your speakers
ni.com
5
3
Video: myDAQ Piano Staircase
YouTube Video Link
ni.com
6
0
V
ID
EO
Section III Analyzing and Presenting Your
Results
A.
B.
Demonstration: Arrays and Auto-Indexing
Arrays
Creating Arrays
Auto-Indexing
C.
Displaying Data on the Front Panel
Graphs and Charts
D.
Demonstration: Case Structures
E.
ni.com
Decision Making
Hands-On Exercise: Audio Equalizer
6
1
Demonstration: Arrays
Creating Arrays and Auto-Indexing
Programatically Creating Arrays
ni.com
6
2
D
EM
O
Arrays
An array consists of elements and dimension.
What do those terms mean?
When would you use an array?
In LabVIEW, what is the index of the first element
in an array?
ni.com
6
3
Creating an Array
From the Controls Modern Array, Matrix, and
Cluster subpalette, select the Array icon
1.
2.
Place an array shell on the front panel
Drag a data object or element into the array shell
Empty array
shell as seen on
the block
diagram.
ni.com
6
4
Building Arrays with Loops (Auto-Indexing)
Loops can
accumulate arrays
at their boundaries
with auto-indexing
For loops autoindex by default
While Loops
output only the
final value by
default
How can you
enable/disable
auto-indexing?
ni.com
Auto-Indexing
Enabled
Wire becomes
thicker
1D Array
0 1 2 3 4 5
Auto-Indexing
Disabled
5
6
5
Wire remains
the same size
Only one value (last
iteration) is passed
out of the loop
Waveform Charts
numeric indicator that can display a history of
values.
add 1 data point at a time with history
updates with each individual point it receives
Controls Express Graph Indicators Chart
ni.com
6
6
Waveform Graphs
numeric indicator that displays an array of data
displays many data points at once
updates after all points have been collected
may be used in a loop if VI collects buffers of data
Controls Express Graph Indicators Graph
ni.com
6
7
Control and Indicator Properties
Properties are characteristics or qualities
about an object
Properties can be found
by right-clicking on a
control or indicator
Properties include:
Features include:
ni.com
Size
Color
Plot style
Plot color
Cursors
Scaling
6
8
Demonstration: Case Structures
ni.com
6
9
D
EM
O
How Do I Make Decisions in LabVIEW?
Case Structure
ni.com
Select Function
7
0
Tab Control
Keep your front panel
organized
Add a new Tabs for new
operations
Use the Tab control to
select operations and
perform different
analyses
ni.com
7
1
Exercise 4 Building an Audio Equalizer
Complete your 3-band equalizer
Become familiar with Case Structures
ni.com
7
2
Video: Mind-controlled Wheelchair
YouTube Video Link
ni.com
8
0
V
ID
EO
Demonstration: Timing a Loop
Vs.
ni.com
8
1
D
EM
O
How Do I Time a Loop?
1.
2.
Configure the Time Delay Express VI for
seconds to wait each iteration of the loop
(works on For and While Loops).
Configure the Wait and Wait Next ms
Multiple for milliseconds to wait for each
iteration of the loop
Time Delay
ni.com
Wait (ms)
8
2
Wait Until Next
ms Multiple
File I/O
the function of passing data to and from files
can be binary, text, or spreadsheet
Write/Read LabVIEW Measurements file (*.lvm)
Write to *.lvm file
ni.com
Read from *.lvm file
8
3
Karaoke!
Stereo sound has two
channels: left and right
Sound is recorded
using two strategically
placed microphones
Voice is present in both
channels
Subtract left channel
from right channel to
eliminate voice
ni.com
8
4
Exercise 5 Adding Karaoke Functionality
Expand Audio Equalizer program to include Karaoke
functionality
ni.com
8
5
Do Not Delete Exercise 5 Instructions
ni.com
8
6
Video: myDAQ Optical Theremin
YouTube Link
ni.com
9
4
V
ID
EO
Section V Advanced Data Flow Topics
(Optional)
A. Additional Data Types
B.
Data flow Constructs
C.
Shift Register
Local Variables
Large Application Development
ni.com
Cluster
Navigator Window
LabVIEW Projects
9
5
Introduction to Clusters
Data structure that groups data together
Data may be of different types
Analogous to struct in ANSI C
Elements must be either all controls or all
indicators
Thought of as wires bundled into a cable
Order is important
ni.com
9
6
Creating a Cluster
1.
2.
Select a Cluster shell
Place objects inside the shell
Controls Modern Array, Matrix & Cluster
ni.com
9
7
Cluster Functions
In the Cluster & Variant subpalette of the
Programming palette
Can also be accessed by right-clicking the
cluster terminal
Bundle
ni.com
Bundle By Name
9
8
Using Arrays and Clusters with Graphs
The waveform data type contains 3 pieces of data:
t0 = Start time
dt = Time between samples
Y = Array of Y magnitudes
You can create a waveform cluster in two ways:
Build Waveform (absolute time)
ni.com
9
9
Cluster (relative time)
Shift Register Access Previous Loop Data
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
Initia
next
iteration
Value
l
15
Valu
e
Befor
e
Loop
Begin
s
ni.com
First
Iteratio
n
Second
Iteratio
n
1
0
Last
Iteratio
n
Local Variables
Local variables allow data to be passed between
parallel loops
You can read or write a single control or indicator
from more than one location in the program
ni.com
Local variables break the dataflow paradigm and should
be used sparingly
1
0
LabVIEW Navigation Window
Shows the current region of view compared to
entire front panel or block diagram
Great for large programs
ni.com
1
0
LabVIEW Project
Group and organize VIs
Manage hardware and I/O
Manage VIs for
multiple targets
Build libraries and
executables
Manage large LabVIEW
applications
Enable version tracking
and management
ni.com
1
0
NI Multisim and Ultiboard
Worlds most popular software for
learning electronics
180,000 industrial and
academic users
Products include:
Multisim simulation and capture
Ultiboard PCB layout
Multisim MCU Module microcontroller simulation
Low-cost student editions available
ni.com/multisim
ni.com
1
0
NI Multisim Integrated with NI LabVIEW
1. Create
2. Virtual
Schematic
Breadboard
4. PCB Layout
ni.com
3. Simulate
6. Compare
5. Test
1
0
Additional Resources
NI Academic Web and Student Corner
ni.com/students
ni.com/lv101
ni.com/textbooks
Get your own copy of the
LabVIEW Student Edition
ni.com/lv101
ni.com
1
0
The LabVIEW Certification Program
ni.com
1
0
Your Next Step
LabVIEW Skills Evaluation Quiz:
https://lumen.ni.com/nicif/us/infolvcoursefinder/content.xhtml
CLAD Exam Practice:
https://lumen.ni.com/nicif/us/ekitcladexmprp/content.xhtml
CLAD Exam Prep Webcast:
http://zone.ni.com/wv/app/doc/p/id/wv-566
ni.com
1
0