在 LabVIEW 中构建和配置 While 循环

While循环 是一种用于重复执行代码块直到满足给定条件的结构。当VI运行时,While循环内的代码将执行,然后条件终端将被计算。
本教程将引导您了解如何在 LabVIEW 中构建和配置 While 循环。本介绍材料对于刚接触 LabVIEW 并希望熟悉这种基本编程结构的人来说非常有用。

一. 构建 While 循环

  1. 启动 LabVIEW 并打开一个新的 VI。您可以通过选择文件»新建VI来打开一个空白VI
  2. 右键单击程序框图可显示函数选板的临时版本。
    可选:您可以单击“函数”选项板左上角的图钉来固定该选项板,使其不再是临时的。
  3. 导航到 “结构” 并选择“ While 循环”。
    要将循环放置在程序框图上,请单击鼠标左键并拖动鼠标,直到循环达到所需的大小。
    在这里插入图片描述
  4. 在前面板上添加一个停止按钮。您可以在控制面板»布尔»停止下找到它。
  5. 在程序框图上,将“停止”按钮图标拖动到 while 循环中。
  6. 将“停止”按钮连接到条件端子,以便您可以控制 while 循环的执行。
    默认情况下,当按下“停止”按钮时,真值将传递到条件终端,导致 while 循环停止执行。
    注意:您不仅可以使用“停止”按钮,还可以将任何布尔数据连接到条件端子以控制 while 循环的执行
    在这里插入图片描述
  7. 配置条件终端。要在Stop if True和Continue if True之间切换条件终端,请右键单击条件终端并选择所需的设置。
    条件终结符定义循环何时停止。条件终端有两种设置:如果为真则停止 和如果为真则继续。
    如果条件终端设置为 Stop if True,并且将布尔值 true 发送到条件终端,则循环将停止执行。这是默认设置。
    当设置为“True 时继续”时,仅当布尔值 true 发送到终端时,才会运行 while 循环。
  8. (可选)通过右键单击迭代终端 并选择 创建指示器来监视循环已经历的迭代次数 。

二. 将结构隧道添加到您的 While 循环中
使用结构隧道将数据输入或输出结构,例如 while 循环。如果要将数据发送到 while 循环中,则需要创建结构隧道。
a. 发送到While 循环的数据仅在第一次迭代时发送
b. 从 while 循环中发送的数据仅在最后一次迭代之后发送。
如果您希望前面板数据不断更新,它们的指示器应该位于 while 循环内部

示例:

  1. 完成构建 while 循环的步骤(见上文)。
  2. 在前面板上创建一个数字指示器(控件>>数字>>数字指示器)。
    (可选)为了避免强制数据类型,请 通过右键单击指示器并选择 Representation >> I32将数字表示形式更改为I32。
  3. 在框图上,将迭代计数器连接到数字指示器图标
    结构隧道显示为 while 循环边界上的实心块。该块是连接到隧道的数据类型的颜色。
    循环终止后,数据从循环中传出。
    在下面的框图中,迭代终端连接到隧道。在 while 循环执行完毕之前,隧道中的值不会传递给迭代指示器。将代码片段放入您的 LabVIEW 代码中并注意:
    a.随机数指示器放置在 while 循环内。该指标的数据随着每次迭代而更新。
    b.当代码运行时,迭代计数指示器的值为零。这是因为在 while 循环停止执行之前,隧道不会将信息传递给指示器。
    c.当您按停止键时,迭代计数指示器现在将更新。
    在这里插入图片描述

三. 设置停止条件
通过使用布尔函数,您可以实现多个条件来影响 while 循环条件终端。您可以使用“或”函数来比较错误线状态和停止按钮控件,以便如果其中一个为 TRUE,则条件端子接收 TRUE 信号,并且 while 循环停止。

  1. 完成构建 while 循环的步骤(见上文)。
  2. 在前面板上的3D.ctl 控件中放置一个错误(控件调色板»数据容器»3D.ctl 中的错误)
  3. 在程序框图上,确保 Error In 3D.ctl 图标位于 while 循环之外。
  4. 拆下停止按钮和条件端子之间的连接线。
  5. 在 while 循环之外放置一个简单错误处理程序(Functions Palette»Dialog & User Interface»Simple Error Handler.vi)。该函数报告调用时遇到的任何错误。
    通过结构隧道通过 while 循环将控制中的错误与简单错误处理程序链接起来。
    将控制错误的输出连接到 while 循环的边界。单击边界以创建隧道。
    继续从隧道到 while 循环的相对边界并进入简单错误处理程序的输入的错误线。
  6. 在 while 循环内放置一个Unbundle By Name函数( Functions Palette»Programming»Cluster, Class, & Variant»Unbundle by Name)。您可以使用此函数来分隔错误数据线的布尔部分。
    将错误线连接到 Unbundle by Name 功能。
    左键单击 Unbundle 函数并选择 状态 以显示错误数据的布尔部分。
  7. 在 while 循环内放置一个or函数(函数面板»编程»布尔»Or)。
  8. 连接数据线。
    将Stop 按钮控件和 Unbundle by Name状态连接到 Or 函数中 。
    将Or函数的输出连接 到条件端子。
    如果按下“停止”按钮或在 while 循环内部检测到错误,下面的代码片段将停止执行 while 循环。
    在这里插入图片描述
    四. 移位寄存器:在循环之间传递值
    移位寄存器可用于将上一次循环的值传递至下一次循环。如下图所示,移位寄存器以一对接线端的形式出现,分别位于循环两侧的边框上,位置相对。
    在这里插入图片描述
    右侧接线端含有一个向上的箭头,用于存储每次循环结束时的数据。LabVIEW将数据从移位寄存器右侧接线端传递到左侧接线端。循环将使用左侧接线端的数据作为下一此循环的初始值。该过程在所有循环执行完毕后结束。循环执行后,右侧接线端将返回移位寄存器保存的值。

移位寄存器可以传递任何数据类型,并和与其连接的第一个对象的数据类型自动保持一致。连接到各个移位寄存器接线端的数据必须属于同一种数据类型。如果连接一个错误簇到并行For循环的移位寄存器,移位寄存器将转换为错误寄存器 。

循环中可添加多个移位寄存器。如循环中的多个操作都需使用之上一次循环的值,可以通过多个移位寄存器保存结构中不同操作的数据值。如下图所示。

在这里插入图片描述
在上一个程序框图中,右上角的移位寄存器接线端将2,即第一次循环中0和2之和传递到左上角的移位寄存器接线端,作为加运算第二次循环的初始值。右下角的移位寄存器接线端将2, 即第一次循环中1和2之积传递到左下角的移位寄存器接线端,作为乘运算第二次循环的初始值。

第二次循环将2和2相加并将结果4传递到左上角的移位寄存器接线端以用于第三次循环。第二次循环将2和4相乘,并将结果8传递到左上角的移位寄存器接线端以用于第三次循环。

十次循环后,右上角的接线端将加运算的最终结果传递到上方的显示控件,右下角的解析那段将乘运算的最终结果传递到下方的显示控件。

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值