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

  • 32
  • 0
  • 约3.24千字
  • 约 3页
  • 2017-03-05 发布于重庆
  • 举报
GPIB控制仪器完成测试的例子

GPIB控制仪器完成测试的例子 许多公司都生产和销售GPIB卡,如美国的惠普(HP)公司、国家仪器(National Instrument)公司,中国的研华公司等。GPIB卡具有标准的计算机总线接口,如ISA、PCI、PCMCIA等,可以插在计算机的扩展槽中,这样,计算机就可以作为系统的控者。用户可以编写自动测试软件,控制系统中的各种仪器,完成测试任务。 生产厂家在出售GPIB卡的同时,都提供GPIB卡的驱动程序(为DOS系统提供静态链接库,为WINDOWS系统提供动态链接库),用户可以用C++、VISUAL BASIC等多种语言方便的调用其驱动程序。在GPIB卡的驱动程序中,提供了完成所有GPIB卡控制的函数,例如:向某一地址的仪器发送命令的函数,向某一地址的仪器读取数据的函数、向某一地址的仪器进行串行点名的函数等等,用户在调用这些函数的时候,无须对GPIB总线的底层管理进行控制,使用起来非常方便。 下面就以台湾AXION公司出品的AX5488卡为例,介绍实现测试衰减器衰减特性曲线的控制程序。 测试系统的布置如下图所示:信号发生器HP8648C产生频率和幅度都非常稳定的正弦测试信号,把该信号通过同轴电缆送到被测衰减器的输入端,衰减器输出信号送到测量接收机RS ESI26中测量,那么衰减器在各个频率点上的衰减值(dB)=信号发生器输出信号电平(dB)―测量接收机读数(dB)。计算机作为系统的控者,控制各个仪器的动作。自动测试程序用C++编写如下。 struct CAttData { double frequency; double attvalue; char frequnit[10]; } struct CAttData AttData[1001]; int RecAddress = 19; //接收机GPIB地址 int SigAddress = 20; //信号发生器GPIB地址 double StartFreq = 1; //测量的起始频率 double StopFreq =1000; //测量的终止频率 double StepFreq = 1; //测量的频率地址 void TestAttenu() { double frequency; char Command[100]; strcpy(Command,INPUT: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 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 ctemp[100]; sprintf(ctemp,%.4f,frequency); strcpy(Command, FREQ: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(RecAddress

文档评论(0)

1亿VIP精品文档

相关文档