文獻(xiàn)標(biāo)識(shí)碼: B
電力監(jiān)控系統(tǒng)又稱電力SCADA(Supervisory Control And Data Acquisition)系統(tǒng)或遠(yuǎn)動(dòng)系統(tǒng),是在對(duì)供電系統(tǒng)設(shè)備的遠(yuǎn)程狀態(tài)監(jiān)視、數(shù)據(jù)采集和遠(yuǎn)程控制的需求基礎(chǔ)上發(fā)展起來的。用于實(shí)現(xiàn)對(duì)沿線各變電所內(nèi)主要電氣設(shè)備的遙控、遙信、遙測(cè)、遙調(diào)和遙視等功能。它對(duì)提高電網(wǎng)運(yùn)行的可靠性、安全性與經(jīng)濟(jì)效益,減輕調(diào)度員的負(fù)擔(dān),實(shí)現(xiàn)電力調(diào)度自動(dòng)化與現(xiàn)代化,提高調(diào)度的效率和水平等方面有著不可替代的作用。電力系統(tǒng)的特點(diǎn)是站點(diǎn)比較分散,而站點(diǎn)的正常運(yùn)行又十分重要,一旦站點(diǎn)出現(xiàn)任何異常情況,監(jiān)控系統(tǒng)需要把實(shí)時(shí)數(shù)據(jù)(溫度、風(fēng)力、震動(dòng)、電壓等)傳送到調(diào)度員手中,以便及時(shí)采取應(yīng)對(duì)措施。傳統(tǒng)的人工監(jiān)控現(xiàn)場(chǎng)不僅浪費(fèi)大量的人力物力,而且效率十分低下[1]。ARM微處理器是一種高性能、低功耗的32位微處理器,廣泛應(yīng)用于嵌入式系統(tǒng)。ARM9代表了ARM公司主流的處理器,在數(shù)字消費(fèi)品、成像設(shè)備、工業(yè)控制、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備等方面應(yīng)用廣泛。本文設(shè)計(jì)了一種新型的嵌入式系統(tǒng),該系統(tǒng)以Linux操作系統(tǒng)和ARM9硬件平臺(tái)為核心實(shí)現(xiàn)了現(xiàn)場(chǎng)的實(shí)時(shí)監(jiān)控,并通過GPRS模塊及時(shí)地把數(shù)據(jù)傳送到監(jiān)控中心,監(jiān)控中心對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存處理。同時(shí),監(jiān)控中心一旦接收到新的數(shù)據(jù),馬上以短消息形式發(fā)送到手機(jī)(MT)上,而手機(jī)也可以向監(jiān)控中心發(fā)送查詢請(qǐng)求,監(jiān)控中心通過認(rèn)證其權(quán)限大小向其發(fā)送數(shù)據(jù)。
1 系統(tǒng)組成及原理
1.1 數(shù)據(jù)采集端
如圖1所示,整個(gè)系統(tǒng)由現(xiàn)場(chǎng)監(jiān)控終端、GSM網(wǎng)絡(luò)、數(shù)據(jù)交換中心,監(jiān)控中心、移動(dòng)接收終端五部分組成。
一般情況下,由本地監(jiān)測(cè)系統(tǒng)采用SM業(yè)務(wù)發(fā)送變電所的工況數(shù)據(jù)。當(dāng)變電所出現(xiàn)故障時(shí),變電所本地監(jiān)測(cè)系統(tǒng)主動(dòng)呼叫遠(yuǎn)程監(jiān)測(cè)計(jì)算機(jī)并建立數(shù)據(jù)連接,發(fā)送報(bào)警信息;根據(jù)實(shí)際生產(chǎn)中的需要,生產(chǎn)管理人員可以決定何時(shí)建立GSM數(shù)據(jù)電路連接,進(jìn)行實(shí)時(shí)監(jiān)測(cè)。
本系統(tǒng)的發(fā)送端如圖2所示。其中,控制單元的芯片選用S3C2410嵌入式處理器,該處理器是Samsung公司基于ARM公司的ARM920T處理器核、采用0.18 μm制造工藝的32位微控制器。該處理器基本特性:獨(dú)立的16 KB指令Cache和16 KB數(shù)據(jù)Cache、MMU、支持TFT的LCD控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的Timer、I/O口、RTC、8路10位ADC、Touch Screen接口、I2C-BUS 接口、I2S-BUS接口、2個(gè)USB主機(jī)、1個(gè)USB設(shè)備、SD主機(jī)、MMC接口及2路SPI。S3C2410處理器最高可運(yùn)行在203 MHz頻率下。
GPRS模塊采用SIMCOM公司出品的工業(yè)級(jí)模塊SIM300C,該模塊支持GPRS與內(nèi)嵌TCP協(xié)議。它是一個(gè)完整的手機(jī)模塊,屬于移動(dòng)設(shè)備端,負(fù)責(zé)與GSM、GPRS 網(wǎng)絡(luò)進(jìn)行信令交換。通過串口可以實(shí)現(xiàn)對(duì)它的控制并進(jìn)行數(shù)據(jù)傳輸,包括短信息和GPRS等。該模塊需要一張開通GPRS 業(yè)務(wù)的SIM卡與其配套使用。
1.2 服務(wù)器端
鑒于電力系統(tǒng)的特殊性,其監(jiān)控中心不允許直接接入Internet,所以需要一個(gè)數(shù)據(jù)交換中心來進(jìn)行數(shù)據(jù)處理轉(zhuǎn)發(fā)。信息采集點(diǎn)的控制器定時(shí)或根據(jù)監(jiān)控中心的指令把數(shù)據(jù)由GSM/GPRS模塊經(jīng)過GSM網(wǎng)絡(luò)傳送到監(jiān)控中心,監(jiān)控中心對(duì)數(shù)據(jù)進(jìn)行儲(chǔ)存處理。
1.3 數(shù)據(jù)發(fā)布端
監(jiān)控中心一旦接收到新的數(shù)據(jù),馬上通過短消息形式發(fā)送到值班人員手機(jī)(MT)上。而值班人員也可通過手機(jī)向監(jiān)控中心發(fā)出查詢請(qǐng)求,監(jiān)控中心通過認(rèn)證其權(quán)限大小向其發(fā)送數(shù)據(jù)。如圖3所示。
2 操作系統(tǒng)定制
設(shè)計(jì)中嵌入式操作系統(tǒng)選用Linux。Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),它充分利用了X86 CPU的任務(wù)切換機(jī)制,實(shí)現(xiàn)了真正多任務(wù)、多用戶環(huán)境,允許多個(gè)用戶同時(shí)執(zhí)行不同的程序,并且可以給緊急任務(wù)以較高的優(yōu)先級(jí),特別適用于嵌入式系統(tǒng)。應(yīng)用程序開發(fā)工具則采用ADS1.2(ARM Developer Suite)[2]。
2.1構(gòu)建交叉編譯環(huán)境
由于嵌入式硬件上無法安裝所需要的編譯器,所以只能借助于PC機(jī),而PC機(jī)和嵌入式硬件基于兩種不同的處理器類型,因此需要在PC機(jī)上生成能夠在ARM上運(yùn)行的軟件,這就要求構(gòu)建交叉編譯環(huán)境。本設(shè)計(jì)選用開源Crosstool來構(gòu)建交叉編譯工具鏈[2]。
2.2 移植Bootloader
Bootloader類似于PC機(jī)上的Bios,是系統(tǒng)啟動(dòng)時(shí)運(yùn)行的第一個(gè)程序,主要作用就是在操作系統(tǒng)內(nèi)核運(yùn)行之前,初始化硬件設(shè)備,屏蔽中斷,設(shè)置啟動(dòng)參數(shù)等,為操作系統(tǒng)創(chuàng)造一個(gè)良好的環(huán)境,然后加載操作系統(tǒng)。本設(shè)計(jì)同樣使用開源項(xiàng)目U-boot。
2.3 內(nèi)核移植
盡管最新的Linux內(nèi)核已經(jīng)增加了對(duì)S3C2410 CPU的支持,但是仍然需要根據(jù)實(shí)際需要對(duì)內(nèi)核做一些修改,并且重新配置、編譯生成新的內(nèi)核映像。
2.4 定制根文件系統(tǒng)
根文件系統(tǒng)是指Linux系統(tǒng)啟動(dòng)時(shí)所使用的第一個(gè)文件系統(tǒng),在啟動(dòng)內(nèi)核時(shí)需要掛載根文件系統(tǒng)來支持外部設(shè)備,以及裝載和運(yùn)行內(nèi)核模塊與應(yīng)用程序。通常,定制根文件系統(tǒng)需要以下步驟:創(chuàng)建空的目錄樹、移植BusyBox、選擇必要的動(dòng)態(tài)共享庫、初始化腳本等。
3 軟件設(shè)計(jì)
3.1 信息采集點(diǎn)與監(jiān)控中心的通信
GPRS模塊的控制通過AT指令完成,而模塊與監(jiān)控中心的通信則由WinSock完成。當(dāng)信息采集點(diǎn)傳送數(shù)據(jù)時(shí),GPRS模塊會(huì)根據(jù)預(yù)先設(shè)定在其內(nèi)部的IP地址來主動(dòng)訪問監(jiān)控中心服務(wù)器,通過防火墻和監(jiān)控中心建立TCP/IP鏈路[3]。同時(shí),監(jiān)控中心維護(hù)接入的每個(gè)信息采集點(diǎn)的IP地址和序號(hào),并且根據(jù)需要定時(shí)向某個(gè)信息采集點(diǎn)發(fā)出數(shù)據(jù)請(qǐng)求,信息采集點(diǎn)接收到請(qǐng)求后作出響應(yīng),完成通信過程[4]。具體協(xié)議棧如表1所示。
3.2 監(jiān)控中心軟件結(jié)構(gòu)
監(jiān)控中心軟件結(jié)構(gòu)共分為3層:操作系統(tǒng)和系統(tǒng)軟件層、系統(tǒng)軟件支持層和基礎(chǔ)應(yīng)用層。
(1) 操作系統(tǒng)和系統(tǒng)軟件層
操作系統(tǒng)為使用者屏蔽了底層硬件的具體細(xì)節(jié),程序員可以利用底層硬件提供的函數(shù)開發(fā)包來為上層軟件服務(wù)。
(2) 系統(tǒng)支持軟件層
系統(tǒng)支持軟件層包括數(shù)據(jù)庫系統(tǒng)、電力系統(tǒng)模型、數(shù)據(jù)采集和傳輸?shù)?其主要功能是實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)和轉(zhuǎn)發(fā),并為上層軟件服務(wù)。
(3) 基礎(chǔ)應(yīng)用層
基礎(chǔ)應(yīng)用層的主要功能是將采集到的數(shù)據(jù)進(jìn)行處理、對(duì)調(diào)度人員進(jìn)行管理并通過GUI界面顯示出來[5]。
監(jiān)控中心如圖4所示。
3.3 管理中心與調(diào)度員的通信
在數(shù)據(jù)發(fā)布端,無線模塊通過RS232與上位機(jī)進(jìn)行通信,采用串口異步通信,波特率為9 600 Kb/s。串口程序使用的是MOXA公司的Pcomm串口通信庫,Pcomm提供了簡單方便的串口操作函數(shù),常用的函數(shù)有:
int WINAPI sio_ioctl(int port, int baud, int mode);
//設(shè)置串口參數(shù),包括波特率、數(shù)據(jù)位、停止位等
int WINAPI sio_read(int port, char *buf, int len);
//從輸入緩沖區(qū)讀指定個(gè)數(shù)的字符
int WINAPI sio_write(int port, char *buf, int len);
//寫指定個(gè)數(shù)的字符到輸出緩沖區(qū)
int WINAPI sio_cnt_irq(int port, VOID (CALLBACK *func)(int port), int count);
//中斷函數(shù),當(dāng)接收到指定個(gè)數(shù)字符時(shí)響應(yīng)事件
本系統(tǒng)基于S3C2410平臺(tái)和Linux操作系統(tǒng),通過SIM300C經(jīng)GPRS網(wǎng)絡(luò)與遠(yuǎn)程監(jiān)控中心進(jìn)行信息交互,傳輸距離遠(yuǎn)、可靠性高、實(shí)時(shí)性強(qiáng),并且價(jià)格低廉,具有很高的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 汪明虎,歐文盛. ARM嵌入式Linux應(yīng)用開發(fā)入門(第1版)[M].北京:中國電力出版社,2008.
[2] 全茜,鄭雪峰.基于GPRS的電力線路監(jiān)控系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì), 2005,26(11):3053-3055.
[3] 文志成.GPRS網(wǎng)絡(luò)技術(shù)[M].北京:電子工業(yè)出版社,2005.
[4] ANDREW S T. 計(jì)算機(jī)網(wǎng)絡(luò)(第4版)[M].北京:清華大學(xué)出版社, 2004.
[5] BLANCHETTE J, SUMMERFIELD M著. C++ GUI Qt4 編程(第2版).閆鋒欣,譯.北京:電子工業(yè)出版社.2008.