《電子技術應用》
您所在的位置:首頁 > 测试测量 > 业界动态 > 基于LabWindows/CVI的ATS软件框架

基于LabWindows/CVI的ATS软件框架

2008-11-12
作者:钟建林, 何 友, 任献彬

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

?

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

?

?


1.1 測試資源需求描述文件
  該文件以INI文件的格式定義了當前UUT測試需要的測試資源。一個UUT測試程序?qū)粋€“測試資源需求描述文件”。文件格式如圖2所示。

?


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

?


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

?


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

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

?


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

?


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

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

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