DE102020124479A1 - Optimierungsvorrichtung - Google Patents

Optimierungsvorrichtung Download PDF

Info

Publication number
DE102020124479A1
DE102020124479A1 DE102020124479.7A DE102020124479A DE102020124479A1 DE 102020124479 A1 DE102020124479 A1 DE 102020124479A1 DE 102020124479 A DE102020124479 A DE 102020124479A DE 102020124479 A1 DE102020124479 A1 DE 102020124479A1
Authority
DE
Germany
Prior art keywords
block
code
function code
processing unit
program
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
DE102020124479.7A
Other languages
English (en)
Inventor
Toshifumi MURAMATSU
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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Publication of DE102020124479A1 publication Critical patent/DE102020124479A1/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/404Numerical 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 control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • 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/408Numerical 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 data handling or data format, e.g. reading, buffering or conversion of data
    • G05B19/4083Adapting programme, configuration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/4183Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by data acquisition, e.g. workpiece identification
    • 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/35215Generate optimal nc program variant as function of cost, time, surface, energy
    • 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/35216Program, generate nc program, code from cad data
    • 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/35252Function, machine codes G, M
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36242Convert program for different machines with different M-code, G-code, header
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Abstract

Zur Optimierung von NC-Programmkernen, die ein generiertes Bearbeitungsprogramm umfassen, und zur Beschleunigung der Operation einer Werkzeugmaschine. Eine Optimierungsvorrichtung 10 umfasst eine Block-Analyseeinheit 111, eine Code-Verarbeitungseinheit 112 und eine Programmerzeugungseinheit 114. Die Block-Analyseeinheit 111 analysiert einen Vorbereitungsfunktionscode und/oder einen Hilfsfunktionscode für jeden einer Vielzahl von Sätzen, die in einem ersten Programm 210 enthalten sind. Die Code-Verarbeitungseinheit 112 führt einen Prozess an dem Vorbereitungsfunktionscode und/oder dem Hilfsfunktionscode in einer Vielzahl von aufeinanderfolgenden Blöcken aus, basierend auf einem Ergebnis der Analyse durch die Block-Analyseeinheit 111, und optimiert das erste Programm 210. Die Programmerzeugungseinheit 114 erzeugt das von der Code-Verarbeitungseinheit 112 optimierte erste Programm 210 als zweites Programm 220.

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Optimierungsvorrichtung.
  • Stand der Technik
  • Bearbeitungsprogramme werden beispielsweise von einer CAD/CAM-Vorrichtung oder einem Bediener o.ä. einer Werkzeugmaschine erzeugt. Die meisten NC-Programmcodes wie beispielsweise vorbereitende Funktionen (G-Funktionen) und Hilfsfunktionen (M-Funktionen) durch NC-Programmcodes, die in Bearbeitungsprogrammen enthalten sind, werden durch Normen wie JIS B6314 standardisiert.
  • Abgesehen von Standards wie JIS B6314 haben die Hersteller von Werkzeugmaschinen jedoch ihre eigenen einzigartigen NC-Programmcodes für verschiedene Zusatzfunktionen, einschließlich G-Funktionen und M-Funktionen zur Verbesserung der Funktionen von Werkzeugmaschinen und dergleichen, aufgezeigt.
  • In diesem Zusammenhang ist es eine bekannte Technik, auf eine Konvertierungstabelle zu verweisen, in der die Zuordnung zwischen solchen eindeutigen NC-Programmcodes und anderen NC-Programmcodes gespeichert ist, die dieselben Funktionen wie die eindeutigen NC-Programmcodes spezifizieren, und bei der Eingabe eines NC-Programmcodes gemäß unterschiedlichen Spezifikationen ein Bearbeitungsprogramm auszuführen, indem der eingegebene NC-Programmcode in einen entsprechenden eindeutigen Code übersetzt wird. Siehe beispielsweise Patentdokument 1.
  • Patentdokument 1: Japanische ungeprüfte Patentanmeldung, Veröffentlichung Nr. H 1 0-320027
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Bearbeitungsprogramme für verschiedene Werkzeugmaschinen werden von einem Postprozessor eines CAD/CAM-Geräts generiert. Die Bearbeitungsprogramme werden jedoch mit dem Schwerpunkt auf einer zuverlässigen Operation erstellt und können daher die Duplizierung von NC-Programmcodes und die Einfügung eines NC-Programmcodes als G-Funktion (im Folgenden auch als „G-Code“ bezeichnet) und eines NC-Programmcodes als M-Funktion (im Folgenden auch als „M-Code“ bezeichnet) umfassen, die nicht unbedingt erforderlich sind. Darüber hinaus wird die Verarbeitungszeit bei der Festlegung der Reihenfolge der Prozesse nicht unbedingt berücksichtigt. Dies macht die Operation der Werkzeugmaschinen nachteilig langsam und die Zykluszeit länger. Es ist zu beachten, dass Bearbeitungsprogramme, die von einem Bediener erstellt werden, insbesondere von einem Bediener, der mit Bearbeitungsprogrammen nicht vertraut ist, ebenfalls ähnliche Probleme mit sich bringen.
  • Es ist daher wünschenswert, die in einem erzeugten Bearbeitungsprogramm enthaltenen NC-Programmcodes zu optimieren und die Operation einer Werkzeugmaschine zu beschleunigen.
  • Eine Optimierungsvorrichtung (10) gemäß einem Aspekt der vorliegenden Offenbarung umfasst: eine Block-Analyseeinheit (111), die so konfiguriert ist, dass sie einen Vorbereitungsfunktionscode und/oder einen Hilfsfunktionscode für jeden einer Vielzahl von Blöcken analysiert, die in einem ersten Programm (210) enthalten sind; eine Code-Verarbeitungseinheit (112), die so konfiguriert ist, dass sie einen Prozess an dem Vorbereitungsfunktionscode und/oder dem Hilfsfunktionscode in einer Vielzahl von aufeinanderfolgenden Blöcken auf Grundlage eines Ergebnisses der Analyse durch die Block-Analyseeinheit (111) durchführt und das erste Programm (210) optimiert; und eine Programmerzeugungseinheit (114), die so konfiguriert ist, dass sie das durch die Code-Verarbeitungseinheit (112) optimierte erste Programm (210) als ein zweites Programm (220) erzeugt.
  • Gemäß einer Ausführungsform ist es möglich, die in einem generierten Bearbeitungsprogramm enthaltenen NC-Programmcodes zu optimieren und die Operation einer Werkzeugmaschine zu beschleunigen.
  • Figurenliste
    • 1 ist ein funktionales Blockdiagramm, das ein Beispiel für die funktionale Konstitution eines Steuersystems gemäß einer Ausführungsform zeigt;
    • 2A zeigt ein Beispiel für ein Quellprogramm zur Beschreibung eines Löschvorgangs, der von einer Lösch-Verarbeitungseinheit durchgeführt wird;
    • 2B zeigt ein Beispiel für das Quellprogramm nach dem Löschvorgang;
    • 3A zeigt ein Beispiel für ein Quellprogramm zur Beschreibung eines Blockintegrationsprozesses, der von einer zweiten Integrations-Verarbeitungseinheit durchgeführt wird;
    • 3B zeigt ein Beispiel für das Quellprogramm nach dem Blockintegrationsprozess;
    • 4A zeigt ein Beispiel für ein Quellprogramm zur Beschreibung des Blockintegrationsprozesses, der von der zweiten Integrations-Verarbeitungseinheit durchgeführt wird;
    • 4B zeigt ein Beispiel für das Quellprogramm nach dem Blockintegrationsprozess;
    • 5A veranschaulicht ein Beispiel für ein Quellprogramm zur Beschreibung eines Umstellungsvorgangs, der von einer Block-Umstellungs-Verarbeitungseinheit durchgeführt wird;
    • 5B zeigt ein Beispiel für das Quellprogramm nach dem Umordnungsprozess;
    • 6A zeigt ein Beispiel für ein Quellprogramm zur Beschreibung eines Umstellungsvorgangs, der von einer Koordinaten-Umstellungs-Verarbeitungseinheit durchgeführt wird;
    • 6B zeigt ein Beispiel für einen Bearbeitungspfad eines Werkzeugs in einer Werkzeugmaschine gemäß dem in 6A dargestellten Quellprogramm;
    • 7A zeigt ein Beispiel für das Quellprogramm nach dem Umordnungsprozess;
    • 7B zeigt ein Beispiel für einen Bearbeitungspfad des Werkzeugs in der Werkzeugmaschine gemäß dem in 7A dargestellten Quellprogramm;
    • 8A zeigt ein Beispiel für ein Quellprogramm zur Beschreibung eines Ersetzungsprozesses, der von einer Austausch-Verarbeitungseinheit durchgeführt wird;
    • 8B zeigt ein Beispiel für das Quellprogramm nach dem Ersetzungsprozess;
    • 9 ist ein Flussdiagramm zur Beschreibung eines Optimierungsprozesses, der von einer Numerik-Steuerung gesteuert wird;
    • 10 ist ein Flussdiagramm zur Beschreibung einer Fortsetzung des in 9 dargestellten Optimierungsprozesses;
    • 11 ist ein Flussdiagramm, das eine Fortsetzung des in 9 dargestellten Optimierungsprozesses darstellt;
    • 12 ist ein Flussdiagramm, das eine Fortsetzung des in 9 dargestellten Optimierungsprozesses veranschaulicht;
    • 13 ist ein Flussdiagramm, das eine Fortsetzung des in 9 dargestellten Optimierungsprozesses veranschaulicht;
    • 14 zeigt ein Beispiel für den Aufbau eines Steuersystems; und
    • 15 zeigt ein Beispiel für eine Mensch-Maschine-Schnittstelle.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • <Ausführungsform>
  • Im Folgenden wird zunächst ein Überblick über die vorliegende Ausführungsform gegeben. Eine Optimierungsvorrichtung gemäß der vorliegenden Ausführungsform analysiert einen Vorbereitungsfunktionscode und/oder einen Hilfsfunktionscode für jeden der in einem ersten Programm enthaltenen Blöcke. Die Optimierungsvorrichtung führt einen Optimierungsprozess zur Verringerung der Verarbeitungszeit des Vorbereitungsfunktionscodes und/oder des Hilfsfunktionscodes in einer Vielzahl von aufeinanderfolgenden Blöcken auf Grundlage eines Analyseergebnisses durch, optimiert das erste Programm und erzeugt das optimierte erste Programm als zweites Programm.
  • Gemäß der vorliegenden Ausführungsform ist es somit möglich, das Problem der „Optimierung der in einem generierten Bearbeitungsprogramm enthaltenen NC-Programmcodes und der Beschleunigung der Operation einer Werkzeugmaschine“ anzugehen.
  • Durch das Vorstehende wird ein Überblick über die gegenwärtige Ausführungsform dargestellt.
  • Im Folgenden wird dann eine Aufstellung der vorliegenden Ausführungsform unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.
  • 1 ist ein funktionales Blockschaltbild, das ein Beispiel für die funktionale Konstitution eines Steuersystems gemäß einer Ausführungsform zeigt. Wie in 1 dargestellt, umfasst ein Steuersystem 1 eine Numerik-Steuerung 10 und eine Werkzeugmaschine 20.
  • Die Numerik-Steuerung 10 und die Werkzeugmaschine 20 können über Verbindungsschnittstellen direkt miteinander verbunden werden, nicht abgebildet. Alternativ können die Numerik-Steuerung 10 und die Werkzeugmaschine 20 über ein nicht abgebildetes Netzwerk, wie beispielsweise ein lokales Netzwerk (LAN) oder das Internet, miteinander verbunden werden. In diesem Fall umfassen die numerische Steuereinheit 10 und die Werkzeugmaschine 20 jeweils eine umfassende Steuereinheit (nicht abgebildet) für die Kommunikation zwischen ihnen über die oben beschriebene Verbindung. Es ist zu beachten, dass die Werkzeugmaschine 20 die Numerik-Steuerung 10 wie unten beschrieben umfassen kann.
  • Die Numerik-Steuerung 10 ist eine dem Fachmann bekannte numerische Steuerung, die auf Grundlage von Steuerinformationen einen Operationsbefehl erzeugt und den erzeugten Operationsbefehl an die Werkzeugmaschine 20 sendet. Die Numerik-Steuerung 10 steuert also die Operation der Werkzeugmaschine 20. In einem Fall, in dem die Werkzeugmaschine 20 ein Roboter oder dergleichen ist, kann die Numerik-Steuerung 10 beispielsweise eine Robotersteuerung oder dergleichen sein.
  • Darüber hinaus ist das Steuerungsziel der Numerik-Steuerung 10 nicht auf die Werkzeugmaschine 20 oder einen Roboter beschränkt. Die Numerik-Steuerung 10 ist für industrielle Maschinen im Allgemeinen weitgehend anwendbar. Beispiele für Industriemaschinen umfassen verschiedene Maschinen und Werkzeuge wie Werkzeugmaschinen, Industrieroboter, Serviceroboter, Schmiedemaschinen und Spritzgussmaschinen.
  • Wie in 1 dargestellt, weist die Numerik-Steuerung 10 eine Steuereinheit 100 und eine Speichereinheit 200 auf. Damit die numerische Steuerung 10 als Optimierungsvorrichtung arbeiten kann, weist die Steuereinheit 100 eine Optimierungseinheit 110 und eine Programmausführeinheit 120 auf. Darüber hinaus weist die Optimierungseinheit 110 eine Block-Analyseeinheit 111, eine Code-Verarbeitungseinheit 112, eine Informationsausgabeeinheit 113 und eine NC-Programmerzeugungseinheit 114 auf. Darüber hinaus weist die Code-Verarbeitungseinheit 112 eine Lösch-Verarbeitungseinheit 1121, eine erste Integrations-Verarbeitungseinheit 1122, eine zweite Integrations-Verarbeitungseinheit 1123, eine Block-Umstellungs-Verarbeitungseinheit 1124, eine Koordinaten-Umstellungs-Verarbeitungseinheit 1125 und eine Austausch-Verarbeitungseinheit 1126 auf.
  • <Speichereinheit 200>
  • Die Speichereinheit 200 ist beispielsweise ein Arbeitsspeicher (RAM) oder eine Festplatte (HDD), die betrieben wird. In der Speichereinheit 200 ist ein Quellprogramm 210 und ein Objekt-Programm 220 gespeichert.
  • Das Quellprogramm 210 ist ein nicht optimiertes Bearbeitungsprogramm, das von einer externen Vorrichtung, wie beispielsweise einer CAD/CAM-Vorrichtung oder einem Operator o.ä. der Werkzeugmaschine 20 erzeugt und von dieser erhalten wurde.
  • Das Objekt-Programm 220 ist ein optimiertes Bearbeitungsprogramm, d.h. das Quellprogramm 210, das von der unten beschriebenen Code-Verarbeitungseinheit 112 verarbeitet und von der unten beschriebenen NC-Programmerzeugungseinheit 114 erzeugt wird.
  • <Steuereinheit 100>
  • Die Steuereinheit 100 umfasst eine Zentraleinheit (CPU), einen Festwertspeicher (ROM), RAM, einen komplementären Metalloxid-Halbleiterspeicher (CMOS) und ähnliche, den Fachleuten bekannte Komponenten, die so konfiguriert sind, dass sie über einen Bus miteinander kommunizieren.
  • Die CPU ist ein Prozessor, der die gesamte Steuerung der Numerik-Steuerung 10 übernimmt. Die CPU liest ein Systemprogramm und ein im ROM gespeichertes Anwendungsprogramm über den Bus aus und steuert die numerische Steuerung 10 gemäß dem Systemprogramm und dem Anwendungsprogramm. Somit ist die Steuereinheit 100 so konfiguriert, dass sie Funktionen der Block-Analyseeinheit 111, der Code-Verarbeitungseinheit 112, der Informations-Ausgabeeinheit 113 und der NC-Programmerzeugungseinheit 114 wie in 1 dargestellt steuert. Verschiedene Daten wie temporäre Berechnungsdaten und Anzeigedaten werden im RAM gespeichert. Der CMOS-Speicher ist batteriegepuffert, wird nicht angezeigt und ist ein nichtflüchtiger Speicher, der auch nach dem Ausschalten der Numerik-Steuerung 10 gespeicherte Informationen aufweist.
  • Die Block-Analyseeinheit 111 übernimmt beispielsweise ein durch die externe Vorrichtung wie beispielsweise eine CAD/CAM-Vorrichtung und/oder den Bediener erzeugtes Bearbeitungsprogramm als Quellprogramm 210 aus der Speichereinheit 200. Die Block-Analyseeinheit 111 analysiert einen Vorbereitungsfunktionscode (G-Code) und/oder einen Hilfsfunktionscode (M-Code) für jeden der Blöcke, die in dem erworbenen Quellprogramm 210 enthalten sind.
  • Es ist zu beachten, dass das Quellprogramm 210 beispielsweise auf einer Norm wie JIS B6315-1 oder JIS B6315-2 basiert.
  • Die Code-Verarbeitungseinheit 112 führt einen Optimierungsprozess an einem vorbestimmten Vorbereitungsfunktionscode und/oder einem vorbestimmten Hilfsfunktionscode in einer Vielzahl von aufeinanderfolgenden Blöcken des Quellprogramms 210 auf Grundlage eines Ergebnisses der Analyse durch die Block-Analyseeinheit 111 durch und optimiert das Quellprogramm 210.
  • Die Lösch-Verarbeitungseinheit 1121 bestimmt eine unnötige Duplizierung eines Vorbereitungsfunktionscodes in einer Vielzahl von aufeinanderfolgenden Blöcken, wenn der Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block mit einem Vorbereitungsfunktionscode in jedem anderen Block, der an den einen Block angrenzt, identisch ist. Die Lösch-Verarbeitungseinheit 1121 löscht den Vorbereitungsfunktionscode aus jedem Block mit Ausnahme des ersten Blocks unter der Vielzahl von aufeinanderfolgenden Blöcken, die den Vorbereitungsfunktionscode aufweisen.
  • 2A und 2B zeigen ein Beispiel für das Quellprogramm 210 zur Beschreibung eines Löschvorgangs, der von der Lösch-Verarbeitungseinheit 1121 durchgeführt wird.
  • Das Quellprogramm 210 in 2A bewirkt zunächst, dass ein Werkzeug (nicht dargestellt) in der Werkzeugmaschine 20 durch lineare Interpolation von der aktuellen Werkzeugposition um „-10“ in Richtung der X-Achse und um „+10“ in Richtung der Y-Achse mit einer Geschwindigkeit „F350“ ausfährt. Als nächstes bewirkt das Quellprogramm 210, dass das (nicht gezeigte) Werkzeug in der Werkzeugmaschine 20 von der Nachlaufposition um „-10“ in Richtung der X-Achse und um „-10“ in Richtung der Y-Achse mit einer Geschwindigkeit „F350“ durch lineare Interpolation verfahren wird. Schließlich bewirkt das Quellprogramm 210, dass das Werkzeug (nicht dargestellt) in der Werkzeugmaschine 20 aus der Nachlaufposition um „+10“ in Richtung der X-Achse und um „+10“ in Richtung der Y-Achse mit einer Geschwindigkeit „F350“ durch lineare Interpolation verfahren wird.
  • Es ist zu beachten, dass die Vorbereitungsfunktionscodes „G91“ und „G01“ Codes von modalen Gruppen sind und daher nach ihrer Einstellung so lange in Kraft bleiben, bis ihre Einstellung geändert oder aufgehoben wird. Entsprechend löscht die Lösch-Verarbeitungseinheit 1121, wie in 2B dargestellt, die Codes „G91“ und „G01“ aus jedem anderen Satz als dem ersten Satz im Quellprogramm 210 in 2A. Dadurch wird das Quellprogramm 210 optimiert, wodurch die Verarbeitung durch die Numerik-Steuerung 10 reduziert und die Ausführungszeit bei der Ausführung des Objekt-Programms 220 verkürzt wird.
  • Die erste Integrations-Verarbeitungseinheit 1122 integriert eine Vielzahl von Blöcken unter einer Vielzahl von aufeinanderfolgenden Blöcken in einem Fall, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer modalen Gruppe ist, die sich von der eines Vorbereitungsfunktionscodes in jedem anderen, an den einen Block angrenzenden Block unterscheidet.
  • Die zweite Integrations-Verarbeitungseinheit 1123 integriert eine Vielzahl von Blöcken unter einer Vielzahl von aufeinanderfolgenden Blöcken in einem Fall, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer modalen Gruppe ist, die sich von der eines Vorbereitungsfunktionscodes in jedem anderen Block, der an den einen Block angrenzt, unterscheidet, und ein Hilfsfunktionscode, der in dem an den einen Block angrenzenden Block enthalten ist, nicht unabhängig einen Befehl an den an den einen Block angrenzenden Block geben muss und keine widersprüchliche Operation darstellt.
  • 3A und 3B zeigen ein Beispiel für das Quellprogramm 210 zur Beschreibung eines Blockintegrationsprozesses, der von der zweiten Integrations-Verarbeitungseinheit 1123 durchgeführt wird.
  • Das in 3A dargestellte Quellprogramm 210 führt einen Werkzeugwechselbefehl „M6“ in einem Satz in der dritten Zeile und einen Positionierbefehl „G00“ in einem Satz in der vierten Zeile aus. Dabei ist der Positionierbefehl „G00“ kein Code, der nur den Satz in der vierten Zeile betrifft, und gehört zu einer modalen Gruppe, die sich von einem Werkzeuglängenversatzaufhebungsbefehl „G49“ in dem Satz in der benachbarten dritten Zeile unterscheidet. Darüber hinaus muss der Werkzeugwechselbefehl „M6“ nicht unabhängig einen Befehl an einen anderen Satz aufweisen und ist keine widersprüchliche Operation. Dementsprechend integriert die zweite Integrations-Verarbeitungseinheit 1123, wie in 3B dargestellt, den Werkzeugwechselbefehl „M6“ in den Satz in der dritten Zeile und den Positionierbefehl „G00“ in den Satz in der vierten Zeile. Dadurch wird das Quellprogramm 210 optimiert, so dass der Werkzeugwechselbefehl „M6“ und der Positionierbefehl „G00“ gleichzeitig ausgeführt werden können und die Zykluszeit verkürzt wird.
  • Die 4A und 4B zeigen ein Beispiel des Quellprogramms 210 zur Beschreibung des Blockintegrationsprozesses, der von der zweiten Integrations-Verarbeitungseinheit 1123 durchgeführt wird.
  • Das in 4A dargestellte Quellprogramm 210 führt in einem Satz in der zweiten Zeile einen Werkzeuglängenversatzbefehl „G43“ und in einem Satz in der dritten Zeile einen Spindelrotationsbefehl „M3“ aus. Dabei ist der Werkzeuglängenversatzaufhebungsbefehl „G43“ kein Code, der nur den Satz in der zweiten Zeile betrifft, und gehört zu einer Modalgruppe, die sich von der des Werkzeuglängenversatzaufhebungsbefehls „G49“ oder jedem anderen Code in einem Satz in der benachbarten ersten Zeile unterscheidet. Darüber hinaus muss der Spindelrotationsbefehl „M3“ nicht unabhängig einen Befehl an einen anderen Satz aufweisen und stellt keine widersprüchliche Operation dar. Entsprechend integriert die zweite Integrations-Verarbeitungseinheit 1123, wie in 4B dargestellt, den Werkzeuglängenversatzbefehl „G43“ in den Satz in der zweiten Zeile und den Spindelrotationsbefehl „M3“ in den Satz in der dritten Zeile. Dadurch wird das Quellprogramm 210 optimiert, so dass der Werkzeuglängenversatzbefehl „G43“ und der Spindelrotationsbefehl „M3“ gleichzeitig ausgeführt werden können und der Einfluss der Verarbeitungszeit des Hilfsfunktionscodes auf die Zykluszeit verringert wird.
  • Die Block-Umstellungs-Verarbeitungseinheit 1124 ordnet die Reihenfolge einer Vielzahl von aufeinanderfolgenden Blöcken in einem Fall um, in dem ein Hilfsfunktionscode in einem Block keine Operation ist, die mit einem Vorbereitungsfunktionscode oder einem Hilfsfunktionscode in einem Block vor dem einen Block in Konflikt steht.
  • 5A und 5B zeigen ein Beispiel für das Quellprogramm 210 zur Beschreibung eines Umstellungsvorgangs, der von der Block-Umstellungs-Verarbeitungseinheit 1124 durchgeführt wird.
  • Das in 5A dargestellte Quellprogramm 210 führt zunächst den Positionierbefehl „G00“ aus, führt einen Kühlmittelauslassbefehl „M08“ aus und führt dann einen Linear-I nterpolations-Bewegungsbefehl „G01“ aus. Dabei ist der Kühlmittelauslassbefehl „M08“ keine Operation, die mit dem Positionierbefehl „G00“ oder dem Linear-Interpolations-Bewegungsbefehl „G01“, die Vorbereitungsfunktionscodes sind, in Konflikt steht. Dementsprechend vertauscht die Block-Umstellungs-Verarbeitungseinheit 1124, wie in 5B dargestellt, den Kühlmittelauslassbefehl „M08“ und den Positionierbefehl „G01“ im Satz in der ersten Zeile. Dadurch wird das Quellprogramm 210 optimiert und die Ausführungszeit verkürzt.
  • Wenn der Kühlmittelauslassbefehl „M08“ ausgeführt wird, gibt es eine Verzögerungszeit, bevor das Kühlmittel tatsächlich ausgestoßen wird. Die Block-Umstellungs-Verarbeitungseinheit 1124 kann daher den Kühlmittelauslassbefehl „M08“ aus dem Satz unmittelbar vor dem Linear-Interpolations-Bewegungsbefehl „G01“ im Satz in der dritten Zeile in einen Satz vor der Zeile mit dem Positionierbefehl „G00“ verschieben, um die Werkzeugmaschine 20 zur Durchführung einer Operation zu veranlassen, nachdem bestätigt wurde, dass das Kühlmittel ausgestoßen wird.
  • Die Koordinaten-Umstellungs-Verarbeitungseinheit 1125 ordnet eine Vielzahl von Koordinatenwerten um, die durch Dimensionswörter spezifiziert sind, die eine Vielzahl von aufeinanderfolgenden Blöcken umfassen, um die Bewegungsdistanz zwischen den Koordinatenwerten oder die Gesamtbewegungszeit in einem Fall zu minimieren, in dem ein Vorbereitungsfunktionscode im ersten Block aus der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode mit festem Zyklus ist und ein Vorbereitungsfunktionscode im letzten Block aus der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode zur Aufhebung des festen Zyklus ist, der dem Vorbereitungsfunktionscode im ersten Block entspricht.
  • 6A und 6B sowie 7A und 7B zeigen ein Beispiel des Quellprogramms 210 zur Beschreibung eines Umstellungsvorgangs, der von der Koordinaten-Umstellungs-Verarbeitungseinheit 1125 durchgeführt wird.
  • Gemäß einem in 6B dargestellten Bearbeitungspfad muss das Werkzeug (nicht dargestellt) in der Werkzeugmaschine 20 jedoch einen unnötig langen Weg zurücklegen, und die Zykluszeit ist lang. Die Koordinaten-Umstellungs-Verarbeitungseinheit 1125 optimiert daher die Reihenfolge der Bewegung von der befohlenen Position A zur befohlenen Position D, um die Bewegungsdistanz oder die Gesamtbewegungszeit zu minimieren, indem sie beispielsweise die befohlenen Positionen A bis D als Knotenpunkte für das Problem des fahrenden Verkäufers verwendet.
  • Es ist zu beachten, dass es sich bei dem „Problem des Handlungsreisenden“ um ein bekanntes Verfahren handelt, dessen detaillierte Beschreibung weggelassen wird. Darüber hinaus ist das Verfahren zur Optimierung des Bewegungsauftrags zur Minimierung der Bewegungsdistanz und der Gesamtumzugszeit nicht auf das Problem des Handlungsreisenden beschränkt, und jedes andere bekannte Verfahren kann angewandt werden.
  • 7A zeigt ein Beispiel für das Quellprogramm 210 nach dem Umordnungsprozess. 7B zeigt ein Beispiel für einen Bearbeitungspfad des Werkzeugs (nicht dargestellt) in der Werkzeugmaschine gemäß dem in 7A dargestellten Quellprogramm 210.
  • Wie in 7A dargestellt, sind die Koordinatenwerte in den Sätzen in der zweiten und dritten Zeile im Quellprogramm 210 im Vergleich zum Quellprogramm 210 in 6A vertauscht. Infolgedessen bewegt sich, wie in 7B dargestellt, das Werkzeug (nicht dargestellt), wie beispielsweise ein Bohrer in der Werkzeugmaschine 20, in der Reihenfolge der befohlenen Position A, der befohlenen Position C, der befohlenen Position B und der befohlenen Position D. Dadurch verringert sich der kumulative Fahrweg des Werkzeugs (nicht dargestellt) in der Werkzeugmaschine 20, wodurch die Zykluszeit verkürzt wird.
  • Es ist zu beachten, dass in Fällen, in denen die Entfernung zwischen den befohlenen Positionen als Kosten und die Bewegungsentfernung als Bewertungsfunktion auf Grundlage des Problems des Handlungsreisenden betrachtet wird, die Bewertungsfunktion des in 6B dargestellten Befehlspfads „48“ und die Bewertungsfunktion des in 7B dargestellten Befehlspfads „40“ ist. Das heißt, die in 7B dargestellte Route ist die kürzeste.
  • Die Austausch-Verarbeitungseinheit 1126 ersetzt eine Vielzahl von aufeinanderfolgenden Blöcken durch eine Kombination von Vorbereitungsfunktionscodes von einem Vorbereitungsfunktionscode mit festem Zyklus bis zu einem vorbereitenden Interpolations-Funktionscode in einem Fall, in dem ein Vorbereitungsfunktionscode im ersten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode mit festem Zyklus ist und ein Vorbereitungsfunktionscode im letzten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode zur Aufhebung des festen Zyklus ist, der dem Vorbereitungsfunktionscode im ersten Block entspricht.
  • 8A und 8B zeigen ein Beispiel des Quellprogramms 210 zur Beschreibung eines Austauschvorgangs, der von der Austausch-Verarbeitungseinheit 1126 durchgeführt wird.
  • Das Quellprogramm 210 in 8A weist im ersten Satz den Bohrzyklus, Punkt-Bohrzyklus-Befehl „G81“, der ein vorbereitender Festzyklus-Funktionscode ist, und im zweiten Satz den Festzyklus-Aufhebebefehl „G80“ auf, der dem „G81“ entspricht. In diesem Fall ersetzt, wie in 8B dargestellt, die Austausch-Verarbeitungseinheit 1126 die Funktionscodes für den Vorbereitungs-Festzyklus, wie beispielsweise den Bohrzyklus-Befehl „G81“, durch verschiedene Interpolations-Vorbereitungs-Funktionscodes, wie beispielsweise den Positionierbefehl „G00“ und den Linear-Interpolations-Bewegungsbefehl „G01“. Das Ersetzen der Vorbereitungsfunktionscodes für feste Zyklen durch verschiedene vorbereitende Interpolationsfunktionscodes, wie oben beschrieben, ermöglicht eine Verkürzung der Ausführungszeit.
  • Die Informationsausgabeeinheit 113 gibt Informationen, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angeben, an einen Block unmittelbar vor oder nach einem Block aus, der einen Vorbereitungsfunktionscode oder einen Hilfsfunktionscode umfasst, der von der Code-Verarbeitungseinheit 112 optimiert wurde. Die Informationsausgabeeinheit 113 gibt das Quellprogramm 210, das die ausgegebenen Informationen aufweist, an die NC-Programmerzeugungseinheit 114 aus.
  • Es ist zu beachten, dass die Informationsausgabeeinheit 113 die Informationen, die den Inhalt des von der Code-Verarbeitungseinheit 112 ausgeführten Prozesses angeben, an eine (nicht abgebildete) Anzeigeeinheit, wie beispielsweise eine in der numerischen Steuereinheit 10 umfassende Flüssigkristallanzeige, ausgeben kann. Die Anzeigeeinheit (nicht abgebildet) kann dann den Inhalt des von der Code-Verarbeitungseinheit 112 ausgeführten Prozesses anzeigen. Auf diese Weise kann ein Bediener der Numerik-Steuerung 10 wissen, welcher Prozess auf dem Quellprogramm 210 ausgeführt wurde.
  • Zusätzlich kann die Informationsausgabeeinheit 113 einen Schätzwert für die Ausführungszeit des Objekt-Programms 220 auf Grundlage des Inhalts des von der Code-Verarbeitungseinheit 112 ausgeführten Prozesses berechnen und den Schätzwert an die Anzeigeeinheit (nicht gezeigt) ausgeben. Die Anzeigeeinheit (nicht angezeigt) kann dann den von der Informationsausgabeeinheit 113 berechneten Schätzwert anzeigen. Auf diese Weise kann der Bediener der Numerik-Steuerung 10 wissen, um wie viel die Ausführungszeit durch den Optimierungsprozess des Quellprogramms 210 verkürzt werden soll.
  • Die NC-Programmerzeugungseinheit 114 erzeugt das von der Code-Verarbeitungseinheit 112 optimierte Quellprogramm 210 als Objekt-Programm 220.
  • Konkret erzeugt die NC-Programm-Erzeugungseinheit 114 aus dem von der Code-Verarbeitungseinheit 112 bearbeiteten Quellprogramm 210 das Objektprogramm 220. Die NC-Programmerzeugungseinheit 114 speichert dann das erzeugte Objekt-Programm 220 in der Speichereinheit 200.
  • Es ist zu beachten, dass die NC-Programm-Erzeugungseinheit 114 das Objektprogramm 220 getrennt vom Quellprogramm 210 erzeugen kann oder das Objektprogramm 220 als Ersatz für das Quellprogramm 210 erzeugen kann.
  • Die Programmausführeinheit 120 liest das von der NC-Programmerzeugungseinheit 114 erzeugte Objekt-Programm 220 aus der Speichereinheit 200 aus und führt das Objekt-Programm 220 aus. Die Programmausführeinheit 120 erzeugt auf Grundlage des Objekt-Programms 220 einen Operationsbefehl und sendet den erzeugten Operationsbefehl an die Werkzeugmaschine 20, um den Betrieb der Werkzeugmaschine 20 zu steuern.
  • <Optimierungsprozess durch Numerik-Steuerung 10>
  • Im Folgenden wird die Operation beschrieben, die sich auf den Optimierungsprozess bezieht, der von der Numerik-Steuerung 10 gemäß der vorliegenden Ausführungsform gesteuert wird.
  • Die 9 bis 13 sind Flussdiagramme zur Beschreibung des Optimierungsprozesses, der von der Numerik-Steuerung 10 gesteuert wird. Die hier gezeigten Abläufe werden jedes Mal wiederholt, wenn ein neues Quellprogramm 210 erworben wird.
  • Im Schritt S11 in 9 bestimmt die Block-Analyseeinheit 111, ob ein Block des Quellprogramms 210 einen Hilfsfunktionscode umfasst oder nicht. Wenn ein Hilfsfunktionscode enthalten ist, geht der Prozess zu Schritt S12 über. Wenn kein Hilfsfunktionscode enthalten ist, geht der Prozess zu Schritt S13 über.
  • In Schritt S12 bestimmt die Block-Analyseeinheit 111, ob der eine Block des Quellprogramms 210 einen Vorbereitungsfunktionscode umfasst oder nicht. Wenn ein Vorbereitungsfunktionscode enthalten ist, geht der Prozess zu Schritt S41 in 12 über.
  • Wenn kein Vorbereitungsfunktionscode enthalten ist, geht der Prozess zu Schritt S31 in 11 über.
  • In Schritt S13 bestimmt die Block-Analyseeinheit 111, ob der eine Block des Quellprogramms 210 einen Vorbereitungsfunktionscode umfasst oder nicht. Wenn ein Vorbereitungsfunktionscode umfasst ist, geht der Prozess zu Schritt S14 über. Wenn kein Vorbereitungsfunktionscode enthalten ist, geht der Prozess zu Schritt S15 über.
  • In Schritt S14 bestimmt die Lösch-Verarbeitungseinheit 1121, ob der Vorbereitungsfunktionscode in dem in Schritt S13 bestimmten Block nur in dem einen Block wirksam ist oder nicht. Wenn der Vorbereitungsfunktionscode nur in dem einen Block wirksam ist, geht der Prozess zu Schritt S15 über. Wenn es sich bei dem Vorbereitungsfunktionscode nicht um einen Code handelt, der nur in dem einen Block wirksam ist, d.h. wenn der Vorbereitungsfunktionscode auch in einem anderen Block wirksam ist, geht der Prozess zu Schritt S21 in 10 über.
  • In Schritt S15 erzeugt die Code-Verarbeitungseinheit 112 einen verarbeiteten Befehlscode. Anschließend steuert die Numerik-Steuerung 10 den Optimierungsprozess ab.
  • Im Schritt S21 in 10 bestimmt die Lösch-Verarbeitungseinheit 1121, ob der Vorbereitungsfunktionscode in dem einen Block, der im Schritt S14 in 9 bestimmt wurde, mit einem Vorbereitungsfunktionscode in einem Block vor dem einen Block übereinstimmt oder nicht. Wenn der Vorbereitungsfunktionscode mit dem im vorhergehenden Block übereinstimmt, geht der Prozess zu Schritt S22 über. Unterscheidet sich der Vorbereitungsfunktionscode von dem im vorhergehenden Block, geht der Prozess zu Schritt S23 über.
  • Im Schritt S22 löscht die Lösch-Verarbeitungseinheit 1121 den Vorbereitungsfunktionscode in jedem anderen Block als dem ersten Block, der den Vorbereitungsfunktionscode aufweist, auf die gleiche Weise wie in 2B.
  • In Schritt S23 bestimmt die zweite Integrations-Verarbeitungseinheit 1123, ob der Vorbereitungsfunktionscode in dem einen in Schritt S21 bestimmten Block ein Mitglied derselben Modalgruppe wie der Vorbereitungsfunktionscode im vorhergehenden Block umfasst oder nicht. Wenn der Vorbereitungsfunktionscode ein Mitglied derselben Modalgruppe wie der Vorbereitungsfunktionscode im vorhergehenden Block ist, geht der Prozess zu Schritt S29 über. Wenn der Vorbereitungsfunktionscode ein Mitglied einer anderen Modalgruppe als der Vorbereitungsfunktionscode im vorhergehenden Block ist, geht das Verfahren zu Schritt S24 über.
  • In Schritt S24 bestimmt die Koordinaten-Umstellungs-Verarbeitungseinheit 1125, ob der eine in Schritt S23 bestimmte Block einen Vorbereitungsfunktionscode mit festem Zyklus umfasst oder nicht. Wenn ein Vorbereitungsfunktionscode mit festem Zyklus enthalten ist, geht der Prozess zu Schritt S25 über. Wenn kein Vorbereitungsfunktionscode mit festem Zyklus enthalten ist, geht der Prozess zu Schritt S51 in 13 über.
  • Im Schritt S25 liest die Koordinaten-Umstellungs-Verarbeitungseinheit 1125 aus dem im Schritt S24 bestimmten Block bis zu einem Block, der einen Vorbereitungsfunktionscode zur Aufhebung des Festzyklus-Aufhebebefehls entsprechend dem Vorbereitungsfunktionscode in dem einen Block umfasst, während sie Koordinatenwerte (Adressen) von befohlenen Positionen in Blöcken speichert, die auf den im Schritt S24 bestimmten Block folgen.
  • Im Schritt S26 ordnet die Koordinaten-Umstellungs-Verarbeitungseinheit 1125 die Bewegungsreihenfolge neu, indem sie das Problem des Handlungsreisenden in Bezug auf die im Schritt S25 gespeicherten Koordinatenwerte der befohlenen Positionen löst, wobei sie die Bewegungsdistanz zwischen den befohlenen Positionen oder die Bewegungszeit als Bewertungsfunktion verwendet.
  • Im Schritt S27 ersetzt die Austausch-Verarbeitungseinheit 1126 die festen Zyklus-Vorbereitungs-Funktionscodes durch eine Kombination verschiedener Interpolations-Vorbereitungs-Funktionscodes, die den Positionierbefehl „G00“, den Linear-Interpolations-Bewegungsbefehl „G01“, eine Kreisinterpolation im Uhrzeigersinn „G02“ und eine Gegenuhrzeigersinn-Kreisinterpolation „G03“ umfassen.
  • In Schritt S28 erzeugt die Informationsausgabeeinheit 113 eine Zeichenkette (Information), die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angibt, und gibt die erzeugte Zeichenkette an einen Block unmittelbar vor oder nach dem Block aus, der den umfassenden Vorbereitungsfunktionscode umfasst, der in Schritt S26 oder S27 verarbeitet wurde.
  • In Schritt S29 erzeugt die Code-Verarbeitungseinheit 112 den verarbeiteten Befehlscode. Anschließend steuert die Numerik-Steuerung 10 den Optimierungsprozess ab.
  • Im Schritt S31 in 11 bestimmt die Block-Umstellungs-Verarbeitungseinheit 1124, ob der Hilfsfunktionscode in dem einen im Schritt S12 in 1 bestimmten Block gleichzeitig mit einem Vorbereitungsfunktionscode unausführbar ist oder nicht. Wenn der Hilfsfunktionscode gleichzeitig mit dem Vorbereitungsfunktionscode im vorhergehenden Block nicht ausführbar ist, geht der Prozess zu Schritt S32 über. Wenn der Hilfsfunktionscode gleichzeitig mit dem Vorbereitungsfunktionscode im vorhergehenden Block ausführbar ist, geht der Prozess zum Schritt S35 über.
  • Im Schritt S32 bestimmt die Block-Umstellungs-Verarbeitungseinheit 1124, ob der Hilfsfunktionscode eine Operation des Vorbereitungsfunktionscodes nicht beeinflusst oder nicht. Wenn der Hilfsfunktionscode die Operation des Vorbereitungsfunktionscodes nicht beeinflusst, geht der Prozess zu Schritt S33 über. Wenn der Hilfsfunktionscode die Operation des Vorbereitungsfunktionscodes beeinflusst, geht der Prozess zu Schritt S38 über.
  • Im Schritt S33 schiebt die Block-Umstellungs-Verarbeitungseinheit 1124 den einen Block, der den Hilfsfunktionscode umfasst, auf die gleiche Weise wie in 5B vor den vorhergehenden Block.
  • In Schritt S34 erzeugt die Informationsausgabeeinheit 113 eine Zeichenkette, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angibt, und gibt die erzeugte Zeichenkette an einen Block unmittelbar vor oder nach dem einen Block aus, der den in Schritt S33 verarbeiteten Hilfsfunktionscode umfasst.
  • Im Schritt S35 bestimmt die zweite Integrations-Verarbeitungseinheit 1123, ob der vorhergehende Block keinen Hilfsfunktionscode umfasst, der nicht gleichzeitig ausführbar ist. Wenn der vorangehende Block keinen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Hilfsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S36 über. Wenn der vorangehende Block einen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Hilfsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S38 über.
  • Im Schritt S36 integriert die zweite Integrations-Verarbeitungseinheit 1123 den Hilfsfunktionscode mit dem vorhergehenden Block auf die gleiche Weise wie in 3B und 4B.
  • In Schritt S37 erzeugt die Informationsausgabeeinheit 113 eine Zeichenfolge, die ein Ergebnis des Prozesses anzeigt, und gibt die erzeugte Zeichenfolge an einen Block unmittelbar vor oder nach dem Block aus, der den in Schritt S36 verarbeiteten Hilfsfunktionscode umfasst.
  • In Schritt S38 erzeugt die Code-Verarbeitungseinheit 112 den verarbeiteten Befehlscode. Anschließend steuert die Numerik-Steuerung 10 den Optimierungsprozess ab.
  • Im Schritt S41 in 12 bestimmt die zweite Integrations-Verarbeitungseinheit 1123, ob der in Schritt S12 in 9 bestimmte Block einen umfassenden Vorbereitungsfunktionscode derselben Modalgruppe im vorhergehenden Block umfasst oder nicht. Wenn der Vorbereitungsfunktionscode ein Mitglied derselben Modalgruppe ist wie der Vorbereitungsfunktionscode im vorhergehenden Block, geht der Prozess zum Schritt S45 über. Wenn der Vorbereitungsfunktionscode kein Mitglied derselben Modalgruppe ist wie der Vorbereitungsfunktionscode im vorhergehenden Block, geht das Verfahren zu Schritt S42 über.
  • Im Schritt S42 bestimmt die zweite Integrations-Verarbeitungseinheit 1123, ob der vorhergehende Block keinen Hilfsfunktionscode umfasst, der nicht gleichzeitig ausgeführt werden kann. Wenn der vorhergehende Block keinen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Hilfsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S43 über. Wenn der vorhergehende Block einen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Hilfsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S45 über.
  • Im Schritt S43 integriert die zweite Integrations-Verarbeitungseinheit 1123 den Vorbereitungsfunktionscode und den Hilfsfunktionscode mit dem vorhergehenden Block.
  • Im Schritt S44 erzeugt die Informationsausgabeeinheit 113 eine Zeichenfolge, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angibt, und gibt die erzeugte Zeichenfolge an einen Block unmittelbar vor oder nach dem Block aus, der den Vorbereitungsfunktionscode und/oder den Hilfsfunktionscode umfasst, die im Schritt S43 verarbeitet wurden.
  • Im Schritt S45 erzeugt die Code-Verarbeitungseinheit 112 den verarbeiteten Befehlscode. Anschließend steuert die Numerik-Steuerung 10 den Optimierungsprozess ab.
  • Im Schritt S51 in 13 bestimmt die erste Integrations-Verarbeitungseinheit 1122, ob der vorhergehende Block nicht einen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Vorbereitungsfunktionscode in dem einen Block ausführbar ist oder nicht. Wenn der vorhergehende Block keinen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Vorbereitungsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S52 über. Wenn der vorhergehende Block einen Hilfsfunktionscode umfasst, der nicht gleichzeitig mit dem Vorbereitungsfunktionscode in dem einen Block ausführbar ist, geht der Prozess zu Schritt S54 über.
  • Im Schritt S52 integriert die erste Integrations-Verarbeitungseinheit 1122 den Vorbereitungsfunktionscode mit dem vorhergehenden Block.
  • In Schritt S53 erzeugt die Informationsausgabeeinheit 113 eine Zeichenfolge, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angibt, und gibt die erzeugte Zeichenfolge an einen Block unmittelbar vor oder nach dem Block aus, der den umfassenden Vorbereitungsfunktionscode umfasst, der in Schritt S52 verarbeitet wurde.
  • Im Schritt S54 erzeugt die Code-Verarbeitungseinheit 112 den verarbeiteten Befehlscode. Anschließend steuert die Numerik-Steuerung 10 den Optimierungsprozess ab.
  • Wie oben beschrieben, steuert die Numerik-Steuerung 10 gemäß der vorliegenden Ausführungsform den Löschvorgang, den Integrationsvorgang, den Blockumordnungsprozess, den Koordinatenumordnungsprozess und den Ersetzungsprozess in Abhängigkeit vom Befehlsinhalt und der Anordnung von Vorbereitungsfunktionscode und Hilfsfunktionscode in den Blöcken des Quellprogramms 210. Dies ermöglicht es der Numerik-Steuerung 10, die in einem generierten Bearbeitungsprogramm enthaltenen NC-Programmcodes zu optimieren und die Operation der Werkzeugmaschine 20 zu beschleunigen. Dadurch wird die Zykluszeit verkürzt.
  • Eine Ausführungsform wurde oben beschrieben. Die Numerik-Steuerung 10 ist jedoch nicht auf die oben beschriebene Ausführungsform beschränkt, und Änderungen wie Modifikationen und Verbesserungen in dem Maße, in dem das Ziel der Numerik-Steuerung 10 erreicht wird, werden von der Numerik-Steuerung 10 erfasst.
  • <Modifikationsbeispiel 1 >
  • Die Ausführungsform wurde oben anhand eines Beispiels beschrieben, in dem die Numerik-Steuerung 10 eine andere Vorrichtung als die Werkzeugmaschine 20 aufweist. Einige oder alle Funktionen der Numerik-Steuerung 10 können jedoch in der Werkzeugmaschine 20 enthalten sein.
  • Darüber hinaus können einige oder alle Funktionen der Optimierungseinheit 110 der numerischen Steuereinheit 10 durch eine informationsverarbeitende Vorrichtung, wie beispielsweise eine Computervorrichtung, als Optimierungsvorrichtung implementiert sein.
  • Alternativ können einige oder alle Funktionen der Block-Analyseeinheit 111, der Lösch-Verarbeitungseinheit 1121, der ersten Integrations-Verarbeitungseinheit 1122, der zweiten Integrations-Verarbeitungseinheit 1123, der Block-Umstellungs-Verarbeitungseinheit 1124, der Koordinaten-Umstellungs-Verarbeitungseinheit 1125, der Austausch-Verarbeitungseinheit 1126, der Programmausführeinheit 120 und der Speichereinheit 200 der numerischen Steuerung 10 beispielsweise in einem Server enthalten sein. Darüber hinaus kann jede der Funktionen der Numerik-Steuerung 10 beispielsweise mit Hilfe einer virtuellen Serverfunktion auf einer Cloud implementiert werden.
  • Darüber hinaus kann die Numerik-Steuerung 10 ein verteiltes Verarbeitungssystem sein, in dem die Funktionen der Numerik-Steuerung 10 gegebenenfalls auf eine Vielzahl von Servern verteilt sind.
  • <Modifikationsbeispiel 2>
  • Die Ausführungsform wurde oben anhand eines Beispiels beschrieben, in dem die Informationsausgabeeinheit 113 Informationen ausgibt, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses an einen Block unmittelbar vor oder nach einem Block, der einen umfassenden Vorbereitungsfunktionscode oder einen Hilfsfunktionscode umfasst, der von der Code-Verarbeitungseinheit 112 verarbeitet wird, angeben. Die Informationsausgabeeinheit 113 ist als solche jedoch nicht begrenzt. Beispielsweise kann die Informationsausgabeeinheit 113 die Informationen, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses anzeigen, an eine Anzeigeeinheit (nicht abgebildet) ausgeben, die in der numerischen Steuereinheit 10 enthalten ist. Die Anzeigeeinheit (nicht abgebildet) kann dann den Inhalt des von der Code-Verarbeitungseinheit 112 ausgeführten Prozesses anzeigen. Auf diese Weise kann der Bediener der Numerik-Steuerung 10 erkennen, welcher Prozess auf dem Quellprogramm 210 ausgeführt wurde.
  • Zusätzlich kann die Informationsausgabeeinheit 113 einen Schätzwert für die Ausführungszeit des Objekt-Programms 220 auf Grundlage des Inhalts des von der Code-Verarbeitungseinheit 112 ausgeführten Prozesses berechnen und den Schätzwert an die Anzeigeeinheit (nicht gezeigt) ausgeben. Die Anzeigeeinheit (nicht angezeigt) kann dann den von der Informationsausgabeeinheit 113 berechneten Schätzwert anzeigen. Auf diese Weise kann der Bediener der Numerik-Steuerung 10 wissen, um wie viel die Ausführungszeit durch den Optimierungsprozess des Quellprogramms 210 verkürzt werden soll.
  • <Modifikationsbeispiel 3>
  • Die Ausführungsform wurde oben anhand eines Beispiels dargestellt, bei dem die Numerik-Steuerung 10 das Objekt-Programm 220 entsprechend einer einzelnen Werkzeugmaschine 20 erzeugt. Die Numerik-Steuerung 10 ist als solche jedoch nicht begrenzt. Zum Beispiel kann die Numerik-Steuerung 10, wie in 14 dargestellt, das Objekt-Programm 220 für jede von m Werkzeugmaschinen 20A(1) bis 20A(m) (m ist eine ganze Zahl gleich oder größer als zwei), die an ein Netzwerk 50 angeschlossen sind, erzeugen. Die numerische Steuerung 10 kann dann eine numerische Steuerung (nicht gezeigt), die in jeder der Werkzeugmaschinen 20A(1) bis 20A(m) enthalten ist, mit dem entsprechenden Objekt-Programm 220 steuern, so dass das Objekt-Programm 220 darin ausgeführt wird. Es ist zu beachten, dass die Werkzeugmaschinen 20A(1) bis 20A(m) vom gleichen Typ (Version) oder von verschiedenen Typen (Versionen) sein können.
  • In einem Fall, in dem die Werkzeugmaschinen 20A(1) bis 20A(m) jedoch von verschiedenen Typen (Versionen) sind, kann die numerische Steuereinheit 10 in der Speichereinheit 200 eine Vielzahl von Optimierungseinheiten vorspeichern, die den Typen (Versionen) der Werkzeugmaschinen 20A(1) bis 20A(m) entsprechen. Außerdem kann die numerische Steuereinheit 10 in der Speichereinheit 200 eine Optimierer-Tabelle vorspeichern, die die Zuordnung zwischen den Typen (Versionen) der Werkzeugmaschinen 20A(1) bis 20A(m) und den Optimierern speichert. Dies ermöglicht es der Numerik-Steuerung 10, die Objekt-Programme 220 zu erzeugen, die gemäß den jeweiligen Typen (Versionen) der Werkzeugmaschinen 20A(1) bis 20A(m) optimiert sind.
  • Es ist zu beachten, dass jede der Werkzeugmaschinen 20A(1) bis 20A(m) der in 1 dargestellten Werkzeugmaschine 20 entspricht. Im Folgenden können die Werkzeugmaschinen 20A(1) bis 20A(m) auch als „Werkzeugmaschine 20A“ bezeichnet werden, wenn es nicht notwendig ist, die Werkzeugmaschinen 20A(1) bis 20A(m) voneinander zu unterscheiden.
  • Alternativ kann die numerische Steuerung 10 anstelle der Optimierungseinheitstabelle eine Mensch-Maschine-Schnittstelle 300 auf der Anzeigeeinheit (nicht abgebildet) der numerischen Steuerung 10 anzeigen, wie in 15 dargestellt. In diesem Fall kann die numerische Steuerung 10 den Bediener veranlassen, die Version (den Typ) der Werkzeugmaschine 20A auszuwählen, in der das Quellprogramm 210 ausgeführt werden soll, und zwar auf der Mensch-Maschine-Schnittstelle 300 über eine Eingabeeinheit (nicht abgebildet), wie beispielsweise ein Touchpanel, das in der numerischen Steuerung 10 enthalten ist.
  • 15 zeigt ein Beispiel für die Mensch-Maschine-Schnittstelle 300.
  • Wie in 15 dargestellt, weist die Mensch-Maschine-Schnittstelle 300 einen Auswahlanzeigebereich 310 zur Anzeige der Version der Werkzeugmaschine 20A, einen Anzeigebereich 320 zur Anzeige des Prozesses entsprechend der ausgewählten Version und einen Anzeigebereich 330 zur Anzeige eines zusätzlichen Prozesses entsprechend der ausgewählten Version auf.
  • Dadurch kann der Bediener der Numerik-Steuerung 10 durch Auswahl der Version der Werkzeugmaschine 20A leicht erkennen, welcher Prozess im Optimierungsprozess auf dem Quellprogramm 210 durchgeführt werden soll.
  • Es ist zu beachten, dass jede der Funktionen der Numerik-Steuerung 10 gemäß der oben beschriebenen Ausführungsform durch Hardware, Software oder eine Kombination davon implementiert werden kann. Durch Software implementiert zu werden bedeutet hier, durch einen Computer implementiert zu werden, der ein Programm liest und ausführt.
  • Das Programm kann dem Computer zugeführt werden, indem es auf einem der verschiedenen Arten von nicht vorübergehenden computerlesbaren Medien gespeichert wird. Die nicht vorübergehenden computerlesbaren Medien umfassen verschiedene Arten von greifbaren Speichermedien. Beispiele für nicht-transitorische computerlesbare Medien umfassen magnetische Speichermedien (wie flexible Platten, Magnetbänder und Festplattenlaufwerke), magnetooptische Speichermedien (wie magnetooptische Platten), Compact-Disc-Schreib-Lese-Speicher (CD-ROM), beschreibbare Compact-Disc (CD-R), wiederbeschreibbare Compact-Disc (CD-R/W) und Halbleiterspeicher (wie Masken-ROM, programmierbares ROM (PROM), löschbares PROM (EPROM), Flash-ROM und RAM). Alternativ kann das Programm dem Computer unter Verwendung verschiedener Arten von vorübergehenden computerlesbaren Medien zur Verfügung gestellt werden. Beispiele für vorübergehende computerlesbare Medien umfassen elektrische Signale, optische Signale und elektromagnetische Wellen. Solche vorübergehenden computerlesbaren Medien sind in der Lage, das Programm über einen drahtlosen Kommunikationskanal oder einen verdrahteten Kommunikationskanal wie elektrische Drähte oder optische Fasern an den Computer zu liefern.
  • Es ist zu beachten, dass das Schreiben des aufzuzeichnenden Programms auf ein Speichermedium Prozesse umfasst, die nicht unbedingt chronologisch durchgeführt werden und die parallel oder einzeln durchgeführt werden können, sowie Prozesse, die chronologisch gemäß ihrer Reihenfolge durchgeführt werden.
  • Mit anderen Worten: Die Optimierungsvorrichtung gemäß der vorliegenden Offenbarung kann verschiedene Ausführungsformen aufweisen, die die folgenden Verfassungen haben.
    • (1) Eine Optimierungsvorrichtung (numerische Steuervorrichtung 10) gemäß einem Aspekt der vorliegenden Offenbarung umfasst eine Block-Analyseeinheit 111, eine Code-Verarbeitungseinheit 112 und eine Programmerzeugungseinheit 114. Die Block-Analyseeinheit 111 analysiert einen Vorbereitungsfunktionscode und/oder einen Hilfsfunktionscode für jeden einer Vielzahl von Blöcken, die in einem Quellprogramm 210 enthalten sind. Die Code-Verarbeitungseinheit 112 führt einen Prozess an dem Vorbereitungsfunktionscode und/oder dem Hilfsfunktionscode in einer Vielzahl von aufeinanderfolgenden Blöcken aus, basierend auf einem Ergebnis der Analyse durch die Block-Analyseeinheit 111, und optimiert das Quellprogramm 210. Die Programmerzeugungseinheit 114 erzeugt das von der Code-Verarbeitungseinheit 112 optimierte Quellprogramm 210 als Objekt-Programm 220. Gemäß der Optimierungsvorrichtung ist es möglich, NC-Programmcodes, die in einem generierten Bearbeitungsprogramm enthalten sind, zu optimieren und die Operation einer Werkzeugmaschine zu beschleunigen.
    • (2) In der in (1) beschriebenen Optimierungsvorrichtung kann die Code-Verarbeitungseinheit 112 eine Lösch-Verarbeitungseinheit 1121 umfassen. Die Lösch-Verarbeitungseinheit 1121 löscht einen Vorbereitungsfunktionscode aus jedem anderen Block als dem ersten Block unter der Vielzahl von aufeinanderfolgenden Blöcken in einem Fall, in dem der Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block der gleiche ist wie ein Vorbereitungsfunktionscode in jedem anderen Block, der an den einen Block angrenzt. Dadurch kann die Optimierungsvorrichtung die Ausführungszeit des Objekt-Programms 220 verkürzen.
    • (3) In der in (1) oder (2) beschriebenen Optimierungsvorrichtung kann die Code-Verarbeitungseinheit 112 eine erste Integrations-Verarbeitungseinheit 1122 und eine zweite Integrations-Verarbeitungseinheit 1123 umfassen. Die erste Integrations-Verarbeitungseinheit 1122 integriert eine Vielzahl von Blöcken unter der Vielzahl von aufeinanderfolgenden Blöcken in einem Fall, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer Modalgruppe ist, die sich von der eines Vorbereitungsfunktionscodes in jedem anderen an den einen Block angrenzenden Block unterscheidet. Die zweite Integrations-Verarbeitungseinheit 1123 integriert eine Vielzahl von Blöcken unter der Vielzahl von aufeinanderfolgenden Blöcken in einem Fall, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer Modalgruppe ist, die sich von der eines Vorbereitungsfunktionscodes in irgendeinem anderen, an den einen Block angrenzenden Block unterscheidet, und ein Hilfsfunktionscode, der in dem an den einen Block angrenzenden Block enthalten ist, nicht unabhängig einen Befehl an den an den einen Block angrenzenden Block geben muss und keine widersprüchliche Operation darstellt. Dies ermöglicht es der Optimierungsvorrichtung, die Zykluszeit zu verkürzen.
    • (4) In der Optimierungsvorrichtung, die in einem der Punkte (1) bis (3) beschrieben ist, kann die Code-Verarbeitungseinheit 112 eine Block-Umstellungs-Verarbeitungseinheit 1124 und eine Koordinaten-Umstellungs-Verarbeitungseinheit 1125 umfassen. Die Block-Umstellungs-Verarbeitungseinheit 1124 ordnet eine Reihenfolge der Vielzahl aufeinanderfolgender Blöcke in einem Fall um, in dem ein Hilfsfunktionscode in einem Block keine Operation ist, die mit einem Vorbereitungsfunktionscode oder einem Hilfsfunktionscode, der in einem dem einen Block vorhergehenden Block enthalten ist, in Konflikt steht. Die Koordinaten-Umstellungs-Verarbeitungseinheit 1125 ordnet eine Vielzahl von Koordinatenwerten um, die durch Dimensionswörter spezifiziert sind, die unter der Vielzahl von aufeinanderfolgenden Blöcken enthalten sind, um eine Bewegungsdistanz zwischen den Koordinatenwerten oder eine Gesamtbewegungszeit in einem Fall zu minimieren, in dem ein Vorbereitungsfunktionscode im ersten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode mit festem Zyklus ist und ein Vorbereitungsfunktionscode im letzten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode zur Aufhebung des festen Zyklus ist, der dem Vorbereitungsfunktionscode im ersten Block entspricht. Dies ermöglicht es der Optimierungsvorrichtung, die Ausführungszeit des Objekt-Programms 220 und die Zykluszeit zu verkürzen.
    • (5) In der in einem der Punkte (1) bis (4) beschriebenen Optimierungsvorrichtung kann die Code-Verarbeitungseinheit 112 eine umfassende Austausch-Verarbeitungseinheit 1126 umfassen. Die Austausch-Verarbeitungseinheit 1126 ersetzt die Vielzahl aufeinanderfolgender Blöcke durch eine Kombination vorbereitender Funktionscodes von einem Vorbereitungs-Funktionscode mit festem Zyklus bis zu einem Interpolations-Vorbereitungs-Funktionscode in einem Fall, in dem ein Vorbereitungs-Funktionscode im ersten Block unter der Vielzahl aufeinanderfolgender Blöcke ein Vorbereitungs-Funktionscode mit festem Zyklus ist und ein Vorbereitungs-Funktionscode im letzten Block unter der Vielzahl aufeinanderfolgender Blöcke ein Vorbereitungs-Funktionscode zur Aufhebung des festen Zyklus ist, der dem Vorbereitungs-Funktionscode im ersten Block entspricht. Dies ermöglicht es der Optimierungsvorrichtung, die Ausführungszeit des Objekt-Programms 220 zu verkürzen.
    • (6) In der Optimierungsvorrichtung, die in einem der Punkte (1) bis (5) beschrieben ist, kann die Programmerzeugungseinheit 114 das Objekt-Programm 220 erzeugen, um das Quell-Programm 210 zu ersetzen. Dies ermöglicht es der Optimierungsvorrichtung, die Speicherkapazität der Speichereinheit 200 zu erhalten.
    • (7) In der in einem der Ansprüche (1) bis (5) beschriebenen Optimierungsvorrichtung kann die Programmerzeugungseinheit 114 das Objekt-Programm 220 als ein neues Programm erzeugen, das sich vom Quell-Programm 210 unterscheidet. Dies ermöglicht es der Optimierungsvorrichtung, das Objekt-Programm 220 für eine Vielzahl von Werkzeugmaschinen 20 auf einer Pro-Werkzeugmaschinen-Basis unter Verwendung eines einzigen Quellprogramms 210 zu erzeugen.
    • (8) Die in einem der Punkte (1) bis (7) beschriebene Optimierungsvorrichtung kann des Weiteren eine Informationsausgabeeinheit 113 umfassen. Die Informationsausgabeeinheit 113 gibt Informationen, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses angeben, an einen Block unmittelbar vor oder nach einem Block aus, der den verarbeiteten Vorbereitungsfunktionscode oder den verarbeiteten Hilfsfunktionscode umfasst. Auf diese Weise kann der Bediener der Numerik-Steuerung 10 wissen, welche Operation an jedem Block im Quellprogramm 210 durchgeführt wurde.
    • (9) Die in einem der Punkte (1) bis (8) beschriebene Optimierungsvorrichtung kann des Weiteren eine Mensch-Maschine-Schnittstelle 300 und eine Eingabeeinheit umfassen. Die Empfangseinheit erhält von einem Bediener eine Auswahl einer Werkzeugmaschine 20, in der das Quellprogramm 210 ausgeführt werden soll, unter Verwendung der Mensch-Maschine-Schnittstelle 300. Die Code-Verarbeitungseinheit 112 kann den auf dem Quellprogramm 210 auszuführenden Prozess auf Grundlage der ausgewählten Werkzeugmaschine 20A ändern. Dies ermöglicht es der Optimierungsvorrichtung, ein Objekt-Programm 220 zu erzeugen, das für die ausgewählte Werkzeugmaschine 20A optimiert ist.
    • (10) Die in einem der Punkte (1) bis (9) beschriebene Optimierungsvorrichtung kann des Weiteren eine Anzeigeeinheit umfassen. Die Anzeigeeinheit zeigt Informationen an, die den Inhalt des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses anzeigen. Dadurch kann der Bediener der Numerik-Steuerung 10 wissen, welcher Prozess auf dem Quellprogramm 210 ausgeführt wurde.
    • (11) In der in (10) beschriebenen Optimierungsvorrichtung kann die Anzeigeeinheit einen geschätzten Wert einer Ausführungszeit des erzeugten Objekt-Programms 220 auf Grundlage des von der Code-Verarbeitungseinheit 112 durchgeführten Prozesses anzeigen.
  • Dadurch kann der Bediener der Numerik-Steuerung 10 wissen, um wieviel die Ausführungszeit durch den Optimierungsprozess, der auf dem Quellprogramm 210 durchgeführt wird, verkürzt werden soll.
  • 1:
    Steuersystem
    10:
    Numerik-Steuerung
    20:
    Werkzeugmaschine
    111:
    Block-Analyseeinheit
    112:
    Code-Verarbeitungseinheit
    1121:
    Lösch-Verarbeitungseinheit
    1122:
    Erste Integrations-Verarbeitungseinheit
    1123:
    Zweite Integrations-Verarbeitungseinheit
    1124:
    Block-Umstellungs-Verarbeitungseinheit
    1125:
    Koordinaten-Umstellungs-Verarbeitungseinheit
    1126:
    Austausch-Verarbeitungseinheit
    113:
    Informationsausgabeeinheit
    114:
    NC-Programmerzeugungseinheit
    210:
    Quellprogramm
    220:
    Objekt-Programm

Claims (11)

  1. Optimierungsvorrichtung (10), umfassend: eine Block-Analyseeinheit (111), die so konfiguriert ist, dass sie einen Vorbereitungsfunktionscode und/oder einen Hilfsfunktionscode für jeden einer Vielzahl von Blöcken analysiert, die in einem ersten Programm (210) enthalten sind; eine Code-Verarbeitungseinheit (112), die so konfiguriert ist, dass sie einen Prozess an dem Vorbereitungsfunktionscode und/oder dem Hilfsfunktionscode in einer Vielzahl von aufeinander folgenden Blöcken auf Grundlage eines Ergebnisses der Analyse durch die Block-Analyseeinheit (111) durchführt und das erste Programm (210) optimiert; und eine Programmerzeugungseinheit (114), die so konfiguriert ist, dass sie das erste Programm (210), das von der Code-Verarbeitungseinheit (112) optimiert wurde, als zweites Programm (220) erzeugt.
  2. Optimierungsvorrichtung (10) nach Anspruch 1, wobei die Code-Verarbeitungseinheit (112) umfasst eine Lösch-Verarbeitungseinheit (1121), die so konfiguriert ist, dass sie einen Vorbereitungsfunktionscode aus jedem anderen Block als dem ersten Block unter der Vielzahl von aufeinander folgenden Blöcken in einem Fall löscht, in dem der Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block derselbe ist wie ein Vorbereitungsfunktionscode in jedem anderen Block, der an den einen Block angrenzt.
  3. Optimierungsvorrichtung (10) nach Anspruch 1 oder 2, wobei die Code-Verarbeitungseinheit (112) umfasst: eine erste Integrations-Verarbeitungseinheit (1122), die so konfiguriert ist, dass sie eine Vielzahl von Blöcken unter der Vielzahl von aufeinander folgenden Blöcken in einem Fall integriert, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, und der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer Modalgruppe ist, die sich von der eines Vorbereitungsfunktionscodes in jedem anderen, an den einen Block angrenzenden Block unterscheidet, und eine zweite Integrations-Verarbeitungseinheit (1123), die so konfiguriert ist, dass sie eine Vielzahl von Blöcken unter der Vielzahl von aufeinander folgenden Blöcken in einem Fall integriert, in dem ein Vorbereitungsfunktionscode in einem Block kein Code ist, der nur den einen Block betrifft, der Vorbereitungsfunktionscode in dem einen Block ein Mitglied einer Modalgruppe ist, die sich von der eines Vorbereitungsfunktionscodes in jedem anderen Block neben dem einen Block unterscheidet, und ein Hilfsfunktionscode, der in dem Block neben dem einen Block enthalten ist, nicht unabhängig einen Befehl an den Block neben dem einen Block geben muss und keine widersprüchliche Operation ist.
  4. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 3, wobei die Code-Verarbeitungseinheit (112) umfasst: eine Block-Umstellungs-Verarbeitungseinheit (1124), die so konfiguriert ist, dass sie eine Reihenfolge der Vielzahl aufeinanderfolgender Blöcke in einem Fall neu anordnet, in dem ein Hilfsfunktionscode in einem Block keine Operation ist, die mit einem Vorbereitungsfunktionscode oder einem Hilfsfunktionscode in einem dem einen Block vorhergehenden Block in Konflikt steht, und eine Koordinaten-Umstellungs-Verarbeitungseinheit (1125), die so konfiguriert ist, dass sie eine Vielzahl von Koordinatenwerten umordnet, die durch Dimensionswörter spezifiziert sind, die unter der Vielzahl von aufeinanderfolgenden Blöcken enthalten sind, um eine Bewegungsdistanz zwischen den Koordinatenwerten oder eine Gesamtbewegungszeit in einem Fall zu minimieren, in dem ein Vorbereitungsfunktionscode im ersten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Funktionscode für die Vorbereitung eines festen Zyklus ist, und ein Vorbereitungsfunktionscode im letzten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode für die Aufhebung des festen Zyklus ist, der dem Vorbereitungsfunktionscode im ersten Block entspricht.
  5. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 4, wobei die Code-Verarbeitungseinheit (112) umfasst: eine Austausch-Verarbeitungseinheit (1126), die so konfiguriert ist, dass sie die Vielzahl von aufeinanderfolgenden Blöcken durch eine Kombination von Vorbereitungsfunktionscodes von einem Vorbereitungsfunktionscode mit festem Zyklus bis zu einem Interpolations-Vorbereitungsfunktionscode in einem Fall ersetzt, in dem ein Vorbereitungsfunktionscode in dem ersten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode mit festem Zyklus ist und ein Vorbereitungsfunktionscode in dem letzten Block unter der Vielzahl von aufeinanderfolgenden Blöcken ein Vorbereitungsfunktionscode zur Aufhebung des festen Zyklus ist, der dem Vorbereitungsfunktionscode in dem ersten Block entspricht.
  6. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 5, wobei die Programmerzeugungseinheit (114) das zweite Programm (220) erzeugt, um das erste Programm (210) zu ersetzen.
  7. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 5, wobei die Programmerzeugungseinheit (114) das zweite Programm (220) als ein neues Programm erzeugt, das sich von dem ersten Programm (210) unterscheidet.
  8. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 7, des Weiteren umfassend eine Informationsausgabeeinheit (113), die so konfiguriert ist, dass sie Informationen, die den Inhalt des von der Code-Verarbeitungseinheit (112) durchgeführten Prozesses anzeigen, an einen Block unmittelbar vor oder nach einem Block ausgibt, der den verarbeiteten Vorbereitungsfunktionscode oder den verarbeiteten Hilfsfunktionscode umfasst.
  9. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 8, des Weiteren umfassend: eine Mensch-Maschine-Schnittstelle (300); und eine Eingabeeinheit, die so konfiguriert ist, dass sie von einem Bediener eine Auswahl einer industriellen Maschine (20), in der das erste Programm (210) ausgeführt werden soll, unter Verwendung der Mensch-Maschine-Schnittstelle (300) empfängt, wobei die Code-Verarbeitungseinheit (112) ändert den auf dem ersten Programm (210) auszuführenden Prozess auf Grundlage der ausgewählten Industriemaschine (20A).
  10. Optimierungsvorrichtung (10) nach einem der Ansprüche 1 bis 9, des Weiteren umfassend eine Anzeigeeinheit, die so konfiguriert ist, dass sie Informationen anzeigt, die den Inhalt des von der Code-Verarbeitungseinheit (112) durchgeführten Prozesses anzeigen.
  11. Optimierungsvorrichtung (10) nach einem der Ansprüche 10, wobei die Anzeigeeinheit einen geschätzten Wert einer Ausführungszeit des erzeugten zweiten Programms (220) basierend auf dem von der Code-Verarbeitungseinheit (112) durchgeführten Prozess anzeigt.
DE102020124479.7A 2019-10-23 2020-09-21 Optimierungsvorrichtung Pending DE102020124479A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019192896A JP7414466B2 (ja) 2019-10-23 2019-10-23 最適化処理装置
JP2019-192896 2019-10-23

Publications (1)

Publication Number Publication Date
DE102020124479A1 true DE102020124479A1 (de) 2021-06-10

Family

ID=75505845

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020124479.7A Pending DE102020124479A1 (de) 2019-10-23 2020-09-21 Optimierungsvorrichtung

Country Status (4)

Country Link
US (1) US11320800B2 (de)
JP (1) JP7414466B2 (de)
CN (1) CN112698624A (de)
DE (1) DE102020124479A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023120391A1 (en) * 2021-12-22 2023-06-29 Dmg Mori Co., Ltd. Information processing device and program that generates a first nc program and converts a second nc program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320027A (ja) 1997-05-15 1998-12-04 Fanuc Ltd 数値制御装置
JP3900485B2 (ja) * 2002-07-29 2007-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 最適化装置、コンパイラプログラム、最適化方法、及び記録媒体
US8688258B2 (en) * 2008-09-11 2014-04-01 Rockwell Automation Technologies, Inc. Method of controlling a machine tool
US8495606B2 (en) * 2008-11-14 2013-07-23 Oracle America, Inc. Redundant exception handling code removal
US8977534B2 (en) * 2011-03-15 2015-03-10 Omron Corporation Controller support apparatus, controller support program executed on the apparatus, storage medium storing the program, and method of estimating execution time of control program
JP6360002B2 (ja) 2015-05-26 2018-07-18 ファナック株式会社 加工データと加工結果を管理する数値制御装置

Also Published As

Publication number Publication date
JP2021068180A (ja) 2021-04-30
JP7414466B2 (ja) 2024-01-16
CN112698624A (zh) 2021-04-23
US20210124331A1 (en) 2021-04-29
US11320800B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
EP1480095B1 (de) Verfahren und System zum Erstellen oder Visualisieren von Steuerdatensätzen
DE102017005933B4 (de) Bearbeitungsprogrammeditiervorrichtung, Verfahren und Speichermedium
DE10297651T5 (de) Numerisches Steuerverfahren und numerisches Steuersystem
DE112006003954T5 (de) Vorrichtung mit einer numerischen Steuerung
WO2011131509A1 (de) Nc-programm und verfahren zur vereinfachten nachproduktion an einer werkzeugmaschine
DE102015012352A1 (de) Numerisches Steuersystem
DE10114811A1 (de) System und Verfahren zur Erstellung von mehrachsigen Bearbeitungs-Vorgängen an Werkstücken
DE112019001539T5 (de) Nc-programmkonvertierungsverfahren und bearbeitungssystem
DE102016013496A1 (de) Numerisches steuersystem zur koordination mit einer werkzeug- katalogdatenbank
DE112012006104T5 (de) Sequenz-Programm-Design-Hilfsvorrichtung
DE112017006457T5 (de) Bearbeitungsprogrammänderungsvorrichtung und Bearbeitungsprogrammänderungsverfahren
DE102016006202B4 (de) Numerische Steuervorrichtung zum Verwalten von Bearbeitungsdaten und Bearbeitungsergebnissen
DE102020202087A1 (de) Bildschirminhalterstellungsvorrichtung und bildschirminhalterstellungssystem
DE102020124479A1 (de) Optimierungsvorrichtung
EP0170924A1 (de) Verfahren zur Regleroptimierung für Antriebe
DE102016001634A1 (de) Numerische Steuervorrichtung
DE102014012718A1 (de) Steuereinheit für eine zentralisierte Steuerung durch Gruppieren einer Vielzahl von Wegen
DE4330218A1 (de) Synchronisationsverfahren und Vorrichtung zum Abgleich von Bearbeitungsabläufen auf einem dialogorientierten Programmiergerät zur Erstellung von Funktions- und Steuerdaten für eine CNC-Maschine mit n-Teilsystemen
DE102020116210A1 (de) Parameterverwaltungsvorrichtung und Parameterverwaltungssystem
DE102019201829A1 (de) Controller, Datenerzeugungsvorrichtung, Steuerverfahren und Steuerprogramm
DE112016006846T5 (de) Bearbeitungszeitberechnungsvorrichtung und Bearbeitungszeitberechnungsverfahren
DE102017105078B4 (de) Robotersteuerung, die einen Roboter Bearbeitungsbewegungen durchführen lässt, und Roboterprogramm-Generator
EP2367084A1 (de) Verfahren für die Konfigurierung einer Steuerungseinrichtung einer industriellen Automatisierungsanordnung und Komponente für eine industrielle Automatisierungsanordnung
DE10308815B4 (de) Verfahren zur Erzeugung und Visualisierung einer aufgabenorientierten Schrittdarstellung
WO2008113305A1 (de) Vorrichtung zur erstellung von bearbeitungsprogrammen für eine bearbeitungsmaschine

Legal Events

Date Code Title Description
R012 Request for examination validly filed