Error -1801 Duration Input Is Not An Integer Multiple of Dt

Updated Mar 27, 2019

Reported In

Software

  • LabVIEW

Issue Details

I am using the Get Waveform Subset VI and getting Error -1801: Duration input is not an integer multiple of dt. Value was coerced to nearest integer multiple of dt. After I get this error, my code cannot continue.

 

Solution

This error can happen when you send an empty waveform to Get Waveform Subset. Usually the error is corrected by coercing to the nearest multiple of dt, but this is impossible with an empty waveform, so your code will be unable to continue. To ensure you are not sending an empty waveform, you can probe the waveform you are providing while running your VI.
  1. Right-click the waveform wire entering Get Waveform Subset at the waveform in terminal.
  2. Select Probe to open the Probe Watch Window with a probe for the waveform.
  3. Run your VI and watch to find what value is passed through the probe.
If you find that the Get Waveform Subset VI is receiving an empty waveform, you should troubleshoot the VI generating the waveform. As an example, a DAQmx Read VI could be throwing an error or timing out, causing it to send an empty waveform.

Additional Information

If you are unfamiliar with what dt refers to, read Using the Waveform Data Type in LabVIEW.

This error is usually meant to indicate that an invalid value has been passed to the duration input of Get Waveform Subset. Since Y is an array of values, each index corresponds to a multiple of dt after t0. If dt is 5, then index 0 of Y is the starting value, index 1 is the value 5 seconds after t0, index 2 is the value at 10 seconds, and so on.

If you call Get Waveform Subset with a duration of 20 and enter 0 as the start time, the VI knows it needs to start at index 0 and get 4 more indices of the Y array, since 20 divides evenly by dt, which is 5. You cannot use a number like 17 for duration, as it does not evenly divide by dt and therefore cannot be used to find an array index.

This behavior can also happen with Error -1800: Start time input is not an integer multiple of dt. Value was coerced to nearest integer multiple of dt. A similar explanation and solution applies to this error.