李慧玲 羅敏



【摘要】對傳統數控插補原理教學過程中以課堂講授為主結合VC、VB等編程語言完成插補過程仿真的教學方法進行改革,創新性地采取讓學生親自動手在實際的FANUC-0i-mate-C數控加工中心綜合實驗臺上,采用調用用戶宏程序的方法,用畫筆在平鋪于工作臺面上的白紙上模擬繪制逐點比較法插補或數字積分法插補的過程的教學方式,使插補原理及宏程序編程兩部分重要理論密切聯系,并與實踐緊密結合。
【關鍵詞】插補原理 ?數控 ?宏程序
【中圖分類號】G71 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 【文獻標識碼】A ? ? ?【文章編號】2095-3089(2015)05-0037-03
一、引言
傳統數控插補原理教學,大多以課堂講授為主,結合VC、VB等各種編程語言完成插補過程的仿真。這種教學方法不能將理論知識與現有實驗教學設備有機結合,學生普遍反映內容抽象,理解困難,與實踐脫節。
為了改革傳統數控插補原理教學過程中教師灌輸過多,學生參與過少;理論性結論過多,啟發式問題過少的教學方式,有針對性地創新教學方法:要求學生在實際的FANUC-0i-mate-C數控加工中心綜合實驗臺上,采用調用用戶宏程序的方法,用畫筆在平鋪于工作臺面上的白紙上模擬繪制逐點比較法插補或數字積分法插補的過程。這樣就將一個對插補原理進行仿真的演示性實驗改造成了理論上綜合了插補原理及宏程序編程兩部分重要內容,實踐上鍛煉了學生對實際數控系統的操作及調試能力的綜合性實驗。
二、插補原理
在數控機床實際加工中,數控系統根據輸入的零件程序的信息,按照某種算法將程序段所描述的曲線的起點、終點之間的空間進行數據密化,從而形成刀具加工軌跡,這種“數據密化”機能就稱為“插補”。按照插補運算所采用的基本原理和方法,數控系統的插補原理通常可歸納為脈沖增量插補和數據采樣插補兩大類。
逐點比較法是脈沖增量插補中最典型的算法,原理是:在控制過程中,逐點計算和判斷運動軌跡與給定軌跡的偏差,并根據偏差控制進給軸向給定輪廓靠近,縮小偏差,使加工輪廓逼近給定輪廓。以折線來逼近直線或圓弧,最大誤差不超過一個脈沖當量。
以第一象限逆圓為例:圓弧(AB) ,其圓心在坐標原點,已知起點為A(X_A,Y_A ),終點為B(X_B,Y_B ),圓弧半徑為R,瞬時加工點P(X_i,Y_i )與圓心的距離為R_i。取F_i=R_i^2-R^2=X_i^2+Y_i^2-R^2為偏差判別式,若P點在圓弧上或在圓弧外,即F_i≥0時,為了使加工點逼近圓弧,應向-X方向進給一步。進給后的新坐標值為:X_(i+1)=X_i-1;Y_(i+1)=Y_i,則新的偏差為:F_(i+1)=R_(i+1)^2-R^2=X_(i+1)^2+Y_(i+1)^2-R^2=(X_i-1)^2+Y_i^2-R^2=F_i-2X_i+1;若P點在圓弧內,即F_i<0時,應向+Y方向進給一步。進給后的新坐標值為:X_(i+1)=X_i;Y_(i+1)=Y_i+1,新的偏差為:F_(i+1)=R_(i+1)^2-R^2=X_(i+1)^2+Y_(i+1)^2-R^2=X_i^2+(Y_i+1)^2-R^2=F_i+2Y_i+1。同時設置一終點計數器,其初值為∑·〖=|X_B-X_A | 〗+|Y_B-Y_A |,即從起點到終點的總步數,X或Y坐標每進給一步,∑減去1,直到∑=0時,到達終點。故逐點比較法圓弧插補計算過程的每一步分為五拍:偏差判別、坐標進給、偏差計算、坐標計算及終點判別。圓弧的象限及順逆不同,則插補計算公式和進給方向也不同,四個象限的圓弧插補偏差計算公式和進給方向見表1。若圓弧存在過象限的問題,可將圓弧按象限分段處理。
表1 ?四象限圓弧插補的偏差計算公式及進給方向
Fi≥0 Fi<0
圓弧所在象限及方向 進給方向 偏差計算 坐標計算 圓弧所在象限及方向 進給方向 偏差計算 坐標計算
Ⅰ順、Ⅱ逆 -Y Fi+1=Fi-2|Yi |+1 |Xi+1|=|Xi |
|Yi+1|=|Yi |-1 Ⅰ順、Ⅳ逆 +X Fi+1=Fi+2|Xi|+1 |Xi+1|=|Xi|+1
|Yi+1|=|Yi|
Ⅲ順、Ⅳ逆 +Y Ⅲ順、Ⅱ逆 -X
Ⅳ順、Ⅰ逆 -X Fi+1=Fi-2|Xi |+1 |Xi+1|=|Xi|-1
|Yi+1|=|Yi | Ⅱ順、Ⅰ逆 +Y Fi+1=Fi+2|Yi|+1 |Xi+1|=|Xi|
|Yi+1|=|Yi|+1
Ⅱ順、Ⅲ逆 +X Ⅳ順、Ⅲ逆 -Y
三、FANUC宏程序
用戶宏程序是像子程序一樣,在存儲器中存儲一組指令的功能,存儲的這組指令功能用一條指令表示或調用執行。這一組指令稱為用戶宏程序本體,簡稱宏程序;把代表指令稱為用戶宏程序調用指令,簡稱宏指令。FANUC宏程序具有許多可在計算機高級語言中發現的特征:算術和代數計算;三角法計算;變量數據存儲;邏輯運算;分支;循環;錯誤檢查;報警產生;輸入和輸出。
因此,可以利用FANUC宏程序的這些特點進行逐點比較法插補模擬程序的模塊化:例如,在主程序中僅完成起點與終點坐標的賦值及坐標軸的繪制,而將包括偏差判別、坐標進給、偏差計算、坐標計算及終點判別的整個插補過程在宏程序中完成。這樣,只需在主程序中改變起點及終點坐標,而無需對宏程序進行任何變動,即可完成所需的插補過程模擬。同時,在宏程序中,利用條件轉移指令實現偏差判別后確定進給軸及進給方向的分支功能;利用循環指令或條件轉移指令實現終點判別及終點未到之前,偏差判別、坐標進給、偏差計算、坐標計算及終點判別這五拍的迭代進行,使宏程序編程得到簡化。
通常宏程序由主程序或其他的宏程序使用G代碼(典型的是G65)調用。
宏指令的基本格式為:G65 ?P ? L ? <自變量>;其中G65為宏程序調用命令;P ?為包含宏程序的程序號。L ?程序循環次數(L1為默認值);自變量為傳遞給宏程序的局部變量的定義。
四、基于宏程序的逐點比較法第三象限逆圓插補的實現
這里僅以逐點比較法第三象限逆圓插補(圓心在坐標原點)為例,介紹使用調用宏程序完成插補模擬的過程。
首先,在主程序中完成圓弧起點及終點坐標的賦值、坐標軸的繪制,宏程序的調用包括表示圓弧起點及終點坐標的局部變量的賦值。
在用戶宏程序中完成圓弧起點的快速定位,圓弧插補的偏差判別、坐標進給、偏差計算、坐標計算及終點判別等全部插補過程。在這里特別要注意的是:為了清楚地繪制插補過程,需要將各軸的脈沖當量進行適當放大。逐點比較法第三象限逆圓插補流程圖如圖1所示。
圖1 逐點比較法第三象限逆圓插補流程圖
宏調用格式G65 P8011 X ? Y ? A ? B ? F ?;
有關自變量定義如下
X(#24):圓弧起點X軸坐標X
Y(#25):圓弧起點Y軸坐標Y
A(#1):圓弧終點X軸坐標A
B(#2):圓弧終點Y軸坐標B
F(#9):切削進給速度F
主程序:
O1234;
N60 G90 G54 G00 X0 Y-60;采用工件坐標系絕對模式
N70 G01 Y0 F100;繪制Y坐標軸
N80 X-60;繪制X坐標軸
N90 G65 P8011 X-5 Y0 A0 B-5 F100;調用用戶宏程序O8011
N100 G00 X0 Y0;回坐標原點
N110 M30;主程序結束
宏程序
O8011;
N200 #33=#4003;保存編程模式
N210 #3=ABS[#24];圓弧起點X軸坐標絕對值|X|
N220 #4=ABS[#25];圓弧起點Y軸坐標絕對值|Y|
N230 #5=ABS[#1-#24]+ABS[#2-#25];終點計數器初值,#24=#500,#25=#501,#1=#502,#2=#503
N240 #6=0;設置插補計算偏差初值F=0
N250 G00 X[10*#24] Y[10*#25];定位圓弧起點,并將坐標值放大10倍
N260 G03 X[10*#1] Y[10*#2] R[SQRT[#24*#24+#25*#25]*10] F#9;繪制參考圓弧
N270 G00 X[10*#24] Y[10*#25];再次回到圓弧起點
N280 IF [#6 GE 0] GOTO 310;如果偏差大于等于0,轉移到N330
N290 G91 G01 Y-10 F#9;當偏差小于0時,向-Y方向進給一步(10mm)
N300 #6=#6+2*#4+1;計算當前偏差 F=F+2|Y|+1
N310 #4=#4+1;計算當前坐標的絕對值 |Y|=|Y|+1
N320 GOTO 360
N330 G91 G01 X10 F#9;向+X方向進給一步(10mm)
N340 #6=#6-2*#3+1;計算當前偏差 F=F-2|X|+1
N350 #3=#3-1;計算當前坐標的絕對值 |X|=|X|-1
N360 #5=#5-1;終點計數器減1
N370 IF[#5 NE 0] GOTO 280;若終點計數器不為0,轉移到N280繼續進行圓弧插補
N380 G#33;恢復編程模式
N390 M99;宏程序結束
FANUC-0i-mate-C數控加工中心綜合實驗臺如圖2所示。運行結果如圖3所示。
圖2 FANUC-0i-mate-C數控加工中心綜合實驗臺 ?圖3 逐點比較法第三象限逆圓插補軌跡
逐點比較法第三象限逆圓插補理論計算過程如表2。
表2 逐點比較法第三象限逆圓插補理論計算過程
步數 偏差判別 坐標進給 偏差計算 坐標絕對值計算 終點判別
0 F0=0 |X0|=5;|Y0 |=0 ∑= 5+5=10
1 F0=0 +X F1=F0-2|X0|+1=-9 |X1|=4;|Y1|=0 ∑= 10-1=9
2 F1<0 -Y F2=F1+2|Y1|+1=-8 |X2|=4;|Y2|=1 ∑= 9-1=8
3 F2<0 -Y F3=F2+2|Y2|+1=-5 |X3|=4;|Y3|=2 ∑= 8-1=7
4 F3<0 -Y F4=F3+2|Y3|+1=0 |X4|=4;|Y4|=3 ∑= 7-1=6
5 F4=0 +X F5=F4-2|X4|+1=-7 |X5|=3;|Y5|=3 ∑= 6-1=5
6 F5<0 -Y F6=F5+2|Y5|+1=0 |X6|=3;|Y6|=4 ∑= 5-1=4
7 F6=0 +X F7=F6-2|X6|+1=-5 |X7|=2;|Y7|=4 ∑= 4-1=3
8 F7<0 -Y F8=F7+2|Y7|+1=4 |X8|=2;|Y8|=5 ∑= 3-1=2
9 F8>0 +X F9=F8-2|X8|+1=1 |X9|=1;|Y9|=5 ∑= 2-1=1
10 F9>0 +X F10=F9-2|X9|+1=0 |X10|=0;|Y10|=5 ∑= 1-1=0
實際運行結果與理論計算完全相符。
五、結論
學生通過用戶宏程序編程,了解了宏變量和宏指令的應用,掌握了用戶宏程序的編程、輸入、編輯、調試及調用的方法;并通過數控插補原理實驗,進一步理解并掌握了逐點比較插補原理和數字積分插補原理。故基于宏程序的插補原理實驗教學方法改革真正做到了以問題為主線,以綜合實踐為導向,引導學生掌握科學的學習方式,讓學生主動參與、樂于鉆研、勤于動手,極大地提高了學生的學習能力和教學效果。
參考文獻:
[1]羅敏等.數控原理與編程[M].北京:機械工業出版社,2011.
[2]羅敏.FANUC數控系統設計及應用[M].北京:機械工業出版社,2014.