Preface |
|
xiii | |
About the Author |
|
xviii | |
1 Labview Program Development |
|
1 | (37) |
|
1.1 LabVIEW Programming Environment |
|
|
1 | (1) |
|
|
2 | (1) |
|
|
3 | (9) |
|
1.4 Block Diagram Editing |
|
|
12 | (11) |
|
|
23 | (2) |
|
1.6 Pop-Up Menu and Data-Type Representation |
|
|
25 | (3) |
|
|
28 | (2) |
|
|
30 | (3) |
|
|
33 | (2) |
|
|
35 | (3) |
2 The While Loop And Waveform Chart |
|
38 | (42) |
|
2.1 Programming Structures and Graphing Modes |
|
|
38 | (1) |
|
|
39 | (2) |
|
2.3 Sine-Wave Plot Using a While Loop and Waveform Chart |
|
|
41 | (6) |
|
|
47 | (2) |
|
|
49 | (4) |
|
2.6 Waveform Chart Pop-Up Menu |
|
|
53 | (3) |
|
2.7 Finishing the Program |
|
|
56 | (1) |
|
|
57 | (2) |
|
|
59 | (11) |
|
2.10 Data Types and Automatic Creation Feature |
|
|
70 | (4) |
|
|
74 | (1) |
|
|
75 | (5) |
3 The For Loop And Waveform Graph |
|
80 | (45) |
|
|
80 | (1) |
|
3.2 Sine-Wave Plot Using a For Loop and Waveform Graph |
|
|
81 | (1) |
|
|
82 | (1) |
|
3.4 Owned and Free Labels |
|
|
83 | (1) |
|
3.5 Creation of Sine Wave Using a For Loop |
|
|
84 | (2) |
|
3.6 Cloning Block-Diagram Icons |
|
|
86 | (2) |
|
3.7 Auto-Indexing Feature |
|
|
88 | (3) |
|
|
91 | (1) |
|
3.9 X-Axis Calibration of the Waveform Graph |
|
|
92 | (6) |
|
3.10 Sine-Wave Plot Using a While Loop and Waveform Graph |
|
|
98 | (4) |
|
3.11 Front-Panel Array Indicator |
|
|
102 | (5) |
|
3.12 Debugging With the Probe Watch Window and Error List |
|
|
107 | (7) |
|
|
114 | (2) |
|
|
116 | (9) |
4 The Mathscript Node And XY Graph |
|
125 | (51) |
|
4.1 MathScript Node Basics |
|
|
125 | (3) |
|
4.2 Quick MathScript Node Example: Sine-Wave Plot |
|
|
128 | (7) |
|
4.3 Waveform Simulator Using a MathScript Node and XY Graph |
|
|
135 | (5) |
|
4.4 Creating an XY Cluster |
|
|
140 | (2) |
|
|
142 | (1) |
|
4.6 LabVIEW MathScript Window |
|
|
142 | (5) |
|
4.7 Adding Shape Options Using an Enumerated Type Control |
|
|
147 | (2) |
|
4.8 Finishing the Block Diagram |
|
|
149 | (4) |
|
|
153 | (1) |
|
4.10 Control and Indicator Clusters |
|
|
154 | (7) |
|
4.11 Creating an Icon Using the Icon Editor |
|
|
161 | (1) |
|
|
161 | (5) |
|
4.13 Connector Assignment |
|
|
166 | (4) |
|
|
170 | (1) |
|
|
171 | (5) |
5 Data Acquisition Using Dao Assistant |
|
176 | (61) |
|
|
176 | (1) |
|
5.2 Data Acquisition Hardware |
|
|
177 | (2) |
|
|
179 | (3) |
|
|
182 | (1) |
|
5.5 Sampling Frequency and the Aliasing Effect |
|
|
182 | (2) |
|
5.6 Measurement & Automation Explorer (MAX) |
|
|
184 | (4) |
|
5.7 Simple Analog Input Operation on a DC Voltage |
|
|
188 | (12) |
|
|
200 | (9) |
|
|
209 | (1) |
|
|
210 | (7) |
|
5.11 Software-Timed Sine-Wave Generator |
|
|
217 | (2) |
|
5.12 Hardware-Timed Waveform Generator |
|
|
219 | (3) |
|
5.13 Placing a Custom-Made VI on a Block Diagram |
|
|
222 | (2) |
|
5.14 Completing and Executing Waveform Generator (Express) |
|
|
224 | (2) |
|
5.15 Modified Waveform Generator |
|
|
226 | (2) |
|
|
228 | (1) |
|
|
229 | (8) |
6 Data Files And Character Strings |
|
237 | (40) |
|
6.1 ASCII Text and Binary Data Files |
|
|
237 | (2) |
|
6.2 Storing Data in Spreadsheet-Formatted File |
|
|
239 | (1) |
|
6.3 Storing a One-Dimensional Data Array |
|
|
240 | (3) |
|
|
243 | (3) |
|
6.5 Storing a Two-Dimensional Data Array |
|
|
246 | (3) |
|
6.6 Controlling the Format of Stored Data |
|
|
249 | (2) |
|
6.7 The Path Constant and Platform Portability |
|
|
251 | (2) |
|
6.8 Fundamental File I/O VIs |
|
|
253 | (5) |
|
6.9 Adding Text Labels to a Spreadsheet File |
|
|
258 | (3) |
|
|
261 | (2) |
|
|
263 | (3) |
|
|
266 | (11) |
7 Shift Registers |
|
277 | (54) |
|
7.1 Shift Register Basics |
|
|
277 | (3) |
|
7.2 Quick Shift Register Example: Integer Sum |
|
|
280 | (4) |
|
7.3 Noise and Signal Averaging |
|
|
284 | (2) |
|
|
286 | (6) |
|
7.5 Moving Average of Four Traces |
|
|
292 | (9) |
|
7.6 Modularity and Automatic SubVI Creation |
|
|
301 | (7) |
|
7.7 Moving Average of Arbitrary Number of Traces |
|
|
308 | (14) |
|
|
322 | (1) |
|
|
322 | (9) |
8 The Case Structure |
|
331 | (48) |
|
8.1 Case Structure Basics |
|
|
331 | (4) |
|
8.2 Quick Case Structure Example: Runtime Options Using Property Nodes |
|
|
335 | (12) |
|
8.3 State Machine Architecture: Guessing Game |
|
|
347 | (14) |
|
8.4 State Machine Architecture: Express VI-Based Digital Oscilloscope |
|
|
361 | (9) |
|
|
370 | (1) |
|
|
371 | (8) |
9 Data Dependency And The Sequence Structure |
|
379 | (28) |
|
9.1 Data Dependency and Sequence Structure Basics |
|
|
379 | (4) |
|
9.2 Event Timer Using a Sequence Structure |
|
|
383 | (7) |
|
9.3 Event Timer Using Data Dependency |
|
|
390 | (4) |
|
|
394 | (2) |
|
|
396 | (1) |
|
|
397 | (10) |
10 Analysis VIs: Curve Fitting |
|
407 | (43) |
|
10.1 Thermistor Resistance-Temperature Data File |
|
|
407 | (3) |
|
10.2 Temperature Measurement Using Thermistors |
|
|
410 | (3) |
|
10.3 The Linear Least-Squares Method |
|
|
413 | (2) |
|
10.4 Inputting Data to a VI Using a Front-Panel Array Control |
|
|
415 | (3) |
|
10.5 Inputting Data to a VI by Reading from a Disk File |
|
|
418 | (3) |
|
10.6 Slicing Up a Multi-Dimensional Array |
|
|
421 | (4) |
|
|
425 | (1) |
|
10.8 Curve Fitting Using the Linear Least-Squares Method |
|
|
426 | (8) |
|
|
434 | (2) |
|
10.10 Curve Fitting Using the Nonlinear Least-Squares Method |
|
|
436 | (3) |
|
|
439 | (3) |
|
|
442 | (8) |
11 Analysis VIs: Fast Fourier Transform |
|
450 | (50) |
|
11.1 Quick Fast Fourier Transform Example |
|
|
450 | (9) |
|
11.2 The Fourier Transform |
|
|
459 | (1) |
|
11.3 Discrete Sampling and the Nyquist Frequency |
|
|
460 | (1) |
|
11.4 The Discrete Fourier Transform |
|
|
461 | (2) |
|
11.5 The Fast Fourier Transform |
|
|
463 | (1) |
|
11.6 Frequency Calculator VI |
|
|
464 | (3) |
|
|
467 | (3) |
|
11.8 Applying the FFT to Various Sinusoidal Inputs |
|
|
470 | (3) |
|
11.9 Magnitude of Complex-Amplitude |
|
|
473 | (6) |
|
|
479 | (3) |
|
|
482 | (6) |
|
11.12 Estimating Frequency and Amplitude |
|
|
488 | (4) |
|
|
492 | (1) |
|
|
492 | (2) |
|
|
494 | (6) |
12 Data Acquisition And Generation Using DAQMX VIs |
|
500 | (42) |
|
|
500 | (2) |
|
12.2 Simple Analog Input Operation on a DC Voltage |
|
|
502 | (6) |
|
12.3 Digital Oscilloscope |
|
|
508 | (7) |
|
12.4 Express VI Automatic Code Generation |
|
|
515 | (1) |
|
12.5 Limitations of Express VIs |
|
|
516 | (2) |
|
12.6 Improving Digital Oscilloscope Using State Machine Architecture |
|
|
518 | (13) |
|
12.7 Analog Output Operations |
|
|
531 | (1) |
|
|
532 | (3) |
|
|
535 | (1) |
|
|
535 | (7) |
13 Control Of Stand-Alone Instruments |
|
542 | (77) |
|
13.1 Instrument Control using VISA VIs |
|
|
542 | (1) |
|
|
543 | (4) |
|
13.3 The IEEE 488.2 Standard |
|
|
547 | (1) |
|
|
547 | (1) |
|
|
548 | (4) |
|
13.6 Device-Specific Commands |
|
|
552 | (2) |
|
13.7 Specific Hardware Used In This Chapter |
|
|
554 | (1) |
|
13.8 Measurement & Automation Explorer (MAX) |
|
|
555 | (7) |
|
13.9 Simple VISA-Based Query Operation |
|
|
562 | (4) |
|
13.10 Message Termination |
|
|
566 | (1) |
|
13.11 Getting and Setting Communication Properties Using a Property Node |
|
|
567 | (4) |
|
13.12 Performing a Measurement over the Interface Bus |
|
|
571 | (5) |
|
13.13 Synchronization Methods |
|
|
576 | (8) |
|
13.14 Measurement VI Based on the Serial Poll Method |
|
|
584 | (6) |
|
13.15 Measurement VI Based on the Service Request Method |
|
|
590 | (6) |
|
13.16 Creating an Instrument Driver |
|
|
596 | (14) |
|
13.17 Using the Instrument Driver to Write an Application Program |
|
|
610 | (5) |
|
|
615 | (1) |
|
|
616 | (3) |
Appendix A Formula Node Programming For Chapter 4 |
|
619 | (8) |
|
|
619 | (1) |
|
A.2 Quick Formula Node Example: Sine-Wave Plot (Section 4.2) |
|
|
620 | (4) |
|
A.3 Formula Node-Based Waveform Simulator (Sections 4.3-4.4) |
|
|
624 | (1) |
|
A.4 Formula Node-Based Waveform Simulator (Section 4.8) |
|
|
625 | (1) |
|
A.5 Formula Node-Based Waveform Simulator (Section 4.10) |
|
|
626 | (1) |
Appendix B Mathematics Of Leakage And Windowing |
|
627 | (9) |
|
B.1 Analytic Description of Leakage |
|
|
627 | (4) |
|
B.2 Description of Leakage Using the Convolution Theorem |
|
|
631 | (5) |
Appendix C PID Temperature Control Project |
|
636 | (15) |
|
|
636 | (1) |
|
C.2 Voltage-Controlled Bidirectional Current Driver for Thermoelectric Device |
|
|
636 | (2) |
|
C.3 PID Temperature Control Algorithm |
|
|
638 | (3) |
|
C.4 PID Temperature Control System |
|
|
641 | (1) |
|
C.5 Construction of Temperature Control System |
|
|
642 | (9) |
Index |
|
651 | |