針對這個問題,可分為兩個方面進行回答,第一,如何針對一個外圓編制宏程序?第二,需要注意什麼事項?
一、編程方面
首先,以一個外圓加工為例,毛坯直徑為100mm,系統為FANUC。
加工思路:採用90°外圓車刀,背吃刀量為2mm,即每次直徑去除4mm!
1.採用WHILE[ 表達式]DO1
....
END1
主要參考程序如下:
%O1
G99M3S1000T0101
G01X102
Z2
#1=100
#2=80
WHILE[#1GE#2]DO1
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
END1
Z100
M5M30
仿真效果如下圖所示:
2.採用IF[ 表達式]GOTON
參考程序如下:
%O2
G99M3S1000T0101
G0X102
Z2
#1=100
#2=80
N1#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
IF[#1GE#2]GOTO1
Z100
M5M30
二、注意事項
通過以上兩種編程方法,不難看出,宏程序其實並不難,難的是思路和語法問題!但是在用宏程序時,個人認為有一下幾點需要特別注意一下!
1.首先,這個零件的加工個人認為並不適合採用宏程序,可以採用G90,G80等單一外圓車削指令就可以,沒必要這麼麻煩。所以,要根據具體的零件來選擇什麼時候用宏!
2.以上宏程序的編制是採用FANUC系統,如果你用的是其它數控系統那麼語法上就有區別了,比如:
1)華中系統
WHILE[#1GE#2];沒有DO1
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
ENDW;END1改為ENDW
其它是沒有任何地方需要修改的!
2)新代系統
WHILE(#1>=#2)DO;GE改>=,DO1變改DO
#1=#1-4
G01X#1F0.1
Z-40
G0X102
Z2
ENDWHILE;END1改ENDWHILE
如果是IFGOTO
N1;
#1=#1-4;
G01X#1F0.1;
Z-40;
G0X102;
Z2;
IF(#1>=#2)GOTO1;
ENDIF
此外,在新代系統中還有其它的注意事項,再次就不要一一區別了!
3)西門子系統
R1=100
MA1:R1=R1-4
G1 X=R1F0.1
Z-40
G0X102
Z2
IFR1>=80GOTOBMA1
Z100
注意西門子和以上的語法的區別!
4)廣數系統
廣數系統,有的支持A類宏程序,需要利用G65調用,個人認為比較麻煩,比如
無條件轉移語句GOTO 1,採用A類:
G65H80P1=GOTO 1
G65H81就是有條件轉移的了!
有的支持B類宏程序,B類基本上和發那科區別不大,可以直接使用!
3.在編制程序或校驗程序時,有的時候宏的思路是對的,格式也對,但是就是不運行。因此特別要注意一些變量較多時,建議大家給每一個變量賦值,不然系統有時是無法識別的,這裡面的道理不好解釋,如果你學過電腦編程的化,應該能明白這個意思,是語法的問題!
最後,針對這個問題,通過以上兩個層面進行回答,不知是否解釋清楚了,本人水平有限,不當之處,請批評補充,祝好!
閱讀更多 zny850210數控 的文章