摘 要: 為了實現(xiàn)對GPIB程控信號源遠程控制的目的,組建一個虛擬測試系統(tǒng)。該測試系統(tǒng),采用虛擬儀器技術,以LabWindows/CVI作為軟件開發(fā)平臺,以GPIB標準總線儀器與計算機作為硬件平臺,使用裝有GPIB接口卡計算機,將計算機與程控信號源通過總線連接起來,組成程控信號源為主的虛擬儀器模塊,儀器模塊的硬件功能通過軟件開發(fā)實現(xiàn);采用VISA方式編程,直接用VISA語句編寫程控儀器指令,脫離儀器驅動程序,對GPIB總線設備可以相互兼容使用。該測試系統(tǒng)實現(xiàn)了對程控信號源的數(shù)據(jù)遠程收發(fā)和功能設置。
關鍵詞: 虛擬儀器; LabWindows/CVI; GPIB總線; 程控信號源
中圖分類號: TN98?34 文獻標識碼: A 文章編號: 1004?373X(2014)02?0156?03
虛擬儀器(Virtual Instrument,VI)是虛擬現(xiàn)實技術在儀器領域的一種應用。它由計算機、儀器模塊和軟件三部分組成。儀器模塊的硬件功能由軟件實現(xiàn)。
虛擬測試系統(tǒng)根據(jù)其儀器模塊硬件平臺的不同,而有多種組建方式[1?4]:
(1) PC?DAQ測試系統(tǒng):是以數(shù)據(jù)采集卡、信調理電路及計算機為儀器硬件平臺組成的測試系統(tǒng)。
(2) GPIB系統(tǒng):是以GPIB標準總線儀器與計算機為硬件平臺組成的測試系統(tǒng)。
(3) VXI系統(tǒng):是以VXI標準總線儀器與計算機為硬件平臺組成的測試系統(tǒng)。
(4) 串口系統(tǒng):是以RS 232標準串行總線儀器與計算機為硬件平臺組成的測試系統(tǒng)。
(5) 現(xiàn)場總線系統(tǒng):是以FieldBus標準總線儀器與計算機為硬件平臺組成的測試系統(tǒng)。
在組建某虛擬測試系統(tǒng)中,采用GPIB程控信號源作為專用測控設備。該程控信號源具有GPIB標準總線,擁有本地和遠地兩種工作方式。系統(tǒng)要求,通過軟件實現(xiàn)對程控信號源的GPIB遠程控制。
1 基于GPIB程控信號源的虛擬儀器模塊
使用裝有GPIB接口卡計算機,將計算機與程控信號源通過總線連接起來。組成以程控信號源為主的虛擬儀器模塊,儀器模塊的硬件功能通過軟件開發(fā)來實現(xiàn)[5?7]。典型基于GPIB總線儀器測試系統(tǒng)如圖1所示。
測試模塊的性能測試包括調制方式選擇、頻率設定、功率設定、脈寬選擇和脈沖延時設定。實現(xiàn)的基本功能包括:遠程連接、多種調制方式、參數(shù)設置、參數(shù)的文本輸入和顯示、參數(shù)的條形標輸入和顯示。
1.1 GPIB接口性能
GPIB接口是程控信號源與外界通信的關鍵部件。GPIB是一個數(shù)字化24腳并行總線,共有16條數(shù)據(jù)線,其中,8條DIO數(shù)據(jù)線,用來傳遞各種多線消息;3條掛鉤線,用以保證數(shù)據(jù)的可靠傳輸;5條接口管理線,用以管理接口的工作方式;另8根為地線和屏蔽線。GPIB使用8位并行、字節(jié)串行、異步通信方式,所有字節(jié)通過總線順序傳送。
1.2 儀器模塊連接方式
程控信號源的GPIB地址設置為21。GPIB接口卡設置為地址0,GPIB由一個控者(PC機)控制總線,在總線上傳送儀器命令和數(shù)據(jù),控者尋址一個講者,一個或多個聽者,數(shù)據(jù)串在總線上從講者向聽者傳送。
2 虛擬儀器模塊的實現(xiàn)
儀器模塊的核心是儀器控制和軟件開發(fā)。
2.1 儀器控制
程控儀器軟件的編寫,大致可分為兩種方式:一是對于提供儀器驅動程序的模塊,利用儀器提供的函數(shù)包,函數(shù)現(xiàn)成封裝可直接調用。二是直接用VISA語句編寫程控儀器指令[8?9]。利用VISA語言和底層的GPIB指令,脫離儀器驅動程序,實現(xiàn)對任意GPIB設備的遠程控制。
本系統(tǒng)采用VISA方式編程。自己封裝儀器指令。根據(jù)程控信號源的GPIB基地址發(fā)出聽地址碼,然后按照遠控命令格式發(fā)出其他命令碼。
VISA是虛擬儀器軟件結構體系的簡稱,它是在LabWindows/CVI工作平臺上控制GPIB,VXI,RS 232以及其他種類儀器的單接口程序庫。采用了VISA標準,就可以不考慮時間及儀器I/O選擇項,驅動軟件可以相互兼容使用。
2.2 軟件開發(fā)
測試模塊采用LabWindows/CVI為軟件開發(fā)平臺。LabWindows/CVI是面向儀器與測控過程的交互式C/C++開發(fā)平臺。它將C語言平臺與用于數(shù)據(jù)采集、分析和顯示的工具庫有機地結合起來,具有集成開發(fā)平臺、交互式編程方法、圖形用戶界面和強大庫函數(shù)等特點,為測試系統(tǒng)的建立提供了理想的軟件開發(fā)環(huán)境[10]。
在現(xiàn)場實際測試中,儀器距離控制臺較遠,所以相應制作儀器軟面板。在軟面板上,程控信號源控制由多個測試模塊組成。每個模塊都有控制單項測試的命令鍵并采用數(shù)字值和條形標復合顯示。測試所需的調制方式,頻率,功率,脈寬、脈沖延時等參數(shù)都可以用鼠標或按鍵進行設置。程控信號源虛擬面板如圖2所示。
以選擇外觸發(fā)調制方式,向信號源送功率設定的停掃命令為例,其程序如下:
在主程序中寫入:
#include
#include
定義全程變量
int gpibaddr; //設置GPIB基地址
static int tiaozhiIds[5]={t1, t2, t3, t4, t5}; //定義調制方式的邏輯名
static int gonglvIds[5]={g1, g2, g3, g4, g5}; //定義功率衰減方式的邏輯名
在“調制方式模塊”的回調函數(shù)中寫入:
int i; //定義局部變量
for (i= 0; i<5; i++)
if (control==tiaozhiIds[i]) break; //調制方式邏輯選擇
gpibaddr=21;
switch(control)
{ ……
case t4:
{ SetCtrlVal (panelHandle, PANEL_T4,1);
flagb=ibwrt(gpibaddr,\"S3\",strlen(\"S3\"));
//送外觸發(fā)調制方式指令
…} break;
……
} break;
在“功率設定模塊”的回調函數(shù)中寫入:
int i;
int flag;
int flagb;
char wrtstr[20]; //定義局部變量
char *rdstr;
char str[20];
gpibaddr=21;
rdstr=\" \";
ibwrt(gpibaddr,\"D1\",strlen(\"D1\")); //發(fā)出聽地址碼,講功率衰減
for (i=0; i<5;i++)
if (control==gonglvIds[i]) break; //功率衰減方式邏輯選擇
switch(control)
{ ……
caseg1:
{ SetCtrlVal (panelHandle, PANEL_G1,1);
flagb=ibwrt(gpibaddr,\"A0\",strlen(\"A0\"));
//送功率衰減停掃指令
…
} break;
……
} break;
flag=ibrd(gpibaddr,rdstr,strlen(rdstr));
sprintf(str,\"%.1d\",flag);
SetCtrlVal (panelHandle, PANEL_gonglv,str); //顯示參數(shù)值
break;
3 結 語
本文以LabWindows/CVI作為軟件開發(fā)平臺,實現(xiàn)計算機對GPIB程控信號源的控制,測試系統(tǒng)是基于GPIB總線的測試系統(tǒng),它以程控分立儀器為主,組建簡單,易擴展,通用性較好。這種由軟件對儀器硬件功能的控制,使測試系統(tǒng)具有硬件無關性,體現(xiàn)了虛擬儀器的“軟件即儀器”的特點。在此基礎上,可進一步開發(fā)各種虛擬儀器模塊的硬件功能,構筑虛擬儀器更理想的平臺,增強虛擬儀器功能。
參考文獻
[1] 孫小云.基于Labwindows/CVI的虛擬儀器設計與應用[M].北京:電子工業(yè)出版社,2005.
[2] 王伯雄.檢測技術基礎[M].北京:清華大學出版社,2003.
[3] 潘少永.虛擬儀器技術研究[D].鄭州:解放軍信息工程大學,2005.
[4] 何小陽.計算機監(jiān)控原理及技術[M].重慶:重慶大學出版社,2002.
[5] 鄭力新,周凱汀. LabWindows/CVI實現(xiàn)遠程虛擬測控技術[J].華僑大學學報,2005,26(3):247?250.
[6] 古軍,詹恵琴.虛擬儀器通用測試平臺的研制及應用[J].實驗室技術與管理,2007,24(3):91?95.
[7] 孫萍.LabWindows/CVI在電機實驗數(shù)據(jù)處理中的應用[J].高校實驗室工作研究,2012(2):63?64.
[8] 劉雷強,鄭賓,趙小龍.基于虛擬儀器的繼電器測試裝置[J].電子測試,2012(3):49?52.
[9] 張建學.虛擬儀器在遙測艙自動測試中的應用[J].電子設計工程,2012(2):24?26.
[10] 張毅剛,喬立巖.虛擬儀器軟件開發(fā)環(huán)境LabWindows/CVI 6.0編程指南[M].北京:機械工業(yè)出版社,2002.