Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Nov 5, 2007


Feedback


Yes No

Related Links - Developer Zone

Related Links - Products and Services

Productivity results with LabVIEW

0 ratings | 0.00 out of 5
Print | PDF

Overview

NI LabVIEW is a proven integrated development environment designed for engineers and scientists developing test, control, and measurement applications. Created and optimized more than 20 years ago for engineering applications, this system design platform increases productivity. The graphical nature of LabVIEW creates intuitive, self-documenting code that saves your organization thousands of development hours and yields more results in less time.

LabVIEW can help you accomplish more by streamlining the engineering process from inception to completion. Several LabVIEW characteristics contribute to a significant gain in productivity when compared to other development software:


Easy to Learn and Use

  • Intuitive graphical programming
  • Optimized for engineers and scientists
  • Fully integrated with commercial off-the-shelf (COTS) hardware

Complete Functionality

  • Thousands of built-in functions
  • Full programming language
  • Completely open environment

Modular Development

  • Reusability of code modules saves time and effort
  • High-level diagram offers clear system functionality
  • Easy debugging, testing, and integration with high-level systems

Supportive Community

  • In-depth education courses available
  • Hundreds of textbooks
  • Certification opportunities

Over the past 20 years, NI and LabVIEW users have introduced and improved  a tremendous collection of libraries and structures for the graphical language. LabVIEW also offers the following key features that set the language apart.

Data Flow
LabVIEW is a development environment based on a graphical programming language. This approach to developing applications significantly reduces the learning curve because graphical representations are more intuitive design notations than text-based code. You can access the tools and functions through interactive palettes, dialogs, menus, and hundreds of function blocks, known as VIs (virtual instruments). You can drag and drop these VIs onto a diagram to define the behavior of your applications. This point-and-click approach shortens the time it takes to get from initial setup to a final solution.

Figure 1. Sample LabVIEW Block Diagram

You define the flow of data and the execution of the application through a concept known as dataflow programming. Data is passed from one VI to the next, eventually defining the execution order and functionality of the entire application. Data flow is comparable to reading a flow chart. Block diagrams consist of functions, which are represented by icons, wires that connect these icons, and structures that control execution logic. Data flows from one function to the next, and the functions and VIs do not execute until all terminals or wire connections have data available for processing (see Figure 1).

Complete Functionality

Multithreading and Parallelism
LabVIEW eliminates much of the tedious low-level coding, such as memory management (variable declarations and so on), required by traditional languages. LabVIEW also has intuitive graphical structures for common programming structures in text-based languages. For example, while loops and for loops are represented as boxes, and the loop iterations execute the code that is residing graphically within the boxes.

LabVIEW is also designed as a parallel language, which means that the graphical language constructs naturally represent the simple concept of parallel execution. This simple concept, however, can be very difficult to implement in text-based languages that traditionally execute sequentially. With LabVIEW, you can develop parallel-executing applications simply by placing multiple loop structures in their code. A graphical representation of two independent loops, as shown in Figure 2, executes independently in parallel as well. This feature is an incredibly simple way to represent a complex coding challenge. Parallel execution can be vital in automated test systems where multiple units under test (UUTs) may be tested.  Parallel execution is also critical in real-time control systems where time-critical loops are acquiring data and controlling outputs while data is communicated to the host and in embedded applications where multiple types of inputs must be responded to in a deterministic fashion.


[+] Enlarge Image

Figure 2. LabVIEW is designed to represent parallel execution more intuitively than a sequential text-based language.

When developing parallel-execution applications, you must have tools for setting the priority of different operations. For example, the I/O portion of the program many times is more critical than the user interface. With LabVIEW, you can configure thread priorities at the OS level using intuitive dialogs and settings.

Interactive Execution and Debugging
LabVIEW is interactive as well, which means you can easily experiment with different functions in the libraries during development. This is particularly important when programming I/O resources. For example, when configuring a data acquisition operation, you can simply select an acquisition function from the built-in data acquisition library and run it independently. This operation retrieves data from the data acquisition board in the computer, so you can inspect the data to see if the operation is appropriate for the program. If so, simply drop the VI into the program and continue. If not, try another VI in the library until you find the right one.

Debugging in LabVIEW is also interactive, and it features all of the common capabilities of traditional programming tools, such as breakpoints, step over/into/out of, and more. With LabVIEW debugging, you can visualize data anywhere within the algorithms you develop without degrading the performance of the algorithm or requiring complex programming. For example, if you are developing a complex signal processing algorithm in LabVIEW, you can easily drop graph controls on the front panel and wire them to the data path to view the data at that point. Or, you can connect a control, such as a knob or slide control, to vary the input parameter values of the algorithm. This ability to interactively peek and poke at data and parameter values makes debugging faster and more intuitive.

 

High-Level Application-Specific Development Tools
In addition to being easy to learn and use, LabVIEW delivers the performance needed for advanced applications. The compiled language executes at speeds equal to traditional compiled text languages.

However, for many applications, there may be higher-level ways to represent a solution (or part of a solution) than using low-level code. LabVIEW has a growing collection of higher-level tools targeted at solving particular types of constructs much faster. With most of these tools, you can work at a higher conceptual level to develop a solution, which is then converted into low-level LabVIEW code to deliver all of the openness, flexibility, and performance of the compiled LabVIEW language. These development tools include:

  • Control block diagrams – for designing linear, nonlinear, discrete, and continuous control systems. You can develop them using traditional control concepts such as transfer function blocks, integrators, differentiators, and feedback loops.

Figure 3. LabVIEW Simulation Diagram

  • State charts – for defining multiple states and the transition logic between them using a graphical state chart representation.

Figure 4. Statechart Module

  • Formula/script nodes – for implementing complex formulas in text or importing your algorithms defined in traditional math tools such as C code, The MathWorks, Inc. MATLAB® software, or NI MATRIXx design and development tools.


 

Figure 5. Formula Node

  • User interface programming – for managing complex user interfaces in graphical code with the event structure in LabVIEW.


[+] Enlarge Image

Figure 6. Built-In User Interface Controls and Indicators

By combining these high-level concepts to build specific applications with the flexibility of the LabVIEW language, you get the best of both approaches in one platform.

Integrated I/O Capabilities


LabVIEW is well-known as a data acquisition and instrument control tool. These capabilities built into the language are pervasive throughout the environment. The language itself naturally manages continuous, looping data acquisition operations and delivers significant time savings to developers. The tool provides functionality throughout with an engineering and scientific perspective in the following areas:

I/O Libraries:

  • Plug-in data acquisition devices
  • Modular instruments
  • Stand-alone instruments (GPIB, RS232, and so on)
  • Vision/image acquisition
  • Motion control

Analysis

  • Signal processing
  • Sound and vibration
  • Order analysis (rotational machinery analysis)
  • Spectral measurements and modulation

Display

  • Graphs, strip charts
  • Knobs, meters, gauges
  • Pumps, valves, pipes
  • Thermometers, tanks

Figure 7. LabVIEW Front Panel

The out-of-the-box integration of these different types of engineering-specific controls and libraries cannot be underestimated.

 

Modular Development

LabVIEW naturally encourages modularity and reuse of code. You can create VIs, or code modules, with a graphical front panel that displays the inputs and outputs of the functional code as graphical controls and indicators. The graphical controls and indicators (knobs, meters, gauges, graph displays, strip charts, and so on) represent data types for the data passing into and out of the functions. You can easily plug these VIs into others to create modular, hierarchical code that you can use to gradually build up complex systems one component at a time and reuse common operations as subVIs along the way. There is no limit to the number of layers or subVIs used in an application, so the language scales with the complexity required for the application.

Supportive Community

 

Because the development team can never imagine or keep up with all of the innovative ideas of LabVIEW customers, there is a very strong community surrounding and supporting LabVIEW. Given the number of local user groups, online forums, blogs, and third-party tools, there is probably a LabVIEW solution or tip available to help solve any application challenge.

 

 
[+] Enlarge Image

Figure 8. LAVA group is just one example of many LabVIEW community experiences available.

 

In addition to community resources, National Instruments and National Instruments Alliance Partners provide formal training and certification courses to ensure your success. Formal training, often the fastest, most certain route to productivity with NI tools and successful application development, helps you:

·         Save development time and reduce maintenance costs

·         Increase performance and reuse of your code

·         Shorten your learning curve

Figure 9. LabVIEW courses are the most efficient way to learn LabVIEW.

 

Training is available as instructor-led on-site courses, online training, self-paced training, and customer courses.

 

Strong Customer Base

 

Every day LabVIEW customers find new and exciting ways to use NI products. At ni.com/solutions, find customer-written case studies demonstrating just some of the examples of how customers are harnessing the power of graphical system design to innovate in virtually every industry and across many applications.

 

Boeing Tests Noise Reduction Technologies Using LabVIEW and PXI
Boeing is measuring the effectiveness of noise-reducing technologies for its aircraft using LabVIEW and PXI. Its test facility is outfitted with more than 600 ground-based microphones to acquire the noise from a 777 as it flies overhead. The data is then analyzed to get an acoustical image of the airplane so that engineers can see where improvements can be made.

Microsoft Uses LabVIEW and Modular Instruments to Develop Test System for Xbox 360 Controllers
Microsoft developed the test system for the Xbox 360 controllers based on LabVIEW and PXI modular instruments, resulting in a test system that operates twice as fast than the previous-generation system.

 

Improving Retinal Disease Treatment with LabVIEW FPGA and Intelligent DAQ
OptiMedica Corporation specializes in helping ophthalmologists treat retinal disease and has used the power of graphical system design to develop PASCAL. PASCAL uses LabVIEW FPGA and NI intelligent data acquisition (DAQ) to reduce treatment time as well as patient discomfort.

 

 NI CompactRIO and LabVIEW Help Nexans Spider Level Seabed for Oil and Gas Exploration
Nexans uses LabVIEW and CompactRIO to control hydraulic systems on the Nexans Spider, a remote operated vehicle (ROV) used to level the seabed and clear the way for a 1,200 km undersea pipeline.

Conclusion

Combining these elements means that LabVIEW can help you complete more projects. By using an intuitive tool optimized for your specific engineering challenge, you spend less time on the tool and devote more time to innovating. 

 

 

© 2007 National Instruments Corporation. All rights reserved. CompactRIO, LabVIEW, MATRIXx, National Instruments, NI, and ni.com are trademarks of National Instruments. Other product and company names listed are trademarks or trade names of their respective companies.

 

MATLAB® is a registered trademark of The MathWorks, Inc.

 

   
0 ratings | 0.00 out of 5
Print | PDF

Reader Comments | Submit a comment »

 

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).