逐点比较法插补的连续轨迹控制设计
逐点比较法圆弧插补算法
二、 逐点比较法圆弧插补加工一个圆弧,很容易联想到把加工点到圆心的距离和该圆的名义半径相比较来反映加工偏差。
这里,我们以第Ⅰ象限逆圆弧为例导出其偏差计算公式。
设要加工图2—3所示第Ⅰ象限逆时针走向的圆弧,半径为R ,以原点为圆心,起点坐标为A(00x ,y ),对于圆弧上任一加工点的坐标设为P( i j x ,y ),P 点与圆心的距离 P R 的平方为 222Pi j R =x +y ,现在讨论这一加工点的加工偏差。
图 2 - 2 圆 弧 差 补 过 程图2-3 圆弧插补过程点击进入动画观看逐点比较法圆弧插补若点P(i j x ,y )正好落在圆弧上,则下式成立:22222i j 00x +y =x +y =R若加工点P(i j x ,y )在圆弧外侧,则P R >R ,即:2222i j 00x +y >x +y若加工点P(i j x ,y )在圆弧内侧,则P R <R ,即:2222i j 00x +y >x +y将上面各式分别改写为下列形式:2222i 0j 0(x -x )+(y -y )=0(加工点在圆弧上) 2222i 0j 0(x -x )+(y -y )>0(加工点在圆弧外侧)2222i 0j 0(x -x )+(y -y )<0(加工点在圆弧内侧)取加工偏差判别式为:2222ij i 0j 0F =(x -x )+(y -y )运用上述法则,利用偏差判别式,即获得图2—2折线所示的近似圆弧。
若P(i j x ,y )在圆弧外或圆弧上,即满足 ij F ≥0的条件时,应向x 轴发出一个负向运动的进给脉冲(—Δx),即向圆内走一步。
若P(i j x ,y )在圆弧内侧,即满足ij F <0的条件,则向y 轴发出一个正向运动的进给脉冲(+Δy),即向圆弧外走一步。
为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。
设加工点P(i j x ,y )在圆弧外侧或圆弧上,则加工偏差为2222ij i 0j 0F =(x -x )+(y -y )0≥x 坐标需向负方向进给一步(—Δx),移到新的加工点P(i+1j x ,y )位置,此时新加工点的x 坐标值为i x -1,y 坐标值仍为 i y ,新加工点P( i+1j x ,y )的加工偏差为:22222i+1,j i 0j 0F =(x -1)-x +y -y经展开并整理,得:i +1,j i j F =F 21i x -+(2-3)设加工点P(i j x ,y )在圆弧的内侧,则:ij F <0那么,y 坐标需向正方向进给一步(+Δy),移到新加工点P( i j+1x ,y ),此时新加工点的x 坐标值仍为i x ,y 坐标值则改为 j y 1+,新加工点P( i j+1x ,y )的加工偏差为:2222i,j+1i 0j 0F =x -x +(y +1)y -,展开上式,并整理得:i,j+1ij F =F 21i y ++综上所述可知:当ij F ≥0时,应走—Δx ,新偏差为 i+1,j ij F =F 21i x -+,动点(加工点)坐标为i+1i x =x -1, j j y y =;当 ij F <0时,应走+Δy ,新偏差为 i,j+1ij F =F 21i y ++,动点坐标为 j j y y =, i+1i =y +1y 。
实验一 逐点比较法圆弧和直线插补实验
Y B(xe,ye)
M(xm,ym)
Rm R
A(x0,y0)
O 图3 圆弧插补原理图 X
圆弧插补原理参见上图,对于第一象限逆圆,设圆弧的起点为 A(x0,y0),终点为 B(xe,ye), 圆弧半径为 R。加工点为 M(xm,ym),它与圆心的距离为 Rm,则
(1)偏差计算
Fm
=
Rm2
− R2
=
xm2
p102=p102-p104 p101=p101+1 x-0.1 else p102=p102+p103 p101=p101+1 y0.1
;计算新的偏差值(Fi+1=Fi-ya) ;步数计数器加一 ;X方向进分别是(-0.1 -0.5 -1.0) ;偏差判别(若P102小于0表示刀具在直线下方) ;计算新的偏差值(Fi+1=Fi+xa) ;步数计数器加一 ;Y方向进给分别是(0.1 0.5 1.0)
endif
endwhile
close
(3)根据直线插补编成格式,编写所给圆弧插补程序。 各组的圆弧的插补任务是: u 第一组:圆弧半径 50,第二象限顺圆;
第二组:圆弧半径 50,第二象限逆圆; 第三组:圆弧半径 60,第三象限顺圆; 第四组:圆弧半径 60,第三象限逆圆; 第五组:圆弧半径 70,第四象限顺圆; 第六组:圆弧半径 70,第四象限逆圆; open prog7 clear linear inc p101=0 p102=0 p103=0 p104=50 while(p101!>100) if(p102!<0) y0.5 p101=p101+1 p102=p102-2*p104+1 p104=p104-1 else -x0.5 p101=p101+1 p102=p102-2*p103+1 p103=103-1 endif endwhile close
基于单片机的经济型数控系统“逐点比较插补法”的程序设计
点计数器方法 , 初值∑= 产64 l. x y +=0 每进给一步 。 计数器减 1减为 0 . 3 直线插补计算原理 ① 偏差计算公式 。假定加工如 图 l . 1 所示 时 , 达 终 点 到
裹 1 直线插朴过程
步数
起点 l
2
y m
得:
偏 差判别
坐标进给
偏差计算
FO o =
终点判 断
X= 0 1
F: = 0
F0 < F
F 柏
+ x
+ y + x
+ y
F F 4 - £=0 ! l y = -4 1-
R= I — + = Z= — = F 46 2 + 9 18 F ry - #F , 2  ̄
F: x . + 。
维普资讯
科技_- j
。机械 与电子。
S IN E IF t TO CE C OI N MA I N
2o o6年
,
第 l 期 2
基 单 机 经 型 控 统 逐 比 插 法’程 设 于 片 的 济 数 系 “点 较 补 ’ 序 计 的
伸 文祥 ( 无锡机 电高 等职 业技术 学校 江苏
., , .
骤的算术逻辑运算 。 ●偏差判别 : 判别偏 差 F ≥O或 F 0 这 是逻辑运算 。 <, 根据逻辑运 算的结果确定下一步进给方向和新的偏差计算 : ●坐标进给 : 根据 所在象限及偏差符号 。 确定沿哪个坐标 以及是 沿正向还是负 向进给 ; ●偏差计算 : 进给一步后 , 计算新 的加工点对给定轨迹 的偏差 , 作 为下一次偏差判别的依据 : ●终点判别 : 进给一 步后 。 点计数器减 1 判断是否 到达终点 , 终 , 未到达终点返 回第一步。 3 直线插补计算举 例 设加 工第一象限直线 O 起点为坐标原 . 2 A, 点, 终点坐标 x 6 y 4 则计算过程如表 1 ,- , . 所示。 表中终点判 断采用终
逐点比较法插补实验报告
实验报告实验内容:逐点比较法直线和圆弧插补2011年9月25日院系:物科院班级:085 学号:07080518 姓名:陈实实验目的:利用逐点比较法的插补原理,编写直角坐标系下的直线、圆弧插补程序,观察屏幕上仿真的运动轨迹,掌握逐点比较法的插补原理。
实验原理:逐点比较发是基于动点与理想曲线院函数的比较来实现插补的。
逐点比较法的插补过程,每走一步要进行一下四个步骤:偏差判别:根据偏差值确定刀具相对加工曲线的位置坐标进给:根据偏差判别的结果,决定控制线沿哪个坐标进给一步以接近曲线偏差计算:计算新加工店相对曲线的偏差,作为下一步偏差判别的依据终点判别:判别是否到达终点,未到达终点则返回第一步继续插补,到终点则停止1、逐点比较法直线插补原理:逐点比较法在第一象限的直线插补原理如下图所示,其他象限情况可依次类推。
现加工OE直线,如果刀具动点在OE直线上方或在线上,则令刀具沿X正方向进给一步;若刀具动点在OE直线下方,则令刀具沿Y轴正方向进给一步,如此循环直到加工到E点。
判别刀具动点的位置根据偏差函数判别公式:根据这个公式可以推到出两种不同情况下的地推公式:对于插补终点的判别,可以采用单向的计数长度法,即:取计数长度M等于Xe、Ye中的大者,并设该坐标方向为计数方向。
插补时,仅在该方向上产生进给时,计数长度减一。
图1的逐点比较法中,工作循环的结束条件就是M减为0.2、逐点比较法圆弧插补原理:逐点比较法在第一象限的圆弧插补原理如图所示,其他象限可一次类推:对于第一象限的逆圆弧,如果动点在圆弧的外侧则令刀具动点沿X轴负方向进给一步。
如果动点在圆弧的内侧则令刀具沿Y轴正方向进给一步。
圆弧的偏差计算公式为:根据这个公式同样可推导出圆弧插补的两种不同情况下的递推公式:对于插补终点的判别,同样可以采用单向的计数长度法,不过对于圆弧,计数的方向并不取决于终点坐标中的大者,而是取决于圆弧终点处。
逐点比较法插补中需要编写插入部分流程图:插入程序:intM,Fi=0,Fi0,Fi1,xi,yi,i=0 ,num=-1;bool Gx; M=Xe+Ye;moveto(x0,y0);setcolor(10);line(x0,y0,x0+Xe*delta,y0-Ye*delta);xi=x0;yi=y0;setcolor(12);while(M>0){getch();if(Fi>=0){linerel(delta,0); xi=xi+delta;Fi0=Fi-Ye;Fi=Fi0; num++;dis_msg(num,Fi,1,0,Fi0,M);}else{linerel(0,-delta);Fi1=Fi+Xe;yi=yi-delta;Fi=Fi1;num++;dis_msg(num,Fi,0,1,Fi1,M);}M--;}圆弧插补实验程序:int M,Fi=0,Fi0,Fi1,xi=R,yi=0,i=0,num=0; M=R;setcolor(10);moveto(x0,y0);arc(x0,y0,0,90,R*delta);setcolor(12);moveto(x0+xi*delta,y0);while(M>0){getch();if(Fi>=0){linerel(-delta,0);Fi0=Fi-2*xi+1;Fi=Fi0;xi=xi--;M--;dis_msg(num,Fi,1,0,Fi0,M);}else{linerel(0,-delta);Fi1=Fi+2*yi+1;Fi=Fi1;yi=yi++;dis_msg(num,Fi,0,1,Fi1,M);}num=num++;}实验中所遇问题分析:1、圆弧插补:Fi0与Fi1的计算,xi,yi计算先写入为:Fi0=Fi-2*xi*delta+1;Fi1=Fi+2*yi*delta+1;xi=xi-delta;yi=yi+delta;但是,实行以后出现的结果不正确,如图,分析:2、关于计数长度M:在直线插补中使用的是双向计数长度 M=xe+ye,插补路线会比较准确。
计算机控制课程设计——逐点比较法直线插补原理的实现
课程设计任务书之阿布丰王创作学生姓名: 专业班级: 指导教师: 工作单元:题 目: 逐点比力插补原理的实现 初始条件:设计一个计算机控制步进机电系统,该系统利用PC 机的并口输出控制信号,其信号驱动后控制X 、Y 两个方向的三相步进机电转动,利用逐点比力法插补绘制出如下曲线.要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.设计硬件系统,画出电路原理框图; 2.界说步进机电转动的控制字;3.推导出用逐点比力法插补绘制出下面曲线的算法; 4.编写算法控制法式,参数由键盘输入,显示器同时显示曲线;5. 撰写设计说明书.课程设计说明书应包括:设计任务及要求;方案比力及认证;系统滤波原理、硬件原理,电路图,采纳器件的功能说明;软件思想,流程,源法式;调试记录及结果分析;参考资料;附录:芯片资料,法式清单;总结.时间安插:6月22日—6月23日 查阅和准备相关技术资料,完成整体方案设计6月24日—6月25日 完成硬件设计 6月26日—6月27日 编写调试法式 6月28日—6月29日 撰写课程设计说明书 6月30日提交课程设计说明书、图纸、电子文档指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日XYO摘要本文主要讨论利用逐点比力法实现第一象限的直线插补.所谓逐点比力插补,就是刀具或绘图笔每走一步都要和给点轨迹上的坐标值进行比力,看这点在给点轨迹的上方还是下方,从而决定下一步的进给方向.对本设计所要求的直线轨迹,如果该点在直线的上方,则控制步进机电向+X方向进给一步,如果该点在直线的下方,那么控制步进机电向+Y轴方向进给一步.如此,走一步、看一看,比力一次,决定下一步的走向,以便迫近给定轨迹,即形成逐点比力插补.插补计算时,每走一步,都要进行以下四个步伐的计算过程,即偏差判别、坐标进给、偏差计算、终点判断.设计具体算法时,首先根据直线轨迹参数,计算出偏差计算公式及递推公式.由法式判断出偏差的正负号,从而决定坐标的进给方向,再根据递推公式计算出坐标进给后的偏差,若未达到终点,则返回偏差判别,如此循环.可以根据起点和终点的坐标位置,计算出总的进给步数Nxy,X或Y 的坐标每进给一步,这个值就减一,若Nxy=0,就达到了终点,这就是终点判另外方法.关键词:逐点比力法、直线插补、步进机电、坐标进给、源法式.目录1 设计任务和要求12 设计步伐12.1 硬件设计12.1.1 接口示意图12.1.2 方案论证22.1.3 单片机与8255的接口32.1.4 硬件接线原理图32.1.5 元件清单42.2 软件设计52.2.1 软件设计原理52.2.2 8255的初始化编程62.2.3 步进机电走步控制法式72.2.4 主法式82.3 运行调试92.3.1 系统装置调试92.3.2 结果验证93 课程设计体会10参考文献10附录一芯片资料11附录二源法式12逐点比力插补原理的实现1 设计任务和要求设计一个微型计算机控制步进机电系统,该系统利用微型机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进机电转动,利用逐点比力法插补原理绘制出如下图所示的目标曲线.图1 目标曲线2 设计步伐本设计年夜致可分为三个步伐:硬件设计、软件设计和系统的运行调试.2.1 硬件设计2.1.1接口示意图两台三相步进机电控制接口如图2所示.图2 系统接口示意图2.1.2 方案论证单片机的接口电路可以是锁存器,也可以是专门的接口芯片,本设计采纳可编程接口芯片8255.由于步进机电需要的驱动电流比力年夜,所以单片机和步进机电的连接还要有驱动电路,如何设计驱动电路成了问题的关键.设计方案一如图3所示,当某相上驱动信号酿成高电平时,达林顿管导通,从而使得该相通电.图3 驱动电路方案一设计方案二如图4所示,在单片机与驱动器之间增加一级光电隔离,当驱动信号为高电平时,发光二极管发光,光敏三极管导通,从而使达林顿管截止,该相欠亨电;当驱动信号为低电平时,则步进机电的该相通电.图4 驱动电路方案二综合比力两种设计方案可知,方案二有抗干扰能力,且可防止一旦驱动电路发生故障,造成高电平信号进入单片机而烧毁器件.所以,本设计选择方案二.2.1.3 单片机与8255的接口MCS-51单片机可以和8255直接连接而不需要任何外加逻辑器件,接口示意图如图5所示.因为8255的B口和C口具有驱动达林顿管的能力,所以将采纳B口和C口输出驱动信号.图5 单片机与8255的接口2.1.4 硬件接线原理图图6 系统硬件接线原理图单片机控制步进机电的硬件接线如图6所示.因为8255的片选信号CS接单片机的地址线P2.7,A1、A0通过地址锁存器接到了8051单片机的地址线P0.1和P0.0,由硬件接线图可以清楚地知道,8255的各口地址为:A口地址:7FFCHB口地址:7FFDHC口地址:7FFEH控制口地址:7FFFH同时,B口和C口都作为输出口,8255工作在方式0.下面以8255的B口输出端PB0为例说明控制的工作原理.若PB0输出0,经反相器74LS04后酿成高电平,发光二极管正向导通发光.在光线的驱动下,光敏三极管导通,+5V 的电压经三极管引入地线而不驱动达林顿管.因而,达林顿管截止,X轴上步进机电的C相欠亨电.若PB0输出1,反相后酿成低电平,发光二极管不导通.从而光敏三极管截止,+5V 电压直接驱动达林顿管导通,X轴上步进机电的C相有从电源流向地线的电流回路,即C相得电.2.1.5 元件清单表1 元件清单表2.2 软件设计2.2.1 软件设计原理2.2.1.1 直线插补原理逐点比力法的基来源根基理是,在刀具按要求轨迹运动加工零件轮廓的过程中,不竭比力刀具与被加工零件轮廓之间的相对位置,并根据比力结果决定下一步的进给方向,使刀具向减小偏差的方向进给.图7 第一象限直线如图7所示,设直线的起点为坐标原点,终点坐标为A e x ,e y ),点m(m x ,m y )为加工点(动点).界说偏差公式为m m e m e F y x x y =-.若m F =0,标明点m 在OA 直线段上;若m F>0,标明点m 在OA 直线段上方,即点m ’ 处;若m F<0,标明点m 在OA 直线段下方,即点m ’’处.由此可得第一象限直线逐点比力法插补的原理是:从直线的起点动身,当m F≥0时,沿+x 轴方向走m F<0时,沿+y 轴方向走一步;当两方向所走的步数与终点坐标(e x ,e y )相等时,发出终点到信号,停止插补.可以将上面所界说的偏差公式进一步简化,推导出偏差的递推公式. ① 当m F ≥0时,沿+x 轴方向进给一步,111(1)m m e m e m e m e m e F y x x y y x x y F y +++=-=-+=- (1)②当mF <0时,沿+y 轴方向进给一步,111(1)m m e m e m e m e m eF y x x y y x x y F x +++=-=+-=+ (2)式(1)和式(2)是简化后偏差的计算公式,在公式中只有一次加法或减法运算,新加工点的偏差都可由前一点偏差和终点坐标相加或相减获得. 2.2.1.2 步进机电工作原理步进机电有三相、四相、五相、六相等多种,本设计采纳三相步进机电的三相六拍工作方式,其通电顺序为A AB B BC C CA A →→→→→→→……各相通电的电压波形如图8所示.图8 三相六拍工作的电压波形当步进机电的相数和控制方式确定之后,PB0—PB2和PC0—PC2输出数据变动的规律就确定了,这种输出数据变动规律可用输出字来描述.为了便于寻找,输出字以表的形式寄存在计算机指定的存储区域.表2给出了三相六拍控制方式的输出字表.表2 三相六拍控制方式输出字表步序控制位工作状态控制字表C相B相A相1 0 0 1 A 01H2 0 1 1 AB 03H3 0 1 0 B 02H4 1 1 0 BC 06H5 1 0 0 C 04H6 1 0 1 CA 05H2.2.2 8255的初始化编程由前面的分析知道,8255工作在方式0,控制口地址为7FFFH,控制字为90H.所以,8255的初始化编程如下.MOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX @DPTR, A ;将控制字写入控制口2.2.3 步进机电走步控制法式2.2.3.1 法式流程图图9 步进机电走步控制法式流程图2.2.3.2 汇编法式代码以下为X轴上机电的步进控制算法,Y轴上步进机电算法类似.XCOTROL: MOV DPTR, #ADX ;将控制字表地址赋给DPTH MOV A, R2 ;表首偏移量送AMOVC A, @A+DPTR ;读取以后步进机电的控制字MOV DPTR, #7FFDH ;PB口地址送DPTRMOVX @DPTR, A ;将步进机电的控制字传送到PB口CJNE A, #05H, LOOP3 ;若到表尾,转LOOP3INC R2 ;未到表尾,表首偏移量加1SJMP DELAY1LOOP3: MOV R2, #00H ;表首偏移量清零SJMP DELAY1DELAY1: MOV R0, #FFH ;延时DJNZ DELAY1RET ;返回2.2.4主法式2.2.4.1 主法式流程图图10 主法式流程图2.2.4.2 源法式代码首先分配各变量的地址为,NXY: 4FH, 50H; XE: 4DH, 4EH; YE: 4BH, 4CH; FM: 49H,4AH,高位存高地址,位置存进低地址.源法式代码见附录二.2.3 运行调试2.3.1 系统装置调试依照硬件接线图将系统装置好后,装入法式,执行后检查步进机电的走步轨迹.2.3.2 结果验证若终点坐标(e x ,e y )为(4,3),插补计算过程如表3所示.表3 直线插补计算过程步数 偏差判别 坐标进给 偏差计算 终点判别 起点 0F =0xyN =7 1 0F +X 1F =0-3=-3 xyN =6 2 1F +Y 2F =-3+4=1 xyN =5 3 2F +X 3F =1-3=-2 xyN =4 4 3F +Y 4F =-2+4=2 xyN =3 5 4F +X 5F =2-3=-1 xyN =2 6 5F +Y 6F =-1+4=3 xyN =1 76F+X7F =3-3=0xyN =0根据上表,可作出步进机电的走步轨迹如图11所示.若输入的参数为XE=4,YE=3,系统走步轨迹与下图比力,可判断出设计的正确性.图11 步进机电走步轨迹3 课程设计体会通过一个多星期的课程设计,我对这门课有了进一步的了解.学习过程中在老师的耐心指导下,有意识的培养和建立了我的思维能力,使我真正建立数据及信息流的概念,以便在控制应用中,能够使软件和硬件有机地结合.通过单片机对步进机电的控制系统设计,让我真正的掌握了微型计算机软件和硬件相结合的设计方法.工业控制是计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专门技术,它主要研究如何将计算机技术和自动控制理论应用于工业生产过程,并设计出所需要的计算机控制系统.而今世,随着微型计算机的高度发展.它的应用在人们的工作和日常生活中越来越普遍了.工业过程控制是计算机的一个重要应用领域.现在可以好不夸张的说,没有微型计算机的仪器不能乘为先进的仪器,没有微型计算机的控制系统不能称其为现代控制系统的时代已经到来.微型计算控制技术正为了适应这一领域的需要而发展起来的一门技术.绝年夜大都自动控制都是使用计算机来实现的;微型计算机控制技术的发展,使得以微型计算机为控制器核心的微机测控装置与系统,渗透到了国民经济的各行各业,已经无时无处不在影响每个现代人的生活.只有态度认真的看待这门学科才华真正掌握其中的精髓,在将来的工作中或许起着至关重要的作用.参考文献[1]贺亚茹.汇编语言法式设计.北京:科学出书社,2005[2]卜艳萍、周伟.汇编语言法式设计教程.北京:清华年夜学出书社,2004[3]温玉杰.Intel汇编语言法式设计(第四版).北京:电子工业出书社,2004[4]郑学坚、周斌.微型计算机原理与应用.北京:清华年夜学出书社,2000[5]于海生.微型计算机控制技术.北京:清华年夜学出书社,1998[6]沈美明、温冬婵.IBM-PC汇编语言法式设计.北京:清华年夜学出书社,2002[7]何立民.单片机应用系统设计.北京:北京航空航天年夜学出书社,2003附录一芯片资料图11 8051单片机引脚图图12 可编程芯片8255A引脚图附录二源法式ORG 0100HMOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX @DPTR, A ;将控制字写入控制口,初始化8255 MOV 4EH, ? ;XE的低8位存入4EHMOV 4DH, ? ;XE的高8位存入4DHMOV 4CH, ? ;YE的低8位存入4CHMOV 4BH, ? ;YE的高8位存入4BHMOV A, 4EHADD A, 4CH ;XE与YE低8位相加MOV 50H, A ;低位之和存入NXY低8位MOV A, 4DHADDC A, 4BH ;XE与YE的高8位带进位相加MOV 4FH, A ;和存入NXY高8位MOV 4AH, #00H ;将FM置零MOV 49H, #00HCLR R2 ;表ADX偏移量清零CLR R3 ;表ADY偏移量清零LOOP1: MOV A, 49H ;取偏差的高8位JB ACC.7, YCONTROL ;若FM<0,转到YCONTROL ACALL XCONTROL ;否则,调XCONTROLCLR C ;进位寄存器清零MOV A, 4AHSUBB A, 4CH ;FM与YE的低8位相减MOV 4AH, A ;结果存入FM低8位MOV A, 49HSUBB A, 4BH ;FM与YE的高8位相减MOV 49H, A ;结果存入FM高8位LOOP2: CLR CMOV A, 50HSUBB A, #01H ;NXY低位值减1MOV 50H, A ;结果存入NXY的低位MOV A, 4FHSUBB A, #00H ;考虑低位字节借位MOV 4FH, A ;减去借位后存入NXY的高位ORL A, 50H ;判断NXY是否为零JNZ LOOP1 ;不为零则转到LOOP1LJMP 8000HXCOTROL: MOV DPTR, #ADX ;将控制字表地址赋给DPTH MOV A, R2 ;表首偏移量送AMOVC A, @A+DPTR ;读取以后步进机电的控制字MOV DPTR, #7FFDH ;PB口地址送DPTRMOVX @DPTR, A ;将步进机电的控制字传送到PB口 CJNE A, #05H, LOOP3 ;若到表尾,转LOOP3INC R2 ;未到表尾,表首偏移量加1SJMP DELAY1LOOP3: MOV R2, #00H ;表首偏移量清零SJMP DELAY1DELAY1: MOV R0, #FFH ;延时DJNZ DELAY1RET ;返回YCOTROL: MOV DPTR, #ADY ;将控制字表地址赋给DPTH MOV A, R3 ;ADY表首偏移量送AMOVC A, @A+DPTR ;读取以后步进机电的控制字MOV DPTR, #7FFEH ;PC口地址送DPTRMOVX @DPTR, A ;将步进机电的控制字传送到PC口 CJNE A, #05H, LOOP4 ;若到表尾,转LOOP4INC R3 ;未到表尾,表首偏移量加1SJMP DELAY2LOOP4: MOV R3, #00H ;表首偏移量清零SJMP DELAY2DELAY2: MOV R0, #FFH ;延时DJNZ DELAY2CLR C ;进位寄存器清零MOV A, 4AHADD A, 4EH ;FM与XE低8位相加MOV 4AH, A ;结果存入FM低位MOV A, 49HADDC A, 4DH ;FM与XE高8位带进位相加MOV 49H, A ;结果存入FM高8位SJMP LOOP2 ;无条件转到LOOP2ORG 8000HEND ;法式结束ADX: DB 01H ;X轴步进机电控制字表DB 03HDB 02HDB 06HDB 04HDB 05HADY: DB 01H ;Y轴步进机电控制字表DB 03HDB 02HDB 06HDB 04HDB 05H本科生课程设计成果评定表指导教师签字:2008年 1 月 25 日。
逐点比较法插补的连续轨迹控制设计
综合设计课程设计设计要求1 设计要求1.1 设计要求(1)设计出逐点比较法插补软件流程图;(2)编写出逐点比较法插补程序;(3)要求用软件能够实现任意象限圆弧(G03)的插补计算;(4)要求软件能够处理特殊轮廓的插补,例如坐标中任意圆弧等;(5)插补结果要求能够以图形模拟进行输出。
2 设计目的2.1 设计目的(1)了解连续轨迹控制数控系统的组成原理;(2)了解逐点比较法插补的基本原理;(3)掌握逐点比较法插补的软件实现方法。
3 总体方案比较3.1 各多种方案的特点第一:采用逐点比较法插补。
逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出买成速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍第二:数学积分法插补。
又称为微分分析法。
这种插补方法可实现一次、二次、甚至高次曲线的插补,也可以实现多坐标联动控制。
只要输入不多的几个数据,就能加工出圆弧等形状较为复杂的轮廓曲线。
作直线插补时,脉冲分配也较均匀。
第三:数据采样插补。
数据采样插补实际上是一种粗插补过程,它所产生的微小线段仍然比较大,必须进一步对其密化(即精插补)。
粗插补算法比较复杂,综合设计课程设计多CPU结构CNC系统硬件原理图大多用高级语言编制;精插补算法比较简单,多用汇编语言或硬件插补器实现。
3.2 方案选择根据课题要求,对逆圆插补。
根据两种方案的比较,都是很好的方法,但由于圆是二次,用采用逐点比较法插补进行设计比较方便、简单,所以根据各种插补方法的特点,选择用逐点比较法来实现。
4 多CPU结构CNC系统硬件原理图4.1 CNC系统原理图图4.1 共享总线的多CPU结构的CNC系统结构框图4.2 原理图极其说明共享总线机构,只有主模块有权控制系统的总线,在某一时刻只能有一个猪模块占有总线。
01-2.逐点比较法直线插补
机电工程学院
2. 圆弧插补
在圆弧加工过程中,可用动点到圆心的距离来描述刀具位置与被加工 圆弧之间关系。设圆弧圆心在坐标原点,已知圆弧起点A(Xa,Ya),终 点B(Xb,Yb),圆弧半径为R。加工点可能在三种情况出现,即圆弧上、 圆弧外、圆弧内。当动点P(X,Y)位于圆弧上时有
机电工程学院
进给后新点的偏差计算公式除与前一点偏差 值有关外,还与动点坐标有关,动点坐标值随着 插补的进行是变化的,所以在圆弧插补的同时, 还必须修正新的动点坐标。
圆弧插补终点判别:将X、Y轴走的步数总和 存入一个计数器,N=∣Xb-Xa∣+∣Yb-Ya∣, 每走一步N减一,当N=0发出停止信上方,如点P1,应向+X向进给。 F<0时, 表示动点在OE下方,如点P2,应向+Y向进给。 这里规定动点在直线上时,可归入F>0的情况一同考虑。
插补工作从起点开始,走一步,算一步, 判别一次,再走一步,
当沿两个坐标方向走的步数分别等于Xe和Ye时,停止插补。 下面将F的运算采用递推算法于以简化,动点Pi(Xi,Yi)的Fi值为:
Y 终点判别
N=7
N=6
3
N=5
N=4
2
N=3
N=2
1
N=1
N=0
O
E(4,3)
1 2 34
X
图5-7 直线插补轨迹过程实例
机电工程学院
例5-1 设加工第一象限直线OA,起点为坐标原点O(0,0),终点为A (6,4),试用逐点比较法对其进行插补,并画出插补轨迹。
插补从直线的起点开始,故F0,0=0;终点判别寄存器E存入X和Y两个 坐标方向的总步数,即E=6+4=10,每进给一步减1,E=0时停止插补。 插补运算过程如表5-1所示,插补轨迹如图所示。
逐点比较法第一象限直线插补
逐点比较法第一象限直线插补编程逐点比较法是以折线来逼近给定的轨迹,就是每走一步控制系统都要将加工点与给定的图形轨迹相比较,以决定下一步进给的方向,使之逼近加工轨迹。
逐点比较法以折线来逼近直线或圆弧,其最大的偏差不超过一个最小设定单位。
只要将脉冲当量取得足够小,就可以达到精度要求。
逐点比较插补法在脉冲当量为0.01mm,系统进给速度小于3000mm/min时,能很好的满足要求。
一、逐点比较法直线插补如下图所示设直线 oA 为第一象限的直线,起点为坐标原点o (0 , 0) ,终点坐标为, A( ) , P() 为加工点。
若 P 点正好处在直线 oA 上,由相似三角形关系则有即点在直线 oA 上方 ( 严格为直线 oA 与 y 轴正向所包围的区域 ) ,则有即若 P 点在直线 oA 下方 ( 严格为直线 oA 与 x 轴正向所包围的区域 ) ,则有图 3 — 1 逐点比较法第一象限直线插补即令则有:①如,则点 P 在直线 oA 上,既可向 +x 方向进给一步,也可向 +y 方向进给一步;②如,则点 P 在直线 oA 上方,应向 +x 方向进给一步,以逼近oA直线;③如,则点 P 在直线 oA 下方,应向 +y 方向进给一步,以逼近 oA直线一般将及视为一类情况,即时,都向 +x 方向进给一步。
当两方向所走的步数与终点坐标相等时,停止插补。
这即逐点比较法直线插补的原理。
对第一象限直线 oA 从起点 ( 即坐标原点 ) 出发,当 F时, +x 向走一步;当 F<0 时,y 向走一步。
特点:每一步都需计算偏差,这样的计算比较麻烦。
递推的方法计算偏差:每走一步后新的加工点的偏差用前一点的加工偏差递推出来。
采用递推方法,必须知道开始加工点的偏差,而开始加工点正是直线的起点,故。
下面推导其递推公式。
设在加工点 P( ) 处,,则应沿 +x 方向进给一步,此时新加工点的坐标值为新加工点的偏差为即若在加工点 P( ) 处,,则应沿 +y 方向进给一步,此时新加工点的坐标值为,新加工点的偏差为即综上所述,逐点比较法直线插补每走一步都要完成四个步骤 ( 节拍 ) ,即:(1) 位置判别根据偏差值大于零、等于零、小于零确定当前加工点的位置。
逐点比较法直线插补程序
逐点比较法直线插补程序
一、实验目的
1、进一步理解逐点比较法直线插补的原理
2、掌握在计算机环境中完成直线逐点比较法插补的软件实现方法。
二、实验设备
1、计算机及其操作系统
2、VB 6.0软件
三、实验原理
机床数控系统依据一定方法确定刀具运动轨迹,进而产生基本廓形曲线,如直线、圆弧等。
其它需要加工的复杂曲线由基本廓形逼近,这种拟合方式称为“插补”(Interpolation)。
“插补”实质是数控系统根据零件轮廓线型的有限信息(如直线的起点、终点,圆弧的起点、终点和圆心等),在轮廓的已知点之间确定一些中间点,完成所谓的“数据密化”工作。
四、实验方法
本次实验是在VB6.0环境下完成了直线逐点比较法插补的软件实现。
软件中实现,主要分为两部分,一是人际交互,用户采集数据和演示其插补过程;二是插补的计算过程,此为这次实验的核心。
逐点比较法的插补有四个工作节拍:偏差判别、进给、偏差计算和终点判别,第一象限直线插补的偏差判别公式如下:
Fi = Xe Yi -Y e Xi
Fi≥0时,偏差判别公式为Fi+1= Fi-Y e,向X正方向进给
Fi< 0时,偏差判别公式为Fi+1= Fi+Xe,向Y正方向进给
其工作流程图如下所示:
根据流程编写合理的界面和控制主程序代码。
插补运动(逐点比较法)
1、概述在机床的实际加工中,被加工工件的轮廓形状千差万别,各式各样。
严格说来,为了满足几何尺寸精度的要求,刀具中心轨迹应该准确地依照工件的轮廓形状来生成。
然而,对于简单的曲线,数控装置易于实现,但对于较复杂的形状,若直接生成,势必会使算法变得很复杂,计算机的工作量也相应地大大增加。
因此,在实际应用中,常常采用一小段直线或圆弧去进行逼近,有些场合也可以用抛物线、椭圆、双曲线和其他高次曲线去逼近(或称为拟合)。
所谓插补是指数据密化的过程。
在对数控系统输入有限坐标点(例如起点、终点)的情况下,计算机根据线段的特征(直线、圆弧、椭圆等),运用一定的算法,自动地在有限坐标点之间生成一系列的坐标数据,即所谓数据密化,从而自动地对各坐标轴进行脉冲分配,完成整个线段的轨迹运行,以满足加工精度的要求。
机床数控系统的轮廓控制主要问题就是怎样控制刀具或工件的运动轨迹。
无论是硬件数控(NC)系统,还是计算机数控(CNC)系统或微机数控(MNC)系统,都必须有完成插补功能的部分,只是采取的方式不同而已。
在CNC或MNC中,以软件(程序)完成插补或软、硬件结合实现插补,而在NC中有一个专门完成脉冲分配计算(即插补计算)的计算装置——插补器。
无论是软件数控还是硬件数控,其插补的运算原理基本相同,其作用都是根据给定的信息进行数字计算,在计算过程中不断向各个坐标发出相互协调的进给脉冲,使被控机械部件按指定的路线移动。
有关插补算法问题,除了要保证插补计算的精度之外,还要求算法简单。
这对于硬件数控来说,可以简化控制电路,采用较简单的运算器。
而对于计算机数控系统来说,则能提高运算速度,使控制系统较快且均匀地输出进给脉冲。
经过多年的发展,插补原理不断成熟,类型众多。
从产生的数学模型来分,有直线插补、二次曲线插补等;从插补计算输出的数值形式来分,有基准脉冲插补(又称脉冲增量插补)和数据采样插补。
在基准脉冲插补中,按基本原理又分为以区域判别为特征的逐点比较法插补,以比例乘法为特征的数字脉冲乘法器插补,以数字积分法进行运算的数字积分插补,以矢量运算为基础的矢量判别法插补,兼备逐点比较和数字积分特征的比较积分法插补,等等。
逐点比较法直线插补
3.2.1 逐点比较法直线插补
• 逐点比较法插补: 每走一步都要和给定轨迹上 的坐标值进行比较,看这点在给定轨迹的上方 或下方,或是给定轨迹的里面或外面,从而决 定下一步的进给方向。比较一次,决定下一步 走向,以便逼近给定轨迹,即形成逐点比较插 补。 • 加工精度: 逐点比较法规定的加工直线或圆弧 之间的最大误差为一个脉冲当量,因此只要把 脉冲当量(每走一步的距离即步长)取得足够 小,就可达到加工精度的要求。
3.2 插补原理
•在CNC数控机床上,各种曲线轮廓加工都是通过插补计算实现的, 插补计算的任务就是对轮廓线的起点到终点之间再密集的计算出有 限个坐标点,刀具沿着这些坐标点移动,用折线逼近所要加工的曲 线。 •插补方法可以分为两大类:脉冲增量插补和数据采样插补。 •脉冲增量插补是控制单个脉冲输出规律的插补方法,每输出一个脉 冲,移动部件都要相应的移动一定距离,这个距离就是脉冲当量, 因此,脉冲增量插补也叫做行程标量插补。如逐点比较法、数字积 分法。该插补方法通常用于步进电机控制系统。 •数据采样插补,也称为数字增量插补,是在规定的时间内,计算出 个坐标方向的增量值、刀具所在的坐标位置及其他一些需要的值。 这些数据严格的限制在一个插补时间内计算完毕,送给伺服系统, 再由伺服系统控制移动部件运动,移动部件也必须在下一个插补时 间内走完插补计算给出的行程,因此数据采样插补也称作时间标量 插补。数据采样插补采用数值量控制机床运动,机床各坐标方向的 运动速度与插补运算给出的数值量和插补时间有关。该插补方法是 用于直流伺服电动机和交流伺服电动机的闭环或半闭环控制系统。 •数控系统中完成插补工作的部分装置称为插补器。
Fm<0 x
注意:起点偏差F0=0
偏差公式简化
x y xy y Fm ye y ( x 1 ) y Fm 0 Fm 1 x e m me e e m m e
逐点比较法课程设计--逐点比较法第一二象限的顺圆插补
****学院课程设计说明书设计题目:逐点比较法第一二象限的顺圆插补系部:机电工程系专业:自动化(数控技术)班级:姓名:学号:指导老师:起止时间:年月日至年月日共周年月日目录一、课程设计的目的 (3)二、课程设计的任务 (3)三、逐点比较法基本原理 (4)四、逐点比较法插补软件流程图 (8)五、算法描述(在VB中的具体实现) (9)六、编写算法程序清单 (9)七、软件运行仿真效果 (12)八、参考文献 (15)九、设计小结 (15)逐点比较法第一二象限的顺圆插补一、课程设计的目的1)了解连续轨迹控制数控系统的组成原理。
2) 掌握逐点比较法插补的基本原理。
3)掌握逐点比较法插补的软件实现方法。
二、课程设计的任务逐点比较法插补是最简单的脉冲增量式插补算法之一,其过程清晰,速度平稳,但一般只用于一个平面内两个坐标轴的插补运算。
其基本原理是在刀具按要求轨迹运动加工零件轮廓的过程中,不断比较刀具与被加工零件轮廓之间的相对位置,并根据比较结果决定下一步的进给方向,使刀具向减小偏差的方向进给,且只有一个方向的进给。
也就是说,逐点比较法每一步均要比较加工点瞬时坐标与规定零件轮廓之间的距离,依此决定下一步的走向。
如果加工点走到轮廓外面去了,则下一步要朝着轮廓内部走;如果加工点处在轮廓的内部,则下一步要向轮廓外面走,以缩小偏差,这样周而复始,直至全部结束,从而获得一个非常接近于数控加工程序规定轮廓的轨迹。
逐点比较法插补过程中的每进给一步都要经过偏差判别、坐标进给、偏差计算和终点判别四个节拍的处理,其工作流程图如图所示。
三、基本原理(1)逐点比较法I 象限顺圆插补基本原理在加工圆弧过程中,人们很容易联想到使用动点到圆心的距离与该圆弧的名义半径进行比较来反映加工偏差。
假设被加工零件的轮廓为第Ⅰ象限顺走向圆弧SE ,,圆心在O (0,0),半径为R ,起点为S (X S ,Y S ),终点为E (X e ,Y e ),圆弧上任意加工动点为N (X i ,Y i )。
逐点比较法直线插补原理
偏差判别
F0,0=0 F1,0=-2<0 F1,1=1>0 F2,1=-1<0 F2,2=2>0
坐标进给
+△X +△Y +△X +△Y +△X
偏差计算 F0,0=0 F1,0= F0,0-Ye =-2 F1,1= F1,0+X e =1 F2,1= F1,1-Ye =-1 F2,2= F2,1+X e =2 F3,2= F2,2-Ye =0
4 F3<0 +Y 5 F3>0 +X 6 F5<0 +Y
F4 F3 Xe 2
F5 F6
F4 F5
Ye Xe
1
Y3
7 F6>0 +X
F7 F6 Ye 0 3
2
《数控技术及装
终 点判别
∑=7 ∑=6 ∑=5 ∑=4 ∑=3 ∑=2 ∑=1 ∑=0
E(4,3)
1
O 1 234
X 13
§ 4-1 插 补 原 理 与 程 序 设 计
F≥0
L1 F<0
标值的符号来确定。
➢ 按照以上的插补规律,
可编制出逐点比较法直
F<0
线插补的程序。下面是
编制的演示程序。
L3
O
F≥0 F≥0
x F<0
L4
18
结语
谢谢大家!
一个脉冲当量,输出脉冲均匀,
速度变化小,调节方便。
(2,2) (3,2)
(1,1)
(2,1)
X
(0,0)
(1,0)
7
§ 4-1 插 补 原 理 与 程 序 设 计
1. 逐点比较法直线插补算法
《数控技术及装
第三章插补原理及控制方法
及
控
终点判别
N
终点?
制
方
法
结束
25
二、逐点比较法圆弧插补---其它象限
y
F>0
y
F>0
第
F<0
F<0
三 章
o
x
o
x
插
补
原
理
逆圆
顺圆
及 控
各象限插补进给方向, 各象限插补进给方向,远
制
远离原点坐标值加一接 离原点坐标值加一,接近
方
近原点坐标值减一。
原点坐标值减一。
法
26
作业
试推导逐点比较法第一象限顺圆弧 第 插补的递推公式,并画出程序流程图。
逐点比较插补计算法(简称逐点比较法)
第
三 章
数字积分插补计算法(简称数字积分法)
插 时间分割插补计算法(简称时间分割法)
补
原
理 及
样条插补计算方法等。
控
制
方
法
2
3-1 逐点比较法插补
逐点比较插补计算法(简称逐点比
第 较法)又称区域判别法。
三
章
其原理是:计算机在控制加工轨迹过
插 程中逐点计算和判断加工偏差以控制坐
章
当M点在直线上时, + Δ X
y
插 补
(αi= α)
原
M (x i y j )
A
理
及 控
tg αi= tg α
制
方 法
αi
oα
x
6
其中 tg αi= y j / xi
tgα= y e / x e
tg αi -tgα= y j / xi - y e / x e
逐点比较法直线插补原理的实现
武汉理工大学华夏学院课程设计报告书题目:系名:专业班级:姓名:学号:指导教师:2011 年 6 月 14 日摘要本文主要讨论利用逐点比较法实现第一象限的直线插补。
所谓逐点比较插补,就是刀具或绘图笔每走一步都要和给点轨迹上的坐标值进行比较,看这点在给点轨迹的上方还是下方,从而决定下一步的进给方向。
对于本设计所要求的直线轨迹,如果该点在直线的上方,则控制步进电机向+X方向进给一步,如果该点在直线的下方,那么控制步进电机向+Y 轴方向进给一步。
如此,走一步、看一看,比较一次,决定下一步的走向,以便逼近给定轨迹,即形成逐点比较插补。
插补计算时,每走一步,都要进行以下四个步骤的计算过程,即偏差判别、坐标进给、偏差计算、终点判断。
设计具体算法时,首先根据直线轨迹参数,计算出偏差计算公式及递推公式。
由程序判断出偏差的正负号,从而决定坐标的进给方向,再根据递推公式计算出坐标进给后的偏差,若未到达终点,则返回偏差判别,如此循环。
可以根据起点和终点的坐标位置,计算出总的进给步数Nxy,X或Y的坐标每进给一步,这个值就减一,若Nxy=0,就到达了终点,这就是终点判别的方法。
设计任务及要求设计一个计算机控制步进电机系统,该系统利用PC 机的并口输出控制信号,其信号驱动后控制X 、Y 两个方向的三相步进电机转动,利用逐点比较法插补绘制出各种曲线。
1)设计硬件系统,画出电路原理框图; 2)定义步进电机转动的控制字;3)推导出用逐点比较法插补绘制出下面曲线的算法; 4)编写算法控制程序线; 5)撰写设计说明书。
每人选一个曲线,曲线均为第一象限,屏幕左下角为坐标原点,箭头表示曲线绘制的方向,直线参数为:起点、终点坐标。
圆弧参数为:起点、终点坐标和半径。
直线一: 直线二:直线三 直线四圆弧一 圆弧二X YOXY O X Y OXYOX Y OXY O目录1 设计任务和要求 (1)2 设计步骤 (1)2.1 硬件设计 (1)2.1.1 接口示意图 (1)2.1.2 方案论证 (2)2.1.3 单片机与8255的接口 (3)2.1.4 硬件接线原理图 (3)2.1.5 元件清单 (4)2.2 软件设计 (5)2.2.1 软件设计原理 (5)2.2.2 8255的初始化编程 (6)2.2.3 步进电机走步控制程序 (7)2.2.4 主程序 (8)2.3 运行调试 (9)2.3.1 系统安装调试 (9)2.3.2 结果验证 (9)3 课程设计体会 (10)参考文献 (10)附录一芯片资料 (11)附录二源程序 (12)逐点比较插补原理的实现1 设计任务和要求设计一个微型计算机控制步进电机系统,该系统利用微型机的并口输出控制信号,其信号驱动后控制X 、Y 两个方向的三相步进电机转动,利用逐点比较法插补原理绘制出如下图所示的目标曲线。
逐点比较法插补VC程序设计
法插补原理VC程序设计—By O.z.逐点比较法插补原理VC程序设计一背景数控机床在加工曲线时,用折线逼近所要加工的曲线。
而确定刀具或绘图笔的过程就称为插补,数控系统中完成插补工作的部分装置称为插补器。
常用的脉冲增量插补方法是逐点比较法。
所谓逐点比较法插补,就是刀具或绘图笔每走一步都要和给定轨迹上的坐标一步的进给方向。
如果原来在给定轨迹的下方,下一步就向给定轨迹的上方走,如果原来在给定轨迹的里面,下一步就向给定轨迹的外面走……如此,走一步,看一看,比较一次,决定下一步走向,以便逼近给定轨迹,即形成逐点比较插补。
逐点比较法是以阶梯折线来逼近直线或者圆弧等曲线的,它与规定的加工直线或圆弧之间的最大误差为一个脉冲当量,因此只要把脉冲当量(第走一步的距离即步长)取得足够小,就可达到加工精度的要求。
二原理与算法(一)逐点比较法直线插补不同象限直线插补的偏差符号及坐标进给方向如图1所示。
法插补原理VC程序设计—By O.z.图1 偏差符号与进给方向的关系由图1可以推导得出,4个象限直线插补的偏差计算公式和坐标进给方向,详见表1,该表中4个象限的终点坐标值取绝对值代入计算式中的和。
表1 直线插补的进给方向及偏差计算公式在计算机内存中开辟6个单元XE、YE、NXY、FM、XOY和ZF,分别存放终点横坐标、终点纵坐标、总步数、加工点偏差、直线所在象限值和走步方向标志。
这里,,等于1、2、3、4分别代表第一、第二、第三、第四象限,的值可由终点坐标的正、负符号来确定,的初值为0,ZF=1、2、3、4分别代表、、、走步方向。
程序流程如图2所示。
图2 直线插补程序流程图(二)逐点比较法圆弧插补各象限圆弧插补的偏差符号与进给方向如图3所示,用SR和NR分别表示顺圆弧和逆圆弧,并且用SR1、SR2、SR3、SR4和NR1、NR2、NR3、NR48种圆弧分别表示第一至第四象限的顺圆弧和逆圆弧。
图3 4个象限圆弧插补的对称关法插补原理VC程序设计—By O.z.系在计算机内存中开辟8个单元X0、Y0、NXY、FM、RNS、XM、YM和ZF,分别存放起点的横坐标、起点的纵坐标、总步数、加工点偏差、圆弧种类值RNS、、和走步方向标志。
(完整版)复件逐点比较法插补程序程序设计与模拟毕业论文
大连民族学院本科毕业设计(论文)逐点比较法插补程序程序设计与运行模拟学院(系):机电信息工程学院_____专业:机械设计制造及其自动化__学生姓名: _________学号: _________指导教师:李文龙 __________评阅教师:_________________________完成日期:_________________________ 大连民族学院摘要在数控编程时,一般仅提供描述该线形所必须的相关参数,但为了满足几何零件尺寸精度要求,必须在刀具(或工件)运动过程中实时计算出满足线形和进给速度要求的在起点和终点之间的若干中间点,所以就有了插补。
本设计主要阐述了逐点比较法的基本原理,在四个象限直线、圆弧插补的插补原理以及如何实现。
重点研究了逐点比较法的基本算法,控制程序的原理框图,对逐点比较法做了详细的研究,掌握基本的G代码的内容与运用,编写插补程序,并且基于vb平台演示插补过程。
从调试结果来看,本文所提供的运算与编程能够通过简洁的“输入输出”界面,较好的实现了计算机屏幕模拟。
关键词:简易数控;逐点比较法插补;G代码;VB;计算机屏幕模拟AbstractBy-point comparison interpolation program design and runthe simulation programIn NC programming, generally only provide a description of the relevant parameters necessary for linear, but in order to meet the accuracy requirements of the geometric part size must be in the tool (or workpiece) during exercise to meet the real-time calculation and linear feed rate required at the start and some intermediate point between the endpoints, so there will be interpolated.The design is mainly explained by-point comparison of the basic principles in the four quadrants linear and circular interpolation interpolation theory and a point by point comparison of the basic algorithm, a block diagram of the control program, right by-point comparison method to do a detailed study and master the basic content and the use of G-code, write interpolation procedures, and is based on interpolation vb platform demo process.From the debugging results, provided computing and programming through simple "input output" interface, to achieve a better simulation of the computer screenKeywords:Simple numerical control; interpolation point by point comparison;G code;VB;Computer simulation on the screen目录摘要 ........................................................................................................................... ABSTRACT....................................................................................................................目录 ...........................................................................................................................1 绪论 ...................................................................................................................... - 11.1课题的背景..................................................................................................... -11.2课题的主要研究内容...................................................................................... -31.3课题的研究方案 ............................................................................................. -32 数控加工基本原理.................................................................................................... - 42.1概述................................................................................................................ -42.2数控编程内容................................................................................................. -42.3逐点比较法直线插补原理 .............................................................................. -52.3.1偏差计算公式........................................................................................ - 62.3.2插补计算过程........................................................................................ - 62.3.3终点判别 ............................................................................................... - 62.3.4不同象限的直线插补计算..................................................................... - 72.4逐点比较法圆弧插补原理 .............................................................................. -72.4.1偏差计算公式........................................................................................ - 72.4.2终点判别法 ........................................................................................... - 82.5VB基本原理 ................................................................................................... -83 逐点比较法总体方案设计 ...................................................................................... - 103.1程序设计简介............................................................................................... -103.2逐点比较法直线插补框图 ............................................................................ -113.3逐点比较法圆弧插补框图 ............................................................................ -124 逐点比较法方案的程序设计................................................................................... - 144.1逐点比较法直线插补运算 ............................................................................ -144.2逐点比较法圆弧插补运算 ............................................................................ -144.3准备功能G代码 ........................................................................................... -164.4插补界面设计............................................................................................... -165 VB调试 ................................................................................................................... - 175.1直线插补VB调试 .......................................................................................... -175.2圆弧插补VB调试 ......................................................................................... -17参考文献 .................................................................................................................... - 20附录A 直线和圆弧插补象限区分程序....................................................................... - 21致谢 .................................................................................................................... - 281 绪论1.1课题的背景数字控制简称数控,是由数字指令控制对象的一种自动控制技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
厦门海洋职业技术学院学生课程设计题目:逐点比较法圆弧插补的连续轨迹控制设计学生姓名:廖晨杰所在院(系) 机电系专业:数控技术班级:数控2111指导教师:杨光2013年月日目录1.设计要求 (3)2.设计目的 (3)3.总体比较法 (3)4.多CPU结构CNC系统硬件原理图 (4)5.逐点比较法直线插补原理 (5)6.软件构成设计 (9)7.程序代码设计 (12)8.参考文献 (17)9.设计小结 (17)1 设计要求1.1 设计要求(1)设计出逐点比较法插补软件流程图;(2)编写出逐点比较法插补程序;(3)要求用软件能够实现任意象限圆弧(G03)的插补计算;(4)要求软件能够处理特殊轮廓的插补,例如坐标中任意圆弧等;(5)插补结果要求能够以图形模拟进行输出。
2 设计目的2.1 设计目的(1)了解连续轨迹控制数控系统的组成原理;(2)了解逐点比较法插补的基本原理;(3)掌握逐点比较法插补的软件实现方法。
3 总体方案比较3.1 各多种方案的特点第一:采用逐点比较法插补。
逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出买成速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍第二:数学积分法插补。
又称为微分分析法。
这种插补方法可实现一次、二次、甚至高次曲线的插补,也可以实现多坐标联动控制。
只要输入不多的几个数据,就能加工出圆弧等形状较为复杂的轮廓曲线。
作直线插补时,脉冲分配也较均匀。
第三:数据采样插补。
数据采样插补实际上是一种粗插补过程,它所产生的微小线段仍然比较大,必须进一步对其密化(即精插补)。
粗插补算法比较复杂,大多用高级语言编制;精插补算法比较简单,多用汇编语言或硬件插补器实现。
3.2 方案选择根据课题要求,对逆圆插补。
根据两种方案的比较,都是很好的方法,但由于圆是二次,用采用逐点比较法插补进行设计比较方便、简单,所以根据各种插补方法的特点,选择用逐点比较法来实现。
4 多CPU结构CNC系统硬件原理图4.1 CNC系统原理图图4.1 共享总线的多CPU结构的CNC系统结构框图4.2 原理图极其说明共享总线机构,只有主模块有权控制系统的总线,在某一时刻只能有一个猪模块占有总线。
共享总线结构的模块之间的通行,主要依靠存储器的实现,采用公共存储器的方式。
共享存储器结构,采用多端口存储器来实现各CPU之间的互连和通信,每个端口配有一套数据、地址、控制线,以端口访问,由多端控制逻辑电路解决访问冲突。
管理模块:该模块是管理和组织整个CNC系统工作的模块,主要功能包括:初始化、中断管理、总线裁决、系统出错识别和处理、系统硬件与软件诊断等;插补模块:该模块用于在插补完成前,进行零件程序的译码、刀具补偿、坐标位移量计算、进给速度处理等预处理,然后进行插补计算,并给顶各坐标轴的位置值;位置控制模块:对坐标位置给定值与由位置检测到的实际位置值进行比较并获得差值,进行自动加减、回基准点、对伺服系统滞后量进行监视和漂移补偿,然后得到速度控制的模块电压,去驱动进给电动机;PLC模块:零件程序的开关量(S、M、T)和机床面板来的信号在这个模块中进行逻辑处理,实现机床电器的启、停控制,刀具交换,转台分度,工件数量和运转时间的次数等;命令与数据输入/输出模块;指零件程序、参数和数据,各种操作指令的输入/输出,以及显示所需要的各种接口电路;存储器模块:指程序和数据的主存储器,或功能模块数据传送用的共享存储器5 逐点比较法直线插补原理逐点比较法的基本原理是被控对象在按要求的轨迹运动时,每走一步都要与规定的轨迹进行比较,由此结果决定下一步移动的方向。
逐点比较法既可以作直线插补又可以作圆弧插补。
这种算法的特点是,运算直观,插补误差小于一个脉冲当量,输出脉冲均匀,而且输出买成速度变化小,调节方便,因此在两坐标数控机床中应用较为普遍。
5.1 逐点比较法圆弧插补原理加工一个圆弧,很容易令人想到用加工点到圆心的距离与该圆弧的名义半径相比较来反映加工偏差。
设要加工图3-1所示的第一象限逆时针走向的圆弧AB,半径为R,以圆点为圆心,起点坐标为A(X。
,y。
),在xy坐标平面第一象限中,点P(X i,Y j)的加工偏差有以下3种情况。
若加工点P(X i,Y j)正好落在圆弧上,则下式成立,即=若加工点P(X i,Y j)在圆弧外侧,则Rp>R,即222200i j x y x y +>+若加工点P(X i ,Y j )落在圆弧内侧,则Rp<R,即222200i j x y x y +<+将上面各式分别改写为下列形式,即(X i ²-Y j ²)+(X 。
²-y 。
²)=0 (在圆弧上) (X i ²-Y j ²)+(X 。
²-y 。
²)>0 (在圆弧外侧) (X i ²-Y j ²)+(X 。
²-y 。
²)<0 (在圆弧外侧)取加工偏差判别式为2222,00()()i j i j F x y x y =-+-若点P(X i ,Y j )在圆弧外侧或圆弧上,则满足F i,j ≧0的条件时,向X 轴发出一负向运动的进给脉冲(-ΔX);若点P(X i ,Y j )在圆弧内测,即满足条件F i,j<0的条件时,则向Y 轴发出一正向运动的进给脉冲(+ΔY)。
为了简化偏差判别式的运算,仍用递推法来推算下一步新的加工偏差。
设加工点P(X i ,Y j )在圆弧外侧或圆弧上,则加工偏差为2222,00()()0i j i j F x y x y =-+-≥故X 轴必须向负方向进给一步(-ΔX),移动到新的加工点P(X i ,Y j ),其加工偏差为222222221,0000(1)21i j i j i i j F x x y y x x y y x +=--+-=-++--=F i,j+2y j +1…………………………………………(5-1)设加工点(,)i j P x y 在圆弧的内测,则,0i j F <。
那么y 轴须向正向进给一步()y +∆,移到新的加工点1(,)i j P x y +,其加工偏差为222222221,0000(1)21i j i j i j j F x x y y x x y y y +=-++-=-+-+-,21i j i F y =++…………………………………………(5-2)根据式(3-)及式(3-)可以看出,新的加工点的偏差值可以用前一点的偏差值递推出来。
递推法把圆弧偏差运算式由平方运算化为加法和乘2运算,而对二进制来说,乘2运算是容易实现的。
5.2 圆弧插补的运算过程圆弧插补的运算过程与直线插补的过程基本一样,不同的是,圆弧插补时,动点坐标的绝对值总是一个增大,另一个减小。
如对于第一象限逆圆来说,动点坐标的增量公式为 X i+1= X i-1 Y i+1= Y i -111i i x x +=-圆弧插补运算每进给一步也需要偏差判别、进给、偏差计算、终点判别四个工作节拍,运算中F 寄存偏差值为F i,j ;x 和y 分别寄存x 和y 动点的坐标值,开始分别存放X 。
和Y 。
;n 寄存终点判别值:n=|Xe-X 。
| +|Ye-Y 。
|5.3 节拍控制和运算程序的流程图圆弧插补的节拍控制:综上所述,逐点比较法圆弧插补的全过程,每走一步都要进行以下四个节拍,如图5-2所示。
第一节拍——偏差判别:判断道具当前位置相对于给定的轮廓的偏差情况,以此决定道具移动的方向;第二节拍——进给:根据偏差判断结果,控制道具相对于工件轮廓进给一步,即向给定的轮廓靠拢,减小偏差;第三节拍——偏差计算:由于道具进给已经改变了位置,因此应计算出道具当前位置的新偏差,为下次判别做准备;第四节拍——终点判别:判别刀具是否已到达被加工轮廓的终点。
若已经到达终点,则停止插补;若还未到达终点则继续插补。
如此不断重复上述四个节拍就可以加工出所要加工的轮廓。
5.3圆弧插补的象限处理与坐标交换5.3.1圆弧插补的象限处理上面仅讨论了第一象限的逆圆弧插补,实际上圆弧所在的象限不同,顺逆不同,则插补公式和进给方向均不同。
逆圆插补有四种情况,如图5-3所示。
现将逆圆弧插补的四种情况的偏差计算及进给方向列于表3-1中,其中R表示圆弧,N表示逆时针,四个象限分别用数字1、2、3、4标注,例如NR1表示第一象限逆圆。
表5-1 xy平面内逆圆插补的进给方向与偏差计算5.3.2圆弧自动过象限所谓圆弧自动过象限,是指圆弧的起点和终点不在同一象限内,如图3-4所示。
为实现一个程序段的完整功能,需设置圆弧自动过象限功能。
要完成过象限的功能,首先应判别何时过象限。
过象限有一显著特点,就是过象限时刻正好是圆弧与坐标轴相交的时刻,因此在两个坐标值中必有一个为零,判断是否过象限只要检查是否有坐标值为零即可。
过象限后,,圆弧线型也改变了,但过象限时象限的转换是有一定规律的。
当圆弧起点在象限时,逆时针圆弧过象限后转换顺序NR1→NR2→NR3→NR4→NR1,每过一次象限,象限顺序号加1,当从第四象限向第一象限过象限时,象限顺序号从4变去。
6 软件结构设计6.1 逐点比较法圆弧插补的程序设计方案为了直观显示数控插补程序,必须动态的描述道具从起点A到终点B的过程中位置变化情况,现选用Visual Basic来设计插补过程。
使用窗体和控件设置程序的界面。
6.2程序实现方法根据插补的要求,该程序首先要判断加工圆弧的象限,然后通过偏差判断——进给——偏差计算——判别终点完成圆弧插补,其工作过程如图4-1所示。
6.3程序界面设计该程序运行时首先要输入插补直线的起点和终点X、Y坐标以及圆心坐标、半径值,点击“确定”按钮,再点击“模拟”按钮后进行模拟,点击“退出”按钮,即可退出程序界面,若需要继续进行下一次模拟,则可以点击“重新开始”按钮,继续输入下一组数据进行模拟。
其有关控件设置如表6-1所示,工作界面设计如图6-2所示,某一圆弧插补的运行界面如图6-3所示。
表6-1程序控件设计图6-2 工作界面设计图图6-3 圆弧插补运行界面图6.4程序代码设计Dim n, xa, ya, x(1000), y(1000), f(1200), j, k, p, i, R, x0, y0 Private Sub Command1_Click()Label1.Visible = False '控制各个控件的可见性Label2.Visible = FalseLabel3.Visible = FalseLabel4.Visible = FalseLabel5.Visible = FalseLabel6.Visible = FalseLabel7.Visible = FalseLabel8.Visible = FalseLabel9.Visible = FalseLabel10.Visible = TrueLabel11.Visible = TrueText1.Visible = FalseText2.Visible = FalseText3.Visible = FalseText4.Visible = FalseText5.Visible = FalseText6.Visible = FalseText7.Visible = FalseForm1.Cls '清除窗体中的内容x(0) = Val(Text1.Text) '将文本框1中输入的坐标值赋给x(0) y(0) = Val(Text3.Text) '将文本框2中输入的坐标值赋给y(0) xa = Val(Text2.Text) '将文本框3中输入的坐标值赋给xa ya = Val(Text4.Text) '将文本框4中输入的坐标值赋给ya x0 = Val(Text5.Text) '将文本框5中输入的坐标值赋给x0 y0 = Val(Text6.Text) '将文本框6中输入的坐标值赋给y0 R = Val(Text7.Text) '将文本框7中输入的坐标值赋给RIf Abs(x(0)) < Abs(y(0)) Then '将最大的坐标值赋给pp = Abs(y(0))Elsep = Abs(x(0))End IfIf p < Abs(xa) Thenp = Abs(xa)End IfIf p < Abs(ya) Thenp = Abs(ya)End IfIf p > 0 Then '判断起点和终点是否都在坐标原点 Scale (-1.1 * p, 1.2 * p)-(1.1 * p, -1.1 * p) '建立窗体的坐标系Line (-1.1 * p, 0)-(1.1 * p, 0) '画x轴轴线Line (0, 1.1 * p)-(0, -1.1 * p) '画y轴轴线Label5.Left = 0.05 * pLabel5.Top = pLabel6.Top = -0.05 * pLabel6.Left = 1.05 * pElse '起点和终点都在坐标原点时弹出注意信息框 MsgBox "起点坐标和终点都是坐标原点,请点击“重新开始”按钮重新输入!", vbOKOnly, "注意"End Ifn = Abs(ya - y(0)) + Abs(xa - x(0)) '插补的总步数Circle (x0, y0), R '画出需要插补的圆Command2.Enabled = TrueEnd SubPrivate Sub Command2_Click() '模拟按钮Command2.Enabled = Falsef(0) = 0For i = 0 To n - 1If (x(0) > 0) And (y(0) >= 0) Then '起点第一象限If f(i) >= 0 Then '偏差大于0时,向x负方向走一步 For j = x(i) To x(i) - 1 Step -0.0001PSet (j, y(i)), 255 '用红色的点画直线Next jx(i + 1) = x(i) - 1 '下一点的坐标和偏差计算y(i + 1) = y(i)f(i + 1) = f(i) - 2 * x(i) + 1For j = y(i) To y(i) + 1 Step 0.0001PSet (x(i), j), 255 '用红色的点画直线Next jy(i + 1) = y(i) + 1 '下一点的坐标和偏差计算x(i + 1) = x(i)f(i + 1) = f(i) + 2 * y(i) + 1End IfEnd IfIf (x(0) >= 0) And (y(0) > 0) Then '起点第二象限If f(i) < 0 Then '偏差小于0时,向x负方向走一步 For j = x(i) To x(i) - 1 Step -0.0001PSet (j, y(i)), 255 '用红色的点画直线Next jx(i + 1) = x(i) - 1 '下一点的坐标和偏差计算y(i + 1) = y(i)f(i + 1) = f(i) - 2 * x(i) + 1Else '偏差大于0时,向y负方向走一步 For j = y(i) To y(i) - 1 Step -0.0001PSet (x(i), j), 255 '用红色的点画直线Next jy(i + 1) = y(i) - 1 '下一点的坐标和偏差计算x(i + 1) = x(i)f(i + 1) = f(i) - 2 * y(i) + 1End IfEnd IfIf (x(0) < 0) And (y(0) <= 0) Then '起点第三象限If f(i) >= 0 Then '偏差大于0时,向x正方向走一步For j = x(i) To x(i) + 1 Step 0.0001PSet (j, y(i)), 255 '用红色的点画直线Next jx(i + 1) = x(i) + 1 '下一点的坐标和偏差计算y(i + 1) = y(i)f(i + 1) = f(i) + 2 * x(i) + 1For j = y(i) To y(i) - 1 Step -0.0001PSet (x(i), j), 255 '用红色的点画直线Next jy(i + 1) = y(i) - 1 '下一点的坐标和偏差计算x(i + 1) = x(i)f(i + 1) = f(i) - 2 * y(i) + 1End IfEnd IfIf (x(0) >= 0) And (y(0) < 0) Then '起点第四象限If f(i) < 0 Then '偏差小于0时,向x正方向走一步 For j = x(i) To x(i) + 1 Step 0.0001PSet (j, y(i)), 255 '用红色的点画直线Next jx(i + 1) = x(i) + 1 '下一点的坐标和偏差计算y(i + 1) = y(i)f(i + 1) = f(i) + 2 * x(i) + 1Else '偏差大于0时,向y正方向走一步 For j = y(i) To y(i) + 1 Step 0.0001PSet (x(i), j), 255 '用红色的点画直线Next jy(i + 1) = y(i) + 1 '下一点的坐标和偏差计算x(i + 1) = x(i)f(i + 1) = f(i) + 2 * y(i) + 1End IfEnd IfNext iEnd SubPrivate Sub Command3_Click() '退出按钮EndEnd SubPrivate Sub Command4_Click() '重新开始按钮Form1.Cls '清除窗体上的内容Label1.Visible = True '控制各个控件的可见性Label2.Visible = TrueLabel3.Visible = TrueLabel4.Visible = TrueLabel5.Visible = TrueLabel6.Visible = TrueLabel7.Visible = TrueLabel8.Visible = TrueLabel9.Visible = TrueLabel10.Visible = FalseLabel11.Visible = FalseText1.Visible = TrueText2.Visible = TrueText3.Visible = TrueText4.Visible = TrueText5.Visible = TrueText6.Visible = TrueText7.Visible = TrueCommand2.Enabled = FalseEnd Sub设计小结本次设计采用了一种用计算机来模拟树精插补的方法,在充分利用VB设计语言的简单直观的基础上,使数控插补原理的实现更加形象化。