事件驱动早已是VB、VC++等编程语言的基本功能,而作为当今最好的图形化编程 语言,LabVIEW不具备事件驱动功能显然不合时宜。LabVIEW6.1的Event Structure( 事件结构)的出现,彻底解决了这个问题。在事件驱动程序中,首先是等待事件发生,然后 按照指定事件的程序代码对事件进行响应,此后再回到等待事件状态。
关键字:LabVIEW 事件驱动 菜单设计
引用地址:LabVIEW的事件驱动功能在菜单设计中的应用
本文通过菜单设计实例,介绍了Event Structure的具体应用。?
Event Structure位于Function模板?Structure子模板中,如图1所示,图中Structure子模 板中带有“e”字的代码框即为Event Structure,其创建方法与其他结构相同。?
2.1菜单设计
首先创建应用程序“信号发生器.vi”,然后在系统菜单中选择Edit→Run?Time Menu,打 开菜单编辑器,选择菜单类型为Custom,菜单项的类型为User Item,按图3所示的菜单形式 将菜单内容依次输入到Item Name项目中(注意:在ItemTag项目中的内容可以任意填写,本 文该项目内容与菜单内容相同)。将其保存为“信号发生器.rtm”,放在与“信号发生器.vi ”程序同一目录内。
首先创建应用程序“信号发生器.vi”,然后在系统菜单中选择Edit→Run?Time Menu,打 开菜单编辑器,选择菜单类型为Custom,菜单项的类型为User Item,按图3所示的菜单形式 将菜单内容依次输入到Item Name项目中(注意:在ItemTag项目中的内容可以任意填写,本 文该项目内容与菜单内容相同)。将其保存为“信号发生器.rtm”,放在与“信号发生器.vi ”程序同一目录内。
2.3编码设计
(1)将Event Structure放入While循环内。
(2)在Event Structure的边框上按右键,弹出快捷菜单,选择Edit Events Handle d by This Case,调出事件编辑对话框。
(3)在事件编辑对话框作如下选择:
按“OK”,关闭事件编辑对话框。
(4)在该Event Structure的事件数据端口上按右键,选择Remove Element删去其他 元素,只保留“Item Tag”。
(5)在Event Structure内放上Case Structure,将“Item Tag”与Case Structure 的选择端口相连。
(6)将Case Structure中的框图标识符内容由“Ture”改为“正弦波”(需要特别注 意的是该标识符内容必须与输入到菜单编辑器Item Tag项目中的内容完全一致)。再将“正 弦波.vi”SubVI引入其中。
(7)依次在Case Structure的边框上按右键选择Duplicate Case,步骤同(6),分别 将“方波”、“锯齿波”、“三角波”、“白噪声”、“高斯白噪声”对应的SubVI引入到C ase Structure中。
(8)在主程序前面板放入“停止”按钮,在程序框图的?Event Structure边框上按右 键,弹出快捷菜单,选择Add Event Case,调出事件编辑对话框。
(9)在事件编辑对话框作如下选择:
按“OK”,关闭事件编辑对话框。
(10)在该Event Structure的事件数据端口上按右键,选择Remove Element删去“T ime”、“CtlRef”、“OldVal”、“NewVal”四个元素。?
(11)将“停止”按钮图标放到该Event Structure中,并与While循环的条件端口相 连。到此编码设计完毕,图5即为其中正弦波响应程序框图。
2.4程序运行
运行该程序,点击“基本发生器”的下拉菜单“正弦波”,结果如图6所示,在正弦波子窗 口中显示出连续不断的正弦波,调整“频率”、“振幅”和“相位”任一项,波形即产生相 应变化。点击“退出”按钮,正弦波子窗口关闭。再点击其他下拉菜单,即出 现相应子窗到的三向压电动态测力仪车刀在车削时所受的三个方向的切削力,经过验证LabVIEW调用动态链接库驱动采集卡采集数据是成功的。
(1)将Event Structure放入While循环内。
(2)在Event Structure的边框上按右键,弹出快捷菜单,选择Edit Events Handle d by This Case,调出事件编辑对话框。
(3)在事件编辑对话框作如下选择:
按“OK”,关闭事件编辑对话框。
(4)在该Event Structure的事件数据端口上按右键,选择Remove Element删去其他 元素,只保留“Item Tag”。
(5)在Event Structure内放上Case Structure,将“Item Tag”与Case Structure 的选择端口相连。
(6)将Case Structure中的框图标识符内容由“Ture”改为“正弦波”(需要特别注 意的是该标识符内容必须与输入到菜单编辑器Item Tag项目中的内容完全一致)。再将“正 弦波.vi”SubVI引入其中。
(7)依次在Case Structure的边框上按右键选择Duplicate Case,步骤同(6),分别 将“方波”、“锯齿波”、“三角波”、“白噪声”、“高斯白噪声”对应的SubVI引入到C ase Structure中。
(8)在主程序前面板放入“停止”按钮,在程序框图的?Event Structure边框上按右 键,弹出快捷菜单,选择Add Event Case,调出事件编辑对话框。
(9)在事件编辑对话框作如下选择:
按“OK”,关闭事件编辑对话框。
(10)在该Event Structure的事件数据端口上按右键,选择Remove Element删去“T ime”、“CtlRef”、“OldVal”、“NewVal”四个元素。?
(11)将“停止”按钮图标放到该Event Structure中,并与While循环的条件端口相 连。到此编码设计完毕,图5即为其中正弦波响应程序框图。
2.4程序运行
运行该程序,点击“基本发生器”的下拉菜单“正弦波”,结果如图6所示,在正弦波子窗 口中显示出连续不断的正弦波,调整“频率”、“振幅”和“相位”任一项,波形即产生相 应变化。点击“退出”按钮,正弦波子窗口关闭。再点击其他下拉菜单,即出 现相应子窗到的三向压电动态测力仪车刀在车削时所受的三个方向的切削力,经过验证LabVIEW调用动态链接库驱动采集卡采集数据是成功的。
上一篇:基于虚拟仪器的离合器膜片弹簧参数测试系统的实验研究
下一篇:基于虚拟仪器技术的混合集成电路测试系统的设计与实现
推荐阅读最新更新时间:2024-03-30 23:27
LabVIEW自定义控件挺好玩
如果觉得系统自带的控件比较不好看,那我们就可以建立自定义的控件来使用。 例如,我们想使用透明的图片来当做控件,但是系统就没有。怎么办呢? 类似于这样的: 那我们建立自定义控件: 新建自定义控件 以这个为例吧 都一样 我们试着直接导入图片 发现是这个鸟样的,完全不符合我的要求嘛 试着切换至编辑模式,注意左上角 右键,以相同的大小从文件导入 结果是这样的,这才符合我的要求么。 PS:只有PNG格式的图片,才能有这样的效果。
[测试测量]
一种基于风光互补发电的物联网远程监控系统
0 引言 随着常规能源的逐步消耗,可再生能源日益引起人们的关注,风能与太阳能从众多可再生能源中脱颖而出。风光发电系统的能量输出因周围环境的变化而表现出较大的差异,对风光发电系统进行实时监测,可以获得原始测量数据,为系统的改进与优化提供有用数据,同时对系统环境参数及其系统本身的电气性能进行监测和分析是保证系统正常高效运行的前提,而且风光发电系统的运行一般是在偏远地区或无人值守的情况下进行,对地面上很分散的风光系统进行监测维护是十分困难繁琐的,需要大量的时间和人力物力,因此在风光发电系统中采用物联网远程监控系统具有重要意义。 物联网,以其现有定义,即通过射频识别装置、摄像装置、红外感应器、全球定位系统等信息传感设备,按约定的协议,把
[测试测量]
LabVIEW数据采集与处理信号的10大优势
LabVIEW是一种用图标代替文本行创建应用程序的图形化编程语言,广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。NI是领先的机器视觉 与科学视觉硬件、软件工具的供应者。今天我们就来看一下NILabVIEW数据采集与处理信号的10大技术优势有哪些? 1.借助图形化方法,加速开发 在NILabVIEW的图形化开发环境中,用户无需编写成行的文本代码,而是通过拖放式图标开发数据采集系统。使用NILabVIEW,即便用户不具备编程经验,也能在数小时内完成传统语言编写需要数周的程序。直观的流程图所显示的代码便于用户开发、维护和理解。只需点击两次鼠标,便能传递功能代码块之间的数据。 2.使用任意传感器在任意
[测试测量]
如何用LabView制作一个密码登陆界面
一个非常简单的 用户名 、 密码 的登陆界面。参考自vihome的文章。 程序框图 其中用到的 用户登陆 是 函数 编程 对话框与用户界面 提示用户输入 登陆界面密码显示的问题解决不了。
[测试测量]
通过LabVIEW图形化开发平台有效优化多核处理器环境下的信号处理性能
多核处理器环境下的编程挑战 摩尔定律问世40余年来,人们业已看到半导体芯片制造工艺水平以一种令人目眩的速度在提高,Intel微处理器的最高主频甚至超过了4G。虽然主频的提升一定程度上提高了程序运行效率,但越来越多的问题也随之出现,耗电、散热都成为阻碍设计的瓶颈所在,芯片成本也相应提高。当单独依靠提高主频已不能实现性能的高效率时,双核乃至多核成为了提高性能的唯一出路。随着AMD率先打破摩尔定律、终结频率游戏后,Intel和AMD都开始逐步推出了基于双核、四核甚至八核的处理器,工程师们逐渐投入到基于多核处理器的新型应用开发中去时,大家开始发现,借助这些新的多核处理器,并在应用开发中利用并行编程技术,可以实现最佳的性能和最大的吞吐量,大
[测试测量]
什么是LabVIEW?
NI LabVIEW是 一种使用图标代替文本行编写程序的图形化编程语言,用于快速创建灵活的、可升级的测试、测量和控制应用程序。使用LabVIEW,工程师和科学家们可以采集到实际信号,并对其进行分析得出有用信息,然后将测量结果和应用程序进行分享。无论您是否有相关经验,使用LabVIEW,您都可以方便快捷地开发测量程序。 LabVIEW的主要优势: 图形化编程 多种开发工具 内置测量和控制函数 范围广泛的计算对象 LabVIEW开发系统附加工具: 应用部署模块 将所开发的LabVIEW应用程序发布到远程的设备上运行。 软件工程和优化工具 完善程序构架,提高程序效能。 数据管理及视觉化 创建专
[测试测量]
LabView利用IMAQ来采集笔记本自带摄像头图像
最近想学习一下在、labview环境下来做简单的图像处理,延伸到机器视觉上的使用。 于是安装了驱动NI Vision Acquisition,这是labview的关于机器视觉方面的驱动程序。 在labview界面就多了这些子VI图标: 其中,NI-IMAQ主要用来对NI自己的图像采集卡进行编程;NI-IMAQdx主要用来完成对非NI自己的板卡或摄像头来进行编程,当然相对于NI-IMAQ来讲这里面的VI自由度就高一些,因为毕竟不是自己家的图像采集设备,就不太可能集成度更高嘛;Vision Utility是机器视觉模块或者叫图像处理模块,来完成对图像的一些初步的处理;Vision RIO是图像操作在FPGA上的应用;V
[测试测量]
基于Labview的锁相放大器的应用
锁相放大器是一种对交变信号进行相敏检波的放大器。它利用和被测信号有相同频率和相位关系的参考信号作为比较基准,只对被测信号本身和那些与参考信号同频(或者倍频)、同相的噪声分量有响应。因此,能大幅度抑制无用噪声,改善检测信噪比。 A)声音定位系统 如下图所示,测量仪是由三个位于等腰直角三角形的声音接受器组成,测量范围为以OA为Y轴,OB为X轴的直角坐标系的第一象限区域(三角形的右上方)。设S点为声源,由于声源到三个接收器的距离不同,其发出的声波到达三个接收器的时间不同,所测得的相位差也不同,据此计算出声源的位置。如果使声源S发出的声音为一已知固定频率,便可利用锁相放大器有效克服噪声,检测到三个信号,并较为精确地求出其两两之间的相位
[测试测量]