jackoherra
Level-2
- Beiträge
- 7
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Würde bereits gelöst. Vielen Dank an alle.
------------
Hallo zusammen.
Ich bin neu hier und freue mich auf neue Eindrücke und Erfahrungen.
Nun zu meinem Problem.
Ich habe in SCL eine Rückwärts FOR Schleife programmiert die aber leider einfach nicht rückwärts zählen möchte.
Die Anweisung stellt eine Kombination dreier Schieberegister dar welches je 200 Datensätze beinhaltet. Eins für alle Daten und jeweils eins für Maschine 1 und Maschine 2.
Kann hier jemand irgend einen schwerwiegenden Fehler entdecken warum diese Schleifen nicht laufen?
Status wurde life beobachtet. Alle schleifen stehen beim Anfangswert von 199. Was ich noch feststellen konnte ist, dass die erste Zeile der Schleife bearbeitet wird.
In diesem #i1_Schmier stehen schon die 198.
Ich hoffe jemandem fällt hier was ein.
Vielen Dank im Voraus.
Mit freundlichen Grüßen
Markus
------------
Hallo zusammen.
Ich bin neu hier und freue mich auf neue Eindrücke und Erfahrungen.
Nun zu meinem Problem.
Ich habe in SCL eine Rückwärts FOR Schleife programmiert die aber leider einfach nicht rückwärts zählen möchte.
Code:
IF #MOVE_DATABLOCK_M1_P THEN #Blockschmierer_1 := TRUE;
END_IF;
IF #MOVE_DATABLOCK_M2_P THEN
#Blockschmierer_2 := TRUE;
END_IF;
IF #Blockschmierer_1 THEN
FOR #i1 := 199 TO 1 BY -1 DO
#i1_Schmier := #i1 - 1;
"DB_Mengenmessung".Archiv_Daten[#i1] := "DB_Mengenmessung".Archiv_Daten[#i1_Schmier];
"DB_Mengenmessung".Archiv_Daten_M1[#i1] := "DB_Mengenmessung".Archiv_Daten[#i1_Schmier];
END_FOR;
END_IF;
IF #i1 = 1 THEN
"DB_Mengenmessung".Archiv_Daten[0] := "DB_Mengenmessung".Aktuelles_Rohr_M1;
"DB_Mengenmessung".Archiv_Daten_M1[0] := "DB_Mengenmessung".Aktuelles_Rohr_M1;
#Blockschmierer_1 := FALSE;
END_IF;
IF #Blockschmierer_2 THEN
FOR #i2 := 199 TO 1 BY - 1 DO
#i2_schmier := #i2 - 1;
"DB_Mengenmessung".Archiv_Daten[#i2] := "DB_Mengenmessung".Archiv_Daten[#i2_schmier];
"DB_Mengenmessung".Archiv_Daten_M2[#i2] := "DB_Mengenmessung".Archiv_Daten[#i2_schmier];
END_FOR;
END_IF;
IF #i2 = 1 THEN
"DB_Mengenmessung".Archiv_Daten[0] := "DB_Mengenmessung".Aktuelles_Rohr_M2;
"DB_Mengenmessung".Archiv_Daten_M1[0] := "DB_Mengenmessung".Aktuelles_Rohr_M2;
#Blockschmierer_2 := FALSE;
END_IF;
Die Anweisung stellt eine Kombination dreier Schieberegister dar welches je 200 Datensätze beinhaltet. Eins für alle Daten und jeweils eins für Maschine 1 und Maschine 2.
Kann hier jemand irgend einen schwerwiegenden Fehler entdecken warum diese Schleifen nicht laufen?
Status wurde life beobachtet. Alle schleifen stehen beim Anfangswert von 199. Was ich noch feststellen konnte ist, dass die erste Zeile der Schleife bearbeitet wird.
In diesem #i1_Schmier stehen schon die 198.
Ich hoffe jemandem fällt hier was ein.
Vielen Dank im Voraus.
Mit freundlichen Grüßen
Markus
Zuletzt bearbeitet: