逐点比较法插补的连续轨迹控制设计

合集下载

逐点比较法圆弧插补算法

逐点比较法圆弧插补算法

二、 逐点比较法圆弧插补加工一个圆弧,很容易联想到把加工点到圆心的距离和该圆的名义半径相比较来反映加工偏差。

这里,我们以第Ⅰ象限逆圆弧为例导出其偏差计算公式。

设要加工图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

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.逐点比较法直线插补

01-2.逐点比较法直线插补
图5-10 脉冲增量差补流程框图
机电工程学院
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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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设计语言的简单直观的基础上,使数控插补原理的实现更加形象化。

相关文档
最新文档