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