■山推工程机械股份有限公司(山东济宁 272100)崔克诚
在工厂的卧式加工中心中,为了增强机床的行程一般z轴方向会有一根附加轴。这个附加轴为主轴镗杆取名w轴。也有一些机床为滑枕和镗杆,不同机床厂家命名一般不同。有的以滑枕为w轴,有的以镗杆为w轴。
下面以西门子840D系统的卧式加工中心来进行分析。在平时的程序编制中,在w轴不在其零点位置的时候,我们要人为的在z轴的坐标上加上或减去一个w轴的长度。这样在程序修改时非常麻烦。在编制程序前要了解刀具长度和工件所在的位置以知道w轴要伸出多长。
还有一些场合适合用w轴进给,但是在工作的时候刀具的长度永远是补偿给z轴的。这时候就需要暂时的把w轴交换一下成为z轴。有一些技术人员喜欢修改PLC或者修改机床参数,直接把轴命名为z轴。但是这种方法一般比较麻烦。
下面就介绍一下作者自己写的w轴自动补偿程序,此程序也有交换w轴的功能。代码如下:
首先前面的变量和创作时间和作者不做介绍。STOPRE是为了在补偿程序运行前了解机床中正在有效的补偿数据。以方便补偿后如果补偿数值不正确进行对比。
为了能正确的读取各个轴的正确数据读取数据前一定要取消一下轴的交换。
同样为了使用方便,我们给程序的补偿方式设置一个默认的补偿方式,即如果用户不填补偿方式默认补偿w轴。
从上面的程序上能看出这个只有两种补偿方式,一个是补偿w轴给z轴,用z轴进给;一个是补偿z轴给w轴,用w轴进给。但实际往往要考虑好多因素使程序很复杂。作者这里只把原理的程序展示一下,讲解一下原理。需要注意的是这个程序直接复制到机床上就可以用,能满足90%的用户。
首先我们需要读取在ien坐标系中的z轴和w轴的坐标来确定需要补偿的量。如果我们选择的是补偿w轴,那么我们只需要在坐标系中把z轴向w轴的反方向偏移一个量w轴坐标量就可以。那么我们到底要在哪个坐标系中偏移呢?
最初作者想到的是直接用trans偏移。因为西门子中牵涉的坐标系较多,作者当时只了解西门子中的三层坐标系。而trans是最简单最容易理解的。但是他有一个致命的缺点,就是直接影响前后的程序功能。因为在前面使用的trans在此处会直接取消。而后面只能用附加的atrans或amirror或arot等。基于这些原因作者只好放弃寻找其他的坐标系。
后来作者从西门子的标准循环中以及西门子的系统变量表中找到一个西门子的循环坐标系。即$P_CYCFRAME这个坐标系,有着复位后消失的优点。即复位后或者程序结束后坐标系内的值全部重置为0。不会影响下一步或者其他程序的使用。但是后来作者发现这个坐标系是在trans后面的一个坐标系。如果在前面用他进行了补偿后,那么后面进行坐标系的镜像旋转都是基于g54~g55等坐标系的使镜像旋转后的实际坐标系错误。作者也只好放弃。
最后作者确定用基准坐标系的程序坐标系即$P_BFRAME。优点就是复位后会复原为面板设置的数据。再次偏移时不受上一次偏移的影响。而且因为其他g54~g55前几层的坐标系,所以后面的旋转镜像都是基于后面的总框架,补偿前后都不会对程序镜像或旋转后的总坐标系有影响。但是因为可以在面板中修改,所以使用的时候要把原来面板设置的数据级联到一起,以保证补偿后的坐标系正确。
如果用户使用的是补偿z轴给w轴进给。那么我们只需要把w轴的零点向当前z轴在ien中坐标的反方向偏移一下即可。然后我们把w轴交换为第三几何轴,即在g17中为z轴。那么原来的z轴就成为了z11,w轴就成为了z轴在程序中直接使用即可。
也为了防止使用者在补偿方式上写入错误的方式,后面设置了保护而不是直接结束程序。
这样在程序编制的时候暂时不需要考虑w轴需要伸出的长度。在程序使用的再设置长度直接用程序补偿,省去修改程序的麻烦。下面展示一个使用的程序小段。注意bc为本程序名称。
下面再展示一个使用交换轴的程序。一般使用w轴做进给轴都是w轴需要行程较长的场合。下面是加工两个同轴的孔,并且第一个孔底距离第二个孔端距离较大。