用數控車床車一個外圓,宏程序應該怎麼寫?需要注意什麼?

針對這個問題,可分為兩個方面進行回答,第一,如何針對一個外圓編制宏程序?第二,需要注意什麼事項?

一、編程方面

首先,以一個外圓加工為例,毛坯直徑為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.在編制程序或校驗程序時,有的時候宏的思路是對的,格式也對,但是就是不運行。因此特別要注意一些變量較多時,建議大家給每一個變量賦值,不然系統有時是無法識別的,這裡面的道理不好解釋,如果你學過電腦編程的化,應該能明白這個意思,是語法的問題!

最後,針對這個問題,通過以上兩個層面進行回答,不知是否解釋清楚了,本人水平有限,不當之處,請批評補充,祝好!


分享到:


相關文章: