任务3 子程序与坐标平移编程 1.了解子程序的概念及运用。 2.掌握采用子程序编程的方法。 3.掌握坐标平移基本指令。 任务3 子程序与坐标平移编程 1.了解子程序的概念及运用。 2.掌握采用子程序编程的方法。 3.掌握坐标平移基本指令。 4.掌握采用坐标平移指令编程的方法。
任务要求:加工如下左图所示零件,毛坯为50mm×48mm×10mm的45钢,内孔已加工完成,现以内孔定位装夹来加工外轮廓,在数控铣床上进行4件或多件加工,零件在夹具中的装夹如下右图所示,试编写其数控铣加工程序。 零件在夹具中的装夹示意图 子程序及坐标平移编程实例 零件图
任务分析:加工本例工件时,如果每个轮廓均采用单一的加工程序编程与加工,则基点换算困难,编写和输入程序容易出错。如采用子程序并结合坐标平移指令进行编程,则程序简单明了。 零件实体图
一、子程序的概念及编程方法 1.子程序的定义 机床的加工程序可以分为主程序和子程序两种。所谓主程序是一个完整的零件加工程序,或是零件加工程序的主体部分。它和被加工零件或加工要求一一对应,不同的零件或不同的加工要求,都有唯一的主程序。 在编制加工程序中,有时会遇到一组程序段在一个程序中多次出现,或者在几个程序中都要使用它。这个典型的加工程序可以做成固定程序,并单独加以命名,这组程序段就称为子程序。 子程序一般都不可以作为独立的加工程序使用,它只能通过调用,实现加工中的局部动作。子程序执行结束后,能自动返回到调用的程序中。
为了进一步简化程序,可以让子程序调用另一个子程序, 这一功能称为子程序的嵌套。 2.子程序的嵌套 为了进一步简化程序,可以让子程序调用另一个子程序, 这一功能称为子程序的嵌套。 当主程序调用子程序时,该子程序被认为是一级子程序,系统不同,其子程序的嵌套级数也不相同。一般情况下,在FANUC 0系统中,子程序可以嵌套4级,如下图所示。 子程序嵌套
3.子程序的格式 在FANUC系统中,子程序和主程序并无本质区别。子程序和主程序在程序号及程序内容方面基本相同,但结束标记不同。主程序用M02或M30表示主程序结束,而子程序则用M99表示子程序结束,并实现自动返回主程序功能。如下子程序格式所示: O0100; G91 G01 Z-2.0; … G91 G28 Z0; M99; 对于子程序结束指令M99,不一定要单独书写一行,如上面程序中最后两行写成“G91 G28 Z0 M99;”也是允许的。
4.子程序的调用 在FANUC系统中,子程序的调用可通过辅助功能代码M98指令进行,且在调用格式中将子程序的程序号地址改为P,其常用的子程序调用格式有两种。 格式一 M98 P×××× L××××; 例1 M98 P100 L5; 例2 M98 P100; 格式二 M98 P××××××××; 例3 M98 P50010; 例4 M98 P510;
地址P后面的八位数字中,前四位表示调用次数,后四位表示子程序序号,采用此种调用格式时,调用次数前的0可以省略不写,但子程序号前的0不可省略。如例3表示调用子程序O10五次,而例4则表示调用子程序O510一次。 子程序的执行过程如下程序所示 主程序: O0001; 子程序: N10 …; O0100; N20 M98 P0100; … N30 …; M99; … … O0200; N60 M98 P0200 L2; … … M99; N100 M30;
例1 加工如图所示六个相同外形轮廓,试采用子程序编程方式编写其数控铣加工程序。 5.子程序的应用 (1)同平面内多个相同轮廓形状工件的加工 在一次装夹中,若要完成多个相同轮廓形状工件的加工,编程时只编写一个轮廓形状的加工程序,然后用主程序来调用子程序。如下例题所示。 子程序加工相同轮廓 例1 加工如图所示六个相同外形轮廓,试采用子程序编程方式编写其数控铣加工程序。
O0020; (主程序) G90 G94 G21 G40 G17 G54; G91 G28 Z0; M03 S800 ; G90 G00 X-48.0 Y-40.0; Z10.0 M08 ; G01 Z-5.0 F100; M98 P201 L6; (调用子程序6次) G00 Z50.0; M05 M09; M30; O0201; (子程序) G91 G41 G01 X5.0 D01; (在子程序中编写刀具半径补偿) Y60.0; G02 X6.0 R3.0; G01 Y-40.0; G02 X-6.0 R3.0; G40 G01 X-5.0 Y-20.0; (刀具半径补偿不能被分支) G01 X16.0; (移动到下一个轮廓起点) M99;
例2 加工如下图所示零件凸台外形轮廓,Z向每次切深为5mm,试编写其数控铣加工程序。
O0080; (主程序) G90 G94 G21 G40 G17 G54; G91 G28 Z0; M03 S600 ; G90 G00 X-40.0 Y-40.0; Z20.0 M08; G01 Z0 F100; (刀具Z向定位) M98 P10 L3; (调用子程序三次) G90 G00 Z50.0 M09; M30; O10; (子程序) G91 G01 Z-5.0; (增量进给5mm) G90 G41G01 X-20.0 D01; (注意模式的转换) Y14.0; G02 X-14.0 Y20.0 R6.0; G01 X14.0; G02 X20.0 Y14.0 R6.0;
G01Y-14.0; G02 X14.0 Y-20.0 R6.0; G01 X-14.0; G02 X-20.0 Y-14.0 R6.0; G40 G01 X-40.0 Y-40.0; M99; (3)实现程序的优化 加工中心的程序往往包含有许多独立的工序,为了优化加工顺序,通常将每一个独立的工序编写成一个子程序,主程序只有换刀和调用子程序的命令,从而实现优化程序的目的。 在实际生产中,若零件有多个轮廓需要加工,常用子程序来实现每个局部轮廓的加工。
6.使用子程序的注意事项 (1)注意主、子程序间模式代码的变换 例题2中,子程序的起始行用了G91模式,从而避免了重复执行子程序过程中刀具在同一深度进行加工。但需要注意及时进行G90与G91模式的变换。 O1;(主程序) O2;(子程序) G90 G54( G90模式 ); G91…; M98 P2; … …; G91 … (G91模式) M99; G90 … (G90模式) M30;
(2)在半径补偿模式中的程序不能被分支 O1;(主程序) O2;(子程序) G91…; …; G41…; M99; M98 P2; G40…; M30; 在以上程序中,刀具半径补偿模式在主程序及子程序中被分支执行,在编程过程中应尽量避免编写这种形式的程序。在有些系统中如出现此种刀具半径补偿被分支执行的程序,在程序执行过程中还可能出现系统报警。正确的书写格式如下: O1;(主程序) O2;(子程序) G91…; G41…; …; …; M98 P2; G40…; M30; M99;
二、局部坐标系(坐标平移) 在数控编程中,为了方便编程,有时要给程序选择一个新的参考,通常是将工件坐标系偏移一个距离。在FANUC系统中,通过指令G52来实现,其指令格式如下: G52 X Y Z ; G52 X0 Y0 Z0; G52:设定局部坐标系,该坐标系的参考基准是当前设定的有效工件坐标系原点,即使用G54~G59设定的工件坐标系。 X Y Z :局部坐标系的原点在原工作坐标系中的位置,该值用绝对坐标值加以指定。 G52 X0 Y0 Z0:取消局部坐标系,其实质是将局部坐标系仍设定在原工件坐标系原点处。
上例表示设定一个新的工件坐标系,该坐标系位于原工件坐标系XY平面的(20.0,10.0)位置,如图所示。 例 G54; G52 X20.0 Y10.0; 上例表示设定一个新的工件坐标系,该坐标系位于原工件坐标系XY平面的(20.0,10.0)位置,如图所示。 设定局部坐标系
一、加工准备 1.选择数控机床 本任务选用的机床为TH7650型FANUC 0i系统加工中心。 2.选择刀具及切削用量 选择φ16mm的高速钢立铣刀加工周边轮廓。切削用量推荐值如下:切削速度n=500~600 r/min;进给速度取f=100~200 mm/min;背吃刀量的取值稍大于零件毛坯高度,取ap=10 mm。
二、编写加工程序 1.设计加工路线 编写本例周边轮廓的加工程序时,应注意切入方式的合理选择,此处选择轮廓左侧直线的延长线切入。另外还应注意刀具轨迹的合理规划,防止刀具移动过程中与其他轮廓发生干涉。
采用CAD软件进行基点坐标分析,得出图中部分基点坐标如下: 1点 (-24.07,17.0) 2点 (-20.49,-13.42) 3点 (-18.62,-11.55) 4点 (-17.15,-5.48) 5点 (-20.31,-22.08)
2.编制加工程序 本例工件的加工中心加工程序见下表。 子程序编程实例参考程序 (转下页) 刀具 φ16mm立铣刀 程序 段号 加工程序 程序说明 O0082; 主程序 N10 G90 G94 G21 G40 G17 G54; 程序初始化 N20 G91 G28 Z0; Z向回参考点 N30 M03 S600 ; 主轴正转 N40 G90 G00 X0 Y0; 刀具在XY平面中快速定位 N50 Z10.0 M08 ; 刀具Z向快速定位,切削液开 N60 M98 P100; 调用子程序加工第一个轮廓 N70 G52 X70.0 Y0; 调用子程序加工第二个轮廓 N80 (转下页)
(转下页) N90 G52 X0 Y70.0; 调用子程序加工第三个轮廓 N100 M98 P100; N110 调用子程序加工第四个轮廓 N120 N130 G52 X0 Y0; 取消坐标平移 N140 G90 G00 Z100.0 M09; 程序结束 N150 M30; O100; 加工轮廓子程序 N10 G00 X-35.0 Y-40.0; 刀具定位 N20 G01 Z-9.0; N30 G41 G01 X-24.07Y-17.0 D01; 在子程序中建立刀补 (转下页)
操作视频 N40 X-18.62 Y-11.55; 加工单个轮廓 N50 G03 X-17.15 Y-5.48 R6.0; N60 在子程序中取消刀补 N130 G00 Z10.0; 刀具抬起 N140 M99; 返回主程序 操作视频
说明:上表中的加工程序,也可采用工件坐标系零点偏移指令编写其加工程序。采用这种方式编程时,其主程序如下“O0252”所示,子程序与采用坐标平移指令编程时的子程序相同。机床偏置存储器中的参数设置如图所示,其X参数或Y参数的数值之间的差值即为工件之间的距离。 O0252; … G54 G90 G00 X0 Y0; (选择G54坐标系加工第1个零件) Z10.0; M98 P100; G55 M98 P100; (选择G55坐标系加工第2个零件) G56 M98 P100; (选择G56坐标系加工第3个零件) G57 M98 P100; (选择G57坐标系加工第4个零件)
机床偏置存储器参数