在实际应用中,经常会遇到多个不同的事件源,需要触发同一事件的问题。最为常见的是程序的菜单项和工具栏的按钮问题。通常情况下,工具栏的按钮对应菜单条的中的某一项,二者的作用是相同的。在C语言编程中,通常为二者注册同一回调函数,这样二者的反应就完全相同了。
在Labview的编程实践中,也会遇到类似的问题,基于LABVIEW事件结构的特殊性,存在几种常见的方法可以解决这个问题。
1、为一个分支静态注册多个事件。
这种方法与其它编程语言类似,类似于为多个事件注册同一回调函数。下面我用四个按钮来举例说明。
显然图中四个按钮的作用是类似的,比如移动图片,包括上下左右四个方向。一般情况下,我们对四个按钮是分别静态注册事件,因此会出现四个事件处理分支,非常繁琐,也容易出现问题。
初学者可能没有注意到一个事件分支可以静态注册多个控件的事件,注册方法如下图所示:
通过事件结构中控件的引用可以区分是那个按钮产生了事件。[page]
2、利用值(信号)属性节点转发事件
如果我们为每个按钮单独注册了事件,可以在一个按钮事件分支中处理所有按钮的响应代码,通过值(信号)属性节点,可以编程实现触发事件,如下图所示:
3、不同事件分支调用同一VI
这种方法使用比较简便,对需要相同功能的事件分支,调用同一函数(VI),因为非常简单,就不举例了。
4、采用生产消费者模式(事件)
使用基于事件的生产消费者模式后,对于不同的事件分支,产生相同的功能就非常容易了,无非是向队列入队相同的数据而已。LABVIEW提供了生产消费者模式的模版,如下图所示:
但是一般都要根据自己的需要,重新封装队列,比如下面的例子:
上面介绍了几种常用的方法,如果我们使用了生产消费者模式,结合事件结构,我们就有了自己的消息处理中心,这种方式与WINDOWS的消息机制非常类似,使事件结构的处理更为灵活,重点推荐这种方式。
关键字:LABVIEW 同一事件 多个事件
引用地址:
LABVIEW深入探索之如何使多个事件分支执行相同的功能
推荐阅读最新更新时间:2024-03-30 22:49
NI 推出 LabVIEW 系统设计软件的最新版本
上海2014年8月5日电 /美通社/ -- NI (美国国家仪器公司,National Instruments,简称 NI) 作为致力于为工程师和科学家提供解决方案来应对全球最严峻的工程挑战的供应商,今日宣布推出 LabVIEW 2014系统设计软件,该软件是 NI 平台的核心,包含了许多增强的功能,以帮助用户采集、分析和可视化数据,从而快速做出明智的决策。 LabVIEW 2014通过跨系统复用相同的代码和工程流程来标准化用户与硬件交互的方式,这一方式也使得工程师能够根据未来需求调整应用程序。随着技术的进步、需求的不断变化和产品上市时间压力的逐渐增大,这一方式可帮助用户节省大量的时间和金钱。 LocalGrid Tec
[嵌入式]
labview多个并行循环同时退出
labview中停止并行的循环 问题: 在labview中我如何停止两个并行的循环?我使用一个局部变量,但是当我停止程序执行后,第二次不能 运行程序。我该如何解决这个问题呢? 解答: 你使用局部变量来停止并行的2个while循环的执行是正确的。但是,要记住你的局部变量是一个布尔型实体,你不能使用latch mechanical action(锁存器机械动作)。当该值从真变为假,然后再变回真的时候,变化非 常快以致于循环没有及时读到这个改变的值。因此机械动作应该设置成Switch开关. 现在当你按下布尔键来暂停这个执行时,按钮因为是switch的原因,在你重新设置前一直处于假的状态,这个值导致程序不能第二次运行。因此你需要为布
[测试测量]
基于LabVIEW6.1的数字存储示波器设计
0 引言 1986年,美国国家仪器公司提出了虚拟仪器概念。它是一种程序设计思想,是前面板、数据流框图和图标或连接器的有机结合,密不可分。随着现代测试与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想。它是以通用计算机(含LabVIEW软件)为操作平台,以模块化功能硬件为桥梁的测控系统。在虚拟仪器系统中,硬件仅仅是解决信号的输入和输出问题的方法和软件赖以生存运行的物理环境,软件才是整个仪器的核心,用于实现硬件的管理和仪器功能的实现 。用户只需通过调整或修改仪器的软件,便可方便地改变或增减仪器系统的功能与规模,甚至仪器的性质,完全打破了传统仪器有厂家定义,用户无法改变的模式,给用户一个充分发挥自己才能和想象力的空
[测试测量]
使用LabVIEW为癌症诊断进行放射性药物合成
TheChallenge: 为放射性药物合成开发自动化流程,提高合成速度和可靠性,并且允许临床医师在较安全的距离控制并监视这个流程。 TheSolution: 使用NILabVIEW和带有远程以太网接口的NICompactFieldPoint,创建RadioMedixSMARTRACE放射性药物合成器,来控制阀门、机械注射器和加热器。BloomyControls的工程师开发了LabVIEW应用程序软件运行这些硬件、编辑药方并且显示合成的动画仿真。 SMARTRACE合成器机械面板中显示注射器、管道、容器和辐射探测器。CompactFieldPoint机架位于移动车内部,控制电脑通常放置在辐射室外。
[测试测量]
基于LabVIEW的三极管老化测试系统设计
针对一些功率器件(功率三极管、VDMOS,IGBT等),通过有规律给元器件通电和断电,循环施加电应力和热应力,可以检验其承受循环应力的能力。基于上述原理,借助可视化编程语言LabVIEW和NI系列sb RIO-9612板卡,本文设计了一种三极管老化测试系统,该系统满足国军标GJB1036的试验要求,每个工位的采样时间不大于4 s,总共64工位的采样周期不大于300 s,满足了快速控制的要求,同时还不失精准,电压和电流的采样分辨率达到了12 bit,精度达到1%,从而控制了器件结温误差。目前系统已经交付运行,实验结果达到了用户的需求,具有很高的实用价值。 随着航空,航天,能源工业等领域对电子产品质量的要求日益提高,电子产品的可靠性
[电源管理]
使用LabVIEW与PXI设计并实现用于飞机前起落架电子转向系统
挑战: 设计并实现一套 试验装置 ,用于空中客车A320客机前起落架的 电子转向 系统原型。 解决方案: 基于 NI Labview 软件与 PXI 硬件创建一套系统,使用实时操作系统,以便于快速地开发 试验装置 的测试与控制应用软件,并依托 LabVIEW 中随时可用的函数快速地开发出我们的算法。 简介 分布式与冗余式机电前轮转向系统(DRESS)国际项目的目标是创建客机前起落架 电子转向 系统的原型。航空学院(IoA)起落装置系的科学家设计并制造了一套 电子转向 系统 试验装置 原型用于模拟实际情况。他们设计的 试验装置 能够承受快速而简单的配置改变,这是由测试项目原型机所特有的性质决定
[测试测量]
基于虚拟仪器LabVIEW的网络虚拟实验室系统设计
0 引言 随着招生规模的不断扩大,国内普通高等院校实验设备往往比较陈旧,不能及时更新,从而无法跟上教育的飞速发展。目前,高等工科院校仍沿用传统的实验教学方法,实验内容侧重于理论验证和模仿训练,缺乏对学生创新意识的培养和综合能力的提高。滞后的实验设备和死板的实验模式难以调动学生的主动性和创造性,实验教学处于应试教育。而虚拟实验室系统则主要依赖于软件和较少的配套硬件,使实验室的维护费用和工作量大大降低。 LabVIEW 作为 虚拟仪器 开发系统的代表,可以利用Internet进行 虚拟实验室 的网络发布,实现了资源共享,避免了仪器重复添置,满足了用户不再受时间、地点限制进行远程的实时合作,提高了用户的学习效果。
[测试测量]
西门子200/300PLC连接CHNet-200/300与LABVIEW通过OPC通信案例
借助兴达易控CHNet-S7300MD 模块,通过NI OPC Servers和CHNetS7 OPC,测控软件NI LABVIEW实现了与西门子S7-300的通讯和监控。 通过 NI OPC Servers 连接 (1)编辑 OPC 1. 打开 NI OPC Servers 软件。 2. 新建一个 Channel,这里取名“Channel_300”,点击“下一步”。 3. 在“Device driver”中选择“Siemens TCP/IP Ethernet ”,点击“下一步”。 4. 在“Network Ad ap te r”中选择你的网卡信息,点击“下一步”。 5. 选择默认参数,点击“下一步”
[嵌入式]