PROC L66 ;SAVE SBLOF DISPLOF
;—————————————————————
; Version: V05
; last change: 10.08.2021
; AUTOR: APC DG
; Modifier: DG LingYi WPC
; CUSTOMER: GREE GA-GF4545D
;—————————————————————
;***********Define variables************
DEF INT T_SP,T_NEW,T_MODE,T_LD1_EXIST,T_SP_EXIST
DEF REAL X_CHAN,X_PREP,Y_PREP,Y_INTM,Y_CHAN,Y_SLOW,Z_PREP,Z_INTM,Z_CHAN,Z_SLOW,SP_POS,A_POS
DEF INT _PrepareTool=0,_ActiveTool,_SpTool=0
DEF INT _SpNo, _ChanNo, _MagNo
_ChanNo=$P_ChanNo
IF _ChanNo==1 GOTO CHAN1
CHAN1:
STOPRE
X_PREP=$MN_USER_DATA_FLOAT[3]
X_CHAN=$MN_USER_DATA_FLOAT[4] ; X: MD14514[0] is tool change position
;Y_CHAN=$MN_USER_DATA_FLOAT[5] ; Y: MD14514[2] is tool change position
Z_PREP=$MN_USER_DATA_FLOAT[1] ; Z: MD14514[3] is prepare position, MAG door outside
Z_CHAN=$MN_USER_DATA_FLOAT[2] ; Z: MD14514[4] is tool change position
SP_POS=$MN_USER_DATA_FLOAT[0] ; SP:MD14514[6] is tool change position
;$C_ME 读入 M 代码的扩展地址
_SpNo=$C_ME
IF _SpNo==0
IF $MC_TOOL_MANAGEMENT_TOOLHOLDER==0
_SpNo=$AC_MSNUM
ENDIF
IF $MC_TOOL_MANAGEMENT_TOOLHOLDER<>0
_SpNo=$AC_MTHNUM
ENDIF
ENDIF
_SpTool=$TC_MPP6[9998,1]
;不带计算搜索,使用不带计算搜索时,将不执行换刀动作。
;IF($P_SEARCH2<>0)
; M17
;ENDIF
;模拟,测试,带计算程序段搜索
IF ($P_SIM==1) OR ($P_ISTEST==1); OR ($P_SEARCH==1)
M[_SpNo]=206
D1
M17
ENDIF
;读入主轴 1 的预选刀具和当前激活的刀具
GETSELT(_PrepareTool,_SpNo)
GETEXET(_ActiveTool,_SpNo)
;显示无预选刀具信息
IF _PrepareTool==-1
Msg(“****主轴”<<_SpNo<<“无预选刀具****”)
G04F3
MSG(“”)
M17
ENDIF
;刀具表中的主轴刀具与实际激活刀具不符
IF ($P_SIM==1) OR ($P_ISTEST==1); OR ($P_SEARCH==1)
IF _ActiveTool<>_SpTool
Msg(“****主轴”<<_SpNo<<“中,刀具表中的主轴刀具与实际激活刀具不符****”)
G04F3
MSG(“”)
M17
ENDIF
ENDIF
;预选刀具=主轴刀具
IF ((_PrepareTool==_SpTool) AND (_PrepareTool>0) AND (_SpTool>0))
MSG(“****主轴”<<_SpNo<<“预选刀具=主轴刀具****”)
; MSG(“”)
M17
ENDIF
;主轴无刀
IF ((_PrepareTool==_SpTool) AND (_PrepareTool==0) AND (_SpTool==0))
MSG(“****主轴”<<_SpNo<<“无刀且无预选刀****”)
G04F3
MSG(“”)
M17
ENDIF
IF (_Sptool>0) AND (T_LD1_EXIST<>0)
MSG(“**** 无换刀动作 原因:装载点刀位有刀,换刀错误 ****”)
G04F2
M0
M17
ENDIF
IF ((T_SP_EXIST<>0)AND(T_LD1_EXIST<>0))
MSG(“**** 无换刀动作 原因:装载点有刀和主轴有刀,换刀错误 ****”)
G04F2
M0
M17
ENDIF
TRAFOOF
DRFOF
SETMS(1)
;————————————————————————————————-
;无机械手,斗笠式流程
;——–STEP1,到达准备换刀位置—————————————————————
M84 ;CHECK
$A_DBB[42]=1
G153 G00 G90 Z=0 ;Z axis prepare position
STOPRE
M05 M09 M25 ;spindle stop
M97 G153 G00 G90 Y=-6 X=X_PREP SPOS[_SpNo]=SP_POS ;Door open, Y axis prepare position, spindle position, X axis prepare position
STOPRE
;——–Step2,还刀—————————————————————————
IF (_Sptool>0)
T[_SpNo]=0
STOPRE
$A_DBB[40]=2
STOPRE
M94 ;等待刀库旋转到位
G09 G153 G00 G90 Z=Z_CHAN ;Z axis tool change position
G09 G153 G00 G90 X=X_CHAN+50 ;X axis tool change position
G09 G153 G01 G90 F10000 X=X_CHAN
ELSE
M96 ;判断主轴是否有刀
G09 G153 G00 G90 Z=Z_PREP X=X_PREP ;Z axis intermediate position
ENDIF
STOPRE
;——–Step3,松刀抬Z轴———————————————————————
IF (_Sptool>0)
IF ($TC_DP1[_Sptool,1]==710)
M[_SpNo]=206
M92 ;Unclamp tool
D0
G09 G153 G01 F10000 G90 Z=Z_PREP ;Z axis intermediate position, tools break detective
STOPRE
IF (_PrepareTool==0)
M5
M93 ;Clamp tool
ENDIF
ENDIF
ENDIF
STOPRE
IF (_Sptool>0)
IF ($TC_DP1[_Sptool,1]<>710)
M[_SpNo]=206
M92 ;Unclamp tool
D0
G09 G153 G01 F10000 G90 Z=Z_PREP M82 ;Z axis intermediate position, tools break detective
IF ($A_DBB[41]==1) ;If tools broken Z&X go to prepare position and stop
M92 ;Unclamp tool
G09 G153 G01 F10000 G90 Z=Z_PREP
M93 ;Clamp tool
G09 G153 G01 F10000 G90 X=X_PREP
$A_DBB[42]=0
AB:
M0
GOTOB AB
M17
ENDIF
STOPRE
IF (_PrepareTool==0)
M5
M93 ;Clamp tool
ENDIF
ENDIF
ENDIF
STOPRE
;——–Step4,抓新刀—————————————————————–
IF (_PrepareTool>0)
IF ($TC_DP1[_PrepareTool,1]<>710)
T[_SpNo]=$TC_TP2[_PrepareTool]
STOPRE
$A_DBB[40]=1
STOPRE
M94 ;等待刀库旋转到位
M92 ;Unclamp tool
M82 G09 G153 G01 F20000 G90 X=X_CHAN ;X axis change position, tools break detective
IF ($A_DBB[41]==1) ;If tools broken Z&X go to prepare position and stop
M92 ;Unclamp tool
G09 G153 G01 F10000 G90 Z=Z_PREP
M93 ;Clamp tool
G09 G153 G01 F10000 G90 X=X_PREP
$A_DBB[42]=0
ABC:
M0
GOTOB ABC
M17
ENDIF
STOPRE
G09 G153 G00 G90 Z=Z_CHAN+30 ;Z axis slow position
G09 G153 G01 F5000 G90 Z=Z_CHAN ;Z axis change position
M5
M[_SpNo]=206
M93 ;Clamp tool
D1
ENDIF
ENDIF
STOPRE
IF (_PrepareTool>0)
IF ($TC_DP1[_PrepareTool,1]==710)
T[_SpNo]=$TC_TP2[_PrepareTool]
STOPRE
$A_DBB[40]=1
STOPRE
M94 ;等待刀库旋转到位
M92 ;Unclamp tool
G09 G153 G01 F20000 G90 X=X_CHAN ;X axis change position, tools break detective
G09 G153 G00 G90 Z=Z_CHAN+30 ;Z axis slow position
G09 G153 G01 F5000 G90 Z=Z_CHAN ;Z axis change position
M5
M[_SpNo]=206
M93 ;Clamp tool
D1
ENDIF
ENDIF
STOPRE
;——–Step5,回准备位置——————————————————————-
G09 G153 G0 G90 X=X_PREP
$A_DBB[42]=0
STOPRE
M98 G09 G153 G0 G90 Z=0
SETPIECE(1) ;tool life monitor
STOPRE
M17
程序文件下载