nullVirtual Instrumentation With LabVIEWVirtual Instrumentation With LabVIEWCourse GoalsCourse GoalsUnderstand the components of a Virtual Instrument
Introduce LabVIEW and common LabVIEW functions
Build a simple data acquisition application
Create a subroutine in LabVIEW
Section ISection ILabVIEW terms
Components of a LabVIEW application
LabVIEW programming tools
Creating an application in LabVIEWLabVIEW Programs Are Called Virtual Instruments (VIs)Front Panel
Controls = Inputs
Indicators = Outputs
Block Diagram
Accompanying “program” for front panel
Components “wired” togetherLabVIEW Programs Are Called Virtual Instruments (VIs)VI Front PanelVI Front PanelBoolean
ControlDouble
IndicatorWaveform GraphPanel ToolbarVI Block DiagramVI Block DiagramNumeric ConstantThermometer
TerminalCall to
subVIWhile LoopKnob
TerminalStop Button
TerminalStop Loop
TerminalTemperature
GraphControls and Functions PalettesControls and Functions PalettesGraphical, floating palettes
Used to place controls & indicators on the front panel, or to build the block diagramControls Palette
(Panel Window)Functions Palette
(Diagram Window)Tools PaletteOperating Tool
Positioning/Resizing Tool
Labeling Tool
Wiring Tool
Shortcut Menu Tool
Floating Palette
Used to operate and modify front panel and block diagram objects.Scrolling Tool
Breakpoint Tool
Probe Tool
Color Copy Tool
Coloring ToolTools PaletteAutomatic Selection ToolStatus ToolbarRun Button
Continuous Run Button
Abort Execution
Pause/Continue Button
Text Settings
Align Objects
Distribute Objects
ReorderExecution Highlighting Button
Step Into Button
Step Over Button
Step Out Button
Additional Buttons on the Diagram ToolbarStatus ToolbarnullDo Not Delete This SlideOpen and Run a Virtual InstrumentOpen and Run a Virtual Instrument Signal Generation
and Processing.vi
Help » Find Examples…
Browse According to: Task
Analyzing and Processing Signals
Signal Processing
Signal Generation and Processing.viCreating a VIControl
Terminals Block Diagram WindowFront Panel WindowIndicator
TerminalsCreating a VICreating a VI – Block DiagramCreating a VI – Block DiagramAfter Creating Front Panel Controls and Indicators, Switch to Block Diagram
Move Front Panel Objects to Desired Locations Using the Position/Size/Select Tool
Place Functions On Diagram
Wire Appropriate Terminals Together to Complete the DiagramWiring Tips – Block DiagramWiring Tips – Block DiagramWiring “Hot Spot”Click While Wiring To Tack Wires DownSpacebar Flips Wire OrientationClick To Select WiresnullDo Not Delete This SlideDataflow ProgrammingDataflow ProgrammingBlock 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 doneHelp OptionsHelp OptionsContext Help
Online help
Lock help
Simple/Complex Diagram help
Ctrl + H
Online reference
All menus online
Pop up on functions in diagram to access online info directlynullDo Not Delete This SlideExercise 1 - Convert °C to °FExercise 1 - Convert °C to °FDebugging TechniquesDebugging TechniquesFinding Errors
Execution Highlighting
ProbeClick on broken Run button
Window showing error appearsClick on Execution Highlighting button; data flow is animated using bubbles. Values are
displayed on wires.Right-click on wire to display probe and it shows data as it flows through wire segment
You can also select Probe tool from Tools palette and click on wireSection II – SubVIsSection II – SubVIsWhat is a subVI?
Making an icon and connector for a subVI
Using a VI as a subVISubVIsSubVIsA SubVI is a VI that can be used within another VI
Advantages
Modular
Easier to debug
Don’t have to recreate code
Require less memoryIcon and ConnectorIcon and ConnectorAn icon represents a VI in other block diagrams
A connector shows available terminals for data transfer
SubVIsSubVIsSubVIsSteps to Create a SubVISteps to Create a SubVICreate the Icon
Create the Connector
Assign Terminals
Save the VI
Insert the VI into a Top Level VICreate the IconCreate the IconRight-click on the icon in the diagram or front panelCreate the ConnectorCreate the ConnectorRight click on the icon pane (front panel only)Assign TerminalsAssign TerminalsSave The VISave The VIChoose an Easy to Remember Location
Organize by Functionality
Save Similar VIs into one directory (e.g. Math Utilities)
Organize by Application
Save all VIs Used for a Specific Application into one directory or library file (e.g. Lab 1 – Frequency Response)
Library Files (.llbs) combine many VI’s into a single file, ideal for transferring entire applications across computers
Insert the SubVI into a Top Level VIInsert the SubVI into a Top Level VIAccessing user-made subVIs
Functions >> Select a VI
Or
Drag icon onto target diagramTips for Working in LabVIEWTips for Working in LabVIEWKeystroke Shortcuts
– Activate/Deactivate Context Help Window
– Remove Broken Wires From Block Diagram
– Toggle Between Front Panel and Block Diagram
– Undo (Also in Edit Menu)
Tab Key – Toggle Through Tools on Toolbar
Tools » Options… – Set Preferences in LabVIEW
VI Properties – Configure VI Appearance, Documentation, etc.Section III – Data AcquisitionSection III – Data AcquisitionData acquisition (DAQ) basics
Connecting Signals
Simple DAQ applicationDAQ – Data AcquisitionDAQ – Data AcquisitionPlug-in board for a computer with:
Analog input channels
Analog output channels
Counters
Digital I/O
Controlled by a suite of LabVIEW VIs
Functions>>Data AcquisitionDAQ – Data AcquisitionDAQ – Data AcquisitionSimple Temperature Acquisition Example
Two parameters
Device = 1
Channel = 0Data Acquisition TerminologyData Acquisition TerminologyResolution - Determines How Many Different Voltage Changes Can Be Measured
Larger Resolution More Precise Representation of Signal
Range - Minimum and Maximum Voltages
Smaller range More Precise Representation of Signal
Gain - Amplifies or Attenuates Signal for Best Fit in RangenullDo Not Delete This SlideHardware ConnectionsHardware ConnectionsBNC-2120SCB-68SC-2075Exercise 2 – Simple Data AcquisitionExercise 2 – Simple Data AcquisitionComplete Convert C to F.vi, then create Thermometer.vi.nullDo Not Delete This SlideSection IV – Loops and ChartsSection IV – Loops and ChartsFor Loop
While Loop
Charts
MultiplotsLoopsLoopsWhile Loops
Have Iteration Terminal
Always Run Once
Run According to Continue TerminalFor Loops
Have Iteration Terminal
Run According to input NLoops (cont.)Loops (cont.)Select the loop
Enclose Code to RepeatFor LoopChartsChartsWaveform chart – special numeric indicator that can display a history of values
Controls >> Graphs >> Waveform ChartWiring Data into ChartsWiring Data into ChartsSingle Plot ChartsMultiplot ChartsExercise 3 – Monitoring Temperature Exercise 3 – Monitoring Temperature Students build Temperature Monitor.vi.Section V – Arrays & File I/OSection V – Arrays & File I/OBuild arrays manually
Have LabVIEW build arrays automatically
Write to a spreadsheet file
Read from a spreadsheet fileAdding an Array to the Front PanelAdding an Array to the Front PanelFrom the Controls >> Array and Cluster subpalette, select the Array Shell Drop it on the screen.Adding an Array (cont.)Adding an Array (cont.)Place data object into shell (e.g. digital control).Creating an Array with a LoopCreating an Array with a LoopLoops accumulate arrays at their boundariesCreating 2D ArraysCreating 2D ArraysFile I/OFile I/ORead/write to spreadsheet file
Read/write characters to file (ASCII)
Read lines from file
Read/write binary file Easy File I/O VIsnullDo Not Delete This SlideFile I/O ExampleFile I/O ExampleWriting a 2D Array to FileFile I/O ExampleFile I/O ExampleReading a 2D Array from a FileExercise 4 – Analyzing and Logging DataExercise 4 – Analyzing and Logging DataStudents build Temperature Logger.viSection VI – Array Functions & GraphsSection VI – Array Functions & GraphsBasic Array Functions
Use graphs
Create multiplots with graphsArray Functions – BasicsArray Functions – BasicsArray Functions – Build ArrayArray Functions – Build ArrayGraphsGraphsSelected from the Graph palette of Controls menuWaveform Graph – Plot an array of numbers against their indices
XY Graph – Plot one array against another
Digital Waveform Graph – Plot bits from binary datanullDo Not Delete This SlideGraphsGraphsRight-Click on the Graph to CustomizeExercise 5 – Using Waveform GraphsExercise 5 – Using Waveform GraphsSection VII – Strings, Clusters, & Error HandlingSection VII – Strings, Clusters, & Error Handling
StringsStrings
A string is a sequence of displayable or nondisplayable characters (ASCII)
Many uses – displaying messages, instrument control, file I/O
String control/indicator is in the Controls»String subpaletteClustersClustersData structure that groups data together
Data may be of different types
Analogous to struct in C
Elements must be either all controls or all indicators
Thought of as wires bundled into a cable Creating a ClusterCreating a Cluster1. Select a Cluster shell from the Array & Cluster subpalette2. Place objects inside the shellCluster FunctionsCluster FunctionsIn the Cluster subpalette of the Functions palette
Can also be accessed by right-clicking on the cluster terminalBundle(Terminal labels reflect data type)Bundle By NameCluster FunctionsCluster FunctionsUnbundleUnbundle By NameUnbundled cluster in the diagramError ClustersError ClustersError cluster contains the following information:
Boolean to report whether error occurred
Integer to report a specific error code
String to give information about the errorError Handling TechniquesError Handling TechniquesError information is passed from one subVI to the next
If an error occurs in one subVI, all subsequent subVIs are not executed in the usual manner
Error Clusters contain all error conditionserror clustersSection VIII - Case & Sequence Structures, Formula NodesSection VIII - Case & Sequence Structures, Formula NodesCase StructuresCase StructuresIn the Structures subpalette of Functions palette
Enclose nodes or drag them inside the structure
Stacked like a deck of cards, only one case visibleExercise 6 – Error Clusters & HandlingExercise 6 – Error Clusters & HandlingSequence StructuresSequence StructuresIn the Structures subpalette of Functions palette
Executes diagrams sequentially, Frame 0 (0..x), where x is the total number of frames
Stacked like a deck of cards, only one frame visibleSequence LocalsSequence LocalsPass data from one frame to future frames
Created at the border of the Sequence structureSequence local
created in
Frame 1Data not
availableData
availableFormula NodesFormula NodesIn the Structures subpalette
Implement complicated equations
Variables created at border
Variable names are case sensitive
Each statement must terminate with a semicolon (;)
Context Help Window shows available functionsNote semicolonSection IX – Printing & DocumentationSection IX – Printing & DocumentationPrint From File Menu to Printer, HTML, Rich Text File
Programmatically Print Graphs or Front Panel Images
Document VIs in VI Properties » Documentation Dialog
Add Comments Using Free Labels on Front Panel & Block DiagramPrintingPrintingFile » Print… Gives Many Printing Options
Choose to Print Icon, Front Panel, Block Diagram, VI Hierarchy, Included SubVIs, VI History
Print Panel.vi (Functions » Application Control) Programmatically Prints a Front Panel
Generate & Print Reports (Functions » Report Generation)
Search in Find Examples for Report GenerationDocumenting VIsDocumenting VIsVI Properties » Documentation
Provide a Description and Help Information for a VI
VI Properties » Revision History
Track Changes Between Versions of a VI
Individual Controls » Description and Tip…
Right Click to Provide Description and Tip Strip
Use Labeling Tool to Document Front Panels & Block DiagramsSection X – Basic Programming ArchitectureSection X – Basic Programming ArchitectureSimple VI Architecture
General VI Architecture
State Machine Architecture
Simple VI ArchitectureSimple VI ArchitectureFunctional VI that produces results when run
No “start” or “stop” options
Suitable for lab tests, calculations
Example: Convert C to F.viGeneral VI ArchitectureGeneral VI ArchitectureThree Main Steps
Startup
Main Application
ShutdownState Machine ArchitectureState Machine ArchitectureAdvantages
Can go from any state from any other
Easy to modify and debug
Disadvantages
Can lose events if two occur at the same timeStates:
0: Startup
1: Idle
2: Event 1
3: Event 2
4: ShutdownExercise 7 – Simple State MachineExercise 7 – Simple State MachinenullDo Not Delete This SlideSection XI – Remote Front PanelsSection XI – Remote Front PanelsView & Control LabVIEW Front Panels from a Web Browser
Requires no programming
Remote clients see “live” front panel updates
Multiple clients can view the same panel simultaneously
Only one client can control the front panel at a timeRemote Panel Web Publishing ToolRemote Panel Web Publishing ToolTools » Web Publishing Tool…Click Save to Disk and VI is Embedded into an Html File
After File is Saved, It Can Be Reopened and Customized in Any Html EditorRemote Front Panels - ResourcesRemote Front Panels - ResourcesNI Developer Zone (zone.ni.com)
Search for Remote Front Panel
Tutorials & Instructions Are Available for Download
Information on Incorporating Web Cameras into Remote Panel ApplicationsSection XII – Additional TopicsSection XII – Additional TopicsProperty Nodes
Local Variables
Global Variables
DataSocket
Binary File I/OWhere Do I Go From Here?Where Do I Go From Here?Example programs (Help» Find Examples…)
LabVIEW Student Edition (www.ni.com/labviewse)
Web resources (ni.com)
NI Developer Zone (zone.ni.com)
Application Notes
Info-labview newsgroup (www.info-labview.org/)
Instrument Driver Library (www.ni.com/idnet)