BEGIN PGM 25x_SlotError MM
*############################
*# Funktion fr Nutenzyklen
*# Prfe richtige Eingaben
*# 25.11.2008 L.Buchner
*# Argumente:
*#	- Q40			Zyklusnummer
*# Rckgaben:
*#	- Q97 		Spindeldrehrichtung M3==+1 M4==-1
*############################

*############################
*# verwendete Parameter
*############################
; Q0

; QS0
; QS1
*############################

*############################
*# Strings fr CfgRead definieren
*############################
QS0 = SYSSTR( ID10025 NR1 )
QS1 = "CfgGeoCycle"
*############################
*# Werkzeugradius pruefen
*############################
FN 11: IF +Q108 GT +0 GOTO LBL "TOOLR_OK"
    FN 14: ERROR= 1002
LBL "TOOLR_OK"
*############################
*# negative Tiefe pruefen
*############################
FN 12: IF +Q201 LT +0 GOTO LBL "ERR_DEPHT"
	QS2 = "displayDepthErr"
	Q0 = CFGREAD( KEY_QS0 TAG_QS1 ATR_QS2 )
	FN 9: IF +Q0 EQU +0 GOTO LBL "ERR_DEPHT"
		FN 14: ERROR = 1077
LBL "ERR_DEPHT"
*############################
*# Zustellung pruefen
*############################
FN 10: IF +Q202 NE +0 GOTO LBL "ERR_PLDEPTH"
		FN 14: ERROR = 1090
LBL "ERR_PLDEPTH"
*############################
*# Oeffnungswinkel != 0
*# bei Zyklus 254 prfen
*############################
FN 10: IF +Q40 NE +254 GOTO LBL "ERR_APEXANGLE"
FN 11: IF +Q248 GT +0 GOTO LBL "ERR_APEXANGLE"
	FN 14: ERROR = 1106
LBL "ERR_APEXANGLE"
*############################
*# Nutbreite >= Werkzeugdurchmesser
*############################
Q63 = ( Q219 / 2 ) - Q368										; halbe Schruppbreite
FN 12: IF +Q43 LT +Q63 GOTO LBL "ERR_SLOTWIDTH"
FN 9: IF +Q43 EQU +Q63 GOTO LBL "ERR_SLOTWIDTH"
	FN 14: ERROR = 1028
LBL "ERR_SLOTWIDTH"
*############################
*# Nutlaenge > Nutbreite
*# bei Zyklus 253 prfen
*############################
FN 10: IF +Q40 NE +253 GOTO LBL "ERR_LENGTH"
FN 11: IF +Q218 GT +Q219 GOTO LBL "ERR_LENGTH"
	FN 14: ERROR = 1029
LBL "ERR_LENGTH"
*############################
*# Nutbreite > Teilkreisdurchmesser
*############################
FN 10: IF +Q40 NE +254 GOTO LBL "ERR_254WIDTH"
FN 12: IF +Q219 LT +Q375 GOTO LBL "ERR_254WIDTH"
	FN 14: ERROR = 1107
LBL "ERR_254WIDTH"
*############################
*# Spindeldrehung pruefen
*# und zurckgeben
*############################
Q97 = +1																				; M3
FN 9: IF +Q110 EQU +0 GOTO LBL "ERR_SPINDLE"
	Q97 = -1																			; oder M4
	FN 9: IF +Q110 EQU +1 GOTO LBL "ERR_SPINDLE"	
		Q97 = +1																		; default M3
		QS2 = "displaySpindleErr"
		Q0 = CFGREAD( KEY_QS0 TAG_QS1 ATR_QS2 )
		FN 9: IF +Q0 EQU +0 GOTO LBL "ERR_SPINDLE"
			FN 14: ERROR = 1000
LBL "ERR_SPINDLE"
*############################
*# ANGLE bei Strategien 1 und 2 prfen
*# 0 < ANGLE < 90
*############################
FN 9: IF +Q366 EQU +0 GOTO LBL "TOOLANGLE"
	FN 11: IF +Q99 GT +0 GOTO LBL "TOOLANGLE_1"
		FN 14: ERROR = 1105
	LBL "TOOLANGLE_1"
	FN 12: IF +Q99 LT +90 GOTO LBL "TOOLANGLE"
		FN 14: ERROR = 1105
LBL "TOOLANGLE"

END PGM MM
