5. PART 1 : Introduction
LabVIEW – Laboratory Virtual Instrument Engineering
Workbench
It is a platform and development environment for a visual
programming language from National Instruments.
The purpose of such programming is automating the
usage of processing and measuring equipment in any
laboratory setup. LabVIEW is commonly used for data
acquisition, instrument control, and industrial automation on
a variety of platforms including Microsoft Windows, various
versions of UNIX, Linux, and Mac OS X. The latest version of
LabVIEW is version LabVIEW 2011, released in August 2011.
6. Features of LabVIEW 7.1
Design
Signal and Image Processing
Embedded System Programming
(PC, DSP, FPGA, Microcontroller)
Simulation and Prototyping
And more…
Control
Automatic Controls and Dynamic Systems
Mechatronics and Robotics
And more…
Measurements
Circuits and Electronics
Measurements and Instrumentation
And more…
7. What is Data Acquisition and it’s use ?
Traditional Experiments – signals from sensors are sent
to analog or digital meters, read by the experimenter,
and recorded by hand.
In automated data acquisition systems the sensors
transmit a voltage or current signal directly to a
computer via a data acquisition board.
Software such as LabVIEW controls the acquisition and
processing of such data.
The benefits of automated systems are many:
Improved accuracy of recording.
Increased frequency with which measurements
can be taken.
8. Graphical programming language & Data flow
LabVIEW relies on graphical symbols rather
than textual language to describe programming
actions.
The principle of dataflow, in which functions
execute only after receiving the necessary data,
governs execution in a straightforward manner.
9. How does LabVIEW work?
• LabVIEW programs are called:
Virtual Instruments (VIs)
because their appearence and operation imitate
actual instruments.
• However, they are analogous to main
programs, functions and subroutines from
popular language like C, Fortran, Pascal, …
11. In LabVIEW you can create or use “virtual
instruments” (VI) for data acquisition. A VI allows
your computer screen to act as an actual
laboratory instrument with characteristics tailored
to your particular needs.
You can also use built-in examples, or use
standard templates for setting up your data
acquisition input channels.
12.
13. Part 2: The LabVIEW Environment
A VI has three main parts:
• The front panel:
an interactive user interface of a VI, so named because it
can simulates the front panel of a physical instrument.
• The block (or wiring) diagram:
• It is the VI’s source code, constructed in LabVIEW’s
• graphical programming language, G. It is the actual
• executable program.
• Subroutine in the block diagram of VI.
• Icon/connector
14. Front Panel
Every user created VI has a front panel that contains the graphical
interface with which a user interacts. The front panel can house various
graphical objects ranging from simple buttons to complex graphs. Various
options are available for changing the look and feel of the objects on the
front panel to match the needs of any application.
Block diagram
Nearly every VI has a block diagram containing some kind of program logic
that serves to modify data as it flows from sources to sinks. The block
diagram houses a pipeline structure of sources, sinks, VIs, and structures
wired together in order to define this program logic. Most importantly,
every data source and sink from the front panel has its analog source and
sink on the block diagram. This representation allows the input values
from the user to be accessed from the block diagram. Likewise, new
output values can be shown on the front panel by code executed in the
block diagram.
15. Controls
• The most common form of a data source in LabVIEW is a control. This element
appears as some type of graphical element on the front panel of a VI that can
receive input from a user or even another VI. As stated previously, any data
source also has an analog symbol that appears on the block diagram so that its
value can be read and used in the code pipeline. Controls make no exception
to this rule.
• Every control has an associated data type that determines what kind of data
flows from it on the block diagram.
Palettes
• Front panel controls and indicators as well as block diagram VIs are available
from a palettes visible depending on what window is currently active in the
LabVIEW environment. These palettes have their contents separated into sub-
categories containing controls, indicators, and VIs.
16. Figure 4: Typical top-level block diagram and front panel palettes.
Typical top-level block
diagram and front panel
palettes.
17. Front Panels
Simply put, the front panel is
the window through which
the user interacts with the
program.
• When you run a VI, you must
have the front panel open so
that you can input data to the
executing program.
• The front panel is where you
see your program’s output.
The front panel is primarily a
combination of controls and
indicators.
19. Block Diagrams
The block diagram window
holds the graphical source
code of a LabVIEW VI – it is
the actual executable code
• You construct the block
diagram by wiring together
objects that perform specific
functions.
• The various components of a
block diagram are terminals,
nodes and wires.
20. Terminals
When you place a control
(or indicator) on the
FRONT PANEL
LabVIEW automatically
creates a corresponding
control (or indicator)
terminal on the BLOCK
DIAGRAM
21. Control or Indicator
Terminal?
Control terminals have
thick borders
Indicator terminals have
thin borders
22. Deleting Block Diagram Terminals
• By default, you cannot delete a block diagram terminal that
belongs to a control (or indicator).
• The terminal disappears only when you delete its
corresponding control (or indicator) on the FRONT PANEL.
23. Wires
A LabVIEW VI is held together by wires connecting nodes
and terminals; they deliver data from one source terminal to
one or more destination terminals.
24. Basic wires used in block
diagrams
and corresponding types
Each wire has different style or color, depending on the data
type that flows through the wire:
Scalar 1D array 2D array Color
Floating-point orange
number
Integer number blue
Boolean green
String pink
27. VI Front Panel
Front Panel Icon
Toolbar
Boolean
Control Graph
Legend
Waveform
Graph
Plot Scale
Legend Legend
28. VI Block Diagram
Block
Diagram
Toolbar Divide
Function
SubVI
Graph
Terminal
Wire
Data
While Loop Numeric Timing Boolean Control
Structure Constant Function Terminal
30. Tools Palette
• Floating Palette
• Used to operate and modify front panel
and block diagram objects.
Automatic Selection Tool
Operating Tool Scrolling Tool
Positioning/Resizing Tool Breakpoint Tool
Labeling Tool Probe Tool
Wiring Tool Color Copy Tool
Shortcut Menu Tool Coloring Tool
31. Status Toolbar
Run Button
Continuous Run Button Additional Buttons on
the Diagram Toolbar
Abort Execution
Pause/Continue Button Execution Highlighting
Button
Text Settings
Step Into Button
Align Objects
Step Over Button
Distribute Objects
Step Out Button
Reorder
Resize front panel
objects
32. The Run Button
• The Run button, which looks like an
arrow, starts VI execution when you
click on it
• It changes appearance when a VI is
actually running.
• When a VI won’t compile, the run
button is broken
33. Open and Run a Virtual Instrument
Example finder
34. Creating a VI
Front Panel Window
Block Diagram Window
Control Indicator
Terminals Terminals
35. Help Options
Context Help
• Online help
• Lock help
• Simple/Complex Diagram help
• Ctrl + H
Online reference
• All menus online
• Pop up on functions in diagram to access online info directly
36. Debugging Techniques
• Finding Errors
Click on broken Run button
• Execution Highlighting showing error appears
Window
Click on Execution Highlighting button; data
• Probe flow is animated using bubbles. Values are
displayed on wires.
Right-click on wire to display probe and it
shows data as it flows through wire segment
You can also select Probe tool from Tools
palette and click on wire
37.
38. Part 3
• Shortcuts
• Ctrl + T //tile windows
• <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)
•
45. Section II – SubVIs
• What is a subVI?
• Making an icon and
connector for a
subVI
• Using a VI as a
subVI
46. 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
47. SubVIs
• A SubVI is a VI that can be used within another VI
• Similar to a subroutine
• Advantages
– Modular
– Easier to debug
– Don’t have to recreate code
– Require less memory
48. Icon and Connector
• An icon represents a VI in other
Icon
block diagrams
Terminals
• A connector shows available
terminals for data transfer
Connector
54. Save The VI
• Choose an Easy to Remember Location
• Organize by Functionality
– Save Similar VIs into one directory (e.g. Math Utilities)
• Organize by Application
– Save all VIs Used for a Specific Application into one
directory or library file (e.g. Lab 1 – Frequency
Response)
• Library Files (.llbs) combine many VI’s into a single file, ideal
for transferring entire applications across computers
55. Insert the SubVI into a Top Level VI
Accessing user-made subVIs
Functions >>All Functions >> Select a VI
Or
Drag icon onto target diagram
56.
57. Section III – Data Acquisition
DAQ Device
• Data acquisition (DAQ) basics
• Connecting Signals
• Simple DAQ application
Computer
Sensors
Cable
Terminal Block
58. Data Acquisition in LabVIEW
NI-DAQmx
Traditional NI-DAQ
Next generation driver:
Specific VIs for performing:
• VIs for performing a
• Analog Input
task
• Analog Output
• One set of VIs for all
• Digital I/O
measurement types
• Counter operations
59. DAQ – Data Acquisition
Temperature Acquisition using the DAQ Assistant
60. Data Acquisition Terminology
• Resolution - Determines How Many Different
Voltage Changes Can Be Measured
– Larger Resolution More Precise Representation
of Signal
• Range - Minimum and Maximum Voltages
– Smaller range More Precise Representation of
Signal
• Gain - Amplifies or Attenuates Signal for Best
Fit in Range
63. Section IV – Loops and Charts
• For Loop
• While Loop
• Charts
• Multiplots
64. Loops
• While Loops
– Have Iteration Terminal
– Always Run at least Once
– Run According to
Conditional Terminal
• For Loops
– Have Iteration Terminal
– Run According to input N of
Count Terminal
65. Loops (cont.)
1. Select the loop 2. Enclose code to be repeated
3. Drop or drag additional nodes and then wire
66. Charts
Waveform chart – special
numeric indicator that can
display a history of values
Controls >> Graph Indicators
>> Waveform Chart
69. Section V – Arrays & File I/O
• Build arrays manually
• Have LabVIEW build arrays automatically
• Write to a spreadsheet file
• Read from a spreadsheet file
70. Adding an Array to the Front Panel
From the Controls >> All Controls >> Array and
Cluster subpalette, select the Array Shell
Drop it on the screen.
71. Adding an Array (cont.)
Place data object into shell (i.e. Numeric Control)
72. Creating an Array with a Loop
• Loops accumulate arrays at their boundaries
74. File I/O
File I/O – passing data to and from files
- Files can be binary, text, or spreadsheet
- Write/Read LabVIEW Measurements file (*.lvm)
Writing to LVM file Reading from LVM file
75. Write LabVIEW Measurement File
• Includes the open, write, close and error handling
functions
• Handles formatting the string with either a tab or
comma delimiter
• Merge Signals function is used to combine data into
the dynamic data type
76.
77. Section VI – Array Functions & Graphs
• Basic Array Functions
• Use graphs
• Create multiplots with graphs
80. Graphs
• Selected from the Graph palette of Controls
menu
Controls>>All Controls>>Graphs
Waveform Graph – Plot an array of numbers
against their indices
Express XY Graph – Plot one array against
another
Digital Waveform Graph – Plot bits from binary
data
84. Strings
• A string is a sequence of displayable or nondisplayable
characters (ASCII)
• Many uses – displaying messages, instrument control, file
I/O
• String control/indicator is in the Controls »Text Control or
Text Indicator
85. Clusters
• Data structure that groups data together
• Data may be of different types
• Analogous to struct in C
• Elements must be either all controls or all
indicators
• Thought of as wires bundled into a cable
86. Creating a Cluster
1. Select a Cluster shell 2. Place objects inside the shell
Controls >> All Controls >> Array & Cluster
87. Cluster Functions
• In the Cluster subpalette of the Functions>>All functions palette
• Can also be accessed by right-clicking on the cluster terminal
(Terminal labels
reflect data type)
Bundle
Bundle By Name
89. Error Clusters
• Error cluster contains the following information:
– Boolean to report whether error occurred
– Integer to report a specific error code
– String to give information about the error
90. Error Handling Techniques
• Error information is passed from one subVI to the next
• If an error occurs in one subVI, all subsequent subVIs
are not executed in the usual manner
• Error Clusters contain all error conditions
• Automatic Error Handling
error clusters
91.
92. Section VIII - Case & Sequence Structures, Formula
Nodes
93. Case Structures
• In the Structures subpalette of Functions palette
• Enclose nodes or drag them inside the structure
• Stacked like a deck of cards, only one case visible
Functions >> Execution control
94. Sequence Structures
• In the Execution Control subpalette of Functions
palette
• Executes diagrams sequentially
• Right-click to add new frame
95. Formula Nodes
• In the Structures subpalette
• Implement complicated equations
• Variables created at border
• Variable names are case sensitive
• Each statement must terminate with a semicolon (;)
• Context Help Window shows available functions
Note semicolon
96.
97. Section IX – Printing & Documentation
• Print From File Menu to Printer, HTML, Rich
Text File
• Programmatically Print Graphs or Front Panel
Images
• Document VIs in VI Properties »
Documentation Dialog
• Add Comments Using Free Labels on Front
Panel & Block Diagram
98. Printing
• File » Print… Gives Many Printing Options
– Choose to Print Icon, Front Panel, Block Diagram, VI
Hierarchy, Included SubVIs, VI History
• Print Panel.vi (Programmatically Prints a Front Panel)
– Functions » All Functions » Application Control
• Generate & Print Reports (Functions » Output »
Report)
99. Documenting VIs
• VI Properties » Documentation
– Provide a Description and Help Information for a VI
• VI Properties » Revision History
– Track Changes Between Versions of a VI
• Individual Controls » Description and Tip…
– Right Click to Provide Description and Tip Strip
• Use Labeling Tool to Document Front Panels &
Block Diagrams
100.
101. Section X – Basic Programming Architecture
• Simple VI Architecture
• General VI Architecture
• State Machine Architecture
102. Simple VI Architecture
• Functional VI that produces results when run
– No “start” or “stop” options
– Suitable for lab tests, calculations
• Example: Convert C to F.vi
104. State Machine Architecture
• Advantages
– Can go from any state from any
other
– Easy to modify and debug
• Disadvantages
– Can lose events if two occur at the
same time
States:
0: Startup
1: Idle
2: Event 1
3: Event 2
4: Shutdown
105.
106. Section XI – Remote Front Panels
• View & Control LabVIEW Front Panels from a
Web Browser
• Requires no programming
• Remote clients see “live” front panel updates
• Multiple clients can view the same panel
simultaneously
• Only one client can control the front panel at a
time
107. Remote Panel Web Publishing Tool
•Tools » Web Publishing Tool…
•Click Save to Disk and VI is
embedded into an HTML file
•After file is saved, it can be
reopened and customized in
any HTML editor
108. Remote Front Panels - Resources
• NI Developer Zone
(zone.ni.com)
– Search for Remote
Front Panel
– Tutorials & Instructions
Are Available for
Download
– Information on
Incorporating Web
Cameras into Remote
Panel Applications
109.
110. Serial Communication
• Popular means of communication between computer
and peripheral device
• Data sent one bit at a time across the cable
• Used for low transfer rates or long distances
• Only a cable is needed since most computers have at
least one available serial port
PC Serial
Port
RS-232 Cable
RS-232 Instrument
110
111. Serial Hardware Connection
• RS-232
– DCE or DTE configurations
– 9-pin or 25-pin
• RS-422
– DCE or DTE Pin DTE DCE
– 8-pin 1 DCD Input Output
• RS-485 2 RxD I O
– Multidrop 3 TxD O I
4 DTR O I
5 Com - -
6 DSR I O
7 RTS O I
8 CTS I O
9 RI I O
111
112. Serial Communication
Terminology
• Baud rate – bits per second
• Data bits – inverted logic and LSB first
• Parity – optional error-checking bit
• Stop bits – 1, 1.5, or 2 inverted bits at data end
• Flow control – hardware and software handshaking options
112
113. Using the Instrument I/O Assistant with Serial
• Select COMX as
the instrument
address
• Use the I/O
Assistant as done
with GPIB
113
114. Summary
• LabVIEW can communicate with any instrument that
connects to your computer if you know the interface type
• Use the Measurement & Automation Explorer (MAX) to
detect, configure, and test your GPIB interface and
instruments
• Use the Instrument I/O Assistant for easy and fast GPIB and
serial programming.
• An instrument driver eliminates the need for your to have
detailed knowledge of the specific strings used by an
instrument
• Instrument Library – more than 2000 instruments supported
• Instrument driver VIs share a common hierarchy and come
with an example to help you get started
114