摘 要:本文介紹了一種記錄發電機故障數據并用波形顯示出來的方法。它利用了PLC及其配套的模擬量擴展模塊進行數據采集和轉換,將故障前后的數據保存在PLC中。在VB環境下實現計算機與PLC的串行通訊,讀取PLC中保存的故障數據并用圖形顯示出來。實踐證明,該系統圖形界面友好,可靠性高,操作方便,應用效果好。
關鍵詞:故障錄波;可編程控制器;串行通訊
Abstract: This paper introduces a kind of method by which we can record fault data of generator and display in figure. It makes use of PLC and its analogue expansion module to collect and convert the fault data and store them in a PLC. Through the serial communication with PLC in VB, the computer read the fault data stored in the PLC and display in figure. It proved that the system has characteristics such as friendly interface, high reliability, easy operation and good application effect etc.
Keywords: Fault record ; PLC ; Serial communication
1. 引言
發電機是電力系統的重要組成部分,它的可靠運行對于保證電力系統的穩定具有重要意義。發電機故障錄波裝置所記錄的數據為工作人員正確分析發電機故障原因,研究事故對策,及時處理事故提供了可靠的依據,同時,根據故障錄波數據還可以分析系統的故障參數、各電氣量的變化規律,進行故障定位等,這些對于保證電力系統的安全可靠運行起著十分重要的作用。可編程控制器(Programmable Logic Controller,簡稱PLC)作為工業控制專用的計算機,由于其結構簡單、性能優良,抗干擾性能好,可靠性高,在機械、化工、橡膠、電力等行業工業控制現場已日趨廣泛地得到應用,成為工控現場進行實時控制的最主要的控制裝置。本文介紹一種利用可編程控制器和擴展模擬量模塊實現發電機故障錄波的方法。
2. 系統的組成和工作原理
系統的組成框圖如圖1所示,由上位計算機和1套PLC測控系統組成。PLC通過外部變送器、互感器與發電機組相連,發電機機端電壓U、定子電流I為三相交流電,分別經電壓互感器(PT)和電流互感器(CT)轉換成三相100V、5A的二次信號,發電機轉子勵磁電流經過分流器RS轉換成75mV信號,再經過三相功率(含有功、無功)變送器、三相電壓變送器、直流電流變送器轉換成與其成比例的0~10V電壓信號后輸入到PLC的模擬量模塊。模擬量經過 A/D轉換,然后根據互感器、變送器的變換比例計算出機端電壓U、轉子電流If、有功功率P和無功功率Q的等機組運行量。PLC每隔20毫秒采樣一次,每 40毫秒將采樣的數據保存到故障數據區中。當發生故障后,PLC記錄下故障發生以后的13秒數據,故障數據記錄過程結束。當PLC接收到上位機發送來的傳送命令時,PLC將記錄的故障數據通過串口通訊傳送給上位機。上位機將數據完整的接收下來,經過數據處理顯示出機組運行量U、If、P、Q、Ug(電壓給定)在故障前7秒、后13秒的波形曲線,這樣就可以對發電機故障進行分析了。在本系統中,PLC選用SIMATIC S7-226;模擬量模塊選用與 S7-226配套的產品EM235;PLC與計算機之間通過PC/PPI電纜連接以串行方式進行通訊。
圖1 發電機故障錄波系統框圖
3. 下位機程序設計
PLC屬于下位機,其程序共分為3個模塊,它們是初始化子程序、錄波子程序和通信子程序。以下將分別說明各模塊的設計思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信參數,設置接收命令RCV啟動和結束條件,數據指針賦初值,連接20ms采樣、接收和發送中斷。
3.2 錄波子程序
錄波子程序在20ms采樣中斷中調用,負責記錄機組運行量U、If、P、Q、Ug在故障前7秒、后13秒的數據。
在PLC中定義一個連續的數據區VW4000~VW8998,用來保存故障數據。每個運行量的數據占用1000字節的數據塊,地址分配如下,U:VW4000~VW4998 If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998 Ug:VW8000~VW8998。
錄波子程序每隔40毫秒將采樣的數據送到各自的數據塊中。為每個數據塊定義一個數據指針,其初始值分別指向各數據塊的首地址。每傳送一次數據,各指針向下移動2字節。故障前7秒數據(350字節)是循環記錄的,即如果在故障到來之前數據已存滿,各數據指針將重新指向數據塊的首地址。定義指針index 用來記錄20秒故障數據開始的位置。當故障到來時,數據指針指向故障后13秒數據(后650字節),此時指針index將前7秒數據分為前后兩部分,正確的順序是將前后兩部分交換過來。當后13秒數據記錄完后,錄波子程序結束。程序流程圖如圖2所示。
3.3 通信子程序
通信子程序負責與上位機通信,將存儲在數據區的故障數據通過串口分批傳送給上位機。上位機每發送一次傳送命令(用整數255表示),PLC在接收中斷程序中判斷收到的字符是否為傳送命令,如果是則將傳送命令標志M6.0置位并且在主程序中調用通信子程序。
定義指針tran_pointer用來指向待傳送數據的首地址,其初值為&VW4000,即指向數據區首地址。定義變量count用來記錄傳送的次數。在通信子程序中,首先停止自由口的接收,然后將以指針tran_pointer為首地址,大小200字節的數據傳送到發送緩沖區中,接著用發送命令通過串口發送出去。每發送一次數據,將指針tran_pointer向下移動200字節,變量count值加1, M6.0復位。當上位機發送完第 26次傳送命令時,PLC中數據區VW4000~VW8998的5000個字節已發送完畢,再將額定電壓、額定電流、額定有功功率、額定無功功率和指針 index發送出去, count值清零,指針tran_pointer重新初始化,M6.0復位。至此,一次完整的故障數據傳送過程結束。
圖2. 錄波子程序流程圖
4. 上位機程序設計
上位機程序設計是以Visual Basic 6.0 為平臺,利用MS Comm控件,以事件驅動方式實現計算機與PLC之間串行通訊,完成數據間的交換。上位機程序包括用戶界面設計、通訊和數據處理程序、顯示程序等。
4.1 用戶界面設計
本系統中,設計了兩個窗體(Form1和Form2)。其中Form1為主界面,Form2為波形顯示界面。在Form1中設計了一個MSComm控件、一個定時器控件(Timer1)和兩個按鈕控件(Command1和Command2)。其中Command1是開始按鈕,即按下時開始和PLC通訊,讀取其中的數據。Command2是顯示按鈕,即按下時調用窗體Form2,顯示每個運行量的波形曲線。在Form2中設計了一個圖片框控件(Picture1),用來顯示圖形。
4.2 通訊和數據處理程序設計
設置Timer1 的Interval屬性等于500,MSComm的InputMode屬性為二進制方式,RThreshold屬性等于5010。定時器每隔500毫秒發送一次傳送命令,當發送到第26次時,關閉定時器,這時接收緩沖區將收到5010個字節的數據并觸發MSComm的OnComm事件。在OnComm事件子程序中,將接收緩沖區中的數據依次分配到全局數組U_data、If_data、P_data、Q_data和Ug_data 中,再根據各運行量的額定值計算出百分比值。各個數組的前350字節需要根據指針Index進行調整,具體方法是將數組下標范圍Index~349的數據移到前面,下標范圍1~Index-1的數據移到后面。
4.3 顯示程序設計
在窗體Form2的裝載事件Form_Load中編寫圖形顯示程序。首先在圖片框控件Picture1中設置自定義坐標系。設置ScaleMode屬性值等于3,即以象素為度量單位。然后在該坐標系下畫出坐標軸。X軸以秒為單位,曲線上兩點間的時間間隔是40毫秒,換算成象素等于1.47。Y軸以百分比為單位,每個單位刻度換算成象素等于2.1。最后根據數組U_data、If_data、P_data、Q_data和Ug_data分別畫出相應運行量的波形圖。以機端電壓波形為例,給出編寫的程序如下:
Picture1.DrawWidth = 1 ‘線寬為1
Picture1.CurrentX = 0 ‘指定當前坐標的位置
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. 系統的運行與實驗結果
在系統運行前,要對PLC的通訊參數進行設置,包括波特率、校驗方式、數據位位數和停止位位數等,此設置要和上位機一致。在S7-226中使用自由口模式和上位機進行串口通信時,可以通過特殊寄存器SMB30(端口0)或SMB130(端口1)來設定。下面以發電機空載停機實驗為例說明系統的運行過程。
當發電機在正常空載下停機時,PLC檢測到停機信號,將故障標志置位,然后記錄下停機后13秒的數據。運行上位機程序,在主界面上按下“傳送”按鈕后,上位機開始讀取PLC中數據。等到程序提示“數據傳送完畢”后,按下“顯示”按鈕,將彈出“波形顯示”窗口如圖3所示。從圖中可以看出,該曲線較好的反映了發電機停機前后機端電壓、勵磁電流的變化。
圖3 波形顯示窗口
6. 結束語
此系統已經成功應用于中、小型同步發電機勵磁系統中,通過發電機的動態模擬實驗和實際中的應用來看,該系統性能可靠、操作方便、界面友好,能夠較好地滿足電力系統對于故障記錄、故障分析的需要。
一般情況下,采用微機控制或以微處理器為內核的工業嵌入式發電機勵磁調節器較容易實現發電機運行參量的故障錄波,采用PLC作為發電機勵磁調節器的硬件平臺,具有應用成本低、運行可靠性高但程序設計難度大的特點,其內部成功地嵌入發電機重要運行參量的故障錄波具有較大的實用價值,尤其適用于目前大量開發的中小型水力發電站的水輪發電機組,對于保證發電機組的安全、穩定、可靠運行具有重要的意義。
參考文獻:
[1] 西門子自動化與驅動集團 《S7-200中文系統手冊》2002
[2] 西門子自動化與驅動集團 《深入淺出西門子 S7-200 PLC》北京:北京航空航天大學出版社 2003.12
[3] 錢雪忠主編《新編Visual Basic程序設計實用教程》北京:機械工業出版社 2004.8
[4] 范逸之,陳立元《Visual Basic與RS-232串行通信控制》 北京:中國青年出版社 2002.1