電機勵磁監控設計管理論文

時間:2022-06-25 06:55:00

導語:電機勵磁監控設計管理論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

電機勵磁監控設計管理論文

摘要:介紹了用分布式技術設計的發電機勵磁監控系統。系統中勵磁調節器內的雙微機采用松耦合并行通信方式進行數據交換,調節器中的勵磁控制微機經由通信控制微機實現與上位PC機的通信。介紹了系統的構成、通信方案、通信協議及軟件設計方法。

關鍵詞:分布式發電機勵磁監控系統

發電機勵磁系統是采集發電機電壓和電流的變化及其它輸入信號,并根據控制準則控制勵磁功率單元輸出勵磁電流(供給發電機轉子線圈)的系統。發電機勵磁系統對于維持電力系統的電壓水平、提高電力系統穩定運行的能力、改善電力系統及發電機的運行條件等起到重要的作用。微機勵磁調節器是勵磁系統的核心元件,除了完成控制功能外,還要實現人機交互、遠方通信等功能。單微機難以實現所有功能,故采用雙微機設計勵磁調節器,并通過通信網絡構建分布式發電機勵磁監控系統。

1硬件結構

系統硬件結構如圖1所示,其中,勵磁控制微機實現人機交互和勵磁電流控制,通信控制微機協調上位監控PC機和勵磁控制微機的數據交換。

勵磁控制微機采用51單片機的應用模式,由顯示、顯示召喚、按鍵、模擬量輸入、PID參數設置、看門狗電路、同步信號輸入、觸發脈沖輸出、滅磁接點輸入等單元組成。顯示單元采用外接6片串入并出移位寄存器芯片74LS164驅動發光數碼管,顯示內容由召喚顯示撥輪開關進行選擇,有巡回和召喚兩種顯示方式。外擴一片并行接口芯片8155,8155的A口與面板上的撥輪開關相連,用于召喚顯示;B口與八位地址開關相連,用于設定PID參數;C口用于輸出觸發脈沖,脈沖經達林頓管放大、脈沖變壓器隔離后接到主回路可控硅的觸發極。滅磁接點、按鍵接到單片機的I/O口線,按鍵主要有增勵、減勵、運行方式恒電壓/恒電流選擇等。同步信號經隔離后接到單片機的INT1管腳。模擬量經ADC0809A/D轉換芯片接到單片機,采集的主要模擬量有發電機機端電壓、勵磁電流、發電機送出的無功電流、電壓給定值、勵磁電流給定值等。

通信控制微機由單片機、通信接口、波特率設置、地址編碼、RAM等單元組成。波特率設置、地址編碼用地址開關來實現。地址編碼用于設置本子站的地址碼,共有256個編碼。波特率有1200bps、2400bps、4800bps、9600bps等可選。外擴一片6264RAM用于存放通信中間數據。通信接口采用MAX1487實現RS485電平的轉換。

上位監控PC機可采用IPC或PC機。操作系統為Windows98。PC機外接臺灣研華公司的ADAM4520實現RS232/RS485的轉換。

2雙微機通信方案的設計

雙微機數據交換有松耦合和緊耦合兩種方式。松耦合采用數據通信方式進行兩機數據交換,緊耦合采用共享數據存儲器方式進行兩機數據交換。本系統中勵磁控制微機與通信控制微機的數據交換方式為松耦合方式,通信協議自定義。在松耦合方式中可用的數據通信方式有串行異步通信、串行外設接口(SPI)、并行數據通信等,如圖2所示。

串行數據通信方式為一個字節的8個位(低位在前、高位在后)依次傳送,傳送速度慢。為了提高數據交換的速度,采用并行數據交換。并行數據交換與串行數據交換的一個區別是通信時雙微機要進行握手以保證數據可靠傳輸。下面以圖2(c)中的CPU1向CPU2傳送數據為例說明數據傳輸的過程。P2.0為數據準備好控制線,由CPU1控制;P2.1為數據已接收控制線,由CPU2控制。

CPU1發送數據的過程為:CPU1送數據到數據線前應置P2.0為1,并判斷P2.1是否為1,為1則表示CPU2已做好接收數據的準備,CPU1可以送數據到數據線;否則CPU1等待CPU2接收數據。CPU1送數據到數據線后置P2.0為0,這表示CPU1已送數據到數據線。然后判斷P2.1是否為0,若為0則表示CPU2已接收到CPU1傳送的數據,CPU1可進行下一個數據的傳送;否則CPU1等待CPU2接收數據。

CPU2接收數據的過程為:在CPU2接收來自CPU1的數據前置P2.1為1,并判斷P2.0是否為0,為0表示CPU1已將數據送到數據線上,CPU2可從數據線上讀數;否則CPU2等待CPU1發送數據。CPU2讀入數據后置P2.1為0,這表示CPU2已接收到數據。然后判斷P2.0是否為1,若為1則CPU2可準備接收下一個數據;否則CPU2等待。程序采用C51語言實現,流程圖如圖3所示。

3上位機與下位機之間的通信協議

通信控制微機與上位PC機之間的通信采用Modbus協議。Modbus協議是一種應用于電子控制器上的協議,通過該協議,控制器之間以及控制器經由網絡(例如以太網)和其它設備之間可以通信,已成為一種通用的工業標準。Modbus協議有兩種傳輸模式:ASCII模式和RTU模式,本系統中采用RTU模式,使用RS485總線。通信格式為:數據幀共11位,1個起始位,8個數據位,兩個停止位,無奇偶校驗位;通信功能碼為:03H(召測),16H(設置);通信時對數據域進行CRC-16校驗,校驗只針對數據位,不包括起始位、停止位;校驗多項式為G(X)=X16+X12+X5+1;命令行格式為:地址碼+功能碼+數據域+CRC校驗。

上位PC機要監測勵磁調節器的信息時發送:地址碼+功能碼(03H)+起始寄存器地址+寄存器個數+CRC校驗碼低字節+CRC校驗碼高字節。正常情況下,勵磁調節器回送:地址碼+功能碼(03H)+數據域字節數+第1個數據+第2個數據+......+第n個數據+CRC校驗碼低字節+CRC校驗碼高字節。出錯時,勵磁調節器回送:地址碼+功能碼(83H)+錯誤代碼(02H/06H)+CRC校驗碼低字節+CRC校驗碼高字節,其中,錯誤代碼“02H”表示“非法數據位置”,“06H”表示“調節器正忙”。可讀取的勵磁調節器寄存器內容如表1所示。

表1可讀取的寄存器的內容

數據地址內容

00H

01H

02H

03H

04H

05H

06H機端電壓(Uc)

變換電阻后的電壓(Ut)

勵磁電流實際值(ILc)

電壓給定值(Ug)

勵磁電流給定值(ILg)

可控硅觸發角(a)

勵磁電流額定值(ILe)

上位PC機要遠方控制勵磁系統時,需通過設置命令16H來實現,發送:地址碼+功能碼(16H)+起始寄存器地址+寄存器個數(01H)+數據(1字節)+CRC校驗碼低字節+CRC校驗碼高字節,設置時一次只能設置一種參數。正常情況下,勵磁調節器回送:地址碼+功能碼(16H)+起始寄存器地址+寄存器個數(01H)+CRC校驗碼低字節+CRC校驗碼高字節。出錯時,勵磁調節器回送:地址碼+功能碼(96H)+錯誤代碼(02H/03H)+CRC校驗碼低字節+CRC校驗碼高字節,其中,錯誤代碼“02H”表示“非法數據位置”,“03H”表示“非法數據值”。可設置的勵磁調節器寄存器內容如表2所示。

表2可設置的寄存器的內容

數據地址內容

00H

01H

02H

03H

04H增勵

減勵

給定電壓

給定電流

恒電壓/電流控制

若上位PC機發送除03H和16H外的其它命令,勵磁調節器則將收到的功能碼邏輯或“80H”作為回送幀的功能碼,回送內容為:地址碼+功能碼+錯誤代碼(01H)+CRC校驗碼低字節+CRC校驗碼高字節。

4上位機的軟件設計

上位PC機完成人機交互、與勵磁調節器內的通信控制微機進行通信等任務。其軟件用Delphi6.0設計,其中數據庫用Delphi6.0自帶的Paradox數據庫。人機交互功能主要有:對勵磁系統各重要參數(如勵磁電流、機端電壓、可控硅觸發角等)進行實時監測,并可進行圖形化顯示、報表打印、事件順序記錄、越限報警;向勵磁調節器發送增勵、減勵等各種控制命令;操作人員可進行管理等。軟件的另一模塊為通信程序。利用Delphi設計串口通信程序一般有三種方法:一是利用Windows的通信API函數;二是利用第三方提供的通信用動態鏈接庫;三是采用Microsoft或其它公司的通信OCX控件。本系統采用Microsoft公司的MSComm通信OCX控件來設計通信軟件。MSComm是VB中的OCX控件,使用前要將其添加到Delphi中,添加方法如下:選擇菜單“Component”下的子菜單“ImportActiveXControl”,在“ImportActiveX”頁內選擇“MicrosoftCommControl”,點擊“Install”安裝。編程時應注意其Input和Output屬性的數據類型為OleVariant,這與VB和VC不同。

Modbus通信協議的軟件設計主要為CRC-16校驗碼生成的實現方法。CRC-16校驗碼生成編寫程序有兩種方法:一種為計算法;另一種為查表法。上位機采用計算法。下面為CRC-16的計算過程:

(1)設置CRC寄存器,并給其賦初值FFFFHEX。

(2)將全部數據的第一個8bit數據與16位CRC寄存器的低8位進行異或,并把結果存入CRC寄存器。

(3)CRC寄存器整體向右移一位,MSB補零,移出并檢查LSB。

(4)如果LSB為0,重復第三步;若LSB為1,CRC寄存器與多項式碼相異或。

(5)重復第(3)與第(4)步直到8次移位全部完成。此時一個8bit數據處理完畢。

(6)重復第(2)至第(5)步直到所有數據全部處理完畢。

(7)最終CRC寄存器的內容即為CRC值。

Delphi6.0環境下CRC-16實現的函數如下:

functionCRC16CRC_DataarrayofByteDATA_Lenintegerword

var

CRC16LoCRC16Hibyte//CRC寄存器

SaveLoSaveHibyte//CRC中間寄存器

GLoGHibyte//生成多項式

iinteger//需校驗數據的字節數

Flaginteger//移位的次數(8次)

begin

CRC16Lo=byte$ff

CRC16Hi=byte$ff//給CRC寄存器賦初值

$ffff(HEX)

GLo=byte$01

GHi=byte$a0//多項式碼$a001(HEX)

fori=0toDATA_Len-1do//各字節數據

begin

CRC16Lo=CRC16LoxorCRC_Datai//各字節數據

與CRC寄存器進行異或

forFlag=0to7do

begin

SaveLo=CRC16Lo

SaveHi=CRC16Hi

CRC16Hi=CRC16Hishr1//高字節右移一位

CRC16Lo=CRC16Loshr1//低字節右移一位

ifSaveHiandbyte$01=byte$01then

//若高字節LSB為1,則低字節MSB置1

CRC16Lo=CRC16Loorbyte$80

ifSaveLoandbyte$01=byte$01then

//若低字節LSB為1,則與多項式碼進行異或

begin

CRC16Hi=CRC16HixorGHi

CRC16Lo=CRC16LoxorGLo

end

end

end

CRC16=CRC16Lo256+CRC16Hi//CRC低字節在

前,高字節在后

end

用雙微機松耦合實現了勵磁控制微機與通信控制微機之間的數據交換,并通過通信控制微機完成與上位機之間的通信,將勵磁調節器的任務進行分散,增強了裝置的功能和可靠性。該系統已在國內多個中、小型水電站投入運行,運行穩定,得到用戶的好評。