馮秋平,方 強
(廣東省計量科學研究院,廣東 廣州 510405)
現(xiàn)代測試儀器的智能化、集成化對自動測試提出了迫切的需求,儀器與計算機的融合也促進了自動測試的發(fā)展。測試校準機構在日常工作中逐步開發(fā)了針對不同被測儀器的自動測試系統(tǒng),但大多是單系統(tǒng)和封閉式的[1],不能被其他儀器所使用。而自動測試系統(tǒng)的發(fā)展方向是通用化、開放性,并且已經成為測試系統(tǒng)的主要指標[2-3]。因此開發(fā)一個開放式的自動測試系統(tǒng),實現(xiàn)不同類型儀器的共享平臺,對于測試校準機構是十分有意義的。
開放式測試管理系統(tǒng)的設計思想是:在一個通用平臺系統(tǒng)硬件結構搭建完畢后其功能可根據(jù)需要擴充,測試系統(tǒng)的功能由系統(tǒng)軟件決定,實現(xiàn)多種儀器的測試功能[4-5]。具體實現(xiàn)方法為:以數(shù)據(jù)庫管理為系統(tǒng)平臺,實現(xiàn)不同類型儀器測試過程自動化,并完成測試輔助信息和輔助功能的管理。系統(tǒng)主要功能包括測試輔助信息管理、測試過程管理、測試資源管理3部分。
(1)測試輔助信息管理。所謂測試輔助信息是指與測試行為本身有聯(lián)系的或者用來界定測試數(shù)據(jù)的一些信息。包括測試標定日期、測試標定儀器類型、儀器序列號、客戶信息、環(huán)境溫濕度等。
(2)測試過程管理。數(shù)據(jù)庫平臺根據(jù)被測試儀器的型號和待測試的功能,調用對應的測試程序,執(zhí)行測試過程,并把測試結果寫進數(shù)據(jù)庫。
(3)測試資源管理。所謂測試資源是指不同型號被測試儀器的對應測試程序、測試參數(shù)數(shù)據(jù)、測試結果數(shù)據(jù)、儀器功能描述文件以及為方便管理這些數(shù)據(jù)而設置的其他輔助文件的集合。測試資源管理是開放式測試系統(tǒng)的一個輔助工具,是為使用者增添新型儀器或者刪除現(xiàn)存儀器的相關測試資源而設計的。通過這個工具可以不斷地擴充和修正儀器測試資源,達到在一個平臺上實現(xiàn)多種類型儀器自動測試的功能。
圖1所示是封閉式測試軟件的結構圖。自動測試程序根據(jù)被測儀器的具體測試流程編制,運行時接受接口模塊的輸入數(shù)據(jù)和數(shù)據(jù)庫或數(shù)據(jù)文件模塊的原始數(shù)據(jù),測試結果送入數(shù)據(jù)庫或數(shù)據(jù)文件模塊保存,同時送入報表管理模塊生成報表。該系統(tǒng)的輸入輸出接口、自動測試程序都是專用的,使用者不能修改。
開放式測試系統(tǒng)的軟件結構和封閉測試系統(tǒng)的軟件構成上有較大的差別。結構如圖2。與圖1比較,主要區(qū)別如下:
(1)動態(tài)加載模塊。根據(jù)被測儀器的型號和功能在系統(tǒng)運行中動態(tài)加載測試過程對應的測試程序和測試中間參數(shù)。
(2)文件管理模塊。開放式測試系統(tǒng)的必備功能模塊,目的是方便使用者根據(jù)需要管理被測儀器型號的測試資源。
(3)被測儀器資源庫管理模塊。在開放式測試系統(tǒng)中,管理不同型號被測儀器的測試資源的模塊。對于任一種型號的被測儀器,其資源至少包括測試程序、測試參數(shù)、測試數(shù)據(jù)等文件,測試資源也可根據(jù)需要調整資源內容。
因工作需要,針對NI公司的不同型號的數(shù)據(jù)卡,開發(fā)了開放式的自動測試標定系統(tǒng)。專業(yè)實驗室可以根據(jù)需要,添加不同信號儀器的測試資源,從而實現(xiàn)多類型儀器的自動測試和標定功能。數(shù)據(jù)庫選擇Microsoft Access 2003,編程工具為LabVIEW 7.1,主控計算機為NI PXI 8106。
自動測試標定軟件是為完成不同型號儀器測試標定過程自動化,并保存相關輔助信息而開發(fā)的軟件系統(tǒng)。其主要功能包括標定儀器信息管理、測試標定流程自動執(zhí)行、測試標定資源管理、標定數(shù)據(jù)實時顯示、歷史數(shù)據(jù)查詢、測試報告生成等。
由于輔助模塊的設計千差萬別,可以根據(jù)需要自由設計,以下主要說明開放式測試系統(tǒng)的典型功能模塊。
3.3.1 動態(tài)加載模塊
動態(tài)加載模塊是開放式測試系統(tǒng)設計的關鍵,它根據(jù)輸入輸出模塊接受的信息,在執(zhí)行測試程序的過程中加載自動測試程序。動態(tài)加載的源程序如圖3。動態(tài)加載模塊有3個輸入?yún)?shù),為儀器型號、程序名、測試過程中間參數(shù)。其中測試過程中間參數(shù)作為被加載的測試程序的輸入?yún)?shù)。1個有輸出參數(shù),即測試結果數(shù)據(jù),其數(shù)據(jù)由被加載的測試程序輸出。圖3中標號1、2、3分表為子函數(shù)1、子函數(shù)2、子函數(shù)3。
子函數(shù)1:Open VI Reference,返回一個指向子程序、用戶控件或者全局變量的參考值,參考值由名字字符串或者路徑字符串指定。
子函數(shù)2:Call By Reference Node,調用由參考值確定的子程序、用戶控件或者全局變量,參考值的接口定義必須與子函數(shù)1的輸入?yún)?shù)4一致。
子函數(shù)3:Close Reference,關閉參考值。
3.3.2 文件管理模塊
文件管理模塊是開放式測試系統(tǒng)的一個必備工具,其功能是在被測試儀器資源庫中增加新儀器資源。自動測試標定軟件的文件管理模塊使用“Tab Control”控件和事件驅動機制實現(xiàn)了人機交互功能?!癟ab Control”的人機界面如圖4所示,其不同的屬性頁完成相應的功能,介紹如下:
(1)“儀器型號”屬性頁根據(jù)圖4中“新儀器型號”控件的內容,建立圖2中所示的測試資源,包括新儀器資源文件夾的建立、新數(shù)據(jù)庫文件生成等內容。為了在程序運行過程中根據(jù)用戶的輸入動態(tài)地創(chuàng)建數(shù)據(jù)庫和各種信息表,測試標定程序利用了ADO和ADOX技術。ADOX是對ADO對象和編程模型的擴展,它在標準ADO對象里增加了Catalog、Table、Column、Index、Key、Group、User、Procedure、View 等 9個對象[6-7],通過對這些對象的操作可以達到操作數(shù)據(jù)庫的目的。動態(tài)創(chuàng)建數(shù)據(jù)庫的代碼如圖5所示。首先打開ActiveX自動化對象的一個引用ADOX._Catalog,然后通過對該對象的屬性和方法操作,建立數(shù)據(jù)庫,之后關閉引用?!癙rovider=Microsoft.Jet.OLEDB.4.0;”語句指明被創(chuàng)建數(shù)據(jù)庫的引擎,“Data Source=”后的語句指明數(shù)據(jù)庫的路徑和名稱。
(2)“標定項目”屬性頁的界面如圖6。在圖6中須要填寫新增儀器的子功能名稱、對應的測試程序名稱、標定程序名稱和測試過程需要加載的參數(shù)表名稱。“確定”按鍵根據(jù)圖6填寫的內容創(chuàng)建新增儀器的“標定項目列表”。在數(shù)據(jù)庫中動態(tài)添加表的代碼如圖7,首先打開一個自動化對象,其類型為ADODB._Connection,連接的數(shù)據(jù)庫由ConnectionString的值確定。然后把該連接的參考值賦給另外一個ADOX._Catalog對象的“ActiveConnection”屬性,至此已經連接并打開了一個儀器的數(shù)據(jù)庫,可以進行添加表的操作。為了添加一個表到數(shù)據(jù)庫中,首先在已經創(chuàng)建的ADOX._Catalog對象中選擇“Tables”屬性,并選擇“添加項目”的方法為數(shù)據(jù)庫添加一個表。添加表操作完成后依次關閉表對象、連接對象和Catalog對象。圖7中使用了Create table子程序完成了表的創(chuàng)建,創(chuàng)建表的過程與數(shù)據(jù)庫的創(chuàng)建類似,只不過打開的ActiveX自動化對象的類型是ADOX._Table。
(3)“標定內容”屬性頁的界面如圖8,其功能是完成測試參數(shù)表的創(chuàng)建。對應圖6中的每一個測試參數(shù)表名稱,文件管理模塊須要根據(jù)圖8的內容創(chuàng)建一個對應的測試參數(shù)表。由于不同儀器的測試內容及參數(shù)千差萬別,因此測試參數(shù)表的表頭也由用戶自己制定。
(4)“標定記錄”屬性頁的界面如圖9,其功能是完成“標定記錄表”的創(chuàng)建,“標定記錄表”存儲測試標定結果數(shù)據(jù)。
(5)在所有表格創(chuàng)建完成后,文件管理模塊根據(jù)圖10的內容復制用戶指定測試和標定程序文件到圖4創(chuàng)建的資源文件夾。測試程序和標定程序的輸入輸出接口必須與動態(tài)加載模塊加載的測試流程接口一致。定義如下:輸入?yún)?shù)是String型二維數(shù)組,接收測試參數(shù)數(shù)據(jù)表的數(shù)據(jù);輸出參數(shù)是String型二維數(shù)組,輸出測試結果數(shù)據(jù)。
建設開放式自動測試系統(tǒng)是節(jié)約測試系統(tǒng)開發(fā)成本,提高開發(fā)效率的有效途徑,是提高綜合測試能力重要方法。該項目開發(fā)的自動測試標定系統(tǒng)在實際校準工作中達到了很好的效果,證明了系統(tǒng)的設計是合理可行的。但是系統(tǒng)的文檔管理功能對使用者要求較高,使用者需要具備編寫測試程序的能力,這是項目后續(xù)改進的內容。
[1]朱崇全,俞應華,姚晶晶.現(xiàn)代計量技術中檢定/校準過程自動化及其發(fā)展 [J].現(xiàn)代測量與實驗室管理,2005,13(2):12-13.
[2]劉記彬,何玉珠,劉金琨.基于Linux的通用自動測試軟件平臺的設計與實現(xiàn) [J].電子測量技術,2009,32(1):70-81.
[3]羅 錦,孟 晨,楊鎖昌.開放式自動測試系統(tǒng)研究[J].自動化與儀器儀表,2005(2):65-67.
[4]劉世軍,楊瑞青,李 鵬.自動測試系統(tǒng)通用平臺的設計[J].電光系統(tǒng),2005(3):34-37.
[5]陳 渝,秦開宇.一種自動測試系統(tǒng)軟件的開放式架構設計與實現(xiàn)[J].中國測試技術,2007,33(6):96-125.
[6]周 榮,丁金華,李明穎,等.在LabVIEW中利用ADO技術動態(tài)創(chuàng)建數(shù)據(jù)庫 [J].大連輕工業(yè)學院學報,2005,24(3):207-210.
[7]劉 玉,董志斌,吳建軍,等.基于ADO技術的LabVIEW訪問數(shù)據(jù)庫的方法[J].國外電子測量技術,2003(增刊):55-66.
[8]徐洪安,費仁元,王 民.用ADO構建LabVIEW中的數(shù)據(jù)庫訪問接口 [J].北京工業(yè)大學學報,2003,29(2):138-140.