labview中关于波形图的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了labview中关于波形图的问题相关的知识,希望对你有一定的参考价值。

如上图所示,为了将两条点数不同的曲线在同一个波形图上显示出来,首先将数组转换为簇,再将簇组成一维数组。错误提示如下图:

最后问一下:怎么改变波形图的数据类型?簇和数组之间有什么关系?新手请教~·

先说明一下,不知道你在补充问题中说的公式模型发生器是什么函数,
主要要看它的输出数据类型。
波形图和波形图表支持以下数据类型。

LabVIEW使用波形图和图表显示具有恒定速率的数据。
波形图用于显示测量值为均匀采集的一条或多条曲线。波形图仅绘制单值函数,即在y = f(x)中,各点沿x轴均匀分布。例如一个随时间变化的波形。
波形图可显示包含任意个数据点的曲线。波形图接收多种数据类型,从而最大程度地降低了数据在显示为图形前进行类型转换的工作量。

注: 数字波形图用于显示数字数据。

在波形图中显示单条曲线
波形图接收多种数据类型以显示单条曲线。对于一个数值数组,其中每个数据被视为图形中的点,从x = 0开始以1为增量递增x索引。波形图接受包含初始x值、△x及y数据数组的簇。波形图也接收波形数据类型,该类型包含了波形的数据、起始时间和时间间隔(△t)。

波形图还接收动态数据类型,用于Express VI。动态数据类型除包括对应于信号的数据外,还包括信号信息的各种属性,如信号名称、数据采集日期和时间等。属性指定了信号在波形图中的显示方式。当动态数据类型中包含单个数值时,波形图将绘制该数值,同时自动将图例及x标尺的时间标识进行格式化。当动态数据类型包含单个通道时,波形图将绘制整个波形,同时对图例及x标尺的时间标识自动进行格式化。

在波形图中显示多条曲线
波形图接收多种数据类型以显示多条曲线。波形图接收二维数值数组,数组中的一行即一条曲线。波形图将数组中的数据视为图形上的点,从x = 0开始以1为增量递增x索引。将一个二维数组数据类型连接到波形图上,右键单击波形图并从快捷菜单中选择转置数组,则数组中的每一列便作为一条曲线显示。多曲线波形图尤其适用于DAQ设备的多通道数据采集。DAQ设备以二维数组的形式返回数据,数组中的一列即代表一路通道的数据。

波形图还接收包含了初始x值、△x和y二维数组的簇。波形图将y数据作为图形上的点,从x初始值开始以△x为增量递增x索引。该数据类型适用于显示以相同速率采样的多个信号。

波形图接收包含簇的曲线数组。每个簇包含一个包含y数据的一维数组。内部数组描述了曲线上的各点,外部数组的每个簇对应一条曲线。以下前面板显示了这样的y簇的数组。
如每条曲线所含的元素个数都不同,应使用曲线数组而不要使用二维数组。例如,从几个通道采集数据且每个通道的采集时间都不同时,应使用曲线数组而不是二维数组,因为二维数组每一行中元素的个数必须相同。簇数组内部数组的元素个数可各不相同。

波形图接收一个包含初始值x、△x和簇数组的簇。每个簇包含一个包含y数据的一维数组。捆绑函数可将数组捆绑到簇中,或用创建数组函数将簇嵌入数组。创建簇数组函数可创建一个包含指定输入内容的簇数组。关于接收该数据类型的图形范例见

波形图接收包含了x值、△x值和y数据数组的簇数组。这种数据类型为多曲线波形图所常用,可指定唯一的起始点和每条曲线的x标尺增量。

波形图还接收动态数据类型,用于Express VI。动态数据类型除包括对应于信号的数据外,还包括信号信息的各种属性,如信号名称、数据采集日期和时间等。属性指定了信号在波形图中的显示方式。当动态数据类型包含多个通道时,波形图可显示每个通道的曲线并自动格式化图例以及图形x标尺的时间标识。

波形图表是显示一条或多条曲线的特殊数值显示控件,一般用于显示以恒定速率采集到的数据。下列前面板显示了一个波形图表的范例。

波形图表会保留来源于此前更新的历史数据,又称缓冲区。右键单击图表,从快捷菜单中选择图表历史长度可配置缓冲区大小。波形图表的默认图表历史长度为1,024个数据点。向图表传送数据的频率决定了图表重绘的频率。

在波形图表中显示单条曲线
如一次向图表传递一个或多个数据值,LabVIEW会将这些数据作为图表上的点,从x = 0开始以1为增量递增x索引。图表将这些输入作为单条曲线上的新数据。

波形图表接收波形数据类型,该类型包含了波形的数据、起始时间和时间间隔(△t)。创建波形函数可在图表的x标尺上划分时间,并自动使用x标尺刻度的正确间隔。在指定了t0和单元素Y数组的波形中,各个数据点均拥有时间标识,因此适用于绘制非均匀采样的数据。

在波形图表中显示多条曲线
如需向波形图表传送多条曲线的数据,可将这些数据捆绑为一个标量数值簇,其中每一个数值代表各条曲线上的单个数据点。

如需在一次更新中向每条曲线传送多个点,可将一个数值簇数组连接到波形图表。每个数值代表各条曲线的单个y值点。

波形数据类型可用于在波形图表中创建多条曲线。“创建波形”函数可在图表的x轴上划分时间,并自动使用x标尺刻度的正确间隔。在指定了t0和单元素Y数组的一维数组波形中,各个数据点均拥有时间标识,因此适用于绘制非均匀采样的数据。

如在运行前无法确定需显示的曲线数量,或希望在单次更新中传递多个数据点用于多条曲线,可将一个二维数值或波形数组连接到图表。默认状态下,波形图表将数组中的每一列作为一条曲线。将二维数组数据类型连接到图表,右键单击该图表,从快捷菜单中选择转置数组可将数组中的每一行作为一条曲线。

波形数据类型
波形数据类型包含波形的数据、起始时间和时间间隔(△t)。可使用“创建波形”函数创建波形。默认状态下,很多用于采集或分析波形的VI和函数都可接收和返回波形数据类型。将波形数据连接到一个波形图或波形图表时,该波形图或波形图表将根据波形的数据、起始时间和△x自动绘制波形。将一个波形数据的数组连接到波形图或波形图表时,该图形或图表会自动绘制所有波形。
先说明一下,不知道你在补充问题中说的公式模型发生器是什么函数,主要要看它的输出数据类型。波形图和波形图表支持以下数据类型。 LabVIEW使用波形图和图表...追问

呃,我没写公式模型发生器啊~·

参考技术A 你把数组直接连到波形图的接线端上,不要经过簇的转化试试。
该波形图的数据的话,在程序框图中,波形图的图标点右键--属性--显示格式就行。追问

试验了下,提示有错,这是两条点数不同的曲线,不能直接接到波形图上,嗯,还有那个波形图上只能连接一个数据源

追答

我试了下,你可以把两个for循环输出来的数据连接到创建波形Y输入端子上(函数——编程——波形——创建波形),然后把两个波形数据连到创建数组上,再连到波形图上,可以显示不同点数不同数据了

追问

嗯,试了下你的方法,出来的是想要的结果。上图中的错误也找出来了,是一个控件放错了,不应该用数组转换簇控件,应该用绑定控件,我那个图就行了,出来的结果和你这个方法是一样的!
谢谢哈!

本回答被提问者采纳
参考技术B 看labview的帮助,对了 问句,你用的是什么版本的?追问

帮助里面没详细讲,只是说数据源和接收端的数据类型应一致。我用的是labview2010的中文版

winform Chart波形图数据?

最近在做上位机读取电流,电压,频率等数据然后将数据显示成波形图,比如原始数据 List<int> voltages = 223,245,218,226,230,242,219;我现在是把数据直接用Spline显示曲线图,Chart.Series["母线电压"].Points.DataBindY(voltages);请问这样就是波形图了么? 还是说需要将List中的数据转换再用Spline显示出来才叫波形图 (某博客上说的【波形图,是取正玄值,并放大50倍,然后上移50】)

首先在窗口拖拉一个Chart控件,然后再对应的按钮事件里面写下面的代码:
System.Windows.Forms.DataVisualization.Charting.Series series1 = this.chart1.Series[0];
series1.ChartArea = "ChartArea1";
series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Spline;//设置成波浪线
series1.Legend = "Legend1";
series1.Name = "母线电压";
series1.Color = Color.Red;//设置线条为红色
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gainsboro;//设置网格线竖线成灰色
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gainsboro;//设置网格线横线成灰色
List<int> voltages =new List<int> 223, 245, 218, 226, 230, 242, 219 ;//数组
chart1.Series["母线电压"].Points.DataBindY(voltages);

//取5的倍数代码
List<int> voltages = new List<int> 13, 15, 19 ;
List<int> voltages1 = new List<int>();
foreach (int i in voltages)

voltages1.Add(Convert.ToInt32(i / 5)*5);
追问

OK,还有个问题就是 取整数类似四舍五入 ,比如两组数据 13,15,19 转为 10,15,15, 21,25,26 转为 25,25,30,全部转为5的倍数该怎么计算?

参考技术A 是不是波形图 你说了不算? 我觉得是波形图

以上是关于labview中关于波形图的问题的主要内容,如果未能解决你的问题,请参考以下文章

一个LabVIEW控件,生成模拟波形效果

labview停止循环为啥波形会清除一次

labview如何调用漂亮的可视化图表

LabVIEW 波形图表显示多条曲线

Labview画个波形图

LabVIEW虚拟数字示波器