0  BEGIN PGM TOOLCALL MM 
1  * - TC TOOL CALL Macro read values programmed
2  *   - M140 retraction from contour (tilted working plane)
3  *   - M118 Superimposing handwheel off
4  *   - M128 must be switched off before TOOL CALL
5  *   - 3D rotation off (optional)
6  *   - TCPM off (otional)
7  *
8  WRITE TO PLC KEY "WG_Nummer_aktives_NC_Macro" =+1001 ; NUMBER NC MACRO ON
9  * - Data Tnew
10 FN 18: SYSREAD Q1 = ID60 NR1 IDX0 ; Tool number T
11 FN 18: SYSREAD Q2 = ID60 NR2 IDX0 ; Tool axis (XYZ---UVW)
12 FN 18: SYSREAD Q3 = ID60 NR3 IDX0 ; Spindle speed S
13 FN 18: SYSREAD Q4 = ID60 NR4 IDX0 ; Oversize T length DL
14 FN 18: SYSREAD Q5 = ID60 NR5 IDX0 ; Oversize T radius DR
15 FN 18: SYSREAD Q6 = ID60 NR7 IDX0 ; Oversize T radius DR2
16 FN 18: SYSREAD Q7 = ID60 NR8 IDX0 ; Tool index
17 FN 18: SYSREAD Q8 = ID52 NR1 IDXQ1 ; Tnew pocket no
18 FN 18: SYSREAD Q9 = ID52 NR1 IDX0 ; T in spindle
19 FN 18: SYSREAD Q10 = ID60 NR6 IDX0 ; TOOL CALL by M101
20 * - TOOL CALL by M101
21 FN 9: IF +Q10 EQU +1 GOTO LBL "M101_active"
22 * - Data Told
23 FN 18: SYSREAD Q11 = ID50 NR1 IDX0 ;T length L
24 FN 18: SYSREAD Q12 = ID50 NR4 IDX0 ;Oversize T length DL
25 Q13 = 50 ;Safety distance
26 * - M140 retraction from contour (tilted working plane)
27 Q14 = Q11 + Q12 + Q13
28 ; L M140 MB+Q14
29 * - M118 Superimposing handwheel off
30 L M118
31 * - M114 TCPM off
32 L M115
33 * - M128 must be switched off before TOOL CALL
34 L M129
35 * - Tnew in not in pocket (Tmanu)
36 FN 9: IF +Q8 EQU -1 GOTO LBL "Tnew_Tmanu"
37 * - Head axis to TC position
38 ; * - 3D rotation off
39 ; LBL "3D_ROT_A"
40 ; FN 18: SYSREAD Q21 = ID210 NR5 IDX1 ; 3D-ROT A
41 ; FN 9: IF +Q21 EQU +0 GOTO LBL "3D_ROT_B"
42 ; CYCL DEF 19.0 BEARBEITUNGSEBENE
43 ; CYCL DEF 19.1  A+0
44 ; LBL "3D_ROT_B"
45 ; FN 18: SYSREAD Q22 = ID210 NR5 IDX2 ; 3D-ROT B
46 ; FN 9: IF +Q22 EQU +0 GOTO LBL "3D_ROT_C"
47 ; CYCL DEF 19.0 BEARBEITUNGSEBENE
48 ; CYCL DEF 19.1  B+0
49 ; LBL "3D_ROT_C"
50 ; FN 18: SYSREAD Q23 = ID210 NR5 IDX3 ; 3D-ROT C
51 ; FN 9: IF +Q23 EQU +0 GOTO LBL "3D_ROT_off"
52 ; CYCL DEF 19.0 BEARBEITUNGSEBENE
53 ; CYCL DEF 19.1  C+0
54 ; LBL "3D_ROT_off"
55 ; CYCL DEF 19.0 BEARBEITUNGSEBENE
56 ; CYCL DEF 19.1
57 ; * - Globally effective coordinate transformation
58 ; FN 17: SYSWRITE ID 420 NR0 IDX0 =+0
59 ; FN 20: WAIT FOR  SYNC
60 ;
61 LBL "Tnew_Tmanu"
62 LBL "M101_active"
63 * - TOOL CALL data to PLC/NC
64 FN 9: IF +Q2 EQU +0 GOTO LBL "TOOL_CALL_X"
65 FN 9: IF +Q2 EQU +1 GOTO LBL "TOOL_CALL_Y"
66 FN 9: IF +Q2 EQU +2 GOTO LBL "TOOL_CALL_Z"
67 FN 9: IF +Q2 EQU +6 GOTO LBL "TOOL_CALL_U"
68 FN 9: IF +Q2 EQU +7 GOTO LBL "TOOL_CALL_V"
69 FN 9: IF +Q2 EQU +8 GOTO LBL "TOOL_CALL_W"
70 TOOL CALL Q1 SQ3 DL+Q4 DR+Q5
71 FN 9: IF +0 EQU +0 GOTO LBL "END"
72 LBL "TOOL_CALL_X"
73 TOOL CALL Q1 .Q7 X SQ3 DL+Q4 DR+Q5 DR2:+Q6
74 FN 9: IF +0 EQU +0 GOTO LBL "END"
75 LBL "TOOL_CALL_Y"
76 TOOL CALL Q1 .Q7 Y SQ3 DL+Q4 DR+Q5 DR2:+Q6
77 FN 9: IF +0 EQU +0 GOTO LBL "END"
78 LBL "TOOL_CALL_Z"
79 TOOL CALL Q1 .Q7 Z SQ3 DL+Q4 DR+Q5 DR2:+Q6
80 FN 9: IF +0 EQU +0 GOTO LBL "END"
81 LBL "TOOL_CALL_U"
82 TOOL CALL Q1 .Q7 U SQ3 DL+Q4 DR+Q5 DR2:+Q6
83 FN 9: IF +0 EQU +0 GOTO LBL "END"
84 LBL "TOOL_CALL_V"
85 TOOL CALL Q1 .Q7 V SQ3 DL+Q4 DR+Q5 DR2:+Q6
86 FN 9: IF +0 EQU +0 GOTO LBL "END"
87 LBL "TOOL_CALL_W"
88 TOOL CALL Q1 .Q7 W SQ3 DL+Q4 DR+Q5 DR2:+Q6
89 LBL "END"
90 M5
91 WRITE TO PLC KEY "WG_Nummer_aktives_NC_Macro" =-1 ; NC MACRO OFF
92 END PGM TOOLCALL MM 
