VEE 流程控制---循环

  • 基本流程控制

了解对象的基本组合如何协同工作以控制程序流程非常重要。下面的程序展示了如何生成一个对循环有用的简单计数,这是一种常见的程序控制。程序运行时,For Count对象从 0 计数到 9。
在这里插入图片描述

您可以嵌套For Count对象以创建嵌套循环。在下一个程序中,对于外部循环的 For Count 发送到其序列输入引脚的每个计数,内部循环的For Count从0到 9计数。在内部For Count完成其整个循环之前,外部For Count不会发送其下一个输出计数。
当外部For Count发送其最后一个计数时,它会从其序列输出引脚输出一个脉冲,从而激活 Beep 对象。这是此类循环对象的一个重要特征。在它们驱动的线程执行完之前,它们不会生成序列输出脉冲。

在这里插入图片描述

  • 连续循环

要生成连续循环,您可以使用Until Break对象,
如下例所示。Delay 对象控制程序每秒更新一次。
一个更好的方法是用 On Cycle 替换直到 Break,它可以生成一个具有任何延迟设置的容器来驱动 now() 对象。您可以在“数字”选项卡的“属性”对话框中设置AlphaNumeric显示格式
在这里插入图片描述

连续循环可用于重复程序的操作,加上直到满足特定条件。要随时结束此循环,请添加OK、 Break和Next对象,如下面的程序所示

在这里插入图片描述

要对连续循环提供更直接的控制,您可以使用 Toggle 对象。以下程序展示了如何使用 Toggle(以其 Button 格式)来中断循环。
在这里插入图片描述

切换输出连接到其复位控制输入。默认初始值为0,在每个循环期间输出到 If/Then/Else 。当 Toggle 值保持为 0 时,程序流继续到 Now 对象。单击 Toggle 按钮将值切换为 1,这满足 If/Then/Else 中表达式的条件并激活 Break 对象。

感觉从Button 输出值给到复位按钮有有申明用的?我不连也行啊 后面解释

  • 使程序具有交互性

鉴于之前的循环技术,以下程序展示了如何为交互式程序创建通用架构。考虑一个简单的程序,用户可以在其中选择两个操作之一或通过单击相应的切换按钮退出程序:
在这里插入图片描述

这个概念是每个单独的动作都有自己的并行线程。循环在每个If/Then/Else表达式中不断检查每个 Toggle 对象的输出(初始值为 0) 。当按下按钮时,Toggle 的输出变为 1,这会将相应的 Text 输出发送到 AlphaNumeric 显示器或结束程序。您可以根据需要添加任意数量的并行线程来执行 I/O 和计算。
这种架构的含义是执行线程必须在另一个线程执行之前完成。如果执行线程需要很长时间才能完成,则必须等到该线程完成后才能执行另一个线程
这个实例中 我们知道了 ,从tag Button 输出值给到复位按钮是有作用的

当我我们按下BT1按钮后,输出1,如果我们不将BT1复位,那么这个值就会一直为1,
那么当我们按下BT2 后,也输出1 ,那么在JCT 那里就会存在 两个数据 ;

显然 在按下按钮后,将1 同时给到Reset 管脚,复位Button 输出值为0 才是我们期望的,
所以建议这里一定要复位button
此外 应该注意:Button 的初始化值和 运行时候初始化 应该设置,否则可能导致错误;
在这里插入图片描述

使用上述 Toggle 控制技术来控制连续循环将对系统性能产生影响,因为Toggle 按钮将一直运行并占用大约 50% 的 CPU 时间。为避免这种情况,请使用OK和Next 对象替换Toggle按钮。下面的程序展示了如何使用OK和Next 对象来实现上述程序。在这个程序中,OK 按钮将在直到 Break 对象之后使用 0% 的 CPU 时间,直到按下OK按钮。
在这里插入图片描述

此外 OK 按钮有自动复位功能?按下后会自动复位;也比Toggle 方便;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值