Programmierung eines Achspolynoms (POLY )
Versionshinweis
Die Funktionalität ist verfügbar ab CNC-Version V2.11.2016.08
Eigenschaften der achsspezifischen Polynome
Die Bewegungsvorschrift einer Achse kann durch achsweise definierte Polynome programmiert werden.
Diese achsspezifische Polynombewegung ist für Linearbewegungen (G00, G01) programmierbar. Dabei werden die Dynamikparameter der jeweils aktiven G-Funktion (G00 bzw. G01) verwendet.
Pro Achspolynom wird eine obere Grenze des Polynomparameters angegeben, bis zu der der Polynomparameter interpoliert wird. Falls die obere Grenze nicht programmiert wurde, wird ihr der Wert 1.0 zugewiesen.
Die Polynomkoeffizienten eines Achspolynoms werden in eckigen Klammern nach dem Achsbezeichner in aufsteigender Reihenfolge angegeben. Zur Kennzeichnung ist das Schlüsselwort POLY immer als Erstes anzugeben. Nicht erforderliche höherwertige Polynomkoeffizienten können weggelassen werden. Den nicht programmierten Koeffizienten wird der Wert 0 zugewiesen. Zumindest der erste Koeffizient 'A0' muss angegeben werden.
Der maximal mögliche Grad des Polynoms ist 5.
Auswertung
Die Polynomkoeffizienten beziehen sich auf die Angabe absoluter Achspositionen und werden in ein Polynom 5. Grades eingesetzt.
p(s) = A0 + A1 * s + A2 * s² + A3 * s³ + A4 * s4 + A5 s5
Der Polynomparameter wird für das Polynom von Null bis zur programmierten oberen Grenze simultan zum zurückgelegten Bahnfahrweg durchinterpoliert.
Damit gilt für die absolute Achsposition der Polynomachse in mm bzw. Grad:
Bei Bewegungsanfang (s = 0):
p(0) = A0
Bei Bewegungsende (s = L):
p(L) = A0 + A1 * L + A2 * L² + A3 * L³ + A4 * L4 + A5 L5
Die achsspezifische Polynomprogrammierung ist satzweise wirksam, sie muss also, falls erforderlich, im nächsten Bewegungssatz erneut für die jeweilige Achse verwendet werden.
Hinweis
Bei der Bestimmung der Polynomkoeffizienten ist darauf zu achten, dass die Achsposition stetig ist. D.h. der Polynomwert an der Stelle 0 muss der Position der Achse aus dem vorhergehenden Bewegungssatz entsprechen.
Bei der wiederholten Programmierung von Achspolynomen in aufeinanderfolgenden NC-Zeilen muss die Endposition eines Polynoms der Startposition des Folgepolynoms entsprechen.
Da bei einem Polynom der Wert an der Stelle 0 nur von dem Koeffizienten A0 bestimmt wird, gilt: A0 = Position der Achse aus dem vorhergehenden Bewegungssatz.
Programmierung
Schema:
Achse [ POLY L<Maximalwert Polynomparameter> A0 A1 A2 A3 A4 A5 ]
Beispiel:
X [ POLY L=1.0 A0=0.1 A1=0.2 A2=0.3 A3=0.4 A4=0.5 A5=0.6 ]
Im gleichen NC-Satz ist eine gemischte Programmierung von Linearbewegungen und einem* achsspezifischen Polynom möglich. In die programmierten Polynompositionen werden evtl. aktive Verschiebungen (G54, G92, #PSET...) mit eingerechnet.
Für die programmierte Polynomachse wird keine Dynamikplanung/-überwachung durchgeführt. Eine sollwertseitige Überwachung der Softwareendlagen findet ebenfalls nicht statt. (Nur istwertseitige Endlagenüberwachung).
Syntax |
<Achsname> [ POLY [ L=.. ] A0=.. [ A1=.. A2=.. A3=.. A4=.. A5=.. ] ] |
<Achsname> | Name der Polynomachse |
POLY | Kennung für die Polynomprogrammierung der Achse. Muss immer als erstes Schlüsselwort programmiert sein. |
L=.. | Obere Grenze des Polynomparameters der zu bewegenden Achse ohne Einheit (optional, wenn nicht programmiert erhält L den Wert 1.0, programmierter Wert muss > 0 sein ) |
A0=.. | Erster Polynomkoeffizient, muss programmiert werden (Startwert des Polynoms) |
A1=.. - A5=.. | Zweiter bis sechster Polynomkoeffizient, x, x^2, x^3, x^4, x^5 (optional, nicht programmierte Koeffizienten sind per Default mit 0 belegt) |
Programmierbeispiel
Programmierung eines Achspolynoms
;C-Achse, Polynomparameter L = 0.7 A0 = 0.1, A1 = 0.3, A2 = 0.5
Nxx C0.1
Nxx C[POLY L=0.7 A0=0.1 A1=0.3 A2=0.5]
;X-Achse, Polynomparameter L = 0.3, A0 = 0.2, A1= 0.5
Nxx X0.2
Nxx X[POLY L=0.3 A0=0.2 A1=0.5]
;Minimalprogrammierung ohne Polynomparameter (Default L1), nur A0-Koeffizient
Nxx X0.2
Nxx X[POLY A0=0.2]
;Gemischte Programmierung von Linearbewegung und Achspolynom
Nxx C0.1
Nxx G01 F1000 X100 Y150 C[POLY L=0.7 A0=0.1 A1=0.3 A2=0.5]
;Hinweis: Die Gleichheitszeichen zw. Schlüsselwort und Wert sind optional