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