PROGRAM _INIT

	Tisch_1 := 0;

END_PROGRAM

PROGRAM _CYCLIC
	
		IF (gTisch_1.Inputs.Vor_Stopper = TRUE AND gTisch_1.Inputs.Stausensor = FALSE AND Tisch_1 = 0) OR (gTisch_1.Inputs.Vor_VorStopper = TRUE AND gTisch_1.Inputs.Vor_Stopper = FALSE AND Tisch_1 = 0) THEN
			gTisch_1.Outputs.Lampe_Start := TRUE;
		ELSE
			gTisch_1.Outputs.Lampe_Start := FALSE;
		END_IF
	
		IF gTaster_Tisch_1_aus = TRUE THEN
			gTisch_1.Cmd.Stopper := KMD_EINFAHREN;
			gTisch_1.Cmd.Vorstopper := KMD_EINFAHREN;
			gMerker_RFID_Tisch_1_gelesen := TRUE;
			Tisch_1 := 0;
		END_IF

	CASE Tisch_1 OF

		0:
		IF gTisch_1.Inputs.Start = TRUE AND gTisch_1.Inputs.Vor_VorStopper = TRUE AND gTisch_1.Inputs.Vor_Stopper = TRUE AND gTisch_1.Inputs.Stausensor = FALSE AND gTaster_Tisch_1_aus = FALSE (*AND gMerker_RFID_Tisch_1_gelesen = TRUE*) THEN
			gTisch_1.Cmd.Stopper := KMD_EINFAHREN;
			gMerker_RFID_Tisch_1_gelesen := FALSE;
			gMerker_Tisch_1_lesen_fertig := FALSE;
			Tisch_1 := 10;
		ELSIF gTisch_1.Inputs.Start = TRUE AND gTisch_1.Inputs.Vor_VorStopper = FALSE AND gTisch_1.Inputs.Vor_Stopper = TRUE AND gTisch_1.Inputs.Stausensor = FALSE AND gTaster_Tisch_1_aus = FALSE (*AND gMerker_RFID_Tisch_1_gelesen = TRUE*) THEN
				gTisch_1.Cmd.Stopper := KMD_EINFAHREN;
				gMerker_RFID_Tisch_1_gelesen := FALSE;
				gMerker_Tisch_1_lesen_fertig := FALSE;
				Tisch_1 := 70;
		ELSIF gTisch_1.Inputs.Start = TRUE AND gTisch_1.Inputs.Vor_VorStopper = TRUE AND gTisch_1.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_1_aus = FALSE THEN
				gTisch_1.Cmd.Vorstopper := KMD_EINFAHREN;
				Tisch_1 := 110;
		ELSIF gTaster_Tisch_1_aus = FALSE AND gTisch_1.Inputs.Stopper_eingefahren = TRUE AND gTisch_1.Inputs.Vorstopper_eingefahren = TRUE THEN
				gTisch_1.Cmd.Stopper := KMD_AUSFAHREN;
				gTisch_1.Cmd.Vorstopper := KMD_AUSFAHREN;
				Tisch_1 := 0;
		END_IF	
		
//

		10:
		IF gTisch_1.Inputs.Nach_Stopper = TRUE THEN
			Tisch_1 := 20;
		END_IF
		
		20:
		IF gTisch_1.Inputs.Nach_Stopper = FALSE THEN
			gTisch_1.Cmd.Stopper := KMD_AUSFAHREN;
			gTisch_1.Cmd.Vorstopper := KMD_EINFAHREN;
			Tisch_1 := 30;
		END_IF

		30:
		IF gTisch_1.Inputs.Nach_Vorstopper = TRUE THEN
			Tisch_1 := 40;
		END_IF

		40:
		IF gTisch_1.Inputs.Nach_Vorstopper = FALSE THEN
			gTisch_1.Cmd.Vorstopper := KMD_AUSFAHREN;
			Tisch_1 := 50;
		END_IF

		50:
		IF gTisch_1.Inputs.Stausensor = TRUE THEN
			Tisch_1 := 60;
		END_IF

		60:
		IF gTisch_1.Status.Vorstopper = STATUS_AUSGEFAHREN AND gTisch_1.Status.Stopper = STATUS_AUSGEFAHREN THEN
			Tisch_1 := 0;
		END_IF

//      	

		70:
		IF gTisch_1.Inputs.Nach_Stopper = TRUE THEN
			Tisch_1 := 80;
		END_IF

		80:
		IF gTisch_1.Inputs.Nach_Stopper = FALSE THEN
			gTisch_1.Cmd.Stopper := KMD_AUSFAHREN;
			Tisch_1 := 90;
		END_IF

		90:
		IF gTisch_1.Inputs.Stausensor = TRUE THEN
			Tisch_1 := 100;
		END_IF

		100:
		IF gTisch_1.Status.Stopper = STATUS_AUSGEFAHREN THEN
			Tisch_1 := 0;
		END_IF

//

		110:
		IF gTisch_1.Inputs.Nach_Vorstopper = TRUE THEN
			Tisch_1 := 120;
		END_IF

		120:
		IF gTisch_1.Inputs.Nach_Vorstopper = FALSE THEN
			gTisch_1.Cmd.Vorstopper := KMD_AUSFAHREN;
			Tisch_1 := 130;
		END_IF

		130:
		IF gTisch_1.Inputs.Vor_Stopper = TRUE AND gTisch_1.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
			Tisch_1 := 0;
		END_IF

	END_CASE
		
	END_PROGRAM

PROGRAM _EXIT
	(* Insert code here *)
	 
END_PROGRAM