摘 要: 介紹了一種基于GPRS自動抄表系統(tǒng)的解決方案,詳細闡述了系統(tǒng)組成的層次結構,、模塊設計和實現方法,,并對系統(tǒng)實現的功能進行了闡述。該方案實現了實時抄表、定時抄表,、電費管理和檔案管理等功能,,與傳統(tǒng)的抄表技術相比,極大地提高了效率,。
關鍵詞: GPRS,;網絡;自動抄表,;模塊設計;電費管理
隨著計算機技術,、通信技術和網絡技術的發(fā)展,,電力部門的自動抄表技術也經歷了從無線傳感網,、電力載波抄表,、基于GSM網絡的抄表技術[1],發(fā)展到現今的基于GPRS網絡的遠程抄表技術,,使抄表技術越來越趨于智能化和自動化,。
1 系統(tǒng)概述
GPRS是在GSM基礎上發(fā)展起來的一種分組交換的數據承載和傳輸方式,與GSM自動抄表技術相比,,GPRS在數據業(yè)務的承載和支持上更具有先進性和實用性[2],。
(1)資源利用率高。GPRS引入了分組交換的傳輸模式,,使得采用電路交換模式的GSM傳輸數據方式發(fā)生了根本性的變化,,GPRS可以更有效地利用無線網絡信道資源,特別適合突發(fā)性,、頻繁的小流量數據傳輸,。
(2)傳輸速率高。相對于GSM的9.6 kb/s的訪問速度而言,,GPRS擁有171.2 kb/s的訪問速度,,GSM需要10 s~30 s的連接時間,而GPRS只需要3 s~4 s就可以訪問到相關請求,。
(3)費用低,。GSM按連接時間計費,而GPRS按照數據流量計費,。
(4)全面支持IP協(xié)議和X.25協(xié)議,。GPRS支持因特網上應用最廣泛的IP協(xié)議和X.25協(xié)議。
1.1 GPRS遠程自動抄表系統(tǒng)的組成
GPRS遠程自動抄表系統(tǒng)由客服,、GPRS模塊,、抄表終端、EDA9060模塊和電表組成,。采集終端實時采集用戶的用電數據,,通過GPRS將數據匯集到服務器[3],。
(1)客服:運行集中抄表系統(tǒng),由無線Medom通過GPRS網絡與抄表終端相連,,客服要配置一個固定的IP地址與互聯(lián)網出口,。
(2)抄表終端:收集電表數據并傳送到數據中心,連接客服與電表,。
(3)電表:計量并顯示用戶的用電情況,,將用電信息傳輸到GPRS采集器。
(4)EDA9060模塊:能通過RS-485接口接收主計算機,、主控制器等的數字量輸入,,轉換成繼電器觸點輸出信號,可控制交流接觸器,、開關等,,并將開關狀態(tài)等開關量輸入信號返回到計算機。系統(tǒng)結構圖如圖1所示,。
1.2 系統(tǒng)層次結構設計
系統(tǒng)的層次結構由數據采集控制層,、網絡傳輸層、數據處理層和用戶數據層四部分組成,。
(1)數據采集控制層:位于客戶的設備現場,,由遠程測控模塊負責完成對變電所內所有數據采集及各種開關的分、合監(jiān)測與控制,。
(2)網絡傳輸層:負責采集控制層數據,,無差錯地傳輸到數據處理層。網絡拓撲方式可根據現場選定,,包括星型結構,、總線型結構和混合型結構。
(3)數據處理層:負責數據的采集,、處理,、備份操作,同時將客戶監(jiān)控操作轉化為設備控制命令,。
(4)用戶數據層:將數據處理層分析數據以友好的方式呈現給客戶,,接受客戶對系統(tǒng)的控制操作。
2 系統(tǒng)功能模塊設計
本系統(tǒng)運用模塊化的編程思想,,模塊化編程易于程序功能的擴展,。系統(tǒng)功能分為若干個模塊,每個模塊完成一個子功能,,模塊之間盡量做到高內聚,、低耦合[4]。
2.1 數據采集流程圖
本系統(tǒng)采用結構化程序設計方法,利用VB程序設計語言,提高了代碼重復利用率,,同時也便于調試排錯,。結構化程序設計是DIJIKSTRA E W在1965年提出的,它的主要觀點是采用自頂向下,、逐步求精的程序設計方法,,使用三種基本控制結構來構造程序,任何程序都可由順序,、選擇,、重復三種基本控制結構構造。VB是一種基于對象的程序設計語言,,具有結構化程序設計的三種結構,,即順序結構、選擇結構和循環(huán)結構,。無線抄表系統(tǒng)數據采集流程圖如圖2所示,。
2.2 系統(tǒng)主要過程設計
利用函數過程來組織程序實現模塊化,函數由函數返回值,、函數名或形參表以及函數定義組成[5],。主要函數如下:
Public Function ZhFDataDeal(Longer As Long, ArrZhF()
As Byte, Type_TF As String, CJZDAddr_TF As Integer,
DbAddr_TF As String, Parameter1 As Variant,
Parameter2 As Variant) As Boolean
Public Function ReadDataH(Addr As Integer,
SelectHour As Integer, IDnum As String) As Boolean
Public Sub SaveData(AddrTemp As Integer,
HourSave As Integer)
Public Sub SendDataGPRS(DtuId As String, ByeData()
As Byte, WaitTime As Single, GprsReturn As Integer)
Public Function Authority(QXusercode As String,
QXcode As String) As Boolean
Public Sub SaveDbRunTemp(dbAddrTemp As String,
DBPDName As String, SLName As String)
2.3 系統(tǒng)關鍵變量設計
VB應用程序由若干函數過程組成,,變量在過程中是必不可少的,,作為系統(tǒng)的核心組成,本系統(tǒng)在編程中定義了關鍵變量[6],,主要程序代碼如下:
"建立GPRS連接
Public ConnectState As Boolean "連接狀態(tài)
Public Pos As Integer "端口索引個數
Public myLocalIP As String "暫存服務器的IP
Public GPRSLong As Long "GPRS返回的數據長度
Public Arr() As Byte "GPRS返回的數據存放的數組
Public PlngTCPLocalPort As Long "TCPServer監(jiān)聽的端口
Public strDeleTCPClient As String "要刪除的客戶端,
用myApartClient分隔
"初始化采集信息
Public Type CJZDconfig "采集終端結構
Addr As Integer "采集終端地址
Name As String "采集終端配電名稱
Num As Integer "下掛電表個數
IPID As String "通信用IP或ID
CommunicateState As Boolean "通信成功標志
End Type
"進行數據庫連接,獲取本地或已連接的一個資源的網絡名稱
Declare Function WNetGetConnection Lib "mpr.dll" Alias "
WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal
lpszRemoteName As String, cbRemoteName As Long) As Long
Public ConWuCheng As Connection "連接數據庫
Public UserCode As String "編號
Public PassWord As String "密碼
Public DatabaseName As String "數據庫名稱
"數據處理部分,定義轉發(fā)命令的返回數據的分配情況
Public Type DataCmdTransfer
Time_Read As String "讀電表時間
Date_Read As String "讀電表日期
DBState_Read As Byte "讀電表運行狀態(tài)
DWState_Read As Byte "讀電網狀態(tài)字
ZXYG_Read As Double "讀正向有功總電能
ZXWG_Read As Double "讀正向無功總電能
P_Read As Double "總有功功率
Q_Read As Double "總無功功率
Data9060_Control As Byte "讀9060控制回讀
Data9060_State As Byte "讀9060輸入量
Data9060_Write As Boolean "寫9060成功
End Type
"操作權限
Public Auth As Boolean "是否有權限
3 系統(tǒng)功能的實現
GPRS自動抄表系統(tǒng)的核心部分是系統(tǒng)軟件,,它遵循DL/T645部標通信規(guī)約,并有擴展性[7],。抄表軟件系統(tǒng)數據庫為SQL Server2000,,運行于Windows2000/XP、2003等操作系統(tǒng),,易于使用,。系統(tǒng)能夠實現整點數據自動采集(采集電能值)、自動定時數據采集(采集電表運行參數和電網狀態(tài))和手動抄表功能(手動采集電表的所有數據項),,并能實現數據統(tǒng)計及歷史數據查詢功能,。點擊桌面上的“撥號連接”,待任務欄中的通知區(qū)域顯示“撥號網絡現已連接”時,,再進入程序,,啟動程序后顯示系統(tǒng)運行主界面如圖3所示。
系統(tǒng)在自動抄表時采集電表的電能值,、電表運行參數和電網狀態(tài)值,。在采集過程中首先通過給采集終端發(fā)送一個讀配置命令來驗證是否在線,如果采集終端收到了這個讀配置命令,則不進行任何操作,,否則對GPRS模塊進行復位操作,。系統(tǒng)將一天分成24次進行采集(每小時采集一次),便于進行查詢與分析,。系統(tǒng)在每個整點的15 min時發(fā)送讀配置命令,, 22 min時發(fā)送廣播校時命令, 30 min時發(fā)送采集電表運行參數和電網狀態(tài)命令,,45 min時發(fā)送采集電能命令,。采集終端在整點時自動采集電表的電能值,并將數據進行存儲,,方便用戶對歷史數據的查詢和對照,。
本系統(tǒng)通過數據采集終端對不同電表及電量計量設備進行各種電參數的采集,并通過GPRS通信方式將數據傳輸到采集服務器的數據中心,。數據中心處理所有數據,,并可形成各種報表打印,方便查看電表的運行情況及電能值,,實現了實時抄表,、定時抄表、電費管理和檔案管理等功能,,提高了工作效率,,降低了企業(yè)運行成本。
參考文獻
[1] 秦紅梅.基于CAN總線的電力集中抄表系統(tǒng)[J].現代電子技術,,2009,,32(06):104-105.
[2] 羅詩風,顏永紅,,周繼輝.基于GPRS的數控機床遠程監(jiān)控系統(tǒng)[J].微計算機信息,,2008,24(34):164-165.
[3] 趙建軍.基于計數,、傳輸模塊的電力自動化抄表系統(tǒng)[J].電力自動化設備,,2004,24(06):83-85.
[4] 戴佩榮.遠程電能計量管理系統(tǒng)設計[D].哈爾濱:哈爾濱理工大學,,2007.
[5] 金湘力.全球定位系統(tǒng)在電力電站中的應用[J].電力系統(tǒng)通信,,2005,26(03):56.
[6] 張愷,,李祥珍,,張晶,等.自動抄表系統(tǒng)應用模式的探討[J]. 電網技術,,2008,,25(05):42-43.
[7] 張亞強.基于GPRS網絡的無線數據通信系統(tǒng)的設計與實現[D].濟南:山東大學,,2006.