版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学习LabVIEW的理由(1) LabVIEWLaboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器集成环境)应该包含两种含义:其一,LabVIEW是一种图形化的编程语言,所以LabVIEW也被称为:G(graphical)语言;其二,LabVIEW也包含了支持图形化编程语言进行应用软件设计开发的开发环境(开发平台)。LabVIEW经过二十多年的发展已经充分证明:LabVIEW是极具威力的自动化测试、测量工程设计、开发、分析及仿真试验的最佳软件系统。现在已被广泛应用在汽车、电子、化工、生物及生命科学、航空、航天等等许
2、许多多的领域。当前,随着LabVIEW本地化进程的不断深入,许多大学(大专)都相继开始设置LabVIEW课程,越来越多的人们(学生)希望更多地了解和深入学习LabVIEW。同时,为什么要学习LabVIEW?谁应该学习LabVIEW?学习LabVIEW会给我们带来什么好处?等等这些问题也会困扰着他们,我想根据两年来的学习体会谈谈自己的认识与看法。 既然LabVIEW是一种编程语言,那么不妨就从编程语言的一些基本概念来开始讨论。语言:语言是用来表达我们的思想及进行相互交流和沟通的一种手段。程序语言:程序语言是用来指挥计算机表达我们的想法(意念)并能够被计算机执行的程序代码。 程
3、序语言(直接面对物理层的程序语言)我们称之为:机器语言。机器语言(Machine language):机器语言,也就是机器码是可被处理器(CPU)加载并执行的由0和1组成的序列。由于硬件处理器的不同,所以机器码序列也会是不一样的。可以讲,机器码是处理器(CPU)可识别的唯一语言,并且是执行速度最高的语言。它与计算机的硬件(CPU)有着最为直接的关系。但是,当人们看到或使用由0和1组成的序列(程序),实在是感到毫无规律、枯燥无味,并且无法理解和记忆。特别是,当计算机处理器的性能不断提高时(位数增加),机器语言可能被视为世界上最无法读懂和记忆的语言。试想一下,由64位0和1组成代码,如何记忆和理解
4、它们。为了解决这个问题,使更多地人能够使用计算机,并提高编程效率充分发挥计算机的作用,人们对机器语言进行抽象处理,从而导致了汇编语言的诞生。汇编语言(Assembly language):汇编语言,是从机器语言中抽象出来的使用缩写或助记符进行编程的低级编程语言,并且提供较少的控制指令和数据类型,其中的每一条语句都对应于一条相应的机器指令(代码)。通过汇编程序开发环境可以将汇编语言翻译成机器语言,汇编语言同样与给定的处理器相关。在早期,包括操作系统在内的许多系统软件都是用汇编语言编写的(比如:UNXI操作系统)。使用汇编语言的好处在于可以提高执行速度,并且程序员还可以直接访问系统硬件。但是,汇编
5、语言由于其开发环境和汇编程序都依赖于给定的处理器,并且其指令和数据类型很少,同时程序的可读性和可移植性都很差无法广泛使用。于是人们再次对汇编语言进行抽象处理,从而导致了高级语言的诞生。高级语言:高级语言,是从低级的机器语言抽象而来的计算机程序语言。高级语言通常使用和英文单词类似的关键词,这些关键词可以被翻译成多条机器指令。实际上,比汇编语言高级的计算机语言都是高级语言。C语言是目前最为广泛使用的高级语言。它既具有一般高级语言的特性,同时又具备了一些低级语言特性(某些汇编语言的特点)。当然,高级语言还有很多种比如像我们所熟悉的:面向对象的C+、Java及具有可视化编程环境的VC、VB、Delph
6、i等等。这些高级编程语言的存在和发展说明,除了各自的特点不相同,应用领域不同外,还有编程方式的不断改进的推动。比如:从Basic演变到Quick Basic然后又演变到Visual Basic。 从C演变到C+然后又演变到Java(号称没有指针和头文件的C+)及后来的VC。这些已不在我们讨论的范围内,有兴趣者可以看相关的书籍自来了解。 从“机器语言”抽象到“汇编语言”,又从“汇编语言”抽象到“高级语言”。那么问题是:“高级语言”是否还可以进一步进行抽象出“某种超级编程语言”呢? 从计算机语言的发展规律来看,回答是肯定的。并
7、且,二十年前这种语言就已经出现,那就是:LabVIEW一种图形化编程语言。 图形化编程语言: LabVIEW发展到今天,我认为:LabVIEW是从“高级语言”中抽象提炼出来的超级编程语言(到目前为止我还没有从哪本中外LabVIEW书籍中看到这样的提法或概念)。这种将“高级语言”传统的写代码的编程方式,抽象变为以“图形、节点、连线”方式的编程语言,的确具有超级编程语言的特点。用C和C+编写的LabVIEW具有比C和C+更明显得优点。LabVIEW本身的易学易用、即学即用的特点也充分的证明了这个观点。 &
8、#160; 问题在于:图像化的编程方法是否真的就会比“高级语言”代码编程方法更高级?我的回答应该是肯定的。下面通过两个例子来进一步说明:例1: 小时候,在我们刚刚开始会说话时,大人通常是用“看图说话”的方式来教我们认识什么是苹果?什么是梨?什么是香蕉?显然,利用图形或图像的概念使我们很快认识了这些水果。试想如果用文字或拼音来教我们认识这些水果,效果决不会好的。换句话说,图形或图像由于简洁明确,的确要比文字或拼音更适合初学者来认识和区分。事实上,编程语言也是具有相同的规律。对于
9、学习过某种高级语言的人来讲,对复杂的语法规则、指针、内存、类库等等的掌握根本谈不到轻松易学。 LabVIEW做到了这一点,用LabVIEW编程根本无需考虑什么:语法规则、指针、内存、类库等。LabVIEW这种图形化语言将许多复杂的事情抽象的极为简单明了。例2: 时光倒退回二十多年前,那时人们对计算机的操作、控制还基于称为DOS的磁盘操作系统(Diskette Operating System),即便是一个很简单的操作人们也会噼噼啪啪的敲击一阵键盘,对于
10、复杂操作人难免还要认真仔细的查阅DOS手册。那时的MicroSoft还是一个编写DOS的小公司。后来,Mac(苹果电脑)首先实现了计算机的图形化操作,点击鼠标、利用拖拽即可完成对计算机的一些操作控制。LabVIEW大概也是受到了图形操作系统的启发(不知是否真的如此),开始了LabVIEW的设计,并在Mac机上完成了LabVIEW1.0版的发布。直到MicroSoft也设计出图形化操作系统时,LabVIEW才发布了Windows版。这大概是LabVIEW2.0,到LanVIEW3.0发布时它已经全面支持跨平台使用了。 计算机
11、操作系统的图形化无疑加快了计算机使用的普及和使用的大众化(当然也包含硬件发展的推动),使计算机由过去的专供专业人员操作使用,而真正变成了不分年龄、不分专业的大众工具。其中,真正起核心作用的还是图形化操作系统得简洁、方便和易学。 编程语言的图像化应该与操作系统图形化一样,给那些不善于使用代码编程的人带来了实现复杂程序设计的机会(我就是其中的一个受益者)。 其实许多学习过LabVIEW的人都回有这样的体会:图形化编程的确大大降低了程序设计的复杂度,LabV
12、IEW的确是比那些“高级语言”更好的超级编程语言。 LabVIEW的跨平台特点,以及在同一个平台下对FPGA、DSP及嵌入式微处理器的开发提供图形化编程的支持,难道不可以称之为:超级编程语言吗。 LabVIEW是从“高级语言”中利用图形化的抽象方法抽象出来的超级编程语言。那么,还能对它继续进行抽象处理,进一步提高它的简洁性和方便性吗? Express VI &
13、#160; DAQ助手 仪器I/O助手 视觉助手难道这些不是吗?在理由(1)中,通过计算机编程语言的发展简要说明了LabVIEW是一种从高级语言抽象出来的超级编程语言。当然,称LabVIEW为超级编程语言可能有些为过,因为它毕竟还不是通用的编程语言。但就自动化测试、测量方面的编程而言,LabVIEW的出现绝对是革命性、创造性的。原因就是它从根本上,改变了人们所习惯的、传统的撰写代码的编程方式,取而代之的是使用鼠标来点
14、击、拖拽图形、图标、连线节点等方式来进行编程。而这些图形、图标所代表的“控件”或“函数(或方法)”是通过对高级语言进行高度抽象所得,所以使得整个编程的过程变得更加简单、方便、有效,从而彻底将编程人员从复杂的语法结构及众多的数据类型和不停的编写代码、编译、查找错误的过程中解放出来,使程序设计者能够更加专注于应用程序的设计,而不用担心语法、指针等是否使用的正确。这种编程方式大大降低了程序设计的复杂度。除了图形化的编程方式简单、方便外,LabVIEW的优势还体现在以下几个方面:跨平台特性: LabVIEW支持Windows、Ma
15、c OS X、Linux等多种计算机操作系统,这种跨平台特性在当今的网络化时代是非常重要的。试想在Linux 操作系统下设计的VI,通过网络传递到其它平台上无需改变任何代码,即可使用或调试是一件多么爽快的事情。这大大改善了使用者之间的交流、沟通及评估的灵活性。同时,它还可以充分利用不同平台自身所具有的优异性能,例如:Windows系统的广泛性;Mac OS X系统的美观、时尚;Linux系统的安全性等等。 随着,计算机操作系统的不断升级和改进,使LabVIEW的开发环境也同样得以不断的改善。举一个简单的例子:我从网上下载升级了IE 7.0浏览器(英
16、文版),它的界面风格变得更加美观、时尚。而它正是来自Microsoft 最新的操作系统Vista。可以想象的到,未来在新的操作系统上使用LabVIEW,它的GUI一定会同样美观、时尚。 对其它编程语言的支持: 尽管LabVIEW已是一个独立的图形化软件编程开发环境,但是为了照顾到已习惯使用其它的高级编程语言的编程者,它还提供了兼顾其它高级编程语言的开发环境,使已习惯于其它编程语言的使用者也能够充分利用LabVIEW的强大的自动化测试、测量及分析、处理能力。 LabWindows/CVI提供了对ANSI C
17、 的支持。 Measurement Studio 提供了对Visual Basic、Visual C# 及Visual C+的支持。 开放的开发平台: LabVIEW还是一个开放的开发平台,提供广泛的软件集成工具、运行库和文件格式,可以方便的与第三方设计和仿真连接,例如:DLL、共享库ActivcX、COM和.NET(微软)DDE、TCP/IP、UDP、以太网、蓝牙CAN、DeviceNet、Modbus、OPC高速USB、IEEE1394、GPIB、RS232/485数据库(ADO、SQL等)
18、0;对便携式及嵌入式开发: LabVIEW PDA支持便携式手持系统PDA(个人数字处理器)的开发应用,支持Pocket PC OSs 及Windows CE。使用LabVIEW可以创建自定义的便携式测试分系统。 LabVIEW嵌入式开发模块支持对32位处理器的图形化开发。目标处理器如:PowerPC、ARM、TI C6xx86架构;支持的嵌入式操作系统如:VxWors、eCos、Windows和嵌入式的Linux。 LabVIEW DSP工具包还支持TI的DSP设计开发。 LabVIEW
19、 FPGA 模块还支持FPGA设计。丰富了RIO系列模块的自定义功能。 图形化的强大的分析、处理能力: LabVIEW提供了无比强大的分析、处理VI库及许多专业的工具包,例如:高级信号处理工具包、数字滤波器设计工具包、调制工具包、谱分析工具包、声音振动工具包、阶次分析工具包等(当然都是要花钱购买的),这是任何其它高级编程语言无法提供的。结合LabVIEW独特的数据结构(波形数据、簇、动态数据类型等)使得测量数据的分析、处理非常简单、方便、并且实用性很强。很难想象,如果使用代码编程进行数字滤波设计或功率谱分析会增加多少工作量,甚至能否设计完成都值得去考虑。
20、60; 特别是:NI新近推出的LabVIEW MathScript,将面向数学的文本编程扩展加入到了图形化的LabVIEW中来,提供了除图形化数据流编程以外的另一种自定义开发应用系统的方法,为使用者提供了获得最佳方案设计选择的机会。 LabVIEW最大的优势就在于图形化的分析处理方法。从应用角度看,LabVIEW的分析处理能力绝对是超级的,它使得设计者会更加专注于应用项目的设计,而不是如何进行数据的分析、处理。从而给设计者带来更多的是工作中的快乐和工作中的成就感。这一点我的体会是极为深刻的。 LabVIEW的另
21、一个优势就是仿真能力,在设计原型阶段可通过仿真来评估设计的合理性和正确性。由于使用的是图形化的编程方法,这样的工作很快就可以实施并及时得到真实的仿真结果。 我做的一个电力质量分析的项目:要求测试分析电网各相电压、电流中的25次谐波内的全部谐波含量(THD)。同时,还要求对各次谐波含量以百分数和柱状图形分别显示出来。使用LabVIEW很快就完成了,真不知道如果使用其它编程语言会搞到什么时候。 编程效率极高: 最后,要谈谈图形化编程的最大特点。使用LabVIEW图形化编程的最大特点就是编程效率极高。关于图形化编程可以
22、减少编程时间、缩短开发周期、降低开发成本等说法,已在很多介绍 LabVIEW的书中进行了表述,我不准备再进行复述。这里,从另外一个角度仅谈谈自己对这方面的体会。 作为应用项目的设计开发者,通常的关注点是:设计的合理性和最终结果的正确性。当然,他们也会注意到编程过程的效率。实际上,减少编程时间、缩短开发周期、降低开发成本等大多都是从整体经济利益方面来考虑的。我个人认为:在提高效率这方面,人们往往忽略了“人设计者”的效率得到提高这个要素。由于LabVIEW采用的是图形化编程的方法,所以大大降低了编程过程的复杂度,请看下图1中一个有效值测量的程序框图。这
23、里仅仅使用几个VI就可以非常简单、迅捷的完成程序设计,实现分析和对结果的处理。如果在此基础上还要进行其它分析,比如:谐波分析、频率测量、功率谱分析等,最多就是再添加三个图标(VI),以及连接到相应的图形指示器和数字指示器。对于多通道测试几乎无须添加任何分析,仅添加几个通道VI而已。图1连续有效值测量 举这个例子要说明的问题是:图形化编程简单、方便、非常灵活的实现程序设计,立即运行就可以看到分析处理结果。特别是LabVIEW的即时编译能力,可以在编程的同时进行检查,及时发现错误代码。正是因为编程效率高,改动及替换方便,程序代码直易懂,所以会更加激发设
24、计者的创造性思维及成就感,自然就会把设计工作重点放在如何更好的分析、处理上,而不是如何编程上。换句话说,当一个新的设计思想出现后,马上就可以得到实验验证或改进,甚至是边设计边改进。其它高级编程语言都不会如此的快速、方便(因为要写许多代码和进行编译后才能运行)。所以,我们说:增强设计者的创新效率和信心是LabVIEW不可忽视的内在特点,其价值是无法估量的。 事实上,我们已经看到:LabVIEW的发展是迅速的,并且是紧跟时代科学技术的发展比如:它对嵌入式的支持、对DSP的支持以及对FPGA的支持。所以通过学习LabVIEW会同样保证我们技术
25、的持续进步,而付出的代价相对是比较小的。 在学习LabVIEW的理由(1)中,我们强调LabVIEW是一种图形化的超级编程方法很值得大家学习。 在学习LabVIEW的理由(2)中,我们强调LabVIEW的图形化分析处理能力和编程效率,仅这一点就更值得大家来学习。 吸引我学习LabVIEW的理由,除了“理由(1)”中所讲到的LabVIEW是图形化编程语言,它比文本编程的方式更简单、明了;以及“理由(2)”中所谈到的LabVIEW分析、处理能力强、编程效率高之外;还有一个极为重要的原因就是:LabVIEW不
26、仅是优秀的软件开发环境,而且还包含着对数据采集板卡(DAQ)等硬件产品的驱动支持,并且其硬件可选择的品种和类型也非常之多,基本可以满足不同工程设计的需求。这也是LabVIEW与其它编程软件有着本质不同的地方。 前面谈过,LabVIEW的最大优势在于测试、测量和自动化控制方面的应用,这就不可能不涉及到硬件板卡,而驱动硬件板卡的驱动软件并不是公开的源代码。第三方的驱动软件很难做到与开发平台无缝连接。所以,开发平台、硬件板卡与板卡的驱动软件来自同一个公司(厂家)是比较可靠以及值得信赖的。如果,编程环境使用LabVIEW,而硬件则使用其它商家的板卡(这些商家也称支持
27、LabVIEW),从而导致编程过程中,出现一点问题就会怀疑到是否是驱动有问题,大大的降低了工作效率,并且无法得到NI公司的技术支持。关于这一点,在许多论坛上常常看到会有这样的问题提出,而真正能有效解决这样问题的回复确几乎看不到。当选择LabVIEW同时又使用NI的采集卡时,由于它们的软、硬件之间是无缝连接的,所以它的正确性和可靠性应该是绝对可以值得信赖的。此外,从NI公司的硬件产品的质量和性能来看也绝对是一流的,包括短期稳定性和长期稳定性。NI的M系列板卡及其它板卡都具备了自校准能力,使用性能可以得到进一步的提高。这些都是NI公司的优势所在。 我曾经测试了P
28、CI-6014数据采集卡AO通道及AI通道的6个月长期稳定性。6个月内在室温下的长期变化率优于:±0.01% (10V量程)。由此可见,M系列的PXI-6251的校准周期规定为:2年,是绝对可信的(注:并不是所有M系列的产品校准周期都为两年)。 我还经常听到这样的说法:NI的产品是很好,技术支持也非常棒,就是太贵了。此言不错,的确如此。但任何事情都不会是绝对的,购买产品是要关注价格,但更主要的指标是:性能价格比。我们不妨先从开发平台软件说起,比如:购买一套NI Devloper Suite大约要人民币4万多元(包括SSP服务),加上某些工具包大概就
29、是5-6万多块,这仅相当于雇佣一个中、高级开发人员的一年工资(可能都不到NI一个技术支持工程师的年薪)。可是,这个投入将使你的实验室具备了包括LabVIEW、LabWindows/CVI 、Measurement Studio在内的多种语言设计开发平台,并且可以持续使用相当一段时间,应该说是相当划算的。从硬件来看,NI提供了多种不同总线技术的采集板卡,使用者可以根据需要来灵活选择而并非是重新设计,这将大大加快应用工程的设计进度。从另一个角度来看,工程(产品)的生产过程仅包括供销人员、软件设计人员、文档编辑人员,没有任何辅助工人参加。节省的劳务成本足可以抵消硬件成本的增加。综合来比较价格是不算高
30、的。 我曾经做过很长时间的硬件设计,包括从电原理图设计到PCB的设计,给我最大的感受是:作为科研成果可以,产品化则很难。模拟电路中的接地问题和数字电路数据传输格式问题常常困扰着设计者。甚至,看着很正确的电原理图,制成PCB后会发现由于电路接地处理不好,导致噪声很大,甚至无法达到设计的要求。如果,再要求电磁兼容性那就会更加困难了。特别是,由于集成电路设计技术的成熟,不断有新的、更好的元器件出现时,很难投入精力和财力进行设计上的不断更新。这方面我想许多与我有着同样经历的人都会有着同样的感受。而选择使用专业商家提供的产品,则可避免许多问题的发生。因为这些专业厂商已经为我们考虑好了。 我们过去的设计往往都是特为某种应用设计的,所以根本谈不到继承性。当新的任务来临时,又必须重新考虑设计,一面是不得不改进,一面是无法更多地更新,所以把许多时间和精力都浪费在无效的重复之中,更可怕的是产品质量很难有有效的保证。我在选择是否使用LabVIEW时就曾考虑过这个问题:为什么我们总要重复做我们做不好的事情,而不去选择很成熟的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 38278.1-2026全息防伪产品技术条件第1部分:全息防伪产品通用技术条件
- T/ZHHX 006-2025主要鲜切花流通规范
- T/HZFDS 001-2025体外诊断试剂出口质量管理能力评价规范
- T/CMAM M55-2025溢血症(免疫性血小板减少症)蒙医诊疗指南
- T/CARD 057-2024脑卒中重症康复服务指南
- T/CSCMA 0004-2023出口工程机械二手设备 评估服务规范
- 高校产学研合作基础培训
- 2025~2026学年广东省茂名市高州市北师大版六年级上册阶段练习(三)数学试卷【附答案】
- PHP后端面试题及详细答案(实战完整版)
- 引水隧洞衬砌及防渗堵漏施工方案
- 2026年保密培训考试题带答案(完整版)
- 6.4民生福祉持续增进 议题式教学课件(共24张)+内嵌视频 2026-2027学年统编版道德与法治9年级上册
- 中国邮政集团招聘考试历年真题
- 2026年一级造价师案例考试真题及答案
- 回复客户投诉的的质量整改函(6篇)
- 2026年春季云南云天化股份有限公司招聘(校园招聘)笔试历年参考题库附带答案详解
- 北京工业职业技术学院《网络营销》2025-2026学年期末试卷
- JJF(石化)078-2023激光甲烷遥测仪校准规范
- 人教版数学五年级上册第三单元第三课时 商的近似数 同步测试(含解析)
- 资产分类管理制度制度
- 防火排烟劳务分包协议
评论
0/150
提交评论