  BEGIN PGM 209 MM 
  ;Stand: 340490 02    
  Q200 = ABS Q200
  Q204 = ABS Q204
  Q256 = ABS Q256
  Q257 = ABS Q257
 FN 17: SYSWRITE ID 212 =+3
 FN 10: IF +Q109 NE -1 GOTO LBL 198
 FN 14: ERROR= 1001
 LBL 198
 CALL PGM spindle
 *###### Funktion fuer Spindelorientierung
 DECLARE STRING QS30
 QS30 = SYSSTR( ID10025 NR1 )
 DECLARE STRING QS31 = "CfgGeoCycle"
 DECLARE STRING QS33 = "mStrobeOrient"
 Q13 = CFGREAD( KEY_QS30 TAG_QS31 ATR_QS33 )
 FN 10: IF +Q13 NE +0 GOTO LBL "mStrobeOrient"
 FN 14: ERROR= 1074
 LBL "mStrobeOrient"
 *############################
 ;********Tiefe Positiv********
 DECLARE STRING QS30
 QS30 = SYSSTR( ID10025 NR1 )
 DECLARE STRING QS31 = "CfgGeoCycle"
 DECLARE STRING QS32 = "displayDepthErr"
 Q2 = CFGREAD( KEY_QS30 TAG_QS31 ATR_QS32 )
 ;------------------------------------------------
 FN 18: SYSREAD QL0 = ID950 NR40
 FN 9: IF +QL0 EQU +0 GOTO LBL "Compare_Pitch"
 QL0 = Q239 - QL0
 QL0 = ABS QL0
 FN 12: IF +QL0 LT +0.002 GOTO LBL "Compare_Pitch"
 FN 14: ERROR= 1124
 LBL "Compare_Pitch"
 ;------------------------------------------------
 FN 12: IF +Q201 LT +0 GOTO LBL 110
 FN 9: IF +Q201 EQU +0 GOTO LBL 110
 FN 9: IF +Q2 EQU +0 GOTO LBL 110
 FN 14: ERROR= 1077
 LBL 110
 Q4 = Q257
 FN 10: IF +Q4 NE +0 GOTO LBL 199
 Q4 = ABS Q201
 LBL 199
 FN 9: IF +Q201 EQU +0 GOTO LBL 254
 FN 12: IF +Q201 LT +0 GOTO LBL 197
 FN 0: Q30 =-1
 FN 9: IF +0 EQU +0 GOTO LBL 194
 LBL 197
 FN 0: Q30 =+1
 LBL 194
 CALL LBL 11
 FN 1: Q19 =+Q203 + +Q200
 Q51 = ABS Q200
 Q52 = ABS Q204
 FN 11: IF +Q51 GT +Q52 GOTO LBL 7
 FN 1: Q19 =+Q203 + +Q204
 LBL 7
 Q14 = 1
 Q20 = Q203 + Q200
 Q21 = Q200 + Q4
 Q22 = Q256 * ABS Q239
 FN 10: IF +Q22 NE +0 GOTO LBL 29
 Q22 = Q21
 LBL 29
 Q24 = Q201 - Q200
 Q15 = Q21
 Q16 = Q22
 L  Z+Q20 R0 FMAX
 ;Aktive Drehzahl lesen
 FN 18: SYSREAD Q40 = ID20 NR4
 ;FN 17: SYSWRITE ID2020 NR1 = +1
 ;FN 17: SYSWRITE ID 990 NR12 = Q40
 ;Rckzugsdrehzahl berechnen
 Q41 = ABS ( Q403 * Q40 )
 FN 11: IF +Q13 GT +0 GOTO LBL 187
 FN 17: SYSWRITE ID 990 NR8 =+Q336
 FN 9: IF +0 EQU +0 GOTO LBL 186
 LBL 187
 CYCL DEF 13.0 ORIENTIERUNG
 CYCL DEF 13.1 WINKELQ336
 L MQ13
 ;FN 20: WAIT FOR  M4000==1 
 ;Spindelmerker von PC abfragen
 ; ex FN 20: WAIT FOR M4000==1
 DECLARE STRING QS1 = "%OEM_SPINDLEPOS%"
 FN 22: FUNCT Q3 FNR900 PIN40 PIN2 PEX+1
 FN 17: SYSWRITE ID 990 NR16 =+1
 LBL 186
 Q51 = ABS Q201
 Q52 = ABS Q4
 FN 11: IF +Q51 GT +Q52 GOTO LBL 2
 Q24 = Q201 - Q200
 Q25 = Q24
 FN 9: IF +0 EQU +0 GOTO LBL 20
 LBL 2
 FN 9: IF +Q30 EQU -1 GOTO LBL 50
 FN 11: IF +Q15 GT +Q24 GOTO LBL 5
 FN 9: IF +0 EQU +0 GOTO LBL 10
 LBL 50
 FN 12: IF +Q15 LT +Q24 GOTO LBL 5
 FN 9: IF +0 EQU +0 GOTO LBL 10
 LBL 5
 FN 9: IF +Q403 EQU +1 GOTO LBL 60
 ;>>>TOOL CALL SQ40
 FN 17: SYSWRITE ID 30 NR70 =+1
 LBL 60
 CYCL DEF 18.0 GEWINDESCHNEIDEN
 CYCL DEF 18.1 TIEFE-Q21
 CYCL DEF 18.2 STEIG+Q239
 CYCL CALL
 FN 10: IF +Q22 NE +0 GOTO LBL 30
 Q16 = Q4 * Q14 + Q200
 LBL 30
 FN 9: IF +Q403 EQU +1 GOTO LBL 61
 ;>>>TOOL CALL SQ41
 FN 17: SYSWRITE ID 30 NR70 =+Q403
 LBL 61
 CYCL DEF 18.0 GEWINDESCHNEIDEN
 CYCL DEF 18.1 TIEFE+Q16
 CYCL DEF 18.2 STEIG+Q239
 CYCL CALL
 Q14 = Q14 + 1
 Q15 = - ( Q14 * Q4 ) - Q200
 FN 9: IF +Q30 EQU -1 GOTO LBL 40
 FN 12: IF +Q15 LT +Q24 GOTO LBL 10
 FN 9: IF +Q15 EQU +Q24 GOTO LBL 10
 Q21 = Q22 + Q4
 FN 10: IF +Q256 NE +0 GOTO LBL 31
 Q16 = Q4 * Q14 + Q200
 Q21 = Q4 * Q14 + Q200
 LBL 31
 FN 9: IF +0 EQU +0 GOTO LBL 5
 LBL 40
 FN 11: IF +Q15 GT +Q24 GOTO LBL 10
 FN 9: IF +Q15 EQU +Q24 GOTO LBL 10
 Q21 = Q22 + Q4
 FN 10: IF +Q256 NE +0 GOTO LBL 32
 Q16 = Q4 * Q14 + Q200
 Q21 = Q4 * Q14 + Q200
 LBL 32
 FN 9: IF +0 EQU +0 GOTO LBL 5
 LBL 10
 Q25 = Q24
 FN 9: IF +Q256 EQU +0 GOTO LBL 20
 Q25 = Q24 + ( Q4 * ( Q14 - 1 ) ) - Q22 + Q200
 LBL 20
 FN 9: IF +Q403 EQU +1 GOTO LBL 62
 ;>>>TOOL CALL SQ40
 FN 17: SYSWRITE ID 30 NR70 =+1
 LBL 62
 CYCL DEF 18.0 GEWINDESCHNEIDEN
 CYCL DEF 18.1 TIEFE+Q25
 CYCL DEF 18.2 STEIG+Q239
 CYCL CALL
 LBL 11
 FN 3: Q200 =+Q200 * +Q30
 FN 3: Q204 =+Q204 * +Q30
 FN 3: Q256 =+Q256 * +Q30
 FN 3: Q4 =+Q4 * +Q30
 LBL 0
 FN 9: IF +Q403 EQU +1 GOTO LBL 63
 ;>>>TOOL CALL SQ41
 FN 17: SYSWRITE ID 30 NR70 =+Q403
 LBL 63
 CYCL DEF 18.0 GEWINDESCHNEIDEN
 CYCL DEF 18.1 TIEFE-Q24
 CYCL DEF 18.2 STEIG+Q239
 CYCL CALL
 FN 9: IF +Q403 EQU +1 GOTO LBL 64
 ;>>>TOOL CALL SQ40
 FN 17: SYSWRITE ID 30 NR70 =+1
 LBL 64
 ;FN 17: SYSWRITE ID2020 NR1 = +0
 ;FN 17: SYSWRITE ID 990 NR12 = -1
 L  Z+Q19 R0 FMAX
 LBL 254
 FN 17: SYSWRITE ID 990 NR16 =+0
 END PGM 209 MM 
