PROGRAM _INIT Tisch_6 := 0; Tisch_6_Manuell := 0; gTisch_6.Cmd.Stopper := KMD_EINFAHREN; gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN; gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN; RTInfo_0(enable:=1); 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 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 gDO_Start_Laser := TRUE; ELSIF gVK_Freigabe_manuell = TRUE AND gVK_Start_Laser = FALSE THEN gDO_Start_Laser := FALSE; END_IF 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 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 0: 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; gDO_Laser_Absaugung := TRUE; 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; gDO_Laser_Absaugung := TRUE; Tisch_6_Manuell := 20; END_IF 10: IF gTisch_6.Inputs.Nach_Stopper = TRUE 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 20: IF gMerker_Laser_Manuell = FALSE THEN gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN; gDO_Laser_Absaugung := FALSE; Tisch_6_Manuell := 30; END_IF 30: 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: 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 0: 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 gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN; gMerker_RFID_Tisch_6_gelesen := FALSE; Tisch_6 := 10; 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 gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN; gMerker_RFID_Tisch_6_gelesen := FALSE; Tisch_6 := 10; 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 gDO_Laser_Seitentuer_oeffnen := TRUE; gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN; Tisch_6 := 200; /// war 110 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 gTisch_6.Cmd.Stopper := KMD_AUSFAHREN; gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN; Tisch_6 := 0; END_IF // 10: IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN gDO_Start_Laser := TRUE; gDO_Laser_Absaugung := TRUE; gDO_Laser_Seitentuer_oeffnen := TRUE; Tisch_6 := 20; END_IF 20: IF gTisch_6.Inputs.Start = TRUE THEN gDO_Start_Laser := FALSE; gDO_Laser_Absaugung := FALSE; gDO_Laser_Seitentuer_oeffnen := FALSE; gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN; Tisch_6 := 30; END_IF 30: 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 := 40; END_IF 40: IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN Tisch_6 := 45; END_IF 45: IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN gTisch_6.Cmd.Stopper := KMD_AUSFAHREN; Tisch_6 := 50; END_IF 50: IF gTisch_6.Inputs.Stausensor = TRUE THEN Tisch_6 := 60; END_IF 60: IF gTisch_6.Inputs.Stausensor = FALSE THEN Tisch_6 := 0; END_IF // 110: IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN Tisch_6 := 120; END_IF 120: IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN 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;*) Tisch_6 := 0; END_IF 200: IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN Tisch_6 := 210; END_IF 210: IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN; Tisch_6 := 220; END_IF 220: IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN Tisch_6 := 230; END_IF 230: IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN Tisch_6 := 0; END_IF END_CASE CASE Tisch_6_Automatik OF 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 gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN 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 gTaster_Tisch_6_aus = FALSE AND gMerker_RFID_Tisch_6_gelesen = TRUE THEN 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 = TRUE AND gTisch_6.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_6_aus = FALSE THEN 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 gTaster_Tisch_6_aus = FALSE AND (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = TRUE) THEN gTisch_6.Cmd.Stopper := KMD_AUSFAHREN; gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN; Tisch_6_Automatik := 0; END_IF // 10: IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN gDO_Start_Laser := TRUE; Tisch_6_Automatik := 15; END_IF 15: lWarten_Laser_Startsignal := lWarten_Laser_Startsignal + (RTInfo_0.cycle_time/1000); IF lWarten_Laser_Startsignal >= 500 THEN gDO_Start_Laser := FALSE; Tisch_6_Automatik := 20; END_IF 20: IF gDI_Laser_fertig = TRUE THEN gDO_Start_Laser := FALSE; gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN; gMerker_RFID_Value_Tisch_6 := 0; gMerker_block_RFID_read_Tisch_6 := TRUE; Tisch_6_Automatik := 30; END_IF 30: 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: IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN Tisch_6_Automatik := 45; END_IF 45: IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN gTisch_6.Cmd.Stopper := KMD_AUSFAHREN; gMerker_block_RFID_read_Tisch_6 := FALSE; Tisch_6_Automatik := 50; END_IF 50: IF gTisch_6.Inputs.Stausensor = TRUE THEN Tisch_6_Automatik := 60; END_IF 60: IF gTisch_6.Inputs.Stausensor = FALSE THEN Tisch_6_Automatik := 0; END_IF // 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 200: IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN Tisch_6_Automatik := 210; END_IF 210: IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN; Tisch_6_Automatik := 220; END_IF 220: IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN Tisch_6_Automatik := 230; END_IF 230: 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