博客首页 | 排行榜 |

csxcs366的博客--LABVIEW CVI

http://labview.weebly.com/ 群:80754347 群:78561268 群:37591940

个人档案
博文分类
LABVIEW深入探索之正确理解EXPRESS XY GRAPH  2010-03-22 09:46

XY图可以说LABVIEW数据图形显示控件最为灵活的控件,可以替代波形图和波形图表的绝大部分功能,其输入参数形式有许多变化,在下面的两篇文章中,具体讨论了XY GRAPH的多种用法。

 

http://www.eefocus.com/csxcs366/blog/08-08/154445_eee3e.html

 

http://www.eefocus.com/csxcs366/blog/08-07/151912_4c6ae.html

其中一篇讨论的是利用数据缓冲区技术,如何连续显示数据的问题。快速VI(EXPRESS VI)是LABVIEW提供的一套可以采用对话框快速配置的VI,非常有利于初学者使用。在快速VI中,提供了快速XY GRAPH,该VI可以实现连续的数据显示,但是与我提及的数据缓冲区有很大区别。

 

我提及的数据缓冲区连续显示数据类似于LV的波形图表,本身保持一个设置为固定长度的数据缓冲区,当超过所设长度时,新的数据进入缓冲区时,原有的数据被丢弃。这样XY图始终显示的最新数据,而且长度不变,控件显示的是示波器的效果。

 

快速XY图则不同,它有两种不同的运行方式。

 

每次调用时是否清除数据决定了EXPRESS XY GRAPH的工作方式。

1、每次调用时清除数据,则EXPRESS XY GRAPH 与一般的XY GRAPH 没有明显的区别,输入参数采用了两个一维数组,这是XY GRAPH常见的工作方式。

2、每次调用不清除数据,则EXPRESS GRAPH内部记录不断累积的数据,也就是说它内部保持两个不固定长度的一维数组,用来保存X数据和Y 数据。

 

在每次调用不清除数据时要特别注意,与数据缓冲方式不同,EXPRESS XY GRAPH不是以移动的方式显示数据,而是不断增加数据,所用内存是不断增加的。

为了正确理解快速XY GRAPH,我们分析一下,首先把快速XY VI 转换成一般的VI,分析一下它的工作原理,通过快捷菜单,选择打开前面板。

下面跟踪它的程序框图。

 

从程序框图可以看到,在连续显示增加数据的情况下,它利用了XY图的局部变量,取出原来的数据,利用BUILD ARRAY函数不断增加XY图中的数据,这样在长时间运行后,很容易导致内存滥用,而不释放的情况,同时由于使用了局部变量,内存的使用是加倍的。这与我们所说的数据缓冲区是完全不同的。

另外,由于快速VI采用了动态数据,因此不断地在进行数据类型转换,这也是快速VI效率不高的原因之一。

从程序框图上也可以看出,如果使用连续显示的方式,我们必须监测累积数据的大小,在达到一定程度时,通过RESET,清除数据,释放所用内存。

需要强调的是快速VI是在LV7.0后推出的,主要是简化编程难度,但是运行效率显然是不高的,同时也牺牲了灵活性,这也是熟悉LV的编程者一般不愿意使用快速VI的重要原因。

类别:LABVIEW的深入探索 |
上一篇:DAQ之如何获取物理通道列表 | 下一篇:畅想大学生掏粪时代(转)
以下网友评论只代表其个人观点,不代表本网站的观点或立场