當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:介紹了用分布式技術(shù)設(shè)計(jì)的發(fā)電機(jī)勵(lì)磁監(jiān)控系統(tǒng)。系統(tǒng)中勵(lì)磁調(diào)節(jié)器內(nèi)的雙微機(jī)采用松耦合并行通信方式進(jìn)行數(shù)據(jù)交換,調(diào)節(jié)器中的勵(lì)磁控制微機(jī)經(jīng)由通信控制微機(jī)實(shí)現(xiàn)與上位PC機(jī)的通信。介紹了系統(tǒng)的構(gòu)成、通信方案

摘要:介紹了用分布式技術(shù)設(shè)計(jì)的發(fā)電機(jī)勵(lì)磁監(jiān)控系統(tǒng)。系統(tǒng)中勵(lì)磁調(diào)節(jié)器內(nèi)的雙微機(jī)采用松耦合并行通信方式進(jìn)行數(shù)據(jù)交換,調(diào)節(jié)器中的勵(lì)磁控制微機(jī)經(jīng)由通信控制微機(jī)實(shí)現(xiàn)與上位PC機(jī)的通信。介紹了系統(tǒng)的構(gòu)成、通信方案、通信協(xié)議及軟件設(shè)計(jì)方法

發(fā)電機(jī)勵(lì)磁系統(tǒng)是采集發(fā)電機(jī)電壓和電流的變化及其它輸入信號(hào),并根據(jù)控制準(zhǔn)則控制勵(lì)磁功率單元輸出勵(lì)磁電流(供給發(fā)電機(jī)轉(zhuǎn)子線(xiàn)圈)的系統(tǒng)。發(fā)電機(jī)勵(lì)磁系統(tǒng)對(duì)于維持電力系統(tǒng)的電壓水平、提高電力系統(tǒng)穩(wěn)定運(yùn)行的能力、改善電力系統(tǒng)及發(fā)電機(jī)的運(yùn)行條件等起到重要的作用。微機(jī)勵(lì)磁調(diào)節(jié)器是勵(lì)磁系統(tǒng)的核心元件,除了完成控制功能外,還要實(shí)現(xiàn)人機(jī)交互、遠(yuǎn)方通信等功能。單微機(jī)難以實(shí)現(xiàn)所有功能,故采用雙微機(jī)設(shè)計(jì)勵(lì)磁調(diào)節(jié)器,并通過(guò)通信網(wǎng)絡(luò)構(gòu)建分布式發(fā)電機(jī)勵(lì)磁監(jiān)控系統(tǒng)。

1 硬件結(jié)構(gòu)

系統(tǒng)硬件結(jié)構(gòu)如圖1所示,其中,勵(lì)磁控制微機(jī)實(shí)現(xiàn)人機(jī)交互和勵(lì)磁電流控制,通信控制微機(jī)協(xié)調(diào)上位監(jiān)控PC機(jī)和勵(lì)磁控制微機(jī)的數(shù)據(jù)交換。

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

通信控制微機(jī)由單片機(jī)、通信接口、波特率設(shè)置、地址編碼、RAM等單元組成。波特率設(shè)置、地址編碼用地址開(kāi)關(guān)來(lái)實(shí)現(xiàn)。地址編碼用于設(shè)置本子站的地址碼,共有256個(gè)編碼。波特率有1200bps、2400bps、4800bps、9600bps等可選。外擴(kuò)一片6264RAM用于存放通信中間數(shù)據(jù)。通信接口采用MAX1487實(shí)現(xiàn)RS485電平的轉(zhuǎn)換。

上位監(jiān)控PC機(jī)可采用IPC或PC機(jī)。操作系統(tǒng)為Windows98。PC機(jī)外接臺(tái)灣研華公司的ADAM4520實(shí)現(xiàn)RS232/RS485的轉(zhuǎn)換。

2 雙微機(jī)通信方案的設(shè)計(jì)

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

串行數(shù)據(jù)通信方式為一個(gè)字節(jié)的8?jìng)€(gè)位(低位在前、高位在后)依次傳送,傳送速度慢。為了提高數(shù)據(jù)交換的速度,采用并行數(shù)據(jù)交換。并行數(shù)據(jù)交換與串行數(shù)據(jù)交換的一個(gè)區(qū)別是通信時(shí)雙微機(jī)要進(jìn)行握手以保證數(shù)據(jù)可靠傳輸。下面以圖2(c)中的CPU1向CPU2傳送數(shù)據(jù)為例說(shuō)明數(shù)據(jù)傳輸?shù)倪^(guò)程。P2.0為數(shù)據(jù)準(zhǔn)備好控制線(xiàn),由CPU1控制;P2.1為數(shù)據(jù)已接收控制線(xiàn),由CPU2控制。

CPU1發(fā)送數(shù)據(jù)的過(guò)程為:CPU1送數(shù)據(jù)到數(shù)據(jù)線(xiàn)前應(yīng)置P2.0為1,并判斷P2.1是否為1,為1則表示CPU2已做好接收數(shù)據(jù)的準(zhǔn)備,CPU1可以送數(shù)據(jù)到數(shù)據(jù)線(xiàn);否則CPU1等待CPU2接收數(shù)據(jù)。CPU1送數(shù)據(jù)到數(shù)據(jù)線(xiàn)后置P2.0為0,這表示CPU1已送數(shù)據(jù)到數(shù)據(jù)線(xiàn)。然后判斷P2.1是否為0,若為0則表示CPU2已接收到CPU1傳送的數(shù)據(jù),CPU1可進(jìn)行下一個(gè)數(shù)據(jù)的傳送;否則CPU1等待CPU2接收數(shù)據(jù)。

    CPU2接收數(shù)據(jù)的過(guò)程為:在CPU2接收來(lái)自CPU1的數(shù)據(jù)前置P2.1為1,并判斷P2.0是否為0,為0表示CPU1已將數(shù)據(jù)送到數(shù)據(jù)線(xiàn)上,CPU2可從數(shù)據(jù)線(xiàn)上讀數(shù);否則CPU2等待CPU1發(fā)送數(shù)據(jù)。CPU2讀入數(shù)據(jù)后置P2.1為0,這表示CPU2已接收到數(shù)據(jù)。然后判斷P2.0是否為1,若為1則CPU2可準(zhǔn)備接收下一個(gè)數(shù)據(jù);否則CPU2等待。程序采用C51語(yǔ)言實(shí)現(xiàn),流程圖如圖3所示。    Modbus通信協(xié)議的軟件設(shè)計(jì)主要為CRC-16校驗(yàn)碼生成的實(shí)現(xiàn)方法。CRC-16校驗(yàn)碼生成編寫(xiě)程序有兩種方法:一種為計(jì)算法;另一種為查表法。上位機(jī)采用計(jì)算法。下面為CRC-16的計(jì)算過(guò)程:

3 上位機(jī)與下位機(jī)之間的通信協(xié)議

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

上位PC機(jī)要監(jiān)測(cè)勵(lì)磁調(diào)節(jié)器的信息時(shí)發(fā)送:地址碼+功能碼(03H)+起始寄存器地址+寄存器個(gè)數(shù)+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié)。正常情況下,勵(lì)磁調(diào)節(jié)器回送:地址碼+功能碼(03H)+數(shù)據(jù)域字節(jié)數(shù)+第1個(gè)數(shù)據(jù)+第2個(gè)數(shù)據(jù)+......+第n個(gè)數(shù)據(jù)+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié)。出錯(cuò)時(shí),勵(lì)磁調(diào)節(jié)器回送:地址碼+功能碼(83H)+錯(cuò)誤代碼(02H/06H)+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié),其中,錯(cuò)誤代碼“02H”表示“非法數(shù)據(jù)位置”,“06H”表示“調(diào)節(jié)器正忙”。可讀取的勵(lì)磁調(diào)節(jié)器寄存器內(nèi)容如表1所示。

表1 可讀取的寄存器的內(nèi)容

數(shù)據(jù)地址 內(nèi)    容
00H
01H
02H
03H
04H
05H
06H
機(jī)端電壓(Uc)
變換電阻后的電壓(Ut)
勵(lì)磁電流實(shí)際值(ILc)
電壓給定值(Ug)
勵(lì)磁電流給定值(ILg)
可控硅觸發(fā)角(a)
勵(lì)磁電流額定值(ILe)

上位PC機(jī)要遠(yuǎn)方控制勵(lì)磁系統(tǒng)時(shí),需通過(guò)設(shè)置命令16H來(lái)實(shí)現(xiàn),發(fā)送:地址碼+功能碼(16H)+起始寄存器地址+寄存器個(gè)數(shù)(01H)+數(shù)據(jù)(1字節(jié))+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié),設(shè)置時(shí)一次只能設(shè)置一種參數(shù)。正常情況下,勵(lì)磁調(diào)節(jié)器回送:地址碼+功能碼(16H)+起始寄存器地址+寄存器個(gè)數(shù)(01H)+ CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié)。出錯(cuò)時(shí),勵(lì)磁調(diào)節(jié)器回送:地址碼+功能碼(96H)+錯(cuò)誤代碼(02H/03H)+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié),其中,錯(cuò)誤代碼“02H”表示“非法數(shù)據(jù)位置”,“03H”表示“非法數(shù)據(jù)值”??稍O(shè)置的勵(lì)磁調(diào)節(jié)器寄存器內(nèi)容如表2所示。

表2 可設(shè)置的寄存器的內(nèi)容

數(shù)據(jù)地址 內(nèi)    容
00H
01H
02H
03H
04H
增勵(lì)
減勵(lì)
給定電壓
給定電流
恒電壓/電流控制

若上位PC機(jī)發(fā)送除03H和16H外的其它命令,勵(lì)磁調(diào)節(jié)器則將收到的功能碼邏輯或“80H”作為回送幀的功能碼,回送內(nèi)容為:地址碼+功能碼+錯(cuò)誤代碼(01H)+CRC校驗(yàn)碼低字節(jié)+CRC校驗(yàn)碼高字節(jié)。

4 上位機(jī)的軟件設(shè)計(jì)

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

 

(1)設(shè)置CRC寄存器,并給其賦初值FFFF?HEX?。

(2)將全部數(shù)據(jù)的第一個(gè)8bit數(shù)據(jù)與16位CRC寄存器的低8位進(jìn)行異或,并把結(jié)果存入CRC寄存器。

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

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

(5)重復(fù)第(3)與第(4)步?直到8次移位全部完成。此時(shí)一個(gè)8bit數(shù)據(jù)處理完畢。

(6)重復(fù)第(2)至第(5)步?直到所有數(shù)據(jù)全部處理完畢。

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

Delphi6.0環(huán)境下CRC-16實(shí)現(xiàn)的函數(shù)如下:

function CRC16?CRC_Data?array of Byte?DATA_Len?integer?? word?

var

CRC16Lo?CRC16Hi?byte? //CRC 寄存器

SaveLo?SaveHi?byte? //CRC 中間寄存器

GLo?GHi?byte? //生成多項(xiàng)式

i?integer? //需校驗(yàn)數(shù)據(jù)的字節(jié)數(shù)

Flag?integer? //移位的次數(shù)(8次)

begin

CRC16Lo?=byte?$ff??

CRC16Hi?=byte?$ff?? //給CRC寄存器賦初值

$ffff(HEX)

GLo?=byte?$01??

GHi?=byte?$a0?? //多項(xiàng)式碼$a001(HEX)

for i?=0 to DATA_Len-1 do //各字節(jié)數(shù)據(jù)

begin

CRC16Lo?=CRC16Lo xor CRC_Data?i?? //各字節(jié)數(shù)據(jù)

與CRC寄存器進(jìn)行異或

for Flag?=0 to 7 do

begin

SaveLo?=CRC16Lo?

SaveHi?=CRC16Hi?

CRC16Hi?=CRC16Hi shr 1? //高字節(jié)右移一位

CRC16Lo?=CRC16Lo shr 1? //低字節(jié)右移一位

if ?SaveHi and byte?$01??=byte?$01? then

//若高字節(jié)LSB為1,則低字節(jié)MSB置1

CRC16Lo?=CRC16Lo or byte?$80??

if ?SaveLo and byte?$01??=byte?$01? then

//若低字節(jié)LSB為1,則與多項(xiàng)式碼進(jìn)行異或

begin

CRC16Hi?=CRC16Hi xor GHi?

CRC16Lo?=CRC16Lo xor GLo?

end?

end?

end?

CRC16?=CRC16Lo?256+CRC16Hi? //CRC低字節(jié)在

前,高字節(jié)在后

end?

用雙微機(jī)松耦合實(shí)現(xiàn)了勵(lì)磁控制微機(jī)與通信控制微機(jī)之間的數(shù)據(jù)交換,并通過(guò)通信控制微機(jī)完成與上位機(jī)之間的通信,將勵(lì)磁調(diào)節(jié)器的任務(wù)進(jìn)行分散,增強(qiáng)了裝置的功能和可靠性。該系統(tǒng)已在國(guó)內(nèi)多個(gè)中、小型水電站投入運(yùn)行,運(yùn)行穩(wěn)定,得到用戶(hù)的好評(píng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉