DE60127908T2 - Robotersteuerung - Google Patents

Robotersteuerung Download PDF

Info

Publication number
DE60127908T2
DE60127908T2 DE60127908T DE60127908T DE60127908T2 DE 60127908 T2 DE60127908 T2 DE 60127908T2 DE 60127908 T DE60127908 T DE 60127908T DE 60127908 T DE60127908 T DE 60127908T DE 60127908 T2 DE60127908 T2 DE 60127908T2
Authority
DE
Germany
Prior art keywords
robot
stopping
stop
slave
robots
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60127908T
Other languages
English (en)
Other versions
DE60127908D1 (de
Inventor
Tetsuya Minamitsuru-gun KOSAKA
Hiromitsu Minamitsuru-gun TAKAHASHI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE60127908D1 publication Critical patent/DE60127908D1/de
Application granted granted Critical
Publication of DE60127908T2 publication Critical patent/DE60127908T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34399Switch between synchronous and asynchronous mode of controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34402Synchronize programs for machines, processes, tasks, if one stops other also
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39139Produce program of slave from path of master and desired relative position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40221Individual and common power cutoff switch for several robots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50195Emergency stop stops drives and spindle, stored program remains in memory
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50198Emergency stop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50224Synchronize feed and spindle speed during slow down, stopping

Description

  • Die Erfindung betrifft ein Robotersystem, wobei Robotersteuerungen miteinander über einen Kommunikationspfad verbunden sind, und insbesondere eine Robotersteuerung für die Verwendung in einem Robotersystem, das einen synchron kooperativen Betrieb mit einer Anzahl Robotern durchführt. Beispiele für solche Robotersysteme sind in US-A-5 204 942 und US-A-5 254 923 offenbart.
  • Man kennt ein weiteres Robotersteuerungssystem, bei dem eine Anzahl Robotersteuerungen über einen Kommunikationspfad verbunden sind, so dass ein synchron kooperativer Betrieb durch eine Anzahl Roboter durchgeführt wird, die jeweils durch die Robotersteuerungen gesteuert werden. Wenn bei diesem System ein Roboter aus einem bestimmten Grund gestoppt werden muss, müssen auch die anderen Roboter bei der Durchführung des synchron kooperativen Betriebs gestoppt werden. Wird ein Roboter gestoppt und die anderen führen den synchron kooperativen Betrieb weiter, können die Roboter sich gegenseitig beeinträchtigen oder einen Teil des Arbeitsschritts nicht mehr beenden, weil die Anzahl Roboter synchron kooperativ arbeitet. Daher wird bei dem herkömmlichen Robotersteuerungssystem ein Notstoppsignal von einer übergeordneten PLC (programmable logic controller) an alle Roboter ausgesendet, die daraufhin sofort gestoppt werden.
  • Allgemein kennt man verschiedene Typen von Verfahren zum Stoppen eines Roboters. Zum Abstoppen eines Roboters durch Eingabe eines Haltesignals kennt man zum Beispiel (1) einen Abbremsstopp, wobei der Roboter mittels Durchführen einer Beschleunigungs-/Abbremsverarbeitung gestoppt wird, damit der Robotermechanismus nicht übermäßig belastet wird; (2) einen geregelten Stopp, wobei der Roboter mittels Durchführen einer Beschleunigungs-/Abbremsverarbeitung und zudem durch Abschalten der Erregung von Servomotoren gestoppt wird; und (3) einen Sofortstopp, wobei der Roboter durch sofortiges Abschalten von Servoverstärkern durch ein Notstoppsignal gestoppt wird.
  • Bei dem obigen System zum Steuern einer Anzahl Roboter verwendet man das oben genannte Sofortstoppverfahren (3), das das kleinste Ausmaß an Verlangsamung bewirkt, damit die Positionen der Roboter zueinander beim Abstoppen nur minimal verschoben werden.
  • Der obige Sofortstopp sollte jedoch besser vermieden werden, weil der Robotermechanismus einer hohen Belastung ausgesetzt wird. Werden alle den synchron kooperativen Betrieb durchführenden Roboter durch das Sofortstoppverfahren angehalten, wenn ein Roboter aus einem bestimmten Grund in dem obigen Robotersteuerungssystem abgestoppt werden muss, werden die Roboter häufiger durch den Sofortstopp angehal ten, was nicht bevorzugt ist. Je nach der Stoppursache ist bevorzugt, dass die Roboter gemäß dem Abbremsstoppverfahren (1) oder dem geregelten Stoppverfahren (2) angehalten werden.
  • Werden die Roboter beim synchron kooperativen Betrieb gestoppt, müssen alle den synchron kooperativen Betrieb durchführenden Roboter mit dem gleichen Stoppverfahren angehalten werden, damit die synchrone Bewegung beibehalten bleibt. Unterschiedliche Stoppverfahren bewirken Unterschiede im Bewegungsausmaß der jeweiligen Roboter. Dadurch kommt es zu erheblichen Unstimmigkeiten zwischen den relativen Positionen der gestoppten Roboter hinsichtlich der Positionen der Roboter, die den synchron kooperativen Betrieb durchführen, zueinander. Dies macht den Roboterbetrieb problematisch. Wird beispielsweise ein Gegenstand durch mehrere Roboter im synchronen Betrieb weitergegeben, könnte der Gegenstand bei einer Unstimmigkeit der relativen Positionen der Roboter fallengelassen werden.
  • Erfindungsgemäß wird ein Robotersteuerungssystem bereitgestellt, wie in den beigefügten Ansprüchen 1 und 2 dargelegt.
  • Das System kann folgendes umfassen: eine Speichervorrichtung zum Speichern von Zuweisungsinformation bezüglich Arten des Stoppverfahrens, die einer Mehrzahl von Ursachen zum Stoppen des Roboters jeweils zugewiesen wird; eine Ermittlungsvorrichtung zum Ermitteln einer ersten Stoppursache, die in dem Roboter auftritt, der mit der Robotersteuerung verbunden ist; eine Benennungsvorrichtung zum Benennen einer ersten Art des Stoppverfahrens aufgrund der ermittelten ersten Ursache für das Stoppen und der Zuweisungsinformation, die in der Speichervorrichtung gespeichert ist; eine Sendevorrichtung zum Senden von Identifizierungsinformation über die benannte erste Art des Stoppverfahrens an eine andere Robotersteuerung über den Kommunikationspfad; eine Empfangsvorrichtung zum Empfangen von Identifizierungsinformation über eine zweite Art des Stoppverfahrens, die von einer anderen Robotersteuerung über den Kommunikationspfad gesendet wird; und eine Bestimmungsvorrichtung zum Bestimmen einer Art des Verfahrens zum Stoppen des zugehörigen Roboters aufgrund der Identifizierungsinformation über die erste Art des Stoppverfahrens oder der Identifizierungsinformation über die zweite Art des Stoppverfahrens.
  • Anstelle von Senden und Empfangen der Identifizierungsinformation über die Art des Stoppverfahrens kann die Sendevorrichtung Identifizierungsinformation bezüglich der ermittelten ersten Ursache für das Stoppen an eine andere Robotersteuerung über den Kommunikationspfad senden, und die Empfangsvorrichtung kann Identifizierungsinformation bezüglich einer zweiten Ursache für das Stoppen, die in einem zu einer anderen Ro botersteuerung zugehörigen Roboter aufgetreten ist und die von einer anderen Robotersteuerung über den Kommunikationspfad gesendet wird, empfangen und eine zweite Art des Stoppverfahrens aufgrund der Zuweisungsinformation zuweisen, die in der Speichervorrichtung gespeichert ist.
  • Die Robotersteuerung kann zudem eine Spezifizierungsvorrichtung umfassen zum Spezifizieren eines oder mehrerer anderer Roboter, die gleichzeitig mit dem zugehörigen Roboter gestoppt werden sollen, tritt die erste Ursache auf. In diesem Fall kann die Sendevorrichtung Identifizierungsinformation bezüglich der ersten Art des Stoppverfahrens oder der ersten Ursache für das Stoppen an eine oder mehr andere Robotersteuerungen des/der spezifizierten einen oder mehreren anderen Roboters) über den Kommunikationspfad senden, und die Empfangsvorrichtung kann Identifizierungsinformation bezüglich einer zweiten Art des Stoppverfahrens oder einer zweiten Ursache für das Stoppen von der einen oder den mehreren anderen Robotersteuerung(en) über den Kommunikationspfad empfangen.
  • Die Robotersteuerung kann zudem eine Vorrichtung umfassen zum Senden und Empfangen von Information über die Durchführung eines synchronisierten oder kooperativen Betriebs über den Kommunikationspfad sowie eine Vorrichtung, mit der die Ermittlungsvorrichtung nur dann in Gang gesetzt wird, führt der zugehörige Roboter einen synchronisierten oder kooperativen Betrieb mit einem anderen Roboter durch.
  • Die Ursachen zum Stoppen des Roboters können einen in den Roboter eingegebenen Notstoppbefehl und einen im Roboter auftretenden Alarm beinhalten. Die Arten des Stoppverfahrens können danach klassifiziert werden, ob eine Spannungszufuhr abgeschaltet wird oder nicht und/oder ob Motoren zum Antreiben des Roboters einer Beschleunigungs-/Abbremsverarbeitung unterworfen werden oder nicht.
  • Zum besseren Verständnis der Erfindung und um zu zeigen, wie diese umgesetzt werden kann, wird jetzt beispielhaft auf die Erfindung Bezug genommen. Es zeigt/zeigen:
  • 1 ein Fließdiagramm eines wesentlichen Teils von einem Roboter mit einer Robotersteuerung zum Steuern eines zugehörigen Roboters nach einer Ausführungsform der Erfindung;
  • 2 schematisch ein Beispiel für ein Robotersystem mit mehreren Robotern, die über eine Kommunikationsleitung verbunden sind, unter Verwendung einer Anzahl Robotersteuerungen, wie in 1 gezeigt;
  • 3 schematisch ein weiteres Beispiel für ein Robotersystem mit mehreren Robotern, die über eine Kommunikationsleitung verbunden sind, unter Verwendung einer Anzahl Robotersteuerungen, wie in 1 gezeigt;
  • 4 ein Diagramm von einem Beispiel für das Einstellen von Definitionsinformation an Master- und Slave-Robotern, damit ein synchron kooperativer Betrieb durchgeführt wird;
  • 5 ein Beispiel für Definitionsinformation auf einem Master-Roboter, die in einem Master-Programm eingestellt wird;
  • 6 ein Diagramm einer Ausführungssequenz von Betriebsprogrammen für die jeweiligen Roboter;
  • 7 ein Beispiel für die Zuweisung von Arten der Stoppverfahren zu jeweiligen Stoppverfahrensart-Nummern;
  • 8 ein Beispiel für die Zuweisung von Stoppverfahrensart-Nummern zu jeweiligen Ursachen für ein Stoppverfahren;
  • 9 einen Teil eines Fließdiagramms für die Verarbeitung, die vom Prozessor jeder Robotersteuerung durchgeführt werden muss, wobei es sich größtenteils um ein Fließdiagramm der Verarbeitung handelt, die von der Robotersteuerung durchgeführt werden muss, damit der Roboter unabhängig arbeitet (Ausführung eines normalen Programms);
  • 10 eine Fortsetzung des Fließdiagramms der 9, wobei es sich um einen Teil handelt, der von dem Prozessor einer Master-Robotersteuerung durchgeführt werden muss (Ausführung eines Master-Programms);
  • 11 eine Fortsetzung des Fließdiagramms der 10, die von dem Prozessor der Master-Robotersteuerung durchgeführt werden muss (Ausführung des Master-Programms);
  • 12 eine Fortsetzung des Fließdiagramms der 10, wobei es sich um einen Teil handelt, der von einer Slave-Robotersteuerung durchgeführt werden muss (Ausführung eines Slave-Programms);
  • 13 eine Fortsetzung des Fließdiagramms der 12, die von dem Prozessor der Slave-Robotersteuerung durchgeführt werden muss (Ausführung des Slave-Programms);
  • 14 eine Fortsetzung des Fließdiagramms der 13, die von dem Slave-Roboter durchgeführt werden muss (Ausführung des Slave-Programms);
  • 15 ein Fließdiagramm einer Subroutine "Stoppbefehl-Bestätigung & -Befolgung" in dem obigen Fließdiagramm;
  • 16 ein Fließdiagramm des "Stoppverfahren-Management-Task";
  • 17 schematisch ein Verfahren zur Ermittlung von Interpolationspositionsdaten von einem Slave-Roboter, in denen sich das Bewegungsausmaß eines Master-Roboters widerspiegelt;
  • 18 schematisch ein weiteres Beispiel für ein Robotersystem mit mehreren Robotern, die unter Verwendung einer Anzahl Robotersteuerungen miteinander verbunden sind;
  • 19 schematisch ein weiteres Beispiel für ein Robotersystem mit mehreren Robotern, die unter Verwendung einer Anzahl Robotersteuerungen miteinander verbunden sind, und
  • 20a und 20b Diagramme von Beispielen für ein Kommunikationsverfahren, das bei dem Robotersystem der 18 und 19 eingesetzt werden kann.
  • 1 zeigt eine Robotersteuerung, die jeweils den zugehörigen Roboter steuert, für die Verwendung in einem Robotersystem, in dem eine Anzahl Robotersteuerungen miteinander über einen Kommunikationspfad verbunden ist und das für einen synchron kooperativen Betrieb ausgelegt ist.
  • In 1 hat die Robotersteuerung 1 einen Prozessor 10 zur allgemeinen Steuerung eines Robotermechanismus 2 und der Robotersteuerung 1. Der Prozessor 10 ist über einen Bus 18 verbunden mit einem ROM 11, einem RAM 12, einem Permanentspeicher 13, einen Roboterachsensteuerabschnitt 14, einem Kommunikationsmodul 15, einer Lehrkonsolenschnittstelle 16 usw. Der ROM 11 speichert ein Systemprogramm, das vom Prozessor 10 ausgeführt werden soll. Der Permanentspeicher 13 speichert Stellwerte für verschiedene Parameter sowie ein gelehrtes Programm für einen Betrieb, der vom Robotermechanismus 2 ausgeführt werden soll. Der RAM 12 wird zur vorübergehenden Datenspeicherung verwendet. Der Roboterachsensteuerabschnitt 14 führt eine Feedback-Steuerung von Position, Geschwindigkeit und Drehmoment (Strom) jedes Motors für jede Achse über die digitale Servosteuerung unter Verwendung eines Prozessors auf Basis von Bewegungsbefehlen von jeder Achse durch. So wird der Servomotor für jede Achse des Robotermechanismusabschnitts 2 über einen Servoverstärker 17 angetrieben. Das Kommunikationsmodul 15 ist über einen Kommunikationspfad mit einer anderen Robotersteuerung verbunden. Die Lehrbetriebskonsolenschnittstelle 16 ist mit einer Lehrbetriebskonsole 3 verbunden.
  • Die obige grundlegende Konfiguration jeder Robotersteuerung 1 ist gleich der herkömmlichen. Robotersteuerungen mit dieser Konfiguration werden miteinander über ei nen Signalpfad von Kommunikationsleitungen verbunden. Dadurch wird ein Robotersteuerungssystem zum synchron kooperativen Betrieb einer Anzahl Roboter gebildet.
  • Es folgt eine Beschreibung eines Robotersteuerungssystems, wobei vier Roboter gesteuert werden von den Robotersteuerungen, die über den Signalpfad verbunden sind und jeweils die zugehörigen Roboter steuern. Dadurch werden einzelne Arbeitsschritte nacheinander und ein synchron kooperativer Betrieb der Roboter in einer willkürlichen Kombination durchgeführt.
  • 2 und 3 zeigen Beispiele für die Verbindung der vier Robotersteuerungen, die durch ein Ethernet-Kommunikationsnetzwerk verbunden sind. Es kann jedes andere Netzwerk als das Ethernet verwendet werden. Bei dem Beispiel der 2 sind die Robotersteuerungen Nr. 1 bis Nr. 4 miteinander über die Signalleitungen L unter Bildung eines Signalpfads verbunden. Bei dem Beispiel der 3 sind die Robotersteuerungen Nr. 1-4 über ein Anschlussstück miteinander verbunden. Für die Identifikation jedes über die Kommunikationsleitungen L verbundenen Roboters werden die Roboter jeweils mit einer Roboternummer versehen. Im Permanentspeicher jedes Roboters wird die diesem Roboter zugewiesene Roboternummer eingestellt und gespeichert. Bei den Beispielen in 2 und 3 werden die Zahlen Nr. 1 bis Nr. 4 eingestellt und gespeichert. In der folgenden Beschreibung werden Nr. 1 bis Nr. 4 für den Roboter Nr. 1 bis Nr. 4 und die Robotersteuerung Nr. 1 bis Nr. 4 verwendet. Zudem werden Roboter Nr. 1 bis Nr. 4 verwendet.
  • Es wird eine Transformationsmatrix von jedem Roboter zu einem anderen Roboter eingerichtet, indem die Installationsposition zwischen den Robotern bei der Konstruktion des Robotersteuerungssystems kalibriert wird. Wird beispielsweise der Roboter Nr. 2 vom Roboter Nr. 1 aus gesehen, muss eine Position des Roboters Nr. 1 in einem Weltkoordinatensystem ermittelt werden, an der ein Weltkoordinatensystem des Roboters Nr. 2 liegt. Zu diesem Zweck wird zum Beispiel eine Transformationsmatrix T2-1 vom Weltkoordinatensystem des Roboters Nr. 1 zum Weltkoordinatensystem des Roboters Nr. 2 ermittelt. Dies erfolgt für alle Muster. Die inverse Matrix der Transformationsmatrix T2-1 von Nr. 1 zu Nr. 2 ist die Transformationsmatrix von Nr. 2 zu Nr. 1. Wird also die Transformationsmatrix von Nr. 1 zu Nr. 2 ermittelt, muss daher die Transformationsmatrix von Nr. 2 zu Nr. 1 nicht mehr bestimmt werden. Die so ermittelte Transformationsmatrix wird im Permanentspeicher 13 jeder Robotersteuerung gespeichert. Die Transformationsmatrix T2-1 von Nr. 2 zu Nr. 1 wird beispielsweise in der Steuerung des Roboters Nr. 2 gespeichert. Ebenso wird die Transformationsmatrix im Permanentspeicher 13 jeder Robotersteuerung gespeichert: zum Beispiel die Transformationsmatrix T1-3 von Nr. 3 zu Nr. 1 in der Robotersteuerung Nr. 3, die Transformationsmatrix T1-4 von Nr. 4 zu Nr. 1 in der Robotersteuerung Nr. 4 und die Transformationsmatrix T2-3 in der Robotersteuerung Nr. 3.
  • Bei dem Kalibrierungsverfahren, wie es bisher durchgeführt wurde, wird ein Kalibrierungsstab an Handgelenken von zwei zu kalibrierenden Robotern befestigt und sein distales Ende als TCP (tool center point) festgelegt. Dann werden die distalen Enden der Kalibrierungsstäbe an drei Punkten in einem Raum positioniert (es wird ein Dreieck gebildet mit den drei Punkten als Spitzen), die nicht auf der gleichen Geraden liegen. Die Positionen werden anhand des jeweiligen Weltkoordinatensystems ermittelt. Danach wird die Transformationsmatrix T2-1 vom Roboter Nr. 1 zum Roboter Nr. 2 aus den ermittelten drei Positionsdaten auf dem Weltkoordinatensystem des Roboters Nr. 1 und den drei Positionsdaten auf dem Weltkoordinatensystem von Nr. 2 berechnet. Jede Transformationsmatrix wird so ermittelt und im Permanentspeicher jeder Robotersteuerung gespeichert.
  • Es wird eine Kombination von Robotern, die synchron betrieben werden sollen, für die Kooperation bestimmt. In der Kombination werden ein Master-Roboter und ein Slave-Roboter in dem Robotersteuerungssystem zugewiesen, wie in 2 und 3 gezeigt. 4 zeigt ein Beispiel für Zuweisungsinformation hinsichtlich Master- und Slave-Robotern. Die Roboter Nr. 1-3 erhalten eine derartige Zuweisung, dass sie synchron mit dem Roboter Nr. 1 arbeiten, wobei Roboter Nr. 1 als Master-Roboter und die Roboter Nr. 2-4 als Slave-Roboter verwendet werden.
  • Roboter Nr. 4 ist weder als Master-, noch als Slave-Roboter zuwiesen. Er kann als normaler Roboter verwendet werden, d.h. er ist unabhängig betriebsfähig, wohingegen Master- und Slave Roboter den synchron kooperativen Betrieb durchführen.
  • Die Kombination der Roboter, die synchron kooperieren sollen, wird willkürlich gewählt. Die Zuweisung von Master- und Slave-Robotern in der Kombination ist willkürlich. In der Kombination der Roboter für den synchron kooperativen Betrieb wählt man einen Roboter als Master-Roboter und ein oder mehr Roboter aus dem Rest der über die Kommunikationsleitung L verbundenen Roboter als Slave-Roboter.
  • Die Definition der Kombination der Master- und Slave-Roboter wird in Betriebsprogrammen eingetragen, die von den jeweiligen Robotersteuerungen ausgeführt werden sollen. 5 zeigt ein Beispiel für ein Betriebsprogramm, das von einer Robotersteuerung zur Steuerung eines Master-Roboters ausgeführt werden soll. Bei diesem Programm wird "MASTER-PROGRAMM" als Synchronbetriebsdaten eingestellt. Die Daten "SLAVE-PROGRAMM" werden in einem Betriebsprogramm eingestellt, das von einer Robotersteuerung ausgeführt werden soll, die einen Slave-Roboter steuert. Die Daten "NORMA- LES PROGRAMM" werden in einem Betriebsprogramm eingestellt, das von einer Robotersteuerung ausgeführt werden soll, die einen normalen Roboter steuert.
  • Eine Ausführungssequenz der Betriebsprogramme wird für jede Robotersteuerung festgelegt. 6 zeigt ein Beispiel für die Ausführungssequenzen der Betriebsprogramme für die jeweiligen Robotersteuerungen. Für den Roboter Nr. 1 sind ein normales Programm, ein Master-Programm und ein normales Programm eingestellt, die nacheinander ausgeführt werden sollen. Für die Roboter Nr. 2 und 3 sind ein normales Programm, ein Slave-Programm und ein normales Programm eingestellt, die nacheinander ausgeführt werden sollen. Für den Roboter Nr. 4 ist nur ein normales Programm eingestellt, das ausgeführt werden soll.
  • Dem in 6 dargestellten Beispiel zufolge wird der folgende Betrieb ausgeführt.
    • (1) Zunächst führen alle Robotersteuerungen normale Programme durch und lassen die Roboter Nr. 1 bis Nr. 4 unabhängig arbeiten.
    • (2) Die Rohotersteuerung für den Roboter Nr. 1 führt das Master-Programm aus, und die Robotersteuerungen für die Roboter Nr. 2 und 3 führen die Slave-Programme aus, so dass nach Beendigung der Ausführung der vorhergehenden normalen Programme ein synchron kooperativer Betrieb durchgeführt wird.
    • (3) Die Robotersteuerungen für die Roboter Nr. 1-3 führen nach Beendigung des synchron kooperativen Betriebs die normalen Programme durch.
    • (4) Die Robotersteuerung für den Roboter Nr. 4 führt ungeachtet des Betriebs der anderen Roboter Nr. 1-3 das normale Programm aus.
  • Siehe 7: Im Permanentspeicher 13 der Robotersteuerung für jeden der Roboter Nr. 1-4 eingestellt und gespeichert sind Stoppverfahrensart-Nummern, die jeweils eine Art des Stoppverfahrens darstellen, das in der jeweiligen Robotersteuerung ausgeführt werden soll, sowie eine Tabelle der Zuweisung der Stoppverfahrensart-Nummer zu jeweils einem Grund für einen Stopp. Bei dem in 7 und 8 gezeigten Beispiel wird die Stoppverfahrensart Nr. 1 der manuellen Eingabe eines Haltsignals und dem Auslösen eines Alarms zugewiesen, der eine Abweichung von dem Arbeitsbereich anzeigt, so dass ein Abbremsungsstopp durchgeführt wird. Die Stoppverfahrensart Nr. 3 wird der Eingabe eines Nothaltsignals und einem Überhitzungsalarm zugewiesen, so dass der Roboterbetrieb sofort gestoppt wird. Die Stoppverfahrensart Nr. 2 wird der Eingabe eines Signals zugewiesen, das ein offenes Sicherheitsgatter angezeigt, worauf ein geregelter Stopp durchgeführt wird. Die Stoppverfahren werden mit geregelter Priorität ausgeführt. Bei diesem Beispiel wird dem Stoppverfahren mit der höheren Priorität eine höhere Nummer zugewiesen.
  • Nachdem jedes Programm im Permanentspeicher 13 jeder Robotersteuerung gespeichert ist, wird die Programmausführung gestartet. Dann beginnt der Prozessor 10 jeder Robotersteuerung 1 mit der Verarbeitung, die in dem Fließdiagramm in 9 bis 16 dargestellt ist.
  • Zunächst wird das gespeicherte Programm gelesen (Schritt S1). Es wird ermittelt, ob das gelesene Programm ein normales Programm ist oder nicht (Schritt S2). Siehe 6: Im obigen Beispiel liest jeder Roboter ein normales Programm. Deshalb geht das Verfahren zum Schritt S3 über, in dem in einem Register P Information eingestellt wird, die "normales Programm" anzeigt. Dann wird die nächste Programmzeile gelesen (Schritt S4). Es wird ermittelt, ob die Zeile vorhanden ist oder nicht (Schritt S5). Ist die Zeile zugegen, wird die Bewegungsstartposition (gegenwärtige Position) in dieser Zeile von der gelehrten Zielposition (TCP-Position) subtrahiert, die in der Zeile programmiert ist, wodurch ein Bewegungsabstand ermittelt wird. Zudem wird der Abstand durch eine gelehrte Arbeitsgeschwindigkeit dividiert, wodurch die Bewegungszeit ermittelt wird. Die Bewegungszeit wird zudem durch einen Interpolationsberechnungszeitraum dividiert, wodurch die Anzahl der Interpolationspunkte ermittelt wird (Schritt S6).
  • Als nächstes wird ein Index i auf "0" gesetzt (Schritt S6). Es wird ermittelt, ob der Index i kleiner ist als die Anzahl der Interpolationspunkte, die im Schritt S6 ermittelt wurde, oder nicht (Schritt S8). Ist der Index i kleiner als die Anzahl an Interpolationspunkten, geht das Verfahren zum Schritt S9. In diesem wird ermittelt, ob eine Stoppverfahrensanfrage ausgegeben ist oder nicht. Ist die Stoppverfahrensanfrage ausgegeben, wird ein Stoppverfahren durchgeführt (Schritt S9). Ist keine Stoppverfahrensanfrage ausgegeben, wird der im Schritt S6 ermittelte Bewegungsabstand durch die Anzahl an Interpolationspunkten dividiert. Der Quotient wird mit der Summe (i + 1) des Indexes i und "1" multipliziert. Der erhaltene Wert wird zu der Bewegungsstartposition in dieser Zeile hinzuaddiert, wodurch Interpolationspositionsdaten erhalten werden (Schritt S10).
  • Ein Bewegungsausmaß (abgestuftes Ausmaß) jeder Achse wird auf Basis dieser Interpolationsdaten ermittelt (Schritt S11). Das Bewegungsausmaß jeder Achse wird einer Beschleunigungs-/Abbremsverarbeitung unterworfen (Schritt S12) und einem Motor befohlen (Schritt S13). Genauer gesagt, wird ein Bewegungsbefehlswert jeder Achse, der einer Beschleunigungs-/Abbremsverarbeitung unterworfen wurde, an den Achsenregelabschnitt 14 des Roboters ausgegeben, es erfolgen eine Schleifenregelung von Position, Geschwindigkeit, Strom usw., und ein Servomotor für jede Achse des Robotermechanismusabschnitts 2 wird über den Servoverstärker 17 angetrieben.
  • Als nächstes wird der Index i um "1" erhöht (Schritt S14). Das Verfahren kehrt zum Schritt S7 zurück und führt wiederholt die Verarbeitung der Schritte S8 bis S14 durch, bis der Index i die Anzahl der Interpolationspunkte erreicht. Erreicht der Index i die Anzahl der Interpolationspunkte, geht das Verfahren vom Schritt S8 zum Schritt S3 über, in dem die nächste Programmzeile gelesen wird. Die Verarbeitung im Schritt S3 und in den folgenden Schritten wird wiederholt durchgeführt, bis die gelesene Zeile fehlt. Fehlt die Zeile, ist die Verarbeitung dieses normalen Programms beendet.
  • Dann wird das nächste Programm gelesen. Es wird ermittelt, ob das Programm ein normales Programm ist oder nicht (Schritte S1 und S2). Bei dem in 6 gezeigten Beispiel wird das Master-Programm für den Roboter Nr. 1 und das Slave-Programm für die Roboter Nr. 2 und 3 gelesen. Der Roboter Nr. 4 führt den Betrieb gemäß dem normalen Programm weiter durch, bis das normale Programm endet.
  • Das Verfahren in den Steuerungen der Roboter Nr. 1-3 schreitet von Schritt S2 zu Schritt S16 voran, in dem ermittelt wird, ob das gelesene Programm ein Master-Programm ist oder nicht. Weil die Steuerung des Roboters Nr. 1 das Master-Programm liest, wird die Verarbeitung der Schritte S17 bis S38 gestartet. Weil die Steuerungen der Roboter Nr. 1-3 das Slave-Programm lesen, geht das Verfahren vom Schritt S16 zum Schritt S39 über.
  • Der Prozessor 10 der Steuerung für den Roboters Nr. 1, die als Master-Robotersteuerung fungiert, gibt über die Kommunikationsleitung L eine Bekanntgabe der Beendigung der Ausführungsstarfvorbereitung des Master-Programms an die Slave-Roboter aus, wobei auf die Definition von Master- und Slave-Roboter, wie in 4 gezeigt, Bezug genommen wird (Schritt S17). Er ermittelt ob Bekanntgaben der Beendigung der Ausführungsstartvorbereitung von allen benachrichtigten Slave-Robotern erhalten wurden (Schritt S18). Die Verarbeitung der Schritte S17 und S18 wird wiederholt durchgeführt, bis die Bekanntgaben erhalten werden.
  • Andererseits ermittelt der Prozessor der Slave-Robotersteuerung, ob eine Bekanntgabe der Beendigung der Ausführungsstartvorbereitung von dem Master-Roboter erhalten wurde oder nicht (Schritt S39), und wartet, bis die Bekanntgabe empfangen worden ist. Wurde die Bekanntgabe erhalten, wird die Nummer des Master-Roboters, von dem die Bekanntgabe der Beendigung der Ausführungsstartvorbereitung empfangen wird, im Permanentspeicher 13 gespeichert (Schritt S40). Eine Bekanntgabe der Beendigung der Ausführungsstartvorbereitung von dem Slave-Roboter wird an den Master-Roboter über die Signalleitung L ausgegeben (Schritt S41). Die Verarbeitung der Schritte S41 und S42 wird wiederholt durchgeführt, bis vom Master-Roboter ein Ausführungsstartbefehl empfangen wird.
  • Somit wird die Bekanntgabe der Beendigung der Ausführungsstartvorbereitung zwischen dem Master-Roboter und den Slave-Robotern ausgetauscht. Empfängt der Master-Roboter die Bekanntgaben der Beendigung der Ausführungsstartvorbereitung von allen Slave-Robotern (Schritt S18), wird der Ausführungsstartbefehl an alle Slave-Roboter ausgegeben (Schritt S19).
  • Wird zunächst ein normaler und unabhängiger Betrieb jedes Roboters ausgeführt und dann der synchron kooperative Betrieb mit den Robotern Nr. 1-3, wie in 6 gezeigt, wird der synchron kooperative Betrieb nicht gestartet, bis die Bekanntgaben der Beendigung der Ausführungsstartvorbereitung von allen Slave-Robotern empfangen worden sind, sogar wann der Master-Roboter die Ausführung des normalen Programms beendet und das folgende Master-Programm liest. Der Slave-Roboter führt zudem sie Verarbeitung der Schritte S1, S2, S16, S39 so lange nicht durch und gibt natürlich so lange keine Bekanntgabe der Beendigung der Ausführungsstartvorbereitung an den Master-Roboter im Schritt S41 aus, bis er die Ausführung des vorhergehenden normalen Programms beendet hat. Deshalb wird der nächste synchron kooperative Betrieb so lange nicht ausgeführt, bis alle Roboter die Verarbeitung der jeweiligen normalen Programme beendet haben.
  • Dagegen erfolgt keine Bekanntgabe der Beendigung der Ausführungsstartvorbereitung vom Master-Roboter an jeden Slave-Roboter, sogar wenn die Verarbeitung des normalen Programms in dem Master-Roboter zuletzt endet. Somit wird der anschließende synchron kooperative Betrieb nicht gestartet, bis der Master-Roboter die Verarbeitung des normalen Programms beendet und alle Roboter den vorhergehenden normalen Betrieb beendet haben.
  • Sind in den Robotern, in denen der synchron kooperative Betrieb ausgeführt wird, die Arbeitsschritte aller Roboter, die vor der Ausführung des synchron kooperativen Betriebs durchgeführt wurden, beendet und hat der Master-Roboter die Bekanntgabe der Beendigung der Ausführungsstartvorbereitung von allen Slave-Robotern (in diesem Fall den Robotern Nr. 2 bis Nr. 4) im Schritt S18 erhalten, gibt der Prozessor des Master-Roboters den Ausführungsstartbefehl an die Slave-Roboter aus (Schritt S19). Der Prozessor des Master-Roboters speichert die gegenwärtige Position im Permanentspeicher 13 als Startposition für einen synchron kooperativen Betrieb (Schritt S20). Zudem speichert er in einem Register P Information darüber, dass er sich inmitten der Ausführung des Master-Programms befindet (Schritt S21). Dann wird die nächste Programmzeile ge lesen (Schritt S22). Die Verarbeitung in den Schritten S23 bis S26 ist die gleiche wie die vorstehend beschriebene Verarbeitung in den Schritten S5 bis S8. Genauer gesagt, werden der Bewegungsabstand, die Bewegungszeit und die Anzahl an Interpolationspunkten ermittelt, ist eine Programmzeile vorhanden. Der Index i wird auf "0" gestellt. Ist der Index i kleiner als die Anzahl an Interpolationspunkten, wird die Verarbeitung "Stoppbefehlsbestätigung und- verfahren" ausgeführt, die gleich der Verarbeitung im Schritt S9 ist (Schritt S27). Wird kein Stoppverfahrensbefehl ausgegeben, erfolgt die Verarbeitung des Schrittes S28, die gleich der oben beschriebenen Verarbeitung des Schrittes S8 ist. So werden die Interpolationspositionsdaten erhalten. D.h. die Interpolationspositionsdaten werden mithilfe folgender Computerberechnung erhalten. Interpolationspositionsdaten = Bewegungsstartposition dieser Zeile + (Bewegungsabstand ÷ Anzahl der Interpolationspunkte) × (i + 1)
  • Der Prozessor des Master-Roboters sendet die gespeicherte Startposition für den synchron kooperativen Betrieb des Master-Roboters und die im Schritt S28 erhaltenen Interpolationspositionsdaten an alle Slave-Roboter über die Kommunikationsleitung L (Schritt S29), ermittelt das Bewegungsausmaß (abgestufte Ausmaß) auf jeder Achse auf Basis der im Schritt S28 erhaltenen Interpolationspositionsdaten. Diese Verarbeitung ist die gleiche wie in den Schritten S11, S12 und S13. Er führt die Beschleunigungs-/Abbremsverarbeitung durch und gibt Befehle an die Motoren aus (Schritte S30, S31 und S32). Anschließend wartet der Master-Roboter, bis Bekanntgaben der Beendigung des Interpolationspositionsdatenempfangs von allen Slave-Robotern gesendet worden sind (Schritt S33).
  • Empfängt der Prozessor der Slave-Roboter im Schritt S42 den vom Prozessor des Master-Roboters bei der Verarbeitung in Schritt S19 ausgegebenen Ausführungsstartbefehl, speichert der Prozessor des Slave-Roboters im Register P Information, dass er sich inmitten der Ausführung des Slave-Programms befindet, (Schritt S43) und führt die gleiche Verarbeitung wie in den Schritten S22 bis S26 durch. Genauer gesagt, wird die nächste Zeile des Slave-Programms gelesen. Ist die Zeile vorhanden, werden der Bewegungsabstand, die Bewegungszeit und die Anzahl der Interpolationspunkte gemäß dieser Zeile ermittelt, der Index i wird auf "0" gesetzt, und es wird ermittelt, ob der Index i kleiner ist als die Anzahl an Interpolationspunkten oder nicht (Schritte S44 bis S48). Ist der Index i kleiner als die Anzahl der Interpolationspunkte, wird die gleiche Verarbeitung durchgeführt, wie bei der obigen Verarbeitung der Schritte S9 und S10. Genauer gesagt, wird Stoppbestätigung und -verfahren ausgeführt (Schritt SB49). Wird kein Stoppverfahrensbefehl ausgegeben, wird der im Schritt S46 erhaltene Bewegungsabstand durch die Anzahl an Interpolatiunspunkten dividiert. Der Quotient wird mit einem Wert multipliziert, der durch Addieren von 1 zum Index i erhalten wird. Dann wird die erhaltene Summe zu der Bewegungsstartposition in dieser Zeile addiert, wodurch die Interpolationspositionsdaten ermittelt werden (Schritt S50).
  • Dann wartet die Steuerung des Slave-Roboters, bis die Interpolationspositionsdaten und die Startpositionsdaten für den synchron kooperativen Betrieb vom Master-Roboter empfangen worden sind (Schritt S51). Sind die empfangenen Interpolationspositionsdaten nicht die Daten von dem Master-Roboter, der durch die im Schritt S40 gespeicherte Roboternummer identifiziert wird (Schritt S48), gibt der Slave-Roboter einen Alarm aus und stoppt (Schritt S53). Werden dagegen die im Schritt S26 gesendeten Interpolationspositionsdaten und die Daten über die Startposition des synchron kooperativen Betriebs von dem Master-Roboter empfangen, der durch die Roboternummer identifiziert wird, ermittelt der Prozessor des Slave-Roboters auf Basis der empfangenen Daten über die Startposition des synchron kooperativen Betriebs und der Interpolationspositionsdaten eine Transformatinnsmatrix zu dem Bewegungsausmaß des Slave-Roboters für das Bewegungsausmaß des Master-Roboters (Schritt S54). Er ermittelt korrigierte Interpolationspositionsdaten des Slave-Roboters unter Berücksichtigung des Bewegungsausmaßes des Master-Roboters auf Basis der ermittelten Transformationsmatrix und der im Schritt S50 erhaltenen Interpolationspositionsdaten des Slave-Roboters (Schritt S55).
  • Ein Verfahren zur Bestimmung der korrigierten Interpolationspositionsdaten des Slave-Roboters unter Berücksichtigung des Bewegungsausmaßes des Master-Roboters wird anhand der 17 beschrieben.
  • P0:
    eine beliebige Position im Raum
    P1:
    eine andere beliebige Position im Raum
    P0s:
    eine Position. an der P0 von dem Weltkoordinatensystem des Slave-Roboters aus betrachtet wird
    P1s:
    eine Position. an der P1 von dem Weltkoordinatensystem des Slave-Roboters aus betrachtet wird
    P0m:
    eine Position, an der P0 von dem Weltkoordinatensystem des Master-Roboters aus betrachtet wird
    P1m:
    eine Position, an der P1 von dem Weltkoordinatensystem des Master-Roboters aus betrachtet wird
    Ts-m:
    eine Transformationsmatrix, wird das Weltkoordinatensystem des Master-Roboters vom Weltkoordinatensystem des Slave-Roboters aus betrachtet
    T0s-1s:
    eine Transformationsmatrix von P0s nach P1s in das Weltkoordinatensystem des Slave-Roboters, wird es von einem Slave-Roboter aus gesehen.
    P1s = T0s-1s|P0s (1) P1s = Ts-m|P1m (2) P0s = Ts-m|P0m (3)
  • Aus den Gleichungen (1), (2) und (3) Ts-m|P1m = T0s-1s|Ts-m|P0m (4)
  • Daher T0s-1s = Ts-m|P1m|INV(Ts-m|P0m) (5)wobei INV tür eine inverse Matrix steht.
  • In Gleichung (5) ist Ts-m eine Transformationsmatrix für den Fall, wird das Weltkoordinatensystem des Master-Roboters vom Weltkoordinatensystem des Slave-Roboters aus gesehen (ist der Master-Roboter Roboter Nr. 1 und der Slave-Roboter Roboter Nr. 2, ist die Transformationsmatrix Ts-m gleich T1-2). Sie wird im Permanentspeicher des Slave-Roboters gemäß der zuerst durchgeführten Kalibrierung eingestellt und gespeichert. Wird bei der Berechnung in Gleichung (5) P0m als vom Master-Roboter gesendete Startposition des synchron kooperativen Betriebs und P1 m als vom Master-Roboter gesendete Master-Roboter-Interpolationsposition verwendet, kann die Transformationsmatrix T0s-1s ermittelt werden, mit der das Bewegungsausmaß in dem Weltkoordinatensystem des Slave-Roboters ermittelt wird, das dem Bewegungsausmaß des Master-Roboters entspricht.
  • Wie die folgende Gleichung zeigt, können durch Multiplizieren der ermittelten Transformationsmatrix T0s-1s mit den im Schritt S49 ermittelten Interpolationspositionsdaten des Slave-Roboters die Interpolationspositionsdaten des Slave-Roboters erhalten werden, auf die das Bewegungsausmaß des Master-Roboters gespiegelt wird (zu denen es addiert wird).
  • Die Interpulationspositionsdaten des Slave-Roboters, auf die das Bewegungsausmaß des Master-Roboters gespiegelt wird, sind = T0s-1s|Interpolationspositionsdaten des Slave-Roboters.
  • Auf Basis der so korrigierten Interpolationspositionsdaten wird das Bewegungsausmaß auf jeder Achse ermittelt (Schritt S56), eine Beschleunigungs-/Abbremsverarbeitung wird durchgeführt (Schritt S57), und ein Befehl wird an den Motor ausgegeben (Schritt S58). Das wird eine Bekanntgabe des Empfangs der Interpolationspositionsdaten an den Master-Roboter gesendet (Schritt S59), der Index i wird um "1" erhöht (Schritt S60), und die Verarbeitung kehrt zum Schritt S48 zurück.
  • Die Verarbeitung der Schritte S48 bis S60 wird wiederholt durchgeführt, bis der Index i die Anzahl der Interpolationspunkte erreicht.
  • Wird im Schritt S33 ermittelt, dass die Master-Robotersteuerung die Bekanntgaben des Empfangs der Interpolationspositionsdaten, die von den Prozessoren der jeweiligen Slave-Roboter bei der Verarbeitung von Schritt S58 gesendet wurden, von allen Slave-Robotersteuerungen empfangen hat, wird der Index i um ⎕1" erhöht (S34). Die Verarbeitung kehrt zum Schritt S26 zurück und führt die Verarbeitung der Schritte S26 bis S34 wiederholt durch, bis der Index i die Anzahl der Interpolationspunkte erreicht.
  • Erreicht der Index i die Anzahl der Interpolationspunkte, geht das Verfahren vom Schritt S26 zum Schritt S22 über und führt die Verarbeitung der Schritte S22 und der folgenden Schritte aus.
  • Die Steuerung des Slave-Roboters führt ebenfalls die Verarbeitungen in den Schritten S48 bis S60 wiederholt durch. Erreicht der Index i die Anzahl der Interpolationspunkte, geht das Verfahren vom Schritt S48 zum Schritt S44 über und führt die Verarbeitung von Schritt S44 und der folgenden Schritte aus.
  • Die Steuerungen des Master-Roboters und des Slave-Roboters führen also die oben beschriebene Verarbeitung solange wiederholt aus, wie eine neue Zeile aus dem Master-Programm und dem Slave-Programm gelesen wird. Fehlt eine weitere Zeile, die gelesen werden kann, geht das Verfahren für den Master-Roboter vom Schritt S23 zum Schritt S35 über. Das Verfahren für den Slave-Roboter geht vom Schritt S45 zum Schritt S61 über.
  • Es ist anzunehmen, dass für den Master-Roboter früher als für den Slave-Roboter keine neue, zu lesende Zeile im Master-Programm mehr vorhanden ist und dass das Verfahren des Prozessors von dem Master-Roboter früher zum Schritt S35 übergeht als bei dem Slave-Roboter. In diesem Fall sendet der Prozessor des Master-Roboters die letzten, im Schritt S28 ermittelten Interpolationspositionsdaten und die in den Resistern gespeicherten Startpositionsdaten für den synchron kooperativen Betrieb an den Slave-Roboter über die Kommunikationsleitung L (Schritt S35). Er ermittelt, ob die Bekanntgaben der Beendigung von allen Slave-Robotern gesendet wurden oder nicht (Schritt S36).
  • Der Prozessor des Master-Roboters führt die Verarbeitung der Schritte S35 und S36 wiederholt durch, bis die Bekanntgaben der Beendigung von allen Slave-Robotern gesendet wurden, und sendet weiter die endgültig gesendeten Interpolationspositionsdaten und die Startpositionsdaten für den synchron kooperativen Betrieb. Genauer gesagt, werden die endgültig gesendeten Interpolationspositionsdaten und die Startpositionsdaten für den synchron kooperativen Betrieb stetig an die Slave-Roboter gesendet, auch wenn der Betrieb des Master-Roboters stoppt.
  • Der Slave-Roboter führt die Verarbeitung der Schritte S44 bis S60 solange durch, wie eine Befehlszeile aus dem Slave-Programm ausgelesen wird. Weil die im Schritt S51 empfangenen Daten die Interpolationspositionsdaten und die Startpositionsdaten für den synchron kooperativen Betrieb sind, die vom Master-Roboter endgültig gesendet werden, ist in diesem Fall die durch die Verarbeitung im Schritt S54 ermittelte Transformationsmatrix dieselbe.
  • Nachdem der Betrieb des Master-Roboters beendet ist, wird die gleiche Korrektur (das gleiche Ausmaß) für die Slave-Roboter vorgenommen (Schritt S55), die auf Basis des Slave-Programm gesteuert und angetrieben werden sollen. Fehlt eine Befehlszeile in dem Slave-Programm, geht das Verfahren für den Slave-Roboter zum Schritt S61 über, in dem die Bekanntgabe der Beendigung an den Master-Roboter über die Kommunikationsleitung ausgegeben wird. Dann ermittelt das Verfahren, ob ein Beendigungsbefehl vom Master-Roboter gesendet wurde oder nicht (Schritt S62). Wurde kein Beendigungsbefehl gesendet, wird Stoppbestätigung und -verfahren ausgeführt (Schritt S63). Wird kein Stoppverfahrensbefehl ausgegeben, wird der im Schritt S46 ermittelte Bewegungsabstand der letzten Zeile durch die Anzahl der Interpolationspunkte dividiert, der Quotient wird mit der durch den Index i angegebenen Anzahl der Interpolationspunkte multipliziert, und der erhaltene Wert wird zu der Bewegungsstartposition der letzten Zeile addiert, wodurch die Interpolationspositionsdaten ermittelt werden (Schritt S63). Genauer gesagt, sind diese Interpolationspositionsdaten die endgültige Position. Sie werden endgültig durch die Verarbeitung von Schritt S50 in der letzten Zeile ermittelt. Diese Daten sind gleich den im Register gespeicherten Interpolationspositionsdaten, so dass sie nicht ermittelt werden müssen, indem die Berechnung erneut durchgeführt wird, sondern einfach durch Lesen des im Register gespeicherten Wertes erhalten werden können.
  • Dann wird die Verarbeitung der Schritte S65 bis S72 ausgeführt, die gleich der Verarbeitung in den Schritten S51 bis S58 ist. Die im Schritt S64 ermittelten Interpolationspositionsdaten sind gleich den im Schritt S50 in der letzten Zeile ermittelten Interpolationspositionsdaten. Für die im Schritt S68 ermittelte Transformationsmatrix ändern sich nicht die vom Master-Roboter gesendeten Startpositionsdaten für den synchron kooperativen Betrieb und die Interpolationspositionsdaten. Daher ist diese Korrektur (dieses Ausmaß) gleich der Korrektur (dem Ausmaß), die (das) endgültig in der letzten Zeile ermittelt wird. Dadurch sind die im Schritt S69 ermittelten korrigierten Interpolationspositionsdaten gleich den im Schritt S55 in der letzten Zeile ermittelten letzten Interpolationspositionsdaten. Somit wird das Bewegungsausmaß (abgestufte Ausmaß) auf jeder Achse "0". An den Motor wird kein Befehl ausgegeben, so dass der Roboter gestoppt wird. Die Verarbeitung der Schritte S61 bis S72 wird wiederholt durchgeführt, bis vom Master-Roboter der Beendigungsbefehl gesendet wird. Wird der Beendigungsbefehl vom Master-Roboter gesendet (Schritt S62), wird Information über die Beendigung des Programms im Register P gespeichert (Schritt S73), und die Verarbeitung des Slave-Programms endet.
  • Werden von allen Slave-Robotern die Bekanntgaben der Beendigung empfangen (Schritt S36), gibt der Prozessor des Master-Roboters den Beendigungsbefehl an alle Slave-Roboter aus (Schritt S37) und speichert Information über die Beendigung des Programms im Register P (Schritt S38). Nach Empfangen dieses Beendigungsbefehls stoppt der Slave-Roboter seinen Betrieb, wie oben beschrieben, und diese Verarbeitung für den synchron kooperativen Betrieb endet.
  • Beendet der Slave-Roboter die Verarbeitung des Slave-Programms früher als der Master-Roboter, führt im Gegensatz dazu der Prozessor des Master-Roboters die Verarbeitung der Schritte S22 bis S34 wiederholt durch und sendet stetig die Startposition für den synchron kooperativen Betrieb und die Interpolationspositionsdaten an den Slave-Roboter im Schritt S29. Das Verfahren für den Slave-Roboter geht vom Schritt S45 zum Schritt S61 über, und die Verarbeitung in den Schritten S61 bis S72 wird wiederholt ausgeführt. In diesem Fall sind die im Schritt S64 ermittelten Interpolationspositionsdaten, wie oben beschrieben, die letzten Interpolationspositionsdaten in der letzten Zeile des Slave-Programms und die endgültige Befehlsposition. Für diese Interpolationspositionsdaten werden anhand der Startpositionsdaten für den synchron kooperativen Betrieb und der Interpolationspositionsdaten, die vom Master-Roboter gesendet wurden, die Interpolationspositionsdaten ermittelt, die unter Verwendung der im Schritt S68 ermittelten Transformationsmatrix korrigiert wurden. Zudem wird das Bewegungsausmaß auf jeder Achse ermittelt, die Beschleunigungs-/Ab-bremsverarbeitung wird durchgeführt, und der Motor für jede Achse wird angetrieben (Schritte S69 bis S72).
  • Dann ist auch die Ausführung des Master-Programms angeschlossen, und das Verfahren geht von Schritt S23 zum Schritt S35 weiter. Empfängt die Steuerung des Master-Roboters die Bekanntgabe der Beendigung von allen Slave-Robotersteuerungen emp fängt (Schritt S36), gibt sie die Bekanntgabe der Beendigung an alle Slave-Robotersteuerungen aus (Schritt S37), speichert Information über die Beendigung des Programms im Register P (Schritt S38) und stoppt den Betrieb des Master-Roboters. Nach Empfang der Bekanntgabe der Beendigung (Schritt S62) speichert die Steuerung des Slave-Roboters ebenfalls Information über die Beendigung des Programms im Register P (Schritt S72) und stoppt den Betrieb des Slave-Roboters.
  • Siehe 6: Sind normale Programme in den jeweiligen Robotern gespeichert, wird als nächstes die Verarbeitung der Schritte S1-S15 ausgeführt.
  • 15 zeigt "Stoppverfahrensbefehl-Bestätigung und -Verfahren", die in den Schritten S9, S27, S49 und S63 ausgeführt werden sollen, wie erwähnt.
  • 16 zeigt einen "Stoppverfahren-Management-Task", mit dem überwacht wird, ob ein Stoppbefehl ausgegeben wird oder nicht, und der einen Stoppverfahrensbefehl ermittelt. Jede Robotersteuerung führt die Überwachungsverarbeitung/Management-Task-Verarbeitung in jedem zuvor festgelegten Zeitraum aus. Der Prozessor 10 der Robotersteuerung 1 initialisiert ein Register SELF L VL, in dem die Stoppverfahrensart-Nummer für den Roboter gespeichert ist, der mit der Robotersteuerung verbunden ist, sowie die Register OTHER L VL, in denen die Stoppverfahrensart-Nummern für die anderen Roboter, die über die Kommunikationsleitung L angeschlossen sind, gespeichert sind, auf "0" (Schritt SB21). Die Register OTHER L VL werden jeweils für die Robotersteuerungen der anderen Roboter bereitgestellt.
  • Dann wird ermittelt, ob eine Stoppverfahrensanfrage (Stoppursache) für den Roboter ausgegeben wird, der mit der Robotersteuerung verbunden ist (Schritt SB22). Wird eine Stoppverfahrensanfrage (Stoppursache) ausgegeben, wird die Stoppverfahrensart-Nummer für die Stoppursache (Stoppverfahrensanfrage) anhand der Einstellung der Zuweisung der Stoppverfahrensart-Nummer zu jeder Stoppursache ermittelt, die im Permanentspeicher gespeichert ist, siehe 8. Die ermittelte Stoppverfahrensart-Nummer wird im Register SELF L VL gespeichert (Schritt SB32).
  • Die Stoppverfahrensart-Nummern, die von den anderen Robotersteuerungen über die Kommunikationsleitung L gesendet werden, und die zu den anderen Robotersteuerungen gehörenden Roboternummern werden empfangen und gespeichert. Die im SELF L VL gespeicherte Stoppverfahrensart-Nummer wird an die anderen Robotersteuerungen gesendet (Schritt SB23). Es wird ermittelt, ob das gerade ausgeführte Betriebsprogramm das Master-Programm oder das Slave-Programm ist (Schritt SB24). Wird gerade ein normales Programm ausgeführt, wie bei dem in 6 dargestellten Beispiel, ist das Ergebnis der Ermittlung in Schritt SB24 NEIN, und das Verfahren geht zum Schritt SB26 über. Im Schritt SB26 wird ermittelt, ob eines der Register SELF L VL und OTHERS L VL einen anderen Wert als "0" speichert. Das Register SELF L VL speichert einen anderen Wert als "0", wenn die Stoppverfahrens-Nummer im Schritt SB32 eingestellt wird, und speichert die im Schritt SB21 eingestellte "0", wenn keine Stoppverfahrensanfrage (Stoppursache) ausgegeben wird. Führt die Robotersteuerung gerade ein normales Programm aus, speichern in diesem Fall alle Register OTHERS L VL "0", weil die Verarbeitung der Schritte SB25 und SB33 nicht durchgeführt wird.
  • Speichern alle Register SELF L VL und OTHERS L VL "0", geht das Verfahren vom Schritt SB26 zum Schritt SB31 über und stellt die Daten für den Stoppverfahrensartbefehl STOP auf "0". Die Einstellung von "0" in den Daten für den Stoppverfahrensartbefehl STOP bedeutet, dass kein Stoppverfahren durchgeführt wird, wie später noch beschrieben wird. Wird ermittelt, dass eines der Register SELF L VL und OTHERS L VL im Schritt SB26 eine andere Zahl als "0" speichern, wird die größere der in den Registern SELF L VL und OTHERS L VL gespeicherten Zahlen als Stoppverfahrensart-Nummer verwendet (Schritt SB27). Weil alle Register OTHERS L VL "0" gespeichert haben, wird in diesem Fall die Stoppverfahrensart für den Roboter nur anhand der im Register SELF L VL gespeicherten Zahl bestimmt. In den Schritten SB28-30 wird ermittelt, ob die Art des Stoppverfahrens der Abbremsstopp (Stoppverfahrensart Nr. 1), der geregelte Stopp (Stoppverfahrensart Nr. 2) oder der sofortige Stopp (Stoppverfahrensart Nr. 3) ist. Die Daten zum Stoppverfahrensbefehl STOP werden auf "1" gesetzt, wenn als Stoppverfahrensart der Abbremsstopp ermittelt wird, auf "2", wenn als Stoppverfahrensart der geregelte Stopp ermittelt wird, und auf "3", wenn als Stoppverfahrensart der sofortige Stopp ermittelt wird (Schritte SB35 und SB36).
  • Die Stoppverfahrensart-Nummer, die anhand der Stoppursache ermittelt wird, die in dem Roboter aufgetreten ist, der mit der Robotersteuerung verbunden ist, wird als Stoppverfahrensbefehlsdaten STOP eingestellt, wenn die Robotersteuerung gerade das normale Programm ausführt. Dann wird das Stoppverfahren der ermittelten Art unter "Stopp-Bestätigung und -Verarbeitung" ausgeführt, siehe 15.
  • Wird dagegen anhand der im Register P eingestellten Information im Schritt Sb24 ermittelt, dass die Robotersteuerung gerade ein Master-Programm oder ein Slave-Programm ausführt, geht die Verarbeitung zum Schritt SB25 über. In diesem Schritt wird ermittelt, ob eine Stoppverfahrensanfrage (einschließlich der Stoppverfahrensart-Nummer) von einem der Roboter ausgegeben wurde, die den synchron kooperativen Betrieb gemäß der Master-/Slave-Roboter-Definition ausführen, wie in 4 dargestellt. Wird ermittelt, dass eine Stoppverfahrensanfrage von einem der Roboter ausgegeben wurde, die den synchron kooperativen Betrieb durchführen, wird die Stoppverfahrensart-Nummer in dem zugehörigen Register OTHER L VL eingestellt (Schritt SB33). Das Verfahren geht zum Schritt SB26 über. Wird eine Anzahl von Stoppverfahrensanfragen von den Robotern ausgegeben, die den synchron kooperativen Betrieb durchführen, werden die Stoppverfahrensart-Nummern jeweils in den zugehörigen Registern OTHER L VL eingestellt. Wurde eine Stoppverfahrensartanfrage von dem Roboter ausgegeben, der nicht den synchron kooperativen Betrieb durchführt, geht das Verfahren zum Schritt SB26 über und lässt die Verarbeitung von Schritt SB33 aus.
  • Im Schritt SB26 wird dann ermittelt, ob eines der Register SELF L VL und O-THERS L VL eine andere Zahl als "0" speichert. Speichern alle Register "0", geht das Verfahren zum Schritt SB31 weiter. Speichert eines der Register eine andere Zahl als "0", wird die größte der gespeicherten Zahlen als Stoppverfahrensart-Nummer ausgewählt (Schritt SB27). Dann wird ermittelt, ob die Stoppverfahrensart-Nummer "1", "2" oder "3" lautet. Die ermittelte Nummer wird in den Stoppverfahrensartbefehlsdaten STOP eingestellt (Schritte SB34, SB35 und SB36).
  • Tritt eine Ursache für einen Stopp des Roboters im Master-Roboter oder einem der Slave-Roboter auf, die den synchron kooperativen Betrieb ausführen, während die Robotersteuerung gerade ein Master-Programm oder ein Slave-Programm durchführt, werden der Master-Roboter und die Slave-Roboter mit der gleichen Art des Stoppverfahrens synchron gestoppt, wie oben beschrieben. Treten im Master-Roboter und in den Slave-Robotern unterschiedliche Ursachen für das Stoppen des Roboters auf, so dass unterschiedliche Stoppverfahrensart-Nummern für die jeweiligen Roboter im synchron kooperativen Betrieb eingestellt sind, wird die höchste Stoppverfahrensart-Nummer als Stoppverfahrensart für die jeweiligen Roboter im Schritt SB27 verwendet. Weil eine höhere Zahl einer Stoppverfahrensart mit den höheren Dringlichkeitsgrad zugewiesen wird, wird die Stoppverfahrensart mit der höchsten Dringlichkeitsstufe verwendet, sind unterschiedliche Stoppverfahrensart-Nummern eingestellt, wie beschrieben.
  • Wie erwähnt, wird "Stoppverfahrensbefehl-Bestätigung & -Verfahren", wie in 15 dargestellt, in den Schritten S9, S27, S49 und S49 bei der Ausführung eines normalen Programms, eines Master-Programms und eines Slave-Programms ausgeführt, so dass die Ausgabe eines Stoppverfahrensbefehls bestätigt und das Stoppverfahren zum Anhalten des Roboterbetriebs durchgeführt wird, ist ein Stoppverfahrensbefehl ausgegeben worden.
  • Zunächst werden die Daten zum Stoppverfahrensbefehl STOP unterschieden (Schritte SB1-SB3). Wird festgestellt, dass die STOP-Daten "0" sind (Schritt SB2), bedeu tet dies, dass kein Stoppverfahrensbefehl ausgegeben wurde. Deshalb kehrt das Verfahren zum Hauptprogramm zurück. Wird festgestellt, dass die Datenzum Stoppverfahrensbefehl STOP "1" sind, was für den Abbremsstopp steht (Schritt SB2), werden Bewegungsausmaße (abgestufte Ausmaße) für die jeweiligen Achsen des Roboters auf "0" gestellt, und die Beschleunigungs-/Abbremsverarbeitung wird durchgeführt. Damit werden die Ergebnisse der Verarbeitung an die Motoren ausgegeben, bis die Verarbeitung endet, wodurch die Motoren abgebremst und schließlich gestoppt werden (Schritte SB6-SB9).
  • Wird festgestellt, dass die Daten zum Stoppverfahrensbefehl STOP "2" sind, was für den geregelten Stopp steht (Schritt SB3), werden die Bewegungsausmaße (abgestuften Ausmaße) für die jeweiligen Achsen auf "0" gestellt, und die Beschleunigungs-/Abbremsverarbeitung wird durchgeführt. Damit werden die Ergebnisse der Verarbeitung an die Motoren ausgegeben, bis die Verarbeitung endet, wodurch der Motor abgebremst und schließlich gestoppt wird (Schritte SB10-SB13). Zudem wird die Stromversorgung an die Motoren unterbrochen, wodurch die Servoerregung abgeschaltet wird (Schritte SB14), so dass die Verarbeitung beendet wird.
  • Wird festgestellt, dass die Daten zum Stoppverfahrensbefehl STOP weder "0", noch "1", noch "2" sind, d.h. werden sie als "3" erkannt, was für den sofortigen Stopp steht, werden die Befehlsausmaße an die Motoren auf "0" gesetzt, wodurch diese sofort gestoppt werden (Schritte SB4, SB5).
  • Wird ein Stoppverfahrensbefehl im Master-Roboter oder in den Slave-Robotern beim synchron kooperativen Betrieb ausgegeben, wird die Stoppverfahrensart ausgewählt, die mit der Stoppursache übereinstimmt, und in den jeweiligen Robotersteuerungen ausgeführt, wie beschrieben. In der Master-Robotersteuerung wird die Verarbeitung der 15 im Schritt S27 der Ausführung des Master-Programms durchgeführt, wodurch die Bewegung des Master-Roboters gestoppt wird. In der Slave-Robotersteuerung wird die Verarbeitung der 15 in den Schritten S49 und S63 bei der Ausführung des Slave-Programms durchgeführt, wodurch der Betrieb des Slave-Roboters gestoppt wird.
  • Führt die Robotersteuerung ein normales Programm durch, wird die Verarbeitung der 15 im Schritt 9 bei der Ausführung des normalen Programms durchgeführt, wodurch die Bewegung des Roboters gestoppt wird.
  • Wird bei der vorherigen Ausführungsform die Stoppverfahrensanfrage im Master-Roboter oder einem der Slave-Roboter ausgegeben, werden der Master- und die Slave-Roboter im synchron kooperativen Betrieb gestoppt, wie anhand der Schritte SB24, SB25 und SB33 in 16 beschrieben. Wird die Stoppverfahrensanfrage in dem Roboter aus gegeben, der das normale Programm ausführt, wird nur der Roboter gestoppt, der das normale Programm ausführt.
  • Bei einem Robotersteuerungssystem, bei dem Robotersteuerungen über die Kommunikationsleitung miteinander verbunden sind, tritt jedoch der Fall auf, dass es bevorzugt ist, wenn unabhängig von dem Master- und den Slave-Robotern im synchron kooperativen Betrieb einige oder alle Roboter in dem System mit der gleichen Stoppverfahrensart gestoppt werden, wenn eine Ursache für einen Stopp in einem Roboter des Systems auftritt.
  • In diesem Fall wird die Verarbeitung dadurch modifiziert, dass die Verarbeitung der Schritte SB24, SB25 und Sb33 entfällt und die Verarbeitung des Schrittes SB23 durch eine Verarbeitung ersetzt wird, bei der die Stoppverfahrensart-Nummern in die Register OTHERS L VL für die jeweiligen Roboter gespeichert werden. Das Verfahren geht vom Schritt SB23 zum Schritt SB26 über und führt die Verarbeitung von Schritt SB26 und der folgenden Schritte aus. Speichern alle Register SELF L VL und OTHERS L VL "0", geht das Verfahren zum Schritt SB31 über. Speichert eines der Register SELF L VL und O-THERS L VL eine andere Zahl als "0", wird die höchste der gespeicherten Zahlen als Stoppverfahrensbefehlsdaten STOP eingestellt. Wenn eine Ursache für einen Stopp in einem der Roboter auftritt, die über die Kommunikationsleitung miteinander verbunden sind, werden bei dieser Verarbeitung Stoppverfahren der gleichen Art in allen Robotersteuerungen ausgeführt, die über die Kommunikationsleitung verbunden sind, wodurch die Roboter gestoppt werden.
  • Tritt zudem eine Stoppursache in einem der Roboter auf, die über die Kommunikationsleitung miteinander verbunden sind, kann jeder der anderen Roboter, die mit der gleichen Stoppverfahrensart gestoppt werden sollen, zuvor benannt werden. Insbesondere wird eine Gruppe von Robotern benannt. Tritt eine Stoppursache in einem Roboter der Gruppe auf, werden alle Roboter der Gruppe mit der gleichen Stoppverfahrensart gestoppt. In diesem Fall wird zusätzlich zu der Definition des Master- und der Slave-Roboter, wie in 4 gezeigt, eine Gruppe von Robotern definiert, die mit der gleichen Stoppverfahrensart gestoppt werden sollen, und unter Verwendung der Roboternummern gespeichert.
  • Siehe 16: Im Stoppverfahren-Management-Task entfällt dann das Verfahren von Schritt SB24, und das Verfahren geht vom Schritt SB23 zum Schritt SB25 über, in dem ermittelt wird, ob eine Stoppverfahrensanfrage von einem der Roboter in der Gruppe ausgegeben wurde, zu dem die Robotersteuerung gehört, oder nicht. Nur, wenn der Stoppverfahrensbefehl von einem Roboter in der Gruppe ausgegeben wurde, zu dem die Robotersteuerung gehört, geht das Verfahren zum Schritt SB33 über und speichert die Stoppverfahrensart-Nummer in die Register OTHER L VL. Die Verarbeitung von Schritt SB26 und die darauf folgende Verarbeitung werden durchgeführt. Wird mit der obigen Modifikation ein Stoppverfahrensbefehl von einem Roboter in der Gruppe ausgegeben, zu dem die Robotersteuerung gehört, werden alle Roboter in der Gruppe durch die gleiche Stoppverfahrensart abgestoppt. Wenn die Roboter eingestellt werden, die synchron kooperativ arbeiten sollen, und als Information zur Definition von Master und Slave eingegeben werden, wie in 4 gezeigt, kann automatisch eingestellt werden, dass die definierten Master-Roboter und Slave-Roboter in derselben Gruppe sind, wird diese Verarbeitung angewendet. Damit nur die synchron kooperativ arbeitenden Roboter mit der gleichen Stoppverfahrensart synchron abgestoppt werden, muss die Verarbeitung von Schritt SB24 in dem in 16 dargestellten Stoppverfahren-Management-Task durchgeführt werden. Soll dagegen ungeachtet des synchron kooperativen Betriebs ein Roboter in der Gruppe angehalten werden, wenn eine Stoppursache in einem der Roboter auftritt, wird die Verarbeitung von Schritt SB24 ausgelassen.
  • Bei der obigen Ausführungsform wird zudem im Schritt SB23 des in 16 dargestellten Stoppverfahren-Management-Task die Stoppverfahrensart-Nummer zwischen den Robotersteuerungen gesendet und empfangen, die über die Kommunikationsleitungen verbunden sind. Ersatzweise kann anstelle der Stoppverfahrensart-Nummer die Stoppursache zwischen den Robotersteuerungen gesendet und empfangen werden. In diesem Fall wird die Stoppverfahrensart-Nummer anhand der empfangenen Stoppursache unter Verwendung der eingestellten Entsprechungstabelle von Stoppursache und Stoppverfahrensart-Nummer ermittelt, wie in 8 gezeigt.
  • Zudem kann PLC an dem Robotersteuerungssystem bereitgestellt werden, bei dem Robotersteuerungen über Kommunikationsleitungen, wie Ethernet, verbunden sind. Die jeweiligen Robotersteuerungen und die PLC sind mittels paralleler Ein-/Aus-gabe (I/O) verbunden. Daten in Bezug auf die Positionsinformation für den synchron kooperativen Betrieb werden über die Kommunikationsleitungen übertragen, wie Ethernet. Daten in Bezug auf das Steppverfahren können über die parallele Ein-/Aus-gabe übertragen werden.
  • Siehe 20a und 20b: Unabhängige Ein-/Ausgabe und binäre Datenein-/ausgabe können als Verfahren zur Übertragung von Stoppverfahrensinformation verwendet werden.
  • Bei einer unabhängigen Ein-/Ausgabe wird jeder Stoppverfahrensart ein Eingabe-/Ausgabesignal zugewiesen. Beispielsweise wird DO3 ausgegeben, soll der Roboter mit dem Sofortstopp gestoppt werden. DI3 wird eingegeben, soll der Roboter mit dem Sofortstopp gestoppt werden.
  • Bei Eingabe/Ausgabe binärer Daten wird jedes Stoppverfahren durch binäre Daten ausgedrückt. Im Fall der drei Stoppverfahrensarten können zum Beispiel alle Stoppverfahrensarten durch zwei binäre Signale dargestellt werden. In diesem Fall werden zwei DO-Signale ausgegeben zum Stoppen des Roboters mit dem Sofortstopp, und zwei DI-Signale werden eingegeben, soll der Roboter mit dem Sofortstopp gestoppt werden.
  • Bei dem in 18 und 19 dargestellten Robotersteuerungssystem muss die PLC das Stoppverfahrensartsignal von der Robotersteuerung an die anderen Robotersteuerungen als Stoppbefehl eingeben.
  • Muss mindestens einer der Roboter, die miteinander über einen Kommunikationspfad verbunden sind, aufgrund einer Stoppursache gestoppt werden, werden erfindungsgemäß der Roboter und die anderen Roboter mit der gleichen Stoppverfahrensart angehalten. So wird verhindert, dass sich die relativen Positionen zwischen den Robotern, die einen synchron kooperativen Betrieb ausführen, in Bezug zueinander verschieben. Weil ein Abbremsstopp und ein geregelter Stopp als Stoppverfahrensarten verwendet werden können, wird der sofortige Stopp, der herkömmlicherweise als Stoppverfahren eingesetzt wird, seltener. So wird die Belastung auf den Robotermechanismus kleiner.

Claims (7)

  1. Robotersteuerungssystem, bei dem eine Anzahl Robotersteuerungen (1, 2, 3, 4), jeweils zur Steuerung eines zugehörigen Roboters, miteinander verbunden sind über einen Kommunikationspfad (L) über eine Vorrichtung (15) zum Senden und Empfangen von Information, damit ein synchron kooperativer Betrieb mit einer oder mehr der anderen Robotersteuerungen erfolgt, wobei jede Robotersteuerung gekennzeichnet ist durch: eine Speichervorrichtung (13), die eingerichtet ist zum Speichern von Zuweisungsinformation bezüglich Arten des Stoppverfahrens, die einer Mehrzahl von Ursachen zum Stoppen des zugehörigen Roboters jeweils zugewiesen wird; eine Ermittlungsvorrichtung, die eingerichtet ist zum Ermitteln einer ersten Stoppursache, die in dem Roboter auftritt, der mit der Robotersteuerung verbunden ist; eine Benennungsvorrichtung, die eingerichtet ist zum Benennen einer ersten Art des Stoppverfahrens aufgrund der ermittelten ersten Ursache für das Stoppen und der Zuweisungsinformation, die in der Speichervorrichtung (13) gespeichert ist; eine Sendevorrichtung (15), die eingerichtet ist zum Senden von Identifizierungsinformation, die die benannte erste Art des Stoppverfahrens für eine andere Robotersteuerung über den Kommunikationspfad definiert; eine Empfangsvorrichtung (15), die eingerichtet ist zum Empfangen von Identifizierungsinformation, die eine zweite Art des Stoppverfahrens definiert, von einer anderen Robotersteuerung über den Kommunikationspfad; und eine Bestimmungsvorrichtung, die eingerichtet ist zum Bestimmen einer Art des Verfahrens zum Stoppen des zugehörigen Roboters aufgrund der Identifizierungsinformation, die die erste Art des Stoppverfahrens definiert, oder der Identifizierungsinformation, die die zweite Art des Stoppverfahrens definiert, so dass im Betrieb diejenigen Robotersteuerungen, die zur Durchführung eines synchronen kooperativen Betriebs miteinander angeordnet sind, sämtlich derart angeordnet sind, dass sie die gleiche Art des Stoppverfahrens ausführen, wenn eine dieser Robotersteuerurgen ein Stoppverfahren durchführt.
  2. Robotersteuerungssystem, bei dem eine Anzahl Robotersteuerungen (1, 2, 3, 4), jeweils zur Steuerung eines zugehörigen Roboters, miteinander verbunden sind über einen Kommunikationspfad (L) über eine Vorrichtung (15) zum Senden und Empfangen von Information, damit ein synchron kooperativer Betrieb mit einer oder mehr der anderen Robotersteuerungen erfolgt, wobei jede Robotersteuerung gekennzeichnet ist durch: eine Speichervorrichtung (13), die eingerichtet ist zum Speichern von Zuweisungsinformation bezüglich Arten des Stoppverfahrens, die einer Mehrzahl von Ursachen zum Stoppen des zugehörigen Roboters jeweils zugewiesen wird; eine Ermittlungsvorrichtung, die eingerichtet ist zum Ermitteln einer ersten Stoppursache, die in dem Roboter auftritt, der mit der Robotersteuerung verbunden ist; eine Benennungsvorrichtung, die eingerichtet ist zum Benennen einer ersten Art des Stoppverfahrens aufgrund der ermittelten ersten Ursache für das Stoppen und der Zuweisungsinformation, die in der Speichervorrichtung (13) gespeichert ist; eine Sendevorrichtung (15), die eingerichtet ist zum Senden von Identifizierungsinformation bezüglich der ermittelten ersten Ursache für das Stoppen als die Identifizierungsinformation, die die benannte erste Art des Stoppverfahrens definiert, an eine andere Robotersteuerung über den Kommunikationspfad; eine Empfangsvorrichtung (15), die eingerichtet ist zum Empfangen von Identifizierungsinformation bezüglich einer zweiten Ursache für das Stoppen, die in einem zu einer anderen Robotersteuerung zugehörigen Roboter aufgetreten ist, wobei die Information von der anderen Robotersteuerung über den Kommunikationspfad gesendet wird, und zum Benennen der zweiten Art des Stoppverfahrens aufgrund der Zuweisungsinformation, die in der Speichervorrichtung gespeichert ist; und eine Bestimmungsvorrichtung, die eingerichtet ist zum Bestimmen einer Art des Verfahrens zum Stoppen des zugehörigen Roboters aufgrund der Identifizierungsinformation, die die erste Art des Stoppverfahrens definiert, oder der Identifizierungsinformation, die die zweite Art des Stoppverfahrens definiert, so dass im Betrieb diejenigen Robotersteuerungen, die zur Durchführung eines synchronen kooperativen Betriebs miteinander angeordnet sind, sämtlich derart angeordnet sind, dass sie die gleiche Art des Stoppverfahrens ausführen, wenn eine dieser Robotersteuerungen ein Stoppverfahren durchführt.
  3. Robotersteuerungssystem nach Anspruch 1 oder 2, wobei die Ursachen zum Stoppen eines Roboters einen in den Roboter eingegebenen Notstoppbefehl und einen im Roboter auftretenden Alarm beinhalten.
  4. Robotersteuerungssystem nach einem vorhergehenden Anspruch, wobei die Arten des Stoppverfahrens danach klassifiziert werden, ob eine Spannungszufuhr abgeschaltet wird oder nicht und/oder ob Motoren zum Antreiben des Roboters einer Beschleunigungs-/Abbremsverarbeitung unterworfen werden oder nicht.
  5. Robotersteuerungssystem nach einem vorhergehenden Anspruch, das zudem umfasst: eine Spezifizierungsvorrichtung, die einen oder mehr Roboter spezifiziert, die gleichzeitig mit dem zugehörigen Roboter gestoppt werden sollen, tritt die erste Ursache für das Stoppen auf; und wobei die Sendevorrichtung (15) betriebsfähig ist zum Senden von Identifizierungsinformation bezüglich der benannten ersten Art des Stoppverfahrens an die ein oder mehr Robotersteuerungen der spezifizierten ein oder mehr Roboter über den Kommunikationspfad.
  6. Robotersteuerungssystem nach Anspruch 1 oder 2, das zudem Vorrichtungen zum Senden und Empfangen von Information, damit ein synchronisierter oder kooperativer Betrieb durchgeführt wird, über den Kommunikationspfad umfasst.
  7. Robotersteuerungssystem nach Anspruch 6, das zudem eine Vorrichtung umfasst, mit der die Ermittlungsvorrichtung nur dann in Gang gesetzt wird, führt der zugehörige Roboter einen synchronisierten oder kooperativen Betrieb mit einem anderen Roboter durch.
DE60127908T 2000-09-04 2001-09-04 Robotersteuerung Expired - Lifetime DE60127908T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000266859A JP3504222B2 (ja) 2000-09-04 2000-09-04 ロボット制御装置
JP2000266859 2000-09-04

Publications (2)

Publication Number Publication Date
DE60127908D1 DE60127908D1 (de) 2007-05-31
DE60127908T2 true DE60127908T2 (de) 2007-08-02

Family

ID=18753878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60127908T Expired - Lifetime DE60127908T2 (de) 2000-09-04 2001-09-04 Robotersteuerung

Country Status (4)

Country Link
US (1) US6434448B1 (de)
EP (1) EP1186386B1 (de)
JP (1) JP3504222B2 (de)
DE (1) DE60127908T2 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016124492A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten steuerung von zumindest zwei manipulatoren
DE102016221213A1 (de) * 2016-10-27 2018-05-03 Audi Ag Automatisiertes Instandhaltungssystem

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6852107B2 (en) 2002-01-16 2005-02-08 Computer Motion, Inc. Minimally invasive surgical training using robotics and tele-collaboration
US8527094B2 (en) * 1998-11-20 2013-09-03 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
JP3577028B2 (ja) * 2001-11-07 2004-10-13 川崎重工業株式会社 ロボットの協調制御システム
DE10234233A1 (de) * 2002-07-27 2004-02-05 Kuka Roboter Gmbh Verfahren zum Austausch von Daten zwischen Steuerungen von Maschinen, insbesondere von Robotern
DE10235943A1 (de) * 2002-08-06 2004-02-19 Kuka Roboter Gmbh Verfahren und Vorrichtung zum synchronen Steuern von Handhabungsgeräten
DE10236392A1 (de) * 2002-08-08 2004-02-19 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
JP2004199433A (ja) * 2002-12-19 2004-07-15 Fanuc Ltd 同期制御装置
US7295893B2 (en) * 2003-03-31 2007-11-13 Kabushiki Kaisha Toshiba Manipulator and its control apparatus and method
EP1644782B1 (de) * 2003-06-20 2009-03-04 Fanuc Robotics America, Inc. Mehrfach-roboterarm-verfolgung und spiegel-jog
SE0303384D0 (sv) * 2003-12-15 2003-12-15 Abb Ab Control system, method and computer program
WO2005124482A1 (en) * 2004-06-17 2005-12-29 Abb Ab Control system for an industrial robot
SE0402098D0 (sv) * 2004-08-30 2004-08-30 Abb Ab A control system
US8000837B2 (en) 2004-10-05 2011-08-16 J&L Group International, Llc Programmable load forming system, components thereof, and methods of use
JP2006209646A (ja) * 2005-01-31 2006-08-10 Toyota Motor Corp 分散制御システム
JP4382003B2 (ja) 2005-03-23 2009-12-09 川崎重工業株式会社 ロボット制御装置およびロボット制御方法
US7860609B2 (en) 2005-05-06 2010-12-28 Fanuc Robotics America, Inc. Robot multi-arm control system
US7904182B2 (en) 2005-06-08 2011-03-08 Brooks Automation, Inc. Scalable motion control system
JP2006346756A (ja) * 2005-06-13 2006-12-28 Kuka Roboter Gmbh ロボットを制御する方法およびシステム
CN101309783B (zh) * 2005-11-16 2013-09-11 Abb股份有限公司 控制装有定位开关的工业机器人运动的方法、装置、系统及其应用
JP4930824B2 (ja) * 2005-11-16 2012-05-16 株式会社安川電機 ロボット制御装置およびロボットシステム
JP4950522B2 (ja) * 2006-03-08 2012-06-13 花王株式会社 作業追従装置
DE102006022483A1 (de) * 2006-05-13 2007-11-29 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Anzeigen einer Roboterbahn zur Unterstützung einer Ortsänderung eines Stützpunktes
JP2008023628A (ja) * 2006-07-19 2008-02-07 Denso Corp 組立装置
KR100945884B1 (ko) * 2007-11-14 2010-03-05 삼성중공업 주식회사 내장형 로봇 제어 시스템
DE102008021671B4 (de) 2008-04-30 2013-04-11 Kuka Laboratories Gmbh Verfahren und Vorrichtung zur Überwachung eines Manipulators
DE102008061172A1 (de) * 2008-12-09 2010-06-10 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Steuern eines Manipulatorsystems
JP5375297B2 (ja) * 2009-04-16 2013-12-25 株式会社安川電機 ロボットシステム
CN102481691B (zh) * 2010-02-03 2015-04-29 松下电器产业株式会社 机器人系统的控制方法
US8731714B2 (en) * 2010-09-22 2014-05-20 GM Global Technology Operations LLC Concurrent path planning with one or more humanoid robots
JP5618770B2 (ja) * 2010-11-09 2014-11-05 三菱電機株式会社 ロボットの校正装置および校正方法
US10054933B2 (en) * 2012-03-27 2018-08-21 Sirqul, Inc. Controlling distributed device operations
WO2014002678A1 (ja) * 2012-06-29 2014-01-03 三菱電機株式会社 ロボット制御装置およびロボット制御方法
US9840008B2 (en) * 2013-03-19 2017-12-12 Panasonic Intellectual Property Management Co., Ltd. Robot system control method and robot system
DE102014104377A1 (de) * 2013-03-29 2014-10-02 Fanuc America Corporation Anpassungsfähige Steuerung eines Laser-Hartlöt-/Schweissvorgangs mit Roboter
JP5970415B2 (ja) 2013-05-16 2016-08-17 株式会社神戸製鋼所 産業用ロボットおよび周辺装置の動作を制御する制御システムおよび制御方法
WO2014186781A1 (en) 2013-05-17 2014-11-20 Intelligrated Headquarters, Llc Robotic carton unloader
US10807805B2 (en) 2013-05-17 2020-10-20 Intelligrated Headquarters, Llc Robotic carton unloader
US9650215B2 (en) * 2013-05-17 2017-05-16 Intelligrated Headquarters Llc Robotic carton unloader
JP5892132B2 (ja) 2013-09-13 2016-03-23 株式会社安川電機 制御装置及びロボットシステム
JP6258043B2 (ja) * 2014-01-17 2018-01-10 株式会社神戸製鋼所 産業用ロボットを制御する制御システム、制御装置、溶接物製造方法およびプログラム
CN106659541B (zh) 2014-03-19 2019-08-16 直观外科手术操作公司 集成眼球凝视跟踪用于立体观看器的医疗装置、系统和方法
JP6644699B2 (ja) * 2014-03-19 2020-02-12 インテュイティブ サージカル オペレーションズ, インコーポレイテッド 視線追跡を使用する医療装置、システム、及び方法
JP5952330B2 (ja) * 2014-03-27 2016-07-13 ファナック株式会社 加工条件管理機能を有する加工アプリケーションロボットシステム
JP6539989B2 (ja) * 2014-11-14 2019-07-10 株式会社デンソーウェーブ ロボット制御装置
JP2016162205A (ja) * 2015-03-02 2016-09-05 ファナック株式会社 複数系統をグループ化することにより制御を一元管理できる制御装置
KR20180044946A (ko) * 2015-08-25 2018-05-03 카와사키 주코교 카부시키 카이샤 복수의 로봇시스템간의 정보공유시스템 및 정보공유방법
EP3463765A1 (de) * 2016-05-23 2019-04-10 ABB Schweiz AG Dynamische zuordnung von bearbeitungsaufgaben für eine roboterzelle
GB2552019B (en) * 2016-07-08 2020-01-08 Rolls Royce Plc Methods and apparatus for controlling at least one of a first robot and a second robot to collaborate within a system
US10597235B2 (en) 2016-10-20 2020-03-24 Intelligrated Headquarters, Llc Carton unloader tool for jam recovery
JP6496340B2 (ja) * 2017-03-17 2019-04-03 ファナック株式会社 スキャナ制御装置、ロボット制御装置及びリモートレーザ溶接ロボットシステム
US10368955B2 (en) * 2017-03-31 2019-08-06 Johnson & Johnson Innovation-Jjdc, Inc. Multi-functional foot pedal assembly for controlling a robotic surgical system
US10503199B1 (en) 2018-07-17 2019-12-10 Verb Surgical Inc. Pedal with sliding and locking mechanisms for surgical robots
US10888383B2 (en) 2018-07-17 2021-01-12 Verb Surgical Inc. Robotic surgical pedal with integrated foot sensor
CN114683273A (zh) * 2020-12-31 2022-07-01 美的集团(上海)有限公司 机器人停机控制方法、装置、机器人及存储介质
TW202321847A (zh) * 2021-11-01 2023-06-01 美商靈巧公司 控制多個機器人協同執行任務的機器人系統

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831582A (en) * 1986-11-07 1989-05-16 Allen-Bradley Company, Inc. Database access machine for factory automation network
US5038089A (en) * 1988-03-23 1991-08-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Synchronized computational architecture for generalized bilateral control of robot arms
US5117544A (en) * 1988-04-19 1992-06-02 Nakamura-Tome Precision Ind. Co., Ltd. Two-spindle opposed type cnc lathe
US5204942A (en) * 1989-01-10 1993-04-20 Kabushiki Kaisha Kobe Seiko Sho Robot control system for controlling a set of industrial robots for cooperative operation
JP2880590B2 (ja) * 1991-07-24 1999-04-12 株式会社不二越 産業用ロボットの同期制御方法
US5629594A (en) * 1992-12-02 1997-05-13 Cybernet Systems Corporation Force feedback system
US6131097A (en) * 1992-12-02 2000-10-10 Immersion Corporation Haptic authoring
US5485644A (en) * 1993-03-18 1996-01-23 Dainippon Screen Mfg. Co., Ltd. Substrate treating apparatus
JPH07303966A (ja) * 1994-05-11 1995-11-21 Fanuc Ltd ロボット制御装置
JP3406080B2 (ja) * 1994-08-24 2003-05-12 ファナック株式会社 溶接ロボットシステムにおける溶接装置の割当使用方法
JPH08300280A (ja) * 1995-05-09 1996-11-19 Fanuc Ltd ロボットの動作制御方式
US5980082A (en) * 1995-07-05 1999-11-09 Fanuc Limited Robot movement control device and movement control method
US5784542A (en) * 1995-09-07 1998-07-21 California Institute Of Technology Decoupled six degree-of-freedom teleoperated robot system
JPH09244730A (ja) * 1996-03-11 1997-09-19 Komatsu Ltd ロボットシステムおよびロボットの制御装置
EP1090722B1 (de) * 1999-09-16 2007-07-25 Fanuc Ltd Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016124492A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten steuerung von zumindest zwei manipulatoren
CN107206593A (zh) * 2015-02-05 2017-09-26 库卡罗伯特有限公司 用于协调地控制至少两个操纵器的操纵器系统
CN107206593B (zh) * 2015-02-05 2021-03-02 库卡罗伯特有限公司 用于协调地控制至少两个操纵器的操纵器系统
DE102016221213A1 (de) * 2016-10-27 2018-05-03 Audi Ag Automatisiertes Instandhaltungssystem
DE102016221213B4 (de) 2016-10-27 2019-07-04 Audi Ag Automatisiertes Instandhaltungssystem

Also Published As

Publication number Publication date
JP3504222B2 (ja) 2004-03-08
EP1186386A3 (de) 2005-08-24
DE60127908D1 (de) 2007-05-31
JP2002073127A (ja) 2002-03-12
US6434448B1 (en) 2002-08-13
US20020029095A1 (en) 2002-03-07
EP1186386B1 (de) 2007-04-18
EP1186386A2 (de) 2002-03-13

Similar Documents

Publication Publication Date Title
DE60127908T2 (de) Robotersteuerung
DE60035651T2 (de) Steuerungssystem zum synchronen kooperativen Betreiben einer Mehrzahl von Robotern
DE102015004932B4 (de) Simulationsvorrichtung für mehrere Roboter
EP0906596B1 (de) Prozessautomatisierungssystem
DE102009057923B4 (de) Simulationsvorrichtung
DE102005015810B4 (de) Bearbeitungszeit-Berechnungsvorrichtung
DE102018205015B4 (de) Einstellvorrichtung und Einstellverfahren
DE3317263A1 (de) Manipulator mit adaptiver geschwindigkeitsgesteuerter bahnbewegung
DE2936913C2 (de) Anordnung zur Steuerung von Eingabe und Ausgabe bei einer programmierbaren Logiksteuerung
DE3236320A1 (de) Vorrichtung zum bewegen eines werkzeugmittelpunktes eines funktionselementes, insbesondere eines roboterarms
DE2712169A1 (de) Verfahren und durchfuehrungsanordnung zur ausfuehrung einer komplexen bewegung durch einen industrieroboter
DE112017000203B4 (de) Numerische Steuerung und numerisches Steuerungsverfahren
WO2002065223A2 (de) Steuerungs- und überwachungsanlage von maschinen und/oder anlagen mit aktionskomponenten unterschiedlicher aktionsgruppen
WO2017050895A1 (de) Robotersteuerung
EP1684136B1 (de) Verfahren zur seriellen Datenübertragung zwischen einem Positionsmesssystem und einer Verarbeitungseinheit
EP2796954B1 (de) Numerische Steuerung mit Benachrichtigung eines CAM-Systems bei Änderung des Teileprogramms
DE10317390A1 (de) Datenübertragungseinrichtung und elektronische Steuereinheit
EP2796952A1 (de) Numerische Steuerung mit Möglichkeit zur Änderung des Teileprogramms
EP1692579B1 (de) Verfahren und vorrichtung zum betreiben zusammenarbeitender, unterschiedlicher geräte
DE112005002185B4 (de) Verfahren zum Betrieb einer Automatisierungseinrichtung bzw. Vorrichtung zur Durchführung des Verfahrens
DE19616855A1 (de) Verfahren zur Datenverarbeitung in einer numerisch gesteuerten antriebsgesteuerten Antriebseinheit
EP3438773A1 (de) Bearbeitung von werkstücken mit modellgestützter fehlerkompensation
EP3658996B1 (de) Verfahren zum betrieb einer numerisch gesteuerten produktionsanlage sowie produktionsanlage dazu
DE60023516T2 (de) Gerät zur Erzeugung von Werkzeugbahndaten für NC-Maschine und mit diesem Gerät ausgerüstete numerische Steuerung
EP1881385A1 (de) System für einen Informationsaustausch zwischen einer Bearbeitungsmaschine und einer Übergabevorrichtung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition