0% found this document useful (0 votes)
35 views

Labview Introduction - 2019-2020

- The document discusses the goals and components of a virtual instrumentation course using LabVIEW. The goals include understanding LabVIEW components, creating applications, and learning programming architectures. - The main sections cover LabVIEW terms and components, creating virtual instruments (VIs) with front panels and block diagrams, using subVIs, adding loops and charts, and working with arrays. Exercises guide users in converting temperatures, creating an oscilloscope VI, and building arrays. - Key LabVIEW concepts include virtual instruments, dataflow programming, controls and indicators, subVIs, debugging tools, and creating applications using loops, charts, and multi-dimensional arrays. The document provides an overview of essential LabVIEW topics for

Uploaded by

Mansour Achaour
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views

Labview Introduction - 2019-2020

- The document discusses the goals and components of a virtual instrumentation course using LabVIEW. The goals include understanding LabVIEW components, creating applications, and learning programming architectures. - The main sections cover LabVIEW terms and components, creating virtual instruments (VIs) with front panels and block diagrams, using subVIs, adding loops and charts, and working with arrays. Exercises guide users in converting temperatures, creating an oscilloscope VI, and building arrays. - Key LabVIEW concepts include virtual instruments, dataflow programming, controls and indicators, subVIs, debugging tools, and creating applications using loops, charts, and multi-dimensional arrays. The document provides an overview of essential LabVIEW topics for

Uploaded by

Mansour Achaour
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Virtual Instrumentation With LabVIEW

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

LabVIEW Programs Are Called Virtual Instruments (VIs)

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

While Loop Numeric Timing Boolean Control


Structure Constant Function Terminal

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 and Functions Palettes

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

Operating Tool Scrolling Tool

Positioning/Resizing Tool Breakpoint Tool

Labeling Tool Probe Tool

Wiring Tool Color Copy Tool

Shortcut Menu Tool Coloring Tool

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

5
Open and Run a Virtual Instrument
Example finder

Creating a VI
Front Panel Window

Block Diagram Window

Control Indicator
Terminals Terminals

6
Creating a VI – Block Diagram

Wiring Tips – Block Diagram


Wiring “Hot Spot” Click To Select Wires

Use Automatic Clean Up Wiring


Wire Routing

7
Dataflow Programming
• 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

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

You can also select Probe tool from Tools


palette and click on wire

9
Section II – SubVIs

• 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

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

Icon and Connector

• An icon represents a VI in other block


Icon
diagrams
Terminals
• A connector shows available
terminals for data transfer
Connector

11
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

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

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.

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

3. Drop or drag additional nodes and then wire

Charts
Nous ne pouvons pas afficher lʼimage.

Waveform chart – special


numeric indicator that can
display a history of values
Controls >> Graph Indicators
>> Waveform Chart

16
Wiring Data into Charts
Single Plot Charts Multiplot Charts

Exercise 3 – Using loops


Create a VI that simulate an oscilloscope with one channel
with the possibility:
• to change the amplitude of each channel,
• to adjust the phase,
• to change the frequency => be careful to Shannon's
theorem
• Plot over two periods => [-T, T]

17
Section IV – Arrays
• Build arrays manually
• Have LabVIEW build arrays automatically

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.

18
Adding an Array (cont.)
Place data object into shell (i.e. Numeric Control)

Creating an Array with a Loop


• Loops accumulate arrays at their boundaries

19
Creating 2D Arrays

Section V – Array Functions

• Basic Array Functions


• Use graphs
• Create multiplots with graphs

20
Array Functions – Basics
Functions >> All functions>> Array

Array Functions – Build Array

21
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

Graphs
Nous ne pouvons pas afficher lʼimage.

Right-Click on the Graph and choose Properties


to Interactively Customize

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].

Section VI - Case & Sequence Structures,


Formula Nodes

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

Functions >> Execution control

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 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

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

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

31
Exercise 7 – Simple State Machine

Section IX – 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

32
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

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

33
Section X – Data Acquisition
DAQ Device
• Data acquisition (DAQ) basics
• Connecting Signals
• Simple DAQ application
Computer
Sensors
Cable

Terminal Block

Data Acquisition in LabVIEW

Traditional NI-DAQ NI-DAQmx


Specific VIs for Next generation driver:
performing: • VIs for performing a
• Analog Input task
• Analog Output • One set of VIs for all
• Digital I/O measurement types
• Counter operations

34
DAQ – Data Acquisition
Temperature Acquisition using the DAQ Assistant

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

35
Hardware Connections
SC-2075
BNC-2120

NI-ELVIS
SCB-68

Exercise - Simple Data Acquisition


Complete Convert C to F.vi, then create Thermometer.vi.

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)

Writing to LVM file Reading from LVM file

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

37
Exercise – Analyzing and Logging Data
Students build Temperature Logger.vi

Section XI – 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

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

Where Do I Go From Here?


• Example programs (Help» Find Examples…)
• LabVIEW Student Edition (www.ni.com/labviewse)
• Web resources (ni.com)
– NI Developer Zone (zone.ni.com)
– Application Notes
– Info-labview newsgroup (www.info-labview.org/)
– Instrument Driver Library (www.ni.com/idnet)

40

You might also like