G-Code: G20
Funktion: Der Befehl führt einen bedingten Sprung aus.
Syntax
G20 L K
G-Code Wort |
Beschreibung |
---|---|
L |
Sprungziel:
|
K |
Bedingung Wenn K <> 0, wird der Sprung ausgeführt. Wenn K nicht definiert ist, wird eine interne Decoder-Variable verwendet. |
Beispiel: Sprung ausführen bis interner Zähler = 0
10 Geraden werden durch den Relativmodus aneinander gehängt. Daraus resultiert eine Geradenbewegung auf 100/100.
N00 G36 D10 (Setzen des Zählers auf 10)
N10 G91 (Relativer Modus)
N20 G01 X10 Y10 F100 (Bewegung um Distanz 10/10)
N30 G37 D-1 (Zähler dekrementieren)
N40 G20 L20 (Sprung, wenn Zähler != 0)
Beispiel: Sprungbedingung zum Zeitpunkt des Dekodierens auswerten
Voraussetzung: Das Verhalten der Variable bvar
ist in der Applikation programmiert. Wenn die X-Achse die Position 15 überschreitet, wird bvar FALSE
(bVar
ist initial auf TRUE
gesetzt.)
Beim ersten Programmzyklus ist die X-Position 10 und das Programm springt in die Zeile 20. Da die Auswertung der Bedingung zum Zeitpunkt des Decodierens stattfindet und der Interpolator noch nicht gestartet wurde oder mit der Abarbeitung von Objekten vom Anfang des Puffers beschäftigt ist, wird die Schleife fortwährend durchlaufen. Erst wenn so viele Objekte erzeugt wurden, dass der Puffer voll ist und der Interpolator mit der Abarbeitung beginnt, wird diese Bedingung erfüllt und der Decoder springt aus dieser Schleife.
Beim zweiten Durchlauf ist die X-Achse noch nicht auf Position 20. Die Bedingung ist nicht erfüllt und bVar
wurde im IEC-Code nicht auf FALSE
gesetzt.
N0 G92 X0 Y0
N10 G91 (Relativer Modus)
N20 G01 X10 Y10 F100 (Bewegung um Distanz 10/10)
N30 G20 L20 K$bvar$ (Sprung, wenn Zähler != 0)
Beispiel: Zeitsynchronisation einfügen
G75 führt eine Zeitsynchronisation des Interpolators aus. G75 bewirkt, dass der Decoder so lange mit der Verarbeitung pausiert, bis der Interpolator und mit ihm die Mechanik die entsprechende Position erreichen.
N0 G92 X0 Y0
N10 G91 (Relativer Modus)
N20 G01 X10 Y10 F100 (Bewegung um Distanz 10/10)
N25 G75
N30 G20 L20 K$x$ (Sprung, wenn Zähler != 0)
Beispiel: Sprung auf Sprungmarke
Hinweis: Sprünge auf Sprungmarken funktionieren nur im Online-Decoder (nicht im CNC-Editor).
N0 G16 F100 E100 E-100
N10 G20 L?4 //unconditional jump to the unknown target with index 4
N15 G20 L60
N20 G1 X1
N30 G1 X1 L!5 //resolution unknown jump target with index 5
N40 G1 Z1 L!4 //resolution unknown jump target with index 4
N50 G20 L15
N55 G1 Y1
N60 G0 X0 Y0 Z0
Siehe auch