蘇州市計量測試研究所 孫睿陽
基于Visual Studio和SQL Server的自動化計量測試平臺的開發(fā)
蘇州市計量測試研究所 孫睿陽
本文介紹了基于Visual Studio軟件和SQL Server數(shù)據(jù)庫管理系統(tǒng),采用功能模塊化的思想,設(shè)計并實(shí)現(xiàn)了對可編程計量儀器進(jìn)行自動化測試的系統(tǒng)平臺。與傳統(tǒng)的人工計量過程相比,自動化計量測試平臺有測量快速、計算準(zhǔn)確、無人工引入誤差等優(yōu)點(diǎn),適用于重復(fù)、復(fù)雜并采用可編程接口設(shè)備的計量流程,具有較強(qiáng)的實(shí)用性和推廣性。
自動化;計量;測試;平臺;Visual Studio
目前的計量測試工作主要是由人工來操作儀器,一些計量工作流程重復(fù)繁雜,再加上操作人員的水平不同,人工操作很容易出錯。隨著計算機(jī)和互聯(lián)網(wǎng)技術(shù)的進(jìn)步,最近十幾年來,儀器設(shè)備之間的通訊控制方式有了很大的提升。
在計量領(lǐng)域中,很多被檢設(shè)備和計量標(biāo)準(zhǔn)器都有可編程的通訊接口,儀器之間通過通訊接口發(fā)送指令,幾乎可以完成所有的計量測試工作。因此,我們開發(fā)了自動化計量測試平臺,在測試平臺上,可以為不同種類、不同型號的儀器開發(fā)各自獨(dú)立的自動化測試程序。經(jīng)過一段時間的研發(fā),自動化計量平臺的基本功能已經(jīng)實(shí)現(xiàn),在此基礎(chǔ)上,我們完成了數(shù)字多用表、信號發(fā)生器、網(wǎng)絡(luò)分析儀等設(shè)備常見型號儀器的自動化計量程序的開發(fā)工作,這同時也證明了平臺的穩(wěn)定性和實(shí)用性。
本自動化測試平臺主要有兩個方面的功能:
1.1 在本平臺搭建的架構(gòu)上,對可編程儀器進(jìn)行自動化計量測試程序的開發(fā);
1.2 執(zhí)行已經(jīng)編寫好的、存儲在數(shù)據(jù)庫中的儀器自動化計量流程,并且生成測試報告。
如圖1,本平臺主要有5個功能模塊組成:設(shè)備管理模塊、流程設(shè)置模塊、用戶界面模塊、數(shù)據(jù)管理模塊、對外接口模塊。
這5個模塊互相獨(dú)立又相輔相成,共同實(shí)現(xiàn)了儀器設(shè)備、驅(qū)動的管理,計量流程的編寫和執(zhí)行,儀器計量信息和測量點(diǎn)的添加,不確定度的計算和數(shù)據(jù)修約,證書報告的生成和數(shù)據(jù)保存以及與外界程序如OA系統(tǒng)的對接等功能。
下面對這5個主要模塊的功能進(jìn)行逐一介紹。
圖1 系統(tǒng)組成圖
根據(jù)可編程儀器自身不同的通訊接口,自動化測試平臺選用不同的通訊線纜,主要包括GPIB,串口,以太網(wǎng),USB等類型的總線。這些線纜用來連接被檢儀器、計量標(biāo)準(zhǔn)器和安裝有自動計量程序的計算機(jī)等設(shè)備。
在總線的基礎(chǔ)上,是測量和控制服務(wù)層。測量和控制服務(wù)層包含靈活的設(shè)備底層命令,用于硬件設(shè)備和軟件之間連接,VISA(Virtual Instrumentation Software Architecture)標(biāo)準(zhǔn)就實(shí)現(xiàn)了這樣的功能,負(fù)責(zé)硬件和軟件之間的通訊。VISA標(biāo)準(zhǔn)獨(dú)立于所使用的儀器總線,所以,無論是使用GPIB,串口,以太網(wǎng)還是USB等總線,VISA都提供了標(biāo)準(zhǔn)的函數(shù)庫和儀器進(jìn)行通訊,從而保證了總線之間的互換性。
SCPI(Standard Commands for Programmable Instruments)標(biāo)準(zhǔn)是一套用于控制可編程測量儀器的標(biāo)準(zhǔn)語法和命令,可用于GPIB,串口,以太網(wǎng),USB等類型總線。目前,大部分可編程儀器的指令都符合SCPI標(biāo)準(zhǔn)[1]。
在自動計量測試平臺中,按照儀器的類別、型號,分別給被檢儀器和計量標(biāo)準(zhǔn)器建立儀器驅(qū)動庫。根據(jù)可編程儀器的說明手冊,查找各編程指令(如SCPI指令),編寫各自的驅(qū)動程序,實(shí)現(xiàn)儀器的各種功能,如復(fù)位,設(shè)置參數(shù),輸出電壓,取出讀數(shù)等。
例如,在多功能校準(zhǔn)源校準(zhǔn)數(shù)字多用表的計量程序中,分別給多功能校準(zhǔn)源和數(shù)字多用表編寫了功能驅(qū)動程序。多功能校準(zhǔn)源的驅(qū)動程序中包括如下功能函數(shù):初始化、復(fù)位、測量功能選擇和設(shè)置、輸出打開、輸出關(guān)閉等;數(shù)字多用表的驅(qū)動程序中包括如下功能函數(shù):初始化、自檢、清零、復(fù)位、測量功能選擇和設(shè)置、讀取數(shù)據(jù)、計算最大允許誤差等。因?yàn)閿?shù)字多用表型號眾多,不同廠家、不同型號多用表的準(zhǔn)確度、分辨力、儀器指令等有所不同,所以,不同型號多用表的驅(qū)動程序可能不一樣,需要單獨(dú)編寫。
這里使用的編程環(huán)境是Visual Studio 2013,編程語言是C#[2],在儀器驅(qū)動程序文件中引用了KEYSIGHT公司IO 程序庫套件中的Ivi.Visa.Interop.dll文件,用來和硬件設(shè)備進(jìn)行通訊。
此外,各個儀器的驅(qū)動程序中,還可以記錄該儀器其他一些必要的信息。如在5700A多功能校準(zhǔn)源校準(zhǔn)34401A數(shù)字多用表的程序中,5700A和34401A各個測量點(diǎn)的量程、最大允許誤差或不確定度等指標(biāo)信息,均以DataTable的數(shù)據(jù)形式記錄在各自的驅(qū)動程序中,在計量過程中這些信息可以被用來進(jìn)行不確定度計算、符合性判定等功能。
除了各個設(shè)備所屬的驅(qū)動程序以外,計量平臺中還有一些公共的數(shù)據(jù)處理程序。如不確定度計算程序、不確定度結(jié)果的修約程序、計量單位轉(zhuǎn)換程序等。這些公共程序適用于所有計量校準(zhǔn)過程。
流程設(shè)置模塊的作用是為了方便直觀地設(shè)計、表示真實(shí)的計量測試流程。這里,我們采用了圖形化(樹狀圖)的表示形式。
流程圖中,每一個方形框圖表示儀器驅(qū)動中的一個特定功能,程序執(zhí)行到某個方形框圖時,即執(zhí)行相應(yīng)儀器驅(qū)動中的功能驅(qū)動代碼。另外,如需編輯某個方形框圖對應(yīng)的功能驅(qū)動,在方形框圖中可以直接跳轉(zhuǎn)到驅(qū)動代碼的編輯界面進(jìn)行代碼的查看和修改,非常實(shí)用和方便。
流程圖的執(zhí)行規(guī)則采用從上到下、從左到右的執(zhí)行順序。執(zhí)行流程時,執(zhí)行過的方形框圖會變顏色來提示執(zhí)行進(jìn)度。
程序開發(fā)者可以按照一定的規(guī)則,設(shè)計和配置出符合要求的流程圖。圖2是用多功能校準(zhǔn)源計量數(shù)字多用表流程圖中的一部分。
除了表示儀器的相關(guān)功能之外,方形框圖還有控制流程執(zhí)行順序等系統(tǒng)功能。如圖2中的流程圖中,有實(shí)現(xiàn)流程循環(huán)、條件判斷、彈出對話框等功能的框圖。和設(shè)備的驅(qū)動函數(shù)一樣,每個方形框圖可以配置輸入?yún)?shù)和返回參數(shù)。
樹狀流程圖類似于LabVIEW軟件的圖形化設(shè)計界面,而方形框圖類似于LabVIEW中的子VI。這樣,計量流程用樹狀流程圖表示,清晰明了,每個方形框圖內(nèi)的儀器功能用C#代碼實(shí)現(xiàn),功能強(qiáng)大且靈活,從而把圖形化和文本化這兩種編程方式的優(yōu)點(diǎn)結(jié)合到了一起,大大增強(qiáng)了自動校準(zhǔn)平臺的易用性。
圖2 校準(zhǔn)數(shù)字多用表的計量流程截圖(部分)
自動化計量測試平臺的用戶分為2類:普通用戶和開發(fā)用戶,以平臺的登錄賬號來區(qū)分,普通用戶和開發(fā)用戶的使用權(quán)限不同。
普通用戶可以使用“登錄”,“產(chǎn)品計量”,“產(chǎn)品報告”等用戶界面。
在“產(chǎn)品計量”界面中,用戶可以完成被檢儀器的全部計量流程。首先,用戶選擇或填寫被檢儀器、用于計量的標(biāo)準(zhǔn)器、計量方案等信息,信息填寫完整后開始執(zhí)行計量流程。程序執(zhí)行中,每一個測量項(xiàng)目的測得值、最大允許誤差、計算出的測量不確定度、判定結(jié)果都會以表格形式即時地顯示在軟件界面上。如果遇到測量值超差或者其他異常情況,程序會跳出對話框提示用戶重新測試或終止程序等操作;測試中如需要更換儀器之間的接線方式,程序也會跳出對話框提示用戶。程序執(zhí)行完成后,生成計量報告。在“產(chǎn)品報告”界面中,用戶可以看到已計量設(shè)備的證書信息。
開發(fā)用戶除了普通用戶可以使用的界面外,還有“設(shè)備管理”,“計量設(shè)計”等程序開發(fā)、維護(hù)界面。
“設(shè)備管理”界面中,開發(fā)用戶可以添加儀器類別、儀器型號、編輯儀器各個功能的驅(qū)動。
“計量設(shè)計”界面中,開發(fā)用戶可以按照計量規(guī)程或規(guī)范的要求,把被檢儀器和標(biāo)準(zhǔn)器的各個功能驅(qū)動進(jìn)行整合,配合一定的流程控件,設(shè)計出各種計量測試流程,再把計量流程和被檢儀器進(jìn)行綁定。此外,開發(fā)用戶還可以給每個被檢儀器寫入常用的計量測試點(diǎn)。
以上用戶界面的功能以菜單欄和任務(wù)標(biāo)簽頁面的形式來表示,用Visual Studio開發(fā)環(huán)境結(jié)合DevExpress控件的方式來實(shí)現(xiàn)。圖3為軟件中用戶界面的菜單欄和部分功能標(biāo)簽。
圖3 用戶界面中的菜單欄和部分功能標(biāo)簽
數(shù)據(jù)管理模塊采用了SQL Server數(shù)據(jù)庫,該模塊是其余模塊運(yùn)行的數(shù)據(jù)傳輸基礎(chǔ)。
設(shè)備管理模塊中的設(shè)備驅(qū)動,流程設(shè)置模塊中的計量流程、測量點(diǎn),用戶界面模塊中計量信息、計量報告,都是在數(shù)據(jù)管理模塊中進(jìn)行存儲和讀取的。
本單位目前已有一套計量OA系統(tǒng)軟件[3],在該OA系統(tǒng)中可以實(shí)現(xiàn)原始記錄的錄入、檢定/校準(zhǔn)證書的生成、打印證書等功能。為了充分利用已有OA系統(tǒng)的功能,也為了實(shí)現(xiàn)本單位原始記錄和證書格式的統(tǒng)一,自動化計量測試平臺需要和OA系統(tǒng)中的相關(guān)功能進(jìn)行對接。對外接口模塊就實(shí)現(xiàn)了這樣的功能。
自動化計量測試平臺把采集或計算出測量結(jié)果、測量點(diǎn)的上下限、測量不確定度、訂單的客戶信息等數(shù)據(jù),傳輸?shù)絆A系統(tǒng)相應(yīng)的程序接口,在OA系統(tǒng)中生成儀器的原始記錄和計量證書;同樣,計量平臺也可以從OA系統(tǒng)中讀取、檢索原始記錄模板、計量報告等信息。
對外接口模塊,采用了Web Service技術(shù),該技術(shù)可以在軟件之間傳輸或接收數(shù)據(jù)信息,實(shí)現(xiàn)了軟件之間的功能對接。
以上介紹的自動化計量測試平臺的五個模塊,組成了可編程儀器完整的開發(fā)、檢定/校準(zhǔn)功能。用此計量平臺對數(shù)字多用表、網(wǎng)絡(luò)分析儀、信號發(fā)生器的多個常見型號儀器進(jìn)行多次校準(zhǔn),所得測量值、測量不確定度等數(shù)據(jù)與本所人工校準(zhǔn)所得數(shù)據(jù)進(jìn)行比對,結(jié)果符合預(yù)期要求。與傳統(tǒng)的人工計量過程相比,本自動化計量測試平臺有測量快速、計算準(zhǔn)確、無人工引入誤差等優(yōu)點(diǎn),適用于重復(fù)、復(fù)雜并采用可編程接口設(shè)備的計量流程,具有較強(qiáng)的實(shí)用性和推廣性。
[1]秦凡,韋高.基于VISA庫及SCPI命令的儀器程控測量[J].陜西:現(xiàn)代電子技術(shù),2011 (11):118-120.
[2]Karli Watson.C#入門經(jīng)典(第六版)[M].北京:清華大學(xué)出版社,2014.
[3]張俊峰,宮寧生.計量檢測原始記錄電子化系統(tǒng)設(shè)計與實(shí)現(xiàn)[J].北京:中國計量,2013(3):101-103.
孫睿陽(1984-),男,工程師,主要研究方向:時間頻率、無線通信、自動校準(zhǔn)軟件的開發(fā)等,主要從事電磁學(xué)及無線電計量工作。