基于PLC的發(fā)電機(jī)故障錄波系統(tǒng)的研究與設(shè)計(jì)2009
圖2. 錄波子程序流程圖
4. 上位機(jī)程序設(shè)計(jì)
上位機(jī)程序設(shè)計(jì)是以Visual Basic 6.0 為平臺,利用MS Comm控件,以事件驅(qū)動(dòng)方式實(shí)現(xiàn)計(jì)算機(jī)與PLC之間串行通訊,完成數(shù)據(jù)間的交換。上位機(jī)程序包括用戶界面設(shè)計(jì)、通訊和數(shù)據(jù)處理程序、顯示程序等。
4.1 用戶界面設(shè)計(jì)
本系統(tǒng)中,設(shè)計(jì)了兩個(gè)窗體(Form1和Form2)。其中Form1為主界面,F(xiàn)orm2為波形顯示界面。在Form1中設(shè)計(jì)了一個(gè)MSComm控件、一個(gè)定時(shí)器控件(Timer1)和兩個(gè)按鈕控件(Command1和Command2)。其中Command1是開始按鈕,即按下時(shí)開始和PLC通訊,讀取其中的數(shù)據(jù)。Command2是顯示按鈕,即按下時(shí)調(diào)用窗體Form2,顯示每個(gè)運(yùn)行量的波形曲線。在Form2中設(shè)計(jì)了一個(gè)圖片框控件(Picture1),用來顯示圖形。
4.2 通訊和數(shù)據(jù)處理程序設(shè)計(jì)
設(shè)置Timer1 的Interval屬性等于500,MSComm的InputMode屬性為二進(jìn)制方式,RThreshold屬性等于5010。定時(shí)器每隔500毫秒發(fā)送一次傳送命令,當(dāng)發(fā)送到第26次時(shí),關(guān)閉定時(shí)器,這時(shí)接收緩沖區(qū)將收到5010個(gè)字節(jié)的數(shù)據(jù)并觸發(fā)MSComm的OnComm事件。在OnComm事件子程序中,將接收緩沖區(qū)中的數(shù)據(jù)依次分配到全局?jǐn)?shù)組U_data、If_data、P_data、Q_data和Ug_data中,再根據(jù)各運(yùn)行量的額定值計(jì)算出百分比值。各個(gè)數(shù)組的前350字節(jié)需要根據(jù)指針I(yè)ndex進(jìn)行調(diào)整,具體方法是將數(shù)組下標(biāo)范圍Index~349的數(shù)據(jù)移到前面,下標(biāo)范圍1~I(xiàn)ndex-1的數(shù)據(jù)移到后面。
4.3 顯示程序設(shè)計(jì)
在窗體Form2的裝載事件Form_Load中編寫圖形顯示程序。首先在圖片框控件Picture1中設(shè)置自定義坐標(biāo)系。設(shè)置ScaleMode屬性值等于3,即以象素為度量單位。然后在該坐標(biāo)系下畫出坐標(biāo)軸。X軸以秒為單位,曲線上兩點(diǎn)間的時(shí)間間隔是40毫秒,換算成象素等于1.47。Y軸以百分比為單位,每個(gè)單位刻度換算成象素等于2.1。最后根據(jù)數(shù)組U_data、If_data、P_data、Q_data和Ug_data分別畫出相應(yīng)運(yùn)行量的波形圖。以機(jī)端電壓波形為例,給出編寫的程序如下:
Picture1.DrawWidth = 1 ‘線寬為1
Picture1.CurrentX = 0 ‘指定當(dāng)前坐標(biāo)的位置
Picture1.CurrentY = U_data(0) * 2.1
For i= 1 To 499 ‘畫出曲線
Picture1.Line -(1.47 * i, U_data(i) * 2.1), vbBlue
Next i
5. 系統(tǒng)的運(yùn)行與實(shí)驗(yàn)結(jié)果
在系統(tǒng)運(yùn)行前,要對PLC的通訊參數(shù)進(jìn)行設(shè)置,包括波特率、校驗(yàn)方式、數(shù)據(jù)位位數(shù)和停止位位數(shù)等,此設(shè)置要和上位機(jī)一致。在S7-226中使用自由口模式和上位機(jī)進(jìn)行串口通信時(shí),可以通過特殊寄存器SMB30(端口0)或SMB130(端口1)來設(shè)定。下面以發(fā)電機(jī)空載停機(jī)實(shí)驗(yàn)為例說明系統(tǒng)的運(yùn)行過程。
當(dāng)發(fā)電機(jī)在正??蛰d下停機(jī)時(shí),PLC檢測到停機(jī)信號,將故障標(biāo)志置位,然后記錄下停機(jī)后13秒的數(shù)據(jù)。運(yùn)行上位機(jī)程序,在主界面上按下“傳送”按鈕后,上位機(jī)開始讀取PLC中數(shù)據(jù)。等到程序提示“數(shù)據(jù)傳送完畢”后,按下“顯示”按鈕,將彈出“波形顯示”窗口如圖3所示。從圖中可以看出,該曲線較好的反映了發(fā)電機(jī)停機(jī)前后機(jī)端電壓、勵(lì)磁電流的變化。
圖3 波形顯示窗口
6. 結(jié)束語
此系統(tǒng)已經(jīng)成功應(yīng)用于中、小型同步發(fā)電機(jī)勵(lì)磁系統(tǒng)中,通過發(fā)電機(jī)的動(dòng)態(tài)模擬實(shí)驗(yàn)和實(shí)際中的應(yīng)用來看,該系統(tǒng)性能可靠、操作方便、界面友好,能夠較好地滿足電力系統(tǒng)對于故障記錄、故障分析的需要。
一般情況下,采用微機(jī)控制或以微處理器為內(nèi)核的工業(yè)嵌入式發(fā)電機(jī)勵(lì)磁調(diào)節(jié)器較容易實(shí)現(xiàn)發(fā)電機(jī)運(yùn)行參量的故障錄波,采用PLC作為發(fā)電機(jī)勵(lì)磁調(diào)節(jié)器的硬件平臺,具有應(yīng)用成本低、運(yùn)行可靠性高但程序設(shè)計(jì)難度大的特點(diǎn),其內(nèi)部成功地嵌入發(fā)電機(jī)重要運(yùn)行參量的故障錄波具有較大的實(shí)用價(jià)值,尤其適用于目前大量開發(fā)的中小型水力發(fā)電站的水輪發(fā)電機(jī)組,對于保證發(fā)電機(jī)組的安全、穩(wěn)定、可靠運(yùn)行具有重要的意義。
評論