宏程序在高次曲線加工中的應用
2018-4-18 來源:福建水利電力職業技術學院 作者:蘭嵩
摘要:雖然各種各樣的自動編程軟件層出不窮,但手工編程仍有它不可替代的地方。本文基于FANUC-0i-mate數控系統B類宏程序的編程指令,有條理地分析了在編制高次非圓曲線時遇到的困難以及解決問題的方法,為宏程序其他場合的應用提供了思路。
關鍵詞:數控機床;宏程序;高次非圓曲線
隨著產品的不斷改進,機械零件的輪廓不再是只由直線段和圓弧段構成,出現了二次非圓曲線包括橢圓、雙曲線、拋物線、正弦曲線等。如果用自動編程軟件編程,會出現程序可讀性差、程序冗繁、程序靈活性不夠好等缺陷,而宏程序就能克服這些缺陷。
1、問題提出
數控系統通過準備功能指令 G 代碼控制數控車床的移動部件 (刀架) 運動。在 G 代碼中,能夠使得車床動作的指令有 G01 直線插補、G02 順時針圓弧插補、G03 逆時針圓弧插補,以及其它循環功能指令。但是,無論使用哪個 G 代碼,刀架的運動軌跡從肉眼上看去走出的是直線或者圓弧。
從原理上對運動控制進行分析:數控系統是按照插補算法來控制移動部件運動,不同的插補算法走出的軌跡是不一樣的,但都是通過折線來逼近直線或圓弧 (見圖 1 和圖 2)。我們把數控系統統發送一個脈沖,機床移動部件運動的距離稱為脈沖當量,可達到 1μm。因此,逼近的折線幾乎就是直線或圓弧,能夠達到零件輪廓精度的要求。
圖1 逐點比較插補法
圖2 數字積分插補法
遇到走刀軌跡是非圓高次曲線,我們可以參考上述插補原理,采用將曲線分割成若干條直線段來逼近 (見圖3)。而要讓數控系統控制刀架走出一段直線,編程人員需要計算出直線段的終點坐標值、編寫一行程序來實現。如果分割的線段越少,編程的計算量就大大減少、程序簡潔,但是零件的加工精度無法保證;反之,分割的線段越密集,確實能夠保證加工精度,但缺點是坐標的計算量大,程序冗繁。因此,如何利用系統自動計算坐標和簡化程序這兩個問題需要我們解決。
圖3 折線逼近橢圓
2、問題解決
2.1 坐標計算
如果將曲線分割成 10000 段,我們就需要計算 10000 個點的坐標值。如果只靠人工計算,工作的效率太低,且容易出現錯誤。目前大多數數控系統都有提供宏程序功能,與普通的數控程序相比較更具有靈活性。在宏程序中,字可以使用變量,通過讓變量執行賦值、運算等操作來控制機床移動部件走出有規律的軌跡。宏程序有 A 類和B 類兩種,FANUC-0i- mate 系統常采用B 類宏程序進行編程,下面我們將說明如何利用 B 類宏程序解決坐標計算問題。
2.1.1 變量
1) 變量表達:一個變量可用#K (K=1,2,3……) 來表達,如#28。2) 變量分類:系統提供了三種變量,全局變量、局部變量和系統變量。
2.1.2 變量運算
變量運算包括賦值數學運算和函數運算。
1) 賦值使用符號“=”,作用是將“=”右邊的數值存放至“=”左邊的變量中。
例如:#28=50。
2) 數值運算符號包括“+、-、*、/”,可以數值和數值間運算,也可以數值和變量間運算,還可以變量和變量間運算。例如:#28=#29*#30,含義為將變量#29 中存放的數值和變量#30中存放的數值相乘,得到的結果存放在變量#28中。
3) 常用的函數運算符號有:
SQRT (平方根)、ABS (絕對值)、SIN (正弦)、COS (余弦)、TAN (正切)、ATAN (余切) 等。例如:#28=SQRT[#29],含義為將變量#29 中存放的數值開平方根,得到的結果存放在變量#28
中。
2.1.3 運用宏程序解決坐標計算
假設要控制機床移動部件走出橢圓軌跡,已知橢圓的長半軸為a,短半軸為b,我們可以得到軌跡的方程為相比較更具有靈活性。在宏程序中,字可以使用
變量,通過讓變量執行賦值、運算等操作來控制機床移動部件走出有規律的軌跡。宏程序有 A 類和B 類兩種,FANUC-0i- mate 系統常采用B 類宏程序進行編程,下面我們將說明如何利用 B 類宏程序解決坐標計算問題。
2.1.1 變量
1) 變量表達:一個變量可用#K (K=1,2,3……) 來表達,如#28。
2) 變量分類:系統提供了三種變量,全局變量、局部變量和系統變量。
Z2/ a2+ X2/ b2=1 (1)因此,我們可以得到 X 坐標關于 Z 坐標的方程:
表1 變量類型
X =baa?a - Z?Z (2)當給定軌跡上某個點M的Zm坐標值,就能通過上面的公式計算出該點的Xm坐標,而這個運算過程可以讓數控系統的宏程序來實現。我們選用#100和#101兩個變量,用#100來存放Xm坐標,用#101來存放Zm坐標,因此得到:#101=Zm;(將M點的Z坐標存放到#101)#100=b/a*SQRT[a*a-#101*#101];(計算出 M點X坐標)G01 X#100 Z#101 F0.2;(運動到該點)
2.2 程序簡化
移動部件從軌跡起點運動到終點,Z 坐標 Z2則從 a 連續變化到 0。如果將軌跡分割成 1000段,則賦值、計算和運動各需要 1000 行程序段,因此程序非常冗繁。要解決這個問題,需要用到程序的控制指令功能。
表2 條件式格式
2.2.2 程序跳轉語句
1) IF<條件式>=GOTO n (n為程序段號)當<條件式>成立時,程序跳轉到段號為 n 的程序段往下執行;當<條件式>不成立時,程序不執行跳轉,繼續往下執行。
2) WHILE< 條 件 式 >DO m (m=1, 2,3……)……END m當<條件式>成立時,程序重復執行 DO m 到END m 之間的程序,直到<條件式>不成立;當<條件式>不成立時,程序從 END m 這一段往下執行。
3) 兩種方法比較用IF語句控制程序跳轉時,系統必須從程序頭開始逐段掃描程序段號,直到符合語句中的段號 n 時 , 才 開 始 執 行 程 序 , 效 率 較 低 ; 而 用WHILE 語句時,系統只需循環 DO m 到 END m 之間的程序,效率高。因此推薦使用WHILE語句進行控制。
2.2.3 程序編制取變量
#102 存放 Z 方向遞減的步長。Z 坐標從軌跡起點 a 開始,每次遞減步長,計算出軌跡上新點的 X 坐標,控制刀具運動到新點。系統重復以上步驟,直到刀具運動到軌跡終點,從而走出曲線輪廓。輪廓加工的精度取決于步長值的大小,步長越小,軌跡被分割成的線段就越多,那么與輪廓的相似度就越高。設置橢圓圓心為編程原點,加工的宏程序如下:
從上面程序我們可以看出:采用宏程序編程,不僅能夠簡化編程結構,并且對提高編程和加工的效率也有重要的作用。
3 、宏程序的其他應用
數控機床的編程方式包括手工編程和自動編程,隨著各種各樣的編程軟件不斷出現,大大提高了編程效率,但在某些場合中并不能完全取代手工編程。手工編程,特別是宏程序編程仍具有自己的優勢。
1) 通過改變對變量賦值,可以加工不同尺寸但形狀類似的零件。例如需加工多個不同零件,每個零件上都有橢圓輪廓,但尺寸、橢圓圓心與編程原點相對位置不同。我們可以先確定出橢圓的非標準式方程 (通式),編制橢圓宏程序并作為一個子程序,然后根據要加工橢圓的參數將方程中的所有常數 (包括:長半軸、短半軸、起點坐標、終點坐標、橢圓圓心相對編程原點的距離、步長等) 賦值給變量,最后用調用子程序的方法走出軌跡。
2) 數控系統中有專門用來存放刀具補償的變量,可以解決因刀具磨損造成的精度誤差。當加工多個零件后,刀具會產生磨損,若使用原有的程序繼續加工,那么零件的尺寸會超出公差允許范圍。這時,我們只要在程序中加一行將刀具磨損的值賦給磨耗變量的程序段,使得刀具軌跡偏離一個磨損量,就能夠保證加工合格。除此之外,宏程序還在其他場合廣泛使用。比如特殊螺紋的加工、用同一個程序進行粗精加工等。
4、結束語
宏程序和普通程序相比較最主要的區別在于宏程序可以使用變量,并給變量賦值,變量之間可以進行運算,程序可以控制跳轉;而普通程序中只能使用常量,常量之間不能運算,程序只能按順序執行。做為一名優秀的數控編程人員,不能只會使用CAD/CAM軟件出后置處理程序,要根據企業的實際情況合理地選擇程序編制方法。因此,掌握宏程序的編制方法是非常有必要的。
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息