摘要 從系統(tǒng)的結構、通信程序和管理軟件設計的要點,介紹了一種遠傳水表系統(tǒng)的設計和實現(xiàn)。物業(yè)公司的計算機系統(tǒng)經集中器、采集器可以讀取各個水表的實際數(shù)據(jù),并且由管理軟件實現(xiàn)客戶注冊、計費、生成帳單等功能,建立完整的數(shù)據(jù)庫。
關鍵詞 遠傳水表 采集器 集中器 計費 生成帳單 數(shù)據(jù)庫
0 引言
隨著電子通信與計算機網(wǎng)絡技術的發(fā)展,遠程抄表技術在水、電和煤氣計量方面得以推廣應用。遠程抄表技術的應用能夠有效提高計量管理水平和工作效率。
為適應這個發(fā)展方向,在研制出有線遠傳水表及其數(shù)據(jù)采集器的基礎上,開發(fā)了專用的數(shù)據(jù)集中器,并設計和實現(xiàn)了遠傳水表抄表系統(tǒng)。系統(tǒng)的用戶主要是物業(yè)管理公司。利用這個系統(tǒng),物業(yè)管理公司可以在管理終端遠程采集水表數(shù)據(jù),再結合使用計費管理軟件統(tǒng)一完成數(shù)據(jù)處理、費用結算、打印帳單等功能。
由于系統(tǒng)采取水表、采集器和集中器三級結構、集中器和計算機又可以通過公用電話網(wǎng)遠程通信,因此系統(tǒng)具有良好的伸縮性,其規(guī)??梢葬槍为毜臉怯罨蛘咦≌^(qū)。
1 系統(tǒng)組成
遠程水表抄表由水表、采集器、集中器和計算機組成,見圖1。
圖1 遠程水表抄表系統(tǒng)組成示意圖
在系統(tǒng)中,水表可以是傳統(tǒng)的分散安裝形式,采集器可以按照樓層或者單元來分配安裝,為便于安裝和日常維護,一般固定在弱電豎井的集線箱內。集中器物理位置根據(jù)采集器的布局決定,計算機的物理位置通常為物業(yè)管理公司。
圖1中沿著自下向上的方向,水表通過RS-485接口掛接到采集器;采集器通過RS-485接口掛接到集中器;集中器(內置Modem)則通過公司電話網(wǎng)與計算機連接。
物業(yè)管理公司在計算機端運行通信程序,可以讀取并存儲來自各個集中器的數(shù)據(jù),從而獲得各個水表的讀數(shù);再借助于管理軟件實現(xiàn)客戶注冊、計費和生成帳單等功能。由此實現(xiàn)了一個完整的遠傳水表抄表系統(tǒng)。
2 系統(tǒng)硬件構成
2.1 核心設備
系統(tǒng)的核心設備包括水表、采集器、集中器和計算機。這些設備連同附加的通信設備構成一個網(wǎng)絡。
選用的遠傳水表,與一般常規(guī)水表不同的是具有密封在水表內的采集計數(shù)工作單元。
水表連續(xù)到采集器,一個采集器最多連接16只水表。采集器為一個完整的單片機系統(tǒng),其程序用匯編語言開發(fā),包括有自檢、初始化、測量(定期采集水表數(shù)據(jù),包括工作狀態(tài)和各個水表的讀數(shù))、顯示(8位LCD顯示,循環(huán)顯示掛接的水表讀數(shù)及狀態(tài))和通信(RS-485接口)功能,并負責向水表供電。參數(shù)設置則通過參數(shù)設置開關完成,也可以通過其RS-232通信接口與計算機連接并利用程序來完成。
采集器連接到集中器,一個集中器最多連接64個采集器。集中器為單片機系統(tǒng),定期讀取采集器數(shù)據(jù),包括工作狀態(tài)和采集器數(shù)據(jù),并負責向采集器供電。為了與計算機或者手持抄表器通信,集中器帶有RS-232接口,并集成內置Modem(集中器與計算機通過Modem建立遠程連接有兩種方式,一種是專線連接,另一種是撥號連接。系統(tǒng)中采用了撥號連接。
這些設備互連形成一個網(wǎng)狀系統(tǒng)。在系統(tǒng)實施的時候,根據(jù)節(jié)點的多少采集器和集中器的數(shù)目,保證了系統(tǒng)具有擴展和備用能力。另外,提供手持抄表器作為可選設備,在需要時可以在手動方式下工作:即直接用手持抄表器從集中器讀取數(shù)據(jù),把手持抄表器攜帶回物業(yè)管理公司,再在計算機中運行通信程序讀取手持抄表器中的數(shù)據(jù)。
2.2運行描述
系統(tǒng)運行時,首先需要初始化。初始化工作包括:水表在其連接的采集器中注冊(即用采集器的參數(shù)設置開關設置水表數(shù)目、水表在采集器內地址等,也可以通過計算機連接采集器進行設置);采集器在其連接的集中器中注冊(即通過計算機或者設置開關設置采集器數(shù)目、采集器在集中器內的地址、讀取采集器時間、月末結算日和故障記錄等);集中器則注冊 到運行在計算機上的管理軟件中。經過以上初始化工作,保證每一臺水表、采集器和集中器在系統(tǒng)中都被唯一標識。
初始化完成后,采集器負責水表讀數(shù);集中器則根據(jù)設置的讀取時間讀取采集器數(shù)據(jù),并存儲讀取的實時和月末數(shù)據(jù)。計算機端運行通信程序,在其支持下讀取并存儲集中器數(shù)據(jù)。
3 通信程序設計與實現(xiàn)
水表與采集器、采集器與集中器之間的通信由相應的單片機系統(tǒng)作了處理。系統(tǒng)中還需要處理計算機與集中器的通信、計算機與采集器的通信;另外,使用手持抄表器讀取集中器數(shù)據(jù)時,也需要通信程序支持使得計算機能夠讀取手持抄表器內的數(shù)據(jù)。
3.1 通信規(guī)約
采集器、手持抄表器通過RS-232串行接口與計算機通信;集中器與計算機通信則存在兩種方式,其一是通過RS-232串行接口連接;其二是計算機通過Modem撥號到集中器,計算機作為主站發(fā)起,集中器作為從站、這時還需要相應的撥號程序。
以下示例是計算機讀取集中器的參數(shù)時的約定:
計算機發(fā)送一個連接碼AAH,集中器回送AAH,則連接成功;計算機繼續(xù)發(fā)送一個功能碼BIH(表示將讀取集中器參數(shù),一共14個字節(jié)),集中器回送14個字節(jié)。
在串行通信時,主要參數(shù)設置為:波特率2400bps、無校驗、8個數(shù)據(jù)位、2個停止位。
3.2 串行通信實現(xiàn)
當計算機通過Modem連接到集中器的時候,首先利用撥號程序建立遠程連接。利用程序設計語言編寫撥號程序需要使用AT指令集。以下程序示例一給出撥號及掛斷的程序片斷,其中8307為集中器端的電話號碼,使用的Modem為撥號式Modem,程序設計工具為Visual Basic6.0,Comml為手工串行通信的MSComm控件。
程序示例1:
()
′打開端口
′向Modem發(fā)出撥號指令ATDT
′向Modem發(fā)出掛斷指令ATHO
Comml.Output=“ATHO”&vbCrLf
建立遠程連接后即可以與集中器通信。以下的程序示例二給出計算機讀取集中器數(shù)據(jù)時的通信程序片段:
程序示例2
Private Function cmdShaking click()
Dim av As Variant
′PC發(fā)送功能碼AAH,JZQ返回AAH
OutByte(0)=&HAA
Comml.Output=Outbyte
′讀取一個字節(jié)
If Comml.InBufferCount>0 Then
av=Comml.Input
InByte=(0)=av(0)
′比較
“AAH通信錯誤?!?/P>
GoTo errl
:
′錯誤處理
……
完整的通信程序的框圖如圖2所示。如果需要撥號連接,應先調用撥號程序。
圖2 通信程序框圖
通過通信程序讀取的數(shù)據(jù)可以保存在文本文件或者管理軟件的數(shù)據(jù)庫中。
4 管理軟件設計
4.1 管理軟件功能
通信程序解決了水表讀數(shù)的工作,但實現(xiàn)計費等工作還需要管理其它信息,如:水表對應的房屋號、房屋號對應的客戶等。設計的管理軟件完成以下功能:
① 客戶管理
管理客戶基本信息、房屋號基本信息,并將客戶綁定到房屋號,房屋號綁定到水表。
②計費管理
調用通信程序,抄收水表實時數(shù)據(jù)或者月末數(shù)據(jù)以及水表、采集器和集中器工作狀態(tài);設置用戶水表各初始化參數(shù)及計費設置(水的單價、折扣等);根據(jù)各個水表本次示數(shù)和上次示數(shù)計算差額,形成月帳單;客戶付費時打印為結清的帳單。
③歷史數(shù)據(jù)查詢
查詢特定用戶某月示數(shù)、某月帳單,自動生成打印報表。
④設備管理
集中器注冊管理;采集器、集中器初始化(初始化內容包括采集器、集中器時鐘設置等)。
4.2數(shù)據(jù)庫設計
根據(jù)系統(tǒng)所處理的數(shù)據(jù)量,數(shù)據(jù)庫管理系統(tǒng)選擇了MS Access 2000。所設計的數(shù)據(jù)庫對象主要包括表、視圖和約束。表負責存儲底層數(shù)據(jù),主要設計了存儲水表設置、采集器設置、集中器設置、水表月末數(shù)據(jù)和水表當前數(shù)據(jù)等信息的表。根據(jù)需要增加了約束,例如,記錄水表月末數(shù)據(jù)的表增加了一個用戶約束,即月末數(shù)據(jù)不能重復錄入。視圖則主要針對常用查詢和報表而設計。例如,為生成每月客戶的帳單,設計了基于水表月末數(shù)據(jù)的視圖,計算兩個月之間水表讀數(shù)的差額。
4.3 程序和報表設計
管理軟件設計采用Visual Basic6.0為設計工具 ,設計數(shù)據(jù)輸入界面、查詢界面,并完成數(shù)據(jù)計算。與數(shù)據(jù)庫的連接則利用ADODC控件完成。程序示例三給出了查詢集中器設置信息的代碼片段,其中Adodc0為Adodc控件,通過它連接到Access數(shù)據(jù)庫,
為數(shù)據(jù)庫中的一個表的表名,存儲了集中器設置信息。
程序示例3:
()
“
“
“ 采集器數(shù)目,”&
“ 結算日,”&
“ 日期和時間,”&
“ 集中器安裝位置,”&
“ 備注”&
“ ”
上述查詢返回的結果通過一個DataGrid控件顯示。
報表設計采用Crystal Reports7.0為設計工具。帳單、月報表和年報表等都用Crystal Reports設計,在管理程序中通過VB調用。用它設計的報表,還準備在基于Internet的查詢系統(tǒng)中作為網(wǎng)頁直接調用瀏覽。
5 結束語
系統(tǒng)的實施能夠實現(xiàn)用戶水表的遠程計量。采集器與集中器通信基于RS-485通信方式,傳送距離為1.2km左右,適合于智能小區(qū)的范圍使用。集中器與計算機則借助于公用電話網(wǎng)進行遠程數(shù)據(jù)傳送。
在實際開發(fā)中,第一期設計和開發(fā)針對一所特定樓宇進行。所開發(fā)系統(tǒng)通過了實驗室運行和樓宇試運行。系統(tǒng)中使用了兩個集中器,一個與計算機物理位置相同,直接通過RS-232與計算機連接;另一個通過Modem撥號方式與計算機連接。下一步的優(yōu)化工作則主要包括增加從集中器端向計算機端自動撥號的功能及客戶基于Internet查詢帳單的功能。