workshop 3 of 7 welcome!. today's topics review of workshop 2 loops while for auto-indexing...

45
Workshop 3 of 7 Welcome!

Upload: pauline-beasley

Post on 25-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Workshop 3 of 7

Welcome!

Page 2: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Today's Topics

Review of Workshop 2

Loops While For Auto-indexing Shift registers

Case Structure

Page 3: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

True or False?

1. Arrays can contain only one data type.

2. An array must contain at least one element.

3. The Bundle function can be used to add elements to a cluster.

4. Clusters can contain both controls and indicators within the same shell; however, arrays cannot.

5. It is possible to have clusters containing arrays as well as arrays containing clusters.

3

Review Question 1

Page 4: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

True or False?

1. Arrays can contain only one data type. TRUE

2. An array must contain at least one element. FALSE

3. The Bundle function can be used to add elements to a cluster. FALSE

4. Clusters can contain both controls and indicators within the same shell; however, arrays cannot. FALSE

5. It is possible to have clusters containing arrays as well as arrays containing clusters. TRUE

4

Review Question 1

Page 5: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

The Error Cluster contains which of the following?

a) Boolean

b) Array

c) String

d) Numeric

e) Cluster

5

Review Question 2

Page 6: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

The Error Cluster contains which of the following?

a) Boolean - status

b) Array

c) String - source

d) Numeric - code

e) Cluster

6

Review Question 2

Page 7: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

An enumeration is a list of ___ and ___ pairs and acts like a ____ to the computer and ____ to the user.

a) integer, string, integer, string

b) Boolean, string, boolean, string

c) Boolean, integer, boolean, integer

d) integer, string, string, integer

7

Review Question 3

Page 8: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

An enumeration is a list of ___ and ___ pairs and acts like a ____ to the computer and ____ to the user.

a) integer, string, integer, string

b) Boolean, string, boolean, string

c) Boolean, integer, boolean, integer

d) integer, string, string, integer

8

Review Question 3

Page 9: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 1

If I add a new element to an enum that is saved in a *.ctl file, how would the file need to be saved in order to update all of instances

a) Custom control

b) Strict Type Definition

c) Type Definition

Page 10: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 1

If I add a new element to an enum that is saved in a *.ctl file, how would the file need to be saved in order to update all of instances

a) Custom control

b) Strict Type Definition

c) Type Definition

Page 11: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 2

Which of the following always remain unique to each instance?

a) Label

b) Default value

c) Size

d) Data type

e) Representation (numerics)

f) Description

Page 12: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 2

Which of the following always remain unique to each instance?

a) Label

b) Default value

c) Size

d) Data type

e) Representation (numerics)

f) Description

Page 13: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 3

True or False?

A custom control can only be used for the project within which it was created.

Page 14: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Review Question 3

True or False?

A custom control can only be used for the project within which it was created.

FALSE

Page 15: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• Use loops when you want to repeat a section of code

• Types:• While – repeats until a condition is met

• For – repeats for X number of iterations

15

Loops

Page 16: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

While Loops• terminal counts the number of iterations; zero indexed• Always runs at least once (therefore, really a do-while loop)

• Runs until stop condition is met• Stop if TRUE• Continue if TRUE

While Loop

Iteration terminal

Conditional terminal

Page 17: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

For Loops• i Terminal counts iterations• Runs according to input N of count terminal

For Loop

i = zero indexed N = one indexed

Iteration terminal

Countterminal

Page 18: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Creating a Loop

1. Select the structure

2. Enclose code to be repeated

3. Drop or drag additional nodes and then wire

Page 19: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Demonstration: Creating a Loop

Page 20: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

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

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

Page 21: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• If an array is passed into a For Loop and auto-indexing is enabled, the number of elements in the array determines the number of iterations of the For Loop (therefore, you are not required to wire the N terminal)

• If the iteration count terminal is wired and arrays of different sizes are wired to auto-indexed tunnels, the actual number of iterations is the smallest of the choices.

Auto-Indexing Input

Page 22: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Shift Registers - Access Previous Loop Data

• Come in pairs that are always aligned with each other • Available at left and right borders of loop structures• To create:

• Right-click the border and select Add Shift Register• Right-click an existing tunnel, select Replace with Shift Register,

and click the opposite loop border to create other half of pair

Right terminal stores data on completion of current iteration

Left terminal provides stored data at beginning of next iteration

“Up and around the loop”

Page 23: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Shift Registers in action

First Iteration

SecondIteration

LastIteration

Value 15Initial

Value

Before LoopBegins

Page 24: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Stacked Shift Registers• Registers remember values from multiple previous iterations

and carry those values to the next iterations • Values “bump down” with each iteration• To create:

• Right-click » Add Element• Expand the left side register (down arrows) up or down by

dragging the small square when the mouse is a double arrow

InitialValue Note: Still only

1 register on right side

Page 25: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Block Diagram 1st run 2nd run

InitializedShiftRegister

Output = 5 Output = 5

Not InitializedShiftRegister

Output = 4 Output = 8

VI finishes Run againRun once

Shift Registers - Uninitialized

Page 26: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Demonstration: Operation of a Shift Register

Page 27: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Case Structure

• Have two or more subdiagrams or cases

• Execute and displays only one case at a time

• An input value determines which subdiagram to execute

• Similar to case statements or if...then...else statements in text-based programming languages

Case Selector Label

Selector Terminal

Page 28: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• You can create multiple input tunnels

• Inputs are available to all cases, but do not have to be used in all cases

Case Structure: Inputs

Page 29: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• You can create multiple output tunnels

• You must define each output tunnel for each case, otherwise

• Wire every case (2)

• Right-click » Use Default If Unwired (3)

Case Structure: Outputs

Data Type Default Value

Numeric 0

Boolean FALSE

String Empty

(1) (2) (3)

Page 30: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Case Structure

Page 31: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

If the error cluster is wired to the selector, the border of the case structure automatically turns red or green for the error and non-error cases, respectively

Case Structure

Holy automatic coloring, Batman!

Page 32: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Demonstration: Creating a Case Structure and Adding a Case

Page 33: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Diagram Disable Structure

Use to disable a section of code on the block diagram Multiple subdiagrams possible – maximum of one enabled

Disabled subdiagrams appear grayed out

Great tool for troubleshooting – don’t have to re-write code

Page 34: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Conditional Disable Structure

Use to define conditions that indicate which code on the block diagram executes

Examples: If running as an executable, then programmatically close

LabVIEW when VI finishes If running on Windows, look for file here; if running on Mac OSX

then look here.

Page 35: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Events

Event — An asynchronous notification that something has occurred

• Events originate from the user interface, external I/O, or other parts of the program

Example events:

35

• Button click• Value change• Mouse over

• Key press

Page 36: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Event Structure

Event Structure — LabVIEW’s programmatic tool for handling events.

• Therefore, execution of code can be dependent on whether or not an event has occurred

36

• Waits for an event to occur indefinitely, unless configured to timeout.

Page 37: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Parts of an Event Structure

37

Timeout Event Selector Label

Event Data Node Event Filter Node

• Event Data Node Identifies the data LabVIEW provides when the event occurs; similar to the Unbundle By Name function

• Event Filter Node Identifies the subset of data available in the Event Data node that the event case can modify

Page 38: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Notify Events• User action has already occurred• LabVIEW has processed the event• Available only in the Event Data node

Filter Events• User action has already occurred• LabVIEW has NOT processed the event• Allows you to override default behavior for event• Available in the Event Filter node and Event Data node

Notify and Filter Events

Page 39: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Right-click the border and select Edit Events Handled by This Case

To Configure an Event Structure…

Page 40: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

EventsEvent Sources

Configured Events

Configuring Event Structures

Page 41: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Notify Events (green arrow)User action has already occurred

Filter Events (red arrow)User performed action but event is not processed. Allows you to customize event handling.

Notify and Filter Events in Config. Window

Page 42: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• Normally used in a While Loop

• Control/Indicator the event configured for is often placed inside that event case

• Event structure handles exactly one event per iteration

• Sleeps when no events occur

Using Event Structures

Page 43: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Event Structures Tips

• If no timeout is configured and an event never occurs – stuck waiting indefinitely, must abort VI; therefore, wire the timeout terminal with a value other than -1 (at least while developing)

• “heavy” code within the Event Structure causes the front panel to lock up, often confusing the user – try to keep code in an event case to a minimum

Page 44: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

Demonstration: Configuring an Event

Page 45: Workshop 3 of 7 Welcome!. Today's Topics Review of Workshop 2 Loops While For Auto-indexing Shift registers Case Structure

• Homework 3 is post at ni.com/mst

• Create a Game

• Student Zone has a lot of ideas

• Email to [email protected]

Homework