labview控制程序流程——labview事件结构
- 格式:docx
- 大小:10.59 KB
- 文档页数:2
一、事件结构的使用目的在LabVIEW中一个重要的概念就是数据流,我们在编程的时候可以来设置某些事件来对数据流进行干预,比如说单击鼠标产生事件,按下键盘按键等,这些都可以被当作为事件结构的条件,进而实现对程序的控制。
二、事件结构的创建方法在程序窗口中的空白处单击鼠标右键,在弹出的函数选板中选择<结构>子选板,然后再选择<事件结构>并将其拖到程序框图中即可。
最基本的事件结构是由<程序框架>、<子框图标识符>和<事件数据节点>组成。
在刚创建事件结构时,会自动的创建一个<超时端口>,<超时端口>用于连接一个数值指定等待事件的毫秒数,如果超过设定的时间没有发生事件的话,程序就会产生一个超时事件。
<事件数据节点>用于访问事件的数据值,可以单击节点中的数据项,然后在弹出的菜单中,选择<选择项>,可以进行选择访问哪个事件数据的成员。
在事件结构的边框上单击鼠标右键,在弹出的菜单中选择<添加事件分支>,即可完成子框图的添加。
三、对事件进行编辑切换到要进行编辑的子框图中,在边框上单击鼠标右键,在弹出的快捷菜单中选择<编辑本分支所处理的事件>选项,打开<编辑事件>对话框。
在<编辑事件>界面中可以对相应的事件源和事件进行定义,在左侧的<事件说明符>下面点击<添加事件>或者<删除>即可相应的改变事件数量。
在<事件源>和<事件>两个子窗口中分别选中相应的对象,左侧的<事件说明符>下面就会出现两者的组合,点击<确定>,此子事件框图就可以完成编辑。
LabVIEW事件结构2011-01-12 15:30:57| 分类:硬件学习 | 标签:测量 vi 菜单事件例图|字号订阅使用LabVIEW图形化语言开发的应用程序界面是图形化用户操作界面,也称为:GUI (graphical user interface),它的作用是与操作者实现人机对话形式的互动操作。
这种对界面操作的互动响应在LabVIEW 6.1发布之前,只能通过“轮询(polling)”的方式来实现。
轮询的方式的缺点是:需占用一定的CPU资源(在没有事件发生时)和灵活性不好。
在LabVIEW6.1引入事件结构(Event Structure)后,采用事件结构来设计、实现的GUI操作则变得更加灵活、方便,并且不占用CPU的资源,这与先前采用轮询的方式来查询事件的方式相比要合理的多。
下面结合应用项目中的设计实例来介绍GUI设计中的事件驱动。
有关事件结构的一些基本概念、原理及使用方法在LabVIEW Help及许多书中都作了详细的讲解,这里我就不作更多地介绍了。
事件结构通常包括以下部分:1、Event cases——包含有若干个注册的事件源及同等数目的Event case层,在每个Event case层中包含对该事件响应的处理程序。
2、While循环——用来检测连续不断产生的事件事件结构中的While循环,是用来确保检测到连续不断发生的事件。
如果没有这个While循环,无论有多少事件发生只能对第一个发生的事件进行处理,处理完后程序将退出事件结构。
—————————————————————————————————————————菜单选项事件结构实例Agilent VT1415A是C尺寸、单槽寄存器基VXI模块,可以提供64个通道的多功能输入/输出的闭环控制功能。
第1步、创建一个项目:综合参数测量仪按照我的设计习惯,首先在桌面上创建一个新的文件夹,命名为《综合参数测量仪》。
然后,打开、运行LabVIEW开发环境,并选择开发环境中的:新建》项目。
LabVIEW中的控制结构和循环LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程语言和开发环境,用于测量与控制系统。
在LabVIEW 中,控制结构和循环是实现自动化控制和流程控制的重要组成部分。
一、控制结构1. 顺序结构顺序结构按照程序中的逐行顺序执行。
在LabVIEW中,通过将各个步骤连接起来,即可实现顺序执行。
2. 选择结构选择结构用于根据条件的不同,执行不同的代码块。
在LabVIEW 中,选择结构包括“Case结构”和“Select结构”。
- Case结构:根据条件进行分支选择。
不同的条件对应不同的代码块。
你可以在其中添加多个Case并分别编写代码,这样可以根据不同的条件执行不同的操作。
- Select结构:类似于Case结构,但是它使用数字索引来选择要执行的代码块,而非条件。
3. 循环结构循环结构用于重复执行某个代码块,直到满足退出条件为止。
在LabVIEW中,循环结构包括“For循环”、“While循环”和“Do循环”。
- For循环:用于已知循环次数的情况下重复执行代码块。
你可以设置循环的次数,并且在每次迭代中可以自定义循环变量的起始值、终止值和步长。
- While循环:在满足条件的情况下重复执行代码块。
你可以设置循环的退出条件,并且在每次迭代中可以自定义条件的判定。
- Do循环:先执行代码块,再判断循环条件是否满足。
如果满足,则继续循环执行,直到条件不满足为止。
4. 跳转结构跳转结构用于在程序中实现跳转操作,常见的跳转结构有“跳出循环”和“跳转到指定位置”。
- 跳出循环:当满足特定条件时,可以用于提前终止循环的执行。
一般在循环结构内部设置条件,满足条件时通过跳转结构跳出循环。
- 跳转到指定位置:用于在程序中实现指定位置之间的跳转。
你可以在程序的任意位置插入标记,然后使用跳转结构指定要跳转到的标记位置。
LABVIEW的布尔控件是极富特色的,除了丰富的外观设计外,更为重要的是它的六种不同的机械动作,这是其它编程语言不存在的,对于我们正确使用布尔控件是非常重要的,它特别强调布尔值改变的时刻,这和物理世界的许多现象是相符的。
六种不同的机械动作分为上下两组,上面三种布尔控件的值改变时刻之与鼠标的按下和释放有关,也就是说改变的时刻完全是由鼠标决定的。
下面的一组则不同,改变的时刻是由鼠标和软件读取控件的时刻共同决定的。
上图中,m代表鼠标的动作,v代表值改变的时刻,RD代表软件读取的时刻,我们今天要讨论的布尔控件的机械动作和事件结构之间的关系,对于不同机械动作的含义不做详细分析。
一、单击时转换第一行左数第一个图标,单击时转化,每次单击的时刻,就是布尔状态的改变时刻,与鼠标何时释放和软件是否读取布尔控件没有关系,我们常用的灯开关就是这种方式。
事件结构中,对于鼠标动作,提供多种事件,比如鼠标进入、鼠标离开,这两个事件并不影响布尔控件的动作。
我们重点讨论鼠标按下、鼠标释放和值改变事件。
从图标可以推测出,次序应该是这样的,鼠标按下---》布尔值改变---》鼠标释放,我们可以验证一下,下面我们使用了NI公司最新的桌面跟踪工具包(Desktop Execution Trace Toolkit),通过这个工具包,很容易跟踪鼠标动作的次序。
上面的程序框图中,鼠标按下通知事件应该是最先发生的,通过通知事件可以决定鼠标消息是否需要进一步处理,看一下这几个事件的执行次序。
鼠标事件的相应次序是:鼠标按下--》值变化---》鼠标释放,使用单击时转换机械动作时,采用鼠标按下事件或者值变化事件处理布尔控件是最合适的,但是显然不应该使用鼠标释放事件来处理,因为鼠标释放的时刻由用户决定,与希望改变的时刻是不相符的。
二、释放时转换第一行第二个图标,这种机械模式与单击时转换不同,值改变的时刻由鼠标抬起的时刻决定。
事件的产生次序是:鼠标按下---》鼠标释放---》值改变,所以这种方式的事件处理应该放在在鼠标释放或者值改变事件中。
【LabVIEW】程序结构(包括:while循环、For循环、事件结构、条件结构、公式节点)1、while循环LabVIEW 在执⾏While循环时,如果⽤户没有给它设定循环时间间隔,那么它将以CPU的极限速度运⾏。
按下Ctrl+Alt+Delete 快捷键打幵任务管理器,可以看到它⼏乎将CPU全部利⽤,正常情况这样做⽐较危险,因为这样可能会导致整个LabVIEW 程序看上去跟“死掉” ⼀样。
在很多情况下我们没有必要让 While 循环以最⼤的速度运⾏,所以最好给 While 循环加上时间间隔。
有两种⽅法:⼀种是在每个循环中添加⼀个等待时间,只有在等待完毕后才运⾏下⼀个循环。
另⼀种⽅法是使⽤定时循环(Timed Loop)。
2、事件结构Labview 提供了事件结构,即仅当 “事件” 发⽣时,程序才作相应的响应。
通过事件结构,程序可以变得很简单,并降低CPU利⽤率。
当多个事件发⽣时会形成事件队列,直到每个事件对应的代码都被执⾏为⽌,因此不会有事件被漏掉的情况。
注意:事件结构必须放在 While 循环中,否则没有意义,因为当⼀个事件完成后,程序需要去等下⼀个事件的发⽣。
在跟⽤户进⾏交互的时候,尽量使⽤事件结构。
3、条件结构(1)当条件结构有多个分⽀时,必须设置默认分⽀,否则程序⽆法执⾏。
(是条件结构不是层叠顺序时)(2)隧道在条件结构⼀个分⽀的边框上创建输出隧道时,其他分⽀边框上也会出现输出隧道。
只要有⼀个输出隧道没有连线,则条件结构每个分⽀边框上的输出的隧道都显⽰为⽩⾊正⽅形。
隧道可使⽤数据类型的默认值,不是每个速调都必须连线。
在条件结构上右键单击输出隧道,从快捷菜单中选择未连接时使⽤默认,这样所有未连线的隧道都将使⽤隧道数据类型的默认值。
索引隧道,⼀个循环外的数组通过索引隧道连接到循环结构上,隧道在循环内⼀侧会⾃动取出数组的元素,依顺序每次循环取出⼀个元素。
⽤索引隧道传出数据,可以⾃动把循环内的数据组织成数组。
LabVIEW技巧系列(一)——事件结构
事件结构,是LV编程结构的精髓所在。
它类似于单片机的中断功能,优
点在于不占用CPU资源。
比如按键按下串口发送数据,以及设置键盘快捷键
等等功能,事件结构比查询结构要节省很多系统资源。
下面我介绍一下利用事件结构的关键点,基础的自己去看帮助吧。
1,关于事件结构超时连线的问题:事件结构有一个超时事件的输入,当不连接时代表永不超时。
这点要十分注意,因为有时候你的事件就够会和其他结构放在一个while循环里,比如下图:
我们理想的情况是,其他服务程序正常循环运行(小灯闪烁),而鼠标按下后,处理事件结构。
但是如果这样写的话,由于事件结构永不超时,while循
环只会运行一次,只有当鼠标按键按下后,才会开始第二次循环。
这个程序的运行结果是,按一下鼠标,小灯变化一次。
要解决这个问题有两个办法:一个是给事件结构的延时输入处添加延时时间,比如5ms,这样循环就会5ms运行一次,不会影响其他服务程序的正常运行。
二个就是把其他服务程序放到另外一个while循环中,事件结构单独一个循环。
个人建议选择第二个方法。
2,关于事件结构软触发的问题:前面板有一个按钮,按下后触发很简单,
也很常用。
不过有时候要涉及到软触发的问题,就是利用程序(而不是前面板的控件)去触发一个事件。
先看下面这个例子:
“服务程序”软件改变软触发的值,我们的理想目标是,每次改变服务程序的
值为真时,标志小灯会改变一次。
但是实际程序运行结果是,无论按多少次,小灯都不变。
因为直接赋值只能改变变量的值,而不能引起次变量的事件触发。
Labview【事件结构】
帮助⽂档
1.简单程序例⼦
单击确定,计数加⼀。
单击停⽌,程序停⽌执⾏。
运⾏结果:
2.步骤
创建while循环,添加循环终⽌条件端⼦,添加定时器;检测是否单击了确定按钮;
添加事件结构,给超时端⼦赋值,超时事件中不⽤编辑程序:表⽰超时后不执⾏任何操作;
事件结构框右键“添加事件分⽀”:
选择事件源与事件:
在事件列表中选择事件分⽀进⾏编辑:
值加⼀操作:
给计数值赋初值0,应⽤顺序结构,⼀帧⼀帧的执⾏;
3.创建计数值局部变量⽅法
变量使程序在多个地⽅对同⼀个控件进⾏读写操作。
法⼀:直接右键创建
法⼆:函数选板局部变量
列表选择:。
LabVIEW中的事件驱动编程和状态机设计LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程环境,用于快速开发测量、控制和监视应用程序。
在LabVIEW中,开发人员可以利用事件驱动编程和状态机设计来构建复杂的应用程序。
事件驱动编程是一种程序设计范型,其中代码的执行是由系统内部或外部事件的发生触发的。
在LabVIEW中,开发人员可以通过将控件的事件与程序的功能绑定在一起,实现事件驱动编程。
例如,当用户单击按钮或更改文本框的值时,相应的事件将被触发,并调用与该事件相关联的代码。
在LabVIEW中,通过使用事件结构,开发人员可以轻松地识别和响应控件的事件。
事件结构是一种用于处理特定事件的结构化编程元素。
通过将控件的事件与事件结构中的不同事件框架关联,在事件发生时,相应的事件框架将被执行。
这种事件驱动的编程方式使得LabVIEW的应用程序可以实时响应用户的操作,提供更好的用户体验。
与事件驱动编程相比,状态机设计是一种用于组织和控制程序行为的方法。
状态机是一种具有不同状态的抽象模型,每个状态都对应于程序的一种行为。
在LabVIEW中,通过创建状态机图表和状态枚举,开发人员可以轻松地实现状态机设计。
状态机图表通常由多个状态框和转换线组成,每个状态框表示一个程序状态,而转换线表示状态之间的转换条件。
在LabVIEW中,状态机图表可以通过使用Case结构和条件程序来实现。
通过将不同状态的代码放置在不同的Case中,并使用合适的条件来控制状态之间的转换,状态机设计可以实现复杂的程序逻辑和流程控制。
总结来说,LabVIEW中的事件驱动编程和状态机设计为开发人员提供了强大的工具,用于构建灵活、可靠和易于维护的应用程序。
通过合理的利用这些技术,开发人员可以实现高效的应用程序开发,并提供出色的用户体验。
无论是开发测量应用、控制系统还是数据处理应用,LabVIEW都是一个强大的工具,值得开发人员深入学习和应用。
labview的事件结构的用法
LabVIEW的事件结构是一种特殊的程序结构,它可以让程序在等待用户输入或系统事件时暂停执行,直到事件发生后再继续执行。
事件可以是用户交互、数据输入、系统消息等,都可以被事件结构捕捉。
使用事件结构可以增强程序的交互性和灵活性,使程序能够更好地响应用户操作和外部事件。
事件结构包含一个或多个事件框,每个事件框都可以捕捉一个特定类型的事件。
当事件发生时,事件结构会自动跳转到相应的事件框,执行相应的代码,然后等待下一个事件的到来。
事件结构还可以设置超时时间,当等待事件的时间超过设定的超时时间时,事件结构会自动退出等待状态,进行下一步操作。
LabVIEW的事件结构还支持多个事件的并发处理,不同的事件框可以同时处于等待状态,当事件发生时,相应的事件框会立即响应,执行相应的代码,而不影响其他事件框的等待状态。
在LabVIEW中,事件结构可以用于各种应用场合,比如图形界面、数据采集、通信等。
通过事件结构,程序可以更好地与用户交互,响应外部事件,增强程序的实用性和可靠性。
- 1 -。
labview的事件结构的用法LabVIEW是一款强大的图形化编程软件,具备强大的数据采集和处理的能力,广泛应用于自动化、监控、控制等领域。
其中,事件结构是LabVIEW中最常见的流程控制结构之一。
本文将围绕事件结构的用法进行详细阐述。
事件结构是LabVIEW中的一种流程控制结构,它的主要功能是在某个事件发生时,执行相关的代码。
在实际应用中,事件结构通常用于响应用户的输入、硬件设备的触发等事件。
具体来说,事件结构可以分为两个主要部分:事件源和事件处理程序。
首先,需要明确的是,事件结构的建立需要先确定事件源,也称为该事件的产生者。
常见的事件源包括面板上的控件、VI的输入和输出、硬件设备和文件等。
选择合适的事件源很关键,因为它决定了事件结构的执行时机。
其次,需要编写相应的事件处理程序,即在事件发生时,要执行的程序段。
LabVIEW提供了许多已经编写好的事件处理程序,也可以根据需要编写自己的事件处理程序。
事件处理程序一般包括以下几个基本步骤:读取事件数据、执行相应的操作、更新界面或数据等。
不同类型的事件处理程序细节略有不同,但总体逻辑相似。
接下来,我们来看一下事件结构的具体用法。
1.使用事件结构实现面板控件的响应使用事件结构可以实现对面板控件的响应。
例如,我们要在按下按钮时执行某个操作,只需要在事件结构中选择该按钮控件作为事件源,然后编写相应的事件处理程序即可。
这样,只要用户按下该按钮,就会自动触发相应的事件处理程序。
2.使用事件结构实现VI的响应除了对面板控件进行响应外,事件结构还可以实现对整个VI的响应。
在新建事件结构时,可以选择VI作为事件源,然后编写响应程序。
这样,只要该VI被调用,就会自动触发相应的事件处理程序。
3.使用事件结构实现硬件设备的响应通过LabVIEW,可以方便地实现与硬件设备的交互。
在新建事件结构时,可以选择硬件设备作为事件源,然后编写响应程序。
这样,当硬件设备产生特定的信号时,就会自动触发相应的事件处理程序。
labview从⼊门到出家4--⽤事件结构实现运算功能使⽤事件结构可以快速定位响应界⾯的操作事件,如按下,拖动,双击的事件。
基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,⽐如后⾯进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的。
⼀个好的状态机可以帮助我们搭建⼀个好的程序框架,这将⾮常有利于我们以后写⼀些⼤型程序。
在此前,我们先⽤之前的加减乘除运算熟悉⼀下事件结构。
1、同样的,按上⼀章节的操作,或者直接拷贝上⼀章的程序。
新建⼯程->新建calc主VI->新建⼦VI,这⾥把主VI打回原型,把之前的条件结构减掉(其实就是⽤事件结构代替⾥⾯的条件结构,但只是介绍事件结构的使⽤,不是说事件结构可以取代条件结构)。
2、添加事件结构我们可以看到事件结构的第⼀个默认事件是超时事件(⽬前只有⼀个事件),左上⾓那个沙漏状的是超时时间设定,相当于单⽚机⾥⾯的定时中断,我们后⾯可以右键新建⼀个数值常量⽤于设定超时时间。
如果没设定超时时间,则在没有其他事件产⽣或触发前,整个while循环就卡在超时事件这边等待超时事件的发⽣,因为没有设定超时时间,所以程序⼀直等待,不响应事件之外的其他操作。
只有⼀个超时事件3、添加“布尔”按键的事件,⿏标移到事件结构上⽅的事件显⽰图标,右键选择“添加事件分⽀”。
选择布尔,选择值改变,点击确定就添加了我们的布尔按键的事件了。
⿏标点击事件结构上⽅的⿊下三⾓,显⽰有超时和布尔值改变两个事件分⽀,我们选中布尔值改变的事件分⽀,在该分⽀添加相关的程序逻辑。
4、将上⼀次章条件结构中的程序直接拷贝或者重新编写⾄事件分⽀中5、运⾏程序试⼀下功能(后⾯会出⼀章讲程序调试操作,我们到时候可以⽤调试⼯具查看事件功能的响应情况)。
我们发现基本功能和上⼀章的⼀致,但是会发现⼀个问题,点击退出按键的时候界⾯不响应退出的功能。
这时因为while循环中我们添加的是事件结构,也就是程序只有识别到事件发⽣时,才会执⾏⼀次while循环,没事件发⽣的话,则不会运⾏其他操作,也就不响应按键的执⾏了。
LabVIEW程序设计模式(四)—状态机和事件结构的结合上两节分别解决了基本状态机的第(1~5)个问题,但是是否具备一种模式能够综合队列型状态机模式和用户界面事件型模式的优点呢?这样可以同时避免基本状态机的第(1~5)个问题。
答案是肯定的,本节将介绍如何将状态机与事件结构结合起来形成一种新的、稳定的模式。
状态机模式的基本构成元素是while 循环和case 结构,而事件结构模式的基本构成元素是while 循环和event 结构,因此新的模式应该由while 循环、case 结构和event 结构组成。
而while 循环的目的是为了保证程序的持续运行,因此必须在最外层,这样就只剩下了图20 所示的两种组合方式。
在第一种方式中,每次循环的运行需要经过一个事件结构才能够实现case 中各个分支的运行,那么到底需要多少个分支呢?一般而言不同的事件都会有不同的事件处理函数(这些函数可以在case 结构中共用),显示这是无法满足要求的,它从本质上而言仍然是一种事件结构。
在第二种方式中,程序的主体是一个状态机结构,不同的是在某一个状态分子中有一个事件结构。
我们可以回忆状态机模式中的空闲Idle 状态,这正是长时间占用CPU 资源的源头,如果在Idle 中加入一个事件结构后就有效地规避了这个问题。
图20 三种结构的组合方式因此图20 中的第二种结构综合了状态机和事件结构的优点,有效地克服了基本状态机的第(1~5)个问题。
此外,在【应用2_自动贩卖机】例程中,按钮1USD、2USD 和5USD 的作用是相同的,唯一不同的是它们的代表的币值不同。
如果我们希望系统共用币值相加这个功能,即当这三个按钮任何一个被按下后都调用同一个函数(该函数的功能是将系统中原来的货币值与新加入的币值相加得到新的值)。
这样,需要有一种途径把1USD、2USD 和5USD 代表的币值作为参数传递给函数。
图21 所示为带参数的状态机结构,在消息队列的状态机模式中,加入了一个变体型的变。
LabVIEW程序设计模式(四)—状态机和事件结构的结合LabVIEW程序设计2009-05-04 14:25:19 阅读497 评论0 字号:大中小订阅上两节分别解决了基本状态机的第(1~5)个问题,但是是否具备一种模式能够综合队列型状态机模式和用户界面事件型模式的优点呢?这样可以同时避免基本状态机的第(1~5)个问题。
答案是肯定的,本节将介绍如何将状态机与事件结构结合起来形成一种新的、稳定的模式。
状态机模式的基本构成元素是while循环和case结构,而事件结构模式的基本构成元素是while循环和event结构,因此新的模式应该由while循环、case结构和event结构组成。
而while循环的目的是为了保证程序的持续运行,因此必须在最外层,这样就只剩下了图20所示的两种组合方式。
在第一种方式中,每次循环的运行需要经过一个事件结构才能够实现case中各个分支的运行,那么到底需要多少个分支呢?一般而言不同的事件都会有不同的事件处理函数(这些函数可以在case结构中共用),显示这是无法满足要求的,它从本质上而言仍然是一种事件结构。
在第二种方式中,程序的主体是一个状态机结构,不同的是在某一个状态分子中有一个事件结构。
我们可以回忆状态机模式中的“空闲Idle”状态,这正是长时间占用CPU资源的源头,如果在Idle中加入一个事件结构后就有效地规避了这个问题。
图20 三种结构的组合方式因此图20中的第二种结构综合了状态机和事件结构的优点,有效地克服了基本状态机的第(1~5)个问题。
此外,在【应用2_自动贩卖机】例程中,按钮1USD、2USD和5USD的作用是相同的,唯一不同的是它们的代表的币值不同。
如果我们希望系统共用“币值相加”这个功能,即当这三个按钮任何一个被按下后都调用同一个函数(该函数的功能是将系统中原来的货币值与新加入的币值相加得到新的值)。
这样,需要有一种途径把1USD、2USD和5USD代表的币值作为参数传递给函数。
labview控制程序流程——labview事件结构
1 事件结构及它的图形化表示法事件被用来通知用户有异步活动发生。
图
形化语言的事件响应包括:用户界面事件、外部I/O 事件和程序其它部分的事件。
对事件的处理程序也被称为:事件驱动程序。
事件驱动程序可以分为若干
个分支,每个分支处理不同的事件响应。
所以对事件的响应结果也可以控制程
序的流程。
事件驱动机制来自于可视化的操系统,可视化操作系统对用户事件
提供了简洁、有效的响应方式,最常见的事件来自于鼠标和键盘。
虚拟仪器借
助于操作系统的事件处理机制实现了图形化语言的事件响应能力。
在没有引入
事件结构之前,LabVIEW 是借助于轮询的方式来查询用户操作,由于轮询的方
式会占用一定的CPU 资源,甚至可能遗漏事件,所以这种处理方式并非理想。
事件结构的出现避免了对CPU 资源的占用,同时也避免了事件的遗漏。
事件
结构在函数选板》编程》结构子选板中可以找到,并可以将其直接拖拽到程序
框图中,图形化表示的事件结构,参见下图。
图 1 图形化的事件结构与Case 结构和循环结构类似,事件结构也包含了一个主框架,这个框架内将用来放置
事件处理的事件驱动程序代码。
如果事件处理任务众多,会有众多事件分支存在,在结构上类似Case 的多帧结构(选择器标签)。
当在程序框图上拖放一个
事件结构时,我们只能看到上图所示的一帧已经预先注册的超时事件(Timeout),超时事件分支。
它具有定时延迟的基本功能(不包括While 循环),参见下图。
图 2 具有定时延迟的基本功能当然也可以采用另一种表示方法,参
见下图。
图 3 利用事件结构内部节点获得中止时间通过这个例子也好理解内部
节点中时间的含义(是事件响应的停止时间)。
超时事件超时事件是一种特殊
的事件,当然也可以看成是默认的事件分支。
如果存在其它事件源时,超时事
件完全可以被忽略或取消。
看下面一个例子。
图 4 仅有的两个事件之一超时事。