CNC装置系统软件的主要任务:如何将由零件加工程序表达的加工信息,变换成各进给轴的位移指令、主轴转速指令和辅助动作指令,控制加工设备的轨迹运动和逻辑动作,加工出符合要求的零件。
CNC装置数据转换流程示意图
1.译码(解释)
将用文本格式(通常用ASCII码)表达的零件加工程序,以程序段为单位转换成后续程序(本例是指刀补处理程序)所要求的数据结构(格式)。
数据结构示例:
Struct PROG_BUFFER {
char buf_state; //缓冲区状态,0 空;1 准备好。
int block_num; //以BCD码的形式存放本程序段号。
double COOR[20];//存放尺寸指令的数值(μm)。
int F,S; //F(mm/min)S(r/min)。
char G0; //以标志形式存放G指令。
char G1;
char M0; //以标志形式存放M指令。
char M1;
char T; //存放本段换刀的刀具号。
char D; //存放刀具补偿的刀具半径值。
};
以标志形式存放G指令示例:
在系统软件中各程序间的数据交换方式一般都是通过缓冲区进行的。该缓冲区由若干个数据结构组成,当前程序段被解释完后便将该段的数据信息送入缓冲区组中空闲的一个。后续程序(如刀补程序)从该缓冲区组中获取程序信息进行工作。
N06 G90 G41 D11 G01 X200 Y300 F200 ;
----------------------------------------
Struct PROG_BUFFER { char buf_state; 0:(开始);1(;)⑨
int block_num; 06(N06)① double COOR[20]; COOR[1]=200000;(X200)⑥
COOR[2]=300000;(Y300)⑦
int F,S; F=200;(F200)⑧
char G0; D5=0;(G90)②
D6,D7=0,1(G41)③
D1=1;(G01)⑤
……
char D; D=11(D11)④
};
2.刀补处理(计算刀具中心轨迹)
刀补处理的主要工作:
·根据G90/G91计算零件轮廓的终点坐标值。
·根据R和G41/42,计算本段刀具中心轨迹的终点(P’e/P〃e)坐标值。
·根据本段与前段连接关系,进行段间连接处理。
3.速度预处理
主要功能是根据加工程序给定的进给速度,计算在每个插补周期内的合成移动量,供插补程序使用。
速度处理程序主要完成以下几步计算:
·计算本段总位移量:
直线:合成位移量L;
园弧:总角位移量α。
该数供插补程序判断减速起点和终点之用。
·计算每个插补周期内的合成进给量:
ΔL= F*Δt/60 (μm)
式中:F--进给速度值(mm/min);△t--数控系统的插补周期(ms)
4.插补计算
主要功能:
·根据操作面板上“进给修调”开关的设定值,计算本次插补周期的实际合成位移量:
△L1=△L*修调值
·将△L1按插补的线形(直线,园弧等)和本插补点所在的位置分解到各个进给轴,作为各轴的位置控制指令(△X1、△Y1)。
经插补计算后的数据存放在运行缓冲区中,以供位置控制程序之用。本程序以系统规定的插补周期△t定时运行。
5.位置控制处理
位置控制转换流程
位置控制完成以下几步计算:
·计算新的位置指令坐标值:
X1新= X1旧+△X1;Y1新= Y1旧 +△Y1;
·计算新的位置实际坐标值:
X2新= X2旧+△X2;Y2新= Y2旧 +△Y2
·计算跟随误差(指令位置值— 实际位置值):
△X3= X1新- X2新; △Y3= Y1新- Y2新;
·计算速度指令值:
VX=f(△X3); VY=f(△Y3)
f()是位置环的调节控制算法,具体的算法视具体系统而定。这一步在有些系统中是采用硬件来实现的。VX、VY送给伺服驱动单元,控制电机运行,实现CNC装置的轨迹控制。