1     概述

大家都听说过西门子数控刀具管理功能的强大,如何正确的“耍大刀”也是关键。

其中刀具寿命管理富含了常用的各种类型,本文主要介绍最简易也最普遍的寿命管理方法的一些常见问题和应用场景,基于工件计数的刀具寿命管理。


2      使用方法

2.1         初始化设定

在刀具磨损表中开启刀具寿命管理,选择”C” -通过工件数量计数的刀具寿命管理,填写目标值和预警值。点击右侧按钮“重新激活”完成设定。

刀具磨损

                                                             image.png

T

C

W

刀具寿命管理的三种方案
  - 通过实时计时的刀具寿命管理 (T)

- 通过工件数量计数的刀具寿命管理 (C)

- 通过磨损量计算的刀具寿命管理 (W)

 

2.2         操作步骤

1.     在加工程序中执行SETPIECE指令实时计数,实现刀具管理。

2.     工件数一栏将实时显示刀具寿命(也即还将能加工多少个工件)

3.     当到达预警值时,系统自动报警,锁定刀具,提示更换刀具。

4.     更换刀具后,点击“重新激活”,重新开始计数。

2.3         要点总结

1.     主轴端有刀具时,建议在程序头加SETPIECE(0)

2.    SETPIECE计算刀具寿命原则上是追溯到上一个SETPIECE指令



3      场景示例

3.1         SETPIECE指令说明

SETPIECE(int a, int b) 指令有两个参数,如下:

SETPIECE

a (int)

b (int)

主轴的递减工件计数指令


每次的递减量

主轴号

用户可以更新在加工过程中对所使用的刀具进行件数寿命监控。

说明:大多数编程时,参数b均省略,如SETPIECE(1)代表每次递减量为1.

3.2         针对刀沿

3.2.1    问题的提出

问:

我在加工中使用了两个刀沿,在第2刀沿(D2)生效后,执行SETPIECE计算刀具寿命时,发现刀沿1(D1)和刀沿2(D2)都会减少1次,为什么?怎么才能只减少D2呢?

答:

这是对SETPIECE指令不甚理解导致的。实质上SETPIECE指令是对已生效过的所有刀具或刀沿进行寿命计算,只要之前生效过的均会减少,虽然客户当前的刀沿为2号刀沿(D2),但在更换之前默认为1号刀沿(D1),也即生效过1号刀沿,所以刀沿2和刀沿1都会减少,减少数量由编程给定。

如何避免?

在进行刀具寿命计数前,先执行一次SETPIECE(0),清零之前的状态,再进行正确的编程。

示例:

SETPIECE(0)

D2

SETPIECE(1)

….

如上,只对D2减1。


3.2.2     不同刀沿的寿命计算: 

场景1:刀沿2和刀沿3均被调用,D2,D3寿命均减1

如果之前生效了D2和D3,

image.png

那么执行SETPIECE后,会在D2和D3上都减1

image.png

 

场景2:刀沿2和刀沿3均被调用,D3寿命不变,D2寿命减1

1.  

刀具寿命初始状态

image.png

2.

在D3后执行SETPIECE(0),

在D2后执行SETPIECE(1),

image.png

3.结果:

D3寿命不变,

D2寿命减少1次

image.png

 

场景3:刀沿2和刀沿3均被调用,D3寿命减2,D2寿命减1

1.  

刀具寿命初始状态

image.png

2.

在D3后执行SETPIECE(2),

在D2后执行SETPIECE(1),

image.png

3.结果:

D3寿命不变,

D2寿命减少1次

image.png

 

3.3         针对刀具

3.3.1     问题的提出

问:

1. 我在执行了加工程序后,使用SETPIECE(1)进行刀具寿命管理,为何刀具10总是寿命减2?如下

编程示例

N10   T="CUTTER 4" M6

N20   G1 G91 X10 F1000

N30 SETPIECE(1)

N40   T="CUTTER 6" M6

N50   G1 G91 X10 F1000

N60   T="CUTTER 10" M6

N70   G1 G91 X10 F1000

N80 SETPIECE(1)

N90   M30

答:

这是因为程序头缺少了SETPIECE(0)清零指令,N30 SETPIECE(1) 也是出现此问题的关键。


3.3.2     问题详解

本节详细对上述问题做了解析,并进一步阐述了SETPIECE指令的含义,帮助大家能正确使用SETPIECE指令。

加工程序

T="CUTTER   4" M6

G1   G91 X10 F1000

T="CUTTER   6" M6

G1   G91 X10 F1000

SETPIECE(1)

T="CUTTER   10" M6

G1   G91 X10 F1000

T="CUTTER   16" M6

G1   G91 X10 F1000

SETPIECE(1)

M30

刀具寿命初始状态

image.png

执行

第一次执行完一遍加工程序后。

image.png

执行

第二次执行后

image.png

结果

刀具4,刀具6,刀具10都是正常的没执行一次加工程序,刀具寿命减1; 而刀具16寿命是每次减2.

原因

① 初始状态时,主轴上有刀具 “CUTTER 16”,而程序头没有使用SETPIECE(0)清零

②在“CUTTER 16”生效前执行了SETPIECE指令,此时会将之前生效过的刀具进行一次刀具管理,当然包含“CUTTER   16”,所以刀具16,刀具4,刀具6寿命均减1

③ 此时又重新生效了“CUTTER 16”

④ 此处的SETPIECE(1) 会对 刀具10和刀具16 进行寿命管理,寿命均减1

综上,“CUTTER 16”在无形中被管理了两次,所以每执行一次加工程序,寿命会减2.

image.png

正确编程

在程序头使用SETPIECE(0)进行寿命计算清零.

示例:

SETPIECE(0)

T="CUTTER   4" M6

G1   G91 X10 F1000

T="CUTTER   6" M6

G1   G91 X10 F1000

SETPIECE(1)

T="CUTTER   10" M6

G1   G91 X10 F1000

T="CUTTER   16" M6

G1   G91 X10 F1000

SETPIECE(1)

M30

正确结果

image.png

 

 

3.3.3     不同刀具的寿命计算:

场景1:刀具4,刀具6,刀具10 均被调用,刀具4寿命减2,刀具6,刀具10寿命减1

1.   刀具寿命初始状态

                                                                                  image.png

2.   编程示例

SETPIECE(0)

T="CUTTER   4" M6

G1   G91 X10 F1000

SETPIECE(2)

T="CUTTER   6" M6

G1   G91 X10 F1000

T="CUTTER   10" M6

G1   G91 X10 F1000

SETPIECE(1)

M30

刀具寿命管理结果

image.png

 

场景2:刀具4,刀具6,刀具10 ,刀具16均被调用,刀具6寿命减1,其他刀具寿命均减2

1.   刀具寿命初始状态

image.png

2.   编程示例

SETPIECE(0)

T="CUTTER   4" M6

G1   G91 X10 F1000

SETPIECE(2)

T="CUTTER   6" M6

G1   G91 X10 F1000

SETPIECE(1)

T="CUTTER   10" M6

G1   G91 X10 F1000

T="CUTTER   16" M6

G1   G91 X10 F1000

SETPIECE(2)

M30

刀具寿命管理结果

image.png

场景3:刀具4,刀具6,刀具10 均被调用,寿命均减少1,

1.   刀具寿命初始状态

image.png

2.   编程示例

SETPIECE(0)

T="CUTTER   4" M6

G1   G91 X10 F1000

T="CUTTER   6" M6

G1   G91 X10 F1000

T="CUTTER   10" M6

G1   G91 X10 F1000

SETPIECE(1)

M30

刀具寿命管理结果

image.png


4       参考文档

SINUMERIK 840D sl_828D 工作计划》 搜索关键字SETPIECE


5        作者/联系人

Chengfei

5/11/2021

6        版本信息

版本

日期

修改内容

V1.0

5/11/2021

第一版