BEGIN PGM 430 MM
CALL PGM CHECK_BAMODE.CYC
FN 9: IF +Q169 EQU +1.1 GOTO LBL 254
Q198 = 430
CALL PGM ORIENT.CYC
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
QL0 = Q41 - Q151
QL1 = Q42 - Q152
CALL LBL "Calc_Angle"
Q55 = QL2       ; Winkel 1.Bohrung
QL0 = Q43 - Q151
QL1 = Q44 - Q152
CALL LBL "Calc_Angle"
Q56 = QL2       ; Winkel 2.Bohrung
QL0 = Q45 - Q151
QL1 = Q46 - Q152
CALL LBL "Calc_Angle"
Q57 = QL2       ; Winkel 3.Bohrung
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
CALL PGM PROTOCOLL_430.CYC
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 CHECK_STATUS.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 +Q330 EQU +0 GOTO LBL 131
;     FN 9: IF +0 EQU +0 GOTO LBL 34
; ----------------------------------------------------------
FN 9: IF +Q30 EQU +0 GOTO LBL 34 ; 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
FN 9: IF +Q330 EQU +0 GOTO LBL 131
FN 18: SYSREAD Q0 = ID50 NR22 IDXQ330 ;  Read RBREAK
FN 9: IF +Q0 EQU +0 GOTO LBL 130
Q1 = ABS Q163
FN 11: IF +Q0 GT +Q1 GOTO LBL 130
FN 17: SYSWRITE ID 50 NR7 IDXQ330 =+1 ;  T locked
FN 14: ERROR= 1065
LBL 130
; Abfrage ob Lochkreis-Zyklus
FN 9: IF +Q198 EQU +430 GOTO LBL 131
FN 18: SYSREAD Q0 = ID50 NR5 IDXQ330 ;   Read DR
Q0 = Q0 + ( Q163 / 2 )
FN 17: SYSWRITE ID 50 NR5 IDXQ330 =+Q0 ; Write DR
LBL 131
;==================================================================
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
FN 17: SYSWRITE ID 990 NR16 =+0 ;# Spindelkontrolle aus
FN 9: IF 0 EQU 0 GOTO LBL "End"
    LBL "Calc_Angle"
    FN 10: IF +QL0 NE 0 GOTO LBL "Calc_Angle_atan"
    QL2 = 90 * SGN( QL1 )
    LBL 0
    LBL "Calc_Angle_atan"
    QL2 = ATAN ( QL1 / QL0 )
    FN 11: IF +QL0 GT 0 GOTO LBL "Calc_Angle_End"
    QL2 = QL2 + 180
    LBL "Calc_Angle_End"
    LBL 0
LBL "End"
END PGM 430 MM
