吳義榮,盧 勇,楊 俊,邱澤豐
(1.中山邁雷特?cái)?shù)控技術(shù)有限公司,廣東中山 528437;2.廣東科貿(mào)職業(yè)學(xué)院,廣州 510430)
數(shù)控編程是數(shù)控加工中非常重要的環(huán)節(jié),常用的有手工編程和自動(dòng)編程兩種方式。手工編程要求操作人員熟練掌握數(shù)控編程語(yǔ)言,編程效率低,容易出錯(cuò)。隨著數(shù)控機(jī)床應(yīng)用的普及,如何降低數(shù)控系統(tǒng)的編程難度,提升編程效率就成為了實(shí)際操作中的客觀需求[1-2]。因此,研究一種免編程的設(shè)計(jì)方案具有非常重要的實(shí)用價(jià)值。
本文以中山邁雷特?cái)?shù)控技術(shù)有限公司開(kāi)發(fā)的MLT980Ma銑床數(shù)控系統(tǒng)[3]為基礎(chǔ)進(jìn)行免編程鉆攻系統(tǒng)開(kāi)發(fā),如圖1所示,MLT980Ma 最多可控制5 個(gè)進(jìn)給軸、2個(gè)主軸,最小分辨率0.1 μm,具備1 路USB-HOST 接口。該系統(tǒng)具備通用鉆銑床系統(tǒng)的標(biāo)準(zhǔn)G 代碼,可實(shí)現(xiàn)鉆、銑、鏜以及攻絲等控制。同時(shí)支持宏程序功能、內(nèi)置式軟PLC 功能及IO 接口功能的二次開(kāi)發(fā)等。該系統(tǒng)功能豐富、性能穩(wěn)定,為當(dāng)前市場(chǎng)的主流應(yīng)用產(chǎn)品。
圖1 MLT980MDa外觀
鉆銑床數(shù)控系統(tǒng)中常用ISO 標(biāo)準(zhǔn)G 代碼編程,針對(duì)不同的鉆攻需求定義不同的指令格式,如表1所示。
表1 常用鉆攻功能指令
利用G 代碼,以及不同的指令格式,在數(shù)控系統(tǒng)中編制對(duì)應(yīng)G 代碼程序,實(shí)現(xiàn)鉆攻功能。本文以G81 為例說(shuō)明利用G代碼進(jìn)行普通鉆孔的編程方法。
G81普通鉆孔指令格式如下:
G98∕G99 G81 X_Y_R_Z_F_
指令各參數(shù)說(shuō)明如表2所示。
表2 G81指令參數(shù)功能
根據(jù)不同的指令參數(shù),可以實(shí)現(xiàn)不同的加工軌跡,從而適應(yīng)不同的加工要求。根據(jù)G81 的指令格式,可實(shí)現(xiàn)兩種不同的軌跡形式。如圖2、圖3所示。
圖2 G98快速返回至初始平面加工軌跡
圖3 G99 快速返回至R 平面加工軌跡
根據(jù)G81 指令格式,編制下表3程序可以完成鉆孔功能,鉆孔示意圖如圖4所示。
圖4 加工示意圖
表3 鉆孔加工CNC程序
根據(jù)以上傳統(tǒng)G代碼鉆攻編程方法,通過(guò)歸納總結(jié),不同的G 代碼數(shù)據(jù)代表不同的孔加工方式,不同的X、Y、Z 以及R 代碼數(shù)據(jù)代表加工位置,F(xiàn) 代碼數(shù)據(jù)代表速度。因此考慮借用MLT980Ma 的宏變量功能來(lái)指代各代碼后面的數(shù)據(jù),從而簡(jiǎn)化鉆攻加工的編程。
根據(jù)宏變量指代代碼數(shù)據(jù)的思路,基于MLT980Ma的基本功能,開(kāi)發(fā)組態(tài)界面,引入圖參式輔助編程思想[4-6],最終實(shí)現(xiàn)免編程。操作人員只需在相關(guān)頁(yè)面中按提示選擇、輸入相關(guān)的孔型參數(shù)及工藝數(shù)據(jù)后,即可完成線性孔、圓弧孔、錯(cuò)位孔等常見(jiàn)孔型的鉆、鏜及攻絲等自動(dòng)加工功能。為方便配置,每一種孔類(lèi)型對(duì)應(yīng)一個(gè)專(zhuān)用頁(yè)面??傮w界面結(jié)構(gòu)如圖5所示。
圖5 總體界面結(jié)構(gòu)
為了實(shí)現(xiàn)免編程功能,在設(shè)計(jì)過(guò)程中需要利用宏程序變量引用編程數(shù)據(jù),同時(shí)編程數(shù)據(jù)需要能夠在界面靈活輸入。因此,在軟件設(shè)計(jì)過(guò)程中主要包括不同孔型的宏編程處理以及組態(tài)界面開(kāi)發(fā)兩部分。宏編程處理包括變量規(guī)劃,控制流程設(shè)計(jì)等。組態(tài)界面開(kāi)發(fā)主要完成軟件底層界面模塊設(shè)計(jì),組態(tài)工具軟件的開(kāi)發(fā),實(shí)現(xiàn)不同孔類(lèi)型的專(zhuān)用頁(yè)面數(shù)據(jù)編輯,完成類(lèi)型選擇、孔參數(shù)據(jù)及加工工藝數(shù)據(jù)等的選擇及輸入。
為便于專(zhuān)用頁(yè)面設(shè)計(jì),根據(jù)MLT980Ma 中相關(guān)指令格式參數(shù)、加工工藝數(shù)據(jù)以及定義孔型數(shù)據(jù)等,對(duì)變量進(jìn)行了規(guī)劃。主要分為孔尺寸參數(shù)、工藝參數(shù)、孔型選擇參數(shù)、加工方式選擇參數(shù)、返回平面選擇參數(shù)及其他參數(shù)等6 大類(lèi)。同時(shí),為了相關(guān)數(shù)據(jù)在斷電后仍能被記憶,采用了非易失性的宏變量,如表4所示。
表4 變量規(guī)劃表
程序控制設(shè)計(jì)是免編程鉆攻系統(tǒng)的控制核心,分為主程序模塊和各子程序模塊,主程序模塊完成數(shù)據(jù)狀態(tài)的初始化、數(shù)據(jù)合法性檢測(cè)及各子模塊的調(diào)度。子程序模塊實(shí)現(xiàn)各孔型的控制執(zhí)行,包含線性孔處理模塊、圓弧孔處理模塊、環(huán)形孔處理模塊、棋盤(pán)孔處理模塊、錯(cuò)位孔處理模塊及異常處理模塊6 大模塊[7-8]。程序控制流程如圖6所示。
圖6 程序控制流程
2.3.1 各模塊的規(guī)劃
基于前述的流程規(guī)劃,對(duì)各程序模塊功能進(jìn)行了表5所示的規(guī)劃。
表5 程序(模塊)規(guī)劃表
2.3.2 主程序模塊
主程序模塊的文件名為O0001.CNC,完成數(shù)據(jù)狀態(tài)的初始化、數(shù)據(jù)合法性檢測(cè)及各子模塊的調(diào)度。其程序主要框架內(nèi)容如下:
O0001(主程序模塊)
#113=#0(變量初始化)
#114=#0(變量初始化)
#115=#0(變量初始化)
#116=#0(變量初始化)
…
…
#100=#4001(第1組G代碼模態(tài)保存)
#101=#4002(第2組G代碼模態(tài)保存)
#103=#4005(第3組G代碼模態(tài)保存)
#104=#4007(第7組G代碼模態(tài)保存)
#105=#4014(第14組G代碼模態(tài)保存)
#106=#4016(第16組G代碼模態(tài)保存)
#107=#4109(F代碼模態(tài)保存)
#108=#4119(S代碼模態(tài)保存)
#109=#4120(T代碼模態(tài)保存)
IF[#520 EQ 3]THEN#113=1
IF[#520 EQ 4]THEN#114=1
IF[[#113 OR#114]NE 1]GOTO101(主軸旋向數(shù)據(jù)非法檢測(cè),若非法,則報(bào)警提示)
IF[#524 EQ 98]THEN#115=1
IF[#524 EQ 99]THEN#116=1
IF[[#115 OR#116]NE 1]GOTO102(返回平面選擇數(shù)據(jù)非法檢測(cè),若非法,則報(bào)警提示)
…
…
IF[#530 EQ 1]GOTO1(如果當(dāng)前選擇了線性孔加工,則跳轉(zhuǎn)至線性孔處理模塊)
IF[#530 EQ 2]GOTO2(如果當(dāng)前選擇了圓弧孔加工,則跳轉(zhuǎn)至圓弧孔處理模塊)
IF[#530 EQ 3]GOTO3(如果當(dāng)前選擇了環(huán)形孔加工,則跳轉(zhuǎn)至環(huán)形孔處理模塊)
IF[#530 EQ 4]GOTO4(如果當(dāng)前選擇了棋盤(pán)孔加工,則跳轉(zhuǎn)至棋盤(pán)孔處理模塊)
IF[#530 EQ 5]GOTO5(如果當(dāng)前選擇了錯(cuò)位孔加工,則跳轉(zhuǎn)至錯(cuò)位孔處理模塊)
GOTO6(如果當(dāng)前孔型非線性孔、圓弧孔、環(huán)形孔、棋盤(pán)孔、錯(cuò)位孔中的一種,則進(jìn)入異常處理模塊)
N1 M98 P9001(進(jìn)入線性孔處理模塊)
GOTO100
N2 M98 P9002(進(jìn)入圓弧孔處理模塊)
GOTO100
N3 M98 P9003(進(jìn)入環(huán)形孔處理模塊)
GOTO100
N4 M98 P9004(進(jìn)入棋盤(pán)孔處理模塊)
GOTO100
N5 M98 P9005(進(jìn)入錯(cuò)位孔處理模塊)
GOTO100
N6 M98 P9006(進(jìn)入異常處理模塊)
…
…
N100
G[FUP[#100]](第1組G代碼模態(tài)恢復(fù))
G[FUP[#101]](第2組G代碼模態(tài)恢復(fù))
G[FUP[#103]](第3組G代碼模態(tài)恢復(fù))
G[FUP[#104]](第7組G代碼模態(tài)恢復(fù))
G[FUP[#105]](第14組G代碼模態(tài)恢復(fù))
G[FUP[#106]](第16組G代碼模態(tài)恢復(fù))
F#107(F代碼模態(tài)恢復(fù))
S#108(S代碼模態(tài)恢復(fù))
T[FUP[#109]](T代碼模態(tài)恢復(fù))
M30(主程序結(jié)束)
N101 G65 H99 P1(∕主軸旋向未指定或指定值錯(cuò)誤)
N102 G65 H99 P2(∕返回平面選擇未指定或指定值錯(cuò)誤)
…
…
2.3.3 線性孔處理程序
線性孔處理程序名為O9001.CNC,其根據(jù)選擇的加工方式,進(jìn)入對(duì)應(yīng)的處理子模塊進(jìn)行加工控制。程序如下:
O9001(線性孔處理模塊)
M#520 S#521(啟動(dòng)主軸,置主軸速度)
G0 X#500 Y#501(快速定位至線性孔加工起點(diǎn))
IF[#519 EQ 81]GOTO81(若加工方式為普通鉆孔,則跳轉(zhuǎn)至普通鉆孔處理)
IF[#519 EQ 85]GOTO81(若加工方式為鏜孔循環(huán),則跳轉(zhuǎn)至鏜孔循環(huán)處理)
IF[#519 EQ 82]GOTO82(若加工方式為鏜階梯孔,則跳轉(zhuǎn)至鏜階梯孔處理)
IF[#519 EQ 73]GOTO83(若加工方式為高速深孔加工,則跳轉(zhuǎn)至高速深孔加工處理)
IF[#519 EQ 83]GOTO83(若加工方式為深孔加工,則跳轉(zhuǎn)至深孔加工處理)
IF[#519 EQ 74]GOTO84(若加工方式為正向攻絲,則跳轉(zhuǎn)至正向攻絲處理)
IF[#519 EQ 84]GOTO84(若加工方式為反向攻絲,則跳轉(zhuǎn)至反向攻絲處理)
IF[#519 EQ 76]GOTO87(若加工方式為精密鏜孔,則跳轉(zhuǎn)至精密鏜孔處理)
IF[#519 EQ 87]GOTO87(若加工方式為孔底停鏜,則跳轉(zhuǎn)至孔底鏜處理)
N81 G#524 G#519 X#509 Y#510 Z#502 R#503 L#511 F#522
GOTO999
N82 G#524 G#519 X#509 Y#510 Z#502 R#503 P#523 L#511 F#522
GOTO999
N83 G#524 G#519 X#509 Y#510 Z#502 R#503 Q#515 L#511 F#522
GOTO999
N84 G#524 G#519 X#509 Y#510 Z#502 R#503 Q#515 L#511 F#517
GOTO999
N87 G#524 G#519 X#509 Y#510 Z#502 R#503 Q#516 P#523 L#511 F#517
GOTO999
N999 G80(退出循環(huán)模態(tài))
M5 S0(停主軸)
M99(返回總調(diào)度模塊)
2.3.4 其他模塊處理程序
圓弧孔、圓環(huán)孔、棋盤(pán)孔、錯(cuò)位孔及異常處理程序的框架與線性孔基本一致,受限于篇幅,此文對(duì)處理程序不做詳細(xì)描述。
根據(jù)實(shí)際需求,通過(guò)PC端組態(tài)工具TPKDesigner[9]進(jìn)行組態(tài)界面的設(shè)計(jì)。首先在PC 端根據(jù)需求及變量規(guī)劃,確定了以各孔型為子功能菜單,各頁(yè)面以圖形、控件相結(jié)合的方式進(jìn)行組態(tài)設(shè)計(jì)[10]。再通過(guò)USB 設(shè)備導(dǎo)入到MLT980Ma系統(tǒng)中。組態(tài)界面總體規(guī)劃布局[11]如圖7所示。
圖7 各角度下單位體積混合能與混合時(shí)間關(guān)系
圖7 組態(tài)界面總體規(guī)劃布局
2.4.1 加工孔類(lèi)型選擇項(xiàng)設(shè)計(jì)
為便于選擇、區(qū)分,當(dāng)前加工孔型設(shè)計(jì)采用了“組合框”+“分組框”控件組合方式[12]。加工孔類(lèi)型選擇項(xiàng)組態(tài)定制過(guò)程如圖8所示,實(shí)際呈現(xiàn)效果如圖9所示。
圖8 加工孔類(lèi)型選擇組態(tài)定制過(guò)程
圖9 實(shí)際呈現(xiàn)效果
2.4.2 加工方式選擇∕返回平面選擇項(xiàng)設(shè)計(jì)
加工方式有鉆孔、鏜孔及攻絲等大類(lèi),返回平面選擇有返回初始平面、返回R 平面等兩種選擇。因此,組態(tài)界面設(shè)計(jì)時(shí)采用了“單選框”+“分組框”控件組合方式。
2.4.3 孔參∕其他參數(shù)∕工藝參數(shù)項(xiàng)設(shè)計(jì)
孔參、工藝參數(shù)及其他參數(shù)類(lèi)數(shù)據(jù),實(shí)際使用中會(huì)設(shè)定、修改,因此,組態(tài)界面設(shè)計(jì)時(shí)采用了“輸入框”+“分組框”控件組合方式。
2.4.4 常用孔參∕加工工藝參數(shù)快捷軟功能鍵設(shè)計(jì)
對(duì)于加工過(guò)程中經(jīng)常要更改的孔型數(shù)據(jù)、工藝數(shù)據(jù),專(zhuān)門(mén)組態(tài)定制了快捷軟功能鍵,便于操作人員修改配置。快捷軟功能鍵組態(tài)定制過(guò)程如圖10所示,實(shí)際呈現(xiàn)效果如圖11所示。
圖10 快捷軟功能鍵組態(tài)定制過(guò)程
圖11 快捷設(shè)置實(shí)際效果
組態(tài)界面完成后實(shí)際呈現(xiàn)的頁(yè)面效果如圖12~17所示。
圖12 免編程鉆攻系統(tǒng)菜單頁(yè)
圖13 線性孔
圖14 圓弧孔
圖15 環(huán)形孔
圖16 棋盤(pán)孔
圖17 錯(cuò)位孔
通過(guò)組態(tài)工具配合數(shù)控系統(tǒng)的程序設(shè)計(jì),可定制出不同孔型的專(zhuān)用界面,在各界面中,根據(jù)實(shí)際的加工需求,輸入相應(yīng)的數(shù)據(jù)后,啟動(dòng)運(yùn)行即可完成零件的自動(dòng)加工。整個(gè)過(guò)程無(wú)須編程,提高了編程便利性,降低了編程難度,提升了數(shù)控系統(tǒng)的綜合性能。該免編程鉆攻系統(tǒng)已在客戶(hù)處成功應(yīng)用,目前一直在可靠穩(wěn)定運(yùn)行,圖參化輔助編程的設(shè)計(jì)思想得到了用戶(hù)的認(rèn)可。
本文根據(jù)傳統(tǒng)G 代碼進(jìn)行鉆攻編程的應(yīng)用出發(fā),通過(guò)歸納G 代碼編程特點(diǎn),結(jié)合MLT980Ma 鉆銑床數(shù)控系統(tǒng)宏變量功能,總結(jié)歸納出利用圖形界面參數(shù)指定的一種免編程鉆攻設(shè)計(jì)方法。可以通過(guò)僅設(shè)置圖形參數(shù),而不用編程即可完成鉆攻加工。此思路可以方便快捷地完成各專(zhuān)用鉆攻加工界面設(shè)計(jì),顯示直觀、操作便捷,降低了操作人員的工作難度和出錯(cuò)率,提高了工作效率。不僅適合文中提及的線性孔、圓弧孔、棋盤(pán)孔等孔型的鉆孔、鏜孔及攻牙等孔型零件的加工,也適用于數(shù)控機(jī)床的其他各種專(zhuān)用加工應(yīng)用中,此種免編程鉆攻加工設(shè)計(jì)方法在實(shí)際數(shù)控系統(tǒng)中得到了驗(yàn)證,具有實(shí)用價(jià)值。