430 likes | 439 Views
This tutorial covers the basic tools in the LabVIEW programming environment, including controls and indicators, wiring components, wire color scheme, broken wires, and using nodes for program execution.
E N D
CS320n –Visual Programming LabVIEW Foundations
What We Will Do Today • Hand back and review the midterm • Look at the basic tools in the LabVIEW programming environment LabVIEW Foundations
LabVIEW Programming Elements • Controls and Indicators arranged on palettes according to function • Controls = inputs (from user or other devices) = source terminals • Indicators = outputs = destinations or sinks • They are not interchangeable LabVIEW Foundations
Controls • On front panel • White background • values may be typed in • Increment / decrement control • can hide by right clicking, selecting visible items, and unchecking • On Block Diagram • thick border • arrow on right hand side, going out of icon LabVIEW Foundations
Indicators • On front panel • background is gray • no way to type in value • On block diagram • thin border • arrow on left hand side, going into icon • DBL indicates data type is a double, a number with a fractional component LabVIEW Foundations
Adding Components on Front Panel • Express view of palette • Change to advanced view by clicking options button and selecting Advanced from pull down menu for Palette View LabVIEW Foundations
Selecting Advanced View • Advanced View of front panelpalette • When mouse rolls over buttontitle of sub palette shown LabVIEW Foundations
Adding Components • Clicking on a button for a sub palette brings up that sub palette • Get back to the previous palette using the up arrow • right clicking on a palette button brings up the sub palette while keeping the original palette visible LabVIEW Foundations
Adding Components • Once correct component found click on it and drag to front panel • Adding to front panel places corresponding terminal on the block diagram • can alter characteristics of component by right clicking on it or • alter font by selecting text and change Text Settings • can change label and value in control / indicator LabVIEW Foundations
Making Things Pretty • Components on front Panel can be aligned and distributed • Select components by clicking mouse and dragging box around them align objects distribute objects resize objects LabVIEW Foundations
Wires • Data is moved around a LabVIEW program via wires • Wires are placed on the block diagram • Wires take information from controls to nodes and indicators • Wires are color coded based on the type of data they carry LabVIEW Foundations
Wire Color Scheme • Wires have a color and a width based on data type and data structure • data types • floating point numbers, integer numbers, Booleans, Strings • data structures • scalar (single value), array (list of values), 2D array (table of values) LabVIEW Foundations
Wire Color Scheme IntegerFloating Point Boolean String Scalar Array 2D Array LabVIEW Foundations
Wiring Components • LabVIEW has an automatic tool selection option. (Selected by default) • Cursor turns into tool necessary based on position of cursor • When cursor moved over terminal it becomes a spool of wire • click to start wiring • drag wire from one terminal to another LabVIEW Foundations
Adding Wires Wire Icon Wire from output of controlto input of indicator LabVIEW Foundations
Broken Wires • Errors in wiring are shown graphically • loose ends • incorrect data types • too many wires LabVIEW Foundations
Help • Context Help is a feature of LabVIEW to provide help based on the situation you are in • enable context help by pressing control and H or by selecting the “Help” menu and selecting “Show Context Help” • Tries to explain errors • shows information about icons / controls / indicators / data type of wire / sub VIs LabVIEW Foundations
Nodes • Nodes are program execution elements • Like actions in Alice or statements in text based languages • Nodes exist for all sorts of operations, from simple to complex • add • transpose the elements of a table LabVIEW Foundations
Data flow • LabVIEW programs are driven by data flow • operations are not performed until the data to perform them is available • Alice (and most text based languages) use sequential flow of control • statements executed in the order they appear in the program LabVIEW Foundations
Example of Data Flow • Which gets executed first the add operation or the divide operation? • The answer is, it depends. • On which operation has the data to perform the operation first • Sometimes when the program is run the add could be performed first and other times it could be the multiplication LabVIEW Foundations
Cascading Data Flow • Outputs of nodes can be feed to other nodes • (x + y) x y2 • multiplication not performed until addition complete LabVIEW Foundations
Multiple Inputs and Outputs • Operations (nodes) in LabVIEW can have more than input and more than one output • multiple outputs are like multiple parameters in an Alice method or function • Alice functions had no equivalent to the multiple outputs LabVIEW Foundations
Example of Multiple Inputs and Outputs • In Range and Coerce • 3 inputs, 2 outputs • explanation of inputs and outputs available on context help LabVIEW Foundations
sub VIs • As virtual instruments are created they can be used like the built in components • packaged into a sub program • create an icon with inputs and outputs • analogous to class level methods in Alice • code reuse • LabVIEW contains a large library of sub VIs LabVIEW Foundations
Example • Temperature conversion • Celsius to Fahrenheit • Degrees Fahrenheit = (1.8 * Degrees Celsius) + 32 • Input -> degrees Celsius • Output -> degrees Fahrenheit LabVIEW Foundations
Conversion Formula • Two ways to handle formula • Use the primitive nodes and numerical constants • Use the formula express option LabVIEW Foundations
First Option 1. 2. 3. 4. LabVIEW Foundations
Bad Wires • If a wire connection is bad the wire will not be solid, but a dashed line LabVIEW Foundations
Incorrect Programs • A LabVIEW program that has wiring (or other format errors) cannot be run • Clicking on the broken arrow brings up a list of errors • Clicking on an error displays more information about the error • Edit menu has “Remove Broken Wires” option or <Control B> LabVIEW Foundations
Adding Components Automatically • Some components can be added automatically instead of from a palette • In the temperature example • after adding the multiplication node right click on one input • from the pop up menu select “Create” and then “Constant” LabVIEW Foundations
Changing Labels • When component added to front panel it is given a default name • change name to be more descriptive • After entering text click off of control or press <shift-enter> to finish • Changes label on corresponding componen LabVIEW Foundations
Free Labels • Not attached to a component • For describing things about a program LabVIEW Foundations
Second Option LabVIEW Foundations
Formula Editor LabVIEW Foundations
Result of Second Option LabVIEW Foundations
Another Exercise • Simulate rolling a pair of dice LabVIEW Foundations
Expected Output? • What next? LabVIEW Foundations
Expected Output? LabVIEW Foundations
Rounding LabVIEW Foundations
Making Two Dice • Copy and paste many components LabVIEW Foundations
Finished Product LabVIEW Foundations
Always Another Way LabVIEW Foundations
Both Methods LabVIEW Foundations