第 2章 零件程序的编制
2.1 概 述
数控机床是严格按照从外部输入的程序来自动地对被
加工工件进行加工的 。 为了与数控系统的的内部程序 ( 系
统软件 ) 及自动编程用的零件源程序相区别, 我们把从外
部输入的直接用于加工的程序称为数控加工程序 。 它是数
控机床的应用软件 。
2.1.1 数控机床程序编制的内容和步骤
a,明确加工目的,确定工艺参数
b,算基点与节点
c,按规定的程序格式,逐条写程序
d,程序输入, 键盘、接口
e,程序校验首件试切,
● 空刀运动
● 用笔代刀
● 大批量生产(试切一件)
● 三维动态显示
好的编程人员,要熟悉
a,机床结构、性能
b,数控系统
c,加工工艺
※ 充分发挥数控系统的功能和数控机床本身的能力
2.1.2数控机床编程的方法
● 手工编程 手工编程时间:加工时间 =30,1
● 自动编程
2.2 数控机床编程的基础知识
为了满足设计, 制造, 维修和普及的需要, 在输入代
码, 坐标系统, 加工指令, 辅助功能及程序格式方面, 国
际上已形成了两个通用的标准
ISO—International Standard Organization
EIA—Electronic Industries Association
2.2.1 程序结构与格式
N3 G00 X10 Z10 M03 S650;
( 1) 程序段号,查找, 跳转 注意, 程序段标号与程
序的执行顺序无关, 不管有无括号, 程序都是按排列的先
后次序执行 。
( 2)结束符, ;,LF,*
( 3)程序段中的主体部分:主体部分包含了各种控制信息
和数据
2.2.2、功能字
( 1)准备功能字 G代码, G00~ G99共 100种。
G代码(使机床做某种操作的指令):
● 模态代码一旦执行就保持有效,直到同组另一代码出现
● 非模态代码只有在其它所在的程序段内有效
(2) 坐标字(尺寸字)
X Y Z U V W I J K
有, +”,-”之分,“+”可以省略
(3) 进给功能字 F,F是指各坐标方向速度的矢量和
G95 F500 0.5mm/r
G94 F200 200mm/min
(4)主轴转速功能字 S,
(4) 主轴转速功能字 S,规定主轴转速,S300 300r/min
(5) 刀具功能字 T,T03 = T3
(6) 辅助功能字 (M功能 )
M00~ M99, 分模态与非模态
● 辅助功能代码与坐标代码同时执行 G00 M08
● 坐标移动指令之前执行 M代码 。, 前置, G00 M03
● 反之, 后置, G00 M02
M00,程序停止 M01,可选择 stop
M02,全段程序停止, M30, 程序停止,指针指向程序头
(7) 刀具偏置字 ( D和 H )
G42 D01
2.3, 坐标轴
2.3.1 坐标轴, 直角笛卡尔坐标轴 注意右手定正负
无论那一种数控机床都规定 Z轴作为平行于主轴中心线的
坐标轴
注意刀具相对静止工件运动的原则
2.3.2 坐标系
机床的坐标原点在机床上某一点, 是固定不变的, 机床出厂已
确定 。 机床的换刀点, 托板的交换刀, ? 这些点在机床上都是固定

( 1) 机床坐标系
( 2) 工件坐标系:程序编制人员在编制时使用的, 在这个坐标
系内编程可以简化坐标计算, 减少错误, 缩短程序长度 。
G90
G92 x- y-
在实际的加工中,操作者在机床上装好工件之后要测量该工件
坐标系的原点和基本机床坐标系原点的距离,并把测得的距离在数
控系统中预先设定,这个设定值叫工件零点偏置 。
有些数控系统把选用机床坐标系的指令设定为 G54— G59,它
是模态代码 。 需要指出的是,现代机床一般既可用预置寄存的方法
定坐标系,CRT/MDI(Cathode – reytube/man data input)手工输入方法
设置加工坐标系 。
例 P14 T2—9
G53 非续效代码,只有在 G90状态下才有效, G54续效代码
G28 X0 Y0, X0,Y0是返回的中间点
2.4 常用编程指令
在数控机床加工中,常用 G,M,T、和 S指令来控制
各种加操作 G00~ G99 M00~ M99
插补,根据某段轮廓线(曲线或直线)的端点坐标值把
该轮廓线细分许多小段,根据加工精度不同,每小段的长
度可以是几微米到几毫米。
2.4.1 快速定位方式,G00 G00X_Y_Z_;不能由程序改
变,但可用倍率开关改变。不同的系统有不同的速度,一
般都在 10~ 30m/min之间
2.4.2 直线插补方式, G01 G90 or G01 X_Y_Z_F_;
2.4.3 圆弧插补方式,G02 G03
( xy) G17 or (xz) G18 or (yz) G19 G02 X_Y_I_J_F;
G03
还有 R方式, θ≦ 180° R 为正 θ> 180° R 为负
有些系统不能用 R编程,如果圆弧的起点和终
点相同,由于数控系统无法用确定圆弧的中心位
置,只能用 I,J,K确定圆心的方式来编程
2.4.3切削螺旋指令 G33(模态)
eg.(T2-18 P24)
2.4.4 刀具长度偏置指令
G43,G44,G49,(模态)
G43 H_Z_; G44 H_Z_; ( 正向偏置,负向偏置)
2.4.5 刀具半径补偿指令
数控系统绝大都具有刀具半径补偿功能,为程序编制提供了
方便。当编制零件加工的程序时不需要计算刀具中心运动轨迹,
而只需按零件轮廓编程。在控制面板上用( CRT/MDI)方式,
人工输入刀具半径值,数控系统便能自动的计算出刀具中心的偏
移向量。
刀具位于工件左侧(假设工件不动) G41 D01
刀具位于工件右侧(假设工件不动) G42 D01
刀具半径补偿的建立,只能在 G00或 G01方式下完成,不能
G02,G03在或其他曲线插补方式下进行,刀具半径补偿一旦建
立,在没被取消之前一直有效,编程曲线永远是铣刀回转圆的包
络线。
刀具半径补偿的建立和取消过程
刀具半径补偿分为 A,B类和 C类
A,B类,只是能实现在本程序段内的刀具补偿,而对于程序段间
的过渡不予处理。只有 B补偿功能的数控系统,在编程时,除了
零件轮廓各程序段之外,还应考虑尖角过渡。
C类( C机能),可以自动地尖角过渡,只要给出零件轮廓的程序
数据,数控系统能自动地进行拐角处的刀具轨迹交点的计算。因
此,刀具半径补偿 C功能可用于内、外拐角轮廓的加工,而且在
程序中不考虑尖角过渡。分为 伸长型、插入型、缩短型插补
注意,现代数控系统可以先读入几段甚至全部加工程序,进行分
析,在加工之前就能处理完各程序段之间的连接情况和走刀路线。
刀具补偿过程的轨迹分三个组成部分:
● 形成刀具补偿的建立补偿程序段
● 零件轮廓切削程序段
● 补偿撤消程序段
2.5 子程序和固定循环
2.5.1 子程序的格式
O * * * * 子程序
……….,子程序主体
……….,
M99;子程序结束指令
M98 P* * * *L,子程序调用,L为次数 注意,在子
程序中,如果控制系统在读到 M99以前读到 M02或
M30,则程序停止。
2.5.2 固定循环
1,镗削循环的工艺路线
2,镗削循环程序
格式, ● G85 X~Y ~Z~R~F ~L,无暂停,工退 L:次数。
● G89 X~Y ~Z~R~P ~ F ~L,延时,工退
● G86:镗削循环,主轴停止,快退,
G86, X~Y ~Z~P ~ R~F ~L
● G88,镗削循环,主轴停止,手动停止
G88, X~Y ~Z~ R ~ P ~F ~L
● G76,精镗循环,主轴停止,让刀,快退
G76 X~Y ~Z~I ~ J (Q)~ R ~ P ~F ~L
● G87, 反镗循环
G87, X~Y ~Z~I ~ J ~ R ~F ~
● G81,钻孔循环、不延时、快退
G81, X~Y ~Z~R~F ~L
● G82:钻孔循环、延时、快退
G82, X~Y ~Z~P ~ R~F ~L
● G83,深孔往复排屑钻孔循环、不延时、快退
G83, X~Y ~Z~ R~Q ~ F ~L
● G73,深孔往复排屑钻孔循环、延时、快退
G73, X~Y ~Z~ R ~ Q ~ P~F ~L
内螺纹攻螺丝程序
● G84:右旋螺丝攻螺纹程序
G84,X~Y ~Z~P ~ R~F ~L
● G74:左旋螺丝攻螺纹程序 G74,X~Y ~Z~P ~
~F ~L
2.6 数控车床程序编制的基础
数控车床按其功能分为简易数控车床、经济型数控车床多功
能数控车床和车削中心等,它们在功能上差很大。
2.6,1 数控车床的主要功能
● 简易数控车床
这是一种低档数控车床,一般用单板机或单片机进行控制。
单板机不能存储程序,所以切断一次电源就得重新输入程序,且
抗干扰能力差,不便于扩展功能,目前已很少采用。单片机可以
存储程序,它的程序可以使用可变程序格式,这种车床没有刀尖
圆半径自动补偿功能,编程时计算比较繁琐。
● 经济型数控车床
这是中档数控车床,一般具有单色显示的 CRT,程序储存和
编辑功能。它的缺点是没有恒线速度切削功能,刀尖圆弧半径自
动补偿不是它的基本功能,而属于选择功能范围。
( n=1000υ/πd )
.
● 多功能数控车床
这是指较高档次的数控车床,这类机床一般具备刀
尖圆弧半径自动补偿、恒线速度切削、倒角、固定循环、
螺纹切削、图形显示、用户宏程序等功能。
● 车削中心
车削中心的主体是数控车床,配有刀库和机械手,
与数控车床单机相比:自动选择和使用的刀具数量大大
增加,卧式车削中心还具备如下两种功能:一是动力刀
具功能,即刀架上某一刀位或所有刀具可使用回转刀具,
如铣刀和钻头;另一种是 C轴位置控制功能 (分度,低速
回转),该功能主轴能达到很高的角度定位分辨率(一般
0.001° ),还能使主轴和卡盘按进给脉冲作任意低速的
回转,这样车床就具有 X,Z和 C三坐标,可实现三坐标两
联动控制。近年出现的双轴车削中心,在一个主轴进行
加工结束后,无需停机,零件被转移至另一主轴加工另
一端,加工完毕后,零件除了去毛刺以外,不需要 其它
的补充加工。
2.6.2 工艺装备特点
对刀具的要求:
● 刀具结构, 数控车床应尽可能使用机夹刀。由于机
夹刀在数控车床上安装时,一般不采用垫片调整刀尖高
度,所以刀尖高的精度在制造时就应得到保证。对于长
径比较大的内径刀杆,应具有良好的抗震结构。
● 刀具强度、耐用度,数控车床能兼作粗精车削,
为使粗车能大切深、大走刀,要求粗车刀具强度高、耐
用度好;精车则保证加工精度,所以要求刀具锋利、精
度高、耐用度好。
● 刀片断屑槽, 数控车床一般在封闭环境中进行,
要求刀具具有良好的断屑性能,断屑范围要宽,一般采
用三维断屑槽,其形式很多,选择时应根据零件的材料
及精度要求来确定。
2.7 数控车床的程序编制
车与铣大同小异,基本指令的意义是相同的,但由
于二者在切削原理上存在着差异,因此,数控车床在编
程方面有自己的特点。
本节着重介绍配置 FANUC-0TJ数控系统进行车削加工
所特有的程序编制方法。
2.7.1 F功能
1、在 G95码状态下,F后面的数值表示的是主轴每转的切
削进给量或切螺纹的螺距,在数控车床上这种进给量指
令使用的较多。
例如,G95 F0.5 表示进给量 0.5mm/r
G95 F1.0 表示进给量 1.0mm/r
2、在 G94码状态下,表示每分钟进给量。
例如,G94 F200 表示进给量 200mm/min
2.7.2 S功能
1、主轴最高转速限制 (G50)
编程格式,G50 S~例如,G50 S1800 表示最高转速
为 1800r/min
2、恒线速度控制 (G96)
指令格式,G96 S~ 例如,G96 S150 表示控制主轴
转速,使切削点的线速度始终保持在 150m/min
由线速度 υ 可求得主轴转速如下:
n=1000υ/ ( πd )
所示的切削零件,为保持 A,B,C各点的线速度一致,则
在每点的主轴转速分别为:
nA = 1000× 150/( π × 40) = 1193 r/min
nB = 1000× 150/( π × 60) = 795 r/min
nC = 1000× 150/( π × 70) = 682 r/min
上述主轴转速的变化是由数控系统自动控制的。
3、恒线速度取消 (G97)
编程格式,G97 S~
例如,G97 S1000 表示主轴转速为 1000r/min。
当由 G96转为 G97时,应对 S码赋值,未指令时将保
留 G96指令的最终值。当由 G97转为 G96时,若没有 S指
令,则按前一 G96所赋 S值
进行恒线速度控制。
2.7.3 G功能
1、加工坐标系设定
加工坐标系有两种设定方法。一种是以 G50方式,另
一种是以 G54 ~ G59的方式,G50是车削中常用的方式。
如图 3-6所示,用 G50 X128.7 Z375.1设定了加工坐标系,
2.刀尖圆弧自动补偿功能
通常在编程时都将车刀刀尖作为一点考虑的,
即所谓假设刀尖。但实际上刀尖是有圆角的 (如图 )按刀
尖点编出的程序在进行端面、外径、内径等与轴线平行
的表面加工时,是没有误差的,但在进行倒角、锥面及
圆弧切削时,则会产生少切或过切现象 (如图),具有
刀尖圆弧半径自动补偿功能的数控系统能根据刀尖圆弧
半径计算出补偿量,自动控制刀尖的运动以避免上述现
象的产生。
为了进行刀尖圆弧半径补偿,需要使用以下指令:
G40,取消刀具补偿,G41,左偏刀具补偿,G42,右偏刀
具补偿,
3.单一固定循环
利用单一固定循环可以将一系列连续的动作, 如, 切入 -切削 -
退刀 -返回,, 用一个循环指令完成, 从而使程序简化 。
例如,图 按一般写法, 程序应写为:
N10 G00 X50
N20 G01 Z-30 F~
N30 X65.0
N40 G00 Z2
但用固定循环语句只要下面一句就可以了,
G90 X50 Z-30 F~
(1) 圆柱或圆锥切削循环 (G90)
圆柱切削循环指令编程格式为,
G90 X ( U ) ~ Z ( W ) ~ F~
循环过程 如图 所示 。 X,Z为圆柱面切削终点坐标值, U、
W为圆柱面柱切削终点相对循环起点的坐标分量 。
圆锥切削循环指令编程格式为,
G90 X ( U ) ~ Z ( W ) ~ I~ F~
循环过程 如图 所示,I为
圆锥面切削始点与切削终点
的半径差。图中 X轴 向切削
始点坐标小于切削终点坐标,
I的数值为负;如果 I为正,则相反。
( 2)端面切削循环
G94
格式 G94 X ( U ) Z ( W ) F~
3.复合型固定循环( G70~ G76)
在使用 G90,G92,G94时,已经使程序简化了一些,但还有
一类被称为复合型固定循环的代码,能使程序进一步得到简化。使
用这些复合型固定循环时,只需指令精加工的形状,就可以完成从
粗加工到精加工的全部过程。
( 1) 外圆粗切削循环( G71)
G71 U (△ d ) R (e)
G71 P(ns) Q(nf) U(△ u) W(△ w) F(f) S(s) T(t)
式中 △ d——背吃刀量,吃刀深度
e——退刀量,提刀量
ns——精加工形状程
序段中的开始程序段号;
nf——精加工形状程
序段中的结束程序段号;
△ u——X轴方向精加工
余量;
△ w——Z轴方向精加工
余量;
f,s,t——F,S,T代码。
在此应注意以下几点:
● 使用 G71进行粗加工循环时,只有含在 G71程序段中的
F,S,T功能才有效而含在 ns nf程序段中的 F,S,T功
能即使被指定对粗循环也无效;
● A B之间必须符合 X轴,Z轴方向的共同单调增大或
减少的模式;
● 可以进行刀具补偿。
例 在图中,试按图示尺寸编写粗车循环加工程序。
O0001
N10 G50 X200 Z140 T0101
N20 G90 G40 G97 G95 S240 M03
N30 G00 G42D01 X120 Z12 M08
N40 G96 S120
N50 G71 U2 R0.1
N60 G71 P70 Q130 U2 W2 F0.3
N70 G00 X40
N80 G01 Z-30 F0.15 S150
N90 X60 Z-60
N100 Z-80
N110 X100 Z-90
N120 Z-110
N130 X-120 Z-130
N140 G00 X125 G40
N150 X200 Z140
N160 M02
( 2) 端面粗加工循环 (G72) G72与 G71均为粗加工循环
指令,而 G72是沿着平行于 X轴进行切削循环加工的,
编程格式为
G72 U (△ d ) R(e)
G72 P (ns) Q(nf) U(△ u) W(△ w) F(f) S(s) T(t)
( 3) 封闭切削循环 (G73) 所谓封闭切削循环就是按一定
的切削形状逐渐地接近最终形状。这种方式对于铸造或
锻造毛坯的切削是一种效率很高的方法。 G73循环方式如
图 所示。
编程方式
G73 U(i) W(k) R(d)
G73 P (ns) Q(nf) U(△ u) W(△ w) F(f) S(s) T(t)
式中 i——X轴上总退刀量(半径值);
k——Z轴上的总退刀量;
d——重复加工次数;
执行 G73功能时,每一刀的加工路线的轨迹形状是相
同的只是位置不同,每走完一刀就把加工轨迹向工件方
向移动一个位置。
(4)精加工循环( G70) 由 G71,G72完成粗加工后,可
以用 G70进行精加工。编程格式 G70 P (ns) Q(nf) 其中 ns
和 nf与前述含义相同。在这里 G71,G72,G73程序段中
的 F,S,T指令都无效,只有 ns-nf在程序段中 F,S,T
才有效,以下 图 的程序为例,在 N130程序段之后再加上:
N140 G70 P70 Q130
就完成从粗加工到精加工全过程。
例 程序为
N10 G50 X200 Z200 T0101
N20 G90 G97 G40 S200 M03
N30 G00 G42 X140 Z40 M08
N40 G96 S120
N50 G73 U9.5 W9.5 R3
N60 G73 P70 Q130 U1.0
W0.5 F0.3
N70 G00 X20 Z0 (ns)
N80 G01 Z-20 F0.15 S150
N90 X40 Z-30
N100 Z-50
N110 G02 X80 Z-70 R20
N120 G01 X100 Z-80
N130 X105 (nf)
N140 G00 X200 Z200 G40
N150 M02
精加工循环 (G70) 由 G71,G72完成粗加工后, 可以用 G70精加
工 。
编程格式 G70 P(ns) Q(nf), 其中 ns和 nf与前述含义相同 。
在这里 G71,G72,G73程序段中的 F,S,T的指令都无效,
只有在 ns-nf程序中的 F,S,T才有效, 以上图的程序为例, 在 N130
程序段之后再加上:
N140 G70 P70 Q130
就可以完成从粗加工到精加工的全过程 。
(5) 外径切槽循环 (G75) 其编程格式
G75 R(e)
G75 X(u) P(△ i) F(f)
式中 e——退刀量
u——槽深
△ i——每次循环切削量
f——进给量
例 切槽(切断)程序为
N10 G50 X200 Z200 T0505
N20 G90 G97 S700 M03
N30 G00 G40 X35 Z-50 M08 上冷却液
N40 G96 S80
N50 G75 R1
N60 G75 X-1 P5 F0.15 此槽超过槽深中心线
N70 G00 X200 Z200 T0500
N80 M02
5.螺纹切削
(1) 螺纹切削 (G32) 用 G32指令进行螺纹切削时需要指出
终点坐标值及螺纹导程 F(单位 mm)。编程格式为:
G32 X (U) ~ Z (W) ~ F~
其中,X (U)省略时为圆柱螺纹切削,Z (W)省略时为端
面螺纹切削,X (U),Z (W)都不省略为锥螺纹切削。 螺
纹切削应注意在两端设置足够的升速进刀段和降速退刀
段。 G32指令可以执行单行程螺纹切削,车刀进给运动严
格根据输入的螺纹导程进行。
例 图 3-32圆柱螺纹加工的程序 (F =4mm,δ1 =3mm,δ2 =1.5mm)
……
N100 G00 U-62
N110 G32 W-74.5 F4 δ1 +δ2 + 螺纹总长度 = 74.5mm
N130 G00 U62
N140 W74.5
N150 U-64
N160 G32 W-74.5
N170 G00 U64
N180 W74.5
(2)螺纹切削循环 (G92)
利用 G92,可以将螺纹切削过程中,
从始点出发“切入 -切螺纹 -让刀 -返回始点”的 4个动作作为一个循
环用一个程序段指令。与前面的单一固定循环 G90用法相同,只是
F后边的进给量改为螺距值即可。
编程格式 G92 X (U) ~ Z (W) ~ I~
N50 G50 X270 Z260
N60 G90 G97 S300
N70 T0101 M03
N80 G00 X35 Z104 先走到螺纹加工循环起点处,编程者定
N90 G92 X29.2 Z56 F1.5
N100 X28.6
N110 X28.2
N120 X28.04
N130 G00 X270 Z260 T0100 M05
N140 M02
从这里可以看出,螺纹的总切深 t=(30-28.04)÷ 2 =1.96÷ 2 =0.9
(3) 复合螺纹切削循环 (G76) 用 G76时一段指令就可以完成复
合螺纹切削循环加工程序。
编程格式 G76 P(m)(r)(a) Q(△ dmin) R(d)
G76 X (U) Z (W) R(i) P(k) Q(△ d) F(f)
式中 m——精加工最终重复次数;
r——倒角量;
α——刀尖的角度,可以选择 80°, 60°, 55°, 30°,
29°, 0° 六种,其角度数值用 2位数指定;
△ dmin——最小切入量;
d——精加工余量;
X (U) Z (W)——终点坐标;
i——螺纹部分半径差 (i=0时为圆柱螺纹 );
k——螺牙的高度 (用半径值指令 X轴方向的距离 );
(根据 GB192~ 197-81国标规定,普通螺纹的牙型理论高度 H
=0.866P,实际高度 h=0.6495P,P为螺纹螺距 )
△ d——第一次的切入量 (用半径值指定 );
f——螺纹的导程 (与螺纹切削时相同 );
螺纹切削方式 如图
本章小结,
本章是本课程的重点章节,必须熟练掌握数控
编程的基本知识,能够编制一般复杂程度工件的
数控程序。
● 数控程序的编制过程就是把工件加工所需的
数据和信息,编写成加工程序;
● 一个完整的加工程序有程序号、程序的内容
和程序结束三部分组成。程序段由程序字组成,
程序字由地址符、正负号和数字组成;
● 熟记常用的准备功能 G代码和 M代码格式和含
义;
● 熟记刀具半径补偿和刀具长度补偿;
● 了解线段和线段、线段和圆弧转接的方法;
● 数控编程过程中工件坐标系的含义和制定;
● 数控编程要考虑比较广泛的工艺问题。
作业:
1.简述数控编程的内容和步骤。
2.说明数控车床和铣床刀具半径补偿的意。
3.说明数控车床加工过程中恒切速的意义,何时考虑使
用恒切速?
4.什么是模态代码和非模态代码,举例之。