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

有限狀態(tài)機在開放式數(shù)控系統(tǒng)中的應(yīng)用

來源:互聯(lián)網(wǎng)

點擊:1592

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞:開放式 數(shù)控系統(tǒng) 有限狀態(tài)機

    xit  在機械加工領(lǐng)域,控制邏輯規(guī)定了機床控制器完成特定功能所必須的步驟或事件的序列。當(dāng)向機床中添加新的部件、增加新的控制算法或替換已存在的子系統(tǒng)時,其控制邏輯必然發(fā)生改變。為使控制軟件具有復(fù)用性和重構(gòu)能力,需要研究控制邏輯的建模方法和軟件重構(gòu)??刂七壿嫹从沉讼到y(tǒng)的動態(tài)特征,采用動態(tài)行為模型來構(gòu)造。在面向?qū)ο蠓椒ㄖ?行為表示對象為完成某種功能而進行的一系列處理操作,是指對象做什么;動態(tài)行為模型表示瞬時的、行為化的系統(tǒng)的控制性質(zhì),它規(guī)定了系統(tǒng)中對象的合法變化序列。

      本文采用面向?qū)ο蟮木幊碳夹g(shù),基于模塊化思想構(gòu)造開放式數(shù)控系統(tǒng)以層級式有限狀態(tài)機(Fi2nite State Machine , FSM) 作為其行為模型,建立了有限狀態(tài)機基礎(chǔ)類庫,以確保有限狀態(tài)機機制的實施。該類庫具有定義和修改有限狀態(tài)機的接口,使模塊內(nèi)部控制邏輯的定義與實現(xiàn)相分離。當(dāng)擴充系統(tǒng)功能時,如添加對刀具的狀態(tài)監(jiān)控,可以基于有限狀態(tài)機機制完成對系統(tǒng)的行為重構(gòu)。

    1 有限狀態(tài)機

      FSM由一定數(shù)目的狀態(tài)和相互之間的轉(zhuǎn)移構(gòu)成,在任何時候只能處于給定數(shù)目狀態(tài)中的一個。它以一種事件驅(qū)動的方式工作,當(dāng)接收到一個事件時,狀態(tài)機產(chǎn)生一個輸出,同時也可能伴隨著狀態(tài)的轉(zhuǎn)移。它包括以下一些構(gòu)成要素:

      (1) 狀態(tài) 是對象的生命周期中滿足某種條件、執(zhí)行某些動作或等待某些事件發(fā)生的一個階段,能持續(xù)一段時間。

      (2) 轉(zhuǎn)移 是從一個狀態(tài)節(jié)點(源狀態(tài)) 到另一個狀態(tài)節(jié)點(目標(biāo)狀態(tài)) 的移動,發(fā)生狀態(tài)轉(zhuǎn)移時,對象會相應(yīng)地執(zhí)行某些動作。

      (3) 事件 是一個在時空中顯式出現(xiàn)的特定現(xiàn)象,它可以觸發(fā)狀態(tài)轉(zhuǎn)移。事件可以來自外部,也可以是內(nèi)部生成的。

      (4) 動作 是對象在狀態(tài)發(fā)生轉(zhuǎn)移時所作的一系列處理操作。

      對于復(fù)雜系統(tǒng),如采用上述基本FSM 建模,可能存在成百上千的狀態(tài),導(dǎo)致系統(tǒng)效率下降,且難于驗證和維護。因此,出現(xiàn)了對基本FSM 的擴充,如層級式FSM。層級式FSM 由一系列基本FSM 按照層級方式組織起來,一個或多個下層FSM 對應(yīng)于上層FSM 中的某一狀態(tài)(稱其為組合狀態(tài)) 。當(dāng)FSM 處于某一組合狀態(tài)時,一個或多個下層FSM可以并行或順序執(zhí)行。

    2 基于有限狀態(tài)機的行為模型

      2.1 機床的行為建模

      FSM 經(jīng)常用來模型化反應(yīng)式系統(tǒng),反應(yīng)式系統(tǒng)對外部和內(nèi)部事件作出反應(yīng),屬于事件驅(qū)動系統(tǒng)。在確定性的反應(yīng)式系統(tǒng)中,輸入事件的順序和數(shù)值決定了系統(tǒng)響應(yīng)的順序和數(shù)值。

      數(shù)控系統(tǒng)根據(jù)輸入的信息(如數(shù)控程序、操作面板的輸入、傳感器反饋信息) 控制機床移動,實現(xiàn)加工操作(如軸運動、換刀、停止機床等) ,其行為是可預(yù)見的,屬于典型的反應(yīng)式系統(tǒng)。因此,將外部輸入的信息表示為FSM 的輸入事件,將機床的加工操作表示為FSM 的動作,采用FSM 作為機床的行為模型。

      采用狀態(tài)轉(zhuǎn)移圖表示機床行為的簡化FSM ,它描述了該系統(tǒng)可以根據(jù)用戶的命令實現(xiàn)軸進給、停止,并在監(jiān)控到刀具破損后停止軸運動。其FSM 包含3 個狀態(tài):系統(tǒng)就緒( system ready) 、軸運動(axis moving) 和刀具破損(tool broken) ??梢蕴幚? 個事件:其中兩個代表用戶的請求即進給(move) 和停止( stop) ,一個代表傳感器反饋信息即刀具破損。機床可完成的操作被抽象為FSM 中的動作moveAxis () 、stopAxis () 。機床的動態(tài)行為以FSM 方式被清晰、規(guī)范化地描述出來??梢钥闯?在FSM 中,狀態(tài)轉(zhuǎn)移觸發(fā)動作的過程就是機床實現(xiàn)加工操作的過程。

      實際應(yīng)用中機床行為復(fù)雜,其狀態(tài)數(shù)目龐大,筆者將整個系統(tǒng)按照層級方式分解為一系列子功能模塊,整個系統(tǒng)的行為被分解為子系統(tǒng)的行為,并用單獨的FSM 描述,然后再把這些模塊集成起來構(gòu)成系統(tǒng),得到層級式FSM 所表述的整個系統(tǒng)行為模型 。采用層級式FSM 進行行為建模,可實現(xiàn)系統(tǒng)行為的結(jié)構(gòu)化、層次化表達(dá)。最終,機床的行為可以看作是各模塊行為的集成,機床的加工過程就是各模塊FSM 的轉(zhuǎn)移過程。

      2.2 行為建模方法

      本文基于FSM ,采用以下方法來模型化機床的行為:

      (1) 考察對象的運行周期,識別相應(yīng)的、較固定的、具有某些相同特點的時間段,將其抽象為狀態(tài)。

      (2) 考察對象能否從一個狀態(tài)變?yōu)榱硪粋€狀態(tài),如果能變,探究狀態(tài)變化的原因(抽象為事件) ,確定是否伴隨發(fā)生一些反應(yīng)(抽象為動作) ,從而定義轉(zhuǎn)移,轉(zhuǎn)移=〈事件,動作,目標(biāo)狀態(tài)〉。另外,還存在一種自身轉(zhuǎn)移,它是源狀態(tài)等于目標(biāo)狀態(tài)的轉(zhuǎn)移,觸發(fā)自身轉(zhuǎn)移的事件可能是對象內(nèi)部自生成的,如刷新事件(up date) ,可參見下文的例子。

      (3) 考察每個狀態(tài),看其是否應(yīng)該分解。通過對狀態(tài)的層次結(jié)構(gòu)分解,將一個大的狀態(tài)分解為若干子狀態(tài),分解層數(shù)的多少取決于系統(tǒng)的復(fù)雜程度;再逐步細(xì)化,直到所有的狀態(tài)都是原子的(不再分解的) ,確定原子狀態(tài)之間的轉(zhuǎn)移形成狀態(tài)機。通過上述方法完成系統(tǒng)的有限狀態(tài)機規(guī)劃。

    3 基于有限狀態(tài)機的行為重構(gòu)機理

      機床FSM 的內(nèi)容實際上由狀態(tài)集合、事件集合、轉(zhuǎn)移集合和動作集合組成,稱之為狀態(tài)表。在實際應(yīng)用中,由于系統(tǒng)的配置發(fā)生變化(增刪設(shè)備、引入新功能或新的控制算法等) 而改變系統(tǒng)的行為時,對數(shù)控軟件系統(tǒng)而言,則需重新規(guī)劃FSM ,創(chuàng)建新的狀態(tài)表。

      狀態(tài)表可以采用鏈表的結(jié)構(gòu),鏈表中的每個單元都包含一個狀態(tài)標(biāo)志,還有一個指向轉(zhuǎn)移集合的指針。每個轉(zhuǎn)移又包含一個觸發(fā)它的事件標(biāo)志和動作集,以及指向下一個狀態(tài)的指針,其中動作集是狀態(tài)轉(zhuǎn)移時被調(diào)用函數(shù)的完整集合。狀態(tài)表的組織結(jié)構(gòu)。每個狀態(tài)具有一系列轉(zhuǎn)移(轉(zhuǎn)移集) , 其中, 狀態(tài)state7 為組合狀態(tài), 對應(yīng)狀態(tài)state7. 1 和state7. 2 構(gòu)成的下一層FSM。當(dāng)系統(tǒng)需求改變而導(dǎo)致行為發(fā)生變化時,對應(yīng)狀態(tài)表內(nèi)容的添加、刪除和替換,如圖3 中陰影表格所示,可以進行動作的替換(采用modifiedAction ()替換action3 () ) ,添加新的狀態(tài)( newState) 、新的轉(zhuǎn)移( &t ran7) 和新的事件(newEvent1) 。通過對狀態(tài)表的修改來完成基于FSM 的系統(tǒng)行為重構(gòu)。由于FSM 采用層級式管理,行為改變通常僅對特定子系統(tǒng)產(chǎn)生影響,只需要修改相應(yīng)模塊的狀態(tài)表即可。一般情況下,將一個新的狀態(tài)表以文件的形式保存,在系統(tǒng)啟動時加載,就可以實現(xiàn)執(zhí)行代碼級別的行為重構(gòu)。為此,對于每個模塊,設(shè)計了多個狀態(tài)表來規(guī)定它在不同系統(tǒng)模式下的不同行為,系統(tǒng)啟動時只加載其中一個狀態(tài)表,使同一模塊可以滿足于不同的應(yīng)用。當(dāng)系統(tǒng)行為變化涉及到修改動作集時,就需要編寫源代碼,因為動作是在狀態(tài)轉(zhuǎn)化時被調(diào)用的函數(shù)。

      為了便于創(chuàng)建和修改狀態(tài)表,還設(shè)計了FSM基礎(chǔ)類庫。它不僅提供了定義、查詢和修改狀態(tài)表的接口,而且是FSM 機制運行的驅(qū)動中心,其作用與硬件設(shè)備驅(qū)動程序類似。系統(tǒng)運行時,FSM 基礎(chǔ)類庫負(fù)責(zé)接收事件,在狀態(tài)表中根據(jù)當(dāng)前狀態(tài)查找對應(yīng)的轉(zhuǎn)移,觸發(fā)規(guī)定的動作,進而實現(xiàn)了系統(tǒng)的特定功能。FSM 基礎(chǔ)類庫是實現(xiàn)系統(tǒng)行為重構(gòu)的關(guān)鍵。

      因此,在行為重構(gòu)過程中, 設(shè)計者不必關(guān)心FSM 機制的實施細(xì)節(jié),只需負(fù)責(zé)FSM 的重新規(guī)劃和動作集合的編程(如果需要) ,可大大減少重構(gòu)的時間和成本。

    4 重構(gòu)實例驗證

      現(xiàn)以一個實例,即向已有三軸銑床數(shù)控軟件中添加監(jiān)控刀具破損功能,來演示系統(tǒng)行為重構(gòu)的能力。

      4.1 三軸銑床軟件系統(tǒng)的原始構(gòu)成

      (1) 任務(wù)協(xié)調(diào)器 進行任務(wù)分配,并協(xié)調(diào)各個模塊的運行。

      (2) 譯碼模塊 完成語法檢查、譯碼和刀具補償功能。

      (3) 軸組模塊 完成加減速處理和插補功能,向各軸發(fā)送相應(yīng)的設(shè)定點協(xié)調(diào)它們的運動。

      (4) 軸模塊 接收來自軸組的設(shè)定點,進行單軸控制,向外部設(shè)備發(fā)送信號。

      按照前述的行為建模規(guī)則,任務(wù)協(xié)調(diào)模塊、軸組模塊、軸模塊的簡化FSM 其中,任務(wù)協(xié)調(diào)器是控制軟件的調(diào)度中心,FSM 位于系統(tǒng)的頂層,其他模塊FSM 在其管理下并行運行,狀態(tài)的自動(auto) 或手動(manual) 方式對應(yīng)于系統(tǒng)的加工模式。

      4.2 重構(gòu)實現(xiàn)

      下面在原有系統(tǒng)中集成監(jiān)控功能,以監(jiān)控刀具破損為例,證實基于FSM 構(gòu)造的系統(tǒng)具有行為重構(gòu)能力。

      監(jiān)控刀具破損功能指在主軸刀具發(fā)生破損或斷裂時,系統(tǒng)能夠及時檢測到該情況,并自動停止所有軸。筆者編制了單獨的模塊,以實現(xiàn)刀具破損監(jiān)控功能。通過讀取外部傳感器測得的主軸功率,依據(jù)一定的規(guī)則判定刀具破損,發(fā)出刀具破損(broken)事件(刀具破損判定規(guī)則不在本文研究范圍內(nèi)) 。監(jiān)控刀具破損模塊也在任務(wù)協(xié)調(diào)器的調(diào)度下周期性運行,在發(fā)生刀具破損時,它向任務(wù)協(xié)調(diào)器的標(biāo)準(zhǔn)接口發(fā)送broken 事件。

      任務(wù)協(xié)調(diào)器對broken 事件做出反應(yīng),其行為發(fā)生變化,因此需要規(guī)劃FSM ,修改狀態(tài)表,包括增加新的狀態(tài)、事件、轉(zhuǎn)移和動作,虛線框內(nèi)為新增FSM 部分。在其處理broken 事件的動作(對應(yīng)于任務(wù)協(xié)調(diào)器的成員函數(shù)toolBrokenAction() ) 中向軸組發(fā)出stop 事件,而軸組模塊已經(jīng)具有處理stop 事件的能力,控制邏輯不發(fā)生改變,因此軸組和軸模塊的FSM 不受影響,無需作任何修改。對狀態(tài)表內(nèi)容的修改包括增加一個刀具破損Tool_Broken”狀態(tài),以及和刀具破損狀態(tài)相關(guān)的兩個轉(zhuǎn)移,還有與循環(huán)加工Incycle”狀態(tài)相關(guān)的一個轉(zhuǎn)移。這些新增條目可以利用FSM 類庫提供的方法addTransition 來創(chuàng)建。該函數(shù)原型為CFiniteS2tateMachine : :addTransition ( st ring state , st ring e2vent , st ring next State , CFSMAction action) 。其中,CFiniteStateMachine 表示FSM 類, st ring 表示字符串類, state 表示對象當(dāng)前所處狀態(tài)的名稱,e2vent 表示對象接收事件的名稱,nextState 表示對象將轉(zhuǎn)移的下一狀態(tài)的名稱,CFSMAction 表示FSM動作類,action 表示對象轉(zhuǎn)移過程中被觸發(fā)的動作。

      void CTaskCoordinator ∷setup FSM() / / 任務(wù)協(xié)調(diào)器建立FSM  {  addTransition (Idle, setAuto , Auto ”, & CTaskCoordina2  tor : : setAutoAction) ;/ / 原有轉(zhuǎn)移  ?  / / 添加刀具破損、恢復(fù)、復(fù)位事件對應(yīng)的轉(zhuǎn)移  addTransition ( InCycle , ; broken,  Tool _ Broken ,  &CTaskCoordinator : :toolBrokenAction) ;  addTransition ( Tool _ Broken ,  resume ,  InCycle ,  &CTaskCoordinator : : resumeAction) ;  addTransition ( Tool _ Broken ,  reset ,  Idle ,  &CTaskCoordinator : : resetAction) ;  }

      可以看出,通過FSM 基礎(chǔ)類庫提供的方法能夠方便、高效地改變狀態(tài)表。此外,模塊開發(fā)者還需要完成斷刀處理動作, 即toolBrokenAction , re2sumeAction 和resetAction 的編程。

      每個模塊都要經(jīng)過調(diào)試正確后進行集成,最終可獲得具有刀具破損監(jiān)控功能的三軸數(shù)控銑床xi't 。上述重構(gòu)過程已在一開放式三軸數(shù)控銑床實驗臺上實現(xiàn),達(dá)到了系統(tǒng)重構(gòu)的目標(biāo)。通過在三軸銑床系統(tǒng)中添加刀具破損檢測功能,說明本系統(tǒng)也能夠集成其他外部傳感器信號,實施用戶特有的控制策略。

    5 結(jié)論

      FSM 作為系統(tǒng)的動態(tài)行為模型,使系統(tǒng)具有了行為重構(gòu)能力,大大增強了開放性?;谟邢逘顟B(tài)機的行為建模的優(yōu)點是:提供了構(gòu)造系統(tǒng)動態(tài)行為的統(tǒng)一方式;可以對每個模塊的行為單獨檢驗,有助于錯誤的發(fā)現(xiàn); FSM 采用層級方式管理,使系統(tǒng)的行為變化轉(zhuǎn)變?yōu)閷Σ糠帜KFSM 的修改;有限狀態(tài)機基礎(chǔ)類庫提供了修改和存取模塊內(nèi)部控制邏輯的接口,使控制邏輯的定義與實現(xiàn)相分離。

    (審核編輯: 智匯張瑜)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。