实验三-LabVIEW编程的程序结构实验-分支机构与顺序结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
公式节点包含元素
• 表达式中能够使用符号 + , - , * , / , ** , != , = = , > , < , >= ,<= , && , || , & , | , ^ , 等 • 可使用数学运算子模板中的函数:如三角、指数、 对数等 • 公式节点中可使用
– IF条件语句, – for和do { }、while循环 – Swtich ( ) case分支语句
《虚拟仪器》-3
LabVIEW编程的程序结构实验 ——Case结构和Sequence结构
§7-1 Case 结 构
顺序结构
分支结构
循环结构
§7-1 Case 结 构
• Case结构是一种控制程序分支的结构,与常规文本编程 语言的IF语句或Swtich语句类似。 • Case结构有一个条件选择端口 ? (Selector),根据连到 Selector端口 ? 的值来判断执行哪一个子Case。Selector 端口的数据类型有布尔型和数值型。 • 通过打开函数模板中的Structure子模板,可在框图程序中 放置Case结构
Sequence结构,它是一种先后顺序执行的结构,看上去象电影胶片的帧 (Frame),每一帧为一段框图程序,按照帧(Frame)的顺序来执行框图 程序。 从函数模板的Structures子模板上选择Sequence Structure Sequence结构可以包含多个Frame,首先要执行的Frame的编号为0,第二 个要执行的Frame的编号为1,照此类推,编号的顺序即为执行的顺序。 新建的Sequence结构只有一个Frame,可以在Sequence结构的边框上弹 出菜单,选择Add Frame After或Add Frame Before选项来增加Frame
例:程序运行中,用Knob控件改变图形曲线的颜色
• 提示:建立CHART的属性节点Biblioteka Baidu,改为可写,并指定为曲 线Plot的颜色Color属性,用Knob的值控制CASE,分别送5 种颜色值给属性节点
属性节点的建立和使用方法
• 在对象控件上右击,菜单中选择 Create->Property Node ,则在框 图程序中建立了一个属性节点,该 属性节点默认的属性是” Visble‖, 可读。 • 在Property Node 上右击,在弹出 菜单中选择Change to write,则改 为可写。 • 在Property Node 上右击,在弹出 菜单中选择Property,弹出菜单中 再选择需要控制的属性。
“Tick Count(ms)函数”:用与Express VI完成定时任务。
全局变量和局部变量
• 全局变量:在多个VI有效。 • 局部变量:在本VI有效。 • 在Sequence结构中,各个Frame之间是通过局部 变量(Sequence Locals)来传递数据的,由于 各Frame是按照编号的顺序由前向后执行,因此 局部变量只能由前向后传递数据。 • 在需要使用局部变量向后传递数据的Frame的边 框上右击鼠标弹出快捷菜单,选择Add Sequence Local选项,可创建一个局部变量
在LabVIEW增加平面顺序帧结构 Flat Sequence Structure
• 功能与堆叠式顺序帧相同,可相互转换
§7-3 公式节点
• 在框图程序中,如果需要设计较复杂的数学运算, 框图将会十分复杂,工作量大,而且不直观,调 试、改错也不方便。 • 利用公式节点,只需将数学公式的文本表达式输 入在公式节点的框图内,并连接相应的输入、输 出端口,则LabVIEW会自动地根据公式计算出正 确的结果,并从输出端输出。 • 从函数模板的Structures子模板上选择公式节点 Formula Node,在框图中设置公式节点,将数 学公式直接输入到公式节点的框内。
例:使用Sequence结构,设计一个VI,计算产生一
个与指定的数字相等的随机数所需花费的时间。
―等待Wait‖:控制VT定时执行,每次执行单元(比如循 环)内部,在执行代码运行结束后,开始计时。保持此状态 直到毫秒计数器的值等于预先设定的值。用于每次执行单元 至少执行时间设定。 ―等待下一个整数倍的毫秒Wait until Next ms Multiple‖: 每次执行单元(比如循环)内部,在执行代码开始运行时, 就开始计时。保持此状态直到毫秒计数器的值等于预先设定 数的整数倍。用于同步各单元操作。
实验报告
• 任务7-1 使用Sequence结构,设计一个VI,计算产生一个与 指定的数字相等的随机数所需花费的时间。 • 任务7-2:设计一个VI能够像计算器一样进行运算。前面板上 有两个数字控制器,用来输入两个数字,另有一个指示器,用 来显示VI对输入数字进行运算(Add、Subtract、Divide或 Multiply)的结果。用一个滑动条控制器来选择加、减、乘、 除运算 • 任务7-3:设计一个VI,用公式节点来计算下列方程,并画出 y1和y2的曲线。 y1=x3+x2+5 y2=mx+b 以上两个方程只许使用一个Formula Node。参考练习7-4
• 公式节点的语法与C语言相同
习题7-1: y1=x3+x2+5 y2=m*x+b
补充:前面板对象属性的动态控制
• 在前面板设计编程时,我们可以修改和设 定对象控件的属性,但是在程序运行时能 否由用户修改或程序自身改变呢? • 方法是:创建对象的属性节点,通过对属 性节点的“写”操作,完成对对象属性的 修改。 • 同样通过对属性节点的“读”操作,在程 序中读取对象的属性。
§7-4 总结、要点和技巧
• · LabVIEW有两种控制数据流的结构——Case结构和 Sequence结构。LabVIEW将这两种结构表现为一叠卡片, 在一个时刻,只有一个卡片(子框图)是可见的。 • 根据Case结构选择端口的输入值来判断执行哪个子Case, 条件选择可以是布尔值(2种条件)或者是数字(231-1 种条件)。 • 使用Sequence结构,可以按Frame的编号顺序执行框图 程序。 • 可以用Sequence Locals在Sequence结构的各帧之间传送 数据。只能前面帧的数据传递给后面帧。 • 使用Formula Node(公式节点),可以直接把很多公式 输入到节点方框中。切记:变量名是区分大小写的,每条 公式语句必须以分号(;)结尾。
切换子Case按钮
Case结构示意图
• 例1:Number1和Number2的数据通过数据通道(Case边 框上的小方块)进入Case结构,由Selector端口的值决定 两个数是进行加法运算还是减法运算。
• CASE0 (Add),VI就进行加法运算,CASE1,则VI将进行 减法运算。 • 使用了一个数字型Text Ring控制器(在控制模板中的 Ring&Enum子模板中) • 分支选择器的连接可以是布尔型、数值型和字符串型 • Case结构输入端子(隧道和分支选择器)的数据是所有 分支公用的。分支并不一定需要输入数据或输出数据,但 如果有一个分支输出数据到隧道,那么所有的分支都必须 输出数据,在给分支的输出连线时,在每个分支的同一个 位置会出现一个白色的小隧道,这时运行箭头会裂开,直 到所有分支的数据都已连接后,隧道就会变成黑色,而且 运行箭头也会合拢。
选作:
程序运行中,用Knob控件改变图形CHART控件中点和曲线的 颜色分别为红、橙、紫、绿色。
实验报告
• 2、使用公式节点时,如果输入变量的名称同输出变量的名称 相同时,会怎样? • 3、心得体会及其它。
任务7-1 练习答案
任务7-2 练习答案
A 5.00 B 5.00 Function A/B A*B A-B A+B
以方程式y=x2+x+1为例
• 1. 用常规的LabVIEW算数函数实现此方程 • 2. 用公式节点来实现同一方程
– 在框内输入一个或多个公式,每个公式语句必须以分 号结束 – 在公式节点边框上弹出快捷菜单,并从弹出菜单中选 择Add Input或Add Output选项来创建公式节点的输入 或输出端口。
Result 25.00
任务7-3:答案 y1=x3+x2+5 y2=m*x+b
设定默认的子CASE, 当所有条件都不满足时, 执行默认子CASE
介绍下拉菜单和枚举的 控件使用
• 添加分支: • 在CASE结构的边框上右击,弹出菜单中选择在前面添加分 支、在后面添加分支实现分支的添加。
§7-2 Sequence结构
• 在常规文本编程语言中,程序语句一般按其出现的先后次序执行。 • LabVIEW是一种数据流程序设计语言,没有明确的先后顺序,当节点 所有输入端的数据全部有效时,节点才执行。 • 在测量和控制中,经常需要程序按照规定的顺序执行。