数控机床既有工艺系统变形误差、测量系统误差以及环境温度误差,也有机床轴运动中的定位误差,还有过象限处的轮廓误差(如尖峰或凹陷)等。它们均会造成零件加工后的实际几何精度偏离图样要求。为此,SINUMERIK系统提供了过象限误差补偿变量,用以在过象限处预先加入额外的速度设定值脉冲,使插补轴突然反向运动中因机械变形/反向间隙/摩擦条件突变引起的定位轮廓误差减小,进而提高机床的轮廓加工精度。
过象限误差补偿又称摩擦补偿,分为繁琐的传统手动调试补偿和智能学习的自动快捷补偿两种方式。自动过象限误差补偿的初次学习阶段,NC程序经高级编程语言激活QEC学习功能后,NCK会分析所发出的指令值与直接测量系统反馈的实际值之间的真实偏差,自动对机床轴添入补偿值并存入用户存储器中;再学习阶段时,NCK会对初次学习的补偿结果再优化;工作阶段时,NCK依据学习阶段的QEC补偿值,自动对机床轴加入额外的速度设定值脉冲,使机床轴的实际运动轨迹接近于指令值。
给出Oerlikon C50型螺旋锥齿轮切齿机的过象限误差补偿宏程序AX_QEC.INI。
MD32490 $MA_FRIC_COMP_MODE=2;摩擦补偿方式为自学习过象限补偿
MD32500 $MA_FRIC_COMP_ENABLE=0;QEC学习阶段,关闭摩擦补偿功能
MD32580 $MA_FRIC_COMP_INC_FACTOR=0;短距离移动摩擦补偿的权重因子设为0
MD32610 $MA_VELO_FFW_WEIGHT=1;速度前馈控制因子100%
MD32620 $MA_FFW_MODE=3;采用速度前馈方式3
MD32630 $MA_FFW_ACTIVATION_MODE=0;速度前馈控制总是激活
MD38010 $MA_MM_QEC_MAX_POINTS=400;
QEC补偿的最大点数。补偿点数越多,补偿精度越高,但学习耗时越长,占用内存也越大。每个轴最多设1025点
/_N_AX_QEC_INI;Oerlikon C50切齿机的过象限误差补偿宏程序
AX_QEC.INI 宏程序名称
/_N_ACT.DIR\;存储路径
CHANDATA(1);加工轴分配通道1
DEF INT numAxes=3;定义学习的轴数(最大为4轴)
DEF AXIS axisName[3];定义AXIS类型的数组为axisName[3]
DEF INT outNr=0;定义学习输出编号为0
DEF INT axCount=0;定义轴计数为0
DEF AXIS axNr;定义AXIS类型的变量名为axNr
axisName[0]=AX0;定义学习的轴名为机床轴X
axisName[1]=AX1;定义学习的轴名为机床轴Y
axisName[2]=AX2;定义学习的轴名为机床轴Z
GOTOF START_INIT_QEC_DATA;向程序末尾正向跳至标识START_INIT_QEC_DATA处
INIT_QEC_DATA:标识符,初始化QEC数据
$AA_QEC_COARSE_STEPS[outNr,axNr]=49;粗学习步数49
$AA_QEC_FINE_STEPS[outNr,axNr]=8;精学习步数8
$AA_QEC_ACCEL_1[outNr,axNr]=20;
加速度限制值1,2%×1000(最大轴加速度)=20m/s2
$AA_QEC_ACCEL_2[outNr,axNr]=600;
加速度限制值2,60%×1000(最大轴加速度)=600 m/s2
$AA_QEC_ACCEL_3[outNr,axNr]=1000;
加速度限制值3(最大轴加速度)1000m/s2
$AA_QEC_MEAS_TIME_1[outNr,axNr]=0.090;
加速度1错误计算测量时间,6×0.015=0.090s
$AA_QEC_MEAS_TIME_2[outNr,axNr]=0.045;
加速度2错误计算测量时间,3×0.015=0.045s
$AA_QEC_MEAS_TIME_3[outNr,axNr]=0.030;
加速度3错误计算测量时间,2×0.015=0.030s
$AA_QEC_TIME_1[outNr,axNr]=0.015;
自学习QEC的学习时间常数
$AA_QEC_TIME_2[outNr,axNr]=0.015;
补偿值衰减调整时间常数
$AA_QEC_LEARNING_RATE[outNr,axNr]=50; QEC学习速度
$AA_QEC_DIRECTIONAL[outNr,axNr]=FALSE;
QEC学习补偿方向,FALSE为单向
GOTOF ONE_AXIS_FINISHED
向程序末尾正向跳至标识ONE_AXIS_FINISHED处
START_INIT_QEC_DATA: 标识符,开始初始化QEC数据
IF numAxes <= 0 OR numAxes > 3 GOTOF ERROR_AX_NUM;
学习轴数≤0或>3,正向跳转至ERROR_AX_NUM
MSG("QEC-parameters are loaded");
0<学习轴数≤3时,HMI屏显信息:QEC参数被装载
LOOP_INIT_QEC_DATA: 标识符,逐轴QEC学习补偿
axNr=axisName[axCount]; 轴数0→2计数后,将轴名赋给axNr
GOTOB INIT_QEC_DATA;
反向跳至标识INIT_QEC_DATA,继续初始化QEC数据
ONE_AXIS_FINISHED: 标识符,1轴的初始化QEC数据完成
axCount=axCount+1; QEC初始化轴数自动+1
IF axCount >= numAxes GOTOF INIT_QEC_DATA_FINISHED;
判断QEC初始化是否完成,>3时正向跳至结束符
GOTOB LOOP_INIT_QEC_DATA; 反向跳转,循环至完成所有轴的QEC数据初始化
INIT_QEC_DATA_FINISHED: 标识符,QEC数据初始化完成
ERROR_AX_NUM:标识符,QEC学习轴数错误
MSG("illegal number of axes 0 <= number of axes <= 3");
HMI屏显信息:0<轴数≤3非法
M17;宏程序结束