当前位置:首页 >> 机械/仪表 >>

802D换刀用户程序


%_N_CMD_ACK_SPF ;$PATH=/_N_CUS_DIR PROC CMD_ACK(INT T_CMD) SAVE DISPLOF SBLOF $A_DBB[1]=0 $A_DBB[2]=0 ;清除命令字 IF T_CMD<>10 GOTOF _AUX ;判断刀库旋转方向 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv _ZSFR[2]=$MN_USER_DATA_INT[15]/2 ;最大刀位数/2 IF _TM[0]<>3 GOTOF _L_PT $A_DBW[4]=$P_TOOLP ;目标刀位送到 PLC _ZSFR[0]=$P_TOOLNO-$A_DBW[6] IF _ZSFR[0]==0 GOTOF _BB_CC $A_DBW[4]=$P_TOOLNO GOTOF _R_DIF _BB_CC: IF _TM[19]<>3 GOTOF _DD_EE GOTOF _N_MGZ _DD_EE: _ZSFR[0]=$P_TOOLP-$A_DBW[6] GOTO _R_DIF _FF_AD: _ZSFR[0]=$P_TOOLP-$P_TOOLNO GOTOF _R_DIF _L_PT: $A_DBW[4]=$P_TOOLP ;目标刀位送到 PLC _ZSFR[0]=$P_TOOLP-$A_DBW[6] _R_DIF: IF _ZSFR[0]==0 GOTOF _N_MGZ ;刀库当前刀位等于编程刀具刀库无需旋 转 IF (((_ZSFR[0]>0)AND(_ZSFR[0]<=_ZSFR[2]))OR((_ZSFR[0]<0)AND(_ZSFR[0]<-_ZSFR[2]))) GOTOF _MGZ_P IF (((_ZSFR[0]>0)AND(_ZSFR[0]>=_ZSFR[2]))OR((_ZSFR[0]<0)AND(_ZSFR[0]>-_ZSFR[2]))) GOTOF _MGZ_N _MGZ_P: STOPRE $A_DBB[0]=5 GOTOF _Z_POS _MGZ_N: STOPRE $A_DBB[0]=6 ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _Z_POS: ; Z 轴进入还刀准备位置 G153 G1 Z=$MN_USER_DATA_FLOAT[1] F=$MN_USER_DATA_FLOAT[4] GOTOF _WAITING _AUX: $A_DBB[0]=T_CMD _WAITING: IF $MN_USER_DATA_HEX[15] B_AND 'B10000000'

MSG("<<<等待>>>: 命令字$A_DBB[0]="<<$A_DBB[0]<<"送到 PLC") ENDIF _W_CMD: ;等待 PLC 接受命令 IF $A_DBB[1]<>$A_DBB[0] GOTOB _W_CMD IF $MN_USER_DATA_HEX[15] B_AND 'B10000000' MSG("<<<等待>>>: 命令$A_DBB[0]="<<$A_DBB[0]<<"完成") ENDIF _W_ACK: ;等待 PLC 完成任务 IF $A_DBB[2]<>$A_DBB[1] GOTOB _W_ACK _N_MGZ: RET %_N_FIXPOINT_SPF ;$PATH=/_N_CUS_DIR PROC FIXPOINT SAVE DISPLOF SBLOF IF $MN_USER_DATA_HEX[15] B_AND 'B00000001' ENDIF IF $MN_USER_DATA_HEX[15] B_AND 'B00000010' ENDIF RET

; ;

%_N_INI_SPF ;$PATH=/_N_CUS_DIR PROC INI SAVE DISPLOF ;================================================================= ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ;II 刀库初始化 II ;II 初始化的目的是将 PLC 的刀库计数器与实际刀库位置对应 II ;II 1. 如果刀库具有零点开关, 则可在任何时候回零 II ;II 2. 如果刀库没有零点开关, 则需在刀库手动方式下将刀库转到 II ;II 一号刀位, 然执行该初始化程序 II ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IF $A_DBB[9]==0 GOTOF _INI_OK CMD_ACK(2) ;发出刀库缩回命令且等待命令应答 _INI_OK: MSG("<<<等待>>>: 刀库初始化进行中 (主轴应无刀)") CMD_ACK(9) ;发出初始化命令且等待命令应答 T0 ; T0 M96 ; T0 activate MSG("刀库初始化结束. 注意: 初始化后主轴不能有刀") G4 F5 $A_DBB[0]=0 $A_DBB[1]=0 $A_DBB[2]=0 _E_INI: M17

%_N_MM19_SPF ;$PATH=/_N_CUS_DIR PROC MM19 SAVE DISPLOF M03 S200 G04 F1 SPOS=$MN_USER_DATA_FLOAT[0] M17

%_N_PLCPROG_LST ;$PATH=/_N_CUS_DIR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128

129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175

176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222

223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255  %_N_TOOL_SPF ;$PATH=/_N_CUS_DIR PROC TOOL SAVE DISPLOF SBLOF ;================================================================= ; 注: 仿真或程序测试时无换刀动作, 但刀具参数应生效 ;================================================================= ;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ; 由正常方式进入程序测试方式后第一次换刀 SS IF ((_TM[5]==0)AND($P_ISTEST==1)) GOTOF _SIMU1 ;SS ; 程序测试方式下换刀 SS IF ((_TM[5]==1)AND($P_ISTEST==1)) GOTOF _SIMU2 ;SS ; 由程序测试方式返回正常方式后第一次换刀 SS IF ((_TM[5]==1)AND($P_ISTEST==0)) GOTOF _E_SIM ;SS

;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS M23 _T_CHG: IF $P_TOOLP==$P_TOOLNO GOTOF _NOCHG1 IF $P_TOOLP>$MN_USER_DATA_INT[15] GOTOF _NOCHG2 ; vvvvvv 检测换刀循环所需的参数 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv IF $MN_USER_DATA_INT[15] ==0 GOTOF _E_PAR1;vv IF $MN_USER_DATA_FLOAT[1]==$MN_USER_DATA_FLOAT[2] GOTOF _E_PAR2;vv IF $MN_USER_DATA_FLOAT[3]==0 GOTOF _E_PAR3;vv IF $MN_USER_DATA_FLOAT[4]==0 GOTOF _E_PAR4;vv ; vvvvvv 检测换刀循环所需的参数 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ; vvvvvv 安全检测 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ??? 如果机床上既无刀库换刀位置有无刀检测开关 MD14512[15]BIT3=0 << ; ??? 又无主轴有无刀检测开关 MD14512[15] BIT4=0 << ; 则在任何手动操作 (手动松刀紧刀, 手动刀库旋转)后, 必须 << ; 对刀库进初始化 << IF ($MN_USER_DATA_HEX[15] AND 'B00001000')AND($A_DBB[11] AND 'H55') GOTOF _E_OP3 ; vvvvvv 安全检测 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ; vvvvvv 换刀准备 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv G500 ;取消工件坐标系 D0 ;取消刀具参数 _TM[0]=1 ;取刀标志 _TM[19]=1 ; vvvvvv 换刀准备 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ;====== 换刀动作分析 ============================================= IF ($P_TOOLP==0)AND($P_TOOLNO<>0) GOTOF _T_RET ;还刀 == IF ($P_TOOLP<>0)AND($P_TOOLNO==0) GOTOF _T_GET ;取刀 == IF ($P_TOOLP<>0)AND($P_TOOLNO<>0) GOTOF _T_EXC ;换刀 == ;====== 换刀动作分析 ============================================= GOTOF _EOSBR ;================================================================= ; 注意: 手动装刀后必须在 MDA 方式下运行 Txx M96 ; ; 手动卸刀后必须在 MDA 方式下运行 T0 M96 ; ;================================================================= _T_EXC: ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XX 换刀控制过程: 刀具交换: 先还刀, 再换刀 XX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX _TM[0]=3 ;刀具交换标志 XX _TM[19]=3 CMD_ACK(10) ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; _T_RET:

;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH ;HH 换刀控制过程: 还刀 HH ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH ; ??? 如果安装了刀库换刀位置有无刀检测开关 MD14512[15] BIT3=1 HH ; 则在还刀前必须检测刀库的换刀位置上是否有刀 HH IF ($MN_USER_DATA_HEX[15] B_AND 'B00001000')AND($A_DBB[11] B_AND 'H55') GOTOF _E_OP1 MSG(">>>> 换刀过程: 还刀--主轴刀具 T"<<$P_TOOLNO<<" 换回刀库内");H $A_DBB[3]='HAA' ;取消第二软限位 HH G90 G01 ; HH F= $MN_USER_DATA_FLOAT[4] ;提刀速度 HH G153 Z=$MN_USER_DATA_FLOAT[1] ;Z 轴进入准备位置 HH ; Z 轴进入换刀位置, 且主轴同时进行准停 HH FIXPOINT ;X, Y 轴移动刀固定点 HH M23 G153 Z=$MN_USER_DATA_FLOAT[2] SPOS=$MN_USER_DATA_FLOAT[0] ;HH ; ; HH IF ABS($AA_IM[SP]-$MN_USER_DATA_FLOAT[0])>0.001 GOTOF _E_OP4 ;HH ; 如果准停到位, 则刀库伸出 HH CMD_ACK(1) ;发出刀库伸出命令且等待命令应答 HH CMD_ACK(3) ;发出松刀命令且等待命令应答 HH F= $MN_USER_DATA_FLOAT[3] ;抓刀速度 HH G4 F2 G153 Z=$MN_USER_DATA_FLOAT[1] ;Z 轴返回准备位置 HH ; ; HH IF _TM[0]==3 GOTOF _T_LOC ;如果是换刀, 则找刀并取刀 HH ; 如果是只还刀, 则主轴紧刀, 刀库缩回, 还刀过程结束 HH CMD_ACK(4) ;发出紧刀命令且等待命令应答 HH CMD_ACK(2) ;发出刀库缩回命令且等待命令应答 HH T0 M96 ;主轴上无刀具, T0 生效 HH $A_DBB[3]='H00' ;激活第二软限位 HH ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH GOTOF _END ;>>>>>>>>>>>>>> 还刀结束返回 <<<<<<<<<<<<<<<<<<<<<< ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _T_LOC: ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ;XX 换刀控制过程: 换刀 XX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MSG(">>>> 换刀过程: 取刀--刀库刀具 T"<<$P_TOOLP<<" 装到主轴上");TT _TM[19]=1 CMD_ACK(10) ;发出刀库定位命令, 且等待命令应答 XX GOTOF _T_TAKE ; XX ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ; _T_GET: ;TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT

;TT 换刀控制过程: 取刀 TT ;TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT ; ??? 如果安装了主轴有无刀检测开关(MD14512[15] BIT4=1) TT ; 则在取刀前必须检测主轴上是否有刀 TT IF ($MN_USER_DATA_HEX[15] B_AND 'B00010000')AND($A_DBB[10] B_AND 'H55') GOTOF _E_OP2 MSG(">>>> 换刀过程: 取刀--刀库刀具 T"<<$P_TOOLP<<" 装到主轴上");TT $A_DBB[3]='HAA' ;取消第二软限位 TT G90 G01 ; TT CMD_ACK(10) ;发出刀库定位命令, 进入换刀准备位置, 等待命令应答 TT FIXPOINT ;X, Y 轴移动刀固定点 TT M23 SPOS= $MN_USER_DATA_FLOAT[0] ;主轴准停 TT IF ABS($AA_IM[SP]-$MN_USER_DATA_FLOAT[0])>0.001 GOTOF _E_OP4 ;TT CMD_ACK(1) ;发出刀库伸出命令且等待命令应答 TT CMD_ACK(3) ;发出松刀命令且等待命令应答 TT _T_TAKE: ; TT M98 F= $MN_USER_DATA_FLOAT[3] ;抓刀速度 TT G153 Z=$MN_USER_DATA_FLOAT[2] ;Z 轴进入换刀位置 TT M99 CMD_ACK(4) ;发出紧刀命令且等待命令应答 TT CMD_ACK(2) ;发出刀库缩回命令且等待命令应答 TT F= $MN_USER_DATA_FLOAT[4] ;提刀速度 TT G4 F1 G153 Z=$MN_USER_DATA_FLOAT[1] ;Z 轴回到换刀准备位置 TT T=$P_TOOLP M96 ;激活刀补 TT $A_DBB[3]='H00' ;激活第二软限位 TT ;TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT GOTOF _END ;>>>>>>>>>>>>>> 还刀结束返回 <<<<<<<<<<<<<<<<<<<<<< ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _E_SIM: ;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ;SS 换刀控制过程: 程序测试处理 SS ;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ;---------------------------------------------------------------SS T=_TM[6] ;恢复主轴刀具号 SS M96 ;主轴刀具参数生效 SS MSG("恢复主轴刀具号:"<<_TM[6]) ; SS G04 F5 ; SS _TM[5]=0 ;清除程序测试标记 SS _TM[6]=0 ; SS GOTOB _T_CHG ; SS _SIMU1: ; SS ;仿真方式时,T 功能生效, 刀具参数立即生效======================== SS _TM[5]=1 ;记录程序测试状态 SS _TM[6]=$P_TOOLNO ;记录主轴刀具号 SS

_SIMU2: ; SS T=$P_TOOLP ; SS M96 ; SS ;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS ; GOTOF _END ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ;%% 故障信息显示 %% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _TG_ERR: ;%% MSG("*** 换刀错误 *** 主轴有刀时不能取刀") ;%% M00 ;%% GOTOF _EOSBR ;%% _NOCHG1: ;%% MSG("### 没有换刀: 编程刀具等于主轴刀具") ;%% G04 F1 ;%% GOTOF _EOSBR ;%% _NOCHG2: ;%% MSG("### 没有换刀: 编程刀号超过最大值. 循环启动继续或复位") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_PAR1: ;%% MSG("*** PLC 参数错: 刀盘刀位数 MD14510[15] 没有设定") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_PAR2: ;%% MSG("*** PLC 参数错: 换刀位置 14514[1]等于换刀准备位置 14514[2]");%% M00 ;%% GOTOF _EOSBR ;%% _E_PAR3: ;%% MSG("*** PLC 参数错: 抓刀速度 MD14514[3] 等于 0") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_PAR4: ;%% MSG("*** PLC 参数错: 提刀速度 MD14514[4] 等于 0") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_OP1: ;%% MSG("*** 刀库安全互锁: 还刀时, 刀库换刀位置上有刀") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_OP2: ;%% MSG("*** 刀库安全互锁: 取刀时, 主轴上已经有刀") ;%% M00 ;%% GOTOF _EOSBR ;%% _E_OP3: ;%% MSG("*** 刀库安全互锁: 刀库手动操作后, 刀库应作初始化") ;%%

M00 ;%% GOTOF _EOSBR ;%% _E_OP4: ;%% MSG("*** 换到故障: 主轴准停失败, 请检查主轴") ;%% M00 ;%% GOTOF _EOSBR ;%% ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% _END: M05 D1 ; 主轴恢复速度控制方式 _EOSBR: MSG(" ") M17 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>




相关文章:
FANUC 0i系统与SINUMERIK 802D系统的编程指令分析及应用
FANUC 0i 系统与 SINUMERIK 802D 系统的编程指令分析及应用 作者:周虹 来源:CAD...T 后为刀具号,一般取 2 位;M98 为调用换刀程序;P9000 为换刀程序号。...
Siemens_802D编程手册
Siemens_802D编程手册_机械/仪表_工程科技_专业资料。NC 编程基本原理 程序名称 ...功能 用 G75 可以返回到机床中某个固定点, 比如换刀点。固定点位置固定地存储...
SIEMENS802D加工中心操作
SIEMENS802D加工中心操作_数学_自然科学_专业资料。...1.3.3 多把刀对刀 假设以 1 号刀为基准刀,...1.4 设定参数 1.4.1 设置运行程序时的控制参数 1....
利用西门子802D系统现实数控车快速对刀
利用西门子802D系统现实数控车快速对刀_机械/仪表_工程...(换 刀时与机床,工件不干涉点出),通常为机床参考...相应信息填入已建立好的程序空格处,即可完成对 刀....
SIEMENS802D数控车床操作
SIEMENS 802D 标准车床面板操作 1.1 面板简介 SIEMENS 802D 面板介绍 按钮名称...输入换刀指令“T02D01” ,然后依次点击 和 来运行 MDA 程序;运行 完毕之后,...
MasterCAM对西门子802D后置处理
模具加工时,中间的换刀过程是通过手动来完成,G54 的 Z 轴再定位一般用滚刀法来确定,且西门子 802D 在后处理器中不能识别 G43 指令,因此,G43 指令在程序中必须...
FANUC 0i系统和SINUMERIK 802D
FANUC 0i系统和SINUMERIK 802D_电脑基础知识_IT/计算机_专业资料。FANUC 0i ...T 后为刀具号,一般取 2 位;M98 为调用换刀程序;P9000 为换刀程序号。...
siemens 802D 编程手册
siemens 802D 编程手册NC 编程基本原理 程序名称 在...用 G75 可以返回到机床中某个固定点, 比如换刀点...西门子802D PLC用户接口 24页 免费 SIEMENS 802D参数...
802d调试
12)PLC 程序中 MCP-802D V10000002.7 进给使能的生效,通过用户自定义键 K1(...(V380X0002.1 X:为 1) 17)带 T 刀架时应在刀具表中设定所要的所有刀号...
802D简介
还有子程序 MCP-802D 的网络 10 中的线圈 M251.7...根据用户报警表可查得是 V16000003.0; 然后在 PLC...解决方法:检查温度报警的开关是否损坏,如损坏则更换...
更多相关标签: