插补器既可以是 硬件逻辑电路组成也可以是计算机软件组成,故又分别称为 硬件插补器和软件插补器。对它的基本要求都可以归纳如下: ? ? ? ? 插补器的计算误差应小于设备最小进给量(一个脉冲当量,通常为 0.01mm或0.001mm)。 具有足够高的计算速度即插补速度,通常应保证设备工作台能达到 6~15m/min的进给速度。 保证设备工作台合成的进给速度在整个插补范围内恒定。 能够准确地到达编程终点,避免累积的插补误差。 ? 为了保证足够的插补范围和插补精度,插补器的字长在实际 应用中一般取22~24位二进制数字。 ? ? 以十进制表示时为±2,097,151~±8,388,607个进给当量。 当设备工作台最小位置给定量为0.001mm时,最大插补距离可达 ±2097.151~±8,388,607mm。 ? 此外,插补器的工作速度相当高,例如当采用硬件插补器, 工作台最小位置给定量为0.001mm,进给速度为15m/min时, 插补器的工作频率为: ? 数控系统通常具有直线和圆弧插补器来实现直线和圆弧的插 补,其它曲线可以通过数控加工编程用这两种函数来逼近。 ? ? 硬件插补器,结构复杂,需用的元件较多,造价高,可靠性差。 软件插补器,它完全借助于计算机的通用硬件,通过编程指令 来完成插补运算,它与硬件插补器相比,有这样一些特点: ? 不必改动硬件,只要根据插补公式采用不同的插补程序就 能获得不同的插补功能; ? 每次插补计算坐标增量可以大于1个进给单位,因此可获 得不受限制的进给速度; ? 可以插补比较复杂的函数曲线等。 ? 逐点比较法 ? ? ? 逐点比较法起初称区域判别法,后又称代数运算法 或醉步式近似法,属脉冲增量插补。 它是我国数控技术中经常采用的一种插补运算方法, 采用这种方法的数控系统既能加工直线轮廓,又能 加工圆弧曲线轨迹。 基本原理 ? 每给X或Y坐标方向一个脉冲后,使加工点沿相应方向 产生一个脉冲当量的位移;然后对新的加工点所在的 位置与要求加工的曲线进行比较,根据其偏离情况决 定下一步该移动的方向,以缩小偏离距离,使实际加 工出的曲线与要求的加工曲线的误差为最小。 ? 逐点比较法的四个工作节拍 ? 插补器控制设备工作台每走一步、位移一 次都要完成四个工作节拍,其过程如图3-5 所示,即: ? 准 备 偏差判别 ? 偏差判别 判别加工点对规定曲线的偏离位置,从而决 定进给的X或Y轴坐标的走向。 控制某个坐标进给一个脉冲当量,向规定的 曲线靠拢,以缩小偏差。 计算新的加工点对规定曲线的偏差,作为下 一步判别的依据。 判断是否到达加工终点? 若到达终点,则停 止插补,否则再回到第一个工作节拍。 进给Δ X 或Δ Y ? 进给 ? 偏差计算 N ? 偏差计算 ? 终点? Y 停止加工 ? 终点判断 ? 以上四个节拍如此不断地重复上述循环 过程,就能完成所需的曲线轨迹。 ? 直线插补 ? ? 加工直线时可取起始点为坐标原点O,X、Y两轴方向为坐标 系。那么,比较直线起点到加工点连线与坐标轴OX夹角同给 定直线与OX轴夹角的大小就能反映出加工的偏差;或者根据 加工点在规定直线的上方或下方也能反应出加工的偏差。 偏差判别: ? ? 设要插补一条直线OZ位于XY 平面的第Ⅰ象限上,直线起点 为坐标原点O,终点坐标为 Z(xz,yz),如图3-6所示。直 线OZ与X轴夹角为α ,某一时 刻的加工点为N(xn,yn),直线 始点到加工点的连线ON与X轴 夹角为α n 。 若α n>α ,表示加工点在给 定直线的上方,若α n<α , 表示加工点在给定直线的下方, 当α n=α 时,则加工点就在给 定直线上。 图 3-6 直线插补判别函数图 ? 角的大小可用正切值来反映,所以比较角度α 与α n的大小, 只要比较它们的正切值tanα 与tanα n的大小即可。这里 yz tan ? ? xz yn tan? n ? xn 则 yn yz x z yn ? x n yz tan?n ? tan? ? ? ? xn xz xnxz 因为 x n x z ? 0 所以 ?tan ?n ? tan ??与 ?x z yn ? x n yz ? 符号相同。这样,可取后 者为N点的加工偏差。于是,令 Fn ? x z y n ? x n y z 并称 Fn ? x z y n ? x n y z 为直线插补偏差判别式,或称偏差判 别函数。 根据Fn就可以判断加工点N偏离直线OZ的情况。即 >0时,N点在直线的上方 当Fn =0时,N点在直线上 <0时,N点在直线下方 按上述公式就可以实现逐点比较法的直线插补。 ? 进给 知道偏差Fn就可以决定加工的 进给方向。例如图3-7所示,当 加工的一个点N在OZ线的上方 时,为了使其加工时不偏离直 线太远,它应向X方向走一步即 进给为△X+l,而在到达N1点后, 因N1点在直线下方,故再进给 应是Y方向,即进给为△Y+l, 这样根据偏差Fn就能决定进给 方向。即 当Fn ≥0时,沿X方向进给一步; <0时,沿Y方向进给一步。 ? 图 3-7 直线插补进给方向 ? 偏差计算──直线插补的递推公式 ? ? 加工点每走一步要作一次偏差计算,由此得到Fn后,再确定进 给方向。为了插补运算方便,偏差计算可用下述方法导出的简 便公式进行。 若要加工直线OZ,设在某一时刻加工至N(xn,yn)点,N点在直 线上方或在直线上,即 Fn ? x z y n ? x n y z ? 0 则向+△X方向进给一步,到达N1(xn+1,yn+1)点,得 x n ?1 ? x n ? 1 y n ?1 ? y n 所以,N1点的偏差为 Fn ?1 ? x z yn ?1 ? x n ?1yz ? x z yn ? ?x n ? 1?yz ? x z yn ? x n yz ? yz ? Fn ? yz 若N1点在直线下方,则 Fn ?1 ? 0 。 那么,应向+△Y方向进给一步,到达N2(xn+2,yn+2)点,得 x n ? 2 ? x n ?1 , y n ? 2 ? yn ?1 ? 1 ? yn ? 1 于是 Fn ? 2 ? x z yn ? 2 ? x n ? 2 yz ? x z ?yn ?1 ? 1? ? x n ?1yz ? x z yn ?1 ? x z ? x n ?1yz ? Fn ?1 ? x z ? ? 由以上公式可得出结论:新加工点的偏差Fn+1决定于前一个加 工点的偏差Fn和给定直线的终点Z的坐标值(xZ,yZ)。这种偏 差计算的递推法,使软件不必作乘法运算,因此在实现中非常 简单且速度较快。 根据以上的结论,可归纳出处于第Ⅰ象限的直线L1的加工计算 公式和进给方向,如表3-l所示。 ? 基于上述方法,也不难推导出第Ⅱ、Ⅲ、Ⅳ象限的直线偏差计 算公式和进给方向,这如图3-8和表3-2所示。 图 3-8 直线逐点插补法的四象限进给方向 ? 由上可知,逐点计算偏差的方法,可把 Fn ? x z y n ? x n y z 的运 算公式化为 F ? F ? x z 或 F ? F ? y z 的简单公式。对计算机来 说,能简化程序,只是要根据表3-2对不同象限的直线加工,采 用不同的计算公式和进给就可以了。 ? 终点判断 ? 在计算偏差的同时,每次循环还要进行终点判断,以确定是否 到达加工终点。如已到达终点,就不再进行运算,而发出停机 或转换新程序段的信号。终点判断的具体做法有两种: ? 一种是总步数计数法,即根据某程序段中起点到终点的距 离,控制X向和Y向所要走的总步数来判断,也就是根据X 向和Y向在该程序中要发出的进给脉冲总数来判断。当插补 运算开始后,每走一步(无论是X方还是Y向)就从总步数 中减去l,直到这个总步数全部减到零,就表示已到达终点, 停止插补。 ? 另一种是控制X或Y向所要走的步数来判断。即一个坐标值 计算法,也就是控制直线在X轴、Y轴上的投影步数。然而, 到底是采用X计数方向Gx,还是采用Y计数方向Gy?为了能 使加工长度控制得精确些,一般是以45°为界,可按图3-9 确定。即对L1而言,如α <45°,应采用X方向的△X的总 步数Jx来控制终点。如α >45°,则Y方向的△Y的总步数 Jy来控制终点,以此来判断加工是否到达终点。 图 3-9 以 45°为界计数的终点判断 ? 例:插补加工第Ⅰ象限直线L1。其终点坐标如图3-10所示。 ?5? 这时因为 ? ? arctg? ??45? ,故采用终点判断的计数方向为 ?8? Gx,设△X的总脉冲数为8。它每走一步,计数器就减1, 当为零时,就表示到了终点。现将这一直线的插补运算列 表于表3-3中。 ? 软件实现 由表3-2和图3-8可知,直线插补计算是和加工偏差F、线型 L1~L4,计数方向和进给等参数有关;同时还要根据F和线型 的不同,选择不同的插补计算公式,因而由软件实现的插补 器就应按下列步骤进行。 ? 向CNC控制机键入直线插补的数据 ? ? ? ? ? ? 终点坐标值xz和yz →内存单元; 终点坐标值的补码x Z 和 y Z →内存单元; 计数长度值J →内存单元; 计数方向Gx或Gy →内存单元(可用0代表Gx,1代表Gy); 线型代码L1~L4 →内存单元(可分别用01、02、03、04 代表L1、L2、L3、L4); 加工偏差值F(判别式) →内存单元。 ? 进行程序初始化 ? ? ? ? 先使F=0(插补直线的起始点总在坐标原点上); 确定计数方向Gx或Gy; 确定线型L1~L4 ; 其它寄存器和内存单元的初始化。 根据偏差判别值F的不同,选择相应的插补公式,并由程 序区分线型L1~L4。 xZ yZ ? 进给△X或△Y是用作电动机驱动的,应编写相应电动机驱 动子程序。 ? 新的偏差判别值的计算,即F的计算采用十进制补码运算 (程序中可附有补码换算子程序)。 ? 终点判断,采用计数长度J,J值是根据Gx或Gy的确定, 取终点坐标xz或yz的值;当J-1=0时,插补加工结束。 根据插补的基本思想和以上步骤就能绘出具体的程序框图。 ? ? 圆弧插补 用逐点比较法也容易实现具有圆弧轮廓表面的加工插补。插 补时也按偏差判别、进给、偏差计算、终点判断四个工作节 拍进行。 偏差判别: ? ? ? 圆弧轨迹的形成有顺时针方向形成的顺圆SR和逆时针方向形成 的逆圆NR的不同,而且也有坐标四个象限的区别,故偏差判别 的情况共有八种。 加工圆弧时,很自然地会想到用加工点到圆弧圆心的实际距离和 圆弧的半径(即轮廓曲线的理论曲率半径)相比较,来反映加工 偏差。 ? ? 现取第Ⅰ象限逆时针走向加工的一段圆弧NR1来加以分析。 设要插补加工的圆弧QZ在第Ⅰ象限,逆时针走向,半径为R, 坐标原点O为圆心。圆弧的起点坐标Q(xq,yq),终点坐标Z(xz, yz),如图3-11所示。Rn表示加工点到圆心的实际距离。 ? 若Rn>R,表示加工点在圆外;若Rn0时,N点在圆外 当Fn =0时,N点在圆上 <0时,N点在圆内 按上述公式同样可以实现逐点比较法的圆弧插补。 ? 进给 当圆弧曲线的加工方向给定以后, 加工点可能进给的方向也就确定 了。如现在加工的QZ是逆时针方 向,在加工点N时,因N点在圆外, 要靠近圆弧QZ,则唯一的进给方 向是-△X方向。在加工点N1时, 因N1点在圆内,则只有进给+△Y 方向。显然它与加工点在圆内或 圆外有关系,即Fn的正负有关 (下面还将知道,其实它还与圆 弧的形成方向和加工点所在象限 有关)。这样根据偏差Fn,就能 决定进给方向。 当Fn ≥0时,沿-X方向进给一步; <0时,沿+Y方向进给一步。 (对第Ⅰ象限的逆圆) ? 图 3-11 圆弧插补判别函数图 ? 偏差计算──圆弧插补的递推公式 ? ? 按照偏差判别的公式,牵涉到平方值的计算,这便使软件程序 变得复杂。为了简化计算,应设法将它变成加减运算,使其可 以像直线插补那样,采用递推法进行圆弧插补。 设某加工点N(xn,yn)位于圆弧上或圆弧外侧,则偏差判别式 Fn ? x 2 ? y 2 ? R 2 ? 0 n n ? ? 这时应向-X方向进给一步-△X,到达N1点,此时N1点的坐标 为: x n ?1 ? x n ? 1 y n ?1 ? y n 则新加工点的偏差判别式为: Fn ?1 ? x 2 ?1 ? y2 ?1 ? R 2 ? ?x n ? 1?2 ? y2 ? R 2 n n n ? ? ? x 2 ? y 2 ? 2x n ? 1 ? R 2 ? Fn ? 2x n ? 1 n n ? 若N1点在圆弧内侧,其偏差判别式为Fn+1<0。如再继续加工, 需向+Y方向进给一步+△Y,到达N2点,此时N2点的坐标为: x n ? 2 ? x n ?1 y n ?2 ? y n ?1 ? 1 于是 Fn ? 2 ? x 2 ? 2 ? y2 ? 2 ? R 2 ? x 2 ?1 ? ?yn ?1 ? 1?2 ? R 2 n n n ? x 2 ?1 ? y2 ?1 ? 2yn ?1 ? 1 ? R 2 ? Fn ?1 ? 2yn ?1 ? 1 n n ? ? 由此得出结论:新加工点的偏差Fn+1是由前一点的偏差Fn演算 而来的。它不仅要利用前一点的坐标值xn或yn,且xn,yn在插补 过程中是变化的。因此,在计算判别式Fn+1的同时,还要计算 插补动点的坐标值xn+1或yn+1,以便为下一加工点判别式的计算 作好准备。这样连续不断地插补,则可加工出所要求的圆弧曲 线来。 这种递推法,将原来的平方运算简化成了加法和乘2运算。对二 进制来说,乘2运算是很容易实现的,二进制数向左移位一次即 可。 ? 根据以上的偏差判别方法,可归纳出对于第Ⅰ象限逆圆弧NR1、 顺圆弧SR1的圆弧加工偏差计算和进给方向,如表3-4所示。 ? ? 同理,可导出顺圆、逆圆在其它象限的偏差计算公式和进给方 向。归纳之后,可知NR1、SR2、NR3、SR4等圆弧的插补,其 进给对坐标轴来说是对称的,如图3-12(a)所示。若将NR1的 进给X反向,就得出SR2的插补加工;又如将NR1的进给Y反向, 又得出了SR4的插补加工,且这些加工所用的插补计算公式都 相同。因而它们可归纳成一种类型。 再者,对SR1、NR2、SR3、NR4的插补加工,其进给如图3-12 (b)所示。也能利用相同的插补计算公式,这又可归纳成另外 一种类型。 ? 综合以上的分析,可将圆弧加工的插补计算公式归纳成表3-5。 ? 终点判断 ? ? 和直线插补一样,圆弧插补也应该在每走一步之后自动判别一 下是否已到达终点,以便达到目标后及时转入新的加工,终点 判断仍然可以采用直线插补中介绍过的总步数计数法和一个坐 标值计数法。只不过对于圆弧,情况稍为复杂一些,而用总步 数计数法有时显得不太方便,故一般是采用一个坐标值计数法。 用一个坐标值计数来控制加工圆弧的长度时规定: ? 圆弧终点接近X坐标轴,可用另一个坐标轴Y作计数方向Gy。 ? 同理,如终点接近Y轴时,可采用Gx作计数方向。 这是因为:如果加工图3-13所示的圆弧AB,其终点B附近的一 小段圆弧对X轴的投影长度Bx明显大于对Y轴的投影长度By,因 此用X轴作为计数方向比较合适。 ? ? 一旦计数方向确定了,应取圆弧各段(在各个象限的圆弧段) 在该计数方向上投影的总和来计数J,具体方法如图3-14、图315所示。 图 3-14 计数方向应取 G=GX J=JX1+J X2 图 3-15 计数方向应取 G=GY J=JY1+JY2+JY3 ? 例:加工如图3-16所示的一段圆弧,加工的起点为A,终点为B, 圆弧走向(即为加工方向)为SR1,试用逐点比较法给出插补 运算过程。 ? 由前表3-5知SR1的插补运算公式知: ? 当F≥0时,坐标进给方向为-△Y,即X←X,Y←Y-1;偏差 判别公式为:F ? F ? 2Y ? 1 。 ? 将起点坐标A(8,14)代入上式,并逐点计算偏差值如表3-6所示。 ? 表3-6中的计算考虑了以下几个问题: ? ? 加工SR1,可从表3-5找出相应的偏差计算公式和进给方向。 由图3-16可知,圆弧终点B更接近X坐标轴,因而计数方向 选择Gy。 用计数长度Jy控制终点。如沿Y轴走一步,则Jy就作Jy-1计 算;当Jy=0时,说明已经到了终点。因而用Jy作终点判断。 加工SR1的插补运算过程如图3-16中的折线所示。 ? ? ? 软件实现 逐点比较圆弧插补的软件实现已广泛应用于多种数控系统, 如数控车床、数控线切割机等,其软件插补的一般步骤如下: ? 向CNC控制机键入圆弧插补的数据 ? ? ? ? 起点坐标值xq和yq →内存单元; 计数长度值J →内存单元; 计数方向G和圆弧走向 →内存单元(其中第1位表示G: 0表示Gx,1表示Gy;其中第2位表示圆弧走向。其余位的编 码表示象限); 加工偏差值F(判别式) →内存单元(其中最高位表示偏 差F的符号)。 ? 进行程序初始化 除一系列数据初始化外,还需使用某一内存单元存储插补计算的 控制字,它根据加工所给的数据自动写入。控制字内存单元的代 码如图3-17所示。加工程序中要不断测试D4~D0位,以决定所 采用的插补公式和进给方向。 偏差计算的减法采用十进制补码,程序中应用子程序完成 X和Y的变补计算。这种方法在直线插补计算中已被采用, 它不需十翻二,二翻十的计算过程,其运算非常简单方便。 ? 圆弧插补和直线插补不同,它的加工有跨象限的问题。例 如,加工图3-18所示的圆弧AB,从起点A开始插补加工 NR1,这时采用Ⅱ型播补计算公式。但插补到C点时,因 J≠0,须继续插补;而xn=0,这时再插补加工则应采用Ⅰ 型计算公式。 ? 也就是说,加工中如发现xn或yn等于0,而J≠0时,应改换插补计 算公式,因而程序中必须有判断xn=0或yn=0的指令,以决定插 补加工是否跨象限,以便改变插补计算公式。 有了以上的程序设计思想和步骤,便可绘出具体的程序框 图。 ? 逐点比较法插补的改进 ? 改进思想的提出: ? ? ? ? ? 逐点比较法插补计算简单,且插补误差不大于一个脉冲当量,因而 使用很广。但是这种方法每计算一次,只有一个坐标进给,不能两 个坐标同时进给,因此逼近某一加工轨迹曲线或直线时,阶梯形状 较明显。 例如当插补与X轴成45°角的直线时,是X方向和Y方向轮流进给, 形成明显阶梯,且总的走步数较多(总步数=xz+yz),这也影响了 插补速度。 若能改为每计算一次能同时进给X、Y坐标各一步,则在插补45°斜 线时,不仅步步方向与斜线方向完全一致,计算次数也能减少一半。 能同时进给X、Y,对插补非45°的斜线或圆弧时,其阶梯现象及计 算次数均可获得不同程度的改进。 此外,逐点比较法当偏差F等于0时,有时还得人为规定进给X方向 或Y方向,这种固定进给方向就显得很不合理。若能让其自动选取 进给的合适方向,则有可能减小误差。 ? 改进的方法: ? 对逐点比较法插补改进的方法是:每计算一次,可能有三种进给方 式。即 ? 单独进给X方向; ? 单独进给Y方向; ? 同时进给X、Y方向 程序通过运算,在这三种进给方式中,选取偏差最小的方向进给。 ? 举例 现以第Ⅰ象限逆圆NR1插补为例,如图3-19所示,来说明这种 改进方法。 ? 设插补加工动点N(xn,yn)的判别偏差为: Fn ? x 2 ? y 2 ? R 2 n n 这是已知的。下一步进给可以有三种方向: ? 进给-△X,则新的偏差为: FX ? ?x n ? 1?2 ? y 2 ? R 2 ? Fn ? 2x n ? 1 n 进给+△Y,故新的偏差为: FY ? x 2 ? ?y n ? 1?2 ? R 2 ? Fn ? 2 y n ? 1 n ? ? 同时进给-△X、+△Y,则新的偏差为: FXY ? ?x n ? 1?2 ? ?yn ? 1?2 ? R 2 ? x 2 ? y2 ? 2x n ? 2 yn ? 2 ? R 2 n n ? Fn ? 2x n ? 2y n ? 2 ? FX ? FY ? Fn 改进后的方法是先计算出FX、Fy、Fxy这三种偏差,并比较 其绝对值的大小,选取偏差值最小(F=min{│FX│, │Fy│, │Fxy│} )的方向进给。 ? 结论 改进后的逐点比较法插补可以得出以下结论: 不论直线插补还是圆弧插补,在有预置(四舍五入)的情 况下其误差均小于0.5个脉冲当量,这是一种最小误差的插 补方法。并且从误差的角度来说,这也是一种最优方案。 ? 改进后的圆弧插补方法,虽然每次要计算三个偏差值,运 算速度较慢,不过有时计算一次会有两个方向的进给,这 相当于常规方法的两次计算,又提高了运算速度。 ? 改进后的直线插补,除了提高插补精度外,还由于减少了 运算次数(事实上只需计算两个偏差,α <45°时计算Fx、 Fxy;α >45°时计算Fy、Fxy。或α <22.5°时计算Fx, α >67.5°时计算Fy,22.5°≤α ≤67.5°时计算Fxy),因 而可提高插补速度。 ?