昨天邢臺市的數控車技師考試在我們這里舉行,考試的師傅們都用到了宏程序進行編程,加工橢圓等復雜的形狀。下面介紹一下宏程序。
宏程序是加工編程的重要補充。FANUC 6M數控系統變量表示形式為# 后跟1~4位數字,變量種類有三種:
(1) 局部變量:#1~#33是在宏程序中局部使用的變量,它用于自變量轉移。(2) 公用變量:用戶可以自由使用,它對于由主程序調用的各子程序及各宏程序來說是可以公用的。#100~#149在關掉電源后,變量值全部被清除,而#500~#509在關掉電源后,變量值則可以保存。(3)系統變量:由 # 后跟4位數字來定義,它能獲取包含在機床處理器或NC內存中的只讀或讀/寫信息,包括與機床處理器有關的交換參數、機床狀態獲取參數、加工參數等系統信息。
編程中變量的用途有四個,運算;遞增量或遞減量;與一個表達式比較之后,決定是否實現跳轉功能的條件分支;將變量值傳送到零件程序中去。其中運算又包括:算術運算(賦值、加、減、乘、除、絕對值、四舍五入整數化、舍去小數點以下部分);函數運算(正弦、余弦、正切、反正切、平方根);邏輯操作(與、或);比較操作(等于、大于、小于、大于或等于、小于或等于、不等于)。
用宏程序車削外圓:
宏程序編程指令格式
G65P8090X(U) Z(W) D E F
其中X(U) Z(W) 外圓終點坐標,X軸為直徑值編程
D-----每次切深,半徑值指令;
E-----退刀量
F------切削速度
宏程序子程序
08090
#31=#5041 保存X值初值
#32=#5042 保存Z值初值
IF[#8NE#0]GOTO1 NE代表“不等于”
#8=0.2 退刀量
N1 IF[#24EQ#0]GOTO2 EQ代表“等于”
#1=#24 X值絕對值指令
GOTO3
N2 IF[#21EQ#0]GOTO9 X軸未賦值則報警
#1=#31+#21 X軸絕對值坐標
N3 IF[#26EQ#0]GOTO4
#2=#26
GOTO5
N4 IF[#23EQ#0]GOTO9 Z軸未賦值則報警
#2=#32+#23 Z軸絕對值坐標
N5 IF[#7EQ#0]GOTO9 每次切深不賦值則報警
IF[#9NE#0]GOTO6
#9=#4109 F未賦值則用前面的值
N6 #30=#31 X軸初值
WHILE[#30GT#1]DO1
#30=#30-2*#7
IF[#30GT#1]GOTO7
#30=#1
N7 GOOX#30 切削循環
GOIZ#2F#9
U-2*#8
G00Z#32 切削循環結束
END1
X#31 退回起始點
GOTO10
N9 #3000=1 賦值錯誤報警
N10M99
FANUC 0i 系統數控車用“用戶宏程序編寫橢圓的加工程序”
主程序
O5678 ;
T0101 ;
M03 S500 ;
G65 P6789 A50 B80 C80 K1 F60 ;
G00 X100. Z200. ;
M30 ;
子程序
O6789 ;
N5 IF [#2 LT 0 ]GOTO25 ; LT是“小于”
#26=#2 ;
#24=[#1+#1]*SQRT[1-#2*#2/#3/#3] ;
G01 X#24 Z#26 F#6 ;
#2=#2-0.01
GOTO 5 ;
N25 M99 ;
也可以直接寫在主程序中(程序循環使用While ...Do...):
......
M3 S900
#1=60(Z軸起點)
#2=100(長軸)
#3=40(短軸)
G00X[#3+1]Z[#1+1](起刀點)
WHILE [#1 GE 0] DO 1 循環
#4=#3*SQRT[1-[#1*#1]/[#2*#2]]
G01 X[2*#4]Z#1 F0.15
#1=#1-0.5
END1
G0X100Z100
M5
M30
還可以用If...Goto...
...
M3S900
#1=60(Z軸起點)
#2=100(長軸)
#3=40(短軸)
G00 X[#3+1]Z[#1+1](起刀點)
N10 #4=#3*SQRT[1-[#1*#1]/[#2*#2]]
G01 X[2*#4]Z#1 F0.15
#1=#1-0.5
IF [#1 GE 0] GOTO 10
G0X100Z100
M5
M30
注:西門子系統GOTO語句應為GOTOB
個人理解:實際上宏程序或者叫參數編程,實際上就是一個簡單的計算機程序,用以實現橢圓的插補運算。
今天實驗室的計老師還試驗了在G71中嵌入宏程序,但是沒有成功。但是用G73就可以,不知怎么搞得。可見這里面還是有很多值得學習的東西,以后還得加倍努力!
業務咨詢:932174181 媒體合作:2279387437 24小時服務熱線:15136468001 盤古機械網 - 全面、科學的機械行業免費發布信息網站 Copyright 2017 PGJXO.COM 豫ICP備12019803號