LabVIEW中的波形图和波形图表有什么区别
在LabVIEW中,应该分别在什么情况下使用波形图和波形图表?这两种控件的数据显示方式有什么区别?应该使用哪一个控件来查看数据的历史记录?
解决方案
波形图和波形图表在显示和更新数据的方式上有所不同。
波形图可接受各种类型的数据阵列,例如数组,波形或动态数据。波形图在接收到数据后将立即绘制所有接收到的数据点。波形图不接受单点值。当将包含数据点的数组连接到波形图时,波形图会假定数据点之间的间距相等。默认情况下,初始的X轴取值以及步长(t0和dt)分别为0和1,该初始值可以在波形图的属性中更改,也可以使用属性节点对其进行更改。
波形数据类型在本质上是一个包含t0和dt信息的数据点数组。在这种情况下,波形图接收波形中包含的t0和dt取值,并根据t0和dt取值相应地显示数据。可以使用自行指定的数据点、t0和dt来构建自定义的波形。还可以通过将二维的波形数组或动态数据连接到波形图以在同一波形图上显示多个图形。
波形图表将一定数量的数据点存储在缓冲区,并通过这种方式存储并显示这些数据点。当缓冲区被填满后,波形图表将会用新的数据点覆盖缓冲区中存在时间最久的数据点。当数据点可用时,波形图表将显示已有的数据点外加最新接收到的数据点。可以一次写入单个或多个数据点。如果将一个数组连接到图表,它会将该数组中的数据点附加到现有数据点之后。通过将一个包含数据点的簇或是一个包含波形或动态数据的二维数组连接至波形图表,可以在同一图表中显示多个图形。例如,如果连入了一个包含3个数据点的簇,波形图表将为显示的3个图形各添加一个点。下面的程序框图说明了波形图与波形图表功能上的差异:
在上面的For循环中,自动索引被用于生成包含100个随机值的数组,该数组随后被传递给一个波形图。而在下面的For循环中,100次循环的每次迭代过程都会将一个新的随机值传递给波形图表。
两个循环都会产生相同的输出结果,不同之处在于波形图只在获取到所有数据后进行一次更新,而波形图表则是在程序运行的过程中不断更新。
相关信息
可以通过右键单击波形图表并从快捷菜单中选择“图表历史长度”选项来设置图表历史记录缓冲区的长度(波形图表能够存储和显示的数据点数)。
也可以通过编程的方式更改图表历史记录长度或图表缓冲区大小。
若需要在两种控件之间进行切换,可以右键单击波形图控件或波形图表控件,选择替换选项,然后从控件选板中选择对应的控件,如下图所示:
在LabVIEW中更改波形图表的历史长度
可以以编程方式更改波形图表的历史长度吗?
尽管可以在程序运行之前手动增加图表历史长度,但是无法以编程方式增加图表历史长度。如果知道最大可能的历史点数,则可以设置可见的历史点数。
使用以下两个属性节点设置在波形图表上显示的当前值:
X标尺»范围»最大值
X标尺»范围»最小值
x轴表示图表历史中元素的索引。可以将最大值设置为最近的索引,减去所需的值数,然后将其设置为最小值,来限制显示的点数。可以在附件的 Chart Display Size. vi 中了解此过程。
注释:这不会更改存储在图表数据缓冲区中的数据,只会更改图表显示的数据。
或者,可以在运行程序之前增加图表历史缓冲区中的数据点数。
右键单击前面板的波形图表
单击图表历史长度
在图表历史长度弹窗中增加或减少要存储在图表历史缓冲区中的数据点数量
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。