摘要:風力發(fā)電技術目前的發(fā)展很快,通訊系統(tǒng)對于風電系統(tǒng)的整體控制有非常重要的作用。采用羅克韋爾自動化PLC-Controllogix實現(xiàn)了直驅型風力發(fā)電通訊系統(tǒng),研究了PLC與上位機之間的串口通訊,討論了基于VC++的串口通訊工作原理,構建了上位機監(jiān)控軟件。通過實際運行證實了所采用的PLC及上位監(jiān)控軟件的有效性。表明采用羅克韋爾自動化PLC實現(xiàn)的風電通訊系統(tǒng),可以為風電系統(tǒng)運行、控制及管理提供便利條件。
關鍵詞:風力發(fā)電通訊系統(tǒng) 羅克韋爾自動化 PLC VC++ Cmonitor
1引言
風力發(fā)電技術發(fā)展很快,裝機容量不斷增大,在世界各地都受到了廣泛重視。在目前的變速恒頻風電系統(tǒng)中,使用雙饋感應發(fā)電機(DFIG)的雙饋型風電系統(tǒng)市場份額最大,使用永磁同步發(fā)電機(PMSG)的直驅型系統(tǒng)發(fā)展很快[1-2]。不管是雙饋型還是直驅型風電系統(tǒng),其整體控制都比較復雜,需要有主控系統(tǒng)來協(xié)調變槳、偏航、變流器、測量、保護和監(jiān)控等多項環(huán)節(jié),且風電系統(tǒng)通常運行環(huán)境比較惡劣,各執(zhí)行機構之間可能存在一定的距離,因此通訊問題至關重要[3-4]。
可編程序控制器(Programmable Logic Controller,PLC),是一種專為工業(yè)環(huán)境應用而設計的電子系統(tǒng),采用可編程序的存儲器,在內部存儲執(zhí)行邏輯運算、順序控制、定時、計數(shù)和算術運算操作的指令,并通過數(shù)字式和模擬式的輸入和輸出,控制各種類型的生產(chǎn)過程。PLC具有編程簡單,使用方便,抗干擾能力強,在特殊的環(huán)境中仍能可靠地工作,故障修復時間短,維護方便,接口功能強等優(yōu)點[5],因此非常適合風電系統(tǒng)使用。
本文首先說明了了風力發(fā)電通訊系統(tǒng)結構,選擇羅克韋爾自動化的Controllogix作為主控PLC,實現(xiàn)基于PLC的風電通訊系統(tǒng);基于VC++實現(xiàn)通訊系統(tǒng)上位監(jiān)控,討論了VC++實現(xiàn)原理,給出了基于Controllogix的直驅風電通訊系統(tǒng)監(jiān)控效果。
2風力發(fā)電通訊系統(tǒng)結構說明
直接驅動型風電發(fā)電系統(tǒng)結構圖如圖1所示,包括風電機組,永磁同步發(fā)電機,背靠背變流器,由DSP為核心構成的變流器控制器,由PLC為核心構成的風力發(fā)電主控系統(tǒng)及上位機。通訊系統(tǒng)主要由PLC及上位機構成,PLC還要與變流器控制DSP之間進行通訊,由通訊系統(tǒng)實現(xiàn)對直驅型風電系統(tǒng)的監(jiān)控,上位機與PLC之間采用串口通訊。PLC作為下位機使用,完成控制、數(shù)據(jù)采集,以及狀態(tài)判別等工作;上位機用來完成數(shù)據(jù)分析、計算、信息存儲、狀態(tài)顯示、打印輸出等功能,從而實現(xiàn)對風電系統(tǒng)的實時監(jiān)控。
由圖1可以看到,PLC既要與上位機連接,又要與變流器控制DSP連接,圖1中變流器采用雙DSP控制,其他還有變槳控制器等,可能涉及多個處理器,需要由PLC來進行協(xié)調控制,同時要由中央控制室的上位機進行集中監(jiān)控,因此基于PLC的風力發(fā)電通訊系統(tǒng)作用非常重要。
圖1 直接驅動型風力發(fā)電系統(tǒng)結構圖
本文選用羅克韋爾自動化的Controllogix作為主控PLC,對直驅型風力發(fā)電通訊系統(tǒng)進行初步探索。Controllogix是羅克韋爾公司在1998年推出AB系列的模塊化PLC,是目前世界上最具有競爭力的控制系統(tǒng)之一,Controllogix將順序控制、過程控制、傳動控制及運動控制、通訊、IO技術集成在一個平臺上,可以為各種工業(yè)應用提供強有力的支持,適用于各種場合,最大的特點是可以使用網(wǎng)絡將其相互連接,各個控制站之間能夠按照客戶的要求進行信息的交換。對于Controllogix,在組建通訊網(wǎng)絡時,Ethernet/ip、controlnet是比較常用的通訊協(xié)議,除此之外,Controllogix還支持devicenet、DH+、RS232、DH485等,而RS-232/DF1端口分配器擴展了控制器的通訊能力。因此,Controllogix比較適合用于構建風力發(fā)電通訊系統(tǒng)。
3 基于VC++實現(xiàn)的通訊系統(tǒng)上位監(jiān)控
為了更加靈活的監(jiān)控下位機系統(tǒng)的運行,并方便下位機功能的調試和擴充,本文基于VC++6.0開發(fā)了與直驅型風電通訊系統(tǒng)配套的上位機軟件CMonitor,可以提供良好的用戶界面和工具欄、菜單等多操作途徑,并配合形象的位圖動畫功能來實時顯示系統(tǒng)實際狀態(tài)和拓撲,可以完成對風電系統(tǒng)運行方式和運行參數(shù)的控制、修改和監(jiān)視,完成對歷史數(shù)據(jù)的收集和分析,方便用戶對風電系統(tǒng)進行遠程監(jiān)控和調試。
對下位機PLC串口通信模塊進行相應初始化后便可以通過PLC的SCIRX和SCITX收發(fā)數(shù)據(jù),由于PLC接收到的數(shù)據(jù)除了包含命令字外,可能還有其他的數(shù)據(jù)信息,因此針對不同類型的命令字必須有不同的處理方法。定義一個變量cmd來保存當前的命令字信息。
struct {int ID; int c ounter;} cmd;
其中ID是用來標識當前的命令字,c ount er則輔助記錄當前命令字下總共處理過的數(shù)據(jù)字節(jié)數(shù)。利用變量cmd可以有效簡化下位機通訊功能的實現(xiàn)過程,提高通信函數(shù)的穩(wěn)定性。如圖2所示,在SCI通信服務函數(shù)中,程序根據(jù)cmd.ID的值進入不同的分支,每個命令字的任務執(zhí)行完畢后都將cmd.ID賦為0,使空閑時進入0x0分支,不停檢測新的指令,功能的修改或擴充只需要對相應分支做修改即可,易于維護。
圖2 下位機串口通信函數(shù)流程圖
圖3中列出了幾種典型命令字的處理流程,它們均為圖2所示流程圖的一部分。圖3(a)中cmd.ID為0,表示當前無命令字,程序將嘗試從串口讀取數(shù)據(jù),這樣一旦有新的命令字,程序便可以馬上獲知。圖3(b)中所示為cmd.ID為0x01時的處理流程,此時表明上位機在測試通信是否正常,如果可以向串口發(fā)送數(shù)據(jù),則程序在發(fā)送完畢表示成功的數(shù)據(jù)0x01后將cmd.ID重新賦值為0;否則,程序返回,這樣cmd.ID未被修改,中斷函數(shù)在下次運行時仍會處理0x01命令字。圖3(c)為處理0x02命令字的流程,根據(jù)預先規(guī)定0x02對應的指令是禁止PWM輸出,當cmd.ID為0x02時,修改相應的寄存器,禁止PWM輸出,之后由
于要向上位機發(fā)送執(zhí)行成功的信號,也就是發(fā)送0x01,因此最后將cmd.ID的值修改為0x01(命令字0x01會在執(zhí)行完畢后將cmd.ID賦值為0)。這樣在下一次執(zhí)行通信服務函數(shù)的時候將會直接進入0x01命令字分支。命令字0x03,0x04,0x05的處理流程與圖3(c)相似。
圖3 幾種典型命令字的處理流程
命令字0x06對應的指令是修改系統(tǒng)的運行參數(shù),包括有功電流參考(2個字節(jié)),無功電流參考(2個字節(jié)),是否使用載波相移和是否使用SVM(1個字節(jié)),因此共有5個附加數(shù)據(jù),其處理流程如圖3(d)所示,程序首先判斷串口是否有數(shù)據(jù)可讀,有則讀取相應數(shù)據(jù)并存儲,再將計數(shù)值加1,之后判斷計數(shù)值是否已達到5,是則說明5個附加數(shù)據(jù)已經(jīng)讀取完畢,此時根據(jù)讀取的數(shù)據(jù)更新下位機程序中的相應變量,最后將cmd.ID改為0x01,向上位機發(fā)送執(zhí)行成功的響應信號。命令字0x07對應的指令是采集直流電壓,其處理流程如圖3(e)所示。程序判斷是否可向串口發(fā)送數(shù)據(jù),若可以發(fā)送,則根據(jù)計數(shù)值確定發(fā)送低位或者高位,同時計數(shù)值加1,之后判斷計數(shù)值是否為2,是則表明直流電壓已經(jīng)發(fā)送完畢,遂將cmd.ID賦值為0,最后程序返回。
圖3(f)為命令字0x12的處理流程,其相應指令為禁止PLC存儲新的數(shù)據(jù)并從PLC接收存儲的數(shù)據(jù),數(shù)據(jù)共有1600個字節(jié)。程序首先判斷是否可以向串口發(fā)送數(shù)據(jù),如果可以發(fā)送則根據(jù)計數(shù)值來發(fā)送相應的數(shù)據(jù)并將計數(shù)值加1,之后判斷計數(shù)值是否達到1600,是則將cmd.ID賦值為0,進入等待新指令環(huán)節(jié)。
圖3中各命令字的處理流程具有典型性,圖2中其他命令字的處理流程均可以在圖3中找到相對應的一類,因而其實現(xiàn)過程變得簡單、直觀,模塊化程度很高。
4 實現(xiàn)效果
本節(jié)給出了上位機軟件CMonitor的界面圖形,該軟件已經(jīng)具備了較完善的功能,可以應用于下位機程序開發(fā)、優(yōu)化和對對下位機系統(tǒng)的監(jiān)控中,并通過實際運行證實了有效性。
4.1 啟動及登陸界面
CMonitor的啟動和登陸界面如圖4所示,啟動界面顯示了軟件的名稱(Converter Monitor,CMonitor)、版本(V1.0)以及單位信息(中國科學院電工研究所)等;登陸后CMonitor自動測試通信是否正確并檢測MSI的工作狀態(tài),一切正常后才可以使用軟件的各項功能,防止對下位機可能出現(xiàn)的誤操作等,提高了系統(tǒng)的安全性和穩(wěn)定性。
圖4 Cmonitor啟動及登陸界面
4.2 控制面板界面
控制面板是對直驅型風電系統(tǒng)系統(tǒng)進行控制的主要面板,主要包括如下三部分。
(1)拓撲控制部分。顯示了系統(tǒng)的電氣連接,包括永磁同步發(fā)電機,電機側PWM變流器,直流母線,電網(wǎng)側PWM變流器,脈沖開關,并網(wǎng)電感,并網(wǎng)繼電器(3-Phase Breaker),三相電網(wǎng)等。單擊拓撲圖的脈沖開關位置,可以打開或者關閉脈沖開關,從而實現(xiàn)對控制脈沖的控制;單擊拓撲圖的并網(wǎng)繼電器位置,可以斷開或者閉合三相繼電器,實現(xiàn)風電變流器的并網(wǎng)、脫網(wǎng)。脈