一.杭州久工机床FANUC 0i MD数控系统默认在不设置大刀的情况下可以实现随机刀库的功能,但是当设置了大刀之后比如7,那1-7的刀套就必须是与刀号一一对应了,剩下的还是随机刀库。但是在换刀的时候,T2,T4,T6是大刀,它们之间交换也必须每次都回到原来的位置才行,所以效率很低。把主轴刀具号写到参数8811的目的是为了提高这个换刀效率必须走的第一步。
1.以系统1秒循环信号作为触发信号R9091.6,使用SUB43把D0(主轴刀具号码)的数据写入到D710(注意写入数据的D数据型设为1,这样能输入4位数)
以系统1秒循环信号作为触发信号R9091.6,使用SUB43把D1149(0数据)的数据写入到D124(原厂大刀刀套数设置位置,必须设0,使原厂大刀设置无效)
2.以系统1秒循环信号作为触发信号R9091.6,SUB52输入参数D700,写入后输出一个R0.1输出信号
3.在D700输入18,D702输入0,D704输入4,D706输入8811,D708输入0,D710会根据周期信号,每秒把主轴刀具号输入进去
4.重新启动PLC之后,会先把D0写入到D710,然后根据之前设置的D数据,把D710的数字填入到参数8811
5.这样参数8811就获得了当前主轴的刀具号码,在宏程序可以用PRM[8811]读取,供后续使用。

Image

二.大刀实现随机刀库的原理,首先在#999设置想设置为大刀刀位的数量,比如7 (则能使用的大刀刀号为T2,T4,T6,中间不能安装任何其它刀具)。
通过比对想要更换的刀具和主轴刀具的刀号判断它们是否属于同一类刀具,同一类刀具则可以以随机刀库的方式进行交换。如果主轴上是小刀,要换的是大刀的情况也可以直接交换,但是要把刀号记录到参数8812,以供后续主轴是大刀,想要更换小刀的时候,必须先把插入大刀刀位的小刀先换出来,再小刀互相交换属于同类换刀。最后一种情况,主轴上是大刀,想要换的是小刀,这种情况就必须先更换T25(空刀)大刀放回大刀位置,再更换目标刀具,这样就能把主轴上的大刀放回自己的属于大刀随机刀库里面,防止大刀安装位和小刀安装位发生错乱。判断方式如下:
如果想要更换的刀具和主轴刀具都满足≤7或者都满足>7,则是同类刀。更换刀具≤7,主轴刀具>7可以直接更换,但是要在参数8811记录放入大刀刀位的小刀刀号。更换刀具>7,主轴刀具≤7,则先更换空刀把大刀放回去,再更换小刀。新建一个O9020的程序
%
O9020
#1=PRM8811
#2=#20(#2=要更换的刀号)
#3=PRM8813
#5=PRM8812
IF[#2GT#3]GOTO1(如果要更换的刀号>大刀设置的刀套数量跳转到N1,不考虑小刀刀号奇偶问题)
IF[[#2MOD2]EQ1]THEN#3000=25(WRONG_TOOL_NUMBER) (如果要更换的刀号是大刀且刀号是奇数,报警错误的刀具号码)
N1
IF[#3EQ0]GOTO2 (如果设置的大刀刀套数量为0,即全部是小刀就跳过)
IF[[#3MOD2]EQ0]THEN#3000=26(WRONG_BIG_TOOL_POT_NUMBER) (如果设置的大刀刀套数量是偶数,报错误的大刀刀套号)
N2
#4=0(默认设置#4=0,即同类换刀,大换大,小换小的工况)
IF[#1GT#3]GOTO10 (如果主轴刀号>大刀设置的刀套数量就跳转N10,说明主轴上是小刀)
IF[#2GT#3]THEN#4=2 (要更换的刀号>大刀设置的刀套数量就设置#4=2,说明要更换的是小刀,即小换大,中间要换T25过渡)
GOTO100
N10
IF[#2LE#3]THEN#4=1 (主轴刀号>大刀设置的刀套数量且要更换的刀号≤大刀设置的刀套数量,设置#4=1,大换小工况)
N100 (可以直接交换,记录放入大刀刀套的小刀刀号)
IF[#4EQ0]GOTO15
IF[#4EQ1]GOTO20
IF[#4EQ2]GOTO25
GOTO98
N15 (同类换刀开始)
#101=#4003
#102=#4006
IF[#1009EQ1]GOTO11
G91G30Z0
IF[#1008EQ1]GOTO12
G91G0G30Z0
G30G91X0Y0
T#2 (定位要更换的刀号直接交换)
N12M6
N11
G#102
G#101
GOTO98 (同类换刀结束)
N20 (大换小换刀开始)
#101=#4003
#102=#4006
IF[#1009EQ1]GOTO111
G91G30Z0
IF[#1008EQ1]GOTO112
G91G0G30Z0
G30G91X0Y0
N112
T#2 (定位要更换的刀号直接交换)
M6
G10L52
N8812R#1 (写入交换前的主轴上的小刀刀号到参数8812)
G11
N111
G#102
G#101
GOTO98 (大换小换刀结束)
N25 (小换大换刀开始)
#101=#4003
#102=#4006
IF[#1009EQ1]GOTO1111
G91G30Z0
IF[#1008EQ1]GOTO1112
G91G0G30Z0
G30G91X0Y0
N1112
T#5 (定位之前被放入大刀刀套的小刀刀号并交换,为主轴上的大刀腾位置)
M6
T#2 (定位要更换的小刀刀号并交换)
M6
N1111
G#102
G#101
GOTO98 (小换大换刀结束)
N98
M99
%

三.换刀程序的使用:1.把O9020放入机床,修改参数6080为6,6071为0,此时就可以用M6T*的方式进行换刀了。注意:1️⃣不能用T*M6的格式。2️⃣原换刀程序O9001在换刀初始化的时候还是会用到的,不能删除。

四.刀库乱了的时候如何处理:编写以下程序,传入机床。把刀库刀套号旋转到换刀臂的位置,然后运行M70,运行过程,面板右上方刀库刀套号会变成1,刀库会旋转一下,再回到原来的位置。
%
O9005
M70 (原厂初始化)
G10L52 (临时修改参数)
N6071R6 (6071参数改为6,M6调用原厂O9019)
N6080R0 (6080参数改为0)
G11 (参数修改结束)
G4X1.
T2 (转动刀盘,不转动无法用M6T方式换刀)
T1 (刀盘回原位,不转动无法用M6T
方式换刀)
G4X1.
G10L52 (临时修改参数)
N6071R0 (6071参数改为0)
N6080R6 (6080参数改为6,M6宏程序方式调用O9005)
G11 (参数修改结束)
M99
%

V-27PMC大刀随机刀库(含M11,M12控制信号Y10.1).zip