




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章LabVIEW的程序结构,主要的程序结构有:循环(While循环和For循环,移位寄存器iN;i+)循环体;Labview中的For循环基本的For循环结构由:循环框循环次数端口计数端口组成。,循环框,计数端口,循环次数端口,2For循环的工作流程For循环用于将结构中的程序循环执行指定的次数。在开始For循环之前,从循环次数端口读入循环次数,计数端口输出0值。接下来执行For循环框内框图代码程序,每执行一次计数端口值自动加1。循环次数达到设定值后,退出循环。,For循环的时间控制,实验二“创建VI”的改进问题:1.显示更新太快,看不清楚,怎么办?2.如果希望显示更新时间可控,怎么办?,利用For循环的自动索引创建数组,在For循环的边框上可以自动地按顺序累积数据,形成数组,这种特性被称为自动索引。自动索引为打开状态时,每一次循环产生一个新的数组元素,并存储在循环的边框上。,例如:下图中通道自动索引功能有效时,每一次循环产生一个新的数据,存储在循环的边框通道上,待循环结束以后,产生的6个数据将传送到一个数组指示器中。自动索引功能无效时,只有最后一次For循环产生的1个随机数传到循环外。,空心,实心,创建二维数组,使用两个For循环,把其中一个嵌套在另一个中可以生成一个二维数组。外层的For循环产生行,而内层的For循环产生列,自动索引不仅是指将循环框内的数据累加成一个数组输出到循环框外面,还指将循环框外面的数组成员逐个依次进入循环体内。数据通道是用连线工具连接循环框内外的数据端口时,在框架上自动形成的方形通道图标。图标空心表明此时数据通道具有自动索引功能,实心图标不能索引若自动索引被设为无效,则只有最后一次循环产生的数传到循环外。For循环数据出口的自动索引默认为有效。在数据出口信道上右击,弹出菜单中可修改自动索引。,For循环对数组的索引功能扩展,习题一,利用For循环产生一个周期的方波,每周期包含20个数据点,峰峰值为2,以y=0为对称轴1.创建一个测量温度的VI程序,该程序显示温度的单位可以选择为华氏度或摄氏度,并建立其图标/连接口,使之可被其他VI程序作为子程序调用。2.学习调用练习1中所建立的子VI,若是华氏温度则可以直接显示,若是摄氏温度则可将其转化为华氏温度。利用For循环产生一个周期的三角波,锯齿波,怎么办?,答案,4.2While循环,For循环和While循环的区别:For循环要执行预先指定的循环次数。而While循环只有在条件端口接收到的值为False时才停止循环。While循环不必知道循环次数。While循环不满足条件也要执行1次。For循环当N1时1次都不执行。,1.While循环的创建While循环由循环框、条件端口和计数端口组成。,循环框,条件端口,计数端口,2.While循环的工作流程条件端口控制循环的停止与否。条件端口有两种状态:当使用状态为StopifTrue时,若输入值为Ture,则停止循环。若输入值为False,则继续执行下一次循环。当使用状态为ContinueifTrue时,若输入值为Ture,则继续执行下一次循环。若输入值为False,则停止循环。循环结束后,才去检测条件端口的值,因此不管条件是否成立,循环至少要执行一次。相当于C语言中的do循环体;while(条件),习题二,分别用for或while循环计算:计算y=1+2+.+N;计算y=x2,x=0,1,.N;文本语言for循环s=0;for(i=1;i=n;i+)s=s+I;,While文本S=0;Doi+;S=s+I;while(iN),4移位寄存器创建:右击边框,弹出一个菜单,选择AddShiftRegister选项,可添加一个移位寄存器。用途:主要用于While循环和For循环,将上一次循环的值传给下一次循环。数据类型:数字型、布尔型、字符串等。初始化:在循环外将初始值连到移位寄存器的左端口,有默认初值。还可以存储前几次循环的值,在移位寄存器的左端口或右端口上右击鼠标弹出菜单,选择AddElement选项,可创建附加的左端口来存储前几次循环的值。,5反馈节点功能:在循环中,将数据从一次循环传递到下一次循环。反馈节点箭头的方向表示数据流的方向。反馈节点和移位寄存器可以互换,在反馈节点或移位寄存器图标上弹出快捷菜单选ReplacewithshiftRegister或ReplacewithFeedbackNode即可。移位寄存器左端口多于1个时不能转换为反馈节点。,下面是用移位寄存器(左图)和反馈节点(右图)实现a+的框图程序。,while循环和For循环索引功能比较,在For循环和While循环的边框上可以自动地累积数据,形成数组,都有自动索引功能。For循环数据出口的自动索引默认为有效。而While循环的数据出口的自动索引默认为无效在数据出口信道上右击,弹出菜单中可修改自动索引。,用While循环和For循环实现求N的比较,4.3顺序结构,LabVIEW是一种数据流程序设计语言,没有明确的先后顺序,当节点所有输入端的数据全部有效时,节点才执行。思考:如何知道while循环的执行时间?,1.顺序结构的创建在函数模板的Structures子模板中选择创建顺序结构。选取StackedSequenceStructure层叠式顺序结构。Sequence结构,它是一种先后顺序执行的结构,看上去象电影胶片的帧(Frame),每一帧为一段框图程序,按照帧(Frame)的顺序来执行框图程序。在结构边框上面单击鼠标右键,从弹出的快捷菜单中选择“AddFrameAfter”或“AddFrameBefore”可以增加子图形代码框。两种形式顺序结构,FlatSequenceStructure平铺式顺序结构和StackedSequenceStructure层叠式顺序结构。功能相同,区别仅在于表现形式不同。在结构边框上右击弹出的快捷菜单,选择ReplaceReplacewithFlatSequence,可以将层叠式顺序结构变换为平铺式顺序结构2.顺序结构的工作方式数据传递至顺序结构时,层叠式从标识0开始执行,依次顺序执行;平铺式从左至右执行所有子图形代码框。,顺序结构示意图,层叠式结构需要注意的地方代码框之间的数据传递,平铺式可从一帧直接连线到另一帧来传递数据,层叠式则需要通过局部变量SequenceLocal来传送数据。在层叠式顺序结构的边框上面右击,选择AddSequenceLocal即可在当前帧创建一个顺序局部变量端口。将本帧中的数据连接到该局部变量端口,该数据就可传到后面的帧,该数据不会作用到它前面的帧。,如下图示意了层叠式顺序结构通过局部变量传递数据的情况。在标识是1号帧的一个数据传递到标识是2号的帧进行“或”运算,0号帧不能使用该数据。,4.4Case结构,1.文本语言选择结构Switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;:case常量表达式n:语句n;default:语句n+1;,4.4Case结构,1.Case结构的创建Case结构由选择框架、选择端口、选择器标签,以及递增/递减按钮组成。,选择标签,递增按钮,递减按钮,选择框架,选择端口,2Case结构的工作流程Case结构有一个条件选择端口(Selector),根据连到该端口的值来判断执行哪一个子Case。Selector端口的数据类型有布尔型、数字型和字符串型。3设置选择结构的默认项应设置一个默认项来处理超出条件选项范围的情况。设置选择结构默认项的方法是在选择结构边框上单击鼠标右键,选择MakeThisTheDefaultCase。,4选择结构数据通道的设置输入数据时,每个子Case框可连可不连数据通道。输出数据时,每个子Case框必须为通道连接数据。否则程序不能运行,这时通道的图标是空心的,只有为每个子Case框的数据端口都连接数据后,图标才变成实心。UseDefaultifUnwired可使程序中没有连线的子Case框输出默认值。,例题1-例6.4.1,例题2,程序运行后要求用户输入一口令,如口令正确,则产生100个随机数,并求其最小值.试计算你在前面板输入以下字符所用的时间:AVIisaprograminGprogramminglanguage.编写一个程序,在前面板上放三个按钮,当按下某个按钮时,输出这个按钮的编号.,4.5事件结构,1.事件结构的意义和类型使labview语言具有了事件驱动的能力,即指应用程序在没有某事件发生时处于休息状态,此时可将CPU交由其他程序使用,直到前面板窗口有一事件发生。提高资源利用率事件结构能够响应的事件类型:通告事件和过滤事件通告事件:通知labview有一个动作发生,如鼠标事件、键盘事件、菜单选择事件、窗口事件、对象数据发生变化等。过滤事件:可以在用户界面收到事件数据之前决定是否激活、修改这些数据,或者完全丢弃这些数据而使其对VI不产生作用。,1.事件结构的组成和特点,事件结构包括:结构框、事件标签、超时端口和事件数据端口。一个事件结构能够响应多个通告事件和过滤事件,如鼠标的点击和移动,这是与层叠式顺序结构的区别,2事件结构的使用只有当特定事件发生时该结构才被激活;否则处于睡眠状态;可有一个或多个子图形代码框,该图形代码框可以设置为响应多个事件。右击事件结构边框,从弹出的快捷菜单中选择EditEventsHandledbyThisCase,这时将弹出编辑事件对话框。,显示当前建立的事件,默认“Timeout事件。,增加事件,删除事件,可以选择的事件源,相应的事件源可产生的事件消息,练习1:建立一个5秒的超时事件和一个“OKButton”开关值发生变化的事件,要求:方法1:由不同的框图程序响应不同的事件,显示出对话框“超时事件”或“单击了OK按钮事件”。方法2:任一事件发生都执行同一个子图形代码框程序,显示出对话框“超时或单击了OK按钮”。,法1:在前面板添加放置一个“OKButton”控件。在编辑事件对话框中单击按钮新建一个事件,选取“EventSources”事件源窗口中的“OKButton”,并在“Event”事件窗口中选择“ValueChange”。选取OneButtonDialog函数,放置在EventStructure中。在message数据端口新建一个常量,输入“超时或单击了OK按钮”。在超时端口连接值为5000的一个数字常量。,运行程序,如果单击了“OKButton”按钮或等待5秒都会显示出对话框“超时或单击了OK按钮”。,法2:在事件结构边框的快捷菜单中选择AddEventCase来创建事件结构的一个分支。在弹出的对话框中,选取“EventSources”事件源窗口中的“OKButton”。并在“Event”事件窗口中选择“ValueChange”。后面的设置与法1类似。,4.6属性节点,在前面板设计编程时,我们可以修改和设定对象控件的属性,但是在程序运行时能否由用户修改或程序自身改变呢?方法是:创建对象的属性节点,通过对属性节点的“写”操作,完成对对象属性的修改。同样通过对属性节点的“读”操作,在程序中读取对象的属性。,练习2:程序运行中,用Knob控件改变图形曲线的颜色,提示:建立CHART的属性节点,改为可写,并指定为曲线Plot的颜色Color属性,利用RGB三个旋钮改变chart上线条的RGB值,并利用属性节点控制chart可见属性及闪烁属性,趣味习题虚拟计算器,4.7公式节点,在框图程序中,如果需要设计较复杂的数学运算,框图将会十分复杂,工作量大,而且不直观,调试、改错也不方便。利用公式节点,只需将数学公式的文本表达式输入在公式节点的框图内,并连接相应的输入、输出端口,则LabVIEW会自动地根据公式计算出正确的结果,并从输出端输出。,(1)公式节点的创建从函数模板的Structures子模板上选择公式节点FormulaNode,在框图中设置公式节点。公式节点的边框大小可以改变,用户可以使用标签工具,将数学公式直接输入到公式节点的框内。,(2)公式节点的使用可以声明变量,也支持一些常用的C语言的语句(包括赋值语句、条件语句、循环语句、Switch语句),每条语句以分号结尾。输入公式后,需要添加输入、输出端口。在添加端口后出现的方框内填入变量名称。将输入端口和程序中的数据端口相连接。将输出端口和程序中的指示端口连接,公式节点中常用的运算符,其中,条件运算符的“?”前的部分是判定条件,“?”和“:”间的部分为当条件为True时的表达式,“:”后的部分为当条件为False时的表达式。,公式节点常用数学函数:abs、acos、acosh、asin、asinh、atan、atan2、atanh、ceil、cos、cosh、cot、csc、exp、expml、floor、getexp、getman、int、intrz、ln、lnp1、log、log2、max、min、mod、pow、rand、rem、sec、sign、sin、sinc、sinh、sizeOfDim、sqrt、tan、tanh。公式节点中可使用语句IF条件语句,for和do、while循环Swtich()case分支语句公式节点的语法与C语言相同,例:用公式节点计算y1=x3+x2+5和y2=m*x+b,分析:公式的输入端口共有3个输入量,分别是m、b和x。3个输入量经过公式节点中的两条语句完成指定的运算,通过输出端口输出y1和y2。,习题,1.用While循环,创建一个程序使之当输入0到100之间的随机数,大于等于循环次数时继续运行。2.学习使用双重For循环。创建一个程序,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶焊接工艺过程控制考核试卷及答案
- 小麦脱皮工艺考核试卷及答案
- 锦纶纤维纤维耐高温处理工艺考核试卷及答案
- 粮食经纪人基础知识考核试卷及答案
- 压电石英晶体研磨工三级安全教育(班组级)考核试卷及答案
- 山西省晋中市榆次区2024-2025学年八年级下册期末测评数学试卷含解析
- 注册安全工程师安全生产法测试卷附答案
- 市场调查及咨询服务公司合同付款管理办法
- 产品供货协议
- 应届生面试题库及答案
- 电网工程设备材料信息参考价(2024年第四季度)
- 数据中心运维服务投标方案(技术标)
- BACTEC-FX血培养仪标准操作程序
- 《蛋白质组学》课件
- 3.新教材八上第三单元阅读综合实践
- 大学生劳动教育通论知到智慧树章节测试课后答案2024年秋大连海洋大学
- 2024版农业公司与个人农产品种植合作合同范本3篇
- 机器学习技术与应用 课件 第3课 协作机器人
- 【高分复习笔记】汪流《电影编剧学》(修订版)笔记和课后习题详解
- 神话故事民间故事《嫦娥奔月》绘本课件
- 人教部编版九年级语文上册《行香子》示范公开课教学课件
评论
0/150
提交评论