NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

循环的暂停

for 或while循环怎样实现中途的暂停,暂停后开始可以继续运行

0 项奖励
1 条消息(共 7 条)
3,701 次查看

取决于具体情况.

假定你是学习用的, 最简单的情况.

除了循环, 暂停和继续按键没别的东西.  暂停其间什么都不做, 就等继续.

那你只要在循环内放一个条件结构, 连上暂停键. 条件结构内放一个事件结构, 等待继续键.

 

 

George Zou
0 项奖励
2 条消息(共 7 条)
3,679 次查看

确实是学习用的,这样可以实现。但我在事件里添加了一个分支,程序停止分支,检测到按键返回“true”给外面的循环结构,这里我将它与外面的一个停止控件相与,再输给while的结束。在运行期间点击事件里的停止并不会停下,相当于继续,只有运行结束后,点击外面的停止才行。

0 项奖励
3 条消息(共 7 条)
3,643 次查看

你用了二个停止按键?

用local variable 就行了.

 

George Zou
0 项奖励
4 条消息(共 7 条)
3,632 次查看

用局部变量我可以控制两个循环,但这个只有一个while循环需要控制。我在里面它有个for循环,常量控制;暂停和继续用你的方法可以实现,但是在for循环运行中,或者运行到了暂停的事件里,不能直接停止程序,前一个要运行完for循环,后一个只能点继续并完成for循环才可以停止。用局部变量的话,它会提示“布尔触发动作与局部变量不兼容”,我看LabVIEW 2015里的帮助,这个好像是无法解决的。不过已经完成的程序基本实现了学习要求,就是有好多bug。

0 项奖励
5 条消息(共 7 条)
3,607 次查看

完成for循环才可以停止

只要用"Conditional Terminal", 就能向While loop一样,跳出循环.

LabVIEW中的循环和其他语言不同.

While loop其实是"Do-While loop".  就是先开枪, 然后问口令.

image.png

>布尔触发动作与局部变量不兼容

只要改变触发动作就行了.

 

你用的版本太老了.  但是上面两个功能还是有的.

 

其实, 凡是有界面的VI, 都要用producer-consumer构架.

我在第一帖子里就说过使用的条件.

暂停和继续都要融入这一构架.

暂停时就不必傻等继续了.  该干啥干啥.

 

 

 

 

George Zou
0 项奖励
6 条消息(共 7 条)
3,601 次查看

程序调试好了,改变触发动作,之前百度到了,但没看懂,现在好了,谢谢你的解答😀

0 项奖励
7 条消息(共 7 条)
3,588 次查看