Muutke küpsiste eelistusi

LabVIEW Graphical Programming, Fifth Edition 5th edition [Pehme köide]

  • Formaat: Paperback / softback, 640 pages, kõrgus x laius x paksus: 234x185x36 mm, kaal: 1089 g, 100 Illustrations
  • Ilmumisaeg: 21-Nov-2019
  • Kirjastus: McGraw-Hill Education
  • ISBN-10: 1260135268
  • ISBN-13: 9781260135268
  • Formaat: Paperback / softback, 640 pages, kõrgus x laius x paksus: 234x185x36 mm, kaal: 1089 g, 100 Illustrations
  • Ilmumisaeg: 21-Nov-2019
  • Kirjastus: McGraw-Hill Education
  • ISBN-10: 1260135268
  • ISBN-13: 9781260135268
Publisher's Note: Products purchased from Third Party sellers are not guaranteed by the publisher for quality, authenticity, or access to any online entitlements included with the product.



LabVIEW programming techniques, tips, and practices


Learn to build effective LabVIEW programs using the detailed information contained in this thoroughly revised resource. This edition updates all content to align with the latest version and adds new chapters that clearly explain object-oriented programming methods, and programming in teams using the cloud. LabVIEW Graphical Programming, Fifth Edition begins with basics for beginners and quickly progresses to intermediate and advanced programming techniques. Written by a pair of LabVIEW experts, this hands-on guide shows how to work with data types, start building your own applications, handle I/O, and use the DAQmix library. You will also find out how to build applications that communicate with enterprise message brokers and with Amazon Web Services’ Internet of Things (IoT) message broker.

 Coverage includes:
The origin and evolution of LabVIEW
LabVIEW programming fundamentals
Data acquisition
Object-oriented programming in LabVIEW
Frameworks, including the Delacor Queued Message Handler (DQMH®) and Actor Framework
Unit testing
Enterprise and IoT messaging
Programming in teams using the cloud



Foreword xv
Preface xix
Acknowledgments xxi
1 Roots
1(60)
LabVIEW and Automation
1(6)
Virtual Instruments: LabVIEW's Foundation
3(3)
Why Use LabVIEW?
6(1)
The Origin of LabVIEW
7(21)
Introduction
8(1)
A Vision Emerges
8(2)
All the World's an Instrument
10(1)
A Hard-Core UNIX Guy Won over by the Macintosh
11(1)
Putting It All Together with Pictures
12(2)
Favoring the Underdog Platform for System Design
14(1)
Ramping up Development
15(1)
Stretching the Limits of Tools and Machine
16(1)
Facing Reality on Estimated Development Times
17(2)
Shipping the First Version
19(1)
Apple Catches up with the Potential Offered by LabVIEW
19(4)
LabVIEW 2 A First-Rate Instrument Control Product Becomes a World-Class Programming System
23(1)
Info-LabVIEW List: The Beginnings of an Ecosystem
24(1)
The Port to Windows and Sun
25(1)
LabVIEW 3
26(1)
LabVIEW 4
27(1)
LabVIEW Continues to Improve
28(10)
LabVIEW 5
28(2)
The LabVIEW RT Branch
30(1)
Lab VIEW FPGA
30(1)
LabVIEW 6
31(2)
NI Forums: The Beginning of the Ecosystem
33(1)
LAVA Forums: The LabVIEW Ecosystem Continues to Grow
33(1)
LabVIEW 7
33(1)
LabVIEW Champions
34(1)
LabVIEW 8
34(2)
LabVIEW 8.2
36(1)
LabVIEW Tools Network
37(1)
LabVIEW 8.6
37(1)
LabVIEW Switches to Yearly Releases
38(18)
LabVIEW 2009
38(1)
CLA Summits, LabVIEW Community-Driven Events
39(1)
Idea Exchange
40(1)
LabVIEW 2010
40(1)
LabVIEW 2011
41(1)
LabVIEW 2012
42(1)
LabVIEW 2013
43(2)
LabVIEW 2014
45(1)
LabVIEW 2015
45(1)
The Knights of Nl
46(2)
LabVIEW 2016
48(1)
LabVIEW 2017
49(2)
LabVIEW 2018
51(2)
GDevCon---The Ecosystem Independent from NI
53(1)
Future Versions of LabVIEW
54(1)
LabVIEW NXG 1.0--3.0
54(2)
Dr. T and Jeff Kodosky Inducted into the National Inventors Hall of Fame
56(1)
LabVIEW Release Timeline
56(2)
LabVIEW Handles Big Jobs
58(3)
CERN
58(3)
2 LabVIEW Fundamentals
61(86)
Dataflow
61(1)
LabVIEW under the Hood
62(5)
The Parts of a VI
62(1)
How Vis Are Compiled
63(4)
The LabVIEW Environment
67(3)
Front Panel
67(1)
Controls
68(1)
Property Nodes
69(1)
Block Diagram
70(1)
Looping
71(2)
While Loops
71(1)
For Loops
72(1)
Shift Registers
73(4)
Uninitialized Shift Registers
75(2)
Variables
77(6)
Local Variables
77(1)
Global Variables
78(3)
State Machines
81(2)
SubVIs
83(1)
Data Types
84(32)
Numeric Types
85(2)
Strings
87(1)
Parsing Strings
88(4)
Spreadsheets, Strings, and Arrays
92(3)
Arrays
95(8)
Clusters
103(3)
Waveforms
106(3)
Data-Type Conversions
109(1)
Conversion and Coercion
110(1)
Intricate Conversions and Type Casting
111(3)
Flatten To String (... Do what?)
114(1)
Enumerated Types (Enums)
115(1)
Get Carried Away Department
116(1)
Timing
116(11)
Where Do Little Timers Come From?
117(1)
Using the Built-In Timing Functions
118(1)
Intervals
118(2)
Timed Structures
120(3)
Execution and Priority
123(1)
Timing Guidelines
123(1)
Absolute Timing Functions
124(2)
High-Resolution and High-Accuracy Timing
126(1)
Synchronization
127(15)
Polling
127(1)
Events
128(3)
Occurrences
131(3)
Notifiers
134(2)
Queues
136(5)
Me and You, Rendezvous
141(1)
Benchmarking Code
142(5)
3 Data Acquisition
147(60)
Inputs and Outputs
147(1)
Origins of Signals
147(26)
Transducers and Sensors
148(2)
Actuators
150(1)
Categories of Signals
151(5)
Connections
156(17)
Sampling Signals
173(15)
Sampling Theorem
173(2)
Filtering and Averaging
175(2)
About ADCs, DACs, and Multiplexers
177(5)
Digital-to-Analog Converters
182(1)
Triggering and Timing
183(4)
Throughput
187(1)
Writing a Data Acquisition Program
188(16)
Bibliography
204(3)
4 LabVIEW Object-Oriented Programming
207(66)
What, Where, When, and Why
207(38)
Background
207(1)
What?
208(11)
Where and When?
219(5)
Why?
224(2)
How?
226(17)
HAL: Hardware Abstraction Layers
243(1)
MAL: Measurement Abstraction Layers
244(1)
Actor Framework: The Most Recognizable LVOOP Architecture
244(1)
SOLID Principles of Object-Oriented Design
245(23)
SRP: Single Responsibility Principle
247(3)
OCP: The Open-Closed Principle
250(2)
LSP: The Liskov Substitution Principle
252(3)
ISP: The Interface Segregation Principle
255(8)
DIP: The Dependency Inversion Principle
263(5)
Caveats
268(1)
Accessors Get/Set Instead of Read/Write
269(1)
Classes in LabVIEW NXG
269(1)
References
269(4)
5 Why Would You Want to Use a Framework?
273(128)
What?
274(1)
What Is a Process?
274(1)
What Is an Abstraction Layer?
274(1)
What Is a Framework?
275(1)
When Do You Make the Decision to Break Your Application into Parallel Tasks?
275(1)
What Are the Design Decisions That Need to Be Nailed Down at the Beginning to Make a Parallel Design Successful?
276(2)
What Project-Level Enforcement Is Available to Help Make Better Decisions?
278(3)
Project Libraries
279(2)
Frameworks for LabVIEW
281(3)
Advantages of Using a Framework
282(1)
Disadvantages of Using a Framework
283(1)
Framework versus Design Pattern
283(1)
The Contract between the Framework and the Programmer
283(1)
Why Not Make Your Own Framework?
284(2)
Criteria to Evaluate Frameworks
285(1)
Key Components
286(3)
Interprocess Communication
287(1)
Module Initialization
287(1)
Stop Processes Gracefully
288(1)
Error Handling Strategy
288(1)
Sharing Modules
289(9)
Configuring Source Code Control Repository Dependencies
290(1)
Packaging Modules Using VIPM
290(2)
Packaging Modules in PPLs
292(6)
DQMH
298(56)
Use Cases
298(1)
What Is DQMH?
298(14)
How to Use DQMH
312(31)
DQMH: Behind the Scenes
343(8)
Other DQMH Tools
351(1)
Sharing Reusable DQMH Modules
352(2)
Actor Framework
354(45)
Use Cases
354(1)
What Is Actor Framework?
354(12)
How to Use Actor Framework
366(21)
Actor Framework: Behind the Scenes
387(4)
Other Actor Framework Tools
391(1)
Advanced Actor Framework
392(6)
Sharing Reusable Actors
398(1)
References
399(2)
6 Unit Testing
401(86)
What Is Unit Testing?
402(1)
Unit Testing as Code Documentation
403(1)
What Makes a Good Unit Test?
403(1)
What Are Assertions?
404(1)
Writing Vis with Testing in Mind
405(1)
Test Harness versus Automated Test Frameworks
406(1)
What Are the Automated Test Frameworks Available for LabVIEW?
406(1)
What Is the Difference Between Black Box and White Box Testing?
407(1)
What Is TDD?
407(1)
What Is Regression Testing?
408(1)
Getting Started with Unit Testing
408(3)
Test Coverage
411(8)
Test Coverage Example
411(8)
Test Vectors
419(5)
What about Testing Classes? Public versus Private Vis in Libraries
424(23)
Example of Unit Testing for a LabVIEW Class
425(22)
When Are Setup and Teardown Required?
447(2)
Should You Add Test Cases That Are Designed to Fail?
449(1)
What about Testing When the Expected Output Is an Array of NaN (Not a Number)?
449(1)
When Would You Create Unit Tests for a DQMH Public API?
449(15)
Unit Testing for a DQMH Module
450(14)
What about RT?
464(2)
Example of Unit Testing for LabVIEW RT
464(2)
What about FPGA Vis?
466(9)
Example of Unit Testing for LabVIEW FPGA
470(5)
UnitTestsfortheGUI?
475(1)
Unit Test Reporting
475(1)
Example of Assertions
475(7)
Assertions with Caraya
477(2)
Assertions with AssertAPI
479(3)
UnitTesting and LabVIEW NXG
482(3)
Tool Comparison
483(1)
Unit Testing Tool Alternatives for LabVIEW
484(1)
References
485(2)
7 Developing in LabVIEW for Teams
487(64)
Where Is Your Team At?
488(2)
What Is the Problem You Are Trying to Solve?
490(1)
What Is Technical Wealth?
491(3)
From Model to Code
494(7)
What Is a Model?
494(1)
Wasn't LabVIEW Supposed to Remove the Need for Modeling?
494(3)
Why and When to Use Models
497(1)
Types of Models
497(4)
Modelling Tools
501(1)
Source Code Control---The Developer's Time Machine
501(22)
What Is Source Code Control?
502(1)
Centralized Source Code Control
503(3)
Distributed Source Code Control
506(3)
Branch Merge versus Code Merge
509(1)
LabVIEW Compare
509(4)
LabVIEW Merge
513(1)
Good Practices for Source Code Control
514(4)
Establish a Source Code Workflow
518(4)
How to Select the Source Code Control Tool and the Workflow for Your Team
522(1)
Workstations
523(4)
Virtual Machines
525(1)
Workstations Setup
526(1)
Build Server
526(1)
Test Computer
527(1)
LabVIEW Style Guidelines
527(1)
Code Review Process
528(8)
Code Review Frequency
530(1)
VI Analyzer Tests Configuration
531(1)
VI Analyzer Report
532(1)
Prepare Code and Documentation for a Code Review
533(1)
LabVIEW Compare for Code Reviews
533(2)
Code Review Checklist
535(1)
Conducting a Code Review
535(1)
Postreview Actions
536(1)
CASE Tools
536(6)
Why Do You Want to Use LabVIEW VI Scripting?
537(1)
Common Areas That Use LabVIEW Scripting
537(1)
Five Steps to Become a VI Scripting Ninja
538(4)
Deployment, Continuous Integration, and Continuous Delivery
542(6)
Build Engine
542(4)
Build Environment
546(2)
Other Tips
548(1)
References
549(2)
8 Enterprise and IoT Messaging
551(38)
MQTT Messaging Protocol
555(3)
Install a Message Broker
558(3)
MQTTDQMH Client
561(6)
Getting Started
561(6)
MQTTDQMH Application
567(4)
Messaging in the Cloud
571(1)
Toolkits
572(1)
AWS IoT
573(16)
Enabling the IoT Message Broker and CloudWatch
574(1)
Create Certificates and Keys
574(3)
IoT Policies
577(1)
DynamoDB
578(2)
Lot Rules
580(9)
Abbreviation 589(2)
Index 591
Richard Jennings (Livermore, CA) is a programmer at Sandia National Laboratory, also well-known in LabVIEW circles.