首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Labview中值为真时的计时

在Labview中值为真时的计时
EN

Stack Overflow用户
提问于 2013-10-24 10:43:21
回答 2查看 3K关注 0票数 0

我一直在为孩子们制作一个labview程序来监控各种能源的能源生产。我有一个条件,如果他们生产不足的警告会开火,如果他们的生产超过一个证明门槛,另一个警告会开火。我想在整个活动中花多长时间,每种类型的警告都会被触发,这样每个小组在结束时都会有一个分数。这只是为了模拟最终程序的行为。目前,我有一个计时器,它可以消除警告的时间是真实的,但它会覆盖自己,每次警告一次又一次。

所以基本上,我需要总结一下值为真的总时间,即使它在真和假之间飞舞。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-24 19:36:04

一种列出"True“所用总时间的方法是使用索引隧道从While循环导出警告指示符。如果还从循环导出触发指示符时的毫秒计数器值,则可以在传递该值的相应时间后,将处理的是一个真值/假值数组。

后处理可能是一个for-循环,使运行总时间保持为真。

附注:如果您将代码导出为VI代码段,其他人将能够直接检查和修改代码,而无需从头开始重新编写代码。参见NI关于该主题的网页:http://www.ni.com/white-paper/9330/en/

票数 1
EN

Stack Overflow用户

发布于 2013-10-27 07:10:24

我建议换一条路。就我个人而言,我发现您使用的代码令人困惑,因为您从shift寄存器中的值中减去了滴答数,这可能有效,但没有任何逻辑意义。

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

  1. 在shift寄存器中保持当前布尔值、运行总数和最后重置时间。
  2. 使用第一个调用原语和一个case结构在第一个调用上初始化这些SRs。
  3. 如果值从F更改为T(将输入与SR进行比较),则更新开始时间。
  4. 如果它从T变为F,从当前时间减去开始时间,并将其加到总数中。

我现在并没有对它进行编码,所以可能会有漏洞,但我要把它作为练习。此外,我建议让VI重入。这样,您可以简单地将其称为第二次,以便为第二个定时器获得相同的功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19563715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档