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