数控编程概述
3.1 一般加工程序的编制过程
在数控机床上加工零件, 首先要编制零件的加工程序, 然后才能加工。程序编制的一般步骤如图3-1 所示:
图3-1加工程序的编制过程
z 确定工艺过程:
根据图纸对零件的形状、技术条件、毛坯及工艺方案等进行详细分析,从而确定出需要的刀具,走刀路线,加工余量等。
z 计算运动轨迹的坐标:
根据零件的几何尺寸,走刀路线及设定的坐标系,计算各个运动轨迹的坐标值,诸如运动轨迹的起点与终点,圆弧的圆心等坐标尺寸。
z 编写加工程序代码:
根据计算出的运动轨迹坐标值和已确定的运动顺序、刀号、切削参数以及辅助动作,按照本系统规定的功能指令代码及程序段格式,逐段编写加工程序代码。
z 程序输入:
将加工程序代码输入到 CNC 系统中。 z 首件试加工:
编写的加工程序代码通过试加工来验证,并根据试加工的结果来修改程序代码,正确无误后正式加工。
3.1.2 程序构成
程序是由 F 代码、G 代码、M 代码、N 代码、S 代码等组成的程序段构成。这些程序段使刀具沿着直线或圆弧运动,或使主轴运动、停转。在程序中根据刀具的实际运动顺序书写这些程序段。程序的构成如图3-2
图3-2程序的构成
3.1.3 程序段
程序指令由字组成。字是带有数字的地址,该地址定义了伴随地址数字的含义。这些字被组合在一起形成了程序段。
一个程序段是由一个或多个组合在一行中的字构成。典型程序段由程序段号开始,程序段的格式定义了每个程序段中功能字的句法,如图3-3 所示。
图3-3程序段的构成
3.1.4 地址说明
地址规定了地址后数字的含义。一个地址可有多种含义。 地址 说明 A A轴(第四轴)绝对或相对坐标值 D 刀具半径补偿号 F 进给率 G 准备功能 I 圆弧圆心相对于圆弧起点之差在X 轴上的投影值 J 圆弧圆心相对于圆弧起点之差在Y 轴上的投影值 K 1、圆弧圆心相对于圆弧起点之差在Z 轴上的投影值
2、循环次数,用于固定循环(G73、G81、G82、G83、G84、G85、G86、G89)
L 子程序名 M 辅助功能 N 程序段号/顺序号 P 1、子程序重复
2、暂停时间,用于G04(单位:毫秒)
3、固定循环孔底暂停(G74、G82、G84、G89)
Q 固定循环用参数 R 1、指定圆弧半径
2、初始平面到R 点的距离,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
S 主轴速度功能 X 1、X 轴绝对或相对坐标值
2、暂停时间,用于G04(单位:秒)
3、孔定位点的X 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
Y 1、Y 轴绝对或相对坐标值
Z
2、孔定位点的Y 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
1、Z 轴绝对或相对坐标值 2、、孔定位点的Z 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
3.1.5 程序段及重复参数
一个程序段代码位于独立一行。如果将两个程序段置于同一行上,则会导致严重的错误。 例如:在第一段代码中描述了从点 A 移动到点 B 的指令,第二段代码描述了从点 B 移动到点C 的指令,当把这两个程序段置于同一行上时,由于该程序段中重复指定轴字段导致该程序将不能够予以执行。如程序段“N100 G00 X13.0 Z3.0 X2.0 X9.5,”,系统会提示错误信息“X 轴指令数多于一个,编辑修改”。
3.1.6 主程序及子程序
当需要在不同的位置加工相同轨迹的图形时,这个图形可以被编成一个子程序,其文件名必须以字母“O”开头,扩展名为“.SUB”,中间以数字填充表示子程序的序号,例如“O100.SUB”。调用该子程序的程序称为主程序。
在主程序执行期间出现子程序执行指令时,就执行子程序的指令。当子程序执行完时,返回主程序继续执行。
3.2 刀具形状和刀具移动-刀具补偿功能 3.2.1 用刀具端部加工——刀具长度补偿功能
通常加工一个零件要用几把刀,而且每把刀具有不同的长度。每次更换刀具便要更换程
序或者要重写程序,这是相当麻烦的。因此预先测量将要使用的每把刀具的长度,然后把它们与标准刀具长度的差设定到 CNC 系统中,这样即使刀具改变了,也不需要更换程序就可实现加工。这个功能称为刀具长度补偿功能。
图3-5
刀具长度补偿功能
3.2.2 用刀具侧刃加工刀具——半径补偿功能
因为刀具有半径,所以刀具的中心轨迹相对于工件轮廓偏移了一个刀具半径的位置。 事先将刀具半径储存在 CNC 系统中,刀具可沿着加工零件轮廓偏离刀具半径的轨迹移动。该功能称为刀具半径补偿功能。
图 3-6 刀具半径补偿功能
第四章 准备功能
准备功能用字母 G 后面跟两位数字来编程。G 功能总是位于程序段的起始,用来定义
加工的几何形状以及 CNC 的工作状态, 如插补、刀具补偿、固定循环等。 G 代码分为下面两类
类型 意义 非模态 G 代码 G 代码只在出现的程序段中有效 模态 G 代码 在未指定同组其它的 G 代码之前,该 G 代码一直有效 例如:
G01 和 G00 是模态组 01 中的模态 G 代码。
4.1 G功能表
模态组 G 代码 功能
G00* 快速点定位 G01 直线插补
模态组 01
G02 顺时针圆弧插补 G03 逆时针圆弧插补
模态组 00 G04 暂停, 单位:秒或毫秒
G17* XY 铣削平面选择
模态组 02 G18 ZX 铣削平面选择
G19 YZ 铣削平面选择 G20 英制编程
模态组 04
G21* 公制编程 G28 返回机床参考点
模态组 00
G29 从机床参考点返回 G40* 撤消刀具半径补偿
模态组 05 G41 左边刀具半径补偿
G42 右边刀具半径补偿
模态组 06 G43 刀具偏置正向补偿
模态组 11
模态组 13
模态组 10
模态组 03 模态组 00 模态组 14 模态组 12
G44 G49* G53 G54* G55 G56 G57 G58 G59 G61* G64 G73 G74 G80* G81 G82 G83 G84 G85 G86 G89 G90* G91 G92 G94* G95 G98* G99 刀具偏置反向补偿 撤消刀具偏置补偿 选择机床基本坐标系 选择工件坐标系 1 选择工件坐标系 2 选择工件坐标系 3 选择工件坐标系 4 选择工件坐标系 5 选择工件坐标系 6 准停模式
连续切削模式 高速深孔钻循环 左旋攻丝循环 固定循环撤销 定点钻削 平底锪孔 排屑钻孔循环 攻丝循环 镗孔循环 镗孔循环 镗孔循环 绝对坐标编程 增量坐标编程 改变工件坐标系 每分进给 每转进给
固定循环返回到初始点 固定循环返回到 R 点
注意:
所谓模态, 即当该G 功能被编程后, 它们就能维持有效, 直至被同一组其它不相容的G 功能或 M02、M30 或" 紧急停" 、" 复位" 键撤消。
在 G 功能上标有"*"的指令, 是指开机时, 或执行过 M02 或 M30,或发生过" 紧急停", 或按" 复位" 键后, CNC 所具有的工作状态。
G00、G01、G02、G03 在同一程序段中是互斥的,即其中只能有一个代码可以出现。 G17、G18、G19 在同一程序段中是互斥的。 G40、G41、G42 在同一程序段中是互斥的。 G54-G59 在同一程序段中是互斥的。 G61、G64 在同一程序段中是互斥的。 G20、G21 在同一程序段中是互斥的。 G90、G91 在同一程序段中是互斥的。 G94、G95 在同一程序段中是互斥的。 G98、G99 在同一程序段中是互斥的。
G80-G89、G73、G74 在同一程序段中是互斥的。 G04、G28、G29、G92 在同一程序段中是互斥的。
除此以外, 所有其它的 G 功能都可以在同一个程序段中以任意次序编程。
4.2 插补功能 4.2.1 G00 点定位
指令格式:G00 X_ Y_ Z_ 其中,X_ Y_ Z_是指:
以绝对值指令编程时,终点的坐标值; 以增量方式编程时,刀具移动的距离。
指令 G00 将刀具以快速移动速度移动到用绝对值指令或增量值指令指定的工件坐标系中的位置。
G00 指令是按照每个轴单独设定的参数——快速进给速度执行的。 参数“快速定位时采用直线插补”决定了点定位的刀具轨迹:
(1) 非直线插补定位:刀具分别以每轴的快速移动速度,定位刀具轨迹一般不是直线。 (2) 直线插补定位:刀具轨迹与直线插补(G01) 相同,刀具以不超过每轴的快速移动速度在最短的时间内定位。
图 4-1 G00 点定位的方式
图4-2 中,刀具从当前起点位置先在 X 方向快速移动-13.245 mm,再在Y 方向快速
移动 10 mm 。
N100 G91 G00 X-13.245 Y10
图 4-2 G00 运动轨迹
注意:
G00 指令段中不需设定进给速度,进给速度在系统参数设置中设定。
G00 是模态的, 它与 G01、G02、G03 是不相容的, 编程时也可以写成 G0。 当编 G00 功能时, 不撤消在其之前所给定的 F 值,但该 F 值对 G00 的执行速度不起作用。也就是说, 当再其后的代码中编写 G01、G02、G03 时, 若不出现新的 F 值时, 前面所编入的最后一个 F 值自动起作用。
4.2.2 G01 直线插补
指令格式:G01 X_ Y_ Z_ F_ 其中,X_ Y_ Z_是:
以绝对值指令编程时,终点的坐标值; 以增量方式编程时,刀具移动的距离。
F_ 刀具的进给速度。
指令 G01 可将刀具按给定的进给速度沿直线运动到给定的坐标位置处,一般作为切削加工运动指令用。G01 既可以单坐标运动,又可以任意两坐标联动,也可以三坐标联动实现空间直线运动。
在 G01 后面所编的运动, 以所编的 F 进给率执行直线运动。当两轴同时运动时, 其合成轨迹是起点和终点之间的直线, 机床以所编的进给率 F 沿此直线轨迹运动。CNC 计算每个轴的进给率, 使合成轨迹的进给率等于所编的 F 值。
F 指定的进给速度在直到新的值被指定之前一直有效,因此无需对每个程序段都指定。 用 F 代码指令的进给速度是沿着直线轨迹测量的,如果 F 代码未指定,则CNC 系统会提示“运动段缺少 F 指令,编辑修改”。直到该代码文件中不含有错误,才能够被执行。
每个轴方向的进给速度如下: G01 Xα Yβ Zγ Ff;
X 轴方向的进给速度:
Y 轴方向的进给速度:
Z 轴方向的进给速度:
例 1:
图 4-3 中,刀具从当前位置在按 200 mm /min 的速度移动到距起点X -20.3,Y -10)(mm )(相对坐标)的位置。
N100 G91 G01 X-20.3 Y-10 F200
图 4-3 G01 直线插补(1)
例 2:
图 4.4 中,刀具从当前位置按 300 mm /min 的速度移动到工件坐标系中(Y20.3,Z10)(mm )(绝对坐标)的位置。 N200 G90 G01 Y20.3 Z10 F300
图 4-4 G01 直线插补(2)
注意:
在程序段中若哪个坐标值未出现,该坐标保持不动。
G01 是模态的, 并与 G00、G02、G03 不相容。编程时 G01 可写成 G1。
在开机时, 执行 M02、M30、 " 紧急停" 或" 复位" 后, CNC 确认为 G00 状态。
4.2.3 G02/G03 圆弧插补
G02 顺时针圆弧插补。 G03 逆时针圆弧插补。
在 G02/G03 将刀具以所编入的 F 进给率沿着圆弧轨迹移动。顺时针(G02)和逆时针(G03)与坐标轴的关系, 如图 4-5 所示。
G02/G03 指令以所编入的 F 进给率沿着圆弧轨迹移动刀具。它可在三个坐标平面(XY 、ZX 、YZ )内运动,由 G17、G18、G19 指令指定平面,详见“2.7.3 G17/G18/19 平面选择指令”。
图 4-5 圆弧走向定义
该指令可将刀具按给定的进给速度沿所需圆弧运动到给定的坐标位置处,一般作为切削
加工运动指令用。它可自动过象限。
编制圆弧程序时,应确定圆弧所在平面(G17~G19)、圆弧走向(G02/G03)、圆弧进给速度(F )、圆心相对于圆弧起点的坐标值(I 、J 、K ,如图4-6)或圆弧半径±R(圆弧弧度小于等于 180°时 R 为正,圆弧弧度大于 180°时 R 为负),在绝对方式下(G90) ,应确定圆弧终点的绝对坐标值(X 、Y 、Z );在增量方式(G91)下应确定圆弧终点相对于起点的坐标值(X 、Y 、Z )。
图 4-6 圆弧插补
指令格式:
项目 1 2
指 定 内 容 旋 转 方 向 终点 位置
绝对值 增量值
指令 G02 G03
X ,Y ,Z X ,Y ,Z
意义
顺时针方向圆弧插补 逆时针方向圆弧插补 终点坐标值 (G90)
终点相对于起点的坐标值 (G91)
圆心相对于圆弧起点之差在 X 轴上的投影值(带符号) 圆心相对于圆弧起点之差在 Y 轴上的投影值(带符号) 圆心相对于圆弧起点之差在 Z 轴上的投影值(带符号) 圆弧半径
圆弧切向进给速度
3
圆心相对于起点的距离
4
I J K
圆弧的半径 R 进给速度 F
例:
刀具在 XY 平面内,按照起点为当前位置(X20,Y20)、圆心相对于起点的坐标值(I0,J-10)、圆心终点绝对坐标值(X30,Y10)、圆弧插补速度 60 mm /min 的圆弧插补轨迹。如图 2.7 所示。
绝对方程编程:N100 G02 X30 Y10 I0 J-10 F60
增量方式和 R 指令编程:N100 G91 G02 X10 Y-10 R10 F60
图 4-7 圆弧运动轨迹
注意:
G90 和 G91 代码指定绝对值编程和相对值编程,它将影响所说明的坐标是绝对值坐标(相对于工件原点)还是相对值坐标(相对于当前刀具位置)。
圆弧插补的进给速度等于F 代码指定的进给速度,并且沿圆弧的进给速度(圆弧的切向进给速度)被控制为指定的进给速度。
G02 和 G03 都是模态的, 它们彼此不相容, 且都与 G00、G01互不相容。G02和G03可写成 G2/G3。
G17 平面圆弧用 X ,Y 与 I ,J 或 R 指定编程;G18 平面圆弧用 X ,Z 与 I ,K 或 R 指定编程;G19 平面圆弧用 Y ,Z 与 J ,K 或 R 指定编程。
在圆弧指令下,X 、Y 、Z 不能同段指定,I 、J 、K 不能同段指定。R 与 I 、J 、K 不能同段指定。要编写一整圆轨迹,则必须省略终点的坐标(或指定的终点坐标同起点一样),并且用I 、J 或 K 参数定义圆弧的圆心位置。这样就定义了一个终点和起点重合的 360 度圆弧。
圆弧半径值 R 可以被定义为正数或者负数。正的圆弧半径 R 将产生一小于等于 180 度的圆弧,而负的圆弧半径 R 将产生一大于等于 180 度的圆弧,如图 2.8 所示:
图 4-8带正/负号圆弧半径的圆弧插补
警告:如果代码中编入了一个终点同起点一样的圆弧,并且用 R 参数指定了该圆弧的半径,那么这将会得到一个点圆,即刀具在该点不运动。
当如果用 R 参数指定圆弧半径,并且其终点没有沿着由半径定义的圆弧时,这将导致出错:圆弧半径值设定不正确或终点偏差超出了容许范围。
例:
图 4-10 圆弧插补编程示例
上面的刀具轨迹编程如下
1 绝对值编程 G92X200.0 Y40.0 Z0;
G90 G03 X140.0 Y100.0R60.0 F300.; G02 X120.0 Y60.0R50.0; 或
G92X200.0 Y40.0Z0;
G90 G03 X140.0 Y100.0I-60.0 F300.; G02 X120.0 Y60.0I-50.0; 2 增量值编程
G91 G03 X-60.0 Y60.0 R60.0 F3000.; G02 X-20.0 Y-40.0 R50.0; 或
G91 G03 X-60.0 Y60.0 I-60.0 F300.; G02 X-20.0 Y-40.0 I-50.0;
4.3 进给功能
进给功能用于控制刀具的进给速度,进给功能有以下两种:
4.3.1 快速移动
用定位指令 G00 进行快速移动。各轴移动速度由系统参数决定,程序中无需指定F 值。
4.3.2 切削进给
刀具以程序中编制的切削进给速度移动。
在直线插补(G01)、圆弧插补(G02、G03)中用 F 代码后面的数值来指定刀具的进给速度。F 的单位为毫米/分钟(mm/min)或英寸/分钟(inch/min)。
4.3.2.1 切线速度控制
切削进给通常是控制切线方向的速度,使它能够始终达到指令的速度值。
直线插补 圆弧插补 F: 切线方向的速度 Fx: X轴方向的速度 Fy: Y轴方向的速度
4.3.2.2 G94 每分进给
在指定 G94(每分进给方式) 以后, 刀具每分钟的进给量由 F 所给定的数值指定。G94是模态代码。一旦指定,在 G95(每转进给)、M02、M30 指令, 或者" 紧急停", "复位" 被指定前一直有效。在电源接通时,每分种进给方式有效。
图 4-11 每分进给
4.3.2.3 G95 每转进给
在指定 G95 (每转进给) 之后, 在 F 的数值表示主轴每转一圈刀具的进给量。
4.3.2.4切削进给速度的限制
参数“最高速度限制” 设置各轴切削进给速度的上限值。
4.3.3 G04 暂停
指令格式:G04 X_ 或 P_
X_ 延时时间,单位:秒(s ) P_ 延时时间,单位:毫秒(ms )
指令 G04 指定暂停,机床不运动。按指定的时间延时执行下个程序段。 例如:N1010 G04 X20.3暂停 20.3 秒
N1010 G04 P203暂停 203 毫秒
G04、G28、G29不能在同一程序段中出现。 G04 也可简写成 G4。
4.3.4 G61/G64 控制运动的方式
指令格式:
G61 准停方式 G64 切削方式
G61/G64 控制系统的运动方式。在切削进给期间,如果在相邻两程序段之间的移动方向发生了改变,可能造成圆角轨迹,如图 2-12 所示。如果想消除该拐角处的圆弧,可加入准停方式指令 G61。
G61 是模态 G 代码,指定后一直有效,直到被 G64 取消。缺省为 G64。
图 4-12 两个程序段之间刀具轨迹
4.4 坐标值与尺寸
4.4.1 G20/G21 英制/公制转换
指令格式:
G20: 英寸输入 G21: 毫米输入
G20,G21 指令用来确定你将使用英寸还是毫米作为单位来说明坐标值,距离,半径等等。
G20,G21 指令用来确定输入数据的单位是英寸还是毫米,但对角度的数据输入没有影响,单位仍然保持为度。当 G20/G21 被指定之后,改变以下数值的单位制:
z 由 F 代码指令的进给速度 z 位置指令
z 在增量进给中的移动距离 例如:
N100 G21 G91 G00 X10.2 Y20.3
表示刀具快速移动到距起点(X10.2,Y20.3)(毫米)的位置。 例如:
N100 G20 G91 G00 X10.2 Y20.3
表示刀具快速移动到距起点(X10.2,Y20.3)(英寸)的位置。
该组指令具有模态续效性,缺省值为 G21。CNC 通电或者执行 M02、M30 指令或者" 紧急停" 、" 复位" 后, CNC 处于 G21 模式。
G20,G21 在同一个程序段中是不相容的。
G20,G21 指令必须位于程序的开头, 在设定坐标系之前,以单独程序段指定。
4.4.2 G90/G91 绝对/增量编程
坐标值可用绝对值 G90 方式表示,也可以用增量值 G91 方式表示。G90 或 G91 指令是控制其后的运动指令是以绝对方式还是增量方式编程。 指令格式:
G90: 绝对方式指令,编程终点的坐标值。 G91: 增量方式指令,编程刀具移动距离。
CNC 通电或者执行 M02、M30 指令或者" 紧急停" 、" 复位" 后, CNC 处于 G90 编程状态。
G90、G91 在同一个程序段中是不相容的。 例如: 如图4-13
图 4-13 G90/G91 绝对值/增量值编程
起点是 P0(X50 Y10)
绝对值编程: N10 G90 G01 X30 Y20 ; P0-P1
N20 X20 Y30 ; P1-P2
增量值编程: N10 G91 G01 X-20 Y10 ; P0-P1
N20 X-10 Y10 ; P1-P2
4.5 参考点
4.5.1 G28 返回参考点(非模态)
参考点是机床上的一个固定点,用参考点返回功能, 刀具可以容易地移动到该位置。G28指令各轴以快速移动速度经中间点返回到参考点,返回速度为 G00 快速定位速度。注意:它仅用于空行程。如图4-14所示。
指令格式:N10 G28 X_ Y _ Z_ 4th_;
X ,Y ,Z 和 4th 轴:中间点坐标值
4th 代表为第四轴,可以为 A 、B 和 C 轴中的一个。
图 4-14 G28 返回参考点
G28 后的这些坐标值可以是绝对的或相对的,由 G90,G91 决定。
为安全起见,在编写 G28 之前,应先取消刀具半径补偿以及刀具长度补偿。
4.5.2 G29 从参考点返回(非模态)
G29 实现从参考点经 G28 指定的中间点快速(G00 定位速度)返回到指定的目标点位置,如图2-15 所示。注意:此组指令只用于空行程。 指令格式:N10 G29 X_ Y_ Z_ 4th_;
X ,Y ,Z 和 4th 轴:目标点位置。
图 4-15 G29 从参考点返回
G29 后的这些坐标值可以是绝对的或相对的,由 G90,G91 决定。
例如:
G28 G90 X1000.0 Y500.0 ;从 A 经 B 到 R 的移动 (在参考点换刀) G29 X1300.0 Y200.0 ;从 R 经 B 到 C 的移动
图 4-16 返回参考点和从参考点返回
4.6.1 刀具半径补偿
在轮廓加工过程中,由于刀具总有一定的半径(对于铣削而言就是铣刀半径),刀具中
心的运动轨迹并不等于所需加工零件的实际轮廓。
为了达到被加工零件所要求的尺寸,必须计算出加上刀具半径后的刀具轨迹。在进行内轮廓加工时,刀具中心必须相对零件内轮廓偏移一个刀具半径;在进行外轮廓加工时,刀具中心必须相对零件外轮廓偏移一个刀具半径。这就是刀具半径补偿。
铣刀中心点和铣刀外缘切削面有一个铣刀半径的偏差,铣刀运动轨迹实际上是铣刀中心点的运动轨迹,而操作者一般按照零件图纸编程,这样编程轨迹与铣刀中心点运动轨迹也就有了一个铣刀半径的偏差。使用刀具半径补偿功能可以直接对零件轮廓编程,而不用考虑刀具的尺寸。CNC 根据零件轮廓和存放在刀具表中的刀具尺寸,自动计算刀具所走的轨迹。
用于刀具半径补偿的准备功能有三种: G40:刀具半径补偿撤消。
G41:左刀具半径补偿,刀具在零件的左边。如图 2-17 所示。 G42:右刀具半径补偿,刀具在零件的右边。如图 2-17 所示。
图 4-17 刀具半径补偿
4.6.1.1 G41/G42 刀具半径补偿
G41/G42 指令产生补偿矢量。与 G00/G01 配合使用,刀具补偿开始。
指令格式:G00 (或 G01) G41(或 G42) X_ Y_ Z_ D_
X 、Y 、Z: 轴移动指令
D: 刀具半径补偿号(D 代码) 注意:
(1) 刀具半径补偿的建立轨迹和撤销轨迹不允许是圆弧轨迹(即 G02,G03),若出现这种情况,系统会报告出错消息“半径补偿建立或撤销指定在非直线运动段中,删除修改。”。
(2) D 代码具有续效性,指定后一直有效,直到另一个 D 代码被指定为止。
补偿号由 2 位数字表示,紧跟在地址 D 后,例如:D03,表示 3 号半径补偿值。在本系统中,可设定 20 组铣刀半径补偿值(D01~D20)。D00 数值固定为 0,不能设置。
(3)刀具半径补偿值的改变
通常,刀具半径补偿值应在G40(刀具半径补偿取消)方式改变,即换刀时。如果在G41/G42 方式(偏置方式)中改变刀具半径补偿值,在程序段终点的矢量根据新刀具半径
补偿值计算,如图4-18 所示。
(4) 刀具半径补偿操作
G41 刀具半径补偿左侧偏移。
在 G00、G01 方式下,G41 D_ α_ β_ (α,β=X 、Y 、Z 中的任一个)指令会在终点产生一个与(α,β)方向相垂直的补偿矢量,刀具从起点运动到该矢量的顶点。这个补偿矢量沿着编程运动方向看过去偏向左边,如图4-19 所示。
图 4-19 G41 刀具半径补偿左侧偏移
G42 刀具半径补偿右侧偏移。
由 G42 形成的矢量方向与 G41 的相反。如图 4-20 所示。
4.6.1.2 G40 指令格式:G00 (或 G40
图 4-21 G40 刀具半径补偿撤消
注意:
加工结束时,必须取消半径补偿,否则系统会提示错误信息“刀具半径未被取消, 编辑 G40 指令。”。
G40、G41、G42 指令具有模态续效性,缺省值为 G40。 在 G02、G03 方式下使用 G40 指令是非法的。
示例:
G90 G92 X0 Y0 Z0
N1 G17 G00 G41 D07 X250.0 Y550.0 N2 G01 Y900.0 F150 N3 X450.0
N4 G03 X500.0 Y1150.0 R650.0 N5 G02 X900.0 R-250.0
N6 G03 X950.0 Y900.0 R650.0 N7 G01 X1150.0 N8 Y550.0
N9 X700.0 Y650.0 N10 X250.0 Y550.0 N11 G00 G40 X0 Y0
指定绝对坐标值。刀具定位在(X0,Y0,Z0) 开始刀具半径补偿(起刀)。D07 预设为 15。 从 P1 到 P2 加工。 从 P2 到 P3 加工。 从 P3 到 P4 加工。 从 P4 到 P5 加工。 从 P5 到 P6 加工。 从 P6 到 P7 加工。 从 P7 到 P8 加工。 从 P8 到 P9 加工。 从 P9 到 P1 加工。
取消偏置方式。刀具返回到开始位置
N12 M30
(X0,Y0,Z0)。 程序结束
4.6.1.3 加工轮廓内外尖角过渡(刀具半径补偿 C 功能)
除了刀具半径偏移外,刀具半径补偿还能够在零件廓形的非光滑过渡的拐角处,自动进行尖角过渡处理。
刀具半径补偿 C 功能,能在拐角处采用尖角折线型过渡。程序针对各种常规零件廓形的内、外拐角组合形式--直线与直线、直线与圆弧、圆弧与直线、圆弧与圆弧--完成刀具半径偏移及尖角的折线型过渡。
如图4-22,当两段程序指令建立的刀具轨迹的夹角超过 180°时,称该轨迹为“内侧”。当夹角在 0 和 180°之间时,称为“外侧”。
图 4-22 刀具轨迹的内外侧
一、起刀时的刀具移动
围绕拐角内侧的刀具移动(α≥180°)
直线-直线 直线-圆弧
类型
直线-直线
围绕钝角拐角外侧的刀具移动(90°≤α
直线-圆弧
1 2
类型
围绕锐角拐角外侧的刀具移动(α
直线-直线
直线-圆弧
1
2
围绕小于 1°锐角拐角外侧的刀具移动(α
二、在偏置方式中
围绕拐角内侧的刀具移动(α≥180°)
直线-直线
直线-圆弧
圆弧-直线
圆弧-圆弧
α
围绕钝角拐角外侧的刀具移动(90°≤α
直线-直线 直线-圆弧
圆弧-直线
圆弧-圆弧
围绕锐角拐角外侧的刀具移动(α
直线-直线
直线-圆弧
圆弧-直线
圆弧-圆弧
还有圆弧到直线,直线到圆弧和圆弧到圆弧的情况,以同样的方法处理。
注意:
(1) 没有内交点
如果刀具半径补偿值足够小,补偿后形成的两个圆弧刀具中心轨迹相交在一点P 。 如果刀具半径补偿值太大,有可能得不到交点 P 。在下面的例子中,当指定的刀具补偿值足够小时,沿圆弧 A 和 B 的刀具中心轨迹相交在 P 。如果指定了一个过大的值,这个交点可能得不到。
图 2-23 围绕锐角拐角外侧的刀具移动(α
(2) 有内交点的刀心轨迹
直线-直线
圆弧-直线
圆弧-直线
圆弧-圆弧
(3) 没有内交点的刀心轨迹
当用 G41和 G42 在程序段 A 到程序段 B 中改变偏置方向时,如果不要求偏置轨迹的交点,则在程序段 B 的起点产生垂直于程序段 B 的矢量。
直线-直线
直线-圆弧
(4) 刀具轨迹的长度大于圆的周长
能产生这种情况。但是,当 G41和G42 改变时,或当用地址 I 、J 和 K 指令 G40时,这个情况就可能出现。在这种情况下,圆心角大于 360 的圆,不执行刀具半径补偿,形成 P1到 P2的圆弧,如图4-23 所示。在这种情况下,当程序运行到该代码段时显示出错信息“刀具补偿过切”,则程序无法继续执行。如执行大于一周的圆,必须分段指定。
图 4-23 刀具轨迹的长度大于圆的周长
三、偏置取消方式中的刀具移动
围绕拐角内侧的刀具移动(α≥180°)
直线-直线 圆弧-直线
围绕钝角拐角外侧的刀具移动(90°≤α
类
型
直线-直线
圆弧-直线
1
2
围绕锐角拐角外侧的刀具移动(α
类型
直线-直线
圆弧-直线
1
2
围绕小于 1°锐角拐角外侧的刀具移动(α
4.6.2 刀具长度偏置 4.6.2.1 G43/G44 刀具偏置
当实际使用时的刀具长度不同于编程时的刀具长度时,可通过 H 代码选择刀具长度的偏置量,无需修改程序代码。G43 和 G44 用来确定偏置方向,H 代码指定偏置量。 指令格式:G43(或 G44)X_(Y_ 或 Z_)H_
G43:正向偏置 G44:向偏置 X_(Y_ 或 Z_):选择轴的地址 H: 刀具长度偏置值的地址
当指定 G43 时,用 H 代码指定的刀具长度偏置值加到在程序中由指令指定的终点位置坐标值上;当指定 G44 时,从终点位置减去补偿值,补偿后的坐标值表示补偿后的终点位置,而不管当前处于绝对编程方式还是增量编程方式。
G43 和 G44 是模态代码,一旦被指定,一直有效,直到指定同组的 G 代码为止。 偏置号由 2 位数字表示,紧跟在 H 指令后,例如:H03 表示 3 号刀具偏置值。 偏置号 0(H00)的刀具长度偏置值固定为 0,不能对 H00 设置。4.6.2.2 G49 撤消刀具偏置
G49 指定之后,系统立即取消刀具长度偏置。指令格式:G49 X_(Y_或 Z_) 例如:
N10 G91 G01 G43 X10 H01 G43 Y5 H02 F300;对 X 、Y 坐标建立正向偏置 H01、H02 N20 G49 X10 ;撤消 X 坐标偏置 N30 X5 G49 Y5 ;撤消 Y 坐标偏置
图 4-24 刀具偏置撤消
注意:
z 程序结束时各坐标必须处于刀具偏置撤消状态。
z G43、G44、G49 指令具有模态续效性,缺省值为 G49。 示例:
图 4-25 刀具偏置
H1=-4.0 刀具长度偏置值 N1 G91 G00 X120.0 Y80.0
N2 G43 Z-32.0 H1 N3 G01 Z-21.0 F1000 N4 G04 P2000 N5 G00 Z21.0 N6 X30.0 Y-50.0 N7 G01 Z-41.0 N8 G00 Z41.0 N9 X50.0 Y30.0 N10 G01 Z-25.0 N11 G04 P2000 N12 G00 G49 Z57.0 N13 X-200.0 Y-60.0
N14 M02
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)
4.6.3 刀具偏置与刀具半径补偿功能的区别
刀具偏置功能是对各个坐标进行的加减偏置处理。刀具半径补偿功能则是在同一平面内根据编程轨迹和刀具半径量生成刀具中心轨迹。
4.7 坐标系
4.7.1 G53 选择机床坐标系(非模态)
机床上的一个用作加工基准的特定点称为机床坐标系原点,也称为机床零点。机床制造厂对每台机床设置机床零点。
以机床零点作为原点设置的坐标系称为机床坐标系。
在机床通电之后,执行手动返回参考点,各轴均返回参考点后,机床坐标系建立,机床坐标系一旦设定就始终保持不变,直到电源被断开为止。 指令格式:(G90)G53 X_ Y _ Z_ 4th_
X,Y ,Z,4th :绝对方式编程,终点的坐标值。
G53 是非模态 G 代码。即 G53 指令仅在被指定的程序段有效。 G53 指令必须用绝对值指定,增量值为非法。 在指定 G53 指令之前,必须设置机床坐标系。 例如:
N10 G00 G90 G53 X5 Y10
控制刀具快速进给到机床坐标系中 X =5 mm,Y =10 mm 的位置,如图2-27 所示。
图 4-26机床坐标系
4.7.2 工件坐标系
工件加工时使用的坐标系称作工件坐标系。工件坐标系由CNC 预先设置(设置工件坐标系) 。
加工程序设定工件坐标系(工件坐标系选择)。已设定的工件坐标系可以通过移动它的原点来改变(改变工件坐标系)。参见“KT620Mi 数控系统操作说明书”第一章“设定工件坐标系”部分介绍。
4.7.2.1 G54~G59 选择工件坐标系
根据不同的工件可用这些指令来选择不同的坐标系。运用G54~G59最多可以选用6个坐标系
G54 选择#1 工件坐标系 G55 选择#2 工件坐标系 G56 选择#3 工件坐标系 G57 选择#4 工件坐标系
G58 选择#5 工件坐标系 G59 选择#6 工件坐标系 用这样的方法设置坐标系,可以将零点设定在工件的一个固定的位置上,从而使得这个工件的编程变的很简单。用相同的 G 指令程序段,只改变参考点就能够加工 6 个不同的工件。 例如:
图 4-28 选择工件坐标系示例
注意:
工件坐标系是在通电后执行了返回参考点操作后建立的。
G54~G59 用于选择(而非建立)不同的坐标系。在用这些指令选择 6 个坐标系前必须先把它们建立好。
该组指令是模态代码,当没有指定同组的代码之前,原先指定的代码一直保持有效。在未给定该组中的代码时,G54 有效(通电时自动选择 G54 坐标系)。
4.7.2.2 G92 改变工件坐标系(非模态)
G92 使工件坐标系(用代码 G54-G59 选择) 移动,从而设定新的工件坐标系,使得刀具位置与指定的坐标值一致。坐标系偏移量加到所有工件零点偏置值上,这意味着所有工件坐标系移动相同的量。 指令格式:(G90)G92 X_ Y _ Z_ 4th_
X 、Y 、Z 、4th :必须为绝对尺寸字。
4th 代表为第四轴,可以为 A 、B 和 C 轴中的一个 G92 指令必须单独一行指定。 当工件零点偏移值设定后,用 G92 设定坐标系时,该坐标系不受工件零点偏置值影响。例如当指令“G92X100Y80”时, 刀具当前位置为 X=100,Y=8 的坐标系被指定。 例如:
刀具当前点为 P0(X80 Y10) ,刀具运动轨迹如图4-29 所示。
图4-29
编程代码如下:
N100 G90 G01 X50 Y20
N110 X10
或使用 G92, 编程代码如下:
N90 G92 X0 Y20; P0 点原工件坐标系下坐标(80,10)变成新工件坐标系下的坐标(0,20) N100 G90 X-30 Y30 N110 X-70
4.7.3 G17/G18/G19 平面选择
对圆弧插补,刀具半径补偿和用 G 代码的钻孔指令需要选择平面。 指令格式:
G17: 选择 XY 平面 G18: 选择 ZX 平面 G19: 选择 YZ 平面 G17,G18,G19 指令具有模态续效性,缺省值为 G17,即当电源接通或 CNC 复位后,默认选择 G17(XY 平面)。
移动指令(G00,G01)与平面选择无关。 对圆弧插补指令通常需指定选择平面指令。 如: G17 G02 X5.2 Y-7.0 R3.3 F500
4.8 G98/G99 返回点平面
G98/G99 对固定循环指令(G73, G74, G81, G82, G83, G84, G85 和 G89)的运动位置有影响。
G98:指定固定循环返回到初始点; G99:指定固定循环返回到 R 点。 缺省方式是 G98。
一般情况下 G99 用于第一次钻孔,而 G98 用于最后钻孔。指定 G98 或 G99 时,刀具移动如图2-30 所示。
G98 (返回到初始平面) G99 (返回到 R 平面)
图 4-30
第五章 S 主轴速度功能
用 S 指令及紧跟其后的数字指定主轴转速,单位为 rpm(转/分钟)。 S 指令具有模态续效性。
主轴速度受系统参数“主轴最大速度”限制。当程序中编入的主轴速度值超过该参数设定
值时,系统报错。 例如:
S2000 (设置主轴的速度为 2000RPM)
第六章 M 辅助功能
辅助功能是控制机床开关功能的指令,如主轴启动、主轴停止、冷却液开/关等,辅助
功能指令用地址 M 及其后面 2 位数字组成。
同一程序段中最多可出现三组 M 指令。
M 代码数值范围从 M00 至 M99,下述 M 代码具有特殊的功能:
M 代码 功 能
M00 程序停止 M01 选择性程序停止 M02 程序结束 M03 主轴正转 M04 主轴反转 M05 主轴停止 M20 程序结束,自动循环 M30 程序结束并返回程序起始 M98 调用子程序 M99 子程序返回
6.1 M00程序停
在包含 M00代码的程序段执行完后, 自动运行停止,但模态信息全部被保存,在按下
启动键后,系统继续执行后面的程序。
M00指令和暂停键功能的不同之处在于前者用于程序需要计划暂停的场合,而后者在程序运行的任何时侯都可以使用。
6.2 M01程序条件停
此指令的功能和 M00 基本相同,但只有在系统的" 选择停" 按钮被按下时 M01 才有效,程序执行完该指令自动停止;若" 选择停" 按钮处于抬起状态时,则 M01 将不予以执行。
6.3 M02程序结束
M02 代码表明程序结束, 并执行 CNC 的总复位功能, 使系统回到初始状态。该指令通常置于加工主程序的最末一段。
当程序执行完 M02 指令时,程序执行指针不会自动回到程序的首行,仍旧停留在 M02程序段上。按下“复位”键后程序执行指针回到程序的首行。
该指令之后的代码被全部忽略。
6.4 M20程序结束且自动循环
M20代码表示加工程序结束后,又自动从程序起始处循环执行。该指令通常置于加工主程序的最末一段该指令之后的代码被全部忽略。
6.5 M30程序结束且返回到程序开始
M30 指令置于程序最后一段,表示程序结束。与 M02 指令的不同之处是 M30 指令执行完毕后,程序执行指针会自动回到程序的首行,故程序结束大多使用 M30。
该指令之后的代码被全部忽略。
6.6 M03启动主轴顺时针旋转
M03 指令启动主轴正转,即从主轴上方向工作台方向看,主轴顺时针方向转动。如图6-1所示。
6.7 M04启动主轴逆时针旋转
M04 指令启动主轴反转,即从主轴上方向工作台方向看,主轴逆时针方向转动。如图6-1所示。
图 6-1
6.8 M05 主轴停止
M05 指令停止主轴。
程序执行完 M05 指令,主轴停止,此指令用于下列情况: (1)程序结束前。
(2)主轴正、反转之间的转换,须加入此指令,先使主轴停止,再指定反向指令,以免伺服马达受损。
6.9 M98、M99 子程序调用/返回
指令 M98 调用子程序,当子程序运行完则继续执行其后的代码。 指令格式:M98 P___L___
P :子程序调用次数。如果调用 1 次,程序代码中也要写明 P1。 L :子程序号
指令 M99 是子程序返回指令,它必须在子程序文件中的最后一个程序段,程序执行到此将返回主程序继续执行主程序。
子程序文件名格式为字母‘O’加上子程序号,加上后缀字符“.SUB”。 例如:
N100 M98 L500 P3 N110 G00 X0 Z0 N200 M02
子程序 O500.SUB 内容: %O500
N100 G01 X10 Z20 F100
N110 G04 X5 N120 M99
例子中程序在 N100 段处调用文件名为 O500.SUB 的子程序。子程序执行到 N120 段后返回,共调用 3 次,然后返回主程序 N110 段继续往下执行。
当主程序调用子程序时,它被认定为一级子程序。子程序允许嵌套,即子程序中允许再调用子程序,嵌套级数不大于 8 级。
当 L 字指定的子程序文件不存在时,CNC 提示错误信息“子程序载入错误,文件不存在或者已损坏”。
第七章 固定循环
固定循环使编程人员的编程工作变得更加容易。用固定循环,频繁使用的加工操作便可以在单程序段中实现,如果没有固定循环,通常要多个程序段才能够完成相同的功能。另外固定循环能缩短程序,减少代码的输入工作,提高效率。
本系统有供钻削、镗孔加工等使用的固定循环方式: 指令 钻削(-Z 方在孔底的动作 回退(+Z 方向)用途
向)
G73 间歇进给 快速移动 高速深孔钻循环 G74 切削进给 主轴停止→主轴切削进给 左旋攻丝循环 G80 取消固定循环 G81 切削进给 快速移动 钻孔循环,点钻循环 G82 切削进给 停刀 快速移动 钻孔循环,平底锪孔 G83 间歇进给 快速移动 排屑钻孔循环 G84 切削进给 主轴停止→主轴切削进给 右旋攻丝循环 G85 切削进给 切削进给 镗孔循环 G86 切削进给 主轴停止 快速移动 镗孔循环 G89 切削进给 停刀 切削进给 镗孔循环 机床配备主轴启停、转向控制接口电路时,G74、G84、G86 指令才有效。 本组指令是模态 G 代码,缺省值为 G80。Z (Y 或 X ),R ,P 和 F 值一经指定,若非重新指定,在后面程序段中将继续有效。
工作进给速度由 F 代码指定;暂停延时时间由 P 代码指定。 一般说来,固定循环由六个步骤按顺序执行,如图 5-1 所示。 步骤 1:定位 X 轴和 Y 轴 步骤 2:快速移动到 R 点 步骤 3:孔加工
步骤 4:在孔底的动作 步骤 5:返回到 R 点
步骤 6:快速移动到初始点(如果 G99 模态有效,该步骤被忽略)
图 7-1 固定循环操作步骤示意图
注意:
(1) 坐标位置是用 G90(绝对值)或用 G91(增量值)方式表示的。
(2) 退回点的选择,G98 表示退回至起始点;G99 表示退回至 R 点。若程序中未指定,则默认为 G98。
(3) 重复次数 K 。指定动作 1~动作 6 的重复次数。如省略时,视为执行1次。 (4) 自动切削循环指令都具有模态续效功能,所以在同一加工模式中,不需要在每个程序段都指定该指令。
(5) 固定循环指令执行完毕,不再继续使用时,应使用 G80 指令来取消固定循环,否则会产生语法报警。
(6) G90、G91 相对应的数据给出方式是不同的。如下图:
G90 (绝对值指令) G91 (增量值指令)
图 7-2 固定循环的绝对值指令及相对值指令
(7)当刀具到达孔底后,刀具返回到 R 点平面或初始位置平面,由 G98 和 G99 决定。
下图显示了指定 G98 或 G99 时的刀具移动情况。
一般情况下,G99 用于第一次钻孔,而 G98 用于最后钻孔。即使在 G99 方式中执行钻孔,初始位置平面也不变。
G98 (返回到初始平面) G99 (返回到 R 平面)
图 7-3 刀具返回位置
在后面介绍中使用下列符号,含义如下:
快速移动 G00 直线插补 G01
偏置 (快速移动 G00)
P 暂停
7.1 G73 高速深孔钻循环
该循环执行高速深孔钻。它执行间歇切削进给直到孔的底部, 同时从孔中排除切屑。 指令格式:
G73 X _ Y _ Z _ R _ Q_ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z :从 R 点至孔底距离。
R :从初始点至 R 点的距离。 Q :每次切削进给的切削深度。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G73 (G98) G73 (G99)
图 7-4 高速深空钻循环
如果 G99 模态有效,刀具返回终点为 R 点。Q 值指定每次切削进给的切削深度。设定值为正值。d 值由数控系统系统配置参数定义。 例如:
M3 S2000 主轴开始旋转
G90 G99 G73 X300. Y-250. Z-150. R-100.Q15. F120. 定位, 钻 1 孔, 然后返回到 R 点 Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面
7.2 G74 钻削循环,左旋攻丝
该循环执行左旋攻丝,在左旋攻丝循环中,当到达孔底时主轴顺时针旋转。 指令格式:
G74 X _ Y _ Z _ R _ P _ K__ F _ X ,Y :孔的定位位置X ,Y 数据; Z : 从R 点至孔底距离。 R :从初始点至R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省K 指令时,默认为1。
G74 (G98)
G99 (G99)
图 7-5 钻削循环,左旋攻丝
如果 G99 模态有效,刀具返回终点为R 点。
沿着X 和Y 轴定位以后,快速移动到R 点。从R 点到Z 点执行攻丝。当攻丝完成后,主轴停止并执行暂停,然后,主轴以相反方向旋转,刀具退回到R 点。然后,执行快速移动到初始位置。 例如:
M4 S100 主轴开始旋转
G90 G99 G74 X300. Y-250. Z-150.R-120.P100 F120. 定位, 攻丝 1 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 2 孔, 然后返回到 R 点 Y-750. 定位, 攻丝 3 孔, 然后返回到 R 点 X1000. 定位, 攻丝 4 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 攻丝 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.3 G80 固定循环撤销
G73、G74、G76、G81~G89 固定循环被取消。以后按通常的动作加工。Z 点、R 点被取消了,其他的孔加工数据也被取消了。
7.4 G81 钻削循环,定点镗孔
指令格式:
G81 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G81 (G98)
G81 (G99)
图 7-6 钻削循环,定点镗孔
例如:
M3 S2000 主轴开始旋转
G90 G99 G81 X300. Y-250. Z-150. 定位, 钻 1 孔, 然后返回到 R 点 R-100.F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻孔 4,然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.5 G82 钻削循环,平底锪孔
指令格式:
G82 X _ Y _ Z _ R _ P_ K__ F _ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G82 (G98)
G82 (G99)
图 6-7 钻削循环,平底锪孔
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S2000 主轴开始旋转
G90 G99 G82 X300. Y-250. Z-150. R-100. P1000 定位, 钻 1 孔, 然后返回到 R 点 F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M05 主轴停止旋转 M30 程序结束
7.6 G83 排屑钻孔循环
指令格式:
G83 X _ Y _ Z _ R _ Q __ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 Q :每次切削进给的切削深度。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G83 (G98)
G83 (G99)
图 7-8 排屑钻孔循环
如果 G99 模态有效,刀具返回终点为 R 点。Q 值指定每次切削进给的切削深度,设定值为正值。d 值由数控系统系统配置参数定义。 例如:
M3 S2000 主轴开始旋转
G90 G99 G83 X300. Y-250. Z-150. R-100.Q15. 定位, 钻 1 孔, 然后返回到 R 点 F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转 M30 程序结束
7.7 G84 攻丝循环
指令格式:
G84 X _ Y _ Z _ R _ P_ K__ F _ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G84 (G98)
G84 (G99)
图 7-9 攻丝循环
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S100 主轴开始旋转
G90 G99 G84 X300. Y-250. Z-150. R-120.P300 定位, 攻丝 1 孔, 然后返回到 R 点 F120 Y-550. 定位, 攻丝 2 孔, 然后返回到 R 点 Y-750. 定位, 攻丝 3 孔, 然后返回到 R 点 X1000. 定位, 攻丝 4 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 攻丝 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点
M5 M30
主轴停止旋转
7.8 G85 镗削循环
指令格式:
G85 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G85 (G98)
G85 (G99)
图 7-10 镗削循环(1)
如果 G99 模态有效,刀具返回终点为 R 点 例如:
M3 S100 主轴开始旋转
G90 G99 G85 X300. Y-250. Z-150. R-100.F120 定位, 镗 1 孔, 然后返回到 R 点 Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 镗 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.9 G86 镗削循环
指令格式:
G86 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G86 (G98)
G86 (G99)
图 7-11 镗削循环(2)
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S2000 主轴开始旋转
G90 G99 G86 X300. Y-250. Z-150. R-100.F120 定位, 镗 1 孔, 然后返回到 R 点 Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点
G98 Y-750.
G80
G28 G91 X0 Y0 Z0
M05
M30 定位, 镗 6 孔, 然后返回初始位置平面 固定循环撤消 返回到参考点 主轴停止旋转 程序结束
7.10 G89 镗削循环
指令格式:
G89 X _ Y _ Z _ R _ P __ K__ F_
X ,Y :孔的定位位置 X ,Y 数据;
Z : 从 R 点至孔底距离。
R :从初始点至 R 点的距离。
P :暂停时间,单位为毫秒。
F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G89 (G98) G89 (G99)
图 7-12 镗削循环(4)
如果 G99 模态有效,刀具返回终点为 R 点。
例如:
M3 S100 主轴开始旋转
G90 G99 G89 X300. Y-250. Z-150. R-120.P1000 定位, 镗 1孔, 然后返回到 R 点在孔底停止 F120 1秒
Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点
G98 Y-750. 定位, 镗 6 孔, 然后返回初始位置平面 G80 固定循环撤消
G28 G91 X0 Y0 Z0 返回到参考点
M05 主轴停止旋转
M30 程序结束
数控编程概述
3.1 一般加工程序的编制过程
在数控机床上加工零件, 首先要编制零件的加工程序, 然后才能加工。程序编制的一般步骤如图3-1 所示:
图3-1加工程序的编制过程
z 确定工艺过程:
根据图纸对零件的形状、技术条件、毛坯及工艺方案等进行详细分析,从而确定出需要的刀具,走刀路线,加工余量等。
z 计算运动轨迹的坐标:
根据零件的几何尺寸,走刀路线及设定的坐标系,计算各个运动轨迹的坐标值,诸如运动轨迹的起点与终点,圆弧的圆心等坐标尺寸。
z 编写加工程序代码:
根据计算出的运动轨迹坐标值和已确定的运动顺序、刀号、切削参数以及辅助动作,按照本系统规定的功能指令代码及程序段格式,逐段编写加工程序代码。
z 程序输入:
将加工程序代码输入到 CNC 系统中。 z 首件试加工:
编写的加工程序代码通过试加工来验证,并根据试加工的结果来修改程序代码,正确无误后正式加工。
3.1.2 程序构成
程序是由 F 代码、G 代码、M 代码、N 代码、S 代码等组成的程序段构成。这些程序段使刀具沿着直线或圆弧运动,或使主轴运动、停转。在程序中根据刀具的实际运动顺序书写这些程序段。程序的构成如图3-2
图3-2程序的构成
3.1.3 程序段
程序指令由字组成。字是带有数字的地址,该地址定义了伴随地址数字的含义。这些字被组合在一起形成了程序段。
一个程序段是由一个或多个组合在一行中的字构成。典型程序段由程序段号开始,程序段的格式定义了每个程序段中功能字的句法,如图3-3 所示。
图3-3程序段的构成
3.1.4 地址说明
地址规定了地址后数字的含义。一个地址可有多种含义。 地址 说明 A A轴(第四轴)绝对或相对坐标值 D 刀具半径补偿号 F 进给率 G 准备功能 I 圆弧圆心相对于圆弧起点之差在X 轴上的投影值 J 圆弧圆心相对于圆弧起点之差在Y 轴上的投影值 K 1、圆弧圆心相对于圆弧起点之差在Z 轴上的投影值
2、循环次数,用于固定循环(G73、G81、G82、G83、G84、G85、G86、G89)
L 子程序名 M 辅助功能 N 程序段号/顺序号 P 1、子程序重复
2、暂停时间,用于G04(单位:毫秒)
3、固定循环孔底暂停(G74、G82、G84、G89)
Q 固定循环用参数 R 1、指定圆弧半径
2、初始平面到R 点的距离,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
S 主轴速度功能 X 1、X 轴绝对或相对坐标值
2、暂停时间,用于G04(单位:秒)
3、孔定位点的X 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
Y 1、Y 轴绝对或相对坐标值
Z
2、孔定位点的Y 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
1、Z 轴绝对或相对坐标值 2、、孔定位点的Z 坐标,用于固定循环(G73、G74、G81、G82、G83、G84、G85、G86、G89)
3.1.5 程序段及重复参数
一个程序段代码位于独立一行。如果将两个程序段置于同一行上,则会导致严重的错误。 例如:在第一段代码中描述了从点 A 移动到点 B 的指令,第二段代码描述了从点 B 移动到点C 的指令,当把这两个程序段置于同一行上时,由于该程序段中重复指定轴字段导致该程序将不能够予以执行。如程序段“N100 G00 X13.0 Z3.0 X2.0 X9.5,”,系统会提示错误信息“X 轴指令数多于一个,编辑修改”。
3.1.6 主程序及子程序
当需要在不同的位置加工相同轨迹的图形时,这个图形可以被编成一个子程序,其文件名必须以字母“O”开头,扩展名为“.SUB”,中间以数字填充表示子程序的序号,例如“O100.SUB”。调用该子程序的程序称为主程序。
在主程序执行期间出现子程序执行指令时,就执行子程序的指令。当子程序执行完时,返回主程序继续执行。
3.2 刀具形状和刀具移动-刀具补偿功能 3.2.1 用刀具端部加工——刀具长度补偿功能
通常加工一个零件要用几把刀,而且每把刀具有不同的长度。每次更换刀具便要更换程
序或者要重写程序,这是相当麻烦的。因此预先测量将要使用的每把刀具的长度,然后把它们与标准刀具长度的差设定到 CNC 系统中,这样即使刀具改变了,也不需要更换程序就可实现加工。这个功能称为刀具长度补偿功能。
图3-5
刀具长度补偿功能
3.2.2 用刀具侧刃加工刀具——半径补偿功能
因为刀具有半径,所以刀具的中心轨迹相对于工件轮廓偏移了一个刀具半径的位置。 事先将刀具半径储存在 CNC 系统中,刀具可沿着加工零件轮廓偏离刀具半径的轨迹移动。该功能称为刀具半径补偿功能。
图 3-6 刀具半径补偿功能
第四章 准备功能
准备功能用字母 G 后面跟两位数字来编程。G 功能总是位于程序段的起始,用来定义
加工的几何形状以及 CNC 的工作状态, 如插补、刀具补偿、固定循环等。 G 代码分为下面两类
类型 意义 非模态 G 代码 G 代码只在出现的程序段中有效 模态 G 代码 在未指定同组其它的 G 代码之前,该 G 代码一直有效 例如:
G01 和 G00 是模态组 01 中的模态 G 代码。
4.1 G功能表
模态组 G 代码 功能
G00* 快速点定位 G01 直线插补
模态组 01
G02 顺时针圆弧插补 G03 逆时针圆弧插补
模态组 00 G04 暂停, 单位:秒或毫秒
G17* XY 铣削平面选择
模态组 02 G18 ZX 铣削平面选择
G19 YZ 铣削平面选择 G20 英制编程
模态组 04
G21* 公制编程 G28 返回机床参考点
模态组 00
G29 从机床参考点返回 G40* 撤消刀具半径补偿
模态组 05 G41 左边刀具半径补偿
G42 右边刀具半径补偿
模态组 06 G43 刀具偏置正向补偿
模态组 11
模态组 13
模态组 10
模态组 03 模态组 00 模态组 14 模态组 12
G44 G49* G53 G54* G55 G56 G57 G58 G59 G61* G64 G73 G74 G80* G81 G82 G83 G84 G85 G86 G89 G90* G91 G92 G94* G95 G98* G99 刀具偏置反向补偿 撤消刀具偏置补偿 选择机床基本坐标系 选择工件坐标系 1 选择工件坐标系 2 选择工件坐标系 3 选择工件坐标系 4 选择工件坐标系 5 选择工件坐标系 6 准停模式
连续切削模式 高速深孔钻循环 左旋攻丝循环 固定循环撤销 定点钻削 平底锪孔 排屑钻孔循环 攻丝循环 镗孔循环 镗孔循环 镗孔循环 绝对坐标编程 增量坐标编程 改变工件坐标系 每分进给 每转进给
固定循环返回到初始点 固定循环返回到 R 点
注意:
所谓模态, 即当该G 功能被编程后, 它们就能维持有效, 直至被同一组其它不相容的G 功能或 M02、M30 或" 紧急停" 、" 复位" 键撤消。
在 G 功能上标有"*"的指令, 是指开机时, 或执行过 M02 或 M30,或发生过" 紧急停", 或按" 复位" 键后, CNC 所具有的工作状态。
G00、G01、G02、G03 在同一程序段中是互斥的,即其中只能有一个代码可以出现。 G17、G18、G19 在同一程序段中是互斥的。 G40、G41、G42 在同一程序段中是互斥的。 G54-G59 在同一程序段中是互斥的。 G61、G64 在同一程序段中是互斥的。 G20、G21 在同一程序段中是互斥的。 G90、G91 在同一程序段中是互斥的。 G94、G95 在同一程序段中是互斥的。 G98、G99 在同一程序段中是互斥的。
G80-G89、G73、G74 在同一程序段中是互斥的。 G04、G28、G29、G92 在同一程序段中是互斥的。
除此以外, 所有其它的 G 功能都可以在同一个程序段中以任意次序编程。
4.2 插补功能 4.2.1 G00 点定位
指令格式:G00 X_ Y_ Z_ 其中,X_ Y_ Z_是指:
以绝对值指令编程时,终点的坐标值; 以增量方式编程时,刀具移动的距离。
指令 G00 将刀具以快速移动速度移动到用绝对值指令或增量值指令指定的工件坐标系中的位置。
G00 指令是按照每个轴单独设定的参数——快速进给速度执行的。 参数“快速定位时采用直线插补”决定了点定位的刀具轨迹:
(1) 非直线插补定位:刀具分别以每轴的快速移动速度,定位刀具轨迹一般不是直线。 (2) 直线插补定位:刀具轨迹与直线插补(G01) 相同,刀具以不超过每轴的快速移动速度在最短的时间内定位。
图 4-1 G00 点定位的方式
图4-2 中,刀具从当前起点位置先在 X 方向快速移动-13.245 mm,再在Y 方向快速
移动 10 mm 。
N100 G91 G00 X-13.245 Y10
图 4-2 G00 运动轨迹
注意:
G00 指令段中不需设定进给速度,进给速度在系统参数设置中设定。
G00 是模态的, 它与 G01、G02、G03 是不相容的, 编程时也可以写成 G0。 当编 G00 功能时, 不撤消在其之前所给定的 F 值,但该 F 值对 G00 的执行速度不起作用。也就是说, 当再其后的代码中编写 G01、G02、G03 时, 若不出现新的 F 值时, 前面所编入的最后一个 F 值自动起作用。
4.2.2 G01 直线插补
指令格式:G01 X_ Y_ Z_ F_ 其中,X_ Y_ Z_是:
以绝对值指令编程时,终点的坐标值; 以增量方式编程时,刀具移动的距离。
F_ 刀具的进给速度。
指令 G01 可将刀具按给定的进给速度沿直线运动到给定的坐标位置处,一般作为切削加工运动指令用。G01 既可以单坐标运动,又可以任意两坐标联动,也可以三坐标联动实现空间直线运动。
在 G01 后面所编的运动, 以所编的 F 进给率执行直线运动。当两轴同时运动时, 其合成轨迹是起点和终点之间的直线, 机床以所编的进给率 F 沿此直线轨迹运动。CNC 计算每个轴的进给率, 使合成轨迹的进给率等于所编的 F 值。
F 指定的进给速度在直到新的值被指定之前一直有效,因此无需对每个程序段都指定。 用 F 代码指令的进给速度是沿着直线轨迹测量的,如果 F 代码未指定,则CNC 系统会提示“运动段缺少 F 指令,编辑修改”。直到该代码文件中不含有错误,才能够被执行。
每个轴方向的进给速度如下: G01 Xα Yβ Zγ Ff;
X 轴方向的进给速度:
Y 轴方向的进给速度:
Z 轴方向的进给速度:
例 1:
图 4-3 中,刀具从当前位置在按 200 mm /min 的速度移动到距起点X -20.3,Y -10)(mm )(相对坐标)的位置。
N100 G91 G01 X-20.3 Y-10 F200
图 4-3 G01 直线插补(1)
例 2:
图 4.4 中,刀具从当前位置按 300 mm /min 的速度移动到工件坐标系中(Y20.3,Z10)(mm )(绝对坐标)的位置。 N200 G90 G01 Y20.3 Z10 F300
图 4-4 G01 直线插补(2)
注意:
在程序段中若哪个坐标值未出现,该坐标保持不动。
G01 是模态的, 并与 G00、G02、G03 不相容。编程时 G01 可写成 G1。
在开机时, 执行 M02、M30、 " 紧急停" 或" 复位" 后, CNC 确认为 G00 状态。
4.2.3 G02/G03 圆弧插补
G02 顺时针圆弧插补。 G03 逆时针圆弧插补。
在 G02/G03 将刀具以所编入的 F 进给率沿着圆弧轨迹移动。顺时针(G02)和逆时针(G03)与坐标轴的关系, 如图 4-5 所示。
G02/G03 指令以所编入的 F 进给率沿着圆弧轨迹移动刀具。它可在三个坐标平面(XY 、ZX 、YZ )内运动,由 G17、G18、G19 指令指定平面,详见“2.7.3 G17/G18/19 平面选择指令”。
图 4-5 圆弧走向定义
该指令可将刀具按给定的进给速度沿所需圆弧运动到给定的坐标位置处,一般作为切削
加工运动指令用。它可自动过象限。
编制圆弧程序时,应确定圆弧所在平面(G17~G19)、圆弧走向(G02/G03)、圆弧进给速度(F )、圆心相对于圆弧起点的坐标值(I 、J 、K ,如图4-6)或圆弧半径±R(圆弧弧度小于等于 180°时 R 为正,圆弧弧度大于 180°时 R 为负),在绝对方式下(G90) ,应确定圆弧终点的绝对坐标值(X 、Y 、Z );在增量方式(G91)下应确定圆弧终点相对于起点的坐标值(X 、Y 、Z )。
图 4-6 圆弧插补
指令格式:
项目 1 2
指 定 内 容 旋 转 方 向 终点 位置
绝对值 增量值
指令 G02 G03
X ,Y ,Z X ,Y ,Z
意义
顺时针方向圆弧插补 逆时针方向圆弧插补 终点坐标值 (G90)
终点相对于起点的坐标值 (G91)
圆心相对于圆弧起点之差在 X 轴上的投影值(带符号) 圆心相对于圆弧起点之差在 Y 轴上的投影值(带符号) 圆心相对于圆弧起点之差在 Z 轴上的投影值(带符号) 圆弧半径
圆弧切向进给速度
3
圆心相对于起点的距离
4
I J K
圆弧的半径 R 进给速度 F
例:
刀具在 XY 平面内,按照起点为当前位置(X20,Y20)、圆心相对于起点的坐标值(I0,J-10)、圆心终点绝对坐标值(X30,Y10)、圆弧插补速度 60 mm /min 的圆弧插补轨迹。如图 2.7 所示。
绝对方程编程:N100 G02 X30 Y10 I0 J-10 F60
增量方式和 R 指令编程:N100 G91 G02 X10 Y-10 R10 F60
图 4-7 圆弧运动轨迹
注意:
G90 和 G91 代码指定绝对值编程和相对值编程,它将影响所说明的坐标是绝对值坐标(相对于工件原点)还是相对值坐标(相对于当前刀具位置)。
圆弧插补的进给速度等于F 代码指定的进给速度,并且沿圆弧的进给速度(圆弧的切向进给速度)被控制为指定的进给速度。
G02 和 G03 都是模态的, 它们彼此不相容, 且都与 G00、G01互不相容。G02和G03可写成 G2/G3。
G17 平面圆弧用 X ,Y 与 I ,J 或 R 指定编程;G18 平面圆弧用 X ,Z 与 I ,K 或 R 指定编程;G19 平面圆弧用 Y ,Z 与 J ,K 或 R 指定编程。
在圆弧指令下,X 、Y 、Z 不能同段指定,I 、J 、K 不能同段指定。R 与 I 、J 、K 不能同段指定。要编写一整圆轨迹,则必须省略终点的坐标(或指定的终点坐标同起点一样),并且用I 、J 或 K 参数定义圆弧的圆心位置。这样就定义了一个终点和起点重合的 360 度圆弧。
圆弧半径值 R 可以被定义为正数或者负数。正的圆弧半径 R 将产生一小于等于 180 度的圆弧,而负的圆弧半径 R 将产生一大于等于 180 度的圆弧,如图 2.8 所示:
图 4-8带正/负号圆弧半径的圆弧插补
警告:如果代码中编入了一个终点同起点一样的圆弧,并且用 R 参数指定了该圆弧的半径,那么这将会得到一个点圆,即刀具在该点不运动。
当如果用 R 参数指定圆弧半径,并且其终点没有沿着由半径定义的圆弧时,这将导致出错:圆弧半径值设定不正确或终点偏差超出了容许范围。
例:
图 4-10 圆弧插补编程示例
上面的刀具轨迹编程如下
1 绝对值编程 G92X200.0 Y40.0 Z0;
G90 G03 X140.0 Y100.0R60.0 F300.; G02 X120.0 Y60.0R50.0; 或
G92X200.0 Y40.0Z0;
G90 G03 X140.0 Y100.0I-60.0 F300.; G02 X120.0 Y60.0I-50.0; 2 增量值编程
G91 G03 X-60.0 Y60.0 R60.0 F3000.; G02 X-20.0 Y-40.0 R50.0; 或
G91 G03 X-60.0 Y60.0 I-60.0 F300.; G02 X-20.0 Y-40.0 I-50.0;
4.3 进给功能
进给功能用于控制刀具的进给速度,进给功能有以下两种:
4.3.1 快速移动
用定位指令 G00 进行快速移动。各轴移动速度由系统参数决定,程序中无需指定F 值。
4.3.2 切削进给
刀具以程序中编制的切削进给速度移动。
在直线插补(G01)、圆弧插补(G02、G03)中用 F 代码后面的数值来指定刀具的进给速度。F 的单位为毫米/分钟(mm/min)或英寸/分钟(inch/min)。
4.3.2.1 切线速度控制
切削进给通常是控制切线方向的速度,使它能够始终达到指令的速度值。
直线插补 圆弧插补 F: 切线方向的速度 Fx: X轴方向的速度 Fy: Y轴方向的速度
4.3.2.2 G94 每分进给
在指定 G94(每分进给方式) 以后, 刀具每分钟的进给量由 F 所给定的数值指定。G94是模态代码。一旦指定,在 G95(每转进给)、M02、M30 指令, 或者" 紧急停", "复位" 被指定前一直有效。在电源接通时,每分种进给方式有效。
图 4-11 每分进给
4.3.2.3 G95 每转进给
在指定 G95 (每转进给) 之后, 在 F 的数值表示主轴每转一圈刀具的进给量。
4.3.2.4切削进给速度的限制
参数“最高速度限制” 设置各轴切削进给速度的上限值。
4.3.3 G04 暂停
指令格式:G04 X_ 或 P_
X_ 延时时间,单位:秒(s ) P_ 延时时间,单位:毫秒(ms )
指令 G04 指定暂停,机床不运动。按指定的时间延时执行下个程序段。 例如:N1010 G04 X20.3暂停 20.3 秒
N1010 G04 P203暂停 203 毫秒
G04、G28、G29不能在同一程序段中出现。 G04 也可简写成 G4。
4.3.4 G61/G64 控制运动的方式
指令格式:
G61 准停方式 G64 切削方式
G61/G64 控制系统的运动方式。在切削进给期间,如果在相邻两程序段之间的移动方向发生了改变,可能造成圆角轨迹,如图 2-12 所示。如果想消除该拐角处的圆弧,可加入准停方式指令 G61。
G61 是模态 G 代码,指定后一直有效,直到被 G64 取消。缺省为 G64。
图 4-12 两个程序段之间刀具轨迹
4.4 坐标值与尺寸
4.4.1 G20/G21 英制/公制转换
指令格式:
G20: 英寸输入 G21: 毫米输入
G20,G21 指令用来确定你将使用英寸还是毫米作为单位来说明坐标值,距离,半径等等。
G20,G21 指令用来确定输入数据的单位是英寸还是毫米,但对角度的数据输入没有影响,单位仍然保持为度。当 G20/G21 被指定之后,改变以下数值的单位制:
z 由 F 代码指令的进给速度 z 位置指令
z 在增量进给中的移动距离 例如:
N100 G21 G91 G00 X10.2 Y20.3
表示刀具快速移动到距起点(X10.2,Y20.3)(毫米)的位置。 例如:
N100 G20 G91 G00 X10.2 Y20.3
表示刀具快速移动到距起点(X10.2,Y20.3)(英寸)的位置。
该组指令具有模态续效性,缺省值为 G21。CNC 通电或者执行 M02、M30 指令或者" 紧急停" 、" 复位" 后, CNC 处于 G21 模式。
G20,G21 在同一个程序段中是不相容的。
G20,G21 指令必须位于程序的开头, 在设定坐标系之前,以单独程序段指定。
4.4.2 G90/G91 绝对/增量编程
坐标值可用绝对值 G90 方式表示,也可以用增量值 G91 方式表示。G90 或 G91 指令是控制其后的运动指令是以绝对方式还是增量方式编程。 指令格式:
G90: 绝对方式指令,编程终点的坐标值。 G91: 增量方式指令,编程刀具移动距离。
CNC 通电或者执行 M02、M30 指令或者" 紧急停" 、" 复位" 后, CNC 处于 G90 编程状态。
G90、G91 在同一个程序段中是不相容的。 例如: 如图4-13
图 4-13 G90/G91 绝对值/增量值编程
起点是 P0(X50 Y10)
绝对值编程: N10 G90 G01 X30 Y20 ; P0-P1
N20 X20 Y30 ; P1-P2
增量值编程: N10 G91 G01 X-20 Y10 ; P0-P1
N20 X-10 Y10 ; P1-P2
4.5 参考点
4.5.1 G28 返回参考点(非模态)
参考点是机床上的一个固定点,用参考点返回功能, 刀具可以容易地移动到该位置。G28指令各轴以快速移动速度经中间点返回到参考点,返回速度为 G00 快速定位速度。注意:它仅用于空行程。如图4-14所示。
指令格式:N10 G28 X_ Y _ Z_ 4th_;
X ,Y ,Z 和 4th 轴:中间点坐标值
4th 代表为第四轴,可以为 A 、B 和 C 轴中的一个。
图 4-14 G28 返回参考点
G28 后的这些坐标值可以是绝对的或相对的,由 G90,G91 决定。
为安全起见,在编写 G28 之前,应先取消刀具半径补偿以及刀具长度补偿。
4.5.2 G29 从参考点返回(非模态)
G29 实现从参考点经 G28 指定的中间点快速(G00 定位速度)返回到指定的目标点位置,如图2-15 所示。注意:此组指令只用于空行程。 指令格式:N10 G29 X_ Y_ Z_ 4th_;
X ,Y ,Z 和 4th 轴:目标点位置。
图 4-15 G29 从参考点返回
G29 后的这些坐标值可以是绝对的或相对的,由 G90,G91 决定。
例如:
G28 G90 X1000.0 Y500.0 ;从 A 经 B 到 R 的移动 (在参考点换刀) G29 X1300.0 Y200.0 ;从 R 经 B 到 C 的移动
图 4-16 返回参考点和从参考点返回
4.6.1 刀具半径补偿
在轮廓加工过程中,由于刀具总有一定的半径(对于铣削而言就是铣刀半径),刀具中
心的运动轨迹并不等于所需加工零件的实际轮廓。
为了达到被加工零件所要求的尺寸,必须计算出加上刀具半径后的刀具轨迹。在进行内轮廓加工时,刀具中心必须相对零件内轮廓偏移一个刀具半径;在进行外轮廓加工时,刀具中心必须相对零件外轮廓偏移一个刀具半径。这就是刀具半径补偿。
铣刀中心点和铣刀外缘切削面有一个铣刀半径的偏差,铣刀运动轨迹实际上是铣刀中心点的运动轨迹,而操作者一般按照零件图纸编程,这样编程轨迹与铣刀中心点运动轨迹也就有了一个铣刀半径的偏差。使用刀具半径补偿功能可以直接对零件轮廓编程,而不用考虑刀具的尺寸。CNC 根据零件轮廓和存放在刀具表中的刀具尺寸,自动计算刀具所走的轨迹。
用于刀具半径补偿的准备功能有三种: G40:刀具半径补偿撤消。
G41:左刀具半径补偿,刀具在零件的左边。如图 2-17 所示。 G42:右刀具半径补偿,刀具在零件的右边。如图 2-17 所示。
图 4-17 刀具半径补偿
4.6.1.1 G41/G42 刀具半径补偿
G41/G42 指令产生补偿矢量。与 G00/G01 配合使用,刀具补偿开始。
指令格式:G00 (或 G01) G41(或 G42) X_ Y_ Z_ D_
X 、Y 、Z: 轴移动指令
D: 刀具半径补偿号(D 代码) 注意:
(1) 刀具半径补偿的建立轨迹和撤销轨迹不允许是圆弧轨迹(即 G02,G03),若出现这种情况,系统会报告出错消息“半径补偿建立或撤销指定在非直线运动段中,删除修改。”。
(2) D 代码具有续效性,指定后一直有效,直到另一个 D 代码被指定为止。
补偿号由 2 位数字表示,紧跟在地址 D 后,例如:D03,表示 3 号半径补偿值。在本系统中,可设定 20 组铣刀半径补偿值(D01~D20)。D00 数值固定为 0,不能设置。
(3)刀具半径补偿值的改变
通常,刀具半径补偿值应在G40(刀具半径补偿取消)方式改变,即换刀时。如果在G41/G42 方式(偏置方式)中改变刀具半径补偿值,在程序段终点的矢量根据新刀具半径
补偿值计算,如图4-18 所示。
(4) 刀具半径补偿操作
G41 刀具半径补偿左侧偏移。
在 G00、G01 方式下,G41 D_ α_ β_ (α,β=X 、Y 、Z 中的任一个)指令会在终点产生一个与(α,β)方向相垂直的补偿矢量,刀具从起点运动到该矢量的顶点。这个补偿矢量沿着编程运动方向看过去偏向左边,如图4-19 所示。
图 4-19 G41 刀具半径补偿左侧偏移
G42 刀具半径补偿右侧偏移。
由 G42 形成的矢量方向与 G41 的相反。如图 4-20 所示。
4.6.1.2 G40 指令格式:G00 (或 G40
图 4-21 G40 刀具半径补偿撤消
注意:
加工结束时,必须取消半径补偿,否则系统会提示错误信息“刀具半径未被取消, 编辑 G40 指令。”。
G40、G41、G42 指令具有模态续效性,缺省值为 G40。 在 G02、G03 方式下使用 G40 指令是非法的。
示例:
G90 G92 X0 Y0 Z0
N1 G17 G00 G41 D07 X250.0 Y550.0 N2 G01 Y900.0 F150 N3 X450.0
N4 G03 X500.0 Y1150.0 R650.0 N5 G02 X900.0 R-250.0
N6 G03 X950.0 Y900.0 R650.0 N7 G01 X1150.0 N8 Y550.0
N9 X700.0 Y650.0 N10 X250.0 Y550.0 N11 G00 G40 X0 Y0
指定绝对坐标值。刀具定位在(X0,Y0,Z0) 开始刀具半径补偿(起刀)。D07 预设为 15。 从 P1 到 P2 加工。 从 P2 到 P3 加工。 从 P3 到 P4 加工。 从 P4 到 P5 加工。 从 P5 到 P6 加工。 从 P6 到 P7 加工。 从 P7 到 P8 加工。 从 P8 到 P9 加工。 从 P9 到 P1 加工。
取消偏置方式。刀具返回到开始位置
N12 M30
(X0,Y0,Z0)。 程序结束
4.6.1.3 加工轮廓内外尖角过渡(刀具半径补偿 C 功能)
除了刀具半径偏移外,刀具半径补偿还能够在零件廓形的非光滑过渡的拐角处,自动进行尖角过渡处理。
刀具半径补偿 C 功能,能在拐角处采用尖角折线型过渡。程序针对各种常规零件廓形的内、外拐角组合形式--直线与直线、直线与圆弧、圆弧与直线、圆弧与圆弧--完成刀具半径偏移及尖角的折线型过渡。
如图4-22,当两段程序指令建立的刀具轨迹的夹角超过 180°时,称该轨迹为“内侧”。当夹角在 0 和 180°之间时,称为“外侧”。
图 4-22 刀具轨迹的内外侧
一、起刀时的刀具移动
围绕拐角内侧的刀具移动(α≥180°)
直线-直线 直线-圆弧
类型
直线-直线
围绕钝角拐角外侧的刀具移动(90°≤α
直线-圆弧
1 2
类型
围绕锐角拐角外侧的刀具移动(α
直线-直线
直线-圆弧
1
2
围绕小于 1°锐角拐角外侧的刀具移动(α
二、在偏置方式中
围绕拐角内侧的刀具移动(α≥180°)
直线-直线
直线-圆弧
圆弧-直线
圆弧-圆弧
α
围绕钝角拐角外侧的刀具移动(90°≤α
直线-直线 直线-圆弧
圆弧-直线
圆弧-圆弧
围绕锐角拐角外侧的刀具移动(α
直线-直线
直线-圆弧
圆弧-直线
圆弧-圆弧
还有圆弧到直线,直线到圆弧和圆弧到圆弧的情况,以同样的方法处理。
注意:
(1) 没有内交点
如果刀具半径补偿值足够小,补偿后形成的两个圆弧刀具中心轨迹相交在一点P 。 如果刀具半径补偿值太大,有可能得不到交点 P 。在下面的例子中,当指定的刀具补偿值足够小时,沿圆弧 A 和 B 的刀具中心轨迹相交在 P 。如果指定了一个过大的值,这个交点可能得不到。
图 2-23 围绕锐角拐角外侧的刀具移动(α
(2) 有内交点的刀心轨迹
直线-直线
圆弧-直线
圆弧-直线
圆弧-圆弧
(3) 没有内交点的刀心轨迹
当用 G41和 G42 在程序段 A 到程序段 B 中改变偏置方向时,如果不要求偏置轨迹的交点,则在程序段 B 的起点产生垂直于程序段 B 的矢量。
直线-直线
直线-圆弧
(4) 刀具轨迹的长度大于圆的周长
能产生这种情况。但是,当 G41和G42 改变时,或当用地址 I 、J 和 K 指令 G40时,这个情况就可能出现。在这种情况下,圆心角大于 360 的圆,不执行刀具半径补偿,形成 P1到 P2的圆弧,如图4-23 所示。在这种情况下,当程序运行到该代码段时显示出错信息“刀具补偿过切”,则程序无法继续执行。如执行大于一周的圆,必须分段指定。
图 4-23 刀具轨迹的长度大于圆的周长
三、偏置取消方式中的刀具移动
围绕拐角内侧的刀具移动(α≥180°)
直线-直线 圆弧-直线
围绕钝角拐角外侧的刀具移动(90°≤α
类
型
直线-直线
圆弧-直线
1
2
围绕锐角拐角外侧的刀具移动(α
类型
直线-直线
圆弧-直线
1
2
围绕小于 1°锐角拐角外侧的刀具移动(α
4.6.2 刀具长度偏置 4.6.2.1 G43/G44 刀具偏置
当实际使用时的刀具长度不同于编程时的刀具长度时,可通过 H 代码选择刀具长度的偏置量,无需修改程序代码。G43 和 G44 用来确定偏置方向,H 代码指定偏置量。 指令格式:G43(或 G44)X_(Y_ 或 Z_)H_
G43:正向偏置 G44:向偏置 X_(Y_ 或 Z_):选择轴的地址 H: 刀具长度偏置值的地址
当指定 G43 时,用 H 代码指定的刀具长度偏置值加到在程序中由指令指定的终点位置坐标值上;当指定 G44 时,从终点位置减去补偿值,补偿后的坐标值表示补偿后的终点位置,而不管当前处于绝对编程方式还是增量编程方式。
G43 和 G44 是模态代码,一旦被指定,一直有效,直到指定同组的 G 代码为止。 偏置号由 2 位数字表示,紧跟在 H 指令后,例如:H03 表示 3 号刀具偏置值。 偏置号 0(H00)的刀具长度偏置值固定为 0,不能对 H00 设置。4.6.2.2 G49 撤消刀具偏置
G49 指定之后,系统立即取消刀具长度偏置。指令格式:G49 X_(Y_或 Z_) 例如:
N10 G91 G01 G43 X10 H01 G43 Y5 H02 F300;对 X 、Y 坐标建立正向偏置 H01、H02 N20 G49 X10 ;撤消 X 坐标偏置 N30 X5 G49 Y5 ;撤消 Y 坐标偏置
图 4-24 刀具偏置撤消
注意:
z 程序结束时各坐标必须处于刀具偏置撤消状态。
z G43、G44、G49 指令具有模态续效性,缺省值为 G49。 示例:
图 4-25 刀具偏置
H1=-4.0 刀具长度偏置值 N1 G91 G00 X120.0 Y80.0
N2 G43 Z-32.0 H1 N3 G01 Z-21.0 F1000 N4 G04 P2000 N5 G00 Z21.0 N6 X30.0 Y-50.0 N7 G01 Z-41.0 N8 G00 Z41.0 N9 X50.0 Y30.0 N10 G01 Z-25.0 N11 G04 P2000 N12 G00 G49 Z57.0 N13 X-200.0 Y-60.0
N14 M02
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14)
4.6.3 刀具偏置与刀具半径补偿功能的区别
刀具偏置功能是对各个坐标进行的加减偏置处理。刀具半径补偿功能则是在同一平面内根据编程轨迹和刀具半径量生成刀具中心轨迹。
4.7 坐标系
4.7.1 G53 选择机床坐标系(非模态)
机床上的一个用作加工基准的特定点称为机床坐标系原点,也称为机床零点。机床制造厂对每台机床设置机床零点。
以机床零点作为原点设置的坐标系称为机床坐标系。
在机床通电之后,执行手动返回参考点,各轴均返回参考点后,机床坐标系建立,机床坐标系一旦设定就始终保持不变,直到电源被断开为止。 指令格式:(G90)G53 X_ Y _ Z_ 4th_
X,Y ,Z,4th :绝对方式编程,终点的坐标值。
G53 是非模态 G 代码。即 G53 指令仅在被指定的程序段有效。 G53 指令必须用绝对值指定,增量值为非法。 在指定 G53 指令之前,必须设置机床坐标系。 例如:
N10 G00 G90 G53 X5 Y10
控制刀具快速进给到机床坐标系中 X =5 mm,Y =10 mm 的位置,如图2-27 所示。
图 4-26机床坐标系
4.7.2 工件坐标系
工件加工时使用的坐标系称作工件坐标系。工件坐标系由CNC 预先设置(设置工件坐标系) 。
加工程序设定工件坐标系(工件坐标系选择)。已设定的工件坐标系可以通过移动它的原点来改变(改变工件坐标系)。参见“KT620Mi 数控系统操作说明书”第一章“设定工件坐标系”部分介绍。
4.7.2.1 G54~G59 选择工件坐标系
根据不同的工件可用这些指令来选择不同的坐标系。运用G54~G59最多可以选用6个坐标系
G54 选择#1 工件坐标系 G55 选择#2 工件坐标系 G56 选择#3 工件坐标系 G57 选择#4 工件坐标系
G58 选择#5 工件坐标系 G59 选择#6 工件坐标系 用这样的方法设置坐标系,可以将零点设定在工件的一个固定的位置上,从而使得这个工件的编程变的很简单。用相同的 G 指令程序段,只改变参考点就能够加工 6 个不同的工件。 例如:
图 4-28 选择工件坐标系示例
注意:
工件坐标系是在通电后执行了返回参考点操作后建立的。
G54~G59 用于选择(而非建立)不同的坐标系。在用这些指令选择 6 个坐标系前必须先把它们建立好。
该组指令是模态代码,当没有指定同组的代码之前,原先指定的代码一直保持有效。在未给定该组中的代码时,G54 有效(通电时自动选择 G54 坐标系)。
4.7.2.2 G92 改变工件坐标系(非模态)
G92 使工件坐标系(用代码 G54-G59 选择) 移动,从而设定新的工件坐标系,使得刀具位置与指定的坐标值一致。坐标系偏移量加到所有工件零点偏置值上,这意味着所有工件坐标系移动相同的量。 指令格式:(G90)G92 X_ Y _ Z_ 4th_
X 、Y 、Z 、4th :必须为绝对尺寸字。
4th 代表为第四轴,可以为 A 、B 和 C 轴中的一个 G92 指令必须单独一行指定。 当工件零点偏移值设定后,用 G92 设定坐标系时,该坐标系不受工件零点偏置值影响。例如当指令“G92X100Y80”时, 刀具当前位置为 X=100,Y=8 的坐标系被指定。 例如:
刀具当前点为 P0(X80 Y10) ,刀具运动轨迹如图4-29 所示。
图4-29
编程代码如下:
N100 G90 G01 X50 Y20
N110 X10
或使用 G92, 编程代码如下:
N90 G92 X0 Y20; P0 点原工件坐标系下坐标(80,10)变成新工件坐标系下的坐标(0,20) N100 G90 X-30 Y30 N110 X-70
4.7.3 G17/G18/G19 平面选择
对圆弧插补,刀具半径补偿和用 G 代码的钻孔指令需要选择平面。 指令格式:
G17: 选择 XY 平面 G18: 选择 ZX 平面 G19: 选择 YZ 平面 G17,G18,G19 指令具有模态续效性,缺省值为 G17,即当电源接通或 CNC 复位后,默认选择 G17(XY 平面)。
移动指令(G00,G01)与平面选择无关。 对圆弧插补指令通常需指定选择平面指令。 如: G17 G02 X5.2 Y-7.0 R3.3 F500
4.8 G98/G99 返回点平面
G98/G99 对固定循环指令(G73, G74, G81, G82, G83, G84, G85 和 G89)的运动位置有影响。
G98:指定固定循环返回到初始点; G99:指定固定循环返回到 R 点。 缺省方式是 G98。
一般情况下 G99 用于第一次钻孔,而 G98 用于最后钻孔。指定 G98 或 G99 时,刀具移动如图2-30 所示。
G98 (返回到初始平面) G99 (返回到 R 平面)
图 4-30
第五章 S 主轴速度功能
用 S 指令及紧跟其后的数字指定主轴转速,单位为 rpm(转/分钟)。 S 指令具有模态续效性。
主轴速度受系统参数“主轴最大速度”限制。当程序中编入的主轴速度值超过该参数设定
值时,系统报错。 例如:
S2000 (设置主轴的速度为 2000RPM)
第六章 M 辅助功能
辅助功能是控制机床开关功能的指令,如主轴启动、主轴停止、冷却液开/关等,辅助
功能指令用地址 M 及其后面 2 位数字组成。
同一程序段中最多可出现三组 M 指令。
M 代码数值范围从 M00 至 M99,下述 M 代码具有特殊的功能:
M 代码 功 能
M00 程序停止 M01 选择性程序停止 M02 程序结束 M03 主轴正转 M04 主轴反转 M05 主轴停止 M20 程序结束,自动循环 M30 程序结束并返回程序起始 M98 调用子程序 M99 子程序返回
6.1 M00程序停
在包含 M00代码的程序段执行完后, 自动运行停止,但模态信息全部被保存,在按下
启动键后,系统继续执行后面的程序。
M00指令和暂停键功能的不同之处在于前者用于程序需要计划暂停的场合,而后者在程序运行的任何时侯都可以使用。
6.2 M01程序条件停
此指令的功能和 M00 基本相同,但只有在系统的" 选择停" 按钮被按下时 M01 才有效,程序执行完该指令自动停止;若" 选择停" 按钮处于抬起状态时,则 M01 将不予以执行。
6.3 M02程序结束
M02 代码表明程序结束, 并执行 CNC 的总复位功能, 使系统回到初始状态。该指令通常置于加工主程序的最末一段。
当程序执行完 M02 指令时,程序执行指针不会自动回到程序的首行,仍旧停留在 M02程序段上。按下“复位”键后程序执行指针回到程序的首行。
该指令之后的代码被全部忽略。
6.4 M20程序结束且自动循环
M20代码表示加工程序结束后,又自动从程序起始处循环执行。该指令通常置于加工主程序的最末一段该指令之后的代码被全部忽略。
6.5 M30程序结束且返回到程序开始
M30 指令置于程序最后一段,表示程序结束。与 M02 指令的不同之处是 M30 指令执行完毕后,程序执行指针会自动回到程序的首行,故程序结束大多使用 M30。
该指令之后的代码被全部忽略。
6.6 M03启动主轴顺时针旋转
M03 指令启动主轴正转,即从主轴上方向工作台方向看,主轴顺时针方向转动。如图6-1所示。
6.7 M04启动主轴逆时针旋转
M04 指令启动主轴反转,即从主轴上方向工作台方向看,主轴逆时针方向转动。如图6-1所示。
图 6-1
6.8 M05 主轴停止
M05 指令停止主轴。
程序执行完 M05 指令,主轴停止,此指令用于下列情况: (1)程序结束前。
(2)主轴正、反转之间的转换,须加入此指令,先使主轴停止,再指定反向指令,以免伺服马达受损。
6.9 M98、M99 子程序调用/返回
指令 M98 调用子程序,当子程序运行完则继续执行其后的代码。 指令格式:M98 P___L___
P :子程序调用次数。如果调用 1 次,程序代码中也要写明 P1。 L :子程序号
指令 M99 是子程序返回指令,它必须在子程序文件中的最后一个程序段,程序执行到此将返回主程序继续执行主程序。
子程序文件名格式为字母‘O’加上子程序号,加上后缀字符“.SUB”。 例如:
N100 M98 L500 P3 N110 G00 X0 Z0 N200 M02
子程序 O500.SUB 内容: %O500
N100 G01 X10 Z20 F100
N110 G04 X5 N120 M99
例子中程序在 N100 段处调用文件名为 O500.SUB 的子程序。子程序执行到 N120 段后返回,共调用 3 次,然后返回主程序 N110 段继续往下执行。
当主程序调用子程序时,它被认定为一级子程序。子程序允许嵌套,即子程序中允许再调用子程序,嵌套级数不大于 8 级。
当 L 字指定的子程序文件不存在时,CNC 提示错误信息“子程序载入错误,文件不存在或者已损坏”。
第七章 固定循环
固定循环使编程人员的编程工作变得更加容易。用固定循环,频繁使用的加工操作便可以在单程序段中实现,如果没有固定循环,通常要多个程序段才能够完成相同的功能。另外固定循环能缩短程序,减少代码的输入工作,提高效率。
本系统有供钻削、镗孔加工等使用的固定循环方式: 指令 钻削(-Z 方在孔底的动作 回退(+Z 方向)用途
向)
G73 间歇进给 快速移动 高速深孔钻循环 G74 切削进给 主轴停止→主轴切削进给 左旋攻丝循环 G80 取消固定循环 G81 切削进给 快速移动 钻孔循环,点钻循环 G82 切削进给 停刀 快速移动 钻孔循环,平底锪孔 G83 间歇进给 快速移动 排屑钻孔循环 G84 切削进给 主轴停止→主轴切削进给 右旋攻丝循环 G85 切削进给 切削进给 镗孔循环 G86 切削进给 主轴停止 快速移动 镗孔循环 G89 切削进给 停刀 切削进给 镗孔循环 机床配备主轴启停、转向控制接口电路时,G74、G84、G86 指令才有效。 本组指令是模态 G 代码,缺省值为 G80。Z (Y 或 X ),R ,P 和 F 值一经指定,若非重新指定,在后面程序段中将继续有效。
工作进给速度由 F 代码指定;暂停延时时间由 P 代码指定。 一般说来,固定循环由六个步骤按顺序执行,如图 5-1 所示。 步骤 1:定位 X 轴和 Y 轴 步骤 2:快速移动到 R 点 步骤 3:孔加工
步骤 4:在孔底的动作 步骤 5:返回到 R 点
步骤 6:快速移动到初始点(如果 G99 模态有效,该步骤被忽略)
图 7-1 固定循环操作步骤示意图
注意:
(1) 坐标位置是用 G90(绝对值)或用 G91(增量值)方式表示的。
(2) 退回点的选择,G98 表示退回至起始点;G99 表示退回至 R 点。若程序中未指定,则默认为 G98。
(3) 重复次数 K 。指定动作 1~动作 6 的重复次数。如省略时,视为执行1次。 (4) 自动切削循环指令都具有模态续效功能,所以在同一加工模式中,不需要在每个程序段都指定该指令。
(5) 固定循环指令执行完毕,不再继续使用时,应使用 G80 指令来取消固定循环,否则会产生语法报警。
(6) G90、G91 相对应的数据给出方式是不同的。如下图:
G90 (绝对值指令) G91 (增量值指令)
图 7-2 固定循环的绝对值指令及相对值指令
(7)当刀具到达孔底后,刀具返回到 R 点平面或初始位置平面,由 G98 和 G99 决定。
下图显示了指定 G98 或 G99 时的刀具移动情况。
一般情况下,G99 用于第一次钻孔,而 G98 用于最后钻孔。即使在 G99 方式中执行钻孔,初始位置平面也不变。
G98 (返回到初始平面) G99 (返回到 R 平面)
图 7-3 刀具返回位置
在后面介绍中使用下列符号,含义如下:
快速移动 G00 直线插补 G01
偏置 (快速移动 G00)
P 暂停
7.1 G73 高速深孔钻循环
该循环执行高速深孔钻。它执行间歇切削进给直到孔的底部, 同时从孔中排除切屑。 指令格式:
G73 X _ Y _ Z _ R _ Q_ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z :从 R 点至孔底距离。
R :从初始点至 R 点的距离。 Q :每次切削进给的切削深度。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G73 (G98) G73 (G99)
图 7-4 高速深空钻循环
如果 G99 模态有效,刀具返回终点为 R 点。Q 值指定每次切削进给的切削深度。设定值为正值。d 值由数控系统系统配置参数定义。 例如:
M3 S2000 主轴开始旋转
G90 G99 G73 X300. Y-250. Z-150. R-100.Q15. F120. 定位, 钻 1 孔, 然后返回到 R 点 Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面
7.2 G74 钻削循环,左旋攻丝
该循环执行左旋攻丝,在左旋攻丝循环中,当到达孔底时主轴顺时针旋转。 指令格式:
G74 X _ Y _ Z _ R _ P _ K__ F _ X ,Y :孔的定位位置X ,Y 数据; Z : 从R 点至孔底距离。 R :从初始点至R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省K 指令时,默认为1。
G74 (G98)
G99 (G99)
图 7-5 钻削循环,左旋攻丝
如果 G99 模态有效,刀具返回终点为R 点。
沿着X 和Y 轴定位以后,快速移动到R 点。从R 点到Z 点执行攻丝。当攻丝完成后,主轴停止并执行暂停,然后,主轴以相反方向旋转,刀具退回到R 点。然后,执行快速移动到初始位置。 例如:
M4 S100 主轴开始旋转
G90 G99 G74 X300. Y-250. Z-150.R-120.P100 F120. 定位, 攻丝 1 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 2 孔, 然后返回到 R 点 Y-750. 定位, 攻丝 3 孔, 然后返回到 R 点 X1000. 定位, 攻丝 4 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 攻丝 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.3 G80 固定循环撤销
G73、G74、G76、G81~G89 固定循环被取消。以后按通常的动作加工。Z 点、R 点被取消了,其他的孔加工数据也被取消了。
7.4 G81 钻削循环,定点镗孔
指令格式:
G81 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G81 (G98)
G81 (G99)
图 7-6 钻削循环,定点镗孔
例如:
M3 S2000 主轴开始旋转
G90 G99 G81 X300. Y-250. Z-150. 定位, 钻 1 孔, 然后返回到 R 点 R-100.F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻孔 4,然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.5 G82 钻削循环,平底锪孔
指令格式:
G82 X _ Y _ Z _ R _ P_ K__ F _ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G82 (G98)
G82 (G99)
图 6-7 钻削循环,平底锪孔
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S2000 主轴开始旋转
G90 G99 G82 X300. Y-250. Z-150. R-100. P1000 定位, 钻 1 孔, 然后返回到 R 点 F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550. 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M05 主轴停止旋转 M30 程序结束
7.6 G83 排屑钻孔循环
指令格式:
G83 X _ Y _ Z _ R _ Q __ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 Q :每次切削进给的切削深度。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G83 (G98)
G83 (G99)
图 7-8 排屑钻孔循环
如果 G99 模态有效,刀具返回终点为 R 点。Q 值指定每次切削进给的切削深度,设定值为正值。d 值由数控系统系统配置参数定义。 例如:
M3 S2000 主轴开始旋转
G90 G99 G83 X300. Y-250. Z-150. R-100.Q15. 定位, 钻 1 孔, 然后返回到 R 点 F120. Y-550. 定位, 钻 2 孔, 然后返回到 R 点 Y-750. 定位, 钻 3 孔, 然后返回到 R 点 X1000. 定位, 钻 4 孔, 然后返回到 R 点 Y-550 定位, 钻 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 钻 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转 M30 程序结束
7.7 G84 攻丝循环
指令格式:
G84 X _ Y _ Z _ R _ P_ K__ F _ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 P :暂停时间,单位为毫秒。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G84 (G98)
G84 (G99)
图 7-9 攻丝循环
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S100 主轴开始旋转
G90 G99 G84 X300. Y-250. Z-150. R-120.P300 定位, 攻丝 1 孔, 然后返回到 R 点 F120 Y-550. 定位, 攻丝 2 孔, 然后返回到 R 点 Y-750. 定位, 攻丝 3 孔, 然后返回到 R 点 X1000. 定位, 攻丝 4 孔, 然后返回到 R 点 Y-550. 定位, 攻丝 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 攻丝 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点
M5 M30
主轴停止旋转
7.8 G85 镗削循环
指令格式:
G85 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G85 (G98)
G85 (G99)
图 7-10 镗削循环(1)
如果 G99 模态有效,刀具返回终点为 R 点 例如:
M3 S100 主轴开始旋转
G90 G99 G85 X300. Y-250. Z-150. R-100.F120 定位, 镗 1 孔, 然后返回到 R 点 Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点 G98 Y-750. 定位, 镗 6 孔, 然后返回初始位置平面 G80 固定循环撤消 G28 G91 X0 Y0 Z0 返回到参考点 M5 主轴停止旋转
M30
7.9 G86 镗削循环
指令格式:
G86 X _ Y _ Z _ R _ K__ F_ X ,Y :孔的定位位置 X ,Y 数据; Z : 从 R 点至孔底距离。 R :从初始点至 R 点的距离。 F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G86 (G98)
G86 (G99)
图 7-11 镗削循环(2)
如果 G99 模态有效,刀具返回终点为 R 点。 例如:
M3 S2000 主轴开始旋转
G90 G99 G86 X300. Y-250. Z-150. R-100.F120 定位, 镗 1 孔, 然后返回到 R 点 Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点
G98 Y-750.
G80
G28 G91 X0 Y0 Z0
M05
M30 定位, 镗 6 孔, 然后返回初始位置平面 固定循环撤消 返回到参考点 主轴停止旋转 程序结束
7.10 G89 镗削循环
指令格式:
G89 X _ Y _ Z _ R _ P __ K__ F_
X ,Y :孔的定位位置 X ,Y 数据;
Z : 从 R 点至孔底距离。
R :从初始点至 R 点的距离。
P :暂停时间,单位为毫秒。
F :切削进给速度。
K :重复循环次数,缺省 K 指令时,默认为 1。
G89 (G98) G89 (G99)
图 7-12 镗削循环(4)
如果 G99 模态有效,刀具返回终点为 R 点。
例如:
M3 S100 主轴开始旋转
G90 G99 G89 X300. Y-250. Z-150. R-120.P1000 定位, 镗 1孔, 然后返回到 R 点在孔底停止 F120 1秒
Y-550. 定位, 镗 2 孔, 然后返回到 R 点 Y-750. 定位, 镗 3 孔, 然后返回到 R 点 X1000. 定位, 镗 4 孔, 然后返回到 R 点 Y-550. 定位, 镗 5 孔, 然后返回到 R 点
G98 Y-750. 定位, 镗 6 孔, 然后返回初始位置平面 G80 固定循环撤消
G28 G91 X0 Y0 Z0 返回到参考点
M05 主轴停止旋转
M30 程序结束