我正在为Uni做一个项目,我需要在6s后停止while循环。所以我通常设置等待(ms)等待6000ms,然后将它与6000const进行比较,得到一个应该停止循环的bool值为TRUE,但它没有。所以我想知道你是否知道问题是什么?
答案 0 :(得分:3)
你不想要"等待" function - 该函数暂停执行直到该节点结束,这意味着While循环只执行1次,而1次将持续6000 ms。
你想要的是Tick Count功能。
您可以将此图像拖出浏览器(某些浏览器可能需要您先将PNG保存到磁盘上)到您的程序框图上以重新创建代码(如果您有LV 2016或更高版本,如右上角的版本号)。此图像是使用"编辑>>创建的。从选择中创建VI片段"。
答案 1 :(得分:0)
解决问题的另一个选择是使用定时循环。这些是专门为计时任务设计的。定时循环的好处是您可以更准确地控制何时停止。建议的while循环(来自srm)将在6秒后停止+完成代码所需的时间。 "缺点"一个定时循环的特点是它的行为更像是一个for循环,其中每个循环都需要一个特定的时间间隔,因此我发现它更多的是一个好处而不是一个缺点:
我还提出了之前建议的解决方案(来自srm)进行比较。在我的电脑上,定时循环以ms精度停止,而while循环有几十毫秒的延迟。
答案 2 :(得分:0)
你的bool值为false的实际原因是Wait(ms)VI的输出不是VI等待的毫秒数,而是"毫秒计时器"这是自Windows启动以来的毫秒数或者那种效果。如果在等待VI完成的瞬间运行Tick Count(ms)VI,它就会得到相同的数字。
其他人指出循环中等待6秒将阻止循环完成执行并重复直到6秒结束是正确的。