BEGIN PGM 430 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 = 430
CALL PGM INIT.CYC
;Antastwinkel
Q45 = 0 + Q41
Q46 = 90 + Q41
Q47 = 180 + Q41
Q48 = 270 + Q41
Q320 = Q320 + Q2 + Q3
FN 3: Q9 =+Q2 * +2
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
Q0 = ( Q262 / 2 )
CC  X+Q273  Y+Q274
LP  PR+Q0  PA+Q291 R0 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q45
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q1 =+Q141
FN 0: Q2 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q46
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q3 =+Q141
FN 0: Q4 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q47
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q5 =+Q141
FN 0: Q6 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q48
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q7 =+Q141
FN 0: Q8 =+Q142
L  Z+Q260 R0 FQ59
FN 24: Q41 = CDATA Q1
Q49 = Q43 * 2 + Q9
; *** 2. BOHRUNG ************** 
LP  PR+Q0  PA+Q292 R0 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q45
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q11 =+Q141
FN 0: Q12 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q46
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q13 =+Q141
FN 0: Q14 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q47
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q15 =+Q141
FN 0: Q16 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q48
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q17 =+Q141
FN 0: Q18 =+Q142
L  Z+Q260 R0 FQ59
FN 24: Q43 = CDATA Q11
Q39 = Q45 * 2 + Q9
; *** 3. BOHRUNG ************** 
LP  PR+Q0  PA+Q293 R0 FQ59
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q45
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q21 =+Q141
FN 0: Q22 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q46
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q23 =+Q141
FN 0: Q24 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q47
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q25 =+Q141
FN 0: Q26 =+Q142
TCH PROBE 1.0 BEZUGSPUNKT POLAR
TCH PROBE 1.1 X WINKEL:+Q48
TCH PROBE 1.2  Z+Q261
CALL PGM SUB_POSREAD.CYC
FN 0: Q27 =+Q141
FN 0: Q28 =+Q142
L  Z+Q260 R0 FQ59
FN 24: Q45 = CDATA Q21
Q54 = Q47 * 2 + Q9
FN 23: Q151 = CDATA Q41
FN 3: Q153 =+Q153 * +2
Q161 = Q151 - Q273
Q162 = Q152 - Q274
Q163 = ABS Q153 - ABS Q262
Q31 = Q273 + Q279
Q32 = Q273 - Q279
Q33 = Q274 + Q280
Q34 = Q274 - Q280
Q55 = Q41 - Q151
Q56 = Q43 - Q151
Q57 = Q45 - Q151
FN 9: IF +Q55 EQU +0 GOTO LBL 26
FN 9: IF +Q56 EQU +0 GOTO LBL 26
FN 9: IF +Q57 EQU +0 GOTO LBL 26
FN 12: IF +Q55 LT +0 GOTO LBL 20
Q55 = ATAN ( ( Q42 - Q152 ) / Q55 )
FN 9: IF +0 EQU +0 GOTO LBL 21
LBL 20
Q55 = 180 + ATAN ( ( Q42 - Q152 ) / Q55 )
LBL 21
FN 12: IF +Q56 LT +0 GOTO LBL 22
Q56 = ATAN ( ( Q44 - Q152 ) / Q56 )
FN 9: IF +0 EQU +0 GOTO LBL 23
LBL 22
Q56 = 180 + ATAN ( ( Q44 - Q152 ) / Q56 )
LBL 23
FN 12: IF +Q57 LT +0 GOTO LBL 24
Q57 = ATAN ( ( Q46 - Q152 ) / Q57 )
FN 9: IF +0 EQU +0 GOTO LBL 25
LBL 24
Q57 = 180 + ATAN ( ( Q46 - Q152 ) / Q57 )
LBL 25
FN 9: IF +0 EQU +0 GOTO LBL 27
LBL 26
FN 14: ERROR= 1081
LBL 27
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
Q41 = Q41 / 25.4
Q42 = Q42 / 25.4
Q43 = Q43 / 25.4
Q44 = Q44 / 25.4
Q45 = Q45 / 25.4
Q46 = Q46 / 25.4
Q49 = Q49 / 25.4
Q39 = Q39 / 25.4
Q54 = Q54 / 25.4
Q273 = Q273 / 25.4
Q274 = Q274 / 25.4
Q288 = Q288 / 25.4
Q289 = Q289 / 25.4
Q262 = Q262 / 25.4
Q261 = Q261 / 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
;FCL lesen
FN 18: SYSREAD Q0 = ID630 NR1
FN 12: IF +Q0 LT +2 GOTO LBL 190
;Schnelles Antasten
FN 18: SYSREAD Q189 = ID370 NR6
FN 9: IF +Q189 EQU +1 GOTO LBL 192
LBL 190
FN 9: IF +Q281 EQU +0 GOTO LBL 198
FN 9: IF +Q281 EQU +1 GOTO LBL 193
FN 12: IF +Q0 LT +2 GOTO LBL 191
FN 9: IF +Q189 EQU +0 GOTO LBL 193
LBL 191
FN 10: IF +Q281 NE +2 GOTO LBL 198
LBL 192
;Screen-Ausgabe
FN 16: F-PRINT 430PROT.A / SCREEN:
FN 17: SYSWRITE ID 990 NR9 =+1
FN 16: F-PRINT 430PROT.A / SCLR:
FN 9: IF +0 EQU +0 GOTO LBL 198
LBL 193
;File-Ausgabe
FN 16: F-PRINT 430PROT.A / TCHPR430.TXT
LBL 198
FN 10: IF +Q113 NE +1 GOTO LBL 172
Q163 = Q163 * 25.4
LBL 172
Q19 = Q153
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 130
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 Q163
FN 11: IF +Q0 GT +Q1 GOTO LBL 130
FN 14: ERROR= 1065
LBL 130
FN 10: IF +Q309 NE +1 GOTO LBL 99
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 +Q288 GOTO LBL 104
FN 14: ERROR= 1062
LBL 104
FN 11: IF +Q153 GT +Q289 GOTO LBL 105
FN 14: ERROR= 1063
LBL 105
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
Q273 = Q273 * 25.4
Q274 = Q274 * 25.4
Q288 = Q288 * 25.4
Q289 = Q289 * 25.4
Q262 = Q262 * 25.4
Q261 = Q261 * 25.4
Q163 = Q163 / 25.4
LBL 254
END PGM 430 MM 
