GPIB控制儀器完成測試的例子_第1頁
GPIB控制儀器完成測試的例子_第2頁
GPIB控制儀器完成測試的例子_第3頁
全文預覽已結(jié)束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、gpib 控制儀器完成測試的例子許多公司都生產(chǎn)和銷售gpib 卡, 如美國的惠普 ( hp) 公司、國家儀器(national instrument )公司, 中國的研華公司等。gpib 卡具有標準的計算機總線接口,如 isa 、pci、pcmcia 等,可以插在計算機的擴展槽中,這樣, 計算機就可以作為系統(tǒng)的控者。用戶可以編寫自動測試軟件,控制系統(tǒng)中的各種儀器,完成測試任務。生產(chǎn)廠家在出售gpib 卡的同時, 都提供 gpib 卡的驅(qū)動程序 (為 dos 系統(tǒng)提供靜態(tài)鏈接庫,為windows系統(tǒng)提供動態(tài)鏈接庫) ,用戶可以用c+、 visual basic 等多種語言方便的調(diào)用其驅(qū)動程序。在

2、 gpib 卡的驅(qū)動程序中, 提供了完成所有gpib 卡控制的函數(shù),例如: 向某一地址的儀器發(fā)送命令的函數(shù),向某一地址的儀器讀取數(shù)據(jù)的函數(shù)、向某一地址的儀器進行串行點名的函數(shù)等等,用戶在調(diào)用這些函數(shù)的時候,無須對 gpib 總線的底層管理進行控制,使用起來非常方便。下面就以臺灣axion 公司出品的ax5488 卡為例,介紹實現(xiàn)測試衰減器衰減特性曲線的控制程序。測試系統(tǒng)的布置如下圖所示:信號發(fā)生器hp8648c 產(chǎn)生頻率和幅度都非常穩(wěn)定的正弦測試信號, 把該信號通過同軸電纜送到被測衰減器的輸入端,衰減器輸出信號送到測量接收機 r&s esi26 中測量, 那么衰減器在各個頻率點上的衰減

3、值(db)=信號發(fā)生器輸出信號電平( db)測量接收機讀數(shù)(db) 。計算機作為系統(tǒng)的控者,控制各個儀器的動作。自動測試程序用c+編寫如下。struct cattdata double frequency; double attvalue; char frequnit10; struct cattdata attdata1001; int recaddress = 19; /接收機 gpib 地址int sigaddress = 20; /信號發(fā)生器gpib 地址double startfreq = 1; /測量的起始頻率double stopfreq =1000; /測量的終止頻率doubl

4、e stepfreq = 1; /測量的頻率地址void testattenu() double frequency; char command100; 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 120

5、khz); /設置接收機測量帶寬ibwrt(recaddress,command,strlen(command); strcpy(command,sense2:scan1:time 0.001s); /設置接收機測量時間ibwrt(recaddress,command,strlen(command); strcpy(command,input2:a ttenua tion 10db); /設置接收機輸入衰減ibwrt(recaddress,command,strlen(command); frequency = startfreq; for(int i=0;i1000;i+) frequenc

6、y = frequency+i*stepfreq; char ctemp100; sprintf(ctemp,%.4f,frequency); strcpy(command, freq:cw ); /設置信號發(fā)生器輸出頻率strcat(command,ctemp); strcat(command,”mhz ”);ibwrt(sigaddress,command, strlen(command); strcpy(command,pow:ampl 50dbuv); /設置信號發(fā)生器輸出幅度ibwrt(sigaddress,command, strlen(command); strcpy(comma

7、nd,sense1:frequency:cw ); /設置接收機測量頻率strcat(command,ctemp); strcat(command,”mhz ”);ibwrt(recaddress,command,strlen(command); strcpy(command,trace:da ta? single); /詢問接收機測量結(jié)果ibwrt(recaddress,command,strlen(command); delay(1); ibrd(recaddress,ctemp,99); /讀取接收機測量結(jié)果數(shù)據(jù)attdatai.attvalue = 50-atof(ctemp); at

8、tdatai.frequency = frequency; strcpy(attdatai .frequnit,”mhz ”); ; 程序一開始,先設置兩臺儀器的一些工作參數(shù),包括設置測量接收機的輸入口為2 口、檢波方式為峰值檢波、測量帶寬為120khz、測量時間為1 毫秒、輸入衰減為10db。在測量的循環(huán)體內(nèi), 設置信號發(fā)生器的輸出頻率和輸出幅度,設置測量接收機的測量頻率點,然后讀取測量結(jié)果,直到所有的頻率點都測量結(jié)束。在程序中用到兩個gpib 卡驅(qū)動程序提供的函數(shù):ibwrt 和 ibrd,它們的函數(shù)調(diào)用格式如下:1、int ibwrt(int address,char *command,

9、int commandlen); 其中: address 是被發(fā)送命令儀器的gpib 地址;command 是發(fā)送的命令字符串;commandlen 是命令字符串的長度。例如, 程序中發(fā)送的第一個命令:ibwrt(recaddress,command,strlen(command) ,執(zhí)行結(jié)果是把命令 input:type input2發(fā)送到地址為19 的儀器,使接收機使用第二個輸入口。2、int ibrd(int address,char *buffer,int readlen); 其中: address 是被讀取數(shù)據(jù)儀器的gpib 地址;buffer 是接收數(shù)據(jù)的緩沖區(qū);readlen是讀取的最大字節(jié)數(shù)。例如:程序中語句:ibrd(recaddress,ctemp,99) ,意思是從地址為19 的儀器中讀取最多99 個字節(jié),即讀取測量接收機的測量結(jié)果。上述例子中,只用到了兩個主要函數(shù),即發(fā)送命令和接收數(shù)據(jù)的函數(shù)。在編寫功能較復雜的自動測試軟件時,需要調(diào)用其他的函數(shù),例如:串行點名、并行點名等等,由于篇幅所限,在此不作一一說明。hp 8568b spectrum a

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論