<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM與GPRS技術(shù)的SCADA系統在風(fēng)光電廠(chǎng)中的應用

基于A(yíng)RM與GPRS技術(shù)的SCADA系統在風(fēng)光電廠(chǎng)中的應用

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

太陽(yáng)能和風(fēng)能是公認的潔凈資源,對環(huán)境不產(chǎn)生任何污染,是21世紀能源發(fā)展戰略的重要選擇。隨著(zhù)風(fēng)光互補發(fā)電系統應用范圍的不斷擴大,對風(fēng)光互補發(fā)電系統的性能要求也越來(lái)越高。

通常應用于風(fēng)光發(fā)電廠(chǎng)的監督控制與數據采集系統SCADA(Supervisory Control And Data Acquisition)一般都是由電力通信專(zhuān)網(wǎng)來(lái)保障其通信。但由于風(fēng)光電廠(chǎng)在地理位置上的特殊性、多樣性(通常在邊遠偏僻地區),使得某些通信網(wǎng)無(wú)法勝任SCADA的要求[1]。

通用分組無(wú)線(xiàn)業(yè)務(wù)(GPRS)是GSM網(wǎng)絡(luò )的升級,通過(guò)在GSM網(wǎng)絡(luò )上增加SGSN和GGSN兩種數據交換節點(diǎn)設備以及一些更新軟件來(lái)實(shí)現,GPRS網(wǎng)絡(luò )中的數據傳輸以的形式傳送。在國內,移動(dòng)通信網(wǎng)絡(luò )目前已基本覆蓋全國所有地區,因此利用技術(shù)上較為成熟的GPRS無(wú)線(xiàn)網(wǎng)絡(luò ),可對風(fēng)光發(fā)廠(chǎng)的各個(gè)發(fā)電站進(jìn)行實(shí)時(shí)遠程監測與控制,這對提高整個(gè)風(fēng)光電廠(chǎng)的性能具有實(shí)際意義。

1 系統組成

整個(gè)風(fēng)光電廠(chǎng)的SCADA系統由風(fēng)光發(fā)電站的狀態(tài)參數采集部分和數據處理及傳輸兩部分組成。本文重點(diǎn)介紹數據處理及傳輸部分。風(fēng)光電廠(chǎng)SCADA系統如圖1所示。

通過(guò)CAN總線(xiàn)與CAN總線(xiàn)適配器的連接,將各個(gè)風(fēng)光發(fā)電站的狀態(tài)參數傳輸至基于LPC2214的嵌入式系統,數據經(jīng)處理后由模塊MC39i輸出,并通過(guò)GPRS網(wǎng)絡(luò )和Internet將數據傳輸至監控中心。反之,監控中心也可以將各種操作指令傳送至控制終端,以控制風(fēng)光發(fā)電站的運行。本系統的核心部分為“嵌入式模塊”的實(shí)現[2]。

本文引用地址:http://dyxdggzs.com/article/201706/348374.htm

 本系統使用ARM7核微處理器LPC2214,并適當對系統存儲資源進(jìn)行擴展,通過(guò)移植嵌入式操作系統μC/OS-Ⅱ來(lái)管理整個(gè)系統的運行。系統所使用的GPRS模塊MC39i由西門(mén)子公司生產(chǎn),具有使用方便、接口電路簡(jiǎn)單等優(yōu)點(diǎn)[3]。GPRS雖支持TCP/IP業(yè)務(wù),但因為MC39i沒(méi)有嵌入TCP/IP協(xié)議和PPP協(xié)議,所以需要在基于LPC2214的嵌入式系統中實(shí)現TCP/IP協(xié)議和PPP協(xié)議,否則系統無(wú)法使用GPRS網(wǎng)絡(luò )的業(yè)務(wù)。

2 CAN總線(xiàn)接口電路設計

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

SJA1000的TX0、RX0通過(guò)高速光耦6N137后與82C250的TXD和RXD連接,這樣可較好地實(shí)現本節點(diǎn)在CAN總線(xiàn)上的電氣隔離,從而增強CAN總節點(diǎn)的抗干擾能力。要注意光耦部分電路采用的兩個(gè)電源VCC和VDD必須完全隔離,否則此光耦就失去了意義。本系統中的電源隔離采用了小功率的電源隔離模塊實(shí)現。

另外,通過(guò)在82C250的CANH和CANL引腳之間串連60 ?贅的電阻以消除電路中信號反射等干擾。CANH和CANL與地之間并聯(lián)兩個(gè)30 pF的小電容,可濾除總線(xiàn)上的高頻干擾和一定的電磁輻射。另外,在兩根CAN總線(xiàn)輸入端與地之間分別接了一個(gè)防雷擊管,當兩端輸入端與地之間出現瞬變干擾時(shí),通過(guò)防雷擊管的放電可起到一定的保護作用。

3 基于μC/OS-Ⅱ環(huán)境的多任務(wù)設計


3.1 μC/OS-Ⅱ操作系統在A(yíng)RM7核上的移植

移植是使一個(gè)實(shí)時(shí)內核能在其他微處理器上運行,也就是為特定的CPU編寫(xiě)特定的代碼。因為μC/OS-Ⅱ在讀/寫(xiě)CPU寄存器時(shí),只能通過(guò)匯編語(yǔ)言來(lái)進(jìn)行,因此在使用μC/OS-Ⅱ時(shí),針對具體的CPU,用戶(hù)需要用匯編語(yǔ)言編寫(xiě)與CPU硬件相關(guān)的代碼。

根據μC/OS-Ⅱ的要求,移植μC/OS-Ⅱ到一個(gè)微處理器的體系結構上需要提供三個(gè)文件:在C語(yǔ)言頭文件OS_CPU.H中,要定義與編譯器無(wú)關(guān)的數據類(lèi)型;定義所使用的堆棧數據類(lèi)型以及堆棧的增長(cháng)方向;定義一些有關(guān)ARM核的軟中斷。在C程序源文件OS_CPU_C.C中,主要是μC/OS-Ⅱ任務(wù)堆棧初始化函數;在匯編程序源文件OS_CPU_A.S中,主要是時(shí)鐘節拍中斷服務(wù)函數、中斷退出時(shí)的任務(wù)切換函數以及μC/OS-Ⅱ第一次進(jìn)入多任務(wù)環(huán)境時(shí)運行最高優(yōu)先級任務(wù)的函數。

3.2 系統任務(wù)設計

μC/OS-Ⅱ要求在其上運行的應用軟件“任務(wù)化”,所以需要按μC/OS-Ⅱ的任務(wù)編寫(xiě)規范設計系統應用任務(wù)。按任務(wù)優(yōu)先級從高到低設計如下[4]。

Task0:完成系統各部分(包括MC39i)初始化工作后,采用時(shí)間片的方式進(jìn)行PPP數據幀的接收,并完成該數據幀的解析。

Task 1:風(fēng)光發(fā)電廠(chǎng)各發(fā)電站狀態(tài)參數的讀取。
Task 2:UDP數據包的接收處理。
Task 3:TCP數據包的接收處理。
Task 4:ICMP數據包的接收處理(主要是響應PING)。
Task 5:針對UDP數據報中的命令請求進(jìn)行響應。
Task 6:針對TCP數據報中的命令請求進(jìn)行響應(Web服務(wù)器功能)。
系統任務(wù)之間的通信如圖3所示。


3.3 IP數據包解析模塊軟件設計

IP協(xié)議是TCP/IP協(xié)議的核心,也是網(wǎng)絡(luò )層中最重要的協(xié)議,IP層接收由更低層發(fā)來(lái)的數據包,并將其發(fā)送到更高層——TCP或UDP層;反之,IP報也把從TCP或UDP層接收來(lái)的數據包傳送到更低層,并最終通過(guò)TCP/IP網(wǎng)絡(luò )進(jìn)行無(wú)連接傳送數據報。

本系統向監控中心傳送的數據,需先進(jìn)行TCP/IP協(xié)議的處理,即要求LPC2214實(shí)現TCP/IP協(xié)議。其中IP數據包的封裝及發(fā)送是通過(guò)函數ip_send( )實(shí)現的,通常此函數是在PPP協(xié)議處理函數中被調用。風(fēng)光發(fā)電站各狀態(tài)參數在被封裝為UDP數據包以后,調用此函數進(jìn)行IP協(xié)議格式數據封裝,即在IP數據報頭的數據結構中添加IP報頭信息(其中包括計算IP報頭的校驗和值)。在封裝好IP包之后,要設置此IP報頭數據(20 B)的“發(fā)送結構”Send_Ptr,從而與UDP數據報構成一個(gè)發(fā)送數據鏈。

發(fā)送IP報之前要先得到“發(fā)送信號量”SendFlag,否則只有掛起當前任務(wù)等待此信號量。一旦得到發(fā)送信號量,對該IP報進(jìn)行PPP協(xié)議數據格式封裝,之后再啟動(dòng)MC39i發(fā)送數據,數據發(fā)送完畢后要及時(shí)釋放發(fā)送信號量。

具體程序如下:

Uint8 ip_send(struct Send_Ptr *TxdData,uint8 * dest_ip,uint8 PROTOCOL)
{//TxdData為存放待傳輸數據首指針;dest_ip為目的IP地址首指針;IP包中的下一層
//客戶(hù)協(xié)議類(lèi)型(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數據包
//報頭設置
Ip_Head[19]=dest_ip[3];
CRC=CreateIpHeadCrc(Ip_Head); //對IP首部中每16位
//進(jìn)行二進(jìn)制反碼求和
Ip_Head[10]=(CRC0xff00)>>8;
Ip_Head[11]=CRC0x00ff;
TxdIpData.STPTR=TxdData;
TxdIpData.length=20;
TxdIpData.DAPTR=Ip_Head;
OSSemPend(SendFlag,10,err);
//獲取μC/OS-Ⅱ操作系統當前的發(fā)送權(得到“發(fā)
//送信號量”SendFlag)
if(err==OS_NO_ERR) //沒(méi)有得到發(fā)送權(發(fā)送信
//號量SendFlag),掛起任務(wù),等待
{
if(ip_mac_send(TxdIpData,dest_ip))
//按照PPP協(xié)議打包數據,并啟動(dòng)MC39i
//通信模塊進(jìn)行傳輸數據
{
OSSemPost(SendFlag);
//發(fā)送成功,釋放“發(fā)送信號量”,并返回“1”
return(1);
}
else
{
OSSemPost(SendFlag);
//發(fā)送失敗,釋放“發(fā)送信號量”,并返回“0”
return(0);
}
}
else
return (0);
}

4 模塊MC39i的應用

在本系統中MC39i作為GPRS終端的無(wú)線(xiàn)收發(fā)模塊,從TCP/IP模塊接收的IP數據包和從基站接收的GPRS分組數據進(jìn)行相應的協(xié)議處理后再轉發(fā)。MC39i提供了9針的標準RS232接口,通過(guò)SP3232電平轉換芯片與LPC2214的串口相連,進(jìn)行全雙工通信。LPC2214與MC39i的接口如圖4所示。

利用GPRS網(wǎng)絡(luò )傳輸數據之前,需要采用PPP協(xié)議將GPRS通信模塊接入Internet。PPP協(xié)議位于數據鏈路層,是為在兩個(gè)對等實(shí)體間傳輸數據包連接而設計的,使用可擴展的鏈路控制協(xié)議LCP來(lái)建立,配置和測試數據鏈路。用網(wǎng)絡(luò )控制協(xié)議族NCP建立和配置不同的網(wǎng)絡(luò )層協(xié)議,并且允許采用多種網(wǎng)絡(luò )層協(xié)議[5]。在本系統完成啟動(dòng)之后,首先進(jìn)行MC39i的工作頻率等參數設置,然后進(jìn)行撥號與PPP協(xié)商,得到系統本地IP,從而完成GPRS終端的Internet接入。

LPC2214通過(guò)RS232串行口控制GPRS模塊,涉及到的軟件包括:MC39i的初始化、登錄GGSN、與監控中心的Internet數據傳輸。LPC2214對MC39i模塊的控制采用AT命令,圖5給出了GPRS撥號上網(wǎng)及PPP協(xié)商軟件流程圖。

當GPRS撥號成功接入Internet后,就可以進(jìn)行無(wú)線(xiàn)數據傳輸了。LPC2214將風(fēng)光發(fā)電站的狀態(tài)參數先進(jìn)行TCP/IP協(xié)議的處理(封裝為IP數據包),再經(jīng)RS232串口控制MC39i模塊將所有數據封裝成GPRS分組數據包并傳送到GPRS無(wú)線(xiàn)網(wǎng)絡(luò )[6]。反之,GGSN的回答也可通過(guò)串行口進(jìn)入本系統。

在現有的GPRS網(wǎng)絡(luò )基礎上開(kāi)發(fā)成本較低的風(fēng)光電廠(chǎng)SCADA系統,具有投入少、安裝方便、傳輸可靠、方便遠程管理等,尤其適合一些邊遠地區的風(fēng)光電廠(chǎng)的遠程監控,其實(shí)用意義大。通過(guò)對本系統的試驗測試,基本實(shí)現了數據的遠距離的無(wú)線(xiàn)傳輸,具有時(shí)延低、正確率高等優(yōu)點(diǎn)。



評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>