DE102015001526A1 - Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion - Google Patents

Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion Download PDF

Info

Publication number
DE102015001526A1
DE102015001526A1 DE102015001526.5A DE102015001526A DE102015001526A1 DE 102015001526 A1 DE102015001526 A1 DE 102015001526A1 DE 102015001526 A DE102015001526 A DE 102015001526A DE 102015001526 A1 DE102015001526 A1 DE 102015001526A1
Authority
DE
Germany
Prior art keywords
path
sequence
points
subsequence
command
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.)
Granted
Application number
DE102015001526.5A
Other languages
English (en)
Other versions
DE102015001526B4 (de
Inventor
Hiroki c/o FANUC Corporation Murakami
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 DE102015001526A1 publication Critical patent/DE102015001526A1/de
Application granted granted Critical
Publication of DE102015001526B4 publication Critical patent/DE102015001526B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical 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 interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • 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/19Numerical 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 positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • 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/41Numerical 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 interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • 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/34Director, elements to supervisory
    • G05B2219/34095Look ahead segment calculation
    • 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/34Director, elements to supervisory
    • G05B2219/34101Data compression, look ahead segment calculation, max segment lenght
    • 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/42Servomotor, servo controller kind till VSS
    • G05B2219/42338Position tracking control

Landscapes

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

Abstract

Eine numerische Steuerung extrahiert eine Teilfolge von einer von einem Bearbeitungsprogramm erhaltenen Folge von Befehlspunkten derart, dass derselbe Pfad unabhängig davon erstellt werden kann, ob die Folge von Befehlspunkten von der vorgegebenen Richtung aus oder von der umgekehrten Richtung aus extrahiert wird. Ein komprimierter Pfad, der durch eine Gerade oder eine Kurve approximiert wird, wird derart erstellt, dass der komprimierte Pfad durch dieselbe Gerade oder Kurve unabhängig davon approximiert werden kann, ob der komprimierte Pfad aus der extrahierten Teilfolge in einer vorgegebenen Richtung oder in der umgekehrten Richtung erstellt wird.

Description

  • ALLGEMEINER STAND DER TECHNIK
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine numerische Steuerung, die einen Verarbeitungspfad basierend auf einer Abfolge von Befehlspunkten erstellt, die von einem Bearbeitungsprogramm in Bezug auf eine Werkzeugmaschine erfasst werden, wobei die Werkzeugmaschine mehrere Antriebsachsen mit mindestens zwei geradlinigen (linearen) Achsen aufweist, den Pfad interpoliert und die Antriebsachsen an die interpolierte Position fährt und dabei eine Bearbeitung ausführt.
  • 2. Beschreibung des Stands der Technik
  • Die japanische Offenlegungsschrift Nr. 10-049215 offenbart eine Technik zum Approximieren eines Pfads, der als Punktfolge durch einen geradlinigen Pfad vorgegeben wird, und zum Ausführen einer Bearbeitung entlang des geradlinigen Pfads.
  • Die japanische Offenlegungsschrift Nr. 2013-171376 offenbart eine Technik zum Approximieren eines Pfads, der als Punktabfolge durch die kleinstmögliche Anzahl von Kurven vorgegeben wird, derart, dass eine Abweichung von einem Befehlspunkt innerhalb eines eingestellten Grenzwerts (Toleranz) liegt, und zum Antreiben eines Servomotors entlang dieser Kurven, wodurch eine Bearbeitung ausgeführt wird.
  • Eine Technik zur Approximation einer Folge von mehreren Befehlspunkten, die einen breiten Bereich abdecken, durch eine Gerade oder eine Kurve, deren Abstand von den Befehlspunkten innerhalb eines zulässigen Grenzwerts (Toleranz) liegt, wird Komprimierung einer Befehlspunktfolge genannt. Mit mehreren Befehlspunkten, die durch eine Kurve dargestellt werden, kann die Kurve, die der einen breiten Bereich abdeckenden Befehlspunktfolge entspricht, erstellt werden, wobei eine Verzögerung aufgrund einer unzureichenden Fähigkeit, eine Bearbeitungskurve einer numerischen Steuerung zu erstellen, und aufgrund einer Interpolation der Bearbeitungskurve selbst dann reduziert werden kann, wenn die Intervalle in der Befehlspunktfolge sehr klein sind.
  • Bei den oben beschriebenen, in der japanischen Offenlegungsschrift Nr. 10-049215 und der japanischen Offenlegungsschrift Nr. 2013-171 376 offenbarten Techniken haben die Komprimierungsverfahren Richtungsabhängigkeitseigenschaften, das heißt, das Komprimierungsergebnis hängt davon ab, aus welcher Richtung die Punktabfolge komprimiert wird. Aus diesem Grund haben die oben beschriebenen Techniken dahingehend ein Problem, dass wenn der Befehl in der Rückwärtsrichtung gegeben wird, dasselbe Ergebnis nicht gewährleistet werden kann, was einen ungleichmäßigen Pfad bei der Verarbeitung mit einem Wechselpfad verursacht.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die vorliegende Erfindung befasst sich mit den Problemen der oben beschriebenen Techniken des Stands der Technik mit dem Ziel, eine numerische Steuerung bereitzustellen, die eine Befehlspfad-Komprimierungsfunktion aufweist, mit der bei der Komprimierung einer Folge von Befehlspunkten mit den oben beschriebenen Techniken des Stands der Technik dasselbe Komprimierungsergebnis von den denselben Befehlspunkten erhalten werden kann, während die Folge von Befehlspunkten sequenziell gelesen wird, unabhängig davon, ob die Folge von Befehlspunkten in der Vorwärtsrichtung oder in der Rückwärtsrichtung vorliegt.
  • Die vorliegende Erfindung betrifft eine numerische Steuerung, die eine Werkzeugmaschine steuert. Die Werkzeugmaschine besteht aus mehreren Antriebsachsen mit mindestens zwei geradlinigen Achsen, die eine Bearbeitung an einem auf einem Tisch befestigten Werkstück ausführen. Die numerische Steuerung umfasst eine Befehlsleseeinheit, eine Teilfolgenextraktionseinheit, eine Punktfolgenkomprimierungseinheit, eine Interpolationseinheit und eine Motorantriebseinheit. Die Befehlsleseeinheit liest einen Befehlspfad, der eine Folge von mehreren Befehlspunkten ist, und einen Befehl einer relativen Vorschubgeschwindigkeit des Werkstücks und eines Werkzeugs. Die Teilfolgenextraktionseinheit extrahiert eine Teilfolge von der Folge von Befehlspunkten, um die Folge von Befehlspunkten derart aufzuteilen, dass derselbe Pfad unabhängig davon erstellt werden kann, ob die gelesenen Befehlspunkte von der Befehlsleseeinheit von einer vorgegebenen Richtung oder einer der vorgegebenen Richtung entgegengesetzten Richtung extrahiert werden. Die Punktfolgenkomprimierungseinheit erstellt einen komprimierten Pfad, der durch eine Gerade oder eine Kurve approximiert wird, deren Abstand zu jedem Befehlspunkt in der extrahierten Teilfolge derart innerhalb einer voreingestellten Toleranz liegt, dass der komprimierte Pfad durch dieselbe Gerade oder Kurve unabhängig davon approximiert werden kann, ob der komprimierte Pfad aus der extrahierten Teilfolge in einer vorgegebenen Richtung oder in einer zur vorgegebenen Richtung entgegengesetzten Richtung erstellt wird. Die Interpolationseinheit erhält die Position jeder Achse für jeden Interpolationszyklus derart, dass sich das Werkzeug mit der vorgegebenen relativen Vorschubgeschwindigkeit auf dem durch die Punktfolgenkomprimierungseinheit komprimierten Pfad bewegen kann. Zudem treibt Die Motorantriebseinheit einen Motor einer jeden Achse an, um diese an die durch die Interpolationseinheit für jede Achse erhaltende Position zu bewegen.
  • Die numerische Steuerung kann ferner eine Teilungsreferenzlängen-Einstelleinheit umfassen, die dazu ausgebildet ist, eine Teilungsreferenzlänge einzustellen, die dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon bestimmt wird, ob eine Länge zwischen Befehlspunkten innerhalb der Teilungsreferenzlänge liegt oder nicht.
  • Die numerische Steuerung kann ferner eine Teilungsreferenzwinkel-Einstelleinheit umfassen, die dazu ausgebildet ist, einen Teilungsreferenzwinkel einzustellen, der dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon ausgeführt wird, ob ein Winkel, der durch Geraden, die Befehlspunkte verbinden, gebildet wird, innerhalb des Teilungsreferenzwinkels liegt oder nicht.
  • Der durch die Punktfolgekomprimierungseinheit komprimierte Pfad kann ein Pfad sein, der mehrere Punkte in der Teilfolge mit einer Geraden verbindet.
  • Der durch die Punktfolgekomprimierungseinheit komprimierte Pfad kann ein Kurvenpfad sein, der durch mehrere Punkte in der Teilfolge läuft.
  • Die vorliegende Erfindung kann eine numerische Steuerung bereitstellen, die eine Befehlspfad-Komprimierungsfunktion aufweist, mit der bei der Komprimierung einer Folge von Befehlspunkten dasselbe Komprimierungsergebnis erhalten werden kann, während die Folge von Befehlspunkten sequenziell gelesen wird, unabhängig davon, ob die Folge von Befehlspunkten in der Vorwärtsrichtung oder in der Rückwärtsrichtung vorliegt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Aufgaben und Merkmale der vorliegenden Erfindung werden durch die folgende Beschreibung von Ausführungsbeispielen mit Bezug auf die begleitenden Zeichnungen deutlicher werden, wobei:
  • 1 ein Diagramm ist, das eine Folge von Befehlspunkten zeigt, die durch Eingabe einer Folge von Befehlspunkten {P0, P1, ..., Pn} gebildet wird, wobei P0 ein Startpunkt und Pn ein Endpunkt ist;
  • 2 ein Diagramm ist, das zeigt, dass ein Vektor von Pm – 1 bis Pm durch vm dargestellt wird und ein Winkel, der durch vm – 1 und vm gebildet wird, durch am dargestellt wird;
  • 3 ein Diagramm ist, das zeigt, dass ein Vektor von Qc bis Qd durch Vc, d dargestellt wird;
  • 4 ein Diagramm ist, das zeigt, dass ein in 1 gezeigter Pfad {P0, P1, ..., Pn} als Ergebnis einer Komprimierung durch Geraden in einer Anzahl von gleich oder kleiner als n dargestellt wird;
  • 5 ein Diagramm ist, das zeigt, dass ein in 1 gezeigter Pfad {P0, P1, ..., Pn} als Ergebnis einer Komprimierung durch eine Kurve, die durch eine Anzahl von Befehlspunkten läuft, dargestellt wird;
  • 6 ein Funktionsblockdiagramm ist, das ein Beispiel einer numerischen Steuerung gemäß der vorliegenden Erfindung erklärt;
  • 7 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Teilfolgenextraktionseinheit (Ausführungsform 1) in 6 ausgeführten Teilfolgenextraktionsverarbeitung zeigt;
  • 8 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Punktfolgenkomprimierungseinheit (Ausführungsform 1) in 6 ausgeführten Punktfolgenkomprimierungsverarbeitung zeigt; und
  • 9 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Punktfolgenkomprimierungseinheit (Ausführungsform 2) in 6 ausgeführten Punktfolgenkomprimierung zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • <Ausführungsform 1>
  • Es wird ein Beispiel beschrieben, in dem eine Folge von eingegeben Befehlspunkten durch approximierte Geraden dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird. Wie in 1 gezeigt, wird ein Beispiel betrachtet, in dem eine Folge von Befehlspunkten {P0, P1, ..., Pn}, wobei P0 ein Startpunkt und Pn (n ≥ 1) ein Endpunkt ist, als ein NC-Programm vorgegeben wird.
  • Die Folge von Befehlspunkten {P0, P1, ..., Pn} wird durch eine Befehlsleseeinheit von einer vorgegebenen Richtung her extrahiert und durch eine Teilfolgenextraktionseinheit in Teilfolgen aufgeteilt, und die Teilfolgen werden an eine Punktfolgenkomprimierungseinheit weitergeleitet. Die Punktfolgenkomprimierungseinheit approximiert die durch die Teilfolgenextraktionseinheit aufgeteilten Teilfolgen durch Geraden. Die Teilfolgenextraktionseinheit und die Punktfolgenkomprimierungseinheit werden nachfolgend beschrieben.
  • [Teilfolgenextraktionseinheit]
  • Die Teilfolgenextraktionseinheit liest sequenziell die Folge von Befehlspunkten {P0, P1, ..., Pn}, um eine Teilfolge zu extrahieren und leitet die so extrahierten Teilfolge an die Punktfolgenkomprimierungseinheit weiter. Der Ablauf dieses Vorgangs wird nachfolgend beschrieben.
  • In einer Leseschleife der Folge von Befehlspunkten werden die Befehlspunkte sequenziell von P0 aus gelesen (Vorschau) und die Vorschau wird wiederholt, bis sie zufolge von Abstandsbedingungen zwischen Befehlspunkten und einem Winkel gestoppt wird. Wenn die Vorschau gestoppt ist, wird die so gelesene Punktfolge als Teilfolge an die Punktfolgenkomprimierungseinheit weitergeleitet, und falls noch ein Teil der Folge von Befehlspunkten übrig bleibt, wiederholt die Teilfolgenextraktionseinheit die Verarbeitung mit den verbleibenden Befehlspunkten der Folge von Befehlspunkten als Eingabe. Ein in der Leseschleife der Folge von Befehlspunkten gelesener Befehlspunkt soll Pm (0 ≤ m ≤ n) sein.
  • Wenn, wie in 2 dargestellt, ein Vektor von Pm – 1 bis Pm vm ist und ein durch vm – 1 und vm gebildeter Winkel am ist, wird vm wie in der nachfolgend beschriebenen Gleichung (1) dargestellt und am wird wie in der nachfolgend beschriebenen Gleichung (2) dargestellt.
  • Figure DE102015001526A1_0002
  • (A-1) Wenn m = 0:
  • P0 wird gelesen.
  • Vorschau wird mit m = 1 fortgesetzt.
  • (A-2) Wenn m = 2:
  • P1 wird gelesen und v1 wird aus P0 und P1, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (3) berechnet. v1 = P1 – P0 (3)
  • Ist die Länge von v1 gleich oder kleiner als eine Teilungsreferenzlänge vmax, die durch eine Teilungsreferenzlängen-Einstelleinheit voreingestellt wird, dann wird die Vorschau fortgesetzt. Insbesondere wird, wenn die nachfolgende Gleichung (4) erfüllt wird, die Vorschau fortgesetzt, und wenn die Gleichung (4) nicht erfüllt wird, wird die Vorschau gestoppt. |v1| ≤ νmax (4)
  • Wenn die Vorschau gestoppt ist, wird {P0, P1} als Teilfolge extrahiert und an die Punktfolgenkomprimierungseinheit weitergeleitet. Wenn n ungleich 1 ist, wird die Verarbeitung der Teilfolgenextraktionseinheit an der verbleibenden Folge von Befehlspunkten {P1, ...Pn} als {P'0, P'1..., P'n – 1} nochmals ausgeführt.
  • (A-3) Wenn m ≥ 2:
  • Pm wird gelesen und vm wird aus Pm – 1 und Pm, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (5) berechnet. vm = Pm – Pm-1 (5)
  • Weiterhin wird am aus vm – 1 und vm, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (6) berechnet.
  • Figure DE102015001526A1_0003
  • Ist die Länge von vm gleich oder kleiner als vmax und cos(am) ist gleich oder größer als der Cosinus eines Teilungsreferenzwinkels cosmax, dann wird die Vorschau fortgesetzt. Der Teilungsreferenzwinkel wird durch eine Teilungsreferenzwinkel-Einstelleinheit voreingestellt. Insbesondere wird, wenn die nachfolgende Gleichung (7) und die Gleichung (8) erfüllt werden, die Vorschau fortgesetzt, und wenn die Gleichung (7) oder Gleichung (8) nicht erfüllt wird, wird die Vorschau gestoppt. |vm| ≤ νmax (7) cos(am) ≥ cosmax (8)
  • Wird die Vorschau aufgrund der oben beschriebenen Gleichung (7) oder Gleichung (8) gestoppt, dann wird {P0, ..., Pm – 1} als eine Teilfolge extrahiert und an die Punktfolgenkomprimierungseinheit weitergeleitet. Die Verarbeitung der Teilfolgenextraktionseinheit wird vom Start aus an den verbleibenden Befehlspunkten der Folge von Befehlspunkten {Pm – 1, ..., Pn} als Eingabepunktfolge {P'0, ..., P'n – m + 1} ausgeführt.
  • Wenn m = n, dann wird {P0, ..., Pn} als eine Teilfolge extrahiert, und die Verarbeitung der Teilfolgenextraktionseinheit ist abgeschlossen.
  • In diesem Vorgang werden unabhängig davon, ob die Folge von Befehlspunkten {P0, P1, ..., Pn} in dieser Reihenfolge vorgegeben wird oder in der umgekehrten Reihenfolge, das heißt in der Reihenfolge {Pn, Pn – 1, ..., P0} vorgegeben wird, die Bestimmungen der Gleichungen (4), (7) und (8) dieselben sein.
  • In diesem Fall wird eine Teilfolge mittels einer Teilungsreferenzlänge und eines Teilungsreferenzwinkels extrahiert. Es können jedoch auch andere Kriterien verwendet werden, solange die Kriterien nicht von der vorgegebenen Richtung abhängen. Beispielsweise kann der Bereich eines aus drei benachbarten als Scheitelpunkte dienenden Befehlspunkten gebildeten Dreiecks als Kriterium verwendet werden, oder es kann die Krümmung des umschreibenden Kreises des Dreiecks als ein Kriterium verwendet werden.
  • [Punktfolgenkomprimierungseinheit]
  • Eine Teilfolge {Q0, Q1, ..., Qs}, die S + 1 Punkte (s ≥ 1) enthält und von der Teilfolgenextraktionseinheit erhalten wurde, wird komprimiert. In diesem Vorgang bedeutet Komprimierung das Approximieren einer Teilfolge durch eine Anzahl von Kurven oder Geraden, die kleiner als die Anzahl von Punkten in der Teilfolge ist. Diese Punkte in der Teilfolge werden alle von Q0 bis Qs durch die Teilfolgenextraktionseinheit gelesen und müssen somit nicht sequenziell gelesen werden. In diesem Fall soll das Komprimierungsergebnis eine Gerade sein. Das Komprimierungsergebnis wird als Pfad Path(t), der als eine Funktion eines Parameters t dient, an eine Interpolationseinheit weitergeleitet. t ändert sich von 0 zu 1. Wenn ein Pfad, der von einem Punkt Qc zu einem Punkt Qd durch eine Gerade verbindet, unter Verwendung von t dargestellt wird, dann wird der Pfad durch Line[c, d](t) dargestellt, was durch die nachfolgende Gleichung (9) dargestellt wird. Line[c, d](t) = (1 – t)Qc + tQd (9)
  • (B-1) Wenn s = 1:
  • Ein Pfad, der Q0 mit Q1 verbindet, und durch nachfolgende Gleichung (10) dargestellt wird, wird als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
  • Path(t) = Line[0, 1](t) (10)
  • (B-2) Wenn s > 1:
  • Wie in 3 dargestellt sollen Qc und Qd Teilpunkte sein. Ein Vektor von Qc nach Qd wird durch Vc, d dargestellt. Der Vektor Vc, d wird durch nachfolgende Gleichung (11) dargestellt. Vc,d = Qd – Qc (11)
  • Ein Einheitsvektor in der Richtung von Vc, d wird durch Ec, d dargestellt. Der Einheitsvektor Ec, d wird durch die nachfolgende Gleichung (12) dargestellt.
  • Figure DE102015001526A1_0004
  • Punkte mit Ausnahme der beiden Enden der Teilfolge sollen Qq (0 < q < s) sein.
  • Ein durch V0, q und V0, s gebildeter Winkel θ wird durch nachfolgende Gleichung 13 berechnet.
  • Figure DE102015001526A1_0005
  • Ein Abstand Lq zwischen einem Pfad Line[0, s](t), der Q0 bis Qs mit einer Geraden und Qq (0 < q < s) verbindet, wird durch nachfolgend beschriebene Gleichung (14) dargestellt. Lq = |V0,q|sinθ (14)
  • Jeder Abstand Lq wird mit einer voreingestellten Toleranz T verglichen und es wird eine Bestimmung dahingehend gemacht, ob ein q, das die Gleichung (15) erfüllt, vorhanden ist. Lq > T (15)
  • Wenn kein die Gleichung (15) erfüllendes q vorhanden ist, wird Path(t) = Line[0, s](t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
  • Wenn hingegen ein die oben beschriebene Gleichung (15) erfüllendes q vorhanden ist, wird das q, das den größten Lq ausmacht, extrahiert, und die Teilfolge wird vor und hinter diesem q geteilt. Insbesondere, wenn Lq am größten für q = w ist, dann wird die eingegeben Teilfolge {P0, P1, ..., Ps} in zwei Teilfolgen {P0, ..., Pw} und {Pw, ..., Ps} geteilt. Die Verarbeitung der Punktfolgekomprimierungseinheit wird rekursiv mit allen so als Eingaben geteilten Teilfolgen ausgeführt.
  • Bei diesem Vorgang werden unabhängig davon, ob die eingegebene Teilfolge {Q0, Q1, ..., Qs} in dieser Reihenfolge oder in umgekehrter Reihenfolge, das heißt in der Reihenfolge {Qs, Qs – 1, ..., Q0}, eingegeben wird, die Ergebnisse aus dem eine Gerade erstellenden Verfahren (Gleichungen(9)) und der Toleranzbestimmung (Gleichung (15)) dieselben sein.
  • Durch die oben beschriebenen Einheiten (die Teilfolgenextraktionseinheit und die Punktfolgenkomprimierungseinheit) wird der in 1 dargestellte Pfad {P0, P1, ..., Pn} durch Geraden in einer Anzahl gleich oder kleiner als n dargestellt, wie in 4 gezeigt. Die schwarzen Punkte in 4 stellen die Endpunkte einer durch Komprimierung gebildeten Geraden dar, und die weißen Punkte stellen Befehlspunkte mit Ausnahme der Endpunkte dar. Der endgültige Pfad soll ein geradliniger Pfad sein, der die schwarzen Punkte verbindet, und die weißen Punkte sollen Punkte sein, deren Abstand von dem geradlinigen Pfad innerhalb der Toleranz T liegt. Mit dieser Konfiguration kann die durch Interpolation verursachte Belastung reduziert werden, während der ursprünglich vorgegebene Pfad innerhalb der Toleranz gehalten wird, und eine unnötige Verzögerung aufgrund einer sehr kleinen Ecke kann vermieden werden, wodurch eine Hochgeschwindigkeitsbearbeitung erwartet werden kann.
  • Obenstehend wurde ein Beispiel beschrieben, in dem die Folge von Befehlspunkten in der Reihenfolge {P0, P1, ..., Pn} eingegeben wird. Mit der vorliegenden Technik wird derselbe Pfad wie in 4 selbst dann erhalten, wenn die Folge von Befehlspunkten in der umgekehrten Reihenfolge, das heißt, in der Reihenfolge {Pn, Pn – 1, ...P0}, eingegeben wird. Dies liegt daran, dass die Teilungspunktbestimmungen (Gleichungen (4), (7) und (8)), die durch die Teilfolgenextraktionseinheit ausgeführt werden, und das Geradenerstellungsverfahren (Gleichung (9)) und die Toleranzbestimmung (Gleichung (15)), die durch die Punktfolgenkomprimierungseinheit ausgeführt werden, alle Techniken sind, die von der vorgegebenen Richtung von Befehlspunkten unabhängig sind. Wenn Formähnlichkeit zwischen zwei benachbarten Kurven gefordert wird, wie im Falle einer Auswärtsstrecke und einer Rückstrecke in einem Wechselpfad, wird mit dieser Konfiguration erwartet, dass eine Ungleichmäßigkeit in dem Pfad minimiert wird.
  • <Ausführungsform 2>
  • In der oben beschriebenen Ausführungsform 1 wurde ein Beispiel beschrieben, in dem eine Folge von eingegebenen Befehlspunkten durch approximierte Geraden dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird. Die Ausführungsform 2 wird ein Beispiel beschreiben, in dem eine Folge von eingegebenen Befehlspunkten durch approximierte Kurven dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird.
  • Als Ausführungsform 1 wird ein Beispiel betrachtet, in dem eine Folge von Befehlspunkten {P0, P1, ..., Pn}, wobei P0 ein Startpunkt und Pn (n ≥ 1) ein Endpunkt ist, als ein NC-Programm vorgegeben wird. Die Folge von Befehlspunkten {P0, P1, ..., Pn} wird durch eine Befehlsleseeinheit von einer vorgegebenen Richtung her extrahiert und durch eine Teilfolgenextraktionseinheit in Teilfolgen aufgeteilt, und die Teilfolgen werden an eine Punktfolgenkomprimierungseinheit weitergeleitet. Die Punktfolgenkomprimierungseinheit approximiert jede der durch die Teilfolgenextraktionseinheit aufgeteilten Teilfolgen durch eine Kurve. Die Beschreibung der Teilfolgen Extraktionseinheit ist dieselbe wie in der Ausführungsform 1 und wird deshalb weggelassen. Die Einzelheiten der Punktfolgenkomprimierungseinheit in der Ausführungsform 2 werden nachfolgend beschrieben.
  • [Punktfolgenkomprimierungseinheit]
  • Eine Teilfolge {Q0, Q1, ..., Qs}, die S + 1 Punkte (s ≥ 1) enthält und von der Teilfolgenextraktionseinheit erhalten wurde, wird komprimiert. Diese Punkte in der Teilfolge werden alle von Q0 bis Qs durch die Teilfolgenextraktionseinheit gelesen und müssen somit nicht sequenziell gelesen werden. Obwohl das Komprimierungsergebnis in diesem Fall ein Kurvenpfad einer dreidimensionalen B-Spline-Kurve ist, kann eine andersartige Kurve, wie eine NURBS-Kurve oder eine kreisbogenförmige Kurve verwendet werden. Das Komprimierungsergebnis wird als Pfad Path(t), der als eine Funktion eines Parameters t dient, an eine Interpolationseinheit weitergeleitet. t ändert sich von 0 zu 1.
  • In der Teilfolge {Q0, Q1, ..., Qs} ist ein Punkt Q0 ein Startpunkt und ein Punkt Qs ist ein Endpunkt. Ein Kurvenpfad einer B-Spline-Kurve, die durch i Punkte Qe1, ..., Qei läuft, soll B-Spline[0, e1, e2, ..., eis](t) sein. An diesem Punkt gilt 1 ≤ i ≤ s – 1. Der Kurvenpfad wird durch die nachfolgende Gleichung (16) beschrieben.
  • Figure DE102015001526A1_0006
  • Nj, 3(t) ist eine Basisfunktion der B-Spline-Kurve und Rj ist ein Kontrollpunkt der B-Spline-Kurve. Diese B-Spline-Kurve wird derart erstellt, dass die Tangentenrichtungsvektoren am Startpunkt Q0 beziehungsweise am Endpunkt Qs die nachfolgend beschriebenen Gleichungen (17) und (18) erfüllen. d / dtBSpline[0, e1, e2, ..., ei, s](0) = 3(Q1 – Q0) (17) d / dtBSpline[0, e1, e2, ..., ei, s](1) = 3(Qs – Qs-1) (18)
  • Die so erstellte B-Spline-Kurve wird durch die nachstehend beschriebene Gleichung (19) dargestellt und wird selbst dann derselbe Kurvenpfad sein, wenn der Startpunkt Q0, der Endpunkt Qs und die durchlaufenden Punkte Qe1, ..., Qei in umgekehrter Reihenfolge eingegeben werden. BSpline[0, e1, e2, ..., ei, s](t) = BSpline[s, ei, ei-1, ..., e1, 0](1 – t) (19)
  • Das Verfahren zur Erstellung einer wie oben beschriebenen B-Spline-Kurve ist eine bekannte Technik, und auf dessen Beschreibung wird daher verzichtet.
  • (C-1) Wenn s = 1:
  • Ein Pfad der von Q0 bis Q1 mit einer B-Spline-Kurve, die durch die nachfolgend beschriebene Gleichung (20) dargestellt wird, verbindet, wird als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet. Path(t) = BSpline[0, 1](t) (20)
  • (C-2) Wenn s > 1:
  • Ein Pfad, der Q0 bis Qs mit einer B-Spline-Kurve, die durch Gleichung (21) dargestellt wird, verbindet, wird als Ausgangskurve erstellt. Insbesondere wird die B-Spline-Kurve in der Annahme erstellt, dass die oben beschriebenen durchlaufenden Punkte Qe1, ...Qei nicht vorhanden sind. Path(t) = BSpline[0, s](t) (21)
  • Der Abstand zwischen allen Punkten, mit Ausnahme von Q0 und Qs (1 ≤ e ≤ s – 1), in der Teilfolge {Q0, Q1, ..., Qs} und dem Path(t) soll Le sein. Das heißt, der Abstand Le wird durch die nachfolgend beschriebene Gleichung (22) dargestellt. Le = Dist(Path(t), Qe) (22)
  • Dist ist eine Funktion, die den Abstand zwischen einer Kurve und einem Punkt angibt und wird durch ein analytisches oder approximierendes Verfahren berechnet. Die Einzelheiten von Dist sind eine bekannte Technik, und auf deren Beschreibung wird daher verzichtet. Jeder Abstand Le wird mit einer voreingestellten Toleranz mittels nachfolgend beschriebener Gleichung (23) verglichen, und es wird eine Bestimmung dahingehend gemacht, ob Le jeweils die Toleranz T überschreitet oder nicht. Le > T (23)
  • Wenn kein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
  • Wenn hingegen ein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird das e, das den größten Le ergibt, extrahiert und auf emax gesetzt. Ein Punkt Qemax, der jedem wie oben beschriebenen emax entspricht, wird zu den durchlaufenden Punkten hinzugefügt und eine B-Spline-Kurve wird erneut erstellt. Das heißt, die neu erstellte B-Spline-Kurve wird durch die nachfolgend beschriebene Gleichung (24) dargestellt. Path(t) = BSpline[0, emax, s](t) (24)
  • Durch Verwendung der oben beschriebenen Gleichung (22) für diesen neuen Path(t), um Le erneut zu berechnen, wird die oben beschriebene Gleichung (23) bestimmt. Wenn kein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet. Wenn ein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird das e, das den größten Le ergibt, extrahiert und auf emax2 gesetzt. Ein Punkt Qemax2 wird zu den Durchlaufpunkten hinzugefügt, und eine B-Spline-Kurve wird erneut erstellt. Das heißt, die neu erstellte B-Spline-Kurve wird durch die nachfolgend beschriebene Gleichung (25) dargestellt. Path(t) = BSpline[0, emax, emax2, s](t) (25)
  • Der oben beschriebene Ablauf wird wiederholt, um Durchlaufpunkte zuzufügen, bis kein e mehr vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, bevor Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet wird. Bei diesem Vorgang werden unabhängig davon, ob die eingegebene Teilfolge {Q0, Q1, ..., Qs} in dieser Reihenfolge oder in umgekehrter Reihenfolge, das heißt in der Reihenfolge {Qs, Qs – 1, ..., Q0}, eingegeben wird, die Ergebnisse aus dem B-Spline-Erstellungsverfahren (Gleichungen (16, 17 und (18)) und der Toleranzbestimmung (Gleichung (23)) dieselben sein.
  • Die Tangentenrichtungsvektoren am Startpunkt Q0 und Endpunkt Qs in der B-Spline-Kurve werden in diesem Fall auf 3(Q1 – Q0) beziehungsweise 3(Qs – Qs – 1) gesetzt. Jedoch können ein Punkt Q – 1 unmittelbar vor Q0 und ein Punkt Qs + 1 unmittelbar nach Qs gelesen werden, wobei die Tangentenrichtungsvektoren auf 3(Q1 – Q – 1)/2 und 3(Qs + 1 – Qs – 1)/2 gesetzt werden. Weiterhin können die Richtung einer Linie, die einen Kreis, der durch Q – 1, Q0 und Q1 läuft, bei Q0 berührt und die Richtung einer Linie, die einen Kreis, der durch Qs – 1, Qs und Qs + 1 läuft, bei Qs berührt, auf die Tangentenrichtungsvektoren eingestellt werden.
  • [Komprimierungsergebnis]
  • Durch die oben beschriebenen Einheiten wird der in 1 gezeigte Pfad P0, P1, ...Pn durch eine durch eine Anzahl von Befehlspunkten laufende Kurve dargestellt, wie in 5 gezeigt. Die schwarzen Punkte in 5 stellen Befehlspunkte dar, durch die der Pfad läuft, und die weißen Punkte stellen alle von diesen Befehlspunkten unterschiedlichen Befehlspunkte dar.
  • Der endgültige Pfad soll ein geglätteter Kurvenpfad sein, der die schwarzen Punkte verbindet, und die weißen Punkte sollen Punkte sein, deren Abstand vom Kurvenpfad innerhalb der Toleranz T liegt. Wie in der Ausführungsform 1 wird derselbe Pfad wie in 5 selbst dann erhalten, wenn die Folge von Befehlspunkten in der umgekehrten Reihenfolge eingegeben wird, das heißt in der Reihenfolge {Pn, Pn – 1, ..., P0}.
  • Mit dieser Konfiguration kann in der Ausführungsform 2 sowie in der Ausführungsform 1 die durch Interpolation verursachte Belastung reduziert werden, während der ursprünglich vorgegebene Pfad innerhalb der Toleranz gehalten wird, und wenn Formähnlichkeit zwischen zwei benachbarten Kurven gefordert wird, wie im Falle einer Auswärtsstrecke und einer Rückstrecke in einem Wechselpfad, dann wird erwartet, dass eine Ungleichmäßigkeit in dem Pfad minimiert wird. Da Befehlspunkte in eine dreidimensionale B-Spline-Kurve komprimiert werden, können weiterhin in der Ausführungsform 2 Befehlspunkte, die einen breiten Bereich abdecken, durch eine geringe Anzahl von durchgehenden zweiten Differentialkurven dargestellt werden, wodurch eine glatte Bearbeitungsfläche erzielt werden kann.
  • (Funktionsblockdiagramm)
  • 6 ist ein Funktionsblockdiagramm, das ein Beispiel einer numerischen Steuerung gemäß der vorliegenden Erfindung erklärt.
  • Im Allgemeinen analysiert eine Befehlsleseeinheit 10 in einer numerischen Steuerung ein Bearbeitungsprogramm und wandelt das Bearbeitungsprogramm in ein ausführbares Format um. Eine Interpolationseinheit 14 führt basierend auf dem ausführbaren Format eine Interpolationsverarbeitung aus, gibt einen Bewegungsbefehl für jede Achse aus und steuert den Antrieb der Servoeinrichtung jeder Achse (einen X-Achsen-Servo 15X, einen Y-Achsen-Servo 15Y und einen Z-Achsen-Servo 15Z) basierend auf dem Bewegungsbefehl für jede Achse.
  • Diese Befehlsleseeinheit 10 umfasst eine Teilfolgenextraktionseinheit 11 und eine Punktfolgenextraktionseinheit 12. Die Teilfolgenextraktionseinheit 11 teilt die sequenziell gelesene Folge von Befehlspunkten derart, dass dasselbe Ergebnis unabhängig von der vorgegebenen Richtung dadurch erzielt werden kann, dass Teilungspunkte gemäß der Form der Folge von Befehlspunkten bestimmt werden, und gibt das Ergebnis an die Punktfolgenkomprimierungseinheit 12 weiter. Die Punktfolgenkomprimierungseinheit 12 approximiert den durch die eingegebene Teilfolge gebildeten Pfad durch eine Kurve oder eine Gerade mittels des von der Richtung unabhängigen Verfahrens, um die Belastung auf die Interpolationseinheit 14 zu reduzieren, und gibt den so approximierten Pfad an die Interpolationseinheit 14 aus. Die Punktfolgenkomprimierungseinheit 12 bezieht sich auf eine voreingestellte Toleranz 13.
  • (Ablaufdiagramm)
  • Der Ablauf der durch die in 6 (Ausführungsform 1) dargestellten Teilfolgenextraktionseinheit 11 ausgeführten Teilfolgenextraktionsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 7 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
  • [Schritt sa01] m wird auf den Ausgangswert (= 0) gesetzt.
  • [Schritt sa02] Daten des Befehlspunkts Pm werden gelesen.
  • [Schritt sa03] Klassifizierung gemäß dem Wert von m wird durchgeführt. Wenn m = 0, geht die Verarbeitung weiter zu Schritt sa04. Wenn m = 1, geht die Verarbeitung weiter zu Schritt sa12. Wenn m ≥ 2, geht die Verarbeitung weiter zu Schritt sa05.
  • [Schritt sa04] Der Wert, der durch Addieren von 1 zu m erhalten wird, wird auf m gesetzt und die Verarbeitung kehrt zurück zu Schritt sa02.
  • [Schritt sa05] vm und am werden berechnet.
  • [Schritt sa06] Eine Bestimmung wird dahingehend getroffen, ob der Absolutwert von vm gleich oder kleiner als vmax ist. Wenn der Absolutwert von vm gleich oder kleiner als vmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa07. Wenn der Absolutwert von vm nicht gleich oder kleiner als vmax ist (NEIN), geht die Verarbeitung weiter zu Schritt sa10.
  • [Schritt sa07] Eine Bestimmung wird dahingehend getroffen, ob cos(am) gleich oder größer als cosmax ist. Wenn cos(am) gleich oder größer als cosmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa08. Wenn cos(am) nicht gleich oder größer als cosmax (NEIN) ist, geht die Verarbeitung weiter zu Schritt sa10.
  • [Schritt sa08] Eine Bestimmung wird dahingehend getroffen, ob m gleich n ist oder nicht. Wenn m gleich n ist (JA), geht die Verarbeitung weiter zu Schritt sa09. Wenn m nicht gleich n ist (NEIN), geht die Verarbeitung zurück zu Schritt sa04.
  • [Schritt sa09] Eine Folge von Befehlspunkten {P0, ..., Pn} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet und die Teilfolgenextraktionsverarbeitung wird abgeschlossen.
  • [Schritt sa10] Eine Teilfolge {P0, ..., Pm – 1} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet.
  • [Schritt sa11] Eine Teilfolge {Pm – 1, ..., Pn} wird als eine Eingabe an die Teilfolgenextraktionseinheit 11 gesetzt. Insbesondere kehrt die Verarbeitung zu Schritt sa01 zurück und die Teilfolgenextraktionsverarbeitung wird nochmals ausgeführt.
  • [Schritt sa12] Eine Bestimmung wird dahingehend getroffen, ob m gleich n ist. Wenn m gleich n ist (JA), geht die Verarbeitung weiter zu Schritt sa13. Wenn m nicht gleich n ist (NEIN), geht die Verarbeitung zurück zu Schritt sa014.
  • [Schritt sa13] {P0, P1 wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet und diese Teilfolgenextraktionsverarbeitung wird abgeschlossen.
  • [Schritt sa14] vm wird berechnet.
  • [Schritt sa15] Eine Bestimmung wird dahingehend getroffen, ob der Absolutwert von vm gleich oder kleiner als vmax ist. Wenn der Absolutwert von vm gleich oder kleiner als vmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa16. Wenn der Absolutwert von vm nicht gleich oder kleiner als vmax (NEIN) ist, geht die Verarbeitung weiter zu Schritt sa17.
  • [Schritt sa16] 1 wird zu m addiert, um m neu einzustellen (das heißt, m = m + 1).
  • [Schritt sa17] {P0, P1} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet.
  • [Schritt sa18] Die Folge von Befehlspunkten {P0, ..., Pn} wird als eine Eingabe an die Teilfolgenextraktionseinheit 11 gesetzt. Insbesondere kehrt die Verarbeitung zurück zu Schritt sa01, und die Teilfolgenextraktionsverarbeitung wird nochmals durchgeführt.
  • Der Ablauf der durch die in 6 (Ausführungsform 1) dargestellten Punktfolgenkomprimierungseinheit 12 ausgeführten Punktfolgenkomprimierungsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 8 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
  • [Schritt sb01] Path(t) wird als Liniensegment gesetzt, das P0 und Ps verbindet.
  • [Schritt sb02] Le wird mit Bezug auf die Punkte Qe, mit Ausnahme von Q0 und Qs, berechnet.
  • [Schritt sb03] Eine Bestimmung wird dahingehend gemacht, ob ein e, das Le > T erfüllt, vorhanden ist. Wenn ein e, das Le > T erfüllt, vorhanden ist (JA), geht die Verarbeitung weiter zu Schritt sb04. Wenn kein e, das Le > T erfüllt, vorhanden ist (NEIN), geht die Verarbeitung weiter zu Schritt sb06.
  • [Schritt sb04] Die eingegebene Punktfolge wird vor und nach dem Punkt geteilt, an dem Le am größten ist.
  • [Schritt sb05] Die Punktfolgenkomprimierungsverarbeitung wird nochmals mit jedem der geteilten Punktfolgen als eine Eingabe durchgeführt und die Verarbeitung kehrt zu Schritt sb01 zurück.
  • [Schritt sb06] Path(t) wird an die Interpolationseinheit 14 weitergeleitet und diese Punktfolgenkomprimierungsverarbeitung wird abgeschlossen.
  • Der Ablauf der durch die in 6 (Ausführungsform 2) dargestellten Punktfolgenkomprimierungseinheit 12 ausgeführten Punktfolgenkomprimierungsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 9 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
  • [Schritt sc01] Es soll kein Durchgangspunkt vorhanden sein.
  • [Schritt sc02] Path(t) wird als B-Spline-Kurve gesetzt, die Durchgangspunkte durchläuft.
  • [Schritt sc03] Le wird mit Bezug auf die Punkte Qe, mit Ausnahme von Q0 und Qs, berechnet.
  • [Schritt sc04] Eine Bestimmung wird dahingehend gemacht, ob ein e, das Le > T erfüllt, vorhanden ist oder nicht. Wenn ein e, das Le > T erfüllt, vorhanden ist (JA), geht die Verarbeitung weiter zu Schritt sb05. Wenn kein e, das Le > T erfüllt, vorhanden ist (NEIN), geht die Verarbeitung weiter zu Schritt sb06.
  • [Schritt sc05] Alle Punkte, an denen Le am größten ist, werden zu den Durchgangspunkten hinzugefügt und die Verarbeitung geht weiter zu Schritt sc02.
  • [Schritt sc06] Path(t) wird an die Interpolationseinheit 14 weitergeleitet und diese Punktfolgenkomprimierungsverarbeitung wird abgeschlossen.
  • 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 10-049215 [0002, 0005]
    • JP 2013-171376 [0003, 0005]

Claims (5)

  1. Numerische Steuerung, die eine Werkzeugmaschine steuert, welche aus mehreren Antriebsachsen mit mindestens zwei geradlinigen Achsen, die eine Bearbeitung an einem auf einem Tisch befestigten Werkstück ausführen, besteht, wobei die numerische Steuerung umfasst: eine Befehlsleseeinheit, die dazu ausgebildet ist, einen aus einer Folge von mehreren Befehlspunkten bestehenden Befehlspfad und einen Befehl einer relativen Vorschubgeschwindigkeit des Werkstücks und eines Werkzeugs zu lesen; eine Teilfolgenextraktionseinheit, die dazu ausgebildet ist, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten derart aufzuteilen, dass derselbe Pfad unabhängig davon erstellt werden kann, ob die gelesenen Befehlspunkte von der Befehlsleseeinheit von einer vorgegebenen Richtung oder einer der vorgegebenen Richtung entgegengesetzten Richtung extrahiert werden; eine Punktfolgenkomprimierungseinheit, die dazu ausgebildet ist, einen komprimierten Pfad zu erstellen, der durch eine Gerade oder eine Kurve approximiert wird, deren Abstand zu jedem Befehlspunkt in der extrahierten Teilfolge derart innerhalb einer voreingestellten Toleranz liegt, dass der komprimierte Pfad durch dieselbe Gerade oder Kurve unabhängig davon approximiert werden kann, ob der komprimierte Pfad aus der extrahierten Teilfolge in einer vorgegebenen Richtung oder in einer zur vorgegebenen Richtung entgegengesetzten Richtung erstellt wird; eine Interpolationseinheit, die dazu ausgebildet ist, die Position jeder Achse für jeden Interpolationszyklus derart zu erhalten, dass sich das Werkzeug mit der vorgegebenen relativen Vorschubgeschwindigkeit auf dem durch die Punktfolgenkomprimierungseinheit komprimierten Pfad bewegen kann; und eine Motorantriebseinheit, die dazu ausgebildet ist, einen Motor einer jeden Achse anzutreiben, um diese an die durch die Interpolationseinheit für jede Achse erhaltende Position zu bewegen.
  2. Numerische Steuerung nach Anspruch 1, ferner umfassend: eine Teilungsreferenzlängen-Einstelleinheit, die dazu ausgebildet ist, eine Teilungsreferenzlänge einzustellen, die dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon ausgeführt wird, ob eine Länge zwischen Befehlspunkten innerhalb der Teilungsreferenzlänge liegt oder nicht.
  3. Numerische Steuerung nach Anspruch 1, ferner umfassend: eine Teilungsreferenzwinkel-Einstelleinheit, die dazu ausgebildet ist, einen Teilungsreferenzwinkel einzustellen, der dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon bestimmt wird, ob ein Winkel, der durch Geraden, die Befehlspunkte verbinden, gebildet wird, innerhalb des Teilungsreferenzwinkels liegt oder nicht.
  4. Numerische Steuerung nach einem der Ansprüche 1 bis 3, wobei der durch die Punktfolgenkomprimierungseinheit komprimierte Pfad ein Pfad ist, der mehrere Punkte in der Teilfolge mit einer Geraden verbindet.
  5. Numerische Steuerung nach einem der Ansprüche 1 bis 3, wobei der durch die Punktfolgenkomprimierungseinheit komprimierte Pfad ein Kurvenpfad ist, der durch mehrere Punkte in der Teilfolge läuft.
DE102015001526.5A 2014-02-13 2015-02-06 Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion Active DE102015001526B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-025758 2014-02-13
JP2014025758A JP5850963B2 (ja) 2014-02-13 2014-02-13 指令経路圧縮機能を有する数値制御装置

Publications (2)

Publication Number Publication Date
DE102015001526A1 true DE102015001526A1 (de) 2015-08-13
DE102015001526B4 DE102015001526B4 (de) 2020-12-24

Family

ID=53676953

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015001526.5A Active DE102015001526B4 (de) 2014-02-13 2015-02-06 Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion

Country Status (4)

Country Link
US (1) US9645568B2 (de)
JP (1) JP5850963B2 (de)
CN (1) CN104850064B (de)
DE (1) DE102015001526B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6716446B2 (ja) * 2016-12-21 2020-07-01 Dmg森精機株式会社 加工プログラム解析装置、加工プログラム解析プログラムおよび加工プログラム解析方法
CN109739179B (zh) * 2018-11-28 2020-10-23 大族激光科技产业集团股份有限公司 插补控制方法及装置、计算机设备及可读存储介质
JP6871280B2 (ja) * 2019-01-07 2021-05-12 ファナック株式会社 数値制御装置
CN116235122A (zh) * 2020-10-02 2023-06-06 川崎重工业株式会社 处理方法、程序及机器人系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049215A (ja) 1996-07-29 1998-02-20 Roland D G Kk 形状加工システムにおける加工形状データの圧縮処理方法
JP2013171376A (ja) 2012-02-20 2013-09-02 Fanuc Ltd 加工曲線作成機能を有する数値制御装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62204313A (ja) * 1986-03-05 1987-09-09 Hitachi Denshi Ltd 数値制御装置
JP2664896B2 (ja) * 1986-11-28 1997-10-22 日本電気株式会社 数値制御装置の補間器
JPH03230201A (ja) * 1990-02-06 1991-10-14 Amada Co Ltd 加工形状データの圧縮処理方法及び装置
JPH05324046A (ja) * 1992-05-18 1993-12-07 Mitsubishi Electric Corp 多系統数値制御方法及びその装置
JPH10301614A (ja) * 1997-04-28 1998-11-13 Fanuc Ltd 数値制御装置
JP2006139503A (ja) * 2004-11-11 2006-06-01 Shinko Electric Ind Co Ltd 工具軌跡生成プログラム及び記録媒体、並びに工具軌跡生成装置及び工具軌跡生成方法
JP5202735B2 (ja) * 2009-06-03 2013-06-05 三菱電機株式会社 数値制御装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1049215A (ja) 1996-07-29 1998-02-20 Roland D G Kk 形状加工システムにおける加工形状データの圧縮処理方法
JP2013171376A (ja) 2012-02-20 2013-09-02 Fanuc Ltd 加工曲線作成機能を有する数値制御装置

Also Published As

Publication number Publication date
JP5850963B2 (ja) 2016-02-03
CN104850064A (zh) 2015-08-19
CN104850064B (zh) 2017-12-08
JP2015153097A (ja) 2015-08-24
DE102015001526B4 (de) 2020-12-24
US20150227131A1 (en) 2015-08-13
US9645568B2 (en) 2017-05-09

Similar Documents

Publication Publication Date Title
DE102013002516B4 (de) Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion
DE102012010408B4 (de) Numerische Steuervorrichtung mit einer Funktion zum Korrigieren des Bewegungswegs eines Maschinenprogramms
DE102013011684B4 (de) Numerische Steuervorrichtung, die eine Einfügeeinheit für Ecken mit mehreren Kurven umfasst
DE102015001526B4 (de) Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion
DE102017124477B4 (de) Werkzeugpfaderzeugungsvorrichtung, werkzeugpfaderzeugungsverfahren und werkzeugpfaderzeugungsprogramm
DE102012021045A1 (de) Numerische Steuervorrichtung zur Geschwindigkeitssteuerung gemäss einer Geschwindigkeitsbedingung eines angewiesenen Wegs
DE69202323T2 (de) Verfahren zur dreidimensionalen Bearbeitung.
DE112016005969T5 (de) Werkzeugwegkorrekturvorrichtung und Werkzeugwegkorrekturverfahren
DE19618332A1 (de) Numerische Steuervorrichtung mit Spline-Interpolationsfunktion
EP0762250A1 (de) Verfahren zur Steuerung von Koordinatenmessgeräten
DE102015120118B4 (de) Werkzeugmaschine mit einer Werkzeugwegkurvenerzeugungsvorrichtung
DE102017005811B4 (de) Numerische Steuervorrichtung, die eine Zeitkonstante für ein Beschleunigungs-/Verzögerungsfilter dynamisch wechselt
DE102017102768B4 (de) Bearbeitungszeitschätzungsgerät
DE102015013582B4 (de) Numerische Steuervorrichtung
DE102018007773A1 (de) Numerisches Steuergerät
DE3586148T2 (de) Flaechenbehandlungsverfahren.
DE102014015278B4 (de) Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
DE102014008572A1 (de) Numerische Steuereinheit mit einer Funktion zum glatten bzw. sanften Ändern der Vorschubgeschwindigkeit, wenn ein Override geändert wird
DE102015011363A1 (de) Numerische steuerungsvorrichtung
DE102017200084A1 (de) Verfahren zum Bereitstellen einer Bewegungskontur für einen Manipulator entlang vorgegebener Orientierungspunkte
DE102016121712A1 (de) Servosteuerungsvorrichtung
DE102015013603A1 (de) Numerische Steuervorrichtung
DE102020003527A1 (de) Numerische Steuervorrichtung
DE69029499T2 (de) Erzeugungssystem von Approximationskurven und Kurvenspeicherung
DE102016015515A1 (de) Numerische Steuereinheit

Legal Events

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