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