《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 業(yè)界動(dòng)態(tài) > 基于LabWindows/CVI的ATS軟件框架

基于LabWindows/CVI的ATS軟件框架

2008-11-12
作者:鐘建林, 何 友, 任獻(xiàn)彬

  摘 要: 基于LabWindows/CVI" title="LabWindows/CVI">LabWindows/CVI的自動(dòng)測(cè)試" title="自動(dòng)測(cè)試">自動(dòng)測(cè)試系統(tǒng)軟件框架使用配置文件實(shí)現(xiàn)軟、硬件模塊之間信息交換和資源的動(dòng)態(tài)配置。在同一個(gè)軟件主框架下實(shí)現(xiàn)了多個(gè)UUT測(cè)試程序" title="測(cè)試程序">測(cè)試程序的開(kāi)發(fā)和調(diào)試。提供良好的調(diào)試維護(hù)界面,實(shí)現(xiàn)測(cè)試軟件" title="測(cè)試軟件">測(cè)試軟件的模塊化、TPS的可移植,大大提高了開(kāi)發(fā)和調(diào)試的效率。TPS通過(guò)調(diào)用格式化類(lèi)驅(qū)動(dòng)間接調(diào)用物理儀器驅(qū)動(dòng),實(shí)現(xiàn)了儀器的可互換。
  關(guān)鍵詞: LabWindows/CVI;? 配置文件; 測(cè)試程序; 框架

?

  某軍用飛機(jī)電子設(shè)備自動(dòng)測(cè)試系統(tǒng)(ATS)涉及的被測(cè)對(duì)象(UUT)有60多個(gè),按專(zhuān)業(yè)可分為雷達(dá)、顯控、飛控、電子對(duì)抗等。在設(shè)計(jì)、調(diào)試自動(dòng)測(cè)試程序中,一方面要提高開(kāi)發(fā)效率,按專(zhuān)業(yè)劃分測(cè)試軟件的開(kāi)發(fā)任務(wù),各小組、開(kāi)發(fā)工程師能同時(shí)獨(dú)立開(kāi)展工作。其次要實(shí)現(xiàn)測(cè)試軟件的模塊化、可移植性:各小組、工程師開(kāi)發(fā)出來(lái)的測(cè)試程序具有統(tǒng)一的格式和標(biāo)準(zhǔn),便于調(diào)試和交流;當(dāng)被測(cè)對(duì)象變動(dòng)時(shí),相應(yīng)的測(cè)試程序集(TPS)可以容易地改動(dòng)。最后要實(shí)現(xiàn)儀器可互換,即儀器更換時(shí)TPS不需要改動(dòng)。NI公司的LabWindows/CVI以ANSI C為核心,它的集成化的開(kāi)發(fā)平臺(tái)、交互式編程方法、豐富的面板功能以及訪(fǎng)問(wèn)INI文件、多線(xiàn)程、創(chuàng)建庫(kù)文件、DDE動(dòng)態(tài)數(shù)據(jù)交換等高級(jí)編程手段使其自身功能強(qiáng)大,應(yīng)用方便,成為工程技術(shù)開(kāi)發(fā)人員建立ATS首選的軟件開(kāi)發(fā)工具。根據(jù)ATS的邏輯結(jié)構(gòu),本文設(shè)計(jì)開(kāi)發(fā)出一個(gè)基于LabWindows/CVI的ATS軟件框架,用于測(cè)試程序開(kāi)發(fā)和調(diào)試。主框架使用配置文件實(shí)現(xiàn)軟、硬件模塊之間交換信息和資源的動(dòng)態(tài)配置,把裝備工程師、軟件工程師和硬件設(shè)計(jì)人員各自的工作區(qū)分開(kāi)來(lái),實(shí)現(xiàn)了面向“測(cè)試任務(wù)”的虛擬儀器設(shè)計(jì),使開(kāi)發(fā)人員的精力集中到測(cè)試功能的實(shí)現(xiàn)上,提高了軟件開(kāi)發(fā)的靈活性和效率,大大降低了軟件開(kāi)發(fā)的難度,縮短了開(kāi)發(fā)周期,節(jié)約了成本。
1 軟件框架結(jié)構(gòu)及其組成
  ATS的邏輯結(jié)構(gòu)從資源構(gòu)成、硬件設(shè)計(jì)、系統(tǒng)計(jì)量、UUT測(cè)試項(xiàng)目定義等方面描述了ATS 屬性,是系統(tǒng)內(nèi)核對(duì)ATS硬件實(shí)施控制的主要依據(jù)。ATS軟件框架是其邏輯結(jié)構(gòu)的一個(gè)具體實(shí)現(xiàn),其結(jié)構(gòu)如圖1所示。

?

?


1.1 測(cè)試資源需求描述文件
  該文件以INI文件的格式定義了當(dāng)前UUT測(cè)試需要的測(cè)試資源。一個(gè)UUT測(cè)試程序?qū)?yīng)一個(gè)“測(cè)試資源需求描述文件”。文件格式如圖2所示。

?


  直接更改該文件的設(shè)置(將1改為0)可以使系統(tǒng)轉(zhuǎn)變到降級(jí)使用狀態(tài)。另外,當(dāng)測(cè)試程序主框架在按照測(cè)試需求描述文件的定義初始化儀器時(shí),如果發(fā)現(xiàn)某儀器初始化失敗,則測(cè)試程序也將轉(zhuǎn)為降級(jí)使用狀態(tài)。轉(zhuǎn)為降級(jí)使用狀態(tài)時(shí),初始化失敗的儀器將由相應(yīng)的仿真儀器替代,系統(tǒng)將在測(cè)試項(xiàng)目列表(顯示測(cè)試結(jié)果)時(shí)標(biāo)注出來(lái)。未使用該儀器的測(cè)試不會(huì)受其影響。
1.2 測(cè)試項(xiàng)目定義文件
  該文件以INI文件的格式定義了當(dāng)前UUT的測(cè)試項(xiàng)目信息。一個(gè)TPS對(duì)應(yīng)一個(gè)“測(cè)試項(xiàng)目定義文件”。 對(duì)于每一個(gè)測(cè)試項(xiàng)目,其信息包括:測(cè)試項(xiàng)目代號(hào)、(子)測(cè)試項(xiàng)目名稱(chēng)、測(cè)試項(xiàng)目級(jí)別、對(duì)應(yīng)測(cè)試函數(shù)名、函數(shù)調(diào)用參數(shù)、是否加電測(cè)試、履歷本項(xiàng)目、200小時(shí)項(xiàng)目、400小時(shí)項(xiàng)目、裝機(jī)前項(xiàng)目、3個(gè)相關(guān)測(cè)試項(xiàng)目。如圖3所示。

?


  測(cè)試程序主框架對(duì)該文件的調(diào)用情況:
  (1)測(cè)試項(xiàng)目級(jí)別分為ITEM_FAMALY、ITEM_FATHER、ITEM_SON、ITEM_GRANDSON四級(jí),有子項(xiàng)目的測(cè)試項(xiàng)目可以定義項(xiàng)目測(cè)試前函數(shù)和項(xiàng)目測(cè)試后函數(shù)(這兩個(gè)函數(shù)完成測(cè)試項(xiàng)目開(kāi)始進(jìn)入子項(xiàng)目之前需要做好的工作,如提示連接/斷開(kāi)電纜等),在設(shè)計(jì)測(cè)試程序時(shí),項(xiàng)目測(cè)試前函數(shù)名的前四個(gè)字母必須是'BEF_',項(xiàng)目測(cè)試后函數(shù)名的前四個(gè)字母必須是'BEH_',其他部分可以自行定義(但兩函數(shù)的后半部分必須完全相同)。項(xiàng)目測(cè)試前函數(shù)和項(xiàng)目測(cè)試后函數(shù)在本文件中定義時(shí)只定義相同的后半部分即可,前半部分統(tǒng)一用'XXX_'來(lái)代替。測(cè)試程序主框架在調(diào)用項(xiàng)目前(后)函數(shù)時(shí),將自動(dòng)把'XXX_'分別用'BEF_'和'BEH_'來(lái)代替,形成完整的項(xiàng)目前(后)函數(shù)名。
  (2)一個(gè)測(cè)試項(xiàng)目對(duì)應(yīng)一個(gè)測(cè)試函數(shù)名:有子項(xiàng)目的測(cè)試項(xiàng)目不能有測(cè)試函數(shù)名,同一測(cè)試項(xiàng)目最底層的各個(gè)子項(xiàng)目的測(cè)試函數(shù)同名,測(cè)試程序以函數(shù)調(diào)用參數(shù)區(qū)別各子項(xiàng)目。
  (3)測(cè)試程序主框架執(zhí)行測(cè)試時(shí),將首先根據(jù)該文件測(cè)試項(xiàng)目“是否加電測(cè)試”狀態(tài)值執(zhí)行不加電測(cè)試,待全部不加電測(cè)試項(xiàng)目執(zhí)行完畢,再依次執(zhí)行加電測(cè)試項(xiàng)目。
  (4)對(duì)于沒(méi)有200小時(shí)定檢、400小時(shí)定檢等項(xiàng)目的系統(tǒng),對(duì)應(yīng)項(xiàng)應(yīng)全部為0。測(cè)試程序主框架將根據(jù)頭文件的定義確定在主框架面板上是否顯示對(duì)應(yīng)的項(xiàng)目選擇按鈕。
  (5)一個(gè)測(cè)試項(xiàng)目最多可以與三個(gè)項(xiàng)目相關(guān)聯(lián)(即該項(xiàng)目的測(cè)試必須在與之相關(guān)聯(lián)的項(xiàng)目測(cè)試完成之后才能正確執(zhí)行),當(dāng)用戶(hù)在主框架面板上選中一個(gè)測(cè)試項(xiàng)目時(shí),測(cè)試程序主框架將自動(dòng)選中與之關(guān)聯(lián)的項(xiàng)目。
1.3 測(cè)試數(shù)據(jù)模板文件
  測(cè)試數(shù)據(jù)模板文件是一個(gè)包含Info、ItemDef、激勵(lì)修正三個(gè)表的數(shù)據(jù)庫(kù),Info提供UUT名、型號(hào)、測(cè)試程序設(shè)計(jì)人等程序管理方面的信息,激勵(lì)修正表提供對(duì)測(cè)試結(jié)果修正數(shù)據(jù)的解釋?zhuān)琁temDef表的格式如圖4所示。

?


  測(cè)試程序主框架根據(jù)該表數(shù)據(jù)與相應(yīng)測(cè)試項(xiàng)目的測(cè)試數(shù)據(jù)進(jìn)行比較,判斷測(cè)試是否通過(guò),并通過(guò)測(cè)試項(xiàng)目列表格式化顯示測(cè)試結(jié)果。
  數(shù)據(jù)庫(kù)的建立及其處理程序的設(shè)計(jì),簡(jiǎn)化了TPS 編程,提高了TPS 的可維護(hù)性。當(dāng)測(cè)試項(xiàng)目參數(shù)需要修改時(shí),可以通過(guò)修改測(cè)試項(xiàng)目模板的方法實(shí)現(xiàn),提高了TPS 的可維護(hù)性及互操作性。
1.4自動(dòng)測(cè)試項(xiàng)目流程代碼文件
  自動(dòng)測(cè)試項(xiàng)目流程代碼文件包含所有自動(dòng)測(cè)試流程的實(shí)現(xiàn)代碼。該文件中的函數(shù)主要包括以下幾類(lèi):
  (1)通用函數(shù)
  包括DllMain、DllEntryPoint、UUTTest_AttachToFrame三個(gè),這類(lèi)函數(shù)的函數(shù)名和實(shí)現(xiàn)代碼都不需進(jìn)行任何更改。
  (2)UUT測(cè)試資源配置函數(shù)
  該函數(shù)實(shí)現(xiàn)了對(duì)UUT測(cè)試的資源配置操作,文件名不應(yīng)更改,但在設(shè)計(jì)TPS時(shí)應(yīng)根據(jù)UUT的測(cè)試需求設(shè)計(jì)函數(shù)實(shí)現(xiàn)代碼。該函數(shù)由測(cè)試程序主框架在儀器資源初始化完成后調(diào)用。
  (3)UUT加(斷)電函數(shù)
  該函數(shù)實(shí)現(xiàn)了UUT的加(斷)電操作,文件名不應(yīng)更改,函數(shù)實(shí)現(xiàn)代碼應(yīng)根據(jù)實(shí)際需要添加。該函數(shù)由測(cè)試程序主框架在UUT需要加(斷)電時(shí)調(diào)用。
  (4)測(cè)試前(后)函數(shù)
  該函數(shù)包括自動(dòng)測(cè)試過(guò)程" title="測(cè)試過(guò)程">測(cè)試過(guò)程前(后)函數(shù)和項(xiàng)目測(cè)試前(后)函數(shù)。函數(shù)實(shí)現(xiàn)代碼可根據(jù)實(shí)際需要添加,但不允許在該函數(shù)中添加與格式化類(lèi)或硬件控制有關(guān)的任何代碼。利用該函數(shù)可以實(shí)現(xiàn)一些測(cè)試過(guò)程的特殊要求,如:UUT測(cè)試或項(xiàng)目測(cè)試準(zhǔn)備和撤收注意事項(xiàng)的提示。測(cè)試前(后)函數(shù)由測(cè)試程序主框架在啟動(dòng)自動(dòng)測(cè)試流程前(測(cè)試流程結(jié)束后)調(diào)用。
  (5)自動(dòng)測(cè)試項(xiàng)目流程函數(shù)
  該函數(shù)是測(cè)試項(xiàng)目對(duì)應(yīng)的測(cè)試流程函數(shù),是特定的UUT測(cè)試邏輯的具體實(shí)現(xiàn)。函數(shù)返回值根據(jù)儀器響應(yīng)情況包括:被測(cè)對(duì)象中止測(cè)試(LRUTEST_TERMINATE)、大項(xiàng)目中止測(cè)試(ITEMTEST_TERMINATE)、小項(xiàng)目中止測(cè)試(SUBITEMTEST_TERMINATE)、測(cè)試項(xiàng)目正常結(jié)束(ITEMTEST_FINISH)等。
1.5 測(cè)試主框架內(nèi)核
  測(cè)試主框架內(nèi)核包括測(cè)試引擎、測(cè)試數(shù)據(jù)管理等與軟件平臺(tái)有關(guān)的函數(shù)。
  測(cè)試引擎主要完成TPS 的儀器無(wú)關(guān)性及系統(tǒng)集成,其主要功能包括:系統(tǒng)資源控制模型管理;儀器運(yùn)行狀態(tài)的實(shí)時(shí)監(jiān)測(cè);儀器運(yùn)行模式(仿真運(yùn)行、真實(shí)運(yùn)行) 管理;類(lèi)驅(qū)動(dòng)程序及物理驅(qū)動(dòng)程序DLL模塊句柄管理;邏輯儀器到物理儀器映射及對(duì)物理驅(qū)動(dòng)程序?qū)С龊瘮?shù)的動(dòng)態(tài)調(diào)用(顯式鏈接);類(lèi)驅(qū)動(dòng)程序函數(shù)到物理儀器驅(qū)動(dòng)程序函數(shù)映射;儀器句柄管理;類(lèi)驅(qū)動(dòng)程序及物理驅(qū)動(dòng)程序注冊(cè)。
  測(cè)試數(shù)據(jù)管理實(shí)現(xiàn)的功能:測(cè)試項(xiàng)目模板處理;測(cè)試結(jié)果緩存、保存、顯示、打?。粶y(cè)試結(jié)果文件管理、顯示及打印表格的自動(dòng)生成;信號(hào)校正模型處理及被測(cè)信號(hào)、激勵(lì)信號(hào)校正。
1.6 其他文件
  儀器資源定義頭文件定義了系統(tǒng)硬件平臺(tái)中各測(cè)試資源的邏輯句柄、資源順序宏定義以及測(cè)試函數(shù)的返回值類(lèi)型、系統(tǒng)有無(wú)“履歷本項(xiàng)目”、“200小時(shí)定檢項(xiàng)目”、“400小時(shí)定檢項(xiàng)目”、“裝機(jī)前檢查項(xiàng)目”、對(duì)當(dāng)前系統(tǒng)測(cè)試資源格式化類(lèi)頭文件的包含等。該文件名與系統(tǒng)同名,存儲(chǔ)在測(cè)試程序主框架目錄下。
  UUT測(cè)試自定義頭文件包含了UUT測(cè)試過(guò)程中用到的自定義變量或函數(shù),存儲(chǔ)在TPS當(dāng)前目錄下。
  用戶(hù)界面文件中包含測(cè)試執(zhí)行中用到的一些通用面板,用戶(hù)可根據(jù)需要在該文件中添加定制的面板。
2 儀器可互換性的實(shí)現(xiàn)
  TPS對(duì)儀器資源的操作是通過(guò)指定“邏輯名”來(lái)進(jìn)行的,“邏輯名”、虛擬儀器與物理儀器的對(duì)應(yīng)關(guān)系以及虛擬儀器的所屬類(lèi)、類(lèi)驅(qū)動(dòng)程序、物理儀器總線(xiàn)接口類(lèi)型及屬性、物理儀器驅(qū)動(dòng)程序函數(shù)前綴及DLL文件名等都是由INI配置文件定義的。INI配置文件完成了從邏輯儀器到物理儀器的映射等功能。配置文件的管理通過(guò)配置管理工具進(jìn)行,可以用圖形直觀(guān)顯示邏輯名到物理儀器或仿真儀器的映射關(guān)系,且可以很方便地進(jìn)行修改。測(cè)試引擎提供配置文件的訪(fǎng)問(wèn)接口,提供公用常量、數(shù)據(jù)類(lèi)型、函數(shù)的定義,提供錯(cuò)誤代碼定義以及錯(cuò)誤處理函數(shù)。
  通過(guò)格式化類(lèi)驅(qū)動(dòng)程序提供的標(biāo)準(zhǔn)函數(shù),測(cè)試軟件開(kāi)發(fā)者可以寫(xiě)出獨(dú)立于儀器硬件的測(cè)試代碼,允許測(cè)試系統(tǒng)在各生產(chǎn)商之間、甚至各種類(lèi)型總線(xiàn)協(xié)議之間(GPIB、VXI、PXI)更換儀器。TPS在其基礎(chǔ)上實(shí)現(xiàn)了測(cè)試程序的儀器無(wú)關(guān)性,提高了軟件及整個(gè)系統(tǒng)的可維護(hù)性。
3 測(cè)試程序函數(shù)的調(diào)用次序
3.1 儀器初始化過(guò)程

  儀器初始化過(guò)程及初始化完成后各函數(shù)的調(diào)用次序如圖5所示。

?


3.2 自動(dòng)測(cè)試項(xiàng)目各函數(shù)的調(diào)用次序
  自動(dòng)測(cè)試項(xiàng)目各函數(shù)的調(diào)用次序如圖6所示。

?


  本文所述基于LabWindows/CVI的測(cè)試軟件框架實(shí)現(xiàn)的主要功能有:
 ?。?)測(cè)試資源的初始化和關(guān)閉等儀器管理;
  (2)測(cè)試數(shù)據(jù)模板文件的打開(kāi)及關(guān)閉;
  (3)自動(dòng)測(cè)試項(xiàng)目的顯示,以及對(duì)測(cè)試項(xiàng)目對(duì)應(yīng)測(cè)試流程的調(diào)用;
 ?。?)測(cè)試數(shù)據(jù)保存、查詢(xún)、打??;
  (5)測(cè)試項(xiàng)目與測(cè)試過(guò)程信息的映射、索引操作;
 ?。?)自動(dòng)測(cè)試過(guò)程信息的格式化顯示以及不可執(zhí)行項(xiàng)目在項(xiàng)目列表中的標(biāo)注;
 ?。?)測(cè)試程序的降級(jí)使用功能;
  (8)關(guān)聯(lián)測(cè)試項(xiàng)目的管理。
  該測(cè)試程序主框架主要是為了完成各測(cè)試程序的開(kāi)發(fā)、仿真與對(duì)接調(diào)試,是為一個(gè)在儀器可互換組件基礎(chǔ)上運(yùn)行的獨(dú)立的可執(zhí)行程序(.exe文件),測(cè)試程序?yàn)榉弦欢ǜ袷降膭?dòng)態(tài)鏈接庫(kù)(.dll文件)。測(cè)試程序主框架與UUT測(cè)試程序?qū)崿F(xiàn)了徹底分離,主框架功能的更改和版本升級(jí)不影響測(cè)試程序的代碼。當(dāng)增加新的UUT時(shí),在測(cè)試程序主框架下可以容易地添加新的UUT測(cè)試程序;當(dāng)某些UUT需要添加測(cè)試項(xiàng)目時(shí),通過(guò)更改測(cè)試相關(guān)文件和添加少量代碼,可以容易地實(shí)現(xiàn)新的測(cè)試程序;提供相同測(cè)試功能的測(cè)試資源的更換不會(huì)影響程序的運(yùn)行,實(shí)現(xiàn)了TPS 與硬件平臺(tái)的無(wú)關(guān)性。該軟件已成功應(yīng)用于兩種型號(hào)軍用自動(dòng)測(cè)試系統(tǒng)的測(cè)試軟件開(kāi)發(fā)和對(duì)接調(diào)試。實(shí)踐證明,該軟件能夠明顯降低測(cè)試軟件開(kāi)發(fā)難度,大大提高程序開(kāi)發(fā)和調(diào)試的效率。

參考文獻(xiàn)
[1] ?劉金寧,孟晨,崔少輝,等. 基于配置文件的虛擬儀器測(cè)試軟件設(shè)計(jì)與實(shí)現(xiàn)[J].電力自動(dòng)化設(shè)備,2005,25(1):
?50-53.
[2] ?任獻(xiàn)彬,牛雙誠(chéng),許愛(ài)強(qiáng).通用ATS軟件設(shè)計(jì)平臺(tái)研究[J].宇航計(jì)測(cè)技術(shù),2002,22(5):59-63.
[3] ?于功敬,張韜. VXI通用測(cè)試軟件框架結(jié)構(gòu)的研究[J].計(jì)算機(jī)自動(dòng)測(cè)量與控制,1999,7(3):5-6.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀(guān)點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。