Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Problem mit Iteration-Schleife in Codesys

Oschbert
2016-09-08
2016-10-04
  • Oschbert - 2016-09-08

    Guten Morgen,

    ich habe gerade folgendes Problem und weiß leider nicht, wie ich es umsetzen kann.

    Ich muss einen Schritt aus zwei Aktionen immer wiederholen lassen, bis ein bestimmter Sensor anspricht
    und die Schleife beendet. Nun muss ich den Ablauf in AS programmieren, was ich auch schon getan habe, aber leider
    weiß ich nicht, wie ich darin eine Wiederholung integrieren kann.

    Ich versuche es einmal darzustellen:

    Startbedingung
    .
    .
    Schritt 1..Transition 1..Schritt 2..Transition 2
    .
    .
    Endbedingung

    Das fett markierte soll sich nun wiederholen, bis die Endbedingung erfüllt ist.

    Kann mir hier jemand helfen?

    Vielen Dank im Voraus.

    Gruß

     
  • Pitsch - 2016-09-08

    Hallo Oschbert

    Warum müssen es denn 2 Schritte sein? Kannst Du nicht beide Funktionen, oder was auch immer es sein mag, in den gleichen Schritt abarbeiten. Dann ist die warteschleife auch kein Problem. Das geht automatisch. Eventuelle Nachfolge-Aktionen, kannst Du dann in weiteren Schritten verarbeiten.

    Mit freundlichen Grüssen! Pitsch

     
  • Oschbert - 2016-09-09

    Guten Morgen Pitsch,

    ich denke, dass würde schwierig werden.
    Eigentlich ist es eine Bewegungsfolge die folgendermaßen aussieht:

    Bauguppe bewegt sich vor

    Sensor1 geht auf True

    Baugruppe bewegt sich zurück

    Sensor1 geht auf False

    Baugruppe bewegt sich vor

    usw.

    Bis dieser Ablauf irgendwann von einem "Sensor2" unterbrochen/beendet wird.

    Danke und Gruß

    Oschbert

     
  • Pitsch - 2016-09-15

    Hallo Oschbert

    Also das was Du da beschreibst, wenn's nur Das ist, sehe ich nicht ein warum das nicht in einem Schritt realisierbar sein sollte. Natürlich in Verbindung mit einem Timer, machst Du ne IF-Then Else - Endif-Abfrage. Natürlich mit Flankentriggerung des Timersignals. Der IF-Then-Block, soll ja nicht in jedem Zyklus durchlaufen werden. Und in der Transition, baust Du dann das Signal vom Sensor, der das ganze beenden soll, ein. Dann kommt der nächste Schritt usw.....

    Mit freundlichen Grüssen! Pitsch

     
  • RolandWagner

    RolandWagner - 2016-10-04

    Was helfen könnte:
    Du packst Schritt1 und Schritt2 in parallele Zweige und setzt noch eine Schritt-Transition danach, in der Du aber im Schritt nichts machst. Am Ende der beiden parallelen Stränge setzt Du Deine Endbedingung.
    Die beiden Schritte werden dann mit jedem Zyklus solange ausgeführt, bis beide Stränge komplett durchlaufen und auch die Endbedingung erfüllt ist.
    Ich weiß jetzt nicht genau, ob das Deiner Anforderung entspricht, klingt mir aber danach...

     

Log in to post a comment.