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