2 空间直线的逐点比较插补算法
逐点比较法是国内数控机床中广泛采用的一种插补方法,其能实现直线、圆弧和非圆二次曲线的插补,插补精度较高。逐点比较法即每走一步,均要将加工点的瞬时坐标同规定的图形轨迹相比较,判断其偏差,然后决定下一步的走向,若加工点走到图形外,则下一步就要向图形内走。若加工点在图形内,则下一步要向图形外走。这样就能得出一个接近规定图形的轨迹,其最大偏差不超过一个脉冲当量。在逐点比较法中,每进给一步,均需要进行偏差判别、坐标进给、新偏差计算和终点比较4个步骤。对于一条二维平面直线,无论处于哪个象限,对其进行逐点比较法直线插补时,由以下3式计算
N=|xe-x0|+|ye-y0| (1)
Fx=F-|y|,当x≥0,走x后 (2)
Fy=F+|x|,当y<0,走y后 (3)
其中,N代表总步数;F表示判断式;x,y表示坐标。
通常情况下,在雕刻图形的设计和生成阶段,首先要预置雕刻的精度参数,所以y轴的进给量一般较小,且每步固定,雕刻的精度要求越高,则y轴的进给量则越小,这也使得雕刻文件的行数大幅增加。z轴的最大行程,一般略大于被加工材料的厚度。在3个坐标中,x轴的运动量最大,其行程由被加工材料的幅宽决定。所以在进行空间直线插补时,是假定了该空间的x轴进给的步数最大。即要在以长轴为基础建立的两个平面坐标系内进行差补运算,才能插补出正确的空间直线轨迹。因此,每读出一行雕刻加工的坐标数据,均要先行判断,找出步数最长的轴,再以其为关联轴来构建两个插补平面,这样才可将对空间直线的三维差补计算,转换成对二维平面的差补,其程序流程如图2所示。在通常情况下,木工雕刻机一般为2.5D,以x、z轴的两维插补为主,即当y轴进给时,x、z轴停止;而当x、z联动时,y轴停止。
图2 逐次比较法直线插补的程序框图
3 雕刻机数控系统软件设计
数控系统软件采用结构化、模块化的程序设计方法,由主程序、中断服务程序和功能子程序组成。主程序结构简单,主要完成对单片机系统及雕刻机各驱动轴的初始化,对键盘扫描并跳转到相应的功能模块中。中断服务程序主要包括步进电机变频驱动程序等。功能子程序主要包括LCD显示模块、参数设置模块、U盘文件读取模块、文本转换模块、步进电机走步程序、插补运算程序、对刀程序、复位程序以及故障诊断程序等。
LCD显示模块主要包括:LCD初始化、调色板设置、字符间距设置、前景画图、背景画图、字符显示、区域填色和清除、背光控制、波特率设置等程序。
U盘读取模块完成对U盘的读写,主要包括U盘检测、创建文件和目录、打开文件、读文件、删除文件和目录、列举目录下的文件名等程序。
步进电机走步程序采用T0中断,在中断中发送步进电机进给脉冲,调用插补运算程序,并根据启停变频的需要来改变T0时间常数等。插补运算程序作为子程序,被T0中断程序调用。
文本转换程序的作用是将U盘上的nc文件,转换成二进制数据。浮雕软件生成的雕刻文档,是标准的以ASIIC码格式保存的数控加工文件,实际上就是一行行的坐标数据,只有将其经过命令行识别,坐标行识别,结尾、换行和文件头尾的识别,转换成二进制数据,并按照一定的数据结构,存放在单片机的片外RAM中,才可为单片机所用。
特殊功能模块包括对刀程序和内置木工机械加工程序,对刀程序用来检测被雕刻材料的厚度。其他工机械功能有纵向锯断、横向锯断、边缘刨平、端面刨平、平面斜铣、端面斜铣和刨槽等。这些内置功能大幅简化了机器的操作,扩展了机器的使用范围。
4 结束语
基于嵌入式SoC单片机C8051F120的雕刻机数控系统,充分发挥了单片机的高集成度和高速度特性,使得控制系统的结构简化、成本降低。经用户测试,雕刻精度为0.01 mm,达到了设计要求。该系统稳定可靠,是一种低价、高效、简便的雕刻机数控系统解决方案,通过本方案的研究,为中小用户提供了台式低价的雕刻机,从而拓宽了现有雕刻机的用户群。