LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench)
What is LabVIEW?
LabVIEW is a development environment from National Instruments that has been around since 1986. It is designed for creating applications for acquiring, processing, and displaying data and signals. The main areas of application are measurement, control, test, and automation technology.
In these areas LabVIEW has established itself today in the most diverse branches of science and technology as a preferred development tool. This is based on the one hand on a successive extension of the functional range, and on the other hand on the fact that with the LabVIEW-internal graphic programming language, ideas and solutions can be implemented quickly without losing flexibility and performance.
The LabVIEW development environment
Programming language G
The graphical, data flow-oriented programming language G is used for development with LabVIEW. This programming language allows the user to easily connect graphical, predefined function blocks with data lines in the so-called “block diagram”, which contains the logic of the application, in order to obtain the desired functionality.
The data flow orientation of G permits a simple realization of parallel programming, since program sections which are data-independent are executed automatically in several threads.
Libraries
LabVIEW provides a multitude of libraries with different functionality. In addition to the common basic functionalities of a programming language, special function blocks and algorithms adapted to the application area are also offered. Interactive, ready-made operating and display elements, such as diagrams, graphs and buttons, are supplied, which can be used to display data and signals on the user interface (front panel).
Furthermore, hardware drivers are supplied for supported devices. This allows for the consistent use of a single development tool to realize communication with the device and the subsequent further processing and display of the data. This shows the potential of an efficient development with LabVIEW.
For already written modules in C# or C/C++ there is the possibility to integrate them via .NET, ActiveX, DLLs and XML.
Integrated Development Environment
The integrated development environment brings a variety of setting options and tools that allow for efficient development. For example, breakpoints and data probes can also be used here for error handling in order to examine selected function nodes as well as the data content of objects.
The integrated compiler is used for the translation of the block diagrams. This translates the block diagrams directly into machine code, so that applications created in LabVIEW are also very performant.
Development with LabVIEW
In LabVIEW the usual software development cycles apply. However, both the requirements analysis and the software design must take into account the data flow orientation of LabVIEW. Thus, it is more practical to analyze the system by means of state diagrams, whose representation of the abstracted problem enables a simple and fast implementation by means of the graphical programming language G.
For system design, depending on the problem, National Instruments recommends design patterns that allow for the construction of a scalable, modular, and easily extensible LabVIEW application. Common patterns are the Master/Slave, Producer/Consumer, Event Driven User Interface but also more complex, combined patterns like the Queued State Machine - Event Driven Producer/Consumer (QSM-PC). The most suitable pattern must be selected here depending on the functionality and the general conditions of the application.
Advantages
- Graphical programming does not require deep programming knowledge and reduces training time
- Supplied hardware drivers and device interfaces facilitate direct work with connected devices in a single development environment
- Possibility to simulate hardware/devices
- Extensive libraries are available, tailored to specific application areas, e.g. Vision & Motion, Automation, etc.
- Extensive documentation of functions
- Development that is fast and efficient yet flexible, reusable and performant
- Very fast prototyping possible
Disadvantages
- Implementation of complex algorithms in LabVIEW is itself very cumbersome, if not impossible. Here, a text-based programming language is needed, which is integrated into LabVIEW. The latter can prove to be very difficult
- Thinking in graphical programming is not intuitive
- Memory requirement of LabVIEW is very high
- Block diagrams can quickly become confusing
- Runtime environment on the target computer is necessary
- Projects can be opened only with the version, in which was developed
We extend LabVIEW for you and connect your hardware to LabVIEW.
More information about graphical programming systems and simulation.