10年Labview编程经验
我和LabVIEW——一个NI工程师十年的编程

我和LabVIEW——一个NI工程师十年的编程在LabVIEW 中使用常量定义如下图所示,在C语言里,使用#define来定义一个常数是非常基本的用法。
直接使用数字,时间一长,就不只到这个数字是哪来的了。
而且,这种方法也便于修改在程序中多处使用的常量的值。
在C++一般是用const来达到同样的目的。
图1:C 语言中的常量定义我以前在LabVIEW中编程,还从没注意过这个问题。
一般哪里要用一个常数,直接就放一个constant在那里。
如图2。
图2:在LabVIEW 中使用常量的最普遍方法以前编写的LabVIEW程序都比较小,一般是一个人开发的,所以这样写,也没有太大的麻烦。
现在编写的程序规模越来越大,最近做的一个项目,VI数量已经上千了,有4个人参与编程。
程序规模大了,不规范就很难维护。
所以开始考虑这个问题。
但是LabVIEW里面没有类似的功能,不知道为什么以前没人提意见?下面提出几种不算太完美,但有所进步的解决方案。
一种简单的替代方法是使用type define control,自定义一个Ring control。
关于Type Def 的详细信息,可以参考《用户自定义控件中Control, Type Def. 和Strict Type Def. 的区别》。
把要使用的常数作为Ring的值,给他个有意义的文字标签。
在需要时用常数的地方,把这个带type define 的ring常数放上去,而不是直接放数值常量。
这样就解决了上面提到的一个问题:可以有自带的文字说明。
如图3所示。
图3:利用Type Def Ring 的解决方案但是这样做还是有很多缺陷。
首先是统一修改数值的问题。
在自定义Ring中修改某一项的值,相关的常量不会跟着一起更新;还有一个缺陷是Ring control 不支持多个标签是用同一数值;另外Ring control 也没办法像 C 语言中一样使用表达式定义值。
一个改进版的解决方案是使用Enum Type Def 把所有常量名字列出来,再写一个VI 用于得到常量的真实值,如图4所示。
LabVIEW编程经验若干则

最近在编写程序时遇到一个错误,检查了很久,终于发现了原因,为了下次不再犯同样的错误,将这个现象记录下来,大家可以引以为戒。
大家都知道,数据类型有整型和浮点型。
在串口或者是USB通信中,经常需要将数据强制转换成十六进制数据。
笔者在最初写程序时没有注意数据类型,将十进制数据设置成双精度实数,强制转换后一直得不到想要的结果,后来将其改为无符号16位整型,结果是正确的。
经过对比发现,双精度实数和无符号16位整型,即使十进制数值相等,强制转换成十六进制后结果相差很大,如图所示。
在labview中,事件结构是一个比较具有特色的一个结构,使用事件结构能够非常容易地实现其他程序运行结构不能实现的功能。
一些labview的参考书告诉学习的人一般事件结构外面要套一个while循环,可是有的时候会发生这样一种情况:在事件结构外面套上while循环后发现点击控制while循环的“退出”按钮没有用。
使用事件结构时,不要忽略事件结构左上角的连线端子。
这个是“超时接线端”,是指事件结构等待事件发生的时间,以毫秒为单位,默认值为–1。
如果while循环里的事件结构没有设置超时接线端,那么系统就默认为-1,事件结构一直等待事件的发生。
这个时候程序就停止在等待事件发生,另外的操作都没有用。
所以如果想要通过控制while循环的结束来停止程序,可行的做法是:设置超时时间,如10ms,然后增加一个“超时”的事件分支。
labview中,在字符串控件上单击鼠标右键,会发现有几种显示方式:正常显示、/代码显示、密码显示和十六进制显示。
正常显示和密码显示容易理解,在这里不作解释。
笔者就用labview通过串口和USB与下位机通信时得到的一点心得与大家分享。
用串口或USB和上位机进行通信时传输的都是二进制代码,因此上位机也要将二进制数发送给串口或者是USB。
在labview中,如果将输入控件表示成正常显示,将显示控件表示成十六进制显示,当输入A时,显示的是A对应的ASCII码:41。
LABView2010版讲义-1

LabVIEW2010版讲义宋湛华(Songzhanhua@)一、基本概念LabVIEW:Laboratory Virtual Instrument Engineering Workbench,一种用图标代替文本行创建应用程序的图形化编程语言。
LabVIEW用图标表示函数,用连线表示数据流向。
即用数据流编程方式,在程序框图中节点之间的数据流向决定了程序的执行顺序。
而传统的文本编程语言是根据语句和指令的先后顺序决定程序的执行顺序。
以下通过一个简单的示例表示图形化编程的过程。
1.启动,进入LabVIEW的界面;2.选择基于模板的VI(VI from Template),双击“基于模板/模拟仿真/生成和显示”(Generate and Display),便会产生一个基于该模板的VI(Virtual Instrument);3.该VI包括前面板和程序框图,在前面板上已经有了两个控件:一个图形显示控件和一个停止按钮,在程序框图中有相应控件的图标,添加的仿真信号发生函数(函数/信号处理/波形生成/仿真信号)以及相互间的连线。
按下Ctrl+E,可以相互切换画面;双击函数图标,可修改函数属性。
4.单击菜单条的操作/运行(或“运行”图标),可看到该VI已经可以运行并显示波形,单击STOP按钮(或“中止执行”图标)可退出程序。
5.增加幅度控制:●右击前面板,将显示控件面板。
点击控件/新式/数值/旋钮控件,用鼠标移至前面板,此时在程序框图上自动生成该控件的图标;●在程序框图中下拉仿真信号发生函数图标的底端,直至出现幅直值(Amplitude)端子;●连接旋钮图标与幅度端子。
6.保存并运行。
小结:●完整的VI由两部分组成:前面板和程序框图,右击前面板可产生控件面板,选择控件,右击程序框图可产生函数面板,选择函数。
●前面板一般由控件构成,可以根据需要从控件面板上选择相应的控件,组成虚拟仪器的面板;函数框图内将自动出现控件的图标,添加必要的函数和连线,即可形成可运行的程序。
LabVIEW编程中的最佳实践与代码优化技巧

LabVIEW编程中的最佳实践与代码优化技巧在LabVIEW编程中,遵循最佳实践和采用代码优化技巧可以大大提高程序的性能、可读性和可维护性。
本文将介绍一些常用的最佳实践和代码优化技巧,帮助开发者编写高质量的LabVIEW代码。
一、变量初始化和扩展性设计在LabVIEW中,变量的初始化非常重要,可以避免因未初始化变量而引起的错误。
对于有多个入口的程序,可以在开始处初始化变量,保证其值的合理性。
此外,扩展性设计也是LabVIEW编程中需要考虑的因素之一。
通过建立适当的结构和架构,可以使程序更加模块化、可扩展和可重用。
二、适当使用索引和循环结构在处理数组和矩阵等数据结构时,适当使用索引和循环结构可以简化代码并提高程序性能。
比如,使用索引来遍历数组元素,而不是使用多个扩展的线性连接器。
三、合理使用数据流和数据类型LabVIEW是一种数据流编程语言,充分利用数据流可以提供更清晰的程序逻辑和更直观的代码结构。
适当使用数据类型也可以提高程序的可读性和可维护性。
LabVIEW提供了很多内置数据类型,如整数、浮点数、字符串等,根据具体需求选择合适的数据类型是很重要的。
四、优化循环和条件结构在LabVIEW编程中,循环结构和条件结构是常用的控制结构。
优化循环可以提高程序的执行效率。
比如,使用“批处理”方式处理循环中的数据,而不是逐个处理。
优化条件结构可以消除冗余的条件判断,以减少程序执行时的开销。
五、适当使用并行编程技术LabVIEW提供了丰富的并行编程技术,如多线程、并行循环等。
适当使用并行编程技术可以有效利用多核处理器的性能,提高程序的吞吐量和响应速度。
但要注意合理控制并行度,避免过多的线程竞争和资源冲突。
六、代码注释和文档编写LabVIEW编程中,适当的代码注释和文档编写可以提高代码的可读性和可维护性。
在代码中添加注释,解释代码逻辑和功能,让其他开发者能够更容易理解和修改代码。
编写详细的文档,包括程序设计、功能特性和使用说明等,可以帮助使用者更好地了解和使用程序。
LabVIEW在工程应用中的编程技巧

LabVIEW在工程应用中的编程技巧LabVIEW是一种基于图形化编程的开发环境,广泛应用于科学、工程和控制系统等领域。
在工程实践中,合理的编程技巧可以提高程序的效率和可维护性。
本文将介绍一些使用LabVIEW进行工程应用时的编程技巧。
一、良好的命名规范良好的命名规范是编程的基础,对于程序的可读性和可维护性至关重要。
在LabVIEW中,命名规范包括VI名称、控件和指示器的命名等。
1. VI名称:VI(Virtual Instrument)是LabVIEW的基本单元,给VI命名时应使用具有描述性的名称,能够准确反映其功能和用途。
2. 控件和指示器的命名:在创建用户界面时,应为控件和指示器选择具有描述性的名称,以便其他人能够快速理解其功能和作用。
二、合理使用子VI子VI是将常用的代码块封装成独立的模块,便于重复使用,提高代码的可维护性和可重用性。
通过合理使用子VI,可以将复杂的程序分解为简单的模块,使程序结构更加清晰明了。
同时,子VI也方便多人协同开发,不同的开发者可以负责不同的模块,并可在不同的项目中复用。
三、利用LabVIEW提供的工具箱LabVIEW提供了丰富的工具箱,包括信号处理、控制系统、图像处理等功能。
合理利用这些工具箱,可以节省开发时间,提高编程效率。
1. 信号处理工具箱:在信号处理方面,LabVIEW提供了多种滤波器、傅里叶变换等函数和工具。
通过使用这些工具,可以方便地进行信号处理和分析。
2. 控制系统工具箱:LabVIEW提供了各种控制算法和工具,包括PID控制、系统辨识等。
在控制系统设计中,合理利用这些工具可以简化程序的实现和调试过程。
3. 图像处理工具箱:LabVIEW对于图像处理领域也提供了强大的支持,例如图像滤波、边缘检测等功能。
这些工具可以应用于计算机视觉、图像识别等项目中。
四、使用合适的数据结构和数据流程在LabVIEW中,数据流图是程序设计的重要组成部分。
合理设计数据结构和数据流程可以提高程序的可读性和可维护性。
LABVIEW开发技巧

LABVIEW开发技巧写好LabVIEW程序不可不知的利器(一):模块化功能VI对于一般的初学者,无论是否有程序基础,LabVIEW是个相当容易入门的程序语言。
因为LabVIEW图形化以及资料流的概念,相对于文字叙述的程序语言较容易理解。
也正因如此,虽然初学者在刚开始接触LabVIEW时,可以非常快速的使用内建的Function或VI来写一些小程序,但一遇到程序需要增加较多功能时,程序往往越写越庞大而复杂,程序码杂乱无章,图形化此时反而没有得到较多的好处。
这也是导致一般人对于LabVIEW的印象是很容易上手,但只能写一些小程序。
其实只要善用SubVI将程序功能模块化,以及选择适当的程序架构,无论多复杂的程序也能轻松地完成。
上图是一个红绿灯的小程序,其功能是一开始红灯先亮2秒,接着换黄灯亮1秒,最后再换绿灯亮3秒。
最直觉的写法当然就是用Sequence轮流让三个灯亮起且分别等待不同的时间,而其中因为要将前一个灯关掉,所以会用到LocalVariable,如下图。
这种直觉式的写法非常简单,可以在短时间内完成程序,初学者也较常使用这种思维来写程序。
但这样的写法存在着一些缺陷,例如当使用者按下Stop后,需等待程序完整跑完一个循环才会停止,而不能实时将程序停止。
这也是使用Sequence当作程序架构的缺点,当Sequence执行过程中发生Error时,并没有办法直接跳出Sequence 来解决Error或是将程序停止。
而且程序里面大部分的工作是WaitTime,如果要让这个程序在同个循环中执行其他功能会非常难写,因为循环的更新时间是6秒。
在LabVIEW里面,建议不要将循环时间设的太长或太短。
时间太长的话,按键的反应会非常不灵敏;太短的话,则会比较占CPU资源。
一般只要人眼无法辨识人机界面的更新即可,通常将循环更新时间设为约100ms。
除非程序码执行的时间超过100ms(通常是卡在硬件通讯时间),可以再设长一点。
labview2010经典基础教程完整

labview2010经典基础教程完整第一讲:认识Labview1.1 Labview 简介在开始菜单里找见NI Labview7.1 点击打开,会出现如下界面:从File>>New VI 或者从右半部分中的New>>Blank VI 都可以打开如下界面:上图中前图是虚拟仪器的前面板,是用户使用的人机界面,后面的是程序框图界面(即后面板)。
在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。
这些模板集中反映了该软件的功能与特征。
下面我们来大致浏览一下。
工具模板(T ools Palette)如果该模板没有出现,则可以在Windows菜单下选择Show ToolsPalette命令以显示该模板。
当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。
当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。
下面的两个模板是多层的,其中每一个子模板下还包括多个对象。
控制模板(Control Palette)Array注意:只有打开前面板时才能调用该模板该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。
每个图标代表一类子模板。
如果控制模板不显示,可以用Windows菜单的Show ControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
控制模板如右图所示,它包括如下所示的一些子模板。
子模板中包括的对象,我们在功能中用文字简要介绍。
101112131415功能模板(Functions Palette)现功能模板。
功能模板是创建流程图程序的工具。
该模板上的每一个顶层图标都表示一个子模板。
若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。
LabVIEW编程技巧与最佳实践

LabVIEW编程技巧与最佳实践LabVIEW是一种广泛应用于工程领域的可视化编程语言,它的特点是通过图形化的编程界面进行程序设计。
在使用LabVIEW进行编程时,我们需要掌握一些技巧和遵循最佳实践,以提高程序的效率、可读性和可维护性。
本文将介绍一些LabVIEW编程的技巧和最佳实践,帮助读者更好地应用LabVIEW进行工程项目开发。
I. 命名规范在LabVIEW程序中,良好的命名规范是非常重要的,它能够使得程序代码更具可读性和易于理解。
以下是一些建议的命名规范:1. 控件和指示器:使用有意义的名称来标识控件和指示器,例如使用“按钮”作为命名,而不是默认的“Button1”。
2. VI(Virtual Instrument):给VI命名时,应使用能够准确描述功能的名称,避免使用过于简单或含糊不清的命名。
同时,还应注意使用合适的前缀来说明其功能,例如“Read_file”、“Write_data”等。
3. 数据类型:对于数据类型的命名,应使用能够表达其含义或用途的名称。
例如,对于包含温度数据的变量,可以使用“temperature”作为名称。
II. 数据流的管理在LabVIEW中,数据流是程序中的核心,良好的数据流管理可以使程序更清晰明了、易于维护。
以下是一些数据流管理的技巧:1. 数据线的走向:在连接节点时,保持数据线的整洁有序。
可以使用直线、折线等方式来使数据线的走向更加清晰。
2. 控制数据线流向:使用Bundle和Unbundle节点来管理和传递复合数据结构,而不是直接将数据线连接到复合结构的元素。
III. 错误处理良好的错误处理是编程中的重要一环,以下是一些错误处理的最佳实践:1. 错误码的使用:使用良好的错误码来标识不同类型的错误,以便于程序在发生错误时进行合适的响应。
2. 异常处理:使用异常处理来捕获和处理可能发生的异常情况,以保证程序的稳定性和可靠性。
IV. 程序调试与优化1. debug模式:在进行程序开发时,使用debug模式来逐步调试程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
当我开始在键盘上敲打出这句话的时候,我已经使用LabVIEW 7 年了。
7 年的时间,就算天赋平平也可以积攒下一箩筐可供参考的经验了。
所以我打算利用今后的闲暇时间写一些这方面的东西,既可以同大家交流,也是作为自己这七年工作的总结。
还是在上大学的时候,有一次老师让编写一段软件,用来模拟一个控制系统:给它一个激励信号,然后显示出它的输出信号。
那时我就想过,可以把每一个简单的传递函数都做成一个个小方块,使用的时候可以选择需要的函数模块,用线把它们连起来,这样就可以方便地搭建出各种复杂系统。
后来,我第一次看到别人给我演示的LabVIEW编程,就是把一些小方块用线连起来,完成了一段程序。
我当时就感觉到,这和我曾经有过的想法多么相似啊。
一种亲切感油然而生,从此我对LabVIEW的喜爱就一直胜过其他的编程语言。
LabVIEW 的第一个版本发布于1986年,是在Macintosh 机上实现的,后来才移植到了PC机上,并且LabVIEW 从未放弃过对跨平台的支持。
这也给LabVIEW 带来了一些麻烦。
最明显的就是LabVIEW开发环境的界面风格。
它总是与一般的Windows 应用程序有些格格不入:面板是深灰色的,按键钮是看起来别别扭扭的3D 模样。
还有一些可能不太容易发现:比如对于整数的存储,LabVIEW即便是运行在x86系统上,采用的也是高地址位存高位数据(big-ending)。
这与我们习惯了的x86 CPU使用的格式正相反,这往往给编写存取二进制文件带来了不多不少的麻烦。
我接触过的最早的LabVIEW版本是4.0版,发布包是一个装有十几张三寸软盘的大盒子。
安装的时候要按顺序把软盘一个一个塞到计算机里。
尽管当时LabVIEW的界面不是很好看,但我还是非常喜欢它。
真方便呐!比如说要画一个开关,用LabVIEW 一拖就行了。
如果要自己动手用C 语言设计一个好看的开关,,那得费多少时间啊!我尤其喜欢它通过连线来编程的方式,尽管很多熟悉了文本编程语言的人刚开始时会对这种图形化编程方式非常不适应。
从 4.0 到现在的8.2,LabVIEW 的一些技术革新给我留下了非常深的印象。
比如说LabVIEW 5 中实现了多线程运行; LabVIEW 6 里漂亮的3D 控件,和对事件响应的支持;LabVIEW 7 中的Express VI 以及LabVIEW 8 中的工程库。
这些新特性都已成为了现在LabVIEW 版本中富有特色并不可缺少的一部分了。
我对使用LabVIEW 编程的认识在这些年里经历了不少转变。
刚开始接触LabVIEW 的时候,第一印象就是觉得这东西编程序比 C 语言简单多了,尤其在设计界面时确实方便简易。
LabVIEW 是一种真正意义上的图形化编程语言。
与文本编程语言,如C、Basic 等相比,它在编程过程中有更详细的提示信息,如函数的功能、参数类型等等,程序员再不需要去记忆这些枯燥的信息了。
编写风格良好的图形程序代码要比文本代码更加清晰直观,便于阅读。
刚开始用LabVIEW 编程时,我连一本相关的书籍都没读过,差不多完全靠自己摸索。
当时,市面上几乎没有有关LabVIEW 的中文书籍,而阅读英文资料又感觉得太累。
但是,靠自己摸索的方法也有好处,最明显的就是有成就感:自己琢磨着解决了一个问题,比模仿别人的方法做更令人兴奋。
再者,他人的方案并不一定是最佳的,自己独自思索就不至于被他人的方案局限住思路。
当然,我不会满足于只用LabVIEW 编写一些简单的程序。
我还希望能够用它来编写大型的软件,并且提高自己的开发效率。
这时,自己的编程水平有一个质的提高,不阅读相关的书籍资料就不行了。
有些问题,不读书,自己可能永远都得不到最佳的答案。
同样,有些LabVIEW 的功能,如果不阅读原始资料,自己也许永远都掌握不了。
于是,我把能得到的LabVIEW 的中高级教程都看了一遍。
因为自己有了一定的基础,我就可以在读书的过程中反思自己以前的编程方法是否合理,高效。
我觉得最好的LabVIEW 教程还是NI自己编写的LabVIEW 中高级教程。
但书本中一般原理讲得多,具体的编程技巧涉及得少,所以还必须大量阅读别人的代码,才能学习到更多更好的编程方法。
随着时间的流逝,我慢慢地产生了LabVIEW 应当进一步改善的想法。
作为一名忠实的LabVIEW 语言的使用者,我衷心地期望着LabVIEW 在日后也可以成为一种被广为使用的通用编程语言,能够在更广泛的领域与C,Java等争得一席之地。
LabVIEW 虽然有它独特的优势,但其不足之处也很明显。
我在编程过程中就曾感觉到它很多的使用不方便之处。
下一步,我追求的目标就是能尽自己所能,对LabVIEW 作一些改进和完善,使它更适应于通用编程之用。
如何学习LabVIEW根据我自己的观察,学习LabVIEW一般有以下三种方式:系统型学习方法、探索型学习方法和目标驱动型学习方法。
这三种方法之间并不矛盾,可以在不同的时段使用不同的方法。
每个人可以根据自己的个性特点和所处环境选择一个适合自己的学习方案。
系统型学习方案是传统的学习方法,学生学习多是按此方法。
它是指按照别人制定好的学习方案一步一步学习掌握一门知识。
学习效果如何,主要取决于教师和教材的水平。
若选此方案学习LabVIEW,最高效的方法莫过于参加NI公司的LabVIEW培训课程。
基本上,完全没接触过LabVIEW的学员可以在一星期的时间内达到编写简单程序的程度。
此外,现在很多大学都开有LabVIEW课程,方便了在校生学习。
自学也可以采用此方案。
找一本教程类的书籍,按照书中指导一步一步学习。
教程类的书籍应当侧重于解释LabVIEW的编程思想以及原理;有些书仅偏重于罗列LabVIEW中每个函数或VI的功能,则不适合用于此种学习方案。
探索型学习方法适合喜好自己钻研的人。
同样一个技巧,如果是自己发现的,比从他人那里的来会更有成就感。
任何一个教程都不可能覆盖到LabVIEW的全部功能,有心得学员不妨自己打开书中未曾介绍到的那些菜单或者函数选板,尝试一下它们都是做什么用的。
在真正动手摆弄每个新东西之前,打开LabVIEW的即时帮助窗口,阅读一下相关说明可以大大加快学习过程。
比如,打开“应用程序控制”函数选板,发现这里有一项“选板编辑”。
好像没有任何一本书里介绍过这个功能嘛,这是干啥用的呢?如果没任何提示,也是无从下手去尝试的。
打开LabVIEW的及时帮助,可以看到它对这个功能的简单介绍。
进入“详细帮助信息”,会得到更全面的说明。
再自己动手实践一下,就基本可以掌握此功能了。
阅读他人代码也是一个很好的学习方法。
自己的探索总是有思维局限性的,他人解决问题的方法可以大大拓宽自己思路。
我介绍过的编程经验中,很大一部分都不是我自己凭空想出来的,而是借鉴与别人的LabVIEW代码。
目标驱动型学习方法是公司员工中最常见的学习方式了。
工作后,如果不是个人有兴趣,多数人不会浪费时间去学习工作中用不到的知识。
等老板布置了具体项目或者工作任务后再学习相关知识,效率更高。
学也只要够解决眼前问题就行了。
针对这种情况,请教身边牛人或者公司前辈是最好的学习方法。
如果周围的人不能解决问题,到论坛上发贴,寻求更广泛的帮助。
推荐一个论坛。
首先是NI的官方论坛,这里会有NI的技术支持和研发工程师来回答问题。
如果英文够好,最好是到它的英文版面去提问,英文讨论区人气更旺,容易找到答案。
LA VA 是官方之外最大的LabVIEW社区,也是寻求帮助的好地方。
如果平时用Windows Live Messenger,可以加入/,这是个msn讨论LabVIEW 的群。
在它上面讨论问题最大的好处是可以及时得到回应。
我见过几个工程师在项目中遇到了难题,于是来报名参加LabVIEW的培训课程,以为上完课可以解决自己的问题。
但实际上完全误解了培训课程的意义,培训课程是为了帮助那些想要系统学习LabVIEW知识的人,而不专注于任何一个具体问题。
LabVIEW 工程资源管理器从8.0 开始,LabVIEW 增加了一个工程资源管理器功能。
LabVIEW 工程资源管理器就是一个可以方便查看、调整程序系统结构的工作区。
与VC, VB 等语言中的project, workspace 相类似。
Project 的出现使得LabVIEW 对于大项目的管理更加方便。
图1:LabVIEW 工程资源管理器要想充分利用LabVIEW 工程资源管理器带来的好处,那就需要我们改变一些以往的LabVIEW编程习惯。
譬如说,在开始一个新的项目的时候,在LabVIEW 8 以前的版本中,我们最先创建的是程序的主VI;而现在,我们首先创建的应该是一个空的工程(Project),再在这个工程中添加相应的VI和各种组件。
工程管理器还有如下优点:工程的树形结构表示了程序中VI 的调用层次关系,利用VI的快捷菜单可以查看到调用该VI的程序,以及该VI的子程序,而不必再使用VI Hierarchy 来查看。
在工程资源管理器的File页就可以直接调整文件存放的磁盘位置,而不必再另外打开操作系统提供的文件浏览器。
在工程资源管理器中集成源代码管理功能,不需要再使用源代码管理工具提供的界面了。
(源代码管理工具是用来进行软件源代码版本控制的。
大型软件开发通常需要这样的工具,用来记录每一次代码的修改、同时开发同一软件的不同版本、方便多人同时对同一段代码进行修改等。
)一、工程的结构图1是一个工程资源管理器的截图。
它用一个树形的结构来表示工程中所有的VI、各种组件和文件设置等。
树形结构的最顶层是工程的名称。
第二层是工程运行的目标机器。
假如我的机器上只装了普通台式机版本的LabVIEW,大家只能看到一个目标:“My Computer”。
假如我的计算机上还装了LabVIEW RT, FPGA 等用于其它硬件环境的LabVIEW,那么在这一层还会出现其它那些目标设备。
第三层以下就是工程中所有使用到的文件了。
用户可以添加虚拟文件夹,按自己的喜好组织文件结构。
LabVIEW 从8.0 起,文件及其它组件种类一下子丰富了许多。
以前基本就只有VI 和控件两种文件,现在又多了Library, Class, XControl,XNode,共享变量等等。
安装了其他功能模块,组件的种类还会更多。
右击树状结构中的每个条目,还可看到针对他们的更多设置。
在LabVIEW 8 之前,若要把VI 源文件构建成可执行文件,必须使用Tools 菜单下的APP Builder 工具。
现在这个工具也被集成到了工程管理器中。
在目标机器的最后一个条目“Build Specification”中包含了把源代码配置成为EXE, DLL 等的信息。
在旧版本LabVIEW 中,保存VI时的一些高级选项,比如添加密码、移除VI前面板,程序框图等选项;以及其它一些与运行有关的选项,例如禁止调试,自动弹出错误框等选项,也都被合并到此处了。