LabVIEW论坛
直播中

GeorgeSun

5年用户 158经验值
擅长:labview
私信 关注
[问答]

Labview 灯亮40分钟,关2分钟,但是如果用wait的话,不能够停止循环,该怎么办

labview 灯亮40分钟,关2分钟,循环上面步骤,但是如果用wait来等待40分钟的话,不能够停止循环,该怎么办?

  • 循环亮灯.gif

回帖(7)

阿利斯泰

2019-8-13 17:21:32

最佳答案

如动图效果, 仅供参考
举报

jixiantianzi

2019-8-13 21:53:37
可以将40分钟拆解为多个时间段,然后对时间段进行计数。如1秒记个数,则40分钟即为计数到2400.
这样即实现了计时,又方便停止。
供参考。大家有其他好方法,一起讨论。
1 举报
  • GeorgeSun: 这个思路挺好的,我会试一下的,十分感谢

阿利斯泰

2019-8-14 11:39:39
是这种效果么?
1 举报

hf

2019-8-14 13:04:42
可以用循环+事件结构,配合移位寄存器设定超时时间,执行灯亮或者灯灭操作,停止按钮做触发,可以随时停止循环,不需要等待。
3 举报
  • 阿利斯泰: 这个思路很好, 就是有个问题, 就是不能有其他事件, 因为每进行一次事件触发, 超时时间就会重新计算, 比如要亮5秒, 当亮了4秒时, 进行了一次其他事件, 超时归0, 还得再等5s, 灯才会灭
  • hf 回复 阿利斯泰: 如果要加入其他事件,只需要在while循环加入时间计数器,在事件分支执行结束同样加一个时间计数器,两个相减就可以得到事件用时,连个相减算出剩余的延时时间,就可以;例如要亮5s,中间插入事件执行用时3s,赋值给超时就是5-3=2s。这样子最好就不要用循坏的i来处理开/关了,可以用移位寄存器赋布尔值,在超时事件做非处理即可。
  • GeorgeSun: 思路很棒,十分感谢,我会试一下的
  • 20190814130429.png
  • 20190814130205.png

更多回帖

发帖
×
20
完善资料,
赚取积分