|
|
发表于 2009-8-14 10:17:30
|
显示全部楼层
我在【】里回答你的问题
我的程序步骤执行如下:
1)通过digital port写一个控制字到多路选择芯片选择一个通道(例如控制字0000选中第一个通道,依此类推)
2)用Agilent 34401A万用表测量这个通道的电流值,把该值送回电脑储存【你用什么方式储存,TDMS方式么?】,然后测量下一个相邻的通道,循环执行这个过程.
我已经实现了以上功能,但是速度太慢,测量一个通道需要1秒多一点的时间,我有2048个通道要测(分成32组,每组64个通道,两层for循环),这样需要大约32分钟,【这个问题主要是在使用万用表来测量巨量切换电路导致的,为什么做这样的项目使用万用表而不是使用板卡呢?无论是使用NI或者国产板卡】希望能降到10分钟左右.我尝试用程序把resulution降低到4.5并把autozero关闭,但是速度没什么变化,还有个可能提高速度的办法是关掉万用表的显示(display),但不知道如何用程序实现.【那要看看34401的指引了】
我现在的程序是测量每个通道的时候万用表都会发出"嘀嗒"声【这是你在切换电路时候,万用表里面有个保护电路,一个继电器电路在做保护功能,这是时间堆积的关键,保护电路里,一个继电器的关闭到闭合至少使用了100到200ms的时间,测量那么多通道,这就大约花了7分钟的时间,还你的程序结构(我建议你优化一下),所以你使用万用表来实现巨量通道测量,又要把时间限制到10分钟以下,我个人此法不通】,这是不是代表一个trigger只测量了一个数据?我在想是不是能够让一个trigger测量多个数据,以次提高测量速度.我的想法是一次性写64个控制字到digital port,然后让万用表一个trigger测量这64个通道的电流值,然后写下一组的控制字,....这样执行下去.不知道我的想法对不对,可不可行,如果各位有更好的办法,请不吝赐教.
我在Labview自带的例子里找了Agilent的例子,里面有read single measurement.vi和read multiple measurements.vi,我不是很明白两者的区别,后者是测量多个通道,还是一个通道测量多次?我现在的程序中用了read single measurement.vi.,我可以用read multiple measurements.vi到我程序里来提高测量速度吗?【这两者是没多大差别的,Agilent在设计这个VI时候就有点无聊,其实单点也只是在多点测试里面Index出第一个数据而已,万用表本身一直是多点采集的】里面还有些trigger的例子,我看得不是很明白,不知道我应该用哪个并且如何应用到我的程序中去. |
|