032-在SIEMENS 840D上用NC结合PLC实现随机换刀
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在SIEMENS 840D上用NC结合PLC实现随机换刀
(武汉华中自控技术发展有限公司,430077)
安波
NC Integrate PLC achieve CHANGE TOOL In SIEMENS 840D
AN Bo
(Wuhan Huazhong Automation,Hubei,Wuhan,430077)
关键词:随机换刀、840D、刀库
Keyword:Random Change Tool、840D、T ool magazine
实现自动换刀的方法很多,因机床结构不用、数控系统不同而不同,但最终目的都是要实现安全、方便、快捷的自动换刀以提高机床的工作效率。
本文就以在SIEMENS 840D上,不使用刀库管理选件,用NC 结合PLC程序来完成随机换刀,NC程序完成换刀动作,PLC程序完成动作连锁。
1.概述
随机换刀即刀具存放的位置不固定,随着刀具更换过程随时发生改变。
随机换刀可以大大的缩短换刀的时间,从而提高机床的工作效率。
刀位号也称刀座号,即存放刀具的刀库位置编号。
换刀包括新刀具准备、刀具更换和旧刀具入库三个过程。
对于有些加工中心新刀具准备、旧刀入库是可以在机床处于加工状态进行的,不影响机床加工。
刀具更换在机床一道加工工序完成后进行,机械手到安全位置认为刀具更换完成,下一道加工工序开始执行。
旧刀具入库在刀具更换完成后执行,对于多数链式刀库和矩阵刀具,旧刀入库是可以在机床处于加工状态进行的。
这样就缩短了换刀过程中过多的等待的时间。
刀具分为普通刀、宽刀、长刀,普通刀具只占用一个刀位,宽刀占用三个刀具(左右各占用一个)、长刀占用一个刀位,但存放位置有要求。
普通刀具和宽刀分配一部分刀位,长刀分配一部分刀位,长刀分配的刀位优先放长刀,如果普通刀具和宽刀刀位已满,才可以将普通刀具和宽刀存放在长刀刀位。
而长刀只能存放在分配的长刀刀位,如果长刀刀位已满,则将长刀放到刀具出库刀位上。
刀具在新刀入库时区分其大小和长短,新刀入库后,在调用刀具时不需要区分刀具大小及长短。
2.全局变量定义
a)_NUM[N]:用于存储刀位上存放的刀具号码;
_NUM[20]为“200”,表示在20号刀位上,存放的刀具号码为“200”。
b)_POS[N]:用于存储刀位占用情况;
该值为“0”表示空闲,该值为“1”表示被占用。
c)_JDH:存储当前主轴上的刀具号码;
d)_XDH:存储需要上装的新刀具号码;
e)_N:过渡变量,用于存放寻找到刀号的刀位号码;
f)_M:过渡变量,用于存放寻找到的空刀位号码;
g)_DHG:刀号过渡中间变量;
h)_EAI[N]:新刀具入库变量;
_EAI[12]=120,表示在入刀库位置“12”上,刀号为“120”的刀具需要入库。
i)_EAO[N]:旧刀出库变量;
不需要位置对应,只需要输入需要出库的刀具号码。
N---为定义的任何数值。
j)_EAG:新刀入库/旧刀出库过渡参数
k)_EAN:新刀入库/旧刀出库过渡参数
3.刀具区分
刀号+“.1”:表示宽刀,需要占用3个刀位;
刀号+“.2”:表示长刀,需要放入长刀刀位分配部分;
通过取整运算来判断长刀、宽刀;
TRUNC( ):取整;
4.新刀自动入库
在变量_EAI[N]中输入新刀入库号码,区分刀具大小、长短,N代表是刀位号。
输入完成后,执行新刀具入库程序。
可以多把刀具一起入库,只需要把需要入库的刀具放入刀位,然后在变量里对应输入刀具号码,执行新刀具入库子程序。
入库子程序(L607):
IF $P_ISTEST==1 GOTOF N10 ;判断是否选择了程序测试
IF $P_SIM==1 GOTOF N10 ;判断是否在程序模拟IF $P_DRYRUN==1 GOTOF N10 ;判断是否选择了空运转
STOPRE
IF $A_IN[1]==1 ;判断第一个入刀位是否存在刀具,$A_IN[1]信号来自刀位检测开关
_EAN=1
WHILE ($A_IN[1]<>1) M85 ;刀具放松M85,刀具拉紧M86 MSG(“刀具正在放松”) ENDWHILE 相关PLC 程序:
3. 结语
随机换刀是完成自动加工的一个部分,完成多工序的自动加工还涉及到铣头的交换、铣头转位、框架偏移等多方面。
由于篇幅原因就不做详细介绍,就介绍了在SIEMENS 840D 上用NC 程序结合PLC 程序完成随机换刀,希望能对同行的工作有帮助,望大家批评指导。
L6072 ENDIF ……
IF $A_IN[12]==1;判断第十二个入刀位是否存在刀具,$A_IN[1]信号来自刀位检测开关 _EAN=12 L6072 ENDIF …… _EAG=0 _EAN=0 N10 M17
子程序L6072: ……
N10 _EAG=TRUNC(_EAI[_EAN]) ;输入变量_EAI[_EAN]的新刀号码取整赋值给_EAG IF _EAG==0
MSG(“输入的刀号错误,请重新输入再执行”) M00
GOTOB N10 ENDIF
IF _EAI[_EAN]==_EAG+0.1
GOTOF N100 ;跳转刀寻找大刀程序 ELSE
IF _EAI[_EAN]==_EAG+0.2
GOTOF N200 ;跳转到寻找长刀程序 ENDIF
GOTOF N300 ;跳转寻找刀普通刀具程序 N100 ;大刀寻找刀位 _M=14 ;第14~23号刀位离刀具位置最近,刀位13~24用于存放普通刀具和大刀具,由于靠最边上的不能存放大刀,所以寻找空刀位只在14~23号刀位。
WHILE (_POS[_M-1]==1) OR (_POS[_M+1]==1) OR (_POS[_M]==1) ;寻找3个连续的空刀位 _M=_M+1 IF _M>23
GOTOF N350 ;在14~23号刀位没有找到合适的空刀位。
ENDIF
ENDWHILE
GOTOF N2000 ;入库过程 _M=2 ;大刀具在自己分配的刀位内,没有找到合适的空刀位,再到长刀刀位部分寻找。