基于VC的GPIB儀器遠(yuǎn)程測(cè)量 系統(tǒng)實(shí)現(xiàn)方法
4 GPIB在功率測(cè)量系統(tǒng)中的應(yīng)用
下面以Agilent E4407功率計(jì)的遠(yuǎn)程測(cè)量系統(tǒng)為例來(lái)進(jìn)行說(shuō)明。為實(shí)現(xiàn)計(jì)算機(jī)對(duì)功率計(jì)的遠(yuǎn)程控制,需要通過(guò)VC調(diào)用GPIB接口控制卡驅(qū)動(dòng)程序接口函數(shù)。一般最常用到的函數(shù)有ibdev (GPIB接口控制卡初始化設(shè)置函數(shù))、ibwrt(寫字符串命令函數(shù))和ibrda(讀字符串命令函數(shù))。以下是測(cè)量程序的部分控制代碼,其作用是通過(guò)GPIB接口卡對(duì)功率計(jì)進(jìn)行初始化,并對(duì)功率計(jì)進(jìn)行讀寫操作。
首先是初始化GPIB卡,以使其具備控制和通信能力;然后初始化儀器,使儀器完成與GPIB的連接,并對(duì)儀器進(jìn)行相關(guān)的初始化操作,其代碼如下:
int m_iBoardIndex;//GPIB卡號(hào)此處為0
int m_iGPIBDev; //GPIB設(shè)備
int m_iSecondGPAdd;//GPIB設(shè)備第二地址
int m_iGPAddress; //GPIB地址此處設(shè)為19
char buf_pow[20];//數(shù)據(jù)緩存
InitGPIBDev();//初始化函數(shù)
{m_iGPIBDev=ibdev(m_ilndex,m_iG-PAdd,m_iSecAdd,Tls,1,0);
//初始化功率計(jì),GPIB接口卡的地址為0、功率計(jì)的主地址為19,沒(méi)有輔地址、超時(shí)設(shè)置為1S、使用默認(rèn)傳輸結(jié)束方式。
ibwrt(m_iGPIBDev,“*RST?”);//儀器復(fù)位
ibwrt(m_iGPIBDev,“*CLS?”);//清除狀態(tài)寄存器
ibwrt(m_iGPIBDev,“*SRE 0”);//允許服務(wù)請(qǐng)求
ibwrt(m_iGPIBDev,“*ESE 0”);//允許標(biāo)準(zhǔn)事件狀態(tài)
ibwrt(m_iGPIBDev,“:STAT:PRES”);//預(yù)調(diào)整狀態(tài)
ibwrt(m_iGPIBDev,“:FUNC:ON‘POW’”);//顯示屏進(jìn)行顯示
}
其次是功率測(cè)量與顯示??刂苾x器完成相應(yīng)的測(cè)量和顯示時(shí),首先也應(yīng)初始化相關(guān)變量,其代碼如下:本文引用地址:http://butianyuan.cn/article/195634.htm
程序運(yùn)行后,首先還應(yīng)對(duì)GPIB卡和GPIB儀器進(jìn)行初始化,并完成與儀器的連接,然后利用遠(yuǎn)程測(cè)量程序向功率計(jì)發(fā)送測(cè)量命令“:MEA-SURE:POW?”進(jìn)行功率測(cè)量,之后再通過(guò)ibrda(m_iGPIBDev,buf_pow,20)函數(shù)讀取功率值并將讀取的數(shù)據(jù)存儲(chǔ)在本地開辟的數(shù)據(jù)緩存中,最后經(jīng)過(guò)本地處理后將測(cè)量數(shù)據(jù)顯示在遠(yuǎn)程測(cè)量的顯示屏上,從而實(shí)現(xiàn)功率計(jì)的遠(yuǎn)程控制和測(cè)量功能,其程序界面如圖2所示。
5 結(jié)束語(yǔ)
在采用VC++語(yǔ)言的編程環(huán)境下,利用SCPI儀器控制命令進(jìn)行GPIB儀器遠(yuǎn)程測(cè)量系統(tǒng)的開發(fā),其程序直觀,可讀性強(qiáng),可提高測(cè)量效率。此外,利用該方法還可實(shí)現(xiàn)對(duì)多種GPIB儀器遠(yuǎn)程測(cè)量系統(tǒng)的開發(fā),因而具有廣泛的推廣和應(yīng)用價(jià)值。
評(píng)論