關于使用多個同種VXI總線儀器的軟件設計論文
關于使用多個同種VXI總線儀器的軟件設計論文
VXI總線規(guī)范是一個開放的體系結構標準,其主要目標是使VXIbus器件之間、VXIbus器件與其它標準的器件(計算機)之間能夠以明確的方式開放地通信;使系統(tǒng)體積更小;通過使用高帶寬的吞吐量,為開發(fā)者提供高性能的測試設備;采用通用的接口來實現(xiàn)相似的儀器功能,使系統(tǒng)集成軟件成本進一步降低。以下是學習啦小編今天為大家精心準備的:關于使用多個同種VXI總線儀器的軟件設相關論文,內(nèi)容僅供參考,歡迎閱讀!
關于使用多個同種VXI總線儀器的軟件設計全文如下:
1、基于VXI總線虛擬儀器組建的測試系統(tǒng)
作為測試領域里一個新的應用方向,引起了我國兵器測試界的關注,并開發(fā)應用了適合兵器行業(yè)的測試系統(tǒng)。本人在對基于VXI總線儀器組建的壓力測試系統(tǒng)進行開發(fā)的過程中,由于系統(tǒng)要求完成多信道壓力信號測試,故將使用到多個同種VXI功能模塊。在VXI測試系統(tǒng)中,每個功能模塊都相當于一個具有獨立面板的傳統(tǒng)儀器,若按該思想方法進行本測試系統(tǒng)應用軟件設計,無疑將重復設計并使用同樣的儀器面板和源代碼,造l成軟件的冗長。而利用計算機軟件功能較好地解決了這個問題。
2 壓力測試系統(tǒng)硬件結構
根據(jù)測試任務的需要,所需的儀器模塊為具有4路通道的電荷放大器模塊和數(shù)據(jù)采集模塊。系統(tǒng)硬件結構圖如圖1所示。系統(tǒng)選擇了實現(xiàn)成本低,數(shù)據(jù)傳輸速率快,具有熱插拔和即插即用功能等優(yōu)點的IEEE-1394總線作為外掛控制計算機和VXI機箱的連接總線,相應采用HPE8491B作為零槽控制器;主機箱選用測試方便的HP公司的C尺寸6槽高功率主機箱HP E1421B;外掛計算機選用P Ⅱ 266工業(yè)控制計算機;電荷放大器模塊是自主研制開發(fā)的2通道VXI總線寄存器基的高阻抗電荷放大器模塊,其增益連續(xù)可調(diào)并具有濾波功能;數(shù)采模塊選用HP公司的4通道、最高采樣速率為800kSa/s數(shù)字化儀HPE15644A,該模塊能夠滿足一般兵器壓力測試要求,不選用采樣頻率過高的數(shù)采模塊,避免引入高頻干擾。
3 壓力測試系統(tǒng)軟件結構
VXI測試系統(tǒng)軟件開發(fā)所遵循的基本原則是VPP規(guī)范。其中,從通用性和零槽控制器工作環(huán)境要求考慮,操作系統(tǒng)選用32位操作系統(tǒng)Windows95,I/0庫選用HPVISA;數(shù)字化儀的儀器驅動程序選用商家HP公司提供的,電荷放大器則使用自行編制的符合VPP規(guī)范的儀器驅動程序;軟件開發(fā)平臺采用美國NI公司的面向儀器交互式C語言的LabWindows/CVI。測試系統(tǒng)軟件的設計主要集中在用戶界面設計和源代碼程序編寫兩方面。
3.1 用戶界面(系統(tǒng)多級虛擬面板)設計
按照功能模塊的應用將虛擬面板劃分為一個測試系統(tǒng)主面極和電荷放大器設置面板、數(shù)字化儀設置面板兩個子面板。
在設計電荷放大器設置面板時,由于有兩塊同種功能的電荷放大器模塊,它們的面板完全相同,為避免用戶界面的重復設計以及源代碼程序的重復編寫,采用的辦法是:針對多個同種功能的VXI模塊,制造一個公用面板,當其中之一模塊被使用時,才享用該面板,不用時即釋放。具體到本壓力測試系統(tǒng),針對兩個功能相同只是邏輯地址不同的電荷放大器模塊,只設計一個公用的電荷放大器設置面板。當電荷放大器a或b被使用時,該公用面板即顯現(xiàn)為當前被使用模塊的用戶界面,完成對該模塊硬件的參數(shù)設置。
3.2 源代碼程序編寫
在此著重介紹如何通過源代碼的編寫來實現(xiàn)用戶界面設計中的解決思想。
(1)為公用面板上各控件的回調(diào)函數(shù)添加相應的代碼。并定義了公用面板的面板句柄chargepanel和儀器通道句柄chargevi。
(2)在變量定義中定義一個結構體數(shù)組:
struct system
{Visession handle;
int panel;
}device[2];
(3)在測試系統(tǒng)初始化過程中:
?、俜胖霉秒姾煞糯笃髟O置面板CHARGE。
chargepanel=LoadPanel(0,“壓力測試系統(tǒng).uir”,CHARGE);
?、趯⒐妹姘鍙椭瞥擅姘迕麨閂XI charge_1和VXIcharge_2,面板句柄為device[0].panel和device[1].panel兩塊面板,分別對應電荷放大器模塊a和b。d
evice[0].panel=DuplicatePanel(0,chazgepane,“VXIcharge_1”,50,80);
device[1].panel=DuplicatePanel(0,chargepane,“VXIcharge_2”,50,80);
(4)在設置相應VXI模塊參數(shù)時:
?、俪跏蓟鄳K(以電荷放大器模塊a為例)。
Charge_init(“VXI0::224::INSTR”,VI_FALSE,VI_FALSE,&device[0].handle);
?、陲@示相應模塊的設置面板。
DisplayPanel(device[0].panel);
(5)在控制相應模塊時(如復位、發(fā)送設置參數(shù)等):
①確定正在享用公用面板的模塊。
Panel=GetActivePanel( );
②將該模塊的面板句柄及儀器通道句柄賦給公用面板中定義的面板句柄和儀器通道句柄。
for(i=0;i<2;i++)
{if(Panel=device[i].pane1)
{chazgepanel=device[i].panel;
chargevi=device[i].handle;
}}
當用戶激活面板上某一控件時,程序將運行(1)中對應已寫好的回調(diào)函數(shù),從而實現(xiàn)對被激活模塊的操作。在系統(tǒng)應用軟件編制完成后,進行了系統(tǒng)軟、硬件聯(lián)調(diào),并將動態(tài)壓力標定裝置接至該系統(tǒng)進行了實驗.圖2所示為同時采集到的四路壓力信號。
4 結束語
本文結合自行開發(fā)的多通道壓力測試系統(tǒng),利用計算機軟件功能解決了測試系統(tǒng)中使用多個同種VXI功能模塊的應用軟件設計問題,并通過實驗表明此法的可行性和有效性。這對于組建其它VXI總線測試系統(tǒng)有一定的指導意義和借鑒作用,對于應用軟件優(yōu)化設計提供了一點意見。