Using the Waveform Data Type in LabVIEW

Updated Oct 27, 2023

Reported In

Software

  • LabVIEW

Issue Details

  • What is the waveform data type and how do I use it? Connecting a waveform to VI terminals of certain data types results in broken wires.
  • What is the difference between the waveform data type and the array data type?

Solution

The waveform data type is used by LabVIEW and other National Instrument's software such as SignalExpress, TDMS, and the DAQmx API to display and store periodic signal measurements.

 

The waveform data type is a cluster comprised of the following:
 
ComponentDescription
t0A timestamp representing the time at which the signal starts.
dtA double numeric that describes the difference in time in seconds between each sample in the signal.
YA 1D array of doubles that contains the values of the samples of that signal.
 
LabVIEW functions accept the waveform data type. For controls and indicators of some data types, LabVIEW will automatically coerce the waveform allowing you to make the connection, even though the terminal's required data type is not explicitly the waveform type. For example, if you connect a waveform wire to a numeric indicator, a red dot will appear on the block diagram icon (to indicate coercion is being applied) and the last value of the Y array contained within that waveform will be displayed on the indicator on the front panel. If the waveform is connected to a 1D array indicator, LabVIEW will pass only the Y data from the waveform to that indicator.

Additional Information

Timestamps for each value can be calculated by using t0, dt, and the index for the value. Other arbitrary information can be added to the waveform cluster as variants. This can be useful to attach additional information about the signal to show what manipulation may have already been performed on it.

For the Formula Node or a MathScript Node, LabVIEW will not coerce the data automatically. To be able to present the Y values of the waveform into a Formula node as a 1D array or double numeric’s, you will first have to use the Get Waveform Components VI which is found in the Waveform subpalette. Using this function and others contained within the Waveform palette, you can extract or modify data to any part the waveform.