Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

LabVIEW Introduction: A 6-Hour Hands-On Course for Data Acquisition and Analysis, Study notes of Mechanical Engineering

A comprehensive introduction to labview, a software tool for designing test, measurement, and control systems developed by national instruments. The labview environment, data acquisition, math and complex analysis functions, data types, and displaying and printing results. It also includes exercises for setting up hardware, acquiring signals, and performing analysis using the software.

Typology: Study notes

Pre 2010

Uploaded on 08/30/2009

koofers-user-zg8
koofers-user-zg8 🇺🇸

10 documents

1 / 122

Toggle sidebar

Related documents


Partial preview of the text

Download LabVIEW Introduction: A 6-Hour Hands-On Course for Data Acquisition and Analysis and more Study notes Mechanical Engineering in PDF only on Docsity! 6-Hour Hands-On Introduction to LabVIEW © National Instruments Corporation 1 Introduction to LabVIEW Hands-On Course Goals • Become comfortable with the LabVIEW environment and data flow execution • Ability to use LabVIEW to solve problems • LabVIEW Concepts – Acquiring, saving and loading data – Find and use math and complex analysis functions – Work with data types, such as arrays and clusters – Displaying and printing results This is a list of the objectives of the course. This course prepares you to do the following: • Use LabVIEW to create applications. • Understand front panels, block diagrams, and icons and connector panes. • Use built-in LabVIEW functions. • Create and save programs in LabVIEW so you can use them as subroutines. • Create applications that use plug-in DAQ devices. This course does not describe any of the following: • Programming theory • Every built-in LabVIEW function or object • Analog-to-digital (A/D) theory NI does provide free reference materials on the above topics on ni.com. The LabVIEW Help is also very helpful: LabVIEW»Help»Search the LabVIEW Help… Introduction to LabVIEW Hands-On 2 ni.com Virtual Instrumentation Applications • Design – Signal and Image Processing – Embedded System Programming • (PC, DSP, FPGA, Microcontroller) – Simulation and Prototyping – And more… • Control – Automatic Controls and Dynamic Systems – Mechatronics and Robotics – And more… • Measurements – Circuits and Electronics – Measurements and Instrumentation – And more… Design Prototype Deploy A single graphical development platform Virtual Instrumentation Applications Virtual instrumentation is applicable in many different types of applications, starting from design to prototyping and deployment. The LabVIEW platform provides specific tools and models to solve specific applications ranging from designing signal processing algorithms to making voltage measurements and can target any number of platforms from the desktop to embedded devices – with an intuitive, powerful graphical paradigm. With version 8, LabVIEW scales from design and development on PCs to several embedded targets from ruggedized toaster size prototypes to embedded systems on chips. LabVIEW streamlines system design with a single graphical development platform. In doing so, LabVIEW encompasses better management of distributed, networked systems because as the targets for LabVIEW grow varied and embedded, you will need to be able to more easily distribute and communicate between various LabVIEW code pieces in your system. © National Instruments Corporation 5 Introduction to LabVIEW Hands-On The NI Approach – Integrated Hardware Platforms High-Speed Digitizers High-Resolution Digitizers and DMMs Multifunction Data Acquisition Dynamic Signal Acquisition Digital I/OInstrument Control Counter/ Timers Machine Vision Motion Control Distributed I/O and Embedded Control Laptop PC PDADesktop PCPXI Modular Instrumentation Signal Conditioning and Switching Unit Under Test Integrated Hardware Platforms A virtual instrument consists of an industry-standard computer or workstation equipped with powerful application software, cost-effective hardware such as plug-in boards, and driver software, which together perform the functions of traditional instruments. Virtual instruments represent a fundamental shift from traditional hardware-centered instrumentation systems to software-centered systems that exploit the computing power, productivity, display, and connectivity capabilities of popular desktop computers and workstations. Although the PC and integrated circuit technology have experienced significant advances in the last two decades, software truly offers the flexibility to build on this powerful hardware foundation to create virtual instruments, providing better ways to innovate and significantly reduce cost. With virtual instruments, engineers and scientists build measurement and automation systems that suit their needs exactly (user-defined) instead of being limited by traditional fixed-function instruments (vendor-defined). Introduction to LabVIEW Hands-On 6 ni.com Section I – LabVIEW Environment A. Getting Data into your Computer • Data Acquisition Devices – NI-DAQ – Simulated Data Acquisition – Sound Card B. LabVIEW Environment • Front Panel / Block Diagram • Toolbar /Tools Palette C. Components of a LabVIEW Application • Creating a VI • Data Flow Execution D. Additional Help • Finding Functions • Tips for Working in LabVIEW © National Instruments Corporation 7 Introduction to LabVIEW Hands-On What type of device should I use? xxx—Triggering x AC/DC 2–4 16–80 — 14–18 bit 250 K–1.2 Ms/s NI PCI DAQ somexxPortable 20kS/s–2 GS/s10–200 KS/s8–44 KS/sAI Bandwidth x AC/DC 0 2 12–24 bit Instruments* x AC/DC 1–2 8–16 12–16 bit NI USB DAQ —Calibrated ACAC or DC 2AO Channels 2AI Channels 12–16 bitAccuracy Sound Card* * The above table may not be representative of all device variations that exist in each category What type of device should I use? There are many types of data acquisition and control devices on the market. A few have been highlighted above. The trade-off usually falls between sampling rate (samples/second), resolution (bits), number of channels, and data transfer rate (usually limited by “bus” type: USB, PCI, PXI, etc.). Multifunction DAQ (data acqusion) devices are ideal because they can be used in a wide range of applications. USB-6008 & USB-6009 Low-Cost USB DAQ The National Instruments USB-6009 provides basic data acquisition functionality for applications such as simple data logging, portable measurements, and academic lab experiments. The NI USB-6008 and NI USB-6009 are ideal for students. Create your own measurement application by programming the NI USB-6009 using LabVIEW and NI-DAQmx driver software for Windows. For Mac OS X and Linux users, download and use the NI-DAQmx Base driver. NI USB-6009 Specifications: • Eight 14-bit analog inputs • 12 digital I/O lines • 2 analog outputs • 1 counter http://www.ni.com/daq/ Introduction to LabVIEW Hands-On 10 ni.com What is MAX? • MAX stands for Measurement & Automation Explorer. • MAX configures and organizes all your National Instruments DAQ, PCI/PXI instruments, GPIB, IMAQ, IVI, Motion, VISA, and VXI devices. • Used for configuring and testing devices. Icon Found on Windows Desktop The next level of software we are concerned with is called Measurement & Automation Explorer (MAX). MAX is a software interface that gives you access to all of your National Instruments DAQ, GPIB, IMAQ, IVI, Motion, VISA, and VXI devices. The shortcut to MAX will be placed on your desktop after installation. A picture of the icon is shown above. MAX is mainly used to configure and test your National Instruments hardware, but it does offer other functionality such as checking to see if you have the latest version of NI-DAQ installed. When you run an application using NI-DAQmx, the software reads the MAX configuration to determine the devices you have configured. Therefore, you must configure DAQ devices first with MAX. The functionality of MAX is broken into seven categories: • Data Neighborhood • Devices and Interfaces • IVI Instruments • Scales • Historical Data • Software • VI Logger Tasks For this course, we will focus on Data Neighborhood, Devices and Interfaces, Scales, and Software. We will now step through each one of these categories and learn about the functionality each one offers. © National Instruments Corporation 11 Introduction to LabVIEW Hands-On Exercise 1.1 – Testing Your Device (Track A) In this exercise you will use Measurement and Automation Explorer (MAX) to test your NI USB-6009 DAQ device. 1. Launch MAX by double-clicking the icon on the desktop or by selecting Start»Programs»National Instruments»Measurement & Automation. 2. Expand the Devices and Interfaces section to view the installed National Instruments devices. MAX displays the National Instruments hardware and software in the computer. 3. Expand the NI-DAQmx Devices section to view the installed hardware that is compatible with NI-DAQmx. The device number appears in quotes following the device name. The data acquisition VIs use this device number to determine which device performs DAQ operations. You will see your hardware listed as NI USB- 6009: “Dev1”. 4. Perform a self-test on the device by right-clicking it in the configuration tree and choosing Self-Test or clicking “Self-Test” along the top of the window. This tests the system resources assigned to the device. The device should pass the test because it is already configured. 5. Check the pinout for your device. Right-click the device in the configuration tree and select Device Pinouts or click “Device Pinouts” along the top of the center window. 6. Open the test panels. Right-click the device in the configuration tree and select Test Panels… or click “Test Panels…” along the top of the center window. The test panels allow you to test the available functionality of your device, analog input/output, digital input/output, and counter input/output without doing any programming. 7. On the Analog Input tab of the test panels, change Mode to “Continuous” and Rate to 10,000 Hz. Click “Start” and hum or whistle into your microphone to observe the signal that is plotted. Click “Finish” when you are done. 8. On the Digital I/O tab notice that initially the port is configured to be all input. Observe under Select State the LEDs that represent the state of the input lines. Click the “All Output” button under Select Direction. Notice you now have switches under Select State to specify the output state of the different lines. Toggle line 0 and watch the LED light up. Click “Close” to close the test panels. 9. Close MAX. Introduction to LabVIEW Hands-On 12 ni.com 10. On the Digital I/O tab notice that initially the port is configured to be all input. Observe under Select State the LEDs that represent the state of the input lines. Click the “All Output” button under Select Direction. Notice you now have switches under Select State to specify the output state of the different lines. Click “Close” to close the test panels. 11. Close MAX. (End of Exercise) © National Instruments Corporation 15 Introduction to LabVIEW Hands-On Exercise 1.1 – Setting Up Your Device (Track C) In this exercise, you will use Windows utilities to verify your sound card and prepare it for use with a microphone. 1. Prepare your microphone for use. Double-click the volume control icon on the task bar to open up the configuration window. The sound configuration window can also be found from the Windows Control Panel: Start Menu»Control Panel»Sounds and Audio Devices»Advanced. 2. If you do not see a microphone section, go to Options»Properties»Recording and place a checkmark in the box next to Microphone. This will display the Microphone volume control. Click “OK”. 3. Uncheck the Mute box if it is not already unchecked. Make sure that the volume is turned up. 4. Close the volume control configuration window. 5. Open the Sound Recorder by selecting Start»Programs»Accessories»Entertainment»Sound Recorder. 6. Click the record button and speak into your microphone. Notice how the sound signal is displayed in the Sound Recorder. 7. Click stop and close the Sound Recorder without saving changes when you are finished. Uncheck Mute (End of Exercise) Introduction to LabVIEW Hands-On 16 ni.com LabVIEW LabVIEW is a graphical programming language that uses icons instead of lines of text to create applications. In contrast to text-based programming languages, where instructions determine program execution, LabVIEW uses dataflow programming, where the flow of data determines execution order. You can purchase several add-on software toolkits for developing specialized applications. All the toolkits integrate seamlessly in LabVIEW. Refer to the National Instruments Web site for more information about these toolkits. LabVIEW also includes several wizards to help you quickly configure your DAQ devices and computer-based instruments and build applications. LabVIEW Example Finder LabVIEW includes hundreds of example VIs you can use and incorporate into VIs that you create. In addition to the example VIs that ship with LabVIEW, you also can access hundreds of example VIs on the NI Developer Zone (zone.ni.com). You can modify an example VI to fit an application, or you can copy and paste from one or more examples into a VI that you create. Start»All Programs»National Instruments LabVIEW Startup Screen: Start from a Blank VI: New»Blank VI Start from an Example: Examples»Find Examples… » or Open and Run LabVIEW © National Instruments Corporation 17 Introduction to LabVIEW Hands-On Functions (and Structures) Palette (Place items on the Block Diagram Window) Structure: While Loop Use the Functions palette to build the block diagram. The Functions palette is available only on the block diagram. To view the palette, select Window»Show Functions Palette. You also can display the Functions palette by right-clicking an open area on the block diagram. Tack down the Functions palette by clicking the pushpin on the top left corner of the palette. Introduction to LabVIEW Hands-On 20 ni.com • Recommended: Automatic Selection Tool • Tools to operate and modify both front panel and block diagram objects Operating Tool Positioning/Resizing Tool Labeling Tool Wiring Tool Tools Palette Automatic Selection Tool Automatically chooses among the following tools: If automatic tool selection is enabled and you move the cursor over objects on the front panel or block diagram, LabVIEW automatically selects the corresponding tool from the Tools palette. Toggle automatic tool selection by clicking the Automatic Tool Selection button in the Tools palette. Use the Operating tool to change the values of a control or select the text within a control. Use the Positioning tool to select, move, or resize objects. The Positioning tool changes shape when it moves over a corner of a resizable object. Use the Labeling tool to edit text and create free labels. The Labeling tool changes to a cursor when you create free labels. Use the Wiring tool to wire objects together on the block diagram. Other important tools: © National Instruments Corporation 21 Introduction to LabVIEW Hands-On Run Button Continuous Run Button Abort Execution Execution Highlighting Button Additional Buttons on the Diagram Toolbar Status Toolbar Retain Wire Values Button Step Function Buttons • Click the Run button to run the VI. While the VI runs, the Run button appears with a black arrow if the VI is a top-level VI, meaning it has no callers and therefore is not a subVI. • Click the Continuous Run button to run the VI until you abort or pause it. You also can click the button again to disable continuous running. • While the VI runs, the Abort Execution button appears. Click this button to stop the VI immediately. Note: Avoid using the Abort Execution button to stop a VI. Either let the VI complete its data flow or design a method to stop the VI programmatically. By doing so, the VI is at a known state. For example, place a button on the front panel that stops the VI when you click it. • Click the Pause button to pause a running VI. When you click the Pause button, LabVIEW highlights on the block diagram the location where you paused execution. Click the Pause button again to continue running the VI. • Select the Text Settings pull-down menu to change the font settings for the VI, including size, style, and color. • Select the Align Objects pull-down menu to align objects along axes, including vertical, top edge, left, and so on. • Select the Distribute Objects pull-down menu to space objects evenly, including gaps, compression, and so on. • Select the Resize Objects pull-down menu to change the width and height of front panel objects. Introduction to LabVIEW Hands-On 22 ni.com • Block diagram execution – Dependent on the flow of data – Block diagram does NOT execute left to right • Node executes when data is available to ALL input terminals • Nodes supply data to all output terminals when done Dataflow Programming LabVIEW follows a dataflow model for running VIs. A block diagram node executes when all its inputs are available. When a node completes execution, it supplies data to its output terminals and passes the output data to the next node in the dataflow path. Visual Basic, C++, JAVA, and most other text-based programming languages follow a control flow model of program execution. In control flow, the sequential order of program elements determines the execution order of a program. Consider the block diagram above. It adds two numbers and then multiplies by 2 from the result of the addition. In this case, the block diagram executes from left to right, not because the objects are placed in that order, but because one of the inputs of the Multiply function is not valid until the Add function has finished executing and passed the data to the Multiply function. Remember that a node executes only when data are available at all of its input terminals, and it supplies data to its output terminals only when it finishes execution. In the second piece of code, the Simulate Signal Express VI receives input from the controls and passes its result to the Graph. You may consider the add-multiply and the simulate signal code to co-exist on the same block diagram in parallel. This means that they will both begin executing at the same time and run independent of one another. If the computer running this code had multiple processors, these two pieces of code could run independent of one another (each on its own processor) without any additional coding. © National Instruments Corporation 25 Introduction to LabVIEW Hands-On Debugging Techniques • Finding Errors • Execution Highlighting • Probes Click on broken Run button. Window showing error appears. Click on Execution Highlighting button; data flow is animated using bubbles. Values are displayed on wires. Right-click on wire to display probe and it shows data as it flows through wire segment. You can also select Probe tool from Tools palette and click on wire. When your VI is not executable, a broken arrow is displayed in the Run button in the palette. • Finding Errors: To list errors, click on the broken arrow. To locate the bad object, click on the error message. • Execution Highlighting: Animates the diagram and traces the flow of the data, allowing you to view intermediate values. Click on the light bulb on the toolbar. • Probe: Used to view values in arrays and clusters. Click on wires with the Probe tool or right-click on the wire to set probes. • Retain Wire Values: Used in conjunction with probes to view the values from the last iteration of the program. • Breakpoint: Set pauses at different locations on the diagram. Click on wires or objects with the Breakpoint tool to set breakpoints. Introduction to LabVIEW Hands-On 26 ni.com Exercise 1.2 – Acquiring a Signal with DAQ (Track A) Note: Before beginning this exercise, copy the Exercises and Solutions Folders to the desktop of your computer. Complete the following steps to create a VI that acquires data continuously from your DAQ device. 1. Launch LabVIEW. 2. In the Getting Started window, click the New or VI from Template link to display the New dialog box. 3. Open a data acquisition template. From the Create New list, select VI»From Template»DAQ»Data Acquisition with NI-DAQmx.vi and click “OK”. 4. Display the block diagram by clicking it or by selecting Window»Show Block Diagram. Read the instructions written there about how to complete the program. 5. Double-click the DAQ Assistant to launch the configuration wizard. 6. Configure an analog input operation. a. Choose Analog Input»Voltage. b. Choose Dev1 (USB-6009)»ai0 to acquire data on analog input channel 0 and click “Finish.” c. In the next window you define parameters of your analog input operation. To choose an input range that works well with your microphone, on the settings tab enter 2 Volts for the maximum and –2 Volts for the minimum. On the task timing tab, choose “Continuous” for the acquisition mode and enter 10000 for the rate. Leave all other choices set to their default values. Click “OK” to exit the wizard. 7. Place the Filter Express VI to the right of the DAQ Assistant on the block diagram. From the functions palette, select Express»Signal Analysis»Filter and place it on the block diagram inside the while loop. When you bring up the functions palette, press the small push pin in the upper left hand corner of the palette. This will tack down the palette so that it doesn’t disappear. This step will be omitted in the following exercises, but should be repeated. In the configuration window under Filtering Type, choose “Highpass.” Under Cutoff Frequency, use a value of 300 Hz. Click “OK.” © National Instruments Corporation 27 Introduction to LabVIEW Hands-On oo ® + Unda Redo Test Add Channels Remove Channels Show Help x e Glick the Add Channels button to ade mora Channa fo the tank. [sl Voltage Input Setup 3) Settings he Calibration Terminal Configuration Differential i) Custom Sealing <NoScale> — [w] J2) ©) Sample (On Demand) ©)1 Sample (Hw Timed) COON Samples @ Continuous | Internal Rising Se Task Timing |p Task Triggering Clock Type Active Edge Clock Source samples To Read 1000 | Rate (Hz) | 10k) ‘ni Cypress Task | £2 Connection Diagram OK Cancel Introduction fo LabVIEW Hands-On (End of Exercise) 30 ni.com Exercise 1.2 – Acquiring a Signal with the Sound Card (Track C) Note: Before beginning this exercise, copy the Exercises and Solutions Folders to the desktop of your computer. Complete the following steps to create a VI that acquires data from your sound card. 1. Launch LabVIEW. 2. In the Getting Started window, click the Blank VI link. 3. Display the block diagram by pressing <Ctrl+E> or selecting Window»Show Block Diagram. 4. Place the Acquire Sound Express VI on the block diagram. Right-click to open the functions palette and select Express»Input»Acquire Sound. Place the Express VI on the block diagram. 5. In the configuration window under #Channels, select 1 from the drop-down list and click “OK”. 6. Place the Filter Express VI to the right of the Acquire Signal VI on the block diagram. From the functions palette, select Express»Signal Analysis»Filter and place it on the block diagram. In the configuration window under Filtering Type, choose “Highpass.” Under Cutoff Frequency, use a value of 300 Hz. Click “OK.” 7. Make the following connections on the block diagram by hovering your mouse over the terminal so that it becomes the wiring tool and clicking once on each of the terminals you wish to connect: a. Connect the “Data” output terminal of the Acquire Signal VI to the “Signal” input of the Filter VI. b. Create a graph indicator for the filtered signal by right-clicking on the “Filtered Signal” output terminal and choose Create»Graph Indicator. 8. Return to the front panel by pressing <Ctrl+E> or Window»Show Front Panel. 9. Run your program by clicking the run button. Hum or whistle into your microphone and observe the data you acquire from your sound card. 10. Save the VI as “Exercise 1.2 – Acquire.vi” in the Exercises folder. 11. Close the VI. Note: The solution to this exercise is printed in the back of this manual. (End of Exercise) © National Instruments Corporation 31 Introduction to LabVIEW Hands-On Context Help Window • Help»Show Context Help, press the <Ctrl+H> keys • Hover cursor over object to update window Additional Help – Right-Click on the VI icon and choose Help, or – Choose “Detailed Help.” on the context help window The Context Help window displays basic information about LabVIEW objects when you move the cursor over each object. Objects with context help information include VIs, functions, constants, structures, palettes, properties, methods, events, and dialog box components. To display the Context Help window, select Help»Show Context Help, press the <Ctrl+H> keys, or press the Show Context Help Window button in the toolbar Connections displayed in Context Help: Required – bold Recommended – normal Optional – dimmed Additional Help • VI, Function, & How-To Help is also available. – Help» VI, Function, & How-To Help – Right-click the VI icon and choose Help, or – Choose “Detailed Help.” on the context help window. • LabVIEW Help – reference style help – Help»Search the LabVIEW Help… Introduction to LabVIEW Hands-On 32 ni.com Section II – Elements of Typical Programs A. Loops • While Loop • For Loop B. Functions and SubVIs • Types of Functions • Creating Custom Functions (SubVI) • Functions Palette & Searching C. Decision Making and File IO • Case Structure • Select (simple If statement) • File I/O © National Instruments Corporation 35 Introduction to LabVIEW Hands-On Loops •While Loops – i terminal counts iteration – Always runs at least once – Runs until stop condition is met • For Loops – i terminal counts iterations – Run according to input N of count terminal While Loop For Loop Both the While and For Loops are located on the Functions»Structures palette. The For Loop differs from the While Loop in that the For Loop executes a set number of times. A While Loop stops executing the subdiagram only if the value at the conditional terminal exists. While Loops Similar to a Do Loop or a Repeat-Until Loop in text-based programming languages, a While Loop, shown at the top right, executes a subdiagram until a condition is met. The While Loop executes the sub diagram until the conditional terminal, an input terminal, receives a specific Boolean value. The default behavior and appearance of the conditional terminal is Stop If True. When a conditional terminal is Stop If True, the While Loop executes its subdiagram until the conditional terminal receives a TRUE value. The iteration terminal (an output terminal), shown at left, contains the number of completed iterations. The iteration count always starts at zero. During the first iteration, the iteration terminal returns 0. For Loops A For Loop, shown above, executes a subdiagram a set number of times. The value in the count terminal (an input terminal) represented by the N, indicates how many times to repeat the subdiagram. The iteration terminal (an output terminal), shown at left, contains the number of completed iterations. The iteration count always starts at zero. During the first iteration, the iteration terminal returns 0. Introduction to LabVIEW Hands-On 36 ni.com Drawing a Loop 1. Select the structure 2. Enclose code to be repeated 3. Drop or drag additional nodes and then wire Place loops in your diagram by selecting them from the Structures palette of the Functions palette: • When selected, the mouse cursor becomes a special pointer that you use to enclose the section of code you want to repeat. • Click the mouse button to define the top-left corner, click the mouse button again at the bottom-right corner, and the While Loop boundary is created around the selected code. • Drag or drop additional nodes in the While Loop if needed. © National Instruments Corporation 37 Introduction to LabVIEW Hands-On Searching for Controls, VIs, and Functions • Palettes are filled with hundreds of VIs • Press the search button to index the all VIs for text searching • Click and drag an item from the search window to the block diagram • Double-click an item to open the owning palette Use the buttons on top of the palette windows to navigate, search, and edit the palettes. You can search for controls, VIs, and functions that either contain certain words or start with certain words. Double clicking a search result opens the palette that contains the search result. You also can click and drag the name of the control, VI, or function directly to the front panel or block diagram. Introduction to LabVIEW Hands-On 40 ni.com Exercise 2.1 – Analysis (Track A, B, & C) Create a VI that produces a sine wave with a specified frequency and displays the data on a Waveform Chart until stopped by the user. 1. Open a blank VI from the Getting Started screen. 2. Place a chart on the front panel. Right-click to open the controls palette and select Controls»Modern»Graph»Waveform Chart. 3. Place a dial control on the front panel. From the controls palette, select Controls»Modern »Numeric»Dial. Notice that when you first place the control on the front panel, the label text is highlighted. While this text is highlighted, type “Frequency In” to give a name to this control. 4. Go to the block diagram (<Ctrl+E>) and place a while loop down. Right-click to open the functions palette and select Express»Execution Control»While Loop. Click and drag on the block diagram to make the while loop the correct size. Select the waveform chart and dial and drag them inside the while loop if they are not already. Notice that a stop button is already connected to the conditional terminal of the while loop. 5. Place the Simulate Signal Express VI on the block diagram. From the functions palette, select Express»Signal Analysis»Simulate Signal and place it on the block diagram inside the while loop. In the configuration window under Timing, choose “Simulate acquisition timing.” Click “OK.” 6. Place a Tone Measurements Express VI on the block diagram (Express»Signal Analysis»Tone Measurements). In the configuration window, choose Amplitude and Frequency measurements in the Single Tone Measurements section. Click “OK.” © National Instruments Corporation 41 Introduction to LabVIEW Hands-On 7. Make the following connections on the block diagram by hovering your mouse over the terminal so that it becomes the wiring tool and clicking once on each of the terminals you wish to connect: a. Connect the “Sine” output terminal of the Simulate Signal VI to the “Signals” input of the Tone Measurements VI. b. Connect the “Sine” output to the Waveform Chart. c. Create indicators for the amplitude and frequency measurements by right-clicking on each of the terminals of the Tone Measurements Express VI and selecting Create»Numeric Indicator. d. Connect the “Frequency In” control to the “Frequency” terminal of the Simulate Signal VI. 8. Return to the front panel and run the VI. Move the “Frequency In” dial and observe the frequency of the signal. Click the stop button once you are finished. 9. Save the VI as “Exercise 2.1 – Simulated.vi”. 10. Close the VI. Notes • When you bring up the functions palette, press the small push pin in the upper left hand corner of the palette. This will tack down the palette so that it doesn’t disappear. This step will be omitted in the following exercises, but should be repeated. • The solution to this exercise is printed in the back of this manual. (End of Exercise) Introduction to LabVIEW Hands-On 42 ni.com How Do I Make Decisions in LabVIEW? 1. Case Structures 2. Select (a) (b) (c) Case Structure The Case Structure has one or more subdiagrams, or cases, exactly one of which executes when the structure executes. The value wired to the selector terminal determines which case to execute and can be boolean, string, integer, or enumerated type. Right-click the structure border to add or delete cases. Use the Labeling tool to enter value(s) in the case selector label and configure the value(s) handled by each case. It is found at Functions»Programming»Structures»Case Structure. Select Returns the value wired to the t input or f input, depending on the value of s. If s is TRUE, this function returns the value wired to t. If s is FALSE, this function returns the value wired to f. The connector pane displays the default data types for this polymorphic function. It is found at Functions»Programming» Comparison»Select. • Example a: Boolean input: Simple if-then case. If the Boolean input is TRUE, the true case will execute; otherwise the FALSE case will execute. • Example b: Numeric input. The input value determines which box to execute. If out of range of the cases, LabVIEW will choose the default case. • Example c: When the Boolean passes a TRUE value to the Select VI, the value 5 is passed to the indicator. When the Boolean passes a FALSE value to the Select VI, 0 is passed to the indicator. © National Instruments Corporation 45 Introduction to LabVIEW Hands-On File I/O • File I/O – Allows recording or reading data in a file. • LabVIEW creates or uses the following file formats: – Binary: underlying file format of all other file formats – ASCII: regular text files – LVM: LabVIEW measurement data file – TDM: created for National Instruments products File I/O operations pass data from memory to and from files. In LabVIEW, you can use File I/O functions to: • Open and close data files • Read data from and write data to files • Read from and write to spreadsheet-formatted files • Move and rename files and directories • Change file characteristics • Create, modify, and read a configuration file The different file formats that LabVIEW can use or create are the following: • Binary – Binary files are the underlying file format of all other file formats. • ASCII – An ASCII file is a specific type of binary file that is a standard used by most programs. ASCII file are also called text files. • LVM – The LabVIEW measurement data file (.lvm) is a tab-delimited text file you can open with a spreadsheet application or a text-editing application. This file format is a specific type of ASCII file created for LabVIEW. The .lvm file contain information about the data, such as the date and time the data was generated. • TDM – This file format is a specific type of binary created for National Instruments products. It actually consists of two separate files: an XML section contains the data attributes, and a binary file for the waveform. Introduction to LabVIEW Hands-On 46 ni.com High Level File I/O Functions • Easy to use • High Level of abstraction Writing to LVM file Reading from LVM file High Level File I/O: These functions provide a higher level of abstraction to the user by opening and closing the file automatically before and after reading or writing data. Some of these functions are: o Write to Spreadsheet File – Converts a 1D or 2D array of single-precision numbers to a text string and writes the string to a new ASCII file or appends the string to an existing file. o Read From Spreadsheet File – Reads a specified number of lines or rows from a numeric text file beginning at a specified character offset and converts the data to a 2D single-precision array of numbers. The VI opens the file before reading from it and closes it afterwards. o Write to Measurement File – Express VI that writes data to a text-based measurement file (.lvm) or a binary measurement file (.tdm) format. o Read from Measurement File – An Express VI that writes data to a text-based measurement file (.lvm) or a binary measurement file (.tdm) format. You can specify the file name, file format and segment size. These functions are very easy to use and are excellent for simple applications. In the case where you will do constant streaming to the files by continuously writing to or reading from the file, there may be some overhead in using these functions. In the next example we will examine how to write to or read from LabVIEW Measurements files (*.lvm files). © National Instruments Corporation 47 Introduction to LabVIEW Hands-On Spreadsheet Formatting • Spreadsheet files are ASCII files with a certain formatting – Usually tabs between columns and end of line constants between rows – LabVIEW includes VIs that perform this formatting or a string can be concatenated Spreadsheets are usually ASCII files with a certain type of formatting. Two formatting methods are comma separated values (CSV) and tab delimited. Tab delimited files, which are the most popular, have tabs constants between columns of data and end of line constants between rows. LabVIEW includes VIs that perform this formatting: Write to Spreadsheet File takes either 1D or 2D arrays of numeric data, formats this data, and writes this information to file. Format Into File takes many different types of data (string, numeric, Boolean) and writes this information to file, using either a file path or file reference. This function can be resized to include as many data terminals as necessary. Array to Spreadsheet String is a string function that formats array data into a string that can be written to a text file. The Concatenate String function is used to create longer strings from shorter ones and is the most flexible when converting data to a string that can be written to a text file. Introduction to LabVIEW Hands-On 50 ni.com Exercise 2.4 – Write to Spreadsheet File 1. Open a blank new VI from the Getting Started screen. 2. Place the Open/Create/Replace File function on the block diagram. Right-click on the block diagram to open the functions palette and select File I/O » Open/Create/Replace File. 3. Right-click the operation terminal of the Open/Create/Replace File function and select Create » Constant from the shortcut menu, and select open or create from the drop down menu. 4. Place a While loop from the Structures palette on the block diagram to the right of the Open/Create/Replace File function. Right-click on the block diagram select Structures » While Loop. 5. Place a Write Text File function inside the While Loop. Right-click on the block diagram select File I/O » Write To Text File. 6. Wire the refnum out terminal from the Open/Create/Replace File function to the file (use dialog) terminal of the Write Text File function. 7. Wire the error out terminal from the Open/Create/Replace File function to the error in terminal of the Write Text File function. 8. Place an Array to Spreadsheet String function inside the while loop and to the left of the on Open/Create/Replace File function. Right-click on the block diagram and select String » Array to Spreadsheet String. 9. Right-click the format string terminal of the Array to Spreadsheet function and select Create » Constant from the shortcut menu and enter “%0.4f” in the string constant to format the input data. 10. Place a Build Array Function on the block diagram. Right-click on the block diagram and select Array » Build Array. 11. Place a Random Number inside the While Loop. Right-click on the block diagram and select Numeric » Random Number (0-1). 12. Wire the error out terminal of the Write Text File function to an output tunnel on the While Loop. 13. Place an Unbundle By Name function inside the While Loop. Right-click on the block diagram to open the functions palette and select Cluster & Variant » Unbundle By Name. 14. Wire the error out from the Write Text File function to the Unbundle By Name function. 15. Place an Or function in the While Loop. Right-click on the block diagram to open the functions palette and select Boolean » Or. 16. Switch to the front panel and place a stop button. Right-Click on the front panel to open the Controls palette and select Boolean » Stop Button. 17. On the block diagram, wire the status element of the error cluster to the x input of the Or function and wire the stop button to the y input. 18. Wire the output of the Or function to the conditional terminal of the While Loop. © National Instruments Corporation 51 Introduction to LabVIEW Hands-On 19. Place a Close File function to the right of the While Loop. Right-click on the block diagram to open the functions palette and select File I/O » Close File. 20. Wire the refnum output tunnel to the refnum input terminal of the Close File function. 21. Wire the error output tunnel to the error in terminal of the Close File function. 22. Return to the front panel and run the VI. You will be prompted to “Choose or enter path of file to open”, enter: “spreadsheet.xls”. 23. Click on the stop button to stop the execution of the VI. 24. Open the file named: “spreadsheet.xls”. 25. Save and the close the VI. (End of Exercise) Introduction to LabVIEW Hands-On 52 ni.com Charts – Add 1 data point at a time with history Waveform chart – special numeric indicator that can display a history of values • Chart updates with each individual point it receives Functions»Express»Graph Indicators»Chart The waveform chart is a special numeric indicator that displays one or more plots. The waveform chart is located on the Controls»Modern»Graph palette. Waveform charts can display single or multiple plots. The following front panel shows an example of a multi-plot waveform chart. You can change the min and max values of either the x or y axis by double clicking on the value with the labeling tool and typing the new value. Similarly, you can change the label of the axis. You can also right click the plot legend and change the style, shape, and color of the trace that is displayed on the chart. © National Instruments Corporation 55 Introduction to LabVIEW Hands-On Graphs – Display many data points at once Waveform graph – special numeric indicator that displays an array of data • Graph updates after all points have been collected • May be used in a loop if VI collects buffers of data Functions»Express»Graph Indicators»Graph Graphs are very powerful indicators in LabVIEW. The can are highly customizable, and can be used to concisely display a great deal of information. The properties page of the graph allows you to display settings for plot types, scale and cursor options, and many other features of the graph. To open the properties page, right- click the graph on the front panel and choose Properties. Graphs also allow you to create technical paper quality graphics with the “export simplified image” function. Right-click the graph, select Data Operations»Export Simplified Image… Introduction to LabVIEW Hands-On 56 ni.com • Loops can accumulate arrays at their boundaries with auto-indexing • For Loops auto-index by default • While Loops output only the final value by default • Right-click tunnel and enable/disable auto- indexing Building Arrays with Loops (Auto-Indexing) Wire becomes thicker Wire remains the same size Auto-Indexing Disabled Auto-Indexing Enabled Only one value (last iteration) is passed out of the loop 1D Array 0 1 2 3 4 5 5 For Loops and While Loops can index and accumulate arrays at their boundaries. This is known as auto-indexing. • The indexing point on the boundary is called a tunnel. • The For Loop default is auto-indexing enabled. • The While Loop default is auto-indexing disabled. Examples: • Enable auto-indexing to collect values within the loop and build the array. All values are placed in array upon exiting loop. • Disable auto-indexing if you are interested only in the final value. © National Instruments Corporation 57 Introduction to LabVIEW Hands-On How Do I Time a Loop? 1. Loop Time Delay • Configure the Time Delay Express VI for seconds to wait each iteration of the loop (works on For and While loops). 2. Timed Loops • Configure special timed While loop for desired dt. Timed LoopTime Delay Time Delay The Time Delay Express VI delays execution by a specified number of seconds. Following the rules of Data Flow Programming, the while loop will not iterate until all tasks inside of it are complete, thus delaying each iteration of the loop. Timed Loops Executes each iteration of the loop at the period you specify. Use the Timed Loop when you want to develop VIs with multi-rate timing capabilities, precise timing, feedback on loop execution, timing characteristics that change dynamically, or several levels of execution priority. Double-click the Input Node or right-click the Input Node and select Configure Timed Loop from the shortcut menu to display the Loop Configuration dialog box, where you can configure the Timed Loop. The values you enter in the Loop Configuration dialog box appear as options in the Input Node. Wait Until Next ms Multiple Waits until the value of the millisecond timer becomes a multiple of the specified millisecond multiple. Use this function to synchronize activities. You can call this function in a loop to control the loop execution rate. However, it is possible that the first loop period might be short. This function makes asynchronous system calls, but the nodes themselves function synchronously. Therefore, it does not complete execution until the specified time has elapsed. Functions»Programming»Timing»Wait Until Next ms Multiple Introduction to LabVIEW Hands-On 60 ni.com Control & Indicator Properties • Properties are characteristics or qualities about an object • Properties can be found by right clicking on a Control or Indicator • Properties Include: – Size – Color – Plot Style – Plot color • Features include: – Cursors – Scaling Properties are all the qualities of a front panel object. With properties, you can set or read such characteristics as foreground and background color, data formatting and precision, visibility, descriptive text, size and location on the front panel, and so on. © National Instruments Corporation 61 Introduction to LabVIEW Hands-On Exercise 3.1 – Manual Analysis (Track A, B, & C) Create a VI that displays simulated data on a waveform graph and measures the frequency and amplitude of that data. Use cursors on the graph to verify the frequency and amplitude measurements. 1. Open Exercise 2.1 – Simulated.vi. 2. Save the VI as “Exercise 3.1 – Manual Analysis.vi”. 3. Go to the block diagram and remove the While Loop. Right-click the edge of the loop and choose Remove While Loop so that the code inside the loop does not get deleted. 4. Delete the stop button. 5. On the front panel, replace the waveform chart with a waveform graph. Right-click the chart and select Replace»Modern»Graph»Waveform Graph. 6. Make the cursor legend viewable on the graph. Right-click on the graph and select Visible Items»Cursor Legend. 7. Change the maximum value of the “Frequency In” dial to 100. Double-click on the maximum value and type “100” once the text is highlighted. 8. Set a default value for the “Frequency In” dial by setting the dial to the value you would like, right-clicking the dial, and selecting Data Operations»Make Current Value Default. 9. Run the VI and observe the signal on the waveform graph. If you cannot see the signal, you may need to turn on auto-scaling for the x-axis. Right-click on the graph and select X Scale»AutoScale X. 10. Change the frequency of the signal so you can see a few periods on the graph. 11. Manually measure the frequency and amplitude of the signal on the graph using cursors. To make the cursors display on the graph, click on one of the three buttons in the cursor legend. Once the cursors are displayed, you can drag them around on the graph and their coordinates will be displayed in the cursor legend. 12. Remember that the frequency of a signal is the reciprocal of its period (f = 1/T). Does your measurement match the frequency and amplitude indicators from the Tone Measurements VI? 13. Save your VI and close it. Note: The solution to this exercise is printed in the back of this manual. (End of Exercise) Introduction to LabVIEW Hands-On 62 ni.com The Interactive MathScript Window • Rapidly develop and test algorithms (LabVIEW»Tools»MathScript Window) Output Window Variable Workspace View/Modify Variable Contents User Commands m-file Script • Share Scripts and Variables with the Node • View /Modify Variable content in 1D, 2D, and 3D The MathScript Window provides an interactive environment where equations can be prototyped and calculations can be made. The MathScript Window and Node share a common syntax and global variables making the move from prototype to implementation seamless. The data preview pane provides a convenient way to view variable data as numbers, graphically, or audibly (with soundcard support). Help for MathScript Help for the environment can be accessed using the Mathscript Interactive Environment Window. Type Help in the command window for an introduction to MathScript help. Help followed by a function will display help specific to that function. Features of the interactive MathScript Window: • Prototype equations and formulas through the command Window • Easily access function help by typing Help <function> in the Command Window • Select a variable to display its data in the Preview Pane and even listen to the result • Write, Save, Load, and Run m-files using the Script tab • Share data between the MathScript Node in LabVIEW and the MathScript Window using Global Variables • Advanced plotting features and image export features © National Instruments Corporation 65 Introduction to LabVIEW Hands-On Exercise 3.2 – MathScript (Track A, B, & C) Create a VI that uses the MathScript Node to alter your simulated signal and graph it. Use the Interactive MathScript Window to view and alter the data and then load the script you have created back into the MathScript Node. 1. Open Exercise 3.1 – Manual Analysis.vi. 2. Save the VI as “Exercise 3.2 – MathScript.vi”. 3. Go to the block diagram and delete the wire connecting the Simulate Signal VI to the Waveform Graph. 4. Place down a MathScript Node (Programming»Structures»MathScript Node). 5. Right-click on the left border of the MathScript Node and select Add Input. Name this input “In” by typing while the input node is highlighted black. 6. Right-click on the right border of the MathScript Node and select Add Output. Name this output “Out”. 7. Convert the Dynamic Data Type output of the Simulate Signals VI to a 1D Array of Scalars to input to the MathScript Node. Place a Convert from Dynamic Data Express VI on the block diagram (Express»Signal Manipulation»Convert from Dynamic Data). By default, the VI is configured correctly so click “OK” in the configuration window. 8. Wire the “Sine” output of the Simulate Signal VI to the “Dynamic Data” input of the Convert from Dynamic Data VI. 9. Wire the “Array” output of the Convert from Dynamic Data VI to the “In” node on the MathScript Node. 10. In order to use the data from the Simulate Signal VI in the Interactive MathScript Window it is necessary to declare the input variable as a global variable. Inside the MathScript Node type “global In;”. 11. Return to the front panel and increase the frequency to be between 50 and 100. Run the VI. 12. Open the Interactive MathScript Window (Tools»MathScript Window…). 13. In the MathScript Window, the Command Window can be used to enter in the command that you wish to compute. In the Command Window, type “global In” and press “Enter”. This will allow you to see the data passed to the variable “In” on the MathScript Node. Introduction to LabVIEW Hands-On 66 ni.com 14. Notice that all declared variables in the script along with their dimensions and type are listed on the “Variables” tab. To display the graphed data, click once on the variable In and change the drop down menu from “Numeric” to “Graph”. 15. Use the graph palette to zoom in on your data. 16. Right-click on “Cursor 1” and choose Bring to Center. What does this do? 17. Drag the cursor around. The cursor will not move if the zoom option is selected. 18. Right-click on the graph and choose Undock Window. What does this do? Close this new window when you are finished. © National Instruments Corporation 67 Introduction to LabVIEW Hands-On Exercise 3.3 – Apply What You Have Learned (Track A, B, & C) In this exercise, you will create a VI that uses what you have learned. Design a VI that does the following: 1. Acquire data from your device and graph it (either your DAQ device, your simulated device, or your sound card). 2. Filter that data using the Filter Express VI (Functions»Express»Signal Analysis»Filter). There should be a front panel control for a user configurable cut- off frequency. 3. Take a Fast Fourier Transform to get the frequency information from the filtered data and graph the result. Use the Spectral Measurements Express VI (Functions»Express»Signal Analysis»Spectral). 4. Find the dominant frequency of the filtered data using the Tone Measurements Express VI. 5. Compare that frequency to a user inputted limit. If the frequency is over that limit, light up an LED. If you have a USB-6009, light up the LED on your hardware using the DAQ Assistant. You will need to invert the digital line for the LED to light up when over the limit. You can specify this in the configuration window of the DAQ Assistant or with a “not” boolean function. 6. If you get stuck, open up the solution or view it at the end of this manual. (End of Exercise) Introduction to LabVIEW Hands-On 70 ni.com Section IV – Additional LabVIEW Topics A. Additional Data types • Cluster B. Data Flow Constructs • Shift Register C. SubVIs D. State Machines E. Local Variables F. Producer/Consumer © National Instruments Corporation 71 Introduction to LabVIEW Hands-On Introduction to Clusters • Data structure that groups data together • Data may be of different types • Analogous to struct in C • Elements must be either all controls or all indicators • Thought of as wires bundled into a cable • Order is important Clusters group like or unlike components together. They are equivalent to a record in Pascal or a struct in C. Cluster components may be of different data types. Examples: • Error information—Grouping a Boolean error flag, a numeric error code, and an error source string to specify the exact error. • User information—Grouping a string indicating a user’s name and an ID number specifying their security code. All elements of a cluster must be either controls or indicators. You cannot have a string control and a Boolean indicator. Clusters can be thought of as grouping individual wires (data objects) together into a cable (cluster). Introduction to LabVIEW Hands-On 72 ni.com Using Arrays and Clusters with Graphs The Waveform Datatype contains 3 pieces of data: • t0 = Start Time • dt = Time between Samples • Y = Array of Y magnitudes Two ways to create a Waveform Cluster: Build Waveform (absolute time) Cluster (relative time) The waveform data type carries the data, start time, and ∆t of a waveform. You can create waveforms using the Build Waveform function. Many of the VIs and functions you use to acquire or analyze waveforms accept and return the waveform data type by default. When you wire a waveform data type to a waveform graph or chart, the graph or chart automatically plots a waveform based on the data, start time, and ∆x of the waveform. When you wire an array of waveform data types to a waveform graph or chart, the graph or chart automatically plots all the waveforms. Build Waveform Builds a waveform or modifies an existing waveform with the start time represented as an absolute TimeStamp. Time Stamps are accurate to real-world time & date and are very useful for real-world data recording. Bundle Builds a waveform or modifies an existing waveform with a relative time stamp. The input to t0 is a DBL. Building waveforms using the bundle allows data to be plotted on the negative X (time) axis. © National Instruments Corporation 75 Introduction to LabVIEW Hands-On Shift Register – Access Previous Loop Data • Available at left or right border of loop structures • Right-click the border and select Add Shift Register • Right terminal stores data on completion of iteration • Left terminal provides stored data at beginning of next iteration Before Loop Begins First Iteration Second Iteration Last Iteration Value 3InitialValue Shift registers transfer data from one iteration to the next: • Right-click on the left or right side of a For Loop or a While Loop and select Add Shift Register. • The right terminal stores data at the end of an iteration. Data appears at the left terminal at the start of the next iteration. • A shift register adapts to any data type wired into it. An input of 0 would result in an output of 5 the first iteration, 10 the second iteration and 15 the third iteration. Said another way, shift registers are used to retain values from one iteration to the next. They are valuable for many applications that have memory or feedback between states. The feedback node is another representation of the same concept. (pictured below) Both programs pictured behave the same. See Help»Search the LabVIEW Help… for more information. Introduction to LabVIEW Hands-On 76 ni.com Modularity in LabVIEW – SubVIs Convert repeated functions and VIs with a single VI Modularity defines the degree to which your VI is composed of discrete components such that a change to one component has minimal impact on other components. In LabVIEW these separate components are called subVIs. Creating subVIs out of your code increases the readability and reusability of your VIs. In the upper image, we see repeated code allowing the user to choose between temperature scales. Since this portion of this code is identical in both cases, we can create a subVI for it. This will make the code more readable, by being less clustered, and will allow us to reuse code easily. As you can see, the code is far less cluttered now, achieves the exact same functionality and if needed, the temperature scale selection portion of the code can be reused in other applications very easily. Any portion of LabVIEW code can be turned into a subVI that in turn can be used by other LabVIEW code. © National Instruments Corporation 77 Introduction to LabVIEW Hands-On Icon and Connector Pane • Use this connector pane layout as a standard • Top terminals are usually reserved for references, such as a file reference • Bottom terminals are usually reserved for error clusters The Icon and Connector Pane allows you to define the data being transferred in and out of the subVI as well as its appearance in the main LabVIEW code. Every VI displays an icon in the upper-right corner of the front panel and block diagram windows. After you build a VI, build the icon and the connector pane so you can use the VI as a subVI. The icon and connector pane correspond to the function prototype in text-based programming languages. There are many options for the connector pane, but some general standards are specified above. Namely, to always reserve the top terminals for references and the bottom terminals for error clusters. To define a connector pane, right-click the icon in the upper right corner of the front panel and select Show Connector from the shortcut menu. Each rectangle on the connector pane represents a terminal. Use the terminals to assign inputs and outputs. Select a different pattern by right-clicking the connector pane and selecting Patterns from the shortcut menu. Introduction to LabVIEW Hands-On 80 ni.com Icon and Connector Pane – Create Icon • Create custom icons by right-clicking the icon in the upper right corner of the front panel or block diagram and selecting Edit Icon or by double- clicking the icon • You also can drag a graphic from anywhere in your file system and drop it on the icon • Refer to the Icon Art Glossary at ni.com for standard graphics to use in a VI icon An icon is a graphical representation of a VI. If you use a VI as a subVI, the icon identifies the subVI on the block diagram of the VI. The Icon Editor is a utility that comes built into LabVIEW 8 to allow users to fully customize the appearance of their subVIs. This allows programmers to visually distinguish their subVIs, which will greatly improve the usability of the subVI in large portions of code. After you’ve defined the connector pane and have customized the icon, you are ready to place the subVI into other LabVIEW code. There are two ways to accomplish this: To place a subVI on the block diagram 1. Click the Select a VI button on the Functions palette 2. Navigate to the VI you want to use as a subVI 3. Double-click to place it on the block diagram To place an open VI on the block diagram of another open VI 1. Use the Positioning tool to click the icon of the VI you want to use as a subVI 2. Drag the icon to the block diagram of the other VI © National Instruments Corporation 81 Introduction to LabVIEW Hands-On Exercise 4.1 – Creating a SubVI Create a subVI from a new VI, which adds two inputs and outputs the sum. 1. Open a new VI (Ctrl+N). 2. Place the Add function (Programming » Numeric) on the block diagram. 3. Create controls and indicators by right-clicking and selecting Create » Control or Indictor. The Block Diagram and Front Panel should look similar to the images below. 4. On the Front Panel right-click the Icon at the top right and select Show Connector to reveal the Connector Pane. 5. Assign icon terminals to the two controls and indicators by first left-clicking on a icon terminal and then clicking the desired control/indicator Note: General convention is to have controls as data inputs on the left side and indicators as outputs on the rights side of this icon. Introduction to LabVIEW Hands-On 82 ni.com State Machines Transitions • Several programming techniques exist for transitioning from state to state in LabVIEW using State Machines • Default transition implies that after one state, another state always follows • Transitions between two potential states can be handled by a Select Function If one state can transition to several potential states, a case structure can be used. Another approach is to use an array of potential future states, and allow decision making code to select which to pass to the shift register. © National Instruments Corporation 85 Introduction to LabVIEW Hands-On Communicating between loops •Communicating between loops using data flow is not possible •The left loop will execute completely before the right loop •Variables are needed when communication with wires does not give the desired behavior There is no way to communicate between parallel loops using data flow. Data cannot enter or leave a structure while it’s still running via dataflow. Variables are block diagram elements that allow you to access or store data in another location. Local variables store data in front panel controls and indicators. Variables allow you to circumvent normal dataflow by passing data from one place to another without connecting the two places with a wire Introduction to LabVIEW Hands-On 86 ni.com Local Variables • Local Variables allow data to be passed between parallel loops. • A single control or indicator can be read or written to from more than one location in the program – Local Variables break the dataflow paradigm and should be used sparingly Local variables are located in the Structures subpalette of the Functions palette. When you place a local variable on the diagram, it contains by default the name (owned label) of the first object you placed on the front panel. You use a local variable by first selecting the object you want to access. You can either click on the local variable with the Operating tool and select the object (by owned label) you want to access, or pop up on the local variable and choose the object from the Select Item menu. Next, you must decide to either read or write to the object. Right click on the local variable and choose Change To Read or Change to Write. © National Instruments Corporation 87 Introduction to LabVIEW Hands-On Producer/Consumer Design Pattern Besides Variables, there are several other methods for transferring data between parallel loops. This is accomplished using Notifier and Queue functions. Notifiers can be used to implement a Master/Slave design pattern and Queues are used to implement a Producer/Consumer design pattern. Both enable LabVIEW programmers to share data between loops. Select File » New and navigate to VI » From Template » Frameworks » Design Patterns to see an overview of both design patterns. Introduction to LabVIEW Hands-On 90 ni.com V. Large Program Development A. Navigation Window B. LabVIEW Project C. Shared Variable © National Instruments Corporation 91 Introduction to LabVIEW Hands-On • Shows the current region of view compared to entire Front Panel or Block Diagram • Great for large programs LabVIEW Navigation Window * Organize and reduce program visual size with subVIs Select View»Show Navigation Window to display this window. Use the window to navigate large front panels or block diagrams. Click an area of the image in the Navigation Window to display that area in the front panel or block diagram window. You also can click and drag the image in the Navigation Window to scroll through the front panel or block diagram. Introduction to LabVIEW Hands-On 92 ni.com Exercise 5.1 – Shared Variable Create a Shared Variable from a project and use that Variable instead of the Local Variable in the exercise created previously. 1. Open the Local Variable VI that was created in Exercise 4.2. 2. Select Project » New Project from the Menu Bar. This will create a new project. When prompted select Add to add the currently open VI to the project. 3. Save the project by selecting Project » Save Project in the Project Explorer Window. 4. Create a Shared Variable by right-clicking on My Computer and selecting New » Variable. 5. In the configuration window, name the Variable and select Boolean from the Data Type drop down menu. Leave the rest of the options as default and click OK. © National Instruments Corporation 95 Introduction to LabVIEW Hands-On 6. Since Shared Variables need a to reside in a Library, LabVIEW creates one. Save this Library by right-clicking and selecting Save. 7. Shared Variables can easily be used by clicking and dragging from the Project Explorer to the VI. Click and drag the Shared Variable you created to the Block Diagram on the open Local Variable VI. 8. Delete the Local Variable that controls the stop button in the second loop. 9. Place the variable in the second loop and wire the variable to the exit terminal. 10. Place another copy of the Shared Variable in the first loop. This Shared Variable will write the information that is read in the second loop. 11. Change the Shared Variable to write by right-clicking and selecting Change To Write, and wire so that the value of the Stop button is being written to the Shared Variable. The completed code should look similar to the following: 12. Rename the VI by selecting File » Save As… and Rename. 13. Run the VI. Notice that when you click the Stop button both loops stop and the VI stops. (End of Exercise) Introduction to LabVIEW Hands-On 96 ni.com Section VI - Instrument Control A. Overview of Instrument Control B. GPIB C. Serial D. Instrument I/O Assistant E. VISA F. Instrument Drivers and IDNET © National Instruments Corporation 97 Introduction to LabVIEW Hands-On
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved