Skip to main content

Salto

codice G: G20

Funzione: Il comando esegue un salto condizionato.

Sintassi

G20 L K

Parola in codice G

Descrizione

L

. Obiettivo di salto:
  • Numero di riga definito (esempio: L20)

  • Etichetta di salto

    Il salto è definito da un punto interrogativo e da un indice (esempio: L?4). Il comando per il bersaglio del salto stesso è identificato da un punto esclamativo e dall'indice corrispondente (esempio: L!4). Il target di salto può essere collegato a qualsiasi comando in codice G.

    Questo salto viene utilizzato per i programmi CNC generati automaticamente quando la linea di destinazione è sconosciuta.

    I salti con destinazioni sconosciute per saltare le etichette funzionano solo nel decodificatore online (non nell'editor CNC).

    Presupposto: la riga con l'etichetta di salto deve trovarsi dopo la riga con il comando di salto. Non è possibile "saltare indietro". Se la "linea di destinazione" non è definita, i comandi che seguono il comando di salto non vengono eseguiti.

K

Condizione

Se K <> 0, il salto viene eseguito. Se K non è definito, viene utilizzata una variabile di decodifica interna.

Il valore della variabile del decodificatore interno può essere definito con Modifica dei valori delle variabili comando. Il valore predefinito di questa variabile interna è -1.

Esempio 25. Esempio: eseguire il salto fino al contatore interno = 0

Dieci righe sono collegate tra loro dalla relativa modalità. Ciò si traduce in un movimento di linea a 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)


Esempio 26. Esempio: valutare la condizione di salto al momento della decodifica

Requisito: Il comportamento della variabile bvar è programmato nell'applicazione. Se l'asse X supera la posizione 15, allora bvar FALSE è impostato. (bVar è inizialmente impostato su TRUE.)

Nel primo ciclo di programma, la posizione X è 10 e il programma salta alla riga 20. Il ciclo viene eseguito continuamente perché la valutazione della condizione avviene al momento della decodifica e l'interpolatore non è stato ancora avviato o è occupato con l'elaborazione di oggetti all'inizio del buffer. Questa condizione è soddisfatta e il decodificatore salta fuori dal ciclo solo dopo che sono stati generati abbastanza oggetti da riempire il buffer e l'interpolatore inizia l'elaborazione.

Nella seconda esecuzione, l'asse X non è ancora nella posizione 20. La condizione non è soddisfatta e bVar non era impostato su FALSE nel codice IEC.

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)


Esempio 27. Esempio: inserire la sincronizzazione dei tempi

G75 esegue una sincronizzazione temporale dell'interpolatore. G75 sospende l'elaborazione del decoder fino a quando l'interpolatore e la meccanica raggiungono la rispettiva posizione.

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)

Per ulteriori informazioni, vedere: Sincronizzazione dei tempi con l'interpolatore



Esempio 28. Esempio: etichetta salta per saltare

Nota: i salti alle etichette di salto funzionano solo nel decoder online (non nell'editor 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