BEGIN PGM 422 MM
CALL PGM CHECK_BAMODE.CYC
FN 9: IF +Q169 EQU +1.1 GOTO LBL 254
Q198 = 422
CALL PGM ORIENT.CYC
CALL PGM INIT.CYC
FN 10: IF +Q247 NE +0 GOTO LBL 150
FN 14: ERROR= 1066
LBL 150
FN 11: IF +Q247 GT +4.9999 GOTO LBL 151
FN 12: IF +Q247 LT -4.9999 GOTO LBL 151
FN 14: ERROR= 1067
LBL 151
Q320 = Q320 + Q2 + Q3
Q9 = 0
Q5 = ( Q262 / 2 ) + Q320
Q10 = Q325 + 180 + Q41
Q11 = Q325 + Q41
FN 12: IF +Q261 LT +Q260 GOTO LBL 140
FN 0: Q260 =+Q261
FN 0: Q301 =+0
LBL 140
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
CC  X+Q273  Y+Q274
LP  PR+Q5  PA+Q325 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
FN 0: Q27 =+Q141
FN 0: Q28 =+Q142
FN 1: Q10 =+Q10 + +Q247
FN 9: IF +Q301 EQU +0 GOTO LBL 21
L  Z+Q260 R0 FQ59
; Abfrage der Verfahrart dazu
FN 9: IF +Q365 EQU +1 GOTO LBL 21
LP  PR+Q5 IPA+Q247 R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 23
; Ende Verfahrart
LBL 21
FN 12: IF +Q247 LT +0 GOTO LBL 22
CP IPA+Q247 DR+ R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 23
LBL 22
CP IPA+Q247 DR- R0 FQ59
LBL 23
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q25 =+Q141
FN 0: Q26 =+Q142
FN 1: Q10 =+Q10 + +Q247
FN 9: IF +Q301 EQU +0 GOTO LBL 24
L  Z+Q260 R0 FQ59
; Abfrage der Verfahrart dazu
FN 9: IF +Q365 EQU +1 GOTO LBL 24
LP  PR+Q5 IPA+Q247 R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 26
; Ende Verfahrart
LBL 24
FN 12: IF +Q247 LT +0 GOTO LBL 25
CP IPA+Q247 DR+ R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 26
LBL 25
CP IPA+Q247 DR- R0 FQ59
LBL 26
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q23 =+Q141
FN 0: Q24 =+Q142
; Nur 3 Messpunkte
FN 9: IF +Q423 EQU +3 GOTO LBL 50
FN 1: Q10 =+Q10 + +Q247
FN 9: IF +Q301 EQU +0 GOTO LBL 27
L  Z+Q260 R0 FQ59
; Abfrage der Verfahrart dazu
FN 9: IF +Q365 EQU +1 GOTO LBL 27
LP  PR+Q5 IPA+Q247 R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 29
; Ende Verfahrart
LBL 27
FN 12: IF +Q247 LT +0 GOTO LBL 28
CP IPA+Q247 DR+ R0 FQ59
FN 9: IF +0 EQU +0 GOTO LBL 29
LBL 28
CP IPA+Q247 DR- R0 FQ59
LBL 29
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q10
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q21 =+Q141
FN 0: Q22 =+Q142
LBL 50
L  Z+Q260 R0 FQ59
FN 10: IF +Q423 NE +3 GOTO LBL 51
; Kreisberechnung aus 3 Pkt
FN 23: Q151 = CDATA Q23
FN 9: IF +0 EQU +0 GOTO LBL 52
LBL 51
; Kreisberechnung aus 4 Pkt
FN 24: Q151 = CDATA Q21
LBL 52
Q153 = ( Q153 - Q2 ) * 2
Q161 = Q151 - Q273
Q162 = Q152 - Q274
FN 2: Q163 =+Q153 - +Q262
FN 1: Q31 =+Q273 + +Q279
FN 2: Q32 =+Q273 - +Q279
FN 1: Q33 =+Q274 + +Q280
FN 2: Q34 =+Q274 - +Q280
FN 10: IF +Q113 NE +1 GOTO LBL 170
Q31 = Q31 / 25.4
Q32 = Q32 / 25.4
Q33 = Q33 / 25.4
Q34 = Q34 / 25.4
Q273 = Q273 / 25.4
Q274 = Q274 / 25.4
Q277 = Q277 / 25.4
Q278 = Q278 / 25.4
Q261 = Q261 / 25.4
Q262 = Q262 / 25.4
Q151 = Q151 / 25.4
Q152 = Q152 / 25.4
Q153 = Q153 / 25.4
Q161 = Q161 / 25.4
Q162 = Q162 / 25.4
Q163 = Q163 / 25.4
LBL 170
CALL PGM PROTOCOLL_422.CYC
FN 10: IF +Q113 NE +1 GOTO LBL 171
Q163 = Q163 * 25.4
LBL 171
Q19 = Q153
Q29 = Q277
Q39 = Q278
Q40 = 11
CALL PGM CHECK_STATUS.CYC
Q50 = -Q163 / 2                                 ; Korrekturwert
Q52 = 0                                         ; Korrigiere radial / axial
FN 18: SYSREAD QL330 = ID 30 NR 52 IDX 330      ; WZ-Name programmiert
FN 9: IF +QL330 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
Q53 = INT Q330                                  ; WZ-Nummer
Q54 = 10 * FRAC Q330                            ; WZ-Index
FN 9: IF +Q53 EQU +0 GOTO LBL "ToolCorr_End"    ; Keine WZ-Korrektur
Q55 = Q531                                      ; Anstellwinkel Drehwerkzeug
Q56 = Q498                                      ; Drehwerkzeug invers
CALL PGM tpToolCorr.CYC                         ; Werkzeugkorrektur
LBL "ToolCorr_End"
FN 10: IF +Q309 NE +1 GOTO LBL 199
FN 12: IF +Q151 LT +Q31 GOTO LBL 100
FN 14: ERROR= 1044
LBL 100
FN 11: IF +Q151 GT +Q32 GOTO LBL 101
FN 14: ERROR= 1044
LBL 101
FN 12: IF +Q152 LT +Q33 GOTO LBL 102
FN 14: ERROR= 1045
LBL 102
FN 11: IF +Q152 GT +Q34 GOTO LBL 103
FN 14: ERROR= 1045
LBL 103
FN 12: IF +Q153 LT +Q277 GOTO LBL 104
FN 14: ERROR= 1049
LBL 104
FN 11: IF +Q153 GT +Q278 GOTO LBL 105
FN 14: ERROR= 1048
LBL 105
LBL 199
FN 17: SYSWRITE ID 990 NR1 =+0
FN 17: SYSWRITE ID 990 NR2 =+0
FN 10: IF +Q113 NE +1 GOTO LBL 254
Q273 = Q273 * 25.4
Q274 = Q274 * 25.4
Q277 = Q277 * 25.4
Q278 = Q278 * 25.4
Q261 = Q261 * 25.4
Q262 = Q262 * 25.4
Q163 = Q163 / 25.4
LBL 254
FN 17: SYSWRITE ID 990 NR16 =+0 ;# Spindelkontrolle aus
END PGM 422 MM
