【问题标题】:How do we assign value to variable to later use in LabView?我们如何为变量赋值以便以后在 LabView 中使用?
【发布时间】:2019-02-13 16:42:25
【问题描述】:

我正在从 LabView 中的传感器读取动态数据,我正在尝试存储设备第一个位置的初始值以比较并用于零值。

我尝试创建一个数组并将其存储为 case-structure 中的一个元素,该元素通过布尔按钮激活,但由于某些原因无法使用 case-structure 的输出. 我见过有人成功使用移位寄存器,但在 LabView 2017 中,我似乎只能使用 反馈节点。实现这种结构最简单的方法是什么?

预期结果将从传感器读取的单个数据点分配给变量。我正在使用 LabView 2017。

注意:似乎在 LabView 2017 中通过右键单击电线使用移位寄存器不再是选项了!

更新:下面是程序的sn-p:

【问题讨论】:

  • "在 LabView 2017 中我只能使用反馈节点" -- 请补充原因。 LabVIEW 2017移位寄存器,那么约束是什么?
  • @Joe 它有 for while 循环,但它似乎没有 for case structure
  • 您的程序如何在没有循环的情况下从传感器进行多次读取?您是否放置了一系列读取块?可以加个框图sn-p吗?
  • @Joe 我对整个结构有一个 while 循环,但问题是我想在命令中引导前 10 个数据,这就是为什么我想在里面添加另一个案例结构,而且我不知道如何读取我的数组中注册的前 10 个数据,因为它在不断更新。
  • @Mario 无需检查代码,这是徒劳的练习。请附上代码的 sn-p 或整个 vi,以便我们无需猜测即可知道您的问题是什么。

标签: variables labview


【解决方案1】:

当你在一个循环结构的隧道上有一根电线时,你可以右键单击,将隧道模式更改为移位寄存器。所以我不确定你说你只能使用反馈节点是什么意思。

【讨论】:

  • 我知道这一点,我在我以前的 LabView 版本中使用它,但在 2017 版本中,当我使用右键单击电线时,添加移位寄存器不是选项!请问您的 LabView 版本是多少?
  • 我最初删除了我的帖子,因为我意识到你在谈论动态数据,并且由于我从未真正使用过动态数据,我不确定这是否是导致问题的原因。但是现在我看到你的 sn-p,我不确定,因为你没有尝试使用动态数据。而且由于它是一个 While 循环,因此您绝对可以使用移位寄存器。当你说你试图平均前三秒以保持稳定时,真的只是前三秒吗?或者是 3 秒窗口的运行平均值?
【解决方案2】:

听起来您有一个用于进行测量的 while 循环。您可以使用其循环迭代终端来确定您是否正在测量初始(或前十个)测量值。然后,您可以将这些值存储在移位寄存器中,以供将来测量使用。获得初始(或前十个)测量值后,您只需停止更新移位寄存器。

下面的 VI sn-p 显示了实现此目的的方法。案例结构只有一个其他不可见状态,即前 10 个读数数组直接连线的默认情况,因此保持不变。

没有更多细节,很难说这是否回答了你的问题。如果没有,那么我建议发布您的代码的 sn-p 或至少足以显示它当前的工作方式。

【讨论】:

  • 我已按要求添加了 sn-p。您的解决方案对我不起作用,但给了我不同的想法来尝试。现在我只是将值存储在一个文件中以供以后读取,但这效率不高。因此,如果您有任何建议,我将不胜感激。
【解决方案3】:

您是否尝试过使用经过时间功能?这样,您可以创建一个数组并获得前 x 秒的平均值。

或者,您可以使用状态机创建一个单独的“校准”状态来执行此操作。 状态机还允许您正确初始化和停止硬件。使您的代码更具可读性和可扩展性。

最好的问候, 圣

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    相关资源
    最近更新 更多