LabVIEWwilliam hill官网
直播中

610930

12年用户 7经验值
擅长:医疗电子
私信 关注
[问答]

请教用生产者/消费者架构进行模拟输出时候的问题

初学乍练,还望大家多多指教。
我想模拟输出连续播放一个读取自文件的数据,因为数据比较大,所以采用了生产者/消费者模式。生产者循环读取数据放入队列,消费者循环出队列的数据一方面画出来,另一方面模拟输出。画出来的结果看起来挺正常,模拟输出的结果重新用模拟输入采集后发现丢失了很多段数据点,用示波器看也是如此。我试着调了模拟输出缓存大小,比生产者循环每次放入队列的数据量小或大几倍都没什么效果。希望能有专家帮我指出问题所在,多谢啦!
  • 数据丢失截屏

回帖(10)

凌志权

2012-7-14 15:24:46
看了程序,可惜我没装有程序里DAQ那个模块,程序显示不全。
队列的数据都存在电脑内存,一般不会出现数据掉失的问题。
可你的模拟输入没有使用队列的类似方法进行处理。直接通过DAQmx Write.vi输出,在这个循环输出中因为元素出队列和10ms延时模块导致输出每个数据出现滞后现象。而你的DAQmx Read.vi在循环采集数据的时间很快,所以会出现每个数据重复采集好几个,出现上面有直线数据的问题。

举报

幸运者

2012-7-14 16:11:06

举报

946857750

2012-7-14 16:12:20
学习
举报

610930

2012-7-15 18:31:55
引用: lingzhiquan 发表于 2012-7-14 15:24
看了程序,可惜我没装有程序里DAQ那个模块,程序显示不全。
队列的数据都存在电脑内存,一般不会出现数据掉 ...

谢谢您的帮助。
我现在有点不清楚。我试了两件事,一是把模拟输出连到示波器,发现还是有大段大段的直线;二是试了把模拟输入和输出的循环合并,但结果还是没有变化。模拟正弦波送到队列里,从模拟输入记录到的是信号仿佛被时间上压缩了一样。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分