技术论坛

 西门子840D系统温度补偿功能在数控机床上的开发应用(转载>杂志总第129期)

返回主题列表
作者 主题
lranbing
版主

经验值:24166
发帖数:8827
精华帖:48
楼主    2005-09-11 21:59:18
主题:西门子840D系统温度补偿功能在数控机床上的开发应用(转载<<机床电器>>杂志总第129期) 精华帖 
西门子840D系统温度补偿功能在数控机床上的开发应用
刘志兵
一、影响:
金属材料具有“热胀冷缩“的性质,该特性在物理学上通常用热膨胀系数(Thermal expansion coefficient,atherm)描述。数控机床的床身、立柱、]拖板等导轨基础件和滚珠丝杠等传动部件都是由金属材料制成,由于机床驱动电机的发热、运动部件摩擦发热以及环境温度等的变化,均会对机床运动轴位置产生附加误差,这将直接影响机床的定位精度,从而影响工件的加工精度。对于在普通车间环境条件下使用的数控机床尤其是行程比较长的落地式镗床,热膨胀系数的影响更不容忽视。以行程5M的X轴来说,金属材料的热膨胀系数为10ppm(10μm/每1m每1度),理论上温度每上升1度,5m的行程的X轴就”胀长“50μm。日温差和冬夏季节温差的影响便可想而知。因此高精度机床要求在规定的恒温条件下制造或使用,普通条件下使用的数控机床为保证较高定位精度和加工精度,须使用”温度补偿“等选件功能消除福建误差。
二、补偿原理:
机床坐标轴的定位误差随温度变化会附加一定偏差,对每一给定温度可测出相应的定位误差曲线。
数字表达式为:
△Kx(T)=Ko(T)+tanβ(T)*(Px-Po)
其中:△Kx(T)为轴Px位置的定位误差温度偏差补偿值;
Ko(T)是与轴位置不相关的温度偏差(补偿)值;
Px为轴的实际位置
Po为轴的参考点位置;
tanβ(T)为与轴位置相关的温度补偿系数(定位误差曲线的梯度)。
840D系统温度补偿功能的工作过程:将测量得到的温度偏差(补偿)值送至NC插补单元参与插补运算修正轴的运动。若温度补偿值△Kx(T)为正值就控制轴负向移动,否则就正向移动。由于温度影响的滞后性,PLC程序采取定时间隔采样温度(T)的方法,周期性的修改NC中相关补偿参数,并利用上面公式计算温度偏差△Kx(T),从而补偿掉温度变化产生的位置偏差。
三、硬件设计:
采用PT100型热敏电阻,安装在机床靠近丝杠杆处,采样温度更接近印发热膨胀的“机温”。A86为S7-300型PLC两通道12位A/D转换器,起作用是将电阻温度传感器采样的模拟量温度信号转换成数字量,送到840D的NC-PLC接口,以便PLC程序做运算处理。
四、PT100型电阻温度传感器
PT100是铂电阻温度传感器,使用于测量-60度-----+400度之间的温度,完全适用于机床的使用环境温度5---45度。PT100在0度时电阻为100Ω,随着温度的变化电阻成线性变化,大约是每摄氏度0.4Ω。为了把PT100随温度变化的电阻转换成电压,即输出12.5mA恒电流源共给PT100传感器,在传感器回路中产生5Mv/摄氏度线性输入电压。A/D传感器把这个电压转换成数字量,程序周期地读入这些数字量,并将所读的数字量,利用下面的公式计算出温度值。
温度T[摄氏度]=(温度数字量-0摄氏度偏置量)/1摄氏度数字量。
其中:温度数字量=存储在NC---PLC接口IWxxx中的测量值;
0摄氏度偏置量=在0摄氏度测出的数字量(此次取4000);
1摄氏度数字量=温度每升高1摄氏度的数字量(此次取16)。
PLC定时采样温度值,利用上式计算出温度数字量并转换为带一位小数点的十进制温度值,然后计算出温度补偿参数Ko(T),tanβ(T),周期性送到NCK刷新温度补偿参数MD=TEMP_COMP_SLOP。
五、软件设计:
西门子温度补偿有三种类型供选择:
1、 位置不相关型:△Kx(T)=Ko(T)
2、 位置相关性:△Kx(T)= tanβ(T)*(Px-Po)
3、 位置不相关和位置相关型:
△Kx(T)=Ko(T)+tanβ(T)*(Px-Po)
软件设计选择第二种类型,即杂一般温度补偿公式△Kx(T)=Ko(T)+tanβ(T)*(Px-Po)中取Ko(T)=0(忽略参考点出温度影响)。

PLC程序设计如下:
OB23 //定时调用组织块:用PT100RTD测量温度并计算tanβ值,传送到NC刷新机床参数NETWORK 1
NETWORK 1
L 0
T MD196 //清除MW196和MW198
L B#16#10
T MW250 //在MW250中装入1摄氏度数字量=16
L B#16#4000
T MW252 //0摄氏度偏置量=4000

NETWORK 2
L IW500 //轴采样温度值
T MW200 //把采样温度数字量装入MW200
L IW200
L IW252
-I //减去0摄氏度偏置量
T MW198
L MW250
/I //除以1摄氏度数字量
T MW196
L B#16#10
*I //余数乘以10
L MW250
/I //10*余数/16=一位小数点的数
L MW196
T MW196 //保存一位小数前的数,即温度小数点*10
L 0
T MW198 //删除MW198的值
L B#16#10
*I //温度整数值乘以10
L MW160
L MW200
+I //温度整数值*10+温度小数值*10
L MW200
T DB103.DBD220 //传送结果到DB103.DBD220

NETWORK 3
A M78.4 //满足启动条件
AN M78.1
AN M78.2
AN M78.3
S M78.1 //设置传送启动
CALLFC3,DB105
IN0 :=78.1 //传送启动
IN1 :=1 //传诵数量
IN2 :DB103.TEMP_COMP_SLOP //传送到NC参数

OUT34:=M78.2 //传送完成
OUT35:=M78.3 //无故障
OUT36:=DB103.DBW119 //传送状态
IO37 :=DB103.DBD220 //采样温度值
A M78.4
AN M78.1
AN M78.2
AN M78.3
R M48.4 //复位启动条件
A M78.1
A(
O M78.2
O M78.3
)
R M78.1 //复位启动信号

NETWORK 6 //程序结束
END
不停的学习,不停的进步!
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。