请教关于程序运行时的控制问题
我想实现这样一个简单的功能,用两个按钮实现计数的运行、暂停和清零,按钮的机械操作为“释放时触发”,当左键点击一次时开始,再次点击暂时,再次点击继续,并改变按钮的文本描述,另一按钮点击时计数归零。我是这样想的,用一个事件结构,事件为两个按钮的值改变,内用一个条件框判断“开始和暂停”按钮的布尔文本,为“开始”则进行一个While循环,进行模拟计数器开始计数(就是设一变量,让它循环加1),如果是“暂停”则停止计数的While循环。可运行时的现象是:当点击“开始”进入模拟计数的While循环后,面板上的按钮就无法再进行点击了。
想到了另一个问题,就是程序如何控制各种结构的运行,例如一个顺序结构,由3帧组成,当运行到第2帧时,如何让它暂停,然后再继续?如何让它再从第1帧开始运行?我这样想是因为想把程序作得人性化些,不用老是需要退出程序再重新运行,用个按钮就能复位。
论坛上曾有人问能不能在LabView中实现return语句的问题,只是回答得不是很确。这些内容书上好像都没有,在此请教大家,谢谢。 归零的这个好办,相当于将某个变量赋0;
至于暂停,其实这个不太好办!哦,如果只是简单用CASE来判断是否进行累加,这样也可以!如果真正做到程序的暂停是要用到一些关于信号量或同步之类的技术,我以前发过一个例子!一会我找一下! 使程序暂停的例子!头段时间看到有朋友在问!
http://www.cpubbs.com/bbs/thread-1402-1-1.html 后面这里说到的,可以用CASE,就是说前面要求暂停了,就执行的是FALSE里面的程序,里面没有计数程序,只有在真的这里才有计数程序,这样是可以实现的!
或者用定时器之类的实现,如果要开始,则隔多长时间定时计数一次,暂停就把定时器给停了! 程序架构可以多样化,关键如何实现简单方便并且有效,关于定时器的可以看我们的USB20多功能采集卡上面,有用到多个这样的结构,包括了停止某一部分,开启某一部分,或停掉所有,这个和您说的有点类似! http://www.cpubbs.com/bbs/viewthread.php?tid=18024&extra=page%3D1
我们的USB20配套的程序,上面有压缩包下载的!希望对您有用! 虽然还不是太明白,还是非常感谢! 回去研究了一下http://www.cpubbs.com/down/labview/vi/cpubbs_pause_programme.rar程序,收获不小,再次感谢。我同时还发现了一个小问题:如果在模拟数据采集的那个while循环(就是最上方的那个)加入一定的等待时间(我尝试的最小值是10ms),在运行过程中点击停止按钮时会在第二个while循环中的等待集合点处发生错误。个人的理解是,那时集合点已经被销毁了,所以,如果在第一个循环中加入了等待时间的话,在销毁集合点之前就得加入一定的等待时间,具体值得看循环中的等待时间,使用这个程序的朋友请注意哈,也请版主大哥验证后加以完善:)。
页:
[1]