还剩4页未读,继续阅读
文本内容:
最近升级一台德国老设备,链条式刀库,小谈一下随机找刀、机械手换刀控制基本原理
1.Txx代码激活刀库控制固定循环一MGZMGZ根据编程刀具号计算出该刀具所在的刀套位置,以及就近找刀的方向位置和方向通过辅助功能H1(带符号的符点数)送到PLC由PLC程序控制刀库按就近方向转动到编程刀具所在的位置,等待换刀
2.M06启动换刀固定循环一TOOLTOOL控制各坐标加入换刀位置,并启动机械手换刀动作换刀完成后,激活刀具参数
3.边界条件在程序参测试(V
33000001.7=1)生效时,刀库和机械化手无换刀动作且编程的刀具参数生效目的是在仿真时,刀库和机械手无动作,但刀具参数生效,以便仿真时可以检测软限位编程约定Txx;刀具号(控制刀库加入准备位置等待换刀)M06;激活机械手换刀动作并且激活刀具参数;注
1.Txx和M06不能编在同一程序段内
2.固定循环TOOL中,所有位移程序段应加G153(段有效)取消基本偏移
3.三个换刀过程装刀主轴无刀,Txx/M06直接安装编程刀具换刀主轴有刀,交换编程刀具和主轴刀具还刀主轴有刀,编程TO,将主轴刀具还回刀库
4.主轴准停角度利用PLC符点参数MD14514
[0]:$MN USERDATA FLOAT
[0]其换刀过程是靠宏程序来实现的,换刀程序如下%_N_MGZ_SPF;$PATH=/_N_CST_DIRPROC MGZSAVE DISPLOF.〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜;前提条件;初始化后,刀具号与刀套号相等刀套号1安装刀具T1;并且主轴刀套上无刀.参数说明_TM
[0]:当前刀库刀套号_TM
[1]:编程刀具所在的刀套号_TM
[3]:主轴刀套上安装的刀具号_TM
[5]:1=程序测试标记_TM
[6]:程序测试时主轴上的刀具号_ZSFR
[0]:刀位差$C_T:编程刀具号$PTOOLNO:主轴刀套内的刀具号刀具数据$TC_DP1[刀具号,1]:刀具类型$TC_DP3[刀具号,1]:刀具几何参数•刀具长度1$TC_DP6[刀具号,1]:刀具几何参数-刀具半径$TC_DP12[刀具号,1]:刀具磨损-长度1方向$TC_DP15[刀具号,1]:刀具磨损-半径方向$TC_DP24[刀具号,1]:刀具尺寸0:正常1:过大在该子程序中表示空刀套$TC_DP25[刀具号,1]:刀套号;程序结果;通过辅助功能H1向PLC发送编程刀具所在的刀套号以及;刀库的旋转方向方向通过H1的符号表示;特殊情况;在程序仿真和程序测试状态下无刀库和换刀动作.为使程;序仿真时的刀具参数可以起作用,木固定循环记录仿真前;主轴的有效刀具号,在仿真结束时恢复主轴刀具,然后再;进行换刀._TM
[10]=0;跳转标志初始化IF_TM
[5]==0AND$PJSTEST==1GOTOF_SIMU1IF_TM
[5]==1AND$P_ISTEST==1GOTOF_SIMU2IF LTM
[5]==1AND$PJSTEST==O GOTOF_E_SIM_ZSFR
[1]=$MN_USER_DATAJNT[O];刀库最大刀位数_ZSFR
[2]=_ZSFR
[1]/2禄大刀位数/2IF$C_T==$P_TOOLNO GOTOF NOCHG1IF$C_T_ZSFR
[1]GOTOFNOCHG2;编程刀具〉最大刀具号.〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜_T_CHG:IF$C_T0GOTOF_T_N0;T=0时,取出存储的空刀套号vvvvvvvvvvvvvvvvvvvvvvvv_TM
[1]=_TM
[4]GOTOF_T_POS_T_N0:MSG编程刀具号为:T«$C_T_TM
[1]=$TC_DP25[$C_T,1]_T_POS:;判断刀库旋转方向vvwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv_ZSFR
[0]=_TM
[1]-_TM
[0];位置差IF_ZSFR
[0]==0GOTOF_T_STEPIF_ZSFR
[0]0AND_ZSFR
[0]=_ZSFR
[2]OR_ZSFR
[0]0AND_ZSFR
[0]-_ZSFR
[2]GOTOF_MGZ_PIF_ZSFR
[0]0AND_ZSFR
[0]=_ZSFR
[2]OR_ZSFR
[0]0AND_ZSFR
[0]-_ZSFR
[2]GOTOF_MGZ_N_MGZ_P:H1=_TM
[1]GOTOF_T_STEP_MGZ_N:H1=-_TM
[1]•AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA_T_STEP:;正常换刀时,T功能生效,刀具参数在换刀后生效========;R0=H1T=$C_T•AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOTOF_END_E_SIM:T=_TM
[6];恢复主轴刀具号M96;主轴刀具参数生效MSG(”恢复主轴刀具号:“vv_TM
[6])G04F5_TM
[5]=0清除程序测试标记;_TM
[6]=0;_TM
[10]=0GOTOB_T_CHG_SIMU1:;仿真方式时,T功能生效,刀具参数立即生效============_TM
[5]=1;记录程序测试状态_TIVH6]=$P_T00LN0;记录主轴刀具号_TM
[10]=10;无换刀动作_SIMU2:T=$C_TM96•AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGOTOF_ENDN0CHG1:_TM
[10]=10;无换刀动作MSG(没有换刀编程刀具等于主轴刀具”)G04F2GOTOF_ENDN0CHG2:_TM
[10]=10;无换刀动作MSG(没有换刀编程刀号超过最大值.循环启动继续或复位”)M00_END:M17%_N_TOOL_SPF;$PATH=/_N_CST_DIRPROC TOOLSAVE DISPLOFIF_TM
[10]==10GOTOF_END;没有找到刀具G500;取消工件坐标系DO;取消刀补;Z轴返回固定点,主轴准停,Mxx启动机械手动作M86;SPOS=$MN USERDATA FLOAT
[0];启动机械手换刀IF$C_T==0GOTOF_RE_T;还刀IF$P_TOOLNO==0GOTOF」N_T;取刀8TOPRE$TC DP25LTM
[3],1]=_TM
[1];编程刀具所在刀套号$TC_DP24LTM
[3],1]=0;清除主轴刀具标志_TM
[3]=$C_T;主轴刀具套中为编程刀具;交换刀具wvvvvwvvwvvvvvvvvvvvvvvvvwvvvvvvvvvv$TC_DP25LTM
[3],1]=_TM
[4];编程刀具所在刀套号STOPRE$TC_DP24LTM
[3],1]=1;标出在主轴上的刀具MSG(换刀步骤3:换刀完成)G04F1GOTOF T ACT_IN_T:_TM
[3]=$C_T;主轴刀具套中为编程刀具;装入刀具VVVVVVVVVVWVVVVVVVVVVVVVVVVVVVVVVVVVVVV;刷新当前刀套号$TC_DP24LTM
[3],1]=1;标出在主轴上的刀具;记忆首次取刀的刀套号MSG(换刀步骤1:装刀完成)G04F1GOTOF_T_ACT〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜RE T:;退还刀具WVWVWVVWVVVVVVVVVVVVWVVWVVVWVVWV$TC_DP24LTM
[3],1]=0;清除空刀套的位置_TM
[0]=_TM
[4];主轴刀具返回空刀套_TM
[3]=0;主轴刀具套中刀具号为0_TM
[4]=0;主轴刀具套中刀具号为0MSG(换刀步骤2:还刀完成)G04F1TACT:M96;激活刀具参数D1;主轴恢复速度控制方式;刷新当前刀套号STOPREEND:M17%N INISPF;$PATH=/_N_CST_DIRPROC INISAVE DISPLOF_TM
[11]=$MN_USER_DATA_INT
[0];刀库最大刀位数_TM
[0]=1当前刀套号_TM
[1]=0编程刀具所在刀套号_TM
[3]=0主轴刀套中刀具号_TM
[4]=0首次换刀的刀套号_TM
[5]=0非程序测试状态_TM
[6]=0程序测试时主轴刀具号_TM
[10]=1;计数器,换刀步骤JNI:$TC_DP25LTM
[10],1]=_TM
[10];初始化刀套号$TC_D P24LTM
[10],1]=0;标出空刀套的位置_TM
[10]=_TM
[10]+1_TM
[11]=_TM
[11]-1IF_TM
[11]OGOTOB_INI_TM
[10]=0M99;初始化PLC刀库计数器TOM96;激活刀具参数M17里面有注释,刀库的调整可以参考这些进行,资料来源西门子调试笔记以及相关资料加实践整理;。