【《LabVIEW编程结构及原理分析》4900字】_第1页
【《LabVIEW编程结构及原理分析》4900字】_第2页
【《LabVIEW编程结构及原理分析》4900字】_第3页
【《LabVIEW编程结构及原理分析》4900字】_第4页
【《LabVIEW编程结构及原理分析》4900字】_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LabVIEW编程结构及原理分析目录TOC\o"1-3"\h\u20876LabVIEW编程结构及原理分析 1220761.1LabVIEW的运行机制 131681.1.1LabVIEW应用程序的构成 112281.1.2LabVIEW的操作模板 3216841.2LabVIEW的程序结构 4236561.2.1循环结构 4138791.2.2分支结构 642141.2.3顺序结构 6233971.3数据类型 7316241.1.1数组 7119041.1.2簇 8227571.4LabVIEWOffice报告生成 8223951.4.1创建报告模板 8192901.4.2新建报表 9LabVIEW是一种在测试领域应用非常广泛的编程语言,它采用图形化编程的方式。通过对仪器进行编程,通信后从仪器中采集测量数据。在硬件层面上,大部分编程语言都无法实现此功能。LabVIEW作为一款强大的面向仪器编程的软件,丰富的库函数例如TCP/IP、ActiveX等软件标准的存在也让其应用范围更加广阔。所谓图形化编程语言即用流程图代替程序代码,简便易懂且生动形象,通过LabVIEW能够把程序打包成exe可执行程序,然后通过安装支持环境独立运行测试程序。生成的安装包不仅仅支持常用的Windows系统,对于其他的系统例如UNIX、Linux、Macintosh也都进行了很好的适配。1.1LabVIEW的运行机制1.1.1LabVIEW应用程序的构成虚拟仪器(VI)就是LabVIEW中的应用程序都包括三个部分,即前面板(frontpanel)、流程图(blockdiagram)以及图标/连结器(icon/connector)。前面板当我们创建一个VI后,软件会自动弹出两个界面,第一个界面叫前面板,作为前面板它承担着重要的作用,因为它是测试程序的具象化。仪器数据的显示,仪器图像的显示等等都需要在此界面来完成,而且一个程序的美观度也是可以从前面板看出来的,它还有另外一个名字叫虚拟仪器面板。在上面我们可以插入控件,例如输入控件、按钮与开关、显示控件以及指示灯等等,从而进行用户输入和显示输出。图3-1展示的是一个非常简单的随机信号发出所产生的信号,那么如何去控制这个信号的产生和停止呢,有这样一种东西叫布尔开关,我们需要在前面板上的工具库中找到它并且拉出来,来控制所对应的对象,即输入。波形图则是用来显示对象,即输出。有了输出和输出后,这才只是完成程序的第一步。它后面还有与之匹配的流程图,即程序框图。图3-1随机信号发生器的前面板流程图流程图其实就是图形化编程的源程序,通过搭建模块编程控制前面板上的插件进行输入输出,流程图中要有与前面板控件对应的连线端子,如图3-2所示,同时找到你要实现的程序相对应的模块按逻辑进行连线。图3-2对应的就是图3-1的程序框图,由随机数发生器产生信号并连接波形图显示,在图中我们可以看到还添加了一个While循环,因为如果没有该循环,我们看到的波形图就会只显示一次随机信号,没有办法显示出连续的信号发生,所以要设置一个While循环多次运行该程序,同时要让开关控制结束While循环,否则就会形成死循环。图3-2随机信号发生器的流程图结合上述流程,我们知道了,我们用LabVIEW最终需要实现的其实就是把现实世界的仪器映射到软件上,然后仪器面板的操作按钮,都是可以在前面板上实现的。仪器的内部构造就是咱们程序框图中的模块架构。一个完整的测试程序所拥有的功能可以让我们体会到操作真实仪器的感觉,但是通过编程可以让测试更加自动化。并且VI和子VI的一层层嵌式调用,其中的内容是相当丰富和值得研究的。1.1.2LabVIEW的操作模板LabVIEW的操作模板主要包括工具模板、控制模板、功能(函数)模板等。工具模板(ToolsPalette)该模板可以在菜单栏里查看中点击工具选板进行显示,如图3-3。主要用于创建、修改、调试程序,如果并不清楚图标表示的含义或者功能,可以把鼠标放在图标上查看,例如连线用来连接程序框图中的模块,使用该工具时可以看到每条连线对应的数据类型,在编程和调试程序时检查错误经常会用到该工具。图3-3工具模板控制模板(ControlPalette)控制模板只有在前面板设置时才能打开,鼠标右击即可显示如图3-4所示,为了能够控制输入对象和显示输出对象,我们采取插入控件的方式。在每个图标下面会对应许多子模板。在该模板中,我们通常会用到Numeric数值量手动输入数值或是控制数值及其显示,还有布尔开关用来控制循坏的结束,数组和簇、图形显示等。图3-4控制模板函数模板(FunctionsPalette)函数模板只有在打开程序框图时才可以使用,在搭建框图时主要使用的就是函数模板里面的各种模块,每个图标下面也有对应的子模板,甚至种类和内容比控制模板更加丰富,如图3-5所示。例如结构中包含着各种循环结构及变量,数值运算包含着数制转换、各种函数运算等,字符串与函数、数值等之间的转换,数组运算,比较运算函数,仪器输入输出,各种波形处理工具等等都是经常使用到的。图3-5函数模板1.2LabVIEW的程序结构通常在LabVIEW编程中,大多数时间我们都会用到各种各样的程序结构,以解决编程过程中产生的冗余,合理使用程序结构不仅可以逻辑清晰,使程序顺利运行,在一定程度上也会使编程变得更加便捷简单,在下面我将向大家介绍在编程时经常使用的三种程序结构,分别是循环结构、分支结构、顺序结构。1.2.1循环结构While循环相信大家对While循环应该比较熟悉,因为在以往用程序代码编程时我们也会经常用到Do...While循环、Until循环这种,和LabVIEW中会使用的While循环的功能都是类似的。While循环的框图中左下角有着循环变量,右下角有条件端子,在下面的结构框图3-6中,这是一个最基本的While循环,通过鼠标的控制我们可以把它改变成合适的大小,然后把其他的模块拖放其中。这里有一点是非常重要的,那就是条件端子一定要有一个条件输入,这个可以用布尔来进行控制循环的开始和结束。而i是我们循环的次数,每执行一次循环,这个i值就会加一,并且循环至少要运行一次。图3-6While循环示意图这里有个小例子,如图3-7所示,该程序框图的目的是用While循环和图表获得数据,并实时显示。该图中While循环执行多少次是不确定的,控制开关和条件端子相连,如果循环中的开关是打开的,设置条件为真,那么循环便会持续运行,直至关闭开关。图3-7使用While循环和图表For循环For循环,是一种本身通过循环次数来控制循环开始、结束的循环,不同于While循环的条件端子控制,我们人为可以限制循环的次数,这里次数的值就是N值,它和i有相似的地方,都有计数功能,但是它还有停止循环的功能,如图3-8所示。在搭建ATE自动测试系统时,我们通常会使用While循环而不是For循环,因为我们并不能非常确定的给出循环执行的次数,需要根据具体测试芯片的各项参数和情况给出条件。图3-8For循环示意图1.2.2分支结构分支结构也可以称为条件结构,在框图左侧有条件端子,上方有子程序标识,两边的箭头则是按钮,用来更换子程序,条件结构可以有多个子程序,添加默认的分支结构通常是真、假两个子程序,如图3-9所示。我们还可以根据实际情况添加1、2、3…等多个子程序,值得注意的是,在使用分支结构时我们要在每个子程序中都添加程序框图,从而确保它在各个情况下都能执行程序。在进行ATE自动测试编程时,通常我们会把条件结构用在其他结构里面作为运行条件,而不是单独编程一个条件结构,这个条件结构其实和其他编程语言里的if条件语句有异曲同工之妙。图3-9分支结构示意图1.2.3顺序结构在使用一些程序代码编程时通常代码中就包含着顺序结构,我们只要按照逻辑一步步编程下来运行即可,那么在首次用LabVIEW编程时我们就忽略了顺序结构这个重要的步骤,一开始我们搭建完模块进行运行时出现了顺序上的错误,有连线时会按照连线的方向和顺序进行运行,而没有连线的几个模块之间就会同时运行,但实则这个其中是需要有前后顺序才可以让程序成功运行实现功能。在这个时候,我们就需要用到顺序结构,这也可以说是这种图形化数据流式编程语言的特殊之处,在LabVIEW里有平铺式和层叠式两种类型的顺序结构,层叠式在上方有可以切换子程序的按钮,而平铺式呢则是将所有的编程内容全部显示,如图3-10所示。虽然层叠式比较节约地方,但是为了编程方便我们选择的是平铺式顺序结构。平铺式的编程版图会比较大,但是可以让我们清晰直观地看到我们编程的各个模块,方便我们随时调整和修改,同时也更容易理清前后的逻辑结构,而层叠式就比较麻烦编程时需要不断来回切换,对于初学者来说编程的模块一多很大程度上就会导致混乱。图3-10平铺式顺序结构示意图1.3数据类型数据类型最主要的有两种类型:数组和簇。在其他语言和课程中我们也学习过相关的使用,相比簇而言,我们对于数组还是更加熟悉一些。数组数组,顾名思义就是将同样类型同样功能的元素集合在一起,方便于一起使用。数组是由数值构成的,可以是一维也可以是多维的,那怎么样访问到数组内的每个数值呢,就是通过索引的方式,从0开始到n-1,n代表着数组元素中的个数。数组元素的类型也是比较丰富的,数据、字符串等等都可以作为数组的元素,值得注意的是在一个数组中的元素必须得是一个类型的。簇相比数组而言,它的元素可以是不同类型的,和C语言中Struct的功能比较相似。由于上述提到的簇的元素可以是不同类型的,那么使用簇就可以将程序框图中的数据元素集合在一起,不需要担心它的类型是否一致,这样可以减少连线,让程序看起来更加简洁方便,也更容易看懂理清。1.1.1数组数组在LabVIEW中的应用有很多,但我们在搭建ATE自动测试系统时主要用到的是创建数组还有二维数组转置。首先创建数组BuildArray函数,在创建之后要在里面放入元素,在BuildArray函数中可以输入标量或者数组,如果要创建多维数组,在添加数组之后用鼠标下拉即可。在使用数组时要将连线类型改成索引模式才可以正常运行程序,自动索引到数组内的数值。二维数组的转置相信大家都能理解它的含义,那么之所以要使用它呢,是为了保证在测试得到的数据输出到模板时顺序没有出现行列错误。当然数组的使用远远不止我上面提到的这些,比如还有数组大小、数组子集、索引数组等等,更加体现了LabVIEW这款软件中随便一个概念或者应用都可以有很大空间进行深入探究。1.1.2簇簇的创建方法和数组是类似的,也需要有一个壳,簇用到比较多的一个功能就是捆绑和分解数据,首先如果你想将两个簇连接在一起,那么这两个簇的序和类型得是一致的,不然就需要进行更改。簇和数组一样都是为了将同样的内容规整到一起,那我们对它们进行修改时有时候并不需要对整个簇进行操作,只要改动其中的一项或几项,这个时候我们就可以使用簇的捆绑与分解,而在我们查询元素时,通常会用名称查询会比较方便,BundleByName就提供了这样的功能,查询到以后便可进行修改替换,那么怎么样可以返回指定的元素呢,使用Unbundle就可以。那么簇和数组相比操作功能呢就没有那么多,但这也从另一个层面验证了簇的方便与简洁,当然它在某种程度上而言是可以和数组进行相互转换的。1.4LabVIEWOffice报告生成假设现在我们的自动测试系统已经搭建完毕,那么我们要到哪里去看我们测试的数据以及进行各项分析呢,这个时候就需要我们将LabVIEW中的测试数据导出到Excel里,生成测试报告。在此基础上的第一步就是要自己设计一个和测试产品的各项参数相匹配的测试模板。1.4.1创建报告模板例如现在我们要测试一块芯片,测试内容包括S参数、端口插损、隔离度等,那么首先我们要给报告模板一个标题,如TestReport这种,随后输入一些基本测试信息,如测试人、测试产品型号、测试产品版本、测试日期等,设置好填写测试端口、选择测试隔离还是插损、S参数、频率、输出测试数据的单元格,根据输入不同的频率测试得到相关端口的插损或是隔离度,值得注意的是在做模板时,要在一个Excel里有两个工作表分别是S12和S21,输入输出端口的不一致会导致测试得到的数据也是不一样的,所以要创建多个工作表。另外我们也要根据具体测试情况在Excel的左上角适时地修改一些单元格的名称。一份简易模板如下图3-11所示,该图只展现了S21时的报告模板,S12也是一样的。当然在测试5GNRFEM时的参数远远要比下面这份模板中的多,详细内容会在其他章节中阐述,在做完报告模板之后,要记得模板所在的地址,方便之后添加到LabVIEW中进行引用,不然的话在运行程序时就无法正确地打开模板,测试数据也会因此丢失。另外在这份模板中其实我们还做了一些美观,能让我们在看报告时更加舒服,条例也更清楚,例如我们设置了单元格对齐、边框和背景色等功能。图3-11报告模板1.4.2新建报表在做完单独的Excel模板之后呢,我们就需要在LabVIEW中搭建程序进行调用模板,如图3-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论