错误 -1801 持续时间输入不是 Dt 的整数倍
问题详情
我正在使用获取波形子集VI 并收到错误 -1801:持续时间输入不是 dt 的整数倍。值被强制为 dt 最接近的整数倍。 收到此错误后,我的代码无法继续。
解决方案
当您将空波形发送到“获取波形子集”时,可能会发生此错误。
通常可以通过强制为dt最接近的倍数来纠正错误,但这对于空波形是不可能的,因此您的代码将无法继续。为了确保您没有发送空波形,您可以在运行VI时探测您提供的波形。
- 在波形输入端右键单击输入“获取波形子集”的波形线 。
- 选择“探头”可打开“探头观察窗口”,其中包含波形探头。
- 运行您的 VI 并观察以查找通过探针传递的值。
如果您发现获取波形子集VI接收到空波形,则应对生成该波形的VI进行故障排除。例如,DAQmx Read VI 可能会抛出错误或超时,导致其发送空波形。
附加信息
如果您不熟悉dt 的含义,请阅读 在 LabVIEW 中使用波形数据类型。此错误通常表示已将无效值传递到“获取波形子集”的持续时间输入。由于Y是一个值数组,因此每个索引对应于t0之后dt的倍数。如果dt为 5,则Y的索引 0是起始值,索引 1 是t0后 5 秒的值,索引 2 是 10 秒后的值,依此类推。如果您调用具有持续时间的获取波形子集20并输入0作为开始时间,VI知道它需要从索引0开始并获得Y数组的另外4个索引,因为20整除
dt,即5。您不能使用像17这样的数字作为持续时间,因为它不能被dt整除,因此不能用于查找数组索引。此行为也可能发生在错误 -1800:开始时间输入不是 dt 的整数倍。值被强制为 dt 最接近的整数倍。 类似的解释和解决方案适用于此错误。
Error -1801 Duration Input Is Not An Integer Multiple of Dt
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.