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.

Es gibt zwei Möglichkeiten der Programmierung von Sprunganweisungen:

Expression – Label:

N <expr> : Definition
$GOTO N <expr> | $GOTO N<expr>: Sprungaufruf

String – Label:

[ <string> ]  Definition
$GOTO [ <string> ]  Sprungaufruf

Eigenschaften:

Programmierbeispiel

%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)
N55 $ELSE
N60 Y40
N65: X40
N70 $ENDIF
N80 Z99
N999 M30
Die $GOTO-Anweisung 1:
Abbildung 10-1: Schematische Darstellung des Sprungbefehls $GOTO

Programmierbeispiel

N10 G1 XY 
N20: X100 (Label Definition N20 J
$IF V.L.dummy_1 <100 $GOTO N20(Sprung zu Label N20 (or N20 J )
$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 ...
...