LabVIEW
LabVIEW (acronym for Laboratory Virtual Instrument Engineering Workbench) is a platform and development environment for designing systems, with a graphical visual programming language intended for testing, control, and design hardware and software systems, simulated or real and embedded.
This program was created by National Instruments (1976) to run on MAC machines, it was first released in 1986, with versions available for Windows, UNIX, MAC and GNU/Linux platforms today. The penultimate version is 2013, with the incredible demonstration of being able to be used simultaneously for the design of the firmware of a last generation RF instrument, to the high-level programming of the same instrument, all with open source. And later the 2014 version available in demo version for students and professionals, the demo version can be downloaded directly from the National Instruments page.
Programs developed with LabVIEW are called Virtual Instruments, or VIs, and their origin came from instrument control, although today it has been widely expanded not only to control all kinds of electronics (Electronic Instrumentation) but also to their embedded programming, communications, mathematics, etc. A traditional LabVIEW motto is: "The power is in the Software", which with the advent of multicore systems has become even more powerful. Among its objectives are reducing the development time of all kinds of applications (not only in the areas of Testing, Control and Design) and allowing professionals from any other field to enter computing. LabVIEW can be combined with all kinds of software and hardware, both from the manufacturer itself -data acquisition cards, PAC, Vision, instruments and other hardware- and from other manufacturers.
Main features
Its main characteristic is ease of use, valid for professional programmers as well as for people with little knowledge in programming, they can make relatively complex programs, impossible for them to do with traditional languages. It is also very fast to write programs with LabVIEW and any programmer, no matter how experienced, can benefit from it. Programs in LabView are called virtual instruments (VIs). For those who love the complex, with LabVIEW you can create programs with thousands of VIs (equivalent to millions of pages of text code) for complex applications, automation programs with tens of thousands of points. of inputs/outputs, projects to combine new VIs with VIs already created, etc. There are even good scheduling practices to optimize performance and scheduling quality. labView 7.0 introduces a new type of subVI called Express VIS. These are interactive VIs that have a dialog box configuration that allows the user to customize the functionality of the Express VI. Standard VIs are modular, customizable VIs through wiring and functions that are fundamental elements of LabView's operation.
It presents facilities for managing:
- Communications interfaces:
- Port series
- Parallel port
- GPIB
- PXI
- VXI
- TCP/IP, UDP, DataSocket
- Irda
- Bluetooth
- USB
- OPC...
- Ability to interact with other languages and applications:
- DLL: bookshops of functions
- .NET
- ActiveX
- Multisim
- Matlab/Simulink
- AutoCAD, SolidWorks, etc.
- Graphic and textual tools for digital signal processing.
- Visualization and handling of graphics with dynamic data.
- Acquisition and processing of images.
- Movement control (combined even with all the above).
- Real time strictly speaking.
- FPGA programming for control or validation.
- Synchronization between devices.
LabVIEW Program
As has been said, it is a graphical programming tool, this means that the programs are not written, but drawn, facilitating their understanding. By having a large number of blocks already pre-designed, it is easier for the user to create the project, which instead of spending a large amount of time programming a device/block, allows him to invest much less time and dedicate a little more in the graphical interface and the interaction with the end user. Each VI consists of two different parts:
- Front Panel: The Front Panel is the interface with the user, we use it to interact with the user when the program is running. Users will be able to view the actual updated program data (as data flows, an example would be a calculator, where you put the inputs, and put the result on the output). In this interface the controls (we use them as inputs, can be buttons, markers etc.) and indicators (we use them as outputs, they can be graphic....).
- Block diagram: is the program itself, where its functionality is defined, here are placed icons that perform a certain function and interconnect (the code that controls the program --. There's a third party. icon/conector that are the means used to connect a VI with other VIs....
On the front panel, we will find all kinds of controls or indicators, where each of these elements is assigned a terminal on the block diagram, that is, the user can design a project on the front panel with controls and indicators, where These elements will be the inputs and outputs that will interact with the VI terminal. We can see in the block diagram, all the values of the controls and indicators, how they flow between them when a VI program is being executed.
Figure 1 shows a Block Diagram of a program that generates an array of 100 random elements, then FFTs this array and shown on a graph:
Other alternatives
LabVIEW can be used to create many types of programs without being narrowly focused.
- Its alter ego is LabWindows/CVI from National Instruments, which allows to use the same functionalities but with programming in C language and access to Win32 libraries thanks to Windows SDK.
- The same instrumentation, analysis and graphical controls are also accessible in Visual Basic, C++ or C# with Visual Studio thanks to the National Instruments Measurement Studio. Thus, you can enjoy object-oriented programming and the framework.NET.
- The other alternatives range from generic languages such as C or Visual Basic but without the help of the National Instruments functional libraries, to other graphic tools like HP-VEE, now Agilent-VEE.
One of the free software alternatives is MyopenLab.
History
It was in 1986 that the first version of LabVIEW was made on the Macintosh. Incessant work continues to add functionalities:
- 1986: LabVIEW 1.0, first version on Mac OS
- 1990: LabVIEW 2.0, maximum use of results
- 1992: LabVIEW 2.5, first version in Windows 3.1 and Solaris
- 1993: LabVIEW 3.0
- 1994: LabVIEW 3.0.1, first version in Windows NT
- 1994: LabVIEW 3.1
- 1995: LabVIEW 3.1.1, integration of Application Builder (executable file creation)
- 1996: LabVIEW 4.0
- 1997: LabVIEW 4.1
- 1998: LabVIEW 5.0, multitasking, ActiveX containers, assistant for the acquisition of data (DAQ acquisition cards) and instrument control assistant
- 1999: LabVIEW 5.1, first version for Linux, first version of LabVIEW RT (Real Time)
- 2000: LabVIEW 6.0, 3D graphic controls, control references
- 2001: LabVIEW 6.1, improvement and corrections, first version in Palm OS
- 2003: LabVIEW 7.0, VI Express, first version in Windows Mobile 2003
- 2004: LabVIEW 7.1, translation in French, German and Japanese
- 2005: LabVIEW 8.0, Project Explorer, XControls, shared variables
- 2005: LabVIEW 8.1, improvement and corrections
- 2006: LabVIEW 8.20, Object-oriented programming
- 2007: LabVIEW 8.5, first version of toolkit FPGA and toolkit Statechart
- 2008: LabVIEW 8.6, automatic cleaning of diagrams
- 2009: LabVIEW 2009, MathScript RT, LabVIEW of 64 Bits, Native Recursiveness, Object Orientation in LabVIEW RT/FPGA, SSL (Security) for Web Services, Partial Cleaning Block Diagram, Easy Access to TDMS Files from Microsoft Excel, New Data Visualization Controls in 2D and 3D, Partial Data Code
- 2010: LabVIEW 2010, - Combination of instructions.
- Thread jump. - Scalar replacement of sets. - Conditional propagation. - Elimination of the "Tail Call". - Re-association of expressions. - Movement of the invariant code curve. - Immutable curve and separation index. - Simplification of induction variables. - Unrolling curve. - Elimination of dead code. - Propagation of sparse conditional constants. The technological miscellany integrated into the 2010 edition, composed mostly of DFIR and LLVM, provides performance improvements through an optimization scheme. This makes LabVIEW 2010 a faster system whose efficiency levels range from 20% to 200% depending on the application. Even if it is real-time controls, the benefits according to the technical details of the company can be managed from the compiler.
Contenido relacionado
Von Neumann architecture
ENIAC
Logical arithmetic unit
Commodore Amiga 4000
Motherboard