National Instruments Confidential1 LabVIEW Introduction Course Semester National Instruments 11500 N. Mopac Expressway Austin, Texas 78759 (512) 683-0100.

Post on 26-Mar-2015

233 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

National Instruments Confidential1

LabVIEW Introduction CourseSemester

National Instruments11500 N. Mopac Expressway

Austin, Texas 78759(512) 683-0100

2

Graphical Programming for Test, Measurement, and Control

• Rapid application development with Express VIs and easy-to-use graphical environment

• Interactive measurement assistants and powerful redesigned DAQ interface for connecting to all types of I/O

• Expanded targeting options from Real-Time to FPGA to PDA

• Localized in French, German, and Japanese (Korean documentation)

3

• Readers of Electronic Design name invention of LabVIEW as one of the Top 50 Milestones for the Electronics Industry

• LabVIEW 6.1 receives IAN Automation Excellence Award of 2002

• Design News awards LabVIEW 6i Best Computer Productivity Tool of 2000

• LabVIEW 6i chosen the “Best of the Best” in the software category by readers of Evaluation Engineering

LabVIEW Awards

4

May 2003

January 2002

August 2000

March 1998

February 1996

August 1993

September 1992

January 1990

October 1986

April 1983

• LabVIEW 7 Express VIs, I/O Assistants, FPGA/PDA targets

• LabVIEW 6.1 Enhanced networking capabilities, analysis

• LabVIEW 6i Internet-ready measurement intelligence

• LabVIEW 5.0 ActiveX, Multithreading

• LabVIEW 4.0 Added professional tools, improved debugging • LabVIEW 3.0 Multiplatform version of LabVIEW

• LabVIEW for Windows

• LabVIEW 2.0 for Macintosh

• LabVIEW 1.0 for Macintosh

• LabVIEW project begins

NI LabVIEW: A History of Innovation

5

Third-Party Software• Wolfram Research Mathematica ®

• Microsoft Excel ®

• The MathWorks MATLAB® and Simulink®

• MathSoft MathCAD ®

• Electronic Workbench MultiSim ®

• Texas Instruments Code Composer Studio®

• Ansoft RF circuit design software• Microsoft Access ® • Microsoft SQL Server ®

• Oracle ®

Leveraging Commercial Technologies Communication Protocols

• Ethernet• CAN• DeviceNet• USB• IEEE 1394• RS-232• GPIB• RS-485

6

PC, Mac, Linux, Sun

LabVIEW Everywhere

Networked I/O

PC Boards

Workstation

Handheld

Embedded(FPGA)

Industrial Computer (PXI)

Wireless

Sensor

Tektronix Open Windows Oscilloscopes

7

The LabVIEW Family

NI LabVIEWGraphical Programming Software for Measurement and Automation

LabVIEW Real-Time Module LabVIEW FPGA Module LabVIEW PDA Module LabVIEW Datalogging andSupervisory Control Module

8

Acquire, Analyze, and Present

Nearly all test, measurement, and control applications can be divided into 3 main components: the ability to acquire, analyze, and

present data. LabVIEW is the easiest, most powerful tool for acquiring, analyzing, and presenting real-world data.

9

Acquire with LabVIEWLabVIEW can acquire data using the following devices and more:• GPIB, Serial, Ethernet, VXI, PXI Instruments• Data Acquisition (DAQ)• PCI eXtensions for Instrumentation (PXI)• Image Acquisition (IMAQ)• Motion Control• Real-Time (RT) PXI• PLC (through OPC Server)• PDA• Modular Instruments

LabVIEW is tightly integrated with all NI hardware, in addition to connecting to thousands of I/O devices from hundreds of different vendors.

10

Analyze with LabVIEWLabVIEW includes the following tools to help you analyze your data:• More than 400 measurement analysis functions for

Differential Equations, Optimization, Curve Fitting, Calculus, Linear Algebra, Statistics, etc.

• 12 new Express VIs specifically designed for measurement analysis, including filtering and spectral analysis

• Signal Processing VIs for Filtering, Windowing, Transforms, Peak Detection, Harmonic Analysis, Spectrum Analysis, etc.

Powerful measurement analysis is built in to the LabVIEW development environment.

11

Present with LabVIEWLabVIEW includes the following tools to help you present your data:• On your machine — Graphs, Charts,

Tables, Gauges, Meters, Tanks, 3D Controls, Picture Control, 3D Graphs (Windows Only), Report Generation (Windows Only)

• Over the Internet — Web Publishing Tools, Datasocket (Windows Only), TCP/IP, VI Server, Remote Panels, Email

• Enterprise Connectivity Toolset — SQL Tools (Databases), Internet Tools (FTP, Telnet, HTML)

Presentation with LabVIEW can be done on your PC or over a network, or you can take advantage of additional applications such as DIAdem.

12

Course Map

Introduction to LabVIEW

Repetition & Loops

Modular Programming

VI Customization

Data Acquisition& Waveforms

Instrument Control

Arrays

Plotting Data

Clusters

Decision Making in a VI

Strings and File I/O

13

Course Goals

• Understand front panels, block diagrams, and connectors/icons • Use the programming structures and data types that exist in

LabVIEW• Use various editing and debugging techniques• Create and save your own VIs so you can use them as subVIs• Display and log your data• Create applications that use plug-in data acquisition (DAQ)

boards • Create applications that use GPIB and serial port instruments

This course prepares you to:

14

Course Non-Goals

• Every built-in LabVIEW object, function, or library VI• Analog-to-digital (A/D) theory• The detailed operation of the serial port or GPIB bus• How to develop an instrument driver

It is not the purpose of this course to discuss the following:

15

Lesson 1Introduction to LabVIEW

TOPICSLabVIEW EnvironmentFront PanelBlock DiagramDataflow ProgrammingLabVIEW Help and ManualsDebugging a VI

16

Virtual Instruments (VIs)

Front Panel• Controls = Inputs• Indicators = Outputs

Block Diagram• Accompanying “program”

for front panel• Components wired

together

17

LabVIEW Dialog Box

18

Creating a new VI•File»New VI to open a blank VI

• File»New… to open the New dialog box and configure a VI template, global variable, control, etc…

19

Template Browser

20

Menu

File Edit Operate Tools Browse Window Help

21

Front Panel Window

Front Panel Toolbar

GraphLegend

BooleanControl

WaveformGraph

Icon

PlotLegend

ScaleLegend

WaveformGraphOwned Label

22

Block Diagram Window

Wire Data

GraphTerminal

SubVI

While LoopStructure

Block Diagram Toolbar Divide

Function

Numeric Constant

Timing Function

Boolean Control Terminal

23

Front Panel and Block Diagram Toolbars

Run button

Continuous Run button

Abort button

Pause/Continue button

• Execution Highlighting button• Step Into button• Step Over button• Step Out button

Warning indicator

Enter button

Broken Run button

Font ring

Alignment ring

Distribution ring

Resize ring

Reorder ring

Context Help ButtonAdditional Buttons on the Block Diagram Toolbar

24

Tools Palette• LabVIEW automatically selects the tool needed

• Available on the front panel and the block diagram

• A tool is a special operating mode of the mouse cursor

• Use the tools to operate and modify front panel and block diagram objects

• To show the tools palette, select Window»Show Tools Palette

25

Front Panel − Controls Palette

Controls PaletteContains the most commonly used controls

All Controls PaletteShows all controls

26

Block Diagram − Functions Palette

Functions PaletteContains the Express VIs (interactive VIs with configurable dialog page) and the most commonly used functions

All Functions PaletteShows all functions

27

Palette Tools

• Graphical, floating palettes • Subpalettes can be converted to floating palettes• Use Palette Options to change palette view from

Express to Advanced

Search Palette Options

Click pushpin to tack down palette

Up to OwningPalette

28

Searching for Controls, VIs, and Functions

• Press the search button to perform text searches of the palettes

• Click and drag an item from the search window to the block diagram or double-click an item to open the owning palette

29

Customize Control & Function Palette

• Keep vi.lib in the LabVIEW 7.0 directory• Place items in user.lib or instr.lib to have them appear in

the Controls and Functions palettes

Programs» National Instruments»LabVIEW 7.0

30

Build the front panel with controls (inputs) and indicators (outputs)

NumericControl

NumericIndicator Owned

Labels

IncrementButtons

BooleanControl

BooleanIndicator

Creating a VI Front Panel

31

Shortcut Menus for Front Panel Objects

Right-click the label to access its shortcut menu

Right-click the digital display to access its shortcut menu

32

Property Page

Right-click a control or indicator on the front panel and select Properties from the shortcut menu to access the property dialog box for that object

33

NodesWires

ControlTerminals

Block DiagramFront PanelIndicator Terminals

Creating a VI Block Diagram

34

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

35

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

36

Block Diagram Terminals• Terminals are entry and exit ports

that exchange information between the panel and diagram

• Terminals are analogous to parameters and constants in text-based programming languages

• Right-click and toggle View As Icon to change the icon view

37

Wiring the Block Diagram

Scalar

Numeric

Boolean

String

2D Array1D Array

Dynamic

38

Wiring Techniques Hot Spot

• Automatic Wiring• Use Context Help Window when wiring• Right-click wire and select Clean Up Wire• Tip Strips• Automatic wire routing• Right-click terminals

and select Visible Items»Terminals

View the terminal connections to a function

39

• 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

Dataflow Programming

40

Context Help• To display the Context Help window, select

Help»Show Context Help, press the <Ctrl-H> keys, or press the Show Context Help Window button in the toolbar

• Move cursor over objectto display help

• Connections:Required – boldRecommended – normalOptional - dimmed

Simple/Detailed Context Help Lock Help More Help

41

LabVIEW Help

• Click the More Help button in the Context Help window• Select Help»VI, Function, & How-To Help• Click the sentence Click here for more help in the Context

Help window.

Contains detailed descriptions of most palettes, menus, tools, VIs, and functions, step-by-step instructions for using LabVIEW features, links to the LabVIEW Tutorial, PDF versions of all the LabVIEW manuals and Application Notes, and technical support resources.

42

NI Example Finder

• To find an example, select Help»Find Examples

• Web-integrated• Search by keyword,

example type, hardware type, etc.

43

Debugging Techniques

Finding Errors

Click on broken Run button. A window showing the error appears

Execution Highlighting

Click on Execution Highlighting button; data flow is animated using bubbles. Values are displayed on wires.

44

Debugging TechniquesProbe

Right-click on wire and select probe and it shows data as it flows through the wire segment

Breakpoints

Right-click on wire and select Set Breakpoint; pause execution at the breakpoint.

Conditional Probe

Combination of a breakpoint and a probe. Right-click on wire and select custom probe.

45

Debugging Techniques

Step Into, Over, and Out buttons for Single Stepping

Click on Step Into button to enable single steppingOnce Single Stepping has begun, the button steps into nodes

Click on Step Over button to enable single stepping or to step over nodes

Click on Step Out button to step out of nodes

46

Summary• Virtual instruments (VIs) have three main parts — the front panel, the block

diagram, and the icon and connector pane• The front panel is the user interface of a LabVIEW program and the block

diagram is the executable code• The block diagram contains the graphical source code composed of nodes,

terminals, and wires• Use Express VIs, standard VIs and functions on the block diagram to create

your measurement code. For the most common requirements, use Express VIs with interactive configuration dialogs to define your application.

• Floating Palettes: Tools Palette, Controls Palette (only when Front Panel Window is active), and Functions Palette (only when Block Diagram Window is active)

• There are help utilities including the Context Help Window and LabVIEW Help

47

Summary• Place controls (inputs) and indicators (outputs) in the front panel window• Use the Operating tool to manipulate panel objects. Use the Positioning tool to

select, move, and resize panel objects. Use the Wiring tool to connect diagram objects

• Control terminals have thicker borders than indicator terminals• All front panel objects have property pages and shortcut menus• Wiring is the mechanism to control dataflow and produce LabVIEW programs• Broken Run arrow means a nonexecutable VI• Various debugging tools and options available such as setting probes and

breakpoints, execution highlighting, and single stepping

48

Tips• Common keyboard shortcuts

• Access Tools Palette with <shift>-right-click• Increment/Decrement faster using <shift> key• Tools»Options selection — set preferences in LabVIEW• VI Properties (File menu)

Windows Sun Linux MacOS<Ctrl-R> <-R> <M-R> <-R> Run a VI<Ctrl-F> <-F> <M-F> <-F> Find object<Ctrl-H> <-H> <M-H> <-H> Activate Context Help window<Ctrl-B> <-B> <M-B> <-B> Remove all broken wires<Ctrl-W> <-W> <M-W> <-W> Close the active window<Ctrl-E> <-E> <M-E> <-E> Toggle btwn Diagram/Panel Window

49

Lesson 2Modular Programming

TOPICS

SubVIsIcon and Connector PaneUsing SubVIsCreating a SubVI from sections of a VI

50

LabVIEW Hierarchy

SubVI

51

SubVIs

Function Pseudo Codefunction average (in1, in2, out)

{out = (in1 + in2)/2.0;}

SubVI Block Diagram

Calling Program Pseudo Codemain{average (point1, point2, pointavg)

}

Calling VI Block Diagram

52

Icon/Connector

An icon represents a VI in other block diagrams

A connector passes data to and receives data from a subVI through terminals

Icon

Connector

terminals

terminals

53

SubVI Example – Calculating Slope• A VI within another VI is called a subVI• To use a VI as a subVI, create an icon and a connector pane after

building the front panel and block diagram

54

Creating the Icon• Icon: graphical representation of a VI• Right-click in the icon pane (Panel or Diagram)• Always create a black and white icon

Default Icon Create a custom icon

55

Creating the Connector

Right-click the icon (Front Panel only)

56

Creating the Connector - continuedClick withwiring tool

57

The Connector PaneTerminal colors match the data types to which they are connectedClick the terminal to see its associated front panel object

58

Using a VI as a SubVI

All Functions » Select a VI… <OR>

Drag icon onto target diagram

59

Help and Classifying Terminals

Classify inputs and outputs:• Required — Error if no connection• Recommended — Warning if no connection• Optional — No effect if no connection

60

Create SubVI Option• Enclose area to be converted into a subVI• Select Create SubVI from the Edit Menu

61

Summary• VIs can be used as subVIs after you make the icon and connector• Icon created using Icon Editor• Connector defined by choosing number of terminals• Load subVIs using the Select a VI option in the All Functions palette

or dragging the icon onto a new diagram• Online help for subVIs using the Show Context Help option• Descriptions document functionality• Use Create SubVI feature to easily modularize the block diagram

62

Lesson 3Repetition and Loops

TOPICSWhile LoopsFor LoopsAccessing Previous Loop Data

63

While Loops

LabVIEW While Loop Flow Chart Pseudo Code

Repeat (code);

Until Condition met;

End;

64

While Loops1. Select While Loop 2. Enclose code to be repeated

3. Drop or drag additional nodes and then wire

65

Select the Loop Condition

Click the Conditional Terminal with the Operating tool to define when the loop stopsDefault: Stop if True

Iteration Terminal Conditional Terminal

66

Structure Tunnels• Tunnels feed data into and out of structures. • The tunnel is a block that appears on the border; the color of

the block is related to the data type wired to the tunnel. • When a tunnel passes data into a loop, the loop executes

only after data arrive at the tunnel.

• Data pass out of a loop after the loop terminates.

67

For Loops

LabVIEW For Loop Flow Chart Pseudo Code

N=100;

i=0;

Until i=N:

Repeat (code; i=i+1);

End;

68

For Loops• In Structures subpalette of Functions palette

• Enclose code to be repeated and/or resize and add nodes inside boundary

• Executes diagram inside of loop a predetermined number of times

Count terminal(Numerical input)

Wait Until Next ms Multiplefunction

69

Wait Functions

Wait Until Next ms Multiple

Functions»Time & Dialog palette

70

Wait Functions

Wait (ms)

Functions»Time & Dialog palette

Time Delay

Functions»Time & Dialog palette

71

Numeric Conversion• Numerics default to double-precision (8 bytes) or long integer

(4 bytes)• LabVIEW automatically converts to different representations• For Loop count terminal always converts to a long integer• Gray coercion dot on terminal indicates conversion

72

Numeric Conversion• LabVIEW chooses the representation that uses more bits. • If the number of bits is the same,

LabVIEW chooses unsigned over signed.• To choose the representation,

right-click on the terminal and select Representation.

• When LabVIEW converts floating-point numerics to integers, it rounds to the nearest integer. LabVIEW rounds x.5 to the nearest even integer. For example, LabVIEW rounds 2.5 to 2 and 3.5 to 4.

73

Accessing Previous Loop Data – Shift Register• 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 next iteration

Before Loop

BeginsFirst

IterationSecondIteration

LastIteration

Initial Value

Value 1

Value 1

Value 2

Value 2

Value 3

Value 3InitialValue

74

Additional Shift Register Elements

Latest valueis passed toright terminal

Right-click the left terminal to add new elements

Previous values are available at the left terminals

Right-click the border for a new shift register

1 loop ago

2 loops ago

3 loops ago

75

Feedback Nodes

• Appears automatically in a For Loop or While Loop if you wire the output of a subVI, function, or group of subVIs and functions to the input of that same VI, function, or group.

• Stores data when the loop completes an iteration, sends that value to the next iteration of the loop, and transfers any data type

76

Feedback Node

• Wire from output to input to automatically create a feedback node

<OR>• Place a feedback node from the

Functions»Structures palette

77

Initialized Shift Registers & Feedback Nodes

Run Once VI stops execution Run Again

Output = 5Output = 5

Output = 5 Output = 5

78

Uninitialized Shift Registers & Feedback Nodes

Run Once VI stops execution Run Again

Output = 8Output = 4

Output = 4 Output = 8

79

Summary• Two structures to repeat execution: While Loop and For Loop• Loop timing controlled using Wait Until Next ms Multiple function,

the Wait (ms) function, or the Time Delay Express VI.• Coercion dots appear where LabVIEW coerces a numeric

representation of one terminal to match the numeric representation of another terminal

• Feedback nodes and shift registers transfer data values from one iteration to the next

• Use shift registers only when more than one past iteration is needed

80

Lesson 4Arrays

TOPICS

Introduction to Arrays

Auto Indexing Arrays

Array Functions

Polymorphism

81

• Collection of data elements that are of same type

• One or more dimensions, up to 2 elements per dimension

• Elements accessed by their index; first element is index 0

31

index10-element array 1.2 3.2 8.2 8.0 4.8 5.1 6.0 1.0 2.5 1.7

0 1 2 3 4 5 6 7 8 9

2D array

Five row by seven column array of 35 elements

0 1 2 3 4 5 60 1 2 34

Arrays

82

Add Dimension for 2D arrays

1. Select the Array shell from the Controls palette

2. Place data object inside shell

Array Controls and Indicators

83

1. Select Array Constant shell from the Array subpalette

2. Place the data object in the array shell

Creating Array Constants

84

• Loops can accumulate arrays at their boundaries with auto-indexing

• For Loops auto-index by default

• While Loops output the final value by default

• Right-click on tunnel and enable/disable auto-indexing

Auto-Indexing

Wire becomes thicker

Wire remains the same size

Auto-Indexing Disabled

Auto-Indexing Enabled

Only one value (last iteration) is passed out of the loop

1D Array

0 1 2 3 4 5

85

• Inner loop creates column elements• Outer loop stacks them into rows

Creating 2D Arrays

1D Array

0 1 2 3 4 5

2D Array

86

Auto-Index Input

• An array input can be used to set the For Loop count terminal

• Number of elementsin the array equalsthe count terminalinput

• Run arrow not broken

87

Array Size

Initialize Array

Common Array Functions

88

Array Subset

Common Array Functions

89

The Build Array Function

Building a higher dimension array

Concatenate Inputs

Appending an element

default

90

The Index Array Function

Extracting an Element

Extracting an Element of a Row

Extracting a Row

91

Function inputs can be of different typesAll LabVIEW arithmetic functions are polymorphic

Scalar + Scalar

Array + Scalar

Combination Result

Scalar

Array

Array

Array + Array

Array + Array

Array

Polymorphism

92

• Arrays group data elements of the same type. You can build arrays of numeric, Boolean, path, string, waveform, and cluster data types.

• The array index is zero-based, which means it is in the range 0 to n – 1, where n is the number of elements in the array.

• To create an array control or indicator, select an Array on the Controls»Array & Cluster palette, place it on the front panel, and drag a control or indicator into the array shell.

• If you wire an array to a For Loop or While Loop input tunnel, you can read and process every element in that array by enabling auto-indexing.

• By default, LabVIEW enables auto-indexing in For Loops and disables auto-indexing in While Loops.

• Polymorphism is the ability of a function to adjust to input data of different data structures.

Summary

top related