LabVIEW——事件结构

发布者:跳跃龙珠最新更新时间:2015-09-10 来源: eefocus关键字:LabVIEW  事件结构 手机看文章 扫描二维码
随时随地手机看文章

事件结构

 

    Event Structure 也是一种选择结构,程序根据发生的事件决定执行哪一个页面的程序。此时,LabVIEW 的界面编写与 Visual Basic 的界面程序有些类似。

一. 按照产出源来区分事件的种类

    按照事件的产生源来区分,LabVIEW有以下几种事件:

[转载]事件结构 <wbr><wbr>[简单程序结构]
图1:配置事件

    1.应用程序事件(),这类事件主要反映整个应用程序状态的变化,例如:程序是否关闭,是否超时等。
    2. VI事件(),这类事件反映当前VI状态的改变。例如:当前VI是否被关闭,是否选择了菜单中的某一项等等。
    3.动态事件(Dynamic),用于处理用户自己定义的或在程序中临时生成的事件。
    4.区域事件(Pane)和分割线事件(Splitter)是LabVIEW 8中新添加的特性。LabVIEW 8中,用户可以把一个VI的前面板分割成几份,这两类事件用来处理用户对某个区域或区域分割线的状态的改变。

[转载]事件结构 <wbr><wbr>[简单程序结构]
图2:面板上划分区域

    5.控件事件(Control)是最常用的一种事件,用于处理某个控件状态的改变。例如,控件值的改变,或者鼠标键盘的操作。
打开上述的“edit events”框,只要选定了某一个事件产生源,其相应的所有事件均排列在右侧events框中。
有时候,多个事件产生源会对同一个用户操作分别产生相应事件。比如在某一控件上按下鼠标,区域事件和控件事件都会发出鼠标按下(Mouse Down)事件。LabVIEW 按以下规则顺序产生不同的事件:
 键盘相关的事件(Key Down, Key Up, etc.)只在当前选中(Key Focused)的控件上产生;
 鼠标相关的事件(Mouse Down, etc.)按照从外向里的顺序发出。例如,区域的鼠标按下事件先于控件的鼠标按下事件发出;结构的鼠标按下事件先于先于结构内控件的鼠标按下事件发出。
值改变事件按照从内向外的顺序发出。结构(Cluser)内控件的值改变事件先于结构的值改变事件发出。

二. 按照发出时间区分事件的种类

    按照事件的发出时间来区分,LabVIEW的事件可分为通知型事件(Notify Event)和过滤型事件(Filter Event)。

    通知型事件是在LabVIEW处理完用户操作之后发出的,比如用户利用键盘操作改变了一个字符串,LabVIEW 在改变了该控件的值之后,发出一个值改变(Value Changed)通知型事件,告诉事件结构,控件的值被改变了。如果事件结构内有处理该事件的框架,则程序转去执行该框架。
    过滤型事件是在 LabVIEW 处理用户操作之前发出的,并等待相对应的事件框架执行完成之后,LabVIEW 再处理该用户操作。这类事件的名称之后都有一个问号。例如键盘按下?事件(Key Down? Event),当用户处理该事件时,控件的值还没有被改变,因此,用户可以在该事件对应的事件框架内决定是否让 LabVIEW先处理该事件,或改变键盘按下的值之后再让LabVIEW继续处理该事件。
    可以明显地看出,过滤型事件比相应的通知型事件要先发出。
    当同一VI的程序框图上有多于一个的事件结构时,通知型事件是同时被发往所有的事件结构的,而过滤型事件则是按顺序、依次发往每一个事件结构的。但是,在同一VI上放置多个事件结构是没有必要,而且极易引起错误的。所以应该避免在同一VI上使用多个事件结构。

    下面举例说明如何使用通知型事件。我们经常需要使用到这样的字符串控件:控件用于输入电话号码,因此只接收数字和横线,对其他按键不起反应。LabVIEW没有直接提供此种控件,但是它们可以利用通知型事件被方便地实现出来。

[转载]事件结构 <wbr><wbr>[简单程序结构]
图3:利用 Key Down? 事件实现电话号码控件

    这个例子可以在这里下载:Phone Number Control.vi

三. 动态事件

    在初始状态下,打开事件配置(Edit Events)对话框,动态事件下的一栏是空的。因为动态事件只有注册过之后才能使用。与事件相关的操作在函数选栏的 Programming -> Dialog & User Interface -> Events 下面。
    用于注册事件的节点是事件注册节点(Register For Events)。需要注册某一事件时,先为它的产生者生成一个引用节点,然后将引用节点与事件注册节点的下方区域相连,再选取所需的事件。如下例:

[转载]事件结构 <wbr><wbr>[简单程序结构]
图4:注册动态事件

    对于当前VI上的控件或区域等类型的事件,一般来说可以在事件结构中静态地被选择,所以不需要再动态注册一遍。但有时,当前VI的程序框图已经过于复杂,我们希望在子 VI 里去处理某些控件的事件。这时就可以把控件的引用传入子 VI,在子 VI 中动态注册所需事件。在子 VI 的事件结构中处理相应的事件。

四. 用户自定义的事件

    用户自定义的事件是动态事件的一种。用户自定义的事件不基于任何一个LabVIEW对象,它是使用创建用户事件节点(Create User Event)生成出来的。并且,用户可以选择不同的事件数据类型。

五. ActiveX控件的事件

    ActiveX 控件的事件不能直接被LabVIEW的事件结构所截获。ActiveX 事件需要用注册事件回调 VI 节点(Register Event Callback)来为某一事件指定一个VI。当事件发生时,执行被注册的 VI。我们也可以利用注册事件回调 VI 节点为某一 LabVIEW 自身的事件注册一个回调 VI,但是出于运行效率,和程序可读性等方面的考虑,最好不要这样使用。


关键字:LabVIEW  事件结构 引用地址:LabVIEW——事件结构

上一篇:labview使用小技巧及按钮与选项卡匹配的方式
下一篇:LabVIEW——波形显示控件

推荐阅读最新更新时间:2024-03-30 23:04

关于xcontrol的一个角落
近来,无意中的看到了关于Xcontrol的一点应用,感到这个控件改变了我对labview界面的看法,这个空间将使我的labview界面变得五彩斑斓,同时还能骑到简化程序的作用。 下面开始进行探索。 建立一个新的Xcontrol。步骤如下(附带自己的想法): 1、在labview主界面新建-X控件。 将会出现这样的界面 这将是五个小文件 Xcontrol2 数据2 状态2 外观2 初始化2 其中Xcontrol将是主控件,我们以后将要使用的也将是这个控件。另外的四个。 数据 定义该控件的数据类型。是数值还是枚举等。 状态 定义该控件为显示控件还是输入控件。我认为是显示目前控件的状态!(待探索) 外观 是控件的外
[测试测量]
LABVIEW中如何正确理解EXPRESS XY GRAPH
   XY图 可以说 Labview 数据图形显示控件最为灵活的控件,可以替代波形图和波形图表的绝大部分功能,其输入参数形式有许多变化,在下面的两篇文章中,具体讨论了XYGRAPH的多种用法。   快速VI(EXPRESSVI)是 LABVIEW 提供的一套可以采用对话框快速配置的VI,非常有利于初学者使用。在快速VI中,提供了快速XYGRAPH,该VI可以实现连续的数据显示,但是与我提及的数据缓冲区有很大区别。   上面所提及的数据缓冲区连续显示数据类似于 LABVIEW 的波形图表,本身保持一个设置为固定长度的数据缓冲区,当超过所设长度时,新的数据进入缓冲区时,原有的数据被丢弃。这样 XY图 始终显示的最新数据,而且长度不
[测试测量]
<font color='red'>LABVIEW</font>中如何正确理解EXPRESS XY GRAPH
基于labview的烤烟房远程温湿度测控系统
0 引言 烟叶的烘烤过程是生产优质烟叶的关键步骤,而烤烟的质量与烘烤过程中的温湿度环境有着密切联系。烟农使用酒精或煤油玻璃管温度计,采用人工启闭回风门(用于排湿)和鼓风机(控制火炉火势)的传统方法测出的温度不准确,控制方法被动,加之操作者连续5天以上的疲劳操作,使其成为制约烟叶烘烤质量提高的瓶径。因此,采用电子设备来控制烤房温湿度的远程测控技术已成为烤烟技术发展的必然趋势。本文介绍了一种基于虚拟仪器的烤烟房远程智能测控系统来提高烤房内温湿度控制精度及烤炯质量的设计方法,该系统具有反应灵敏,抗干扰能力强等优点,可以大大减轻烟农的劳动强度。 1 系统设计 烤烟房内设有的鼓风机和排风扇可以分别调节室内的温度和湿度。系统采用
[工业控制]
基于LabVIEW的天线伺服集中监控系统设计
0 引言 天线伺服系统在确保地面站天线精确指向中继卫星的同时,还要求具备高平稳、高可靠和长寿命等特殊性能,是卫星地面站中不可或缺的较为复杂的电子设备之一。随着电力电子、控制理论、计算机等技术的快速发展以及电机制造工艺水平的不断提高,伺服系统由液压发展到电动。随着卫星地面站建设规模的扩大,很多地面站保有的大型天线数量己经从一套增加到多套。对这些地面站来说,以中心机房的位置为参照物,天线及其伺服系统的分布通常呈现星形拓扑结构。在地面站设备监控系统成一体化发展的趋势下,对各天线伺服系统实施远程集中监测监控势在必行。通常情况下,不同型号天线伺服系统的通信协议不能互相兼容,多部套天线伺服系统并行监测监控软件设计具有一定的复杂性。多型号、多部
[测试测量]
基于<font color='red'>LabVIEW</font>的天线伺服集中监控系统设计
虚拟示波器简介及其软件实现
示波器是电子测量行业最常用的测量仪器仪表之一,它能电信号通过示波器仪表输入后输出成看得见的图象,让人们更直观的去研究各种电现象的变化过程或者信号的变化过程。随着科技的发展,传统的测量方法在许多的场合已经不再适用了,许多仪器都打出“智能化”的口号,如何实现智能化呢,于是“虚拟仪器”就应运而生了。相对于示波器而言,虚拟示波器,也就是智能化数字示波器的产生,无疑是示波器发展的一个重大的突破,在示波器的功能和作用方面都发生了重大的变化。下面我们来说一下这种新型的虚拟示波器以及虚拟示波器的软件实现方法,让大家重新来认识一下虚拟示波器这种产品。 首先我们来介绍一下虚拟示波器是什么,我们可以这样来理解,虚拟示波器是利用高性能的硬件模块和高效灵
[测试测量]
虚拟示波器简介及其软件实现
基于LabVIEW的三极管老化测试系统设计
针对一些功率器件(功率三极管、VDMOS,IGBT等),通过有规律给元器件通电和断电,循环施加电应力和热应力,可以检验其承受循环应力的能力。基于上述原理,借助可视化编程语言LabVIEW和NI系列sb RIO-9612板卡,本文设计了一种三极管老化测试系统,该系统满足国军标GJB1036的试验要求,每个工位的采样时间不大于4 s,总共64工位的采样周期不大于300 s,满足了快速控制的要求,同时还不失精准,电压和电流的采样分辨率达到了12 bit,精度达到1%,从而控制了器件结温误差。目前系统已经交付运行,实验结果达到了用户的需求,具有很高的实用价值。 随着航空,航天,能源工业等领域对电子产品质量的要求日益提高,电子产品的可靠性
[电源管理]
基于<font color='red'>LabVIEW</font>的三极管老化测试系统设计
一款基于LabVIEW的地面伽玛能谱仪校准软件设计
1.引言 地面伽玛能谱测量是利用便携式伽玛能谱仪直接在现场测定土壤、岩石中钾、铀、钍含量的一种核地球物理方法。在解决地球科学、环境科学等领域具有重要作用 .地面伽玛能谱仪的校准通常采用饱和模型法,目前,仪器校准系数的计算方法大多采用离线工计算,工作繁琐,易出错。为此,笔者针对地面伽玛能谱仪校准的校准系数、灵敏度系数、准确度的计算特点,运用LabVIEW设计出一款自动计算软件。 2.伽玛能谱仪的校准与检验 2.1 灵敏度系数及校准系数的计算 按照规范,伽玛能谱仪的校准方程式如下: 式中,Ik、Iu、Ith分别为谱仪在模型上实测的钾道、铀道和钍道扣除本底后的净计数率;QK、QU、QTh分别为模型中钾、铀、钍扣除本底的
[测试测量]
一款基于<font color='red'>LabVIEW</font>的地面伽玛能谱仪校准软件设计
使用LabVIEW为癌症诊断进行放射性药物合成
  TheChallenge:   为放射性药物合成开发自动化流程,提高合成速度和可靠性,并且允许临床医师在较安全的距离控制并监视这个流程。   TheSolution:   使用NILabVIEW和带有远程以太网接口的NICompactFieldPoint,创建RadioMedixSMARTRACE放射性药物合成器,来控制阀门、机械注射器和加热器。BloomyControls的工程师开发了LabVIEW应用程序软件运行这些硬件、编辑药方并且显示合成的动画仿真。   SMARTRACE合成器机械面板中显示注射器、管道、容器和辐射探测器。CompactFieldPoint机架位于移动车内部,控制电脑通常放置在辐射室外。
[测试测量]
使用<font color='red'>LabVIEW</font>为癌症诊断进行放射性药物合成
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved