文/王和棟 許棋樟 黃亞志
?
低壓居民抄表集中器通訊協(xié)議測試軟件的設(shè)計與實現(xiàn)
文/王和棟 許棋樟 黃亞志
隨著城市化進(jìn)程的加速及無線通訊技術(shù)的發(fā)展,我國居民的居所朝集中化方向發(fā)展。而無線通訊技術(shù)的發(fā)展為居民的用電計量工具——表計的計量數(shù)據(jù)自動化采集提供了技術(shù)基礎(chǔ)。為此,各大電力公司加大對低壓居民表計自動采集研究的投入。作為自動抄表的一部分,低壓居民抄表集中器主要的功能是采集電表的計量數(shù)據(jù)傳送至自動抄表主站系統(tǒng)。由于集中器由不同的設(shè)備供應(yīng)商提供,在設(shè)備入網(wǎng)前需針對其通訊協(xié)議傳輸報文進(jìn)行檢測,確保數(shù)據(jù)傳送的正確性和完整性。此前沒有專門針對集中器的通訊協(xié)議報文進(jìn)行測試的軟件,主要依靠測試人員使用自動抄表主站系統(tǒng)進(jìn)行測試,該系統(tǒng)結(jié)構(gòu)復(fù)雜,進(jìn)程較多,安裝不便,且該系統(tǒng)面向的是業(yè)務(wù)應(yīng)用人員,對通訊部分的測試問題定位和分析帶來很大的困難,為此,需開發(fā)一套專門針對低壓居民集中器設(shè)備通訊協(xié)議的測試軟件,提高測試的準(zhǔn)確性和效率。
基于以上情況,我們在微軟的.net平臺上開發(fā)了一套基于C/S模式的插件式低壓居民抄表集中器通訊協(xié)議測試系統(tǒng)。該系統(tǒng)以C/S模式為基礎(chǔ),通過主流的可視化開發(fā)工具,采用插件技術(shù),使用面向?qū)ο蟮拈_發(fā)方法開發(fā)基于多線程的單進(jìn)程系統(tǒng)軟件。針對業(yè)務(wù)需求,考慮開發(fā)的系統(tǒng)軟件易用性和面向測試人員的專業(yè)性。
低壓居民抄表集中器的測試由測試人員發(fā)起,通過手工方式向測試軟件發(fā)送通訊協(xié)議測試指令,由測試軟件將指令轉(zhuǎn)化成通訊協(xié)議規(guī)定的報文發(fā)送至集中器,再由集中器返回指令應(yīng)答,最終顯示在測試服務(wù)服務(wù)器上展現(xiàn)報文和分析結(jié)果。集中器設(shè)備與測試軟件通訊的報文分為:檔案參數(shù)設(shè)置、電表檔案增刪改、電表拉合閘控制、數(shù)據(jù)召讀等。測試軟件主要對通訊報文返回的及時性、正確性做初步分析,在測試完成后提供測試結(jié)論錄入、導(dǎo)出測試結(jié)論報表的功能。應(yīng)用場景如圖1所示。
圖1 測試業(yè)務(wù)場景
框架設(shè)計是軟件設(shè)計的核心部分,決定了軟件的質(zhì)量。根據(jù)測試系統(tǒng)的應(yīng)用需求以及被測試設(shè)備的特性,系統(tǒng)主要分成三個層次:第一層為通訊層,與低壓居民抄表集中器進(jìn)行無線連接的通訊、解析報文的部分,這部分主要通訊主要通過GPRS/CDMA以及串口等與集中器保持連接狀態(tài),當(dāng)集中器登錄至測試軟件后,由測試軟件采集集中器的數(shù)據(jù),并將報文進(jìn)行初步的解析;第二層為調(diào)度層,任務(wù)調(diào)度的主要功能是在進(jìn)行多集中器同時測試時由測試人員從界面層或者數(shù)據(jù)庫定時任務(wù)發(fā)起指令,任務(wù)調(diào)度模塊在接收到相應(yīng)測試指令后,通過把指令組合,將指令傳送通過通訊層傳送至被測集中器,并負(fù)責(zé)將通訊返回的報文通過通訊層解析后,傳送至數(shù)據(jù)處理層;第三層為數(shù)據(jù)處理層,數(shù)據(jù)處理層包括界面展現(xiàn)及數(shù)據(jù)庫兩個部分。界面展現(xiàn)部分主要對測試的數(shù)據(jù)進(jìn)行實時的展示,并提供查詢功能。數(shù)據(jù)庫負(fù)責(zé)存儲系統(tǒng)的參數(shù)、測試過程中產(chǎn)生的數(shù)據(jù)以及結(jié)論等的保存和管理。系統(tǒng)的架構(gòu)如圖2所示。
圖2 系統(tǒng)邏輯架構(gòu)圖
根據(jù)低壓居民抄表集中器的需求,在功能上,將系統(tǒng)劃分為7大模塊,如圖3所示。
圖3 測試軟件關(guān)鍵的功能模塊
各個模塊的主要功能:
(1)系統(tǒng)管理模塊。
系統(tǒng)配置模塊包括系統(tǒng)日志的輸出路徑管理、菜單項的管理、用戶登錄賬號和密碼的管理、數(shù)據(jù)庫連接管理等。設(shè)計時考慮可視化,相比之前應(yīng)用系統(tǒng)的數(shù)據(jù)文件的手工設(shè)置的方式,簡單易用。
(2)通訊資源管理模塊。
該模塊主要提供測試軟件所在服務(wù)器的一些參數(shù)的管理功能,包括IP地址、端口號、串口參數(shù)、通訊方式(GPRS/CDMA)等,由測試人員根據(jù)測試的環(huán)境設(shè)置到系統(tǒng)中。
(3)測試檔案管理模塊。
該模塊包括低壓居民抄表集中器、與集中器相級聯(lián)的配變終端的對象建立、參數(shù)設(shè)置、測試完成后的檔案刪除、終端參數(shù)的查詢功能。
(4)手工測試模塊。
手工測試模塊是測試系統(tǒng)的核心模塊,提供居民低壓抄表集中器的上行所有通訊協(xié)議的測試。由測試人員制定測試方案以后,在該模塊提供的測試功能上進(jìn)行測試,主要包括電表檔案的增刪改查、終端參數(shù)的設(shè)置、終端密碼設(shè)置等協(xié)議內(nèi)容,集中器相應(yīng)測試軟件的指令后,根據(jù)通訊協(xié)議的規(guī)定,對報文進(jìn)行解析,并判斷報文存在的問題,提供給測試人員使用。
(5)測試結(jié)論管理模塊。
該模塊根據(jù)通訊協(xié)議的每一項測試內(nèi)容的測試結(jié)果,分為通過和不通過兩個選擇,在測試人員完成測試后,在系統(tǒng)的這個功能模塊進(jìn)行測試結(jié)果的錄入和修改。提供測試結(jié)果導(dǎo)出報表功能,根據(jù)測試報告的需求,可調(diào)整導(dǎo)出報表的格式,輸出報告的結(jié)果。
(6)報文顯示模塊。
該模塊提供測試軟件與集中器之間的按照通訊協(xié)議傳輸?shù)膱笪牡恼故?,包括集中器登錄、心跳、收發(fā)任務(wù)等過程的實時報文顯示,在點擊報文時,可根據(jù)通訊協(xié)議將報文按照通訊協(xié)議的規(guī)定轉(zhuǎn)換成明文,提供給測試人員做進(jìn)一步的分析。
(7)數(shù)據(jù)查詢模塊。
該模塊提供測試的歷史記錄給測試人員備查,包括已完成測試的集中器檔案、報文、報文解析后的結(jié)果、測試結(jié)論等。
(1)插件技術(shù)。
測試軟件使用插件技術(shù),這樣方便開發(fā)期間的代碼管理,保持各個模塊的獨立性,為后期需求變更的維護(hù)帶來很大的方便。程序分為宿主程序及插件程序。宿主程序:構(gòu)建系統(tǒng)框架的主程序,提供各種接口和基本功能用以支持插件程序的運行。插件程序:根據(jù)系統(tǒng)框架所提供的接入標(biāo)準(zhǔn),運行在系統(tǒng)框架上的子程序,具有一定的獨立性。
(2).net可視化開發(fā)平臺。
.net是一個工作平臺,它是一個開發(fā)環(huán)境的基底,能夠編寫單機(jī)桌面窗口程序、web網(wǎng)頁程序,還可以生成安裝程序。特點是編寫代碼過程中,相比其他語言的開發(fā)環(huán)境,有很好的編輯,糾錯提示等功能。系統(tǒng)采用的編程語言C#是由微軟公司專門為.net平臺設(shè)計的語言,它可以讓程序員移植到.net上,且采用了幾種主流語言最優(yōu)秀的特點,并加入了其自己的特性。C#是事件驅(qū)動的,完全面向?qū)ο蟮目梢暬幊陶Z言,我們可以使用集成開發(fā)環(huán)境來編寫C#程序。使用IDE,程序員可以方便地建立、運行、測試和調(diào)試C#程序。
(3)數(shù)據(jù)庫。
軟件開發(fā)項目使用的數(shù)據(jù)庫主要有Oracle、Sybase、SQL Server等數(shù)據(jù)庫。由于測試系統(tǒng)的存儲數(shù)據(jù)量以及經(jīng)濟(jì)角度考慮,系統(tǒng)選用數(shù)Sqlsever2005。SQL Server 2005與微軟的操作系統(tǒng)有較好的兼容性。測試軟件連接數(shù)據(jù)庫采用ODBC技術(shù),ODBC使用層次的方法來管理數(shù)據(jù)庫,在數(shù)據(jù)庫通信結(jié)構(gòu)的每一層,對可能出現(xiàn)依賴數(shù)據(jù)庫產(chǎn)品自身特性的地方,ODBC都引入一個公共接口以解決潛在的不一致性,從而很好地解決了基于數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的相對獨立性。
圖4 檢測軟件功能展示圖
根據(jù)以上所述的系統(tǒng)設(shè)計以及選取的技術(shù)進(jìn)行開發(fā),目前該軟件系統(tǒng)已經(jīng)正式應(yīng)用到某電網(wǎng)公司的集中器入網(wǎng)測試中,該系統(tǒng)運行穩(wěn)定可靠,為該公司現(xiàn)場運行的集中器質(zhì)量提供良好的前提保障。圖4為測試軟件系統(tǒng)的截圖。
基于.net技術(shù)開發(fā)的低壓居民抄表集中器檢測軟件,使用了主流先進(jìn)的計算機(jī)技術(shù)進(jìn)行并行的開發(fā),不但降低了開發(fā)的成本,也為電網(wǎng)公司提供了專業(yè)化的測試軟件,改變了測試人員初期使用業(yè)務(wù)系統(tǒng)進(jìn)行測試帶來的困難。該系統(tǒng)上線至今,運行穩(wěn)定、可靠,大大降低了測試人員定位問題,分析問題的難度,也為后期通訊協(xié)議的修訂提供了數(shù)據(jù)支撐。
作者簡介:王和棟(1984-),男,工程師,碩士研究生,任職于廣州粵能電力科技開發(fā)有限公司,研究方向為電能計量自動化、企業(yè)管理;許棋樟(1987-),男,助理工程師,本科,任職于廣州粵能電力科技開發(fā)有限公司,從事電能表檢測與研究工作;黃亞志(1985-),男,助理工程師,本科,任職于廣州粵能電力科技開發(fā)有限公司,從事電氣工程自動化與研究工作。