1、一、 DDA 直线插补设我们要对 平面上的直线进行脉冲分配,直线起点为坐标原点 ,终点为 ,如图2-8所示。图2-8 合成速度与分速度的关系假定 和 分别表示动点在 和 方向的移动速度,则在 和 方向上的移动距离微小增量 和 应为(2 5)对直线函数来说, 和 是常数,则下式成立:(2 6)式中 K 为比例系数。在 t 时间内,x 和 y 位移增量的参数方程为(2 7)动点从原点走向终点的过程,可以看作是各坐标每经过一个单位时间间隔t 分别以增量 和 同时累加的结果。经过 m 次累加后,x 和y 分别都到达终点 ,即下式成立:(2 8)则 或 (2 9)上式表明,比例系数 K 和累加次数 的关
2、系是互为倒数。因为 m 必须是整数,所以 一定是小数。在选取 K 时主要考虑每次增量 或 不大于1,以保证坐标轴上每次分配进给脉冲不超过一个单位步距,即= 1= 1式中 和 的最大容许值受控制机的位数及用几个字节存储坐标值所限制。如用 TP801(Z80)单板机作控制机,用两个字节存储坐标值,因该单板机为8位机,故 和 的最大容许寄存容量为2 16-1=65 535。为满足 1及 1的条件,即= (2 16-1)1= (2 16-1)1则 如果取 ,则 ,即满足 1的条件。这时累加次数为 次一般情况下,若假定寄存器是 n 位,则 和 的最大允许寄存容量应为2 n-1(各位全1时) ,若取 则
3、显然,由上式决定的 Kxe 和 Kye 是小于1的,这样,不仅决定了系数 ,而且保证了 x 和 y 小于1 的条件。因此,刀具从原点到达终点的累加次数 m 就有当 时,对二进制数来说, 与 的差别只在于小数点的位置不同,将 的小数点左移 n 位即为 。因此在 n 位的内存中存放 ( 为整数)和存放 的数字是相同的,只是认为后者的小数点出现在最高位数 n 的前面。当用软件来实现数字积分法直线插补时,只要在内存中设定几个单元,分别用于存放 及其累加值 和 及其累加值 。将 和 赋一初始值,在每次插补循环过程中,进行以下求和运算:+ + 将运算结果的溢出脉冲 x 和 y 用来控制机床进给,就可走出所
4、需的直线轨迹。综上所述,可以得到下述结论:数字积分法插补器的关键部件是累加器和被积函数寄存器,每一个坐标方向就需要一个累加器和一个被积函数寄存器。一般情况下,插补开始前,累加器清零,被积函数寄存器分别寄存 和 ;插补开始后,每来一个累加脉冲 ,被积函数寄存器里的内容在相应的累加器中相加一次,相加后的溢出作为驱动相应坐标轴的进给脉冲 (或 ) ,而余数仍寄存在累加器中;当脉冲源发出的累加脉冲数 m 恰好等于被积函数寄存器的容量 2n时,溢出的脉冲数等于以脉冲当量为最小单位的终点坐标,刀具运行到终点。数字积分法插补第象限直线的程序流程图如图2-11所示。图2-11 DDA 直线插补流程图下面举例说
5、明 DDA 直线插补过程。设要插补图2 12所示的直线轨迹 OA,起点坐标为 (0,0) ,终点坐标为 (7,10) 。若被积函数寄存器Jvx和 Jvy,余数寄存器 JRx和 JRy,以及终点减法计数器 JE均为四位二进制寄存器,则迭代次数为 m=24=16次时插补完成。在插补前,J E,J Rx,J Ry均为零,J vx和 Jvy分别存放 =7(即二进制的0111) , =10(即二进制的1010) 。在直线插补过程中 Jvx和 Jvy中的数值始终为 和 保持不变。本例的具体轨迹如图2-12中的折线所示,由此可见,经过16次迭代之后, 和 坐标分别有7个和10个脉冲输出。直线插补轨迹与理论曲线的最大误差不超过1个脉冲当量。图2-13 DDA 直线插补过程点击动画进入 DDA 直线插补