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

基于LabWindows/CVI的ATS软件框架

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

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

?

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

?

?


1.1 測試資源需求描述文件
  該文件以INI文件的格式定義了當前UUT測試需要的測試資源。一個UUT測試程序對應一個“測試資源需求描述文件”。文件格式如圖2所示。

?


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

?


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

?


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

  儀器初始化過程及初始化完成后各函數的調用次序如圖5所示。

?


3.2 自動測試項目各函數的調用次序
  自動測試項目各函數的調用次序如圖6所示。

?


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

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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 日本一区二区在线视频| 久久久亚洲国产| 国产婷婷一区二区三区| 久久青草精品视频免费观看| 日韩视频精品在线| 色婷婷精品国产一区二区三区| 国产精品免费福利| 久久婷婷国产精品| 日本丰满少妇黄大片在线观看| 国产欧美日韩综合精品| 国产999在线观看| 久久99久久久久久| 日韩中文av在线| 国产99久久久欧美黑人| 日韩欧美国产免费| 欧美激情网友自拍| 91精品国自产在线观看| 日本欧美国产在线| 亚洲一区不卡在线| www.午夜精品| 91精品国产99久久久久久| 欧美在线中文字幕| 国产欧美日韩91| 久久五月天综合| 日韩精品―中文字幕| 日韩中文字幕不卡视频| 欧美成人中文字幕| 国产精品av一区| 国产精品视频永久免费播放| 91精品视频免费看| 国产一区视频免费观看| 久久久亚洲国产| 日本视频一区在线观看| 久热国产精品视频| 日韩中文字幕不卡视频| 久久91精品国产91久久久| 国产精品亚洲美女av网站| 日韩中文在线视频| 亚洲在线视频福利| 日本不卡一区二区三区在线观看| 久久视频国产精品免费视频在线|