1. 首页
  2. 技术文章
  3. 其它数控

CNC智能管理刀具寿命宏程序V3.0(增加强制换刀功能)

CNC智能管理刀具寿命宏程序V3.0(程序更新升级)

 

更新说明
CNC智能管理刀具寿命宏程序V3.0(增加强制换刀功能)
增加刀具寿命到期后强制换刀功能;当开启强制换刀功能时寿命到期后此时必须更换刀具(更改刀长数据)程序才能正常运行,否则程序一直出现3055(CHANGE TOOL)报警;

 

升级说明:

若机台有在运行此程序前一版本的,更新升级时需手动将#999变量清空使程序初始化方可正常运行;若未有运行老版本的程序这一步可跳过;

 

非模态调用说明
G65 P8586 T10. Q970. R700. V1. U1. W1. (增加U代码)

 

P:程序号;

T:需计算刀具数量的总数(T值不可大于20,目前只针对21把刀库的机床);

Q:刀具长度数据寄储地址;(Q970即表示刀长数据存入#970~后变量内)

R:刀具寿命数据寄储地址;(R700即表示寿命数据存入#700~后变量内)

V:系统类型识别码;(V1:法那科系统;V0:三菱系统)

U:是否开启强制换刀功能;(U1:开启;U0:关闭)

W:刀具寿命计数增量值;

 

注:

以上参数不可少输入,当出现3099(SET ERROR) 报警时请检查以上相关参数是否设置正确;

 

特别说明:

 

当更换刀具后,当前所更换的刀具对应的寿命数值会自动清零;当刀具寿命达到设定值时,CNC触发报警并提示且对应刀具计数自动清零,若需查看当前刀具加工数量可查看#[R+30]变量;需特别注意的是此变量再次动行此程序号将会被清空;

CNC智能管理刀具寿命宏程序V3.0(增加强制换刀功能)

 

%
O8586(TOOL LIFE DUE V3.0)
(***G65 P8586 T6. Q970. R700. V1. U1. W1***)
(1-FANUC 0-SANLING-20210618)
IF[#20EQ#0]GOTO9999
IF[#20GT20.]GOTO9999
IF[#18EQ#0]GOTO9999
IF[#18LT500.]GOTO9999
IF[#17EQ#0]GOTO9999
IF[#17GT970.]GOTO9999
IF[#21LT0.]GOTO9999
IF[#21GT1.]GOTO9999
IF[#22LT0.]GOTO9999
IF[#22GT1.]GOTO9999
IF[#23LE0.]GOTO9999

#110=#17.
IF[#22EQ1.]GOTO10
#111=10000.
GOTO11
N10
#111=11000.

N11
IF[#999EQ170823.]GOTO89
#1=1.
#2=#110
WHILE[#1LE#20]DO1
#[#2+#1]=#[#111+#1]
#1=#1+1.
#999=170823.
#[#110-3.]=100.
END1
N89
IF[#21EQ0.]GOTO90
IF[#[#110-3.]NE100.]GOTO9997
N90
(====================)
#31=#18+30.
#30=#[#31+1.]
IF[#30EQ1.]GOTO20
GOTO100
N20
#1=#[#31+3.]
#3=#[#31+2.]
WHILE[#3EQ1.]DO1
#[#31+2.]=#0
IF[#111+#1]NE[#2+#1]GOTO100
IF[#111+#1]EQ[#2+#1]GOTO9998
#3=#3+1.
END1
IF[[#111+#1]EQ[#2+#1]]GOTO9998
(====================)

N100
#[#31+1.]=#0
#[#31+2.]=#0
#1=1.
WHILE[#1LE#20]DO1
#2=#111
#3=#2+#1
#4=#110.
#5=#4+#1
#100=#[#3]
#101=#[#5]
IF[#100NE#101]GOTO9000
#1=#1+1.
END1

#1=1.
#31=#18+30.
WHILE[#1LE#20]DO1
#[#18+[#1]]=#[#18+[#1]]+#23
#1=#1+1.
END1
#1=#0
#2=#0
#3=#0
#4=#0
#5=#0
#29=1.
#30=1.
#[#31]=#0
#27=#18
#28=#20

(****************************)

(以下#1~#20表示T01~T20刀具寿命值,根据需要自行设定;等于0.1即表示当前刀具不参与运算;)

 

温馨提示:

以下数据尽可能错开一位,避免同时两把或以上刀具同时寿命到期报警而只对第一把刀具有效;

 

#1=3.
#2=4999.
#3=5001.
#4=5002.
#5=5003.
#6=5004.
#7=5005.
#8=5000.
#9=0.1 (不参与寿命计算)
#10=5010.
#11=5011.
#12=5012.
#13=5013.
#14=5014.
#15=5015.
#16=5016.
#17=5017.
#18=5018.
#19=5019.
#20=5020.
(****************************)

WHILE[#30LE#28]DO2
IF[#[#29]EQ#0]GOTO9999
#29=#29+1.
#30=#30+1.
END2

#29=1.
N138
WHILE[#29LE#28]DO1
IF[#[#29]EQ0.1]GOTO8888
#29=#29+1.
#30=#30+1.
END1

#29=1.
WHILE[#29LE#28]DO3
IF[#[#27+#29]GE#[#29]]GOTO#29
#29=#29+1.
END3
M99
(—————————-)
N1
#[#31]=#[#27+1.]
#[#31+1.]=1.
#[#31+3.]=1.
#[#27+1.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=1(T01 LIFE DUE END)
N2
#[#31]=#[#27+2.]
#[#31+1.]=1.
#[#31+3.]=2.
#[#27+2.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=2(T02 LIFE DUE END)
N3
#[#31]=#[#27+3.]
#[#31+1.]=1.
#[#31+3.]=3.
#[#27+3.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=3(T03 LIFE DUE END)
N4
#[#31]=#[#27+4.]
#[#31+1.]=1.
#[#31+3.]=4.
#[#27+4.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=4(T04 LIFE DUE END)
N5
#[#31]=#[#27+5.]
#[#31+1.]=1.
#[#31+3.]=5.
#[#27+5.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=5(T05 LIFE DUE END)
N6
#[#31]=#[#27+6.]
#[#31+1.]=1.
#[#31+3.]=6.
#[#27+6.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=6(T06 LIFE DUE END)
N7
#[#31]=#[#27+7.]
#[#31+1.]=1.
#[#31+3.]=7.
#[#27+7.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=7(T07 LIFE DUE END)
N8
#[#31]=#[#27+8.]
#[#31+1.]=1.
#[#31+3.]=8.
#[#27+8.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=8(T08 LIFE DUE END)
N9
#[#31]=#[#27+9.]
#[#31+1.]=1.
#[#31+3.]=9.
#[#27+9.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=9(T09 LIFE DUE END)
N10
#[#31]=#[#27+10.]
#[#31+1.]=1.
#[#31+3.]=10.
#[#27+10.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=10(T10 LIFE DUE END)
N11
#[#31]=#[#27+11.]
#[#31+1.]=1.
#[#31+3.]=11.
#[#27+11.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=11(T11 LIFE DUE END)
N12
#[#31]=#[#27+12.]
#[#31+1.]=1.
#[#31+3.]=12.
#[#27+12.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=12(T12 LIFE DUE END)
N13
#[#31]=#[#27+13.]
#[#31+1.]=1.
#[#31+3.]=13.
#[#27+13.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=13(T13 LIFE DUE END)
N14
#[#31]=#[#27+14.]
#[#31+1.]=1.
#[#31+3.]=14.
#[#27+14.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=14(T14 LIFE DUE END)
N15
#[#31]=#[#27+15.]
#[#31+1.]=1.
#[#31+3.]=15.
#[#27+15.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=15(T15 LIFE DUE END)
N16
#[#31]=#[#27+16.]
#[#31+1.]=1.
#[#31+3.]=16.
#[#27+16.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=16(T16 LIFE DUE END)
N17
#[#31]=#[#27+17.]
#[#31+1.]=1.
#[#31+3.]=17.
#[#27+17.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=17(T17 LIFE DUE END)
N18
#[#31]=#[#27+18.]
#[#31+1.]=1.
#[#31+3.]=18.
#[#27+18.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=18(T18 LIFE DUE END)
N19
#[#31]=#[#27+19.]
#[#31+1.]=1.
#[#31+3.]=19.
#[#27+19.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=19(T19 LIFE DUE END)
N20
#[#31]=#[#27+20.]
#[#31+1.]=1.
#[#31+3.]=20.
#[#27+20.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=20(T20 LIFE DUE END)
N21
#[#31]=#[#27+21.]
#[#31+1.]=1.
#[#31+3.]=21.
#[#27+21.]=0.
#[#110-2.]=#[#111+#29]
#[#110-3.]=#29
#3000=21(T21 LIFE DUE END)
N8888
#[#27+#29]=#0
#29=#29+1.
GOTO138
N9000
#[#18+#1]=0.
#[#110+#1]=#[#111+#1]
GOTO100

N9997
#117=#[#110-3.]
#118=#[#111+#117]
#119=#[#110-2.]
IF[#118EQ#119]THEN#3000=55(CHANGE TOOL)
#[#110-2.]=0.
#[#110-3.]=100.
GOTO11

N9998
#[#31+2.]=1.
#3000=98(HUAN DAO)

N9999
#3000=99(SET ERROR)
(DREAM CATCHER)
%

 
问答社区  发起问答  报警查询  技术文章  维修服务  资料下载  网址导航  申请 VIP   交流群

本文转载来自【公众号:CNC编程工程师】,仅供大家学习交流,如侵权请联系站长删文。

发表评论

登录后才能评论

联系我们

【数控驿站】

在线咨询:点击这里给我发消息

联系微信:QQ594673193

联系邮箱:594673193@qq.com

工作时间:07:00~23:00

QR code