|
@@ -12,8 +12,6 @@ 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
|
|
|
|
|
@@ -107,11 +105,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 //Cech-Comment: Wenn WST in Station --> wird ausgefahren
|
|
|
+ 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;
|
|
|
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 // Cech-Comment: Wenn kein WST in der Station steht, dann wird AUshebeeinheit ohne weitere Kontrollen
|
|
|
+ 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;
|
|
@@ -156,22 +154,26 @@ PROGRAM _CYCLIC
|
|
|
CASE Tisch_6 OF //Cech-Comment: Halbautomatik; Hier wird ein WST eingefahren bzw. auch ausgefahren;
|
|
|
|
|
|
0: //Cech-Comment: Wenn ein WST vor dem LAser wartet und der Stausensor nicht anschlägt, aber der RFID gelesen wurde, wird die Aushebeeinheit hochgefahren (offensichtlich befindet sich ein WST in der Station
|
|
|
- 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
|
|
|
+ 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
|
|
|
+ gMerker_Debug_Test_Counter := 11;
|
|
|
gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
|
|
|
gMerker_RFID_Tisch_6_gelesen := FALSE;
|
|
|
Tisch_6 := 10;
|
|
|
//Cech-Comment: Wen kein WST wartet aber RFID gelesen wurde, dann wird auch die Aushebeeinheit ausgefahren (offensichtlich befindet sich ein WST in der Station)
|
|
|
- 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
|
|
|
+ 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
|
|
|
+ gMerker_Debug_Test_Counter := 12;
|
|
|
gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
|
|
|
- gMerker_RFID_Tisch_6_gelesen := FALSE;
|
|
|
+ gMerker_RFID_Tisch_6_gelesen := FALSE;
|
|
|
Tisch_6 := 10;
|
|
|
//Cech-Comment: Wenn kein WST in der Station, aber einer davor, dann werden die Sietentüren geöffnet und der Vorstopper wird freigegeben
|
|
|
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
|
|
|
+ gMerker_Debug_Test_Counter := 13;
|
|
|
gDO_Laser_Seitentuer_oeffnen := TRUE;
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_EINFAHREN;
|
|
|
Tisch_6 := 200; /// war 110
|
|
|
//Cech-Comment: Wenn entweder Vorstopper oder Stopper eingefahren sind, dann werden beide wieder ausgefahren
|
|
|
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
|
|
|
+ gMerker_Debug_Test_Counter := 14;
|
|
|
gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
|
|
|
Tisch_6 := 0;
|
|
@@ -181,56 +183,65 @@ PROGRAM _CYCLIC
|
|
|
|
|
|
10: //Cech-Comment: Ich schätze, mit diesen Ports wird das LASern aus Liniensicht freigegeben (mit Start Absaugung) und bereits das Port für das Öffnen der Seitentüren gesetzt, damit LAser-SPS öffnet, wenn gelasert wurde
|
|
|
IF (*gTisch_6.Status.Aushebeeinheit = STATUS_AUSGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_ausfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_einfahren = FALSE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 110;
|
|
|
gDO_Start_Laser := TRUE;
|
|
|
- gDO_Laser_Seitentuer_oeffnen := TRUE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein FALSE hergehört und unter 20: dann gDO_Laser_Seitentuer_oeffnen := TRUE; das müsste ich ausprobieren
|
|
|
+ gDO_Laser_Seitentuer_oeffnen := FALSE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein FALSE hergehört und unter 20: dann gDO_Laser_Seitentuer_oeffnen := TRUE; das müsste ich ausprobieren
|
|
|
Tisch_6 := 20;
|
|
|
END_IF
|
|
|
|
|
|
20: //Cech-Comment: Wenn der grüne TAster gedrückt wurde (Offensichtlich ist das LAsern beendet und der WST kann ausgefahren werden) dann wird der WST ausgefahren
|
|
|
IF gTisch_6.Inputs.Start = TRUE THEN //Cech-Comment: Dieser Input ist der grüne Taster unter dem Panal-PC, der HW-mäßig auf den Input 0 der 16 Input-Kanäle des Input-Moduls verdrahtet ist
|
|
|
+ gMerker_Debug_Test_Counter := 120;
|
|
|
gDO_Start_Laser := FALSE;
|
|
|
gDO_Laser_Absaugung := FALSE;
|
|
|
- gDO_Laser_Seitentuer_oeffnen := FALSE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein TRUE hergehört und unter 10: dann gDO_Laser_Seitentuer_oeffnen := FALSE; das müsste ich ausprobieren
|
|
|
+ gDO_Laser_Seitentuer_oeffnen := TRUE; //!!!!!!!!!!!!!!!!!!!!!!Cech-Comment: Könnte mir vorstellen, dass hier ein TRUE hergehört und unter 10: dann gDO_Laser_Seitentuer_oeffnen := FALSE; das müsste ich ausprobieren
|
|
|
gTisch_6.Cmd.Aushebeeinheit := KMD_EINFAHREN;
|
|
|
Tisch_6 := 30;
|
|
|
END_IF
|
|
|
|
|
|
30: //Cech-Comment: WST wird rausgelassen
|
|
|
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;
|
|
|
+ gMerker_Debug_Test_Counter := 130;
|
|
|
+ gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
|
|
|
Tisch_6 := 40;
|
|
|
END_IF
|
|
|
|
|
|
40: //Cech-Comment: Wenn der NAchstopper_Sensor einmal ein ...
|
|
|
IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
|
|
|
- Tisch_6 := 45;
|
|
|
+ gMerker_Debug_Test_Counter := 140;
|
|
|
+ Tisch_6 := 45;
|
|
|
END_IF
|
|
|
|
|
|
45: // ... und wieder aus geht, dann kann der Stopper wieder ausgefahren werden
|
|
|
IF gTisch_6.Inputs.Nach_Stopper = FALSE THEN
|
|
|
- gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
|
|
|
+ gMerker_Debug_Test_Counter := 145;
|
|
|
+ gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
|
|
|
Tisch_6 := 50;
|
|
|
END_IF
|
|
|
|
|
|
50: //Cech-Comment: WEnn der WST am Stausensor vorbei ist, also ein ...
|
|
|
IF gTisch_6.Inputs.Stausensor = TRUE THEN
|
|
|
- Tisch_6 := 60;
|
|
|
+ gMerker_Debug_Test_Counter := 150;
|
|
|
+ Tisch_6 := 60;
|
|
|
END_IF
|
|
|
|
|
|
60: // ... und wieder aus, dann wird der Prozess von oben wieder begonnen
|
|
|
IF gTisch_6.Inputs.Stausensor = FALSE THEN
|
|
|
- Tisch_6 := 0;
|
|
|
+ gMerker_Debug_Test_Counter := 160;
|
|
|
+ Tisch_6 := 0;
|
|
|
END_IF
|
|
|
|
|
|
//
|
|
|
// Cech-Comment: von hier bis excl. 200 wird nicht durchfahren
|
|
|
110:
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1110;
|
|
|
Tisch_6 := 120;
|
|
|
END_IF
|
|
|
|
|
|
120:
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1120;
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
|
|
|
Tisch_6 := 130;
|
|
|
END_IF
|
|
@@ -238,27 +249,32 @@ PROGRAM _CYCLIC
|
|
|
130:
|
|
|
IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
|
|
|
(*gDO_Laser_Seitentuer_oeffnen := FALSE;*)
|
|
|
+ gMerker_Debug_Test_Counter := 1130;
|
|
|
Tisch_6 := 0;
|
|
|
END_IF
|
|
|
|
|
|
200: //Cech-Comment: Wenn WST am Ausfahrsensor des Stoppers
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1200;
|
|
|
Tisch_6 := 210;
|
|
|
END_IF
|
|
|
|
|
|
210: //Cech-Comment: WEnn WST am Ausfahrsensor vorbei, dann wird der Stopper wieder ausgefahren
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1210;
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
|
|
|
Tisch_6 := 220;
|
|
|
END_IF
|
|
|
|
|
|
220: // ... und geprüft, ab der SW-Status des Stoppers auf ausgefahren steht
|
|
|
IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1220;
|
|
|
Tisch_6 := 230;
|
|
|
END_IF
|
|
|
|
|
|
230: // Cech-Comment: ... und auch tatsächlich schon ausgefahren ist und von vorne begonnen
|
|
|
IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
|
|
|
+ gMerker_Debug_Test_Counter := 1230;
|
|
|
Tisch_6 := 0;
|
|
|
END_IF
|
|
|
|
|
@@ -267,37 +283,25 @@ PROGRAM _CYCLIC
|
|
|
CASE Tisch_6_Automatik OF
|
|
|
|
|
|
0: //Cech-Comment: Hier werden die Stati vom LaSerwahlschalter und den Stoppern, Schaltern und Sensoren der Station 6 abgefragt und entsprechend in die Case-Schleife verzweigt
|
|
|
- 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;
|
|
|
+ lWarten_Laser_Startsignal :=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 (*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
|
|
|
lWarten_Laser_Dauer := 0; //Cech-Implement
|
|
|
- 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
|
|
|
+ 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 (*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
|
|
|
lWarten_Laser_Dauer := 0; //Cech-Implement
|
|
|
- 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
|
|
|
-
|
|
|
+ gTisch_6.Cmd.Aushebeeinheit := KMD_AUSFAHREN;
|
|
|
+ gMerker_RFID_Tisch_6_gelesen := FALSE;
|
|
|
+ Tisch_6_Automatik := 10;
|
|
|
//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
|
|
|
lWarten_Laser_Dauer := 0; //Cech-Implement
|
|
|
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 (gTisch_6.Inputs.Stopper_eingefahren = TRUE OR gTisch_6.Inputs.Vorstopper_eingefahren = 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 := 040; //Cech-Implement
|
|
|
lWarten_Laser_Dauer := 0; //Cech-Implement
|
|
|
gTisch_6.Cmd.Stopper := KMD_AUSFAHREN;
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
|
|
@@ -310,23 +314,26 @@ 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;
|
|
|
- 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
|
|
|
- IF gVK_Absaugung = TRUE THEN
|
|
|
+ IF gMerker_Laser_Automatik = FALSE THEN
|
|
|
+ Tisch_6_Automatik := 0;
|
|
|
+ ELSE
|
|
|
+ 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;
|
|
|
+ END_IF
|
|
|
+ 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
|
|
|
gDO_Laser_Absaugung := TRUE;
|
|
|
+ Tisch_6_Automatik := 15;
|
|
|
END_IF
|
|
|
- Tisch_6_Automatik := 15;
|
|
|
- END_IF
|
|
|
+
|
|
|
+ END_IF
|
|
|
+
|
|
|
+
|
|
|
|
|
|
15: //Cech-Comment: Nach 1000ms wird das Startsignal an den Laser zurückgenommen und weiter mit 20
|
|
|
lWarten_Laser_Startsignal := lWarten_Laser_Startsignal + (RTInfo_0.cycle_time/1000);
|
|
|
IF lWarten_Laser_Startsignal >= 1000 THEN
|
|
|
// gDO_Start_Laser := FALSE; !!!!!!!!!!!!!!!!Dies geht nicht, weil Hr.Ziegler offensichtlich keinen Handshake programmiert hat, sondern "LAsern-fertig" gleich setzt, wenn wir sagen, dass Start-LAser low wird. Es wird nicht fertiggelasert.
|
|
|
- gMerker_Debug_Test_Counter := 150;
|
|
|
IF gMerker_Laser_Doppelzylinder = TRUE THEN
|
|
|
Tisch_6_Automatik := 18;
|
|
|
ELSIF gMerker_Laser_Doppelzylinder = FALSE THEN
|
|
@@ -337,7 +344,6 @@ PROGRAM _CYCLIC
|
|
|
IF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = TRUE)THEN (* OR lWarten_Laser_Dauer >= 10000 THEN *) //WEnn das Handshake in LaserSPS aktiv wird, dann kann das ELSIF theoretisch wieder weggenommen werdenTHEN
|
|
|
// Und hier, beim Doppelzylinder darf die ZEit nicht überprüft werden, weil der Bediener die Doppeltaster drücken muss nach Einstellung von File und Seriennummer
|
|
|
//Cech-Implement-Anfang
|
|
|
- gMerker_Debug_Test_Counter := 200;
|
|
|
gDO_Start_Laser := FALSE;
|
|
|
gMerker_Laser_Einstellen_fertig := FALSE; //Cech-Implement
|
|
|
gMerker_Laser_Doppelzylinder := FALSE;
|
|
@@ -359,8 +365,8 @@ PROGRAM _CYCLIC
|
|
|
lWarten_Laser_Dauer := lWarten_Laser_Dauer + (RTInfo_0.cycle_time/1000); //Cech-Implement
|
|
|
IF (gDI_Laser_fertig = TRUE AND gDI_keiner_Stoerung_Laser = TRUE) OR lWarten_Laser_Dauer >= 10000 THEN //WEnn das Handshake in LaserSPS aktiv wird, dann kann das ELSIF theoretisch wieder weggenommen werdenTHEN
|
|
|
//Cech-Implement-Anfang
|
|
|
- gMerker_Debug_Test_Counter := 200;
|
|
|
gDO_Start_Laser := FALSE;
|
|
|
+ gDO_Laser_Absaugung := FALSE;
|
|
|
gMerker_Laser_Einstellen_fertig := FALSE; //Cech-Implement
|
|
|
gMerker_Laser_Doppelzylinder := FALSE;
|
|
|
gDO_doppelt_lasern := FALSE;
|
|
@@ -381,15 +387,12 @@ PROGRAM _CYCLIC
|
|
|
|
|
|
30: //Cech-Comment: Stopper wird eingefahren
|
|
|
IF (*gTisch_6.Status.Aushebeeinheit = STATUS_EINGEFAHREN*) gTisch_6.Outputs.Aushebeeinheit_einfahren = TRUE AND gTisch_6.Outputs.Aushebeeinheit_ausfahren = FALSE THEN
|
|
|
- gMerker_Debug_Test_Counter := 300;
|
|
|
gTisch_6.Cmd.Stopper := KMD_EINFAHREN;
|
|
|
Tisch_6_Automatik := 40;
|
|
|
END_IF
|
|
|
|
|
|
40: //Cech-Comment: schauen, wenn der WST die Station wirklich verlassen hat
|
|
|
IF gTisch_6.Inputs.Nach_Stopper = TRUE THEN
|
|
|
- gMerker_Debug_Test_Counter := 400;
|
|
|
- gDO_Laser_Absaugung := FALSE;
|
|
|
Tisch_6_Automatik := 45;
|
|
|
END_IF
|
|
|
|
|
@@ -397,20 +400,16 @@ 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
|
|
|
|
|
|
50: //Cech-Comment: Wenn der Stausensor nach dem Laser den WST anzeigt und ...
|
|
|
IF gTisch_6.Inputs.Stausensor = TRUE THEN
|
|
|
- gMerker_Debug_Test_Counter := 500;
|
|
|
Tisch_6_Automatik := 60;
|
|
|
END_IF
|
|
|
|
|
|
60: //Cech-Comment: ...und vorbei ist, dann wird der Prozess wieder von Vorne begonnen
|
|
|
IF gTisch_6.Inputs.Stausensor = FALSE THEN
|
|
|
- gMerker_Debug_Test_Counter := 600;
|
|
|
Tisch_6_Automatik := 0;
|
|
|
END_IF
|
|
|
|
|
@@ -437,26 +436,22 @@ PROGRAM _CYCLIC
|
|
|
|
|
|
200: //Cech-Comment: Warten, bis ein WST den Stopper sicher verlassen hat ...
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = TRUE THEN
|
|
|
- gMerker_Debug_Test_Counter := 2000;
|
|
|
Tisch_6_Automatik := 210;
|
|
|
END_IF
|
|
|
|
|
|
210: // .... dann wird der Stopper ausgefahren
|
|
|
IF gTisch_6.Inputs.Nach_Vorstopper = FALSE THEN
|
|
|
gTisch_6.Cmd.Vorstopper := KMD_AUSFAHREN;
|
|
|
- gMerker_Debug_Test_Counter := 2100;
|
|
|
Tisch_6_Automatik := 220;
|
|
|
END_IF
|
|
|
|
|
|
220: // .... Wenn dann der Stopper ausgefahren ist, dann
|
|
|
IF (*gTisch_6.Inputs.Vor_Stopper = TRUE AND*) gTisch_6.Status.Vorstopper = STATUS_AUSGEFAHREN THEN
|
|
|
- gMerker_Debug_Test_Counter := 2200;
|
|
|
Tisch_6_Automatik := 230;
|
|
|
END_IF
|
|
|
|
|
|
230: // ... wird wieder von Vorne begonnen
|
|
|
IF gTisch_6.Inputs.Vor_Stopper = TRUE THEN
|
|
|
- gMerker_Debug_Test_Counter := 2300;
|
|
|
Tisch_6_Automatik := 0;
|
|
|
END_IF
|
|
|
|