Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 在Labview中值为真时计时_Loops_Timer_Labview - Fatal编程技术网

Loops 在Labview中值为真时计时

Loops 在Labview中值为真时计时,loops,timer,labview,Loops,Timer,Labview,我一直在为孩子们制作一个labview程序来监控各种电源的能源生产。我有一个条件,如果他们生产不足,就会发出警告;如果他们生产过剩,达到一定的阈值,就会发出另一个警告。 我想知道在整个活动中,每种类型的警告被触发多长时间,这样每个小组在结束时都会有一个分数。这只是为了模拟最终程序的行为。 目前,我有一个计时器,可以驱动的时间量的警告是真的,但它会覆盖自己的每一次警告去了又一次 所以基本上,我需要总结出这个值为真的总时间,即使它在真与假之间波动 将总时间“True”制成表格的一种方法是使用索引隧道

我一直在为孩子们制作一个labview程序来监控各种电源的能源生产。我有一个条件,如果他们生产不足,就会发出警告;如果他们生产过剩,达到一定的阈值,就会发出另一个警告。 我想知道在整个活动中,每种类型的警告被触发多长时间,这样每个小组在结束时都会有一个分数。这只是为了模拟最终程序的行为。 目前,我有一个计时器,可以驱动的时间量的警告是真的,但它会覆盖自己的每一次警告去了又一次

所以基本上,我需要总结出这个值为真的总时间,即使它在真与假之间波动


将总时间“True”制成表格的一种方法是使用索引隧道从While循环导出警告指示器。如果还从循环中导出指示器触发时的毫秒计数器值,则可以对真/假值数组以及值转换的相应时间进行后处理

后处理可以是一个for循环,用于保持所花费的运行总时间为真

另外,如果您将代码导出为VI代码段,其他人将能够直接检查和修改代码,而无需从头开始重新编写。请参见NI关于该主题的网页:
我建议换一条路走。就我个人而言,我发现您使用的代码令人困惑,因为您从移位寄存器中的值中减去勾号计数,这可能有效,但没有任何逻辑意义

相反,我建议将其转换为subVI,它执行以下操作:

  • 将当前布尔值、运行总数和上次重置时间保留在移位寄存器中
  • 使用first call原语和case结构在第一次调用时初始化这些SRs
  • 如果值从F变为T(将输入与SR进行比较),则更新开始时间
  • 如果它从T变为F,则从当前时间中减去开始时间,并将其加到总数中
  • 我现在并没有编写这个代码,所以可能有漏洞,但我把它作为练习。另外,我建议让VI可重入。这样,您只需再次调用它,就可以为第二个计时器获得相同的功能