DE112019007578B4 - Numerical control, numerical control method and machine learning device - Google Patents

Numerical control, numerical control method and machine learning device Download PDF

Info

Publication number
DE112019007578B4
DE112019007578B4 DE112019007578.0T DE112019007578T DE112019007578B4 DE 112019007578 B4 DE112019007578 B4 DE 112019007578B4 DE 112019007578 T DE112019007578 T DE 112019007578T DE 112019007578 B4 DE112019007578 B4 DE 112019007578B4
Authority
DE
Germany
Prior art keywords
oscillation
axis
waveform
tool
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE112019007578.0T
Other languages
German (de)
Other versions
DE112019007578T5 (en
Inventor
Masakazu Sagasaki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112019007578T5 publication Critical patent/DE112019007578T5/en
Application granted granted Critical
Publication of DE112019007578B4 publication Critical patent/DE112019007578B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine

Landscapes

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

Abstract

Numerische Steuerung (1X) zum Steuern einer Werkzeugmaschine, die mehrere Antriebsachsen ansteuert, um ein Werkzeug gemäß einem Bearbeitungsprogramm (343) zu bewegen, wobei die numerische Steuerung (1X) aufweist:eine Oszillationskurvenform-Erzeugungseinheit (385) zum Erzeugen einer Oszillationskurvenform, die eine Oszillationsbahn des Werkzeugs repräsentiert,der bei der Bearbeitung eines Werkstücks gefolgt wird, während das Werkzeug in Oszillation versetzt wird; undeine Oszillationsbewegungsstrecken-Berechnungseinheit (386) zum Erzeugen einer jeder der mehreren Antriebsachsen entsprechenden Oszillationsbefehlskurvenform auf Basis der Oszillationskurvenform, die als Oszillationskurvenform zur Oszillation entlang einer Richtung einer zweiten Achse in einem bestimmten Winkel bezogen auf eine erste Achse dient, wobei die erste Achse parallel zu einer Antriebsachse der mehreren Antriebsachsen verläuft und wobei die Oszillationsbefehlskurvenform eine Bewegungsbahn des Werkzeugs entlang der Richtung einer entsprechenden der Antriebsachsen repräsentiert, dadurch gekennzeichnet, dassder bestimmte Winkel durch das Bearbeitungsprogramm oder durch Festlegung der zweiten Achse vorspezifiziert ist.A numerical controller (1X) for controlling a machine tool that drives a plurality of drive axes to move a tool according to a machining program (343), the numerical controller (1X) comprising:an oscillation waveform generating unit (385) for generating an oscillation waveform representing an oscillation trajectory of the tool followed in machining a workpiece while the tool is oscillated; andan oscillation movement distance calculation unit (386) for generating an oscillation command waveform corresponding to each of the plurality of drive axes based on the oscillation waveform serving as an oscillation waveform for oscillating along a direction of a second axis at a certain angle with respect to a first axis, the first axis being parallel to a drive axis of the plurality of drive axes, and the oscillation command waveform representing a movement path of the tool along the direction of a corresponding one of the drive axes, characterized in thatthe certain angle is prespecified by the machining program or by designating the second axis.

Description

GebietArea

Die vorliegende Erfindung bezieht sich auf eine numerische Steuerung, die eine Werkzeugmaschine steuert, die eine Vibrationsschneidbearbeitung an einem Werkstück durchführt, auf ein numerisches Steuerverfahren und auf eine Vorrichtung zum maschinellen Lernen.The present invention relates to a numerical controller that controls a machine tool that performs vibration cutting on a workpiece, a numerical control method, and a machine learning apparatus.

Hintergrundbackground

Bei einer herkömmlichen numerischen Steuerung handelt es sich um eine numerische Steuerung, die eine Vibrationsschneidbearbeitung durchführen kann, bei der ein Werkstück bearbeitet wird, während ein Schneidwerkzeug mit niedriger Frequenz in Oszillation versetzt wird.A conventional numerical controller is a numerical controller that can perform vibration cutting machining, in which a workpiece is machined while a cutting tool is oscillated at a low frequency.

In der JP 5 851 670 B1 wird eine numerische Steuerung beschrieben, bei der eine Vibrationsschneidbearbeitung beim Gewindeschneiden durchgeführt werden kann. Die in der JP 5 851 670 B1 beschriebene numerische Steuerung ermöglicht eine Bearbeitung, bei der eine Vibrationsschneidbearbeitung beim Gewindeschneiden angewendet wird, indem die Werkzeugmaschine so gesteuert wird, dass das Werkstück bearbeitet wird, während das Schneidwerkzeug entlang einer der Richtungen der Antriebsachsen senkrecht zur Spindel in Oszillation versetzt wird.In the JP 5 851 670 B1 A numerical control is described in which vibration cutting can be carried out during thread cutting. The JP 5 851 670 B1 The numerical control described enables machining to be carried out using vibration cutting during threading by controlling the machine tool so that the workpiece is machined while the cutting tool is oscillated along one of the directions of the drive axes perpendicular to the spindle.

Ferner unterstützen einige numerische Steuerungen eine Imaginärachsensteuerung. Eine Imaginärachsensteuerung bezieht sich auf die Steuerung der Bewegung eines zu steuernden Objekts, beispielsweise eines Schneidwerkzeugs, entlang einer imaginären Achse (im Folgenden als Imaginärachse bezeichnet), die sich von allen Antriebsachsenrichtungen unterscheidet, indem eine Synchronsteuerung durchgeführt wird, bei der die Steuerung mehrerer Antriebsachsen miteinander synchronisiert erfolgt.Furthermore, some numerical controllers support imaginary axis control. Imaginary axis control refers to controlling the movement of an object to be controlled, such as a cutting tool, along an imaginary axis (hereinafter referred to as imaginary axis) that is different from all drive axis directions by performing synchronous control in which the control of multiple drive axes is synchronized with each other.

Merkmale des Oberbegriffs der unabhängigen Ansprüche sind aus dem Dokument DE 103 92 943 T5 bekannt.Features of the generic term of the independent claims are taken from the document DE 103 92 943 T5 known.

Numerische Steuervorrichtungen welche einer Werkzeugbahn eine Oszillation aufprägen sind auch aus den Dokumenten DE 10 2017 208 060 A1 ,Numerical control devices which impose an oscillation on a tool path are also known from the documents EN 10 2017 208 060 A1 ,

DE 10 2011 077 568 A1 , US 2009 / 0 107 308 A1 und DE 10 2017 205 214 A1 bekannt. EN 10 2011 077 568 A1 , US 2009 / 0 107 308 A1 and EN 10 2017 205 214 A1 known.

KurzbeschreibungShort description

Technische ProblemstellungTechnical problem

Die in der JP 5 851 670 B1 beschriebene numerische Steuerung ist so ausgebildet, dass eine Bearbeitung durchgeführt wird, während das Schneidwerkzeug entlang der Richtung einer Antriebsachse in Oszillation versetzt wird. Ein Problem besteht darin, dass keine Vibrationsschneidbearbeitung durchgeführt werden kann, wenn das Schneidwerkzeug mittels Imaginärachsensteuerung bewegt wird, d. h., wenn das Schneidwerkzeug während des Gewindeschneidvorgangs entlang der Richtung einer imaginären Achse in Oszillation versetzt wird, wobei diese Oszillation durch synchrone Steuerung mehrerer Antriebsachsen erreicht werden kann.The JP 5 851 670 B1 is designed to perform machining while oscillating the cutting tool along the direction of a drive axis. One problem is that vibration cutting cannot be performed when the cutting tool is moved by imaginary axis control, that is, when the cutting tool is oscillated along the direction of an imaginary axis during thread cutting, and this oscillation can be achieved by synchronously controlling a plurality of drive axes.

Die vorliegende Erfindung entstand in Anbetracht der vorstehenden Ausführungen, wobei eine Aufgabe der vorliegenden Erfindung darin besteht, eine numerische Steuerung anzugeben, bei der die Durchführung einer Vibrationsschneidbearbeitung auch dann möglich ist, wenn das Schneidwerkzeug in einer Richtung in Oszillation versetzt werden soll, die sich von den Richtungen der Antriebsachsen unterscheidet.The present invention has been made in view of the foregoing, and an object of the present invention is to provide a numerical controller capable of performing vibration cutting even when the cutting tool is to be oscillated in a direction different from the directions of the drive axes.

Lösung der ProblemstellungSolution to the problem

Die vorstehende Aufgabe wird durch die Kombination der Merkmale der unabhängigen Ansprüche gelöst. Bevorzugte Weiterbildungen finden sich in den abhängigen Ansprüchen.The above object is achieved by the combination of the features of the independent claims. Preferred developments can be found in the dependent claims.

Vorteilhafte Wirkungen der ErfindungAdvantageous effects of the invention

Eine numerische Steuerung gemäß der vorliegenden Erfindung bietet den Vorteil, dass eine Vibrationsschneidbearbeitung auch dann genutzt werden kann, wenn das Schneidwerkzeug in einer Richtung in Oszillation versetzt werden soll, die sich von allen Richtungen der Antriebsachsen unterscheidet.A numerical control according to the present invention offers the advantage that vibration cutting can be used even when the cutting tool is to be oscillated in a direction that is different from all directions of the drive axes.

Kurzbeschreibung der FigurenShort description of the characters

  • 1 zeigt eine Darstellung zur Beschreibung einer Imaginärachsensteuerung, die in numerischen Steuerungen gemäß den jeweiligen Ausführungsformen verwendet wird. 1 is a diagram for describing an imaginary axis control used in numerical controllers according to the respective embodiments.
  • 2 zeigt eine Darstellung zur Beschreibung eines Konfigurationsbeispiels einer Werkzeugmaschine, die mit Hilfe von numerischen Steuerungen gemäß den jeweiligen Ausführungsformen gesteuert wird. 2 is a diagram for describing a configuration example of a machine tool controlled by numerical controllers according to the respective embodiments.
  • 3 zeigt eine Darstellung zur Veranschaulichung eines Konfigurationsbeispiels einer numerischen Steuerung gemäß einer ersten Ausführungsform. 3 shows a diagram to illustrate a configuration example of a numerical control according to a first embodiment.
  • 4 zeigt eine Darstellung zur Veranschaulichung der Oszillationsrichtung eines Werkzeugs, wenn bei einer Gewindeschneidbearbeitung ein Vibrationsschneiden durchgeführt wird. 4 shows a diagram illustrating the oscillation direction of a tool when vibration cutting is performed in thread cutting machining.
  • 5 zeigt eine Darstellung zur Veranschaulichung des Prinzipschemas einer Vibrationsschneidbearbeitung beim Gewindeschneiden. 5 shows a diagram to illustrate the principle diagram of a vibration cutting process for thread cutting.
  • 6 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für eine Prozedur, bei der eine numerische Steuerung gemäß der ersten Ausführungsform einen Gewindeschneidvorgang ausführt, während ein Werkzeug mittels Imaginärachsensteuerung in Oszillation versetzt wird. 6 is a flowchart showing an example of a procedure in which a numerical controller according to the first embodiment performs a thread cutting operation while oscillating a tool by means of imaginary axis control.
  • 7 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für Oszillationsbefehlskurvenformen, die von einer Oszillationskurvenform-Erzeugungseinheit einer numerischen Steuerung gemäß der ersten Ausführungsform erzeugt werden. 7 is a diagram showing an example of oscillation command waveforms generated by an oscillation waveform generating unit of a numerical controller according to the first embodiment.
  • 8 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für die Beziehungen zwischen Oszillationsbefehlskurvenformen und Feedback-Oszillationskurvenformen. 8th shows a diagram illustrating an example of the relationships between oscillation command waveforms and feedback oscillation waveforms.
  • 9 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für eine kombinierte Oszillationskurvenform, die durch Kombination von nicht angepassten Oszillationsbefehlskurvenformen für die jeweiligen Achsen erhalten wird. 9 is a diagram showing an example of a combined oscillation waveform obtained by combining unmatched oscillation command waveforms for the respective axes.
  • 10 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für eine kombinierte Oszillationskurvenform, die durch Kombination von angepassten Oszillationsbefehlskurvenformen für die jeweiligen Achsen erhalten wird. 10 is a diagram showing an example of a combined oscillation waveform obtained by combining adjusted oscillation command waveforms for the respective axes.
  • 11 zeigt eine Darstellung zur Beschreibung einer Schrägachsensteuerung. 11 shows a diagram describing a bent axis control.
  • 12 zeigt eine Darstellung zur Veranschaulichung eines Konfigurationsbeispiels für eine Werkzeugmaschine mit Schrägachsensteuerung. 12 shows a diagram illustrating a configuration example for a machine tool with bent axis control.
  • 13 zeigt eine Darstellung zur Beschreibung der Konfiguration einer Werkzeugmaschine, die eine Vibrationsschneidbearbeitung durchführt. 13 shows a diagram for describing the configuration of a machine tool that performs vibration cutting.
  • 14 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für die Hardwarekonfiguration einer Steuerungsberechnungseinheit, die in einer numerischen Steuerung gemäß der ersten Ausführungsform enthalten ist. 14 is a diagram showing an example of the hardware configuration of a control calculation unit included in a numerical controller according to the first embodiment.
  • 15 zeigt eine Darstellung zur Veranschaulichung eines Konfigurationsbeispiels einer numerischen Steuerung gemäß einer zweiten Ausführungsform. 15 is a diagram showing a configuration example of a numerical controller according to a second embodiment.

Beschreibung von AusführungsformenDescription of embodiments

Im Folgenden werden unter Bezugnahme auf die Figuren eine numerische Steuerung, ein numerisches Steuerverfahren und eine Vorrichtung zum maschinellen Lernen gemäß Ausführungsformen der vorliegenden Erfindung detailliert beschrieben. Es ist zu beachten, dass die Ausführungsformen den Umfang der vorliegenden Erfindung nicht einschränken sollen.Hereinafter, a numerical controller, a numerical control method, and a machine learning apparatus according to embodiments of the present invention will be described in detail with reference to the figures. Note that the embodiments are not intended to limit the scope of the present invention.

Bei jeder Ausführungsform wird eine Konfiguration beschrieben, bei der eine numerische Steuerung einen Gewindeschneidvorgang durchführt, während ein Schneidwerkzeug mittels Imaginärachsensteuerung in Oszillation versetzt wird. Daher werden zunächst die Imaginärachsensteuerung und die Werkzeugmaschine beschrieben, die von numerischen Steuerungen gemäß den jeweiligen Ausführungsformen gesteuert werden.In each embodiment, a configuration in which a numerical controller performs a thread cutting operation while oscillating a cutting tool by means of imaginary axis control will be described. Therefore, the imaginary axis control and the machine tool controlled by numerical controllers according to the respective embodiments will be described first.

1 zeigt eine Darstellung zur Beschreibung einer Imaginärachsensteuerung, die in numerischen Steuerungen gemäß den jeweiligen Ausführungsformen eingesetzt wird. Eine Imaginärachsensteuerung ermöglicht die Steuerung eines zu steuernden Objekts unter Verwendung eines imaginären Maschinenkoordinatensystems, das durch Rotation und/oder dergleichen eines realen Maschinenkoordinatensystems erhalten wird, bei dem es sich um das Koordinatensystem der Werkzeugmaschine handelt, die von den numerischen Steuerungen gesteuert wird. Die Achsen des imaginären Maschinenkoordinatensystems werden jeweils als imaginäre Achsen bezeichnet. Bei dem in 1 dargestellten Beispiel wird ein imaginäres Maschinenkoordinatensystem verwendet, das durch Drehung eines eine X-Achse und eine Y-Achse aufweisenden realen Maschinenkoordinatensystems um 45 Grad im Uhrzeigersinn und anschließende Verschiebung des Ursprungs (in 1 als Ursprung des realen Maschinenkoordinatensystems bezeichnet) um -120 mm entlang der X-Achse und um -60 mm entlang der Y-Achse erhalten wird. 1 shows a diagram for describing an imaginary axis control used in numerical controllers according to the respective embodiments. An imaginary axis control enables control of an object to be controlled using an imaginary machine coordinate system obtained by rotation and/or the like of a real machine coordinate system, which is the coordinate system of the machine tool controlled by the numerical controllers. The axes of the imaginary machine coordinate system are each referred to as imaginary axes. In the imaginary axis control shown in 1 The example shown uses an imaginary machine coordinate system which is created by rotating a real machine coordinate system having an X-axis and a Y-axis by 45 degrees clockwise and then shifting the origin (in 1 referred to as the origin of the real machine coordinate system) by -120 mm along the X-axis and by -60 mm along the Y-axis.

Eine Imaginärachsensteuerung unter Verwendung des in 1 dargestellten imaginären Maschinenkoordinatensystems wird beispielsweise eingesetzt, wenn das beim Gewindeschneiden verwendete Schneidwerkzeug in einer um 45 Grad zur X-Achse (in 1 als reale X-Achse bezeichnet) des realen Maschinenkoordinatensystems gedrehten Richtung in Oszillation versetzt werden soll. Durch eine Imaginärachsensteuerung kann das Schneidwerkzeug in einer Richtung parallel zur Richtung der imaginären X-Achse in Oszillation versetzt werden.An imaginary axis control using the 1 The imaginary machine coordinate system shown is used, for example, when the cutting tool used for thread cutting is positioned at a 45 degree angle to the X-axis (in 1 (referred to as the real X-axis) of the real machine coordinate system. By means of an imaginary axis control, the cutting tool can be set into oscillation in a direction parallel to the direction of the imaginary X-axis.

2 zeigt eine Darstellung zur Beschreibung eines Konfigurationsbeispiels für eine Werkzeugmaschine, die von numerischen Steuerungen gemäß den jeweiligen Ausführungsformen gesteuert wird. Wie in 2 dargestellt ist, ist die von den numerischen Steuerungen gemäß den Ausführungsformen gesteuerte Werkzeugmaschine so ausgebildet, dass sie einen Werkzeughalter mit fünf Arten von Schneidwerkzeugen T1 bis T5 umfasst, die daran befestigt sind, um ein Werkstück unter Verwendung eines der Schneidwerkzeuge zu bearbeiten. 2 zeigt einen Querschnitt des Werkzeughalters aus der Richtung der Drehachse des Werkstücks. Die Schneidwerkzeuge sind so angeordnet, dass die Schneidkanten dem Werkstück zugewandt sind. Die Schneidewerkzeuge werden so gesteuert, dass sie sich linear auf das Werkstück zubewegen. Die Schneidwerkzeuge bewegen sich jeweils entlang einer Linie, die durch das Zentrum des Werkstücks verläuft, wobei die numerische Steuerung einen X-Achsen-Servomotor, der den Werkzeughalter in der realen X-Achsenrichtung bewegt, sowie einen Y-Achsen-Servomotor steuert, der den Werkzeughalter in der realen Y-Achsenrichtung bewegt. Es wird darauf hingewiesen, dass die Anzahl der hier dargestellten Schneidwerkzeuge nur ein Beispiel ist und nicht auf fünf Stück beschränkt ist. 2 is a diagram for describing a configuration example of a machine tool controlled by numerical controllers according to the respective embodiments. As shown in 2 As shown, the machine tool controlled by the numerical controllers according to the embodiments is configured to include a tool holder having five kinds of cutting tools T1 to T5 attached thereto to machine a workpiece using one of the cutting tools. 2 shows a cross section of the tool holder from the direction of the rotation axis of the workpiece. The cutting tools are arranged so that the cutting edges face the workpiece. The cutting tools are controlled to move linearly toward the workpiece. The cutting tools each move along a line passing through the center of the workpiece, with the numerical controller controlling an X-axis servo motor that moves the tool holder in the real X-axis direction and a Y-axis servo motor that moves the tool holder in the real Y-axis direction. It should be noted that the number of cutting tools shown here is only an example and is not limited to five pieces.

Wenn die Vibrationsschneidbearbeitung mit einer Werkzeugmaschine durchgeführt werden soll, die die in 2 dargestellte Konfiguration aufweist, können die Schneidwerkzeuge entlang einer durch das Zentrum des Werkstücks verlaufenden Linie in Oszillation versetzt werden, indem ein Oszillationsbefehl, der sich auf die X-Achse und die Y-Achse bezieht, in das Bearbeitungsprogramm geschrieben wird. Die Durchführung der Vibrationsschneidbearbeitung unter Verwendung einer solchen Methode erhöht jedoch den Arbeitsaufwand für die Erstellung des Bearbeitungsprogramms. Bei den numerischen Steuerungen gemäß den Ausführungsformen kann deshalb eine Imaginärachsensteuerung zur Steuerung der Schneidwerkzeuge eingesetzt werden. Durch die Verwendung einer Imaginärachsensteuerung kann ein Werkzeug entlang einer imaginären Achse oszillieren. Ein Oszillationsbefehl für eine einzelne Achse kann demnach ein Schneidwerkzeug entlang einer imaginären Achse in Oszillation versetzen. Bei der Erstellung eines Bearbeitungsprogramms für die Vibrationsschneidbearbeitung muss der Ersteller des Bearbeitungsprogramms die Verwendung einer imaginären Achse nicht berücksichtigen, sondern kann die Oszillationsbedingungen unter Verwendung eines Oszillationsbefehls festlegen, der die Oszillation eines Schneidwerkzeugs entlang der Richtung einer Referenzachse bewirkt, die entweder die reale X-Achse oder die reale Y-Achse ist. Dadurch wird der Aufwand für die Erstellung eines Bearbeitungsprogramms zur Durchführung einer Vibrationsbearbeitung mit einer Werkzeugmaschine reduziert, die die in 2 dargestellte Konfiguration aufweist, d. h. einer Werkzeugmaschine mit einer Konfiguration, bei der das Schneidwerkzeug in einer Richtung oszilliert, die sich von den Richtungen der Antriebsachsen unterscheidet.If the vibration cutting operation is to be carried out with a machine tool that meets the requirements 2 shown configuration, the cutting tools can be oscillated along a line passing through the center of the workpiece by writing an oscillation command related to the X-axis and the Y-axis in the machining program. However, performing vibration cutting machining using such a method increases the amount of work required to prepare the machining program. Therefore, in the numerical controllers according to the embodiments, imaginary axis control can be used to control the cutting tools. By using imaginary axis control, a tool can oscillate along an imaginary axis. An oscillation command for a single axis can therefore oscillate a cutting tool along an imaginary axis. When creating a machining program for vibration cutting machining, the machining program creator does not need to consider the use of an imaginary axis, but can specify the oscillation conditions using an oscillation command that causes the oscillation of a cutting tool along the direction of a reference axis, which is either the real X-axis or the real Y-axis. This reduces the effort of creating a machining program for performing vibration machining with a machine tool that supports the 2 shown configuration, that is, a machine tool having a configuration in which the cutting tool oscillates in a direction different from the directions of the drive axes.

Bei der Steuerung einer Werkzeugmaschine mit der in 2 dargestellten Konfiguration ändert die numerische Steuerung die Festlegung des imaginären Maschinenkoordinatensystems jedes Mal, wenn das bei der Werkstückbearbeitung verwendete Schneidwerkzeug gewechselt wird. 2 veranschaulicht den Fall der Bearbeitung eines Werkstücks unter Verwendung des Schneidwerkzeugs T2, wobei die numerische Steuerung zunächst das imaginäre Maschinenkoordinatensystem festlegt, um die Bewegungsrichtung des Schneidwerkzeugs T2 mit der Richtung der imaginären X-Achse auszurichten, und dann die Bewegung des Werkzeughalters unter Verwendung des imaginären Maschinenkoordinatensystems steuert. Auch wenn ein Fall beschrieben wurde, bei dem das Schneidwerkzeug T2 verwendet wird, gilt dies ebenso für Fälle, in denen andere Schneidwerkzeuge verwendet werden. Wenn beispielsweise das Schneidwerkzeug T4 verwendet wird, ändert die numerische Steuerung die Festlegung des imaginären Maschinenkoordinatensystems, um die Bewegungsrichtung des Schneidwerkzeugs T4 mit der Richtung der imaginären X-Achse auszurichten. Wenn das Schneidwerkzeug T3 verwendet wird, ändert die numerische Steuerung die Festlegung des imaginären Maschinenkoordinatensystems, um die Bewegungsrichtung des Schneidwerkzeugs T3 mit der Richtung der imaginären X-Achse auszurichten, wobei die imaginäre X-Achse parallel zur realen X-Achse verläuft. Auch wenn bei dem in 2 dargestellten Beispiel davon ausgegangen wird, dass die Festlegung so vorgenommen wird, dass das Schneidwerkzeug in einer Richtung parallel zur Richtung der imaginären X-Achse oszilliert, kann die Einstellung auch so vorgenommen werden, dass das Schneidwerkzeug in einer Richtung parallel zur Richtung der imaginären Y-Achse oszilliert.When controlling a machine tool with the 2 In the configuration shown, the numerical control changes the setting of the imaginary machine coordinate system each time the cutting tool used in workpiece machining is changed. 2 illustrates the case of machining a workpiece using the cutting tool T2, where the numerical controller first sets the imaginary machine coordinate system to align the direction of movement of the cutting tool T2 with the direction of the imaginary X-axis, and then controls the movement of the tool holder using the imaginary machine coordinate system. Although a case where the cutting tool T2 is used has been described, the same applies to cases where other cutting tools are used. For example, when the cutting tool T4 is used, the numerical controller changes the setting of the imaginary machine coordinate system to align the direction of movement of the cutting tool T4 with the direction of the imaginary X-axis. When the cutting tool T3 is used, the numerical controller changes the setting of the imaginary machine coordinate system to align the direction of movement of the cutting tool T3 with the direction of the imaginary X-axis, with the imaginary X-axis being parallel to the real X-axis. Although the case in 2 In the example shown, it is assumed that the setting is made so that the cutting tool oscillates in a direction parallel to the direction of the imaginary X-axis, the setting can also be made so that the cutting tool oscillates in a direction parallel to the direction of the imaginary Y-axis.

Wie oben beschrieben wurde, legen die numerischen Steuerungen gemäß den Ausführungsformen das imaginäre Maschinenkoordinatensystem so fest, dass das Schneidwerkzeug in einer Richtung parallel zur Richtung der imaginären X-Achse, die die X-Achse des imaginären Maschinenkoordinatensystems ist, in Oszillation versetzt wird, oder das Schneidwerkzeug in einer Richtung parallel zur Richtung der imaginären Y-Achse, die die Y-Achse des imaginären Maschinenkoordinatensystems ist, in Oszillation versetzt wird, und steuern die Wellen der Werkzeugmaschine dann unter Verwendung des imaginären Maschinenkoordinatensystems. Die numerischen Steuerungen gemäß den Ausführungsformen verfahren die Schneidwerkzeuge T1 bis T5 entlang der realen X-Achsenrichtung und entlang der realen Y-Achsenrichtung, indem sie den in 2 dargestellten X-Achsen-Servomotor und Y-Achsen-Servomotor steuern. Es wird darauf hingewiesen, dass in der Beschreibung der Ausführungsformen ein Schneidwerkzeug als „Werkzeug“ bezeichnet wird. Außerdem kann sich die Beschreibung der Ausführungsformen auf die reale X-Achse als X-Achse und die reale Y-Achse als Y-Achse beziehen.As described above, the numerical controllers according to the embodiments set the imaginary machine coordinate system so that the cutting tool is oscillated in a direction parallel to the direction of the imaginary X-axis, which is the X-axis of the imaginary machine coordinate system, or the cutting tool is oscillated in a direction parallel to the direction of the imaginary Y-axis, which is the Y-axis of the imaginary machine coordinate system, and then control the shafts of the machine tool using the imaginary machine coordinate system. The numerical controllers according to the embodiments forms, the cutting tools T1 to T5 move along the real X-axis direction and along the real Y-axis direction by moving the 2 It is noted that in the description of the embodiments, a cutting tool is referred to as a "tool". In addition, the description of the embodiments may refer to the real X-axis as an X-axis and the real Y-axis as a Y-axis.

Erste AusführungsformFirst embodiment

3 zeigt eine Darstellung zur Veranschaulichung eines Konfigurationsbeispiels einer numerischen Steuerung gemäß einer ersten Ausführungsform. Eine numerische Steuerung 1X gemäß der ersten Ausführungsform umfasst eine Eingabeeinheit 3, eine Anzeigeeinheit 4 und eine Steuerungsberechnungseinheit 2X. 3 veranschaulicht ferner eine Antriebseinheit 90, die in einer Werkzeugmaschine enthalten ist, die von der numerischen Steuerung 1X gesteuert wird. Die Elemente der Werkzeugmaschine sind abgesehen von der Antriebseinheit 90 in der Figur nicht dargestellt. 3 is a diagram showing a configuration example of a numerical controller according to a first embodiment. A numerical controller 1X according to the first embodiment includes an input unit 3, a display unit 4, and a control calculation unit 2X. 3 further illustrates a drive unit 90 included in a machine tool controlled by the numerical controller 1X. The elements of the machine tool other than the drive unit 90 are not shown in the figure.

Bei der in der Werkzeugmaschine enthaltenen Antriebseinheit 90 handelt es sich um einen Mechanismus zum Antreiben eines Werkstücks, das ein zu bearbeitendes Objekt darstellt, und/oder eines Werkzeugs in zumindest zwei axialen Richtungen. Die Antriebseinheit 90 umfasst dabei mehrere Servomotoren 91, von denen jeder das Werkstück und/oder das Werkzeug in Richtung der entsprechenden Achse, die in der numerischen Steuerung 1X definiert ist, bewegt, und mehrere Detektoren 92, von denen jeder die Position und die Drehzahl des Rotors des entsprechenden Servomotors 91 erfasst. Die Antriebseinheit 90 umfasst auch eine X-Achsen-Servosteuerungseinheit 93X und eine Y-Achsen-Servosteuerungseinheit 93Y, ..., die die Servomotoren 91 auf Basis der von den Detektoren 92 erfassten Positionen und Drehzahlen steuern. Es wird darauf hingewiesen, dass die den jeweiligen Achsen entsprechenden Servosteuerungseinheiten (d. h. die X-Achsen-Servosteuerungseinheit 93X, die Y-Achsen-Servosteuerungseinheit 93Y, ...) im Folgenden jeweils einfach als Servosteuerungseinheit 93 bezeichnet werden, wenn keine Unterscheidung zwischen den Richtungen der Antriebsachsen getroffen werden muss. Die Antriebseinheit 90 umfasst ferner einen Spindelmotor 94, der die Spindel zum Drehen des Werkstücks dreht, einen Detektor 95, der die Position und die Drehfrequenz des Rotors des Spindelmotors 94 erfasst, und eine Spindelsteuerungseinheit 96, die den Spindelmotor 94 auf Basis der Position und der Drehfrequenz steuert, die von dem Detektor 95 erfasst wurden.The drive unit 90 included in the machine tool is a mechanism for driving a workpiece, which is an object to be machined, and/or a tool in at least two axial directions. The drive unit 90 includes a plurality of servo motors 91, each of which moves the workpiece and/or the tool in the direction of the corresponding axis defined in the numerical controller 1X, and a plurality of detectors 92, each of which detects the position and the rotation speed of the rotor of the corresponding servo motor 91. The drive unit 90 also includes an X-axis servo control unit 93X and a Y-axis servo control unit 93Y, ..., which control the servo motors 91 based on the positions and rotation speeds detected by the detectors 92. Note that the servo control units corresponding to the respective axes (i.e., the X-axis servo control unit 93X, the Y-axis servo control unit 93Y, ...) are each hereinafter referred to simply as servo control units 93 when no distinction needs to be made between the directions of the drive axes. The drive unit 90 further includes a spindle motor 94 that rotates the spindle to rotate the workpiece, a detector 95 that detects the position and rotation frequency of the rotor of the spindle motor 94, and a spindle control unit 96 that controls the spindle motor 94 based on the position and rotation frequency detected by the detector 95.

Zurückkehrend zur Beschreibung der numerischen Steuerung 1X stellt die Eingabeeinheit 3 eine Einrichtung zur Eingabe von Informationen in die numerische Steuerung 1X dar. Die Eingabeeinheit 3 umfasst eine Tastatur, eine Bedienungstaste, eine Maus und/oder dergleichen, um eine Eingabe für die numerische Steuerung 1X, wie z. B. einen Befehl, ein Bearbeitungsprogramm, einen Parameter und dergleichen, vom Benutzer zu erhalten und die Eingabe an die Steuerungsberechnungseinheit 2X weiterzugeben.Returning to the description of the numerical controller 1X, the input unit 3 represents a means for inputting information into the numerical controller 1X. The input unit 3 includes a keyboard, an operation key, a mouse and/or the like for receiving an input for the numerical controller 1X, such as a command, a machining program, a parameter and the like, from the user and passing the input to the control calculation unit 2X.

Die Anzeigeeinheit 4 umfasst eine Flüssigkristallanzeige oder dergleichen zur Anzeige von Informationen, die durch eine von der Steuerungsberechnungseinheit 2X durchgeführte Verarbeitung erhalten wurden, und zur Durchführung ähnlicher Operationen.The display unit 4 includes a liquid crystal display or the like for displaying information obtained by processing performed by the control calculation unit 2X and performing similar operations.

Die Steuerungsberechnungseinheit 2X umfasst eine Eingabesteuerungseinheit 32, eine Dateneinstelleinheit 33, eine Speichereinheit 34, eine Anzeigebildverarbeitungseinheit 31, eine Steuersignalverarbeitungseinheit 35, eine speicherprogrammierbare Steuerung (SPS) 36, eine Analyseverarbeitungseinheit 37, eine Interpolationsverarbeitungseinheit 38X, eine Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 und eine Achsendateneingabe-/-ausgabeeinheit 40. Es wird darauf hingewiesen, dass die SPS 36 außerhalb der Steuerungsberechnungseinheit 2X angeordnet sein kann.The control calculation unit 2X includes an input control unit 32, a data setting unit 33, a storage unit 34, a display image processing unit 31, a control signal processing unit 35, a programmable logic controller (PLC) 36, an analysis processing unit 37, an interpolation processing unit 38X, an acceleration/deceleration processing unit 39, and an axis data input/output unit 40. Note that the PLC 36 may be arranged outside the control calculation unit 2X.

Die Eingabesteuerungseinheit 32 empfängt die mit der Eingabeeinheit 3 eingegebenen Informationen. Die Dateneinstelleinheit 33 speichert die von der Eingabesteuerungseinheit 32 empfangenen Informationen in der Speichereinheit 34. Wenn es sich bei den eingegebenen Informationen beispielsweise um eine Bearbeitung des in der Speichereinheit 34 gespeicherten Bearbeitungsprogramms 343 handelt, spiegelt die Dateneinstelleinheit 33 die Bearbeitung in dem Bearbeitungsprogramm 343 wider, das in der Speichereinheit 34 gespeichert ist. Alternativ dazu aktualisiert die Dateneinstelleinheit 33 die in der Speichereinheit 34 gespeicherten Parameterdaten 341, wenn ein Parameter eingegeben wird.The input control unit 32 receives the information inputted by the input unit 3. The data setting unit 33 stores the information received from the input control unit 32 in the storage unit 34. For example, when the inputted information is an edit of the edit program 343 stored in the storage unit 34, the data setting unit 33 reflects the edit in the edit program 343 stored in the storage unit 34. Alternatively, the data setting unit 33 updates the parameter data 341 stored in the storage unit 34 when a parameter is inputted.

Die Speichereinheit 34 speichert Parameterdaten 341 zur Verwendung bei der Verarbeitung durch die Steuerungsberechnungseinheit 2X, Anzeigedaten 342, die an der Anzeigeeinheit 4 angezeigt werden sollen, das auszuführende Bearbeitungsprogramm 343 und dergleichen.The storage unit 34 stores parameter data 341 for use in processing by the control calculation unit 2X, display data 342 to be displayed on the display unit 4, the machining program 343 to be executed, and the like.

Die Speichereinheit 34 umfasst auch einen gemeinsam genutzten Bereich 344 zum Speichern von anderen Daten als den Parameterdaten 341, den Anzeigedaten 342 und dem Bearbeitungsprogramm 343. In dem gemeinsam genutzten Bereich 344 werden temporär Daten gespeichert, die während einer von der Steuerungsberechnungseinheit 2X durchgeführten Verarbeitung zur Steuerung der Antriebseinheit 90 erzeugt wurden. Die Anzeigebildverarbeitungseinheit 31 steuert die Anzeige der in der Speichereinheit 34 gespeicherten Anzeigedaten 342 an der Anzeigeeinheit 4.The storage unit 34 also includes a shared area 344 for storing data other than the parameter data 341, the display data 342 and the processing pro program 343. In the shared area 344, data generated during processing performed by the control calculation unit 2X for controlling the drive unit 90 is temporarily stored. The display image processing unit 31 controls the display of the display data 342 stored in the storage unit 34 on the display unit 4.

Die Analyseverarbeitungseinheit 37 umfasst eine Bewegungsbefehl-Analyseeinheit 371 und eine Oszillationsbefehl-Analyseeinheit 372. Die Analyseverarbeitungseinheit 37 liest das einen oder mehrere Blöcke enthaltende Bearbeitungsprogramm 343 aus der Speichereinheit 34 aus und analysiert das ausgelesene Bearbeitungsprogramm 343 mit Hilfe der Bewegungsbefehl-Analyseeinheit 371 oder der Oszillationsbefehl-Analyseeinheit 372. Die Bewegungsbefehl-Analyseeinheit 371 analysiert einen im Bearbeitungsprogramm 343 enthaltenen Verfahrbefehl und schreibt das Analyseergebnis in den gemeinsam genutzten Bereich 344 der Speichereinheit 34. Die Oszillationsbefehl-Analyseeinheit 372 analysiert einen im Bearbeitungsprogramm 343 enthaltenen Oszillationsbefehl und schreibt das Analyseergebnis in den gemeinsam genutzten Bereich 344 der Speichereinheit 34. Ein Oszillationsbefehl enthält ein oder mehrere Argumente, die jeweils eine Bedingung dafür angeben, wie das Werkzeug bei der Vibrationsschneidbearbeitung in Oszillation versetzt werden soll. Ein Oszillationsbefehl enthält ein Argument zur Angabe der Oszillationsrichtung, d. h. der Achse, entlang der das Werkzeug oszillieren soll, ein Argument zur Angabe der Amplitude der Oszillation, ein Argument zur Angabe der Frequenz der Oszillation und/oder dergleichen. Die Frequenz der Oszillation wird beispielsweise durch die Anzahl der Oszillationen während einer Spindelumdrehung ausgedrückt. Ein Oszillationsbefehl wird beispielsweise durch einen G 165-Code angegeben.The analysis processing unit 37 includes a movement command analysis unit 371 and an oscillation command analysis unit 372. The analysis processing unit 37 reads the machining program 343 including one or more blocks from the storage unit 34, and analyzes the read machining program 343 using the movement command analysis unit 371 or the oscillation command analysis unit 372. The movement command analysis unit 371 analyzes a movement command included in the machining program 343, and writes the analysis result into the shared area 344 of the storage unit 34. The oscillation command analysis unit 372 analyzes an oscillation command included in the machining program 343, and writes the analysis result into the shared area 344 of the storage unit 34. An oscillation command includes one or more arguments, each of which specifies a condition for how to oscillate the tool in vibration cutting machining. An oscillation command contains an argument specifying the direction of oscillation, i.e. the axis along which the tool is to oscillate, an argument specifying the amplitude of the oscillation, an argument specifying the frequency of the oscillation and/or the like. The frequency of the oscillation is expressed, for example, by the number of oscillations during one spindle revolution. An oscillation command is specified, for example, by a G 165 code.

Wenn die Analyseverarbeitungseinheit 37 einen Hilfsbefehl liest, informiert die Steuersignalverarbeitungseinheit 35 die SPS 36, dass ein Hilfsbefehl ausgegeben wurde. Ein Hilfsbefehl ist ein Befehl für den Betrieb der Maschine, wobei Befehle für den Betrieb einer Antriebsachse, die eine numerisch gesteuerte Achse ist, nicht dazu gehören. Ein Beispiel für einen Hilfsbefehl ist ein M-Code oder T-Code.When the analysis processing unit 37 reads an auxiliary command, the control signal processing unit 35 informs the PLC 36 that an auxiliary command has been issued. An auxiliary command is a command for operating the machine, and does not include commands for operating a drive axis, which is a numerically controlled axis. An example of an auxiliary command is an M code or T code.

Nach Empfang der Meldung von der Steuersignalverarbeitungseinheit 35, dass ein Hilfsbefehl ausgegeben wurde, führt die SPS 36 einen diesem Hilfsbefehl entsprechenden Vorgang aus. Die SPS 36 enthält ein Kontaktplanprogramm, in dem eine Maschinenprozedur codiert ist. Bei Empfang eines T-Codes oder M-Codes, bei denen es sich um Hilfsbefehle handelt, führt die SPS 36 die dem Hilfsbefehl entsprechende Prozedur gemäß dem Kontaktplanprogramm aus. Nach der Durchführung der dem Hilfsbefehl entsprechenden Prozedur sendet die SPS 36 an die Steuersignalverarbeitungseinheit 35 ein Abschlusssignal, das den Abschluss der dem Hilfsbefehl entsprechenden Prozedur anzeigt, um die Ausführung des nächsten Blocks des Bearbeitungsprogramms 343 zu veranlassen.Upon receiving notification from the control signal processing unit 35 that an auxiliary command has been issued, the PLC 36 executes an operation corresponding to the auxiliary command. The PLC 36 includes a ladder program in which a machine procedure is encoded. Upon receiving a T code or M code, which are auxiliary commands, the PLC 36 executes the procedure corresponding to the auxiliary command according to the ladder program. After executing the procedure corresponding to the auxiliary command, the PLC 36 sends a completion signal indicating the completion of the procedure corresponding to the auxiliary command to the control signal processing unit 35 to cause execution of the next block of the machining program 343.

In der Steuerungsberechnungseinheit 2X sind die Steuersignalverarbeitungseinheit 35, die Analyseverarbeitungseinheit 37 und die Interpolationsverarbeitungseinheit 38X über die Speichereinheit 34 miteinander verbunden. Die Analyseverarbeitungseinheit 37, die Steuersignalverarbeitungseinheit 35 und die Interpolationsverarbeitungseinheit 38X tauschen gegenseitig verschiedene Informationen über den gemeinsam genutzten Bereich 344 der Speichereinheit 34 aus. Die Angabe, dass das Bereitstellen und Empfangen von Informationen zu und von der Steuersignalverarbeitungseinheit 35, der Analyseverarbeitungseinheit 37 und der Interpolationsverarbeitungseinheit 38X über die Speichereinheit 34 erfolgt, kann in der folgenden Beschreibung weggelassen sein.In the control calculation unit 2X, the control signal processing unit 35, the analysis processing unit 37, and the interpolation processing unit 38X are connected to each other via the storage unit 34. The analysis processing unit 37, the control signal processing unit 35, and the interpolation processing unit 38X mutually exchange various information via the shared area 344 of the storage unit 34. The statement that the provision and reception of information to and from the control signal processing unit 35, the analysis processing unit 37, and the interpolation processing unit 38X is performed via the storage unit 34 may be omitted in the following description.

Wenn die Analyseverarbeitungseinheit 37 einen Befehl analysiert hat, der ein Argument bezüglich der Bewegungsbahn des Werkzeugs enthält, berechnet die Interpolationsverarbeitungseinheit 38X die Bewegungsbahn des Werkzeugs unter Verwendung einer Interpolationsoperation auf Basis des in dem analysierten Befehl enthaltenen Arguments. Ein Befehl mit einem Argument, das sich auf die Bewegungsbahn des Werkzeugs bezieht, ist ein Befehl, der eines oder mehrere der folgenden Argumente enthält: ein Argument, das die Position des Werkzeugs spezifiziert, ein Argument, das die Bewegungsgeschwindigkeit des Werkzeugs spezifiziert, ein Argument, das die Interpolationsmethode spezifiziert, die bei der Interpolationsoperation verwendet werden soll, und dergleichen. Ein Oszillationsbefehl ist einer der Befehle, die ein Argument enthalten, das sich auf die Bewegungsbahn des Werkzeugs bezieht.When the analysis processing unit 37 has analyzed a command that includes an argument related to the trajectory of the tool, the interpolation processing unit 38X calculates the trajectory of the tool using an interpolation operation based on the argument included in the analyzed command. A command with an argument related to the trajectory of the tool is a command that includes one or more of the following arguments: an argument specifying the position of the tool, an argument specifying the movement speed of the tool, an argument specifying the interpolation method to be used in the interpolation operation, and the like. An oscillation command is one of the commands that include an argument related to the trajectory of the tool.

Die Interpolationsverarbeitungseinheit 38X umfasst eine Zuordnungsverhältnis-Bestimmungseinheit 381, eine Kurvenforminformationsbezugseinheit 382, eine Vergleichseinheit 383, eine Oszillationsbefehlskurvenform-Anpassungseinheit 384X, eine Oszillationskurvenform-Erzeugungseinheit 385 und eine Oszillationsbewegungsstrecken-Berechnungseinheit 386.The interpolation processing unit 38X includes an allocation ratio determining unit 381, a waveform information obtaining unit 382, a comparing unit 383, an oscillation command waveform adjusting unit 384X, an oscillation waveform generating unit 385, and an oscillation movement distance calculating unit 386.

Die Oszillationskurvenform-Erzeugungseinheit 385 erzeugt eine Oszillationskurvenform, die die Bewegungsbahn des Werkzeugs repräsentiert, wenn das Werkzeug so gesteuert wird, dass es in Oszillation versetzt wird, auf Basis des Ergebnisses der Analyse eines Oszillationsbefehls, die von der Oszillationsbefehl-Analyseeinheit 372 durchgeführt wird, d. h. basierend auf dem/den Argument(en), die in dem analysierten Oszillationsbefehl enthalten sind. Die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenform repräsentiert die Oszillationsbahn des Werkzeugs, wenn das Werkzeug entlang der Richtung einer imaginären Achse in Oszillation versetzt wird.The oscillation waveform generating unit 385 generates an oscillation waveform representing the trajectory of the tool when the tool is controlled to oscillate, based on the result of analysis of an oscillation command obtained from the Oscillation command analysis unit 372, ie, based on the argument(s) contained in the analyzed oscillation command. The oscillation waveform generated by the oscillation waveform generation unit 385 represents the oscillation trajectory of the tool when the tool is oscillated along the direction of an imaginary axis.

Die Zuordnungsverhältnis-Bestimmungseinheit 381 bestimmt das Verhältnis, in dem die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenform vektoriell in Komponenten entlang der Richtungen der jeweiligen Antriebsachsen zerlegt werden soll, die gesteuert werden, wenn das Werkzeug unter Verwendung der Imaginärachsensteuerung bewegt wird. Wie oben beschrieben wurde, wird das Werkzeug durch die Imaginärachsensteuerung entlang der Richtung einer imaginären Achse mittels einer synchronen Steuerung mehrerer Antriebsachsen bewegt. Dementsprechend ergibt sich die Bewegungstrecke des Werkzeugs entlang der Richtung einer imaginären Achse aus den Bewegungsstrecken entlang der Richtungen der jeweiligen Antriebsachsen, die bei der Imaginärachsensteuerung synchron gesteuert werden. Andererseits ist die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenform eine Kurvenform in dem imaginären Maschinenkoordinatensystem, das durch imaginäre Achsen definiert ist, d. h. eine Kurvenform, die die Oszillation entlang der Richtung einer imaginären Achse repräsentiert. Daher bestimmt die Zuordnungsverhältnis-Bestimmungseinheit 381 das Verhältnis, in dem die Komponente der von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugten Oszillationskurvenform vektoriell in Komponenten entlang der Richtungen der jeweiligen Antriebsachsen zu zerlegen ist, um die Kurvenformen zu erhalten, die die Oszillationen entlang der Richtungen der jeweiligen Antriebsachsen repräsentieren.The allocation ratio determining unit 381 determines the ratio in which the oscillation waveform generated by the oscillation waveform generating unit 385 is to be vectorially decomposed into components along the directions of the respective drive axes that are controlled when the tool is moved using the imaginary axis control. As described above, the tool is moved along the direction of an imaginary axis by the imaginary axis control by synchronously controlling a plurality of drive axes. Accordingly, the movement distance of the tool along the direction of an imaginary axis is obtained from the movement distances along the directions of the respective drive axes that are synchronously controlled in the imaginary axis control. On the other hand, the oscillation waveform generated by the oscillation waveform generating unit 385 is a waveform in the imaginary machine coordinate system defined by imaginary axes, that is, a waveform representing the oscillation along the direction of an imaginary axis. Therefore, the allocation ratio determining unit 381 determines the ratio in which the component of the oscillation waveform generated by the oscillation waveform generating unit 385 is to be vectorially decomposed into components along the directions of the respective drive axes to obtain the waveforms representing the oscillations along the directions of the respective drive axes.

Die Kurvenforminformationsbezugseinheit 382 erhält von der Antriebseinheit 90 Informationen über Kurvenformen, die die tatsächliche Bewegungsbahn wiedergeben, wenn eine Steuerung durchgeführt wird, um das Werkzeug in Oszillation zu versetzen.The waveform information acquisition unit 382 receives from the drive unit 90 information on waveforms representing the actual trajectory when control is performed to oscillate the tool.

Die Vergleichseinheit 383 vergleicht die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenform mit einer Feedback-Kurvenform, bei der es sich um die Kurvenform handelt, die den entsprechenden Teil der von der Kurvenforminformationsbezugseinheit 382 erhaltenen Informationen repräsentiert. Die Vergleichseinheit 383 führt einen Vergleich unter Verwendung einer Komponente entlang der X-Achse und einer Komponente entlang der Y-Achse durch, die durch Zerlegen der von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugten Oszillationskurvenform erhalten werden. Konkret vergleicht die Vergleichseinheit 383 die Oszillationskurvenform, die die Komponente entlang der X-Achse darstellt, d. h. die X-Achsen-Oszillationskurvenform, mit der X-Achsen-Feedback-Kurvenform, die die Informationen beschreibt, die von dem Detektor 92 erhalten werden, der die Position und die Geschwindigkeit des Rotors des Servomotors 91 für die X-Achse erfasst. Die Vergleichseinheit 383 vergleicht auch die Oszillationskurvenform, die die Komponente entlang der Y-Achse darstellt, d. h. die Y-Achsen-Oszillationskurvenform, mit der Y-Achsen-Feedback-Kurvenform, die die Informationen beschreibt, die von dem Detektor 92 erhalten werden, der die Position und die Geschwindigkeit des Rotors des Servomotors 91 für die Y-Achse erfasst.The comparison unit 383 compares the oscillation waveform generated by the oscillation waveform generating unit 385 with a feedback waveform, which is the waveform representing the corresponding part of the information obtained from the waveform information obtaining unit 382. The comparison unit 383 performs a comparison using a component along the X-axis and a component along the Y-axis obtained by decomposing the oscillation waveform generated by the oscillation waveform generating unit 385. Specifically, the comparison unit 383 compares the oscillation waveform representing the component along the X-axis, that is, the X-axis oscillation waveform, with the X-axis feedback waveform describing the information obtained from the detector 92 that detects the position and the speed of the rotor of the servo motor 91 for the X-axis. The comparison unit 383 also compares the oscillation waveform representing the component along the Y-axis, i.e., the Y-axis oscillation waveform, with the Y-axis feedback waveform describing the information obtained from the detector 92 that detects the position and the speed of the rotor of the servo motor 91 for the Y-axis.

Die Oszillationsbefehlskurvenform-Anpassungseinheit 384X nimmt basierend auf dem Vergleichsergebnis der Vergleichseinheit 383 eine später beschriebene Anpassung der Oszillationsbefehlskurvenform vor.The oscillation command waveform adjusting unit 384X performs adjustment of the oscillation command waveform described later based on the comparison result of the comparison unit 383.

Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt eine X-Achsen-Oszillationsbefehlskurvenform, die die Bewegungsbahn des Werkzeugs entlang der X-Achse repräsentiert, und eine Y-Achsen-Oszillationsbefehlskurvenform, die die Bewegungsbahn des Werkzeugs entlang der Y-Achse repräsentiert, basierend auf der Oszillationskurvenform, die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugt wird, und basierend auf dem Verhältnis, das von der Zuordnungsverhältnis-Bestimmungseinheit 381 bestimmt wird. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 berechnet dann die Bewegungsstrecke des Werkzeugs pro Zeiteinheit, wenn die Vibrationsschneidbearbeitung während der Oszillation des Werkzeugs durchgeführt wird, basierend auf den in Bezug auf die jeweiligen Achsen erzeugten Oszillationsbefehlskurvenformen. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 berechnet für jede Antriebsachse die Oszillationsbewegungsstrecke, d. h. die Bewegungsstrecke des Werkzeugs pro Zeiteinheit. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 berechnet demnach die Oszillationsbewegungsstrecke des Werkzeugs entlang der X-Achse und die Oszillationsbewegungsstrecke des Werkzeugs entlang der Y-Achse auf Basis der den jeweiligen Antriebsachsen entsprechenden Oszillationsbefehlskurvenformen.The oscillation movement distance calculation unit 386 generates an X-axis oscillation command waveform representing the movement trajectory of the tool along the X-axis and a Y-axis oscillation command waveform representing the movement trajectory of the tool along the Y-axis based on the oscillation waveform generated by the oscillation waveform generation unit 385 and based on the ratio determined by the allocation ratio determination unit 381. The oscillation movement distance calculation unit 386 then calculates the movement distance of the tool per unit time when the vibration cutting is performed while the tool is oscillating, based on the oscillation command waveforms generated with respect to the respective axes. The oscillation movement distance calculation unit 386 calculates the oscillation movement distance, that is, the movement distance of the tool per unit time. The oscillation movement distance calculation unit 386 therefore calculates the oscillation movement distance of the tool along the X-axis and the oscillation movement distance of the tool along the Y-axis based on the oscillation command waveforms corresponding to the respective drive axes.

Die Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 wandelt die Bewegungsstrecke pro Zeiteinheit entlang jeder der Antriebsachsen, die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 der Interpolationsverarbeitungseinheit 38X empfangen wurde, in einen Bewegungsbefehl pro Zeiteinheit um, der die Beschleunigung und die Verzögerung auf Basis eines vorgegebenen Beschleunigungs-/Verzögerungsmusters berücksichtigt.The acceleration/deceleration processing unit 39 converts the movement distance per unit time along each of the drive axes received from the oscillation movement distance calculation unit 386 of the interpolation processing unit 38X into a movement command per unit time that specifies the acceleration and the deceleration is taken into account based on a given acceleration/deceleration pattern.

Die Achsendateneingabe-/-ausgabeeinheit 40 gibt die von der Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 ausgegebenen Bewegungsbefehle pro Zeiteinheit an die Servosteuerungseinheiten 93 aus, die die Antriebsachsen steuern. Ferner erhält die Achsendateneingabe-/-ausgabeeinheit 40 von der Antriebseinheit 90 Daten, die die Position und die Drehzahl jedes der Servomotoren 91 angeben.The axis data input/output unit 40 outputs the movement commands per unit time output from the acceleration/deceleration processing unit 39 to the servo control units 93 that control the drive axes. Further, the axis data input/output unit 40 receives data indicating the position and the rotational speed of each of the servo motors 91 from the drive unit 90.

Es wird nun eine Vibrationsschneidbearbeitung, die von der in 3 dargestellten numerischen Steuerung 1X während des Gewindeschneidens durchgeführt wird, kurz beschrieben.A vibration cutting operation is now carried out, which is carried out by the 3 The process of thread cutting performed by the numerical control 1X shown in the figure is briefly described.

Die Analyseverarbeitungseinheit 37 der numerischen Steuerung 1X liest einen Block aus dem Bearbeitungsprogramm 343 aus, der dann von der Bewegungsbefehl-Analyseeinheit 371 analysiert wird, wenn der gelesene Block ein Gewindeschneidbefehl ist, oder von der Oszillationsbefehl-Analyseeinheit 372 analysiert wird, wenn der gelesene Block ein Oszillationsbefehl ist. Die Analyseverarbeitungseinheit 37 stellt beispielsweise fest, dass der gelesene Block ein Gewindeschneidbefehl ist, wenn der Block ein G33-Code ist, und dass der gelesene Block ein Oszillationsbefehl ist, wenn der Block ein G165 -Code ist.The analysis processing unit 37 of the numerical controller 1X reads out a block from the machining program 343, which is then analyzed by the motion command analysis unit 371 when the read block is a thread cutting command, or by the oscillation command analysis unit 372 when the read block is an oscillation command. For example, the analysis processing unit 37 determines that the read block is a thread cutting command when the block is a G33 code, and that the read block is an oscillation command when the block is a G165 code.

Ein Gewindeschneidbefehl enthält ein Argument, das die Bewegungsbahn des Werkzeugs in einem einzelnen Gewindeschneidvorgang angibt. Ein Gewindeschneidbefehl umfasst beispielsweise ein Argument, das die Position zum Starten eines Gewindeschneidvorgangs spezifiziert, ein Argument, das die Position zum Beenden des Gewindeschneidvorgangs spezifiziert, und ein Argument, das die Bewegungsstrecke des Werkzeugs pro Werkstückumdrehung (d. h. die Steigung) spezifiziert. Es wird dabei davon ausgegangen, dass das beim Gewindeschneiden verwendete Werkzeug durch einen Befehl zum Spezifizieren des zu verwendenden Werkzeugs vorgegeben ist, ein Argument zur Angabe des zu verwendenden Werkzeugs kann jedoch auch in den Gewindeschneidbefehl aufgenommen werden.A thread cutting command includes an argument that specifies the path of movement of the tool in a single thread cutting operation. For example, a thread cutting command includes an argument that specifies the position to start a thread cutting operation, an argument that specifies the position to stop the thread cutting operation, and an argument that specifies the distance of movement of the tool per workpiece revolution (i.e., the pitch). It is assumed that the tool used in thread cutting is specified by a command to specify the tool to be used, but an argument to specify the tool to be used can also be included in the thread cutting command.

Wenn beim Gewindeschneiden eine Vibrationsschneidbearbeitung durchgeführt wird, wird das Gewindeschneiden durchgeführt, während das Werkzeug in einer Richtung senkrecht zur Bearbeitungsrichtung des Gewindeschneidens in Oszillation versetzt wird, d. h. in einer Richtung senkrecht zur Rotationsachse des Werkstücks (siehe 4), im Unterschied zu dem Fall, bei dem das Vibrationsschneiden während einer üblichen Werkstückbearbeitung durchgeführt wird. 4 zeigt eine Darstellung zur Veranschaulichung der Oszillationsrichtung des Werkzeugs, wenn bei einer Gewindeschneidbearbeitung ein Vibrationsschneiden durchgeführt wird. Es wird angenommen, dass die X-Achse und die Z-Achse senkrecht zueinander verlaufen. Wie in 4 dargestellt ist, wird das Werkzeug beim Vibrationsschneiden in X-Achsenrichtung in Oszillation versetzt, wobei die Bearbeitungsrichtung die Z-Achsenrichtung ist.When vibration cutting is performed during thread cutting, thread cutting is performed while the tool is oscillated in a direction perpendicular to the thread cutting machining direction, that is, in a direction perpendicular to the rotation axis of the workpiece (see 4 ), in contrast to the case where vibration cutting is carried out during normal workpiece machining. 4 shows a diagram to illustrate the oscillation direction of the tool when vibration cutting is performed in thread cutting machining. It is assumed that the X-axis and the Z-axis are perpendicular to each other. As shown in 4 As shown, during vibration cutting, the tool is oscillated in the X-axis direction, with the machining direction being the Z-axis direction.

Nachdem die Oszillationsbefehl-Analyseeinheit 372 einen Oszillationsbefehl analysiert hat, erhält die Oszillationskurvenform-Erzeugungseinheit 385 das Ergebnis der Analyse des Oszillationsbefehls über den gemeinsam genutzten Bereich 344 und erzeugt eine Oszillationskurvenform, bei der es sich um eine Oszillationsgrundkurvenform handelt, auf Basis des erhaltenen Analyseergebnisses. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 berechnet beispielsweise die Oszillationsbewegungsstrecke entlang der X-Achse unter Verwendung der von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugten Oszillationskurvenform und unter Verwendung der Bewegungsbahn des Werkzeugs. Konkret berechnet die Oszillationsbewegungsstrecken-Berechnungseinheit 386 eine Oszillationsvorlaufposition, die durch Addition der Amplitude der Oszillationskurvenform zu der Bewegungsbahn des Werkzeugs erhalten wird, und eine Oszillationsrücklaufposition, die durch Subtraktion der Amplitude der Oszillationskurvenform von der Bewegungsbahn des Werkzeugs erhalten wird, um so die Oszillationsbewegungsstrecke entlang der X-Achse zu erzeugen. Die Bewegungsbahn des Werkzeugs erhält man aus dem Ergebnis der Analyse des Gewindeschneidbefehls durch die Bewegungsbefehl-Analyseeinheit 371.After the oscillation command analysis unit 372 analyzes an oscillation command, the oscillation waveform generation unit 385 obtains the result of analysis of the oscillation command via the shared area 344 and generates an oscillation waveform that is a basic oscillation waveform based on the obtained analysis result. The oscillation movement distance calculation unit 386 calculates, for example, the oscillation movement distance along the X axis using the oscillation waveform generated by the oscillation waveform generation unit 385 and using the movement trajectory of the tool. Specifically, the oscillation movement distance calculation unit 386 calculates an oscillation advance position obtained by adding the amplitude of the oscillation waveform to the movement trajectory of the tool and an oscillation retreat position obtained by subtracting the amplitude of the oscillation waveform from the movement trajectory of the tool, so as to generate the oscillation movement distance along the X axis. The movement trajectory of the tool is obtained from the result of analysis of the thread cutting command by the movement command analysis unit 371.

Die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 berechneten Oszillationsbewegungsstrecken werden über die Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 und über die Achsendateneingabe-/-ausgabeeinheit 40 an die Antriebseinheit 90 gesendet. In der Antriebseinheit 90 steuert die X-Achsen-Servosteuerungseinheit 93X den Servomotor 91 für die X-Achse auf Basis der Oszillationsbewegungsstrecke, die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 empfangen wird. Die Antriebseinheit 90 führt demnach bei der Gewindeschneidbearbeitung ein Vibrationsschneiden durch. 5 veranschaulicht das Prinzip des Vibrationsschneidens bei einer Gewindeschneidbearbeitung schematisch. In 5 zeigt ein dunkler Bereich einen tief geschnittenen Bereich des Werkstücks, der aus einem großen Schnittvolumen während der Oszillation des Werkzeugs resultiert, wobei ein heller Bereich einen leicht geschnittenen Bereich des Werkstücks zeigt. Durch eine Phasenverschiebung von beispielsweise 180 Grad zwischen der in 4 dargestellten Oszillation entlang der X-Achsenrichtung bei der ersten Umdrehung des Gewindeschneidvorgangs und der Oszillation entlang der X-Achsenrichtung bei der zweiten Umdrehung des Gewindeschneidvorgangs kann der bei der ersten Umdrehung tief geschnittene Bereich in der zweiten Umdrehung leicht geschnitten werden, wobei in diesem Bereich Späne gebrochen werden. Demnach werden zerkleinerte Späne ausgetragen.The oscillation movement distances calculated by the oscillation movement distance calculation unit 386 are sent to the drive unit 90 via the acceleration/deceleration processing unit 39 and the axis data input/output unit 40. In the drive unit 90, the X-axis servo control unit 93X controls the X-axis servo motor 91 based on the oscillation movement distance received from the oscillation movement distance calculation unit 386. The drive unit 90 thus performs vibration cutting in the thread cutting machining. 5 illustrates the principle of vibration cutting in thread cutting schematically. In 5 a dark area shows a deeply cut area of the workpiece resulting from a large cutting volume during the oscillation of the tool, whereas a light area shows a lightly cut area of the workpiece. By a phase shift of, for example, 180 Degree between the 4 By the oscillation along the X-axis direction in the first revolution of the thread cutting process and the oscillation along the X-axis direction in the second revolution of the thread cutting process, the area cut deeply in the first revolution can be cut slightly in the second revolution, and chips are broken in this area. Thus, crushed chips are discharged.

6 zeigt ein Flussdiagramm zur Veranschaulichung eines Beispiels für eine Prozedur, bei der die numerische Steuerung 1X gemäß der ersten Ausführungsform einen Gewindeschneidvorgang ausführt, während ein Werkzeug mittels Imaginärachsensteuerung in Oszillation versetzt wird. Wenn bei dieser Prozedur eine Imaginärachsensteuerung durchgeführt werden soll, enthält das Bearbeitungsprogramm 343 einen Imaginärachsensteuerbefehl, der eine Anweisung zum Starten der Imaginärachsensteuerung angibt. Wenn das Werkzeug entlang einer imaginären Achse durch eine Imaginärachsensteuerung in Oszillation versetzt werden soll, erzeugt der Ersteller des Bearbeitungsprogramms 343 demnach ein Bearbeitungsprogramm 343, das die numerische Steuerung 1X veranlasst, zuerst einen Imaginärachsensteuerbefehl und dann anschließend einen Oszillationsbefehl auszuführen. Ein Imaginärachsensteuerbefehl umfasst verschiedene Argumente, die die Beziehung zwischen dem imaginären Maschinenkoordinatensystem, das bei der Imaginärachsensteuerung verwendet werden soll, und dem realen Maschinenkoordinatensystem spezifizieren. Beispiele für Argumente, die in einem Imaginärachsensteuerbefehl enthalten sind, umfassen ein Argument, das den Drehwinkel angibt, der bei der Festlegung des imaginären Maschinenkoordinatensystems durch Drehung des realen Maschinenkoordinatensystems zu verwenden ist, d. h. den Drehwinkel, der angibt, wie weit die realen Achsen des realen Maschinenkoordinatensystems gedreht werden müssen, um das imaginäre Maschinenkoordinatensystem festzulegen; und ein Argument, das angibt, wie weit das reale Maschinenkoordinatensystem bei der Festlegung des imaginären Maschinenkoordinatensystems in den Richtungen der jeweiligen realen Achsen verschoben werden muss. Hinsichtlich eines die Oszillationsrichtung in einem Oszillationsbefehl spezifizierenden Arguments spezifiziert ein solches Argument in einem Oszillationsbefehl, der nach dem Start der Imaginärachsensteuerung ausgeführt wird, die Oszillationsrichtung im imaginären Maschinenkoordinatensystem. Wenn beispielsweise ein Oszillationsbefehl, der ein Argument enthält, das eine Oszillation entlang der X-Achsenrichtung spezifiziert, nach dem Start der Imaginärachsensteuerung ausgeführt wird, wird die durch das Argument dieses Oszillationsbefehls spezifizierte Oszillationsrichtung als die imaginäre X-Achsenrichtung gelesen. 6 is a flowchart showing an example of a procedure in which the numerical controller 1X according to the first embodiment performs a thread cutting operation while oscillating a tool by means of imaginary axis control. In this procedure, when imaginary axis control is to be performed, the machining program 343 includes an imaginary axis control command indicating an instruction to start the imaginary axis control. Accordingly, when the tool is to be oscillated along an imaginary axis by imaginary axis control, the creator of the machining program 343 creates a machining program 343 that causes the numerical controller 1X to first execute an imaginary axis control command and then subsequently execute an oscillation command. An imaginary axis control command includes various arguments that specify the relationship between the imaginary machine coordinate system to be used in the imaginary axis control and the real machine coordinate system. Examples of arguments included in an imaginary axis control command include an argument specifying the angle of rotation to be used when setting the imaginary machine coordinate system by rotating the real machine coordinate system, that is, the angle of rotation specifying how far the real axes of the real machine coordinate system need to be rotated to set the imaginary machine coordinate system; and an argument specifying how far the real machine coordinate system needs to be shifted in the directions of the respective real axes when setting the imaginary machine coordinate system. Regarding an argument specifying the oscillation direction in an oscillation command, such an argument in an oscillation command executed after the start of imaginary axis control specifies the oscillation direction in the imaginary machine coordinate system. For example, if an oscillation command that includes an argument specifying oscillation along the X-axis direction is executed after the start of imaginary axis control, the oscillation direction specified by the argument of this oscillation command is read as the imaginary X-axis direction.

Zu Beginn der in 6 dargestellten Prozedur erhält die Analyseverarbeitungseinheit 37 einen Drehwinkel von einem Imaginärachsensteuerbefehl aus den in dem Bearbeitungsprogramm 343 enthaltenen Befehlen (Schritt S1). Es wird darauf hingewiesen, dass der Drehwinkel hier als von einem Imaginärachsensteuerbefehl erhalten beschrieben wird, die Analyseverarbeitungseinheit 37 den Drehwinkel jedoch auch auf Basis eines Befehls erhalten kann, der das zu verwendende Werkzeug spezifiziert. Bei der vorliegenden Ausführungsform wird wie in 2 dargestellt davon ausgegangen, dass sich die beim Gewindeschneiden verwendeten Werkzeuge während der Bearbeitung in vorgegebenen Richtungen bewegen. Beispielsweise bilden die imaginäre X-Achse, die parallel zur Oszillationsrichtung des Schneidwerkzeugs T2 verläuft, und die reale X-Achse einen Winkel von 45 Grad. Der Drehwinkel beträgt daher 45 Grad, wenn das Schneidwerkzeug T2 als das zu verwendende Werkzeug festgelegt wird. Alternativ dazu beträgt der Drehwinkel 90 Grad, wenn das Schneidewerkzeug T1 als das zu verwendende Werkzeug spezifiziert wird. Die Wahl des zu verwendenden Werkzeugs bestimmt somit den Winkel zwischen der imaginären Achse und der realen Achse, d. h. den Drehwinkel.At the beginning of the 6 In the procedure shown in FIG. 1, the analysis processing unit 37 obtains a rotation angle from an imaginary axis control command from among the commands included in the machining program 343 (step S1). Note that the rotation angle is described here as being obtained from an imaginary axis control command, but the analysis processing unit 37 may also obtain the rotation angle based on a command specifying the tool to be used. In the present embodiment, as shown in FIG. 2 As shown, it is assumed that the tools used in thread cutting move in predetermined directions during machining. For example, the imaginary X-axis, which is parallel to the oscillation direction of the cutting tool T2, and the real X-axis form an angle of 45 degrees. The angle of rotation is therefore 45 degrees when the cutting tool T2 is specified as the tool to be used. Alternatively, the angle of rotation is 90 degrees when the cutting tool T1 is specified as the tool to be used. The choice of the tool to be used thus determines the angle between the imaginary axis and the real axis, that is, the angle of rotation.

Als Nächstes zerlegt die Interpolationsverarbeitungseinheit 38X die Oszillationskurvenform auf Basis des Drehwinkels vektoriell in Komponenten entlang der realen Achsen (Schritt S2). In Schritt S2 bestimmt die Zuordnungsverhältnis-Bestimmungseinheit 381 zunächst das Verhältnis (im Folgenden als Zuordnungsverhältnis bezeichnet), in dem die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenform basierend auf dem in Schritt S1 erhaltenen Drehwinkel vektoriell in eine reale X-Achsen-Komponente und eine reale Y-Achsen-Komponente zu zerlegen ist. Die Zuordnungsverhältnis-Bestimmungseinheit 381 teilt der Oszillationsbewegungsstrecken-Berechnungseinheit 386 das bestimmte Zuordnungsverhältnis mit. Die Oszillationskurvenform-Erzeugungseinheit 385 erzeugt eine Oszillationskurvenform basierend auf dem Ergebnis der Analyse des Oszillationsbefehls und übergibt die Oszillationskurvenform an die Oszillationsbewegungsstrecken-Berechnungseinheit 386. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt Oszillationsbefehlskurvenformen für die jeweiligen Achsen auf Basis der von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugten Oszillationskurvenform und des von der Zuordnungsverhältnis-Bestimmungseinheit 381 bestimmten Zuordnungsverhältnisses. Die Oszillationsbewegungsstrecken-Berechnungseinheit 386 zerlegt die von der Oszillationskurvenform-Erzeugungseinheit 385 erzeugte Oszillationskurvenformkomponente demnach vektoriell in Komponenten entlang der jeweiligen realen Achsen auf Basis des Zuordnungsverhältnisses, um die Oszillationsbefehlskurvenformen für die jeweiligen Achsen zu erzeugen. Bei der vorliegenden Ausführungsform erzeugt die Oszillationsbewegungsstrecken-Berechnungseinheit 386 eine Oszillationsbefehlskurvenform für die reale X-Achse und eine Oszillationsbefehlskurvenform für die reale Y-Achse. Dann addiert die Oszillationsbewegungsstrecken-Berechnungseinheit 386 den Wert der Oszillationsbefehlskurvenform für die reale X-Achse zur Bewegungsstrecke des Werkzeugs entlang der realen X-Achse und den Wert der Oszillationsbefehlskurvenform für die reale Y-Achse zur Bewegungsstrecke des Werkzeugs entlang der realen Y-Achse, um die Oszillationsbewegungsstecken entlang der jeweiligen Achsen zu erzeugen. Die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugten Oszillationsbewegungsstrecken entlang der jeweiligen Achsen werden über die Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 und über die Achsendateneingabe-/-ausgabeeinheit 40 an die Servosteuerungseinheiten 93 für die jeweiligen Wellen (d. h. die X-Achsen-Servosteuerungseinheit 93X, die Y-Achsen-Servosteuerungseinheit 93Y, ... ) der Antriebseinheit 90 übertragen. Die Servosteuerungseinheiten 93 für die jeweiligen Wellen steuern die jeweiligen Servomotoren 91 unter deren Kontrolle auf Basis der von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 empfangenen Oszillationsbewegungsstrecken.Next, the interpolation processing unit 38X vectorially decomposes the oscillation waveform into components along the real axes based on the rotation angle (step S2). In step S2, the allocation ratio determination unit 381 first determines the ratio (hereinafter referred to as allocation ratio) in which the oscillation waveform generated by the oscillation waveform generation unit 385 is to be vectorially decomposed into a real X-axis component and a real Y-axis component based on the rotation angle obtained in step S1. The allocation ratio determination unit 381 notifies the determined allocation ratio to the oscillation movement distance calculation unit 386. The oscillation waveform generation unit 385 generates an oscillation waveform based on the result of the analysis of the oscillation command and passes the oscillation waveform to the oscillation movement distance calculation unit 386. The oscillation movement distance calculation unit 386 generates oscillation command waveforms for the respective axes based on the oscillation waveform generated by the oscillation waveform generation unit 385 and the allocation ratio determined by the allocation ratio determination unit 381. The oscillation movement distance calculation unit 386 therefore vectorially decomposes the oscillation waveform component generated by the oscillation waveform generation unit 385 into components along the respective real axes based on the allocation ratio to calculate the oscillation command waveform. command waveforms for the respective axes. In the present embodiment, the oscillation movement distance calculation unit 386 generates an oscillation command waveform for the real X-axis and an oscillation command waveform for the real Y-axis. Then, the oscillation movement distance calculation unit 386 adds the value of the oscillation command waveform for the real X-axis to the movement distance of the tool along the real X-axis and the value of the oscillation command waveform for the real Y-axis to the movement distance of the tool along the real Y-axis to generate the oscillation movement distances along the respective axes. The oscillation movement distances along the respective axes generated by the oscillation movement distance calculation unit 386 are transmitted to the servo control units 93 for the respective shafts (ie, the X-axis servo control unit 93X, the Y-axis servo control unit 93Y, ... ) of the drive unit 90 via the acceleration/deceleration processing unit 39 and the axis data input/output unit 40. The servo control units 93 for the respective shafts control the respective servo motors 91 under their control based on the oscillation movement distances received from the oscillation movement distance calculation unit 386.

In dem in 2 dargestellten Beispiel wird das Schneidwerkzeug T2 ausgewählt, wobei der Drehwinkel der imaginären X-Achse, der der Oszillationsrichtung des Schneidwerkzeugs T2 entspricht, 45 Grad beträgt. In diesem Fall ist das Zuordnungsverhältnis der Oszillationskurvenform 1/2 für die reale X-Achse und 1/2 für die reale Y-Achse. 7 zeigt ein Beispiel für die Oszillationsbefehlskurvenform für die reale X-Achse und die Oszillationsbefehlskurvenform für die reale Y-Achse, wenn das in 2 dargestellte Schneidwerkzeug T2 ausgewählt und eine Gewindeschneidbearbeitung mit Vibrationsschneiden durchgeführt wird. 7 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für Oszillationsbefehlskurvenformen, die von der Oszillationskurvenform-Erzeugungseinheit 385 einer numerischen Steuerung 1X gemäß der ersten Ausführungsform erzeugt werden. Teil (a) von 7 veranschaulicht die Oszillationsbefehlskurvenform für die reale X-Achse, und Teil (b) von 7 veranschaulicht die Oszillationsbefehlskurvenform für die reale Y-Achse. Zur Vereinfachung der Darstellung zeigt 7 die Oszillationsbefehlskurvenformen ohne Berücksichtigung der Bewegungsstrecken der jeweiligen Achsen, d. h. die Oszillationskurvenformen, wenn die Bewegungsstrecken der jeweiligen Achsen 0 sind. Gemäß dem Zuordnungsverhältnis der Oszillationskurvenform, das 1/2 für die reale X-Achse und 1/2 für die reale Y-Achse beträgt, weisen die Oszillationsbefehlskurvenform für die reale X-Achse und die Oszillationsbefehlskurvenform für die reale Y-Achse die gleiche Amplitude und die gleiche Frequenz auf. Ein von 45 Grad verschiedener Drehwinkel führt zu einer Oszillationsbefehlskurvenform für die reale X-Achse und Oszillationsbefehlskurvenform für die reale Y-Achse, deren Amplituden sich in der Größe voneinander unterscheiden. Es wird darauf hingewiesen, dass die Frequenz der Oszillationsbefehlskurvenform für die reale X-Achse und die Frequenz der Oszillationsbefehlskurvenform für die reale Y-Achse auch dann gleich sind, wenn der Drehwinkel von 45 Grad abweicht.In the 2 In the example shown, the cutting tool T2 is selected, where the rotation angle of the imaginary X-axis corresponding to the oscillation direction of the cutting tool T2 is 45 degrees. In this case, the allocation ratio of the oscillation waveform is 1/2 for the real X-axis and 1/2 for the real Y-axis. 7 shows an example of the oscillation command waveform for the real X-axis and the oscillation command waveform for the real Y-axis when the 2 The cutting tool T2 shown is selected and thread cutting is carried out with vibration cutting. 7 is a diagram showing an example of oscillation command waveforms generated by the oscillation waveform generating unit 385 of a numerical controller 1X according to the first embodiment. Part (a) of 7 illustrates the oscillation command waveform for the real X-axis, and part (b) of 7 illustrates the oscillation command waveform for the real Y-axis. To simplify the illustration, 7 the oscillation command waveforms without considering the moving distances of the respective axes, that is, the oscillation waveforms when the moving distances of the respective axes are 0. According to the allocation ratio of the oscillation waveform, which is 1/2 for the real X-axis and 1/2 for the real Y-axis, the oscillation command waveform for the real X-axis and the oscillation command waveform for the real Y-axis have the same amplitude and the same frequency. A rotation angle other than 45 degrees results in an oscillation command waveform for the real X-axis and oscillation command waveform for the real Y-axis whose amplitudes are different from each other in size. It should be noted that the frequency of the oscillation command waveform for the real X-axis and the frequency of the oscillation command waveform for the real Y-axis are the same even if the rotation angle is different from 45 degrees.

Zurückkommend auf die Beschreibung von 6 erhält die Kurvenforminformationsbezugseinheit 382 anschließend Feedback-Oszillationskurvenformen (im Folgenden als FB-Oszillationskurvenformen bezeichnet) für die jeweiligen Achsen auf Basis von Daten, die von den an den jeweiligen Servomotoren 91 angebrachten Detektoren 92 ausgegeben werden (Schritt S3). Bei einer FB-Oszillationskurvenform handelt es sich um eine tatsächliche Oszillationskurvenform des Werkzeugs, das bei der Bearbeitung verwendet wird.Returning to the description of 6 the waveform information acquisition unit 382 then obtains feedback oscillation waveforms (hereinafter referred to as FB oscillation waveforms) for the respective axes based on data output from the detectors 92 attached to the respective servo motors 91 (step S3). An FB oscillation waveform is an actual oscillation waveform of the tool used in machining.

Als Nächstes vergleicht die Vergleichseinheit 383 die Oszillationsbefehlskurvenformen für die jeweiligen Achsen, die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt wurden, mit den FB-Oszillationskurvenformen für die jeweiligen Achsen, die in Schritt S3 erhalten wurden (Schritt S4). Die Oszillationsbefehlskurvenformen werden mit den FB-Oszillationskurvenformen auf einer pro-Achsen-Basis verglichen. Wenn es sich beispielsweise bei den Oszillationsbefehlskurvenformen für die jeweiligen Achsen, die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt wurden, um die Kurvenformen handelt, die in 8 durch durchgezogene Linien dargestellt sind, und die FB-Oszillationskurvenformen für die jeweiligen Achsen die Kurvenformen sind, die in 8 durch gestrichelte Linien dargestellt sind, bestimmt die Vergleichseinheit 383, dass die Oszillationsbefehlskurvenform für die reale X-Achse und FB-Oszillationsbefehlskurvenform für die reale X-Achse unterschiedliche Amplituden haben und dass die Oszillationsbefehlskurvenform für die reale Y-Achse und die FB-Oszillationskurvenform für die reale Y-Achse unterschiedliche Amplituden und unterschiedliche Phasen aufweisen. Die Vergleichseinheit 383 bestimmt, ob die Amplituden gleich sind, indem sie beispielsweise den Maximalwert der Amplitude der Oszillationsbefehlskurvenform mit dem Maximalwert der Amplitude der FB-Oszillationskurvenform vergleicht. Ferner bestimmt die Vergleichseinheit 383, ob die Phasen gleich sind, indem sie beispielsweise die Position des Peaks der Amplitude der Oszillationsbefehlskurvenform mit der Position des Peaks der Amplitude der FB-Oszillationskurvenform vergleicht. Die Vergleichseinheit 383 kann bestimmen, dass die Amplituden gleich sind, wenn die Differenz zwischen der Amplitude der Oszillationsbefehlskurvenform und der Amplitude der FB-Oszillationskurvenform kleiner oder gleich einem festgelegten Wert ist, und sie kann bestimmen, dass die Phasen gleich sind, wenn die Differenz zwischen der Phase der Oszillationsbefehlskurvenform und der Phase der FB-Oszillationskurvenform kleiner oder gleich einem festgelegten Wert ist.Next, the comparison unit 383 compares the oscillation command waveforms for the respective axes generated by the oscillation movement distance calculation unit 386 with the FB oscillation waveforms for the respective axes obtained in step S3 (step S4). The oscillation command waveforms are compared with the FB oscillation waveforms on a per-axis basis. For example, if the oscillation command waveforms for the respective axes generated by the oscillation movement distance calculation unit 386 are the waveforms obtained in 8th are shown by solid lines, and the FB oscillation waveforms for the respective axes are the waveforms shown in 8th represented by dashed lines, the comparison unit 383 determines that the oscillation command waveform for the real X-axis and FB oscillation command waveform for the real X-axis have different amplitudes and that the oscillation command waveform for the real Y-axis and the FB oscillation waveform for the real Y-axis have different amplitudes and different phases. The comparison unit 383 determines whether the amplitudes are equal by, for example, comparing the maximum value of the amplitude of the oscillation command waveform with the maximum value of the amplitude of the FB oscillation waveform. Further, the comparison unit 383 determines whether the phases are equal by, for example, comparing the position of the peak of the amplitude of the oscillation command waveform with the position of the peak of the amplitude of the FB oscillation curves form. The comparison unit 383 may determine that the amplitudes are equal when the difference between the amplitude of the oscillation command waveform and the amplitude of the FB oscillation waveform is less than or equal to a set value, and may determine that the phases are equal when the difference between the phase of the oscillation command waveform and the phase of the FB oscillation waveform is less than or equal to a set value.

Wenn die Amplituden bei beiden Paaren aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform für die jeweiligen Achsen gleich sind (Schritt S5: Ja), setzt die Interpolationsverarbeitungseinheit 38X die Prozedur mit Schritt S7 fort. Wenn die Amplituden bei beiden Paaren aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform für die jeweiligen Achsen nicht gleich sind, d. h. wenn die Amplituden bei zumindest einem der Paare aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform entweder für die reale X-Achse oder die reale Y-Achse nicht gleich sind (Schritt S5: Nein), passt die Oszillationsbefehlskurvenform-Anpassungseinheit 384X die Oszillationsbefehlskurvenform an, um den Amplitudenunterschied zwischen der Oszillationsbefehlskurvenform und der FB-Oszillationskurvenform des Paares mit unterschiedlichen Amplituden auf nahezu Null zu reduzieren (Schritt S6). In dem in 8 dargestellten Beispiel sind die Amplituden weder für die reale X-Achse noch für die reale Y-Achse gleich. Daher passt die Oszillationsbefehlskurvenform-Anpassungseinheit 384X die Amplitude der Oszillationsbefehlskurvenform für die reale X-Achse und die Amplitude der Oszillationsbefehlskurvenform für die reale Y-Achse an. Beispielsweise berechnet die Oszillationsbefehlskurvenform-Anpassungseinheit 384X an jedem von mehreren Punkten die Differenz zwischen dem Maximalwert der Oszillationsbefehlskurvenform und dem Maximalwert der FB-Oszillationskurvenform, wobei deren Mittelwert zur Anpassung der Amplitude zu dem Maximalwert der Oszillationsbefehlskurvenform, die zum nächsten Zeitpunkt erzeugt wird, addiert oder davon subtrahiert wird. Der Anpassungswert, der bei der Anpassung der Amplitude einer Oszillationsbefehlskurvenform verwendet wird, wird hier als Oszillationsamplitudenanpassungswert bezeichnet.If the amplitudes of both pairs of oscillation command waveform and FB oscillation waveform for the respective axes are the same (step S5: Yes), the interpolation processing unit 38X proceeds to step S7. When the amplitudes in both pairs of oscillation command waveform and FB oscillation waveform are not equal for the respective axes, that is, when the amplitudes in at least one of the pairs of oscillation command waveform and FB oscillation waveform are not equal for either the real X-axis or the real Y-axis (step S5: No), the oscillation command waveform adjusting unit 384X adjusts the oscillation command waveform to reduce the amplitude difference between the oscillation command waveform and the FB oscillation waveform of the pair with different amplitudes to almost zero (step S6). In the step shown in 8th In the example shown, the amplitudes are not the same for either the real X-axis or the real Y-axis. Therefore, the oscillation command waveform adjusting unit 384X adjusts the amplitude of the oscillation command waveform for the real X-axis and the amplitude of the oscillation command waveform for the real Y-axis. For example, the oscillation command waveform adjusting unit 384X calculates the difference between the maximum value of the oscillation command waveform and the maximum value of the FB oscillation waveform at each of a plurality of points, and adds or subtracts the average value thereof to or from the maximum value of the oscillation command waveform generated at the next time point to adjust the amplitude. The adjustment value used in adjusting the amplitude of an oscillation command waveform is referred to herein as an oscillation amplitude adjustment value.

Wenn die Phasen bei beiden Paaren aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform für die jeweiligen Achsen gleich sind (Schritt S7: Ja), setzt die Interpolationsverarbeitungseinheit 38X die Prozedur mit Schritt S3 fort. Wenn die Phasen bei beiden Paaren aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform für die jeweiligen Achsen nicht gleich sind, d. h. wenn die Phasen bei zumindest einem der Paare aus Oszillationsbefehlskurvenform und FB-Oszillationskurvenform entweder für die reale X-Achse oder die reale Y-Achse nicht gleich sind (Schritt S7: Nein), passt die Oszillationsbefehlskurvenform-Anpassungseinheit 384X die Oszillationsbefehlskurvenform an, um die Abweichung der Phase zwischen der Oszillationsbefehlskurvenform und der FB-Oszillationskurvenform des Paares mit unterschiedlichen Phasen auf nahezu Null zu reduzieren (Schritt S8). Bei dem in 8 dargestellten Beispiel weisen die Oszillationsbefehlskurvenform für die reale X-Achse und die FB-Oszillationskurvenform für die reale X-Achse die gleiche Phase auf, wobei die Oszillationsbefehlskurvenform für die reale Y-Achse und die FB-Oszillationskurvenform für die reale Y-Achse unterschiedliche Phasen haben. Daher passt die Oszillationsbefehlskurvenform-Anpassungseinheit 384X die Phase der Oszillationsbefehlskurvenform für die reale Y-Achse an. Wenn es eine Phasenabweichung zwischen der Oszillationsbefehlskurvenform und der FB-Oszillationskurvenform gibt, ist die Phase der FB-Oszillationskurvenform normalerweise gegenüber der Phase der Oszillationsbefehlskurvenform verzögert. Um die Ansprechempfindlichkeit des entsprechenden Servomotors 91 zu erhöhen und die Phasenabweichung auf nahezu Null zu reduzieren, passt die Oszillationsbefehlskurvenform-Anpassungseinheit 384X einen Servoparameter oder mehrere Servoparameter (im Folgenden allgemeiner als Servoparameter bezeichnet) an, wie beispielsweise die Schleifenverstärkung für den Strom und/oder die Schleifenverstärkung für die Drehzahl. Diese Servoparameter sind in den Parameterdaten 341 enthalten, die in der Speichereinheit 34 gespeichert sind. Die Oszillationsbefehlskurvenform-Anpassungseinheit 384X nimmt eine Anpassung vor, indem sie von den in den Parameterdaten 341 enthaltenen Servoparametern jeden der Servoparameterwerte, die zur Anpassung der Phase erforderlich sind, beispielsweise um „5“ erhöht. Die angepassten Parameter werden über die Beschleunigungs-/Verzögerungsverarbeitungseinheit 39 und über die Achsendateneingabe-/-ausgabeeinheit 40 an die X-Achsen-Servosteuerungseinheit 93X, die Y-Achsen-Servosteuerungseinheit 93Y, ... übertragen, wodurch die Schleifenverstärkung für den Strom, die Schleifenverstärkung für die Drehzahl und/oder dergleichen des entsprechenden Servomotors 91 angepasst werden kann. Auch wenn der Anpassungswert eines Servoparameters hier mit „5“ angegeben ist, kann der Anpassungswert ein anderer Wert sein. Nach der Durchführung von Schritt S8 kehrt die Interpolationsverarbeitungseinheit 38X zur Prozedur von Schritt S3 zurück.If the phases of both pairs of oscillation command waveform and FB oscillation waveform are the same for the respective axes (step S7: Yes), the interpolation processing unit 38X proceeds to step S3. If the phases of both pairs of oscillation command waveform and FB oscillation waveform are not the same for the respective axes, that is, if the phases of at least one of the pairs of oscillation command waveform and FB oscillation waveform are not the same for either the real X-axis or the real Y-axis (step S7: No), the oscillation command waveform adjusting unit 384X adjusts the oscillation command waveform to reduce the deviation of the phase between the oscillation command waveform and the FB oscillation waveform of the pair with different phases to almost zero (step S8). In the case of the step shown in 8th In the example shown, the oscillation command waveform for the real X-axis and the FB oscillation waveform for the real X-axis have the same phase, while the oscillation command waveform for the real Y-axis and the FB oscillation waveform for the real Y-axis have different phases. Therefore, the oscillation command waveform adjusting unit 384X adjusts the phase of the oscillation command waveform for the real Y-axis. When there is a phase deviation between the oscillation command waveform and the FB oscillation waveform, the phase of the FB oscillation waveform is normally delayed from the phase of the oscillation command waveform. In order to increase the responsiveness of the corresponding servo motor 91 and reduce the phase deviation to almost zero, the oscillation command waveform adjusting unit 384X adjusts one or more servo parameters (hereinafter more generally referred to as servo parameters), such as the loop gain for current and/or the loop gain for rotational speed. These servo parameters are included in the parameter data 341 stored in the storage unit 34. The oscillation command waveform adjusting unit 384X performs adjustment by increasing each of the servo parameter values required for adjusting the phase, for example, by “5”, from the servo parameters included in the parameter data 341. The adjusted parameters are transmitted to the X-axis servo control unit 93X, the Y-axis servo control unit 93Y, ... via the acceleration/deceleration processing unit 39 and the axis data input/output unit 40, whereby the loop gain for current, the loop gain for rotational speed and/or the like of the corresponding servo motor 91 can be adjusted. Although the adjustment value of a servo parameter is indicated here as "5", the adjustment value may be another value. After performing step S8, the interpolation processing unit 38X returns to the procedure of step S3.

Die Durchführung der in 6 dargestellten Prozedur zur Anpassung der Oszillationsbefehlskurvenformen bewirkt, dass sich die kombinierte Oszillationskurvenform, die durch Kombination der Oszillationsbefehlskurvenform für die reale X-Achse und der Oszillationsbefehlskurvenform für die reale Y-Achse erhalten wird, von der in 9 dargestellten zu der in 10 dargestellten ändert. Bei der in 9 dargestellten kombinierten Oszillationskurvenform handelt es sich um die kombinierte Oszillationskurvenform, bevor eine Anpassung der Amplituden und der Phasen der Oszillationsbefehlskurvenformen für die jeweiligen Achsen vorgenommen wird. Die in 10 dargestellte kombinierte Oszillationskurvenform ist die kombinierte Oszillationskurvenform, nachdem eine Anpassung der Amplituden und Phasen der Oszillationsbefehlskurvenformen für die jeweiligen Achsen vorgenommen wurde.The implementation of the 6 The procedure for adjusting the oscillation command waveforms shown causes the combined oscillation waveform obtained by combining the oscillation command waveform for the real X-axis and the oscillation command waveform for the real Y-axis Axis is obtained from which in 9 shown to the in 10 shown. In the case of the 9 The combined oscillation waveform shown is the combined oscillation waveform before adjusting the amplitudes and phases of the oscillation command waveforms for the respective axes. The 10 The combined oscillation waveform shown is the combined oscillation waveform after adjusting the amplitudes and phases of the oscillation command waveforms for the respective axes.

Indem die in 6 dargestellte Prozedur durchgeführt wird, d. h. die Prozedur zur Anpassung der Amplituden und der Phasen der Oszillationsbefehlskurvenformen für die jeweiligen Achsen auf Basis der FB-Oszillationskurvenformen für die jeweiligen Achsen, entlang derer das Werkzeug bewegt wird, kann die kombinierte Oszillationskurvenform eine normalere Form aufweisen, selbst wenn sich die Ansprechempfindlichkeiten der Servomotoren 91 der jeweiligen Wellen voneinander unterscheiden. Auf diese Weise wird bei der Vibrationsschneidbearbeitung mittels Imaginärachsensteuerung das Brechen von Spänen sichergestellt.By 6 is performed, that is, the procedure for adjusting the amplitudes and the phases of the oscillation command waveforms for the respective axes based on the FB oscillation waveforms for the respective axes along which the tool is moved, the combined oscillation waveform can have a more normal shape even if the response sensitivities of the servo motors 91 of the respective shafts differ from each other. In this way, chip breaking is ensured in vibration cutting machining by imaginary axis control.

Auch wenn die vorliegende Ausführungsform in Bezug auf den Fall der Anwendung der Imaginärachsensteuerung auf die Vibrationsschneidbearbeitung beschrieben wurde, ist die in 11 dargestellte Schrägachsensteuerung ebenfalls anwendbar. Die in 11 dargestellte Schrägachsensteuerung wird bei der Steuerung einer Werkzeugmaschine mit der in 12 dargestellten Konfiguration verwendet, d. h. einer Werkzeugmaschine, bei der der Winkel zwischen den Achsen, an denen die Servomotoren befestigt sind (d. h in den 11 und 12 X-Achse und Y-Achse), nicht 90 Grad beträgt. In dem in 11 dargestellten Beispiel bilden die reale Y-Achse und die Y-Achse im Programm (y-Achse wie dargestellt) einen schiefen Winkel θ. Um das Werkzeug in Richtung der y-Achse in Oszillation zu versetzen, ist eine synchrone Steuerung der Servomotoren der realen X-Achse und der realen Y-Achse erforderlich. Ähnlich wie bei der Anwendung der vorstehenden Imaginärachsensteuerung kann dies durch Erzeugung von Oszillationsbefehlskurvenformen für die reale X-Achse und die reale Y-Achse erreicht werden, indem eine Oszillationskurvenform für die y-Achse erzeugt wird und diese Oszillationskurvenform auf Basis des schiefen Winkels θ vektoriell in Komponenten entlang der realen X-Achse und entlang der realen Y-Achse zerlegt wird.Although the present embodiment has been described with respect to the case of applying the imaginary axis control to the vibration cutting machining, the 11 The inclined axis control shown in 11 The inclined axis control shown is used to control a machine tool with the 12 configuration shown, ie a machine tool where the angle between the axes to which the servo motors are attached (i.e. in the 11 and 12X -axis and Y-axis), not 90 degrees. In the 11 In the example shown, the real Y-axis and the Y-axis in the program (y-axis as shown) form an oblique angle θ. In order to oscillate the tool in the y-axis direction, synchronous control of the real X-axis and real Y-axis servo motors is required. Similar to the application of the above imaginary axis control, this can be achieved by generating oscillation command waveforms for the real X-axis and the real Y-axis by generating an oscillation waveform for the y-axis and vectorially decomposing this oscillation waveform into components along the real X-axis and along the real Y-axis based on the oblique angle θ.

Ferner kann die Vibrationsschneidbearbeitung auch unter Verwendung einer Werkzeugmaschine durchgeführt werden, die eine in 13 dargestellte Konfiguration aufweist. Die in 13 dargestellte Werkzeugmaschine ist so ausgebildet, dass sie ein Werkzeug dreht, positioniert und dann einsetzt. Darüber hinaus ist die Bewegungsrichtung des Werkzeugs nicht mit einer der Steuerungsachsen (X-Achse und Z-Achse, wie dargestellt) der Werkzeugmaschine ausgerichtet. Dies erfordert eine synchrone Steuerung der Servomotoren mehrerer Achsen, um das Werkzeug in Oszillation zu versetzen. Dies kann ähnlich wie im Fall der oben beschriebenen Imaginärachsensteuerung und Schrägachsensteuerung durch die Erzeugung von Oszillationsbefehlskurvenformen für die jeweiligen mehreren Achsen erreicht werden.Furthermore, vibration cutting can also be carried out using a machine tool that has a 13 The configuration shown in 13 is designed to rotate, position, and then insert a tool. In addition, the direction of movement of the tool is not aligned with any of the control axes (X-axis and Z-axis, as shown) of the machine tool. This requires synchronous control of the servo motors of multiple axes to oscillate the tool. This can be achieved by generating oscillation command waveforms for the respective multiple axes, similar to the case of the imaginary axis control and bent axis control described above.

Es wird darauf hingewiesen, dass bei Verwendung der in 2 dargestellten Schneidwerkzeuge T1, T3 und T5 kein Imaginärachsensteuerbefehl, sondern ein Oszillationsbefehl ausgeführt wird. Dabei bestimmt die Zuordnungsverhältnis-Bestimmungseinheit 381 der Interpolationsverarbeitungseinheit 38X das Zuweisungsverhältnis unter Verwendung eines Drehwinkels von 90 Grad, wenn das Schneidwerkzeug T1 verwendet wird, eines Drehwinkels von 0 Grad, wenn das Schneidwerkzeug T3 verwendet wird, und eines Drehwinkels von -90 Grad, wenn das Schneidwerkzeug T5 verwendet wird.Please note that when using the 2 not an imaginary axis control command but an oscillation command is executed for the cutting tools T1, T3 and T5 shown. At this time, the allocation ratio determination unit 381 of the interpolation processing unit 38X determines the allocation ratio using a rotation angle of 90 degrees when the cutting tool T1 is used, a rotation angle of 0 degrees when the cutting tool T3 is used, and a rotation angle of -90 degrees when the cutting tool T5 is used.

Als Nächstes wird die Hardwarekonfiguration der Steuerungsberechnungseinheit 2X beschrieben, die in einer numerischen Steuerung 1X enthalten ist. 14 zeigt eine Darstellung zur Veranschaulichung eines Beispiels für die Hardwarekonfiguration der Steuerungsberechnungseinheit 2X in einer numerischen Steuerung 1X gemäß der ersten Ausführungsform.Next, the hardware configuration of the control calculation unit 2X included in a numerical controller 1X is described. 14 is a diagram showing an example of the hardware configuration of the control calculation unit 2X in a numerical controller 1X according to the first embodiment.

Die Steuerungsberechnungseinheit 2X kann durch einen Prozessor 101 und einen Speicher 102 implementiert werden, die in 14 dargestellt sind. Ein Beispiel für den Prozessor 101 ist eine Zentraleinheit (CPU) (auch bekannt als Verarbeitungseinheit, Berechnungseinheit, Mikroprozessor, Mikrocomputer und digitaler Signalprozessor (DSP)) oder ein LSI (Large Scale Integration)-System. Ein Beispiel für einen Speicher 102 ist ein Direktzugriffsspeicher (RAM) oder ein Festwertspeicher (ROM).The control calculation unit 2X can be implemented by a processor 101 and a memory 102, which are 14 An example of the processor 101 is a central processing unit (CPU) (also known as a processing unit, calculation unit, microprocessor, microcomputer, and digital signal processor (DSP)) or an LSI (large scale integration) system. An example of a memory 102 is a random access memory (RAM) or a read only memory (ROM).

Die Steuerungsberechnungseinheit 2X wird von dem Prozessor 101 implementiert, indem ein im Speicher 102 gespeichertes Programm zur Durchführung einer Prozedur der Steuerungsberechnungseinheit 2X gelesen und ausgeführt wird. Anders ausgedrückt kann das Programm einen Computer veranlassen, eine Prozedur oder ein Verfahren der Steuerungsberechnungseinheit 2X auszuführen. Der Speicher 102 wird auch als temporärer Speicher verwendet, wenn der Prozessor 101 verschiedene Verarbeitungsaufgaben ausführt.The control calculation unit 2X is implemented by the processor 101 by reading and executing a program stored in the memory 102 to perform a procedure of the control calculation unit 2X. In other words, the program can cause a computer to execute a procedure or method of the control calculation unit 2X. The memory 102 is also used as temporary storage when the processor 101 performs various processing tasks.

Ein vom Prozessor 101 auszuführendes Programm kann ein Computerprogrammprodukt sein, das ein computerlesbares, nicht flüchtiges Aufzeichnungsmedium mit mehreren computerausführbaren Anweisungen zur Datenverarbeitung umfasst. Ein vom Prozessor 101 auszuführendes Programm umfasst mehrere Anweisungen, die einen Computer veranlassen, eine Datenverarbeitung durchzuführen.A program to be executed by the processor 101 may be a computer program product comprising a computer-readable, non-transitory recording medium having a plurality of computer-executable instructions for processing data. A program to be executed by the processor 101 comprises a plurality of instructions that cause a computer to perform processing data.

Die Steuerungsberechnungseinheit 2X kann alternativ als dediziertes Hardwareelement implementiert sein. Ferner kann die Funktionalität der Steuerungsberechnungseinheit 2X teilweise durch ein dediziertes Hardwareelement und teilweise durch Software oder Firmware implementiert sein.The control calculation unit 2X may alternatively be implemented as a dedicated hardware element. Furthermore, the functionality of the control calculation unit 2X may be implemented partly by a dedicated hardware element and partly by software or firmware.

Wie oben beschrieben wurde, umfasst die numerische Steuerung 1X gemäß der vorliegenden Ausführungsform die Oszillationskurvenform-Erzeugungseinheit 385, die eine Oszillationskurvenform erzeugt, die eine Bewegungsbahn eines Werkzeugs während der Oszillation des Werkzeugs repräsentiert; die Zuordnungsverhältnis-Bestimmungseinheit 381, die ein Zuordnungsverhältnis, in dem die Oszillationskurvenform bei der Oszillation des Werkzeugs vektoriell in Komponenten entlang der jeweiligen Steuerreferenzachsen zu zerlegen ist, auf Basis des Drehwinkels eines realen Maschinenkoordinatensystems bestimmt, der zum Festlegen eines imaginären Maschinenkoordinatensystems durch Drehung des realen Maschinenkoordinatensystems verwendet wird; und die Oszillationsbewegungsstrecken-Berechnungseinheit 386, die auf Basis der Oszillationskurvenform und des Zuordnungsverhältnisses Oszillationskurvenformen des Werkzeugs für die jeweiligen Steuerreferenzachsen erzeugt und die Oszillationsbewegungsstrecken entlang der jeweiligen Steuerreferenzachsen auf Basis der erzeugten Oszillationskurvenformen berechnet. Dies ermöglicht die Durchführung des Vibrationsschneidens auch dann, wenn das Werkzeug in Richtung einer imaginären Achse mittels synchroner Steuerung mehrerer Antriebsachsen in Oszillation versetzt werden soll. Die numerische Steuerung 1X umfasst auch die Vergleichseinheit 383, die die tatsächliche Oszillationskurvenform des Werkzeugs für jede der jeweiligen Steuerreferenzachsen mit der Oszillationskurvenform des Werkzeugs für jede der Steuerreferenzachsen vergleicht, die von der Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt wird; und die Oszillationsbefehlskurvenform-Anpassungseinheit 384X, die die Oszillationskurvenform des Werkzeugs für jede der Steuerreferenzachsen, die durch die Oszillationsbewegungsstrecken-Berechnungseinheit 386 erzeugt wird, auf Basis des Vergleichsergebnisses von der Vergleichseinheit 383 anpasst. Auf diese Weise wird das Brechen von Spänen auch dann gewährleistet, wenn die Ansprechempfindlichkeiten der Servomotoren 91 der jeweiligen Steuerreferenzachsen voneinander abweichen.As described above, the numerical controller 1X according to the present embodiment includes the oscillation waveform generation unit 385 that generates an oscillation waveform representing a motion trajectory of a tool during oscillation of the tool; the allocation ratio determination unit 381 that determines an allocation ratio in which the oscillation waveform during oscillation of the tool is to be vectorially decomposed into components along the respective control reference axes based on the rotation angle of a real machine coordinate system used for setting an imaginary machine coordinate system by rotating the real machine coordinate system; and the oscillation movement distance calculation unit 386 that generates oscillation waveforms of the tool for the respective control reference axes based on the oscillation waveform and the allocation ratio, and calculates the oscillation movement distances along the respective control reference axes based on the generated oscillation waveforms. This enables vibration cutting to be performed even when the tool is to be oscillated in the direction of an imaginary axis by synchronously controlling a plurality of drive axes. The numerical controller 1X also includes the comparison unit 383 that compares the actual oscillation waveform of the tool for each of the respective control reference axes with the oscillation waveform of the tool for each of the control reference axes generated by the oscillation movement distance calculation unit 386; and the oscillation command waveform adjusting unit 384X that adjusts the oscillation waveform of the tool for each of the control reference axes generated by the oscillation movement distance calculating unit 386 based on the comparison result from the comparing unit 383. In this way, chip breaking is ensured even when the response sensitivities of the servo motors 91 of the respective control reference axes differ from each other.

Zweite AusführungsformSecond embodiment

15 zeigt eine Darstellung zur Veranschaulichung eines Konfigurationsbeispiels für eine numerische Steuerung gemäß einer zweiten Ausführungsform. In 15 sind Elemente, die mit den entsprechenden Elementen der numerischen Steuerung 1X gemäß der ersten Ausführungsform identisch sind, mit den gleichen Bezugszeichen versehen. 15 shows a diagram illustrating a configuration example of a numerical controller according to a second embodiment. In 15 Elements identical to the corresponding elements of the numerical controller 1X according to the first embodiment are designated by the same reference numerals.

Die numerische Steuerung 1Y gemäß der zweiten Ausführungsform ist so ausgebildet, dass sie eine Steuerungsberechnungseinheit 2Y anstelle der Steuerungsberechnungseinheit 2X der numerischen Steuerung 1X gemäß der ersten Ausführungsform aufweist. Die Steuerungsberechnungseinheit 2Y ist so ausgebildet, dass sie eine Interpolationsverarbeitungseinheit 38Y anstelle der Interpolationsverarbeitungseinheit 38X der Steuerungsberechnungseinheit 2X gemäß der ersten Ausführungsform und zusätzlich eine Maschinenlernvorrichtung 50 umfasst. Abgesehen von der Interpolationsverarbeitungseinheit 38Y und der Maschinenlernvorrichtung 50 der Steuerungsberechnungseinheit 2Y sind die anderen Elemente mit den entsprechenden Elementen der Steuerungsberechnungseinheit 2X gemäß der ersten Ausführungsform identisch und ihre Beschreibung wird daher weggelassen.The numerical controller 1Y according to the second embodiment is configured to include a control calculation unit 2Y instead of the control calculation unit 2X of the numerical controller 1X according to the first embodiment. The control calculation unit 2Y is configured to include an interpolation processing unit 38Y instead of the interpolation processing unit 38X of the control calculation unit 2X according to the first embodiment, and additionally includes a machine learning device 50. Except for the interpolation processing unit 38Y and the machine learning device 50 of the control calculation unit 2Y, the other elements are identical to the corresponding elements of the control calculation unit 2X according to the first embodiment, and their description is therefore omitted.

Die Interpolationsverarbeitungseinheit 38Y ist so ausgebildet, dass sie anstelle der Oszillationsbefehlskurvenform-Anpassungseinheit 384X der Interpolationsverarbeitungseinheit 38X eine Oszillationsbefehlskurvenform-Anpassungseinheit 384Y aufweist. Die Oszillationsbefehlskurvenform-Anpassungseinheit 384Y korrigiert die Oszillationsbefehlskurvenformen auf Basis von Oszillationskurvenform-Korrekturinformationen, die von der Maschinenlernvorrichtung 50 ausgegeben werden. Die Maschinenlernvorrichtung 50 umfasst eine Lerneinheit 51 und eine Zustandsbeobachtungseinheit 52.The interpolation processing unit 38Y is configured to include an oscillation command waveform adjusting unit 384Y instead of the oscillation command waveform adjusting unit 384X of the interpolation processing unit 38X. The oscillation command waveform adjusting unit 384Y corrects the oscillation command waveforms based on oscillation waveform correction information output from the machine learning device 50. The machine learning device 50 includes a learning unit 51 and a state observation unit 52.

Die Maschinenlernvorrichtung 50 führt maschinelles Lernen unter Verwendung von auf jede der Achsen bezogenen Trägheitsinformationen, die in dem gemeinsam genutzten Bereich 344 gespeichert sind, einer auf jede der Achsen bezogenen Oszillationskurvenformabweichung, die durch den von der Vergleichseinheit 383 vorgenommenen Vergleich der Oszillationskurvenform mit der FB-Oszillationskurvenform für jede der Achsen erhalten wird, und Informationen über die Modifikation von Servoparametern für jede der Achsen durch, die in den Parameterdaten 341 enthalten sind. Die Maschinenlernvorrichtung 50 erzeugt dann Oszillationskurvenform-Korrekturinformationen, die von der Oszillationsbefehlskurvenform-Anpassungseinheit 384Y zur Korrektur der Oszillationsbefehlskurvenformen zu verwenden sind.The machine learning device 50 performs machine learning using inertia information related to each of the axes stored in the shared area 344, an oscillation waveform deviation related to each of the axes obtained by comparing the oscillation waveform with the FB oscillation waveform for each of the axes by the comparison unit 383, and information on modification of servo parameters for each of the axes included in the parameter data 341. The machine learning device 50 then generates oscillation waveform correction information obtained from the oscillation waveform correction unit 383. oscillation command waveform adjusting unit 384Y are to be used to correct the oscillation command waveforms.

Bei der Oszillationskurvenformabweichung, die von der Maschinenlernvorrichtung 50 beim Lernen für die Vorhersage der Oszillationskurvenform-Korrekturinformationen verwendet wird, handelt es sich um einen Satz aus der Differenz zwischen den Amplituden und der Differenz zwischen den Phasen der Oszillationskurvenform und der FB-Oszillationskurvenform. Die Differenz zwischen den Amplituden der Oszillationskurvenform und der FB-Oszillationskurvenform ist der oben beschriebene Oszillationsamplitudenanpassungswert. Ferner bezieht sich der Ausdruck „Servoparameter für jede der Achsen“ in der Formulierung „Informationen über die Modifikation von Servoparametern für jede der Achsen“ auf Servoparameter wie die Schleifenverstärkung für den Strom, die Schleifenverstärkung für die Drehzahl und/oder dergleichen, die modifiziert werden, um die Phasenabweichung in Schritt S8 von 6 wie oben beschrieben auf nahezu Null zu reduzieren. Die Informationen über die Modifikation von Servoparametern sind Informationen, die die Details der an den Servoparametern vorgenommenen Modifikation repräsentieren.The oscillation waveform deviation used by the machine learning device 50 in learning for predicting the oscillation waveform correction information is a set of the difference between the amplitudes and the difference between the phases of the oscillation waveform and the FB oscillation waveform. The difference between the amplitudes of the oscillation waveform and the FB oscillation waveform is the oscillation amplitude adjustment value described above. Furthermore, the term “servo parameters for each of the axes” in the phrase “information about modification of servo parameters for each of the axes” refers to servo parameters such as the loop gain for current, the loop gain for rotational speed, and/or the like that are modified to correct the phase deviation in step S8 of 6 to almost zero as described above. The servo parameter modification information is information representing the details of the modification made to the servo parameters.

Zudem sind im Hinblick auf die auf jede der Achsen bezogenen Trägheitsinformationen die Servomotoren 91 der jeweiligen Achsen über einen Verbindungsmechanismus wie eine Kupplung mit einer Kugelumlaufspindel der Werkzeugmaschine verbunden. Die Kugelumlaufspindel ist auch an einer Werkzeugmaschinenstruktur montiert, wobei in der Regel für verschiedene Achsen unterschiedliche Strukturen verwendet werden. Dies führt dazu, dass aufgrund der unterschiedlichen Strukturen, die mit den Servomotoren 91 verbunden sind, auf die verschiedenen Servomotoren 91 unterschiedliche Trägheitsmomente ausgeübt werden, selbst wenn die Servomotoren 91 die gleiche Leistung haben. Damit die Servomotoren jeweils das richtige Drehmoment liefern, werden beim Einrichten einer neuen Werkzeugmaschine Einstellarbeiten an den Servomotoren durchgeführt. Diese Einstellarbeiten erfordern Informationen über die auf die Servomotoren wirkende Trägheit. Es wird hier davon ausgegangen, dass die numerische Steuerung 1Y gemäß der vorliegenden Ausführungsform über eine Funktionalität zur Messung der auf die Servomotoren 91 der jeweiligen Achsen wirkenden Trägheit verfügt und dass die vorab mit Hilfe dieser Funktionalität gemessenen Trägheitsinformationen bereits im gemeinsam genutzten Bereich 344 gespeichert wurden. Es wird darauf hingewiesen, dass die numerische Steuerung 1 Y für die Ausführung der vorliegenden Erfindung nicht unbedingt über eine Funktionalität zur Trägheitsmessung verfügen muss. Die Maschinenlernvorrichtung 50 kann das Lernen gemäß einem Verfahren durchführen, bei dem die Arbeitskraft, die die Werkzeugmaschine einrichtet, die Trägheitswerte für die jeweiligen Achsen misst, Trägheitsinformationen erzeugt und die erzeugten Trägheitsinformationen vorab in dem gemeinsam genutzten Bereich 344 oder in einem anderen Bereich der Speichereinheit 34 speichert.In addition, with regard to the inertia information related to each of the axes, the servo motors 91 of the respective axes are connected to a ball screw of the machine tool via a connection mechanism such as a coupling. The ball screw is also mounted on a machine tool structure, and different structures are usually used for different axes. As a result, different moments of inertia are applied to the different servo motors 91 due to the different structures connected to the servo motors 91, even if the servo motors 91 have the same power. In order for the servo motors to provide the correct torque for each, adjustment work is performed on the servo motors when setting up a new machine tool. This adjustment work requires information about the inertia acting on the servo motors. It is assumed here that the numerical controller 1Y according to the present embodiment has a functionality for measuring the inertia acting on the servo motors 91 of the respective axes, and that the inertia information measured in advance using this functionality has already been stored in the shared area 344. Note that the numerical controller 1Y does not necessarily have to have an inertia measurement functionality for carrying out the present invention. The machine learning device 50 may perform learning according to a method in which the worker who sets up the machine tool measures the inertia values for the respective axes, generates inertia information, and stores the generated inertia information in advance in the shared area 344 or in another area of the storage unit 34.

Die Zustandsbeobachtungseinheit 52 gibt einen Datensatz, der aus der Datenbeobachtung resultiert, an die Lerneinheit 51 aus. Die Lerneinheit 51 lernt die Oszillationskurvenform-Korrekturinformationen auf Basis des von der Zustandsbeobachtungseinheit 52 eingegebenen Datensatzes. Die Zustandsbeobachtungseinheit 52 beobachtet demnach als Zustandsvariablen die auf jede der Achsen bezogenen Trägheitsinformationen, die in dem gemeinsam genutzten Bereich 344 gespeichert sind, Informationen über die Modifikation (Modifikationsinformationen), die die Details der Modifikation repräsentieren, die an den Servoparametern für jede der Achsen von der Oszillationsbefehlskurvenform-Anpassungseinheit 384Y vorgenommen wurde, und die Oszillationskurvenformabweichung in Bezug auf jede der Achsen, die durch die Vergleichseinheit 383 erzeugt wird. Die Zustandsbeobachtungseinheit 52 gibt dann einen auf Basis der Zustandsvariablen erzeugten Datensatz an die Lerneinheit 51 aus. Die Lerneinheit 51 lernt die Oszillationskurvenform-Korrekturinformationen auf Basis des von der Zustandsbeobachtungseinheit 52 ausgegebenen Datensatzes. Bei dieser Prozedur ist der Datensatz ein Satz von Daten, der den Oszillationsamplitudenanpassungswert, die auf jede der Achsen bezogenen Trägheitsinformationen, die auf jede der Achsen bezogenen Servoparametermodifikationsinformationen und die auf jede der Achsen bezogene Oszillationskurvenformabweichung enthält, die miteinander verknüpft sind. Der Ausdruck „Oszillationskurvenform-Korrekturinformationen“ bezieht sich auf den Amplitudenkorrekturwert, der bei der Korrektur der Oszillationsbefehlskurvenform erstellt wird, um zu bewirken, dass die Oszillationsbefehlskurvenform und die FB-Oszillationskurvenform ähnlicher werden, d. h. den Oszillationsamplitudenanpassungswert; und die Details der an den Servoparametern vorzunehmenden Anpassung, um zu bewirken, dass die Oszillationsbefehlskurvenform für jede der Achsen und die FB-Oszillationskurvenform für jede der Achsen ähnlicher werden, wie bei der ersten Ausführungsform beschrieben wurde.The state observation unit 52 outputs a data set resulting from the data observation to the learning unit 51. The learning unit 51 learns the oscillation waveform correction information based on the data set input from the state observation unit 52. The state observation unit 52 thus observes, as state variables, the inertia information related to each of the axes stored in the shared area 344, information about the modification (modification information) representing the details of the modification made to the servo parameters for each of the axes by the oscillation command waveform adjusting unit 384Y, and the oscillation waveform deviation related to each of the axes generated by the comparing unit 383. The state observation unit 52 then outputs a data set generated based on the state variables to the learning unit 51. The learning unit 51 learns the oscillation waveform correction information based on the data set output from the state observation unit 52. In this procedure, the data set is a set of data including the oscillation amplitude adjustment value, the inertia information related to each of the axes, the servo parameter modification information related to each of the axes, and the oscillation waveform deviation related to each of the axes, which are linked to each other. The term “oscillation waveform correction information” refers to the amplitude correction value created when correcting the oscillation command waveform to cause the oscillation command waveform and the FB oscillation waveform to become more similar, that is, the oscillation amplitude adjustment value; and the details of the adjustment to be made to the servo parameters to cause the oscillation command waveform for each of the axes and the FB oscillation waveform for each of the axes to become more similar to those described in the first embodiment.

Es ist zu beachten, dass die Maschinenlernvorrichtung 50 beispielsweise eine von der numerischen Steuerung 1X getrennte Vorrichtung sein kann, die mit der numerischen Steuerung 1X gemäß der ersten Ausführungsform über ein Netzwerk verbunden ist. In diesem Fall kann sich die Maschinenlernvorrichtung 50 in einem Cloud-Server befinden. Alternativ kann die Maschinenlernvorrichtung 50 in die numerische Steuerung 1Y integriert sein, wie in 15 dargestellt ist.Note that the machine learning device 50 may be, for example, a device separate from the numerical controller 1X that is connected to the numerical controller 1X according to the first embodiment via a network. In this case, the machine learning device 50 may be located in a cloud server. Alternatively, the machine learning device 50 must be integrated into the numerical control 1Y, as shown in 15 is shown.

Die Lerneinheit 51 lernt aus dem Datensatz, der die auf jede der Achsen bezogenen Trägheitsinformationen, die auf jede der Achsen bezogenen Servoparametermodifikationsinformationen und die auf jede der Achsen bezogene Oszillationskurvenformabweichung enthält, die miteinander verknüpft sind, indem beispielsweise sogenanntes überwachtes Lernen auf Basis eines neuronalen Netzwerkmodells eingesetzt wird. Hierbei handelt es sich bei überwachtem Lernen um ein Modell, das bei einer großen Anzahl von Datenpaaren, die jeweils eine Eingabe und ein Ergebnis für eine Lernvorrichtung umfassen, ein Feature des Datensatzes lernt und aus einer Eingabe ein Ergebnis ableitet. Bei der numerischen Steuerung 1Y gemäß der vorliegenden Ausführungsform dient die Oszillationskurvenformabweichung in Bezug auf jede der Achsen als gelabelte Trainingsdaten.The learning unit 51 learns from the data set including the inertia information related to each of the axes, the servo parameter modification information related to each of the axes, and the oscillation waveform deviation related to each of the axes, which are linked to each other, by using, for example, so-called supervised learning based on a neural network model. Supervised learning is a model that learns a feature of the data set from a large number of data pairs each including an input and a result to a learning device, and derives a result from an input. In the numerical controller 1Y according to the present embodiment, the oscillation waveform deviation related to each of the axes serves as labeled training data.

Ein neuronales Netzwerk umfasst eine aus mehreren Neuronen bestehende Eingabeschicht, eine aus mehreren Neuronen bestehende mittlere Schicht und eine aus mehreren Neuronen bestehende Ausgabeschicht. Die mittlere Schicht wird auch als versteckte Schicht bezeichnet. Es kann eine, zwei oder mehr mittlere Schichten geben.A neural network includes an input layer consisting of several neurons, a middle layer consisting of several neurons, and an output layer consisting of several neurons. The middle layer is also called the hidden layer. There can be one, two, or more middle layers.

Wenn beispielsweise in einem dreischichtigen neuronalen Netzwerk mehrere Eingaben in die Eingabeschicht eingegeben werden, werden deren Werte mit Gewichtungen multipliziert, und die Ergebnisse werden in die mittlere Schicht eingegeben. Die Ergebnisse werden weiter mit Gewichtungen multipliziert, und die resultierenden Werte werden von der Ausgabeschicht ausgegeben. Die Ausgabeergebnisse variieren je nach den Werten der Gewichtungen.For example, in a three-layer neural network, when multiple inputs are input to the input layer, their values are multiplied by weights, and the results are input to the middle layer. The results are further multiplied by weights, and the resulting values are output by the output layer. The output results vary depending on the values of the weights.

Bei der Maschinenlernvorrichtung 50 gemäß der vorliegenden Ausführungsform lernt das neuronale Netzwerk die Oszillationskurvenform-Korrekturinformationen auf Basis des von der Zustandsbeobachtungseinheit 52 erzeugten Datensatzes unter Verwendung des sogenannten überwachten Lernens.In the machine learning device 50 according to the present embodiment, the neural network learns the oscillation waveform correction information based on the data set generated by the state observation unit 52 using so-called supervised learning.

Der Datensatz, der die auf jede der Achsen bezogenen Trägheitsinformationen, die auf jede der Achsen bezogenen Servoparametermodifikationsinformationen und die auf jede der Achsen bezogene Oszillationskurvenformabweichung enthält, die miteinander verknüpft sind, wird demnach in die Eingabeschicht des neuronalen Netzwerkes eingegeben. Jedes Mal, wenn der Datensatz eingegeben wird, lernt das neuronale Netzwerk, indem es die vorstehenden Gewichtungen einzeln anpasst, um die auf jede der Achsen bezogene Oszillationskurvenformabweichung, die von der Oszillationsbefehlskurvenform-Anpassungseinheit 384Y verwendet wurde, um die Oszillationsbefehlskurvenform auf Basis der von der Ausgabeschicht ausgegebenen Oszillationskurvenform-Korrekturinformationen anzupassen, auf nahezu Null zu reduzieren.Thus, the data set including the inertia information related to each of the axes, the servo parameter modification information related to each of the axes, and the oscillation waveform deviation related to each of the axes, which are linked to each other, is input to the input layer of the neural network. Each time the data set is input, the neural network learns by adjusting the above weights individually to reduce to almost zero the oscillation waveform deviation related to each of the axes, which was used by the oscillation command waveform adjusting unit 384Y to adjust the oscillation command waveform based on the oscillation waveform correction information output from the output layer.

Es wird darauf hingewiesen, dass das neuronale Netzwerk die Oszillationskurvenform-Korrekturinformationen auch durch sogenanntes unüberwachtes Lernen lernen kann. Unüberwachtes Lernen ist eine Technik, bei der die Verteilung von Eingabedaten gelernt wird, indem der Maschinenlernvorrichtung 50 lediglich eine große Menge an Eingabedaten zur Verfügung wird und eine Vorrichtung gelernt wird, die Codierung, Klassifizierung, Transformation und/oder dergleichen an den Eingabedaten durchführt, ohne dass entsprechende gelabelte Trainingsausgabedaten vorgegeben werden. Durch unüberwachtes Lernen können Features eines Eingabedatensatzes in Gruppen geclustert werden, die jeweils ein ähnliches Feature aufweisen. Anhand des Ergebnisses des Clusterns kann durch unüberwachtes Lernen eine Vorhersage für Ausgaben getroffen werden, indem ein bestimmtes Kriterium festgelegt und die Ausgaben so zugeordnet werden, dass dieses Kriterium optimiert wird.Note that the neural network may also learn the oscillation waveform correction information by so-called unsupervised learning. Unsupervised learning is a technique in which the distribution of input data is learned by merely providing the machine learning device 50 with a large amount of input data and learning a device that performs coding, classification, transformation, and/or the like on the input data without providing corresponding labeled training output data. Unsupervised learning can cluster features of an input data set into groups each having a similar feature. Based on the result of the clustering, unsupervised learning can predict outputs by setting a certain criterion and allocating the outputs so as to optimize that criterion.

Ferner kann die Lerneinheit 51 in einem Fall, in dem die Maschinenlernvorrichtung 50 nicht in die numerische Steuerung 1Y integriert ist, die Oszillationskurvenform-Korrekturinformationen auf Basis von Datensätzen lernen, die für mehrere numerische Steuerungen 1Y erzeugt wurden, und diese Oszillationskurvenform-Korrekturinformationen dann als Lernergebnis ausgeben. Die Lerneinheit 51 kann dabei einen Datensatz von mehreren numerischen Steuerungen 1Y, die an einem Standort eingesetzt werden, erhalten oder einen Datensatz verwenden, der von numerischen Steuerungen 1Y mehrerer Werkzeugmaschinen gesammelt wurde, die unabhängig voneinander an verschiedenen Standorten betrieben werden. Zudem ermöglicht es eine solche Konfiguration auch, dass eine numerische Steuerung 1Y, die zum Sammeln eines Datensatzes verwendet wird, während des Betriebs zu einer Gruppe hinzugefügt wird, die sammeln soll, oder im Gegenteil davon getrennt werden kann. Ferner kann eine Maschinenlernvorrichtung 50, die unter Verwendung eines Datensatzes gelernt hat, der von einer bestimmten numerischen Steuerung 1Y erhalten wurde, in einer anderen numerischen Steuerung 1Y installiert werden, wobei sie einen Datensatz von der anderen numerischen Steuerung 1Y erhalten kann, um den Datensatz erneut zu lernen und das Lernergebnis zu aktualisieren.Furthermore, in a case where the machine learning device 50 is not integrated with the numerical controller 1Y, the learning unit 51 may learn the oscillation waveform correction information based on data sets generated for a plurality of numerical controllers 1Y, and then output this oscillation waveform correction information as a learning result. The learning unit 51 may obtain a data set from a plurality of numerical controllers 1Y used at one location, or use a data set collected from numerical controllers 1Y of a plurality of machine tools operated independently at different locations. In addition, such a configuration also allows a numerical controller 1Y used to collect a data set to be added to a group to be collected or, on the contrary, to be separated from it during operation. Further, a machine learning device 50 that has learned using a data set obtained from a certain numerical controller 1Y may be installed in another numerical controller 1Y, and may obtain a data set from the other numerical controller 1Y to relearn the data set and update the learning result.

Darüber hinaus kann es sich bei dem in der Lerneinheit 51 verwendeten Lernalgorithmus um Deep Learning handeln, bei dem die Extraktion von Features selbst gelernt wird. Das maschinelle Lernen kann auch mit einer anderen bekannten Methode durchgeführt werden, wie z. B. genetischer Programmierung, funktionaler Logikprogrammierung oder einer Support-Vector-Machine.In addition, the learning algorithm used in Learning Unit 51 may be deep learning, in which the extraction of Features themselves are learned. Machine learning can also be performed using another well-known method such as genetic programming, functional logic programming, or a support vector machine.

Die von der Maschinenlernvorrichtung 50 ausgegebenen Oszillationskurvenform-Korrekturinformationen werden in die Oszillationsbefehlskurvenform-Anpassungseinheit 384Y eingegeben. Die Oszillationsbefehlskurvenform-Anpassungseinheit 384Y passt die Oszillationsbefehlskurvenformen für die jeweiligen Achsen auf Basis der Oszillationskurvenform-Korrekturinformationen an.The oscillation waveform correction information output from the machine learning device 50 is input to the oscillation command waveform adjusting unit 384Y. The oscillation command waveform adjusting unit 384Y adjusts the oscillation command waveforms for the respective axes based on the oscillation waveform correction information.

Wie oben beschrieben wurde, umfasst die numerische Steuerung 1Y gemäß der vorliegenden Ausführungsform die Maschinenlernvorrichtung 50, die maschinelles Lernen unter Verwendung der auf jede der Achsen bezogenen Trägheitsinformationen, der auf jede der Achsen bezogenen Oszillationskurvenformabweichung, des Oszillationsamplitudenanpassungswerts und der auf jede der Achsen bezogenen Servoparametermodifikationsinformationen ausführt. Die Oszillationsbefehlskurvenform-Anpassungseinheit 384Y passt die Oszillationsbefehlskurvenformen für die jeweiligen Achsen auf Basis der von der Maschinenlernvorrichtung 50 durch maschinelles Lernen erzeugten Oszillationskurvenform-Korrekturinformationen an. Dadurch wird das Brechen von Spänen auch dann sichergestellt, wenn die Ansprechempfindlichkeiten der Servomotoren 91 der jeweiligen Steuerreferenzachsen voneinander abweichen.As described above, the numerical controller 1Y according to the present embodiment includes the machine learning device 50 that performs machine learning using the inertia information related to each of the axes, the oscillation waveform deviation related to each of the axes, the oscillation amplitude adjustment value, and the servo parameter modification information related to each of the axes. The oscillation command waveform adjustment unit 384Y adjusts the oscillation command waveforms for the respective axes based on the oscillation waveform correction information generated by the machine learning device 50 through machine learning. This ensures chip breaking even when the responsivenesses of the servo motors 91 of the respective control reference axes differ from each other.

Es wird darauf hingewiesen, dass die Steuerungsberechnungseinheit 2Y und die Maschinenlernvorrichtung 50, die in der numerischen Steuerung 1Y gemäß der zweiten Ausführungsform enthalten sind, ähnlich wie die Steuerungsberechnungseinheit 2X, die in der numerischen Steuerung 1X gemäß der ersten Ausführungsform enthalten ist, durch den in 14 dargestellten Prozessor 101 und Speicher 102 implementiert werden können.It is noted that the control calculation unit 2Y and the machine learning device 50 included in the numerical controller 1Y according to the second embodiment are, similarly to the control calculation unit 2X included in the numerical controller 1X according to the first embodiment, implemented by the 14 illustrated processor 101 and memory 102 can be implemented.

BezugszeichenlisteList of reference symbols

1X, 1Y1X, 1Y
numerische Steuerung;numerical control;
2X, 2Y2X, 2Y
Steuerungsberechnungseinheit;control calculation unit;
33
Eingabeeinheit;input unit;
44
Anzeigeeinheit;display unit;
3131
Anzeigebildverarbeitungseinheit;display image processing unit;
3232
Eingabesteuerungseinheit;input control unit;
3333
Dateneinstelleinheit;data setting unit;
3434
Speichereinheit;storage unit;
3535
Steuersignalverarbeitungseinheit;control signal processing unit;
3636
SPS;PLC;
3737
Analyseverarbeitungseinheit;analysis processing unit;
38X, 38Y38X, 38Y
Interpolationsverarbeitungseinheit;interpolation processing unit;
3939
Beschleunigungs-/Verzögerungsverarbeitungseinheit;Acceleration/deceleration processing unit;
4040
Achsendateneingabe-/-ausgabeeinheit;Axis data input/output unit;
5050
Maschinenlernvorrichtung;machine learning device;
5151
Lerneinheit;learning unit;
5252
Zustandsbeobachtungseinheit;condition observation unit;
9090
Antriebseinheit;drive unit;
9191
Servomotor;servo motor;
92, 9592, 95
Detektor;Detector;
93X93X
X-Achsen-Servosteuerungseinheit;X-axis servo control unit;
93Y93Y
Y-Achsen-Servosteuerungseinheit;Y-axis servo control unit;
9494
Spindelmotor;spindle motor;
9696
Spindelsteuerungseinheit;spindle control unit;
341341
Parameterdaten;parameter data;
342342
Anzeigedaten;Display data;
343343
Bearbeitungsprogramm;editing program;
344344
gemeinsam genutzter Bereich;shared area;
371371
Bewegungsbefehl-Analyseeinheit;Motion command analysis unit;
372372
Oszillationsbefehl-Analyseeinheit;Oscillation command analysis unit;
381381
Zuordnungsverhältnis-Bestimmungseinheit;Allocation ratio determination unit;
382382
Kurvenforminformationsbezugseinheit;waveform information reference unit;
383383
Vergleichseinheit;comparison unit;
384X, 384Y384X, 384Y
Oszillationsbefehlskurvenform-Anpassungseinheit;Oscillation command waveform adjusting unit;
385385
Oszillationskurvenform-Erzeugungseinheit;Oscillation waveform generating unit;
386386
Oszillationsbewegungsstrecken-Berechnungseinheit.Oscillation movement distance calculation unit.

Claims (9)

Numerische Steuerung (1X) zum Steuern einer Werkzeugmaschine, die mehrere Antriebsachsen ansteuert, um ein Werkzeug gemäß einem Bearbeitungsprogramm (343) zu bewegen, wobei die numerische Steuerung (1X) aufweist: eine Oszillationskurvenform-Erzeugungseinheit (385) zum Erzeugen einer Oszillationskurvenform, die eine Oszillationsbahn des Werkzeugs repräsentiert, der bei der Bearbeitung eines Werkstücks gefolgt wird, während das Werkzeug in Oszillation versetzt wird; und eine Oszillationsbewegungsstrecken-Berechnungseinheit (386) zum Erzeugen einer jeder der mehreren Antriebsachsen entsprechenden Oszillationsbefehlskurvenform auf Basis der Oszillationskurvenform, die als Oszillationskurvenform zur Oszillation entlang einer Richtung einer zweiten Achse in einem bestimmten Winkel bezogen auf eine erste Achse dient, wobei die erste Achse parallel zu einer Antriebsachse der mehreren Antriebsachsen verläuft und wobei die Oszillationsbefehlskurvenform eine Bewegungsbahn des Werkzeugs entlang der Richtung einer entsprechenden der Antriebsachsen repräsentiert, dadurch gekennzeichnet, dass der bestimmte Winkel durch das Bearbeitungsprogramm oder durch Festlegung der zweiten Achse vorspezifiziert ist.Numerical control (1X) for controlling a machine tool that controls several drive axes to move a tool according to a Machining program (343), the numerical controller (1X) comprising: an oscillation waveform generation unit (385) for generating an oscillation waveform representing an oscillation trajectory of the tool followed in machining a workpiece while oscillating the tool; and an oscillation movement distance calculation unit (386) for generating an oscillation command waveform corresponding to each of the plurality of drive axes based on the oscillation waveform, which serves as an oscillation waveform for oscillating along a direction of a second axis at a certain angle with respect to a first axis, the first axis being parallel to a drive axis of the plurality of drive axes, and the oscillation command waveform representing a movement trajectory of the tool along the direction of a corresponding one of the drive axes, characterized in that the certain angle is prespecified by the machining program or by setting the second axis. Numerische Steuerung (1X) nach Anspruch 1, wobei die Festlegung vorgenommen wird, indem das Werkzeug spezifiziert wird.Numerical control (1X) according to Claim 1 , where the determination is made by specifying the tool. Numerische Steuerung (1X) nach Anspruch 1 oder 2, die aufweist: eine Zuordnungsverhältnis-Bestimmungseinheit (381) zum Bestimmen eines Zuordnungsverhältnisses, in dem eine Komponente der Oszillationskurvenform vektoriell in Komponenten entlang der Richtungen der jeweiligen mehreren Antriebsachsen zu zerlegen ist, auf Basis des Winkels zwischen der Oszillationsrichtung des Werkzeugs während der Oszillation des Werkzeugs und der Richtung der ersten Achse, wobei die Oszillationsbewegungsstrecken-Berechnungseinheit (386) die jeder der mehreren Antriebsachsen entsprechende Oszillationsbefehlskurvenform erzeugt, indem die Komponente der Oszillationskurvenform vektoriell in Komponenten entlang der Richtungen der jeweiligen Antriebsachsen auf Basis des Zuordnungsverhältnisses zerlegt wird.Numerical control (1X) according to Claim 1 or 2 comprising: an allocation ratio determining unit (381) for determining an allocation ratio in which a component of the oscillation waveform is to be vectorially decomposed into components along the directions of the respective plurality of drive axes based on the angle between the oscillation direction of the tool during oscillation of the tool and the direction of the first axis, wherein the oscillation movement distance calculating unit (386) generates the oscillation command waveform corresponding to each of the plurality of drive axes by vectorially decomposing the component of the oscillation waveform into components along the directions of the respective drive axes based on the allocation ratio. Numerische Steuerung (1X) nach einem der Ansprüche 1 bis 3, wobei die Oszillationsbewegungsstrecken-Berechnungseinheit (386) für jede der Antriebsachsen eine Werkzeugbewegungsstrecke pro Zeiteinheit während der Bearbeitung des Werkstücks erzeugt, indem ein Wert der Oszillationsbefehlskurvenform zu einem Wert der Werkzeugbewegung addiert wird.Numerical control (1X) according to one of the Claims 1 until 3 wherein the oscillation movement distance calculation unit (386) generates, for each of the drive axes, a tool movement distance per unit time during machining of the workpiece by adding a value of the oscillation command waveform to a value of the tool movement. Numerische Steuerung (1X) nach einem der Ansprüche 1 bis 4, die aufweist: eine Vergleichseinheit (383) zum Vergleichen der jeder der Antriebsachsen entsprechenden Oszillationsbefehlskurvenform mit einer jeder der Antriebsachsen entsprechenden Feedback-Oszillationskurvenform, wobei die Feedback-Oszillationskurvenform eine tatsächliche Bewegungsbahn des Werkzeugs repräsentiert, der während der Oszillation des Werkzeugs gefolgt wird; und eine Oszillationsbefehlskurvenform-Anpassungseinheit (384X) zum Anpassen der jeder der Antriebsachsen entsprechenden Oszillationsbefehlskurvenform auf Basis eines Vergleichsergebnisses von der Vergleichseinheit (383).Numerical control (1X) according to one of the Claims 1 until 4 comprising: a comparison unit (383) for comparing the oscillation command waveform corresponding to each of the drive axes with a feedback oscillation waveform corresponding to each of the drive axes, the feedback oscillation waveform representing an actual trajectory of the tool followed during oscillation of the tool; and an oscillation command waveform adjusting unit (384X) for adjusting the oscillation command waveform corresponding to each of the drive axes based on a comparison result from the comparison unit (383). Numerische Steuerung (1X) nach Anspruch 5, wobei die Oszillationsbefehlskurvenform-Anpassungseinheit (384X) die Oszillationsbefehlskurvenform durch Modifikation eines Servoparameters für eine entsprechende der Antriebsachsen anpasst.Numerical control (1X) according to Claim 5 wherein the oscillation command waveform adjusting unit (384X) adjusts the oscillation command waveform by modifying a servo parameter for a corresponding one of the drive axes. Numerische Steuerung (1Y) nach Anspruch 6, die aufweist: eine Zustandsbeobachtungseinheit (52), um als Zustandsvariablen das Vergleichsergebnis von der Vergleichseinheit (383), Modifikationsinformationen und Trägheitsinformationen in Bezug auf jede der mehreren Antriebsachsen zu beobachten, wobei die Modifikationsinformationen einen Oszillationsamplitudenanpassungswert für jede der Antriebsachsen und ein Detail der für jede der Antriebsachsen an dem Servoparameter vorgenommene Modifikation repräsentieren, die bei der von der Oszillationsbefehlskurvenform-Anpassungseinheit (384X) an der Oszillationsbefehlskurvenform vorgenommen Anpassung verwendet werden; und eine Lerneinheit (51), um auf Basis eines Datensatzes, der basierend auf den Zustandsvariablen erzeugt wurde, Oszillationskurvenform-Korrekturinformationen zu lernen, die ein Detail der Anpassung, die an einer jeder der Antriebsachsen entsprechenden Oszillationsamplitude vorgenommen wurde, und ein Detail der Anpassung repräsentieren, die an dem Servoparameter für jede der Antriebsachsen vorgenommen wurde.Numerical control (1Y) according to Claim 6 comprising: a state observation unit (52) for observing, as state variables, the comparison result from the comparison unit (383), modification information, and inertia information with respect to each of the plurality of drive axes, the modification information representing an oscillation amplitude adjustment value for each of the drive axes and a detail of the modification made to the servo parameter for each of the drive axes, which are used in the adjustment made to the oscillation command waveform by the oscillation command waveform adjustment unit (384X); and a learning unit (51) for learning, based on a data set generated based on the state variables, oscillation waveform correction information representing a detail of the adjustment made to an oscillation amplitude corresponding to each of the drive axes and a detail of the adjustment made to the servo parameter for each of the drive axes. Numerisches Steuerverfahren zur Verwendung bei einer numerischen Steuerung (1X) zum Steuern einer Werkzeugmaschine, die mehrere Antriebsachsen ansteuert, um ein Werkzeug gemäß einem Bearbeitungsprogramm (343) zu bewegen, wobei das Verfahren umfasst: einen Oszillationskurvenform-Erzeugungsschritt zum Erzeugen einer Oszillationskurvenform, die eine Oszillationsbahn des Werkzeugs repräsentiert, der bei der Bearbeitung eines Werkstücks gefolgt wird, während das Werkzeug in Oszillation versetzt wird; und einen Oszillationsbefehlskurvenform-Erzeugungsschritt zum Erzeugen einer jeder der mehreren Antriebsachsen entsprechenden Oszillationsbefehlskurvenform auf Basis der Oszillationskurvenform, die als Oszillationskurvenform zur Oszillation entlang der Richtung einer zweiten Achse in einem bestimmten Winkel bezogen auf eine erste Achse dient, wobei die erste Achse parallel zu einer Antriebsachse der mehreren Antriebsachsen verläuft und wobei die Oszillationsbefehlskurvenform die Bewegungsbahn des Werkzeugs entlang der Richtung einer entsprechenden der Antriebsachsen repräsentiert, dadurch gekennzeichnet, dass der bestimmte Winkel durch das Bearbeitungsprogramm oder durch Festlegung der zweiten Achse vorspezifiziert ist.A numerical control method for use in a numerical controller (1X) for controlling a machine tool that drives a plurality of drive axes to move a tool according to a machining program (343), the method comprising: an oscillation waveform generating step for generating an oscillation waveform representing an oscillation trajectory of the tool followed in machining a workpiece while causing the tool to oscillate and an oscillation command waveform generating step of generating an oscillation command waveform corresponding to each of the plurality of drive axes based on the oscillation waveform serving as an oscillation waveform for oscillating along the direction of a second axis at a certain angle with respect to a first axis, the first axis being parallel to a drive axis of the plurality of drive axes, and the oscillation command waveform representing the movement trajectory of the tool along the direction of a corresponding one of the drive axes, characterized in that the certain angle is prespecified by the machining program or by designating the second axis. Maschinenlernvorrichtung (50) zum Erlernen einer Detailanpassung, die an einer Oszillationsbefehlskurvenform vorzunehmen ist, die jeder von mehreren Antriebsachsen entspricht, die von einer numerischen Steuerung (1Y) zum Steuern einer Werkzeugmaschine angesteuert werden, um ein Werkzeug gemäß einem Bearbeitungsprogramm (343) zu bewegen, wobei die Oszillationsbefehlskurvenform eine Oszillationsbahn des Werkzeugs entlang einer Richtung jeder der mehreren Antriebsachsen repräsentiert, der während der Oszillation des Werkzeugs entlang der Richtung einer zweiten Achse in einem bestimmten Winkel bezogen auf eine erste Achse gefolgt wird, wobei die erste Achse parallel zu einer Antriebsachse der mehreren Antriebsachsen verläuft, wobei die Maschinenlernvorrichtung (50) aufweist: eine Zustandsbeobachtungseinheit (52), um als Zustandsvariablen ein Vergleichsergebnis, Modifikationsinformationen und Trägheitsinformationen in Bezug auf jede der mehreren Antriebsachsen zu beobachten, wobei es sich bei dem Vergleich um einen Vergleich der jeder der Antriebsachsen entsprechenden Oszillationsbefehlskurvenform mit einer jeder der Antriebsachsen entsprechenden Feedback-Oszillationskurvenform handelt, die eine tatsächliche Bewegungsbahn des Werkzeugs repräsentiert, der während der Oszillation des Werkzeugs gefolgt wird, wobei die Modifikationsinformationen einen Oszillationsamplitudenanpassungswert für jede der Antriebsachsen und ein Detail der an einem Servoparameter für jede der Antriebsachsen vorgenommenen Modifikation repräsentieren, die bei der Anpassung an die jeder der Antriebsachsen entsprechenden Oszillationsbefehlskurvenform verwendet werden; und eine Lerneinheit (51), um auf Basis eines Datensatzes, der auf der Basis der Zustandsvariablen erzeugt wurde, Oszillationskurvenform-Korrekturinformationen zu lernen, die ein Detail der Anpassung, die an einer jeder der Antriebsachsen entsprechenden Oszillationsamplitude vorgenommen wird, und ein Detail der Anpassung repräsentieren, die an dem Servoparameter für jede der Antriebsachsen vorgenommen wird, dadurch gekennzeichnet, dass der bestimmte Winkel durch das Bearbeitungsprogramm oder durch Festlegung der zweiten Achse vorspezifiziert ist.A machine learning device (50) for learning a detailed adjustment to be made to an oscillation command waveform corresponding to each of a plurality of drive axes driven by a numerical controller (1Y) for controlling a machine tool to move a tool according to a machining program (343), the oscillation command waveform representing an oscillation trajectory of the tool along a direction of each of the plurality of drive axes followed during oscillation of the tool along the direction of a second axis at a certain angle with respect to a first axis, the first axis being parallel to a drive axis of the plurality of drive axes, the machine learning device (50) comprising: a state observation unit (52) for observing, as state variables, a comparison result, modification information, and inertia information with respect to each of the plurality of drive axes, the comparison being a comparison of the oscillation command waveform corresponding to each of the drive axes with a feedback oscillation waveform corresponding to each of the drive axes representing an actual trajectory of the tool followed during oscillation of the tool, the modification information representing an oscillation amplitude adjustment value for each of the drive axes and a detail of the modification made to a servo parameter for each of the drive axes, which are used in adjusting to the oscillation command waveform corresponding to each of the drive axes; and a learning unit (51) for learning, based on a data set generated on the basis of the state variable, oscillation waveform correction information representing a detail of the adjustment made to an oscillation amplitude corresponding to each of the drive axes and a detail of the adjustment made to the servo parameter for each of the drive axes, characterized in that the specific angle is prespecified by the machining program or by designating the second axis.
DE112019007578.0T 2019-09-11 2019-09-11 Numerical control, numerical control method and machine learning device Active DE112019007578B4 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/035771 WO2021048959A1 (en) 2019-09-11 2019-09-11 Numerical control device, numerical control method, and machine learning device

Publications (2)

Publication Number Publication Date
DE112019007578T5 DE112019007578T5 (en) 2022-05-05
DE112019007578B4 true DE112019007578B4 (en) 2024-07-18

Family

ID=74860853

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019007578.0T Active DE112019007578B4 (en) 2019-09-11 2019-09-11 Numerical control, numerical control method and machine learning device

Country Status (4)

Country Link
JP (1) JP6843314B1 (en)
CN (1) CN114424130A (en)
DE (1) DE112019007578B4 (en)
WO (1) WO2021048959A1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112019007434T5 (en) * 2019-06-28 2022-02-24 Mitsubishi Electric Corporation Numerical control, machine learning apparatus and numerical control method
WO2022158415A1 (en) * 2021-01-21 2022-07-28 ファナック株式会社 Control device and computing device
CN113655759B (en) * 2021-08-18 2022-10-18 哈尔滨工业大学 Method and device for setting rigidity of servo system and servo system
DE112022005403T5 (en) * 2022-01-21 2024-08-29 Fanuc Corporation Information processing device, machine tool control device, and computer program
WO2023171422A1 (en) * 2022-03-10 2023-09-14 株式会社ソニー・インタラクティブエンタテインメント Display control system, display control method, and program
WO2024116336A1 (en) * 2022-11-30 2024-06-06 ファナック株式会社 Control device for machine tool
CN116974239B (en) * 2023-09-22 2023-12-01 深圳市艾姆克斯科技有限公司 Processing track control method and system based on cnc engraving and milling machine

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10392943T5 (en) 2003-05-14 2005-07-07 Mitsubishi Denki K.K. Numerical control device
US20090107308A1 (en) 2007-10-16 2009-04-30 Woody Bethany A Methods and systems for chip breaking in turning applications using cnc toolpaths
DE102011077568A1 (en) 2011-06-15 2012-12-20 Sauer Ultrasonic Gmbh Machine tool, workpiece machining process
JP5851670B1 (en) 2014-10-28 2016-02-03 三菱電機株式会社 Numerical controller
DE102017205214A1 (en) 2016-03-29 2017-10-05 Fanuc Corporation SERVO CONTROL UNIT, CONTROL PROCEDURE, AND COMPUTER PROGRAM FOR A MACHINE TOOL USED IN AN OCCUPATIONAL CUTTING
DE102017208060A1 (en) 2016-05-16 2017-11-16 Fanuc Corporation SERVO CONTROL, CONTROL METHOD, AND COMPUTER PROGRAM FOR A TOOL MACHINE FOR OSCILLATION CUTTING

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5851670B2 (en) 1979-04-27 1983-11-17 新神戸電機株式会社 Method for manufacturing base for lead-acid battery
EP2947527B1 (en) * 2013-02-12 2017-06-21 Mitsubishi Electric Corporation Numerical control device
CN105144008B (en) * 2014-03-17 2016-11-16 三菱电机株式会社 Numerical control device
CN105209991B (en) * 2014-04-23 2017-04-12 三菱电机株式会社 Numerical control apparatus
JP2016194860A (en) * 2015-04-01 2016-11-17 東芝機械株式会社 Vibration cutting machine and vibration cutting method
JP6783238B2 (en) * 2015-09-24 2020-11-11 シチズン時計株式会社 Machine tool control device and machine tool equipped with this control device
JP6474449B2 (en) * 2017-04-07 2019-02-27 ファナック株式会社 Adjusting apparatus and adjusting method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10392943T5 (en) 2003-05-14 2005-07-07 Mitsubishi Denki K.K. Numerical control device
US20090107308A1 (en) 2007-10-16 2009-04-30 Woody Bethany A Methods and systems for chip breaking in turning applications using cnc toolpaths
DE102011077568A1 (en) 2011-06-15 2012-12-20 Sauer Ultrasonic Gmbh Machine tool, workpiece machining process
JP5851670B1 (en) 2014-10-28 2016-02-03 三菱電機株式会社 Numerical controller
DE102017205214A1 (en) 2016-03-29 2017-10-05 Fanuc Corporation SERVO CONTROL UNIT, CONTROL PROCEDURE, AND COMPUTER PROGRAM FOR A MACHINE TOOL USED IN AN OCCUPATIONAL CUTTING
DE102017208060A1 (en) 2016-05-16 2017-11-16 Fanuc Corporation SERVO CONTROL, CONTROL METHOD, AND COMPUTER PROGRAM FOR A TOOL MACHINE FOR OSCILLATION CUTTING

Also Published As

Publication number Publication date
JPWO2021048959A1 (en) 2021-09-30
CN114424130A (en) 2022-04-29
WO2021048959A1 (en) 2021-03-18
DE112019007578T5 (en) 2022-05-05
JP6843314B1 (en) 2021-03-17

Similar Documents

Publication Publication Date Title
DE112019007578B4 (en) Numerical control, numerical control method and machine learning device
DE102017205214B4 (en) SERVO CONTROL UNIT, CONTROL METHOD AND COMPUTER PROGRAM FOR A MACHINE TOOL USED FOR OSCILLATING CUTTING
DE102018003786B4 (en) Display device and processing system for oscillation cutting
DE102018002566B4 (en) Control device for an oscillation cutting machine tool
DE60035129T2 (en) DEVICE AND METHOD FOR MACHINE SIMULATION FOR NUMERICALLY CONTROLLED PROCESSING
DE69712824T2 (en) Methods of creating discrete points that define a cutting path that meets manufacturing conditions selected for a blank
DE69232317T2 (en) Numerical control unit
DE102012017331B4 (en) A numerical control device having a workpiece setting error compensation unit for a multi-axis machine tool
DE102011018536B4 (en) Numerical control with an oscillation operation function capable of changing the speed in an optional section
DE102017001783B4 (en) Numerical control device which enables an increase in the number of analysis digits of a program instruction
DE102011104445B4 (en) Numerical control for a machine tool with a speed control function of a sheet guide
DE102018003051B4 (en) Control device for a machine tool that performs vibratory cutting
DE102019209775A1 (en) Machine tool controller
DE112016005969T5 (en) Toolpath correction device and toolpath correction method
DE112018008087B4 (en) Numerical control device and numerical control method
DE102018002784A1 (en) Machine tool control apparatus that performs oscillation cutting
DE102018218202A1 (en) POST PROCESSOR DEVICE, MACHINE PROGRAM GENERATION PROCESS, CNC PROCESSING SYSTEM AND PROGRAM FOR MACHINE PROGRAM GENERATION
DE112014007112T5 (en) Numerically controlled device
DE102019205035A1 (en) Control for machine tool
DE102020124734A1 (en) SIMULATION DEVICE
DE102018218201A1 (en) NUMERICAL CONTROL DEVICE, CNC TOOL MACHINE, NUMERICAL CONTROL PROCEDURE AND NUMERICAL CONTROL PROGRAM
DE102019209104A1 (en) Output device, control device and output method for an evaluation function value
DE112019007434T5 (en) Numerical control, machine learning apparatus and numerical control method
DE102018004444B4 (en) Control device with evaluation program and parameter optimization procedure
DE102016004185B4 (en) Numerical control with control of an intervention between tool and workpiece

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division