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