寻求建议以计算循环内的时间
Seeking suggestion to count time inside the loop
我正在尝试 measure/count while 循环中的时间,我尝试了几种方法但仍找不到解决方案。
这是我当前的 VI。
简而言之,只要“布尔值是 on/true”,我就会尝试测量时间,一旦它是 off/false,就必须显示时间。
如果有什么不清楚的话请告诉我。
您可以使用更简单的代码实现您的目标。您应该只对事件结构使用一个 while 循环:
当条件列表发生变化时,拦截事件(正如您已经在做的那样)并记录事件发生的时间(例如使用 VI Tick 计数)。
在两个移位寄存器中,“保存”你在前一点登记的时间和你的计数状态(一个布尔值应该足够了:counting/not 计数)。
然后在Timeout事件中实时计算经过的时间,下面的操作当前时间(Vi Tick计数)-事件时间(保存在移位寄存器中) 。
只有当您的布尔值 Counting/not 计数为真时,您才应该计算时间。
当您检测到另一个事件条件列表值更改时,您应该检查是否应该停止计时。
最后,在超时事件或条件列表值更改事件中,评估 while 循环的停止条件。
我可能会重复傅里叶的答案,但以两种不同的形式输入它可能对你有帮助,因为我注意到你还没有接受那个答案。
- 删除外部 While 循环。多此一举。
- 然后这样做:
在“打开”帧中,您收集当前的滴答计数并将其存储在移位寄存器中。在“关闭”框架中,您再次收集滴答计数并减去。在所有其他帧中,确保将两个隧道连接在一起,以免丢失滴答计数。旁注:您可能希望 Boolean 成为一个指示器,而不是一个控件,因此您的用户无法单击它并直接切换它。
我正在尝试 measure/count while 循环中的时间,我尝试了几种方法但仍找不到解决方案。
这是我当前的 VI。
简而言之,只要“布尔值是 on/true”,我就会尝试测量时间,一旦它是 off/false,就必须显示时间。
如果有什么不清楚的话请告诉我。
您可以使用更简单的代码实现您的目标。您应该只对事件结构使用一个 while 循环:
当条件列表发生变化时,拦截事件(正如您已经在做的那样)并记录事件发生的时间(例如使用 VI Tick 计数)。
在两个移位寄存器中,“保存”你在前一点登记的时间和你的计数状态(一个布尔值应该足够了:counting/not 计数)。
然后在Timeout事件中实时计算经过的时间,下面的操作当前时间(Vi Tick计数)-事件时间(保存在移位寄存器中) 。 只有当您的布尔值 Counting/not 计数为真时,您才应该计算时间。
当您检测到另一个事件条件列表值更改时,您应该检查是否应该停止计时。
最后,在超时事件或条件列表值更改事件中,评估 while 循环的停止条件。
我可能会重复傅里叶的答案,但以两种不同的形式输入它可能对你有帮助,因为我注意到你还没有接受那个答案。
- 删除外部 While 循环。多此一举。
- 然后这样做:
在“打开”帧中,您收集当前的滴答计数并将其存储在移位寄存器中。在“关闭”框架中,您再次收集滴答计数并减去。在所有其他帧中,确保将两个隧道连接在一起,以免丢失滴答计数。旁注:您可能希望 Boolean 成为一个指示器,而不是一个控件,因此您的用户无法单击它并直接切换它。