LabVIEW中的执行结构

合集下载

LabVIEW虚拟仪器技术第4章-程序结构

LabVIEW虚拟仪器技术第4章-程序结构
第4章 程序结构
基本程序结构
在各编程语言中,基本的程序结构有三种: 顺序结构、条件结构和循环结构。
LabVIEW中,除了具有上述三种程序结构外, 还提供了用于事件处理的事件结构。
此外,还有局部变量,属性节点和调用节点 等功能,为增加程序编写的灵活性提供了保障。
文本语言接口
在LabVIEW的图形化编程环境中,利用上述 程序结构可以解决很多非常复杂的问题。
范例
条件结构的输出隧道。
条件结构的输出方式
条件结构的输出有两种方式:
1.在条件分支内部输出数据
2.通过数据输出隧道,在条件结构外部输出数据
在分支内部输出数据更符合常规编程语言的编 程方式,但是从LabVIEW数据流的观点来看,并 不是最佳选择。
程序求输入数值的平方根,计算之前先判断 输入是否大于等于0。判断为真,结果由显示控件 输出,判断结果为假时,条件为真的分支不执行。
点击右键,在快捷菜单中我们可以添加或删 除每一帧。我们也可以通过拖曳的方式来改变每 一帧的大小。
顺序结构在执行时,会按照帧的顺序,从左 到右,依次执行每一帧。每一帧都有一个帧序号, 最小的帧序号为0,然后是1、2、3依次递增。
平铺式顺序结构因为代码是平铺的,因此代 码更直观,可读性较高。但是它的缺点是占用空 间较大。
针对于此,可以通过调用快捷菜单中的“替 换为层叠式顺序”功能,将平铺式的顺序结构转 换成层叠式的,以使VI看起来更为紧凑。
4.1.2 层叠式顺序结构
从本质上看,层叠式顺序结构和平铺式顺序 结构的功能完全相同,且二者可以相互转换。
层叠式顺序结构的创建
层叠式顺序结构外形类似于条件结构。它包 括一个或多个顺序执行的子程序框图或帧。
在很多情况下,程序员会需要多段代码按照预 先设定的顺序执行,这就需要顺序结构来帮忙了。

labview中for循环在顺序结构中用法

labview中for循环在顺序结构中用法

labview中for循环在顺序结构中用法1. 引言1.1 介绍labview中for循环在顺序结构中的用法在LabVIEW中,for循环是一种非常常见的结构,它可以在顺序结构中被灵活应用。

顺序结构是LabVIEW中的一种基本结构,它按照从上到下的顺序执行代码,一次执行一条线路上的程序。

在顺序结构中使用for循环可以帮助我们简化程序,节省时间和精力。

for循环能够重复执行特定的操作,直到达到设定的条件。

这使得我们能够简化代码、提高代码的可读性和可维护性。

在实际项目中,经常会出现需要重复执行相同操作的情况,此时for循环就派上用场了。

LabVIEW为我们提供了方便的工具来添加for循环至顺序结构中。

通过简单拖拽的方式,我们就可以将for循环放置在需要的位置。

而设置for循环的循环次数也是非常简单的,只需在循环结构中输入结束条件即可。

在for循环中执行特定操作也非常容易。

我们可以在for循环中添加需要重复执行的代码块,这样就可以实现对特定操作的循环执行。

通过合理的设计和设置,我们可以充分利用for循环在顺序结构中的优势,提高程序的效率和可维护性。

2. 正文2.1 什么是循环结构循环结构是编程语言中一种重要的控制结构,允许程序在满足特定条件下重复执行一段代码块。

在计算机程序中,循环结构可以大大简化重复性工作的编写,提高代码的效率和可维护性。

在labview中,for循环是一种常见的循环结构,它允许用户指定循环次数并在每次迭代中执行特定的操作。

通常情况下,for循环适用于已知循环次数的情况,比如要对一组数据进行处理或执行固定次数的任务。

循环结构的实现通常包括三个要素:循环变量、循环终止条件和循环体。

循环变量用于追踪循环的当前状态,循环终止条件确定循环何时结束,循环体则包含需要重复执行的代码块。

在labview中使用for循环可以简化重复性工作的编写,提高程序的可读性和可维护性。

通过合理的设计和控制循环变量和循环终止条件,可以确保程序的正确运行并有效地处理大量数据。

第4章LabVIEW中的程序结构

第4章LabVIEW中的程序结构

第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
移位寄存器初始化
移位寄存器可以存储的 数据类型有:数值型、布尔 型、数组、字符串型等。
“显式初始化” “非初始化”
不同初始化方式运行结果
第4章 LabVIEW中的程序结构
2020/4/2
循环次数和循环计数端
口的数值范围为0~2^31-1 的长整型数,如果给N的赋值 为0,则程序一次也不执行。
第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
实例——产生数据点数为1000的正弦波
在做算法仿真时,经常需要产 生指定点数的数据波形,最基本的 实现方法就是通过For循环+基本函 数的方式。
第4章 LabVIEW中的程序结构
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
循环结构——For循环
For循环的自动索引
正常情况下For循环是要指 定循环次数程序才能正常执 行的,但如果我们不知道具 体的循环次数,那又该如何 运用For循环呢?
For循环的自动索引功能默认 情况下是自动开启的,在自动索引 开启的状态下,数据进入循环体时 是降维的。
序,则要用到顺序结构。
平铺式顺序结构
LabVIEW中的顺序结构包括: 平铺式顺序结构 层叠式顺序结构
第4章 LabVIEW中的程序结构
层叠式顺序结构
它们的功能是相同的, 只是图形形式不同,也即编 程时所占用的空间不同。
2020/4/2
精通LabVIEW虚拟仪器程序设计与案例实现
平铺式顺序结构的数据流向

Labview执行结构:详细说明

Labview执行结构:详细说明

执行结构:详细说明While循环与文本编程语言中的Do循环或Repeat-Until循环类似,必须满足特定条件之后,While循环才会执行其内的程序代码,如图1所示。

图1. LabVIEW中的While循环;具备While循环功能的流程图;还有While循环功能的伪码范例While 循环位于Structures面板上。

从面板上选择While Loop之后,针对所要重复的代码区块,可用鼠标拖拽出矩形并将之圈住。

放开鼠标之后,即会有While循环圈住用户所选的区块。

只要将对象拖拽至While循环中,即可将其新增至While循环中。

只要条件接线端接收特定的布尔值之后,While循环随即执行代码也可通过While 循环的条件接线端来处理基本错误。

若将错误簇连接至条件接线端,则只有Status参数的真或假值传送至接线端。

同样,Stop if True和Continue if True快捷菜单项目,将分别变更为Stop if Error和Continuewhile Error。

计数接线端属于输出端点,其中包含已完成的循环次数。

While循环的循环计数均从零开始。

注意: While循环将至少执行一次。

无限循环无限循环为常见的程序错误,即无法停止的循环。

若条件接线端 i为True时停止,而用户又在While循环外部放置布尔控件接线端。

一旦循环开始,控件值即成为FALSE,就会形成无限循环。

图2.While循环之外的布尔控件因为在循环开始之前,仅读取该值一次,所以改变控件的值并无法停止无限循环。

若要通过控件停止While循环,则必须在循环中配置控件接线端。

若要停止无限循环,则按下工具栏上的Abort Execution按钮,即可终止该VI。

在图3中的While 循环将不断执行,直到随机数函数的输出大于或等于10.00,且Enable控件为TRUE时才会停止。

当且仅当“与”函数的两个输入都为真时,函数的返回值才为真。

LabVIEW经典结构-组合动作执行模型

LabVIEW经典结构-组合动作执行模型

LabVIEW经典结构——组合动作执行模型
在LabVIEW应用程序开发中,广泛使用了一种高效的程序结构——组合动作执行模型。

该模型由While、Evnet(事件)、For、Case、enum(枚举)等向种结构和数据类型构成。

执行机理:面向对象的事件结构,响应前面板发生的针对控件的鼠标、键盘的动作,产生事件,并输出一个枚举数组,该数组作为For循环执行的索引,同时数组元素定义了执行的Case。

将各种事件响应进行分解为基本的动作单元,利用枚举数组定义出若干个由动作单元组合而成的动作序列,依据控件事件选择执行枚举数组,顺序完成对应的动作单元。

模型特点:重复利用各基本动作单元,增加代码复用率,程序更加简洁。

通过新建事件,可以定义任意组合的动作序列,灵活高效。

具有很强的模块化设计思想。

图1组合动作执行模型。

第4讲 LabVIEW的基本程序结构

第4讲 LabVIEW的基本程序结构
层叠式顺序结构和平铺式顺序结构的功能相同,不同在于可读 性和占用面积的不同。
例子
第一帧与第三帧间如何传递数据?
图4-16 层叠式顺序结构界面
层叠式顺序结构中的数据要借助于顺序结构变量来传递。
(a)未赋值的局部变量 (b)连接数据 (c)赋值后的局部变量 (d)结果
图4-17 顺序局部变量的创建与使用
和移位寄存器一样,反馈节点也是用来实现数据在前后两 次循环中的传递。但与移位寄存器相比,使用反馈节点有时能 让程序更加简洁易懂。
循环中一旦连线构成反馈,就会自动出现反馈节点的符号。 反馈节点符号由两部分构成,分别为初始化端子和反馈节点箭 头。
4.1.5 反馈节点在Fo环框图外,默认为位于For循环框图内。
相比于层叠式顺序结构,平铺式顺序结构各帧之间同样可以传输数据, 而且平铺式顺序结构传递数据的方式与层叠式顺序结构相比较而言更加简单和 直观,只需直接在两帧间连线就可以自动创建一个循环隧道传输数据,如图420所示。
图4-20 平铺式顺序结构的数据传输
空 心 框
(a)不正确的连接—边框上的数据通道为中空状态
实 心 框
(b)正确的连接—边框上的数据通道为实心状态
图4-13 连接数据的输入与输出
4.3.6 选择函数
4.3.7 条件结构示例
图4-14 执行两个数相乘或相加运算的Case条件结构示例
图4-15 执行两个数相乘或相加运算的Case条件结构示例
当在条件接线端图标上单击鼠标右键选择“真(T)时继 续”,则图标变成如图4-9所示,此时表示当条件为真时循环继 续。当每一次循环结束时,条件端口检测通过数据连线输入的布 尔值和其使用状态决定是否继续执行循环。
图4-9 条件端子变换后的While循环界面

LabVIEW中的控制结构和循环

LabVIEW中的控制结构和循环

LabVIEW中的控制结构和循环LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化编程语言和开发环境,用于测量与控制系统。

在LabVIEW 中,控制结构和循环是实现自动化控制和流程控制的重要组成部分。

一、控制结构1. 顺序结构顺序结构按照程序中的逐行顺序执行。

在LabVIEW中,通过将各个步骤连接起来,即可实现顺序执行。

2. 选择结构选择结构用于根据条件的不同,执行不同的代码块。

在LabVIEW 中,选择结构包括“Case结构”和“Select结构”。

- Case结构:根据条件进行分支选择。

不同的条件对应不同的代码块。

你可以在其中添加多个Case并分别编写代码,这样可以根据不同的条件执行不同的操作。

- Select结构:类似于Case结构,但是它使用数字索引来选择要执行的代码块,而非条件。

3. 循环结构循环结构用于重复执行某个代码块,直到满足退出条件为止。

在LabVIEW中,循环结构包括“For循环”、“While循环”和“Do循环”。

- For循环:用于已知循环次数的情况下重复执行代码块。

你可以设置循环的次数,并且在每次迭代中可以自定义循环变量的起始值、终止值和步长。

- While循环:在满足条件的情况下重复执行代码块。

你可以设置循环的退出条件,并且在每次迭代中可以自定义条件的判定。

- Do循环:先执行代码块,再判断循环条件是否满足。

如果满足,则继续循环执行,直到条件不满足为止。

4. 跳转结构跳转结构用于在程序中实现跳转操作,常见的跳转结构有“跳出循环”和“跳转到指定位置”。

- 跳出循环:当满足特定条件时,可以用于提前终止循环的执行。

一般在循环结构内部设置条件,满足条件时通过跳转结构跳出循环。

- 跳转到指定位置:用于在程序中实现指定位置之间的跳转。

你可以在程序的任意位置插入标记,然后使用跳转结构指定要跳转到的标记位置。

第5讲 LabVIEW程序结构2

第5讲 LabVIEW程序结构2

用户自定义事件
LabVIEW自产的事件主要指那些由用户对界面对象进行操作的 事件,比如单击、改变某个控件的值以及程序自身状态变化等, 如果需要在程序中满足其他某种条件时也产生一个事件,就只 能用用户自定义事件了。
用户自定义事件是使用“创建用户事件”函数创建出来的事件。 当需要抛出一个用户自定义事件时,可以使用“产生用户事件”
数。
• 请谨慎选择通知或过滤事件。用于处理通知事件的事件分支,并将无 法影响LabVIEW处理用户交互的方式。如要修改LabVIEW是否处理用 户交互,或LabVIEW怎样处理用户交互,可使用过滤事件。
• 不要将前面板关闭通知事件用于重要的关闭代码中,除非事先已采取 措施确保前面板关闭时VI不中止。例如,用户关闭前面板之前,确保 应用程序打开对该VI的引用。或者,可使用前面板关闭?过滤事件,该 事件在面板关闭前发生。
函数发出一个事件。
程序抛出的用户自定义事件可以携带自定义的某些数据。 用户自定义事件可以作为一种规范的格式,用在VI的初始化、
终止等场合。处理VI被调用或开始运行时首先需要处理的事情 以及VI终止前必须处理的事情。
例:程序有两个输入控件:一是数值型控件A,二是字符串控件B,当A>10或B的长 度大于10个字符时,程序抛出一个用户自定义事件“警告”
可以明显地看出,过滤型事件比相应的通知型事件要先发出。
图4-25 事件结构框架0(过滤事继 事件
图4-26 事件结构框架1(通知事件)
(a)“确定”按钮动作前 (b)选择“是”的计算结果 (c)选择“否”的计算结果
图4-27 静态事件结构运行结果
5.3.3 事件结构的使用
通常,程序不可能只需要处理一个事件,往往在程序运行中不断有需要处理的各种 事件出现,所以,事件结构通常会被放在一个while循环结构内。我们把这种一个 事件结构外套一个while循环结构的程序模式称为“循环事件结构”。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据类型 数值 布尔 字符串
默认值 0 FALSE 空值("") 表 1. 各数据类型的默认值
其他结构
LabVIEW 中还有其他更高级的执行结构,例如事件结构(用于处理用户界面交互等中断驱动任务)和顺序结 构(用于强制指定执行顺序)。这些内容并不包含在本入门教程内,如需了解这些结构,请参阅相应的 LabVIEW 帮助主题。
LabVIEW 中的执行结构
本节内容包含
循环结构 条件结构 其他结构
执行结构内部包含图形化的代码段,并能控制代码段运行的时间和方式。常见的执行结构有 While 循环、For 循环和条件结构。如需要多次运行同一段代码或需要按不同的条件执行不同代码,可考虑使用这些结构。
循环结构
视频:在 LabVIEW 中创建循环结构
图 3. 无限循环
结构隧道
隧道用于接收和输出结构中的数据。隧道显示为 While 循环边框上的实心方块。方块的颜色和取决于连至隧道 的数据类型的颜色。循环中生成的数据要等循环中止后才输出循环。如有隧道向循环输入数据,数据到达隧道 后循环才开始执行。 图 4 中,循环计数接线端与隧道相连。隧道中的值要等 While 循环循环停止后才向“Iterations”显示控件传递。
输入和输出隧道
条件结构可拥有多个输入输出隧道。所有输入均可为各分支所用,但每个分支不需要使用所有输入。但是,各 分支必须定义其输出隧道。 假设程序框图上有这样一个条件结构:它有一个输出隧道,但其条件分支中至少有一个没有连接输出值到该隧 道。如运行该分支,LabVIEW 将无法判断应返回什么输出值。如输出隧道为空心,则说明存在上述错误。需 注意的是,未连线的分支可能并非是当前程序框图显示的分支。
和 While 循环功能的伪码示例。 While 循环在结构选板上。在选板上选中 While 循环后,在程序框图上用鼠标在需重复执行的代码周围拖曳出 一个矩形。释放鼠标后,选中的代码部分即被 While 循环的边框包围。 请通过拖放将程序框图中的对象放进 While 循环。 While 循环重复执行所包含的代码,直到条件接线端(一个输入接线端)接收到特定的布尔值为止。 While 循环的条件接线端也可用于进行基本的错误处理。此时可将错误簇连接到条件接线端,错误簇的“状态” 参数的 TRUE 或 FALSE 值将传递到该接线端。同时,“真(T)时停止”和“真(T)时继续”快捷菜单将自动转换为 “错误时停止”和“错误时继续”。
图 2. 布尔控件在 While 循环外部 上例中布尔控件的值只能被读取一次(循环开始前),因此改变控件的值并不能停止循环。如要通过控件来停 止循环,应将控件接线端放置在循环内部。要停止一个无限循环,只能单击工具栏上的“中止执行”按钮中止整 个 VI。 图 3 中,While 循环将一直执行,直至“随机数”函数的输出大于等于 10.00 且“Enable”控件的值为 True。其中 的“与”函数只有在两个输入都为真时,才返回真,否则函数返回值为假。 图 3 是一个无限循环,因为“随机数”函数永远不会生成大于 10.0.0 的值。
如不为条件结构创建一个处理范围外输入值的默认条件分支,则应穷举所有可能输入值的条件分支。例如,如 果选择器的数据类型是整型,并且只有 1、2、3 三个条件分支,则必须创建一个默认分支来处理输入值为 4 或其他整型的情况。 注:如将布尔控件连接至选择器,则不能指定默认分支。此时右键单击分支选择器标签,快捷菜单中将不会 出现“本分支设置为默认分支”选项。条件结构将根据布尔控件输出的 TRUE 或 FALSE 值来决定执行的分支。 右键单击条件结构的边框可添加、复制、删除或重新排列分支,以及选择默认条件分支。
条件分支的选择
图 7 中的 VI 使用了条件结构,根据用户选择的温度单位的不同(摄氏或华氏)而执行不同的代码。最上方的 程序框图显示了条件分支“True”的代码。中间的程序框图显示了如何选择“False”分支。要选择分支,可在条件 选择器标签内输入值或使用标签工具编辑值。选择完分支后,该分支会显示在程序框图上,如图 7 底部程序 框图底部所示。
图 6. For 循环示例
为循环添加定时
当循环结构执行一次循环后,会立刻开始执行下一次循环,除非满足停止条件。通常情况下,您需要控制循环 的频率或为循环定时。例如,如果希望每 10 秒钟采集一次数据,就需要将循环的时间间隔定为 10 秒钟。即 使循环不需要满足特定的频率,处理器也需要一定时间来完成其他任务,如响应用户界面事件等。
等待函数 在循环结构内部放置一个“等待”函数,可以其他任务。“等待”函数使用的是操作系统的毫秒时钟。
“等待(ms)”函数使循环保持等待状态,直至毫秒计数器的值等于预先指定的值。该函数可保证循环的执行速率 至少等于指定值。
条件结构
将一个输入值或选择器连接至选择器接线端,即可决定将执行的条件分支。 选择器接线端支持的数据类型有整型、布尔型、字符串型和枚举型。选择器接线端可放在条件结构左边框的任 意位置。如选择器接线端的数据类型是布尔型,则条件结构包含真和假两个条件分支。如选择器接线端的数据 类型是整型、字符串型或枚举型,则条件结构可以有任意个条件分支。 注:默认情况下,连接至选择器接线端的字符串区分大小写。如要让选择器不区分大小写,将字符串连接至 选择器接线端后,右键单击条件结构的边框,从快捷菜单中选择“不区分大小写匹配”即可。
(1)LabVIEW For 循环 | (2)流程图 | (3)伪码示例 图 5. For 循环
For 循环在结构选板上。While 循环也可转换为 For 循环,只需右键单击 While 循环的边框,然后从快捷菜单 中选择“替换为 For 循环”,即可实现。
循环总数接线端是一个输入接线端,表示重复执行子程序框图的总次数。
While 循环
While 循环与文本编程语言中的 Do 循环或 Repeat-Until 循环类似,循环地执行所包含的代码直到满足某个条 件为止(如图 1 所示)。
(1)LabVIEW While 循环 | (2)流程图 | (3)伪码示例 图 1 显示了 LabVIEW 中的 While 循环、While 循环的流程图
图 4. While 循环隧道 因此,“Iterations”控件只会显示循环计数接线端最后的值。
For 循环
视频:在 LabVIEW 中使用 For 循环 For 循环按既定的次数执行子程序框图。图 5 显示了 LabVIEW 中的 For 循环、For 循环的流程图和 For 循环 功能的伪码示例。
循环计数接线端是一个输出接线端,输出已完成的循环次数。 For 循环计数总是从 0 开始。 For 循环与 While 循环的区别在于:For 循环只执行指定的次数,而 While 循环会重复执行,直至条件接线端 接收到特定的值才停止。 图 6 中的 For 循环每秒产生一个随机数,共执行 100 秒,并在数值显示控件中显示产生的随机数。
循环计数接线端是一个输出接线端,输出已完成的循环次数。
While 循环计数总是从 0 开始。 注:While 循环将至少执行一次。
无限循环
无限循环是一个常见的编程错误,指循环永不停止。
假设用户将条件接线端设置为“真(T)时停止”,同时在 While 循环外部放置了一个布尔控件,如控件的值在循环 开始时为 FALSE,那么就造成了一个无限循环。
要解决上述错误,您需找到未连接输出值的条件分支,给输出隧道连接一个输出值。此外,也可右键单击输出 隧道,选择“未连线时使用默认”,为所有未连接的输出隧道使用隧道数据类型的默认值。当所有分支的输出均 已连线时,输出隧道显示为实心。
应避免使用“未连接时使用默认”选项,因为使用该选项无法详细呈现程序框图,使代码难以理解,此外,该选 项还增加了调试代码的难度。需注意的是,如选择了该选项,输出默认值是与隧道相连的数据类型的默认值。 例如,如果隧道是布尔数据类型,则默认值为 FALSE。
图 7. 改变条件结构显示的条件分支 如输入选择器的值与连接到选择器接线端的对象不是同一类型,则选择器值变成红色,表示只有编辑或删除该 值后 VI 才可运行。此外,选择器标签值不能为浮点数,因为浮点运算可能存在四舍五入误差。如连接一个浮 点数到条件分支,LabVIEW 会对其进行舍入到最近的整数值。如在分支选择器标签中输入浮点数,数值将变 成红色,表示在执行条件结构前必须删除或编辑该值。
返回页首
视频:在 LabVIEW 中使用条件结构
条件结构包括两个或两个以上子程序框图(也称“条件分支”)。 条件结构每次只能显示一个子程序框图、执行一个条件分支。执行哪个子程序框图由输入值决定。条件结构类 似于文本编程语言中的 switch 语句或 if...then...else 语句。
分支选择器标签位于条件结构顶部,中间是当前分支在选择器中的名称,左右两边是递增和递减箭头。 单击递减和递增箭头可浏览所有条件分支。也可单击分支名旁边的向下箭头,在下拉菜单中选择一个条件分支。
相关文档
最新文档