第三章 数控系统的加工控制原理
第一节 数控装置的工作过程
CNC装置的工作是在硬件的支持下执行软件的过程。
下面简要说明 CNC装置的工作情况。
一,程序输入
将编写好的数控加工程序输入给 CNC装置的方式有:
纸带阅读机输入、键盘输入、磁盘输入、通讯接口输入及连接
上一级计算机的 DNC(Direct Numerical Control)接口输入。
CNC装置在输入过程中还要完成校验和代码转换等工作,
输入的全部信息都放到 CNC装置的内部存储器中。
返回课件首页
二、译码
在输入的工件加工程序中含有工件的轮廓信息(起点、
终点、直线、圆弧等)、加工速度( F代码)及其它辅
助功能( M,S,T)信息等,译码程序以一个程序段
为单位,按一定规则将这些信息翻译成计算机内部能
识别的数据形式,并以约定的格式存放在指定的内存
区间。
三、数据处理
数据处理程序一般包括刀具半径补偿、速度计算以及
辅助功能处理。
刀具半径补偿是把零件轮廓轨迹转化成刀具中心轨迹,
编程员只需按零件轮廓轨迹编程,减轻了工作量。
速度计算是解决该加工程序段以什么样的速度运动
的问题 。 编程所给的进给速度是合成速度, 速度计算
是根据合成速度来计算各坐标运动方向的分速度 。 另
外对机床允许的最低速度和最高速度的限制进行判断
并处理 。
辅助功能诸如换刀, 主轴启停, 切削液开关等一些
开关量信号也在此程序中处理 。 辅助功能处理的主要
工作是识别标志, 在程序执行时发出信号, 让机床相
应部件执行这些动作 。
四, 插补
插补的任务是通过插补计算程序在已知有限信息的
基础上进行“数据点的密化”工作,即在起点和终点
之间插入一些中间点。
五, 位置控制
它的主要任务是在每个采样周期内, 将插补计算的
理论位置与实际反馈位置相比较, 用其差值去控制进
给电动机, 进而控制工作台或刀具的位移 。
六, 输入 /输出 ( I/O) 处理控制
I/O处理主要处理 CNC系统和机床之间的来往信号
的输入和输出控制 。
七, 显示
CNC系统的显示主要是为操作者提供方便,通常有:
零件程序显示、参数设置、刀具位置显示、机床状态
显示、报警显示、刀具加工轨迹动态模拟显示以及在
线编程时的图形显示等
八, 诊断
主要是指 CNC系统利用内装诊断程序进行自诊断,
主要有启动诊断和在线诊断 。
启动诊断是指 CNC系统每次从通电开始进入正常的
运行准备状态中, 系统相应的内诊断程序通过扫描自
动检查系统硬件, 软件及有关外设是否正常 。 只有当
检查的每个项目都确认正确无误之后, 整个系统才能
进入正常的准备状态 。 否则, CNC系统将通过报警方
式指出故障的信息, 此时, 启动诊断过程不能结束,
系统不能投入运行 。
在线诊断程序是指在系统处于正常运行状态中,由
系统相应的内装诊断程序,通过定时中断周期扫描检
查 CNC系统本身以及各外设。只要系统不停电,在线
诊断就不会停止。
第一节 插补原理
一, 概述
在数控加工中, 一般已知运动轨迹的起点坐标,
终点坐标和曲线方程, 如何使切削加工运动沿着预定
轨迹移动呢? 数控系统根据这些信息实时地计算出各
个中间点的坐标, 通常把这个过程称为, 插补, 。
插补实质上是根据有限的信息完成, 数据点的密化,
工作 。
加工各种形状的零件轮廓时, 必须控制刀具相对
工件以给定的速度沿指定的路径运动, 即控制各坐标
轴依某一规律协调运动, 这一功能为插补功能 。
平面曲线的运动轨迹需要两个运动来协调;
空间曲线或立体曲面则要求三个以上的坐标产生协
调运动。
插补工作可由硬件逻辑电路或执行软件程序来完成,
在 CNC系统中, 插补工作一般由软件完成, 软件插补
结构简单, 灵活易变, 可靠性好 。
目前普遍应用的两类插补方法为基准脉冲插补和
数据采样插补 。
( 一 ) 基准脉冲插补
基准脉冲插补又称脉冲增量插补, 这类插补算法
是以脉冲形式输出, 每插补运算一次, 最多给每一轴
一个进给脉冲 。 把每次插补运算产生的指令脉冲输出
到伺服系统, 以驱动工作台运动, 每发出一个脉冲,
工作台移动一个基本长度单位, 也叫脉冲当量, 脉冲
当量是脉冲分配的基本单位 。
( 二 ) 数据采样插补
数据采样插补又称时间增量插补, 这类算法插补结
果输出的不是脉冲, 而是标准二进制数 。 根据程编进
给速度, 把轮廓曲线按插补周期将其分割为一系列微
小直线段, 然后将这些微小直线段对应的位置增量数
据进行输出, 以控制伺服系统实现坐标轴的进给 。
插补计算是计算机数控系统中实时性很强的一项
工作, 为了提高计算速度, 缩短计算时间, 按以下三
种结构方式进行改进 。
1,采用软 /硬件结合的两级插补方案 。
2,采用多 CPU的分布式处理方案 。
3,采用单台高性能微型计算机方案 。
二, 基准脉冲插补
(一 ) 逐点比较法
加工图 3-1所示圆弧 AB,如果刀具在起始点 A,假
设让刀具先从 A点沿- Y方向走一步, 刀具处在圆内 1点 。
为使刀具逼近圆弧, 同时又向终点移动, 需沿+ X方向
走一步, 刀具到达 2点, 仍位于圆弧内, 需再沿+ X方
向走一步, 到达圆弧外 3点, 然后再沿- Y方向走一步,
如此继续移动, 走到终点 。
Y Y
A
3
1 2 E
2 3
B
O X O 1 X
图 3-1 圆弧插补轨迹 图 3-2 直线插补轨迹
加工图 3-2所示直线 OE也一样, 先从 O点沿+ X向
进给一步, 刀具到达直线下方的 1点, 为逼近直线, 第
二步应沿+ Y方向移动, 到达直线上方的 2点, 再沿+ X
向进给, 直到终点 。
所谓逐点比较法, 就是每走一步都要和给定轨迹比
较一次, 根据比较结果来决定下一步的进给方向, 使
刀具向减小偏差的方向并趋向终点移动, 刀具所走的
轨迹应该和给定轨迹非常相, 象, 。
终点判别
结束
Y
N
偏差判别
开始
坐标进给
y
x
2
E ( 4,3 )
O
1 3 4
1
2
3
给
偏差计算
1,插补原理
一般来说,逐点比较法插补过程可按以下四个步骤进行:
图 3-3 逐点比较法工作循环图
偏差判别:根据刀具当前位置, 确定进给方向 。
坐标进给:使加工点向给定轨迹趋进, 即向减少误 差
方向移动 。
偏差计算:计算新加工点与给定轨迹之间的偏差,
作为下一步判别依据 。
终点判别:判断是否到达终点, 若到达, 结束插补;
否则, 继续以上四个步骤 ( 如图 3-3所示 ) 。
2,直线插补
图 3-4所示第一象限直线 OE,起点 O为坐标原点,
用户编程时, 给出直线的终点坐标 E( Xe,Ye), 直线
方程为
XeY- XYe= 0 (3-1)
直线 OE 为给定轨迹, P( X,Y) 为动点坐标, 动
点与直线的位置关系有三种情况:动点在直线上方,
直线上, 直线下方 。
( 1) 若 P1点在直线上方, 则有 Y
XeY- XYe>0 E(Xe,Ye)
( 2) 若 P点在直线上, 则有 P1
XeY- XYe= 0
( 3) 若 P2点在直线下方, 则有 P (X,Y)
XeY- XYe<0 P2
O X
因此, 可以构造偏差函数为 图 3-4 动点与直线位置关系
(3-2)
ee XYYXF ??
eiiei YXYXF ??
对于第一象限直线,其偏差符号与进给方向的关系为
F= 0时,表示动点在 OE上,如点 P,可向+ X向进给,也可
向+ Y向进给。
F>0时,表示动点在 OE上方,如点 P1,应向+ X向进给。
F<0时,表示动点在 OE下方,如点 P2,应向+ Y向进给。
这里规定动点在直线上时,可归入 F>0的情况一同考虑。
插补工作从起点开始,走一步,算一步,判别一次,再走
一步,当沿两个坐标方向走的步数分别等于 Xe和 Ye时,停止插
补。
下面将 F的运算采用递推算法予以简化,动点 Pi(Xi,Yi)的
Fi值为
ei
eeiie
eiie
eiiei
YF
YYXYX
YXYX
YXYXF
??
???
???
?? ???
)1(
111
eii YFF ??? 1
ei
eeiie
eiie
eiiei
XF
XYXYX
YXYX
YXYXF
??
???
???
?? ???
)1(
111
若 Fi≥0,表明 Pi(Xi,Yi)点在 OE直线上方或在直线上,应沿
+ X向走一步,假设坐标值的单位为脉冲当量,走步后新
的坐标值为( Xi+1,Yi+1),且 Xi+1=Xi+1,Yi+1=Yi,新点偏差
为
即 (3-3)
若 Fi<0,表明 Pi( Xi,Yi)点在 OE 的下方,应向
+ Y方向进给一步,新点坐标值为 (Xi+1,Yi+1),且
Xi+1=Xi,Yi+1= Yi+ 1,新点的偏差为
即 (3-4)
开始加工时, 将刀具移到起点, 刀具正好处于直线
上, 偏差为零, 即 F= 0,根据这一点偏差可求出新一
点偏差, 随着加工的进行, 每一新加工点的偏差都可
由前一点偏差和终点坐标相加或相减得到 。
在插补计算, 进给的同时还要进行终点判别 。 常
用终点判别方法, 是设置一个长度计数器, 从直线的
起点走到终点, 刀具沿 X轴应走的步数为 X e,沿 Y轴走
的步数为 Ye,计数器中存入 X和 Y两坐标进给步数总和 ∑
= ∣ Xe∣ + ∣ Ye∣, 当 X或 Y坐标进给时, 计数长度减
一, 当计数长度减到零时, 即 ∑= 0时, 停止插补, 到
达终点 。
eii XFF ??? 1
例 3-1 加工第一象限直线 OE,如图 3-5所示, 起点为坐
标原点, 终点坐标为 E( 4,3) 。 试用逐点比较法对该
段直线进行插补, 并画出插补轨迹 。
图 3-5 直线插补轨迹过程实例
Y
X 2
E (4,3 )
O
1 3 4
1
2
3
表 3-1 直线插补运算过程
序号 偏差判别 坐标进给 偏差计算 终点判别
起点
0
0
?F
∑ =7
1 F
0
=0 +X
3
01
????
e
YFF
∑ =6
2 F
1
<0 +Y
1
12
???
e
XFF
∑ =5
3 F
2
>0 +X
2
23
????
e
YFF
∑ =4
4 F
3
<0 +Y
2
34
???
e
XFF
∑ =3
5 F
3
> 0 +X
1
45
????
e
YFF
∑ =2
6 F
5
<0 +Y
3
56
???
e
XFF
∑ =1
7 F
6
>0 +X
0
67
???
e
YFF
∑ =0
3,四象限的直线插补
假设有第三象限直线 OE′(图 3-6),起点坐标在原
点 O,终点坐标为 E′(- Xe,- Ye),在第一象限有一
条和它对称于原点的直线,其终点坐标为 E( Xe,Ye),
按第一象限直线进行插补时,从 O点开始把沿 X轴正向
进给改为 X轴负向进给,沿 Y轴正向改为 Y轴负向进给,
这时实际插补出的就是第三象限直线,其偏差计算公
式与第一象限直线的偏差计算公式相同,仅仅是进给
方向不同,输出驱动,应使 X和 Y轴电机反向旋转。
图 3-6 第三象限直线插补
Y
X
E (X
e
,Y
e
)
)
O
E ′ ( - X
e
,- Y
e
)
四个象限直线的偏差符号和插补进给方向如图 3-7所示,
用 L1,L2,L3,L4分别表示第 Ⅰ, Ⅱ, Ⅲ, Ⅳ 象限的直线。
为适用于四个象限直线插补,插补运算时用 ∣ X∣, ∣ Y∣
代替 X,Y,偏差符号确定可将其转化到第一象限,动点与
直线的位置关系按第一象限判别方式进行判别。
由图 3-7可见,靠近 Y轴区域偏差大于零,靠近 X轴区
域偏差小于零。 F≥0时,进给都是沿 X轴,不管是+ X向还
是- X向,X的绝对值增大; F<0时,进给都是沿 Y轴,不
论+ Y向还是- Y向,Y的绝对值增大。
图 3-8为四象限直线插补流程图。
y
x
L1
F ? 0
L2
L3
F ? 0
F ? 0 F ? 0
L4
F< 0
F< 0
F< 0
F< 0
图 3-7 四象限直线偏差符号和进给方向
开始
初始化 |Xe|,
|Ye|
∑ = |Xe|+ |Ye|
F≥ 0
F← F- ∣ Ye∣
沿 Xe向走一步
∑= 0
F← F+ ∣ Xe∣
沿 Ye向走一步
结束
∑ = ∑ -1
图 3-7 四象限直线偏差符号和进给方向
222 RYXF ???
4,圆弧插补
在圆弧加工过程中,可用动点到圆心的距离来描述刀具位置与
被加工圆弧之间关系。设圆弧圆心在坐标原点,已知圆弧起点 A
( Xa,Ya),终点 B( Xb,Yb),圆弧半径为 R。加工点可能在三种
情况出现,即圆弧上、圆弧外、圆弧内。当动点 P( X,Y)位于圆
弧上时有
X2+ Y2- R2=0
P点在圆弧外侧时,则 OP大于圆弧半径 R,即
X2+ Y2- R2>0
P点在圆弧内侧时,则 OP小于圆弧半径 R,即
X2+ Y2- R2<0
用 F表示 P点的偏差值,定义圆弧偏差函数判别式为
( 3-5)
当动点落在圆弧上时,一般约定将其和 F>0一并考虑。
Y Y
A
F≥0 D
SR1 NR1
F≥0
F<0
F<0
B
O X C
O X
a) 顺圆弧 b) 逆圆弧
图 3-9 第一象限顺, 逆圆弧
222
22
1
2
11
)1( RYX
RYXF
ii
iii
???
??? ???
=
121 ???? YFF ii
图 3-9a中 AB为第一象限顺圆弧 SR1,若 F≥0时,动点在圆弧
上或圆弧外,向- Y向进给,计算出新点的偏差;若 F<0,
表明动点在圆内,向+ X向进给,计算出新一点的偏差,如
此走一步,算一步,直至终点。
由于偏差计算公式中有平方值计算,下面采用递推公式
给予简化,对第一象限顺圆,Fi≥0,动点 Pi(Xi,Yi)应向- Y
向进给,新的动点坐标为 (Xi+ 1,Yi+ 1),且 Xi+ 1= Xi,Yi+ 1= Yi
- 1,则新点的偏差值为
即 (3-6)
121 ???? iii XFF
222
22
1
2
11
)1( RYX
RYXF
ii
iii
????
??? ???
若 Fi<0时,沿+ X向前进一步,到达( Xi+ 1,Yi)点,新点
的偏差值为
(3-7)
即
进给后新点的偏差计算公式除与前一点偏差值有关
外,还与动点坐标有关,动点坐标值随着插补的进行是变
化的,所以在圆弧插补的同时,还必须修正新的动点坐标。
圆弧插补终点判别:将 X,Y轴走的步数总和存入一
个计数器,∑= ∣ Xb- Xa∣ + ∣ Yb- Ya∣,每走一步 ∑减一,
当 ∑= 0发出停止信号。
X
Y
3
2
1
1 2 3
4
4 O
A ( 0,4 )
B ( 4,0 )
例 3-2 现欲加工第一象限顺圆弧 AB,如图 3-11所示,起
点 A( 0,4),终点 B( 4,0),试用逐点比较法进行插
补。
图 3-11 圆弧插补实例
表 3-2圆弧插补过程
步数 偏差判别 坐标进给 偏差计算 坐标计算 终点判别
起点
0
0
?F
X
0
= 0,Y
0
=4 ∑ =8
1 F
0
=0 - Y
712
001
????? YFF
X
1
= 0,Y
1
=3 ∑ =7
2 F
1
<0 +X
612
112
????? XFF
X
2
= 1,Y
2
= 3 ∑ =6
3 F
2
<0 +X
312
223
????? XFF
X
3
= 2,Y
3
=3 ∑ =5
4 F
3
<0 +X
212
334
???? XFF
X
4
= 3,Y
4
=3 ∑ =4
5 F
4
>0 - Y
312
445
????? YFF
X
5
= 3,Y
5
=2 ∑ =3
6 F
5
<0 +X
412
556
???? XFF
X
6
= 4,Y
6
=2 ∑ =2
7 F
6
>0 - Y
112
667
???? YFF
X
7
= 4,Y
7
=1 ∑ =1
8 F
7
>0 - Y
012
778
???? YFF
X
7
= 4,Y
7
=0 ∑ =0
121 ??? iii XFF =
121 ++= iii YFF ?
5,四个象限中圆弧插补
参照图 3-9b,第一象限逆圆弧 CD的运动趋势是 X轴
绝对值减少,Y轴绝对值增大,当动点在圆弧上或圆弧外,
即 Fi≥0时,X轴沿负向进给,新动点的偏差函数为
(3-8)
Fi<0时,Y轴沿正向进给,新动点的偏差函数为
(3-9)
Y Y
NR2 NR1 SR2 SR1
O
X X
NR3 NR4 SR3 SR4
a) 逆圆弧
图 3-12 四个象限圆弧进给方向
C
A
y
如果插补计算都用坐标的绝对值,将进给方向另做处理,四个象
限插补公式可以统一起来,当对第一象限顺圆插补时,将 X轴正向进给
改为 X轴负向进给,则走出的是第二象限逆圆,若将 X轴沿负向,Y轴
沿正向进给,则走出的是第三象限顺圆。
如图 3-12a,b所示,用 SR1,SR2,SR3,SR4分别表示第 Ⅰ, Ⅱ,
Ⅲ, Ⅳ 象限的顺时针圆弧,用 NR1,NR2,NR3,NR4分别表示第 Ⅰ,
Ⅱ, Ⅲ, Ⅳ 象限的逆时针圆弧,四个象限圆弧的进给方向表示在图 3-
12中。
B
O X
图 3-13 跨象限圆弧
圆弧过象限, 即圆弧的起点和终点不在同一象限
内 。 若坐标采用绝对值进行插补运算, 应先进行过象
限判断, 当 X= 0或 Y= 0时过象限 。 如图 3-13所示, 需
将圆弧 AC分成两段圆弧 AB 和 BC,到 X= 0时, 进行处
理, 对应调用顺圆 2和顺圆 1的插补程序 。
若用带符号的坐标值进行插补计算, 在插补的同时,
比较动点坐标和终点坐标的代数值, 若两者相等, 插
补结束, 其计算过程见表 3-3。
进给 坐标计算 偏差计算 终点判别
+X
1
1
??
? ii
XX 12
1
???
? iii
XFF 0
1
??
?ie
XX
- X
1
1
??
? ii
XX 12
1
???
? iii
XFF 0
1
??
?ie
XX
+Y
1
1
??
? ii
YY 12
1
???
? iii
YFF 0
1
??
?ie
YY
- Y
1
1
??
? ii
YY
12
1
???
? iii
YFF
0
1
??
?ie
YY
表 3-3 圆弧插补计算过程
6,逐点比较法合成进给速度
逐点比较法的特点是脉冲源每发出一个脉冲, 就进
给一步, 不是发向 X轴, 就是发向 Y轴, 如果 fg为脉冲
源频率 (Hz),fx,fy 分别为 X轴和 Y轴进给频率 (Hz),则
(3-10)
从而 X轴和 Y轴的进给速度 (mm/min) 为
式中 —脉冲当量 ( mm/脉冲 ) 。
合成进给速度为
(3-11)
式 (3-11)中若 fx=0或 fy=0时, 也就是刀具沿平行于坐标
轴的方向切削, 这时对应切削速度最大, 相应的速度
称为脉冲源速度 vg,脉冲源速度与程编进给速度相同 。
2222 60 yxyx ffvvv ???? ?
yxg fff ??
xx fv ?60? yy
fv ?60?
(3-12)
合成进给速度与脉冲源速度之比为:
(3-13)
由式 3-13可见, 程编进给速度确定了脉冲源频率 fg后,
实际获得的合成进给速度 v并不总等于脉冲源的速度 vg,
与角有关 。 插补直线时, 为加工直线与 X轴的夹角;插
补圆弧时, 为圆心与动点连线和 X轴夹角 。 根据上式可
作出 v/vg随而变化的曲线 。 如图 3-14所示, v/vg=0.707~1,
最大合成进给速度与最小合成进给速度之比为
vmax/vmin=1.414,一般机床来讲可以满足要求, 认为逐
点比较法的进给速度是比较平稳的 。
?? c o ss i n
12
2
2
2
22
?
?
?
?
?
?
?
?
v
vv
v
v
v
v
vv
vv
v
v
yx
yx
yx
yx
g
gg fv ?60?
v/vg
1
0.707
O 450 900 α
图 3-14 逐点比较法进给速度
(二 ) 数字积分法
数字积分法又称数字微分分析法 DDA(Digital
differential Analyzer),是在数字积分器的基础上建立起来
的一种插补算法。数字积分法的优点是,易于实现多坐标
联动,较容易地实现二次曲线、高次曲线的插补,并具有
运算速度快,应用广泛等特点。
如图 3-15所示,设有一函数 Y= f(t),求此函数在
t0~tn区间的积分,就是求出此函数曲线与横坐标 t在区间
( t0,tn)所围成的面积。如果将横坐标区间段划分为间
隔为 t的很多小区间,当 t取足够小时,此面积可近似地视
为曲线下许多小矩形面积之和。
(3-14)
式中 Yi为 t=ti时 f(t)的值, 这个公式说明, 求积分的过程
也可以用累加的方式来近似 。 在数学运算时, 取 t为基
本单位, 1”,则上式可简化为
(3-15)
数字积分器通常由函数寄存器, 累加器和与门等组成 。
其工作过程为:每隔 t时间发一个脉冲, 与门打开一次,
将函数寄存器中的函数值送累加器里累加一次, 令累
加器的容量为一个单位面积, 当累加和超过累加器的
容量一个单位面积时, 便发出溢出脉冲, 这样累加过
程中产生的溢出脉冲总数就等于所求的总面积, 也就
是所求积分值 。 数字积分器结构框图见图 3-16。
??
?
?
???
1
00
n
i
i
t
t
tYY d tS n
?
?
?
?
1
0
n
i
iYS
Y Y=f(t) △ s
Yi △ t
t0 ti tn t
图 3-15函数 Y=f(t)的积分 图 3-16数字积分器结构框图
累加器
函数寄存器
与门
1,数字积分法直线插补
若要产生直线 OE,其起点为坐标原点 O,终点坐标
为 E(7,4)。 设寄存器和累加器容量为 1,将 Xe= 7,Ye
= 4分别分成 8段, 每一段分别为 7/8,4/8,将其存入 X
和 Y函数寄存器中 。
第一个时钟脉冲来到时, 累加器里的值分别为
7/8,4/8,因不大于累加器容量, 没有溢出脉冲 。
第二个时钟脉冲来到时, X累加器累加结果为
7/8+7/8= 1+6/8,因累加器容量为 1,满 1就溢出一个
脉冲, 则往 X方向发出一进给脉冲, 余下的 6/8仍寄存
在累加器里, 累加器又称余数寄存器 。 Y累加器中累加
为 4/8+4/8,其结果等于 1,Y方向也进给一步 。
第三个脉冲到来时, 仍继续累加, X累积器为
6/8+7/8,大于 1,X方向再走一步, Y累加器中为 0+4/8,
其结果小于 1,无溢出脉冲, Y向不走步 。
Y
E(7,4)
0 X
图 3-17 直线插补走步过程
如此下去, 直到输入第 8个脉冲时, 积分器工作一个
周期, X方向溢出脉冲总数为 7/88=7,Y方向溢出
脉冲总数为 4/88=4,到达终点 E( 如图 3-17) 。
图 3-18 DDA直线插补
Y
X
V
y V
V
x
E (X
e
,Y
e
)
O
?
若要加工第一象限直线 OE,如图 3-18所示, 起点为坐标
原点 O,终点坐标为 E( Xe,Ye), 刀具以匀速 V由起点
移向终点, 其 X,Y坐标的速度分量为 Vx,Vy,则有
(k为常数 ) (3-16)
各坐标轴的位移量为
(3-17)
数字积分法是求式 ( 3-17) 从 O到 E区间的定积分 。 此积
分值等于由 O到 E的坐标增量, 因积分是从原点开始的,
所以坐标增量即是终点坐标 。
kYVXVOEV
e
y
e
x ???
dtkYdtVY
dtkXdtVX
ey
ex
? ?
??
??
??
数字积分法是求式 ( 3-17) 从 O到 E区间的定积分 。 此积
分值等于由 O到 E的坐标增量, 因积分是从原点开始的,
所以坐标增量即是终点坐标 。
(3-18)
式 (3-18)中 t0对应直线起点的时间, tn对应终点时间 。
用累加来代替积分, 刀具在 X,Y方向移动的微小增量分
别为
(3-19)
0
0
0
0
YYdtkY
XXdtkX
t
t ee
t
t ee
n
n
-?
?
?
??
tkYtVY
tkXtVX
ey
ex
?????
?????
动点从原点出发走向终点的过程, 可以看作是各坐
标轴每经过一个单位时间间隔 t,分别以增量 kXe及 kYe
同时累加的结果 。
取 ( 一个单位时间间隔 ), 则
若经过 m次累加后, X,Y都到达终点 E( Xe,Ye),
下式成立
??
??
??
?
????
????
m
i
ie
m
i
i
i
m
i
e
m
i
i
tkYYY
tkXXX
11
11 =
1?? it
e
m
i
ie
m
i
eie
k m YtkYY
k m XtkXX
???
???
?
?
?
?
1
1
可见累加次数与比例系数之间有如下关系
或
两者互相制约, 不能独立选择, m是累加次数, 取整
数, k取小数 。 即先将直线终点坐标 Xe,Ye缩小到 kXe,
kYe,然后再经 m次累加到达终点 。 另外还要保证沿坐
标轴每次进给脉冲不超过一个, 保证插补精度, 应使
下式成立
ee
ee
Yk m YY
Xk m XX
??
??
1
1
???
???
e
e
kYY
kXX
km /1?1?km
如果存放 Xe,Ye寄存器的位数是 n,对应最大允许数字
量为 ( 各位均为 1), 所以 Xe,Ye最大寄存数值为
则
为使上式成立, 不妨取 代入得
累加次数
上式表明, 若寄存器位数是 n,则直线整个插补过程要进
行 2n次累加才能到达终点 。
12 ?n
12 ?n
12
1
1)12(
?
?
??
n
n
k
k
nk 2
1?
1
2
12 ??
n
n
n
km 2
1 ??
对于二进制数来说,一个 n位寄存器中存放 Xe和存放
kXe的数字是一样的,只是小数点的位置不同罢了,Xe
除以 2n,只需把小数点左移 n位,小数点出现在最高位
数 n的前面。采用 kXe进行累加,累加结果大于 1,就有
溢出。若采用 Xe进行累加,超出寄存器容量 2n有溢出。
将溢出脉冲用来控制机床进给,其效果是一样的。在
被寄函数寄存器里可只存 Xe,而省略 k。
例如,Xe=100101在一个 6位寄存器中存放,若
k=1/26,kXe=0.100101也存放在 6位寄存器中,数字是
一样的,若进行一次累加,都有溢出,余数数字也相
同,只是小数点位置不同而已,因此可用 Xe替代 kXe
△ t
Δx ΔY
图 3-19为平面直线的插补框图
X函数寄存器 JVX
与门
X累加器 JRX
Y函数寄存器 JVY
与门
Y累加器 JRY
图 3-19为平面直线的插补框图, 它由两个数字积分器
组成, 每个坐标轴的积分器由累加器和被积函数寄存
器组成, 被积函数寄存器存放终点坐标值, 每经过一
个时间间隔 t,将被积函数值向各自的累加器中累加,
当累加结果超出寄存器容量时, 就溢出一个脉冲, 若
寄存器位数为 n,经过 2n次累加后, 每个坐标轴的溢出
脉冲总数就等于该坐标的被积函数值, 从而控制刀具
到达终点 。
例 3-3 设有一直线 OE,如图 3-20所示起点坐标 O(0,
0),终点坐标为 E( 4,3), 累加器和寄存器的位数为
3位, 其最大可寄存数值为 7( J≥8时溢出 ) 。 若用二进
制计算, 起点坐标 O( 000,000), 终点坐标 E( 100,
011), J≥1000时溢出 。 试采用 DDA法对其进行插补 。
其插补运算过程见表 3-3。
表 3-3 DDA直线插补运算过程
累加次
数
( Δ t)
X 积分器 Y 积分器
终点
计数器
J E
J
VX
J
RX
Δ X J
VY
J
RY
Δ Y
0 4 0 3 0 0
100 01 1 000
1 4 0+ 4= 4 3 0+ 3= 3 1
100 000 + 100 = 100 01 1 000 + 01 1= 01 1 001
2 4 4+ 4= 8+ 0 1 3 3+ 3= 6 2
100 100 + 100 = 1 000 01 1 01 1+ 01 1= 1 10 010
3 4 0+ 4= 4 3 6+ 3= 8+ 1 1 3
100 000 + 100 = 100 01 1 1 10+ 01 1= 1 001 01 1
4 4 4+ 4= 8+ 0 1 3 1+ 3= 4 4
100 100 + 100 = 1 000 01 1 001 + 01 1 = 100 100
5 4 0 + 4 = 4 3 4 + 3 = 7 5
100 0 0 0 +1 0 0 =1 0 0 0 1 1 100 + 0 1 1 = 111 101
6 4 4 + 4 = 8 + 0 1 3 7 + 3 = 8 + 2 1 6
100 1 0 0 +1 0 0 = 1 000 0 1 1 111 + 0 1 1 = 1 010 1 1 0
7 4 0 + 4 = 4 3 2 + 3 = 5 7
100 0 0 0 +1 0 0 =1 0 0 0 1 1 010 + 0 1 1 = 101 111
8 4 4 + 4 = 8 + 0 1 3 5 + 3 = 8 + 0 1 8
100 1 0 0 +1 0 0 = 1 000 0 1 1 101 + 0 1 1 = 1 00 0 1 000
图 3-20 DDA直线插补实例 图 3-21 DDA圆弧插补
(3-21)
由于第一象限顺圆对应 Y坐标值逐渐减小, 所以式 (3-21)
中表达式中取负号, 即 Vx,Vy均取绝对值计算 。
2,数字积分法圆弧插补
第一象限顺圆如图 3-21,圆弧的圆心在坐标原点 O,起点
为 A( Xa,Ya), 终点为 B( Xb,Yb) 。 圆弧插补时, 要求刀
具沿圆弧切线作等速运动, 设圆弧上某一点 P( X,Y) 的速
度为 V,则在两个坐标方向的分速度为 Vx,Vy,根据图中几
何关系, 有如下关系式
(3-20)
对于时间增量而言, 在 X,Y坐标轴的位移增量分别为
kXVYVRV yx ???
tkXtVY
tkYtVX
y
x
???????
?????
与 DDA直线插补类似, 也可用两个积分器来实现圆弧插补, 如图 3-22
所示 。
Δt
○
○
Δx
Δy
图 3-22 第一象限顺圆弧插补器
X函数寄存器 JVX
与门
X累加器 JRX
Y函数寄存器 JVY
与门
Y累加器 JRY
DDA圆弧插补与直线插补的主要区别为:
( 1) 圆弧插补中被积函数寄存器寄存的坐标值与对应坐
标轴积分器的关系恰好相反 。
( 2) 圆弧插补中被积函数是变量, 直线插补的被积函数
是常数 。
( 3) 圆弧插补终点判别需采用两个终点计数器 。 对于直
线插补, 如果寄存器位数为 n,无论直线长短都需迭代
2n次到达终点 。
例 3-4 设有第一象限顺圆 AB,如图 3-23所示, 起点
A( 0,5), 终点 B( 5,0), 所选寄存器位数 n=3。 若
用二进制计算, 起点坐标 A( 000,101), 终点坐标 B
( 101,000), 试用 DDA法对此圆弧进行插补 。
其插补运算过程见表 3-4。
累加次
数
( Δ t)
X 积分器 Y 积分器
J
VX
J
RX
Δ X J
EX
J
VY
J
RY
Δ Y J
EY
0 5 0 5 0 0 5
101 101 000 000 101
1 5 0+ 5= 5 5 0 0 + 0 = 0 5
101 000 + 101 = 101 101 000 000 + 000 = 000 101
2 5 5+ 5= 8+ 2 1 4 0 0 + 0 = 0 5
101 101 + 101 = 1 010 100 000 000 + 000 = 000 101
1
001
表 3-4 DDA圆弧插补运算过程
3 5 5+ 2= 7 4 1 1 5
101 101 + 010 = 111 100 001 001 + 000 = 001 101
4 5 5+ 7= 8+ 4 1 3 1 1+ 1= 2 5
101 101 + 111 = 1 100 01 1 001 001 + 001 = 010 101
2
010
5 5 5+ 4= 8 + 1 1 2 2 2+ 2= 4 5
101 101 + 100 = 1 001 010 010 010 + 010 = 100 101
3
01 1
6 5 5 + 1 = 6 2 3 3 + 4 = 7 5
101 101 + 001 = 1 1 0 010 0 1 1 0 1 1 + 100 = 111 101
7 5 5 + 6 = 8 + 3 1 1 3 3 + 7 = 8 + 2 1 4
101 101 + 1 1 0 = 1 0 1 1 001 0 1 1 0 1 1 + 111 = 1 010 100
4 4
100 100
8 4 4 + 3 = 7 1 4 4 + 2 = 6 4
100 100 + 0 1 1 = 111 001 100 100 + 010 = 1 1 0 100
9 4 4+ 7= 8+ 3 1 0 4 4+ 6= 8+ 2 1 3
100 100 + 111 = 1 01 1 000 100 100 + 1 10 = 1 010 01 1
3 5
01 1 101
10 3 停止 5 5+ 2= 7 3
01 1 101 101 + 010 = 111 01 1
11 3 5 5+ 7= 8+ 4 1 2
01 1 101 101 + 111 = 1 100 010
2
010
12 2 5 5+ 4= 8+ 1 1 1
010 101 101 +100= 1 001 001
1
001
13 1 5 5+ 1= 6 1
001 101 101 + 001 = 1 10 001
14 1 5 5+ 6= 8+ 3 1 0
001 101 101 +1 10= 1 01 1 000
0
000
15 0 5 停止
101
A (0,5 )
4
2
3
5
4
Y
O
1 2 3
X
B (5,0 )
5
1
图 3-23 DDA圆弧插补实例
3,数字积分法插补的象限处理
DDA插补不同象限直线和圆弧时, 用绝对
值进行累加, 把进给方向另做讨论 。
DDA插补是沿着工件切线方向移动, 四个
象限直线进给方向如图 3-24所示 。
圆弧插补时被积函数是动点坐标, 在插补过
程中要进行修正, 坐标值的修改要看动点运动
是使该坐标绝对值是增加还是减少, 来确定是
加 1还是减 1。 四个象限直线进给方向和圆弧插
补的坐标修改及进给方向如表 3-5所示 。
Y
Y
L2 L1 NR2 NR1
SR2 SR1
X X
SR3 SR4
L3 L4 NR3 NR4
图 3-24 四象限直线插补进给方向
图 3-25四象限圆弧插补进给方向
内容 L1 L2 L3 L4
进给 ΔX + - - +
修正 JVY
进给 ΔY + + - -
修正 JVX
表 3-5 直线进给方向,
NR1 NR2 NR3 NR4 SR1 SR2 SR3 SR4
- - + + + + - -
-1 +1 -1 +1 +1 -1 +1 -1
+ - - + - + + -
+1 -1 +1 -1 -1 +1 -1 +1
表 3-5 圆弧插补进给方向及坐标修改
4,数字积分法合成进给速度
数字积分法的特点是, 脉冲源每产生一个脉冲, 作一
次累加计算, 如果脉冲源频率为 fg( Hz), 插补直线
的终点坐标为 E( Xe,Ye), 则 X,Y方向的平均进给频
率 fx,fy为
(3-22)
式中 m—累加次数 。
假设脉冲当量为 ( mm/脉冲 ), 可求得 X和 Y方向进给速
度 ( mm/min)
g
e
y
g
e
x
f
m
Y
f
f
m
X
f
?
?
m
Y
ffV
m
X
ffV
e
gyy
e
gxx
??
??
6060
6060
??
??
nm 2?
假设脉冲当量为 ( mm/脉冲 ), 可求得 X和 Y方向进给速度
( mm/min)
(3-23)
合成进给速度为
(3-24)
式中 L—被插补直线长度, ; 若插补圆弧, L应为
圆弧半径 R。
Vg—脉冲源速度, 。
m
Y
ffV
m
X
ffV
e
gyy
e
gxx
??
??
6060
6060
??
??
m
LVVVV
gyx ??? 22
22 ee YXL +=
gg fV ?60?
数控加工程序中 F代码指定进给速度后, fg基本维持不
变 。 这样合成进给速度 V与被插补直线的长度或圆弧的
半径成正比 。 如图 3-26所示, 如果寄存器位数是 n,加
工直线 L1,L2都要经过 m= 2n累加运算, L1直线短, 进
给慢, 速度低; L2直线长, 进给快, 速度高 。 加工 L1
生产效率低;加工 L2零件表面质量差 。
L1 V1
L2
V2
图 3-26 进给速度与直线长度的关系
5,数字积分法稳速控制
(1) 左移规格化
,左移规格化, 就是将被积函数寄存器中存放数值的前
零移去 。
直线插补时, 当被积函数寄存器中所存放最大数的最高
位为 1时, 称为规格化数, 反之, 若最高位为零, 称为
非规格化数 。
直线插补左移规格化数的处理方法是:将 X轴与 Y轴被积
函数寄存器里的数值同时左移 ( 最低位移入零 ), 直
到其中之一最高位为 1时为止 。
若被积函数左移 i位成为规格化数, 其函数值扩大 2i倍,
为了保持溢出的总脉冲数不变, 就要减少累加次数 。
in
i
nk ??? 2
12
2
1 inm ?? 2
被积函数扩大一倍, 累加次数减少一倍 。 具体实现,
当被积函数左移 i位时, 终点判别计数器右移 ( 最高位
移入 1), 使终点计数器 JE使用长度减少 i位, 实现累加
次数减少的目的 。 如果直线终点坐标为 ( 10,6), 寄
存器与累加器位数是 8,其规格化前后情况如下所示:
规格化前 规格化后
Xe=00001010 Xe=10100000
Ye=00000110 Ye=01100000
JE=00000000 JE=11110000
圆弧插补左移规格化与直线不同之处:被积函数寄存器
存放最大数值的次高位是 1为规格化数 。
圆弧左移规格化后, 扩大了寄存器中存放的数值 。
左移 i位, 相当于乘 2i,即 X轴与 Y轴被积函数寄
存器存放的数据变为 2iY,2iX,这样, 假设 Y轴
有脉冲溢出时, 则 X轴被积函数寄存器中存放
的坐标被修正为
上式指明, 规格化处理后, 插补中的坐标修正
加 1或减 1,变成了加 2i或减 2i。
直线和圆弧插补时规格化数处理方式不同, 但均
能提高溢出速度, 并能使溢出脉冲变得比较均
匀 。
iiii YYY 22)1(22 ????
(2) 按进给速率数 FRN编程
为实现不同长度程序段的恒速加工, 在编程时考虑被
加工直线长度或圆弧半径, 采用 FRN来表示, F”功能,
( 直线 ), 或 ( 圆弧 )
式中 V—要求的加工切削速度;
L—被加工直线长度;
R—被加工圆弧半径 。
因为
所以 ( 3-25)
由上式可见, FRN编程, 其实质是控制迭代频率 fg,fg与
V/L( 直线插补 ) 或 V/R( 圆弧插补 ) 成正比, 当插补
尺寸 L或 R不同时, 使迭代频率作相应改变, 以保证所
选定的进给速度 。
F R NmLVmf g ?? 6060 ??
m
LfV
g?60?
L
VFRN =
R
VFRN =
(3) 提高插补精度的措施
对于 DDA圆弧插补, 径向误差可能大于一个脉
冲当量, 因数字积分器溢出脉冲的频率与被积
函数寄存器中的数值成正比, 在坐标轴附近进
行累加时, 一个积分器的被积函数值接近零,
而另一个积分器的被积函数接近于最大值, 累
加时后者连续溢出, 前者几乎没有, 两个积分
器的溢出脉冲频率相差很大, 致使插补轨迹偏
离给定圆弧距离较大, 使圆弧误差增大 。
减少误差的方法有:减小脉冲当量, 误差减少,
但寄存器容量增大, 累加次数增加 。 而且要获
得同样的进给速度, 需要提高插补速度 。
还可采用余数寄存器预置数法, 即在 DDA插补之前,
累加器又称余数寄存器 JRX,JRY的初值不置零, 而是预
置 2n/2,若用二进制表示, 其最高有效位置, 1”,其它
各位置零, 若再累加 100… 000,余数寄存器就可以产
生第一个溢出脉冲, 使积分器提前溢出 。 这种处理方
式称为, 半加载,, 在被积函数值较小, 不能很快产
生溢出脉冲的情况下, 可使脉冲提前溢出, 改变了溢
出脉冲的时间分布, 达到减少插补误差的目的 。
例 3-5 加工第一象限顺圆 AB,如图 3-27,起点 A( 0,
5), 终点 B( 0,5) 选用寄存器位数 n=3,经过, 半
加载, 处理后, 试用 DDA法进行插补计算 。
其插补运算过程见表 3-5。
X 积分器 Y 积分器
累加
次数
( Δ t)
J
VX
J
RX
Δ X J
EX
J
VY
J
RY
Δ Y J
EY
0 5 4 5 0 4 5
1 5 5 + 4 = 8 + 1 1 4 0
1
0 + 4 = 4 5
2 5 5 + 1 = 6 4 1 1 + 4 = 5 5
3 5 5 + 6 = 8 + 3 1 3 1
2
1 + 5 = 6 5
4 5
4
5 + 3 = 8 + 0 1 2 2
3
2 + 6 = 8 + 0 1 4
5 4 4 + 0 = 4 2 3 3 + 0 = 3 4
6 4 4 + 4 = 8 + 0 1 1 3
4
3 + 3 = 6 4
7 4
3
4 + 0 = 4 1 4 4 + 6 = 8+ 2 1 3
8 3 3 + 4 = 7 1 4 4 + 2 = 6 3
9 3
2
3+ 7 = 8+ 2 1 0 4
5
4 + 6 = 8+ 2 1 2
10 2
停止
5 5 + 2 = 7 2
11 2
1
5 5 + 7 = 8+ 4 1 1
12 1
0
5 5 + 4 = 8+ 1 1 0
停止
图 3-27,半加载, 后 DDA圆弧插补实例
4
2
A (0,5 )
3
5
4
y
O
1 2 3
x
B (5,0 )
5
1
二,数据采样法
(一) 数据采样法原理
数据采样插补又称为时间分割法,与基准脉冲
插补法不同,数据采样插补法得出的不是进给脉冲,
而是用二进制表示的进给量。这种方法是根据程编进
给速度 F,将给定轮廓曲线按插补周期 T(某一单位时
间间隔)分割为插补进给段(轮廓步长),即用一系
列首尾相连的微小线段来逼近给定曲线。每经过一个
插补周期就进行一次插补计算,算出下一个插补点,
即算出插补周期内各坐标轴的进给量,如等,得出下
一个插补点的指令位置。
插补周期越长,插补计算误差越大,插补周期
应尽量选得小一些。 CNC系统在进行轮廓插补控制时,
除完成插补计算外,数控装置还必须处理一些其它任
务,如显示、监控、位置采样及控制等。
因此,插补周期应大于插补运算时间和其它实
时任务所需时间之和。插补周期大约在 8ms左右。
采样是指由时间上连续信号取出不连续信号,
对时间上连续的信号进行采样, 就是通过一个采样开
关 K( 这个开关 K每隔一定的周期 TC闭合一次 ) 后, 在
采样开关的输出端形成一连串的脉冲信号 。 这种把时
间上连续的信号转变成时间上离散的脉冲系列的过程
称为采样过程, 周期 TC叫采样周期 。
计算机定时对坐标的实际位置进行采样,采样
数据与指令位置进行比较,得出位置误差用来控制电
动机,使实际位置跟随指令位置。对于给定的某个数
控系统,插补周期 T和采样周期 TC是固定的,通常 T≥ TC,
一般要求 T是 TC的整数倍。
对于直线插补,不会造成轨迹误差。在圆弧插
补中,会带来轨迹误差。
如图 3-28所示, 用弦线逼近圆弧, 其最大径向误
差 er为
(3-26)
式中 R—被插补圆弧半径 ( mm) ;
—角步距, 在一个插补周期内逼近弦所对应的圆心角 。
将式 (3-26)中的 用幂级数展开, 得
(3-27)
)2c o s1( ??? Re r
?
)2/c o s (?
)2c o s1( ??? Re r
? ? ? ?
??
?
?
?
??
?
?
?
?
?
?
?
?
?
????? ?
22
!4
2/
!2
2/11 ??R
R8
2?
?
设 T为插补周期, F为进给速度, 则轮廓步长为
(3-28)
用轮廓步长代替弦长, 有
(3-29)
将 (3-29)代入式 ( 3-27),得
(3-30)
可见, 圆弧插补过程中, 用弦线逼近圆弧时, 插补误差 er
与程编进给速度 F的平方, 插补周期 T的平方成正比,
与圆弧半径 R成反比 。
TFl ?
?? Rl? RTF
R
TFe
r 8
)( 2?
图 3-28 弦线逼近圆弧 图 3-29 直线插补原理
(二 ) 直线函数法
1,直线插补
设要加工图 3-29所示直线 OE,起点在坐标原点 O,终点
为 E( ), 直线与 X轴夹角为, 则有
若已计算出轮廓步长, 从而求得本次插补周期内各坐标
轴进给量为
(3-31)
e
e
X
Ytg ??
?
?
21
1co s
tg?
?
x
X
Y
Y
lX
e
e ???
?? ?c o s
2,圆弧插补
圆弧插补, 需先根据指令中的进给速度 F,计算出轮
廓步长 l,再进行插补计算 。 以弦线逼近圆弧, 就是以
轮廓步长为圆弧上相邻两个插补点之间的弦长, 由前
一个插补点的坐标和轮廓步长, 计算后一插补点, 实
质上是求后一插补点到前一插补点两个坐标轴的进给
量 ΔX,ΔY。 如图 3-30 所示, A(Xi,Yi)为当前点,
B(Xi+1,Yi+1) 为插补后到达的点, 图中 AB弦正是圆弧插
补时在一个插补周期的步长 l,需计算 x轴和 y轴的进给
量 ΔX=Xi+1-Xi, ΔY=Yi+1-Yi 。 AP是 A点的切线, M是
弦的中点, OM⊥ AB,ME ⊥ AG,E为 AG的中点 。 圆心
角计算如下
式中 δ—轮廓步长所对应的圆心角增量, 也称为角步距 。
??? ??? ii 1
图 3-30 圆弧插补
因为 OA AP (AP为圆弧切线 )
所以 △ AOC∽ △ PAG
则 ∠ AOC= ∠ GAP=
因为 ∠ PAB+∠ OAM=900
所以 ∠ PAB= ∠ AOM=∠ AOB=
设 = ∠ GAB= ∠ GAP+ ∠ PAB=
△ MOD中
将 DH=Xi,OC= Yi,HM=,
CD=
代入上式, 则有
?21
? ??
2
1?
i
CDOC
HMDH
OD
DMtg
i ?
???
?
??
?
? ? =??
2
1
Xl ?? 21c o s ?
Yl ?? 21s i n21 ?
2
1
(3-32)
又因为
由此可以推出 的关系式
(3-33)
式 (3-33)反映了圆弧上任意相邻两插补点坐标之间
的关系, 只要求得 和, 就可以计算出新的插补点
YY
XX
lY
lX
tgtg
i
i
i
i
i
??
??
?
?
??
?
?
?
?
? ??
2
1
2
1
s i n
2
1
c o s
2
1
2
1
=
?
?
???
X
Y
GA
GBtg
?
????
yxyx ii ??,)与,(
?
?
s i n
2
1
c o s
2
1
2
1
2
1
lY
lX
YY
XX
X
Y
i
i
i
i
?
?
?
??
??
?
?
?
YYY
XXX
ii
ii
???
???
?
?
1
1
X? Y?
),( 11 ?? ii YXB
式 (3-33)中, 和 均为未知, 求解较困难 。 为此,
采用近似算法, 用 和 代替 和, 即
′与 不同, 从而造成了 的偏差, 在 处偏
差较大 。 如图 3-31所示, 由于角 成为 ′,因而影
响到 值, 使之为 ′
(3-34)
为保证下一个插补点仍在圆弧上, ′的计算应按下
式进行
?
?
45s i n
2
1
45c o s
2
1
'
lY
lX
tg
i
i
?
?
??
?tg ?tg ?0=?
?
?
X? X?
ATlX ????? ?c o s
Y?
? ? ? ? 2222 YYXXYX iiii ?????????
?
?
?
经展开整理得
(3-35)
由式 (3-35) 可用迭代法解出 。
采用近似算法可保证每次插补点均在圆弧上, 引起的偏
差仅是 。 这种算法仅
造成每次插补进给量的微小变化, 而使进给速度有偏
差, 实际进给速度的变化小于指令进给速度的 1%, 在
加工中是允许的 。
XY
XXY
Y
i
i
???
???
?
?
?
?
? ?
??
???
2
1
2
1
Y??
llASABYYXX ??????????? 即,,
图 3-31 近似处理引起的进给速度偏差
Δ X
Δ X′
A
O
B
S
T F
Δ Y′ Δ Y
Y
X
α
α ′
直线函数法, 用弦线逼近圆弧, 因此插补误差主要为半
径的绝对误差 。 因插补周期是固定的, 该误差取决于进给速
度和圆弧半径, 当加工的圆弧半径确定后, 为了使径向绝对
误差不超过允许值, 对进给速度要有一个限制 。
T
ReF r8?
(三 ) 扩展 DDA数据采样插补
1,扩展 DDA直线插补
Y E(Xe,Ye)
V
vy
Vx
O X
图 3-32 扩展 DDA直线插补
假设根据编程进给速度, 要在时间段 T1内走完图 3-32
所示直线, 其起点为坐标原点 O,终点坐标为 E( Xe,
Ye), V为进给速度 ( 零件加工程序中记为 F), Vx与
Vy分别为 X,Y坐标的分速度 。 则有
(3-36)
将时间 T1用插补周期 T分割为 n个子区间 ( n取 ≥ 最接
近的整数 ), 从而在每个插补周期 T内的坐标增量分别为
V
YX
Y
V
V
YX
X
V
ee
e
y
ee
e
x
22
22
?
?
?
?
TT1
T
T1
式中 V—编程的进给速度 ( mm/min) ;
T—插补周期 ( ms) ;
—根据插补周期换算后的时间常数,
FRN—进给速率数,
式中 L—插补直线长度 (mm)。
ete
ee
x XFRNTX
YX
VTVX ??
?
???
22
ete
ee
y YF R NTY
YX
VTVY ??
?
???
22
60/10* 3?? Tt?
L
V
YX
VF R N
ee
=22
?
?
t?
对于同一直线来说, 由于 V和 Xe,Ye,以及 均为常数,
可以记作, 称为步长系数 。
( 3-37)
故同一条直线在每个采样周期内增量 的常
数均相同, 在每个插补周期内算出 后, 就
可以得到本插补周期末的刀具位置坐标值
(3-38)
由于插补中每次迭代形成的子线段斜率 ( ) 等于
给定直线斜率, 从而保证了轨迹要求 。
t?
ed
ed
YY
XX
?
?
??
??
YX ?? 和
11 ?? ii YX 和
YYY
XXX
ii
ii
???
???
?
?
1
1
XY ?? /
YX ?? 和
2,扩展 DDA圆弧插补
如图 3-33所示为第一象限顺圆弧 AiQ,圆心在坐标原
点 O,半径为 R。 设刀具处在 Ai( Xi,Yi) 点位置 。 若在
一个插补周期 T内, 用 DDA插补法沿切线方向进给的步
长为, 一个插补周期后达到 C点, 即 。 由图可
见, 它的径向误差较大 。 扩展 DDA插补算法, 就是将
切线逼近圆弧转化为割线逼近圆弧, 以减少插补误差,
具体步骤如下:
先通过 AiC微小线段的中点 B作以 OB为半径的圆弧的
切线 BD,再通过 Ai点作 BD的平行线 AiH,即 AiH ∥ BD,
并在 AiH上截取, 如果 OB与 AiH的交点
为 M,在直角 △ AiMB中, 斜边, 直角
边,,所以 Ai+1点落在圆弧外侧 。 扩展 DDA
用割线 线段代替切线, 使径向误差减少了 。
lCAi ?
lCAAA iii ??? 1
lMAi 21?
1?ii AA
lCAAA iii ??? 1
图 3-33 扩展 DDA圆弧插补
下面计算在插补周期 T内轮廓进给步长 l的坐标分量 △ X和
Y,△ 就可以得到本次插补周期后到达的位置 Ai+1
由图 3-33可见, 在直角 △ OEAi中, OAi和 AiE的夹角为 α,
则
(3-39)
(3-40)
设刀具以恒速进给, 即在每个插补周期 T内的进给速度均
为 V,则 。 过 B点作 X轴的平行线 BF交 Y
轴于 F点, 交 AiE线段于 G点 。 过 Ai+1点作 Ai+1N平行 X轴,
交 AiE于 N点 。 由图 3-33可以看出, 直角 △ OFB与直角
△ AiNAi+1相似, 从而有比例关系:
(3-41)
R
x
OA
OE i
i
???s i n
R
y
OA
EA i
i
i ???c o s
OB
OF
AA
NA
ii
i ?
?
?
1
1
VTlAA ii ??? 1
式中
在直角 △ AiGB中
因此
在直角 △ OAiB中
XNA i ??? 1
VTlAA ii ?? =1
?? s i n21s i n lBAGA ii ??
?s i n21 lYGAEAOF iii ???=
? ? ? ? 2
2
22
2
1 RlOABAOB
ii ???
??
?
????
将以上各式代入式 ( 3-41) 有
将式 ( 3-39) 代入上式并整理, 得
2
2
2
1
s i n
2
1
Rl
ly
l
x i
??
?
?
?
?
?
?
?
?
?
2
2
2
1
2
1
Rl
R
x
lyl
x
i
i
??
?
?
?
?
?
?
?
?
?
?
?
?
??
因为 l<<R,故将 略去不计, 则上式变为
若令
则 (3-42)
?????? ???????? ??? ititii xRVyRVRxlyRlx ?? 2121
60/10* 3?? Tt?
ttd F R NR
V ??? ??
?
?
??
?
? ???
idid xyx ?? 2
1
另外, 从直角 △ OFB与直角 △ AiNAi+1相似, 还可
以得出
即
已知 =
OB
FB
AA
NA
ii
i ?
? 1
OB
GBFG
AA
NA
ii
i ??
? 1
VTl ?
1?ii AA
2
2
2
1 RlOB ??
?
??
?
??
由直角 △ AiGB得
而
2
2
2
1
2
1
Rl
R
y
lxl
NAy
i
i
i
??
?
?
?
?
?
?
?
?
?
?
?
?
???
ixFG ?
R
ylBAGB i
i 2
1c o s ?? ?
同理, 因 l<<R,故 略去不计, 则
仍令
则 ( 3-43)
2
2
1 ?
?
??
?
? l
???
?
???
? ???
R
ylx
R
ly i
i 2
1
ttd F R NR
V ??? ??
60/10* 3?? Tt?
?
?
??
?
? ???
idid yxy ?? 2
1
由于 Ai(Xi,Yi)为已知, 故用式 ( 3-42) 和 ( 3-43)
求得 Δ X和 Δ Y,因而可算出本次插补周期刀具应达到的
坐标位置 xi+1,yi+1值, 即
YYY
XXX
ii
ii
???
???
?
?
1
1
第三节 刀具补偿原理
一, 为什么要进行刀具补偿
如图 3-34所示, 在铣床上用半径为 r的刀具加工外
形轮廓为 A的工件时, 刀具中心沿着与轮廓 A距离为 r的
轨迹 B移动 。 我们要根据轮廓 A的坐标参数和刀具半径 r
值计算出刀具中心轨迹 B的坐标参数, 然后再编制程序
进行加工, 因控制系统控制的是刀具中心的运动 。 在
轮廓加工中, 由于刀具总有一定的半径, 如铣刀半径
或线切割机的钼丝半径等 。 刀具中心 ( 刀位点 ) 的运
动轨迹并不等于所加工零件的实际轨迹 ( 直接按零件
廓形编程所得轨迹 ), 数控系统的刀具半径补偿就是
把零件轮廓轨迹转换成刀具中心轨迹 。
r 刀具
A
r B
图 3-34 刀具半径补偿
当实际刀具长度与编程长度不一致时, 利用刀具
长度补偿功能可以实现对刀具长度差额的补偿 。
加工中心:一个重要组成部分就是自动换刀装置,
在一次加工中使用多把长度不同的刀具, 需要有刀具
长度补偿功能 。
轮廓铣削加工:为刀具中心沿所需轨迹运动, 需
要有刀具半径补偿功能 。
车削加工:可以使用多种刀具, 数控系统具备了
刀具长度和刀具半径补偿功能, 使数控程序与刀具形
状和刀具尺寸尽量无关, 可大大简化编程 。
具有刀具补偿功能, 在编制加工程序时, 可以按
零件实际轮廓编程, 加工前测量实际的刀具半径, 长
度等, 作为刀具补偿参数输入数控系统, 可以加工出
合乎尺寸要求的零件轮廓 。
刀具补偿功能还可以满足加工工艺等其他一些要
求, 可以通过逐次改变刀具半径补偿值大小的办法,
调整每次进给量, 以达到利用同一程序实现粗, 精加
工循环 。 另外, 因刀具磨损, 重磨而使刀具尺寸变化
时, 若仍用原程序, 势必造成加工误差, 用刀具长度
补偿可以解决这个问题 。
二, 刀具补偿原理
刀具补偿一般分为刀具长度补偿和刀具半径补偿 。
铣刀主要是刀具半径补偿;
钻头只需长度补偿;
车刀需要两坐标长度补偿和刀具半径补偿 。
1,刀具长度补偿
以数控车床为例进行说明, 数控装置控制的是刀架参考
点的位置, 实际切削时是利用刀尖来完成, 刀具长度
补偿是用来实现刀尖轨迹与刀架参考点之间的转换 。
如图 3-35所示, P为刀尖, Q为刀架参考点, 假设刀尖
圆弧半径为零 。 利用刀具长度测量装置测出刀尖点相
对于刀架参考点的坐标 xpq,zpq,存入刀补内存表中 。
零件轮廓轨迹是由刀尖切出的, 编程时以刀尖点 P来编程,
设刀尖 P点坐标为 xp,zp,刀架参考点坐标 Q( xq,zq)
可由下式求出:
(3-45)
这样, 零件轮廓轨迹通过式 (3-45)补偿后, 就能通过控制
刀架参考点 Q来实现 。
pqpq
pqpq
zzz
xxx
??
??
图 3-35 刀具长度补偿
P (x
p
,z
p
)
Q
z
pq
x
pq
加工中心上常用刀具长度补偿, 首先将刀具装
入刀柄, 再用对刀仪测出每个刀具前端到刀柄基准面
的距离, 然后将此值按刀具号码输入到控制装置的刀
补内存表中, 进行补偿计算 。 刀具长度补偿是用来实
现刀尖轨迹与刀柄基准点之间的转换 。
在数控立式镗铣床和数控钻床上, 因刀具磨损,
重磨等而使长度发生改变时, 不必修改程序中的坐标
值, 可通过刀具长度补偿, 伸长或缩短一个偏置量来
补偿其尺寸的变化, 以保证加工精度 。
刀具长度补偿原理比较简单, 由 G43,G44及 H
( D) 代码指定 。
2,刀具半径补偿
ISO标准规定, 当刀具中心轨迹在编程轨迹 ( 零件轮廓
ABCD) 前进方向的左侧时, 称为左刀补, 用 G41表示 。
反之, 当刀具处于轮廓前进方向的右侧时称为右刀补,
用 G42表示, 如图 3-36所示 。 G40为取消刀具补偿指令 。
y y
B C D C
刀补进行
A D A B 刀补
刀补建立 刀补撤销 进行
刀补撤销 刀补建立
O x O x
a) G41左刀补 b) G42右刀补
图 3-36 刀具补偿方向
在切削过程中, 刀具半径补偿的补偿过程分为三
个步骤:
( 1) 刀补建立 刀具从起刀点接近工件, 在原来的
程序轨迹基础上伸长或缩短一个刀具半径值, 即刀具
中心从与编程轨迹重合过渡到与编程轨迹距离一个刀
具半径值 。 在该段中, 动作指令只能用 G00或 G01。
( 2) 刀具补偿进行 刀具补偿进行期间, 刀具中心
轨迹始终偏离编程轨迹一个刀具半径的距离 。 在此状
态下, G00,G01,G02,G03都可使用 。
( 3) 刀补撤销 刀具撤离工件, 返回原点 。 即刀具
中心轨迹从与编程轨迹相距一个刀具半径值过渡到与
编程轨迹重合 。 此时也只能用 G00,G01。
三, 刀具半径补偿算法
刀具半径补偿计算:根据零件尺寸和刀具半径值
计算出刀具中心轨迹 。 对于一般的 CNC装置, 所能实现
的轮廓仅限于直线和圆弧 。 刀具半径补偿分 B功能刀补
与 C功能刀补, B功能刀补能根据本段程序的轮廓尺寸
进行刀具半径补偿, 不能解决程序段之间的过渡问题,
编程人员必须先估计刀补后可能出现的间断点和交叉
点等情况, 进行人为处理 。 B功能刀补计算如下:
1,直线刀具补偿计算
对直线而言, 刀具补偿后的轨迹是与原直线平行
的直线, 只需要计算出刀具中心轨迹的起点和终点坐
标值 。
如图 3-37所示, 被加工直线段的起点在坐标原点, 终
点坐标为 A。 假定上一程序段加工完后, 刀具中心在 O′
点坐标已知 。 刀具半径为, 现要计算刀具右补偿后直
线段 O′A′的终点坐标 A′。 设刀具补偿矢量 AA′的投影坐
标为,则
(3-46)
(3-47)
YYY
XXX
????
????
?????? AKAx OA
22
s i n
YX
YrrX
?
??? ?
22c o s YX
XrrY
?
????? ?
(3-48)
(3-48)式为直线刀补计算公式, 是在增量编程下推导出的 。
对于绝对值编程, 仍可应用此公式计算, 所不同的是
应是绝对坐标 。
22 YX
rXYY
?
???
22 YX
rYXX
?
???
图 3-37 直线刀具补偿 图 3-38 圆弧刀具半径补偿
y
O
x
Δ X
y
α
K
A ′ (X ′,Y ′ )
r
α
Δ Y
A (X,Y )
B ′ (X
b
′,Y
b
′ )
A ′ (X
a
′,Y
a
′ )
Δ X
K
x
B ( X
b
,Y
b
)
Δ Y
O
O ′
R
K
β
A (X a,Y a )
r
2,圆弧刀具半径补偿计算
对于圆弧而言, 刀具补偿后的刀具中心轨迹是一个
与圆弧同心的一段圆弧 。 只需计算刀补后圆弧的起点
坐标和终点坐标值 。 如图 3-38所示, 被加工圆弧的圆
心坐标在坐标原点 O,圆弧半径为 R,圆弧起点 A,终
点 B,刀具半径为 r。
假定上一个程序段加工结束后刀具中心为 A′,其坐
标已知 。 那么圆弧刀具半径补偿计算的目的, 就是计
算出刀具中心轨迹的终点坐标 B′ 。 设 BB′在两个坐
标上的投影 为则
(3-49)
XX b ???bX?
YYY bb ????
?????? BKBB O x
?????? ?? bb YX,
YX ??,
(3-50)
(3-51)
R
Y
rrY
R
X
rrX
b
b
???
???
?
?
s i n
c o s
R
rY
YY
R
rX
XX
b
bb
b
bb
???
???
图 3-39 B刀补示例
加工如图 3-39外部轮廓零件 ABCD时, 由 AB直线段开始,
接着加工直线段 BC,根据给出的两个程序段, 按 B刀
补处理后可求出相应的刀心轨迹 A1B1和 B2C1。
y
D
1
A
D
2
O
B
2
B
C
x
C
2
A
1 B 1
D
C
1
A
2
事实上, 加工完第一个程序段, 刀具中心落在 B1点上,
而第二个程序段的起点为 B2,两个程序段之间出现了
断点, 只有刀具中心走一个从 B1至 B2的附加程序, 即
在两个间断点之间增加一个半径为刀具半径的过渡圆
弧 B1B2,才能正确加工出整个零件轮廓 。
可见, B刀补采用了读一段, 算一段, 再走一段的控
制方法, 这样, 无法预计到由于刀具半径所造成的下
一段加工轨迹对本程序段加工轨迹的影响 。 为解决下
一段加工轨迹对本段加工轨迹的影响, 在计算本程序
段轨迹后, 提前将下一段程序读入, 然后根据它们之
间转接的具体情况, 再对本段的轨迹作适当修正, 得
到本段正确加工轨迹, 这就是 C功能刀具补偿 。 C功能
刀补更为完善, 这种方法能根据相邻轮廓段的信息自
动处理两个程序段刀具中心轨迹的转换, 并自动在转
接点处插入过渡圆弧或直线从而避免刀具干涉和断点
情况 。
图 3-40a给出了普通数控系统的工作方法, 在系统内,
数据缓冲寄存区 BS用以存放下一个加工程序段的信息,
设置工作寄存区 AS,存放正在加工的程序段的信息,
其运算结果送到输出寄存区 OS,直接作为伺服系统的
控制信号 。
图 3-40b为 CNC系统中采用 C刀补方法的原理框图,
与 3-40a不同的是, CNC装置内部又增设了一个刀补缓
冲区 CS。 当系统启动后, 第一个程序段先被读入 BS,
在 BS中算得第一段刀具中心轨迹, 被送到 CS中暂存后,
又将第二个程序段读入 BS,算出第二个程序段的刀具
中心轨迹 。 接着对第一, 第二两段刀具中心轨迹的连
接方式进行判别, 根据判别结果, 再对第一段刀具中
心轨迹进行修正 。
修正结束后, 顺序地将修正后的第一段刀具中心
轨迹由 CS送入 AS中, 第二段刀具中心轨迹由
BS送入 CS中 。
然后, 由 CPU将 AS中的内容送到 OS中进行插补
运算, 运算结果送到伺服系统中予以执行 。 当
修正了的第一段刀具中心轨迹开始被执行后,
利用插补间隙, CPU又命令第三段程序读入 BS,
随后, 又根据 BS和 CS中的第三, 第二段轨迹
的连接情况, 对 CS中的第二程序段的刀具中心
轨迹进行修正 。 依此下去, 可见在刀补工作状
态, CNC内部总是同时存在三个程序段的信息 。
a)
b)
图 3-40 两种数控系统的工作流程
缓冲寄存区
BS
工作寄存区
AS
输出寄存区
OS
输出寄存区
OS
工作寄存区
AS
刀补缓冲区
CS
缓冲寄存区
BS
在 CNC装置中, 处理的基本廓形是直线和圆弧, 它
们之间的相互连接方式有, 直线与直线相接, 直线与
圆弧相接, 圆弧与直线相接, 圆弧与圆弧相接 。 在刀
具补偿执行的三个步骤中, 都会有转接过渡, 以直线
与直线转接为例来讨论刀补建立, 刀补进行过程中可
能碰到的三种转接形式 。 刀补撤销是刀补建立的逆过
程, 可参照刀补建立 。
图 3-41和 3-42表示了两个相邻程序段为直线与直线,
左刀补 G41的情况下, 刀具中心轨迹在连接处的过渡形
式 。 图中 α为工件侧转接处两个运动方向的夹角, 其变
化范围为 00<ɑ< 3600,对于轮廓段为圆弧时, 只要用其
在交点处的切线作为角度定义的对应直线即可 。
在图 3-42a中, 编程轨迹为 FG和 GH,刀具中心轨迹为 AB
和 BC,相对于编程轨迹缩短一个 BD与 BE的长度, 这种
转接为缩短型 。
图 3-42b中, 刀具中心轨迹 AB和 BC相对于编程轨迹 FG和
GH伸长一个 BD与 BE的长度, 这种转接为伸长型 。 图
3-42c中, 若采用伸长型, 刀心轨迹为 AM和 MC,相对
于编程轨迹 FG和 GH来说, 刀具空行程时间较长, 为
减少刀具非切削的空行程时间, 可在中间插入过渡直
线 BB1,并令 BD等于 B1E且等于刀具半径 r,这种转接为
插入型 。 根据转接角 α不同, 可以将 C刀补的各种转接
过渡形式分为三类:
( 1) 当 1800< ɑ<3600时, 属缩短型, 见图 3-41a和 3-42a。
( 2) 当 900≤ɑ<1800时, 属伸长型, 见图 3-41b和 3-42b。
( 3) 当 00< ɑ<900时, 属插入型, 见图 3-41c和 3-42c。
图 3-41 G41刀补建立示意图
y
r
y
r
x
y
α
x O
r
x
r
O O
α
α
r
r
a) b) c)
图 3-42 刀补进行直线与直线转接情况
A
C
A
r
r
r
A
r
a) b)
c)
r
B
α r
α
C
B
α
r
B
C
B
1
M
r
D
E
F
G
H
F
H
G
D
E
F
D
E
G
H
四, 刀具补偿的几种特殊情况
1,在切削过程中改变刀补方向
如图 3-43所示, 切削轮廓 MN段采用 G42刀补, 而后加工 PQ
段, 改变了刀补方向, 应采用 G41刀补, 这时必须在 P
点产生一个具有长度为刀具半径的垂直矢量以获得一
段过渡圆弧 AB。
A G42
B
r1 r2 r2
P G41 N M r1
Q
N11 N12
图 3-43 刀补方向改变的切削实例 图 3-44 刀补半径改变的实例
2,改变刀具半径值
在零件切削过程中刀具半径值改变了, 则新的补偿
值在下个程序段中产生影响 。 如图 3-44所示, N10段补
偿用刀具半径 r1,N11段变为 r2后, 则开始建立新的刀
补, 进入 N12段后即按新刀补 r2进行补偿 。 刀具半径的
改变可通过改变刀具号或通过操作面板等方法来实现 。
3,过切问题
( 1) 刀具半径补偿可使刀具中心轨迹在走刀平面
( 如 xy面 ) 内偏移零件轮廓一个刀具半径值 。 在刀补
建立后的刀补进行中, 如果存在有二段以上没有移动
指令或存在非指定平面轴的移动指令段, 则可能产生
过切 。 如图 3-45所示, 设刀具开始位置距工件
表面上方 50mm,切削深度为 8mm。 z轴垂直于走刀平
面 ( xy面 ), 则按下述方法编程, 会产生过切 。
N01 G91 G41 G00 X20.0 Y10.0 H01 ;
N02 Z-48.0 ;
N03 G01 Z-10.0 F200 ;
N04 Y30.0 ;
N05 X30.0 ;
N06 Y-20.0 ;
N07 X-40.0 ;
N08 G00 Z58.0 ;
N09 G40 X-10.0 Y-20.0 ;
N10 M02 ;
图 3-45 过切现象
当 N01段进入刀补建立阶段后, 读入 N02和
N03两个程序段, 这两个程序段是 Z轴进给指令,
不是刀补平面轴的移动指令, 作不出矢量, 确
定不了前进方向 。 尽管用 G41进入到了刀补状
态, 但刀具中心却未加上刀补, 而直接移动到
了程序给定点 A,当在 A点执行完二, 三程序段
后, 再执行 N04段, 刀具中心由 A点移动到 B,
产生了过切 。
( 2) 在两个运动指令之间有一个位移为零的运
动指令时 。 因为运动为零的程序段没有零件轮
廓信息, 所以刀补时可能产生过切 。
( 3) 在两个运动指令之间有两个辅助功能程序
段, 也可能造成过切, 假设有如下加工程序:
……
N05 G91 X60.0 ;
N06 M08 ; r
N07 M09 ; A B S
N08 Y-15.0 ;
N09 X40,0 ; C D
…… 图 3-46 过切实例
如图 3-46所示, 当 N05程序段加工 AB轮廓, 同时读入
N06和 N07两段, 因这两段为辅助功能指令, 作不出沿
BC轮廓垂直矢量, 而直接到达 S点, 造成过切现象 。
第三节 进给速度控制原理
一, 为什么要控制进给速度
对于任何一个数控机床来说, 都要求能够对进给
速度进行控制, 它不仅直接影响到加工零件的表面粗
糙度和精度, 而且与刀具和机床的寿命和生产效率密
切相关 。
按照加工工艺的需要, 进给速度的给定一般是将
所需的进给速度用 F代码编入程序 。 对于不同材料的零
件, 需根据切削速度, 切削深度, 表面粗糙度和精度
的要求, 选择合适的进给速度 。
在进给过程中, 还可能发生各种不能确定或没有
意料到的情况, 需要随时改变进给速度, 因此还应有
操作者可以手动调节进给速度的功能 。 数控系统能提
供足够的速度范围和灵活的指定方法 。
另外, 在机床加工过程中, 由于进给状态的变化,
如起动, 升速, 降速和停止, 为了防止产生冲击, 失
步, 超程或振荡等, 保证运动平稳和准确定位, 必须
按一定规律完成升速和降速的过程 。
二, 基准脉冲法进给速度控制和加减速控制
1,速度控制
进给速度控制方法和所采用的插补算法有关 。 基准
脉冲插补多用于以步进电机作为执行元件的开环数控
系统中, 各坐标的进给速度是通过控制向步进电机发
出脉冲的频率来实现的, 所以进给速度处理是根据程
编的进给速度值来确定脉冲源频率的过程 。 进给速度 F
与脉冲源频率 f之间关系为
(3-52)
式中 —为脉冲当量 (mm/脉冲 );
f—脉冲源频率 (Hz);
F—进给速度 (mm/min)。
脉冲源频率为
fF ?60=
? ??60Ff ?
下面介绍程序计时法, 利用调用延时子程序的方法
来实现速度控制 。
根据要求的进给速度 F,求出与之对应的脉冲频率 f,
再计算出两个进给脉冲的时间间隔 ( 插补周
期 ),
在控制软件中, 只要控制两个脉冲的间隔时间, 就
可以方便地实现速度控制 。 进给脉冲的间隔时间长, 进
给速度慢;反之, 进给速度快 。 这一间隔时间, 通常由
插补运算时间 tch和程序计时时间 tj两部分组成,
即, 由于插补运算所需时间一般来说是固
定的, 因此只要改变程序计时时间就可控制进给速度的
快慢 。 程序计时时间 ( 每次插补运算后的等待时间 ),
可用空运转循环来实现 。 用 CPU执行延时子程序的方法控
制空运转循环时间, 延时子程序的循环次数少, 空运转
等待时间短, 进给脉冲间隔时间短, 速度就快;延时子
程序的循环次数多, 空运转等待时间长, 进给脉冲间隔
时间长, 速度就慢 。
fT 1?
jch ttT +=
例 3-5 已知系统脉冲当量 δ= 0.01mm/脉冲, 进给速度 F=
300mm/min,插补运算时间 tch= 0.1ms,延时子程序延
时时间为 ty= 0.1ms,求延时子程序循环次数 。
脉冲源频率
插补周期
程序计时时间 tj= T- tch= 1.9(ms)
循环次数 n=tj/ty= 19
程序计时法比较简单, 但占用 CPU时间较长, 适合于较
简单的控制过程 。
)1(500601.060 30060 sFf ????? ?
)(2)(002.01 mssfT ???
2,加减速控制
因为步进电机的启动频率比它的最高运行频率低得多,
为了减少定位时间, 通过加速使电机在接近最高的速
度运行 。 随着目标位置的接近, 为使电机平稳的停止,
再使频率降下来 。 因此步进电机开环控制系统过程中,
运行速度都需要有一个加速 -恒速 -减速 -低恒速 -停止的
过程, 如图 3-47所示 。
图 3-47速度曲线
频率
FK 0
A
时间或距离
FK
FK 1
B
C
x
加速 减速
恒速
低速
O
三, 数据采样法进给速度控制和加减速控制
1,速度控制
数据采样插补方式多用于以直流电机或交流电机作为执
行元件的闭环和半闭环数控系统中, 速度计算的任务
是确定一个插补周期的轮廓步长, 即一个插补周期 T内
的位移量 。
式中 F—程编给出的合成进给速度 ( mm/min) ;
T—插补周期 ( ms) ;
ΔL—每个插补周期小直线段的长度 ( μm) 。
以上给出的是稳定状态下的进给速度处理关系 。 当机床
起动, 停止或加工过程中改变进给速度时, 系统应自
动进行加减速处理 。
FTL 601??
2,加减速控制
自动加减速处理可按常用的指数加减速或直线加减速规
律进行 。 加减速控制多数采用软件来实现 。
V(t) V(t)
Vc A B
t1 t2
O 加速 匀速 减速 t O 加速 匀速 减速 C t
图 3-48 指数加减速 图 3-49 直线加减速
指数加减速控制的目的是将起动或停止时的速度突变变
成随时间按指数规律加速或减速, 如图 3-48所示 。 指
数加减速的速度与时间的关系为
加速时 (3-53)
式中 —时间常数;
Vc—稳定速度 。
匀速时 (3-54)
减速时 (3-55)
直线加减速控制算法使机床在起动和停止时, 速度沿一
定斜率的直线上升或下降, 如图 3-49所示, 速度变化
曲线是 OABC。
?
?
?
?
?
?
?
?
??
?
?
t
c eVtV 1)(
cVtV ?)(
?
t
c eVtV
??)(
进行加减速控制, 首先要计算出稳定速度和瞬时速度 。
所谓稳定速度, 就是系统处于稳定进给状态时, 每插
补一次 ( 一个插补周期 ) 的进给量 。 在数据采样系统
中, 零件程序段中速度命令 ( 或快速进给 ) 的 F值
( mm/min), 需要转换成每个插补周期的进给量 。 另
外为了调速方便, 设置了快速和切削进给二种倍率开
关, 一般 CNC系统允许通过操作面板上进给速度倍率
修调旋钮, 进行进给速度倍率修调 。
稳定速度的计算公式如下:
(3-56)
式中 Vw—稳定速度 ( mm/插补周期 ) ;
T—插补周期 ( ms) ;
F—程编指令速度 ( mm/min) ;
K—速度系数, 调节范围在 0~200%之间, 它包括快速
倍率, 切削进给倍率等 。
1 0 0 060 ??
T K FV
w
稳定速度计算完之后, 进行速度限制检查, 如果稳
定速度超过由参数设定的最高速度, 则取限制的最高
速度为稳定速度 。
所谓瞬时速度 Vi,即系统在每一瞬时, 每个插补周期
的进给量 。 当系统处于稳定进给状态时, Vi= Vw;当
系统处于加速状态时, Vi<Vw;当系统处于减速状态时
Vi>Vw。
现以直线加减速说明其计算方法 。
线性加减速的加速度可按下式计算
(3-57)
式中 F—进给速度 ( mm/min) ;
t—加速时间 ( ms) ;
—加速度 ( mm/(ms)2) 。
t
Fa 51067.1 ???
a
加速时, 系统每插补一次都要进行稳定速度, 瞬时速度
和加速处理 。 当上一个插补周期瞬时进给速度 Vi小于
当前稳定速度 Vw时, 则要加速, 每加速一次, 瞬时速
度为
(3-58)
新的瞬时速度 Vi+1参加插补计算, 对各坐标轴进行分配 。
当上一个插补周期瞬时进给速度 Vi大于当前稳定速度 Vw时,
则要减速 。 减速时, 首先计算出减速区域长度 S,当稳
定速度 Vw和设定的加速度确定后, S可由下式求得
(3-59)
aTVV ii ??? 1
2
2
2 aT
VS w?
减速时, 系统每进行一次插补计算, 都要进行终点判别,
计算出离开终点的瞬时距离 Si。 若本程序段要减速, 且
Si≤S,开始减速处理 。 每减速一次, 瞬时速度为
(3-60)
新的瞬时速度 Vi+1参加插补运算, 对各坐标轴进行分配 。
一直减速到新的稳定速度或减到零 。 若要提前一段距
离开始减速, 将提前量 ΔS作为参数预先设置好, 由下
式计算
(3-61)
aTVV ii ??? 1
S
aT
VS w ??
2
2
2
=
在每次插补结束后, 系统都要根据求出的各轴的插补进
给量, 来计算刀具中心离开本程序段终点的距离 Si,然
后进行终点判别 。
直线插补时 Si的计算应用公式
(3-62)
计算其各坐标分量值, 取其长轴 ( 如 X轴 ), 则瞬时点 A
离终点 E距离 Si为
(3-63)
式中 —X轴 ( 长轴 ) 与直线的夹角, 见图 3-50所示 。
YYY
XXX
ii
ii
???
???
?
?
1
1
?c o s
1???
iei XXS
?
y
E(Xe,Ye)
Ye
A(Xi,Yi) α
Yi
O Xi Xe x
图 3-50 直线插补终点判别
圆弧插补时 Si的计算分圆弧所对应圆心角小于 π和
大于 π两种情况 。 小于 π时, 瞬时点离圆弧终点
的直线距离越来越小, 如图 3-51a所示 。 A( Xi,
Yi) 为顺圆插补上某一瞬时点, B( Xb,Yb) 为
圆弧的终点; AP为 A点在 X方向上离终点的距
离, ; PB为 A在 Y方向离终点的
距离, ; AB=Si。 以 PB为基准 。
则 A点离终点的距离为
(3-64)
ib XXAP -=
ib YYPB ??
?? c o s
1
c o s
1 ?????
ibi YYPBS
y y
A(Xi,Yi) A
P C
D
O x O x
α
α
B(Xb,Yb) B
a)
圆心角小于 π b) 圆心角大于 π
图 3-51 圆弧插补终点判别
大于 π时, 设 A点为圆弧 AB的起点, C点为离
终点的弧长所对应的圆心角等于 π时的分界点,
D点为插补到离终点的弧长所对应的圆心角小
于 π的某一瞬时点, 如图 3-51b所示 。 显然, 此
时瞬时点离圆弧终点的距离 Si的变化规律是,
当从圆弧起点 A开始, 插补到 C点时, Si越来越
大, 直到 Si等于直径;当插补越过分界点 C后,
Si越来越小, 与图 3-51a的情况相同 。 为此, 计
算 Si时首先判别 Si的变化趋势 。 Si若变大, 则不
进行终点判别处理, 直到越过分界点;若 Si变
小, 再进行终点判别处理 。
返回课件首页返回本章首页
第一节 数控装置的工作过程
CNC装置的工作是在硬件的支持下执行软件的过程。
下面简要说明 CNC装置的工作情况。
一,程序输入
将编写好的数控加工程序输入给 CNC装置的方式有:
纸带阅读机输入、键盘输入、磁盘输入、通讯接口输入及连接
上一级计算机的 DNC(Direct Numerical Control)接口输入。
CNC装置在输入过程中还要完成校验和代码转换等工作,
输入的全部信息都放到 CNC装置的内部存储器中。
返回课件首页
二、译码
在输入的工件加工程序中含有工件的轮廓信息(起点、
终点、直线、圆弧等)、加工速度( F代码)及其它辅
助功能( M,S,T)信息等,译码程序以一个程序段
为单位,按一定规则将这些信息翻译成计算机内部能
识别的数据形式,并以约定的格式存放在指定的内存
区间。
三、数据处理
数据处理程序一般包括刀具半径补偿、速度计算以及
辅助功能处理。
刀具半径补偿是把零件轮廓轨迹转化成刀具中心轨迹,
编程员只需按零件轮廓轨迹编程,减轻了工作量。
速度计算是解决该加工程序段以什么样的速度运动
的问题 。 编程所给的进给速度是合成速度, 速度计算
是根据合成速度来计算各坐标运动方向的分速度 。 另
外对机床允许的最低速度和最高速度的限制进行判断
并处理 。
辅助功能诸如换刀, 主轴启停, 切削液开关等一些
开关量信号也在此程序中处理 。 辅助功能处理的主要
工作是识别标志, 在程序执行时发出信号, 让机床相
应部件执行这些动作 。
四, 插补
插补的任务是通过插补计算程序在已知有限信息的
基础上进行“数据点的密化”工作,即在起点和终点
之间插入一些中间点。
五, 位置控制
它的主要任务是在每个采样周期内, 将插补计算的
理论位置与实际反馈位置相比较, 用其差值去控制进
给电动机, 进而控制工作台或刀具的位移 。
六, 输入 /输出 ( I/O) 处理控制
I/O处理主要处理 CNC系统和机床之间的来往信号
的输入和输出控制 。
七, 显示
CNC系统的显示主要是为操作者提供方便,通常有:
零件程序显示、参数设置、刀具位置显示、机床状态
显示、报警显示、刀具加工轨迹动态模拟显示以及在
线编程时的图形显示等
八, 诊断
主要是指 CNC系统利用内装诊断程序进行自诊断,
主要有启动诊断和在线诊断 。
启动诊断是指 CNC系统每次从通电开始进入正常的
运行准备状态中, 系统相应的内诊断程序通过扫描自
动检查系统硬件, 软件及有关外设是否正常 。 只有当
检查的每个项目都确认正确无误之后, 整个系统才能
进入正常的准备状态 。 否则, CNC系统将通过报警方
式指出故障的信息, 此时, 启动诊断过程不能结束,
系统不能投入运行 。
在线诊断程序是指在系统处于正常运行状态中,由
系统相应的内装诊断程序,通过定时中断周期扫描检
查 CNC系统本身以及各外设。只要系统不停电,在线
诊断就不会停止。
第一节 插补原理
一, 概述
在数控加工中, 一般已知运动轨迹的起点坐标,
终点坐标和曲线方程, 如何使切削加工运动沿着预定
轨迹移动呢? 数控系统根据这些信息实时地计算出各
个中间点的坐标, 通常把这个过程称为, 插补, 。
插补实质上是根据有限的信息完成, 数据点的密化,
工作 。
加工各种形状的零件轮廓时, 必须控制刀具相对
工件以给定的速度沿指定的路径运动, 即控制各坐标
轴依某一规律协调运动, 这一功能为插补功能 。
平面曲线的运动轨迹需要两个运动来协调;
空间曲线或立体曲面则要求三个以上的坐标产生协
调运动。
插补工作可由硬件逻辑电路或执行软件程序来完成,
在 CNC系统中, 插补工作一般由软件完成, 软件插补
结构简单, 灵活易变, 可靠性好 。
目前普遍应用的两类插补方法为基准脉冲插补和
数据采样插补 。
( 一 ) 基准脉冲插补
基准脉冲插补又称脉冲增量插补, 这类插补算法
是以脉冲形式输出, 每插补运算一次, 最多给每一轴
一个进给脉冲 。 把每次插补运算产生的指令脉冲输出
到伺服系统, 以驱动工作台运动, 每发出一个脉冲,
工作台移动一个基本长度单位, 也叫脉冲当量, 脉冲
当量是脉冲分配的基本单位 。
( 二 ) 数据采样插补
数据采样插补又称时间增量插补, 这类算法插补结
果输出的不是脉冲, 而是标准二进制数 。 根据程编进
给速度, 把轮廓曲线按插补周期将其分割为一系列微
小直线段, 然后将这些微小直线段对应的位置增量数
据进行输出, 以控制伺服系统实现坐标轴的进给 。
插补计算是计算机数控系统中实时性很强的一项
工作, 为了提高计算速度, 缩短计算时间, 按以下三
种结构方式进行改进 。
1,采用软 /硬件结合的两级插补方案 。
2,采用多 CPU的分布式处理方案 。
3,采用单台高性能微型计算机方案 。
二, 基准脉冲插补
(一 ) 逐点比较法
加工图 3-1所示圆弧 AB,如果刀具在起始点 A,假
设让刀具先从 A点沿- Y方向走一步, 刀具处在圆内 1点 。
为使刀具逼近圆弧, 同时又向终点移动, 需沿+ X方向
走一步, 刀具到达 2点, 仍位于圆弧内, 需再沿+ X方
向走一步, 到达圆弧外 3点, 然后再沿- Y方向走一步,
如此继续移动, 走到终点 。
Y Y
A
3
1 2 E
2 3
B
O X O 1 X
图 3-1 圆弧插补轨迹 图 3-2 直线插补轨迹
加工图 3-2所示直线 OE也一样, 先从 O点沿+ X向
进给一步, 刀具到达直线下方的 1点, 为逼近直线, 第
二步应沿+ Y方向移动, 到达直线上方的 2点, 再沿+ X
向进给, 直到终点 。
所谓逐点比较法, 就是每走一步都要和给定轨迹比
较一次, 根据比较结果来决定下一步的进给方向, 使
刀具向减小偏差的方向并趋向终点移动, 刀具所走的
轨迹应该和给定轨迹非常相, 象, 。
终点判别
结束
Y
N
偏差判别
开始
坐标进给
y
x
2
E ( 4,3 )
O
1 3 4
1
2
3
给
偏差计算
1,插补原理
一般来说,逐点比较法插补过程可按以下四个步骤进行:
图 3-3 逐点比较法工作循环图
偏差判别:根据刀具当前位置, 确定进给方向 。
坐标进给:使加工点向给定轨迹趋进, 即向减少误 差
方向移动 。
偏差计算:计算新加工点与给定轨迹之间的偏差,
作为下一步判别依据 。
终点判别:判断是否到达终点, 若到达, 结束插补;
否则, 继续以上四个步骤 ( 如图 3-3所示 ) 。
2,直线插补
图 3-4所示第一象限直线 OE,起点 O为坐标原点,
用户编程时, 给出直线的终点坐标 E( Xe,Ye), 直线
方程为
XeY- XYe= 0 (3-1)
直线 OE 为给定轨迹, P( X,Y) 为动点坐标, 动
点与直线的位置关系有三种情况:动点在直线上方,
直线上, 直线下方 。
( 1) 若 P1点在直线上方, 则有 Y
XeY- XYe>0 E(Xe,Ye)
( 2) 若 P点在直线上, 则有 P1
XeY- XYe= 0
( 3) 若 P2点在直线下方, 则有 P (X,Y)
XeY- XYe<0 P2
O X
因此, 可以构造偏差函数为 图 3-4 动点与直线位置关系
(3-2)
ee XYYXF ??
eiiei YXYXF ??
对于第一象限直线,其偏差符号与进给方向的关系为
F= 0时,表示动点在 OE上,如点 P,可向+ X向进给,也可
向+ Y向进给。
F>0时,表示动点在 OE上方,如点 P1,应向+ X向进给。
F<0时,表示动点在 OE下方,如点 P2,应向+ Y向进给。
这里规定动点在直线上时,可归入 F>0的情况一同考虑。
插补工作从起点开始,走一步,算一步,判别一次,再走
一步,当沿两个坐标方向走的步数分别等于 Xe和 Ye时,停止插
补。
下面将 F的运算采用递推算法予以简化,动点 Pi(Xi,Yi)的
Fi值为
ei
eeiie
eiie
eiiei
YF
YYXYX
YXYX
YXYXF
??
???
???
?? ???
)1(
111
eii YFF ??? 1
ei
eeiie
eiie
eiiei
XF
XYXYX
YXYX
YXYXF
??
???
???
?? ???
)1(
111
若 Fi≥0,表明 Pi(Xi,Yi)点在 OE直线上方或在直线上,应沿
+ X向走一步,假设坐标值的单位为脉冲当量,走步后新
的坐标值为( Xi+1,Yi+1),且 Xi+1=Xi+1,Yi+1=Yi,新点偏差
为
即 (3-3)
若 Fi<0,表明 Pi( Xi,Yi)点在 OE 的下方,应向
+ Y方向进给一步,新点坐标值为 (Xi+1,Yi+1),且
Xi+1=Xi,Yi+1= Yi+ 1,新点的偏差为
即 (3-4)
开始加工时, 将刀具移到起点, 刀具正好处于直线
上, 偏差为零, 即 F= 0,根据这一点偏差可求出新一
点偏差, 随着加工的进行, 每一新加工点的偏差都可
由前一点偏差和终点坐标相加或相减得到 。
在插补计算, 进给的同时还要进行终点判别 。 常
用终点判别方法, 是设置一个长度计数器, 从直线的
起点走到终点, 刀具沿 X轴应走的步数为 X e,沿 Y轴走
的步数为 Ye,计数器中存入 X和 Y两坐标进给步数总和 ∑
= ∣ Xe∣ + ∣ Ye∣, 当 X或 Y坐标进给时, 计数长度减
一, 当计数长度减到零时, 即 ∑= 0时, 停止插补, 到
达终点 。
eii XFF ??? 1
例 3-1 加工第一象限直线 OE,如图 3-5所示, 起点为坐
标原点, 终点坐标为 E( 4,3) 。 试用逐点比较法对该
段直线进行插补, 并画出插补轨迹 。
图 3-5 直线插补轨迹过程实例
Y
X 2
E (4,3 )
O
1 3 4
1
2
3
表 3-1 直线插补运算过程
序号 偏差判别 坐标进给 偏差计算 终点判别
起点
0
0
?F
∑ =7
1 F
0
=0 +X
3
01
????
e
YFF
∑ =6
2 F
1
<0 +Y
1
12
???
e
XFF
∑ =5
3 F
2
>0 +X
2
23
????
e
YFF
∑ =4
4 F
3
<0 +Y
2
34
???
e
XFF
∑ =3
5 F
3
> 0 +X
1
45
????
e
YFF
∑ =2
6 F
5
<0 +Y
3
56
???
e
XFF
∑ =1
7 F
6
>0 +X
0
67
???
e
YFF
∑ =0
3,四象限的直线插补
假设有第三象限直线 OE′(图 3-6),起点坐标在原
点 O,终点坐标为 E′(- Xe,- Ye),在第一象限有一
条和它对称于原点的直线,其终点坐标为 E( Xe,Ye),
按第一象限直线进行插补时,从 O点开始把沿 X轴正向
进给改为 X轴负向进给,沿 Y轴正向改为 Y轴负向进给,
这时实际插补出的就是第三象限直线,其偏差计算公
式与第一象限直线的偏差计算公式相同,仅仅是进给
方向不同,输出驱动,应使 X和 Y轴电机反向旋转。
图 3-6 第三象限直线插补
Y
X
E (X
e
,Y
e
)
)
O
E ′ ( - X
e
,- Y
e
)
四个象限直线的偏差符号和插补进给方向如图 3-7所示,
用 L1,L2,L3,L4分别表示第 Ⅰ, Ⅱ, Ⅲ, Ⅳ 象限的直线。
为适用于四个象限直线插补,插补运算时用 ∣ X∣, ∣ Y∣
代替 X,Y,偏差符号确定可将其转化到第一象限,动点与
直线的位置关系按第一象限判别方式进行判别。
由图 3-7可见,靠近 Y轴区域偏差大于零,靠近 X轴区
域偏差小于零。 F≥0时,进给都是沿 X轴,不管是+ X向还
是- X向,X的绝对值增大; F<0时,进给都是沿 Y轴,不
论+ Y向还是- Y向,Y的绝对值增大。
图 3-8为四象限直线插补流程图。
y
x
L1
F ? 0
L2
L3
F ? 0
F ? 0 F ? 0
L4
F< 0
F< 0
F< 0
F< 0
图 3-7 四象限直线偏差符号和进给方向
开始
初始化 |Xe|,
|Ye|
∑ = |Xe|+ |Ye|
F≥ 0
F← F- ∣ Ye∣
沿 Xe向走一步
∑= 0
F← F+ ∣ Xe∣
沿 Ye向走一步
结束
∑ = ∑ -1
图 3-7 四象限直线偏差符号和进给方向
222 RYXF ???
4,圆弧插补
在圆弧加工过程中,可用动点到圆心的距离来描述刀具位置与
被加工圆弧之间关系。设圆弧圆心在坐标原点,已知圆弧起点 A
( Xa,Ya),终点 B( Xb,Yb),圆弧半径为 R。加工点可能在三种
情况出现,即圆弧上、圆弧外、圆弧内。当动点 P( X,Y)位于圆
弧上时有
X2+ Y2- R2=0
P点在圆弧外侧时,则 OP大于圆弧半径 R,即
X2+ Y2- R2>0
P点在圆弧内侧时,则 OP小于圆弧半径 R,即
X2+ Y2- R2<0
用 F表示 P点的偏差值,定义圆弧偏差函数判别式为
( 3-5)
当动点落在圆弧上时,一般约定将其和 F>0一并考虑。
Y Y
A
F≥0 D
SR1 NR1
F≥0
F<0
F<0
B
O X C
O X
a) 顺圆弧 b) 逆圆弧
图 3-9 第一象限顺, 逆圆弧
222
22
1
2
11
)1( RYX
RYXF
ii
iii
???
??? ???
=
121 ???? YFF ii
图 3-9a中 AB为第一象限顺圆弧 SR1,若 F≥0时,动点在圆弧
上或圆弧外,向- Y向进给,计算出新点的偏差;若 F<0,
表明动点在圆内,向+ X向进给,计算出新一点的偏差,如
此走一步,算一步,直至终点。
由于偏差计算公式中有平方值计算,下面采用递推公式
给予简化,对第一象限顺圆,Fi≥0,动点 Pi(Xi,Yi)应向- Y
向进给,新的动点坐标为 (Xi+ 1,Yi+ 1),且 Xi+ 1= Xi,Yi+ 1= Yi
- 1,则新点的偏差值为
即 (3-6)
121 ???? iii XFF
222
22
1
2
11
)1( RYX
RYXF
ii
iii
????
??? ???
若 Fi<0时,沿+ X向前进一步,到达( Xi+ 1,Yi)点,新点
的偏差值为
(3-7)
即
进给后新点的偏差计算公式除与前一点偏差值有关
外,还与动点坐标有关,动点坐标值随着插补的进行是变
化的,所以在圆弧插补的同时,还必须修正新的动点坐标。
圆弧插补终点判别:将 X,Y轴走的步数总和存入一
个计数器,∑= ∣ Xb- Xa∣ + ∣ Yb- Ya∣,每走一步 ∑减一,
当 ∑= 0发出停止信号。
X
Y
3
2
1
1 2 3
4
4 O
A ( 0,4 )
B ( 4,0 )
例 3-2 现欲加工第一象限顺圆弧 AB,如图 3-11所示,起
点 A( 0,4),终点 B( 4,0),试用逐点比较法进行插
补。
图 3-11 圆弧插补实例
表 3-2圆弧插补过程
步数 偏差判别 坐标进给 偏差计算 坐标计算 终点判别
起点
0
0
?F
X
0
= 0,Y
0
=4 ∑ =8
1 F
0
=0 - Y
712
001
????? YFF
X
1
= 0,Y
1
=3 ∑ =7
2 F
1
<0 +X
612
112
????? XFF
X
2
= 1,Y
2
= 3 ∑ =6
3 F
2
<0 +X
312
223
????? XFF
X
3
= 2,Y
3
=3 ∑ =5
4 F
3
<0 +X
212
334
???? XFF
X
4
= 3,Y
4
=3 ∑ =4
5 F
4
>0 - Y
312
445
????? YFF
X
5
= 3,Y
5
=2 ∑ =3
6 F
5
<0 +X
412
556
???? XFF
X
6
= 4,Y
6
=2 ∑ =2
7 F
6
>0 - Y
112
667
???? YFF
X
7
= 4,Y
7
=1 ∑ =1
8 F
7
>0 - Y
012
778
???? YFF
X
7
= 4,Y
7
=0 ∑ =0
121 ??? iii XFF =
121 ++= iii YFF ?
5,四个象限中圆弧插补
参照图 3-9b,第一象限逆圆弧 CD的运动趋势是 X轴
绝对值减少,Y轴绝对值增大,当动点在圆弧上或圆弧外,
即 Fi≥0时,X轴沿负向进给,新动点的偏差函数为
(3-8)
Fi<0时,Y轴沿正向进给,新动点的偏差函数为
(3-9)
Y Y
NR2 NR1 SR2 SR1
O
X X
NR3 NR4 SR3 SR4
a) 逆圆弧
图 3-12 四个象限圆弧进给方向
C
A
y
如果插补计算都用坐标的绝对值,将进给方向另做处理,四个象
限插补公式可以统一起来,当对第一象限顺圆插补时,将 X轴正向进给
改为 X轴负向进给,则走出的是第二象限逆圆,若将 X轴沿负向,Y轴
沿正向进给,则走出的是第三象限顺圆。
如图 3-12a,b所示,用 SR1,SR2,SR3,SR4分别表示第 Ⅰ, Ⅱ,
Ⅲ, Ⅳ 象限的顺时针圆弧,用 NR1,NR2,NR3,NR4分别表示第 Ⅰ,
Ⅱ, Ⅲ, Ⅳ 象限的逆时针圆弧,四个象限圆弧的进给方向表示在图 3-
12中。
B
O X
图 3-13 跨象限圆弧
圆弧过象限, 即圆弧的起点和终点不在同一象限
内 。 若坐标采用绝对值进行插补运算, 应先进行过象
限判断, 当 X= 0或 Y= 0时过象限 。 如图 3-13所示, 需
将圆弧 AC分成两段圆弧 AB 和 BC,到 X= 0时, 进行处
理, 对应调用顺圆 2和顺圆 1的插补程序 。
若用带符号的坐标值进行插补计算, 在插补的同时,
比较动点坐标和终点坐标的代数值, 若两者相等, 插
补结束, 其计算过程见表 3-3。
进给 坐标计算 偏差计算 终点判别
+X
1
1
??
? ii
XX 12
1
???
? iii
XFF 0
1
??
?ie
XX
- X
1
1
??
? ii
XX 12
1
???
? iii
XFF 0
1
??
?ie
XX
+Y
1
1
??
? ii
YY 12
1
???
? iii
YFF 0
1
??
?ie
YY
- Y
1
1
??
? ii
YY
12
1
???
? iii
YFF
0
1
??
?ie
YY
表 3-3 圆弧插补计算过程
6,逐点比较法合成进给速度
逐点比较法的特点是脉冲源每发出一个脉冲, 就进
给一步, 不是发向 X轴, 就是发向 Y轴, 如果 fg为脉冲
源频率 (Hz),fx,fy 分别为 X轴和 Y轴进给频率 (Hz),则
(3-10)
从而 X轴和 Y轴的进给速度 (mm/min) 为
式中 —脉冲当量 ( mm/脉冲 ) 。
合成进给速度为
(3-11)
式 (3-11)中若 fx=0或 fy=0时, 也就是刀具沿平行于坐标
轴的方向切削, 这时对应切削速度最大, 相应的速度
称为脉冲源速度 vg,脉冲源速度与程编进给速度相同 。
2222 60 yxyx ffvvv ???? ?
yxg fff ??
xx fv ?60? yy
fv ?60?
(3-12)
合成进给速度与脉冲源速度之比为:
(3-13)
由式 3-13可见, 程编进给速度确定了脉冲源频率 fg后,
实际获得的合成进给速度 v并不总等于脉冲源的速度 vg,
与角有关 。 插补直线时, 为加工直线与 X轴的夹角;插
补圆弧时, 为圆心与动点连线和 X轴夹角 。 根据上式可
作出 v/vg随而变化的曲线 。 如图 3-14所示, v/vg=0.707~1,
最大合成进给速度与最小合成进给速度之比为
vmax/vmin=1.414,一般机床来讲可以满足要求, 认为逐
点比较法的进给速度是比较平稳的 。
?? c o ss i n
12
2
2
2
22
?
?
?
?
?
?
?
?
v
vv
v
v
v
v
vv
vv
v
v
yx
yx
yx
yx
g
gg fv ?60?
v/vg
1
0.707
O 450 900 α
图 3-14 逐点比较法进给速度
(二 ) 数字积分法
数字积分法又称数字微分分析法 DDA(Digital
differential Analyzer),是在数字积分器的基础上建立起来
的一种插补算法。数字积分法的优点是,易于实现多坐标
联动,较容易地实现二次曲线、高次曲线的插补,并具有
运算速度快,应用广泛等特点。
如图 3-15所示,设有一函数 Y= f(t),求此函数在
t0~tn区间的积分,就是求出此函数曲线与横坐标 t在区间
( t0,tn)所围成的面积。如果将横坐标区间段划分为间
隔为 t的很多小区间,当 t取足够小时,此面积可近似地视
为曲线下许多小矩形面积之和。
(3-14)
式中 Yi为 t=ti时 f(t)的值, 这个公式说明, 求积分的过程
也可以用累加的方式来近似 。 在数学运算时, 取 t为基
本单位, 1”,则上式可简化为
(3-15)
数字积分器通常由函数寄存器, 累加器和与门等组成 。
其工作过程为:每隔 t时间发一个脉冲, 与门打开一次,
将函数寄存器中的函数值送累加器里累加一次, 令累
加器的容量为一个单位面积, 当累加和超过累加器的
容量一个单位面积时, 便发出溢出脉冲, 这样累加过
程中产生的溢出脉冲总数就等于所求的总面积, 也就
是所求积分值 。 数字积分器结构框图见图 3-16。
??
?
?
???
1
00
n
i
i
t
t
tYY d tS n
?
?
?
?
1
0
n
i
iYS
Y Y=f(t) △ s
Yi △ t
t0 ti tn t
图 3-15函数 Y=f(t)的积分 图 3-16数字积分器结构框图
累加器
函数寄存器
与门
1,数字积分法直线插补
若要产生直线 OE,其起点为坐标原点 O,终点坐标
为 E(7,4)。 设寄存器和累加器容量为 1,将 Xe= 7,Ye
= 4分别分成 8段, 每一段分别为 7/8,4/8,将其存入 X
和 Y函数寄存器中 。
第一个时钟脉冲来到时, 累加器里的值分别为
7/8,4/8,因不大于累加器容量, 没有溢出脉冲 。
第二个时钟脉冲来到时, X累加器累加结果为
7/8+7/8= 1+6/8,因累加器容量为 1,满 1就溢出一个
脉冲, 则往 X方向发出一进给脉冲, 余下的 6/8仍寄存
在累加器里, 累加器又称余数寄存器 。 Y累加器中累加
为 4/8+4/8,其结果等于 1,Y方向也进给一步 。
第三个脉冲到来时, 仍继续累加, X累积器为
6/8+7/8,大于 1,X方向再走一步, Y累加器中为 0+4/8,
其结果小于 1,无溢出脉冲, Y向不走步 。
Y
E(7,4)
0 X
图 3-17 直线插补走步过程
如此下去, 直到输入第 8个脉冲时, 积分器工作一个
周期, X方向溢出脉冲总数为 7/88=7,Y方向溢出
脉冲总数为 4/88=4,到达终点 E( 如图 3-17) 。
图 3-18 DDA直线插补
Y
X
V
y V
V
x
E (X
e
,Y
e
)
O
?
若要加工第一象限直线 OE,如图 3-18所示, 起点为坐标
原点 O,终点坐标为 E( Xe,Ye), 刀具以匀速 V由起点
移向终点, 其 X,Y坐标的速度分量为 Vx,Vy,则有
(k为常数 ) (3-16)
各坐标轴的位移量为
(3-17)
数字积分法是求式 ( 3-17) 从 O到 E区间的定积分 。 此积
分值等于由 O到 E的坐标增量, 因积分是从原点开始的,
所以坐标增量即是终点坐标 。
kYVXVOEV
e
y
e
x ???
dtkYdtVY
dtkXdtVX
ey
ex
? ?
??
??
??
数字积分法是求式 ( 3-17) 从 O到 E区间的定积分 。 此积
分值等于由 O到 E的坐标增量, 因积分是从原点开始的,
所以坐标增量即是终点坐标 。
(3-18)
式 (3-18)中 t0对应直线起点的时间, tn对应终点时间 。
用累加来代替积分, 刀具在 X,Y方向移动的微小增量分
别为
(3-19)
0
0
0
0
YYdtkY
XXdtkX
t
t ee
t
t ee
n
n
-?
?
?
??
tkYtVY
tkXtVX
ey
ex
?????
?????
动点从原点出发走向终点的过程, 可以看作是各坐
标轴每经过一个单位时间间隔 t,分别以增量 kXe及 kYe
同时累加的结果 。
取 ( 一个单位时间间隔 ), 则
若经过 m次累加后, X,Y都到达终点 E( Xe,Ye),
下式成立
??
??
??
?
????
????
m
i
ie
m
i
i
i
m
i
e
m
i
i
tkYYY
tkXXX
11
11 =
1?? it
e
m
i
ie
m
i
eie
k m YtkYY
k m XtkXX
???
???
?
?
?
?
1
1
可见累加次数与比例系数之间有如下关系
或
两者互相制约, 不能独立选择, m是累加次数, 取整
数, k取小数 。 即先将直线终点坐标 Xe,Ye缩小到 kXe,
kYe,然后再经 m次累加到达终点 。 另外还要保证沿坐
标轴每次进给脉冲不超过一个, 保证插补精度, 应使
下式成立
ee
ee
Yk m YY
Xk m XX
??
??
1
1
???
???
e
e
kYY
kXX
km /1?1?km
如果存放 Xe,Ye寄存器的位数是 n,对应最大允许数字
量为 ( 各位均为 1), 所以 Xe,Ye最大寄存数值为
则
为使上式成立, 不妨取 代入得
累加次数
上式表明, 若寄存器位数是 n,则直线整个插补过程要进
行 2n次累加才能到达终点 。
12 ?n
12 ?n
12
1
1)12(
?
?
??
n
n
k
k
nk 2
1?
1
2
12 ??
n
n
n
km 2
1 ??
对于二进制数来说,一个 n位寄存器中存放 Xe和存放
kXe的数字是一样的,只是小数点的位置不同罢了,Xe
除以 2n,只需把小数点左移 n位,小数点出现在最高位
数 n的前面。采用 kXe进行累加,累加结果大于 1,就有
溢出。若采用 Xe进行累加,超出寄存器容量 2n有溢出。
将溢出脉冲用来控制机床进给,其效果是一样的。在
被寄函数寄存器里可只存 Xe,而省略 k。
例如,Xe=100101在一个 6位寄存器中存放,若
k=1/26,kXe=0.100101也存放在 6位寄存器中,数字是
一样的,若进行一次累加,都有溢出,余数数字也相
同,只是小数点位置不同而已,因此可用 Xe替代 kXe
△ t
Δx ΔY
图 3-19为平面直线的插补框图
X函数寄存器 JVX
与门
X累加器 JRX
Y函数寄存器 JVY
与门
Y累加器 JRY
图 3-19为平面直线的插补框图, 它由两个数字积分器
组成, 每个坐标轴的积分器由累加器和被积函数寄存
器组成, 被积函数寄存器存放终点坐标值, 每经过一
个时间间隔 t,将被积函数值向各自的累加器中累加,
当累加结果超出寄存器容量时, 就溢出一个脉冲, 若
寄存器位数为 n,经过 2n次累加后, 每个坐标轴的溢出
脉冲总数就等于该坐标的被积函数值, 从而控制刀具
到达终点 。
例 3-3 设有一直线 OE,如图 3-20所示起点坐标 O(0,
0),终点坐标为 E( 4,3), 累加器和寄存器的位数为
3位, 其最大可寄存数值为 7( J≥8时溢出 ) 。 若用二进
制计算, 起点坐标 O( 000,000), 终点坐标 E( 100,
011), J≥1000时溢出 。 试采用 DDA法对其进行插补 。
其插补运算过程见表 3-3。
表 3-3 DDA直线插补运算过程
累加次
数
( Δ t)
X 积分器 Y 积分器
终点
计数器
J E
J
VX
J
RX
Δ X J
VY
J
RY
Δ Y
0 4 0 3 0 0
100 01 1 000
1 4 0+ 4= 4 3 0+ 3= 3 1
100 000 + 100 = 100 01 1 000 + 01 1= 01 1 001
2 4 4+ 4= 8+ 0 1 3 3+ 3= 6 2
100 100 + 100 = 1 000 01 1 01 1+ 01 1= 1 10 010
3 4 0+ 4= 4 3 6+ 3= 8+ 1 1 3
100 000 + 100 = 100 01 1 1 10+ 01 1= 1 001 01 1
4 4 4+ 4= 8+ 0 1 3 1+ 3= 4 4
100 100 + 100 = 1 000 01 1 001 + 01 1 = 100 100
5 4 0 + 4 = 4 3 4 + 3 = 7 5
100 0 0 0 +1 0 0 =1 0 0 0 1 1 100 + 0 1 1 = 111 101
6 4 4 + 4 = 8 + 0 1 3 7 + 3 = 8 + 2 1 6
100 1 0 0 +1 0 0 = 1 000 0 1 1 111 + 0 1 1 = 1 010 1 1 0
7 4 0 + 4 = 4 3 2 + 3 = 5 7
100 0 0 0 +1 0 0 =1 0 0 0 1 1 010 + 0 1 1 = 101 111
8 4 4 + 4 = 8 + 0 1 3 5 + 3 = 8 + 0 1 8
100 1 0 0 +1 0 0 = 1 000 0 1 1 101 + 0 1 1 = 1 00 0 1 000
图 3-20 DDA直线插补实例 图 3-21 DDA圆弧插补
(3-21)
由于第一象限顺圆对应 Y坐标值逐渐减小, 所以式 (3-21)
中表达式中取负号, 即 Vx,Vy均取绝对值计算 。
2,数字积分法圆弧插补
第一象限顺圆如图 3-21,圆弧的圆心在坐标原点 O,起点
为 A( Xa,Ya), 终点为 B( Xb,Yb) 。 圆弧插补时, 要求刀
具沿圆弧切线作等速运动, 设圆弧上某一点 P( X,Y) 的速
度为 V,则在两个坐标方向的分速度为 Vx,Vy,根据图中几
何关系, 有如下关系式
(3-20)
对于时间增量而言, 在 X,Y坐标轴的位移增量分别为
kXVYVRV yx ???
tkXtVY
tkYtVX
y
x
???????
?????
与 DDA直线插补类似, 也可用两个积分器来实现圆弧插补, 如图 3-22
所示 。
Δt
○
○
Δx
Δy
图 3-22 第一象限顺圆弧插补器
X函数寄存器 JVX
与门
X累加器 JRX
Y函数寄存器 JVY
与门
Y累加器 JRY
DDA圆弧插补与直线插补的主要区别为:
( 1) 圆弧插补中被积函数寄存器寄存的坐标值与对应坐
标轴积分器的关系恰好相反 。
( 2) 圆弧插补中被积函数是变量, 直线插补的被积函数
是常数 。
( 3) 圆弧插补终点判别需采用两个终点计数器 。 对于直
线插补, 如果寄存器位数为 n,无论直线长短都需迭代
2n次到达终点 。
例 3-4 设有第一象限顺圆 AB,如图 3-23所示, 起点
A( 0,5), 终点 B( 5,0), 所选寄存器位数 n=3。 若
用二进制计算, 起点坐标 A( 000,101), 终点坐标 B
( 101,000), 试用 DDA法对此圆弧进行插补 。
其插补运算过程见表 3-4。
累加次
数
( Δ t)
X 积分器 Y 积分器
J
VX
J
RX
Δ X J
EX
J
VY
J
RY
Δ Y J
EY
0 5 0 5 0 0 5
101 101 000 000 101
1 5 0+ 5= 5 5 0 0 + 0 = 0 5
101 000 + 101 = 101 101 000 000 + 000 = 000 101
2 5 5+ 5= 8+ 2 1 4 0 0 + 0 = 0 5
101 101 + 101 = 1 010 100 000 000 + 000 = 000 101
1
001
表 3-4 DDA圆弧插补运算过程
3 5 5+ 2= 7 4 1 1 5
101 101 + 010 = 111 100 001 001 + 000 = 001 101
4 5 5+ 7= 8+ 4 1 3 1 1+ 1= 2 5
101 101 + 111 = 1 100 01 1 001 001 + 001 = 010 101
2
010
5 5 5+ 4= 8 + 1 1 2 2 2+ 2= 4 5
101 101 + 100 = 1 001 010 010 010 + 010 = 100 101
3
01 1
6 5 5 + 1 = 6 2 3 3 + 4 = 7 5
101 101 + 001 = 1 1 0 010 0 1 1 0 1 1 + 100 = 111 101
7 5 5 + 6 = 8 + 3 1 1 3 3 + 7 = 8 + 2 1 4
101 101 + 1 1 0 = 1 0 1 1 001 0 1 1 0 1 1 + 111 = 1 010 100
4 4
100 100
8 4 4 + 3 = 7 1 4 4 + 2 = 6 4
100 100 + 0 1 1 = 111 001 100 100 + 010 = 1 1 0 100
9 4 4+ 7= 8+ 3 1 0 4 4+ 6= 8+ 2 1 3
100 100 + 111 = 1 01 1 000 100 100 + 1 10 = 1 010 01 1
3 5
01 1 101
10 3 停止 5 5+ 2= 7 3
01 1 101 101 + 010 = 111 01 1
11 3 5 5+ 7= 8+ 4 1 2
01 1 101 101 + 111 = 1 100 010
2
010
12 2 5 5+ 4= 8+ 1 1 1
010 101 101 +100= 1 001 001
1
001
13 1 5 5+ 1= 6 1
001 101 101 + 001 = 1 10 001
14 1 5 5+ 6= 8+ 3 1 0
001 101 101 +1 10= 1 01 1 000
0
000
15 0 5 停止
101
A (0,5 )
4
2
3
5
4
Y
O
1 2 3
X
B (5,0 )
5
1
图 3-23 DDA圆弧插补实例
3,数字积分法插补的象限处理
DDA插补不同象限直线和圆弧时, 用绝对
值进行累加, 把进给方向另做讨论 。
DDA插补是沿着工件切线方向移动, 四个
象限直线进给方向如图 3-24所示 。
圆弧插补时被积函数是动点坐标, 在插补过
程中要进行修正, 坐标值的修改要看动点运动
是使该坐标绝对值是增加还是减少, 来确定是
加 1还是减 1。 四个象限直线进给方向和圆弧插
补的坐标修改及进给方向如表 3-5所示 。
Y
Y
L2 L1 NR2 NR1
SR2 SR1
X X
SR3 SR4
L3 L4 NR3 NR4
图 3-24 四象限直线插补进给方向
图 3-25四象限圆弧插补进给方向
内容 L1 L2 L3 L4
进给 ΔX + - - +
修正 JVY
进给 ΔY + + - -
修正 JVX
表 3-5 直线进给方向,
NR1 NR2 NR3 NR4 SR1 SR2 SR3 SR4
- - + + + + - -
-1 +1 -1 +1 +1 -1 +1 -1
+ - - + - + + -
+1 -1 +1 -1 -1 +1 -1 +1
表 3-5 圆弧插补进给方向及坐标修改
4,数字积分法合成进给速度
数字积分法的特点是, 脉冲源每产生一个脉冲, 作一
次累加计算, 如果脉冲源频率为 fg( Hz), 插补直线
的终点坐标为 E( Xe,Ye), 则 X,Y方向的平均进给频
率 fx,fy为
(3-22)
式中 m—累加次数 。
假设脉冲当量为 ( mm/脉冲 ), 可求得 X和 Y方向进给速
度 ( mm/min)
g
e
y
g
e
x
f
m
Y
f
f
m
X
f
?
?
m
Y
ffV
m
X
ffV
e
gyy
e
gxx
??
??
6060
6060
??
??
nm 2?
假设脉冲当量为 ( mm/脉冲 ), 可求得 X和 Y方向进给速度
( mm/min)
(3-23)
合成进给速度为
(3-24)
式中 L—被插补直线长度, ; 若插补圆弧, L应为
圆弧半径 R。
Vg—脉冲源速度, 。
m
Y
ffV
m
X
ffV
e
gyy
e
gxx
??
??
6060
6060
??
??
m
LVVVV
gyx ??? 22
22 ee YXL +=
gg fV ?60?
数控加工程序中 F代码指定进给速度后, fg基本维持不
变 。 这样合成进给速度 V与被插补直线的长度或圆弧的
半径成正比 。 如图 3-26所示, 如果寄存器位数是 n,加
工直线 L1,L2都要经过 m= 2n累加运算, L1直线短, 进
给慢, 速度低; L2直线长, 进给快, 速度高 。 加工 L1
生产效率低;加工 L2零件表面质量差 。
L1 V1
L2
V2
图 3-26 进给速度与直线长度的关系
5,数字积分法稳速控制
(1) 左移规格化
,左移规格化, 就是将被积函数寄存器中存放数值的前
零移去 。
直线插补时, 当被积函数寄存器中所存放最大数的最高
位为 1时, 称为规格化数, 反之, 若最高位为零, 称为
非规格化数 。
直线插补左移规格化数的处理方法是:将 X轴与 Y轴被积
函数寄存器里的数值同时左移 ( 最低位移入零 ), 直
到其中之一最高位为 1时为止 。
若被积函数左移 i位成为规格化数, 其函数值扩大 2i倍,
为了保持溢出的总脉冲数不变, 就要减少累加次数 。
in
i
nk ??? 2
12
2
1 inm ?? 2
被积函数扩大一倍, 累加次数减少一倍 。 具体实现,
当被积函数左移 i位时, 终点判别计数器右移 ( 最高位
移入 1), 使终点计数器 JE使用长度减少 i位, 实现累加
次数减少的目的 。 如果直线终点坐标为 ( 10,6), 寄
存器与累加器位数是 8,其规格化前后情况如下所示:
规格化前 规格化后
Xe=00001010 Xe=10100000
Ye=00000110 Ye=01100000
JE=00000000 JE=11110000
圆弧插补左移规格化与直线不同之处:被积函数寄存器
存放最大数值的次高位是 1为规格化数 。
圆弧左移规格化后, 扩大了寄存器中存放的数值 。
左移 i位, 相当于乘 2i,即 X轴与 Y轴被积函数寄
存器存放的数据变为 2iY,2iX,这样, 假设 Y轴
有脉冲溢出时, 则 X轴被积函数寄存器中存放
的坐标被修正为
上式指明, 规格化处理后, 插补中的坐标修正
加 1或减 1,变成了加 2i或减 2i。
直线和圆弧插补时规格化数处理方式不同, 但均
能提高溢出速度, 并能使溢出脉冲变得比较均
匀 。
iiii YYY 22)1(22 ????
(2) 按进给速率数 FRN编程
为实现不同长度程序段的恒速加工, 在编程时考虑被
加工直线长度或圆弧半径, 采用 FRN来表示, F”功能,
( 直线 ), 或 ( 圆弧 )
式中 V—要求的加工切削速度;
L—被加工直线长度;
R—被加工圆弧半径 。
因为
所以 ( 3-25)
由上式可见, FRN编程, 其实质是控制迭代频率 fg,fg与
V/L( 直线插补 ) 或 V/R( 圆弧插补 ) 成正比, 当插补
尺寸 L或 R不同时, 使迭代频率作相应改变, 以保证所
选定的进给速度 。
F R NmLVmf g ?? 6060 ??
m
LfV
g?60?
L
VFRN =
R
VFRN =
(3) 提高插补精度的措施
对于 DDA圆弧插补, 径向误差可能大于一个脉
冲当量, 因数字积分器溢出脉冲的频率与被积
函数寄存器中的数值成正比, 在坐标轴附近进
行累加时, 一个积分器的被积函数值接近零,
而另一个积分器的被积函数接近于最大值, 累
加时后者连续溢出, 前者几乎没有, 两个积分
器的溢出脉冲频率相差很大, 致使插补轨迹偏
离给定圆弧距离较大, 使圆弧误差增大 。
减少误差的方法有:减小脉冲当量, 误差减少,
但寄存器容量增大, 累加次数增加 。 而且要获
得同样的进给速度, 需要提高插补速度 。
还可采用余数寄存器预置数法, 即在 DDA插补之前,
累加器又称余数寄存器 JRX,JRY的初值不置零, 而是预
置 2n/2,若用二进制表示, 其最高有效位置, 1”,其它
各位置零, 若再累加 100… 000,余数寄存器就可以产
生第一个溢出脉冲, 使积分器提前溢出 。 这种处理方
式称为, 半加载,, 在被积函数值较小, 不能很快产
生溢出脉冲的情况下, 可使脉冲提前溢出, 改变了溢
出脉冲的时间分布, 达到减少插补误差的目的 。
例 3-5 加工第一象限顺圆 AB,如图 3-27,起点 A( 0,
5), 终点 B( 0,5) 选用寄存器位数 n=3,经过, 半
加载, 处理后, 试用 DDA法进行插补计算 。
其插补运算过程见表 3-5。
X 积分器 Y 积分器
累加
次数
( Δ t)
J
VX
J
RX
Δ X J
EX
J
VY
J
RY
Δ Y J
EY
0 5 4 5 0 4 5
1 5 5 + 4 = 8 + 1 1 4 0
1
0 + 4 = 4 5
2 5 5 + 1 = 6 4 1 1 + 4 = 5 5
3 5 5 + 6 = 8 + 3 1 3 1
2
1 + 5 = 6 5
4 5
4
5 + 3 = 8 + 0 1 2 2
3
2 + 6 = 8 + 0 1 4
5 4 4 + 0 = 4 2 3 3 + 0 = 3 4
6 4 4 + 4 = 8 + 0 1 1 3
4
3 + 3 = 6 4
7 4
3
4 + 0 = 4 1 4 4 + 6 = 8+ 2 1 3
8 3 3 + 4 = 7 1 4 4 + 2 = 6 3
9 3
2
3+ 7 = 8+ 2 1 0 4
5
4 + 6 = 8+ 2 1 2
10 2
停止
5 5 + 2 = 7 2
11 2
1
5 5 + 7 = 8+ 4 1 1
12 1
0
5 5 + 4 = 8+ 1 1 0
停止
图 3-27,半加载, 后 DDA圆弧插补实例
4
2
A (0,5 )
3
5
4
y
O
1 2 3
x
B (5,0 )
5
1
二,数据采样法
(一) 数据采样法原理
数据采样插补又称为时间分割法,与基准脉冲
插补法不同,数据采样插补法得出的不是进给脉冲,
而是用二进制表示的进给量。这种方法是根据程编进
给速度 F,将给定轮廓曲线按插补周期 T(某一单位时
间间隔)分割为插补进给段(轮廓步长),即用一系
列首尾相连的微小线段来逼近给定曲线。每经过一个
插补周期就进行一次插补计算,算出下一个插补点,
即算出插补周期内各坐标轴的进给量,如等,得出下
一个插补点的指令位置。
插补周期越长,插补计算误差越大,插补周期
应尽量选得小一些。 CNC系统在进行轮廓插补控制时,
除完成插补计算外,数控装置还必须处理一些其它任
务,如显示、监控、位置采样及控制等。
因此,插补周期应大于插补运算时间和其它实
时任务所需时间之和。插补周期大约在 8ms左右。
采样是指由时间上连续信号取出不连续信号,
对时间上连续的信号进行采样, 就是通过一个采样开
关 K( 这个开关 K每隔一定的周期 TC闭合一次 ) 后, 在
采样开关的输出端形成一连串的脉冲信号 。 这种把时
间上连续的信号转变成时间上离散的脉冲系列的过程
称为采样过程, 周期 TC叫采样周期 。
计算机定时对坐标的实际位置进行采样,采样
数据与指令位置进行比较,得出位置误差用来控制电
动机,使实际位置跟随指令位置。对于给定的某个数
控系统,插补周期 T和采样周期 TC是固定的,通常 T≥ TC,
一般要求 T是 TC的整数倍。
对于直线插补,不会造成轨迹误差。在圆弧插
补中,会带来轨迹误差。
如图 3-28所示, 用弦线逼近圆弧, 其最大径向误
差 er为
(3-26)
式中 R—被插补圆弧半径 ( mm) ;
—角步距, 在一个插补周期内逼近弦所对应的圆心角 。
将式 (3-26)中的 用幂级数展开, 得
(3-27)
)2c o s1( ??? Re r
?
)2/c o s (?
)2c o s1( ??? Re r
? ? ? ?
??
?
?
?
??
?
?
?
?
?
?
?
?
?
????? ?
22
!4
2/
!2
2/11 ??R
R8
2?
?
设 T为插补周期, F为进给速度, 则轮廓步长为
(3-28)
用轮廓步长代替弦长, 有
(3-29)
将 (3-29)代入式 ( 3-27),得
(3-30)
可见, 圆弧插补过程中, 用弦线逼近圆弧时, 插补误差 er
与程编进给速度 F的平方, 插补周期 T的平方成正比,
与圆弧半径 R成反比 。
TFl ?
?? Rl? RTF
R
TFe
r 8
)( 2?
图 3-28 弦线逼近圆弧 图 3-29 直线插补原理
(二 ) 直线函数法
1,直线插补
设要加工图 3-29所示直线 OE,起点在坐标原点 O,终点
为 E( ), 直线与 X轴夹角为, 则有
若已计算出轮廓步长, 从而求得本次插补周期内各坐标
轴进给量为
(3-31)
e
e
X
Ytg ??
?
?
21
1co s
tg?
?
x
X
Y
Y
lX
e
e ???
?? ?c o s
2,圆弧插补
圆弧插补, 需先根据指令中的进给速度 F,计算出轮
廓步长 l,再进行插补计算 。 以弦线逼近圆弧, 就是以
轮廓步长为圆弧上相邻两个插补点之间的弦长, 由前
一个插补点的坐标和轮廓步长, 计算后一插补点, 实
质上是求后一插补点到前一插补点两个坐标轴的进给
量 ΔX,ΔY。 如图 3-30 所示, A(Xi,Yi)为当前点,
B(Xi+1,Yi+1) 为插补后到达的点, 图中 AB弦正是圆弧插
补时在一个插补周期的步长 l,需计算 x轴和 y轴的进给
量 ΔX=Xi+1-Xi, ΔY=Yi+1-Yi 。 AP是 A点的切线, M是
弦的中点, OM⊥ AB,ME ⊥ AG,E为 AG的中点 。 圆心
角计算如下
式中 δ—轮廓步长所对应的圆心角增量, 也称为角步距 。
??? ??? ii 1
图 3-30 圆弧插补
因为 OA AP (AP为圆弧切线 )
所以 △ AOC∽ △ PAG
则 ∠ AOC= ∠ GAP=
因为 ∠ PAB+∠ OAM=900
所以 ∠ PAB= ∠ AOM=∠ AOB=
设 = ∠ GAB= ∠ GAP+ ∠ PAB=
△ MOD中
将 DH=Xi,OC= Yi,HM=,
CD=
代入上式, 则有
?21
? ??
2
1?
i
CDOC
HMDH
OD
DMtg
i ?
???
?
??
?
? ? =??
2
1
Xl ?? 21c o s ?
Yl ?? 21s i n21 ?
2
1
(3-32)
又因为
由此可以推出 的关系式
(3-33)
式 (3-33)反映了圆弧上任意相邻两插补点坐标之间
的关系, 只要求得 和, 就可以计算出新的插补点
YY
XX
lY
lX
tgtg
i
i
i
i
i
??
??
?
?
??
?
?
?
?
? ??
2
1
2
1
s i n
2
1
c o s
2
1
2
1
=
?
?
???
X
Y
GA
GBtg
?
????
yxyx ii ??,)与,(
?
?
s i n
2
1
c o s
2
1
2
1
2
1
lY
lX
YY
XX
X
Y
i
i
i
i
?
?
?
??
??
?
?
?
YYY
XXX
ii
ii
???
???
?
?
1
1
X? Y?
),( 11 ?? ii YXB
式 (3-33)中, 和 均为未知, 求解较困难 。 为此,
采用近似算法, 用 和 代替 和, 即
′与 不同, 从而造成了 的偏差, 在 处偏
差较大 。 如图 3-31所示, 由于角 成为 ′,因而影
响到 值, 使之为 ′
(3-34)
为保证下一个插补点仍在圆弧上, ′的计算应按下
式进行
?
?
45s i n
2
1
45c o s
2
1
'
lY
lX
tg
i
i
?
?
??
?tg ?tg ?0=?
?
?
X? X?
ATlX ????? ?c o s
Y?
? ? ? ? 2222 YYXXYX iiii ?????????
?
?
?
经展开整理得
(3-35)
由式 (3-35) 可用迭代法解出 。
采用近似算法可保证每次插补点均在圆弧上, 引起的偏
差仅是 。 这种算法仅
造成每次插补进给量的微小变化, 而使进给速度有偏
差, 实际进给速度的变化小于指令进给速度的 1%, 在
加工中是允许的 。
XY
XXY
Y
i
i
???
???
?
?
?
?
? ?
??
???
2
1
2
1
Y??
llASABYYXX ??????????? 即,,
图 3-31 近似处理引起的进给速度偏差
Δ X
Δ X′
A
O
B
S
T F
Δ Y′ Δ Y
Y
X
α
α ′
直线函数法, 用弦线逼近圆弧, 因此插补误差主要为半
径的绝对误差 。 因插补周期是固定的, 该误差取决于进给速
度和圆弧半径, 当加工的圆弧半径确定后, 为了使径向绝对
误差不超过允许值, 对进给速度要有一个限制 。
T
ReF r8?
(三 ) 扩展 DDA数据采样插补
1,扩展 DDA直线插补
Y E(Xe,Ye)
V
vy
Vx
O X
图 3-32 扩展 DDA直线插补
假设根据编程进给速度, 要在时间段 T1内走完图 3-32
所示直线, 其起点为坐标原点 O,终点坐标为 E( Xe,
Ye), V为进给速度 ( 零件加工程序中记为 F), Vx与
Vy分别为 X,Y坐标的分速度 。 则有
(3-36)
将时间 T1用插补周期 T分割为 n个子区间 ( n取 ≥ 最接
近的整数 ), 从而在每个插补周期 T内的坐标增量分别为
V
YX
Y
V
V
YX
X
V
ee
e
y
ee
e
x
22
22
?
?
?
?
TT1
T
T1
式中 V—编程的进给速度 ( mm/min) ;
T—插补周期 ( ms) ;
—根据插补周期换算后的时间常数,
FRN—进给速率数,
式中 L—插补直线长度 (mm)。
ete
ee
x XFRNTX
YX
VTVX ??
?
???
22
ete
ee
y YF R NTY
YX
VTVY ??
?
???
22
60/10* 3?? Tt?
L
V
YX
VF R N
ee
=22
?
?
t?
对于同一直线来说, 由于 V和 Xe,Ye,以及 均为常数,
可以记作, 称为步长系数 。
( 3-37)
故同一条直线在每个采样周期内增量 的常
数均相同, 在每个插补周期内算出 后, 就
可以得到本插补周期末的刀具位置坐标值
(3-38)
由于插补中每次迭代形成的子线段斜率 ( ) 等于
给定直线斜率, 从而保证了轨迹要求 。
t?
ed
ed
YY
XX
?
?
??
??
YX ?? 和
11 ?? ii YX 和
YYY
XXX
ii
ii
???
???
?
?
1
1
XY ?? /
YX ?? 和
2,扩展 DDA圆弧插补
如图 3-33所示为第一象限顺圆弧 AiQ,圆心在坐标原
点 O,半径为 R。 设刀具处在 Ai( Xi,Yi) 点位置 。 若在
一个插补周期 T内, 用 DDA插补法沿切线方向进给的步
长为, 一个插补周期后达到 C点, 即 。 由图可
见, 它的径向误差较大 。 扩展 DDA插补算法, 就是将
切线逼近圆弧转化为割线逼近圆弧, 以减少插补误差,
具体步骤如下:
先通过 AiC微小线段的中点 B作以 OB为半径的圆弧的
切线 BD,再通过 Ai点作 BD的平行线 AiH,即 AiH ∥ BD,
并在 AiH上截取, 如果 OB与 AiH的交点
为 M,在直角 △ AiMB中, 斜边, 直角
边,,所以 Ai+1点落在圆弧外侧 。 扩展 DDA
用割线 线段代替切线, 使径向误差减少了 。
lCAi ?
lCAAA iii ??? 1
lMAi 21?
1?ii AA
lCAAA iii ??? 1
图 3-33 扩展 DDA圆弧插补
下面计算在插补周期 T内轮廓进给步长 l的坐标分量 △ X和
Y,△ 就可以得到本次插补周期后到达的位置 Ai+1
由图 3-33可见, 在直角 △ OEAi中, OAi和 AiE的夹角为 α,
则
(3-39)
(3-40)
设刀具以恒速进给, 即在每个插补周期 T内的进给速度均
为 V,则 。 过 B点作 X轴的平行线 BF交 Y
轴于 F点, 交 AiE线段于 G点 。 过 Ai+1点作 Ai+1N平行 X轴,
交 AiE于 N点 。 由图 3-33可以看出, 直角 △ OFB与直角
△ AiNAi+1相似, 从而有比例关系:
(3-41)
R
x
OA
OE i
i
???s i n
R
y
OA
EA i
i
i ???c o s
OB
OF
AA
NA
ii
i ?
?
?
1
1
VTlAA ii ??? 1
式中
在直角 △ AiGB中
因此
在直角 △ OAiB中
XNA i ??? 1
VTlAA ii ?? =1
?? s i n21s i n lBAGA ii ??
?s i n21 lYGAEAOF iii ???=
? ? ? ? 2
2
22
2
1 RlOABAOB
ii ???
??
?
????
将以上各式代入式 ( 3-41) 有
将式 ( 3-39) 代入上式并整理, 得
2
2
2
1
s i n
2
1
Rl
ly
l
x i
??
?
?
?
?
?
?
?
?
?
2
2
2
1
2
1
Rl
R
x
lyl
x
i
i
??
?
?
?
?
?
?
?
?
?
?
?
?
??
因为 l<<R,故将 略去不计, 则上式变为
若令
则 (3-42)
?????? ???????? ??? ititii xRVyRVRxlyRlx ?? 2121
60/10* 3?? Tt?
ttd F R NR
V ??? ??
?
?
??
?
? ???
idid xyx ?? 2
1
另外, 从直角 △ OFB与直角 △ AiNAi+1相似, 还可
以得出
即
已知 =
OB
FB
AA
NA
ii
i ?
? 1
OB
GBFG
AA
NA
ii
i ??
? 1
VTl ?
1?ii AA
2
2
2
1 RlOB ??
?
??
?
??
由直角 △ AiGB得
而
2
2
2
1
2
1
Rl
R
y
lxl
NAy
i
i
i
??
?
?
?
?
?
?
?
?
?
?
?
?
???
ixFG ?
R
ylBAGB i
i 2
1c o s ?? ?
同理, 因 l<<R,故 略去不计, 则
仍令
则 ( 3-43)
2
2
1 ?
?
??
?
? l
???
?
???
? ???
R
ylx
R
ly i
i 2
1
ttd F R NR
V ??? ??
60/10* 3?? Tt?
?
?
??
?
? ???
idid yxy ?? 2
1
由于 Ai(Xi,Yi)为已知, 故用式 ( 3-42) 和 ( 3-43)
求得 Δ X和 Δ Y,因而可算出本次插补周期刀具应达到的
坐标位置 xi+1,yi+1值, 即
YYY
XXX
ii
ii
???
???
?
?
1
1
第三节 刀具补偿原理
一, 为什么要进行刀具补偿
如图 3-34所示, 在铣床上用半径为 r的刀具加工外
形轮廓为 A的工件时, 刀具中心沿着与轮廓 A距离为 r的
轨迹 B移动 。 我们要根据轮廓 A的坐标参数和刀具半径 r
值计算出刀具中心轨迹 B的坐标参数, 然后再编制程序
进行加工, 因控制系统控制的是刀具中心的运动 。 在
轮廓加工中, 由于刀具总有一定的半径, 如铣刀半径
或线切割机的钼丝半径等 。 刀具中心 ( 刀位点 ) 的运
动轨迹并不等于所加工零件的实际轨迹 ( 直接按零件
廓形编程所得轨迹 ), 数控系统的刀具半径补偿就是
把零件轮廓轨迹转换成刀具中心轨迹 。
r 刀具
A
r B
图 3-34 刀具半径补偿
当实际刀具长度与编程长度不一致时, 利用刀具
长度补偿功能可以实现对刀具长度差额的补偿 。
加工中心:一个重要组成部分就是自动换刀装置,
在一次加工中使用多把长度不同的刀具, 需要有刀具
长度补偿功能 。
轮廓铣削加工:为刀具中心沿所需轨迹运动, 需
要有刀具半径补偿功能 。
车削加工:可以使用多种刀具, 数控系统具备了
刀具长度和刀具半径补偿功能, 使数控程序与刀具形
状和刀具尺寸尽量无关, 可大大简化编程 。
具有刀具补偿功能, 在编制加工程序时, 可以按
零件实际轮廓编程, 加工前测量实际的刀具半径, 长
度等, 作为刀具补偿参数输入数控系统, 可以加工出
合乎尺寸要求的零件轮廓 。
刀具补偿功能还可以满足加工工艺等其他一些要
求, 可以通过逐次改变刀具半径补偿值大小的办法,
调整每次进给量, 以达到利用同一程序实现粗, 精加
工循环 。 另外, 因刀具磨损, 重磨而使刀具尺寸变化
时, 若仍用原程序, 势必造成加工误差, 用刀具长度
补偿可以解决这个问题 。
二, 刀具补偿原理
刀具补偿一般分为刀具长度补偿和刀具半径补偿 。
铣刀主要是刀具半径补偿;
钻头只需长度补偿;
车刀需要两坐标长度补偿和刀具半径补偿 。
1,刀具长度补偿
以数控车床为例进行说明, 数控装置控制的是刀架参考
点的位置, 实际切削时是利用刀尖来完成, 刀具长度
补偿是用来实现刀尖轨迹与刀架参考点之间的转换 。
如图 3-35所示, P为刀尖, Q为刀架参考点, 假设刀尖
圆弧半径为零 。 利用刀具长度测量装置测出刀尖点相
对于刀架参考点的坐标 xpq,zpq,存入刀补内存表中 。
零件轮廓轨迹是由刀尖切出的, 编程时以刀尖点 P来编程,
设刀尖 P点坐标为 xp,zp,刀架参考点坐标 Q( xq,zq)
可由下式求出:
(3-45)
这样, 零件轮廓轨迹通过式 (3-45)补偿后, 就能通过控制
刀架参考点 Q来实现 。
pqpq
pqpq
zzz
xxx
??
??
图 3-35 刀具长度补偿
P (x
p
,z
p
)
Q
z
pq
x
pq
加工中心上常用刀具长度补偿, 首先将刀具装
入刀柄, 再用对刀仪测出每个刀具前端到刀柄基准面
的距离, 然后将此值按刀具号码输入到控制装置的刀
补内存表中, 进行补偿计算 。 刀具长度补偿是用来实
现刀尖轨迹与刀柄基准点之间的转换 。
在数控立式镗铣床和数控钻床上, 因刀具磨损,
重磨等而使长度发生改变时, 不必修改程序中的坐标
值, 可通过刀具长度补偿, 伸长或缩短一个偏置量来
补偿其尺寸的变化, 以保证加工精度 。
刀具长度补偿原理比较简单, 由 G43,G44及 H
( D) 代码指定 。
2,刀具半径补偿
ISO标准规定, 当刀具中心轨迹在编程轨迹 ( 零件轮廓
ABCD) 前进方向的左侧时, 称为左刀补, 用 G41表示 。
反之, 当刀具处于轮廓前进方向的右侧时称为右刀补,
用 G42表示, 如图 3-36所示 。 G40为取消刀具补偿指令 。
y y
B C D C
刀补进行
A D A B 刀补
刀补建立 刀补撤销 进行
刀补撤销 刀补建立
O x O x
a) G41左刀补 b) G42右刀补
图 3-36 刀具补偿方向
在切削过程中, 刀具半径补偿的补偿过程分为三
个步骤:
( 1) 刀补建立 刀具从起刀点接近工件, 在原来的
程序轨迹基础上伸长或缩短一个刀具半径值, 即刀具
中心从与编程轨迹重合过渡到与编程轨迹距离一个刀
具半径值 。 在该段中, 动作指令只能用 G00或 G01。
( 2) 刀具补偿进行 刀具补偿进行期间, 刀具中心
轨迹始终偏离编程轨迹一个刀具半径的距离 。 在此状
态下, G00,G01,G02,G03都可使用 。
( 3) 刀补撤销 刀具撤离工件, 返回原点 。 即刀具
中心轨迹从与编程轨迹相距一个刀具半径值过渡到与
编程轨迹重合 。 此时也只能用 G00,G01。
三, 刀具半径补偿算法
刀具半径补偿计算:根据零件尺寸和刀具半径值
计算出刀具中心轨迹 。 对于一般的 CNC装置, 所能实现
的轮廓仅限于直线和圆弧 。 刀具半径补偿分 B功能刀补
与 C功能刀补, B功能刀补能根据本段程序的轮廓尺寸
进行刀具半径补偿, 不能解决程序段之间的过渡问题,
编程人员必须先估计刀补后可能出现的间断点和交叉
点等情况, 进行人为处理 。 B功能刀补计算如下:
1,直线刀具补偿计算
对直线而言, 刀具补偿后的轨迹是与原直线平行
的直线, 只需要计算出刀具中心轨迹的起点和终点坐
标值 。
如图 3-37所示, 被加工直线段的起点在坐标原点, 终
点坐标为 A。 假定上一程序段加工完后, 刀具中心在 O′
点坐标已知 。 刀具半径为, 现要计算刀具右补偿后直
线段 O′A′的终点坐标 A′。 设刀具补偿矢量 AA′的投影坐
标为,则
(3-46)
(3-47)
YYY
XXX
????
????
?????? AKAx OA
22
s i n
YX
YrrX
?
??? ?
22c o s YX
XrrY
?
????? ?
(3-48)
(3-48)式为直线刀补计算公式, 是在增量编程下推导出的 。
对于绝对值编程, 仍可应用此公式计算, 所不同的是
应是绝对坐标 。
22 YX
rXYY
?
???
22 YX
rYXX
?
???
图 3-37 直线刀具补偿 图 3-38 圆弧刀具半径补偿
y
O
x
Δ X
y
α
K
A ′ (X ′,Y ′ )
r
α
Δ Y
A (X,Y )
B ′ (X
b
′,Y
b
′ )
A ′ (X
a
′,Y
a
′ )
Δ X
K
x
B ( X
b
,Y
b
)
Δ Y
O
O ′
R
K
β
A (X a,Y a )
r
2,圆弧刀具半径补偿计算
对于圆弧而言, 刀具补偿后的刀具中心轨迹是一个
与圆弧同心的一段圆弧 。 只需计算刀补后圆弧的起点
坐标和终点坐标值 。 如图 3-38所示, 被加工圆弧的圆
心坐标在坐标原点 O,圆弧半径为 R,圆弧起点 A,终
点 B,刀具半径为 r。
假定上一个程序段加工结束后刀具中心为 A′,其坐
标已知 。 那么圆弧刀具半径补偿计算的目的, 就是计
算出刀具中心轨迹的终点坐标 B′ 。 设 BB′在两个坐
标上的投影 为则
(3-49)
XX b ???bX?
YYY bb ????
?????? BKBB O x
?????? ?? bb YX,
YX ??,
(3-50)
(3-51)
R
Y
rrY
R
X
rrX
b
b
???
???
?
?
s i n
c o s
R
rY
YY
R
rX
XX
b
bb
b
bb
???
???
图 3-39 B刀补示例
加工如图 3-39外部轮廓零件 ABCD时, 由 AB直线段开始,
接着加工直线段 BC,根据给出的两个程序段, 按 B刀
补处理后可求出相应的刀心轨迹 A1B1和 B2C1。
y
D
1
A
D
2
O
B
2
B
C
x
C
2
A
1 B 1
D
C
1
A
2
事实上, 加工完第一个程序段, 刀具中心落在 B1点上,
而第二个程序段的起点为 B2,两个程序段之间出现了
断点, 只有刀具中心走一个从 B1至 B2的附加程序, 即
在两个间断点之间增加一个半径为刀具半径的过渡圆
弧 B1B2,才能正确加工出整个零件轮廓 。
可见, B刀补采用了读一段, 算一段, 再走一段的控
制方法, 这样, 无法预计到由于刀具半径所造成的下
一段加工轨迹对本程序段加工轨迹的影响 。 为解决下
一段加工轨迹对本段加工轨迹的影响, 在计算本程序
段轨迹后, 提前将下一段程序读入, 然后根据它们之
间转接的具体情况, 再对本段的轨迹作适当修正, 得
到本段正确加工轨迹, 这就是 C功能刀具补偿 。 C功能
刀补更为完善, 这种方法能根据相邻轮廓段的信息自
动处理两个程序段刀具中心轨迹的转换, 并自动在转
接点处插入过渡圆弧或直线从而避免刀具干涉和断点
情况 。
图 3-40a给出了普通数控系统的工作方法, 在系统内,
数据缓冲寄存区 BS用以存放下一个加工程序段的信息,
设置工作寄存区 AS,存放正在加工的程序段的信息,
其运算结果送到输出寄存区 OS,直接作为伺服系统的
控制信号 。
图 3-40b为 CNC系统中采用 C刀补方法的原理框图,
与 3-40a不同的是, CNC装置内部又增设了一个刀补缓
冲区 CS。 当系统启动后, 第一个程序段先被读入 BS,
在 BS中算得第一段刀具中心轨迹, 被送到 CS中暂存后,
又将第二个程序段读入 BS,算出第二个程序段的刀具
中心轨迹 。 接着对第一, 第二两段刀具中心轨迹的连
接方式进行判别, 根据判别结果, 再对第一段刀具中
心轨迹进行修正 。
修正结束后, 顺序地将修正后的第一段刀具中心
轨迹由 CS送入 AS中, 第二段刀具中心轨迹由
BS送入 CS中 。
然后, 由 CPU将 AS中的内容送到 OS中进行插补
运算, 运算结果送到伺服系统中予以执行 。 当
修正了的第一段刀具中心轨迹开始被执行后,
利用插补间隙, CPU又命令第三段程序读入 BS,
随后, 又根据 BS和 CS中的第三, 第二段轨迹
的连接情况, 对 CS中的第二程序段的刀具中心
轨迹进行修正 。 依此下去, 可见在刀补工作状
态, CNC内部总是同时存在三个程序段的信息 。
a)
b)
图 3-40 两种数控系统的工作流程
缓冲寄存区
BS
工作寄存区
AS
输出寄存区
OS
输出寄存区
OS
工作寄存区
AS
刀补缓冲区
CS
缓冲寄存区
BS
在 CNC装置中, 处理的基本廓形是直线和圆弧, 它
们之间的相互连接方式有, 直线与直线相接, 直线与
圆弧相接, 圆弧与直线相接, 圆弧与圆弧相接 。 在刀
具补偿执行的三个步骤中, 都会有转接过渡, 以直线
与直线转接为例来讨论刀补建立, 刀补进行过程中可
能碰到的三种转接形式 。 刀补撤销是刀补建立的逆过
程, 可参照刀补建立 。
图 3-41和 3-42表示了两个相邻程序段为直线与直线,
左刀补 G41的情况下, 刀具中心轨迹在连接处的过渡形
式 。 图中 α为工件侧转接处两个运动方向的夹角, 其变
化范围为 00<ɑ< 3600,对于轮廓段为圆弧时, 只要用其
在交点处的切线作为角度定义的对应直线即可 。
在图 3-42a中, 编程轨迹为 FG和 GH,刀具中心轨迹为 AB
和 BC,相对于编程轨迹缩短一个 BD与 BE的长度, 这种
转接为缩短型 。
图 3-42b中, 刀具中心轨迹 AB和 BC相对于编程轨迹 FG和
GH伸长一个 BD与 BE的长度, 这种转接为伸长型 。 图
3-42c中, 若采用伸长型, 刀心轨迹为 AM和 MC,相对
于编程轨迹 FG和 GH来说, 刀具空行程时间较长, 为
减少刀具非切削的空行程时间, 可在中间插入过渡直
线 BB1,并令 BD等于 B1E且等于刀具半径 r,这种转接为
插入型 。 根据转接角 α不同, 可以将 C刀补的各种转接
过渡形式分为三类:
( 1) 当 1800< ɑ<3600时, 属缩短型, 见图 3-41a和 3-42a。
( 2) 当 900≤ɑ<1800时, 属伸长型, 见图 3-41b和 3-42b。
( 3) 当 00< ɑ<900时, 属插入型, 见图 3-41c和 3-42c。
图 3-41 G41刀补建立示意图
y
r
y
r
x
y
α
x O
r
x
r
O O
α
α
r
r
a) b) c)
图 3-42 刀补进行直线与直线转接情况
A
C
A
r
r
r
A
r
a) b)
c)
r
B
α r
α
C
B
α
r
B
C
B
1
M
r
D
E
F
G
H
F
H
G
D
E
F
D
E
G
H
四, 刀具补偿的几种特殊情况
1,在切削过程中改变刀补方向
如图 3-43所示, 切削轮廓 MN段采用 G42刀补, 而后加工 PQ
段, 改变了刀补方向, 应采用 G41刀补, 这时必须在 P
点产生一个具有长度为刀具半径的垂直矢量以获得一
段过渡圆弧 AB。
A G42
B
r1 r2 r2
P G41 N M r1
Q
N11 N12
图 3-43 刀补方向改变的切削实例 图 3-44 刀补半径改变的实例
2,改变刀具半径值
在零件切削过程中刀具半径值改变了, 则新的补偿
值在下个程序段中产生影响 。 如图 3-44所示, N10段补
偿用刀具半径 r1,N11段变为 r2后, 则开始建立新的刀
补, 进入 N12段后即按新刀补 r2进行补偿 。 刀具半径的
改变可通过改变刀具号或通过操作面板等方法来实现 。
3,过切问题
( 1) 刀具半径补偿可使刀具中心轨迹在走刀平面
( 如 xy面 ) 内偏移零件轮廓一个刀具半径值 。 在刀补
建立后的刀补进行中, 如果存在有二段以上没有移动
指令或存在非指定平面轴的移动指令段, 则可能产生
过切 。 如图 3-45所示, 设刀具开始位置距工件
表面上方 50mm,切削深度为 8mm。 z轴垂直于走刀平
面 ( xy面 ), 则按下述方法编程, 会产生过切 。
N01 G91 G41 G00 X20.0 Y10.0 H01 ;
N02 Z-48.0 ;
N03 G01 Z-10.0 F200 ;
N04 Y30.0 ;
N05 X30.0 ;
N06 Y-20.0 ;
N07 X-40.0 ;
N08 G00 Z58.0 ;
N09 G40 X-10.0 Y-20.0 ;
N10 M02 ;
图 3-45 过切现象
当 N01段进入刀补建立阶段后, 读入 N02和
N03两个程序段, 这两个程序段是 Z轴进给指令,
不是刀补平面轴的移动指令, 作不出矢量, 确
定不了前进方向 。 尽管用 G41进入到了刀补状
态, 但刀具中心却未加上刀补, 而直接移动到
了程序给定点 A,当在 A点执行完二, 三程序段
后, 再执行 N04段, 刀具中心由 A点移动到 B,
产生了过切 。
( 2) 在两个运动指令之间有一个位移为零的运
动指令时 。 因为运动为零的程序段没有零件轮
廓信息, 所以刀补时可能产生过切 。
( 3) 在两个运动指令之间有两个辅助功能程序
段, 也可能造成过切, 假设有如下加工程序:
……
N05 G91 X60.0 ;
N06 M08 ; r
N07 M09 ; A B S
N08 Y-15.0 ;
N09 X40,0 ; C D
…… 图 3-46 过切实例
如图 3-46所示, 当 N05程序段加工 AB轮廓, 同时读入
N06和 N07两段, 因这两段为辅助功能指令, 作不出沿
BC轮廓垂直矢量, 而直接到达 S点, 造成过切现象 。
第三节 进给速度控制原理
一, 为什么要控制进给速度
对于任何一个数控机床来说, 都要求能够对进给
速度进行控制, 它不仅直接影响到加工零件的表面粗
糙度和精度, 而且与刀具和机床的寿命和生产效率密
切相关 。
按照加工工艺的需要, 进给速度的给定一般是将
所需的进给速度用 F代码编入程序 。 对于不同材料的零
件, 需根据切削速度, 切削深度, 表面粗糙度和精度
的要求, 选择合适的进给速度 。
在进给过程中, 还可能发生各种不能确定或没有
意料到的情况, 需要随时改变进给速度, 因此还应有
操作者可以手动调节进给速度的功能 。 数控系统能提
供足够的速度范围和灵活的指定方法 。
另外, 在机床加工过程中, 由于进给状态的变化,
如起动, 升速, 降速和停止, 为了防止产生冲击, 失
步, 超程或振荡等, 保证运动平稳和准确定位, 必须
按一定规律完成升速和降速的过程 。
二, 基准脉冲法进给速度控制和加减速控制
1,速度控制
进给速度控制方法和所采用的插补算法有关 。 基准
脉冲插补多用于以步进电机作为执行元件的开环数控
系统中, 各坐标的进给速度是通过控制向步进电机发
出脉冲的频率来实现的, 所以进给速度处理是根据程
编的进给速度值来确定脉冲源频率的过程 。 进给速度 F
与脉冲源频率 f之间关系为
(3-52)
式中 —为脉冲当量 (mm/脉冲 );
f—脉冲源频率 (Hz);
F—进给速度 (mm/min)。
脉冲源频率为
fF ?60=
? ??60Ff ?
下面介绍程序计时法, 利用调用延时子程序的方法
来实现速度控制 。
根据要求的进给速度 F,求出与之对应的脉冲频率 f,
再计算出两个进给脉冲的时间间隔 ( 插补周
期 ),
在控制软件中, 只要控制两个脉冲的间隔时间, 就
可以方便地实现速度控制 。 进给脉冲的间隔时间长, 进
给速度慢;反之, 进给速度快 。 这一间隔时间, 通常由
插补运算时间 tch和程序计时时间 tj两部分组成,
即, 由于插补运算所需时间一般来说是固
定的, 因此只要改变程序计时时间就可控制进给速度的
快慢 。 程序计时时间 ( 每次插补运算后的等待时间 ),
可用空运转循环来实现 。 用 CPU执行延时子程序的方法控
制空运转循环时间, 延时子程序的循环次数少, 空运转
等待时间短, 进给脉冲间隔时间短, 速度就快;延时子
程序的循环次数多, 空运转等待时间长, 进给脉冲间隔
时间长, 速度就慢 。
fT 1?
jch ttT +=
例 3-5 已知系统脉冲当量 δ= 0.01mm/脉冲, 进给速度 F=
300mm/min,插补运算时间 tch= 0.1ms,延时子程序延
时时间为 ty= 0.1ms,求延时子程序循环次数 。
脉冲源频率
插补周期
程序计时时间 tj= T- tch= 1.9(ms)
循环次数 n=tj/ty= 19
程序计时法比较简单, 但占用 CPU时间较长, 适合于较
简单的控制过程 。
)1(500601.060 30060 sFf ????? ?
)(2)(002.01 mssfT ???
2,加减速控制
因为步进电机的启动频率比它的最高运行频率低得多,
为了减少定位时间, 通过加速使电机在接近最高的速
度运行 。 随着目标位置的接近, 为使电机平稳的停止,
再使频率降下来 。 因此步进电机开环控制系统过程中,
运行速度都需要有一个加速 -恒速 -减速 -低恒速 -停止的
过程, 如图 3-47所示 。
图 3-47速度曲线
频率
FK 0
A
时间或距离
FK
FK 1
B
C
x
加速 减速
恒速
低速
O
三, 数据采样法进给速度控制和加减速控制
1,速度控制
数据采样插补方式多用于以直流电机或交流电机作为执
行元件的闭环和半闭环数控系统中, 速度计算的任务
是确定一个插补周期的轮廓步长, 即一个插补周期 T内
的位移量 。
式中 F—程编给出的合成进给速度 ( mm/min) ;
T—插补周期 ( ms) ;
ΔL—每个插补周期小直线段的长度 ( μm) 。
以上给出的是稳定状态下的进给速度处理关系 。 当机床
起动, 停止或加工过程中改变进给速度时, 系统应自
动进行加减速处理 。
FTL 601??
2,加减速控制
自动加减速处理可按常用的指数加减速或直线加减速规
律进行 。 加减速控制多数采用软件来实现 。
V(t) V(t)
Vc A B
t1 t2
O 加速 匀速 减速 t O 加速 匀速 减速 C t
图 3-48 指数加减速 图 3-49 直线加减速
指数加减速控制的目的是将起动或停止时的速度突变变
成随时间按指数规律加速或减速, 如图 3-48所示 。 指
数加减速的速度与时间的关系为
加速时 (3-53)
式中 —时间常数;
Vc—稳定速度 。
匀速时 (3-54)
减速时 (3-55)
直线加减速控制算法使机床在起动和停止时, 速度沿一
定斜率的直线上升或下降, 如图 3-49所示, 速度变化
曲线是 OABC。
?
?
?
?
?
?
?
?
??
?
?
t
c eVtV 1)(
cVtV ?)(
?
t
c eVtV
??)(
进行加减速控制, 首先要计算出稳定速度和瞬时速度 。
所谓稳定速度, 就是系统处于稳定进给状态时, 每插
补一次 ( 一个插补周期 ) 的进给量 。 在数据采样系统
中, 零件程序段中速度命令 ( 或快速进给 ) 的 F值
( mm/min), 需要转换成每个插补周期的进给量 。 另
外为了调速方便, 设置了快速和切削进给二种倍率开
关, 一般 CNC系统允许通过操作面板上进给速度倍率
修调旋钮, 进行进给速度倍率修调 。
稳定速度的计算公式如下:
(3-56)
式中 Vw—稳定速度 ( mm/插补周期 ) ;
T—插补周期 ( ms) ;
F—程编指令速度 ( mm/min) ;
K—速度系数, 调节范围在 0~200%之间, 它包括快速
倍率, 切削进给倍率等 。
1 0 0 060 ??
T K FV
w
稳定速度计算完之后, 进行速度限制检查, 如果稳
定速度超过由参数设定的最高速度, 则取限制的最高
速度为稳定速度 。
所谓瞬时速度 Vi,即系统在每一瞬时, 每个插补周期
的进给量 。 当系统处于稳定进给状态时, Vi= Vw;当
系统处于加速状态时, Vi<Vw;当系统处于减速状态时
Vi>Vw。
现以直线加减速说明其计算方法 。
线性加减速的加速度可按下式计算
(3-57)
式中 F—进给速度 ( mm/min) ;
t—加速时间 ( ms) ;
—加速度 ( mm/(ms)2) 。
t
Fa 51067.1 ???
a
加速时, 系统每插补一次都要进行稳定速度, 瞬时速度
和加速处理 。 当上一个插补周期瞬时进给速度 Vi小于
当前稳定速度 Vw时, 则要加速, 每加速一次, 瞬时速
度为
(3-58)
新的瞬时速度 Vi+1参加插补计算, 对各坐标轴进行分配 。
当上一个插补周期瞬时进给速度 Vi大于当前稳定速度 Vw时,
则要减速 。 减速时, 首先计算出减速区域长度 S,当稳
定速度 Vw和设定的加速度确定后, S可由下式求得
(3-59)
aTVV ii ??? 1
2
2
2 aT
VS w?
减速时, 系统每进行一次插补计算, 都要进行终点判别,
计算出离开终点的瞬时距离 Si。 若本程序段要减速, 且
Si≤S,开始减速处理 。 每减速一次, 瞬时速度为
(3-60)
新的瞬时速度 Vi+1参加插补运算, 对各坐标轴进行分配 。
一直减速到新的稳定速度或减到零 。 若要提前一段距
离开始减速, 将提前量 ΔS作为参数预先设置好, 由下
式计算
(3-61)
aTVV ii ??? 1
S
aT
VS w ??
2
2
2
=
在每次插补结束后, 系统都要根据求出的各轴的插补进
给量, 来计算刀具中心离开本程序段终点的距离 Si,然
后进行终点判别 。
直线插补时 Si的计算应用公式
(3-62)
计算其各坐标分量值, 取其长轴 ( 如 X轴 ), 则瞬时点 A
离终点 E距离 Si为
(3-63)
式中 —X轴 ( 长轴 ) 与直线的夹角, 见图 3-50所示 。
YYY
XXX
ii
ii
???
???
?
?
1
1
?c o s
1???
iei XXS
?
y
E(Xe,Ye)
Ye
A(Xi,Yi) α
Yi
O Xi Xe x
图 3-50 直线插补终点判别
圆弧插补时 Si的计算分圆弧所对应圆心角小于 π和
大于 π两种情况 。 小于 π时, 瞬时点离圆弧终点
的直线距离越来越小, 如图 3-51a所示 。 A( Xi,
Yi) 为顺圆插补上某一瞬时点, B( Xb,Yb) 为
圆弧的终点; AP为 A点在 X方向上离终点的距
离, ; PB为 A在 Y方向离终点的
距离, ; AB=Si。 以 PB为基准 。
则 A点离终点的距离为
(3-64)
ib XXAP -=
ib YYPB ??
?? c o s
1
c o s
1 ?????
ibi YYPBS
y y
A(Xi,Yi) A
P C
D
O x O x
α
α
B(Xb,Yb) B
a)
圆心角小于 π b) 圆心角大于 π
图 3-51 圆弧插补终点判别
大于 π时, 设 A点为圆弧 AB的起点, C点为离
终点的弧长所对应的圆心角等于 π时的分界点,
D点为插补到离终点的弧长所对应的圆心角小
于 π的某一瞬时点, 如图 3-51b所示 。 显然, 此
时瞬时点离圆弧终点的距离 Si的变化规律是,
当从圆弧起点 A开始, 插补到 C点时, Si越来越
大, 直到 Si等于直径;当插补越过分界点 C后,
Si越来越小, 与图 3-51a的情况相同 。 为此, 计
算 Si时首先判别 Si的变化趋势 。 Si若变大, 则不
进行终点判别处理, 直到越过分界点;若 Si变
小, 再进行终点判别处理 。
返回课件首页返回本章首页