第4章 数控编程常用指令 ? 【教学目标】 通过本章节的教学:使学生掌握数控编程常用指令准备功能G代码,辅助功能M代码及主轴功能S、进给功能F、刀具功能T代码的使用格式,各代码所表述的意义以及在编程的过程中要注意的事项。 【教学重点】 G代码、M代码、F、S、T功能代码的使用格式 【教学难点】 G代码的使用格式及意义 【教学时数】 理论10学时 【课程类型】 理论课程 【教学方法】 理论联系实际,讲、例、练三结合 【教学内容】 4.1 概述 1、数控编程常用的指令代码主要有准备功能G代码,辅助功能M代码及主轴功能S、进给功能F、刀具功能T代码。 2、G代码分为模态代码和非模态代码。 模态代码除了在本程序段有效外,在后续程序段也起作用,直到出现同组的另一个代码时才失效。 非模态代码只在本程序段有效,如G04,其功能仅在所出现的程序段内才有作用。 3、M功能也有模态和非模态两种形式。另外,M功能还可以分为前作用M功能和后作用M功能。前作用M功能是在程序段中编制的轴运动之前执行,后作用M功能是在程序段中编制的轴运动之后执行。 表4.1为我国JB3208-1983准备功能G代码。 表4.2为我国JB3208-1983辅助功能M代码。 4.2 与坐标和坐标系有关的指令 4.2.1 工件坐标系设定指令 G92指令用来设定刀具在工件坐标系中的坐标值,属于模态指令,其设定值在重新设定之前一致有效。 程序段格式为:G92 X Y Z   X、Y、Z为刀位点在工件坐标系中的初始位置。例如: G92 X25.0 Z350.0;设定工件坐标系为X1O1Z1; G92 X25.0 Z10.0;设定工件坐标系为X2O2Z2。 以上两程序段所设定的工件坐标系如图4.1所示。工件坐标系建立以后,程序内所有用绝对值指定的坐标值,均为这个坐标系中的坐标值。 必须注意的是,数控机床在执行G92指令时并不动作,只是显示器上的坐标值发生了变化。  4.2.2 工件坐标系选择指令 工件坐标系选择指令有G54、G55、G56、G57、G58、G59。均为模态指令。指令与所选坐标系对应的关系是: G54:选定工件坐标系1; G55:选定工件坐标系2; G56:选定工件坐标系3; G57:选定工件坐标系4; G58:选定工件坐标系5; G59:选定工件坐标系6; 程序段格式为: G54 加工之前,通过MDI(手动键盘输入)方式设定这6个坐标系原点在机床坐标系中的位置,系统则将它们分别存储在6个寄存器中。程序中出现G54~G59中某一指令时,就相应地选择了这6个坐标系中的一个。 如用MDI方式将工件坐标系1的原点在机床坐标系中设定为X10.0 Y20.0 Z15.0,程序中用G54设定坐标,就相当于执行程序段G92 X10.0 Y20.0 Z15.0。 G54为缺省值。 4.2.3 局部坐标设定指令 局部坐标设定指令为G52。属于非模态指令,仅在本程序段中有效。 程序段格式为:G52 X Y Z A B C X、Y、Z为局部坐标系原点在工件坐标系中的有向距离,A、B、C是相对于X、Y、Z三个轴的旋转坐标。 G52指令可以在G54~G59指定的工件坐标系中设定局部坐标系。局部坐标系建立以后,绝对值方式编程的移动指令就是在该局部坐标系中的坐标值。 4.2.4 直接机床坐标系编程指令 直接机床坐标系编程指令G53,属于非模态指令,只在本程序段中有效。在含有G53指令的程序段中,利用绝对值编程的移动指令的坐标位置是相对于机床坐标系的。 4.2.5 坐标平面选择指令 G17、G18、G19指令功能为指定坐标平面,都是模态指令,相互之间可以注销。G17、G18、G19分别指定空间坐标系中的XY平面、ZX平面和YZ平面,如图4.3所示,其作用是让机床在指定坐标平面上进行插补加工和加工补偿。 对于三坐标数控铣床和铣镗加工中心,开机后数控装置自动将机床设置成G17状态,如果在XY坐标平面内进行轮廓加工,就不需要由程序设定G17。同样,数控车床总是在XZ坐标平面内运动,在程序中也不需要用G18指令指定。  要说明的是,移动指令和平面选择指令无关,例如选择了XY平面之后,Z轴仍旧可以移动。 4.2.6 绝对值编程指令与增量值编程指令 绝对值编程指令是G90,增量值编程指令是G91,它们是一对模态指令。G90出现后,其后的所有坐标值都是绝对坐标,当G91出现以后,G91以后的坐标值则为相对坐标,直到下一个G90出现,坐标又改回到绝对坐标。G90为缺省值。 4.3运动路径控制指令 4.3.1 单位设定指令 与单位有关的指令主要有尺寸单位设定指令和进给速度单位设定指令。 1、尺寸单位设定指令 尺寸单位设定指令有G20、G21。其中G20表示英制尺寸,G21表示公制尺寸。G21为缺省值。 公制与英制单位的换算关系为: 1 mm≈0.394 in. 1 in. ≈25.4mm 注意: 1) 有些系统要求这2个代码必须在程序的开头坐标系设定之前用单独的程序段指令,一经指定,不允许在程序的中途切换。 2) 有些系统的公制/英制尺寸不采用G21/G20编程,如SIMENS和FAGOR系统采用G71/G70代码。 2、进给速度单位的设定指令 进给速度单位的设定指令是G94、G95。均为模态指令,G94为缺省值。 程序段格式为: G94 F;或G95 F G94设定每分钟进给量,单位依G20、G21的设定分别为in/min、mm/min。 G95设定每转进给量,单位依G20、G21的设定分别为in/r、mm/r。要说明的是这个功能必须在主轴装有编码器时才能使用。 3、半径和直径编程 半径和直径编程指令分别为G22和G23。注意,华中数控世纪星HNC-21/22T系统的直径/半径编程采用G36/G37代码。 如图4.4所示,刀尖从A到B时,以绝对值编程为例,程序段为: 直径编程 G90 G01 X36 Z8 半径编程 G90 G01 X18 Z8  图4.4 直径和半径编程方式 4.3.2 快速定位指令 G00为快速定位指令,该指令的功能是要求刀具以点位控制方式从刀具所在位置以各轴设定的最高允许速度移动到指定位置,属于模态指令。它只实现快速移动,并保证在指定的位置停止。 程序段格式为: G00 X  Y  Z   X Y Z为目标点坐标。 快速点定位的移动速度不能用程序指令设定,而是根据数控系统预先设定的速度来执行。若在快速点定位程序段前设定了进给速度F,指令F对G00程序段无效。快速点定位对刀具的运动轨迹没有严格的精度要求,其执行过程是刀具由起始点开始加速移动至最大速度,然后保持快速移动,最后减速到达终点,实现快速点定位,这样可以提高数控机床的定位精度。 4.3.3 方向定位指令 方向定位指令G60与G00的功能相似,它们都是快速地进行定位。只不过G60定位的方式不同,它先快速到达一个中间点,然后再以一固定速度移到定位点。至于这个中间点在定位点的哪一侧,距定位点有多远是由机床的控制系统预先设定的。该指令为非模态指令,仅在本程序段中有效。 程序段格式为: G60 X Y Z 其中X、Y、Z为定位终点。 在G90状态下定位点为终点在工件坐标系中的坐标;在G91状态下为终点相对于起点的偏移量。 4.3.4 线性进给指令 线性进给指令G01指令即直线插补指令,该指令的功能是指令刀具相对于工件以直线插补运算联动方式,按程序段中规定的进给速度F,由某坐标点移动到另一坐标点,插补加工出任意斜率的直线。 机床在执行G01指令时,在该程序段中必须具有或在该程序段前已经有F指令,如无F指令则认为进给速度为零。G01和F均为模态代码。 程序段格式为: G01 X Y Z F X Y Z为目标点坐标。 例如图4.6所示路径,要求用G01,坐标系原点O是程序起始点,要求刀具由O点快速移动到A点,然后沿AB、BC、CD、DA实现直线切削,再由A点快速返回程序起始点O,其程序如下:  按绝对值编程方式: %0001                   ;程序名 N01 G92 X0 Y0             ;坐标系设定 N10 G90 G00 X10 Y12 S600 T01 M03  ;快速移至A点,主轴正转,1号刀,转速600r/min。 N20 G01 Y28 F100    ;直线进给A→B,进给速度100mm/min N30 X42          ;直线进给B→C,进给速度不变 N40 Y12          ;直线进给C→D,进给速度不变 N50 X10          ;直线进给D→A,进给速度不变 N60 G00 X0 Y0      ;返回原点O N70 MO5          ;主轴停止 N80 M02          ;程序结束 按增量值编程方式:(略) 直线插补指令G01,一般作为直线轮廓的切削加工运动指令,有时也用作很短距离的空行程运动指令,以防止G00指令在短距离高速运动时可能出现的惯性过冲现象。 4.3.5 圆弧进给及螺旋线进给指令 1、圆弧插补指令 G02、G03为圆弧插补指令,该指令的功能是使机床在给定的坐标平面内进行圆弧插补运动。圆弧插补指令首先要指定圆弧插补的平面,插补平面由G17、G18、G19选定。圆弧插补有两种方式,一是顺时针圆弧插补,一是逆时针插补。编程格式有两种,一是I、J、K格式,另一种是R格式。  程序段格式: G02 X  Y  I  J  F  或 G02 X  Y  R  F   G03 X  Y  I  J  F  或 G03 X  Y  R  F   X、Y为圆弧终点坐标值。在绝对值编程G90方式下,圆弧终点坐标是绝对坐标尺寸;在增量值编程G91方式下,圆弧终点坐标是相对于圆弧起点的增量值。I、J表示圆弧圆心相对于圆弧起点在X、Y方向上的增量坐标。即I表示圆弧起点到圆心的距离在X轴上的投影;J表示圆弧起点到圆心的距离在Y轴上的投影;K表示圆弧起点到圆心的距离在Z轴上的投影。I、J、K的方向与X、Y、Z轴的正负方向相对应。如图3.25所示,图上I、J均为负值。要注意的是I、J、K的值属于X、Y、Z方向上的坐标增量,与G90和G91方式无关。  I、J、K为零时可以省略,但不能同时为零,否则刀具原地不动或系统发出错误信息。 下面举例说明G02、G03的编程方法: 如图4.9所示图例,设刀具由坐标原点O相对工件快速进给到A点,从A点开始沿着A、B、C、D、E、F、A的线路切削,最终回到原点O。  为了讨论的方便,在这里我们不考虑刀具半径对编程轨迹的影响,编程时假定刀具中心与工件轮廓轨迹重合。实际加工时,刀具中心与工件轮廓轨迹间总是相差一个刀具半径的,这就要用到刀具半径补偿功能。 用绝对值编程方式编程如下:(略) 用增量值编程方式编程如下: %0001             ;程序名 N10 G92 X0 Y0        ;建立坐标系 N20 G90 G17 M03       ;绝对值方式,XOY平面,主轴正转 N30 GOO X15 Y10   ;快速移动到A N40 G01 X43 F180 S400  ;直线插补到B,进给速度180mm/min,主轴400r/min N50 G02 X20 Y20 I20 F80 ;顺时针插补B→C,进给速度80mm/min N60 G01 X0 Y18 F180  ;直线插补C→D,进给速度180mm/min N70 X-40          ;直线插补D→E,进给速度不变 N80 G03 X-23 Y-23 J-23 F80;逆时针插补E→F,进给速度80mm/min N90 G01 Y-15 F180     ;直线插补F→A,进给速度180mm/min N100 G00 X-15 Y-10  ;快速返回原点O N110 M002          ;程序结束 上面的程序是用I、J、K格式编写的,如果使用R格式编程,则如图4.9所示的轮廓,使用R编程时,只需将上面程序(绝对值编程)中N50、N80程序段分别修改为下面的程序段就行了: N50 G02 X78 Y30 R20 F80 N80 G03 X15 Y25 R23 F80 在使用半径编程时,如图4.10所示,按几何作图会出现两段起点和半径都相同的圆弧,其中一段圆弧的圆心角α>180o,另一段圆弧的圆心角α<180o。编程时规定用R表示圆心角小于180o的圆弧,用R-表示圆心角大于180o的圆弧,正好180o时,正负均可。图4.10所示两段圆弧编程如下: 圆弧1 G90 G17 G02 X50 Y40 R-30 F120 圆弧2 G90 G17 G02 X50 Y40 R30 F120 在实际加工中,往往要求在工件上加工出一个整圆轮廓。整圆的起点和终点重合,用R编程无法定义,所以只能用圆心坐标编程,见图4.11所示,从起点开始顺时针切削,整圆程序段如下: G90 G17 G02 X80 Y50 I-35 J0 F120  2、螺旋线进给指令 以XY平面为例,程序段格式为: G17 G02/G03 X Y I J Z F或G17 G02/G03 X Y R Z F 螺旋线进给指令的执行方式如图4.12所示。  图4-12 螺旋线插补 4.3.6 暂停指令 G04为暂停指令,该指令的功能是使刀具作短暂的无进给加工(主轴仍然在转动), 经过指令的暂停时间后再继续执行下一程序段,以获得平整而光滑的表面。G04指令为非模态指令。 其程序段格式为: G04 X(或P或F或S) 如: N05 G90 G1 F120 Z-50 S300 M03     N10 G04 X2.5         ;暂停2.5秒 N15 Z70 N20 G04 S30         ;主轴暂停30转 N30 G00 XO Y0        ;进给率和主轴转速继续有效 N40 …… 暂停指令G04主要用于如下几种情况: 横向切槽、倒角、车顶尖孔时,为了得到光滑平整的表面,使用暂停指令,使刀具在加工表面位置停留几秒钟再退刀。 对盲孔进行钻削加工时,刀具进给到孔底位置,用暂停指令使刀具作非进给光整切削,然后再退刀,保证孔底平整。 钻深孔时,为了保证良好的排屑及冷却,可以设定加工一定深度后短时间暂停,暂停结束后,继续执行下一程序段。 锪孔、车台阶轴清根时,刀具短时间内实现无进给光整加工,可以得到平整表面。 4.4辅助功能及其它功能指令 4.4.1 辅助功能指令 辅助功能M代码是控制机床或系统的辅助功能动作的,如冷却泵的开、关;主轴的正反转;程序结束等。属于工艺性指令。M功能指令也有模态指令和非模态指令,这类指令与机床的插补运算无关。 辅助功能M指令由地址符M和其后两位数字组成。从M00到M99共100个,详见表4.2。下面介绍几个常用的M功能指令。 1、M00——程序停止指令 M00指令实际上是一个暂停指令。功能是执行此指令后,机床停止一切操作。即主轴停转、切削液关闭、进给停止。但模态信息全部被保存,在按下控制面板上的启动指令后,机床重新启动,继续执行后面的程序。 该指令主要用于工件在加工过程中需停机检查、测量零件、手工换刀或交接班等。 2、M01——计划停止指令 M01指令的功能与M00相似,不同的是,M01只有在预先按下控制面板上“选择停止开关”按钮的情况下,程序才会停止。如果不按下“选择停止开关”按钮,程序执行到M01时不会停止,而是继续执行下面的程序。M01停止之后,按启动按钮可以继续执行后面的程序。 该指令主要用于加工工件抽样检查,清理切屑等。 3、M02——程序结束指令 M02指令的功能是程序全部结束。此时主轴停转、切削液关闭,数控装置和机床复位。该指令写在程序的最后一段。 4、M03、M04、M05——主轴正转、反转、停止指令 M03表示主轴正转,M04表示主轴反转。所谓主轴正转,是从主轴向Z轴正向看,主轴顺时针转动;反之,则为反转。M05表示主轴停止转动。M03、M04、M05均为模态指令。要说明的是有些系统(如华中数控系统CJK6032数控车床)不允许M03和M05程序段之间写入M04,否则在执行到M04时,主轴立即反转,进给停止,此时按“主轴停”按钮也不能使主轴停止。 5、M06——自动换刀指令 M06为手动或自动换刀指令。当执行M06指令时,进给停止,但主轴、切削液不停。M06指令不包括刀具选择功能,常用于加工中心等换刀前的准备工作。 6、M07、M08、M09——冷却液开关指令 M07、M08、M09指令用于冷却装置的启动和关闭。属于模态指令。 M07表示2号冷却液或雾状冷却液开。 M08表示1号冷却液或液状冷却液开。 M09表示关闭冷却液开关,并注销M07、M08、M50及M51(M50、M51为3号、4号冷却液开)。且是缺省值。 7、M30——程序结束指令 M30指令与M02指令的功能基本相同,不同的是,M30能自动返回程序起始位置,为加工下一个工件作好准备。 8、M98、M99——子程序调用与返回指令 M98为调用子程序指令,M99为子程序结束并返回到主程序的指令。 4.4.2 刀具功能指令 刀具功能也称为T功能,表示选择刀具和刀补号。一般具有自动换刀的数控机床上都有此功能。 刀具功能指令的编程格式因数控系统不同而不完全一样,主要有两种格式: 1、“T”指令编程 刀具功能用地址符T加4位数字表示,前两位是刀具号,后两位是刀补号。刀补号即刀具参数补偿号,一把刀具可以有多个刀补号。如果后两位数为00,则表示刀具补偿取消。例如: N01 G92 X140.0 Z300.0    ;建立工件坐标系 N02 G00 S2000 M03      ;主轴以2000r/min正转 N03 T0304           ;3号刀具,4号刀补 N04 X40.0 Z120.0        ;快速点定位 N05 G01 Z50.0 F20      ;直线插补 N06 G00 X140.0 Z300.0    ;快速点定位 N07 T0300           ;3号刀具,补偿取消 2、“T、D”指令编程 T后接两位数字,表示刀号,选择刀具;D后面也是接两位数,表示刀补号。 定义这两个参数时,其编程的顺序为T、D。“T”和“D”可以编写在一起,也可以单独编写,例如,T5D8表示选择5号刀,采用刀具偏置表8号的偏置尺寸;如果在前面程序段中写T5,后面程序段中写入D8,则仍然表示选择5号刀,采用刀具偏置表8号的偏置尺寸。如果选用了D0,则表示取消刀具补偿。 4.4.3 进给功能指令 进给功能也称F功能,表示进给速度,属于模态代码。在G01、G02、G03和循环指令程序段中,必须要有F指令,或者在这些程序段之前已经写入了F指令。如果没有F指令,不同的系统处理方法不一样,有的系统显示出错,有的系统自动取轴参数中各轴“最高允许速度”的最小设置值。快速点定位G00指令的快速移动速度与F指令无关。 根据数控系统不同,F功能的表示方法也不一定相同。进给功能用地址符F和其后一位到五位数字表示,通常用F后跟三位数字(F×××)表示。进给功能的单位一般为mm/min,当进给速度与主轴转速有关时(如车削螺纹),单位为mm/r。 1、切向进给速度的恒定控制 F指令设定的是各轴进给速度的合成速度,目的在于使切削过程的切向进给速度始终与指令速度一样。系统自动根据F指令的切向进给速度控制各轴的进给速度。 2、进给量设定 一般用G94表示进给速度,单位是mm/min,用G95表示进给量,单位是mm/r。G94和G95都是模态代码,G94为缺省值。在华中数控系统中,用G98、G99指令设定F指令的进给量,单位分别为每分钟进给量(mm/min)和主轴每转进给量(mm/r)。G98和G99都是模态代码,G98为缺省值。 3、进给速度的调整 F指令给定的进给速度可通过“进给修调”形状调整。注意,“进给修调”在螺纹加工时无效。 4、快速移动速度 各轴的快速移动速度是在轴参数中设定的“最高允许速度”,可用“进给修调”形状调整,与F指令的进给速度无关。 4.4.4 主轴转速功能指令 主轴转速功能也称S功能,主要表示主轴转速或速度,属于模态代码。主轴转速功能用地址符S加二到四位数字表示。用G97和G96分别指令单位为r/min或m/min,通常使用G97(r/min)。例如: G96 S300    ;主轴转速为300m/min G97 S1500    ;主轴转速为1500r/min 注意,在车床系统里,G97表示主轴恒转速,G96表示恒切削速度。 4.5 不同数控系统功能的比较 数控系统是数控机床的核心。现在市场上所使用的数控系统很多,数控机床根据功能和性能要求的不同,可以配置不同的数控系统。系统不同,其指令代码也有差异,因此,在编程时应按所使用的数控系统代码的编程规则进行编程。 为便于读者学习比较,我们在表4.3、4.4、4.5和表4.6里列出了几种常用数控系统的G功能代码,以供参考 。从这些表中,我们可以看出对于同一G代码而言,不同数控系统所代表的含义不完全一样。因此在此特别提醒在实际使用时,一定要参照所用数控机床的编程使用说明书。