-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung bezieht sich auf eine numerische Steuerung, die die Taktzeit eines Maschinenprogramms verkürzt.
-
2. Beschreibung des verwandten Stands der Technik
-
Eine numerische Steuerung steuert eine Werkzeugmaschine durch aufeinander folgendes Auslesen von Blöcken in einem Maschinenprogramm, die in einem Speicher wie etwa einem SRAM gespeichert werden und Betreiben von Servomotoren und Spindeln basierend auf Befehlen der Blöcke, die ausgelesen wurden. Unter den Blöcken, die das Maschinenprogramm bilden, gibt es Befehle, die die Werkzeugmaschine direkt steuern, Nutzermakrobefehle, die nicht direkt die Werkzeugmaschine steuern und Blöcke, die nur aus Kommentaren bestehen.
-
Beim Auslesen eines Blocks, welcher Nutzermakrobefehle oder nur Kommentare umfasst, welche nicht direkt mit dem Betrieb der Werkzeugmaschine verbunden sind, analysiert die numerische Steuerung den Block und fährt sofort nach Beendigung der Berechnung mit dem nächsten Block fort, dabei wird die numerische Steuerung zum Ausführen des Steuerns befähigt, so dass Prozesse ohne Verlust ausgeführt werden. In einem Stand der Technik, wie z. B. offenbart in der veröffentlichten
japanischen Patentanmeldung Nr. 62-154114 , im Falle dass sich eine Vielzahl an aufeinanderfolgenden Blöcken nicht direkt auf Operationen einer Werkzeugmaschine beziehen, wie etwa Nutzermakrobefehle und Kommentare, in einem Maschinenprogramm, wird die Vielzahl an aufeinanderfolgenden Blöcken als ein Block angesehen, so dass sie kollektiver Verarbeitung unterliegen.
-
In einem Maschinenprogramm kann es Blöcke geben, die Befehle für Achsvorschub zur Verfügung stellen und die in Folge von Berechnungen von Werkzeugkorrekturvektoren oder dergleichen in einem Null-Vorschubweg resultieren. Zum Beispiel, Blöcke „ZERO TRAVEL <1>”, „ZERO TRAVEL <2>” und dergleichen in 6 sind verlustbehaftete Blöcke, die in keinen wirklichen Achsvorschub resultieren und die nur Zeit verbrauchen, obwohl sich die Blöcke direkt auf den Betrieb einer Werkzeugmaschine beziehen. Im Falle, dass viele Blöcke in dem Maschinenprogramm existieren, die zu keinen Vorschubbefehlen für die Achsen führen und nur Zeit verbrauchen, wird die Taktzeit des Maschinenprogramms umso mehr gestört.
-
In einem Verfahren, das in der veröffentlichten
japanischen Patentanmeldung Nr. 62-154114 offenbart wurde, wie oben genannt, allerdings im Falle in dem eine Vielzahl nachfolgender Blöcke nicht direkt mit der Steuerung einer Werkzeugmaschine verbunden ist, so wie Nutzermakrobefehle und Kommentare, gilt die Vielzahl an nachfolgenden Blöcken als ein Block, um die Taktzeit des Maschinenprogramms zu verkürzen. Was Befehle angeht, die sich direkt auf die Steuerung einer Werkzeugmaschine beziehen, werden jedoch konventionelle Verfahren ohne Veränderung ausgeführt. Aus diesem Grund, werden Befehlsblöcke, die eine Werkzeugmaschine steuern, welche keinen Achsvorschubweg haben, als Ergebnis aus einer Berechnung wie oben beschrieben nicht wie ein taktzeitverkürzendes Ziel berücksichtigt. Deshalb gibt es ein Problem, dass Zeit für das Verarbeiten solcher Blöcke verschwendet wird.
-
Zusammenfassung der Erfindung
-
Ein Ziel der vorliegenden Erfindung ist es, eine numerische Steuerung bereit zu stellen, die fähig ist, die Taktzeit eines Maschinenprogramms durch Löschen von Verarbeitungszeit für nutzlose Blöcke in dem Maschinenprogramm zu verkürzen.
-
Die numerische Steuerung entsprechend der vorliegenden Erfindung steuert basierend auf einem Maschinenprogramm eine Werkzeugmaschine, welche Steuerachsen umfasst, und bindet eine Ausführungsdatenberechnungseinheit ein, die einen Block dekodiert, der vom Maschinenprogramm ausgelesen wird, und die Ausführungsdaten berechnet, die zur Steuerung der Werkzeugmaschine benutzt werden, und eine Vorschubwegbestimmungseinheit, die bestimmt, ob ein Vorschubweg, der sich aus Vorschubbefehlen für die Achssteuerung der Werkzeugmaschine ergibt, existiert oder nicht, basierend auf den Ausführungsdaten, die durch die Ausführungsdatenberechnungseinheit berechnet wurden. Wenn bestimmt wird, dass der sich aus den Vorschubbefehlen zur Achssteuerung der Werkzeugmaschine ergebende Vorschubweg nicht existiert, werden Prozesse für den Block weggelassen.
-
Die Vorschubwegbestimmungseinheit kann so ausgebildet sein, eine Verschiebung zu Prozessen für einen Block neben dem Block des Maschinenprogramms zu verursachen, wenn bestimmt wurde, dass der sich aus dem Vorschubbefehl für die Steuerachsen der Werkzeugmaschine ergebende Vorschubweg nicht existiert.
-
Gemäß der vorliegenden Erfindung werden durch Fortschreiten zum nächsten Block ohne Ausführung des Blocks, welcher in einem Null-Vorschubweg resultiert, als ein Ergebnis der Analyse des Maschinenprogramms und Berechnung des Vorschubwegs Blöcke, die notwendigerweise ausgeführt werden, extrahiert, Verarbeitungszeit für nutzlose Blöcke beseitigt und Taktzeit des Maschinenprogramms verkürzt. Eine Verbesserung in der Produktivität wird erwartet, weil die Taktzeit des Maschinenprogramms verkürzt wird.
-
Kurze Beschreibung der Zeichnungen
-
Die oben genannten und andere Ziele und Eigenschaften dieser Erfindung werden aus der folgenden Beschreibung einer Ausführungsform mit Verweis auf die beiliegenden Zeichnungen ersichtlich, in welchen:
-
1 ein schematisches Blockdiagramm dargestellt wird, das eine numerische Steuerung nach der Ausführungsform der Erfindung zeigt;
-
2 ein Funktionsblockdiagramm dargestellt wird, das die numerische Steuerung von 1 darstellt;
-
3 ein Diagramm dargestellt wird, das eine Skizze eines Verfahrens zur Entfernung nutzloser Blöcke in Maschinenblöcken durch die numerische Steuerung der Erfindung darstellt;
-
4 ein Flussdiagramm dargestellt wird, das einen Befehlsdekodierungsprozess darstellt, welcher durch eine konventionelle numerische Steuerung ausgeführt wird;
-
5 ein Flussdiagramm dargestellt wird, das einen Befehlsdekodierungsprozess darstellt, welcher durch die numerische Steuerung der Erfindung ausgeführt wird; und
-
6 ein Diagramm dargestellt wird, das Probleme mit einer konventionellen numerischen Steuerung darstellt.
-
Ausführliche Beschreibung der bevorzugten Ausführungsform
-
Eine Ausführungsform einer numerischen Steuerung der Erfindung wird beschrieben unter Bezugnahme auf 1.
-
Eine CPU 11, welche ein Prozessor ist, der im Allgemeinen die numerische Steuerung 100 steuert, liest durch einen Bus 20 Systemprogramme aus, welche auf einem ROM 12 gespeichert sind, und steuert die gesamte numerische Steuerung 100 in Übereinstimmung mit den Systemprogrammen. Vorläufige Berechnungsdaten und Anzeigedaten, und verschiedene Typen von Daten, die von einem Betreiber durch eine Anzeige/MDI-Einheit 70 eingegeben wurden, werden in einem RAM 13 gespeichert.
-
Ein SRAM 14 ist konfiguriert als ein nicht flüchtiger Speicher, welcher durch eine Batterie (nicht veranschaulicht) unterstützt wird und in welchem ein Speicherstatus gehalten wird, wenn die numerische Steuerung 100 ausgeschaltet wird. Maschinenprogramme, die durch eine Schnittstelle 15 eingelesen werden und Maschinenprogramme, die durch die Anzeige/MDI-Einheit 70 und dergleichen eingegeben werden, werden in dem SRAM 14 gespeichert. Systemprogramme zur Ausführung von Verfahren in einem Bearbeitungsmodus, die zur Erstellung und Bearbeitung von Maschinenprogrammen, Verfahren zur automatischen Ausführung und dergleichen erforderlich sind, werden im Voraus in dem ROM 12 geschrieben.
-
Verschiedene Arten von Maschinenprogrammen, einschließlich Maschinenprogramme zur Implementierung der Erfindung, können durch die Schnittstelle 15, die Anzeige/MDI-Einheit 70, oder dergleichen eingegeben werden und können in dem SRAM 14 gespeichert werden.
-
Die Schnittstelle 15 macht es möglich eine Verbindung zwischen der numerischen Steuerung 100 und einem externen Gerät 72, wie etwa einem Adapter, zur Verfügung zu stellen. Von einer Seite des externen Geräts 72 werden die Maschinenprogramme, verschiedene Parameter und dergleichen eingelesen. Die Maschinenprogramme, die in der numerischen Steuerung 100 bearbeitet wurden, können in einem externen Speichermittel durch das externe Gerät 72 gespeichert werden. Ein PMC (programmierbare Maschinensteuerung) 16 gibt ein Signal aus an und steuert Hilfsgeräte (z. B Aktuatoren wie etwa eine Roboterhand zum Ersetzen von Werkzeugen) für die Werkzeugmaschine durch eine I/O Einheit 17 in Folge der Sequenzprogramme, die in der numerischen Steuerung 100 gespeichert werden. Außerdem empfängt der PMC 16 Signale von Schaltern in einem Ausführungsbedienungsfeld, das auf einer Haupteinheit der Werkzeugmaschine und/oder dergleichen zur Verfügung gestellt wird, führt notwendige Verfahren für die Signale aus und überträgt anschließend die Signale an die CPU 11.
-
Die Anzeige/MDI-Einheit 70 ist ein manuelles Dateneingabegerät einschließlich einer Anzeige, einer Tastatur und dergleichen. Eine Schnittstelle 18 empfängt Befehle, Daten und dergleichen von der Tastatur der Anzeige/MDI-Einheit 70 und überträgt die Befehle, die Daten und dergleichen an die CPU 11. Eine Schnittstelle 19 ist verbunden mit dem Ausführungsbedienungsfeld 71, das einen manuellen Pulsgenerator und dergleichen enthält.
-
Achssteuerschaltungen 30 bis 34 für Achsen empfangen Vorschubwegbefehle für die Achsen von der CPU 11 und geben Befehle für die Achsen an die Servoverstärker 40 bis 44 aus. Die Servoverstärker 40 bis 44 empfangen die Befehle und betreiben Servomotoren 50 bis 54 für die Achsen. Die Servomotoren 50 bis 54 für die Achsen besitzen Positions-/Geschwindigkeitsdetektoren, koppeln Positions-/Geschwindigkeitsrückkopplungssignale der Positions-/Geschwindigkeitsdetektoren zu den Achssteuerschaltungen 30 bis 34 zurück, und führen eine Rückkopplungssteuerung von Positionen/Geschwindigkeiten aus. In dem Blockdiagramm wird die Darstellung der Rückkopplung von Positionen/Geschwindigkeiten weggelassen.
-
Eine Spindelsteuerschaltung 60 empfängt Spindelrotationsbefehle für die Werkzeugmaschine und gibt Spindelgeschwindigkeitssignale an einen Spindelverstärker 61 aus. Der Spindelverstärker 61 empfängt die Spindelgeschwindigkeitssignale, dreht einen Spindelmotor 62 der Werkzeugmaschine basierend auf den Befehlen bei einer Drehgeschwindigkeit und betreibt Werkzeuge.
-
Ein Positionsdekodierer 63 ist gekoppelt mit dem Spindelmotor 62 durch ein Getriebe, einen Gurt oder dergleichen und gibt Rückkopplungspulse synchron zur Spindeldrehung aus. Die Rückkopplungspulse passieren den Bus 20 und werden von dem Prozessor 11 ausgelesen.
-
2 ist ein Funktionsblockdiagramm, das die numerische Steuerung 100 darstellt, die in 1 dargestellt wird.
-
Die numerische Steuerung 100 beinhaltet eine Befehlsdekodierungseinheit 110, eine Interpolationseinheit 120 und eine Beschleunigungs-/Entschleunigungssteuereinheit 130.
-
Die Befehlsdekodierungseinheit 110 dekodiert Programmbefehle des Maschinenprogramms, die von dem SRAM 14 oder dergleichen gelesen werden und berechnet Ausführungsdaten, die durch die Interpolationseinheit 120 und die Beschleunigungs-/Entschleunigungssteuereinheit 130 genutzt werden. Die Befehlsdekodierungseinheit 110 führt beim Berechnen der Ausführungsdaten Berechnungen und dergleichen der Werkzeugkorrekturvektoren oder dergleichen aus, bestimmt basierend auf Ausführungsdaten ob der Vorschubweg, der sich durch die Vorschubbefehle zur Achssteuerung der Werkzeugmaschine ergibt, tatsächlich existieren soll oder nicht und lässt Verfahren an nutzlosen Blöcken weg, die wie in 3 dargestellt in einen Null-Vorschubweg resultieren.
-
Die Interpolationseinheit 120 erzeugt basierend auf den Daten, die durch die Befehlsdekodierungseinheit 110 ausgegeben werden, Daten, die sich aus Interpolationsberechnungen von Punkten auf einem Befehlspfad bei einem Interpolationstakt ergeben und steuert die Servoachsen basierend auf den Daten und Daten, die von der Beschleunigungs-/Entschleunigungssteuereinheit 130 ausgegeben werden.
-
Die Beschleunigungs-/Entschleunigungssteuereinheit 130 führt basierend auf den Daten, die von der Befehlsdekodierungseinheit 110 ausgegeben wurden und den Interpolationsdaten, die von der Interpolationseinheit 120 ausgegeben wurden, einen Beschleunigungs-/Entschleunigungssteuerprozess aus, berechnet Geschwindigkeiten für die Antriebsachsen für jeden Interpolationstakt und gibt Geschwindigkeitsbefehle an die Antriebsachsen aus. Die Geschwindigkeiten für die Antriebsachsen, die gesteuert werden sollen, werden berechnet basierend auf Einstellwerten von Geschwindigkeitsbefehlen, die in den Daten enthalten sind, die analysiert wurden durch die Befehlsdekodierungseinheit 110, Positionen der Achsen in jedem Interpolationstakt, die in den Interpolationsdaten enthalten sind, die durch die Interpolationseinheit 120 ausgegeben wurden, Beschleunigungs-/Entschleunigungszeitkonstanten und dergleichen.
-
Im Folgenden wird der Fluss der Prozesse, die auf der numerischen Steuerung 100 ausgeführt werden und dem, was oben beschrieben wurde, im Vergleich zu Prozessen gemäß dem Stand der Technik beschrieben.
-
Zunächst wird unter Verwendung eines Flussdiagramms aus 4 ein Fluss von Befehlsdekodierungsprozessen für einen Block bei Ausführung eines Maschinenprogramms durch eine konventionelle numerische Steuerung beschrieben.
- – [Schritt SA01] Ein Block wird von dem Maschinenprogramm ausgelesen.
- – [Schritt SA02] Ein Befehl des ausgelesenen Blocks wird dekodiert.
- – [Schritt SA03] Als ein Ergebnis der Dekodierung des Befehls des Blocks wird Bestimmt, ob der Befehl des Blocks ein Befehl ist, der eine Werkzeugmaschine steuert oder nicht. Der Fluss fährt fort mit SA04, wenn der Befehl der Befehl ist, der die Werkzeugmaschine steuert, wobei der Fluss zurück kehrt zu Schritt SA01, wenn der Befehl nicht der Befehl ist, der die Werkzeugmaschine steuert (das ist der Fall, wenn der Befehl ein Nutzermakrobefehl, ein Kommentar oder dergleichen ist).
- – [Schritt SA04] Ausführungsdaten für Achsvorschubbefehle, Hilfsfunktionsbefehle, und/oder dergleichen werden berechnet durch die Befehle, die in Schritt SA02 dekodiert wurden.
- – [Schritt SA05] Steuerung der Werkzeugmaschine wird basierend auf Ausführungsdaten, die in Schritt SA04 berechnet wurden, ausgeführt.
-
Im Flussdiagramm aus 4 sind Verfahren nach Schritt SA01 bis Schritt SA04, die oben genannt wurden, Verfahren, die die Befehlsdekodierungseinheit 110 als eine Ausführungsdatenberechnungseinheit 112 ausführt.
-
Anschließend wird unter Verwendung eines Flussdiagramms aus 5 der Fluss der Befehlsdekodierungsprozesse für einen Block bei Ausführung des Maschinenprogramms durch die Ausführungsform der numerischen Steuerung 100 der Erfindung beschrieben.
- – [Schritt SB01] Ein Block wird durch das Maschinenprogramm ausgelesen.
- – [Schritt SB02] Ein Befehl des ausgelesenen Blocks wird dekodiert.
- – [Schritt SB03] Als ein Ergebnis der Dekodierung des Befehls des Blocks wird Bestimmt, ob der Befehl des Blocks ein Befehl ist, der die Werkzeugmaschine steuert oder nicht. Der Fluss fährt fort mit Schritt SB04, wenn der Befehl der Befehl ist, der die Werkzeugmaschine steuert, oder der Fluss kehrt zurück zu Schritt SB01, wenn der Befehl nicht der Befehl ist, der die Werkzeugmaschine steuert (wenn der Befehl ein Nutzermakrobefehl ist, ein Kommentar oder dergleichen).
- – [Schritt SB04] Ausführungsdaten für Achsvorschubbefehle, Hilfsfunktionsbefehle und/oder dergleichen werden berechnet durch den in Schritt SB02 dekodierten Befehl.
- – [Schritt SB05] Es wird bestimmt, basierend auf den in Schritt SB04 berechneten Ausführungsdaten, ob der Vorschubweg, der sich aus den Vorschubbefehlen für die Steuerachsen der Werkzeugmaschine ergibt, zum Blockauslesen tatsächlich existieren soll oder nicht. Der Fluss fährt fort mit Schritt SB06, wenn die Vorschubbefehle für die Steuerachsen tatsächlich existieren sollen, wobei der Fluss zurückkehrt zu Schritt SB01, wenn die Vorschubbefehle für die Steuerachsen tatsächlich nicht existieren sollen. Der Fluss schreitet fort zu Schritt SB06, wenn das Blockauslesen ein Hilfsfunktionsbefehl ist.
- – [Schritt SB06] Die Steuerung der Werkzeugmaschine wird ausgeführt basierend auf Ausführungsdaten, die in Schritt SB04 berechnet wurden.
-
In dem Flussdiagramm aus 5 sind Verfahren nach Schritt SB01 bis Schritt SB04, die oben genannt wurden, Verfahren, die die Befehlsdekodierungseinheit 110 als die Ausführungsdatenberechnungseinheit 112 ausführt. Ein Verfahren nach Schritt SB05, der oben genannt wurde, ist ein Verfahren, das die Befehlsdekodierungseinheit 110 als eine Vorschubwegbestimmungseinheit 114 ausführt.
-
Bestimmte Ausführungsbeispiele (erstes und zweites Beispiel der Ausführung), in welchem das Maschinenprogramm auf der numerischen Steuerung 100 mit oben beschriebenen Konfigurationen ausgeführt wird, werden unten erläutert.
-
<Erstes Beispiel der Ausführung>
-
Unter der Bedingung, dass eine Korrektur durch ein Werkzeug Offset von 0.523 [mm] für die X-Achse an einem gewählten Werkzeug T0101 gemacht wurde, verursacht ein Befehl „G01 X-0.523”, gegeben durch das Maschinenprogramm, eine Addition des Werkzeug Offsets von 0.523 [mm] zu einer Endpunktposition (X-0.523). Folglich hat der inkrementelle Vorschubweg einen Wert von „0.000” und eine Verschiebung zu Verfahren für den nächsten Block wird ohne Ausführung von „G01 X-0.523” des Maschinenprogramms vorgenommen.
-
Als Folge der Berechnung des Vorschubwegs eines Werkzeugs mit dem Werkzeug Offset, der zur Endpunktposition in jedem Block des Maschinenprogramms addiert wurde, ergibt sich der Vorschubweg „0.000”, was in einem Block resultiert, welcher die Achsen nicht dazu veranlasst, sich zu verschieben, und Zeit des Interpolationstakts verbraucht. Die Vorschubwegbestimmungseinheit 114, als sub-funktionelles Mittel der Befehlsdekodierungseinheit 110, die in der numerischen Steuerung 100 nach der Erfindung enthalten ist, löscht solch einen Block, welcher die Achse nicht zum Verfahren veranlasst und Zeit des Interpolationstakts verbraucht.
-
<Zweites Beispiel der Ausführung>
-
Wenn ein Befehl „G91 G01 X[#100-#501-#1]” des Maschinenprogramms mit Einstellungen von Makrovariablen von #100 = 123.987, #500 = 0.987 und #1 = 123.000 ausgeführt wird, lautet der Befehl des Maschinenprogramms, zu dem die Werte der Makrovariablen zugeteilt wurden „G91 G01 X[123.987-0.987-123.000]” und der Vorschubweg für die X-Achse ergibt sich in Folge der Berechnung unter Verwendung der Werte der Makrovariablen zu „0.000”. Deshalb wird eine Verschiebung zu den Verfahren für den nächsten Block ohne Ausführung des Befehls „G91 G01 X[#100-#501-#1]” des Maschinenprogramms vorgenommen.
-
Als Folge der Berechnung von einem Makro des Maschinenprogramms ist der inkrementelle Vorschubweg „0.000”, was in einem Block resultiert, welcher die Achse nicht dazu veranlasst, sich zu verschieben, und Zeit des Interpolationstakts verbraucht. Die Vorschubwegbestimmungseinheit 114, als sub-funktionelles Mittel der Befehlsdekodierungseinheit 110, die in der numerischen Steuerung 100 nach der Erfindung enthalten ist, löscht solch einen Block, der nicht ausgeführt werden muss, aber die Zeit des Interpolationstakts verbraucht.
-
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 62-154114 [0003, 0005]