Die $GOTO-Anweisung

Diese Funktionalität bietet neben der Unterprogrammtechnik oder der Verwendung von Steuersatzanweisungen ($IF, $FOR...) eine weitere Möglichkeit der Verzweigung in andere Programmteile. Durch das Setzen von Sprungmarken (s.g. Labeln) im NC-Programm kann durch Aufruf des GOTO-Befehls an jede Stelle des NC-Programmes gesprungen werden.

Syntax:

Es gibt zwei Möglichkeiten der Programmierung von Sprunganweisungen:

Expression Label:

N<satz_nr> :

Definition Sprungziel, Satznummer mit Doppelpunkt

$GOTO N<satz_nr>

Sprungaufruf

String Label:

[<name>]

Definition Sprungziel, Name in eckigen Klammern

$GOTO [<name>]

Sprungaufruf

Eigenschaften:

Programmierbeispiel

Die $GOTO-Anweisung

%goto
N05  P1=1
N06  P2=1
N10  G74 X1 Y2 Z3
N11      X0 Y0 Z0
N15  $IF P1==1 $GOTO N40: ;   Sprung von außen nach N40 in einen
                          ;   Steuerblock
N20  X10
N25  Y10
N30  $IF P1==2
N35    X20
N40:   $IF P2==1
N45    X30
N50:     Y30 $GOTO N65: ;   Sprung nach N65 zwischen Steuersatzebenen
                        ;   IF-ELSE
N51    $ENDIF
N55  $ELSE
N60    Y40
N65:   X40
N70  $ENDIF
N80   Z99
N999  M30
Die $GOTO-Anweisung 1:
Zulässige und nicht zulässige Sprünge beim $GOTO-Befehl

Programmierbeispiel

N10 G1 XY
N20: X100                              ;Label Definition N20:
$IF V.L.dummy_1 <100 $GOTO N20         ;Sprung zu Label N20
$IF V.L.dummy_1 >200
$GOTO [LABEL_1]                        ;Sprung zu Label [LABEL_1]
Y20
$ENDIF
[LABEL_1] X0                           ;Label Definition [LABEL_1]
N30 A0
$FOR V.P.my_var = 0, 4, 1
$IF V.L.dummy_2 <200 $GOTO [CONTINUE]  ;Sprung zu Label [CONTINUE]
$SWITCH V.P.my_var
$CASE 0
V.P.AXE_X=V.P.GROUP[1].position[V.P.my_var]
$BREAK
$CASE 1
V.P.AXE_Y=V.P.GROUP[1].position[V.P.my_var]
$BREAK
$CASE 2
V.P.AXE_Z=V.P.GROUP[1].position[V.P.my_var]
$BREAK
$CASE 3
V.P.AXE_A=V.P.GROUP[1].position[V.P.my_var]
$DEFAULT
$ENDSWITCH
$ENDFOR
[CONTINUE]                       ;Label Definition [CONTINUE]
N1000 ...
...