【问题标题】:LabView: How to add a memory to a VI in labview?LabView:如何在labview中为VI添加内存?
【发布时间】:2013-10-29 19:47:28
【问题描述】:

我一直在摸索,试图找到一个代码,允许从 on​​->off 的变化导致某些事情发生,而从 off-->on 的变化不起作用。

例如,我有一个传感器作为输入。起初,它会感应到一个经过并静止几秒钟的物体,因此它记录了一个关闭(因此为 0)。当它记录关闭时,它会导致灯亮起。几秒钟后,物体走到尽头(离开传感器),然后返回并再次通过传感器。但是,这次我不想开灯。

如果系统有一个记忆,它以前的状态是关闭的,现在它会感应到开启,那么我不会让 off-->on 工作,而是让 on-->off 工作。这样的代码在LabVIEW上是否可行?有没有其他替代方案?

【问题讨论】:

    标签: labview


    【解决方案1】:

    我相信这会做到,而且非常简单,如果我错了,请纠正我,因为我不知道我完全理解所需的逻辑。

    这里的关键是使用移位寄存器,它比局部变量选项更直接,我确信那里有正确的解决方案或对此进行一些小的调整。

    移位寄存器初始化为假,循环输出上出现的任何状态都将在下一个循环的输入上重新出现。

    另一个有趣的解决方案是使用事件结构来触发“传感器”的值变化。此解决方案的响应速度也可能稍快一些,见下文:

    【讨论】:

    • 只是想知道 LED 灯是否有时会闪烁,这是否意味着我的代码或程序有问题。
    • 打开“高亮执行”运行它,它看起来像顶部的一个小灯泡。观察它运行并考虑要调试的值。如果没有您的设置和查看您的代码,我将无能为力。
    【解决方案2】:

    您可以使用local variable 和反馈节点来完成此操作。

    假设这是在一个 while 循环中,我的解决方案是在传感器输入上创建一个局部变量 hasLit 和一个反馈节点。当反馈节点输出为真而传感器输入为假(物体刚刚从传感器视图中传递出来)时,我们将 hasLit 更改为真。如果传感器为 true 而不是 hasLit,则灯的状态为 true。

    Image form

    【讨论】:

    • 当我尝试重做VI时,case结构外的haslit局部变量用not连接到未形成的虚线箭头
    • 我需要将局部变量设为输出
    • 如果我的灯和传感器在 while 循环之外;我怎样才能连接到他们?
    • 我也有一个外部while循环,我认为内部while循环与外部循环冲突并导致时间错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多