TIA SCL FOR Schleife

dreiegick

Level-1
Beiträge
14
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

mein Code:
FOR #i := 0 TO 4 BY 1 DO
IF DB.Array = 1 THEN
DB.Var := 1;
IF #i = 5 THEN
#i soll von vorne starten;
END_IF;
END_IF;
END_FOR;

In meinem Array stehen Zahlenwerte drin und wenn irgendwo eine 1 steht, soll die Variable DB.Var beschrieben werden. Wenn meine Schleife durchgelaufen ist, soll diese eigentlich von vorne starten.
Wie es aussieht kann ich #i nicht auf 0 zurücksetzen...
Wie löse ich das Problem?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was ist das überhaupt für eine Steuerung und welche Software. Ist bei deinem System ein schreibender Zugriff
auf die Indexvariable überhaupt zulässig?

Wo liegt der Sinn, die Schleife zu wiederholen ( gerade im Zusammenhang mit einer zyklischen Steuerung )?
 
@Steffen_13 naja wenn er seine Variable einfach Array genannt hat aber sein datentyp int oder Bool ist dann nicht 😂
@dreiegick Steffen hat recht du solltest sagen welchen part des Arrays er auf 1 abgleichen soll, wenn du IF DB.Array{i} = 1 THEN... verwendest, gleicht er aber in deinem Fall auch nur bis zu deiner 5ten Variable des Arrays ab (Array[0], Array[1]..., Array[4] bei i=5 springt er ja wieder aus der Forschleife..

Liebe Grüße
Ben:)
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich möchte mein komplettes Array, was von DB.Array[0] bis zu DB.Array[4] geht mit dem Wert 1 vergleichen. Mein DB.Array[] ist vom Datentyp ein int. Fall sich in diesem Array die Zahl 1 befindet, soll ein Merker (Bool) gesetzt werden.
Ich möchte das durchgehend das Array auf 1 abgeprüft wird, da sich die Zahlen im Array verändern.

Deshalb dachte ich, ein FOR-Schleife wäre am einfachsten, die das Array durchgeht und wieder von vorne anfängt, wenn das Array durchlaufen ist.

Ich hoffe ich habe das verständlich erklärt :)
 
die das Array durchgeht und wieder von vorne anfängt, wenn das Array durchlaufen ist.
Der Code wird pro Zyklus einmal durchlaufen. Wenn er sofort wieder durchlaufen werden würde ( z.B. durch Manipulation der Indexvariable oder per Sprung ) dann würde die Zykluszeitüberwachung anschlagen und die CPU stoppen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wo soll hier der Sinn liegen? Was wenn er die i-Variable in einer weiteren Schleife benutzt?
Ich würde halt eine vernünftige Auswertung machen, das z.B. nichts gefunden wurde und z.B. ein Bit setzen.
Dachte er möchte, dass die schleife erst durchläuft wenn sein Zähler wirklich den Wert 5 besitzt.

Ich möchte mein komplettes Array, was von DB.Array[0] bis zu DB.Array[4] geht mit dem Wert 1 vergleichen. Mein DB.Array[] ist vom Datentyp ein int. Fall sich in diesem Array die Zahl 1 befindet, soll ein Merker (Bool) gesetzt werden.

Das abgleichen geht wie oben beschrieben, den ganzen Code siehst du ja bei Mike:)
 
Zurück
Oben