国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于量子平臺(tái)狀態(tài)機(jī)的橋式起重機(jī)控制系統(tǒng)軟件設(shè)計(jì)

2015-12-15 10:45:52王小勇薛峰
電氣自動(dòng)化 2015年2期
關(guān)鍵詞:狀態(tài)機(jī)變頻器量子

王小勇,薛峰

(1.上海辛格林納新時(shí)達(dá)電機(jī)有限公司,上海 200072;2.揚(yáng)州市經(jīng)濟(jì)和信息化委員會(huì),江蘇 揚(yáng)州 225209)

0 引言

橋式起重機(jī)作為一種物料搬運(yùn)設(shè)備,對(duì)于企業(yè)生產(chǎn)活動(dòng)中的重型物料搬運(yùn),和生產(chǎn)活動(dòng)的有序進(jìn)行具有重要意義。傳統(tǒng)的橋式起重控制系統(tǒng)主要采用繼電器接觸器進(jìn)行控制,采用交流繞線串電阻的方法進(jìn)行啟動(dòng)和調(diào)速[1],這種控制系統(tǒng)存在可靠性差,操作復(fù)雜,故障率高的缺點(diǎn),并且造成電能浪費(fèi)。近年來(lái),由于變頻器在起重領(lǐng)域的廣泛應(yīng)用,改善了傳統(tǒng)控制系統(tǒng)的一些缺點(diǎn),大部分變頻器必須配合PLC控制器使用,但PLC的IO刷新一般在整個(gè)程序的單次循環(huán)結(jié)束以后,可能會(huì)造成實(shí)時(shí)性偏弱并且可能由此造成潛在的邏輯風(fēng)險(xiǎn);另外,PLC程序編制過(guò)程中對(duì)于時(shí)序邏輯的保證完全依賴于程序員個(gè)人的邏輯嚴(yán)謹(jǐn)程度,沒(méi)有安全的機(jī)制保證。普通的單片機(jī)程序也存在類似的問(wèn)題,由于大量地使用了散落在程序各個(gè)部分的相互關(guān)聯(lián)的條件分支,系統(tǒng)反應(yīng)部分的代碼顯得凌亂不堪,這些都使得程序?qū)τ诒WC嚴(yán)格的時(shí)序邏輯存在潛在的風(fēng)險(xiǎn)[2]。

1 橋式起重機(jī)控制系統(tǒng)特性分析及方案

1.1 橋式起重機(jī)機(jī)構(gòu)及運(yùn)行特性分析

橋式起重機(jī)橋架兩端通過(guò)運(yùn)行裝置直接支撐在高架軌道上,通常用于生產(chǎn)車(chē)間內(nèi)的物料搬運(yùn)。橋式起重機(jī)的基本機(jī)構(gòu)類別有以下兩種:

(1)起升機(jī)構(gòu)是實(shí)現(xiàn)重物上升或下降的機(jī)構(gòu),根據(jù)起吊重物噸位的不同分為主起升機(jī)構(gòu)和副起升機(jī)構(gòu)。

(2)運(yùn)行機(jī)構(gòu)是橋式起重機(jī)平行移動(dòng)的機(jī)構(gòu),它分為大車(chē)走行機(jī)構(gòu)和小車(chē)走行機(jī)構(gòu)。

起升機(jī)構(gòu)是位能性負(fù)載。其特點(diǎn)是:重物上升時(shí),電動(dòng)機(jī)克服各種阻力作功,屬于阻力負(fù)載;重物下降時(shí),重物本身的重力是下降的動(dòng)力,電動(dòng)機(jī)成為了能量的接受者,故屬于動(dòng)力負(fù)載。起重機(jī)的運(yùn)行機(jī)構(gòu)都是阻力負(fù)載[3]。

通過(guò)對(duì)各機(jī)構(gòu)運(yùn)行過(guò)程的分析可以抽象出一些共性邏輯即每一個(gè)獨(dú)立機(jī)構(gòu)都存在電機(jī)正反轉(zhuǎn)、多段速切換、速度限位保護(hù)和極限限位保護(hù)等相似邏輯。對(duì)于應(yīng)用變頻調(diào)試的起重設(shè)備而言,控制的關(guān)鍵在于變頻器起制動(dòng)過(guò)程與機(jī)械制動(dòng)器動(dòng)作的配合,這個(gè)邏輯的合理與否直接關(guān)乎變頻器運(yùn)行壽命以及橋式起重機(jī)的安全性。起升機(jī)構(gòu)運(yùn)行開(kāi)始前抱閘處于閉合狀態(tài),要起動(dòng)運(yùn)行就要開(kāi)抱閘,如果開(kāi)閘過(guò)早變頻器未建立足夠的轉(zhuǎn)矩就會(huì)發(fā)生溜鉤;反之如果開(kāi)閘過(guò)晚則可能出現(xiàn)磨閘一方面影響制動(dòng)器壽命和變頻器逆變器壽命,另一方面容易引起變頻器過(guò)流保護(hù)系統(tǒng)停止運(yùn)行[4]。制動(dòng)器是機(jī)械抱閘裝置,該裝置釋放需要時(shí)間,在制動(dòng)器釋放過(guò)程中變頻器不宜加速,否則也會(huì)出現(xiàn)磨閘,并且電機(jī)堵轉(zhuǎn)時(shí)變頻器輸出頻率偏高,造成釋放瞬間電機(jī)速度過(guò)高引起振動(dòng)。起升機(jī)構(gòu)停止命令發(fā)出后,制動(dòng)器要閉合,同樣制動(dòng)器閉合也需要時(shí)間,在此過(guò)程中變頻器必須保持轉(zhuǎn)矩,否則也會(huì)溜鉤。

1.2 橋式起重機(jī)控制系統(tǒng)硬件方案設(shè)計(jì)

橋式起重機(jī)整體結(jié)構(gòu)由中控室、主起升機(jī)構(gòu)、副起升機(jī)構(gòu)、大車(chē)行走機(jī)構(gòu)和小車(chē)行走機(jī)構(gòu)五大部分組成,由駕駛室人員在駕駛室內(nèi)通過(guò)操作桿給出各機(jī)構(gòu)運(yùn)行的方向和段速,這些信號(hào)通過(guò)通信總線給到每一機(jī)構(gòu),而和每一機(jī)構(gòu)相關(guān)的故障及報(bào)警等保護(hù)邏輯點(diǎn)就近接入該機(jī)構(gòu)控制器,這樣整個(gè)系統(tǒng)的走線可以最簡(jiǎn),調(diào)試和檢修更加方便。整機(jī)電氣控制系統(tǒng)如圖1所示。

圖1 橋式起重機(jī)電氣控制系統(tǒng)

由圖1可看出每一機(jī)構(gòu)的IO控制CPU要給出控制邏輯的運(yùn)行結(jié)果需要從三個(gè)方面得到輸入信息,即從主控室信號(hào)采集板處通過(guò)CAN通信取到運(yùn)行方向標(biāo)志和段速標(biāo)志,從和本機(jī)構(gòu)相關(guān)的保護(hù)和控制觸點(diǎn)處得到限位、報(bào)警、故障以及抱閘信號(hào),從變頻器CPU通過(guò)串口通信取得變頻器故障、允許給速度信號(hào)和張閉閘信號(hào),綜合以上信號(hào)由IO控制CPU計(jì)算相應(yīng)的速度曲線,給到變頻器連續(xù)的運(yùn)行速度,同時(shí)給出相應(yīng)控制輸出。

1.3 橋式起重機(jī)控制系統(tǒng)軟件方案設(shè)計(jì)

高性能的橋式起重機(jī)各機(jī)構(gòu)在啟動(dòng)和停止瞬間對(duì)于邏輯要求非常高,因?yàn)檫@對(duì)起重機(jī)運(yùn)行安全性和壽命均有相當(dāng)重要的意義,因此必須尋求一種機(jī)制以保證運(yùn)行狀態(tài)的安全和精確切換。美國(guó)Miro Samek博士提出的量子平臺(tái)QP(Quantum Platform)是一種關(guān)于反應(yīng)式的系統(tǒng),這種系統(tǒng)類比了量子力學(xué)中的基本概念,建立了QF(Quantum Frame)框架以及狀態(tài)、事件、信號(hào)以及狀態(tài)間的躍遷條件等,這種系統(tǒng)使用事件驅(qū)動(dòng)的方法達(dá)到與環(huán)境不斷交互的目的,非常適合用于嵌入式軟件領(lǐng)域[5],特別是應(yīng)用于工業(yè)控制系統(tǒng)的程序設(shè)計(jì)。本文采用量子平臺(tái)狀態(tài)機(jī)機(jī)制建立橋式起重機(jī)控制系統(tǒng)程序框架,確??刂七壿嬛懈黜?xiàng)任務(wù)的調(diào)度,從而滿足橋式起重機(jī)對(duì)高安全性和高性能方面的要求。

2 基于量子平臺(tái)的橋式起重機(jī)電氣控制系統(tǒng)的具體設(shè)計(jì)實(shí)現(xiàn)

2.1 量子平臺(tái)狀態(tài)機(jī)機(jī)制

量子平臺(tái)由Miro Samek博士提出,借鑒了量子力學(xué)中量子在各種能量態(tài)之間躍遷的描述手段來(lái)描述嵌入式軟件中的編程模型。量子平臺(tái)本身實(shí)際上較為系統(tǒng)地提出了嵌入式系統(tǒng)中狀態(tài)機(jī)的編程模型。量子框架QF提供了更快速、更安全和更可靠的開(kāi)發(fā)并發(fā)任務(wù)的方法,基于QF的應(yīng)用不需要直接操作臨界區(qū)、信號(hào)量和其他類似的機(jī)制,在編程時(shí)不用擔(dān)心競(jìng)爭(zhēng)條件、死鎖以及優(yōu)先級(jí)反轉(zhuǎn)等帶來(lái)的風(fēng)險(xiǎn),但是卻可以獲得多線程的所有好處。

狀態(tài)機(jī)工程中必須包含狀態(tài)機(jī)內(nèi)核,這個(gè)內(nèi)核可以以庫(kù)的形式包含在工程中,由該內(nèi)核完成狀態(tài)的躍遷、信號(hào)的發(fā)送及調(diào)度機(jī)制。每個(gè)工程中可以包含若干個(gè)狀態(tài)機(jī),每個(gè)狀態(tài)機(jī)中包含了若干個(gè)狀態(tài),這些狀態(tài)可以存在層次包含,在每個(gè)狀態(tài)機(jī)中任何時(shí)候都只有個(gè)狀態(tài)是活動(dòng)的,每個(gè)狀態(tài)機(jī)都有個(gè)屬于其自身的消息隊(duì)列,這個(gè)消息隊(duì)列由事件觸發(fā)并由QF框架完成消息分發(fā),并由該狀態(tài)機(jī)中的唯一活動(dòng)的狀態(tài)進(jìn)行響應(yīng)。每個(gè)狀態(tài)機(jī)在初始化的時(shí)候可以指定狀態(tài)機(jī)的優(yōu)先級(jí),量子內(nèi)核根據(jù)設(shè)定的優(yōu)先級(jí)進(jìn)行狀態(tài)機(jī)響應(yīng)函數(shù)的調(diào)度。在每狀態(tài)機(jī)中均唯一維護(hù)了屬于自身的結(jié)構(gòu)體變量,由量子內(nèi)核利用該結(jié)構(gòu)體完成響應(yīng)處理過(guò)程的參數(shù)傳遞。

2.2 橋式起重機(jī)機(jī)構(gòu)運(yùn)行狀態(tài)抽象

本文中的量子平臺(tái)狀態(tài)機(jī)基于Miro Samek設(shè)計(jì)的量子框架,根據(jù)前面所作分析,橋式起重機(jī)每個(gè)機(jī)構(gòu)的邏輯都可以抽象為應(yīng)用邏輯和驅(qū)動(dòng)邏輯,應(yīng)用邏輯和驅(qū)動(dòng)邏輯都對(duì)設(shè)備運(yùn)行的穩(wěn)定性、可靠性和安全性加以保證,據(jù)此可將其抽象為應(yīng)用邏輯狀態(tài)機(jī)AppCtrl和驅(qū)動(dòng)邏輯狀態(tài)機(jī)DrvCtrl,另外出于構(gòu)建整個(gè)狀態(tài)機(jī)系統(tǒng)間的事件驅(qū)動(dòng)機(jī)制的考慮,可以再構(gòu)建一個(gè)系統(tǒng)狀態(tài)機(jī)SysCtrl,將這幾個(gè)狀態(tài)機(jī)的對(duì)應(yīng)類均從qpc:Qactive類派生,由此可以在每個(gè)狀態(tài)機(jī)中聲明一個(gè)類對(duì)象并將其強(qiáng)制轉(zhuǎn)化為QActive*類型,基本情況如下:

/*橋式起重機(jī)驅(qū)動(dòng)邏輯狀態(tài)機(jī)部分*/

static DrvCtrl l_drvctrl;

QActive*My_Drv=(QActive*)&l_drvctrl;

/*橋式起重機(jī)應(yīng)用邏輯狀態(tài)機(jī)部分*/

static AppCtrl l_appctrl;

QActive*My_App=(QActive*)&l_appctrl;

/*橋式起重機(jī)系統(tǒng)邏輯狀態(tài)機(jī)部分*/

static SysCtrl l_sysctrl;//為狀態(tài)機(jī)命名

QActive*My_Sys=(QActive*)&l_sysctrl;//為狀態(tài)機(jī)引用

本項(xiàng)目利用可視化量子平臺(tái)的建模工具QM(Quantum Platform Modeler),來(lái)建立工程,由此可以通過(guò)建立層次狀態(tài)模型,輕易實(shí)現(xiàn)層次狀態(tài)機(jī),并可以自動(dòng)生成代碼框架。由QM建模工具生成的代碼具有如下特點(diǎn),首先為狀態(tài)機(jī)中的每個(gè)狀態(tài)生成一個(gè)函數(shù),在這個(gè)函數(shù)中兩個(gè)函數(shù)指針,一個(gè)是本狀態(tài)類的指針,另一個(gè)是事件類指針,以驅(qū)動(dòng)狀態(tài)機(jī)中的Stop狀態(tài)為例,生成的代碼框架如下:

QState DrvCtrl_Stop(DrvCtrl*me,QEvent const*e){

switch(e->sig){

case Q_ENTRY_SIG:{ //進(jìn)入事件

……

return Q_HANDLED();//返回0 }

case TIME10MS_SIG:{ //收到10ms定時(shí)器事件……

return Q_HANDLED();//返回0 }

case DRV_EVENT_SIG:{ //收到驅(qū)動(dòng)事件,由PostDrvEvt函數(shù)觸發(fā)

……

return Q_TRAN(&DrvCtrl_InvRun);//跳轉(zhuǎn)到 RUN狀態(tài) }

break;

}

return Q_SUPER(&QHsm_top);//執(zhí)行父狀態(tài)相應(yīng)事件處理代碼,不發(fā)生狀態(tài)跳轉(zhuǎn)

}

每個(gè)狀態(tài)機(jī)都各自維護(hù)自身定義的這個(gè)對(duì)象,并由QF將該指針對(duì)象和完成狀態(tài)響應(yīng)函數(shù)中的第一個(gè)指針形參結(jié)合完成地址傳遞,第二個(gè)事件指針的值也由QF框架完成傳遞。

信號(hào)的選擇對(duì)于基于活動(dòng)對(duì)象的系統(tǒng)非常關(guān)鍵,它影響事件和活動(dòng)對(duì)象,因此必須聲明一個(gè)枚舉類型的信號(hào)結(jié)構(gòu)體,將所有事件對(duì)應(yīng)信號(hào)均封裝在內(nèi),如定時(shí)器信號(hào)、按鍵信號(hào)、出錯(cuò)信號(hào)以及通信信號(hào)等。

為建立狀態(tài)機(jī)機(jī)制,首先必須對(duì)QF框架以及狀態(tài)機(jī)進(jìn)行初始化,本文將其封裝在BSP_init函數(shù)中,如下所示:

void BSP_init(void)

{ QF_psInit(subscrSto,Q_DIM(subscrSto));//初始化 QF框架的報(bào)文發(fā)布和訂閱

QF_poolInit((EVENT*)regPoolSto,sizeof(regPoolSto),sizeof(regPoolSto[0]));//初始化消息池

QActive_ctor(&((SysCtrl*)My_Sys)- > super,(QStateHandler)&SysCtrl_initial);//初始化狀態(tài)機(jī)

QTimeEvt_ctor(&((SysCtrl*)My_Sys)- >timeEvt__5,TIME5MS_SIG);//初始化5ms定時(shí)器

QActive_start((QActive*)My_Sys,1,SysCtrlQueueSto,Q_DIM(SysCtrlQueueSto),(void*)0,0,(QEvent*)0);//開(kāi)啟 My_Sys狀態(tài)機(jī)(優(yōu)先級(jí)別:1)

QActive_ctor(&((AppCtrl*)My_App)- >super,(QStateHandler)&AppCtrl_initial);//初始化狀態(tài)機(jī)

QActive_start((QActive*)My_App,2,AppCtrlQueueSto,Q_DIM(AppCtrlQueueSto),(void*)0,0,(QEvent*)0);//開(kāi)啟 My_App狀態(tài)機(jī)(優(yōu)先級(jí)別:2)

QActive_ctor(&((DrvCtrl*)My_Drv)- > super,(QStateHandler)&DrvCtrl_initial);

QActive_start((QActive*)My_Drv,3,DrvCtrlQueueSto,Q_DIM(DrvCtrlQueueSto),(void*)0,0,(QEvent*)0);//開(kāi)啟 My_Drv狀態(tài)機(jī)(優(yōu)先級(jí)別:3)

……}

另外還必須為狀態(tài)機(jī)系統(tǒng)提供時(shí)鐘節(jié)拍,利用QF_run()函數(shù)啟動(dòng)狀態(tài)機(jī),將上面的BSP_init()和QF_run()均放在在主程序入口處首先調(diào)用,這樣就建立了基本的狀態(tài)機(jī)工作機(jī)制。同時(shí)為在狀態(tài)機(jī)之間傳遞消息還封裝了兩個(gè)事件對(duì)象DrvEvt和ErrorEvt以及兩個(gè)消息發(fā)送函數(shù)PostDrvEvt和PostErrorEvt,其中Post-DrvEvt在應(yīng)用邏輯狀態(tài)機(jī)中調(diào)用以向驅(qū)動(dòng)邏輯狀態(tài)機(jī)發(fā)送運(yùn)行消息,PostErrorEvt則在驅(qū)動(dòng)狀態(tài)機(jī)中想應(yīng)用邏輯狀態(tài)機(jī)發(fā)消息,以此完成狀態(tài)機(jī)間的信息交互。每個(gè)狀態(tài)機(jī)都有且僅有其中的一個(gè)狀態(tài)處于活動(dòng)狀態(tài),由該活動(dòng)狀態(tài)處理相應(yīng)的事件消息,而活動(dòng)狀態(tài)的父狀態(tài)是一種隱含的活動(dòng)狀態(tài)。

本項(xiàng)目中為了數(shù)碼管、按鍵、液晶面板的顯示和參數(shù)切換、故障保存等還建立了其他的狀態(tài)機(jī),各狀態(tài)機(jī)中的狀態(tài)都接受不同的事件消息,這些都在狀態(tài)機(jī)模型建立的時(shí)候充分考慮和設(shè)計(jì),其中液晶面板的參數(shù)顯示和設(shè)置采用鏈表的機(jī)制完成。

3 結(jié)束語(yǔ)

基于量子平臺(tái)狀態(tài)機(jī)的橋式起重機(jī)電氣控制系統(tǒng)代碼簡(jiǎn)潔、結(jié)構(gòu)清晰,整個(gè)程序運(yùn)行均基于事件驅(qū)動(dòng),符合設(shè)備運(yùn)行的真實(shí)狀態(tài),通過(guò)將起重機(jī)起停瞬間的關(guān)鍵邏輯抽象成狀態(tài)機(jī)中的獨(dú)立狀態(tài)并預(yù)先規(guī)劃出狀態(tài)之間跳轉(zhuǎn)的路徑和條件的方法確保了設(shè)備的安全性和可靠性。由于采用了QM的可視化建模和代碼生成工具,整個(gè)控制系統(tǒng)的軟件開(kāi)發(fā)和調(diào)試時(shí)間大幅降低,目前該電控系統(tǒng)已得到成功應(yīng)用,設(shè)備運(yùn)行穩(wěn)定、可靠,得到了客戶的好評(píng)。

[1]王德偉.智能控制在橋式起重機(jī)上的研究及應(yīng)用[D].武漢:武漢科技大學(xué),2007.

[2]MIRO SAMEK PH D.嵌入式系統(tǒng)的微模塊化程序設(shè)計(jì)——實(shí)用狀態(tài)圖C/C++實(shí)現(xiàn)[M].北京:北京航空航天大學(xué)出版社,2004.

[3]戴明宏.起重機(jī)變頻調(diào)速控制系統(tǒng)的設(shè)計(jì)與研究[D].成都:西南交通大學(xué),2004.

[4]夏翔.起重電控設(shè)計(jì)參考手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2012.

[5]馮源,夏立.基于量子平臺(tái)的PMU軟件及狀態(tài)機(jī)描述[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007,7(6):8.

猜你喜歡
狀態(tài)機(jī)變頻器量子
2022年諾貝爾物理學(xué)獎(jiǎng) 從量子糾纏到量子通信
變頻器在電機(jī)控制系統(tǒng)中的選擇與應(yīng)用
決定未來(lái)的量子計(jì)算
基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
新量子通信線路保障網(wǎng)絡(luò)安全
基于LabVIEW的變頻器多段速控制
簡(jiǎn)析變頻器應(yīng)用中的干擾及其抑制
電子制作(2017年7期)2017-06-05 09:36:13
一種簡(jiǎn)便的超聲分散法制備碳量子點(diǎn)及表征
西門(mén)子變頻器的應(yīng)用 第3講 MM4系列變頻器在PID中的應(yīng)用
FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
华安县| 庆城县| 都昌县| 宝兴县| 绥江县| 海阳市| 玛沁县| 衡南县| 九台市| 海丰县| 平乡县| 集安市| 丽水市| 张家界市| 阳高县| 浠水县| 荆州市| 雷波县| 岳普湖县| 太康县| 泌阳县| 绥宁县| 洪湖市| 明溪县| 瓦房店市| 奎屯市| 桐梓县| 诸城市| 木兰县| 高雄县| 玛沁县| 宁德市| 永德县| 砀山县| 陕西省| 辉南县| 桑植县| 图木舒克市| 大冶市| 老河口市| 弥渡县|