DE112019004142T5 - Numerische Steuerungsvorrichtung - Google Patents

Numerische Steuerungsvorrichtung Download PDF

Info

Publication number
DE112019004142T5
DE112019004142T5 DE112019004142.8T DE112019004142T DE112019004142T5 DE 112019004142 T5 DE112019004142 T5 DE 112019004142T5 DE 112019004142 T DE112019004142 T DE 112019004142T DE 112019004142 T5 DE112019004142 T5 DE 112019004142T5
Authority
DE
Germany
Prior art keywords
processing
control device
numerical control
core processor
threads
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.)
Pending
Application number
DE112019004142.8T
Other languages
English (en)
Inventor
Kenji Nishiwaki
Takeshi Tsuda
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 DE112019004142T5 publication Critical patent/DE112019004142T5/de
Pending legal-status Critical Current

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/4155Numerical 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 programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/35Nc in input of data, input till input file format
    • G05B2219/35382Distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

Eine numerische Steuerungsvorrichtung (1) enthält: einen Multi-Core-Prozessor (2); eine Musterbestimmungseinheit (4), die aus einer Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster bestimmt, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor (2) einen Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor den Prozess ausführt; und eine Zuweisungseinheit (5), die eine Vielzahl von Teilprozessen, die den Prozess bilden, auf eine Vielzahl von Kernprozessoren in Übereinstimmung mit dem bestimmten Verarbeitungsmuster verteilt und zuweist. In dem Verarbeitungsmuster wird unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Ausführungsreihenfolge ausgeführt.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine numerische Steuerungsvorrichtung, die eine Werkzeugmaschine steuert.
  • Hintergrund
  • Eine numerische Steuerungsvorrichtung, die eine Werkzeugmaschine steuert, liest ein Bearbeitungsprogramm und führt auf Grundlage des Bearbeitungsprogramms einen Interpolationsprozess zum Berechnen einer Befehlsposition für jede Zeiteinheit auf einem Werkzeugweg, einen Beschleunigungs-/Entschleunigungsprozess zum gleichmäßigen Betreiben der Werkzeugmaschine und einen Achsensteuerungsprozess zum Geben eines Befehls an einen Motor jeder Achse der Werkzeugmaschine aus. Die numerische Steuerungsvorrichtung führt einen HMI-Prozess zum Anzeigen von Informationen zum Betreiben der numerischen Steuerungsvorrichtung und zum Anzeigen von Betriebsergebnissen, einen E/A-Steuerungsprozess zum Steuern von Eingabe-/Ausgabesignalen und einen Kommunikationsprozess zum Ausführen von Netzwerkkommunikations- und Buskommunikationsprozessen aus. Das „HMI“ ist eine Abkürzung für „Human Machine Interface“. E/A” ist eine Abkürzung für „Eingabe/Ausgabe”.
  • In den letzten Jahren sind Werkzeugmaschinen in ihrer Konfiguration komplizierter geworden, und die Anzahl der Achsen, die von Motoren gedreht werden, und die Anzahl der Wege, die Gruppen von Achsen sind, haben zugenommen, so dass die Anzahl der Prozesse, die von einer numerischen Steuerungsvorrichtung ausgeführt werden, gestiegen ist. Die von einer solchen numerischen Steuerungsvorrichtung ausgeführten Prozesse müssen innerhalb einer vorbestimmten Zeit ausgeführt werden.
  • Herkömmlicherweise wurde eine numerische Steuerungsvorrichtung mit einer Vielzahl von Kernprozessoren vorgeschlagen (siehe z.B. Patentliteratur 1). Die herkömmliche numerische Steuerungsvorrichtung unterteilt einen auszuführenden Prozess in eine Vielzahl von Teilprozessen, verteilt und weist die Vielzahl von Teilprozessen einer Vielzahl von Kernprozessoren zu. Als Ergebnis führt die herkömmliche numerische Steuerungsvorrichtung eine zunehmende Anzahl von Prozessen innerhalb einer vorbestimmten Zeit aus.
  • Zitierliste
  • Patentliteratur
  • Patentliteratur 1: Japanisches Patent Nr. 6151669
  • Kurzbeschreibung
  • Technisches Problem
  • Obwohl es möglich ist, einen von einer numerischen Steuerungsvorrichtung ausgeführten Prozess in eine Vielzahl von Teilprozessen zu unterteilen, kann die Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen umfassen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist. Beispielsweise kann es einen Fall geben, in dem ein Prozess zwar in einen Teilprozess A, einen Teilprozess B und einen Teilprozess C unterteilt werden kann, der Teilprozess B aber ein Prozess ist, der ein Ergebnis des Teilprozesses A verwendet, und der Teilprozess C ein Prozess ist, der ein Ergebnis des Teilprozesses B verwendet. In einem solchen Fall müssen der Teilprozess A, der Teilprozess B und der Teilprozess C in der Reihenfolge des Teilprozesses A, des Teilprozesses B und des Teilprozesses C ausgeführt werden.
  • Es kann einen Fall geben, in dem der Teilprozess A einem ersten Kernprozessor, der Teilprozess B einem zweiten Kernprozessor und der Teilprozess C einem dritten Kernprozessor in einer solchen herkömmlichen numerischen Steuerungsvorrichtung zugewiesen ist. In einem solchen Fall müssen, wie oben beschrieben, der Teilprozess A, der Teilprozess B und der Teilprozess C in der Reihenfolge des Teilprozesses A, des Teilprozesses B und des Teilprozesses C ausgeführt werden, und daher können der Teilprozess A, der Teilprozess B und der Teilprozess C nicht parallel ausgeführt werden.
  • Die vorliegende Erfindung wurde in Anbetracht der obigen Ausführungen gemacht, und ein Ziel der vorliegenden Erfindung ist es, eine numerische Steuerungsvorrichtung zu erhalten, mit der, wenn ein auszuführender Prozess in eine Vielzahl von Teilprozessen unterteilt ist, unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ausgeführt werden, ohne die Ausführungsreihenfolge zu ändern, und der Prozess in einer Verarbeitungszeit ausgeführt wird, die kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor den Prozess ausführt.
  • Lösung des Problems
  • Um die oben beschriebenen Probleme zu lösen und das Ziel zu erreichen, ist die vorliegende Erfindung eine numerische Steuerungsvorrichtung, die eine Werkzeugmaschine steuert und einen Multi-Core-Prozessor mit einer Vielzahl von Kernprozessoren und eine Musterbestimmungseinheit umfasst. Auf Grundlage von Ressourceninformationen, einschließlich Informationen, die die Anzahl der in dem Multi-Core-Prozessor enthaltenen Kernprozessoren angeben, Maschinenkonfigurationsinformationen bezüglich der die Werkzeugmaschine bildenden Hardware und Softwarekonfigurationsinformationen, die, wenn ein durch den Multi-Core-Prozessor ausgeführter Prozess unter Verwendung von Software ausgeführt wird, eine Konfiguration der Software angeben, wählt die Musterbestimmungseinheit aus einer Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster aus, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor den Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt, und bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt. Die vorliegende Erfindung umfasst ferner eine Zuweisungseinheit, die eine Vielzahl von Teilprozessen, die den Prozess bilden, entsprechend dem von der Musterbestimmungseinheit bestimmten Verarbeitungsmuster auf die Vielzahl von Kernprozessoren verteilt und zuweist. Jedes der Vielzahl von Verarbeitungsmustern ist ein Verarbeitungsmuster, in dem unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Ausführungsreihenfolge ausgeführt werden.
  • Vorteilhafte Wirkungen der Erfindung
  • Mit der vorliegenden Erfindung wird die Wirkung erzielt, dass, wenn ein auszuführender Prozess in eine Vielzahl von Teilprozessen aufgeteilt wird, unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ausgeführt werden kann, ohne die Ausführungsreihenfolge zu ändern, und der Prozess in einer Verarbeitungszeit ausgeführt werden kann, die kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor den Prozess ausführt.
  • Figurenliste
    • 1 ist ein Diagramm zum Veranschaulichen einer Konfiguration einer numerischen Steuerungsvorrichtung gemäß einer ersten Ausführungsform.
    • 2 ist ein Diagramm zum Veranschaulichen eines Prozesses, der von der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform ausgeführt wird.
    • 3 ist ein Diagramm zum Erläutern eines Betriebs, wenn die numerische Steuerungsvorrichtung gemäß der ersten Ausführungsform Teilprozesse einer Vielzahl von Kernprozessoren zuweist.
    • 4 ist ein Diagramm zum Veranschaulichen eines Beispiels für einen Fall, in dem ein Kernprozessor eine Vielzahl von Teilprozessen ausführt und ein Bearbeitungsprogramm-Analyseprozess über eine vorbestimmte Zykluszeit hinaus ausgeführt wird.
    • 5 ist ein Diagramm zum Veranschaulichen eines Beispiels für einen Fall, in dem ein Kernprozessor die Vielzahl von Teilprozessen ausführt und ein Interpolationsprozess über eine vorbestimmte Zykluszeit hinaus ausgeführt wird.
    • 6 ist ein Diagramm zum Veranschaulichen eines ersten Beispiels eines Verarbeitungsmusters, in dem Prozesse verteilt und einer Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform ausgeführt werden.
    • 7 ist ein Diagramm zum Veranschaulichen eines zweiten Beispiels des Verarbeitungsmusters, in dem Prozesse verteilt und der Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform ausgeführt werden.
    • 8 ist ein Diagramm zum Veranschaulichen eines dritten Beispiels des Verarbeitungsmusters, in dem Prozesse verteilt und der Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform ausgeführt werden.
    • 9 ist ein Diagramm zum Veranschaulichen einer Verarbeitungszeit und eines Ausführungszyklus von jedem einer Vielzahl von Teilprozessen, die von der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform ausgeführt werden.
    • 10 ist ein Flussdiagramm zum Veranschaulichen eines Beispiels für einen Betriebsablauf einer Musterbestimmungseinheit, die in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform enthalten ist.
    • 11 ist ein Diagramm zum Veranschaulichen einer Konfiguration einer numerischen Steuerungsvorrichtung gemäß einer zweiten Ausführungsform.
    • 12 ist ein Diagramm zum Veranschaulichen eines ersten Beispiels eines Verarbeitungsmusters, in dem Prozesse von der numerischen Steuerungsvorrichtung gemäß der zweiten Ausführungsform und einer anderen numerischen Steuerungsvorrichtung ausgeführt werden.
    • 13 ist ein Diagramm zum Veranschaulichen eines zweiten Beispiels des Verarbeitungsmusters, in dem Prozesse von der numerischen Steuerungsvorrichtung gemäß der zweiten Ausführungsform und der anderen numerischen Steuerungsvorrichtung ausgeführt werden.
    • 14 ist ein Diagramm zum Veranschaulichen einer Konfiguration einer numerischen Steuerungsvorrichtung gemäß einer dritten Ausführungsform.
    • 15 ist ein Diagramm zum Veranschaulichen eines ersten Beispiels eines Verarbeitungsmusters, wenn die Anzahl der Kernprozessoren, die in einem Multi-Core-Prozessor enthalten sind, der in der numerischen Steuerungsvorrichtung gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen eines zu steuernden Objekts.
    • 16 ist ein Diagramm zum Veranschaulichen eines zweiten Beispiels des Verarbeitungsmusters, wenn die Anzahl der Kernprozessoren, die in dem Multi-Core-Prozessor enthalten sind, der in der numerischen Steuerungsvorrichtung gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen des zu steuernden Objekts.
    • 17 ist ein Diagramm zum Veranschaulichen eines dritten Beispiels des Verarbeitungsmusters, wenn die Anzahl der Kernprozessoren, die in dem Multi-Core-Prozessor enthalten sind, der in der numerischen Steuerungsvorrichtung gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen des zu steuernden Objekts.
    • 18 ist ein Diagramm zum Veranschaulichen eines Prozessors, wenn ein Teil oder alle Funktionen der Musterbestimmungseinheit und einer Zuweisungseinheit, die in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform enthalten sind, durch den Prozessor realisiert werden.
    • 19 ist ein Diagramm zum Veranschaulichen einer Verarbeitungsschaltung, wenn ein Teil oder alle Funktionen der Musterbestimmungseinheit und der Zuweisungseinheit, die in der numerischen Steuerungsvorrichtung gemäß der ersten Ausführungsform enthalten sind, durch die Verarbeitungsschaltung realisiert werden.
  • Beschreibung der Ausführungsformen
  • Nachfolgend wird eine numerische Steuerungsvorrichtung gemäß jeder Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die Figuren im Detail beschrieben. Die vorliegende Erfindung ist nicht auf die Ausführungsformen beschränkt.
  • Erste Ausführungsform.
  • 1 ist ein Diagramm, das eine Konfiguration einer numerischen Steuerungsvorrichtung 1 gemäß einer ersten Ausführungsform zeigt. Die numerische Steuerungsvorrichtung 1 ist eine Vorrichtung zum Steuern einer Werkzeugmaschine und enthält einen Multi-Core-Prozessor 2. Der Multi-Core-Prozessor 2 umfasst einen ersten Kernprozessor 21, einen zweiten Kernprozessor 22, einen dritten Kernprozessor 23 und einen vierten Kernprozessor 24. Der erste Kernprozessor 21, der zweite Kernprozessor 22, der dritte Kernprozessor 23 und der vierte Kernprozessor 24 sind Beispiele für eine Vielzahl von Kernprozessoren.
  • Die numerische Steuerungsvorrichtung 1 umfasst ferner eine Speichereinheit 3. Ein Beispiel für die Speichereinheit 3 ist ein Halbleiterspeicher. Beispielsweise ist ein Teil der Speichereinheit 3 ein nichtflüchtiger Speicher. Die Speichereinheit 3 speichert Ressourceninformationen, einschließlich Informationen, die die Anzahl der in dem Multi-Core-Prozessor 2 enthaltenen Kernprozessoren angeben. Die Speichereinheit 3 speichert ferner Maschinenkonfigurationsinformationen bezüglich der Hardware, aus der die Werkzeugmaschine besteht. Die Speichereinheit 3 speichert ferner Softwarekonfigurationsinformationen, die, wenn ein von dem Multi-Core-Prozessor 2 ausgeführter Prozess unter Verwendung von Software ausgeführt wird, eine Konfiguration der Software angeben. Bei den Softwarekonfigurationsinformationen handelt es sich um Informationen, die eine Vielzahl von Verarbeitungsblöcken, die innerhalb der numerischen Steuerungsvorrichtung 1 ausgeführt werden, sowie einen Ausführungszyklus und eine Ausführungszeit für jeden der Vielzahl von Verarbeitungsblöcken angeben. Die Verarbeitungsblöcke sind jeweils eine Verarbeitungsfunktion.
  • Die Speichereinheit 3 speichert ferner Verarbeitungsmusterinformationen, die eine Vielzahl von Verarbeitungsmustern angeben. Jedes der Vielzahl von Verarbeitungsmustern ist ein Verarbeitungsmuster, in dem unter einer Vielzahl von Teilprozessen, die den Prozess bilden, eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Ausführungsreihenfolge ausgeführt werden.
  • Die numerische Steuerungsvorrichtung 1 enthält ferner eine Musterbestimmungseinheit 4, die auf Grundlage der Ressourceninformationen, der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen ein Verarbeitungsmuster aus der Vielzahl von Verarbeitungsmustern, die durch die Verarbeitungsmusterinformationen angegeben werden, auswählt, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 den Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Core-Prozessor der Vielzahl von Core-Prozessoren den Prozess ausführt. Die Musterbestimmungseinheit 4 bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt. In der ersten Ausführungsform sind die Ressourceninformationen, die Maschinenkonfigurationsinformationen, die Softwarekonfigurationsinformationen und die Verarbeitungsmusterinformationen Informationen, die in der Speichereinheit 3 gespeichert sind.
  • Beispielsweise wählt die Musterbestimmungseinheit 4 auf Grundlage der Ressourceninformationen, der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen ein Verarbeitungsmuster, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 den Prozess ausführt, aus der Vielzahl von Verarbeitungsmustern am kürzesten ist, und bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  • Zum Beispiel misst die Musterbestimmungseinheit 4 eine Verarbeitungszeit jedes der Vielzahl von Teilprozessen im Voraus, wählt ein Verarbeitungsmuster, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 den Prozess ausführt, am kürzesten ist, aus der Vielzahl von Verarbeitungsmustern unter Verwendung der gemessenen Verarbeitungszeit aus, und bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  • Die numerische Steuerungsvorrichtung 1 enthält ferner eine Zuweisungseinheit 5, die die Vielzahl von Teilprozessen, die den Prozess bilden, entsprechend dem von der Musterbestimmungseinheit 4 bestimmten Verarbeitungsmuster auf die Vielzahl von Kernprozessoren verteilt und zuweist. Jeder des ersten Kernprozessors 21, des zweiten Kernprozessors 22, des dritten Kernprozessors 23 und des vierten Kernprozessors 24 führt den Teilprozess aus, der von der Zuweisungseinheit 5 zugewiesen wurde.
  • Die numerische Steuerungsvorrichtung 1 ist mit einem Motorsteuerungsverstärker 11 verbunden. Der Motorsteuerungsverstärker 11 ist mit einer Vielzahl von Motoren 12 verbunden und steuert jeden der Vielzahl von Motoren 12. Jeder der Vielzahl der Motoren 12 ist ein Teil der Werkzeugmaschine. In 1 ist der Einfachheit halber nur ein Motor 12 dargestellt. Jeder aus der Vielzahl der Motoren 12 dreht eine Achse eines zu steuernden Objekts. Das heißt, der Motorsteuerungsverstärker 11 steuert die Drehung jeder der Achsen einer Vielzahl von zu steuernden Objekten.
  • Die numerische Steuerungsvorrichtung 1 ist auch mit einem Display 13 verbunden, das die Funktion hat, ein Ergebnis einer von der numerischen Steuerungsvorrichtung 1 ausgeführten arithmetischen Operation anzuzeigen. Das Display 13 kann eine Dateneingabevorrichtung umfassen. Die Dateneingabevorrichtung kann eine Tastatur enthalten. Die numerische Steuerungsvorrichtung 1 ist auch mit einer Eingabe-/Ausgabevorrichtung 14 verbunden, die eine oder beide der digitalen Eingabeinformationen und analogen Eingabeinformationen von der Werkzeugmaschine empfängt und eine oder beide der digitalen Ausgabeinformationen und analogen Ausgabeinformationen an die Werkzeugmaschine überträgt. Im Folgenden kann die „Eingabe-/Ausgabevorrichtung 14“ als „E/A-Vorrichtung 14” bezeichnet werden. In den Figuren wird die „Eingabe-/Ausgabevorrichtung 14“ als „E/A-Vorrichtung 14” bezeichnet. Die numerische Steuerungsvorrichtung 1 ist auch mit einer Netzwerkvorrichtung 15 verbunden, die die numerische Steuerungsvorrichtung 1 mit einem Kommunikationsnetzwerk verbindet.
  • 2 ist ein Diagramm, das einen Prozess veranschaulicht, der von der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform ausgeführt wird. 2 zeigt auch den Motorsteuerungsverstärker 11, das Display 13, die E/A-Vorrichtung 14 und die Netzwerkvorrichtung 15. Die numerische Steuerungsvorrichtung 1 liest ein Bearbeitungsprogramm 31 und führt einen Bearbeitungsprogramm-Leseprozess 32 zum Lesen des in dem Bearbeitungsprogramm 31 beschriebenen G-Codes aus. Das Bearbeitungsprogramm 31 enthält eine Vielzahl von Befehlsanweisungen. Bei dem Bearbeitungsprogramm-Leseprozess 32 kann die numerische Steuerungsvorrichtung 1 die Befehlsanweisungen zeilenweise lesen oder die Befehlsanweisungen in einer Vielzahl von Zeilen auf einmal lesen.
  • Nach dem Ausführen des Bearbeitungsprogramm-Leseprozesses 32 führt die numerische Steuerungsvorrichtung 1 einen Bearbeitungsprogramm-Analyseprozess 33 zum Analysieren des gelesenen Bearbeitungsprogramms 31 aus. Das Bearbeitungsprogramm 31 enthält einen Funktionscode, der einen als G-Code bezeichneten Bewegungsbefehl und einen Synchronisationsbefehl zwischen Wegen enthält. In dem Bearbeitungsprogramm 31 ist z.B. auch eine Koordinatenposition beschrieben, die eine Spitzenposition eines Werkzeugs bestimmt. In dem Bearbeitungsprogramm-Analyseprozess 33 berechnet die numerische Steuerungsvorrichtung 1 auf Grundlage des Bewegungsbefehls, des Synchronisationsbefehls und der Koordinatenposition des Werkzeugs eine Koordinatenposition, die in einen schließlich an den Motor 12 gegebenen Befehl aufgenommen wird.
  • Zum Beispiel in einem Fall, in dem eine Werkzeugradiuskompensation und eine Koordinatenposition, die eine Werkzeugspitzenposition bestimmt, in dem Bearbeitungsprogramm 31 beschrieben sind, berechnet die numerische Steuerungsvorrichtung 1 eine Korrekturposition, die durch Verschieben der gelesenen Koordinatenposition durch die Werkzeugradiuskompensation für ein Werkzeug mit einer bestimmten Werkzeugnummer in dem Bearbeitungsprogramm-Analyseprozess 33 erhalten wird. In dem Bearbeitungsprogramm-Analyseprozess 33 führt die numerische Steuerungsvorrichtung 1 eine Koordinatenumrechnung an der Werkzeugspitzenposition durch, die eine Korrekturposition ist, und berechnet eine Steuerposition des Motors 12. Die numerische Steuerungsvorrichtung 1 berechnet die Steuerposition für jeden aus der Vielzahl der Motoren 12.
  • Als nächstes führt die numerische Steuerungsvorrichtung 1 einen Interpolationsprozess 34 aus, um eine Interpolationsposition zu berechnen, indem sie zu der in dem Bearbeitungsprogramm-Analyseprozess 33 berechneten Steuerposition des Motors 12 in regelmäßigen Abständen einen Bewegungsbetrag addiert, der einer Vorschubgeschwindigkeit entspricht. Bei dem Interpolationsprozess 34 berechnet die numerische Steuerungsvorrichtung 1 nicht nur die Interpolationsposition, sondern führt auch einen Synchronisationsprozess für einen Weg und einen anderen Weg aus, wenn ein Mehrwegeprozess ausgeführt wird.
  • Der Synchronisationsprozess ist beispielsweise ein Warteprozess, in dem Zustände anderer Wege überprüft werden, um zu bestimmen, ob ein nächster Interpolationsprozess auf einem Weg ausgeführt werden darf. Zum Beispiel in einem Fall, in dem der Bewegungsbetrag einer Achse eines Weges und der Bewegungsbetrag einer Achse eines anderen Weges zueinander addiert werden und der in einem Befehl in dem Bearbeitungsprogramm 31 enthaltene Bewegungsbetrag behandelt wird, ist der Synchronisationsprozess ein Prozess zum Erfassen von Informationen, die den Bewegungsbetrag der Achse des anderen Weges angeben, um den Bewegungsbetrag der Achse des einen Weges zu bestimmen, wodurch die Interpolationsposition berechnet wird.
  • Als nächstes führt die numerische Steuerungsvorrichtung 1 beispielsweise einen Filterprozess mit gleitendem Mittelwert oder einen Prozess zum Konstanthalten der Beschleunigung an der in dem Interpolationsprozess 34 erhaltenen Interpolationsposition aus und führt einen Beschleunigungs-/Entschleunigungsprozess 35 zum Berechnen einer Befehlsposition für den Motor 12 aus, so dass die Geschwindigkeit des zu steuernden Objekts gleichmäßig wird.
  • Als nächstes führt die numerische Steuerungsvorrichtung 1 einen Achsensteuerungsprozess 36 aus, um die Befehlsposition an den Motor 12 auf einen Befehl an den Motor 12 zu setzen, wobei die Befehlsposition in dem Beschleunigungs-/Entschleunigungsprozess 35 berechnet wird. Der Motorsteuerungsverstärker 11 steuert den Motor 12 auf Grundlage des Befehls. Beispielsweise steuert der Motorsteuerungsverstärker 11 einen Wert eines Stroms, der durch den Motor 12 fließt.
  • Die numerische Steuerungsvorrichtung 1 führt auch einen HMI-Prozess 37 zum Anzeigen von Daten innerhalb der numerischen Steuerungsvorrichtung 1 auf dem Display 13 aus. Die Daten umfassen Daten, die durch eine innerhalb der numerischen Steuerungsvorrichtung 1 ausgeführte arithmetische Operation erhalten werden. Der HMI-Prozess 37 umfasst einen Prozess zum Empfangen einer Eingabe von einem Benutzer. Je früher der HMI-Prozess 37 ausgeführt wird, desto besser ist die Reaktionsfähigkeit auf den Benutzer. Die numerische Steuerungsvorrichtung 1 führt auch einen E/A-Steuerungsprozess 38 aus, der die Ausgabe von Daten an die Werkzeugmaschine und einen Leiterprozess zum Empfangen von Signalen von der Werkzeugmaschine umfasst. Die numerische Steuerungsvorrichtung 1 führt den E/A-Steuerungsprozess 38 über die E/A-Vorrichtung 14 aus. Die numerische Steuerungsvorrichtung 1 führt auch einen Kommunikationsprozess 39 zum Senden und Empfangen von Daten zu und von einem Objekt außerhalb der numerischen Steuerungsvorrichtung 1 über die Netzwerkvorrichtung 15 aus. Die Werkzeugmaschine ist nicht in dem Objekt außerhalb der numerischen Steuerungsvorrichtung 1 enthalten.
  • Der Bearbeitungsprogramm-Leseprozess 32, der Bearbeitungsprogramm-Analyseprozess 33, der Interpolationsprozess 34, der E/A-Steuerungsprozess 35, der Achsensteuerungsprozess 36, der HMI-Prozess 37, der E/A-Steuerungsprozess 38 und der Kommunikationsprozess 39 sind Prozesse, die von dem Multi-Core-Prozessor 2 ausgeführt werden. Jeder des Bearbeitungsprogramm-Leseprozesses 32, des Bearbeitungsprogramm-Analyseprozesses 33, des Interpolationsprozesses 34, des Beschleunigungs- /Entschleunigungsprozesses 35, des Achsensteuerungsprozesses 36, des HMI-Prozesses 37, des E/A-Steuerungsprozesses 38 und des Kommunikationsprozesses 39 ist ein Beispiel für einen Teilprozess.
  • 3 ist ein Diagramm zur Erläuterung eines Betriebs, wenn die numerische Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform der Vielzahl von Kernprozessoren Teilprozesse zuweist. Wie oben beschrieben, ist ein Beispiel für den Teilprozess einer der Vielzahl von Prozessen, die mit Bezug auf 2 beschrieben wurden. Die Speichereinheit 3 speichert Verarbeitungsmusterinformationen 41, die ein Verarbeitungsmuster angeben, das spezifiziert, wie ein von dem Multi-Core-Prozessor 2 ausgeführter Prozess aufgeteilt werden soll und zu welchem Zeitpunkt jeder Teilprozess ausgeführt wird. Die Verarbeitungsmusterinformationen 41 zeigen eine Vielzahl von Verarbeitungsmustern an. Die Verarbeitungsmusterinformationen 41, die die Vielzahl von Verarbeitungsmustern angeben, werden im Voraus vorbereitet.
  • Die Speichereinheit 3 speichert ferner Ressourceninformationen 42, einschließlich Informationen, die die Anzahl der Kernprozessoren angeben, die den Multi-Core-Prozessor 2 bilden, der in der numerischen Steuerungsvorrichtung 1 enthalten ist. Die Ressourceninformationen 42 können Informationen enthalten, die die Anzahl der verfügbaren arithmetischen Vorrichtungen angeben, die in einer anderen numerischen Steuerungsvorrichtung oder Berechnungsvorrichtung enthalten sind, die mit der numerischen Steuerungsvorrichtung 1 über ein Kommunikationsnetzwerk oder einen Kommunikationsbus verbunden ist. Ein Beispiel für eine arithmetische Vorrichtung ist ein Prozessor.
  • Die Speichereinheit 3 speichert ferner Maschinenkonfigurationsinformationen 43 bezüglich der Hardware, aus der die Werkzeugmaschine besteht. Beispielsweise umfassen die Maschinenkonfigurationsinformationen 43 einen Teil oder alle Informationen, die die Anzahl der in der Werkzeugmaschine enthaltenen Achsen angeben, Informationen, die die Anzahl der Wege angeben, Informationen, die einen Maschinentyp angeben, und Informationen, die die Anzahl der an die numerische Steuerungsvorrichtung 1 angeschlossenen E/A-Vorrichtungen angeben. Die Information, die einen Maschinentyp angibt, ist zum Beispiel eine Information, die angibt, dass die Werkzeugmaschine eine Drehmaschine oder ein Bearbeitungszentrum ist.
  • Die Speichereinheit 3 speichert ferner Softwarekonfigurationsinformationen 44, die, wenn ein von dem Multi-Core-Prozessor 2 ausgeführter Prozess unter Verwendung von Software ausgeführt wird, eine Konfiguration der Software angeben. Beispielsweise sind die Softwarekonfigurationsinformationen 44 Informationen, die eine Vielzahl von Verarbeitungsblöcken, die innerhalb der numerischen Steuerungsvorrichtung 1 ausgeführt werden, sowie einen Ausführungszyklus und eine Ausführungszeit jedes der Vielzahl von Verarbeitungsblöcken angeben. Die Verarbeitungsblöcke sind jeweils eine Verarbeitungsfunktion.
  • Auf Grundlage der Ressourceninformationen 42, der Maschinenkonfigurationsinformationen 43 und der Softwarekonfigurationsinformationen 44 bestimmt die Musterbestimmungseinheit 4 aus der Vielzahl von Verarbeitungsmustern, die durch die Verarbeitungsmusterinformationen 41 angegeben werden, ein Verarbeitungsmuster, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 einen Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt. Beispielsweise wählt die Musterbestimmungseinheit 4 auf Grundlage der Ressourceninformationen 42, der Maschinenkonfigurationsinformationen 43 und der Softwarekonfigurationsinformationen 44 aus der Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster aus, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 den Prozess ausführt, am kürzesten ist, und bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  • In Übereinstimmung mit dem von der Musterbestimmungseinheit 4 bestimmten Verarbeitungsmuster verteilt und weist die Zuweisungseinheit 5 eine Vielzahl von Teilprozessen an den ersten Kernprozessor 21, den zweiten Kernprozessor 22, den dritten Kernprozessor 23 und den vierten Kernprozessor 24 zu, die in dem Multi-Core-Prozessor 2 enthalten sind.
  • In der ersten Ausführungsform ist ein Beispiel dargestellt, in dem ein Verarbeitungsmuster in Abhängigkeit davon bestimmt wird, ob ein Bearbeitungsprogramm ausgeführt wird, in dem es einen Befehlsweg gibt und das mit relativ kurzen Zeilensegmentlängen beschrieben wird, oder ein Fall, in dem eine Mehrachsen-/Mehrwegesteuerung ausgeführt wird, in dem es zwei oder mehr Befehlswege in dem Bearbeitungsprogramm gibt, und die Vielzahl von Teilprozessen verteilt und jedem der Vielzahl von Kernprozessoren zugewiesen werden.
  • 4 ist ein Diagramm, das ein Beispiel für einen Fall darstellt, in dem ein Kernprozessor eine Vielzahl von Teilprozessen ausführt und der Bearbeitungsprogramm-Analyseprozess über eine vorbestimmte Zykluszeit hinaus ausgeführt wird. 4 zeigt ein Beispiel für einen Prozess, in dem ein Befehl zum Erzeugen einer Freiformfläche in einem Bearbeitungsprogramm gegeben wird, in dem die Anzahl der zu steuernden Achsen und die Anzahl der Wege relativ klein sind, das aber mit relativ kurzen Liniensegmentlängen beschrieben wird. Bei der Bearbeitung einer Freiformfläche ist es erforderlich, eine Arbeitsgeschwindigkeit der Werkzeugmaschine konstant zu halten und einen Bearbeitungsprogramm-Leseprozess und einen Bearbeitungsprogramm-Analyseprozess innerhalb einer bestimmten Bearbeitungszeit abzuschließen. Das heißt, es ist eine Echtzeit-Eigenschaft erforderlich. 4 zeigt, dass die Gesamtzeit der Prozesse, die in Echtzeit ausgeführt werden müssen, d.h. der Achsensteuerungsprozess, der Beschleunigungs-/Entschleunigungsprozess, der Interpolationsprozess, der Bearbeitungsprogramm-Leseprozess und der Bearbeitungsprogramm-Analyseprozess, eine vorbestimmte Zykluszeit überschreitet. Die Prozesse, die in Echtzeit ausgeführt werden müssen, sind Prozesse, deren Ausführung innerhalb einer bestimmten Bearbeitungszeit abgeschlossen sein muss.
  • 5 ist ein Diagramm, das ein Beispiel für einen Fall zeigt, in dem ein Kernprozessor die Vielzahl von Teilprozessen ausführt und der Interpolationsprozess über eine vorbestimmte Zykluszeit hinaus ausgeführt wird. 5 ist ein Diagramm, das ein Beispiel für einen Fall veranschaulicht, in dem die Anzahl der zu steuernden Achsen und die Anzahl der Wege relativ groß sind, es aber nicht notwendig ist, den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess innerhalb einer bestimmten Verarbeitungszeit abzuschließen.
  • 5 zeigt, dass beispielsweise in einem Fall, in dem die numerische Steuerungsvorrichtung 1 16 Achsen in vier Wegen steuert, die Gesamtzeit des Achsensteuerungsprozesses, des Beschleunigungs- /Entschleunigungsprozesses und des Interpolationsprozesses, die in Echtzeit ausgeführt werden müssen, eine vorbestimmte Zykluszeit überschreitet. Wenn ein Prozess, der in Echtzeit ausgeführt werden muss, nicht in einer vorbestimmten Zykluszeit ausgeführt wird, wird die vorbestimmte Zykluszeit üblicherweise verlängert, um die Anforderung an die Reaktionsfähigkeit der Steuerung zu reduzieren. Alternativ wird eine Last eines Prozesses, der in Echtzeit ausgeführt werden muss, reduziert und der Prozess, der in Echtzeit ausgeführt werden muss, wird innerhalb einer vorbestimmten Zykluszeit ausgeführt, wodurch die Anforderung an die Reaktionsfähigkeit der Steuerung beibehalten wird.
  • 6 ist ein Diagramm, das ein erstes Beispiel eines Verarbeitungsmusters veranschaulicht, in dem Prozesse verteilt und der Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform ausgeführt werden. 6 veranschaulicht ein Verarbeitungsmuster aus der Vielzahl der Verarbeitungsmuster. In dem in 6 dargestellten Verarbeitungsmuster ist eine Vielzahl von Prozessen für die zu steuernden Achsen und eine Vielzahl von Prozessen für die Wege aufgeteilt. Die Vielzahl der Teilprozesse ist verteilt, und jeder der Vielzahl der Teilprozesse ist einem der Vielzahl der Kernprozessoren zugeordnet. Im Folgenden kann die Vielzahl der Teilprozesse bezüglich der Wege als „Wegprozesse“ bezeichnet werden.
  • Insbesondere gibt das in 6 dargestellte Verarbeitungsmuster an, dass der erste Kernprozessor einen gemeinsamen Prozess des Achsensteuerungsprozesses und den Achsensteuerungsprozess für jede der ersten bis vierten Achsen ausführt. Das in 6 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor den Achsensteuerungsprozess für jede der fünften bis achten Achsen ausführt, der dritte Kernprozessor den Achsensteuerungsprozess für jede der neunten bis 12. Achsen ausführt und der vierte Kernprozessor den Achsensteuerungsprozess für jede der 13. bis 16. Achsen ausführt.
  • In dem in 6 dargestellten Verarbeitungsmuster ist die Anzahl der Achsen, die den jeweiligen Kernprozessoren zugeordnet sind, gleich. Die Anzahl der den Kernprozessoren zugewiesenen Achsen kann jedoch so angepasst werden, dass sie für jeden Kernprozessor unterschiedlich ist, so dass die Verarbeitungszeiten in den jeweiligen Kernprozessoren auf Grundlage der Steuerungsverarbeitungszeit für jede der Vielzahl von Achsen gleich gemacht werden.
  • Das in 6 dargestellte Verarbeitungsmuster zeigt ferner, dass der erste Kernprozessor einen gemeinsamen Prozess eines Wegprozesses und einen Prozess für einen ersten Weg ausführt. Das in 6 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor einen Prozess für einen zweiten Weg ausführt, der dritte Kernprozessor einen Prozess für einen dritten Weg ausführt und der vierte Kernprozessor einen Prozess für einen vierten Weg ausführt.
  • In dem in 6 dargestellten Verarbeitungsmuster ist die Anzahl der Wege, die den jeweiligen Kernprozessoren zugeordnet sind, gleich. Wenn die numerische Steuerungsvorrichtung 1 jedoch Prozesse für vier oder mehr Wege ausführt, kann die Anzahl der den Kernprozessoren zugewiesenen Wege so angepasst werden, dass sie für jeden Kernprozessor unterschiedlich sind, so dass die Verarbeitungszeiten in den jeweiligen Kernprozessoren auf Grundlage der Verarbeitungszeit für jeden der Vielzahl von Wegen gleich gemacht werden.
  • 7 ist ein Diagramm, das ein zweites Beispiel des Verarbeitungsmusters veranschaulicht, in dem Prozesse verteilt und der Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform ausgeführt werden. 7 veranschaulicht auch ein Verarbeitungsmuster aus der Vielzahl von Verarbeitungsmustern. Das in 7 dargestellte Verarbeitungsmuster zeigt, dass der erste Kernprozessor den gemeinsamen Prozess des Achsensteuerungsprozesses und den Prozess für jede der ersten bis achten Achsen ausführt. Das in 7 dargestellte Verarbeitungsmuster gibt ferner an, dass der erste Kernprozessor den Wegprozess für den ersten Weg und den Wegprozess für den zweiten Weg ausführt.
  • Das in 7 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor den Prozess für jede der neunten bis 16. Achsen, den Wegprozess für den dritten Weg und den Wegprozess für den vierten Weg ausführt. Das in 7 dargestellte Verarbeitungsmuster zeigt ferner, dass der dritte Kernprozessor den E/A-Steuerungsprozess, den HMI-Prozess und den Kommunikationsprozess ausführt. Der E/A-Steuerungsprozess, der HMI-Prozess und der Kommunikationsprozess sind Prozesse, die nicht in Echtzeit ausgeführt werden müssen. Das in 7 dargestellte Verarbeitungsmuster zeigt außerdem, dass der vierte Kernprozessor einen anderen Aufgabenprozess und einen anderen Funktionsprozess ausführt. Der andere Aufgabenprozess und der andere Funktionsprozess sind Teilprozesse, die in 2 nicht dargestellt sind.
  • In dem in 7 dargestellten Verarbeitungsmuster wird die Hälfte der Ressourcen dem Achsenprozess und dem Wegprozess zugewiesen. Mit den Ressourcen ist die Vielzahl der Kernprozessoren gemeint. Die Anzahl der Kernprozessoren, die dem Achsenprozess und dem Wegprozess zugeordnet sind, kann jedoch geändert werden. Das Verarbeitungsmuster wird entsprechend der Anzahl der Kernprozessoren, denen der Achsenprozess und der Wegprozess zugewiesen sind, erstellt.
  • 8 ist ein Diagramm, das ein drittes Beispiel des Verarbeitungsmusters veranschaulicht, in dem Prozesse verteilt und der Vielzahl von Kernprozessoren zugewiesen und in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform ausgeführt werden. 8 veranschaulicht auch ein Verarbeitungsmuster aus der Vielzahl der Verarbeitungsmuster. Das in 8 dargestellte Verarbeitungsmuster ist ein Verarbeitungsmuster, in dem ein Teilprozess einer Aufgabe einem Kernprozessor zugewiesen und ausgeführt wird.
  • Das in 8 dargestellte Verarbeitungsmuster zeigt an, dass der erste Kernprozessor den Achsensteuerungsprozess und den Beschleunigungs-/Entschleunigungsprozess ausführt, und der zweite Kernprozessor den Interpolationsprozess ausführt. Das in 8 dargestellte Verarbeitungsmuster gibt ferner an, dass der dritte Kernprozessor den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess ausführt und der vierte Kernprozessor den E/A-Steuerungsprozess, den HMI-Prozess und den Kommunikationsprozess ausführt. Die Anzahl der Kernprozessoren, denen Teilprozesse, die in Echtzeit ausgeführt werden müssen, wie z.B. der Achsensteuerungsprozess, der Beschleunigungs-/Entschleunigungsprozess und der Interpolationsprozess, zugewiesen werden, kann geändert werden. Das Verarbeitungsmuster wird entsprechend der Anzahl der Kernprozessoren erstellt, denen die Teilprozesse, die in Echtzeit ausgeführt werden müssen, zugeordnet sind.
  • Das in 8 dargestellte Verarbeitungsmuster ist ein Verarbeitungsmuster, in dem eine Vielzahl von Teilprozessen, die unabhängig voneinander berechnet werden können, parallel ausgeführt werden. Ferner ist das in 8 dargestellte Verarbeitungsmuster ein Verarbeitungsmuster, in dem sich die Reihenfolge der Ausführung der Teilprozesse der jeweiligen Aufgaben in einem Zyklus nicht ändert.
  • Die Musterbestimmungseinheit 4 wählt aus der Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster zum Verteilen einer Verarbeitungslast aus. Die Musterbestimmungseinheit 4 bestimmt ein Verarbeitungsmuster, das einen Teilprozess spezifiziert, der von jedem der Vielzahl von Kernprozessoren ausgeführt wird. Insbesondere wählt die Musterbestimmungseinheit 4 auf Grundlage der in den Ressourceninformationen enthaltenen Anzahl von Kernprozessoren, die den Multi-Core-Prozessor 2 bilden, aus der Vielzahl von Verarbeitungsmustern eine Vielzahl von Verarbeitungsmustern aus, in denen die Kernprozessoren, deren Anzahl der in den Ressourceninformationen enthaltenen Anzahl entspricht, die Teilprozesse ausführen.
  • In der ersten Ausführungsform wählt die Musterbestimmungseinheit 4 ein Verarbeitungsmuster aus, in dem vier Kernprozessoren die Prozesse ausführen. Wenn die Anzahl der Kernprozessoren acht beträgt, wählt die Musterbestimmungseinheit 4 ein Verarbeitungsmuster aus, in dem acht Kernprozessoren die Prozesse ausführen.
  • 9 ist ein Diagramm, das eine Verarbeitungszeit und einen Ausführungszyklus jedes der Vielzahl von Teilprozessen zeigt, die von der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform ausgeführt werden. Die Verarbeitungszeit wird im Voraus für jede Verarbeitungsfunktion und Verarbeitungsaufgabe gemessen, die den Inhalt der Teilprozesse angibt. 9 zeigt eine gemeinsame Verarbeitungszeit t1, die eine Zeit ist, die für einen gemeinsamen Prozess benötigt wird, und eine Verarbeitungszeit t2 pro Einheitenprozess. Ein Beispiel für die Verarbeitungszeit t2 pro Einheitenprozess ist eine Verarbeitungszeit pro Achse oder Weg.
  • In 9 ist in Bezug auf den Bearbeitungsprogramm-Leseprozess die Verarbeitungszeit t2 eine Verarbeitungszeit für das Lesen eines Bearbeitungsprogramms. Für den Bearbeitungsprogramm-Analyseprozess ist die Verarbeitungszeit t2 eine Verarbeitungszeit für die Analyse eines Bearbeitungsprogramms. 9 zeigt auch die Verarbeitungszeiten und Ausführungszyklen für einen Teilprozess A, einen Teilprozess B und einen Teilprozess C, die in 2 nicht dargestellt sind. Die Ausführungszyklen in 9 sind jeweils als ein Vielfaches eines Einheitenzyklus dargestellt.
  • Es wird angenommen, dass eine Overhead-Zeit, wenn der Multi-Core-Prozessor einen Prozess ausführt, eine Zeit t3 ist. In einem solchen Fall, wenn die Anzahl der Wege und Achsen, die in den Maschinenkonfigurationsinformationen enthalten sind, n bzw. m ist, wird eine Verarbeitungszeit t_k, die von der Anzahl der Wege abhängt, durch die folgende Formel (1) und eine Verarbeitungszeit t_j, die von der Anzahl der Achsen abhängt, durch die folgende Formel (2) ausgedrückt. t_k = t1_k + t2_k × n + t3_k
    Figure DE112019004142T5_0001
    t_j = t1_j + t2_j × m + t3_j
    Figure DE112019004142T5_0002
    Der tiefgestellte Index _k steht für die Zeit, die von der Anzahl der Wege abhängt, und der tiefgestellte Index _j für die Zeit, die von der Anzahl der Achsen abhängt.
  • Die Verarbeitungszeit jeder Verarbeitungsfunktion und jeder Verarbeitungsaufgabe kann im Voraus von einer numerischen Steuerungsvorrichtung gemessen werden, die sich von der numerischen Steuerungsvorrichtung 1 unterscheidet. Was die Verarbeitungszeit jeder Verarbeitungsfunktion und Verarbeitungsaufgabe betrifft, kann die numerische Steuerungsvorrichtung 1 eine Messvorrichtung zum Messen der Verarbeitungszeit enthalten, und die Messvorrichtung kann die Verarbeitungszeit jedes Prozesses zum Zeitpunkt des Starts der numerischen Steuerungsvorrichtung 1 messen und eine Verarbeitungszeittabelle in die Softwarekonfigurationsinformationen aufnehmen. Die Musterbestimmungseinheit 4 kann eine Funktion der Messvorrichtung enthalten.
  • 10 ist ein Flussdiagramm, das ein Beispiel eines Betriebsablaufs der Musterbestimmungseinheit 4 darstellt, die in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform enthalten ist. In Schritt S1 erfasst die Musterbestimmungseinheit 4 Informationen, die die Anzahl der den Multi-Core-Prozessor 2 bildenden Kernprozessoren aus den Ressourceninformationen angeben. In Schritt S2 extrahiert die Musterbestimmungseinheit 4 ein Verarbeitungsmuster, das der Anzahl entspricht, die durch die in Schritt S1 erfassten Informationen angegeben wird. Beispiele für das extrahierte Verarbeitungsmuster sind die in 6 bis 8 dargestellten Verarbeitungsmuster.
  • In Schritt S3 berechnet die Musterbestimmungseinheit 4 für ein in Schritt S2 extrahiertes Verarbeitungsmuster eine Verarbeitungszeit jeder Aufgabe auf Grundlage der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen und berechnet eine Verarbeitungszeit für den Ausführungszyklus in dem Verarbeitungsmuster. In Schritt S4 bestimmt die Musterbestimmungseinheit 4, ob die Verarbeitungszeiten aller in Schritt S2 extrahierten Verarbeitungsmuster berechnet worden sind. Wenn die Musterbestimmungseinheit 4 feststellt, dass die Verarbeitungszeiten aller extrahierten Verarbeitungsmuster nicht berechnet wurden (Nein in Schritt S4), führt die Musterbestimmungseinheit 4 den Betrieb von Schritt S3 aus.
  • Wenn die Musterbestimmungseinheit 4 bestimmt, dass die Verarbeitungszeiten aller extrahierten Verarbeitungsmuster berechnet worden sind (Ja in Schritt S4), wählt die Musterbestimmungseinheit 4 in Schritt S5 aus den extrahierten Verarbeitungsmustern ein Verarbeitungsmuster aus, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor 2 einen Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt. In Schritt S5 bestimmt die Musterbestimmungseinheit 4 durch die Auswahl ein Verarbeitungsmuster, das von dem Multi-Core-Prozessor 2 ausgeführt werden soll.
  • Wenn es notwendig ist, den Bearbeitungsprogramm-Analyseprozess auch innerhalb eines vorbestimmten Zyklus mit einem Bearbeitungsprogramm auszuführen, in dem die Anzahl der Wege relativ klein ist und das beispielsweise mit relativ kurzen Liniensegmentlängen beschrieben wird, setzt die Musterbestimmungseinheit 4 den vorbestimmten Zyklus auf zwei Zyklen und berechnet eine Bearbeitungszeit für den Ausführungszyklus. In dem in 6 dargestellten Verarbeitungsmuster ist die Anzahl der Achsensteuerungsprozesse und der Interpolationsprozesse kleiner als die Anzahl der Kernprozessoren, so dass selbst bei einer Verteilung der Prozesse eine Leerlaufzeit vorhanden ist, in der die Kernprozessoren keinen Prozess ausführen.
  • In dem in 7 dargestellten Verarbeitungsmuster gibt es weniger Leerlaufzeit als in dem in 6 dargestellten Verarbeitungsmuster, und die Verarbeitungszeit ist kürzer als die Verarbeitungszeit in dem in 6 dargestellten Verarbeitungsmuster. In dem in 8 dargestellten Verarbeitungsmuster ist das Gleichgewicht der Verarbeitungszeiten des Achsensteuerungsprozesses, des Beschleunigungs- /Entschleunigungsprozesses, des Interpolationsprozesses, des Bearbeitungsprogramm-Leseprozesses und des Bearbeitungsprogramm-Analyseprozesses besser als das Gleichgewicht der Verarbeitungszeiten in den in 6 und 7 dargestellten Verarbeitungsmustern, und die Verarbeitungszeit ist relativ kurz.
  • Die Musterbestimmungseinheit 4 wählt das in 8 dargestellte Verarbeitungsmuster aus, in dem die Bearbeitungszeit unter den drei in 6 bis 8 dargestellten Verarbeitungsmustern am kürzesten ist. Auf Grundlage des von der Musterbestimmungseinheit 4 bestimmten Verarbeitungsmusters weist die Zuweisungseinheit 5 den Achsensteuerungsprozess und den Beschleunigungs-/Entschleunigungsprozess dem ersten Kernprozessor zu und weist den Interpolationsprozess dem zweiten Kernprozessor zu. Darüber hinaus weist die Zuweisungseinheit 5 den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess dem dritten Kernprozessor zu, und weist den E/A-Steuerungsprozess, den HMI-Prozess und den Kommunikationsprozess dem vierten Kernprozessor zu.
  • Wenn die numerische Steuerungsvorrichtung 1 eine Mehrachsen-/Mehrwegesteuerung ausführt, in der das Bearbeitungsprogramm vier Befehlswege enthält und die Anzahl der Achsen beispielsweise 16 beträgt, setzt die Musterbestimmungseinheit 4 den vorbestimmten Zyklus auf zwei Zyklen und berechnet eine Bearbeitungszeit für den Ausführungszyklus. In dem in 6 dargestellten Verarbeitungsmuster kann der Achsensteuerungsprozess für vier Achsen jedem Kernprozessor und der Interpolationsprozess für einen Weg jedem Kernprozessor zugewiesen werden. Daher kann das in 6 dargestellte Verarbeitungsmuster die Verarbeitungszeit relativ verkürzen.
  • Bei dem in 7 dargestellten Verarbeitungsmuster beträgt die Anzahl der Kernprozessoren, die einen Prozess in Echtzeit ausführen müssen, zwei. Daher werden der Achsensteuerungsprozess und der Interpolationsprozess, die in dem in 6 dargestellten Verarbeitungsmuster von vier Kernprozessoren ausgeführt werden, in dem in 7 dargestellten Verarbeitungsmuster von zwei Kernprozessoren ausgeführt, und folglich ist die Verarbeitungszeit in dem in 7 dargestellten Verarbeitungsmuster länger als die Verarbeitungszeit in dem in 6 dargestellten Verarbeitungsmuster.
  • Das in 8 dargestellte Verarbeitungsmuster ist ein Muster, in dem der Achsensteuerungsprozess und der Interpolationsprozess, die im Verhältnis zur Anzahl der Wege und der Anzahl der Achsen zugenommen haben, dem ersten Kernprozessor und dem zweiten Kernprozessor zugewiesen sind. In diesem Fall ist die Verarbeitungszeit länger als die Verarbeitungszeit in dem in 6 dargestellten Verarbeitungsmuster und ist kürzer als die Verarbeitungszeit in dem in 7 dargestellten Verarbeitungsmuster.
  • Die Musterbestimmungseinheit 4 wählt das in 6 dargestellte Verarbeitungsmuster aus, in dem die Verarbeitungszeit unter den drei in 6 bis 8 dargestellten Verarbeitungsmustern am kürzesten ist. Die Zuweisungseinheit 5 weist jeden gemeinsamen Prozess und die Prozesse der ersten Achse und des ersten Weges dem ersten Kernprozessor auf Grundlage des von der Musterbestimmungseinheit 4 ausgewählten Verarbeitungsmusters zu. Die Zuweisungseinheit 5 weist die Prozesse der zweiten Achse und des zweiten Wegs dem zweiten Kernprozessor zu, weist die Prozesse der dritten Achse und des dritten Wegs dem dritten Kernprozessor zu, und weist die Prozesse der vierten Achse und des vierten Wegs dem vierten Kernprozessor zu.
  • Wie oben beschrieben, wählt die numerische Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform auf Grundlage der Ressourceninformationen, der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen aus der Vielzahl von Verarbeitungsmustern, die durch die Verarbeitungsmusterinformationen angegeben werden, ein Verarbeitungsmuster aus, in dem eine Zeit eines von dem Multi-Core-Prozessor 2 ausgeführten Prozesses kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt. Die numerische Steuerungsvorrichtung 1 bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  • Beispielsweise wählt die numerische Steuerungsvorrichtung 1 auf Grundlage der Ressourceninformationen, der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen aus der Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster aus, in dem eine Verarbeitungszeit eines von dem Multi-Core-Prozessor 2 ausgeführten Prozesses am kürzesten ist. Die numerische Steuerungsvorrichtung 1 bestimmt das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  • In Übereinstimmung mit dem bestimmten Verarbeitungsmuster verteilt und weist die numerische Steuerungsvorrichtung 1 eine Vielzahl von Teilprozessen, die den Prozess bilden, an die Vielzahl von Kernprozessoren zu. Jedes der Vielzahl von Verarbeitungsmustern ist ein Verarbeitungsmuster, in dem unter der Vielzahl von Teilprozessen, die den Prozess bilden, eine Vielzahl von Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Reihenfolge ausgeführt werden.
  • Wenn also ein auszuführender Prozess in eine Vielzahl von Teilprozessen unterteilt ist, kann die numerische Steuerungsvorrichtung 1 unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen ausführen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne die Reihenfolge der Prozesse zu ändern. Darüber hinaus kann die numerische Steuerungsvorrichtung 1 den Prozess in einer Verarbeitungszeit ausführen, die kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor den Prozess ausführt.
  • Zweite Ausführungsform.
  • 11 ist ein Diagramm, das eine Konfiguration einer numerischen Steuerungsvorrichtung 1A gemäß einer zweiten Ausführungsform zeigt. Die numerische Steuerungsvorrichtung 1A enthält einen Multi-Core-Prozessor 2A einschließlich des ersten Kernprozessors 21, des zweiten Kernprozessors 22 und des dritten Kernprozessors 23, eine Speichereinheit 3A und die Musterbestimmungseinheit 4. Jeder des ersten Kernprozessors 21, des zweiten Kernprozessors 22, des dritten Kernprozessors 23 und der Musterbestimmungseinheit 4 ist die in der ersten Ausführungsform beschriebene Komponente. Ähnlich wie die Speichereinheit 3 der ersten Ausführungsform speichert die Speichereinheit 3A die Verarbeitungsmusterinformationen, die Ressourceninformationen, die Maschinenkonfigurationsinformationen und die Softwarekonfigurationsinformationen.
  • Die numerische Steuerungsvorrichtung 1A ist mit einer anderen numerischen Steuerungsvorrichtung 1B über ein Kommunikationsnetzwerk 16 verbunden. Die andere numerische Steuerungsvorrichtung 1B ist eine ähnliche Vorrichtung wie die numerische Steuerungsvorrichtung 1A. Die numerische Steuerungsvorrichtung 1A enthält ferner eine Zuweisungseinheit 5A, die einen Teil einer Vielzahl von Teilprozessen der anderen numerischen Steuerungsvorrichtung 1B zuweist und den Rest der Vielzahl von Teilprozessen der numerischen Steuerungsvorrichtung 1A zuweist. Die Zuweisungseinheit 5A veranlasst die andere numerische Steuerungsvorrichtung 1B, den Teil in einem Zeitraum auszuführen, in dem der Multi-Core-Prozessor 2A der numerischen Steuerungsvorrichtung 1A den Rest ausführt. Die andere numerische Steuerungsvorrichtung 1B enthält nicht die Musterbestimmungseinheit 4 und die Zuweisungseinheit 5A.
  • In der zweiten Ausführungsform wird der folgende Fall angenommen: Es wird eine Mehrachsen-/Mehrwegesteuerung ausgeführt, in der das Bearbeitungsprogramm zwei oder mehr Befehlswege enthält, die Anzahl der Steuerachsen 32 und die Anzahl der Steuerwege acht beträgt. In der zweiten Ausführungsform wird ein Beispiel beschrieben, in dem im obigen Fall die numerische Steuerungsvorrichtung 1A ein Verarbeitungsmuster auswählt und die Prozesse auf eine Vielzahl von Kernprozessoren verteilt, die den Multi-Core-Prozessor 2A und die andere numerische Steuerungsvorrichtung 1B bilden.
  • 12 ist ein Diagramm, das ein erstes Beispiel eines Verarbeitungsmusters zeigt, in dem Prozesse von der numerischen Steuerungsvorrichtung 1A gemäß der zweiten Ausführungsform und der anderen numerischen Steuerungsvorrichtung 1B ausgeführt werden. Das in 12 dargestellte Verarbeitungsmuster zeigt, dass der erste Kernprozessor der numerischen Steuerungsvorrichtung 1A den E/A-Steuerungsprozess, den Achsensteuerungsprozess für jede der ersten bis 16. Achsen und den Beschleunigungs-/Entschleunigungsprozess für jede der ersten bis 16. Achsen ausführt.
  • Das in 12 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor der numerischen Steuerungsvorrichtung 1A den HMI-Prozess und den Interpolationsprozess für jeden der ersten bis vierten Wege ausführt. Das in 12 dargestellte Verarbeitungsmuster gibt ferner an, dass der dritte Kernprozessor der numerischen Steuerungsvorrichtung 1A den Kommunikationsprozess, den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess ausführt.
  • Das in 12 dargestellte Verarbeitungsmuster gibt ferner an, dass der erste Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den E/A-Steuerungsprozess, den Achsensteuerungsprozess für jede der 17. bis 32. Achsen, und den Beschleunigungs-/Entschleunigungsprozess für jede der 17. bis 32. Achsen. Das in 12 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den HMI-Prozess und den Interpolationsprozess für jeden der fünften bis achten Wege ausführt. Das in 12 dargestellte Verarbeitungsmuster gibt ferner an, dass der dritte Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den Kommunikationsprozess, den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess ausführt.
  • In dem in 12 dargestellten Verarbeitungsmuster sind die Anzahl der Achsen und die Anzahl der Wege des Prozesses, der von der numerischen Steuerungsvorrichtung 1A ausgeführt wird, die gleiche wie die Anzahl der Achsen und die Anzahl der Wege des Prozesses, der von der anderen numerischen Steuerungsvorrichtung 1B ausgeführt wird. Die Anzahl der Achsen und die Anzahl der Wege des von der numerischen Steuerungsvorrichtung 1A ausgeführten Prozesses kann sich jedoch von der Anzahl der Achsen und der Anzahl der Wege des von der anderen numerischen Steuerungsvorrichtung 1B ausgeführten Prozesses unterscheiden.
  • Es kann ein Verarbeitungsmuster vorbereitet werden, in dem der Interpolationsprozess für jeden der ersten und zweiten Wege, in denen eine Verarbeitungslast relativ groß ist, von der numerischen Steuerungsvorrichtung 1A ausgeführt wird, und der Interpolationsprozess für jeden der dritten bis achten Wege von der anderen numerischen Steuerungsvorrichtung 1B ausgeführt wird. In ähnlicher Weise kann ein Verarbeitungsmuster vorbereitet werden, in dem die Anzahl der Achsen des Prozesses, der von der numerischen Steuerungsvorrichtung 1A ausgeführt wird, und die Anzahl der Achsen des Prozesses, der von der anderen numerischen Steuerungsvorrichtung 1B ausgeführt wird, voneinander verschieden sind.
  • 13 ist ein Diagramm, das ein zweites Beispiel des Verarbeitungsmusters zeigt, in dem Prozesse durch die numerische Steuerungsvorrichtung 1A gemäß der zweiten Ausführungsform und die andere numerische Steuerungsvorrichtung 1B ausgeführt werden. Das in 13 dargestellte Verarbeitungsmuster zeigt an, dass der erste Kernprozessor der numerischen Steuerungsvorrichtung 1A den E/A-Steuerungsprozess und den Interpolationsprozess ausführt.
  • Das in 13 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor der numerischen Steuerungsvorrichtung 1A den HMI-Prozess und den Interpolationsprozess ausführt. Das in 13 dargestellte Verarbeitungsmuster gibt ferner an, dass der dritte Kernprozessor der numerischen Steuerungsvorrichtung 1A den Kommunikationsprozess, den Bearbeitungsprogramm-Leseprozess und den Bearbeitungsprogramm-Analyseprozess ausführt.
  • Das in 13 dargestellte Verarbeitungsmuster gibt ferner an, dass der erste Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den E/A-Steuerungsprozess, den Achsensteuerungsprozess und den Beschleunigungs-/Entschleunigungsprozess ausführt. Das in 13 dargestellte Verarbeitungsmuster gibt ferner an, dass der zweite Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den HMI-Prozess, den Achsensteuerungsprozess und den Beschleunigungs-/Entschleunigungsprozess ausführt. Das in 13 dargestellte Verarbeitungsmuster gibt ferner an, dass der dritte Kernprozessor der anderen numerischen Steuerungsvorrichtung 1B den Kommunikationsprozess, den Achsensteuerungsprozess und den Beschleunigungs-/Entschleunigungsprozess ausführt.
  • Der Bearbeitungsprogramm-Leseprozess und der Bearbeitungsprogramm-Analyseprozess können nicht von der numerischen Steuerungsvorrichtung 1A, sondern von der anderen numerischen Steuerungsvorrichtung 1B ausgeführt werden. Wie oben beschrieben, ist die numerische Steuerungsvorrichtung 1A mit der anderen numerischen Steuerungsvorrichtung 1B über das Kommunikationsnetzwerk 16 verbunden. Um eine mit der Datenkommunikation verbundene Verarbeitungslast zu reduzieren, kann der HMI-Prozess oder der Kommunikationsprozess oder beides von der numerischen Steuerungsvorrichtung 1A oder der anderen numerischen Steuerungsvorrichtung 1B ausgeführt werden.
  • Die Musterbestimmungseinheit 4 wählt ein Verarbeitungsmuster aus der Vielzahl von Verarbeitungsmustern aus, die durch die Verarbeitungsmusterinformationen angegeben werden, um eine Verarbeitungslast zu verteilen. Die Ressourceninformationen enthalten Information, die angibt, dass die Anzahl der arithmetischen Vorrichtungen zwei ist, d.h. die numerische Steuerungsvorrichtung 1A und die andere numerische Steuerungsvorrichtung 1B. Die Ressourceninformationen enthalten Information, die angibt, dass jede der numerischen Steuerungsvorrichtung 1A und der anderen numerischen Steuerungsvorrichtung 1B drei Kernprozessoren enthält.
  • Die Musterbestimmungseinheit 4 spezifiziert zunächst die Anzahl der Kernprozessoren, die in allen arithmetischen Vorrichtungen enthalten sind, auf Grundlage der Ressourceninformation, und auf Grundlage der spezifizierten Anzahl grenzt die Musterbestimmungseinheit 4 die Vielzahl der Verarbeitungsmuster auf ein Verarbeitungsmuster ein, das der spezifizierten Anzahl entspricht. Wenn die Musterbestimmungseinheit 4 die Verarbeitungsmuster auf Grundlage der Ressourceninformationen nicht eingrenzen kann, d.h. wenn eine angenommene Anzahl von Ressourcen nicht vorhanden ist, wählt die Musterbestimmungseinheit 4 ein Verarbeitungsmuster aus, in dem Kernprozessoren, deren Anzahl kleiner ist als die Anzahl der in allen arithmetischen Vorrichtungen enthaltenen Kernprozessoren, die Prozesse ausführen.
  • Wenn beispielsweise die Anzahl der in allen arithmetischen Vorrichtungen enthaltenen Kernprozessoren sechs beträgt und kein entsprechendes Verarbeitungsmuster vorhanden ist, wählt die Musterbestimmungseinheit 4 ein Verarbeitungsmuster aus, in dem die Anzahl der in allen arithmetischen Vorrichtungen enthaltenen Kernprozessoren fünf beträgt.
  • In der zweiten Ausführungsform wählt die Musterbestimmungseinheit 4 Verarbeitungsmuster auf Grundlage der Anzahl der Kernprozessoren aus und wählt aus den bereits ausgewählten Verarbeitungsmustern ein Verarbeitungsmuster aus, in dem die Verarbeitungszeit am kürzesten ist. Die Musterbestimmungseinheit 4 muss jedoch nicht zwingend ein Verarbeitungsmuster auf Grundlage der Anzahl der Kernprozessoren auswählen. Zum Beispiel kann die Musterbestimmungseinheit 4 die Verarbeitungszeit jedes der Vielzahl von Verarbeitungsmustern unabhängig von der Anzahl der Kernprozessoren berechnen und ein Verarbeitungsmuster auswählen, in dem die Verarbeitungszeit am kürzesten ist.
  • Selbst wenn Prozesse verteilt sind und von einer Vielzahl von arithmetischen Vorrichtungen ausgeführt werden, wird die Verarbeitungszeit jeder Verarbeitungsfunktion und Verarbeitungsaufgabe im Voraus in jeder der Vielzahl von arithmetischen Vorrichtungen gemessen, und die Verarbeitungszeiten des Achsensteuerungsprozesses, des Beschleunigungs- /Entschleunigungsprozesses und des Interpolationsprozesses, die in Echtzeit ausgeführt werden müssen, wobei die Verarbeitungszeiten ferner eine Zeit für den Kommunikationsprozess umfassen, werden berechnet. Die Musterbestimmungseinheit 4 wählt z.B. auf Grundlage eines Ergebnisses der Berechnung ein Verarbeitungsmuster aus, in dem die Verarbeitungszeit am kürzesten ist. Die Zuweisungseinheit 5A weist der numerischen Steuerungsvorrichtung 1A und der anderen numerischen Steuerungsvorrichtung 1B eine Vielzahl von Teilprozessen zu und veranlasst die in der numerischen Steuerungsvorrichtung 1A und der anderen numerischen Steuerungsvorrichtung 1B enthaltenen Kernprozessoren, die zugewiesenen Teilprozesse auszuführen.
  • Wie oben beschrieben, verteilt und weist die numerische Steuerungsvorrichtung 1A in Übereinstimmung mit dem bestimmten Verarbeitungsmuster die Vielzahl von Teilprozessen, die den Prozess bilden, der Vielzahl von Kernprozessoren zu, die in der numerischen Steuerungsvorrichtung 1A und der anderen numerischen Steuerungsvorrichtung 1B enthalten sind. Daher kann die numerische Steuerungsvorrichtung 1A den Prozess in einer Zeit ausführen, die kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt. Darüber hinaus kann die numerische Steuerungsvorrichtung 1A eine große Anzahl von Achsen und eine große Anzahl von Wegen im Vergleich zu Herkömmlichen steuern.
  • In der zweiten Ausführungsform enthält die andere numerische Steuerungsvorrichtung 1B nicht die Zuweisungseinheit 5A. Die andere numerische Steuerungsvorrichtung 1B kann jedoch die Zuweisungseinheit 5A enthalten. Die numerische Steuerungsvorrichtung 1A kann Informationen, die das von der Musterbestimmungseinheit 4, die in der numerischen Steuerungsvorrichtung 1A enthalten ist, bestimmte Verarbeitungsmuster angeben, an die andere numerische Steuerungsvorrichtung 1B ausgeben, und auf Grundlage des Verarbeitungsmusters kann die Zuweisungseinheit 5A, die in der anderen numerischen Steuerungsvorrichtung 1B enthalten ist, auszuführende Teilprozesse, die in dem Verarbeitungsmuster enthalten sind, an die Vielzahl von Kernprozessoren, die in der anderen numerischen Steuerungsvorrichtung 1B enthalten sind, verteilen und zuweisen.
  • Die andere numerische Steuerungsvorrichtung 1B kann durch eine Berechnungsvorrichtung mit einer Vielzahl von Kernprozessoren ersetzt werden.
  • Dritte Ausführungsform.
  • 14 ist ein Diagramm, das eine Konfiguration einer numerischen Steuerungsvorrichtung 50 gemäß einer dritten Ausführungsform zeigt. Die numerische Steuerungsvorrichtung 50 ist eine Vorrichtung zum Steuern einer Werkzeugmaschine und enthält den Multi-Core-Prozessor 2. Der Multi-Core-Prozessor 2 umfasst den ersten Kernprozessor 21, den zweiten Kernprozessor 22, den dritten Kernprozessor 23 und den vierten Kernprozessor 24. Der erste Kernprozessor 21, der zweite Kernprozessor 22, der dritte Kernprozessor 23 und der vierte Kernprozessor 24 sind Beispiele für eine Vielzahl von Kernprozessoren.
  • Die numerische Steuerungsvorrichtung 50 umfasst ferner eine Teilungseinheit 51. Die Teilungseinheit 51 teilt einen Prozess, der von dem Multi-Core-Prozessor 2 ausgeführt wird, und wenn die Anzahl einer Vielzahl von primären Teilprozessen, die durch Ausführen der Teilung erhalten werden, größer ist als die Anzahl der Vielzahl von Kernprozessoren, teilt die Teilungseinheit 51 die Vielzahl von primären Teilprozessen in einen Teil davon und den Rest davon, und teilt den Teil, um eine Vielzahl von sekundären Teilprozessen zu erhalten.
  • Die numerische Steuerungsvorrichtung 50 enthält ferner eine Zuweisungseinheit 52, die den Rest der Vielzahl von primären Teilprozessen und der Vielzahl von sekundären Teilprozessen, die durch die Teilungseinheit 51 erhalten wurden, auf die Vielzahl von Kernprozessoren verteilt und zuweist. Die Zuweisungseinheit 52 bewirkt, dass die Ausführungsreihenfolge für jeden der Vielzahl von sekundären Teilprozessen beibehalten wird.
  • Zusätzlich schaltet die Zuweisungseinheit 52 einen dritten sekundären Teilprozess, der durch Aufteilung eines zweiten primären Teilprozesses erhalten wurde, zwischen einen ersten sekundären Teilprozess und einen zweiten sekundären Teilprozess, der durch Aufteilung eines ersten primären Teilprozesses erhalten wurde. Die Zuweisungseinheit 52 weist den ersten sekundären Teilprozess, den dritten sekundären Teilprozess und den zweiten sekundären Teilprozess einem Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zu.
  • Ferner schaltet die Zuweisungseinheit 52 einen sechsten sekundären Teilprozess, der durch Aufteilung des zweiten primären Teilprozesses erhalten wurde, zwischen einen vierten sekundären Teilprozess und einen fünften sekundären Teilprozess, der durch Aufteilung eines dritten primären Teilprozesses erhalten wurde. Die Zuweisungseinheit 52 weist den vierten sekundären Teilprozess, den sechsten sekundären Teilprozess und den fünften sekundären Teilprozess einem anderen Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zu.
  • Die numerische Steuerungsvorrichtung 50 umfasst ferner eine Speichereinheit 53. Ein Beispiel für die Speichereinheit 53 ist ein Halbleiterspeicher. Ein Teil der Speichereinheit 53 ist ein nichtflüchtiger Speicher.
  • Ein von der numerischen Steuerungsvorrichtung 50 ausgeführter Betrieb wird im Folgenden beschrieben. 15 ist ein Diagramm, das ein erstes Beispiel eines Verarbeitungsmusters veranschaulicht, wenn die Anzahl der Kernprozessoren, die in dem Multi-Core-Prozessor 2 enthalten sind, der in der numerischen Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen eines zu steuernden Objekts. In der dritten Ausführungsform wird angenommen, dass die Anzahl der in dem Multi-Core-Prozessor enthaltenen Kernprozessoren vier und die Anzahl der Achsen des zu steuernden Objekts fünf beträgt.
  • Das in 15 dargestellte Verarbeitungsmuster ist ein Verarbeitungsmuster, in dem die Achsensteuerungsprozesse für die erste und fünfte Achse dem ersten Kernprozessor, der Achsensteuerungsprozess für die zweite Achse dem zweiten Kernprozessor, der Achsensteuerungsprozess für die dritte Achse dem dritten Kernprozessor und der Achsensteuerungsprozess für die vierte Achse dem vierten Kernprozessor zugeordnet sind. Der Achsensteuerungsprozess umfasst einen gemeinsamen Prozess für jede der ersten bis fünften Achsen. Der Interpolationsprozess umfasst auch einen gemeinsamen Prozess für jede der ersten bis fünften Achsen. Das in 15 dargestellte Verarbeitungsmuster ist ein Verarbeitungsmuster, in dem die Interpolationsprozesse nach der Ausführung der Achsensteuerungsprozesse ausgeführt werden.
  • In dem in 15 dargestellten Verarbeitungsmuster tritt zum Ausführen des gemeinsamen Prozesses in dem Interpolationsprozess eine Leerlaufzeit in dem zweiten Kernprozessor, in dem dritten Kernprozessor und in dem vierten Kernprozessor auf, während der Achsensteuerungsprozess für die fünfte Achse ausgeführt wird. Die Leerlaufzeit ist verschwendete Zeit.
  • 16 ist ein Diagramm, das ein zweites Beispiel des Verarbeitungsmusters veranschaulicht, wenn die Anzahl der Kernprozessoren, die in dem Multi-Core-Prozessor 2 enthalten sind, der in der numerischen Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen des zu steuernden Objekts. Was den Achsensteuerungsprozess betrifft, so sind die Prozesse der jeweiligen Achsen mit Ausnahme des gemeinsamen Prozesses in hohem Maße unabhängig voneinander. Daher können die Prozesse der jeweiligen Achsen jeweils einem Kernprozessor zugewiesen und ausgeführt werden.
  • Aber selbst, wenn ein Prozess einer Achse in eine Vielzahl von Prozessen aufgeteilt wird und die Vielzahl von Prozessen nach der Aufteilung parallel ausgeführt werden soll, kann ein Ergebnis einer ersten Hälfte des Prozesses der einen Achse in einer zweiten Hälfte des Prozesses verwendet werden, und daher kann die Vielzahl von Prozessen nach der Aufteilung nicht parallel ausgeführt werden. 16 veranschaulicht, dass der Achsensteuerungsprozess für die fünfte Achse, die ein Beispiel für die Vielzahl von primären Teilprozessen ist, in vier sekundäre Teilprozesse der sekundären Teilprozesse A bis D unterteilt ist, und drei sekundäre Teilprozesse der sekundären Teilprozesse B bis D nicht ausgeführt werden können.
  • 17 ist ein Diagramm, das ein drittes Beispiel des Verarbeitungsmusters veranschaulicht, wenn die Anzahl der Kernprozessoren, die in dem Multi-Core-Prozessor 2 enthalten sind, der in der numerischen Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform enthalten ist, kleiner ist als die Anzahl der Achsen des zu steuernden Objekts. In dem in 17 dargestellten Verarbeitungsmuster wird der Achsensteuerungsprozess für die erste Achse dem ersten Kernprozessor, der Achsensteuerungsprozess für die zweite Achse dem zweiten Kernprozessor, die Achsensteuerung für die dritte Achse dem dritten Kernprozessor und der Achsensteuerungsprozess für die vierte Achse dem vierten Kernprozessor zugewiesen. In dem in 17 dargestellten Verarbeitungsmuster ist der Achsensteuerungsprozess für jede der ersten Achse, der zweiten Achse und der dritten Achse in den sekundären Teilprozess A und den sekundären Teilprozess B unterteilt, der nach der Ausführung des sekundären Teilprozesses A ausgeführt wird.
  • In dem in 17 dargestellten Verarbeitungsmuster ist der Achsensteuerungsprozess für die fünfte Achse in vier sekundäre Teilprozesse unterteilt: den sekundären Teilprozess A, den sekundären Teilprozess B, der nach der Ausführung des sekundären Teilprozesses A ausgeführt wird, den sekundären Teilprozess C, der nach der Ausführung des sekundären Teilprozesses B ausgeführt wird, und den sekundären Teilprozess D, der nach der Ausführung des sekundären Teilprozesses C ausgeführt wird. In dem in 17 dargestellten Verarbeitungsmuster wird, nachdem der sekundäre Teilprozess A für die erste Achse von dem ersten Kernprozessor ausgeführt wurde, der sekundäre Teilprozess A für die fünfte Achse dem ersten Kernprozessor zugewiesen und von dem ersten Kernprozessor ausgeführt. Nachdem der sekundäre Teilprozess A für die fünfte Achse ausgeführt ist, wird der sekundäre Teilprozess B für die erste Achse von dem ersten Kernprozessor ausgeführt.
  • In dem in 17 dargestellten Verarbeitungsmuster wird, nachdem der sekundäre Teilprozess A für die zweite Achse von dem zweiten Kernprozessor ausgeführt wurde, der sekundäre Teilprozess B für die fünfte Achse dem zweiten Kernprozessor zugewiesen und von dem zweiten Kernprozessor ausgeführt. Nachdem der sekundäre Teilprozess B für die fünfte Achse ausgeführt wurde, wird der sekundäre Teilprozess B für die zweite Achse durch den zweiten Kernprozessor ausgeführt.
  • Nachdem der sekundäre Teilprozess A für die dritte Achse von dem dritten Kernprozessor ausgeführt ist, wird der sekundäre Teilprozess C für die fünfte Achse dem dritten Kernprozessor zugewiesen und von dem dritten Kernprozessor ausgeführt. Nachdem der sekundäre Teilprozess C für die fünfte Achse ausgeführt ist, wird der sekundäre Teilprozess B für die dritte Achse von dem dritten Kernprozessor ausgeführt. Nachdem der Achsensteuerungsprozess für die vierte Achse durch den vierten Kernprozessor ausgeführt wurde, wird der sekundäre Teilprozess D für die fünfte Achse dem vierten Kernprozessor zugewiesen und durch den vierten Kernprozessor ausgeführt.
  • Wie oben beschrieben, ist in dem in 17 dargestellten Verarbeitungsmuster der Achsensteuerungsprozess, der der primäre Teilprozess für jede der ersten Achse, der zweiten Achse und der dritten Achse ist, in den sekundären Teilprozess A und den sekundären Teilprozess B unterteilt, der nach der Ausführung des sekundären Teilprozesses A ausgeführt wird. Für jeden des ersten Kernprozessors, des zweiten Kernprozessors und des dritten Kernprozessors wird ein sekundärer Teilprozess für die fünfte Achse zwischen dem sekundären Teilprozess A und dem sekundären Teilprozess B zugeordnet.
  • In dem in 17 dargestellten Verarbeitungsmuster werden die Vielzahl von sekundären Teilprozessen für jede der ersten bis fünften Achsen sequentiell von Beginn des primären Teilprozesses an, der durch die Vielzahl von sekundären Teilprozessen gebildet wird, ausgeführt. Daher ist das in 17 dargestellte Verarbeitungsmuster ein Verarbeitungsmuster, in dem unter der Vielzahl von sekundären Teilprozessen eine Vielzahl von sekundären Teilprozessen, für die eine Änderung der Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Ausführungsreihenfolge ausgeführt werden. Das heißt, in dem in 17 dargestellten Verarbeitungsmuster wird die Reihenfolge der Ausführung beibehalten.
  • Außerdem werden die durch die Ausführung jedes sekundären Teilprozesses erhaltenen Daten in der Speichereinheit 53 gespeichert. Daher werden in dem in 17 dargestellten Verarbeitungsmuster unter Verwendung der in der Speichereinheit 53 gespeicherten Daten die Vielzahl von sekundären Teilprozessen für jede der ersten bis fünften Achsen sequenziell ab dem Beginn des primären Teilprozesses, der durch die Vielzahl von sekundären Teilprozessen gebildet wird, ausgeführt.
  • Wie oben beschrieben, teilt die numerische Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform den durch den Multi-Core-Prozessor 2 ausgeführten Prozess, und wenn die Anzahl der Vielzahl von primären Teilprozessen, die durch Ausführen der Teilung erhalten werden, größer ist als die Anzahl der Vielzahl von Kernprozessoren, wird ein Teil der Vielzahl von primären Teilprozessen aufgeteilt, um eine Vielzahl von sekundären Teilprozessen zu erhalten.
  • Die numerische Steuerungsvorrichtung 50 verteilt und weist unter der erhaltenen Vielzahl von primären Teilprozessen den Rest der primären Teilprozesse, außer dem Teil davon, und die Vielzahl von sekundären Teilprozessen der Vielzahl von Kernprozessoren zu. Die numerische Steuerungsvorrichtung 50 bewirkt, dass die Reihenfolge der Ausführung für jeden der Vielzahl von sekundären Teilprozessen beibehalten wird.
  • Die numerische Steuerungsvorrichtung 50 schaltet den dritten sekundären Teilprozess, der durch Aufteilung des zweiten primären Teilprozesses erhalten wurde, zwischen den ersten sekundären Teilprozess und den zweiten sekundären Teilprozess, der durch Aufteilung des ersten primären Teilprozesses erhalten wurde. Die numerische Steuerungsvorrichtung 50 weist den ersten sekundären Teilprozess, den dritten sekundären Teilprozess und den zweiten sekundären Teilprozess einem Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zu.
  • Die numerische Steuerungsvorrichtung 50 schaltet den sechsten sekundären Teilprozess, der durch Aufteilung des zweiten primären Teilprozesses erhalten wurde, zwischen den vierten sekundären Teilprozess und den fünften sekundären Teilprozess, der durch Aufteilung des dritten primären Teilprozesses erhalten wurde. Die numerische Steuerungsvorrichtung 50 weist den vierten sekundären Teilprozess, den sechsten sekundären Teilprozess und den fünften sekundären Teilprozess einem anderen Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zu.
  • Daher erhält die numerische Steuerungsvorrichtung 50 die folgende Wirkung, wenn die Anzahl der Vielzahl von primären Teilprozessen, die durch Ausführen der Division erhalten wird, größer ist als die Anzahl der Vielzahl von Kernprozessoren. Das heißt, die numerische Steuerungsvorrichtung 50 kann den von dem Multi-Core-Prozessor 2 ausgeführten Prozess in einer Verarbeitungszeit ausführen, die kürzer ist als die Verarbeitungszeit, wenn ein Kernprozessor den Prozess ausführt, während die Leerlaufzeit minimiert wird.
  • 18 ist ein Diagramm, das einen Prozessor 81 veranschaulicht, wenn ein Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5, die in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform enthalten sind, durch den Prozessor 81 realisiert werden. Das heißt, ein Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 können durch den Prozessor 81 realisiert werden, der ein in einem Speicher 82 gespeichertes Programm ausführt. Der Prozessor 81 ist eine Zentraleinheit (CPU), eine Verarbeitungsvorrichtung, eine arithmetische Vorrichtung, ein Mikroprozessor oder ein digitaler Signalprozessor (DSP). In 18 ist auch der Speicher 82 dargestellt.
  • Wenn ein Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 durch den Prozessor 81 realisiert werden, wird der Teil oder die Gesamtheit der Funktionen durch eine Kombination aus dem Prozessor 81 und Software, Firmware oder Software und Firmware realisiert. Die Software oder die Firmware ist als Programm beschrieben und in dem Speicher 82 abgelegt. Der Prozessor 81 realisiert einen Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 durch Lesen und Ausführen des in dem Speicher 82 gespeicherten Programms.
  • Wenn ein Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 durch den Prozessor 81 realisiert werden, umfasst die numerische Steuerungsvorrichtung 1 den Speicher 82 zum Speichern eines Programms, mit dem Schritte, die von einem Teil oder allen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 ausgeführt werden, als Ergebnis ausgeführt werden. Man kann sagen, dass das in dem Speicher 82 gespeicherte Programm einen Computer veranlasst, einen Ablauf oder ein Verfahren auszuführen, das von einem Teil oder der Gesamtheit der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 ausgeführt wird.
  • Der Speicher 82 ist beispielsweise ein nichtflüchtiger oder flüchtiger Halbleiterspeicher wie ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein Flash-Speicher, ein löschbarer programmierbarer Festwertspeicher (EPROM) oder ein elektrisch löschbarer programmierbarer Festwertspeicher (EEPROM (eingetragenes Warenzeichen)); eine Magnetplatte; eine flexible Platte; eine optische Platte; eine Compact Disc; eine Mini-Disk; eine Digital Versatile Disk (DVD); oder ähnliches.
  • 19 ist ein Diagramm, das die Verarbeitungsschaltung 91 veranschaulicht, wenn ein Teil oder die gesamte Musterbestimmungseinheit 4 und die Zuweisungseinheit 5, die in der numerischen Steuerungsvorrichtung 1 gemäß der ersten Ausführungsform enthalten sind, durch die Verarbeitungsschaltung 91 realisiert werden. Das heißt, ein Teil oder die gesamte Musterbestimmungseinheit 4 und die Zuweisungseinheit 5 können durch die Verarbeitungsschaltung 91 realisiert werden.
  • Die Verarbeitungsschaltung 91 ist eine dedizierte Hardware. Die Verarbeitungsschaltung 91 ist z.B. eine einzelne Schaltung, eine zusammengesetzte Schaltung, ein programmierter Prozessor, ein parallel programmierter Prozessor, eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gate-Array (FPGA) oder eine Kombination davon.
  • Ein Teil der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 kann eine eigene, von dem Rest getrennte Hardware sein.
  • Hinsichtlich einer Vielzahl von Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 kann ein Teil der Vielzahl von Funktionen durch Software oder Firmware realisiert sein, und der Rest der Vielzahl von Funktionen kann durch dedizierte Hardware realisiert sein. Somit kann die Vielzahl der Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5 durch Hardware, Software, Firmware oder eine Kombination davon realisiert werden.
  • Ein Teil oder alle Funktionen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5A, die in der numerischen Steuerungsvorrichtung 1A gemäß der zweiten Ausführungsform enthalten sind, können durch einen Prozessor realisiert werden, der eine Funktion hat, die derjenigen des oben beschriebenen Prozessors 81 entspricht. In einem solchen Fall enthält die numerische Steuerungsvorrichtung 1A gemäß der zweiten Ausführungsform den Prozessor und einen Speicher zum Speichern eines Programms, mit dem Schritte, die von einem Teil oder allen der Musterbestimmungseinheit 4 und der Zuweisungseinheit 5A ausgeführt werden, als Ergebnis ausgeführt werden. Der Speicher ist ein Speicher mit einer Funktion, die der des oben beschriebenen Speichers 82 entspricht. Ein Teil oder die gesamte Musterbestimmungseinheit 4 und die Zuweisungseinheit 5A, die in der numerischen Steuerungsvorrichtung 1A gemäß der zweiten Ausführungsform enthalten sind, können durch eine Verarbeitungsschaltung mit einer Funktion realisiert werden, die derjenigen der oben beschriebenen Verarbeitungsschaltung 91 entspricht.
  • Ein Teil oder alle Funktionen der Teilungseinheit 51 und der Zuweisungseinheit 52, die in der numerischen Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform enthalten sind, können durch einen Prozessor realisiert werden, der eine Funktion hat, die derjenigen des oben beschriebenen Prozessors 81 entspricht. In einem solchen Fall enthält die numerische Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform den Prozessor und einen Speicher zum Speichern eines Programms, mit dem Schritte, die von einem Teil oder allen der Teilungseinheit 51 und der Zuweisungseinheit 52 ausgeführt werden, als Ergebnis ausgeführt werden. Der Speicher ist ein Speicher mit einer Funktion, die der des oben beschriebenen Speichers 82 entspricht. Ein Teil oder die gesamte Teilungseinheit 51 und die Zuweisungseinheit 52, die in der numerischen Steuerungsvorrichtung 50 gemäß der dritten Ausführungsform enthalten sind, können durch eine Verarbeitungsschaltung realisiert werden, die eine Funktion hat, die derjenigen der oben beschriebenen Verarbeitungsschaltung 91 entspricht.
  • Die in den obigen Ausführungsformen beschriebenen Konfigurationen sind lediglich Beispiele für den Inhalt der vorliegenden Erfindung und können mit anderen bekannten Technologien kombiniert werden, und Teile davon können weggelassen oder modifiziert werden, ohne von dem Kern der vorliegenden Erfindung abzuweichen.
  • Bezugszeichenliste
  • 1, 50
    numerische Steuerungsvorrichtung;
    2
    Multi-Core-Prozessor
    3, 53
    Speichereinheit;
    4
    Musterbestimmungseinheit;
    5, 52
    Zuweisungseinheit;
    11
    Motorsteuerungsverstärker;
    12
    Motor;
    13
    Display;
    14
    Eingabe-/Ausgabeeinheit;
    15
    Netzwerkvorrichtung;
    21
    erster Kernprozessor;
    22
    zweiter Kernprozessor;
    23
    dritter Kernprozessor;
    24
    vierter Kernprozessor;
    31
    Bearbeitungsprogramm;
    32
    Bearbeitungsprogramm-Leseprozess;
    33
    Bearbeitungsprogramm-Analyseprozess;
    34
    Interpolationsprozess;
    35
    Beschleunigungs-/Entschleunigungsprozess;
    36
    Achsensteuerungsprozess;
    37
    HMI-Prozess;
    38
    E/A-Steuerungsprozess;
    39
    Kommunikationsprozess;
    41
    Verarbeitungsmusterinformationen;
    42
    Ressourceninformationen;
    43
    Maschinenkonfigurationsinformationen;
    44
    Softwarekonfigurationsinformationen;
    51
    Teilungseinheit;
    81
    Prozessor;
    82
    Speicher;
    91
    Verarbeitungsschaltungen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • JP 6151669 [0005]

Claims (5)

  1. Numerische Steuerungsvorrichtung, die eine Werkzeugmaschine steuert, wobei die Vorrichtung umfasst: einen Multi-Core-Prozessor, der eine Vielzahl von Kernprozessoren enthält; eine Musterbestimmungseinheit, um auf Grundlage von Ressourceninformationen, die Informationen enthalten, die die Anzahl der in dem Multi-Core-Prozessor enthaltenen Kernprozessoren angeben, Maschinenkonfigurationsinformationen bezüglich der die Werkzeugmaschine bildenden Hardware und Softwarekonfigurationsinformationen, die, wenn ein durch den Multi-Core-Prozessor ausgeführter Prozess unter Verwendung von Software ausgeführt wird, eine Konfiguration der Software angeben, ein Verarbeitungsmuster, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor den Prozess ausführt, kürzer ist als eine Verarbeitungszeit, wenn ein Kernprozessor der Vielzahl von Kernprozessoren den Prozess ausführt, aus einer Vielzahl von Verarbeitungsmustern auszuwählen, und das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster zu bestimmen, wenn die Vielzahl von Kernprozessoren den Prozess ausführt; und eine Zuweisungseinheit zum Verteilen und Zuweisen einer Vielzahl von Teilprozessen, die den Prozess bilden, an die Vielzahl von Kernprozessoren in Übereinstimmung mit dem von der Musterbestimmungseinheit bestimmten Verarbeitungsmuster, wobei jedes der Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster ist, in dem unter der Vielzahl von Teilprozessen eine Vielzahl von Teilprozessen, für die eine Änderung in einer Ausführungsreihenfolge nicht zulässig ist, ohne Änderung der Ausführungsreihenfolge ausgeführt werden.
  2. Numerische Steuerungsvorrichtung nach Anspruch 1, wobei die Musterbestimmungseinheit auf Grundlage der Ressourceninformationen, der Maschinenkonfigurationsinformationen und der Softwarekonfigurationsinformationen aus der Vielzahl von Verarbeitungsmustern ein Verarbeitungsmuster auswählt, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor den Prozess ausführt, am kürzesten ist, und das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster bestimmt, wenn die Vielzahl von Kernprozessoren den Prozess ausführt.
  3. Numerische Steuerungsvorrichtung nach Anspruch 2, wobei die Musterbestimmungseinheit eine Verarbeitungszeit jeder der Vielzahl von Teilprozessen im Voraus misst, ein Verarbeitungsmuster, in dem eine Verarbeitungszeit, wenn der Multi-Core-Prozessor den Prozess ausführt, am kürzesten ist, aus der Vielzahl von Verarbeitungsmustern unter Verwendung der gemessenen Verarbeitungszeit auswählt, und das ausgewählte Verarbeitungsmuster als ein Verarbeitungsmuster bestimmt, wenn die Vielzahl von Kernprozessoren den Prozess ausführen.
  4. Numerische Steuerungsvorrichtung nach Anspruch 1 oder 2, wobei die Zuweisungseinheit einen Teil der Vielzahl von Teilprozessen der numerischen Steuerungsvorrichtung zuweist, einen Rest der Vielzahl von Teilprozessen einer anderen numerischen Steuerungsvorrichtung oder einer mit der numerischen Steuerungsvorrichtung verbundenen Berechnungsvorrichtung zuweist und die andere numerische Steuerungsvorrichtung oder die Berechnungsvorrichtung veranlasst, den Rest in einem Zeitraum auszuführen, in dem der Multi-Core-Prozessor den Teil ausführt.
  5. Numerische Steuerungsvorrichtung, die eine Werkzeugmaschine steuert, wobei die Vorrichtung umfasst: einen Multi-Core-Prozessor mit einer Vielzahl von Kernprozessoren; eine Teilungseinheit zum Teilen eines von dem Multi-Core-Prozessor ausgeführten Prozesses und zum Teilen eines Teils einer Vielzahl von primären Teilprozessen, um eine Vielzahl von sekundären Teilprozessen zu erhalten, wenn die Anzahl der Vielzahl von primären Teilprozessen, die durch Ausführen der Teilung erhalten werden, größer ist als die Anzahl der Vielzahl von Kernprozessoren; und eine Zuweisungseinheit, um unter der Vielzahl von primären Teilprozessen, die durch die Teilungseinheit erhalten wurden, einen Rest der primären Teilprozesse, der nicht der Teil und die Vielzahl von sekundären Teilprozessen ist, auf die Vielzahl von Kernprozessoren zu verteilen und zuzuweisen, wobei die Zuweisungseinheit bewirkt, dass eine Ausführungsreihenfolge für jeden der Vielzahl von sekundären Teilprozessen beibehalten wird, einen dritten sekundären Teilprozess der Vielzahl von sekundären Teilprozessen zwischen einen ersten sekundären Teilprozess und einen zweiten sekundären Teilprozess der Vielzahl von sekundären Teilprozessen einfügt, wobei der dritte sekundäre Teilprozess durch Teilen eines zweiten primären Teilprozesses erhalten wird, und der erste sekundäre Teilprozess und der zweite sekundäre Teilprozess durch Teilen eines ersten primären Teilprozesses erhalten werden, und den ersten sekundären Teilprozess, den dritten sekundären Teilprozess und den zweiten sekundären Teilprozess einem Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zuweist, und einen sechsten sekundären Teilprozess der Vielzahl von sekundären Teilprozessen zwischen einen vierten sekundären Teilprozess und einen fünften sekundären Teilprozess der Vielzahl von sekundären Teilprozessen einfügt, wobei der sechste sekundäre Teilprozess durch Teilen des zweiten primären Teilprozesses erhalten wird und der vierte sekundäre Teilprozess und der fünfte sekundäre Teilprozess durch Teilen eines dritten primären Teilprozesses erhalten werden, und den vierten sekundären Teilprozess, den sechsten sekundären Teilprozess und den fünften sekundären Teilprozess einem anderen Kernprozessor der Vielzahl von Kernprozessoren in dieser Reihenfolge zuweist.
DE112019004142.8T 2018-08-17 2019-04-19 Numerische Steuerungsvorrichtung Pending DE112019004142T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018153471 2018-08-17
JP2018-153471 2018-08-17
PCT/JP2019/016864 WO2020035975A1 (ja) 2018-08-17 2019-04-19 数値制御装置

Publications (1)

Publication Number Publication Date
DE112019004142T5 true DE112019004142T5 (de) 2021-05-06

Family

ID=69524717

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019004142.8T Pending DE112019004142T5 (de) 2018-08-17 2019-04-19 Numerische Steuerungsvorrichtung

Country Status (4)

Country Link
JP (1) JP6877649B2 (de)
CN (1) CN112567304B (de)
DE (1) DE112019004142T5 (de)
WO (1) WO2020035975A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7455239B2 (ja) 2021-01-27 2024-03-25 三菱電機株式会社 数値制御システム、タスク割り当て変更装置及び数値制御方法
JP2022175874A (ja) * 2021-05-14 2022-11-25 日立Astemo株式会社 プログラム実行装置、解析方法、実行方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009008638A1 (de) * 2009-02-12 2010-06-17 Siemens Aktiengesellschaft Verfahren zum Betrieb eines elektrischen Geräts und korrespondierendes Verfahren
CN104508580B (zh) * 2012-07-17 2016-08-24 三菱电机株式会社 数控装置以及数控系统
JP6151669B2 (ja) * 2014-06-27 2017-06-21 ファナック株式会社 加工プログラム指令内容に応じてcpu負荷を分散可能な数値制御装置
JP6203691B2 (ja) * 2014-08-29 2017-09-27 ファナック株式会社 複数軸の軸制御処理を分散して実行可能な数値制御装置
JP6333796B2 (ja) * 2015-11-25 2018-05-30 ファナック株式会社 複数のcpuコアで最適な負荷配分を行う数値制御装置
JP6548830B2 (ja) * 2016-09-02 2019-07-24 三菱電機株式会社 指令値生成装置
JP6530783B2 (ja) * 2017-06-12 2019-06-12 ファナック株式会社 機械学習装置、制御装置及び機械学習プログラム

Also Published As

Publication number Publication date
CN112567304B (zh) 2023-09-19
JP6877649B2 (ja) 2021-05-26
JPWO2020035975A1 (ja) 2021-01-07
CN112567304A (zh) 2021-03-26
WO2020035975A1 (ja) 2020-02-20

Similar Documents

Publication Publication Date Title
DE2949330C3 (de) Verfahren zum Steuern und Regeln mehrer miteinander in Beziehung stehenden Betriebsparameter bei einer Elektroerosionsmaschine
DE102016014152B4 (de) Numerische Steuervorrichtung
DE1181461B (de) Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
DE102015007837A1 (de) Numerische Steuerung mit Mehrkernprozessor
DE102017000512B4 (de) Numerische Steuereinheit und Simulator davon
DE102015009437B4 (de) Abschätzvorrichtung für eine Bearbeitungszeit nach Änderung eines NC-Programmes
DE102007046570A1 (de) Verfahren und Vorrichtung zum Erzeugen von Zeitplänen zur Ausführung von Funktionen in einem Prozesssteuerungssystem
DE112019004142T5 (de) Numerische Steuerungsvorrichtung
DE102016008043B4 (de) Zum Kompensieren von Fehlern unter Berücksichtigung einer Achsbewegungsrichtung fähiger numerischer Controller
DE112018001886T5 (de) Steuereinrichtung, Steuerverfahren und Steuerprogramm
DE112012006048T5 (de) Bearbeitungsprogramm-Erzeugungsvorrichtung , Bearbeitungsprogramm-Erzeugungsverfahren und Aufzeichnungsmedium
DE102020124734A1 (de) Simulationsgerät
DE112017004424T5 (de) Befehlswerterzeugungsvorrichtung
DE102017000471A1 (de) Numerisches Steuersystem mit Einsatz von durch Bearbeitungssimulation analysierten Daten bei der tatsächlichen Bearbeitung
DE102012001840A1 (de) Numerische Steuerung zum Ausführen einer Positionierungsabschlussprüfung
DE102014105431B4 (de) Betriebssystem für eine direkte numerische Steuerung
DE102014012718A1 (de) Steuereinheit für eine zentralisierte Steuerung durch Gruppieren einer Vielzahl von Wegen
DE102018000205A1 (de) Numerische Steuerung
DE112016006846T5 (de) Bearbeitungszeitberechnungsvorrichtung und Bearbeitungszeitberechnungsverfahren
DE102014016807B4 (de) Numerische Steuervorrichtung mit einer Funktion zur gleichzeitigen Ausführung einer Vielzahl von Befehlen unter Verwendung von Daten im Tabellenformat
DE102019007392A1 (de) Numerisches Steuersystem
DE2840033A1 (de) Verfahren und vorrichtung zur steuerung von motoren
DE102019007382A1 (de) Numerische Steuerung
DE2230727C3 (de) Schaltungsanordnung zur dynamischen Zuteilung von Speicherzyklen mit Vorrangs steuerung
DE112017007655T5 (de) Verteilte Zuweisungseinrichtung, verteiltes Zuweisungssystem, sowie verteiltes Zuweisungsverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence