上傳時(shí)間:2012年1月13日 關(guān)鍵詞:PLC、自動化、風(fēng)力發(fā)電通訊
1引言  風(fēng)力發(fā)電技術(shù)發(fā)展很快,裝機(jī)容量不斷增大,在世界各地都受到了廣泛重視。在目前的變速恒頻風(fēng)電系統(tǒng)中,使用雙饋感應(yīng)發(fā)電機(jī)(DFIG)的雙饋型風(fēng)電系統(tǒng)市場份額最大,使用永磁同步發(fā)電機(jī)(PMSG)的直驅(qū)型系統(tǒng)發(fā)展很快[1-2]。不管是雙饋型還是直驅(qū)型風(fēng)電系統(tǒng),其整體控制都比較復(fù)雜,需要有主控系統(tǒng)來協(xié)調(diào)變槳、偏航、變流器、測量、保護(hù)和監(jiān)控等多項(xiàng)環(huán)節(jié),且風(fēng)電系統(tǒng)通常運(yùn)行環(huán)境比較惡劣,各執(zhí)行機(jī)構(gòu)之間可能存在一定的距離,因此通訊問題至關(guān)重要 [3-4]?! 】删幊绦蚩刂破鳎≒rogrammable Logic Controller,PLC),是一種專為工業(yè)環(huán)境應(yīng)用而設(shè)計(jì)的電子系統(tǒng),采用可編程序的存儲器,在內(nèi)部存儲執(zhí)行邏輯運(yùn)算、順序控制、定時(shí)、計(jì)數(shù)和算術(shù)運(yùn)算操作的指令,并通過數(shù)字式和模擬式的輸入和輸出,控制各種類型的生產(chǎn)過程。PLC具有編程簡單,使用方便,抗干擾能力強(qiáng),在特殊的環(huán)境中仍能可靠地工作,故障修復(fù)時(shí)間短,維護(hù)方便,接口功能強(qiáng)等優(yōu)點(diǎn)[5],因此非常適合風(fēng)電系統(tǒng)使用?! ”疚氖紫日f明了了風(fēng)力發(fā)電通訊系統(tǒng)結(jié)構(gòu),選擇羅克韋爾自動化的Controllogix作為主控PLC,實(shí)現(xiàn)基于PLC的風(fēng)電通訊系統(tǒng);基于VC++實(shí)現(xiàn)通訊系統(tǒng)上位監(jiān)控,討論了VC++實(shí)現(xiàn)原理,給出了基于Controllogix的直驅(qū)風(fēng)電通訊系統(tǒng)監(jiān)控效果。2 風(fēng)力發(fā)電通訊系統(tǒng)結(jié)構(gòu)說明  直接驅(qū)動型風(fēng)電發(fā)電系統(tǒng)結(jié)構(gòu)圖如圖1所示,包括風(fēng)電機(jī)組,永磁同步發(fā)電機(jī),背靠背變流器,由DSP為核心構(gòu)成的變流器控制器,由PLC為核心構(gòu)成的風(fēng)力發(fā)電主控系統(tǒng)及上位機(jī)。通訊系統(tǒng)主要由PLC及上位機(jī)構(gòu)成,PLC還要與變流器控制DSP之間進(jìn)行通訊,由通訊系統(tǒng)實(shí)現(xiàn)對直驅(qū)型風(fēng)電系統(tǒng)的監(jiān)控,上位機(jī)與PLC之間采用串口通訊。PLC作為下位機(jī)使用,完成控制、數(shù)據(jù)采集,以及狀態(tài)判別等工作;上位機(jī)用來完成數(shù)據(jù)分析、計(jì)算、信息存儲、狀態(tài)顯示、打印輸出等功能,從而實(shí)現(xiàn)對風(fēng)電系統(tǒng)的實(shí)時(shí)監(jiān)控?! ∮蓤D1可以看到,PLC既要與上位機(jī)連接,又要與變流器控制DSP連接,圖1中變流器采用雙DSP控制,其他還有變槳控制器等,可能涉及多個處理器,需要由PLC來進(jìn)行協(xié)調(diào)控制,同時(shí)要由中央控制室的上位機(jī)進(jìn)行集中監(jiān)控,因此基于PLC的風(fēng)力發(fā)電通訊系統(tǒng)作用非常重要。
圖1
圖1 直接驅(qū)動型風(fēng)力發(fā)電系統(tǒng)結(jié)構(gòu)圖
  本文選用羅克韋爾自動化的Controllogix作為主控PLC,對直驅(qū)型風(fēng)力發(fā)電通訊系統(tǒng)進(jìn)行初步探索。Controllogix是羅克韋爾公司在1998年推出AB系列的模塊化PLC,是目前世界上最具有競爭力的控制系統(tǒng)之一,Controllogix將順序控制、過程控制、傳動控制及運(yùn)動控制、通訊、IO技術(shù)集成在一個平臺上,可以為各種工業(yè)應(yīng)用提供強(qiáng)有力的支持,適用于各種場合,最大的特點(diǎn)是可以使用網(wǎng)絡(luò)將其相互連接,各個控制站之間能夠按照客戶的要求進(jìn)行信息的交換。對于Controllogix,在組建通訊網(wǎng)絡(luò)時(shí),Ethernet/ip、controlnet是比較常用的通訊協(xié)議,除此之外,Controllogix還支持devicenet、DH+、RS232、DH485等,而RS-232/DF1端口分配器擴(kuò)展了控制器的通訊能力。因此,Controllogix比較適合用于構(gòu)建風(fēng)力發(fā)電通訊系統(tǒng)。3 基于VC++實(shí)現(xiàn)的通訊系統(tǒng)上位監(jiān)控   為了更加靈活的監(jiān)控下位機(jī)系統(tǒng)的運(yùn)行,并方便下位機(jī)功能的調(diào)試和擴(kuò)充,本文基于VC++6.0開發(fā)了與直驅(qū)型風(fēng)電通訊系統(tǒng)配套的上位機(jī)軟件 CMonitor,可以提供良好的用戶界面和工具欄、菜單等多操作途徑,并配合形象的位圖動畫功能來實(shí)時(shí)顯示系統(tǒng)實(shí)際狀態(tài)和拓?fù)?,可以完成對風(fēng)電系統(tǒng)運(yùn)行方式和運(yùn)行參數(shù)的控制、修改和監(jiān)視,完成對歷史數(shù)據(jù)的收集和分析,方便用戶對風(fēng)電系統(tǒng)進(jìn)行遠(yuǎn)程監(jiān)控和調(diào)試。  對下位機(jī)PLC串口通信模塊進(jìn)行相應(yīng)初始化后便可以通過PLC的SCIRX和SCITX收發(fā)數(shù)據(jù),由于PLC接收到的數(shù)據(jù)除了包含命令字外,可能還有其他的數(shù)據(jù)信息,因此針對不同類型的命令字必須有不同的處理方法。定義一個變量cmd來保存當(dāng)前的命令字信息?! truct {int ID; int counter;} cmd;其中ID是用來標(biāo)識當(dāng)前的命令字,counter則輔助記錄當(dāng)前命令字下總共處理過的數(shù)據(jù)字節(jié)數(shù)。利用變量cmd可以有效簡化下位機(jī)通訊功能的實(shí)現(xiàn)過程,提高通信函數(shù)的穩(wěn)定性。如圖2所示,在SCI通信服務(wù)函數(shù)中,程序根據(jù)cmd.ID的值進(jìn)入不同的分支,每個命令字的任務(wù)執(zhí)行完畢后都將cmd.ID 賦為0,使空閑時(shí)進(jìn)入0x0分支,不停檢測新的指令,功能的修改或擴(kuò)充只需要對相應(yīng)分支做修改即可,易于維護(hù)。
圖2
圖2 下位機(jī)串口通信函數(shù)流程圖
  圖3中列出了幾種典型命令字的處理流程,它們均為圖2所示流程圖的一部分。圖3(a)中cmd.ID為0,表示當(dāng)前無命令字,程序?qū)L試從串口讀取數(shù)據(jù),這樣一旦有新的命令字,程序便可以馬上獲知。圖3(b)中所示為cmd.ID為0x01時(shí)的處理流程,此時(shí)表明上位機(jī)在測試通信是否正常,如果可以向串口發(fā)送數(shù)據(jù),則程序在發(fā)送完畢表示成功的數(shù)據(jù)0x01后將cmd.ID重新賦值為0;否則,程序返回,這樣cmd.ID未被修改,中斷函數(shù)在下次運(yùn)行時(shí)仍會處理0x01命令字。圖3(c)為處理0x02命令字的流程,根據(jù)預(yù)先規(guī)定0x02對應(yīng)的指令是禁止PWM輸出,當(dāng)cmd.ID為0x02時(shí),修改相應(yīng)的寄存器,禁止PWM輸出,之后由于要向上位機(jī)發(fā)送執(zhí)行成功的信號,也就是發(fā)送0x01,因此最后將cmd.ID的值修改為0x01(命令字0x01會在執(zhí)行完畢后將cmd.ID賦值為0)。這樣在下一次執(zhí)行通信服務(wù)函數(shù)的時(shí)候?qū)苯舆M(jìn)入0x01命令字分支。命令字0x03,0x04,0x05的處理流程與圖3(c)相似。
圖3
圖3 幾種典型命令字的處理流程
  命令字0x06對應(yīng)的指令是修改系統(tǒng)的運(yùn)行參數(shù),包括有功電流參考(2個字節(jié)),無功電流參考(2個字節(jié)),是否使用載波相移和是否使用SVM(1個字節(jié)),因此共有5個附加數(shù)據(jù),其處理流程如圖3(d)所示,程序首先判斷串口是否有數(shù)據(jù)可讀,有則讀取相應(yīng)數(shù)據(jù)并存儲,再將計(jì)數(shù)值加1,之后判斷計(jì)數(shù)值是否已達(dá)到5,是則說明5個附加數(shù)據(jù)已經(jīng)讀取完畢,此時(shí)根據(jù)讀取的數(shù)據(jù)更新下位機(jī)程序中的相應(yīng)變量,最后將cmd.ID改為0x01,向上位機(jī)發(fā)送執(zhí)行成功的響應(yīng)信號。命令字0x07對應(yīng)的指令是采集直流電壓,其處理流程如圖3(e)所示。程序判斷是否可向串口發(fā)送數(shù)據(jù),若可以發(fā)送,則根據(jù)計(jì)數(shù)值確定發(fā)送低位或者高位,同時(shí)計(jì)數(shù)值加1,之后判斷計(jì)數(shù)值是否為2,是則表明直流電壓已經(jīng)發(fā)送完畢,遂將cmd.ID賦值為0,最后程序返回?! D3(f)為命令字0x12的處理流程,其相應(yīng)指令為禁止PLC存儲新的數(shù)據(jù)并從PLC接收存儲的數(shù)據(jù),數(shù)據(jù)共有1600個字節(jié)。程序首先判斷是否可以向串口發(fā)送數(shù)據(jù),如果可以發(fā)送則根據(jù)計(jì)數(shù)值來發(fā)送相應(yīng)的數(shù)據(jù)并將計(jì)數(shù)值加1,之后判斷計(jì)數(shù)值是否達(dá)到1600,是則將cmd.ID賦值為0,進(jìn)入等待新指令環(huán)節(jié)?! D3中各命令字的處理流程具有典型性,圖2中其他命令字的處理流程均可以在圖3中找到相對應(yīng)的一類,因而其實(shí)現(xiàn)過程變得簡單、直觀,模塊化程度很高。4 實(shí)現(xiàn)效果   本節(jié)給出了上位機(jī)軟件CMonitor的界面圖形,該軟件已經(jīng)具備了較完善的功能,可以應(yīng)用于下位機(jī)程序開發(fā)、優(yōu)化和對對下位機(jī)系統(tǒng)的監(jiān)控中,并通過實(shí)際運(yùn)行證實(shí)了有效性。4.1 啟動及登陸界面  CMonitor的啟動和登陸界面如圖4所示,啟動界面顯示了軟件的名稱(Converter Monitor,CMonitor)、版本(V1.0)以及單位信息(中國科學(xué)院電工研究所)等;登陸后CMonitor自動測試通信是否正確并檢測MSI的工作狀態(tài),一切正常后才可以使用軟件的各項(xiàng)功能,防止對下位機(jī)可能出現(xiàn)的誤操作等,提高了系統(tǒng)的安全性和穩(wěn)定性。
圖4
圖4 Cmonitor啟動及登陸界面
4.2 控制面板界面  控制面板是對直驅(qū)型風(fēng)電系統(tǒng)系統(tǒng)進(jìn)行控制的主要面板,主要包括如下三部分?! 。?)拓?fù)淇刂撇糠?。顯示了系統(tǒng)的電氣連接,包括永磁同步發(fā)電機(jī),電機(jī)側(cè)PWM變流器,直流母線,電網(wǎng)側(cè)PWM變流器,脈沖開關(guān),并網(wǎng)電感,并網(wǎng)繼電器(3-Phase Breaker),三相電網(wǎng)等。單擊拓?fù)鋱D的脈沖開關(guān)位置,可以打開或者關(guān)閉脈沖開關(guān),從而實(shí)現(xiàn)對控制脈沖的控制;單擊拓?fù)鋱D的并網(wǎng)繼電器位置,可以斷開或者閉合三相繼電器,實(shí)現(xiàn)風(fēng)電變流器的并網(wǎng)、脫網(wǎng)。脈沖開關(guān)和并網(wǎng)繼電器的圖形會隨著實(shí)際電路的變化而變化,因此可以直觀的控制和反映系統(tǒng)的實(shí)際狀態(tài)。 ?。?)參數(shù)控制部分??梢孕薷娘L(fēng)電系統(tǒng)在運(yùn)行中的有功電流(Iq)和無功電流(Id),控制風(fēng)電系統(tǒng)變流器使用SVM還是SPWM調(diào)制方法?! 。?)日志記錄部分。顯示用戶在當(dāng)前面板上的所有操作并給出操作結(jié)果,可以回顧用戶的各個操作步驟,監(jiān)視MSI的通信狀態(tài)并為事故分析提供借鑒和參考。4.3 數(shù)據(jù)面板界面  數(shù)據(jù)面板的功能是對系統(tǒng)運(yùn)行中的數(shù)據(jù)進(jìn)行采集,它提供了兩種采集模式:實(shí)時(shí)數(shù)據(jù)采集和歷史數(shù)據(jù)采集,均可以對直流電壓、電網(wǎng)A相電壓、電網(wǎng)B相電壓、電網(wǎng)C相電壓、調(diào)制波A相電壓、調(diào)制波B相電壓、調(diào)制波C相電壓以及逆變器輸出的A相電流、B相電流和C相電流共計(jì)十種數(shù)據(jù)進(jìn)行采集?! D5所示數(shù)據(jù)采集面板界面中,左側(cè)為實(shí)時(shí)數(shù)據(jù)采集部分,點(diǎn)擊相應(yīng)的采集按鈕即會完成采集并顯示出來;右側(cè)為歷史數(shù)據(jù)采集部分,點(diǎn)擊右上方指示燈下的人形按鈕即可以進(jìn)行歷史數(shù)據(jù)采集并繪制相應(yīng)的波形。當(dāng)圖5(a)所示的數(shù)據(jù)采集過程完畢后,虛擬示波器便會將采集到的波形顯示出來,如圖5(b)所示的數(shù)據(jù)面板的虛擬示波器界面,用戶可以將多達(dá)十種變量的波形進(jìn)行顯示、隱藏、移動、放縮等操作,可以用來監(jiān)視程序運(yùn)行、驗(yàn)證程序功能,了解程序的工作狀態(tài)。
圖5
圖5 數(shù)據(jù)采集面板界面
  4.4 工具面板界面  CMonitor的工具面板界面如圖6所示,它可以將Tek示波器波形捕獲的波形進(jìn)行轉(zhuǎn)換,并可以設(shè)置虛擬示波器各通道波形的顏色。程序的封面顯示了軟件的作者和版權(quán)等信息,其功能示意圖如圖6(a)、(b)所示。圖6(a)所示為工具面板打開的一個實(shí)驗(yàn)波形文件,可以看出該圖形底色為黑色,各波形為彩色(明暗程度不同),經(jīng)過工具面板處理后的波形如圖6(b)所示。對比圖6(a)和圖6(b)可以看出,圖6(a)保持了各通道波形與圖6(b)相同,但底色卻變?yōu)榱税咨ぞ呙姘逋瓿闪藢⑹静ㄆ鞑ㄐ无D(zhuǎn)化為標(biāo)準(zhǔn)實(shí)驗(yàn)波形的功能,方便了對波形的分析。5結(jié)束語   本文基于羅克韋爾自動化PLC-Controllogix實(shí)現(xiàn)了直驅(qū)型風(fēng)力發(fā)電通訊系統(tǒng),主要研究了PLC與上位機(jī)之間的串口通訊,基于VC++構(gòu)建了上位監(jiān)控軟件,可以有效地對風(fēng)電系統(tǒng)的運(yùn)行進(jìn)行監(jiān)控,顯示運(yùn)行狀態(tài),記錄歷史數(shù)據(jù)及操作,繪制測試波形,并對實(shí)驗(yàn)波形進(jìn)行處理;可以提供有好的人機(jī)界面,通過進(jìn)一步優(yōu)化及完善功能,可以為直驅(qū)型風(fēng)電系統(tǒng)的調(diào)試、監(jiān)控提供便利。