在批量加工机械零件的过程中,往往会由于操作者不熟悉、疏忽或者不小心,把加工参数(如刀具数据、工件坐标系等)修改了,导致产品严重超差乃至报废甚至撞机等严重事故发生,给单位和个人造成严重的经济损失。为此,我们就需要想尽办法在加工程序中通过系统判断来避免这种低级错误的出现,我们称之为“防呆设计”其实,这种“防呆设计”在生产企业批量生产中非常实用和有效的质量控制方式之一。西门子SINUMERIK数控系统可以在程序中方便的使用系统变量来对以上信息进行赋值和逻辑判断。利用这一特点,我们可以对加工程序进行 “防呆设计” 。

一、 “防呆设计” 的基础条件是系统支持灵活的变量编程

西门子系统支持灵活的变量编程,通过使用系统数据和用户数据中的变量,特别是计算功能和控制结构的相关变量,可以使NC 程序和循环的编写更为灵活。其中的系统数据和用户数据有如下特点:

· 系统数据

系统数据中有在系统中预定义的变量。这些变量有一个预定义含义。主要供系统软件使用。用户可在 NC 程序和循环中读取和写入这些变量。示例:机床数据、设定数据、系统变量。

系统数据包含在系统中预定义的变量,通过此变量可在 NC 程序与循环中存取当前控制系统的参数,例如机床、控制系统和加工步骤状态。系统变量的一个显著特点是其名称通常包含一个前缀,该前缀由一个 $ 字符、一个或两个字母以及一条下划线构成。

image.png

         · 用户数据

用户数据中有由用户定义的变量,其含义只可由用户确定。用户数据划分为:

预定义用户变量

预定义用户变量是在系统中已经定义的变量,但还需通过机床数据对其数量进行设置。这些变量的属性可由用户进行调整。

用户定义变量

用户定义变量是仅由用户定义的变量,直到运行时系统才会创建这些变量。它们的数量、数据类型、可见性和所有其它属性都完全由用户定义。

二、 如何进行参数化编程

通常,我们在加工程序中需要指定刀具和工件坐标系这两类加工条件,作为防呆设计的主要目的,就是将这两类加工条件用系统变量在程序头进行初始化,以防止被无意篡改而造成的事故。对此,我们看一下刀具和工件坐标系的变量设置是如何实现的。

1、刀具相关数据的参数化编程

对于刀具相关数据,我们在程序中主要使用的是刀具种类、刀具长度和半径以及磨损量。系统中对刀具参数相关变量的定义如下:

image.pngimage.png

image.png 

 

图片6.png 

图片7.png 

以面铣刀为例,我们通常关注的刀具长度和半径方向的数值,也就是$TC_DP3$TC_DP6$TC_DP12$TC_DP15。这些刀具参数的使用语法为:

$TC_DPx [<t><d>] =n

其中x=1~25, t为选中刀具的刀具号,d为选中刀具的刀沿号

2、工件坐标系相关数据的参数化编程

而对于工件坐标系(G54-G599)的设置,我们可以利用系统中通道专用可设定框架 $P_UIFR[<n>]来进行编程和赋值,可以设置坐标系的平移、旋转、比例缩放和镜像的值。其含义和使用的语法如下:

图片8.png 

image.png

含义:

图片9.png  

三、 “防呆设计”的示例程序

在加工中心加工程序中,我们可以在程序头对加工初始条件进行重置和确认,这样,哪怕实际系统参数(如刀具参数、工件坐标系等)被修改了,也不妨碍之后的程序正确运行。一般程序头我们可以这样写(仅针对一般的三轴立式加工中心):G90 G17 G71 SUPA G40

; 写入G54的正确值

$P_UIFR[1] =CTRANS(X,100,Y,400,Z,-120)

; 程序用的第一把刀具是D6的面铣刀T3,做刀具数据的初始化

$TC_DP1[3,1] = 140      ; 刀具种类为面铣刀

$TC_DP3[3,1] = 121.4   ; 设定正确的刀具长度

$TC_DP6[3,1] = 30       ; 设定正确的刀具半径

$TC_DP12[3,1] = 0       ; 设定刀具长度方向磨损值

$TC_DP15[3,1] = 0       ; 设定刀具半径方向磨损值

; 程序中用的第二把刀具的初始化

$TC_DP1[4,1] = 120     ; 刀具种类为立铣刀

$TC_DP3[4,1] = 104.4  ; 设定正确的刀具长度

$TC_DP6[4,1] = 3        ; 设定正确的刀具半径

$TC_DP12[4,1] = 0      ; 设定刀具长度方向磨损值

$TC_DP15[4,1] = 0      ; 设定刀具半径方向磨损值

; 判断当前刀具是否为T3,如果当前刀具不是3号刀,停止程序执行并报警

IF $TC_MPP6[9998,1] <> 3 ; 读取当前主轴刀具号,判断是否是T3

M0

MSG(“调用刀具不正确,请更换正确刀具!”)

ENDIF

T3 D1

M6     ; 调用刀具T3

S1000 M3

……

G0 Z200

; 调用第二把刀T4,判断当前刀具是否正确,如果不对,停止程序执行并报警

IF $TC_MPP6[9998,1] <> 4 ; 读取当前主轴刀具号,判断是否是T4

M0

MSG(“调用刀具不正确,请更换正确刀具!”)

ENDIF

T4 D1

M6     ; 调用刀具T4

S2000 M3

……

G00 Z200

G75 FP=1 X1=0 Y1=0 Z1=0

M30

 四、 总结

利用西门子SINUMERIK系统灵活的参数编程,我们以一般立式加工中心为例,将程序中涉及到的需要人为设定的信息,通过变量在程序中进行了初始化赋值,从而保证了程序加工条件的正确性,防止了人为修改或者误操作带来的加工风险,大大提升了产品良品和实际加工效率。