住宅小區(qū)自動(dòng)電能計(jì)費(fèi)系統(tǒng)的研制
關(guān)鍵詞:電能計(jì)費(fèi)系統(tǒng) 分級(jí)通信 通信中繼器 電能數(shù)據(jù)采集器
長(zhǎng)期以來(lái),供電管理部門(mén)對(duì)用戶電量的統(tǒng)計(jì)一直是在人工抄表的基礎(chǔ)上進(jìn)行的,工作量大,直接影響供電部門(mén)的工作效率。隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展,自動(dòng)電能計(jì)費(fèi)系統(tǒng)應(yīng)運(yùn)而生。小區(qū)內(nèi)的住戶數(shù)量較多,甚至成千上尤,因此數(shù)據(jù)采集單元數(shù)目較多,它們與計(jì)算機(jī)之間的通信必須采用多級(jí)分級(jí)通信模式。本文介紹基于分級(jí)通信模式的住宅小區(qū)自動(dòng)電能計(jì)費(fèi)系統(tǒng)的實(shí)施方案。
一、系統(tǒng)構(gòu)成
系統(tǒng)的結(jié)構(gòu)如圖1所示。系統(tǒng)采用分級(jí)通信方式,計(jì)算機(jī)和32個(gè)89C51單片機(jī)之間采用RS-485半雙工接口。MAX232實(shí)現(xiàn)將RS-232接口信號(hào)電平轉(zhuǎn)化為T(mén)TL電平。MAX483為+5V供電的RS-485接口的差分信號(hào)收發(fā)器,可以將TTL電平轉(zhuǎn)化為RS-485的差分接口信號(hào)形式或進(jìn)行相反方向的轉(zhuǎn)換。每一個(gè)89C51單片機(jī)承擔(dān)計(jì)算機(jī)和32個(gè)數(shù)據(jù)采集器89C52之間通信的中繼任務(wù)。采用不同的口線分別控制89C51與計(jì)算機(jī)、數(shù)據(jù)采集器之間的通信。89C51和數(shù)據(jù)采集器89C52之間也采用RS-485半雙工接口,由MAX483實(shí)現(xiàn)兩種信號(hào)格式的轉(zhuǎn)換。89C52單片機(jī)構(gòu)成數(shù)據(jù)采集器,通過(guò)T0和T1完成1個(gè)住宅單元2戶脈沖電度表的脈沖量的采集,從而進(jìn)行電度量的換算。RS-485接口支持多級(jí)通信,允許總線上掛接32個(gè)驅(qū)動(dòng)器,因此通過(guò)分級(jí)管理,計(jì)算機(jī)可連接3232=1024個(gè)數(shù)據(jù)采集器,也就是10242=2048個(gè)用戶的用電量的采集。如果在中間再增加1級(jí)89C51作為中繼器,可以將用戶數(shù)目擴(kuò)大32倍,滿足一般住宅小區(qū)的實(shí)際應(yīng)用要求。
二、硬件連接電路
1.RS-232與RS-485之間的電路連接
RS-232接口信號(hào)格式轉(zhuǎn)換成RS-485差分接口信號(hào)格式的電路連接如圖2所示;通信中繼器的電路連接如圖3所示。
圖3所示通信中繼器的連接電路中,89C51和計(jì)算機(jī)之間、89C51和數(shù)據(jù)采集之間用1根雙絞線進(jìn)行半雙工通信,分時(shí)實(shí)現(xiàn)發(fā)送和接收。由于使用1個(gè)串行口進(jìn)行通信,為了避免發(fā)信號(hào)混亂,用P1.6控制1#MAX483的發(fā)數(shù)據(jù)允許位DE;用P1.7控制2#MAX483的發(fā)數(shù)據(jù)允許位DE。接收數(shù)據(jù)總是不同時(shí)進(jìn)行,按先接收計(jì)算機(jī)發(fā)送的地址,再發(fā)送地址給數(shù)據(jù)采集器,最后接收數(shù)據(jù)采集器發(fā)送過(guò)來(lái)的數(shù)據(jù)順序進(jìn)行。采用多級(jí)通信方式,數(shù)據(jù)格式為11位,按先后順序分別是:1位起始位、8位數(shù)據(jù)位、第9位用于識(shí)別發(fā)送或接收的是地址還是數(shù)據(jù)。每個(gè)通信中繼單元有一個(gè)惟一的地址,分別為0~31,由接在P1口的撥動(dòng)開(kāi)關(guān)的設(shè)置來(lái)惟一確定。
2.電能數(shù)據(jù)采集器的組成
連接電路如圖4所示。電能數(shù)據(jù)采集器計(jì)量電度的脈沖信號(hào)來(lái)自電能計(jì)量的專用集成電路芯片的脈沖輸出端,通過(guò)光電耦合和施密特觸發(fā)器整形后送至單片機(jī)89C52計(jì)數(shù)輸入端T0和T1,采集每個(gè)住宅單元的2戶脈沖電度表輸出的脈沖量。T0和T1設(shè)置為方式2,初值為0FFFFH。當(dāng)T0中斷申請(qǐng),在溢出中斷服務(wù)程序中完成脈沖的計(jì)數(shù)和電量的遞增。為了配合用電收費(fèi)制度的改革(即用電為高峰用電期、低峰用電期和正常用電期),須對(duì)用電量進(jìn)行實(shí)時(shí)統(tǒng)計(jì)(而不是定時(shí)的計(jì)算);同時(shí)為了保證電量采集和顯示的精度,在軟件設(shè)計(jì)中對(duì)用電量的計(jì)算分為1度位和0.1度位,采取了分別遞增的措施,原因如下:
當(dāng)電度表常數(shù)和脈沖常數(shù)確定后,通過(guò)計(jì)算可得1度電對(duì)應(yīng)電度表輸出的脈沖數(shù)K為常數(shù),則0.1度電對(duì)應(yīng)電度表輸出的脈沖數(shù)為K/10,即有K/10個(gè)脈沖到來(lái),因K/10不一定正好為整數(shù),若舍去小數(shù)或?qū)π?shù)進(jìn)行進(jìn)位取整,必然產(chǎn)生累計(jì)誤差。
分別遞增的方法如下:T0(或T1)每檢測(cè)到1個(gè)脈沖的下跳沿,TL0(或TL1)溢出中斷1次,在中斷服務(wù)程序中對(duì)K/10值寄存器和K值寄存器分別減1。K/10值寄存器減到0時(shí),0.1度值寄存器遞增0.1度,并對(duì)K/10值寄存器重新置初值;K值寄存器減到0時(shí),度值寄存器遞增1度,并對(duì)K值寄存器和K/10值寄存器重新置初值。這樣在電量為整度時(shí),累計(jì)誤差將為0。
TL7705CP為電源檢測(cè)電路。數(shù)據(jù)采集器使用住戶220V電源供電,當(dāng)線路停電采集器工作電壓由+5V降到4.75V以下時(shí),系統(tǒng)復(fù)位,即由原來(lái)的高電平變?yōu)榈碗娖?,在外部中?輸入端產(chǎn)生下降沿即外部中斷請(qǐng)求信號(hào);在中斷服務(wù)程序中將89C52內(nèi)部RAM中的總電量和K/10值寄存器、K值寄存器內(nèi)容在電源電壓消失前的一段很短時(shí)間內(nèi)存入串行EEPROM 24C02中,以備重新來(lái)電時(shí)將總電量和脈沖量取出。89C52的P1口外接撥動(dòng)開(kāi)關(guān),用于惟一確定電能數(shù)據(jù)采集器的地址。設(shè)置外部中斷0的中斷優(yōu)先級(jí)為高優(yōu)先級(jí)。
三、通信工作流程及部分程序框圖
1.通信工作流程
(1)計(jì)算機(jī)首先發(fā)送通信中繼單元的地址0。
(2)32個(gè)通信中繼器均接收這個(gè)地址,然后和自己的地址(由P1口的撥動(dòng)開(kāi)關(guān)惟一確定)比較,只有地址相等的通信中繼器,發(fā)送數(shù)據(jù)采集器的地址才為0。
(3)地址為0的數(shù)據(jù)采集器將T0和T1采集的總電量先后發(fā)送給通信中繼單元,通信中繼單元再將接收的數(shù)據(jù)發(fā)送給計(jì)算機(jī)。
(4)重復(fù)第(3)步,直到將32個(gè)數(shù)據(jù)采集器的64個(gè)數(shù)據(jù)全部發(fā)送給計(jì)算機(jī)。
(5)計(jì)算機(jī)發(fā)送通信中繼器的地址1。重復(fù)第(2)、(3)、(4)步,直到將32通信中繼器的32322=2048個(gè)數(shù)據(jù)全部發(fā)送給計(jì)算機(jī),本次通信結(jié)束。
2.程序框圖
(1)電能數(shù)據(jù)采集器
在數(shù)據(jù)采集器中,分為主程序和4個(gè)中斷服務(wù)程序。4個(gè)中斷源分別是電源掉電引起的外部中斷0、T0和T1的溢出中斷、串行中斷。4個(gè)中斷源中,外部中斷0設(shè)置為高優(yōu)先級(jí)中斷,其余3個(gè)為同級(jí)的低優(yōu)先級(jí)中斷。當(dāng)這3個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),中斷的貴州省順序是:定時(shí)器0溢出中斷、定時(shí)器1溢出中斷和串行口中斷。
主程序主要完成T0、T1和串行口的初始化,從24C02串行EEPROM中讀取在電源電壓消失前的一段很短時(shí)間內(nèi)存入的總電量和K/10值寄存器、K值寄存器的計(jì)數(shù)值。
T0和T1中斷服務(wù)程序中完成脈沖的計(jì)數(shù)和電量的遞增。詳細(xì)內(nèi)容在上面已作詳述。
外部中斷0中斷服務(wù)程序中將89C52內(nèi)部RAM中的總電量和K/10值寄存器、K值寄存器在電源電壓消失前的一段很短時(shí)間內(nèi)存入串行EEPROM中,以備重新來(lái)電時(shí)將總電量和脈沖量取出。如圖5所示為數(shù)據(jù)采集器串行通信的框圖。
主程序比較簡(jiǎn)單,主要進(jìn)行串行口的初始化、開(kāi)中斷、等待串行口中斷有產(chǎn)生。中斷服務(wù)程序框圖如圖6所示。
結(jié)束語(yǔ)
本設(shè)計(jì)方案不僅適用于住宅小區(qū)自動(dòng)電能計(jì)費(fèi)系統(tǒng),其設(shè)計(jì)思想同樣適用于賓館、糧倉(cāng)、工業(yè)過(guò)程檢測(cè)等多點(diǎn)數(shù)據(jù)采集的系統(tǒng),具有廣闊的應(yīng)用前景。
電度表相關(guān)文章:電度表原理
評(píng)論