The G programming language is central to LabVIEW, allowing us to quickly tie together data acquisition, analysis and logical operations understanding how data is being
modified. From a technical standpoint, G is a graphical dataflow language in which nodes (operations or functions) operate on data as soon as it becomes available, rather than
in the sequential line-by-line manner that most programming languages employ.
The practical benefit of the graphical approach is that it puts more focus on data and the operations being performed on that data, abstracting much of the administrative
complexity of computer programming such as memory allocation and language syntax. Programmers can also take advantage of the productivity gains by working at a higher level of
abstraction while still employing advanced programming practices such as object-oriented design, encapsulation, and code profiling.
Typically, integrating different hardware devices can be a major headache when automating any test, measurement, or control system. Worst still, not integrating the
different hardware pieces leads to the hugely inefficient and error-prone process of manually taking individual measurements and then trying to correlate, process and tabulate
data by hand.
LabVIEW™ makes the process of integrating hardware much easier by using a consistent programming approach no matter what hardware we use. LabVIEW™ has freely
available drivers for thousands of NI & third-party hardware. In the rare case that a LabVIEW™ driver does not already exist, we have tools to create your own. If your
device connects to a PC, we can talk to it using LabVIEW™.
The cross-platform nature of LabVIEW™ also allows us to deploy your code to many different computing platforms. LabVIEW™ can target embedded real-time
controllers, ARM microprocessors and field-programmable gate arrays (FPGAs), so we can quickly prototype and deploy to the most appropriate hardware platform.
LabVIEW™ tailors the G programming language to engineering and scientific use incorporating hundreds of specialised functions not
typically included with other languages. In addition to the standard programming language constructs, LabVIEW™ contains functions for:
- String, array and waveform manipulation
- Signal processing, including filters, windowing, spectral analysis and transforms
- Mathematical analysis, including curve fitting, statistics, differential equations, linear algebra and interpolation
- Communication, including high-level communication protocols, HTTP, SMTP, FTP, TCP, UDP, Serial and Bluetooth
- Report generation, file I/O and database connectivity
With the comprehensive analysis capabilities of LabVIEW™, signal processing becomes altogether easier. All the included functions in LabVIEW™ work seamlessly
with acquired data so converting and passing data becomes much simpler. When you do have specific requirements, LabVIEW™ can help get your data into the right format.
Every LabVIEW™ block diagram also has an associated front panel, which is the user interface of your application. On the front panel generic controls and indicators
can be placed to show your data in the most useful light. All LabVIEW™ controls & indicators are designed for engineering use, meaning SI units can be entered, scales
can be changed and data can also be exported to other programs for further analysis.
In addition to displaying data as your application is running, LabVIEW™ also contains several options for generating reports from your test or acquired data. Simple
reports can be directly to a printer, HTML file or programmatically integrated with Microsoft Office. Remote front panels and Web service support allow you to publish data over
the Internet with the built-in Web server.
Technology advances at a rapid pace and the pressure to keep current and take advantage of state-of-the-art performance is rarely matched with enough time and training to learn
and implement emerging technologies. LabVIEW™ addresses this problem by quickly adopting advances in personal and embedded computing in such a way you obtain the latest
capabilities without having to learn significant new paradigms.
Examples of this approach include how LabVIEW™ is able to automatically generate multithreaded code for execution on multicore processors or program FPGAs to gain the
speed and reliability of custom hardware chips without the LabVIEW™ user needing to learn the underlying details of multithreading or the hardware description languages
typically required to use FPGAs.
The same applies to new OSs, networking protocols and more. LabVIEW™ moves with the industry and our engineers work diligently to ensure that applications created with
LabVIEW™ are able to easily move with it. If you do not use LabVIEW™, the responsibility of moving to a new or updated OS or other computer standard is on you.
One of the reasons LabVIEW™ makes you successful is its ability to scale to meet the needs of a given application. Picking the right software is all too often a
balancing act between ease of use and learning curve on one side & power and flexibility on the other. Simple, fixed-function applications are generally easy to use and can be
configured off the shelf, but they rarely meet all of the requirements for real world usage. Full-fledged programming, on the other hand, is powerful & flexible but comes
at the cost of increased training & development time.
LabVIEW™ addresses this problem by providing several ways to accomplish similar tasks, so you can make the trade-off between simplicity and customization yourself
on a task-by-task basis.