-
1 # 土匪136515442
-
2 # 數控程式設計張
針對這個問題,可分為兩個方面進行回答,第一,如何針對一個外圓編制宏程式?第二,需要注意什麼事項?
一、程式設計方面
首先,以一個外圓加工為例,毛坯直徑為100mm,系統為FANUC。
加工思路:採用90°外圓車刀,背吃刀量為2mm,即每次直徑去除4mm!
1.採用WHILE[ 表示式]DO1
....
END1
主要參考程式如下:
%O1
G99M3S1000T0101
G0X102
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.在編制程式或校驗程式時,有的時候宏的思路是對的,格式也對,但是就是不執行。因此特別要注意一些變數較多時,建議大家給每一個變數賦值,不然系統有時是無法識別的,這裡面的道理不好解釋,如果你學過電腦程式設計的話,應該能明白這個道理,是語法的問題!
最後,針對這個問題,透過以上兩個方面進行回答,不知是否解釋清楚了,本人水平有限,不當之處,請批評補充,祝好!
-
3 # 九龍妖月
本人曾經從事數控十幾年,也很熱愛這個行業。不敢說自己技術有多麼高超,但絕對擔得起數控業的中堅力量。殘酷的現實讓我不得不放棄這個行業,真是感慨萬千啊。做數控找不到老婆、買不起房!這是我個人悲哀,可能也是許多現今技術工人的悲哀吧!如今只能在這裡寄託一絲情懷……
回覆列表
現今社會已經不做這行業了,在研究也沒毛用。再厲害做十年也買不起房。還不如那個來錢快乾那個。為什麼還研究,好幾年不做了。