labview编写wizard类型应用程序.pdfVIP

  • 0
  • 0
  • 约3.43千字
  • 约 3页
  • 2025-06-05 发布于北京
  • 举报

用LabVIEW编写Wizard类型的应用程序3(LabVIEW8.0)

五、SubPanel

主VI太过复杂,是肯定会影响它的可读性和可性的。所以,对向导类型程序的进

一步改进的重点,就是把主VI进一步模块化,不但是程序代码要模块化,界面也必须模块

化。代码模块化相对比较简单,多利用子VI就是了。但是界面的模块化,在之前的LabVIEW

中是非常的,因为LabVIEW没办法在运行时,把不同的VI的界面拼在一起。是

LabVIEW7.1和8.0的一些新功能最终解决了这个问题。

对程序界面模块化,按一般的思路,第一步就是把每个页面划分成一个独立的模块。这

似乎又回到了我们前文提到过的第一、二个阶段。但有所不同的是,旧版本LabVIEW功

能不全,无法很好的管理被分为模块的页面,而新LabVIEW改进的对这方面的支持。

在LabVIEW7.1中出现了一个新的控件-SubPanel(子面板)。当一个VI运行的时

候,它的SubPanel控件中,可以显示另一个VI的前面板。我们可以利用这个新的控件,

我们可以使用插件框架式程序架构来编写向导型的程序。图1是这种插件框架式程序结构的

示意图。

图1:插件框架式的程序结构

插件框架式程序的实现思路是,把向导的每个页面都分配到一个独立的VI上去,这个

页面上所有的操作,都有这个页面所在的VI完成。图1左上部分的那些VI就是为每个页

面编写的VI。这些VI都被当作插件,在主程序需要的时候被调用显示在主程序上。

图1右下角的VI是主程序的VI。它的界面上主要是一个SubPanel控件,这个控件用

于显示页面VI的界面。主程序在每一步的时候,分别把对应这一步骤页面的VI的界面显

示出来,这样就实现的向导功能。主程序的界面上还有一些公共控件,比如“上一步”“下一

步”这样的按钮,这些按钮在所有步骤中都需要,所以可以放在主框架上,不需要再在每个

页面中重复了。

这样的插件框架式程序在运行时,主VI和插件VI是在同时运行的。

主VI的运行流程大致如下:创建或程序运行时需要的各种-初始化程序

-等待和处理,主要是管理插件。比如在用户按下“下一步”按钮后,主程序负责把当

前的插件移出内存,把对应下一页的VI调入内存,运行,并显示界面。-最后负责销毁

创建的,关闭所有资源,。

插件VI的主要程序结构和主VI一样,采用的是处理结构。它在运行起来以后

执行的流程也和主VI类似:创建或插件运行时需要的各种-初始化程序-

等待和处理,主要是用户在界面上的操作,和一些程序,比如数据处理等等。-销

毁创建的,关闭插件。

虽然SubPanel在LabVIEW7.1中就出现了,但是我当时却并没有在我的程序里采用

上述的设计方案。只是因为当时还有一个棘手的问题没有解决。这个问题就是VI太多了,

不好管理。

向导页面的多个插件VI,他们的功能有很多共同之处。在以前,所有页面都在同一个

主VI中的时候,那些相同的功能可以通过调用同一个子VI来完成。但是,把页面分割

成独立VI,很多情况,我都不得不为每个页面做一整套子VI,他们在每个页面上完

成的功能都类似,但却不能使用同一个子VI。

以处理为例,我写了一套子VI处理页面VI的。但是由于不同的页面可能

会同时在运行,每个页面都有自己的,如果调用同一套处理的子VI,不同页面之

间会相互干扰。

另外,如果想创建一个新的页面,最方便的方法莫过于把一个已有页面的V

文档评论(0)

1亿VIP精品文档

相关文档