GPIB控制仪器完成测试的例子.docx

上传人:小飞机 文档编号:3157580 上传时间:2023-03-11 格式:DOCX 页数:4 大小:38.41KB
返回 下载 相关 举报
GPIB控制仪器完成测试的例子.docx_第1页
第1页 / 共4页
GPIB控制仪器完成测试的例子.docx_第2页
第2页 / 共4页
GPIB控制仪器完成测试的例子.docx_第3页
第3页 / 共4页
GPIB控制仪器完成测试的例子.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《GPIB控制仪器完成测试的例子.docx》由会员分享,可在线阅读,更多相关《GPIB控制仪器完成测试的例子.docx(4页珍藏版)》请在三一办公上搜索。

1、GPIB控制仪器完成测试的例子GPIB控制仪器完成测试的例子 许多公司都生产和销售GPIB卡,如美国的惠普公司、国家仪器公司,中国的研华公司等。GPIB卡具有标准的计算机总线接口,如ISA、PCI、PCMCIA等,可以插在计算机的扩展槽中,这样,计算机就可以作为系统的控者。用户可以编写自动测试软件,控制系统中的各种仪器,完成测试任务。 生产厂家在出售GPIB卡的同时,都提供GPIB卡的驱动程序,用户可以用C+、VISUAL BASIC等多种语言方便的调用其驱动程序。在GPIB卡的驱动程序中,提供了完成所有GPIB卡控制的函数,例如:向某一地址的仪器发送命令的函数,向某一地址的仪器读取数据的函数

2、、向某一地址的仪器进行串行点名的函数等等,用户在调用这些函数的时候,无须对GPIB总线的底层管理进行控制,使用起来非常方便。 下面就以台湾AXION公司出品的AX5488卡为例,介绍实现测试衰减器衰减特性曲线的控制程序。 测试系统的布置如下图所示:信号发生器HP8648C产生频率和幅度都非常稳定的正弦测试信号,把该信号通过同轴电缆送到被测衰减器的输入端,衰减器输出信号送到测量接收机R&S ESI26中测量,那么衰减器在各个频率点上的衰减值=信号发生器输出信号电平测量接收机读数。计算机作为系统的控者,控制各个仪器的动作。自动测试程序用C+编写如下。 struct CAttData double

3、frequency; double attvalue; char frequnit10; struct CAttData AttData1001; int RecAddress = 19; /接收机GPIB地址 int SigAddress = 20; /信号发生器GPIB地址 double StartFreq = 1; /测量的起始频率 double StopFreq =1000; /测量的终止频率 double StepFreq = 1; /测量的频率地址 void TestAttenu double frequency; char Command100; strcpy(Command,I

4、NPUT:TYPE INPUT2); /设置接收机输入口 ibwrt(RecAddress,Command,strlen(Command); strcpy(Command,SENSE1:DETECTOR:RECEIVER POSITIVE); /设置接收机检波方式 ibwrt(RecAddress,Command,strlen(Command); strcpy(Command,SENSE:BANDWIDTH 120KHZ); /设置接收机测量带宽 ibwrt(RecAddress,Command,strlen(Command); strcpy(Command,SENSE2:SCAN1:TIME

5、 0.001S); /设置接收机测量时间 ibwrt(RecAddress,Command,strlen(Command); strcpy(Command,INPUT2:ATTENUATION 10dB); /设置接收机输入衰减 ibwrt(RecAddress,Command,strlen(Command); frequency = StartFreq; for(int i=0;i1000;i+) frequency = frequency+i*StepFreq; char ctemp100; sprintf(ctemp,%.4f,frequency); strcpy(Command, FR

6、EQ:CW ); /设置信号发生器输出频率 strcat(Command,ctemp); strcat(Command,”MHZ”); ibwrt(SigAddress,Command, strlen(Command); strcpy(Command,POW:AMPL 50DBUV); /设置信号发生器输出幅度 ibwrt(SigAddress,Command, strlen(Command); strcpy(Command,SENSE1:FREQUENCY:CW ); /设置接收机测量频率 strcat(Command,ctemp); strcat(Command,”MHZ”); ibwrt

7、(RecAddress,Command,strlen(Command); strcpy(Command,TRACE:DATA? SINGLE); /询问接收机测量结果 ibwrt(RecAddress,Command,strlen(Command); Delay(1); ibrd(RecAddress,ctemp,99); /读取接收机测量结果数据 AttDatai.attvalue = 50-atof(ctemp); AttDatai.frequency = frequency; strcpy(AttDatai.frequnit,”MHz”); ; 程序一开始,先设置两台仪器的一些工作参数,

8、包括设置测量接收机的输入口为2口、检波方式为峰值检波、测量带宽为120kHz、测量时间为1毫秒、输入衰减为10dB。在测量的循环体内,设置信号发生器的输出频率和输出幅度,设置测量接收机的测量频率点,然后读取测量结果,直到所有的频率点都测量结束。 在程序中用到两个GPIB卡驱动程序提供的函数:ibwrt和ibrd,它们的函数调用格式如下: 1、int ibwrt(int address,char *command,int commandlen); 其中:address是被发送命令仪器的GPIB地址; command是发送的命令字符串; commandlen是命令字符串的长度。 例如,程序中发送的

9、第一个命令:ibwrt(RecAddress,Command,strlen(Command),执行结果是把命令INPUT:TYPE INPUT2发送到地址为19的仪器,使接收机使用第二个输入口。 2、int ibrd(int address,char *buffer,int readlen); 其中:address是被读取数据仪器的GPIB地址; buffer是接收数据的缓冲区; readlen是读取的最大字节数。 例如:程序中语句:ibrd(RecAddress,ctemp,99),意思是从地址为19的仪器中读取最多99个字节,即读取测量接收机的测量结果。 上述例子中,只用到了两个主要函数,即发送命令和接收数据的函数。在编写功能较复杂的自动测试软件时,需要调用其他的函数,例如:串行点名、并行点名等等,由于篇幅所限,在此不作一一说明。 HP 8568B Spectrum Analysis 20Hz-1.5Ghz 前面加预放大PreSelector /,后级加准峰值检波器 Psi-peak detector 三角波扫频方式,多级混频,动态范围选择、分辨率带宽选择等、分析频率范围选择 分析点数固定 R&S公司的20Hz-26Ghz 的频谱分析仪 阶梯波扫频方式,分辨率更高

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号