Jun 12, 2009 Hello all, there is a new version of LabVIEW for download on the NI ftp. Look at: ftp.ni.comsupportlabviewupdateswindows7.1.1 LabVIEW 7.1.1 ReadmeNovember 2004 This file contains important information about LabVIEW 7.1.1, including installation and upgrade issues, compatibility issues, and c.
Developer(s) | National Instruments |
---|---|
Initial release | 1986; 33 years ago |
Stable release | LabVIEW NXG 3.1 LabVIEW 2019 / May 2019; 5 months ago |
Written in | C, C++, .NET |
Operating system | Cross-platform: Windows, macOS, Linux |
Type | Data acquisition, instrument control, test automation, analysis and signal processing, industrial control, embedded system design |
License | Proprietary |
Website | www.ni.com/labview |
Laboratory Virtual Instrument Engineering Workbench (LabVIEW)[1]:3 is a system-design platform and development environment for a visual programming language from National Instruments.
The graphical language is named 'G'; not to be confused with G-code. Originally released for the Apple Macintosh in 1986, LabVIEW is commonly used for data acquisition, instrument control, and industrial automation on a variety of operating systems (OSs), including Microsoft Windows, various versions of Unix, Linux, and macOS.
The latest versions of LabVIEW are LabVIEW 2019 and LabVIEW NXG 3.1, released in May 2019.[2]
- 2Graphical programming
- 3Benefits
- 4Criticism
- 10Further reading
Dataflow programming[edit]
The programming paradigm used in LabVIEW, sometimes called G, is based on data availability. If there is enough data available to a subVI or function, that subVI or function will execute. Execution flow is determined by the structure of a graphical block diagram (the LabVIEW-source code) on which the programmer connects different function-nodes by drawing wires. These wires propagate variables and any node can execute as soon as all its input data become available. Since this might be the case for multiple nodes simultaneously, LabVIEW can execute inherently in parallel.[3]:1–2Multi-processing and multi-threading hardware is exploited automatically by the built-in scheduler, which multiplexes multiple OS threads over the nodes ready for execution.
Graphical programming[edit]
LabVIEW integrates the creation of user interfaces (termed front panels) into the development cycle. LabVIEW programs-subroutines are termed virtual instruments (VIs). Each VI has three components: a block diagram, a front panel, and a connector pane. The last is used to represent the VI in the block diagrams of other, calling VIs. The front panel is built using controls and indicators. Controls are inputs: they allow a user to supply information to the VI. Indicators are outputs: they indicate, or display, the results based on the inputs given to the VI. The back panel, which is a block diagram, contains the graphical source code. All of the objects placed on the front panel will appear on the back panel as terminals. The back panel also contains structures and functions which perform operations on controls and supply data to indicators. The structures and functions are found on the Functions palette and can be placed on the back panel. Collectively controls, indicators, structures, and functions are referred to as nodes. Nodes are connected to one another using wires, e.g., two controls and an indicator can be wired to the addition function so that the indicator displays the sum of the two controls. Thus a virtual instrument can be run as either a program, with the front panel serving as a user interface, or, when dropped as a node onto the block diagram, the front panel defines the inputs and outputs for the node through the connector pane. This implies each VI can be easily tested before being embedded as a subroutine into a larger program.
The graphical approach also allows nonprogrammers to build programs by dragging and dropping virtual representations of lab equipment with which they are already familiar. The LabVIEW programming environment, with the included examples and documentation, makes it simple to create small applications. This is a benefit on one side, but there is also a certain danger of underestimating the expertise needed for high-quality G programming. For complex algorithms or large-scale code, it is important that a programmer possess an extensive knowledge of the special LabVIEW syntax and the topology of its memory management. The most advanced LabVIEW development systems offer the ability to build stand-alone applications. Furthermore, it is possible to create distributed applications, which communicate by a client–server model, and are thus easier to implement due to the inherently parallel nature of G.
Widely-accepted design patterns[edit]
Applications in LabVIEW are usually designed using well-known architectures, known as design patterns. The most common design patterns for graphical LabVIEW applications are listed in the table below.
Design pattern | Purpose | Implementation details | Use cases | Limitations |
---|---|---|---|---|
Functional Global Variable | Exchange information without using global variables | A shift register of a while loop is used to store the data and the while loop runs only one iteration in a 'non-reentrant' VI |
|
|
State machine[4] | Controlled execution that depends on past events | Case structure inside a while loop pass an enumerated variable to a shift register, representing the next state; complex state machines can be designed using the Statechart module |
|
|
Event-driven user interface | Lossless processing of user actions | GUI events are captured by an event structure queue, inside a while loop; the while loop is suspended by the event structure and resumes only when the desired events are captured |
|
|
Master-slave[5] | Run independent processes simultaneously | Several parallel while loops, out of which one functions as the 'master', controlling the 'slave' loops |
|
|
Producer-consumer[6] | Asynchronous of multithreaded execution of loops | A master loop controls the execution of two slave loops, that communicate using notifiers, queues and semaphores; ability) | ?? | 1995 |
LabVIEW 4.0 | ?? | April 1996 | ||
LabVIEW 4.1 | ?? | 1997 | ||
LabVIEW 5.0 | ?? | February 1998 | ||
LabVIEW RT (Real Time) | ?? | May 1999 | ||
LabVIEW 6.0 (6i) | 6.0.0.4005 | 26 July 2000 | ||
LabVIEW 6.1 | 6.1.0.4004 | 12 April 2001 | ||
LabVIEW 7.0 (Express) | 7.0.0.4000 | April 2003 | ||
LabVIEW PDA module first released | ?? | May 2003 | ||
LabVIEW FPGA module first released | ?? | June 2003 | ||
LabVIEW 7.1 | 7.1.0.4000 | 2004 | ||
LabVIEW Embedded module first released | ?? | May 2005 | ||
LabVIEW 8.0 | 8.0.0.4005 | September 2005 | ||
LabVIEW 8.20 (native Object Oriented Programming) | ?? | August 2006 | ||
LabVIEW 8.2.1 | 8.2.1.4002 | 21 February 2007 | ||
LabVIEW 8.5 | 8.5.0.4002 | 2007 | ||
LabVIEW 8.6 | 8.6.0.4001 | 24 July 2008 | ||
LabVIEW 8.6.1 | 8.6.0.4001 | 10 December 2008 | ||
LabVIEW 2009 (32 and 64-bit) | 9.0.0.4022 | 4 August 2009 | ||
LabVIEW 2009 SP1 | 9.0.1.4011 | 8 January 2010 | ||
LabVIEW 2010 | 10.0.0.4032 | 4 August 2010 | ||
LabVIEW 2010 f2 | 10.0.0.4033 | 16 September 2010 | ||
LabVIEW 2010 SP1 | 10.0.1.4004 | 17 May 2011 | ||
LabVIEW for LEGO MINDSTORMS (2010 SP1 with some modules) | August 2011 | |||
LabVIEW 2011 | 11.0.0.4029 | 22 June 2011 | ||
LabVIEW 2011 SP1 | 11.0.1.4015 | 1 March 2012 | ||
LabVIEW 2012 | 12.0.0.4029 | August 2012 | ||
LabVIEW 2012 SP1 | 12.0.1.4013 | December 2012 | ||
LabVIEW 2013 | 13.0.0.4047 | August 2013 | ||
LabVIEW 2013 SP1 | 13.0.1.4017 | March 2014[13] | ||
LabVIEW 2014 | 14.0 | August 2014 | ||
LabVIEW 2014 SP1 | 14.0.1.4008 | March 2015 | ||
LabVIEW 2015 | 15.0f2 | August 2015 | ||
LabVIEW 2015 SP1 | 15.0.1f1 | March 2016 | ||
LabVIEW 2016 | 16.0.0 | August 2016 | ||
LabVIEW 2017 | 17.0f1 | May 2017 | ||
LabVIEW 2017 SP1 | 17.0.1f1 | Jan 2018 [14] | ||
LabVIEW 2018 | 18.0 | May 2018 | ||
LabVIEW 2018 SP1 | 18.0.1 | Dec 2018 | ||
LabVIEW 2019 | 19.0 | May 2019 |
Repositories and libraries[edit]
National Instruments Labview 7.1 Download For Pc
OpenG, as well as LAVA Code Repository (LAVAcr), serve as repositories for a wide range of Open Source LabVIEW applications and libraries. SourceForge has LabVIEW listed as one of the possible languages in which code can be written.
VI Package Manager has become the standard package manager for LabVIEW libraries. It is very similar in purpose to Ruby's RubyGems and Perl's CPAN, although it provides a graphical user interface similar to the Synaptic Package Manager. VI Package Manager provides access to a repository of the OpenG (and other) libraries for LabVIEW.
Tools exist to convert MathML into G code.[15]
Related software[edit]
National Instruments also offers a product named Measurement Studio, which offers many of the test, measurement, and control abilities of LabVIEW, as a set of classes for use with MicrosoftVisual Studio. This allows developers to harness some of LabVIEW's strengths within the text-based .NET Framework. National Instruments also offers LabWindows/CVI as an alternative for ANSI C programmers.
When applications need sequencing, users often use LabVIEW with TestStand test management software, also from National Instruments.
The Ch interpreter is a C/C++ interpreter that can be embedded in LabVIEW for scripting.[16]
DSP Robotics' FlowStone DSP also uses a form of graphical programming similar to LabVIEW, but is limited to the robotics industry respectively.
LabVIEW has a direct node with modeFRONTIER, a multidisciplinary and multi-objective optimization and design environment, written to allow coupling to almost any computer-aided engineering tool. Both can be part of the same process workflow description and can be virtually driven by the optimization technologies available in modeFRONTIER.
See also[edit]
- Lego Mindstorms NXT, whose programming environment, NXT-G is based on LabVIEW, and can be programmed within LabVIEW.
- MATLAB/Simulink
References[edit]
- ^Jeffrey., Travis, (2006). LabVIEW for everyone : graphical programming made easy and fun. Kring, Jim. (3rd ed.). Upper Saddle River, NJ: Prentice Hall. ISBN0131856723. OCLC67361308.CS1 maint: extra punctuation (link)
- ^'LabVIEW NXG: Version 3.1 Readme'. Manuals. National Instruments.
- ^Bress, Thomas J. (2013). Effective LabVIEW Programming. [S.l.]: NTS Press. ISBN1-934891-08-8.
- ^'Application Design Patterns: State Machines'. National Instruments whitepapers. 8 September 2011. Archived from the original on 22 September 2017. Retrieved 21 September 2017.
- ^'Application Design Patterns: Master/Slave'. National Instruments whitepapers. 7 October 2015. Archived from the original on 22 September 2017. Retrieved 21 September 2017.
- ^'Application Design Patterns: Producer/Consumer'. National Instruments whitepapers. 24 August 2016. Archived from the original on 22 September 2017. Retrieved 21 September 2017.
- ^'3rd Party Instrument Drivers - National Instruments'. www.ni.com. Archived from the original on 2014-11-28.
- ^'LabVIEW MathScript RT Module'. www.ni.com. Archived from the original on 2016-08-05.
- ^'LabVIEW Home Bundle for Windows - National Instruments'. sine.ni.com. Archived from the original on 2016-07-04.
- ^'Archived copy'. Archived from the original on 2016-10-28. Retrieved 2016-10-28.CS1 maint: archived copy as title (link)
- ^'Software Configuration Management and LabVIEW - National Instruments'. www.ni.com. Archived from the original on 2016-10-29.
- ^'Configuring LabVIEW Source Code Control (SCC) for use with Team Foundation Server (TFS) - National Instruments'. www.ni.com. Archived from the original on 2016-10-28.
- ^'What's New in NI Developer Suite - National Instruments'. www.ni.com. Archived from the original on 2014-03-31.
- ^'LabVIEW 2017 SP1 Patch Details - National Instruments'. www.ni.com. Retrieved 2018-05-28.
- ^'Math Node - A new way to do math in LabVIEW'. ni.com. 25 October 2010. Archived from the original on 25 February 2011.
- ^'Embedding a C/C++ Interpreter Ch into LabVIEW for Scripting'. iel.ucdavis.edu. Archived from the original on 2011-05-15.
Further reading[edit]
- Bress, Thomas J. (2013). Effective LabVIEW Programming. [S.l.]: NTS Press. ISBN1-934891-08-8.
- Blume, Peter A. (2007). The LabVIEW Style Book. Upper Saddle River, NJ: Prentice Hall. ISBN0-13-145835-3.
- Travis, Jeffrey; Kring, Jim (2006). LabVIEW for Everyone : Graphical Programming Made Easy and Fun (3rd ed.). Upper Saddle River, NJ: Prentice Hall. ISBN0-13-185672-3.
- Conway, Jon; Watts, Steve (2003). A Software Engineering Approach to LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN0-13-009365-3.
- Olansen, Jon B.; Rosow, Eric (2002). Virtual Bio-Instrumentation : Biomedical, Clinical, and Healthcare Applications in LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN0-13-065216-4.
- Beyon, Jeffrey Y. (2001). LabVIEW Programming, Data Acquisition and Analysis. Upper Saddle River, NJ: Prentice Hall PTR. ISBN0-13-030367-4.
- Travis, Jeffrey (2000). Internet Applications In LabVIEW. Upper Saddle River, NJ: Prentice Hall PTR. ISBN0-13-014144-5.
- Essick, John (1999). Advanced LabVIEW Labs. Upper Saddle River, NJ: Prentice Hall. ISBN0-13-833949-X.
National Instruments Labview Software
Articles on specific uses[edit]
- Desnica V, Schreiner M, Vladan; Schreiner, Manfred (October 2006). 'A LabVIEW-controlled portable x-ray fluorescence spectrometer for the analysis of art objects'. X-Ray Spectrometry. 35 (5): 280–286. doi:10.1002/xrs.906. Archived from the original on 2010-08-18.
- Keleshis C, Ionita C, Rudin S, C.; Ionita, C.; Rudin, S. (June 2006). 'Labview [sic] graphical user interface for micro angio-fluoroscopic high resolution detector'. Medical Physics. 33 (6): 2007. doi:10.1118/1.2240285.CS1 maint: multiple names: authors list (link)
- Fedak W., Bord D., Smith C., Gawrych D., Lindeman K., W.; Bord, D.; Smith, C.; Gawrych, D.; Lindeman, K. (May 2003). 'Automation of the Franck-Hertz experiment and the Tel-X-Ometer x-ray machine using LABVIEW'. American Journal of Physics. AAPT. 71 (5): 501–506. doi:10.1119/1.1527949.CS1 maint: multiple names: authors list (link)
Articles on education uses[edit]
- Belletti A., Borromei R., Ingletto G., A.; Borromei, R.; Ingletto, G. (September 2006). 'Teaching physical chemistry experiments with a computer simulation by LabVIEW'. Journal of Chemical Education. ACS. 83 (9): 1353–1355. doi:10.1021/ed083p1353.CS1 maint: multiple names: authors list (link)
- Moriarty P.J., Gallagher B.L., Mellor C.J., Baines R.R., P. J.; Gallagher, B. L.; Mellor, C. J.; Baines, R. R. (October 2003). 'Graphical computing in the undergraduate laboratory: Teaching and interfacing with LabVIEW'. American Journal of Physics. AAPT. 71 (10): 1062–1074. doi:10.1119/1.1582189.CS1 maint: multiple names: authors list (link)
- Lauterburg, Urs (June 2001). 'LabVIEW in Physics Education'(PDF). A white paper about using LabVIEW in physics demonstration and laboratory experiments and simulations.
- Drew SM, Steven M. (December 1996). 'Integration of National Instruments' LabVIEW software into the chemistry curriculum'. Journal of Chemical Education. ACS. 73 (12): 1107–1111. doi:10.1021/ed073p1107.
- Muyskens MA, Glass SV, Wietsma TW, Gray TM, Mark A.; Glass, Samuel V.; Wietsma, Thomas W.; Gray, Terry M. (December 1996). 'Data acquisition in the chemistry laboratory using LabVIEW software'. Journal of Chemical Education. ACS. 73 (12): 1112–1114. doi:10.1021/ed073p1112.CS1 maint: multiple names: authors list (link)
- Ogren PJ, Jones TP, Paul J.; Jones, Thomas P. (December 1996). 'Laboratory interfacing using the LabVIEW software package'. Journal of Chemical Education. ACS. 73 (12): 1115–1116. doi:10.1021/ed073p1115.
- Trevelyan, J.P. (June 2004). '10 Years Experience with Remote Laboratories'(PDF). International Conference on Engineering Education Research. ACS.
External links[edit]
- Official website, National Instruments