我一直在为孩子们制作一个 labview 程序,以监测各种电源产生的能量。我有一个条件,如果他们生产不足,就会发出警告,如果他们生产过多,就会发出另一个警告。我想计算整个活动的时间,每种类型的警告都会被触发,所以每个组最后都会有一个分数。这只是为了模拟最终程序的行为方式。目前我有一个计时器,可以得出警告为真的时间量,但每次警告关闭并再次打开时,它都会覆盖自身。
所以基本上我需要总结该值为真的总时间,即使它在真假之间徘徊。
将花费的总时间制表为“真”的一种方法是使用索引隧道从 While 循环中导出警告指示器。如果您还从循环中导出指标触发时间的毫秒计数器值,您可以对 True/False 值数组以及值转换的相应时间进行后处理。
后处理可能是一个 for 循环,它保持运行总时间为真。
Ps 如果您将代码导出为 VI 片段,其他人将能够直接检查和修改代码,而无需从头开始重新制作。请参阅有关该主题的 NI 网页:http: //www.ni.com/white-paper/9330/en/
我建议走另一条路。就个人而言,我发现您使用的代码令人困惑,因为您从移位寄存器中的值中减去滴答计数,这可能有效,但没有任何逻辑意义。
相反,我建议将其转换为执行以下操作的子 VI:
我现在实际上并没有对此进行编码,因此那里可能存在漏洞,但我将其留作练习。另外,我建议使 VI 可重入。这样,您可以简单地调用它第二次来为第二个计时器获得相同的功能。