張素莉,潘 欣,佘向飛
(長春工程學(xué)院計算機(jī)技術(shù)與工程學(xué)院,長春 130012)
?
一種基于移動互聯(lián)網(wǎng)的智能電表數(shù)據(jù)收集系統(tǒng)
張素莉,潘欣,佘向飛
(長春工程學(xué)院計算機(jī)技術(shù)與工程學(xué)院,長春 130012)
摘要:生產(chǎn)企業(yè)的用電信息是構(gòu)成電力大數(shù)據(jù)的重要組成部分,本文提出了一種基于移動互聯(lián)網(wǎng)的企業(yè)用電信息數(shù)據(jù)收集系統(tǒng);本系統(tǒng)通過GPRS網(wǎng)絡(luò)連接智能電表,利用多組線程結(jié)構(gòu)維護(hù)與智能電表的數(shù)據(jù)交互過程,進(jìn)而實現(xiàn)數(shù)據(jù)的存儲。實際運行表明本系統(tǒng)可以同時與多臺電表保持可靠的連接并獲得數(shù)據(jù),利用本系統(tǒng)可以用較低的成本維護(hù)管理大量智能電表,收集企業(yè)的用電信息為電力大數(shù)據(jù)提供數(shù)據(jù)基礎(chǔ)。
關(guān)鍵詞:智能電表;移動網(wǎng)絡(luò);大數(shù)據(jù);TCP/IP;通訊協(xié)議
0引言
隨著工業(yè)的不斷發(fā)展以及電力基礎(chǔ)設(shè)施的建設(shè),我國的供、用電體系正在發(fā)生巨大的變化[1];越來越多的用電負(fù)荷變化要求更加精確地監(jiān)控企業(yè)的用電情況,進(jìn)而提出合理的電量使用與節(jié)能策略[2]。收集用企業(yè)的用電信息是電力大數(shù)據(jù)的重要組成部分,促進(jìn)電力大數(shù)據(jù)的應(yīng)用,可以更好地服務(wù)節(jié)能減排、服務(wù)經(jīng)濟(jì)社會發(fā)展、服務(wù)資源節(jié)約型和環(huán)境友好型企業(yè)建設(shè)因此意義十分重大[3]。
使用智能電表可以較為便利地對用電設(shè)備的數(shù)據(jù)進(jìn)行抄讀并監(jiān)控企業(yè)用電情況[4]。對從智能電表獲取數(shù)據(jù)的研究,目前主要集中在利用數(shù)據(jù)傳輸芯片/嵌入式系統(tǒng)讀取數(shù)據(jù)上[5-6]。雖然采用這種方式可以較快地傳輸數(shù)據(jù),但是如果絕大多數(shù)中小企業(yè)沒有設(shè)備和人力資源來專門維護(hù)數(shù)據(jù)收集設(shè)備與服務(wù)器,這就給大量收集用電信息帶來了困難。
本文提出了一種基于移動互聯(lián)網(wǎng)的企業(yè)用電實時數(shù)據(jù)收集系統(tǒng)(A smart meter data collection system based on mobile Internet, SMDCS)。本系統(tǒng)通過GPRS網(wǎng)絡(luò)連接智能電表,利用多組線程結(jié)構(gòu)維護(hù)與智能電表的數(shù)據(jù)交互過程,進(jìn)而實現(xiàn)數(shù)據(jù)的存儲。實際運行表明本系統(tǒng)可以同時穩(wěn)定的與多臺電表保持可靠的連接并獲得數(shù)據(jù),通過本系統(tǒng)可以利用移動通信網(wǎng)絡(luò)同時收集多臺智能電表的數(shù)據(jù),但對智能電表的位置、傳輸線路沒有嚴(yán)格要求,從而降低了收集智能電表數(shù)據(jù)所帶來的維護(hù)和技術(shù)成本,利用本系統(tǒng)可以用較低的維護(hù)成本管理大量智能電表,收集企業(yè)的用電信息,為電力大數(shù)據(jù)提供數(shù)據(jù)基礎(chǔ),具有實際應(yīng)用價值。
1一種基于移動互聯(lián)網(wǎng)的用電實時數(shù)據(jù)智能收集系統(tǒng)
1.1系統(tǒng)總體結(jié)構(gòu)
基于移動互聯(lián)網(wǎng)的用電實時數(shù)據(jù)智能收集系統(tǒng)的總體結(jié)構(gòu)如圖1所示,智能電表連接在生產(chǎn)企業(yè)的用電設(shè)備線路上,實時對線路的用電情況進(jìn)行記錄;電表還通過GPRS移動網(wǎng)絡(luò)連接服務(wù)器,服務(wù)器端的SMDCS系統(tǒng)利用GDW376.1《電力用戶用電信息采集系統(tǒng)通信協(xié)議:主站與采集終端通信協(xié)議》與智能電表進(jìn)行交互,服務(wù)器中包含以下內(nèi)容:
1)電表數(shù)據(jù)交互Service:每一個電表專門建立一個Service為其服務(wù),其中包含數(shù)據(jù)接收線程和數(shù)據(jù)發(fā)送線程;數(shù)據(jù)接收線程根據(jù)協(xié)議接收智能電表數(shù)據(jù)發(fā)送的報文,解析報文并存儲到數(shù)據(jù)庫之中;數(shù)據(jù)發(fā)送線程可根據(jù)協(xié)議向智能電表發(fā)送控制命令,控制電表的數(shù)據(jù)上報和運行方式;運行任務(wù)腳本,接收控制命令按照用戶需求發(fā)送控制數(shù)據(jù)報。
2)系統(tǒng)監(jiān)視線程:負(fù)責(zé)監(jiān)視各個數(shù)據(jù)發(fā)送/接收線程的狀態(tài),停止不活動的Service并回收其所占用的資源。
圖1系統(tǒng)的總體結(jié)構(gòu)
3)主服務(wù)線程:接收TCP/IP連接,并啟動相關(guān)Service。
通過以上3種對象SMDCS系統(tǒng)實現(xiàn)與智能電表的交互,實現(xiàn)用電實時數(shù)據(jù)的收集。系統(tǒng)收集到的數(shù)據(jù)存儲在數(shù)據(jù)庫之中,展示和操作界面一方面將收集到的數(shù)據(jù)以圖表化進(jìn)行展示,另一方面可以接收用戶的操作命令進(jìn)而控制SMDCS系統(tǒng)發(fā)送控制數(shù)據(jù)報,來對電表的行為進(jìn)行管理。
1.2線程啟動順序和狀態(tài)變化
1.2.1主服務(wù)線程處理流程
利用SMDCS系統(tǒng)啟動Service網(wǎng)絡(luò)服務(wù)之后系統(tǒng)可以與智能電表交互,系統(tǒng)得首先啟動主服務(wù)線程和系統(tǒng)監(jiān)視線程。主服務(wù)線程的啟動和運行的流程如下:
主服務(wù)線程處理流程(IPAddress, Port)
Begin
1: socket=建立并綁定面向連接的TCP/IP協(xié)議socket套接字。
2:while(true){ 循環(huán)執(zhí)行線程內(nèi)容
3:mySocket=socket.Accept(); 阻斷式等待TCP/IP連接
4:service=new service(); 新建一個網(wǎng)絡(luò)服務(wù)
5:service.AcceptT=new 數(shù)據(jù)接收線程(myScoket);對于此連接建立數(shù)據(jù)收/發(fā)線程
6:service.SendT=new 數(shù)據(jù)發(fā)送線程(myScoket);
7:serviceList= serviceList∪service; 加入服務(wù)列表之中
End
主線程啟動之后,開始阻斷式的監(jiān)聽網(wǎng)絡(luò)當(dāng)有TCP/IP連接接入的時候建立網(wǎng)絡(luò)服務(wù)對象service,啟動接收和發(fā)送線程,并將service加入服務(wù)列表之中。service根據(jù)的狀態(tài)如圖2所示。
圖2網(wǎng)絡(luò)服務(wù)對象的狀態(tài)變化
1.2.2電表登錄處理算法
在接到智能電表的連接之后,網(wǎng)絡(luò)服務(wù)對象處于準(zhǔn)備狀態(tài),在該狀態(tài)僅能接收數(shù)據(jù)不能發(fā)送數(shù)據(jù);當(dāng)接到電表的登錄數(shù)據(jù)報之后,網(wǎng)絡(luò)服務(wù)對象執(zhí)行以下登錄:
Begin (數(shù)據(jù)報, service, serviceList)
1.Address[]=數(shù)據(jù)報.Address[]; 獲得數(shù)據(jù)報的地址信息
2.ID=根據(jù)Address[] 中的地址獲得數(shù)據(jù)庫中電表ID
3.If( ID==-1) Then
4.將Service至于停止?fàn)顟B(tài)
6.Else
7.if serviceList中已有一個s其s.ID==ID then
8.將 s 至于停止?fàn)顟B(tài),將同ID的服務(wù)停止
9.End if
10.service.ID=ID,將service置于活動狀態(tài)
11.service.Script=LoadScript(ID)加載對應(yīng)ID的腳本
End
在網(wǎng)絡(luò)服務(wù)處于活動狀態(tài)之后,系統(tǒng)可以與智能電表進(jìn)行數(shù)據(jù)報的交互;每次收/發(fā)數(shù)據(jù)均會重新將service置于活動狀態(tài),當(dāng)service長時間不收/發(fā)數(shù)據(jù)會轉(zhuǎn)變?yōu)榭臻e狀態(tài),當(dāng)service長時間處于空閑狀態(tài)將轉(zhuǎn)變?yōu)橥V範(fàn)顟B(tài);處于停止?fàn)顟B(tài)的service不能收發(fā)數(shù)據(jù)并將被系統(tǒng)回收。系統(tǒng)監(jiān)視線程負(fù)責(zé)監(jiān)視serviceList中所有的服務(wù)狀態(tài),它每隔一定的時間T遍歷整個serviceList對每個服務(wù)service做以下工作:1)如果service處于停止?fàn)顟B(tài),回收其所占用資源并清除出serviceList。2)將所有活動狀態(tài)service置為空閑狀態(tài)。3)將空閑狀態(tài)service置為停止?fàn)顟B(tài)。4)將運行中出現(xiàn)錯誤的service置為停止?fàn)顟B(tài)。
通過主服務(wù)線程、數(shù)據(jù)收/發(fā)線程、系統(tǒng)監(jiān)視線程SMDCS可以同時連接和管理多組智能電表。
1.3規(guī)約的解析
數(shù)據(jù)接收和發(fā)送線程的工作就是構(gòu)造或者解析智能電表發(fā)出的數(shù)據(jù)報,解析數(shù)據(jù)報程序的類結(jié)構(gòu)如圖3所示。
圖3 數(shù)據(jù)報解析程序的結(jié)構(gòu)
SMDCS主要包含以下內(nèi)容來進(jìn)行數(shù)據(jù)報的處理:
1)ByteBlock類是一種可以自包含的類,包括BCD碼到二進(jìn)制編碼轉(zhuǎn)換、數(shù)據(jù)位操作、字節(jié)數(shù)組和內(nèi)部數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)序列化等數(shù)據(jù)基礎(chǔ)操作。
2)如圖3所示GDW376.1的報文是由多組字節(jié)構(gòu)成的模塊組成的,每一個ByteBlock對應(yīng)于報文中的一個功能模塊;通過ByteBlockList組合多個ByteBlock實現(xiàn)報文的表達(dá)。報文中各個功能區(qū)均有特殊的要求或數(shù)據(jù),如固定位置必須是68H、地址信息必須包含3個字段,這些特殊要求均由ByteBlock的子類Head、LengthL、Conrtol、Address、Tail、LinkData和CheckSum來表達(dá),ByteBlockList利用類的多態(tài)性來容納各個功能區(qū)的數(shù)據(jù)。
3)數(shù)據(jù)接收線程利用ReceiveMessageParser將智能電表傳輸?shù)臄?shù)據(jù)流轉(zhuǎn)換為ByteBlockList供系統(tǒng)使用,而數(shù)據(jù)發(fā)送進(jìn)程通過SendMessageCreater構(gòu)造特定需要的命令并轉(zhuǎn)換為字節(jié)數(shù)組傳輸給智能電表。
通過規(guī)約解析,SMDCS系統(tǒng)可以將智能電表上報的數(shù)據(jù)內(nèi)容讀取出來,并根據(jù)內(nèi)容插入數(shù)據(jù)庫之中。
2實現(xiàn)與系統(tǒng)運行
SMDCS系統(tǒng)通過C#實現(xiàn),后臺數(shù)據(jù)庫采用SQL Server。該系統(tǒng)可以連接生產(chǎn)企業(yè)的智能電表并進(jìn)行數(shù)據(jù)交互,其后臺服務(wù)程序運行界面如圖4所示。
圖4 系統(tǒng)運行 如圖4所示系統(tǒng)同時連接7臺智能電表,通過發(fā)送控制命令獲取電表中所記錄的數(shù)據(jù)內(nèi)容,這些數(shù)據(jù)內(nèi)容存儲在SQL Server數(shù)據(jù)庫之中,可以為監(jiān)控電能使用情況提供數(shù)據(jù)支持。
3結(jié)語
通過本系統(tǒng)可以利用移動通信網(wǎng)絡(luò)同時收集多臺智能電表的數(shù)據(jù),智能電表只要具備GPRS網(wǎng)絡(luò)、支持用電信息采集系統(tǒng)通信協(xié)議就可以將數(shù)據(jù)上傳至服務(wù)器;該方式對于智能電表的位置、傳輸線路沒有嚴(yán)格要求,因此極大地降低了維護(hù)管理成本,使得廣大中小企業(yè)也可應(yīng)用智能電表收集數(shù)據(jù),為電力大數(shù)據(jù)提供數(shù)據(jù)基礎(chǔ),因此本系統(tǒng)具備較好的應(yīng)用前景。
參考文獻(xiàn)
[1] 陳朋朋,郭忠文,潘洪華,等. 電力監(jiān)測軟件系統(tǒng)核心構(gòu)件設(shè)計與實現(xiàn)[J]. 計算機(jī)應(yīng)用, 2008,28:366-368.
[2] 韓紹甫,杜樹新.電能質(zhì)量監(jiān)測系統(tǒng)設(shè)計與實現(xiàn)[J].電子自動化設(shè)備, 2006, 26(4): 80-83.
[3] 閆龍川,李雅西,李斌臣,等.電力大數(shù)據(jù)面臨的機(jī)遇與挑戰(zhàn)[J].2013,11(4):1672-4844.
[4] 曾乃鴻.電子式電能表發(fā)展現(xiàn)狀和展望[J]. 華東電力,2001(9) : 1-4.
[5] 王忠文, 劉志芳.智能電表集群的數(shù)據(jù)處理算法與應(yīng)用研究[J].信息通信,2013(6):207-208.
[6] 曹時偉, 朱青, 劉宏立.智能電表的數(shù)據(jù)抄讀新方法[J].計算機(jī)應(yīng)用, 2013, 33(5):1248-1250.
A Smart Meter Data Collection System Based on Mobile Internet
ZHANG Su-li, etc.
(SchoolofComputerTechnologyandEngineering,ChangchunInstituteofTechnology,Changchun130012,China)
Abstract:The electricity information of production enterprises is an important part of the power big data. This paper proposes a smart meter data collection system based on mobile internet (SMDCS). This system connects smart meters through GPRS, and store electricity information into database by using the maintain service of multiple threads structure and smart meters interaction. Actual running shows this system can stable keep connection with smart meters, at the same time obtain theirs data. Through this system lots of smart meters can be managed with low cost. The electricity information from factories can be collected to provide data base to power big data.
Key words:smart meter; mobile internet; big data; TCP/IP; communication protocol
文獻(xiàn)標(biāo)志碼:A
文章編號:1009-8984(2016)01-0102-04
中圖分類號:TP393.09
作者簡介:張素莉(1974-),女(漢),吉林四平,博士,副教授
基金項目:吉林省教育廳項目(120120060)
收稿日期:2015-11-16
doi:10.3969/j.issn.1009-8984.2016.01.023
吉林省科技廳項目(20130101179JC-23)
主要研究數(shù)據(jù)挖掘,人工智能。