<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM9和GPRS的實(shí)時(shí)電力負(fù)控管理系統(tǒng)

          基于ARM9和GPRS的實(shí)時(shí)電力負(fù)控管理系統(tǒng)

          作者: 時(shí)間:2017-06-04 來源:網(wǎng)絡(luò) 收藏

          0 引言

          本文引用地址:http://www.ex-cimer.com/article/201706/348324.htm

          在當(dāng)今電能源緊張的工業(yè)社會(huì)中,及時(shí)準(zhǔn)確地獲取用戶的用電負(fù)荷信息,并據(jù)此做出及時(shí)的控制調(diào)度對(duì)于提高能耗利用率具有重要的現(xiàn)實(shí)意義。傳統(tǒng)的電量結(jié)算是依靠人工定期到現(xiàn)場抄取數(shù)據(jù)的,在實(shí)時(shí)性、準(zhǔn)確性和應(yīng)用性等方面都存在諸多不足之處,應(yīng)用基于單片機(jī)、ARM 7平臺(tái)的自動(dòng)抄表終端已成趨勢。但由于單片機(jī)的數(shù)據(jù)處理速率低、ARM7缺乏存儲(chǔ)管理單元,難以滿足電力系統(tǒng)對(duì)負(fù)荷控制的精細(xì)化要求。

          本文根據(jù)重慶電力部門的需求,在現(xiàn)有的電力負(fù)控管理系統(tǒng)的研究與發(fā)展基礎(chǔ)上,提出了一種基于和GPRS的電力負(fù)控管理系統(tǒng)的設(shè)計(jì)方案。該系統(tǒng)利用微處理器的高采集速率和較強(qiáng)的處理能力提高了系統(tǒng)的精確度;利用具有搶占內(nèi)核機(jī)制的Linux2.6操作系統(tǒng)提高了系統(tǒng)的實(shí)時(shí)響應(yīng)速度;利用寬帶GPRS網(wǎng)絡(luò)實(shí)現(xiàn)了用電信息的無線傳輸和實(shí)時(shí)監(jiān)測等功能。

          1 負(fù)控管理系統(tǒng)的總體框架及其工作原理

          負(fù)控管理系統(tǒng)實(shí)質(zhì)就是利用先進(jìn)的測控、通信以及計(jì)算機(jī)技術(shù),將電能表數(shù)據(jù)整合到一起的通信系統(tǒng)。本文設(shè)計(jì)的系統(tǒng)由安裝在用戶端的電能表、用戶小區(qū)的負(fù)控管理終端和電力部門的遠(yuǎn)程管理主站組成。其拓?fù)鋱D如圖1所示。

          用戶電能表與負(fù)控管理終端通過RS 485總線通信,負(fù)控管理終端通過RS 485總線讀取用戶電能表數(shù)據(jù),將數(shù)據(jù)交給相應(yīng)的模塊封裝成IP包發(fā)送給GPRS網(wǎng)絡(luò),GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)實(shí)現(xiàn)無縫連接,主站通過Internet接收到終端通過RS 485接口采集回來的電能表數(shù)據(jù),然后顯示、分析、存儲(chǔ)這些電能表數(shù)據(jù),然后根據(jù)分析結(jié)果向負(fù)控管理終端下發(fā)送遠(yuǎn)程控制命令(硬件復(fù)位、設(shè)置各種通信參數(shù)、斷線檢測、超載報(bào)警等功能)。以此實(shí)現(xiàn)遠(yuǎn)程監(jiān)控負(fù)控管理終端,并通過負(fù)控管理終端監(jiān)控電能表。

          2 負(fù)控管理終端的設(shè)計(jì)

          2.1 硬件設(shè)計(jì)

          負(fù)控管理終端的硬件主要由通信電路、存儲(chǔ)電路和人機(jī)交互電路組成。通信電路包括RS 485接口電路、GPRS通信電路、遙信控制電路、紅外接口;存儲(chǔ)電路包括SDRAM和NAND FLASH存儲(chǔ)模塊;人機(jī)交互電路包括LCD顯示模塊、按鍵管理、電源和復(fù)位電路。其總體的硬件框架如圖2所示。

          下面主要分析一下下層通信電路RS 485接口電路和上層通信電路GPRS接口電路。

          2.1.1 RS 485接口電路

          負(fù)控管理終端的主要功能之一就是對(duì)電能表數(shù)據(jù)的采集和處理??紤]到負(fù)控管理終端與所連接的多功能電表通信時(shí),由于兩者相距比較遠(yuǎn),周圍環(huán)境會(huì)對(duì)傳輸信號(hào)產(chǎn)生比較大的干擾,系統(tǒng)又要求負(fù)控管理終端所掛接電能表數(shù)量盡量多,最后選用了RS 485的底層通信模式。

          本負(fù)控管理終端的2路RS 485接口是由S3C2440A的RS 232串口2和串口3轉(zhuǎn)換過來的,要把RS 232信號(hào)轉(zhuǎn)成RS 485信號(hào),必須先通過RS 232收發(fā)器將信號(hào)發(fā)送出去,再通過RS 485收發(fā)器接收信號(hào),MAX202ECPE是RS 232收發(fā)器,選用MAX485驅(qū)動(dòng)芯片用于RS485通信的低功耗收發(fā)器,每個(gè)器件中都具有一個(gè)驅(qū)動(dòng)器和一個(gè)接收器,可以直接掛接128個(gè)電能表,實(shí)現(xiàn)最高2.5 Mb/s的傳輸速率。RS 485接口的共模電壓大于+12 V或小于-7 V時(shí),接收器就無法正常工作了,可考慮選用帶光電隔離的光電耦合器,將強(qiáng)電電路與弱電電路在物理上隔離,電路中的光耦PS4 21將高壓執(zhí)行電路與MCU控制電路隔離。

          2.1.2 GPRS通信模塊

          GPRS網(wǎng)絡(luò)是一種基于GSM系統(tǒng)的無線分組交換技術(shù),提供廣域無線IP連接。用GPRS進(jìn)行數(shù)據(jù)傳輸具有:“永遠(yuǎn)在線”、“按流量計(jì)費(fèi)”、“快捷登錄”、“高速傳輸”、“自如切換”等優(yōu)點(diǎn)。

          在負(fù)控管理終端的數(shù)據(jù)傳輸中,優(yōu)先采用了GPRS無線網(wǎng)絡(luò)傳輸?shù)姆绞?。GPRS模塊是負(fù)控管理終端接入GSM/GPRS網(wǎng)絡(luò)的關(guān)鍵設(shè)備,通過GPRS模塊來完成與Internet的交互。本終端的GPRS通信模塊采用的是中興的ME3000,該模塊具有體積小、通信可靠穩(wěn)定、價(jià)格適中的優(yōu)點(diǎn),它的波特率300~115 200 b/s;支持短消息業(yè)務(wù);內(nèi)嵌TCP/IP協(xié)議和標(biāo)準(zhǔn)的AT命令,通過AT命令來進(jìn)行語音和數(shù)據(jù)通信;提供標(biāo)準(zhǔn)的UART接口,只需用串口線就能與CPU連接;輸入電壓3.3~4.25 V;SIM接口支持機(jī)卡分離,辦理一張SIM卡就可以實(shí)現(xiàn)通信。

          在GPRS通信電路中設(shè)計(jì)晶振為芯片提供工作頻率,它是構(gòu)成芯片的最小系統(tǒng)必不可少的元器件,一般與它串聯(lián)2個(gè)電容,是固定接法,一個(gè)是輸入電容,一個(gè)是輸出電容,根據(jù)Datasheet確定電容的大小為30pF。

          2.2 軟件設(shè)計(jì)

          2.2.1 負(fù)控管理終端的軟件設(shè)計(jì)

          在負(fù)控管理終端的整體流程是終端上電后,初始化串口,啟動(dòng)撥號(hào),建立TCP連接成功后,主站向負(fù)控管理終端發(fā)送登陸幀,負(fù)控管理終端監(jiān)聽到登陸幀后(主站和負(fù)控管理終端建立通信前,主站要知道負(fù)控管理終端中GPRS模塊的SIM卡號(hào)),發(fā)出確認(rèn)幀,主站與負(fù)控管理終端就可以開始通信。負(fù)控管理終端接收到數(shù)據(jù)時(shí),先判斷是不是主站發(fā)送過來的控制命令,如果是,將該命令透明傳輸給電能表,電能表通過解析判斷其要是采集數(shù)據(jù)命令,就將相應(yīng)的電能數(shù)據(jù)返回給負(fù)控管理終端,負(fù)控管理終端收到數(shù)據(jù)后通過TCP發(fā)送給主站;如果不是控制命令,說明是電能表的返回?cái)?shù)據(jù),同樣通過TCP協(xié)議發(fā)送給主站。在沒有任何命令時(shí),負(fù)控管理終端進(jìn)入低功耗模式,間隔一定時(shí)間發(fā)送心跳包,以確定它與主站沒有斷開連接。每隔15 min,負(fù)控管理終端會(huì)定時(shí)采集電能數(shù)據(jù),并將其存儲(chǔ)在NANDFLASH中,等待主站隨時(shí)調(diào)用。此外,當(dāng)負(fù)控管理終端處于異常狀態(tài),或者發(fā)生一些特殊事件時(shí),比如事故報(bào)警信息,負(fù)控管理終端通過遙信控制主動(dòng)上報(bào)給主站,以做出適當(dāng)處理。

          負(fù)控管理終端的應(yīng)用軟件主要包括數(shù)據(jù)采集及處理程序和網(wǎng)絡(luò)通信程序。數(shù)據(jù)采集及處理程序完成電能表數(shù)據(jù)采集,并進(jìn)行處理。網(wǎng)絡(luò)通信程序完成將處理后的數(shù)據(jù)傳送到主站。另外,網(wǎng)絡(luò)通信程序還要發(fā)送主站的控制指令。

          該部分的軟件編寫采用自上而下的設(shè)計(jì)思路,以模塊化設(shè)計(jì)為原則,采用C語言編程,通過建立數(shù)據(jù)采集與處理線程、GPRS網(wǎng)絡(luò)通信線程、按鍵控制線程,使其相互協(xié)調(diào)地運(yùn)行。

          結(jié)合上面給出的設(shè)計(jì)思路,下面重點(diǎn)介紹如何利用多進(jìn)程技術(shù)和管道技術(shù)來實(shí)現(xiàn)抄表和發(fā)送數(shù)據(jù)的功能。

          在進(jìn)行網(wǎng)絡(luò)通信之前,先設(shè)定網(wǎng)絡(luò)端口最大允許接入的客戶端數(shù)、父進(jìn)程和子進(jìn)程設(shè)定的2個(gè)狀態(tài)變量。

          進(jìn)入主函數(shù),創(chuàng)建管道和子進(jìn)程,分別啟動(dòng)父進(jìn)程和子進(jìn)程,開始數(shù)據(jù)采集和網(wǎng)絡(luò)傳輸,function_farther()函數(shù)和function_child()函數(shù)分別為父進(jìn)程和子進(jìn)程的主函數(shù)。

          在main()函數(shù)中還有以下幾個(gè)主要的子函數(shù):

          gprs_com_task():GPRS通信任務(wù)主要功能是接收來自主站的信息,直接從Nand FLASH中讀出數(shù)據(jù)上發(fā)給主站,主站接收完畢后掛機(jī)結(jié)束通信。

          gather_meter_realtime():實(shí)時(shí)采集任務(wù)主要完成和電能表的通信工作。根據(jù)自定義規(guī)約判斷主站想要什么數(shù)據(jù),然后將該數(shù)據(jù)TCP打包后發(fā)回到通信任務(wù),通信任務(wù)就會(huì)以相應(yīng)的形式(數(shù)據(jù))上傳給主站。

          gather_meter_time():定時(shí)采集任務(wù)指每天定時(shí)主動(dòng)讀取電能表,并將讀到的數(shù)據(jù)存放在NandFLASH中。這樣當(dāng)主站下發(fā)命令索要數(shù)據(jù)時(shí),終端就不必再去讀表,可以直接將存儲(chǔ)的數(shù)據(jù)上發(fā)給主站。

          alarm_task():報(bào)警任務(wù)每隔一定時(shí)間程序就去讀三相電壓,并將讀到的實(shí)時(shí)值與存放在Nancl FLASH中規(guī)定的電壓上限值作比較,當(dāng)實(shí)時(shí)電壓值超過上限值或者低于下限值時(shí),負(fù)控管理終端軟件就對(duì)電網(wǎng)狀態(tài)字置位。當(dāng)故障消除,電壓恢復(fù)正常時(shí),終端軟件再向電網(wǎng)狀態(tài)字置位。

          led_task():指示燈任務(wù)用于判斷程序和通信模塊是否處于正常工作狀態(tài)。負(fù)控管理終端有2個(gè)運(yùn)行指示燈,一個(gè)用于指示程序的正常運(yùn)行,1 s閃爍1次;另一個(gè)用于指示通信模塊的工作狀態(tài),GPRS模塊沒有注冊(cè)到網(wǎng)絡(luò)時(shí),該指示燈1 s閃爍1次,注冊(cè)上網(wǎng)絡(luò)后,3s閃爍1次。

          2.2.2 主站管理軟件的設(shè)計(jì)

          本系統(tǒng)的主站管理軟件是用面向?qū)ο蟮木幊坦ぞ遃B開發(fā)完成的。通過使用面向?qū)ο蟮臄?shù)據(jù)模型來構(gòu)建主站,將負(fù)控管理終端模型化為一系列邏輯沒備組成,每個(gè)邏輯設(shè)備是該物理設(shè)備的一個(gè)功能子集,各種功能則用對(duì)象模型來標(biāo)準(zhǔn)化。主站設(shè)置2個(gè)邏輯設(shè)備:管理邏輯設(shè)備與數(shù)據(jù)邏輯設(shè)備。管理邏輯設(shè)備是主站中必需的,管理邏輯設(shè)備中存放一些與全局相關(guān)的及負(fù)控管理終端參數(shù)設(shè)置數(shù)據(jù)對(duì)象;數(shù)據(jù)邏輯設(shè)備用來存儲(chǔ)和管理負(fù)控管理終端下屬的電能表數(shù)據(jù)。

          主站的交互界面采用模塊化沒計(jì),主窗體包括應(yīng)用連接、數(shù)據(jù)曲線、執(zhí)行動(dòng)作、電表信息、數(shù)據(jù)類對(duì)象四大模塊,主站的功能框圖如圖3所示。


          3 實(shí)驗(yàn)結(jié)果

          下面從負(fù)控管理終端的角度說明主站讀取周期凍結(jié)總加組曲線的數(shù)據(jù)的通信流程:建立連接→讀取周期凍結(jié)總加組曲線的數(shù)據(jù)→斷開連接通信流程如下所示。

          (1)建立物理層和建立鏈路層連接;

          (2)建立應(yīng)用層連接。應(yīng)用連接請(qǐng)求由主站發(fā)起,負(fù)控管理終端響應(yīng),應(yīng)用連接的建立過程稱為“協(xié)商”過程,是為數(shù)據(jù)通信約定一些配置參數(shù);

          (3)進(jìn)行數(shù)據(jù)通信。應(yīng)用連接建立后,就可以進(jìn)行數(shù)據(jù)通信了;

          (4)數(shù)據(jù)通信結(jié)束,釋放數(shù)據(jù)鏈路,解除物理連接。

          主站啟動(dòng)后首先要與負(fù)控管理終端進(jìn)行連接,管理人員必須輸入正確的用戶名和口令,驗(yàn)證無誤后,主站與終端連接成功才可進(jìn)入主窗體,該曲線捕獲對(duì)象清單有總加組-時(shí)間、時(shí)間-總加組、總加有功功率、總加無功功率、總加有功電能量-總和總加無功電能量-總。圖4是通過主站讀取負(fù)控管理終端中的周期凍結(jié)總加組數(shù)據(jù)曲線;

          4 結(jié)語

          隨著無線電通信技術(shù)的發(fā)展,基于和GPRS的電力系統(tǒng)的已趨于成熟,本文設(shè)計(jì)的負(fù)控管理系統(tǒng)具有實(shí)時(shí)性強(qiáng)、抄收速度快等優(yōu)點(diǎn),雖然投資這種負(fù)控管理系統(tǒng)會(huì)增加成本,但應(yīng)用后能實(shí)現(xiàn)開源節(jié)流并且一次投資長期收益,隨著電子技術(shù)的發(fā)展,可以實(shí)現(xiàn)電表、水表、煤氣表、熱能表四表合一的無線自動(dòng)化抄表系統(tǒng)。這種應(yīng)用將為用戶表計(jì)管理系統(tǒng)技術(shù)帶來更大改革,也更有利于實(shí)現(xiàn)統(tǒng)一管理和宏觀調(diào)控。因此具有廣闊的應(yīng)用前景,會(huì)帶來較好的經(jīng)濟(jì)和社會(huì)效益,從而使用戶和企業(yè)實(shí)現(xiàn)雙贏局面。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();