Labview Introduction - 2019-2020
Labview Introduction - 2019-2020
Course Goals
• Understand the components of a Virtual Instrument
• Introduce LabVIEW and common LabVIEW functions
• Create a subroutine in LabVIEW
• Work with Arrays, Clusters, and Structures
• Annexes
– Build a simple data acquisition application
– Learn About Printing & Documentation Features
– Develop in Basic Programming Architectures
– Publish VIs on the Web
1
Section I
• LabVIEW terms
• Components of a LabVIEW application
• LabVIEW programming tools
• Creating an application in LabVIEW
Front Panel
• Controls = Inputs
• Indicators = Outputs
Block Diagram
• Accompanying “program”
for front panel
• Components “wired”
together
2
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
3
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
Function
Express VI Standard VI
Controls Palette
(Front Panel Window)
Functions Palette
(Block Diagram Window)
4
Tools Palette
• Floating Palette
• Used to operate and modify
front panel and block diagram
objects.
Automatic Selection Tool
Status Toolbar
Run Button
5
Open and Run a Virtual Instrument
Example finder
Creating a VI
Front Panel Window
Control Indicator
Terminals Terminals
6
Creating a VI – Block Diagram
7
Dataflow Programming
• Block diagram executes
dependent on the flow of data;
block diagram does NOT
execute left to right
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
8
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.
• Probe
Right-click on wire to display probe and it
shows data as it flows through wire segment
9
Section II – SubVIs
• What is a subVI?
• Making an icon and
connector for a subVI
• Using a VI as a subVI
• Function Generator VI
• Same VI, viewed three different ways
• Yellow field designates a standard VI
• Blue field designates an Express VI
10
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
11
SubVIs Sub VIs
12
Exercise 2 – Create a SubVI with exercise 1
• Create an icon by editing the default icon on the right top
corner of the front panel window.
• Then assign the connectors ...
• The order of these operations is not important!!!
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
13
Insert the SubVI into a Top Level VI
Accessing user-made subVIs
Functions >>All Functions >> Select a VI
Or
Drag icon onto target diagram
14
Section III – 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
15
Loops (cont.)
1. Select the loop 2. Enclose code to be repeated
Charts
Nous ne pouvons pas afficher lʼimage.
16
Wiring Data into Charts
Single Plot Charts Multiplot Charts
17
Section IV – Arrays
• Build arrays manually
• Have LabVIEW build arrays automatically
18
Adding an Array (cont.)
Place data object into shell (i.e. Numeric Control)
19
Creating 2D Arrays
20
Array Functions – Basics
Functions >> All functions>> Array
21
Graphs
• Selected from the Graph palette of Controls menu
Controls>>All Controls>>Graphs
Graphs
Nous ne pouvons pas afficher lʼimage.
22
Exercise 5 – Using XY Graphs
Create a VI that simulate an oscilloscope with two channels with the
possibility:
• to change the amplitude of each channel,
• to adjust the phase difference,
• to change the frequency (different for both channels) => be
careful to Shannon's theorem
• Plot over two periods at least => [-T, T]
The waveforms can be plot in function of time [X(t), Y(t)] or in function
of the other [XY].
23
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
Exercise 6
Add the mode XY to the oscilloscoppe
24
Sequence Structures
• In the Execution Control subpalette of Functions palette
• Executes diagrams sequentially
• Right-click to add new frame
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
25
Section VII – Strings, Clusters, & Error Handling
• Strings
• Creating Clusters
• Cluster Functions
• Error I/O
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
26
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
Creating a Cluster
1. Select a Cluster shell 2. Place objects inside the shell
Controls >> All Controls >> Array & Cluster
27
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
Cluster Functions
Unbundle
Unbundle By Name
Unbundled cluster
in the diagram
28
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 clusters
29
Section VIII – 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
30
General VI Architecture
• Three Main Steps
– Startup
– Main Application
– Shutdown
31
Exercise 7 – Simple State Machine
32
Remote Panel Web Publishing Tool
•Tools » Web Publishing Tool…
33
Section X – Data Acquisition
DAQ Device
• Data acquisition (DAQ) basics
• Connecting Signals
• Simple DAQ application
Computer
Sensors
Cable
Terminal Block
34
DAQ – Data Acquisition
Temperature Acquisition using the DAQ Assistant
35
Hardware Connections
SC-2075
BNC-2120
NI-ELVIS
SCB-68
36
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)
37
Exercise – Analyzing and Logging Data
Students build Temperature Logger.vi
38
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
39
Section XII – Additional Topics
• Property Nodes
• Local Variables
• Global Variables
• DataSocket
• Binary File I/O
40