詹華西 李艷華
[摘要]:基于HNC系統(tǒng)的宏編程處理經(jīng)驗,以一個固定循環(huán)指令實現(xiàn)陣列孔加工為例,介紹了數(shù)控編程指令功能擴展的二次開發(fā)技術(shù)。
關(guān)鍵詞:宏編程;陣列鉆孔;二次開發(fā)
the Macro Technology to Extend NC Programming Instruction Function
ZHAN Hua-xi,LI Yan-hua
(Wuhan Institute of Technology,Wuhan 430073,China)
[Abstract]:Based on the processing experience of macro programming in HNC system, this article introduced redevelopment technology of NC programming instruction function. It even gives example of a fixed instruction to machine arrayed drills.
Key Words: Macro programming;Machining arrayed drills;Secondary development
0.引言
由于數(shù)控機床進行插補控制的主要是直線和圓弧,系統(tǒng)能提供的直接用于加工的程序指令非常有限,因此尋求合理的算法,利用基本指令來擴展系統(tǒng)的編程指令功能,使得用戶僅用一個指令行即可實現(xiàn)相對復(fù)雜的加工功能,這一直是系統(tǒng)開發(fā)人員的研究課題,也是加工編程人員尋求的目標。車削循環(huán)、鉆鏜基本循環(huán)等都是數(shù)控系統(tǒng)開發(fā)人員對指令系統(tǒng)擴展的典型示例,但不同的系統(tǒng)在這方面開發(fā)的程度是有差異的。比如SIEMENS系統(tǒng)已經(jīng)具有直接用于陣列孔加工、規(guī)則形狀的挖槽循環(huán)等擴展指令,而HNC、FANUC系統(tǒng)目前還沒有面向普通用戶提供。對于非開放式的數(shù)控系統(tǒng),這種指令功能擴展只能依賴于系統(tǒng)生產(chǎn)廠家,對于HNC這類基于PC-NC的開放式數(shù)控系統(tǒng),只要熟知宏編程處理技術(shù),普通用戶即可自行開發(fā)定制。
1.宏擴展編程的技術(shù)基礎(chǔ)
HNC系統(tǒng)在調(diào)用宏子程序的同時可進行參數(shù)傳值[1],即將調(diào)用行所跟的主調(diào)參數(shù)A~Z各字段的內(nèi)容拷貝到宏執(zhí)行的子程序內(nèi)為局部變量#0~#25預(yù)設(shè)的存貯空間中;將指令的初始平面Z的模態(tài)值拷貝到#26中;同時還拷貝當(dāng)前通道九個軸(XYZ/ABC/UVW)的絕對位置坐標到宏子程序的局部變量#30~#38中;并且還可以通過系統(tǒng)變量#1120~#1145來訪問A~Z 26個地址字的模態(tài)數(shù)據(jù),通過系統(tǒng)變量#1150~#1169來訪問0~19組G代碼的模態(tài)值。
在HNC系統(tǒng)中,對于每個局部變量,都可用系統(tǒng)宏AR[]來判別該變量是否被定義、是被定義為增量坐標還是絕對坐標方式。
調(diào)用格式為:AR [#變量號]
返回值:
0:表示該變量沒有被定義;
90:表示該變量被定義為絕對方式G90;
91:表示該變量被定義為增量方式G91。
例如:IF [AR[#23] EQ 0]
IF [AR[#1143] EQ 91]
#23=0
ELSE
#23=#1143
ENDIF
ENDIF
表達的意思是:如果指令行的X(對應(yīng)#23)參數(shù)未指定,且系統(tǒng)變量#1143(X坐標以前的模態(tài))為增量方式,X就取增量0值;若#1143為絕對方式,X就取以前的模態(tài)值。
HNC作為一個開放式數(shù)控系統(tǒng),其用于鉆鏜基本循環(huán)G73~G89的宏擴展程序的源碼已面向廣大用戶公開,它就是利用宏子程序參數(shù)傳值的處理方法,將G指令定制的多個參數(shù),傳值到宏子程序中,由子程序?qū)Ω鲄?shù)數(shù)據(jù)進行整理后依據(jù)相應(yīng)的加工工藝,按一定的算法通過基本指令來定制動作實現(xiàn)加工。普通用戶亦可參照這一思路進行編程指令的二次開發(fā)。
2.陣列鉆孔擴展指令的開發(fā)定制
圖1所示為一圓形陣列孔位關(guān)系分布圖。和矩形陣列孔加工一樣,在HNC中目前還無法由一個指令行來編程實現(xiàn),但參照G73~G89鉆鏜基本循環(huán)的宏子程序編制方法,可自行開發(fā)定制。如果以G75為圓形陣列鉆孔的指令,其定制格式為:
G75 X Y Z R A B C D E … F
其中,X、Y:陣列中心的X、Y坐標
Z、R:孔底和R面的Z坐標
A:鉆孔方式循環(huán)號 B:孔所在圓周半徑
C:孔數(shù) D:孔間角度
E:起始孔角度(與+X的夾角,逆 + 順 -)
A、B、C、E、G為陣列鉆孔增加的參數(shù),如果循環(huán)號A調(diào)用G73~G89鉆孔方式需要I、J、K、Q、P等參數(shù),其含義按G73~G89中對應(yīng)的定義添加。
則G75宏子程序的內(nèi)容可參考編制如下:
%0075
IF [AR[#23] EQ 0] ;如果沒定義X
IF [AR[#1143] EQ 91] ;如果X以前的模態(tài)為G91
#23=0 ;X=0
ELSE ;否則
#23=#1143 ;X取以前的模態(tài)值
ENDIF
ENDIF
IF [AR[#24] EQ 0] ;如果沒定義Y時的處理
IF [AR[#1144] EQ 91]
#24=0
ELSE
#24=#1144
ENDIF
ENDIF
IF [AR[#17] EQ 0] ;如果沒有定義R
#17=#1137 ;取當(dāng)前R的模態(tài)值
ENDIF
IF [AR[#25] EQ 0] ;如果沒有定義Z
#25=#1145 ;取當(dāng)前Z的模態(tài)值
ENDIF
IF [AR[#0] EQ 0] ;如果沒有定義A
#0=#1120 ;取當(dāng)前A的模態(tài)值
ENDIF
…… ;同上處理B、C、D、E、P、Q、I、J、K 參數(shù)
IF [AR[#3] EQ 0] AND [#2 GT 1]
M-99 ;如果沒定義角度D且孔數(shù)>1則返回出錯信息
ENDIF
N10 G91 ;切換到增量編程G91模式
IF AR[#23] EQ 90 ;如果X值是絕對編程G90
#23=#23-#30 ;則按G91的算法換算X值
ENDIF ;#30為調(diào)用前X的絕對坐標
IF AR[#24] EQ 90 ;Y值的數(shù)據(jù)轉(zhuǎn)換
#24=#24-#31
ENDIF
IF AR[#17] EQ 90 ;R值的數(shù)據(jù)轉(zhuǎn)換
#17=#17-#32
ELSE
IF AR[#26] NE 0 ;如果有初始高度面
#17=#17+#26-#32 ;按初始高度換算
ENDIF
ENDIF
IF AR[#25] EQ 90 ;孔底Z值的換算
#25=#25-#32-#17
ENDIF
IF [#25 GE 0] AND [#0 NE 87]
M-99;如果G87之外的Z的增量為正,則返回出錯信息
ENDIF
G00X[#23]Y[#24] ; 定位到陣列中心
#39=PI/180
#40=1 ;孔數(shù)循環(huán)初值
#44=0 ;起始孔X增量初值
#45=0 ;起始孔Y增量初值
#46=#17 ;另存R值到局部變量#46中
#47=#1145 ;備份Z的模態(tài)
#48=#1137 ;備份R的模態(tài)
WHILE #40 LE #2 ;循環(huán)鉆鏜孔開始
#41=[#4+[#40-1]*#3]*#39 ;第i個孔的角度(弧度)
#42=#1*COS[#41] ;孔i相對陣列中心的X坐標
#43=#1*SIN[#41] ;孔i相對陣列中心的Y坐標
G91G[#0]X[#42-#44]Y[#43-#45]Z[#25]
--R[#46]I[#8]J[#9]K[#10]P[#15]Q[#16];調(diào)用循環(huán)號A所對應(yīng)的G指令加工孔
#44=#42 ;另存孔i中心相對陣列中心的X、Y坐標
#45=#43 ;為下一孔i+1中心提供增量起點坐標數(shù)據(jù)
IF #1165 EQ 99 ;如果系統(tǒng)變量第15組G代碼模態(tài)值為G99
#46=0 ;將R后續(xù)增量清零
ENDIF
#40=#40+1 ;孔數(shù)循環(huán)遞增,加工下一個孔
ENDW
G00X[-#44]Y[-#45] ;返回到陣列中心
#1137=#48 ;恢復(fù)R的模態(tài)
#1145=#47 ;恢復(fù)Z的模態(tài)
M99
該陣列鉆孔加工子程序主要是計算各孔中心的坐標,具體鉆孔還是通過再次調(diào)用系統(tǒng)定義的鉆鏜固定循環(huán)指令來實現(xiàn)的。
3.?dāng)U展指令的加工應(yīng)用
上述擴展指令宏子程序%0075編制完成后,在HNC系統(tǒng)中,應(yīng)將其內(nèi)容添加存儲到系統(tǒng)BIN文件夾下的O0000文件內(nèi),則以后用戶即可象使用G73~G89固定循環(huán)指令那樣直接使用G75指令功能來作圓形陣列孔的加工編程。
例如,對于圖2所示陣列孔加工,若工件零點設(shè)在圖示右下角,可編程如下:
O0001
G54G90G0X-240.0Y90.0S500M3
G43Z20.0H1M8
G99G75Z-25.0R5.0A81B60C6D60E0F60
X-80.0R15.0A83B50C4D90Q-5K3E45
G80M5
G91G28Z0M9
M30
4.結(jié)束語
開放式HNC系統(tǒng)提供給用戶一個以宏編程技術(shù)為基礎(chǔ),對編程指令系統(tǒng)進行擴展開發(fā)的平臺。新指令功能的開發(fā)需要合理定制參數(shù)、熟知參數(shù)傳值調(diào)用的規(guī)則、具有縝密可靠的技術(shù)算法、全面完善的錯誤處理對策等等。可利用這個平臺按需要定制參數(shù),自行開發(fā)一些如陣列孔加工、矩形輪廓銑削及挖槽、橢圓銑削及挖槽、凹凸球面加工等相對復(fù)雜而實用性較強的通用指令,讓普通用戶不需要使用自動編程軟件即可簡單快捷的編出加工程序來。
參考文獻:
[1] 華中數(shù)控股份有限公司. 數(shù)控銑床編程說明書. 武漢:華中數(shù)控股份有限公司,2004
業(yè)務(wù)咨詢:932174181 媒體合作:2279387437 24小時服務(wù)熱線:15136468001 盤古機械網(wǎng) - 全面、科學(xué)的機械行業(yè)免費發(fā)布信息網(wǎng)站 Copyright 2017 PGJXO.COM 豫ICP備12019803號