-
Gebiet
-
Die vorliegende Erfindung betrifft eine numerische Steuervorrichtung, die eine numerische Steuerung (NC) einer Werkzeugmaschine durchführt, welche in der Lage ist, ihre Spindeldrehgeschwindigkeit zu steuern.
-
Hintergrund
-
In einer Werkzeugmaschine, die mit einer numerischen Steuervorrichtung ausgestattet ist, wird ein Bearbeiten durch ein Anfordern einer Spindeldrehgeschwindigkeit von einem Bearbeitungsprogramm durchgeführt. In der Werkzeugmaschine kann ein Bearbeiten während der Periode von dem Anfordern der Spindeldrehgeschwindigkeit, bis eine tatsächliche Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, nicht durchgeführt werden. Daher tritt eine Wartezeit auf, und eine Bearbeitungszeit wird lang. Jedoch ist es mit einer derartigen numerischen Steuervorrichtung unnötig, dass bei jedem Befehl darauf gewartet wird, dass die Spindeldrehgeschwindigkeit angeforderte Drehgeschwindigkeiten erreicht. Beispielsweise ist es in dem Fall eines Schneidbefehls notwendig, darauf zu warten, dass die Spindeldrehgeschwindigkeit eine angeforderte Drehgeschwindigkeit erreicht. Jedoch ist es in dem Fall eines anderen Befehls als dem Schneidbefehl, wie etwa einem Positionierbefehl unnötig, darauf zu warten, dass die Spindeldrehgeschwindigkeit eine Drehgeschwindigkeit erreicht, die angefordert ist. Die Bestimmung für jeden Befehl, ob gewartet werden muss oder nicht, kann durchgeführt werden, indem eine Rangliste aufgestellt wird. Jedoch ist es für einen Benutzer nicht einfach, die Rangliste zu modifizieren, weil die Rangliste kompliziert ist.
-
Beispielsweise offenbart die Patentliteratur 1 eine Technologie, welche ein Bearbeitungsprogramm in einer Steuervorrichtung verwendet, um anzufordern und auszuwählen, ob der nächste Block ausgeführt wird, nach einem Warten, dass die Spindeldrehgeschwindigkeit eine angeforderte Drehgeschwindigkeit erreicht, oder ob der nächste Block ausgeführt wird, auch wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht hat.
-
Die Patentliteratur 2 offenbart eine Technologie, die in einer numerischen Steuervorrichtung verwendet wird, um die Zeitgebung der Ausgabe eines Spindeldrehbefehls derart zu steuern, dass die Spindeldrehgeschwindigkeit eine angeforderte Drehgeschwindigkeit gemäß einer Zeitgebung erreicht, wenn ein Schneidbefehl gestartet wird.
-
Patentliteratur
-
- Patentliteratur 1: Japanische Gebrauchsmusterveröffentlichung JP S62-179 605 U
- Patentliteratur 2: Offengelegte japanische Patentanmeldung JP 2011-118 952 A
-
Liu, Y. et. al. „An intelligent NC program processor for CNC system of machine tool”, in Robotics and computer-integrated manufacturing, Bd. 23, 2007, S. 160–169 beschreibt einen intelligenten NC-Programmprozessor für ein CNC-System einer Werkzeugmaschine. Die Druckschrift beschäftigt sich mit der Wiederverwendung von NC-Programmen von verschiedenen CNC-Systemen. Es wird eine Syntaxanalyse von Blöcken des NC-Programms durchgeführt, um sicherzustellen, dass die Logikrelation innerhalb jedes Blocks korrekt ist. Weiterhin wird nach einem Wort mit der höchsten Priorität innerhalb eines Blocks durch Bezugnahme auf eine Prioritätsregeltabelle gesucht.
-
EP 1 048 400 A1 beschreibt eine Vorrichtung zur Optimierung von NC-Programmen. Es werden einzelne NC-Befehle optimiert oder die Werkzeugreihenfolge.
-
EP 0 593 772 A1 betrifft ein NC-Daten-Aufbereitungssystem, bei dem die Befehlsreihenfolge gemäß einer Benutzereingabe geändert wird.
-
Technisches Problem
-
Es besteht jedoch bei der in der Patentliteratur 1 beschriebenen Technologie ein Problem dahingehend, dass dann, wenn die Steuervorrichtung anfordert, den nächsten Block auszuführen, nach einem Warten darauf, dass die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, eine Bearbeitungszeit zunimmt, weil der nächste Block nach dem Warten, dass die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, auch in einem Fall eines anderen Befehls als einem Schneidbefehl, wie etwa einem Positionierbefehl, ausgeführt wird. In einem anderen Fall besteht ein Problem dahingehend, dass dann, wenn die Steuervorrichtung die Werkzeugmaschine anweist, den nächsten Block auszuführen, auch wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht, der nächste Block auch in einem Fall eines Schneidbefehls ausgeführt wird, wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht, was zu einer Verschlechterung der Bearbeitungsgenauigkeit führt.
-
In der in der Patentliteratur 2 beschriebenen Technologie wird die Steuerung der numerischen Steuervorrichtung zum Zweck eines Verhinderns durchgeführt, dass sich eine Spindel nutzlos dreht, um Energie zu sparen. Deswegen besteht ein Problem dahingehend, dass eine Ausgabezeitgebung des Spindeldrehbefehls nur nach der Zeitgebung ausgegeben wird, die durch das Bearbeitungsprogramm vorgegeben wird, so dass eine Bearbeitungszeit nicht verringert werden kann.
-
Die vorliegende Erfindung ist in Anbetracht der obigen Ausführungen gemacht worden, und es ist eine Aufgabe der vorliegenden Erfindung, eine numerische Steuervorrichtung bereitzustellen, die in der Lage ist, eine Bearbeitungszeit in einer Werkzeugmaschine ohne ein Verschlechtern einer Maschinengenauigkeit zu verringern.
-
Lösung für das Problem
-
Diese Aufgabe wird gelöst durch die Gegenstände der unabhängigen Patentansprüche. Die abhängigen Ansprüche definieren bevorzugte Ausführungsformen. Vorteilhafte Wirkungen der Erfindung
-
Die numerische Steuervorrichtung gemäß der vorliegenden Erfindung erzielt eine Wirkung derart, dass es möglich ist, eine Bearbeitungszeit in einer Werkzeugmaschine ohne ein Verschlechtern einer Bearbeitungsgenauigkeit zu verringern.
-
Kurze Beschreibung der Zeichnungen
-
In den Zeichnungen zeigen:
-
1 ein Diagramm, das ein Konfigurationsbeispiel einer numerischen Steuervorrichtung veranschaulicht;
-
2 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Programmanalysiereinheit der numerischen Steuervorrichtung gemäß einer ersten Ausführungsform ausgeführt wird;
-
3 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Befehlsbestimmungseinheit der numerischen Steuervorrichtung gemäß der ersten Ausführungsform ausgeführt wird;
-
4 ein Diagramm, das ein Bearbeitungsprogrammbeispiel veranschaulicht, das durch die numerische Steuervorrichtung in der ersten Ausführungsform verarbeitet wird;
-
5 ein Zeitdiagramm für das Bearbeitungsprogrammbeispiel, das in 4 gezeigt ist;
-
6 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Programmanalysiereinheit einer numerischen Steuervorrichtung gemäß einer zweiten Ausführungsform ausgeführt wird;
-
7 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Befehlsbestimmungseinheit der numerischen Steuervorrichtung gemäß der zweiten Ausführungsform ausgeführt wird;
-
8 ein Diagramm, das ein Bearbeitungsprogrammbeispiel veranschaulicht, das durch die numerische Steuervorrichtung in der zweiten Ausführungsform verarbeitet wird;
-
9 ein Zeitdiagramm für das in 8 gezeigte Bearbeitungsprogrammbeispiel;
-
10 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Programmanalysiereinheit einer numerischen Steuervorrichtung gemäß einer dritten Ausführungsform ausgeführt wird;
-
11 ein Zeitdiagramm für das Bearbeitungsprogrammbeispiel, das in 4 gezeigt ist;
-
12 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Programmanalysiereinheit in einer numerischen Steuervorrichtung gemäß einer vierten Ausführungsform ausgeführt wird;
-
13 ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Befehlsbestimmungseinheit der numerischen Steuervorrichtung gemäß der vierten Ausführungsform ausgeführt wird;
-
14 ein Diagramm, das ein Bearbeitungsprogrammbeispiel veranschaulicht, das durch die numerische Steuervorrichtung in der vierten Ausführungsform verarbeitet wird;
-
15 ein Zeitdiagramm für das Bearbeitungsprogrammbeispiel, das in 14 gezeigt ist; und
-
16 ein Diagramm, das ein Beispiel eines Anzeigeschirms in einer Anzeigeeinheit veranschaulicht, die in der numerischen Steuervorrichtung enthalten ist.
-
Beschreibung der Ausführungsformen
-
Ausführungsformen einer numerischen Steuervorrichtung gemäß der vorliegenden Erfindung werden im Detail untenstehend unter Bezugnahme auf die Zeichnungen erläutert. Es sei darauf hingewiesen, dass die vorliegende Erfindung nicht auf diese Ausführungsformen beschränkt ist.
-
Erste Ausführungsform
-
1 ist ein Diagramm, das ein Konfigurationsbeispiel einer numerischen Steuervorrichtung gemäß der Ausführungsform veranschaulicht. In 1 bezeichnet ein Bezugszeichen 1 eine numerische Steuervorrichtung. Ein Bezugszeichen 2 bezeichnet eine Programmanalysiereinheit, 3 bezeichnet eine Befehlsbestimmungseinheit, 4 bezeichnet eine Interpolationseinheit, 5 bezeichnet eine Spindelsteuer-Befehlsausgabeeinheit, 6 bezeichnet ein Bearbeitungsprogramm, 7 bezeichnet einen Read-ahead-Puffer (Vorab-Lesepuffer), 8 bezeichnet einen Servoverstärker, 9 bezeichnet einen Spindelverstärker, 10 bezeichnet einen Bewegungsbefehl, 11 bezeichnet einen Bewegungsbetrag, 12 bezeichnet einen Spindelsteuerbefehl, 13 bezeichnet einen Spindeldrehbefehl, und 14 bezeichnet eine tatsächliche Spindeldrehgeschwindigkeit.
-
Die Programmanalysiereinheit 2 liest und analysiert das Bearbeitungsprogramm 6 und speichert sequentiell Analyseergebnisse der gelesenen Befehle. In dem Read-ahead-Puffer 7 werden Informationen, wie etwa Modale von Blöcken, Bewegungsbeträge von Wellen und eine Spindeldrehgeschwindigkeit gespeichert, welche Analyseergebnisse in der Programmanalysiereinheit 2 sind. Die Informationen, die in dem Read-ahead-Puffer 7 gespeichert sind, werden gelöscht, wenn ein angeforderter Betrieb beendet ist. Die Befehlsbestimmungseinheit 3 liest die Informationen betreffend die Blöcke, die in dem Read-ahead-Puffer 7 vorab gespeichert sind, und gibt Befehle zu Verarbeitungseinheiten entsprechend den Befehlen aus. Der Bewegungsbefehl 10 wird zu der Interpolationseinheit 4 ausgegeben. Die Interpolationseinheit 4 berechnet den Bewegungsbetrag 11 bei jedem Interpolationszyklus und gibt den Bewegungsbetrag 11 zu dem Servoverstärker 8 aus. Der Bewegungsbefehl 10 ist ein Befehl zum Steuern des Betriebs einer Welle, wie etwa ein Schneidbefehl und ein Positionierbefehl. Die Befehle sind kollektiv als ein Bewegungsbefehl 10 bezeichnet. Der Spindelsteuerbefehl 12 wird zu der Spindelsteuer-Befehlsausgabeeinheit 5 ausgegeben. Die Spindelsteuer-Befehlsausgabeeinheit 5 gibt die Spindeldrehgeschwindigkeit 13 zu dem Spindelverstärker 9 aus. Der Spindelsteuerbefehl 12 ist ein Befehl zum Steuern des Betriebs einer Spindel, wie etwa ein Spindeldrehbefehl und ein Spindelstoppbefehl. Die Befehle werden kollektiv als ein Spindelsteuerbefehl 12 bezeichnet. Der Spindelverstärker 9 gibt die tatsächliche Spindeldrehgeschwindigkeit 14 zu der Befehlsbestimmungseinheit 3 aus. Die Befehlsbestimmungseinheit 3 verwendet die tatsächliche Spindeldrehgeschwindigkeit 14 zum Bestimmen der Ausgabe eines Befehls.
-
2 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch die Programmanalysiereinheit 2 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Bei einem Schritt S101 bestimmt die Programmanalysiereinheit 2, ob ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist. Wenn ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei Schritt S101), beendet die Programmanalysiereinheit 2 die Verarbeitung. Wenn ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei Schritt S101), schreitet die Programmanalysiereinheit 2 zu einem Schritt S102 fort. Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt eine Spindel-Beschleunigungs- und -Verzögerungszeit T1 und eine Zeit T2 von einem Spindelsteuerbefehl auf 0 und schreitet zu einem Schritt S103 fort. Bei dem Schritt S103 liest die Programmanalysiereinheit das Bearbeitungsprogramm 6 und schreitet zu einem Schritt S104 fort. Bei dem Schritt S104 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl der Spindelsteuerbefehl 12 ist. Wenn der gelesene Befehl der Spindelsteuerbefehl 12 ist (Ja bei dem Schritt S104), schreitet die Programmanalysiereinheit 2 zu einem Schritt S105 fort. Wenn der gelesene Befehl nicht der Spindelsteuerbefehl 12 ist (Nein bei dem Schritt S104), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei dem Schritt S105 berechnet die Programmanalysiereinheit 2 die Spindel-Beschleunigungs- und -Verzögerungsungszeit T1 auf der Grundlage eines Verfahrens zum Berechnen der Ausführungszeit von Blöcken, welches untenstehend erläutert ist, und schreitet zu einem Schritt S106 fort. Bei dem Schritt S106 bestimmt die Programmanalysiereinheit, ob der nächste Block vorhanden ist. Wenn der nächste Block vorhanden ist (Ja bei Schritt S106), schreitet die Programmanalysiereinheit 2 zu einem Schritt S107 fort. Wenn der nächste Block nicht vorhanden ist (Nein bei dem Schritt S106), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei einem Schritt S107 liest die Programmanalysiereinheit 2 den nächsten Block und schreitet zu einem Schritt S108 fort. Bei dem Schritt S108 bestimmt die Programmanalysiereinheit, ob der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Befehl ein Befehl ist, für welchen ein Problem nicht auftritt (Nein bei dem Schritt S108), schreitet die Programmanalysiereinheit 2 zu einem Schritt S109 fort. Wenn der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt (Ja bei dem Schritt S108), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei einem Schritt S109 berechnet die Programmanalysiereinheit 2 eine Ausführungszeit des gelesenen Befehls auf Grundlage eines Verfahrens zum Berechnen der Ausführungszeiten von Blöcken, welches untenstehend erläutert ist, und schreitet zu einem Schritt S110 fort. Bei dem Schritt S110 akkumuliert die Programmanalysiereinheit 2 Ausführungszeiten, die bei dem Schritt S109 berechnet sind, um die Zeit T2 von dem Spindelsteuerbefehl zu berechnen, und schreitet zu einem Schritt S111 fort. Bei dem Schritt S111 vergleicht die Programmanalysiereinheit 2 die Spindel-Beschleunigungs- und -Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Wenn die Programmanalysiereinheit 2 bestimmt, dass die Spindel-Beschleunigungs- und -Verzögerungszeit T1 größer ist (Nein bei dem Schritt S111), kehrt die Programmanalysiereinheit zu dem Schritt S106 zurück. Wenn die Programmanalysiereinheit 2 bestimmt, dass die Zeit T2 von dem Spindelsteuerbefehl größer ist (Ja bei dem Schritt S111), beendet die Programmanalysiereinheit 2 die Verarbeitung. Es sei darauf hingewiesen, dass Informationen, die die Blöcke betreffen, die von der Programmanalysiereinheit 2 ausgelesen werden, sequentiell in dem Read-ahead-Puffer 7 gespeichert werden.
-
Hier wird ein Verfahren zum Bestimmen eines Befehls erläutert, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Beispiele eines Befehls, für welche ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, umfassen einen Werkzeugersetzbefehl und einen Schneidbefehl. Der Werkzeugersetzbefehl wird üblicherweise in einer Situation durchgeführt, in welcher die Spindel angehalten ist, so dass die Spindel nicht gedreht werden kann. Der Schneidbefehl wird in einem Zustand durchgeführt, in welchem Werkstücke bearbeitet werden, so dass sich eine Genauigkeit der Bearbeitung verschlechtert, wenn sich die Spindeldrehgeschwindigkeit ändert. Das heißt, als ein Befehl nach dem Spindeldrehbefehl ist der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, der Schneidbefehl. Als ein Befehl vor dem Spindeldrehbefehl ist der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, der Schneidbefehl und der Werkzeugersetzbefehl. Als ein Befehl nach dem Spindelstoppbefehl ist der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, der Werkzeugersetzbefehl. Als ein Befehl vor dem Spindelstoppbefehl ist der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, der Schneidbefehl. Hier wird ein anderer Befehl als der Werkzeugersetzbefehl und der Schneidbefehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, durch ein Einstellen des Befehls in Parametern oder dergleichen im Voraus bestimmt. Der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, d. h. ein Befehl, in welchem ein gewisses Problem (z. B. eine Zunahme in einer Bearbeitungszeit oder eine Verschlechterung in der Bearbeitungsgenauigkeit) beim Bearbeiten wegen einer Implementierung, während sich die Spindeldrehgeschwindigkeit ändert, auftritt, wird hierin als ein erster Befehl bezeichnet. Ein Befehl, für welchen ein Problem nicht auftritt, auch wenn sich die Spindeldrehgeschwindigkeit ändert, d. h. ein anderer Befehl als der erste Befehl, in welchem ein gewisses Problem beim Bearbeiten auftritt, wird als ein zweiter Befehl bezeichnet.
-
Ein Verfahren zum Berechnen der Ausführungszeiten von Blöcken in der Programmanalysiereinheit 2 wird hier erläutert. In dem Fall des Positionierbefehls wird eine Ausführungszeit aus einer Schnellvorschubgeschwindigkeit und einer Beschleunigungs- und Verzögerungszeitkonstante, die im Voraus in Parametern eingestellt sind, und einer Bewegungsdistanz berechnet, die durch das Bearbeitungsprogramm 6 angefordert wird (Ausführungszeit = Bewegungsdistanz/Schnellvorschubgeschwindigkeit + Beschleunigungs- und Verzögerungszeitkonstante). In dem Fall eines M-Codes wird eine Ausführungszeit im Voraus in Parametern gesetzt. In dem Fall des Spindelsteuerbefehls 12 wird eine Ausführungszeit aus der maximalen Drehgeschwindigkeit und einer Beschleunigungs- und Verzögerungszeitkonstante der Spindel, die im Voraus eingestellt sind, der Spindeldrehgeschwindigkeit, die durch das Bearbeitungsprogramm 6 angefordert wird, und der gegenwärtigen Spindeldrehgeschwindigkeit berechnet (Ausführungszeit = (angeforderte Spindeldrehgeschwindigkeit – gegenwärtige Spindeldrehgeschwindigkeit) × Beschleunigungs- und Verzögerungszeitkonstante der Spindel/maximale Drehgeschwindigkeit).
-
3 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch eine Befehlsbestimmungseinheit 3 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Die Befehlsbestimmungseinheit 3 führt sequentiell eine Verarbeitung auf der Grundlage der Informationen aus, die die Befehle betreffen, die durch die Programmanalysiereinheit 2 analysiert sind und in dem Read-ahead-Puffer 7 gespeichert sind. Bei einem Schritt S201 liest die Befehlsbestimmungseinheit 3 einen Befehl aus dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S202 fort. Bei dem Schritt S202 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl der Spindelsteuerbefehl 12 ist. Wenn der gelesene Befehl der Spindelsteuerbefehl 12 ist (Ja bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S203 fort. Wenn der gelesene Befehl nicht der Spindelsteuerbefehl 12 ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S207 fort. Bei dem Schritt S203 gibt die Befehlsbestimmungseinheit 3 den Spindelsteuerbefehl 12 aus, welcher der gelesene Befehl ist, und schreitet zu einem Schritt S204 fort. Bei dem Schritt S204 löscht die Befehlsbestimmungseinheit 3 den Spindelsteuerbefehl 12, welcher der gelesene Befehl ist, aus dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S205 fort. Bei dem Schritt S205 bestimmt die Befehlsbestimmungseinheit 3, ob der nächste Befehl in dem Read-ahead-Puffer 7 gespeichert ist. Wenn der nächste Befehl in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S205), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S206 fort. Wenn der nächste Befehl nicht in dem Read-ahead-Puffer 7 gespeichert ist (Nein bei dem Schritt S205), beendet die Befehlsbestimmungseinheit 3 die Verarbeitung. Bei dem Schritt S206 liest die Befehlsbestimmungseinheit 3 den nächsten Befehl aus dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S207 fort. Bei dem Schritt S207 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Befehl der Befehl ist, für welchen ein Problem auftritt (Ja bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S208 fort. Wenn der gelesene Befehl ein Befehl ist, für welchen ein Problem nicht auftritt (Nein bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S209 fort. Bei dem Schritt S208 bestimmt die Befehlsbestimmungseinheit 3, ob die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht. Wenn die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit nicht erreicht (Nein bei dem Schritt S208), wartet die Befehlsbestimmungseinheit 3 darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht (Ja bei dem Schritt S208) und schreitet zu dem Schritt S209 fort. Bei dem Schritt S209 gibt die Befehlsbestimmungseinheit 3 den gelesenen Befehl aus und beendet die Verarbeitung.
-
Es sei darauf hingewiesen, dass dann, wenn der gelesene Befehl der Bewegungsbefehl, wie etwa ein Schneidbefehl oder ein Positionierbefehl ist, die Befehlsbestimmungseinheit 3 den gelesenen Befehl zu der Interpolationseinheit 4 ausgibt. Die Interpolationseinheit 4 berechnet den Bewegungsbetrag 11 zu jedem Interpolationszyklus und gibt den Bewegungsbetrag 11 zu dem Servoverstärker 8 aus. Andererseits gibt die Befehlsbestimmungseinheit 3, wenn der gelesene Befehl der Spindelsteuerbefehl 12, wie etwa ein Spindeldrehbefehl oder ein Spindelstoppbefehl ist, den gelesenen Befehl zu der Spindelsteuer-Befehlsausgabeeinheit 5 aus. Die Spindelsteuer-Befehlsausgabeeinheit 5 gibt die Spindeldrehgeschwindigkeit 13 zu dem Spindelverstärker 9 aus. Obwohl in der Figur nicht gezeigt, werden andere Befehle als der Bewegungsbefehl 10 und die Spindelsteuerbefehle 12 durch die Verarbeitungseinheiten verarbeitet, die derartigen Befehlen entsprechen. Die Verarbeitung ist die gleiche wie die herkömmliche Verarbeitung.
-
Ein Verarbeitungsfluss in der numerischen Steuervorrichtung 1 wird spezifisch gemäß der Flussdiagramme der 2 und 3 unter Bezugnahme auf ein Bearbeitungsprogrammbeispiel erläutert. 4 ist ein Diagramm, das das Bearbeitungsprogrammbeispiel veranschaulicht, das durch die numerische Steuervorrichtung 1 in der Ausführungsform verarbeitet wird. Zunächst bestätigt die Programmanalysiereinheit 2 bei einem Schritt S101, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei einem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei einem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N101. Da der Block von N101 ein Schneidbefehl ist (Nein bei dem Schritt S104), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall wird ein Befehl von N101 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei einem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N101, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N101 der Schneidbefehl ist (Nein bei einem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, Schritt S208: Ja, und Schritt S209 fort, gibt den Schneidbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Schneidbefehls von N101 bei dem Schritt S101 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N102. Da der Block von N102 ein Positionierbefehl ist (Nein bei dem Schritt S104), beendet die Programmanalysiereinheit 2 die Verarbeitung. Dann wird ein Befehl von N102 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N102, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N102 der Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N102 beendet ist, bestätigt die Programmanalysiereinheit 2 bei dem Schritt S101, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N103. Da der Block N103 ein Spindelstoppbefehl ist (Ja bei dem Schritt S104), schreitet die Programmanalysiereinheit 2 zu dem Schritt S104 fort, berechnet die Spindel-Beschleunigungs- und -Verzögerungszeit T1, welche eine Zeitperiode ist, bis die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, und schreitet zu dem Schritt S106 fort. Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N104, welches der nächste Block ist. Da der Block von N104 ein Positionierbefehl ist, um zu einer Werkzeugersetzposition zurückzukehren (Nein bei dem Schritt S108), schreitet die Programmanalysiereinheit 2 zu dem Schritt S109 fort und berechnet eine Ausführungszeit des Blocks von N104. Bei dem Schritt S110 aktualisiert die Programmanalysiereinheit 2 die Zeit T2 von dem Spindelsteuerbefehl. Bei dem Schritt S111 vergleicht die Programmanalysiereinheit 2 die Spindel-Beschleunigungs- und -Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Die Programmanalysiereinheit 2 kehrt, wenn die Spindel-Beschleunigungs- und -Verzögerungszeit T1 größer ist (Nein bei dem Schritt S111), zu dem Schritt S106 zurück.
-
Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N105, welches der nächste Block ist. Die Programmanalysiereinheit 2 schreitet zu dem Schritt S108 fort. Da der Block von N105 ein Werkzeugersetzbefehl ist (Ja bei dem Schritt S108), beendet die Programmanalysiereinheit 2 die Verarbeitung. Hier werden die Befehle von N103, N104 und N105 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N103, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N103 ein Spindelstoppbefehl ist (Ja bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S203 und dem Schritt S204 fort, gibt den Spindelstoppbefehl aus und löscht den Spindelstoppbefehl aus dem Read-ahead-Puffer 7. Bei dem Schritt S205 bestätigt die Befehlsbestimmungseinheit 3, dass der nächste Befehl in dem Read-ahead-Puffer 7 vorhanden ist (Ja bei dem Schritt S205). Bei dem Schritt S206 liest die Befehlsbestimmungseinheit 3 den Befehl von N104. Da der Befehl von N104 ein Positionierbefehl ist, um zu einer Werkzeugersetzposition zurückzukehren (Nein bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209, gibt den Positionierbefehl, zu einer Werkzeugersetzposition zurückzukehren, aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls, um zu einer Werkzeugersetzposition von N104 zurückzukehren, beendet ist, beendet, weil ein Befehl noch immer in dem Read-ahead-Puffer 7 bei dem Schritt S101 gespeichert ist (Ja bei dem Schritt S101), die Programmanalysiereinheit 2 die Verarbeitung.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N105, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N105 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, dem Schritt S208: Ja, und dem Schritt S209 fort, wartet darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht, d. h. Null-Geschwindigkeit, gibt den Werkzeugersetzbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Werkzeugersetzbefehls von N105 beendet ist, bestätigt die Programmanalysiereinheit 2 bei dem Schritt S101, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N106. Da der Block von N106 ein Positionierbefehl ist (Nein bei dem Schritt S104), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall wird ein Befehl von N106 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N106, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N106 ein Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Da der nächste Block von N107 auch der Positionierbefehl ist, führen die Programmanalysiereinheit 2 und die Befehlsbestimmungseinheit 3 eine Verarbeitung durch, die die gleiche wie die Verarbeitung für den Block von N106 ist.
-
Wenn die Ausführung des Positionierbefehls von N107 bei dem Schritt S101 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N108. Da der Block von N108 ein Spindeldrehbefehl ist (Ja bei dem Schritt S104), schreitet die Programmanalysiereinheit 2 zu einem Schritt S105 fort, berechnet die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und schreitet zu dem Schritt S106 fort. Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N109, welches der nächste Block ist. Da der Block von N109 ein Positionierbefehl ist (Nein bei dem Schritt S108), schreitet die Programmanalysiereinheit 2 zu dem Schritt S109 fort und berechnet eine Ausführungszeit des Blocks von N109. Bei dem Schritt S110 aktualisiert die Programmanalysiereinheit 2 die Zeit T2 von dem Spindelsteuerbefehl. Bei dem Schritt S111 vergleicht die Programmanalysiereinheit 2 die Spindel-Beschleunigungs- und -Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Die Programmanalysiereinheit bestimmt, dass die Spindel-Beschleunigungs- und -Verzögerungszeit T1 größer ist (Nein bei dem Schritt S111) und kehrt zu dem Schritt S106 zurück.
-
Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N110, welches der nächste Block ist. Da der Block von N110 ein Positionierbefehl ist (Nein bei dem Schritt S108), schreitet die Programmanalysiereinheit 2 zu dem Schritt S109 fort und berechnet eine Ausführungszeit des Blocks 110. Bei dem Schritt S110 aktualisiert die Programmanalysiereinheit 2 die Zeit T2 aus dem Spindelsteuerbefehl. Bei dem Schritt S111 vergleicht die Programmanalysiereinheit 2 die Spindel-Beschleunigungs- und -Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Wenn die Programmanalysiereinheit 2 bestimmt, dass die Zeit T2 von dem Spindelsteuerbefehl größer ist (Ja bei dem Schritt S111), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall werden Befehle von N108, N109 und N110 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N108, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N108 ein Spindeldrehbefehl ist (Ja bei dem Schritt S202), schreitet die Programmbestimmungseinheit 3 zu dem Schritt S203 und dem Schritt S204 fort, gibt den Spindeldrehbefehl aus und löscht den Spindeldrehbefehl aus dem Read-ahead-Puffer 7. Bei dem Schritt S203 bestätigt die Programmbestimmungseinheit 3, dass der nächste Befehl in dem Read-ahead-Puffer 7 vorhanden ist (Ja bei dem Schritt S205). Bei dem Schritt S206 liest die Programmbestimmungseinheit 3 den Befehl von N109. Da der Befehl von N109 ein Positionierbefehl ist (Nein bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N109 bei dem Schritt S101 beendet ist, beendet die Programmanalysiereinheit 2, da ein Befehl noch immer in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S101), die Verarbeitung.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N110, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N110 ein Positionierbefehl ist (Nein bei Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N110 bei dem Schritt S101 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N111. Da der Block von N111 ein Schneidbefehl ist (Nein bei dem Schritt S104), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall wird ein Befehl von N111 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N111, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N111 ein Schneidbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, dem Schritt S208: Ja, und dem Schritt S209 fort, wartet darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht, gibt den Schneidbefehl aus und beendet die Verarbeitung.
-
5 ist ein Zeitdiagramm für das in 4 gezeigte Bearbeitungsprogrammbeispiel. 5(1) zeigt eine herkömmliche Ausführung. 5(2) zeigt eine Ausführung in der Ausführungsform. Die Figuren zeigen jeweils Beziehungen zwischen Spindeldrehgeschwindigkeit, Wellenbewegungsbetrag und Vorhandensein oder Nicht-Vorhandensein einer Werkzeugersetz-Ausführung bei den jeweiligen Schritten. Bei der herkömmlichen Ausführung wird gemäß einer Rangfolge bestimmt, ob die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht hat, und dann schreitet die Ausführung zu dem nächsten Block fort. Wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht und die Ausführung dann zu dem nächsten Block fortschreitet, wie in 5(1) gezeigt, werden die Positionierbefehle von N104, N109 und N110 ausgeführt, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Im Gegensatz dazu werden bei der Ausführung in der Ausführungsform, wie in 5(2) gezeigt, die Positionierbefehle von N104, N109 und N110 ausgeführt, ohne von der Rangfolge abzuhängen, auch wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht. Der Werkzeugersetzbefehl von N105 und der Schneidbefehl von N111 werden ausgeführt, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Deswegen ist es möglich, eine Verarbeitungszeit zu verringern, auch wenn eine komplizierte Rangfolge nicht konfiguriert ist. Das Vorab-Lesen in der Programmanalysiereinheit 2 endet in einem Fall, wenn ein Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, ausgegeben wird, oder in einem Fall, wenn die Zeitperiode von dem Spindelsteuerbefehl zu dem Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, größer als die Zeitperiode ist, bis die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Deswegen ist es möglich, eine Erhöhung in einer Verarbeitungslast bei der numerischen Steuervorrichtung 1 zu verringern.
-
Wie obenstehend erläutert, gibt die numerische Steuervorrichtung 1 gemäß der Ausführungsform, in dem Fall des Befehls, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, den Befehl aus, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht; und in dem Fall eines anderen Befehls als der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, gibt die numerische Steuervorrichtung 1 den Befehl aus, auch wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht. Aufgrund der oben erwähnten Ausführung ist es möglich, eine Bearbeitungszeit zu verringern, ohne eine komplizierte Rangfolge auszuführen, und ohne eine Bearbeitungsgenauigkeit einer Maschine zu beeinträchtigen.
-
Die Programmanalysiereinheit 2 kann die Anzahl von Blöcken, die vorab zu lesen sind, in zweckmäßiger Weise bestimmen, und kann eine Erhöhung in einer Verarbeitungslast der numerischen Steuervorrichtung verringern.
-
Zweite Ausführungsform
-
6 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die von der Programmanalysiereinheit 2 der numerischen Steuervorrichtung 1 gemäß einer Ausführungsform ausgeführt wird. Das Flussdiagramm der 6 ist grundsätzlich das gleiche wie das oben erläuterte Flussdiagramm der 2. Deswegen werden hauptsächlich Unterschiede zwischen diesen erläutert. Der Schritt S101, der Schritt S102 und der Schritt S103 sind die gleichen wie die in 2 gezeigten Schritte. Bei einem Schritt S301 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl ein Spindeldrehbefehl ist. Wenn der gelesene Befehl der Spindeldrehbefehl ist (Ja bei dem Schritt S301), schreitet die Programmanalysiereinheit zu dem Schritt S105 fort. Wenn der gelesene Befehl nicht der Spindeldrehbefehl ist (Nein bei dem Schritt S301), beendet die Programmanalysiereinheit 2 die Verarbeitung. Der Schritt S105, der Schritt S106 und der Schritt S107 sind die gleichen wie die in 2 gezeigten Schritte. Bei einem Schritt S302 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl ein Schneidbefehl ist. Wenn der gelesene Befehl nicht der Schneidbefehl ist (Nein bei dem Schritt S302), schreitet die Programmanalysiereinheit 2 zu dem Schritt S109 fort. Wenn der gelesene Befehl der Schneidbefehl ist (Ja bei dem Schritt S302), beendet die Programmanalysiereinheit 2 die Verarbeitung. Der Schritt S109 und der Schritt S110 sind die gleichen wie die in 2 gezeigten Schritte.
-
7 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die von der Befehlsbestimmungseinheit 3 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Das Flussdiagramm der 7 ist grundsätzlich das gleiche wie das oben erläuterte Flussdiagramm der 3. Deswegen werden hauptsächlich Unterschiede zwischen diesen erläutert. Der Schritt S201 ist der gleiche wie der in 3 gezeigte Schritt. Bei einem Schritt S401 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl der Spindeldrehbefehl ist. Wenn der gelesene Befehl der Spindeldrehbefehl ist (Ja bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S402 fort. Wenn der gelesene Befehl nicht der Spindeldrehbefehl ist (Nein bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S404 fort. Bei dem Schritt S402 vergleicht die Befehlsbestimmungseinheit 3 die Spindel-Beschleunigungs- und -Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Wenn die Befehlsbestimmungseinheit 3 bestimmt, dass die Spindel-Beschleunigungs- und Verzögerungszeit T1 größer ist (Nein bei dem Schritt S402), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S203 fort. Wenn die Befehlsbestimmungseinheit 3 bestimmt, dass die Zeit T2 von dem Spindelsteuerbefehl größer ist (Ja bei dem Schritt S402), schreitet die Befehlsbestimmungseinheit 3 einem Schritt S403 fort. Bei dem Schritt S403 ändert die Befehlsbestimmungseinheit 3 eine Beschleunigungs- und Verzögerungszeitkonstante einer Spindel derart, dass die Spindel-Beschleunigungs- und -Verzögerungszeit gleich der Zeit T2 von dem Spindelsteuerbefehl ist und schreitet zu dem Schritt S203 fort. Der Schritt S203, der Schritt S204, der Schritt S205 und der Schritt S206 sind die gleichen wie die in 3 gezeigten Schritte. Bei einem Schritt S404 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl ein Schneidbefehl ist. Wenn der gelesene Befehl der Schneidbefehl ist (Ja bei dem Schritt S404), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S208 fort. Wenn der gelesene Befehl nicht der Schneidbefehl ist (Nein bei dem Schritt S404), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209 fort. Der Schritt S208 und der Schritt S209 sind die gleichen wie die in 3 gezeigten Schritte.
-
Ein Verarbeitungsfluss bei der numerischen Steuervorrichtung 1 wird gemäß der Flussdiagramme der 6 und der 7 unter Verwendung eines Bearbeitungsprogrammbeispiels spezifisch erläutert. 8 ist ein Diagramm, das das Bearbeitungsprogrammbeispiel veranschaulicht, das durch die numerische Steuervorrichtung 1 in der Ausführungsform verarbeitet wird. Zunächst bestätigt die Programmanalysiereinheit 2 bei dem Schritt S101, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N201. Da der Block von N201 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S301), beendet die Programmanalysiereinheit die Verarbeitung. In diesem Fall wird ein Befehl von N201 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N201, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N201 der Werkzeugersetzbefehl ist (Nein bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S404: Nein, und dem Schritt S209 fort, gibt den Werkzeugersetzbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Werkzeugersetzbefehls von N201 bei dem Schritt S101 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N202. Da der Block von N202 ein Positionierbefehl ist (Nein bei dem Schritt S301), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall wird ein Befehl von N202 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N202, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N202 der Positionierbefehl ist (Nein bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S404: Nein, und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Der nächste Block von N203 ist auch der Positionierbefehl. Deswegen führen die Programmanalysiereinheit 2 und die Befehlsbestimmungseinheit 3 eine Verarbeitung durch, welche die gleiche ist wie die Verarbeitung für den Block von N202.
-
Wenn die Ausführung des Positionierbefehls von N203 bei dem Schritt S101 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S101). Bei dem Schritt S102 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und die Zeit T2 von dem Spindelsteuerbefehl auf 0. Bei dem Schritt S103 liest die Programmanalysiereinheit 2 einen Block von N204. Da der Block von N204 ein Spindeldrehbefehl ist (Ja bei dem Schritt S301), schreitet die Programmanalysiereinheit 2 zu dem Schritt S105 fort, berechnet die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und schreitet zu dem Schritt S106 fort. Bei dem Schritt 106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N205, welches der nächste Block ist. Da der Block von N205 ein Positionierbefehl ist (Nein bei dem Schritt S302), schreitet die Programmanalysiereinheit 2 zu dem Schritt S109 fort und berechnet eine Ausführungszeit des Blocks von N205. Bei dem Schritt S110 aktualisiert die Programmanalysiereinheit 2 die Zeit T2 von dem Spindelsteuerbefehl und kehrt zu dem Schritt S106 zurück.
-
Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N206, welches der nächste Block ist. Da der Block von N206 auch der Positionierbefehl ist, verarbeitet die Programmanalysiereinheit 2 den Block von N206 auf die gleiche Weise wie den Block von N205. Da ein Block von N207 auch der Positionierbefehl ist, verarbeitet die Programmanalysiereinheit 2 den Block auf die gleiche Weise.
-
Bei dem Schritt S106 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S106). Bei dem Schritt S107 liest die Programmanalysiereinheit 2 einen Block von N208, welches der nächste Block ist. Da der Block von N208 ein Schneidbefehl ist (Ja bei dem Schritt S302), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall werden Befehle von N204, N205, N206, N207 und N208 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N204, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N204 ein Spindeldrehbefehl ist (Ja bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S402 fort. Bei dem Schritt S402 vergleicht die Befehlsbestimmungseinheit 3 die Spindel-Beschleunigungs- und Verzögerungszeit T1 mit der Zeit T2 von dem Spindelsteuerbefehl. Wenn die Befehlsbestimmungseinheit 3 bestimmt, dass die Zeit T2 von dem Spindelsteuerbefehl größer ist (Ja bei dem Schritt S402), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt 403 fort. Bei dem Schritt 403 ändert die Befehlsbestimmungseinheit die Beschleunigungs- und Verzögerungszeitkonstante der Spindel, schreitet zu dem Schritt S203 und dem Schritt S204 fort, gibt einen Spindeldrehbefehl aus und löscht den Spindeldrehbefehl aus dem Read-ahead-Puffer 7. Bei dem Schritt S205 bestätigt die Befehlsbestimmungseinheit 3, dass der nächste Befehl in dem Read-ahead-Puffer 7 vorhanden ist (Ja bei dem Schritt S205). Bei dem Schritt S206 liest die Befehlsbestimmungseinheit 3 den Befehl von N205. Da der Befehl von N205 ein Positionierbefehl ist (Nein bei dem Schritt S404), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N205 bei dem Schritt S101 beendet ist, beendet die Programmanalysiereinheit 2, da ein Befehl noch immer in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S101), die Verarbeitung.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N206, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N206 ein Positionierbefehl ist (Nein bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S404: Nein, und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung. Der Block von N207 wird auf die gleiche Weise wie der Block von N206 verarbeitet.
-
Wenn die Ausführung des Positionierbefehls von N207 beendet ist, ist immer noch ein Befehl in dem Read-ahead-Puffer 7 bei dem Schritt S101 gespeichert (Ja bei dem Schritt S101), so dass die Programmanalysiereinheit die Verarbeitung beendet.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N208, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N208 ein Schneidbefehl ist (Nein bei dem Schritt S401), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S404: Ja, dem Schritt S208: Ja, und dem Schritt S209, bestätigt, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit ist, gibt den Schneidbefehl aus und beendet die Verarbeitung.
-
9 ist ein Zeitdiagramm für das in 8 gezeigte Bearbeitungsprogrammbeispiel. 9(1) zeigt die herkömmliche Ausführung. 9(2) zeigt die Ausführung in der Ausführungsform. Bei der herkömmlichen Ausführung wird die tatsächliche Spindeldrehgeschwindigkeit 14 auf die angeforderte Drehgeschwindigkeit in der Zeit (T2) von dem Spindeldrehbefehl zu dem Schneidbefehl geändert. Daher wird, wenn die Spindel-Beschleunigungs- und -Verzögerungszeit (T1) sehr kurz, verglichen mit der Zeit (T2), von dem Spindeldrehbefehl zu dem Schneidbefehl ist, Energie durch einen nutzlosen Beschleunigungsbetrieb verschwendet. In der Ausführungsform wird, wenn die Zeit (T2) von dem Spindeldrehbefehl zu dem Schneidbefehl länger als die Spindel-Beschleunigungs- und -Verzögerungszeit (T1) ist, die Spindel-Beschleunigungs- und -Verzögerungszeit (T1) zur Anpassung an den Schneidbefehl erhöht. Aufgrund dieser Konfiguration ist es möglich, den Energieverbrauch zu verringern, ohne die Bearbeitungszeit zu ändern.
-
Wie obenstehend erläutert, wird gemäß der Ausführungsform in der numerischen Steuervorrichtung 1, wenn eine Toleranz in der Zeit vorhanden ist, die notwendig ist, bis die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, die Spindel-Beschleunigungs- und -Verzögerungszeit erhöht. Folglich ist es, zusätzlich zu dem Wirkungen in der ersten Ausführungsform möglich, den Energieverbrauch zu verringern.
-
Dritte Ausführungsform
-
10 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch die Programmanalysiereinheit 2 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Bei dem Schritt S501 bestimmt die Programmanalysiereinheit 2, ob ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist. Wenn ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S105), beendet die Programmanalysiereinheit 2 die Verarbeitung. Wenn ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S501, schreitet die Programmanalysiereinheit 2 zu einem Schritt S502 fort. Bei dem Schritt S502 liest die Programmanalysiereinheit 2 das Bearbeitungsprogramm 6 und schreitet zu einem Schritt S503 fort. Bei dem Schritt S503 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl der Spindelsteuerbefehl 12 ist. Wenn der gelesene Befehl der Spindelsteuerbefehl 12 ist (Ja bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S504 fort. Wenn der gelesene Befehl nicht der Spindelsteuerbefehl 12 ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu einem Schritt S505 fort. Bei einem Schritt S504 speichert die Programmanalysiereinheit 2 den Spindelsteuerbefehl 12 an dem Kopf des Read-ahead-Puffers 7. Bei dem Schritt S505 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Befehl ein Befehl ist, für welchen ein Problem nicht auftritt (Nein bei dem Schritt S505), schreitet die Programmanalysiereinheit 2 zu einem Schritt S506 fort. Wenn der gelesene Befehl der Befehl ist, für welchen ein Problem auftritt (Ja bei dem Schritt 505), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei dem Schritt S506 bestimmt die Programmanalysiereinheit 2, ob der nächste Block vorhanden ist. Wenn der nächste Block vorhanden ist (Ja bei dem Schritt S506), schreitet die Programmanalysiereinheit 2 zu einem Schritt S507 fort. Wenn der nächste Block nicht vorhanden ist (Nein bei dem Schritt S506), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei einem Schritt S507 liest die Programmanalysiereinheit 2 den nächsten Block und kehrt zu dem Schritt S503 zurück. Informationen, die die Blöcke betreffen, die von der Programmanalysiereinheit 2 gelesen werden, werden sequentiell in dem Read-ahead-Puffer 7 gespeichert.
-
Es sei darauf hingewiesen, dass ein Flussdiagramm zum Erläutern einer Verarbeitungsprozedur, die von der Befehlsbestimmungseinheit 3 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird, das gleiche ist wie das Flussdiagramm für die erste Ausführungsform (siehe 3).
-
Ein Verarbeitungsfluss in der numerischen Steuervorrichtung 1 wird spezifisch unter Verwendung eines Bearbeitungsprogramms (siehe 4) in der ersten Ausführungsform gemäß den Flussdiagrammen der 10 und der 3 erläutert. Zunächst bestätigt die Programmanalysiereinheit 2 bei dem Schritt S501, dass ein Befehl nicht in dem Read-ahead-Puffer 7 gespeichert ist (Nein bei dem Schritt S501). Bei dem Schritt S502 liest die Programmanalysiereinheit 2 einen Block von N101. Da der Block von N101 ein Schneidbefehl ist (Nein bei dem Schritt S503), beendet die Programmanalysiereinheit 2 die Verarbeitung. In diesem Fall wird ein Befehl von N101 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N101, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N101 der Schneidbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, dem Schritt S208: Ja, und dem Schritt S209 fort, gibt den Schneidbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Schneidbefehls von N101 bei dem Schritt S501 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S501). Bei dem Schritt S502 liest die Programmanalysiereinheit 2 einen Block von N102. Da der Block von N102 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S506). Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N103, welches der nächste Block ist. Da der Block von N103 ein Spindelstoppbefehl ist (Ja bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S504 fort, fügt den Spindelstoppbefehl in den Kopf des Read-ahead-Puffers 7 ein und beendet die Verarbeitung. In diesem Fall werden Befehle in dem Read-ahead-Puffer 7 in der Reihenfolge von N103 und N102 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N103, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N103 ein Spindelstoppbefehl ist (Ja bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S203 und dem Schritt S204 fort, gibt den Spindelstoppbefehl aus und löscht den Spindelstoppbefehl aus dem Read-ahead-Puffer 7. Bei dem Schritt S205 bestätigt die Befehlsbestimmungseinheit 3, dass der nächste Befehl in dem Read-ahead-Puffer 7 vorhanden ist (Ja bei dem Schritt S205). Bei dem Schritt S206 liest die Befehlsbestimmungseinheit 3 den Befehl von N102. Da der Befehl von N102 ein Positionierbefehl ist (Nein bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N102 bei dem Schritt S501 beendet ist, bestätigt die Programmanalysiereinheit 2, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S501). Bei dem Schritt S501 liest die Programmanalysiereinheit 2 einen Block von N104. Da der Block von N104 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S506). Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N105, welches der nächste Block ist. Da der Block von N105 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Ja, fort und beendet die Verarbeitung. In diesem Fall werden Befehle von N104 und N105 in dem Read-ahead-Puffer 7 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N104, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N104 ein Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein, und dem Schritt S209 fort, gibt einen Positionierbefehl aus und beendet die Verarbeitung. Wenn die Ausführung des Positionierbefehls von N102 bei dem Schritt S201 beendet ist, liest die Befehlsbestimmungseinheit 3 den Befehl von N105, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N105 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, dem Schritt S208: Ja, und dem Schritt S209 fort, wartet darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht, d. h. eine Geschwindigkeit von Null, gibt den Werkzeugersetzbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Werkzeugersetzbefehls von N105 beendet ist, bestätigt die Programmanalysiereinheit 2 bei dem Schritt S501, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S501). Bei dem Schritt S502 liest die Programmanalysiereinheit 2 einen Block von N106. Da der Block von N106 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S506). Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N107, welches der nächste Block ist. Da der Block von N107 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist. Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N108, welches der nächste Block ist. Da der Block von N108 ein Spindeldrehbefehl ist, schreitet die Programmanalysiereinheit 2 zu dem Schritt S503 (Ja bei dem Schritt S503) und dem Schritt S504 fort, fügt den Spindeldrehbefehl in den Kopf des Read-ahead-Puffers 7 ein und beendet die Verarbeitung. In diesem Fall werden in dem Read-ahead-Puffer 7 Befehle in der Reihenfolge von N108, N106 und N107 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N108, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N108 ein Spindeldrehbefehl ist (Ja bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S203 und dem Schritt S204 fort, gibt den Spindeldrehbefehl aus und löscht den Spindeldrehbefehl aus dem Read-ahead-Puffer 7. Bei dem Schritt S205 bestätigt die Befehlsbestimmungseinheit 3, dass der nächste Befehl in dem Read-ahead-Puffer 7 vorhanden ist (Ja bei dem Schritt S205). Bei dem Schritt S206 liest die Befehlsbestimmungseinheit 3 den Befehl von N106. Da der Befehl von N106 ein Positionierbefehl ist (Nein bei dem Schritt S207), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung. Wenn die Ausführung des Positionierbefehls von N106 beendet ist, liest die Befehlsbestimmungseinheit 3 bei dem Schritt S201 den Befehl von N107, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N107 ein Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein, und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung.
-
Wenn die Ausführung des Positionierbefehls von N107 beendet ist, bestätigt die Programmanalysiereinheit 2 den Schritt S501 (Nein bei dem Schritt S501), dass ein Befehl in dem Read-ahead-Puffer nicht gespeichert ist. Bei dem Schritt S502 liest die Programmanalysiereinheit 2 einen Block von N109. Da der Block von N109 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S506). Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N110, welches der nächste Block ist. Da der Block von N110 ein Positionierbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Nein, fort. Bei dem Schritt S506 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S506). Bei dem Schritt S507 liest die Programmanalysiereinheit 2 einen Block von N111, welches der nächste Block ist. Da der Block von N111 ein Schneidbefehl ist (Nein bei dem Schritt S503), schreitet die Programmanalysiereinheit 2 zu dem Schritt S505: Ja, fort und beendet die Verarbeitung. In diesem Fall werden in dem Read-ahead-Puffer 7 Befehle von N109, N110 und N111 gespeichert.
-
Bei dem Schritt S201 liest die Befehlsbestimmungseinheit 3 den Befehl von N109, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N109 ein Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein, und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung. Wenn die Ausführung des Positionierbefehls N109 beendet ist, liest die Befehlsbestimmungseinheit 3 bei dem Schritt S201 den Befehl von N111, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N111 ein Positionierbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Nein, und dem Schritt S209 fort, gibt den Positionierbefehl aus und beendet die Verarbeitung. Wenn die Ausführung des Positionierbefehls von N111 beendet ist, liest die Befehlsbestimmungseinheit 3 bei dem Schritt S201 den Befehl von N111, der in dem Read-ahead-Puffer 7 gespeichert ist. Da der Befehl von N111 ein Schneidbefehl ist (Nein bei dem Schritt S202), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S207: Ja, dem Schritt S208: Ja, und dem Schritt S209 fort, wartet darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht, gibt den Schneidbefehl aus und beendet die Verarbeitung.
-
11 ist ein Zeitdiagramm für das in 4 gezeigte Bearbeitungsprogrammbeispiel. 11(1) veranschaulicht die herkömmliche Ausführung. 11(2) veranschaulicht eine Ausführung in der Ausführungsform. Bei der herkömmlichen Ausführung wird gemäß einer Rangliste bestimmt, ob die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, und die Ausführung schreitet zu dem nächsten Block. Wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht und die Ausführung zu dem nächsten Block schreitet, wie in 11(1) gezeigt, werden die Positionierbefehle von N104 und N109 ausgeführt, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Andererseits werden bei der Ausführung in der Ausführungsform, wie in 11(2) gezeigt, die Positionierbefehle von N104 und N109 ausgeführt, ohne von der Rangliste abzuhängen, auch wenn die Spindeldrehgeschwindigkeit nicht die angeforderte Drehgeschwindigkeit erreicht. Der Werkzeugersetzbefehl von N105 und der Schneidbefehl von N111 werden ausgeführt, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Deswegen ist es möglich, eine Bearbeitungszeit zu verringern, auch wenn eine komplizierte Rangfolge nicht ausgeführt wird. Ferner wird der Spindelstoppbefehl von N103 ausgegeben, wenn der Schneidbefehl in N101 beendet ist. Deswegen ist es möglich, eine Wartezeit, bis der Werkzeugersetzbefehl von N105 ausgeführt wird, zu verringern.
-
Es sei darauf hingewiesen, dass als ein anderer Befehl als der Werkzeugersetzbefehl und der Schneidbefehl ein Befehl vor dem Spindelsteuerbefehl auch als ein Erstausgabe-Verhinderungsbefehl im Voraus gesetzt werden kann. In diesem Fall bestimmt die Befehlsbestimmungseinheit 3, ob ein Befehl vor dem Spindelsteuerbefehl ein Befehl ist, der als ein Erstausgabe-Verhinderungsbefehl im Voraus gesetzt ist. Wenn der Befehl vor dem Spindelsteuerbefehl ein anderer als der Erstausgabe-Verhinderungsbefehl ist, gibt die Befehlsbestimmungseinheit 3 den Spindelsteuerbefehl früher als eine Zeitgebung aus, die durch das Bearbeitungsprogramm 6 vorgegeben ist.
-
Wie obenstehend erläutert, wird gemäß der Ausführungsform in der numerischen Steuervorrichtung 1 in dem Fall eines anderen Befehls als der Befehl, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert, der Spindelsteuerbefehl früher als die Zeitgebung ausgegeben, die durch das Bearbeitungsprogramm vorgegeben ist. Folglich ist es möglich, eine Bearbeitungszeit zu verringern, ohne eine komplizierte Rangliste auszuführen, und ohne eine Bearbeitung und eine Maschine zu beeinträchtigen.
-
Vierte Ausführungsform
-
12 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch die Programmanalysiereinheit 2 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Bei einem Schritt S601 bestimmt die Programmanalysiereinheit 2, ob ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist. Wenn ein Befehl in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S601), beendet die Programmanalysiereinheit 2 die Verarbeitung. Wenn ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S601), schreitet die Programmanalysiereinheit 2 zu einem Schritt S602 fort. Bei dem Schritt S602 löscht die Programmanalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1, die Zeit T2 von dem Spindelsteuerbefehl, eine Zeit T3 zu dem Spindelsteuerbefehl und eine Spindelsteuerbefehls-Ausgabezeitgebung Ts auf 0, setzt ein Spindelsteuerbefehls-Flag auf AUS und schreitet zu einem Schritt S603 fort. Bei dem Schritt S603 liest die Programmanalysiereinheit 2 das Bearbeitungsprogramm 6 und schreitet zu einem Schritt S604 fort. Bei dem Schritt S604 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl der Spindeldrehbefehl ist. Wenn der gelesene Befehl nicht der Spindeldrehbefehl ist (Nein bei dem Schritt S604), schreitet die Programmanalysiereinheit 2 zu einem Schritt S605 fort. Wenn der gelesene Befehl der Spindeldrehbefehl ist (Ja bei dem Schritt S604), schreitet die Programmanalysiereinheit 2 zu einem Schritt S610 fort. Bei dem Schritt S605 bestimmt die Programmanalysiereinheit 2, ob der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Befehl der Befehl ist, für welchen ein Problem auftritt (Ja bei dem Schritt S605), beendet die Programmanalysiereinheit 2 die Verarbeitung. Wenn der gelesene Befehl nicht der Befehl ist, für welchen ein Problem auftritt (Nein bei dem Schritt S605), schreitet die Programmanalysiereinheit 2 zu einem Schritt S606 fort. Bei dem Schritt S606 berechnet die Programmanalysiereinheit 2 eine Ausführungszeit des gelesenen Befehls und schreitet zu einem Schritt S607 fort. Bei dem Schritt S607 akkumuliert die Programmanalysiereinheit 2 Ausführungszeiten, die bei dem Schritt S606 berechnet sind, um die Zeit T3 zu dem Spindelsteuerbefehl zu berechnen, und schreitet zu einem Schritt S608 fort. Bei dem Schritt S608 bestimmt die Programmanalysiereinheit 2, ob der nächste Block vorhanden ist. Wenn der nächste Block vorhanden ist (Ja bei dem Schritt S608), schreitet die Programmanalysiereinheit 2 zu dem Schritt S609 fort. Wenn der nächste Block nicht vorhanden ist (Nein bei dem Schritt S608), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei dem Schritt S609 liest die Programmanalysiereinheit 2 den nächsten Block und kehrt zu dem Schritt S604 zurück.
-
Bei einem Schritt S610 setzt die Programmanalysiereinheit 2 das Spindelsteuerbefehls-Flag auf EIN, berechnet die Spindel-Beschleunigungs- und -Verzögerungszeit T1 und schreitet zu einem Schritt S611 fort. Bei dem Schritt S611 bestimmt die Programmanalysiereinheit 2, ob der nächste Block vorhanden ist. Wenn der nächste Block vorhanden ist (Ja bei dem Schritt S611), schreitet die Programmanalysiereinheit zu einem Schritt S612 fort. Wenn der nächste Block nicht vorhanden ist (Nein bei dem Schritt S611), beendet die Programmanalysiereinheit 2 die Verarbeitung. Bei dem Schritt S612 liest die Programmanalysiereinheit 2 den nächsten Block und schreitet zu einem Schritt S613 fort. Bei dem Schritt S613 bestimmt die Programmanalysiereinheit 2, dass der gelesene Block ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Block der Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert (Ja bei dem Schritt S613), schreitet die Programmanalysiereinheit 2 zu einem Schritt S616 fort. Wenn der gelesene Block nicht der Befehl ist, für welchen ein Problem auftritt (Nein bei dem Schritt S613), schreitet die Programmanalysiereinheit 2 zu einem Schritt S614 fort. Bei dem Schritt S614 berechnet die Programmanalysiereinheit 2 eine Ausführungszeit des gelesenen Befehls und schreitet zu einem Schritt S615 fort. Bei dem Schritt S615 akkumuliert die Programmanalysiereinheit 2 Ausführungszeiten, die in dem Schritt S614 berechnet sind, um die Zeit T2 von dem Spindelsteuerbefehl zu berechnen, und kehrt zu dem Schritt S611 zurück. Bei dem Schritt S616 berechnet die Programmanalysiereinheit 2 eine Spindelsteuerbefehls-Ausgabezeitgebung Ts von der Spindel-Beschleunigungs- und -Verzögerungszeit T1, die Zeit T2 von dem Spindelsteuerbefehl und die Zeit T3 zu dem Spindelsteuerbefehl (Ts = T3 – (T1 – T2)) und beendet die Verarbeitung. Informationen betreffend die Blöcke, die von der Programmanalysiereinheit 2 gelesen werden, und die Ausführungszeiten, die durch die Programmanalysiereinheit 2 berechnet werden, werden sequentiell in dem Read-ahead-Puffer 7 gespeichert.
-
13 ist ein Flussdiagramm, das eine Verarbeitungsprozedur veranschaulicht, die durch die Befehlsbestimmungseinheit 3 der numerischen Steuervorrichtung 1 gemäß der Ausführungsform ausgeführt wird. Die Befehlsbestimmungseinheit 3 führt sequentiell eine Verarbeitung auf der Grundlage der Informationen durch, die die Befehle betreffen, die durch die Programmanalysiereinheit 2 analysiert sind und in den Read-ahead-Puffer 7 gespeichert sind. Bei einem Schritt S701 bestimmt die Befehlsbestimmungseinheit 3, ob das Spindelsteuerbefehls-Flag EIN ist. Wenn das Spindelsteuerbefehls-Flag EIN ist (Ja bei dem Schritt S701), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S702 fort. Wenn das Spindelsteuerbefehls-Flag AUS ist (Nein bei dem Schritt S701), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S712 fort. Bei dem Schritt S702 liest die Befehlsbestimmungseinheit 3 einen Befehl von dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S703 fort. Bei dem Schritt S703 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl ein Spindeldrehbefehl ist. Wenn der gelesene Befehl der Spindeldrehbefehl ist (Ja bei dem Schritt S703), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S704 fort. Wenn der gelesene Befehl nicht der Spindeldrehbefehl ist (Nein bei dem Schritt S703), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S713 fort. Bei dem Schritt S704 gibt die Befehlsbestimmungseinheit 3 den Spindeldrehbefehl aus und schreitet zu einem Schritt S705 fort. Bei dem Schritt S705 löscht die Befehlsbestimmungseinheit 3 den Spindeldrehbefehl von dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S706 fort. Bei dem Schritt S706 setzt die Befehlsbestimmungseinheit 3 das Spindelsteuerbefehls-Flag auf AUS und schreitet zu einem Schritt S707 fort. Bei dem Schritt S707 bestimmt die Befehlsbestimmungseinheit 3, ob der nächste Befehl in dem Read-ahead-Puffer 7 gespeichert ist. Wenn der nächste Befehl in dem Read-ahead-Puffer 7 gespeichert ist (Ja bei dem Schritt S707), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S708 fort. Wenn der nächste Befehl nicht in dem Read-ahead-Puffer 7 gespeichert ist (Nein bei dem Schritt S707), beendet die Befehlsbestimmungseinheit 3 die Verarbeitung. Bei dem Schritt S708 liest die Befehlsbestimmungseinheit 3 den nächsten Befehl von dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S709 fort. Bei dem Schritt S709 bestimmt die Befehlsbestimmungseinheit 3, ob der gelesene Befehl ein Befehl ist, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Wenn der gelesene Befehl der Befehl ist, für welchen ein Problem auftritt (Ja bei dem Schritt S709), schreitet die Befehlsbestimmungseinheit zu einem Schritt S710 fort. Wenn der gelesene Befehl ein Befehl ist, für welchen ein Problem nicht auftritt (Nein bei dem Schritt S709), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S711 fort. Bei dem Schritt S710 bestimmt die Befehlsbestimmungseinheit 3, ob die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht. Wenn die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit nicht erreicht (Nein bei dem Schritt S710), wartet die Befehlsbestimmungseinheit 3 darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht (Ja bei dem Schritt S710), und schreitet zu dem Schritt S711 fort. Bei dem Schritt S711 gibt die Befehlsbestimmungseinheit 3 den gelesenen Befehl aus und beendet die Verarbeitung. Bei einem Schritt S712 liest die Befehlsbestimmungseinheit 3 einen Befehl von dem Read-ahead-Puffer 7 und schreitet zu dem Schritt S709 fort.
-
Dann gibt die Befehlsbestimmungseinheit 3 bei einem Schritt S713 den gelesenen Befehl aus und schreitet zu einem Schritt S714 fort. Bei dem Schritt S714 subtrahiert die Befehlsbestimmungseinheit 3 eine Ausführungszeit des gelesenen Befehls von der Spindelsteuerbefehls-Ausgabezeitgebung Ts und schreitet zu einem Schritt S715 fort. Bei dem Schritt S715 überprüft die Befehlsbestimmungseinheit 3, ob die Spindelsteuerbefehls-Ausgabezeitgebung Ts gleich oder kleiner als 0 ist. Wenn die Spindelsteuerbefehls-Ausgabezeitgebung Ts gleich oder kleiner als 0 ist (ja bei dem Schritt S715), schreitet die Befehlsbestimmungseinheit 3 zu einem Schritt S716 fort. Wenn die Spindelsteuerbefehls-Ausgabezeitgebung Ts nicht gleich oder kleiner als 0 ist (Nein bei dem Schritt S715), beendet die Befehlsbestimmungseinheit 3 die Verarbeitung. Bei dem Schritt S716 gibt die Befehlsbestimmungseinheit 3 den Spindeldrehbefehl aus und schreitet zu einem Schritt S717 fort. Bei dem Schritt S717 löscht die Befehlsbestimmungseinheit 3 den Spindeldrehbefehl von dem Read-ahead-Puffer 7 und schreitet zu einem Schritt S718 fort. Bei dem Schritt S718 setzt die Befehlsbestimmungseinheit 3 das Spindelsteuerbefehls-Flag auf AUS und beendet die Verarbeitung.
-
Spezifisch wird unter Verwendung eines Bearbeitungsprogrammbeispiels ein Verarbeitungsfluss in der numerischen Steuervorrichtung 1 gemäß der Flussdiagramme gemäß der 12 und der 13 erläutert. 14 ist ein Diagramm, das das Bearbeitungsprogrammbeispiel veranschaulicht, das von der numerischen Steuervorrichtung 1 in der Ausführungsform verarbeitet wird. Zunächst bestätigt die Programmanalysiereinheit 2 bei dem Schritt S601, dass ein Befehl in dem Read-ahead-Puffer 7 nicht gespeichert ist (Nein bei dem Schritt S601). Bei dem Schritt S602 löscht die Programmieranalysiereinheit 2 und setzt die Spindel-Beschleunigungs- und -Verzögerungszeit T1, die Zeit T2 von dem Spindelsteuerbefehl, die Zeit T3 zu dem Spindelsteuerbefehl und die Spindelsteuerbefehls-Ausgabezeitgebung Ts auf 0 und setzt das Spindelsteuerbefehls-Flag auf AUS. Bei dem Schritt S603 liest die Programmanalysiereinheit 2 einen Block von N301. Da der Block von N301 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S604), schreitet die Programmanalysiereinheit 2 zu dem Schritt S605: Nein, und dem Schritt S606 fort und berechnet eine Blockausführungszeit. Bei dem Schritt S607 berechnet die Programmanalysiereinheit 2 die Zeit T3 zu dem Spindelsteuerbefehl. Bei dem Schritt S608 bestätigt die Programmanalysiereinheit 2, dass der nächste Block vorhanden ist (Ja bei dem Schritt S608). Bei dem Schritt S609 liest die Programmanalysiereinheit 2 einen Block von N302.
-
Da der Block von N302 ein Positionierbefehl ist (Nein bei dem Schritt S604), wie in dem Fall des Blocks von N301, schreitet die Programmanalysiereinheit 2 zu dem Schritt S605: Nein, dem Schritt S606 und dem Schritt S607 fort, berechnet eine Blockausführungszeit des Blocks von N302 und aktualisiert die Zeit T3 zu dem Spindelsteuerbefehl. Die Programmanalysiereinheit 2 schreitet zu dem Schritt S608: Ja, und dem Schritt S609 fort und liest einen Block von N303.
-
Da der Block von N303 auch der Positionierbefehl ist (Nein bei dem Schritt S604), wie in dem Fall des Blocks von N302, schreitet die Programmanalysiereinheit 2 zu dem Schritt S605: Nein, dem Schritt S606 und dem Schritt S607 fort, berechnet eine Blockausführungszeit des Blocks von N303 und aktualisiert die Zeit T3 zu dem Spindelsteuerbefehl. Die Programmanalysiereinheit 2 schreitet zu dem Schritt S608: Ja, und dem Schritt S609 fort und liest einen Block von N304.
-
Da der Block von N304 ein Spindeldrehbefehl ist (Ja bei dem Schritt S604), schreitet die Programmanalysiereinheit 2 zu dem Schritt S610 fort, setzt das Spindelsteuerbefehls-Flag und berechnet die Spindel-Beschleunigungs- und -Verzögerungszeit T1. Die Programmanalysiereinheit 2 schreitet zu dem Schritt S611: Ja, und dem Schritt S612 fort und liest einen Block von N305. Da der Block von N305 ein Positionierbefehl ist (Nein bei dem Schritt S613), schreitet die Programmanalysiereinheit 2 zu dem Schritt S614 fort und berechnet eine Blockausführungszeit. Bei dem Schritt S615 berechnet die Programmanalysiereinheit 2 die Zeit T2 von dem Spindelsteuerbefehl.
-
Die Programmanalysiereinheit 2 kehrt zu dem Schritt S611 zurück, schreitet zu dem Schritt S611: Ja, und dem Schritt S612 fort und liest einen Block von N306. Da der Block von N306 auch der Positionierbefehl ist (Nein bei dem Schritt S613), wie in dem Fall des Blocks von N305, schreitet die Programmanalysiereinheit 2 zu dem Schritt S614 fort und berechnet eine Blockausführungszeit. Bei dem Schritt S615 berechnet die Programmanalysiereinheit 2 die Zeit T2 von dem Spindelsteuerbefehl.
-
Die Programmanalysiereinheit 2 kehrt zu dem Schritt S611 zurück, schreitet zu dem Schritt S611: Ja, und dem Schritt S612 fort und liest einen Block von N307. Da der Block von N307 ein Schneidbefehl ist (Ja bei dem Schritt S613), schreitet die Programmanalysiereinheit 2 zu dem Schritt S616 fort, berechnet die Spindelsteuerbefehls-Ausgabezeitgebung Ts und beendet die Verarbeitung. In diesem Fall werden Befehle N301 bis N307 in dem Read-ahead-Puffer 7 gespeichert. Blockausführungszeiten werden auch bezüglich der Blöcke N301 bis N303, N305 und N306 gespeichert.
-
Die Befehlsbestimmungseinheit 3 verarbeitet die Befehle von N301 bis N307, die in dem Read-ahead-Puffer 7 gespeichert sind, sequentiell. Zunächst überprüft die Befehlsbestimmungseinheit 3 bei dem Schritt S701, ob das Spindelsteuerbefehls-Flag EIN ist. Da das Spindelsteuerbefehls-Flag EIN ist (Ja bei dem Schritt S701), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S702 fort. Bei dem Schritt S702 liest die Befehlsbestimmungseinheit 3 den Befehl von N301. Da der Befehl von N301 ein Werkzeugersetzbefehl ist (Nein bei dem Schritt S703), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S713 fort und gibt einen Befehl aus. Bei dem Schritt S714 subtrahiert die Befehlsbestimmungseinheit 3 die Blockausführungszeit von N301 von der Spindelsteuerbefehls-Ausgabezeitgebung Ts. Bei dem Schritt S715 bestimmt die Befehlsbestimmungseinheit 3, ob die Spindelsteuerbefehls-Ausgabezeitgebung Ts gleich oder kleiner als 0 ist. Die Befehlsbestimmungseinheit 3 bestimmt, dass die Spindelsteuerbefehls-Ausgabezeitgebung Ts nicht kleiner oder kleiner als 0 bei dem gegenwärtigen Punkt ist (Nein bei dem Schritt S715) und beendet die Verarbeitung.
-
Wenn der Befehl von N301 beendet ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S701: Ja, und dem Schritt S702 fort und liest den Befehl von N302. Da N302 ein Positionierbefehl ist (Nein bei dem Schritt S703), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S713 fort und gibt einen Befehl aus. Bei dem Schritt S714 subtrahiert die Befehlsbestimmungseinheit 3 die Blockausführungszeit von N302 von der Spindelsteuerbefehls-Ausgabezeitgebung Ts. Bei dem Schritt S715 bestimmt die Befehlsbestimmungseinheit 3, dass die Spindelsteuerbefehls-Ausgabezeitgebung Ts nicht gleich oder kleiner als 0 zu dem gegebenen Punkt ist (Nein bei dem Schritt S715) und beendet die Verarbeitung.
-
Wenn der Befehl von N302 beendet ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S701: Ja, und dem Schritt S702 fort und liest den Befehl von N303. Da N303 ein Positionierbefehl ist (Nein bei dem Schritt S703), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S713 fort und gibt einen Befehl aus. Bei dem Schritt S714 subtrahiert die Befehlsbestimmungseinheit 3 die Blockausführungszeitgebung von N303 von der Spindelsteuerbefehls-Ausgabezeitgebung Ts. Bei dem Schritt S715 bestimmt die Befehlsbestimmungseinheit 3, dass die Spindelsteuer-Befehlsausgabezeitgebung Ts gleich oder kleiner als 0 bei dem gegenwärtigen Punkt ist (Ja bei dem Schritt S715), schreitet zu dem Schritt S716 fort, gibt den Spindeldrehbefehl (N304) aus, schreitet zu dem Schritt S717 fort, löscht den Spindeldrehbefehl (N304) von dem Read-ahead-Puffer 7, schreitet zu dem Schritt S718 fort, setzt das Spindelsteuerbefehls-Flag auf AUS und beendet die Verarbeitung.
-
Wenn der Befehl N303 beendet ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S701: Nein, und dem Schritt S712 fort und liest den Befehl von N305. Da der Befehl von N305 ein Positionierbefehl ist (Nein bei dem Schritt S709), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S711 fort, gibt einen Befehl aus und beendet die Verarbeitung.
-
Wenn der Befehl von N305 beendet ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S701: Nein, und dem Schritt S712 fort und liest den Befehl von N306. Da der Befehl von N306 ein Positionierbefehl ist (Nein bei dem Schritt S709), schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S711 fort, gibt einen Befehl aus und beendet die Verarbeitung.
-
Wenn der Befehl von N306 beendet ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S701: Nein, und dem Schritt S712 fort und liest den Befehl von N307. Da der Befehl von N307 ein Schneidbefehl ist, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt S709: Ja, und dem Schritt S710 fort und wartet darauf, dass die tatsächliche Spindeldrehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht. Wenn die tatsächliche Drehgeschwindigkeit 14 die angeforderte Drehgeschwindigkeit erreicht, schreitet die Befehlsbestimmungseinheit 3 zu dem Schritt 711 fort, gibt einen Befehl aus und beendet die Verarbeitung.
-
15 ist ein Zeitdiagramm für das in 14 gezeigte Bearbeitungsprogrammbeispiel. 15(1) zeigt eine herkömmliche Ausführung. 15(2) zeigt eine Ausführung in der Ausführungsform. Bei der herkömmlichen Ausführung wird gemäß einer Rangliste bestimmt, ob die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, und die Ausführung schreitet zu dem nächsten Block fort. Wenn konfiguriert ist, dass die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht und die Ausführung zu dem nächsten Block fortschreitet, wie in 15(1) gezeigt, werden die Positionierbefehle von N305 und N306 ausgeführt, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Der Spindeldrehbefehl von N304 wird auch ausgegeben, nachdem die Bewegung von N303 beendet ist. Andererseits werden bei der Ausführung in der Ausführungsform, wie in 15(2) gezeigt, die Positionierbefehle von N305 und N306 ausgeführt, ohne von der Rangliste abzuhängen, auch wenn die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit nicht erreicht. Es sei darauf hingewiesen, dass der Schneidbefehl von N307 ausgeführt wird, nachdem die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht. Deswegen ist es möglich, eine Bearbeitungszeit zu verringern, auch wenn eine komplizierte Rangliste nicht ausgeführt wird. Ferner wird der Spindeldrehbefehl von N304 derart ausgegeben, dass die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit gemäß der Zeitgebung erreicht, wenn der Schneidbefehl von N307 gestartet wird. Deswegen ist es möglich, eine Wartezeit, bis der Schneidbefehl von N307 ausgeführt wird, zu verringern.
-
Wie obenstehend erläutert, gibt gemäß der Ausführungsform die numerische Steuervorrichtung 1 den Spindelsteuerbefehl im Voraus aus und beseitigt eine Wartezeit, bis die Spindeldrehgeschwindigkeit die angeforderte Drehgeschwindigkeit erreicht, in dem Fall des Befehls, für welchen ein Problem auftritt, wenn sich die Spindeldrehgeschwindigkeit ändert. Folglich ist es möglich, eine Bearbeitungszeit zu verringern.
-
Es sei darauf hingewiesen, dass die numerische Steuervorrichtung 1 konfigurierbar ist, mit einer Anzeigeeinheit ausgestattet zu werden. Auf einem Schirm der Anzeigeeinheit können Informationen betreffend eine Änderung einer Zeitgebung, die durch das Bearbeitungsprogramm vorgegeben wird, zu dem Bediener ausgegeben werden. 16 ist ein Diagramm, das ein Beispiel eines Anzeigeschirms in der Anzeigeeinheit veranschaulicht, die in der numerischen Steuervorrichtung 1 bereitgestellt ist.
-
16(1) ist ein Diagramm eines Anzeigebeispiels eines Schirms einer herkömmlichen numerischen Steuervorrichtung. Auf einem Schirm 20 werden Positionsinformationen 21, wie etwa eine Maschinenposition, eine Modalinformation 22, wie etwa ein Zustand des Modals, Bearbeitungsinformationen 23, wie etwa eine Schneidgeschwindigkeit und eine Spindeldrehgeschwindigkeit, Bearbeitungsprogramminformationen 24 und dergleichen angezeigt. Wenn der Spindelsteuerbefehl 12 von einer Zeitgebung, die durch das Bearbeitungsprogramm vorbestimmt ist, zu ändern und auszugeben ist, wird die Änderung der Zeitgebung des Ausgangs dem Bediener von dem Schirm 20 mitgeteilt, um es zuzulassen, dass der Bediener die Änderung der Zeitgebung des Ausgangs erfährt.
-
16(2) ist ein Diagramm eines Anzeigebeispiels eines Schirms der numerischen Steuervorrichtung in der Ausführungsform. Es ist gezeigt, wie die Ausgabezeitgebung des Spindelsteuerbefehls geändert wird. Wenn der Spindelsteuerbefehl 12 von einer Zeitgebung, die durch das Bearbeitungsprogramm vorgegeben ist, geändert und ausgegeben wird, wird die Bearbeitungsprogramminformation 24 in zwei Teile geteilt. Das ursprüngliche Bearbeitungsprogramm wird auf einem der geteilten beiden Teile der Bearbeitungsprogramminformation 24 angezeigt. In diesem Fall wird der zu ändernde Spindelsteuerbefehl 12 dünner als die ursprüngliche Anzeige angezeigt. Auf dem anderen der geteilten Teile der Bearbeitungsprogramminformation 24 wird der zu ändernde Spindelsteuerbefehl 12 gemäß der Zeitgebung der Ausgabe angezeigt. Auf diese Weise wird die zu ändernde Zeitgebung aus dem Schirm ersichtlich. Folglich kann der Bediener auf den Betrieb einer Maschine zugreifen und kann ohne ungebührliche Beeinträchtigungen arbeiten.
-
Bezugszeichenliste
-
- 1
- numerische Steuervorrichtung
- 2
- Programmanalysiereinheit
- 3
- Befehlsbestimmungseinheit
- 4
- Interpolationseinheit
- 5
- Spindelsteuer-Befehlsausgabeeinheit
- 6
- Bearbeitungsprogramm
- 7
- Read-ahead-Puffer
- 8
- Servoverstärker
- 9
- Spindelverstärker
- 10
- Bewegungsbefehl
- 11
- Bewegungsbetrag
- 12
- Spindelsteuerbefehl
- 13
- Spindeldrehgeschwindigkeit
- 14
- Tatsächliche Spindeldrehgeschwindigkeit
- 20
- Schirm
- 21
- Positionsinformation
- 22
- Modalinformation
- 23
- Bearbeitungsinformation
- 24
- Bearbeitungsprogramminformation