-
ALLGEMEINER STAND DER TECHNIK
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft ein Kollisionsprüfsystem im Hinblick auf eine Kollision zwischen einer Werkzeugmaschine und einem Roboter.
-
Beschreibung des Stands der Technik
-
Roboter werden verbreitet in Kombination mit Werkzeugmaschinen zur Anbringung und Abnahme von Werkstücken und dergleichen verwendet. Da ein Roboter in eine Werkzeugmaschine gelangen kann, um ein Werkstück anzubringen oder abzunehmen, ist erwünscht, dass die Werkmaschine und der Roboter im Hinblick auf eine Kollision geprüft werden.
-
Techniken, die in den
Japanischen Patentoffenlegungsschriften Nr. 2008-27376 und
2010-244256 beschrieben sind, werden zur Kollisionsprüfung für eine Werkzeugmaschine verwendet. Gemäß diesen Techniken gibt eine numerische Steuereinheit zur Steuerung der Werkzeugmaschine eine Vorlaufposition aus und wird die Kollisionsprüfung auf Basis der ausgegebenen Information durchgeführt, so dass die Werkzeugmaschine vor einer Kollision angehalten werden kann.
-
Zudem werden beim Prüfen der Kollision zwischen Robotern unter Verwendung einer Technik, die in der
Japanischen Patentoffenlegungsschrift Nr. 2006-68857 beschrieben ist, Lehrprogramme für die Roboter vorab gelesen.
-
Um die Kollision zwischen der Werkzeugmaschine und dem Roboter durch diese herkömmlichen Techniken zu prüfen, ist es jedoch nötig, die Techniken, die in den
Japanischen Patentoffenlegungsschriften Nr. 2008-27376 und
2010-244256 beschrieben sind, zu verwenden, bei denen die Vorlaufposition durch die Steuereinheit zur Steuerung der Werkzeugmaschine ausgegeben wird. Außerdem ist es nötig, eine Vorlaufposition auf Seiten des Roboters auszugeben, damit die Kollisionsprüfung auf Basis der Vorlaufpositionen, die einzeln von der numerischen Steuereinheit und einer Robotersteuereinheit ausgegeben wurden, durchgeführt werden kann.
-
Wenn versucht wird, die Technik der
Japanischen Patentoffenlegungsschrift Nr. 2006-68857 für die Prüfung der Kollision zwischen Robotern auf die Kollisionsprüfung zwischen einer Werkzeugmaschine und einem Roboter anzuwenden (d. h., wenn diese Technik so angewendet wird, dass die Werkzeugmaschine als ein Roboter angesehen wird), kann der Roboter gewiss von einer numerischen Steuereinheit zur Steuerung der Werkzeugmaschine ein NC-Programm als Information, die einem Lehrprogramm gleichwertig ist, erhalten. Doch da sich eine Vorlaufzeit zur Berechnung einer Vorlaufposition an der numerischen Steuereinheit abhängig von der Art der Interpolation, dem Vorausschauzustand in einem Vorausschaupuffer oder dem Befehl zur Unterdrückung der Vorausschau dynamisch verändert, kann das NC-Programm zur Steuerung der Werkzeugmaschine die Vorlaufposition des Roboters nicht leicht gemäß der Vorlaufzeit der Werkzeugmaschine berechnen. Aufgrund dieses Problems kann die Kollision zwischen der Werkzeugmaschine und dem Roboter nicht geprüft werden.
-
Im Gegensatz dazu verändert sich selbst dann, wenn auf Seiten der numerischen Steuereinheit zur Steuerung der Werkzeugmaschine das Roboterlehrprogramm erhalten wird, die Vorlaufzeit zum Berechnen der Vorlaufposition ebenfalls abhängig von der Art der Interpolation, dem Vorausschauzustand in einem Vorausschaupuffer oder dem Befehl zur Unterdrückung der Vorausschau dynamisch, so dass es schwierig ist, die Vorlaufposition der Werkzeugmaschine gemäß der Vorlaufzeit des Roboters zu berechnen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Entsprechend ist es die Aufgabe der vorliegenden Erfindung, eine numerische Steuereinheit mit einer Funktion zur Kollisionsprüfung bereitzustellen, wodurch eine Synchronisation der jeweiligen Vorlaufzeiten einer Werkzeugmaschine und eines Roboters sichergestellt wird.
-
Bei der vorliegenden Erfindung werden die oben beschriebenen Probleme wie folgt gelöst. Im Besonderen wird eine Offline-Programmiervorrichtung oder dergleichen verwendet, um vorab ein Programm auf Seiten eines Roboters oder einer Werkzeugmaschine zu analysieren und eine Bewegungsinformation für den Roboter oder die Werkzeugmaschine als indizierte Interpolationsebenen-Bewegungsdaten zu erzeugen. Dann werden die Interpolationsebenen-Bewegungsdaten durch eine numerische Steuereinheit und eine Robotersteuereinheit gemeinsam verwendet, so dass durch die numerische Steuereinheit ein Startbefehl für die Robotersteuereinheit gegeben werden kann oder durch die Robotersteuereinheit ein Startbefehl für die numerische Steuereinheit gegeben werden kann.
-
Ein Kollisionsprüfsystem nach der vorliegenden Erfindung umfasst eine numerische Steuereinheit, um den Antrieb einer Achse einer Maschine auf Basis eines Befehls von einem NC-Programm zu steuern, eine Robotersteuereinheit, um einen Roboter auf Basis eines Befehls von einem Lehrprogramm zu steuern, und eine Kollisionsprüfvorrichtung, die dazu ausgebildet ist, die Kollision zwischen der Maschine und dem Roboter zu prüfen.
-
Nach einem ersten Gesichtspunkt des Kollisionsprüfsystems nach der vorliegenden Erfindung verwenden die numerische Steuereinheit und die Robotersteuereinheit gemeinsam Interpolationsebenen-Bewegungsdaten, die durch das Aufzeichnen einer Positionsinformation für jede Interpolationsperiode des Roboters in Verbindung mit einem Index erhalten werden. Die numerische Steuereinheit umfasst eine Vorausschaueinheit, die dazu ausgebildet ist, Vorausschaublockbefehlsdaten aus dem NC-Programm zu lesen; eine Vorlaufzeitberechnungseinheit, die dazu ausgebildet ist, eine Vorlaufzeit zur Berechnung einer nächsten Vorlaufposition zu berechnen; eine Maschinenvorlaufpositionsberechnungseinheit, die dazu ausgebildet ist, eine Maschinenvorlaufposition, bei der es sich um eine Vorlaufposition der Achse der Maschine nach dem Ablauf der Vorlaufzeit seit einer Bezugszeit für die Kollisionsprüfung handelt, zu berechnen; und eine Robotervorlaufpositionsberechnungseinheit, die dazu ausgebildet ist, eine Robotervorlaufposition, bei der es sich um eine Vorlaufposition des Roboters nach dem Ablauf der Vorlaufzeit seit der Bezugszeit für die Kollisionsprüfung handelt, zu berechnen. Die Kollisionsprüfvorrichtung ist dazu ausgebildet, die Kollision zwischen der Maschine und dem Roboter auf Basis der Maschinenvorlaufposition und der Robotervorlaufposition zu prüfen.
-
Die numerische Steuereinheit kann ferner eine Roboterbewegungsbefehlseinheit umfassen, die dazu ausgebildet ist, dem Roboter auf Basis eines Roboterbewegungsbefehls, der in dem NC-Programm enthalten ist, den Start seiner Bewegung zu befehlen, und die Robotervorlaufpositionsrechnungseinheit 240 kann dazu ausgebildet sein, die Robotervorlaufposition auf Basis eines Zeitpunkts des Bewegungsstartbefehls, der dem Roboter durch die Roboterbewegungsbefehlseinheit erteilt wird, den Interpolationsebenen-Bewegungsdaten und der Vorlaufzeit zu berechnen.
-
Die numerische Steuereinheit kann dazu ausgebildet sein, eine von der Robotersteuereinheit erlangte oder gemeldete Zustandsinformation hinsichtlich des Roboters, die einen Index, der eine gegenwärtige Position des Roboters angibt, und einen Bewegungszustand des Roboters enthält, zu speichern, und die Robotervorlaufpositionsberechnungseinheit kann dazu ausgebildet sein, die Robotervorlaufposition auf Basis der Zustandsinformation, der Interpolationsebenen-Bewegungsdaten und der Vorlaufzeit zu berechnen.
-
Nach einem zweiten Gesichtspunkt des Kollisionsprüfsystems nach der vorliegenden Erfindung verwenden die numerische Steuereinheit und die Robotersteuereinheit gemeinsam Interpolationsebenen-Bewegungsdaten, die durch das Aufzeichnen einer Positionsinformation für jede Interpolationsperiode der Maschine in Verbindung mit einem Index erhalten werden. Die Robotersteuereinheit umfasst eine Vorausschaueinheit, die dazu ausgebildet ist, Vorausschaublockbefehlsdaten aus dem Lehrprogramm zu lesen; eine Vorlaufzeitberechnungseinheit, die dazu ausgebildet ist, eine Vorlaufzeit zur Berechnung einer nächsten Vorlaufposition zu berechnen; eine Robotervorlaufpositionsberechnungseinheit, die dazu ausgebildet ist, eine Robotervorlaufposition, bei der es sich um eine Vorlaufposition der Achse des Roboters nach dem Ablauf der Vorlaufzeit seit einer Bezugszeit für die Kollisionsprüfung handelt, zu berechnen; und eine Maschinenvorlaufpositionsberechnungseinheit, die dazu ausgebildet ist, eine Maschinenvorlaufposition, bei der es sich um eine Vorlaufposition der Maschine nach dem Ablauf der Vorlaufzeit seit der Bezugszeit für die Kollisionsprüfung handelt, zu berechnen. Die Kollisionsprüfvorrichtung ist dazu ausgebildet, die Kollision zwischen dem Roboter und der Maschine auf Basis der Robotervorlaufposition und der Maschinenvorlaufposition zu prüfen.
-
Die Robotersteuereinheit kann dazu ausgebildet sein, eine von der numerischen Steuereinheit erlangte oder gemeldete Zustandsinformation hinsichtlich der Maschine einschließlich eines Index, der eine gegenwärtige Position des Maschine angibt, zu speichern, und die Maschinenvorlaufpositionsberechnungseinheit kann dazu ausgebildet sein, die Maschinenvorlaufposition auf Basis der Zustandsinformation, der Interpolationsebenen-Bewegungsdaten und der Vorlaufzeit zu berechnen.
-
Nach der vorliegenden Erfindung kann eine numerische Steuereinheit oder eine Robotersteuereinheit die Vorlaufposition an der anderen Seite selbst dann, wenn sich eine Vorlaufzeit zur Berechnung einer Vorlaufposition abhängig von der Art der Interpolation, dem Vorausschauzustand in einem Vorausschaupuffer oder dem Befehl zur Unterdrückung der Vorausschau dynamisch verändert, auf Basis der veränderten Vorlaufzeit berechnen, so dass synchrone Vorlaufpositionen einer Werkzeugmaschine und eines Roboters berechnet werden können.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die obige und andere Aufgaben und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung von Ausführungsformen unter Bezugnahme auf die beiliegenden Zeichnungen offensichtlich werden, wobei
-
1 ein schematisches Diagramm eines Kollisionsprüfsystems nach einer Ausführungsform der vorliegenden Erfindung ist;
-
2 ein schematisches funktionales Blockdiagramm des in 1 gezeigten Kollisionsprüfsystems ist;
-
3 ein Ablaufdiagramm ist, das ein erstes Beispiel für eine Verarbeitung zeigt, die an einer numerischen Steuereinheit, welche das Kollisionsprüfsystem von 2 bildet, durchgeführt wird;
-
4 ein Ablaufdiagramm ist, das ein zweites Beispiel für eine Verarbeitung zeigt, die an der numerischen Steuereinheit, welche das Kollisionsprüfsystem von 2 bildet, durchgeführt wird; und
-
5 ein schematisches Blockdiagramm eines Kollisionsprüfsystems nach einer anderen Ausführungsform der vorliegenden Erfindung ist.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nun wird unter Bezugnahme auf 1 ein Kollisionsprüfsystem nach einer Ausführungsform der vorliegenden Erfindung beschrieben werden.
-
Das Kollisionsprüfsystem nach der Ausführungsform umfasst eine numerische Steuereinheit 100, eine Robotersteuereinheit 300, einen Roboter 360, eine Werkzeugmaschine 400 und eine Kollisionsprüfvorrichtung 500.
-
Bevor die Bearbeitungssteuerung durch die Werkzeugmaschine 400 und den Roboter 360 begonnen wird, wird vorab eine Offline-Programmiervorrichtung 600 oder dergleichen verwendet, um ein Programm, das an der Robotersteuereinheit 300 ausgeführt wird, zu analysieren und auf Basis des Programms eine Bewegungsinformation hinsichtlich des Roboters 360 als indizierte Interpolationsebenen-Bewegungsdaten zu erzeugen. Die erzeugten Interpolationsebenen-Bewegungsdaten werden durch die numerische Steuereinheit 100 und die Robotersteuereinheit 300 gemeinsam verwendet, so dass auf Seiten der numerischen Steuereinheit 100 ein Bewegungsstartbefehl für den Roboter 360 ausgeführt werden kann.
-
Bei der Bearbeitungssteuerung auf Basis des Bearbeitungsprogramms berechnet die numerische Steuereinheit 100 dann, wenn sie während einer Vorlaufpositionsberechnung den Bewegungsstartbefehl für den Roboter 360 in dem Bearbeitungsprogramm detektiert, die Vorlaufposition des Roboters 360 zusammen mit jener der Werkzeugmaschine 400 auf Basis der Interpolationsebenen-Bewegungsdaten, die sie zusammen mit der Robotersteuereinheit 300 verwendet.
-
Bei Erhalt des Bewegungsstartbefehls von der numerischen Steuereinheit 100 steuert andererseits die Robotersteuereinheit 300 den Betrieb des Roboters 360 unter Berücksichtigung eines Ausgleichs für die Armablenkung und eines Schwerkraftausgleichs auf Basis der Interpolationsebenen-Bewegungsdaten hinsichtlich des Roboters 360, die gemeinsam mit der numerischen Steuereinheit 100 verwendet werden, so, dass eine durch die Interpolationsebenen-Bewegungsdaten angegebene Position erreicht wird. Dadurch kann eine Interpolationsebenen-Position des Roboters 360, die gemeinsam mit der numerischen Steuereinheit 100 verwendet wird, mit einer tatsächlichen Position des Roboters 360 übereingestimmt werden.
-
Da die numerische Steuereinheit 100 und die Robotersteuereinheit 300 asynchron arbeiten, wird allmählich ein Fehler zwischen der Vorlaufposition des Roboters 360, die durch die numerische Steuereinheit 100 berechnet wird, und jener der Werkzeugmaschine 400 erzeugt.
-
Um diesen Fehler auszugleichen, meldet die Robotersteuereinheit 300 den Index, der den Interpolationsebenen-Bewegungsdaten, die die gegenwärtige Position des Roboters 360 angeben, hinzugefügt ist, und eine Zustandsinformation, die eine Information hinsichtlich des Bewegungszustands enthält, welche angibt, ob der sich der Roboter bewegt oder angehalten ist, an die numerische Steuereinheit 100 zurück. Beim Erhalt der Zustandsinformation hinsichtlich der Roboters 360, die von der Robotersteuereinheit 300 zurückgemeldet wird, gleicht die numerische Steuereinheit 100 den Fehler zwischen der Vorlaufposition, die gegenwärtig berechnet wird, und der tatsächlichen gegenwärtigen Position des Roboters 360 auf Basis des Index, der die gegenwärtige Position des Roboters 360 angibt, und der Bewegungszustandsinformation, die in der Zustandsinformation enthalten ist, aus. Die numerische Steuereinheit 100 kann dazu ausgebildet sein, die Zustandsinformation hinsichtlich des Roboters 360 von der Robotersteuereinheit 300 zu erlangen.
-
Nach der obigen Beschreibung wird der Bewegungsstartbefehl für den Roboter 360 auf Seiten der numerischen Steuereinheit 100 ausgeführt. Alternativ kann der Betrieb jedoch unabhängig auf Seiten der Robotersteuereinheit 300 begonnen werden, ohne den Roboterstartbefehl auf Seiten der numerischen Steuereinheit 100 auszuführen.
-
2 ist ein schematisches funktionales Blockdiagramm des in 1 gezeigten Kollisionsprüfsystems.
-
Die numerische Steuereinheit 100 steuert die Werkzeugmaschine 100 auf Basis eines NC-Programms 110, berechnet die Vorlaufpositionen jeweiliger Achsen der Werkzeugmaschine 400 und die Vorlaufposition des Roboters 360 auf Basis von Vorausschaublockbefehlsdaten 120, Interpolationsebenen-Bewegungsdaten 130 hinsichtlich des Roboters 360 und einer Zustandsinformation 140 hinsichtlich des Roboters 360, und führt die Verarbeitung zur Ausgabe der berechneten Vorlaufpositionen an die Kollisionsprüfvorrichtung 500 durch, wobei die Vorausschaublockbefehlsdaten 120 durch Vorausschau auf das NC-Programm 110 erlangt werden, die Interpolationsebenen-Bewegungsdaten 130 vorab mittels der Offline-Programmiervorrichtung 600 oder dergleichen erzeugt wurden und gemeinsam mit der Robotersteuereinheit 300 verwendet werden, und die Zustandsinformation 140 von der Robotersteuereinheit 300 gemeldet oder erlangt wird.
-
Die numerische Steuereinheit 100 ist in eine Vorverarbeitungseinheit 101 und eine Ausführungseinheit 102 geteilt. In der Vorverarbeitungseinheit 101 werden verschiedene erforderliche Daten für die Ausführung der Steuerung erzeugt, und die Steuerung der Werkzeugmaschine oder dergleichen wird auf Basis der erzeugten Daten in der Ausführungseinheit 102 ausgeführt.
-
Die Vorverarbeitungseinheit 101 liest das NC-Programm 110 im Voraus aus und speichert die Vorausschaublockbefehlsdaten 120 in einem Speicher (nicht gezeigt). Ferner speichert die Vorverarbeitungseinheit 101 die Interpolationsebenen-Bewegungsdaten 130 hinsichtlich des Roboters 360, die vorab durch die Offline-Programmiervorrichtung 600 oder dergleichen erzeugt wurden und gemeinsam mit der Robotersteuereinheit 300 verwendet werden, in einem Speicher (nicht gezeigt), und verwaltet die Zustandsinformation 140 hinsichtlich des Roboters 360, die der Reihe nach von der Robotersteuereinheit 300 gemeldet oder erlangt wird.
-
Eine Verteilungsverarbeitungseinheit 210 in der Ausführungseinheit 102 liest die Vorausschaublockbefehlsdaten 120 für jeden Block und führt eine Verteilungsverarbeitung zur Interpolation von Bewegungsbefehlen auf Basis von Bewegungsausmaßen der jeweiligen Achsen und Geschwindigkeiten der jeweiligen Achsen, die durch die gelesenen Blöcke befohlen werden, durch. Auf diese Weise erzeugt die Verteilungsverarbeitungseinheit 210 Interpolationsebenen-Verteilungsdaten, die für jeden Verteilungszeitraum beweglichen Teilen der jeweiligen Achsen (Servomotoren für jeweilige Achsen der Werkzeugmaschine 400) befohlen werden.
-
Die erzeugten Interpolationsebenen-Verteilungsdaten werden an eine Bewegungsbefehlausgabeeinheit 250 ausgegeben und dann von der Bewegungsbefehlausgabeeinheit 250 an eine Beschleunigungs/Verlangsamungsverarbeitungseinheit 260 ausgegeben. Beim Erhalt eines Bewegungsbefehls von der Bewegungsbefehlausgabeeinheit 250 führt die Beschleunigungs/Verlangsamungsverarbeitungseinheit 260 eine Beschleunigungs/Verlangsamungsverarbeitung durch, und gibt sie einen Bewegungsbefehl für das Bewegungsausmaß, das der Beschleunigungs/Verlangsamungsverarbeitung durch die Beschleunigungs/Verlangsamungsverarbeitungseinheit 260 unterzogen wurde, an eine Servosteuereinheit 270 zur Steuerung der Servomotoren für die jeweiligen Achsen der Werkzeugmaschine aus.
-
Eine Vorlaufzeitberechnungseinheit
220 berechnet auf Basis der Vorausschaublockbefehlsdaten
120, der Interpolationsebenen-Verteilungsdaten, die durch die Verteilungsverarbeitungseinheit
210 erzeugt wurden, und einer vorherbestimmten Bezugsvorlaufzeit T eine Vorlaufzeit t1. Auf Basis der Bewegungsdistanz und der Geschwindigkeit in den Befehlsdaten, die der Verteilungsverarbeitung durch die Verteilungsverarbeitungseinheit
210 unterzogen wurden, berechnet die Vorlaufzeitberechnungseinheit
220 die Bezugsvorlaufzeit T als die Vorlaufzeit t1, wenn in einem Puffer Befehlsdaten vor der Bezugsvorlaufzeit T angesammelt sind, doch berechnet sie die Höchstzeit, die aus den Befehlsdaten in dem Puffer erhalten wird, als die Vorlaufzeit
11, wenn keine Befehlsdaten vor der Bezugsvorlaufzeit T angesammelt sind. Die Bezugsvorlaufzeit T ist eine Zeit, die auf Basis der Zeit, welche für die Kollisionsprüfverarbeitung durch die Kollisionsprüfvorrichtung
500 nötig ist, der Zeit, welche für die Kommunikation zwischen der numerischen Steuereinheit
100 und der Kollisionsprüfvorrichtung
500 nötig ist, der Zeit, die von dem Erhalt eines Stoppbefehls durch die Achsen der Werkzeugmaschine
400 und des Roboters
360 bis zu einem Stopp durch Verlangsamung vergeht, und dergleichen vorherbestimmt ist. Da die Einzelheiten der Bezugsvorlaufzeit T in der oben beschriebenen
Japanischen Patentoffenlegungsschrift Nr. 2008-27376 und dergleichen offenbart sind, wird auf ihre Beschreibung verzichtet werden.
-
Wenn bei der Berechnung der Vorlaufzeit t1 in den Vorausschaublockbefehlsdaten 120 ein Bewegungsstartbefehl für den Roboter 360 enthalten ist, berechnet die Vorlaufzeitberechnungseinheit 220 überdies ferner eine Zeit t2 von der gegenwärtigen Zeit bis zu der Ausführung des Bewegungsstartbefehls für den Roboter 360. Die berechnete Roboterbewegungsstartzeit t2 wird durch die Vorlaufzeitberechnungseinheit 220 mit jeder Verarbeitungsperiode verringert, bis der Verarbeitungsblock des NC-Programms (oder die Bezugsposition zur Berechnung der Vorlaufzeit) zu einem Block für den Bewegungsstartbefehl für den Roboter 360 gelangt, so dass t2 = 0 erreicht ist, wenn dem Roboter 360 der Bewegungsstartbefehl erteilt wird. Zu diesem Zeitpunkt gelangt der Roboter 360 in einen sich bewegenden Zustand. Wenn sich der Roboter 360 bewegt, ohne dass in den Vorausschaublockbefehlsdaten 120 ein Bewegungsstartbefehl dafür vorliegt, wird t2 = 0 festgelegt. Wenn sich der Roboter 360 im Stillstand befindet, wird t2 = t1 festgelegt. Entsprechend liegt die Roboterbewegungsstartzeit t2 in einem Bereich von 0 ≤ t2 ≤ t1.
-
Wenn in der Vorlaufzeitberechnungseinheit 220 die Bezugsposition zur Berechnung der Vorlaufzeit die Position für den Bewegungsstartbefehl für den Roboter 360 erreicht, wird überdies der Bewegungsstartbefehl für den Roboter 360 von der numerischen Steuereinheit 100 an die Robotersteuereinheit 300 gegeben.
-
Eine Werkzeugmaschinenvorlaufpositionsberechnungseinheit
230 berechnet auf Basis der Vorlaufzeit t1, die durch die Vorlaufzeitberechnungseinheit
220 berechnet wurde, Vorlaufpositionen von jeweiligen Achsen der Werkzeugmaschine
400. Da das Verfahren zur Berechnung einer Vorlaufzeit jeder Achse der Werkzeugmaschine
400 in der vorher beschriebenen
Japanischen Patentoffenlegungsschrift Nr. 2008-27376 und dergleichen offenbart ist, wird auf eine ausführliche Beschreibung davon verzichtet werden.
-
Eine Robotervorlaufpositionsberechnungseinheit 240 erhält zuerst auf Basis der Interpolationsebenen-Bewegungsdaten 130 und der Zustandsinformation 140 hinsichtlich des Roboters 360, die der Reihe nach von der Robotersteuereinheit 300 gemeldet oder erlangt wird, die gegenwärtige Position des Roboters 360 und berechnet dann auf Basis der erlangten gegenwärtigen Position des Roboters 360 und der Interpolationsebenen-Bewegungsdaten 130 eine Position (eine Vorlaufposition) des Roboters 360 nach dem Ablauf der Vorlaufzeit t1. Die Vorlaufposition des Roboters 360 wird durch das folgende Verfahren berechnet. Wenn jeder Index der Interpolationsebenen-Bewegungsdaten 130 (eine Interpolationsperiode in der Robotersteuereinheit 300) als eine Einheit betrachtet wird, wird zuerst fpos, die Angabe der Vorlaufposition, gemäß der folgenden Gleichung (1) auf Basis der Interpolationsperiode (des Zyklus) der numerischen Steuereinheit 100 und der Robotersteuereinheit 300, der Vorlaufzeit t1, der Zeit t2 vor dem Bewegungsstartbefehl für den Roboter, und eines Index cpos der gegenwärtigen Position berechnet. Dann kann auf Basis des berechneten Index fpos und der Interpolationsebenen-Bewegungsdaten 130 die Vorlaufposition erhalten werden. fpos = cpos + (t1 – t2)/Zyklus (1)
-
Wenn sich die Interpolationsperioden der numerischen Steuereinheit 100 von den Interpolationsperioden der Robotersteuereinheit 300 unterscheiden, gibt es in einigen Fällen keinen passenden Index der Interpolationsebenen-Bewegungsdaten 130, der der Vorlaufzeit entspricht. In einem solchen Fall kann eine Positionsinformation, die durch einen vorherigen Index, der der Vorlaufzeit in den Interpolationsebenen-Bewegungsdaten 130 entspricht, als die Vorlaufposition des Roboters 360 angesehen werden. Alternativ kann eine Positionsinformation, die durch einen nachfolgenden Index angegeben wird, als die Vorlaufposition des Roboters 360 angesehen werden. Ferner kann eine Position zwischen der Positionsinformation, die durch den vorherigen Index angegeben wird, und der Positionsinformation, die durch den nachfolgenden Index angegeben wird, oder eine Positionsinformation, die durch lineares Interpolieren der Positionsinformation, die durch den vorherigen Index angegeben wird, und der Positionsinformation, die durch den nachfolgenden Index angegeben wird, auf Basis der Vorlaufzeit erhalten wird, als die Vorlaufposition des Roboters 360 angesehen werden.
-
Wenn eine Periode (fbcycle) für die Erlangung der Zustandsinformation 140 von der Robotersteuereinheit 300 dann mit den Interpolationsperioden der numerischen Steuereinheit 100 und der Robotersteuereinheit 300 übereinstimmt, werden die jeweiligen Vorlaufpositionen der Werkzeugmaschine 400 und des Roboters 360 stets synchron gehalten.
-
Wenn fbcycle > cycle besteht, tritt in der Synchronisation der Vorlaufpositionen ein Fehler auf. Doch dieser Fehler wird ausgeglichen, wenn der Index, der die gegenwärtige Position des Roboters 360 angibt, und die Zustandsinformation 140, die den Bewegungszustand enthält, erlangt werden.
-
Wenn der Index fpos, der die Vorlaufposition angibt, den maximalen Indexwert der Interpolationsebenen-Bewegungsdaten 130 übersteigt, wird der Roboter 360 als angehalten betrachtet. Wenn sich der Roboter 360 in einem Stillstand befindet, kann die Vorlaufposition des Roboters 360 nach dem Ablauf der Vorlaufzeit durch Festlegen von t2 = t1 an die gegenwärtige Position angepasst werden.
-
3 ist ein Ablaufdiagramm, das einen Ablauf der Verarbeitung zeigt, die an der numerischen Steuereinheit 100, die das Kollisionsprüfsystem von 3 bildet, durchgeführt wird.
-
[Schritt SA01] Das NC-Programm 110 wird vorab gelesen und die Vorausschaublockbefehlsdaten 120 werden erlangt.
-
[Schritt SA02] Die Verteilungsverarbeitungseinheit 210 erzeugt auf Basis der Vorausschaublockbefehlsdaten 120 die Interpolationsebenen-Verteilungsdaten.
-
[Schritt SA03] Die Vorlaufzeitberechnungseinheit 220 berechnet aus den Vorausschaublockbefehlsdaten 120, die bei Schritt SA01 erlangt wurden, und den Interpolationsebenen-Verteilungsdaten, die bei Schritt SA02 erzeugt wurden, die Vorlaufzeit t1.
-
[Schritt SA04] Es wird bestimmt, ob in den Vorausschaublockbefehlsdaten 120, die bei Schritt SA01 erlangt wurden, der Bewegungsstartbefehl für den Roboter 360 enthalten ist oder nicht. Wenn der Bewegungsstartbefehl für den Roboter 360 enthalten ist, geht die Verarbeitung zu Schritt SA05 über. Wenn der Bewegungsstartbefehl für den Roboter 360 nicht enthalten ist, geht die Verarbeitung zu Schritt SA06 über.
-
[Schritt SA05] Die Zeit, die von der gegenwärtigen Zeit bis zu der Ausführung des Bewegungsstartbefehls für den Roboter 360 vergeht, wird berechnet.
-
[Schritt SA06] Unter Bezugnahme auf die Zustandsinformation 140 oder dergleichen wird bestimmt, ob sich der Roboter 360 gegenwärtig bewegt oder nicht. Wenn sich der Roboter 360 bewegt, geht die Verarbeitung zu Schritt SA07 über. Wenn sich der Roboter 360 nicht bewegt, geht die Verarbeitung zu Schritt SA08 über.
-
[Schritt SA07] Die Zeit t2 vor dem Bewegungsstartbefehl für den Roboter 360 wird auf 0 gesetzt.
-
[Schritt SA08] Die Zeit t2 vor dem Bewegungsstartbefehl für den Roboter 360 wird auf t1 gesetzt.
-
[Schritt SA09] Es wird bestimmt, ob die Bezugsposition für die Berechnung der Vorlaufzeit die Position für den Bewegungsstartbefehl für den Roboter 360 erreicht hat oder nicht. Wenn die Position für den Bewegungsstartbefehl erreicht ist, geht die Verarbeitung zu Schritt SA10 über. Wenn die Position für den Bewegungsstartbefehl nicht erreicht ist, geht die Verarbeitung zu Schritt SA07 über.
-
[Schritt SA10] Der Robotersteuereinheit 300 wird der Bewegungsstartbefehl für den Roboter 360 erteilt.
-
[Schritt SA11] Die Vorlaufposition jeder Achse der Werkzeugmaschine 400 wird berechnet.
-
[Schritt SA12] Die Vorlaufposition des Roboters 360 wird auf Basis der Zustandsinformation 140 hinsichtlich des Roboters 360 berechnet, wonach die Verarbeitung zu Schritt SA01 zurückkehrt.
-
Die vorliegende Erfindung ist auch auf einen Aufbau anwendbar, bei dem die numerische Steuereinheit 100 und die Robotersteuereinheit 300 unabhängig voneinander arbeiten, ohne dass der Bewegungsstartbefehl für den Roboter 360 auf Seiten der numerischen Steuereinheit 100 ausgeführt wird.
-
4 ist ein Ablaufdiagramm, das die Verarbeitung zeigt, die in dem Kollisionsprüfsystem von 2 an der numerischen Steuereinheit 100 durchgeführt wird, wenn die numerische Steuereinheit 100 und die Robotersteuereinheit 300 unabhängig voneinander arbeiten, ohne dass der Bewegungsstartbefehl für den Roboter 360 auf Seiten der numerischen Steuereinheit 100 ausgeführt wird.
-
[Schritt SB01] Das NC-Programm 110 wird vorab gelesen und die Vorausschaublockbefehlsdaten 120 werden erlangt.
-
[Schritt SB02] Die Verteilungsverarbeitungseinheit 210 erzeugt auf Basis der Vorausschaublockbefehlsdaten 120 die Interpolationsebenen-Verteilungsdaten.
-
[Schritt SB03] Die Vorlaufzeitberechnungseinheit 220 berechnet aus den Vorausschaublockbefehlsdaten 120, die bei Schritt SB01 erlangt wurden, und den Interpolationsebenen-Verteilungsdaten, die bei Schritt SB02 erzeugt wurden, die Vorlaufzeit t1.
-
[Schritt SB04] Die Vorlaufpositionen der jeweiligen Achsen der Werkzeugmaschine 400 werden berechnet.
-
[Schritt SB05] Unter Bezugnahme auf die Zustandsinformation 140 oder dergleichen wird berechnet, ob sich der Roboter 360 im Stillstand befindet oder nicht. Wenn sich der Roboter 360 nicht im Stillstand befindet, geht die Verarbeitung zu Schritt SB06 über. Wenn sich der Roboter 360 im Stillstand befindet, geht die Verarbeitung zu Schritt SB07 über.
-
[Schritt SB06] Auf Basis der Interpolationsebenen-Bewegungsdaten 130 und der Zustandsinformation 140 hinsichtlich des Roboters 360, die von der Robotersteuereinheit 300 erlangt oder gemeldet wird, wird die Vorlaufposition des sich bewegenden Roboters berechnet, wonach die Verarbeitung zu Schritt SB01 zurückkehrt. Wenn der Index der Interpolationsebenen-Bewegungsdaten 130 hinsichtlich des Roboters 360 zum Beispiel als eine Einheit betrachtet wird, kann der Index fpos, der die Vorlaufposition des Roboters 360 angibt, auf Basis der Interpolationsperiode (des Zyklus) der numerischen Steuereinheit 100 und der Robotersteuerreinheit 300, der Vorlaufzeit t1 und des Index cpos der gegenwärtigen Position als fpos = cpos + t1/Zyklus berechnet werden.
-
[Schritt SB07] Auf Basis der Interpolationsebenen-Bewegungsdaten 130 und der Zustandsinformation 140 hinsichtlich des Roboters 360, die von der Robotersteuereinheit 300 erlangt oder gemeldet wird, wird die Vorlaufposition des angehaltenen Roboters 360 berechnet, wonach die Verarbeitung zu Schritt SB01 zurückkehrt. Wenn der Index der Interpolationsebenen-Bewegungsdaten 130 hinsichtlich des Roboters 360 zum Beispiel als eine Einheit betrachtet wird, kann der Index fpos, der die Vorlaufposition des Roboters 360 angibt, auf Basis der Interpolationsperiode (des Zyklus) der numerischen Steuereinheit 100 und der Robotersteuerreinheit 300, der Vorlaufzeit t1 und des Index cpos der gegenwärtigen Position als fpos = cpos berechnet werden.
-
Nach dem oben beschriebenen Aufbau kann die Robotersteuereinheit nur dann eine Kollisionsprüffunktion für die Werkzeugmaschine und den Roboter erzielen, wenn sie mit einer Funktion versehen ist, die in der Lage ist, der numerischen Steuereinheit den Index, der die gegenwärtige Position des Roboters angibt, und die Information, die den Bewegungszustand angibt, zu melden oder der numerischen Steuereinheit die Erlangung der Information zu ermöglichen.
-
Und selbst wenn sich die Vorlaufzeit zur Berechnung der Vorlaufposition abhängig von der Art der Interpolation, dem Vorausschauzustand in dem Vorausschaupuffer oder dem Befehl zur Unterdrückung der Vorausschau dynamisch verändert, kann die numerische Steuereinheit die Vorlaufposition des Roboters auf Basis der veränderten Vorlaufzeit berechnen. Somit können die synchronen Vorlaufpositionen der Werkzeugmaschine und des Roboters berechnet werden.
-
Darüber hinaus kann ein Fehler zwischen den Vorlaufpositionen der Werkzeugmaschine und des Roboters durch das Erlangen einer Indexinformation, die die gegenwärtige Position des Roboters angibt, und einer Information, die den Bewegungszustand angibt, auf ein Minimum ausgeglichen werden.
-
Obwohl hier Ausführungsformen der vorliegenden Erfindung beschrieben wurden, ist die Erfindung nicht auf die oben beschriebenen Ausführungsformen beschränkt, sondern kann sie passend abgeändert und in verschiedenen Formen ausgeführt werden.
-
Zum Beispiel wird bei der oben beschriebenen Ausführungsform das Lehrprogramm, das an der Robotersteuereinheit 300 ausgeführt wird, vorab durch die Offline-Programmiervorrichtung 600 oder dergleichen analysiert und die Bewegungsinformation hinsichtlich des Roboters 360 als die indexierten Interpolationsebenen-Bewegungsdaten erzeugt und durch die numerische Steuereinheit 100 und die Robotersteuereinheit 300 gemeinsam verwendet. Im Gegensatz dazu kann jedoch das NC-Programm, das an der numerischen Steuereinheit 100 ausgeführt wird, vorab mittels der Offline-Programmiervorrichtung 600 oder dergleichen analysiert werden. In diesem Fall wird die Bewegungsinformation hinsichtlich der Werkzeugmaschine 400 als die indexierten Interpolationsebenen-Bewegungsdaten erzeugt und werden die erzeugten indexierten Interpolationsebenen-Bewegungsdaten einzeln als die Interpolationsebenen-Bewegungsdaten 130 und Interpolationsebenen-Bewegungsdaten 310 durch die numerische Steuereinheit 100 und die Robotersteuereinheit 300 gemeinsam verwendet.
-
In diesem Fall sind wie in 5 gezeigt eine Vorlaufzeitberechnungseinheit 370, eine Robotervorlaufpositionsberechnungseinheit 380 und eine Werkzeugmaschinenvorlaufpositionsberechnungseinheit 390, die jeweils der in die numerische Steuereinheit 100 nach der oben beschriebenen Ausführungsform eingebauten Vorlaufzeitzeitberechnungseinheit 220, Werkzeugmaschinenvorlaufpositionsberechnungseinheit 230 und Robotervorlaufpositionsberechnungseinheit 240 entsprechen, einzeln in die Robotersteuereinheit 300 eingebaut, um die Vorlaufpositionen der Werkzeugmaschine 400 und des Roboters 360 zu berechnen und der Kollisionsprüfvorrichtung 500 die berechneten Vorlaufpositionen zu melden.
-
Bei diesem Aufbau sollte die numerische Steuereinheit 100 nur dazu ausgebildet sein, die Zustandsinformation, die den Index enthält, der den Interpolationsebenen-Bewegungsdaten, die die gegenwärtige Position der Werkzeugmaschine angeben, hinzugefügt wird, an die Robotersteuereinheit 300 zurückzumelden, so dass die Robotersteuereinheit 300 den Fehler zwischen der Vorlaufposition, die gegenwärtig berechnet wird, und der tatschlichen gegenwärtigen Position des Roboters 360 auf Basis der Rückmeldeinformation ausgleichen kann.
-
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
-
- JP 2008-27376 [0003, 0005, 0037, 0040]
- JP 2010-244256 [0003, 0005]
- JP 2006-68857 [0004, 0006]