FOVI_FPVI_HVI1K编程手册.doc_第1页
FOVI_FPVI_HVI1K编程手册.doc_第2页
FOVI_FPVI_HVI1K编程手册.doc_第3页
FOVI_FPVI_HVI1K编程手册.doc_第4页
FOVI_FPVI_HVI1K编程手册.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. AWG1.1. StsEnableAWG ()StsEnableAWG (Floating VI,);ParametersVI填写需要使能的VI源名称,此处VI源只能填FPVI、FOVI和QVM对应的源的名称。0做结束符。Remarks全局启动AWG使能。Example例1:使能fovi0的AWG波形。StsEnableAWG(&fovi0,0);1.2. StsEnableMeas ()StsEnableMeas (FloatingVI,);ParametersVI填写需要同步测量的VI源名称,此处VI源只能填FPVI、FOVI和QVM对应的源的名称。0做结束符。Remarks全局启动AWG同步测量。Example例1:fovi0和fovi1同步测试。StsEnableMeas(&fovi0,&fovi1,0);例2:fovi0和fpvi1同步测试。StsEnableMeas(&fovi0,&fpvi1,0);1.3. StsAWGRun ()StsAWGRun (delayTime);ParametersdelayTimeINT型变量,单位us,设置启动延时。可以不写,默认为0。RemarksAWG全局启动。Example例1:AWG立即输出。StsAWGRun ();例2: AWG输出开始2ms后继续后面的命令。StsAWGRun (2000);2. FOVI2.1. FOVI()FOVI(BYTE byChannel)ParameterschannelFOVI逻辑通道号Remarks定义一个FOVI,并指定使用的逻辑通道号。每个FOVI模块的8个物理通道分别为CH03和CH47两组,每一个物理通道都可独立进行编程以及选择所绑定的工位。由于FOVI每四个通道共用一个LOW端,为了确保测量精度,不建议将同一组内的四个物理通道绑到不同的工位上,比如将CH0和CH1绑到site1上,将CH2和CH3绑到site2上是不建议的。逻辑通道号用于软件编程,当系统软件对FOVI模块完成工位绑定后,不同工位下的相同逻辑通道在软件管理下同步并行工作。Example/*假设系统配置为4块FOVI(32个物理通道),四工位并行工作,定义可使用的FOVI */FOVI fovi0(0) ;/使用逻辑通道0FOVI fovi1(1) ;/使用逻辑通道1FOVI fovi2(2) ;/使用逻辑通道2FOVI fovi3(3) ;/使用逻辑通道3FOVI fovi4(4) ;/使用逻辑通道4FOVI fovi5(5) ;/使用逻辑通道5FOVI fovi6(6) ;/使用逻辑通道6FOVI fovi7(7) ;/使用逻辑通道7对应的工位绑定如下:StsSetModuleToSite(MD_FOVI, SITE_1, 0, 1, 2, 3, 4, 5, 6, 7, -1);StsSetModuleToSite(MD_FOVI, SITE_2, 8, 9, 10, 11, 12, 13, 14, 15, -1);StsSetModuleToSite(MD_FOVI, SITE_3, 16, 17, 18, 19, 20, 21, 22, 23, -1);StsSetModuleToSite(MD_FOVI, SITE_4, 24, 25, 26, 27, 28, 29, 30, 31, -1);2.2. Set ()int Set(VIMode fvimode, double setValue, FOVI_VRNG vRng, FOVI_IRNG iRng, OUT_RELAY enableRelay, double risingTime)ParametersfvimodeFOVI工作模式,有两种模式,默认为FV恒压模式。FV:选择恒压模式FI:选择恒流模式setValueDouble型变量,设置恒压或者恒流值。选择恒压模式时,该参数为恒压值,单位为V;选择恒流模式时,该参数为恒流值,单位为A。vRngFOVI电压量程。FOVI_50VFOVI_20VFOVI_10VFOVI_5VFOVI_2VFOVI_1ViRngFOVI电流量程。FOVI_1AFOVI_100MAFOVI_10MAFOVI_1MAFOVI_100UA FOVI_10UAFOVI_1UAenableRelay设置输出继电器如何动作,分为三种情况:RELAY_ON打开输出继电器RELAY_OFF关闭输出继电器RELAY_HOLD输出继电器保持上一个状态risingTimeDouble型变量,设置变化时间。单位为ms,分辨率为100us。该参数不写,则默认为0.5ms;该参数设置大于等于0.2ms,小于0.5ms时,risingTime=0.2ms;该参数设置大于等于0.5ms,小于1ms时,risingTime=0.5ms;该参数设置大于等于1ms时,自动启动capload功能,risingTime为capload上升或下降的时间。Remarks设置FOVI的状态,包括工作模式、恒压或恒流值、电压量程或电流量程、输出继电器状态及积分时间。Example例1:设置fovi0电压输出5V,risingTime不填则默认为0.5ms。fovi0 .Set(FV,5,FOVI_10V,FOVI_1A,RELAY_ON);例2:设置fovi0电压输出5V,risingTime设置为3ms。fovi0 .Set(FV,0,FOVI_10V,FOVI_1A,RELAY_ON);fovi0 .Set(FV,5,FOVI_10V,FOVI_1A,RELAY_ON, 3);2.3. MeasureVI ()DWORD MeasureVI(UINT sampleTimes,UINT samplePeriod,FLOATMEASMODE measMode,UINT T1,UINT T2,UINT T3,UINT T4);ParametersSampleTimes设置AD采样次数。最大采样次数为2048。samplePeriod 设置每次采样之间的时间间隔,单位us。最小采样间隔为10us,分别率10us。measMode测量模式选择,可设置为:MEAS_NORMAL:普通测量模式,调用函数后完成测量MEAS_AWG:AWG测量模式。只做设置,运行AWG时启动。该参数可以不写,默认为MEAS_NORMAL模式。T1、T2、T3、T4AWG测量模式下,设置测量启动时刻。一次AWG中,可以启动四次测量。四个参数均可以不写,默认启动一次,启动时刻为0。对于这种测量模式,建议跟全局启动测量配合使用。Remarks设置FOVI的测量次数、测量间隔、测量模式以及AWG测量模式下的四次测量启动时刻。Example例1:设置fovi0为普通模式测量,采样20次,间隔10us。fovi0 .MeasureVI(20,10);例2:按照下图设置AWG波形,并分别在T1,T2,T3,T4时刻启动测量。fovi0.Set(FV, 0, FOVI_20V,FOVI_1A, RELAY_ON);/Vindelay_ms(1);fovi1.Set(FI, 0, FOVI_5V, FOVI_1A, RELAY_ON);/Vout Measuredelay_ms(1);/建立一个波形数据数组double interval = 2000;/usfor(addrcon=0;addrcon4;addrcon+) if(addrcon=1)awg_patternaddrcon=1;else if(addrcon=2)awg_patternaddrcon=5;else if(addrcon=3)awg_patternaddrcon=15;else if(addrcon=4)awg_patternaddrcon=10;fovi0.AwgLoader(Vout, FV, FOVI_20V, FOVI_1A, awg_pattern, 10);fovi0.AwgSelect(Vout , 0, 3, 3, interval);fovi1.MeasureVI(50, 10, MEAS_AWG, 1000, 3000, 5000, 7000);/设置fovi0为AWG模式测量,采样50次,间隔10us。分别在第1ms、3ms、5ms、7ms启动测试StsEnableAWG(&fovi0,0);StsEnableMeas(&fovi0, &fovi1, 0);StsAWGRun();2.4. GetMeasResult ()double GetMeasResult(UINT siteCount, MeasRet retType, int sampleNumber);ParametersSiteCountINT型变量,选择测量数据工位。0代表Site1,1代表Site2retType 选择测量数据类型,可设置为MVRET:电压测量数据MIRET:电流测量数据sampleNumber选择返回数据模式,可设置为:AVERAGE_RESULT:数据平均值MAX_RESULT:数据最大值MIN_RESULT:数据最小值TRIG_RESULT:AWG同步测量时,跳变触发的位置。即MeasureVI中第几个采样点发生跳变。INT型变量:每一个采样数据该参数可以不写,默认为AVERAGE_RESULT。Remarks获取MeasureVI()函数的测量结果。如果选择MVRET测压模式,则测试结果为电压值,单位为V;如果选择MIRET测流模式,则测试结果为电流值,单位为A。Example例1:返回fovi0电流测量结果平均值。fovi0.MeasureVI(20, 10);for(i=0; iSITENUM; i+)adresulti= fovi0.GetMeasResult(i, MIRET);例2:返回fovi0电压测量结果第15个点的值。fovi0.MeasureVI(20, 10);for(i=0; iSITENUM; i+)adresulti= fovi0.GetMeasResult(i, MVRET, 15);2.5. Pulse ()int Pulse(double pulseValue, UINT pulseTime, int measStartTime, UINT sampleTimes, UINTsampleInterval);ParametersPulseValueDouble型变量,设置脉冲值。PulseTime Double型变量,设置脉冲时间。单位us。可以不写,默认为300us。MeasStartTimeINT型变量,设置启动测量时间,单位us。可以不写,默认为0。SampleTimesINT型变量,设置采样次数。可以不写,默认为10。SampleIntervalINT型变量,设置采样间隔时间,单位us。可以不写,默认为30us。Remarks精确设置脉冲时间。使用时需先调用Set函数,设置量程等信息。Example例1:设置fovi0输出3ms的5V脉冲,采样次数100次,采样间隔时间50us。fovi0 .Set(FV,0,FOVI_10V,FOVI_1A,RELAY_ON);fovi0 .Pulse (5,3000, 0, 100, 50);例2:设置fovi0输出1ms的0.5A脉冲,采样次数20次,采样间隔时间30us。fovi0 .Set(FI,0,FOVI_10V,FOVI_1A,RELAY_ON);fovi0 .Pulse (0.5,1000, 0, 20, 30);2.6. AwgLoader ()int AwgLoader(char* awgName,VIMode fvimode,FOVI_VRNG vRng,FOVI_IRNG iRng,double *awgData, UINT awgSize);ParametersawgNameChar型变量,AWG波形名。注意,同一个测试程序中不同AWG波形的命名需区别开,否则只能写入第一次AwgLoader中设置的AWG波形。fvimodeFOVI工作模式,有两种模式,默认为FV恒压模式。FV:选择恒压模式FI:选择恒流模式setValueDouble型变量,设置恒压或者恒流值。选择恒压模式时,该参数为恒压值,单位为V;选择恒流模式时,该参数为恒流值,单位为A。vRngFOVI电压量程。FOVI_50VFOVI_20VFOVI_10VFOVI_5VFOVI_2VFOVI_1ViRngFOVI电流量程。FOVI_1AFOVI_100MAFOVI_10MAFOVI_1MAFOVI_100UA FOVI_10UAFOVI_1UAawgData Double型数组,存储AWG波形数据。awgSizeINT型变量,设置AWG波形数据的大小。Remarks导入AWG波形数据。设置导入的AWG波形的名称、导入数据的长度及档位信息。注意:AwgLoader之前必须先调用Set函数,设置量程等信息。且set语句的量程选择必须与AwgLoader的量程选择一致!Example例1:建立一个波形数据组,fovi4从16.5V上升到21.5V,步距0.1V。int sam = 50; /波形数据组的点数int interval = 200; /us AWG数据间隔时间double awg_pattern4000=0.0;double step = (21.5-16.5)/sam; /0.1Vfor(addrcon=0; addrconsam; addrcon+)/建立一个波形数据数组awg_patternaddrcon=addrcon*step+16.5;fovi4.Set(FV, 16.5, FOVI_50V, FOVI_100MA, RELAY_ON);fovi4.AwgLoader(V_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,sam);/将波形数组awg_pattern中的50个点导入,并命名此波形名称为V_awg。例2:建立一个波形数据组,fovi0输出频率为100HZ、幅值为2V、直流偏置为10V的正弦波。#define PI3.1415926double amplitude = 2.0; /幅值为2.0Vdouble DC = 10.0; /直流分量int sam = 1000; /一个周期的点数int interval = 10; /us AWG数据间隔时间计算方法:如果输出一个100HZ的正弦波,AWG数据间隔时间固定为10us的话,一个周期的点数应该为10ms/10us=1000for(addrcon=0;addrconsam;addrcon+) awg_patternaddrcon=sin(addrcon)/sam*2.0*PI)*amplitude+DC;fovi0.Set(FV, 0, FOVI_10V, FOVI_1MA, RELAY_ON);fovi0.AwgLoader(V_SINE,FV,FOVI_10V,FOVI_1MA,awg_pattern, sam);/将波形数组awg_pattern中的1000个点导入,并命名此波形名称为V_SINE。2.7. awgSelect ()int AwgSelect(char*awgName, UINTstartAddr, UINTstopAddr, UINTloopBackAddr, UINTawgInterval);ParametersawgNameChar型变量,AWG波形名称。与AwgLoader中AWG数据命名一致。startAddr INT型变量,设置AWG波形起始点。数据范围0sam-1。其中sam为AWG波形的点数。stopAddr INT型变量,设置AWG波形结束点。数据范围0sam-1。其中sam为AWG波形的点数。loopBackAddr INT型变量,设置AWG波形回转点,即AWG执行结束后停止的位置。数据范围0sam-1。其中sam为AWG波形的点数。awgIntervalINT型变量,设置AWG数据间隔时间,单位us。分辨率为10us。Remarks设置AWG波形的起始点、结束点、回转点以及AWG启动的间隔时间。注意:AwgSelect函数需配合AWG全局函数使用。执行AwgSelect并没有AWG输出,只有运行全局函数StsAWGRun才会有AWG波形输出。Example例1:建立一个波形数据组,fovi4从16.5V上升到21.5V,步距0.1V。AWG波形最后回到16.5V。int sam = 50; /波形数据组的点数int interval = 200; /us AWG数据间隔时间double awg_pattern4000=0.0;double step = (21.5-16.5)/sam; /0.1Vfor(addrcon=0; addrconsam; addrcon+)/建立一个波形数据数组awg_patternaddrcon=addrcon*step+16.5;fovi4.Set(FV, 16.5, FOVI_50V, FOVI_100MA, RELAY_ON);fovi4.AwgLoader(V_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,sam);fovi4.AwgSelect(V_awg, 0, sam-1, 0, interval);/设置AWG波形起始点为0,结束点为sam-1,停止点回到0;AWG数据间隔时间为200us。例2:建立一个波形数据组,fovi4从16.5V上升到21.5V,步距0.1V。AWG波形最后保持在21.5V。int sam = 50; /波形数据组的点数int interval = 200; /us AWG数据间隔时间double awg_pattern4000=0.0;double step = (21.5-16.5)/sam; /0.1Vfor(addrcon=0; addrconsam; addrcon+)/建立一个波形数据数组awg_patternaddrcon=addrcon*step+16.5;fovi4.Set(FV, 16.5, FOVI_50V, FOVI_100MA, RELAY_ON);fovi4.AwgLoader(V_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,sam);fovi4.AwgSelect(V_awg, 0, sam-1, sam-1, interval);/设置AWG波形起始点为0,结束点为sam-1,停止点回到0;AWG数据间隔时间为200us。2.8. awgRun ()int AwgRun(char*awgName,UINT startAddr,UINT stopAddr,UINT loopBackAddr, UINTawgInterval, BOOLrunMode, UINTdelayTime);ParametersawgNameChar型变量,AWG波形名称。与AwgLoader中AWG数据命名一致。startAddr INT型变量,设置AWG波形起始点。数据范围0sam-1。其中sam为AWG波形的点数。stopAddr INT型变量,设置AWG波形结束点。数据范围0sam-1。其中sam为AWG波形的点数。loopBackAddr INT型变量,设置AWG波形停止点。数据范围0sam-1。其中sam为AWG波形的点数。awgIntervalINT型变量,设置AWG数据间隔时间,单位us。分辨率为10us。该参数可以不写,默认10us。runMode运行模式选择,可以设定为:AWG_SINGLE:运行一次AWG波形。AWG_LOOP:连续运行AWG波形,使用awgStop()函数停止。delayTimeINT型变量,设置AWG波形运行前的等待时间。单位ms。该参数可以不写,默认为0。Remarks某一路源AWG单独启动函数。注意:使用该函数不能与其它源同步测量,由于此函数也设置了波形的起始点、结束点、回转点以及时间间隔,所以该函数使用的时候可以不配合AwgSelect函数。因此需要同步测量时,请使用AwgSelect配合全局函数StsAWGRun。Example例1:AWG波形点数为1000,起始点为0,结束点为999,停止点为回到0。fovi0立刻循环运行该AWG 波形。fovi0.AwgRun(V_SINE , 0, 999, 0, AWG_LOOP);例2:AWG波形点数为55,起始点为0,结束点为54,停止点保持在54。等待1ms后,设置fovi0运行一次该AWG 波形。fovi0.AwgRun(V_SINE , 0, 54, 54, AWG_ SINGLE, 1);2.9. awgStop ()int AwgStop();RemarksAWG连续运行时,停止运行AWG。Example例1:fovi0的AWG波形在运行10ms后停止运行。fovi0.AwgRun(V_SINE , 0, 1000, 0, AWG_LOOP, 0);delay_ms(10);/设置AWG波形的运行时间fovi0.AwgStop();2.10. awgClear ()int AwgClear();Remarks用于AwgLoader函数之前,清除对应源的AWG数据。FOVI每一路源的存储深度为2048,建议AwgLoader中AWG数据小于2048。当有可能数据溢出时,建议使用该函数清除AWG数据。注意:慎用AwgClear 函数。否则每次都会重新执行AwgLoader函数,占用测试时间。Example例1:清除fovi1的AWG数据,并重新写入AWG数据。fovi1.AwgClear();fovi1.AwgLoader(Vst_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,60);2.11. setMeasureVTrig ()int SetMeasVTrig(double VTrig, TRIG_MODE trigMode);ParametersvTrig double型变量,设置触发电压。单位V。trigMode 触发模式设置,可设置为:TRIG_FALLING 下降沿触发TRIG_RISING 上升沿触发该参数可以不写,默认为TRIG_FALLING下降沿触发。Remarks电压测量触发设置。Example例1:设置fovi0下降沿触发,触发电平为2V。fovi0.setMeasureVTrig(2,TRIG_FALLING);2.12. setMeasureITrig ()int SetMeasITrig(double ITrig, TRIG_MODE trigMode);ParametersiTrig double型变量,设置触发电流。单位A。trigMode 触发模式设置,可设置为:TRIG_FALLING 下降沿触发TRIG_RISING 上升沿触发该参数可以不写,默认为TRIG_FALLING下降沿触发。Remarks电流测量触发设置。Example例1:设置fovi0上升沿触发,触发电平为100mA。fovi0.setMeasureITrig(100e-3,TRIG_ RISING);2.13. 编程范例例1:建立一个波形数据组,fovi4从16.5V上升到21.5V,步距0.1V。测试fovi4电流大于200uA时的跳变点的电压值。int sam = 50; /波形数据组的点数int interval = 200; /us AWG数据间隔时间double step = (21.5-16.5)/sam; /0.1Vdouble Trig = 200e-6;/触发电平double awg_pattern4000=0.0;double Trig_Point4=0;double result4=0;for(addrcon=0; addrconsam; addrcon+)/建立一个波形数据数组awg_patternaddrcon=addrcon*step+16.5;fovi4.Set(FV, 16.5, FOVI_50V, FOVI_100MA, RELAY_ON); /量程、模式设置必须与AwgLoader函数中设置相同fovi4.AwgLoader(V_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,sam);fovi4.AwgSelect(V_awg, 0, sam-1, 0, interval);/设置AWG波形起始点为0,结束点为sam-1,停止点回到0;设置AWG波形的数据间隔时间为200us。fovi4.SetMeasITrig(Trig,TRIG_RISING);/设置电流跳变点为200uA,上升沿触发fovi4.MeasureVI(sam,interval,MEAS_AWG,0);StsEnableAWG(&fovi4,0);/使能fovi4的AWG波形StsEnableMeas(&fovi4,0);/使能测试fovi4StsAWGRun();/AWG全局启动,此时有AWG波形输出for(i=0; iSetTestResult(i, 0, resulti);例2:建立一个波形数据组,fovi4从10.5V下降到8V,步距0.1V。测试fovi5端的电压小于2V时,fovi4跳变点的电压值。int sam = 25; /波形数据组的点数int interval = 200; /us AWG数据间隔时间double step = (10.5-8)/sam; /0.1Vdouble Trig = 2; /触发电平double awg_pattern4000=0.0;double Trig_Point4=0;double result4=0;for(addrcon=0; addrconsam; addrcon+)/建立一个波形数据数组awg_patternaddrcon= 10.5-addrcon*step;fovi4.Set(FV, 10.5, FOVI_50V, FOVI_100MA, RELAY_ON); /量程、模式设置必须与AwgLoader函数中设置相同fovi4.AwgLoader(U_awg,FV,FOVI_50V,FOVI_100MA,awg_pattern,sam);fovi4.AwgSelect(U_awg, 0, sam-1, sam-1, interval);/设置AWG波形起始点为0,结束点为sam-1,停止点保持在sam-1;设置AWG波形的数据间隔时间为200us。fovi5.SetMeasVTrig(Trig, TRIG_FALLING);/设置fovi5电压跳变点为2V,下降沿触发fovi4.MeasureVI(sam,interval,MEAS_AWG,0);/fovi4测量fovi5.MeasureVI(sam,interval,MEAS_AWG,0);/fovi5测量StsEnableAWG(&fovi4,0);/使能fovi4的AWG波形StsEnableMeas(&fovi4, &fovi5, 0);/同步使能测试fovi4和fovi5StsAWGRun();/AWG全局启动,此时有AWG波形输出for(i=0; iSetTestResult(i, 0, resulti);例3:fovi0连续输出120HZ正弦波,幅值0.33V,直流偏置为3.3V。测试fovi1输出纹波抑制比。#define PI3.1415926int addrcon=0;int Datacount=0;int interval = 10; /us AWG数据间隔时间double awg_pattern4000=0.0;double AD_SAMPLE=500;double sum4=0;double temp4=0,temp24=0;double amplitude =0.33; /幅值0.33Vdouble DC=3.3; /偏置3.3Vdouble sam=830;/一个周期内出的点数计算方法:如果输出一个120HZ的正弦波,则一个周期为8.3ms。前面定义AWG数据间隔时间interval=10us,则一个周期的点数应该为8.3ms/10us=830。for(addrcon=0;addrconsam;addrcon+)/建立一个正弦波数据组awg_patternaddrcon=sin(addrcon)/sam*2.0*PI)*amplitude+DC;fovi0.Set(FV, 0, FOVI_5V, FOVI_1A, RELAY_ON,1);/ 量程、模式设置必须与AwgLoader函数中设置相同fovi0.AwgLoader(RR2, FV, FOVI_5V, FOVI_1A, awg_pattern, sam);fovi0.AwgRun(RR2, 0, (sam-1), 0, interval, AWG_LOOP);delay_ms(1);fovi1.Set(FI, -100e-3, FOVI_5V, FOVI_100mA, RELAY_ON);/Voutdelay_ms(2);fovi1.MeasureVI(AD_SAMPLE, 20);for (i=0;iSITENUM;i+)for(Datacount=0;DatacountAD_SAMPLE;Datacount+)dataDatacount= fovi1.GetMeasResult(i, MVRET, Datacount);/获取每一个点的值resulti= fovi1.GetMeasResult(i, MVRET);/获取平均值sumi+=(dataDatacount-resulti)*(dataDatacount-resulti);tempi=(sqrt(sumi/AD_SAMPLE)*2.828;temp2i=-20*log10(tempi+1e-12)/0.66);sumi=0;for(i=0; iSetTestResult(i, 0, temp2i);fovi1.Set(FI, 0, FOVI_20V, FOVI_100UA, RELAY_OFF);fovi0.AwgStop();3. FPVI103.1. FPVI10()FPVI10(BYTE byChannel)ParameterschannelFPVI10逻辑通道号Remarks定义一个FPVI10,并指定使用的逻辑通道号。当系统配置为8块FPVI10板时,单工位工作时最大逻辑通道号为15,双工位并行工作时最大逻辑通道号为7,四工位并行工作时最大逻辑通道号为3。Example/*假设系统配置为8块FPVI10,四工位并行工作,定义可使用的FPVI10*/FPVI10 fpvi0(0);/使用逻辑通道0FPVI10 fpvi1(1) ;/使用逻辑通道1FPVI10 fpvi2(2) ;/使用逻辑通道2FPVI10 fpvi3(3) ;/使用逻辑通道33.2. Set ()int Set(VIMode fvimode, double setValue, FPVI10_VRNG vRng, FPVI10_IRNG iRng, OUT_RELAY enableRelay, double risingTime);ParametersfvimodeFPVI工作模式,有两种模式,默认为FV恒压模式。FV:选择恒压模式FI:选择恒流模式 setValueDouble型变量,设置恒压或者恒流值。选择恒压模式时,该参数为恒压值,单位为V;选择恒流模式时,该参数为恒流值,单位为A。vRngFPVI10电流量程。FPVI10_50VFPVI10_20VFPVI10_10VFPVI10_5VFPVI10_2VFPVI10_1VFPVI10_100MViRngFPVI10电流量程。FPVI10_10AFPVI10_1AFPVI10_100MAFPVI10_10MAFPVI10_1MAFPVI10_100UA FPVI10_10UAenableRelay设置输出继电器如何动作,分为三种情况:RELAY_ON打开输出继电器RELAY_OFF关闭输出继电器RELAY_HOLD输出继电器保持上一个状态risingTimeDouble型变量,设置变化时间。单位为ms,分辨率为100us。该参数不写,则默认为0.2ms;该参数设置大于等于0.1ms,小于0.2ms时,risingTime=0.1ms;该参数设置大于等于0.2ms,小于0.5ms时,risingTime=0.2ms;该参数设置大于等于0.5ms,小于1ms时,risingTime=0.5ms;该参数设置大于等于1ms时,自动启动capload功能,risingTime为capload上升或下降的时间。Remarks设置FPVI10的状态,包括工作模式、恒压或恒流值、电压量程或电流量程、输出继电器状态及积分时间。Example例1:设置fpvi0电压输出5V,risingTime不填则默认为0.2ms。fpvi0 .Set(FV,5,FPVI10_10V,FPVI10_1A,RELAY_ON);例2:设置fpvi0电压输出5V,risingTime设置为3ms。fpvi0 .Set(FV,0,FPVI10_10V,FPVI10_1A,RELAY_ON);fpvi0 .Set(FV,5,FPVI10_10V,FPVI10_1A,RELAY_ON, 3);3.3. MeasureVI ()DWORD MeasureVI(UINT sampleTimes,UINT samplePeriod,FLOATMEASMODE measMode,UINT T1,UINT T2,UINT T3,UINT T4);ParametersSampleTimes设置AD采样次数。最大采样次数为4096。samplePeriod 设置每次采样之间的时间间隔,单位us。最小采样间隔为2us,分别率2us。measMode测量模式选择,可设置为:MEAS_NORMAL:普通测量模式,调用函数后完成测量MEAS_AWG:AWG测量模式。只做设置,运行AWG时启动。该参数可以不写,默认为MEAS_NORMAL模式。T1、T2、T3、T4AWG测量模式下,设置测量启动时刻。一次AWG中,可以启动四次测量。四个参数均可以不写,默认启动一次,启动时刻为0。对于这种测量模式,建议跟全局启动测量配合使用。Remarks设置FPVI的测量次数、测量间隔、测量模式以及AWG测量模式下的四次测量启动时刻。Example例1:设置fpvi0为普通模式测量,采样20次,间隔10us。fpvi0 .MeasureVI(20,10);例2:按照下图设置AWG波形,并分别在T1,T2,T3,T4时刻启动测量。fpvi0.Set(FV, 0, FPVI10_20V,FPVI10_1A, RELAY_ON);/Vindelay_ms(1);fpvi1.Set(FI, 0, FPVI10_5V, FPVI10_1A, RELAY_ON);/Vout Measuredelay_ms(1);/建立一个波形数据数组double interval = 2000;/usfor(addrcon=0;addrcon4;addrcon+) if(addrcon=1)awg_patternaddrcon=1;else if(addrcon=2)awg_patternaddrcon=5;else if(addrcon=3)awg_patternaddrcon=15;else if(addrcon=4)awg_patternaddrcon=10;fpvi0.AwgClear();fpvi0.AwgLoader(LAWG, FV, FPVI10_20V, FPVI10_1A, awg_pattern, 10);fpvi0.AwgSelect(LAWG, 0, 3, 3, interval);fpvi1.MeasureVI(50, 10, MEAS_AWG, 1000, 3000, 5000, 7000);/设置fpvi0为AWG模式测量,采样50次,间隔10us。分别在第1ms、3ms、5ms、7ms启动测试StsEnableAWG(&fpvi0,0);StsEnableMeas(&fpvi0, &fpvi1, 0);StsAWGRun();3.4. GetMeasResult ()double GetMeasResult(UINT siteCount, MeasRet retType, int sampleNumber);ParametersSiteCountINT型变量,选择测量数据工位。0代表Site1,1代表Site2retType 选择测量数据类型,可设置为MVRET:电压测量数据MIRET:电流测量数据sampleNumber选择返回数据模式,可设置为:AVERAGE_RESULT:数据平均值MAX_RESULT:数据最大值MIN_RESULT:数据最小值TRIG_RESULT:AWG同步测量时,跳变触发的位置。即MeasureVI中第几个采样点发生跳变。INT型变量:每一个采样数据该参数可以不写,默认为AVERAGE_RESULT。Remarks获取MeasureVI()

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论