BEGIN PGM 426 MM
CALL PGM CHECK_BAMODE.CYC
FN 9: IF +Q169 EQU +1.1 GOTO LBL 254
Q198 = 426
CALL PGM ORIENT.CYC
CALL PGM INIT.CYC
Q320 = Q320 + Q2 + Q3
Q10 = 180 + Q41
Q42 = Q2
FN 12: IF +Q261 LT +Q260 GOTO LBL 119
FN 14: ERROR= 1016
LBL 119
FN 1: Q1 =+Q109 + +1
FN 18: SYSREAD Q0 = ID270 NR1 IDXQ1
FN 11: IF +Q0 GT +Q260 GOTO LBL 120
L  Z+Q260 R0 FQ59
LBL 120
FN 9: IF +Q272 EQU +2 GOTO LBL 20
FN 1: Q1 =+Q263 + +Q320
FN 2: Q2 =+Q265 - +Q320
L  X+Q1  Y+Q264 R0 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
Q5 = Q141
Q10 = Q41
L  Z+Q260 FQ59
L  X+Q2  Y+Q266 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
Q6 = Q141
L  Z+Q260 FQ59
Q156 = ABS ( Q5 - Q6 - ( 2 * Q42 ) )
Q157 = Q6 + Q42 + ( Q156 / 2 )
Q166 = Q156 - ABS Q311
FN 9: IF +0 EQU +0 GOTO LBL 197
LBL 20
FN 1: Q3 =+Q264 + +Q320
FN 2: Q4 =+Q266 - +Q320
Q10 = 270 + Q41
L  X+Q263  Y+Q3 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
Q5 = Q142
Q10 = 90 + Q41
L  Z+Q260 FQ59
L  X+Q265  Y+Q4 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
Q6 = Q142
L  Z+Q260 FQ59
Q156 = ABS ( Q5 - Q6 - ( 2 * Q2 ) )
Q157 = Q6 + Q2 + ( Q156 / 2 )
Q166 = Q156 - ABS Q311
LBL 197
FN 10: IF +Q113 NE +1 GOTO LBL 170
Q288 = Q288 / 25.4
Q289 = Q289 / 25.4
Q311 = Q311 / 25.4
Q156 = Q156 / 25.4
Q157 = Q157 / 25.4
Q166 = Q166 / 25.4
Q261 = Q261 / 25.4
LBL 170
CALL PGM PROTOCOLL_426.CYC
FN 10: IF +Q113 NE +1 GOTO LBL 171
Q166 = Q166 * 25.4
LBL 171
Q19 = Q156
Q29 = Q288
Q39 = Q289
Q40 = 11
CALL PGM CHECK_STATUS.CYC
FN 18: SYSREAD Q30 = ID 30 NR 52 IDX 330        ; WZ-Name programmiert
FN 9: IF +Q30 EQU +0 GOTO LBL "ToolNr"          ; Kein Name programmiert
FN 18: SYSREAD Q330 = ID 990 NR 10 IDX 330      ; WZ-Nummer zum Namen ermitteln
FN 10: IF +Q330 NE -1 GOTO LBL "ToolNr"         ; WZ-Nummer ermittelt
FN 14: ERROR= 1092                              ; Keine WZ-Nummer gefunden
LBL "ToolNr"                                    ; WZ-Nummer auswerten
QL100 = INT Q330                                ; WZ-Nummer
QL101 = 10 * FRAC Q330                          ; WZ-Index
FN 9: IF +QL100 EQU +0 GOTO LBL "ToolCorr_End"  ; Keine WZ-Korrektur
FN 18: SYSREAD Q0 = ID 50 NR 22 IDX QL100.QL101 ; Lese RBREAK
FN 9: IF +Q0 EQU +0 GOTO LBL "ToolBreak_End"    ; keine Bruchueberwachung
Q1 = ABS Q166
FN 11: IF +Q0 GT +Q1 GOTO LBL "ToolBreak_End"   ; kein WZ-Bruch
FN 17: SYSWRITE ID 50 NR 7 IDX QL100.QL101 =+1  ; Schreibe T locked
FN 14: ERROR= 1065
LBL "ToolBreak_End"
FN 18: SYSREAD Q0 = ID 50 NR 5 IDX QL100.QL101  ; Lese DR
Q0 = Q0 - ( Q166 / 2 )
FN 17: SYSWRITE ID 50 NR 5 IDX QL100.QL101 =+Q0 ; Schreibe DR
LBL "ToolCorr_End"
FN 10: IF +Q309 NE +1 GOTO LBL 99
FN 12: IF +Q156 LT +Q288 GOTO LBL 100
FN 14: ERROR= 1060
LBL 100
FN 11: IF +Q156 GT +Q289 GOTO LBL 99
FN 14: ERROR= 1061
LBL 99
FN 17: SYSWRITE ID 990 NR1 =+0
FN 17: SYSWRITE ID 990 NR2 =+0
FN 10: IF +Q113 NE +1 GOTO LBL 254
Q288 = Q288 * 25.4
Q289 = Q289 * 25.4
Q311 = Q311 * 25.4
Q261 = Q261 * 25.4
Q166 = Q166 / 25.4
LBL 254
FN 17: SYSWRITE ID 990 NR16 =+0 ;# Spindelkontrolle aus
END PGM 426 MM
