遠程抄表系統(tǒng)數(shù)據(jù)采集和轉發(fā)的設計方案
本文主要提出一種小區(qū)電能表自動抄表的系統(tǒng)設計方案。隨著智能化建筑在許多國家應運而生。自動抄表系統(tǒng)是大力發(fā)展中的智能建筑、樓宇自動化的重要組成部分,是家庭自動化的必然,因而日益受到關注。與傳統(tǒng)抄表方式相比,智能抄表系統(tǒng)具有方便快捷、節(jié)省人力物力、提高工作效率、精確度高等優(yōu)點。
系統(tǒng)構成
如圖1所示,自動抄表系統(tǒng)主要由電能表、數(shù)據(jù)采集器、集中器、數(shù)據(jù)傳輸通道和后臺管理服務器等組成;其中電能表主要是在傳統(tǒng)機械式電表基礎上將轉盤適當改造,以便能將其轉動圈數(shù)被數(shù)據(jù)采集器采集轉化為電脈沖數(shù),以達到數(shù)據(jù)采樣的目的;采集器主要完成將電表用電量轉換成電脈沖信號以完成數(shù)據(jù)的采集,同時還具備將采集的數(shù)據(jù)保存、通過CAN總線傳輸給集中器轉發(fā)給后臺管理系統(tǒng)、顯示用戶剩余電度數(shù)以及根據(jù)情況切斷用戶電路等功能。數(shù)據(jù)集中器則是通過CAN總線收集各用戶電表上傳數(shù)據(jù),并通過無線GSM網(wǎng)絡傳送給后臺管理服務器系統(tǒng),同時數(shù)據(jù)集中器亦可將后臺管理服務器各項命令轉發(fā)給對應電表數(shù)據(jù)收集器,并完成相應控制。通過以上功能基本可以實現(xiàn)抄表管理收費一體化等工作。
圖1 系統(tǒng)集成示意圖
數(shù)據(jù)采集器硬件組成
數(shù)據(jù)采集器硬件原理如圖2所示,數(shù)據(jù)采集器主要包括數(shù)據(jù)采集電路、數(shù)據(jù)保存電路以及數(shù)據(jù)傳輸CAN總線節(jié)點電路,同時根據(jù)其他功能擴展(如預付費功能)增加了剩余電度數(shù)顯示以及通過繼電器對用戶電路切斷和接通電路。
圖2 遠程抄表數(shù)據(jù)采集器硬件原理圖
采集器采用單片機89C51,其內部有4KB的ROM,128字節(jié)的RAM以及32個I/O口。P1口與串行器件24C02和顯示、繼電器電路連接。其中的顯示模塊采用串行方式進行通信,分別采用P1.0、P1.1、P1.2模擬時鐘信號線和數(shù)據(jù)信號線。24C02用來存儲用戶電度表不同時段消費電度數(shù)和用戶電度表采集器編號(CAN節(jié)點標號)。P0口主要用來與CAN總線控制器SJA1000相連,用作數(shù)據(jù)線。監(jiān)控電路采用DS1232芯片,它是看門狗定時器,功能是上電和掉電時給89C51、CAN控制器SJA1000產(chǎn)生復位信號;看門狗對系統(tǒng)進行監(jiān)控,防止死機不能恢復。日歷時鐘電路采用時鐘芯片PCF8583完成,由于系統(tǒng)中需要對用電實行分時按峰、谷、平不同時段進行節(jié)計費,因此系統(tǒng)中必須建立不間斷供電(電池供電),以便提供實時鐘。
數(shù)據(jù)采集電路采用開關型霍爾傳感器A44L對加裝過小磁鐵的電表轉盤進行將所轉的圈數(shù)轉化為數(shù)字信號,傳感器A44L工作原理如圖3a所示,集成霍爾開關是由穩(wěn)壓器A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大器C、施密特觸發(fā)器D和OC門輸出E五個基本部分組成。(1),(2),(3)代表集成霍爾開關的三個引出端點。在輸入端(1)輸入電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾發(fā)生器的兩端。根據(jù)霍爾效應原理,當霍爾片處于磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會有一個霍爾電勢差VH輸出,該VH信號經(jīng)放大器放大以后送至施密特觸發(fā)器,使觸發(fā)器整形,成為方波輸送到OC門輸出。當施加的磁場達到“工作點(即Bop)”時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導通,此時,OC門輸出端輸出低電壓,通常稱這種狀態(tài)為“開”。當施加的磁場達到“釋放點(即Brp)”時,觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這時稱其為“關”態(tài),這樣兩次高電壓變換,使霍爾開關完成了一次開關動作。Bop與Brp的差值一定,此差值Bh=Bop-Brp稱為磁滯,在此差值內,Vo保持不變,因而使開關輸出穩(wěn)定可靠。其輸出特性如圖3b和圖3c所示。
圖3 霍爾傳感器工作原理及輸出特性圖
CAN總線采用一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,數(shù)據(jù)長度為8個字節(jié),不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN協(xié)議的一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法可使網(wǎng)絡內的節(jié)點個數(shù)在理論上不受限制,因此非常適合遠程抄表控制系統(tǒng)。CAN總線控制電路如圖2所示,主要由控制器89C51、CAN通信控制器SJA1000、CAN總線驅動收發(fā)器82C250組成,單片機89C51對CA控制器接收到的數(shù)據(jù)進行讀取和數(shù)據(jù)發(fā)送等程序處理,為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和RX0并不直接與82C250的TXD和RXD相連,而是通過高速光耦6N137后與82C250相連,很好地實現(xiàn)了總線上各節(jié)點間的電器隔離。82C250的CANH和CANL引腳各自通過一個5歐姆的電阻與CAN總線相連,起到一定的限流作用,保護82C250免受過流沖擊。CANH、CANL與地之間并聯(lián)了兩個30pF的電容,可以濾除總線上的高頻干擾并起到一定的防電磁輻射的能力。另外,兩根CAN總線輸入端與地之間分別接防雷擊管,起到一定的保護作用。
數(shù)據(jù)采集器軟件設計
主程序流程
數(shù)據(jù)采集器在整個系統(tǒng)中有喂狗、計表、時鐘校時、用戶通斷電、CAN總線數(shù)據(jù)發(fā)送和接收、數(shù)據(jù)存儲與讀取以及顯示等功能,其中喂狗、計表和數(shù)據(jù)存儲及CAN總線數(shù)據(jù)接收分別采用定時終端、計數(shù)中斷和外部中斷實現(xiàn),顯示功能則為預付費功能而備(本文不作要求),CAN總線數(shù)據(jù)發(fā)送采用查詢方式和其他程序功能在主程序中實現(xiàn)。主程序流程如圖4所示。
圖4 主流程序圖
[!--empirenews.page--]
數(shù)據(jù)采集程序說明
數(shù)據(jù)采集是將電表轉盤每轉一圈轉化為一個周期電脈沖,單片機將此脈沖累加,從而測得電表消費度數(shù)。為了避免停電時造成計數(shù)丟失,造成電力公司損失,每計0.1度電時便將累計數(shù)據(jù)保存于24C02中;根據(jù)電度表量程,保存電表計數(shù)數(shù)據(jù)占用3個字節(jié),前2個字節(jié)保存整數(shù)部分,后1個保存小數(shù)部分。同時考慮到24C02擦寫壽命,在24C02中開辟240字節(jié)專門用于存儲電表技術以輪回寫入,防止將數(shù)據(jù)頻繁寫入固定地址而造成損壞。單片機采用定時計數(shù)器中斷進行數(shù)據(jù)采集,以3000r/KWH為例,每轉300圈(0.1度)采樣一次并保存,程序如下:
void count0() interrupt 1 using 2
{
//工作在16位計數(shù)定模式,每計數(shù)300個脈沖中斷一次,晶振使用12Mhz
tl0=0xD4;
th0=0xFE;
DOTCOUNT++;// 記錄小數(shù)點后的數(shù)據(jù),無符號字符型
if(DOTCOUNT>=10){
COUNT++; //記錄整數(shù)部分,無符號整型
DOTCOUNT=0;
}
Write24C02(COUNT, DOTCOUNT,2);//2-表示保存數(shù)據(jù)為電表度數(shù)(1-用電高峰時間段設置)
//在此自程序中完成不同時間段(不同計價)分類存儲。
}
CAN總線數(shù)據(jù)收發(fā)程序說明
數(shù)據(jù)采集器數(shù)據(jù)傳輸內容較為簡單,發(fā)送出去的數(shù)據(jù)主要包括電表度數(shù)(占5個字節(jié)),接收到的數(shù)據(jù)多為命令(1-4個字節(jié)),而CAN總線每次數(shù)據(jù)可傳輸8個字節(jié),因此每數(shù)據(jù)傳輸采用1幀即可完成。本設計采用PeliCAN工作模式(29位表示碼),利用查詢方式發(fā)送數(shù)據(jù),利用外部中斷0接收數(shù)據(jù)。
數(shù)據(jù)的發(fā)送由CAN控制器根據(jù)CAN協(xié)議規(guī)范自動完成。首先CPU必須將要發(fā)送的數(shù)據(jù)報文傳送到CAN控制器發(fā)送緩沖器中,并置位命令寄存器中的發(fā)送請求標志,程序流程如圖5所示。
圖5 數(shù)據(jù)發(fā)送流程圖
數(shù)據(jù)接收采用外部中斷0接收,CAN控制器接收到一幀數(shù)據(jù)后,產(chǎn)生中斷觸發(fā)信號,CPU立即響應,將收到的報文接收到字節(jié)的接收緩沖器,并置位命令寄存器的釋放緩沖區(qū)標志RRB。單片機根據(jù)接收數(shù)據(jù)進行命令解析,并做出相應執(zhí)行。部分程序代碼如下:
void INT0( ) interrupt 0 using 1
{
BYTE Length; // CAN 數(shù)據(jù)長度代碼
BYTE i; //下標
bit FF //0 :標準 CAN幀 1:擴展幀
CANDR=RBF; //地址指向SJA1000接收緩沖區(qū)
ReceiveMessage[0]=CANDAT; // 讀取并保存你幀報文字節(jié)
FF=ReceiveMessage[0]&0x80;
//取出幀格式
Length=ReceiveMessage[0]&0x0F;
//取出報文長度
if(Length>0x08) Length=0x08;
ReceiveMessage[1]= CANDAT; //保存報文標識碼1
ReceiveMessage[2]= CANDAT; //保存報文標識碼2
if(FF){
ReceiveMessage[1]= CANDAT; //保存報文標識碼3
ReceiveMessage[2]= CANDAT; //保存報文標識碼4
}
For(i=0;i< Length;i++) ReceiveMessage[i+3]= CANDAT; //保存幀數(shù)據(jù)
CANCON=0x04 // 釋放接收緩沖區(qū)
}
數(shù)據(jù)集中器設計方案
數(shù)據(jù)收集器主要起到轉發(fā)后臺管理服務器和各節(jié)點間的數(shù)據(jù)傳輸功能,如圖6所示。CAN總線控制器模塊主要用來向各節(jié)點發(fā)送或接收相關數(shù)據(jù),各節(jié)點地址通過程序設置均已被包括在對應報文29位表示碼中,數(shù)據(jù)集中器可以通過廣播或點對點向各用戶節(jié)點發(fā)送命令數(shù)據(jù)。由于用戶節(jié)點比較多,數(shù)據(jù)集中上傳比較多,因此需要較多的數(shù)據(jù)接收緩沖區(qū)保存,然后通過GSM轉發(fā)給后臺管理服務器完成遠程數(shù)據(jù)交流,因此采用有512字節(jié)內存的單片機STC89C51對CAN控制器和GSM模塊進行控制。單片機控制GSM模塊在Text模式下接收手機短信,短信的收發(fā)是通過向串口以文本模式發(fā)送AT指令來實現(xiàn)的,其編碼轉換格式簡單,并有較高的轉換速率。
圖6 數(shù)據(jù)集中器示意圖
結束語
本文主要以電能表為例介紹了遠程抄表系統(tǒng)數(shù)據(jù)采集和轉發(fā)的設計方案,在此基礎上只要稍加修改就可開發(fā)出不同抄表系統(tǒng),如預付費電表系統(tǒng)、遠程燃氣抄表系統(tǒng)、遠程水表抄表系統(tǒng)等。