1.直线插补计算原理
(1)偏差函数与偏差判别
按逐点比较法基本原理,每运行一步,必须把动点的实际位置与给定轨迹的理想位置间的误差以“偏差”的形式计算出来,然后根据偏差的正、负决定下一步的走向,以逼近给定轨迹。因此,偏差的计算是关键。以第一象限平面直线为例来推导偏差计算公式。
如图1-14 所示直线OA,其起点O 为坐标原点,终点坐标A(xe,ye)为已知。直线OA 即为给定轨迹,m(xm,ym)点为加工点(动点)。若m 点正好处在直线OA 上,则有下式成立
即
假定动点处于OA 的上方,则直线Om’的斜率大于OA 的斜率,从而有
即
由以上分析可以看出,(images/P18_2212781.jpg)的符号反映了动点m 与直线OA 间的偏离情况。为此。可取偏差函数为
据此总结出动点m 与给定直线OA 间的相对位置关系如下。
若Fm=0,则动点正好处在直线OA 上,如m;
若Fm >0,则动点处在直线OA 上方,如m';
若Fm <0,则动点处在直线OA 下方,如m''。
(2)坐标进给
如图1-14所示可以看出第一象限直线插补。当Fm<0时,应向+X 方向进给一步;当Fm <0 时应向+Y 方向进给一步,以逼近给定直线;当Fm=0 时,动点正好在直线上,理论上既可以向+X 方向走,也可以向+Y 方向走,一般约定向+X 方向走。于是可以得到第一象限直线的插补法,即当Fm ≥0 时向+X 进给一步,当+Y 时向+Y 进给一步,如此步步紧逼,直至终点。
(3)新偏差计算
插补过程中每走完一步都要算一次新的偏差,如果计算则要做两次乘法与一次减法运算。这不仅影响了插补的速度,而且在使用硬件或汇编语言软件实现插补时不太方便,因此必须设法简化运算。通常采用递推法,即每进一步后所到达点的偏差值通过前一点的偏差递推算出。
如图1-14 所示,如果经m 次插补后加工点处于m'点,其坐标为(xm,ym),因m'点在OA 上方,求得Fm,则下一次(m+1 次)插补应向方向进给一步。设坐标值的单位为脉冲当量,则m+1 次插补后的坐标值为
图1-14 第一象限直线
新偏差函数为
即
同样,如果经m 次插补后加工点处于点,因点在下方,求得,则下一次(m+1 次)插补应向方向进给一步。走步后的新坐标值为
新偏差函数为
即(www.xing528.com)
可以看出,采用递推算法后,偏差函数的计算只与终点坐标有关,而不涉及动点坐标,且不需要进行乘法运算。新动点的偏差函数可由上一动点的偏差函数递推出来(减或加),因此该算法相当简单,容易实现。由于起点已经预先走到,起点偏差已知为零,即递推开始时的偏差函数初始值为。
(4)终点判别
终点判别有如下三种方法。
① 设置∑x、∑y 两个减法计数器,插补前在∑x、∑y 计数器中分别存入终点坐标值xe、ye作为初始值,当X 或Y 方向每进给一步时,在相应的计数器中减去1,直到两个计数器中的数都减到0 时,插补停止,到达终点。
② 选终点坐标xe、ye 中较大的坐标作为计数坐标,如xe >ye,则用xe 作为计数器初始值,仅走步时,计数器才减1,计数器减到零时即认为到达终点。
③ 设置一个终点计数器∑,计数器中存入X和Y 两坐标的进给步数总和,即∑=xe+ye,无论或坐标进给,计数器均减1,当减到0 时即认为到达终点,停止插补。
通常采用上述三种方法中的第三种。
2.直线插补计算举例
设加工第一象限直线,起点为坐标原点,终点坐标为xe=6、ye=4,坐标值单位为脉冲当量,试进行插补计算并画出走步轨迹图。
计算过程见表1-1,表中的终点判别采用上述第三种方法。走步轨迹如图1-15 所示。
图1-15 直线插补走步轨迹
表1-1 直线插补过程
3.四象限直线插补计算
以上所述仅为第一象限直线插补的计算处理方法。第一象限直线插补法经适当处理后可推广到其余象限的直线插补。当插补直线处于不同象限时,只要采用其坐标的绝对值计算,即用|X|代替X,用|Y|代替Y,其计算公式及处理过程与第一象限直线完全一样,仅是进给方向不同而已。由此,可得到偏差符号如图1-16 所示,当动点处在直线上时,偏差F=0;动点不在直线上且偏向轴一侧时,F>0;偏向轴一侧时,F<0。由图1-16 可见,当时F ≥0,应沿X 走步,第一、四象限走+X 方向,第二、三象限走-X 方向;当F<0 时,应沿沿Y 轴走步,第一、二象限走+Y方向,第三、四象限走-Y 方向。终点判别也应用终点坐标的绝对值作为计数器初值。
图1-16 四象限直线偏差符号和进给方向
例如,第二象限直线OA2。其终点坐标A2 为(-xe,ye),在第一象限有一条和它对称于Y轴的直线OA1,其终点坐标A1 为(xe,ye)。当从O 点出发,按第一象限直线OA1 进行插补时,若把沿轴正向进给改为沿X 轴负向进给,则实际插补出的就是第二象限直线OA2,而其偏差计算公式与第一象限直线相同。同理,插补第三象限终点A3 为(-xe,-ye)的直线OA3,它与第一象限终点为(xe,ye)的直线OA1 对称于原点,可依然按第一象限直线OA1 插补,只需在进给时将X、Y 由正向进给改为负向进给即可。
表1-2 列出了四象限直线插补的偏差计算公式与进给方向。表中分别表示第一、第二、第三、第四象限直线。
表1-2 直线插补计算公式及进给方向
4.直线插补计算的程序实现
程序设计首先要明确设计要求,根据程序的任务划分模块,设计算法及流程图,分配资源后进行程序编制。直线插补只是数控系统软件的一个模块,在设计流程图前,需要确定与其他模块间的关系。因为某一象限的直线在各轴的进给方向是确定的,并且在此直线的插补过程中保持不变。所以,插补程序不处理进给方向问题。进给方向由数据处理程序以标志的形式直接传递给进给驱动子程序。在开环系统中,进给驱动子程序的功能主要是根据插补结果和进给方向标志,驱动步进电机运动。在设计流程图前,做出如下规定:
(1)在内存中开出四个数据区XX、YY、JJ、FF,分别用于存放终点坐标xe、ye、∑总步数和偏差Fm。在8 位机中,算术运算是以单字节(8 位二进制数)为基础的;16 位机算术运算则以字(16 位二进制数)为基础;在数控系统中,通常需要三个以上的字节才能满足长度和精度的要求。所以,以上四个数据区每个的长度,8 位机可定为3 个字节,16 位机可定为2 个字。
(2)数据区初始化,包括FF 区清零,由数据处理模块完成。
这样,直线插补程序流程如图1-17 所示。
图1-17 逐点比较法直线插补流程图
设步进电机为三相六拍运行,STX、STY 分别为轴、轴步进电机环形分配指针,PORTX 和PORTY 分别为、轴的控制字输出口地址,标志字节FXGH 的第0 位和第1 位分别表示轴和轴的进给方向,1 为正向,0 为反向。轴进给驱动子程序流程图如图1-18 所示。
图1-18 轴进给驱动子程序流程图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。