3脉冲波形参数的自动测试系统.docx

上传人:b****6 文档编号:4726573 上传时间:2022-12-08 格式:DOCX 页数:16 大小:58.28KB
下载 相关 举报
3脉冲波形参数的自动测试系统.docx_第1页
第1页 / 共16页
3脉冲波形参数的自动测试系统.docx_第2页
第2页 / 共16页
3脉冲波形参数的自动测试系统.docx_第3页
第3页 / 共16页
3脉冲波形参数的自动测试系统.docx_第4页
第4页 / 共16页
3脉冲波形参数的自动测试系统.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

3脉冲波形参数的自动测试系统.docx

《3脉冲波形参数的自动测试系统.docx》由会员分享,可在线阅读,更多相关《3脉冲波形参数的自动测试系统.docx(16页珍藏版)》请在冰豆网上搜索。

3脉冲波形参数的自动测试系统.docx

3脉冲波形参数的自动测试系统

电子科技大学

实验报告

学生姓名及学号:

马先文*************

朱科2011079120020

*******

实验地点:

C2-110实验时间:

2014.6.10

一、实验室名称:

现代测试技术实验室

二、实验项目名称:

脉冲波形参数的自动测试系统

三、实验学时:

4学时

四、实验内容:

1.组建脉冲波形参数的自动测试系统

2.设计脉冲参数测量系统界面

2.用程控方式完成对脉冲波形参数的测量,显示脉冲波形及参数测量结果。

五、实验结果:

1、脉冲波形参数自动测试系统需求分析:

答:

函数/任意波形发生器33220A手动调节产生脉冲信号,信号输出到数字示波

器DSO5012A,在LabWindows/CVI集成环境下编写脉冲参数测量控制程序,

通过LXI总线控制数字示波器完成脉冲参数的测量,并在用户界面上显示脉

冲波形及脉冲参数测量结果。

2、本次实验设计的脉冲参数测量系统应用程序界面如下:

3、本次实验内容的主体为一个程序的编制,程序的框架如下:

4、LabWindow/CVI程序代码如下:

#include

#include

#include

#include"PulseParameterTest.h"

#defineRESOURCE"TCPIP0:

:

192.168.1.108:

:

inst0:

:

INSTR"

staticintpanelHandle;

ViSessiondefaultRM,vi;

doublepreamble[10];

#defineWAVE_DATA_SIZE5000

unsignedcharwaveform_data[WAVE_DATA_SIZE];

voidInitialize(void);

voidCapture(void);

voidWaveform(void);

intmain(intargc,char*argv[])

{

if(InitCVIRTE(0,argv,0)==0)

return-1;/*outofmemory*/

if((panelHandle=LoadPanel(0,"PulseParameterTest.uir",PANEL))<0)

return-1;

DisplayPanel(panelHandle);

RunUserInterface();

DiscardPanel(panelHandle);

return0;

}

intCVICALLBACKQuit(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

switch(event)

{

caseEVENT_COMMIT:

QuitUserInterface(0);

break;

}

return0;

}

intCVICALLBACKAcquire(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

charbuf[256]={0};

doubletemp;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viPrintf(vi,":

MEASURE:

SOURCECHAN1\n");

viQueryf(vi,":

MEASURE:

FREQUENCY?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_Frequency,temp);

viQueryf(vi,":

MEASURE:

VBASE?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_Low,temp);

viQueryf(vi,":

MEASURE:

VTOP?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_High,temp);

viQueryf(vi,"MEASURE:

PERIOD?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_Period,temp);

viQueryf(vi,"MEASURE:

VAMPLITUDE?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,temp);

viQueryf(vi,"MEASURE:

VPP?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,temp);

viQueryf(vi,"MEASURE:

RISETIME?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_RTime,temp);

viQueryf(vi,"MEASURE:

FALLTIME?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_FTime,temp);

viQueryf(vi,"MEASURE:

PWIDTH?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_PWidth,temp);

viQueryf(vi,"MEASURE:

NWIDTH?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_NWidth,temp);

viQueryf(vi,"MEASURE:

DUTYCYCLE?

\n","%lf",&temp);

SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,temp);

Waveform();

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

 

intCVICALLBACKGetPeriod(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublePeriod;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

PERIOD?

CHAN1\n","%lf",&Period);

SetCtrlVal(panelHandle,PANEL_Edt_Period,Period);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetTop(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doubletop;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

VTOP?

CHAN1\n","%lf",&top);

SetCtrlVal(panelHandle,PANEL_Edt_High,top);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetBase(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublebase;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

VBASE?

CHAN1\n","%lf",&base);

SetCtrlVal(panelHandle,PANEL_Edt_Low,base);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetAmplitude(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doubleamplitude;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

VAMPLITUDE?

CHAN1\n","%lf",&litude);

SetCtrlVal(panelHandle,PANEL_Edt_Amplitude,amplitude);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetPTPeak(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublevpp;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

VPP?

CHAN1\n","%lf",&vpp);

SetCtrlVal(panelHandle,PANEL_Edt_PTPeak,vpp);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetWaveform(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

Waveform();

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetFrequency(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublefrequency;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

FREQUENCY?

CHAN1\n","%lf",&frequency);

SetCtrlVal(panelHandle,PANEL_Edt_Frequency,frequency);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetRTime(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublertime;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

RISETIME?

CHAN1\n","%lf",&rtime);

SetCtrlVal(panelHandle,PANEL_Edt_RTime,rtime);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetFTime(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doubleftime;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

FALLTIME?

CHAN1\n","%lf",&ftime);

SetCtrlVal(panelHandle,PANEL_Edt_FTime,ftime);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetPWidth(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublepwidth;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

PWIDTH?

CHAN1\n","%lf",&pwidth);

SetCtrlVal(panelHandle,PANEL_Edt_PWidth,pwidth);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetNWidth(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doublenwidth;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

NWIDTH?

CHAN1\n","%lf",&nwidth);

SetCtrlVal(panelHandle,PANEL_Edt_NWidth,nwidth);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

intCVICALLBACKGetPDutycycle(intpanel,intcontrol,intevent,

void*callbackData,inteventData1,inteventData2)

{

doubledutycycle;

switch(event)

{

caseEVENT_COMMIT:

viOpenDefaultRM(&defaultRM);

viOpen(defaultRM,RESOURCE,VI_NULL,VI_NULL,&vi);

viClear(vi);

Initialize();

Capture();

viQueryf(vi,"MEASURE:

DUTYCYCLE?

CHAN1\n","%lf",&dutycycle);

SetCtrlVal(panelHandle,PANEL_Edt_PDutycycle,dutycycle);

viClose(vi);

viClose(defaultRM);

break;

}

return0;

}

voidInitialize(void)

{

viPrintf(vi,"*RST\n");

viPrintf(vi,":

AUTOSCALE\n");

}

voidCapture(void)

{

viPrintf(vi,":

ACQUIRE:

TYPENORMAL\n");

viPrintf(vi,":

ACQUIRE:

COMPLETE100\n");

viPrintf(vi,":

DIGITIZECHAN1\n");

}

voidWaveform(void)

{

intwaveform_size,i;

doubletime_array[WAVE_DATA_SIZE],amp_array[WAVE_DATA_SIZE];

doubleXmin,Xmax,Ymin,Ymax;

DeleteGraphPlot(panelHandle,PANEL_GRAPH_Pulse,-1,VAL_IMMEDIATE_DRAW);

viPrintf(vi,":

WAVEFORM:

FORMATBYTE\n");

viPrintf(vi,":

WAVEFORM:

POINTS1000\n");

viQueryf(vi,":

WAVEFORM:

PREAMBLE?

\n","%,10lf\n",preamble);

SetCtrlVal(panelHandle,PANEL_Edt_TimeBase,preamble[4]*100);

SetCtrlVal(panelHandle,PANEL_Edt_Vertical,preamble[7]*32);

Xmin=(0.0-preamble[6])*preamble[4]+preamble[5];

Xmax=(1000.0-preamble[6])*preamble[4]+preamble[5];

Ymin=(0.0-preamble[9])*preamble[7]+preamble[8];

Ymax=(256.0-preamble[

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1