LabVIEW的事件驱动功能在菜单设计中的应用
介绍LabVIEW事件驱动功能,通过菜单设计叙述了La bVIEW的Event Structure即LabVIEW的事件编程能力,为编制各种人机交互界面提供了一种 强有力的方法。
关键词:虚拟仪器;LabVIEW;事件结构
Keyw
ords: virtual instruments; LabVIEW; event structure
事件驱动早已是VB、V
C++等编程语言的基本功能,而作为当今最好的图形化编程 语言,LabVIEW不具备事件驱动功能显然不合时宜。LabVIEW6.1的Event Structure( 事件结构)的出现,彻底解决了这个问题。在事件驱动程序中,首先是等待事件发生,然后 按照指定事件的
程序代码对事件进行响应,此后再回到等待事件状态。
本文通过菜单设计实例,介绍了Event Structure的具体应用。?
?
Event Structure位于Func
tion模板?Structure子模板中,如图1所示,图中Structure子模 板中带有“e”字的代码框即为Event Structure,其创建方法与其他结构相同。?
2.1菜单设计
首先创建应用程序“
信号发生器.vi”,然后在系统菜单中选择Edit→Run?Time Menu,打 开菜单编辑器,选择菜单类型为Custom,菜单项的类型为User I
tem,按图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的边框上按右键选择Dupl
icate 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调 用动态链接库驱动采集卡采集数据是成功的。?