Subprogram and Macro Programming Example
|
Subprogram for Fixed Magazine Tool Change and Tool Length Offset Setting (O9001.cnc) |
|
O9001(TOOL CHANGE) (---TOOL NUMBER CHECK --------------------------) N049 IF #8122 == 0 THEN GOTO 800(NO TOOL,PROBING) N050 #10 = #8022 (REQUESTED TOOL) N051 IF #10 == #100 THEN GOTO 800(T_NEW == T_OLD) N052 IF #100 < 0 THEN GOTO 900 (T_OLD < 0) N053 IF #100 > #109 THEN GOTO 900 (T_OLD > T_MAX) N054 IF #10 < 0 THEN GOTO 900 (T_NEW < 0) N055 IF #10 > #109 THEN GOTO 900 (T_NEW > T_MAX) #101 = 0 (---PREPARATION --------------------------------) N070 G90 G53 G00 Z0. (Z REF) N071 M5 (SPINDLE STOP) N072 M50 (CONVEYOR UP) M52 (BRUSH UP) G04 P1000 G49 N073 IF #100 == 0 THEN GOTO 200 (T_OLD = 0) (---RELEASE TOOL------------------------------) N100 #11 = #100 - 1 (T1-MAX->T0-T_MAX-1) N101 #12 = #11 * 5 (ADR START) N102 #13 = #12 + 4010 (ADR OFFSET) N103 #15 = #10013 (TOOL X) N104 #13 = #13 + 1 (ADR++) N105 #16 = #10013 (TOOL Y) N106 #13 = #13 + 1 (ADR++) N107 #17 = #10013 (TOOL Z) N108 #13 = #13 + 1 (ADR++) N109 #18 = #10013 (TOOL Y2) N110 #13 = #13 + 1 (ADR++) N111 #19 = #10013 (TOOL F) N112 #13 = #13 + 1 (ADR++) N113 #20 = #15 + #107 (TOOL X + X RETRACT) N114 #21 = #16 + #108 (TOOL Y + Y RETRACT) (---TOOL RELEASE MOVEMENT---------------------) N120 G90 G00 G53 X#20 Y#21 (TOOL XY RETRACT) N121 G90 G00 G53 Z#18 (TOOL Z) N122 G90 G01 G53 Z#17 F#106 (TOOL Z2) N122 G90 G01 G53 X#15 Y#16 F#19 (TOOL XY) N123 G04 P500 N124 M22 (TOOL UNCLAMP) M23 (TURN ON AIR) #101 = 1 N125 #100 = 0 (EMPTY TOOL REGISTRATION) T0 #95 = 0 N126 G04 P250 N127 IF #10 <> 0 THEN GOTO 200 (T_NEW = 0) N128 G53 G90 Z0. (Z REF) N129 M21 (TOOL CLAMP) M24 (TURN OFF AIR) T0 GOTO 990 (---TOOL TAKE---------------------------------) N200 #11 = #10 - 1 (T1_MAX->T0-T_MAX-1) N201 #12 = #11 * 5 (ADR START) N202 #13 = #12 + 4010 (ADR OFFSET) N203 #15 = #10013 (TOOL X) N204 #13 = #13 + 1 (ADR++) N205 #16 = #10013 (TOOL Y) N206 #13 = #13 + 1 (ADR++) N207 #17 = #10013 (TOOL Z) N208 #13 = #13 + 1 (ADR++) N209 #18 = #10013 (TOOL Y2) N210 #13 = #13 + 1 (ADR++) N211 #19 = #10013 (TOOL F) N212 #13 = #13 + 1 (ADR++) N213 #20 = #15 + #107 (TOOL X + X RETRACT) N214 #21 = #16 + #108 (TOOL Y + Y RETRACT) (---TOOL TAKE MOVEMENT------------------------) N215 IF #101 == 1 THEN GOTO 220 #101 = 0 N216 G90 G53 G00 Z0. (Z REF) N217 G90 G00 G53 X#15 Y#16 (TOOL XY) N220 G90 G00 G53 Z#18 (TOOL Z) M22 (TOOL UNCLAMP) #101 = 0 N221 G90 G00 G53 X#15 Y#16 (TOOL XY) N222 G90 G01 G53 Z#17 F#106 (TOOL Z) N223 M21 (TOOL CLAMP) M24 (TURN OFF AIR) N224 G04 P250 N122 G90 G01 G53 X#20 Y#21 F#19(TOOL XY RETRACT) N225 G91 G00 G28 Z0. (Z HOME) N226 #100 = #10 (TOOL REGISTRATION) T#100 N227 GOTO 800 (---PROBING-----------------------------------) N800 IF #8102 == 0 THEN GOTO 990 (Z CMD?) IF #100 <= 0 THEN GOTO 901 (NO TOOL) N801 G49 G91 G00 G28 Z0. (Z HOME) M50 (CONVEYOR UP) M52 (BRUSH UP) G49 N802 G90 G00 G53 X#170 Y#171 (PROBE XY) N803 G00 G00 G53 Z#172 N804 G90 G01 G59.4 G31 Z#173 F#174 N805 G91 G00 Z#176 (Z RETRACT) N806 G90 G01 G59.4 G31 Z#173 F#175 G54 G04 P250 N807 #22 = #2002 - #177 N808 G90 G10 L1 P#100 R#22 G43 H#100 N809 G91 G00 G28 Z0. (Z HOME) N810 G53 G90 G00 Z0.0 N811 GOTO 990 (---EXIT-------------------------------------) N900 ALM 0 N901 ALM 1 N990 G90 G54 G43 H#100 #101 = 0 #95 = #100 N999 M99 (RETURN) % |
