Introduction to LabVIEW ES110 Graphical programming language & Data flow LabVIEW relies on...

Post on 17-Dec-2015

235 views 2 download

Transcript of Introduction to LabVIEW ES110 Graphical programming language & Data flow LabVIEW relies on...

Introduction to LabVIEWES110

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

How does LabVIEW work? LabVIEW programs are called:

Virtual Instruments (VIs) because their appearance and operation

imitate actual instruments. However, they are analogous to main

programs, functions and subroutines from popular language like C, Fortran, Pascal, …

Front Panel• Controls = Inputs• Indicators = Outputs

Block Diagram• Accompanying “program”

for front panel• Components “wired”

together

LabVIEW Programs Are Called Virtual Instruments (VIs)

LabVIEW Introduction Two “sets” for development

Front Panel Block Diagram

Wiring connections

LabVIEW Conventions

Running LabVIEW programs

LabVIEW Front Panel All user interface

goes here!

Used to display Controls or Indicators

Highly customizable

LabVIEW Block Diagram Actual program

Invisible to user

Read left to right, like a book

Where the MAGIC happens!

TerminalsWhen you place a control

(or indicator) on the

FRONT PANEL

LabVIEW automatically creates a correspondingcontrol (or indicator) terminal on the BLOCKDIAGRAM

Control? or Indicator?

Controls = Inputs from the user = Source Terminals

Indicators = Outputs to the user = Destinations

Manipulating Controls and Indicators

Right click on an indicator to Change to control Change format or precision

Right click on a control to Change to indicator Change mechanical action (whether to latch

open or closed, and what to use as default…)

Wiring Connections Wires transport data

through the block diagram

Wire color indicates variable type

A red “X” means something is wrong!

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.

Broken wires

If you connect more than

one source or no source

at all to a wire,

LabVIEW DISAGREES with what

you’re doing, and thewire will appear broken

Messy vs. Clean Wiring

CLEAN: Easy to troubleshoot

MESSY: What is going on?

Basic wires used in block diagramsand 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 number

orange

Integer number blue

Boolean green

String pink

LabVIEW Conventions Front panel items

Controls and indicators

Block diagram items Program structures (loops, case structures, math, etc.)

Controls vs. Indicators Wires attach to controls on the right (give values) Wires attach to indicators on the left (receive values)

Wiring colors Wires are color coded to correspond to data types

Running LabVIEW Programs ALMOST ALWAYS put

your program in some sort of loop that can be stopped with a control

AVOID using the red “x” to stop your program

Lab. Equipment

Oscilloscope

Function Generator

Digital Voltmeter (DVM)

Universal Measuring Instruments

Signal Generator

Add/edit text

Wire features together tocontrol flow of data

Select a feature toedit or move

Operate a control

Probe Data(troubleshoot)

Insert a digital indicator or control

Insert a boolean control (button or switch)

Add a structure such as for, while, and case statements

Add a numericoperator (+,-,…)

File I/O

Add a booleanoperator (and, or…)

Data Acquisition

Signal analysis

Comparison

Mathematical Functions

Timing/dialog

Reorder objects

Run

Continuous run

PauseStop

Font ring

Alignment ring

Distribution ring

Debugging featuresmore on this later…

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

ControlTerminals

Block Diagram Window

Front Panel Window

Indicator Terminals

Creating a VI

Example 1: Craps

From the functions – numeric panel insert a pair of dice

From the Controls panel insert a numeric digital indicator (on the front panel)

Use the wiring tool to connect the two (in the wiring diagram) and click the “run” button repeatedly.

Numbers from 0.00 to 1.00 should be displayed in the front panel

Example 1: Craps (continued)

Delete the wire Add a multiplication node and a

numeric constant to allow multiplication by 5

Add an addition node and numeric constant to allow addition of 1

Add a mathematical “Round to Nearest” node.

Make a second copy of this structure to represent a second die and wire them together through an addition node with an output to a numeric constant

This wiring diagram simulates the rollingof 2 dice and their addition to form a numberfrom 2 through 12.

Example 2: Analog & Digital Voltmeter (simulated signal)

Uniform noise used as simulated signal – Functions – Signal Processing – Signal Generation menu

Absolute value function from functions – numeric menu

Mean value of data series from the functions – mathematics – Probability and Statistics menu

The 250 ms wait implemented from the time and dialog menu slows the “flutter” of the meter.

Example 3: Reading an analog input signalRequires A/D board to implement

From the functions menu select data acquisition and then analog input. Then select either “Sample Channel” or Sample Channels”

This places the sampling icon in your wiring diagram

You then need to configure the channel(s) and wire the output to other parts of your program.

Example 4: Signal Analysis (continued)

Example 5: Creating Sub-VIs

In wiring diagram use selection tool (mouse box) to select all items to be in the SubVI.

From Edit menu select “Create SubVI”

Double click on new icon and save it as a separate VI.

Cut-and-paste it at will or insert it using “Functions – Select VI menu”

Section II – Elements of Typical Programs

A. Loops• While Loop• For Loop

B. Functions and SubVIs• Types of Functions• Creating Custom Functions (SubVI)• Functions Palette & Searching

C. Decision Making and File IO• Case Structure• Select (simple If statement)• File I/O

Loops While Loops

i terminal counts iteration Always runs at least once Runs until stop condition is

met

• For Loops– i terminal counts iterations– Run according to input N of

count terminal

While LoopWhile Loop

For LoopFor Loop

Drawing a Loop

1. Select the structure

2. Enclose code to be repeated

3. Drop or drag additional nodes and then wire

What Types of Functions are Available? Input and Output

Signal and Data Simulation Acquire and Generate Real Signals with DAQ Instrument I/O Assistant (Serial & GPIB) ActiveX for communication with other programs

Analysis Signal Processing Statistics Advanced Math and Formulas Continuous Time Solver

Storage File I/O

Express Functions Palette

Create SubVI Enclose area to be converted into a subVI. Select Edit»Create SubVI from the Edit Menu.

LabVIEW Functions and SubVIs operate like Functions in other languages

Function Pseudo Codefunction average (in1, in2, out){out = (in1 + in2)/2.0;}

SubVI Block Diagram

Calling Program Pseudo Codemain{average (in1, in2, pointavg)}

Calling VI Block Diagram

How Do I Make Decisions in LabVIEW?1. Case Structures

2. Select

(a) (b)

(c)

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

• For Loops auto-index by default

• While Loops output only the final value by default

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

Building Arrays with Loops (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

5

Review of Data Types Found in LabVIEW

Shift Register – Access Previous Loop Data• 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 LoopBegins

First Iteration

SecondIteration

LastIteration

Value 3InitialValue