我是labview的新手,最近我一直试图让这个序列循环。 例如。 myRio的起始位置是((x <0.05)&amp;&amp;(y <= 0.05)&amp;&amp;(z&gt; 0.9)) 接下来,当检测到myRio的位置变为((x <0.2)&amp;(y <= -0.9)&amp;&amp;(z <= 0.3))然后再次返回到起始位置时,将把它验证为一个正确的循环并将计数器从0更改为1.并再次循环整个序列。
如果你能突出我怎样才能做这些序列循环,真的很感激。非常感谢你。
答案 0 :(得分:0)
听起来好像你要做的是计算状态之间的转换。对于涉及状态之间转换的任何事物而言,一个伟大的设计模式 - 涵盖了人们通常使用LabVIEW的大部分内容 - 是state machine。
链接给出了解释,但基本上你需要的是:
在您的情况下,您只需两种状态即可实现此目的:
状态1:检查位置,看看我们是否已达到目标位置。
状态2:检查位置,看看我们是否已回到起始位置。
然而,使用三种状态会稍微优雅一些:
状态2:检查位置,看看我们是否已回到起始位置。
状态3:递增计数并转到状态1.
您可以为计数器使用第二个移位寄存器:将其初始化为0,将左端子连接到状态1和2中的右端子(保持计数不变)并在状态3中将其递增。
您可以对案例选择器使用整数值或字符串,但最佳做法是使用枚举,并将其另存为 typedef 。这允许您稍后重新排序,重命名,添加或删除状态,而不会破坏现有代码。