欢迎来到天天文库
浏览记录
ID:42027861
大小:296.60 KB
页数:5页
时间:2019-09-05
《LabVIEW事件结构》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、LabVIEW中级教程LabVIEWLabVIEW事件结构编程事件驱动的编程允许用户通过前面板的操作,或是其他的异步事件来驱动LabVIEW程序的运行。事件是一种异步的信号,告知PC有事情发生。用户界事面、外部I/O或是程序的一部分代码都有可能导致事件的发生。使用事件结构可以件实现仅当事件发生时,程序才需要响应,别的时候程序可以处理其他迚程或是其他结的事件,事件结构相当于一种“中断”。相对的,如果不使用事件结构,程序会以“轮询”的方式来检测事件的发生,但这样会大大消耗CPU的使用时间,不利于构处理复杂、多线程的程序。因此,事件结构允许将CPU的使用降低到最小,但又编不牺牲与用户的交
2、互性。程用户界面事件:鼠标点击、键盘操作等等外部I/O事件:硬件定时、硬件触发、或是硬件出错等等。其他程序事件:程序间的通讯等注:LabVIEW支持用户界面事件和程序事件而不支持外部I/O事件。1.事件结构典型的事件结构如图1所示。事件结构包括一个或多个子程序框图,或事件分支,注意每当结构执行时,仅有一个子程序框图或分支在执行。事件结构的执行过程是,一直等待直至某一事件分支的事件发生,然后执行相应事件分支从而处理该事件。右键单击结构边框,可添加新的分支并配置需处理的事件。为事件结构边框左上角的“超时”接线端连接一个值,以指定事件结构等待某个事件发生的时间(以毫秒为单位)。默认为–1
3、,即永不超时。事件分支标签事件数据节点事件过滤节点图1事件结构用户界面事件分为消息事件和过滤事件两种。1LabVIEW中级教程LabVIEW消息事件消息事件指一个用户的行为已经发生,使用消息事件来反馈一个已经发生的事件,并且LabVIEW已经对它迚行了处理。例如,“鼠标按下”就是一个消息事件,图事2中的事件结构的分支程序实现了用户用鼠标点击停止按钮,按下后停止程序的功件能。这个事件是在用户释放鼠标以后LabVIEW迚行处理的。结构编程图2消息事件过滤事件过滤事件在用户行为发生之后,LabVIEW处理该事件之前先告知用户,由用户来决定程序接下来如何处理事件,有可能处理的方式与默认
4、的处理不同。过滤事件有什么好处?使用过滤事件以后,用户可以随时按需要修改程序对事件的处理,甚至可以完全放弃该事件,而对程序不产生影响。例如:“前面板关闭?”就是一个过滤事件(过滤事件后面都有一个?)。图3中的事件结构实现放弃对“前面板关闭?”这一事件的响应,从而将这一事件过滤。图3过滤事件2.创建静态事件结构LabVIEW中可以创建各种各样的事件,按注册的方式,可分为静态注册事件和动态注册事件。对前面板界面用户事件的响应是一种静态注册事件。当VI运行时,LabVIEW自动注册这些事件,事件结构一直等待事件的发生。需要注意的是,静2LabVIEW中级教程LabVIEW态注册事件只与本
5、VI相关联,它无法实现对其他VI的前面板用户界面事件迚行响应。下面我们来实现一个VI,它可以对前面板的不同按键作出相应的反应,例如点击事“前迚”按钮,VI的前面板会显示“前迚”;点击“后退”按钮,VI的前面板会件显示“后退”,同时实现程序运行时,前面板一直保持打开的状态。结前面板上先放置4个布尔输入控件“前迚”、“后退”、“左转”、“右转”,构在程序框图中放置一个while循环,然后在循环中右键>>结构>>事件结构,放置编一个事件结构到程序框图上。事件结构有一个默认的超时分支,用户可以根据需要程保留或删除该分支。在事件分支的边框点击右键,在弹出的快捷菜单中选择添加分支,弹出编辑事件
6、对话框,为布尔控件注册相应的事件。图4注册事件在编辑事件对话框中,左侧是事件源,用来选择发起事件的来源,例如上文所说的布尔控件“前迚”;右侧是事件,用来选择事件的类型,如鼠标释放、键按下等等,根据不同的需求选择事件的类型。在事件框中,也可以区分消息事件(绿色箭头)和过滤事件(红色箭头+?)。点击确定,即添加了一个事件分支,如图5所3LabVIEW中级教程LabVIEW示,可以在这个分支中添加代码来完成在这个事件分支中要处理的内容。例如,图5中将字符串“前迚”赋值给按键记录字符串控件。同样的,可以为其他的布尔控件“后退”、“左转”、“右转”添加事件分支。对于控件“停止”,由于我们需要
7、通过点击它来停止整个VI的运行,因此它的事件分支是这样编辑的,将一个真事常量赋给while循环条件接线端。件结构编程图5消息事件分支为实现程序运行时,前面板无法关闭,需要选择的是过滤事件。在编辑事件对话框中选择<本VI>>>前面板关闭?可以看到过滤事件的事件数据节点和消息事件的事件数据节点是不同的。同时,过滤事件的事件结构框右侧还有过滤节点。可以将一个“True”常量连接到放弃?接线端,表示放弃该事件的处理,从而实现程序运行时,前面板一直保持打开的状态。4LabVIE
此文档下载收益归作者所有