《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于ARM與GPRS技術(shù)的SCADA系統(tǒng)在風(fēng)光電廠中的應(yīng)用
基于ARM與GPRS技術(shù)的SCADA系統(tǒng)在風(fēng)光電廠中的應(yīng)用
來源:電子技術(shù)應(yīng)用2011年第6期
鮑玉軍
常州工學(xué)院 電子信息與電氣工程學(xué)院, 江蘇 常州213002
摘要: 介紹了以ARM核微處理器LPC2214及嵌入式操作系統(tǒng)μC/OS-Ⅱ?yàn)檫\(yùn)行平臺,,在實(shí)現(xiàn)TCP/IP和PPP協(xié)議的基礎(chǔ)上,,對GPRS通信模塊MC39i進(jìn)行控制,,從而可方便地使用GPRS的數(shù)據(jù)分組業(yè)務(wù)傳輸監(jiān)控數(shù)據(jù),。研究結(jié)果證明,,本系統(tǒng)對風(fēng)光發(fā)電廠監(jiān)控系統(tǒng)的兼容,、維護(hù)等都具有重要的參考價值,。
關(guān)鍵詞: ARM LPC2214 GPRS 風(fēng)光電廠 μCOS-
中圖分類號: TP399
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)06-131-04
Application of SCADA system based on ARM and GPRS technology in wind-solar hybrid power plant
Bao Yujun
School of Electronic Information Electric Engineering, Changzhou Institute of Technology, Changzhou 213002, China
Abstract: The paper introduced used ARM kernel microprocessor LPC2214 and embedded system μC/OS-Ⅱ as the whole system platform, and realized the software about TCP/IP and PPP′s programming. Then we realized the GPRS communication by controlling the MC39i module. So can transmit the power plant′s status parameters easily by means of GPRS network′s services. The conclusions which produced in this paper are especially good for the wind-solar hybrid power plant′s monitoring and controlling, also be good for the whole system′s maintenance.
Key words : ARM; LPC2214; GPRS; wind-solar hybrid power plant


 太陽能和風(fēng)能是公認(rèn)的潔凈資源,,對環(huán)境不產(chǎn)生任何污染,,是21世紀(jì)能源發(fā)展戰(zhàn)略的重要選擇,。隨著風(fēng)光互補(bǔ)發(fā)電系統(tǒng)應(yīng)用范圍的不斷擴(kuò)大,對風(fēng)光互補(bǔ)發(fā)電系統(tǒng)的性能要求也越來越高,。
     通常應(yīng)用于風(fēng)光發(fā)電廠的監(jiān)督控制與數(shù)據(jù)采集系統(tǒng)SCADA(Supervisory Control And Data Acquisition)一般都是由電力通信專網(wǎng)來保障其通信,。但由于風(fēng)光電廠在地理位置上的特殊性、多樣性(通常在邊遠(yuǎn)偏僻地區(qū)),,使得某些通信網(wǎng)無法勝任SCADA的要求[1],。
 通用分組無線業(yè)務(wù)(GPRS)是GSM網(wǎng)絡(luò)的升級,通過在GSM網(wǎng)絡(luò)上增加SGSN和GGSN兩種數(shù)據(jù)交換節(jié)點(diǎn)設(shè)備以及一些更新軟件來實(shí)現(xiàn),,GPRS網(wǎng)絡(luò)中的數(shù)據(jù)傳輸以數(shù)據(jù)分組的形式傳送,。在國內(nèi),移動通信網(wǎng)絡(luò)目前已基本覆蓋全國所有地區(qū),,因此利用技術(shù)上較為成熟的GPRS無線網(wǎng)絡(luò),,可對風(fēng)光發(fā)廠的各個發(fā)電站進(jìn)行實(shí)時遠(yuǎn)程監(jiān)測與控制,這對提高整個風(fēng)光電廠的性能具有實(shí)際意義,。
1 系統(tǒng)組成
 整個風(fēng)光電廠的SCADA系統(tǒng)由風(fēng)光發(fā)電站的狀態(tài)參數(shù)采集部分和數(shù)據(jù)處理及傳輸兩部分組成,。本文重點(diǎn)介紹數(shù)據(jù)處理及傳輸部分。風(fēng)光電廠SCADA系統(tǒng)如圖1所示,。

    通過CAN總線與CAN總線適配器的連接,,將各個風(fēng)光發(fā)電站的狀態(tài)參數(shù)傳輸至基于LPC2214的嵌入式系統(tǒng),數(shù)據(jù)經(jīng)處理后由GPRS通信模塊MC39i輸出,并通過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)對系統(tǒng)存儲資源進(jìn)行擴(kuò)展,,通過移植嵌入式操作系統(tǒng)μC/OS-Ⅱ來管理整個系統(tǒng)的運(yùn)行,。系統(tǒng)所使用的GPRS模塊MC39i由西門子公司生產(chǎn),具有使用方便、接口電路簡單等優(yōu)點(diǎn)[3],。GPRS雖支持TCP/IP業(yè)務(wù),,但因?yàn)镸C39i沒有嵌入TCP/IP協(xié)議和PPP協(xié)議,所以需要在基于LPC2214的嵌入式系統(tǒng)中實(shí)現(xiàn)TCP/IP協(xié)議和PPP協(xié)議,,否則系統(tǒng)無法使用GPRS網(wǎng)絡(luò)的數(shù)據(jù)分組業(yè)務(wù),。

 


2 CAN總線接口電路設(shè)計
 SJA1000與LPC2214之間的接口電路如圖2所示,,主要包含:LPC2214最小系統(tǒng)(未畫出)、CAN通信控制器SJA1000,、CAN總線驅(qū)動器82C250和高速光電耦合器6N137,。LPC2214控制SJA1000的初始化以及對風(fēng)光發(fā)電站狀態(tài)參數(shù)的接收和發(fā)送。其中,,SJA1000的AD0~AD7連接到LPC2214的P2口(DATA0~DATA7),/CS為0時,LPC2214選中SJA1000,。SJA1000的/RD、/WR,、ALE分別與LPC2214的對應(yīng)引腳相連,,/INT接LPC2214的P0.1腳(外部中斷0),用于中斷訪問SJA1000。

    SJA1000的TX0,、RX0通過高速光耦6N137后與82C250的TXD和RXD連接,,這樣可較好地實(shí)現(xiàn)本節(jié)點(diǎn)在CAN總線上的電氣隔離,從而增強(qiáng)CAN總節(jié)點(diǎn)的抗干擾能力,。要注意光耦部分電路采用的兩個電源VCC和VDD必須完全隔離,,否則此光耦就失去了意義。本系統(tǒng)中的電源隔離采用了小功率的電源隔離模塊實(shí)現(xiàn),。
    另外,通過在82C250的CANH和CANL引腳之間串連60 ?贅的電阻以消除電路中信號反射等干擾,。CANH和CANL與地之間并聯(lián)兩個30 pF的小電容,可濾除總線上的高頻干擾和一定的電磁輻射。另外,,在兩根CAN總線輸入端與地之間分別接了一個防雷擊管,,當(dāng)兩端輸入端與地之間出現(xiàn)瞬變干擾時,通過防雷擊管的放電可起到一定的保護(hù)作用,。
3 基于μC/OS-Ⅱ環(huán)境的多任務(wù)設(shè)計
3.1 μC/OS-Ⅱ操作系統(tǒng)在ARM7核上的移植

 移植是使一個實(shí)時內(nèi)核能在其他微處理器上運(yùn)行,,也就是為特定的CPU編寫特定的代碼。因?yàn)?amp;mu;C/OS-Ⅱ在讀/寫CPU寄存器時,只能通過匯編語言來進(jìn)行,因此在使用μC/OS-Ⅱ時,,針對具體的CPU,,用戶需要用匯編語言編寫與CPU硬件相關(guān)的代碼。
 根據(jù)μC/OS-Ⅱ的要求,,移植μC/OS-Ⅱ到一個微處理器的體系結(jié)構(gòu)上需要提供三個文件:在C語言頭文件OS_CPU.H中,,要定義與編譯器無關(guān)的數(shù)據(jù)類型;定義所使用的堆棧數(shù)據(jù)類型以及堆棧的增長方向,;定義一些有關(guān)ARM核的軟中斷,。在C程序源文件OS_CPU_C.C中,主要是μC/OS-Ⅱ任務(wù)堆棧初始化函數(shù),;在匯編程序源文件OS_CPU_A.S中,,主要是時鐘節(jié)拍中斷服務(wù)函數(shù)、中斷退出時的任務(wù)切換函數(shù)以及μC/OS-Ⅱ第一次進(jìn)入多任務(wù)環(huán)境時運(yùn)行最高優(yōu)先級任務(wù)的函數(shù)。
3.2 系統(tǒng)任務(wù)設(shè)計
 μC/OS-Ⅱ要求在其上運(yùn)行的應(yīng)用軟件“任務(wù)化”,,所以需要按μC/OS-Ⅱ的任務(wù)編寫規(guī)范設(shè)計系統(tǒng)應(yīng)用任務(wù),。按任務(wù)優(yōu)先級從高到低設(shè)計如下[4]。
 Task0:完成系統(tǒng)各部分(包括MC39i)初始化工作后,,采用時間片的方式進(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)PING),。
 Task 5:針對UDP數(shù)據(jù)報中的命令請求進(jìn)行響應(yīng),。
 Task 6:針對TCP數(shù)據(jù)報中的命令請求進(jìn)行響應(yīng)(Web服務(wù)器功能)。
 系統(tǒng)任務(wù)之間的通信如圖3所示,。

3.3 IP數(shù)據(jù)包解析模塊軟件設(shè)計
  IP協(xié)議是TCP/IP協(xié)議的核心,也是網(wǎng)絡(luò)層中最重要的協(xié)議,,IP層接收由更低層發(fā)來的數(shù)據(jù)包,,并將其發(fā)送到更高層——TCP或UDP層;反之,,IP報也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層,,并最終通過TCP/IP網(wǎng)絡(luò)進(jìn)行無連接傳送數(shù)據(jù)報。
 本系統(tǒng)向監(jiān)控中心傳送的數(shù)據(jù),,需先進(jìn)行TCP/IP協(xié)議的處理,,即要求LPC2214實(shí)現(xiàn)TCP/IP協(xié)議。其中IP數(shù)據(jù)包的封裝及發(fā)送是通過函數(shù)ip_send( )實(shí)現(xiàn)的,,通常此函數(shù)是在PPP協(xié)議處理函數(shù)中被調(diào)用,。風(fēng)光發(fā)電站各狀態(tài)參數(shù)在被封裝為UDP數(shù)據(jù)包以后,調(diào)用此函數(shù)進(jìn)行IP協(xié)議格式數(shù)據(jù)封裝,即在IP數(shù)據(jù)報頭的數(shù)據(jù)結(jié)構(gòu)中添加IP報頭信息(其中包括計算IP報頭的校驗(yàn)和值),。在封裝好IP包之后,,要設(shè)置此IP報頭數(shù)據(jù)(20 B)的“發(fā)送結(jié)構(gòu)”Send_Ptr,從而與UDP數(shù)據(jù)報構(gòu)成一個發(fā)送數(shù)據(jù)鏈,。
    發(fā)送IP報之前要先得到“發(fā)送信號量”SendFlag,,否則只有掛起當(dāng)前任務(wù)等待此信號量。一旦得到發(fā)送信號量,,對該IP報進(jìn)行PPP協(xié)議數(shù)據(jù)格式封裝,,之后再啟動MC39i發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后要及時釋放發(fā)送信號量,。
 具體程序如下:
  Uint8 ip_send(struct Send_Ptr *TxdData,uint8 * dest_ip,uint8 PROTOCOL)
  {//TxdData為存放待傳輸數(shù)據(jù)首指針,;dest_ip為目的IP地址首指針;IP包中的下一層
//客戶協(xié)議類型(UDP、TCP)
    uint16 CRC;
      uint8 Ip_Head[20];
      struct Send_Ptr TxdIpData;
      uint8 err;
      static uint16 FrameIndex=0;
      Ip_Head[0]=0x45;
       ……                 //進(jìn)行TCP/IP協(xié)議中的IP數(shù)據(jù)包
                                                    //報頭設(shè)置
      Ip_Head[19]=dest_ip[3];
    CRC=CreateIpHeadCrc(Ip_Head);  //對IP首部中每16位
                                 //進(jìn)行二進(jìn)制反碼求和
      Ip_Head[10]=(CRC&0xff00)>>8;
      Ip_Head[11]=CRC&0x00ff;
      TxdIpData.STPTR=TxdData;
      TxdIpData.length=20;
      TxdIpData.DAPTR=Ip_Head;
      OSSemPend(SendFlag,10,&err);
            //獲取μC/OS-Ⅱ操作系統(tǒng)當(dāng)前的發(fā)送權(quán)(得到“發(fā)
                 //送信號量”SendFlag)
      if(err==OS_NO_ERR)          //沒有得到發(fā)送權(quán)(發(fā)送信
                        //號量SendFlag),,掛起任務(wù),,等待
      {
          if(ip_mac_send(&TxdIpData,dest_ip))
                //按照PPP協(xié)議打包數(shù)據(jù),并啟動MC39i
                                                //通信模塊進(jìn)行傳輸數(shù)據(jù)
          {
              OSSemPost(SendFlag);
              //發(fā)送成功,,釋放“發(fā)送信號量”,,并返回“1”
              return(1);
          }
          else
          {
              OSSemPost(SendFlag);
                //發(fā)送失敗,釋放“發(fā)送信號量”,,并返回“0”
              return(0);
          }
      }
      else
          return (0);
    }
4 GPRS通信模塊MC39i的應(yīng)用
 在本系統(tǒng)中MC39i作為GPRS終端的無線收發(fā)模塊,,從TCP/IP模塊接收的IP數(shù)據(jù)包和從基站接收的GPRS分組數(shù)據(jù)進(jìn)行相應(yīng)的協(xié)議處理后再轉(zhuǎn)發(fā)。MC39i提供了9針的標(biāo)準(zhǔn)RS232接口,通過SP3232電平轉(zhuǎn)換芯片與LPC2214的串口相連,,進(jìn)行全雙工通信,。LPC2214與MC39i的接口如圖4所示。

    利用GPRS網(wǎng)絡(luò)傳輸數(shù)據(jù)之前,,需要采用PPP協(xié)議將GPRS通信模塊接入Internet,。PPP協(xié)議位于數(shù)據(jù)鏈路層,是為在兩個對等實(shí)體間傳輸數(shù)據(jù)包連接而設(shè)計的,,使用可擴(kuò)展的鏈路控制協(xié)議LCP來建立,,配置和測試數(shù)據(jù)鏈路。用網(wǎng)絡(luò)控制協(xié)議族NCP建立和配置不同的網(wǎng)絡(luò)層協(xié)議,,并且允許采用多種網(wǎng)絡(luò)層協(xié)議[5],。在本系統(tǒng)完成啟動之后,首先進(jìn)行MC39i的工作頻率等參數(shù)設(shè)置,然后進(jìn)行撥號與PPP協(xié)商,,得到系統(tǒng)本地IP,,從而完成GPRS終端的Internet接入。
    LPC2214通過RS232串行口控制GPRS模塊,,涉及到的軟件包括:MC39i的初始化,、登錄GGSN、與監(jiān)控中心的Internet數(shù)據(jù)傳輸,。LPC2214對MC39i模塊的控制采用AT命令,,圖5給出了GPRS撥號上網(wǎng)及PPP協(xié)商軟件流程圖。

  當(dāng)GPRS撥號成功接入Internet后,,就可以進(jìn)行無線數(shù)據(jù)傳輸了,。LPC2214將風(fēng)光發(fā)電站的狀態(tài)參數(shù)先進(jìn)行TCP/IP協(xié)議的處理(封裝為IP數(shù)據(jù)包),再經(jīng)RS232串口控制MC39i模塊將所有數(shù)據(jù)封裝成GPRS分組數(shù)據(jù)包并傳送到GPRS無線網(wǎng)絡(luò)[6],。反之,,GGSN的回答也可通過串行口進(jìn)入本系統(tǒng)。
     在現(xiàn)有的GPRS網(wǎng)絡(luò)基礎(chǔ)上開發(fā)成本較低的風(fēng)光電廠SCADA系統(tǒng),,具有投入少,、安裝方便、傳輸可靠、方便遠(yuǎn)程管理等,,尤其適合一些邊遠(yuǎn)地區(qū)的風(fēng)光電廠的遠(yuǎn)程監(jiān)控,,其實(shí)用意義大。通過對本系統(tǒng)的試驗(yàn)測試,,基本實(shí)現(xiàn)了數(shù)據(jù)的遠(yuǎn)距離的無線傳輸,,具有時延低、正確率高等優(yōu)點(diǎn),。
參考文獻(xiàn)
[1] 林軼群,趙劍鋒. GPRS技術(shù)在電力SCADA系統(tǒng)中的應(yīng)用[J]. 中國科技信息,,2006(2).
[2] Bao Yujun. Design of the net data information acquisition for electric energy meter[C]. SPIE  Fourth International Symposium on Precision Mechanical Measuremets, August 25-29, Hefei, China, 2008.
[3] 汪俊鋒,陶維青,,張全. 基于MC39I的電能管理終端遠(yuǎn)程GPRS接口設(shè)計[J]. 合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版),2009(1).

[4] Bao Yujun. Design of electric energy meter for longdistance data information transfers which based upon GPRS technology[C].IEEE 2009 International Workshop on Intelligent Systems and Applications, May 23-24, Wuhan,China,2009.
[5] 郝記生,張曦煌.基于GPRS網(wǎng)絡(luò)的無線數(shù)據(jù)傳輸系統(tǒng)[J]. 計算機(jī)工程與設(shè)計, 2008(10).
[6] 李敏,,陳文,王寶勤. 嵌入式GPRS無線通訊系統(tǒng)設(shè)計[J]. 長江大學(xué)學(xué)報(自然科學(xué)版), 2009(6).

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。