西门子刀库管理指南
为了达到一次装夹实现多工序加工的目的,现在的数控机床大部份配备了交换刀具系统,这样数控系统需要知道这些刀具的几何尺寸,还有刀具在刀库里的具体位置。为了适用工厂自动化生产的更高要求,有时还需要对刀具的加工时间或者是加工工件数进行监控,当达到刀具的加工寿命时,系统会提示操作者更换刀具,避免因为刀具的磨损而造成批量废品。在自动化程度更高的机床上,还可以为一些刀具配备一把或几把类似的刀具,叫做姊妹刀,当某把刀具达到加工寿命时,系统会自动挑选它的姊妹刀来代替,这样能保证加工的连续运行,上述这些功能统称为刀库管理功能,西门子840D系统可以选配刀库管理功能。
在没有刀库管理功能时,系统只是管理刀具数据,主要是刀具的几何尺寸,当需要交换刀具时,系统会通过通道的接口信号通知PLC需要更换的新刀具号,PLC控制刀具换刀动作,当动作完成后,通知NC。具体接口信号如下:
DB21.DBX61.0 T码改变,当NC遇到一个新的T指令时,该信号有效,信号只
持续一个 PLC周期。
DB21.DBW118 T码的值,也就是要交换的新刀号的值,该信号在新的刀号来之
前一直有效
对于机床来说,一般有一个实际存在的刀库,同时根据实际情况,可能有一到两个机械手,至少一个主轴,有的刀库还需要用来装卸刀具的装卸站,系统把实际存在的刀库定义为刀库1,这个刀库里有定义好的刀座数,机械手和主轴定义为虚拟的缓存刀库,刀库号为9998,一般定义主轴为这个刀库里的第一个刀座,其它依次为机械手1,机械手2.....等等,对于装/卸刀具站而言,定义为另外一个虚拟的刀库,刀库号为9999,依据实际情况定义里面的刀座数,一般主轴都能用来装/卸刀具,所以至少算一个刀座。
如下图所示:
这台机床有一个实际的链式刀库,刀库号为1,里面有16个刀座,有一个主轴和两个机械手卡爪,它们都属于一个虚拟的刀库9998,分别对应为这个刀库里面的刀座1,2和3,还有一个装/卸刀具站,它的刀库号为9999,加上主轴也是一个装/卸刀站,这个刀库有两个刀座,分别为刀座1和2,下面以这个示例来说明刀库管理功能的调试。
刀库管理功能的调整
HMI的调整
对于新版本的HMI,不需要对刀库管理进行特殊的设置,只要系统刀库管理功能生效以后,系统会自动用带刀库管理功能的操作画面来代替标准的刀具参数显示画面,在这个画面里既能显示刀库里刀具的情况,也能显示缓冲区里面的刀具情况,还可以选择显示所有的刀具列表,可以对刀具进行管理,比如装载和卸载,是定点换刀还是随机换刀,常规的刀沿尺寸修改,刀具位置的重新分配等。
NCK的调整
840D的刀库管理是一个选项,需要激活该选项功能。
由于刀库管理需要占用一些内存,需要在系统里面预留相应的内存,主要相关参数如下:
MD18080 系统刀库管理参数,对整个系统而言
MD20310 通道刀库管理参数,仅对相应通道而言,一般设置成和MD18080一样
比较重要的设置位 Bit 0 刀库管理功能是否有效
Bit 1 刀具监控功能是否有效
Bit 3 是否考虑邻近刀座
Bit 4 PLC是否能要求新的修改参数后的预选刀具指令
一般的刀库管理功能,这四位都需要置上,所以至少为BH。
MD18084 系统管理刀库数量,要包含虚拟刀库,所以至少为3
MD18086 系统管理刀座数量,要包含虚拟刀座,>=实际刀座数+5
MD18082 系统管理的刀具数,一般要大于实际的刀座数
MD18100 系统管理的刀沿数,一般要大于系统管理的刀具数
以上参数的修改都会涉及到内存的重新分配,所以修改后要立即(不要下电和NCK复位)做一个NC 数据的备份,再回装回来,这样NCK的刀库管理功能就急活了。
刀库的建立
通过以上参数的设定,系统只是为刀库管理预留了相应的空间,但对于刀库的特征(比如刀库的类型,实际刀座的数量,虚拟刀座的数量等)需要通过对刀库管理系统变量来定义,系统可以通过传输一个刀库定义文件来对系统变量赋值,也可以通过执行一个子程序来对这些变量赋值,对于HMI_ADVACED 来说,可以在启动菜单里通过图形交互形式生成一个刀库的配置文件,对PCU20而言,只能通过编辑器来编辑刀库定义文件,附件里有一个刀库定义文件,里面主要包含以下几个信息:$TC_MAP1[0]=0 删除原来有关刀库的数据
$TC_DP1[0,0]=0 删除原来有关刀具的数据
$TC_MAP1[n] 刀库的类型实际的刀库类型一般有两种,链式刀库和车床用的刀塔
$TC_MAP7[n] 刀座的数量 n表示刀库号
$TC_MAMP2 刀具和空刀座的搜索策略
$TC_MAP3[1] 实际刀库状态,只有激活后该刀库才能使用
$TC_MP1[n,m] ,$TC_MP2[n,m] ,$TC_MP3[n,m],$TC_MP4[n,m] ,$TC_MP5[n,m] 定义刀座状态$TC_MLSR[n,m] 把缓存刀库的刀座分配给相应的主轴
$TC_MDP1[n,m] ,$TC_MDP2[n,m] 定义虚拟刀座和换刀点的偏置量,这个参数对装/卸刀具点才有
用,对其它虚拟刀座来说,这个值为0。
当这些系统参数正确定义以后,在刀库管理显示画面里就可以看见刀库的情况了,可以依照操作说明
书来建立新刀具。
PLC的调整
PLC主要要处理刀库管理发送过来指令的应答信号,PLC必须知道有关刀库的一些情况,根据这些情
况生成相应的DB数据块,在HMI_ADVANCED里,配置刀库管理的菜单里,有一个软键能根据刀库的具体
配置文件生成相应的数据块DB71-DB74,对PCU20而言,只能通过系统数据块DB4来生成。在DB4里面
定义刀库的特征,这些定义在OB100里面调用一次就行了,附件有一个常用刀库的数据块定义文件
FC100,如果刀库类型一样,调用时只要输入相应的刀座数即可。
DB4.DBW64 刀库数量
DB4.DBW65 刀库号
DB4.DBW67 刀库类型
DB4.DBW68 刀库的刀座数
DB4.DBW65 到DB4.DBW68要根据刀库的数量挨个定义,包含虚拟刀库
DB4.DBBn 主轴数量 n的数值为 DB4.DBW64的值*5+65
下面介绍PLC里面常用的一些应答方式。
加工中心的换刀指令一般是用TxxM06来实现的,执行T指令时,刀库管理把要更换的新刀具的刀
座号和主轴上的刀具要送回的刀座号发送到刀库管理专用接口信号,对应加工中心是DB72,而对应车床
刀塔是DB73,以下是经常涉及到的几个接口信号(以DB72为例):
DB72.DBB0,DBB1 刀具交换接口生效信号,由于刀库管理可以同时管
理多主轴换刀,因而有多个接口,一般的加工中心是一个主轴,也
就是DBX0.0有效。
DB72.DBX(N+0).1 刀具交换信号,其中N与DBB0和DBB1的接口
信号有关,第一个接口,N为4,即为DB72.DBX4.1。
DB72.DBX(N+0) .2 刀具交换准备信号。
DB72.DBX(N+0).3 执行T0指令时的接口信号。
DB72.DBW(N+20) 新刀具的刀库号。
DB72.DBW(N+22) 新刀具的刀座号。
DB72.DBW(N+24) 旧刀具(即要从主轴送回刀库的刀具)的刀库
号。
DB72.DBW(N+26) 旧刀具将要送回的刀座号。
与原来信号比较没有刀库管理
有刀库管理
换刀有效 DB21.DBX61.0
DB72.DBX0.0和DBX4.1
新刀具的刀座号 DB21.DBW118
DB72.DBW24
主要区别在下面几个方面:
●刀库管理不只在执行T码时有信号,刀具交换时还有信号。
●刀库管理只提供给PLC刀具的刀座信息,而不像原来提供T码后的值
●刀库管理不只提供“新刀具“的刀座信息,还提供要返回的“旧刀具”的刀座信息
下面举例来说这些接口信号:
假设主轴上刀具是2号刀,假设要换5号刀具上去,假设它们都是定点换刀。
T5 DB72.DBX0.0和
DB72.DBX4.2同时为1
G00 DB72.DBW24 1; 新刀具在1号刀库
DB72.DBW26 5; 新刀具在5号刀座
DB72.DBW28 1; 旧刀具放回1号刀库
DB72.DBW30 2; 旧刀具放回1号刀库2号刀座
G00 ….
……….
M06 DB72.DBX0.0和
DB72.DBX4.1同时为1
其它信号不
变
在刀库管理中,刀具交换时要等待PLC 的刀具准备应答信号,由于刀库管理需要知道刀具离开
刀库后的临时存放位置,比如是在主轴上还是在机械手上,刀具准备和刀具交换是否完成,这些都需要
PLC 来应答,PLC 是通过调用FC8来应答刀具管理。
调用FC8时需要提供这几个参数 启动信号,当该信号为1时,系统调用FC8 任务号 ,刀具准备和刀具交换任务号是2 任务索引号,指要交换刀具的主轴号,一般为1 新刀具现在位置的刀库号
新刀具现在位置的刀座号 旧刀具所在位置的刀库号 旧刀具所在的位置的刀座号 执行该指令时的状态字 FC8是否完整执行 指令执行时是否有错误
有时一个换刀过程需要刀具经过几个过渡状态才能完成,这时候常需要多次调用FC8来及时更新
刀具的位置信息。
当上例中的T5指令执行完毕时,2号刀具还在主轴上,5号刀具移动到刀具交换位置,这时候需
要调用FC8来应答刀具准备信号。
FC8启动条件,当T 码执行完后应为1
要换下来的“旧刀具”还在主轴上
要换上去的“新刀具”还在刀库里 状态1表示为该任务已经完成,如果为过度状态,则为105
CALL "TM_TRANS" Start :=#Start TaskIdent :=#TaskIdent TaskIdentNo:=#TaskIdentNo
NewToolMag :=#NewToolMag NewToolLoc :=#NewToolLoc OldToolMag :=#OldToolMag OldToolLoc :=#OldToolLoc Status :=#Status Ready :=#Ready Error :=#Error CALL "TM_TRANS" Start :=M100.2 TaskIdent :=B#16#2
TaskIdentNo:=B#16#1 NewToolMag :=1 NewToolLoc :=5 OldToolMag :=9998 OldToolLoc :=1 Status :=1 Ready :=M100.0 Error :=M100.1
当PLC 接到换刀指令时,PLC 执行换刀动作,把2号和5号刀具同时拔出来,这时候刀具信息又发生了变化,应该及时通知刀库管理。
参数和上次调用FC8差不多,区别是2号刀具已经从主轴移动到机械 手2,5号刀具已经转移到机械手1上面。
状态105表示该换刀任务还未完成,系统还需要等待
PLC 执行相应的动作,机械手旋转180度,在把5号刀具插进主轴,2号刀具送回刀库的2号刀座
新刀具(5号刀)已经被送到主轴上 旧刀具(2号刀)已经送回到刀库的5号刀座中
这次刀具交换已经结束,系统接到该次应答以后,认为换刀已经完成成,除了更新刀库表以外,程序继续执行。
如果执行T0M06时,系统会把主轴上的刀具(5号刀具)送回到刀库的五号刀座中。
对于刀具准备来说,因为没有新刀具要交换,所以没有什么刀具准备动作,PLC 接到刀具准备信号后,就立即应答,在刀具交换时,刀具的状态要经过两次变换,第一次是把刀具抓到机械手中,这时候需要调用一次FC8,告诉系统旧刀具已经在机械手上,而没有新刀具,故新刀具的刀库号和刀刀座号都为0,因为这个任务还没有完成,状态字是中间状态105。第二次是把刀具从机械手上送回到刀库中,还需要调用一次FC8,告诉系统旧刀具已经送回到刀库的5号刀座中,而新刀具的刀库号和刀座号都为0,换刀已经结束,状态字为1,对应主轴上没有刀具时的换刀,这时候由于没有“旧刀具”,故调用FC8应答时旧刀具的信息为0。
CALL "TM_TRANS" Start :=M100.3
TaskIdent :=B#16#2
TaskIdentNo:=B#16#1 NewToolMag :=9998 NewToolLoc :=3 OldToolMag :=9998 OldToolLoc :=2 Status :=105 Ready :=M100.0 Error :=M100.1
CALL "TM_TRANS" Start :=M100.4 TaskIdent :=B#16#2
TaskIdentNo:=B#16#1 NewToolMag :=9998 NewToolLoc :=1
OldToolMag :=1 OldToolLoc :=5 Status :=1 Ready :=M100.0 Error :=M100.1
以上是几种常用状态下的PLC 的应答方式,附件有一个子程序FB110,就把常用这几种应答方式做成一个子程序,如果任务完成后,你就给这个子程序一个相应的脉冲信号,子程序会为FC8赋上相应的值来应答!
对特殊情况下的应答
、
还刀中断时的应答
在换刀准备和换刀过程中,有可能因为意外情况而中断过程,这时候也需要通过调用FC8来通知NCK ,其它参数和正常调用时的差不多,需要告诉NCK 新刀具和旧刀具的信息,状态字变为3。
刀具装/卸和重新定位时的应答
有时操作者要通过操作面板来管理刀具,比如要装/卸刀具,要更改刀库表里面的信息,这时候除了按操作说明书在面板上操作以外,也需要PLC 来应答这些操作,调用FC8时需要告诉系统新刀具和旧刀具的信息,如果没有新(或旧)刀具时该参数就为零,比如装载刀具和重新定位刀具时,旧刀具的信息就为零,而卸载刀具时就没有新刀具信息,任务号变为DB71里面的任务,任务号为1
没有刀具准备和刀具交换时的刀具位置移动
有时PLC 需要在没有刀库管理过来的指令时也可以改变刀库的信息,比如有的机械手的中间状态很多,为了节约加工时间,当主轴上的刀具还没有送回到刀库时就需要程序继续执行,这时候就要提前应答刀具交换完成信号,但后来的刀库位置信息变动也要告诉刀库管理,同样调用FC8,只是这时的任务号变为4,新刀具信息为该刀具移动后的新位置的刀库号和刀座号,旧刀具信息则为该刀具原来所在的刀库和刀座信息,如果这时刀具从刀库移到缓冲区时(比如刀库从刀库里移动到机械手上),还可以用任务号5来告诉刀库管理该刀具的位置信息变动的同时,系统还保留刚才刀具所在刀库里刀座位置,不让别的刀具占用!
比如当执行T2时PLC 把2号刀具从刀库里的2号刀座抓到机械手1上,PLC 用FC8通知刀库管理2号刀具的位置信息的变动,这时系统再执行到一个新的T 码时,PLC 需要把机械手上的刀具送会到刀库里,再重新把新T 码的刀具从刀库抓到机械手上,PLC 需要调用一次FC8来通知2号刀具的位置变化。
比如在应答完刀库管理的换刀信号时,2号刀具从机械手1上送回到刀库的2号刀座
CALL "TM_TRANS" Start :=M100.4 TaskIdent :=B#16#4 TaskIdentNo:=B#16#1 NewToolMag :=1 NewToolLoc :=2 OldToolMag :=9998 OldToolLoc :=2 Status :=1 Ready :=M100.0
Error :=M100.1
程序搜索和程序测试下的处理
当程序测试和程序搜索时,系统需要生效程序中使用的刀具号,也就是会产生虚拟的换刀指令,而不需要实际的刀具运动,当PLC应答时,就会出现系统记忆的刀库数据和实际的刀库数据不一样,特别对随即换刀而言,刀库数据会更乱。对于新版本的NCK而言,系统在程序测试不会往PLC发送相关的刀具交换信号,因而不需要额外的处理,但对带计算的程序搜索来说,需要在程序中间启动时的状态和程序正常执行到改指令时的状态一样,系统如果发现主轴和机械手上的刀具和程序执行到这条指令时应该的状态不一样的话,系统会给PLC发送相应的刀具交换和刀具准备指令,由于一般的刀具交换都是用宏程序来实现,所以这样实现起来就很难,这时建议可以在PLC用户程序里加上条件,当检测到这种换刀情况时,可以产生一个报警,提示用户主轴上的刀具不符,然后用户可以在MDA下换上所需刀具。
附件:Toolmag.zip该附件包含一个刀库的配置子程序和简单的PLC实例程序
常见问题:
刀库数据混乱以后的处理
可以调用刀库的初始化程序,重新初始化刀库,为了保持原来的刀具几何尺寸数据不丢失,可以在初始化程序中跳过语句$TC_DP1[0,0]=0
怎样实现刀具随机换刀
在刀库定义时,可以为一些刀座定义为不同的类型,在建立刀具时,系统会提示操作者输入一些刀具对刀座的要求信息,比如该刀具能放到那种类型的刀座?刀具是否可以放到别的同类型的刀座里,也就是通常所说的随机换刀?在这样的前提下,系统每次换刀时会根据这些信息还有刀座搜索策略来建议“旧刀具”要放回的刀座号。
$TC_MAMP2 定义空刀座的搜索方法,其中Bit13位为1时定义为简单的随机换刀方式,也就是把旧刀具放到新换上来的刀具的刀座里,但这需要符合以下条件:
两把刀都是随即换刀
两把刀的刀座类型一样
旧刀不是刚刚装到主轴上第一次交换的刀具。
如果有不想被使用的刀座怎样处理
每个刀座都有自己的状态,你可以定义和修改,如果你不想让刀库管理使用这个刀座的话,你可以“禁止”它,也就是把它的状态设置成“disable”
什么是姊妹刀具
姊妹刀具就是相似刀具,在系统里它们的刀具名称一样,只是姊妹刀具号不一样,当交换刀具时,系统发现一个刀具不能使用时,会自动选择它的姊妹刀来代替,避免生产过程中止!
怎样使用刀库管理的刀具寿命监控功能
刀具寿命监控是刀库管理功能的一个标准功能,在设置刀具管理参数时,把相应的位置上就可以了(MD20310 第一位),具体的寿命监控类型和监控数据在刀具信息里输入,有两种监控类型,加工工件数据监控和加工时间监控,你可以任意选择,也可以两种监控方法都选择,当达到监控数据后,系统会产生一个报警,提示操作者更换刀具。