1)初始(shi)化(hua)时(shi),建议(yi)采用“AstInitAllDVI()”语(yu)句,该(gai)语(yu)句(ju)可以(yi)同时(shi)将(jiang)所有(you)DVI通(tong)道(dao)初始(shi)化(hua)。PVI也类(lei)似(shi)。
2)PVI切(qie)换(huan)量程(cheng)或工(gong)作模(mo)式时,需要(yao)较(jiao)长的(de)时间。例如,PVI的(de)100mA以下量(liang)程和1A、10A量(liang)程互切(qie)时,一次需(xu)要(yao)7~10ms;1A和10A量(liang)程(cheng)互(hu)切时,一次(ci)需要15ms;一(yi)次connect/disconnect,需(xu)要7~10ms。所以(yi),使用同(tong)一(yi)电流量(liang)程的(de)参(can)数尽(jin)量(liang)放在(zai)一起,避免不必(bi)要的量(liang)程切(qie)换(huan)。
3)当(dang)需(xu)要对(dui)一(yi)个外(wai)接(jie)电容(rong)的管(guan)脚(jiao)测试小电(dian)流(liu)(用(yong)4uA档(dang))时(shi),建(jian)议(yi)先(xian)用(yong)大(da)电流档(dang)(例如4mA)给电容(rong)迅(xun)速(su)充(chong)电,再(zai)切(qie)换到小(xiao)电(dian)流档(dang)进(jin)行测(ce)量,可(ke)以节(jie)省(sheng)时间(jian)。
4)多工位扫(sao)描参(can)数(shu),采(cai)用(yong)设(she)置(zhi)标(biao)志位法(fa)进行(xing)并(bing)行扫描(miao),可大大(da)节省(sheng)时(shi)间(jian)。
【例】
假设DVI1连接扫(sao)描输入的(de)管(guan)脚(jiao),DVI0连(lian)接判断(duan)输出的(de)管(guan)脚(jiao):
float vx = 0; //扫(sao)描(miao)变(bian)量
float adresult[4], result[4];
BYTE k[4] = {0,0,0,0}; //工(gong)位(wei)标志(zhi)
dvi0.Connect();
dvi1.Connect();
delay_ms(1);
dvi1.SetModeFVMI(DVI_VRNG_5V, 3, DVI_IRNG_40MA, 40e-3, -40e-3); //先让器(qi)件(jian)进入(ru)已知(zhi)的稳(wen)定状(zhuang)态(tai)
dvi1.Enable();
dvi0.SetModeFIMV(DVI_IRNG_400UA, 0, DVI_VRNG_20V, 20, 0);
dvi0.Enable();
delay_us(200);
double vstep1=0.1; //设(she)置扫(sao)描步进(jin)
vx=2.0; //设(she)置扫(sao)描(miao)的起始电压
for (; vx>0; vx-=(float)vstep1)
{
dvi1.SetModeFVMI(DVI_VRNG_5V, vx, DVI_IRNG_40MA, 40e-3, -40e-3);
dvi1.Enable();
delay_us(200);
dvi0.Measure(adresult, SAMPLE_TIMES);
for ( int i=0; i<4; i++)
{
if ((k[i] == 0) && (adresult[i] < 5)) //判断扫(sao)描的结(jie)果及工(gong)位标(biao)志(zhi)
{
result[i] = vx;
k[i]=1; //将已经(jing)符(fu)合(he)条件(jian)的工位标(biao)志(zhi)为(wei)1,防止下次(ci)扫描(miao)后改(gai)变结果(guo)
}
}
if ((k[0] == 1) && (k[1] == 1) && (k[2] == 1) && (k[3] == 1)) //判断四个工(gong)位是(shi)否都已经扫(sao)描完(wan)毕
break;
}
for ( int i=0; i<4; i++)
{
vin.SetTestResult(i, 0, result[i]);
}
dvi0.Disable();
dvi1.Disable();
dvi0.Disconnect;
dvi1.Disconnect();
【注意】多(duo)工位(wei)并(bing)行扫(sao)描不(bu)仅可以(yi)用(yong)在逐步(bu)扫(sao)描(miao)算法,也(ye)可以用(yong)在二分法扫描算法。与多(duo)工位(wei)串行扫描(miao)相(xiang)比(bi),并(bing)行扫(sao)描(miao)的(de)时(shi)间(jian)是(shi)多工位中(zhong)扫描(miao)时间(jian)时(shi)间(jian)最长的那个工位的扫描时(shi)间(jian),因(yin)此时(shi)间将(jiang)得到大(da)大的缩短(duan)。
5) 单(dan)工位扫(sao)描(miao)参数,推(tui)荐使用(yong)先(xian)粗后(hou)细或二分法。
【例】
假设(she)DVI1连(lian)接扫(sao)描(miao)输入的(de)管脚(jiao),DVI0连接(jie)判断输出(chu)的管(guan)脚(jiao):
a) 先粗(cu)扫(sao)后(hou)细(xi)扫(sao),可用于施(shi)密(mi)特器(qi)件,时间较长。
float vx = 0; //扫(sao)描(miao)变(bian)量
float adresult[4],result[4];
dvi0.Connect();
dvi1.Connect();
delay_ms(1);
dvi1.SetModeFVMI(DVI_VRNG_5V, 3, DVI_IRNG_40MA, 40e-3, -40e-3); //先(xian)让(rang)器(qi)件进入(ru)已(yi)知(zhi)的稳(wen)定状态(tai)
dvi1.Enable();
dvi0.SetModeFIMV(DVI_IRNG_400UA, 0, DVI_VRNG_20V, 20, 0);
dvi0.Enable();
delay_us(200);
double vstep1=0.1; //设(she)置粗扫步进(jin)
vx=2.0; //设置扫(sao)描的起始(shi)电压
for (; vx>0; vx-=(float)vstep1)
{
dvi1.SetModeFVMI(DVI_VRNG_5V, vx, DVI_IRNG_40MA, 40e-3, -40e-3);
dvi1.Enable();
delay_us(200);
dvi0.Measure(adresult, SAMPLE_TIMES);
result[0]=vx;
if(adresult[0]<3) //判(pan)断扫(sao)描(miao)结(jie)果(guo)
break;
}
vx=result[0]+vstep1; //将粗(cu)扫结果返(fan)回(hui)一个(ge)粗扫的(de)步(bu)进作为细扫的起(qi)始(shi)电压
double vstep2=0.01; //设置细(xi)扫步进
for (; vx>0; vx-=(float)vstep2)
{
dvi1.SetModeFVMI(DVI_VRNG_5V, vx, DVI_IRNG_40MA, 40e-3, -40e-3);
dvi1.Enable();
delay_us(200);
dvi0.Measure(adresult, SAMPLE_TIMES);
result[0]=vx;
if(adresult[0]<3) //判断结(jie)果
break;
}
vin.SetTestResult(0, 0, result[0]);
dvi0.Disable();
dvi1.Disable();
dvi0.Disconnect;
dvi1.Disconnect();
b) 二(er)分法(fa),适(shi)用于(yu)非(fei)施密特(te)器件(jian),时(shi)间(jian)短。
float vx = 0; //扫描变(bian)量
float adresult[4];
int i=0;
dvi0.Connect();
dvi1.Connect();
delay_ms(1);
dvi1.SetModeFVMI(DVI_VRNG_5V, 3, DVI_IRNG_40MA, 40e-3, -40e-3); //先让(rang)器件进(jin)入已知(zhi)的(de)稳定(ding)状态(tai)
dvi1.Enable();
dvi0.SetModeFIMV(DVI_IRNG_400UA, 0, DVI_VRNG_20V, 20, 0);
dvi0.Enable();
delay_us(200);
double vstep1=1; //设置二分(fen)法(fa)的(de)长度(du),其(qi)取(qu)值与(yu)起始值和(he)目(mu)标(biao)值有(you)关
vx=2.5; //设(she)置(zhi)扫(sao)描(miao)的(de)起(qi)始值(zhi),保(bao)证目(mu)标值(zhi)在[vx-vstep1,vx+vstep1]
for (i=0;i<10;i++) //i的(de)上限(xian)值决(jue)定了(le)扫描(miao)的精度和扫(sao)描时(shi)间(jian)
{
dvi1.SetModeFVMI(DVI_VRNG_5V, vx, DVI_IRNG_40MA, 40e-3, -40e-3);
dvi1.Enable();
delay_us(200);
dvi0.Measure(adresult, SAMPLE_TIMES);
if(adresult[0]>3)
vx=vx-vstep1;
else if(adresult[0]<3)
vx=vx+vstep1;
vstep1=vstep1/2;
}
vin.SetTestResult(0, 0, vx);
dvi0.Disable();
dvi1.Disable();
dvi0.Disconnect;
dvi1.Disconnect();
期待(dai)您成为我(wo)们(men)的(de)会员(yuan)!
用户(hu)名(ming) *
密(mi)码(ma) *
请认真(zhen)填写您的(de)资(zi)料(liao)*
用(yong)户(hu)名(ming) *
密码 * (6-20个(ge)字(zi)符)
重复(fu)密(mi)码 *
姓名(ming) *
职(zhi)务(wu)
地(di)址(zhi)
传(chuan)真
公司(si)名称(cheng) *
电话 *
E-mail *
如果(guo)您有疑问(wen)请 联(lian)系(xi)我(wo)们
返回首(shou)页如(ru)果(guo)您(nin)有(you)疑(yi)问(wen)请(qing) 联(lian)系(xi)我(wo)们
返(fan)回(hui)首(shou)页