这是金属加工(mw1950pub)发布的第16513篇文章
编者按
针对卧式加工中心刀库位置不够用时,手动输入刀具参数存在较大的错误风险,设计了一套有效的刀具参数管理程序,用于刀具参数备份与检查。
1 序言
卧式加工中心(数控操作系统:西门子840D,机床:西班牙镗铣加工中心)作为发动机部件加工的一种常用设备,在部件加工过程中有着不可替代的作用。由于卧式加工中心使用过程中刀具种类多,刀具库用于存储刀具的位置不够,所以在加工不同种类曲轴时,需手动更换刀具库中的刀具,刀具更换后就要重新输入刀具参数。人工输入刀具参数不可避免地会出错,在实际使用时,也会因刀具参数输错、没有及时发现而导致发生质量问题。
2 问题分析
要避免出现刀具参数错误导致的质量问题,最妥当的方法就是能对刀具参数进行自动输入和自动检查。而刀具参数的自动读入会造成原本正确的刀具磨损参数被覆盖掉,如若没有及时发现,也有可能造成质量事故。另一种解决方案为由计算机对操作人员手动输入的刀具参数进行分析对比,对刀具的参数差异进行输出和提示,此方案更符合现场的实际使用需求。
要想对刀具参数的修改分析对比,则需要由计算机对正确的刀具参数进行备份,以及对正确刀具参数和机床中现有的刀具参数进行比对检查,当有问题时及时报警或停止,并提示操作人员。
机床中的刀具参数作为实数类型数据,如果存储于R参数表中,则需要大量的R参数用于数据存储,而西班牙镗铣加工中心可使用的R参数只有99个,要想用于存储刀具参数,则只能存储3~4把刀具的参数,是远远不够的,所以需要找寻其他的数据存储位置。
3 解决方案
为了实现刀具参数的自动检查及对检查差异数据输出,需要开发刀具参数备份程序、现有刀具参数与之前备份刀具参数比对检查这两大核心程序。
3.1 刀具参数备份主程序设计
刀具参数不能全部存储于R参数表中,而数控加工程序中有大量的数据及其他字符。如果能将刀具参数存储于特定的数控程序中,则存储的数据量将大幅增加[1],因此需要通过字符串进行数据的中间转换。可以通过定义“string”类型数据,作为中间转换数据的临时存储位置,将数据转换为字符串[2]。数据转换为字符串后,只是临时存储于NC中,一旦重启机床,数据将全部丢失。为了将数据永久存储,需要将数据存储于程序中,以文本文档存放在硬盘中,这样才可以保证数据不丢失。引入“WRITE”指令,将字符串数据写入到自己命名的存储位置。此时写入的数据为一堆数值,查看很不方便。为了方便数据查看,将刀具参数与R参数顺序一一对应输出,例如R3与$TC_DP3一一对应,代表刀具长度参数,将
WRITE(ERROR,”/_N_WKS_DIR/_N_8320_TXX_QZ_WPD/_N_JC1_spf”,zk1)。
参数备份传递原理如图1所示。
图1 刀具参数备份原理
由于刀具参数的备份是为了以后程序自动调用,因此将程序参数文档输出为spf子程序类型,同时在程序中添加备份时间,以方便后期查看。在备份程序末尾添加M17结束指令,用于子程序结束和后期对该子程序的调用。为了程序使用简单方便,将刀具参数备份核心程序设计为专门的子程序DJCSBF。为了实现一个子程序备份所有刀具,引入参数化编程理念,将刀具号用R1表示,刀补号用R2表示。这样通过R1和R2参数的变化,可实现所有刀具的参数读取和调用。针对T53D1刀具的长度参数和半径参数,进行刀具参数备份主程序设计如下(其他参数备份使用相同方法进行)。
N10 def string[400] zk1
N20 DEF INT ERROR
N30ZK1=
YEAR
HOUR
N40 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N70 IF ERROR
N80 MSG ("执行WRITE指令时出错:"
N90 M0
N100 ENDIF
N120 r1=53 r2=1;d t
N130 DJCSBF
……
N460 ZK1=
N470 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N480 IF ERROR
N490 MSG ("执行WRITE指令时出错:"
N500 M0
N510 ENDIF
N520 M30
3.2 刀具参数备份子程序DJCSBF设计
刀具参数进行备份,最终目的是为了实现机床自动提取数据与判断数据。要想实现对备份刀具参数的提取,在刀具参数备份时就需要对参数进行区分。此时可以引入R90用于和R1代表的刀具号进行比对,引入R91用于与R2代表的刀补号进行比对,只有当两个都满足时,才可以提取相应的刀具参数到R参数表中。为此在刀具参数备份子程序中,通过“WRITE”命令将“I F”指令以字符串的形式备份到刀具参数中,用于对刀具参数数据的提取判断。“$TC_DP3[r1,r2]”代表刀具长度参数,“$TC_DP6[r1,r2]”代表刀具半径参数,其他参数使用此相同方法进行,此处不再赘述。最终将所有刀具参数备份到子程序“JC1”中。
以下是DJCSBF子程序中具体内容。
N10 def string[400] zk1
N20 DEF INT ERROR
N30 ZK1=
N40 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N50 ZK1=
N60 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N90 ZK1=
N100 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N270 ZK1=
N280 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N310 ZK1=
N320 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N330 ZK1=
N340 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N350 ZK1=
N360 WRITE(ERROR,"/_N_WKS_DIR/_N_8320_TXX_
QZ_WPD/_N_JC1_spf",zk1)
N370 IF ERROR
N380 MSG ("执行WRITE指令时出错:"
N390 M0
N400 ENDIF
N410 m17
备份好的参数存储在子程序JC1中,打开后如下所示。
;tool bakup time:2019.9.5:15: 46: 47
IF(R90==53) and (R91==1 )
;dao ju T53 D1
R3=193.225
R6=5
ELSE
ENDIF
STOPRE
M17
3.3 刀具参数检查主程序设计
在将刀具参数备份到子程序JC1中后,参数的备份就结束了。当某一刀位,操作人员进行换刀并输入刀具参数后,对于刀具参数的正确性需运行刀具参数检查主程序进行自动检查。检查过程需将备份子程序中的刀具号和刀补号对应的刀具参数进行输出,此时检查主程序中引入R90用于和JC1刀具参数中R90参数进行比对,引入R91用于和JC1刀具参数中R91参数进行比对,只有当两个都相同时,将此段的参数全部输出到R参数表中(原理见图2),例如T53D1刀具,当R90=53、R91=1时,R3参数被赋予193.225,R6参数赋予5。
图2 刀具参数检查原理
以下为刀具参数检查主程序内容。
N10 R90=53 R91=1;T53 D1
N20 JC1
N30 DJCSJC
N490 M0
N500 M30
3.4 刀具参数检查子程序DJCSJC设计
当刀具备份参数与实际机床中刀具参数相同时,什么动作也不执行;当备份刀具参数与实际机床中刀具参数不相同时,此时机床显示屏幕上显示MSG提示信息,同时程序停止执行,提示操作人员检查刀具参数的正确性[3]。
以下为刀具参数检查子程序内容。
N70 if $TC_DP3[R90,R91]==R3
N80 else
N90 R50=R3-$TC_DP3[R90,R91]
N100 MSG("tooldate worng T="
TOOL length1 geometry Check "
N110 m0
N120 endif
N130 stopre
N700 if $TC_DP6[R90,R91]==R6
N710 else
N720 R50=R6-$TC_DP6[R90,R91]
N730 MSG("tooldate worng T="
TOOL radius Check "
N740 m0
N750 endif
N760 stopre
N840 M17
4结束语
通过以上刀具参数备份程序和刀具参数检查程序的使用,大大减少了操作人员因刀具参数输错而导致的质量事故,提前将错误暴露出来,避免重大安全、质量事故的发生。
参考文献:
[1] 赵长旭. 数控加工工艺[M]. 西安:西安电子科技大学出版社,2006.
[2] 西门子股份有限公司. SINUMERIK840D/840Di/810D工作准备部分编程手册[Z]. 2004.
[3] 西门子股份有限公司. SINUMERIK840D/840Di/810D基础部分编程手册[Z]. 2004.
本文发表于《金属加工(冷加工)》2023年第3期第84~86页,作者:中车资阳机车有限公司 王佳伟,秦贵忠,朱平,欧虎,赵信强,原标题:《加工中心刀具参数自动校对和防错的解决方案》。
领取专属 10元无门槛券
私享最新 技术干货