2013年11月 机床与液压 NOV.2013 第41卷第21期 MACHINE TO0L&HYDRAULICS Vo1.41 No.21 DOI:10.3969/j.issn.1001—3881.2013.21.022 西门子840D数控系统热误差补偿功能实现 任建功,冯斌,郭亮 (西安交通大学机械工程学院,陕西西安710049) 摘要:为了消除热变形对机床加工性能的影响,提出一种热误差补偿的实现方法。介绍了热变形的数学模型,得到了 热误差补偿算法;介绍了西门子840D数控系统HMI界面二次开发方法及流程,并给出了HMI程序生成参数加入到CNC指 令的实现方式;最后实现了热误差补偿功能的嵌入,具有一定的实际工程价值。 关键词:热误差补偿;西门子840D;HMI界面二次开发 中图分类号:TP391.9 文献标识码:A 文章编号:1001—3881(2013)21—077—5 Implementation of Thermal Error Compensation Based on Siemens 840D CNC System REN Jiangong,FENG Bin,GUO Liang (School of Mechanical Engineering,Xi’an Jiaotong University,Xi’an Shaanxi 7 10049,China) Abstract:In order to eliminate the error of thermal deformation in the machine tools,a realization method of thermal error com— pensation was put forward.The mathematical model of the thermal deformation was introduced,and a thermal error compensation meth— od was developed.Then the process of HMI secondary development of Siemens 840D CNC was discussed,and a way of transferring the parameters from the HMI to CNC commands was presented.The error compensation algorithm was successfully embedded in 840D CNC,which had some significant practical value. Keywords:Thermal error compensation;Siemens 840D system;HMI secondary development 在精密数控机床所有误差中,热误差占的比例很 式中:C。、c。、c:、…、c 为模型中的常数项系数; 大 ,在相当程度上影响了工件的加工精度,是提高 、 、…、 为测点的温度值。 机床加工性能需要解决的主要问题之一。目前,数控 进给轴的丝杠发生热伸长、工作台发生热变形 机床提高精度的方式有误差防止法和误差补偿法 。 时,其轴向位置会产生误差,且不同位置处的热变形 作者采用热误差补偿法这一“软技术”,力求在不改 量不同。机床床身发生热变形时,会导致轴之间发生 变机床自身机械结构的条件下显著减小加工热误差, 类似于垂直度误差的倾斜,其轴线方向上也会产生与 提高机床加工精度。文中主要介绍了一种热误差补偿 位置相关的误差量。该项与位置相关的热变形可以用 算法,并结合西门子840D HMI(Human Machine In— 下式表示 : terface)二次开发技术将补偿算法嵌入到广泛应用的 西门子840D数控系统。 E =∑[ta ( )・( —P。)] (2) 1 热误差模型的建立 式中:i为选定补偿轴的轴号; 数控机床的热变形主要是由电机、轴承、传动 为参考轴的轴号; 件、液压系统、环境温度、冷却液等机床内外热源引 t 为温度补偿系数,表征机床线性热膨胀 起的机床部件变形而造成的 z ,包括主轴、进给轴以 系数的大小; 及机床床身支架的热变形。主轴受热情况下发生热伸 P 为参考轴的位置值; 长,或者受切削影响发生偏摆,其轴线方向的热变形、 Pn为参考轴的相对位置,表示机床热变形为 分量与位置无关,是与温度相关的变量,该项热变形 零的点,作为求解其他位置热变形量的参考点。 量可以用多元线性回归模型表示 : 归纳以上两种热变形形式,单轴轴向热变形量分 En= (T)=C0+cl T1+C2 +c3 +…+c 为与位置无关的热变形量和与位置相关的热变形量, (1) 热变形量的表达式可以表示为: 收稿日期:2012—11—07 基金项目:国家科技重大专项资助项目(2012ZX04001-012—04) 作者简介:任建功(1987一),男,主要研究方向为高速高精度运动控制技术、数控机床误差补偿技术。E—mail:renjg126 @163.com。 ・78・ 机床与液压 第4l卷 Er=层n+E = (r,)+∑[ta (T)’( 一 =I P。)] (3) 热误差补偿实施方案框如图1所示。首先根据式 (3)建立热变形预测模型,利用温度测量设备检测 机床热变形量并获取相应的数据;然后,温度测量设 备将热变形量实时地传送给数控系统中的预测模型, 由于RS232串行通信可以方便、快捷地实现外部设 备与数控系统之问的数据通讯,传输速度波特率可以 设为57 600,足够满足温度这种缓变量的实时传输要 求,且成本较低 ,因此可以采用串口通信的方式传 递数据;接下来,预测模型将接收到的数据依据热变 形公式计算出相应的热变形量,并换算成相应的补偿 量传递给NC,NC对插补指令进行修正,从而实现热 误差补偿功能。 插 图1 热误差补偿实施方案 2 HMI操作界面的设计及嵌入 西门子840D数控系统提供了热误差补偿功能, 但其开放性的限制导致常用的串口通信不能将热误差 补偿的相关参数直接传递给NC指令。直接传送这种 方式遇到障碍,但西门子840D系统包含了大量的标 准化部件和接口,通过操作面板的HMI接口能操作 NCU和PLC中的变量,由此可以通过HMI操作界面 来解决参数传递问题。并且西门子提供了OEM软件 HMI Programming Package可以对HMI进行二次开发, 用户可以利用这个软件开发新的满足特定需求的 HMI界面。这样既可以实现指令参数传递和温度值 的实时显示,又能将开发的算法嵌入到数控系统中, 与系统原界面兼容,便于对算法进行管理和监控。此 外,二次开发的HMI界面程序可以接收以串行通信 方式传输的温度采集设备采集的实时数据,按照热误 差补偿模型由采集数据计算出相应的补偿量,并写入 到指定的PLC内存中,进而将数据传人到NC中修正 NC指令,完成误差补偿功能 。由以上说明可知, HMI界面二次开发成为840D系统热误差补偿功能实 现的关键步骤,接下来作者将详述HMI界面二次开 发过程。 根据热误差补偿功能的需要,热误差补偿HMI 需要实现的功能有:对PCU的串口端口参数进行设 置;设置模型参数 、tanfl、P。随温度变化的数学 模型;显示温度数据、模型补偿参数及串口端的相关 信息;接收温度模块发送的温度数据的操作;将补偿 数据写入到PLC内存的操作。基于以上分析,可以 开发多窗体用户应用程序,将众多需要实现的功能集 成于一个独立的模块中,通过数控面板上的水平软键 和竖直软键执行相关操作,就可以完成需要的功能。 此例中热误差补偿HMI的功能界面分为四部分: (I)参数显示界面; (2)温度显示界面; (3)通信设置界面; (4)模型设置界面。 西门子840D系统标准界面如图2所示,在界面 设计过程中,应使设计界面与西门子840D系统标准 界面的风格及操作习惯保持一致,即用水平软键切换 不同的功能界面,用竖直软键对程序进行相关操 作 。水平软键和竖直软键按照状态矩阵进行分配, 水平软键有8个对应地址,为0~7;竖直软键也有8 个对应的地址,为8~15 。 图2 840D系统HMI界面结构 西门子HMI二次开发软件HMI Programming Package用VB语言编写,并提供了专用的环境编写 HMI界面。设计界面并将其嵌入西门子840D系统中 分以下几个步骤: (1)套用HMI Programming Package软件安装路 径下的实例格式编写界面程序。该路径下提供了实现 不同功能的实例模板程序,这里套用实例Oembsp0。 由于功能界面主要分为4部分,实例程序中只有1 个,因此还需要添加OEM1、OEM2、OEM3窗体,每 个窗体中按功能需求分别编写界面。 (2)生成 .exe程序。界面程序编写完成后, 将生成Oembsp0.exe可执行文件。生成可执行文件之 前必须启动软件的NCDDE Server。 (3)人机界面的定义。西门子840D系统的HMI 采用顺序控制,需要在顺序结构框架中注册新增加的 界面程序,并且位置不应与已有的程序冲突,而且还 要定义程序内部的子窗体所对应的水平软键以及竖直 第21期 任建功等:西门子840D数控系统热误差补偿功能实现 ・79・ 软件。定义程序内部HMI界面时,需要调用的文件 有初始化文件oembsp0.ini、子窗体列表oemb. sp0.mdi、控制文件oembsp0.ZDS ,引。 初始化文件oembsp0.ini的内容是: [CONTROL] MDIList=OEMBSP1\0EMBSP0.MDI ControlFile=OEMBSP1\OEMBSP0.ZUS 依据初始化文件oembsp0.ini,系统启动时自动加载 子窗体列表文件和控制文件。 子窗体列表oembsp0.mdi内容是: ”0EM0” 1 ”0EM1” 1 ”0EM2” 1 ”0EM3” 1 文件的第1列为子窗体的名称,由文件内容可知此例 有4个窗体。第2列为子窗体的类型值,当类型值为 0时,切换窗体过程中子窗体不被关闭而存储于缓存 中;当类型值为1时,切换窗体时该子窗体被关闭。 控制文件oembsp0.ZUS其文件主要内容是: [0]0 0 ”OEM1” ”””0”0 0 一】 一】 ”” ”O” 0 8 —1 一l ’pagedown”0 9 —1 一l ’pageup”0 16—1—1 ”16” 0 状态矩阵中方括号内的序号表示该窗体是第几个状 态,也表明此处是一个新状态设置的开始。此例有4 个窗体,应该对应4个状态,实例中括号内为0表示 以下是0号状态子窗体的设置,当按下程序界面中的 第一个水平软键时切换到该窗体,其他状态依此类 推。第2列和第3列分别表示当前窗体所对应的水平 软键和竖直软键的首地址 。最后两列的“0”表示 返回值和状态,一般情况下不用修改。窗体设置内容 中,0~7表示水平软键设置,8~15表示竖直软键设 置,16为返回键设置。此例中需要修改的是竖直软 键对应的第5列标志位,即为相应的软键操作创建文 本标志。例如OEM1的第1个和第2个竖直软键按下 分别表示“轴+”和“轴一”的功能,则为第8和9 行对应的软键创建标志“pagedown”和“pageup”, 界面程序内部的回调函数就是通过标志来实现其功能 的 。 (4)语言动态链接库的创建。二次开发过程中, 840D新开发功能界面中的水平软件和竖直软键的文 本内容通过语言动态链接库dll文件来显示。语言动 态链接库dll文件在VC环境下生成,其过程如下: 进入VC环境,创建“MFC AppWizard(dl1)”工程, 然后加载RC源文件,编译生成动态链接库文件00一 u k.dll,编程界面如图3所示。 图3 VC创建动态链接库 工程中,RC源文件包含了用户程序界面水平软 键和竖直软键所显示的文本内容,每个文本内容与其 地址相对应。如热误差补偿界面所对的源文件port.re 的部分内容如下: STRINGTABLE DISCARDABLE BEGIN 0 ”10” ;水平软键文本起始地址 1 ”100” ;竖直软键文本起始地址 2 ”200” ;对话框文本起始地址 END STRINGTABLE DISCARDABLE BEGIN 10 ”Parameters DisPlay” ;具体内容设置 END 源文件中每个软键显示的文本内容都与其地址相 对应,分别设置水平软键和竖直软键文本的起始地址 分别为10、100,则所设计的文本内容地址以1O和 100为首地址顺序叠加。对于不同的窗体,其软键文 本地址依次叠加8,如OEM1竖直软键的起始地址为 100,则OEM2温度显示界面的竖直软键首地址为 108,分号后的内容为注释内容 。 (5)用户程序的嵌入。首先修改…\HMI-Ad- vanced\OEM路径下的新建regie.ini初始化文件,设 置系统启动时需要载入的界面程序。如将界面程序 Oembsp0.exe载人数控系统,其程序对应于主界面中 空白地址7所对应的水平软键(第8个水平软键), 则程序内容如下: [TaskConfiguration] Task7=name:=Oembsp0,Timeout=50000; 系统启动时载入的界面程序中,系统主界面中增