2011年11月5日,第二稿
2011年11月11日,补充10.3.3节
2011年11月11日,补充10.3.3节
10.3 在项目中添加VI
在项目的架构完成后,我们还要为该项目添加所需要的一些VI。当然,最首要的就是通常程序中首先运行的VI。在LabVIEW中,它被称为: Top Level VI。它在制作应用程序安装包时也会需要到。
10.3.1 创建 Top Level VI
这个Top Level VI类似于C语言中的main函数,都是被用来说明:这里是整个应用程序的入口。
我们在项目中也需要指定这样一个Top Level VI。这个Top Level VI相当于程序的引导程序,可以被用来给出应用程序的一些简单信息。比如应用程序名称、版本号、设计单位等等相关信息。
其实,在前面我们已经设计过这个Top Level VI,现在将其独立放置在我们的项目模版中,使任何开发者都能够很方便的找到它。
Top Level VI的前面板参见下图。
我们在项目中也需要指定这样一个Top Level VI。这个Top Level VI相当于程序的引导程序,可以被用来给出应用程序的一些简单信息。比如应用程序名称、版本号、设计单位等等相关信息。
其实,在前面我们已经设计过这个Top Level VI,现在将其独立放置在我们的项目模版中,使任何开发者都能够很方便的找到它。
Top Level VI的前面板参见下图。
在这个前面板图中,可以修改、替换其中的图片。设计具有自己独特风格的引导程序前面板。
Top Level VI的程序框图参见下图。
Top Level VI的程序框图参见下图。
采用这种方式可以开发设计风格一致的前面板,避免每个项目都需要重新设计前面板。对于不同的项目仅需要修改相关的文字即可。
10.3.2 添加子VI及自定义控件
我们在Top Level VI中使用了几个子VI和一个自定义控件,现在将它们也添加到项目中。关于它们的具体设计很简单,这里就不讲述了,有兴趣的可以自己打开看看。
现在借助于项目浏览器就可以了解这些子VI和自定义控件(已经新建了一个自定义控件文件夹)的存放位子。
如果你愿意就可以改造这个Top Level VI创建属于自己的Top Level VI。其实也就是替换界面图片和修改文字等简单工作。
现在借助于项目浏览器就可以了解这些子VI和自定义控件(已经新建了一个自定义控件文件夹)的存放位子。
如果你愿意就可以改造这个Top Level VI创建属于自己的Top Level VI。其实也就是替换界面图片和修改文字等简单工作。
现在我们给出目前阶段该项目的全部文件,参见下面的链接。
| labview_1.rar | |
| File Size: | 163 kb |
| File Type: | rar |
注意:这里仅仅是到目前为止的项目全部程序代码,所以我们用_1来标注。后面我们还会陆续给出其它部分的程序代码。
下面我们就来创建项目读写项目文件的路径关系。
下面我们就来创建项目读写项目文件的路径关系。
_10.3.3 添加读取文件的路径VI
_ 如果读者已经对项目管理有了一定的程度的使用经验,你就会发现项目中各子VI的调用是由项目管理器自动链接管理的。假如某个子VI的链接出现问题,完全可以根据项目管理器的提示通过解决冲突或修改依赖关系来得到更正。
事实上,在项目中除了相关子VI的自动链接外,我们还需要读、写某些文件。比如:读INI文件或写Word测试报告文件等。在对这些文件进行读写操作时,因为文件存放位置的不同需要给出相对应的文件路径。正是由于这些文件被分放在不同的文件夹中,所以要求我们必须设计一个读取文件的路径VI。
首先,我们创建一个名字为:Word_INI_Path.vi,放置在我们先前在项目中已经创建的路径文件夹内,参见下图。
事实上,在项目中除了相关子VI的自动链接外,我们还需要读、写某些文件。比如:读INI文件或写Word测试报告文件等。在对这些文件进行读写操作时,因为文件存放位置的不同需要给出相对应的文件路径。正是由于这些文件被分放在不同的文件夹中,所以要求我们必须设计一个读取文件的路径VI。
首先,我们创建一个名字为:Word_INI_Path.vi,放置在我们先前在项目中已经创建的路径文件夹内,参见下图。
_ 下面依据项目中各文件夹之间的相互关系,我们开始设计Word_INI_Path.vi这个VI。首先创建一个新的VI,然后进行以下操作:
1、在前面板上放置一对错误簇控件
2、在程序框图上,放置一个Case结构。将错误簇与Case结构连接在一起
(实质上就是用一个带错误簇的子VI)
3、在Case结构中放置一个“当前VI路径”和多个“拆分路径”函数
因为我们需要到文档文件夹读写文件,所以需要拆分和创建不同的路径。从“当前VI路径”开始拆分。
经过第一个“拆分路径”函数,使路径指向“路径”文件夹
经过第二个“拆分路径”函数,使路径指向“LabVIEW”文件夹
经过第三个“拆分路径”函数,使路径指向“LabVIEW 编程思想”
4、然后再在Case结构中放置一个“创建路径”内置函数,通过“文档”常数将路径指向文档文件夹
5、此后再添加一个Case结构来区分是Word文件还是INI文件,使用枚举控件实现区分选择
6、在文件类型选择Case结构中再添加适当的内置函数,最终实现路径的选择
整个程序参见下图。
1、在前面板上放置一对错误簇控件
2、在程序框图上,放置一个Case结构。将错误簇与Case结构连接在一起
(实质上就是用一个带错误簇的子VI)
3、在Case结构中放置一个“当前VI路径”和多个“拆分路径”函数
因为我们需要到文档文件夹读写文件,所以需要拆分和创建不同的路径。从“当前VI路径”开始拆分。
经过第一个“拆分路径”函数,使路径指向“路径”文件夹
经过第二个“拆分路径”函数,使路径指向“LabVIEW”文件夹
经过第三个“拆分路径”函数,使路径指向“LabVIEW 编程思想”
4、然后再在Case结构中放置一个“创建路径”内置函数,通过“文档”常数将路径指向文档文件夹
5、此后再添加一个Case结构来区分是Word文件还是INI文件,使用枚举控件实现区分选择
6、在文件类型选择Case结构中再添加适当的内置函数,最终实现路径的选择
整个程序参见下图。
_ 这并不是完整的文件路径关系,因为我们知道在LabVIEW开发环境中的路径和生成的应用程序中的路径是不相同的。所以,我们还要对这个VI略做些修改或添加内容。具体结果参见下面的图示。
_ 实际上,如果能够掌握一些路径的调试技能,就可以很容易的确定这两种状态下的路径关系。比如:我们假设有一个Word文件a.doc在Word文件夹中,运行该VI我们就可以看到依据设定已经找到相应的文件,参见下图。
_ 在此状态下,如果你简单打包,就可以验证在运行时下路径关系是否正确(这个VI本人也没有进行打包验证,如果有错误将来会修改)。
另外,我们还实验读取了一个INI文件。当然,我们需要先创建一个INI文件,这个文件用文本编辑工具就可以创建完成。该文件被存放在项目文档的INI文件夹中,具体参见下图所示。
另外,我们还实验读取了一个INI文件。当然,我们需要先创建一个INI文件,这个文件用文本编辑工具就可以创建完成。该文件被存放在项目文档的INI文件夹中,具体参见下图所示。
_ 下面我们在创建一个读INI文件的VI放置在子VI文件夹中。同时,我们修改Top Level VI,让项目信息从INI文件中读出,并呈现在前面板上。这里我们特意将版本号修改为:第2稿。参见下图所示。
_ 由于我们已经给出了全部代码(包括:子VI文件夹中的Read_INI_Golbal.vi),所以某些改动和添加就不一一给出了。
下载链接:参见本节最后部分。
下载链接:参见本节最后部分。
10.3.4 添加动态调用的VI
应该说到目前为止,我们的项目内容依然还没有真正全部完成,比如:Top Level VI运行完成后还需做那些工作,或者说需要导入那些程序运行。
关于这部分我们一般都采用动态调用的方法实现程序流程的控制。所以这里还需要添加动态调用VI及相应的子VI。
由于Top Level VI运行完成后的下一步是:调用主应用程序或者是多个应用程序的不同选择。所以我们采用动态调用的方法,首先我们需要创建一个放置这些应用程序的文件夹,比如:App文件夹。然后,在这个文件夹中放置几个模拟应用程序的VI(Test_1、Test_2、Test_3、Test_4),以便实现程序流程的完全控制。参见下图所示。
关于这部分我们一般都采用动态调用的方法实现程序流程的控制。所以这里还需要添加动态调用VI及相应的子VI。
由于Top Level VI运行完成后的下一步是:调用主应用程序或者是多个应用程序的不同选择。所以我们采用动态调用的方法,首先我们需要创建一个放置这些应用程序的文件夹,比如:App文件夹。然后,在这个文件夹中放置几个模拟应用程序的VI(Test_1、Test_2、Test_3、Test_4),以便实现程序流程的完全控制。参见下图所示。
当然,这里还包括了我们所需要的动态调用VI,Call_Subvi.vi和Call_Subvi_Do.vi在(子VI文件夹中),包括Top Level VI也有了些改变。
由于与第9章中事件驱动的例子相类似,这里就不一一说明了。
现在,我们给出一个基本完整、实用的项目的全部实例代码(经过生成.exe文件)。如果你需要使用就可以在此基础上完善你的项目应用。下载链接:
可以说:这个是最正确的代码,前面那个压缩文件_1在生成.exe文件时会出现问题。
由于与第9章中事件驱动的例子相类似,这里就不一一说明了。
现在,我们给出一个基本完整、实用的项目的全部实例代码(经过生成.exe文件)。如果你需要使用就可以在此基础上完善你的项目应用。下载链接:
可以说:这个是最正确的代码,前面那个压缩文件_1在生成.exe文件时会出现问题。
| labview_.rar | |
| File Size: | 845 kb |
| File Type: | rar |