Virtual Instrumentation With Labview
Virtual Instrumentation With Labview
Course Goals
• Understand the components of a Virtual Instrument
• Introduce LabVIEW and common LabVIEW functions
• Build a simple data acquisition application
• Create a subroutine in LabVIEW
• Work with Arrays, Clusters, and Structures
• Learn About Printing & Documentation Features
• Develop in Basic Programming Architectures
• Publish VIs on the Web
Section I
• LabVIEW terms
• Components of a LabVIEW application
• LabVIEW programming tools
• Creating an application in LabVIEW
LabVIEW Programs Are Called Virtual Instruments (VIs)
Front Panel
• Controls = Inputs
• Indicators = Outputs
Block Diagram
• Accompanying “program”
for front panel
• Components “wired”
together
VI Front Panel
Front Panel Icon
Toolbar
Boolean
Control Graph
Legend
Waveform
Graph
Plot Scale
Legend Legend
VI Block Diagram
Block
Diagram
Toolbar Divide
Function
SubVI
Graph
Terminal
Wire
Data
Express VI Standard VI
Controls and Functions Palettes
Controls Palette
(Front Panel Window)
Functions Palette
(Block Diagram Window)
Tools Palette
• Floating Palette
• Used to operate and modify
front panel and block diagram
objects.
Automatic Selection Tool
Run Button
Control Indicator
Terminals Terminals
Creating a VI – Block Diagram
Wiring Tips – Block Diagram
Wiring “Hot Spot” Click To Select Wires
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
Exercise 1 - Convert °C to °F
Debugging Techniques
• Finding Errors
Click on broken Run button
Window showing error appears
• Execution
Highlighting
Click on Execution Highlighting button; data
flow is animated using bubbles. Values are
displayed on wires.
• What is a subVI?
• Making an icon and
connector for a subVI
• Using a VI as a subVI
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
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
Icon and Connector
Icon
• An icon represents a VI in other block
diagrams
Terminals
• A connector shows available terminals
for data transfer
Connector
SubVIs Sub VIs
Steps to Create a SubVI
• Create the Icon
• Create the Connector
• Assign Terminals
• Save the VI
• Insert the VI into a Top Level VI
Create the Icon
• Right-click on the icon in the
block diagram or front panel
Create the Connector
Right click on the icon pane (front panel only)
Assign Terminals
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
Insert the SubVI into a Top Level VI
Accessing user-made subVIs
Functions >>All Functions >> Select a VI
Or
Drag icon onto target diagram
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)
• Tools » Options… – Set Preferences in LabVIEW
• VI Properties – Configure VI Appearance,
Documentation, etc.
Section III – Data Acquisition
DAQ Device
• Data acquisition (DAQ) basics
• Connecting Signals
• Simple DAQ application
Computer
Sensors
Cable
Terminal Block
Data Acquisition in LabVIEW
NI-ELVIS
SCB-68
Exercise 2 – Simple Data Acquisition
Complete Convert C to F.vi, then create Thermometer.vi.
Section IV – Loops and Charts
• For Loop
• While Loop
• Charts
• Multiplots
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
Loops (cont.)
1. Select the loop 2. Enclose code to be repeated
(Terminal labels
reflect data type)
Bundle
Bundle By Name
Cluster Functions
Unbundle
Unbundle By Name
Unbundled cluster
in the diagram
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
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
Section VIII - Case & Sequence Structures,
Formula Nodes
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
Note semicolon
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
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)
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
Section X – Basic Programming Architecture
• Simple VI Architecture
• General VI Architecture
• State Machine Architecture
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
General VI Architecture
• Three Main Steps
– Startup
– Main Application
– Shutdown
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
Exercise 7 – Simple State Machine
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
Remote Panel Web Publishing Tool
•Tools » Web Publishing Tool…