LabVIEW Remote Monitoring

6 ways to do remote monitoring with LabVIEW

In this article, we define LabVIEW remote monitoring as acquiring measurement data from a distant location (e.g., the other side of a factory, a different building, or half way around the world) from where the data is to be analyzed/utilized.

So what might you want to remotely monitor?

  • Test equipment on the factory floor from your office
  • Power generation equipment at some remote customer site half way around the world
  • Your product out in the field back at corporate

Six methods for remote monitoring with LabVIEW:

  1. Featherweight
  2. Raw TCP functions in LabVIEW
  3. LabVIEW Network streams
  4. LabVIEW Remote Panels
  5. NI SystemLink
  6. NI InsightCM

Caution: there are lots of different options (with varying degrees of completeness) to use here.  If you don’t know what you’re doing, you can end up with a non-working or at least a very error-prone application.

Featherweight

What is it in a nutshell?

The brainchild of Wirebird Labs, Featherweight is an application framework for LabVIEW.

What remote monitoring scenario is it best suited for?

Featherweight (FTW) was designed for communication across distributed applications and endpoints. It is ready to use out of the box for messaging and publishing data to/from remote endpoints. It solves most of the usual problems that someone would have to figure out creating a communication architecture from scratch using lower level tools like TCP or Network Streams. As a result, it can take less time to learn than to develop your own, despite the learning curve.

What should you know about it?

  • This is currently our preferred method at Viewpoint for remote monitoring with LabVIEW.
  • Viewpoint is both a user and a contributor to Featherweight, and we maintain our own repo.
  • It’s actor-oriented and open source. The code base is available on GitHub here: https://github.com/featherweight/featherweight.
  • The cool part about Featherweight from a remote monitoring standpoint is that the infrastructure is in place for remote monitoring; you just need to provide an IP address. The inter-process and intra-process communication are handled exactly the same, so a Featherweight actor can communicate with a remote application just by knowing the address of the remote process it wants to communicate with. The Featherweight framework handles the underlying TCP messages.
  • The main functionality that Featherweight offers from a remote monitoring standpoint is:
    • It provides self-healing communication
    • It’s built on TCP
    • It can do a couple different messaging protocols: request/reply, publish/subscribe

Suggested LabVIEW Developer Level

Advanced

Raw TCP functions in LabVIEW

What is it in a nutshell?

Yep, you can talk raw TCP in LabVIEW.

What remote monitoring scenario is it best suited for?

This method generally only makes sense when you want to create a custom messaging scheme on top of TCP, but with some of the other libraries available (like NI’s AMC), it’s best not to create your own unless it is required.

What should you know about it?

You’ll have a lot of control, but also a lot of opportunity to make mistakes.

Suggested LabVIEW Developer Level

Intermediate

LabVIEW Network streams

What is it in a nutshell?

A LabVIEW built-in method that provides a way to share data across a network.

What remote monitoring scenario is it best suited for?

Network streams do a good job of streaming lossless LabVIEW data from point to point over a network and is built using TCP and UDP.

What should you know about it?

This method is somewhat accessible, but you’re going to have to write a lot of client/server processes (processes that already exist with tools like Featherweight and to some extent web server methods).

Suggested LabVIEW Developer Level

Intermediate

NI InsightCM

We like this method when the application revolves around monitoring of rotating machinery.

What is it in a nutshell?

InsightCM is condition monitoring software targeted for rotating machinery.

What remote monitoring scenario is it best suited for?

Condition monitoring for rotating machinery.

What should you know about it?

  • Sophisticated application with built-in device fleet management, analysis, alarming, displays, and so on.
  • Configured data acquisition devices connect to an on-premise or cloud-hosted server.
  • Customization requires the InsightCM SDK.
  • It requires an experienced LabVIEW RT developer to customize the data acquisition devices (see here to get help from a LabVIEW Expert).
  • It has a specific architecture that provides some basic out-of-the-box functionality. If you want to modify it, you should not be a novice.
  • It’s server-based.
  • It’s generally suited more for multi-node deployments, vs 1 or 2 or 3 units.
  • It’s generally intended to work with particular flavors of particular NI CompactRIO hardware.

Suggested LabVIEW Developer Level

Advanced

LabVIEW Remote Panels

What is it in a nutshell?

A way to display and control a LabVIEW front panel from a remote PC.  This is built into the LabVIEW environment.

What remote monitoring scenario is it best suited for?

The best use case for this method is as a portal to run a headless RT application and want to periodically remote in to configure or monitor what’s going on.

What should you know about it?

  • This is not generally going to be a recommended method. Documentation is limited.
  • UI functions are limited.
  • You can’t easily pull data to the host using this method.
  • It can be run in the LabVIEW environment or a thin client. LabVIEW requires LabVIEW environment.  Thin client requires a plug-in and the LabVIEW runtime engine.

Suggested LabVIEW Developer Level

Beginner

NI SystemLink

A piece of software from NI for managing distributed systems (test & measurement). Remotely monitor variables with the SystemLink UI.  We’ve not familiarized ourselves with SystemLink yet, but it’s worth looking into for applications that need to manage multiple data acquisition devices, from querying device operational status to retrieving the status of the machine to which the device is connected.

What is it in a nutshell?

SystemLink is a piece of software developed by NI.  Learn more from NI here: What is SystemLink? – National Instruments.

What remote monitoring scenario is it best suited for?

SystemLink is used for monitoring embedded applications running on NI hardware that have been built specifically to publish data to SystemLink.

What should you know about it?

Suggested LabVIEW Developer Level

Intermediate

Four other methods that aren’t quite remote monitoring, but may accomplish your goals:

  1. LabVIEW Remote Debugging – This is a built-in way (built into the LabVIEW environment) to remotely connect to your LabVIEW application, specifically intended for debugging. It’s not for long-term remote control, but it may help you out in the short run during development.  You’ll have to enable this feature, and you’ll likely experience some lag for graph updates and heavyweight applications.
  2. Remote desktop software – Whether you use the built-in Windows remote desktop application, or something else (we like TeamViewer), if you’ve got a PC running the application you’re trying to remote into, this may be an easy solution for you.  The downside to this method is that it can be slow because you are sharing the entire desktop instead of just the application data. This method also relies on having a full PC with the appropriate remote desktop application on it rather than a lightweight client, such as a web or mobile app.
  3. WebDAV – this is a file sharing method.
  4. SCP (Secure Copy) – Think FTP over SSH. SCP acts pretty much like FTP, but uses a way more secure protocol.

Hardware required

Of course you’ll need to connect to or create a network of some sort (or at least a point-to-point link).  Here’s some hardware that could be used to help you get connected remotely:

  1. Ethernet port & network
  2. Wi-Fi enabled device (e.g. http://www.ni.com/en-us/shop/select/c-series-wireless-gateway-module)
  3. Cellular enabled device (e.g. https://www.sea-gmbh.com/en/products/compactrio-products/mobile-communications/sea-9745-4ggps/). You may need to contact your cellular provider to enable this device to connect to the cell network.
  4. https://www.ni.com/white-paper/10700/en/
  5. Proprietary wireless communication systems for long range or high-speed communications (e.g., https://www.gegridsolutions.com/Communications/licensedSolutions.htm )
Yes, please help me with my LabVIEW remote monitoring »