ITM Blog Posts

The Blog Post category contains blog posts associated with ITM’s testing services, LabVIEW programming, Test & Measurement Hardware, Boiler Monitoring Systems, and iTestSystem applications.

LabVIEW Channel: Sorting Cluster Arrays

Figure 1: Table with Sortable Columns.

Our LabVIEW programmers are often asked to build user interfaces to interact with configuration settings, data sets, file metadata, and databases.  Some examples of these interactive interfaces include, sorting data by parameters, plotting the top ten vibration peaks from a data set, or searching through data files for strain channels that exceed standard limits.

In LabVIEW, these types of data sets can be represented on the block diagram as an arrays of clusters.  A cluster is a LabVIEW data type that groups data elements of mixed types. A cluster is similar to a record or a struct in text-based programming languages.  An array is a group data elements of the same type. An array consists of elements and dimensions.

The VI shown in Figures 1 & 2 contains a table that is sorted when you double click on a column header.  The VI snippet in Figure 2 contains the VI with subvis removed.

Sortable Table VI Snippet

Figure2: Sortable Table VI Snippet

The VI snippet in Figure 3 contains some example array cluster sorting examples.  By Default A cluster is sorted by the first element and if there is a match the second element is used and so on. To control the sort priority, unbundle the elements you want to sort by then bundle them back above the original cluster. This new cluster can then be sent to the Sort 1D array VI.

Figure 3: Sort Cluster Array Examples VI Snippet.

For more information about interacting with large data sets in LabVIEW, or our LabVIEW programming services contact Chase Petzinger @ (844) 837-8797 x704.

LabVIEW Subpanel

Figure 1 – Radio Button control of VI insertion into subpanel.

One control combination that our LabVIEW development team uses to build modular adaptive user interfaces is the radio button, subpanel pairing.  Using the radio button to switch between vis displayed in a subpanel essentially allows you to  make a tab control that scales with the front panel during resizing events.

I built the vi shown in Figures 1 & 2 (linked here) to demonstrate how to insert dynamically called vi’s front panels into a subpanel.  In this example each radio button inserts a different 3D graph example vi into the subpanel by its reference.

Since the vis used in the subpanel are called dynamically, some extra steps may be required to build the exe.  The link below shows how to build an exe that uses dynamically called vis using the application builder.  I have also included some path tips that are useful when building LabVIEW executables (exe).

Related Link: Integration of Sub-Panel in the Front Panel of LabVIEW Executable – National Instruments (

Figure 2 – Inserting a VI into a subpanel block diagram.Steps for Inserting a VI into a Subpanel

  1. Assign VI Name to a Button or Tree Item.
  2. Insert File Name into the Relative Path containing VIs to show in the Sub Panel.  See Notes
  3. Open a reference to the VI.
  4. If the VI is in the Idle state then run the VI.
  5. Insert VI into the Subpanel via a reference.


  • “..” will cause the Build Path VI to strip path once.
  • \ One extra \ is required per folder because the format into string function interprets backslashes as escape characters.

You can also use a tree control instead of a radio button to control which vi is inserted into the control panel.  An example of this method is illustrated in a previous blog titled “Building a Modern User Interface in LabVIEW“.   The vi shown in that blog uses a similar technique for building and selecting the which vi will be inserted into the subpanel.

Figure 3 – Insert VI into subpanel snippet.

Figure 3 above is a vi snippet of the Insert VI invoke node for a Subpanel. If you already have a subpanel, right click on the subpanel, create a reference and wire it to the subpanel invoke node.

To learn more about subpanels, other LabVIEW programming techniques, iTestSystem or our LabVIEW programming services contact Mark Yeager  @(844) 837-8797.

Vibration Data Integration Analysis

Simplify Acceleration Conversions with iTestSystem’s Integration Analysis Tool 

Like many features in iTestSystem, the Integration Analysis tool was created because customers requested it. After all, who doesn’t like features that make the math easier?

In this blog, a new series by ITM, we’ll share some details about Integration Analysis, one of the features within TestView Plus, the project based data viewing function within iTestSystem. 

For engineers who are gathering vibration data, it makes perfect sense to have a simple way to convert acceleration into units of velocity or units of displacement since those are the most common specs.

Enter the Integration Analysis function. Simply open TestView Plus, drop down the “Analysis” tab and select “Integration.” Once there, adjust the settings to either “Single Integration” for velocity or “Double Integration” for displacement. In a couple of additional clicks, you can also specify your desired units and adjust the high cutoff frequency to filter low frequency data. 

The next time you are gathering data using accelerometers, let iTestSystem simplify all those conversions with Integration Analysis.  

About iTestSystem 

iTestSystem is an engineering measurement software platform that enables test engineers to organize, acquire, view, and analyze data from machinery, processes, vehicles and other complex systems. iTestSystem was specifically designed for use with National Instruments (NI) cDAQ or FieldDAQ hardware for data collection and data logging.    

For more information about our iTestSystem or ITM’s testing services, contact Ryan Welker @ (844) 837-8797 x702. 

LabVIEW Dialog Snippet

Figure 1 – Framework for Simple Dialog VI Snippet

Here is a trick for creating a simple dialog in LabVIEW. Follow these simple steps to quickly create your next dialog in less than a minute. 

  1. Create a New VI .
  2. Drop the VI Snippet (Figure 1) above on the block diagram.
  3. Update the Window Appearance setting in VI properties to dialog (see Figure 2 below).
  4. Optional: Update with a Custom Window title.
  5. Save and run the VI.

Figure 2 – VI Properties/Windows Appearance

In the dialog template snippet I also used another useful snippet – the error case structure.  This simple VI snippet will help you save time with your next project.

What’s next? 

Common snippets for folder creation and cluster sorting.

In Vehicle Vibration Testing

building a rugged and flexible in-vehicle testing solution to measure the vibration levels.

Engineering Data Acquisition Tools: NI-9237 Bridge Input Module

For bridge type sensors and most strain gauges configurations (full and half bridges), our engineers will opt for the NI-9237 C-Series module to acquire strain and bridge data instead of the NI-9235 or NI-9236 modules.  Unlike the NI-9236 module, the NI-9237 can acquire data from:

  • Any resistance strain gauge (not just 120 or 350 Ohm)
  • Quarter, half, and full-bridge strain gauge configurations
  • Torque and load cells (off-the-shelf and custom)

The NI-9237 is a 4-Channel C Series strain/bridge input module that contains circuitry to power, scale and calibrate strain and load sensors .  For quarter and some half bridge measurements a bridge completion module must be used in conjunction with this module. The NI-9237 module provides internal bridge excitation (2.5V, 3.3V, 5V, or 10V) and shunt calibration resistors for sensor scaling verification. To collect synchronized and scaled high-speed (50kHz) structure strain and load cell data, use our iTestSystem engineering measurement software.

For more information about the NI-9237, DAQ module rental, strain gauge installations or our data logging solution iTestSystem, contact Ryan Matthews via email: or phone: (844) 837-8797 x706.

Weed Out Unwanted Data with Filter Analysis

For engineers, the faster one can weed out the noise, the more efficiently one can deliver actual solutions.

The software architects at Integrated Test & Measurement have added new plugin technology to  iTestSystem, their proprietary engineering measurement software platform, to enhance the user experience by allowing users to analyze data faster by filtering frequencies simply.

In this blog, a new series by ITM, we’ll share some details about one of the features within TestView Plus, the project based data viewing function within iTestSystem.

Once you’ve configured your test using NI MultiDAQ hardware and begun logging strain gauge and accelerometer data, it is time to do an FFT (fast Fourier transform) Analysis to further analyze your signals for frequency information to learn how the system you are testing is actually vibrating.

As part of that process, the Filter Analysis plugin allows users to filter out unwanted frequencies — say anything over 100 Hz — which only requires checking a simple low-pass filter option, a tool embedded right within TestView Plus.

Without leaving TestView Plus, you can simply choose which signals you wish to view, configure a few options on the screen and click the FFT button to output helpful data files for your report or plot directly within TestView Plus to begin isolating specific vibration issues.

Stay tuned for additional iTestSystem features.

About iTestSystem

iTestSystem is an engineering measurement software platform that enables test engineers to organize, acquire, view, and analyze data from machinery, processes, vehicles and other complex systems.  iTestSystem was specifically designed for use with National Instruments (NI) cDAQ hardware for data collection and data logging.   

 For more information about our iTestSystem or ITM’s testing services, contact Ryan Welker @ (844) 837-8797 x702.

LabVIEW VI Snippets

If you’ve ever managed or work with a team of programmers, you realize that each person has their own programming style.  If programming team members always use their own code and style, they cannot develop code effectively.

A critical practice for getting programming teams to work efficiently is code re-use.  In LabVIEW there are many ways to implement code re-use.  In this blog I decided to revisit one of these code re-use strategies, the VI Snippet.  

What is a VI Snippet? 

“VI Snippets are a way to store, share and reuse small portions of LabVIEW code. VI Snippets combine the portability of a screenshot with the functionality of a VI file by embedding LabVIEW code in a standard PNG image. When you drag a VI Snippet PNG image onto the block diagram it will drop the snippet as graphical code that can be edited and used in your application.” More on that here (Using VI Snippets to Store and Share Reusable Code Sections – National Instruments) 

Figure 1 – VI Snippet DateTime String

Note: This image is a LabVIEW snippet, which includes LabVIEW code that you can reuse in your project. To use a snippet, right-click the image, save it to your computer, and drag the file onto your LabVIEW diagram. 

Introducing Snippets in my workflow 

At the surface, the Snippet is a cool way to share and reuse frequently used code. Similar to my userlib folder where I store my vi libraries, I have a folder on my computer where I catalog my snippets in subfolders (e.g. general, frameworks, arrays, tdms, SQLite, DAQmx, etc.) so that they can be located with minimal effort. Actually, I have two locations on my computer that I store snippets: A private folder that I use as my personnel sandbox and a public folder that I share with my team. As with any collaboration or shared repository, you must be discipline or you will experience chaos. Our LabVIEW development team meets weekly for code reviews, discusses new projects, and to share best practices. At the end of every meeting, we invite team members to share any new vis and/or snippets they would like to add to the team’s repository.  

My first Snippet 

25 years ago, when I first started wiring G code, it was not such a big deal connecting all of those wires on the Block Diagram. However, as time passes and my eyes require a bigger monitor, I look for any hack that I can muster to limit the time spent wiring clusters and arrays. To that end I offer up the prewired Bundle By Name /Array. 

Figure 2 – Bundle/Unbundle/Build Array – Prewire

What’s next? 

How I use VI Snippets to make quick user dialogs.  

Vehicle Component Testing

…more than a thousand miles away. A display of gauges, needles and dials showed precisely how their product performed during every day over-the-road stress.

Introducing the LabVIEW Channel

I would like to introduce the ITM LabVIEW Channel, a series of blog posts related to building efficiencies in LabVIEW. In the weeks and months ahead my team and I will share past insights, lessons learned, and explore new programming concepts. This will be a sand box of sorts with a focus on solving problems using LabVIEW.

Please join us on our new LabVIEW Channel and subscribe below.

This contact form is deactivated because you refused to accept Google reCaptcha service which is necessary to validate any messages sent by the form.

Preview What’s Next: VI Snippets

Related Links