完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
今天在学习生产者,消费者结构,遇到个问题:
当按主循环中的“停止”按键,后面两个子程序能够正常关闭。 当按子程序2的“停止”按键,子程序1和子程序2也能正常关闭。 但是当我按子程序1的”停止“按键时,只能把子程序1关闭,另外2个都不能正常停止,最让人奇怪的是当我把子程序2高亮显示的时候,再去点击子程序1的”停止“按钮,后面两个子程序又可以正常关闭了。 万能的”电子发烧友“啊,请帮忙指点迷津呀。 我保持了低版本的程序!!!!!
|
|
相关推荐
22个回答
|
|
|
1.按主程序的停止后会向Q1、Q2队列发exit命令使两个子VI的接收处理循环停止。这个没问题;
2.按Q2停止时,Q2内的接收处理循环正常停止,同时主程序事件结构停止,主程序继续执行接收处理循环到“待处理队列MAIN”子VI后会因为全局变量往队列丢入exit命令,执行后停止本身循环同时通知Q1停止。这个也没问题; 3.按Q1停止时,主程序、Q1、Q2的事件循环由于全局变量全部停止,Q1的接收处理循环也正常停止,接着主程序里的接收处理循环同第2点一样也会自发停止,同时向Q1、Q2发送exit命令。那么问题来里,Q1已经停止了,给Q1发exit指令报错,接着错误传给后一个向Q2发命令的VI,因为错误所以不会执行,Q2就没拿到那个exit命令,就悲剧的死等了。 4.高亮时候为什么行昵,因为Q2的那个exit命令是它自己的接收处理循环处理第一个指令时,刚好运行到“待处理队列MANI”VI,此时全局变量已经改变,自己给自己队列丢了个exit,所以能停止。 综上,Q2要能停止,要么接受主程序丢入的exit命令,要么自己因为任意命令处理循环运行到“待处理队列MANI”VI自发给自己一个exit命令。但是Q1停止时,主程序发的命令错误来不了,自己又没有执行的机会。明白了吧。 |
|
|
|
|
gswanybz123 发表于 2016-6-18 15:35 谢谢楼上的高人答疑解惑。我在程序中加了一个清除错误的命令,问题是解决了。 但是好像我好像还是有些问题: 1. 子程序2本来是可以自己停止的,它是可以由全局变量EXIT的变化来停止的,但是由于主程序在执行“exit”这个分支的时候产生了错误(那时子程序1已经停止,压入exit产生错误)导致子程序2的队列管道无法压入数据,也就使得子程序2无法停止。 2.但是问题来了:为什么主程序中的全局变量EXIT会先起作用,先产生错误。而不是让子程序2中的全局变量EXIT先起作用,使得子程序2先停止下来,然后执行主程序的“exit”的分支,这样即使产生错误,也可以停止程序。
|
|
|
|
|
btlook 发表于 2016-6-21 09:03 1.按下全局停止按钮后几乎是所有VI里的同时作用的,就像多线程可以理解为同时进行一样。 2.子程序2里的处理循环在开始一会后只不停的执行子程序1里丢来的“Convert F to C”命令,可以说子程序1不往里面丢命令了它就等在那里了。 3.你点击子程序1里的停止后,并不是立马让全局变量起作用,而是往队列里丢Exit,此时子程序1里执行的是这个Exit命令,完了后并把全局变量改变。所以此时子程序1忙自己的并没有给Q2任何指令,子程序2里的处理循环不会动。这时候改变全局变量也就没任何用了。它是有一个流程执行的先后顺序,并不是全局变量起作用的先后顺序。 4.全局变量这东西还是建议少用,虽然很方便,但是如果程序很大,子VI很多,到时候哪里出问题都很难去查的。 评分 |
|
|
|
|
|
thank you very much!
|
|
|
|
|
|
谢谢,很好的学习资料。
|
|
|
|
|
|
谢谢分享,学习下
|
|
|
|
|
|
|
|
|
谢谢,很好的学习资料
|
|
|
|
|
|
|
|
|
|
|
|
哇 好厉害 楼主真棒
|
|
|
|
|
|
哈哈,什么都不知道啊
|
|
|
|
|
|
学习学习!!!!!!!!!!!!!!!!
|
|
|
|
|
|
学习下,谢谢楼主分享!!!
|
|
|
|
|
|
|
|
|
|
|
|
学习学习
|
|
|
|
|
|
谢谢分享
|
|
|
|
|
|
附件下载出来是一个txt文件
|
|
|
|
|
|
|
|
|
|
|
|
学习学习。。。。。
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
181 浏览 0 评论
447 浏览 0 评论
请教大神,在labview里面对实时扫描资源中的C系列模块NI9234进行配置发生非预期错误
1808 浏览 0 评论
1641 浏览 0 评论
LABVIEW 2023 Q1调用python后一直报错1671
2014 浏览 2 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 23:40 , Processed in 1.137605 second(s), Total 85, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
5696