-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Werkzeugbahnberechnungsvorrichtung für ein numerisch gesteuertes System und ein Verfahren zum Betreiben desselben und insbesondere die Werkzeugbahnberechnungsvorrichtung mit einem Warteschlangenpuffer für ein numerisch gesteuertes System und ein Verfahren zum Betreiben desselben.
-
Beschreibung des Standes der Technik
-
Die Bewegungssteuerung ist das Herzstück der Technik bei Präzisions-Werkzeugmaschinen, und die Anwendungen der Bewegungssteuerung umfassen industrielle Maschinen für eine Positionssteuerung oder eine Geschwindigkeitssteuerung, und umfassen weiter Werkzeugmaschinen mit numerischer Steuerung mit Rechner (CNC, computerized numerical control) für eine Hochpräzisionssteuerung. Ein Bewegungssteuersystem wird mit verschiedensten Software- und Hardware-Verfahren integriert, so daß die Kosten, die Stabilität, die Benutzungshäufigkeit, die Wartung des Bewegungssteuersystems und sogar die Skalierbarkeit und Interoperabilität der Software und der Hardware wichtige Faktoren zum Beurteilen des Bewegungssteuerungssystems sind. Außerdem werden in der Praxis sowohl die Position als auch die Geschwindigkeit aller Achsen der Werkzeugmaschine in die Bestimmung der Steuerqualität der Werkzeugmaschine einbezogen.
-
Die Werkzeugbahnen werden durch eine G-Code-Datei definiert, die durch eine computergestützte Fertigungssoftware (CAM-Software, computer-aided manufacturing software) erzeugt wird. Die G-Code-Datei ist auch ein Teil der NC-Programmierung, welche NC- und CNC-Werkzeugmaschinen steuert.
-
Unter CNC-Werkzeugmaschinen ist zu verstehen, daß das numerische Steuerungssystem mit Rechner in der Werkzeugmaschine eingerichtet wird, und daß das numerische Steuerungssystem mit Rechner eingegebene Daten empfängt und berechnet und anschließend Befehle sendet, um Betriebszustände zu steuern, wie beispielsweise eine Achsrotation, einen Zerspanungswerkzeugaustausch, eine Schnittbewegung, einen Kühlmittelschalter, usw., um eine erwartete Steuerung zu erzielen.
-
Das
US-Patent 6 772 020 offenbarte eine Anordnung zur Erzeugung von Führungsgrößen für Regelkreise einer numerisch gesteuerten Maschine, die eine Interpolatoreinheit zur Vorgabe von Lagesollwerten mit einer definierten Interpolator-Abtastrate und eine Feininterpolatoreinheit umfaßt. Die Feininterpolatoreinheit umfaßt einen Abtastraten-Wandler und ein nachgeordnetes Tiefpaßfilter, wobei die Feininterpolatoreinheit der Interpolatoreinheit nachgeordnet ist, welche aus eingangsseitigen Lagesollwerten ausgangsseitige Führungsgrößen für einen oder mehrere nachgeordnete Regelkreise erzeugt, wobei die Feininterpolatoreinheit Führungsgrößen in einem Zeitraster der Regelkreise mit einer Regelkreisabtastrate erzeugt. Die Führungsgrößen für die Regelkreise werden so implementiert, daß sie eine Struktur eines Filters zweiter Ordnung annehmen und das Filter ist außerdem passend zur numerisch gesteuerten Maschine ausgelegt. Es erbringt jedoch keine Differenzierbarkeit höherer Ordnung für die resultierenden Bahnkurven. Aufgrund der hohen Komplexität der befehlserzeugenden Anordnung ist die Brauchbarkeit der numerisch gesteuerten Maschine verringert.
-
Es werden daher eine Werkzeugbahnberechnungsvorrichtung für ein numerisch gesteuertes System und ein Verfahren zum Betreiben desselbigen offenbart, um die Mengen der gesendeten Daten zu verringern und den Bahnfehler zu verringern.
-
KURZFASSUNG DER ERFINDUNG
-
Um die oben erwähnten Aufgaben zu lösen, stellt die vorliegende Erfindung eine Werkzeugbahnberechnungsvorrichtung zur Verfügung. Die Werkzeugbahnberechnungsvorrichtung wird eingesetzt bei einer CNC-Werkzeugmaschine. Die Werkzeugbahnen werden durch eine G-Code-Datei definiert, die über eine Software zur computergestützten Fertigung (CAM) erzeugt wird. Die Werkzeugbahnberechnungsvorrichtung umfaßt eine obere Steuereinheit und einen Servo-Treiber.
-
Die obere Steuereinheit umfaßt einen Interpreter und eine erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle. Der Interpreter liest die G-Code-Datei und interpretiert die G-Code-Datei, um eine Mehrzahl ausführbarer Befehle zu erzeugen. Die erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle ist mit dem Interpreter verbunden, um eine Schnittstelle zum Senden der ausführbaren Befehle zu bilden.
-
Der Servotreiber umfaßt eine zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle, einen Warteschlangenpuffer und einen Werkzeugbahnberechner. Die zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle ist mit der ersten seriellen Hochgeschwindigkeits-Kommunikationsschnittstelle der oberen Steuereinheit verbunden, um den Servotreiber und die obere Steuereinheit elektrisch zu verbinden und um eine Schnittstelle zum Empfangen der ausführbaren Befehle zu bilden. Der Warteschlangenpuffer ist mit der zweiten seriellen Hochgeschwindigkeits-Kommunikationsschnittstelle verbunden, um die ausführbaren Befehle zu speichern, welche von der oberen Steuereinheit an den Servotreiber gesendet werden. Der Werkzeugbahnberechner ist mit dem Warteschlangenpuffer verbunden, um die ausführbaren Befehle zu empfangen und zu berechnen, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu erzeugen.
-
Um die oben erwähnten Probleme zu lösen, stellt die vorliegende Erfindung ein Verfahren zum Berechnen von Werkzeugbahnen für ein numerisch gesteuertes System zur Verfügung. Das numerisch gesteuerte System wird eingesetzt bei einer oberen Steuereinheit, um einem Servotreiber eine Mehrzahl von ausführbaren Befehlen zum Berechnen von Werkzeugbahnen einer CNC-Werkzeugmaschine zur Verfügung zu stellen. Das Verfahren umfaßt die folgenden Schritte: Zuerst wird eine G-Code-Datei gelesen. Anschließend wird die G-Code-Datei durch einen Interpreter interpretiert, um die ausführbaren Befehle zu erzeugen. Anschließend werden die ausführbaren Befehle sequentiell an einen Warteschlangenpuffer gesendet und gespeichert. Anschließend werden die ausführbaren Befehle sequentiell an einen Werkzeugbahnenberechner gesendet. Schließlich werden durch den Werkzeugbahnberechner aus den ausführbaren Befehlen eine Mehrzahl von Punkten entlang der Werkzeugbahnen berechnet.
-
Demgemäß werden die Werkzeugbahnberechnungsvorrichtung für ein numerisch gesteuertes System und ein Verfahren zum Betreiben desselben eingesetzt, um die Menge der von der oberen Steuereinheit an den Servotreiber gesendeten Daten wesentlich zu verringern. Außerdem können die ausführbaren Befehle berechnet werden, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu erzeugen, ohne eine herkömmliche Befehlswiederherstellung zu verwenden, und somit wird der Bahnfehler verringert. Weiter erfolgt die Berechnung von Position, Winkelgeschwindigkeit und Winkelbeschleunigung der Werkzeugbahnen gleichzeitig mit den Positionskommandos zwischen dem Servotreiber und der oberen Steuereinheit, um die dynamische Antwort des Systems wesentlich zu steigern. Darüber hinaus kann aufgrund der geringen Menge der gesendeten Daten die obere Steuereinheit aufgefordert werden, die ausführbaren Befehle erneut zu senden, um die Robustheit des Systems zu erhöhen, wenn die empfangenen ausführbaren Befehle nicht korrekt sind.
-
Es versteht sich, daß sowohl die vorangegangene allgemeine Beschreibung als auch die folgende detaillierte Beschreibung beispielhaft sind und dazu gedacht sind, die beanspruchte Erfindung weiter zu erläutern. Weitere Vorteile und Merkmale der Erfindung ergeben sich aus der folgenden Beschreibung, den Zeichnungen und den Ansprüchen.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
Die als neu angesehenen Merkmale der Erfindung sind mit Sorgfalt in den angefügten Patentansprüchen angegeben. Die Erfindung selbst mag jedoch am besten zu verstehen sein unter Bezugnahme auf die folgende detaillierte Beschreibung der Erfindung, die eine beispielhafte Ausführungsform der Erfindung beschreibt, zusammen mit den beigefügten Zeichnungen, von denen:
-
1 eine schematische Ansicht der Kommunikation zwischen einer oberen Steuereinheit und einem Servotreiber gemäß der vorliegenden Erfindung ist;
-
2 ein Ablaufschema eines Verfahrens zum Berechnen von Werkzeugbahnen ist;
-
3 ein Ablaufschema eines Speicherns einer Mehrzahl von ausführbaren Befehlen in einem Warteschlangenpuffer ist;
-
4 eine schematische Ansicht eines Speicherns der ausführbaren Befehle in dem Warteschlangenpuffer ist;
-
5A eine beispielhafte Ansicht der Werkzeugbahnen ist, die in einer CNC-Werkzeugmaschine eingesetzt werden; und
-
5B eine Liste ausführbarer Befehle zur 5A ist.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Im Zusammenspiel mit den beigefügten Zeichnungen werden nachfolgend der technische Inhalt und eine detaillierte Beschreibung der vorliegenden Erfindung gemäß einer bevorzugten Ausführungsform beschrieben, welche nicht verwendet wird, um den Umfang der Erfindung zu begrenzen. Jede gemäß der beigefügten Ansprüche vorgenommene äquivalente Änderung und Modifizierung wird erfaßt von den Ansprüchen, die in der vorliegenden Erfindung beansprucht werden.
-
Es wird nun Bezug genommen werden auf die Zeichnungsfiguren, um die vorliegende Erfindung im Detail zu beschreiben. Es wird Bezug genommen auf 1, welche eine schematische Ansicht einer Kommunikation gemäß der vorliegenden Erfindung zwischen einer oberen Steuereinheit und einem Servotreiber ist. Die Werkzeugbahnberechnungsvorrichtung wird in einer CNC-Werkzeugmaschine eingesetzt. Die Werkzeugbahnen sind definiert durch eine G-Code-Datei, die über eine Software zur computergestützten Fertigung (CAM) erzeugt wird. Die Werkzeugbahnberechnungsvorrichtung umfaßt eine obere Steuereinheit und einen Servotreiber. Die Werkzeugbahnberechnungsvorrichtung umfaßt eine obere Steuereinheit 10 und einen Servotreiber 20. Die obere Steuereinheit 10 umfaßt einen Interpreter 102 und eine erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 104. Der Servotreiber 20 umfaßt eine zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 202, einen Warteschlangenpuffer 204 und einen Werkzeugbahnberechner 206.
-
Der Interpreter 102 liest die G-Code-Datei und interpretiert die G-Code-Datei, um eine Mehrzahl ausführbarer Befehle zu erzeugen. Die erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 104 ist mit dem Interpreter 102 verbunden, um eine Schnittstelle zum Senden der ausführbaren Befehle zu bilden. Die zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 202 ist mit der ersten seriellen Hochgeschwindigkeits-Kommunikationsschnittstelle 104 der oberen Steuereinheit 10 verbunden, um den Servotreiber 20 und die obere Steuereinheit 10 elektrisch zu verbinden und um eine Schnittstelle zum Empfangen der ausführbaren Befehle zu bilden. Der Warteschlangenpuffer 204 ist mit der zweiten seriellen Hochgeschwindigkeits-Kommunikationsschnittstelle 202 verbunden, um die ausführbaren Befehle, welche von der oberen Steuereinheit 10 zu dem Servotreiber 20 gesendet werden, zu speichern. Der Werkzeugbahnberechner 206 ist mit dem Warteschlangenpuffer 204 verbunden, um die ausführbaren Befehle zu empfangen und zu berechnen, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu erzeugen.
-
G-Code, oder Vorbereitungsfunktionscode, sind Funktionen in der Programmiersprache der numerischen Steuerung. Die Vorbereitungsfunktionscodes umfassen etwa 100 Programmbefehle, namentlich den G00-Befehl bis einschließlich den G99-Befehl. Besonders der G00-Befehl (Eilgang; schnelle Positionierung), der G01-Befehl (lineare Interpolation), der G02-Befehl (Kreis-Interpolation im Uhrzeigersinn) und der G03-Befehl (Kreis-Interpolation gegen den Uhrzeigersinn) sind gebrauchlich. Darüber hinaus sind die meisten der anderen G-Code-Befehle Steuerbefehle an die CNC-Werkzeugmaschine.
-
Es wird Bezug genommen auf 2, die ein Ablaufschema eines Verfahrens zum Berechnen von Werkzeugbahnen darstellt. Die genaue Beschreibung ist wie folgt. Zunächst liest ein Interpreter eine G-Code-Datei (S100). Der G-Code wird durch den Interpreter interpretiert, um eine Mehrzahl von ausführbaren Befehlen zu erzeugen (S200). Namentlich kann der Interpreter eine optimale Geschwindigkeits-, Ecken- und Kurvenanpassung zur Verfügung stellen, um die am besten geeigneten Befehle auszugeben, wenn der G-Code in den Interpreter gelesen wird. Anschließend sendet eine obere Steuereinheit die ausführbaren Befehle sequentiell an einen Warteschlangenpuffer eines Servotreibers (S300). Wenn der Servotreiber die ausführbaren Befehle empfängt, werden die ausführbaren Befehle sequentiell in dem Warteschlangenpuffer gespeichert. (Die detaillierte Beschreibung wird weiter unten unter Bezug auf 3 erfolgen). Anschließend werden, wenn die in dem Warteschlangenpuffer gespeicherten ausführbaren Befehle von einem Werkzeugbahnberechner gelesen werden, die ausführbaren Befehle sequentiell an den Werkzeugbahnberechner gesendet (S400). Anschließend werden durch den Werkzeugbahnberechner die ausführbaren Befehle berechnet, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu erzeugen (S500). Somit wird die G-Code-Datei durch den Interpreter interpretiert, um die ausführbaren Befehle zu erzeugen. Außerdem werden die ausführbaren Befehle direkt über serielle Kommunikationsschnittstellen gesendet, und die ausführbaren Befehle werden durch den Werkzeugbahnberechner berechnet, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu erzeugen.
-
Es wird Bezug genommen auf 3, die ein Ablaufschema des Speicherns einer Mehrzahl von ausführbaren Befehlen in einem Warteschlangenpuffer darstellt. Es ist zu beurteilen, ob eine obere Steuereinheit ein Haltekommando sendet (S310), um sich zu vergewissern, daß die obere Steuereinheit fortfährt, die ausführbaren Befehle zu senden, oder aufhört, die ausführbaren Befehle zu senden, nachdem die ausführbaren Befehle von dem Interpreter erzeugt wurden (S200). Die obere Steuereinheit stellt das Senden der ausführbaren Befehle an einen Warteschlangenpuffer ein (S312), wenn die obere Steuereinheit das Haltekommando sendet. Namentlich stellt die obere Steuereinheit im Falle eines Notfalls eine Notfall-Anforderung zur Verfügung, um das Senden der ausführbaren Befehle an den Servotreiber abzubrechen, um den Arbeitsvorgang des Servotreibers zu unterbrechen. Wenn die obere Steuereinheit das Haltekommando nicht sendet, beurteilt die obere Steuereinheit, ob alle der ausführbaren Befehle vollständig gesendet wurden (S320). Wenn alle der ausführbaren Befehle gesendet wurden, beendet die obere Steuereinheit das Senden der ausführbaren Befehle (S322). Der Servotreiber beurteilt, ob der Speicherplatz des Warteschlangenpuffers voll ist (S330), wenn noch nicht alle der ausführbaren Befehle gesendet wurden. Das Senden der ausführbaren Befehle an den Warteschlangenpuffer wird abgebrochen (S312), wenn der Speicherplatz des Warteschlangenpuffers voll ist. Namentlich weist der Servotreiber die obere Steuereinheit an, das Senden der ausführbaren Befehle abzubrechen, wenn der Speicherplatz des Warteschlangenpuffers voll ist. Wenn der Speicherplatz des Warteschlangenpuffers nicht voll ist, werden die ausführbaren Befehle an den Warteschlangenpuffer gesendet und in dem Speicherplatz des Warteschlangenpuffers gespeichert (S332). Namentlich weist der Servotreiber die obere Steuereinheit an, mit dem Senden der ausführbaren Befehle an den Warteschlangenpuffer fortzufahren, wenn der Speicherplatz des Warteschlangenpuffers nicht voll ist. Nach dem Schritt (S332) beurteilt der Servotreiber, ob die von dem Warteschlangenpuffer empfangenen ausführbaren Befehle korrekt sind (S340), um sicherzustellen, daß die ausführbaren Befehle, die von der oberen Steuereinheit an den Servotreiber gesendet wurden, korrekt sind. Wenn die empfangenen ausführbaren Befehle nicht korrekt sind, entfernt der Servotreiber die empfangenen ausführbaren Befehle und weist die obere Steuereinheit an, die ausführbaren Befehle erneut zu senden (S342). Wenn die empfangenen ausführbaren Befehle korrekt sind, wird der Schritt (S400) ausgeführt. Namentlich werden die in dem Warteschlangenpuffer gespeicherten ausführbaren Befehle sequentiell an den Werkzeugbahnberechner gesendet (S400).
-
Außerdem wird nach dem Schritt (S312) der Schritt (S310) erneut ausgeführt. Namentlich ist zu beurteilen, ob die obere Steuereinheit das Haltekommando sendet (S310), nachdem von der oberen Steuereinheit das Senden der ausführbaren Befehle an den Warteschlangenpuffer abgebrochen wurde (S312). Darüber hinaus wird nach dem Schritt (S342) der Schritt (S310) erneut ausgeführt. Namentlich ist, nachdem der Servotreiber die empfangenen ausführbaren Befehle entfernt und die obere Steuereinheit anweist, die ausführbaren Befehle erneut zu senden (S342), zu beurteilen, ob die obere Steuereinheit das Haltekommando sendet (S310). Insbesondere werden die oben genannten Schritte nach dem Schritt (S310) wiederholt, wobei die detaillierte Beschreibung hier aus Gründen der Kürze ausgelassen wird.
-
Es wird Bezug genommen auf 4, die eine schematische Ansicht des Speicherns der ausführbaren Befehle in dem Warteschlangenpuffer ist. Eine Warteschlange ist eine spezielle Art einer Sammlung, in der die Einheiten in der Sammlung in einer Ordnung gehalten werden. Die Hauptoperationen auf der Sammlung sind das Hinzufügen von Einheiten an der hinteren Endposition und das Entfernen von Einheiten von der vorderen Endposition. Dementsprechend macht dies die Warteschlange zu einer First-In-First-Out Datenstruktur. In der vorliegenden Erfindung stellt der Servotreiber 20 einen Warteschlangenpuffer 204 zum Speichern der ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN zur Verfügung, welche von der oberen Steuereinheit 10 an den Servotreiber 20 gesendet werden. Die ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN werden sequentiell von der oberen Steuereinheit 10 an den Servotreiber 20 gesendet und sequentiell in dem Speicherplatz des Warteschlangenpuffers 204 des Servotreibers 20 gespeichert. In der Figur gibt die Pfeilrichtung die Datenzugriffsrichtung der ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN an. Wie in 4 gezeigt ist, wird die G-Code-Datei von der computergestützten Fertigung erzeugt, um die Werkzeugbahnen zu definieren, welche Anwendung finden bei der CNC-Werkzeugmaschine. Die G-Code-Datei wird von einem Interpreter der oberen Steuereinheit 10 gelesen (in 1 gezeigt), und die G-Code-Datei wird von dem Interpreter interpretiert, um eine Mehrzahl von ausführbaren Instruktionen Ie1, Ie2, Ie3, ..., IeN zu erzeugen. Die obere Steuereinheit 10 hat eine erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 104 (wie in 1 gezeigt), und der Servotreiber 20 hat eine zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 202 (wie in 1 gezeigt). Die erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 104 und die zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 202 bilden eine Schnittstelle zum jeweiligen Senden bzw. Empfangen der ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN. In dieser Ausführungsform weist der Servotreiber 20 die obere Steuereinheit 10 an, mit dem Senden der ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN fortzufahren, wenn der Speicherplatz der Warteschlange 204 nicht voll ist. Somit werden die ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN sequentiell in dem Speicherplatz des Warteschlangenpuffers 204 gespeichert. Darüber hinaus sendet der Servotreiber 20 die ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN sequentiell an einen Werkzeugbahnberechner 204 in FIFO-Reihenfolge, wenn der Werkzeugbahnberechner 204 (wie in 1 gezeigt) des Servotreibers 20 die in dem Speicherplatz des Warteschlangenpuffers 204 gespeicherten ausführbaren Befehle Ie1, Ie2, Ie3, ..., IeN liest.
-
Es wird Bezug genommen auf 5A und 5B, die eine beispielhafte Ansicht der Werkzeugbahnen, die auf einer CNC-Werkzeugmaschine eingesetzt werden, und einer Liste von ausführbaren Befehlen zu 5A darstellen. In dieser Ausführungsform wird im wesentlichen erläutert, daß die G-Code-Pogrammbefehle verwendet werden, um Werkzeugbahnen für die CNC-Werkzeugmaschinen zu berechnen. Daher die detaillierte Beschreibung der Werkzeugkorrekturbefehle und anderer Steuerbefehle. Die Werkzeugkorrekturbefehle umfassen den G40-Befehl (Fräser-Korrektur aus), den G41-Befehl (Fräserkorrektur links) und den G42-Befehl (Fräserkorrektur rechts). Weil jedes Werkzeug einen kleinen Fräsradius hat, hängt der Bearbeitungspunkt von der Richtung der Bewegung des Werkzeugs ab. Der G41-Befehl wird verwendet, wenn der Fräser sich links vom programmierten Weg befindet (gesehen in der Werkzeugbewegungsrichtung), und der G42-Befehl wird verwendet, wenn der Fräser sich rechts von der programmierten Bahn befindet (gesehen in der Richtung der Werkzeugbewegung).
-
Der G00-Befehl, der G01-Befehl, der G02-Befehl und der G03-Befehl sind gebräuchlich. Insbesondere ist G00-Befehl ein Befehl zur schnellen Positionierung, der G01-Befehl ist eine lineare Interpolation, der G02-Befehl ist ein Befehl zur Kreisinterpolation im Uhrzeigersinn, und der G03-Befehl ist ein Befehl zur Kreisinterpolation gegen den Uhrzeigersinn. In 5B bewegt sich das Werkzeug im Eilgang zu einem Punkt A(–20, –20), wenn der G-Code-Befehl in der ersten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt A(–20, –20) zu einem Punkt B(0, 0) bewegt, wenn der G-Code-Befehl in der zweiten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt B(0, 0) zu einem Punkt C(0, 35) bewegt, wenn der G-Code-Befehl in der dritten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt C(0, 35) zu einem Punkt D(20, 35) bewegt, wenn der G-Code-Befehl in der vierten Zeile ausgeführt wird. Das Werkzeug wird kreisförmig mit einem 65-Einheiten Radius gegen den Uhrzeigersinn interpoliert von dem Punkt D(20, 35) zu einem Punkt E(25, 60) bewegt, wenn der G-Code-Befehl in der fünften Zeile ausgeführt wird. Das Werkzeug wird kreisförmig mit einem 25-Einheiten-Radius im Uhrzeigersinn interpoliert von dem Punkt E(25, 60) zu einem Punkt F(65, 60) bewegt, wenn der G-Code-Befehl in der sechsten Zeile ausgeführt wird. Das Werkzeug wird kreisförmig mit einem 65-Einheiten-Radius gegen den Uhrzeigersinn interpoliert von dem Punkt F(65, 60) zu einem Punkt G(70, 35) bewegt, wenn der G-Code-Befehl in der siebten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt G(70, 35) zu einem Punkt H(90, 35) bewegt, wenn der G-Code-Befehl in der achten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt H(90, 35) zu einem Punkt I(90, 0) bewegt, wenn der G-Code-Befehl in der neunten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt I(90, 0) zu einem Punkt J(45, 10) bewegt, wenn der G-Code-Befehl in der zehnten Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt J(45, 10) zu dem Punkt B(0, 0) bewegt, wenn der G-Code-Befehl in der elften Zeile ausgeführt wird. Das Werkzeug wird linear interpoliert von dem Punkt B(0, 0) zu dem Punkt A(–20, –20) bewegt, wenn der G-Code-Befehl in der zwölften Zeile ausgeführt wird.
-
In dieser Ausführungsform werden die G-Code-Befehle in der ersten bis zur zwölften, Zeile von dem Interpreter gelesen, um die entsprechenden ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 zu erzeugen. Die obere Steuereinheit 10 kann die ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 senden, wenn die obere Steuereinheit 10 nicht das Haltekommando sendet. Anschließend werden die ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 sequenziell an den Warteschlangenpuffer 204 gesendet und darin gespeichert, wenn die ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 noch nicht vollständig gesendet wurden und der Servotreiber 20 beurteilt, daß der Speicherplatz des Warteschlangenpuffers 204 nicht voll ist. Es wird angenommen, daß die obere Steuereinheit 10 die vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 sendet, die in dem Warteschlangenpuffer 204 zu speichern sind. Somit werden die vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 sequenziell in dem Warteschlangenpuffer 204 in FIFO-Reihenfolge gespeichert. Namentlich wird der erste ausführbare Befehle Ie1, welcher dem G-Code-Befehl in der ersten Zeile entspricht, ausgeführt, um das Werkzeug im Eilgang zu einem Punkt A(–20, –20) zu bewegen. Der zweite ausführbare Befehl Ie2, der dem G-Code-Befehl in der zweiten Zeile entspricht, wird ausgeführt, um das Werkzeug von dem Punkt A(–20, –20) zu dem Punkt B(0, 0) linear zu interpolieren. Der dritte ausführbare Befehl Ie3, der dem G-Code-Befehl in der dritten Zeile entspricht, wird ausgeführt, um das Werkzeug von dem Punkt B(0, 0) zu einem Punkt C(0, 35) linear zu interpolieren. Anschließend werden die vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 sequenziell an den Werkzeugbahnberechner 206 gesendet, wenn die vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 von dem Servortreiber 20 korrekt empfangen wurden. Die vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 werden von dem Werkzeugbahnberechner 206 berechnet, um eine Mehrzahl von Wegpunkten entlang der der Werkzeugbahnen zu erzeugen.
-
Wenn jedoch zumindest einer der vorangehenden drei ausführbaren Befehle Ie1, Ie2, Ie3 inkorrekt ist, entfernt der Servortreiber 20 den inkorrekten ausführbaren Befehl. In diesem Ausführungsbeispiel wird angenommen, daß der empfangene dritte ausführbare Befehl Ie3' inkorrekt ist. Der Servotreiber 20 entfernt den ausführbaren Befehl Ie3' und fordert die obere Steuereinheit 10 auf, den dritten ausführbaren Befehl Ie3 erneut zu senden. Darüber hinaus bricht die obere Steuereinheit 10 das Senden der ausführbaren Befehle Ie1, Ie2, Ie3 an den Warteschlangenpuffer 204 ab, wenn der Servotreiber 20 beurteilt, daß der Speicherplatz des Warteschlangenpuffers 204 voll ist. Die obere Steuereinheit hört mit dem Senden der ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 auf, wenn die obere Steuereinheit 10 beurteilt, daß alle ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 vollständig gesendet wurden. Darüber hinaus bricht die obere Steuereinheit 10 das Senden der ausführbaren Befehle an einen Warteschlangenpuffer ab, wenn die obere Steuereinheit das Haltekommando sendet. Namentlich stellt, im Falle eines Notfalls, die obere Steuereinheit 10 eine Notfall-Anforderung zur Verfügung, um das Senden der ausführbaren Befehle Ie1, Ie2, Ie3, ..., Ie12 an den Servortreiber 20 zu stoppen, um den Arbeitsvorgang des Servotreibers 20 zu unterbrechen.
-
Dementsprechend stellt die vorliegende Erfindung den Interpreter 102 der oberen Steuereinheit 10 zur Verfügung, um die G-Code-Datei zu lesen und die G-Code-Datei zu interpretieren, um die ausführbaren Befehle zu erzeugen. Insbesondere unterscheidet sie sich von dem Interpolationsverfahren, bei dem diskrete Positionsbefehle in glättende Positionskurven konvertiert werden. So erzeugt das Interpolationsverfahren eine große Menge von Arbeitsvorgangsdaten, so daß die Geschwindigkeit der seriellen Kommunikation verringert wird. In den Ausführungsformen der vorliegenden Erfindung werden nur die ausführbaren Befehle gesendet, um die große Menge von Arbeitsvorgangsdaten wesentlich zu verringern, um die Geschwindigkeit der seriellen Kommunikationsschnittstelle zu erhöhen. Somit können die erste serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 102 und die zweite serielle Hochgeschwindigkeits-Kommunikationsschnittstelle 202 bei Mehrachsen-CNC-Werkzeugmaschinen angewendet werden, um Werkzeugbahnen zu berechnen.
-
Schließlich hat die vorliegende Erfindung die folgenden Vorteile:
- 1. Sie verringert wesentlich die Menge der von der oberen Steuereinheit zu dem Servotreiber gesendeten Daten. Daher braucht die Geschwindigkeit der seriellen Kommunikationsschnittstelle nicht erhöht werden, um eine große Menge der gesendeten Daten zu verarbeiten.
- 2. Die ausführbaren Befehle können berechnet werden, um eine Mehrzahl von Punkten entlang der Werkzeugbahnen zu berechnen, ohne eine herkömmliche Befehlswiederherstellung (engl.: command recovery) zu verwenden, so daß der Bahnfehler verringert wird.
- 3. Die Berechnung von Position, Winkelgeschwindigkeit und Winkelbeschleunigung der Werkzeugbahnen erfolgt synchron zu den Positionsbefehlen zwischen dem Servotreiber und der oberen Steuereinheit, um die dynamische Antwort des Systems wesentlich zu erhöhen.
- 4. Aufgrund der niedrigen Menge der gesendeten Daten kann die obere Steuereinheit aufgefordert werden, die ausführbaren Befehle erneut zu senden, um die Robustheit des Systems zu erhöhen, wenn die empfangenen ausführbaren Befehle nicht korrekt sind.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-