
PROGRAM _INIT

	Tisch_6 := 0;
	Tisch_6_Manuell := 0;
	Tisch_6_Automatik :=0;			//Cech-Implement
	
	gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
	gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
	gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
	
	RTInfo_0(enable:=1);
	
	gMerker_Laser_Einstellen_fertig := FALSE; 	//Cech-Implement
		
END_PROGRAM

PROGRAM _CYCLIC

	gTisch_6;
	

	IF gMerker_Laser_Manuell = TRUE THEN
		gDO_Start_Laser := FALSE;
		gDO_Laser_Seitentuer_oeffnen := FALSE;
	END_IF
	
	IF gMerker_Laser_Automatik = TRUE THEN
		gDO_Laser_Seitentuer_oeffnen := FALSE;
	END_IF
	
//Cech-Comment: Hier wird der Status der Soft-Buttons am Hauptpanel abgefragt. Wenn die Freigabe erteilt ist, sind die anderen 5 Tasten (Ausheber, Vorstopperm, Stopper, Start-Laser und Doppelt-lasern aktiviert) 	
	IF gVK_Freigabe_manuell = TRUE AND gVK_Stopper_Tisch_6 = TRUE THEN
		gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
	ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Stopper_Tisch_6 = FALSE THEN
			gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
	END_IF	
	
	IF gVK_Freigabe_manuell = TRUE AND gVK_Vorstopper_Tisch_6 = TRUE THEN
		gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
	ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Vorstopper_Tisch_6 = FALSE THEN
		gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
	END_IF
	
	IF gVK_Freigabe_manuell = TRUE AND gVK_Aushebeeinheit_Tisch_6 = TRUE THEN
		gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
	ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Aushebeeinheit_Tisch_6 = FALSE THEN
		gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
	END_IF
	
	IF gVK_Freigabe_manuell = TRUE AND gVK_doppelt_Lasern = TRUE THEN
		gDO_doppelt_lasern := TRUE;
	ELSIF gVK_Freigabe_manuell = TRUE AND gVK_doppelt_Lasern = FALSE THEN
		gDO_doppelt_lasern := FALSE;
	END_IF	
	
	IF gVK_Freigabe_manuell = TRUE AND gVK_Start_Laser = TRUE THEN  //Cech-Comment: 
		gDO_Start_Laser := TRUE;
	ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Start_Laser = FALSE THEN
		gDO_Start_Laser := FALSE;
	END_IF	

	IF gVK_Absaugung = FALSE THEN				//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
		gDO_Laser_Absaugung := FALSE;			//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
	END_IF										//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC

	IF gVK_Absaugung = TRUE AND (gDO_Start_Laser = TRUE OR gMerker_Laser_Manuell = TRUE) THEN	//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
		gDO_Laser_Absaugung := TRUE;			//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC
	END_IF										//Cech-Implement zum Aktivieren und deaktivieren der LAserabsaugung über einen Button am Control-Panel-PC


//Cech-Comment: Alles neutralsieren, wenn die Station deaktiviert wurde mit dem Soft-Button am Hauptbildschirm	
		IF gTaster_Tisch_6_aus = TRUE THEN
			gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
			gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
			gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
			gMerker_RFID_Tisch_6_gelesen := TRUE;		
			Tisch_6_Automatik := 0;
			Tisch_6 := 0;
			Tisch_6_Manuell := 0;
	END_IF
	
	
//Cech-Comment: In diesem und den nachfolgenden IFs werden die drei möglichen Zustände von der LAser-SPS (MAnuell, Halbauto, Auto) auf die Linien-SPS übernommen
	IF gDI_Laser_Automatik = TRUE AND gDI_Laser_Manuell = FALSE THEN
		gMerker_Laser_Automatik := TRUE;
		gMerker_Laser_Halbautomatik := FALSE;
		gMerker_Laser_Manuell := FALSE;
	END_IF
	
	IF gDI_Laser_Manuell = TRUE AND gDI_Laser_Automatik = FALSE THEN
		gMerker_Laser_Automatik := FALSE;
		gMerker_Laser_Halbautomatik := FALSE;
		gMerker_Laser_Manuell := TRUE;
	END_IF
	
	IF gDI_Laser_Manuell = FALSE AND gDI_Laser_Automatik = FALSE THEN
		gMerker_Laser_Automatik := FALSE;
		gMerker_Laser_Halbautomatik := TRUE;
		gMerker_Laser_Manuell := FALSE;
	END_IF
	
	
	
	CASE Tisch_6_Manuell OF		//Cech-Comment: Handbetrieb (meiner Meinung nach nicht sauber, Fehler drinnen)
		
		0:		// Cech-Comment: Ich schätze, dass hier der manuelle Laserbetrieb initiiert wird, indem eine WST-"Beladung" initiiert wird (IF: WST in LASer und wird ausgefahren, ELSE-IF: Kein WSt in LAser)
		IF gMerker_Laser_Manuell = TRUE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND Tisch_6 = 0 THEN	
			gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
			gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
			Tisch_6_Manuell := 10;
		ELSIF gMerker_Laser_Manuell = TRUE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = FALSE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND Tisch_6 = 0 THEN
			gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
			gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
			gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
			Tisch_6_Manuell := 20;
			END_IF
			
		10:		//Cech-Comment: Warten, bis der WST die Station verlassen hat und alles ausfahren (Warum Aushebeeinheit?)
		IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
			gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN; //Im Handbetrieb wird jeenfalls die Aushebeeinheit ausgefahren. Wahrscheinlich, damit händisch ein WST oder Sonstiges eingelegt werden kann
			gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
			gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
			Tisch_6_Manuell := 20;
		END_IF
		
		20:		//Cech-Comment: Wenn HAndbetrieb beendet wird am LAser-Umschalter, dann wird die Aushebeeinheit runtergafehren und die LAserabsaugung ausgeschaltet
		IF gMerker_Laser_Manuell = FALSE THEN	
			gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
			gDO_Laser_Absaugung := FALSE;
			Tisch_6_Manuell := 30;
		END_IF
		
		30: 	//Cech-Comment: Warten, bis die Aushebeeinheit unten ist. Dann wird der Stopper eingefahren, wenn ein WST wartet, bzw. der Prozess von vorne gestartet, wenn kein WST beim Vorstopper wartet
			lWarten_Aushebeeinheit_Tisch_6 := lWarten_Aushebeeinheit_Tisch_6 + (RTInfo_0.cycle_time/1000);
		IF gTisch_6.Inputs.Vor_Stopper = TRUE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
			gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
			lWarten_Aushebeeinheit_Tisch_6 := 0;	
			Tisch_6_Manuell := 40;
		ELSIF gTisch_6.Inputs.Vor_Stopper = FALSE AND lWarten_Aushebeeinheit_Tisch_6 >= 500 THEN
				lWarten_Aushebeeinheit_Tisch_6 := 0;	
				Tisch_6_Manuell := 0;
		END_IF
		
		40:		// ... und  der Stopper wird wieder ausgefahren
		IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
			gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
			Tisch_6_Manuell := 0;
		END_IF
				
	END_CASE
	
	
	CASE Tisch_6 OF		//Cech-Comment: Halbautomatik; Hier wird ein WST eingefahren bzw. auch ausgefahren;

		0:		//Cech-Comment: Wenn ein WST vor dem LAser wartet und der Stausensor nicht anschlägt, aber der RFID gelesen wurde, wird die Aushebeeinheit hochgefahren (offensichtlich befindet sich ein WST in der Station
		IF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE (*AND gMerker_RFID_Tisch_6_gelesen = TRUE *) THEN
			gMerker_Debug_Test_Counter := 11;
			gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
			gMerker_RFID_Tisch_6_gelesen := FALSE;
				Tisch_6 := 10;
			//Cech-Comment: Wen kein WST wartet aber RFID gelesen wurde, dann wird auch die Aushebeeinheit ausgefahren (offensichtlich befindet sich ein WST in der Station)
		ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND gTaster_Tisch_6_aus = FALSE (*AND gMerker_RFID_Tisch_6_gelesen = TRUE*) THEN
				gMerker_Debug_Test_Counter := 12;
				gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
				gMerker_RFID_Tisch_6_gelesen := FALSE; 
				Tisch_6 := 10;
			//Cech-Comment: Wenn kein WST in der Station, aber einer davor, dann werden die Sietentüren geöffnet und der Vorstopper wird freigegeben
		ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN
				gMerker_Debug_Test_Counter := 13;
				gDO_Laser_Seitentuer_oeffnen := TRUE;
				gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
				Tisch_6 := 200; /// war 110
			//Cech-Comment: Wenn entweder Vorstopper oder Stopper eingefahren sind, dann werden beide wieder ausgefahren
		ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = TRUE AND gMerker_Laser_Automatik = FALSE AND Tisch_6_Manuell = 0 AND gTaster_Tisch_6_aus = FALSE AND (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = TRUE) THEN
				gMerker_Debug_Test_Counter := 14;
				gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6 := 0;
		END_IF		
		
//

		10:		//Cech-Comment: Ich schätze, mit diesen Ports wird das LASern aus Liniensicht freigegeben (mit Start Absaugung) und bereits das Port für das Öffnen der Seitentüren gesetzt, damit LAser-SPS öffnet, wenn gelasert wurde
			IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
				gMerker_Debug_Test_Counter := 110;
				gDO_Start_Laser := TRUE;
				gDO_Laser_Seitentuer_oeffnen := FALSE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein FALSE hergehört und unter 20: dann gDO_Laser_Seitentuer_oeffnen := TRUE; das müsste ich ausprobieren
			Tisch_6 := 20;
		END_IF
		
		20:		//Cech-Comment: Wenn der grüne TAster gedrückt wurde (Offensichtlich ist das LAsern beendet und der WST kann ausgefahren werden) dann wird der WST ausgefahren
			IF gTisch_6.Inputs.Start = TRUE THEN		//Cech-Comment: Dieser Input ist der grüne Taster unter dem Panal-PC, der HW-mäßig auf den Input 0 der 16 Input-Kanäle des Input-Moduls verdrahtet ist
				gMerker_Debug_Test_Counter := 120;
				gDO_Start_Laser := FALSE;
				gDO_Laser_Absaugung := FALSE;
				gDO_Laser_Seitentuer_oeffnen := TRUE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein TRUE hergehört und unter 10: dann gDO_Laser_Seitentuer_oeffnen := FALSE; das müsste ich ausprobieren
			gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
			Tisch_6 := 30;
		END_IF

		30:		//Cech-Comment: WST wird rausgelassen
		IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
				gMerker_Debug_Test_Counter := 130;
				gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
			Tisch_6 := 40;
		END_IF

		40: 	//Cech-Comment: Wenn der NAchstopper_Sensor einmal ein ...
		IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN	
				gMerker_Debug_Test_Counter := 140;
				Tisch_6 := 45;
		END_IF	
		
		45:		// ... und wieder aus geht, dann kann der Stopper wieder ausgefahren werden
		IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN	
				gMerker_Debug_Test_Counter := 145;
				gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
			Tisch_6 := 50;	
		END_IF

		50:		//Cech-Comment: WEnn der WST am Stausensor vorbei ist, also ein ...
		IF gTisch_6.Inputs.Stausensor = TRUE THEN
				gMerker_Debug_Test_Counter := 150;
				Tisch_6 := 60;
		END_IF

		60:		// ... und wieder aus, dann wird der Prozess von oben wieder begonnen
		IF gTisch_6.Inputs.Stausensor = FALSE THEN
				gMerker_Debug_Test_Counter := 160;
				Tisch_6 := 0;
		END_IF

	//
		// Cech-Comment: von hier bis excl. 200 wird nicht durchfahren 
		110:
			IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
				gMerker_Debug_Test_Counter := 1110;
				Tisch_6 := 120;
			END_IF

		120:
			IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
				gMerker_Debug_Test_Counter := 1120;
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6 := 130;
			END_IF

		130:
			IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
				(*gDO_Laser_Seitentuer_oeffnen := FALSE;*)
				gMerker_Debug_Test_Counter := 1130;
				Tisch_6 := 0;
			END_IF
		
		200:	//Cech-Comment: Wenn WST am Ausfahrsensor des Stoppers
			IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
				gMerker_Debug_Test_Counter := 1200;
				Tisch_6 := 210;
			END_IF

		210:	//Cech-Comment: WEnn WST am Ausfahrsensor vorbei, dann wird der Stopper wieder ausgefahren
			IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
				gMerker_Debug_Test_Counter := 1210;
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6 := 220;
			END_IF

		220:	// ... und geprüft, ab der SW-Status des Stoppers auf ausgefahren steht
			IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
				gMerker_Debug_Test_Counter := 1220;
				Tisch_6 := 230;
			END_IF
		
		230:	// Cech-Comment: ... und auch tatsächlich schon ausgefahren ist und von vorne begonnen
			IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
				gMerker_Debug_Test_Counter := 1230;
				Tisch_6 := 0;
			END_IF

	END_CASE
	
	CASE Tisch_6_Automatik OF

		0:	//Cech-Comment: Hier werden die Stati vom LaSerwahlschalter und den Stoppern, Schaltern und Sensoren der Station 6 abgefragt und entsprechend in die Case-Schleife verzweigt
			lWarten_Laser_Dauer := 0;
			lWarten_Laser_Startsignal :=0;
			IF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND (*gMerker_RFID_Tisch_6_gelesen = TRUE AND*) gTaster_Tisch_6_aus = FALSE THEN  //Cech-Comment: gTAster_Tisch_6_aus ist der Softbutton am MAain-Panel, wo jede Station deaktiviert werden kann
				lWarten_Laser_Dauer := 0;					//Cech-Implement
				gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
				gMerker_RFID_Tisch_6_gelesen := FALSE;
				Tisch_6_Automatik := 10;
			ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = FALSE AND gTisch_6.Inputs.Vor_Stopper = TRUE AND gTisch_6.Inputs.Stausensor = FALSE AND (*gMerker_RFID_Tisch_6_gelesen = TRUE AND*) gTaster_Tisch_6_aus = FALSE THEN  //Cech-Comment: gTAster_Tisch_6_aus ist der Softbutton am MAain-Panel, wo jede Station deaktiviert werden kann
				lWarten_Laser_Dauer := 0;					//Cech-Implement
				gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
				gMerker_RFID_Tisch_6_gelesen := FALSE;
				Tisch_6_Automatik := 10;
				//Cech-Comment: Wenn ein WST wartet und keiner in der STation ist, weiters entweder der Stausensor anschlägt und/oder der RFID nicht gelesen wird   !!!! Ergibt keinen Sinn für mich!!!! Ev. soll das saubere Anfangsbedingungen schaffen
			ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND gTisch_6.Inputs.Vor_VorStopper = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN  //Cech-Comment: gTAster_Tisch_6_aus ist der Softbutton am MAain-Panel, wo jede Station deaktiviert werden kann
				lWarten_Laser_Dauer := 0;					//Cech-Implement
				gDO_Laser_Seitentuer_oeffnen := TRUE;
				gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
				Tisch_6_Automatik := 200; // war 110
			ELSIF gMerker_Laser_Manuell = FALSE AND gMerker_Laser_Halbautomatik = FALSE AND gMerker_Laser_Automatik = TRUE AND (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = TRUE) AND gTaster_Tisch_6_aus = FALSE THEN  //Cech-Comment: gTAster_Tisch_6_aus ist der Softbutton am MAain-Panel, wo jede Station deaktiviert werden kann
				lWarten_Laser_Dauer := 0;					//Cech-Implement
				gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6_Automatik := 0;
			END_IF		
		
			//

			
			
			
		10:	//Cech-Comment: Laserport zum Starten des Lasers an die Laser-SPS wird eingeschaltet
			IF gMerker_Laser_Automatik = FALSE THEN
				Tisch_6_Automatik := 0;
			ELSE
				IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) (gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE AND gMerker_Laser_Einstellen_fertig = TRUE) THEN //Cech-Implement gMerker_Laser_Einstellen_fertig von Cech eingefügt
					IF gMerker_Laser_Doppelzylinder = TRUE THEN
						gDO_doppelt_lasern := TRUE;
					END_IF
					gDO_Start_Laser := TRUE;	// Cech-Implement, Comment: Das entspricht dem Port "WST in Position", wie es Hr.Ziegler von Bluhm nennt. Wenn Centurio den gMerker_Laser_Einstellen_fertig auf TRUE gesetzt hat darf LAserung gestartet werden
					gDO_Laser_Absaugung := TRUE;
					Tisch_6_Automatik := 15;
				END_IF
			
			END_IF		

		
		
		15: //Cech-Comment: Nach 1000ms wird das Startsignal an den Laser zurückgenommen und weiter mit 20
			lWarten_Laser_Startsignal := lWarten_Laser_Startsignal + (RTInfo_0.cycle_time/1000);
			IF lWarten_Laser_Startsignal >= 1000 THEN  
				//	gDO_Start_Laser := FALSE;  !!!!!!!!!!!!!!!!Dies geht nicht, weil Hr.Ziegler offensichtlich keinen Handshake programmiert hat, sondern "LAsern-fertig" gleich setzt, wenn wir sagen, dass Start-LAser low wird. Es wird nicht fertiggelasert.
				IF gMerker_Laser_Doppelzylinder = TRUE THEN
					Tisch_6_Automatik := 18;
				ELSIF gMerker_Laser_Doppelzylinder = FALSE THEN
					Tisch_6_Automatik :=20;
				END_IF
			END_IF
		18: 
			IF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = TRUE)THEN (* OR lWarten_Laser_Dauer >= 10000 THEN *)  //WEnn das Handshake in LaserSPS aktiv wird, dann kann das ELSIF theoretisch wieder weggenommen werdenTHEN
				// Und hier, beim Doppelzylinder darf die ZEit nicht überprüft werden, weil der Bediener die Doppeltaster drücken muss nach Einstellung von File und Seriennummer
				//Cech-Implement-Anfang
				gDO_Start_Laser := FALSE;
				gMerker_Laser_Einstellen_fertig := FALSE; //Cech-Implement
				gMerker_Laser_Doppelzylinder := FALSE;
				//				gDO_Laser_Seitentuer_oeffnen := TRUE;
				//gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
				//gMerker_RFID_Value_Tisch_6 := 0;
				//gMerker_block_RFID_read_Tisch_6 := TRUE;	//Cech-Comment: Der MErker wenn TRUE blockiert das RFID-LEsen während des Einfahrens der Aushebeeinheit, um nicht neu zu beginnen (RFID kann beim Ausheben die VErbindung verlieren, das soll verhindert werden)
				Tisch_6_Automatik := 20;
				//			ELSIF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = FALSE)
				//				gDO_Start_Laser := FALSE;
				//				gMerker_Laser_Einstellen_fertig := FALSE;
		
				//Cech-Implement-Ende
			END_IF
						
						
			
		20:	//Cech-Comment: Wenn vom LAser das Signal "WST bereit zum ABtransport", also LAsern fertig, kommt, dann wird die Aushebeeinheit eingefahren, der RFID-Wert der Station auf "0" gesetzt
			lWarten_Laser_Dauer := lWarten_Laser_Dauer + (RTInfo_0.cycle_time/1000);		//Cech-Implement
			IF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = TRUE) OR lWarten_Laser_Dauer >= 10000 THEN  //WEnn das Handshake in LaserSPS aktiv wird, dann kann das ELSIF theoretisch wieder weggenommen werdenTHEN
				//Cech-Implement-Anfang
				gDO_Start_Laser := FALSE;
				gDO_Laser_Absaugung := FALSE;
				gMerker_Laser_Einstellen_fertig := FALSE; //Cech-Implement
				gMerker_Laser_Doppelzylinder := FALSE;
				gDO_doppelt_lasern := FALSE;
				//				gDO_Laser_Seitentuer_oeffnen := TRUE;
				gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
				gMerker_RFID_Value_Tisch_6 := 0;
				gMerker_block_RFID_read_Tisch_6 := TRUE;	//Cech-Comment: Der MErker wenn TRUE blockiert das RFID-LEsen während des Einfahrens der Aushebeeinheit, um nicht neu zu beginnen (RFID kann beim Ausheben die VErbindung verlieren, das soll verhindert werden)
				Tisch_6_Automatik := 30;
				//			ELSIF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = FALSE)
				//				gDO_Start_Laser := FALSE;
				//				gMerker_Laser_Einstellen_fertig := FALSE;
				
				//Cech-Implement-Ende
				
			END_IF
					
			
			
		30:	//Cech-Comment: Stopper wird eingefahren
			IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
				gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
				Tisch_6_Automatik := 40;
			END_IF

		40:	//Cech-Comment: schauen, wenn der WST die Station wirklich verlassen hat
			IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN	
				Tisch_6_Automatik := 45;
			END_IF	
		
		45:	//Cech-Comment: Wenn der WST weg ist, wird der Stopper ausgefahren und der RFID-Leser wieder "scharf" geschaltet
			IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN	
				gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
				gMerker_block_RFID_read_Tisch_6 := FALSE;	//Cech-Comment: Damit wird das RFID-Lesen nicht mehr "blockiert"
				Tisch_6_Automatik := 50;	
			END_IF

		50:	//Cech-Comment: Wenn der Stausensor nach dem Laser den WST anzeigt und ...
			IF gTisch_6.Inputs.Stausensor = TRUE THEN
				Tisch_6_Automatik := 60;
			END_IF

		60:	//Cech-Comment: ...und vorbei ist, dann wird der Prozess wieder von Vorne begonnen
			IF gTisch_6.Inputs.Stausensor = FALSE THEN
				Tisch_6_Automatik := 0;
			END_IF

			//

//Cech-Comment: Wird meiner Meinung nach im Augenblick nicht mehr ausgeführt bis excl. 200:
		110:
			IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
				Tisch_6_Automatik := 120;
			END_IF

		120:
			IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6_Automatik := 130;
			END_IF

		130:
			IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
				Tisch_6_Automatik := 0;
			END_IF
//Cech-Comment: Wird meiner Meinung nach im Augenblick nicht mehr ausgeführt seit 110:			

			
		200:	//Cech-Comment: Warten, bis ein WST den Stopper sicher verlassen hat ...
			IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
				Tisch_6_Automatik := 210;
			END_IF

		210:	// .... dann wird der Stopper ausgefahren
			IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
				gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_6_Automatik := 220;
			END_IF

		220:	// .... Wenn dann der Stopper ausgefahren ist, dann 
			IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
				Tisch_6_Automatik := 230;
			END_IF
		
		230:	// ... wird wieder von Vorne begonnen 
			IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
				Tisch_6_Automatik := 0;
			END_IF
		
	END_CASE

END_PROGRAM

PROGRAM _EXIT
	(* Insert code here *)
	 
END_PROGRAM

