APP下载

NX CAM实现FANUC宏变量钻孔子程序调用的后处理构建

2018-01-29马士龙李元馨潘运祺朱葛明王瑞平

组合机床与自动化加工技术 2018年1期
关键词:孔底宏程序子程序

马士龙,杨 涛,李元馨,潘运祺,朱葛明,羊 奎,王瑞平

(1.浙江吉利汽车动力总成 制造部,浙江 慈溪 315336;2.道依茨一汽(大连)柴油机有限公司 制造部,辽宁 大连 116600;3.苏州大学 计算机系,江苏 苏州 215000;4.大众一汽发动机(大连)有限公司 规划部,辽宁 大连 116600)

0 引言

NX是SEIMENS公司开发的一套集CAD/CAM/CAE一身的软件系统,除了强大的CAD功能之外,其CAM功能在业界也是数一数二。运用CAM功能所提供后处理即POST BUILDER可以方便构建后处理程序,实现FANUC系统固有循环的调用,基于其TCL脚本语言开发环境,重新构建后处理程序,可以实现用户自定循环的调用。

1 后处理及FANUC系统的宏变量

使用NX CAM自动生成刀具轨迹后,主要包含刀具位置信息的数据点和一些机床控制的指令信息。由于不同的机床控制系统对NC程序格式要求不同,这些刀具轨迹文件不能直接被控制系统所使用,因此NX CAM中的刀具轨迹必须经过处理,转换为特定控制系统能够接收的NC程序格式,这一处理过程就是“后处理”。

后处理是数控加工中的一个重要环节,其主要任务是将CAM生产刀具轨迹源文件转换成控制系统所能接收的NC代码文件[1]。

20世纪90年代,NC代码吸收了一些高级语音的基本特点,新的程序设计语言命名为宏编程。特点与计算机语言的BASIC 或C语言相似,即可以运用变量技术进行编程。Fanuc控制系统提供的宏变量有只读空变量(#0)、局部变量(#1-#33)、公用变量(#100-#199)、永久公用变量(#500-#999)和系统变量(#1000以上)[2]。运用局部变量、公用变量、永久公用变量可以灵活的开发出用户自定义的循环钻孔子程序,实现不同平面上孔加工的刀具路径的优化。

2 自定义钻孔循环

2.1 不带有孔底停留时间的钻孔循环

自定义循环如图1所示。

图1 O0081循环

图1中宏变量的意义如下:

#571-开始进给平面

#572-孔底平面(孔底的Z坐标)

#577-主轴进给速度,单位mm/s

#590-退刀平面(刀具抬起到位置的Z坐标)

循环子程序如下:

%

O0081

#1=#4003 (#4003第三组模态代码的值)

G90 G00 Z#571

G01 Z#572 F#577

G00 Z#590

G[#1]

M99

%

2.2 带有孔底停留时间的钻孔循环

自定义循环如图2所示。

图2 O0082循环

图2中宏变量的意义如下:

#571-开始进给平面

#572-孔底平面(孔底的Z坐标)

#575-停留时间 (单位为毫秒)

#577-主轴进给速度,单位mm/s

#590-退刀平面(刀具抬起到位置的Z坐标)

循环子程序如下:

%

O0082

#1=#4003

G90 G00 Z#571

G01 Z#572 F#577

G04 P#575

G00 Z#590

G[#1]

M99

%

3 后处理构建及运用TCL语言进行二次开发

3.1 定义地址字

对上述子程序中宏变量,在Post Builder中定义自定义地址字,格式如表1所示。

表1 Post Builder中定义自定义地址字

定义自定义宏程序调用(G66P00)与取消宏程序调用(G67)地址字如表2所示。

表2 自定义宏程序与取消宏程序地址字

3.2 定义相应的程序段模板并对自定义字地址赋值

在Post Builder中定义程序段模板,以保证在调用用户自定义循环时,刀具轨迹的正确性。

BLOCK_TEMPLATE cycle_mac571

{

Z_MAC_R[MYMmom_cycle_rapid_to_pos(MYMmom_cycle_spindle_axis)]opt

}

BLOCK_TEMPLATE cycle_mac572

{

Z_MAC_BOTTOM[MYMmom_cycle_feed_to_pos(2)]opt

}

BLOCK_TEMPLATE cycle_mac575

{

User_Dwell[MYMmom_cycle_delay]opt

}

BLOCK_TEMPLATE cycle_mac577

{

Z_MAC_F[MYMfeed]opt

}

BLOCK_TEMPLATE cycle_mac590

{

Z_MAC_RETRACT[MYMmom_cycle_retract_to_pos(2)]opt

}

BLOCK_TEMPLATE Usercycle_off

{

MacCallOFF[67]

}

BLOCK_TEMPLATE mac_call_G66P0081

{

G_UDC_81[81]

}

BLOCK_TEMPLATE mac_call_G66P0082

{

G_UDC_81[82]

}

3.3 定义用户循环事件及TCL控制代码的输出

在Post Builder中定义自定义循环如图3所示。

图3 自定义钻孔循环

其中运用TCL控制程序段输出的代码如下:

#=======================

proc PB_CMD_custom_afterCYC81 { } {

#=======================

global afterCYC81

set afterCYC81 1

}

#=======================

proc PB_CMD_mac_call_G66P0081 { } {

#=======================

global op_start_var

if { [info exists op_start_var] } {

if { MYMop_start_var == 1 } {

MOM_force_block Once cycle_mac571

MOM_do_template cycle_mac571-

MOM_force_block Once cycle_mac572

MOM_do_template cycle_mac572

MOM_force_block Once cycle_mac577

MOM_do_template cycle_mac577

MOM_force_block Once cycle_mac590

MOM_do_template cycle_mac590

MOM_force_block Once mac_call_G66P0081

MOM_do_template mac_call_G66P0081

set op_start_var 0

} else {

MOM_do_template cycle_mac571

MOM_do_template cycle_mac572

MOM_do_template cycle_mac577

MOM_do_template cycle_mac590

}

}

}

#=======================

proc PB_CMD_mac_call_G66P0082 { } {

#=======================

global op_start_var

if { [info exists op_start_var] } {

if { MYMop_start_var == 1 } {

MOM_force_block Once cycle_mac571

MOM_do_template cycle_mac571

MOM_force_block Once cycle_mac572

MOM_do_template cycle_mac572

MOM_force_block Once cycle_mac575

MOM_do_template cycle_mac575

MOM_force_block Once cycle_mac577

MOM_do_template cycle_mac577

MOM_force_block Once cycle_mac590

MOM_do_template cycle_mac590

MOM_force_block Once mac_call_G66P0082

MOM_do_template mac_call_G66P0082

set op_start_var 0

} else {

MOM_do_template cycle_mac571

MOM_do_template cycle_mac572

MOM_do_template cycle_mac575

MOM_do_template cycle_mac577

MOM_do_template cycle_mac590

}

}

}

3.4 用户循环结束代码输出控制TCL程序

#=======================

proc PB_CMD_custom_resetCYC81 { } {

#=======================

global afterCYC81

if { [info exists afterCYC81] } {

if { MYMafterCYC81 == 1 } {

MOM_force_block Once Usercycle_off

MOM_do_template Usercycle_off

set afterCYC81 0

} else {

MOM_do_template cycle_offG80

}

}

if { ![info exists afterCYC81] } {

MOM_do_template cycle_offG80

}

}

4 应用实例

图4是一个工程图,零件的材料为HT250,钻削加工零件上5个直径为10.5mm的孔。

图4 工程图实例

在NX11钻孔加工中选择用户自定义循环CYCLE81,给出非加工运动的相关数据,生成如图5所示刀具路径。

图5 钻孔选项及刀具路径图

运用上述开发的后处理,生成的NC代码如下:

N100 ( WORKPIECE-----Supporter )

N102 ( UPDATETIME------- )

N104 ( MODIFIER------ )

N106 ( PROGRAMMER--- Shilong.Ma )

N108 ( CONTROLLER-----Fanuc OM )

N110 G90 G21 G98 G40 G17

N112 ( TOOLPATH: DRILLING )

N114 ( TOOL:DRILL_D10.5_A135 DIAMETER:10.50 )

N116 G91 G30 Z0.0

N118 G91 G30 X0.0 Y0.0

N120 T01

N122 M06

N124 G54

N126 S2880 M03

N128 G90 G00 X200. Y0.0

N130 G43 Z53. H01

N132 #571=53.

N134 #572=12.825

N136 #577=1152.

N138 #590=110.

N140 G66P0081

N142 G00 X200. Y0.0

N144 #571=93.

N146 #572=52.825

N148 #590=160.

N150 G00 X100. Y0.0

N152 #571=143.

N154 #572=102.825

N156 G00 X0.0 Y0.0

N158 #571=93.

N160 #572=52.825

N162 #590=110.

N164 X-100.

N166 #571=53.

N168 #572=12.825

N170 #590=53.

N172 G00 X-200. Y0.0

N174 G67

N176 G91 G30 Z0.0

N178 G91 G30 X0.0 Y0.0

N180 M30

N182 ( CUTTING TIME(S): 10.5 )

%

使用CIMCOEDIT软件对上述NC程序反向生成刀具路径如图6所示。

图6 刀具路径验证

5 结论

运用TCL语言,开发出可以调用用户自定义钻孔循环的后处理程序,使NX加工模块生成的钻孔刀具路径自动以优化的形式输出NC代码,可实现刀具路径的最小化,降低刀具快速运动的时间,进而提高生产效率。

[1] 张磊,张振亚.UG NX6后处理技术培训教程[M]. 北京:清华大学出版社,2009.

[2] S K Sinha. FANUC 数控宏程序编程技术[M].北京:科学出版社,2011.

猜你喜欢

孔底宏程序子程序
椭球槽宏程序编制及其Vericut仿真
基于数值模拟的上向扇形孔孔底距优选研究
浅谈内孔孔底精整创新技术
冲击成孔灌注桩桩底零沉渣施工方法
基于Vericut的四轴数控加工宏程序仿真研究
浅谈子程序在数控车编程中的应用
G代码B类宏程序在数控切割参数化图形库中的应用
宏程序编程的几种应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序