免费色播,亚洲国产欧美国产第一区二区三区,毛片看,日本精品在线观看视频,国产成人精品一区二区免费视频,日本黄色免费网站,一级毛片免费

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

來(lái)源:網(wǎng)絡(luò)

點(diǎn)擊:1751

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: TTCAN,風(fēng)力發(fā)電,控制系統(tǒng)

    1  引言
                   
      近幾年,風(fēng)力發(fā)電產(chǎn)業(yè)開(kāi)始進(jìn)入一個(gè)高速增長(zhǎng)期[1],而隨著風(fēng)電的火熱,風(fēng)力發(fā)電控制技術(shù)也得到了快速的發(fā)展。本文所設(shè)計(jì)的風(fēng)力發(fā)電控制系統(tǒng)采用模塊化設(shè)計(jì),應(yīng)用于1兆瓦風(fēng)力發(fā)電控制。設(shè)計(jì)包括了主控制器模塊、i/o模塊、電網(wǎng)測(cè)量模塊和變槳驅(qū)動(dòng)模塊,各模塊間通過(guò)can總線(xiàn)連接進(jìn)行通訊。
                   
      由于傳統(tǒng)的can網(wǎng)絡(luò)沒(méi)有統(tǒng)一的全局時(shí)鐘,本質(zhì)上是以事件觸發(fā)為基礎(chǔ)的總線(xiàn)系統(tǒng),會(huì)經(jīng)常存在總線(xiàn)時(shí)序混亂、報(bào)文發(fā)送沖突導(dǎo)致發(fā)送延遲等弊端,影響系統(tǒng)的實(shí)時(shí)性[2]。盡管事件觸發(fā)can在報(bào)文發(fā)送失敗后提供自動(dòng)重發(fā)功能,但是發(fā)送的延時(shí)會(huì)導(dǎo)致報(bào)文幀發(fā)送的確切時(shí)間難以預(yù)料,從而導(dǎo)致can網(wǎng)絡(luò)報(bào)文發(fā)送周期的抖動(dòng)。所以報(bào)文發(fā)送時(shí)倘若發(fā)生傳輸錯(cuò)誤,報(bào)文的重傳會(huì)加重can總線(xiàn)的負(fù)擔(dān),很可能造成某報(bào)文幀因重傳的延時(shí)而錯(cuò)過(guò)其有效時(shí)間[3],實(shí)時(shí)性大打折扣。而采用時(shí)間觸發(fā)的ttcan協(xié)議,保證任何時(shí)候總線(xiàn)上只有一條信息傳輸,能有效地避免沖突造成的總線(xiàn)仲裁,避免報(bào)文重傳,在具有較多節(jié)點(diǎn)且通訊量較大的can總線(xiàn)通訊中,能更好地控制通訊周期,提高系統(tǒng)的實(shí)時(shí)性。本論文設(shè)計(jì)采用基于ttcan的can總線(xiàn)通信方式來(lái)實(shí)現(xiàn)分布式風(fēng)力發(fā)電控制系統(tǒng)各模塊間的數(shù)據(jù)通信。同時(shí)結(jié)合冗余措施,旨在提高控制系統(tǒng)的實(shí)時(shí)性和可靠性。
               
    2  系統(tǒng)結(jié)構(gòu)
                   
      圖1為本控制系統(tǒng)總體結(jié)構(gòu)圖,系統(tǒng)包括cpu模塊、變槳伺服卡模塊、3個(gè)i/o模塊和電網(wǎng)測(cè)量模塊一共6個(gè)模塊節(jié)點(diǎn)。系統(tǒng)選用infineon公司xc164cs單片機(jī)來(lái)完成總線(xiàn)架構(gòu)。xc164cs所具有的twincan模塊包括兩個(gè)全功能can節(jié)點(diǎn),與外擴(kuò)can芯片相比在保證速度和穩(wěn)定性的同時(shí)也為軟件編程提供了方便。兩個(gè)全can節(jié)點(diǎn)中的每一個(gè)都能接收和發(fā)送帶11位標(biāo)識(shí)符的標(biāo)準(zhǔn)幀和帶29位標(biāo)識(shí)符的擴(kuò)展幀。兩個(gè)can節(jié)點(diǎn)共享twincan模塊的資源,目的是優(yōu)化can總線(xiàn)通信處理以及使cpu負(fù)荷最小[4]。全can功能與fifo結(jié)構(gòu)的靈活組合可滿(mǎn)足復(fù)雜嵌入式系統(tǒng)的實(shí)時(shí)要求。同時(shí)它具備禁止重發(fā)功能,所以利用各個(gè)模塊xc164cs單片機(jī)的twincan模塊可以很方便地組建控制系統(tǒng)各模塊間雙冗余的ttcan通信網(wǎng)絡(luò)。

                圖1  風(fēng)力發(fā)電控制器系統(tǒng)總體框圖
               


    3  ttcan原理與實(shí)現(xiàn)
                   
      ttcan是在傳統(tǒng)can的基礎(chǔ)上融入時(shí)間觸發(fā)機(jī)制,任何動(dòng)作都是由一個(gè)時(shí)間(全局同步)系列決定的[5],它將通訊周期分割成若干時(shí)間片,同時(shí)分配給各個(gè)節(jié)點(diǎn),形成一個(gè)調(diào)度時(shí)刻表,總線(xiàn)上各個(gè)節(jié)點(diǎn)嚴(yán)格遵照該時(shí)刻表在各自的時(shí)間片中進(jìn)行can數(shù)據(jù)收發(fā)[6],如圖2所示,當(dāng)系統(tǒng)時(shí)鐘到達(dá)3ms和6ms時(shí),發(fā)送報(bào)文a;到達(dá)5ms和9ms時(shí),分別接收?qǐng)?bào)文b和發(fā)送報(bào)文c。網(wǎng)絡(luò)內(nèi)所有的報(bào)文活動(dòng)都安排在一個(gè)這樣的周期性的時(shí)刻表內(nèi),得到了系統(tǒng)信息陣,來(lái)控制所有節(jié)點(diǎn)正常有序的進(jìn)行通訊。從而保證任何時(shí)刻總線(xiàn)上只有一條數(shù)據(jù)傳輸,避免總線(xiàn)仲裁,確保了系統(tǒng)實(shí)時(shí)性,所以ttcan的設(shè)計(jì)實(shí)際上是制定能滿(mǎn)足系統(tǒng)控制周期的can節(jié)點(diǎn)調(diào)度時(shí)刻表[7]。

                圖2  ttcan時(shí)刻調(diào)度表
               

        


      在ttcan網(wǎng)絡(luò)中,節(jié)點(diǎn)的同步是靠所謂的參照?qǐng)?bào)文維持的,如圖3,它由一個(gè)特殊的節(jié)點(diǎn)定期發(fā)送,這就是時(shí)間主機(jī)(主節(jié)點(diǎn))。參照?qǐng)?bào)文也是一個(gè)can數(shù)據(jù)幀,其特征在于它的標(biāo)識(shí)符。有效的參照?qǐng)?bào)文同時(shí)被所有節(jié)點(diǎn)識(shí)別。兩個(gè)參照?qǐng)?bào)文之間的時(shí)間構(gòu)成了can傳輸?shù)幕局芷?,基本周期又由很多時(shí)間窗組成,在每個(gè)時(shí)間窗中可進(jìn)行特定的報(bào)文操作[8]。每一個(gè)有效參照?qǐng)?bào)文啟動(dòng)了一個(gè)新的基本循環(huán),并且引起了每一個(gè)節(jié)點(diǎn)的循環(huán)時(shí)間復(fù)位,于是另一個(gè)基本循環(huán)重新開(kāi)始,也就是說(shuō),ttcan的時(shí)間觸發(fā)通信是基于參照?qǐng)?bào)文的周期通信[9]。

                圖3  ttcan基本循環(huán)
                   


      針對(duì)1mw風(fēng)力發(fā)電控制系統(tǒng),系統(tǒng)包括包含cpu模塊在內(nèi)的6個(gè)節(jié)點(diǎn),對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行編號(hào),在一個(gè)通訊周期中,每個(gè)節(jié)點(diǎn)報(bào)文收發(fā)都有其具體執(zhí)行的時(shí)刻,各節(jié)點(diǎn)嚴(yán)格按照該時(shí)刻表進(jìn)行調(diào)度執(zhí)行相關(guān)操作,從而確保cpu模塊與系統(tǒng)其他各節(jié)點(diǎn)之間快速順暢地進(jìn)行can通訊。
                   
      而在1mw風(fēng)力發(fā)電控制系統(tǒng)can通訊中,系統(tǒng)各節(jié)點(diǎn)報(bào)文在一個(gè)基本周期內(nèi)收發(fā)所用時(shí)刻表參照?qǐng)D4。

                圖4  1mw can通訊調(diào)度時(shí)刻
               

        
      每次通訊周期控制在20ms,也就是說(shuō)每個(gè)基本循環(huán)的周期為20ms,其中節(jié)點(diǎn)0對(duì)應(yīng)cpu模塊,節(jié)點(diǎn)1對(duì)應(yīng)變槳伺服卡,節(jié)點(diǎn)2對(duì)應(yīng)i/o模塊1,節(jié)點(diǎn)3對(duì)應(yīng)i/o模塊2,節(jié)點(diǎn)4對(duì)應(yīng)i/o模塊3,節(jié)點(diǎn)5對(duì)應(yīng)電網(wǎng)測(cè)量模塊,在一個(gè)通訊周期中,每個(gè)節(jié)點(diǎn)報(bào)文收發(fā)都有其具體執(zhí)行的時(shí)刻,各節(jié)點(diǎn)嚴(yán)格按照該時(shí)刻表進(jìn)行調(diào)度執(zhí)行相關(guān)操作。如圖6,cpu模塊在每個(gè)查詢(xún)周期最后會(huì)向總線(xiàn)上各節(jié)點(diǎn)廣播一個(gè)時(shí)鐘同步數(shù)據(jù)幀,通知各從節(jié)點(diǎn)復(fù)位計(jì)數(shù),為下一個(gè)周期做時(shí)鐘同步??偩€(xiàn)上的每個(gè)從節(jié)點(diǎn)只有當(dāng)收到這個(gè)時(shí)鐘同步幀時(shí),才會(huì)重新將它的時(shí)間計(jì)數(shù)清零,同時(shí)在他的中斷發(fā)送時(shí)刻到來(lái)時(shí)進(jìn)行發(fā)送,如果收不到該時(shí)鐘同步幀,從模塊不會(huì)將數(shù)據(jù)發(fā)送至cpu模塊。于是這樣就建立了總線(xiàn)的全局時(shí)間[10],從而確保cpu模塊與系統(tǒng)其它各節(jié)點(diǎn)之間快速順暢地進(jìn)行can通訊。同時(shí)做為從模塊,如果收到的時(shí)鐘同步幀是由a通道傳來(lái),則其發(fā)送數(shù)據(jù)也選擇a通道,如果收到的同步幀是由b通道傳來(lái),則其發(fā)送數(shù)據(jù)選擇b通道。也就是說(shuō)這個(gè)時(shí)鐘同步幀對(duì)從節(jié)點(diǎn)而言還有發(fā)送使能的功效,并且同時(shí)利用這個(gè)時(shí)鐘同步幀來(lái)完成冗余過(guò)程中的通道切換。
               
    4  冗余設(shè)計(jì)
                   
      cpu模塊與各從模塊間采用雙can通信,can a和can b都配置成8 fifo接收和8fifo發(fā)送模式。系統(tǒng)采用冷冗余的方式進(jìn)行can故障處理,正常情況下各模塊均使用can a總線(xiàn)通訊,當(dāng)在發(fā)現(xiàn)cana通道故障的情況下,才去激活系統(tǒng)的canb通道,使系統(tǒng)繼續(xù)正常運(yùn)行。設(shè)計(jì)思路如圖5流程圖所示,當(dāng)系統(tǒng)自行判斷到系統(tǒng)中任一模塊的某個(gè)can通道通訊已經(jīng)出錯(cuò)或中斷時(shí),進(jìn)行報(bào)警并集體同時(shí)切換總線(xiàn)通道,保證系統(tǒng)同樣正常的進(jìn)行通訊。

                圖5  冗余流程
                   


      而要實(shí)現(xiàn)冗余,can通道的故障判斷尤為重要。由于風(fēng)力發(fā)電控制系統(tǒng)中,cpu模塊充當(dāng)著控制器的核心,系統(tǒng)所有的采集輸入都在這里匯集,經(jīng)過(guò)控制流程后又由它產(chǎn)生控制輸出。于是在can網(wǎng)絡(luò)中,cpu模塊同時(shí)充當(dāng)著主節(jié)點(diǎn)的角色。所以系統(tǒng)設(shè)計(jì)在cpu模塊中進(jìn)行can總線(xiàn)故障判斷處理。具體判斷流程如下:cpu模塊中預(yù)設(shè)定時(shí)器中斷(暫設(shè)1ms),對(duì)每個(gè)從節(jié)點(diǎn)都做時(shí)間計(jì)數(shù),當(dāng)每次收到從節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)幀時(shí),對(duì)相應(yīng)節(jié)點(diǎn)的計(jì)數(shù)清零。也就是說(shuō),這個(gè)計(jì)數(shù)就是距上次正確收到該從節(jié)點(diǎn)傳來(lái)數(shù)據(jù)的延時(shí)(單位為ms)。當(dāng)程序判斷這個(gè)計(jì)數(shù)超過(guò)一定值(暫定100ms),認(rèn)為通信超時(shí),該從節(jié)點(diǎn)的can通訊已經(jīng)出錯(cuò)或中斷,此時(shí)整個(gè)控制系統(tǒng)需要切換總線(xiàn)通道,激活canb,重新建立通訊,并進(jìn)行報(bào)警。如下面流程圖6所示。

                圖6  can故障判斷流程圖 
      

             
    5  實(shí)驗(yàn)結(jié)果分析
                   
      基于本方案所設(shè)計(jì)的這種通訊方式,當(dāng)can節(jié)點(diǎn)發(fā)送數(shù)據(jù)時(shí),在其待發(fā)送的數(shù)據(jù)幀最后補(bǔ)加上兩個(gè)字節(jié)的crc校驗(yàn)碼,區(qū)別于twincan模塊自身所帶的crc容錯(cuò)機(jī)制,補(bǔ)加的crc校驗(yàn)是為了防止can傳輸多幀數(shù)據(jù)過(guò)程中出現(xiàn)數(shù)據(jù)丟幀的現(xiàn)象。于是,cpu模塊每次都將接收完成的數(shù)據(jù)進(jìn)行crc判斷,以此驗(yàn)證收到的該幀數(shù)據(jù)是否出錯(cuò)。cpu模塊程序設(shè)計(jì)使其對(duì)它收到的每個(gè)從節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)幀進(jìn)行一個(gè)計(jì)數(shù),每正確收到1幀,計(jì)數(shù)加1。設(shè)查詢(xún)時(shí)刻為t,can通訊周期為t,則t時(shí)刻計(jì)數(shù)值cnt=t/t。以通訊周期20ms為例,每隔1秒鐘,cpu模塊應(yīng)收到的每個(gè)從節(jié)點(diǎn)所傳來(lái)的數(shù)據(jù)幀數(shù)cnt=50,即為32h,于是,我們每隔1秒鐘將這些計(jì)數(shù)通過(guò)串口發(fā)出來(lái),就可以監(jiān)視這些計(jì)數(shù),以此驗(yàn)證ttcan通訊周期長(zhǎng)度,以及can總線(xiàn)切換機(jī)制。具體數(shù)據(jù)參見(jiàn)附表。
                附表 監(jiān)視結(jié)果表

                   


      附表中為20ms通訊周期下,系統(tǒng)上電運(yùn)行10min的一個(gè)情況,據(jù)表分析,系統(tǒng)上電時(shí),延時(shí)1秒鐘開(kāi)始can通訊,正常情況下,每秒鐘包含50個(gè)通訊周期,故應(yīng)正常收發(fā)數(shù)據(jù)50幀,t時(shí)刻計(jì)數(shù)值則剛好滿(mǎn)足cnt=(t-1)*50,相鄰兩秒之間計(jì)數(shù)基本相差32h。但偶爾會(huì)出現(xiàn)前后兩秒相差31h的情況,這種情況出現(xiàn)的原因則是因?yàn)樵谠摪l(fā)送時(shí)刻,該節(jié)點(diǎn)該次數(shù)據(jù)暫未接收完成所致。
                   
      系統(tǒng)上電1min后,嘗試切斷總線(xiàn)上id號(hào)為1的節(jié)點(diǎn),會(huì)發(fā)現(xiàn)該節(jié)點(diǎn)計(jì)數(shù)相對(duì)其他正常節(jié)點(diǎn)少5,則分析推斷該節(jié)點(diǎn)can通訊停頓了100ms后又重新建立,而此刻,系統(tǒng)已經(jīng)完成can通道切換,轉(zhuǎn)用canb運(yùn)行。
               
    6  結(jié)束語(yǔ)
                   
      實(shí)驗(yàn)效果表明,基于冗余ttcan的模塊化風(fēng)力發(fā)電控制系統(tǒng)各模塊間的通信總線(xiàn),相對(duì)于過(guò)去常用的查詢(xún)返回can通信方式,更具效率且更為可靠。它的應(yīng)用,對(duì)于提高整個(gè)控制系統(tǒng)的可靠性和實(shí)時(shí)性極具意義。

    (審核編輯: 智匯小新)