Skip to main content

Saut

code G: G20

Fonction: La commande exécute un saut conditionnel.

Syntaxe

G20 L K

Mot de code G

La description

L

. Cible de saut :
  • Numéro de ligne défini (exemple : L20)

  • Étiquette de saut

    Le saut est défini par un point d'interrogation et un index, par exemple L?4. La commande de la destination de saut elle-même est identifiée par un point d'exclamation et l'index associé, par exemple L!4. La cible de saut peut être ajoutée à n'importe quelle commande de code G.

    Ce saut est utilisé pour les programmes CNC générés automatiquement lorsque la ligne cible est inconnue.

    Les sauts avec des cibles inconnues vers des étiquettes de saut fonctionnent uniquement dans le décodeur en ligne (pas dans l'éditeur CNC).

    Condition : La ligne avec l'étiquette de saut doit être située après la ligne avec la commande de saut. "Revenir en arrière" n'est pas possible. Si la "ligne cible" n'est pas définie, les commandes suivant la commande de saut ne sont pas exécutées.

K

État

Si K <> 0, alors le saut est exécuté. Si K n'est pas défini, alors une variable de décodeur interne est utilisée.

La valeur de la variable interne du décodeur peut être définie avec le Modification des valeurs des variables commande. La valeur par défaut de cette variable interne est -1.

Exemple 25. Exemple : exécuter le saut jusqu'à ce que le compteur interne = 0

Dix lignes sont reliées entre elles par le mode relatif. Il en résulte un mouvement de ligne à 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)


Exemple 26. Exemple : évaluer la condition de saut au moment du décodage

Exigence : Le comportement de la variable bvar est programmé dans l'application. Si l'axe X dépasse la position 15, alors bvar FALSE est réglé. (bVar est initialement réglé sur TRUE.)

Dans le premier cycle du programme, la position X est 10 et le programme saute à la ligne 20. La boucle est exécutée en continu car l'évaluation de la condition a lieu au moment du décodage et l'interpolateur n'a pas encore démarré ou est occupé avec le traitement d'objets au début du tampon. Cette condition est remplie et le décodeur ne sort de la boucle qu'après avoir généré suffisamment d'objets pour que la mémoire tampon soit pleine et que l'interpolateur commence le traitement.

Dans le deuxième passage, l'axe X n'est pas encore à la position 20. La condition n'est pas remplie et bVar n'était pas réglé sur FALSE dans le code CEI.

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)


Exemple 27. Exemple : Insérer une synchronisation temporelle

G75 exécute une synchronisation temporelle de l'interpolateur. G75 interrompt le traitement du décodeur jusqu'à ce que l'interpolateur et la mécanique atteignent la position respective.

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)

Pour plus d'informations, consultez : Synchronisation temporelle avec l'interpolateur



Exemple 28. Exemple : Aller à l'étiquette de saut

Remarque : Les sauts vers les étiquettes de saut fonctionnent uniquement dans le décodeur en ligne (pas dans l'éditeur CNC).

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