-
HINTERGRUND DER ERFINDUNG
-
1. Gebiet der Erfindung
-
Die Erfindung betrifft eine numerische Steuerung, die mit einer Programm-Vorablesefunktion ausgerüstet ist.
-
2. Zum Stand der Technik
-
Bei numerischen Steuerungen (NC) mit Programm-Vorablesefunktion ist es bekannt, eine vorgegebene Anzahl von (Programm-)Blöcken vorab auszulesen (vgl.
japanische Patentveröffentlichung 2007-94936 ,
japanische Patentveröffentlichung 2007-164509 , und
japanische Patentveröffentlichung 2008-40542 ).
-
Neben derartigen NCs sind numerische Steuerungen bekannt mit einer Funktion (Verlaufstabellenbetriebsfunktion), bei der Daten in Tabellenformat (Verlaufstabelle), mit denen Achsenpositionen in Bezug auf die Zeit, Achsenpositionen, oder Spindelpositionen festgelegt werden, in einem Speicher oder einer über ein Netzwerk verbundenen Speichereinrichtung abgespeichert werden und die jeweiligen Achsen durch sukzessives Auslesen der tabellenformatierten Daten (Verlaufstabelle) angetrieben werden (vgl.
japanische Patentveröffentlichung 59-177604 oder
japanische Patentveröffentlichung 2012-234445 ). Die Verlaufstabellenbetriebsfunktion ermöglicht einen freien Werkzeugbetrieb unabhängig von dem Bearbeitungsprogramm und deshalb können die Bearbeitungszeit verkürzt und die Bearbeitungsgenauigkeit verbessert werden.
-
Die
japanische Patentveröffentlichung 2012-93975 beschreibt ein Verfahren und eine Vorrichtung zum Vorhersagen einer Bearbeitungszeit in einer numerisch gesteuerten Werkzeugmaschine mit verbesserter Vorhersagegenauigkeit für die Bearbeitungszeit, wobei die Berechnungszeit für die Vorhersage der Bearbeitungszeit verkürzt ist.
-
Bei den oben beschriebenen NC-Programmen mit Vorablesefunktion kann es vorkommen, dass bei NC-Programmen mit kontinuierlichen kleinen Blöcken die Vorablesung nicht rechtzeitig durchgeführt werden kann. Erfolgt das Vorablesen irgendeines NC-Programmes in einer Mehrzahl von NC-Programmen, welche koordiniert ablaufen, nicht rechtzeitig, dann beeinträchtigt dies die anderen NC-Programme ebenfalls und der gesamte Arbeitszyklus wird verlängert.
-
12 zeigt Beispiele von drei Programmen, die wechselseitig parallel mit Vorablesung im NC-Programmbetrieb abgearbeitet werden. 13 zeigt den integrierten Wert der Ausführungszeiten (die integrierte Ausführungszeit) der vorab gelesenen Blöcke in jedem der drei Programme gemäß 12 in einer Stufe, in der neun Blöcke vorab ausgelesen wurden, entsprechend einem herkömmlichen Steuersystem mit Vorablesefunktion.
-
Beispielhaft wird nun beschrieben, wie die drei Programme (O0001, O0002, O0003) gemäß 12 parallel abgearbeitet werden. „O0001”, „O0002” und „O0003” sind die jeweiligen Programmnamen. Der in Klammern bei jedem Programm gemäß 12 stehende Wert ist die Ausführungszeit für jeden Block.
-
Herkömmlicherweise erfolgt das Vorablesen der jeweiligen Programme ohne Berücksichtigung des integrierten Wertes der Ausführungszeiten der vorab gelesenen Blöcke und deshalb wurde die Vorablesung auf Basis der nachfolgenden Sequenz ausgeführt.
- (1) N11 ist vorabgelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (1, 0, 0)]
- (2) N21 ist vorabgelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (1, 1, 0)]
- (3) N31 ist vorabgelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (1, 1, 1)]
- (4) N12 is vorab gelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (2, 1, 1)]
- (5) N22 ist vorab gelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (2, 2, 1)]
- (6) N32 ist vorab gelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (2, 2, 2)]
- (7) N13 ist vorab gelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (3, 2, 2)]
- (8) N32 ist vorab gelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (3, 3, 2)]
- (9) N33 ist vorabgelesen
[Anzahl der vorab gelesenen Blöcke (O0001, O0002, O0003) = (3, 3, 3)]
.
.
-
Der integrierte Wert der Ausführungszeiten der vorab gelesenen Blöcke in jedem Programm in der Stufe, in der neun Blöcke in der Kombination (9) vorab gelesen sind, ist in 13 gezeigt. In diesem Fall ist für das Programm O0003 der integrierte Wert der Ausführungszeiten der vorab gelesenen Blöcke 3 ms und deshalb tritt dann, wenn der Betrieb in diesem Zustand ausgeführt wird und die Vorablesung nicht rechtzeitig erfolgt, eine Wartezeit auf bis die Vorablesung abgeschlossen ist.
-
Basiert der Betrieb auf Tabellenformat (Verlaufstabellenbetriebsfunktion) und liegt eine Abfolge von kleinen Blöcken vor, dann kann eine Situation auftreten, in der die Vorablesung der Blöcke in den Tabellenformatdaten nicht rechtzeitig (schnell) erfolgt. Erfolgt die Vorablesung nicht rechtzeitig, dann kann die Vorrichtung nicht entsprechend der Referenzzeit in die Achsenposition bewegt werden, d. h. die Referenzachsenposition oder Spindelposition, und deshalb erfolgt eine Alarmgebung oder ein sofortiger Achsenstopp. Erfolgt der Betrieb im Tabellenformat derart modifiziert, dass die Vorablesungen rechtzeitig erfolgen, sodass kein Alarm oder sofortiger Achsenstopp erfolgt, verlängert sich die Arbeitszykluszeit.
-
Nunmehr wird ein Beispiel für eine herkömmliche Technik eines Betriebs auf Basis von Tabellenformatdaten (Verlaufstabellenbetriebsfunktion) mit Ausführung von vorab gelesenen Verlaufstabellen beschrieben, wobei die drei Verlaufstabellen gemäß 14 ausgeführt werden (eine Verlaufstabelle <X> für die X-Achse, Verlaufstabelle <S> für die Spindel S, und Verlaufstabelle <M> für eine Hilfsfunktion).
-
Herkömmlicherweise wird das Vorablesen ausgeführt ohne Berücksichtigung des integrierten Wertes der Ausführungszeiten der vorab gelesenen Blöcke und deshalb ergibt sich bei Vorablesung auf einer Mittelwertbasis die nachfolgend beschriebene Sequenz.
-
- (1) Vorabgelesen L1 in <X>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 0, 0)]
- (2) Vorabgelesen L100 in <S>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 1, 0)]
- (3) Vorabgelesen L100 in <M>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 1, 1)]
- (4) Vorabgelesen L2 in <X>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (2, 1, 1)]
- (5) Vorabgelesen L150 in <S>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (2, 2, 1)]
- (6) Vorabgelesen L1050 in <M>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (2, 2, 2)]
- (7) Vorabgelesen L3 in <X>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (3, 2, 2)]
- (8) Vorabgelesen L200 in <S>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (3, 3, 2)]
- (9) Vorabgelesen L1100 in <M>
[Anzahl der vorab gelesenen Blöcke (<X>, <S>, <M>) = (3, 3, 3)]
.
.
-
Die integrierten Werte der Ausführungszeiten der vorab gelesenen Blöcke jeder Verlaufstabelle in der Stufe, in der neun Blöcke gemäß der in (9) angezeigten Kombination vorab gelesen sind sind in 15 gezeigt. In diesem Falle beträgt der integrierte Wert der Ausführungszeiten der vorab gelesenen Blöcke in <X> 3 ms. Eine Vorabauslesung erfolgt nicht rechtzeitig, wenn ein Betrieb in diesem Stadium erfolgt und deshalb wird ein Alarm gegeben oder es werden sofort Achsen gestoppt. Bei Verlaufstabellenbetrieb wird der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in jeder Verlaufstabelle nicht beobachtet. Deshalb war es nicht möglich, im Voraus zu bestimmen, dass der integrierte Wert der Ausführungszeiten der vorab gelesenen Blöcke kleiner ist als die zum sicheren Abbremsen und Halten erforderliche Zeit.
-
Dementsprechend erfolgt bei nicht rechtzeitig abgeschlossener Vorabauslesung nicht nur ein Alarm oder ein sofortiger Achsenstopp, sondern es ergibt sich auch die Gefahr von Stößen in der Maschine. Insbesondere dann, wenn eine Vorabauslesung ausgeführt wird aus einer Speichereinrichtung, die über ein Netzwerk angeschlossen ist, besteht die Möglichkeit, dass die Kommunikation aufgrund zeitweiliger Netzwerkprobleme unterbrochen sein kann, und deshalb stellt sich dieses Problem in besonderem Maße.
-
KURZFASSUNG DER ERFINDUNG
-
Zur Lösung der oben erläuterten Probleme beim Stand der Technik ist es ein Ziel der vorliegenden Erfindung, eine numerische Steuerung bereitzustellen, mit Programm-Vorablesefunktion, bei der verhindert ist, dass die Vorablesung nicht rechtzeitig ausgeführt wird und mit der weiterhin verhindert ist, dass die Zykluszeit verlängert ist wenn eine Mehrzahl von NC-Programmen parallel ausgeführt werden; weiterhin soll eine numerische Steuerung bereitgestellt werden, mit Betriebsfunktion auf Basis von tabellenformatierten Daten, wobei bei paralleler Ausführung einer Mehrzahl von tabellenformatierten Daten (Verlaufstabellenbetriebsfunktion) die Erzeugung eines Alarms oder eines sofortigen Achsenstopps aufgrund des Umstandes, dass die Vorablesung nicht rechtzeitig ausgeführt wurde, weniger wahrscheinlich wird.
-
Um zu erreichen, dass bei paralleler Ausführung einer Mehrzahl von NC-Programmen die Vorabauslesung rechtzeitig erfolgt, werden diejenigen NC-Programme mit der kürzesten Ausführungszeit aus den vorab auszulesenden Blöcken mit Priorität ausgelesen. Dementsprechend wird vermieden, dass die Vorabauslesung nicht innerhalb der gegebenen Zeit ausgeführt wird und auch eine Verlängerung der Arbeitszyklenzeit ist verhindert. Eine numerische Steuerung mit einer Funktion zum Berechnen der Ausführungszeiten der Blöcke eines NC-Programmes ist gut bekannt (vgl.
japanische Patentveröffentlichung 2012-93975 ).
-
Neben dem oben beschriebenen NC-Porgrammbetrieb wird bei paralleler Ausführung einer Mehrzahl von tabellenformatierten Daten beim Betrieb auf Grundlage tabellenformatierter Daten auf Basis einer Priorität bestimmt, wo aus der Mehrzahl von tabellenformatierten Daten die Vorabauslesung erfolgt. Durch die Priorisierung der Vorabauslesung von Daten mit kurzer Ausführungszeit aus den vorab ausgelesenen Blöcken, wird die Wahrscheinlichkeit des Auftretens eines Alarms oder eines sofortigen Achsenstopps aufgrund einer nicht hinreichend zeitlich kurzen Auslesung verringert. Eine Folge dieser Maßnahme ist, dass es nicht mehr nötig ist, tabellenformatierte Daten wie im Stand der Technik zu modifizieren und es ergibt sich eine Verkürzung der Zykluszeiten im Vergleich zum Stand der Technik.
-
Gemäß einer ersten Ausführungsform einer numerischen Steuerung nach der vorliegenden Erfindung werden während paralleler Ausführung von NC-Programmen sukzessiv Blöcke vorab ausgelesen aus einer Vielzahl von NC-Programmen in einem Speicher oder in einem über ein Netzwerk verbundenen Speicher, wobei die numerische Steuerung folgendes aufweist: eine Ausführungszeitspeichereinheit, welche Ausführungszeiten einzelner Blöcke in den NC-Programmen speichert; eine Ausführungszeitintegrationseinheit, welche aus der Ausführungszeitspeichereinheit die Ausführungszeiten der vorab ausgelesenen Blöcke ausliest und integriert; eine Bestimmungseinheit, welche die integrierten Ausführungszeiten der vorab ausgelesenen Blöcke in den einzelnen NC-Programmen vergleicht und dasjenige NC-Programm bestimmt, welches den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke hat; und eine Vorabausleseausführungseinheit, welche anschließend die Vorabauslesung des NC-Programmes mit dem kürzesten integrierten Wert der Ausführungszeiten aus den vorab ausgelesenen Blöcken ausführt, wie es durch die Bestimmungseinheit bestimmt worden ist.
-
Das Ergebnis der Feststellung der Ausführungszeiten der Blöcke in jedem der NC-Programme durch die vorangehende Ausführung der Bearbeitung kann in der Ausführungszeitspeichereinheit abgespeichert werden und die abgespeicherten Ausführungszeiten können dann im nachfolgenden und in weiteren Bearbeitungsprozessen ausgelesen werden.
-
Gemäß einem zweiten Ausführungsbeispiel einer numerischen Steuerung nach der vorliegenden Erfindung hat die Steuerung eine Programm-Vorabauslesefunktion zum sukzessiven Vorabauslesen von Blöcken einer Mehrzahl von NC-Programmen aus einem Speicher oder einem über ein Netzwerk verbundenen Speicher, wobei die NC-Programme parallel ausgeführt werden und die numerische Steuerung folgendes aufweist: eine Ausführungszeitberechnungseinheit, welche Ausführungszeiten aus Inhalten von Befehlen der einzelnen Blöcke in den NC-Programmen berechnet; eine Ausführungszeitintegrationseinheit, welche die Ausführungszeiten der vorab ausgelesenen Blöcke, wie von der Ausführungszeitberechnungseinheit berechnet, integriert; eine Bestimmungseinheit, welche die integrierten Ausführungszeiten der vorab ausgelesenen Blöcke der einzelnen NC-Programme vergleicht und dasjenige NC-Programm mit dem kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke bestimmt; und eine Vorabausleseausführungseinheit, welche anschließend die Vorabauslesung des NC-Programmen mit dem kürzesten integrierten Wert der Ausführungszeiten ausführt, wie von der Bestimmungseinheit bestimmt.
-
Die Ausführungszeitenberechnungseinheit kann folgendes aufweisen: eine Teilungseinheit, welche einen Werkzeugweg in kleine Segmente unterteilt; eine Geschwindigkeitsberechnungseinheit, welche eine Geschwindigkeit in tangentialer Richtung des Segmentes bestimmt; eine Segmentbewegungszeitberechnungseinheit, welche eine Zeit berechnet, die ein Werkzeug braucht, um sich entlang jedem Segment zu bewegen, und zwar auf Basis der Geschwindigkeit in tangentialer Richtung, wie durch die Geschwindigkeitsberechnungseinheit bestimmt; und eine Werkzeugbewegungszeitberechnungseinheit, welche als Werkzeugbewegungszeit eine Summe der Zeiten ermittelt, die das Werkzeug zur Bewegung entlang jedem Segment gemäß der Berechnung durch die Segmentbewegungseinheitberechnungseinheit braucht, wobei die numerische Steuerung eingerichtet sein kann, eine Zeit zu berechnen, die für ein Werkzeug erforderlich ist, um entsprechend NC-Befehlen sich entlang einem vorgegebenen Pfad zu bewegen.
-
Die numerische Steuerung kann weiterhin folgendes aufweisen: eine Monitoreinheit für die integrierte Ausführungszeit, welche parallel zu dem Betrieb auf Basis des NC-Programmes kontinuierlich einen integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke eines NC-Programmes, welches gerade ausgeführt wird, beobachtet; eine Brems-/zeitweilige Halteeinheit, welche den Betrieb auf Basis des NC-Programmes bremst (verlangsamt) oder zeitweilig anhält wenn die Monitoreinheit für die integrierte Ausführungszeit bestimmt hat, dass der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke gleich einer Zeit geworden ist, die erforderlich ist, den Betrieb auf Basis des NC-Programmes sicher zu verlangsamen und anzuhalten; eine Vorableseeinheit, welche aus dem Speicher oder dem über ein Netzwerk verbundenen Speicher das NC-Programm vorab ausliest während die Verlangsamung (Abbremsung) oder das zeitweilige Anhalten des Betriebs des NC-Programmes erfolgt; und eine Betriebs-Neustarteinheit, welche den Betrieb auf Basis des NC-Programmes neu startet, wenn der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke hinreichende Zeit sicherstellt, die erforderlich ist zum sicheren Abbremsen oder Anhalten des Betrieb auf Basis des NC-Programms, wobei die Blöcke der Mehrzahl von NC-Programmen sukzessive aus dem Speicher oder der über ein Netzwerk verbundenen Speichereinrichtung vorab ausgelesen werden können.
-
Die Ausführungszeitspeichereinheit kann eine Programm-Vorabauslesungsfunktion haben, mit der dann, wenn zuvor die Bearbeitung ausführt worden ist und die Ausführung gemessen und gespeichert wurde, und wenn eine Verringerung der Vorschubrate erfolgt weil der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke gleich derjenigen Zeitspanne ist, die zum Abbremsen und Anhalten erforderlich ist, die Ausführungszeit für den Fall abgespeichert wird, in dem keine Verringerung der Vorschubrate aufgetreten ist anstelle einer direkten Abspeicherung der Ausführungszeit.
-
Gemäß einer weiteren Ausführungsform setzt die numerische Steuerung gemäß der Erfindung eine Zeit, eine Position einer Achse, oder eine Position der Spindel als Referenz und speichert tabellenformatierte Daten, in denen die Referenz-Zeit, die Referenz-Achsenposition oder die Referenz-Spindelposition zugeordnet ist einer Position einer Achse oder einer Spindel – verschieden von der Referenzachse oder der Referenzspindel – in einem Speicher oder einem über ein Netzwerk verbundenen Speicher, wobei die Steuerung weiterhin sukzessive eine Vorabauslesung durchführt bezüglich der Referenz-Zeit, der Referenz-Achsenposition oder der Referenz-Spindelposition und der Position der Achse oder der Spindel – verschieden von der Referenzachse oder der Referenzspindel – und die Position der anderen Achse oder Spindel synchron mit der Referenz-Zeit, der Referenz-Achsenposition oder der Referenz-Spindelposition steuert. Die numerische Steuerung enthält: eine Ausführungszeitintegrationseinheit, welche die Ausführungszeiten der vorab ausgelesenen Blöcke integriert, eine Bestimmungseinheit, welche die integrierten Ausführungszeiten der vorab ausgelesenen Blöcke in jeweiligem Tabellenformat vergleicht und diejenigen Tabellenformat-Daten ermittelt, welche den kürzesten integrierten Wert der Ausführungszeiten haben; und eine Vorabauslesungsausführungseinheit, welche anschließend eine Vorabauslesung der tabellenformatierten Daten mit dem kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke aufweist, wie von der Bestimmungseinheit bestimmt.
-
Die Ausführungszeitintegrationseinheit kann eine Abschätzeinheit für einen integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke aufweisen mit einer (Vorhersage-)Abschätzung der Ausführungszeiten der vorab ausgelesenen Blöcke aufgrund einer Differenz zwischen einer gerade laufenden Referenz-Zeit und einer Referenz-Zeit der vorab ausgelesenen Blöcke.
-
Die numerische Steuerung kann weiterhin folgendes aufweisen: einen Monitor für eine integrierte Ausführungszeit, welcher, parallel mit einem Betrieb auf Basis der tabellenformatierten Daten, kontinuierlich einen integrierten Wert der Ausführungszeiten der vorab gelesenen Blöcke der tabellenformatierten Daten, welche ausgeführt werden, beobachtet; eine Brems-/Anhalteeinheit, welche den Betrieb auf Basis der tabellenformatierten Daten verlangsamt oder zeitweise anhält wenn der Monitor für die integrierte Ausführungszeit feststellt, dass der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke gleich ist einer Zeit, die erforderlich ist, um den Betrieb auf Basis der tabellenformatierten Daten zu verlangsamen oder anzuhalten; eine Vorableseeinheit, welche die tabellenformatierten Daten aus dem Speicher oder einem über ein Netzwerk verbundenen Speicher vorab ausliest während des Verlangsamens oder zeitweisen Anhaltens des Betriebs auf Basis der tabellenformatierten Daten; und eine Betriebsneustarteinheit, welche den Betrieb auf Basis der tabellenformatierten Daten neu startet wenn der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke hinreichend sicherstellt, dass die erforderliche Zeit zur Verfügung steht zum sicheren Verlangsamen und Anhalten des Betriebs auf Basis der tabellenformatierten Daten, wobei die Blöcke der tabellenformatierten Daten vorab sukzessive aus dem Speicher oder einem über ein Netzwerk verbundenen Speicher ausgelesen werden können.
-
Mit der Erfindung ist es möglich, eine numerische Steuerung bereitzustellen, die eine Programm-Vorabauslesefunktion hat, wobei verhindert ist, dass die Vorabauslesung nicht schnell genug (rechtzeitig) ausgeführt wird und wobei weiterhin verhindert ist, dass die Bearbeitungszeit verlängert ist wenn eine Mehrzahl von NC-Programmen parallel abgearbeitet werden. Weiterhin kann die numerische Steuerung mit einer Betriebsfunktion versehen sein auf Basis von tabellenformatierten Daten, wobei dann, wenn eine Mehrzahl von tabellenformatierten Daten parallel bei ihrer Abarbeitung durchgeführt werden (Verlaufstabellenbetriebsfunktion) die Erzeugung eines Alarms oder eines sofortigen Achsenstopps bei nicht rechtzeitiger Vorabauslesung weniger wahrscheinlich wird. Im Ergebnis kann deshalb eine Modifikation der tabellenformatierten Daten, wie im Stand der Technik, eingespart werden und es ergibt sich im Vergleich zum Stand der Technik eine Verkürzung der Bearbeitungszeit.
-
KURZBESCHREIBUNG DER FIGUREN
-
Obige und weitere Ziele und Merkmale der Erfindung werden noch deutlicher aus der nachfolgenden Beschreibung von Ausführungsbeispielen mit Bezug auf die Figuren:
-
1 ist ein Diagramm zur Erläuterung des integrierten Wertes („die integrierte Ausführungszeit”) der Ausführungszeiten von vorab ausgelesenen Blöcken in jedem von drei Programmen gemäß 12, in einem Stadium, in dem neun Blöcke durch eine numerische Steuerung gemäß der Erfindung vorab ausgelesen worden sind;
-
2 ist ein Diagramm zur Erläuterung des Ablaufs einer Vorabauslesung wenn eine Mehrzahl von NC-Programmen parallel durch eine numerische Steuerung gemäß der Erfindung abgearbeitet werden;
-
3 ist ein Blockdiagramm zur Erläuterung einer Verlaufstabellenbetriebsfunktion;
-
4 ist ein weiteres Blockdiagramm zur Erläuterung einer Verlaufstabellenbetriebsfunktion;
-
5 ist ein Beispiel für Verlaufstabellen bezüglich einer X-Achse, einer Spindel S und einer Hilfsfunktion, welche gemäß dem Verlaufstabellenbetrieb nach 4 ausgeführt werden;
-
6 ist ein Diagramm zur Erläuterung eines Betriebs, der ausgeführt wird entsprechend dem Fortschreiten der Referenzzeit bei Ausführung der Verlaufstabellen gemäß 5;
-
7 ist ein Diagramm zur Erläuterung des integrierten Wertes von Ausführungszeiten der vorab ausgelesenen Blöcke in jeder der drei Verlaufstabellen gemäß 14, und zwar in einem Zustand, in dem neun Blöcke durch die numerische Steuerung gemäß der Erfindung vorab ausgelesen worden sind;
-
8 ist ein Diagramm zur Erläuterung der Verlangsamung des Betriebs durch Reduzierung der Vorschubratenkorrektur(-Überbrückung) beim NC-Programmbetrieb oder durch Reduzierung der Korrekturzeit (Überbrückungszeit; Override) in der Verlaufstabellenbetriebsfunktion wenn die Vorabauslesung eines NC-Programms oder der Verlaufstabellenbetrieb nicht in einer vorgegeben Zeit ausführt worden sind, und mit einem zeitweisen Anhalten durch Setzen der Vorschubkorrektur oder der Korrekturzeit auf „null” wenn überhaupt keine vorab ausgelesenen Blöcke vorliegen;
-
9 ist ein Flussdiagramm zur Erläuterung der Abarbeitung eines NC-Programmes;
-
10 ist ein Flussdiagramm zur Erläuterung einer Verlaufstabellenbetriebsfunktion;
-
11 ist ein prinzipielles Blockdiagramm einer numerischen Steuerung nach der Erfindung, welche ein NC-Programm oder eine Verlaufstabellenbetriebsfunktion ausführt;
-
12 zeigt drei Programmbeispiele, welche wechselseitig parallel durch Vorabauslesung im NC-Programmbetrieb abgearbeitet werden;
-
13 zeigt den integrierten Wert (die „integrierte Ausführungszeit”) der Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der drei Programme gemäß 12 in einem Zustand, in dem neun Blöcke vorab gemäß dem Stand der Technik ausgelesen worden sind;
-
14 zeigt Beispiele von drei Verlaufstabellen (X-Achse-Verlaufstabelle, <X>, Spindel S-Verlaufstabelle <S> und Hilfsfunktion-Verlaufstabelle <M>);
-
15 zeigt den integrierten Wert („integrierte Ausführungszeit”) der Ausführungszeiten der vorab in jeder der drei Verlaufstabelle gemäß 14 vorab ausgelesenen Blöcke, und zwar in einem Zustand, in dem neun Blöcke gemäß dem Stand der Technik vorab ausgelesen worden sind; und
-
16 zeigt ein Beispiel für die Ausführungszeit eines bestimmten Blockes bei Verlangsamung des Betriebs wenn die Vorabauslesung beim NC-Programmbetrieb nicht rechtzeitig ausgeführt worden ist.
-
BESCHREIBUNG VON BEVORZUGTEN AUSFÜHRUNGSBEISPIELEN IM EINZELNEN
-
Nachfolgend wird zunächst ein Ausführungsbeispiel der Erfindung mit Blick auf die Figuren beschrieben, bei dem (I) eine Mehrzahl von NC-Programmen abgearbeitet werden, und (II) bei dem ein Betrieb (Verlaufstabellenbetrieb) auf Basis von tabellenformatierten Daten ausgeführt wird.
-
(I) Ausführung einer Mehrzahl von NC-Programmen.
-
Nach der Erfindung erfolgt die Vorabauslesung durch Priorisierung von Programmen mit einem kurzen integrierten Wert der Ausführungszeiten von vorab ausgelesenen Blöcken. Bei den in 12 gezeigten drei NC-Programmen erfolgt die Auslesung entsprechend der nachfolgend angegebenen Sequenz. Die Werte innerhalb der [] unten zeigen die Programmnamen und die integrierten Werte (integrierte Ausführungszeiten) der Ausführungszeiten der Blöcke entsprechend den einzelnen Programmen. Weiterhin zeigt unten eine Unterstreichung das Programm mit dem kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Programmblöcke. Das Verfahren zum Bestimmen der Ausführungszeiten der Blöcke zum integrieren der Ausführungszeiten der vorab ausgelesenen Blöcke wird unten ebenfalls beschrieben.
- (1) N11 wird vorab ausgelesen und dann werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 0, 0)]
- (2) Da O0002 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (1) hat, wird N21 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 10, 0)]
- (3) Da O0003 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (2) hat, wird anschließend N31 vorab ausgelesen und es werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 10, 1)]
- (4) Da O0003 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (3) hat, wird N32 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 10, 2)]
- (5) Da O0003 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (4) hat, wird N33 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke jedes Programms integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 10, 3)]
- (6) Da O0003 den kürzesten integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (5) hat, wird N34 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 10, 403)]
- (7) Da O0002 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (6) aufweist, wird N22 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 110, 403)]
- (8) Da O0002 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (7) aufweist, wird N23 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 160, 403)]
- (9) Da O0002 den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke in (8) aufweist, wird N24 vorab ausgelesen und anschließend werden die Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der Programme integriert.
[integrierter Wert der Ausführungszeiten der vorab ausgelesenen Blöcke (O0001, O0002, O0003) = (300, 360, 403)]
-
1 ist ein Diagramm zur Veranschaulichung des integrierten Wertes („integrierte Ausführungszeit”) der Ausführungszeiten der vorab ausgelesenen Blöcke in jedem der drei Programme gemäß 12, und zwar einen Zustand, in dem neun Blöcke vorab durch die numerische Steuerung gemäß der Erfindung ausgelesen worden sind. Wie 1 zeigt, ist in einem Zustand, in dem die gleiche Anzahl von Blöcken wie beim Stand der Technik (neun Blöcke insgesamt) vorab ausgelesen worden sind, der integrierte Wert der Ausführungszeiten der vorab ausgelesen Blöcke 300 ms im Falle von O0001. Da die Vorabauslesung parallel zum Betrieb der vorab ausgelesenen Blöcke erfolgt, gibt es keine Wartezeit wenn die Vorabauslesung nicht rechtzeitig erfolgt.
-
2 zeigt ein Flussdiagramm für die Vorabauslesung wenn eine Mehrzahl von NC-Programmen parallel ausgeführt wird.
-
Dies wird nachfolgend anhand der einzelnen Schritte ausgeführt.
-
[Schritt SA01] Die Ausführungszeit der vorab ausgelesenen Blöcke wird mit Bezug auf alle Programme, die Gegenstand der Vorabauslesung sind, integriert. Dieser Schritt bildet eine Ausführungszeit-Integrationseinheit der numerischen Steuerung.
-
[Schritt SA02] Es wird bestimmt, ob es möglich ist das Programm PA mit dem kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Blöcke vorab auszulesen oder nicht, und wenn das Programm vorab ausgelesen werden kann (JA), dann geht das Verfahren zu Schritt SA03, während dann, wenn das Programm nicht vorab ausgelesen werden kann (NEIN), das Verfahren zu Schritt SA04 geht. Dieser Schritt bildet eine Ausführungszeitbestimmungseinheit der numerischen Steuerung.
-
[Schritt SA03] Der nächste Block des Programms PA wird vorab ausgelesen und das Verfahren geht zurück zu Schritt SA01. Dieser Schritt bildet eine Vorabausleseeinheit der numerischen Steuerung.
-
[Schritt SA04] Da in Schritt SA02 festgestellt worden ist, dass das Programm PA nicht vorab ausgelesen werden kann, wird das Programm PA aus dem Kreis der Vorabausleseobjekte ausgeschlossen.
-
[Schritt SA05] Es wird bestimmt, ob irgendeines der Programme, welche aus dem Kreis der laufend vorab auszulesenden Objekte ausgeschlossen worden ist, ein vorab auszulesendes Programm geworden ist oder nicht und wenn eines dieser Programme ein vorab auslesbares Programm geworden ist (JA), dann geht das Verfahren zu Schritt SA06, während dann, wenn keines dieser Programme ein vorab auslesbares Programm geworden ist (NEIN), dann geht das Verfahren zu Schritt SA07.
-
[Schritt SA06] Das vorab lesbare Programm wird zu den Vorableseobjekten hinzugefügt und das Verfahren geht zurück zu Schritt SA01.
-
[Schritt SA07] Es wird festgestellt, ob alle Programme von den Vorabausleseobjekten ausgeschlossen worden sind oder nicht und wenn JA, dann ist das Verfahren beendet, während dann, wenn nicht alle Programme von den Vorableseobjekten ausgeschlossen worden sind (NEIN), das Verfahren zurück zu Schritt SA01 geht.
-
Die nachfolgenden Gründe sind vorstellbar als Beispiele, bei denen ein Programm beim Flussdiagramm gemäß 2 von den Vorabausleseobjekten ausgeschlossen ist: eine Programmbeendigung, ein Rücksetzen, ein Stop durch Alarm oder ein Vorausleseausschlussbefehl.
-
Nunmehr wird das Verfahren zum Bestimmen der Ausführungszeiten der Blöcke für die Integration der Ausführungszeiten der vorab ausgelesenen Blöcke beschrieben.
-
Zunächst wird in ersten Einrichtungen zum Bestimmen der Ausführungszeiten von vorab ausgelesenen Blöcken die Bearbeitung im Voraus unter Verwendung der Werkzeugmaschine ausgeführt, es werden die Ausführungszeiten für jeden Block bei Ausführung der Bearbeitung gemessen (bestimmt), und die so gemessenen Ausführungszeiten werden in einer Speichereinrichtung der Steuerung der Werkzeugmaschine abgespeichert. Bei anschließenden und weiteren Bearbeitungen durch die Werkzeugmaschine werden die im Speicher abgelegten Ausführungszeiten ausgelesen, um so die jeweiligen Ausführungszeiten der vorab ausgelesenen Blöcke zur Verfügung zu haben.
-
Sodann werden in einer zweiten Einrichtung zum Bestimmen der Ausführungszeiten der vorab ausgelesenen Blöcke die Ausführungszeiten aus den Einzelheiten der Befehle bezüglich jeden Blocks im NC-Programm berechnet. Bei dieser zweiten Einrichtung (Ausführungszeitberechnungseinheit) handelt es sich um eine Einrichtung zum Berechnen der Zeit, die erforderlich ist, um das Werkzeug über einen vorgegebenen Weg durch einen NC-Befehl zu bewegen und die zweite Einrichtung weist folgendes auf: eine Einrichtung zum Unterteilen des Werkzeugweges in relativ kleine Segmente; eine Geschwindigkeitsberechnungseinheit, welche eine Geschwindigkeit in tangentialer Richtung der Segmente bestimmt; eine Segmentbewegungszeitberechnungseinheit, welche die Zeit berechnet, welche erforderlich ist, um das Werkzeug über jedes Segment zu bewegen, und zwar auf Basis der Geschwindigkeit in tangentialer Richtung, wie durch die Geschwindigkeitsberechnungseinheit bestimmt; und eine Werkzeugbewegungszeitberechnungseinheit, welche die Gesamtzeit bestimmt zum Bewegen über jedes Segment gemäß der Berechnung durch die Segmentbewegungszeitberechnungseinheit (mit anderen Worten: die Block-Ausführungszeit).
-
Die zweite Einrichtung ist als solche gut bekannt, zum Beispiel aus der
japanischen Patentveröffentlichung 2012-93975 , sodass eine weitere Beschreibung sich hier erübrigt.
-
Nunmehr wird mit Blick auf 8 eine ergänzende Beschreibung gegeben bezüglich der Beobachtung („Monitor”), der Betriebverlangsamung und des zweitweisen Anhaltens für den Fall, dass die Vorabauslesung des NC-Programmbetriebs nicht rechtzeitig ausgeführt wurde.
-
8 erläutert einen Fall, bei dem der Betrieb verlangsamt wird durch Reduzierung der Vorschubratenkorrektur wenn die Vorabauslesung des NC-Programmbetriebs nicht rechtzeitig durchgeführt wurde und wenn überhaupt keine vorab ausgelesenen Blöcke vorliegen, wird die Vorschubratenkorrektur auf null gesetzt und das Werkzeug zeitweise angehalten.
-
Beim Betrieb während der Vorabauslesung eines NC-Programms sind zumindest diejenigen vorab ausgelesenen Blöcke zugänglich, die eine Verlangsamung oder ein Anhalten des NC-Programmbetriebs ermöglichen entsprechend dem Verhältnis der tatsächlichen Rate in Bezug auf die laufende Befehlsrate für die Vorschubachse (Vorschubratenkorrektur).
-
Erfolgt die Vorabauslesung nicht rechtzeitig bei der laufenden Vorschubratenkorrektur, dann wird der Betrieb verlangsamt durch Reduzierung der Vorschubratenkorrektur, während dann, wenn überhaupt keine vorab ausgelesenen Blöcke vorliegen, die Vorschubratenkorrektur auf null gesetzt wird und das Werkzeug zeitweise angehalten wird. Erfolgt die Vorabauslesung des NC-Programms während einer solchen Verlangsamung oder eines Anhaltens und liegt die Situation, in welcher die Vorabauslesung nicht rechtzeitig erfolgt, nicht mehr vor, dann erfolgt eine Beschleunigung durch Erhöhung der Vorschubratenkorrektur.
-
Nunmehr wird ein Verfahren beschrieben zur Bestimmung, ob eine Vorabauslesung überhaupt erfolgt ist, wobei die laufende Vorschubratenkorrektur mit OVRD und die Zeit für eine sichere Verlangsamung und ein Anhalten (lineare Verlangsamung) mit T (ms) bezeichnet sind.
-
Der integrierte Wert (die integrierte Ausführungszeit (X der Ausführungszeiten der vorab ausgelesenen Blöcke in der Zeitspanne T (ms) vom Beginn der Verlangsamung bis zum Zeitweisen Anhalten beträgt (OVRD/100) × T/2 und deshalb kann dann, wenn festgestellt ist, dass die Vorabauslesung nicht rechtzeitig erfolgt ist bei X = (OVRD/100) × T/2, die Verlangsamung und das Anhalten in der Verlangsamungszeit T (ms) durchgeführt werden kann.
-
Dabei wird angenommen, dass die Verlangsamung linear ist, jedoch ist es auch möglich, in ähnlicher Weise festzustellen, dass die Vorabauslesung nicht rechtzeitig erfolgt ist im Falle einer glockenförmigen Verlangsamung oder bei einer anderen Abhängigkeit.
-
9 ist ein Flussdiagramm zur Erläuterung des Verfahren des NC-Programmbetriebs. Der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke sei X. Die laufende Vorschubratenkorrektur sei OVRD (%) und die Verlangsamungszeit sei T (ms). Nunmehr erfolgt die Beschreibung anhand der einzelnen Schritte.
-
[Schritt SB01] Es wird festgestellt, ob der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke kleiner ist als die durch die vorab ausgelesenen Blöcke verbrauchte Zeit, (OVRD/100) × T/2, während der Verlangsamungszeitspanne T (vom Beginn der Verlangsamung bis zum Zeitweisen Halt, oder nicht, und wenn der integrierte Wert X kleiner ist (JA), dann geht das Verfahren zu Schritt SB03, während dann, wenn der integrierte Wert X nicht kleiner ist (NEIN), dann geht das Verfahren zu Schritt SB02.
-
[Schritt SB02] Der NC-Programmbetrieb wird normal fortgesetzt und das Verfahren geht zurück zu Schritt SB01.
-
[Schritt SB03] Es wird festgestellt, ob die Vorabauslesung abgeschlossen ist bis zum letzten Block und wenn die Vorabauslesung bis zum letzten Block abgeschlossen ist (JA), dann ist das Verfahren beendet während dann, wenn die Vorabauslesung nicht bis zum letzten Block durchgeführt ist (NEIN), das Verfahren zum Schritt SB04 geht.
-
[Schritt SB04] Es wird festgestellt, dass die Vorabauslesung nicht rechtzeitig erfolgt und die Verlangsamung wird gestartet.
-
[Schritt SB05] Es wird festgestellt, ob die Vorabauslesung durchgeführt und der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke aktualisiert worden ist oder nicht und wenn der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke nach Durchführung der Vorabauslesung aktualisiert worden ist (JA), dann geht das Verfahren zu Schritt SB07, während dann, wenn der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke nach Durchführung der Vorabauslesung nicht aktualisiert worden ist (NEIN), dann geht das Verfahren zu Schritt SB06.
-
[Schritt Sb06] Die Verlangsamung wird fortgesetzt (ein zeitweises Anhalten erfolgt wenn keine Vorabausleseblöcke vorliegen) und das Verfahren geht zurück zu Schritt SB05.
-
[Schritt SB07] Da der Zustand, in dem die Vorabauslesung nicht rechtzeitig erfolgt ist, nicht mehr vorliegt aufgrund der in den Schritten SB05 und SB06 ausgeführten Routinen, wird die Verlangsamung oder das zeitweise Anhalten ausgesetzt und es erfolgt eine Beschleunigung; das Verfahren geht zurück zu Schritt SB01.
-
16 erläutert das Verfahren zum Speichern der Ausführungszeit unter der Annahme, dass der NC-Programmbetrieb mit der gegebenen Vorschubratenkorrektur erfolgt (ein Zustand, wo die Vorschubratenkorrektur 100% ist), auch wenn bei einem bestimmten Block eine Änderung der Ausführungszeit vorliegt, aufgrund der Verlangsamung oder des zeitweisen Anhaltens wie oben mit Blick auf die 8 und 9 beschrieben ist.
-
Während der anfänglichen 100 ms erfolgt der Betrieb mit einer Vorschubratenkorrektur von 100% entsprechend der Befehlsrate, jedoch ergibt sich danach, dass die Vorabauslesung nicht rechtzeitig erfolgt ist und somit erfolgt eine Verlangsamung des Betriebs um –1,0 (%/ms) für die nachfolgenden 100 ms und das Werkzeug wird dann mit einer Vorschubratenkorrektur von 60% betrieben und die Ausführung des entsprechenden Blockes wird abgeschlossen. In diesem Falle wäre die Ausführungszeit, in der keine Verlangsamung erfolgt: 100 × (100/100) = 100 (ms in Abschnitt (1), (100/100 + 60/100)/2 × 40 = 32 ms in Abschnitt (2), und 100 × (60/100) = 60 ms in Abschnitt (3), insgesamt also 192 ms.
-
Deshalb ist es auch dann, wenn die Verlangsamung und ein zeitweises Anhalten erfolgt ohne rechtzeitige Vorabauslesung, noch möglich, eine genaue Ausführungszeit durch die oben beschriebene „erste Einrichtung” abzuspeichern.
-
(II) Ausführung des Betriebs (Verlaufstabellenbetrieb) auf Basis von tabellenformatierten Daten.
-
Für die tabellenformatierten Daten beim Verlaufstabellenbetrieb wird eine Zeit oder eine Position einer Achse oder Spindel als Referenzzeit oder als Referenzachse oder Spindelposition verwendet und eine Position einer Achse oder Spindel, die nicht als Referenzachse oder Spindelposition dient, wird bezogen auf die Referenzzeit bzw. Referenzachse oder Spindelposition.
-
Bei Betrieb auf Basis tabellenformatierter Daten laufen alle Achse synchron in Bezug auf die Referenzzeit indem auf Basis der tabellenformatierten Daten die Zeitfolge des Durchlaufs des Werkzeuges durch jeden Punkt des Programmablaufs bestimmt wird. Entsprechend werden alle Befehle für die Spindel und Hilfsfunktionsbefehle synchron in Bezug auf die Referenzzeit abgegeben indem, auf Basis der tabellenformatierten Daten, die Zeitfolge der Ausgabe der Befehle für die Spindel und die Hilfsfunktionsbefehle bestimmt wird.
-
3 ist ein Blockdiagramm für einen Verlaufstabellenbetrieb entsprechend der oben erläuterten
japanischen Patentveröffentlichung 2012-234445 .
-
Eine numerische Steuerung, welche einen Verlaufstabellenbetrieb ausführt, weist folgendes auf: einen Referenzwertzähler 3, eine X-Achsen-Verlaufstabelle Tx, eine Z-Achsen-Verlaufstabelle Tz, und eine X-Achsen-Verlaufstabellen-Interpolationsverarbeitungseinheit 4x, eine Z-Achsen-Verlaufstabellen-Interpolationsverarbeitungseinheit 4z, einen X-Achsen(Vorschubachse)-Motor 5x, und einen Z-Achsen(Vorschubachse)-Motor 5z.
-
Die Referenzzeit kann für alle tabellenformatierten Daten gemeinsam eingerichtet sein oder es ist andererseits auch möglich, individuelle Referenzzeiten für die tabellenformatierten Daten vorzusehen. In der nachfolgenden Beschreibung ist der Einfachheit halter angenommen, dass eine gemeinsame Referenzzeit für alle tabellenformatierten Daten verwendet wird.
-
Die oben beschriebene
japanische Patentveröffentlichung 2012-234445 zeigt auch ein Blockdiagramm für einen Verlaufstabellenbetrieb entsprechend
4.
-
Die numerische Steuerung gemäß 4 zur Ausführung eines Verlaufstabellenbetriebs weist folgendes auf: einen ersten Referenzwertzähler 3a, einen zweiten Referenzwertzähler 3b und einen dritten Referenzwertzähler 3c, welche in entsprechend unabhängiger Weise eine Zeit, die Position einer Spindel oder die Position einer Vorschubachse (durch entsprechende Zählung) verfolgen; eine X-Achsen-Verlaufstabelle Tx, eine Spindel-Verlaufstabelle Ts; eine Hilfsfunktionsverlaufstabelle Tm; eine X-Achsen-Verlaufstabellen-Interpolationsverarbeitungseinheit 4x; eine Spindel-Verlaufstabellen-Interpolationsverarbeitungseinheit 4s; eine Hilfsfunktions-Verlaufstabellen-Ausgangsverarbeitungseinheit 4m; einen X-Achsen-Motor 5x; und einen Spindelmotor 5s.
-
Der erste Referenzwertzähler 3a, der zweite Referenzwertzähler 3b und der dritte Referenzwertzähler 3c zählen Signale eines Taktgebers der numerischen Steuerung oder ein Positionsdetektionssignal eines Positionsdetektors, der auf den einzelnen Vorschubachsen oder der Spindel installiert ist. Empfangen der erste Referenzwertzähler 3a, der zweite Referenzwertzähler 3b und der dritte Referenzwertzähler 3c jeweils ein Zähler-Rücksetzsignal, wird der Zählwert auf einen Anfangswert rückgesetzt während bei Empfang eines Haltesignals die Aktualisierung des Zählwertes unterbrochen wird und bei Empfang eines Neustartsignals die Aktualisierung des Zählwertes wieder aufgenommen wird.
-
Die Referenzwerte vom ersten Referenzwertzähler 3a, zweiten Referenzwertzähler 3b und dritten Referenzwertzähler 3c werden wahlweise geschaltet über Schalter 6a, 6b und 6c. Beispielsweise kann der Verlaufstabellenbetrieb durch Ausführung der X-Achsen-Verlaufstabelle Tx entsprechend dem Referenzwert vom ersten Referenzwertzähler 3a, die Spindel-Verlaufstabelle Ts entsprechend dem Referenzwert vom zweiten Referenzwertzähler 3b, und die Hilfsfunktions-Verlaufstabelle Tm entsprechend dem Referenzwert vom dritten Referenzwertzähler 3c ausgeführt werden. Andererseits kann der Verlaufstabellenbetrieb auch ausgeführt werden durch Ausführung aller Verlaufstabellen Tx, Ts, Tm entsprechend dem Referenzwert vom Referenzwertzähler 3a in Abhängigkeit von der Einstellung der Schalter 6a, 6b und 6c. Beispiele sind hier bezüglich der X-Achsen-Verlaufstabelle, einer Spindel S-Verlaufstabelle und einer Hilfsfunktionsverlaufstabelle in 5 gegeben, welche durch die numerische Steuerung gemäß 4 ausgeführt werden. Werden die Verlaufstabellen gemäß 5 durch eine numerische Steuerung gemäß 4 ausgeführt, dann führt die Werkzeugmaschine im Verlaufstabellenbetrieb die Operationen nach 6 mit entsprechendem Fortschreiten der Referenzzeit aus.
-
Gemäß der Erfindung wird die Vorabauslesung durch Priorisierung der Vorabauslesung der Verlaufstabelle mit dem kürzesten integrierten Wert der Ausführungszeiten in den vorab ausgelesenen Blöcken ausgeführt. Werden die Verlaufstabellen gemäß 14 abgearbeitet, dann erfolgt die Vorabauslesung in der nachfolgend beschriebenen Sequenz. Die Werte in der Klammer [] zeigen dabei die Verlaufstabellennamen und die integrierten Werte (integrierte Ausführungszeiten) der Ausführungszeiten der Blöcke entsprechend den einzelnen Verlaufstabellen. Die Unterstreichungen zeigen die Verlaufstabelle mit dem kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesenen Programmblöcke. Die Ausführungszeiten der Blöcke zur Integration der Ausführungszeiten der vorab ausgelesenen Blöcke werden weiter unten beschrieben.
- (1) L1 in <X> ist vorab ausgelesen und dann werden die Ausführungszeiten der vorab ausgelesen Blöcke in jedem der Programme berechnet.
[integrierte Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 0, 0)]
- (2) Da <S> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (1) hat, wird anschließend L100 in <S> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 100, 0)]
- (3) Da <M> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (2) hat, wird anschließend L100 in <M> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (1, 100, 1000)]
- (4) Da <X> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (3) hat, wird anschließend L2 in <X> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (2, 100, 1000)]
- (5) Da <X> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (4) hat, wird anschließend L3 in <X> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (3, 100, 1000)]
- (6) Da <X> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (5) hat, wird anschließend L300 in <X> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (300, 100, 1000)]
- (7) Da <S> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (6) hat, wird anschließend L150 in <S> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (300, 150, 1000)]
- (8) Da <S> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (7) hat, wird anschließend L200 in <S> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (300, 200, 1000)]
- (9) Da <S> den kürzesten integrierten Wert der Ausführungszeiten der vorab ausgelesen Blöcke in (8) hat, wird anschließend L300 in <S> vorab ausgelesen und die Ausführungszeiten der vorab ausgelesen Blöcke werden für jedes der Programme berechnet.
[integrierter Wert der Ausführungszeiten der vorab gelesenen Blöcke (<X>, <S>, <M>) = (300, 300, 1000)]
-
7 ist ein Diagramm zur Erläuterung des integrierten Wertes der Ausführungszeiten der vorab ausgelesenen Blöcke in jeder der drei Verlaufstabellen entsprechend 14, und zwar in einem Zustand, in dem neun Blöcke vorab ausgelesen worden sind, gemäß der vorliegenden Erfindung.
-
Wie 7 zeigt, ist in dem Zustand, in dem die gleiche Anzahl von Blöcken wie im Stand der Technik ausgelesen worden sind (neun Blöcke insgesamt) der integrierte Wert der Ausführungszeiten am kürzesten, nämlich 300 ms, im Falle von <X> und <S>. Da die Vorabauslesung parallel während des Betriebs der vorab ausgelesenen Blöcke erfolgt, ist die Wahrscheinlichkeit sehr gering, dass die Vorabauslesung nicht rechtzeitig erfolgt. Aber auch dann, wenn die Vorabauslesung nicht rechtzeitig erfolgt, wird kein Alarm oder sofortiger Achsenstopp veranlasst, wie beim Stand der Technik, weil der Betrieb der Verlaufstabelle ein Warten auf die Vorabauslesung vorsieht.
-
Nunmehr wird anhand der 8 eine ergänzende Erläuterung gegeben mit Bezug auf die Beobachtung („Monitoring”) die Betriebsverlangsamung und das zeitweise Anhalten für den Fall, dass die Vorabauslesung des Verlaufstabellenbetriebs nicht rechtzeitig erfolgt ist. 8 zeigt den Fall, bei dem der Betrieb durch Reduzierung der Zeitkorrektur verlangsamt wird wenn die Vorabauslesung des Verlaufstabellenbetriebs nicht rechtzeitig erfolgt, und dann, wenn überhaupt keine vorab ausgelesenen Blöcke vorliegen, wird die Zeitkorrektur auf null gesetzt, um einen zeitweiligen Halt zu bewirken.
-
Beim Betrieb während der Vorabauslesung von Verlaufstabellen wird zumindest sichergestellt, dass diejenigen vorab gelesenen Blöcke, welche eine Verlangsamung und ein Anhalten des Verlaufstabellenbetriebs ermöglichen, einsatzbereit sind mit Bezug auf das Voranschreiten der laufenden Referenzzeit (Zeitkorrektur).
-
Erfolgt die Vorabauslesung nicht rechtzeitig entsprechend der laufenden Zeitkorrektur, dann wird der Betrieb verlangsamt durch Reduzierung der Zeitkorrektur und falls überhaupt keine vorab ausgelesenen Blöcke vorliegen, dann wird die Zeitkorrektur auf null gesetzt und das Werkzeug wird zeitweise angehalten. Erfolgt die Vorabauslesung der Verlaufstabelle während des Verlangsamens oder Anhaltens, und hört der Zustand auf, in dem die Vorabauslesung nicht rechtzeitig erfolgt, dann erfolgt eine Beschleunigung durch Einführung der Zeitkorrektur.
-
Ein Verfahren zum Berechnen der Referenzzeit zur Bestimmung, dass eine Vorabauslesung nicht rechtzeitig erfolgt ist, wird nunmehr beschrieben, wobei die gerade laufende Zeitkorrektur mit OVRD bezeichnet ist und die Zeit zum Verlangsamen und sicheren Anhalten bei linearer Verlangsamung mit T (ms) bezeichnet sind.
-
Der integrierte Wert (die integrierte Ausführungzeit) X der Ausführungszeiten der vorab ausgelesenen Blöcke in der Zeitspanne T (ms) vom Beginn der Verlangsamung bis zum zeitweisen Anhalten wird verbraucht gemäß (OVRD/100) × T/2 und deshalb kann dann, wenn festgestellt wird, dass die Vorabauslesung nicht in einer Zeit erfolgt ist mit X = OVRD/100 × T/2, das Verlangsamen und Anhalten in der Abbremszeit T (ms) erfolgen.
-
Dabei wird angenommen, dass die Verlangsamung linear verläuft, jedoch ist es auch möglich, die Referenzzeit zur Bestimmung, dass die Vorabauslesung nicht rechtzeitig erfolgt, für den Fall eines glockenförmigen Verlaufs der Verlangsamung oder einer anderen Funktion in ähnlicher Weise zu berechnen.
-
10 zeigt ein Flussdiagramm für den Verlaufstabellenbetrieb. Der integrierte Wert der Ausführungszeiten der vorab ausgelesenen Blöcke wird mit X bezeichnet. Die laufende Zeitkorrektur wird mit OVRD (%) bezeichnet und die Verlangsamungszeit mit T (ms). Die Beschreibung erfolgt nunmehr in Form der einzelnen Schritte.
-
[Schritt SC01] Es wird bestimmt, ob der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke kleiner ist als die durch die vorab ausgelesenen Blöcke verbrauchte Zeitspanne, (OVRD/100) × T/2, während der Verlangsamungszeitspanne T (vom Start der Verlangsamung bis zum zeitweisen Anhalten), und ist der integrierte Wert X kleiner (JA), dann geht das Verfahren zu Schritt SC03, während dann, wenn der integrierte Wert X nicht kleiner ist (NEIN), dann geht das Verfahren zu Schritt SC02.
-
[Schritt SC02] Der Betrieb mit tabellenformatierten Daten wird normal fortgesetzt und das Verfahren geht zurück zu Schritt SC01.
-
[Schritt SC03] Es wird bestimmt, ob die Vorabauslesung bis zum letzten Block vervollständigt ist und ist dies der Fall (JA), dann ist es Verfahren zu Ende, während dann, wenn die Vorabauslesung nicht bis zum letzten Block fortgeschritten ist (NEIN), dann geht das Verfahren zu Schritt SC04.
-
[Schritt SC04] Es wird festgestellt, dass die Vorabauslesung nicht rechtzeitig erfolgt ist und die Verlangsamung beginnt.
-
[Schritt SC05] Die Vorabauslesung erfolgt und es wird ermittelt, ob der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Blöcke aktualisiert ist und wenn dies der Fall ist (JA) dann geht das Verfahren zu Schritt SC07 während dann, wenn der integrierte Wert X der Ausführungszeiten der vorab ausgelesenen Böcke nicht aktualisiert ist (NEIN), dann geht das Verfahren zu Schritt SC06.
-
[Schritt SC06] Die Verlangsamung wird fortgesetzt (ein zeitweises Anhalten erfolgt, wenn keine vorab ausgelesenen Blöcke vorliegen) und das Verfahren geht zurück zu Schritt SC05.
-
[Schritt SC07] Da der Umstand, dass die Vorabauslesung nicht rechtzeitig erfolgt ist, nicht mehr vorliegt aufgrund der Vorgänge in den Schritten SC05 und SC06, wird die Verlangsamung oder das zeitweise Anhalten ausgesetzt und es erfolgt eine Beschleunigung und das Verfahren geht zurück zu Schritt SC01.
-
Nunmehr werden die Ausführungszeiten der Blöcke, welche für die Integration bezüglich der vorab ausgelesenen Blöcke herangezogen wurden, noch näher erläutert. Die Ausführungszeitenintegrationseinheit, welche die Ausführungszeiten der vorab ausgelesenen Blöcke integriert, ist eine Einrichtung zum Vorhersagen des integrierten Wertes der Ausführungszeiten der vorab ausgelesenen Blöcke aufgrund der Differenz zwischen der laufenden Referenzzeit und den Referenzzeiten der vorab ausgelesenen Blöcke.
-
11 ist ein prinzipielles Blockdiagramm einer numerischen Steuerung gemäß der Erfindung zum Ausführen eines NC-Programms oder eines Verlaufstabellenbetriebes. Die CPU 11 ist ein Prozessor, der die numerischen Steuerung 10 insgesamt steuert. Die CPU 11 (zentraler Prozessor) liest ein in einem ROM 12 gespeichertes Systemprogramm über den Bus 20 und steuert die numerische Steuerung insgesamt entsprechend diesem Systemprogramm. Zeitweise anfallende Rechendaten, Anzeigedaten und unterschiedliche durch eine Bedienungsperson über eine Anzeigeeinrichtung oder eine manuelle Eingabe (MDI 70) eingegebene Daten werden in einem RAM 13 gespeichert. Das SRAM 14 wird durch eine Batterie gesichert und dient als nicht flüchtiger Speicher auch dann, wenn die Stromversorgung für die numerische Steuerung 10 abgeschaltet ist.
-
Ein Bearbeitungsprogramm (MC-Programm), welches über die Schnittstelle 15 und/oder in Bearbeitungsprogramm, welches über eine Anzeigeeinrichtung/MDI-Einheit 70 oder dergleichen eingegeben wurde, werden in dem SRAM 14 gespeichert. Weiterhin werden die verschiedenen tabellenformatierten Daten (Verlaufstabellen), wie sie oben beschrieben sind, im Voraus abgespeichert. Weiterhin werden verschiedene Systemprogramme zum Erzeugen eines Bearbeitungsprogrammes und Ausführungsroutinen im Voraus in dem Speicher ROM 12 abgelegt. Hinsichtlich des Ortes der Speicherung der NC-Programmen und der Verlaufstabellen können in Übereinstimmung mit der Erfindung diese im Voraus in einer externen Speichereinrichtung, die über ein Netzwerk angeschlossen ist, abgespeichert werden oder auch in einer Speichereinrichtung innerhalb der numerischen Steuerung, wobei die einzelnen Blöcke des NC-Programms und die Daten der Verlaufstabellen bei Anschluss über ein Netzwerk über dieses sukzessive ausgelesen werden können.
-
Die Schnittstelle 15 ermöglicht einen Anschluss der numerischen Steuerung 10 mit externen Einrichtungen, wie einem Adapter (nicht gezeigt). Ein Bearbeitungsprogramm, das von der numerischen Steuerung 10 herausgegeben wird, kann in einem externen Speicher abgelegt werden. Die programmierbare Maschinensteuerung (PMC) 16 implementiert Steuerungen durch Ausgabe von Signalen über die I/O-Einheit 17 an die unterstützende Ausrüstung entsprechend der Abfolge eines in der numerischen Steuerung 10 installierten Programms. Die PMC 16 empfängt weiterhin Signale unterschiedlicher Schalter und dergleichen von einer Bedienungseinrichtung der Werkzeugmaschine und führt die erforderliche Signalverarbeitung aus, deren Ergebnisse an die CPU 11 gegeben werden. Die Anzeigeeinrichtung (MDI-Einheit) 70 ist eine Einrichtung zur manuellen Dateneingabe mit zum Beispiel einem Anzeigebildschirm und einer Tastatur etc. Die Schnittstelle 18 empfängt Daten und Befehle von der Anzeigeeinrichtung und/oder der Tastatur der MDI-Einheit 70 und übermittelt diese an die CPU 11. Die Schnittstelle 19 ist mit der Betriebseingabeeinrichtung 71 zum Empfangen von verschiedenen Befehlen verbunden.
-
Die Achsensteuerschaltungen 30, 31 der Vorschubachsen empfangen Bewegungsbefehle für die einzelnen Achsen von der CPU 11 und geben entsprechende Steuerbefehle an die Servoverstärker 40, 41. Die Servoverstärker 40, 41 erhalten diese Befehle und treiben Servomotoren 50x, 51z der Vorschubachsen an. Die Servomotoren 50x, 51z der Vorschubachsen haben eingebaute Positions-/Geschwindigkeitsdetektoren (nicht dargestellt) und Positions- bzw. Geschwindigkeits-Rückkoppelsignale von diesen Detektoren werden in die Achsen-Steuerschaltungen 30, 31 rückgeführt, um so eine Steuerschleife bezüglich der Position und der Geschwindigkeiten zu bilden. In 11 ist diese Steuerschleife bezüglich Position und Geschwindigkeit nicht näher dargestellt.
-
Die Spindelsteuerschaltung 60 empfängt einen Spindelrotationsbefehl und gibt ein Spindelgeschwindigkeitssignal an den Spindelverstärker 61. Der Spindelverstärker 61 empfängt das Spindelgeschwindigkeitssignal und bewirkt, dass der Spindelmotor 62 mit der gewünschten Drehgeschwindigkeit dreht. Ein Positionscodierer 63 koppelt einen Puls zurück (Referenzpuls) sowie ein Spindel-Rotationssignal zur Spindelsteuerschaltung 60 synchron mit der Drehung des Spindelmotors 62 und so wird die Drehgeschwindigkeitssteuerung durchgeführt. Diese Rückkoppelpulse (Referenzpulse) und das einzelne Rotationssignal werden über die Spindelsteuerschaltung 60 in die CPU gegeben und der Rückkoppelpuls (Referenzpuls) wird durch einen Zähler im RAM 13 gezählt (einem Zähler, der den einzelnen Referenzwertzählern gemäß den 3 und 4 entspricht). Die Befehlspulse bezüglich der Spindel können auch gezählt werden.
-
Der im RAM 13 vorgesehene Zähler kann bezüglich des Verlaufstabellenbetriebs ein Referenzsignal gewinnen durch Zählen der Anzahl von Pulsen eines Taktgebers in der numerischen Steuerung 10 oder durch Zählen der Anzahl von Pulsen, die als Rückkoppelsignal von den Vorschubachsen erhalten werden oder aus der Anzahl der Steuerpulse für die Vorschubachsen.
-
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 2007-94936 [0002]
- JP 2007-164509 [0002]
- JP 2008-40542 [0002]
- JP 59-177604 [0003]
- JP 2012-234445 [0003, 0082, 0085]
- JP 2012-93975 [0004, 0016, 0061]