DE60008068T2 - Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem - Google Patents

Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem Download PDF

Info

Publication number
DE60008068T2
DE60008068T2 DE60008068T DE60008068T DE60008068T2 DE 60008068 T2 DE60008068 T2 DE 60008068T2 DE 60008068 T DE60008068 T DE 60008068T DE 60008068 T DE60008068 T DE 60008068T DE 60008068 T2 DE60008068 T2 DE 60008068T2
Authority
DE
Germany
Prior art keywords
path
corner
spline
fillet
maximum
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60008068T
Other languages
English (en)
Other versions
DE60008068D1 (de
Inventor
Stephen J. Yutkowitz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Industry Inc
Original Assignee
Siemens Energy and Automation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Energy and Automation Inc filed Critical Siemens Energy and Automation Inc
Publication of DE60008068D1 publication Critical patent/DE60008068D1/de
Application granted granted Critical
Publication of DE60008068T2 publication Critical patent/DE60008068T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34098Slope fitting, fairing contour, curve fitting, transition
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34135Spline
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34142Polynomial
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34143Approximate corner by polynomial
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/49Nc machine tool, till multiple
    • G05B2219/49164Corner, making corner

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Numerical Control (AREA)
  • Automatic Control Of Machine Tools (AREA)

Description

  • Die vorliegende Erfindung betrifft allgemein Ausrüstungen und Prozesse zum Steuern der Bewegung eines beweglichen Teiles längs einer vorprogrammierten Bahn, und dort speziell eine verbesserte Vorrichtung und Methode der Bahnsteuerung, wobei zu der Bahn gehörende Ecken erkannt und weich verrundet werden, um Sprünge bei Geschwindigkeit, Beschleunigung und/oder Beschleunigungsänderungen gering zu halten.
  • In einem System mit Bahnsteuerung, z. B. in einer CNC-Werkzeugmaschine, werden bewegliche Maschinenteile längs einer vorprogrammierten Bahn bewegt, indem man Bewegungsbefehle programmiert und Positionskoordinaten auf der Bahn vorgibt. Geradlinige Bahnen definiert man typischerweise durch Programmieren der Endpunkte der Bahn auf der Linie; kreisbogenförmige Bahnen definiert man typischerweise durch Programmieren der Endpunkte und des Mittelpunkts des Kreisbogens; kurvenförmige Bahnen definiert man typischerweise durch Programmieren einer Reihe von auf der Kurve liegenden Punkten. Der Bediener der Werkzeugmaschine kann diese Datenpunkte passend zu dem speziellen, zu bearbeitenden Werkstück programmieren. Die Bewegung längs der Bahn kann das CNC-System erreichen, indem es durch Interpolation mit einem vorgegebenen Wiederholungsabstand Zwischenpunkte zwischen den programmierten Punkten festlegt; die Bewegung der beweglichen Teile kann durch Positionierbefehle gesteuert werden, die diesen interpolierten Zwischenpunkten entsprechen.
  • Programmierte Punkte, die ein Paar aufeinander folgender Geradenstücke repräsentieren, definieren oftmals eine Ecke auf der Bahn. Ein Bewegen über eine solche Ecke hinweg kann allerdings für die programmierte Geschwindigkeit des beweglichen Teils eine Sprungstelle bedeuten. Geschwindigkeitssprünge sind unerwünscht, da sie das Hinzuführen von Energie hoher Frequenz in die Positionsregelschleife des die gesteuerte Bewegung bewirkenden Servo-Controllers verursachen können, wodurch dann die vom Controller bewirkte tatsächliche Bewegung nicht mehr exakt der durch Befehle vorgegebenen Bahn, repräsentiert durch die Bahnpunkte, entspricht.
  • Außerdem bedeutet eine durch einen Geschwindigkeitsbefehl programmierte Sprungstelle, dass eine unendlich große Beschleunigung benötigt wird, damit das bewegliche Teil tatsächlich dem Befehl folgt. Unendlich große Beschleunigungen (oder sehr große und schnelle Beschleunigungsänderungen) des beweglichen Teils werden aber in der Realität niemals erreicht, weil die Tiefpass-Charakteristik der das bewegliche Teil steuernden Servo-Regelschleifen das letztendlich verhindert; infolgedessen entspricht die Bewegung des Teils nicht exakt dem Befehl. Eine durch einen Geschwindigkeitsbefehl programmierte Sprungstelle kann zu Vibrationen und Verschleiß von Maschinenteilen führen; außerdem zu anderen Problemen wie etwa mechanische Verbiegungen und dynamische Auswirkungen auf andere Achsen, wobei eine Bewegung oder Vibration bei einer Achse eine unerwünschte Bewegung oder Vibration bei einer anderen Achse verursacht. Bei Werkzeugmaschinen können diese unerwünschten Erscheinungen auch zu schlechter Oberflächenqualität und/oder schlechter Genauigkeit der bearbeiteten Werkstücke führen.
  • Es ist zwar bekannt, dass man Geschwindigkeitssprünge vermeiden kann, indem man an Eckpunkten einen vollständigen Stopp befiehlt, doch sind solche Stopps unerwünscht, da sie die für die jeweilige Bewegung insgesamt benötigte Zeit verlängern. Darüber hinaus können bei Werkzeugmaschinen solche vollständige Stopps zu unerwünschten „Stoppmarken" am Werkstück führen.
  • Deshalb ist es Stand der Technik, zum Vermeiden der durch vollständiges Stoppen an Ecken verursachten Geschwindigkeitsverluste bei der Bewegung über Ecken hinweg mit gewissen, noch tolerierbaren Geschwindigkeitssprüngen zu arbeiten, die eine gewisse, noch tolerierbare Eckenverrundung ergeben. Der Grad der entstehenden Eckenverrundung hängt von vielen Faktoren ab, darunter die Schleifenverstärkungen der Achsenpositionierung, das Ansprechverhalten der Servos der Geschwindigkeits-Regelschleife, der Eckenwinkel und die Orientierung der Ecke relativ zu den Bewegungsachsen. Außerdem ist die Form der verrundeten Ecke unsymmetrisch und hängt auch von den vorerwähnten Faktoren ab.
  • Ab Ecken können Kreisbögen eingefügt werden. Allerdings führen solche Kreisbögen zu unerwünschten Beschleunigungssprünge, die wiederum zu Maschinenverschleiß und zu schlecht bearbeiteten Werkstücken führen.
  • In den Patentschriften DE 42 13 927 , US 5,955,856 und US 4,794,540 werden CNC-Maschinen beschrieben, die zwischen geraden Abschnitten von Werkstücken automatisch Kurven einfügen.
  • Insbesondere beschreibt die Patenschrift DE 42 13 927 ein Verfahren der Steuerung einer Bewegung über aufeinander folgender Geradenstücke hinweg, welche eine Ecke auf der gewünschten Bahn bilden; dieses Verfahren besteht aus folgenden Schritten: Festlegen einer Mehrzahl von Datenpunkten, welche eine gewünschte Bahn definieren, wobei diese Mehrzahl von Datenpunkten eine Mehrzahl von aufeinander folgenden Geradenstücken definiert; Festlegen eines gekrümmten Bahnstücks, das knickfrei mit den beiden aufeinander folgenden Geradenstücken verbunden ist; Steuern eines Aktuators entsprechend dem festgelegten, gekrümmten Bahnstück.
  • Es besteht also immer noch der Bedarf nach einem Verfahren und einer Vorrichtung zum Steuern einer Bewegung über eine Ecke hinweg längs einer vorprogrammierten Bahn, wobei die Geschwindigkeit über der gesamten Bahn möglichst groß ist und wobei außerdem Geschwindigkeitsund Beschleunigungssprünge abgeschwächt oder verhindert werden. Darüber hinaus besteht auch ein Bedarf für ein Verfahren, das zu höherer Oberflächenqualität der Werkstücke führt und/oder die Eckenverrundung möglichst klein macht. Es besteht auch Bedarf nach einem Verfahren und einer Vorrichtung, womit solche Ecken automatisch erkannt werden können, für die ein Verrunden günstig ist, und womit dann eine verrundete Bahn für diese Ecken ermittelt wird. Es besteht außerdem Bedarf nach einem Verfahren und einer Vorrichtung, womit bei einer Werkzeugmaschine die Bewegung über eine Ecke hinweg längs einer vorprogrammierten Bahn so gesteuert wird, dass Geschwindigkeitssprünge vermieden werden und dass beim Werkstück an der Ecke eine Kurve gewünschter Art entsteht.
  • Ein Ziel davor liegenden Erfindung ist es, eine Vorrichtung und ein Verfahren vorzustellen, womit die Bewegung über eine programmierte Wende oder Ecke effizient gesteuert wird und gleichzeitig Geschwindigkeits- und/oder Beschleunigungssprünge abgeschwächt oder verhindert werden.
  • Die Erfindung umfasst ein Verfahren zum Steuern der Bewegung längs aufeinander folgender Geradenstücke, welche eine Ecke auf einer gewünschten Bahn bilden, wobei dieses Verfahren Folgendes umfasst: das Festlegen einer Mehrzahl von Datenpunkten, welche eine gewünschte Bahn definieren, wobei diese Mehrzahl von Datenpunkten eine Mehrzahl von aufeinander folgenden Geradenstücken definiert; dadurch gekennzeichnet, dass geprüft wird, ob zwei aufeinander folgende Geradenstücke eine Ecke mit einem Winkel bilden, der kleiner als ein vordefinierter Winkel ist, und dass – falls dies der Fall ist – ein gekrümmtes Bahnstück definiert wird, das knickfrei mit den die beiden aufeinander folgenden Geradenstücken verbunden ist; und das Steuern eines Aktuators entsprechend dem festgelegten, gekrümmten Bahnstück.
  • Das Verfahren umfasst das Festlegen einer gewünschten Bahn, die einen Bereich mit einer Ecke enthält; das Definieren einer gekrümmten Bahn mit einer sich stetig ändernden Krümmung; und das Bewegen eines beweglichen Teils auf der gekrümmten Bahn statt über den Eckenbereich hinweg.
  • Weitere Ziele der vorliegenden Erfindung sind für den Fachmann aus der nachfolgenden Beschreibung erkennbar, in welcher verschiedene Ausführungsformen der Erfindung gezeigt und beschrieben sind, darunter auch eine als beste eingeschätzte Form (Anm. d. Übers.: „best mode contemplated" im US-Patentgesetz) zum Realisieren der Erfindung, einfach für Illustrationszwecke. Man wird erkennen, dass es weitere, andere Aspekte und Ausführungsformen der Erfindung geben kann, ohne dass der Geltungsbereich der Erfindung verlassen wird. Deshalb sind die Abbildungen und Beschreibungen grundsätzlich nur als illustrativ und nicht als abgrenzend zu betrachten.
  • Obwohl am Ende dieser Patenschrift Ansprüche angegeben sind, die die vorliegende Erfindung im Einzelnen genau definieren, lässt sich die Erfindung vermutlich anhand der folgenden Beschreibung und der diese begleitenden Abbildungen besser verstehen. Zu den Abbildungen ist Folgendes zu sagen:
  • 1 zeigt ein Blockschaltbild eines Beispiel-Bahnsteuerungssystems, das gemäß den Prinzipien der vorliegenden Erfindung Spline-Eckenverrundungen durchführen kann.
  • 2 zeigt ein Beispiel programmierter Punkte in einem Werkstückprogramm, die eine Ecke definieren, über die man gemäß den Prinzipien der vorliegenden Erfindung mithilfe einer Spline-Eckenverrundung hinweggehen kann.
  • 3 zeigt ein Beispiel-Paar von Spline-Stücken, die dazu genutzt werden, gemäß den Prinzipien der vorliegenden Erfindung weich über die Ecken von 2 hinweg zu gehen.
  • 4 zeigt einen Beispielfall, in dem gemäß den Prinzipien der vorliegenden Erfindung ein erstes Geradenstück vollständig durch ein Spline-Stück ersetzt wird und ein zweites Geradenstück gekürzt wird, um an ein zweites Spline-Stück zu passen.
  • 5 zeigt einen Beispielfall, in dem gemäß den Prinzipien der vorliegenden Erfindung zwei Geradenstücke modifiziert werden, um zu zwei Spline-Stücken zu passen, die die Ecke definieren.
  • 6 zeigt einen Beispielfall, in dem gemäß den Prinzipien der vorliegenden Erfindung ein erstes Geradenstück modifiziert wird, um an ein zweites Spline-Eckenstück zu passen; in dem ein zweites Geradenstück durch ein zweites Spline-Eckenstück ersetzt wird, welches knickfrei mit dem ersten Spline-Eckenstück und einem dritten Spline-Stück verbunden ist.
  • 7 zeigt ein Beispiel-Koordinatensystem für Spline-Stücke, das gemäß den Prinzipien der vorliegenden Erfindung zum Definieren der Spline-Eckenstücke benutzt werden kann.
  • 8 zeigt ein Beispiel eines Systems mit einer verketteten Liste, die gemäß den Prinzipien der vorliegenden Erfindung dazu genutzt werden kann, Spline-Eckenstücke zu definieren.
  • 9 zeigt ein Diagramm eines endlichen Automaten, das eine Ausführungsform eines Spline-Eckenverrundungssystems illustriert, die gemäß den Prinzipien der vorliegenden Erfindung konzipiert ist.
  • 10 zeigt ein Flussdiagramm, das ein Beispielverfahren zum Durchführen einer Spline-Eckenverrundung gemäß den Prinzipien der vorliegenden Erfindung illustriert.
  • 11 zeigt ein Diagramm, das eine Ausführungsform eines Bahnsteuerungssystems mit Spline-Eckenverrundung illustriert, das gemäß den Prinzipien der vorliegenden Erfindung konzipiert ist.
  • 12 zeigt X/Y-Graphen der Achsenbahn für Testfälle, die einer Realisierung einer Beispiel-Ausführungsform der vorliegenden Erfindung sowie herkömmlichen Ansätzen entsprechen.
  • 13 zeigt Geschwindigkeits-, Beschleunigungs- und Beschleunigungsänderungs-Profile für einen Testfall, der einer Realisierung einer Beispiel-Ausführungsform der vorliegenden Erfindung entspricht.
  • 14 zeigt Geschwindigkeits-, Beschleunigungs- und Beschleunigungsänderungs-Profile für einen Testfall, der einer Realisierung einer herkömmlichen Ausführungsform entspricht.
  • 15 zeigt Geschwindigkeits-, Beschleunigungs- und Beschleunigungsänderungs-Profile für einen Testfall, der einer Realisierung einer weiteren herkömmlichen Ausführungsform entspricht.
  • 1 zeigt ein Blockschaltbild einer möglichen Hardwarekonfiguration zum Realisieren eines Bahnsteuerungssystems mit Eckenverrundungs-Funktion gemäß der vorliegenden Erfindung. Die hier beschriebenen Bahnsteuerungsverfahren und -vorrichtungen können in Verbindung mit einem Werkzeugmaschinen-System benutzt werden, doch wird in Betracht gezogen, dass die Steuerung auch in anderen Umgebungen benutzt werden kann, so z. B. in der Robotertechnik und bei industriellen Maschinen und anderen Anwendungen, wo eine gesteuerte Bewegung erforderlich ist.
  • Das in 1 gezeigte System basiert auf einem Mikroprozessor, es umfasst einen Computer 400, der eine CNC-Steuerung 410 und einen Servo-Controller 412 enthält. Die CNC-Steuerung 410 umfasst einen Positionierbefehl-Generator 414, der (in Abhängigkeit vom Werkstückprogramm 413) Positionierbefehle an den Servo-Controller 412 und an den Feedforward-Befehlsgenerator 416 schickt. Das Werkstückprogramm 413 kann vom Nutzer erstellt werden, es beschreibt die Bahn, der die Werkzeugmaschine folgen soll, welche – relativ zum Werkstück – vom Aktuator 404 bewegt wird. In Abhängigkeit von den Positionierbefehlen und Feedforward-Verstärkungen schickt der Feedforward-Befehlsgenerator 416 dann Feedforward-Befehle an den Servo-Controller 412.
  • Der Aktuator 404 überträgt die Bewegung in einer Richtung auf ein bewegliches Teil 407 (z. B. ein Werkstück oder Werkzeug) über ein geeignetes Getriebe 405. Bei Werkzeugmaschinen ist es typischerweise so, dass 3 Bewegungsrichtungen die Position des Werkzeugs im Raum – und zwar zu jedem Zeitpunkt und relativ zum Werkstück – bestimmen und dass 2 weitere Bewegungsrichtungen die momentane Orientierung des Werkzeugs relativ zum Werkstück bestimmen. Infolgedessen erfordert eine vollständige Steuerung von Werkzeug und Werkstück das Festlegen von 5 zeitabhängigen Variablen, um mittels dieser die Bewegungsbahn und Orientierung von Werkstück und Werkzeug festzulegen.
  • Typische Werkzeugmaschinen besitzen mindestens 3 Translationsachsen und eine Spindel. Leistungsfähigere Werkzeugmaschinen besitzen darüber hinaus 2 Rotationsachsen, womit insgesamt 5 Rotations/Translationsachsen vorhanden sind. Spezialmaschinen können weitere Achsen besitzen, die redundante Möglichkeiten bieten oder das gleichzeitige Bearbeiten mit mehreren Spindeln ermöglichen.
  • Um das Bearbeiten eines Werkstücks präzise festzulegen, können zusätzlich zu den Positions- und Orientierungsvariablen weitere Steuervariablen erforderlich sein. Außerdem sind die 3 Bewegungsrichtungen, welche die Position von Werkstück oder Werkzeug bestimmen, typischerweise geradlinig und orthogonal zueinander, und es kann für jede Richtung ein eigener Aktuator 404 vorhanden sein, der die Translationsbewegung in dieser Richtung bewirkt. Das bewegliche Teil 407 und der dessen Bewegung in einer Richtung bewirkende Aktuator 404 werden üblicherweise zusammen als „eine Achse" bezeichnet. Die drei Achsen, die typischerweise die Position zu einem bestimmten Zeitpunkt bestimmen, werden oft mit X, Y und Z bezeichnet.
  • Eckenverrundung
  • Bei einer Ausführungsform der vorliegenden Erfindung umfasst die CNC-Steuerung 410 auch eine Eckenverrundungs-Einheit 418, die aus Bahnpunkten und Befehlen im Werkstückprogramm 413 Eckenverrundungen erzeugt. In einer Ausführungsform arbeitet die Eckenverrundungs-Einheit 418 wie unten beschrieben und besitzt die Fähigkeit, das Generieren von Positionierbefehlen zu bewirken, welche zu weich verrundeten Ecken ohne Geschwindigkeitssprünge und ohne die Notwendigkeit eines vollständigen Stopps des Aktuators 404 führen.
  • Der Servo-Controller 412 erzeugt dann aus den Positionierbefehlen, Feedforward-Befehlen und Feedback-Messungen Spannungsbefehls-Signale, die einem dem Stand der Technik entsprechenden PWM-Verstärker (Pulsweitenmodulations-Verstärker) zugeführt 402 werden. Bei einer beispielhaften Ausführungsform umfasst der Servo-Controller 412 Positions-, Geschwindigkeits- und Strom-Regelkreise und Wandlerfunktionen zum Erzeugen der Spannungsbefehle. Der Servo-Controller 412 und der PWM-Verstärker 402 bilden zusammen mit einer Strommessvorrichtung zum Messen des vom Verstärker gelieferten Stroms einen Stromregelkreis, wir ein 1 gezeigt. Andere, alternative Konfigurationen sind auch möglich, zum Beispiel solche, bei denen die Aufgaben der Steuerung der Positioniergeschwindigkeit und des Stroms auf getrennte Hardware-Vorrichtungen verteilt sind.
  • Die Spannungsbefehle vom Servo-Controller 412 steuern den PWM-Verstärker 402. Mittels des PWM-Verstärkers 402 können 3-phasige Spannungen auf den Aktuator 404 geschaltet werden, welcher – in einer Ausführungsform – ein Wechselspannungsmotor (bürstenloser Permanentmagnet-Gleichspannungsmotor) sein kann. Konsequenterweise entstehen in den Verbindungsleitungen zwischen Verstärker 402 und Motor 404 3-Phasen-Ströme, deren Amplitude gemessen und in Form einer Stromregelschleife zum Servo-Controller 412 zurückgeführt werden kann.
  • Als Reaktion auf die 3-Phasen-Ströme dreht sich der Motor 404 und ein mit ihm über ein geeignetes Getriebe verbundenes bewegliches Teil 407 (z. B. ein Werkstück oder Werkzeug) wird bewegt. Zum Ermitteln der Position und Geschwindigkeit des Motors, die zum Servo-Controller 412 zurückgeführt werden, kann ein Codierer 406 verwendet werden. Die vorliegende Erfindung funktioniert mit jedem Motor- und Antriebstyp, einschließlich der angegebenen, aber auch mit Gleichstrommotoren, hydraulischen Servos, Linearmotoren etc.
  • Es ist klar, dass die Eckenverrundungs-Einheit 418, der Feedforward-Befehlsgenerator 416 und der Positionierbefehl-Generator 414 als ein Programm, als mehrere Programme oder als Unterprogramme auf einem computerlesbaren Medium wie z. B, einem Nurlesespeicher (ROM) oder einem anderen nichtflüchtigen Speichermedium realisiert werden kann. Diese Einheiten können auch als Spezialvorrichtung realisiert werden, welche in einem RAM- oder ROM-Speicher (oder in einer Kombination von beiden) abgelegte ausführbare Befehle hat. Die Befehle und/oder Programme können in jeder herkömmlichen Programmiersprache wie z. B. C oder C++ implementiert werden, aber auch in einer speziellen problemorientierten Programmiersprache. Ebenso können viele Funktionen des Servo-Controllers 412 entsprechend programmierten Befehlen ausgeführt werden.
  • Insbesondere – und zum Zweck der Erläuterung – kann die Eckenverrundungs-Einheit 418 durch Einfügen eines vordefinierten Codes in das Werkstückprogramm 413 aktiviert werden. Wenn die Eckenverrundung aktiviert ist, fügt die Einheit 418 automatisch Eckenverrundungen zwischen im Werkstückprogramm 413 definierten Paaren aufeinander folgender Geradenstücke ein, die eine Ecke festlegen und die, in einer Ausführungsform, den Satz unten definierter Kriterien erfüllen.
  • Nach dem Stand der Technik kann im Werkstückprogramm 413 ein Geradenstück mittels eines passenden Bahnsteuerungsbefehls und durch Vorgeben der beiden die Gerade definierenden Punkte der Bahn programmiert werden. Wie unten für eine Ausführungsform beschrieben, kann der Nutzer dem Wertstückprogramm 413 Befehle zum Aktivieren der Eckenverrundungs-Einheit 418 hinzufügen. In diesen Befehlen kann der Nutzer auch eine Toleranz vorgeben, die die Größe der erlaubten Abweichung von der ursprünglichen Eckenbahn festlegt.
  • Die Eckenverrundungs-Einheit 418 kann die auf einer durch das Werkstückprogramm 413 definierten Bahn vorhandene scharfe Ecke entfernen, indem sie das zur Ecke hinführende Geradenstück kürzt, zwei gekrümmte Stücke an die Enden des gekürzten Geradenstücks anfügt und das von der Ecke wegführende Geradenstück kürzt. Dies wird in 2 und 3 illustriert. Wie 2 zeigt, kann das Werkstückprogramm 413 Befehle für die Bewegung entlang zweier aufeinander folgender Geradenstücke, SPAN1 und SPAN2, enthalten, welche im Programm durch die Punkte 0, 1 und 2 definiert sind. Punkt 0 hat die kartesischen Koordinaten X0, Y0 und Z0, Punkt 1 die kartesischen Koordinaten X1, Y1 und Z1 und Punkt 2 die kartesischen Koordinaten X2, Y2 und Z2.
  • Bei dieser Ausführungsform des Verfahrens und der Vorrichtung der Eckenverrundung gemäß der vorliegenden Erfindung sind die beiden Geradenstücke SPAN1 und SPAN2 durch zwei gekrümmte Verrundungsstücke (in 3 mit BLEND1 und BLEND2 bezeichnet) verbunden, welche – in einer beispielhaften Ausführungsform – gekrümmte Kurven bilden, von denen jede knickfrei mit einem Geradenstück verbunden ist und die auch knickfrei miteinander verbunden sind. Auch hat jede Kurve eine sich stetig ändernde Krümmung. Um dies zu erreichen, kann – wie unten detaillierter beschrieben – jede der Kurven Stücke von Polynomen vierten Grades enthalten. Obwohl sich der Rest dieser Patenschrift auf ein Paar von Spline-Kurven vierten Grades bezieht, die das bilden, was hier als „Eckenverrundung" (oder gekrümmte Bahn) bezeichnet wird, wird angenommen, dass auch andere Ausführungsformen der vorliegenden Erfindung möglich sind. Andere mögliche Funktionen, die für eine Eckenverrundung genutzt werden könnten, sind Spiralstücke, B-Spline-Kurven, rationale Spline-Kurven und Eulersche Spiralen.
  • Genauer gesagt, können bei dieser Ausführungsform der vorliegenden Erfindung beide eingefügten Verrundungsstücke, BLEND1 und BLEND2, so gestaltet werden, dass die Stärke der Krümmung der Eckenverrundung von null (am Übergangspunkt zum zugehörigen Geradenstück) bis zu einem Größtwert an dem Punkt (Punkt 1) der Eckenverrundung, der der ursprünglichen Ecke am nächsten liegt, wächst. In einer beispielhaften Ausführungsform werden BLEND1 und BLEND2 in dieser Weise gestaltet, sodass am Übergang zwischen den geraden und gekrümmten Stücken kein Beschleunigungssprung entsteht. Deshalb ist es bei dieser beispielhaften Implementierung nicht notwendig, die Bahngeschwindigkeit am Übergangspunkt zu begrenzen, um einen großen Beschleunigungssprung zu vermeiden.
  • Wenn z. B. zum Definieren der Eckenverrundung Kreisbogen-Stücke statt Spline-Stücke verwendet würden, so müsste die Bahngeschwindigkeit an der Übergangsstelle zwischen dem geraden und dem kreisbogenförmigen Stück auf einen Maximalwert begrenzt werden. Dies könnte zu Verlangsamungen an den Übergangsstellen und zu einer nicht konstanten Bahngeschwindigkeit auf dem Kreisbogen führen. Es ist also herausgefunden worden, dass – als ein Aspekt der vorliegenden Erfindung – Polynomfunktionen vierten Grades zum Realisieren der vorliegenden Erfindung benutzt werden können, um Beschleunigungssprünge zu vermeiden und eine konstante Bahngeschwindigkeit zu erzielen.
  • Grundsätzlich sind die Hauptaktionen dieser Ausführungsform der Eckenverrundung die folgenden:
    • – Feststellen, ob die Situation eine Eckenverrundung verlangt
    • – Feststellen, ob die Eckenstücke eingefügt werden können; Eckenverrundungsstücke zwischen den Geradenstücken einfügen, wenn dies sinnvoll erscheint
    • – Feststellen, ob ein oder beide Geradenstücke durch ein Eckenverrundungsstück ersetzt werden sollten; ein oder beide Geradenstücke als Eckenverrundungsstücke neu definieren, wo sinnvoll
    • – Länge der Eckenverrundungsstücke berechnen
    • – Koeffizientenmatrizen für die Verrundungsstücke in einem lokalen Eckenebenen-Koordinatensystem berechnen
    • – Die Koeffizientenmatrizen durch Translation und Rotation von dem lokalen Eckenebenen-Koordinatensystem in ein Werkzeugmaschinen-Koordinatensystem umrechnen, von dem aus interpolierte Positionierbefehle erzeugt werden können
  • Die CNC-Steuerung für das Einfügen von Eckenverrundungen programmieren
  • Der Eckenverrundungs-Modus kann vom Nutzer im Werkstückprogramm durch Verwendung eines vordefinierten Codes, z. B. eines Codes der Reihe G5, programmiert werden. Der Code kann in seinem Block einen Parameter zur Vorgabe einer Verrundungstoleranz enthalten. In einer beispielhaften Ausführungsform ist der Parameter „modal" und bleibt unverändert erhalten, bis er explizit im Werkstückprogramm verändert wird oder bis ein Ereignis zum Rücksetzen der modalen Status eintritt. Der Begriff „modal" bezieht sich auf einen Befehlstyp für Werkstückprogramme, der bewirkt, dass die Steuerung in einen bestimmten Arbeitsmodus übergeht, der bis zu seiner Aufhebung für und während aller nachfolgenden Blöcke des Werkstückprogramms gilt. Im Gegensatz dazu bezieht sich der Begriff „nichtmodal" auf einen Befehlstyp für Werkstückprogramme, der bewirkt, dass ein bestimmter Arbeitsmodus nur in demjenigen Block des Werkstückprogramms aktiv ist, der den Nichtmodal-Befehl enthält.
  • Der Verrundungstoleranz-Parameter (hier mit K bezeichnet) ermöglicht es dem Programmierer für die Eckenverrundung eine Toleranzgrenze in linearen Versatzeinheiten (Millimeter oder Zoll) vorzugeben. Bei einer Ausführungsform ist der Parameter K ein modaler Parameter, sodass sein aktueller Wert erhalten bleibt, bis er explizit geändert wird. In einer anderen beispielhaften Ausführungsform gilt, dass keine Eckenverrundungen eingefügt werden, falls für K der Wert 0 programmiert ist; falls für K ein negativer Wert programmiert ist, so wird für die Verrundungstoleranz ein Standardwert aus einer Konfigurationsdatenbank verwendet; falls K nicht explizit programmiert ist, wird der aktuelle Wert von K benutzt; und falls ein Ereignis zum Rücksetzen der modalen Status eintritt, wird Kauf den Standardwert aus einer Konfigurationsdatenbank gesetzt.
  • Die Verrundungstoleranz bestimmt den Grad, bis zu dem der Controller das Stück verrundet. Allerdings ist die Wahl der Toleranz ein Kompromiss zwischen Geschwindigkeit und Genauigkeit. Genauer gesagt, führt das Programmieren eines großen Wertes für die Verrundungstoleranz zu einer schnelleren Bewegung über die Ecke hinweg, aber auch zu einer größeren Abweichung von der gewünschten Bahn. Das Programmieren eines kleinen Wertes für die Toleranz führt zu einem genaueren Einhalten der gewünschten Bahn, kann aber die Geschwindigkeit verringern, mit der die Bahnbewegung ausgeführt wird.
  • Fälle erkennen, in denen Eckenverrundung mit Spline-Kurven möglicherweise nicht durchgeführt wird
  • Wie oben erwähnt, wird bei einer Ausführungsform der vorliegenden Erfindung die Eckenverrundung so erreicht, dass zwei Geradenstücke mit einem oder mehr Spline-Stücken verbunden werden. Allerdings wird – gemäß einem anderen Aspekt der vorliegenden Erfindung – keine Eckenverrundung eingefügt, außer unter bestimmten Umständen, die automatisch erkannt werden können. Genauer gesagt, fügt die Ausführungsform der Eckenverrundung mit Spline-Kurven keine Verrundungsstücke zwischen zwei aufeinander folgende Stücke ein, falls irgendeine der folgenden Situationen vorliegt:
    • – Eins oder beide der aufeinander folgenden Stücke ist als Kreisbogeninterpolation definiert
    • – Eins oder beide der aufeinander folgenden Stücke beinhaltet eine Bewegung einer Rotationsachse
    • – Zu der Gesamtheit der Achsen, die beim Bewegen über beide Stücke hinweg bewegt werden, gehören zwei parallele Translationsachsen
    • – Beide aufeinander folgende Stücke sind fast kollinear
    • – Der Winkel zwischen den beiden aufeinander folgenden Stücken ist so klein, dass es fast ein Umkehrpunkt ist
  • Es werden nun die Gründe erläutert, aus denen die Verwendung von Spline-Verrundungen möglicherweise vermieden wird. Die Eckenverrundung mit Spline-Stücken ist nicht gut geeignet zum Einfügen zwischen zwei Stücken, die ein oder mehrere Kreisbogeninterpolationen enthalten. Als Alternative kann die Steuerung in das Werkstückprogramm an der Ecke einen vollständigen Stopp (abbremsen bis auf null) einfügen, um das Erzeugen eines Geschwindigkeitssprungs zu vermeiden. Es wird angenommen, dass in dieser Situation möglicherweise andere Arten von Eckenverrundungen verwendet werden können, z. B. Kreisbogenstücke. Beispielsweise wird angenommen, dass an einer scharfen Ecke automatisch eine toleranzbasierte Eckenverrundung eingefügt werden könnte, wo eins oder beide Stücke ein Kreisbogeninterpolations-Stück ist.
  • Spline-Eckenverrundungen können möglicherweise auch nicht zwischen Geradenstücken eingefügt werden, wenn eins oder beide Stücke eine Bewegung einer Rotationsachse implizieren. Wie oben gesagt, wird durch die Spline-Eckenverrundung die Geometrie unter Berücksichtigung einer vorgegebenen Toleranz verändert. Bei einer Bewegung einer Rotationsachse kann die Bedeutung der Toleranz nicht korrekt berücksichtigt werden, weil die Steuerung nicht weiß, welche Auswirkung die Bewegung der Rotationsachse auf die Relativbewegung zwischen Werkzeug und Werkstück hat. Bei einer Ausführungsform der vorliegenden Erfindung wird das Bahnstück nicht modifiziert, wenn eine Rotationsachse programmiert und der Eckenverrundungs-Modus aktiv ist. Stattdessen kann optional im Werkstückprogramm ein vollständiger Stopp (abbremsen bis auf null) an der Ecke eingelegt werden, um einen Geschwindigkeitssprung zu vermeiden.
  • Die Situation, in der zu der Gesamtheit der Achsen, die beim Bewegen über beide Stücke hinweg bewegt werden, zwei parallele Achsen gehören, kann ähnlich wie der Fall mit der Rotationsachse behandelt werden. Bei einer Ausführungsform werden in diesem Fall keine Verrundungsstücke eingefügt und beim ersten Bahnstück wird ein Abbremsen bis auf null durchgeführt.
  • Falls die beiden Geradenstücke fast kollinear sind, wird möglicherweise ebenfalls kein Spline-Stück eingefügt, Im Extremfall exakt kollinearer Stücke kann ein Spline-Stück ohnehin nicht berechnet werden. Eine Methode zum Feststellen, ob die beiden Linien fast kollinear sind, besteht darin, den Winkel zwischen den Richtungskosinus-Vektoren jedes Geradenstücks mit einem vorgegebenen unteren Grenzwert zu vergleichen. Liegt der Winkel unter dem Grenzwert, so wird kein Verrundungsstück eingefügt. Wenn man sich für das Nichteinfügen entscheidet, kann eine Ecke zu einem Geschwindigkeitssprung führen; falls der Grenzwinkel akzeptabel klein ist, so wird selbst bei hohen Vorschubgeschwindigkeiten der durch die Ecke bewirkte Geschwindigkeitssprung unbedeutend klein. Bei einer beispielhaften Ausführungsform ist der Winkel-Grenzwert auf etwa 0,02° unveränderlich einprogrammiert, doch können je nach dem tolerierbaren Geschwindigkeitssprung andere Werte festgelegt werden.
  • Falls der Winkel zwischen den beiden Bahnstücken sehr klein ist, wird gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung ebenfalls kein Spline-Stück eingefügt. Im dem Extremfall, dass die beiden Stücke eine volle Richtungsumkehr darstellen, sind alle Richtungskosinus-Komponenten des einen Stückes gleich den negativen Werten der Richtungskosinus-Komponenten des anderen Stückes; eine Spline-Verrundung kann dann nicht berechnet werden.
  • Eine Methode zum Feststellen, ob der Winkel klein ist, besteht darin, den durch die Richtungskosinus-Vektoren der Stücke gebildeten Winkel mit einem vorgegebenen oberen Grenzwert zu vergleichen. Liegt der Winkel über dem Grenzwert, so wird kein Verrundungsstück eingefügt. Wenn gewünscht, kann ein Abbremsen bis auf null durchgeführt werden. In einer Ausführungsform beträgt der Grenzwert hierfür etwa 178°, weil angenommen wird, dass so kleine Winkel wahrscheinlich im Werkstückprogramm nicht programmiert werden, und wenn doch, dass ein vollständiger Stopp akzeptabel ist.
  • Einfügen von Verrundungen unter Berücksichtigung eines Toleranzwerts Bei einer beispielhaften Ausführungsform der vorliegenden Erfindung werden Eckenverrundung so definiert, dass ihre maximale Abweichung von der ursprünglich definierten scharfen Ecke kleiner oder gleich dem Eckenverrundungs-Toleranzwert ist. Bei einer Ausführungsform versuchen Verfahren und Vorrichtung ein Verrundungsstück einzufügen, dessen maximale Abweichung von der programmierten Eckenform dem Eckenverrundungs-Toleranzwert gleicht, wie es 3 sehr gut zeigt.
  • In bestimmten Situationen ist allerdings die Länge eines oder beider Geradenstücke, die die ursprünglich programmierte Ecke bilden, zu klein, um eine der maximalen Toleranz entsprechende Abweichung realisieren zu können. In diesen Fällen kommt in einer Ausführungsform der vorliegenden Erfindung das eingefügte Verrundungsstück näher an der Ecke zu liegen als es dem Toleranzwert entspricht. Diese Fälle werden hier als Fall 1, Fall 2 und Fall 3 bezeichnet.
  • Im Fall 1 ist das zur Ecke hinführende Bahnstück (mit SPAN1 bezeichnet) kürzer, als es zum Einfügen eines Verrundungsstücks unter Ausnutzung der Eckentoleranz benötigt würde. Eine weitere Bedingung für den Fall 1 ist, dass das von der Ecke wegführende Bahnstück (mit SPAN2 bezeichnet) entweder mehr als zweimal so lang wie SPAN1 ist, oder aber dass es länger als SPANT ist und eine oder mehrere der folgenden Eigenschaften hat, welche anzeigen, dass zwischen SPAN2 und dessen nachfolgendem Bahnstück (z. B. SPAN3) kein Verrundungsstück benötigt wird:
    • – SPAN2 ist das letzte Bahnstück des Programms; oder
    • – SPAN2 ist ein Positionierungs-Modus-Bahnstück (z. B. ein Bahnstück, bei dem explizit ein vollständiger Stopp am Ende von SPAN2 programmiert worden ist; oder
    • – SPAN2 ist kein Spline-Eckenverrundungs-Modus-Bahnstück (d. h. ein Bahnstück, in dem der zu SPAN2 gehörige Werkstückprogramm-Block befiehlt, dass der Eckenverrundungs-Modus aufgehoben werden kann, sodass es nötig ist, nach SPAN2 kein Eckenverrundungsstück einzufügen); oder
    • – das SPAN2 folgende Bahnstück (z. B. SPANS) ist kein nichtmodales Geradeninterpolations-Stück. (Der Begriff „nichtmodales Geradeninterpolations-Stück" bezeichnet ein Bahnstück, das definitiv als Geradenstück interpoliert werden wird. Der Begriff wird benutzt zum Unterscheiden zwischen (1) Bahnstücken, die als Geraden programmiert sind, aber vom Bahnstück-Vorbereitungsprozess dahingehend modifiziert werden können, dass sie danach von einem gekrümmten Typ sind, und (2) Bahnstücke, die definitiv als Geraden programmiert werden.)
  • Unter den Bedingungen von Fall 1 und gemäß einer beispielhaften Ausführungsform der vorliegenden Erfindung wird SPAN1 in das erste halbe Spline-Stück (BLEND1) umgewandelt, und das zweite halbe Spline-Stück (BLEND2) wird hinter SPAN1 eingefügt. SPAN2 wird um das erforderliche Maß gekürzt.
  • Der Vorgang im Fall 1 wird in 4 gezeigt. Die Abbildung zeigt, dass das ideale Verrundungsstück (die gepunktete Kurve) nicht eingefügt werden kann, weil SPAN1 zu kurz ist. Sie zeigt außerdem, dass die Abweichung e von der Ecke kleiner als die Eckenverrundungs-Toleranz ist. In der Abbildung bezeichnet ORIGINAL SPAN das ursprüngliche Geradenstück vor der Modifizierung durch die Vorrichtung und das Verfahren zur Eckenverrundung. Dies ist das programmierte Bahnstück einschließlich etwaiger Modifikationen durch Schritte des Bahnstück-Vorbereitungsprozesses, welche dem Schritt des Bahnstück-Vorbereitungsprozesses vorausgehen, in dem die Eckenverrundung durchgeführt wird.
  • Im Fall 2 ist SPAN2 weniger als doppelt so lang als SPAN1, außerdem erfüllt SPAN2 keine der oben stehenden, mit Aufzählungszeichen versehenen Liste, und das ideale Bahnstück BLEND2 hätte einen Endpunkt, der zur Folge hätte, dass SPAN2 um mehr als die Hälfte gekürzt würde. In diesem Fall wird BLEND1 hinter einem modifizierten SPAN1 eingefügt, BLEND2 wird vor einem modifizierten SPAN2 eingefügt, wobei der Übergangspunkt zwischen BLEND2 und dem modifizierten SPAN2 der Mittelpunkt des ursprünglichen SPAN2 ist. Dieser Fall wird in 5 gezeigt.
  • Im Fall 3 ist SPAN2 kürzer als SPAN1, außerdem ist SPAN2 zu kurz für das ideale Verrundungsstück, und SPAN2 erfüllt mindestens eine der oben stehenden, mit Aufzählungszeichen versehenen Liste. In diesem Fall wird BLEND1 hinter einem modifizierten SPAN1 eingefügt, und SPAN2 wird zum Erzeugen von BLEND2 verbraucht. 6 zeigt ein Beispiel für diesen Fall. Die Abbildung zeigt einen Fall, in dem SPAN2 eine der Bedingungen der mit Aufzählungszeichen versehenen Liste erfüllt, weil SPAN3 ein Spline-Stück ist (nicht ein nichtmodales Geradeninterpolations-Stück). Ein ähnlicher Fall liegt vor, wenn SPAN1 und SPAN2 gleichlang sind. In diesem Fall können beide Bahnstücke in Verrundungsstücke umgewandelt werden.
  • Beispielgleichungen für Spline-Stücke
  • Bei einer beispielhaften Ausführungsform der Erfindung kann man die Gleichungen für die beiden Eckenverrundungsstücke erhalten, indem man zuerst die Gleichungen in einem zweidimensionalen „Eckenebenen-Koordinatensystem" aufstellt und sie dann in das dreidimensionale, achsenbasierte Koordinatensystem der Werkzeugmaschine transformiert, das hier „Interp-Koordinatensystem" genannt wird.
  • Eckenebenen-Koordinatensystem
  • Das Eckenebenen-Koordinatensystem und die zugehörigen Parameter für diese Ausführungsform werden in 7 gezeigt. In der Abbildung und in der nachfolgenden Beschreibung werden Punkte in diesem Koordinatensystem in der Form {x, y} dargestellt. Punkte in Programmkoordinaten (z. B. aus dem Werkstückprogramm und möglicherweise modifiziert durch Schritte der Bahn-Vorbereitung, welche dem Schritt der Spline-Eckenverrundung vorausgehen, werden in der Form {X, X, Z} dargestellt. Inzwischen beziehen sich die in 7 gezeigten Stücke BLEND1 und BLEND2 auf das erste und das zweite halbe Spline-Eckenverrundungsstück.
  • Bei dieser Ausführungsform und wie in 7 gezeigt, liegt der Ursprung des Eckenebenen-Koordinatensystems am Anfangspunkt des ersten Verrundungsstücks BLEND1. Die x-Achse liegt nach Definition in der Richtung vom Anfangspunkt von BLEND1 zum Endpunkt von BLEND2. Die y-Achse liegt parallel zur Geraden B, welche die Ecke halbiert.
  • Der Name SPAN bezieht sich auf das zur Ecke hinführende Geradenstück (d. h. auf das erste der beiden aufeinander folgenden Geradenstücke, die die Ecke bilden). In den 2 bis 6 wird das entsprechende Bahnstück SPAN1 genannt. Der Name SPAN wird benutzt, um sowohl das ursprüngliche Geradenstück als auch das modifizierte Geradenstück zu bezeichnen. In Fällen, in denen festgestellt wird, dass das ursprüngliche Geradenstück in das erste Verrundungsstück umgewandelt werden sollte, bezeichnet SPAN auch das erste Verrundungsstück.
  • In 7 wird der Name NEXT benutzt, um das von der Ecke wegführende Geradenstück zu bezeichnen (d. h. das zweite der beiden aufeinander folgenden Geradenstücke, die die Ecke bilden). In 2 bis 6 wird es SPAN2 genannt. Der Name NEXT wird benutzt, um sowohl das ursprüngliche Geradenstück als auch das modifizierte Geradenstück, das von der Ecke wegführt, zu bezeichnen. Außerdem wird er in Fällen benutzt, wo das von der Ecke wegführende Geradenstück zu BLEND2 umgewandelt wird.
  • Die Koordinaten {x0, y0} im Eckenebenen-Koordinatensystem repräsentieren die Anfangsposition von BLEND1, die Koordinaten {x1, y1} repräsentieren das Ende der Bahnstückkoordinaten des ursprünglichen Geradenstücks, und die Koordinaten {x2, y2} repräsentieren den Endpunkt von BLEND2. Dieselben Indizes werden benutzt werden, um die korrespondierenden Orte in Programm- und Interp-Koordinaten zu repräsentieren.
  • Der Winkel ∅ entspricht dem Winkel zwischen den Richtungskosinus-Vektoren von SPAN und NEXT. Der Winkel θ wird zum Bezeichnen des Eckenwinkels benutzt. Der Abstand D stellt den Abstand vom Ende des ursprünglichen SPAN1, wo BLEND1 beginnt, dar. Der Abstand e stellt die maximale Abweichung zwischen der ursprünglichen Ecke und der Spline-Eckenverrundung dar.
  • Die Winkel θ und ∅ lassen sich ermitteln, indem man das Skalarprodukt der Richtungskosinus-Vektors von SPAN und dem Richtungskosinus-Vektors von NEXT berechnet. Dies zeigt die folgende Gleichung, in der {cx1, cy1, cz1} die Komponenten des Richtungskosinus-Vektors von SPAN und {cx2, cy2, cz2} die Komponenten des Richtungskosinus-Vektors von NEXT sind: cos(θ) = cx1cx2 + cy1cy2 + cz1cz2 (1)
  • Weiterhin ist der Eckenwinkel θ einfach die Hälfte von ∅, was man in 7 nachprüfen kann.
  • Figure 00200001
  • In den vorstehenden Gleichungen dienen die Indizes x, y und z zum Bezeichnen des Eckenebenen-Koordinatensystems für das Bahnstück. Diese Achsen bilden ein System von drei zueinander orthogonalen, geraden Achsen, sind aber nicht notwendigerweise die programmierbaren X-, Y- und Z-Achsen. Beispielsweise kann eine Werkzeugmaschine mehr als 3 gerade Achsen besitzen, wobei die Namen U, V und W programmierbare Achsen bezeichnen, die parallel zu X, Y bzw. Z sind. Ein Werkstückprogramm-Block könnte eine Bewegung auf jeder Kombination der vorhandenen programmierbaren Achsen befehlen.
  • Beispielsweise würden zwei aufeinander folgende Werkstückprogramm-Blöcke, die eine Bewegung nur in X, V und W fordern, die Bedingungen erfüllen, welche eine Eckenverrundung erlauben. In der hier vorgestellten Betrachtung würden für dieses Beispiel die Namen für das Eckenebenen-Koordinatensystem (x, y und z) die programmierbaren Achsen X, V und W ersetzen. Allerdings würden zwei aufeinander folgende Werkstückprogramm-Blöcke, bei denen in einem von ihnen eine Bewegung paralleler Achsen programmiert ist, nicht die Bedingungen erfüllen, die eine Eckenverrundung erlauben, und es würde kein ein Eckenebenen-Koordinatensystem definiert. Die Richtungskosinus-Komponenten lassen sich berechnen, nachdem das System gegenseitig orthogonaler, gerader Achsen (Eckenebenen-Koordinatensystem) festgelegt worden ist.
  • Spline-Koeffizientenmatrix
  • Wie oben gesagt, umfasst bei einer beispielhaften Ausführungsform die Eckenverrundung zwei entsprechend Polynomen vierten Grades gekrümmte Bahnstücke. Bei einer anderen beispielhaften Ausführungsform wird jede Hälfte (BLEND1 und BLEND2 in 7) der Eckenverrundung als Polynom vierten Grades in dem Parameter u dargestellt. Der Parameter u soll dazu dienen, den Abstand entlang der gekrümmten Eckenverrundungsbahn möglichst genau anzupassen. Die Gleichung für jedes halbe Verrundungsstück kann wie folgt geschrieben werden (dabei ist [A] eine 2 × 5-Matrix von Koeffizienten):
    Figure 00210001
  • Ein Vorteil der Verwendung eines Polynoms vierten Grades liegt darin, dass dieser Grad der niedrigste ist, der erforderlich ist, um die Größe des Krümmungsvektors am Übergangspunkt zum Geradenstück (SPAN in 7) zu null und am Punkt größter Annäherung an die scharfe Ecke (d. h. den durch die beiden ursprünglichen Geradenstücke definierten Eckenpunkt – {x1, y1} in 7) maximal machen zu können.
  • Genauer gesagt, sind für das erste halbe Verrundungsstück BLEND1, das durch den Abstand s parametrisiert ist, die x- und y-Komponenten des Krümmungsvektors gleich den zweiten Ableitungen der Komponenten des Positionsvektors nach der Variablen s. Für ein Polynom dritten Grades in s sind die Krümmungskomponenten lineare Funktionen von s. Es hat sich gezeigt, dass man mit einem Polynom dritten Grades, dessen Krümmung in Abhängigkeit vom Bahnweg linear ist, das Beispielverhalten der x-Komponente der Krümmung (d. h. null am Übergangspunkt zum Geradenstück, ungleich null während des Übergangs und null am der ursprünglichen Ecke nächstliegenden Punkt) nicht erreichen kann.
  • Allerdings sind im Falle eines Polynoms vierten Grades in s die Krümmungskomponenten Parabelfunktionen von s. Eine Betrachtung der 7 zeigt, dass die y-Komponente der Krümmung über der ersten Hälfte der Verrundung ständig wächst. Umgekehrt ist der Wert der x- Komponente der Krümmung am Anfangspunkt der ersten Hälfte der Verrundung null, wächst dann bis zu einem Höchstwert an irgendeinem Punkt der ersten Hälfte der Verrundung und fällt dann bis zum Endpunkt der ersten Hälfte der Verrundung wieder auf null ab. Somit lässt sich mit einem Polynom vierten Grades, das eine Parabelfunktion der Krümmung in Abhängigkeit vom Bahnweg ergibt, ein gewünschtes Verhalten der Krümmung auf der x-Achse ereichen. Genau dieselbe Betrachtung kann man in Bezug auf die zweite Hälfte der Verrundung anstellen. Außerdem hat sich gezeigt, dass – wenn der Grad größer als 4 wird – die Form des Verrundungsstücks zwischen den Endpunkten schwieriger zu kontrollieren wird. Deshalb wird ein einer beispielhaften Ausführungsform der vorliegenden Erfindung für BLEND1 und BLEND2 ein Polynom vierten Grades in u verwendet, welches den Bahnweg s gut approximiert.
  • Bei einer Ausführungsform hat jedes Spline-Stück vierten Grades seine eigene, unabhängige Koeffizientenmatrix [A]. Die in [A] enthaltenen Koeffizienten definieren die Geometrie des Spline-Stücks. Bei einer beispielhaften Ausführungsform können die Koeffizienten festgelegt werden, indem man eine Reihe von Randbedingungen hinsichtlich der Eigenschaften des Bahnstücks vorgibt. Um die Koeffizienten vollständig festzulegen, kann die Anzahl der Randbedingungen um 1 größer als der Grad des Spline-Polynoms sein. Diese Forderung ist nötig, um bei gegebenen Randbedingungen eine exakte Lösung des linearen Gleichungssystems erhalten zu können.
  • Nachfolgend sind die Randbedingungen für die das Spline-Verrundungsstück der ersten Hälfte gemäß der Ausführungsform gemäß der vorliegenden Erfindung aufgelistet. Diese Randbedingungen können dazu genutzt werden, die Matrix [A] für das Spline-Verrundungsstück der ersten Hälfte aufzustellen. Anschließend kann man die Matrix [A] für das Spline-Verrundungsstück der zweiten Hälfte auf der Basis der Ergebnisse für die erste Hälfte so aufstellen, dass die beiden Verrundungsstücke Spiegelbilder voneinander sind. Um eine gewünschte Krümmung der Eckenverrundung zu erreichen – und gemäß einem weiteres Aspekt der Erfindung – können bei dieser Ausführungsform für das Spline-Verrundungsstück der ersten Hälfte fünf Randbedingungen wie folgt vorgegeben werden:
    • – 1) Der Anfangspunkt des Spline-Stücks BLEND1 fällt mit dem Endpunkt des ersten Geradenstücks (modifiziertes Stück SPAN) zusammen.
    • – 2) Der Tangenten-Einheitsvektor am Anfangspunkt des Spline-Stücks BLEND1 fällt mit dem Tangenten-Einheitsvektor des Geradenstücks SPAN zusammen (d. h. die Richtungskosinus-Komponenten beider Bahnstücke sind an der Bahnstückgrenze identisch).
    • – 3) Die Krümmung am Anfangspunkt des Spline-Stücks BLEND1 ist ein Nullvektor (d. h. die Krümmung an der Bahnstückgrenze passt zu der Krümmung (die null ist) des ersten Geradenstücks.
    • – 4) Tangenten-Einheitsvektor am Ende des Spline-Stücks BLEND1 hat die x-Komponente 1,0 und die y-Komponente 0,0 (d. h. er liegt parallel zur x-Achse).
    • – 5) Der Krümmungsvektor am Ende des Spline-Stücks BLEND1 hat eine x-Komponente der Größe null und eine negative y-Komponente, deren Größe auf der Basis nachfolgender Betrachtungen festgelegt wird.
  • Zu den oben für diese Ausführungsform beschriebenen Randbedingungen gehören drei Parameter, die nicht in den im Werkstückprogramm programmierten Bahnstückdaten enthalten sind. Diese drei zusätzlichen Parameter sind Länge s des Verrundungsstücks, Ort des Übergangs vom Geradenstück zum Spline-Stück und Größe der Krümmung am Ende des ersten Spline-Stücks BLEND1. Diese Parameter lassen sich auf der Basis der Eckenverrundungs-Toleranz (d. h. der y-Koordinate des Endpunkts von BLEND1), der erforderlichen x-Koordinate des Endpunkts von BLEND1 sowie der Forderung, dass der Spline-Parameter u den Bahnwegparameter s möglichst gut approximieren sollte, festlegen. Weiter unten werden Gleichungen für diese drei Parameter aufgestellt. Im Rest dieses Abschnitts werden die Gleichungen für die Spline-Koeffizientenmatrizen unter der Annahme aufgestellt, dass alle erforderlichen Parameter bekannt und verfügbar sind.
  • Bei dieser Ausführungsform können die Randbedingungen zum Ableiten der Polynomkoeffizienten festgelegt werden, indem man annimmt. dass der Spline-Parameter u dem Weg entlang der Bahn s äquivalent ist. Allerdings hat sich gezeigt, dass manche Formeln hinsichtlich guten Approximation von s durch u besser als andere sind. Als Ergebnis dieser Versuche wurde festgestellt, dass die letzten beiden Randbedingungen (horizontaler Tangentenvektor und vertikaler Krümmungsvektor am Scheitel der Verrundung) beide vorhanden sein sollten, um zu erzwingen, dass u fast äquivalent zu s ist. An den Endpunkten des Spline-Stücks wird der Parameter u dem Bahnweg s äquivalent sein.
  • Die erste Randbedingung (Anfangspunkt von BLEND1 fällt mit dem modifizierten Stück SPAN zusammen) kann als Gleichung geschrieben werden, indem man die Spline-Funktion bei u = 0 auswertet. Die Wahl des Ursprungs des Koordinatensystems als Anfangspunkt des ersten Verrundungsstücks wurde bewusst getroffen, um die Randbedingungsgleichungen zu vereinfachen
  • Figure 00240001
  • Die zweite Randbedingung (Anfangsrichtung fällt mit dem Tangentenvektor von SPAN zusammen) kann als Gleichung geschrieben werden, indem man die erste Ableitung von p nach u bei u = 0 gleich dem Tangenten-Einheitsvektor von SPAN setzt. Die Komponenten des Tangenten-Einheitsvektors sind die Richtungskosinus-Werte des Geradenstücks im Eckenebenen-Koordinatensystem; die Richtungskosinus-Werte können unmittelbar aus dem Winkel Θ (definiert in Gl. 2) errechnet werden.
  • Figure 00240002
  • Betrachten wir nun die dritte Randbedingung (Anfangskrümmung gleich null), sie kann als Gleichung geschrieben werden, indem man die zweite Ableitung von p nach u bei u = 0 gleich dem Krümmungs-Nullvektor setzt.
  • Figure 00250001
  • Die vierte Randbedingung (Endrichtung von BLEND1 parallel zur x-Achse) setzt die erste Ableitung am Endpunkt von BLEND1 mit dem zur x-Achse parallelen Einheitsvektor gleich. Der Endpunkt von BLEND1 kann ermittelt werden, indem man die Spline-Funktion bei u = S auswertet; dabei ist S die Gesamtlänge des Verrundungsstücks.
  • Figure 00250002
  • Die fünfte Randbedingung schließlich (x-Komponente der Endkrümmung ist null, y-Komponente negativ) setzt die zweite Ableitung der Position des Spline-Stücks, ausgewertet am Ende von BLEND1 mit dem Krümmungsvektor gleich, der in die negative y-Richtung zeigt und den Betrag x hat.
  • Figure 00250003
  • Bei dieser Ausführungsform können diese fünf Randbedingungen gleichzeitig auf die Spline-Gleichung der Gleichung (3) angewendet werden, um die nachfolgende Matrizengleichung aufzustellen. In der folgenden Gleichung wird der Index 1 bei [A1] benutzt, um anzugeben, dass die Koeffizientenmatrix ausschließlich für das erste halbe Spline-Stück BLEND1 gilt.
  • Figure 00260001
  • Durch Invertieren der rechts stehenden Matrix gelangt man zu einer Gleichung für die Koeffizientenmatrix [A1].
  • Figure 00260002
  • Durch Ausführen der Matrizenmultiplikation erhält man das Endergebnis für die Koeffizientenmatrix [A1] für das erste halbe Spline-Stück.
  • Figure 00260003
  • Ein analoger Satz von dem zweiten halben Verrundungsstück auferlegten Randbedingungen führt zu einer Koeffizientenmatrix [A2] für BLEND2 mit folgenden Elementen. Die Variable D in der Gleichung für [A2] ist in 7 definiert. In einem späteren Abschnitt wird ein Beispiel für die Ermittlung von D besprochen.
  • Figure 00260004
  • Berechnen der Scheitelkrümmung x, der Verrundungsstück-Länge S und des Übergangspunkt-Abstands D
  • Im vorigen Abschnitt wurden die Spline-Koeffizientenmatrizen der Gleichungen (11) und (12) für die Ausführungsform erstellt, basierend auf der Annahme, dass die Scheitelkrümmung x, die Länge S des Verrundungsstücks und der Übergangspunkt-Abstand D bekannt sind. Im vorliegenden Abschnitt werden Gleichungen für D und S unter der Annahme aufgestellt, dass x bekannt ist; anschließend wird besprochen, wie man x so wählen kann, dass man eine optimale Bahnlängen-Parametrisierung erhält. Sobald diese drei Parameter bekannt sind, kann man die Matrizengleichungen (11) und (12) für die Spline-Verrundungsstücke BLEND1 und BLEND2 definieren.
  • Die Gleichungen zum Ermitteln von D und S kann man erhalten, wenn man das erste halbe Verrundungsstück (BLEND1) betrachtet. Durch Zusammenfassen der Gleichungen (3) und (11) und Berechnen an der Stelle u = S erhält man die x- und y-Koordinaten des Endpunkts von BLEND1. Die y-Koordinate ist die des Endpunkts des ursprünglichen Geradenstücks (also y1) minus der Eckenverrundungs-Abweichung e (welche – wie oben erläutert – im Idealfall die Eckenverrundungs-Toleranz ist). Die x-Komponente ist der Endpunkt x1 des ursprünglichen Geradenstücks.
  • Figure 00270001
  • Auswerten der vorstehenden Gleichung führt auf die beiden folgenden Gleichungen:
  • Figure 00270002
  • Figure 00280001
  • Die Ausdrücke x1 und y1 können durch Terme ersetzt werden, welche die Parameter D und θ enthalten; und aus der Betrachtung von 7 lassen sich folgende beiden Gleichungen ableiten: xi = D cos(θ) (16) Y1 = D sin(θ) (17)
  • Durch Zusammenfassen der Gleichungen (14) bis (17) erhält man folgende zwei Gleichungen:
  • Figure 00280002
  • Eine Gleichung für den Übergangspunkt-Abstand D, ausgedrückt als direkte Funktion des bekannten Winkels θ, der Eckenverrundungs-Toleranz e und der gewählten Scheitelkrümmung κ kann man erhalten, indem man die Gleichung (18) zum Eliminieren der S-Terme in Gleichung (19) benutzt.
  • Figure 00280003
  • Anschließend könnte man durch Lösen der vorstehenden Gleichung (20) eine Lösung für D erhalten. Allerdings wird man diesen Weg möglicherweise nicht gehen, da er zwei Lösungen für D liefert und keine Hilfe zur Wahl von κ gibt. Eine beispielhafte vollständige Lösung für Gleichung (19) wird nach der Besprechung der Wahl von κ vorgestellt. Versuche haben gezeigt, dass die geeignete Wahl von κ wichtig sein könnte, um eine Spline-Kurve zu bekommen, deren Parametrisierung den Weg entlang der Kurve sehr gut approximiert, also u ≈ s gilt. Die Wahl von κ kann normalisiert werden, in dem der Wert auf den Radius r einen Kreises bezogen wird, welcher so in die Ecke eingepasst wird, dass er die ursprünglichen Geradenstücke an den durch die von D definierten Übergangspunkten tangiert. Es kann ein Krümmungsfaktor f definiert werden, um die Kreiskrümmung auf die Krümmung κ des Spline-Scheitels zu beziehen.
  • Figure 00290001
  • Aus der Betrachtung der 7 lässt sich die folgende Gleichung für den Radius r eines Kreises ableiten, der die Bahnstücke an den beiden Punkten {x0, y0} und {x1, y1} tangential berührt. r = D·cot(θ) (22)
  • Durch Zusammenfassen der letzten beiden Gleichungen erhält man K in Abhängigkeit von θ und D.
  • Figure 00290002
  • Gleichung (20) kann nun unter Benutzung von Gleichung (23) nach D aufgelöst werden.
  • Figure 00300001
  • Nach Vereinfachen und Umordnen nimmt die vorstehende Gleichung die nachfolgende Form an und stellt eine beispielhafte Lösung für D dar.
  • Figure 00300002
  • Der oben erwähnte Krümmungsfaktor f(θ) kann durch Proberechnung bei einer Anzahl im Bereich von etwa 5° bis 85° gleichabständiger Winkel Θ ermittelt werden. Um diesen Faktor zu ermitteln, kann die nachfolgend grob beschriebene Rechenfolge durchgeführt werden.
    • 1. Es wird ein Probewert für f (θ = θn) = fProbe gewählt.
    • 2. Die Koeffizientenmatrizen der Spline-Verrundungskurven können durch Anwenden der Gleichungen (25), (23), (18), (11) und (12) berechnet werden.
    • 3. Die Eckenverrundungsstücke können unter Benutzung einer konstanten Schrittweite Δu interpoliert werden, die im Vergleich zur Bahnstücklänge S klein genug ist, um kleine Details sehen zu können.
    • 4. Die inkrementelle Änderung Δsi des Bahnwegs, die über jedes i-te Interpolationsintervall hinweg eintritt, wird berechnet nach
      Figure 00300003
    • 5. Die maximale Abweichung von einer perfekten Parametrisierung, die über der Länge des Bahnstücks auftritt, wird als Maximum des Werts E = max(|1 – Δs1/Δu|) über alle i berechnet.
    • 6. Der maximale Parametrisierungsfehler wird dazu verwendet, einen neuen Wert für (probe zu ermitteln, und zwar mit einer Methode wie etwa der Intervallhalbierung.
    • 7. Die Schritte 1 bis 6 können iterativ wiederholt werden, bis E oder die Änderung von fProbe unbedeutend klein ist.
    • 8. Die Schritte 1 bis 7 können für jeden Wert von θn wiederholt werden.
  • Diese Rechenfolge kann automatisch abgearbeitet werden; ein beispielhaftes Ergebnis ist die untenstehende Tabelle von Werten für f(θ).
  • Per Proberechnung ermittelte Werte für f(θ)
    Figure 00310001
  • Bei der tatsächlichen Implementierung einer Spline-Eckenverrundung kann der Krümmungsfaktor für jeden Wert von θ innerhalb des maximalen Bereichs von etwa 5° bis 85° mithilfe einer Wertetabelle und linearer Interpolation für zwischen den Tabelleneinträgen liegende Werte von Θ ermittelt werden. Wenn Θ größer als 85° oder kleiner als 5° ist, verwendet man die entsprechende Konstante.
  • Transformation in Werkzeugmaschinen-Koordinaten
  • In den vorhergehenden Abschnitten werden Details zum Ermitteln möglicher Koeffizientenmatrizen für das erste und das zweite halbe Eckenverrundungsstück (BLEND1 und BLEND2) angegeben, und zwar dargestellt in einem Eckenebenen-Koordinatensystem. Allerdings kann man – wenn man ein solches Eckenebenen-Koordinatensystem benutzt – die Ergebnisse in das Koordinatensystem der Werkzeugmaschine transformieren, damit der Positionierbefehl-Generator (in 1 mit 414 bezeichnet) eine Interpolation durchführen und Positionierbefehle an die physischen Achsen der Werkzeugmaschine schicken kann.
  • Es ist allgemein bekannt, dass die in einem lokalen Koordinatensystem ausgedrückten Koordinaten eines Punktes dadurch in ein globales Koordinatensystem transformiert werden können, dass man sie erstens mit einer Matrix [R] multipliziert, um das lokale Koordinatensystem so zu drehen, dass es parallel zu dem globalen Koordinatensystem liegt und zweitens den Vektor {T} addiert, der vom Ursprung des globalen Koordinatensystems zum Ursprung des lokalen zeigt. Dabei wird {T} in globalen Koordinaten ausgedrückt.
  • Figure 00320001
  • Ein Ausdruck für die Rotationsmatrix [R] kann dann dadurch erhalten werden, dass man die Projektionen des in lokalen Koordinaten ausgedrückten Punktes auf jede der Hauptachsen des globalen Koordinatensystems ermittelt. Die Projektionen können mittels des Vektor-Skalarprodukts berechnet werden. X = (xu ^ + yv ^ + zw ^)·i ^ + TX ⇒ X = xu ^·i ^ + yv ^ + zw ^ + TX Y = (xu ^ + yv ^ + zw ^)·j ^ + TY ⇒ Y = xu ^·j ^ + yv ^·j ^ + zw ^·j ^ + TY (25B) Z = (xu ^ + yv ^ + zw ^)·k ^ + TZ ⇒ Z = xu ^·k ^ + yv ^·k ^ + zw ^·k ^ + TZ
  • Das Ausdrücken aller Einheitsvektoren im globalen System führt auf die folgende Darstellung der Einheitsvektoren, (25C)
  • Figure 00330001
  • Ein Zusammenfassen dieser Darstellungen der Einheitsvektoren mit den Gleichungen in Gleichung (25B) ergibt die folgende Formel für die Rotationsmatrix. [R] = [{u ^}{v ^}{w ^}] (25D)
  • Für den speziellen Fall, in dem das Eckenebenen-Koordinatensystem in das Koordinatensystem der Werkzeugmaschine transformiert werden soll, gibt es eine Anzahl von Methoden, Eine Möglichkeit ist das Transformieren direkt in Interp-Koordinaten. Im vorliegenden Dokument bezieht sich der Ausdruck „Interp-Koordinaten" auf das Koordinatensystem, in dem zum Berücksichtigen der Werkstückposition und der Werkzeuggeometrie Versatzgrößen angewendet werden. Bei einer solchen Ausführungsform kann man die Spline-Verrundungsstückdaten aus dem Eckenebenen-Koordinatensystem in das Interp-Koordinatensystem transformieren werden, indem man auf die Koeffizientenmatrizen (Gleichungen (11) und (12)) Rotations- und Translationstransformationen anwendet. Die Rotationsoperation bewirkt, dass die Koeffizientenmatrizen A1 und A2 eine Zeile mehr bekommen (d. h. ihre Dimension erhöht sich von 2 × 5 auf 3 × 5),
  • Die ersten beiden Spalten der Rotationsmatrix lassen sich direkt aus 7 ablesen. Die erste Spalte der Rotationsmatrix ist der Einheitsvektor der x-Richtung des lokalen Systems, angegeben in Interp-Koordinaten. Er kann aus der Befehlposition P0 = {X0, Y0, Z0} der Bahnstückdaten für das Bahnstück vor BLEND1 und aus der Befehlposition P2 = {X2, Y2, Z2} der Bahnstückdaten für das Bahnstück BLEND2 berechnet werden.
  • Die Koordinaten X, Y und Z korrespondieren nicht notwendigerweise mit den gleichnamigen logischen Achsen. Die Benennungen werden benutzt, um die Koordinaten der drei gegenseitig senkrecht aufeinander stehenden linearen Achsen zu kennzeichnen, welche den Spline-Unterraum des Interp-Koordinatensystems bilden. Deshalb kann – wie aus 7 ersichtlich – die erste Spalte der Rotationsmatrix durch den folgenden Ausdruck dargestellt werden (wobei die senkrechten Doppellinien zum Kennzeichen der Vektornorm (Länge) dienen):
  • Figure 00340001
  • Die Gleichung für die zweite Spalte der Rotationsmatrix kann man ebenso aus 7 ablesen. Es handelt sich um einen Vektor, der vom Mittelpunkt der die Punkte P0 und P2 verbindenden Linie zum Scheitelpunkt P1 zeigt.
  • Figure 00340002
  • Das Berechnen des Kreuzprodukts der ersten beiden Spalten, wie unten gezeigt, liefert die dritte Spalte der Rotationsmatrix.
  • Figure 00350001
  • Nachdem die Rotation durchgeführt ist, kann die Translation erfolgen. Der Translationsvektor ist der Ort des Ursprungs des Eckenebenen-Koordinatensystems, ausgedrückt im Interp-Koordinatensystem und in dessen Spline-Unterraum liegend. In 7 erkennt man, dass der Translationsvektor dem Endpunkt des BLEND1 vorangehenden Bahnstücks entspricht. T = P0 ⇒ TX = X0, TY = Y0, T2 = Z0, (29)
  • Durch Anwenden der Gleichung (25A) auf eines der Spline-Stücke kann man die Transformation einer Spline-Koeffizientenmatrix [A] von den Eckenebenen- in Interp-Koordinaten erhalten, Da die z-Koordinate der Eckenebenen-Darstellung des Bahnstücks null ist, besitzt die Eckenebenen-Matrix [A] nur zwei Zeilen und es sind zum Ausführen der Rotation nur die ersten beiden Spalten der Rotationsmatrix erforderlich.
  • Im folgenden Satz von Gleichungen ist [Ac] die 2 × 5-Koeffizientenmatrix für die Eckenebenen-Darstellung des Spline-Stücks und [Am] ist die 3 × 5-Koeffizientenmatrix für dessen Darstellung in Interp-Koordinaten. Dieselbe Gleichung mit identischer Rotation und Translation kann für die Bahnstücke BLEND1 und BLEND2 angewandt werden. Die Beziehung zwischen Ac und Am lässt sich wie folgt ableiten.
  • Im ersten Schritt kann die Gleichung (25A) für den Fall der Rotation von einem ebenen Koordinatensystem in ein dreidimensionales geschrieben werden.
  • Figure 00360001
  • Anschließend können die Eckenebenen-Koordinaten explizit als Polynom vierten Grades geschrieben werden.
  • Figure 00360002
  • Die Spline-Gleichung in den dreidimensionalen Interp-Koordinaten hat folgende Form: {XYZ}T = [Am]{u4u3u2u1}T (32)
  • Durch Gleichsetzen der Gleichung (31) mit der Gleichung (32) erhält man das Endergebnis, welches [Am] (die Darstellung des Spline-Stücks in Eckenebenen-Koordinaten) direkt in Beziehung zu [Ac] (der Darstellung des Spline-Stücks in Interp-Koordinaten, die zum Durchführen der Bewegung benutzt werden können) setzt.
  • Figure 00360003
  • Bei der Implementierung ist es nicht nötig, eine Matrix, die fast nur Nullen enthält zu addieren. Stattdessen kann man zuerst die Rotation ausführen. Durch das Addieren der Translationskomponenten zu den vorhandenen Werten kann sich die letzte Spalte der rotierten Matrix ändern.
  • Es ist bereits eine Anzahl von bestimmten Schritten und Gleichungen für eine Ausführungsform der vorliegenden Erfindung des Verfahrens und der Vorrichtung zur Eckenverrundung beschrieben worden. Die Schritte dieser Ausführungsform sind allgemein im Flussdiagramm der 10 dargestellt.
  • Der erste Schritt (nicht gezeigt) besteht im Festlegen der verschiedenen geraden Bahnstücke im Werkstückprogramm und dem Betrachten dieser aufeinander folgenden Geradenstücke. Im Schritt 302 wird ermittelt, ob die Eckenverrundungsoption aktiviert ist, z. B. durch Erkennen eines Befehls im Werkstückprogramm. Ist die Eckenverrundungsoption nicht aktiviert, so kann die durch Geradenstücke definierte Bewegung wie ursprünglich programmiert ohne Änderungen ausgeführt werden, wie in Schritt 304 gezeigt. Also entstehen dann möglicherweise Geschwindigkeitssprünge, falls an den Ecken keine vollständigen Stopps befohlen sind.
  • Wenn aber die Eckenverrundungsoption aktiviert ist, wird mit Schritt 303 fortgefahren. In diesem Schritt kann das lokale Koordinatensystem für die durch die Geradenstücke definierte Ecke gewählt werden. Diese Achsen bilden eine System zueinander orthogonaler, gerader Achsen.
  • Im Schritt 305 kann der Übergangspunkt-Abstand ermittelt werden. Dieser Wert kann, wie oben beschrieben, mithilfe der Gleichung (25) berechnet werden. Der in dieser Gleichung vorkommende Krümmungsfaktor kann aus einer Wertetabelle entnommen werden, die bei einer Ausführungsform vorab, zum Beispiel mit dem oben beschriebenen Verfahren, berechnet worden ist.
  • Danach kann der Schritt 308 ausgeführt werden, in dem festgestellt wird, ob die aufeinander folgenden Bahnstücke im Werkstückprogramm die Voraussetzungen für eine Eckenverrundung erfüllen. Wenn beispielsweise bei einer beispielhaften Ausführungsform die beiden aufeinander folgenden Geradenstücke einen sehr kleinen Winkel bilden, wird – wie oben besprochen – kein Eckenverrundung durchgeführt. In so einem Fall geht der Prozess also zu Schritt 304 über und es kann die ursprünglich programmieret Bewegung befohlen werden.
  • Falls die Bahnstücke die Kontrolle von Schritt 308 nicht bestehen, geht der Prozess mit Schritt 310 weiter, wo festgestellt werden kann, ob die Bedingungen von Fall 1 (oben besprochen) erfüllt sind. Sind sie erfüllt, dann kann Schritt 312 ausgeführt werden; dabei kann das erste Geradenstück durch ein erstes Spline-Stück ersetzt, das zweite Geradenstück gekürzt und ein zweites Spline-Stück zwischen das erste Spline-Stück und das gekürzte zweite Geradenstück eingefügt werden.
  • Falls Fall 1 nicht vorliegt, prüft der Prozess im Schritt 314 die Bahnstücke auf die Voraussetzungen für den Fall 2 (oben besprochen). Sind sie erfüllt, dann setz der Prozess mit Schritt 316 fort. In diesem Schritt kann das erste Geradenstück um die halbe Länge des zweiten gekürzt, das zweite Geradenstück auf seine eigene halbe Länge gekürzt, ein erstes Spline-Stück hinter das erste Geradenstück eingefügt und ein zweites Spline-Stück hinter das erste Spline-Stück und vor dem zweiten Geradenstück eingefügt werden.
  • Falls Fall 2 nicht vorliegt, prüft der Prozess im Schritt 318 auf das Vorliegen der Voraussetzungen für den Fall 3. Sind sie erfüllt, dann setzt der Prozess mit Schritt 320 fort. In diesem Schritt kann nun das erste Geradenstück gekürzt, das zweite Geradenstück durch ein zweites Spline-Stück ersetzt und ein erstes Spline-Stück zwischen dem gekürzten Geradenstück und dem zweiten Spline-Stück eingefügt werden.
  • Falls die Voraussetzungen für irgendeinen der Fälle 1, 2 und 3 vorliegen, so kann – nachdem die geeigneten Verrundungsstücke eingefügt worden sind – ein neuer Übergangspunkt-Abstand berechnet werden, und zwar verständlicherweise abhängig davon, wie das/die Geradenstück/e in den Schritten 312, 316 oder 320 gekürzt worden sind. Wenn allerdings die Antwort in Schritt 318 ebenfalls negativ ist, kann der Schritt 322 ausgeführt werden. In diesem Schritt kann das erste Geradenstück gekürzt und ein erstes Verrundungsstück so eingefügt werden, dass sein kleinster Abstand zu der Ecke der Verrundungs-Toleranz gleich ist. Desgleichen kann das zweite Geradenstück gekürzt und ein zweites Verrundungsstück zwischen dem ersten Verrundungsstück und dem zweiten Geradenstück eingefügt werden.
  • Der Prozess geht dann von dem Schritt 322 oder 324 zum Schritt 326 über. Im Schritt 326 können die Verrundungslänge und die Scheitelkrümmung berechnet werden. Diese Werte können wie oben besprochen mithilfe der Gleichungen (18) und (23) berechnet werden. Wie für Gleichung (25) kann auch der in Gleichung (23) benutzte Krümmungsfaktor aus einer Wertetabelle entnommen werden, die bei einer Ausführungsform vorab, zum Beispiel mit dem oben beschriebenen Verfahren, berechnet worden ist
  • Nachdem diese Werte berechnet worden sind, geht der Prozess zu Schritt 328 über. In diesem Schritt können die Koeffizientenmatrizen der beiden Spline-Stücke berechnet werden, beispielsweise mithilfe der Gleichungen (11) und (12). Danach kann dann Schritt 330 ausgeführt werden und die berechneten Matrizen können aus dem lokalen Koordinatensystem in ein Koordinatensystem transformiert werden, welches für die Werkzeugmaschinen-Befehle benutzt wird. Nachdem die Transformation erfolgt ist, können die Matrizen dazu benutzt werden, Positionierungsbefehle zu generieren, die eine weiche Bewegung über die Ecke hinweg ohne Geschwindigkeitssprung ergeben.
  • Implementierung einer Stufenverarbeitung und eines endlichen Automaten für die Eckenverrundung
  • Es wird nun eine mögliche digitale Implementierung der zuvor beschriebenen Eckenverrundung behandelt. Bei dieser Ausführungsform erfolgt die Implementierung des Verfahrens und der Vorrichtung zur Eckenverrundung während zweier der mehreren, zur Vorbereitung eines Bahnstücks zur Ausführung erforderlichen Stufen. Im Allgemeinen besteht die erste Stufe, in der Eckenverrundungsstücke bearbeitet werden, im Aufstellen der Spline-Koordinatenmatrizen der oben angegebenen Gleichungen (11) und (12). Das Verarbeiten des Eckenverrundungsstücks kann während der letzten Stufe der Bahnstückbearbeitung vollendet werden. In der letzen Stufe können die Spline-Koordinatenmatrizen der Eckenverrundung in Werkzeugmaschinen-Koordinaten transformiert werden.
  • Bei einer Ausführungsform wird der Ort der ersten Stufe – hier als Spline-Eckenverrundungs-Stufe oder SCB-Stufe (spline corner blend) bezeichnet – so gewählt, dass sie so nahtlos wie möglich mit anderen Funktionen des CNC-Controllers zusammenarbeiten kann. Bei einer beispielhaften Ausführungsform ist die Spline-Eckenverrundungs-Stufe hinter einer Spline-Interpolationsstufe angeordnet (sofern eine solche Interpolation durchgeführt wird), um das Einfügen von Verrundungsstücken zwischen solchen Geradenstücken zu ermöglichen, die gemäß Entscheidung der Spline-Interpolationsstufe als Geraden realisiert werden sollen.
  • 11 zeigt ein Blockdiagramm einer solchen beispielhaften Ausführungsform. Mithilfe einer geeigneten Nutzerschnittstelle 202, kann der Nutzer ein Werkstückprogramm 204 erstellen, welches die verschiedenen zum Bearbeiten des Werkstücks dienenden Bearbeitungsbefehle und außerdem Bewegungsbefehle und Datenpunkte enthält, welche die Bahn festlegen, auf der sich das Werkstück relativ zum Werkzeug bewegt.
  • Das Werkstückprogramm 204 kann einer Bahnstück-Vorbereitungseinheit 208 zugeführt werden, die eine Stufenverarbeitungs-Einheit 206 enthält, welche die die befohlene Bewegungsbahn festlegenden Datenpunkte aus dem Werkstückprogramm 204 entnimmt und diese Daten in Datenobjekten speichert, welche die verschiedenen Bahnstücke entlang der gesamten Bahn speichern. Diese Bahnstücke können anschließend von der Bahnstück-Vorbereitungseinheit 208 modifiziert werden, die – bei dieser Ausführungsform – ein Programm umfasst, das gemäß der Lehre der vorliegenden Erfindung arbeitet.
  • Die Bahnstück-Vorbereitungseinheit 208 in 11 enthält eine Spline-Eckenverrundungs-Stufe (SCB-Stufe) 210 und einen Satz von Operationen, die als Teil der allgemeinen Vorwärtstransformations-Stufe 212 ausgeführt werden. Die SCB-Stufe 210 erhält Bahnstückdaten zugeführt, die bereits in der Stufenverarbeitungs-Einheit 206 einer Anzahl von Bahnstück-Vorbereitungsstufen unterworfen waren. Auf der Basis dieser Daten entscheidet die SCB-Stufe 210, ob ein Einfügen einer Eckenverrundung an verschiedenen Stellen der Bewegungsbahn vorteilhaft wäre. Falls ja, so überarbeitet die SCB-Stufe 210 die Bahnstückdaten und/oder fügt zusätzliche Bahnstück-Datenobjekte ein, um damit eine Ecke mit knickfreier Krümmung zu definieren. Beispielsweise – und wie oben beschreiben – könnten die Daten zweier Geradenstücke so modifiziert werden, dass die Bahnstücke gekürzt und zwischen sie zwei Spline-Stücke vierten Grades eingefügt werden.
  • Allerdings kann – weil diese Bahnstückmodifikationen in einem Koordinatensystem durchgeführt werden können, das lokal bezüglich der Ecke ist – eine Vorwärtstransformations-Stufe 212 verwendet werden, um die Daten zurück in ein globales Koordinatensystem zu transformieren, welches für die tatsächlichen Bewegungen der Werkzeugmaschine benutzt wird. Deshalb transformiert die Vorwärtstransformations-Stufe 212 die modifizierten Daten von der SCB-Stufe 210 und liefert die überarbeiteten Eckenverrundungsstücke an die Bahnstück-Vorbereitungseinheit 208.
  • Es ist möglich, dass weitere Stufen 214 ebenfalls die in der Bahnstück-Vorbereitungseinheit 208 vorhandenen Daten bearbeiten. Nachdem die Verarbeitung der Bahnstückdaten abgeschlossen ist, können diese einem Positionierbefehl-Generator 216 zugeführt werden, der sie zum Erzeugen von Positionierbefehlen benutzt, welche dann einem Servo-Controller 218 zugeführt werden. Bei einer beispielhaften Ausführungsform enthält der Positionierbefehl-Generator 216 einen Interpolator zum Interpolieren von Zwischenpunkten zwischen den ein Bahnstück festlegenden Datenpunkten. Der Servo-Controller 218 benutzt dann die Positionierbefehle zum Steuern eines Motors 220.
  • Bei einer beispielhaften Ausführungsform kann die SCB-Stufe 210 folgende Funktionen haben:
    • – Wählen des Spline-Koordinatensystems zueinander senkrechter linearer Achsen.
    • – Entscheiden, ob eine Spline-Eckenverrundung möglich ist.
    • – Einfügen von Spline-Eckenverrundungsstücken zwischen Geradenstücken und/oder Umwandeln von Geradenstücken in Spline-Eckenverrundungsstücke.
    • – Festlegen der Spline-Parameter Verrundungsstück-Länge, Krümmung und Übergangspunkt-Abstand
    • – Aufstellen der Spline-Koeffizientenmatrizen
  • Bei einer beispielhaften Ausführungsform können alle verbleibenden, zur Vervollständigung der Vorbereitung der Spline-Stücke erforderlichen Schritte bis zum Vorwärtstransformations-Prozess in der letzten Stufe aufgeschoben werden. Diese verbleibenden Schritte können das Umwandeln der Koeffizientenmatrix in Interp-Koordinaten, das Berechnen der Randbedingungsvektoren und das Aktualisieren der Bahnstückdaten beinhalten.
  • Um ihre Aufgaben durchzuführen, benötigt die erste Stufe Zugriff auf die ursprünglich vom Werkstückprogramm festgelegten und möglicherweise von vor der SCB-Stufe sitzenden Bahnstück-Vorbereitungsstufen modifizierten Bahnstückdaten. Gemäß dieser Ausführungsform der Erfindung können die verschiedenen Bahnstücke in einer verketteten Liste enthalten sein. Insbesondere greift die SCB-Stufe auf die Bahnstückdaten vom vorhergehenden Bahnstück (hier mit PREV bezeichnet), vom nachfolgenden Bahnstück (hier mit NEXT bezeichnet) und möglicherweise vom dem nachfolgenden Bahnstück folgenden Bahnstück (hier mit LAST bezeichnet) zu. Das aktuelle Bahnstück (hier mit SPAN oder CURR bezeichnet) ist dasjenige Bahnstück, das momentan für die Fertigstellung durch die Spline-Eckenverrundungs-Stufe vorbereitet wird. Das Bahnstück PREV hat bereits alle Stufenverarbeitungen durchlaufen, einschließlich der Berechnung von Randbedingungen und der Erzeugung der zum Realisieren des Bahnstücks benötigten Bahnstückdaten-Parameter.
  • Die Spline-Eckenverrundungs-Stufe 210 (SCB-Stufe) kann als endlicher Automat (FSM, finite state machine) implementiert werden. 9 zeigt ein Diagramm einer möglichen FSM. Die FSM „schaut" um die erforderliche Anzahl von Bahnstücken voraus, um zu entscheiden, ob die die Ecke bildenden Bahnstücke lang genug sind, um zwei Spline-Eckenverrundungen einzufügen und die Geradenstücke zu kürzen, oder ob ein oder beide die Ecke bildenden Geradenstücke in ein Spline-Stück umgewandelt werden muss.
  • Die von dieser Ausführungsform bewirkten möglichen Modifikationen der Liste werden in den 8A bis 8E gezeigt. Die vom Werkstückprogramm stammenden Bahnstückdaten können in einer verketteten Liste gespeichert werden, welche von der FSM-Ausführungsform der 9 modifiziert wird. Bei Option A werden keine Verrundungen eingefügt, weil die beispielhaften Voraussetzungen für eine Spline-Eckenverrundung nicht vorliegen. Bei dieser Option wird die Liste nicht modifiziert – SPAN zeigt weiterhin auf NEXT, und BLEND1 und BLEND2 zeigen auf Nullwerte. Bei der Abarbeitung der Liste wird keine Eckenverrundung durchgeführt und es entsteht ein Geschwindigkeitssprung, falls kein vollständiger Stopp befohlen wird (siehe 2).
  • Bei Option B wird die Liste so modifiziert, dass zwischen die in der Liste stehenden Geradenstücke zwei Bahnstücke eingefügt werden und dass die Geradenstücke in der Länge gekürzt werden. Bei dieser Option zeigt BLEND1 auf das erste eingefügte Bahnstück in der Liste und BLEND2 auf das zweite. Bei der Abarbeitung der Liste werden die beiden Geradenstücke gekürzt und es werden zwischen ihnen zwei knickfrei angesetzte Spline-Stücke eingefügt (siehe 3).
  • Bei Option C wird die Liste so modifiziert, dass BLEND1 auf SPAN zeigt und zwischen SPAN und NEXT ein Bahnstück eingefügt wird. Anschließend wird BLEND2 so modifiziert, dass es auf das neu eingefügte Bahnstück zeigt. Bei der Abarbeitung der Liste wird deshalb das erste Geradenstück durch die erste Hälfte des Eckenverrundungsstücks ersetzt, das zweite Geradenstück gekürzt und die zweite Hälfte des Eckenverrundungsstücks zwischen dessen erster Hälfte und dem gekürzten Geradenstück eingefügt (siehe 4).
  • Bei Option D wird ebenfalls in der Liste ein Bahnstück zwischen SPAN und NEXT eingefügt. BLEND1 zeigt anschließend auf das eingefügte Bahnstück und BLEND2 zeigt auf NEXT. Dies bewirkt, dass das erste Geradenstück gekürzt, ein zweites Geradenstück durch die zweite Hälfte des Eckenverrundungsstücks ersetzt und die erste Hälfte des Eckenverrundungsstücks zwischen dem gekürzten Geradenstück und der zweiten Hälfte der Ecke eingefügt wird (siehe 6).
  • Bei Option E schließlich wird die Liste so modifiziert, dass BLEND1 auf SPAN zeigt und BLEND2 auf NEXT. Bei der Abarbeitung der Liste werden beide Geradenstücke durch die beiden Hälften des Eckenverrundungsstücks ersetzt.
  • Im Prinzip kann die FSM der Ausführungsform folgende Zustände haben:
    • – Die Zustandsübergänge von WartenAufNeuesBahnstück bis zum Knoten 5
    • – Prüfungen der Mindestvoraussetzungen für eine Spline-Eckenverrundung – stellen sicher, dass die Mindestanzahl von Bahnstücken vorbereitet wird und ermitteln die Indizes der an der Spline-Eckenverrundung beteiligten Achsen.
    • – Der Zustand BerechneÜbergangspunkteAbstand berechnet den Abstand vom Ende der Geradenstücke, das den Ort des Übergangs zwischen den geraden und gekrümmten Bahnstücken definiert, unter der Annahme des Idealfalls, dass die Geradenstücke ausreichend lang sind.
    • – Die Folge der Zustände vom Knoten 6 bis zum – aber ausschließlich des – Zustand FinishStufe legt fest, wie die Spline-Verrundungen eingefügt werden (d. h, gemäß welcher Option der 8).
    • – Der Zustand Kein VorausschauplatzFrei kann eingenommen werden, wenn ein Spline-Stück nicht deshalb eingefügt werden kann, weil der Vorrausschaupuffer voll ist. Es wird dann also kein Spline-Stück eingefügt und die Option A von 8 kann zur Ausführung kommen.
    • – Der Zustand FinishStufe berechnet die Bahnstücklänge und die Eckenebenen-Koeffizienten-Matrizen der Verrundungsstücke (d. h. er wertet die oben stehenden Gleichungen (11) und (12) aus).
  • Wir wenden uns nun den Details der Zustandsautomaten-Ausführungsform der 9 zu. Der Zustand WartenAufNeuesBahnstück (102) kann der Grundzustand sein; er kann nach einer Rücksetz- oder Abbruch-Operation erreicht werden (z. B. weil Spline-Stücke nicht eingefügt werden können), oder nach Abschluss der Berechnung der Koeffizientenmatrizen für die Spline-Verrundungsstücke. Wird die FSM aufgerufen, während sie sich in diesem Zustand befindet, so geht sie zum Knoten 1 über, an dem eine Anzahl von Bedingungen geprüft werden können, um sicherzustellen, dass die Bahnstückdaten (d. h. die Daten vom Werkstückprogramm, die das erste Geradenstück definieren) den Voraussetzungen für eine Spline-Eckenverrundung genügen. Falls das Bahnstück kein Positionierungs-Modus-Bahnstück (wo die Bewegung an der Ecke gestoppt werden muss) und kein Nichtbewegungs-Modus-Bahnstück ist und auch weder das letzte Bahnstück des Programms ist, noch irgendwelche sonstigen Merkmale dahingehend besitzt, dass das Bahnstück mit einem vollständigen Stopp endet, dann wechselt der Zustand zu Knoten 2. Andernfalls ist das Bahnstück nicht für eine Spline-Eckenverrundung geeignet und die FSM geht wieder in den Zustand WartenAufNeuesBahnstück (102). Wenn der Nutzer in der Konfiguration die Option „Abbremsen bis auf null" aktiviert hat, dann kann das Bahnstück mit einer bis auf null heruntergehenden Geschwindigkeit durchlaufen werden, um einen Geschwindigkeitssprung zu vermeiden.
  • Am Knoten 2 kann das Vorhandensein des Bahnstücks NEXT (das zweite der beiden Bahnstücke, die eine Ecke bilden) geprüft werden. Wenn NEXT vorhanden ist, geht die FSM weiter zu Knoten 2, andernfalls zu Knoten 4. Am Knoten 4 kann festgestellt werden, ob das System ein nachfolgendes Bahnstück vor dem Durchlaufen von SPAN einfügen kann. Falls nicht, dann ist keine Spline-Eckenverrundung möglich und die FSM geht zurück in den Zustand WartenAufNeuesBahnstück 102. Falls das System vor dem Durchlaufen von SPAN ein nachfolgendes Bahnstück einfügen kann, so geht die FSM vom Knoten 4 in den Zustand WartenAufNächstesBahnstück (104) über.
  • Im Zustand WartenAufNächstesBahnstück (104) wird die Spline-Eckenverrundungs-Stufe verlassen und die Bahnstück-Vorbereitungseinheit stellt sicher, dass beim nächsten Aufruf der Spline-Eckenverrundungs-Stufe NEXT verfügbar und bereit zur Verarbeitung durch die Stufe ist. Deshalb befindet sich die FSM beim nächsten Aufruf der Spline-Eckenverrundungs-Stufe im Zustand WartenAufNächstesBahnstück (104) und geht sofort zu Knoten 3.
  • Am Knoten 3 kann NEXT geprüft werden, um sicherzustellen, dass es ein Bahnstück für lineare Interpolation ist, dass es kein Nichtbewegungs- Bahnstück ist, dass es für SPAN (das Bahnstück vor NEXT) nicht fordert, mit einem vollständigen Stopp zu enden und dass es kein Bahnstück ist, das Operationsmodi beinhaltet, die eine Eckenverrundung ausschließen. Falls eine dieser Bedingungen nicht eingehalten ist, sollte kein Spline-Eckenverrundungsstück eingefügt werden und die FSM kann in den Zustand WartenAufNeuesBahnstück 102 zurückkehren und einen zukünftigen Aufruf der Spline-Eckenverrundungs-Stufe erwarten. Wenn der Nutzer in der Konfiguration die Option „Abbremsen bis auf null" aktiviert hat, dann kann SPAN mit einer bis auf null heruntergehenden Geschwindigkeit durchlaufen werden, um einen Geschwindigkeitssprung zu vermeiden.
  • Wenn allerdings am Knoten 3 die Bedingungen erfüllt sind, kann zum Zustand FestlegenDerSplineAchsen (106) übergegangen werden, wo der Satz aus drei zueinander senkrechten Achsen festgelegt werden kann, welche das Ecken-Koordinatensystem für die Spline-Eckenverrundung definieren. Falls festgestellt wird, dass die Gesamtheit der an der Bewegung beteiligten Achsen irgendwelche Rotationsachsen oder parallele lineare Achsen enthält, ist keine geometrische Interpretation einer Spline-Ecke möglich, die Verarbeitung in der Stufe wird dann beendet und die FSM geht zurück in den Zustand WartenAufNeuesBahnstück 102. In diesem Fall kann das Bahnstück linear ganz in die Ecke hinein interpoliert werden, und zwar mit möglichem Abbremsen bis auf null, wenn dies in der Maschinenkonfiguration so festgelegt ist.
  • Die Spline-Achsen können gewählt werden, indem geprüft wird, bei welchen Maschinenachsen beim Durchlaufen der Ecke in modifizierten Programmkoordinaten eine Bewegung entsteht. Diejenigen Achsen, bei denen sowohl bei SPAN als auch bei NEXT eine Bewegung entsteht, können für das lokale Koordinatensystem gewählt werden. Bei einer beispielhaften Ausführungsform umfassen die gewählten Spline-Achsen drei zueinander senkrechte Achsen aus dem Satz {X Y Z U V W} der linearen Achsen, wobei X, Y und Z senkrecht zueinander und U, V und W ebenfalls senkrecht zueinander sind. Die Achsen X und U sind parallel zueinander, dasselbe gilt für das Achsenpaar Y und v und das Achsenpaar Z und W.
  • Nachdem ein Satz von zueinander senkrechten Achsen gewählt ist, kann die FSM zu Knoten 5 übergehen. Während des Übergangs zum Knoten 5 kann der Kosinus des von den Richtungskosinussen der beiden Geradenstücke gebildeten Winkels berechnet werden. Bei dieser Ausführungsform wird diese Berechnung des so genannten Kosinus-Skalarprodukts (welches gleich dem Kosinus des oben besprochenen Winkels ∅ ist) nur in Bezug auf die gewählten Spline-Achsen durchgeführt.
  • Anschließend kann an Knoten 5 das Kosinus-Skalarprodukt mit den fest einprogrammierten Maximal- und Minimalwerten verglichen werden. Falls bei einer Ausführungsform das Kosinus-Skalarprodukt innerhalb des Bereichs zum Verwenden der Spline-Eckenverrundung liegt, dann geht die FSM in den Zustand BerechneÜbergangspunkteAbstand (108) über. Liegt allerdings der Wert des Kosinus-Skalarprodukts nicht innerhalb des Bereichs, dann kann man den Einsatz einer Spline-Eckenverrundung als nicht sinnvoll betrachten und die FSM geht in den Zustand WartenAufNeuesBahnstück (102) über, die SCB-Stufe wird verlassen und das Bahnstück wird linear interpoliert. Wenn das Kosinus-Skalarprodukt größer als das fest einprogrammierte Maximum ist, kann ein Abbremsen bis auf null durchgeführt werden, weil diese Bedingung bedeutet, dass die beiden Geradenstücke eine spitze Ecke bilden.
  • Demgemäß hat bietet Ausführungsform der Erfindung die Möglichkeit, anhand eines von den beiden Geradenstücken gebildeten Winkels zu erkennen, wann das Einfügen einer Eckenverrundung sinnvoll ist. Falls eine Eckenverrundung nicht sinnvoll ist kann – in einer Ausführungsform – eine lineare Interpolation mit Abbremsen bis auf null verwendet werden, vorausgesetzt, der Winkel liegt in einem vorbestimmten Bereich. Natürlich können zum Feststellen der „Schärfe" einer Ecke auch andere Methoden als der Vergleich mit dem Kosinus-Skalarprodukt benutzt werden, z. B. ein direkter Vergleich eines von den beiden Geradenstücken gebildeten Winkels mit einem vorbestimmten Wert.
  • Nach dem Knoten 5 geht die beispielhafte FSM von 9 in den Zustand Berechne ÜbergangspunkteAbstand (108) der SCB-Stufe über. Dieser Zustand ermittelt den idealen Abstand vom Ende des ersten Geradenstücks für den Übergang zur ersten Hälfte der Eckenverrundung. Möglicherweise sind Änderungen dieses idealen Abstands erforderlich, diese werden ggfs. in anderen Zuständen der FSM durchgeführt.
  • Der Wert für den Übergangspunkt-Abstand D kann in folgenden Schritten berechnet werden:
    • – Berechne den Eckenwinkel: θ = 1/2*cos–1(cos dot prod)
    • – Berechne Sinus, Kosinus und Kotangens von θ und speichere das Ergebnis für späteren Gebrauch im FSM-Zustand FinishStufe.
    • – Berechne 1/(1 + cos(θ)) und speichere das Ergebnis für späteren Gebrauch im FSM-Zustand FinishStufe.
    • – Ermittle den Krümmungsfaktor f für den Eckenwinkel θ unter Nutzung einer einprogrammierten Wertetabelle von per Proberechnung ermittelter Daten und mit linearer Interpolation zwischen den Tabelleneinträgen. Speichere f.
    • – Ermittle den Abstand D vom Ende des Bahnstücks unter Nutzung dieser Zwischenergebnisse in Verbindung mit Gleichung (25). Speichere den berechneten Wert von D.
  • Nach Abschluss der Berechnung von D geht die FSM zum Knoten 6 über, welcher eine Reihe von Übergängen zum Definieren der beiden Spline-Verrundungsstücke beginnt, um diese in die verkettete Liste der Bahnstückdaten einzufügen und um andere Bahnstücke in der Liste zu modifizieren und/oder zu ersetzen. Der Übergangspunkt-Abstand D kann bei diesen Schritten ebenfalls modifiziert werden.
  • Am Knoten 6 kann man ermitteln, ob es eine Möglichkeit gibt, hinter NEXT ein Spline-Eckenverrundungsstück einzufügen oder zuzuweisen. Wenn diese Möglichkeit nicht existiert, wechselt der Zustand zum Knoten 11 und überspringt damit den Teil der FSM, in dem Fälle betrachtet werden, in denen NEXT möglicherweise eine Neuaufteilung erfordert. In einer beispielhaften Ausführungsform existiert die Möglichkeit für eine auf NEXT folgende Verrundung nicht, falls der Eckenverrundungs-Modus im nächsten Bahnstück deaktiviert worden ist (entweder explizit aus dem Programm heraus oder automatisch während irgendeiner früheren Stufe der Bahnstückverarbeitung), falls NEXT im Positionierungs-Modus programmiert ist, falls NEXT einen vollständigen Stopp an seinem Ende fordernde Informationen beinhaltet, oder falls NEXT das letzte Bahnstück des Programms ist. Wenn die Möglichkeit jedoch existiert, so geht die FSM zum Knoten 7 über.
  • Am Knoten 11 (die Möglichkeit für ein Verrundungsstück hinter NEXT existiert nicht) kann geprüft werden,. ob der ideale Übergangspunkt-Abstand D größer als die Länge von NEXT minus einer vordefinierten Längentoleranz ist. Die Längentoleranz (ein von der Verrundungstoleranz verschiedener Parameter) definiert die minimale Bahnstücklänge, die das System noch als von null verschieden ansehen soll. Falls der Wert von D größer als die Länge von NEXT minus der Längentoleranz ist, wechselt der Zustand zum Knoten 12. Falls nicht, so wechselt der Zustand zum Knoten 13, wo eine Folge von Entscheidungen darüber beginnt, ob BLEND1 durch Einfügen eines Bahnstücks nach SPAN oder durch Ersetzen des gesamten Bahnstücks SPAN als BLEND1 erzeugt werden soll. Am Knoten 7 (die Möglichkeit für ein Verrundungsstück hinter NEXT existiert) kann D mit der halben Länge von NEXT verglichen werden. Falls D größer als die halbe Länge von NEXT ist, dann ist es wahrscheinlich, dass D so modifiziert werden wird, dass der Wert gleich der halben Länge von NEXT ist, sodass NEXT in gleiche Teile aufgeteilt werden kann, die benutzt werden für (1) das Spline-Stück zwischen SPAN und NEXT und (2) das Spline-Stück zwischen NEXT und den Bahnstück hinter NEXT (das ist LAST). Falls D größer als die halbe Länge von NEXT ist, dann wechselt der Zustand zum Knoten B.
  • Falls D nicht größer als die halbe Länge von NEXT ist, dann wechselt der Zustand zum Knoten 13, um die Entscheidung darüber zu beginnen, ob SPAN durch ein Spline-Eckenverrundungsstück ersetzt werden soll. Am Knoten 8 – falls LAST nicht null ist – wechselt der Zustand sofort zum Knoten 10. Falls LAST null ist, wechselt der Zustand zum Knoten 9.
  • Wenn am Knoten 9 festgestellt wird, dass LAST nicht vor der Abarbeitung von SPAN verfügbar gemacht werden wird, kann hinter NEXT kein Verrundungsstück eingefügt werden und der Zustand wechselt zum Knoten 11. Andernfalls wechselt der Zustand zum Zustand WartenAufLetztesBahnstück (110), die Bahnstück-Vorbereitungseinheit wird darüber informiert, dass die SCB-Stufe wartet, und die SCB-Stufe wird verlassen, damit die Bahnstück-Vorbereitungseinheit LAST vorbereiten kann.
  • Wenn die SCB-Stufe wieder aufgerufen wird und der FSM-Zustand der Stufe WartenAufLetztesBahnstück ist, so wechselt der Zustand sofort zum Knoten 10. Am Knoten 10 kann geprüft werden, ob LAST Eigenschaften besitzt, die es erlauben würden, NEXT in ein Spline-Stück einzubeziehen. Falls LAST kein Linearinterpolationsstück ist, falls LAST ein Nichtbewegungs-Stück ist oder falls LAST Daten enthält, die angeben, dass sein vorhergehendes Bahnstück (in diesem Fall NEXT) mit einem vollständigen Stopp enden muss, oder falls LAST von einem Bahnstücktyp ist, der die Möglichkeit ausschließt, dass LAST einem Spline-Eckenverrundungsstück folgt, dann wechselt der Zustand zum Knoten 11, weil eine Eckenverrundung für NEXT nicht erzeugt werden wird und ein mittiges Aufteilen von MEXT nicht erforderlich ist. Falls LAST keine dieser Eigenschaften hat, dann kann der Wert von D neu auf die halbe Länge von NEXT festgesetzt werden und der Zustand wechselt zum Knoten 13. Diese Neufestsetzung von D garantiert, dass mindestens die Hälfte des ursprünglichen NEXT für die NEXT folgende Spline-Eckenverrundung verfügbar ist.
  • Knoten 13 führt eine Prüfung aus, die darüber entscheidet, ob BLEND1 hinter SPAN eingefügt werden soll oder ob SPAN in das zu erzeugende BLEND1 einbezogen wird. Falls D größer als die Länge von SPAN minus TOL (wobei TOL die Mindestlänge eines Bewegungs-Bahnstücks ist), so wird das gesamte Bahnstück SPAN zum Erzeugen der ersten Hälfte der Spline-Eckenverrundung benutzt, D kann neu so festgesetzt werden, dass es gleich der Länge von SPAN ist, und der Zustand wechselt in den Zustand DefiniereSpanNeuAlsBLEND1 (112). Falls D nicht größer als die Länge von SPAN minus TOL ist, so wird BLEND1 hinter SPAN eingefügt und der Zustand wechselt in den Zustand FügeBLEND1NachSpanEin (114).
  • Zu den während des Zustands DefiniereSpanNeuAlsBLEND1 durchgeführten Aktionen gehören das Ändern des nichtmodalen Bewegungstyps von SPAN von einer linearen Achsenbewegung zu einer Spline-Ecken-Achsenbewegung und das Umsetzen des Zeigers für BLEND1 auf SPAN. Die Berechnung der neuen Länge von SPAN kann bis zu den Aktionen des Zustands FinishStufe (122) aufgeschoben werden. Nach Abschluss der Aktionen für DefiniereSpanNeuAlsBLEND1 wechselt der Zustand unmittelbar in den Zustand FügeBLEND2NachBLEND1Ein (116). Die Aktionen des Zustands FügeBLEND2NachBLEND1Ein (116) werden unten detailliert erläutert; nachdem sie abgeschlossen sind, hat die verkettete Liste der Bahnstücke die in 8C gezeigte Struktur.
  • Die erste nach Erreichen des Zustands FügeBLEND1NachSpanEin durchgeführte Aktion kann der Versuch sein, ein neues Spline-Eckenverrundungsstück hinter SPAN in die verkettete Liste einzufügen. Das eingefügte Bahnstück kann der verketteten Liste von Bahnstücken direkt hinter dem angegebenen Bahnstück hinzugefügt werden, und das dem angegebenen Geradenstück folgende Bahnstück kann in der verketteten Liste eine neue Position unmittelbar hinter dem eingefügten Bahnstück zugewiesen bekommen. Die Daten für das eingefügte Bahnstück können so festgelegt werden, dass sie denen des angegebenen Bahnstücks gleich sind, d. h. die Daten werden „nach vorne" kopiert.
  • Wenn während des Versuchs, ein neues Bahnstück hinter SPAN einzufügen, festgestellt wird, dass in der Vorausschau-Warteschlange kein freier Platz mehr verfügbar ist, dann kann man das Einfügen als gescheitert betrachten und man kann eine zusätzliche Prüfung durchführen, um festzustellen, ob der Vorausschauplatz erschöpft ist. „Vorausschauplatz erschöpft" beschreibt die Situation, dass festgestellt worden ist, dass das System nicht in der Lage sein wird, in der Vorausschau-Warteschlange vor demjenigen Punkt im Verarbeitungsprozess Platz frei zu machen, an dem SPAN abgearbeitet werden soll. In diesem Fall kann kein Spline-Eckenverrundungsstück eingefügt werden und die FSM wechselt in den Zustand KeinVorausschauplatzFrei. Wenn das Einfügen eines Bahnstücks fehlschlägt und der Vorausschauplatz nicht erschöpft ist, dann kann der Verwaltungsprozess der Bahnstück-Vorbereitungsstufen davon benachrichtigt werden, dass die Spline-Eckenverrundungsstufe darauf wartet, dass das System in einen Zustand gelangt, in dem die Vorausschau-Warteschlange wieder freien Platz zum Aufnehmen eines eingefügten Bahnstücks hat; der Zustand wechselt zurück nach FügeBLEND1NachSpanEin, die Steuerung kann zum Stufenverwaltungsprozess zurückkehren und die Funktion der Spline-Eckenverrundungsstufe wird beendet.
  • An den Punkt des Prozesses, an dem Platz in der Vorausschau-Warteschlange verfügbar wird, kann die SCB-Stufe erneut aufgerufen werden. Bei diesem Aufruf – die SCB-Stufe befindet sich im Zustand FügeBLEND1NachSpanEin 114 – kann das Bahnstück-Einfügen erneut versucht werden und – falls das Einfügen wiederum fehlschlägt – kann der eben beschriebene Prozess wiederholt werden. Versuche zum Einfügen eines Bahnstücks können wiederholt werden, bis entweder das Bahnstück erfolgreich eingefügt oder der Vorausschauplatz erschöpft ist.
  • Sobald FügeBLEND1NachSpanEin ein neues Bahnstück erfolgreich hinter SPAN1 in die Liste einfügen kann, zeigt BLEND1 auf das „erste eingefügte Bahnstück", dem der Bewegungstyp spline corner move1 zugewiesen ist. Außerdem können die Längen- und Befehlspositionen von SPAN so modifiziert werden, dass sie das neue, gekürzte Geradenstück richtig widerspiegeln. Nach Abschluss der Aktionen im Zustand FügeBLEND1NachSpanEin (114) kann der Zustand nach FügeBLEND2NachBLEND1Ein wechseln, und sobald die Aktionen dieses Zustands abgeschlossen sind, hat die verkettete Liste der Bahnstücke die in 8B gezeigte Struktur.
  • Wie schon gesagt, wechselt die FSM – sobald der Zustand FügeBLEND1NachSpanEin (114) erfolgreich abgeschlossen ist – in den Zustand FügeBLEND2NachBLEND1Ein (116). Der Zustand FügeBLEND2NachBLEND1Ein (116) versucht zuerst, ein Bahnstück hinter dasjenige Bahnstück, auf das BLEND1 zeigt, in die verkettete Liste einzufügen. Nicht erfolgreiche Einfügeversuche können in analoger Weise zu dem oben hinsichtlich FügeBLEND1NachSpanEin Beschriebenen behandelt werden.
  • Nach erfolgreichem Einfügen des neuen Bahnstücks lässt man BLEND2 auf das neu eingefügte Bahnstück zeigen und der Bewegungstyp von BLEND2 wird als spline corner move2 spezifiziert. Außerdem wird die Länge von NEXT (das BLEND2 folgende Geradenstück) so modifiziert, dass sie die vorgenommene Verkürzung widerspiegelt, und die Befehlsposition für BLEND2 wird festgelegt. Nach Abschluss der Aktionen von FügeBLEND2NachBLEND1Ein wechselt die FSM zu FinishStufe (was weiter unten detailliert beschrieben wird).
  • Wir gehen in der Betrachtung nun zum Knoten 12 und den darauf folgenden Zuständen zurück. Wie zuvor beschrieben, ist der Zustand der Knoten 12, wenn es sicher ist, dass hinter NEXT kein Verrundungsstück eingefügt werden wird und dass der ideale Übergangspunkt-Abstand größer als die Länge von NEXT minus der Längentoleranz ist. Beim Knoten 12 kann durch Prüfung festgestellt werden, ob die Länge von NEXT größer als die Länge von SPAN minus der Längentoleranz ist. Falls NEXT um mehr als die Längentoleranz länger als SPAN ist, so wird SPAN in das erzeugte BLEND1 einbezogen, D kann so modifiziert werden, dass seine Länge gleich der von SPAN ist, und der Zustand wechselt nach DefiniereSpanNeuAlsBLEND1 (112). Der weitere Weg von diesem Punkt aus durch die FSM ist bereits oben beschrieben worden. Nach vollständigem Durchlaufen des Weges durch das FSM hat die verkettete Liste der Bahnstücke für diesen Fall die in 8C gezeigte Struktur.
  • Wenn am Knoten 12 festgestellt wird, das NEXT nicht um die Längentoleranz länger als SPAN ist, wechselt der Zustand nach DefiniereNextNeuAlsBLEND2 (118). In diesem Zustand wird NEXT in die der Bildung der zweiten halben Verrundung einbezogen, D kann so modifiziert werden, dass seine Länge gleich der von NEXT ist, und der Zustand wechselt zum Knoten 14. Beim Knoten 14 kann auf den Sonderfall geprüft werden, dass SPAN und NEXT innerhalb einer Längentoleranz gleich sind. In den seltenen Fällen, wo dies der Fall ist, können beide Geradenstücke in die Bildung der beiden Verrundungsstücke einbezogen werden und der Zustand wechselt zu DefiniereBeideNeuAlsSpline (120).
  • Die Hauptaktionen für den Zustand DefiniereBeideNeuAlsSpline (120) können einfach die sein, BLEND1 auf SPAN zeigen zu lassen und seinen Bewegungstyp auf spline corner move1 zu setzen (BLEND2 wird bereits auf NEXT zeigen und sein Bewegungstyp wird auf spline corner move2 gesetzt sein). Die nächste während DefiniereBeideNeuAlsSpline durchgeführte Aktion ist, die Bahnstückdaten-Variablen zu setzen, die sicherstellen, dass das erste halbe Verrundungsstück niemals mit einem vollständigen Stopp endet, auch dann nicht, wenn die Steuerung in einem Einzelblockmodus arbeitet, in dem ein Zyklusstart nur bewirkt, dass der nächste Block des Werkstückprogramms ausgeführt wird. DefiniereBeideNeuAlsSpline wechselt bedingungslos nach FinishStufe (122) und die verkettete Liste der Bahnstücke hat dann die in 8E gezeigte Struktur.
  • Der häufiger vorkommende Übergang weg vom Knoten 14 erfolgt, wenn die Längen von SPAN und NEXT nicht identisch sind. In diesem Fall wechselt der Zustand nach FügeBLEND1VorNextEin (124). Die Aktionen von FügeBLEND1VorNextEin können fast identisch zu denen von FügeBLEND1NachSpanEin sein, mit zusätzlichen Aktionen zum Sicherstellen, dass das erste halbe Verrundungsstück niemals mit einem vollständigen Stopp endet, auch dann nicht, wenn die Steuerung in einem Einzelblockmodus arbeitet. Nach erfolgreichem Einfügen von BLEND1 wechselt der Zustand nach FinishStufe und die verkettete Liste der Bahnstücke hat dann die in 8D gezeigte Struktur.
  • Wir gehen in der Betrachtung nun zum Zustand Kein VorausschauplatzFrei (126); wie oben gesagt, kann er erreicht werden, wenn die Verwaltung der Bahnstückvorbereitungs-Stufen meldet, dass in der Vorausschau-Warteschlange kein freier Platz mehr zum Einfügen eines Verrundungsstücks verfügbar ist und dass ein freier Platz nicht vor demjenigen Punkt im Programmausführungsprozess verfügbar werden wird, an dem ein eingefügten Bahnstück abgearbeitet werden muss. Dies könnte möglicherweise passieren, wenn die Vorausschau-Warteschlange kurz ist und mehrere Bahnstückvorbereitungs-Stufen zusammen mit der SCB-Stufe benutzt werden. Es ist an dieser Stelle anzumerken, dass eine solche Bedingung äußerst selten ist, selbst wenn die Vorausschau-Warteschlange eine minimale Länge von etwa 20 Bahnstücken hat. Dennoch kann ein Zustand vorhanden sein, um diese allerdings unwahrscheinliche Bedingung zu behandeln.
  • Bei der FSM-Ausführungsform von 9 kann der Zustand KeinVorausschauplatzFrei (126) von den drei Bahnstückeinfüge-Zuständen FügeBLEND2NachBLEND1Ein (116), FügeBLEND1NachSpanEin (114) und FügeBLEND1VorNextEin (124) aus erreicht werden. Wie man im FSM-Diagramm sehen kann, sind möglicherweise ein oder beide Verrundungsstücke bereits festgelegt, wenn der Zustand Kein VorausschauplatzFrei (126) erreicht wird. Da Kein VorausschauplatzFrei bedeutet, dass SCB nicht erreicht werden kann, können bei einer Ausführungsform alle bereits festgelegten Verrundungsstücke in Geradenstücke zurückverwandelt werden. Die Schritte zum Zurückverwandeln eines Bahnstücks in ein Geradenstück können unabhängig davon, ob die Verrundungsstücke eingefügte Bahnstücke oder die umdefinierten SPAN- oder NEXT-Stücke sind, identisch sein.
  • Ein Umwandeln in eine Gerade beinhaltet das Festlegen der Längre des Geradenstücks. Die Länge eines in ein Geradenstück umgewandelten Verrundungsstücks ist einfach der Übergangspunkt-Abstand D. Die Befehlsposition (Endpunkt) für das ein Geradenstück umgewandelte Verrundungsstück muss nicht berechnet werden, weil sie bereits korrekt ist. Die Befehlsposition für BLEND1 ist die noch nicht modifizierte des ursprünglichen Geradenstücks.
  • Wie man außerdem bei der in 9 gezeigten beispielhaften Ausführungsform sieht, erfolgt der Wechsel zum Zustand FinishStufe nach erfolgreichen Erzeugen der ersten und zweiten halben Verrundungsstücke BLEND1 und BLEND2. Die Aktionen des Zustands FinishStufe 122 können folgende sein:
    • – Ermitteln des Wertes für die Scheitelkrümmung x.
    • – Ermitteln der Länge der Verrundungsstücke
    • – Berechnen der Koeffizientenmatrix jedes Verrundungsstücks (ausgedrückt in Eckenebenen-Koordinaten)
    • – Speichern bestimmter Zwischenberechnungen in Daten
  • In einer beispielhaften Ausführungsform ist die Scheitelkrümmung x für BLEND1 und BLEND2 identisch. Sie kann aus dem Übergangspunkt-Abstand D mithilfe der Gleichung (23) berechnet werden. Die Gleichung erfordert es, dass der Krümmungsfaktor f bereits berechnet und in den Bahnstückdaten gespeichert ist.
  • Die Berechnung macht Gebrauch von einigen der im Zustand BerechneÜbergangspunkteAbstand (108) in den Bahnstückdaten gespeicherten Zwischenvariablen. Sobald der Wert von x berechnet ist, kann er in den Bahnstückdaten von BLEND1 und BLEND2 gespeichert werden, da er beim Berechnen der Randbedingungsvektoren (unten behandelt) benötigt werden wird. Außerdem ist bei der beispielhaften Ausführungsform die Bahnstücklänge S für BLEND1 und BLEND2 gleich. Die Bahnstücklänge kann mithilfe von Gleichung (18) berechnet werden.
  • Einige der Variablen, die zum Berechnen der Rotationstransformation möglicherweise benötigt werden, können ebenfalls während des Zustands FinishStufe berechnet und in den Daten von BLEND1 und BLEND2 gespeichert werden. Zu diesen Variablen gehören die Inverse der Längen der Grundseite und der Höhe des gleichschenkligen Dreiecks, das vom Anfangspunkt von BLEND1, dem Scheitelpunkt der ursprünglichen Ecke und dem Endpunkt von BLEND2 gebildet wird. Diese Ausdrücke können mithilfe der folgenden Gleichungen effizient berechnet werden.
  • Die folgenden beiden Gleichungen benutzen die aus der Programmiersprache C stammende Notation „->", die eine Referenz eines Zeigers auf eine Datenstruktur bedeutet. Im Kontext dieser Beschreibung wird damit einfach gesagt, dass eine Variable einem bestimmten Bahnstück-Objekt zugeordnet ist. So stellt im vorliegenden Fall beispielsweise „span->D" den zu dem betreffenden Bahnstück SPAN gehörenden Übergangspunkt-Abstand dar.
  • Figure 00560001
  • Figure 00570001
  • Zum Schluss können die Spline-Koeffizientenmatrizen der Verrundungsstücke mithilfe der Gleichungen (11) und (12) im Eckenebenen-Koordinatensystem berechnet werden.
  • Nachdem diese Berechnungen im Zustand FinishStufe (122) abgeschlossen sind, wechselt der Zustand der SCB-Stufe FSM zum Zustand WartenAufNeuesBahnstück (102), die Stufe wird abgeschlossen und die Steuerung kann an die Verwaltung der Bahnstück-Vorbereitungsstufen zurückgegeben werden, bis im Werkstückprogramm ein neues Bahnstück, welches eine Eckenverrundung erfordert, auftritt. Nachdem die SCB-Stufe für SPAN abgeschlossen ist, können nachfolgende Stufen abgearbeitet werden, bis alle Stufen für SPAN abgeschlossen sind.
  • Vorwärtstransformation
  • Bei einer beispielhaften Ausführungsform ist die letzte Stufe der Bahnstück-Vorbereitungen die Vorwärtstransformationsstufe 212. Vorwärtstransformation ist der Prozess, bei dem Bahnstückdaten in Werkzeugmaschinen-Koordinaten (Interp-Koordinaten) umgewandelt werden. An diesem Punkt müssen die Bahnstückdaten möglicherweise modifiziert werden, um unterschiedliche Klassen von translatorischen und rotatorischen Versatzgrößen zu berücksichtigen. Das Abschließen der Berechnungen für die Spline-Eckenverrundungsstücke können bis zu diesem Punkt im Bahnstück-Vorbereitungsprozess aufgeschoben werden, um die Auswirkungen auf Bahnstückdaten aller der SCB-Stufe folgenden Stufen zu berücksichtigen, einschließlich der während der Vorwärtstransformation durchgeführten Berechnungen.
  • Die Vorwärtstransformationsstufe 212 kann an Spline-Eckenverrundungsstücken folgende Aufgaben durchführen:
    • – Transformieren der Spline-Koeffizientenmatrizen in Interp-Koordinaten
    • – Berechnen der Randbedingungsvektoren zur Größenbegrenzung, d. h. max tan, max curv usw.
    • – Berechnen und Festlegen des Teils der Bahnstückdaten, der zur Abarbeitung der Bahnstücke benötigt wird
  • Diese Aufgaben werden in den nachfolgenden Abschnitten detailliert behandelt.
  • Die Transformation von Eckenebenen-Koordinaten in Interp-Koordinaten kann mithilfe der Gleichungen (26), (27) und (29) durchgeführt werden; die Transformation kann mithilfe der Gleichung (33) auf die Koeffizientenmatrix angewendet werden. Der Gebrauch der während der SCB-Stufe 210 erzeugten Bahnstückdaten macht die Berechnung effizient.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung kann es bei einer Ausführungsform der vorliegenden Erfindung eine zusätzliche Aufgabe der Vorwärtstransformationsstufe 212 sein, einen Satz von Randbedingungsvektoren für das Bahnstück zu berechnen. Die Randbedingungsvektoren können benutzt werden, um für das Bahnstück die maximale Bahngeschwindigkeit, die maximale Bahnbeschleunigung, das maximale Bahnbeschleunigungsänderung sowie die Randbedingung für die Geschwindigkeit am Bahnstück-Ende zu berechnen.
  • Bei dieser Ausführungsform beinhalten die für jedes Spline-Eckenverrundungsstück berechneten Randbedingungs-Vektoren Folgendes:
    • – Richtungskosinusse am Anfang des Bahnstücks
    • – Richtungskosinusse am Ende des Bahnstücks
    • - Krümmung am Ende des Bahnstücks BLEND1
    • - Krümmung am Anfang des Bahnstücks BLEND2
    • – Maximalwert der Tangentenvektor-Komponenten längs des Bahnstücks
    • – Maximalwert der Krümmungsvektor-Komponenten längs des Bahnstücks
    • – Maximalwert der Vektor-Komponenten der Ableitung der Krümmungsvektor-Komponenten längs des Bahnstücks
  • Die folgenden Abschnitte enthaltenen Beschreibungen dafür, wie jeder dieser Vektoren für jedes der beiden Bahnstücke berechnet werden kann, die die Spline-Eckenverrundung mit Polynomen vierten Grades bilden. Die Berechnungen können für den Sonderfall einer Spline-Eckenverrundung mit Polynomen vierten Grades optimiert werden. Es wird angenommen, dass eine direkte Auswertung der Ableitungen des Spline-Polynoms an den Endpunkten durchgeführt werden könnte, doch würde dies mehrere Multiplikationen pro Komponente und Vektor bedeuten und zeitaufwendiger sein.
  • Gemäß einem Aspekt der Erfindung kann die Steuerung den „Bahnstückanfangs-Richtungskosinus"-Vektor des nächstfolgenden Bahnstücks zusammen mit dem „Bahnstückende-Richtungskosinus"-Vektor des aktuellen Bahnstücks zum Berechnen der Randbedingung für die Geschwindigkeit am Ecken-Ende des aktuellen Bahnstücks benutzen. In diesem Kontext stellt die Randbedingung für die Geschwindigkeit am Bahnstück-Ende sicher, dass die konfigurierten maximalen Geschwindigkeitssprünge der Achsen nicht überschritten werden.
  • Für Spline-Eckenverrundungsstücke der oben besprochenen Ausführungsform der Erfindung ist der Geschwindigkeitssprung am Ende des Bahnstücks null. Dies ist deshalb so, weil diese Spline-Eckenverrundungsstücke einen Bahnstückende-Richtungskosinusvektor haben, der gleich dem Bahnstückanfangs-Richtungskosinus des nachfolgenden Bahnstücks ist. Die Berechnungen der Bahnstückanfangsund Bahnstückende-Richtungskosinusse (und Krümmungen) sind nur für die Komponenten derjenigen Vektoren erforderlich, die mit den Spline-Achsen korrespondieren, weil bereits sichergestellt worden ist, dass dies die einzigen bewegten Achsen sind.
  • Bei einer beispielhaften Ausführungsform wird der Bahnstückanfangs-Richtungskosinus eines Bahnstücks des Typs spline corner move1 (das erste halbe Verrundungsstück) von dem Geradenstück für den Fall eines Bahnstück-Einfügens vorwärts kopiert und bleibt unberührt für den Fall einer Neufestlegung des Geradenstücks. Die Komponenten des Bahnstückende-Richtungskosinus der ersten Hälfte des Verrundungsstücks können effizient durch Rotieren des Richtungskosinus-Vektors des Eckenebenen-Koordinatensystems hin zu Interp-Koordinaten ermittelt werden. Weil – wie oben besprochen – der Bahnstückende-Richtungskosinus des ersten halben Verrundungsstück in Eckenebenen-Koordinaten in einer beispielhaften Ausführungsform {10}T ist (sodass das Bahnstückende parallel zur x-Achse des Eckenebenen-Koordinatensystems liegt), wird dann der Bahnstückende-Richtungskosinus des ersten halben Verrundungsstücks die erste Spalte der Rotationsmatrix.
  • Die Bahnstückanfangs-Richtungskosinus-Komponenten der zweiten Hälfte des Verrundungsstücks können effizient dadurch erhalten werden, dass man die Bahnstückende-Richtungskosinus-Komponenten des vorhergehenden Bahnstücks vorwärts kopiert (weil der Richtungskosinus am Ende der ersten Hälfte gleich dem Richtungskosinus am Anfang der zweiten Hälfte sein sollte, wie oben besprochen).
  • Der Bahnstückende-Richtungskosinus der zweiten Hälfte des Verrundungsstücks kann so berechnet werden, dass man die Ableitung der Spline-Polynomkurve an dem Ort auswertet, an dem der Spline-Parameter gleich der Bahnstücklänge ist.
    Figure 00600001
    wobei S die Bahnstücklänge von BLEND2 und A die Koeffizientenmatrix von BLEND2 ist.
  • Die Krümmung am Bahnstückanfang für das erste halbe Verrundungsstück der oben beschriebenen Ausführungsform der Erfindung ist stets null, weil ein SCB-Bahnstück immer von einem Geradenstück mit der Krümmung null ausgeht. Da die Krümmungsdaten eines Bahnstücks am Anfang immer null sind und da eine Verrundung nur hinter einem Geradenstück mit der Krümmung null eingefügt werden darf, ist zum Festlegen der Variablen der Bahnstückanfangs-Krümmung auf null keine Aktion erforderlich, weil die Variable schon so initialisiert werden kann.
  • Die Bahnstückende-Krümmung für das erste halbe Verrundungsstück ist die Bahnstückende-Krümmung in Eckenebenen-Koordinaten, rotiert zu Interp-Koordinaten. Da die Bahnstückende-Krümmung in Eckenebenen-Koordinaten {0 – κ}T ist, ist sie in Interp-Koordinaten die zweite Spalte der Rotationsmatrix multipliziert mit –κ, wobei κ die Größe der in den Bahnstückdaten gespeicherten Scheitelkrümmung ist.
  • Die Bahnstückanfangs-Krümmungs-Komponenten der zweiten Hälfte des Verrundungsstücks können effizient dadurch erhalten werden, dass man die Bahnstückende-Krümmungs-Komponenten des vorhergehenden Bahnstücks vorwärts kopiert, weil sie bei der oben beschriebenen Ausführungsform identisch sein sollten (sodass die beiden Hälften knickfrei zusammenpassen). Die Bahnstückende-Krümmung der zweiten Hälfte des Verrundungsstücks ist stets null, weil sie gleich der Krümmung des zweiten Geradenstücks sein sollte. Deshalb kann man sie durch einfaches Kopieren von Nullen auf die Komponenten der Bahnstückende-Krümmungs-Variable festlegen.
  • Der maximale Tangentenvektor für das Bahnstück kann aus Komponenten bestehen, die den maximalen Absolutwert enthalten, den die korrespondierende Komponente des Tangenten-Einheitsvektors längs des Bahnstücks erreicht. Der maximale Tangentenvektor kann benutzt werden, um Folgendes zu ermitteln: (1) die maximale Bahngeschwindigkeit des Bahnstücks unter den Randbedingung der vorkonfigurierten maximalen Bahngeschwindigkeit und der vorkonfigurierten maximalen Achsengeschwindigkeiten, (2) die maximale Bahnbeschleunigung des Bahnstücks unter den Randbedingung der vorkonfigurierten maximalen Bahnbeschleunigung und der vorkonfigurierten maximalen Achsenbeschleunigungen und (3) die maximale Bahnbeschleunigungsänderung des Bahnstücks unter den Randbedingung der vorkonfigurierten maximalen Bahnbeschleunigungsänderung und der vorkonfigurierten maximalen Achsenbeschleunigungssänderungen (die vorkonfigurierten Werte sind diejenigen Maximalwerte, die zum Erzielen optimaler Leistung für Bahn und Achsen festgelegt worden sind).
  • Jede Komponenten des maximalen Tangentenvektors für ein Bahnstück kann das Maximum des Rbsolutwerts der folgenden Größen sein:
    • – Komponente des Richtungskosinus-Vektors am Anfang des Bahnstücks
    • – Komponente des Richtungskosinus-Vektors am Ende des Bahnstücks
    • – Absolutwert der Tangentenvektor-Komponente an Orten, wo die Tangentenvektor-Komponente Extrema hat, falls diese Orte auf dem Bahnstück liegen. (Eine Funktion – in diesem Fall die Tangentenvektor-Komponente an durch u spezifizierten Punkten des Bahnstücks hat an einem Punkt ein Extremum, wenn der Funktionswert dort entweder größer oder kleiner als die Funktionswerte in der Umgebung des Punktes ist.)
  • Dies kann durch die folgende Gleichung für die generische Rchsenkomponente h (d. h, h ist eine Spline-Achse) dargestellt werden.
  • Figure 00620001
  • In der vorstehenden Gleichung repräsentieren uehp und uehn die Orte längs des Bahnstücks, an denen der Tangenten-Einheitsvektor Extrema hat, Bei einer Spline-Kurve in Form eines Polynoms vierten Grades gibt es zwei Orte, an denen der Tangenten-Einheitsvektor ein Extremum hat. Diese Orte können auf dem Bahnstück liegen, müssen es aber nicht. In Gleichung (37) werden nur solche Orte berücksichtigt, bei denen das Extremum auf dem Bahnstück liegt, d. h. wo 0 < ue < S gilt.
  • Der Tangenten-Einheitsvektor an einem durch den Parameter u bestimmten Ort auf dem Bahnstück ist der folgende: {tan_vec(u)} = [A]{4u33u22u10}T (38)
  • Dementsprechend können die Orte, an denen eine Tangenten-Einheitsvektor-Komponenten ein Extremum hat, durch Suchen der Wurzeln der Ableitung der Tangenten-Einheitsvektor-Komponente ermittelt werden. Die Orte der Extrema für jede Spline-Koordinate können wie folgt abgeleitet werden:
  • Figure 00630001
  • Die Auswertung der Ableitung in der vorstehenden Gleichung ergibt folgende drei unabhängigen Gleichungen:
    Figure 00630002
  • Es handelt sich um quadratische Gleichungen mit zwei durch die Indizes p und n bezeichneten Lösungen.
  • Figure 00630003
  • Da die Bahnstücklänge eine reelle Zahl ist, muss der Radikand (Ausdruck unter dem Quadratwurzelzeichen) größer als null sein, wenn das Extremum auf dem Bahnstück liegen soll. Deshalb gibt es, wenn der Radikand kleiner als null ist, kein Extremum auf dem Bahnstück und jede Komponente des maximalen Komponentenvektors ist der größte Rbsolutwert der beiden folgenden Größen: Wert der korrespondierenden Komponente des Bahnstückanfangs-Richtungskosinus, Wert des Bahnstückende-Richtungskosinus. Infolgedessen besteht die Möglichkeit – falls der Radikand für die h-te Komponente (h ist eine der drei Spline-Achsen), beispielsweise h E {X, Y, Z} größer als null ist), dass einer oder beide der Werte uehp und Uehn auf dem Bahnstück liegen.
  • Jeder der Werte uehp und uehn kann darauf geprüft werden, ob er auf dem Bahnstück liegt, und es werden nur die Werte betrachtet, die größer als null und kleiner als die Bahnstücklänge sind. Für auf dem Bahnstück liegende ue-Werte kann tan_vec(u) in Gleichung (37) durch Auswerten der Gleichung (38) mit u = ue berechnet werden.
  • Wie bei allen hier besprochenen Randbedingungsvektoren ist – in einer beispielhaften Ausführungsform – der maximale Tangentenvektor ein 14-elementiges Feld, um sämtliche logischen Achsen berücksichtigen (z. B. {X Y Z U V W A NB C D E P Q R}) zu können. Es ist klar, dass bei Spline-Bahnstücken sämtliche Komponenten des maximalen Tangentenvektors mit Ausnahme derer, die mit den Koordinaten der Spline-Achsen korrespondieren, den Wert null haben.
  • Die Komponenten des maximalen Tangentenvektors können dann benutzt werden, um die maximale Geschwindigkeit des Bahnstücks, begrenzt durch die maximalen Achsengeschwindigkeiten, zu ermitteln. Dies ist einer von mehreren möglichen Werten für die maximale Geschwindigkeit, gekennzeichnet durch den Index 1. Die Indizes h1, h2 usw., werden zum Bezeichnen der einzelnen logischen Achsen benutzt.
  • Figure 00640001
  • Die Komponenten des maximalen Tangentenvektors können dann benutzt werden, um die maximale Tangentialbeschleunigung des Bahnstücks, begrenzt durch die maximale Beschleunigung der Achse, zu ermitteln,
  • Figure 00640002
  • Die Komponenten des maximalen Tangentenvektors können dann benutzt werden, um die maximale Tangentialbeschleunigungsänderung des Bahnstücks, begrenzt durch die maximale Beschleunigungsänderung der Achse, zu ermitteln.
  • Figure 00640003
  • Außerdem berechnet dieser Aspekt der Erfindung – der Randbedingungs-Vektor – den maximalen absoluten Wert den die Krümmungsvektor-Komponente längs des Bahnstücks annimmt. Dieser Wert kann dazu benutzt werden, die maximale Geschwindigkeit des Bahnstücks, begrenzt durch die vorkonfigurierten maximalen Achsenbeschleunigungen, zu ermitteln.
  • Jede Komponente der maximalen Krümmung ist der größte Absolutwert der folgenden drei Größen: Bahnstückanfangs-Krümmung, Bahnstückende-Krümmung, Krümmung an der Stelle des Bahnstücks, an der die Krümmung für diese Komponente ein Extremum hat. Dies kann durch die folgende Gleichung für die generische Komponente h (einer logischen Achse) von maximaler Krümmung dargestellt werden; dabei wird die Berechnung für solche Achsen h durchgeführt, die Spline-Achsen sind:
  • Figure 00650001
  • In der vorstehenden Gleichung repräsentiert ue den Ort längs des Bahnstücks, an dem die Krümmungskomponente der h-Achse ein Extremum hat. In Gleichung (42) werden nur solche Orte berücksichtigt, bei denen das Extremum auf dem Bahnstück liegt, d, h. wo 0 < ue < S gilt.
  • Der Krümmungsvektor an einem durch den Parameter u bestimmten Ort auf dem Bahnstück wird unten gezeigt. Diese Gleichung wurde durch zweimaliges Differenzieren des Positionsvektors nach u (Abstand längs der Bahn) erhalten. {curv(u)}= [A]{12u26u200}T (43)
  • Die Orte, an denen die Krümmungskomponente ein Extremem hat, durch Suchen der Wurzeln der Ableitung des Krümmungsvektors derselben Komponente ermittelt werden. Die Orte der Extrema für jede Spline-Koordinate können wie folgt abgeleitet werden:
  • Figure 00650002
  • Die Auswertung der Ableitung in der vorstehenden Gleichung ergibt folgende drei unabhängigen Gleichungen:
  • Figure 00660001
  • Diese Gleichungen haben folgende Lösungen:
  • Figure 00660002
  • Nun kann für jede Komponente (Spline-Achse) geprüft werden, ob der Wert von ue größer als null und kleiner als die Bahnlänge ist. Ist das der Fall, dann kann die Krümmungskomponente an diesem Ort mithilfe der Gleichung (43) berechnet und in Gleichung (42) eingesetzt werden, andernfalls nicht. Wie bei allen Randbedingungsvektoren kenn der maximale Krümmungsvektor ein 14-elementiges Feld sein, um sämtliche logischen Achsen berücksichtigen zu können. Es ist klar, dass bei Spline-Bahnstücken sämtliche Komponenten der maximalen Krümmung mit Ausnahme derer, die mit den Koordinaten der Spline-Achsen korrespondieren, den Wert null haben.
  • Die Komponenten der maximalen Krümmung können dann benutzt werden, um die maximale Geschwindigkeit des Bahnstücks, begrenzt durch die maximalen Achsenbeschleunigungen, zu ermitteln, Der Index 2 zeigt an, dass die Randbedingungen für die Achsenbeschleunigung einen von mehreren Kandidaten für die Randbedingung der maximalen Bahnstückgeschwindigkeit erzeugen; der erste Kandidat wird oben mit Bezug auf die Berechnung der maximalen Tangentenbeschränkung beschrieben.
  • Figure 00660003
  • Gemäß dieser Ausführungsform kann eine weiteren Randbedingungsvektor-Berechnung geben – der Vektor, dessen Komponenten die größten Absolutwerte der korrespondierenden Komponente der Krümmungsänderung längs des Bahnstücks haben. Diese Größe kann dazu benutzt werden, die maximale Geschwindigkeit des Bahnstücks so festzulegen, dass die für die einzelnen Achsen konfigurierten maximalen Beschleunigungsänderungen nicht überschritten werden. Die Krümmungsänderung an jedem beliebigen Punkt des Bahnstücks kann durch Differenzieren der Krümmung nach dem Abstand längs der Bahn berechnet werden. {dcurv_ds(u)} = [A]{24u6000}T (47)
  • Die vorstehende Gleichung zeigt, dass sich dcurv_ds linear längs des Bahnstücks ändert. Deshalb gibt es kein Extremem und der maximale Wert von dcurv_ds ist der größere der Absolutwerte von dcurv_ds an beiden Endpunkten. Die folgenden Gleichungen zeigen, wie dcurv_ds für jede der drei Spline-Achsen (Komponenten) berechnet werden kann: max dcurv_ds1 = max(|6A1,2|, |24A1,1 + 6A1,2 max dcurv_ds2 = max (|6A2 ,2|, |24A2,1 + 6A2,2|) (48) max dcurv_ds3 = max (|6A3,2|, |24A3,1 + 6A3,2|
  • Die maximalen dcurv_ds-Komponenten können dann benutzt werden, um die maximale Geschwindigkeit des Bahnstücks, begrenzt durch die maximalen Beschleunigungsänderungen der Achsen zu ermitteln. Der Index 3 zeigt an, dass die Randbedingungen für die Beschleunigungsänderungen der Achsen einen von mehreren Kandidaten für die Randbedingung der maximalen Bahnstückgeschwindigkeit erzeugen; die anderen beiden Kandidaten sind oben beschrieben.
  • Figure 00670001
  • Nachdem die drei Kandidaten für die maximale Geschwindigkeit auf der Basis von maximalen Achsengeschwindigkeiten, – beschleunigungsänderungen und -beschleunigungen berechnet worden sind, kann die Randbedingung der maximalen Bahnstückgeschwindigkeit durch Suchen des Minimums unter den Kandidaten ermittelt werden. span_max_speed = min(span_max_spd1,span_max_spd2,span_max_spd3,) (106)
  • Somit können gemäß diesem Aspekt der Erfindung ein maximaler Tangentenvektor, ein maximaler Krümmungsvektor und ein maximaler Krümmungsänderungsvektor für die Eckenverrundungsstücke berechnet werden. Diese Information kann dann zum Wählen einer Randbedingung für die maximale Geschwindigkeit, einer Randbedingung für die maximale Beschleunigung und einer Randbedingung für die maximale Beschleunigungsänderung bei dem Bahnstück benutzt werden. Nachdem diese Randbedingungen festgelegt sind, kann der CNC-Controller auf in der Technik bekannte Weise sicherstellen, dass sie während einer Bewegung über das Bahnstück nicht überschritten werden.
  • Bei einer beispielhaften Ausführungsform werden die oben besprochenen Spline-Eckenverrundungsstücke auf der Werkzeugmaschine mittels Interpolation abgearbeitet. Nachdem Länge, Koeffizientenmatrix und Randbedingungsvektoren des Bahnstücks berechnet worden sind, können die Daten für die Abarbeitung des Bahnstücks aktualisiert werden, um eine reale Bewegung gemäß der aktualisierten Bahn durchführen zu können. Nach Stand der Technik kann ein Spline-Stück auf einem digital arbeitenden CNC mithilfe eines Interpolators (der Teil des Positionierbefehl-Generators 414 der 1 sein kann) in regelmäßigen Zeitintervallen auf eine solche Weise interpoliert werden, dass eine gewünschte Geschwindigkeit längs der bahn (d. h. Bahn- oder Vorschubgeschwindigkeit) erzielt wird. Die Bahnstück-Abarbeitungsdaten können modifiziert werden, um gut zu der konkreten Implementierung und den Anforderungen des Interpolators zu passen.
  • Bei der vorgestellten Ausführungsform kann der Interpolator über den Bahntyp (z. B. Spline oder Gerade) des Bahnstücks informiert werden. Außerdem kann der Interpolator darüber informiert werden, dass das Bahnstück programmierbare Bewegungen auf allen drei dem Spline-Koordinatensystem zugeordneten Achsen beinhaltet. Darüber hinaus kann der Interpolator über die Abbildung vom kartesischen Spline-Koordinatensystem auf das logische Achsensystem informiert werden. Dies kann man durch Kopieren des Äquivalents der logischen Achsen für jede Spline-Koordinate in die Datenstruktur der Spline-Abarbeitungsdaten erreichen.
  • Bei dieser Ausführungsform gehören zu den die Interpolation von Polynom-Splines in einem zeitdiskreten Controller betreffenden Aufgabe die folgenden: (1) ein Geschwindigkeitsverwalter ermittelt die gewünschte momentane Vorschubrate für das aktuelle Zeitintervall, benutzt dann diesen Wert zum Festlegen der erforderlichen schrittweisen Bewegung längs des Bahnstücks während des aktuellen Zeitintervalls, und aktualisiert den Abstand längs des Bahnstücks s(t), indem er den nächsten benötigten Interpolationspunkt festlegt, und (2) der Spline-Interpolator arbeitet auf s(t) als dem Parameter im Spline-Polynom, um die Achsenbefehls-Positionen für das aktuelle Zeitintervall des digitalen Controllers festzulegen. Der Interpolator kann das Polynom vierten Grades basierend auf den die Koeffizientenmatrix A darstellenden Bahnstückdaten auswerten:
  • Figure 00690001
  • Die Matrizengleichung (49) kann mithilfe der folgenden Gleichungen effizient ausgewertet werden. x = (((α11s + α12)s + α13)s + α14)s + α15 y = (((α21s + α22)s + α23)s + α24)s + α25 (50) z = (((α31s + α32)s + α33)s + α34)s + α35
  • Wie man sieht, sind bei Nutzung dieser beispielhaften Methode vier Multiplikationen und vier Additionen pro Achse und Zeitintervall erforderlich, so dass insgesamt zwölf Multiplikationen und zwölf Additionen benötigt werden. Dies sind dreimal weniger als bei direkter Auswertung der Gleichung (49) nötig sind.
  • Beispiel einer beispielhaften Ausführungsform
  • Die Vorteile der beispielhaften Ausführungsform der hier beschriebenen Eckenverrundung im Vergleich zum Einfügen von Kreisbögen oder Geschwindigkeitssprüngen werden im folgenden Beispiel aufgezeigt, das durch die 12 bis 15 illustriert wird. Das Bespiel betrifft einen Fall, in dem eine 5-mm-Bewegung auf der X-Achse von einer 5-mm-Bewegung auf der Y-Achse gefolgt wird und am Anfang und am Ende ein vollständiger Stopp erfolgt. Die programmierte Vorschubgeschwindigkeit für die Bewegung beträgt etwa 2500 mm/min. Die von den beiden Bahnstücken gebildete 90-Grad-Ecke wird unter Anwendung dreier unterschiedlicher Methoden durchlaufen: (1) Spline-Eckenverrundung (SCB) mit aktiviertem Feedforward, (2) Einfügen von Kreisbögen mit aktiviertem Feedforward, und (3) Geschwindigkeitssprünge an einer scharfen Ecke mit deaktiviertem Feedforward. Die Parameter der Achsenkonfiguration für dieses Beispiel sind typisch für ein kleines Mehrzweck-Vertikalbearbeitungszentrum.
  • Für den SCB-Fall wurde in diesem Beispiel eine Eckenverrundungs-Toleranz von etwa 0,5 mm gewählt. Für den Fall mit Kreisbögen wird ein Bogenradius von etwa 1,1207 mm verwendet, weil dieser zu einer größten Annäherung an die Ecke von ebenfalls etwa 0,5 mm führt. In diesem Beispiel wurde für die ersten beiden Fälle eine Eckentoleranz von etwa 0,5 mm gewählt, weil dies etwa dem Grad der im dritten Fall entstehenden Eckenverrundung entspricht, wo die Bewegung mit einem Geschwindigkeitssprung an der Ecke ausgeführt wird.
  • Der Grade der Eckenverrundung im Fall mit Geschwindigkeitssprung ist hauptsächlich eine Funktion der programmierten Vorschubgeschwindigkeit (z. B. 2500 mm/min), der konfigurierten Achsen-Schrittgeschwindigkeiten (z. B. 2000 mm/min für X und Y) und der konfigurierten Verstärkung der Achsenpositionierungs-Regelschleife (z. B. K*v = 2,5 mm/min/Mikrometer). Beim Fall mit Geschwindigkeitssprung ist Feedforward deaktiviert, weil dies eine typische Anforderung in Fällen ist, die mit erheblichen Geschwindigkeitssprüngen in den Achsenbefehlen arbeiten. Feedforward kann nicht zusammen mit Geschwindigkeitssprüngen angewandt werden, weil die konfigurierten Werte für die maximalen Geschwindigkeitssprünge typischerweise so gewählt werden, dass die Achse mit maximaler Leistung bei deaktiviertem Feedforward arbeitet.
  • Würde man in einem Fall mit Geschwindigkeitssprüngen Feedforward verwenden, dann würde die Anforderung, innerhalb des Leistungsbereichs der Achse zu arbeiten, zu einer so niedrigen Einstellung der größtzulässigen Geschwindigkeitssprünge führen, dass die Achsen an einer scharfen Ecke praktisch einen vollständige Stopp ausführen würden.
  • In den Fällen, in denen Feedforward aktiviert ist, wird angenommen, dass die tatsächliche Achsenpositionierung den Positionierbefehlen exakt folgt. In dem Fall mit deaktiviertem Feedforward wird angenommen, dass die tatsächliche Achsenpositionierung den Positionierbefehlen dynamisch mit dem Amplituden- und Phasengang eines Tiefpasses erster Ordnung folgt, welcher das typische dynamische Verhalten einer Achsenpositionierungs-Regelschleife einer Werkzeugmaschine darstellt.
  • Die in jedem der Testfälle durchlaufenen Bahnen sind in 12 gezeigt. Die im SCB-Fall und im Kreisbogenfall durchlaufenen Bahnen 5101 bzw. 5102 sind praktisch nicht unterscheidbar. Allerdings gibt es Unterschiede zwischen diesen Fällen, sie werden sichtbar, wenn weiter unten die Achsengeschwindigkeits-, Beschleunigungs- und Beschleunigungsänderungs-Profile untersucht werden.
  • Die im Fall mit Geschwindigkeitssprung durchlaufene Bahn wird als 5103 abgebildet. Die Bahn ist deutlich unsymmetrisch. Die Unsymmetrie wird durch die Phasennacheilungs-Eigenschaft des Positionier-Controllers verursacht, der ohne Feedforward arbeitet. Der Grad der Unsymmetrie ist eine Funktion von Vorschubgeschwindigkeit, konfigurierter maximaler Größe der Geschwindigkeitssprünge und der Verstärkung K*v. Die mit zu dem Fall mit Geschwindigkeitssprung verbundene Unsymmetrie kann aus mehreren Gründen problematisch sein, dazu zählen auch folgende: (1) die Umrissform lässt sich schwer voraussagen, (2) die Umrissform von Ecken, die im Uhrzeigersinn durchfahren werden, unterscheidet sich von der Umrissform derselben Ecken, wenn diese im Gegenuhrzeigersinn durchfahren werden, und (3) die von den Achsen durchlaufene Bahn verläuft noch lange nach dem Durchfahren einer Ecke abweichend von der idealen Bahn.
  • Wie man in 12 sieht, sind die Methoden mit Einfügen von Kreisbogen- und Spline-Eckenverrundungsstücken der Methode mit Geschwindigkeitssprung erheblich überlegen. Es werden jetzt die Vorzüge der Spline-Eckenverrundung gegenüber der Verrundung mit Kreisbögen durch Vergleiche von Kurvendiagrammen von Geschwindigkeit, Beschleunigung und Beschleunigungsänderung für beide Fälle aufgezeigt.
  • Die Geschwindigkeitsprofile für die Fälle mit SCB, Kreisbögen bzw. Geschwindigkeitssprüngen werden in den 13A, 14A und 15A gezeigt. jede dieser Abbildungen enthält Kurven der X-Achsen-Geschwindigkeit, der Y-Achsen-Geschwindigkeit und der Bahngeschwindigkeit in Abhängigkeit von der Zeit. Die Bahngeschwindigkeit ist die Geschwindigkeit der kombinierten Achsenbewegung in tangentialer Richtung zur Bahn im X/Y-Raum.
  • Im SCB-Fall beschleunigt die X-Achse aus dem Stillstand in etwa 0,07 s auf die programmierte Vorschubgeschwindigkeit. Während des ersten Teils der Bewegung bewegt sich allein die X-Achse, deshalb ist die Bahngeschwindigkeit (5203) gleich der Geschwindigkeit der X-Achse (5204). Im letzten Teil der Bewegung bewegt sich allein die Y-Achse, deshalb ist die Bahngeschwindigkeit (5203) gleich der Geschwindigkeit der X-Achse (5205).
  • An der Ecke bleibt die Bahngeschwindigkeit (5203) konstant. Währendessen wird die Geschwindigkeit der X-Achse (5204) allmählich von der programmierten Vorschubgeschwindigkeit auf null abgesenkt, und die Geschwindigkeit der X-Achse (5205) wird allmählich von null auf die programmierte Vorschubgeschwindigkeit erhöht. Die Gesamtzeit für die Bewegung mit der SCB-Methode beträgt etwa 0,31 s.
  • Wie 14A zeigt, wird im Fall der Kreisbogenmethode mehr Ausführungszeit (etwa 0,36 s) benötigt. Ein möglicher Grund dafür ist, dass der Übergang zwischen dem Geradenstück und dem Kreisbogen einen Beschleunigungssprung der Achse beinhaltet. Um Beschleunigungsänderungen an den Achsen in ihren konfigurierten Grenzen zu halten, ist es normalerweise nötig, dass die Steuerung die Vorschubgeschwindigkeit vor dem Übergang zwischen der Bewegung der X- Achse und dem Kreisbogen absenkt, und ebenso vor dem Übergang vom Kreisbogen und der Bewegung der Y-Achse. Dies kann man daran sehen, wie die Bahngeschwindigkeit 5303 für den Übergang von der Bewegung der X-Achse zum Kreisbogen etwa an der 0,15-s-Marke abgesenkt wird (z. B. auf etwa 1000 mm/min). Danach steigt die Bahngeschwindigkeit 5303 wieder in Richtung ihres programmierten Werts, erreicht diesen jedoch nicht, weil sie vorher etwa an der 0,22-s-Marke für den Übergang zwischen dem Kreisbogen und der Bewegung der Y-Achse wieder abgesenkt werden muss (z. B. auf etwa 1000 mm/min).
  • Wie 15 A zeigt, wird auch im Fall der Methode mit Geschwindigkeitssprüngen mehr Ausführungszeit (etwa 0,37 s) als bei der SCB-Methode benötigt, weil die Steuerung die Bahngeschwindigkeit 5403 kurz vor der Ecke absenken muss, um zu verhindern, dass bei der X- und bei der Y-Achse Geschwindigkeitssprünge auftreten, deren Größe den konfigurierten, zulässigen Maximalwert überschreitet. Die Geschwindigkeiten der X- und der Y-Achse (5401 bzw. 5402) und die Bahngeschwindigkeit 5403 sind unsymmetrisch, und zwar wegen der dynamischen Charakteristik erster Ordnung in der Positionier-Regelschleife ohne Feedforward. Die exponentielle Reaktionscharakteristik erster Ordnung eines Geschwindigkeitssprung-Befehls kann man bei genauer Betrachtung der Geschwindigkeiten 5401 und 5402 erkennen.
  • Eine Betrachtung der Kurven von Achsen- und Bahnbeschleunigung in Abhängigkeit von der Zeit – für die Testfälle SCB, Kreisbogeneinfügung und Geschwindigkeitssprung – in den Abbildungen13B, 14B bzw. 15B zeigt, dass in allen drei Fällen die maximalen Beschleunigungen der X- und der Y-Achse innerhalb ihrer konfigurierten Grenzen (z. B. 2,5 m/s2) liegen. In diesen Diagrammen ist die Bahnbeschleunigung diejenige Beschleunigungskomponente, die tangential zur Bahn im X/Y-Raum liegt.
  • Im SCB-Fall sind die Beschleunigungsfunktionen an der X- und an der Y-Achse (5211 bzw. 5212) „weiche" knickfreie Funktionen. Im Kreisbogen-Fall zeigen die Beschleunigungen an der X- und an der Y-Achse (5311 bzw. 5312) leichte Unregelmäßigkeiten. Beispielsweise entsteht bei der Beschleunigung der Y-Achse (5312) ein Beschleunigungssprung von etwa 0,4 m/s2, wo die Bewegung der X-Achse etwa an der 0,15-s-Marke in den Kreisbogen übergeht. Außerdem zeigt sich bei der Beschleunigung 5311 der X-Achse etwa an der 0,22-s-Marke ein Sprung von etwa 0,4 m/s2, wo der Kreisbogen in die Bewegung der Y-Achse übergeht. Im Fall mit Geschwindigkeitssprung entstehen bei den Beschleunigungen der X- und der Y-Achse (5411 bzw. 5412) große Sprünge bei der befohlenen scharfen Ecke.
  • Die Achsen- und Bahnbeschleunigungsänderungen – für die Testfälle SCB, Kreisbogeneinfügung und Geschwindigkeitssprung – werden in den Abbildungen13C, 14C bzw. 15C gezeigt. Die Bahnbeschleunigungsänderung ist diejenige Komponente der Beschleunigungsänderung, die tangential zur Bahn im X/Y-Raum liegt. Im SCB-Fall haben die Beschleunigungsänderung der X-Achse und der Y-Achse (5221 bzw. 5222) einen maximalen Wert von etwa 100 m/sz an der Ecke, was deutlich unterhalb des zulässigen Maximums (z. B. 150 m/s2) liegt. Im Kreisbogenfall haben die Beschleunigungsänderung der X-Achse und der Y-Achse (5321 bzw. 5322) einen maximalen Wert von etwa 140 m/s2, was etwa dem zulässigen Maximum entspricht. Die Beschleunigungsänderungen 5321 und 5322 erreichen das Maximum nicht exakt, was an den Bahnstück-Verrundungsalgorithmen der Steuerung liegt.
  • Die Beschleunigungsänderungen an der X- und der Y-Achse im Testfall mit Geschwindigkeitssprung werden in 15C als Kurven 5421 bzw. 5422 gezeigt. In diesem Fall überschreiten die Beschleunigungsänderungen das Achsenmaximum weit. Beschleunigungsänderungen in dieser Größe können Probleme wie etwa mechanische Vibrationen der Achsen und Maschinenverschleiß verursachen.
  • Es sind zwar sehr detaillierte Gleichungen und mögliche Implementierungen eines Verfahrens und einer Vorrichtung zur Eckenverrundung für ein Bahnsteuerungssystem vorgestellt worden, doch sollten diese Beispiele nicht als einschränkend verstanden werden. Diese beispielhaften Ausführungsformen werden einfach zu den Zweck vorgestellt, mögliche Wege zum praktischen Umsetzen und Nutzen der Erfindung aufzuzeigen, einschließlich einer als beste eingeschätzte Weise zum Einsetzen der Erfindung. Es ist erkennbar, dass die Erfindung auch andere Aspekte und Ausführungsformen bieten kann, ohne dabei den Geltungsbereich der Erfindung zu verlassen.
  • Beispielsweise wird daran gedacht – obwohl ein Polynom vierten Grades wie oben beschrieben zur Eckenverrundung benutzt werden kann und obwohl es sich gezeigt hat, dass solche Polynome gute Ergebnisse und erwünschte Krümmungen liefern – dass andere Arten von Polynomen benutzt werden könnten. Außerdem wird daran gedacht – obwohl die Eckenverrundung in einer Ausführungsform als aus einem Paar von Spline-Stücken bestehend beschrieben worden ist – dass mehr oder weniger Bahnstücke zum Erzeugen der Eckenverrundung benutzt werden könnten. Darüber hinaus wird daran gedacht – obwohl ein beispielhafter, in diskreten Zeitschritten arbeitender endlicher Automat (FSM) beschrieben worden ist – dass andere Implementierungen und Ausführungsformen der vorliegenden Erfindung möglich sind. Es wird erwartet, dass digitale Schaltungen ein wichtiges Mittel zur Steuerung von CNC-Maschinen sein werden, deshalb wurde in dieser Beschreibung die digitale Elektronik besonders hervorgehoben.

Claims (7)

  1. Ein Verfahren zum Steuern einer Bewegung über aufeinander folgende Geradenstücke hinweg, welche eine Ecke auf einer gewünschten Bewegungsbahn bilden, wobei dieses Verfahren Folgendes umfasst: Bereitstellen einer Mehrzahl von Datenpunkten, welche eine gewünschte Bewegungsbahn festlegen, wobei die Mehrzahl von Datenpunkten eine Mehrzahl von aufeinander folgenden Bahnstücken festlegt; Ermitteln, ob zwei aufeinander folgende gerade Bahnstücke eine Ecke mit einem Winkel bilden, der kleiner als ein vorbestimmter Höchstgrenzwert ist; und falls ja, eine nichtgerade Bahn festlegen, welche ohne Krümmungssprünge an die beiden aufeinander folgenden Geradenstücke ansetzt; und Steuern eines Aktuators nach Maßgabe der festgelegten nichtgeraden Bahn.
  2. Das Verfahren gemäß Anspruch 1, wobei der nicht-gerade Teil zwei Polynomfunktionen vierten Grades umfasst.
  3. Das Verfahren gemäß Anspruch 1, zusätzlich das Verkürzen der zwei aufeinander folgenden Geradestücke umfassend.
  4. Das Verfahren gemäß Anspruch 1, wobei der Aktuator ohne Sprünge bei Geschwindigkeit, Beschleunigung und Beschleunigungsänderung über die nicht-gerade Bahn bewegt wird. 5 Das Verfahren gemäß Anspruch 1, wobei die nicht-gerade Bahn eine Polynomfunktion vierten Grades im Parameter u enthält, wobei u eine Schätzung des Abstandes entlang der nicht-geraden Bahn ist.
  5. Das Verfahren gemäß Anspruch 1, wobei der Schritt des Festlegens der nicht-geraden Bahn folgende Schritte umfasst: Wählen eines lokalen Koordinatensystems; Berechnen einer Koeffizientenmatrix zum Darstellen der nichtgeraden Bahn; und Transformieren der Matrix in ein globales Koordinatensystem.
  6. Das Verfahren gemäß Anspruch 1, welches ferner folgende Schritte umfasst: Bestimmen einer maximalen Geschwindigkeitsbeschränkung für den nichtlinearen Weg, wobei der Aktuator entsprechend der maximalen Geschwindigkeitsbeschränkung gesteuert wird.
  7. Das Verfahren gemäß Anspruch 1, wobei der erste Ermittlungsschritt Folgendes umfasst: Vergleichen des von den Richtungskosinus-Vektoren der beiden Geradenstücke gebildeten Winkels mit einem vorbestimmten Mindestgrenzwert; und Vergleichen des von den Richtungskosinus-Vektoren der beiden Geradenstücke gebildeten Winkels mit einem vorbestimmten Höchstgrenzwert.
DE60008068T 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem Expired - Lifetime DE60008068T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16662599P 1999-11-19 1999-11-19
US166625P 1999-11-19
US711443 2000-11-13
US09/711,443 US6922606B1 (en) 1999-11-19 2000-11-13 Apparatus and method for smooth cornering in a motion control system

Publications (2)

Publication Number Publication Date
DE60008068D1 DE60008068D1 (de) 2004-03-11
DE60008068T2 true DE60008068T2 (de) 2004-09-23

Family

ID=26862426

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60038578T Expired - Lifetime DE60038578T2 (de) 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem
DE60038577T Expired - Lifetime DE60038577T2 (de) 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem
DE60008068T Expired - Lifetime DE60008068T2 (de) 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE60038578T Expired - Lifetime DE60038578T2 (de) 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem
DE60038577T Expired - Lifetime DE60038577T2 (de) 1999-11-19 2000-11-20 Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem

Country Status (3)

Country Link
US (1) US6922606B1 (de)
EP (1) EP1102139B1 (de)
DE (3) DE60038578T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016002904B4 (de) 2015-03-16 2021-07-22 Fanuc Corporation Robotersystem

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6242880B1 (en) * 1998-09-08 2001-06-05 Cimplus, Inc. Tolerance based motion control system
DE10144487A1 (de) * 2001-09-10 2003-03-27 Heidenhain Gmbh Dr Johannes Verfahren zur Bahnsteuerung
DE10164496A1 (de) * 2001-12-28 2003-07-17 Siemens Ag Automatisierungssystem
US7248012B2 (en) * 2003-06-02 2007-07-24 Honda Motor Co., Ltd. Teaching data preparing method for articulated robot
US7180253B2 (en) 2003-09-30 2007-02-20 Rockwell Automation Technologies, Inc. Method and system for generating multi-dimensional motion profiles
DE10351781B4 (de) * 2003-11-06 2006-12-07 Siemens Ag Rechnergestütztes Anpassungsverfahren für ein Anwenderprogramm für eine Werkzeugmaschine und hiermit korrespondierende Gegenstände
JP2006099347A (ja) * 2004-09-29 2006-04-13 Fanuc Ltd ロボット移動制御方法
US7792604B2 (en) * 2005-03-23 2010-09-07 Hurco Companies, Inc. Method of performing additive lookahead for adaptive cutting feedrate control
US8521797B2 (en) * 2005-09-30 2013-08-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
DE102005058809A1 (de) * 2005-12-09 2007-06-14 Hella Kgaa Hueck & Co. Bahnplanung
JP4652252B2 (ja) * 2006-02-28 2011-03-16 株式会社ミツトヨ 画像測定システム、画像測定方法及び画像測定プログラム
DE102006022831A1 (de) * 2006-05-16 2007-11-22 Siemens Ag Verfahren zum Steuern einer Schleifmaschine und numerisch gesteuerte Schleifmaschine
US8725283B2 (en) * 2006-08-04 2014-05-13 Hurco Companies, Inc. Generalized kinematics system
US7933677B2 (en) * 2006-08-04 2011-04-26 Hurco Companies, Inc. System and method for surface finish management
WO2008019340A2 (en) * 2006-08-04 2008-02-14 Hurco Companies, Inc. System and method for tool use management
US8024068B2 (en) 2006-08-04 2011-09-20 Hurco Companies, Inc. Machine tool control system
JP5032081B2 (ja) * 2006-09-29 2012-09-26 オークマ株式会社 工作機械における加工制御方法及び加工情報作成方法
DE102007050282B4 (de) * 2006-11-09 2015-11-26 Sew-Eurodrive Gmbh & Co Kg Vorrichtung zur Bewegung eines Objektes, Verfahren zur Bestimmung einer Bahnkurve, Verfahren zum Betreiben einer Maschine oder Anlage
US7979158B2 (en) * 2007-07-31 2011-07-12 Rockwell Automation Technologies, Inc. Blending algorithm for trajectory planning
US8765212B2 (en) 2007-09-21 2014-07-01 Nordson Corporation Methods for continuously moving a fluid dispenser while dispensing amounts of a fluid material
US9529778B2 (en) 2008-03-27 2016-12-27 Sunfish Studio, Llc System and method to compute narrow bounds on a modal interval polynomial function
JP4467625B2 (ja) * 2008-03-31 2010-05-26 三菱電機株式会社 数値制御装置および数値制御方法
EP2144127B1 (de) * 2008-07-08 2014-04-30 Siemens Aktiengesellschaft Verfahren und Steuergerät zum Aufsynchronisieren eines Aufnehmers eines Handlingsgerätes
CN101877567B (zh) * 2009-04-29 2012-09-19 鸿富锦精密工业(深圳)有限公司 马达速度命令产生装置及方法
JP5202735B2 (ja) * 2009-06-03 2013-06-05 三菱電機株式会社 数値制御装置
US9098077B2 (en) * 2010-08-25 2015-08-04 Mitsubishi Electric Corporation Trajectory control device
JP5192574B2 (ja) 2011-08-25 2013-05-08 ファナック株式会社 工具先端点の加速度または加加速度の表示部を備えた工具軌跡表示装置
US8803885B1 (en) 2011-09-07 2014-08-12 Infragistics, Inc. Method for evaluating spline parameters for smooth curve sampling
CN104168854B (zh) 2012-01-24 2017-02-22 史密夫和内修有限公司 多孔结构及其制造方法
JP5326015B2 (ja) * 2012-02-20 2013-10-30 ファナック株式会社 加工曲線作成機能を有する数値制御装置
JP6128767B2 (ja) * 2012-07-05 2017-05-17 キヤノン株式会社 ロボット制御装置、及びロボット制御方法
JP5653972B2 (ja) * 2012-07-19 2015-01-14 ファナック株式会社 コーナ複数曲線挿入部を有する数値制御装置
JP5734270B2 (ja) * 2012-12-21 2015-06-17 ファナック株式会社 コーナ角度に応じて自動的に加工経路の補正を行うワイヤ放電加工機
JP5855692B2 (ja) * 2014-02-26 2016-02-09 ファナック株式会社 コーナ形状補正機能を有するワイヤ放電加工機
JP6612592B2 (ja) * 2015-11-12 2019-11-27 ローランドディー.ジー.株式会社 箔転写装置で使用するデータを作成するためのプログラム、箔転写装置、箔転写方法
CN105700466A (zh) * 2015-11-23 2016-06-22 上海交通大学 高速数控加工轨迹的曲率光顺方法
CN107710084B (zh) * 2015-12-30 2020-04-17 深圳配天智能技术研究院有限公司 一种加工路径规划方法、加工路径规划装置及数控机床
US10347016B2 (en) * 2016-01-12 2019-07-09 Monotype Imaging Inc. Converting font contour curves
JP6363642B2 (ja) * 2016-02-29 2018-07-25 ファナック株式会社 接線連続のコーナにおけるコーナ経路の最適化機能を有する数値制御装置
DE102017222474A1 (de) * 2016-12-12 2018-06-14 Fanuc Corporation Numeriksteuerung und datenstruktur
EP3444687A1 (de) * 2017-08-14 2019-02-20 Siemens Aktiengesellschaft Verfahren zum betrieb einer numerisch gesteuerten werkzeugmaschine sowie werkzeugmaschine dazu
DE112017008009B4 (de) 2017-09-08 2022-03-31 Mitsubishi Electric Corporation Servosteuerungsvorrichtung
US10571921B2 (en) * 2017-09-18 2020-02-25 Baidu Usa Llc Path optimization based on constrained smoothing spline for autonomous driving vehicles
DE102017010425A1 (de) * 2017-11-12 2019-05-16 Wirtgen Gmbh Selbstfahrende Baumaschine und Verfahren zum Steuern einer selbstfahrenden Baumaschine
US10936792B2 (en) 2017-12-21 2021-03-02 Monotype Imaging Inc. Harmonizing font contours
US10732632B2 (en) * 2018-01-31 2020-08-04 Baidu Usa Llc Method for generating a reference line by stitching multiple reference lines together using multiple threads
CN110948477B (zh) * 2018-09-26 2021-12-17 深圳市优必选科技有限公司 一种机器人及其动作优化方法和装置
CN113711155A (zh) * 2019-07-19 2021-11-26 西门子(中国)有限公司 机器人路径规划器、方法、装置和计算机可读存储介质
CN110703684B (zh) * 2019-11-01 2022-09-30 哈工大机器人(合肥)国际创新研究院 一种端点速度不限的轨迹规划方法及装置
JP7444588B2 (ja) 2019-11-25 2024-03-06 ファナック株式会社 軌道生成装置、自動位置制御装置および軌道生成方法
CN113001537B (zh) * 2019-12-20 2022-08-02 深圳市优必选科技股份有限公司 机械臂控制方法、机械臂控制装置及终端设备
CN111913441B (zh) * 2020-08-06 2021-11-09 南京工程学院 一种基于轨迹模式的拐角平滑过渡方法
CN112965443B (zh) * 2021-02-08 2022-03-01 浙江工业大学 一种裁床拐角轨迹跟踪高精度插值控制方法
CN112947299B (zh) * 2021-04-26 2023-02-21 深圳市英威腾电气股份有限公司 一种运动设备的运动控制方法、系统及装置
CN115616982B (zh) * 2021-07-12 2024-06-04 大族激光科技产业集团股份有限公司 一种拐弯轨迹的过度方法及激光装置和计算机设备
CN114217573B (zh) * 2021-12-10 2023-12-29 江苏集萃智能制造技术研究所有限公司 一种速度前瞻控制方法
CN114415598B (zh) * 2021-12-29 2023-09-12 深圳数马电子技术有限公司 加工路径的过渡方法、装置、存储介质及计算机设备
CN117666475B (zh) * 2023-12-07 2024-08-02 齐齐哈尔大学 一种连续短线段拐角加工路径平滑方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60107106A (ja) 1983-11-15 1985-06-12 Mitsubishi Electric Corp 曲線補間装置
US4663726A (en) 1985-04-15 1987-05-05 General Electric Co. Robot control utilizing cubic spline interpolation
US4794540A (en) 1986-06-18 1988-12-27 Mts Systems Corporation Iterative spline function controlled positioning mechanism
JPH0782554B2 (ja) 1986-09-10 1995-09-06 フアナツク株式会社 曲面加工方法
US4772831A (en) 1986-11-20 1988-09-20 Unimation, Inc. Multiaxis robot control having improved continuous path operation
US5390292A (en) 1987-01-26 1995-02-14 Ricoh Company, Ltd. Apparatus for converting a gregory patch
JPH01258106A (ja) 1988-04-08 1989-10-16 Fanuc Ltd 空間曲線創成法
JPH01319868A (ja) 1988-06-21 1989-12-26 Mitsubishi Electric Corp 曲面生成方式
US5033005A (en) 1988-09-06 1991-07-16 Schlumberger Technologies, Inc. Analytical computer-aided machining system and method
JPH02113305A (ja) 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
ES2080051T3 (es) 1989-02-28 1996-02-01 Siemens Ag Procedimiento de control en una maquina herramienta numerica o un robot.
US5198161A (en) 1990-03-07 1993-03-30 Kao Corporation Parison thickness control method
US5229698A (en) 1990-08-06 1993-07-20 Cincinnati Milacron Inc. Method and apparatus for sub-span interpolation
DE59009901D1 (de) 1990-09-25 1996-01-04 Heidenhain Gmbh Dr Johannes Verfahren zur Ermittlung von Werkzeugbahnkonturen bei numerisch gesteuerten Maschinen.
JP2718260B2 (ja) 1990-11-08 1998-02-25 三菱電機株式会社 数値制御装置
NL9002703A (nl) 1990-12-10 1992-07-01 Philips Nv Bewerkingsmachine en besturingsinrichting geschikt voor toepassing in een dergelijke bewerkingsmachine.
US5396160A (en) * 1991-03-11 1995-03-07 General Motors Corporation Method of real-time machine path planning from a math model
US5682319A (en) 1991-06-04 1997-10-28 Anca Pty. Ltd. Computer numerically controlled machines
DE69314688T2 (de) 1992-04-23 1998-02-19 Heidenhain Gmbh Dr Johannes Numerische Steuerungseinrichtung und Verfahren zur Steuerung der Bewegung eines Werkzeuges
DE4213927A1 (de) 1992-04-28 1993-11-04 Festo Kg Verfahren zur steuerung einer werkzeugmaschine, insbesondere eine fraesmaschine
JP2857540B2 (ja) * 1992-06-22 1999-02-17 ファナック株式会社 カッタパスの自動再作成を行うcad/cam方法及び装置
US5438522A (en) 1992-12-18 1995-08-01 Cincinnati Milacron Inc. Method and apparatus for sub-span interpolation
JP2805119B2 (ja) 1993-02-26 1998-09-30 オークマ株式会社 非円形ワーク加工用数値制御装置
US5434489A (en) 1993-07-30 1995-07-18 Fanuc Robotics North America, Inc. Method and system for path planning in cartesian space
US5872714A (en) * 1993-11-26 1999-02-16 Ford Global Technologies, Inc. Rapidly making a contoured part
US5394323A (en) 1994-03-29 1995-02-28 The University Of British Columbia Path error control system
US5602968A (en) 1994-05-02 1997-02-11 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Task space angular velocity blending for real-time trajectory generation
EP0707252B1 (de) * 1994-10-13 1998-06-03 Kabushiki Kaisha F A Labo Verfahren zur dreidimensionalen Bearbeitung
JP2933119B2 (ja) 1995-05-09 1999-08-09 ファナック株式会社 数値制御装置
JP3396342B2 (ja) 1995-07-17 2003-04-14 三菱電機株式会社 スプライン補間機能を有する数値制御装置
US5726896A (en) 1995-08-30 1998-03-10 University Of Utah Research Foundation Method and system for spline interpolation, and their use in CNC
US5949693A (en) * 1996-09-06 1999-09-07 Tandler; William Computer aided design (CAD) system for automatically constructing datum reference frame (DRF) and feature control frame (FCF) for machine part
US5774359A (en) 1996-09-17 1998-06-30 Autodesk, Inc. Method for generating an extended rolling ball fillet surface between two surfaces
JP2824424B2 (ja) * 1996-11-07 1998-11-11 株式会社エフ・エーラボ 三次元加工方法
JPH10320026A (ja) 1997-05-20 1998-12-04 Mitsubishi Electric Corp 数値制御装置及び方法
DE69828530T2 (de) * 1997-12-02 2005-06-30 Lacent Technologies Inc., Edmonton Auf einen wagen montierte laserdüse und verfahren zur laserpositionierungssteuerung
US6112133A (en) * 1998-02-27 2000-08-29 Imcs, Inc. Visual system and method for generating a CNC program for machining parts with planar and curvilinear surfaces

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016002904B4 (de) 2015-03-16 2021-07-22 Fanuc Corporation Robotersystem

Also Published As

Publication number Publication date
DE60038577T2 (de) 2009-04-30
DE60038578T2 (de) 2008-08-21
EP1102139B1 (de) 2004-02-04
DE60008068D1 (de) 2004-03-11
DE60038578D1 (de) 2008-05-21
EP1102139A3 (de) 2002-08-07
EP1102139A2 (de) 2001-05-23
DE60038577D1 (de) 2008-05-21
US6922606B1 (en) 2005-07-26

Similar Documents

Publication Publication Date Title
DE60008068T2 (de) Vorrichtung und Verfahren zur Erzeugung glatter Kurven in einem Bewegungssteuerungssystem
DE60027124T2 (de) Bewegungssteuerung mit Spline Interpolation
EP0384925B1 (de) Steuerungsverfahren bei einer numerischen Werkzeugmaschine oder einem Roboter
DE112013006980B4 (de) Numerische Steuerungseinrichtung
DE69417323T2 (de) Verfahren zur Optimierung der Bewegung eines Mehr-Achsen-Roboters
DE102009024130B4 (de) Verfahren zur echtzeitfähigen Bahnplanung kontinuierlicher, rucksprungfreier Sollwerttrajektorien
DE102015103451B4 (de) Verfahren zum zeitdiskreten Kontrollieren antreibbarer Achsen und Computerprogrammprodukt
DE102017129258A1 (de) Laserbearbeitungsrobotersystem und Steuerverfahren für Laserbearbeitungsrobotersystem
EP1220069B1 (de) Verfahren zur Erstellung flexibler Kurvenscheibenfunktionen über das Steuerungs- oder Anwenderprogramm
DE112005000451T5 (de) Designverfahren für ein Industrieerzeugnis unter Verwendung einer Klothoidenkurve, Industrieerzeugnis, die mit dem Designverfahren entworfen werden, und Verfahren und Vorrichtung zur numerischen Steuerung unter Verwendung der Klothoidenkurve
DE2712169A1 (de) Verfahren und durchfuehrungsanordnung zur ausfuehrung einer komplexen bewegung durch einen industrieroboter
DE69211206T2 (de) Methode und Vorrichtung zur Erzeugung von Bahnbeschleunigungs- und Verzögerungsmustern für die Robotersteuerung
DE112017000203T5 (de) Numerische Steuerung und numerisches Steuerungsverfahren
DE102009038155A1 (de) Servomotorsteuergerät
EP2796954A1 (de) Numerische Steuerung mit Benachrichtigung eines CAM-Systems bei Änderung des Teileprogramms
DE10357650A1 (de) Verfahren zur Glättung von Polygonzügen in NC-Programmen
EP2927764B1 (de) Numerische Steuerung mit Anzeige einer Vorschau bei Änderungen des Teileprogramms
DE102017010539A1 (de) Vorrichtung und Verfahren zum Steuern einer Werkzeugmaschine, um einen synchronisierten Betrieb einer Spindelachse und einer Vorschubachse zu steuern
EP3438773B1 (de) Bearbeitung von werkstücken mit modellgestützter fehlerkompensation
DE10296186B4 (de) Automatisierungssystem zur Bewegungsführung bzw. Verfahren zur Bewegungsführung zumindest eines bewegbaren Maschinenelementes
DE69423688T2 (de) Verfahren und System zur numerischen Steuerung mit Sollwerteinstellung von Beschleunigung und Verzögerung
EP4137899A1 (de) Verfahren zum bestimmen einer bearbeitungsbahn und verfahren zur bearbeitung eines werkstücks mittels einer mehrachsigen bearbeitungsmaschine
EP0836128B1 (de) Steuerungsverfahren zur Bewegungsführung einer numerisch gesteuerten industriellen Bearbeitungsmaschine
EP3582043A1 (de) Verfahren, numerische steuereinrichtung sowie werkzeugmaschine zur bearbeitung eines werkstücks
DE2226547A1 (de) Proportional Interpolator fur Mehr achsenmaschinen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: MAIER, D., DIPL.-ING. UNIV., PAT.-ASS., 85221 DACH

8327 Change in the person/name/address of the patent owner

Owner name: SIEMENS INDUSTRY, INC. (N.D.GES.D. STAATES DEL, US