官术网_书友最值得收藏!

2.4 計算機數控系統軟件結構

2.4.1 計算機數控系統軟件結構特點

CNC裝置是一個機床計算機控制系統,其數控系統軟件必須完成管理和控制兩種不同性質的任務。數控系統的基本任務是進行機床的自動加工控制,其核心控制模塊是預處理模塊、插補模塊、位置控制模塊和PLC控制模塊等。數控系統是實現CNC系統協調工作的主體,它管理著數控加工程序從輸入、預處理到插補計算、位置控制和輸入/輸出控制的全過程,并管理著系統參數的設置,刀具參數的設置,數控加工程序的編輯,數據的輸入/輸出,以及故障診斷、通信等功能的管理。CNC裝置的系統軟件具有多任務性和實時性兩大特點。CNC裝置是典型的實時控制系統。CNC裝置的系統軟件可以看成是一個專用的實時操作系統。

2.4.2 多任務性與并行處理

2.4.2.1 CNC裝置的多任務性

CNC中的任務就是可并行執行的程序在一個數據集合上運行的過程。CNC的任務通??梢苑譃閮深悾汗芾砣蝿蘸涂刂迫蝿?。管理任務主要承擔系統資源的合理安排和系統各個子任務間的調度,負責系統的管理、顯示、診斷。而控制任務完成CNC的基本功能譯碼、刀具補償、速度預處理、插補運算、位置控制等任務。CNC裝置在工作中,這些任務不是按順序執行的,而往往需要多任務并行處理。例如:當機床正在執行加工任務時(執行控制任務),CRT要實時顯示加工狀態(管理任務),這是控制任務與管理任務的并行;在管理任務中也是如此,當用戶將程序輸入系統時,CRT便實時顯示輸入的內容;在控制任務中更是如此,為了保證加工的連續性,刀具補償、速度處理、插補運算以及位置控制必須不間斷地執行。

2.4.2.2 基于并行處理的多任務調度技術

并行處理是指軟件系統在同一時刻或同一個時間間隔內完成兩個或多個任務的處理方法。采用并行處理技術的目的就是為了提高CNC裝置資源的利用率和系統的處理速度。并行處理的實現方式與CNC系統的硬件結構密切相關(當然隨著全軟件型的開放式數控系統出現,CNC裝置對硬件系統的依賴性正在逐漸降低)。在CNC系統中常采用以下方法。

(1)資源分時共享

對于單CNC裝置,采用“分時”來實現多任務的并行處理。在一定的時間間隔(通常稱為時間片),根據系統中各任務實時性要求程度,規定它們占用CPU的時間,使它們按照規定的順序和規則來分時共享系統的資源。因此,在采用“資源分時共享”并行處理技術CNC裝置中,需要解決兩個問題:一是各任務何時占用CPU,也就是各個任務優先級的分配問題;二是各個任務占用CPU時間的長度,也就是時間片的分配問題。

一般來說,在單CPU的CNC裝置中,通常采用循環調度和優先搶占調度結合的方法來解決以上問題。圖2-33、圖2-34是一個典型CNC裝置多任務分時共享CPU的時間分配圖。

圖2-33 各個任務模塊之間的關系

圖2-34 各任務模塊占用CPU時間示意圖

為了簡單,我們假設CNC裝置軟件的功能只有三個任務:位置控制模塊、插補運算模塊以及背景程序模塊,如圖2-33所示。這三個程序優先級逐漸降低,位置控制模塊優先級別最高,其次是插補運算模塊,最后是背景程序(主要包括一些實時性要求不高的子任務)。系統規定:位置控制任務每4ms執行一次,插補運算8ms執行一次,兩個任務都是由定時中斷激活。當位置控制與插補運算都不執行時,便執行背景程序,正因為如此,才稱其為“背景”程序。系統的運作是:在完成初始化后,自動進入背景程序,背景程序采用循環調度方式,輪流反復執行各個子任務,在背景程序的運行過程中,不斷地被位置控制模塊和插補運算模塊等優先級別高的任務所中斷,中斷后保存現場,等到優先級別高的模塊運行完之后,恢復現場,接著執行背景循環程序。同樣,位置控制也可中斷插補運算的運行,因為位置控制的優先級高于插補運算。

可以看出:在任何時刻,只有一個任務占用CPU;從一個時間片(8ms或16ms)來看,CPU并行執行了三個任務。即資源分時共享的并行處理是宏觀意義上的,微觀上還是各個任務順序執行的。

(2)并發處理和流水處理

在多CPU結構的CNC裝置中,根據各任務間的關聯程度,可采用以下兩種策略來提高系統處理速度。其一,如果任務之間的關聯程度不高,則將各任務分別安排一個CPU,使其同時執行,即所謂的“并發處理”;其二,如果各任務之間的關聯程度較高,即一個任務的輸出是另一任務的輸入,則可采用流水處理的方法來實現并行處理。流水處理的技術是利用重復的資源(CPU),將一個大任務分成若干個彼此關聯的子任務(任務的分法與資源重復的多少有關),然后按一定順序安排每個資源執行一個任務。這個處理過程與生產線上分不同工序加工零件的流水作業一樣。例如:CPU1執行譯碼、CPU2執行刀補處理、CPU3執行速度預處理,t1時間CPU1執行第一個程序段的譯碼;t2時間CPU2執行第一個程序段的刀補處理,同時CPU1執行第二個程序段的譯碼;t3時間CPU3執行第一個程序段的速度預處理并輸出第一個程序段插補預處理后的數據,同時,CPU2執行第二個程序段的刀補處理,CPU1執行第三個程序段的譯碼,t4時間CPU3執行第二個程序段的速度預處理并輸出第二個程序段插補預處理后的數據,同時,CPU2執行第三個程序段的刀補處理,CPU1執行第四個程序段的譯碼……可以大大縮短兩個程序段之間輸出的間隔時間??梢钥闯?,在任何時刻均有兩個或兩個以上的任務在并發執行。

流水處理的關鍵是時間重疊,以資源重復為代價換取時間上的重疊,以空間復雜性換取時間上的快速性。

當CNC裝置在自動加工工作方式時,其數據的轉換過程將由零件程序輸入、插補準備、插補、位置控制四個子過程組成。如果每個子過程的處理時間分別為Δt1、Δt2、Δt3、Δt4,那么一個零件程序段的數據轉換時間將是tt1t2t3t4。如果以順序方式處理每個零件的程序段,則第一個零件程序段處理完以后再處理第二個程序段,依次類推。圖2-35表示了這種順序處理時的時間與空間的關系。從圖中可以看出,兩個程序段的輸出之間將有一個時間為t的間隔。這種時間間隔反映在電動機上就是電動機的時停時轉,反映在刀具上就是刀具的時走時停,這種情況在加工工藝上是不允許的。

消除這種間隔的方法是用時間重疊流水處理技術。采用流水處理后的時間與空間關系如圖2-35所示。

圖2-35 時間重疊流水處理

2.4.3 實時性與優先搶占機制

(1)實時性任務的分類

實時性是指某任務的執行有嚴格的時間要求,即必須在系統的規定時間內完成,否則將導致執行結果錯誤和系統故障。

如前所述,CNC裝置是一個專用的實時計算機系統。該系統的各任務或強或弱都具有實時性要求。從各任務對實時性要求的角度看,基本上可分為強實時性任務和弱實時性任務,強實時性任務又分為實時突發性任務和實時周期性任務。

①實時突發性任務 這類任務的特點是任務的發生具有隨機性和突發性,是一種異步中斷事件,往往具有很強的實時性要求。主要包括故障中斷(急停、機械限位、硬件故障)、機床PLC中斷等。

②實時周期性任務 這類任務是精確地按一定的事件間隔發生的。主要包括加工過程中的插補運算、位置處理等任務。為保證加工精度和加工過程的連續性,這類任務的實時性是關鍵。這類任務,除系統故障外,不允許被其他任務中斷。

③弱實時性任務 任務的實時性相對較弱,只需要保證在某一段時間內得以運行即可。在系統設計時,或被安排在背景程序中或根據重要性設置為級別較低的優先級由調度程序進行合理的調度。如顯示、加工程序編輯、插補預處理、加工軌跡的動靜態仿真以及加工過程的動態顯示等。

(2)優先搶占調度機制

為了滿足CNC裝置實時任務的要求,系統的調度機制必須具有能根據外界的實時信息以足夠快的速度(在系統規定的時間內)進行任務調度的能力。優先搶占調度機制是使系統具有這一能力的調度技術。它是基于實時中斷技術的任務調度機制。中斷技術是計算機響應外部事件的一種處理技術,其特點是能按任務的重要程度和輕重緩急對其進行響應,而CPU也不必為其開銷過多的時間。

優先搶占調度機制有兩個功能:其一是優先調度,在CPU空閑時,若同時有多個任務請求執行,優先級別高的任務將優先執行,例如,若位置控制與插補運算同時請求執行,則位置控制的要求將首先得到滿足。其二是搶占方式,在CPU正在執行某任務時,若另一優先級更高的任務請求執行,CPU將立即終止正在執行的任務,轉而響應優先級別更高的任務的請求,例如,當CPU正在執行插補運算時,此時位置控制任務請求執行,CPU首先將正在執行的任務現場保護起來(斷點保護),然后轉入位置控制任務的執行,執行完畢后,再恢復到中斷前的斷點處,繼續執行插補任務。

優先搶占調度機制是由硬件和軟件共同實現的,硬件主要產生中斷請求信號,由提供中斷功能的芯片和電路組成。如中斷管理芯片(8259或功能相同的芯片)、定時計數器(8263、8254等)等。軟件主要完成對硬件芯片的初始化、任務優先級定義方式、任務切換處理(斷點的保護與恢復、中斷向量的保持與恢復)等。

需要說明的是:CNC系統中任務的調度機制除優先搶占調度外,往往還同時采用時間片輪換調度和非搶占優先調度。

2.4.4 典型的數控系統軟件結構模式

2.4.4.1 CNC軟件結構概述

CNC系統的軟件是為完成CNC系統的各項功能而專門設計和編制的,是數控加工系統的一種專用軟件,又稱為系統軟件(系統程序)。

在CNC系統中,軟件和硬件在邏輯上是等價的,即由硬件完成的工作原則上也可以由軟件來完成。但是它們各有特點:硬件處理速度快,造價相對較高,適應性差;軟件設計靈活、適應性強,但是處理速度慢。因此,CNC系統中軟、硬件的分配比例是由性能價格比決定的。

CNC系統中實時性要求最高的任務就是插補和位置控制,即在一個采樣周期內必須完成控制策略的計算,而且還要留有一定的時間去做其他的事情。CNC系統的插補器既可以面向軟件也可以面向硬件。歸納起來,主要有以下三種類型:一是不用軟件插補器,插補完全由硬件完成的CNC系統。二是由軟件插補器完成粗插補,由硬件插補器完成精插補的CNC系統。三是帶有完全用軟件實施的插補器的CNC系統。

上述第一種CNC系統常用單CPU結構實現,它通常不存在實時速度的問題。由于插補方法受到硬件的限制,所以其柔性很低。

第二種CNC系統通常沒有計算瓶頸,因為精確插補由硬件完成。刀具軌跡所需要的插補,由程序準備并且使之參數化。程序的輸出是描述曲線的參數,諸如起點、終點、速度、插補頻率等,這些參數都是由硬件精確插補器輸入。

第三種CNC系統需要快速計算出刀具軌跡。具有多軸(坐標)控制的機床,需要裝備專用的CPU的多微處理器機構來完成算術運算。位片式處理器的I/O處理器用加減速控制任務完成。

實際上,現代CNC系統中,軟件和硬件的界面關系是不固定的。早期的CNC系統中,數控系統的全部功能由硬件來實現,隨著計算機技術的發展,特別是硬件成本的下降,計算機參與了數控系統的工作,構成了今天的計算機數控系統。但是這種參與的程度在不同的年代和產品是不一樣的。圖2-36說明了三種典型的數控裝置軟硬件界面關系。

圖2-36 CNC三種典型的軟硬件功能界面

2.4.4.2 典型的CNC軟件結構

CNC系統的軟件結構取決于系統采用的中斷結構。在常規的CNC系統中,已有的結構模式有前后臺型結構和中斷型結構兩種。

(1)前后臺型結構模式

該結構模式的CNC系統的軟件分為前臺程序和后臺程序。前臺程序是指實時中斷服務程序,實現插補、伺服、機床監控等實時功能。這些功能與機床的動作直接相關。后臺程序是一個循環運行程序,完成管理功能和輸入、譯碼、數據處理等非實時性任務,也叫背景程序,管理軟件和插補準備在這里完成。后臺程序運行中,實時中斷程序不斷插入,與后臺程序相配合,共同完成零件加工任務。在圖2-37所示的前后臺軟件結構中,實時中斷程序與后臺程序的關系圖被清楚地表達。這種前后臺型的軟件結構一般適合單處理器集中式控制,對CPU的性能要求較高。程序啟動后,先進行初始化,再進入后臺程序,同時開放實時中斷程序,每隔一定的時間,中斷發生一次,執行一次中斷服務程序,此時后臺程序停止運行,實時中斷程序執行后,再返回后臺程序。

圖2-37 前后臺型的軟件結構

(2)中斷型結構模式

CNC的中斷類型如下。

①外部中斷 主要有紙帶光電閱讀機中斷、外部監控中斷(如緊急停、量儀到位等)和鍵盤操作面板輸入中斷。前兩種中斷的實時性要求很高,將它們放在較高的優先級上,而鍵盤和操作面板的輸入中斷則放在較低的中斷優先級上。在有些系統中,甚至用查詢的方式來處理它。

②內部定時中斷 主要有插補周期定時中斷和位置采樣定時中斷。在有些系統中將兩種定時中斷合二為一。但是在處理時,總是先處理位置控制,然后處理插補運算。

③硬件故障中斷 它是各種硬件故障檢測裝置發出的中斷。如存儲器出錯、定時器出錯、插補運算超時等。

④程序性中斷 它是程序中出現異常情況的報警中斷,如各種溢出、除零等。

中斷型軟件結構的特點是:除了初始化程序之外,整個系統軟件的各種功能模塊分別安排在不同級別的中斷服務程序中,整個軟件就是一個大的中斷系統。其管理的功能主要通過各級中斷服務程序之間的相互通信來解決。

一般在中斷型結構模式的CNC軟件體系中,控制CRT顯示的模塊為低級中斷(0級中斷),只要系統中沒有其他中斷級別請求,總是執行0級中斷,即系統進行CRT顯示。其他程序模塊,如譯碼處理、刀具中心軌跡計算、鍵盤控制、I/O信號處理、插補運算、終點判別、伺服系統位置控制等處理,分別具有不同的中斷優先級別。開機后,系統程序首先進入初始化程序,進行初始化狀態的設置、ROM檢查等工作。初始化后,系統轉入0級中斷CRT顯示處理。此后系統就進入各種中斷的處理,整個系統的管理是通過每個中斷服務程序之間的通信方式來實現的。

FSNUC7系統的軟件結構是典型中斷型結構模式,下面我們以FANUC7系統為例,簡要地介紹一下其軟件結構,FSNUC7系統包括7T和7M兩個系列,我們以FSNUC7M軟件結構為例介紹。7M系統共有8級(0~7級)中斷,并且允許多重中斷,第0級中斷為最低級中斷;最高級中斷為第7級中斷,表2-5列出了各級的中斷功能。7M系統的中斷來源有兩種:一是由時鐘或是其他各級外部設備產生的中斷請求,稱為硬件中斷;另一種是由程序產生的中斷信號,我們稱為軟件中斷,這是由4ms時鐘分頻得出的。

控制程序中,還包括一個近200個子程序所組成的龐大子程序庫。為了使得子程序能夠實現正常嵌套和正常返回,設置了堆棧。此外,開機時為了做一些必要的準備,設置了初始化程序,初始化程序過后,便進入各級中斷的工作狀態。

表2-5為FANUC-BESKCM7CNC系統的各種中斷功能。

表2-5 FANUC-BESKCM7CNC系統的各種中斷功能

主站蜘蛛池模板: 和平区| 蓝山县| 信阳市| 富蕴县| 托里县| 潍坊市| 灌云县| 保定市| 汉中市| 张家港市| 长宁区| 库车县| 崇义县| 河西区| 新宁县| 朔州市| 雷山县| 疏附县| 辽阳县| 潮州市| 七台河市| 克拉玛依市| 宜兰县| 塘沽区| 梁平县| 江孜县| 北安市| 柳州市| 博白县| 紫阳县| 清河县| 乌拉特后旗| 虹口区| 秦皇岛市| 穆棱市| 扶余县| 巩义市| 乐陵市| 莱阳市| 德令哈市| 衡阳县|