??? 摘? 要: 介紹了一種基于令牌存儲技術(shù)的采集器設(shè)計(jì)方法,,使用此方法設(shè)計(jì)的采集器,不僅保證采集到的數(shù)據(jù)準(zhǔn)確,、安全保存和傳輸,,而且當(dāng)系統(tǒng)出現(xiàn)故障時(shí),可以通過原有數(shù)據(jù)對系統(tǒng)進(jìn)行恢復(fù),,提高了系統(tǒng)的安全性,。?
??? 關(guān)鍵詞: 數(shù)據(jù)采集; 單片機(jī),; 采集器,; 載波抄表
?
??? 隨著國家電力系統(tǒng)兩網(wǎng)改造工程的逐漸推進(jìn)及“一戶一表,供電到戶”政策的貫徹實(shí)施,,電力用戶數(shù)量急劇膨脹,,用電網(wǎng)絡(luò)日益龐大,供電企業(yè)的用電管理任務(wù)也越來越重,,加之國家供電的發(fā)送配分開,,更要求供電企業(yè)加大對各大中小電戶的監(jiān)控力度。而傳統(tǒng)的抄收方式主要是依靠人工每月定期上門抄取,,這種做法不僅耗費(fèi)大量的人力物力,工作效率低,,給用戶帶來諸多不便,,同時(shí)發(fā)生電費(fèi)拖欠現(xiàn)象,造成電力公司的損失,。低壓電力線載波遠(yuǎn)程抄表系統(tǒng)是利用現(xiàn)有的低壓電力網(wǎng)和公共電話網(wǎng)作為數(shù)據(jù)采集與傳輸通道,,不僅從根本上克服了人工抄表帶來的諸多缺點(diǎn),實(shí)現(xiàn)了對用戶用電量的自動抄表及收費(fèi)管理等多種功能,,而且具有施工量小,、可靠性高、成本低等優(yōu)點(diǎn),。?
??? 但現(xiàn)有低壓電力線載波遠(yuǎn)程抄表系統(tǒng)由于各種原因,,存在這樣或那樣的弊端,例如負(fù)荷情況復(fù)雜,、噪聲干擾強(qiáng)且具有時(shí)變性,、信號衰減大、信道容量小等,。如何克服這些缺點(diǎn),,是現(xiàn)階段低壓電力線載波遠(yuǎn)程抄表系統(tǒng)設(shè)計(jì)的主要目標(biāo)。本文所用的基于令牌存儲技術(shù)的采集器設(shè)計(jì)與實(shí)現(xiàn)技術(shù),,就是為了克服以上缺點(diǎn)的一種方法[1-4],。?
1 采集器硬件設(shè)計(jì)?
1.1 采集器電路設(shè)計(jì)?
??? 采集器的電路設(shè)計(jì)如圖1所示。采集器是數(shù)據(jù)進(jìn)行采集、累計(jì),、傳輸?shù)牟考?,其設(shè)計(jì)的好壞將直接影響整個(gè)抄表系統(tǒng)的正確性。所以,,采集器的設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)最為關(guān)鍵的一步,,在設(shè)計(jì)采集器時(shí),需做到以下三點(diǎn):?
??? (1)實(shí)時(shí)記錄電表脈沖信號,,并按要求保存,,可根據(jù)脈沖個(gè)數(shù)等參數(shù)計(jì)算出當(dāng)前電表度數(shù)。?
??? (2)可實(shí)現(xiàn)繼電器控制,、狀態(tài)監(jiān)視并可記錄繼電器狀態(tài),。?
??? (3)可讀取電表度數(shù)、電表地址等信息,,并可對其進(jìn)行參數(shù)設(shè)置,,進(jìn)行欠費(fèi)指示、繼電器通斷等控制,。?
?
?
1.2? 采集器各部分功能?
??? 采集器總體結(jié)構(gòu)如圖2表示,,其各部分功能如下:?
?? (1)485通信芯片:主要實(shí)現(xiàn)采集器與上位機(jī)之間的通信,從而可以從采集器的存儲器中讀取相關(guān)數(shù)據(jù),,其具體通信協(xié)議以國家標(biāo)準(zhǔn)為主,。?
??? (2)狀態(tài)指示:指示當(dāng)前電表的工作狀態(tài),由3只二極管組成,,其中一只表示正常工作,;另一只表示用戶欠費(fèi);第三只表示繼電器動作,,切斷用戶電表,。?
??? (3)狀態(tài)檢測:在系統(tǒng)掉電或重新啟動時(shí),確保啟動時(shí)的狀態(tài)與掉電前的狀態(tài)相符合,。?
??? (4)脈沖采樣:完成脈沖的采集與計(jì)數(shù)任務(wù),。?
??? (5)存儲控制:主要存儲電表的地址、初始值,、變比參數(shù),、已有的脈沖個(gè)數(shù)、已記錄的電表數(shù)及繼電器在系統(tǒng)掉電前的狀態(tài),。?
?
?
2 采集器軟件設(shè)計(jì)?
2.1 基于令牌存儲技術(shù)的數(shù)據(jù)存儲設(shè)計(jì)?
??? 在進(jìn)行采集器的設(shè)計(jì)時(shí),,數(shù)據(jù)準(zhǔn)確、安全地存儲和傳輸是非常重要的,,其結(jié)果決定著其他部分的正常工作,。但由于采集器工作在現(xiàn)場的最前端,,容易受到環(huán)境的影響,如采集器的突然掉電,、數(shù)據(jù)在存儲過程中突然受到計(jì)數(shù)脈沖中斷的影響等,,這些都會導(dǎo)致寫到存儲器中的數(shù)據(jù)不準(zhǔn)確。如何克服這些不足,,是采集器設(shè)計(jì)過程中的一個(gè)難點(diǎn),。根據(jù)采集器的實(shí)際工作環(huán)境,本文提出一種基于令牌儲存技術(shù)的數(shù)據(jù)存儲設(shè)計(jì)方法,,該方法能很好地解決數(shù)據(jù)存儲過程中的不準(zhǔn)確和不安全現(xiàn)象,。?
??? 該方法的具體思路為:在存儲區(qū)中開辟三個(gè)互不相連的存儲空間,分別定義為ADDR1,、ADDR2,、ADDR3,每個(gè)存儲區(qū)又分為兩部分,,第一部分存儲令牌,,用tokening表示(用一個(gè)整數(shù)表示),第二部分存儲當(dāng)前電表度數(shù),,用memdata表示,。下面詳細(xì)說明本算法的思想。?
??? (1)系統(tǒng)初始參數(shù):當(dāng)系統(tǒng)第一次使用時(shí),,把ADDR1.tokening,、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)值全部設(shè)置為零,把ADDR1.memdata,、ADDR2.memdata和ADDR3.memdata中的數(shù)據(jù)設(shè)置為0、0.01,、0.02(其中0.01代表0.01度電),。?
??? (2)當(dāng)用電量有0.01度時(shí),需要將這0.01度電加到存儲區(qū)的用電度數(shù)中,。首先把ADDR1.tokening,、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,其和為0時(shí),,則把ADDR1.memdata中的數(shù)據(jù)加0.01,,同時(shí)改變ADDR1.tokening中的數(shù)據(jù),使其為1,。?
??? (3)當(dāng)用電量第二次到0.01度時(shí),,把ADDR1.tokening、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,,其和為1時(shí),,由此可以得到ADDR1.memdata剛被存儲過,,把ADDR2.memdata中的數(shù)據(jù)加0.01,改變ADDR2.tokening中的數(shù)據(jù),,使其為2,。?
??? (4)當(dāng)用電量第三次到0.01度時(shí),把ADDR1.tokening,、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,,其和為3時(shí),由此可以判斷ADDR1.memdata和ADDR2.memdata已經(jīng)存儲過,,把ADDR3.memdata中的數(shù)據(jù)加0.01,,改變ADDR3.tokening中的數(shù)據(jù),使其為4,。?
??? (5)當(dāng)用電量第四次到0.01度時(shí),,把ADDR1.tokening、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,,其和為7,,這時(shí)可以判斷ADDR1.memdata、ADDR2.memdata和ADDR3.memdata都已經(jīng)被存儲過了,,重新從ADDR1.memdata開始存數(shù),,把ADDR1.memdata中的數(shù)據(jù)加0.01,改變ADDR1.tokening中的數(shù)據(jù),,使其為0,。?
??? (6)當(dāng)用電量第五次到0.01度時(shí),把ADDR1.tokening,、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,,其和為6,這時(shí)可以判斷ADDR1.memdata中數(shù)據(jù)剛改變,,應(yīng)該把數(shù)據(jù)存儲到ADDR2.memdata中,,把ADDR2.memdata中的數(shù)據(jù)加0.01,并把ADDR2.tokening中的數(shù)據(jù)改為0,。?
??? (7)當(dāng)用電量第六次到0.01度時(shí),,把ADDR1.tokening、ADDR2.tokening和ADDR3.tokening中的數(shù)據(jù)相加,,其和為4,,這時(shí)可以判斷ADDR1.memdata和ADDR2.memdata都已經(jīng)被存儲過了,應(yīng)該把ADDR3.memdata中的數(shù)據(jù)加0.01度,,并把ADDR3.tokening中的數(shù)據(jù)改為0,。這時(shí)的令牌狀態(tài)又重新回到了初始狀態(tài),并且保證了數(shù)據(jù)區(qū)中的數(shù)據(jù)相差0.01度電,,當(dāng)有新的數(shù)據(jù)到來時(shí),,令牌數(shù)據(jù)又重新從初始狀態(tài)開始,。??
??? (8)錯(cuò)誤處理:當(dāng)系統(tǒng)掉電或被其他干擾影響時(shí),經(jīng)常會出現(xiàn)存儲數(shù)據(jù)不正確的現(xiàn)象,,如果使用上述存儲方法,,可以克服這些錯(cuò)誤。每次在更改存儲區(qū)中的數(shù)據(jù)或向上位機(jī)發(fā)送電表度數(shù)時(shí),,都會首先把三組存儲區(qū)中的數(shù)據(jù)和令牌值取出來,,然后根據(jù)令牌值,把三組數(shù)據(jù)兩兩相減,,根據(jù)數(shù)據(jù)間的差額可以判斷三組存儲區(qū)中的數(shù)據(jù)是否正確,,若正確才進(jìn)行改變或發(fā)送,否則可以根據(jù)另外兩組數(shù)據(jù)來還原其中一組數(shù)據(jù),,從而保證整個(gè)數(shù)據(jù)在系統(tǒng)運(yùn)行期間的正確性,。?
2.2 軟件系統(tǒng)設(shè)計(jì)?
??? 軟件設(shè)計(jì)的任務(wù)主要是實(shí)現(xiàn)采集器的各部分功能,如圖3所示,。包括485芯片通信功能設(shè)計(jì),、脈沖采集設(shè)計(jì)、數(shù)據(jù)存儲設(shè)計(jì),、狀態(tài)檢測設(shè)計(jì),、系統(tǒng)初始化等部分功能。?
??? 基于令牌儲存技術(shù)設(shè)計(jì)思想設(shè)計(jì)的采集器,,極大地提高了采集器的穩(wěn)定性和數(shù)據(jù)的正確性,。采用本技術(shù)設(shè)計(jì)的采集器,在河南鄭州,、濟(jì)源,、周口等地市使用,其抄表成功率在99.8%以上,,很好地滿足了用戶要求,。?
參考文獻(xiàn)?
[1] 張德銘,王森,付民修. 電力系統(tǒng)中低壓自動抄表系統(tǒng)綜述[J].電力學(xué)報(bào),2005,,20(2).?
[2] 湯效軍.電力線載波通信技術(shù)的發(fā)展及特點(diǎn)[J]. 電力系統(tǒng)通信,2003(1).?
[3] 何海波,,周擁華,,吳昕,等.低壓電力線載波通信研究與應(yīng)用現(xiàn)狀[J].繼電器,,2001,29(7).?
[4] 付麗君,曲宙強(qiáng),程杰,,等. 基于電力擴(kuò)頻載波的集中抄表系統(tǒng)(AMR)[J]. 繼電器,2004,32(6).