三级黄色在线视频中文,国产精品一二三区,在线观看三级,成人午夜久久,日韩国产一区二区,韩日免费av,日韩成人一级

開放式數控系統(tǒng)中控制信息的表達與傳遞書

來源:互聯(lián)網

點擊:2204

A+ A-

所屬頻道:新聞中心

關鍵詞:開放式 數控系統(tǒng) 傳遞數

    構建開放式數控系統(tǒng)的一個基本原則就是模塊化,通過模塊化進行系統(tǒng)功能和結構的分解,降低耦合、增強內聚并控制粒度,以提高模塊的復用性。很多學者開展了有關這方面的研究工作,我們也在這個領域進行了一些探索,并發(fā)表了一些研究成果,圍繞模塊的接口設計、建模方法、系統(tǒng)配置等問題都進行了探討和研究。

      隨著研究的深入,我們認識到除上述內容之外,控制信息在各模塊間的傳遞也是值得研究的問題。本文主要針對數控系統(tǒng)內控制信息的表述及傳遞的問題,結合自主開發(fā)的開放式系統(tǒng)HITCNC進行深入探討。首先介紹HITCNC系統(tǒng)的組成,然后重點闡述如何利用嵌套式任務單元實現(xiàn)信息的表達與有效傳遞,最后通過實驗加以驗證。

    1 開放式數控系統(tǒng)HITCNC的模塊化構成

      我們采用Windows NT+RTX(Real—time exten-sion for Windows)為系統(tǒng)平臺,以軟件化方式實現(xiàn)運動控制和邏輯控制功能,建立了基于PC機的軟件型開放式數控系統(tǒng)HITCNC。它與外部設備之間的數據通訊通過遵循SERCOS協(xié)議的SofiSercans通訊卡完成,系統(tǒng)結構如圖1所示。

     
    圖1開放式效控系統(tǒng)HITCNC的模塊化系統(tǒng)結構

      HITCNC是“軟件數控”,即CNC功能全部由軟件實現(xiàn),各部分功能被分解到不同的軟件模塊中。其中人機接口、任務生成器模塊是在Windows環(huán)境下運行的COM組件;任務協(xié)調器、軸組、離散邏輯控制器、軸模塊、控制規(guī)律模塊則是運行于RTX實時環(huán)境下的動態(tài)鏈接庫。

      各模塊具體功能如下:

      (1)任務協(xié)調器進行任務分配,負責系統(tǒng)內各模塊的協(xié)調與調度。

      (2)任務生成器根據一定的語法規(guī)則對數控加工程序進行語法檢查,完成譯碼工作,生成包含運動信息的運動段指令和邏輯控制指令,并對運動指令進行刀具補償。

      (3)軸組模塊完成加減速處理、插補任務,對譯碼得到的運動段按照一定的進給速度要求進行細分,得到單個插補周期內的直線段進給量,然后分解并輸出給各個軸模塊。

      (4)軸模塊接收來自軸組模塊的指令,同時讀取外部的反饋信息,根據用戶需求選擇性地調用伺服控制規(guī)律完成位置控制或速度控制等功能,并將控制信息發(fā)送給外部執(zhí)行單元。

      (5)控制規(guī)律模塊負責伺服控制規(guī)律的計算,提供多種控制策略。

      (6)離散邏輯控制模塊負責對外部輸入和內部狀態(tài)變量進行布爾運算得到相應輸出和內部狀態(tài)變量,并對外部輸入輸出設備進行控制,包括機電設備的啟停、刀具的交換等。

    2 控制信息的抽象與表達

      2.1 任務單元

      對數控系統(tǒng)而言,其所要處理的信息主要來自數控加工程序。在本系統(tǒng)中,數控程序經任務生成器處理得到的控制信息(包括運動控制與邏輯控制)采用有限狀態(tài)機FSM(Finite State Machine)進行描述。這里,將包含控制信息的FSM對象稱為任務單元。有限狀態(tài)機通常采用狀態(tài)轉移圖來表示,其構成要素包括狀態(tài)、轉移、事件、動作。簡化的任務單元狀態(tài)轉移圖參見圖2。其中“未初始化、已初始化、運行、停止、結束”表示狀態(tài);“初始化、執(zhí)行、刷新、復位、完成、停止”表示事件;“initialization()、runningAction()、stopAction()、resetAction()”表示動作;當任務單元處于“未初始化”狀態(tài),并接收到事件“初始化”時,它會執(zhí)行動作“initialization()”,并完成由“未初始化”狀態(tài)向“已初始化”狀態(tài)的轉移。任務單元本身就是一個有限狀態(tài)機對象。有限狀態(tài)機的基本概念和軟件化實現(xiàn)方法參見文獻,這里不再詳述。

     
    圖2簡化的任務單元狀態(tài)轉移圖

      2.2 任務單元的種類


      根據任務單元所要完成功能,本系統(tǒng)定義了多種任務單元類,如圖3。

     
    圖3任務單元的種類

      (1)運動任務單元對應于輸入軸組模塊的數據FSM,分為直線、圓弧運動任務單元等。除了具有基本的FSM管理和參數化方法之外,運動任務單元還包括速率、待加工的幾何信息等以及負責刀具軌跡規(guī)劃的速度輪廓生成器。它們在軸組模塊內按照圖2規(guī)劃的FSM運行,通過執(zhí)行動作initilization()和runningAc—tion()分別完成插補的初始化和插補計算任務。

      (2)離散邏輯任務單元對應于輸入離散邏輯模塊的數據FSM。離散邏輯單元負責對外部輸人輸出單元的協(xié)調和控制。如主軸的啟停、冷卻液的開關等。

      (3)執(zhí)行步任務單元在任務協(xié)調器內的FSM對象,包括運動任務執(zhí)行步和離散邏輯任務執(zhí)行步,分別負責監(jiān)控和管理運動任務單元和離散邏輯任務單元的執(zhí)行。例如直線運動任務單元就是在運動執(zhí)行步的監(jiān)控下運行的,具體實現(xiàn)過程將在下文詳細解釋。對于圖3中的各種任務單元,采用面向對象編程技術,以基類任務單元模板來抽象表示它們的共性,則每一種具體類型的任務單元都通過從任務模板基類派生定制實現(xiàn)。

    3 控制信息的傳遞與系統(tǒng)模塊的協(xié)作

      任務單元是可以嵌套的,一個任務單元能夠包含其它的任務單元。當外層任務單元的有限狀態(tài)機被激活時,它能夠向下層模塊發(fā)送其內嵌的任務單元。這樣,就可以將數控程序包含的控制信息以任務單元的形式在模塊間傳送,被傳送的任務單元成為下層模塊內活動的狀態(tài)機,從而控制下層模塊的行為。外層任務通過對嵌套任務的管理就可以實現(xiàn)對下層邏輯和運動控制模塊的協(xié)調調度。在本系統(tǒng)中,執(zhí)行步任務單元屬于外層任務,它負責嵌套包含運動任務單元和離散邏輯任務單元。通過下面的例子來說明當數控系統(tǒng)執(zhí)行一個加工程序時,模塊間的協(xié)作關系與數據流的傳遞過程,如圖4所示。執(zhí)行步驟如下:

     
    圖4模塊間的協(xié)作與數據傳遞

      步驟1 加工程序在任務生成器中被翻澤為一系列執(zhí)行步任務單元,以鏈表的形式存在;每個執(zhí)行步任務單元都是嵌套的,內部包含有等待執(zhí)行的運動任務單元或邏輯控制單元。

      步驟2 任務協(xié)調器通過調用getTasks()獲取執(zhí)行步單元。在本系統(tǒng)中,任務生成器是一個COM組件,在Windows環(huán)境下運行;任務協(xié)調器是一個實時動態(tài)鏈接庫,在實時操作系統(tǒng)RTX環(huán)境下運行。兩個模塊通過共享內存?zhèn)鬟f具有嵌套結構的執(zhí)行步任務單元。

      步驟3 任務協(xié)調器調用執(zhí)行步單元提供的exe—cuteUnit()激活其包含的狀態(tài)機。步驟3會重復執(zhí)行多次,因為它要與下層模塊保持同步(例如,等待當前嵌套的運動任務單元被完成)。

      步驟4 在任務協(xié)調器內處于活動狀態(tài)的執(zhí)行步任務單元將內嵌的運動任務單元發(fā)送到軸組模塊的運動隊列中,通過調用setNextMotionSegment()實現(xiàn)。運動任務單元被加載到軸組隊列后等待被激活。

      步驟5 加載到軸組隊列首位的運動單元首先被激活,軸組模塊周期性調用該運動任務單元的exe-cuteUnit()方法,運動任務單元依照它的有限狀態(tài)機規(guī)劃開始運行。此時外層執(zhí)行步的狀態(tài)機在任務協(xié)調器內同步運行,并不斷查詢運動任務單元的狀態(tài),直至運動任務單元轉變?yōu)椤敖Y束”狀態(tài)為止。

      圖5給出了上述任務單元在控制系統(tǒng)內的被傳遞和執(zhí)行過程中自身狀態(tài)所發(fā)生的轉變,同時可以看出它們的管理對象也發(fā)生了變化。首先,嵌套任務單元由任務生成器譯碼得到,任務協(xié)調器調用外層執(zhí)行步任務單元的executeUnit()方法激活其有限狀態(tài)機進行一系列更新操作,執(zhí)行步由“未初始化”轉變?yōu)椤耙殉跏蓟睜顟B(tài),同時完成動作initiationAction(),把內嵌的運動任務單元發(fā)送到軸組的運動隊列中。軸組調用運動任務單元的executeUnit()方法,使運動任務單元在軸組內被激活,周期性刷新,依次處理“初始化”、“執(zhí)行”事件,完成動作“runningAction()”進行插補計算直至插補結束。在此過程中,位于上層任務協(xié)調器中的執(zhí)行步進入“運行”狀態(tài),它也通過自身的“runningAction()”動作不斷查詢其內嵌運動任務單元是否為“結束”狀態(tài)。當運動任務單元結束時,軸組將其從運動隊列中刪除;任務協(xié)調器中的執(zhí)行步繼續(xù)監(jiān)控它所包含的下一任務單元或者將控制權移交給下一個執(zhí)行步。圖中兩側所示為執(zhí)行步任務單元與運動任務單元在不同時刻所對應的管理對象。

     
    圖5嵌套任務單元在系統(tǒng)內的執(zhí)行過程

      通過上面的例子可以看出,利用有限狀態(tài)機,任務單元通過在其內部封裝一系列狀態(tài)變化,進而實現(xiàn)了系統(tǒng)預期完成的操作和功能;更重要的是,任務單元的嵌套結構設計就象是一棵樹上的主干和分支,實現(xiàn)了信息在系統(tǒng)內的有序流動和傳遞,而且這種嵌套設計使任務單元具有智能特征,具備了協(xié)調下層運動模塊和邏輯控制模塊的能力。

    4 實驗驗證

      筆者開發(fā)的開放式數控系統(tǒng)其組成如前所述,配備于一臺三軸銑床上。為了驗證任務單元的設計是否實現(xiàn)了控制信息的有效表達與傳遞,進行了下面實驗。

      (1)直線、圓弧運動任務單元的驗證:我們所開發(fā)的系統(tǒng)最初只具有直線、圓弧加工能力,因此利用該三軸銑床進行了圖6所示的鼠標殼體的加工。實驗表明包含F(xiàn)SM的嵌套式任務單元設計合理,控制信息在模塊間傳遞無誤,數控系統(tǒng)具有實用性,整體性能良好。

     

      (2)運動任務單元的派生——擴充NURBS曲線加工能力:系統(tǒng)功能擴充的途徑之一就是派生新的運動任務單元,創(chuàng)建滿足特定加工能力的子類。為了在常規(guī)插補的基礎上擴充NURBS插補,從運動任務單元來派生CNurbsSegment運動任務單元,其封裝實現(xiàn)了NURBS曲線插補功能。CNurbsSegment運動任務單元仍然采用執(zhí)行步任務單元嵌套管理方式,最終系統(tǒng)具有了NURBS曲線加工能力。圖7就是利用NURBS曲線插補功能所加工的電鉆殼體模具。CNurbsSegment運動任務單元部分代碼如下

     

      正是由于采用了嵌套式任務單元的設計,系統(tǒng)功能擴充過程中只需對任務生成器和任務協(xié)調器進行代碼的添加,而不用修改構成系統(tǒng)的其它部分,模塊的可重用性大大增強。

    5 結語

      本文提出了一種采用FSM數據形式封裝控制信息,并以嵌套結構形式使其在數控系統(tǒng)各模塊中智能化地傳遞的方法。實驗證明,該方法不僅保證了模塊間信息的有序傳遞和模塊問的相互協(xié)作,而且系統(tǒng)功能擴展能力易于實現(xiàn),模塊的可重用性大大增強。

    (審核編輯: 智匯張瑜)

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