方 鵬 劉 毅 邱田華
(中國電子科技集團公司 第四十一研究所,山東 青島266555)
筆者在參與一些自動測試系統(tǒng)軟件開發(fā)工程中,發(fā)現(xiàn)很多儀器設(shè)備,有現(xiàn)成的驅(qū)動程序,比如供應(yīng)商提供的,或者用戶自己開發(fā)的;有些儀器設(shè)備直接就沒有驅(qū)動程序,但支持遠程控制;又或者,儀器設(shè)備的驅(qū)動程序提供的功能沒有完全覆蓋儀器設(shè)備的功能,而實際測試中又需要這些驅(qū)動之外的功能等。 對于以上幾種情形,本文提出了一種綜合性的儀器控制設(shè)計方法, 該設(shè)計方法在自動測試系統(tǒng)軟件平臺TestCenter 中已得到實際應(yīng)用。TestCenter 是中國電子科技集團公司第四十一研究所研發(fā)的自動測試系統(tǒng)軟件平臺,集測試程序開發(fā)、調(diào)試、運行和管理于一體,主要應(yīng)用于消費類電子產(chǎn)品、武器裝備功能測試與故障診斷等測試領(lǐng)域的整機、模塊、電路板等多級別的測試。本文將詳細TestCenter 軟件平臺中儀器控制技術(shù)的設(shè)計和實現(xiàn)。
圖1 軟件架構(gòu)
考慮到儀器功能和現(xiàn)有程控資源的差異性,TestCenter 軟件平臺采用如下圖所示的軟件結(jié)構(gòu)實現(xiàn)對儀器設(shè)備的控制的,該軟件結(jié)構(gòu)包括應(yīng)用層、中間層(或插件層)、驅(qū)動層和硬件層等四個部分。頂層是應(yīng)用層,即TestCenter 軟件平臺。 中間層是數(shù)據(jù)交互層,包括SCPI 插件、儀器插件等數(shù)據(jù)交互組件,負責應(yīng)用層與驅(qū)動層之間的數(shù)據(jù)交互。 由于硬件層的不確定性,儀器設(shè)備的控制方式的不同,對前端產(chǎn)品的使用帶來挑戰(zhàn)。 中間層通過TestCenter 的規(guī)范接口與前端應(yīng)用層進行數(shù)據(jù)交互,并通過驅(qū)動層對硬件層的物理設(shè)備進行控制,從而屏蔽這個影響。驅(qū)動層負責對硬件設(shè)備的控制,它包括SCPI 指令集、IVI 標準驅(qū)動程序、非IVI 標準驅(qū)動程序和VISA 庫等。而硬件層主要包括各種不同總線類型的硬件設(shè)備。由下圖可知,TestCenter 軟件平臺采用兩種方式控制硬件設(shè)備。 這兩種控制方式可以獨立使用,也可以相互結(jié)合使用。 在實現(xiàn)部分將主要對中間層的兩個關(guān)鍵組件進行詳細的介紹。
自動測試系統(tǒng)軟件平臺TestCenter 的設(shè)計借鑒了模塊化儀器的硬件思想,采用了基于插件和軟件背板的體系架構(gòu)。插件是TestCenter可識別的動態(tài)可插拔軟件模塊,是具有特定功能的軟件模塊,類似于軟件意義上的VXI 模塊。 TestCenter 提供了一個類似VXI 機箱的軟件背板,為插件的可插拔、插件的運行和插件間的數(shù)據(jù)共享提供支持。當然,插件與“背板”之間有規(guī)范的接口“插槽”,就如同VXI 或PXI 機箱與儀器模塊的接口關(guān)系。
TestCenter 插件是實現(xiàn)了一定功能的軟件模塊,它符合TestCenter插件的接口規(guī)范, 可被TestCenter 識別和運行, 通過插件接口與TestCenter 軟件平臺進行數(shù)據(jù)交互。 插件由一個執(zhí)行程序文件和兩個網(wǎng)頁文件組成。 插件通過網(wǎng)頁的方式提供與用戶的交互界面,它包括兩個網(wǎng)頁,一個是設(shè)置頁面,用于讓用戶設(shè)置插件運行參數(shù),另一個是狀態(tài)頁面,用于向用戶顯示插件運行結(jié)果。 插件執(zhí)行程序用于提供設(shè)置頁面和狀態(tài)頁面中使用的ActiveX 控件以及實現(xiàn)TestCenter 插件接口的插件模塊。 TestCenter 通過調(diào)用插件接口方法, 從而完成插件功能。 儀器插件和SCPI 插件作為TestCenter 儀器控制插件,在其執(zhí)行程序中實現(xiàn)了TestCenter 插件接口函數(shù),其主要接口函數(shù)如圖2 所示。
圖2
主要接口函數(shù)功能描述如表1 所示。
表1
圖3 儀器控制流程示意圖
儀器插件和SCPI 插件是與TestCenter 軟件平臺中測試資源服務(wù)管理功能結(jié)合使用的。 測試資源服務(wù)管理是實現(xiàn)儀器互換的關(guān)鍵,它維護一個資源服務(wù)列表,包括對資源服務(wù)的添加、刪除、編輯等操作,并將服務(wù)列表以XML 文件進行保存。 資源服務(wù)由硬件資源和軟件資源組成。硬件資源主要包括硬件設(shè)備的描述屬性,如程控地址、設(shè)備型號、控制方式(如是否仿真)等;軟件資源主要包括驅(qū)動類別、驅(qū)動版本、驅(qū)動前綴及驅(qū)動程序路徑等。儀器插件和SCPI 插件通過服務(wù)名稱向資源服務(wù)管理器申請服務(wù),獲取服務(wù)的硬件或軟件資源。
儀器插件主要是針對有驅(qū)動程序的儀器設(shè)備進行開發(fā)的??紤]到開發(fā)周期、成本和可重用性等實效性問題,實際應(yīng)用中主要針對使用頻繁,且驅(qū)動程序有標準接口規(guī)范的儀器設(shè)備,或用戶自定義的驅(qū)動接口形式的儀器設(shè)備,如IVI 規(guī)范定義的儀器類。 當然,對于特定的儀器設(shè)備,其功能多,操作性強,且應(yīng)用頻繁的,提供友好的用戶界面,能夠提高設(shè)備的易用性,對于這種情況,也適合于開發(fā)相應(yīng)的儀器插件。若驅(qū)動層和插件層的接口規(guī)范通用,則硬件設(shè)備更換的時候,只需更換統(tǒng)一接口規(guī)范的驅(qū)動程序,即能在不改變程序代碼的前提下實現(xiàn)儀器設(shè)備的互換。
而相較之于新文人粉彩人物瓷畫,現(xiàn)代民間粉彩人物瓷畫在未來一段時間里會對其在現(xiàn)代粉彩人物瓷畫的地位產(chǎn)生動搖?,F(xiàn)代民間粉彩人物瓷畫由于其更加迎合普羅大眾的審美情趣,而非那些精英審美文化特質(zhì),而當中嬰戲圖、仕女圖以及高士圖等題材會更貼近現(xiàn)實生活,容易被大眾所接受。其次,新文人粉彩人物瓷畫需要更高的古典文化修養(yǎng)才能創(chuàng)作出更加震撼的作品。現(xiàn)代民間粉彩人物瓷畫表現(xiàn)出來的民族性更加強烈更加直接,具有鮮明的文化符號,更容易被當代陶藝界所接受。
儀器插件的設(shè)計流程如下:
·通過服務(wù)名稱查找服務(wù)對象;
·獲取服務(wù)對象的硬件資源和軟件資源;
·動態(tài)加載服務(wù)對象指定的設(shè)備驅(qū)動程序;
·調(diào)用驅(qū)動程序,控制服務(wù)對象指定的硬件設(shè)備。
SCPI 插件類似儀器插件, 區(qū)別在于儀器插件是通過調(diào)用儀器驅(qū)動程序來控制儀器設(shè)備的,而SCPI 插件不使用儀器驅(qū)動程序,而是通過直接調(diào)用VISA 庫函數(shù)發(fā)送程控指定, 從而實現(xiàn)對儀器設(shè)備的控制。 SCPI 插件維護一個SCPI 指令列表,主要包括指令添加、刪除、修改等操作, 并調(diào)用VISA 庫函數(shù)將發(fā)送指令或回讀數(shù)據(jù)。 SCPI (Standard Command for Programmable Instruments 程控儀器標準命令) 使用標準程控信息、 儀器響應(yīng)和數(shù)據(jù)格式從而實現(xiàn)兼容的編程環(huán)境,具有很好的規(guī)范性和通用性,即使用SCPI 插件開發(fā)的測試程序也具有很好的移植性。
SCPI 插件的設(shè)計流程如下:
·通過服務(wù)名稱查找服務(wù)對象;
·獲取服務(wù)對象的硬件資源;
·直接通過VISA 庫函數(shù)發(fā)送SCPI 澄空指令,控制服務(wù)對象指定的硬件設(shè)備。
SCPI 插件對儀器設(shè)備的控制分為三個步驟:
·連接儀器;
·發(fā)送指令,發(fā)送/接收;
·斷開儀器連接。
所使用的VISA 庫函數(shù)主要包括:
ViStatus _VI_FUNC viRead (ViSession vi, ViPBufbuf, ViUInt32 cnt, ViPUInt32 retCnt);
ViStatus _VI_FUNC viWrite (ViSession vi, ViBufbuf, ViUInt32 cnt,ViPUInt32 retCnt);
ViStatus _VI_FUNC viClose (ViObject vi);
儀器插件與SCPI 插件控制流程如圖3 所示。
本文介紹了兩種基于TestCenter 軟件平臺的儀器控制方式,兩種方法各有優(yōu)勢。 儀器插件界面友好,適用于功能復雜、重用性高的,且有驅(qū)動程序有標準接口規(guī)范的儀器設(shè)備;SCPI 插件直接通過發(fā)送指令控制儀器設(shè)備,使用靈活便捷。在實際測試過程中,可以單獨使用某一種方式,也可以兩種方式結(jié)合使用,為用戶的測試序列開發(fā)提供靈活的選擇,從而更好地滿足測試需要。 使用該方法開發(fā)的測試程序具有很好的重用性和可移植性, 在實際測試中已得到較廣泛的應(yīng)用,并取得了可觀的經(jīng)濟效益。
[1]方葛豐,劉毅,等.自動測試系統(tǒng)軟件平臺技術(shù)[J].儀器儀表,2009,10.
[2]曹志偉,周曉東,等.TPS 可移植性及其評估方法研究[J].理論與方法,2007,9.