Welcome! Workshop 1 of 7 Who am I? Dilim Nwobu Computer Engineering ‘12 Fall 2011 Software Developer for NI LabVIEW Student Ambassador for Texas A&M Certified LabVIEW Associate Developer Peer Teacher for ENGR 112 Track B Who are you? • Graduate or Undergraduate? • Engineering? A&S? • EE • BME • ME • CS • Heard of LabVIEW? Used LabVIEW? • Using LabVIEW for a project? National Instruments Leader in data acquisition technology with innovative modular instruments and LabVIEW graphical programming software Corporate headquarters in Austin, TX More than 40 international branches 5,100 employees More than 1,000 products 600 Alliance Partners Fortune’s 100 Best Companies to Work For Twelve Consecutive Years Dr. James Truchard Diversity of Applications No Industry > 10% of Revenue Telecom ATE Automotive Military/Aerospace Semiconductors Advanced Research Electronics Petrochemical Food Processing Computers Textiles LabVIEW Student Design Competition • Deadline: June 10 • Prizes • Popular Vote • First Prize: $750 USD • Second Prize: $500 USD • Third Prize: $250 USD • Critic Vote • Grand Prize: $2,000 USD • Trip to NI Week 2011 in Austin, TX http://www.ni.com/studentdesign/ Today's Topics What is LabVIEW? LabVIEW Environment LabVIEW Project Parts of a VI Menus & Palettes Configurations LabVIEW Data Types LabVIEW Data Flow What is LabVIEW? Laboratory Virtual Instrumentation Engineering Workbench Compiled graphical development environment Development time reduction of four to ten times Tools to acquire, analyze, and present your data Open and Run LabVIEW Start»All Programs»National Instruments LabVIEW 2009 » Start from a blank VI: New»Blank VI or Start from an example: Examples»Find Examples… Project Explorer Right Click! Use LabVIEW Projects to: • Group LabVIEW files and non-LabVIEW files • Create build specifications (i.e. stand-alone applications) • Deploy or download files to targets (i.e. FPGA target) 10 What is a Virtual Instrument (VI)? Answer: a LabVIEW program 1. Front Panel User interface (UI) – – Controls = inputs Indicators = outputs 2. Block Diagram Graphical source code – – Data travels on wires from control terminals through functions to indicator terminals Blocks execute by data flow 3. Icon/Connector Pane • Graphical representation of a VI • Means of connecting VIs (subVIs) * Conn. pane available from FP only Demonstration: Creating a new VI Front Panel Toolbar Context Help Reorder Resize Objects Distribute Objects Align Objects Text Settings Pause Abort Run Continuously Run It is best not to use the Abort button because you run the risk of not closing references or cleaning up memory correctly Front Panel Controls and Indicators Numeric String Boolean Right click! Customize Palette View Shortcut Menus and Properties Dialog Right Click! Context Help Clean Up Block Diagram Reorder Resize Objects Distribute Objects Align Objects Text Settings Step Out Step Over Step In Retain Wire Values Highlight Execution Pause Abort Run Continuously Run Block Diagram Toolbar Front Panel Block Diagram Block Diagram Terminals • Block Diagram appearance of front panel objects • Entry & exit ports that exchange information between the front panel and block diagram • Analogous to parameters and constants in textbased programming languages Wires • Transfer data between block diagram objects • Wires are different colors, styles, and thicknesses, depending on data type • A broken wire appears as a dashed black line with a red X in the middle DBL Numeric Numeric Scalar 1D Array 2D Array Integer String Block Diagram: Wiring Tips • Press <Ctrl>-B to delete all broken wires • Right-click and select Clean Up Wire to reroute the wire • Use the Clean Up Diagram tool to reroute multiple wires and objects to improve readability Select a section of your block diagram Click the Clean Up Diagram button on the block diagram toolbar (or <Ctrl>-U) 18 Block Diagram Nodes • Objects on the block diagram that have inputs and/or outputs and perform operations when a VI runs • Analogous to statements, operators, functions, and subroutines in text-based programming languages Functions subVIs Structures • Fundamental operating elements of LabVIEW • VI that you build to use inside another VI • While loops, for loops, event structures • Do not have front panels or block diagrams, but do have connector panes • Any VI has potential to become a subVI • More discussion later • Double-clicking a subVI will open it (exception: Express Vis- config. window opens) • Icon represents subVI in main VI • • Double-clicking a function only selects the function – does not open it like a VI Has a pale yellow background on its icon Common Data Types Found in LabVIEW Numeric Controls and Functions (Front Panel) From the Controls»Modern»Numeric subpalette, select the Numeric Control icon. (Block Diagram) From the Functions»Programming»Nu meric subpalette, select the Add icon. Mathematical Operations (Block Diagram) From the Functions»Mathematics»Integration and Differentiation subpalette, select the Derivative x(t).vi Boolean Controls and Functions (Front Panel) From the Controls»Modern»Boolean subpalette, select the Push Button icon. (Block diagram) From the Function»Programming»Bool ean subpalette, select the OR icon. String Controls and Functions (Front Panel) From the Controls»Modern»String subpalette, select the String Control icon. (Block diagram) From the Function»Programming»String subpalette, select the Concatenate icon. Demonstration : Using the Functions and Controls Palette Polymorphism Definition: a programming language feature that allows values of different data types to be handled using a uniform interface. In LabVIEW: the ability of VIs and functions to automatically adapt to accept input data of different data types i.e. Numeric Functions Useful when performing the same operation on different data types Data Flow Block diagram execution is 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 If the computer running this code had multiple processors, these two pieces of code could run independently without additional coding Demonstration 1: Creating a simple VI Exercise • Create a new VI with a front panel block diagram that looks like this one: (image also available at ni.com/tamu)