LabVIEW实践之路第一二章序正文32页Word下载.docx
- 文档编号:22632501
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:48
- 大小:1.09MB
LabVIEW实践之路第一二章序正文32页Word下载.docx
《LabVIEW实践之路第一二章序正文32页Word下载.docx》由会员分享,可在线阅读,更多相关《LabVIEW实践之路第一二章序正文32页Word下载.docx(48页珍藏版)》请在冰豆网上搜索。
两张图的区别主要在几个方面:
a)传统测试仪器b)虚拟仪器
图1.1传统测试仪器和虚拟仪器
Ø
虚拟仪器由用户定义,而传统仪器则功能固定且由厂商定义。
每一个虚拟仪器系统都由两部分组成—软件和硬件。
对于当前的测量任务,虚拟仪器系统的价格与具有相似功能的传统仪器相差无几,甚至比它少很多倍。
由于虚拟仪器在测量任务需要改变时具有更大的灵活性,因而随着使用时间的延长,通过开发软件来增加新的功能以满足更多测试要求,节省的成本也不断累计。
传统仪器把所有软件和测量电路封装在一起,利用仪器前面板为用户提供一组有限的功能。
而虚拟仪器系统提供的则是完成测量或控制任务所需的所有软件和硬件设备,功能完全由用户自定义。
利用虚拟仪器技术,工程师和科学家们还可以使用高效且功能强大的软件来自定义采集、分析、存储、共享和显示功能。
简单的说,虚拟仪器的特点是“以软代硬,软硬结合,无缝集成,高度模块化和高度扩展性”。
LabVIEW就是其中的虚拟仪器软件开发环境的佼佼者,用来进行快速开发的集成开发环境(IntegratedDevelopmentEnvironment,IDE)。
当然,LabVIEW并不是只能依附于相关的硬件才能使用,诸如科学计算、数字信号分析处理、数字图像处理、系统仿真等都是它的拿手好戏。
必须清楚一件事,“LabVIEW不是一种一般意义上的通用编程语言,但它能用来开发各种通用应用程序”。
也就是说,在测试测量等领域LabVIEW可以同硬件结合大展身手,但如果只想开发个计算器程序,编一个音乐播放器,或是开发邮件客户端等等,LabVIEW也是可以胜任或解决一般需求的,当然可能在程序运行速度及体积大小等方面同JAVA、C#、C/C++、VB等有差距。
不信可以看一下,用LabVIEW开发的Flash播放器,以及超级玛丽的Demo。
不过,这些东西主要还是用来练手的,如果学习LabVIEW的目的就是实现这种程序的开发,那就有点“不务正业”了。
图1.2Flash播放器图1.3超级玛丽Demo
1.1第一个LabVIEW程序:
从解一元二次方程开始
LabVIEW开发环境的安装就不多费笔墨了,现在就启动LabVIEW,开始掌握工具之旅。
初中数学我们就知道,一元二次方程
的解可以表示为
。
那时候没少让大家解方程,现在就用LabVIEW编程来解。
LabVIEW里面开发的程序单元被称作VI(VirtualInstruments,虚拟仪器),文件的扩展名是.vi,就像是用c语言开发的.c文件或C++开发的.cpp文件等。
当然,现在LabVIEW开发环境下还包括其它的程序组织类型,如工程(.lvproj)、类(.lvclass)、模板(.vit)、库(.llb)……。
这些类型有的是为了让你更好的组织开发工作,有的是为了让你获得更高效、复用性更好的程序。
我们在前几章将围绕.vi文件进行学习,毕竟这是整个LabVIEW开发的核心。
建立.vi文件可以在LabVIEW启动后选择“新建>
>
VI”(如图1.4所示),也可以在开发环境下在文件菜单里选择“新建VI”。
图1.4新建VI
一个默认文件名的vi文件将被建立,如图1.5所示,VI开发环境中常用模块包括以下几个主要部分:
前面板、程序框图、工具快捷选板、控件快捷选板(前面板用)、函数快捷选板(程序框图用)等。
其中前面板主要进行界面设计,类似于VB、VC等开发环境中的人机界面开发环境;
而程序框图则类似于其他编程语言的代码编辑器,当然,LabVIEW是通过图形化的拖放来完成“代码”的生成。
好的,我们就开始在前面板和程序框图中挥洒创意,实现功能了!
当然,先把一元二次方程解了~
图1.5VI程序开发界面
功能分析:
程序的要求很简单,就是一个算法问题。
为了尽快展现我们的程序,像二次项系数是否为0等问题我们先不考虑,程序就是一个三个浮点输入(a,b,c),两个浮点输出(x1,x2)的算法,涉及加、减、乘、除、平方、开方以及取负等运算。
前面板设计:
根据算法,放置三个数值输入控件和两个数值显示控件(如图1.6(a)所示)。
方法很简单,在控件快捷选板中,找到新式>
数值栏,用左键将数值输入控件和数值显示控件拖入前面板即可,需要几个拖几个。
当然,通常默认的控件标签名称不一定符合我们的要求,那么双击文字(或在工具快捷选板中选择文本编辑
后,再单击控件的文字标签)就能够输入新的名称,如图1.6(b)所示。
OK,界面完成了,虽然有一点简陋,不过没关系,后面我们会学习多种方法作出让人赞叹的程序界面。
(a)(b)
图1.6前面板控件的放置
我们点击一下程序框图切换过去看一下,五个图标也出现在程序框图中,而且标签和前面板的控件一一对应。
没错,这就是我们在前面板放置的控件,如果仔细观察一下,会发现每一个图标上都会有DBL的字样
,这说明我们放置的输入输出控件默认是双精度浮点数的,以后再介绍数据类型,接下来就要在框图中编写算法了!
图1.7框图程序中的输入输出
在框图中编写算法要用到函数选板,如果没有出来,在查看菜单里点击一下(如图1.8所示)。
图1.8程序框图的函数选板
本程序用到了加、减、乘、除、平方、开方等运算,我们可以在数值选板中找到它们,如图1.9所示。
LabVIEW将各函数按照类别排放,只要稍加熟悉,便能快速找到所需的子VI。
图1.9数值函数选板
接下来就根据算法开始在框图程序完成连线了,也就是“写代码”。
通常LabVIEW各子VI左侧连线端为输入,右侧为输出,当你从工具选板中选中“进行连线”,即使用连线工具后,鼠标形式变换成为连线样式。
将其放置于子VI左侧或右侧的对应位置时,开发环境便会自动显示连线端及其名称。
如图1.10所示。
当然通过点击Tab键LabVIEW能自动为您切换工具箱中的定位选择工具、连线工具、文本工具等。
图1.10连线工具及使用
框图“编码”很简单,就是在变量/常量/VI的输入输出间连线:
在输出/输入连线端按下鼠标左键后拖动到需要连接的输入/输出连线端,一条颜色、形状各异的线出现了,这就是你写下的代码。
线的颜色、形状、粗细等标识者传递的数据类型,以后你会慢慢了解的。
通常编写程序时,尽量让你的程序从左向右执行,也就是连线时若果上一个输出连接到下一个输入,那么前面的输出应置于框图左边,而后面的输入置于右边。
按照上面的方法,我们很容易就能够将解一元二次方程的算法实现,看下面的框图1.11,是不是都能够理解呢?
图1.11解一元二次方程的程序框图
框图程序完成后,前面板上的输入输出之间就通过我们的算法联系起来了。
细心的读者可能会观察到:
不管是前面板还是程序框图的快捷按钮栏,有一个按钮由
变为
恭喜你,程序运行按钮由无法执行变为了可以执行,点击运行按钮就可以执行我们的程序了------当然,我们先把需要解的方程的系数填入对应的输入。
图1.12运行程序结果
如上图1.12所示,我们解了一个方程
,结果是……,看输出吧,呵呵。
和
的变化体现出了LabVIEW实时编译的特点,即不需要你去点击某一个编译按钮,只要程序已经到了能够运行的程度,那
就会出现在你的眼前。
当然,能够运行不代表你的程序已经正确完成了,只是说明了框图程序里没有逻辑错误而已。
不信你看看,一个空的程序照样是有
的。
小结
虚拟仪器程序设计同主流的程序设计语言有很大不同,“图形化编程”、“G语言”不是吹出来的,用好LabVIEW的关键问题之一就是适应编程习惯。
前面板的拖放很像VB、Delphi、VC/BCB、JAVA(NetBeans等)集成开发环境中截面设计,拖放即可;
主要区别在于“代码”的生成,依靠连线为主的虚拟仪器确实很有特点。
有两点必须现在就指出:
第一是LabVIEW上手并不难,在一些领域如测试、信号处理、数值算法等等开发一些实用系统也比较擅长,但要想成为高手,能够实现良好的程序结构、便利的人机交互、复杂的功能,你要花费的力气不比学好任何一门语言少。
如今大部分学术论文上充斥的某某虚拟仪器开发的系统类似于小儿科的玩具,只能停留在那种文章里。
第二是LabVIEW有优点和缺点,这一点必须一开始就清楚。
如果你想学习LabVIEW成为数据库系统开发的高手、网络系统开发的高手,我劝你还是死了这条心的,因为这种系统即使出现也不会有太大价值。
另外,程序设计都是相通的,学习LabVIEW也无法绕过软件工程等等能力的培养,比如不会做需求分析就没法实现良好的软件系统。
但如果只是想解决一些LabVIEW所擅长解决的小问题(某些时候可能是大问题),那你会发现学习、开发的效率是相当的高。
本教程使用的是LabVIEW8.2中文版,好多朋友可能习惯于使用各版本的英文版,对此表示严重支持!
但如果刚要开始学LabVIEW的小盆友,无疑选择中文版更容易上手。
1.2从控件选板和工具选板看LabVIEW的强项
现在我们就来看看LabVIEW开发环境给我们提供了哪些前面板控件、框图程序常量或子VI(即能直接拿来用的LabVIEW子程序)。
1.2.1LabVIEW前面板控件
建立VI后,在“查看”菜单选择“控件选板”,就能够调出前面板控件选板。
当然,如果你嫌它烦不想老在眼前晃,可以关掉它,使用时只要在VI的前面板区域点击右键就可以了。
如右图1.13所示,前面板的各种控件以分类(图标+文字)来表示。
如果看到右上角有一黑色三角形,那说明这是一个空间集合,点开后会有该类的各种控件。
图1.13前面板控件
以下我们就来看一下常用的LabVIEW新式前面板控件(所谓新式指有点3D风格的控件,是和原来老版本的空间风格不同的。
有的小盆友喜欢老版本的风格,那在“经典”一类中还能找到。
另外我比较喜欢“系统”风格的控件,主要是设计的前面板同常用的Windows界面非常统一)。
数值选板里面有各种输入输出为数字的控件,如数值、时间、进度条、颜色等等。
常用的各数值输入/输出控件均可以选择各种表示法,如各种整型、浮点型等等,稍后会具体介绍。
布尔选板里面有各种输入输出为布尔量的控件,如按钮(按下/弹起)、开关(开/关)、指示灯(亮/不亮)、选择框(选中/未选中)等,这些控件只有两种状态:
真和假,否则就不是布尔量了(当前切换方式有好多种)。
说道字符串和路径控件,你是否经常会碰到Windows程序弹出的各种对话框让你输入某些信息?
是否用过选中磁盘上的某个文件的按钮?
没错,字符串和路径控件就是干这个用的。
数组、矩阵和簇比较有特点。
数组控件用来直接从前面板输入/输出各种维数的数组;
矩阵和它比较类似;
而簇呢,则同C语言中的结构体很像,将各种你需要的数据类型组成特定的数据格式;
而错误输入/输出则是一种特定格式的簇,专门用来进行LabVIEW程序错误信息的输入/输出显示。
这里面都是Windows编程经常用到的,包括列表框、表格、树形结构控件等等。
图形控件是学习LabVIEW不可不会的。
它包括波形显示的各种二维、三维图表、图片控件以及多种专用图形控件,需要用到DAQ的小盆友们肯定要大笑了。
不得不说的是,LabVIEW提供的三维图表、图形控件应该都是Windows的ActiveX控件,用起来非常不爽,个人感觉。
下拉列表与枚举控件是Windows编程中常用的人机交互控件,LabVIEW也为你想到了,不过可别报太大希望,毕竟LabVIEW的本行不在这儿,但一般的功能也基本有了。
容器类控件,其实就是能包含或引入其它控件的LabVIEW控件,如大家非常熟悉的选项卡控件,另外还有分割栏控件,此外还有功能强大的ActiveX容器、.Net容器控件,顾名思义也能知道其强大功能了。
输入/输出控件是用来输入或配置你的输入输出资源的,比如信号采集时通道的选择、板卡资源的选择、串口资源的选择等等。
提到引用肯定有的小盆友两眼冒光,没错,LabVIEW也提供了引用。
于是,你可以不通过连线便能够调用了(顺便说一句,不通过连线调用的方法在LabVIEW里还是很多的)。
变体,这东东比较象VB里面的变体类型,如果你需要可以把任何数据类型转换为变体。
类则是最近版本里才提供的,号称LabVIEW也要支持面向对象的程序设计,不过到底如何还是日后再说了。
修饰,各种形状让你的界面更美观。
当然修饰只能是修饰,就像孔雀就是孔雀,无论如何也不会飞到枝头变成凤凰,哦,对不起,唐伯虎看多了。
修饰只起美化作用,不信你看看,前面板上的修饰控件,在程序框图里你是找不到的------其他功能控件可是绝对会找到程序框图中的对应变量。
系统、经典、Express、……好多控件,一句话,如果你用得到,你就顺着分类一层层去找。
1.2.2设计一个示波器前面板
为了熟悉一下各种控件,那就动手设计一个典型的界面吧,对LabVIEW来说,最典型的就是示波器面板了。
下面就是一个示波器前面板,试一试,把它做出来!
(哦,对了,这是LabVIEW自带的例子,你可以在帮助->
查找范例里面搜索TwoChannelOscilloscope就能找到,还有左上图1.14示波器前面板
角的标志其实是图片直接贴到前面板上的。
)
这一部分我们不只熟悉一下部分前面板控件,还要学会用右键,没错,LabVIEW中右键的功能很好很强大,很傻很天真,简直是不可或缺的。
好的,先找几个控件吧,当然我们就用常用风格的就行,同样的功能可选控件很多,你只要先组合出一个就行。
试一试,先用波形图控件和装饰控件组合成大致的样子,如图1.15所示。
图1.15示波器UI设计1
哦,我明白看起来不一样,那我们就在波形图上点右键,把我们不希望看到的左上角的标签和右上角的图例隐藏掉。
点击右键>
显示项,勾掉相应的对号就可以了。
不用说,你肯定注意到了右键下有很多选项,比如创建、替换、数据操作、高级等等。
这些菜单或之下的次级菜单提供给你了各种快捷操作,当然是针对当前控件的。
隐藏掉波形图的标签和图例后,稍微调整一下大小,那么具体布局差不多了。
那么我们仿照示例修改波形图的背景色为黑色。
这就用到了工具选板的设置颜色。
这只毛笔式样的东东就是用来设置前景色和背景色的,如果你想问什么是前景色什么是背景色,哦,打开Windows自带的画图工具体会一下吧。
你只要在设置颜色工具的的前景色颜色块或背景色颜色块上点右键,便能选择你想要的前景背景色。
我们就把前景来个一篇漆黑,然后刷一下波形图的边框,吼吼,神秘的黑色。
不过坐标看不见了怎么办?
没关系,用工具选板中的文字工具,就是那个大A,选中一下,然后看到菜单栏下方你的前面板上方的快捷按钮了没有?
点一下文字设置快捷按钮,你会发现什么字体、样式、颜色……这些全都有!
对了,你如果觉得这样找来找去麻烦,那在波形图控件上点右键>
属性,找一找,这下满足了吧。
图1.16示波器UI设计2
接下来就放置各种数字控件和布尔控件,还有一些文字说明,文字的东东就交给文字工具大A了。
别的控件呢?
你尽管放上,熟悉一下有好处的。
下面是多多少少做了个样子,嘿嘿,有点手懒,你的肯定会好很多吧。
顺便说一句,给的事例的前面板是使用经典控件(如图1.18),努努力,你能够做出一模一样甚至更好的。
图1.17示波器UI设计3图1.18经典控件面板
当然,以上只完成了前面板控件的放置,没有编写任何框图程序。
如果你切换到框图(通过点击菜单>
窗口>
显示框图程序,或者Ctrl+E快捷键,再或者你双击任意一个前面板控件---装饰除外),就能看到有一堆你放置的前面板各控件的VI图标,如图19所示。
为了让你的程序也能运行一下,像上图17一样显示正弦波,我们就加一个简单的波形发生VI。
切换到框图程序面板,通过点击查看菜单>
函数选板或右键直接点击框图程序面板空白处,你可以看到各种各样现成的函数VI或常量。
我们先不管别的,找到信号处理>
波形生成>
正弦波形VI
,点击放置到框图程序里,将该VI右上角信号输出那条线连到波形图控件图标上,OK了。
点击快捷按钮的运行按钮,看一看吧。
对于虚拟仪器程序设计来说,UI设计是非常重要的,也是当前许多“研究论文”或教程里面忽略掉的。
除了大家公认的简洁实用等原则外,其实我个人认为要根据用途(也就是需求)来设计。
比如若要实现类似示波器或其它测试系统程序,那最好是仿照普遍使用的示波器仪表面板进行设计和改进,如图14所示;
但如果是开发常用的交互程序,那么Windows系统风格无疑是比较好的选择,你能看出来吗,右图就是LabVIEW开发的配置对话框。
1.2.3LabVIEW函数选板
LabVIEW函数选板提供了各种数据类型、常量、流程控制、功能函数等,实现功能强大的应用程序就要靠这些幕后英雄了。
函数选板最能体现LabVIEW图形化编程的特点,我们来快速认识一下,如果你有其他编程语言的基础,那肯定不是有任何障碍了。
建立VI后,在框图程序窗口“查看”菜单选择“函数选板”,或者在框图程序区域点击右键就可以调出函数选板,点开每一项都能够得到众多的可调用函数,如右图所示(当然,有可能一些朋友控件选板或函数选板的排列方式不太一样,但没有关系的)。
以下简单说明一下部分函数选板的功能。
结构选板
用于控制框图流程的,只要一说起其中的函数VI你肯定就明白:
For循环、While循环、条件(Case)结构、事件结构、定时结构、顺序结构……。
可以说,任何编程语言都少不了的流程控制东东在这儿。
数组选板
还记得C语言里让人又爱又恨的数组吗?
数组越界很危险,数组大小不能动态改变……在这儿,不用管了,并且各种强大的数组函数,如插入、删除、拆分、搜索、排序……让你眼花缭乱!
簇与变体选板
前面已经在前面板控件中介绍过了能放置在前面板的簇与变体控件,这儿则提供了各种操作方法VI,尤其是簇操作,让你随心所欲定义和操作自己的数据类型。
数值选板
、布尔选板
在前面板空间中也有这些类型,框图程序中可用的数值与布尔VI更多。
数值类型、数学常量、数学运算、数值转换、复数操作等等,眼花缭乱,当然更高级功能(统计、微积分、线代、拟合、多项式……)还得从专门的数学选板里找;
而与或非、异或、同或等等布尔预算则在布尔选板里面。
文件选板
创建、删除、读、写文档,包括文本、二进制以及在两者基础上的电子表格、INI、XML和LabVIEW中自定义的各种文档格式。
选择合适的数据类型关系着你的文件操作的效率和易用性,真的要具体问题具体分析。
字符串选板
值得大书特书!
这是非常有用也是比较好用的,我们将在后面用一节来专门介绍一下。
当然,绝不是挨个把字符串VI功能、连线翻译一遍,那是LabVIEW帮助文档干的活。
比较选板
常见的大于等于小于等函数,以及判别是否空、是否是某格式数据的VI,在程序流程选择、导向时会经常用到。
定时选板
和时间、定时有关的函数,请进!
对话框与用户界面选板
提供了简单的提示框、错误警告、简单输入对话框等,要想有复杂的输入输出对话框怎么办?
自己设计了~
波形选板
要知道,LabVIEW可是测控程序设计高手,同信号采集、分析、显示打交道的小盆友一定得会用才行。
哦,对了,波形也是一种数据结构,其实就是簇的一种。
应用程序控制选板
如果你不想用连线的方式调用其他VI怎么实现?
如果你想在自己的程序中控制LabVIEW的开启运行怎么实现?
这里可以算作一点点高级特性,你会体会到其强大的。
同步选板
还记得VC或其他语言中的信号量、通知器或事件机制吗?
是不是很有用?
还记得先入先出的队列结构吗?
如果你会使用同步选板中的VI,恭喜你,你的程序设计(不仅仅是LabVIEW程序设计)已经入门了。
图形与声音选板
这个选板就不多做解释了,顾名思义。
不过可以简单说一句,如果你半分钟就能完成一个看图软件或音频播放是不是很吃惊的事呢?
以上只是基本的函数,还有更多的选板,尤其是LabVIEW擅长的------类似数学计算、信号采集与处理、仪器I/O……。
基本函数是高楼大厦的基础,而从本教程序言中我们就已经知道,用LabVIEW做他擅长的才是王道。
好的,我们就以一个例子结束本章,开始充满乐趣的LabVIEW学习之旅,当然,这个例子也是LabVIEW所擅长的,设计虚拟波形发生器(现在是有一点唬人)!
1.2.4虚拟波形发生器
如图1.19所示,前面板上主要就是一个波形图控件、退出按钮以及波形参数控件。
注意,不要着急把所有的东东都放到前面板上,先看看我们用到了哪些框图VI不迟。
图1.19虚拟波形发生器前面板
框图程序涉及while循环
、基本函数发生器
、高斯白噪声发生器
以及延时等待(ms)
如图1.20所示,完成框图程序的顺序没有严格要求,不过通常还是把流程控制VI拖进来,在这儿就是while循环。
默认循环右下角是循环条件(条件为真事停止或继续),左下角的i则是循环次数,从0开始。
当然,如果不给循环条件连一个布尔按钮或常量,这个程序肯定是不能执行的,那你可以放一个按钮在前面板,然后在框图程序中找到这个按钮并连到循环条件上。
当然,最快捷的是在循环条件上点右键,在菜单中选择创建输入控件(常量等也可以,由功能决定)。
在VI连线端点右键后直接创建输入输出控件是最常用的快速完成程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LabVIEW 实践 第一 二章序 正文 32
![提示](https://static.bdocx.com/images/bang_tan.gif)