# Anweisungen zur Beeinflussung des NC-Programmablaufes

Eine vollständige Liste der Steuersatzanweisungen findet sich in der Befehlsübersicht im Anhang unter Steuersatzanweisungen ($..).

Die Syntax für Steuersatzanweisungen lautet:
$<Anweisung>

<Anweisung> | Steuersatzstrings gemäß Kapitel Bedingte Sprünge. Zwischen $ und <Anweisung> sind keine Leerzeichen erlaubt.

Anweisungen zur Beeinflussung des Programmablaufs (Steuersätze) erlauben die Realisierung von:

- Bedingten Sprüngen, um z.B. in Abhängigkeit eines Messwertes optionale Bearbeitungsschritte auszulösen,
- Zählerschleifen, um mehrfach wiederkehrende Bearbeitungsschritte, z.B. beim Zeilenfräsen oder beim Bohren von Lochkreisen, einfach zu programmieren,
- Schleifen mit Laufbedingung, um mehrfach wiederkehrende Bearbeitungsschritte solange durchlaufen zu lassen, bis eine Abbruchbedingung erfüllt ist. Z.B. soll das Zustellen des Werkzeuges und ein Abspanvorgang solange durchgeführt werden, bis ein bestimmter Koordinatenwert erreicht ist. Schleifen können bei fehlender bzw. nicht erfüllter Laufbedingung als Endlosschleife programmiert werden.

Bei der Verwendung von Steuersätzen gelten die folgenden Regeln:

- In einem NC-Satz darf ausschließlich ein Steuersatz vorhanden sein!
- Steuersatzkonstrukte dürfen geschachtelt werden. Die Schachtelungstiefe ist fest vorgegeben.
- Vor einem Steuersatz darf nur die Satznummer und "/" stehen.
- Im ungültigen Zweig einer Steuersatzanweisung wird auf Syntaxfehler von Satznummern und weiteren (geschachtelten) Steuersatzanweisungen überprüft (siehe Beispiele der IF-ELSE-Verzweigung).

## Programmierbeispiel

Syntaxüberprüfung im ungültigen Zweig:

N10 $IF 0

N20 XY (Hier findet keine Syntaxprüfung statt)

N30 $ENDIF

N10 $IF 0

N20 ...

N30 $IF XY (Syntaxprüfung, da geschachtelte Steuersatzanweisung;)

(Fehlermeldung, da unbekannter Term)

N40 ...

N50 $ENDIF

N60 $ENDIF

N10 $IF 0

NXY (Syntaxprüfung bei Angabe der Satznummer;)

(Fehlermeldung, da unbekannter Term)

N30 $ENDIF

Wegen Ungenauigkeiten bei der Berechnung und internen Darstellung von Parametern können Vergleichsoperationen (siehe Kap. Arithmetische Ausdrücke <expr>) in Steuersatzanweisungen zu einem falschen Ergebnis führen. Deshalb sollte in Zweifelsfällen nicht auf genaue Werte, sondern einen Toleranzbereich abgeprüft werden.

## Programmierbeispiel

FALSCH:

N10 $FOR P1 = 0, 10, 1

N20 P2 = P2 + 0.01

N30 $ENDFOR

N40 $IF P2 == 0.1 (Wegen Rechenungenauigkeiten kann P2)

N50 ... (ungleich 0.1 sein, sodass der $ELSE-)

N60 $ELSE (Zweig durchlaufen wird)

N70 G04 X20

N80 $ENDIF

RICHTIG:

N10 $FOR P1 = 0, 10, 1

N20 P2 = P2 + 0.01

N30 $ENDFOR

N40 $IF ABS[P1 – 0.1] <= .000001 (Überprüfung auf einen für die)

N50 G04 X5 (NC-Fertigung unproblematischen)

N60 $ELSE (Toleranzbereich; $IF-Zweig wird)

N70 ... (durchlaufen)

N80 $ENDIF

## Weiterführende Informationen

- Bedingte Sprünge
- Zählschleifen ($FOR)
- Schleifen mit Laufbedingung
- Beeinflussung von Schleifenabläufen