西安東風儀表廠 (陜西 710065) 劉一博 劉芳榮
數控程序,按照表述對象(指程序的內容及含義)通常可分為兩大類:一是面向加工對象,程序描述的是待加工零件的幾何要素、單元的信息數據,控制系統依據這些數據和參數計算刀路,具體的計算過程均在系統內部完成,編程者無法看到相關細節,MAZATROL就是這種程序的典型代表,西門子的shopmill程序也屬于此類。第二種是面向運動過程,即程序語句由描述機床順序動作的指令(如 G1、G2、G3、M3…每種指令對應唯一的驅動方式)組成,常見的有FANUC、HEIDENHAIN及SIEMENS等系統。
MAZATROL操作系統程序是一種高度智能、強導向的人機對話式編程,根據表頭內容及每行提示可以快速地直接填寫,手動完成程序編寫,過程中人工計算量很小。通過表格填寫即可描述出一份尺寸完整、邏輯清晰的平面圖,無需計算機輔助,且程序簡煉、高效、可讀性好,與傳統的控制系統完全不同,如附圖所示。

MAZATROL操作系統程序圖
圖1填寫表格方式的程序,導向性很強,能清晰指導編程者下一步做什么、如何做,做錯了會提示錯在哪里。該系統自帶強大的CAD功能,只要邏輯條件充分,系統可以自動計算出某個點位數據且用顏色加以區分。
FANUC、SIEMENS、華中數控等系統的程序在格式、含義、功能方面都很接近,都是在標準的通用指令(俗稱G代碼)的基礎上擴展、變種發展而來,如常用的直線、圓弧等指令,大同小異,均以直角坐標、極坐標或者增量坐標值表示終點。
以下為FANUC程序,表示一句直線指令,終點的直角坐標值(X/Y/Z),再加上A/B軸的角度值。

至于HEIDENHAIN操作系統,同樣表示的也是終點的坐標,這個坐標可以是直角坐標系、極坐標系、增量直角坐標系及增量極坐標系。以下為為HEIDENHAIN程序,較FANUC程序而言,只是G1被L替代,其他指令大多也來源于英文縮寫或者單詞的首字母。標準G代碼則是G加上數字構成,如G1、G2、G3等,及輔助其他代碼構成輔助代碼,如M加上數字,構成M代碼(如M0、M3等)。

(1)點位程序與樣條曲線程序 按照數據類型(插補)可將程序分為點位(直線圓弧)程序和樣條曲線(樣條插補)程序兩種。兩者在原理、特點及適用范圍等方面均有不同。點位程序如下:

上述語句是最常見的三軸點位程序格式,其含義為“驅動刀具中心點產生相對運動,以到達程序指定的坐標點(不考慮刀補因素)”,表示刀具中心點從起點坐標點以直線或圓弧運動且以某個運動方向(圓弧運動時有順圓弧或逆圓弧)運動到終點坐標點。
(2)點位程序的種類 上面例子采用的是直角坐標系,也可用增量直角坐標系表示(即,當前點相對于上一個點坐標值的增量,有正負之分)。HEIDENHAIN系統同時還兼容極坐標系、增量極坐標系,對于表達呈圓周分布的幾何單元的位置極為便捷,且更加符合設計圖樣 [一般圖樣對圓系位置多采用(r,θ)表示],很方便檢查正誤,系統內部會自動計算轉換數據。
直角坐標系與極坐標系及其衍生的增量坐標系構成的四種不同類型的數據,可以在同一個程序中混和應用。但由于直角坐標系與極坐標系原理不盡相同,在同一行指令中不可同時出現,只能是直角坐標+增量直角坐標,或者極坐標+增量極坐標。
(3)點位程序的優劣 上面提到的四種坐標值程序,都屬點位坐標程序,多適合于直線、圓弧的表示與加工,在實際應用過程中有一定的局限性。
當前加工對象日趨復雜,含有規則曲面、異形曲面類的零部件已占到加工總量的60%左右(模具加工中曲面比例更高)。對于樣條曲線、不規則曲面的表述,點位程序是有缺陷的。因其表述原理是,將樣條曲線按照要求的精度,以某一算法截分成有限個直線段,點位程序描述的便是這些線段的端點的坐標值。同理,對于不規則曲面,首先也是按照某種算法將其分解為有限的曲線,之后再將曲線分解成直線。因此生成的程序往往體積都相當龐大,硬件(設備)每秒鐘要處理多條指令,但其計算能力是有限的(雖然現在設備的處理器功能很強大,但具體到某臺設備,該屬性是固有的),當單位時間待處理的指令條數接近或達到其(機床計算機處理器)極限值時,操作系統的反應速度會明顯遲滯,具體表現就是機床運動速度降低,運動不流暢(通常所謂的“卡”);設備在執行某一條指令時,通常存在加減速度問題,起點加速達到要求的進給(速度),當接近終點瞬間時則會減速,以便對下一條指令作出準備,并準備執行(可能同時還會改變方向)。以上兩點原因往往導致設備在運行曲面程序時,總體速度下降,走刀時間加長。更重要的則是刀路(運動)不流暢,加工表面質量明顯下降。對于高精度的光學器件的加工很難滿足要求,同時效率較低,因此派生出另外的一種插補方式。
當前,新生代機床的操作系統擁有強大的前窺(預讀)功能,能提前規劃路徑,順暢刀路并減少遲滯,在一定程度上會彌補上述缺陷,但尚不能完全克服。
(4)樣條曲線程序 針對點位程序的上述缺陷,操作系統研制商及機床廠家開發出各種樣條(插補)曲線程序,該程序描述樣條曲線的特征包括拐點等必要信息數據。機床在實際走刀過程中,系統內部會自動根據信息數據插補中間值,并預讀準備后面的刀路,中間無需停頓且速度均衡,形成的刀路光滑流暢,而且程序短小精悍,表面質量大幅提高。如下是HEIDENHAIN系統的B樣條曲線的三軸數控程序,這種程序完全不同于傳統點位程序,每行的數據信息更加豐富,緊跟SPL后的三個數據是坐標值,K(n)則表示某軸的階數。這里不深究其插補原理。
這些高級功能需要設備操作系統強有力的支持,目前在高版本的FANUC、HEIDENHAIN、SIEMENS等系統中已有廣泛應用。
國內外專家學者研究開發出了各種樣條曲線的插補,如A(AKIMA)樣條曲線插補,C(CUBIC)樣條曲線插補,貝奇爾(BEZIER)樣條曲線插補,PH(PYTHAGOREAN-HODOGRAPH)曲線插補,B 樣條曲線 NURBS(Non-Uniform.Rational B-Spline)曲線插補。由于NURBS曲線具有良好的直觀性,且在局部性及收斂、逼近性方面占有優勢,已經成為當前最為通用的列表曲線擬合方法。利用NURBS在CAD/CAM系統中可以使所有的曲線具有統一的數學表達式,國際標準化組織(ISO)在其正式頒布的工業產品幾何定義STEP標準中,亦將NURBS作為產品交換的國際標準。
若按照控制軸數量來分類,程序一般分為三軸程序與五軸程序(四軸程序嚴格講是五軸程序的簡化版,可歸類于五軸程序范疇)。而五軸程序根據數據結構又可分為點位五軸程序與矢量程序兩種。
(1)五軸點位程序 所謂五軸點位程序,就是在三軸點位程序的基礎上,增加兩個旋轉軸的坐標值,其量值單位是(角)度,有正負,以表示旋轉方向。如:

由于五軸數控設備結構的多樣性,以及設備各旋轉軸軸線空間位置關系的復雜性,五軸點位程序通用性很差(三軸設備則因其三軸正交的結構特點,程序間彼此的兼容性良好,僅通過修改程序開頭、結尾及少量輔助指令即可)。依據某臺設備編寫的NC程序幾乎不可能直接在其他設備上運行。換句話說就是,同樣一種零件,若更換機床加工,需要運用不同的后置處理文件重新生成符合指定機床的程序,這些后置需要專業廠家定制或購買。
(2)五軸矢量程序(不含刀補) 基于五軸點位程序的缺陷,又衍生(開發)出了一種通用的五軸程序,適合不同結構的機床,就是五軸矢量程序。該程序完全不受機床的結構限制,每行有六個數據,由(X、Y、Z)三個坐標值與該點刀軸矢量在三個軸上的投影矢量值構成,格式如下所示,“LN”后的X、Y、Z數值表示坐標值,TX、TY、TZ表示坐標值的矢量方向,這個方向就是刀軸相對工件的方向。也可以形象理解成一條空間里的射線,刀具的中心就是射線端點,刀具的軸線與射線重合;或者可更簡單理解為,這條射線就是刀具本身(將刀具簡化為一條射線)。程序如下:


設備執行此類程序時,操作系統會自動將其分解、轉換為適用于本設備的五軸點位程序。也就是說,此程序相當于一個中間(過渡)點位文件,需要被機床系統翻譯/轉換成本機床適用的數據類型和適用的兩個旋轉軸(或A/C、或A/B、或B/C)的旋轉角度。
每臺機床都對其旋轉軸的運動/加工范圍有具體規定,一般A/B軸運動范圍都會大于90°。如當A軸的運動范圍是(-97°,+12°)時,這樣在某個區域內(±12°)就會有兩個解,在特殊情況下(當矢量為(0,0,1)時)有無窮多解。通常,遇到特殊情況會選擇旋轉軸不動(路徑最短原則);當有雙解時,就需要機床操作系統擁有優先選擇算法,一般由系統或者機床廠家設定。
矢量程序也存在一定的局限性。因為它需要將矢量轉換為旋轉軸的度數值,增加了機床處理器的負擔,需要功能強勁的設備處理器作為支持。曾經做過試驗對比,將一個刀路分別生成五軸點位程序和五軸矢量程序,同時設置相同的程序參數,在同一臺設備(2005年出廠的HERMLEC1200U)上運行。結果顯示,點位程序運行非常流暢,而矢量程序有微微停頓及遲緩現象,進給速度變慢。對于新生代的機床,處理器足夠強大,這種矢量程序應用沒有任何問題。
(3)五軸插補矢量程序(3D插補矢量程序)鑒于五軸程序運動的復雜性,一般很少使用刀補(三軸程序大多有刀補),對于刀具磨損無法通過刀補來(精細補償)補償。那么究竟有沒有帶刀補的五軸矢量程序呢?答案是肯定的。3D插補就是矢量程序的擴展,每行有九個數據,如下所示,N后面三個數據是刀具接觸點的矢量。這種程序更復雜,但具有更好的兼容性與靈活性,且能提高加工精度,減少刀具復磨次數,降低刀具成本。

當然,這種3D插補的矢量程序,具有矢量程序的所有優缺點,而且對于處理器的功能要求更加苛刻,需要運算更多的數據。
綜上所述,五軸點位程序不僅體積龐大,且不適用于曲面加工;樣條曲線程序擅長曲面加工,卻僅有三軸程序;五軸矢量程序,從嚴格意義上來講,仍然是點位程序。
能否集合各類數據程序的優點呢?能否將五軸程序與樣條曲線程序相結合,產生五軸的樣條曲線程序?又或者將樣條曲線程序和五軸矢量程序相融合?甚至考慮將樣條曲線與帶刀補的矢量程序相嫁接……這些問題的解決,將會對五軸以上數控設備的進一步推廣與應用產生革命性的影響。
未來五軸點位程序+樣條曲線程序,依據三軸樣條曲線的原理,需要增加兩個旋轉軸的控制點及權重值等必要數據,每行最少新增6個數據,即每行需要不少于15個數據。
未來樣條曲線+五軸矢量程序,估計需要增加9個數據,達到每行至少18個數據。
未來程序需要更多的信息數據做支撐,依據現有的程序格式做出的推測,試著分析一下其構成,刀尖點的數據3個,每個軸的權重點、階數9個數據,3個矢量及3個矢量的權重階數,再加上接觸點的矢量等等。若是樣條曲線與帶刀補的五軸矢量程序相結合,那信息量就更大了。
面向對象的加工,描述的是被加工單元的要素。而五軸矢量程序雖然描述的是加工過程,但卻同時含有面向加工對象的一些特征,甚至可以理解成工件表面的要素。五軸空間樣條曲線程序,也更像面向對象的程序。樣條曲線+五軸矢量程序,則更進一步接近面向對象,每行程序含有更多的零件信息,過程刀路則由機床依據算法插補。
對于高級的五軸程序,面向過程跟面向對象兩者似乎走向了融合,不同于面向對象,又不同于面向過程。對于如此復雜的程序,采用傳統的手工編程是無法實現的,現有的CAM軟件則需要加大數據量,或開發全新的CAM軟件,同時輔以強大的后處理系統,方可實現生成、模擬及分析功能,并將面向加工對象與面向運動過程的優勢完美結合。