關于使用多個同種VI總線儀器的軟件設計

時間:2022-11-17 10:19:00

導語:關于使用多個同種VI總線儀器的軟件設計一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

關于使用多個同種VI總線儀器的軟件設計

關于使用多個同種VXI總線儀器的軟件設計

基于VXI總線虛擬儀器組建的測試系統作為測試領域里一個新的應用方向,引起了我國兵器測試界的關注,并開發應用了適合兵器行業的測試系統。本人在對基于VXI總線儀器組建的壓力測試系統進行開發的過程中,由于系統要求完成多信道壓力信號測試,故將使用到多個同種VXI功能模塊。在VXI測試系統中,每個功能模塊都相當于一個具有獨立面板的傳統儀器,若按該思想方法進行本測試系統應用軟件設計,無疑將重復設計并使用同樣的儀器面板和源代碼,造l成軟件的冗長。而利用計算機軟件功能較好地解決了這個問題。

2壓力測試系統硬件結構

根據測試任務的需要,所需的儀器模塊為具有4路通道的電荷放大器模塊和數據采集模塊。系統硬件結構圖如圖1所示。系統選擇了實現成本低,數據傳輸速率快,具有熱插拔和即插即用功能等優點的IEEE-1394總線作為外掛控制計算機和VXI機箱的連接總線,相應采用HPE8491B作為零槽控制器;主機箱選用測試方便的HP公司的C尺寸6槽高功率主機箱HPE1421B;外掛計算機選用PⅡ266工業控制計算機;電荷放大器模塊是自主研制開發的2通道VXI總線寄存器基的高阻抗電荷放大器模塊,其增益連續可調并具有濾波功能;數采模塊選用HP公司的4通道、最高采樣速率為800kSa/s數字化儀HPE15644A,該模塊能夠滿足一般兵器壓力測試要求,不選用采樣頻率過高的數采模塊,避免引入高頻干擾。

3壓力測試系統軟件結構

VXI測試系統軟件開發所遵循的基本原則是VPP規范。其中,從通用性和零槽控制器工作環境要求考慮,操作系統選用32位操作系統Windows95,I/0庫選用HPviSA;數字化儀的儀器驅動程序選用商家HP公司提供的,電荷放大器則使用自行編制的符合VPP規范的儀器驅動程序;軟件開發平臺采用美國NI公司的面向儀器交互式C語言的LabWindows/CVI。測試系統軟件的設計主要集中在用戶界面設計和源代碼程序編寫兩方面。

3.1用戶界面(系統多級虛擬面板)設計

按照功能模塊的應用將虛擬面板劃分為一個測試系統主面極和電荷放大器設置面板、數字化儀設置面板兩個子面板。

在設計電荷放大器設置面板時,由于有兩塊同種功能的電荷放大器模塊,它們的面板完全相同,為避免用戶界面的重復設計以及源代碼程序的重復編寫,采用的辦法是:針對多個同種功能的VXI模塊,制造一個公用面板,當其中之一模塊被使用時,才享用該面板,不用時即釋放。具體到本壓力測試系統,針對兩個功能相同只是邏輯地址不同的電荷放大器模塊,只設計一個公用的電荷放大器設置面板。當電荷放大器a或b被使用時,該公用面板即顯現為當前被使用模塊的用戶界面,完成對該模塊硬件的參數設置。

3.2源代碼程序編寫

在此著重介紹如何通過源代碼的編寫來實現用戶界面設計中的解決思想。

(1)為公用面板上各控件的回調函數添加相應的代碼。并定義了公用面板的面板句柄chargepanel和儀器通道句柄chargevi。

(2)在變量定義中定義一個結構體數組:

structsystem

{Visessionhandle;

intpanel;

}device[2];

(3)在測試系統初始化過程中:

①放置公用電荷放大器設置面板CHARGE。

chargepanel=LoadPanel(0,“壓力測試系統.uir”,CHARGE);

②將公用面板復制成面板名為VXIcharge_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模塊參數時:

①初始化相應模塊(以電荷放大器模塊a為例)。

Charge_init(“VXI0::224::INSTR”,VI_FALSE,VI_FALSE,&device[0].handle);

②顯示相應模塊的設置面板。

DisplayPanel(device[0].panel);

(5)在控制相應模塊時(如復位、發送設置參數等):

①確定正在享用公用面板的模塊。

Panel=GetActivePanel();

②將該模塊的面板句柄及儀器通道句柄賦給公用面板中定義的面板句柄和儀器通道句柄。

for(i=0;i<2;i++)

{if(Panel=device[i].pane1)

{chazgepanel=device[i].panel;

chargevi=device[i].handle;

}}

當用戶激活面板上某一控件時,程序將運行(1)中對應已寫好的回調函數,從而實現對被激活模塊的操作。在系統應用軟件編制完成后,進行了系統軟、硬件聯調,并將動態壓力標定裝置接至該系統進行了實驗.圖2所示為同時采集到的四路壓力信號。

4結束語

本文結合自行開發的多通道壓力測試系統,利用計算機軟件功能解決了測試系統中使用多個同種VXI功能模塊的應用軟件設計問題,并通過實驗表明此法的可行性和有效性。這對于組建其它VXI總線測試系統有一定的指導意義和借鑒作用,對于應用軟件優化設計提供了一點意見。