Lvcore1 Participantguide English
Lvcore1 Participantguide English
Lvcore1 Participantguide English
Participant Guide
Copyright
19932014 National Instruments. All rights reserved.
Under the copyright laws, this publication may not be reproduced or transmitted in any form,
electronic or mechanical, including photocopying, recording, storing in an information retrieval
system, or translating, in whole or in part, without the prior written consent of National Instruments
Corporation.
National Instruments respects the intellectual property of others, and we ask our users to do the
same. NI software is protected by copyright and other intellectual property laws. Where NI software
may be used to reproduce software or other materials belonging to others, you may use NI
software only to reproduce materials that you may reproduce in accordance with the terms of any
applicable license or other legal restriction.
Trademarks
Refer to the NI Trademarks and Logo Guidelines at ni.com/trademarks for more information
on National Instruments trademarks.
ARM, Keil, and Vision are trademarks or registered of ARM Ltd or its subsidiaries. LEGO,
the LEGO logo, WEDO, and MINDSTORMS are trademarks of the LEGO Group. TETRIX
by Pitsco is a trademark of Pitsco, Inc.
FIELDBUS FOUNDATION and FOUNDATION are trademarks of the Fieldbus Foundation.
EtherCAT is a registered trademark of and licensed by Beckhoff Automation GmbH.
CANopen is a registered Community Trademark of CAN in Automation e.V.
DeviceNet and EtherNet/IP are trademarks of ODVA.
Go!, SensorDAQ, and Vernier are registered trademarks of Vernier Software & Technology.
Vernier Software & Technology and vernier.com are trademarks or trade dress.
Xilinx is the registered trademark of Xilinx, Inc.
Taptite and Trilobular are registered trademarks of Research Engineering & Manufacturing Inc.
FireWire is the registered trademark of Apple Inc.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Handle Graphics, MATLAB, Real-Time Workshop, Simulink, Stateflow, and xPC
TargetBox are registered trademarks, and TargetBox and Target Language Compiler are
trademarks of The MathWorks, Inc.
Tektronix, Tek, and Tektronix, Enabling Technology are registered trademarks of Tektronix, Inc.
The Bluetooth word mark is a registered trademark owned by the Bluetooth SIG, Inc.
The ExpressCard word mark and logos are owned by PCMCIA and any use of such marks by
National Instruments is under license.
The mark LabWindows is used under a license from Microsoft Corporation. Windows is a
registered trademark of Microsoft Corporation in the United States and other countries.
Other product and company names mentioned herein are trademarks or trade names of their
respective companies.
Members of the National Instruments Alliance Partner Program are business entities independent
from National Instruments and have no agency, partnership, or joint-venture relationship with
National Instruments.
Patents
For patents covering National Instruments products/technology, refer to the appropriate location:
HelpPatents in your software, the patents.txt file on your media, or the National Instruments
Patent Notice at ni.com/patents.
Worldwide Offices
Visit ni.com/niglobal to access the branch office websites, which provide up-to-date
contact information, support phone numbers, email addresses, and current events.
Table of Contents
Student Guide
A.
B.
C.
D.
E.
NI Certification ....................................................................................
Course Description ...............................................................................
What You Need to Get Started ..............................................................
Installing the Course Software ...............................................................
Course Goals.......................................................................................
Lesson 1
Navigating LabVIEW
A.
B.
C.
D.
E.
Exercise 1-1
F.
Exercise 1-2
Lesson 2
Creating Your First Application
A.
B.
C.
Exercise 2-1
D.
Exercise 2-2
Dataflow
LabVIEW Data Types............................................................................
Tools for Programming, Cleaning and Organizing Your VI ..........................
Building a Basic VI ...............................................................................
Lesson 3
Troubleshooting and Debugging VIs
A.
B.
Exercise 3-1
C.
Lesson 4
Using Loops
A.
B.
Exercise 4-1
C.
D.
Timing a VI .........................................................................................
National Instruments
Table of Contents
| iii
E.
Exercise 4-2
F.
Exercise 4-3
Lesson 5
Creating and Leveraging Data Structures
A.
B.
C.
D.
Exercise 5-1
E.
Exercise 5-2
F.
Exercise 5-3
Arrays ...............................................................................................
Type Definitions..................................................................................
Lesson 6
Using Decision-Making Structures
A.
Exercise 6-1
B.
Exercise 6-2
Lesson 7
Modularity
A.
B.
C.
D.
E.
Exercise 7-1
Lesson 8
Acquiring Measurements from Hardware
A. Measurement Fundamentals with NI DAQ Hardware................................
Exercise 8-1
Exercise 8-2
B. Automating Non-NI Instruments ............................................................
Exercise 8-3
Exercise 8-4
Lesson 9
Accessing Files in LabVIEW
A.
B.
Exercise 9-1
Exercise 9-2
C.
Lesson 10
iv | ni.com
Appendix A
Additional Information and Resources
National Instruments
| v
Student Guide
In this student guide, you will learn about the LabVIEW
Learning Path, the course description, and the items you
need to get started in the LabVIEW Core 1 course.
Topics
+
NI Certification
Course Description
Course Goals
A. NI Certification
The LabVIEW Core 1 course is part of a series of courses designed to build your proficiency with
LabVIEW and help you prepare for the NI Certified LabVIEW Associate Developer exam. The
following illustration shows the courses that are part of the LabVIEW training series. Refer to
ni.com/training for more information about NI Certification.
LabVIEW
Getting Started
B. Course Description
The LabVIEW Core 1 course teaches you programming concepts, techniques, features, VIs, and
functions you can use to create test and measurement, data acquisition, instrument control,
datalogging, measurement analysis, and report generation applications. This course assumes that
you are familiar with Windows and that you have experience writing algorithms in the form of
flowcharts or block diagrams.
The Participant Guide is divided into lessons. Each lesson contains the following:
An introduction with the lesson objective and a list of topics and exercises.
Note For Participant Guide updates and corrections, refer to ni.com/info and
enter the Info Code core1.
Several exercises use a plug-in multifunction data acquisition (DAQ) device connected to a DAQ
Signal Accessory or BNC-2120 containing a temperature sensor, function generator, and LEDs.
If you do not have this hardware, you still can complete the exercises. Alternate instructions are
provided for completing the exercises without hardware. You also can substitute other hardware
for those previously mentioned. For example, you can use another National Instruments DAQ
device connected to a signal source, such as a function generator.
National Instruments
| ix
Student Guide
Multifunction DAQ device configured as Dev1 using Measurement & Automation Explorer
(MAX)
DAQmx 14 or later
A GPIB cable
NI-488.2 14 or later
LabVIEW Core 1 course CD, from which you install the following folders:
Directory
Exercises
Solutions
Insert the course CD in your computer. The LabVIEW Core 1 Course Setup dialog box
appears.
Click Install the course materials.
3.
Note Folder names in angle brackets, such as <Exercises>, refer to folders on the
root directory of your computer.
E. Course Goals
This course prepares you to do the following:
x | ni.com
Use the programming structures and data types that exist in LabVIEW
Every built-in VI, function, or object; refer to the LabVIEW Help for more information about
LabVIEW features not described in this course
Analog-to-digital (A/D) theory
Developing a complete application for any student in the class; refer to the NI Example
Finder, available by selecting HelpFind Examples, for example VIs you can use and
incorporate into VIs you create
National Instruments
| xi
Navigating
LabVIEW
What is LabVIEW?
Project Explorer
Parts of a VI
Front Panel
Block Diagram
Exercises
Exercise 1-1
Concept: Exploring a VI
Exercise 1-2
A. What is LabVIEW?
Objective:
Benefits of LabVIEW
National Instruments
| 1-3
Lesson 1
Navigating LabVIEW
Memory-managed
Synchronous
Event-driven
Allows the user's direct interaction with the program without
the need for polling.
B. Project Explorer
Objective:
Project Explorer
Projects in LabVIEW consist of VIs, files necessary for those VIs to run
properly, and supplemental files such as documentation or related
links. Use the Project Explorer window to manage projects in
LabVIEW. A LabVIEW project is denoted by a project file (.lvproj)
LabVIEW Files
Listed below are some of the characteristics of a LabVIEW project.
Can integrate LabVIEW programs with source code control software such as Perforce
Common LabVIEW File Extensions
LabVIEW Project .lvproj
Virtual Instrument (VI) .vi
Custom Control .ctl
1-4
| ni.com
Project rootContains all other items in the Project Explorer window. The label on the
project root includes the filename for the project.
My ComputerRepresents the local computer as a target in the project.
Build SpecificationsIncludes build configurations for source distributions and other types
of builds available in LabVIEW toolkits and modules. If you have the LabVIEW Professional
Development System or Application Builder installed, you can use Build Specifications to
configure stand-alone applications, shared libraries, installers, and zip files.
When you add another target to the project, LabVIEW creates an additional item in the Project
Explorer window to represent the target. Each target also includes Dependencies and Build
Specifications sections. You can add files under each target.
1
1
2
3
4
Standard Toolbar
Project Toolbar
Build Toolbar
Source Control Toolbar
Tip The Source Control toolbar is only available if you have source control
configured in LabVIEW.
1
2
Auto-populating folder
Virtual folder
C. Parts of a VI
Objective:
Recognize and understand the difference between the front panel and block
diagram.
Demonstration: Components of a VI
LabVIEW VIs contain three main componentsthe front panel window, the block diagram, and the
icon/connector pane.
Front Panel
Is the user interface.
1-6
| ni.com
D. Front Panel
Objective:
Recognize the components and functionality of the Front Panel window and
select appropriate controls and indicators
Front Panel
User interface for the VI. Contains controls and indicators, which are
the interactive input and output terminals of the VI, respectively.
1-8
| ni.com
National Instruments
| 1-9
Lesson 1
Navigating LabVIEW
E. Block Diagram
Objective:
Block Diagram
1-10
| ni.com
Nodes
Function Nodes
(Functions)
SubVIs
Icon
Connector Pane
Express VIs
Express VIs are a type of subVI that you configure with dialog boxes. Icons for Express VIs
appear on the block diagram as icons surrounded by a blue field.
Nodes Appearance
You can display VIs and Express VIs as either icons or expandable nodes. Use icons if you want to
conserve space on the block diagram. By default, subVIs appear as icons on the block diagram, and
Express VIs appear as expandable nodes.
To display a subVI or Express VI as an expandable node, right-click the subVI or Express VI and remove
the checkmark next to the View As Icon shortcut menu item.
Icon
Expandable Node
Expanded Node
Wires
Wires transfer data between block diagram objects. A broken wire appears as a dashed black line with a
red X in the middle. You cannot run a VI that contains a broken wire.
Broken wires occur for a variety of reasons, such as when you try to wire two objects with incompatible
data types.
Common Wire Types
Wire Type
Numeric
Boolean
String
1-12
| ni.com
To toggle display of the Context Help window select HelpShow Context Help, press the
<Ctrl-H> keys, or click the Show Context Help Window button on the toolbar.
LabVIEW Help
You can access the LabVIEW Help by clicking the More Help button in the Context Help
window, selecting HelpLabVIEW Help, or clicking the blue Detailed Help link in the Context
Help window. You also can right-click an object and select Help from the shortcut menu.
National Instruments
| 1-13
Lesson 1
Navigating LabVIEW
Examples
Use the NI Example Finder to browse or search examples installed on your computer or on the NI
Developer Zone at ni.com/zone. These examples demonstrate how to use LabVIEW to perform
a wide variety of test, measurement, control, and design tasks. Select HelpFind Examples to
launch the NI Example Finder.
1-14
| ni.com
Description
You received a VI from an employee that takes the seconds until a plane
arrives at an airport and converts the time into a combination of
hours/minutes/seconds. You must evaluate this VI to see if it works as
expected and can display the remaining time until the plane arrives.
1.
2.
3.
On the front panel, identify the following items. How many can you find of each
item?
Controls
Indicators
Free labels
Run button
Icon
Connector pane
4.
Core
Press <Ctrl-T> to view the front panel and block diagram at the same time or
select WindowTile Up and Down or WindowTile Left and Right.
Tip To switch between the front panel window and the block diagram
without tiling the windows, press <Ctrl-E>.
5.
On the block diagram, identify the following items. How many can you find of each
item?
Controls
Indicators
Constants
Free labels
|16-1
.ni
com
8.
Refer to Figures 1-1 and 1-2 to verify that you identified all items correctly.
Figure 1-1. Front
Panel Items
3
4
5
1
4
Indicators
Connector Pane
2
5
Control
Icon
Run Button
3
5
1
5
Free Labels
Numeric Constants
9.
Control
Indicators
String Constants
Test the Seconds Breakdown VI using the values given in Table 1-1.
Enter an input value in the Total Time in Seconds control.
For each input, compare the given outputs to the outputs listed in Table 1-1. If the VI works
correctly, they should match.
Table 1-1. Testing Values for Seconds Breakdown.vi
Input
0 seconds
60 seconds
3600 seconds
3665 seconds
10. Save and close the VI and the LabVIEW Project.
|InstrumentsNational
19-1
Lesson 1
Navigating LabVIEW
1-20
| ni.com
Functions Palette
The Functions palette contains the VIs, functions and constants you use to create the block
diagram. Select ViewFunctions Palette to display it.
Navigate the subpalettes or use the Search button to search the Functions palette.
Figure 1-4. Functions Palette
Quick Drop
The Quick Drop dialog box lets you quickly find controls, functions, VIs, and other items by
name. Press the <Ctrl-Space> keys to display the Quick Drop dialog box.
Global Search
Use the Search bar in the top right of the front panel and block diagram windows to search
palettes, LabVIEW Help, and ni.com.
National Instruments
| 1-21
Description
1.
Click Finish.
2.
3.
Select ViewControls Palette from the menu of the VI front panel window.
4.
5.
Notice that the three palettes you just selected now appear in the Controls window.
Explore the Controls palette.
Use palettes to locate controls and functions when you want to explore the options available to you or when you
are not sure of the name of the control or function you need.
Click String Control (Silver) in the search results and drag it to the front panel window to place the object.
6.
Tip You can customize the Functions palette just like you customized the Controls palette.
7.
8.
Use the Quick Drop feature when you know the name of the function or VI you want to use.
Press <Ctrl-Space> to open the Quick Drop dialog box.
Type Bundle By Name and double-click Bundle By Name in the search results. The cursor changes to a
hand with the Bundle By Name function.
Click on the block diagram to place the Bundle By Name function.
Double-click the function in the search results and place the function on the block diagram.
9.
Note As you type, the global search automatically looks for matches in the LabVIEW Help and LabVIEW
palettes. It also searches for online material related to your query.
Hover the mouse over the first result in the Palette section, Random Number (0-1). You now see the fo
|24-1
.ni
Right-click the Add function and notice that Numeric palette is available from the shortcut menu.
Practice placing functions from the Numeric palette on the block diagram.
11. Close the VI and LabVIEW project. You do not need save the files.
Additional Resources
Learn More About
Project Explorer
Front Panel
National Instruments
| 1-25
Front panel
b.
Block diagram
c.
Project
d.
Icon/Connector pane
National Instruments
| 1-27
Front panel
b.
Block diagram
c.
Project
d.
Icon/Connector pane
National Instruments
| 1-29
2 Creating Your
First Application
In this lesson you will learn to use Express VIs to produce a
project and create a simple VI that acquires and analyzes
data and then displays the results.
Topics
+
Dataflow
Building a Basic VI
Exercises
Exercise 2-1
Selecting a Tool
Exercise 2-2
Simple AAV VI
A. Dataflow
Objective:
Dataflow
1
2
Node executed only when all the input data are available.
Node supplies data to the output terminals only when it is finished executing.
Note Nodes are objects on the block diagram that have inputs and/or outputs and
perform operations when a VI runs.
Which node executes first? Is there any dependency between the File Dialog function and the
Simulate Signal Express VI?
2.
3.
Because a wire connects the File Dialog function to the TDMS File Viewer VI, can the TDMS
File Viewer VI execute before the TDMS Close function?
4.
How many nodes must execute before the TDMS Write function can execute?
National Instruments
| 2-3
Lesson 2
5.
6.
2-4
| ni.com
7.
In Figure 2-3 an error wire connects the Express VIs. Which Express VI executes last?
Figure 2-3. Dataflow: Example C
8.
National Instruments
| 2-5
Lesson 2
2.
Which node executes first? Is there any dependency between the File Dialog function and the
Simulate Signal Express VI?
Either the File Dialog function or the Simulate Signal Express VI can execute first.
There is no data dependency between the two nodes so either of them can execute first
or they can execute simultaneously.
Which node executes last?
The last node to execute is the Simple Error Handler VI.
4.
Because a wire connects the File Dialog function to the TDMS File Viewer VI, can the TDMS
File Viewer VI execute before the TDMS Close function?
No. The TDMS File Viewer VI cannot execute before the TDMS Close function because
the yellow error wire connecting the TDMS Close function and the TDMS File Viewer VI
forces data dependency. Remember, the data to all inputs of a node must be available
before a node can execute. Therefore, the TDMS File Viewer VI must receive data from
both the green Boolean wire and the yellow error wire before the VI can execute.
How many nodes must execute before the TDMS Write function can execute?
5.
Three nodes must execute before the TDMS Write function can execute: File Dialog,
TDMS Open, and Simulate Signal. The TDMS Write function also depends on the
Simulated Signal string constant, but that input is instantaneous.
Should a well-designed block diagram flow in a particular direction?
6.
Yes. A well-designed block diagram typically flows from left to right. This makes it
easier to see the flow of data on the block diagram. However, do not assume left-toright or top-to-bottom execution when no data dependency exists.
In Figure 2-2, which Express VI executes last?
Either the Statistics Express VI or the Write to Measurement File Express VI executes
last or they execute in parallel. The DAQ Assistant Express VI cannot execute last
because both the Statistics Express VI and the Write to Measurement File Express VI
are dependent on the data signal from the output of the DAQ Assistant Express VI.
Note In LabVIEW, the flow of data, rather than the sequential order of commands,
determines the execution order of block diagram elements. Therefore, it is possible to
have simultaneous operations.
7.
In Figure 2-3 an error wire connects the Express VIs. Which Express VI executes last?
8.
The Write to Measurement File Express VI executes last. It has a data dependency on
both the DAQ Assistant Express VI and the Statistics Express VI.
In Figure 2-4, which Tone Measurements Express VI executes last?
Either one of the Tone Measurement Express VIs can execute last. Even though the Tone
Measurements 2 Express VI has an extra dependency on the Filter Express VI, the Filter
Express VI might execute before the Tone Measurements 1 Express VI allowing the Tone
Measurements 2 Express VI to execute before the Tone Measurements 1 Express VI.
Although it seems as if the Tone Measurements 1 Express VI would execute first, without an
explicit data dependency there is no way to know definitely it would execute first.
2-6
| ni.com
Recognize the different data types and how they relate to front panel objects.
National Instruments
| 2-7
Lesson 2
Boolean Data
Use Boolean controls and indicators to enter and display Boolean (TRUE/FALSE) values.
LabVIEW stores Boolean data as 8-bit values. If the 8-bit value is zero, the Boolean value is
FALSE. Any nonzero value represents TRUE.
2-8
| ni.com
LabVIEW Core 1 Participant Guide
Strings
A string is a sequence of displayable or non-displayable ASCII characters. Strings provide a
platform-independent format for information and data. Some of the more common applications
of strings include the following:
Storing numeric data to disk. To store numeric data in an ASCII file, first convert data to
strings.
Instructing or prompting with dialog boxes.
Right-click a string control or indicator on the front panel to select from the display type.
Display Type
Normal Display
\ Codes Display
Password Display
Hex Display
National Instruments
| 2-9
Lesson 2
Demonstration: Enums
Enums give users a list of items from which to select. Enums are useful because they make
strings equivalent to numbers, which are easy to manipulate on the block diagram. Each item
represents a pair of values: a string value and a 16-bit integer.
2-10
| ni.com
Recognize tools for making clean, readable front panels and block diagrams, and
for documenting VIs.
Tip You can manually choose the tool you need by selecting it on the Tools palette.
Select ViewTools Palette or press <Shift> and right-click to display the palette.
Tool
Operating
Positioning
Labeling
Wiring
Automatic Tool
Selection
Object Shortcut
Menu
Scrolling
Breakpoint
National Instruments
| 2-11
Lesson 2
Tool
Probe
Color Copy
Coloring
2-12
| ni.com
To clean up one wire, right-click the wire and select Clean Up Wire.
To reroute multiple wires and objects, select a section of your block diagram then click the
Clean Up Diagram button.
To clone an object, select the object with the Positioning tool and hold the <CTRL> key down
while dragging the object to a new location.
Description
During this exercise, you complete tasks in a partially built front panel and block diagram. These
tasks give you experience using the automatic tool selection.
1.
2.
3.
Select ViewTools Palette from the menu to display the Tools window.
Tip Press <Shift> and right-click the front panel to open the Tools palette
temporarily.
Figure 2-5 shows an example of the front panel as it appears after your modifications. In steps 4
through 9 you increase the size of the waveform chart, rename the numeric control, change the
value of the numeric control, and move the knob.
Figure 2-5. Using Temperature VI Front Panel
National Instruments
| 2-13
Lesson 2
4.
Move the cursor to the right edge of the Chart waveform chart until you see the resizing
nodes appear around the chart.
Move the cursor to the middle right resizing node until the cursor changes to a double
arrow, as shown in Figure 2-6.
Figure 2-6. Resize Waveform Chart
5.
Drag the repositioning node until the waveform chart is the size you want.
Double-click the word Chart. LabVIEW highlights the word and automatically selects the
Labeling tool in the Tools window.
Complete the entry by clicking outside the control label or clicking the Enter Text button
on the toolbar.
6.
Notice that LabVIEW automatically returns to the Positioning tool in the Tools window.
The Positioning tool is the default tool. If LabVIEW does not switch back to the Positioning
tool, click the Automatic Tool Selection button in the Tools window to enable automatic
tool selection.
Rename the Numeric control to Number of Measurements using the Labeling tool.
Double click the word Numeric.
7.
Complete the entry by clicking outside the control or clicking the Enter Text button on the
toolbar.
2-14
| ni.com
Change the value of the Number of Measurements control to 100 using the Labeling tool.
When the cursor changes to the Labeling tool icon, click the mouse button.
Complete the entry by clicking outside the control, clicking the Enter Text button on the
toolbar, or pressing the <Enter> key on the numeric keypad,
Change the value of the Delay Multiplier knob using the Operating tool.
When the cursor changes to the Operating tool icon, press the mouse button and drag to
the value you want.
8.
Change the color of the Delay Multiplier knob using the Coloring tool.
Click the background square in the Coloring button and select a color from the color
picker.
When the cursor changes to a paintbrush, click the Delay Multiplier knob.
Click the Automatic Tool Selection button again to turn on automatic tool selection.
9.
Try changing the value of objects, resizing objects, and renaming objects until you are
comfortable with using these tools.
11. Move the Number of Measurements terminal using the Positioning tool.
Move the cursor over the terminal until the cursor changes to an arrow.
Click and drag the terminal to the new location as shown in Figure 2-7.
National Instruments
| 2-15
Lesson 2
12. Wire the Number of Measurements terminal to the count terminal of the For Loop using the
Wiring tool.
Move the cursor to the count (N) terminal of the For Loop.
13. Try moving other objects, deleting wires and rewiring them, and wiring objects and wires
together until you are comfortable with using these tools.
14. Automatically clean up the entire block diagram.
Tip You can also select specific objects to clean up, such as wires or individual nodes.
<Shift>-click to select multiple objects and then click the Clean Up Diagram button.
LabVIEW cleans up only the objects that you select and not the entire block diagram.
Configure how LabVIEW cleans up objects by selecting ToolsOptions from the
menu, clicking the Block Diagram category, and changing the options in the
Block Diagram Cleanup section.
15. Change the Boolean text of the Stop button.
Note Boolean controls and indicators have Boolean text labels in addition to their
control labels. Boolean text labels change depending on the value of the control or
indicator. The label for the control or indicator does not change depending on the value
of the control or indicator.
2-16
| ni.com
Right-click the Stop Button terminal and select Properties from the shortcut menu. Set
the properties as shown in Figure 2-8.
Figure 2-8. Changing the Boolean Text for the Stop Control
1
2
Control labelThis text identifies the terminal of the Boolean control for programming
purposes. This text does not appear on the front panel unless you select Visible.
Boolean textThis text appears only on the front panel, and by default, appears in the
center of the Boolean control.
Tip You can also double-click the Stop Button terminal to find the button control on
the front panel.
16. Click the Run button to run the VI.
The time required to execute this VI is equivalent to Number of Measurements times Delay
Multiplier. When the VI is finished executing, the Temperature Chart displays the data.
17. Close the VI and click the Dont Save - All button. You do not need to save the VI.
National Instruments
| 2-17
Lesson 2
Owned Labels
Explain data contents of wires and objects.
Move with object.
Have transparent backgrounds.
Created by selecting Visible ItemsLabel
from the shortcut menu.
Label Guidelines
To avoid clutter, document the Context Help window of subVIs or functions instead of
labels.
Default Values
Setting a default value on a control or indicator can aid in future development and troubleshooting
by giving the programmer an idea of the expected data for that object. Configure default values for
controls and indicators by right-clicking on the object and selecting
Data OperationsMake Current Value Default from the short-cut menu.
2-18
| ni.com
D. Building a Basic VI
Objective:
Building a Basic VI
Express VIs are designed specifically for completing common, frequently used operations.
On the Functions palette, the Express VIs are grouped together in the Express category. Express
VIs use the dynamic data type to pass data between Express VIs.
VI
Acquire
DAQ Assis
Instrumen
Assistant
Simulate S
Read from
Measurem
File
National Instruments
| 2-19
Lesson 2
Analyze
Visualize
2-20
| ni.com
Acquire: Circle the Express VI that is best suited to acquire a sine wave from a data
acquisition device.
2.
Analyze: Circle the Express VI that is best suited to determining the average value of the
acquired data.
Tone M
Statist
Amplit
Filter
3.
Visualize: Circle the Express VIs and/or indicators that are best suited to displaying the data
on a graph and logging the data to file.
DAQ
Write
Build
Wav
National Instruments
| 2-21
Lesson 2
2-22
| ni.com
1.
Acquire: Use the DAQ Assistant to acquire the sine wave from the data acquisition device.
2.
Analyze: Use the Statistics Express VI to determine the average value of the sine wave.
Because this signal is cyclical, you could also use the Cycle Average option in the Amplitude
and Level Measurements Express VI to determine the average value of the sine wave.
3.
Visualize: Use the Write to Measurement File Express VI to log the data and use the
Waveform Graph to display the data on the front panel window.
Scenario
You need to acquire a sine wave for 0.1 seconds, determine and display the average value, log
the data, and display the sine wave on a graph.
Design
The input for this problem is an analog channel of sine wave data. The outputs include a graph of
the sine data, a file that logs the data, and an indicator that displays the average data value.
Flowchart
The flowchart in Figure 2-9 illustrates the data flow for this design.
Figure 2-9. Simple AAV VI Flowchart
ACQUIRE
ANALYZE
VISUALIZE
Acquire Data
Log Data
Implementation
1.
Prepare your hardware to generate a sine wave. If you are not using hardware, skip to
step 2.
Find the BNC-2120 and visually confirm that it is connected to the DAQ device in your
computer.
Using a BNC cable, connect the Analog In Channel 1 to the Sine Function Generator, as
shown in Figure 2-10.
Set the Frequency Selection switch and the Frequency Adjust knob to their lowest
levels.
National Instruments |
2-23
Lesson 2
Flo
2
3
4
1. RES+
2. AI GND
3. AI SENSE
4. RES-
BNC
FS
FS
FS
FS
0.1-10 kHz
LO
Amplitude Adjust
2-24
| ni.com
2.
Open LabVIEW.
3.
4.
Add a new VI to the project from the Project Explorer window and save the VI as Simple
AAV.vi in the <Exercises>\LabVIEW Core 1\Simple AAV directory.
In steps 5 through 6 you will build a front panel similar to the one in Figure 2-11.
Figure 2-11. Simple AAV VI Front Panel Window
5.
Add a waveform graph to the front panel window to display the acquired data.
Type Waveform in the text box and double-click Waveform Graph (Silver) in the search
results list.
6.
Add a numeric indicator to the front panel window to display the average value.
National Instruments
| 2-25
Lesson 2
In the steps 7 through 14 you build a block diagram similar to the one in Figure 2-12.
Figure 2-12. Simple AAV VI Block Diagram
7.
Note The terminals corresponding to the front panel window objects appear on the
block diagram.
8.
Acquire a sine wave for 0.1 seconds by following the instructions in Table 2-1. If you have
hardware installed, follow the instructions in the Hardware Installed column to acquire the
data using the DAQ Assistant. If you do not have hardware installed, follow the instructions in
the No Hardware Installed column to simulate the acquisition using the Simulate Signal
Express VI.
Table 2-1. Instructions for Acquiring or Simulating Data
Hardware Installed
1. Press <Ctrl-Space> to open the Quick
Drop dialog box.
2. Type DAQ Assist in the text box and
double-click DAQ Assistant in the
search results list.
3. Place the DAQ Assistant on the block
diagram.
4. Wait for the DAQ Assistant dialog box
to open.
5. Select Acquire SignalsAnalog Input
Voltage for the measurement type.
6. Select ai1 (analog input channel 1) for
the physical channel.
7. Click the Finish button.
2-26
| ni.com
9.
10.
11.
Tip Reading 100 samples at a rate of 1,000 Hz retrieves 0.1 seconds worth of data.
9.
Use the Statistic Express VI to determine the average value of the data acquired.
Type write to measurement in the text box and double-click Write to Measurement
File in the search results list.
Place the Write to Measurement File Express VI on the block diagram below the
Statistics Express VI.
Wait for the Write to Measurement File Express VI dialog box to open.
Leave all configuration settings in the Write to Measurement File dialog box as default.
Note Future exercises do not detail the directions for finding specific functions or
controls in the palettes. Use Quick Drop, the palette search feature, or the global
search to locate functions and controls.
11. Wire the data from the DAQ Assistant (or Simulate Signal Express VI) to the Statistics
Express VI.
Place the mouse cursor over the data output of the DAQ Assistant (or the Sine output of
the Simulate Signal Express VI) at the location where the cursor changes to the Wiring
tool.
Click the mouse button to start the wire.
National Instruments |
2-27
Lesson 2
Place the mouse cursor over the Signals input of the Statistics Express VI and click the
mouse button to end the wire.
Place the mouse cursor over the data output wire of the DAQ Assistant (or the Sine
output of the Simulate Signal Express VI) at the location where the cursor changes to the
Wiring tool.
Place the mouse cursor over the Waveform Graph indicator and click the mouse button
to end the wire.
13. Wire the Arithmetic Mean output of the Statistics Express VI to the Average Value numeric
indicator.
Place the mouse cursor over the Arithmetic Mean output of the Statistics Express VI at
the location where the cursor changes to the Wiring tool.
Place the mouse cursor over the Average Value numeric indicator and click the mouse
button to end the wire.
14. Wire the data output to the Signals input of the Write Measurement File Express VI.
Place the mouse cursor over the data output wire of the DAQ Assistant (or the Sine
output of the Simulate Signal Express VI) at the location where the cursor changes to the
Wiring tool.
Place the mouse cursor over the Signals input of the Write Measurement File Express VI
and click the mouse button to end the wire.
Note Future exercises do not detail the directions for wiring between objects.
15. Save the VI.
Test
1.
2.
3.
4.
Click the Run button on the front panel toolbar to run the VI. The graph indicator should
display a sine wave and the Average Value indicator should display a number around zero. If
the VI does not run as expected, review the implementation steps.
5.
2-28
| ni.com
LabVIEW Core 1 Participant Guide
Additional Resources
Learn More About
Terminal symbols for controls and
indicators
Using Express VIs
Visualizing data
National Instruments
| 2-29
1.
2.
3.
4.
5.
6.
Add
b.
Subtract
c.
Unknown
Sine
b.
Divide
c.
Unknown
Random Number
b.
Divide
c.
Add
d.
Unknown
Random Number
b.
Subtract
c.
Add
d.
Unknown
If an input to a function is marked with a red dot (known as coercion dot), what does the dot
indicate?
a. Data was transferred into a structure.
b.
c.
d.
Which mechanical action causes a Boolean control in the FALSE state to change to TRUE
when you click it and stay TRUE until LabVIEW has read the value?
a. Switch Until Released
b.
c.
d.
National Instruments |
2-31
1.
2.
3.
4.
5.
6.
Add
b.
Subtract
c.
Unknown
Sine
b.
Divide
c.
Unknown
Random Number
b.
Divide
c.
Add
d.
Unknown
Random Number
b.
Subtract
c.
Add
d.
Unknown
If an input to a function is marked with a red dot (known as coercion dot), what does the dot
indicate?
a. Data was transferred into a structure.
b.
c.
d.
Which mechanical action causes a Boolean control in the FALSE state to change to TRUE
when you click it and stay TRUE until LabVIEW has read the value?
a. Switch Until Released
b.
c.
d.
National Instruments |
2-33
3 Troubleshooting
and Debugging
VIs
In this lesson you will learn how to use LabVIEW tools to
debug and troubleshoot VIs and how to implement basic
error handling techniques.
Topics
+
Debugging Techniques
Error Handling
Exercises
Exercise 3-1
Debugging
If the Run button appears broken when you finish wiring the block diagram, the VI is broken and
cannot run.
Control wired to
another control.
National Instruments
| 3-3
Lesson 3
B. Debugging Techniques
Objective:
Identify the LabVIEW tools for debugging and select the tool appropriate to the
situation.
Debugging Tips
The following table includes a few common problems to look for when debugging your VIs.
Is the numeric representation correct for your
application?
3-4
| ni.com
Job Aid
If a VI is not broken, but you get unexpected data, you can use the following checklist to identify
and correct problems with the VI or the block diagram data flow:
Wire the error in and error out parameters at the bottom of most built-in VIs and functions.
Select ViewError List and place a checkmark in the Show Warnings checkbox to see all
warnings for the VI.
Triple-click a wire to highlight its entire path and to ensure that the wires connect to the
proper terminals.
Use the Context Help window to check the default values for each function and subVI on the
block diagram.
Use the Find dialog box to search for subVIs, text, and other objects to correct throughout the
VI.
Select ViewVI Hierarchy to find unwired subVIs.
Use execution highlighting to watch the data move through the block diagram.
Single-step through the VI to view each action of the VI on the block diagram.
Use the Probe tool to observe intermediate data values and to check the error output of VIs
and functions, especially those performing I/O.
Click the Retain Wire Values button on the block diagram toolbar to retain wire values for use
with probes.
Suspend the execution of a subVI to edit values of controls and indicators, to control the
number of times it runs, or to go back to the beginning of the execution of the subVI.
If the VI runs more slowly than expected, confirm that you turned off execution highlighting in
subVIs.
Check the representation of controls and indicators to see if you are receiving overflow
because you converted a floating-point number to an integer or an integer to a smaller
integer.
Determine if any For Loops inadvertently execute zero iterations and produce empty arrays.
Verify you initialized shift registers properly unless you intend them to save data from one
execution of the loop to another.
National Instruments |
3-5
Lesson 3
Check the cluster element order at the source and destination points.
Check the inventory of subVIs the VI uses against the results of ViewBrowse
RelationshipsThis VIs SubVIs and ViewBrowse RelationshipsUnopened SubVIs to
determine if any extra subVIs exist. Also open the VI Hierarchy window to see the subVIs for a
VI. To help avoid incorrect results caused by hidden VIs, specify that inputs to VIs are
required.
Situation
Your VI is returning unexpected data and you
want to see intermediate values on the wires
to find out where the problem initiates.
You want to see how data moves from one
node to the next on the block diagram.
You want to view each action of the VI on
the block diagram.
This tool slows down how fast the VI runs so
you can see the data flow through the block
diagram.
Your block diagram is complicated and you
need to see the intermediate data values and
check the error output of VIs and functions,
especially those performing I/O.
Suspend the execution of a subVI to edit
values of controls and indicators, to control
the number of times it runs, or to go back to
the beginning of the execution of the subVI.
3-6
| ni.com
Breakpoints
Use the Breakpoint tool to place a breakpoint on a VI, node, or wire and pause execution at that
location.
When you reach a breakpoint during execution, the VI pauses and the Pause button appears red.
You can take the following actions:
Click the Pause button to continue running to the next breakpoint or until the VI finishes
running.
Tip Always remember to turn this feature off when you are done debugging to free
memory.
National Instruments
| 3-7
Lesson 3
Inf (infinity)
3-8
| ni.com
Description
The VIs in this exercise check the validity of a triangle and then calculate the area. For a triangle to be valid, all three sides must have a length that is greater than zero. The subVI in
this exercise uses Herons formula to calculate the area of a triangle. You can use this method when you know the lengths of all three sides of a triangle.
Herons formula
A=
s( s a) ( s b) ( s c)
where
a
+b+c
--------------------2
The default values, which you will use to debug and test this VI, are Side A = 6, Side B = 8, Side C = 10. Therefore the correct values are as follows:
s=
A=
You might want to refer to this calculation as you debug the VI.
12 6 4 2 = 24
Complete the following sections to identify and fix edit-time and run-time issues. Use single-stepping and execution highlighting to step through the VI. Use breakpoints and probes
to determine if the calculations are correct and figure out where an error originates.
-3 10
Edit-Time Errors
Locate and correct errors that prevent the VI from running.
|
.ni com
Open Area and Validity of a Triangle VI from the Project Explorer window.
Figure 3-1. Area and Validity of a Triangle VI Front Panel
Notice the Run button on the toolbar appears broken, indicating that the VI is broken and cannot run.
2.
Display and examine the block diagram of Area and Validity of a Triangle VI shown in Figure 3-2.
This VI takes input values for each of the three sides of a triangle, passes the values into a subVI that determines the area, and checks that the values entered are valid for a
triangle.
Figure 3-2. Area and Validity of a Triangle VI Block Diagram
3.
Click the broken Run button to display the Error list window, which lists all the errors.
Select an error description in the Error list window. The Details section describes the error and in some cases recommends how to correct the error.
Click the Help button to display a topic in the LabVIEW Help that describes the error in detail and includes step-by-step instructions for correcting the error.
Click the Show Error button or double-click the error description to highlight the area on the block diagram that contains the error.
Tip For errors in the Area of a Triangle subVI, double-click to open it. In the Area of Triangle VI, notice that the formula for calculating the area of a triangle requires the
sum of the sides be divided by 2. Right-click the y input of the Divide function and select CreateConstant and enter a value of 2.
4.
Run-Time Errors
Identify and correct errors that cause the VI to behave unexpectedly and return incorrect responses.
1.
Use the default values for each side. These values are valid measurements for a triangle.
Notice that although the numbers you entered are valid, the LED is not illuminated and the Area of a Triangle indicator displays NaN.
2.
Click the Highlight Execution button on the toolbar to enable execution highlighting.
Click the Retain Wire Values button on the toolbar so you can see the last value passed on a wire.
3.
Right-click each of the input wires to the Compound Arithmetic Function and select Probe. This displays the Probe Watch Window.
Notice that one of the wire values is False as shown in Figure 3-3.
Figure 3-3. Probe Wires
|
InstrumentsNational
Because you are checking to see that all three sides of the triangle have positive lengths, either the input value is in
The input values were all positive numbers, so that means the logic is incorrect.
Notice that the node returning a value of False is a Less than Zero? function, but this section of code should be ch
greater than zero.
Right-click the Less than Zero? function and select ReplaceComparison PaletteGreater than Zero?.
13-3
4.
|14-3
.ni
com
Display the front panel. Notice that the Valid Triangle? LED is illuminated, but the Area of Triangle indicator is still re
The area of the triangle is calculated in the subVI, so you must continue debugging in the Area of a Triangle subVI.
Display the block diagram of the Area and Validity of a Triangle VI.
Click the Step Into button to start single-stepping through the VI. Execution highlighting shows the flow of data on t
to another. Nodes blink to indicate they are ready to execute.
Click the Step Over button after each node to step through the entire block diagram until you get to the subVI. Each time you click the Step Over button,
the current node executes and pauses at the next node.
When you get to the subVI, click the Step Into button to open the block diagram of the Area of Triangle subVI. The subVI is paused.
Right-click the output of the Square Root function and select BreakpointSet Breakpoint as shown in Figure 3-4.
1
6.
The breakpoint stops the VI after the Square Root node executes and before the value is output to the Area of
Triangle indicator.
Click the red pause button to resume the execution of the VI.
7.
The VI continues executing until the breakpoint and then pauses again.
Examine the values on the wires
Move the cursor to hover over the input wire of the Square Root function. You should see a tip strip with
a value of -576. You cannot take the square root of a negative number, which is why the Area of
Triangle indicator returns NaN.
Tip If you cannot see the tip strip, you can click the wire to open the Probe Watch window to see the
value.
Hover over other wires or use the Probe Watch window to examine other intermediate values.
Notice that the value on the (S-B) wire is also a negative number. If you look more closely, you notice that the
inputs for the subtract function are reversed.
National
Instruments
Tip Press <Ctrl> and click one of the inputs to switch them. When you press <Ctrl> and hover over an input, y
-3
Check the intermediate values as the VI runs or hover over the wires after it pauses at the breakpoint and verify that the values retu
|16 .ni
com
Turn off execution highlighting in the Area of Triangle VI and the Area and Validity of a Triangle VI.
Test
1. Test the Area and Validity of a Triangle VI using the values for Side A, Side B, and Side C in Table 3-1. For each set of test values, reco
get when you run the VI.
Side A
24
12
15
Side A
24
12
15
2.
C. Error Handling
Objective:
Automatic
Error Handling
Manual
Error Handling
You control when dialog boxes appear, propagate errors through error
in/error out clusters, terminate error chain with Simple Error Handler
Enabling automatic error handling does not override manual error handling. If the error cluster is
wired and the VI uses the Simple Error Handler, then LabVIEW defaults to manual error handling.
National Instruments
| 3-17
Lesson 3
Error Clusters
VIs and functions return errors in one of two wayswith numeric error codes or with an error
cluster. Typically, functions use numeric error codes, and VIs use an error cluster, usually with
error inputs and outputs. Use the error cluster controls and indicators to create error inputs and
outputs in subVIs.
1
2
3
codea 32-bit signed integer that identifies the error numerically. A non-zero error code is
coupled with a status of FALSE signals a warning rather than an error
sourcea string that identifies where the error occurred
More severe
Passed to the next node without executing
that part of the code
3-18
| ni.com
Merge Errors
The Merge Errors Function:
Returns the first error found. If no error is found, it returns the first warning.
At the end of your application after all error sources are merged into one error cluster, you must
report errors to the user using the Simple Error Handler VI or another error reporting mechanism.
Additional Resources
Learn More About
Correcting Broken VIs
Debugging
Error Handling
3-20
| ni.com
2.
3.
4.
A subVI is broken
b.
c.
d.
Which of the following are components and data types of the error cluster?
a.
Status: Boolean
b.
Error: String
c.
d.
Source: String
All errors have negative error codes and all warnings have positive error codes.
a.
True
b.
False
True
b.
False
National Instruments
| 3-21
2.
3.
4.
A subVI is broken
b.
c.
d.
Which of the following are components and data types of the error cluster?
a.
Status: Boolean
b.
Error: String
c.
d.
Source: String
All errors have negative error codes and all warnings have positive error codes.
a.
True
b.
False
True
b.
False
National Instruments
| 3-23
Using Loops
In this lesson you will learn to recognize the different
components of a LabVIEW loop structure and how to apply
a For Loop or a While Loop appropriately.
Topics
+
Loops Review
While Loops
For Loops
Timing a VI
Plotting Data
Exercises
Exercise 4-1
Exercise 4-2
Exercise 4-3
A. Loops Review
Objective:
While LoopsReview
For LoopsReview
The value in the count terminal (an input terminal) indicates how many times to repeat the
subdiagram in the For Loop.
National Instruments
| 4-3
Lesson 4
Using Loops
N=100;
i=0;
While Loop
Stops executing only if the value at the
conditional terminal meets the condition
Must execute at least once
Tunnels automatically output the last value
Description
For the following scenarios, decide whether to use a While Loop or a For Loop.
4-4
| ni.com
Scenario 1
Acquire pressure data in a loop that executes once per second for one minute.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
2.
If you use a For Loop, how many iterations does the loop need to run?
3.
Scenario 2
Acquire pressure data until the pressure is greater than or equal to 1400 psi.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
2.
If you use a For Loop, how many iterations does the loop need to run?
3.
Scenario 3
Acquire pressure and temperature data until both values are stable for two minutes.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
2.
If you use a For Loop, how many iterations does the loop need to run?
3.
Scenario 4
Output a voltage ramp starting at zero, increasing incrementally by 0.5 V every second, until the
output voltage is equal to 5 V.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
2.
If you use a For Loop, how many iterations does the loop need to run?
3.
National Instruments
| 4-5
Lesson 4
Using Loops
If you use a While Loop, what is the condition that you need to stop the loop?
While Loop: Time = 1 minute
2.
If you use a For Loop, how many iterations does the loop need to run?
For Loop: 60 iterations
3.
Scenario 2
Acquire pressure data until the pressure is greater than or equal to 1400 psi.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
While Loop: Pressure = 1400 psi
2.
If you use a For Loop, how many iterations does the loop need to run?
For Loop: unknown
3.
Scenario 3
Acquire pressure and temperature data until both values are stable for two minutes.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
While Loop: [(Last Temperature = Previous Temperature) for 2 minutes or more] and
[(Last Pressure = Previous Pressure) for 2 minutes or more]
2.
If you use a For Loop, how many iterations does the loop need to run?
For Loop: unknown
3.
Scenario 4
Output a voltage ramp starting at zero, increasing incrementally by 0.5 V every second, until the
output voltage is equal to 5 V.
1.
If you use a While Loop, what is the condition that you need to stop the loop?
While Loop: Voltage = 5 V
4-6
| ni.com
2.
If you use a For Loop, how many iterations does the loop need to run?
For Loop: 11 iterations (Including the two end points, count the iteration for each value
- 0, 0.5, 1.0, 1.5, ... 4.5, 5.0.)
3.
B. While Loops
Objective:
Recognize tunnels and explain their purpose on a loop structure and demonstrate
how to use error checking and error handling inside a loop.
Tunnels
Tunnels transfer data into and out of structures. Data pass out of a loop after the loop
terminates.
Use the error cluster and a stop button to determine when to stop the loop.
National Instruments
| 4-7
Scenario
Create a VI that continuously generates random numbers between 0 and 1000 until it generates a number that matches a number selected by the user.
Determine how many random numbers the VI generated before generating the matching number.
Design
Use the following flowchart and input/output list to create the VI for this exercise. The flowchart in Figure 4-1 illustrates the data flow for this design.
Generate a
Random Number
Between 0 and 1
No
Multiply by 1000
Round to Nearest
Integer Value
InstrumentsNational
9-4|
Numeric control
Number
Numeric indicator
Current Nu
Numeric indicator
Number
Implementation
1.
Create a blank project and save it as Auto Match.lvproj in the <Exercises>LabVIEW Core 1\Auto Match directory.
2.
Create a new VI in the project and save it as Auto Match.vi in the same directory as the project.
3.
1
2
Set the default value of the Number to Match control to 50Enter 50 in the Number to Match control and then right-click the control and select Data
OperationsMake Current Value Default.
Set Number of Iterations indicator to output a signed, long integerRight-click the indicator and select RepresentationI32.
4.
Set the properties for the Number to Match control so that the data type is a 32-bit unsigned integer, the data range is from 0 to 1000, the increment value is
1, and the digits of precision is 0.
Right-click the Number to Match control and select RepresentationU32 from the shortcut menu.
Right-click the Number to Match control and select Data Entry from the shortcut menu. Set the properties on the Data Entry and Display Format tabs
as shown in Figure 4-3.
Figure 4-3. Number to Match Numeric Properties
5.
Set the representation of the Current Number indicator to an unsigned, 32-bit integer and set the
digits of precision for the Current Number output to 0.
Right-click the Current Number indicator and select RepresentationU32 from the shortcut
menu.
Right-click the Current Number indicator and select Display Format. Set the properties as
shown in Figure 4-4.
Figure 4-4. Current Number Indicator Display Format
Properties
6.
1
2
3
4
5
6
7
8
9
Tip Coercion dots can cause a VI to use more memory and increase its run time, so try to keep data types consistent in the VIs you create.
7.
8.
Notice that converting the output from the Round To Nearest function removes all the coercion dots on the block diagram, as shown in Figure 4-7.
Figure 4-7. Completed Auto Match VI
9.
10. Right-click the Current Number indicator and select AdvancedSynchronous Display.
Note If synchronous display is enabled, then every time the block diagram sends a value to the Current Number indicator, the block diagram stops
executing until the front panel has updated the value of the indicator. In this exercise, you enable the synchronous display, so you can see the Current
Number indicator get updated repeatedly on the front panel. Typically, the synchronous display is disabled to increase execution speed since you
usually do not need to see every single updated value of an indicator on the front panel.
11. Save the VI.
Test
1. Change the number in the Number to Match control to a number that is in the data range, which is 0 to 1000 with an increment of 1.
|
InstrumentsNational
On the block diagram toolbar, click the Highlight Execution button to enable execution highlighting.
15-4
.ni
Notice LabVIEW coerces the out-of-range value to the nearest value in the data range you specified in step 4 of the Implementation sec
com
C. For Loops
Objective:
Demonstrate how to add a conditional terminal to a For Loop and describe how
numeric conversion occurs on the For Loop count terminal.
Conditional Terminal
You can add a conditional terminal to configure a For Loop to stop when a Boolean condition or an
error occurs. A For Loop with a conditional terminal executes until the condition occurs or until all
iterations are complete, whichever happens first.
The following For Loop generates a random number every second until 100 seconds has passed
or until the user clicks the stop button.
1
2
Right-click the loop border and select Conditional Terminal from the shortcut menu.
Red glyph appears in the count terminal and a conditional terminal in the lower right corner.
Coercion Dot
For better performance, avoid coercion by using matching data types or programmatically
converting to matching data types.
National Instruments
| 4-17
Lesson 4
Using Loops
D. Timing a VI
Objective:
Identify scenarios that require loop timing and apply the appropriate function
4-18
| ni.com
Apply shift registers when appropriate and predict the correct value at different
iterations of the loop.
National Instruments
| 4-19
Lesson 4
Using Loops
4-20
| ni.com
Scenario
The Temperature Monitor VI acquires and displays temperature. Modify the VI to average the last five temperature
measurements and display the running average on the waveform chart.
Design
Figure 4-8 shows the Temperature Monitor VI front panel and block diagram.
Figure 4-8. Temperature Monitor VI Front Panel and Block Diagram
To modify this VI, you need to retain the temperature values from the previous four iterations of the While Loop and
average the values. To accomplish this, you modify this VI as follows:
Use a shift register with additional elements to retain data from the previous four iterations.
Initialize the shift register with a reading from the simulated thermometer.
Implementation
1.
Run the VI. Notice the variation in the simulated temperature reading.
2.
3.
1
2
3
4
Shift RegistersStacked shift registers collect multiple temperature readings. Right-click the border of the
While Loop and select Add Shift Register. Drag the lower resizing handle of the shift register to display four
shift registers.
Create a copy of the Thermometer (Demo) VIPress <Ctrl> while dragging the subVI outside the While Loop
to create a copy. The Thermometer (Demo) VI returns one temperature measurement and initializes the left
shift registers before the loop starts.
Compound ArithmeticReturns the sum of the current temperature and the four previous temperature
readings. Resize the function to have five terminals.
DivideReturns the average of the last five temperature readings.
Note You can create stacked shift register terminals on the left side of a loop to
remember multiple previous iterations and carry those values to the next iterations. This
technique is useful for averaging data points. Stacked shift registers can occur only on
the left side of the loop because the right terminal transfers the data generated from
only the current iteration to the next iteration.
4.
Test
1.
2.
3.
|InstrumentsNational 23-4
Lesson 4
Using Loops
F. Plotting Data
Objective:
Waveform Chart
The waveform chart is a special type of numeric indicator that displays one or more plots of data
typically acquired at a constant rate. Waveform charts can display single or multiple plots.
6
1
3
7
4
1 Label
2 Y-scale
4-24
| ni.com
You can configure how the chart updates to display new data. The chart uses the following
modes to display data:
Strip ChartShows running data continuously scrolling from left to right across the chart with
old data on the left and new data on the right.
Scope ChartShows one item of data, such as a pulse or wave, scrolling partway across the
chart from left to right.
Sweep ChartWorks similarly to a scope chart except it shows the old data on the right and
the new data on the left separated by a vertical line.
National Instruments
| 4-25
Scenario
Modify the VI from Exercise 4-2 to plot both the current temperature and the running average on the same chart. In
addition, allow the user to examine a portion of the plot while the data is being acquired.
Design
Figure 4-10 shows the front panel for the existing Temperature Monitor VI and Figure 4-11 shows the block diagram.
Figure 4-10. Temperature Monitor VI Front Panel
To allow the user to examine a portion of the plot while the data is being acquired, display the scale
legend and the graph palette for the waveform chart. Also, expand the legend to show additional
plots.
To modify the block diagram in Figure 4-11, you must modify the chart terminal to accept multiple
pieces of data. Use a Bundle function to combine the average temperature and the current
temperature into a cluster to pass to the Temperature History terminal.
Figure 4-11. Original Temperature Monitor VI Block
Diagram
Implementation
1.
|InstrumentsNational 27-4 -4 28
| .ni
com
BundlePasses the current temperature and average temperature to the Temperature History chart.
3.
1
2
3
4
4.
Show both plots in the plot legendUse the positioning tool to resize the plot legend to show two objects.
Double-click the label to edit the plot names. The order of the plots listed in the plot legend is the same as the
order of the items wired to the Bundle function on the block diagram.
Change the plot type of Current TemperatureUse the Operating tool to select the plot in the plot legend.
Click the plot icon, select Common Plots from the menu, and choose the plot you want.
Display Graph PaletteRight-click the Temperature History chart and select Visible ItemsGraph Palette.
Display Scale LegendRight-click the Temperature History chart and select Visible itemsScale Legend.
Save the VI.
Test
1.
Run the VI. Use the tools in the scale legend and the graph palette to examine the data as it generates.
2.
Lesson 4
Using Loops
Additional Resources
Learn More About
Using shift registers
4-30
| ni.com
While Loop
b.
For Loop
National Instruments
| 4-31
While Loop
b.
For Loop
National Instruments
| 4-33
5 Creating and
Leveraging Data
Structures
In this lesson you will learn about arrays, clusters, and type
definitions and be able to identify applications where using
these data structures can be beneficial.
Topics
+
Arrays
Polymorphism
Auto-Indexing
Clusters
Type Definitions
Exercises
Exercise 5-1
Manipulating Arrays
Exercise 5-2
Exercise 5-3
A. Arrays
Objective:
Identify when to use arrays and learn how to create and initialize arrays.
Arrays
Array
Elements
The data that make up the array. Elements can be numeric, Boolean, path, string,
waveform, and cluster data types.
Dimension Length, height, or depth of the array. Arrays can have one or more dimensions and as
31
Note Array indexes in LabVIEW are zero-based. The index of the first element in the
array, regardless of its dimension, is zero.
1D and 2D Examples
Arrays can have multiple dimensions.
1D array:
For example, LabVIEW represents a text array that lists the twelve months of the year as a 1D
array of strings with twelve elements. Index is zero-based, which means the range is 0 to n 1, where n is the number of elements in the array. For example, n = 12 for the twelve months
of the year, so the index ranges from 0 to 11. March is the third month, so it has an index of 2.
2D array:
Column Index
0
0
1
2
3
4
5
6
7
For example, LabVIEW represents a table of data with rows and columns as a 2D array.
National Instruments
| 5-3
Lesson 5
2D Arrays
A 2D array stores elements in a grid. It requires a column index and a row index to locate an
element, both of which are zero-based.
Initializing Arrays
An uninitialized array contains a fixed number of dimensions but no elements. An initialized
defines the number of elements in each dimension and the contents of each element.
Uninitialized array
Initialized array
Create an array control or indicator on the front panel by adding an array shell to the front panel,
as shown in the following front panel, and dragging a data object or element, which can be a
numeric, Boolean, string, path, refnum, or cluster control or indicator, into the array shell.
To create an array constant on the block diagram, select an array constant on the Functions
palette, place the array shell on the block diagram, and place a string constant, numeric
constant, a Boolean constant, or cluster constant in the array shell.
Restrictions
You cannot create arrays of arrays. However, you can use a multidimensional array or create an
array of clusters where each cluster contains one or more arrays. Also, you cannot create an array
of subpanel controls, tab controls, .NET controls, ActiveX controls, charts, or multi-plot XY graphs.
5-4
| ni.com
Initialize Array
Creates an n-dimensional array in which every element is initialized to the value of element.
National Instruments
| 5-5
Lesson 5
Search 1D Array
Searches for an element in a 1D array starting at start index. Because the search is linear, you
need not sort the array before calling this function. LabVIEW stops searching as soon as the
element is found.
5-6
| ni.com
Description
Each of the VIs shown has missing information. Determine what belongs in the highlighted
section.
Block Diagram
National Instruments
| 5-7
Lesson 5
C. Polymorphism
Objective:
Understand the ability of various VIs to accept input data of different data types.
Polymorphism
Polymorphism The ability of VIs and functions to automatically adapt to accept input data of
different data types.
Functions are polymorphic to varying degreesnone, some, or all of their
inputs can be polymorphic.
5-8
| ni.com
D. Auto-Indexing
Objective:
Auto-indexing
Auto-Indexing
If you wire an array to or from a For Loop or While Loop, you can link each iteration of the loop to
an element in that array by enabling auto-indexing. The tunnel image changes from a solid square
to the image to indicate auto-indexing.
1
2
3
Right-click the tunnel and select Enable Indexing or Disable Indexing to toggle the state of
the tunnel.
Auto-indexed output arrays are always equal in size to the number of iterations.
Only one value (the last iteration) is passed out of the loop when auto-indexing is disabled.
Waveform Graphs
A waveform graph collects the data in an array and then plots the data to the graph.
National Instruments
| 5-9
Lesson 5
Right-click the loop output tunnel and selecting Tunnel ModeConditional from the
shortcut menu.
5-10
| ni.com
The inner loop creates the column elements and the outer loop creates the row elements.
Auto-Indexing Input
Use an auto-indexing input array to perform calculations on each element in an array. If you wire
an array to an auto-indexing tunnel on a For Loop, you do not need to wire the count (N) terminal.
I
1
2
The For Loop executes the number of times equal to the number of elements in the array.
If the iteration count terminal is wired and arrays of different sizes are wired to auto-indexed
tunnels, the actual number of iterations becomes the smallest of the choices.
The For Loop iterates 5 times and because the iterations are zero-based, the output is 4.
National Instruments
| 5-11
Description
You are given a VI and asked to enhance it for a variety of purposes. The front panel of this VI is built. You complete
the block diagram to practice several different techniques to manipulate arrays.
Implementation
1.
2.
Open Array Manipulation VI from the Project Explorer window. The front panel, shown in Figure 5-1, is already
built for you.
Figure 5-1. Array Manipulation VI Front Panel
3.
Open the block diagram and complete each of the cases that correspond to the tabs on the front panel
as shown in Figures 5-2 through 5-8.
Figure 5-2. Array Manipulation VIConcatenate Channels
Case
1 Build ArrayExpand this node to accept two inputs, and then right-click
and select Concatenate inputs from the shortcut menu. 2 Wire the sine
wave and square wave outputs to the Build Array function to create a 1D
array with both waveforms.
4. Switch to the front panel and test the Concatenate Channels case.
|
I
n
s
t
r
u
m
e
n
t
s
N
a
t
i
o
n
a
l
Run the VI and notice that the sine wave is concatenated with a square wave.
13-5
-5 14
7. Complete the Add/Subtract Channels case as shown in Figure 5-3 and Figure 5-4.
com.ni
1
1
2
Subtract?Wire this to the case selector terminal so that the correct case executes when you click the
Subtract? button on the front panel.
Case StructurePlace a Subtract function in the True case, so that the VI subtracts the elements of
the array when the Subtract? button on the front panel is pressed.
Figure 5-4. Array Manipulation VIAdd/Subtract Channels
False Case
When the value of the Subtract? Boolean control is False, the array elements are added.
Note This case demonstrates polymorphic functionality by adding and subtracting elements of the
array.
8.
9.
Switch to the front panel and test the Add/Subtract Channels case.
Click the Subtract? button and observe the behavior of subtracting the square wave from the sine wave.
Stop the VI.
10. Switch to the block diagram and select the Select a Channel case.
11. Complete the Select a Channel case as shown in Figure 5-5.
Figure 5-5. Array Manipulation VISelect a Channel
1
1
2
3
4
Build ArrayCombines the sine and square waves into one 2D array.
Index ArrayExtracts row 0 or 1 from the 2D array. The output from this function is a 1D array and is the
waveform you select with the Select Channel control. The waveform is displayed on the Single Channel of
Data Waveform Graph and the Single Channel of Data Array indicator.
Select ChannelWire to the row input of the Index Array function.
Array SizeBecause you are using a 1D array, this function outputs a scalar value.
-5 16
Note The Select a Channel case uses a property node to change the
12. Switch to the front panel and test the Select a Channel case.
.ni
Switch between Channel 0 and Channel 1 and notice the different values sho
com
The waveform datatype is a special kind of cluster that contains additional tim
AddUses the value from the Offset control to modify the value of the waveform in the waveform
datatype. Notice the value from the Offset control must be coerced to be used with the waveform
datatype.
Note Polymorphism is the ability of VIs and functions to automatically adapt to accept input data of different data
types, including arrays, scalars, and waveforms. VIs and functions are polymoprhic to varying degrees.
16. Switch to the front panel and test the Waveform Data case.
Change the value of the Offset control and notice the square wave move on the Waveform Data chart.
1
2
3
4
5
AddModify the same data in one array by adding the value of the Channel 1 Offset to each element of the
array.
For LoopExtracts each element of the array using auto indexing so that the Add function in the For Loop can
add the scalar value.
Build ArrayTakes the two 1D arrays and builds a 2D array. Each 1D array becomes a row in the 2D array.
Array SizeOutputs a 1D array where each element shows the size of each dimension. In this exercise, you
have 2 elements of data for the number of rows and columns.
All Data Channel and Data Channel Array indicators display the same data.
Note The polymorphic functionality of LabVIEW functions allows you to perform the same operation on
each element without extracting the array elements, as you do with the two Add functions in the All Data
Channel case.
20. Switch to the front panel and test the All Data Channel case.
Change the value of the Channel 1 Offset control and observe the behavior.
3
4
1
2
3
4
Array SubsetExtracts a subset of an existing array. In this exercise, you use this function to zoom in on a
subset of the waveform you generated.
Numeric ConstantThese constants specify that the function extract the first two rows starting at element 0.
Start ValueSets the start index. The default value is set to start at element 0.
LengthSets the number of elements to extract. The default value is set to output 1000 elements.
24. Switch to the front panel and test the Waveform Subset case.
On the front panel, click the Waveform Subset tab.
Change value of the Start Value and Length sliders and notice that the Subset Data waveform graph xaxis starts at zero and finishes at the number of elements in the new array. The x-axis starts at zero because
the VI creates a brand new array and the graph does not know where the data was located in the original
array.
2.
3.
4.
Click one of the example VIs in the search results list and read the description.
5.
6.
Read through the comments on the front panel and block diagram to learn more about what this example VI
demonstrates.
7.
Run the example, examine the different cases, and click the Stop button to exit.
8.
Close the VIs and the NI Example Finder when you are finished.
Lesson 5
E. Clusters
Objective:
Clusters
Clusters
Fixed size
5-20
| ni.com
Resize the cluster shell by dragging the cursor while you place the cluster shell.
Cluster Order
Cluster elements have a logical order unrelated to their position in the shell. The cluster order
determines the order in which the elements appear as terminals on the Bundle and Unbundle
functions on the block diagram.
You can view and modify the cluster order by right-clicking the cluster border and selecting
Reorder Controls In Cluster from the shortcut menu.
National Instruments
| 5-21
Lesson 5
Autosizing Clusters
Autosizing helps you arrange elements in clusters.NI recommends the following:
Disassembling Clusters
Use the Unbundle and Unbundle By Name functions to return individual cluster elements.
1
2
Unbundle By NameReturns the cluster elements whose names you specify. The number of
output terminals does not depend on the number of elements in the input cluster.
UnbundleSplits a cluster into its individual elements
Modifying a Cluster
Use Bundle By Name whenever possible to access elements in a cluster. Use Bundle when some
or all cluster elements are unnamed.
I
5-22
| ni.com
Plotting Data
Use the Context Help window to determine how to wire multi-plot data to Waveform Graphs,
Charts and XY Graphs.
National Instruments
| 5-23
Lesson 5
Error Clusters
LabVIEW contains a custom cluster called the error cluster. LabVIEW uses error clusters to pass
error information.
5-24
| ni.com
Exer
cise
5-2
Tem
pera
ture
War
ning
s VI
Clus
ters
G
C
r
S
A
n
D
T
h
F
i
Y
e
W
a
Warning Text =
H
e
a
tNo Warning
W
a
r
|InstrumentsNational 25-5
27-5
|InstrumentsNational
Create
a
cluster
which
contain
s the
data
used by
the
Temper
ature
Warnin
gs VI.
You
modify
the
Temper
ature
Warnin
gs VI to
receive
and
return
data in
the
form of
that
same
cluster
as
shown
in
Figure
5-10.
The
modifie
d VI
works
in a
more
modula
r
Figure 510.
Temperatu
re
Warnings
VI with
Clusters
Front
Panel
I
m
p
l
e
m
e
n
t
a
t
i
o
n
1.
rcises>\LabVIEW
directory.
Core
1\Weather
Warnings
2.
3.
O
p
e
n
W
e
a
t
h
e
r
C
l
u
s
t
e
r
W
a
r
n
i
n
g
s
.
l
v
p
r
o
j
1
3
i
n
t
h
e
<
E
x
e
1
2
3
4.
Resize the cluster so that all the elements are visible and arranged vertically as shown in Figure 5-12.
Figure 5-12. Resize Cluster Control
1 Autosize clusterLabVIEW can rearrange and resize the cluster for you. Right-click the border o
Arrange Vertically.
|InstrumentsNational
29-5
5.
1
2
3
Right-click the edge of the cluster and select Reorder Controls in Cluster.
Click the controls to toggle the order of the items in the cluster.
Click the Confirm button to save the changes.
6. Modify the VI to receive and return cluster data.
1
2
National
Instr uments
|
31-5
7.
Modify the block diagram as shown in Figure 5-15 to extract data from the input cluster.
Figure 5-15. Temperature Warnings with Clusters Block Diagram
Unbundle By NameWire the Weather Data In control and expand the Unbundle By Name function to
display three items. Wire the outputs of the Unbundle By Name function to the broken wires in the order
shown. Because you moved individual controls and indicators into a single cluster, you must use the Unbundle
By Name function to wire the internal controls and indicators independently of each other.
Bundle By NameWire the Weather Data In cluster around the analysis code to the input cluster of the
Bundle by Name function. Display two elements and use the Operating tool to select Warning? and Warning
Text elements. Connect the broken wires to the Unbundle By Name inputs as shown.
Note If the order of the elements in the Unbundle By Name and the Bundle By Name functions is
different than what you want, you can use the Operating tool to change the order.
8.
Test
1.
Enter values in the Current Temperature, Max Temperature and Min Temperature controls in the Weather
Data In cluster.
2.
Run the VI and verify that the Weather Data indicator displays correct values.
3.
F. Type Definitions
Objective:
Identify and determine when to use a type definition, strict type definition, or
control.
Control Options
Use custom controls and indicators to extend the available set of front panel objects and to
make them available on other front panels.
Three types of custom controlsControl, Type Definition, Strict Type Definition.
Custom controls are templates and used as starting points for other similar controls.
Changes made to one control does not reflect in other controls.
Type definitions and strict type definitions link to all the instances of a custom control or
indicator to a saved custom control or indicator file. You can make changes to all instances of
the custom control or indicator by editing only the saved custom control or indicator file
Strict type defs apply cosmetic changes too, whereas type defs do not.
National Instruments
| 5-33
Lesson 5
5-34
| ni.com
Scenario
As a LabVIEW developer, you can encounter situations where you need to define your own
custom data types in the form of clusters and enums. A challenge associated with using
custom data types is that you may need to change them later in development. In addition,
you may need to change them after they have already been used in VIs. For example, you
create copies of a custom data type and use them as controls, indicators, or constants in one
or more VIs. Then you realize that the custom data type needs to change. You need to add,
remove, or change items in the cluster data type or the enum.
As a developer you must ask yourself the following questions:
What should happen to the copies of the custom data types used in VIs that are already saved?
Should the copies remain unchanged or should they update themselves to reflect changes to the
original?
Usually, you want all the copies of the custom data type to update if you update the
original custom data type. To achieve this you need copies of the custom data types to be
tied to a type definition, which is defined as follows:
Type definitionA master copy of a custom data type that multiple VIs can use.
Implementation
In this exercise, you modify the Temperature Warnings VI that you revised in Exercise 5-2 in
such a way that the changes to the Weather Data custom data type propagate through the
application.
When complete, the Weather Station application monitors temperature and wind
information. This exercise modifies the Temperature Warnings VI. In the Challenge exercise,
you modify the Windspeed Warnings VI.
Notice that the Temperature Warnings VI is broken. This is because the Weather Da
data type.
3
5
5
Open the block diagram and notice the broken wire connected to the Weather Da
-5
On the block diagram, the Weather Data In terminal now has a black triangle on the corne
|36 .ni
com
Right-click the border of the Weather Data In control and select Open Type Def to display the
Figure 5-16.
The window looks like the front panel of a VI but it does not have a block diagram.
The control type is Type Def, which maintains the link between this file and the custom control copies used
in VIs.
Save the custom control as Weather Data.ctl in the <Exercises>\LabVIEW Core 1\Weather
Warnings directory and close the control editor window.
On the block diagram of the Temperature Warnings VI, notice the coercion dot on the Weather Data
Out indicator terminal. This indicates that the indicator is not tied to the type definition.
5.
|InstrumentsNational 37-5
6.
Right-click the border of the Weather Data In control and select Open
Type Def from the shortcut menu.
Modify the front panel as shown in Figure 5-17.
Figure 5-17. Weather Data Type
Definition with Temperature Units
Enum (Silver)Place an enum in the cluster and rename it Units. Rightclick the enum and select Edit items. Create an item for Celsius and
Fahrenheit.
Save the Weather Data type definition and close the control editor
window.
Notice that the Weather Data In control and Weather Data Out indicator
on the Temperature Warnings VI have been updated with the changes
you made to the Weather Data type definition. Arrange the front panel of
the VI as shown in Figure 5-18.
Figure 5-18. Temperature Warnings VI with Type Def Controls and Indicators
7.
Challenge
In this challenge exercise, you modify the Windspeed Warnings VI to augment the
Weather Station application.
1.
Navigate
to
<Exercises>\LabVIEW
Core
1\Weather
Warnings\Support VIs and select Windspeed Warnings.vi.
2.
3.
Copy the Weather Data In cluster from the Temperature Warnings VI to the
Windspeed Warnings VI.
4.
Right-click the Weather Data In cluster and select Open Type Def from the
shortcut menu.
5.
Modify the Weather Data type definition with windspeed controls as shown in
Figure 5-19.
Figure 5-19. Windspeed Warnings VI Type Definition Controls and Indicators
6.
7.
8.
|InstrumentsNational
41-5
Lesson 5
Additional Resources
Learn More About
Arrays
Clusters
Type Definitions
5-42
| ni.com
True
b.
False
2.
You have two input arrays wired to a For Loop. Auto-indexing is enabled on both tunnels. One
array has 10 elements, the second array has five elements. A value of 7 is wired to the Count
terminal, as shown in the following figure. What is the value of the Iterations indicator after
running this VI?
3.
Which of the following custom control settings defines the data type of all instances of a
control but allows for different colors and font styles?
a. Control
4.
b.
Type Definition
c.
d.
Cluster control
You have input data representing a circle: X Position (I16), Y Position (I16), and Radius (I16).
In the future, you might need to modify your data to include the color of the circle (U32).
What data structure should you use to represent the circle in your application?
a.
Three separate controls for the two positions and the radius.
b.
c.
d.
e.
National Instruments
| 5-43
True
b.
False
You cannot drag an array data type into an array shell. However, you can create
two-dimensional arrays.
2.
You have two input arrays wired to a For Loop. Auto-indexing is enabled on both tunnels. One
array has 10 elements, the second array has five elements. A value of 7 is wired to the Count
terminal, as shown in the following figure. What is the value of the Iterations indicator after
running this VI?
Value of Iterations = 4
LabVIEW does not exceed the array size. This helps to protect against programming error.
LabVIEW mathematical functions work the same wayif you wire a 10 element array to the x
input of the Add function, and a 5 element array to the y input of the Add function, the output is
a 5 element array.
Although the for loop runs 5 times, the iterations are zero based, therefore the value of the
Iterations indicators is 4.
3.
4.
Which of the following custom control settings defines the data type of all instances of a
control but allows for different colors and font styles?
a. Control
b.
Type Definition
c.
d.
Cluster control
You have input data representing a circle: X Position (I16), Y Position (I16), and Radius (I16).
In the future, you might need to modify your data to include the color of the circle (U32).
What data structure should you use to represent the circle in your application?
a.
Three separate controls for the two positions and the radius.
b.
c.
d.
e.
National Instruments |
5-45
6 Using
Decision-Making
Structures
In this lesson you will learn to create different
decision-making structures and be able to identify
applications where using these structures can be
beneficial.
Topics
+
Case Structures
Event-Driven Programming
Exercises
Exercise 6-1
Exercise 6-2
A. Case Structures
Objective:
Recognize and use the basic features and functionality of Case Structures.
1
2
1.
2.
3.
4.
b.
c.
All of them
b.
One
b.
Show the name of the current state and enable you to navigate through different cases
b.
Show the name of the current state and enable you to navigate through different cases
National Instruments
| 6-3
Lesson 6
1
1.
2.
3.
4.
Selector Terminal
b.
c.
All of them
b.
One
b.
Show the name of the current state and enable you to navigate through different cases
b.
Show the name of the current state and enable you to navigate through different cases
6-4
| ni.com
National Instruments
| 6-5
Lesson 6
Data Type
Enum
Possible to ensure that the Case Structure
includes a case for every item in the enum.
Right-click the border of the Case Structure
and select Add Case for Every Value to
create a case for every item.
Error Cluster
Case Structure includes an Error Case and a
No Error Case.
Wire an error cluster to the terminal to
execute code if there is no error and skip
code if there is an error.
Output tunnels require that you define a value for each case.
2
3
1
2
3
6-6
| ni.com
National Instruments
| 6-7
8-6
|
.nicom
Goal
Modify a VI to use a Case structure to make a software decision.
Scenario
You created a VI where a user inputs a temperature, a maximum temperature, and a minimum temperatu
relationship of the given inputs. However, a situation could occur that causes the VI to work incorrectly. Fo
temperature that is less than the minimum temperature. Modify the VI to generate a different string to aler
Limit. Set the Warning? indicator to TRUE to indicate the error.
Design
Modify the flowchart created for the original Temperature Warnings VI as shown in Figure 6-3.
MinTeempT >=
Max Temp
Yes
Create Error
Output
Upper Limit
< Lower Limit
and TRUE
9-6
You must add a Case structure to the Temperature Warnings VI to execute the code if the maximum temperature is less than
or equal to the minimum temperature. Otherwise, the VI does not execute the code. Instead, the VI generates a new string
and the Warning? indicator is set to TRUE.
Figure 6-4. Original
Temperature Warnings VI Block
Diagram
Implementation
1.
2.
3.
Open the block diagram and create space to add the Case structure.
Tip To select more than one item press the <Shift> key while yo
Instruments
While the objects are still selected, use the left arrow key on the keybo
Tip Press and hold the <Shift> key to move the objects in five p
Tip Press the <Ctrl> key and use the Positioning tool to drag ou
|
Select the Weather Data Out type-define cluster terminal, the Bundle
While the terminals are still selected, use the right arrow key on the keyboard to move the indicators
Select the wire connecting the Weather Data In terminal and the Bundle by Name function.
While the wire is still selected, use the up arrow key on the keyboard to move the wire upward.
-6
|10 .ni
com
4. Modify the block diagram similar to that shown in Figure 6-5, Figure 6-6, and Figure 6-7. This VI is par
1
2
3
4
Less?Compares the Max Temperature and Min Temperature. Make sure the Less? function is outside the
Case structure.
Case StructureDo not include the Weather Data In, Error In, Weather Data Out, or Error Out terminals in
the Case structure because these controls and indicators are used by both cases.
Set True and False casesWith the True case visible, right-click the border of the Case structure and select
Make this Case False.
Case StructureWire the Error In terminal to the selector terminal to create No Error and Error cases. By
default, the Case structure has True and False cases. These cases change to Error and No Error cases only
after you wire Error In to the selector terminal.
True caseIf the Max Temperature is set lower than the Min Temperature, the True case executes.
Click the case selector label to choose the True case.
True ConstantWhen the True case executes, the Temperature Warning? LED illuminates in the Weather
Data Out cluster.
String ConstantIf the Max Temperature is set lower than the Min Temperature, the warning
Upper Limit < Lower Limit displays on the front panel. Enter the text in the String Constant.
3
5.
Predict the values for Temperature Warning Text and Temperature Warning? given each set of inputs.
Table 6-1. Predict Values for Temperature Warnings VI
|InstrumentsNational
Current Temperature
30
25
10
25
11-6
6.
Create the Error case in the outer Case structure so this VI can be used as a subVI.
Figure 6-7. Temperature Warnings VIError Case
7.
Test
1.
2.
Test the VI by entering values from Table 6-2 in the Current Temperature, Max Temperature, and Min Temperature
controls and running the VI for each set of data.
Table 6-2 shows the expected Temperature Warning Text and Temperature Warning? Boolean value for each set
of data.
Table 6-2. Testing Values for Temperature Warnings VI
Current Temperature
30
25
10
25
What happens if you set the value for all three inputs to 10?
3.
Test the Error case. To use this VI as a subVI, the VI must be able to handle an error coming into the VI. Test the
Error case to make sure that this VI can output the error information it receives.
On the front panel, use the Operating tool to click the status Boolean indicator inside the Error In cluster so
that the indicator turns red and enter 7 in the code control.
Run the VI. The error information you entered passes through the Error case in the VI and is output in the
Error Out cluster.
Display the block diagram, select the No Error case, highlight execution, and then run the VI again to see
the error pass through the Error case.
4.
On the front panel, right-click the border of the Error Out cluster and select Explain Error to display
information about the error that was returned.
Save and close the VI.
Lesson 6
B. Event-Driven Programming
Objective:
Event-driven
programming
Event
6-14
| ni.com
National Instruments
| 6-15
Lesson 6
Notify(Green arrow) Notify events inform you that a user action occurred. LabVIEW has
already performed the default action associated with that event.
Filter(Red arrow) Filter events allow you to validate or change the event data before
LabVIEW performs the default action associated with that event. You also can discard the
event entirely to prevent the change from affecting the VI.
Note A single case in the Event structure cannot handle both notify and filter events. A
case can handle multiple notify events but can handle multiple filter events only if the
event data items are identical for all events.
6-16
| ni.com
National Instruments
| 6-17
Description
First you observe the behavior of a polling VI.
Next, you modify the polling VI to create a more efficient, event-driven VI and observe the changes in
behavior.
Finally, you add different types of events to the VI.
Table 6-3 lists the events you will implement in the UI Event Handler VI you create.
Table 6-3. User Interface Events
Event
Stop: Value Change
Time Check: Value Change
Pane: Mouse Down
Panel Close?
Stop: Mouse Enter
2.
Open the Events.lvproj file in the <Exercises>\LabVIEW Core 1\Events directory and
open the Polling VI from the project.
Examine the performance of a polling VI using the Windows Task Manager.
Press the <Ctrl-Alt-Delete> keys and select Start Task Manager from the menu.
3.
Open the block diagram, turn on execution highlighting, and run the VI again.
4.
Notice how often the Time Check terminal sends data to the Case structure and how often the
While Loop iterates.
5.
S
av
e
P
oll
in
g
VI
as
U
I
E
v
e
n
t
H
a
n
d
l
e
r
.
v
i
so
yo
u
ca
n
m
o
dif
y
it.
S
el
ec
t
O
p
e
n
a
d
di
ti
o
n
al
c
o
p
y
a
n
d
a
d
d
th
e
co
py
to
th
e
pr
oj
ec
t.
2.
Close Polling.vi.
3.
Open the block diagram of UI Event Handler.vi and move the Stop terminal and
the Time Check terminal outside the While Loop. You move these terminals into
the appropriate event cases later in this exercise.
4.
5.
Place an Event structure inside the While Loop between the iteration terminal and the conditional
terminal.
6.
Right-click the Event structure and select Edit Events Handled by This Case from the shortcut
menu.
|InstrumentsNational 19-6
7.
1
2
8.
9.
Place a True constant inside the new "Stop": Value Change event and wire it to the conditional
terminal of the While Loop as shown in Figure 6-9.
1 NewVal event dataResize the event data items list so that only one item displays. Click the
item and select NewVal.
8. Notice that the Stop button stays depressed even though the mechanical action is set to Latch When Released. The reason the
is because the VI stopped running after you clicked the button.
9. Reset the Stop button by clicking it again.
21-6
10. Drag the terminal of the Stop button into the "Stop": Value Change event as shown in Figure 6-10.
Figure 6-10. Stop: Value Change Event with Stop Button Terminal
Add a new event case and create a Time Check: Value Change event as
shown in Figure 6-11.
Event Case.
1
2
1 In the Edit Events window, select Time Check in the Event Sources panel and Value Change
in the Events panel.
2 Move the Time Check terminal from outside the While Loop into the "Time Check": Value
Change event case.
3 Get Date/Time In SecondsCreates a time stamp in memory.
4 IndicatorDisplays the current time output of the Get Date/Time In Seconds function.
2. Run the VI.
3. Click the Time Check button to see the current time display in the current time indicator.
4. Display the Task Manager window and notice that CPU usage has decreased when you use events instead of p
InstrumentsNational
|
23-6
-6 24
|
.ni
com
1
2
3
1
2
3
In the Edit Events window, select PanesPane in the Event Sources panel and
MouseMouse Down in the Events panel.
Coords event dataClick the event data node and select CoordsAll Elements.
Coords indicatorRight-click the output of the Coords event data item and select
CreateIndicator from the shortcut menu.
2.
3.
4.
Notice that the Coords indicator displays the coordinates for each point you click.
Add a new event case and create a Panel Close? event as shown in Figure 6-13.
Figure 6-13. Event Structure with Panel Close? Event
5
4
1
3
1
2
3
4
5
After you add the event, in the Edit Events window, select <This VI> in the Event Sources panel and
Panel Close? in the Events panel.
Event data nodeClick the Event Data Node and select Source from the menu.
Two Button Dialog function and Not functionWire the T button? output to the Not function and wire the
Not function to the Discard? event filter node.
String constantWire Are you sure you want to close the window? to the message input.
Yes and No string constantsWire Yes to the T button name ("OK") input and wire No to the F button
name ("Cancel") input.
2.
3.
4.
Notice that clicking the No button cancels the event and returns to the VI.
5.
6.
Challenge
1.
If you have a sound card, add an event that produces a sound when the cursor is over the Stop button.
Lesson 6
Place Boolean control terminals inside an event case for latched operations to
work properly.
Avoid using an Event structure outside of a loop.
Think about the VIs that you will need to develop at your
job.
Will you use event-based programming to implement any of your VIs? Why or why not?
Additional Resources
Learn More About
Event-driven programming
6-26
| ni.com
2.
3.
Which of the following can NOT be used as the case selector input to a Case structure?
a.
Error cluster
b.
Array
c.
Enum
d.
String
How many events can an Event structure handle each time it executes?
a.
As many as have occurred since the last time the event structure executed
b.
c.
One
b.
c.
d.
National Instruments
| 6-27
2.
3.
Which of the following can NOT be used as the case selector input to a Case structure?
a.
Error cluster
b.
Array
c.
Enum
d.
String
How many events can an Event structure handle each time it executes?
a.
As many as have occurred since the last time the event structure executed
b.
c.
One
b.
c.
d.
National Instruments
| 6-29
Modularity
In this lesson you will learn to recognize the benefits of
reusing code and will be able to create a subVI with a
properly configured connector pane, meaningful icon,
documentation, and error handling.
Topics
+
Understanding Modularity
Icon
Connector Pane
Documentation
Using SubVIs
Exercises
Exercise 7-1
A. Understanding Modularity
Objective:
Recognize the benefit of using modular code and identify sections of code that
could be reused.
SubVI
SubVIsReusing Code
SubVIs are similar to a subroutine in text-based programming languages. Use subVIs when you
have code that performs identical operations on different parts of your block diagram or in another
VI.
National Instruments
| 7-3
Lesson 7
Modularity
SubVIs
The following pseudo-code and block diagrams demonstrate the analogy between subVIs and
subroutines.
Function Code
function average (in1, in2, out)
{
out = (in1 + in2)/2.0;
}
B. Icon
Objective:
Icon
Recognize characteristics of a good icon and use the LabVIEW Icon Editor to
create a custom icon.
Purpose of Icon
This icon displayed in the upper right corner of the front panel is the same as the icon that
appears when you place the VI on the block diagram.
7-4
| ni.com
National Instruments
| 7-5
Lesson 7
Modularity
C. Connector Pane
Objective:
Connector Pane A set of terminals that correspond to the controls and indicators of that VI, similar
to the parameter list of a function call in text-based programming languages.
The connector pane defines the inputs and outputs you can wire to the VI so
you can use it as a subVI.
Patterns
A connector pane receives data at its input terminals and passes the data to the block diagram
code through the front panel controls and receives the results at its output terminals from the front
panel indicators. The connector pane is displayed next to the icon on the front panel window. You
can select from many different patterns depending on how many inputs and outputs are required.
7-6
| ni.com
Assigning Terminals
Click the connector pane terminal and then click the front panel control or indicator to assign the
terminal.
1 Current Temperature
2 Max Temperature
3 Min Temperature
Standards
The standard connector pane, shown in the following figure is 4 x 2 x 2 x 4.
National Instruments
| 7-7
Lesson 7
Modularity
D. Documentation
Objective:
Explain how to document code in LabVIEW using descriptions and tip strips, and
describe four methods for documenting code on the block diagram.
1
2
7-8
| ni.com
2
1
1
2
Free label
Owned label
E. Using SubVIs
Objective:
Demonstrate how to place subVIs on the block diagram, explain terminal settings
and error handling, and create subVIs from a section of existing code.
National Instruments
| 7-9
Lesson 7
Modularity
Terminal Settings
You can designate which inputs and outputs are required, recommended, and optional to prevent
users from forgetting to wire subVI terminals. LabVIEW sets inputs and outputs of VIs you create
to Recommended by default. Set a terminal to required only if the VI must have the input to run
properly.
In the Context Help window, terminal labels appear differently depending on their setting.
Appearance
Bold
Plain
Dimmed
Handling Errors
Use a Case structure to handle errors passed into the subVI.
7-10
| ni.com
2.
3.
Double-click the icon to open the subVI and edit the icon and connector pane.
National Instruments
| 7-11
Scenario
You have created a VI that determines a warning string based on the inputs given. Create an icon and a connector
pane so that you can use this VI as a subVI.
Design
The Temperature Warnings VI contains the following inputs and outputs:
Table 7-1. Temperature Warnings VI Inputs and Outputs
Inputs
Weather Data In
Error In
Use the standard connector pane terminal pattern to assure room for future expansion.
Implementation
1.
2.
3.
Connect the inputs and outputs to the connector pane as shown in Figure 7-1.
Figure 7-1. Connector Pane Connections for Temperature Warnings VI
1
2
Connector PaneLocated in the upper right corner of the VI window, the connector pane displays potential
terminals for the VI. The connector pane shown here displays the standard pattern of terminals. You can rightclick the connector pane and select Patterns to choose different terminal designs.
ConnectionsThe Context Help window displays the connections for the VI.
Using the Wiring tool, click the upper-left terminal of the connector pane.
Notice that the connector pane terminal fills in with a color to match the data type of
the control connected to it.
Click the bottom-left terminal of the connector pane.
4.
Continue wiring the connector pane until all controls and indicators are wired, and
the Context Help window matches that shown in Figure 7-1.
Create an icon.
Right-click the icon and select Edit Icon.
|InstrumentsNational 13-7
Use the tools in the Icon Editor dialog box to create an icon. Make the icon as simple or as
complex as you want, however, it should be representative of the function of the VI. Figure
7-2 shows a simple example of an icon for this VI.
Figure 7-2. Sample Warning Icon
Tip Double-click the Selection tool to select the existing graphic. Press the <Delete> key
to delete the graphic. Then, double-click the rectangle tool to automatically create a
border for the icon.
Tip Double-click the Text tool to modify fonts. You can select Small Fonts to choose
fonts smaller than 9 points in size.
Tip Select the Glyphs tab and filter the glyphs by the keyword temperature, then
drag a thermometer glyph onto your icon. And then filter by the keyword warning and
drag a warning glyph onto your icon.
5.
Click OK when you are finished to close the Icon Editor dialog box.
6.
Test
Test the Temperature Warnings VI as a SubVI.
1.
Add files to the Weather Warnings LabVIEW project as shown in Figure 7-3.
Figure 7-3. Weather Warnings
Project
The Shared Files folder contains shared files that you use in this and future exercises.
|
InstrumentsNational
15-7
2.
Open the SubVI Tester VI and complete the block diagram as shown in Figure 7-4.
Figure 7-4. Test SubVI Block Diagram
1
1
2
3
4
5
6
3.
Initialize shift registerRight-click the left shift register and select CreateConstant to initialize
the shift register. Right-click the cluster and select View Cluster as Icon.
Enum ConstantRight-click the Units (0:Celsius) input of the Thermometer (Demo) VI and
select CreateConstant. Creating the enum constant from the Thermometer (Demo) VI
automatically populates the enum with the appropriate choices. Use the Operating tool to select
Celsius.
Thermometer (Demo)Locate this VI in the Shared Files folder in the Project Explorer
window, drag it to the block diagram and wire it as shown. This VI generates sample
temperature values.
Wire the Units (0:Celsius) constant to the Units element of the Bundle By Name function.
Bundle By NameExpand the node to display four elements. Use the Operating tool to select
Units.
Temperature WarningsBecause of the modifications you made to Temperature Warnings VI,
you can use it as a subVI. Wire the Temperature Warnings VI using the connections you just
created.
4.
On the front panel of the SubVI Tester VI, enter test values for the Max Temperature and Min
Temperature controls.
5.
6.
Notice how Temperature Warning Text indicator changes as the temperature rises and falls.
7.
After you have finished testing, save and close the VI.
Lesson 7
Modularity
Additional Resources
Learn More About
SubVIs
Icons
Documentation
7-18
| ni.com
2.
On a subVI, which terminal setting causes a broken VI if the terminal is not wired?
a.
Required
b.
Recommended
c.
Optional
True
b.
False
National Instruments
| 7-19
2.
On a subVI, which terminal setting causes a broken VI if the terminal is not wired?
a.
Required
b.
Recommended
c.
Optional
True
b.
False
You do not need to create a custom icon to use a VI as a subVI, but it is highly
recommended to increase the readability of your code.
National Instruments
| 7-21
Acquiring
Measurements
from Hardware
In this lesson you will learn about the differences between
NI DAQ systems and instrument control and how LabVIEW
connects to hardware to get real-world measurements.
Topics
+
Exercises
Exercise 8-1
Exercise 8-2
Exercise 8-3
Exercise 8-4
Sensor
DAQ Device
Computer
Bus
Signal
Conditioning
DAQmx
The following table lists common sensors and the phenomenon they measure.
Sensor
Thermocouple, RTD, thermistor
Photo sensor
Microphone
Strain gage, piezoelectric transducer
Potentiometer, LVDT, optical encoder
Accelerometer
pH probe
You can group real-world signals as analog, digital or counters.
Signal Type
Analog
Digital
Counter
8-4
| ni.com
Implementation
Complete the following steps to examine the configuration for the DAQ device in the computer
using MAX. Use the test routines in MAX to confirm operation of the device. If you do not have a
DAQ device, you can simulate a device using the instructions in step 3.
Note Portions of this exercise can only be completed with the use of a real device and
a BNC-2120, shown in Figure 8-1. Some of these steps have alternative instructions
for simulated devices.
1.
2.
If you have a DAQ device installed, skip step 3 and go to the Examining the DAQ Device
Settings section.
3.
Create an NI-DAQmx simulated device to allow you to complete the exercises without
hardware.
Right-click Devices and Interfaces and select Create New from the shortcut menu.
In the Create New dialog box, select Simulated NI-DAQmx Device or Modular
Instrument.
In the Create Simulated NI-DAQmx Device dialog box, select M Series DAQ
NI PCI 6225.
Click the OK button.
2
3
3
1. RES+
2. AI GND
3. AI SENSE
4. RES-
BNC
5
6
FS
FS
FS
FS
10
0.1-10 kHz
11
12
Sine/Triangle
13
14
15
LO
Amplitude Adjus
1
2
3
4
5
6
7
8
9
10
11
12
8-6
| ni.com
2.
Select the device that is connected to your machine. Green icons represent real devices and
yellow icons represent simulated devices. You might have a different device installed, and
some of the options shown might be different.
MAX displays National Instruments hardware and software in the computer. The device alias
appears in quotes following the device type. The Data Acquisition VIs use this device alias to
determine which device performs DAQ operations. MAX also displays the attributes of the
device such as the system resources that the device uses. Figure 8-2 shows the simulated
PCI-6225 device.
Make sure the device you use is named Dev 1. To rename a device, right-click the device
and select Rename from the shortcut menu.
Figure 8-2. MAX with Device and Interfaces Expanded
Tip The Show Help/Hide Help button in the top right corner of MAX is available for
certain items. Click the Show Help/Hide Help button to hide online help or show the
DAQ device information.
3.
Select the Device Routes tab at the bottom of MAX to see detailed information about the
internal signals that can be routed to other destinations on the device, as shown in Figure 8-3.
This is a powerful resource that gives you a visual representation of the signals
National Instruments
| 8-7
Lesson 8
that are available to provide timing and synchronization with components that are on the
device and other external devices.
Figure 8-3. Device Routes
4.
Select the Settings tab, as shown in Figure 8-4, to see information about the last time the
device was calibrated both internally and externally. Not all devices contain calibration
information.
Figure 8-4. Calibration
5.
8-8
| ni.com
If you are using a physical device, right-click the NI-DAQmx device in the configuration tree
and select Self-Calibrate to update the built-in calibration constants and calibrate the DAQ
device using a precision voltage reference source. When the device has been calibrated,
information in the Self-Calibration section updates. Skip this step if you are using a
simulated device.
Click the Self-Test button in MAX to test the device. The device should pass the test
because it is already configured.
2.
Click the Test Panels button to test the individual functions of the DAQ device, such as
analog input and output. The Test Panels dialog box appears.
Use the Analog Input tab to test the various analog input channels on the DAQ device.
Click the Analog Input tab. Click the Start button to acquire data from analog input
channel 0 and click the Stop button when you finish.
If you are using the BNC-2120, make sure the switch over the AI 0 connector is in the
Temp. Ref. position to connect the temperature sensor to ai0. Place your finger on
the sensor to see the voltage rise.
If you are using a simulated device, a sine wave is shown on all input channels.
Use the Analog Output tab to set up a single voltage or sine wave on one of the DAQ
device analog output channels. Click the Analog Output tab.
Select Sinewave Generation in the Mode drop-down menu and click the Start
button. MAX generates a continuous sine wave on analog output channel 0.
If you have hardware installed, you can read the sine wave that channel 0 outputs. On
the BNC-2120, wire Analog Out Ch0 to Analog In Ch1. Click the Analog Input tab
in the Test Panels dialog box and select Dev1/ai1 from the Channel Name dropdown menu. Click the Start button to acquire data from analog input channel 1. MAX
displays the sine wave from analog output channel 0.
Use the Digital I/O tab to test the digital lines on the DAQ device. Click the Digital I/O
tab.
In the Select Direction section, set lines 0 through 3 as output as shown in
Figure 8-5.
Figure 8-5. Digital I/O Line Direction
Click Start to begin the digital output test, then toggle the switches in the Select State
section shown in Figure 8-6. If you have a BNC-2120, toggling the switches turns the
LEDs on or off. Notice that the LEDs use negative logic.
Figure 8-6. Digital I/O Switches
National Instruments |
8-9
Lesson 8
If you have hardware installed, you can verify counter/timer operations by selecting
Edge Counting from the Mode drop-down menu and clicking the Start button. The
Counter Value indicator increments rapidly. Click Stop to stop the counter test.
Click the Close button to close the Test Panel dialog box and return to MAX.
8-10
| ni.com
NI MAX
DAQ Assistant
DAQmx API
1: AT-MIO-64E-3
National Instruments
| 8-11
Lesson 8
8-12
| ni.com
Create task
Configure task
Start task
Clear task
1
2
3
4
5
6
Create taskThe DAQmx Create Virtual Channel VI creates a channel and adds it to a task.
Configure taskThe DAQmx Timing VI configures the starting and stopping of a task or the triggering of an application.
Start taskThe DAQmx Start Task VI starts the task.
Acquire or generate dataThe DAQmx Read VI or DAQmx Write VI acquires or generates data. You must select a compatible instance from the pulldown menu.
Clear taskThe DAQmx Clear Task VI stops the task and releases resources.
Check for errorsUse the Simple Error Handler VI or other manual error handling techniques to check for and respond to errors in your data acquisition
application.
|InstrumentsNational 13-8
Scenario
Explore a DAQmx example program that continuously acquires a voltage signal on channel analog input 1 (AI1) of a DAQ device. Modify the VI to use a digital trigger. The VI begins
measuring when the user sends a digital trigger to the device. In this exercise, the user sends a trigger by turning the Quadrature Encoder knob on the BNC-2120. The VI stops
measuring when the user clicks the Stop button on the front panel of the VI.
ImplementationExternal Connections
1.
If you are using the BNC-2120, connect the Sine/Triangle output on the function generator to channel AI 1 with a BNC cable, and make sure the switch on the function
generator is set to the sine wave. Also, ensure that there is a wire connecting the UP/DN screw terminal to the PFI 1 screw terminal in the Timing I/O section.
Note The UP/DN terminal on the BNC-2120 outputs a high or a low signal indicating the rotation direction of the Quadrature Encoder knob. When you rotate the
Quadrature Encoder knob clockwise, the UP/DN terminal outputs a high signal. When you rotate the Quadrature Encoder knob counterclockwise, the UP/DN
terminal outputs a low signal. In this exercise, this signal triggers the VI to start acquiring data.
Open Voltage - Continuous Input.vi in the <Exercises>\LabVIEW Core 1\Using DAQmx directory. This VI demonstrates how to acquire a continuous amount of
data from a DAQ device.
2.
Select FileSave As to save the VI as <Exercises>\LabVIEW Core 1\Triggered Analog Input\Trigger AI Acquisition.vi. When prompted, select Copy Substitute copy for original.
3.
1
2
1 DAQmx Create Virtual Channel VIClick the pull-down menu and notice it is set to Analog InputVoltage.
2 Press <Ctrl-H> to open the Context Help window. Hover over each of the DAQmx functions to learn about each function.
3 Property NodeGets or sets properties for a reference. You can learn more about Property Nodes in LabVIEW Core 2 or refer to the LabVIEW Help
4. Set the default values and settings on the front panel.
Use the Frequency Selection switch and the Frequency Adjust knob on the BNC-2120 to change the frequency of the generated an
Modify the block diagram as shown in Figure 8-8 to add trigger functionality. After you modify this VI, the VI waits
for a trigger before acquiring data.
Figure 8-8. Trigger AI Acquisition VI Block Diagram
1
4
1
2
3
4
DAQmx Trigger VIPlace to the right of the DAQmx Configure Logging VI. Delete the task out and error out
wires from the DAQmx Configure Logging VI and then wire them through the DAQmx Trigger VI to the DAQmx
Start Task VI.
Configure the triggerClick the DAQmx Trigger VI pull-down menu and select StartDigital Edge.
Create controlsRight-click the source input and the edge input of the DAQmx Trigger VI and select
CreateControl.
Free labelCreate a label and enter Trigger Settings.
2.
Modify the front panel and set the default settings as shown in Figure 8-9.
Figure 8-9. Trigger AI Acquisition VI Front Panel
2
1
2
3
4
Move the Acquired Data groupSelect all the items in the Acquired Data group and shift them to the right.
<Shift>-click to select multiple items and press <Shift-arrow key> to move them.
Create Trigger Settings groupCopy a container from another group, label the copy Trigger Settings, and
place the edge and source controls in it.
Select Rising in the edge control.
Select Dev1/PFI1 in the source control.
3.
4.
Run the VI. Turn the Quadrature Encoder knob on the BNC-2120 counterclockwise then clockwise to begin the
acquisition.
5.
Lesson 8
8-18
| ni.com
National Instruments
| 8-19
Lesson 8
Set Up
This exercise uses the NI Instrument Simulator to simulate an instrument. Before MAX can
recognize the NI Instrument Simulator as a device with a GPIB interface, you must configure the NI
Instrument Simulator using the Instrument Simulator Wizard.
Complete the following steps to configure the NI Instrument Simulator to have a GPIB interface.
1.
Set the configuration switch on the rear panel to CFG, as shown in Figure 8-10.
Figure 8-10. NI Instrument Simulator
Power on the NI Instrument Simulator using the power switch on the front of the unit.
Verify that the PWR LED is lit and the RDY LED is flashing.
Note This wizard is installed with the NI Instrument Simulator Software, available for
download at ni.com.
Click Next.
Click Next.
On the Select Interface page, select GPIB Interface and click Next.
Click Next.
Click Update.
Click OK when you get the message that the update was successful.
8-20
| ni.com
Power off the NI Instrument Simulator using the power switch on the front of the unit.
Power on the NI Instrument Simulator using the power switch on the front of the unit.
Verify that both the PWR and RDY LEDs are lit.
Implementation
1.
Launch MAX by either double-clicking the icon on the desktop or by selecting Tools
Measurement & Automation Explorer in LabVIEW.
2.
Expand the Devices and Interfaces section to display the installed interfaces. If a GPIB
interface is listed, the NI-488.2 software is correctly loaded on the computer.
Select the GPIB interface.
Examine but do not change the settings for the GPIB interface.
3.
Expand the GPIB interface selected in the Devices and Interfaces section. An
instrument named Instrument Simulator appears.
Click the Communicate with Instrument button on the toolbar. An interactive window
appears. You can use it to query, write to, and read from that instrument.
Enter *IDN? in the Send String text box and click the Query button. The instrument
returns its make and model number in the String Received indicator as shown in Figure
8-11. You can use this communicator window to debug instrument problems or to verify
that specific commands work as described in the instrument documentation.
Enter MEASURE:VOLTAGE:DC? in the Send String text box and click the Query button. The
NI Instrument Simulator returns a simulated voltage measurement.
National Instruments |
8-21
Lesson 8
4.
Set a VISA alias of devsim for the NI Instrument Simulator so you can use the alias instead of
having to remember the primary address.
While Instrument Simulator is selected in MAX, click the VISA Properties tab.
Enter devsim in the VISA Alias on My System field. You use this alias later in the
course.
Click Save.
5.
6.
8-22
| ni.com
Provide a high-level API, meaning that VIs perform multiple instructions, thereby simplifying
the code.
Do not require knowledge of different bus protocols, such as GPIB or serial, that you might
use to connect with the instrument.
The VIs in an instrument driver are organized into six categories. These categories are
summarized in the following table.
Category
Initialize
Configure
Action/Status
Data
Utility
Close
8-24
| ni.com
Implementation
Install the instrument driver for the NI Instrument Simulator. After installation, explore the VIs that
the instrument driver provides and the example programs that are added to the NI Example Finder.
Figure 8-12. NI Instrument Simulator
2.
3.
4.
If you do not have an ni.com profile, follow the onscreen instructions to create one at this
time. Be sure to make a note of the user ID and password you create.
5.
After you log in, click the Scan for Instruments button. If you have an instrument connected,
clicking this button detects the instrument and finds the correct driver. In this case, it detects
the Instrument Simulator.
6.
Double-click Instrument Simulator in the list and click the Search button.
7.
Select Version 2.0 of the instrument driver from the Driver list.
8.
9.
National Instruments
| 8-25
Lesson 8
If you have it open, close LabVIEW and then navigate to the <Exercises>\LabVIEW Core
1\Instrument Driver directory. This folder contains a zip file with the LabVIEW Plug and
Play instrument drivers for the Instrument Simulator.
2.
Right-click the zip file and follow the wizard to extract all files to the <Program
Files>\National Instruments\LabVIEW 2014\instr.lib directory.
3.
4.
5.
2.
Verify that the PWR and RDY LEDs are lit on the Instrument Simulator.
3.
Select devsim from the VISA Resource Name control on the front panel. You specified the
VISA alias for this GPIB instrument as devsim in step 4 of Exercise 8-3, Instrument
Configuration with NI MAX.
4.
5.
6.
7.
Explore the palette and subpalettes using the Context Help window to familiarize yourself
with the functionality of functions on the palette.
8.
9.
I/OInstrument
10. Select the same VISA resource name you selected in step 3.
11. Run the VI.
12. Select a different function from the Waveform Function control.
13. Run the VI again.
14. Explore the block diagram of the VI.
To familiarize yourself with the VIs functionality, explore the block diagram using the
Context Help window.
8-26
| ni.com
Open to the block diagram of the Read Waveform VI. Notice that it uses VISA functions to
communicate with the instrument.
15. Close the VIs and project when you are finished. Do not save changes.
Additional Resources
Learn More About
Creating a DAQ system
NI MAX
8-28
| ni.com
2.
3.
b.
c.
A configurable Express VI
d.
Automate processes
b.
c.
d.
True
b.
False
National Instruments
| 8-29
2.
3.
b.
c.
A configurable Express VI
d.
Automate processes
b.
c.
d.
True
b.
False
National Instruments
| 8-31
9 Accessing Files
in LabVIEW
In this lesson you will learn to describe the basic concept of
file I/O and apply the appropriate File I/O functions to a
given scenario.
Topics
+
Exercises
Exercise 9-1
Exercise 9-2
Identify the steps for writing and reading files from a LabVIEW application.
1 Open File
2 Read/Write File
operation.
9-4
| ni.com
Scenario
The Spreadsheet Example VI does the following:
Displays the 2D array in a Table indicator with three columns (Sine, Noise, and Cosine) for
the first 14 rows of the array.
Plots each column in a Waveform Graph indicator.
Uses the Write To Spreadsheet File VI to save the numeric 2D array in a text file so a
spreadsheet application can access the file.
Implementation
Complete the following steps to examine how the Spreadsheet Example VI performs the tasks
described in the Scenario section.
1. Open Spreadsheet Example.lvproj in the
<Exercises>\LabVIEW Core 1\Spreadsheet Example directory.
2.
3.
4.
5.
National Instruments
| 9-5
Lesson 9
Sine Pattern VIReturns a numeric array of 128 elements containing a sine pattern. The
constant 90.0, in the second instance of the Sine Pattern VI, specifies the phase of the
sine pattern which generates the cosine pattern.
Uniform White Noise VIReturns a numeric array of 128 elements containing a noise
pattern.
Build Array functionBuilds the following 2D array from the sine array, noise array, and
cosine array.
Sine Array
Noise Array
Cosine Array
Write To Spreadsheet File VIFormats the 2D array into a spreadsheet string and
writes the string to a file. The string has the following format, where an arrow ( )
indicates a tab, and a paragraph symbol () indicates an end of line character.
S
6.
9-6
| ni.com
Note This example stores only three arrays in the file. To include more arrays,
increase the number of inputs to the Build Array function.
7.
Open the wave.txt file using a word processor, spreadsheet application, or text editor and
view its contents.
Open a word processor, spreadsheet application, or text editor, such as Notepad or
WordPad.
8.
Open wave.txt. The sine waveform data appear in the first column, the random
(noise) waveform data appear in the second column, and the cosine waveform data
appear in the third column.
Exit the word processor or spreadsheet application and return to LabVIEW.
National Instruments
| 9-7
Lesson 9
1
2
3
4
File Refnums
File refnums identify unique file I/O sessions.
9-8
| ni.com
String Functions
To write data to a text file, you must first convert the data into a string data type. Use the items
from the String palette to convert numerics and other data types to text.
Tip Refer to the LabVIEW Help for details about formatting a string using the
Format Into String function.
National Instruments
| 9-9
Scenario
You have been given a VI that plots the current temperature and the average of the last three temperatures. Modify the VI to log the current temperature to an ASCII file.
Implementation
1.
2.
3.
1 Open/Create/Replace FileCreates or replaces an existing file for the data log. Right-click the operation input and select CreateCo
Set the constant to replace or create.
2 Format Into StringFormats temperature data into a string. Expand the node to accept two inputs.
3 End of Line ConstantAdds an end-of-line constant after each piece of data so that data values are separated by line breaks.
4 Write to Text FileWrites the data to a file.
5 OrStops the VI when an error occurs or when the Stop Button is clicked.
6 Close FileCloses the data log file created or replaced when the VI started running.
7 Simple Error HandlerIndicates whether an error occurred. If an error occurred, this VI returns a description of the error and optiona
box.
|InstrumentsNational
11-9
4.
1
2
3
4
1
2
Format Into StringDouble-click the Format Into String function to open the Edit Format String dialog box.
Use specified precisionPlace a checkmark in this checkbox and enter 3 in the text box to specify that data have a floating point precision of three digits.
3
4
Corresponding format stringThis text box automatically updates based on the configuration you specify. After you click the OK button in the dialog box, the block diagram
updates to display the format string.
Help buttonClick the Help button for more information about format specifier elements, such as %3f, and configuration options for the Format Into String function.
5.
6.
Click the Stop button after the VI has been running for a few samples.
Challenge
Objective:
To improve the usability of the log file, you are asked to include a header at the top of the log file as shown in Figure 9-5.
Figure 9-5. Temperature Monitor VI Log File with Header
Because you write the header to the text file only once, you should write to the header outside the While Loop.
Use the functions on the Strings palette to manipulate and format a string for use in a word processing or spreadsheet application.
|InstrumentsNational 13-9
-9 14
Challenge
Objective:
|
.ni com
Modify the VI to write both the current temperature and the average temperature to the log file. Separate the columns of data with a tab character and place
a header at the top of each column as shown in Figure 9-6.
Figure 9-6. Temperature Monitor VI Log File with Two Columns and Headers
Hint: Use the Format Into String function and expand it to convert and format the data into a string.
ASCIIAn ASCII file is a specific type of binary file that is a standard used by most programs. It consists of a series of ASCII codes. ASCII files
are also called text files.
LVMThe LabVIEW measurement data file (.lvm) is a tab-delimited text file you can open with a spreadsheet application or a text-editing
application. The .lvm file includes information about the data, such as the date and time the data was generated. This file format is a specific type of
ASCII file created for LabVIEW.
BinaryBinary files are the underlying file format of all other file formats.
TDMSThis file format is a specific type of binary file created for National Instruments products. It actually consists of two separate filesa binary
file that contains data and stores properties about the data, and a binary index file that provides consolidated information on all the attributes and
pointers in the binary file.
Easily Exchangeable
Additional Resources
Learn More About
File I/O
Streaming data to disk
National Instruments
| 9-15
2.
After opening a file, which output does the Open/Create/Replace File I/O function return?
a.
File path
b.
File name
c.
Refnum out
d.
Task out
ASCII
b.
Binary
c.
TDMS
d.
LVM
National Instruments
| 9-17
2.
After opening a file, which output does the Open/Create/Replace File I/O function return?
a.
File path
b.
File name
c.
Refnum out
d.
Task out
ASCII
b.
Binary
c.
TDMS
d.
LVM
National Instruments
| 9-19
10
Using
Sequential and
State Machine
Programming
In this lesson you will learn how to identify sequential and
state programming and explore the State Machine design
pattern.
Topics
+
State Machines
Exercises
Exercise 10-1 Weather Station Project
Flow-Through Parameters
To enforce sequential programming in LabVIEW, you can complete sequential tasks by placing
each task in a separate subVI, and wiring the subVIs in the order you want them to execute using
the error cluster wires.
However, in this example, only two of the tasks have a error cluster. Using the error clusters, you
can force the execution order of the two DAQ Assistants, but not the One Button Dialog functions,
as shown in the following figure.
National Instruments
| 10-3
Lesson 10
Sequence Structures
A Sequence structure contains one or more subdiagrams, or frames, that execute in sequential
order; a frame cannot begin execution until everything in the previous frame has completed
execution.
Sequence structures guarantee the order of execution, but prohibit parallel operations.
You cannot stop the execution part way through the sequence.
Use Sequence structures sparingly because they do not enforce error checking and will
continue to go through a sequence even after errors are detected.
10-4
| ni.com
Transition
Condition, action, or event that causes the program to move to the next state.
Initialize
Acquistion
Stop = TRUE
National Instruments
| 10-5
Lesson 10
C. State Machines
Objective:
10-6
| ni.com
Sequential process
UI-Driven process
Sequential Process
Depending on the result of each states test, a different state might be called.
Can happen continually, resulting in an in-depth analysis of the process you are testing
UI-Driven Process
Different user actions process different code and act as a state in the state machine.
Each segment can lead to another segment for further processing or wait for another user
action.
The state machine constantly monitors the user for the next action to take.
Applications require an initialization state, followed by a default state, where many different
actions can be performed. The actions performed can depend on previous and current inputs
and states. A shutdown state commonly performs clean up actions.
National Instruments
| 10-7
Lesson 10
Initialize
Acquistion
and
Stop = FALSE
Time
Check
Warning = FALSE
Stop = TRUE
10-8
| ni.com
Scenario
You must design a VI for a user interface state machine. The VI acquires a temperature every half
second, analyzes each temperature to determine if the temperature is too high or too low, and
alerts the user if there is a danger of heatstroke or freeze. The program logs the data if a warning
occurs. If the user has not clicked the stop button, the entire process repeats. The state machine
must also allow for expansion, because processes may be added in the future.
Design
Use a flowchart and states list to create the VI in this exercise. The flowchart in Figure 10-1 illustrates the
data flow for this design.
|InstrumentsNational 9-10
Initialize
Acquistion
Stop = FALSE
Warning = TRUE
Analysis
Data log
Stop = TRUE
Analysis
Data Log
Time Check
Implementation
1.
2.
|InstrumentsNational 11-10
Figure 10-2 shows the front panel of the Weather Station UI VI that has been provided for you. You modify the block
diagram to create a state machine for the Weather Station.
Figure 10-2. Weather Station UI VI Front Panel Window
Figure 10-3 shows the starting point of the block diagram for the Weather Station UI VI. You
edit this block diagram to implement a state machine for the Weather Station application.
Figure 10-3. Weather Station UI VI Block Diagram
Starting
|InstrumentsNational 13-10
3.
Open the block diagram and create an Enum constant to the left of the While Loop.
Right-click the constant and select Edit Items from the shortcut menu.
Right-click the enum constant on the block diagram and select Make Type Def.
4.
Modify the new type definition and add it to the Weather Station project.
Right-click the enum constant and select Open Type Def.
5.
In the Project Explorer window, notice that Weather Station States.ctl has been added to your
Supporting Files folder because that folder is an auto-populating folder.
Control the state machine with the type-defined enum and update the framework as shown in Figure 10-5.
Figure 10-5. Weather Station UI VI Block Diagram
5
4
1
1
2
3
4
5
Shift RegisterRight-click the While Loop and select Add Shift Register.
Enum type definition constantRight-click and select Visible ItemsLabel. Change the label to
Beginning State. Wire the Beginning State constant to the shift register to initialize the shift register
to the Acquisition state. Wire the shift register to the case selector of the Case Structure.
Add more casesRight-click the Case structure and select Add Case For Every Value to create
different cases for each value in the enum.
Weather Data InDrag Weather Data.ctl from the Project Explorer window to the block diagram to
create a type definition cluster constant. Right-click the cluster and select View Cluster As Icon.
Shift RegisterPlace a shift register on the While Loop and wire the Weather Data In constant to it.
Note After you finish wiring the Acquisition case in step 6, some tunnels are empty because not
all cases are wired yet.
1
2
3
4
5
Thermometer or Thermometer (Demo)Drag one of these VIs from the Shared Files folder
in the Project Explorer window to the block diagram. Drag the Thermometer VI if you have
hardware and drag the Thermometer (Demo) VI if you do not have hardware.
Temperature HistoryMove this indicator into the Acquisition state of the Case structure.
Bundle By NameWire the Temperature Value output of the Thermometer VI to the Current
Temperature input.
Next State enum<Ctrl>-click the Beginning State enum and drag a copy into the
Acquisition case. Rename this copy of the Weather Station States type definition Next
State. Set the enum to Analysis and wire it through a tunnel on the Case structure to the
shift register on the While Loop.
True ConstantCreate a True constant and wire it through the Case structure to the Elapsed
Time shift register. The True constant resets the Elapsed Time counter every time the VI
executes the Acquisition case.
7.
|InstrumentsNational
1 Upper Limit and Lower LimitMove these controls from outside the While Loop.
2 Bundle By NameReplaces the Max Temperature and Min Temperature items with the
Bundle By Name function makes it possible to wire the Upper Limit and Lower Limit value
3 Temperature WarningsDrag the Temperature Warnings VI from the Supporting Files
4 Unbundle By NameReturns the value of specific items from the cluster.
5 SelectDetermines which state to execute next depending on whether or not a warning
6 Weather Station StatesWire two copies of the Weather Station States type definition to
Beginning State enum.
7 WarningMove this indicator from outside the While Loop.
17-10
8.
1
2
3
4
5
6
9.
1
2
3
4
5
Next StateWire two copies of the Weather Station States type definition to the Select function.
SelectDetermines which state to execute next depending on whether or not time has elapsed.
Stop ButtonMove the Stop Button terminal from outside the While Loop. Wire the Stop Button terminal to the Or
function outside of the Case structure.
Next State wireWire the tunnel for the Next State wire to the shift register.
Use default if unwiredRight-click these tunnels and select Use Default If Unwired.
Test
1.
2.
3.
4.
Notice the changes in the upper and lower limit values and the placement of tabs and line breaks.
5.
6.
The Simple State Machine template is a customizable application which is in the form of a
.lvproj file with supporting VIs and type definition controls.
Initialize
Wait for
Event
User
State 1
User
State 2
Additional Resources
Learn More About
Sequential Design
State Machines
Events
10-22
| ni.com
2.
When using a Sequence structure, you can stop the execution in the middle of a sequence.
a.
True
b.
False
Which of the following are benefits of using a state machine instead of a sequential
structure?
a. You can change the order of the sequence.
b.
c.
You can set conditions to determine when an item in the sequence should execute.
d.
National Instruments
| 10-23
When using a Sequence structure, you can stop the execution in the middle of a sequence.
a.
True
b.
False
You cannot stop the execution in the middle of a sequence.
2.
Which of the following are benefits of using a state machine instead of a sequential
structure?
a. You can change the order of the sequence.
b.
c.
You can set conditions to determine when an item in the sequence should execute.
d.
National Instruments
| 10-25
Additional
Information and
Resources
National Instruments provides global services and support
as part of our commitment to your success. Take advantage
of product services in addition to training and certification
programs that meet your needs during each phase of the
application life cycle; from planning and development
through deployment and ongoing maintenance.
A. NI Services
To get started, register your product at ni.com/myproducts.
As a registered NI product user, you are entitled to the following benefits:
Log in to your National Instruments ni.com User Profile to get personalized access to your
services.
Maintenance and Hardware ServicesNI helps you identify your systems accuracy and
reliability requirements and provides warranty, sparing, and calibration services to help you
maintain accuracy and minimize downtime over the life of your system. Visit ni.com/
services for more information.
Warranty and RepairAll NI hardware features a one-year standard warranty that is
extendable up to five years. NI offers repair services performed in a timely manner by
highly trained factory technicians using only original parts at a National Instruments
service center.
CalibrationThrough regular calibration, you can quantify and improve the measurement
performance of an instrument. NI provides state-of-the-art calibration services. If your
product supports calibration, you can obtain the calibration certificate for your product at
ni.com/calibration.
System IntegrationIf you have time constraints, limited in-house technical resources, or
other project challenges, National Instruments Alliance Partner members can help. To learn
more, call your local NI office or visit ni.com/alliance.
Training and CertificationThe NI training and certification program is the most effective
way to increase application development proficiency and productivity. Visit ni.com/training
for more information.
The Skills Guide assists you in identifying the proficiency requirements of your current
application and gives you options for obtaining those skills consistent with your time and
budget constraints and personal learning preferences. Visit ni.com/ skills-guide to
see these custom paths.
NI offers courses in several languages and formats including instructor-led classes at
facilities worldwide, courses onsite at your facility, and online courses to serve your
individual needs.
Technical SupportSupport at ni.com/support includes the following resources:
National Instruments |
A-3
Appendix A
Declaration of Conformity (DoC)A DoC is our claim of compliance with the Council of the
European Communities using the manufacturers declaration of conformity. This system
affords the user protection for electromagnetic compatibility (EMC) and product safety. You
can obtain the DoC for your product by visiting ni.com/certification.
For information about other technical support options in your area, visit ni.com/services, or
contact your local office at ni.com/contact.
You also can visit the Worldwide Offices section of ni.com/niglobal to access the branch
office websites, which provide up-to-date contact information, support phone numbers, email
addresses, and current events.
A-4
| ni.com