转自
labview 7i 博客:
从“机器语言”抽象到“汇编语言”,又从“汇编语言”抽象到“高级语言”。那么问题是:“高级语言”是否还可以进一步进行抽象出“某种超级编程语言”呢?
从计算机语言的发展规律来看,回答是肯定的。并且,二十年前这种语言就已经出现,那就是: LabVIEW
——一种图形化编程语言。
图形化编程语言:
LabVIEW
发展到今天,我认为: LabVIEW
是从“高级语言”中抽象提炼出来的超级编程语言 (到目前为止我还没有从哪本中外 LabVIEW
书籍中看到这样的提法或概念)。
这种将“高级语言”传统的写代码的编程方式,抽象变为以“图形、节点、连线”方式的编程语言,的确具有超级编程语言 的特点。
用 C
和 C++
编写的 LabVIEW
具有比 C
和 C++
更明显得优点。
LabVIEW
本身的易学易用、即学即用的特点也充分的证明了这个观点。
问题在于:图像化的编程方法是否真的就会比“高级语言”代码编程方法更高级?我的回答应该是肯定的。下面通过两个例子来进一步说明:
例 1 :
小时候,在我们刚刚开始会说话时,大人通常是用“看图说话”的方式来教我们认识什么是苹果?什么是梨?什么是香蕉?显然,利用图形或图像的概念使我们很快认识了这些水果。试想如果用文字或拼音来教我们认识这些水果,效果决不会好的。换句话说,图形或图像由于简洁明确,的确要比文字或拼音更适合初学者来认识和区分。事实上,编程语言也是具有相同的规律。
对于学习过某种高级语言的人来讲,对复杂的语法规则、指针、内存、类库等等的掌握根本谈不到轻松易学。
LabVIEW
做到了这一点,用 LabVIEW
编程根本无需考虑什么:语法规则、指针、内存、类库等。 LabVIEW
这种图形化语言将许多复杂的事情抽象的极为简单明了。
例 2 :
时光倒退回二十多年前,那时人们对计算机的操作、控制还基于称为 DOS
的磁盘操作系统( Diskette Opera
ti ng System
),即便是一个很简单的操作人们也会噼噼啪啪的敲击一阵键盘,对于复杂操作人难免还要认真仔细的查阅 DOS
手册。那时的 MicroSoft
还是一个编写 DOS
的小公司。后来, Mac
(苹果电脑)首先实现了计算机的图形化操作,点击鼠标、利用拖拽即可完成对计算机的一些操作控制。 LabVIEW
大概也是受到了图形操作系统的启发(不知是否真的如此),开始了 LabVIEW
的设计,并在 Mac
机上完成了 LabVIEW1.0
版的发布。直到 MicroSoft
也设计出图形化操作系统时, LabVIEW
才发布了 Windows
版。这大概是 LabVIEW2.0
,到 LanVIEW3.0
发布时它已经全面支持跨平台使用了。
计算机操作系统的图形化无疑加快了计算机使用的普及和使用的大众化(当然也包含硬件发展的推动),使计算机由过去的专供专业人员操作使用,而真正变成了不分年龄、不分专业的大众工具。其中,真正起核心作用的还是图形化操作系统得简洁、方便和易学。
编程语言的图像化应该与操作系统图形化一样,给那些不善于使用代码编程的人带来了实现复杂程序设计的机会(我就是其中的一个受益者)。
其实许多学习过 LabVIEW
的人都回有这样的体会:图形化编程的确大大降低了程序设计的复杂度, LabVIEW
的确是比那些“高级语言”更好的超级编程语言 。
LabVIEW
的跨平台特点,以及在同一个平台下对 FPGA 、 DSP
及嵌入式微处理器的开发提供图形化编程的支持,难道不可以称之为:超级编程语言 吗。
LabVIEW
是从“高级语言”中利用图形化的抽象方法抽象出来的超级编程语言 。那么,还能对它继续进行抽象处理,进一步提高它的简洁性和方便性吗?
Express VI
DAQ
助手
仪器 I/O
助手
视觉助手
难道这些不是吗?
通过计算机编程语言的发展简要说明了 LabVIEW
是一种从高级语言抽象出来的超级编程语言 。当然,称 LabVIEW
为超级编程语言 可能有些为过,因为它毕竟还不是通用的编程语言。但就自动化测试、测量方面的编程而言, LabVIEW
的出现绝对是革命性、创造性的。原因就是它从根本上,改变了人们所习惯的、传统的撰写代码的编程方式,取而代之的是使用鼠标来点击、拖拽图形、图标、连线节点等方式来进行编程。而这些图形、图标所代表的“控件”或“函数(或方法)”是通过对高级语言进行高度抽象所得,所以使得整个编程的过程变得更加简单、方便、有效,从而彻底将编程人员从复杂的语法结构及众多的数据类型和不停的编写代码、编译、查找错误的过程中解放出来,使程序设计者能够更加专注于应用程序的设计,而不用担心语法、指针等是否使用的正确。这种编程方式大大降低了程序设计的复杂度。
除了图形化的编程方式简单、方便外, LabVIEW的优势还体现在以下几个方面:
跨平台特性:
LabVIEW支持 Windows、 Mac OS X、 Linux等多种计算机操作系统,这种跨平台特性在当今的网络化时代是非常重要的。试想在 Linux 操作系统下设计的 VI,通过网络传递到其它平台上无需改变任何代码,即可使用或调试是一件多么爽快的事情。这大大改善了使用者之间的交流、沟通及评估的灵活性。同时,它还可以充分利用不同平台自身所具有的优异性能,例如: Windows系统的广泛性; Mac OS X系统的美观、时尚; Linux系统的安全性等等。
随着,计算机操作系统的不断升级和改进,使 LabVIEW的开发环境也同样得以不断的改善。举一个简单的例子:我从网上下载升级了 IE 7.0浏览器(英文版),它的界面风格变得更加美观、时尚。而它正是来自 Microsoft 最新的操作系统 Vista。可以想象的到,未来在新的操作系统上使用 LabVIEW,它的 GUI一定会同样美观、时尚。
对其它编程语言的支持:
尽管 LabVIEW已是一个独立的图形化软件编程开发环境,但是为了照顾到已习惯使用其它的高级编程语言的编程者,它还提供了兼顾其它高级编程语言的开发环境,使已习惯于其它编程语言的使用者也能够充分利用 LabVIEW的强大的自动化测试、测量及分析、处理能力。
LabWindows/CVI提供了对 ANSI C 的支持。
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等)
对便携式及嵌入式开发:
LabVIEW PDA支持便携式手持系统 PDA(个人数字处理器)的开发应用,支持 Pocket PC OSs 及 Windows CE。使用 LabVIEW可以创建自定义的便携式测试分系统。
LabVIEW嵌入式开发模块支持对 32位处理器的图形化开发。目标处理器如: PowerPC、 ARM、 TI C6xx86架构;支持的嵌入式操作系统如: VxWors、 eCos、 Windows和嵌入式的 Linux。
LabVIEW DSP工具包还支持 TI的 DSP设计开发。
LabVIEW FPGA 模块还支持 FPGA设计。丰富了 RIO系列模块的自定义功能。
图形化的强大的分析、处理能力:
LabVIEW提供了无比强大的分析、处理 VI库及许多专业的工具包,例如:高级信号处理工具包、数字滤波器设计工具包、调制工具包、谱分析工具包、声音振动工具包、阶次分析工具包等(当然都是要花钱购买的),这是任何其它高级编程语言无法提供的。结合 LabVIEW独特的数据结构(波形数据、簇、动态数据类型等)使得测量数据的分析、处理非常简单、方便、并且实用性很强。很难想象,如果使用代码编程进行数字滤波设计或功率谱分析会增加多少工作量,甚至能否设计完成都值得去考虑。
特别是: NI新近推出的 LabVIEW MathScript,将面向数学的文本编程扩展加入到了图形化的 LabVIEW中来,提供了除图形化数据流编程以外的另一种自定义开发应用系统的方法,为使用者提供了获得最佳方案设计选择的机会。
LabVIEW最大的优势就在于图形化的分析处理方法。从应用角度看, LabVIEW的分析处理能力绝对是超级的,它使得设计者会更加专注于应用项目的设计,而不是如何进行数据的分析、处理。从而给设计者带来更多的是工作中的快乐和工作中的成就感。这一点我的体会是极为深刻的。
LabVIEW的另一个优势就是仿真能力,在设计原型阶段可通过仿真来评估设计的合理性和正确性。由于使用的是图形化的编程方法,这样的工作很快就可以实施并及时得到真实的仿真结果。
编程效率极高:
最后,要谈谈图形化编程的最大特点。使用 LabVIEW图形化编程的最大特点就是编程效率极高。关于图形化编程可以减少编程时间、缩短开发周期、降低开发成本等说法,已在很多介绍 LabVIEW的书中进行了表述,我不准备再进行复述。这里,从另外一个角度仅谈谈自己对这方面的体会。
作为应用项目的设计开发者,通常的关注点是:设计的合理性和最终结果的正确性。当然,他们也会注意到编程过程的效率。实际上,减少编程时间、缩短开发周期、降低开发成本等大多都是从整体经济利益方面来考虑的。我个人认为:在提高效率这方面,人们往往忽略了“人——设计者”的效率得到提高这个要素。由于 LabVIEW 采用的是图形化编程的方法,所以大大降低了编程过程的复杂度,请看下图 1 中一个有效值测量的程序框图。这里仅仅使用几个 VI 就可以非常简单、迅捷的完成程序设计,实现分析和对结果的处理。如果在此基础上还要进行其它分析,比如:谐波分析、频率测量、功率谱分析等,最多就是再添加三个图标( VI ),以及连接到相应的图形指示器和数字指示器。对于多通道测试几乎无须添加任何分析,仅添加几个通道 VI 而已。
各位看过之后有什么感想呢,你为什么要学labview呢?是带有目的性的,还是真的被其强大所吸引?还是别的什么,一起来探讨分享下吧,分享自己的喜怒哀乐。
3
说的不错,鼓掌
蟹黄小懒 发表于 2011-11-14 12:55
说的不错,鼓掌
喜欢你的头像 可爱
提交评论
图像比文字要好理解些,直观。调试也很好用。工作中要用到。只是现在水平还浅,不能发挥它的强大。
提交评论
蟹黄小懒 发表于 2011-11-14 12:56
因为毕业设计而学习接触的LabVIEW
毕业设计实用labview很容易的哦
提交评论
其实labvIEW像是一种傻瓜语言,人家设计者已经把内容包装好了,我们只是那出来用,实现我们要实现的功能罢了,最主要的还是labvIEW对硬件有很强的依赖性,如果脱离了NI的仪器,它就废了。而且我们都看不到它最低层的东西。其实最好的还是C或者汇编,只不过它用得方便,界面也赏心悦目~~哈哈~~我发表一下自己的见解。
提交评论
mingxiao123 发表于 2011-11-14 16:14
其实labvIEW像是一种傻瓜语言,人家设计者已经把内容包装好了,我们只是那出来用,实现我们要实现的功能罢 ...
你可以不买它的啊 用别的啊
提交评论
zhihuizhou 发表于 2011-11-14 16:23
你可以不买它的啊 用别的啊
确实,那是有钱人才用得起得~~~
提交评论
mingxiao123 发表于 2011-11-14 16:26
确实,那是有钱人才用得起得~~~
不用仪器不一样可以做很多东西。。简单实用就好啊
提交评论
偶然的机会接触了这门选修课,不知不觉被它的魅力所折服。它深深地吸引了我。在全年级中,我可以说是听课最认真的,也是学得最好的。虽然技术跟各位大神比肯定是比不上,但我会继续努力去了解它。没有原因,如果非得说出一个,那我只能用“缘”字来解释了。
ps:后天就考试了,毫无压力。虽然结课了,但我仍然会继续学习labview的,还需要各位大神多多指教。特别是zhihuizhou 版主的很多帖子给了我巨大的帮助,拜谢~
提交评论
,学习LABVIEW中,,,
提交评论
搞不掂 发表于 2011-11-14 22:02
偶然的机会接触了这门选修课,不知不觉被它的魅力所折服。它深深地吸引了我。在全年级中,我可以说是听课最 ...
你过奖了 结课了 但是还是希望不要丢弃了哦 说的粗俗点:至少他可能可以帮你找到一份工作呢 抱歉 有点世俗 还是多来论坛逛逛哦
提交评论
还是看到一个学弟在用,觉得好玩就开始学起来了,起码上手很快
提交评论
zhihuizhou 发表于 2011-11-15 11:27
你过奖了 结课了 但是还是希望不要丢弃了哦 说的粗俗点:至少他可能可以帮你找到一份工作呢 抱歉 有点 ...
恩,隔三差五来瞧瞧。你还是天天坚持发好贴,真佩服你哦~~
提交评论
搞不掂 发表于 2011-11-18 16:45
恩,隔三差五来瞧瞧。你还是天天坚持发好贴,真佩服你哦~~
大家一起学习嘛
提交评论