您好,欢迎访问三七文档
1577893558751-1-数控插补实验指导书1.实验目的1.1熟悉逐点比较法的基本原理和直线插补程序流程。1.2了解逐点比较法直线插补程序及其调试过程。1.3体验逐点比较法圆弧插补程序及其工作过程2.实验设备PC兼容机一台,操作系统为WindowsXP、WV仿真器及配套器件一套、数控二维平台一台、运动控制实验室自制的StepMotorDriver1板卡一块。3.实验原理数控机床在加工过程中,移动部件(刀具或工件)要进行移动,移动部件的最小位移量是一个脉冲当量,脉冲当量是与一个脉冲相当的位移量。移动部件的运动是以一个一个脉冲当量步进移动的。所谓插补就是数控系统以一定的方法来确定刀具运动轨迹的过程,即进行数据的“密化”。根据被加工零件的有限坐标(直线的起点和终点,圆弧的起点、终点、圆心和半径)、加工轮廓的特征、刀具参数,进给速度和进给方向的要求等,运用一定的算法,自动地在轮廓的起点和终点之间计算出若干中间点的坐标值,从而自动地对各坐标轴进行脉冲分配,完成整个轮廓的轨迹运行,这就是插补要完成的任务。在对加工路径数据密化过程中,由于每个中间点计算所需要的时间直接影响到系统的控制速度,而每个插补中间点的计算精度又影响到整个系统控制精1577893558751-2-度,所以插补算法对整个数控系统的性能至关重要。可以说,插补是整个数控系统控制软件的核心。逐点比较法插补实验逐点比较法插补的原理是,刀具在进给过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给。具体来说是,每走一步都要和给定轨迹上的坐标值进行一次比较,视该点在给定轨迹的上方或下方,或在给定轨迹的里面或外面,从而决定下一步的进给方向,使之趋近加工轨迹。逐点比较法是以折线来逼近直线、圆弧或各类曲线,它与规定的直线或圆弧之间的最大误差不超过一个脉冲当量。因此,只要将脉冲当量取得足够小,就可以达到加工精度的要求。3.1直线插补原理(一)偏差计算公式假定加工如图3-1所示第一象限的直线OA。取直线起点为坐标原点,直线终点A坐标(Xe,Ye)是已知的。m(Xm,Ym)为加工点(动点),若m在OA直线上,则根据相似三角形的关系可得YeXeYmXm取XmYeYmXeFm(3-1)称为直线插补的判别式。1577893558751-3-若Fm=0,表明m点在直线OA上;若Fm0,表明m点在直线OA上方的m’处;若Fm0时,表明m点在直线OA下方的m’’处。对于第一象限直线,从起点出发,沿+X轴方向走一步,当Fm0时,沿+Y方向走一步,当两方向所走的步数与终点坐标(Xe,Ye)相等时,发出到达终点信号,停止插补。设在某加工点处,若Fm≥0时,应沿+X方向进给一步,走一步后新的坐标值为Xm+1=Xm+1Ym+1=Ym新的偏差为Fm+1=Ym+1Xe-Xm+1Ye=Fm-Ye(3-2)若Fm0,应向+Y方向进给一步,走一步后新的坐标值为Xm+1=XmYm+1=Ym+1新的偏差为Fm+1=Fm+Xe(3-3)式(3-2)、(3-3)为简化后的偏差计算公式,在公式中只有加,减运算,只要将前一点的偏差值与等于常数的终点坐标Xe,Ye相加或相减,即可得到新的坐标点的偏差值。加工的起点是坐标原点,起点的偏差是已知的,即F0=0,这样随着加工点的前进,新加工点的偏差Fm+1都可以由前一点的偏差Fm和终点坐标值相加或相减得到,称为递推法。1577893558751-4-(二)终点判别逐点比较法的终点判断有多种方法,下面介绍两种。1.第一种方法设置X、Y两个减法计数器,加工开始前,在X、Y计数器中分别存入终点坐标值Xe、Ye,在X坐标(或Y坐标)进给一步时,就在X计数器(或Y计数器)中减去1,直到这两个计数器中的数都减到零时,便到达终点。2.第二种方法用一个终点计数器,寄存X和Y两个坐标,从起点到达终点的总步数∑=︱Xe︱+︱Ye︱;X、Y坐标每进给一步,∑减去1,直到∑为零时,就到了终点。本实验中采取了第二种方法。(三)插补运算过程插补计算时,每走一步,都要进行以下四个步骤(又称四个节拍)的算术运算或逻辑判断,其工作循环如3-2图所示。1.方向判定根据偏差判定进给方向。2.坐标进给根据判定的方向,向该坐标方向发一进给脉冲。3.偏差计算每走一步到达新的坐标点,按偏差公式计算新的偏差。4.终点判别判别是否到达终点,就结束该插补运算;如未到达,再重复上述循环步骤。逐点比较法直线插补计算流程如下图3-3所示。1577893558751-5-以上是采用逐点比较法进行直线插补的工作原理及程序流程图。需要说明的是,我们在实验室做插补实验时,是不能直接采用教科书中的相关例题中的数据的。原因很简单,因为对于实验室中由步进电动机驱动的二维平台来说,其脉冲当量很小,(当步进电动机驱动器的细分设置值选定在4时,实测脉冲当量大约在5um左右,实际数控机床系统的脉冲当量可能更小)而课本上的例题,为了在有限的篇幅中说明插补的全过程,一般都把插补的总步数限制在20步以内。所以,如果按照课本例题所给的数据,在二维平台上做实验,那么,20步的总移动量仅为20×5um=0.1mm,显然,用这样的数据来演示插补过程是很难收到预期的效果的。1577893558751-6-我们希望通过实验能直观地看出插补的效果,那么,每次插补,平台至少应当移动10mm左右,那就起码应当进行2000步左右的插补运算才能实现。考虑到我们使用的89C51是8位单片机,单字节带符号运算时,实际数据应处在+/-127之间。为了减少编程工作量,对于直线插补,考虑到直线插补的线性因素,我们可以在采用单字节算法的基础上加设外循环,并用增加外循环次数的方法来增加插补的总次数;而对于圆弧插补,则不得不采用双字节运算的方法来满足算法编程的需要。现将采用逐点比较算法编制的单片机直线插补程序ZDBJL1介绍如下。该程序为第1象限直线插补而设计,起点为原点,终点坐标为(2000,2000)。org0000hajmpstartorg0050hstart:movsp,#65hclrp1.4;进入程序标志clrp0.2clrp0.3clrp0.4clrp2.2clrp2.3clrp2.4;初始化main:clrp1.5;开始供电setbp0.3setbp2.3movr7,#14h;20设置外循环次数lop:movr0,#64h;Xe=100movr1,#64h;Ye=100movr2,#0c8h;∑=200movr3,#00h;初始化ff1:mova,r3;A←Fm1577893558751-7-jbacc.7,f2;判断F≥0?否,转移至f2subba,r1;A←F=Fm-Yemovr3,a;保存偏差jbp2.0,noxx;查限位ajmpstart;如果限位动作,则放弃noxx:acallstepx;+X走步sjmpf3;至终点判断f2:adda,r0;A←F=Fm+Xemovr3,a;保存偏差jbp0.0,noxy;查限位ajmpstart;如果限位动作,则放弃noxy:acallstepy;+Y走步f3:decr2;∑-1cjner2,#00h,ff1;∑等于零否,否则转ff1djnzr7,lop;执行外循环增加步数wait:ajmpwait;踏步stepx:setbp2.2;+X走步子程序acalldelay1;调用高电平延时子程序clrp2.2acalldelay2;调用低电平延时子程序retstepy:setbp0.2;+Y走步子程序acalldelay1clrp0.21577893558751-8-acalldelay2retdelay1:movr4,#0ahdela4:djnzr4,dela4;高电平有效时间为10usretdelay2:movr6,#05hdela5:movr5,#0c8hdela3:djnzr5,dela3;低电平有效时间为1000usdjnzr6,dela5retend(四)不同象限的直线插补计算上面讨论的为第一象限的直线插补计算方法,其他三个象限的直线插补计算法,可用相同的原理获得。表3-4列出了在四个象限中的直线插补时,其偏差计算公式和进给脉冲方向。计算时,公式中Xe,Ye均用绝对值。根据以上原理,配套单片机程序中给出了ZDBJL2为第2象限逐点比较法直线插补程序;ZDBJL3为第3象限逐点比较法直线插补程序;ZDBJL4为第4象限逐点比较法直线插补程序。(五)实验步骤建议学生在做后续的项目实验之前,先预习熟悉和理解ZDBJL1单片程序。只1577893558751-9-有在理解单片机软件的基础之上,做本实验才能收到预期的效果。1)调整笔架和平台的相对位置,使之适合画出平台的运动轨迹。连接二维数控平台与单片机板卡StepMotorDriver1、连接WV仿真器的仿真插头以及与计算机通信线路,接通仿真器电源、运行并设置WV仿真软件。2)调用直线插补程序在WV仿真软件的主界面上,用鼠标左键点击WV仿真软件主界面上第一行菜单中的“文件(F)”,在随后出现的下拉菜单上选中“打开文件”并点击,在随后出现的“打开文件”对话框中,选择文件路径为:D:\自制设备\实验程序\ZDBJL1并打开,ZDBJL1的汇编语言源程序便出现在主界面上。3)编译、运行程序程序调出之后,用左键点击WV仿真器软件菜单栏中的“项目(P)”,在随后出现的下拉式菜单中,点击“编译”项,WV软件平台的左下方的信息窗口中便会出现有关程序已通过编译的提示。(当然,如果学生已经修改过程序,而且在修改中发生了错误时,该窗口也会给出“出错”信息的提示)。在程序通过编译之后,便可以运行了,在运行之前,还需先检查一下电源供电是否正常(一般只需观察二维平台控制电源板上的发光管是否已经点亮便可确认),如果发光管不亮,应首先检查二维平台的电源插头是否已经插入电源插座之中。在确认机床外围电路供电正常之后,便可运行程序。方法是:用左键点击WV仿真器软件菜单栏中的“执行(R)”,在随后出现的下拉式菜单中,点击“全速运行”项,机床便开始运动,根据本程序设定,步进电动机在以X轴向成450斜角插补了14mm左右之后,就自动停止运行。4)电动机停止运行,表明程序已经执行到了某一个循环点,程序本身仍在1577893558751-10-执行之中。此时应再次用左键点击WV仿真器软件菜单栏中的“执行(R)”,在随后出现的下拉式菜单中,点击“暂停”项,使程序中止运行,此时可以观察到程序中止的当前位置以及相关RAM中的数据。5)程序的复位。在程序进入暂停之后,用左键再次点击WV仿真器软件菜单栏中的“执行(R)”,在随后出现的下拉式菜单中,点击“复位”项,使程序完全退出运行状态,重新回到了调试状态。6)在程序复位后,可以对程序按如下不同的项目进行修改,然后重新编译、运行程序。每次修改和运行,都实现了某项知识点的实验和验证。(六)实验项目1)插补长度修改。复位单片机程序ZDBJL1,修改程序第15行,将原来“movr7,#14h”修改为“movr7,#0ah”,修改完毕后重新编译、运行程序,比较修改前后的不同效果。2)插补斜率修改。复位并恢复单片机程序ZDBJL1,修改程序第16、17行,将原来“movr0,#64h”修改为“movr0,#50h”;将原来“movr1,#64h”修改为“movr1,#78h”,修改完毕后重新编译、运行程序,比较修改前后的不同效果。3)插补象限修改。复位并恢复单片机程序ZDBJL1,修改程序第13行或14行,即将原来“setbp0.3”修改为“clrp0.3”;或将原来“setbp2.3”修改为“clrp2.3”,或将两句同时进行修改,修改完毕后重新编译、运行程序,比较修改前后的不同效果。请列表将三种改动后的不同效果加以说明。4.分析和思考的问题1577893558751-11-1)在直线插补中,我们已选择默认的直线起点在哪里?2)如果题目要求A(X0,Y0)、B(Xe,Ye)都不在原点上,应当如何进行插补?3)对于一条已知函数的
本文标题:数控插补实验指导书
链接地址:https://www.777doc.com/doc-2430114 .html