作者 | 主题 |
---|---|
隐身人 版主 经验值:38669 发帖数:10349 精华帖:72 |
楼主 2020-07-10 08:33:03
主题:关于828D控制斗笠刀库解析(2)斗笠刀库的调试; 承接上一贴! 斗笠刀库的调试,作为调试人员,首先要清楚,斗笠刀库的控制过程: 简述其过程:执行换刀M6T指令后,主轴切换到换刀高度--主轴定位---斗笠刀库出到换刀位置--主轴松刀---Z轴抬起准备换刀---刀盘旋转到预换的刀具---Z轴移动到换刀点---主轴夹刀且夹刀信号到位后---刀库回原位; 此过程时斗笠刀库更换的全过程,该过程由几部分配合共同完成,首先,动作依靠换刀子程序来完成,换刀子程序有三个组成部分: 1; L6.SPF:斗笠式刀库的换刀子程序,实现刀库的主要动作 ·; 该程序是由宏指令NC程序格式执行完成; N10 PROC L6 SAVE DISPLOF SBLOF N20 DEF INT T_SP,T_ORDER N30 T_SP=$TC_MPP6[9998,1] N40 GETSELT(T_ORDER) N50 STOPRE N60 IF(($P_SIM==1) OR ($P_ISTEST==1)) GOTOF END1;程序模拟,程序测试激活 N70 IF(($P_SEARCH<>0) OR ($P_DRYRUN==1)) GOTOF END1;程序段搜索,空运行激活 N80 IF (($P_SEARCH==0) AND (T_SP==T_ORDER) AND (T_SP>0) AND (T_ORDER>0)) GOTOF INFO1 N90 IF (($P_SEARCH==0) AND (T_SP==T_ORDER) AND (T_SP==0) AND (T_ORDER==0)) GOTOF INFO1 N100 IF $A_DBW[0]==5 GOTOF INFO2 ;5 = 刀库未回零,不能换刀 N110 IF $A_DBW[0]==4 GOTOF INFO3 ;4 = 轴未回零,不能换刀 N120 IF $A_DBW[0]==6 GOTOF INFO4 ;6 = 刀库调试模式激活,不能换刀 N120 IF $MN_USER_DATA_FLOAT[4]==0 GOTOF INFO5 ;MD14514[4]=0,换刀速度未设置,不能换刀; N130 $A_DBW[2]=5 N140 _WAITK1: N150 G4F0.1 N160 MSG("等待 刀库==刀具表 确认,一致请按[刀位一致]继续"); N170 IF $A_DBW[2]<>1 GOTOB _WAITK1 N180 D0 N190 STOPRE N200 M206; 换刀命令生效 N210 IF (($A_DBW[0]==2) OR ($A_DBW[0]==3)) GOTOF T_RET ;2 = T0 3 = 交换刀 N220 IF $A_DBW[0]==1 GOTOF T_NEWLOC ;1 = 只抓新刀 N230 STOPRE N240 T_RET: ;还旧刀 N250 M05 ;主轴停止 N260 MSG("主轴定向") N270 SPOSA=$MN_USER_DATA_FLOAT[0] N280 MSG("Z轴回到换刀位") N290 SUPA G00 G90 Z=$MN_USER_DATA_FLOAT[1] ;Z轴定位到换刀点 N300 WAITS N310 MSG("刀库推出") N320 M62 ;刀库推出 N330 G4 F1 N340 MSG("主轴松刀") N350 M58 ;主轴松刀 N360 G4 F2 N370 MSG("Z轴退到刀库旋转安全位置") ; N380 SUPA G00 G90 Z=$MN_USER_DATA_FLOAT[2] ;Z轴返回刀库旋转的安全位置 N390 IF $A_DBW[0]==3 GOTOF T_GET ;交换刀具,先还旧刀,再抓新刀 N400 MSG("主轴抓刀") N410 M59 ;主轴拉刀 N420 STOPRE N430 MSG("刀库退回") N440 M63 ;刀库回退 N450 MSG("Z轴退到安全位置") N460 SUPA G00 G90 Z=$MN_USER_DATA_FLOAT[3] ;Z轴返回安全位置 N470 GOTOF END N480 T_NEWLOC: ;只抓新刀 N490 M05 ;主轴停止 N500 MSG("主轴定向") N510 SPOSA=$MN_USER_DATA_FLOAT[0] N520 MSG("Z轴回到刀库旋转安全位置") N530 SUPA G00 G90 Z=$MN_USER_DATA_FLOAT[2] ;Z 轴定位到刀库能旋转的安全位置 N540 WAITS N550 MSG("刀库推出") N560 M62 ;刀库推出 N570 G4 F1 N580 MSG("主轴松刀") N590 M58 ;主轴松刀 N600 G4 F2 N610 GOTOF T_GO_ON ;继续抓刀 N620 T_GET: N630 MSG("刀盘旋转") ;抓新刀 N640 M55 ;刀库旋转指令 N650 STOPRE N660 T_GO_ON: ;继续抓刀 N670 MSG("Z轴扣刀") N680 SUPA G01 G90 Z=$MN_USER_DATA_FLOAT[1] F=$MN_USER_DATA_FLOAT[4];Z轴定位到换刀点 N690 MSG("主轴抓刀") N700 M59 ;主轴紧刀 N710 G4 F2 N720 MSG("刀库退回") N730 M63 ;刀库回退 N740 MSG("Z轴退到安全位置") N750 SUPA G00 G90 Z=$MN_USER_DATA_FLOAT[3] ;Z轴返回安全位置 N760 SETPIECE(1) ;刀具计数加1用于刀具寿命监控 N770 END: N780 MSG("") N790 D1 N800 $A_DBW[0]=0 N810 M05 N820 STOPRE N830 M17 N840 END1: N850 M206 N860 GOTOB END N870 INFO1:MSG("**** 无换刀动作 原因:编程刀具号 = 主轴刀具号 ****") N880 $A_DBW[0]=0 N890 G04F3 N900 MSG("") N910 M17 N920 INFO2:MSG("**** 刀库未回零,不能换刀 ****") N930 $A_DBW[0]=0 N940 G04F1 N950 GOTO INFO2 N960 M17 N970 INFO3:MSG("**** 轴 X Y Z 未回零,不能换刀 ****") N980 $A_DBW[0]=0 N990 G04F1 N1000 GOTO INFO3 N1010 M17 N1020 INFO4:MSG("**** 刀库调试模式激活,不能换刀 ****") N1030 $A_DBW[0]=0 N1040 G04F1 N1050 GOTO INFO4 N1060 M17 N1020 INFO5:MSG("**** 换刀速度MD14514[4]=0,不能换刀 ****") N1040 $A_DBW[0]=0 N1050 G04F1 N1060 GOTO INFO5 N1070 M17 2.MAG_CONF.SPF:刀库初始化时,需要对刀库参数做基本参数配置 ; 3.CYCPE_MA.SPF:程序段搜索处理程序; 承接上一贴有介绍,其中起着决定性的参数如下: MD14514[0] 主轴定位角度; ; MD14514[1] Z轴换刀点位置; ; MD14514[2] 用于刀库旋转的Z轴位置; ; MD14514[3] Z轴安全位置; 第二个子程序:MAG_CONF.SPF:刀库初始化时,需要对刀库参数做基本参数配置详细如下: N10 def int NUM_MAG,MAG_TYPE, LOCATIONS, PLACE, NUM_BUFFER, NUM_LOAD, PLACE_SEARCH ;IF $MN_USER_DATA_INT[0]==0 MSG("刀盘刀位数量 MD14510[0] 未设定") M0 ENDIF N20 NUM_MAG = 1 ;Nummer des Magazins N30 MAG_TYPE = 1 ;Magazinart (1: Kette, 3: Revolver,; 5: Flaechenmagazin) N40 LOCATIONS = $MN_USER_DATA_INT[0] ;Anzahl der Magazinplaetze N50 NUM_BUFFER = 1 ;Anzahl der Zwischenspeicher(Spindel, Greifer) N60 NUM_LOAD = 1 ;Anzahl der Beladestellen N70 PLACE_SEARCH = 257 ;Art der Suchstrategie, ;=257 Bit13=0 kein Tausch Altwerkzeug auf Platz von Neuwerkzeug ;Einstellung fuer Revolvermagazin ;=12289 Bit13=1 Tausch Altwerkzeug auf Platz von Neuwerkzeug ;Einstellung fuer Kettenmagazin N80; N90; ;Parameter pruefen N100 stopre N110 if ((NUM_MAG==0)or(LOCATIONS==0)) N120 Err1:STOPRE N130 MSG("Wrong Parameter --> Cancel") N140 G04 F4 N150 stopre N160 M0 N170 GOTOB Err1 N180 endif N190; Magazin Konfiguration N200; N210; N220; Loesche alte Daten wenn Magazin 1 angelegt wird N230 if NUM_MAG ==1 N240 $TC_MAP1[0]=0; loesche Magazine N250 $TC_DP1[0,0]=0; loesche Werkzeuge N260 STOPRE N270 endif ;Konfiguration N280 $TC_MAMP2= PLACE_SEARCH ; Art der Suchstrategie ; Magazin einrichten N290 $TC_MAP1[NUM_MAG]= MAG_TYPE ; Magazinart (1: Kette, 3: Revolver,; 5: Flaechenmagazin) ;N300 $TC_MAP2[NUM_MAG]="MAGAZIN"<<NUM_MAG N310 if PLACE_SEARCH == 257 N320 $TC_MAP3[NUM_MAG]= 81 ; Magazinzustand alle Plaetze festplatzkodiert bei Revolvermagazin N330 else N340 $TC_MAP3[NUM_MAG]=17 ; Magazinzustand N350 endif N360 $TC_MAP4[NUM_MAG]=-1 N370 $TC_MAP5[NUM_MAG]=-1 N380 $TC_MAP6[NUM_MAG]=1 ; Anzahl Zeilen des Magazines N390 $TC_MAP8[NUM_MAG]=0 N400 $TC_MAP9[NUM_MAG]=0 N410 $TC_MAP7[NUM_MAG]= LOCATIONS ; Anzahl Magazinplaetze ;N420 $TC_MAP10[NUM_MAG]=PLACE_SEARCH ; Art der Suchstrategie ;Magazinplaetze ;N430 for PLACE=1 to LOCATIONS N440 STOPRE N450 $TC_MPP1[NUM_MAG,PLACE]=1 ; Platzart N460 $TC_MPP2[NUM_MAG,PLACE]=0 ; Platzytp,0 mit jedem WZ Platztyp vertraeglich N470 $TC_MPP3[NUM_MAG,PLACE]=1 ; Nebenplatzbetrachtung ein (aus waere 0) N480 $TC_MPP4[NUM_MAG,PLACE]=2 ; Platzzustand; (siehe FB WZV) N490 $TC_MPP5[NUM_MAG,PLACE]= PLACE ; Platzartindex N500 endfor N510 STOPRE ;N520 ; Definition Zwischenspeichermagazin (immer Nummer 9998) ;N530 $TC_MAP1[9998]=7 ; Magazinart: 7: Zwischenspeicher ;N540 $TC_MAP2[9998]="Buffer"<<NUM_MAG N550 $TC_MAP3[9998]=17 ; Magazinzustand N560 $TC_MAP6[9998]=1 ; Anzahl Zeilen N570 $TC_MAP7[9998]=NUM_BUFFER ; Anzahl Plaetze ; Plaetze des Zwischenspeichers ;Spindel N580 $TC_MPP1[9998,1]=2 ; Platzart (hier Spindel) N590 $TC_MPP2[9998,1]=0 ; Platztyp (hier immer 0) N600 $TC_MPP3[9998,1]=0 ; Nebenplatzbetrachtung aus N610 $TC_MPP4[9998,1]=2 ; Platzzustand N620 $TC_MPP5[9998,1]=1 ; Platzartindex ;N630 ;Greifer N640 FOR PLACE=2 to NUM_BUFFER N650 STOPRE N660 $TC_MPP1[9998,PLACE]=3 ;(hier Greifer) N670 $TC_MPP2[9998,PLACE]=0 ;(hier immer 0) N680 $TC_MPP3[9998,PLACE]=0 ;Nebenplatzbetrachtung aus N690 $TC_MPP4[9998,PLACE]=2 ;Platzzustand N700 $TC_MPP5[9998,PLACE]=PLACE ;Platzartindex N710 endfor N720 STOPRE ;N730 ; Definition Belademagazin (immer Nummer 9999) ;N740 $TC_MAP1[9999]=9 ; Magazinart: 9: Belademagazin ;N750 $TC_MAP2[9999]="BELADEMAGAZIN"<<NUM_MAG N760 $TC_MAP3[9999]=17 ; Magazinzustand N770 $TC_MAP4[9999]=-1 N780 $TC_MAP5[9999]=-1 N790 $TC_MAP6[9999]=1 ; Anzahl Zeilen N800 $TC_MAP7[9999]=NUM_LOAD; Anzahl Plaetze N810 STOPRE; ;N820 ; Belademagazinplaetze ;N830 for PLACE=1 to NUM_LOAD N840 STOPRE N850 $TC_MPP1[9999,PLACE]=7 ; Platzart Beladestelle N860 $TC_MPP2[9999,PLACE]=0 ; Platztyp (hier immer 0) N870 $TC_MPP3[9999,PLACE]=0 ; Nebenplatzbetrachtung aus N880 $TC_MPP4[9999,PLACE]=2 ; Platzzustand N890 $TC_MPP5[9999,PLACE]=PLACE ; Platzartindex N900 endfor N910 STOPRE N920 ; Offsets (Abstaende) ; Abstaende zum Magazin Zwischenspeicher N930 for PLACE=1 to NUM_BUFFER N940 $TC_MDP2[NUM_MAG,PLACE]=0 N950 endfor N960 STOPRE ;Beladestellen N970 for PLACE=1 to NUM_LOAD N980 stopre N990 $TC_MDP1[NUM_MAG,PLACE]=0 N1000 endfor ;Spindel-Greifer Zuordnung ;N1010 stopre N1020 for PLACE=2 to NUM_BUFFER N1030 stopre N1040 $TC_MLSR[PLACE,1]=0 N1050endfor Ende N1060 M30
西门子的多年使用者http://yinshenren.ys168.com/、
|