技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > CAN總線在風(fēng)力發(fā)電控制系統(tǒng)中的應(yīng)用

CAN總線在風(fēng)力發(fā)電控制系統(tǒng)中的應(yīng)用

時(shí)間:2010-03-23 12:08:41來(lái)源:limin

導(dǎo)語(yǔ):?can總線的特點(diǎn)適用于風(fēng)力發(fā)電機(jī)控制系統(tǒng)的獨(dú)特要求,因此,本文提出一種基于can總線架構(gòu)的風(fēng)力發(fā)電控制系統(tǒng)。

1  引言
      風(fēng)力發(fā)電機(jī)組的控制系統(tǒng)是綜合性控制系統(tǒng),控制系統(tǒng)不僅要監(jiān)視機(jī)組運(yùn)行參數(shù),對(duì)機(jī)組進(jìn)行并網(wǎng)與脫網(wǎng)控制,而且還要根據(jù)風(fēng)速與風(fēng)向的變化,對(duì)機(jī)組進(jìn)行優(yōu)化控制。CAN總線是一種支持分布式控制系統(tǒng)和實(shí)時(shí)性控制的串行通信網(wǎng)絡(luò)。其以多主機(jī)方式工作,通信速率可達(dá)1mbps。
      can總線的上述特點(diǎn)正適用于風(fēng)力發(fā)電機(jī)控制系統(tǒng)的獨(dú)特要求,因此,本文提出一種基于can總線架構(gòu)的風(fēng)力發(fā)電控制系統(tǒng)。控制系統(tǒng)中各模塊之間通過(guò)can總線實(shí)時(shí)交換數(shù)據(jù),實(shí)現(xiàn)主控系統(tǒng)及各控制節(jié)點(diǎn)間的實(shí)時(shí)通信與數(shù)據(jù)交換。文章在分析了can協(xié)議及can獨(dú)立控制器sja1000工作原理和讀寫邏輯的基礎(chǔ)上,設(shè)計(jì)了can接口,給出了硬件原理圖,分析了can通訊程序流程及系統(tǒng)中信號(hào)和控制指令的通訊幀格式。另外,本文還給出了基于嵌入式qt的應(yīng)用程序的設(shè)計(jì)方案。
2  系統(tǒng)結(jié)構(gòu)與功能
      本文基于分散控制系統(tǒng)理念,針對(duì)雙饋型變速恒頻風(fēng)力發(fā)電機(jī)組設(shè)計(jì)控制系統(tǒng)。雙饋型風(fēng)電機(jī)組控制系統(tǒng)基本結(jié)構(gòu)如圖1所示。

雙饋型風(fēng)電機(jī)組控制系統(tǒng)基本結(jié)構(gòu)
圖1  雙饋型風(fēng)電機(jī)組控制系統(tǒng)基本結(jié)構(gòu)

      主控制器選用32位嵌入式處理器at91rm9200,通過(guò)硬件設(shè)計(jì)擴(kuò)展外圍can接口,實(shí)現(xiàn)與其它節(jié)點(diǎn)的通信。同時(shí)外接帶觸摸屏的lcd顯示器,監(jiān)控界面利用嵌入式qt設(shè)計(jì),對(duì)整個(gè)機(jī)組實(shí)時(shí)監(jiān)控。主控制器通過(guò)以太網(wǎng)與風(fēng)電場(chǎng)控制中心通信。變流器控制采用雙pwm控制方式,即由兩個(gè)dsp生成pwm信號(hào),電機(jī)側(cè)部分負(fù)責(zé)電機(jī)勵(lì)磁控制,網(wǎng)側(cè)負(fù)責(zé)并網(wǎng)控制;兩模塊均基于tms320f2812設(shè)計(jì),通過(guò)其自帶的ecan接口與主控制器及其它節(jié)點(diǎn)通信。變槳控制系統(tǒng)同樣基于arm(at91rm9200)設(shè)計(jì),擴(kuò)展can接口實(shí)現(xiàn)通信。變槳控制器和變頻控制器通過(guò)i/o通道采集接收各傳感器數(shù)據(jù),并進(jìn)行相關(guān)計(jì)算與判斷,輸出控制信號(hào),實(shí)現(xiàn)智能分散控制,同時(shí)向主控制器發(fā)送機(jī)組參數(shù)并接收主控命令。整體結(jié)構(gòu)框圖如圖2。

風(fēng)力發(fā)電機(jī)組控制系統(tǒng)整體結(jié)構(gòu)
圖2  風(fēng)力發(fā)電機(jī)組控制系統(tǒng)整體結(jié)構(gòu)

      主控制器位于地面控制柜,變槳控制器位于機(jī)艙控制柜,變頻控制器分電機(jī)側(cè)和網(wǎng)側(cè)兩部分,位于地面控制柜。模塊與模塊之間can總線信號(hào)經(jīng)光電轉(zhuǎn)換后使用光纖連接。
3  can接口硬件設(shè)計(jì)
      can是一種基于廣播的通訊機(jī)制,報(bào)文依靠報(bào)文標(biāo)識(shí)符來(lái)進(jìn)行識(shí)別。can協(xié)議支持兩種幀格式,不同之處在于標(biāo)識(shí)符域的長(zhǎng)度不同,一種被稱為can標(biāo)準(zhǔn)幀,支持11bit的標(biāo)識(shí)符長(zhǎng)度;另一種稱為can擴(kuò)展幀,支持29bit的標(biāo)識(shí)符。
      can接口芯片選用philips公司的can獨(dú)立控制器sja1000。arm處理器at91rm9200內(nèi)部集成了外部總線接口ebi,通過(guò)此接口與sja1000連接。從sja1000輸出的can信號(hào),通過(guò)光藕器件隔離后連接到收發(fā)器tja1050,收發(fā)器的輸出與總線連接。
      sja1000的地址線和數(shù)據(jù)線是分時(shí)復(fù)用的,而at91rm9200的外部數(shù)據(jù)總線接口ebi的地址線和數(shù)據(jù)線是相互獨(dú)立的,因此,需要通過(guò)軟件編程實(shí)現(xiàn)地址的鎖存,以達(dá)到數(shù)據(jù)和地址的分時(shí)傳輸。硬件原理圖如圖3[3]。

can接口硬件原理圖
圖3  can接口硬件原理圖

      sja1000的數(shù)據(jù)/地址復(fù)用總線直接與arm的ebi數(shù)據(jù)總線低8位連接,地址鎖存信號(hào)/ale由arm的a0產(chǎn)生,/cs與/we分別由ncs4和new與a0經(jīng)或運(yùn)算后產(chǎn)生。由硬件電路可確定sja1000的物理地址是0x50000000。
      風(fēng)電場(chǎng)環(huán)境惡劣,為了保證控制系統(tǒng)準(zhǔn)確傳輸數(shù)據(jù),增強(qiáng)can總線節(jié)點(diǎn)的抗干擾性能, sja1000控制器經(jīng)過(guò)高速光藕6n137隔離后與收發(fā)器tja1050相連,實(shí)現(xiàn)總線上各can節(jié)點(diǎn)之間的電氣隔離。采用dc-dc電源隔離模塊dcr010505,實(shí)現(xiàn)光耦兩端的電源隔離。canh接總線的高電平端,canl接總線的低電平端。由于風(fēng)電機(jī)組垂直距離較高,容易受雷電的影響,在兩根can總線輸入端與地之間分別并聯(lián)一30pf的電容和一防雷擊管,以濾除高頻干擾和防止浪涌電壓。
4  can接口通訊軟件設(shè)計(jì)
      對(duì)于can的通訊程序,采用分層處理的方法,包括驅(qū)動(dòng)層和應(yīng)用層。因此,can接口軟件通訊包括兩部分:can驅(qū)動(dòng)程序和can應(yīng)用程序。驅(qū)動(dòng)程序負(fù)責(zé)完成linux內(nèi)核與sja1000之間的數(shù)據(jù)通訊,即linux內(nèi)核設(shè)置sja1000的控制寄存器,讀寫sja1000接收、發(fā)送緩沖器。應(yīng)用程序部分負(fù)責(zé)完成用戶空間和內(nèi)核空間的數(shù)據(jù)交換,以及分析從sja1000接收到的報(bào)文,封裝要發(fā)送報(bào)文。接收的報(bào)文主要包括來(lái)自變流模塊和變槳偏航控制模塊的機(jī)組狀態(tài)信息及風(fēng)速風(fēng)向、各類溫度和轉(zhuǎn)速信號(hào)等。發(fā)送的報(bào)文包括下發(fā)給變流模塊和變槳偏航控制模塊的控制指令及控制參數(shù)。
4.1 can驅(qū)動(dòng)程序設(shè)計(jì)
    (1)底層驅(qū)動(dòng)程序總體設(shè)計(jì)。在linux中設(shè)備驅(qū)動(dòng)程序是由一組數(shù)據(jù)結(jié)構(gòu)和函數(shù)組成的,它包含設(shè)備服務(wù)子程序(如open、read、write、close、ioctl等)、初始化函數(shù)can_init()和中斷處理程序can_interrupt()。
      在linux加載can驅(qū)動(dòng)時(shí)調(diào)用can_init(),向操作系統(tǒng)注冊(cè)設(shè)備,同時(shí)完成can總線波特率的設(shè)置,id過(guò)濾器的設(shè)置,清空接收和發(fā)送緩沖區(qū),開啟中斷等工作,完成初始化后,退出復(fù)位模式,進(jìn)入正常的工作模式。


      read從接收緩沖區(qū)讀取數(shù)據(jù);write向發(fā)送緩沖區(qū)寫人數(shù)據(jù);release關(guān)閉can 控制器;ioctl向can 控制器發(fā)各種操作命令,包括設(shè)置sja1000總線波特率、id過(guò)濾器等;open 打開can 控制器,并使用函數(shù)request_irq()向系統(tǒng)申請(qǐng)中斷,并設(shè)置中斷處理程序?yàn)閏an_interrupt(),當(dāng)sja1000內(nèi)部中斷寄存器(ir)的任意位置為1時(shí),int引腳低電平有效,調(diào)用其中斷處理函數(shù)can-interrupt(),在該函數(shù)中讀取中斷控制寄存器,判斷中斷原因(接收中斷、發(fā)送中斷、錯(cuò)誤中斷、數(shù)據(jù)溢出中斷、喚醒中斷),從而調(diào)用相應(yīng)的服務(wù)子程序。
    (2)sja1000讀寫邏輯分析及設(shè)計(jì)。由于sja1000的地址線和數(shù)據(jù)線是分時(shí)復(fù)用的,需要通過(guò)軟件編程模擬地址鎖存信號(hào),以達(dá)到數(shù)據(jù)和地址的分時(shí)傳輸,因此,在程序設(shè)計(jì)中,要考慮sja1000的讀寫時(shí)序。圖4為sja1000的寫時(shí)序圖。

sja1000寫時(shí)序圖
圖4  sja1000寫時(shí)序圖

4.2 寫時(shí)序邏輯
      通過(guò)分析寫時(shí)序,可知,sja1000的寫數(shù)據(jù)/命令過(guò)程分為以下兩步[4]:
    (1)將sja1000的ale引腳信號(hào)拉高,然后往復(fù)用總線上送地址信號(hào),待數(shù)據(jù)穩(wěn)定后,拉低ale信號(hào),在ale引腳產(chǎn)生下降沿,進(jìn)行地址鎖存。
    (2)將cs引腳信號(hào)拉低,并拉低wr信號(hào),打開寫允許;然后往復(fù)用總線上送數(shù)據(jù)信號(hào),待數(shù)據(jù)穩(wěn)定后,拉高wr信號(hào),使wr引腳產(chǎn)生上升沿,進(jìn)行寫操作,將數(shù)據(jù)寫入sja1000目標(biāo)寄存器。
      linux系統(tǒng)中,不能直接訪問(wèn)物理地址,而是先要映射到內(nèi)核空間中,通過(guò)虛擬地址去訪問(wèn)。由硬件電路可知,sja1000的物理地址是0x50000000,最大空間為為108個(gè)字節(jié)(pelican方式)。sja1000寫程序如下:
    addr = ioremap(0x50000000, 0x80);
    void write_sja1000 (unsigned int data, unsigned int reg) {
    writeb (reg, addr+1);
    writeb (data, addr);
    }
       其中,ioremap()為物理地址到虛擬內(nèi)存的映射,addr為地址映射后得到的內(nèi)核空間虛擬地址;reg是sja1000內(nèi)部寄存器地址;data是要寫的數(shù)據(jù)。writeb(reg, addr+1)模擬ale鎖存地址,發(fā)地址信號(hào)reg,addr+1將使地址線a0產(chǎn)生高電平,由硬件設(shè)計(jì)電路知道這將使地址鎖存信號(hào)ale拉高;然后,reg被送到了復(fù)用總線上。writeb (data, addr)發(fā)送數(shù)據(jù)到地址reg,addr將使a0拉低,reg被鎖存;然后,data被送到復(fù)用總線上,也就寫到了被鎖存的地址reg所指空間。
4.3 讀時(shí)序邏輯
    圖5為sja1000的讀時(shí)序圖。

sja1000的讀時(shí)序
圖5  sja1000的讀時(shí)序

    通過(guò)分析讀時(shí)序,可知,sja1000的讀數(shù)據(jù)/命令過(guò)程分為以下兩步[4]:
    (1) 將sja1000的ale引腳信號(hào)拉高,然后往復(fù)用總線上送地址信號(hào),待數(shù)據(jù)穩(wěn)定后,拉低ale信號(hào),在ale引腳產(chǎn)生下降沿,進(jìn)行地址鎖存。
    (2)將cs引腳信號(hào)拉低,并拉低rd信號(hào),打開讀允許;然后往復(fù)用總線上送數(shù)據(jù)信號(hào),待數(shù)據(jù)穩(wěn)定后,拉高rd信號(hào),使rd引腳產(chǎn)生上升沿,進(jìn)行讀操作,將sja1000目標(biāo)寄存器的數(shù)據(jù)讀回。
    sja1000讀程序如下:
    int read_sja1000 (unsigned int reg) {     
    writeb (reg , addr+1);            
    readb ( addr);
    }
    readb(addr)從地址reg讀取數(shù)據(jù)。addr將使a0拉低,reg被鎖存;然后,通過(guò)復(fù)用總線讀取被鎖存的地址reg所指空間數(shù)據(jù)。
4.4 can通訊應(yīng)用程序設(shè)計(jì)
    (1) can數(shù)據(jù)報(bào)文格式。風(fēng)電機(jī)組控制系統(tǒng)中,各控制模塊之間需要傳輸?shù)男盘?hào)很多,包括模擬量、數(shù)字量以及控制指令和控制參數(shù)等。模擬量包括風(fēng)速風(fēng)向,電壓電流,功率,電網(wǎng)頻率,各類轉(zhuǎn)速和溫度等,數(shù)字量包括機(jī)組的各類狀態(tài)信息,如并網(wǎng)狀態(tài),電源狀態(tài)等及各類故障信息。這些信號(hào)均根據(jù)can協(xié)議封裝為報(bào)文,以數(shù)據(jù)包的形式發(fā)送。每個(gè)報(bào)文可由一個(gè)或一組信號(hào)組成。各個(gè)報(bào)文需要定義其幀格式,包括數(shù)據(jù)id,優(yōu)先級(jí),數(shù)據(jù)長(zhǎng)度等。每個(gè)模擬量均定義為兩個(gè)字節(jié)長(zhǎng)度,數(shù)字量則占1位。為了提高傳輸效率,多個(gè)數(shù)字量組合為一個(gè)報(bào)文來(lái)發(fā)送。
    系統(tǒng)中can通訊協(xié)議采用擴(kuò)展幀格式,29位id定義見圖6。

can通訊協(xié)議擴(kuò)展幀id
圖6  can通訊協(xié)議擴(kuò)展幀id

      其中,命令碼是來(lái)自不同模塊的報(bào)文的代號(hào),占id的高12位,范圍為0x000-0x0FFf,包含同一組信號(hào)的報(bào)文具有唯一的命令碼。源地址和目標(biāo)地址取決于控制器地址,主控制器為0x01,網(wǎng)側(cè)變流控制器為0x02,電機(jī)側(cè)變流控制器為0x03,變槳偏航控制器為0x04。id的低9位分別為后續(xù)幀標(biāo)志和后續(xù)幀幀數(shù),若后續(xù)幀標(biāo)志為1,則表示該報(bào)文還有后續(xù)幀需要傳輸。
    (2) 基于qt/e的圖形界面應(yīng)用程序設(shè)計(jì)。本系統(tǒng)中主控制器圖形界面應(yīng)用程序基于linux平臺(tái)的qt/e實(shí)現(xiàn)。圖形界面應(yīng)用程序主要功能有兩個(gè):一是從can 總線接收風(fēng)電機(jī)組運(yùn)行狀態(tài)信息,并顯示給用戶,二是判斷并處理機(jī)組狀態(tài)信息,通過(guò)can接口向各子控制模塊發(fā)送控制信息。由于本系統(tǒng)中can以多主方式工作,接收來(lái)自多個(gè)節(jié)點(diǎn)的數(shù)據(jù),并向多個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù),因此,在應(yīng)用程序中要封裝不同的報(bào)文,還要分析收到數(shù)據(jù)的信息。
      為了提高系統(tǒng)的響應(yīng),應(yīng)用程序采用多線程機(jī)制,本系統(tǒng)中設(shè)計(jì)三個(gè)獨(dú)立線程來(lái)處理不同的任務(wù)。主線程負(fù)責(zé)主界面實(shí)時(shí)數(shù)據(jù)顯示,歷史數(shù)據(jù)查詢以及機(jī)組狀態(tài)的邏輯判斷和流程控制等。由于數(shù)據(jù)庫(kù)的讀寫是對(duì)磁盤文件的直接操作,速度較慢,因此在一獨(dú)立線程中實(shí)現(xiàn)歷史數(shù)據(jù)的寫操作,以防止對(duì)主線程控制程序的影響,而對(duì)于歷史數(shù)據(jù)的查詢,現(xiàn)場(chǎng)只在特定情況下用到,仍在主線程中實(shí)現(xiàn)。can總線數(shù)據(jù)的交互比較頻繁,為了避免數(shù)據(jù)的丟失,在一獨(dú)立線程中完成數(shù)據(jù)的接收。
5  結(jié)束語(yǔ)
      目前,風(fēng)力發(fā)電控制技術(shù)主要掌握在國(guó)外大企業(yè)手中,國(guó)內(nèi)機(jī)組的控制器主要依靠技術(shù)進(jìn)口,因此,研究并設(shè)計(jì)有自主產(chǎn)權(quán)的機(jī)組控制系統(tǒng)有著深遠(yuǎn)的意義。

參考文獻(xiàn)
    [1] 葉杭冶. 風(fēng)力發(fā)電機(jī)組的控制技術(shù)[m]. 北京:機(jī)械工業(yè)出版社,2006.
    [2] 孫大鵬. 雙饋風(fēng)力發(fā)電機(jī)組電控與安全保護(hù)系統(tǒng)設(shè)計(jì)研究[d]. 北京:華北電力大學(xué)研究生論文,2009.
    [3] 繞運(yùn)濤等. 現(xiàn)場(chǎng)總線can原理與應(yīng)用技術(shù)[m]. 北京:北京航空航天大學(xué)出版社,2007:242-243.
    [4] 儲(chǔ)忠,溫陽(yáng)東. 基于s3c2410控制的can總線接口設(shè)計(jì)[j]. 合肥學(xué)院學(xué)報(bào):自然科學(xué)版,2007,5,2:59-62.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:風(fēng)電控制系統(tǒng)開發(fā)平臺(tái)利器

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)