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