July 2013 8.15 Tool changer 1607
0 BEGIN PGM TOOLCALL MM
1 * - ? DATUM SHIFT PLC OFF/ON
2 * - 3D ROTATION OFF/ON
3 * - READ TOOL CALL DATA
4 FN18: SYSREAD Q1 = ID60 NR1 IDXO ; Tool number
5 FN18: SYSREAD Q2 = ID60 NR2 IDXO ; Tool axis
6 FN18: SYSREAD Q3 = ID60 NR3 IDXO ; Spindle speed
7 FN18: SYSREAD Q4 = ID60 NR4 IDXO ; Oversize in tool length DL
8 FN18: SYSREAD Q5 = ID60 NR5 IDXO ; Oversize in tool radius DR
9 FN18: SYSREAD Q6 = ID60 NR7 IDX0 ; Oversize in tool radius DR2
10 FN18: SYSREAD Q7 = ID60 NR8 IDX0 ; Tool index
11 * - T-NEW POSITION AXIS 7 (FKA)
12 FN 18: SYSREAD Q6 = ID2000 NR70 IDX98; Read W98
13 * - POSITION AXIS 8 (FK)
14 FN 18: SYSREAD Q7 = ID2000 NR80 IDX98; Read D98
15 * - TC Z AXIS SAFETY CLEARANCE
16 L Z+0 R0 F MAX M91
17 * - ALIGN SPINDLE M21
18 M21
19 FN 18: SYSREAD Q8 = ID1000 NR4210 IDX11 ; Read MP4210.11
20 FN 18: SYSREAD Q9 = ID1000 NR4210 IDX12 ; Read MP4210.12
21 FN 18: SYSREAD Q10 = ID230 NR3 IDX2 ; Pos. software limit switch Y
22 * - OPEN TRAVERSE RANGE Y
23 Q9 = Q6 + 0.5
24 FN 17: SYSWRITE ID230 NR3 IDX2 = +Q9
25 * - Z AXIS APPROACH TC AREA
26 L Y+Q6 R0 F MAX M91
27 L Z+Q7 R0 F MAX M91
28 * - TOOL MACRO ACTIVE ?
29 FN 20: WAIT FOR SYNC M1999==1
30 * - WRITE TOOL CALL DATA ->PLC
31 FN 9: IF +Q2 EQU +0 GOTO LBL 11
32 FN 9: IF +Q2 EQU +1 GOTO LBL 12
33 FN 9: IF +Q2 EQU +2 GOTO LBL 13
34 FN 9: IF +Q2 EQU +3 GOTO LBL 14
35 FN 9: IF +Q2 EQU +4 GOTO LBL 15
36 FN 9: IF +Q2 EQU +5 GOTO LBL 16
37 TOOL CALL Q1 SQ3 DL+Q4 DR+Q5
38 FN 9: If +0 EQU +0 GOTO LBL 17
39 LBL 11
40 TOOL CALL Q1 .Q7 X SQ3 DL+Q4 DR+Q5 DR2:+Q6
41 FN 9: If +0 EQU +0 GOTO LBL 17
42 LBL 12
43 TOOL CALL Q1 .Q7 Y SQ3 DL+Q4 DR+Q5 DR2:+Q6
44 FN 9: If +0 EQU +0 GOTO LBL 17
45 LBL 13
46 TOOL CALL Q1 .Q7 Z SQ3 DL+Q4 DR+Q5 DR2:+Q6
47 FN 9: If +0 EQU +0 GOTO LBL 17
48 LBL 14
49 TOOL CALL Q1 .Q7 U SQ3 DL+Q4 DR+Q5 DR2:+Q6
50 FN 9: If +0 EQU +0 GOTO LBL 17
51 LBL 15
52 TOOL CALL Q1 .Q7 V SQ3 DL+Q4 DR+Q5 DR2:+Q6
53 FN 9: If +0 EQU +0 GOTO LBL 17
54 LBL 16
55 TOOL CALL Q1 .Q7 W SQ3 DL+Q4 DR+Q5 DR2:+Q6