LabVIEW:我可以集群指标然后显示平均值吗?

时间:2016-03-02 08:00:26

标签: labview

LabVIEW允许我创建一个集群对象,然后在其中放置sendmail_path = /usr/sbin/sendmail -t -i 。然后,这一系列指标由一个“线”作为一个集群提供。

如果我想添加另一个显示前一组值的平均值的指标(例如,我有5个温度值,我想显示每个值及其均值),那么我可以添加一个新指标,但是这个然后想要一个新的价值。

将群集保存为numeric indicator可以让我轻松地重复使用它,但如果我每次必须将均值传递到群集中,那么我就会遇到类似这样的事情:

Image showing block diagram in LabVIEW

我可以在控件内以某种方式计算平均值/我应该以不同方式打包它,以避免中间部分?

3 个答案:

答案 0 :(得分:1)

我会以不同的方式安排我的群集,例如如下图所示:

enter image description here

这样可以避免混淆数据和计算值,并且可以更容易地改变温度数量(例如,如果您决定使用6而不是5)。

关于编码问题的方法,可以有很多选项。 " In Place Element"在我看来,@ Khachik建议的是最干净,最简单的。

但不是Xcontrols,我更喜欢LVOOP并定义一个类。

VI的框图如下所示:

enter image description here

这可能是"写温度"方法:

enter image description here

最后,即时生成完全填充的群集的方法:

enter image description here

使用LVOOP对你来说似乎有点过分,但只要你的程序变得更大,它就会证明自己很有价值。

答案 1 :(得分:1)

这就是子VI的用途。如果您认为代码使图表看起来不整洁,请选择相关部分并选择Edit > Create SubVI

我是MisterEmme的第二个建议,你应该考虑定义你的集群,以便将平均值与各个温度值分开,这样如果你以后有6个温度,或者4个等等,事情就不会破坏。如果你做到了如果将集群转换为typedef并保存它,则可以像Khachik建议的那样使用Bundle / Unbundle by Name,这将为您提供进一步的未来验证,您可以在以后添加或更改集群定义中的内容,而不会破坏现有代码。

我不认为In Place Element在这里是合适的,这是为了在速度或内存密集型代码中进行性能优化,虽然它有时看起来比正常的阵列操作更整洁,如果过度使用它实际上会损害性能不当。 XControl或LVOOP对于你所描述的需求来说是过度的,但如果你想学习新东西,请务必查看它们。

答案 2 :(得分:0)

我同意前面提到的xControl选项可能过度,但绝对是一种选择。您还可以轻松添加更多统计分析,并且所有代码都将很好地封装在控件中。平均值的计算将在xControl内部,控件的DataType将是您的温度的TypeDef集群。这是NI教程。 xControls不适合胆小的人。

http://www.ni.com/tutorial/3198/en/