基于PMAC的数控系统工件坐标系的设定方法分析
2013-07-11刘恒丽王太勇卢志理
刘恒丽,王太勇,王 冬,卢志理
(1. 天津大学 机构理论与装备设计教育部重点实验室,天津 300072;2. 天津商业大学,天津 300134)
0 引言
数控机床自身的坐标为机床坐标,而在实际加工中,为了编程方便,一般是基于工件本身编写NC代码,即工件坐标,这样就会导致在加工时,机床坐标原点与工件坐标原点出现偏差,不能实现正常加工的现象,因此加工时,首先要建立工件坐标系,程序中的坐标值均以此坐标系为依据[1],使得刀具能够根据工件坐标系的设定值到达指定位置,进行正常加工,从而保证工件加工质量。
目前,关于建立工件坐标系的研究颇多,原理和方法也类似,但是基于PMAC运动控制卡的工件坐标系建立方法的研究较少,本文针对此问题展开研究,基于自主研发的TDNC-H8数控系统,结合PMAC运动控制卡的功能,开发以G54为代表的工件坐标系设定功能模块,实现自动对刀,对于提高加工效率和加工质量具有重要的意义。
1 基于PMAC的数控加工程序实现方法
近年来,随着计算机技术的飞速发展,开放式数控系统应运而生。“PC + 运动控制卡”模式的开放式数控系统,是目前比较流行的一种数控系统开发方式。这种开放系统中,NC 代码需要通过PC 并行总线传送给运动控制卡,然后由运动控制卡向驱动器发出运动指令,从而完成数控加工过程[2]。数控加工用NC代码一般是通过专用软件生成或由人工编写,都是以工件本身为加工原点进行编写。实际加工时,调用系统中储存的加工程序或者根据需要也可以进行人工即时编写,以满足加工需求。
在“PC + 运动控制器”型开放式数控系统中,NC 代码需要被翻译成可供PMAC 卡直接执行的目标程序格式[3]。即完成数控代码功能的识别,并将提取的关键字转换为运动控制器中对应的运动函数中的参数,也就是将所有的命令转化为PMAC能识别的语言,也称译码,见表1,再去控制相应运动部件执行动作。
表1 NC代码与PMAC语言之间的转换
2 工件坐标系建立的原理与方法
2.1 工件坐标系与机床坐标系的区别与联系
机床坐标系、工件坐标系是数控加工中的重要概念。机床坐标系为机床上固有的坐标系, 并有其固有的坐标原点, 即机床原点(又称为机械原点)。它是由机床生产厂家根据机床各轴的行程设定的。工件坐标系是编程时使用的坐标系,又称为编程坐标,编程时首先根据被加工零件的几何形状和尺寸, 在零件图上设定工件坐标系,使零件图上的所有几何元素在坐标系中都有确定的位置,为编程提供轨迹坐标和运动方向。不同工件的工件坐标系原点可能不同,它与机床坐标系间存在一定的偏差,如图1所示,Xa和Yb分别为横坐标和纵坐标偏差值。
实际加工中,为了避免更换工件时重新对刀,可以记录第一次对刀的数值即工件坐标系下的刀具原点与机床坐标系下的刀具原点的差值并建立工件坐标系,更换工件后,勿需人工对刀,节省时间,提高加工效率和加工质量。因此工件坐标系与机床坐标系之间存在着一定的关联,数值关系随着加工工件的不同会发生变化,但从逻辑上来说是保持不变的,同时也是工件坐标系建立的方法依据。
2.2 基于PMAC的G54工件坐标系的建立方法
数控加工时, 数控系统是在机床坐标系下控制刀具运动的, 而加工程序及程序中刀具的运动轨迹完全是在工件坐标系中规划的, 一般情况下都是要求将加工程序输入给数控系统后, 数控系统能由刀位点在工件坐标系中的坐标换算出它在机床坐标系中的坐标[4]。但对于PMAC运动控制卡而言,其对应的PSET指令功能是重新定义当前轴的位置,因此就需要数控系统能把刀位点在机床坐标系中的坐标换算为在工件坐标系中的坐标。
如图2所示,假设当前刀位点坐标为(200,200,300),定义当前点为工件加工原点,即工件坐标系原点,其实现过程为:用M1、M2和M3分别代表PMAC运动控制卡固有的存储当前刀位点坐标值变量,通过程序读取变量值,此时M1=200,M2=200,M3=300,即机床坐标系与工件坐标系的差值;将其存储到设定的变量M11、M22和M33中待用。根据PSET指令的功能,设定工件坐标系原点的方法即是将当前轴的坐标设定为0,因此G54指令功能的译码部分即是两个变量之差,也即将当前刀位点在机床坐标系下的坐标转化为工件坐标系下的坐标。
若更换相同工件时,如果刀位点坐标值发生了改变,如位置Ⅱ,此时M1=300,M2=300,M3=400,通过调用G54及译码功能,计算出当前刀位点在工件坐标系中的坐标为(100,100,100),然后加工程序的首行编写G00 X0 Y0 Z0,系统使得刀具回到工件坐标系的原点待加工,勿需重新对刀,提高加工效率。实质上是直接用偏移值确定了工件坐标系原点与机床参考点的距离。工件坐标系一经建立,它们在机床坐标系中的位置就固定下来了[5]。
图1 机床坐标系与工件坐标系的区别与联系
图2 工件坐标系的建立方法示意图
3 基于Visual C++的G54功能模块开发
3.1 G54功能模块构建
结合Visual C++可视化功能,构建单独的G54功能模块,便于人机交互和功能拓展,如图3所示;且嵌入到开放式数控系统中运行。该模块包括五个坐标值的编辑和录入,还有底部的人机交互功能、右侧及底部功能键。通过右侧按键,五个坐标值编辑栏可以实现自动捕捉当前刀具位置坐标并进行显示,将其设定为工件坐标系;此外运用底部的编辑界面,可以人工设定当前工件坐标系的各个坐标值,也可以对自动获得的坐标进行一定程度的修正;运用底部按键可以实现与其他功能模式之间的切换;并且也能实现窗口间的切换,方便使用和查看。
3.2 G54功能的实现过程
首先,启动机床后,经人工手动对刀至工件坐标系原点。然后从系统中选择到G54功能模块,按下“F17测量”按键,此时刀具在机床坐标系下的坐标值便自动被捕获并相应地显示出来,同时也作为工件坐标系原点坐标被保存。在加工过程中,也可以实时地切换到G54功能模块进行浏览和查看。当加工结束,更换相同工件时,勿需再对刀,数控程序NC代码中只要正常编写G54指令,直接运行程序,刀具即能从最初设定的工件坐标系原点开始加工,节省对刀时间,提高加工效率。此外,在加工过程中,如果出现换刀,在G54功能模块中重新捕捉当前刀具坐标值或者人工输入坐标值来设定工件坐标系原点,实现重新对刀。
图3 G54功能模块
4 结束语
本文通过研究工件坐标系与机床坐标系间的关系,结合PMAC运动控制卡的功能,分析建立工件坐标系的方法,并基于Visual C++开发G54功能模块,具有良好的通用性和较高的开放性;并且嵌入到数控系统中,在六轴联动数控加工中心中实现自动对刀功能,提高加工效率和质量。本功能模块已在相关项目中得到应用,实践证明该模块具有很强的可操作性和较高的实用价值。
[1] 李英平,侯万明,宋玉梅,郑万江.基于FUNUC 0iT数控系统工件坐标系的建立与刀具补偿[J].工艺与装备.2008.2:80-82.
[2] 郑华林,马建禄,潘盛湖,郭高垒.基于PC 运动控制卡的数控系统NC代码编译技术研究[J].机床与液压.2011.10:94-96.
[3] 贾旭,卢晓红,王鑫鑫,贾振元.基于PMAC 的微铣床数控系统中G 代码编译研究[J].组合机床与自动化加工技术.2012.3:104-107.
[4] 牛禄峰,高秀兰,王宝.数控机床编程技术及对刀操作中的几个问题[J]. 机床与液压.2006.1:49-51.
[5] 陈志群.采用G50 建立工件坐标系的原理及应用分析[J].机床与液压. 2011.8:124-126.