Anweisungen zur Beeinflussung des NC-Programmablaufes
Die Syntax für Steuersatzanweisungen lautet:
$ <Anweisung>
<Anweisung> Steuersatzstrings gemäß Kapitel. 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 Meßwertes 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 (siehe Beispiele der IF-ELSE-Verzweigung) überprüft.
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. 2.6.1.3) 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, sodaß 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 [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
Mehr:
Weiterführende Informationen