首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

LabVIEW的事件驱动功能在菜单设计中的应用

LabVIEW的事件驱动功能在菜单设计中的应用

摘 要:介绍LabVIEW事件驱动功能,通过菜单设计叙述了La

bVIEW
Event StructureLabVIEW的事件编程能力,为编制各种人机交互界面提供了一种

强有力的方法。
  关键词:虚拟仪器;
LabVIEW;事件结构

Application of LabVIEW Event Drives in Menu Design

CHEN Jinping, WANG Shengze, WU Wenying

(College of Mechanical Engineering, Donghua University, Shanghai 2000

51, China)


  Abstract: This paper introduced briefly the LabVIEW event drives

, and described the LabVIEW event structure with the menu design. The LabVIEW ev

ent driv

es ability brings a kind of powerful method about design of various humanmachi

ne interface.
  Keywords: virtual instruments; LabVIEW; event structure


  LabVIEW6.1
以前的版本对前面板对象的响应都采用传统的循环检测方式,通过循

环检测每个前面板对象的状态是否改变来决定响应程序,它没有对事件进行处理的能力,这

些事件包括鼠标事件、键盘事件、菜单事件,窗口事件等,这给用户编程带来了很大的不便


  事件驱动早已是
VBVC++等编程语言的基本功能,而作为当今最好的图形化编程

语言,LabVIEW不具备事件驱动功能显然不合时宜。LabVIEW6.1Event Structure(

事件结构)的出现,彻底解决了这个问题。在事件驱动程序中,首先是等待事件发生,然后

按照指定事件的程序代码对事件进行响应,此后再回到等待事件状态。
  本文通过菜单设计实例,介绍了
Event Structure的具体应用。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

1Event Structure概述

  Event Structure具有同时响应多重选择能力,例如,单击鼠

标的同时又移动鼠标,这时两

个事件同时发生,而Event Structure结构能同时响应这两个事件。而传统的选择结构(Case

Structure)没有这个能力,它只能一次接受并响应一个选择。Event Structure能够响应两

种类型的事件:通知(Notify)事件和过滤(Filter)事件。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
1.1Event Structure的调用
  
Event Structure位于Function模板Structure子模板中,如图1所示,图中Structure子模

板中带有“e”字的代码框即为Event Structure,其创建方法与其他结构相同。

1.2Event Structure图标和端口介绍
  
Event Structure图标如图2所示,超时端口用于连接一个具体数值,用于指定等待事件的毫

秒数,默认值是-1,即无限等待。如果设置了处理超时事件的子图形代码框,那么在事件发

之前超时的话,LabVIEW就会产生一个超时事件。事件数据端口用于访问事件数据,事件数

据端口的数目依据事件的多少及其类型而定。事件选择标签用于指定和显示当前响应的是哪

一个事件。在该图标的快捷菜单中选择Add Event Case可以添加多个子图形代码框。图形代

码框中用于放置事件响应后所要执行的代码。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

2程序设计
  
通过设计一个“信号发生器.vi”的实例,介绍事件驱动功能在菜单设计中的应用。该“信

号发生器.vi”程序的菜单如图3所示。其中主菜单由“文件”、“基本波发生器”、“其他

波发生器”、“编辑”和“帮助”组成,而“文件”、“编辑”和“帮助”三项下拉菜单的

内容与多数Windows程序大同小异。本文着重设计“基本波发生器”和“其他波发生器”的

下拉菜单。用鼠标点

击下拉菜单中任一项,即弹出相应的子窗口以显示连续不断的波形。
2.1菜单设计
  
首先创建应用程序“信号发生器.vi”,然后在系统菜单中选择EditRunTime Menu,打

开菜单编辑器,选择菜单类型为Custom,菜单项的类型为User Item,按图3所示的菜单形式

将菜单内容依次输入到Item Name项目中(注意:在Item
Tag项目中的内容可以任意填写,本

文该项目内容与菜单内容相同)。将其保存为“信号发生器.rtm”,放在与“信号发生器.vi

”程序同一目录内。

2.2SubVI设计
  
针对“基本波发生器”和“其他波发生器”下拉菜单的内容:“正弦波”、“方波”、“锯

齿波”、“三角波”、“白噪声”、“高斯白噪声”,分别设计其对应的SubVI,并保存在

与“信号发生器.vi”程序同一目录内。具体设计从略,其中“正弦波.viSubVI程序框图

如图4所示,其前面板如图6子窗口所示。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
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项目中的内容完全一致)。再将“正

弦波.viSubVI引入其中。


  (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即为其中正弦波响应程序框图。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
2.4程序运行
  
运行该程序,点击“基本发生器”的下拉菜单“正弦波”,结果如图6所示,在正弦波子窗

口中显示出连续不断的正弦波,调整“频率”、“振幅”和“相位”任一项,波形即产生相

应变化。点击“退出”按钮,正弦波子窗口关闭。再点击其他下拉菜单,即出

现相应子窗到的三向压电动态测力仪车刀在车削时所受的三个方向的切削力,经过验证,LabVIEW

用动态链接库驱动采集卡采集数据是成功的。



5结束语
  
利用LabVIEW提供的Call Library Function Node结点,成功的实现了对通用数据采集卡的

驱动,使LabVIEW的强大功能与国产数据采集卡结合,既满足了使用要求,又节省了资金,

具有很高现实意义。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

谢谢楼主

正在学习中
返回列表