Symplify Now! is released. Run tests Today

Close

Why relying on probes in LabVIEW slows down your testing?

We recently helped a few clients with their existing code. It was interesting to see how much they relied on probes to understand what their LabVIEW application was doing and brought us back many years ago, before we started using Symplify.

Probes along with “Retain Wire Values” and “Highlight Execution” are all very useful features of LabVIEW as a software development environment. Using them in the course of your development can answers some questions but they have significant drawbacks:

  • They only supply a single value at a time
  • It is usually difficult to understand
  • Any time you need to “understand” our code, you need to place them again
  • Distributing them in many VI or parts of your code can time consuming
  • They don’t provide a good idea of timing of code execution

The alternative

The list could go much longer but instead, we would rather talk about what you can do to overcome all those problems. The simplest way to get started is to create a simple piece of code that will store a series of strings. Now you are free to write messages in any section of your code along with current values using “Format into String”:

Simple Log with a meaningful message formated in LabVIEW
Simple Log with a meaningful message formated in LabVIEW

Inside this new VI, append a time stamp. We typically use:

%<%H:%M:%S%3u>T

Make sure that this VI is “Non reentrant execution” and call it wherever needed. The result is a string that you can read and display.

Other considerations

The first 2 challenges that you will likely face are the following:

  • Some of your messages will be sent at very high frequency and “flood” the log
  • This VI causes a “memory leak” because the internal string keeps growing

There is a simple solution to each of those. First, limit the size of the string inside your VI to 250,000 characters. This is a very manageable size for your CPU. Second, where messages are sent too often, add a condition to trigger sending the data. A “value change” or a two seconds timer are typical criteria we use internally quite a bit.

Simple Log with implementation of triggers to Write
Simple Log with implementation of triggers to Write

What’s next?

How about adding the values of the Error Cluster whenever a software exception is thrown? Maybe you want to log this information to disk from time to time to keep “snapshots” about how your application is performing.

Give it a try. It takes about 30 minutes to get setup and after you start using it, you’ll see how much easier and fun your software development will become.



Synovus Resources

Fill the form below to access all our resources. We won't ask you again later.
  • By submitting this form you allow us to send you monthly updates on our services and news.