DE112022000258T5 - Numerische steuerung - Google Patents

Numerische steuerung Download PDF

Info

Publication number
DE112022000258T5
DE112022000258T5 DE112022000258.1T DE112022000258T DE112022000258T5 DE 112022000258 T5 DE112022000258 T5 DE 112022000258T5 DE 112022000258 T DE112022000258 T DE 112022000258T DE 112022000258 T5 DE112022000258 T5 DE 112022000258T5
Authority
DE
Germany
Prior art keywords
command
control
wait
control program
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112022000258.1T
Other languages
English (en)
Inventor
Yoshinori Saijo
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 DE112022000258T5 publication Critical patent/DE112022000258T5/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
    • 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
    • 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

Landscapes

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

Abstract

Eine numerische Steuerung umfasst eine erste Verarbeitungseinheit, die so konfiguriert ist, dass sie einen ersten Prozess ausführt, um festzustellen, ob ein Steuerprogramm einen Wartebefehl enthält oder nicht, eine zweite Verarbeitungseinheit, die so konfiguriert ist, dass sie einen zweiten Prozess ausführt, um festzustellen, ob eine in dem Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht, wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, und eine dritte Verarbeitungseinheit, die so konfiguriert ist, dass sie einen dritten Prozess ausführt, der sich von dem ersten Prozess und dem zweiten Prozess unterscheidet, als Reaktion auf die Ausführung des zweiten Prozesses innerhalb einer Periode des ersten Steuerzyklus.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung bezieht sich auf eine numerische Steuerung, die eine industrielle Maschine steuert.
  • TECHNISCHER HINTERGRUND
  • Eine Industriemaschine steuert eine Vielzahl von Achsen auf der Grundlage eines Steuerprogramms, das eine Vielzahl von Sätzen enthält. Auf diese Weise kann die Industriemaschine z. B. ein Werkstück bearbeiten oder montieren oder ein Förderobjekt transportieren.
  • Ein Steuerprogramm kann Steuerbefehle wie eine „IF“-Anweisung, eine „WHILE“-Anweisung und eine „GOTO“-Anweisung enthalten (siehe zum Beispiel Patentdokument 1). Diese Steuerbefehle werden zum Beispiel verwendet, um den Betrieb jeder Achse der Industriemaschine zu definieren, wenn eine vorher festgelegte Bedingung erfüllt oder nicht erfüllt ist. Da der Betrieb der Industriemaschine davon abhängt, ob die vorgegebene Bedingung erfüllt ist oder nicht, werden diese Steuerbefehle bevorzugt gegenüber einer Anzeigesteuerung usw. verarbeitet, die den Betrieb der einzelnen Achsen nicht beeinflusst.
  • Darüber hinaus kann ein Befehl in ein Steuerprogramm geschrieben werden, der bewirkt, dass mit der Ausführung eines nächsten Befehls gewartet wird, bis eine vorgegebene Bedingung erfüllt ist, indem ein Steuerbefehl verwendet wird. Ein solcher Befehl wird beispielsweise verwendet, um eine obere und eine untere Werkzeugsäule einer Drehmaschine synchron zu steuern.
  • ZITATLISTE
  • PATENTSCHRIFT
  • Patentdokument 1: JP 2017-204188 A
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • PROBLEM, DAS DURCH DIE ERFINDUNG GELÖST WERDEN SOLL
  • Wenn jedoch der Befehl, mit dem die Ausführung des nächsten Befehls abgewartet wird, bis die vorgegebene Bedingung erfüllt ist, beispielsweise mit einer „IF“-Anweisung und einer „GOTO“-Anweisung geschrieben wird, erkennt eine numerische Steuerung nicht, ob diese Befehle Wartebefehle sind oder nicht. Aus diesem Grund werden viele CPU-Ressourcen (Central Processing Unit) verbraucht, wenn wiederholt festgestellt wird, ob die vorgegebene Bedingung erfüllt ist oder nicht, und es besteht die Gefahr, dass ein Ereignis eintritt, bei dem ein Prozess wie ein Anzeigesteuerungsprozess verzögert wird usw.
  • Ein Ziel der Offenbarung ist es, eine numerische Steuerung bereitzustellen, die in der Lage ist, CPU-Ressourcen angemessen zu verteilen.
  • MITTEL ZUR LÖSUNG DES PROBLEMS
  • Eine numerische Steuerung enthält eine erste Verarbeitungseinheit, die so konfiguriert ist, dass sie einen ersten Prozess ausführt, um festzustellen, ob ein Steuerprogramm einen Wartebefehl enthält oder nicht, eine zweite Verarbeitungseinheit, die so konfiguriert ist, dass sie einen zweiten Prozess ausführt, um festzustellen, ob eine in dem Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht, wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, und eine dritte Verarbeitungseinheit, die so konfiguriert ist, dass sie einen dritten Prozess, der sich von dem ersten Prozess und dem zweiten Prozess unterscheidet, in einer verbleibenden Periode eines ersten Steuerzyklus in Reaktion auf die Ausführung des ersten Prozesses und die Ausführung des zweiten Prozesses innerhalb einer Periode des ersten Steuerzyklus ausführt.
  • WIRKUNG DER ERFINDUNG
  • Gemäß einem Aspekt der Offenbarung ist es möglich, die CPU-Ressourcen angemessen zu verteilen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
    • ist ein Diagramm, das ein Beispiel für die Hardwarekonfiguration einer Werkzeugmaschine zeigt;
    • ist ein Blockdiagramm, das ein Beispiel für die Funktionen einer numerischen Steuerung zeigt;
    • ist ein Diagramm, das ein Beispiel für ein Steuerprogramm mit einem Wartebefehl zeigt;
    • ist ein Diagramm zur Beschreibung der in jedem Kontrollzyklus ausgeführten Prozesse;
    • ist ein Flussdiagramm, das ein Beispiel für einen Analyseprozess darstellt, der von einer Programmanalyseeinheit ausgeführt wird;
    • ist ein Diagramm zur Beschreibung eines Beispiels für einen Wartebefehl in einem Steuerprogramm, das ein einzelnes System betreibt;
    • ist ein Diagramm, das ein Beispiel für ein Steuerprogramm mit einem Wartebefehl zeigt;
    • 8 ist ein Diagramm, das ein Beispiel für ein Steuerprogramm mit einem Wartebefehl zeigt; und
    • ist ein Diagramm zur Beschreibung der in jedem Kontrollzyklus ausgeführten Prozesse.
  • AUSFÜHRUNGSFORM(EN) DER ERFINDUNG
  • Eine Ausführungsform der Offenbarung wird im Folgenden unter Bezugnahme auf die Zeichnungen beschrieben. Es ist zu beachten, dass nicht alle Kombinationen von Merkmalen, die in der folgenden Ausführungsform beschrieben werden, unbedingt erforderlich sind, um das Problem zu lösen. Ferner kann auf eine detailliertere Beschreibung als notwendig verzichtet werden. Die folgende Beschreibung der Ausführungsform und die Zeichnungen sollen dem Fachmann helfen, die Offenbarung vollständig zu verstehen, und sind nicht dazu gedacht, den Umfang der Ansprüche zu begrenzen.
  • Eine numerische Steuerung ist eine Vorrichtung zur Steuerung einer Industriemaschine. Die Industriemaschine ist z. B. eine Maschine, die zur Bearbeitung eines Werkstücks und zur Beförderung eines Teils verwendet wird. Die Industriemaschine ist zum Beispiel eine Werkzeugmaschine oder ein Industrieroboter. In der vorliegenden Ausführungsform wird ein Beispiel für eine numerische Steuerung beschrieben, die für eine Werkzeugmaschine vorgesehen ist.
  • 1 ist ein Diagramm, das ein Beispiel für eine Hardwarekonfiguration der Werkzeugmaschine zeigt. Die Werkzeugmaschine 1 ist beispielsweise eine Drehmaschine, ein Bearbeitungszentrum, eine Multitasking-Maschine, eine Bohrmaschine oder ein Gewindebohrzentrum. Die Werkzeugmaschine 1 verfügt beispielsweise über eine Vielzahl von Systemen, die durch eine Vielzahl von untereinander unterschiedlichen Steuerprogrammen gesteuert werden. Die Werkzeugmaschine 1 mit mehreren Systemen ist zum Beispiel eine Drehmaschine mit zwei Systemen, einer oberen Werkzeugsäule und einer unteren Werkzeugsäule.
  • Die Werkzeugmaschine 1 umfasst eine numerische Steuerung 2, eine Eingabe-/Ausgabevorrichtung 3, einen Servoverstärker 4 und einen Servomotor 5, einen Spindelverstärker 6 und einen Spindelmotor 7 sowie eine Zusatzausrüstung 8.
  • Die numerische Steuerung 2 ist ein Gerät, das die gesamte Werkzeugmaschine 1 steuert. Die numerische Steuerung 2 umfasst eine CPU (Central Processing Unit) 201, einen Bus 202, einen ROM (Read Only Memory) 203, einen RAM (Random Access Memory) 204 und einen nichtflüchtigen Speicher 205.
  • Die CPU 201 ist ein Prozessor, der die gesamte numerische Steuerung 2 nach einem Systemprogramm steuert. Die CPU 201 liest ein im ROM 203 gespeichertes Systemprogramm usw. über den Bus 202. Darüber hinaus steuert die CPU 201 den Servomotor 5 und den Spindelmotor 7 entsprechend einem Bearbeitungsprogramm. Zum Beispiel analysiert die CPU 201 das Steuerprogramm und gibt bei jedem vorgegebenen Steuerzyklus einen Steuerbefehl an den Servomotor 5 aus.
  • Der Bus 202 ist ein Kommunikationsweg, der die jeweilige Hardware in der numerischen Steuerung 2 miteinander verbindet. Die jeweilige Hardware in der numerischen Steuerung 2 tauscht über den Bus 202 Daten aus.
  • Das ROM 203 ist ein Speichergerät oder Speichermedium, das ein Systemprogramm usw. zur Steuerung der gesamten numerischen Steuerung 2 speichert.
  • Der RAM 204 ist ein Speichergerät, das verschiedene Daten vorübergehend speichert. Der RAM 204 fungiert als Arbeitsbereich für die CPU 201 zur Verarbeitung verschiedener Daten.
  • Der nichtflüchtige Speicher 205 ist eine Speichervorrichtung, die Daten auch in einem Zustand beibehält, in dem die Stromversorgung der Werkzeugmaschine 1 ausgeschaltet ist und die numerische Steuerung 2 nicht mit Strom versorgt wird. Der nichtflüchtige Speicher 205 ist zum Beispiel ein SSD (Solid State Drive).
  • Die numerische Steuerung 2 umfasst außerdem eine Schnittstelle 206, eine Achsensteuerschaltung 207, eine Spindelsteuerschaltung 208, eine SPS (Speicherprogrammierbare Steuerung) 209 und eine E/A-Einheit 210.
  • Die Schnittstelle 206 verbindet den Bus 202 und die Eingabe-/Ausgabevorrichtung 3 miteinander. Die Schnittstelle 206 sendet zum Beispiel verschiedene von der CPU 201 verarbeitete Daten an das Ein-/Ausgabegerät 3.
  • Die Eingabe-/Ausgabevorrichtung 3 ist eine Vorrichtung, die verschiedene Daten über die Schnittstelle 206 empfängt und die verschiedenen Daten anzeigt. Darüber hinaus empfängt die Eingabe-/Ausgabevorrichtung 3 die Eingabe verschiedener Daten und sendet die verschiedenen Daten über die Schnittstelle 206 an die CPU 201. Die Eingabe-/Ausgabevorrichtung 3 umfasst eine Anzeige, wie z. B. ein LCD (Liquid Crystal Display), eine Tastatur, eine Maus usw. Darüber hinaus kann die Eingabe-/Ausgabevorrichtung 3 ein Touchpanel sein.
  • Die Achsensteuerschaltung 207 ist eine Schaltung, die den Servomotor 5 steuert. Die Achsensteuerschaltung 207 empfängt einen Steuerbefehl von der CPU 201 und gibt einen Befehl zum Antrieb des Servomotors 5 an den Servoverstärker 4 aus. Zum Beispiel sendet die Achsensteuerschaltung 207 einen Drehmomentbefehl zur Steuerung des Drehmoments des Servomotors 5 an den Servoverstärker 4.
  • Der Servoverstärker 4 erhält einen Befehl von der Achsensteuerschaltung 207 und liefert Strom an den Servomotor 5.
  • Der Servomotor 5 wird angetrieben, indem er vom Servoverstärker 4 mit Strom versorgt wird. Der Servomotor 5 ist z. B. mit einer Kugelumlaufspindel verbunden, die eine Werkzeugsäule, einen Spindelkopf und einen Tisch antreibt. Durch den Antrieb des Servomotors 5 bewegen sich Strukturen der Werkzeugmaschine 1 wie die Werkzeugsäule, der Spindelkopf und der Tisch zum Beispiel in Richtung der X-Achse, der Y-Achse oder der Z-Achse.
  • Die Spindelsteuerschaltung 208 ist eine Schaltung zur Steuerung des Spindelmotors 7. Die Spindelsteuerschaltung 208 empfängt einen Steuerbefehl von der CPU 201 und gibt einen Befehl zum Antrieb des Spindelmotors 7 an den Spindelverstärker 6 aus. Zum Beispiel sendet die Spindelsteuerschaltung 208 einen Drehmomentbefehl zur Steuerung des Drehmoments des Spindelmotors 7 an den Spindelverstärker 6.
  • Der Spindelverstärker 6 erhält einen Befehl von der Spindelsteuerschaltung 208 und versorgt den Spindelmotor 7 mit Strom.
  • Der Spindelmotor 7 wird angetrieben, indem er vom Spindelverstärker 6 mit Strom versorgt wird. Der Spindelmotor 7 ist mit einer Spindel verbunden, um die Spindel zu drehen.
  • Die SPS 209 ist ein Gerät, das ein Kontaktplanprogramm zur Steuerung der Hilfsgeräte 8 ausführt. Die SPS 209 steuert die Zusatzgeräte 8 über die E/A-Einheit 210.
  • Die E/A-Einheit 210 ist eine Schnittstelle, die die SPS 209 und die Hilfsgeräte 8 miteinander verbindet. Die E/A-Einheit 210 sendet einen von der SPS 209 empfangenen Befehl an die Zusatzeinrichtung 8.
  • Die Zusatzeinrichtung 8 ist in der Werkzeugmaschine 1 installiert, um einen Zusatzvorgang durchzuführen, wenn die Werkzeugmaschine 1 ein Werkstück bearbeitet. Bei der Hilfseinrichtung 8 kann es sich um eine um die Werkzeugmaschine 1 herum installierte Vorrichtung handeln. Bei der Zusatzeinrichtung 8 handelt es sich beispielsweise um einen Werkzeugwechsler, eine Schneidstoffeinspritzvorrichtung oder eine Antriebsvorrichtung zum Öffnen/Schließen der Tür.
  • Als nächstes wird ein Beispiel für die Funktionen der numerischen Steuerung 2 beschrieben.
  • 2 ist ein Blockdiagramm, das ein Beispiel für die Funktionen der numerischen Steuerung 2 zeigt. Die numerische Steuerung 2 umfasst eine Programmspeichereinheit 21, eine Verarbeitungszeitzuweisungseinheit 22, eine Programmanalyseeinheit 23, eine Bewegungsbefehl-Ausführungseinheit 24 und eine funktionale Verarbeitung-Ausführungseinheit 25.
  • Die Programmspeichereinheit 21 wird dadurch realisiert, dass ein von der Eingabe-/Ausgabevorrichtung 3 usw. eingegebenes Steuerprogramm im RAM 204 oder im nichtflüchtigen Speicher 205 gespeichert wird.
  • Zum Beispiel werden die Verarbeitungszeit-Zuweisungseinheit 22, die Programmanalyseeinheit 23, die Bewegungsbefehl-Ausführungseinheit 24 und die funktionale Verarbeitung-Ausführungseinheit 25 von der CPU 201 realisiert, die eine arithmetische Verarbeitung unter Verwendung eines im ROM 203 gespeicherten Systemprogramms und eines Steuerprogramms und verschiedener im nichtflüchtigen Speicher 205 gespeicherter Daten durchführt. Die CPU 201 führt die arithmetische Verarbeitung unter Verwendung des RAM 204 als Arbeitsbereich aus.
  • Die Programmspeichereinheit 21 speichert ein Steuerprogramm. Das Steuerprogramm ist ein Programm zur Bedienung der einzelnen Teile der Werkzeugmaschine 1. Das Steuerprogramm ist z. B. ein Bearbeitungsprogramm. Handelt es sich bei der Industriemaschine um einen Industrieroboter, wie z. B. einen Manipulator, ist das Steuerprogramm ein Programm zum Betrieb des Industrieroboters.
  • Die Verarbeitungszeit-Zuweisungseinheit 22 weist der Programmanalyseeinheit 23, der Bewegungsbefehl-Ausführungseinheit 24, der funktionale Verarbeitung-Ausführungseinheit 25 usw. jeweils eine Teilperiode jedes Steuerungszyklus als Verarbeitungszeit zu. Die Verarbeitungszeit-Zuweisungseinheit 22 bestimmt eine Verarbeitungszeit und eine Verarbeitungsreihenfolge für verschiedene Arten von Prozessen, die innerhalb einer Periode eines Steuerungszyklus ausgeführt werden sollen.
  • Die Verarbeitungszeit-Zuweisungseinheit 22 weist jeder Einheit eine Verarbeitungszeit zu, so dass Prozesse in absteigender Reihenfolge der Priorität unter den verschiedenen Arten von Prozessen innerhalb der Periode eines jeden Kontrollzyklus ausgeführt werden. Ein Prozess mit hoher Priorität ist z. B. ein Bewegungsprozess, der von der Bewegungsbefehl-Ausführungseinheit 24 ausgeführt wird.
  • Die Programmanalyseeinheit 23 liest ein in der Programmspeichereinheit 21 gespeichertes Steuerprogramm und führt einen Analyseprozess des Steuerprogramms durch. Die Programmanalyseeinheit 23 analysiert einen Befehl, der in jeder Zeile des Steuerprogramms steht. Wenn das Steuerprogramm beispielsweise Steuerprogramme eines ersten Systems und eines zweiten Systems enthält, analysiert die Programmanalyseeinheit 23 die Steuerprogramme des ersten Systems und des zweiten Systems.
  • Die Programmanalyseeinheit 23 umfasst eine Befehl-Bestimmungseinheit 231, eine Bewegungsbefehl-Analyseeinheit 232, eine Wartebefehl-Bestimmungseinheit 233, eine Wartebefehl-Ausführungseinheit 234 und eine Steuerbefehl-Ausführungseinheit 235. Die Befehl-Bestimmungseinheit 231 bestimmt die im Steuerprogramm beschriebenen Befehlstypen. Zu den Befehlsarten gehören z. B. ein Bewegungsbefehl und ein Steuerbefehl.
  • Der Bewegungsbefehl ist ein Befehl zum Bewegen jeder Achse der Werkzeugmaschine 1. Der Bewegungsbefehl umfasst beispielsweise einen mit „G00“ bezeichneten Positionierbefehl, einen mit „G01“ bezeichneten Linearinterpolationsbefehl und einen mit „G02“ oder „G03“ bezeichneten Kreisinterpolationsbefehl.
  • Der Steuerbefehl umfasst einen Befehl zur Steuerung des Ablaufs eines Ausführungsprozesses des Steuerprogramms, einen Befehl zur Einstellung eines Wertes in einem Speicher der numerischen Steuerung 2, einen Befehl zur Ausführung einer Operation im Speicher und einen Befehl zur Bezugnahme auf einen im Speicher gespeicherten Wert. Mit anderen Worten, der Steuerbefehl bezieht sich auf einen anderen Befehl als Befehle zur Steuerung von Operationen verschiedener Geräte, wie z. B. einen Bewegungsbefehl, einen Hilfsbefehl, einen Anzeigesteuerbefehl oder einen Kommunikationssteuerbefehl.
  • Der Steuerbefehl enthält beispielsweise einen Speicherreferenzbefehl und einen mit „#“ gekennzeichneten Speichereinstellungsbefehl. Darüber hinaus enthält der Steuerbefehl einen bedingten Verzweigungsbefehl wie eine „IF“-Anweisung, einen iterativen Befehl wie eine „FOR“-Anweisung und eine „WHILE“-Anweisung sowie einen Verzweigungsbefehl wie eine „GOTO“-Anweisung. Darüber hinaus enthält der Steuerbefehl einen Befehl für arithmetische Operationen zur Durchführung von Addition, Subtraktion, Multiplikation und Division, die durch „+“, „-“, „*“ und „f“ definiert sind. Darüber hinaus enthält der Steuerbefehl einen logischen Operationsbefehl zur Ausführung einer logischen Operation, die durch „OR“, „XOR“ und „AND“ definiert ist. Darüber hinaus enthält der Steuerbefehl einen Funktionsbefehl zur Ausführung einer Funktion, die durch „SIN“, „SQRT“ usw. definiert ist. Darüber hinaus enthält der Steuerbefehl einen Wartebefehl. Der Wartebefehl wird später im Detail beschrieben.
  • Die Bewegungsbefehl-Analyseeinheit 232 analysiert einen Bewegungsbefehl und bestimmt die Art des Bewegungsbefehls. Beispielsweise bestimmt die Bewegungsbefehl-Analyseeinheit 232, ob es sich bei dem Bewegungsbefehl um einen Positionierungsbefehl, einen Befehl zur linearen Interpolation oder einen Befehl zur Kreisinterpolation handelt. Darüber hinaus werden Koordinatenwerte, die zusammen mit dem Bewegungsbefehl angegeben werden, analysiert, um eine Bewegungsrichtung und einen Bewegungsbetrag einer Achse zu berechnen.
  • Die Wartebefehl-Bestimmungseinheit 233 bestimmt, ob der Steuerbefehl einen Wartebefehl enthält oder nicht. Mit anderen Worten, die Wartebefehl-Bestimmungseinheit 233 bestimmt, ob ein analysiertes Steuerprogramm einen Wartebefehl enthält oder nicht. Der Wartebefehl ist ein Befehl, der bewirkt, dass die Ausführung eines auf den Wartebefehl folgenden Befehls abgewartet wird, bis eine vorgegebene Bedingung nicht erfüllt ist.
  • Wie später im Detail beschrieben wird, stellt die Wartebefehl-Bestimmungseinheit 233 beispielsweise fest, dass es sich bei der „IF“-Anweisung um einen Wartebefehl handelt, wenn eine „IF“-Anweisung wiederholt in der durch einen Parameter festgelegten Anzahl gelesen wird. Das heißt, die Wartebefehl-Bestimmungseinheit 233 erkennt, dass eine „IF“-Anweisung wiederholt gelesen wird, und bestimmt, dass diese „IF“-Anweisung ein Wartebefehl ist.
  • Wenn der Steuerbefehl einen Wartebefehl enthält, wird ein auf den Wartebefehl folgender Befehl, d. h. ein Befehl, der im Anschluss an den Wartebefehl ausgeführt werden soll, erst dann ausgeführt, wenn eine vorgegebene Bedingung nicht erfüllt ist. Diese vorbestimmte Bedingung wird im Folgenden als Wartebedingung bezeichnet. Der Wartebefehl wird z. B. verwendet, wenn der Betrieb einer oberen Werkzeugsäule gestartet wird, nachdem eine untere Werkzeugsäule eine vorbestimmte Position erreicht hat, die durch ein Steuerprogramm in einer Drehmaschine mit der oberen und der unteren Werkzeugsäule festgelegt wurde. Ein spezielles Beispiel für den Wartebefehl wird später unter Bezugnahme auf die Zeichnungen im Detail beschrieben. Wenn festgestellt wird, dass das Steuerprogramm einen Wartebefehl enthält, führt die Wartebefehl-Ausführungseinheit 234 einen Prozess aus, um festzustellen, ob eine im Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht. Mit anderen Worten, wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, führt die Wartebefehl-Ausführungseinheit 234 den Wartebefehl aus.
  • Die Steuerbefehl-Ausführungseinheit 235 führt einen anderen Steuerbefehl als den Wartebefehl aus. Das heißt, die Steuerbefehl-Ausführungseinheit 235 führt einen Steuerbefehl wie eine „IF“-Anweisung, eine „WHILE“-Anweisung oder eine „GOTO“-Anweisung aus, um den Ablauf eines Ausführungsprozesses des Steuerprogramms zu steuern. Alternativ dazu führt die Steuerbefehl-Ausführungseinheit 235 einen arithmetischen Operationsbefehl, einen logischen Operationsbefehl, einen Funktionsoperationsbefehl usw. aus.
  • Die Bewegungsbefehl-Ausführungseinheit 24 führt einen Bewegungsvorgang auf der Grundlage eines von der Bewegungsbefehl-Analyseeinheit 232 analysierten Bewegungsbefehls aus. Der Bewegungsvorgang dient der Steuerung jeder Achse der Werkzeugmaschine 1. Die Bewegungsbefehl-Ausführungseinheit 24 steuert den Servomotor 5, indem sie dem Servoverstärker 4 Energie zuführt. Auf diese Weise wird der Betrieb jeder Achse der Werkzeugmaschine 1 gesteuert.
  • Die funktionale Verarbeitung-Ausführungseinheit 25 führt einen Prozess aus, der mit einer Funktion der numerischen Steuerung 2 zusammenhängt und nicht mit dem Analyseprozess des Steuerprogramms und dem Bewegungsprozess zusammenhängt. Beispielsweise umfasst der von der funktionale Verarbeitung-Ausführungseinheit 25 ausgeführte Prozess einen Anzeigeprozess zum Anzeigen eines Betriebszustands usw. der numerischen Steuerung 2, einen Steuerprogramm-Editierprozess zum Ausführen eines Editiervorgangs des Steuerprogramms und einen Kommunikationsprozess zwischen der numerischen Steuerung 2 und der Zusatzausrüstung 8.
  • Als nächstes wird ein konkretes Beispiel für einen Wartebefehl beschrieben. ist ein Diagramm, das ein Beispiel für ein Steuerprogramm mit einem Wartebefehl zeigt. Ein Steuerprogramm eines ersten Systems auf der linken Seite ist zum Beispiel ein Steuerprogramm für den Betrieb der oberen Werkzeugsäule. Ein Steuerprogramm eines zweiten Systems auf der rechten Seite ist z. B. ein Steuerprogramm für den Betrieb der unteren Werkzeugsäule. „#501=150.0“, beschrieben in der Sequenznummer N101, ist ein Speichereinstellungsbefehl zum Ersetzen eines Wertes „150.0“ in einer Variablen „#501“. „#500=#20005001“, beschrieben in der Sequenznummer N102, ist ein Speicherreferenzbefehl zum Ersetzen eines in der Variablen „#20005001“ gespeicherten Wertes in einer Variablen „#500“. In diesem Fall ist der in der Variablen „#20005001“ gespeicherte Wert beispielsweise ein Koordinatenwert, der eine Position der unteren Werkzeugsäule in Richtung der X-Achse angibt, die von einem Sensor (nicht dargestellt) während des Betriebs der unteren Werkzeugsäule erfasst wird.
  • Eine „IF“-Anweisung, die unter der laufenden Nummer N103 beschrieben wird, ist ein Steuerbefehl, mit dem festgestellt wird, ob eine Wartebedingung „#500 LT #501“ erfüllt ist oder nicht.
  • Wenn ein in der Variablen „#500“ gespeicherter Wert größer oder gleich einem in der Variablen „#501“ gespeicherten Wert ist, ist die Wartebedingung nicht erfüllt. In diesem Fall verschiebt sich eine Ausführungsposition des Steuerprogramms zur Sequenznummer N104 nach der „IF“-Anweisung. „G01Z100.0F500“, beschrieben in der Sequenznummer N104, ist ein Befehl zum Fahren des oberen Werkzeugständers auf eine Position von „Z100.0“ mit einer Vorschubgeschwindigkeit von „500“.
  • Wenn der in der Variablen „#500“ gespeicherte Wert kleiner ist als der in der Variablen „#501“ gespeicherte Wert, ist die Wartebedingung erfüllt. In diesem Fall springt die Ausführungsposition des Steuerprogramms durch eine „GOTO“-Anweisung zur Sequenznummer N102, und die in Sequenznummer N103 beschriebene „IF“-Anweisung wird erneut ausgeführt. Das heißt, die in Sequenznummer N103 beschriebene „IF“-Anweisung bewirkt, dass die Ausführung eines auf die „IF“-Anweisung folgenden Befehls solange wartet, bis eine Wartebedingung nicht erfüllt ist.
  • Das Steuerungsprogramm des zweiten Systems ist ein Programm zur Bedienung der unteren Werkzeugsäule. „G01X50.0F500“, beschrieben in der Sequenznummer N201, ist ein Befehl, um die untere Werkzeugsäule mit einem Vorschub von „500“ in eine Position von „X50.0“ zu fahren. „G01Y50.0“, beschrieben in der Sequenznummer N202, ist ein Befehl, um den unteren Werkzeughalter in eine Position von „Y50.0“ zu fahren. „G01X150.0“, beschrieben in der Sequenznummer N203, ist ein Befehl, um den unteren Werkzeughalter auf eine Position von „X150.0“ zu fahren. „M01“, beschrieben in der Sequenznummer N204, ist ein optionaler Stoppbefehl.
  • Daher verwendet das in dargestellte Steuerprogramm den Wartebefehl, um den Betrieb der oberen Werkzeugsäule zu veranlassen, zu warten, bis die Position der unteren Werkzeugsäule „X150.0“ erreicht, und betreibt die obere Werkzeugsäule in Richtung der Z-Achse, wenn die Position der unteren Werkzeugsäule „X150.0“ erreicht. Anschließend werden die in jedem Kontrollzyklus ausgeführten Prozesse beschrieben. 4 ist ein Diagramm zur Beschreibung der Vorgänge, die in jedem Steuerungszyklus von der numerischen Steuerung 2 ausgeführt werden. In 4 sind die Vorgänge dargestellt, die ablaufen, wenn die numerische Steuerung 2 das in 3 dargestellte Steuerungsprogramm ausführt.
  • Ein Diagramm auf der oberen Seite von veranschaulicht, dass eine „IF“-Anweisung wiederholt ausgeführt wird, da eine Wartebedingung noch nicht erfüllt ist. Ein Zeitdiagramm auf der unteren Seite von veranschaulicht die für jeden Kontrollzyklus ausgeführten Prozesse. Pfeile, die das Diagramm auf der oberen Seite und die Zeittabelle auf der unteren Seite verbinden, zeigen an, dass der Wartebefehl in jedem Kontrollzyklus ausgeführt wird.
  • Wie in 4 dargestellt, wird ein Bewegungsvorgang einer ersten Periode eines Steuerungszyklus zugewiesen. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist die erste Periode des einen Steuerungszyklus der Bewegungsbefehlsausführungseinheit 24 zu. Die Bewegungsbefehl-Ausführungseinheit 24 steuert den Betrieb jeder Achse der Werkzeugmaschine 1 während einer von der Verarbeitungszeit-Zuweisungseinheit 22 zugewiesenen Verarbeitungszeit.
  • Beispielsweise steuert die Bewegungsbefehl-Ausführungseinheit 24 den Betrieb jeder Achse der Werkzeugmaschine 1 auf der Grundlage eines Analyseergebnisses eines Bewegungsbefehls, der in einem vorherigen Steuerungszyklus analysiert und in einem vorbestimmten Speicher (nicht dargestellt) gespeichert wurde. Wenn das Steuerprogramm das Steuerprogramm des ersten Systems und das Steuerprogramm des zweiten Systems enthält, steuert die Bewegungsbefehl-Ausführungseinheit 24 den Betrieb jeder Achse, die im ersten System und im zweiten System enthalten ist.
  • Ein Zeitraum, der auf den Zeitraum folgt, der dem Bewegungsprozess zugeordnet ist, wird einem Analyseprozess des Steuerprogramms des ersten Systems zugeordnet. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der Programmanalyseeinheit 23 eine Verarbeitungszeit zu.
  • Die Programmanalyseeinheit 23 führt den Analyseprozess des Steuerprogramms des ersten Systems während des zugewiesenen Zeitraums durch.
  • 5 ist ein Flussdiagramm, das ein Beispiel für den von der Programmanalyseeinheit 23 ausgeführten Analyseprozess zeigt. Wenn der Analyseprozess beginnt, liest die Befehl-Bestimmungseinheit 231 das Steuerprogramm (Schritt S1) und bestimmt, ob der gelesene Befehl ein Fahrbefehl ist oder nicht (Schritt S2).
  • Wenn es sich bei dem gelesenen Befehl um einen Bewegungsbefehl handelt (Ja in Schritt S2), analysiert die Bewegungsbefehl-Analyseeinheit 232 einen Typ von Bewegungsbefehl (Schritt S3). Ein Analyseergebnis des Fahrbefehls wird z. B. in einem Speicher abgelegt (Schritt S4).
  • Wenn der Lesebefehl kein Fahrbefehl ist (Nein in Schritt S2), bestimmt die Wartebefehl-Bestimmungseinheit 233, ob der Steuerbefehl einen Wartebefehl enthält oder nicht (Schritt S5).
  • Wenn ein Steuerbefehl wiederholt die durch einen Parameter festgelegte Anzahl von Malen gelesen wird, bestimmt die Wartebefehl-Bestimmungseinheit 233, dass der Steuerbefehl einen Wartebefehl enthält. Wenn in dem in 4 dargestellten Beispiel eine in Sequenznummer N103 beschriebene „IF“-Anweisung dreimal gelesen wird, bestimmt die Wartebefehl-Bestimmungseinheit 233, dass die in Sequenznummer N103 beschriebene „IF“-Anweisung ein Wartebefehl ist.
  • Es ist zu beachten, dass die numerische Steuerung 2 eine Empfangseinheit enthalten kann, die die Eingabe eines Parameters empfängt, der die Anzahl der Fälle definiert, in denen der Wartebefehl innerhalb eines Steuerungszyklus gelesen wird. Die Empfangseinheit kann zum Beispiel die Eingabe-/Ausgabevorrichtung 3 umfassen. Darüber hinaus kann bestimmt werden, ob eine „IF“-Anweisung wiederholt ausgeführt wird oder nicht, indem festgestellt wird, ob mindestens eine Sequenznummer eines Blocks, in dem eine „IF“-Anweisung beschrieben wird, ein Sprungziel einer „GOTO“-Anweisung und eine Wartebedingung in jedem Ausführungsprozess übereinstimmen oder nicht.
  • Wenn der Steuerbefehl einen Wartebefehl enthält (Ja in Schritt S5), führt die Wartebefehl-Ausführungseinheit 234 den Wartebefehl aus (Schritt S6). Das heißt, die Wartebefehl-Ausführungseinheit 234 führt einen Prozess der Bestimmung aus, ob die im Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht.
  • Wenn die Wartebefehl-Ausführungseinheit 234 den Wartebefehl ausführt, endet der Analyseprozess des Steuerprogramms des ersten Systems, und ein Analyseprozess des Steuerprogramms des zweiten Systems wird gestartet. Mit anderen Worten, als Reaktion auf die Bestimmung, ob das Steuerprogramm einen Wartebefehl innerhalb einer Periode eines Steuerzyklus enthält oder nicht, und auf die Ausführung eines Prozesses zur Bestimmung, ob die Wartebedingung erfüllt ist oder nicht, wird in einer verbleibenden Periode des einen Steuerzyklus ein anderer Prozess als der Prozess zur Bestimmung, ob die Wartebedingung erfüllt ist oder nicht, ausgeführt. Mit anderen Worten, wenn der Wartebefehl ausgeführt wird, weist die Verarbeitungszeit-Zuweisungseinheit 22 eine verbleibende Verarbeitungszeit in dem einen Steuerungszyklus einem Prozess zu, der sich von einem Ausführungsprozess des Wartebefehls unterscheidet.
  • Wenn der Steuerbefehl keinen Wartebefehl enthält (Nein in Schritt S5), führt die Steuerbefehl-Ausführungseinheit 235 den Steuerbefehl aus (Schritt S7).
  • Wenn der Steuerbefehl endet oder die für die Analyse des Steuerprogramms des ersten Systems vorgesehene Zeitspanne abläuft, endet der Analyseprozess des Steuerprogramms des ersten Systems.
  • Hier kehrt die Beschreibung zu zurück. Der Analyseprozess des Steuerprogramms des zweiten Systems wird einem Zeitraum zugewiesen, der auf den Zeitraum folgt, der dem Analyseprozess des Steuerprogramms des ersten Systems zugewiesen wurde. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der Programmanalyseeinheit 23 eine Verarbeitungszeit zu.
  • In dem zugewiesenen Zeitraum liest die Befehl-Bestimmungseinheit 231 einen Befehl des Steuerprogramms des zweiten Systems und bestimmt einen Typ des im Steuerprogramm des zweiten Systems beschriebenen Befehls. Wenn es sich bei der Art des Befehls um einen Bewegungsbefehl handelt, analysiert die Bewegungsbefehl-Analyseeinheit 232 eine Art von Bewegungsbefehl und speichert ein Analyseergebnis beispielsweise in einem vorgegebenen Speicher. Wenn es sich bei der Art des Befehls um einen Steuerbefehl handelt, bestimmt die Wartebefehl-Bestimmungseinheit 233, ob der Steuerbefehl einen Wartebefehl enthält oder nicht.
  • Wenn der Steuerbefehl einen Wartebefehl enthält, führt die Wartebefehl-Ausführungseinheit 234 den Wartebefehl aus. Wenn der Steuerbefehl keinen Wartebefehl enthält, führt die Steuerbefehl-Ausführungseinheit 235 den Steuerbefehl aus. Das heißt, im Analyseprozess des Steuerprogramms des zweiten Systems wird der gleiche Prozess wie der Analyseprozess des Steuerprogramms des ersten Systems ausgeführt.
  • Andere Prozesse werden einem Zeitraum zugeordnet, der auf den Zeitraum folgt, der dem Analyseprozess des Steuerprogramms des zweiten Systems zugeordnet ist. Bei den anderen Prozessen handelt es sich zum Beispiel um andere Prozesse als den Bewegungsprozess, den Analyseprozess des Steuerprogramms des ersten Systems und den Analyseprozess des Steuerprogramms des zweiten Systems. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der funktionalen Verarbeitung-Ausführungseinheit 25 eine Verarbeitungszeit zu. Die funktionale Verarbeitung-Ausführungseinheit 25 führt während des zugewiesenen Zeitraums beispielsweise einen Anzeigeprozess aus.
  • Nach Beendigung eines Regelkreises werden in einem nachfolgenden Regelkreis die gleichen Prozesse wie die oben beschriebenen Prozesse ausgeführt.
  • Wie oben beschrieben, enthält die numerische Steuerung 2 eine erste Verarbeitungseinheit, die einen ersten Prozess ausführt, um festzustellen, ob ein Steuerprogramm einen Wartebefehl enthält oder nicht, eine zweite Verarbeitungseinheit, die einen zweiten Prozess ausführt, um festzustellen, ob eine in dem Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht, wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, und eine dritte Verarbeitungseinheit, die einen dritten Prozess, der sich von dem ersten Prozess und dem zweiten Prozess unterscheidet, in einer verbleibenden Periode eines ersten Steuerzyklus in Reaktion auf die Ausführung des ersten Prozesses und die Ausführung des zweiten Prozesses innerhalb einer Periode des ersten Steuerzyklus ausführt. Wenn also festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, führt die numerische Steuerung 2 den Wartebefehl innerhalb der Periode des ersten Steuerzyklus nicht wiederholt aus. Aus diesem Grund werden die Ressourcen der CPU 201 nicht für einen Wartebefehl-Ausführungsprozess verschwendet, und die Ressourcen der CPU 201 können angemessen verteilt werden. Infolgedessen kann verhindert werden, dass ein Prozess wie der Anzeigesteuerungsprozess verzögert wird. Es ist zu beachten, dass die erste Verarbeitungseinheit z. B. der Wartebefehl-Bestimmungseinheit 233 der vorliegenden Ausführungsform entspricht. In ähnlicher Weise entspricht die zweite Verarbeitungseinheit der Wartebefehl-Ausführungseinheit 234. Darüber hinaus entspricht die dritte Verarbeitungseinheit der Funktionsverarbeitungs-Ausführungseinheit 25 und jeder Einheit der Programmanalyseeinheit 23 mit Ausnahme der Wartebefehl-Ausführungseinheit 234. Darüber hinaus entspricht der erste Steuerzyklus einem beliebigen Steuerzyklus. Wenn im zweiten Prozess festgestellt wird, dass die Wartebedingung erfüllt ist, führt die zweite Verarbeitungseinheit den zweiten Prozess innerhalb des Zeitraums des zweiten Steuerzyklus nach dem ersten Steuerzyklus aus. Das heißt, wenn in dem zweiten Prozess festgestellt wird, dass die Wartebedingung erfüllt ist, können die Ressourcen der CPU 201 angemessen verteilt werden, indem der zweite Prozess in dem zweiten Steuerzyklus ausgeführt wird.
  • Wenn das Steuerprogramm eine erste bedingte Anweisung enthält und die erste bedingte Anweisung so oft gelesen wird, wie dies durch einen Parameter innerhalb einer Periode des ersten Steuerzyklus festgelegt ist, bestimmt die erste Verarbeitungseinheit, dass das Steuerprogramm einen Wartebefehl enthält. Daher ist es möglich, auf einfache Weise festzustellen, ob ein herkömmlicher Steuerbefehl einen Wartebefehl enthält oder nicht. Beachten Sie, dass die erste bedingte Anweisung beispielsweise einer „IF“-Anweisung der vorliegenden Ausführungsform entspricht. Außerdem enthält die numerische Steuerung 2 eine Empfangseinheit, die die Eingabe eines in einem Parameter eingestellten Wertes empfängt. Aus diesem Grund kann ein Bediener leicht einen Parameter in einer Fabrik einstellen.
  • In der oben beschriebenen Ausführungsform wurde ein Beispiel für die Verwendung des Wartebefehls im Steuerprogramm sowohl des ersten als auch des zweiten Systems beschrieben. Wie weiter unten beschrieben wird, kann der Wartebefehl jedoch auch in einem Steuerprogramm verwendet werden, das ein einziges System steuert.
  • ist ein Diagramm zur Beschreibung eines Beispiels für einen Wartebefehl in einem Steuerprogramm, das ein einzelnes System betreibt.
  • „M100“, beschrieben in der Sequenznummer N301, ist ein Hilfsbefehl zum Bewegen eines Werkzeugpostens in eine positive Richtung einer X-Achse.
  • „#501=150.0“, beschrieben in der Sequenznummer N302, ist ein Speichereinstellungsbefehl zum Ersetzen eines Wertes „150.0“ in einer Variablen „#501“.
  • „#500=#5001“, beschrieben in der Sequenznummer N303, ist ein Speicherreferenzbefehl zum Ersetzen eines in einer Variablen „#5001“ gespeicherten Wertes in einer Variablen „#500“. Bei dem in „#5001“ gespeicherten Wert handelt es sich beispielsweise um einen Koordinatenwert, der eine von einem Sensor (nicht abgebildet) erfasste Position der Werkzeugsäule in Richtung der X-Achse angibt.
  • Eine „IF“-Anweisung, die unter der laufenden Nummer N304 beschrieben wird, ist ein Steuerbefehl, mit dem festgestellt wird, ob eine Wartebedingung „#500 LT #501“ erfüllt ist oder nicht.
  • Wenn ein in der Variablen „#500“ gespeicherter Wert größer oder gleich einem in der Variablen „#501“ gespeicherten Wert ist, ist die Wartebedingung nicht erfüllt. In diesem Fall verschiebt sich eine Ausführungsposition des Steuerprogramms nach der „IF“-Anweisung zur Sequenznummer N305.
  • Die Sequenznummer N305 ist ein Befehl zum Anfahren der Position „Z100“ mit einer Vorschubgeschwindigkeit von „500“.
  • Wenn ein in der Variablen „#500“ gespeicherter Wert kleiner ist als ein in der Variablen „#501“ gespeicherter Wert, ist die Wartebedingung erfüllt. In diesem Fall bewirkt eine „GOTO“-Anweisung, dass die Ausführungsposition des Steuerprogramms zur Sequenznummer N302 springt, und die in Sequenznummer N303 beschriebene „IF“-Anweisung wird erneut ausgeführt. Mit anderen Worten: Die in Sequenznummer N303 beschriebene „IF“-Anweisung ist ein Wartebefehl, der die Ausführung eines auf die „IF“-Anweisung folgenden Befehls so lange verzögert, bis die Wartebedingung nicht erfüllt ist.
  • Daher verwendet das in dargestellte Steuerungsprogramm den Wartebefehl, um darauf zu warten, dass die Position der Werkzeugsäule „X150.0“ erreicht, und fährt die Werkzeugsäule mit einer Vorschubgeschwindigkeit von „500“ nach „Z100“, nachdem die Position der Werkzeugsäule „X150.0“ erreicht hat.
  • Bei der Ausführung dieses Steuerungsprogramms wird die „IF“-Anweisung nur so oft gelesen, wie ein Parameter in jedem Steuerungszyklus eingestellt ist. Die durch den Parameter festgelegte Anzahl beträgt z. B. drei Mal. Auf diese Weise kann die numerische Steuerung 2 die wiederholte Ausführung des Wartebefehls verhindern, nachdem sie festgestellt hat, ob das Steuerprogramm den Wartebefehl innerhalb eines Zeitraums von einem Steuerzyklus enthält oder nicht. Aus diesem Grund kann verhindert werden, dass Ressourcen der CPU 201 für den Wartebefehl-Ausführungsprozess übermäßig verschwendet werden, und Ressourcen der CPU 201 können angemessen verteilt werden. Infolgedessen kann verhindert werden, dass ein Prozess wie der Anzeigesteuerungsprozess verzögert wird.
  • In der oben beschriebenen Ausführungsform wurde ein Beispiel beschrieben, in dem ein Wartebefehl in einem Steuerprogramm verwendet wird, das ein einzelnes System betreibt. Darüber hinaus kann der Wartebefehl zur Überwachung von Zusatzgeräten 8 verwendet werden, wie nachstehend beschrieben.
  • ist ein Diagramm zur Beschreibung eines Beispiels für die Verwendung eines Wartebefehls zur Überwachung der Hilfsgeräte 8.
  • „#501=1.0“, beschrieben in der Sequenznummer N401, ist ein Speichereinstellungsbefehl zum Ersetzen eines Wertes „1.0“ in einer Variablen „#501“.
  • „#500=#1000“, beschrieben in der Sequenznummer N402, ist ein Speicherreferenzbefehl zum Ersetzen eines in einer Variablen „#1000“ gespeicherten Wertes in einer Variablen „#500“. Bei dem in „#1000“ gespeicherten Wert handelt es sich z.B. um Daten, die ein Zustandssignal der Zusatzeinrichtung 8 anzeigen. Zum Beispiel kann ein Wert „1.0“ in der Variablen „#1000“ ersetzt werden, wenn ein Schließvorgang einer Öffnungs-/Schließtür der Werkzeugmaschine 1 abgeschlossen ist. Eine „IF“-Anweisung, die unter der laufenden Nummer N403 beschrieben wird, ist ein Steuerbefehl, mit dem festgestellt wird, ob eine Wartebedingung „#500 NE #501“ erfüllt ist oder nicht.
  • Wenn ein in der Variablen „#500“ gespeicherter Wert mit einem in der Variablen „#501“ gespeicherten Wert übereinstimmt, ist die Wartebedingung nicht erfüllt. In diesem Fall verschiebt sich eine Ausführungsposition eines Steuerprogramms nach der „IF“-Anweisung zur Sequenznummer N404.
  • „G01Z100F500“, beschrieben in der Sequenznummer N404, ist ein Befehl, um den Werkzeughalter mit einem Vorschub von „500“ auf eine Position von „Z100“ zu fahren. Wenn der in der Variablen „#500“ gespeicherte Wert nicht mit dem in der Variablen „#501“ gespeicherten Wert übereinstimmt, ist die Wartebedingung erfüllt. In diesem Fall bewirkt eine „GOTO“-Anweisung, dass die Ausführungsposition des Steuerprogramms zur Sequenznummer N402 springt, und die in Sequenznummer N403 beschriebene „IF“-Anweisung wird erneut ausgeführt. Mit anderen Worten: Die in Sequenznummer N403 beschriebene „IF“-Anweisung ist ein Wartebefehl, der bewirkt, dass die Ausführung eines auf die „IF“-Anweisung folgenden Befehls solange wartet, bis die Wartebedingung nicht erfüllt ist.
  • Daher wartet das in dargestellte Steuerungsprogramm beispielsweise, bis die Öffnungs-/Schließtür geschlossen ist, und fährt den Werkzeughalter nach dem Schließen der Öffnungs-/Schließtür mit einer Vorschubgeschwindigkeit von „500“ in die Position „Z100“.
  • Bei der Ausführung dieses Steuerungsprogramms wird die „IF“-Anweisung nur so oft gelesen, wie ein Parameter in jedem Steuerungszyklus eingestellt ist. Die durch den Parameter festgelegte Anzahl beträgt z. B. drei Mal. Auf diese Weise kann die numerische Steuerung 2 verhindern, dass der Wartebefehl wiederholt ausgeführt wird, nachdem sie festgestellt hat, ob das Steuerprogramm den Wartebefehl innerhalb eines Zeitraums von einem Steuerzyklus enthält oder nicht. Aus diesem Grund werden die meisten Ressourcen der CPU 201 nicht für den Wartebefehl-Ausführungsprozess verschwendet, und die Ressourcen der CPU 201 können angemessen verteilt werden. Infolgedessen kann verhindert werden, dass ein Prozess wie der Anzeigesteuerungsprozess verzögert wird.
  • In der oben beschriebenen Ausführungsform wird festgestellt, ob die „IF“-Anweisung eine durch den Parameter festgelegte Anzahl von Malen gelesen wurde oder nicht, und es wird festgestellt, ob die „IF“-Anweisung ein Wartebefehl ist oder nicht. Der Wartebefehl kann jedoch, wie unten beschrieben, vordefiniert sein.
  • 8 ist ein Diagramm, das ein Beispiel für ein Steuerprogramm mit einem vordefinierten Wartebefehl zeigt. Ein Steuerprogramm eines ersten Systems auf der linken Seite von 8 ist beispielsweise ein Steuerprogramm für den Betrieb der oberen Werkzeugsäule. Ein Steuerprogramm für ein zweites System auf der rechten Seite von 8 ist beispielsweise ein Steuerprogramm für den Betrieb der unteren Werkzeugsäule. Das Steuerprogramm des ersten Systems enthält einen Wartebefehl „WAITIF“, der bewirkt, dass mit dem Betrieb der oberen Werkzeugsäule gewartet wird, bis eine Wartebedingung nicht erfüllt ist.
  • „#501=150.0“, beschrieben in der Sequenznummer N501, ist ein Speichereinstellungsbefehl zum Ersetzen eines Wertes „150.0“ in einer Variablen „#501“. „#500=#20005001“, beschrieben in der Sequenznummer N502, ist ein Speicherreferenzbefehl zum Ersetzen eines in der Variablen „#20005001“ gespeicherten Wertes in einer Variablen „#500“. In diesem Fall ist der in „#20005001“ gespeicherte Wert beispielsweise ein Koordinatenwert, der eine Position der unteren Werkzeugsäule in Richtung der X-Achse angibt, die von einem Sensor (nicht dargestellt) während des Betriebs der unteren Werkzeugsäule erfasst wird.
  • „WAITIF“ mit der Sequenznummer N503 ist ein vordefinierter Wartebefehl. Der Wartebefehl enthält eine Wartebedingung „#500 LT #501“. Mit anderen Worten: Ein auf „WAITIF“ folgender Vorgang der Sequenznummer N504 wird erst ausgeführt, wenn die Wartebedingung „#500 LT #501“ nicht erfüllt ist.
  • Wenn ein in „#500“ gespeicherter Wert kleiner ist als „#501“, ist die Wartebedingung erfüllt. In diesem Fall bewirkt eine „GOTO“-Anweisung, dass eine Ausführungsposition des Steuerprogramms zur Sequenznummer N502 springt.
  • Wenn der in „#500“ gespeicherte Wert größer oder gleich „#501“ ist, ist die Wartebedingung nicht erfüllt. In diesem Fall verschiebt sich die Ausführungsposition des Steuerprogramms nach dem Wartebefehl zur Sequenznummer N504.
  • Das Steuerungsprogramm des zweiten Systems ist ein Programm zur Bedienung der unteren Werkzeugsäule. „G01X50.0F500“, beschrieben in der Sequenznummer N601, ist ein Befehl zum Fahren des unteren Werkzeugständers auf „X50.0“ mit einem Vorschub von „500“. „G01Y50.0“, beschrieben in der Sequenznummer N602, ist ein Befehl, um den unteren Werkzeughalter auf eine Position von „Y50.0“ zu fahren. „G01X150.0“, beschrieben in der Sequenznummer N603, ist ein Befehl, um den unteren Werkzeughalter auf die Position „X150.0“ zu fahren. „M01“, beschrieben in der Sequenznummer N604, ist ein optionaler Stoppbefehl.
  • Das heißt, das in 8 dargestellte Steuerprogramm ist ein Programm, das bewirkt, dass die obere Werkzeugsäule wartet, bis die untere Werkzeugsäule „X150,0“ erreicht, und dass die obere Werkzeugsäule in Richtung der Z-Achse arbeitet, wenn die untere Werkzeugsäule „X150,0“ erreicht.
  • Im Folgenden werden die von der numerischen Steuerung 2 in jedem Steuerungszyklus ausgeführten Prozesse beschrieben.
  • 9 ist ein Diagramm zur Beschreibung der Prozesse, die von der numerischen Steuerung 2 in jedem Steuerungszyklus ausgeführt werden. In 9 sind die Vorgänge dargestellt, wenn die numerische Steuerung 2 das in 8 dargestellte Steuerprogramm ausführt. Ein Diagramm auf der oberen Seite von 9 veranschaulicht, dass ein Wartebefehl wiederholt ausgeführt wird, da eine Wartebedingung noch nicht erfüllt ist. Ein Zeitdiagramm auf der unteren Seite von veranschaulicht die für jeden Regelzyklus ausgeführten Vorgänge. Pfeile, die das Diagramm auf der oberen Seite und das Zeitdiagramm auf der unteren Seite verbinden, zeigen an, dass der Wartebefehl in jedem Kontrollzyklus ausgeführt wird. Das heißt, der Wartebefehl wird in jedem Kontrollzyklus einmal ausgeführt.
  • Wie in 9 dargestellt, wird ein Bewegungsvorgang einer ersten Periode eines Steuerungszyklus zugeordnet. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der Bewegungsbefehl-Ausführungseinheit 24 eine erste Verarbeitungszeit des einen Steuerungszyklus zu. Die Bewegungsbefehl-Ausführungseinheit 24 steuert den Betrieb jeder Achse der Werkzeugmaschine 1 während einer von der Verarbeitungszeit-Zuweisungseinheit 22 zugewiesenen Verarbeitungszeit. Beispielsweise steuert die Bewegungsbefehl-Ausführungseinheit 24 den Betrieb jeder Achse der Werkzeugmaschine 1 auf der Grundlage eines Analyseergebnisses eines Bewegungsbefehls, der in einem vorherigen Steuerungszyklus analysiert und in einem vorbestimmten Speicher (nicht dargestellt) gespeichert wurde. Wenn das Steuerprogramm ein Steuerprogramm eines ersten Systems und ein Steuerprogramm eines zweiten Systems enthält, steuert die Bewegungsbefehl-Ausführungseinheit 24 den Betrieb jeder Achse, die im ersten System und im zweiten System enthalten ist.
  • Ein Programmanalyseprozess des ersten Systems wird einem Zeitraum zugewiesen, der auf den ersten Zeitraum folgt, der dem Bewegungsprozess zugewiesen wurde. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der Programmanalyseeinheit 23 eine Verarbeitungszeit zu.
  • Während des zugewiesenen Zeitraums liest die Befehl-Bestimmungseinheit 231 einen Befehl des Steuerprogramms des ersten Systems und bestimmt eine Art von Befehl, die im Steuerprogramm des ersten Systems beschrieben ist. Wenn es sich bei der Art des Befehls um einen Bewegungsbefehl handelt, analysiert die Bewegungsbefehl-Analyseeinheit 232 eine Art von Bewegungsbefehl und speichert ein Analyseergebnis beispielsweise in einem vorgegebenen Speicher. Wenn es sich bei der Art des Befehls um einen Steuerbefehl handelt, bestimmt die Wartebefehl-Bestimmungseinheit 233, ob der Steuerbefehl einen Wartebefehl enthält oder nicht. Wenn der Steuerbefehl einen Wartebefehl enthält, führt die Wartebefehl-Ausführungseinheit 234 den Wartebefehl aus. Wenn der Steuerbefehl keinen Wartebefehl enthält, führt die Steuerbefehl-Ausführungseinheit 235 den Steuerbefehl aus.
  • Ein Programmanalyseprozess des zweiten Systems wird einem Zeitraum zugewiesen, der auf den Zeitraum folgt, der dem Programmanalyseprozess des ersten Systems zugewiesen wurde. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der Programmanalyseeinheit 23 eine Verarbeitungszeit zu. In einem Analyseprozess des Steuerprogramms des zweiten Systems wird der gleiche Prozess wie der Analyseprozess des Steuerprogramms des ersten Systems ausgeführt.
  • Andere Prozesse als der Bewegungsprozess, der Programmanalyseprozess des ersten Systems und der Programmanalyseprozess des zweiten Systems werden einem Zeitraum zugewiesen, der auf den Zeitraum folgt, der dem Programmanalyseprozess des zweiten Systems zugewiesen wurde. Das heißt, die Verarbeitungszeit-Zuweisungseinheit 22 weist der funktionale Verarbeitung-Ausführungseinheit 25 eine Verarbeitungszeit zu. Die funktionale Verarbeitung-Ausführungseinheit 25 führt in dem zugewiesenen Zeitraum z. B. einen Anzeigeprozess aus.
  • Nach Beendigung eines Regelkreises werden in einem nachfolgenden Regelkreis die gleichen Prozesse wie die oben beschriebenen Prozesse ausgeführt.
  • Wie oben beschrieben, bestimmt die erste Verarbeitungseinheit, dass das Steuerprogramm einen Wartebefehl enthält, wenn das Steuerprogramm eine zweite bedingte Anweisung enthält. Das heißt, indem beispielsweise eine „WAITIF“-Anweisung als Wartebefehl definiert wird, kann die Wartebefehl-Bestimmungseinheit 233 leicht feststellen, ob das Steuerprogramm den Wartebefehl enthält oder nicht. Wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält, kann außerdem verhindert werden, dass der Wartebefehl innerhalb einer Periode des ersten Steuerzyklus wiederholt ausgeführt wird.
  • ERKLÄRUNGEN VON BUCHSTABEN ODER ZIFFERN
  • 1
    WERKZEUGMASCHINE
    2
    NUMERISCHE STEUERUNG
    201
    CPU
    202
    BUS
    203
    ROM
    204
    RAM
    205
    NICHTFLÜCHTIGER SPEICHER
    206
    SCHNITTSTELLE
    207
    ACHSENSTEUERSCHALTUNG
    208
    SPINDELSTEUERSCHALTUNG
    209
    SPS
    210
    EIN-/AUSGABEEINHEIT
    21
    PROGRAMM-SPEICHEREINHEIT
    22
    VERARBEITUNGSZEIT-ZUWEISUNGSEINHEIT
    23
    PROGRAMMANALYSEEINHEIT
    231
    BEFEHL-BESTIMMUNGSEINHEIT
    232
    BEWEGUNGSBEFEHL-ANALYSEEINHEIT
    233
    WARTEBEFEHL-BESTIMMUNGSEINHEIT
    234
    WARTEBEFEHL-AUSFÜHRUNGSEINHEIT
    235
    STEUERBEFEHL-AUSFÜHRUNGSEINHEIT
    24
    BEWEGUNGSBEFEHL-AUSFÜHRUNGSEINHEIT
    25
    FUNKTIONALE VERARBEITUNG-AUSFÜHRUNGSEINHEIT
    3
    EIN-/AUSGABEVORRICHTUNG
    4
    SERVO-VERSTÄRKER
    5
    SERVO-MOTOR
    6
    SPINDEL-VERSTÄRKER
    7
    SPINDELMOTOR
    8
    HILFSGERÄTE
  • 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 2017204188 A [0005]

Claims (5)

  1. Eine numerische Steuerung, umfassend: eine erste Verarbeitungseinheit, die so konfiguriert ist, dass sie einen ersten Prozess zur Bestimmung, ob ein Steuerprogramm einen Wartebefehl enthält oder nicht, ausführt; eine zweite Verarbeitungseinheit, die so konfiguriert ist, dass sie einen zweiten Prozess zur Bestimmung ausführt, ob eine in dem Wartebefehl enthaltene Wartebedingung erfüllt ist oder nicht, wenn festgestellt wird, dass das Steuerprogramm den Wartebefehl enthält; und eine dritte Verarbeitungseinheit, die so konfiguriert ist, dass sie einen dritten Prozess, der sich von dem ersten Prozess und dem zweiten Prozess unterscheidet, in einer verbleibenden Periode eines ersten Steuerzyklus in Reaktion auf die Ausführung des ersten Prozesses und die Ausführung des zweiten Prozesses innerhalb einer Periode des ersten Steuerzyklus ausführt.
  2. Die numerische Steuerung nach Anspruch 1, wobei, wenn festgestellt wird, dass die Wartebedingung in dem zweiten Prozess erfüllt ist, die zweite Verarbeitungseinheit den zweiten Prozess in einer Periode eines zweiten Steuerzyklus ausführt, der auf den ersten Steuerzyklus folgt.
  3. Die numerische Steuerung nach Anspruch 1 oder 2, wobei, wenn das Steuerprogramm eine erste bedingte Anweisung enthält und die erste bedingte Anweisung eine durch einen Parameter festgelegte Anzahl von Malen innerhalb der Periode des ersten Steuerzyklus gelesen wird, die erste Verarbeitungseinheit bestimmt, dass der Wartebefehl in dem Steuerprogramm enthalten ist.
  4. Die numerische Steuerung nach Anspruch 3, die ferner eine Empfangseinheit umfasst, die so konfiguriert ist, dass sie die Eingabe eines in dem Parameter eingestellten Wertes empfängt.
  5. Die numerische Steuerung nach einem der Ansprüche 1 bis 4, wobei die erste Verarbeitungseinheit, wenn das Steuerprogramm eine zweite bedingte Anweisung enthält, feststellt, dass das Steuerprogramm den Wartebefehl enthält.
DE112022000258.1T 2021-01-18 2022-01-13 Numerische steuerung Pending DE112022000258T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021005801 2021-01-18
JP2021-005801 2021-01-18
PCT/JP2022/000960 WO2022154049A1 (ja) 2021-01-18 2022-01-13 数値制御装置

Publications (1)

Publication Number Publication Date
DE112022000258T5 true DE112022000258T5 (de) 2023-09-07

Family

ID=82448483

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112022000258.1T Pending DE112022000258T5 (de) 2021-01-18 2022-01-13 Numerische steuerung

Country Status (5)

Country Link
US (1) US20240012389A1 (de)
JP (1) JP7518212B2 (de)
CN (1) CN116685915A (de)
DE (1) DE112022000258T5 (de)
WO (1) WO2022154049A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7462849B1 (ja) 2023-03-14 2024-04-05 三菱電機株式会社 数値制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204188A (ja) 2016-05-12 2017-11-16 ファナック株式会社 条件指定による加工プログラム先読み開始機能を備えた数値制御装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6941175B2 (en) 2000-12-27 2005-09-06 Siemens Aktiengesellschaft Method of operating an industrial controller
JP3692990B2 (ja) 2001-09-27 2005-09-07 豊田工機株式会社 数値制御装置
JP5657623B2 (ja) 2012-09-21 2015-01-21 ファナック株式会社 系統間待合せ機能を有する数値制御装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204188A (ja) 2016-05-12 2017-11-16 ファナック株式会社 条件指定による加工プログラム先読み開始機能を備えた数値制御装置

Also Published As

Publication number Publication date
WO2022154049A1 (ja) 2022-07-21
JP7518212B2 (ja) 2024-07-17
CN116685915A (zh) 2023-09-01
US20240012389A1 (en) 2024-01-11
JPWO2022154049A1 (de) 2022-07-21

Similar Documents

Publication Publication Date Title
EP1480095B1 (de) Verfahren und System zum Erstellen oder Visualisieren von Steuerdatensätzen
DE69317540T2 (de) Numerische Steuerung für eine Werkzeugmaschine und Verfahren zur Fortsetzung eines Bearbeitungsprogramms nach dessen Unterbrechung
DE102008001011B4 (de) Numerische Steuervorrichtung
DE112012006379B4 (de) Numerische Steuervorrichtung
DE112013007444B4 (de) Einstell- und Justierfunktionsunterstützungseinrichtung für ein Mehrachsen-Steuerungssystem
DE102016014152B4 (de) Numerische Steuervorrichtung
DE102017116459B4 (de) Cad/cam-cnc-integriertes system
DE102017001654B4 (de) Numerische Steuervorrichtung, die eine maschinelle Bearbeitungsbedingung gemäß maschinellen Bearbeitungsinformationen ändern kann
DE69205079T2 (de) Verfahren zum wieder-in-betrieb-setzen einer stanzmaschine und numerisch gesteuertes gerät.
DE112022000258T5 (de) Numerische steuerung
DE112017006534B4 (de) Auswahlvorrichtung und Programm
DE69414658T2 (de) Verfahren zur ausführung eines bearbeitungsprogrammes
DE102019007384A1 (de) Numerische Steuerung
DE102015010654B4 (de) Numerische Steuerung zum Verkürzen der Taktzeit eines Maschinenprogramms
DE102019007382A1 (de) Numerische Steuerung
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
DE68925527T2 (de) Numerische regelvorrichtung
DE4008559C2 (de) Numerische Werkzeugmaschinensteuerung
DE102018005007B4 (de) Numerische Steuervorrichtung
DE4330220A1 (de) Dialogorientiertes Programmiergerät und Verfahren zur Erzeugung von Steuerungsprogrammen für CNC-Maschinen
DE112022000569T5 (de) Numerische steuerung
DE102009046101B4 (de) Verfahren zum Ansteuern einer Verbrauchsmaterial verbrauchenden Werkzeugmaschinenkomponente sowie Computerprogrammprodukt und Werkzeugmaschine
DE102019007719A1 (de) Numerische Steuervorrichtung
DE112021007995T5 (de) Numerische Steuerung

Legal Events

Date Code Title Description
R012 Request for examination validly filed