找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 761|回复: 4

如何使用trigger提高测量速度?

[复制链接]
发表于 2009-8-13 09:48:29 | 显示全部楼层 |阅读模式
我的程序步骤执行如下:
1)通过digital port写一个控制字到多路选择芯片选择一个通道(例如控制字0000选中第一个通道,依此类推)
2)用Agilent 34401A万用表测量这个通道的电流值,把该值送回电脑储存,然后测量下一个相邻的通道,循环执行这个过程.

我已经实现了以上功能,但是速度太慢,测量一个通道需要1秒多一点的时间,我有2048个通道要测(分成32组,每组64个通道,两层for循环),这样需要大约32分钟,希望能降到10分钟左右.我尝试用程序把resulution降低到4.5并把autozero关闭,但是速度没什么变化,还有个可能提高速度的办法是关掉万用表的显示(display),但不知道如何用程序实现.
我现在的程序是测量每个通道的时候万用表都会发出"嘀嗒"声,这是不是代表一个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到我程序里来提高测量速度吗?里面还有些trigger的例子,我看得不是很明白,不知道我应该用哪个并且如何应用到我的程序中去.

希望能够得到大家的帮助!谢谢!
 楼主| 发表于 2009-8-13 21:49:30 | 显示全部楼层
回复 顶

使用道具 举报

发表于 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的例子,我看得不是很明白,不知道我应该用哪个并且如何应用到我的程序中去.
回复 顶

使用道具 举报

 楼主| 发表于 2009-8-14 22:11:09 | 显示全部楼层
谢谢你的回答!
我不知道什么是TDMS阿,我就是把测量值写到一个txt文件里做储存.
我觉得这个速度的瓶颈就在万用表上.我认为用一个trigger测量多个数据可以提高速度的原因是:以前那个系统用的万用表是Keithley 2000,而且测量机制与我这个系统不一样,它采用的是Keithley 7002 scanning box,扫描通道来进行测量.我看过这个系统的运行,它是万用表发出一个"嘀嗒"声,然后万用表上并不显示每个测量数据却只是闪烁,感觉速度很快,一下就测了几十个通道,把值显示到电脑上.程序是用一个顺序结构:1)Keithley  trigg config.vi 2)送scanning list 3)测量.
我的系统和这个系统实现的功能一样,只是采用的机制不一样,它用的扫描,设备比较贵,我这个用多路选择芯片,比较便宜.这是否与万用表支持预先设置好扫描通道序列有关?
回复 顶

使用道具 举报

发表于 2009-8-17 09:38:27 | 显示全部楼层
你都明白你用的是一个Keithley的一个SCANNING BOX来实现,意思是,它们在时序和采样率上都可以匹配的很好的,那么你使用自己DIY的多路选择芯片和Agilent的34401能否匹配起来呢?这点你要下功夫了,如果能,那么使用多通道采集就有意思了,但这是个非常非常难的技术问题,即使你找到一个采样率和34401相同的多路切换器,因为你们彼此之间只有参数协议,没有内部的硬件或者软件协议。如果两者匹配不好,有可能导致几个通道里采样的数据是一样的,也有可能导致有几个通道采集到的数据只是前几个通道的(也就是Missing Step)。不知道我这样表达,你是否能明白我的意思??!
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-29 11:40 , Processed in 0.031006 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表