配色: 字号:
第8章 LabVIEW程序生成规范
2022-12-14 | 阅:  转:  |  分享 
  
第8章 LabVIEW程序生成规范Intelligent Electronics InstituteHuazhong University
of Science & Technology引言作为一种主要面向测试测量领域的程序设计语言,LabVIEW在设计时主要考虑了快捷
、方便,以及能够实现与硬件的完美结合等因素,因此LabVIEW的程序发布异常简便。在程序完成之后,程序员往往希望能够以某种合适的方
式发布这些VI。本章将着重讨论如何以各种方式发布程序。3目录8.1 VI主要发布方式8.2使用程序生成规范8.2.1 源代码发布8
.2.2 独立应用程序发布8.2.3 共享库发布8.2.4 Zip压缩文件发布8.2.5 Windows安装程序发布8.2.6 .
NET互操作程序集发布8.2.7 Web服务(RESTful)发布8.1 VI主要发布方式根据程序员目的的不同,VI的发布方式主要
分为以下七种:源代码发布如果希望发布的VI可以被其他LabVIEW开发人员使用,则需要创建这种规范,主要用于二次开发和合作开发。独
立应用程序发布如果希望未购买LabVIEW开发系统的用户也能运行LabVIEW编写的应用程序,则应该创建独立应用程序。这种规范使得
用户只能运行一个LabVIEW应用程序,而无法查看或编辑LabVIEW代码,在Windows系统中生成我们常见的EXE文件。48.
1 VI主要发布方式共享库发布如果希望使用LabVIEW开发的函数能够和使用其他编程语言的开发人员共享,则需要建立共享库。在Win
dows系统中生成DLL文件,也就是通常使用的动态链接库。Zip压缩文件发布如果需要发布仪器驱动程序、多个源文件或者一个完整的La
bVIEW项目,则可以创建一个Zip文件,将包含文件组织结构的所有项目源文件压缩成Zip包的形式。58.1 VI主要发布方式Win
dows安装程序发布在Windows系统中,如果希望将独立应用程序、共享库或源代码发布给其他用户,则应创建安装程序。在一个安装程序
中可以包含多个独立的应用程序、共享库或源代码发布,并且能够添加许可证、自述文件、版本和公司信息、快捷键、注册表项和NI安装程序等,
这也是最常见的一种发布方式。.NET互操作程序集发布在Windows系统中,如果希望将我们的VI用于Microsoft .NET
Framework,可以使用.NET互操作程序集打包我们的VI,如果使用程序生成规范创建.NET互操作程序集则必须安装Micros
oft .NET Framework 2.0或更高的版本。68.1 VI主要发布方式Web服务(RESTful)发布如果需要控制一
台远程计算机上运行的程序,则应在运行程序的计算机上开设一个Web服务,通过Web服务我们可以和远程计算机进行数据交流和控制远程计算
机VI运行。 LabVIEW将以上七种方式称为“程序生成规范”,包括了VI创建所需的全部设置,例如需包含的文件、要创建的目录
和对VI目录的设置,并统一由“项目浏览器”管理。78.2使用程序生成规范本节将使用一个实例说明使用以上程序生成规范的具体步骤,以“
飞机机翼压力测试系统”为例,该系统主要用来测试飞机起飞阶段机翼的压力分布情况。系统的项目源文件组织方式如右图所示88.2使用程序生
成规范项目源文件各部分主要作用开机画面.vi启动画面,动态调用“飞机机翼压力测试系统.vi”程序Config.ini用以存储用户对
系统的配置信息飞机机翼压力测试系统.vi主程序VISubVI分类放置系统的子VI98.2使用程序生成规范Report默认的测试报表
生成目录,放置由系统自动生成的Excel报表Picture放置系统照片和其他图像文件Help放置帮助文件,如开发方网页链接、系统使
用说明和帮助,以及版本信息等Drivers放置仪器驱动,如专用传感器驱动、示波器驱动等,这些驱动通常以共享库方式提供,如图中的ch
r6320x_32.dll文件108.2使用程序生成规范Database放置数据库文件,如Microsoft Access数据库文
件和数据链接文件等Data用于存放原始采集的数据文件,以自定义的格式存储118.2使用程序生成规范新建程序生成规范在项目浏览器窗口
中,右击“程序生成规范”,选择“新建”选项,分别对应着以上7种程序生成规范128.2.1 源代码发布源代码发布可用来把一系列源文件
打包,包括LabVIEW安装目录的库文件,这些文件构成一个完整的系统供其他开发人员在LabVIEW中使用其他的开发人员可以编辑发布
的源代码,可以通过两种方式实现保护在所创建的源代码发布中对某些特定的VI设置密码保护从这些特定的VI中把程序框图源代码删除,因为这
样不仅可缩小文件,还可阻止其他人改变源代码138.2.1 源代码发布配置源代码发布在程序生成规范新建选项中选择“源代码发布”在弹出
的“我的源代码发布 属性”对话框中配置源代码发布相关参数“信息”页设置程序生成规范名称、目标目录和程序生成规范说明,程序生成规范名
称将在项目浏览器窗口中的程序生成规范下显示,同一个项目中,程序生成规范内的文件名称必须是唯一的148.2.1 源代码发布“源文件”
页设置在项目文件目录树中始终包括或者始终不包括的项158.2.1 源代码发布“目标”页配置目标设置和向源代码发布添加目标目录。如果
希望保持源代码的层次结构,在目录选项里选择“保留磁盘层次结构”168.2.1 源代码发布“源文件设置”页编辑源代码发布中文件的目标
和属性,若在“目标”页选择保留磁盘层次结构,此页保持默认即可178.2.1 源代码发布“高级”页选择是否生成程序生成记录文件“附加
排除项”页设置是否包括LabVIEW安装目录下的子VI,是否需要将“自定义控件”的源和实例断开连接,以及是否删除多态VI中没有使用
的VI实例188.2.1 源代码发布“预览”页预览当前配置下的源代码发布,查看生成的结果,单击“确定”按钮可以保存当前配置,单击“
生成”按钮就可以创建源代码发布198.2.2 独立应用程序发布独立应用程序可为其他用户提供VI的可执行版本,允许用户运行VI而无须
安装LabVIEW开发系统。Windows平台的应用程序以.exe为扩展名,而Mac OS平台的应用程序以.app为扩展名。208
.2.2 独立应用程序发布配置独立应用程序发布在程序生成规范新建选项中选择“应用程序(EXE)”在弹出的“我的应用程序 属性”对话
框中配置源代码发布相关参数218.2.2 独立应用程序发布“源文件”页设置当前项目的启动VI、始终包括的VI和文件228.2.2
独立应用程序发布配置“始终包括” 在“始终包括”选项中,只需要把动态调用的VI放入即可,其他非动态调用的VI并不需要加入。
例如,在本例中,“开机画面.vi”调用了“飞机机翼压力测试系统.vi”,所以将“开机画面.vi”作为启动VI,而将后者作为动
态VI调用。238.2.2 独立应用程序发布“目标”页设置生成的应用程序的目录结构248.2.2 独立应用程序发布配置应用程序目录
结构 由于生成的独立应用程序并不能维持源文件的文件组织方式,所以必须手动创建目录。 如本例中的Report文件夹等,就
需要在该步骤中重新定义。258.2.2 独立应用程序发布“源文件设置”页对各个VI和文件进行设置268.2.2 独立应用程序发布配
置VI和文件 对VI和文件的设置,包括将文件放置的目标文件夹,如需要将Report文件指定放入到Report目录中,就需要R
eport文件夹点选“为包含的所有项设置目标”,选择在“目标”页中创建的Report目录。 由于SubVI和Drivers内
文件为程序非动态调用子VI,所以目标设置为与调用方相同即可。278.2.2 独立应用程序发布“图标”页配置当前应用程序的图标(.i
co文件)“高级”页配置一些特殊的选项,如是否允许ActiveX、是否允许MathScript,以及是否允许调试等“附加排除项”页
设置是否需要将“自定义控件”的源和实例断开连接及是否删除多态VI中没有使用的VI实例288.2.2 独立应用程序发布“版本信息”页
配置版本号和其它应用程序信息“Windows安全”页配置运行独立应用程序的Windows操作系统的安全设置“共享变量部署”页指定运
行时需部署的共享变量所在的库“运行时语言”页设置LabVIEW运行引擎的语言,如系统默认菜单项的语言等,本例中选择“简体中文”29
8.2.2 独立应用程序发布“预览”页预览当前配置下生成的独立应用程序308.2.3 共享库发布共享库用于通过文本编程语言调用VI
,如NI LabWindows/CVI、Microsoft Visual C++和Microsoft Visual Basic等,
它为非LabVIEW编程语言提供了访问由LabVIEW开发的代码的方式Windows共享库以.Dll为扩展名,Mac OS共享库以
.framework为扩展名,Linux共享库以.so为扩展名318.2.3 共享库发布Windows共享库的创建共享库通常以某个
函数为源文件,极少涉及显示面板创建简单应用程序创建一个只具备两个数加、减、乘、除四种运算过程的运算器定义输入/输出连接端子328.
2.3 共享库发布配置共享库发布在程序生成规范新建选项中选择“共享库(DLL)”在弹出的“我的DLL 属性”对话框中配置源代码发布
相关参数338.2.3 共享库发布“我的DLL 属性”配置大部分的设置与创建独立应用程序的设置步骤相同,这里不再一一指出。最核心的
部分是VI原型定义348.2.3 共享库发布定义VI原型在“源文件”页中选择需要导出的函数将弹出“定义VI原型”对话框358.2.
3 共享库发布“定义VI原型”配置 当定义了VI的端口后,LabVIEW会自动识别各个端口的数据类型,并创建相应的接口。
上图中保持默认值不变,当然也可以设置X和Y以指针(或者是地址)方式传递,而不以值方式传递。 此外,一个DLL文件中也可以
包含多个函数。368.2.4 Zip压缩文件发布压缩文件用于以单个可移植文件的形式发布多个文件或整套LabVIEW项目一个Zip文
件包括可发送给用户使用的已经压缩了的多个文件,可用于把驱动程序文件或已选定的源代码文件发给其他LabVIEW用户使用378.2.4
Zip压缩文件发布配置Zip压缩文件发布在程序生成规范新建选项中选择“Zip文件”在弹出的“我的Zip文件 属性”对话框中配置源
代码发布相关参数“Zip 信息”页设置该配置的名称、目标文件夹和注释388.2.4 Zip压缩文件发布“源文件”页设置需要打包的文
件,程序员可以打包整个或部分的项目文件,本例中选择整个项目文件398.2.4 Zip压缩文件发布“Zip文件结构”页设置指定用于Z
ip文件生成的文件结构,一般使用默认即使用共同路径“预览”页预览当前配置下生成的Zip文件,如果不正确就可以实时更改408.2.4
Zip压缩文件发布创建Zip压缩文件单击“确定”按钮可以保存当前配置,单击“生成”按钮就可以创建Zip压缩文件了418.2.5
Windows安装程序发布Windows安装程序用于发布独立应用程序、共享库和通过应用程序生成器创建的源代码发布等创建Window
s安装程序必须首先创建独立应用程序、共享库或源代码发布428.2.5 Windows安装程序发布配置Windows安装程序发布在程
序生成规范新建选项中选择“安装程序”在弹出的“我的安装程序 属性”对话框中配置源代码发布相关参数438.2.5 Windows安装
程序发布“源文件”页配置安装程序的源文件448.2.5 Windows安装程序发布配置源文件 用于安装的源文件本例选择已经创
建完毕的独立应用程序 在目标视图框中有各种各样预定义的目录,程序员可以选择希望应用程序安装到的目录,本例选择[Program
FilesFolder]458.2.5 Windows安装程序发布“源文件设置”页设置各个文件的属性,将主文件“应用程序.exe”
设置为“重要”,并且将LabVIEW生成的aliases文件隐藏468.2.5 Windows安装程序发布“快捷方式”页设置应用程
序快捷方式,本例设定了两个:开始菜单快捷方式和桌面快捷方式478.2.5 Windows安装程序发布“附加安装程序”页添加附加的安
装程序,如LabVIEW的运行引擎、NI的仪器驱动等488.2.5 Windows安装程序发布“对话框信息”页设置安装对话框信息,
如选择安装时的语言、对话框内容等498.2.5 Windows安装程序发布“注册表”页添加注册表信息,本例中需要添加License
注册表项,用以存储用户注册的注册码的密文508.2.5 Windows安装程序发布“硬件配置”页加载NI MAX的配置文件,本例中
并没有使用到这一项,因此不用配置518.2.5 Windows安装程序发布“高级”页设置一些高级选项,如安装自定义错误代码文件、操
作系统要求和安装完后执行的EXE程序或命令等528.2.6 .NET互操作程序集发布.NET互操作程序集生成规范将LabVIEW项
目中的VI以.NET互操作程序集的形式生成和发布,这样就可以在.NET的开发平台上调用labview的程序将VI编译成.NET互操
作程序集发布可以解决软件工程师在托管代码中调用非托管代码的难题538.2.6 .NET互操作程序集发布配置.NET互操作程序集发布
简单例程,定义一个加法运算器在程序生成规范新建选项中选择“.NET互操作程序集”在弹出的“我的互操作程序集 属性”对话框中配置源代
码发布相关参数548.2.6 .NET互操作程序集发布配置“我的互操作程序集 属性”558.2.6 .NET互操作程序集发布配置“
定义VI原型”在“源文件”页中选择需要导出的函数将弹出“定义VI原型”对话框,当定义了VI的端口后,LabVIEW会自动识别各个端
口的数据类型,并创建相应的接口568.2.7 Web服务(RESTful)发布在LabVIEW中,可将VI作为服务器端的Web服务
发布,LabVIEW Web服务用于在网络上创建和部署Web应用,使HTTP客户端可访问这些应用将LabVIEW项目中的VI作为W
eb服务发布,必须首先激活LabVIEW Web服务器上的功能选择“工具?选项”,打开选项对话框,选择“Web服务器”在常规部分勾
选“启用Web服务器”激活Web服务器上的Web服务578.2.7 Web服务(RESTful)发布激活LabVIEW Web服务
器功能588.2.7 Web服务(RESTful)发布LabVIEW Web服务包括Web方法VI、Web方法VI依赖关系和静态文
件创建Web服务准备LabVIEW项目和Web方法VI598.2.7 Web服务(RESTful)发布配置Web服务发布在程序生成
规范新建选项中选择“Web服务 (RESTful)”在弹出的“我的Web服务 属性”对话框中配置源代码发布相关参数608.2.7
Web服务(RESTful)发布“信息”页在服务名称文本框中输入mywebservice。因为服务名称是URL的一部分,HTTP客
户端将使用该URL访问Web服务,所以服务名称必须符合标准URL规范618.2.7 Web服务(RESTful)发布“源文件”页把
Web服务VI(mul.vi)添加到服务VI,会弹出“配置RESTful VI”对话框,其中可以在输出格式下拉菜单中选择Web服务
返回的数据类型,使用默认即可628.2.7 Web服务(RESTful)发布“URL映射”页设置用于指定一个URL,允许用户发送和
接收Web服务中Web方法VI的数据638.2.7 Web服务(RESTful)发布配置URL映射 将VI添加至源文件页的服
务VI列表框时,LabVIEW自动为Web方法VI创建了一个默认URL映射 该例中,根据变量创建顺序的前后,默认URL映射为
/mul/:x/:y或/mul/:y/:x 如上述URL映射未显示或显示的URL不是上例所示,可手动创建一个URL映射648
.2.7 Web服务(RESTful)发布“服务设定”页设置Web服务需要发布的Web服务器,其中Web服务器的服务器标签和HTT
P端口可以在“工具?选项”的Web服务器中设置。其余选项均使用默认设置即可,点击生成,即可完成Web服务的生成658.2.7 We
b服务(RESTful)发布部署Web服务右键单击项目浏览器窗口程序生成规范下的我的Web服务,从快捷菜单中选择部署即可完成Web
服务创建 打开Web浏览器,输入下列自定义浏览URL:http://localhost/mywebservice/mul/2
/3。 URL由Web服务器名称、Web服务名称和URL映射组成。值2和3对应于在URL映射中指定的x和y,出现在mul.v
i连线板上。URL元素/mul是在URL映射页指定的固定字符串。提交URL,该URL将发送HTTP请求以调用Web方法VI。Web
方法VI mul.vi执行并按照之前指定的输出格式返回值result。在该例中,值是6。66本章总结 本章
讨论了LabVIEW应用程序规范的具体内容,但是有些高级功能或属性节点并不能在LabVIEW运行引擎中运行,程序员可以在程序设计中
避免使用这些方法。 此外,在程序中难免会涉及路径的问题,值得注意的是,源代码中采用的绝对路径在独立应用程序
中是无法正确使用的,因此应该尽量避免在程序中使用绝对路径,而使用相对路径。67习题8-1 某程序的主VI拥有若干个子VI,并且无
动态调用方式,它们存储在同一个文件夹中。此外,该文件夹还有一些TXT文档和其他的VI。由于VI众多,很难判断该主VI调用了哪些子V
I。如何使用LabVIEW应用程序生成规范将该主VI及其调用的子VI提取出来放入另一个文件夹中呢?8-2 编写一个VI,用来调用8.2.3节创建的共享库文件;如果8.2.3节中的输出不是簇,而是一个数组,在创建共享库时该如何定义VI的原型呢?68习题8-3 编写一个“用户管理”程序,界面如图所示。前面板上有“增加”(快捷键是F6)、“修改”(快捷键是F7)、“删除”(快捷键是F8)和“退出”(快捷键是ESC)四个按钮69习题功能如下:(1)程序实现用户的管理过程,用于增加、修改和删除用户。(2)用户的名称和密码存储在TXT文件中,文件的格式由程序员自定义。(3)单击“增加”按钮后,弹出如图增加用户对话框,单击“确定”后将其数据存入TXT文件中,否则不保存。(4)单击“修改”按钮后,弹出修改用户名对话框,单击“确定”后需要将TXT文件中对应的数据修改。(5)单击“删除”按钮后,删除TXT文件中的对应数据。(6)在“开发模式”中,单击“退出”按钮则停止程序的执行,但是不退出LabVIEW;在生成“独立应用程序后”,单击“退出”按钮则退出应用程序,而不仅仅是停止程序的运行。(7)参考本章的内容将该程序生成为独立应用程序。70
献花(0)
+1
(本文系籽油荃面原创)