Recent from talks
LabVIEW
Knowledge base stats:
Talk channels stats:
Members stats:
LabVIEW
Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a graphical system design and development platform produced and distributed by National Instruments, based on a programming environment that uses a visual programming language. It is widely used for data acquisition, instrument control, and industrial automation. It provides tools for designing and deploying complex test and measurement systems.
The visual (aka graphical) programming language is called "G" (not to be confused with G-code). It is a dataflow language originally developed by National Instruments. LabVIEW is supported on a variety of operating systems (OSs), including macOS and other versions of Unix and Linux, as well as Microsoft Windows.
The latest versions of LabVIEW are LabVIEW 2024 Q3 (released in July 2024) and LabVIEW NXG 5.1 (released in January 2021). National Instruments released the free for non-commercial use LabVIEW and LabVIEW NXG Community editions on April 28, 2020.
The programming paradigm used in the LabVIEW "G" language is based on data availability. If there is enough data available to a function, it will execute. The execution flow is determined by the structure of a graphical block diagram (the LabVIEW-source code) on which the programmer places nodes and connects them by drawing wires. A node can be a control, indicator, structure, function, or recursively, another block diagram. An example of a simple four-node block diagram is two controls and an indicator wired to the addition function, causing the indicator to display the sum of the two controls. The wires connecting nodes propagate data as variables, and any node can execute as soon as all its input variables (data) become available. Since this might be the case for multiple nodes simultaneously, LabVIEW can conceptually execute in parallel. Multi-processing and multi-threading hardware is exploited automatically by the built-in scheduler, which multiplexes multiple OS threads over the nodes ready for execution.
LabVIEW integrates the creation of user interfaces (termed front panels) into the program development cycle. LabVIEW programs are collections of one or more virtual instruments (VIs). Each VI has three components, a front panel, back panel, and connector panel, all composed of nodes and wires represented graphically to the user. 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 consists of a block diagram containing the graphical source code. All of the objects placed on the front panel will appear in the back panel block diagram as terminals. The block diagram also contains structures and functions, chosen from a Functions palette, which perform operations on controls and supply data to indicators. The connector panel has terminals whose wires go to or come from nodes in the front and back panels, and is used to represent the VI within the back panel of upstream (calling) VIs and downstream (called) VIs to which it might be connected.
There are two ways to run a VI. It can be run by itself as a program, with the front panel serving as a user interface. Alternatively, it can be treated as a node that is dropped onto the block diagram of another VI and wired to its nodes through the connector panel. In that case it runs as a subroutine within a larger program, and the front panel controls the inputs and outputs of the VI node. Thus, each VI can be easily tested as a stand-alone program before being embedded as a subroutine into a larger program.
The "G" graphical approach allows non-programmers to easily build programs by dragging and dropping virtual representations of lab equipment with which they are already familiar. The LabVIEW programming environment includes examples and documentation to guide and simplify the creation of small applications. As with all introductory programming guides, the ease of construction of working "G" programs may cause the programmer to underestimate the expertise needed for high-quality "G" programming. For complex algorithms or large-scale code, a programmer must possess 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 that communicate using a simple client–server model which takes advantage of the inherently parallel nature of "G".
Applications in LabVIEW are typically designed using well-known architectures[citation needed] known as design patterns. The most common design patterns for graphical LabVIEW applications are listed in the table below.
Hub AI
LabVIEW AI simulator
(@LabVIEW_simulator)
LabVIEW
Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a graphical system design and development platform produced and distributed by National Instruments, based on a programming environment that uses a visual programming language. It is widely used for data acquisition, instrument control, and industrial automation. It provides tools for designing and deploying complex test and measurement systems.
The visual (aka graphical) programming language is called "G" (not to be confused with G-code). It is a dataflow language originally developed by National Instruments. LabVIEW is supported on a variety of operating systems (OSs), including macOS and other versions of Unix and Linux, as well as Microsoft Windows.
The latest versions of LabVIEW are LabVIEW 2024 Q3 (released in July 2024) and LabVIEW NXG 5.1 (released in January 2021). National Instruments released the free for non-commercial use LabVIEW and LabVIEW NXG Community editions on April 28, 2020.
The programming paradigm used in the LabVIEW "G" language is based on data availability. If there is enough data available to a function, it will execute. The execution flow is determined by the structure of a graphical block diagram (the LabVIEW-source code) on which the programmer places nodes and connects them by drawing wires. A node can be a control, indicator, structure, function, or recursively, another block diagram. An example of a simple four-node block diagram is two controls and an indicator wired to the addition function, causing the indicator to display the sum of the two controls. The wires connecting nodes propagate data as variables, and any node can execute as soon as all its input variables (data) become available. Since this might be the case for multiple nodes simultaneously, LabVIEW can conceptually execute in parallel. Multi-processing and multi-threading hardware is exploited automatically by the built-in scheduler, which multiplexes multiple OS threads over the nodes ready for execution.
LabVIEW integrates the creation of user interfaces (termed front panels) into the program development cycle. LabVIEW programs are collections of one or more virtual instruments (VIs). Each VI has three components, a front panel, back panel, and connector panel, all composed of nodes and wires represented graphically to the user. 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 consists of a block diagram containing the graphical source code. All of the objects placed on the front panel will appear in the back panel block diagram as terminals. The block diagram also contains structures and functions, chosen from a Functions palette, which perform operations on controls and supply data to indicators. The connector panel has terminals whose wires go to or come from nodes in the front and back panels, and is used to represent the VI within the back panel of upstream (calling) VIs and downstream (called) VIs to which it might be connected.
There are two ways to run a VI. It can be run by itself as a program, with the front panel serving as a user interface. Alternatively, it can be treated as a node that is dropped onto the block diagram of another VI and wired to its nodes through the connector panel. In that case it runs as a subroutine within a larger program, and the front panel controls the inputs and outputs of the VI node. Thus, each VI can be easily tested as a stand-alone program before being embedded as a subroutine into a larger program.
The "G" graphical approach allows non-programmers to easily build programs by dragging and dropping virtual representations of lab equipment with which they are already familiar. The LabVIEW programming environment includes examples and documentation to guide and simplify the creation of small applications. As with all introductory programming guides, the ease of construction of working "G" programs may cause the programmer to underestimate the expertise needed for high-quality "G" programming. For complex algorithms or large-scale code, a programmer must possess 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 that communicate using a simple client–server model which takes advantage of the inherently parallel nature of "G".
Applications in LabVIEW are typically designed using well-known architectures[citation needed] known as design patterns. The most common design patterns for graphical LabVIEW applications are listed in the table below.