1. 引言
發(fā)電機(jī)是電力系統(tǒng)的重要組成部分,它的可靠運(yùn)行對(duì)于保證電力系統(tǒng)的穩(wěn)定具有重要意義。發(fā)電機(jī)故障錄波裝置所記錄的數(shù)據(jù)為工作人員正確分析發(fā)電機(jī)故障原因,研究事故對(duì)策,及時(shí)處理事故提供了可靠的依據(jù),同時(shí),根據(jù)故障錄波數(shù)據(jù)還可以分析系統(tǒng)的故障參數(shù)、各電氣量的變化規(guī)律,進(jìn)行故障定位等,這些對(duì)于保證電力系統(tǒng)的安全可靠運(yùn)行起著十分重要的作用。可編程控制器(Programmable Logic Controller,簡(jiǎn)稱PLC)作為工業(yè)控制專用的計(jì)算機(jī),由于其結(jié)構(gòu)簡(jiǎn)單、性能優(yōu)良,抗干擾性能好,可靠性高,在機(jī)械、化工、橡膠、電力等行業(yè)工業(yè)控制現(xiàn)場(chǎng)已日趨廣泛地得到應(yīng)用,成為工控現(xiàn)場(chǎng)進(jìn)行實(shí)時(shí)控制的最主要的控制裝置。本文介紹一種利用可編程控制器和擴(kuò)展模擬量模塊實(shí)現(xiàn)發(fā)電機(jī)故障錄波的方法。
2. 系統(tǒng)的組成和工作原理
系統(tǒng)的組成框圖如圖1所示,由上位計(jì)算機(jī)和1套PLC測(cè)控系統(tǒng)組成。PLC通過(guò)外部變送器、互感器與發(fā)電機(jī)組相連,發(fā)電機(jī)機(jī)端電壓U、定子電流I為三相交流電,分別經(jīng)電壓互感器(PT)和電流互感器(CT)轉(zhuǎn)換成三相100V、5A的二次信號(hào),發(fā)電機(jī)轉(zhuǎn)子勵(lì)磁電流經(jīng)過(guò)分流器RS轉(zhuǎn)換成75mV信號(hào),再經(jīng)過(guò)三相功率(含有功、無(wú)功)變送器、三相電壓變送器、直流電流變送器轉(zhuǎn)換成與其成比例的0~10V電壓信號(hào)后輸入到PLC的模擬量模塊。模擬量經(jīng)過(guò)A/D轉(zhuǎn)換,然后根據(jù)互感器、變送器的變換比例計(jì)算出機(jī)端電壓U、轉(zhuǎn)子電流If、有功功率P和無(wú)功功率Q的等機(jī)組運(yùn)行量。PLC每隔20毫秒采樣一次,每40毫秒將采樣的數(shù)據(jù)保存到故障數(shù)據(jù)區(qū)中。當(dāng)發(fā)生故障后,PLC記錄下故障發(fā)生以后的13秒數(shù)據(jù),故障數(shù)據(jù)記錄過(guò)程結(jié)束。當(dāng)PLC接收到上位機(jī)發(fā)送來(lái)的傳送命令時(shí),PLC將記錄的故障數(shù)據(jù)通過(guò)串口通訊傳送給上位機(jī)。上位機(jī)將數(shù)據(jù)完整的接收下來(lái),經(jīng)過(guò)數(shù)據(jù)處理顯示出機(jī)組運(yùn)行量U、If、P、Q、Ug(電壓給定)在故障前7秒、后13秒的波形曲線,這樣就可以對(duì)發(fā)電機(jī)故障進(jìn)行分析了。在本系統(tǒng)中,PLC選用SIMATIC S7-226;模擬量模塊選用與S7-226配套的產(chǎn)品EM235;PLC與計(jì)算機(jī)之間通過(guò)PC/PPI電纜連接以串行方式進(jìn)行通訊。
圖1 發(fā)電機(jī)故障錄波系統(tǒng)框圖
3. 下位機(jī)程序設(shè)計(jì)
PLC屬于下位機(jī),其程序共分為3個(gè)模塊,它們是初始化子程序、錄波子程序和通信子程序。以下將分別說(shuō)明各模塊的設(shè)計(jì)思想。
3.1 初始化子程序
初始化子程序包括初始化自由口通信參數(shù),設(shè)置接收命令RCV啟動(dòng)和結(jié)束條件,數(shù)據(jù)指針賦初值,連接20ms采樣、接收和發(fā)送中斷。
3.2 錄波子程序
錄波子程序在20ms采樣中斷中調(diào)用,負(fù)責(zé)記錄機(jī)組運(yùn)行量U、If、P、Q、Ug在故障前7秒、后13秒的數(shù)據(jù)。
在PLC中定義一個(gè)連續(xù)的數(shù)據(jù)區(qū)VW4000~VW8998,用來(lái)保存故障數(shù)據(jù)。每個(gè)運(yùn)行量的數(shù)據(jù)占用1000字節(jié)的數(shù)據(jù)塊,地址分配如下,U:VW4000~VW4998 If:VW5000~VW5998 P:VW6000~VW6998 Q:VW7000~VW7998 Ug:VW8000~VW8998。
錄波子程序每隔40毫秒將采樣的數(shù)據(jù)送到各自的數(shù)據(jù)塊中。為每個(gè)數(shù)據(jù)塊定義一個(gè)數(shù)據(jù)指針,其初始值分別指向各數(shù)據(jù)塊的首地址。每傳送一次數(shù)據(jù),各指針向下移動(dòng)2字節(jié)。故障前7秒數(shù)據(jù)(350字節(jié))是循環(huán)記錄的,即如果在故障到來(lái)之前數(shù)據(jù)已存滿,各數(shù)據(jù)指針將重新指向數(shù)據(jù)塊的首地址。定義指針index用來(lái)記錄20秒故障數(shù)據(jù)開始的位置。當(dāng)故障到來(lái)時(shí),數(shù)據(jù)指針指向故障后13秒數(shù)據(jù)(后650字節(jié)),此時(shí)指針index將前7秒數(shù)據(jù)分為前后兩部分,正確的順序是將前后兩部分交換過(guò)來(lái)。當(dāng)后13秒數(shù)據(jù)記錄完后,錄波子程序結(jié)束。程序流程圖如圖2所示。
3.3 通信子程序
通信子程序負(fù)責(zé)與上位機(jī)通信,將存儲(chǔ)在數(shù)據(jù)區(qū)的故障數(shù)據(jù)通過(guò)串口分批傳送給上位機(jī)。上位機(jī)每發(fā)送一次傳送命令(用整數(shù)255表示),PLC在接收中斷程序中判斷收到的字符是否為傳送命令,如果是則將傳送命令標(biāo)志M6.0置位并且在主程序中調(diào)用通信子程序。
定義指針tran_pointer用來(lái)指向待傳送數(shù)據(jù)的首地址,其初值為&VW4000,即指向數(shù)據(jù)區(qū)首地址。定義變量count用來(lái)記錄傳送的次數(shù)。在通信子程序中,首先停止自由口的接收,然后將以指針tran_pointer為首地址,大小200字節(jié)的數(shù)據(jù)傳送到發(fā)送緩沖區(qū)中,接著用發(fā)送命令通過(guò)串口發(fā)送出去。每發(fā)送一次數(shù)據(jù),將指針tran_pointer向下移動(dòng)200字節(jié),變量count值加1, M6.0復(fù)位。當(dāng)上位機(jī)發(fā)送完第26次傳送命令時(shí),PLC中數(shù)據(jù)區(qū)VW4000~VW8998的5000個(gè)字節(jié)已發(fā)送完畢,再將額定電壓、額定電流、額定有功功率、額定無(wú)功功率和指針index發(fā)送出去, count值清零,指針tran_pointer重新初始化,M6.0復(fù)位。至此,一次完整的故障數(shù)據(jù)傳送過(guò)程結(jié)束。
圖2. 錄波子程序流程圖
4. 上位機(jī)程序設(shè)計(jì)
上位機(jī)程序設(shè)計(jì)是以Visual Basic 6.0 為平臺(tái),利用MS Comm控件,以事件驅(qū)動(dòng)方式實(shí)現(xiàn)計(jì)算機(jī)與PLC之間串行通訊,完成數(shù)據(jù)間的交換。上位機(jī)程序包括用戶界面設(shè)計(jì)、通訊和數(shù)據(jù)處理程序、顯示程序等。
4.1 用戶界面設(shè)計(jì)
本