Browse Source

ST4_10s_for_Opto_KI

jcech 2 years ago
parent
commit
b91c97a288

+ 124 - 104
Logical/TischProgramme/Tisch4/Main.st

@@ -2,6 +2,8 @@
 PROGRAM _INIT
 
 	Tisch_4 := 0;
+	
+	RTInfo_0(enable:=1);
 	 
 	gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
 	gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
@@ -11,116 +13,134 @@ END_PROGRAM
 
 PROGRAM _CYCLIC
 
-//		IF (gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND Tisch_4 = 0) OR (gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND Tisch_4 = 0) THEN
-//			gTisch_4.Outputs.Lampe_Start := TRUE;
-//		ELSE
-//			gTisch_4.Outputs.Lampe_Start := FALSE;
-//		END_IF
-//	
-//		IF gTaster_Tisch_4_aus = TRUE THEN
-//			gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
-//			gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
-//			gMerker_RFID_Tisch_4_gelesen := TRUE;
-//			Tisch_4 := 0;
-//		END_IF
-//	
-//	CASE Tisch_4 OF
-//
-//		0:
-//		IF gTisch_4.Inputs.Start = TRUE AND gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND gTaster_Tisch_4_aus = FALSE AND gMerker_RFID_Tisch_4_gelesen = TRUE THEN
+		IF (gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND Tisch_4 = 0) OR (gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND Tisch_4 = 0) THEN
+			gTisch_4.Outputs.Lampe_Start := TRUE;
+		ELSE
+			gTisch_4.Outputs.Lampe_Start := FALSE;
+		END_IF
+	
+		IF gTaster_Tisch_4_aus = TRUE THEN
+			gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
+			gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
+			gMerker_RFID_Tisch_4_gelesen := TRUE;
+			Tisch_4 := 0;
+		END_IF
+	
+	CASE Tisch_4 OF
+
+		0:
+		IF (*gTisch_4.Inputs.Start = TRUE AND*) gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND gTaster_Tisch_4_aus = FALSE AND gMerker_RFID_Tisch_4_gelesen = TRUE THEN
 //			gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
 //			gMerker_RFID_Tisch_4_gelesen := FALSE;	
 //			Tisch_4 := 10;
-//		ELSIF gTisch_4.Inputs.Start = TRUE AND gTisch_4.Inputs.Vor_VorStopper = FALSE AND gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND gTaster_Tisch_4_aus = FALSE AND gMerker_RFID_Tisch_4_gelesen = TRUE THEN
+			lWarten_Auto_Start_Tisch_4 := 0;	
+			Tisch_4 := 5;
+		ELSIF (*gTisch_4.Inputs.Start = TRUE AND*) gTisch_4.Inputs.Vor_VorStopper = FALSE AND gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Inputs.Stausensor = FALSE AND gTaster_Tisch_4_aus = FALSE AND gMerker_RFID_Tisch_4_gelesen = TRUE THEN
 //				gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
 //				gMerker_RFID_Tisch_4_gelesen := FALSE;
 //				Tisch_4 := 70;
-//		ELSIF gTisch_4.Inputs.Start = TRUE AND gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_4_aus = FALSE THEN
-//				gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
-//				Tisch_4 := 110;
-//		ELSIF gTaster_Tisch_4_aus = FALSE AND gTisch_4.Inputs.Stopper_eingefahren = TRUE AND gTisch_4.Inputs.Vorstopper_eingefahren = TRUE THEN
-//				gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
-//				gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
-//				Tisch_4 := 0;
-//		END_IF	
-//		
-////
-//
-//		10:
-//		IF gTisch_4.Inputs.Nach_Stopper = TRUE THEN
-//			Tisch_4 := 20;
-//		END_IF
-//		
-//		20:
-//		IF gTisch_4.Inputs.Nach_Stopper = FALSE THEN
-//			gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
-//			gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
-//			Tisch_4 := 30;
-//		END_IF
-//
-//		30:
-//		IF gTisch_4.Inputs.Nach_Vorstopper = TRUE THEN
-//			Tisch_4 := 40;
-//		END_IF
-//
-//		40:
-//		IF gTisch_4.Inputs.Nach_Vorstopper = FALSE THEN
-//			gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
-//			Tisch_4 := 50;
-//		END_IF
-//
-//		50:
-//		IF gTisch_4.Inputs.Stausensor = TRUE THEN
-//			Tisch_4 := 60;
-//		END_IF
-//
-//		60:
-//		IF gTisch_4.Status.Vorstopper = STATUS_AUSGEFAHREN AND gTisch_4.Status.Stopper = STATUS_AUSGEFAHREN THEN
-//			Tisch_4 := 0;
-//		END_IF
-//
-////      	
-//
-//		70:
-//		IF gTisch_4.Inputs.Nach_Stopper = TRUE THEN
-//			Tisch_4 := 80;
-//		END_IF
-//
-//		80:
-//		IF gTisch_4.Inputs.Nach_Stopper = FALSE THEN
-//			gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
-//			Tisch_4 := 90;
-//		END_IF
-//
-//		90:
-//		IF gTisch_4.Inputs.Stausensor = TRUE THEN
-//			Tisch_4 := 100;
-//		END_IF
-//
-//		100:
-//		IF gTisch_4.Status.Stopper = STATUS_AUSGEFAHREN THEN
-//			Tisch_4 := 0;
-//		END_IF
-//
-////
-//
-//		110:
-//		IF gTisch_4.Inputs.Nach_Vorstopper = TRUE THEN
-//			Tisch_4 := 120;
-//		END_IF
-//
-//		120:
-//		IF gTisch_4.Inputs.Nach_Vorstopper = FALSE THEN
-//			gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
-//			Tisch_4 := 130;
-//		END_IF
-//
-//		130:
-//		IF gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
-//			Tisch_4 := 0;
-//		END_IF
-//
-//	END_CASE	
+				lWarten_Auto_Start_Tisch_4 := 0;	
+				Tisch_4 := 65;
+		ELSIF (*gTisch_4.Inputs.Start = TRUE AND*) gTisch_4.Inputs.Vor_VorStopper = TRUE AND gTisch_4.Inputs.Vor_Stopper = FALSE AND gTaster_Tisch_4_aus = FALSE THEN
+				gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
+				Tisch_4 := 110;
+		ELSIF gTaster_Tisch_4_aus = FALSE AND gTisch_4.Inputs.Stopper_eingefahren = TRUE AND gTisch_4.Inputs.Vorstopper_eingefahren = TRUE THEN
+				gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
+				gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
+				Tisch_4 := 0;
+		END_IF	
+		
+		5: lWarten_Auto_Start_Tisch_4 := lWarten_Auto_Start_Tisch_4 + (RTInfo_0.cycle_time/1000);
+			IF lWarten_Auto_Start_Tisch_4 >= 10000 THEN
+				gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
+				gMerker_RFID_Tisch_4_gelesen := FALSE;
+				lWarten_Auto_Start_Tisch_4 := 0;
+				Tisch_4 := 10;
+			END_IF		
+
+		10:
+		IF gTisch_4.Inputs.Nach_Stopper = TRUE THEN
+			Tisch_4 := 20;
+		END_IF
+		
+		20:
+		IF gTisch_4.Inputs.Nach_Stopper = FALSE THEN
+			gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
+			gTisch_4.Cmd.Vorstopper := KMD_EINFAHREN;
+			Tisch_4 := 30;
+		END_IF
+
+		30:
+		IF gTisch_4.Inputs.Nach_Vorstopper = TRUE THEN
+			Tisch_4 := 40;
+		END_IF
+
+		40:
+		IF gTisch_4.Inputs.Nach_Vorstopper = FALSE THEN
+			gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
+			Tisch_4 := 50;
+		END_IF
+
+		50:
+		IF gTisch_4.Inputs.Stausensor = TRUE THEN
+			Tisch_4 := 60;
+		END_IF
+
+		60:
+		IF gTisch_4.Status.Vorstopper = STATUS_AUSGEFAHREN AND gTisch_4.Status.Stopper = STATUS_AUSGEFAHREN THEN
+			Tisch_4 := 0;
+		END_IF
+
+ 		
+		65: lWarten_Auto_Start_Tisch_4 := lWarten_Auto_Start_Tisch_4 + (RTInfo_0.cycle_time/1000);
+		IF lWarten_Auto_Start_Tisch_4 >= 10000 THEN
+			gTisch_4.Cmd.Stopper := KMD_EINFAHREN;
+			gMerker_RFID_Tisch_4_gelesen := FALSE;
+			lWarten_Auto_Start_Tisch_4 := 0;
+			Tisch_4 := 70;
+		END_IF		
+     	
+
+		70:
+		IF gTisch_4.Inputs.Nach_Stopper = TRUE THEN
+			Tisch_4 := 80;
+		END_IF
+
+		80:
+		IF gTisch_4.Inputs.Nach_Stopper = FALSE THEN
+			gTisch_4.Cmd.Stopper := KMD_AUSFAHREN;
+			Tisch_4 := 90;
+		END_IF
+
+		90:
+		IF gTisch_4.Inputs.Stausensor = TRUE THEN
+			Tisch_4 := 100;
+		END_IF
+
+		100:
+		IF gTisch_4.Status.Stopper = STATUS_AUSGEFAHREN THEN
+			Tisch_4 := 0;
+		END_IF
+
+
+
+		110:
+		IF gTisch_4.Inputs.Nach_Vorstopper = TRUE THEN
+			Tisch_4 := 120;
+		END_IF
+
+		120:
+		IF gTisch_4.Inputs.Nach_Vorstopper = FALSE THEN
+			gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
+			Tisch_4 := 130;
+		END_IF
+
+		130:
+		IF gTisch_4.Inputs.Vor_Stopper = TRUE AND gTisch_4.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
+			Tisch_4 := 0;
+		END_IF
+
+	END_CASE	
 
 END_PROGRAM
 

+ 4 - 0
Logical/TischProgramme/Tisch4/Variables.var

@@ -0,0 +1,4 @@
+VAR
+	lWarten_Auto_Start_Tisch_4 : UDINT;
+	RTInfo_0 : RTInfo;
+END_VAR

+ 1 - 1
Logical/TischProgramme/Tisch6/Main.st

@@ -300,7 +300,7 @@ PROGRAM _CYCLIC
 		10:	//Cech-Comment: Laserport zum Starten des Lasers an die Laser-SPS wird eingeschaltet
 			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;
+					  gDO_doppelt_lasern := TRUE;
 				END_IF
 				gMerker_Debug_Test_Counter := 100;					//Cech-Implement
 				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