TwinCat 3 Break, Exit, Return und Continue

Ärmel

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey mit einander, folgendes:

Ich darf mich für die Technikerschule in TwinCat 3 (Programmieren dann in ST)einarbeiten und bin derzeit bei den Schleifen, so weit, so gut.

Jetzt bin ich auf die Befehle Exit, Return und Continue gestoßen.
Leider werden Sie im Beckhoff Infosys kaum beschrieben, was ich bislang weiß:

Exit:
Wenn die EXIT-Anweisung in einer FOR-, WHILE- oder REPEAT-Schleife vorkommt, dann wird die innerste Schleife beendet, ungeachtet der Abbruchbedingung.
Die EXIT-Anweisung verwenden Sie in einer FOR-, WHILE- oder REPEAT-Schleife, um die Schleife zu beenden, ungeachtet anderer Abbruchbedingungen.

Verstehe ich soweit, allerdings ist mir nicht klar, wo das in der Praxis genutzt wird?



Return:
Die RETURN-Anweisung kann man verwenden, um eine Baustein zu verlassen, beispielsweise abhängig von einer Bedingung.

Verstehe ich es richtig, dass ich hiermit beispielsweise wenn ich einen FB in Main aufgerufen habe und in diesem FB der Exit befehl erreicht wird der Baustein komplett verlassen wird und ich ins Main "zurückspringe"?
Was wäre hier ein Praxisbeispiel?

Continue:
Die Anweisung verwenden Sie innerhalb von FOR-, WHILE-, und REPEAT-Schleifen, damit die Ausführung zum Anfang des nächsten Schleifendurchlaufs springt.

Ist soweit klar, gibt es noch wichtige Sachen die euch dazu einfallen?



Ausserdem bin ich durch das Infosys bei der Suche nach der Continue Funktion auch auf die Break Funktion gestoßen, die laut meinem Lehrer auch funktioniert, allerdings finde ich dazu keine Informationen im Beckhoff Infosys und als Schlüsselwort ist es auch nicht deklariert.
Kann mir jemand erklären wie ich das lauffähig programmiere?


Vielen Danke schonmal

LG
Ärmel
 
Zunächst einmal sind Schleifen bei SPSen sehr mit Vorsicht zu genießen, da man damit die SPS mit etwas (un)Geschick ganz schnell in den Stop bekommt (Stichwort: Zykluszeitüberschreitung).
Exit:
Wenn die EXIT-Anweisung in einer FOR-, WHILE- oder REPEAT-Schleife vorkommt, dann wird die innerste Schleife beendet, ungeachtet der Abbruchbedingung.
Die EXIT-Anweisung verwenden Sie in einer FOR-, WHILE- oder REPEAT-Schleife, um die Schleife zu beenden, ungeachtet anderer Abbruchbedingungen.

Verstehe ich soweit, allerdings ist mir nicht klar, wo das in der Praxis genutzt wird?
Wenn man mit einer FOR-Schleife z.B. etwas sucht kann diese mit EXIT sobald man das Richtige gefunden hat beendet werden und muss nicht bis zum Ende durchlaufen werden.
Return:
Die RETURN-Anweisung kann man verwenden, um eine Baustein zu verlassen, beispielsweise abhängig von einer Bedingung.

Verstehe ich es richtig, dass ich hiermit beispielsweise wenn ich einen FB in Main aufgerufen habe und in diesem FB der Exit befehl erreicht wird der Baustein komplett verlassen wird und ich ins Main "zurückspringe"?
Was wäre hier ein Praxisbeispiel?
Ein FB, FC oder Programm wird normalerwiese immer bis zur letzten Anweisung ausgeführt und dann wird die nächste Zeile des aufrufenden Programms oder FBs ausgeführt. Es kann nun sein, dass unter bestimmten Bedingungen die Bearbeitung der weiteren Befehle in einem FB nicht sinnvoll ist, dann würde dieser mit Return verlassen werden und die folgenden Befehle ignoriert. Soll z.B. bei einem Programm nur bei einer bestimmten Bedingung weitere Befehle ausgeführt werden und bei diesen Befehlen gibt es dann wieder Befehle, die nur bei einer weiteren Bedingung ausgeführt werden sollen, usw., kann man das natürlich auch mit IF-Abfragen machen. Das kann aber je nach Anzahl der Bedingungen ünübersichtlich werden.
Ausserdem bin ich durch das Infosys bei der Suche nach der Continue Funktion auch auf die Break Funktion gestoßen, die laut meinem Lehrer auch funktioniert, allerdings finde ich dazu keine Informationen im Beckhoff Infosys und als Schlüsselwort ist es auch nicht deklariert.
Kann mir jemand erklären wie ich das lauffähig programmiere?

Hättest Du da mal bitte einen Link wo Du das gelesen hast? Ich kenne in TC3 nämlich keine BREAK.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hey, danke schonmal für die Beispiele, klingt logisch.
Wie kann ich am einfachsten für die Klasse verständlich zeigen, dass z.b. beim EXIT Befehl tatsächlich sobald EXIT erreicht wird die Schleife beendet wird?
Ich könnte ja beispielsweise ein Array mit 20 Zahlen füllen und nach der Zahl 15 suchen und sobald die Zahl 15 ist die Schleife durch EXIT verlassen. Kann ich das nur durch Einzelschritte sichtbar machen oder gibt es da eine schönere Möglichkeit?

Tatsächlich hab ich den Break Befehl im Infosys nur unter dem Reiter für CNC Programmierung gefunden: https://infosys.beckhoff.de/index.p...cncprogramming/html/diebreakanweisung.htm&id=

Auf Nachfrage meinte mein Lehrer allerdings dass das für ST genauso gehen würde, wie in C# auch.

LG

Ärmel
 
Und das hat er bestimmt auch schon ausprobiert, oder? :ROFLMAO:
NC ist nicht PLC, und in der PLC ist BREAK nicht definiert.

Das hab ich zumindest gedacht.

Ich hab jetzt noch Beckhoff direkt angeschrieben, ich denke mal viel mehr kann ich dann auch nicht machen. :confused:

Vielen Dank euch soweit, wenn euch Beispiele einfallen, wie ich das am besten darstellen kann, dass der Baustein verlassen wird gerne sagen ;)

Beim verlassen der Schleife kann ich es ja einfach daran zeigen, dass der Counter bei einer For-Schleife nicht komplett bis zum Endwert zählt wenn Exit erreicht wird, aber auf die For-Schleife folgende Anweisungen ausgeführt werden.

Wie ich das beim Baustein verlassen (Return Befehl) darstellen soll ist mir noch nicht ganz klar

LG

Ärmel
 
Danke für dein Beispiel, werde ich so umsetzten

Hab jetzt auch eine Antwort vom Support, die Break Anweisung gibts wie Ihr sagt nicht.
Was ich jetzt davon halten soll, dass mein Lehrer meint ich soll die Break Anweisung vorstellen weiß ich selbst nicht haha.

Vielen Dank euch für die Hilfe:s1:

LG Ärmel
 
Zurück
Oben