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

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

導語:關(guan)于使(shi)用(yong)多個同種VI總線(xian)儀(yi)器(qi)的軟件設計(ji)一文來源(yuan)于網友(you)上傳(chuan),不代表本(ben)站觀點,若需要原創文章可咨詢客服老(lao)師,歡(huan)迎(ying)參(can)考。

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

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

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

2壓力(li)測(ce)試系(xi)統硬件結構

根(gen)據測試(shi)任務(wu)的(de)(de)(de)(de)(de)(de)需(xu)要,所需(xu)的(de)(de)(de)(de)(de)(de)儀(yi)器模(mo)(mo)塊(kuai)(kuai)為(wei)具有4路通(tong)道的(de)(de)(de)(de)(de)(de)電(dian)(dian)(dian)荷放大(da)器模(mo)(mo)塊(kuai)(kuai)和(he)數據采(cai)(cai)(cai)集(ji)模(mo)(mo)塊(kuai)(kuai)。系統硬(ying)件結(jie)構圖如圖1所示。系統選(xuan)擇了(le)實現成本低,數據傳輸速率(lv)快,具有熱插拔(ba)和(he)即插即用功能等優(you)點的(de)(de)(de)(de)(de)(de)IEEE-1394總線作為(wei)外掛控制(zhi)計算機和(he)VXI機箱的(de)(de)(de)(de)(de)(de)連(lian)接總線,相應采(cai)(cai)(cai)用HPE8491B作為(wei)零槽控制(zhi)器;主(zhu)機箱選(xuan)用測試(shi)方便的(de)(de)(de)(de)(de)(de)HP公司的(de)(de)(de)(de)(de)(de)C尺寸(cun)6槽高(gao)功率(lv)主(zhu)機箱HPE1421B;外掛計算機選(xuan)用PⅡ266工業控制(zhi)計算機;電(dian)(dian)(dian)荷放大(da)器模(mo)(mo)塊(kuai)(kuai)是自主(zhu)研制(zhi)開發的(de)(de)(de)(de)(de)(de)2通(tong)道VXI總線寄存器基(ji)的(de)(de)(de)(de)(de)(de)高(gao)阻(zu)抗電(dian)(dian)(dian)荷放大(da)器模(mo)(mo)塊(kuai)(kuai),其增(zeng)益(yi)連(lian)續(xu)可調(diao)并具有濾(lv)波功能;數采(cai)(cai)(cai)模(mo)(mo)塊(kuai)(kuai)選(xuan)用HP公司的(de)(de)(de)(de)(de)(de)4通(tong)道、最(zui)高(gao)采(cai)(cai)(cai)樣速率(lv)為(wei)800kSa/s數字(zi)化(hua)儀(yi)HPE15644A,該模(mo)(mo)塊(kuai)(kuai)能夠滿足(zu)一般(ban)兵器壓力(li)測試(shi)要求,不選(xuan)用采(cai)(cai)(cai)樣頻(pin)率(lv)過高(gao)的(de)(de)(de)(de)(de)(de)數采(cai)(cai)(cai)模(mo)(mo)塊(kuai)(kuai),避(bi)免引入高(gao)頻(pin)干(gan)擾(rao)。

3壓力測試系統軟件結構

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

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

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

在設計(ji)電荷(he)(he)放(fang)大(da)器(qi)設置(zhi)面(mian)(mian)板時(shi)(shi),由于(yu)有兩塊(kuai)(kuai)(kuai)同(tong)種功(gong)能的(de)(de)電荷(he)(he)放(fang)大(da)器(qi)模(mo)(mo)塊(kuai)(kuai)(kuai),它們(men)的(de)(de)面(mian)(mian)板完全相同(tong),為避免用(yong)(yong)戶(hu)界面(mian)(mian)的(de)(de)重復設計(ji)以(yi)及源(yuan)代(dai)碼程序的(de)(de)重復編(bian)寫,采用(yong)(yong)的(de)(de)辦法是:針(zhen)對(dui)(dui)多個同(tong)種功(gong)能的(de)(de)VXI模(mo)(mo)塊(kuai)(kuai)(kuai),制造(zao)一(yi)個公(gong)用(yong)(yong)面(mian)(mian)板,當其中之一(yi)模(mo)(mo)塊(kuai)(kuai)(kuai)被使用(yong)(yong)時(shi)(shi),才享(xiang)用(yong)(yong)該面(mian)(mian)板,不用(yong)(yong)時(shi)(shi)即(ji)(ji)釋放(fang)。具體到本壓力測試系統(tong),針(zhen)對(dui)(dui)兩個功(gong)能相同(tong)只是邏(luo)輯地址不同(tong)的(de)(de)電荷(he)(he)放(fang)大(da)器(qi)模(mo)(mo)塊(kuai)(kuai)(kuai),只設計(ji)一(yi)個公(gong)用(yong)(yong)的(de)(de)電荷(he)(he)放(fang)大(da)器(qi)設置(zhi)面(mian)(mian)板。當電荷(he)(he)放(fang)大(da)器(qi)a或(huo)b被使用(yong)(yong)時(shi)(shi),該公(gong)用(yong)(yong)面(mian)(mian)板即(ji)(ji)顯現為當前(qian)被使用(yong)(yong)模(mo)(mo)塊(kuai)(kuai)(kuai)的(de)(de)用(yong)(yong)戶(hu)界面(mian)(mian),完成對(dui)(dui)該模(mo)(mo)塊(kuai)(kuai)(kuai)硬件的(de)(de)參數(shu)設置(zhi)。

3.2源代碼程序編(bian)寫

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

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

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

structsystem

{Visessionhandle;

intpanel;

}device[2];

(3)在(zai)測試系(xi)統初(chu)始(shi)化過程中(zhong):

①放(fang)置公用(yong)電荷放(fang)大器設(she)置面板CHARGE。

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

②將公(gong)用面(mian)板復(fu)制成面(mian)板名為(wei)VXIcharge_1和VXIcharge_2,面(mian)板句柄為(wei)device[0].panel和device[1].panel兩塊面(mian)板,分(fen)別對應電荷放(fang)大器模塊a和b。d

evice[0].panel=DuplicatePanel(0,chazgepane,“VXIcharge_1”,50,80);

device[1].panel=DuplicatePanel(0,chargepane,“VXIcharge_2”,50,80);

(4)在設置相(xiang)應VXI模塊(kuai)參數時(shi):

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

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

②顯示相應模塊(kuai)的(de)設置(zhi)面(mian)板。

DisplayPanel(device[0].panel);

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

①確定正在(zai)享用公用面板的模(mo)塊。

Panel=GetActivePanel();

②將該模塊的面板句(ju)柄(bing)及儀(yi)器通道(dao)句(ju)柄(bing)賦(fu)給(gei)公用面板中定(ding)義的面板句(ju)柄(bing)和儀(yi)器通道(dao)句(ju)柄(bing)。

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

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

{chazgepanel=device[i].panel;

chargevi=device[i].handle;

}}

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

4結束語

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