Preface |
|
vii | |
1 LabVIEW Basics |
|
|
1.1 System Configuration Requirements |
|
|
2 | (1) |
|
1.2 Installing the Student Edition of Lab VIEW |
|
|
2 | (1) |
|
1.3 The LabVIEW Environment |
|
|
3 | (2) |
|
|
5 | (2) |
|
1.5 Panel and Diagram Windows |
|
|
7 | (7) |
|
1.5.1 Front Panel Toolbar |
|
|
8 | (4) |
|
1.5.2 Block Diagram Toolbar |
|
|
12 | (2) |
|
|
14 | (1) |
|
|
15 | (6) |
|
|
16 | (1) |
|
|
17 | (1) |
|
|
17 | (1) |
|
|
17 | (2) |
|
|
19 | (1) |
|
|
19 | (1) |
|
|
20 | (1) |
|
|
21 | (4) |
|
|
21 | (1) |
|
|
22 | (1) |
|
|
23 | (2) |
|
1.9 Opening, Loading, and Saving VIs |
|
|
25 | (2) |
|
1.10 LabVIEW Help Options |
|
|
27 | (2) |
|
1.10.1 Context Help Window |
|
|
27 | (2) |
|
|
29 | (1) |
|
1.11 Building Blocks: Trajectory Analysis |
|
|
29 | (1) |
|
1.12 Relaxed Reading: Remote Controlled Excavation with LabVIEW |
|
|
29 | (3) |
|
|
32 | (2) |
|
|
34 | (4) |
|
|
38 | (3) |
2 Virtual Instruments |
|
41 | (52) |
|
2.1 What Are Virtual Instruments? |
|
|
42 | (2) |
|
2.2 Several Worked Examples |
|
|
44 | (7) |
|
|
51 | (6) |
|
2.3.1 Numeric Controls and Indicators |
|
|
53 | (3) |
|
2.3.2 Boolean Controls and Indicators |
|
|
56 | (1) |
|
2.3.3 Configuring Controls and Indicators |
|
|
57 | (1) |
|
|
57 | (9) |
|
2.4.1 VIs and Express VIs |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (3) |
|
|
63 | (3) |
|
2.5 Building Your First VI |
|
|
66 | (6) |
|
2.6 Data Flow Programming |
|
|
72 | (2) |
|
2.7 Building a VI Using Express VIs |
|
|
74 | (7) |
|
2.8 Building Blocks: Displacement, Velocity, and Acceleration |
|
|
81 | (2) |
|
2.9 Relaxed Reading: LabVIEW Automates Brain Wave Experiments |
|
|
83 | (2) |
|
|
85 | (8) |
|
|
87 | (2) |
|
|
89 | (4) |
3 Editing and Debugging Virtual Instruments |
|
93 | (46) |
|
|
94 | (26) |
|
3.1.1 Creating Controls and Indicators on the Block Diagram |
|
|
94 | (3) |
|
|
97 | (1) |
|
|
97 | (2) |
|
3.1.4 Deleting and Duplicating Objects |
|
|
99 | (1) |
|
|
100 | (1) |
|
|
101 | (2) |
|
3.1.7 Changing Font, Style, and Size of Text |
|
|
103 | (3) |
|
3.1.8 Selecting and Deleting Wires |
|
|
106 | (1) |
|
3.1.9 Wire Stretching and Broken Wires |
|
|
106 | (4) |
|
3.1.10 Aligning, Distributing, and Resizing Objects |
|
|
110 | (1) |
|
|
111 | (9) |
|
|
120 | (8) |
|
|
121 | (1) |
|
3.2.2 Highlight Execution |
|
|
122 | (1) |
|
3.2.3 Single Stepping Through a VI and Its SubVIs |
|
|
123 | (1) |
|
3.2.4 Breakpoints and Probes |
|
|
124 | (4) |
|
|
128 | (1) |
|
3.4 Building Blocks: Measuring Volume |
|
|
129 | (1) |
|
|
130 | (3) |
|
|
133 | (6) |
|
|
134 | (2) |
|
|
136 | (3) |
4 SubVIs |
|
139 | (36) |
|
|
140 | (1) |
|
|
141 | (4) |
|
4.3 Editing the Icon and Connector |
|
|
145 | (7) |
|
|
145 | (2) |
|
|
147 | (2) |
|
4.3.3 Selecting and Modifying Terminal Patterns |
|
|
149 | (2) |
|
4.3.4 Assigning Terminals to Controls and Indicators |
|
|
151 | (1) |
|
|
152 | (5) |
|
4.5 Using a VI as a SubVI |
|
|
157 | (3) |
|
4.6 Creating a SubVI from a Selection |
|
|
160 | (2) |
|
|
162 | (1) |
|
|
163 | (2) |
|
4.9 Building Blocks: Measuring Volume |
|
|
165 | (2) |
|
4.10 Relaxed Reading: LabVIEW Real-Time at Biosphere |
|
|
167 | (2) |
|
|
169 | (6) |
|
|
170 | (2) |
|
|
172 | (3) |
5 Structures |
|
175 | (62) |
|
|
176 | (6) |
|
|
178 | (4) |
|
|
182 | (6) |
|
5.3 Shift Registers and Feedback Nodes |
|
|
188 | (9) |
|
|
188 | (2) |
|
5.3.2 Using Shift Registers to Remember Data Values from Previous Loop Iterations |
|
|
190 | (2) |
|
5.3.3 Initializing Shift Registers |
|
|
192 | (3) |
|
|
195 | (2) |
|
|
197 | (9) |
|
5.4.1 Adding and Deleting Cases |
|
|
200 | (3) |
|
5.4.2 Wiring Inputs and Outputs |
|
|
203 | (3) |
|
5.5 Flat and Stacked Sequence Structures |
|
|
206 | (6) |
|
|
208 | (1) |
|
5.5.2 Evaluate and Control Timing in a Sequence Structure |
|
|
209 | (2) |
|
5.5.3 Avoid the Overuse of Sequence Structures |
|
|
211 | (1) |
|
|
212 | (3) |
|
5.6.1 Formula Node Input and Output Variables |
|
|
212 | (2) |
|
|
214 | (1) |
|
|
215 | (8) |
|
5.7.1 Accessing the MATLAB Script Node |
|
|
216 | (1) |
|
5.7.2 Entering Scripts into the MATLAB Script Node |
|
|
216 | (2) |
|
5.7.3 Input and Output Variables |
|
|
218 | (1) |
|
5.7.4 Saving MATLAB Scripts |
|
|
219 | (2) |
|
5.7.5 MATLAB Data Types in LabVIEW |
|
|
221 | (2) |
|
5.8 Some Common Problems in Wiring Structures |
|
|
223 | (4) |
|
5.8.1 Assigning More Than One Value to a Sequence Local |
|
|
223 | (1) |
|
5.8.2 Wiring from Multiple Frames of a Sequence Structure |
|
|
223 | (1) |
|
5.8.3 Failing to Wire a Tunnel in All Cases of a Case Structure |
|
|
224 | (1) |
|
5.8.4 Overlapping Tunnels |
|
|
225 | (1) |
|
5.8.5 Wiring Underneath Rather Than Through a Structure |
|
|
225 | (2) |
|
5.9 Building Blocks: Measuring Volume |
|
|
227 | (1) |
|
5.10 Relaxed Reading: Investigating Global Warming with LabVIEW |
|
|
228 | (2) |
|
|
230 | (7) |
|
|
233 | (2) |
|
|
235 | (2) |
6 Arrays and Clusters |
|
237 | (50) |
|
|
238 | (4) |
|
6.1.1 Creating Array Controls and Indicators |
|
|
239 | (2) |
|
6.1.2 Multidimensional Arrays |
|
|
241 | (1) |
|
6.2 Creating Arrays with Loops |
|
|
242 | (5) |
|
6.2.1 Creating Two-Dimensional Arrays |
|
|
246 | (1) |
|
|
247 | (10) |
|
|
248 | (1) |
|
|
248 | (2) |
|
|
250 | (2) |
|
|
252 | (1) |
|
|
253 | (4) |
|
|
257 | (3) |
|
|
260 | (1) |
|
6.6 Creating Cluster Controls and Indicators |
|
|
261 | (4) |
|
|
262 | (3) |
|
6.6.2 Using Clusters to Pass Data to and from SubVIs |
|
|
265 | (1) |
|
|
265 | (8) |
|
6.7.1 The Bundle Function |
|
|
268 | (2) |
|
6.7.2 The Unbundle Function |
|
|
270 | (2) |
|
6.7.3 Creating Cluster Constants on the Block Diagram |
|
|
272 | (1) |
|
6.7.4 Using Polymorphism with Clusters |
|
|
273 | (1) |
|
6.8 Building Blocks: Measuring Volume |
|
|
273 | (3) |
|
6.9 Relaxed Reading: LabVIEW Monitors Medieval Bell Tower |
|
|
276 | (4) |
|
|
280 | (7) |
|
|
282 | (1) |
|
|
283 | (4) |
7 Charts and Graphs |
|
287 | (38) |
|
|
288 | (10) |
|
|
298 | (5) |
|
|
303 | (3) |
|
7.4 Customizing Charts and Graphs |
|
|
306 | (12) |
|
|
306 | (4) |
|
|
310 | (1) |
|
7.4.3 The Graph Palette and Scale Legend |
|
|
311 | (2) |
|
7.4.4 Special Chart-Customizing Features |
|
|
313 | (2) |
|
7.4.5 Special Graph-Customizing Features: Cursor Legend |
|
|
315 | (2) |
|
|
317 | (1) |
|
7.5 Building Blocks: Measuring Volume |
|
|
318 | (1) |
|
7.6 Relaxed Reading: Spacecraft Attitude Determination on the Web |
|
|
319 | (3) |
|
|
322 | (3) |
|
|
323 | (1) |
|
|
323 | (2) |
8 Data Acquisition |
|
325 | (74) |
|
8.1 Components of a DAQ System |
|
|
326 | (1) |
|
|
327 | (8) |
|
|
330 | (1) |
|
|
330 | (2) |
|
8.2.3 Analog Time-Domain Signals |
|
|
332 | (1) |
|
8.2.4 Analog frequency-Domain Signals |
|
|
333 | (2) |
|
8.2.5 One signal-Five Measurement Perspectives |
|
|
335 | (1) |
|
8.3 Common Transducers and Signal Conditioning |
|
|
335 | (5) |
|
8.4 Signal Grounding and Measurements |
|
|
340 | (5) |
|
8.4.1 Signal Source Reference Configuration |
|
|
340 | (1) |
|
|
341 | (4) |
|
8.5 Analog I/O Considerations |
|
|
345 | (7) |
|
|
352 | (1) |
|
8.7 DAQ Hardware Configuration |
|
|
353 | (11) |
|
|
353 | (2) |
|
|
355 | (7) |
|
|
362 | (2) |
|
8.8 Using the DAQ Assistant |
|
|
364 | (7) |
|
8.8.1 DAQmx Task Name Constant |
|
|
368 | (3) |
|
|
371 | (96) |
|
|
372 | (1) |
|
|
373 | (4) |
|
|
377 | (5) |
|
|
378 | (1) |
|
|
379 | (3) |
|
|
382 | (5) |
|
8.12 Building Blocks: Using Digital Output To Monitor Volume Limits |
|
|
387 | (4) |
|
8.13 Relaxed Reading: Fuel Cell Catalyst Research |
|
|
391 | (2) |
|
|
393 | (6) |
|
|
397 | (1) |
|
|
397 | (2) |
9 Strings and File I/O |
|
399 | (36) |
|
|
400 | (10) |
|
9.1.1 Converting Numeric Values to Strings with the Build Text Express VI |
|
|
408 | (2) |
|
|
410 | (17) |
|
9.2.1 Writing Data to a File |
|
|
413 | (4) |
|
9.2.2 Reading Data from a File |
|
|
417 | (1) |
|
9.2.3 Manipulating Spreadsheet Files |
|
|
418 | (3) |
|
9.2.4 File I/O Express VIs |
|
|
421 | (6) |
|
9.3 Building Blocks: Measuring Volume |
|
|
427 | (1) |
|
9.4 Relaxed Reading: Using LabVIEW in Drive-by-Wire Testing |
|
|
428 | (2) |
|
|
430 | (5) |
|
|
431 | (1) |
|
|
432 | (3) |
10 Instrument Control |
|
435 | (36) |
|
10.1 Components of an Instrument Control System |
|
|
436 | (7) |
|
|
436 | (1) |
|
|
437 | (2) |
|
10.1.3 GPIB Devices and Configurations |
|
|
439 | (2) |
|
10.1.4 Serial Port Communication |
|
|
441 | (2) |
|
10.2 Detecting and Configuring Instruments |
|
|
443 | (3) |
|
10.3 Using the Instrument I/O Assistant |
|
|
446 | (6) |
|
|
452 | (10) |
|
10.4.1 Developing Your Own Instrument Driver |
|
|
461 | (1) |
|
10.5 Future of Instrument Drivers and Instrument Control |
|
|
462 | (1) |
|
10.6 Building Blocks: Demo Scope |
|
|
463 | (1) |
|
10.7 Relaxed Reading: Automating the San Francisco Bay Model |
|
|
464 | (3) |
|
|
467 | (4) |
|
|
468 | (1) |
|
|
469 | (2) |
11 Analysis |
|
471 | (80) |
|
|
472 | (8) |
|
11.1.1 Review of Matrices |
|
|
472 | (3) |
|
11.1.2 System of Algebraic Equations |
|
|
475 | (3) |
|
|
478 | (2) |
|
|
480 | (10) |
|
11.2.1 Curve Fits Based on Least Squares Methods |
|
|
481 | (3) |
|
11.2.2 Fitting a Curve to Data with Normal Distributions |
|
|
484 | (2) |
|
11.2.3 The Curve Fitting Express VI |
|
|
486 | (4) |
|
11.3 Displaying Formulas on the Front Panel |
|
|
490 | (4) |
|
11.4 Differential Equations |
|
|
494 | (7) |
|
11.5 Finding Zeroes of Functions |
|
|
501 | (3) |
|
11.6 Integration and Differentiation |
|
|
504 | (1) |
|
|
504 | (11) |
|
11.7.1 Normalized Frequency |
|
|
505 | (5) |
|
11.7.2 Wave and Pattern VIs |
|
|
510 | (1) |
|
11.7.3 The Simulate Signal Express VI |
|
|
511 | (4) |
|
|
515 | (26) |
|
11.8.1 The Fourier Transform |
|
|
515 | (3) |
|
|
518 | (7) |
|
11.8.3 The Spectral Measurements Express VI |
|
|
525 | (2) |
|
|
527 | (11) |
|
11.8.5 The Filter Express VI |
|
|
538 | (3) |
|
11.9 Building Blocks: Analyzing Volume |
|
|
541 | (1) |
|
11.10 Relaxed Reading: Motorcycle Brake Testing |
|
|
541 | (4) |
|
|
545 | (6) |
|
|
547 | (1) |
|
|
548 | (3) |
12 Other LabVIEW Applications |
|
551 | (14) |
|
12.1 Event-Driven Programming |
|
|
552 | (1) |
|
|
553 | (2) |
|
|
555 | (2) |
|
|
557 | (2) |
|
|
559 | (2) |
|
|
561 | (4) |
|
|
562 | (1) |
|
|
563 | (2) |
Index |
|
565 | |