BEGIN PGM 240 MM
Q10 = +1
Q200 = ABS Q200  
Q204 = ABS Q204  
Q206 = ABS Q206  
Q211 = ABS Q211  
Q343 = ABS Q343  
Q10 = -1
FN 17: SYSWRITE ID212 = +3
;********Tiefe Positiv********
DECLARE STRING QS30
QS30 = SYSSTR( ID10025 NR1 )
;+DECLARE STRING QS30 = "K1Sim"
DECLARE STRING QS31 = "CfgGeoCycle"
DECLARE STRING QS32 = "displayDepthErr"
Q2 = CFGREAD( KEY_QS30 TAG_QS31 ATR_QS32 )
FN 9: IF +Q2 EQU +0 GOTO LBL 206
FN 9: IF +Q343 EQU +1 GOTO LBL 204
FN 12: IF +Q201 LT +0 GOTO LBL 206
FN 9: IF +Q201 EQU +0 GOTO LBL 206
FN 9: IF +0 EQU +0 GOTO LBL 205
LBL 204
FN 12: IF +Q344 LT +0 GOTO LBL 206
FN 9: IF +Q344 EQU +0 GOTO LBL 206
LBL 205
FN 14: ERROR= 1077
LBL 206
;******** M3 / M4 ***********
DECLARE STRING QS32 = "displaySpindleErr"
Q0 = CFGREAD( KEY_QS30 TAG_QS31 ATR_QS32 )
FN 9: IF +Q0 EQU +0 GOTO LBL 111
FN 9: IF +Q110 EQU +1 GOTO LBL 111
FN 9: IF +Q110 EQU +0 GOTO LBL 111
FN 14: ERROR= 1000
LBL 111
FN 10: IF +Q109 NE -1 GOTO LBL 198
FN 14: ERROR = 1001
LBL 198
; Q4/Q5 = vorzeichenrichtige Tiefe
Q4 = Q201
Q5 = Q201
; Abfrage, wie Q201 wirken soll:
; Q343=0: Q201 wird als Tiefe verwendet
; Q343=1: Tiefe wird aus Q344 berechnet
FN 9: IF +Q343 EQU +0 GOTO LBL 150
; Durchmesser programmiert?
FN 9: IF +Q344 EQU +0 GOTO LBL 254
; *** Durchmessereingabe Start ***
; Aktives TOOL lesen
FN 18: SYSREAD Q0 = ID20 NR1
FN 18: SYSREAD Q1 = ID20 NR11
; Aktiven Spitzenwinkel lesen
FN 18: SYSREAD Q1 = ID50 NR32 IDXQ0 .Q1
FN 11: IF +Q1 GT +0 GOTO LBL 140
FN 14: ERROR = 1087
LBL 140
; Aktiven WZR lesen
FN 18: SYSREAD Q0 = ID200 NR1
; Durchmesser und Winkel halbieren
Q2 = ABS ( Q344 / 2 )
Q3 = ABS ( Q1 / 2 )
; Abfrage ob WZ zu klein
FN 12: IF +Q2 LT +Q0 GOTO LBL 142
FN 9: IF +Q2 EQU +Q0 GOTO LBL 142
FN 14: ERROR = 1002
LBL 142
; Abfrage ob Winkel gueltig
FN 12: IF +Q3 LT +90 GOTO LBL 141
FN 14: ERROR = 1013
LBL 141
; Vorzeichenrichtige Tiefenberechnung
Q4 = ( Q2 / TAN Q3 ) * SGN Q344
Q5 = Q344
; *** Durchmessereingabe Ende ***
FN 9: IF +0 EQU +0 GOTO LBL 151
LBL 150
; Tiefe programmiert?
FN 9: IF +Q201 EQU +0 GOTO LBL 254
LBL 151
Q19 = +Q203 + ( Q200 * SGN Q5 * Q10 )
Q51 = ABS Q200  
Q52 = ABS Q204  
FN 11: IF +Q51 GT +Q52 GOTO LBL 2
Q19 = +Q203 + ( Q204 * SGN Q5 * Q10 )
LBL 2
Q20 = +Q203 + ( Q200 * SGN Q5 * Q10 )
; Q4 ist entweder Q201 oder berechnete Tiefe
Q24 = +Q203 + +Q4
L Z+Q20 R0 F MAX
L Z+Q24 R0 FQ206
FN 9: IF +Q211 EQU +0 GOTO LBL 180
CYCL DEF 9.0 VERWEILZEIT
CYCL DEF 9.1 V.ZEIT Q211
LBL 180
L Z+Q20 R0 F MAX
L Z+Q19 R0 F MAX
LBL 254
END PGM 240 MM
