Kontrolle#
Einführung#
Die Control-Blöcke in VEXcode steuern den Projektablauf, indem sie Schleifen und Bedingungen verarbeiten und die Ausführung von Blöcken verzögern.
Eine Schleife entsteht, wenn ein Computer denselben Schritt oder dieselbe Gruppe von Schritten so lange wiederholt, bis er zum Stopp aufgefordert wird. Eine Bedingung ist eine Regel, die der Computer prüft, um sein nächstes Vorgehen festzulegen. Beispielsweise kann eine Lampe eingeschaltet werden, wenn der Arm ein Objekt bewegt.
Nachfolgend finden Sie eine Liste der verfügbaren Blöcke:
wait – Unterbricht die Ausführung von Blöcken für eine bestimmte Dauer.
wait until – Die Ausführung von Blöcken wird so lange unterbrochen, bis eine bestimmte Bedingung erfüllt ist.
repeat – Wiederholt eine Reihe von Blöcken eine bestimmte Anzahl Male.
forever – Wiederholt eine Reihe von Blöcken unendlich oft.
repeat until – Wiederholt eine Reihe von Blöcken, bis eine Bedingung erfüllt ist.
while – Wiederholt eine Reihe von Blöcken, solange eine Bedingung erfüllt ist.
if – Führt eine Reihe von Blöcken aus, wenn eine Bedingung wahr ist.
if / else – Führt einen Blocksatz aus, wenn eine Bedingung wahr ist, andernfalls einen anderen.
if / else if / else – Führt je nach mehreren Bedingungen unterschiedliche Blocksätze aus.
break – Verlässt sofort eine repeat, forever, repeat until, oder while Schleife.
Projekt stoppen – Beendet das Projekt.
Warten#
Der wait-Block pausiert die Ausführung mehrerer Blöcke für eine bestimmte Zeitspanne, bevor zum nächsten Block übergegangen wird.
warte (1) Sekunden
Parameter |
Beschreibung |
|---|---|
Zeit |
Die Wartezeit, als positive ganze Zahl oder Dezimalzahl in Sekunden. |
Beispiel
wenn gestartet
[Move to the left, then the right after one second.]
erhöhe [arm v] Position um x:[100] y:[0] z:[0] [mm v] ▶
warte (1) Sekunden
erhöhe [arm v] Position um x:[-100] y:[0] z:[0] [mm v] ▶
Warten Sie, bis#
Der wait until-Stack-Block pausiert die Ausführung mehrerer Blöcke, bis eine bestimmte Bedingung erfüllt ist, bevor zum nächsten Block übergegangen wird.
warte bis <>
Parameter |
Beschreibung |
|---|---|
Zustand |
Die Bedingung, die erfüllt sein muss, bevor zum nächsten Block übergegangen werden kann. |
wiederholen#
Der repeat C-Block führt die darin enthaltenen Blöcke eine festgelegte Anzahl von Malen aus.
wiederhole [10]
Ende
Parameter |
Beschreibung |
|---|---|
mal |
Eine ganze Zahl, die festlegt, wie oft der repeat-Block ausgeführt wird. |
Beispiel
wenn gestartet
[Move in a square pattern.]
wiederhole [4]
erhöhe [arm v] Position um x:[2] y:[0] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[0] y:[2] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[-2] y:[0] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[0] y:[2] z:[0] [Zoll v] ▶
Ende
für immer#
Der endlose C-Block lässt die darin enthaltenen Blöcke immer und immer wieder von vorne beginnen.
für immer
Ende
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Beispiel
wenn gestartet
[Move in a square path forever.]
für immer
erhöhe [arm v] Position um x:[2] y:[0] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[0] y:[2] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[-2] y:[0] z:[0] [Zoll v] ▶
erhöhe [arm v] Position um x:[0] y:[2] z:[0] [Zoll v] ▶
Ende
Wiederholen, bis#
Der repeat until C-Block führt die darin enthaltenen Blöcke so lange wiederholt aus, bis die angegebene Bedingung erfüllt ist.
wiederhole bis <>
Ende
Parameter |
Beschreibung |
|---|---|
Zustand |
Ein Ausdruck oder eine Variable, die vor jedem Schleifendurchlauf geprüft wird. Ist sie falsch, werden die Blöcke wiederholt. Ist sie wahr, wird die Schleife beendet. |
Beispiel
wenn gestartet
[Increment along the x-axis until it's no longer possible.]
wiederhole bis <nicht <[arm v] Position um x:[100] y:[0] z:[0] [mm v] erhöhen?>>
erhöhe [arm v] Position um x:[100] y:[0] z:[0] [mm v] ▶
Ende
setze [arm v] Steuerung auf gestoppt
während#
Der while C-Block führt die darin enthaltenen Blöcke so lange wiederholt aus, wie die angegebene Bedingung erfüllt ist.
solange <>
Ende
Parameter |
Beschreibung |
|---|---|
Zustand |
Ein Ausdruck oder eine Variable, die vor jedem Schleifendurchlauf geprüft wird. Ist sie wahr, werden die Blöcke wiederholt. Ist sie falsch, wird die Schleife beendet. |
Beispiel
wenn gestartet
[Display the 6-Axis Arm's position as it moves.]
bewege [arm v] zu Position x:(-100) y:(200) z:(100) [mm v] ◀ und nicht warten
solange <nicht <[arm v] fertig mit Bewegen?>>
drucke ([arm v] Position [y v] in [mm v]) in Konsole ◀ und Cursor in nächste Zeile
warte [0.25] Sekunden
Wenn#
Der if C-Block führt die darin enthaltenen Blöcke aus, wenn die Bedingung True ist.
wenn <> dann
Ende
Parameter |
Beschreibung |
|---|---|
Zustand |
Ein Ausdruck oder eine Variable, die bei der Ausführung der Anweisung geprüft wird. Ist sie wahr, werden die Blöcke innerhalb des if-Blocks ausgeführt. Ist sie falsch, werden die Blöcke übersprungen. |
Beispiel
wenn gestartet
[Check if the 6-Axis Arm can move to a position.]
wenn <nicht <[arm v] Bewegung zu Position x:[0] y:[0] z:[0] [mm v] möglich?>> dann
drucke [The 6-Axis Arm can't move to this position.] ◀ und Cursor in nächste Zeile
if / else#
Der if / else C-Block bestimmt, welche Blöcke ausgeführt werden, je nachdem, ob die Bedingung True oder False ist.
wenn <> dann
sonst
Ende
Parameter |
Beschreibung |
|---|---|
Zustand |
Ein Ausdruck oder eine Variable, die bei der Ausführung der Anweisung geprüft wird. Ist sie wahr, werden die Blöcke innerhalb des if-Blocks ausgeführt. Ist sie falsch, werden die Blöcke innerhalb des else-Blocks ausgeführt. |
Beispiel
wenn gestartet
[Check if the 6-Axis Arm can or can't move to a position.]
wenn <nicht <[arm v] Bewegung zu Position x:[100] y:[100] z:[100] [mm v] möglich?>> dann
drucke [The 6-Axis Arm can't move to this position.] in Konsole ◀ und Cursor in nächste Zeile
sonst
drucke [The 6-Axis Arm can move to this position.] in Konsole ◀ und Cursor in nächste Zeile
if / else if / else#
Der erweiterbare C-Block if / else if / else wählt anhand von Bedingungen aus, welche Blockgruppe ausgeführt wird:
Die if-Funktion führt ihren Codeblock aus, wenn die Bedingung als True ausgewertet wird.
Die else if-Anweisung prüft zusätzliche Bedingungen nur dann, wenn alle vorherigen Bedingungen als falsch ausgewertet wurden. Es können mehrere else if-Anweisungen verwendet werden.
else führt seinen Codeblock nur dann aus, wenn keine der vorherigen Bedingungen als True ausgewertet wurde.
wenn <> dann
sonst wenn <> dann
sonst
Ende
Parameter |
Beschreibung |
|---|---|
Zustand |
Ein Ausdruck oder eine Variable, die bei der Ausführung der Anweisung geprüft wird. Die erste Bedingung, die wahr ist, führt den entsprechenden Block aus. Sind alle Bedingungen falsch, werden die Blöcke innerhalb des else-Blocks ausgeführt. |
Beispiel
wenn gestartet
[Move until the 6-Axis Arm is at the corner of the tile.]
wenn <[arm v] Position um x:[50] y:[0] z:[0] [mm v] erhöhen?> dann
erhöhe [arm v] Position um x:[50] y:[0] z:[0] [mm v] ▶
sonst wenn <[arm v] Position um x:[0] y:[50] z:[0] [mm v] erhöhen?> dann
erhöhe [arm v] Position um x:[0] y:[50] z:[0] [mm v] ▶
sonst
drucke [The 6-Axis Arm has reached the corner.] in Konsole ◀ und Cursor in nächste Zeile
brechen#
Der break-Block beendet eine Schleife sofort. Dieser Block kann innerhalb von repeat, repeat until, while und forever Blöcken verwendet werden. Break ist nützlich, wenn eine Schleife aufgrund eines Ereignisses im Projekt vorzeitig beendet werden muss, z. B. durch Drücken einer Taste oder durch die Erkennung eines Objekts durch einen Sensor.
Abbruch
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Projekt stoppen#
Der Stop-Projekt-Block beendet ein laufendes Projekt.
Projekt stoppen
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |