BEGIN PGM 425 MM 
FN 18: SYSREAD Q0 = ID2000 NR10 IDX4158
FN 9: IF +Q0 EQU +1 GOTO LBL 254
FN 18: SYSREAD Q0 = ID990 NR2 IDX16
FN 9: IF +Q0 EQU +0 GOTO LBL 254
Q198 = 425
CALL PGM INIT.CYC
Q320 = Q320 + Q2 + Q3
Q10 = Q41
FN 12: IF +Q261 LT +Q260 GOTO LBL 140
FN 0: Q260 =+Q261
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
FN 9: IF +Q272 EQU +2 GOTO LBL 20
; Antastrichtung X
; Startpositionen rechnen
; X+ Richtung
Q20 = Q328 + ( Q311 / 2) - Q320
; X- Richtung
Q21 = Q328 - ( Q311 / 2) + Q320
; Y- Richtung
Q23 = Q329 + Q310
FN 11: IF +Q20 GT +Q21 GOTO LBL 50
; Wenn enge Nut, dann Messung aus Mitte
Q20 = Q328
Q21 = Q328
; Merker Messung aus Mitte
Q22 = 1.1
LBL 50
L  X+Q20  Y+Q329 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 = 180 + Q41
FN 9: IF +Q22 EQU +1.1 GOTO LBL 51
FN 10: IF +Q301 NE +1 GOTO LBL 51
L  Z+Q260 R0 FQ59
LBL 51
L  X+Q21  Y+Q23 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
Q6 = Q141
L  Z+Q260 FQ59
Q156 = ABS ( Q5 - Q6 + ( 2 * Q2 ) )
Q157 = Q6 - Q2 + ( Q156 / 2 )
Q166 = Q156 - ABS Q311
FN 9: IF +0 EQU +0 GOTO LBL 197
LBL 20
; Antastrichtung Y
Q10 = 90 + Q41
; Startpositionen rechnen
; Y+ Richtung
Q20 = Q329 + ( Q311 / 2) - Q320
; Y- Richtung
Q21 = Q329 - ( Q311 / 2) + Q320
; X-Richtung
Q23 = Q328 + Q310
FN 11: IF +Q20 GT +Q21 GOTO LBL 55
; Wenn enge Nut, dann Messung aus Mitte
Q20 = Q329
Q21 = Q329
; Merker Messung aus Mitte
Q22 = 1.1
LBL 55
L  X+Q328  Y+Q20 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 = 270 + Q41
FN 9: IF +Q22 EQU +1.1 GOTO LBL 56
FN 10: IF +Q301 NE +1 GOTO LBL 56
L  Z+Q260 R0 FQ59
LBL 56
L  X+Q23  Y+Q21 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
;FCL lesen
FN 18: SYSREAD Q0 = ID630 NR1
FN 12: IF +Q0 LT +2 GOTO LBL 180
;Schnelles Antasten
FN 18: SYSREAD Q189 = ID370 NR6
FN 9: IF +Q189 EQU +1 GOTO LBL 182
LBL 180
FN 9: IF +Q281 EQU +0 GOTO LBL 198
FN 9: IF +Q281 EQU +1 GOTO LBL 183
FN 12: IF +Q0 LT +2 GOTO LBL 181
FN 9: IF +Q189 EQU +0 GOTO LBL 183
LBL 181
FN 10: IF +Q281 NE +2 GOTO LBL 198
LBL 182
;Screen-Ausgabe
FN 16: F-PRINT 425PROT.A / SCREEN:
FN 17: SYSWRITE ID 990 NR9 =+1
FN 16: F-PRINT 425PROT.A / SCLR:
FN 9: IF +0 EQU +0 GOTO LBL 198
LBL 183
;File-Ausgabe
FN 16: F-PRINT 425PROT.A / TCHPR425.TXT
LBL 198
FN 10: IF +Q113 NE +1 GOTO LBL 171
Q166 = Q166 * 25.4
LBL 171
Q19 = Q156
Q29 = Q288
Q39 = Q289
Q40 = 10
CALL PGM CHCK_STA.CYC
FN 18: SYSREAD Q35 = ID1000 NR7483 ;MP7483: Werkzeugname/nummer erlaubt
FN 18: SYSREAD Q30 = ID30 NR52 IDX330 ;ABFRAGE, OB TOOLNAME PROGR. IST
FN 9: IF +Q30 EQU +0 GOTO LBL 45 ; Kein Name programmiert
FN 10: IF +Q35 NE +2 GOTO LBL 46
FN 14: ERROR= 1094 ;Toolname nicht erlaubt
LBL 46
FN 18: SYSREAD Q330 = ID990 NR10 IDX330 ;ZUM TOOLNAMEN EINE NUMMER SUCHEN
FN 10: IF +Q330 NE -1 GOTO LBL 34
FN 14: ERROR= 1092 ;ES KONNTE KEINE NUMMER GEFUNDEN WERDEN
LBL 45
FN 9: IF +Q330 EQU +0 GOTO LBL 131
FN 10: IF +Q35 NE +1 GOTO LBL 34
FN 9: IF +Q330 EQU +0 GOTO LBL 34 ;TOOLNR 0 immer erlaubt
FN 14: ERROR= 1093 ;Toolnummer nicht erlaubt
LBL 34
QL100 = INT Q330 ; WZ-Nummer
QL101 = 10 * FRAC Q330 ; WZ-Index
FN 18: SYSREAD Q0 = ID50 NR22 IDXQL100.QL101
FN 9: IF +Q0 EQU +0 GOTO LBL 130
Q1 = ABS Q166
FN 11: IF +Q0 GT +Q1 GOTO LBL 130
FN 17: SYSWRITE ID 50 NR7 IDXQL100.QL101 =+1
FN 14: ERROR= 1065
LBL 130
FN 18: SYSREAD Q0 = ID50 NR5 IDXQL100.QL101
Q0 = Q0 + ( Q166 / 2 )
FN 17: SYSWRITE ID 50 NR5 IDXQL100.QL101 =+Q0
LBL 131
FN 10: IF +Q309 NE +1 GOTO LBL 99
FN 12: IF +Q156 LT +Q288 GOTO LBL 100
FN 14: ERROR= 1058
LBL 100
FN 11: IF +Q156 GT +Q289 GOTO LBL 99
FN 14: ERROR= 1059
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
END PGM 425 MM 
