最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能生产

西门子SINUMERIK840D数控系统的多轴加工重复循环及其在VERICUT中的实现

发布时间:2006-02-24 作者:重庆江津增压器厂 涂勤  来源:《CAD/CAM与制造业信息化》
本文旨在通过宏指令的应用以及VERICUT软件对重复循环的处理方式的介绍,将这种编程思想和对VERICUT软件的应用更好地用到实际的工作中去,同时去开发更多功能为我们服务。

    一、前言
   
    西门子SINUMERIK840D系统作为一个高端的数控系统,指令丰富,功能强大,被广泛应用到各类加工中心上。该系统的宏指令(@代码)编程方式既是对标准编程指令集的补充,又极大地扩充了系统的编程指令,同时也极大地方便了用户的使用。用户完全可以根据自身的需要,去编制简洁、实用、优化以及有针对性的程序,以实现各种功能。
   
    产品零件的多轴加工,在这里我们主要是指应用4~5轴的加工方式实现对零件的加工。实际工作中通常都使用标准的编程指令去编制程序,但有时我们也会碰到一些结构上比较有特点的零件,比如图1、图2所示的叶轮类的零件,这类零件的每一个叶片和流道只是在某个旋转轴上相差一个角度,如果将所有的加工轮廓都编制出来,显然是很不经济,也使得程序冗长。相反只编制一个叶片和流道的加工轮廓,通过重复循环的方式去实现整个叶轮的加工,这样的零件加工程序简洁,结构才更加合理。这种重复循环编程方式通过宏指令完全可以实现,在我们工厂里早已应用。但是我们以前程序中所使用的某些宏指令在VERICUT软件中不起作用,无法实现完整的程序仿真。经过对西门子SINUMERIK840D系统标准编程指令、宏指令以及VERICUT软件本身的研究,我最终找到了即能被数控系统接受,又能在VERICUT软件中实现重复循环功能的方式。以下就该数控系统的多轴加工重复循环问题以及如何在VERICUT中去实现的问题介绍一下我的处理方式,重点介绍数控系统和VERICUT软件都接受的方式。

图1叶轮类零件

    二、西门子SINUMERIK840D数控系统常用的多轴加工重复循环
   
    西门子SINUMERIK840D系统是开放式的数控系统,可以通过数据通道实现系统变量和外部R参数之间的相互传递,因此比较容易通过宏指令去实现重复循环的功能。西门子SINUMERIK840D系统中提供了程序分支和R参数到系统内存的数据传输以及算术功能的宏指令,我们通过@12X这种IF-THEN-ELSE指令或者@13X这种WHILE指令以及@100这种GOTO指令去实现多次的循环和程序的跳转,通过@430零点偏移输入指令或@432可编程零点偏移输入指令将程序分支中的相应R参数调入去实现加工轨迹的旋转,最终实现多轴加工的重复循环功能。这种方式对绝对值/增量值编程方式都是适用的。另外,实际上对于增量值编程方式,完全可以不使用@430或@432宏指令,而只是通过在加工轨迹的第一个绝对值定位程序段中给相应的旋转轴地址码赋一个R变量参数,该R参数同样是在程序分支中赋给不同的值以实现完整的重复循环。例如,G00X._Y_Z_B=R100或者G00X._Y_Z_B_C=R100,值得注意的是这样的方式必须要求在定位程序段后面所有的加工轨迹程序段中都使用增量。
   
    三、VERICUT软件接受的多轴加工重复循环方式
   
    VERICUT作为一个高端的校验、仿真、优化软件,能够很好地支持各种数控系统的G代码文件。在西门子系统中对@12X和@100等部分宏指令是完全支持的,但是该软件在G-codesetting中的JobTables里的有关设置是不支持变量的,如图2所示,因此也就不支持西门子SINUMERIK840D系统中使用的@430或@432宏指令。虽然对于前述的增量值编程方式是支持的,但实际工作中,更多、更方便的是使用绝对值编程方式。因此,找到VERICUT软件所接受的多轴加工重复循环方式是有现实意义的。

图2VERICUT中G代码设置界面

    经过试验,在西门子SINUMERIK840D系统中提供的标准编程指令中,零点偏移指令G54~G57配合可编程零点偏移指令G58/G59也能实现加工轨迹的旋转。而且这种方式是VERICUT软件所接受的。下面参照5轴加工的部分程序段具体介绍。
   
    (1)在主程序中的调用
   
    L200R26=0R27=17R28=0001R29=1;(R27:循环次数R28:子程序号)
   
    (2)子程序SPF200
   
    @714
    R49=0;(加工轨迹旋转角度的初值)
    R26=360/R27;(旋转角度的均分值)
    N300@126R29R27K375;(当R29<R27时顺序执行,否则跳转执行N375程序段)
    L=R28;(调用子程序)
    R49=R29*R26;(加工轨迹旋转角度的赋值)
    @714
    @620R29;(R29=R29+1)
    @100K-300;(无条件跳转执行前面的N300程序段)
    N375G17M17
   
    (3)子程序SPF0001
   
    G00G55G64G90
    G58C=R49
    G00X_Y_B_C_
    …..
    G58C0
    M17
   
    其中通用子程序SPF200利用程序分支结构实现重复循环和赋给参数R49的不同的值,子程序SPF0001中调用参数R49实现了具体加工轨迹的旋转,且该子程序的加工轨迹绝对值/增量值编程方式都是适用的。从上面的程序可以看出,程序本身并不复杂,易于掌握。如左图所示,上述的方式我在VERICUT软件中已经成功的实现了重复循环和整个程序的完整仿真,如图3所示。
    
   

图3VERICUT仿真结果

    四、结束语
   
    通过前面的介绍,有效地利用数控系统的宏指令编程,为我们的实际工作到来了极大的方便。凡在西门子系统中具有相关指令的都可以很好地实现这种重复循环的功能,根据这种编程思想,我在FANUC0iMD系统中也成功实现了4轴加工的重复循环功能,相信这种编程方式同样也完全可以扩展到其他数控系统中去。另一方面,通过试验也能提高对VERICUT软件功能的认识和应用。本文也旨在通过宏指令的应用以及VERICUT软件对重复循环的处理方式的介绍,将这种编程思想和对VERICUT软件的应用更好地用到实际的工作中去,同时去开发更多功能为我们服务。