Game of Drones Returns: Welcome to HoverGames 2

NI, formally National Instruments, released LabVIEW 2020 and LabVIEW NXG 5 with a host of new features. These commercial platforms are now available in a community edition. This isn’t quite the same as releasing an open-source solution, but it opens LabVIEW up to a much wider audience.

First, a couple of observations. LabVIEW 2020 and LabVIEW NXG are both graphical programming environments with a compatible backend. LabVIEW NXG was added a few years ago to provide a different user interface and development experience. A number of differences exist between the two platforms, but NI is working toward merging the two in the future.

LabVIEW NXG continues to gain support for features that were unique to LabVIEW 2020. For example, the latest version of LabVIEW NXG supports NI’s 904x and 905x CompactRIO with DAQmx. Data acquisition and system control are a main target for LabVIEW applications, and this platform is one of the major pieces of hardware from NI.

Of course, LabVIEW 2020 is the mainstay for NI and LabVIEW developers, so it supports all of the hardware platforms. In addition, there’s a migration from LabVIEW to LabVIEW NXG, assuming the hardware and services are supported by LabVIEW NXG. The reverse is more problematic.

LabVIEW has also been a significant player in the educational market, especially in colleges, so many developers are already familiar with its graphical programming style. Unfortunately, learning about LabVIEW without this type of access—the community edition has changed that circumstance.

The community edition limitations are on par with most other community edition software from vendors selling that software. This edition can’t be used for commercial purposes, but it could be employed to support open source projects. It does require registration.

Quick tip: Create an account and download the software using the account so that it’s registered to you. I started with another account I’d already set up to test an earlier commercial edition and wasn’t able to start up the community edition until I had the new account and downloaded the software.

The nice thing about this community edition is that it’s the same as the commercially licensed product. LabVIEW 2020 and LabVIEW NXG are both available as community editions. If you license LabVIEW, you have access to both versions.

What’s New in LabVIEW

LabVIEW NXG features a user interface designed for new users (Fig. 1). In addition to quickly starting a new application, NXG makes it easier to annotate and include other artifacts like PDF files, images, etc. with a project, not just the LabVIEW code.

1. LabVIEW NXG users quickly start learning about LabVIEW.

LabVIEW NXG is picking up features that have been in LabVIEW, including the new LabVIEW NXG Real-Time Module. LabVIEW NXG now supports FPGA programming.

Another feature is Python node support (Fig. 2), which was in LabVIEW 2018. This allows inclusion of Python code within a LabVIEW virtual instrument (VI).

2. LabVIEW NXG support Python nodes, allowing for integration with Python applications or services that provide Python APIs.2. LabVIEW NXG support Python nodes, allowing for integration with Python applications or services that provide Python APIs.

Developers will appreciate the Word and Excel Report nodes. They can generate Microsoft Word and Excel files without the need for these applications. The files can be utilized by other platforms like GoogleDocs.

Web technology is another addition that will be covered in more detail later. It enables secure web services to be hosted on an NI Web Server as well as other platforms. The NI Web Server is scalable and provides security services.

LabVIEW 2020 adds interfaces to its object-oriented programming (OOP) support. Interfaces are a language feature found in other programming languages that allow a class to support multiple interfaces which aren’t part of the class hierarchy.

Application Builder enhancements including support for repairing packages and new capabilities for package feeds. In addition, improvements have been made in Web services publishing to the NI Web Server.

LabVIEW NXG and WebVIs

WebVIs are LabVIEW VIs designed to present webpages to a web browser. The web server can be a conventional web server or the NI Web Server. WebVI development is the same as creating a LabVIEW application with the usual user interface view (Fig. 3) and a matching graphical program.

3. Developing a WebVI user interface is the same as creating a conventional LabVIEW VI.3. Developing a WebVI user interface is the same as creating a conventional LabVIEW VI.

One of the key aspects of WebVIs is that they don’t require any web development expertise, although it’s possible to get down and dirty and play with everything from CSS support to using Javascript libraries. User interface controls are dropped from a palette and then wired up in the graphical code view.

My LabVIEW expertise is very limited, so I found an example online that works with the community edition. Sam Sharp of Media Mongrels wrote the blog “DemocracyBot – Raspberry Pi, LINX Toolkit, WebSockets & NXG WebVIs” that describes how his robot was programmed for web-based remote control (Fig. 4).

4. Sam Sharp of Media Mongrels used LabVIEW and a WebVI to control his robot. (Sam Sharp/Media Mongrels)4. Sam Sharp of Media Mongrels used LabVIEW and a WebVI to control his robot. (Sam Sharp/Media Mongrels)

The WebVI included a few directional buttons, a field for the person’s name, and checkbox to connect to the robot. The code actually runs on a Raspberry Pi. It takes advantage of the LINX Toolkit and uses WebSockets for communication.

Sam’s blog goes into excruciating detail, which is just what developers want. It’s also a handy way to see what developing a VI looks like and how to host a WebVI.

The community edition is a game changer for LabVIEW. NI already has a big footprint in robot competitions and in the educational space, but it’s always been hampered by its more limited coverage compared to open-source platforms. That limitation is now gone, so there’s no reason not to try out graphical programming if you haven’t already become familiar with LabVIEW.

Source link