《换刀用户程序(802D)》由会员分享,可在线阅读,更多相关《换刀用户程序(802D)(13页珍藏版)》请在金锄头文库上搜索。
1、%_N_CMD_ACK_SPF ;$PATH=/_N_CUS_DIR PROC CMD_ACK(INT T_CMD) SAVE DISPLOF SBLOF $A_DBB1=0 $A_DBB2=0 ;清除命令字 IF T_CMD3 GOTOF _L_PT $A_DBW4=$P_TOOLP ;目标刀位送到PLC _ZSFR0=$P_TOOLNO-$A_DBW6 IF _ZSFR0=0 GOTOF _BB_CC $A_DBW4=$P_TOOLNO GOTOF _R_DIF _BB_CC: IF _TM190)AND(_ZSFR00)AND(_ZSFR0=_ZSFR2)OR(_ZSFR0-_ZSFR2
2、) GOTOF _MGZ_N _MGZ_P: STOPRE $A_DBB0=5 GOTOF _Z_POS _MGZ_N: STOPRE $A_DBB0=6 ; _Z_POS: ; Z轴进入还刀准备位置 G153 G1 Z=$MN_USER_DATA_FLOAT1 F=$MN_USER_DATA_FLOAT4 GOTOF _WAITING _AUX: $A_DBB0=T_CMD _WAITING: IF $MN_USER_DATA_HEX15 B_AND B10000000 MSG(“: 命令字 $A_DBB0=“$A_DBB0 GOTOB _W_CMD IF $MN_USER_DATA_HEX
3、15 B_AND B10000000 MSG(“: 命令 $A_DBB0=“$A_DBB1 GOTOB _W_ACK _N_MGZ: RET %_N_FIXPOINT_SPF ;$PATH=/_N_CUS_DIR PROC FIXPOINT SAVE DISPLOF SBLOF IF $MN_USER_DATA_HEX15 B_AND B00000001 ; ENDIF IF $MN_USER_DATA_HEX15 B_AND B00000010 ; ENDIF RET %_N_INI_SPF ;$PATH=/_N_CUS_DIR PROC INI SAVE DISPLOF ;= ;IIIII
4、IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII ;II 刀库初始化 II ;II 初始化的目的是将PLC的刀库计数器与实际刀库位置对应 II ;II 1. 如果刀库具有零点开关, 则可在任何时候回零 II ;II 2. 如果刀库没有零点开关, 则需在刀库手动方式下将刀库转到 II ;II 一号刀位 , 然执行该初始化程序 II ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IF $A_DBB9=0 GOTOF _INI_OK CMD_
5、ACK(2) ;发出刀库缩回命令且等待命令应答_INI_OK: MSG(“: 刀库初始化进行中 ( 主轴应无刀 )“) CMD_ACK(9) ;发出初始化命令且等待命令应答 T0 ; T0 M96 ; T0 activate MSG(“刀库初始化结束. 注意 : 初始化后主轴不能有刀“) G4 F5 $A_DBB0=0 $A_DBB1=0 $A_DBB2=0 _E_INI: M17 %_N_MM19_SPF ;$PATH=/_N_CUS_DIR PROC MM19 SAVE DISPLOF M03 S200 G04 F1 SPOS=$MN_USER_DATA_FLOAT0 M17 %_N_PL
6、CPROG_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 9
7、4 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
8、 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
9、 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 (_TM5=0)AND($P_ISTEST=1) GOTOF _SIMU1 ;SS ; 程序测试方式下换刀 SS IF (_TM5=1)A
10、ND($P_ISTEST=1) GOTOF _SIMU2 ;SS ; 由程序测试方式返回正常方式后第一次换刀 SS IF (_TM5=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_INT15 GOTOF _NOCHG2 ; vvvvvv 检测换刀循环所需的参数 vvvvvvvvvvvvvvvv
11、vvvvvvvvvvvvvvvvvv IF $MN_USER_DATA_INT15 =0 GOTOF _E_PAR1;vv IF $MN_USER_DATA_FLOAT1=$MN_USER_DATA_FLOAT2 GOTOF _E_PAR2;vv IF $MN_USER_DATA_FLOAT3=0 GOTOF _E_PAR3;vv IF $MN_USER_DATA_FLOAT4=0 GOTOF _E_PAR4;vv ; vvvvvv 检测换刀循环所需的参数 vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ; vvvvvv 安全检测 vvvvvvvvvvvvvvvvvv
12、vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv ; ? 如果机床上既无刀库换刀位置有无刀检测开关MD1451215BIT3=0 0) GOTOF _T_RET ; 还刀 = IF ($P_TOOLP0)AND($P_TOOLNO 换刀过程 : 还刀 - 主轴刀具 T“0.001 GOTOF _E_OP4 ;HH ; 如果准停到位, 则刀库伸出 HH CMD_ACK(1) ;发出刀库伸出命令且等待命令应答 HH CMD_ACK(3) ;发出松刀命令且等待命令应答 HH F= $MN_USER_DATA_FLOAT3 ;抓刀速度 HH G4 F2 G153 Z=$MN_USER_DATA_FLOAT1 ;Z 轴返回准备位置 HH ; ; HH IF _TM0=3 GOTOF _T_LOC ;如果是换刀 , 则找刀并取刀 HH ; 如果是只还刀, 则主轴紧刀 , 刀库缩回 , 还刀过程结束 HH CMD_ACK(4) ;发出紧刀命令且等待命