Data Acquisition Using LabVIEW
Àâòîð: R. B. Darling
Èñòî÷íèê: www.ee.washington.edu...
Introduction
The objectives of this experiment are to become acquainted with using computer-conrolled instrumentation for data acquisition. LabVIEW, a program develoed by National Instruments, is the industry standard for programming computer-controlled instruments, and it will be used in this experiment as well as others to measure and record sensor readings and to characterize various electrical systems and devices. LabVIEW is a graphical programming environment. Unlike C/C++ where you write the programs in text, in LabVIEW you create a Virtual Instrument (VI) by graphically composing it from different elements and structures that you place like the blocks of a block diagram and interconnect with wires to indicate the intended signal flow paths. This is referred to as “G-code” for the graphical language that it uses. The most important aspect of understanding LabVIEW virtual instruments (VIs) is that they are data-driven, meaning that the execution of the block diagram procedes along the same path as which the data propagates through the block diagram. A new block is not executed until the new data arrives at its input. This is quite different from the event-driven programming of Windows, or the more familiar procedure-driven programming of FORTRAN, Pascal, or C/C++. A complete tutorial for programming in LabVIEW will not be presented in this laboratory handbook since other excellent references exist for this purpose. A very useful introduction to LabVIEW is provided by National Instruments and can be downloaded from their website: zone.ni.com/devzone/
This experiment will introduce opening and running virtual instruments in LabVIEW and using it to control a data acquisition (DAQ) card for making electrical measurements. In addition some simple modifications to the virtual instruments will be performed to gain some experience with using the LabVIEW graphical interface and programming language. These basic operation skills will be useful starting points for developing more complex data acquisition instruments in later experiments, and will form the basis for automated measurement of semiconductor device characteristics. One of the important advantages of computer-based instruments is that recording measurement data becomes very easy, and some of this will be introduced in this experiment also.
Procedure 1 Temperature measurement using LabVIEW and a DAQ card
Comment
The goal of this procedure is to get LabVIEW up and running and open an existing VI which can be used to measure the ambient temperature using the built-in temperature sensor on the BNC-2120 connector block.
Set-Up
The first step is to set up the hardware for the National Instruments DAQ card. Inside the computer at each laboratory workbench, there has been installed a National Instruments model PCI-6251M DAQ card which provides 16 analog inputs, 2 analog outputs, 500 kS/s sampling, and 12-bit multifunction I/O. This is a very versatile DAQ card, although only a few of its functions will be used in this experiment. Into this DAQ card is connected a shielded 68-conductor cable which runs up to the work surface of the laboratory bench and is connected to a model BNC-2120 connector block. If the DAQ card and the BNC connector block are properly connected, the green power LED on the BNC-2120 should be turned ON. The eight digital I/O LEDs at the bottom of the BNC-2120 are also usually ON at this point. All of this hardware is maintained by the room 137 laboratory staff, so the only thing that you might need to do is simply connect the BNC- 2120 to the 68-pin cable on the laboratory bench. If any of these parts are missing, see the staff in the EE Stockroom.
A very simple and quick method to test that the DAQ card is connected and working properly is to use the Measurement and Automation Explorer. From Windows, launch the Measurement and Automation Explorer (MAX) from the Start Menu by clicking on Start > All Programs > National Instruments > Measurement and Automation. After MAX opens, on the left hand side of the window is a configuration panel. Click on the expand button [+] beside Devices and Interfaces. Then click on the expand button beside NI-DAQmx Devices. Then select the NI DAQcard 6251M. Toward the center of the MAX window, click on a toolbar button called “Self-Test.” This should return a small message window saying that the device has passed its self test. This indicates that the DAQ card is properly plugged into the computer PCI chassis, that Windows has properly recognized the device and has loaded its drivers, and that LabVIEW has properly registered the device so that it can be accessed by various VIs that call it. This self-test only tests the card, not the cable or the BNC connector block. If you wish to test the system further, the toolbar button to the right of Self-Test is “Test Panels…” and this provides a more detailed set of commands which directly control the DAQ card and can be used to insure that the card, cable, and connector block are each working properly. If you are satisfied that the DAQ card is working properly, you can EXIT MAX at this point.
The next step is to launch LabVIEW and start up a VI which has already been written for temperature measurement. From the Windows Start Menu, click on Start > All Programs > National Instruments LabVIEW 7.1. A little welcome window may open; if so, just click on Continue to bring up the main LabVIEW navigation window. This window has four main buttons on the right hand side: New, Open, Configure, and Help. To open the temperature measurement VI, click on File > Open… > and then browse to the location where Experiment 0 Part 1.vi is located. Click to open this file. LabVIEW will first open the front panel window for this VI which is from where the virtual instrument is controlled. If you wish to view the internal G-code for this instrument, click on Window > Show Block Diagram (or type Ctrl+E). This is a relatively simple VI, and the block diagram shows how the voltage reading from the DAQ card is first multiplied by a factor of 100 and then sent to a waveform chart for display. The temperature readings are taken each 500 milliseconds, and a STOP button is set up to end the program.
The DAQ block has been set up to read the voltage from Analog Input #0 (AI-0) and return this to the computer as the temperature measurement. On the BNC-2120 unit, AI-0 can be set to read either the voltage on the BNC connector (the one in the upper left side of the connector block) or from the built-in temperature reference. The temperature reference is a small transistor-like package whose top is visible from the front panel of the BNC-2120. Just beside the temperature reference is a slide switch which is used to select whether AI-0 is connected to the BNC connector or the temperature reference. Make sure that this switch is set to the temperature reference position.
Measurement-1
To start the temperature measurement VI, make the front panel window active by either clicking on it somewhere or select it from the open window tab at the bottom of the screen. Click on the run button, which is shaped like a right-pointing arrow on the toolbar. The front panel appearance will change from the grid pattern to a solid pattern and the stop sign will turn to brighter shade of red. The waveform chart will start scanning and you should soon see a signal waveform appear that represents the running temperature of the sensor on the BNC-2120, being sampled every 500 milliseconds.
After the measurement has been running for a few seconds, press your finger tip onto the top of the temperature reference and you should see the measured temperature rise by a few degrees Celsius. After removing your finger tip, you should similarly see the measured temperature fall back to close to its original value. Once you have finished running the VI, you can stop it by simply clicking on the rectangular STOP button on the front panel. If for some reason this does not work, you can stop the VI by clicking on the red stop sign button in the toolbar.
Comment
Generally, it is always best to stop a running VI by using the STOP button that is part of the VI front panel. Using the red stop sign button to stop the VI is a more drastic measure which sometimes leaves LabVIEW in a less predictable state. The red stop sign is really a program abort, which should be used as a last resort.
Measurement-1
With the temperature measurement VI still running (or restart it if you already stopped it), change the switch from temperature reference to BNC and observe the change in the waveform chart. Use a short test lead and connect the inner BNC conductor to the outer shield (ground) and observe the effect on the measured readings in the waveform chart. Then change the switch back to the temperature reference setting.
Question-1
Explain the behavior of the measured voltage that you observed in the above. Why does the BNC input appear to have some form of system memory?
Comment
Each of the analog input BNC connectors on the front panel of the BNC-2120 has a slide switch underneath it to select “Floating Source” (FS) or “Grounded Source” (GS). The analog input of the DAQ card is a differential input amplifier which always takes the difference of the (+) and (-) inputs. The (+) input is always the center pin of the BNC connector, and the (-) input is always the outer shield of the BNC connector. This outer shield is not always the same as analog ground! When the selector switch for a given BNC connector is in the FS (Floating Source) position, the (-) input is completely disconnected from the internal analog ground, and can thus float freely. When the selector switch for a given BNC connector is in the GS (Grounded Source) position, the (-) input is connected to the internal analog ground by a 4.99 kOm resistor. This does not allow it to freely float, but it does not short the (-) input to ground, either. The GS position is generally the best for most experiments, but for many circumstances where single-ended input and output signals are to be interconnected on the BNC-2120, the shields of the BNC connectors will have to be hard-wired together to establish a suitable analog ground reference for the various signals.
Procedure 2 Adding a Celsius to Fahrenheit conversion
Comment
This next procedure will modify the previous VI to add a Celsius to Fahrenheit conversion, allowing the measured result to be displayed simultaneously on both temperature scales.
Set-up
If the previous Experiment 0 Part 1.vi was closed, re-open it. Open the block diagram for this VI by clicking on Window > Show Block Diagram, or typing Ctrl+E.
A sub-VI has already been written which performs the C to F conversion. Place this sub-VI inside the while loop by selecting All Functions from the pallet and then selecting Select a VI… Browse to where you find Convert C to F.vi and open this. With the mouse, click on the block diagram to drop the sub-VI into place, somewhere inside the while loop. Click on the tools pallet to change the cursor to the wiring tool (this looks like a small bobbin) and click on the left side of the Convert C to F sub-VI to connect to its input and then drag the wire over to the output from the 100X mulplier and click there to make the connection.
From the functions pallet, select the “Convert to Dynamic Data” and drop this into the block diagram to the right of the Convert C to F subVI. Use the wiring tool to connect the output of the Convert C to F sub-VI to the input of the Convert to Dynamic Data function.
Switch to the front panel window and make it active. From the controls pallet, select the “Waveform Chart” and drop this into the front panel below the existing waveform chart for the Celsius measurement. You may need to resize the front panel window to create enough space to do this. Position and resize the waveform chart to your liking. Switch back to the block diagram window and use the wiring tool to connect the output of the Convert to Dynamic Data function to the input of the new Waveform Chart.
Using File > Save As … , save the modified VI with a new name “Experiment 0 Part 2.vi” in your own directory.
Measurement-2
Switch back again to the front panel window. Click the run button on the front panel and observe that both waveform charts show the correct temperature behavior. Click on the STOP button to halt the program.
Question-2
What is the transducer function of the temperature reference on the BNC-2120? I.e., how many millivolts per degree Celsius does it output?
Procedure 3 Saving measurement results to spreadsheet files
Comment
This next procedure will modify the temperature measurement VI once more to add the capability to store the measurement results in a spreadsheet file.
Set-Up
Open the VI that you modified and saved in Procedure 2, if it is not open already, and open its block diagram window.
From the functions pallet, select All Functions > File I/O > Write To Spreadsheet File, and use the mouse to drop this function into the block diagram to the right of, and outside of, the while loop. Change the cursor to the wiring tool and click on the output of the Convert C to F sub-VI and drag the wire to the right edge of the while loop. A small box will appear at this termination. Use the wiring tool to click on this small box and extend the wire to the 1D Data input of the Write To Spreadsheet File function. Right click on the small box to pop up the options, and select “Enable Indexing.” This should make the small box appear with braces ([ ]) inside it. The orange wire inside the while loop should be a thin one, indicating a simple double precision value, and the orange wire outside the while loop should be a thick one, indicating that the output from the while loop is now an array. Once the STOP button is pressed, the while loop will end and all of the measurements that have been taken up to this point will then be passed to the Write To Spreadsheet File function as one array of values.
Using File > Save As … , save the modified VI with a new name “Experiment 0 Part 3.vi” in your own directory.
Measurement-3
Make the front panel window for the new modified VI active and click on the run button to start its operation. The Celsius and Fahrenheit waveform charts should both begin displaying the running temperature data. After a few minutes, click on the STOP button. A Save As … dialog window will open in which you can specify the location to where the new Excel (.xls) file will be written. Enter a new file name, such as “Experiment0Part3.xls” and click on “OK.” After the file has been written, use Excel to open this file and verify that the correct data values have been written there in the first column of the worksheet. You might also create a plot within Excel and compare this to what you saw displayed on the waveform chart for the Fahrenheit temperatures.
Question-3
If the new VI is kept running for 5 minutes, how many Fahrenheit temperature readings will be stored in the spreadsheet file?
Procedure 4 Measurement of diode I-V characteristic curves
Comment
Computer-controlled automatic measurements are commonly used to gather data for the purpose of characterizing or testing a device or system. In this experiment, a LabVIEW curve tracer will be used to capture the characteristic I-V curve for a pn-junction diode. A similar procedure will be used later on to do the same thing for BJTs.
Set-Up
Close any previously opened VIs and return to the LabVIEW main navigation window. From File > Open … , open the VI named “Experiment 0 Part 4.vi.” For this VI to open correctly, two sub-VIs named “VoutArray.vi” and “IODriver3.vi” must also exist in the same directory as “Experiment 0 Part 4.vi.”
The front panel window has been designed to show roughly how this diode curve tracer operates. First, the six controls inside the Scan Range box are used to set up the sequence of voltages which will be applied to the resistor and diode series combination. The forward and reverse parts of the scan are independently set up according to their starting value, their ending value, and the number of points used for each. When the START SCAN button is clicked, this sequence of voltages is passed to the power supply which first steps upward in the forward direction, then back down, then steps downward in the reverse direction, and then back up, making one complete cycle through the applied bias range for which the diode is to be tested. The cathode end of the diode (end with the bar) is grounded, and the voltage at the node between the diode and the resistor is measured, along with the voltage that is applied to the other end of the resistor by the power supply. The voltage across the diode is used to create the x-values for the I-V curves, and the y-values of diode current are obtained by subtracting the voltages at the two ends of the resistor and then dividing by the value of the resistor. This is typically how one accomplishes current sampling with a data acquisition system. The value of the current sampling resistor is input using the control located to the right of the resistor symbol. The diode voltage and current are then plotted as (x,y) pairs in the chart. After the scan is complete, the SAVE DATA button can be clicked to write the data to a spreadsheet file.
The power supply output and the two measured voltages are implemented through channels on the data acquisition (DAQ) card. Analog Output channel # 0 (AO-0) is used to create the power supply output voltage. The voltage from the power supply is measured by Analog Input channel # 0 (AI-0), and the voltage across the diode is measured by Analog Input channel # 1 (AI-1).
The hardware is set up by connecting the diode under test and the current sampling resistor to the proper terminals of the BNC-2120 connector block. Connect a 5.1 kOm resistor between the center pins of the BNC connectors for AI-0 and AI-1. Then connect a jumper wire between the center pins of the BNC connectors for AO-0 and AI-0. Finally, connect a type 1N4148 diode between the center pin of the BNC connector for AI-1 and its ground shield, with the bar end of the diode (its cathode end) connected to the ground shield.
Also make sure that the slide switches for AI-0 and AI-1 are both set to BNC inputs and that the slide switches for AI-0 and AI-1 are each set for grounded source measurements (the GS position). This will connect each of the BNC outer shields to the internal analog ground with a built-in 4.99 kOm resistor. However, to make the diode curve tracer work properly, each of the analog input BNC outer shields (their (?) inputs) must be shorted to ground. The outer shield of the BNC connector the analog outputs are true analog grounds. Thus, connect the BNC outer shields of AI-0 and AI-1 to the BNC outer shield of AO-0 to establish a proper ground system on the BNC-2120.
Comment
The BNC-2120 connector block has far more BNC connectors than the number of BNC connector cables that a student group would normally have. To get around this, much of the wiring can be accomplished by simply inserting component or jumper wire leads into the center pins of the BNC connectors. If you choose to do this, be very careful not to damage the center pins of the BNC connectors. Most component leads by themselves are too narrow to fit securely in the BNC center pin hole. However, if you insert a pair of component leads, or a pair of #22 AWG jumper leads, this will usually provide a sufficiently tight connection that will not damage the BNC center pins. Interconnecting the BNC outer shields can be done using squeeze hook jumper leads.
Measurement-4
From the front panel window, click on the run button to start the diode curve tracer VI. Keep the default settings for the forward and reverse bias scan ranges: forward bias: 10 steps from 0.0 Volts to +5.0 Volts, and reverse bias: 10 steps from 0.0 Volts to ?5.0 Volts. After rechecking all of the connections, click on the START SCAN button, which should start the measurement sequence and then display the resulting diode I-V characteristics on the x-y chart.
Once you are happy with measurement, click on the SAVE DATA button to save the measured diode I-V characteristic data in an Excel spreadsheet format. A Save As … dialog window will open, and you can type in the name of the file that you want the data written to, for example, “Experiment0Part4.xls.” Click on OK to write the file.
Once you have saved the data, click on the STOP button to halt the measurement VI.
You might open this newly created file with Excel to verify that the data was properly written to the file. If everything was working properly, the diode voltage values (in units of Volts) should appear in the first column, and the diode current values (in units of milliamperes) should appear in the second column.
Comment
It is generally a good idea to halt any running VI when you are done with it. If you wish to use other Windows programs, such as Excel, or Internet Explorer, or Windows Explorer, you will find that these programs will run rather slowly while any VIs are running at the same time.
Question-4
(a) If the diode were reversed in its polarity (connecting its cathode to the current sampling resistor and AI-1 and connecting its anode to the analog ground), what would be the expected I-V curve? (b) If the diode were replaced by another 5.1 kOm resistor, what would be the expected I-V curve? What would the slope of the resulting I-V curve correspond to?
Comment
You might wish to view the internal structure of the diode curve tracer by opening the block diagram window for this VI. This is a fairly complicated VI that uses a number of control structures and employs two other sub-VIs: VoutArray.vi and IODriver3.vi. You should try to locate these in the block diagram. If you double click on either of these sub-VIs, they will open and you will be able to then view their internal structure from their block diagrams. Try this, and open the block diagram for IODriver3.vi. This sub-VI consists simply of a flat sequence control structure whose borders look like a piece of photographic film. This consists of 4 frames [0…3] which are executed in sequence. By clicking on the left and right arrows at the top of the film boundary, you can sequence through the 4 frames. In this case, the #0 frame sends a voltage Vin to the DAQ card which then outputs it as Analog Output channel # 0 (AO-0), corresponding to the power supply output voltage. In frame #1, the system waits for 500 milliseconds for the effects of this new excitation to the diode and resistor to settle out. In frame #2, the DAQ card reads Analog Input channel # 0 (AI-0) and sends this measurement value out as Vout. In frame #3, the DAQ card reads Analog Input channel # 1 (AI-1) and sends this measurement value out as Vout2. This sequence of 4 frames is executed each time for each new value of the power supply scan voltage.
Àâòîð: R. B. Darling
Èñòî÷íèê: www.ee.washington.edu...