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

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 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>




相关文章:
换刀用户程序(802D)
换刀用户程序(802D)_机械/仪表_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 换刀用户程序(802D)_机械/仪表_工程科技_专业资料。%_N_CMD_ACK_SPF ...
FANUC与SIEMENS----换刀
换回刀库,主轴上无刀 程序结束 究竟用何种选刀和...(三)SIEMENS 孔加工固定循环 802D、810D、840D ...应用 钻中心孔、 钻孔 锪平、钻沉 孔、 粗镗平底...
加工中心自动换刀过程PLC编程技巧
加工中心自动换刀过程PLC编程技巧_机械/仪表_工程科技_专业资料。加工程序和 PLC...下面就 XH756B 系列卧式加工中心 配 SIEMENS802D 数控系统时,在自动换刀过程中...
加工中心自动换刀过程PLC编程技巧
加工中心自动换刀过程 PLC 编程技巧加工程序和 PLC 程序关系示意图 PLC 程序是...下面就 XH756B 系列卧式加工中心配 SIEMENS802D 数控系统时,在自 动换刀过程...
用户宏程序
例如非圆曲线的加工程序,自动 换刀,自动交换工作台,数控滚齿机的窜刀程序,数控...返回主程序 SIEMENS 802D 编程: R1:椭圆 X 向半轴 a 的长度 R2: 椭圆 Z ...
用户宏程序
例如非圆曲线的加工程序,自动换刀,自动交换工作台,数控滚齿机的窜刀程序, 数控...[#102 LE 126.86] GOTO 40; 条件判断, 极角<=126.86 度 SIEMENS 802D ...
表1-5 加工程序
加工程序 程序说明 程序程序初始化 换刀 SIEMENS 802D 系统程序 AA11.MPF; G95 G71 G40; T1D1; G00 X100.0 Z100.0; M03 S1000; G00 X62.0 Z2.0; ...
FUANC系统调试 2
2.0 802D 斗笠刀库使用说明 1、802D 斗笠式刀库补包括以下文件 刀库乱时重新复位程序:T0.MPF 换刀循环程序(共五个,储存在用户循环中) CMD-ACK.SPF FIXPOINT...
用O系统改造时编制的基本PMC程序:
0.0分 (0人评价)暂无用户评价 我要评价 ...802D盘式刀库 33页 免费 加工中心自动换刀过程PLC编...用O 系统改造时编制的基本 PMC 程序: ;输出 CNC ...
FANUC 0i系统和SINUMERIK 802D
该文作者主要针对加工中心上应用 FANUC 0i 系统和 SINUMERIK 802D 系统在编程...T 后为刀具号,一般取 2 位;M98 为调用换刀程序;P9000 为换刀子程序号。...
更多相关标签:
西门子802d钻孔程序 | 西门子802d程序传输 | abaqus用户子程序 | 微信小程序 用户信息 | abaqus用户子程序入门 | 微信小程序 用户登录 | 用户程序 | win10多用户共享程序 |