事件结构超时连线和软触发讨论
今天第一次来论坛,发个东东,大家认识一下~~
事件结构,是LV编程结构的精髓所在。它类似于单片机的中断功能,优点在于不占用CPU资源。比如按键按下串口发送数据,以及设置键盘快捷键等等功能,事件结构比查询结构要节省很多系统资源。下面我介绍一下利用事件结构的关键点,基础的自己去看帮助吧。
1,关于事件结构超时连线的问题:事件结构有一个超时事件的输入,当不连接时代表永不超时。这点要十分注意,因为有时候你的事件就够会和其他结构放在一个while循环里,比如下图:
我们理想的情况是,其他服务程序正常循环运行(小灯闪烁),而鼠标按下后,处理事件结构。但是如果这样写的话,由于事件结构永不超时,while循环只会运行一次,只有当鼠标按键按下后,才会开始第二次循环。这个程序的运行结果是,按一下鼠标,小灯变化一次。
要解决这个问题有两个办法:一个是给事件结构的延时输入处添加延时时间,比如5ms,这样循环就会5ms运行一次,不会影响其他服务程序的正常运行。二个就是把其他服务程序放到另外一个while循环中,事件结构单独一个循环。个人建议选择第二个方法。
2,关于事件结构软触发的问题:前面板有一个按钮,按下后触发很简单,也很常用。不过有时候要涉及到软触发的问题,就是利用程序(而不是前面板的控件)去触发一个事件。先看下面这个例子:
"服务程序"软件改变“软触发”的值,我们的理想目标是,每次改变服务程序的值为真时,标志小灯会改变一次。但是实际程序运行结果是,无论按多少次,小灯都不变。因为直接赋值只能改变变量的值,而不能引起次变量的事件触发。
解决办法就是:要软件触发事件,必须对变量右键->创建->属性节点->值(信号)进行赋值,这样才能触发事件结构。例如下图。
(事件结构设置时要把锁定前面板勾掉)程序运行结果:当“服务程序”弹起时,小灯不变,但是事件会一直触发,用高亮模式可以看见,连续两次给“软触发”赋F,事件同样会触发,换句话说,只要赋值,就会触发事件,而不是值改变才会触发。所以在事件结构里加了一个条件结构。当“服务程序”按下时,不停的给“软触发”赋T,事件结构不停运行,小灯闪烁。
了解更多labview事件结构请进入:bbs.elecfans.com/topic-labviewevent.html
博客的图片弄不过来...
截个图过来啊
好帖,截个图发过来
事件结构
好贴 谢谢
谢谢分享
很好。
非常不错的设计
学习
好东西
正在学习事件结构
“事件结构软触发” 讲的好哦,学心啦
“它类似于单片机的中断功能”很好理解!我现在的工作就是写单片机软件。
遇到这个问题啦 ,学习谢谢
学习了
顶一个
{:3学习了
好贴,正好用的上
你把 "i"接个显示控件看看,巳不是事件结构.呵呵
非常不错,和我想到一块去了
非常好,理解超时的用法了。
看了,谢谢小编!
学习了,顶一个。
看
不懂啊看
不懂啊看
不懂啊看
不懂啊