设置waveform chart中x轴更新速度(串口问题)
问题:
用labview 6i做一个模拟仿真示波器,采样后送waveform chart
频率不要求太高,1-100hz即可
但是没法实现显示与波形同步
方法:
chart x轴的更新速度没有意思
因为chart 是根据你的采样而更新的,而且一般用在
低频区域的采样才使用chart, 因为chart的x轴严格对因时间
你将chart 属性中的buffer 设成 0
默认识1024
采样还是要经过数字滤波的
显示只不过吧滤波的结果也就是平均值(假设是100ms内)
显示出来
这样就是说吧本来100个点的数据(假设是这样)变成一个点来显示
放慢了x轴的更新速度
要知道,while循环是必须加delay的呀,
如果你使用的系统是2000,你可以用任务管理器看一下,
如果你不加delay, 你会发现你的CPU负荷为100, 也就是说
所有的CPU资源都被你的while循环吃掉了,这样就无法及时
更新你的串口传输,甚至你的显示也会变慢,而你一旦加上
delay ,哪怕是1ms,你在比较一下,你会发现你的cpu资源几乎
为零,这样cpu就可以及时更新你的serial io乐
另外,chart 的 buffer 只是你显示的buffer 而已, 1024代表
你显示的点数(对应x坐标)为1024点,利用FIFO方式
你采用的是软件采样
还有,串口速率很低,绝对不合适作实时传输
Q:
如何实现用chart显示数据时,x轴显示的是准确时间?右击chart控件,选择“X Scale”->“Formating......”,然后在“Advanced edit mode”下编辑X轴的格式,选择“Absolute time format codes“,但是显示的时间与实际时间不符合
A:
我想你混淆了采样点真实的时间间隔和X轴数字格式显示的关系,X轴的数字表示采样点的多少,即使你将格式转换为时间,表示的仍然为采样点的数量,如X=60转换后为X=1min,如果要在X轴显示真实时间,我做了一个VI,可以供你参考:
1、从系统获取起始时间,作为chart的 t0
2、你实际的采样间隔时间和采样点数量之间的时间转换
vi中我做了一个延时来模拟采样时间间隔,调整它的大小,采样点对应的时间相应改变。
A:
if you use the attachment vi,you'll may see the difference of chart and graph, especially in DAQ, suggest to use
CHART instead of GRAPH
20065283105461.rar
Q:
怎样用chart一次显示大容量的数据,如 4M个点,而不滞后?
A:
不知道您所说的“滞后”或者“慢”的标准是什么?我试了一下,4M个随机数,利用graph画,graph VI的运行时间大约是60ms
毕竟是4M的数据呀,从pc内存到显卡的内存再到显示出来应该也需要一些时间的.如果这4M个数据不是同时到来,那就用chart实时更新把
程序非常简单,就是一个for循环里面产生4M个随机数,然后接graph显示。
是不是您的机器的配置不是很高?还是您的程序还有其他比较复杂的操作?
chart 是可以保存历史数据,支持连续输入。graph是一次性输入若干点数据
看看能不能在中途分段显示,不要一次性显示4M个数据,把数据拆分成稍微少的数据显示可能会好一些。
B:
是我的机器慢。我用了20秒的时间显示。 哎
文章评论(0条评论)
登录后参与讨论