为机床工具企业提供深度市场分析                     

用户名:   密码:         免费注册  |   点击 进入企业管理  |   申请VIP  |   退出登录  |  

English  |   German  |   Japanese  |   添加收藏  |  

车床 铣床 钻床 数控系统 加工中心 锻压机床 刨插拉床 螺纹加工机床 齿轮加工
磨床 镗床 刀具 功能部件 配件附件 检验测量 机床电器 特种加工 机器人

TPI
搜索
热门关键字:

数控机床

 | 数控车床 | 数控系统 | 滚齿机 | 数控铣床 | 铣刀 | 主轴 | 立式加工中心 | 机器人
      用户频道:    应用案例 |  汽车 |  模具 |  船舶 |  电工电力 |  工程机械 |  航空航天 |  仪器仪表 |  通用机械 |  轨道交通 |  发动机加工 |  齿轮加工 |  汽轮机加工
您现在的位置:数控机床市场网> 专题>机床测量专题
浅谈WFL车铣复合机床测量循环的后置处理
2013-9-16  来源:  作者:中航工业成都飞机工业有限责任公司刘陨双

      WFL 车铣复合机床除了有强大的多轴加工功能,还能自动找正零件和在线测量零件。有了这些功能,车铣复合机床不仅能够大大提高零件的加工精度,而且能够大大提高零件的加工效率。

 

      WFL 车铣复合机床的功能比较强大、效率比较高,不仅有车、多轴铣和镗孔,还有多种测量循环,因此编程就比较复杂。实际生产中,虽然手工编程也能实现这些功能,但是手工编程也有一定局限性,因此实现车铣复合机床的电脑自动编程,是一件很有意义的事情。

 

      以下就以WFL 机床的一个简单的测量循环“PROBE”为例,叙述如何使用NX软件编程,以及后置处理输出WFL车铣复合机床测量循环的方法。

 

一、机床测量循环的代码定义

 

      要写出能输出“PROBE”的正确的后置处理程序,首先必须要理解WFL 车铣复合机床测量循环“PROBE”的含义———该测量循环的含义是在随机轴上测量轨迹点。该测量循环的格式为:PROBE(AXDISMPNUM),各参数的含义如下。

 

      ◎AX:测量轴。测头由AX 定义的运动轴以很快的进给率(一般是以G0的速度) 接近工件,然后进行测量,在WFL车铣复合机床上有三个测量轴,X1Y1Z1,即机床的XY Z轴。

 

      ◎DIS:测头移动的距离。测量轨迹点(即零件上要测量的点)到起始点(开始执行G1的点) 之间的距离必须在DIS定义的距离之内,即二者距离必须小于该值。如果测量轨迹点与起始点之间的距离大于该值时,测头是测量不到测量轨迹点的。DIS 值可以为正也可以为负,分别表示测量轨迹的运动方向是沿着测量轴的正方向还是负方向。

 

      ◎NUM:在第一次测量轨迹点之后,测头会沿测量轴稍回撤,然后以正常的测量进给率重复测轨迹点,重复的次数由NUM指定,一般是测量3次。

 

      ◎MP:是指定测量结果的存储位置。测量结果输出到机床的内存单元MC_P0〕中,同时被存储到以MP为下标的机床内存中,变成测量点MC_POINTMP〕。

 

      我们只要在后置处理的程序中正确定义了这4 个参数,并实现其输出,就可以输出该测量循环的正确机床代码。以下的一段机床代码就是PROBE 应用的一个实际的例子,测量的零件和测量点如图1所示。

 

 

N035 G54

N040 G0 X148 Y1=0 C1=0 Z1=10

N045 PROBE “Z1”-1513

N050 G0 X1=93

N055 G0 Z1=-50

N060 PROBE “Z1”-1523

 

      在这段机床代码中,PROBE“Z1”-1513) 的测量点为MP1MP1的位置由该代码的上一句程序指定。该例中测量点MP1的位置为(4800),测头沿机床Z1轴的负方向进行测量,定义的测头移动距离为15,测头的测量起始点Z110 的位置,测量轨迹点自Z1=0 的位置,测量轨迹点到测量起始点之间的距离为10,小于测头移动距离15,测量结果存储在机床内存MC_P0〕和存储单元MC_POINT1〕中,重复测量3次。

 

      PROBE“Z1”-1523) 的测量点是MP2MP2 的位置由该代码的前两句程序指定,该例中测量点MP2 的位置为(9300),测头沿机床Z1轴的负方向进行测量,定义的测头移动距离为15,测头的测量起始点为Z1-50 的位置,测量轨迹点自Z1=-60 的位置,测量轨迹点到测量起始点之间的距离为10,小于测头移动距离15。测量结果存储在机床内存MC_P0〕和存储单元MC_POINT2〕中。

 

     此处需要注意的是:此处为堆栈存储的方式,在完成第二次测量后,MC_P0〕内存储的值自动移动到MC_P1〕,最大能到MC_P3〕,该点重复测量3次。

 

二、如何用后置处理器实现机床代码的正确输出

 

      在NX 6.0 中编写该测量循环的前置比较简单,这种测量循环在NX 6.0中用操作“probe_point”就很容易写出正确的前置,后置处理的任务就是把前置程序翻译成WFL 车铣复合机床能识别的机床代码PROBE(AXDISMPNUM)。请注意:后面所提到程序的执行程序皆为后置处理时的执行顺序。以下所述就是定义并如何输出正确的机床代码的方法和步骤。

 

     1.输出测量轴AX

 

      实现这一输出的后置处理程序如下(后置处理的程序皆为TCL语言编写)。

 

global mom_probe_direction

global axis

global dis

global MP

if{$ mom_probe_direction = =XAXIS}

set axis X1}

if{$ mom_probe_direction = =YAXIS}

set axis Y1}

if{$ mom_probe_direction = =ZAXIS}

set axis Z1}

MOM_output_literalPROBE($axis,$dis,$MP,3)

 

      这段后置处理程序用来定义输出的主程序。mom_probe_direction NX 的系统变量, 和MP 均为用户自定义变量。mom_probe_direction在系统里有三个取值,分别为“XAXIS”“YAXIS”“ZAXIS”。当NX 操作里的测量方向为X 轴时,其取值为“XAXIS”;当NX操作里的测量方向为Y 轴时,其取值为“YAXIS”;当NX操作里的测量方向为Z轴时,其取值为“ZAXIS”。这样,就可以利用这个系统变量作为条件,用if 判断语句来进行判断,对应输出程序中的变量“ ”,也就是PROBE(AXDISMPNUM)中的 “AX”的值。程序的解释为:当mom_probe_direction “XAXIS”时,则将“X1”赋值给“axis”;当mom_probe_direction“YAXIS”时,则将“Y1”赋值给“ ”;当mom_probe_direction “ZAXIS”时,则将“Z1”赋值给“ ”,最后输出。

 

      程序当中的部分参数含义为:globe 表示全局变量;if表示判断条件;$为取值符;set 表示赋值给其后面的参数(具体的介绍请参考TCL 语言的教材)。

 

      2.输出DIS

 

      “DIS”的输出要分为以下三个步骤:

 

     (1)计算测量起始点的值。在进行每次测量循环操作前,运行下列程序,可以计算出起始点的XY Z坐标值(其值用参数为X1_boforeY1_bofore Z1_bofore 定义,皆为用户自定义变量)。在下面的TCL 程序中,mom_mcs_goto NX 的系统变量,其存储方式是一个数组,其中mom_mcs_goto

     (0) 自动存储当前加工坐标系X 的值,mom_mcs_goto

 

     (1) 自动存储当前加工坐标系Y 的值,mom_mcs_goto

 

      (2)自动存储当前加工坐标系Z的值,这些变量与CLSF 文件中的坐标值采用的坐标值一致。

 

global mom_mcs_goto

global X1_bofore

global Y1_bofore

global Z1_bofore

set X1_bofore$ mom_mcs_goto0

set Y1_bofore$ mom_mcs_goto1

set Z1_bofore$ mom_mcs_goto 2

 

     (2)计算测量轨迹点。在进行每次测量循环操作后,执行下列程序,可以计算出测量轨迹点的XY Z坐标值,其值分别用参数X1_whenY1_ whenZ1_ when 定义(三者皆为用户自定义变量)。

 

global mom_mcs_goto

global X1_ when

global Y1_ when

global Z1_ when

set X1_ when $ mom_mcs_goto 0

set Y1_ when $ mom_mcs_goto 1

set Z1_ when $ mom_mcs_goto2

  

    (3)计算DIS。在进行测量循环操作最后,下列程序可以计算出“DIS”“DIS”在后置处理的程序中是用用户自定义的变量“dis”来表示。如果测量起始点减去测量轨迹点的值大于零,则说明测量轨迹是沿着测量轴负向运动,此时,用测量轨迹点的坐标值减去测量起始点的坐标值,再减去一个常量得到DIS,则可以保证测头的移动距离大于测量轨迹点到起始点之间的距离。如果测量起始点减去测量轨迹点的值小于零,则说明测量轨迹是沿着测量轴的正向运动,此时,用测量轨迹点的坐标值减去测量起始点的坐标值,再加上一个常量,即可得到DIS,则可以保证测头的移动距离大于测量轨迹点到起始点之间的距离。NX后置处理程序如下。

 

if$ X1_bofore-$ X1_ when>0 {

set dis [expr($ X1_ when-$ X1_bofore-10)]}

if$ X1_bofore-$ X1_ when<0 {

set dis [expr($ X1_ when-$ X1_bofore+10)]}

if$ Y1_bofore-$ Y1_ when>0 {

set dis [expr($ Y1_ when-$ Y1_bofore-10)]}

if$ Y1_bofore-$ Y1_ when<0 {

set dis [expr($ Y1_ when-$ Y1_bofore+10)]}

if$ Z1_bofore-$ Z1_ when>0 {

set dis [expr($ Z1_ when-$ Z1_bofore-10)]}

if$ Z1_bofore-$ Z1_ when<0 {

set dis [expr($ Z1_ when-$ Z1_bofore+10)]}

 

    3.输出MP

 

      在一个测量程序中,可能会测量很多个点,这就需要很多次PROBE 测量循环,每一个测量循环的结果都要占一个存储内存,所以每一个“MP”都应该有不同的值,因此可以用下面的程序分两个步骤来输出“MP”

 

     (1)初始化MP0。在第一次测量程序开始执行之前执行下列后置处理程序:

 

global MP

Set MP 0

该程序将MP初始化为0

 

     (2)每进行一次测量循环操作,执行一次下列程序,则可以实现参数“MP”的增加,因此可以保证每一个“MP”的值都不同,并且从“1”开始。每进行一次测量操作,就递增一次。

 

global mom_probe_cycle_type

global MP

if { $ mom_probe_cycle_type!=0 } {

set MP[expr($MP+1)]

 

     其中,mom_probe_cycle_type 为系统变量,在执行数控程序的过程中,当有测量循环操作时,其赋值不等于0,当没有进行测量操作时,其赋值就是0。从NX 的第一个操作开始就进行扫描,每当mom_probe_cycle_type 不为零时,MP就自加一次。因此我们就可以利用这个变量作为条件,来完成“MP”的赋值和输出。

 

     4.输出NUM

 

     因为一般情况下,重复测轨迹的次数为3 次,所以在输出的主程序中,已经直接定义了“NUM”“3”,因此可以直接输出,不再需要对该参数进行定义。

 

三、结束语

 

     经验证,用该方法写出的后置处理程序,可以输出正确无误的机床代码PROBE(AXDISMPNUM),如果按照此方法将后置处理程序加以完善,就可以输出完整、正确的WFL车铣复合机床其他测量循环的机床代码,实现该机床的测量循环的电脑编程,就可以充分发挥该机床的优点,大大提高加工效率和可靠性。

    投稿箱:
        如果您有机床行业、企业相关新闻稿件发表,或进行资讯合作,欢迎联系本网编辑部, 邮箱:skjcsc@vip.sina.com
名企推荐
山特维克可乐满
哈斯自动数控机械(上海)有限公司
西门子(中国)有限公司
哈挺机床(上海)有限公司
北京阿奇夏米尔技术服务有限责任公司
陕西秦川机械发展股份有限公司