好好学习,天天向上,机械爱好者欢迎您! (技术交流QQ群:13438135)
当前位置:首页 >  数控编程 >  数控基础 > 内容页

数控机床操作教程-(4)轮廓控制原理实验

2021-12-01 07:36:35数控基础访问手机版219

       插补模块是整个数控系统中一个极其重要的功能模块之一,插补算法的选择将直接影响到系统的精度、速度和加工能力范围。为此,本章将对各种插补原理进行剖析和实验。
  插补算法很多,可以归纳为两大类:脉冲增量插补算法和数据采样插补算法。
  脉冲增量插补算法比较简单,比较容易用硬件实现,所以,硬件数控系统较多采用该法,但随着计算机速度的大大提高,也可用软件模拟硬件来实现这类插补。这类插补算法的输出是脉冲形式,并且每次仅产生一个单位的行程增量(即脉冲当量)。脉冲当量一般为0.01mm,较精密的一般取为0.005mm、0.0025mm或0.001mm。显然,脉冲当量愈小,加工精度愈高。
  脉冲增量插补算法的种类很多,如:数字脉冲乘法器、逐点比较法(最初称为区域判别法)、数据积分法(又称微分分析器DDA),比较积分法(包括:单步追踪法、目标点跟踪法即伸雄函数发生器SFG等)、矢量判别法、最小偏差法等。
  数据采样插补算法,又称为时间分割法,它根据程编进给速度将零件轮廓曲线按插补周期分割为一系列微小直线段,然后,将这些微小直线段对应的位置增量数据进行输出,用以控制伺服系统实现坐标轴的进给。显然,这类插补的输出不是单个脉冲,而是一个数字量。这类插补适用于以交、直流伺服电动机作为执行元件的闭环或半闭环数控系统。
  为了获得良好的插补精度和插补速度,数控研究人员又研制开发了下列插补方案:
  (1)采用软硬结合的两级插补方案。先由计算机插补软件将加工零件的轮廓段按10-20ms的插补周期分割成若干直线段(称为粗插补过程),然后利用附加的硬件插补器进一步对粗插补送来的直线段进行插补,并输出脉冲(称为精插补过程)。这样,就大大缓和了实时插补和多任务控制之间的矛盾。FANUC公司生产的SYSTEM-5数控系统就采用了本方案。
  (2)采用多CPU的分布式处理方案。这类系统中,先将数控系统的全部功能划分为几个子功能模块,并分别分配一个独立的CPU来完成该子功能,然后由系统软件来协调各个CPU之间的工作。如,美国的麦克唐纳.道格拉斯公司的ACTRIONⅢ型数控系统就采用了本方案,它用4台微处理器分别实现输入/输出、轮廓插补和进给速度控制功能、坐标轴伺服功能、数控加工程序编辑和CRT显示。
  这是数控技术发展的一个方向,它具有较高的性价比。
  (3)采用单台高性能微机方案。现在的微机性能甚至超过了以前的小型机的性能,德国西门子公司的SYSTEM-7系统和810系统就采用了本方案。本方案正在蓬勃发展之中。
  限于篇幅,我们从前面所列插补方法中选择几种加以讨论并实验。

第一节 逐点比较法插补原理实验

一、实验目的

1.掌握逐点比较法直线与圆弧插补的基本原理

2.掌握逐点比较法直线插补与圆弧插补的程序编制方法

3.加深对逐点比较法插补的理解

二、实验原理

逐点比较法的基本原理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给(始终只有一个方向)。

一般地,逐点比较法插补过程有四个处理节拍,如图4-1:

(1)偏差判别。判别刀具当前位置相对于给定轮廓的偏差状况;

(2)坐标进给。根据偏差状况,控制相应坐标轴进给一步,使加工点向被加工轮廓靠拢;

(3)重新计算偏差。刀具进给一步后,坐标点位置发生了变化,应按偏差计算公式计算新位置的偏差值;

(4)终点判别。若已经插补到终点,则返回监控,否则重复以上过程。

数控机床操作教程-(4)轮廓控制原理实验 数控机床操作教程-(4)轮廓控制原理实验

图4-1 处理节拍     图4-2 第一象限直线插补规律

 1.直线插补

图4-2为第一象限直线,其终点坐标为(Xe,Ye),现分析其插补规律。

刀尖点位置不外乎3种情况:轮廓线上方(点A),轮廓线上(B点),轮廓线下方(点C)。显然,在点A处,为使刀尖点向轮廓直线靠拢,应+X向走一步;C点处,应+Y向走一步;至于B点,看来两个方向均可以,但考虑汇编编程时的方便,现规定往+X向走一步。

数控机床操作教程-(4)轮廓控制原理实验A(X,Y)点处有:Y/X>Xe/Ye XeY-XYe > 0

数控机床操作教程-(4)轮廓控制原理实验B(X,Y)点处有:Y/X=Xe/Ye XeY-XYe = 0

数控机床操作教程-(4)轮廓控制原理实验C(X,Y)点处有:Y/X<Xe/Ye XeY-XYe < 0

F=XeY-XYe为原始的偏差计算公式(X,Y为当前插补点动态坐标),F称为偏差,每走一步到达新位置点,就要计算相应这个F值。

显然,F≥0时,须+X向走一步;F<0时,须+Y向走一步。为方便汇编编程和提高计算速度,现对偏差F的计算公式加以简化:

插补点位于A、B点时,走完下一步(+X):动态坐标变为(X=X+1,Y=Y),新偏差变为F=XeY-(X+1)Ye=XeY-XYe-Ye=F-Ye。这个公式比F=XeY-XYe计算要方便。

数控机床操作教程-(4)轮廓控制原理实验

图4-3 逐点比较法第一象限直线插补软件框图

插补点位于C点时,走完下一步(+Y):动态坐标变为(X=X,Y=Y+1),新偏差变为F=Xe(Y+1)-XYe=XeY-XYe+Xe=F+Xe。

因此,

走完+X后:偏差计算公式为F=F-Ye;

走完+Y后:偏差计算公式为F=F+Xe。

图4-3为逐点比较法第一象限直线插补软件框图。

根据该插补软件框图,可编制逐点比较法第一象限直线插补汇编语言源程序(本程序指令系统采用MCS8031,仅供参考):

LP:MOV SP,#60H   定义堆栈指针

   MOV 4AH,#00H  偏差单元清零

   MOV 49H,#00H

   MOV 48H,#01H  初始化XY电动机

   MOV 47H,#02H

   MOV A,4EH     计算终点判别,Xe+Ye之低位

   ADD A,4CH

   MOV 50H,A

   MOV A,4DH     Xe+Ye之高位

   ADDC A,4BH    低位相加,可能产生进位

   MOV 4FH,A

   MOV A,#03H    XY电动机上电

   MOV DPTR,#0030H

   MOVX @DPTR,A

LP2:ACALL DL0    延时子程序

   MOV A,49H     取偏差F的高8位

   JB ACC.7,LP4  偏差F< 0,去LP4

   ACALL XMP     F>=0,调X电动机正转子程序

   CLR C         计算新偏差F值,F=F-Ye

   MOV A,4AH

   SUBB A,4CH    可向高位字节借位

   MOV 4AH,A

   MOV A,49H

SUBB A,4BH

   MOV 49H,A

LP3:CLR C        终判值减1

   MOV A,50H

   SUBB A,#01H 可向高位字节借位

   MOV 50H,A

   MOV A,4FH

   SUBB A,#00H 考虑低位字节借位

   MOV 4FH,A     终判值判零

   ORL A,50H      

   JNZ LP2   终判值不为零,去LP2,否则插补结束

   LJMP 0000H

LP4:ACALL YMP    调Y电动机正转子程序

   MOV A,4AH计算新偏差F值,F=F+Xe

    ADD A,4EH

   MOV 4AH,A

   MOV A,49H

   ADDC A,4DH

   MOV 49H,A

   SJMP LP3

XMP:MOV A,48H 取X电动机当前状态字

   CLR C 移位法

   RRC A

   RRC A

   RRC A

XMP2:CPL A

   ANL A,#49H 屏蔽无关位

   MOV 48H,A  保存X电动机状态字,作为下次转动的基准

   ORL A,47H  保存Y电动机原状态不变

XMP4:MOV DPTR,#0030H

   MOVX @DPTR,A

   RET

XMM:MOV A,48H

   CLR

   RLC A

   RLC A

   RLC A

   SJMP XMP2

YMP:MOV A,47H

   CLR C

   RRC A

   RRC A

   RRC A

YMP2:CPL A

   ANL A,#92H

   MOV 47H,A

   ORL A,48H

   SJMP XMP4

YMM:MOV A,47H

   CLR C

   RLC A

   RLC A

   RLC A

   SJMP YMP2

说明:1)黑体字模块为软件环形分配器;

 2)各变量地址分配如下:4FH50H-终判值,4DH4EH-Xe,4BH4CH-Ye,49H4AH-偏差值F,47H-Y电动机状态字,48H-X电动机状态字;以大地址格式(最低字节地址单元存放最高位数据)存放各种数据;

3)口地址0030H与XY三相步进电动机相线关系如下:

数控机床操作教程-(4)轮廓控制原理实验

1.1. 圆弧插补

图4-4为第一象限逆圆,现分析其插补规律。

刀尖点位置不外乎3种情况:轮廓线外面(点A),轮廓线上(B点),轮廓线里面(点C)。显然,在点A处,为使刀尖点向轮廓圆弧靠拢,应-X向走一步;C点处,应+Y向走一步;至于B点,看来两个方向均可以,但考虑汇编编程时的方便,现规定往-X向走一步。

数控机床操作教程-(4)轮廓控制原理实验A(X,Y)点处有:X2+Y2>R2   X2+Y2-R2>0

数控机床操作教程-(4)轮廓控制原理实验B(X,Y)点处有:X2+Y2=R2 X2+Y2-R2=0

数控机床操作教程-(4)轮廓控制原理实验C(X,Y)点处有:X2+Y2<R2 X2+Y2-R2<0

原始的偏差计算公式为:F=X2+Y2-R2(X,Y为当前插补点动态坐标)。

数控机床操作教程-(4)轮廓控制原理实验 数控机床操作教程-(4)轮廓控制原理实验

图4-4 第一象限逆圆插补规律 图4-5 逐点比较法第一象限逆圆插补软件框图

显然,F<0时,须+Y向走一步;F≥0时,须-X向走一步。为方便汇编编程和提高计算速度,对偏差F的计算公式加以简化:

插补点位于A、B点时,走完下一步(-X):动态坐标变为(X=X-1,Y=Y),新偏差变为F=(X-1)2+Y2-R2=F-2X+1。

它比公式F=X2+Y2-R2计算要方便很多。

插补点位于C点时,走完下一步(+Y):动态坐标变为(X=X,Y=Y+1),新偏差变为F=X2+(Y+1)2-R2=F+2Y+1。

因此,

走完-X后:偏差计算公式为F=F-2X+1,动态坐标修正为X=X-1;

走完+Y后:偏差计算公式为F=F+2Y+1,动态坐标修正为Y=Y+1。

图4-5为逐点比较法第一象限逆圆插补软件框图。

根据该插补软件框图,编制出逐点比较法第一象限逆圆插补汇编语言源程序(本程序指令系统采用MCS8031,仅供参考):

RP:MOV SP,#60H

  MOV 4AH,#00H F单元清零

  MOV 49H,#00H

  MOV 48H,#01H X电动机初始化

  MOV 47H,#02H Y电动机初始化

   MOV DPTR,#0030H

  MOV A,#03H   XY电动机上电

  MOVX @DPTR,A

  CLR C        计算终判值

  MOV A,52H    低位X、Xe相减,得a

  SUBB A,4EH

  MOV 54H,A    保存结果于终判值单元低位字节

  MOV A,51H    高位X、Xe相减,得b

  SUBB A,4DH

  MOV 53H,A    保存结果于终判值单元高位字节

  CLR C   低位Ye、Y相减,得c

  MOV A,4CH  

  SUBB A,50H 

  MOV 20H,C    暂存Ye、Y低位相减产生的借位位

  ADD A,54H    计算d=a+c,d为低位终判值

  MOV 54H,A    保存d于终判值单元低位字节

MOV 21H,C    暂存d=a+c产生的进位位

MOV A,4BH  

MOV C,20H    恢复Ye、Y低位相减产生的借位位

SUBB A,4FH   高位Ye、Y相减,得e

MOV C,21H   恢复d=a+c产生的进位位

ADDC A,53H   计算f=b+e,f为高位终判值

MOV 53H,A    保存f于终判值单元高位字节

    RP2:ACALL DL0  延时子程序

MOV A,49H    取F高位字节       

JB ACC.7,RP6 高位=1,F<0,去RP6

ACALL XMM    高位=0,F>0,X反转一步

CLR C        计算新偏差F=F-2X+1

MOV A,4AH    计算g=F-X低位

SUBB A,52H

XCH A,B      g存入B寄存器

MOV A,49H    计算h=F-X高位

SUBB A,51H

XCH A,B 低位存A,高位存B。BA内容为F-X

CLR C        计算i=g-X=F-2X低位

SUBB A,52H      

XCH A,B      B内容为F-2X低位,A内容为F-X高位

SUBB A,51H   A内容为F-2X高位

XCH A,B      BA内容为F-2X

ADD A,#01H   计算F-2X+1

MOV 4AH,A    4A内容为F-2X+1低位

XCH A,B      B内容为F-2X+1低位,A内容为F-2X高位

ADDC A,#00H  考虑F-2X+1的进位

MOV 49H,A    49H的内容为F-2X+1高位

CLR C        计算X=X-1

MOV A,52H 低位

SUBB A,#01H

MOV 52H,A

MOV A,51H 高位

SUBB A,#00H

MOV 51H,A

RP4:CLR C       终判值减1

   MOV A,54H

   SUBB A,#01H

   MOV 54H,A

   MOV A,53H

   SUBB A,#00H

   MOV 53H,A

   ORL A,54H

   JNZ RP2      插补没结束,转至RP2

   LJMP 0000H  

RP6:ACALL YMP   Y电动机正转

   MOV R6,#02H  此处“2”,为“F+2Y+1”的“2”

RP7:MOV A,4AH      F+2Y+1

   ADD A,50H

   MOV 4AH,A

   MOV A,49H       

   ADDC A,4FH
MOV 49H,A

    DJNZ R6,RP7     

   MOV A,4AH       

   ADD A,#01H      

   MOV 4AH,A

   MOV A,49H

   ADDC A,#00H

   MOV A,50H

   ADD A,#01H

   MOV 50H,A

   MOV A,4FH

   ADDC A,#00H

   MOV 4FH,A

   AJMP RP4

说明:1)数据存放格式同前;

  2)各变量地址分配如下:47H-4EH,存放数据方式同直线,4FH50H-Y,51H52H-X,53H54H-终判值

从逐点比较法的插补原理可知:本法不易实现三轴以上的联动。因此,一般用于数控车床等两轴联动的系统。

为了让没有条件的教学单位也能做实验,此处用VB和C语言改写上述程序,改写后可在计算机屏幕上模拟仿真插补过程。