第11讲-虚拟仪器技术软件开发_第1页
第11讲-虚拟仪器技术软件开发_第2页
第11讲-虚拟仪器技术软件开发_第3页
第11讲-虚拟仪器技术软件开发_第4页
第11讲-虚拟仪器技术软件开发_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

现代测试技术及应用作业:

1.虚拟仪器系统组成包括哪几个部分?

2.虚拟仪器软件开发环境通常都包括哪几种? 3.简述虚拟仪器技术的优势。WearehelpingtonurturefutureengineersandscientistsTheengineersandscientistsof2020aresecondgraders– 7-and8-year-oldsWhyNationalInstrumentsandLEGO®?IntelligentBrick32-bitprocessorHi-SpeedUSBandBluetoothcommunication100x64pixeldisplay3outputs4inputsLoudspeaker(8kHzsoundquality)Power,6AAbatteries

(wallchargerineducationalkit)ProductOverviewTriBotDemos–YellandSpin–CatchandRun–RecordandPlayTriBotYellandSpinTriBotCatchandRunTriBotRecordandPlay

4虚拟仪器软件开发

(1)LabVIEW概述;

(2)LabVIEW编程环境;

(3)LabVIEW程序结构;

(4)LabVIEW图形化数据及显示;

第7章

虚拟仪器技术一

LabVIEW概述1什么是LabVIEW?LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器工程平台)是美国NI公司(NationalInstrumentCompany)推出的一种基于G语言(GraphicsLanguage,图形化编程语言)的虚拟仪器软件开发工具。G语言作为LabVIEW的核心语言C语言、BASIC语言一样,是一种带有各种函数库的编程语言,它提供了专门用于数据采集和仪器控制的函数库与开发工具。

用LabVIEW设计的虚拟仪器可脱离LabVIEW开发环境,最终用户看见的是和实际的硬件仪器相似的操作面板。LabVIEW为虚拟仪器设计者提供了一个便捷、轻松的设计环境,利用它,设计者可以像搭积木一样,轻松组建一个测量系统和构造自己的仪器面板,而无需进行任何繁琐的计算机代码的编写。2LabVIEW软件的特点与优点①图形化的编程方式,设计者无需写任何文本格式的代码,是真正的工程师的语言。②提供了丰富的数据采集、分析及存储的库函数。③既提供了传统的程序调试手段,如设置断点、单步运行,同时提供有独到的高亮执行工具,使程序动画式运行,利于设计者观察程序运行的细节,使程序的调试和开发更为便捷。④

32bit的编译器编译生成32bit的编译程序,保证用户数据采集、测试和测量方案的高速执行。⑤囊括了DAQ、GPIB、PXI、VXI、RS–232 / 485在内的各种仪器通信总线标准的所有功能函数,使得不懂总线标准的开发者也能够驱动不同总线标准接口设备与仪器。⑥提供大量与外部代码或软件进行连接的机制,诸如DLLs(动态连接库)、DDE(共享库)、ActiveX等。⑦强大的Internet功能,支持常用网络协议,方便网络、远程测控仪器的开发。

4虚拟仪器软件开发

(1)LabVIEW概述;

(2)LabVIEW编程环境;

(3)LabVIEW程序结构;

(4)LabVIEW图形化数据及显示;

第7章

虚拟仪器技术二LabVIEW编程环境LabVIEW8.6主对话框中有六个大项,LabVIEW软件包内容分别包含在这六个项目中。1NewVINewVI是LabVIEW提供给用户创建/设计虚拟仪器的工作环境。一个VI由两部分组成:一个前面板(Panel)和一个流程图(Diagram)(或称后面板)。

前面板的功能等效于传统测试仪器的前面板;

流程图的功能等效于传统测试仪器与前面板相联系的硬件电路。2 Panel(前面板)及其开发窗口

当在主对话框中选择“NewVI”后,出现的第一个窗口是前面板开发窗口。窗口中包含主菜单栏(File,Edit,Operate,Project,Windows,Help)和快捷工具栏。

设计制作虚拟仪器前面板,就是用Tools(工具)模板中相应的工具去取用Controls(控制)模板上的有关控件,摆放到窗口中的适当位置,来组成虚拟仪器前面板。

3 Diagram(流程图)及其编辑窗口

流程图是图形化的源代码,是VI测试功能软件的图形化表述。虚拟仪器是由软件编程来实现测试功能的,而软件编程分两种:基于传统的文本式编程方式,如Labwindows/CVI;图形化编程方式。LabVIEW采用图形化编程方式。在流程图编辑窗口,选用Tools(工具)模板中相应的工具去取用Functions(功能)模板上的有关图标来设计制作虚拟仪器流程图,以完成虚拟仪器的设计工作。4取用控件和模板的各种方法(1) ControlsPalette(控制模板)的调用方法 在前面板开发窗口,选择主菜单“Windows>>ShowControlsPalette”或按鼠标右键即弹出。

(2) FunctionsPalette(功能模板)的调用方法 在流程图编辑窗口,选择主菜单“Windows>>ShowFunctionsPalette”或按鼠标右键即弹出。

(3) ToolsPalette(工具模板)的调用方法

选择主菜单“Windows>>ShowToolsPalette”即弹出。

5主菜单栏及快捷工具栏

主菜单栏及快捷工具栏用于虚拟仪器的设计、编辑及运行。

1)主菜单栏简介

主菜单栏共有六个子菜单。 ① File子菜单。在进入LabVIEW开发窗口后,如果想新建(New)、打开(Open)、保存(Save)、打印(Print),关闭(Close)VI时,点击File中的相应选项。当在NewVI环境中欲进入OpenVI时,不必退回主对话框。

② Edit子菜单。 将文本式编程语言中常用的Cut、Copy、Paste、Delete功能用于LabVIEW中的图标及控件的操作。 ③ Operate子菜单。该子菜单主要选项有Run、RunContinuously、Pause、AbortExecution、HighlightExecution,用于调试或运行LabVIEW程序。④ Project子菜单。该子菜单选项主要有:ShowVIHierarchy:显示VI流程图中所调用的子VI。

FileManager:用于调用Windows下的应用程序。InstrumentWizard:与LabVIEW8.6主对话框中SolutionWizard的内容相同。

⑤ Windows子菜单。子菜单选项用于弹出Diagram(流程图)编辑窗口、Panel(前面板)设计窗口、ToolsPalette(工具模板)、Functions(功能)模板和Controls(控制)模板。 ⑥ Help子菜单:子菜单选项用于各项分类帮助。2)快捷工具栏简介

①虚拟仪器启动运行按钮,当VI没有脱离LabVIEW环境时,可用它来启动运行程序。 ②虚拟仪器连续运行按钮。 ③终止虚拟仪器程序运行按钮。 ④暂停虚拟仪器程序运行按钮。

⑤单步点亮运行虚拟仪器程序按钮。当用鼠标点击该按钮后,再运行程序,在流程图编辑窗口中可以看见数据流的走向。 ⑥单步运行虚拟仪器程序按钮。 ⑦跳过子VI运行虚拟仪器程序按钮。 ⑧文字编辑框,用于虚拟仪器设计过程中涉及到的文字的编辑,如选择文字的大小、颜色、字体等。⑨对齐按钮,用于把控件或图标左、右、上、下对齐排列。⑩排列方式框,用于把控件或图标分布式均匀排列。⑾重叠方式框,用于把控件或图标放置于上面或下面重叠放置。前五项子菜单功能分别与Operate子菜单中的选项Run、RunContinuously、Pause、AbortExecution、HighlightExecution的功能相同。

4虚拟仪器软件开发

(1)LabVIEW概述;

(2)LabVIEW编程环境;

(3)LabVIEW程序结构;

(4)LabVIEW图形化数据及显示;

第7章

虚拟仪器技术三LabVIEW程序结构1顺序结构(SequenceStructure)2For循环3While循环4Case结构5事件结构(EventStructure)6使能结构7公式节点(FormulaNode)所有的程序结构都位于“Functions—>AllFunctions—>Structures”子模块中1顺序结构(SequenceStructure)顺序结构包含一个或多个按顺序执行的子程序框图或帧,程序中用帧结构来控制程序的执行,执行完某一帧中的程序后再执行下一帧中的程序。顺序结构包括层叠式顺序结构和平铺式顺序结构。顺序结构位于函数模板中的“AllFuntions—>Structures”子模板中,包括FlatSequenceStructure和StackedSequenceStructure。StackedSequenceStructureFlatSequenceStructure结构功能相同,相互之间可以进行转换,右键菜单中的“替换—>替换为平铺式/层叠式顺序”在StackedSequenceStructure的Frame间传递数据,不能通过数据线直接传递,要借助局部变量(右键菜单中的“添加顺序局部变量”)在FlatSequenceStructure的Frame间传递数据,可以通过数据线传递,不需要局部变量。*顺序结构是一种强制的串行机制,虽然可以保证执行顺序,但同时也阻止了并行操作,应避免过多使用顺序结构。2For循环For循环用于将某段程序循环执行指定的次数。可以通过两种方法指定循环次数,一种是直接给定,一种是通过输入数组的大小给定。输入和输出数组移位寄存器(ShiftRegister)一个累加10次的a++程序通过局部变量实现通过移位寄存器实现

反馈节点(FeedbackNode)通过反馈节点实现a++

3While循环两个参数:当前循环次数和条件布尔判断量;循环次数由布尔量来判断决定。循环的条件有两种:“真时停止”和“真时继续”。添加定时器使用移位寄存器和反馈节点累加器程序4Case结构If(a%2==0)b=a+2;elseb=a+1;end等价于if...else...语句的Case结构等价于switch语句的Case结构switch(fruit){caseapple:price=9;casebanana:price=10;casepear:price=8;default:price=0;}5事件结构(EventStructure)分析该程序可以看出,这个程序在没有用户点击的情况下完全都是在“空转”,浪费了大量的CPU资源,而且当“事件”发生太快时可能会被忽略。因此Labview提供了事件结构来解决这个问题,即仅当“事件”发生时,程序才做相应的响应基于While循环和Case结构的单击计数器

事件结构框及设置1)事件处理分支:列出事件分支及总数2)事件说明符:列出事件源和事件结构当前分支处理的所有事件名称3)事件源:列出按类排列的事件源4)事件:列出事件源对应事件列表Filter事件顾名思义,当该事件发生时,用户可以过滤掉甚至完全放弃掉该事件将触发的活动。

6使能结构框图使能结构——注释程序框图7公式节点(FormulaNode)通过公式节点,用户不仅可以实现复杂的数学公式,还能通过文本编程写一些基本的逻辑语句,如if…else…,case,while循环之类的语句。y=公式节点中可以包含任意数量的公式

文本编程语言的实现基于公式节点的CRC16算法的实现

4虚拟仪器软件开发

(1)LabVIEW概述;

(2)LabVIEW编程环境;

(3)LabVIEW程序结构;

(4)LabVIEW图形化数据及显示;

第7章

虚拟仪器技术四LabVIEW图形化数据及显示

1波形数据(Waveform)2波形显示—波形图、波形图表3XY图4强度图形—强度图、强度图表5三维图形(3DGraph)—三维曲面图

三维参数图

三维参数图1波形数据(Waveform)LabVIEW在程序设计过程中和信号采集、处理和输出等操作有密切的联系,为了数据处理和程序设计的方便,提供了一种特殊类型的数据:波形数据波形数据就是按照一定格式预定义的簇,在信号采集,处理和分析过程中经常会用到它波形数据控件携带的数据包含了时间波形的基本信息,因此可以直接作为Chart和Graph的输入。横坐标代表时间,纵坐标代表Y值波形数据控件位于控件选板“AllControls—>I/O—>Waveform”波形数据包括以下组成部分:

1)起始时间t0,为时间标识类型;

2)时间间隔dt,为双精度浮点类型;

3)波形数据Y,为双精度浮点类型。

波形数据操作函数虽然波形数据是一种预定义格式的簇,但是必须用专用的波形数据操作函数才能对它进行操作,其中某些操作函数与簇的操作函数非常类似。波形数据的操作函数位于FunctionsPalette的AllFunctions->Waveform…子模板下获取波形成分将输入的波形解包,有选择的输出t0、dt、Y等数据创建波形根据输入的数据t0、dt等创建波形或修改输入的波形并输出设置波形属性给输入的波形添加属性(名称和值)后输出获取波形属性从输入波形中读取指定”名称“的属性值,输出原输入和属性值,如果没有找到则输出默认属性值

模数转换根据制定的分辨率和满刻度范围将输入的模拟波形转换为数字波形输出数模转换将输入的数字波形转换为模拟波形并输出索引波形数组提取输入波形数据中指定”索引”的波形并输出复制波形dt将输入波形中所有dt数值替换为指定索引处dt值对齐波形时间标识将输入波形中所有时间戳t0替换为制定索引处t0获取波形子集从输入波形指定的“起始采样/时间”处开始提取指定“持续期”的波形输出,并输出“实际起始采样/时间”和

“实际持续期”获取终止时间值提取输入波形最后一个波形值,并保持原输入波形

不变输入波形持续时间计算输入波形的长度输出,并保持原输入波形不变输出获取Y值提取输入波形合纵指定的Y位置处波形值并输出,并保持原输入波形不变输出按dt缩放将输入波形中所有dt值乘上缩放因子后输出获取波形时间标识数组获取输入波形中所有的时间戳,并组成一个数组输出波形数据操作函数举例返回LabVIEW最吸引的特性之一就是对数据的图像化提供了丰富的支持。强大的图形显示功能增强了用户界面的表达能力。2波形显示两个基本的图形显示工具:图和图表。图采集所有需要显示的数据,并可以对数据进行处理后一次性显示结果;图表将采集的数据逐点的显示为图形,可以反应数据的变化趋势,类似于传统的模拟示波器、波形记录仪。图显示的类型包括波形图、XY图、强度图和3D图;图表显示的类型包括波形图表和强度图表。最基本的图形显示控件都位于Controls—>AllControls—>Graph子模板上。2波形显示—波形图表Chart可以将新测得的数据添加到曲线的尾端,从而反映实时数据的变化趋势,它主要用来显示实时曲线。

右键菜单及属性框带状图表示波器图表扫描图对于标量数据,Chart图表直接将数据添加在曲线的尾端。

对于一维数组数据,它会一次性把一维数组的数据添加在曲线末端,即曲线每次向前推进的点数为数组数据的点数。

若要显示多条标量曲线,只需要用簇的Bundle函数将它们绑定在一起作为输入即可。

对于二维数组,缺省情况下是每一列的数据当作一条一维数组曲线。

分栏显示多条曲线右击Chart选择stackplots,可以显示多条曲线设置更新模式右击Chart选择Advanced->UpdateMode…可以设置曲线的更新模式。StripChart模式:曲线填满显示区后曲线通过左移来更新曲线。ScopeChart模式:曲线填满显示区后直接清空显示区重新开始从左向右增长曲线在SweepChart模式:通过一条指示红线从左向右刷新数据定制Chart显示样式返回2波形显示—波形图WaveformGraph波形图用于显示测量值为均匀采样的一条或多条曲线Graph和Chart的区别在于Graph是一次性将现有数据绘图,在绘图之前先自动清空图表,而不会将新数据添加到曲线的尾端。波形图控件都位于Controls—>AllControls—>Graph子模板上,它可以有多种数据输入类型:一维数组,二维数组,簇,簇数组,波形数据。右击Graph控件可以看到该控件有很多属性可以设置。选择VisibleItems…可以看到关于该控件的很多辅助选项。选择这些选项可以使它们都可见,如下图所示。图例右键菜单1)一维数组作为输入当输入数据为一维数组时,WaveformGraph直接将一维数组画成一条曲线,纵坐标为数组元素的值,横坐标为数组索引。

2)二维数组作为输入当输入数组为二维数组时,缺省情况下每一行的数据对应一条曲线,即曲线的数目和行数相同。

3)簇作为输入簇作为输入时需要指定三个元素:起始位置x0、数据点间隔dx和数组数据。4)簇数组作为输入一维簇数组也可以直接作为Graph的输入,此时相当于x0为0,dx为1

5)波形数据作为输入由于波形数据所携带的数据横轴为时间,因此需要将WaveformGraph的横轴设为时间轴。

返回3XYGraphXY图是反映水平坐标和垂直坐标关系的图,当需要画的曲线是由(x,y)坐标决定的时候,就需要采用XYGraph。XY图可以显示任何均匀采样或者非均匀采样的点的集合。其实WaveformGraph在一定意义上也是XYGraph,但是它的X轴必须是等间距的,而且不可控制。波形图控件都位于Controls—>AllControls—>Graph子模板上,其窗口及属性对话框与波形图窗口及属性对话框相同。1)XY两个一维数组绑定为簇作为输入

这是最简的一种情形,Bundle函数的输入的第一个数组为XArray,第二个数组为YArray。绑定为簇后可以直接输入,也可以将多个簇Build为一维数组输入实现多条曲线。

2)坐标点簇数组作为输入该方式将各个点的坐标绑定为簇,然后作为簇数组输入,和直接将XY数组绑定为簇输入效果一样。但是后者不一定需要XY数组的大小一致,它会自动将大的数组

温馨提示

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

评论

0/150

提交评论