LabVIEW 1801错误原因分析

LabVIEW 1801错误原因分析

LabVIEW UI
LabVIEW UI

错误 -1801 持续时间输入不是 Dt 的整数倍

问题详情

我正在使用获取波形子集VI 并收到错误 -1801:持续时间输入不是 dt 的整数倍。值被强制为 dt 最接近的整数倍。 收到此错误后,我的代码无法继续。

解决方案

当您将空波形发送到“获取波形子集”时,可能会发生此错误。

通常可以通过强制为dt最接近的倍数来纠正错误,但这对于空波形是不可能的,因此您的代码将无法继续。为了确保您没有发送空波形,您可以在运行VI时探测您提供的波形。

  1. 波形输入端右键单击输入“获取波形子集”的波形线 。
  2. 选择“探头”可打开“探头观察窗口”,其中包含波形探头。
  3. 运行您的 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.

作者
魏智勇(John)
加入讨论

此站点使用 Akismet 来减少垃圾评论。了解我们如何处理您的评论数据

魏智勇(John)

站长,80后,创业者,擅长工业自动化与信息化技术,熟悉各种PLC,组态软件,熟悉计算机技术,熟悉LabVIEW、C,C#,JavaScript程序设计技术。