-
HINTERGRUND DER ERFINDUNG
-
Gebiet der Erfindung
-
Die Erfindung betrifft einen Bewegungscontroller, der die Programmausführungsgeschwindigkeit spezifizieren kann.
-
Beschreibung des Stands der Technik
-
Wird eine Vorrichtung, die mit einem Peripheriegerät zusammenarbeitet, von einem Bewegungscontroller gesteuert, der der Reihe nach ein vorab gespeichertes Programm ausführt, das eine Anzahl Blöcke enthält, so kann das Peripheriegerät in den Bewegungsbereich der Vorrichtung eindringen und die Vorrichtung und das Peripheriegerät können zusammenstoßen, falls das Programm nicht innerhalb einer gegebenen Zeit endet. Dazu wird herkömmlicherweise die Ausführungszeit des gesamten Programms im Voraus ermittelt, und das Verhältnis zwischen der Ausführungszeit und einer gewünschten Zeit wird zu einem Korrekturwert gemacht, damit man die Programmausführungszeit durch Verändern der Bewegungsgeschwindigkeiten der Achsen einstellen kann.
-
Nun wird der Betrieb eines Systems beschrieben, das eine Bearbeitungsmaschine, einen Lader und einen Bewegungscontroller enthält. Das System, siehe 1, führt das Laden, Bearbeiten und Entladen der Reihe nach aus. Eine externe Führung legt eine Ausführgeschwindigkeit für das gesamte System fest, und jede Vorrichtung arbeitet in einer zugewiesenen Zeit, damit die Ausführgeschwindigkeit eingehalten wird. Gibt beispielsweise die Führung einen Befehl zum Setzen der Geschwindigkeit des gesamten Systems auf 50 Prozent, so führt jedes Vorrichtung ihren eigenen Ablauf mit einer Geschwindigkeit von 50 Prozent aus.
-
Soll in der Bearbeitungsmaschine das Programm so ausgeführt werden, dass die von der Führung spezifizierte Ausführungszeit eingehalten wird, so wird herkömmlicherweise das Verhältnis zwischen der vorab gemessenen Ausführungszeit des Programms und der spezifizierten Zeit als Korrekturwert eingestellt, und die Bewegungsgeschwindigkeiten der Achsen werden verändert. Ist jedoch ein Element vorhanden, beispielsweise eine Prüfung der erreichten Position oder eine zeitlich festgelegte Beschleunigung und Verzögerung, für die die Ausführungszeit von dem Korrekturwert unabhängig ist, so können die Programmausführungszeit und die spezifizierte Zeit trotz einer eingestellten Korrekturzeit voneinander abweichen.
-
In der offengelegten
japanischen Patentschrift Nr. 2007-234002 ist offenbart, dass, wenn ein einziger Block in einem Programm enthalten ist, das Programm in einer spezifizierten Zeit ausgeführt wird. Diese Vorgehensweise wird jedoch nicht auf ein Programm mit mehreren Blöcken angewendet.
-
Wird die Bearbeitungszeit verlängert, so können ein Lader, der sich zum Entladen vorwärts bewegt, und die Bearbeitungsmaschine zusammenstoßen. Um einen solchen Zusammenprall zu verhindern wird der Korrekturwert üblicherweise auf einen größeren Wert gesetzt, damit die Ausführungszeit des Programms geringfügig kürzer als die spezifizierte Zeit wird. Dadurch kann ein Zusammenprall verhindert werden; es ist jedoch eine schnellere Bewegung oder Beschleunigung erforderlich als bei der Ausführung in der spezifizierten Zeit. Dadurch wird viel Energie verbraucht.
-
WO 2013/038 543 A1 und
DE 11 2011 105 627 T5 zeigen ein Bearbeitungssystem mit einer Bearbeitungsprogramm-Erschaffungsvorrichtung, wobei eine Beschleunigung-Verlangsamung-Befehl-Erzeugungseinheit auf Grundlage im Voraus gesetzter mechanischer Dynamikeigenschaften Beschleunigungen und Verlangsamungen bei Bewegungsbefehlen einstellt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Hinsichtlich der Probleme des Stands der Technik ist es eine Aufgabe der Erfindung, einen Bewegungscontroller bereitzustellen, der es erlaubt, ein Programm in einer spezifizierten Ausführungszeit auszuführen, und zwar auch dann, wenn das Programm ein Element enthält, beispielsweise eine Prüfung der erreichten Position oder eine zeitlich festgelegte Beschleunigung oder Verzögerung, für die die Ausführungszeit von dem Korrekturwert unabhängig ist.
-
Gemäß der Erfindung wird das Folgende vorab ausgeführt: eine Messung der Ausführungszeit, die verstreicht wenn ein Programm ohne Kontrolle ausgeführt wird; das Festsetzen einer gewünschten Ausführungszeit; und das Festsetzen einer Zeit, die unmittelbar nach einem Impuls beginnt, der nach Abschluss eines jeden Blocks im Programm ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist. Nun wird eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block, die es erlaubt, das Programm in der spezifizierten Ausführungszeit abzuarbeiten, abhängig von der gemessenen Programmausführungszeit und der gewünschten Ausführungszeit und der Zeit, die zum Herstellen des festgelegten Position-erreicht-Status nötig ist, berechnet. Das Programm wird mit der berechneten Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante ausgeführt.
-
Ein erster Aspekt des Bewegungscontrollers der Erfindung ist ein Bewegungscontroller, der der Reihe nach ein vorab geladenes Programm ausführt, das aus mehreren Blöcken besteht. Der Bewegungscontroller enthält: einen Blockausführungszeit-Messabschnitt, der die tatsächliche Ausführungszeit eines jeden der Blöcke misst, aus denen das Programm besteht; einen Programmausführungszeit-Spezifizierungsabschnitt, der die Ausführungszeit des gesamten Programms spezifiziert; einen Positionierungszeit-Einstellabschnitt, der eine Zeit einstellt, die unmittelbar nach einem Impuls beginnt, der für den abgeschlossenen Block ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist; einen Berechnungsabschnitt, der eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block berechnet, die es erlaubt, das Programm in der Programmausführungszeit auszuführen, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und zwar abhängig von der Ausführungszeit eines jeden Blocks, den der Blockausführungszeit-Messabschnitt tatsächlich misst, der Programmausführungszeit, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und der Zeit, die zum Herstellen des Position-erreicht-Status nötig ist, die der Positionierungszeit-Einstellabschnitt einstellt; und einen Ausführungsabschnitt, der das Programm ausführt, und zwar unter Verwendung der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante, die der Berechnungsabschnitt berechnet.
-
Ein zweiter Aspekt des Bewegungscontrollers der Erfindung ist ein Bewegungscontroller, der der Reihe nach ein vorab geladenes Programm ausführt, das aus mehreren Blöcken besteht. Der Bewegungscontroller enthält: einen Blockausführungszeit-Messabschnitt, der die tatsächliche Ausführungszeit eines jeden der Blöcke misst, aus denen das Programm besteht; einen Programmausführungszeit-Spezifizierungsabschnitt, der die Ausführungszeit des gesamten Programms spezifiziert; einen Positionierungszeit-Messabschnitt, der eine tatsächliche Zeit misst, die unmittelbar nach einem Impuls beginnt, der für den abgeschlossenen Block ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist; einen Berechnungsabschnitt, der eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block berechnet, die es erlaubt, das Programm in der Programmausführungszeit auszuführen, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und zwar abhängig von der Ausführungszeit eines jeden Blocks, den der Blockausführungszeit-Messabschnitt tatsächlich misst, der Programmausführungszeit, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und der Zeit, die zum Herstellen des Position-erreicht-Status nötig ist, die der Positionierungszeit-Messabschnitt tatsächlich misst; und einen Ausführungsabschnitt, der das Programm ausführt, und zwar unter Verwendung der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante, die der Berechnungsabschnitt berechnet.
-
Der Bewegungscontroller kann zudem einen Hilfsfunktions-Ausführungszeit-Einstellabschnitt enthalten, der eine Zeit einstellt, die zum Ausführen einer Hilfsfunktion nötig ist. Der Berechnungsabschnitt kann die Geschwindigkeit oder die Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block, die es erlaubt, das Programm in der spezifizierten Ausführungszeit auszuführen, unter Einbeziehung der Ausführungszeit der Hilfsfunktion berechnen, die der Hilfsfunktions-Ausführungszeit-Einstellabschnitt festsetzt.
-
Der Bewegungscontroller kann zudem einen Hilfsfunktions-Ausführungszeit-Messabschnitt enthalten, der die tatsächliche Zeit misst, die zum Ausführen einer Hilfsfunktion nötig ist. Der Berechnungsabschnitt kann die Geschwindigkeit oder die Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block, die es erlaubt, das Programm in der spezifizierten Ausführungszeit auszuführen, unter Einbeziehung der Ausführungszeit der Hilfsfunktion berechnen, die der Hilfsfunktions-Ausführungszeit-Messabschnitt misst.
-
Ein dritter Aspekt des Bewegungscontrollers der Erfindung ist ein Bewegungscontroller, der der Reihe nach ein vorab geladenes Programm ausführt, das aus mehreren Blöcken besteht. Der Bewegungscontroller enthält: einen Blockausführungszeit-Analyseabschnitt, der die Ausführungszeit eines jeden der Blöcke analysiert, aus denen das Programm besteht; einen Programmausführungszeit-Spezifizierungsabschnitt, der die Ausführungszeit des gesamten Programms spezifiziert; einen Positionierungszeit-Einstellabschnitt, der eine Zeit einstellt, die unmittelbar nach einem Impuls beginnt, der für den abgeschlossenen Block ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist; einen Berechnungsabschnitt, der eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block berechnet, die es erlaubt, das Programm in der Programmausführungszeit auszuführen, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und zwar abhängig von der Ausführungszeit eines jeden Blocks, den der Blockausführungszeit-Analyseabschnitt analysiert, der Programmausführungszeit, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, und der Zeit, die zum Herstellen des Position-erreicht-Status nötig ist, die der Positionierungszeit-Einstellabschnitt einstellt; und einen Ausführungsabschnitt, der das Programm ausführt, und zwar unter Verwendung der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante, die der Berechnungsabschnitt berechnet.
-
Ein vierter Aspekt des Bewegungscontrollers der Erfindung ist ein Bewegungscontroller, der der Reihe nach ein vorab geladenes Programm ausführt, das aus mehreren Blöcken besteht. Der Bewegungscontroller enthält: einen Blockausführungszeit-Messabschnitt, der die tatsächliche Ausführungszeit eines jeden der Blöcke misst, aus denen das Programm besteht; einen Programmausführungsgeschwindigkeitsverhältnis-Spezifizierungsabschnitt, der ein Verhältnis der Ausführungsgeschwindigkeit für das gesamte Programm einstellt; einen Positionierungszeit-Einstellabschnitt, der eine Zeit einstellt, die unmittelbar nach einem Impuls beginnt, der für den abgeschlossenen Block ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist; einen Berechnungsabschnitt, der eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block berechnet, die es erlaubt, das Programm mit einem Programmausführungsgeschwindigkeits-Verhältnis auszuführen, das der Programmausführungsgeschwindigkeitsverhältnis-Spezifizierungsabschnitt spezifiziert, und zwar abhängig von der Ausführungszeit eines jeden Blocks, den der Blockausführungszeit-Messabschnitt tatsächlich misst, dem Programmausführungsgeschwindigkeitsverhältnis, das der Programmausführungsgeschwindigkeitsverhältnis-Spezifizierungsabschnitt spezifiziert, und der Zeit, die zum Herstellen des Position-erreicht-Status nötig ist, die der Positionierungszeit-Einstellabschnitt einstellt; und einen Ausführungsabschnitt, der das Programm ausführt, und zwar unter Verwendung der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante, die der Berechnungsabschnitt berechnet.
-
Ein fünfter Aspekt des Bewegungscontrollers der Erfindung ist ein Bewegungscontroller, der simultan eine Anzahl vorab geladener Programme ausführt, die jeweils aus mehreren Blöcken bestehen. Der Bewegungscontroller enthält: einen Blockausführungszeit-Messabschnitt, der die Ausführungszeit eines jeden der Blöcke misst, aus denen die Programme bestehen; einen Messabschnitt für ein spezifiziertes Programm, der die tatsächliche Ausführungszeit eines gesamten Programms misst, das aus der Anzahl Programme spezifiziert wird; einen Programmausführungszeit-Spezifizierungsabschnitt, der die Ausführungszeit eines jeden Programms spezifiziert; einen Positionierungszeit-Einstellabschnitt, der eine Zeit einstellt, die unmittelbar nach einem Impuls beginnt, der für den abgeschlossenen Block ausgegeben wird, und dauert, bis ein Position-erreicht-Status hergestellt ist; einen Berechnungsabschnitt, der eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block berechnet, die es erlaubt, jedes Programm in der gleichen Programmausführungszeit wie die Ausführungszeit des spezifizierten Programms auszuführen, und zwar abhängig von der Ausführungszeit eines jeden Programms, die der Programmausführungszeit-Spezifizierungsabschnitt spezifiziert, der Ausführungszeit des gesamten spezifizierten Programms, die der Messabschnitt für das spezifizierte Programm misst, und der Zeit, die zum Herstellen des Position-erreicht-Status nötig ist, die der Positionierungszeit-Einstellabschnitt einstellt; und einen Ausführungsabschnitt, der simultan die Anzahl Programme ausführt, und zwar unter Verwendung der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante, die der Berechnungsabschnitt berechnet.
-
Der Bewegungscontroller kann zudem einen Blockausführungszeit-Messabschnitt enthalten, der die tatsächliche Ausführungszeit eines jeden Blocks misst, aus denen das Programm besteht, während das Programm ausgeführt wird, und einen Block-Geschwindigkeits/Beschleunigungs- und Verzögerungs-Zeitkonstanten-Berechnungsabschnitt, der die Geschwindigkeit oder die Beschleunigungs- und Verzögerungs-Zeitkonstante berechnet, die nachfolgend auszuführen ist, und zwar abhängig von der tatsächlichen Blockausführungszeit, die der Blockausführungszeit-Messabschnitt misst. Ein Zielblock wird mit der Geschwindigkeit oder der Beschleunigungs- und Verzögerungs-Zeitkonstante ausgeführt, die der Block-Geschwindigkeits/Beschleunigungs- und Verzögerungs-Zeitkonstanten-Berechnungsabschnitt berechnet, damit die Ausführungsgeschwindigkeit für das gesamte Programm so geändert wird, dass die Ausführungsgeschwindigkeit der Ausführungszeit oder dem Verhältnis entspricht, die das Programm spezifiziert.
-
Der Bewegungscontroller kann zudem einen Blockbeschleunigungs-Analyseabschnitt enthalten, der die Beschleunigung eines jeden in dem Programm enthaltenen Blocks untersucht, und einen Geschwindigkeits/Beschleunigungs- und Verzögerungs-Zeitkonstanten-Berechnungsabschnitt, der die Beschleunigungen der Blöcke vergleicht, die der Blockbeschleunigungs-Analyseabschnitt untersucht, damit eine Geschwindigkeit oder eine Beschleunigungs- und Verzögerungs-Zeitkonstante so berechnet wird, dass die Beschleunigung für einen Block mit der höchsten Beschleunigung verringert wird. Die Beschleunigung wird in gezielter Weise für einen Hochbeschleunigungsabschnitt des gesamten auszuführenden Programms verringert, damit die Ausführungsgeschwindigkeit des gesamten Programms in einer Weise geändert wird, dass die Ausführungsgeschwindigkeit der Ausführungszeit oder dem Verhältnis entspricht, das das Programm spezifiziert.
-
Die Erfindung erlaubt es, das Programm in einer gewünschten Zeit auszuführen, und zwar auch dann, wenn ein Element vorhanden ist, wie eine Prüfung der erreichten Position oder eine Beschleunigung und Verzögerung mit fester Zeit, für die die Ausführungszeit unabhängig von der Korrektur ist. Dies verringert den Energieverbrauch auf die geringstmögliche Menge.
-
Figurenliste
-
Die genannten Aufgaben und Merkmale der Erfindung und weitere Aufgaben und Merkmale gehen aus der folgenden Beschreibung von Ausführungsformen anhand der beigefügten Zeichnungen deutlicher hervor.
-
Es zeigt:
- 1 eine Skizze der Arbeitsweise eines Systems, das eine Bearbeitungsmaschine, einen Lader und einen Bewegungscontroller enthält;
- 2 eine Beispielskizze eines Programms, das die erste Ausführungsform des Bewegungscontrollers der Erfindung erläutert;
- 3 eine Skizze mit dem Zusammenhang zwischen der Ausführungszeit Tpr des gesamten Programms und der Ausführungszeit Tpr_1 und Tpr_2 der Blöcke (Block 1 und Block 2), die das Programm bilden;
- 4 eine Skizze mit dem Zusammenhang zwischen der tatsächlich gemessenen Programmausführungszeit Tpr, der tatsächlich gemessenen Blockausführungszeit Tpr_i, einer gewünschten Programmausführungszeit Tps und einer Blockausführungszeit Tbs_i, die verstreicht, wenn das Programm mit der gewünschten Programmausführungszeit Tps ausgeführt wird;
- 5 eine Skizze mit dem Zusammenhang zwischen der Blockausführungszeit Tpr_i, die verstreicht, wenn das Programm in der gewünschten Zeit ausgeführt wird, einer Bewegungsentfernung L_i, einer Beschleunigungs- und Verzögerungs-Zeitkonstante Tcon_i, und einer vorhergesagten Position-erreicht-Zeit Tinp und einer Bewegungsgeschwindigkeit Fs_i;
- 6 eine Skizze mit einem Beispiel eines Programms, das die dritte Ausführungsform des Bewegungscontrollers der Erfindung erläutert;
- 7 eine Skizze, die den Zusammenhang zwischen einer Bewegungsbefehlsblock-Ausführungszeit Tbr_i und der Programmausführungszeit Tpr erläutert;
- 8 eine Skizze, die den Zusammenhang zwischen der tatsächlich gemessenen Programmausführungszeit Tpr, der tatsächlich gemessenen Bewegungsbefehlsblock-Ausführungszeit Tbr_i, der gewünschten Programmausführungszeit Tps, einer vorhergesagten Hilfsfunktions-Ausführungszeit Taux_xx und der Blockausführungszeit Tbs_i, die verstreicht, wenn das Programm in der gewünschten Programmausführungszeit Tps ausgeführt wird, erläutert.
- 9 ein Flussdiagramm, das eine Prozedur erläutert, die in der ersten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 10 ein Flussdiagramm, das eine Prozedur erläutert, die in der zweiten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 11 ein Flussdiagramm, das eine Prozedur erläutert, die in der dritten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 12 ein Flussdiagramm, das eine Prozedur erläutert, die in der vierten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 13 ein Flussdiagramm, das eine Prozedur erläutert, die in der fünften Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 14 ein Flussdiagramm, das eine Prozedur erläutert, die in der sechsten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 15 ein Flussdiagramm, das eine Prozedur erläutert, die in der achten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird;
- 16 ein Flussdiagramm, das eine Prozedur erläutert, die in der neunten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird; und
- 17 ein Blockdiagramm des Bewegungscontrollers.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Erste Ausführungsform
-
Als Beispiel wird ein Bewegungscontroller beschrieben, in dem ein in 2 dargestelltes Programm in einem Speicher des Bewegungscontrollers gespeichert ist, und der das Programm der Reihe nach ausführt.
-
Die Anordnung des Bewegungscontrollers wird nun anhand von 17 beschrieben. In dem Programm in 2 erfolgt in G00 ein schneller Vorschub zum Positionieren in eine Position X100.0 bei einer Geschwindigkeit von 10,000 (Block 1). In G01 erfolgt eine lineare Interpolation zum Positionieren auf eine Position X300.0 bei einer Geschwindigkeit von 2,000 (Block 2).
-
Das Programm wird vorab ungesteuert ausgeführt, und zwar mit einem eingeschalteten Messsignal für die Zeitmessung. Es werden die folgenden Größen gemessen: die Ausführungszeit Tbr_i (i ist die Blocknummer) eines jeden Blocks (d. h. eines Blocks i), der in dem Programm enthalten ist, und die Ausführungszeit Tpr des Gesamtprogramms (im Weiteren als „tatsächlich gemessene Programmausführungszeit“ bezeichnet). Werden die Messergebnisse in einem internen Datenbereich gesichert, so ist eine erneute Messung überflüssig, so lange das Programm nicht geändert wird. 3 zeigt den Zusammenhang zwischen der Ausführungszeit Tbr_i eines jeden Blocks und der tatsächlich gemessenen Programmausführungszeit Tpr. In 3 umfasst das Programm einen Block mit der Nummer 1 und einen Block mit der Nummer 2.
-
Zudem werden Parameter bereitgestellt, die eine vorhergesagte Zeit (d. h. eine vorhergesagte Position-erreicht-Zeit Tinp) einstellen, die bei einem Impuls beginnt, der unmittelbar nach Abschluss des Blocks mit der Nummer i ausgegeben wird, und endet wenn der Position-erreicht-Status hergestellt ist. Zudem wird ein Parameter bereitgestellt, der die gewünschte Ausführungszeit Tps des Gesamtprogramms einstellt (im Weiteren als „spezifizierte Programmausführungszeit“ bezeichnet).
-
Nun wird abhängig vom Verhältnis zwischen der tatsächlich gemessenen Programmausführungszeit
Tpr und der spezifizierten Programmausführungszeit
Tps die Ausführungszeit
Tbs_i eines jeden Blocks (Block
i), die verstreicht, wenn das Programm in der spezifizierten Programmausführungszeit
Tps ausgeführt wird, gemäß Formel (1) berechnet (i ist eine Programmblocknummer).
-
4 zeigt die Zusammenhänge zwischen der tatsächlich gemessenen Programmausführungszeit Tpr, der tatsächlich gemessenen Blockausführungszeit Tbr_i, einer Programmausführungszeit Tps, die mit Hilfe eines Parameters spezifiziert wird, und der Ausführungszeit Tbs_i eines jeden Blocks, die gemäß Gleichung (1) berechnet wird. 4 zeigt den Fall, dass die Blocknummer i die Werte 1 und 2 annimmt (i = 1 und 2).
-
Ausgehend von der berechneten Ausführungszeit
Tbs_i eines jeden Blocks (Block
i) wird eine Bewegungsentfernung
L_i, eine Beschleunigungs- und Verzögerungs-Zeitkonstante
Tcon_i und die eingestellte vorhergesagte Position-erreicht-Zeit
Tinp sowie eine Bewegungsgeschwindigkeit
Fs_i für jeden Block, die erhalten wird, wenn das Programm in der spezifizierten Programmausführungszeit
Tps ausgeführt wird, gemäß Formel (2) berechnet. Formel (2) entspricht dem Fall einer zeitlich festgelegten Beschleunigung und Verzögerung. Bei der Bewegungsentfernung
L_i handelt es sich um Daten, die in einem Bearbeitungsprogramm spezifiziert sind. Bei der Beschleunigungs- und Verzögerungs-Zeitkonstante
Tcon_i handelt es sich um Daten, die vorab mit einem Parameter spezifiziert werden.
-
5 zeigt im Bearbeitungsprogrammblock i die Zusammenhänge zwischen der Ausführungszeit Tbs_i eines jeden Blocks, der Bewegungsentfernung L_i, der Beschleunigungs- und Verzögerungs-Zeitkonstante Tcon_i, der vorhergesagten Position-erreicht-Zeit Tinp und der Bewegungsgeschwindigkeit Fs_i berechnet gemäß Formel (2).
-
Die Ausführungszeit des Gesamtprogramms kann man auf die spezifizierte Programmausführungszeit Tps setzen, indem man nach dem Ausführen der oben beschriebenen Prozedur das Programm ausführt, wobei eine spezifizierte Geschwindigkeit für jeden Block durch die berechnete Bewegungsgeschwindigkeit Fs_i ersetzt wird.
-
Für Formel (2) kann die Ausführungszeit des Gesamtprogramms auch dadurch gleich der spezifizierten Programmausführungszeit Tps gesetzt werden, dass man die Beschleunigungs- und Verzögerungs-Zeitkonstante Tcon_i anstelle der Bewegungsgeschwindigkeit Fs_i festlegt und das Programm ausführt, wobei die Beschleunigungs- und Verzögerungs-Zeitkonstante für jeden Block durch den berechneten Wert ersetzt wird.
-
9 zeigt ein Flussdiagramm einer Prozedur, die in der ersten Ausführungsform des Bewegungscontrollers ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben. Die vorhergesagte Position-erreicht-Zeit Tinp und die spezifizierte Programmausführungszeit Tps werden vorab festgelegt und im Speicher gespeichert.
[Schritt SA01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SA04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SA02.
[Schritt SA02] Das Programm wird ausgeführt, und die Ausführungszeit Tbr_i eines jeden im Programm enthaltenen Blocks und die tatsächlich gemessene Programmausführungszeit Tpr werden gemessen.
[Schritt SA03] Die Messergebnisse werden in einem Datenbereich gesichert, und die Prozedur geht zum Schritt SA04.
[Schritt SA04] Die vorhergesagte Position-erreicht-Zeit Tinp wird geladen.
[Schritt SA05] die spezifizierte Programmausführungszeit Tps wird geladen.
[Schritt SA06] Die Ausführungszeit Tbs_i eines jeden Blocks wird gemäß Formel (1) berechnet.
[Schritt SA07] Die Bewegungsgeschwindigkeit Fs_i für jeden Block wird gemäß Formel (2) berechnet.
[Schritt SA08] Die Bewegungsgeschwindigkeit für jeden Block wird durch die im Schritt SA07 berechnete Bewegungsgeschwindigkeit Fs_i ersetzt, und die Verarbeitung endet.
-
Zweite Ausführungsform
-
Bei manchen Programmen kann sich die benötigte Zeit zum Herstellen des Position-erreicht-Status innerhalb der Blöcke ändern. Verwendet man in diesem Fall das Verfahren gemäß der ersten Ausführungsform, so benötigt man so viele Parameter, die die Zeiten einstellen, die zum Herstellen des Position-erreicht-Status erforderlich sind, wie Blöcke vorhanden sind. Damit wächst der Zeitbedarf und der Aufwand, der zum Einstellen der Zeit nötig ist, die den Position-erreicht-Status herstellt, mit der Anzahl der Blöcke.
-
Daher misst man in der zweiten Ausführungsform die tatsächliche Zeit, die zum Herstellen des Position-erreicht-Status erforderlich ist und setzt die Zeitdauer nicht vorab mit einem geeigneten Parameter fest.
-
Zuerst wird wie in der ersten Ausführungsform das Programm vorab ungesteuert ausgeführt, und zwar mit einem eingeschalteten Messsignal für die Zeitmessung. Es werden die folgenden Größen gemessen: die Ausführungszeit Tbr_i (i ist die Blocknummer) eines jeden Blocks, der in dem Programm enthalten ist, und die tatsächlich gemessene Ausführungszeit Tpr des Gesamtprogramms. Dabei werden auch die folgenden Größen gemessen: die Zeit, die bei einem Impuls beginnt, der unmittelbar nach Abschluss eines jeden Blocks ausgegeben wird, und endet, wenn der Position-erreicht-Status hergestellt ist, d. h. die Position-erreicht-Zeit Tinp_i. Wird die tatsächlich gemessene Position-erreicht-Zeit Tinp_i wie die tatsächlich gemessene Ausführungszeit Tbr_i eines jeden Blocks und die tatsächlich gemessene Programmausführungszeit Tpr in dem internen Datenbereich gesichert, so ist eine erneute Messung überflüssig, so lange das Programm nicht geändert wird.
-
Nun wird mit einem tatsächlich gemessenen Wert für jeden Block (d. h. der Position-erreicht-Zeit
Tinp_i) anstelle eines Parameter-Einstellwerts (d. h. der vorhergesagten Position-erreicht-Zeit
Tinp) die Bewegungsgeschwindigkeit
Fs_i für jeden Block, die man erhält, wenn das Programm in einer spezifizierten Ausführungszeit ausgeführt wird (d. h. einer spezifizierten Programmausführungszeit
Tps), aus Formel (3) ermittelt.
-
Die Ausführungszeit des Gesamtprogramms kann man auf die spezifizierte Programmausführungszeit Tps setzen, also die gewünschte Zeit, indem man nach dem Ausführen der oben beschriebenen Prozedur das Programm ausführt, wobei die spezifizierte Geschwindigkeit für jeden Block durch die Bewegungsgeschwindigkeit Fs_i ersetzt wird.
-
10 zeigt ein Flussdiagramm, das die Verarbeitung erläutert, die der Bewegungscontroller der zweiten Ausführungsform ausführt. Die Prozedur wird nun schrittweise beschrieben. Die vorhergesagte Position-erreicht-Zeit Tinp und die spezifizierte Programmausführungszeit Tps werden vorab festgelegt und im Speicher gespeichert.
[Schritt SB01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SB04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SB02.
[Schritt SB02] Das Programm wird ausgeführt, und die folgenden Größen werden gemessen: die tatsächlich gemessene Ausführungszeit Tbr_i eines jeden im Programm enthaltenen Blocks, die Zeit Tinp_i, die zum Herstellen des Position-erreicht-Status für jeden Block erforderlich ist, und die tatsächlich gemessene Programmausführungszeit Tpr des Gesamtprogramms.
[Schritt SB03] Die Messergebnisse werden in dem Datenbereich gesichert, und die Prozedur geht zum Schritt SB04.
[Schritt SB04] Die spezifizierte Programmausführungszeit Tps wird geladen.
[Schritt SB05] Die Ausführungszeit Tbs_i eines jeden Blocks wird gemäß Formel (1) berechnet.
[Schritt SB06] Die Bewegungsgeschwindigkeit Fs_i eines jeden Blocks wird gemäß Formel (3) berechnet.
[Schritt SB07] Die Bewegungsgeschwindigkeit für jeden Block wird durch die im Schritt SB06 berechnete Bewegungsgeschwindigkeit Fs_i ersetzt, und die Prozedur endet.
-
Dritte Ausführungsform
-
Das Programm für den Bewegungscontroller kann eine Hilfsfunktion umfassen, damit eine externe Vorrichtung aus dem Programm heraus betätigt wird. In einem Block mit der Hilfsfunktion wird der nächste Block ausgeführt, wenn die externe Vorrichtung den Betrieb abgeschlossen hat. Die benötigte Zeit zum Abschließen des Betriebs ist in der Regel konstant, wenn sie nicht korrigiert wird. Die Verfahren der ersten und der zweiten Ausführungsform können nicht mit einem Programm arbeiten, das eine Hilfsfunktion aufweist. Daher wird das folgende Verfahren zugefügt.
-
Als Beispiel wird ein Bewegungscontroller beschrieben, der ein in 6 dargestelltes Programm gespeichert hat und der Reihe nach ausführt. In dem Programm in 6 erfolgt in G00 ein schneller Vorschub zum Positionieren in eine Position X100.0 bei einer Geschwindigkeit von 10,000 (Block 1). Bei M20 wird ein Peripheriegerät betätigt (Block 2). In G01 erfolgt eine lineare Interpolation zum Positionieren auf eine Position X300.0 bei einer Geschwindigkeit von 2,000 (Block 3). M30 bezeichnet das Programmende (Block 4).
-
Zuerst wird wie in der ersten Ausführungsform das Programm vorab ungesteuert ausgeführt, und zwar mit einem eingeschalteten Messsignal für die Zeitmessung. Es werden die folgenden Größen gemessen: die Ausführungszeit Tbr_i (i ist die Blocknummer) eines jeden Bewegungsbefehlsblocks, der in dem Programm enthalten ist, und die Programmausführungszeit Tpr des Gesamtprogramms. 7 zeigt den Zusammenhang zwischen der tatsächlich gemessenen Blockausführungszeit Tbr_i und der tatsächlich gemessenen Programmausführungszeit Tpr.
-
Zudem werden Parameter bereitgestellt, die die vorhergesagte Zeit (vorhergesagte Position-erreicht-Zeit Tinp) einstellen, und zwar die Zeit die bei einem Impuls beginnt, der unmittelbar nach Abschluss des Blocks i ausgegeben wird, und endet wenn der Position-erreicht-Status hergestellt ist, und die vorhergesagte Ausführungszeit Taux_xx einer jeden Hilfsfunktion (Mxx).
-
Zudem wird ein Parameter bereitgestellt, der die spezifizierte Programmausführungszeit
Tps festlegt. Die gesamte Ausführungszeit der im Programm enthaltenen Hilfsfunktionen (
Taux) wird aus Formel (4) erhalten.
-
Die gesamte Ausführungszeit der Blöcke mit den Bewegungsbefehlen wird festgelegt, damit nur Blöcke mit Bewegungsbefehlen als Ziele für die Änderung der Ausführungsgeschwindigkeit genommen werden. Die gesamte Ausführungszeit beträgt Tpr - Taux wenn das Programm ohne Steuerung ausgeführt wird, und Tps - Taux wenn das Programm mit einer spezifizierten Ausführungszeit ausgeführt wird.
-
Ausgehend vom Verhältnis dieser Zeiten wird die Ausführungszeit
Tbs_i eines jeden Bewegungsbefehlsblocks, die beim Ausführen des Programms in der spezifizierten Programmausführungszeit
Tps verstreicht, anhand von Formel (5) berechnet.
-
8 zeigt die Zusammenhänge zwischen der tatsächlich gemessenen Programmausführungszeit Tpr, der tatsächlich gemessenen Ausführungszeit Tbr_i eines jeden Blocks, der parameterspezifizierten Programmausführungszeit Tps, der vorhergesagten Ausführungszeit Taux_xx einer jeden Hilfsfunktion und der Ausführungszeit Tbs_i eines jeden Blocks, die gemäß Formel (5) berechnet wird.
-
Nachfolgend kann wie in der ersten Ausführungsform die Ausführungszeit des Gesamtprogramms gleich der gewünschten spezifizierten Programmausführungszeit Tps gesetzt werden, indem die Bewegungsgeschwindigkeit Fs_i eines jeden Blocks festgelegt wird. Anschließend wird das Programm ausgeführt, wobei die spezifizierte Geschwindigkeit für jeden Block durch die Bewegungsgeschwindigkeit Fs_i ersetzt wird.
-
11 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der dritten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben.
[Schritt SC01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SC04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SC02.
[Schritt SC02] Das Programm wird ausgeführt, und die folgenden Größen werden gemessen: die tatsächlich gemessene Ausführungszeit Tbr_i eines jeden im Programm enthaltenen Blocks, und die tatsächlich gemessene Programmausführungszeit Tpr.
[Schritt SC03] Die Messergebnisse werden in dem Datenbereich gesichert, und die Prozedur geht zum Schritt SC04.
[Schritt SC04] Die vorhergesagte Position-erreicht-Zeit Tinp, die zum Herstellen des Position-erreicht-Status nötig ist, wird geladen.
[Schritt SC05] Die vorhergesagte Ausführungszeit Taux_xx einer jeden Hilfsfunktion (Mxx) wird geladen.
[Schritt SC06] Die spezifizierte Programmausführungszeit Tps, d. h. die gewünschte Ausführungszeit des Gesamtprogramms, wird geladen.
[Schritt SC07] Die Gesamtheit Taux der Ausführungszeiten der im Programm enthaltenen Hilfsfunktionsblöcke wird berechnet.
[Schritt SC08] Die Gesamtheit der Ausführungszeiten der Bewegungsbefehlsblöcke wird berechnet. Der berechnete Gesamtwert ist Tpr - Taux, wenn das Programm ungesteuert ausgeführt wird, und Tps - Taux, wenn das Programm in einer spezifizierten Ausführungszeit ausgeführt wird.
[Schritt SC09] Die Ausführungszeit Tbs_i eines jeden Blocks mit dem Bewegungsbefehl wird gemäß Formel (5) berechnet.
[Schritt SC10] Die Bewegungsgeschwindigkeit Fs_i für jeden Block wird gemäß Formel (2) berechnet.
[Schritt SC11] Die spezifizierte Geschwindigkeit für jeden Block wird durch die in Schritt SC10 berechnete Bewegungsgeschwindigkeit Fs_i ersetzt. Damit endet die Verarbeitung.
-
Vierte Ausführungsform
-
Beim Verfahren der dritten Ausführungsform muss ein Parameter für jede Hilfsfunktion (Mxx) festgelegt werden. Damit wächst der Zeitbedarf und der Aufwand, der zum Einstellen erforderlich ist, mit der Anzahl der externen Geräte.
-
Daher wird in der vierten Ausführungsform ein Verfahren eingesetzt, das die tatsächliche Ausführungszeit der Hilfsfunktionen misst, und die Ausführungszeit wird nicht über geeignete Parameter eingestellt. Zuerst wird wie in der dritten Ausführungsform das Programm vorab ungesteuert ausgeführt, und zwar mit einem eingeschalteten Messsignal für die Zeitmessung. Es werden die folgenden Größen gemessen: die Ausführungszeit Tbr_i (i ist die Blocknummer) eines jeden Blocks, der in dem Programm enthalten ist, und die tatsächlich gemessene Programmausführungszeit Tpr. Die Ausführungszeit Taux_i eines jeden Blocks, in dem ein Befehl zum Bereitstellen der Hilfsfunktion gegeben wird, wird ebenfalls gemessen.
-
Die tatsächlich gemessenen Ausführungszeiten Taux_i der Hilfsfunktionen für die Blöcke werden summiert, um die Gesamtausführungszeit Taux der im Programm enthaltenen Hilfsfunktionsblöcke zu bestimmen. Wird die Gesamtausführungszeit Taux der Hilfsfunktionsblöcke wie die tatsächlich gemessene Blockausführungszeit Tbr_i und die tatsächlich gemessene Programmausführungszeit Tpr in dem internen Datenbereich gesichert, so ist eine erneute Messung der Gesamtzeit Taux überflüssig, so lange das Programm nicht geändert wird. In den nachfolgenden Abläufen wird eine Operation ähnlich der dritten Ausführungsform vorgenommen, damit die Ausführungszeit des Gesamtprogramms auf die gewünschte Zeit Tps gesetzt wird.
-
12 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der vierten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben. Die vorhergesagte Position-erreicht-Zeit Tinp und die spezifizierte Programmausführungszeit Tps werden vorab festgelegt und im Speicher gespeichert.
[Schritt SD01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SD04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SD02.
[Schritt SD02] Das Programm wird ausgeführt, und die folgenden Größen werden gemessen: die tatsächlich gemessene Ausführungszeit Tbr_i eines jeden im Programm enthaltenen Blocks, die Ausführungszeit Taux_i der Hilfsfunktion (d. h. die Ausführungszeit des Blocks, für den ein Befehl zum Bereitstellen der Hilfsfunktion gegeben wurde), und die tatsächlich gemessene Programmausführungszeit Tpr (d. h. die Ausführungszeit des Gesamtprogramms).
[Schritt SD03] Die Messergebnisse werden in dem Datenbereich gesichert, und die Prozedur geht zum Schritt SD04.
[Schritt SD04] Die vorhergesagte Position-erreicht-Zeit Tinp bis zum Erreichen des Position-erreicht-Status wird geladen.
[Schritt SD05] Die spezifizierte Programmausführungszeit Tps, d. h. die gewünschte Ausführungszeit des Gesamtprogramms, wird geladen.
[Schritt SD06] Die Gesamtausführungszeit Taux der im Programm enthaltenen Hilfsfunktionsblöcke wird berechnet.
[Schritt SD07] Die Gesamtheit der Ausführungszeiten der Bewegungsbefehlsblöcke wird berechnet. Der berechnete Gesamtwert ist Tpr - Taux, wenn das Programm ungesteuert ausgeführt wird, und Tps - Taux, wenn das Programm in einer spezifizierten Ausführungszeit ausgeführt wird.
[Schritt SD08] Die Ausführungszeit Tbs_i eines jeden Blocks mit dem Bewegungsbefehl wird gemäß Formel (5) berechnet.
[Schritt SD09] Die Bewegungsgeschwindigkeit Fs_i für jeden Block wird gemäß Formel (2) berechnet.
[Schritt SD10] Die spezifizierte Geschwindigkeit für jeden Block wird durch die in Schritt SD09 berechnete Bewegungsgeschwindigkeit Fs_i ersetzt. Damit endet die Verarbeitung.
-
Fünfte Ausführungsform
-
Beim Verfahren nach der ersten Ausführungsform ist es erforderlich, die Ausführungszeit tatsächlich zu messen. Es benötigt daher viel Zeit und Aufwand. In der fünften Ausführungsform wird ein Verfahren zum Bestimmen der Programmausführungszeit verwendet, bei dem das Programm durch eine Simulation untersucht und die tatsächliche Ausführungszeit nicht gemessen wird. In der fünften Ausführungsform werden die Ausführungszeit Tbr_i eines jeden Blocks und die tatsächlich gemessene Programmausführungszeit Tpr gemäß der ersten Ausführungsform durch Werte ersetzt, mit dem Verfahren der fünften Ausführungsform ermittelt werden.
-
Zunächst wird für jeden im Programm enthaltenen Block abhängig von der Bewegungsentfernung
L_i, einer spezifizierten Geschwindigkeit
F_i, der Beschleunigungs- und Verzögerungs-Zeitkonstante
Tcon_i und der vorhergesagten Position-erreicht-Zeit
Tinp, die mit dem geeigneten Parameter eingestellt wird, die Ausführungszeit
Tbr_i (i ist die Blocknummer) eines jeden Blocks nach Formel (6) berechnet. Formel (6) entspricht dem Fall der zeitlich festgelegten Beschleunigung und Verzögerung.
-
Nun werden die Ausführungszeiten Tbr_i der Blöcke summiert, um die tatsächlich gemessene Programmausführungszeit Tpr zu bestimmen. Ein Ablauf, der der entsprechenden nachfolgenden Verarbeitung in der ersten Ausführungsform entspricht, wird nun ausgeführt, damit die Ausführungszeit des Gesamtprogramms auf die spezifizierte Programmausführungszeit Tps gesetzt wird (gewünschte Zeit).
-
13 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der fünften Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben. Die vorhergesagte Position-erreicht-Zeit und die spezifizierte Programmausführungszeit Tps werden vorab festgelegt.
[Schritt SE01] Die vorhergesagte Position-erreicht-Zeit wird geladen.
[Schritt SE02] Das Programm wird untersucht, und für jeden der im Programm enthaltenen Blöcke wird die tatsächlich gemessene Blockausführungszeit Tbr_i aus der Bewegungsentfernung L_i, der spezifizierten Geschwindigkeit F_i, der Beschleunigungs- und Verzögerungs-Zeitkonstante Tcon_i und der vorhergesagten Position-erreicht-Zeit Tinp, die mit dem geeigneten Parameter eingestellt wird, berechnet. Die Prozedur geht auf den Schritt SE03 über.
[Schritt SE03] Die spezifizierte Programmausführungszeit Tps wird geladen.
[Schritt SE04] Die Ausführungszeit Tbs_i eines jeden Blocks wird gemäß Formel (1) berechnet.
[Schritt SE05] Die Bewegungsgeschwindigkeit Fs_i für jeden Block wird gemäß Formel (2) berechnet.
[Schritt SE06] Die spezifizierte Geschwindigkeit für jeden Block wird durch die im Schritt SE05 berechnete Bewegungsgeschwindigkeit Fs_i ersetzt. Damit endet die Verarbeitung.
-
Sechste Ausführungsform
-
Für den Fall dass die Ausführungsgeschwindigkeit des Systems insgesamt mit der gleichen Rate verändert wird, kann es nötig sein, dass das Verhältnis der Ausführungsgeschwindigkeit spezifiziert wird anstatt die Ausführungszeit für jede der Vorrichtungen im System zu spezifizieren. Um dies zu erreichen wird in der sechsten Ausführungsform zusätzlich die folgende Vorgehensweise verwendet.
-
Zuerst wird wie in der ersten Ausführungsform das Programm vorab ungesteuert ausgeführt, und zwar mit einem eingeschalteten Messsignal für die Zeitmessung. Es werden die folgenden Größen gemessen: die Ausführungszeit
Tbr_i (i ist die Blocknummer) eines jeden Blocks, der in dem Programm enthalten ist, und die tatsächlich gemessene Programmausführungszeit
Tpr. Danach wird das Verhältnis
r der Ausführungsgeschwindigkeit des Programms mit einem geeigneten Signal spezifiziert, und
Tps' wird gemäß Formel (7) berechnet.
-
In den folgenden Verarbeitungen wird eine Prozedur wie in der ersten Ausführungsform implementiert, wobei
Tps der ersten Ausführungsform durch
Tps' ersetzt wird. Dadurch ist es möglich, die Ausführungsgeschwindigkeit des Gesamtprogramms auf das gewünschte Verhältnis
r zu setzen. Anders gesagt wird Formel (1) durch Formel (8) ersetzt, und Formel (2) wird durch Formel (9) ersetzt.
-
14 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der sechsten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben. Das Programmausführungsgeschwindigkeitsverhältnis r und die vorhergesagte Position-erreicht-Zeit Tinp werden vorab eingestellt.
[Schritt SF01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SF04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SF02.
[Schritt SF02] Das Programm wird ausgeführt, und die tatsächlich gemessene Ausführungszeit Tbr_i eines jeden im Programm enthaltenen Blocks und die tatsächlich gemessene Programmausführungszeit Tpr werden gemessen.
[Schritt SF03] Die Messergebnisse werden in dem Datenbereich gesichert, und die Prozedur geht zum Schritt SF04.
[Schritt SF04] Die vorhergesagte Position-erreicht-Zeit Tinp wird geladen.
[Schritt SF05] Das Programmausführungsgeschwindigkeitsverhältnis r wird geladen.
[Schritt SF06] Die Programmausführungszeit Tps' wird mit Formel (7) berechnet.
[Schritt SF07] Die Ausführungszeit Tbs_i' eines jeden Blocks wird mit Formel (8) berechnet.
[Schritt SF08] Die Bewegungsgeschwindigkeit Fs_i' eines jeden Blocks wird mit Formel (9) berechnet.
[Schritt SF09] Die spezifizierte Geschwindigkeit für jeden Block wird durch die im Schritt SF08 berechnete Bewegungsgeschwindigkeit Fs_i' ersetzt. Damit endet die Verarbeitung.
-
Siebte Ausführungsform
-
Wird in der ersten Ausführungsform die gewünschte Ausführungszeit Tps des Gesamtprogramms auf die Ausführungszeit eines spezifizierten Programms gesetzt, so kann das Programm in der gleichen Zeitdauer ausgeführt werden wie das spezifizierte Programm ausgeführt wird. In der siebten Ausführungsform wird dies dazu verwendet, die Ausführungszeit eines jeden Programms mit der längsten Ausführungszeit eines Programms in Übereinstimmung zu bringen, und zwar mit dem Programm unter den Programmen, das die längste Ausführungszeit hat, damit der Energieverbrauch ohne Erhöhung der Zykluszeit so gering wie möglich wird.
-
Achte Ausführungsform
-
In den beschriebenen Ausführungsformen der Erfindung wird davon ausgegangen, dass das Ausführen der Programme unter den gleichen Bedingungen stets zur gleichen Ausführungszeit führt. Die für die Positionierung erforderliche Zeit kann jedoch durch individuelle Differenzen zwischen den Werkstücken, langfristige Änderungen in den Maschinen usw. schwanken. In diesem Fall nimmt die Differenz zwischen der spezifizierten Ausführungszeit (spezifizierte Programmausführungszeit Tps) und der tatsächlichen Ausführungszeit (tatsächlich gemessene Programmausführungszeit Tpr) mit der Länge der Programmausführungszeit kontinuierlich zu.
-
Zum Lösen dieses Problems wird in der achten Ausführungsform das folgende Verfahren eingesetzt.
-
Zuerst wird die erste Ausführungsform ausgeführt, damit vorab die berechnete Blockausführungszeit
Tbs_i und die berechnete Bewegungsgeschwindigkeit
Fs_i (i ist die Blocknummer) eines jeden Blocks ermittelt werden. Dann wird das Programm ausgeführt, wobei die spezifizierte Geschwindigkeit für den ersten Block durch die ermittelte berechnete Bewegungsgeschwindigkeit
Fs_i ersetzt wird. Für jeden Block wird der Zeitbedarf
Tba_i vom Beginn zum Ende des Blocks gemessen. Endet beispielsweise der i-te Block, so wird die Differenz zwischen der Ausführungszeit
Tbs_i des Blocks und der tatsächlich benötigten Zeit
Tba_i ermittelt, und die Differenz wird von der Ausführungszeit
Tbs_i+1 des i+1-ten Blocks subtrahiert (siehe Formel (10)).
-
Mit Hilfe der gemäß Formel (10) erhaltenen Zeit
Tbs_i+1' als Ausführungszeit des Blocks wird die Bewegungsgeschwindigkeit
Fs_i+1' des zweiten Blocks aus Formel (11) ermittelt.
-
Die beschriebene Prozedur bedeutet, dass die Differenz zwischen der vorab berechneten Ausführungszeit des ersten Blocks und der tatsächlich nötigen Ausführungszeit durch das Verändern der Geschwindigkeit für den zweiten Block kompensiert wird.
-
Nachfolgend wird die Abweichung der Ausführungszeit eines jeden Blocks in ähnlicher Weise von der Ausführungszeit des folgenden Blocks subtrahiert, um zu verhindern, dass sich die Abweichung der Ausführungszeit akkumuliert.
-
15 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der achten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben.
[Schritt SG01] Die Ausführungszeit Tba_i des ausgeführten Blocks wird gemessen.
[Schritt SG02] Am Ende des Blocks i wird die Differenz (= Tba_i - Tbs_i) zwischen der Ausführungszeit Tbs_i und der Ausführungszeit Tba_i des Blocks ermittelt. Die Differenz wird von der i+1-ten Ausführungszeit Tbs_i+1 subtrahiert (d. h. Tbs_i+1 + (Tba_i - Tbs_i) auf der rechten Seite von Formel (10) wird berechnet), um Tbs_i+1' zu bestimmen.
[Schritt SG03] Unter Verwendung der im Schritt SG02 berechneten Zeit Tbs_i+1 als Ausführungszeit des Blocks wird die i+1-te Bewegungsgeschwindigkeit Fs_i' nach Formel (11) berechnet.
[Schritt SG04] Die Prozedur endet, wenn die Geschwindigkeit für den i+1-ten Block durch Fs_i+1' ersetzt ist.
-
Neunte Ausführungsform
-
Wird die Ausführungszeit eines Programms mit einer Mischung aus Blöcken mit höheren Beschleunigungen und Blöcken mit geringeren Beschleunigungen verlängert, so kann man den Energieverbrauch wirksam verringern, indem man gezielt die Ausführungszeiten der Blöcke mit höheren Beschleunigungen verlängert, um die Beschleunigung zu verringern, anstatt die Ausführungszeit eines jeden Blocks in einem gegebenen Verhältnis zu verringern. Damit wird in der neunten Ausführungsform zudem die folgende Vorgehensweise verändert. Zuerst wird die Beschleunigung für jeden Block mit der folgenden Prozedur bestimmt.
- 1) Die Ausführungszeit Tpr des gesamten Programms wird tatsächlich gemessen oder berechnet.
- 2) Die Differenz ΔT zwischen der spezifizierten Ausführungszeit Tps des gesamten Programms und der Ausführungszeit Tpr des gesamten Programms wird gemäß Formel (12) ermittelt.
- 3) Aus den Beschleunigungen A_i (i ist die Blocknummer) der Blöcke im Programm wird die höchste Beschleunigung A1 und die zweithöchste Beschleunigung A2 ermittelt.
- 4) Für alle Blöcke mit der Beschleunigung A1 wird die gesamte Beschleunigungs- und Verzögerungszeit Tcon_sum nach Formel (13) berechnet, wobei die spezifizierte Geschwindigkeit F_i für jeden Block verwendet wird. In diesem Fall ist in der Formel (13) die Nummer eines Blocks mit der Beschleunigung A1 mit j bezeichnet.
- 5) Die Beschleunigung A, die man durch Verlängern der gesamten Beschleunigungs- und Verzögerungszeit Tcon_sum für die Blöcke in 4) um ΔT erhält, wird gemäß Formel (14) ermittelt.
- 6) Für A ≥ A2 wird die Beschleunigung für den Block in 4) auf A aktualisiert und damit die Prozedur zum Ermitteln der Beschleunigung abgeschlossen. Für A < A2 wird die Beschleunigung für den Block in 4) auf A2 aktualisiert, und die gesamte Beschleunigungs- und Verzögerungszeit Tcon_sum' wird nach Formel (15) neu berechnet. Die Prozedur geht dann zu 7) über.
- 7) ΔT wird gemäß Formel (16) zu (ΔT') neu berechnet, wobei die Ergebnisse aus 4) und 6) zum Aktualisieren des Werts von ΔT auf ΔT' verwendet werden. Zum weiteren Senken der Beschleunigung unter die zweithöchste Beschleunigung A2 kehrt die Prozedur auf 3) zurück.
-
Nach dem Ausführen der soeben beschriebenen Prozedur wird das Programm ausgeführt, wobei die Beschleunigung für jeden Block durch die ermittelte Beschleunigung ersetzt wird. Damit ist die Ausführungszeit des Gesamtprogramms gleich der gewünschten Zeit Tps, und höhere Beschleunigungen im Programm können gezielt verringert werden.
-
16 zeigt ein Flussdiagramm, das eine Prozedur erläutert, die in der neunten Ausführungsform des Bewegungscontrollers der Erfindung ausgeführt wird. Die Prozedur wird nun schrittweise beschrieben.
[Schritt SH01] Es wird festgestellt, ob die Programmausführungszeit gespeichert wurde. Wurde die Programmausführungszeit gespeichert (JA), so geht die Prozedur zum Schritt SH04. Wurde die Programmausführungszeit nicht gespeichert (NEIN), so geht die Prozedur zum Schritt SH02.
[Schritt SH02] Das Programm wird ausgeführt und die tatsächlich gemessene Programmausführungszeit Tpr wird gemessen.
[Schritt SH03] Die Messergebnisse werden im Datenbereich gesichert.
[Schritt SH04] Die Ausführungszeit Tps des gesamten spezifizierten Programms wird geladen.
[Schritt SH05] Die Differenz ΔT zwischen der Ausführungszeit Tps des gesamten spezifizierten Programms und der Ausführungszeit Tpr wird gemäß Formel (12) berechnet.
[Schritt SH06] Die gesamte Beschleunigungs- und Verzögerungszeit Tcon_sum für die Blöcke mit der Beschleunigung A1 wird nach Formel (13) berechnet, wobei die spezifizierte Geschwindigkeit F_j für jeden Block verwendet wird (die Beschleunigung A1 ist die höchste Beschleunigung).
[Schritt SH07] Die Beschleunigung A, die man durch Verlängern der gesamten Beschleunigungs- und Verzögerungszeit Tcon_sum im Schritt SH06 in 4) durch das im Schritt SH05 berechnete ΔT erhält, wird gemäß Formel (14) ermittelt.
[Schritt SH08] Es wird festgestellt, ob die im Schritt SH07 berechnete Beschleunigung A größergleich der Beschleunigung A2 ist. Ist die Beschleunigung A größergleich der Beschleunigung A2 (JA), so geht die Prozedur zum Schritt SH09. Ist die Beschleunigung A kleiner als die Beschleunigung A2 (NEIN), so geht die Prozedur zum Schritt SH10.
[Schritt SH09] Die Beschleunigung für Blöcke mit der Beschleunigung A1 wird auf A aktualisiert, und die Verarbeitung endet.
[Schritt SH10] Blöcke mit der Beschleunigung A1 werden als Blöcke mit der Beschleunigung A2 festgesetzt.
[Schritt SH011] Die gesamte Beschleunigungs- und Verzögerungszeit Tcon_sum' für die Beschleunigung A2 wird aus Formel (15) berechnet.
[Schritt SH12] ΔT' wird gemäß Formel (16) ermittelt.
[Schritt SH13] Der Wert von ΔT wird auf ΔT' aktualisiert, und die Prozedur kehrt zum Schritt SH06 zurück.
-
17 zeigt ein funktionelles Blockdiagramm eines wesentlichen Abschnitts des Bewegungscontrollers.
-
Ein Prozessor 11 (CPU) in einem numerischen Controller 10 ist ein Prozessor, der den numerischen Controller 10 insgesamt steuert. Der Prozessor 11 liest über einen Bus 21 ein Systemprogramm, das in einem ROM 12 abgelegt ist, damit der numerische Controller 10 insgesamt mit dem Systemprogramm gesteuert wird. In einem RAM 13 sind beispielsweise temporäre Berechnungsdaten und Anzeigedaten gespeichert sowie verschiedene Daten, die eine Bedienperson über eine manuelle Dateneingabe mit einer Flüssigkristallanzeige (LCD/MDI-Einheit) 70 eingibt.
-
Ein SRAM 14 ist als nicht flüchtiger Speicher konfiguriert, der von einer Batterie (in den Zeichnungen nicht dargestellt) gestützt wird und den Speicherstatus des Speichers auch dann hält, wenn der numerische Controller 10 ausgeschaltet ist. Im SRAM 14 ist beispielsweise ein Programm gespeichert, das das Zeitprogramm der Erfindung umfasst, Daten, die zum Ausführen der Erfindung erforderlich sind, ein unten beschriebenes Bearbeitungsprogramm, das über eine Schnittstelle 15 geladen wird, und ein Bearbeitungsprogramm, das über die LCD/MDI-Einheit 70 eingegeben wird. Zudem umfasst das ROM 12 verschiedene vorab dort eingetragene Systemprogramme, die dafür ausgelegt sind, eine Prozedur für einen Editiermodus auszuführen, der zum Erzeugen und Editieren eines Bearbeitungsprogramms benötigt wird, und eine Prozedur für den automatischen Betrieb.
-
Die Schnittstelle 15 ist eine Schnittstelle für eine externe Vorrichtung, die mit dem numerischen Controller 10 verbunden werden kann. Eine äußere Vorrichtung 72, etwa eine externe Speichervorrichtung, ist an die Schnittstelle 15 angeschlossen. Ein Bearbeitungsprogramm, ein Messprogramm für den thermischen Versatz usw. werden von der externen Speichervorrichtung geladen. Ein PMC 16 (Programmable Machine Controller) steuert eine Hilfsvorrichtung usw. auf der Werkzeugmaschinenseite mit Hilfe eines Folgeprogramms, das sich im numerischen Controller 10 befindet. D. h., der PMC 16 modifiziert für die Hilfsvorrichtungsseite nötige Signale im Folgeprogramm gemäß einer M-Funktion, einer S-Funktion und einer T-Funktion, die in einem Bearbeitungsprogramm spezifiziert sind, und gibt die resultierenden Signale über eine E/A-Einheit 17 an die Hilfsvorrichtungsseite aus. Aufgrund der ausgegebenen Signale werden Hilfsvorrichtungen wie etwa Stellglieder in Gang gesetzt. Durch den Empfang von Signalen, die durch das Betätigen von Schaltern auf einer Steuertafel gesendet werden, die sich am Hauptkörper der Werkzeugmaschine befindet, implementiert der PMC 16 die nötige Verarbeitung, bevor sie an den Prozessor 11 gesendet werden.
-
Bildsignale wie die aktuelle Position einer jeden Welle der Werkzeugmaschine, Alarme, Parameter und Bilddaten werden an die LCD/MDI-Einheit 70 übertragen und auf einer Anzeige der LCD/MDI-Einheit 70 dargestellt. Die LCD/MDI-Einheit 70 ist eine manuelle Dateneingabevorrichtung, die die Anzeige und eine Tastatur umfasst. Eine Schnittstelle 18 empfängt Daten von der Tastatur der LCD/MDI-Einheit 70 und leitet die Daten an den Prozessor 11 weiter.
-
Eine Schnittstelle 19 ist mit einem manuellen Impulsgenerator 71 verbunden. Der manuelle Impulsgenerator 71 befindet sich auf einer Steuertafel der Werkzeugmaschine und wird dazu verwendet, bewegliche Abschnitte der Werkzeugmaschine präzise zu positionieren, indem die jeweiligen Achsen von Hand mit verteilten Impulsen gesteuert werden.
-
Achsensteuerschaltungen 30 bis 32 für eine X-Achse, eine Y-Achse und eine Z-Achse, die einen Tisch T der Werkzeugmaschine bewegen, erhalten entsprechende Bewegungsbefehle für die Achsen vom Prozessor 11, und sie geben die Befehle für die Achsen an Servoverstärker 40 bis 42 aus. Die Servoverstärker 40 bis 42 empfangen die Befehle zum Ansteuern der Servomotoren 50 bis 52 für die jeweiligen Achsen. Die Servomotoren 50 bis 52 für die jeweiligen Achsen enthalten jeweils einen Positionsdetektor. Ein Positionssignal vom Positionsdetektor wird als Impulskette zurückgeführt.