LabVIEW的程序结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.顺序结构的工作方式
数据传递至顺序结构时,层叠式从标识0开始执行,依次顺序 执行;平铺式从左至右执行所有子图形代码框。 从结构外面向顺序结构写数据时,可连接可不连接这个数据 通道;但是当顺序结构向外输出数据时,各个图形代码框中 只能有一个连接这个数据通道。 代码框之间的数据传递,平铺式可从一帧直接连线到另一帧 来传递数据,层叠式则需要通过局部变量——Sequence Local 来传送数据。

CASE0 (Add),VI就进行加法运算,CASE1,则VI将进行减法运算。 使用了一个数字型Text Ring控制器(在控制模板中的Ring&Enum子 模板中) 注意:当在一个子Case中建立了一个输出数据通道后,必须给每一 个子Case定义输出数据通道。
例子
设定默认的子CASE, 当所有条件都不满足 时,执行默认子CASE
用While 循环实现求X的立方和(P54)
3 Case结构 1.Case结构的创建
Case结构由选择框架、选择端口、选择器标签,以及 递增/递减按钮组成。
选择标签
递减按钮
递增按钮
选择端口
选择框架
2.Case结构的工作流程
Case结构有一个条件选择端口 (Selector),根据连 到该端口 的值来判断执行哪一个子Case。 Selector端口的数据类型有布尔型、数字型和字符串型。

例如:下图中通道自动索引功能有效时,每一次循环产生一个新的 数据,存储在循环的边框通道上,待循环结束以后,产生的6个数据 将传送到一个数组指示器中。自动索引功能无效时,只有最后一次 For循环产生的1个随机数传到循环外。
空心
实 心
4.移位寄存器
创建:右击边框,弹出一个菜单,选择Add Shift Register选项,可添 加一个移位寄存器。 用途:主要用于While循环和For循环,将上一次循环的值传给下一次 循环。 数据类型: 数字型、布尔型、字符串等 。 初始化:在循环外将初始值连到移位寄存器的左端口,有默认初值。 还可以存储前几次循环的值,在移位寄存器的左端口或右端口上右 击鼠标弹出菜单,选择Add Element选项,可创建附加的左端口来存 储前几次循环的值。
可以选择 的事件源
相应的事件源可 产生的事件消息
例如:建立一个5秒的超时事件和一个“OK Button” 开 关值发生变化的事件
要求:
方法1:任一事件发生都执行同一个子图形代码框程 序,显示出对话框“超时或单击了OK按钮”。
方法2:由不同的框图程序响应不同的事件,显示出 对话框“超时事件”或“单击了OK按钮事件”。
超时端口,默认
值为-1,表示无 限等待 。
事件数 据端口
结构框
2.事件结构的使用
可有一个或多个子图形代码框,该图形代码框可以设置为响应多 个事件。 右击事件结构边框,从弹出的快捷菜单中选择Edit Events Handled by ThisCase…,这时将弹出编辑事件对话框。 显示当前建立的事件, 默认“Timeout’事件。 增加事件 删除事件
3.设置选择结构的默认项
应设置一个默认项来处理超出条件选项范围的情况。 设置选择结构默认项的方法是在选择结构边框上单击鼠 标右键,选择Make This The Default Case。
4.选择结构数据通道的设置
输入数据时,每个子Case框可连可不连数据通道。
输出数据时,每个子Case框必须为通道连接数据。否 则程序不能运行,这时通道的图标是空心的,只有为 每个子Case框的数据端口都连接数据后,图标才变成 实心。 Use Default if Unwired可使程序中没有连线的子Case框 输出默认值。
例:求 S
X M
X
N
3
( M N , 且 X , M , N 均为整数)
5.反馈节点 功能:在循环中,将数据从一次循环传递到下一次循环。 反馈节点箭头的方向表示数据流的方向。 反馈节点和移位寄存器可以互换,在反馈节点或移位寄 存器图标上弹出快捷菜单选Replace with shift Register或 Replace with Feedback Node即可。 移位寄存器左端口多于1个时不能转换为反馈节点。
法1:
在前面板添加放置一个“OK Button” 控件 。 在编辑事件对话框中单击按钮 新建一个事件,选取 “EventSources”事件源窗口中的“OK Button”,并在 “Event”事件窗口中选择“Value Change” 。 选取OneButtonDialog函数,放置在Event Structure中。
从函数模板的Structures子模板上选择公式节点 Formula Node,在框图中设置公式节点。 公式节点的边框大小可以改变,用户可以使用标签工 具,将数学公式直接输入到公式节点的框内。
(2)公式节点的使用
可以声明变量,也支持一些常用的C语言的语句(包 括赋值语句、条件语句、循环语句、Switch语句), 每条语句以分号结尾。 输入公式后,需要添加输入、输出端口。
1. 顺序结构的创建
在函数模板的Structures子模板中选择创建顺序结构。选取 Stacked Sequence Structure层叠式顺序结构 。 在结构边框上面单击鼠标右键,从弹出的快捷菜单中选择“Add Frame After”或“Add Frame Before”可以增加子图形代码框。 在结构边框上右击弹出的快捷菜单,选择Replace→Replace with Flat Sequence,可以将层叠式顺序结构变换为平铺式顺序结构
LabVIEW的程序结构
主要的程序结构有:
循环(While循环和For循环)


选择(Case结构)
顺序(Sequence结构,分为平铺式和层叠式) 事件(Event结构)
1 For循环 1.For循环的创建
基本的For循环结构由循环框、循环次数端口和计数端 口组成。
循环次数端口
6 公式节点
在框图程序中,如果需要设计较复杂的数学运算,框图 将会十分复杂,工作量大,而且不直观,调试、改错也 不方便。 利用公式节点,只需将数学公式的文本表达式输入在公 式节点的框图内,并连接相应的输入、输出端口,则 LabVIEW会自动地根据公式计算出正确的结果,并从输 出端输出。
(1)公式节点的创建
在message数据端口新建一个常量,输入“超时或单 击了OK按钮”。
在超时端口连接值为5000的一个数字常量。
运行程序,如果单击了“OK Button”按钮或等待5秒都 会显示出对话框“超时或单击了OK按钮”。
法2:
在事件结构边框的快捷菜单中选择Add Event Case…来 创建事件结构的一个分支 。 在弹出的对话框中,选取“EventSources”事件源窗口 中的“OK Button” 。并在“Event”事件窗口中选择 “Value Change” 。 后面的设置与法1类似。
下面是用移位寄存器(左图)和反馈节点(右图)实现 a++的框图程序。
2 While循环 For循环和While循环的区别:
For循环要执行预先指定的循环次数。
而While循环只有在条件端口接收到的值为 False(or:True)时才停止循环。While循环不必知道循 环次数。 While循环不满足条件也要执行1次。 For循环当N<1时1次都不执行。


在层叠式顺序结构的边框上面右击,选择Add Sequence Local即 可在当前帧创建一个顺序局部变量端口。

将本帧中的数据连接到该局部变量端口,该数据就可传到后面的 帧,该数据不会作用到它前面的帧。
如下图示意了层叠式顺序结构通过局部变量传递数据的 情况。在标识是1号帧的一个数据传递到标识是2号的帧 进行“或”运算,0号帧不能使用该数据。
公式节点中可使用
IF条件语句,
for和do { }、while循环 Swtich ( ) case分支语句
公式节点的语法与C语言相同
例:用公式节点计算y1=x3+x2+5和y2=m*x+b 分析:
计数端口用于统计循环执行的次数,While循环每执行 一次,计数端口的值就加1。 计数端口从零开始计数,也就是说,在第一次循环结 束时,计数端口的值为0,如果循环执行了10次,则计 数端口的值为9。 While循环也具有数据通道索引和移位寄存器、反馈接 点的功能,它们的用法与For循环相同,只是While循 环的边框数据通道默认为不能索引。
在添加端口后出现的方框内填入变量名称。
将输入端口和程序中的数据端口相连接。 将输出端口和程序中的指示端口连接
ห้องสมุดไป่ตู้
公式节点中常用的运算符
其中,条件运算符的“?”前的部分是判定条件,“?”和 “ :”间的部分为当条件为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。

False 循环体

循环次数达到设定值后,退出 循环。
i=i+1
循环次数-1
FOR循环执行流程
3.For循环的数据通道与自动索引
数据通道是用连线工具连接循环框内外的数据端口时, 在框架上自动形成的方形通道图标 。
图标空心表明此时数据通道具有自动索引功能,实 心图标不能索引 。
自动索引是指将循环框外面的数组成员逐个依次进 入循环体内,或将循环框内的数据累加成一个数组 输出到循环框外面。
4 顺序结构
• • LabVIEW是一种数据流程序设计语言,没有明确的先后顺序,当 节点所有输入端的数据全部有效时,节点才执行。 Sequence结构,它是一种先后顺序执行的结构,看上去象电影胶片 的帧(Frame),每一帧为一段框图程序,按照帧(Frame)的顺 序来执行框图程序。 两种形式顺序结构,Flat Sequence Structure平铺式顺序结构和 Stacked Sequence Structure层叠式顺序结构。功能相同,区别仅在 于表现形式不同。
例:使用Sequence结构,设计一个VI,
计算产生一个与指定的数字相等的随机 数所需花费的时间。
读取定时器的当前值 四舍五入取 整
VI程序每隔 10ms执行循环
5 事件结构
1.事件结构的创建
事件结构包括:结构框、事件标签、超时端口和事件数据端口。 事件标签 :说明当前框图程序是响应
的什么事件 。
循环边框 循环框 计数端口
2.For循环的工作流程


For循环用于将结构中的程序循 环执行指定的次数。
在开始For循环之前,从循环次 数端口读入循环次数,计数端 口输出0值。 接下来执行For循环框内框图代 码程序,每执行一次计数端口 值自动加1。
i=0 循环次数=N
循环次数=0
Ture 结束循环
1.While循环的创建
While循环由循环框、条件端口和计数端口组成。
循环边框
循环 框 计数端口 条件端口
2.While循环的工作流程
条件端口控制循环的停止与否。
条件端口有两种状态 : 当使用状态为Stop if True 时,若输入值为Ture, 则停止循环 。若输入值为False,则继续执行下一 次循环。 当使用状态为Continue if True 时,若输入值为 Ture,则继续执行下一次循环。若输入值为False, 则停止循环。 循环结束后,才去检测条件端口的值,因此不管条件 是否成立,循环至少要执行一次。
相关文档
最新文档