陳紅芳,舒 雋
(華北電力大學 電氣與電子工程學院,北京 102206)
智能電能表的標準統一,自動化測試技術日益強盛,電子類設備成本的降低,人員成本的增加,為了提供可靠的產品,減少產品故障率,因此實現自動化測試是科技發(fā)展的方向.就利潤最大化的發(fā)展趨勢.
智能電能表行業(yè)性很強,因此沒有通用的自動測試軟件.只有開發(fā)一套符合智能電能表要求的自動測試系統才能提高產品研發(fā)、測試、生產效率.自動測試系統研發(fā)出來之后,應用與樣機階段,可以把測試人員從繁重的黑盒測試中解脫出來,讓測試人員有更多的時間去分析、研究測試方法,以提高測試效率,提升產品質量,縮短開發(fā)周期.應用與小批生產時可以在同樣多的時間內測試更多的功能,并且更容易發(fā)現不良品,發(fā)現個體差異,或概率性問題.應用與批量生產時可以提高生產效率,減少人工操作,提高產品質量,提高產品交貨合格率.
智能電能表是屬于工業(yè)產品,需要長期可靠穩(wěn)定運行,那么每一個功能都需要經過嚴格的測試.而黑盒測試是不能完全覆蓋,而這種嵌入式產品沒有現成的自動測試軟件.因此我們開發(fā)了一款基于智能電能表產品的自動測試系統.這套系統的特點是:滿足測試方案靈活性需求,用戶自定義測試方案;多種臺體的適應性;多種表計協議的適應性;單機版和網絡版的適應性.此系統需要與多功能電源臺體配合使用,否則使用功能將收到限制.
智能電能表的通信協議共有3萬多條,每一條都要進行測試才能保證產品的可靠性,測試周期很長,并且各功能之間又存在關聯,需要交叉測試,因此測試的復雜度非常高.智能電能表的功能也非常多,主要的功能有:電量、最大需量、瞬時量、時區(qū)時段、顯示、負荷曲線、事件記錄、凍結、合格率、狀態(tài)字等功能.
我們設計開發(fā)的這套系統采用MICROSOFT.NET編程語言.操作系統是:Windows XP.數據庫是:SQL或SQLLite.腳本語言:C#.
這套軟件使用是必須與多功能自動測試臺體配合才能使用.這種臺體需要具有以下的功能:三相電壓、電流可任意調節(jié)大小;相角可任意調節(jié);脈沖常數可以任意設置;頻率可任意調節(jié);臺體具有多功能輸出檢測裝置;臺體能檢測脈沖信號;臺體能檢測時鐘信號;臺體能檢測報警、跳閘信號.臺體的所有操作都可以通過命令方式實現.這樣可以在腳本中隨意控制臺體,并讀取臺體的狀態(tài)和數據.臺體提供通信接口,臺體廠家提供.
我們選用C#語言來做為我們的腳本語言,此語言是微軟公司發(fā)布的一種面向對象的、運行于.NET Framework之上的高級程序設計語言.C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向對象的編程語言.它可以讓我們的測試人員快速地編寫各種腳本語言.正是由于C#面向對象的卓越設計,使它成為我們選用的最佳腳本語言.
腳本語言是為了縮短傳統的編寫-編譯-鏈接-運行過程而創(chuàng)建的計算機編程語言.一個腳本通常是解釋運行而非編譯.因此我們開發(fā)設計的腳本語言也是一樣的具有:簡單、易學、易用的特性.目前腳本語言應用的范圍也是非常的寬,如:DOS,Windows的批處理文件和Unix的shell腳本、游戲中的角色、網頁中的嵌入式教本等等應用范圍非常廣泛,其可靠性也是非常的高.我們開發(fā)的自動測試系統利用腳本來編寫自動測試腳本的優(yōu)點有:
快速開發(fā):腳本語言極大地簡化了“開發(fā)、部署、測試和調試”的周期過程.不需要學習.net開發(fā)工具如何使用,只要學習.net編程技巧,而這些編程技巧在大學時都學過,所以現在只要再進行升華就可以應用了.
容易部署:腳本語言都能夠隨時部署,而不需要耗時的編譯/打包過程.我們設計的腳本開發(fā)提供語法檢查,而編譯、打包是在運行時才進行,由樣機自動測試系統來提供,這樣測試人員在編寫腳本時只需要寫具體的操作流程即可,而并用再進行其它部署.
易學易用:我們開發(fā)的這套系統已經把常用的操作編寫成函數或動態(tài)庫形式,可以在腳本中任意調用.
這套系統的整體框架結構是采用C/S結構,采用多層分級管理結構:物理層、邏輯層、應用層.詳細架構如圖一所示.物理層主要有:電源臺體、智能電能表、PC機、服務器.邏輯層有:通信接口及管理、規(guī)約管理層和數據庫管理層.應用層是與用戶直接操作的界面,應用層提供了用戶管理、臺體管理、項目管理、參數管理、腳本管理、協議管理、數據管理、日志管理等功能.

圖1
通信層首先要對串口、網口進行初始化,只有在通信通道暢通的情況下才能繼續(xù)通信指令操作.對與通信方式上的判斷從以下幾個方面進行判斷.通信方式.通信方式的選擇是根據目的地來選擇.通信目標.即命令類型,命令傳輸的目的地.指令內容.指令內容的判斷,命令是給表計還是臺體的.指令配置信息.指令配置信息是指,指令的執(zhí)行次數,是否需要判斷長度、校驗和、是否需要返回等.當系統接受到信息之后需要根據配置信息進行解析.
規(guī)約管理層包含:DL/T645-2007通信規(guī)約、TCPIP協議、與臺體通信協議等,方便擴充規(guī)約,如:IEC1107、IEC62056等規(guī)約.規(guī)約管理層還負責規(guī)約解析,負責對下發(fā)和接受的指令進行解析.當腳本中需要對表計進行操作時,會先生成一個新的XML文件,在從規(guī)約數據中獲取相關信息完善到XML文件中,得到完整的信息之后,在把指令從通信通道下發(fā)至目的地.根據通信協議標準把下發(fā)的內容轉化成報文形式.當收到命令時再把報文解析成文字或數據.通信解析管理首先要建立通訊鏈路,在建立解析進程,然后管理流程,建立通訊層與解析層的關聯;將信息傳給應用層;處理完之后釋放線程.
數據庫采用的是SQL或SQLLite數據庫,這兩者是完全兼容的,并且SQLLite數據庫是開源的,對于一些小型用戶已經足夠,而對于用戶數量較多的用戶可以選擇SQL數據庫.
應用層主要的功能是管理用戶、用戶權限、臺體管理、項目管理、腳本管理、協議管理的用戶操作界面.
當用戶需要運行腳本時,首先進入腳本運行界面,選擇需要執(zhí)行的腳本,選擇配置參數文件.會調用腳本,把腳本編譯成C#源代碼,再編譯成可執(zhí)行的動態(tài)庫文件.最后再調用可執(zhí)行文件,運行腳本.
腳本運行時,首先把表計信息、臺體信息、默認參數等眾多參數傳入到運行的腳本中,然后連接數據庫,調用臺體信息、項目信息得到表計信息,再執(zhí)行腳本,執(zhí)行腳本時需要調用數據庫管理層、通信解析管理層、解析層和通信層.執(zhí)行完成之后釋放所有的線程,保存數據到數據庫,發(fā)送結束消息,把表計電源斷掉.退出腳本運行狀態(tài)
腳本主要測試表計當前分相電能的走字功能,包括正、反向有無功分相電能和四象限的分相電能.
該腳本走的電流為400%Ib,先走第一象限,分別單獨走A、B、C三相,加電流時,先抄讀表計的時間,延時一段時間(600秒)后,再抄讀表計的時間并掉電流,利用前后兩次的時間差跟理論的功率乘積來計算理論電量.再抄讀當前所走電能跟理論值進行比較.
設備:自動測試臺體、標準源、PC機、局域網
測試點:100%Un,400%Ib.
測試方法:
(1)臺體啟動工作電壓,設置表計額定電壓,額定電流等參數;
(2)顯示本腳本可實現的功能;
(3)表計上額定電壓并延時10秒;
(4)表計執(zhí)行清零操作,并設置相關參數.
(5)設置電流幅值為400%Ib,相位調整為30度.
(6)上ABC相電流.
(7)抄讀表計時間和當前臺體功率.
(8)延時600秒后再掉電流.
(9)抄讀表計時間,根據這兩次的時間差計算理論電量.
(10)抄讀相應電量跟理論值比對.
(11)結束測試,生成測試結果.6.7.3 腳本代碼:電量走字
函數腳本(計算理論電量與實際電量之差,當電量之差小一0.02時即判斷合格,否則判斷不合格):

CompareData(table1,"0001FF00",refer_anerg);//判讀電量是否正確,并輸出結果
整套系統運行之后的主界面如下圖,主要的目錄是:文件(修改密碼、退出)、檔案維護(項目維護、項目表計信息)、自動測試(自動測試、默認參數配置、測試查詢)、腳本管理(腳本編輯、命令編輯、測試項目管理)、設置抄讀(表計設置抄讀、設置抄讀方案、負荷曲線)、系統維護(用戶管理、協議導入、模塊配置、數據庫配置、通信參數配置)、幫助(幫助、關于).圖2是系統正在運行的主界面.

圖2
這套樣機自動測試系統是采用了先進的腳本編寫方式來實現自動測試.腳本編寫最大的好處是靈活.腳本的編寫、修改都非常方便,靈活性很大,腳本編寫好了之后可以無故障連續(xù)運行.利用腳本來進行自動化測試是目前自動測試領域中最先進的方式.
〔1〕王瑩.智能電表/智能能源的技術市場.電子產品世界,2012-07-19.
〔2〕羅秋鳳,肖前貴,楊柳慶.無人機自動檢測系統的設計與實現.儀器儀表學報,2011(1).
〔3〕徐理中,寥述劍.基于ATML的自動測試系統軟件的設計與實現.測試技術,2008(07).
〔4〕黃全安,宋健.AMT控制器自動測試系統設計.測控技術,2012(01).
〔5〕吳建平.淺談C#面向對象編程的重要特性-封裝性、繼承性及多態(tài)性.計算機軟件,2012.