通常應(yīng)用于風(fēng)光發(fā)電廠的監(jiān)督控制與數(shù)據(jù)采集系統(tǒng)SCADA(Supervisory Control And Data Acquisition)一般都是由電力通信專(zhuān)網(wǎng)來(lái)保障其通信。但由于風(fēng)光電廠在地理位置上的特殊性、多樣性(通常在邊遠(yuǎn)偏僻地區(qū)),使得某些通信網(wǎng)無(wú)法勝任SCADA的要求[1]。
通用分組無(wú)線(xiàn)業(yè)務(wù)(GPRS)是GSM網(wǎng)絡(luò)的升級(jí),通過(guò)在GSM網(wǎng)絡(luò)上增加SGSN和GGSN兩種數(shù)據(jù)交換節(jié)點(diǎn)設(shè)備以及一些更新軟件來(lái)實(shí)現(xiàn),GPRS網(wǎng)絡(luò)中的數(shù)據(jù)傳輸以數(shù)據(jù)分組的形式傳送。在國(guó)內(nèi),移動(dòng)通信網(wǎng)絡(luò)目前已基本覆蓋全國(guó)所有地區(qū),因此利用技術(shù)上較為成熟的GPRS無(wú)線(xiàn)網(wǎng)絡(luò),可對(duì)風(fēng)光發(fā)廠的各個(gè)發(fā)電站進(jìn)行實(shí)時(shí)遠(yuǎn)程監(jiān)測(cè)與控制,這對(duì)提高整個(gè)風(fēng)光電廠的性能具有實(shí)際意義。
1 系統(tǒng)組成
整個(gè)風(fēng)光電廠的SCADA系統(tǒng)由風(fēng)光發(fā)電站的狀態(tài)參數(shù)采集部分和數(shù)據(jù)處理及傳輸兩部分組成。本文重點(diǎn)介紹數(shù)據(jù)處理及傳輸部分。風(fēng)光電廠SCADA系統(tǒng)如圖1所示。
通過(guò)CAN總線(xiàn)與CAN總線(xiàn)適配器的連接,將各個(gè)風(fēng)光發(fā)電站的狀態(tài)參數(shù)傳輸至基于LPC2214的嵌入式系統(tǒng),數(shù)據(jù)經(jīng)處理后由GPRS通信模塊MC39i輸出,并通過(guò)GPRS網(wǎng)絡(luò)和Internet將數(shù)據(jù)傳輸至監(jiān)控中心。反之,監(jiān)控中心也可以將各種操作指令傳送至控制終端,以控制風(fēng)光發(fā)電站的運(yùn)行。本系統(tǒng)的核心部分為“嵌入式GPRS通信模塊”的實(shí)現(xiàn)[2]。
本系統(tǒng)使用ARM7核微處理器LPC2214,并適當(dāng)對(duì)系統(tǒng)存儲(chǔ)資源進(jìn)行擴(kuò)展,通過(guò)移植嵌入式操作系統(tǒng)μC/OS-Ⅱ來(lái)管理整個(gè)系統(tǒng)的運(yùn)行。系統(tǒng)所使用的GPRS模塊MC39i由西門(mén)子公司生產(chǎn),具有使用方便、接口電路簡(jiǎn)單等優(yōu)點(diǎn)[3]。GPRS雖支持TCP/IP業(yè)務(wù),但因?yàn)镸C39i沒(méi)有嵌入TCP/IP協(xié)議和PPP協(xié)議,所以需要在基于LPC2214的嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP協(xié)議和PPP協(xié)議,否則系統(tǒng)無(wú)法使用GPRS網(wǎng)絡(luò)的數(shù)據(jù)分組業(yè)務(wù)。
2 CAN總線(xiàn)接口電路設(shè)計(jì)
SJA1000與LPC2214之間的接口電路如圖2所示,主要包含:LPC2214最小系統(tǒng)(未畫(huà)出)、CAN通信控制器SJA1000、CAN總線(xiàn)驅(qū)動(dòng)器82C250和高速光電耦合器6N137。LPC2214控制SJA1000的初始化以及對(duì)風(fēng)光發(fā)電站狀態(tài)參數(shù)的接收和發(fā)送。其中,SJA1000的AD0~AD7連接到LPC2214的P2口(DATA0~DATA7),/CS為0時(shí),LPC2214選中SJA1000。SJA1000的/RD、/WR、ALE分別與LPC2214的對(duì)應(yīng)引腳相連,/INT接LPC2214的P0.1腳(外部中斷0),用于中斷訪(fǎng)問(wèn)SJA1000。
SJA1000的TX0、RX0通過(guò)高速光耦6N137后與82C250的TXD和RXD連接,這樣可較好地實(shí)現(xiàn)本節(jié)點(diǎn)在CAN總線(xiàn)上的電氣隔離,從而增強(qiáng)CAN總節(jié)點(diǎn)的抗干擾能力。要注意光耦部分電路采用的兩個(gè)電源VCC和VDD必須完全隔離,否則此光耦就失去了意義。本系統(tǒng)中的電源隔離采用了小功率的電源隔離模塊實(shí)現(xiàn)。
另外,通過(guò)在82C250的CANH和CANL引腳之間串連60 ?贅的電阻以消除電路中信號(hào)反射等干擾。CANH和CANL與地之間并聯(lián)兩個(gè)30 pF的小電容,可濾除總線(xiàn)上的高頻干擾和一定的電磁輻射。另外,在兩根CAN總線(xiàn)輸入端與地之間分別接了一個(gè)防雷擊管,當(dāng)兩端輸入端與地之間出現(xiàn)瞬變干擾時(shí),通過(guò)防雷擊管的放電可起到一定的保護(hù)作用。
3 基于μC/OS-Ⅱ環(huán)境的多任務(wù)設(shè)計(jì)
3.1 μC/OS-Ⅱ操作系統(tǒng)在ARM7核上的移植
移植是使一個(gè)實(shí)時(shí)內(nèi)核能在其他微處理器上運(yùn)行,也就是為特定的CPU編寫(xiě)特定的代碼。因?yàn)棣藽/OS-Ⅱ在讀/寫(xiě)CPU寄存器時(shí),只能通過(guò)匯編語(yǔ)言來(lái)進(jìn)行,因此在使用μC/OS-Ⅱ時(shí),針對(duì)具體的CPU,用戶(hù)需要用匯編語(yǔ)言編寫(xiě)與CPU硬件相關(guān)的代碼。
根據(jù)μC/OS-Ⅱ的要求,移植μC/OS-Ⅱ到一個(gè)微處理器的體系結(jié)構(gòu)上需要提供三個(gè)文件:在C語(yǔ)言頭文件OS_CPU.H中,要定義與編譯器無(wú)關(guān)的數(shù)據(jù)類(lèi)型;定義所使用的堆棧數(shù)據(jù)類(lèi)型以及堆棧的增長(zhǎng)方向;定義一些有關(guān)ARM核的軟中斷。在C程序源文件OS_CPU_C.C中,主要是μC/OS-Ⅱ任務(wù)堆棧初始化函數(shù);在匯編程序源文件OS_CPU_A.S中,主要是時(shí)鐘節(jié)拍中斷服務(wù)函數(shù)、中斷退出時(shí)的任務(wù)切換函數(shù)以及μC/OS-Ⅱ第一次進(jìn)入多任務(wù)環(huán)境時(shí)運(yùn)行最高優(yōu)先級(jí)任務(wù)的函數(shù)。
3.2 系統(tǒng)任務(wù)設(shè)計(jì)
μC/OS-Ⅱ要求在其上運(yùn)行的應(yīng)用軟件“任務(wù)化”,所以需要按μC/OS-Ⅱ的任務(wù)編寫(xiě)規(guī)范設(shè)計(jì)系統(tǒng)應(yīng)用任務(wù)。按任務(wù)優(yōu)先級(jí)從高到低設(shè)計(jì)如下[4]。
Task0:完成系統(tǒng)各部分(包括MC39i)初始化工作后,采用時(shí)間片的方式進(jìn)行PPP數(shù)據(jù)幀的接收,并完成該數(shù)據(jù)幀的解析。
Task 1:風(fēng)光發(fā)電廠各發(fā)電站狀態(tài)參數(shù)的讀取。
Task 2:UDP數(shù)據(jù)包的接收處理。
Task 3:TCP數(shù)據(jù)包的接收處理。
Task 4:ICMP數(shù)據(jù)包的接收處理(主要是響應(yīng)