Browse Source

Sicher ist sicher

jcech 2 years ago
parent
commit
ba5b814723
3 changed files with 25 additions and 10 deletions
  1. 1 0
      Logical/Global.var
  2. 2 1
      Logical/TischProgramme/Tisch4/Main.st
  3. 22 9
      Logical/TischProgramme/Tisch6/Main.st

+ 1 - 0
Logical/Global.var

@@ -27,6 +27,7 @@ VAR
 	gMerker_Laser_Automatik : BOOL;
 	gMerker_Laser_Doppelzylinder : BOOL; (*Cech-Implement: Centurio fordert aus dem Produktcode eine Doppellaserung für einen Doppelzylinder*)
 	gMerker_Laser_Einstellen_fertig : BOOL; (*Cech-Implement: Laser ist fertig eingestellt mit LAserfile und Seriennummer und bereit für das Startsignal von Linien-SPS "gVK_Start_Laser"*)
+	gMerker_Laser_erforderlich : BOOL; (*Cech-Implement: Centurio teilt Linien-SPS mit, ab bei dem WST gelasert werden soll oder nicht*)
 	gMerker_Laser_Halbautomatik : BOOL;
 	gMerker_Laser_Manuell : BOOL;
 	gMerker_Liftgate_entriegelt : BOOL;

+ 2 - 1
Logical/TischProgramme/Tisch4/Main.st

@@ -49,7 +49,8 @@ PROGRAM _CYCLIC
 				gTisch_4.Cmd.Vorstopper := KMD_AUSFAHREN;
 				Tisch_4 := 0;
 		END_IF	
-		
+ 
+// Cech-Implement: Hier in 5: habe ich eingefügt, dass der WST zum Photografieren 10s stehen bleibt			
 		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;

+ 22 - 9
Logical/TischProgramme/Tisch6/Main.st

@@ -12,6 +12,8 @@ PROGRAM _INIT
 	RTInfo_0(enable:=1);
 	
 	gMerker_Laser_Einstellen_fertig := FALSE; 	//Cech-Implement
+	gMerker_Laser_Doppelzylinder := FALSE;		//Cech-Implement
+	gMerker_Laser_erforderlich := TRUE;		//Cech-Implement
 		
 END_PROGRAM
 
@@ -105,11 +107,11 @@ PROGRAM _CYCLIC
 	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	
+		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		//Cech-Comment: Wenn WST in Station --> wird ausgefahren
 			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
+		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		// Cech-Comment: Wenn kein WST in der Station steht, dann wird AUshebeeinheit ohne weitere Kontrollen 
 			gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
 			gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
 			gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
@@ -268,15 +270,25 @@ PROGRAM _CYCLIC
 			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
 				gMerker_Debug_Test_Counter := 010;			//Cech-Implement
 				lWarten_Laser_Dauer := 0;					//Cech-Implement
-				gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
-				gMerker_RFID_Tisch_6_gelesen := FALSE;
-				Tisch_6_Automatik := 10;
+				IF 	gMerker_Laser_erforderlich =TRUE THEN	//Cech-Implement für Teile, wenn nichts gelasert werden muss (z.B.nur ein Knauf), dann ist 	gMerker_Laser_erforderlich FALSE
+					gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
+					gMerker_RFID_Tisch_6_gelesen := FALSE;
+					Tisch_6_Automatik := 10;
+				ELSE
+					Tisch_6_Automatic := 30;				//Cech-Implement: WEnn keine LAserung aus dem Produktcode abegeleitet werden kann, wurde von Centurio gMerker_Laser_erforderlich auf FLASE gesetzt --> gleich wieder ausfahren
+				END_IF
+					
 			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
 				gMerker_Debug_Test_Counter := 020;			//Cech-Implement
 				lWarten_Laser_Dauer := 0;					//Cech-Implement
-				gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
-				gMerker_RFID_Tisch_6_gelesen := FALSE;
-				Tisch_6_Automatik := 10;
+				IF 	gMerker_Laser_erforderlich =TRUE THEN	//Cech-Implement für Teile, wenn nichts gelasert werden muss (z.B.nur ein Knauf), dann ist 	gMerker_Laser_erforderlich FALSE
+					gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
+					gMerker_RFID_Tisch_6_gelesen := FALSE;
+					Tisch_6_Automatik := 10;
+				ELSE
+					Tisch_6_Automatic :=30					//Cech-Implement: WEnn keine LAserung aus dem Produktcode abegeleitet werden kann, wurde von Centurio gMerker_Laser_erforderlich auf FLASE gesetzt --> gleich wieder ausfahren
+				END_IF
+				
 				//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
 				gMerker_Debug_Test_Counter := 030;			//Cech-Implement
@@ -300,7 +312,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
@@ -385,6 +397,7 @@ PROGRAM _CYCLIC
 			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"
+				gMerker_Laser_erforderlich := TRUE;			//Cech-Implement: Wäre nicht nötig, weil das Centurio über den Produktcode für jeden WST neu einträgt
 				gMerker_Debug_Test_Counter := 450;
 				Tisch_6_Automatik := 50;	
 			END_IF