已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
10、结构的使用条件结构条件结构是执行条件语句的一种方法。这类似于文本编辑语言中常见的IfThenElse语句。它位于程序框图中,函数编程结构条件结构。如图所示:条件结构包含有两个或者更多的子框图,每一个子框图包含一段程序代码,由此对应一个程序分支。多个子框图就像一摞卡片重叠在一起,任何时候只有一个是可见的,执行哪一个取决于于选择端子外部接口相连的某个整数,布尔数,字符串或者枚举指,用户也可以直接输入所有可能出现的值。 1 选择端口的输入值条件结构选择端口的输入值是由与它相连的输入控件对象决定的,数据类型可以是布尔量,整形,字符串型或者枚举型。条件结构顶部中间是各分支的选择标识,它自动调整为输入的数据类型,可以在工具模板上使用标签工具直接键入单个数值或某个数据范围。数值之间用逗号来分开,例如:“.0,2,4.10”表示选择条件为:0,2,4,5,6,7,8,9,10。 对于字符型和枚举型数值在条件标识上会自动加上双引号,当键入的选择器标识值与连接选择端口的数值类型不同时,选择器标识变为红色标识有错误。如图: 设置默认分支的方法是,选择一个分支结构,在快捷菜单中执行“本分支设置为默认分支”,它的作用是当选择端口的值与选择器标识值没有一个匹配时,就执行默认分支。如图: 2条件结构的数据通道条件结构的数据通道就是数据的输入和输出端口。将结构内外的端子相连后,边框上就会出现一个小矩形框,这就是数据通道,用于传输数据。向条件结构的一个分支提供数据时,这个数据对于所有的分支都是有效的,也就是其他分支都可以使用这个输入数据。条件结构的输出通道有些不同,当在一个分支中创建输出通道后,所有分支的同一位置都会出现一个白色小方框,它要求每一个分支都必须为这个通道予以连接,通道变为实心后程序才可以运行。也可以在通道的快捷菜单中选定“未连线时使用默认”为没有连接的分支定义一个默认输出值,这时输出通道变为灰色。如图: 条件结构应用举例例一:该例的目的是检查一个数是不是正数,如果是就计算该数的平方根值,如果不是则发出警告。1. 新建一个VI,在前面板上放置一个数值输入控件和一个数字显示控件。 2. 在程序框图上放置一个条件结构,调整边框为合适大小。 3. 在比较运算子模板中选取“大于等于0?”函数,如果数字大于或者等于0则返回真,否则返回假。它的输出连接条件接口的选择端口。 4. 在数值数字运算子模板中选取“平方根”函数,放置在条件结构的“真”子代码框。 5. 选择一个发声函数,放到条件结构的“假”子代码框。它位于函数编程图形与声音蜂鸣声。如图: 6. 在条件结构的假代码框的输出通道上选取创建常量,创建常数-999,表示当数值输入为负数时输出-999,同时蜂鸣器发出警告。 7. 完成连线,如图: 运行结果如图:例二:该例的目的是首先要判断液面的高度是否超过零界面,如果超过零界面则执行后续操作(循环判断液面是否超位),否则停止执行程序。 因为Labview语言的While训话是先执行,然后再判断条件。而在实际应用中,经常是要求先进行判断条件,只有当条件满足时才执行,否则不执行。可以在While循环中加入条件结构来实现此功能 1. 新建一个VI,在前面板上放置一个数值输入控件,模拟容器“液面高度”同时放置一个“液面报警”指示灯,当液面超过零界面时点亮。 2. 在程序框图上放置一个While循环结构并在它内部放置一个条件结构,调整结构边框位合适的大小。 3. 在比较运算子模板中选取“大于0?”函数,如果数字大于0返回真,否则返回假。它的输出连接条件的选择端口,并且连接到While循环结构的循环条件端子,表示输入数字量大于0则继续循环,并且执行真分支。 4. 在真分支代码框中,放置“大于?”函数,将“液面高度”与上限值“5”进行比较,输出送给“液面报警”指示灯。 5. 完成连线,并运行程序。程序及运行结果如图: 顺序结构顺序框图位于函数编程结构平铺式顺序结构,层叠式顺序结构。顺序结构依次执行程序,它可以包含多个代码子框图,这些代码子框图看起来就像是多帧电影胶片一样,所以把每个子框图称为帧。右击顺序结构的框架,将弹出如图所示的快捷菜单。 其中添加顺序局部变量是为了在各个帧之间传递数据。顺序结构的一个典型应用就是计算程序运行的时间,将通过这个例子来说明顺序结构的用法。 1. 新建一个VI,在前面板上放置一个数值输入控件“给定数据”和两个数值显示控件“执行次数”,“所需时间”。 2. 在程序框图上放置一个层叠式顺序结构,右击结构边框,在弹出的快捷菜单中执行两次“在后面添加帧”,创建帧1和帧2。 3. 选取第0帧,记录程序运行初始时间。 右击顺序结构框图的边框,在弹出的快捷菜单中执行“添加顺序局部变量”,这时在第0帧的下边框出现一个黄色小方框,这就是顺序局部变量,它可以在同一个顺序结构中的各帧之间传递数据。放置一个时间计数器到顺序结构内,它位于函数编程定时时间计数器。返回毫秒定时器的值,用与计算占用的时间。用连线工具将它与顺序局部变量相连,这时黄色小方框里会出现一个指向顺序结构外部的箭头,数值可用后续帧使用,如图:4. 选取第1帧,实现等于给定值的匹配运算。程序如图: 5. 选取第2帧,同样放置一个时间计数器函数用于返回当前时间,将它减去顺序局部变量传递过来的第一帧初始时间后就可以得到花费的时间,如图: 运行,结果如图:注意:Labview编程的主要特点是数据流形式,这便于VI大量的按照并行方式运行,优化了程序的计算性能。而顺序结构却趋向于中断数据流编程,禁止程序并行操作,顺序结构还掩盖了部分代码,所以用户在编程时应尽量不用或少用顺序结构。在实际应用中,经常用人为的数据依从关系来确定程序先后执行的顺序,在前面簇的章节中,我们就提到过Error簇可以控制程序执行的先后顺序,但并不是每一个控件都有Error簇的输入和输出端口,这时还有另一种方法能实现顺序执行的功能。如图: 从第一个While循环结构中的布尔开关上连了一根线到第二个While循环结构的边框上,可以看到,第二个While循环结构中没有一个对象需要这个数据,只是起到顺序执行程序的目的。公式节点用户可以在程序框图的两个位置找到公式节点结构,一个位于函数Express算术与比较公式;另一个位于函数编程结构公式节点。如图:第一种公式节点的使用比较方便,如图: 当把第一种公式节点放置到程序框图上时,系统便会自动弹出如上图所示的对话框,它的操作比较简单,当上述对话框右上方的方块显示为绿色时,则表明系统识别输入的函数,当出现非法函数时,则表明系统不识别。如图: 它的使用虽然方便,但消耗的系统资源较多,下面我们将重点介绍第二种公式节点的使用方法。 如图:创建一个公式节点到程序框图,在边框上单击右键 选择添加,然后即可在节点框中输入变量名称,如图: 公式节点中的函数和操作符与C语言中的基本相符,遇到特殊函数时查表即可。 应用举例: 例一:该例的目的事联系使用条件表达式来执行不同条件时的数据传输。下面的代码表示:如果X为非负数,Y等于X的平方根;如果X为负数,Y等于-999。if(x=0)then y=sqrt(x)else y=-999end if对这段代码可以用公式节点来计算,需要注意大小写,如图所示: 运行结果如图: 例二:该例的目的是联系使用公式节点来计算两个输出x1和x2,并在同一图表中显示。 x1t3-10*t+1x2=a*t+b其中:t共取10个点,范围是从09 1. 新建一个VI,在前面板上放置一个波形图,用于同时显示输出的两个波形。同时放置两个数值输入控件,它们分别表示x2函数的斜率和截距。 2. 在程序框图上放置一个For循环,计数端子设为10,计算自变量t分别等于0到9。 3. 在For循环中添加一个公式节点,为它添加三个输入端口,分别与重复端口i,斜率a和截距b相连,并添加两个输入端口,分别表示输出x1和x2。再用文本标签工具再公式节点里添加代码。 4. 在数组函数子模板中选取“创建数组“函数将x1和x2合并为一个二维数组,并在波形图中同时显示。 5. 完成连线,如图: 运行结果如图: 全局变量和局部变量全局变量和局部变量是LabVIEW用来传递数据的工具。LabVIEW编程是一种数据流编程,它是通过连线来传递数据的。但是如果一个程序太复杂的话,有时连线会很困难甚至无法连接,这时就需要用到局部变量,就如同Protel软件画电路原理图一样,给相同的连线添加网络标号,标识它们是相通的。另外用户也许会经常碰到这样一种情况,既能够对程序中一个控件对象写入数据,又要能够读出它的数据,这在数据流编程中是无法实现的,这也需要用到局部变量或者全局变量,全局变量主要是针对不同VI程序之间的通信。局部变量:谈到局部变量,其实早在介绍顺序结构时就已经接触过了,当时是添加顺序局部变量来传递程序初始时间,以便计算程序所执行的时间。目的是在不同选择分支中都能够对指示器进行赋值。建立局部变量:建立局部变量的方法有两种:一种是在程序框图中直接添加,如图:另一种方法是右击控件对象,在弹出的快捷菜单中执行“创建/局部变量”如图: 局部变量的应用 该例的目的在于使用局部变量向它联系的前面板上的电流控件写数据,也可以从电流控件读取数据。程序框图如图所示: 程序的目的是检验电流量,如果电流大于5A时,则限定电流量为上限5A,这时电流局部变量时写入状态,可以向它写入数据5A,尽管电流控件是控制器;如果电流小于5A时,则将电流通过一个“电流显示器”来显示,这时就需要将电流局部变量改变为读取状态,方法是在快捷菜单上执行“转化为读取”命令。 全局变量: 全局变量与局部变量不同,它是在不同的程序之间进行通信。LabVIEW的全局变量是一个独立的VI,它是一种特殊的程序,没有程序框图只有前面板,功能是保存一个或多个全局变量,所以也把全局变量程序称为“容器”。 建立全局变量:它的建立和局部变量类似,将全局变量拖拽到程序框图中,在它的快捷菜单中执行“打开前面板”,或双击全局变量图标,打开全局变量程序前面板,然后在前面板中添加所需要的全局变量控件,如图,添加了3个全局变量,并保存VI。 建立了全局变量以后就可以在其他程序里面调用它,方法是在程序框图上选中“选择VI.”,如图: 在打开的对话框窗体中为程序选择想要放置的全局变量。如果最先放置的不是想要的全局变量,可以像对局部变量那样操作,在快捷菜单上选取“选择项”子选项,在列出的所有变量对象中进行选择,或者用操作工具来选择。 使用全局变量时必须特别小心,因为它对所有的LabVIEW程序都是通用的,稍有不慎就可能互相干扰,用户必须清楚的知道全局变量的读写位置。用户编辑时既可以向全局变量输入数据,也可以从它读取数据,这一点与局部变量是完全相同的。全局变量的应用较少,这里就不再举例使用全局变量和局部变量的注意事项:LabVIEW语言编程是一种数据流,全局变量和局部变量提供了一种违反严格数据流的程序设计方式。大家有必要了解竞态条件的缺陷,当两个或两个以上的事件可以按任何顺序发生时就产生了竞态条件。用户要想知道再多个并行的程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宜宾市南溪区2025年公开招聘社区专职工作者(19人)备考题库及答案解析(夺冠)
- 2025中国科学院生物物理研究所高璞研究组特别研究助理(博士后)招聘1人笔试备考试卷带答案解析
- 2025四川南充市公路管理局南充市水务局遴选3人历年真题库带答案解析
- 2026年国家移民管理局直属事业单位公开招聘事业编制人员(16人)历年真题库带答案解析
- 2025国家管网集团液化天然气接收站管理公司招聘历年真题库附答案解析
- 中国煤科2026届全球校园招聘备考题库附答案
- 2026山东辖内农村商业银行高校毕业生招聘(996人)笔试备考试卷带答案解析
- 2025贵州贵阳市某机关事业单位招聘派遣员工参考题库带答案解析
- 2025北京市朝阳区十八里店第二社区卫生服务中心招聘笔试模拟试卷附答案解析
- 2026年大连沙河口区教育系统招聘教师11人笔试备考试卷带答案解析
- 工程人员转型物业管理方案
- 施工生产管理培训课件
- 2025年医疗废物管理制度试题及答案
- 算力中心建设项目施工方案
- 公路交通运营管理与服务质量提升
- 早产儿生后黄金1小时管理
- 2025年大队委员笔试题库及答案
- 2025年网球理论基础知识考试题及答案
- 2025江西吉安市遂川县城控人力资源管理有限公司招聘34人笔试考试参考试题及答案解析
- 初中期中质量分析会校长讲话:正视短板精准发力共筑初中教学质量新高度
- 2025-2026学年度上学期一中高三11月月考物理试卷
评论
0/150
提交评论