微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > labview事件结构学习

labview事件结构学习

时间:10-02 整理:3721RD 点击:
转载自网络沐风:
编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”。事件结构内容丰富,基本上大的程序结构都需要用到事件结构,下面将详细介绍事件结构。
    事件结构在程序不能够单独响应各种事件,必须与循环结构一同使用,如下图
     


    事件添加方式很简单,鼠标右键事件框弹出菜单如上图,有添加、删除、复制、编辑事件等选项,按照操作即可。如下图,为事件结构添加Stop事件,布尔控件触发事件的方式有多种,鼠标按下、经过、离开、进入等,这里我们选择“值改变”。确定后,stop事件就被添加进去了,如下图,当我们运行程序后,点击前面板的stop按钮,触发事件使while循环停止而后程序也停止。
   


    同一事件分支只能添加一种事件吗?当然不是!有的时候有很多不同操作却会执行相同代码,怎么编程才不会让代码冗余呢?看个例子,如下图2个按钮stop1,stop2点击后都可以让程序停止,我们怎么为其添加事件呢?
      


    我们先添加一个事件stop1的,方法上面已经描述了。由于stop2的执行代码和stop1一样,我们在事件stop1上右键->弹出菜单->编辑本事件分支(Edit Event Handled by This Case)会弹出已添加事件stop1的编辑框,这是左侧有2个按钮如下截图
      


    我们点击Add Event左侧事件列表会出现如下变化
      


    选中这个后,右侧列表选中stop2的Value Change事件后,点击确定在看该事件分支如下,2个事件就添加在同一个分支当中了,运行程序后,点击stop1或stop2均可让程序停止。
   


    超时

    超时是事件结构特有的,看名字就知道是怎么回事,即超过一定时间没有触发事件则执行超时事件。如果超时时间设置<=-1,则永远也不执行超时事件,循环处于空闲等待状态。如下图,如果设置超时时间为100,则超过100ms无任何事件触发,则执行超时事件。
   


    所以如果程序事件功能不多,又需要定时执行一段代码,可以考虑用此方式来完成;如果程序操作频繁,则不建议用此事件来定时执行代码。
    添加事件方法学会了,有的人在编程时发现点击按钮下去后,发现前面无法响应其他事件了,似乎前面被锁住了一样,这是为什么呢?我们知道添加事件是会有个事件编辑框,上面已经截图了,那你有没有注意在框体下边有个
选项呢
   


这个选项的意思是:如果本事件框没有执行完毕前锁定前面板。看到这你就应该明白上述问题所在了吧,所以有的时候我们果断去掉这个选项。OK,问题解决了。

学习了,感谢分享~~

学习了 谢谢

好东西

很不错,事件结构和中断类似吧

学习学习!

谢谢啦,恍然大悟,哈哈

顶一下

谢谢

谢谢,会一些了!

学习了,感谢小编分享。

                  

我也要著手~~~下去研究研究~~~

学习了 谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

蛮不错的,要是更详细点儿就好了,谢谢

对我这样的初学者来说真的很不错,多谢……

不错,分析的也比较清楚,多谢了。。

有没有事件案例的电子资料呀,大家一起学习学习

讲得真详细!谢谢!

介绍的非常详细,比一般教科书上介绍的更实用。

谢谢分享,谢谢分享

不错,分析的也比较清楚,多谢了。

今天才知道有这个功能,结果上论坛来就看到这样的帖子了,真是应该多在论坛学习学习

学习了,非常感谢,要死能多添加些练习例子就更好了。

学习一下              

先顶了,我就是要找一下,看不懂树上的

不错 值得收藏起来慢慢研究

什么事件啊 。、

我要积分啊》》》》》》》》》》》》》》

初学者,过来学习一下

很好。学习了。

讲得详细 学习了 谢谢小编

超时原来还蛮有用的啊

学习了,不错,谢谢

感谢小编的精彩分享!

很好的例子,谢谢小编啊

谢谢分享,通了

转载自网络沐风:
编程的主要目的是为了实现用户的某种功能,用户通过用鼠标、键盘、程序内部等触发某种程序动作,从而达到某种结果,这些操作都被称作为事件,LabVIEW中相应这些事件最常用的结构就是“事件结构”。事件结构内容丰富,基本上大的程序结构都需要用到事件结构,下面将详细介绍事件结构。
    事件结构在程序不能够单独响应各种事件,必须与循环结构一同使用,如下图
     


    事件添加方式很简单,鼠标右键事件框弹出菜单如上图,有添加、删除、复制、编辑事件等选项,按照操作即可。如下图,为事件结构添加Stop事件,布尔控件触发事件的方式有多种,鼠标按下、经过、离开、进入等,这里我们选择“值改变”。确定后,stop事件就被添加进去了,如下图,当我们运行程序后,点击前面板的stop按钮,触发事件使while循环停止而后程序也停止。
   


    同一事件分支只能添加一种事件吗?当然不是!有的时候有很多不同操作却会执行相同代码,怎么编程才不会让代码冗余呢?看个例子,如下图2个按钮stop1,stop2点击后都可以让程序停止,我们怎么为其添加事件呢?
      


    我们先添加一个事件stop1的,方法上面已经描述了。由于stop2的执行代码和stop1一样,我们在事件stop1上右键->弹出菜单->编辑本事件分支(Edit Event Handled by This Case)会弹出已添加事件stop1的编辑框,这是左侧有2个按钮如下截图
      


    我们点击Add Event左侧事件列表会出现如下变化
      


    选中这个后,右侧列表选中stop2的Value Change事件后,点击确定在看该事件分支如下,2个事件就添加在同一个分支当中了,运行程序后,点击stop1或stop2均可让程序停止。
   


    超时

    超时是事件结构特有的,看名字就知道是怎么回事,即超过一定时间没有触发事件则执行超时事件。如果超时时间设置<=-1,则永远也不执行超时事件,循环处于空闲等待状态。如下图,如果设置超时时间为100,则超过100ms无任何事件触发,则执行超时事件。
   


    所以如果程序事件功能不多,又需要定时执行一段代码,可以考虑用此方式来完成;如果程序操作频繁,则不建议用此事件来定时执行代码。
    添加事件方法学会了,有的人在编程时发现点击按钮下去后,发现前面无法响应其他事件了,似乎前面被锁住了一样,这是为什么呢?我们知道添加事件是会有个事件编辑框,上面已经截图了,那你有没有注意在框体下边有个
选项呢
   


这个选项的意思是:如果本事件框没有执行完毕前锁定前面板。看到这你就应该明白上述问题所在了吧,所以有的时候我们果断去掉这个选项。OK,问题解决了。

学习了,感谢分享~~

学习了 谢谢

好东西

很不错,事件结构和中断类似吧

学习学习!

谢谢啦,恍然大悟,哈哈

顶一下

谢谢

谢谢,会一些了!

学习了,感谢小编分享。

                  

我也要著手~~~下去研究研究~~~

学习了 谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

蛮不错的,要是更详细点儿就好了,谢谢

对我这样的初学者来说真的很不错,多谢……

不错,分析的也比较清楚,多谢了。。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top