完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好。
我有一个B2902A,我正在尝试对二极管实施3点测试,我希望它尽可能快地运行。 在我的测试中,我想测量正向电压Vf,反向击穿电压Vr和反向漏电流Il。 我开始编写一些简单的代码,通过GPIB一次一个地将每个命令发送到仪器。 我的代码包括初始设置的一部分,然后是一些循环运行的代码,一遍又一遍地重复测试。 我的编码环境是labview 2011.我发送的命令如下:* CLS; * RST;:SYST:BEEP:STAT OFF;:DISP:ENAB 0;:SENS:REM ON;:SENS:CURR:NPLC 0.01;: SENS:VOLT:NPLC 0.01;:SOUR:CURR:RANG:AUTO OFF;:SOUR:VOLT:RANG:AUTO OFF;:SOUR:WAIT:AUTO OFF;:SOUR:WAIT OFF;:SENSE:VOLT:RANG:AUTO OFF ;:SENSE:CURR:RANG:AUTO OFF;:SENSE:WAIT:AUTO OFF;:SENSE:WAIT OFF;:FORM REAL,32 ;:FORM:BORD NORM;'预设SMU配置以加速第一次迭代 测试:SENS:VOLT:PROT 2.000000;:SENS:VOLT:RANG 2.000000;:SOUR:CURR:RANG 1.000000;:SOUR:FUNC:MODE CURR;:OUTP ON;' 开始在这里循环命令'============================:SENS:VOLT:PROT 2.000000;:SENS:VOLT:RANG 2.000000; :SOUR:CURR:RANG 1.000000;:SOUR:FUNC:MODE CURR;:TRIG:ACQ:DEL 0.000100;:SOUR:CURR:TRIG 1.000000;:SENS:FUNC:OFF:ALL;:SENS:FUNC'VOLT';: FORM:ELEM:SENS VOLT;:READ? '测量Vf:SOUR:CURR:RANG -1.000000E-5;:SENS:VOLT:PROT 200.000000 ;:SENS:VOLT:RANG 200.000000 ;:TRIG:ACQ:DEL 0.000600 ;:SOUR:CURR:TRIG -1.000000E-5 ;:读? '测量Vr:SOUR:VOLT:RANG -50.000000;:SENS:CURR:PROT 0.000100;:SENS:CURR:RANG 0.000100;:SOUR:FUNC:MODE VOLT;:TRIG:ACQ:DEL 0.000000;:SOUR:VOLT:TRIG -50.000000;:SENS:FUNC:OFF:ALL;:SENS:FUNC'CURR';: FORM:ELEM:SENS CURR;:READ? '测量Il'============================'在这里结束循环:OUTP OFF;:DISP:ENAB 1;我跑了 在For循环中循环部分命令100次并测量运行所花费的时间并发现循环每秒运行大约12次。 我读到程序存储器应该通过消除单个命令的总线传输来加速代码执行,并且因为命令将被“预编译”,所以我想也许如果我使用它我可以让它更快。查看 通过手册并试一试,我发现我不能将循环命令抛入程序存储器,因为不支持查询命令,所以:READ? 命令必须去。 我稍微更改了命令以支持使用缓冲区,我只是在最后检索数据。 我的代码再次分解为初始设置部分和循环部分。我的程序存储器代码如下所示:* CLS; * RST;:PROG:DEL:ALL;:SYST:BEEP:STAT OFF;:DISP: ENAB 0;:SENS:REM ON;:SENS:CURR:NPLC 0.01;:SENS:VOLT:NPLC 0.01 ;: SOUR:CURR:RANG:AUTO OFF ;:SOUR:VOLT:RANG:AUTO OFF ;: SOUR:WAIT: AUTO OFF;:SOUR:WAIT OFF;:SENSE:VOLT:RANG:AUTO OFF;:SENSE:CURR:RANG:AUTO OFF;:SENSE:WAIT:AUTO OFF;:SENSE:WAIT Off ;:FORM REAL,32;: FORM:BORD NORM;:FORM:ELEM:SENS VOLT,CURR ;: SENS:VOLT:PROT 2.000000;:SENS:VOLT:RANG 2.000000;:SOUR:CURR:RANG 1.000000;:SOUR:FUNC:MODE CURR;:TRAC: FEED:CONT NEV;:TRAC:CLE;:TRAC:POIN 30;:TRAC:FEED SENS;:TRAC:FEED:CONT NEXT;:PROG:NAME“diodetest”;:PROG:DEF#0:SENS:VOLT:PROT 2.000000;:PROG:APP#0:PROG:APP#0:SENS:VOLT:RANG 2.000000;:PROG:APP#0:SOUR:CURR:RANG 1.000000;:PROG:APP#0:SOUR:FUNC:MODE CURR; :PROG:APP#0:TRIG:ACQ:DEL 0.000100;:PROG:APP#0:SOUR:CURR:TRIG 1.000000;:PROG:APP#0:SENS:FUNC:OFF:ALL;:PROG:APP#0: SENS:FUNC'VOLT';: PROG:APP#0:INIT;:PROG:APP#0:SOUR:CURR:RAN G -1.000000E-5;:PROG:APP#0:SENS:VOLT:PROT 200.000000;:PROG:APP#0:SENS:VOLT:RANG 200.000000 ;:PROG:APP#0:TRIG:ACQ:DEL 0.000600;: PROG:APP#0:SOUR:CURR:TRIG -1.000000E-5;:PROG:APP#0:INIT;:PROG:APP#0:SOUR:VOLT:RANG -50.000000;:PROG:APP#0:SENS: CURR:PROT 0.000100;:PROG:APP#0:SENS:CURR:RANG 0.000100;:PROG:APP#0:SOUR:FUNC:MODE VOLT;:PROG:APP#0:TRIG:ACQ:DEL 0.000000;:PROG: APP#0:SOUR:VOLT:TRIG -50.000000;:PROG:APP#0:SENS:FUNC:OFF:ALL;:PROG:APP#0:SENS:FUNC'CURR';: PROG:APP#0:INIT; :OUTP ON;' 开始在这里循环代码'=======================:PROG:EXEC; * OPC?'============ ==========='结束循环代码:TRAC:DATA?:OUTP OFF;:DISP:ENAB 1;我再次运行循环100次并计时它,这次我找到了循环 每秒只运行8次而不是12次。实际上速度较慢!我的问题如下:我做错了什么? 为什么它变慢?有没有办法让程序存储器在循环中运行并且可能使它更快?在两个版本的测试中,我的SMU点击很多,好像互锁继电器或输出继电器点击并且 很多,但我的联锁一直在使用。 我怀疑它可能是高压和低压范围之间的切换,但是当我重新测试时,确保仅使用20V或更低的范围,它仍然会产生咔嗒声。 这些点击是什么?我还能做些什么来让这个测试更快地运行? 以上来自于谷歌翻译 以下为原文 Hi. I have a B2902A and I am trying to implement a 3 point test on a diode and I want it to run as fast as possible. In my test I want to measure the forward voltage Vf, the reverse breakdown voltage Vr, and the reverse leakage current Il. I started by writing some simple code that would send each command to the instrument one at a time over GPIB. My code includes a portion at the beginning for intial setup and then some code which I run in a loop to repeat the test over and over again. My coding environment is LabVIEW 2011. The commands I sent were as follows:
I ran the loop portion of the commands in a For loop 100 times and measured how long it took to run and found that the loop ran approximately 12 times per second. I read that program memory should speed up code execution by eliminating the bus transfers of the individual commands and because the commands would be "pre-compiled" so to speak so I thought maybe if I use that I can get it to go faster. Looking through the manual and trying it out I found that I couldn't just throw the loop commands into a program memory because query commands are not supported so the :READ? commands would have to go. I changed the commands a little to support using the buffer and I would just retrieve the data at the end. Again my code was broken up into an initial setup portion and a portion I would loop. My program memory code looks as follows:
Once again I ran the loop 100 times and timed it and this time I found the loop only ran about 8 times per second instead of 12. It was actually slower! My questions are the following:
|
|
相关推荐
1个回答
|
|
目前我们没有B2900系列专家观看此论坛。
但是,我已经给该部门(在日本八王子市)发了一张纸条,看看是否有人可以帮助你。请等一下,给你一个答案! 希望有人能快速回应。迈克 以上来自于谷歌翻译 以下为原文 Currently we don't have a B2900-series expert watching this Forum. However, I've sent a note to the division (in Hachioji, Japan) to see if someone can help you. Sorry for the delay in getting you an answer! Hopefully someone will respond quickly. Mike |
|
|
|
只有小组成员才能发言,加入小组>>
1297 浏览 0 评论
2378 浏览 1 评论
2199 浏览 1 评论
2068 浏览 5 评论
2955 浏览 3 评论
1137浏览 1评论
关于Keysight x1149 Boundary Scan Analyzer
759浏览 0评论
N5230C用“CALC:MARK:BWID?”获取Bwid,Cent,Q,Loss失败,请问大佬们怎么解决呀
947浏览 0评论
1297浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 17:50 , Processed in 1.457803 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号