两轴直线插补定位
两轴直线插补定位:
算法设计:
直线插补的算法很多。这里介绍的是,基准轴输出为主,辅助轴输出配合半累加插补算法。
此算法使用时,起始点为当前位置,终点可按直角坐标的X、Y值,以脉冲为单位选定。同时,还要选定所在象限。用选定象限确定脉冲输出的方向。如第一象限,则X为正向,Y也为正向。如二象限,则X为反向,Y为正向。其它象限类推。在执行程序时按步计算,按步输出脉冲,而方向用方向信号控制。这里介绍算法,就是一步步是怎么算的。
所谓基准轴,就是终点坐标值较大的轴。在每步它都输出脉冲,只是当辅助轴有脉冲输出时,它让辅助轴先输出。而辅助轴则用累加的方法,确定是否输出。
累加的过程是,用自身的终点坐标累加,当大于基准轴的终点坐标时,输出一个脉冲,并把累加值减基准轴的终点值,“差”又作为在累加值。该算法的框图见图5-5-1-6。
图5-5-1-6 半累加直线插补算法框图
图5-5-1-7示的为一个插补运算实例。
图5-5-1-7 插补实例
从图知,该例的X轴终点坐标为9,而Y轴为3。可知,应选X轴为基准轴,而Y为辅助轴。从框图知,一开始就累加辅助轴的终点坐标值。但它仅3,比基准的终点坐标值9小,故仅基准轴输出脉冲,走了第1步。接着,又累加辅助轴的终点坐标值。这时为6,比基准的终点坐标值9小,故仅基准轴输出脉冲,走了第2步。接着,又累加辅助轴的终点坐标值。这时为9,不比基准的终点坐标值9小,故仅辅助轴输出脉冲,走了第3步,累计值变为0。之后,4、5、6又是X轴输出;7是Y轴输出;8、9、10又是X轴输出;11是Y轴输出;12又是X轴输出。
可知,本算法的进给的速度是恒定的,有利于切削加工的应用。
程序实现:
程序是按算法编的,也是算法的具体化。其基本程序见图5-5-1-8、图5-5-1-9、图5-5-1-10。图5-5-1-8为步进工作启动及初始化程序。图5-5-1-9为X是基准轴时的脉冲输出控制程序。至于YX是基准轴时的脉冲输出控制程序与此类似,故不重复。图5-5-1-10为终点及方向控制程序。方向控制仅画两个象限。其它两个象限略。
图5-5-1-8步进工作启动及初始化程序
启动程序用了基本的起、保停逻辑。步进启动ON,则步进工作ON,并自保持。直到步进完成ON,则步进工作OFF。这里并联LR0.7,为了选定新的程序后重启动的需要。见图5-5-1-11说明。
初始化,主要是判断那个轴为基准轴及参数回到初始值。显然,不进行初始化,程序是无法正确执行的。
另外,还要启动定时器TIMH000。按图设定,它每0.05秒ON一个扫描周期。正是用它控制脉冲输出的节奏,即频率。此定时时间可按需要改设。为了控制准确也可启用PLC的定时中断及立即I/O刷新的功能,以提高控制效果。
图5-5-1-9 X是基准轴时脉冲输出控制
从图5-5-1-9知,“X行程大”意味着X为基准轴。正如算法框图指出的,它先对Y轴终点坐标值累加。然后,把累加值被“累加器”减。参看图5-5-1-8知,此“累加器”即为X轴的终点坐标值。如不够减,即它小“累加器”,则LR0.2 OFF,X轴输出脉冲,“已走步数“加1。如够减,即它大、等于“累加器”,则LR0.2 ON。进而,把差赋值给Y累加器,输出脉冲(使用什么指令可视选用机型确定),“已走步数“加1,并把LR0.12置位。LR0.12置位的目的是,在这个脉冲周期哦,X轴不输出脉冲。但临退出本程序段时,用LR0.02 ON,把LR0.12复位。为下一周期执行X轴发送脉冲作准备。
提示:这里如不用LR0.12,基准轴总是输出脉冲,而辅助轴累加值超过基准轴终点值时,也输出脉冲。运动轨迹将有时是走坐标轴的平行线斜线,有时走斜线。速度将是不均匀的。
当下一此,TIM000 ON再进入本程序段时,由于LR0.02仍为ON,故Y轴的累加不进行。而X轴的步进等将执行,而且,最后还把LR0.02复位,为新一次的Y轴累加及相应操作作准备。
至于不是“X行程大”,Y为基准轴的情况与此类似。
图5-5-1-10 终点及方向控制程序
从图5-5-1-10知,它主要是判断到了坐标终点了没有?如到,则置位“步进完成”。再看图5-5-1-8可知,此信号将使“步进工作”停止。
此外,此程序还依选定的象限,对X、Y轴运动方向做了确定。图中只列出1、2象限的程序,3、4象限也类似。
以上讲的只是一个小直线段的插补。而且,坐标长度也不能打于单字BCD运算的范围(当然,也可用二进制或双字运算运算)。如要走多段程序怎么办?图5-5-1-11即为可进行多段直线插补的主程序。这时,以上图5-5-1-8、图5-5-1-9、图5-5-1-10只是它的子程序10。
图5-5-1-11