DE2649123A1 - Programmierbare montageanlage (manipulator) - Google Patents

Programmierbare montageanlage (manipulator)

Info

Publication number
DE2649123A1
DE2649123A1 DE19762649123 DE2649123A DE2649123A1 DE 2649123 A1 DE2649123 A1 DE 2649123A1 DE 19762649123 DE19762649123 DE 19762649123 DE 2649123 A DE2649123 A DE 2649123A DE 2649123 A1 DE2649123 A1 DE 2649123A1
Authority
DE
Germany
Prior art keywords
gripper
manipulator
signal
arm
signals
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19762649123
Other languages
English (en)
Other versions
DE2649123C2 (de
Inventor
Maurice J Dunne
Joseph F Engelberger
Horace L Gardner
Torsten H Lindbom
William Perzley
Wilbur N Roberts
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.)
Unimation Inc
Original Assignee
Unimation Inc
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 Unimation Inc filed Critical Unimation Inc
Publication of DE2649123A1 publication Critical patent/DE2649123A1/de
Application granted granted Critical
Publication of DE2649123C2 publication Critical patent/DE2649123C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23PMETAL-WORKING NOT OTHERWISE PROVIDED FOR; COMBINED OPERATIONS; UNIVERSAL MACHINE TOOLS
    • B23P21/00Machines for assembling a multiplicity of different parts to compose units, with or without preceding or subsequent working of such parts, e.g. with programme control
    • B23P21/002Machines for assembling a multiplicity of different parts to compose units, with or without preceding or subsequent working of such parts, e.g. with programme control the units stationary whilst being composed
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J17/00Joints
    • B25J17/02Wrist joints
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16HGEARING
    • F16H9/00Gearings for conveying rotary motion with variable gear ratio, or for reversing rotary motion, by endless flexible members
    • F16H9/02Gearings for conveying rotary motion with variable gear ratio, or for reversing rotary motion, by endless flexible members without members having orbital motion
    • F16H9/04Gearings for conveying rotary motion with variable gear ratio, or for reversing rotary motion, by endless flexible members without members having orbital motion using belts, V-belts, or ropes
    • F16H9/10Gearings for conveying rotary motion with variable gear ratio, or for reversing rotary motion, by endless flexible members without members having orbital motion using belts, V-belts, or ropes engaging a pulley provided with radially-actuatable elements carrying the belt
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/25Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control
    • G05B19/251Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/253Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for continuous-path control the positional error is used to control continuously the servomotor according to its magnitude with speed feedback only
    • 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/34236Multiplex for servos, actuators
    • 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/34239Multiplex for whole system
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35238Gray-code
    • 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/35Nc in input of data, input till input file format
    • G05B2219/35543Cartesian to polar and vice versa
    • 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/39002Move tip of arm on straight line
    • 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/39468Changeable hand, tool, code carrier, detector
    • 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/40307Two, dual arm robot, arm used synchronously, or each separately, asynchronously
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42207Generate points between start and end position, linear interpolation
    • 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/43Speed, acceleration, deceleration control ADC
    • G05B2219/43183Speed control, input is the reference, but no feedback
    • 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/45Nc applications
    • G05B2219/45051Transfer line
    • 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/45Nc applications
    • G05B2219/45083Manipulators, robot
    • 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/49Nc machine tool, till multiple
    • G05B2219/49395Repeating same operations for other coordinates

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control Of Position Or Direction (AREA)
  • Automatic Assembly (AREA)

Description

2602
Unimation, Inc., Bethel, Connecticut (V.St.A.)
Programmierbare Montageanlage (Manipulator)
Die Erfindung bezieht sich auf eine programmierbare Montageanlage (Manipulator), die in der Lage ist, kleine Teile durch programmgesteuerte Bewegungen zweier Manipulatorarme, deren Greifer in einer dazwischenliegenden Arbeitsstation zusammenwirken, zu montieren.
Programmierbare Manipulatoren finden bereits Verwendung in vielen Industriezweigen zum Transport von Teilen von einem Ort zu einem anderen und zur Durchführung bestimmter programmierbarer Arbeiten, wie z.B. Schweißen und Farbspritzen, Solche programmsteuerbaren Manipulatoren gehen aus den USA-Patentschriften 3 306 471, 3 543 947, 3 661 051, 3 744 032, 3 885
— 2—
7098 1 9/07 1
und 3 890 552 sowie der britischen Patentschrift 781 465 hervor. Obgleich diese Manipulatoren im allgemeinen für ihren Zweck geeignet sind, fanden sie bislang nicht generelle Verwendung in Montageanlagen, wo zahlreiche kleine Teile zu größeren Baugruppen vereinigt werden müssen und die Packungsdichte dieser Teile sehr hoch ist. Beispielsweise treten in der Automobilindustrie Arbeitskräfte Schulter an Schulter nebeneinander auf, wo es darum geht, Heizungs- und Lüftungseinheiten, Armaturenbretter, Vergaser, Bremsen, Servosteuerungen, Pumpen, Scheibenwischanlagen und dergleichen zusammenzusetzen.
Ein Grund dafür, warum programmierbare Manipulatoren oder sog. "Industrieroboter" nicht in einer Fließbandfertigung Verwendung fanden, besteht darin, daß es hierfür erforderlich gehalten wurde, eine Art automatisches Auge in Form einer Fernsehkamera oder dergl. vorzusehen in Verbindung mit einer geeigneten Koordination zwischen der Tätigkeit des Manipulators und diesem "Auge" in der Weise, daß das "Auge" die visuell erkannte Szene zu interpretieren und daraus eine geeignete Steuerung für die Aufnahme und Montage der betreffenden Teile herbeizuführen vermag. In den meisten wenn nicht sogar allen dieser Fälle hat man ein solches "Roboterauge" für erforderlich gehalten. Indessen ist die Koordination zwischen "Auge" und Greifer selbst für die Durchführung der einfachsten Montagearbeiten außerordentlich schwierig und kostspielig.
Ein weiterer Grund für die bisherige NichtVerwendung programmierbarer Manipulatoren in Verbindung mit Fließbandarbeiten liegt in der Grundkonzeption der Fließbandproduktion, die darin besteht, Einzelvorgänge auf die einfachste Bewegungsabwicklung zu reduzieren nach der Theorie, daß bei einfachen Arbeitsvorgängen der betreffende Arbeiter rasch angelernt werden kann und eine hohe Fertigkeit erlangt. Dazu kommt, daß besondere Fachkenntnisse nicht erforderlich sind, so daß ein
-3-
700819/0718
Personalwechsel nur geringe Schwierigkeiten bereitet. Dieses Konzept wurde dann auch auf automatische Transferstraßen übertragen, wobei jede Arbeitsstation nur eine bestimmte Aufgabe erfüllt. Nach diesem Prinzip ist en Ersatz der Arbeiter an einem Fließband durch einen teueren programmierbaren Manipulator wirtschaftlich nicht gerechtfertigt. Weiterhin sind in anderen Industriezweigen als z.B. der Automobilindustrie, wo nur geringere Mengen von Montagearbeiten auftreten, spezielle Montagemaschinen nicht wirtschaftlich gerechtfertigt. Schließlich sind die gegenwärtigen programmierbaren Manipulatoren nicht in der Lage, mit der geforderten Geschwindigkeit und Genauigkeit zu positionieren, was häufig erforderlich wäre, um menschliche Arbeitskräfte bei Montagevorgängen zu ersetzen. Beispielsweise erfordert bereits das Zusammensetzen zweier zusammenpassender Teile und deren Verbinden mit Schrauben ein hohes Maß von Koordination und Zusammenarbeit zwischen verschiedenen Greifern, falls diese Arbeit automatisch erfolgen soll.
Ein weiterer Grund, warum gegenwärtig vorhandene programmierbare Manipulatoren nicht für die Montage an Fließbändern oder dergl. Verwendung fanden, besteht darin, daß die Instruktion oder Programmierung eines jeden solchen Manipulators für eine Aufeinanderfolge von komplizierten Aufgaben, von denen viele eine Bewegung in schrägen Richtungen oder Ebenen erfordern, eine mühsame und zeitraubende Arbeit ist, insbesondere wenn es erforderlich ist, die betreffenden Teile mit hoher Genauigkeit zu plazieren. Dies ist besonders dann der Fall, wenn der Manipulatorgreifer mindestens sechs Freiheitsgrade besitzen muß, um alle erforderlichen Arbeiten durchzuführen. In solchen Fällen wird die Koordination der einzelnen Bewegungsvorgänge in verschiedenen Koordinaten eine Instruktions- oder Programmierarbeit, die für ein menschliches Wesen nahezu undurchführbar ist. Ist es beispielsweise erforderlich, daß ein Stift in eine Öffnung eines anderen Teiles
70981 9/0718
eingeführt wird, so ist es für eine Bedienungsperson außerordentlich schwierig, genau die richtige Geschwindigkeit in den einzelnen Koordinaten zu bestimmen, mit welcher die Bewegung zu erfolgen hat, damit letztlich eine geradlinige Bewegung entlang der Achse dieser Öffnung zustandekommt, sofern diese Achse nicht mit einer der natürlichen Bewegungskoordinaten des Manipulatorgreifers übereinstimmt.
Die Aufgabe, den Manipulator zu instruieren bzw. zu programmieren wird weiterhin dadurch erschwert, daß Einrichtungen vorgesehen sein müssen, um der Montagestation große Mengen der zu montierenden Einzelteile zuzuführen, so daß sie von dem Manipulatorgreifer zu geeigneten Zeitpunkten während der Montagevorgänge aufgenommen werden können. Einige kleine Teile können durch Vibrationsschalen oder dergl. in eine bestimmte Aufnahmeposition gebracht werden. Viele Teile jedoch sind auf Grund iher Größe, ihrer Form oder ihres Gewichts nicht gleichermaßen in eine bestimmte Aufnahmeposition zu bringen, sondern müssen der Montagestation auf Paletten zugeführt werden, deren jede eine bestimmte Anzahl dieser Teile naturgemäß an unterschiedlichen Stellen aufnimmt. In diesem Fall muß der Manipulator entsprechend der Position eines jeden dieser Teile instruiert oder programmiert werden, um bei den einzelnen Montagevorgängen die betreffenden Teile jeweils von der betreffenden Stelle auf der Palette aufzunehmen. Durch die Zuführung der Teile auf Paletten oder dergl. wird also die Instruktion bzw. Programmierung des Manipulators zusätzlich erschwert.
Es ist auch wichtig in Situationen, wo kleine Teile mit Hilfe von zwei zusammenwirkenden Manipulatorgreifern zu montieren sind, wie z.B. dort, wo ein Greifer eine Feder in eine Öffnung einsetzen und die Feder niederhalten muß, bis durch den anderen Greifer ein entsprechendes Halteglied eingesetzt ist, die Position des einen Greifers sich nicht verändert,
-5-
70981 9/071 8
-/ft-
während die Bewegung des anderen Greifers programmiert wird. Bei bisherigen Ausführungen kann der Manipulatorarm während der Instruktion in eine bestimmte Position gebracht werden, worauf diese Position als Programmpunkt in einem Speicher aufgezeichnet wird, jedoch sind keine Mittel dafür vorhanden sicherzustellen, daß der Greifer in dieser Position längere Zeit in Ruhe bleibt. So kann der Greifer etwa durch den Einrichter bei der Einstellung irgendeines benachbarten Teiles unbeabsichtigt verstellt werden. Auch wird der den Greifer tragende Manipulatorarm im Laufe der Zeit absinken auf Grund von Leckströmungen in den hydraulischen Steuerventilen, wenn er längere Zeit kernen Antrieb erfährt.
Dementsprechend ist es die Hauptaufgabe der Erfindung, eine programmierbare automatische Montageanlage zu schaffen, in welcher zumindest die wesentlichsten der vorgenannten Mängel vermieden werden. Des weiteren soll damit die Montage kleiner Teile durch programmkoordinierte Bewegung zweier zusammenarbeitender Greifer ermöglicht werden. Weiter soll die Zusammenarbeit der beiden Greifer in einer gemeinsamen, zentral angeordneten Arbeitszone erfolgen, und verbesserte Instruktionsmittel sollen die Programmierung der beiden Greiferbewegungen erleichtern. Ferner soll die Anlage rasch und genau genug arbeiten, um für die Montage kleiner Teile in einer benachbarten Arbeitsstation Verwendung zu finden. Weiter sollen die Instruktion oder Programmierung der Greiferbewegung dadurch erleichtert werden, daß der Greifer in einer bestimmten Richtung und bis zu einem bestimmten Endpunkt automatisch verfahren werden kann. Sodann soll ggf. ein Rechner während der Instruktion oder Programmierung die Punkte entlang einer gewünschten geraden Wegstrecke berechnen und als Programmpunkte in dem Programmspeicher aufzeichnen, die für die Bewegung des Greifers entlang einer beliebigen geraden Wegstrecke erforderlich sind. Auch sollen durch einen Rechner während der Instruktion bzw. Programmierung zusätzliche Aufgaben erfüllt und Berechnungen vor-
709819/0718
genommen werden können, deren Daten in dem Programmspeicher in Verbindung mit den betreffenden Programmpunkten gespeichert werden, um in Verbindung mit dem programmierten Bewegungsablauf anschließend zur Verfügung zu stehen. Des weiteren soll die Anlage in der Lage sein, Teile von vorbestimmten Orten zu entfernen oder an vorbestimmten Orten einer Palette zu plazieren, wobei ein Rechner bei der Instruktion oder Programmierung des Bewegungsablaufes dazu Verwendung findet, aus diesen Orten die dafür erforderlichen Programmschritte zu ermitteln und in dem Programmspeicher automatisch aufzuzeichnen. Die gesamte Anlage soll nur eine minimale Bodenfläche erfordern. Sodann sollen mehrere derartige Anlagen mit je zwei Manipulatorarmen und einer gemeinsamen Montagestation zu einer Art Transferstraße zusammengefaßt, jedoch außer Phase arbeiten können, so daß eine menschliche Arbeitskraft gewisse Aufgaben in den einzelnen Montagestationen von Hand durchführen kann. Des weiteren soll dafür Sorge getragen werden, daß ein jeder Manipulatorarm bzw. -greifer während der Instruktion bzw. Programmierung des jeweils anderen Armes bzw. Greifers in der zuletzt eingestellten Position in Ruhe verbMbt. Dazu sollen während der Instruktion die jeweils angefahrenen Positionen vorübergehend aufgezeichnet und als Vergleichsdaten für die Feststellung einer eventuellen Positionsabweichung vorübergehend aufgezeichnet werden können. Bei Zusammenfassung mehrerer der erwähnten Montageanlagen mit jeweils zwei Manipulatorarmen soll ein gemeinsamer Rechenspeicher dazu Verwendung finden können, Serien von Programmschritten für die einzelnen Arme aufzuzeichnen und diese Programmschritte sollen den Steuerungen der einzelnen Arme bzw. Greifer in einer Weise zugeführt werden können, wie dies für die gleichzeitige Montage einer Gruppe von Teilen seitens der einzelnen Anlagen erforderlich ist.
In einem Ausführungsbeispxel der Erfindung tritt eine Mehrzahl programmierbarer automatischer Montageanlagen auf, deren jede zwei kleine, sehr bewegliche gelenkige Manipulatorarme
—7—
709819/0718
aufweist, die für die Montage kleiner Teile auf einem zentral gelegenen Arbeitstisch zwischen den Manipulatorarmen Verwendung finden können. Alle erforderlichen Teile für den Zusammenbau einer bestimmten Baugruppe liegen an bestimmten Orten in Verbindung mit einer jeden dieser Montageanlagen bereit in einer solchen Position, daß sie von einem der Arme bzw. deren Greifer aufgenommen und montiert werden können.
Weiterhin hat jede einzelne Montageanlage eine Anzahl gegeneinander auswechselbarer Greifer, so daß Greifer verschiedener Arten, wozu auch Schraubenzieher und sonstige Werkzeuge gerechnet werden sollen, wahlweise mit dem einen oder anderen Manipulatorarm verbunden werden können, um mit jeder einzelnen Anlage eine große Vielzahl unterschiedlicher Montagearbeiten durchführen zu können. Auch kann ein jeder Manipulatorarm einer jeden Anlage mit verhältnismäßig hoher Geschwindigkeit und hoher Genauigkeit bewegt werden, so daß die Montage kleiner Teile mit engen Toleranzen mit geringem Zeitaufwand erfolgen kann.
Mit einem solchen System läßt sich eine Vielzahl von Montagevorgängen in jeder einzelnen Montageanlage durchführen, wobei nur eine geringe Bodenfläche erforderlich ist im Vergleich zu herkömmlichen Fließbändern, an denen eine Vielzahl von Personen auftreten, je eine für einen jeden Montagevorgang. Da die Montage gleicher Teile gleichzeitig in mehreren einzelnen Montageanlagen erfolgt, findet keine Produktionsunterbrechung statt, wenn einmal eine der Anlagen ausfällt. Wenn z.B. in einem Montagesystem mit 20 solchen Montageanlagen alle 20 Stunden ein Ausfall eintritt, so kommt es nur zu 1/20 des Verlustes, der im gleichen Fall unter Verwendung eines herkömmlichen Flxeßbandsystemes auftreten würde.
Die Manipulatorarme bzw. -greifer in einer jeden Montageanlage können für jede gewünschte Folge von Programmschritten instruiert werden und die betreffenden Programmschritte können
709819/0718
in einem gemeinsamen Speicher großer Kapazität, wie z.B. einem Magnetplattenspeicher, aufgezeichnet werden. Verlangt die Montage der betreffenden Teile keine sehr genaue Positionierung der Arme bzw. Greifer, so können die eingegebenen Programmschrittfolgen auch dazu Verwendung finden, die Manipulatorarme bzw. -greifer der parallelen anderen Montageanlagen entsprechend zu steuern, so daß in all diesen Anlagen gleichzeitig gleiche Teile zu gleichen Baugruppen montiert werden. Dies kann dadurch geschehen, daß nur Speicherraum für ein oder zwei Programmschritte in Verbindung mit einer jeden Montageanlage vorgesehen wird und die gespeicherten gemeinsamen Programmschritte nacheinander zu einer jeden der einzelnen Montageanlagen übertragen werden, um dort die gewünschte Aufeinanderfolge von Montagevorgängen hervorzurufen. Eine solche Anordnung vermeidet das Erfordernis von Speichermitteln bzw. Speicherraum großer Kapazität für einen jeden einzelnen programmsteuerbaren Manipulatorarm, wie dies bei herkömmlichen Anordnungen der Fall war. Selbst wenn die Montagetoleranzen so gering sind, daß die Manipulatorarme bzw. -greifer in jeder einzelnen Montageanlage für sich programmiert werden müssen, oder irgendwelche Unterschiede zwischen den einzelnen Manipulatorarmen dies erforderlich machen, ist die Verwendung eines einzigen großen Speichers für die Aufzeichnung der erforderlichen Programmschritte aller einzelnen Montageanlagen im allgemeinen wirtschaftlicher als die Bereitstellung separater Speichermittel für einen jeden Manipulatorarm bzw. für jede einzelne Montageanlage.
Sodann kann eine Instruktionshilfseinrichtung vorgesehen sein, bei der/Rechner mit der Steuerelektronik eines jeden Manipulatorarmes verbunden sein und dazu Verwendung finden kann, die aufeinanderfolgenden Positionen zu berechnen, die erforderlich sind, um den betreffenden Arm bzw. Greifer in einer gewünschten Richtung zu bewegen. Die komplexen miteinander verknüpften Bewegungskomponenten in den einzelnen Koordinaten
-9-
7 υ y 8 1 9 / 0 7 1 8
des Manipulatorarmes bzw. -greifers für die Erzielung einer Bewegung in einer gewünschten Richtung erfordern umfangreiche Berechnungen, die selbst für den Rechner zeitraubend sind. Wenn diese Berechnungen jedoch bereits während der Instruktion durchgeführt werden, die gewöhnlich in der Weise vorgenommen wird, daß der Greifer ganz langsam in eine gewünschte Position gebracht und dann alle hierzu berechneten Einzelpositionen als Programmpunkte aufgezeichnet werden, so steht dem Rechner für die betreffenden Berechnungen genügend Zeit zur Verfügung. Sind diese Berechnungen einmal erfolgt und die betreffenden Programmschritte aufgezeichnet, so können sie während des nachfolgenden Betriebes einfach als Steuersignale Verwendung finden ohne daß der Rechner damit weiterhin befaßt werden muß. Dies ist besonders wichtig, weil der Rechner nicht in der Lage wäre, diese komplexen Berechnungen während des Ablaufes der Programmsteuerung im Betrieb durchzuführen und dabei den Manipulatorarm bzw. -greifer mit einer genügend hohen GeschAvindigkeit zu bewegen, wie sie für die Montage insbesondere kleiner Teile bei einer Massenproduktion erforderlich ist.
Gemäß der Erfindung kann der Manipulatorgreifer durch die Instruktxonsperson so programmiert werden, daß er jede gewünschte Strecke in jeder gewünschten Richtung zurücklegt. Dabei vollführt der Rechner alle erforderlichen Berechnungen dafür, daß die Bewegung geradlinig bzw. auf dem kürzesten Weg erfolgen kann, womit etwa die Instruktion für die Einführung eines Teils in ein anderes, der Aufnahme von Teilen von einer Palette und sonstige relativ komplexe Instruktionsvorgänge wesentlich vereinfacht werden. Die von dem Rechner vorzunehmenden Berechnungen können wesentlich vereinfacht werden, indem man die Annahme zugrundelegt, daß die "äußeren" drei Bewegungskoordinaten, in denen die Bewegung des Greifers erfolgt, alle zueinander parallel und geradlinig in der jeweiligen Richtung verlaufen. Diese Annahme bringt nur einen sfor geringen Fehler mit sich, solang die Bewegung zwischen den
-10-
70981 9/0718
einzelnen Programmpunkten klein ist, während jedoch die Rechenzeit hierdurch weitgehend verkürzt wird.
Sodann kann der Rechner während der Instruktion zur Unterstützung der Instruktionsperson Verwendung finden für die Aufzeichnung einer Serie von Programmschritten, wie sie erforderlich sind, wenn der Greifer Teile von einer Palette aufnehmen oder auf eine solche ablegen soll. In diesem Falle braucht die Instruktionsperson den Greifer lediglich zu drei Punkten auf der Palette zu führen, in denen Teile beispielsweise aufzunehmen sind, wie etwa die Teile an drei Ecken der Palette, wobei die Daten entsprechend diesen drei Positionen zusammen mit solchen bezüglich der Anzahl und obs gegenseitigen Abstandes der Teile auf der Palette in den Rechner eingegeben werden. Der Rechner errechnet dann die erforderlichen Positionen des Greifers für die Aufnahme aller übrigen Teile von der Palette und zeichnet diese als Programmschritte in dem Programmspeicher zusammen mit den eingegebenen Positionen auf.
Des weiteren kann eine Hilfseinrichtung dafür vorgesehen sein, den Greifer geradlinig zwischen zwei programmierten Endpunkten zu bewegen. Diese Einrichtung vermindert die Anzahl der Programmschritte erheblich, die aufgezeichnet werden müssen, um eine gewünschte Bewegungsfolge zu erhalten, insbesondere wenn diese Bewegungsfolge gekrümmte Bahnabschnitte und dergl. enthält. Zur Erzielung einer solchen gradlinigen Bewegung wird die in einer jeden Koordinate zurückzulegende Strecke in eine Anzahl gleicher Teile unterteilt und werden in gleichen Abständen künstliche Steuersignale erzeugt, die dazu Verwendung finden, den Manipulatorarm bzw. -greifer mit einer konstanten Geschwindigkeit in einer jeden Koordinate zu bewegen, die proportional der in dieser Koordinate zurückzulegenden Wegstrecke ist. Während der Instruktion kann ein Rechner die Anzahl der Teilstrecken und die Folgegeschwindigkeit der künstlichen Steuersignale errechnen, die für den Erhalt einer bestimmten Geschwindigkeit während des Betriebes erforderlich sind, sowie
-11-
7 η ο R ι ο / ρ 7 ι 8
die Rechenergebnisse in Verbindung mit dem betreffenden Programmschritt in dem Programmspeicher aufzeichnen.
Schließlich können Hilfsmittel es ermöglichen, einen oder mehrere manuell erfolgende Arbeitsschritte zu geeigneten Zeitpunkten in den automatdachen Montageablauf einer jeden programmgesteuerten Montageanlage einzuschalten, so daß eine einzige Arbeitskraft die gleiche Arbeit in allen dieser Montageanlagen nacheinander durchführen kann. Wenn z.B. ein weicher Dichtungsring an einem bestimmten Punkt eines Montagevorganges eingesetzt werden soll, was leichter von Hand geschehen kann als durch einen programmgesteuerten Manipulator, so werden die Montagevorgänge in den einzelnen Montageanlagen so aufeinander abgestellt, daß der Arbeiter die betreffende Arbeit zunächst in der einen Anlage, dann in der nächsten, dann in der übernächsten usw. vollführen kann. Auf diese Weise kann eine einzige menschliche Arbeitskraft mit einer Vielzahl erfindungsgemäßer Montageanlagen zusammenarbeiten, wenn diese gleichseitig gleiche Baugruppen erstellen.
Weitere Einzelheiten und Ausgestaltungsmöglichkeiten der Erfindung gehen aus der nachfolgenden Beschreibung eines in den Figuren dargestellten Ausführungsbeispiels hervor. Von den Figuren zeigt
Fig. 1-3 jeweils eine perspektivische Ansicht einer programmsteuerbaren Montageanlage nach der Erfindung,
Fig. 4 eine diagrammartige Draufsicht auf die Anlage nach Fig. 1, welche die Bewegungen in den einzelnen Koordinaten erkennen läßt,
Fig. 5 eine diagrammartige Seitenansicht der gleichen Anlage von der rechten Seite der Fig. 4,
Fig. 6 eine abgebrochene Frontansicht eines der darin auftretenden Manipulatorarme samt Antrieb, teilweise im Schnitt,
7098 19/07 18
Fig, 7 eine abgebrochene Ansicht ähnlich derjenigen der Fig. 6 von dem Unterbau des betreffenden Manipulatorarmes ,
Fig. 8 eine abgebrochene Draufsicht auf den Unterbau nach Fig. 7,
Fig. 9 einen abgebrochenen Schnitt entlang der Linie 9-9 in Fig. 6,
Fig. 10 eine abgebrochene Rückansicht des Manipulatorarmes etc. nach Fig. 6,
Fig. 11 einen Schnitt durch den "Unterarm" des Manipulatorarmes nach Fig. 6, normal zu der Beugeachse desselben,
Fig. 12 einen Schnitt entlang der Linie 12-12 in Fig. 11,
Fig. 13 eine abgebrochene Draufsicht auf den "Unterarm" nach Fig. 11,
Fig. 14 eine rückseitige Stirnansicht des in Fig. 11 erkennbaren Zahnradgetriebes in etwas größerem Maßstab,
Fig. 15 einen Schnitt entlang der Linie 15-15 in Fig. 14, Fig. 16 einen Schnitt entlang der Linie 16-16 in Fig. 15,
Fig. 17 eine abgebrochene Seitenansicht ähnlich Fig. 11 in etwas größerem Maßstab,
Fig. 18 einen Schnitt entlang der Linie 18-18 in Fig. 17,
Fig. 19 einen Schnitt durch den Greifer des betreffenden Manipulatorarmes,
Fig. 20 einen Schnitt durch eines der Differentialgetriebe aus Fig. 19 in größerem Maßstab,
Fig. 21 ein Schema durch die mechanischen Antriebsmittel des in Fig. 6 dargestellten Manipulatorarmes,
Fig. 22 ein vereinfachtes Blockschaltbild der Elektronik in Verbindung mit einer Bewegungskoordinate des Manipulatorarmes nach Fig. ö, das die erfindungsgemäß bei der Instruktion zur Anwendung kommende Rückkopplung erkennen läßt,
-13-
7098 19/07 18
Fig. 23 ein vereinfachtes Blockschaltbild der rückgekoppelten Instruktionsanordnung nach Fig. 22 für alle auftretenden Bewegungskoordinaten,
Fig. 24 ein Diagramm, welches die in der Anordnung nach Fig. 23 zur Anwendung kommenden Multiplex-Zeitintervalle zeigt,
Fig. 25 ein ins einzelne gehendes Blockschaltbild einer Anordnung für die Durchführung ein^r linearen Interpolation in Verbindung mit pin^r Bew^gungskoordinate,
Fig. 26 ein Diagramm zur Erläuterung erfindungsgemäß zur Anwendung kommender InstruktionshilCsmittel,
Fig. 27 ein perspektivisches Diagramm des Manipulatorarmes nach Fig. 6 mit der Darstellung der sechs Bewegungskoordinaten,
Fig. 28 ein Blockschaltbild, welches zeigt, wie gewünschte Winkelwerte aus Codiererwerton in Verbindung mit der erfindungsgemäßen Anlage erhalten werden,
Hg. 29 ein perspektivisches Schema des Manipulatorarmes nach Fig. 6 zur Erläuterung der Beschreibung der Instruktions hilfsmittel nach der Erfindung,
Fig. 30 ein vereinfachtes Schema ähnlich demjenigen der Fig. 29, das die translatorische Bewegung des Manipulatorgreifers in eine neue Position darstellt,
Fig. 31 - 37 jeweils ein Logik-Blockschaltbild, womit erläutert wird,awllche Weise neue Winkelwerte für drei Bewegungskoordinaten des Manipulatorarmes nach Fig. 6 errechnet werden,
Fig. 32a ein vereinfachtes perspektivisches Schema ähnlich Fig. 29 zur Erläuterung der Beschreibung des Blockschaltbildes nach Fig. 32,
Fig. 33a ein vereinfachtes perspektivisches Schema ähnlich Fig. 29 zur Erläuterung der Beschreibung der Blockschaltbilder nach Fig. 33 - 37,
-14-
709819/0 7 18
Fig. StS ein vereinfachtes perspektivisches Schema ähnlich Fig. 29, welches den Manipulatorarm in einer anderen Position zeigt und zur Erläuterung der Beschreibung des Rechenvorganges dient, mit dem ein neuer Winkelwert für die vierte programmgesteuerte Bewegungskoordinate gewonnen wird,
Fig. 39, 39a, 39b, 39c, 40, 41, 42, 43, 43a und 43b jeweils ein Logik-Blockschaltbild, wäLches erkennen läßt, auf welche V/eise ein neuer Winkelwert für diese vierte Bewegungskoordinate errechnet wird,
Fig. 44 ein vereinfachtes perspektivisches Schema ähnlich Fig. 29, das den Manipulatorarm noch in einer weiteren Position zeigt und zur Erläuterung der Beschreibung d^s Rechenvorganges dient, mit dem ein neuer Winkelw^rt für die fünfte programmgesteuerte Bewegungskoordinatrgewonnen wird,
Fig. 45a, 45b, 45c, 46, 47, 48, 48a, 43b, 49, 49a und 49b jeweils ein Logik-Blockschaltbild, welches angibt, auf welche Weise ein neuer Winkelwert für die fünfte Bewegungskoordinate errechnet wird,
Fig. 50 ein perspektivisches Schema ähnlich Fig. 29, das den Manipulatorarm in noch einer anderen Position zeigt und zur Erläuterung der Beschreibung des Rechenvorganges dient, mit dem ein neuer Winkelwert gewonnen wird, wenn eine Drehung um eine der Koordinatenachsen erfolgt,
Fig. 51 - 58, zusammengesetzt nach Fig. 58a, ein Blockschaltbild der elektronischen Steuerung für den Manipulatorarm nach Fig. 6, das zeigt, wie ein Rechner als Instruktionshilfsmittel Verwendung finden kann,
Fig. 59 ein Blockdiagramm einer Gruppe von vorausgehend beschriebenen Montageanlagen, die von einem gemeinsamen Rechner und einem gemeinsamen Programmspeicher gesteuert werden,
-15-
7098 19/07 18
Fig. 50 ein Diagramm einer der in Fig. 59 auftretenden Schnittstelleneinheiten,
Fgi. 61 ein Blockschaltbild der Steuer- und Speichermittel in Verbindung mit einem der Manipulatorarme des Systems nach Fig. 59 sowie
Fig. 62 und 63 je ein Schema, welches eine bevorzugte Anordnung von zusätzlichen Steuersignalbits für zwei Multiplexintervalle in dem System nach den Figuren 51 - 58 zeigt.
Wie erwähnt kann ein erfindungsgemäßes Montagesystem eine Mehrzahl der in den Figuren 1-21 dargestellten Montageanlagen enthalten, die alle seitens eines gemeinsamen Rechners und Programmspeichers gesteuert werden können.
Jede der perspektivisch in den Figuren 1-3 gezeigten Montageanlagen besitzt zwei programmsteuerbare Manipulatorarme 50 bzw. 52 zu beiden Seiten eines dazwischen angeordneten, drehbaren Arbeitstisches 54. Der Arbeitstisch 54 weist eine vertikalverlaufende Arbeitsplatte 56 auf, auf welcher Teile zum Zusammenbau mit anderen Teilen zu einer Baugruppe positioniert werden können.
Die Manipulatorarme 50 und 52 bzw. die daran befindlichen Greifer können mit hoher Geschwindigkeit bewegt und dabei sehr genau positioniert werden, um den Zusammenbau kleiner Teile mit hoher Präzision vornehmen zu können. Jeder der Manipulatorarme 50 und 52 kann Schwenkbewegungen in sechs Koordinaten vollführen und ist damit in seiner Beweglichkeit und Vielseitigkeit dem menschlichen Arm vergleichbar. Es können damit einzelne Teile, die sich in bestimmten Positionen auf Paletten 58, 60, 62 und 64 befinden, in gewünschter Reihenfolge von dem Greifer aufgenommen, zu der Arbeitsplatte 56 verbracht und dort mit anderen Teilen zusammengesetzt werden. Des weiteren befinden sich im Arbeitsbereich der Manipulatorarme 50 und 52 mehrere
-16-
70981 9/071 8
26A9123
Vibrationsschalen, wie z.B. 66 und 38, die verschiedene kleine Teile, wie etwa Schrauben, Unterlegscheiben und dergl. enthalten können und so angeordnet sind, daß der Manipulatorgreifer eines dieser Teile an einem bestimmten Ort aufzunehmen und zu einem geeigneten Zeitpunkt zu montieren vermag.
Damit eine große Vielfalt von Teilen ergriffen und montiert werden kann, sind die Greifer, wie z.B. 70 und 72, an den Armen 50 und 52 auswechselbar. Während der NichtVerwendung können sie in einem geeigneten Halter 74 abgelegt werden, aus dem sie automatisch aufgenommen und eingesetzt werden können.
Um die Einführung eines Teils in ein anderes mit einer Genauigkeit zu ermöglichen, die größer ist als die Positionsgenauigkeit der Manipulatorarme bzw. Greifer, ist der Arbeitstisch 54 mit einem Vibrator 76 ausgerüstet, der mechanisch an seiner Unterseite angreift. Zusätzlich kann der Arbeitstisch um bestimmte Winkelbeträge gedreht werden, um die Einführung von Teilen auf der Arbeitsplatte 56 seitens der Manipulatorarme zu erleichtern.
Jeder der beiden Manipulatorarme weist, wie hier anhand des Armes 50 im einzelnen dargestellt, eine Plattform 80 auf, die um eine vertikale Achse drehbar ist und von einer Grundplatte 82 getragen wird. Ein Oberarmteil 84 ist um eine horizontale Achse 86 schwenkbar, die von zwei aufrechtstehenden Lagerböcken 88 und 89 auf der Plattform 80 getragen wird. Ein Unterarmteil 90 ist an das obere Ende des Oberarmteiles 84 angelenkt über eine horizontale Achse 92. In dem Unterarmteil 90 ist koaxial ein Handwurzelteil 94 drehbar angeordnet, um eine sog. Unterarmdrehbewegung zu vollführen. Am Außenende des Handwurzelteiles 94 befindet sich ein Sockel 96 zur Aufnahme der Manipulatorgreifer, wie z.B. 70 und 72. Dieses Außenende mit dem Sockel vermag eine sog, Greiferbeugebewegung um eine Achse 98 zu vollführen. Der Sockel selbst ist um eine nicht gezeigte, zu der Achse 98 senkrechte Achse drehbar ("Greiferdrehbewegung").
-17-
709819/0 7 18
Die Bewegung eines jeden der Manipulatorarme 50 und 52 in den erwähnten sechs Koordinaten erfolgt so, daß die betreffenden Greifer eine große Vielfalt von Montageoperationen in b^zug auf die zentral gelegene Arbeitszone durchzuführen vermögen. So liegt der Bereich des drehbaren Arbeitstisches 54, der in Fig. mit dem Kreis 100 bezeichnet ist, etwas vor und in einem gowissen Abstand von den Schwenkachse^ 102 und 104 der beiden Manipulatorarme. Des weiteren kann die Drehung der Arme um diese Achsen jeweils über einen Winkel von 110 erfolgen, wie mit dem Bogen 106 für den Arm 52 in Fig. 4 angedeutet ist. Der Schwenkwinkel in bezug auf die Schulterachse SS (Fig. 5) beträgt 80°, wie der Bogen 108 in Fig. 5 angibt. Der mögliche Schwenkwinkel um die Ellbogenachse 92 beträgt etwa 130 , wie mit dem Bogen 110 in Fig. 5 bezeichnet. Die Bewegung um die Hauptachsen, d.h. die vertikale Achse 102 bzw. 104, die Schulter- und die Ellbogenachse ist auf diese Winkel begrenzt, so daß motorisch angetriebene Präzisionsspindelantriebe mit Kugelumlaufgewinde für den jeweiligen Antrieb Verwendung finden können, die es erlauben, die jeweiligen Stellbewegungen ungeachtet des Gewichts der davon zu bewegenden Teile bei hoher Geschwindigkeit mit hoher Präzision vorzunehmen, wie nachfolgend noch im einzelnen beschrieben wird.
Die Antriebe für die Bewegungen um die drei äußeren Achsen, d.h. die Unterarm^dreh-, die Greiferbeuge- und die Greiferdrehachse, für die keine vergleichbaren Massenkräfte und Trägheitsmomente auftreten, sind allesamt innerhalb des Oberarmteiles 84 untergebracht und über Zahnradgetriebe unter Einschluß von mit der Ellbogenachse 92 koaxialen Kegelrädern mit den betreffenden Teilen verbunden. Um die Greiferbeugeachse kann der Greifer über einen Winkel von etwa 240° geschwenkt werden, wie dies der Bogen 112 in Fig. 4 angibt. Die Drehbewegung des Handwurzelteiles 94 um die Mittelachse des Unterarmteiles 90 kann über einen Winkel von etwa 300° erfolgen, wie mit dem Bogen 114 in Fig. 4 angegeben, und der Greifer
-18-
709819/0 7 18
selbst schließlich kann um die Mittelachse des Sockels 96 kontinuierlich rotieren, wie mit dem Bogen 116 in Fig. 4 bezeichnet. Infolgedessen kann ein jeder der beiden Manipulatorarme so bewegt werden, daß seine Greiferbeugeachse sich z.B. entlang dem Bogen 118 in Fig. 4 um die senkrechte Achse bewegt. Ebenso ist die Greiferbeugeachse entlang dem Bogen 120 in Fig. 5 beweglich, wenn der Unterarmteil 90 um die Ellbogenachse 92 aus der in Fig. 5 ausgezogen gezeichneten Position in die gestrichelt gezeichnete Position schwenkt, und der Oberarmteil 84 ist um die Achse 98 aus der in Fig. 5 ausgezogen gezeichneten Position entsprechend dem Bogen 121 in die gestrichelt gezeichnete Position schwenkbar. Auf diese Weise kann von dem jeweiligen Greifer der gesamte Arbeitsbereich um den Arbeitstisch 54 herum erfaßt werden, wobei die dazu erforderlichen Bewegungen unter hoher Geschwindigkeit und mit hoher Positionsgenauigkeit erfolgen können, um die gewünschten Montagevorgänge in kürzester Zeit zu vollziehen.
Nachfolgend wird nun die Art und Weise betrachtet, in welcher die Bewegung des Manipulatorarmes in den drei Hauptkoordinaten, nämlich der sog. Armschwenkkoordinate, der Oberarmbeugekoordinate und der Unterarmbeugekoordinate, erfolgt. Wie aus den Figuren 6, 11 und 13 ersichtlich, hat der Unterarmteil 90 zw^i nach rückwärts abstehende Ansätze 130 und 132, die einen Gelenkbolzen 134 tragen, und der Oberarmteil 84 trägt zwei seitlich abstehende Ansätze 136 und 138, die einen Gelenkbolzen tragen. An den beiden Bolzen 134 und 140 greift ein motorisch angetriebener Präzisions-Kugelumlaufspindeltrieb 142 an, womit der Unterarmteil 90 um die Ellbogenachse 92 gegenüber dem Oberarmteil 84 schwenkbar ist. Genauer gesagt, ist auf dem Bolzen ein Gehäuse 144 schwenkbar gelagert, das einen Hydraulikmotor 146 trägt. Auf der Welle 148 dieses Motors befindet sich ein Zahnrad 150, das mit einem weiteren Zahnrad, 152, kämmt, welches sich auf einem in dem Gehäuse 144 angeordneten Achsstummel 154 befindet. Das Zahnrad
-19-
7098 19/07 18
152 steht seinerseits mit einem Zahnrad 156 auf dem Wellenende 158 der Antriebsspindel 160 in Eingriff, das mittels zweier Lager 162 und 164 in dem Gehäuse 144 gelagert ist. Vorzugsweise ist das Zahnrad 152 gegenüber den Zahnrädern 150 und 156 seitlich versetzt, um durch seitliche Verlagerung desselben einen toten G~ng ausschalten zu können.
Auf der Spindel 160 befindet sich eine Kugelumlaufmuttcr 166 derart, daß sie mit Drehung der Spindel durch den Motor 146 entlang der Spindel \erstellbar ist. Innerhalb eines äußeren Hülsenteiles 170 des Gehäuses 144 ist eine Hülse 168 verschiebbar gelagert, deren inneres Ende mit einem Flansch 172 der Kugelumlaufmutter 166 in Verbindung steht. Die Kugelumlaufmutter ist in dem Hülsenteil 170 gelagert. An ihrem oberen Ende trägt die Hülse 168 eine Kappe 174, die ihrerseits an dem Bolzen 134 angreift. Das obere Ende der Spindel 160 stützt sich in der Hülse 168 über ein Lager 176 ab, und zwei Flansche 178 und 180 an den beiden Spindelenden bilden einen Anschlag für die beiden Schultern 182 und 184 der Kugelumlaufmutter, um deren Hub entlang der Spindel 160 zu begrenzen. Tritt eine der beiden Schultern 182 und 184 mit einem der Flansche 178 und 180 in Berührung, so kommt der Hydraulikmotor 146 zwangsweise zum Stillstand, wodurch auch die Bewegung des Unterarmteiles 90 um die Ellbogenachse 92 begrenzt ist.
Um den Oberarmteil 84 um die Schulterachse 86 zu verschwenken, ist der Oberarmteil an seinem oberen Ende mit rückwärts und nach oben gerichteten Ansätzen 186 ausgestattet, die einen Gelenkbolzen 188 tragen, während die drehbare Plattform 80 zwei nach oben ragende Ansätze 190 aufweist, die einen Gelenkbolzen 192 aufnehmen. An den beiden Bolzen 188 und 192 greift ein motorisch angetriebener Präzisions-Kugelumlaufspinde!trieb 194 (Fig. 6) mit einer Hülse 196 an, mit deren Längsbewegung der Oberarmteil 84 um die Schulterachse 86
-20-
70981 9/0718
gemäß dem Bogen 108 (Fig. 5) schwenkbar ist. Der Spindeltrieb 194 hat ein Gehäuse 198, das einen Hydraulikmotor 200 aufnimmt, der dem Motor 146 gleicht. Auch in weiterer Hinsicht entspricht der Spindeltrieb 194 dem vorausgehend im einzelnen beschriebenen Spindeltrieb 192. So ist leicht einzusehen, daß bei Betätigung des Motors 200 die Hülse 196 verfahren wird, die ihre Bewegung über den Gelenkbolzen 188 dem Oberarmteil 84 mitteilt.
Was die Schwenkbewegung des Manipulatorarmes um die vertikale Achse 102 bzw. 104 (Fig. 4) betrifft, dient die Grundplatte 82 als Auflage für einen ringförmigen Aufsatz 202, (Fig. 7), der ein oberes und ein unteres Schräglager 204 bzw. 206 enthält. In den Lagern 204 und 206 ist ein innerer Ring 208 gelagert, auf dem mittels Schrauben 210 die drehbare Plattform 80 angebracht ist. Der Ring 208 hat unterseitig ein exzentrisches Auge 212, das einen Gelenkbolzen 214 enthält, während ein weiterer Gelenkbolzen 216, in zwei mit Abstand übereinanderliegenden Augen 218 und 220 an der Grundplatte 82 gelagert ist. An den beiden Bolzen 214 und 216 greift ein motorisch angetriebener Präzisions-Kugelumlaufspindeltriebvan, der einen Hydraulikmotor 224 enthält und auch in anderer Hinsicht den Spindelrrieben 142 und 194 entspricht. Wenn die Hülse 226 dieses Spindeltriebes ausgefahren bzw. eingezogen wird, wird dementsprechend die Plattform 80 um die Achse 228 in Drehung versetzt, wie gesagt, um maximal einen Winkel von 110°, wie dies in den Figuren 4 und 8 dargestellt ist. Um gewartet und erforderlxchenfalls repariert werden zu können, befindet sich der Spindeltrieb 222 unter einer entfernbaren Abdeckung 230 der Grundplatte 82. Durch die Begrenzung der Schwenkbewegung um die Achse 228 auf 110° ist für das in der Nähe arbeitende Personal mehr Sicherheit gegeben, da es außerhalb dieses Bereiches auf keinen Fall von dem Manipulatorarm getroffen werden kann. Indessen kann der Schwenkbereich gegenüber der Grundplatte 82 eingestellt werden,
709819/0 7 18
indem die Plattform 80 lösbar auf den Ring 208 aufgesetzt ist.
Nachfolgend werden nun die Antriebsmittel für die drei "äußeren" Koordinaten, d.h. für die Unterarmdrehkoordinate, die Greiferbeugekoordinate und die Greiferdrehkoordinate, im einzelnen betrachtet. Den Hauptbestandteil derselben bilden drei Hydraulikmotoren, von denen zwei in Fig. 6 erkennbar und mit 232 bzw. 234 bezeichnet sind. Diese Hydraulikmotoren befinden sich alle innerhalb des Oberarmteiles 84. Genauer gesagt sind die Hydraulikmotoren auf einer Platte 236 angeordnet, die unterseitig an einem Innenflansch 240 auf halber Höhe des Oberarmtoiles 84 befestigt ist. Die Anordnung der drei Hydraulikmotoren ist eine solche, daß ihre Achsen die Ellbogenachse 92 an hintereinanderliegenden Punkten schneiden. Die Motoren wurden durch Steuerventile 233 (Fig. 10) gesteuert und erhalten ihr«? Hydraulikflüssigkeit über eine zentrale Durchflußkupplung 235 (Fig. 9), die der Plattform 80 die Drehbewegung ermöglicht, sowie entsprechende Druckleitungs- und Rückleitungskupplungen 237 bzw. 239, die es ermöglichen, daß der Oberarmteil 84 um die Schulterachse 86 schwenken kann unbeschadet der Druckflüssigkeifcsversorgung der erwähnten Hydraulikmotoren. Dabei stehen die drei Hydraulikmotoren mit unterschiedlichen Abschnitten der Kupplungen 237 und 239 in Verbindung.
Um die Bewegungen des Greifers in der Unterarmdrehkoordinate, der Greiferbeugekoordinate und der Greiferdrehkoordinate zu begrenzen^ während die Motoren unmittelbar für die Bewegungen in diesen Koordinaten zuständig sind, steht jeder dieser Motoren, wie z.B. der Motor 234, mit einer flexiblen Kupplungshülse 242 in Verbindung, die wiederum mit einer Schraubspindel 244 (Fig. 10) verbunden ist. Auf der Schraubspindel befindet sich eine Anschlagmutter 246, die durch einen seitlichen Vorsprung 248 (Fig. 9) gegen Drehung gesichert ist. Der Vorsprung 248 ist gegabelt und gleitet entlang dem Rand einer Platte 250 innerhalb des Oberarmteiles 84. Ähnliche Anschlagmuttern 252 und 254 finden Verwendung in Verbindung mit
-22-
709819/0 7 18
den Hydraulikmotoren für die beiden anderen Koordinaten, wobei der seitliche Vorsprung 256 der Mutter 252 an dem anderen Rand der Platte 250 entlanggleitet und der entsprechende Vorsprung 260 der Mutter 254 sich entlang einer auf der Platte 250 in deren Mitte senkrecht stehenden Platte 258 bewegt. Dip zwei Anschlagringe auf jeder Schraubspindel, wie die beiden in Fig. 10 in Verbindung mit der Spindel 244 dargestellten Anschlagringe 262 und 264, dienen dazu, die Anschlagmuttern 246, 252 und 254 abzufangen, um die Drehung der Spindeln und damit die Bewegungen in den betreffenden Koordinaten in der angegebenen Wrise zu begrenzen.
Nachfolgend sei nun die Art und Weise betrachtet, in welcher der Unterarmteil 90 an dem Ob^rarmteil 84 angelenkt ist sowie die mechanische Verbindung der Hydraulikmotoren 232, 234 etc. mit dem davon anzutreibenden Teil. Der Unterarmteil 90 besitzt ein zylindrisches Außengehäuse 270 (Fig. 11), das zwischen zwei mit gegenseitigem Abstand an dem oberen Ende des Oberarmteils 94 angeordneten Augen 272 und 274 (Fig. 12) gelagert ist. Die vordere Wand 276 des Oberarmt^iles 84 ist so ausgenommen, daß sie einen zylindrischen Trog 288 (Fig. G) bildet, der dem G häuse 270 eine Schwenkbewegung umjdie Achse 92 in die in Fig. 11 gestrichelt angedeutete Position 290 ermöglicht. Damit kann der Unterarmteil 90 in eine Lage gebracht werden, in reicher der Greifer unmittelbar an die drehfähige Plattform 80 herantreten kann, wie dies mit dem Abschnitt 292 der in Fig. 5 eingezeichneten Bahnlinie 294 zum Ausdruck kommt, welche die Bahn des äußeren Endes des Greifers bezeichnet. Um dem Gehäuse 270 diese Schwenkbewegung um die Achse 92 zu ermöglichen, ist es in seinem rückwärtigen unteren Bereich 296 (Fig. 11) offen, so daß es nicht mit aus dem Oberarmteil 84 durch eine Öffnung nach oben austretenden Wellen, welche die Fortsetzung der Spindeln 244 bilden, kollidiert.
Das Gehäuse 270 trägt zwei gegenüberliegende seitliche Achsstummel 300 und 302 (Fig. 12), die an ihm mittels Schrauben
-23-
70981 9/0718
304 befestigt und in Lagern 306 und 308 innerhalb der Augen 272 und 274 gelagert sind. Diese Achsstummel 300 und 302 bilden die vorausgehend so benannte Ellbogenachse 92. In nach innen gerichteten Aussparungen 310 und 312 der Achsstummel ist ein davon unabhängig bewegliches Zahnradgetriebe 314 in Verbindung mit den bereits erwähnten Spindeln gelagert. Dieses Getriebe ist in den Figuren 14 - 16 im einzelnen gezeigt. An seinem äußeren Ende trägt jeder der beiden Achsstummel 300 und 302 eine Sicherungsmutter, die von einer das betreffende Auge 272 bzw. 274 außenseitig verschließenden Kappe 318 abgedeckt ist. Die Kappen 318 sind mittels Schrauben 320 befestigt. Auf diese Weise ist das Gehäuse 270 präzise gelagert, um um die Ellbogenachse 92 eine Schwenkbewegung zu vollführen, während das Getriebe 314 davon unbeeinflußt bleibt, so daß die Bewegung für die drei "äußeren" Koordinaten über dieses Getriebe unabhängig von der Schwenkbewegung des Unterarmteiles 90 übertragen werden kann.
Nachfolgend sei nun das Getriebe 314 im einzelnen betrachtet, Es weist eine Achse 322 (Fig. 15) auf, auf deren Enden sich Endringe 324 und 326 befinden, die innerhalb der Aussparungen 310 und 312 der Achsstummel 300 und 302 (Fig. 12) zu liegen kommen. Des weiteren befinden sich auf der Achse 322 drei Kegelräder 328, 330 und 332, die auf beiden Seiten Zähne aufweisen und auf der Achse mittels Lager 334 bzw. 336 bzw. 338 gelagert sind. Ein erstes Gehäuse 340 weist rückwärtig einen nach unten gerichteten Ansatz 342 auf, der mittels eines durch eine Öffnung 346 (Fig. 14) hindurchgeführten Bolzens 344 (Fig. 12) an dem oberen Ende des Oberarmteiles 84 befestigt ist, so daß das Gehäuse 340 gezwungen ist, sich mit dem Oberarmteil 84 zu bewegen. Es dient als Träger für die bereits erwähnten drei Antriebswellen 348, 350 und 352, welche mittels Kupplungen 354 (Fig. 6) an das obere Ende der Spindeln 244 angesetzt sind. Die Wellen 348, 350 und 352 tragen Kegelräder 356, 358 und 360 jeweils in Eingriff mit einem der Kegelräder
-24-
70981 9/0718
323, 330 und 332. Ein zweites Gehäuse 362 ist ebenfalls drehbar in Be^ug auf die Achse 322 angeordnet und hat einen Ansatz 364, der mittels eines Bolzens 366 (Fig. 12) mii dem Gehäuse 270 des ünierarmteiles verbunden ist, so daß das Gehäuse 362 gezwungen ist, sich mit dem Gehäuse 270 um die Ellbogenachse 92 zu bewegen. Es dient als Träger für drei Abtriebswcllen 3S8, 370 und 372, di^ an ihrem inneren Ende mi", je einem der Kegelräder 328, 330 und 332 kämmende Kegelräder tragen. Wird eine der Antriebswellen 348, 350 und 352 in Drehung versetzt, so dreht sich folglich auch die entsprechende Abtriebswelle 368, 370 oder 372 unter Vermittlung eines der Kegelräder 328, 330 und 332, während die Abtriebswellen unabhängig davon gegenüber den Antriebswellen um die Achse 322 geschwenkt werden können wenn das Gehäuse 270 um die Ellbogenachse 92 schwenkt.
Nun sei betrachtet, wie z.B. die Antriebswelle 350 den Handwurzelteil 94 um die Mittelachse des Unterarmteiles 90 zu schwenken vermag, um di<r- sog. Unterarmdrehbewegung hervorzurufen. Die Abtriebswelle 370, die mit der Antriebswelle 350 über das Stirnrad 330 gekuppelt ist, trägt an ihrem äußeren Ende 3in Ritzel 374 (Fig. 17) das mit einem Zahnrad 376 auf einer Welle 378 kämmt, die ihrerseits drehbar in einem Auge 380 dos Gehäuses 270 mittels zweier Lager 382 und 384 gelagert ist. Die W lie 378 ist an ihrem freien Ende mit einem weiteren" Ritzel, 386, ausgestattet, das mit einem Zahnrad am Bnde einer Wolle 390 kämmt, die in einem Glied 392 gelagert ist. Dps Glied 392 ist an dem Gehäuse 270 mittels Schrauben 394 (Fig. 18) befestigt und trägt die Welle 390 in zwei Lagern 396 und 398. D^r Handwurzelteil 94 weist ein zum Teil zylindrisches Gehäuse 400 (Fig. 11) auf, das mittels zweier Lager 402 und 404 drehbar in dem Gehäuse 270 gelagert ist und einen verjüngten Äußenabschnitt 406 besitzt, der in einer Stirnplatte 408 endet. An der Stirnplatte 408 ist ein Getriebe
-25-
70981 9/0718
befestigt, von dem nachfolgend noch di^ Rede sein wird. An dem Gehäuse 270 ist stirnseitig mittels Schrauben 414 ein Endring 412 befestigt, der ein~n das Gehäuse 400 umgebenden Luftkanal 416 (Fig. 11) enthält. Dieser Luftkanal ist beidseitig durch Dichtungsringe 418 und 420 luftdicht verschlossen, so daß bei der Drehung des Gehäuses 400 krine Luft von außen in das Gehäuse 270 einzudringen vermag. Durch "inen Anschluß 422 (Fig. 13) wird in den Ring 412 Druckluft eingeführt, die durch einen Luftkanal 424 in dsm verjüngten Gehäuseabschnitt 4OC zu einem Anschluß 426 auf der Außenseite des Gehäuseabschnittes 406 übertritt. Diese zum Antrieb d?s Greifers dionr-ndo Druckluft wird dem Anschluß 422 über einen Schlauch 428 zugeführt.
Zur Drehung des Handwurzelteiles 94 gegenüber dem Untcrarmteil 90 hat das Gehäuse 400 einen Innenzahnkranz 430 (Fig. und 17) in Eingriff mit dem Zahnrad 388, welches, wir gesagt, von dem Gehäuse 270 getragen wird. Wenn die Welle 370 rotiert dreht sich folglich auch über di^ Zahnräder 374, 376, 386 und 388 sowie den Zahnkranz 430 das Gehäuse 400.
Nachfolgend sei nun betrachtet, wie die beiden weiteren Abtriebswellen 368 und 372 des Getriebes 314 dazu Verwendung finden, die Greiferbeuge- und die Greiferdrehbewegung hervorzurufen. Alle drei Abtriebswellen, 358, 370 und 372, erstrecken sich durch einr Öffnung 432 (Fig. 11) in dem Gehäuse 270, und die Wellen 368 und 372 stehen über Kupplungen 434, Zwischenwellen 436 und weitere Kupplungen, 433, im Inneren des Gehäuses 400 mit zwei Keilwellen 440 bzw. 442 (Fig. 19) in Verbindung, die in der Stirnplatte 408 gelagert sind. Das Getriebe 410 ist auf der Stirnplatte 408 mittrls Schrauben 444 befestigt, so daß es mit dem drehbaren Handwurzelteil 94 eine starre Einheit bildet. Da die beiden V/ellen 440 und 442 gegenüber dor Mittelachse des Handwurzelteiles 94 exzentrisch versetzt sind,
-26-
709819/0 7 18
sind die Kupplungen 438 mit einem dem Profil der Keilwellen 440 und 442 entsprechenden Innenprofil versehen, so daß sie sich gegenüber diesen Keilwellen längsverschieben können, wenn sich ö~r Handwurzolteil 94 in dem Unterarmteil 90 dreht.
Das in Fig. 19 im Schnitt gezeichnete Getriebe 410 ist in Fig. 21 sch~matisch dargestellt. Ein Kegelrad 446 in Verbindung mit der Keilwelle 440 kämmt mit einem Kegelrad 448 am Ende einer querverlaufenden Welle 450. Das andere Ende der Welle 450 trägt ein Zahnrad 452 in Eingriff mit einem seitlich einstellbaren Zahnrad 454 auf einem Wellenstummel 456. Das Zahnrad 454 wiederum kämmt mit einem Zahnrad 458, welches den Eingang eines Planeteng»triebes 460 bildet, das in Lagern 463 drehbar gelagert ist und eine exz'-ntrische Achse 464 aufweist, auf der sich ein Zahnrad 466 in Eingriff mit einem Imrnzahnkranz 468 und ein weiteres, mit dem Zahnrad 468 verbundenes Zahnrad, 470, befinden, das in Eingriff mit einem Innenzahnkranz 472 steht. Der Zahnkranz 472 ist mit einem Abtriebsglied 474 für die Greiferbeugcbewegung verbunden. Das Abtriebsgli^d 474 ist in dm Hauptgnhäuse 476 des Getriebes 410 mittels zweier Lager 478 und 480 drehbar gelagert, so daß es sich um dir Grei^erbeugeachse 98 zu drehen vermag. Wird die Welle 368 in Drehung versetzt, so dreht sich folglich auch das Abtriebsglied 474, womit sich dessen äußerer Abschnitt 482 um den vorderen Rand des G hausfs herum um die Beugeachse 98 dreht.
Die Keilwelle 442 trägt an ihrem Ende ein Ritzel 490 in Eingriff mit einem Zahnrad 492 auf einem Achsstummel 494. Das Zahnrad 492 kämmt mit einem Zahnrad 496 am einen Ende einer Welle 498, dir; drehbar in einer Hülse 500 mittels zweier Lager 502 gelagert ist und an ihrem anderen Ende ein I§gelrad 504 trägt. Das Kegelrad 504 steht in Eingriff mit einem Kegelzahnkranz 503 am einen Ende einer querverlaufenden Hülse 508,
-27-
70981 9/071
•HO.
die auf einer Achse 510 gelagert ist. Die Achse 510 ist ihrerseits mittels Lagern 512 drehbar in dem Gehäuse 476 gelagert und steckt mit ihrem inneren Ende in einor Bohrung 514 des Abtrxebsgliedes 474 für die Greiferbeugebewegung, so daß sie koaxial zu der Beugeachse 98 angeordnet ist und das Antriebsglied 474 sich um diese Achse zu drehen vermag, während die Hülse 508 unabhängig davon drehbar ist.
Ein Kegelzahnkranz 516 am anderen Ende der Hülse 508 steht mit einem Kegelrad 518 in Eingriff, welches den Eingang eines Planetengetriebes 520 bildet, das mittels der Lager 522 drehbar innerhalb des Antriebsgliedes 474 für die Beugebewegung gelagert ist und eine exzentrische Achse 524 enthält, auf der sich sin erstes Zahnrad 526 in Eingriff mit einem Innenzahnkranz 528 befindet, der mit dem Abtriebsglied 474 verbunden ist, sowie ein zweites, mit dem Zahnrad 526 verbundenes Zahnrad 530 in Eingriff mit einem Innenzahnkranz 532, der mit dem einen Ende eines Abtrxebsgliedes 534 für die Greiferdrehbewegung verbunden ist. Das Abtriebsglied 534 ist in dem äußeren Abschnitt 482 des Abtriebsgliedes 474 drehbar gelagert mittels zweier Lager 536 und 538. Es trägt einen Sockel 540, der geeignet ist für die Aufnahme irgend eines entsprechenden Greifers oder dergl. und Kanäle 542 und 544 aufweist, über die Druckluft in eine Ringnut 546 eintreten kann, womit der in dem Sockel 540 steckende Greifer betätigbar ist. Der Kanal steht mit einer äußeren Ringnut 548 des Abtriebsgliedes 534 in Verbindung, die ihrerseits wieder mit einem Kanal 550 in den äußeren Abschnitt 482 des Abtrxebsgliedes 474 kommuniziert in den die Druckluft über eine Leitung 552, eine die Greiferbeugebewegung ermöglichende Kupplung 554 und eine Leitung 556 (Fig. 13) übertreten kann. Die Kupplung 554 ist koaxial zu der Achse 98 seitlich an dem Gehäuse 476 des Getriebes 410 angeordnet.
-28-
703819/0718
-*»- 2643123
Wie bereits erwähnt, besteht eine wesentliche Teilaufgabe der Erfindung darin, einen programmsteuerbaren Manipulatorarm zu schaffen, der sehr vielseitig ist und dessen Greifer mit hoher Geschwindigkeit genau positioniert werden kann, so daß damit Teile mit geringen Toleranzen unter geringem Zeitaufwand montiert werden können. Dieses Ziel wird mit den zuvor beschriebenen Kugelumlaufspindeltrieben für die drei Hauptkoordinaten erreicht, da diese kräftig genug sind, die verhältnismäßig schweren Armteile 34 und 90 mit der erforderlichen Geschwindigkeit und Präzision zu bewegen. Was jedoch die drei "äußeren" Bewegungskoordinaten betrifft, können die darin erforderlichen Bewegungen in der soeben beschriebenen Weise durch unmittelbaren mechanischen Antrieb erzielt werden, wobei es aber wichtig ist, daß jeder tote Gang unterbunden wird. Ein solcher toter Gang darf auch nicht bei Abnutzung der betreffenden Getriebeteile auf-tr ο ton, um einen dauernden Einsatz der Anlage: mit geringsten Ausfallzeiten zu ermöglichen. Besonders wichtig ist eine Unterbindung des toten Ganges innerhalb des verhältnismäßig komplizierten Getriebes 410, da die Greiferfinger genau positioniert werden müssen, um auch kleine Teile montieren zu können. Zu diesem Zweck ist jedes der beiden Planetengetriebe 460 und 520 mit Mitteln zur Vermeidung eines toten Ganges kombiniert. Was das Planetengetriebe 520 anbetrifft, das genau in Fig» 20 dargestellt ist, hat das Gehäuse 560 desselben zwei querverlaufende Bohrungen 562 und 564, die mit Bohrungen 566 bzw. 568 in den Enden der Achse 524 in Verbindung stehen. Diese Bohrungen nehmen Stifte 565 bzw. 567 auf. Die Stifte und 567 sind geeignet, ihrerseits mehrere Stapel von Tellerfedern 570 aufzunehmen, wobei jeder Stapel acht odor neun Tellerfedern enthält und die Tellerfedern aufeinanderfolgender Stapel entgegengesetzt gerichtet sind, wie dies aus der Figur hervorgeht. Die Tellerfedern 570 können über eine Kappe 572 unter Druck gesetzt werden, die durch eine Madenschraube innerhalb einer Gewindebohrung 574 an ihrem Platz gehalten wird, so daß auf die Achse 524 eine seitlich gerichtete Kraft ausgeübt wird. Die Achse 524 ist in Lagern 576 und 578 zwischen
-29-
709819/0718
-as- 2643123
- HL·
Stirnflächen 580 und 582 des Gehäuses b60 gelagert, so daß die gesamte Anordnung aus den Zahnrädern 528 und 530 sowie den Lagern 576 und 578 seitlich un- er der Einwirkung der Tellerfeder η 570 steht. Ist das so ausgebildete Planetengetriebe c?0 in dem Getriebe 410 montiert, wie in Fig. 19 gezeigt, so werden die Zähne der Zahnräder 526 und 530 infolgedessen gewaltsam gegen die Zahnkränze 528 und 532 gedrückt, wodurch jeder tote Gang in dem Planetengetriebe vermieden wird. Vorzugsweise beträgt die seitens der Tellerfedern "i70 hervorgerufene seitliche Kraft etwa l?-9 kg, wobei die Teller federn in. ein:m Bereich arbeiten, in welchem das Verhältnis Kraft/Weg annähernd konstant, bleibt. Nützen sich die in Eingriff stehenden Teile im Laufe der Zeit ab, so ändere sich die Auslenkung der Tellerfcdern dami geringfügig, während die davon ausgeübte Kraft im wesentlichen unverändert bleibt, um aucV- weiterhin einen toten Gang zuverlässig zu eliminieren. Unter Verwendung dieser Anordnung ist es infolgedessen über längere Zeiten nich"G erforderlich, das Getriebe 410 auseinanderzunehmen oder zu ersetzen.
Für d^n verlangten Einsatz in ein*r Monrageanlage muß die Bewegungsgeschwindigkeit und Genauigkeit der Manipulatorarme 50 und 52 beträchtlich größer sein, als dies von herkömmlichen industriellen Robotern gewohnt ist, um ein^ wirtschaftlich-e Arbeitsweise zu ermöglichen. Vorzugsweise sollten die Bewegungsgeschwindigkeit, und Genauigkeit, mit welcher die betreffenden Teile montiert werden, etwa eineinhalbmal so groß sein, wie w?nn d^r gleiche Vorgang durch eine menschliche Arbeitskraft erfolgen würde, um den Einsatz ein-r solchen automatischen Anlage zu rechtfertigen. Dieses Erfordernis verlang nich;: nur eine steifere Tragkonstruktion und einen kräftigeren Antrieb, sondern auch einen Leichtbau, um dem Manipulatorarm die erforderliche Beweglichkeit zu verleihen. Die erforderliche Steifigkeit und Kraft wird durch die beschriebenen hydraulisch angetriebenen Kugelumlaufspindeltriebe und die. Getriebe mit hohem Übersetzungsverhältnis erreicht, die hydraulischen Antriebszylindern weit überlegen sind, wie
-30-
7 0 9 8 19/0718
2643123
sie bisher gewöhnlich für die Bewegung von Manipulatorarmen und -greifern in verschiedenen Koordinaten Verwendung fanden. Während ein Hydraulikzylinder genauer anzusprechen vermag als ein pneumatischer, ist doch auch das Hydraulikflüssigkeitsvolumen in diesem Zylinder und den anschließenden Leitungsabschnitten kompressibel, womit Laständorungen stets zu entsprechenden Positionsänderungen führen. Damit ist ein solcher Antrieb zu weich, um Montageoperationen rasch und mit genügender Genauigkeit durchzuführen.
Die Steifigkeit der zuvor beschriebenen hydraulisch angetriebenen Kugelumlaufspindeltriebe ist einige Größenordnungen größer als diejenige von hydraulischen Flügelmotoren oder Zylindern. Selbstverständlich ist die erforderliche Steifigkeit andererseits abhängig von der Massenträgheit der jeweils anzutreibenden Teile. Für die Greiferbeuge- und -drehbewegung ist infolgedessen weniger Steifigkeit erforderlich, als für die Bewegungen in den drei Hauptkoordinaten. Trägt man die Steifigkeit über der Trägheit auf, so gibt ein? diagonale Linie eine konstante natürliche Frequenz an, und die Greiferbeugebewegung liegt mit den Beugobewogungen der Ober- und Untorarmtcile auf einer konstanten Frequenzlinie wonach die letztgenannten Armteile eine größere Steifigkeit ihres Antriebs verlangen.
Die vorausgehend beschriebene Konstruktion ergibt eine Vergrößerung der natürlichen Frequenz um etwa eine Größenordnung, die zu einer Geschwindigkeitssteigerung um den Faktor 2 für kurze Bewegungen und zu einer fünfmal so großen Präzision führt. Auch sind die Antriebe für die Greiferbewegungen verhältnismäßig klein, so daß die Greifer sowie ihre Programmsteuerung entsprechend ausgelegt werden können, um auch relativ kleine Teile montieren zu können. Die vorausgehend beschriebenen Planetengetriebe ergeben eine Untersetzung von 16:1, was in Verbindung mit der Untersetzung von 2:1 bezüglich der Eingangsgetriebe zu einer Gesamtuntersetzung von 32:1 führt, wie dies für die gewünschte Bewegungsgeschwindigkeit an der Ausgangsseite bei den
-31-
70981 9/0718
. 4ΊΓ-
üblichen Motorgeschwindigkeiten erforderlich ist. Die Massenträgheit der rasch angetriebenen Teile in dem erfindungsgemäßen Manipulatorarm wird dadurch verringert, daß Kugelumlaufspindeltriebe mit einem verhältnismäßig steilen Gewinde verwendet werden. So hat beispielsweise die Gewindespindel 160 in dem Spindeltrieb 142 vorzugsweise eine Steigung von einem Gewindegang pro Zoll (25,4 mm), womit für eine Stellgeschwindigkeit von etwa 3,8 m/min die Trägheit des Antriebs noch nicht übermäßig ist.
Nachfolgend wird nun die Programmsteuerung der vorausgehend beschriebenen Anlage samt den Hilfsmitteln im einzelnen beschrieben, die es erlauben, die Manipulatorarme für die Durchführung einer Serie von aufeinanderfolgenden Montageoperationen zu instruieren. Dazu ist anzumerken, daß die Steuerung eines jeden Manipulatorarmes, wie z.B. des Armes 50, vom gleichen Typ ist wie in der US-PS 3 661 051 im einzelnen beschrieben. Der Inhalt dieser Veröffentlichung wird hier als bekannt vorausgesetzt. Jedoch sei in Zusammenhang mit der vorliegenden Erfindung kurz gesagt, daß für eine jede der sechs Bewegungskoordinaten des Manipulatorarmes 50 ein geeigneter Digitalcodierer vorgesehen ist, der zu jeder Zeit ein Signal entsprechend dem Absolutwert der jeweiligen Position des Armes bzw. Greifers liefert.
Während des Instruktxonsvorganges werden die verschiedenen zuvor beschriebenen Hydraulikmotoren für die Bewegung des Manipulatorarmes bzw. -greifers in den einzelnen Koordinaten, gewöhnlich mit verhältnismäßig geringer Geschwindigkeit, hinreichend lange in Betrieb gesetzt, um den Arm bzw. Greifer in eine gewünschte Position zu bringen. Während diese Bewegung erfolgt, werden die Codierer aller sechs Koordinaten über geeignete Getriebe gleichlaufend angetrieben. Ist die gewünschte Position erreicht, so geben alle diese Codierer somit die betreffenden Positionswerte in den betreffenden Koordinaten an, die in einem geeigneten Speicher aufgezeichnet werden, um während des
-32-
709819/0718
anschließenden Arbeitsbetriebes der Anlage als Steuersignale Verwendung zu finden.
Während dieses Arbeitsbetriebes werden von den gleichen Codierern beständig digitale Positionssignale für eine jede Koordinate geliefert, die mit den gespeicherten Steuersignalen verglichen werden, wobei der betreffende Vergleicher ein Abweichungssignal liefert, das dazu Verwendung findet, den Hydraulikmotor einer jeden Koordinate so zu steuern, daß der Manipulatorarm bzw. -greifer sich in die betreffende Position begibt. Die Codierer für die drei Hauptkoordinaten, in denen die sog. Armschwenkdie Oberarmbeuge- und die Unterarmbeugebewegung erfolgen, werden unmittelbar von den Hydraulikmotoren in den jeweiligen Spindeltrieben angetrieben. So ist, was die Unterarmbeugebewegung betrifft, auf den Hydraulikmotor 146 eine Platte 600 aufgesetzt, auf der ein Digitalcodierer 602 angebracht ist. Auf der Welle desselben befindet sich pin Zahnrad 604 in Eingriff mit einem Zahnrad 606 auf dem oberseitigen Ende der Motorrelle 148, so daß beim Antrieb der Spindel 160 mit der Kugelumlaufmutter der Codierer 602 ein digitales Ausgangssignal liefert, welches der jeweiligen Position der Mutter 144 und damit auch derjenigen der Unterarmteile 90 in Bezug auf den Oberarmteil 84 entspricht. Die Zahnräder 604 und 606 sind dazu vorgesehen, eine geeignete Untersetzung zu bewirken, so daß das Codiererausgangssignal gerade seinen möglichen Gesamtbereich durchläuft, wenn der Untcrarmteil 90 gegenüber dem Oberarmteil 84 seine mögliche Gesamfcbewegung von 130° vollführt.
Zusätzlich kann auf der Platte 600, wie gezeigt, ein von dem Motor 146 über die Zahnräder 606 und 607 angetriebener Tachogenerator 801 angebracht sein. Das Ausgangssignal dieses Tachogenerators kann als Geschwindigkeits-Rückkopplungssignal in einen Servovrirstärker für die Unterarmschwenkbewegung eingegeben wurden. Damit lassen sich Schwingungen und sonstige
-33-
709819/0718
Instabilitäten in der betreffenden Koordinate vermeiden, während jedoch die gewünschte Bewegung mit hoher Geschwindigkeit erfolgen kann, was naturgemäß hohe Beschleunigungen und Verzögerungen mit sich bringt. Entsprechende Stabilisierungsmittel v/erden entsprechend auch für die übrigen Koordinaten vorgesehen sein.
Es versteht sich, daß die Codierer sämtlicher Koordinaten, v/ie z.B. der Codierer 602, gewünschtenfalls aus ein-m Synchroantrieb mit ein^m daran anschließenden Analog-Digital-Umsetzer bestehen können, der das sinusförmige Ausgangssignal des Synchroantriebos in ein entsprechendes Digitalsignal verwandelt.
Ein Codierer 608 in Verbindung mit dem Hydraulikmotor 200 liefert ein digitales Ausgangssignal entsprechend der Bewegung des Oberarmteiles 84 um die Schulcerachse 86. Ein Tachogenerator 609 dient dazu, für diese Bewegung ein Rückkoppelungssignal zu liefern. Ebenso ist ein Codierer 610 (Fig. 8) mit dem Hydraulikmotor 224 verbunden, um ein digitales Positionssignal für die Armschwenkbewegung um die vertikale Achse 228 zu erzeugen. In diesem Falle ist ein Tachogenerator 611 vorgesehen, um das betreffende Rückkoppelungssignal zu liefern.
Zum Erhalt von digitalen Positionssignalen entsprechend den Bewegungen in den drei "äußeren" Koordinaten, d.h. der Unterarmdreh-, der Greiferbeuge- und der Greiferdrehbewegung, sind auf dem Gehäuse 270 des Unterarmteiles 90 die drei Codierer 612, 614 und 616 (Fig. 13) angebracht. Ein jeder derselben steht üb~r eine flexible Kupplung 618 (Fig. 11) mit einor Welle in Verbindung, die in dom Gehäuse 362 (Fig. 15, 16) gelagert ist und ein Kegelrad in Eingriff mit einem der Kegelräder 32S, 330 und 332 trägt. Im einzelnen ist- der Codierer 616 über die flexible· Kupplung 618 mi'; rinr-r Welle 620 (Fig. 15) verbunden, die ein Kegelrad 62? in "ingriff mit dem Kegelrad 330 trägt.
-34-
709819/0 7 18
Wird die Antriebswelle 350 gedreht, um den Handwurzelteil 94 gegenüber dem Gehäuse 270 zu drohen, so treibt das Kegelrad 330 auch die Welle 620 an, womit der Codierer 616 ein digitales Ausgangssignal entsprechend der jeweiligen Position des Handwurzelteiles gegenüber dem Unterarmteil abgibt.
In ähnlicher Weise stehen die Codierer 612 und 614 mit den Kegelrädern 328 und 332 in Verbindung, um digitale Positionssignale entsprechend der Greiferbeuge- und der Greiferdrehbewegung zu liefern. Wie ersichtlich sind die Codierer 612, 614 und 616 an einer Stelle angeordnet, wo sie die Montageoperationen nicht behindern und zudem leicht gewartet v/erden können. Aufgrund der bereits beschriebenen Ausschaltung eines toten Ganges in dem jeweiligen Antrieb liefern die Ausgangssignale dieser Codierer dennoch die genauen Werte der jewoiligen Position.
Tachogeneratoren 613 (Fig. 6) in Verbindung mit den Hydraulikinotoren 232, 234 etc. der betreffenden Koordinaten dienen wiederum dazu, an entsprechende Servoverstärker Geschwindigkeits-Rückkoppelungs-Signale zu liefern.
Nachfolgend s^i nun die Elektronik der Programmsteuerung im einzelnen beschrieben, mit der sich ein jeder der Manipulatorarme 50 und 52 während des Instruktionsvorganges genau positionieren lässt, ohn^ daß sich der andere Arm dabei bewegt. Fig. 22 zeigt zu diespm Zweck eine rückgekoppelte Schaltungsanordnung für eine einzelne der sechs Bewogungskoordinaten, nämlich für die Armschwenkbewegung um die "Hüftachse" 228. Nach dieser Figur besitzt der betreffende Codierer 610 ein-71 Gruppe von Ausgangsleitungen 620, auf denen das digitale
-35-
709 8 19/0718
' Ht*
Positionssignal in Form einer Zahl im Gray-Code erscheint. Diese. Leitungen sind mi": pinem Gray-Codo/Binärcode-Umsetzer 622 verbunden, worin sir· in ein Binärcodesignal vorwandel', worden, das übrr eine Leimung 624 in einen Digitalvergleicher 626 gegeben wird.
V/ährond des Arbeitsbetriebes der Anlage ist der Speicher derselben üb-r ein Viellsitcrkabel 630 und einen Abschnitt 632a eines Betriebswahlschalters 632 mit dem anderen Eingang 634 des Vergleiches 626 verbunden. In dem Vergleicher 626 werden das digitale Positionssignal aus dem Codierer und das digitale Steuersignal aus dem Speieher miteinander verglichen, um daraus ein digitales Abweichungssignal entsprechend der Abweichung zu erhalten, welche die mit dem Codierer 610 gekuppelte Plattform 80 gerade von ihrer durch das betreffende Steuersignal vorgegebenen Position aufweist. Das Abweichungssignal aus dem Vergleicher 626 gelangt über ein Vielleiterkabel 636 zu einem Digital-Analog-Umsetzer 640, worin es in ein Analogsignal von entsprechender Form umgewandelt wird, um den Manipulatorarm ohne Überhub in die vorgegebene Position zu schwenken. Das Analogsignal aus dem Umsetzer 640 wird in einen Prüf- und Haltestromkreis 642 gegeben, um während derjenigen Zeit, die der betreffenden Koordinate zugeteilt ist, seine Größe zu ermitteln und daraus eine proportionale Spannung zu gr-v/innen, die kontinuierlich einem Servo-Leistungsverstärker 644 für die Betätigung des Servoventils 646 für di~ Armschwenkbewegung zugeführt wird, welches seinerseits den Hydraulikmotor 224 steuert. Das erwähnte Geschwindigkeits-Rückkopplungssignal aus dem Tachogenerator 611 kann über den Eingang 643 an den Servoverstärker 644 gelangen, um eine rasche Bewegung ohne Instabilitäten zu ermöglichen.
-36-
709819/0718
Der Vergleicher 626 liefert desweiteren ein Plus-Minus-Signal (Richtungssignal), das über die Leitung 648 einem Richtungsschaltkreis 650 zugeführt wird, worin die erforderliche Richtung festgelegt wird, in der sich der Manipulatorarm zu bewegen hat, um die in dem Vergleicher 626 festgestellte Abweichung zu reduzieren. Das Ausgangssignal dieses Schaltkreises wird zusätzlich dem Servoverstärker 644 zugeführt, damit dieser über das Servoventil 646 den Hydraulikmotor 224 in der korrekten Richtung betätigt.
Alle diese Schaltungskomponenten können im wesentlichen denjenigen entsprechen, die in der US-PS 3 661 051 beschrieben sind. Jedoch wird das digitale Ausgangssignal des Codierers 610 nach Passieren des Umsetzers 622 kontinuierlich in einem Register 652 für die betreffende Koordinate aufgezeichnet, das während eines jeden der Armschwenkkoordinaten zugeteilton Multiplexintervalls auf das Laufende gebracht wird. Ein ähnliches Register ist auch für jede weitere Koordinate vorgesehen, und die Ausgangssignale aller dieser Register werden über UND-Gatter mit offenem Kollektor geleitet, von denen hier nur eines, 654, dargestellt ist. Von dort können sie über den Abschnitt 632a des Betriebswahlschalt-rrs anstelle des Ausgangssignals aus dem Speicher 628 an den zweiten Eingang des Vergleichers 626 gelangen.
Während des Instruktionsbetriebes wird das aus dem Codierer 610 erhaltene Positionssignal als Steuersignal dafür verwendet, den Manipulatorarm bzw. -greifer in der zunächst angefahrenen Position zu halten, während die Instruktionsperson den anderen Manipulatorarm bzw. -greifer in eine gewünschte Position bringt. Genauer gesagt findet während des Instruktionsbetriebes eine gewöhnlich in einem Handgriff untergebrachte Instruktionseingabeeinheit 656, wie sie in der US-PS 3 661 051 im einzelnen beschrieben ist, dazu Verwendung, einen jeden Arm bzw. Greifer nacheinander in die gewünschten Programmpositionen zu bringen.
-37-
709819/0 7 18
Die Instruktionseingabeeinheit 156 enthält zwei Richtungsknöpfe ?58 und 660 für di~ Armschwenkbewegung, die von der Instruktxonspcrson wahlweise gedrückt v/erden können, um den Manipulatorarm um di<~ Achse 228 in einer bestimmton Richtung zu verschwenken. Wem z.B. der Knopf 658 gedrückt wird, der beispielsweise ein Plus-Signal liefern soll, so gelangt dieses Signal über die Leitung 662 zu dem Richtungsschal^kreis 650, wodurch der Servoverstärker 644 in der betreffenden Richtung angesteuert wird.
Zur gleichen Z-1I-; liefert ein Abschnitt 632b des Betriebswahlschalters ein +5V-Spannungssignal über den Knopf 658 zum einen Eingang des UND-Gatters 664, während der andere Eingang desselben während des der Armschwenkkoordinate zugeordneten Multiplex-Zeitintervalles einen Aufsteuerimpuls empfängt.
Das Ausgangssignal des UND-Gatters 664 dient als Taktsignal für das Register 652, wodurch dieses Register in die Lage versetzt wird, das Ausgangssignal des Codierers 610 während d~s sog. G3-Multiplex-In;ervalls für die betreffende Koordinate zu speichern, jedoch nur dann, wenn einer der beiden Richtungsknöpfe. 658 und 660 gedruckt wird. Der der Armschwenkkoordinate zugeordnete Multipleximpuls wird ebenso an das UND-Gatter gegeben, wodurch di-' Aus gangs signale aller sechs Koordinaten über das Vielleiterkabel 666 und den Schal herabschnitt 632a gemeinsam als Steuersignale an den Eingang dos V-rgleiclmrs gelangen.
Während der Schwenkbewegung des Manipulatorarmes im Instruktionsbetrieb, d.h. während z.B. der Richtungsknopf 658 gedrückt wird, gelangt eine Spannung an den Servorverstärker 644, wodurch der Hydraulikmotor 224 in der Plus-Richtung betätigt wird. Sobald jedoch der Knopf 658 freigegeben wird, wird das Register 652 stillgesetzt und hält den zuletzt aufgenommenen Wert aus dem
-38-
70981 9/0718
* SA ·
Codierer 610 fest. Dieser so in d~m Register 652 gespeicherte Wert dient dann als Steuersignal ^ür den Vergl-icher 626. W- nn nun di<- Instruktionsp.°rson d-n Manipula'orarm bzw. -greifer in ein r anderen Koordinate b-wegt oder di'1 Instruktionscingabe-''inhf'it 656 ablog':, um unterdessen don anderen Manipulatorarm, 52, zu instruieren, so liegt noch immer das gleiche Ausgangssignal pus dom Register 652 an dem Vergleicher 626 an. Hinzukommt, daS-di"· weiteren Komponenten dieses Servokreises weiterhin in Funktion bleiben, so daß bei irgend ein ^r Abweichung des Manipulatorarmes 50 aus einer zuletzt eingestellten Stellung diese Bewegung eine Veränderung des Ausgangssignals aus dem Codierer 610 hervorruft, das in dem Vergleicher 626 kontinuierlich mit dem Signal aus d~m Register G52 verglichen wird, wodurch die nachfolgenden Steuerungskomponenten in der zuvor beschriebenen Weise wirksam v/erden, um den Manipulatorarm in die dem Signal aus d^m Register 652 entsprechende Stellung zurückzuführen.
Anhand der Figuren 23 und 24 sei nun dir- Schaltungsanordnung für diese Funktionsweise im Instruktionsbetrieb für alle sechs Koordinaten des Manipulatorarmes 50 weiter erläutert. Wie aus Figur 23 ersichtlich, ist. ein Taktgenerator 670 über einen programmierbaren Binärzähl~r 672, dessen Funktionsweise nachfolgend noch beschrieben wird, mit einer Gruppe von 3-Bit-Zählern 674 verbunden, deren Ausgangssignale an einen Oktal-Decodierer 676 gelangen. Der Decodierer 676 liefert Multipleximpulse an die Ausgangsleitungen Gl bis G8, deren jeder ^ine nominale Dauer von etwa 250 /US besitzt, wie aus Fig. 24 hervorgeh r. Die exakte Dauer eines jeden dieser Multipleximpulse kann durch Verstellen des programmierbaren Zählers 672 verändert worden, wie noch beschrieben wird. Die Ausgangsimpulse der letzten sechs Multiplex-Intervalle sind den sechs Koordinaten des Manipulatorarmes zugeordnet, während die ersten zwei Multiplexintervalle Gl und G2 für zusätzliche Steuerfunktionen Vorwendung finden, wie z.B. einen Fremdsteuerbefehl (OX) oder einen Abwartebefehl (WX) für den programmierbaren Zähler,
-39-
7 0 9 8 Ί 9 / 0 7 1 8
.it.
wiederum in binärcodierter Form. Das Ausgangssignal des 3-Bit-Zählers 674 wird an ein Adressenregister 678 gegeben, das mit dem Speicher 628 in Verbindung steht, so daß ein jeder in dem Speichor 628 eingespeicherte Programmschritt über dieses Adressenregister zugänglich ist. Das Register 678 wird durch einen Adressenzähler 680 gesteuert, der während des Arbeitsbetriebes dazu dient, in der üblichen Weise einen Programmschritt nach dem anderen aus dem Speicher 628 abzurufen.
Für alle sechs Koordinaten einen gemeinsamen Gray-Code/Binärcode-Umsetzer 622 verwenden zu können, liegen die Ausgangsleitungen der Codierer 602 und 608 - 618 an einer Reihe von UND-Gattern 682 und 684 mit offenem Kollektor an. Die anderen Eingänge dieser UND-Gatter erhalten Multipleximpulse von dem Oktal-Decodierer 676 entsprechend der Zuordnung der Multiplexintervalle zu den einzelnen Koordinaten. So erhalten die UND-Gatter 682 und 684 in Verbindung mit dem Codierer 610 Multipleximpulse im Intervall G3, die UND-Gatter in Verbindung mit dem Codierer 608 Multipleximpulse im Intervall G4 und die UND-Gatter in Verbindung mit dem Codierer 614 Multipleximpulse im Intervall G8.
Die Richtungsknöpfe 686 und 688 finden dazu Verwendung, ein Register 690 auf den letzten Stand zu bringen, und die Richtungsknöpfe 692 und 694 dienen dazu, das gleiche bei dem Register 696 zu bewirken, wie dies zuvor in Verbindung mit Fig. 22 beschrieben wurde. Die Ausgangssignale aller drei Register 652, 690 und 696 werden über UND-Gatter mit offenem Kollektor, wie die UND-Gatter 654, an den Schalterabschnitt 632a des Betriebswahlschalters gegeben, von wo sie während des Instruktionsbetriebes, wie zuvor beschrieben, an den Vergleicher 626 gelangen.
Der Vergleicher 626 und der Digital-Analog-Umsetzer 640, der zugleich in der US-PS 3 661 051 beschriebene Funktionserzeugungsschaltkreise enthält, sind für alle sechs Koordinaten
-40-
70981 9/0718
gemeinsam vorgesehen, wodurch sich der Schaltungsaufwand in Verbindung mit einem jeden Manipulatorarm außerordentlich vereinfacht. Das Ausgangssignal des Digital-Analog-Umsetzers mitsamt seinen Funktionserzeugungsschaltkreisen wird an die einzelnen Prüf- und Halteschaltkreise der verschiedenen Koordinaten, wie z.B. den Schaltkreis 642 für die Armschwenkbewegung, gegeben. Der Prüf- und Halteschaltkreis 696 für die Unterarmbeugebewegung sowie der Prüf- und Halteschaltkreis 698 für die Unterarmdrehbewegung sind gleichfalls in Fig. 23 dargestellt. Zu ihnen gehören die Servoverstärker 700 bzw. 702. Es versteht sich, daß der Vergleicher 626 auch ein geeignetes Richtungssignal liefert, das den Richtungsschalkreisen für die einzelnen Koordinaten zugeführt wird, wie zuvor für den Richtungsschaltkreis 650 in Verbindung mit Fig. 22 beschrieben, jedoch sind diese Schaltkreise der Einfachheit halber in Fig. 23 weggelassen.
So sind für alle sechs Bewegungskoordinaten des Manipulatorarmes 50 aktive Servosystemo vorgesehen, um diesen Arm bzw. seinen Greifer während des Instruktionsbetriebes in jede gewünschte Position zu bringen und dort zu halten. Eine Verstellung des Manipulatorarmes bzw. -greifers findet bei dieser Betriebsweise nur dann statt, wenn einer der Richtungsknöpfe der Instruktionseingabeeinheit gedrückt wird. Während der dann erfolgenden Bewegung werden die Bewegungskomponenten in den einzelnen Koordinaten durch die Register 652, 690 und 696 etc. laufend aufgezeichnet, so daß bei Freigabe des betreffenden Richtungsknopfes eine genaue Aufzeichnung der dann erreichten letzten Position vorliegt. Diese Aufzeichnung dient in der beschriebenen Weise dazu, nach Art eines Regelvorganges diese zuletzt eingenommene Position aufrechtzuerhalten. In diesem Zusammenhang ist noch anzumerken, daß nach Anfahren einer jeden gewünschten Position mittels der Richtungsknöpfe ein sog. Aufzeichnungsknopf 704 gedrückt wird, womit die digitalen Positionssignale der Codierer sämtlicher sechs Koordinaten während der
-41-
709819/0718
entsprechenden Multiplex-In!:ervalle G3 bis G8 an den Speicher 628 gegeben werden. D-zu können noch zusätzliche Steuersignale in Verbindung mit dem jeweiligen Programmschritt, die durch entsprechende Schalter eingegeben werden, während dor betreffenden Multiplex-Intervalle Gl und G2 eingespeichert werden.
Während des Arbeitsbetriebes wird der so instruierte Manipulatorarm eine Punktsteuerung erfahren, indem aufeinanderfolgende Programmschritte aus dem Speicher 628 als Steuersignale dem Vergl--icher 626 zugeführt werden, um dort mit den jeweilig-n Positionssignalen aus den Codierern 602 und 608 bis 616 verglichen zu werden. Auf diese Weise wird der Manipulatorarm bzw. -greifer in allf-n sechs Koordinaten so lange bewegt, bis die Abweichungssignale in allen Achsen mit einer gewünschten Genauigkeit verschwunden sind. Eine entsprechende Schaltungsanordnung geht aus der bereits erwähnten US-PS 3 661 051 wie auch weiteren der zuvor genannten Vorveröffentlichungen hervor. Jedoch ist erfindungsgemäß die Steuerung eines jeden der Manipulatorarme und 52 des weiteren mit einer linearen Interpolationseinheit versehen, die es ermöglicht, kurze gerade Wegstrecken mit konstanter Geschwindigkeit zu durchfahren, womit eine kontinuierliche Bahnsteuerung simuliert wird. Mit einer solchen Interpolationseinheit ist man in der Lage, mit guter Annäherung eine beliebige kontinuierliche Bahn zu durchfahren, indem man eine Serie von Endpunkten im Abstand von beispielsweise 12 mm aufzeichnet. Während dos Arbeitsbetriebes gibt ein Hilfssteuersignal an, wann eine kontinuierliche Bahnsteuerung anstelle der normalen Punktsteuerung für den nächsten Programmschritt Verwendung finden soll.
Die lineare Intcrpolationseinheit erfüllt eine Anzahl von Funktionen nacheinander für die einzelnen sechs Koordinaten. Als erstes subtrahiert sie das augenblickliche Positionssignal einer jeden Koordinate von dem betreffenden Steuersignal eines neuen Endpunktes und erzeugt auf diese Y/eise ein digitales Signal
-42-
7 0 9 a 1 9 / ü 7 1 8
entsprechend der in dieser Koordinate vorzunehmenden Veränderung. Dann unterteilt sie die Zeitdauer des Programmschrittes in einer Serie gleicher Zeitintervalle, beispielsweise 32 solcher Zeitintervalle, und dividiert die zuvor erwähnten Positionsveränderung durch din gleiche Zahl. In dem ersten Interpolationsintervall wird das Ergebnis zu der "iusgangsposition hinzuaddiert. Das daraus erhaltene Ergebnis bildet das ^rste von in diesem Beispiel 32 künstlichen Steuersignalen, die von der Interpolationseinheit in Verbindung mit einem einzigen, während des Instruktionsbetriebos eingespeicherten Programmschriet erzeugt werden. In dem zweiten Interpolationsintervall dividiert die Interpolationseinheit die gesamte Positionsv3ränderung nun durch 16, worauf das Resultat wiederum zu dem Ausgangspositionssignal hinzuaddiert wird. Da sich dieser Prozeß in gleichen Zeitintervallen wiederholt, entsteht eine Serie von 32 in gleichem Abstand auftretenden digitalen Zwischensteuersignalen, die zu einer konstanten Geschwindigkeit entlang der durch den betreffenden Programmschritt vorgegebenen Wegstrecke führen. Durch Veränderung der Zeiteinteilung mit Hilfe von Zähler-Frequenzteilern, kann eine große Zahl verschiedener mit der Interpolationseinheit erzielbarer Geschwindigkeiten erreicht werden. Ein für die gewünschte Bahngeschwindigkeit bei Verwendung der Interpolationseinheit maßgebliches Hilfssteuersignal kann zusätzlich während des Instruktionsbetriebes mit dem betreffenden Bogrammschritt aufgezeichnet werden.
In Fig. 25 ist die gemeinsame lineare Interpolationseinheit in Verbindung mit einer einzelnen Koordinate, nämlich wiederum der Armschwenkkcordinate, dargestellt. Sov/eit dabei gleiche Schaltungskomponenten wie in den Figuren 22 und 23 auftreten, sind sie mit den gleichen Bezugszahlen bezeichnet, jedoch ist in Fig. 25 zwischen dem Adressenzähler 680 und dem Speicher 628 noch ein-1-Schritt-Addierer 720 vorgesehen.
Wenn während des Arbeitsbetriebes ein bestimmter Programmschritt oder bestimmte Programmschritte mit der simulierten kontinuierlichen Bahnsteuerung erfolgen sollen, so wird während des
-43-
70981 9/0718
Instruktionsbetriebes, wie gesagt, in dem Speicher 628 gleichzeitig ein Hilfssteuersignal , das sog. VEL-Signal, aufgezeichnet. Dieses VSL-Signal bringt beim Arbeitsbetrieb in Verbindung mit dem betreffenden Programmschritt zum Ausdruck, daß dieser unter Verwendung der linearen Interpolationseinheit nach Fig. erfolgen soll.
Es sei nun angenommen, daß der Programmschritt 10 mit Punktsteuerung erfüllt wurde und daß beim Herauslesen des Programmschrittes 11 aus dem Speicher 628 ein VEL-Signal auftritt. Alle während der Multiplex-Intervalle Gl und G2 auftretenden Hilfssteuersignale werden in einer Anzahl von Pufferregistern 722 gespeichert, so daß auch ein in Verbindung mit dem Programmschritt 11 auftre:endes VEL-Signal am Ausgang 724 des Pufferregisters auf einer zugeordneten Leitung erscheint. Dieses Signal v/ird auf alle in Fig. 25 entsprechend bezeichneten Eingänge gegeben. Zunächst gelangt es an einen Eingang eines UND-Gatters 726 dessen anderer Eingang an dem Ausgang eines 50/US-monostabilen Multivibrators 725 liegt, der mit dem Ausgang des programmierbaren Zählers 672 verbunden ist. Der Multivibrator 725 liefert einen 50/US-Impuls zu Beginn eines jeden Multiplex-Intervalls, unabhängig von der Einstellung des Zählers 672. Infolgedessen wird das UND-Gatter 762 während der ersten 50/US eines jeden Multiplex-Intervalls Gl - G8 aufgesteuert, und das betreffende.Aufsteuersignal gelangt als Taktsignal an ein -1-Schritt-Register 728 sowie als Aufsteuerimpuls an den -1-Schritt-Addierer 720. Während solcher Intervalle, in denen der Addierer 720 aufgesteuert ist, subtrahiert er einen Schritt von dem Ausgangssignal des Adressenzählers 680 und ruft auf diese Weise während der ersten 50/US eines jeden Multiplex-Intervalls wieder den Positionswert entsprechend dem Steuersignal des Programmschrittes 10 hervor. Diese "zurückgerufenen" Steuersignale werden vorübergehend in dem -1-Schritt-Register 728 gespeichert. Infolgedessen werden während jedem Multiplex-Zyklus die Steuersignale aller sechs Koordinaten aus dem Programmschritt 10 nacheinander in dem Register 728 aufgezeichnet. Während des letzten Teiles eines jeden Multiplex-Intervalls wird der -1-Schritt-Addierer stillgesetzt, während
-44-
7 0 9 8 19/0718
das Ausgangssignal aus dom Speicher 628 auf den Leitungen 630 die Steuersignale für den Programmschritt 11 liefert.
Die Speicherausgangssignale gelangen an eine Subtraktionseinheit 730 zusammen mit den Ausgangssignalen aus dem -1-Schritt-Register 728, so daß der absolute Positionswert aus dem vorausgehenden Programmschritt 10 von dem neuen Steuersignal in Verbindung mit dem Programmschritt 11 abgezogen wird. Die Differenz zwischen den beiden Signalen erscheint als Signal an dem Ausgang 732 der Subtraktionseinheit 730. Diese liefert auf diese V/eise nacheinander digitale Signale entsprechend den Weginkrementen, die zwischen den Programmschritten 10 und 11 in einer jeden Koordinate zurückzulegen ist.
Desweiteren liefert die Subtraktionseinheit 730 ein Signal auf der Plus- oder Minus-Leitung 734 bzw. 736, welches für die Richtung der erforderlichen Bewegung in dem jeweiligen Weginkrement maßgeblich ist. Die auf den Leitungen 734 und 736 erscheinenden Richtungssignale gelangen an eine Subtraktionsoder Additionseinheit 738, an die auch das 15-Bit-Ausgangssignal aus dem -I-Schritt-Register 728 entsprechend dem Steuersignal des Programmschrittes 10 gegeben wird. Das Weginkrement bis zur Endposition nach dem Programmschritt 11 wird nun durch einen vorbestimmten Faktor dividiert, und die erhaltenen kleineren Weginkremcnte werden zu dem Steuersignal des Programmschrittes 10 hinzuaddiert, um künstliche Steuersignale zu erhalten, welche dazu dienen, den Manipulatorarm entsprechende Strecken zu bewegen. G nauer gesagt wird der Multiplizierer 740 durch einen programmierbaren Binärzähler 742 gesteuert, derart, daß er während aufeinanderfolgender Zählvorgänge des Binärzählers 742 das am Ausgang 732 der Subtraktionseinheit 730 erscheinende Positionssignal in immer größer werdende Inkremente entsprechend der Zahlenfolge Ibis 32 teilt. In Wirklichkeit multipliziert der Multiplizierer 740 mit einer vorbestimmten Bruchzahl, um die verlangte Division
-45-
70981 9/071 8
in gleiche Zeitintervalle zu erhalten. Der maximale Zählwert des Zählers 742 kann durch zusätzliche Hilfssteuersignale bestimmt v/erden, die als erstes, zweites und drittes Bit während des Instruktionsbetriebes in dem Multiplex-Intervall Gl aufgezeichnet werden. Diese zusätzlichen Steuersignale werden in dem Pufferspeicher 722 gespeichert und über Leitungen 743 dem Zähler 742 zugeführt, so daß di^ Anzahl der Interpolationsintorvalle für einen Programmschritt zwischen 16 und 256 variieren kann, wie nachfolgend·noch genauer beschrieben wird, ^i e Frequenz, mit welcher Impulse an den Zähler 742 geliefert werden, bestimmt die Dauer eines jeden Interpolationsintervalls und damit die Bewegungsgeschwindigkeit des Manipulatorarmes. Dabei kann diese Geschwindigkeit, in einem weiten Bereich sehr genau gesteuert werden. Zu diesem Zweck ist zwischen den Zählern 672 und 742 ein Frequenzteiler 744 vorgesehen und die Anzahl der aktiven Teilerstufen des Frequenzteilers 744 in Abhängigkeit von zusätzlichen Hilfssteuersignalen steuerbar, die während des Instruktionsbetriebes als 7., 8. und 9. Bit in dem Multiplex-Intervall G2 aufgezeichnet werden. Diese zusätzlichen Steuersignale werden in dem Pufferregister 722 gespeichert und über die Leitungen 745 an den Frequenzteiler 744 gegeben, so daß die Folgefrequenz der am Ausgang des Zählers 672 erscheinenden Impulse durch einen Faktor dividiert wird, der zwischen 16 und 256 betragen kann. Diese Variationsmöglichkeit zusammen mit der programmierbaren Verstellbarkeit des Zählers 672 ergibt eine weite Variierbarkeit der Bewegungsgeschwindigkeit zwischen zwei Positionspunkten.
Es sei nun die Arbeitsweise der so weit beschriebenen Interpolationseinheit für die Erzeugung eines künstlichen Steuersignals entsprechend dem ersten Weginkrement für die Bewegung um die Hüftachse 228 zwischen den Programmschritten 10 und 11 betrachtet und dabei angenommen, daß der Zähler 742 für 32 Interpolationsintervalle, zwischen diesen Programmschritten eingestellt ist.
-46-
709819/071 8
Dann liefert der Zählor 742 zunächst eine binäre Kombination, die den Multiplizierer 740 veranlasst, durch den Faktor 32
zu dividieren, so daß das am Ausgang 732 der Subtraktionseinheit 730 erscheinende Weginkrement durch 32 dividiert am Ausgang 748 des Multiplizierers 740 erscheint. Die Subtrakfcionsodor Additionseinheit 733 addiert dieses 1/32-Weginkrement
zwischen dem Programmschritt 10 und dom Programmschritt 11 zu d?m Positionssignal auf den Ausgangsleitunger 750 des -1-Schritt Registers 728, welches der Ausgangsposition dos Programmschrittes 10 entspricht.
Di^ Ausgangsl'itungrn 752 der Subtraktions- oder Additions-Einheit 738 liefern so ein künstliches Steuersignal entsprechend demjenigen des Programmschrittes 10 zuzüglich 1/32 des
Weginkrements zwischen den Programmschritton 10 und 11. Dieses künstliche Steuersignal auf d-?n Leitungen 752 wird an den einen Eingang einer Serie von UND-Gattern 884 gegeben, je eines für fine jode Leitung, dessen anderem Eingang das VEL-Signal zugeführt wird. Dementsprechend tritt während des linearen Interpolationsbetriebes das erwähnte künstliche Steuersignal durch die UND-Gatter 884 hindurch und gelangt an den Vergleicher
626. In diesem wird es mit dem Ausgangssignal des Codierers
610 verglichen. Es versteht sich, daß in Wirklichkeit die Ausgangssignale aller sechs Codierer über geeignete UND-Gatter
mit offenem Kollektor mit dem gemeinsamen Gray-Code/Binärcode-Umsetzer 622 verbunden sind, wie zuvor in Verbindung mit Fig. beschrieben. Auf diese Weise wird am Ausgang des Vergleichers 626 an Abweichungssignal erhalten, welches der Differenz
zwischen dem aus dem Codierer stammenden Positionssignal und
dem auf die zuvor beschriebene Weise erhaltenen künstlichen
Steuersignal entspricht.
-47-
7098 19/0718
Nimmt man einmal an, daß der Manipulatorarm sich in Bewegung setzt, um das Abweichungssignal auf Null zu reduzieren, so liefert der Multiplizierer 740 fortlaufend 1/32-Inkremente so lange, bis der Binärzähler 742 seine nächste Position einnimmt, in welchem Augenblick das Ausgangssignal dieses Zählers ein solches ist, daß der Multiplizierer 740 fortan durch 16 anstatt durch 32 dividiert. Der Übergang von der 1/32-Division zu der 1/16-Division ist also nicht davon abhängig, daß der Manipulatorarm die durch das erste künstlich^ Steuersignal vorgeschriebene Position erreicht hat, das während desjenigen Intervalles aufgetreten ist, während welchem die Division durch den Faktor 32 erfolgt ist.
Dividiert der Multiplizierer 740 durch den Faktor 16, wo wird ein Inkrement entsprechend 1/16 des gesamten Weginkrements zwischen den Programmschritten 10 und 11 an die Subtraktionsoder ^dditionseinh-it 738 gegeben, wodurch nun ein entsprechend größeres künstliches Stauersinjgal an den Vergleicher 626 gelangt. Plat der Manipulatorarm nicht 1/32 des Weginkrements zwischen don Programmschritten 10 und 11 zurückgelegt, bis der Multiplizierer zu der Division durch den Faktor 16 übergeht, so entsteht mit diesem übergang einfach ein entsprechend größeres Abweichungssxgnal, das den Manipulatorarm veranlasst, sich etwas schneller zu bewegen.
Hat der Manipulatorarm andererseits mehr als 1/32 des zwischen den Programmschritten 10 und 11 liegenden Weginkrements zurückgelegt, bis der Multiplizierer 740 zur Division durch den Faktor 16 übergeht, so erhält der Servoverstärker für die betreffende Koordinate ein etwas kleineres Abweichungssignal, wie nachfolgend noch erläutert wird. Auf diese Weise wird der Manipulatorarm durch die in den 32 aufeinanderfolgenden gleichen Zeitintervallen erzeugten künstlichen Steuersignale mit im wesentlichen konstanter Geschwindigkeit angetrieben, wobei diese künstlichen Steuersignale 32 gleichen Weginkrementen zwischen den mit den Programmschritten 10 und 11 vorgeschriebenen Endpositionen entsprechen,
-48-
709819/0718
ΦΑ ·
Erreicht der Binärzähler 742 seinen höchsten Zählwert, so dividiert der Multiplizierer 740 durch den Faktor 1, womit das volle am Ausgang 732 der Subtraktionseinheit 730 auftretende Inkrement-Positionssignal in die Subtraktions- oder Additionseinheit 738 gelangt und folglich das auf den Leitungen 752 erscheinende Steuersignal der für den Programmschritt 11 eingegebenen Position entspricht.
Nachfolgend seien nun die Schaltmittel betrachtet, die für die Armschwenkbewegung in Abhängigkeit von dem zuvor beschriebenen künstlichen Steuersignal aus der gemeinsamen linearen Interpolationseinheit maßgeblich sind. Das Ausgangssignal des Digital-Analog-Umsetzers 640 und der zugehörigen Funktionserzeugungsschaltkreise gelangt an einen Feldeffekttransistor 760, der in Reihe mit einem Kondensator 762 liegt. Der Feldeffekttransistor 760 wird während des Multiplsxiniervalls G3 der betreffenden Koordinate aufgesteuert, jedoch nur während des letzten Abschnitts desselben, während die ersten 50 ,us dieses Multiplexintcrvalls dazu Verwendung finden, den -I-Schritt-Addierer 720 zu betätigen und die dem Programmschritt 10 entsprechende Information in das -l-Schritt-Register 728 einzugeben, wie zuvor beschrieben. Die Leitfähigkeit des Feldeffekttransistors 760 wird durch ein UND-Gatter 764 gesteuert. Ein Eingang dieses UND-Gatters erhält den Multiplex-Impuls des Intervalls G3, während dem anderen Eingang über ein^n Inverter 766 das Ausgangssignal des monostabilen Multivibrators 725 zugeführt wird. Dementsprechend wird während des letzten Abschnitts des Multiplex-Intervalls G3 der Kondensator 762 mit einer Spannung aufgeladen, die dem analogen Abweichungssignal aus dem Digital-Analog-Umsetzer 640 entspricht. Die an dem Kondensator auftretende Spannung liegt über einen Emitterfolgoschaltkrois 768 an einem Operationsverstärker 770 an, der während des linearen Interpolationsbetriebes auch als Inverter dienen kann.
-49-
70981 9/0718
Ein solcher Inverter ist dann erforderlich, wenn das Servoventil für die Bewegung um die Hüftachse 22^ sich zunächst als Folge dos ersten künstlichen Steuersignals etwas zu weit öffnot, so daß beim Übergang zu dem nächsten künstlichen Steuersignal ein negatives Abweichungssignal an dem Vcrgleicher 626 zustande kommt. Dann nämlich soll sich der Manipulatorarm ja noch immer in der gleichen Richtung bewegen, und dazu muß das Servoventil 846 lediglich etwas geschlossen wordr-n, während noch immer das gleiche Eichtungssignal aus der Differenz wischen den beiden Programmschritten 10 und 11 gewonnen wird. Dieses Richtungssignal, welches angibt, in v/elcher Richtung der Manipulatorarm um die Achse 223 schwenken soll, wird von der Subtraktionseinheit 730 aus den Steuersignalen gewonnen, die auf der Leitung 734 bzw. 73S auftreten, und während des gesamten linearen Int-.rpolationszyklus beibehalten. Während also dieses Richtungssignal während des gesamten linearen Interpolationszyklus fortbesteht, kehrt sich die Polarität der Ausgangssignale aus dem Operationsverstärker 770 um, wenn das Abweichungssignal aus dem Vergleichen 62S beim Übergang von ein~m künstlichen Steuersignal zum nächsten aus der Fubtraktions- oder Additionseinheit 738 eine Vorzoich^numkehr erfährt. Einzelheiten der Arbeitsweise des Operationsverstärkers 770, der diese Vorzeichenumkehr bewirkt, werden später noch beschrieben.
Das Ausgangssignal des Operationsverstärkers 770 gelangt an einen Operationsverstärker 772, der als PI-Regler Verwendung findet und eine Inte^gr^ation des an dem Kondensator 762 abgegriffenen Abweichungssignals durchführt. Diese Proportionalintegral-Funktion erfolgt während des linearen Interpolationsbetriebes. Y/ährend des Punktsteuerbetriebes jedoch, wenn kein VELSignal auftritt, gelangt das Ausgangssignal eines invertierenden Verstärkers 774 an einen Feldeffekttransistor 776, der einem Rückkoppelungskondensator 778 des PI-Reglers 772 parallelgeschaltet ist, so daß dieser Kondensator während des Punkt-
-50-
709819/0 7 18
Steuerbetriebes kurzgeschlossen ist und keine Integration des Abweichungssignals erfolgt.
Das Ausgangssignal des Verstärkers 772 wird an die Basis zweier Leistungstransistoren 780 und 782 gegeben, welche die betreffenden Wicklungen 784 und 786 des Servoventils 646 steuern, das für die Bewegung des Manipulatorarmes um die Achse 228 zuständig ist. Dieses Abweichungssignal gelangt an die Sasis beider Transistoren, 780 und 782. Jedoch wird jeweils nur einer d^rselb^n wirksam, um die Wicklung 734 bzv/. 786 zu speisen, je nachdem welcher der beiden Schalttransistoren 788 und 790 leitend wird, die in Serie mit dem Transistor 780 bzw. 782 liegen.
Um während des linearen Interpolationsbetriebes die Transistoren 788 und 790 abwechselnd leitend zu machen, werden die Richtungssignale aus der Subtraktionseinheit 730 UND-Gattern 792 und 794 zugeführt, deren anderer Eingang die während des Intervalls G3 auftretenden Multiplex-Impulse empfängt. Die Ausgangssignale dieser UND-Gatter 792 und 794 werden dom einen Eingang eines UND-Gatters 796 bzv/. 798 zugeführt, die des^ weiteren von dem während des linearen Interpolationsbetriebes auftretenden VEL-Signal gesteuert werden. Dementsprechend fließt während des linearen Interpolationsbetriebes das Plus-Richtungssignal über ein ODER-Gatter 800 und das Minus-Richtungssignal über ein ODER-Gatter 802. Die Ausgangssignale dieser ODER-Gatter werden einem UND-Gatter 804 bzw. 806 zugeführt, dessen anderer Eingang während des letzten Abschnitts des G3-Multiplex-Intervalls ein Aufsteuersignal empfängt. Dieses wird von einem UND-Gatter 808 erhalten, dem die während des Intervalls G3 auftretenden Multiplex-Impulse in Verbindung mit dem Ausgangssignal des Inverters 766 zugeführt werden. Dementsprechend wird ein Flip-Flop 810 bei Auftreten eines Signals auf der Ausgangsleitung 734 der Subtraktionseinheit 730 in Plusrichtung und bei Auftreten eines Signals auf der Leitung 736 in Minusrichtung gesetzt. Die
-51-
70981 9/0718
-ar- 2B4S123
Ausgangssignale des Flip-Flops 810 werden über ein ODER-Gatter 812 bzw. 814 der Basis der Transistoren 783 und 790 zugeführt, um das Servoventil 648 entweder in Plus- oder Minusrichtung anzusteuern, je nach dem Zustand der Subtraktionseinheit 730.
Nachfolgend sei nun die Arbeitsweise des Richtungsschaltkreises während des Punktbetriebes betrachtet. Bei dieser Betriebsart sollen die Richtungssignale aus dem Vergleicher 626 die Drehrichtung um dio Achse 228 anstatt die Subtraktionseinheit 730 steuern. Zu diesem Zweck stehen die Plus- und Minusleitungen des V~rgleichers 626 mit einem UND-Gatter 816 bzw. 818 in Verbindung. Dem anderen Eingang dieser UND-Gatter werden die während des G3-Intervalls auftretenden Multiplex-Impulse zugeführt, so daß diese während des der Armschwenkkoordinate zugeordneten Multiplex-Intcrvalls ein Ausgangssignal liefern. Die Ausgangssignale der UND-Gatter 816 und 818 gelangen an ein UND-Gatter 820 bzw. 822. Das VEL-Signal wird über einen Inverter 824 an den anderen Eingang dieser UND-Gatter gegeben. Dementsprechend sind diese UND-Gatter während des Punktbetriebes, wobei kein VEL-Signal auftritt, aufgesteuert, so daß die dem Vergleiche 626 entstammenden Plus- und Minussignale durch das ODER-Gatter 800 bzw. 802 zu dem Flip-Flop 810 gelangen und damit jeweils einer der Transistoren 788 und 790 leitend wird, um die Bewegungsrichtung in der Armschwenkkoordinate zu bestimmen. Während des Punktbetriebes wird desweiteren das an dem Kondensator 762 abgegriffene analoge Abweichungssignal für die Armschwenkkoordinate in dem Operationsverstärker 772 proportional verstärkt, da der Kondensator 778 durch den dann leitenden Feldeffekttransistor 776 kurzgeschlossen ist. Die Leitfähigkeit des Feldeffekttransistors 776 beruht darauf, daß an dem Inverter 774 kein VEL-Signal auftritt. Das verstärkte Abweichungssignal gelangt an die Basis der Transistoren 780 und 782,
-52-
709819/0718
und der leitende der beiden Transistoren 788 und 790 steuert damit den Stromdurchgang durch die Wicklung 784 bzw. 786 proportional dem Abweichungssignal. Infolgedessen findet eini Bewegung in der Armschwenkkoordinate statt so lange bis der dafür zuständige Codierer 610 ein dem Steuersignal aus dem Speicher 628 entsprechendes Positionssignal liefert.
Nun sei betrachtet, wie der Inverter 770 während des linearen Interpolationsbetrxebes arbeitet, um die Polarität des an dem Kondensator 762 abgegriffenen analogen Abweichungssignales umzukehren. Es sei daran erinnert, daß während des linearen Interpolationsbetriebes das Steuerventil 646 für die Armschwenkbewegung einmal etwas zu weit geöffnet sein mag. Ist dies der Fall, so liefert der Vergleicher 626 weiterhin ein Abweichungssignal, während jedoch anstelle eines Plussignals nun ein Minussignal auftritt. Da die betreffenden Signale jedoch bei dieser Betriebsart nicht unmittelbar di^ Ansteuerrichtung des Servoventils bestimmen, läcfc das negative Abweichungssignal aus dem Digital-Analog-Umsetzer 640 den Kondensator 762 im gleichen Sinn wie vorher auf, da sich die Polarität dieses Abweichungssignals aus dem Digital-Analog-Umsetzer nicht mit den Richtungssignalen ändert. Dies liefe darauf hinaus, daß das Servoventil 646 nun noch weiter geöffnet wird, wohingegen doch die bereits erreichte Position ein Schließen des Ventils verlangt, um eine kontinuierliche Bewegung des Manipulatorarmes herbeizuführen.
Unter diesen Umständen wird nun der Inverter 770 wirksam, um das Abweichungssignal aus dem Kondensator 762 umzupolen, so daß das Servoventil 646 teilweise geschlossen wird. Genauer gesagt werden die Plus- und Minus-Richtungssignale aus dem
Vergleicher 626 in Abhängigkeit von den Plus- und Minussignalen aus der Subtraktionseinheit 730 dazu verwendet, aus dem normalerweise invertierenden Verstärker 770 einen nichtinvertierenden Verstärker zu machen, womit die Umkehrung der Polarität des
-53-
70981 9/0718
analogen Abweichungssignals erhalten wird. Zu diesem Zweck ist ein Exklusiv-ODER-Gatter 830 vorgesehen, dessen einer Eingang das Plusrichtungssignal aus dem Vergleicher 626 empfängt, während seinem anderen Eingang das Ausgangssignal des ODER-Gattors S12 zugeführt wird, das einem Signal auf der Plusleitung 734 der Subtraktionseinheit 730 entsprichb. Während solcher Perioden, v/o die Polarität des Richtungssignals aus dein Vergleichor die gleiche ist wie diejenige des Richtungssignals aus der Subtraktionseinheit 730, wird kein Ausgangssignal an dem QDER-Gatter 830 erhalten. In diesem Fall liefert ein auf das ODER-Gatter 830 folgender Inverter ein Eingangssignal an ein UND-Gatter 834, dessen anderem Eingang während des letzten Abschnitts des G3 Multiplex-Intervalls ein Aufsteuersignal zugeführt wird. Dieses entstammt einem UND-Gatter 83S, dessen Eingängen der während des G3-Intervalls auftretende Multiplex-Impuls und das Ausgangssignal des Inverters 766 zugeführt werden. Wenn die Polarität des an dem Vergleicher 726 auftretenden Richtungssignals gleich derjenigen des Richtungssignals aus der Subtraktionseinheit 730 ist, wird daher ein Flip-Flop 838 rückgestellt. Der Setzausgang dieses Flip-Flops ist mit dem einen Eingang eines UND-Gatters 840 verbunden, dessen anderer Eingang das VEL-Signal erhält. Der Ausgang des UND-Gatters 840 steht mit der Basis eines Feldeffekttransistors 842 in Verbindung, der nichtleitend ist bis an dem UND-Gatter 840 ein Ausgangssignal auftritt. Dementsprechend liegt der nichtinvertierende Eingang des Verstärkers 770 während der Zeit, in welcher das Richtungssignal aus dem Vergleicher gleich demjenigen aus der Subtraktionseinheit ist, über den Feldeffekttransistor 842 nicha an Masse, so daß der Verstärker 770 als nichtinvertierender Verstärker arbeitet. Wenn jedoch das Richtungssignal aus dem Vergleicher sich gegenüber demjenigen aus der Subtraktionseinheit umkehrt, beispielsweise indem nun ein Minusrichtungssignal an dem Vergleicher auftritt, während die Subtraktionseinheit 730 ein Plusrichtungssignal
-54-
70981 9/0718
liefert, so wird an dem ODER-Gattor 830 ein Ausgangssignal erhalten, das über ein UND-Gatter 848 das Flip-Flop 838 setzt. In diesem Fall entsteht an dem UND-Gatter 840 ein Ausgangssignal, das den Feldeffekttransistor 842 leitend macht und den nichtinvertierenden Eingang des Verstärkers 770 an Masse legt, so daß dieser Vorstärker fortan als Inverter arbeitet und das analoge AbweichungssignaT von dem Kondensator 762 umkehrt. Dieser Zustand dauert so lange an, bis sich die Armschwenkbewegung so wnit verzögert hat, daß das Richtungssignal aus dem Vergleicher 626 wiederum mit demjenigen aus der Subtraktionseinheit 730 übereinstimmt. Dann tritt kein Ausgangssignal mehr an dem Ausgang des Exklusiv-ODER-Gatters 830 auf, und das Flip-Flop 838 wird rückgestellt, womi ; auch der Verstärker 770 wieder zu einem nichtinvertierenden Verstärker wird.
Im Punktbetric>b liegt kein VEL-Signal an dem UND-Gatter 840 an, und infolgedessen behält der Verstärker 770 in jedem Fall seinen nichtinvertierenden Zustand. Auch ist der Kondensator 778, wie oben beschrieben, durch den Feldeffekttransistor 776 kurzgeschlossen, weshalb der Verstärker 770 bei dieser Betriebsart nur als Proportionalverstärker arbeitet.
Nachfolgend sei nun die Arbeitsweise der linearen Interpolationseinheit nach Ablauf aller 32 Bewegungsinkremente zwischen den Programmschritten 10 und 11 betrachtet. In diesem Fall muß der Adressenzähler 680 angesteuert werden, um aus dem Speicher 628 den nächsten Programmschritt, d.h. den Programmschritt 12 abzurufen und damit ein neues Steuersignal zu erhalten. Es erfolgt jedoch dieser Abruf des nächsten Programmschritts nicht in Abhängigkeit von vollkommener Koinzidenz bezüglich aller sechs Bewegungskoordinaten, sondern stattdessen durch Erreichen des höchsten Zählwertes in dem Binärzähler 742, wodurch angezeigt wird, daß alle 32 künstlichen Steuersignale aus der Subtraktionsoder Additionseinheit 738 erhalten wurden. Dies geschieht derart,
-55-
7098 19/0718
daß beim Rückstellen des Binärzählers 742 auf Null auf dessen Ausgangsleitung 850 ein Signal erhalten wird, das an den einen Eingang eines UND-Gatters 852 gelangt, während an dem anderen Eingang desselben das VEL-Signal anliegt. Damit tritt am Ausgang des UND-Gatters 852 ein Ausgangssignal auf, das über ein ODER-Gatter 854 an den Adressenzähler 680 gelangt, womit dieser zum nächsten Programmschritt, d.h. dem erwähnten Programmschritt 12, übergeht. Dieser Übergang erfolgt jedoch nicht, ehe nicht auch ein Schrittwechselxmpuls WTR an den Adressenzähler 680 gelangt, wie nachfolgend noch im einzelnen beschrieben wird. In diesem Zusammenhang sei noch erwähnt, daß die Gesamtzeit für die Bewegung in allen sechs Koordinaten während des linearen Ini-.crpolationsbetriebes von der Dauer bestimmt wird, die erforderlich ist, den Binärzähler 742 zu füllen, was Mieder von dem Teilungsverhältnis des Frequenzteilers 744 abhängt. Wie bereits erwähnt, ist das Eingangssignal des Frequenzteilers 744 eine Folge von Impulsen, die je einmal mit Ablauf eines jeden Multiplex-Zyklus auftreten. Die Dauer des Multiplex-Zyklus kann durch zusätzliche Steuersignale variiert werden, die während des Instruktionsbetriebes als Bi es 1 bis 6 in dem G2-Intervall aufgezeichnet werden. Diese zusätzlichen Steuersignale werden im Arbeitsbetrieb in den Pufferregistern 722 gespeichert und über die sechs Leitungen 673 dem Zähler 672 zugeführt, so daß die Dauer eines Multiplex-Intervalls zwischen 195,2,us und 390,4/US verändert werden kann. Ein kompletter Multiplex-Zyklus, der, wie gesagt, acht Multiplex-Intervalle enthält, kann somit zwischen 1,5 ms und 3,0 ms betragen. Nimmt man eine üTominalzeit von 244 ,us an, d.h. daß der Frequenzteiler 744 durch den Faktor 128 dividiert, so wird der Binärzähler 742 mit einer Frequenz von l/32s~ weitergeschaltet, womit für jedes Weginkrement l/32s zur Verfügung steht. Da durch den Multiplizierer 740 während eines linearen Interpolationszyklus im betrachteten Beispiel 32 künstliche Steuersignale geschaffen werden, steht in diesem Falle eine Sekunde für die Gesamtbewegung zwischen den Programmschritten 10 und 11 in allen sechs Koordinaten
-56-
709819/0718
zur Verfügung. Jedoch erfolgen die Bewegungen in all diesen Koordinaten gleichzeitig und kontinuierlich, da das als Spannung in dem betreffenden Kondensator, wio z.B. 762, gespeicherte Abweichungssignal einer jeden Koordinate kontinuierlich auftritt. Während des letzten Abschnitts eines jeden Multiplex-Intervalls vergleicht der Vergleicher 626 das Ausgangssignal der Subtraktions- oder Additionseinheit 738 mit dem Positionssignal aus dem Codierer, und steuert den F~ldeffekttransistor 760 entsprechend an, daß der Kondensator 762 das neue Abv/eichungssignal aufnimmt. Damit wird das Abweichungssignal einer jeden Koordinate alle zwei ms auf das Laufende gebracht. Während eine Sekunde ausreicht, um den Manipulatorarm eine beträchtliche Strecke zurücklegen zu lassen, sind die Programmschritte, in denen eine lineare Interpolation Anwendung findet, gewöhnlich verhältnismäßig kurz, und die dazwischenliegende Bahn wird als eine Anzahl kleiner geradliniger Inkremente interpretiert.
Während des Punktbetriebes kann der Abruf des nächsten Programmschrittes mit dem Eintritt vollkommener Koinzidenz zwischen den Positionssignalen aus den Codierern und den Steuersignalen aus dem Speicher 628 für alle sechs Koordinaten erfolgen. Zu diesem Zweck werden die Plus- und Minusausgangssignale aus dem UND-Gatter 820 bzw. 822 über einen Inverter 860 bzw. 862 zwei Eingängen eines UND-Gatters 864 mit drei Eingängen zugeführt. Der dritte Eingang des UND-Gatters 864 erhält das Ausgangssignal des UND-Gatfers 808, welches aus einem Aufsteuerimpuls während des letzten Abschnitts des G3 Multiplex-Intervalls besteht. Die Plus- und Minusrichtungssignale aus dem Vergleicher 626 sind nur dann Null, wenn Koinzidenz zwischen dem Steuersignal und dem Positionssignal der betreffenden Koordinate besteht. Infolgedessen werden während dos Punktbetriebes von den beiden Invertern 860 und 862 Aufsteuersignale nur dann erzeugt und dem UND-Gatter 864 zugeleitet, v/enn die vorgeschriebene Bewegung in der Armschwenkkoordinate vollendet ist. Ist dies der Fall, so sotzt
-57-
7098 19/0718
das UND-Gatter 854 ein Flip-Flop 866, und dieses bringt an seinem Setzausgang 368 ein Signal hervor, welches angibt, daß in der Armschwenkkoordinatr Koinzidenz vorliegt. Dieses Signal wird einem UND-Gatter 370 zugeleitet, das ebenso Signale entsprechend dem Signal vom Ausgang 368 des Flip-Flops 866 für alle anderen Koordinaten empfängt. Dazu können noch OX- und WX-Signale treten, sofern externe Funktionen vorgesehen sind, wip vorausgehend beschrieben. Treten alle diese Signale an dem UND-Gatter 870 auf, so entsteht an diesem ein Ausgangssignal ("vollkommenes Koinzidenzsignal" TC), das über die Leitung an den einen Eingang eines UND-Gatters 874 gelangt. Der andere Eingang des UND-Gatters 874 wird über einen Inverter 876 mit dem VEL-Signal gespeist, so daß dann und nur dann, wenn der Punktbetrieb Anwendung findet, das TC-Signal an das ODER-Gatter 854 gelangt, um den Adressenzähler 680 zu beaufschlagen und auf diese Weise den nächsten Programmschritt abzurufen.
Während des Punktbetriebes tritt, wi° gesagt, kein "SL-Pignal auf, so daß der -l-Schritt-Addierer 720 und das -1-Schritt-Register 728 inaktiv bleiben. Unter diesen Umständen werden die Steuersignale sämtlicher sechs Koordinaten von den Ausgangsleitungen 630 des Speichers 628 einer Serie von UND-Gattern 880 ■ zugeführt, deren anderer Eingang mit dem Ausgang eines Inverters 882 verbunden ist, der das VEL-Signal empfängt. Infolgedessen werden beim Ausbleiben des VEL-Signals die UND-Gatter 880 aufgesteuert, womit di? Steuersignale aus dem Speicher durch die ODER-Gatter 882 hindurch und zu dem Vergleicher 626 gelangen können. Da während des Punktbetriebes kein VEL-Signal auftritt, werden die UND-Gatter 884 nicht aufgesteuert, so daß bei dieser Betriebsart kein Ausgangssignal von der Subtrakbions- oder Additionseinheit 738 an den Vergleicher 626 gelangt. Dies hat zur Folge, daß die Positionssignale aus den Codierern mit den Steuersignalen aus dem Speicher 628 verglichen und die daraus resultierenden Abweichungssignale dazu verwendet werden, den Manipulatorarm bzw. -greifer in allen sechs Koordinaten zu steuern,
-58-
0 9 8 19/0718
wie vorausgehend und vor allem in der US-PS 3 661 051 im Detail beschrieben.
Während des Instruktionsbetriebes wird, wie gesagt, der eine oder der andere der beiden für jede Koordinate vorgesehenen Richtungsknöpfe, im Beispiel der Armschwenkbewegung der Knöpfe 658 und 660, gedrückt. Das Drücken des Knopfes 658 oder 660 hat zur Folge, daß durch eines der ODER-Gatter 812 und 814 ein Signal hindurchtritt, mit dem einer der Transistoren 788 und 790 leitend gesteuert wird. Jedoch ist es auch erforderlich, daß der Verstärker 772 eine geeignete Eingangsspannung erhält, um das Servoventil 846 zu öffnen und den Manipulatorarm in der gewünschten Richtung um die Achse 228 zu schwenken. Zu diesem Zweck liegt ein Potentiometer 886 zwischen einem Potential von +5 V und Masse, dessen Abgriff mit Schaltkontakten 658a und 660a in Verbindung mit dem Richtungsknopf 658 bzw. verbunden ist. Diese Schaltkontakte sind dann geschlossen, wenn die Knöpfe gedrückt werden. Die Schaltkontakte 658a und 660a sind miteinander und über einen Summierungswiderstand 890 mit dem Eingang des Verstärkers 772 verbunden. Desweiteren li^gon zwei Schaltkontakte 658b und 660b in Verbindung mit dem Richtungsknopf 658 bzw. 660 zwischen dem +5 V Potential und dem Feldeffekttransistor 776. Damit kann der Feldeffekttransistor 77G während der Betätigung des Armes in der einen oder anderen Richtung während des Instruktionsbetri^bes leitend gemacht werden, so daß der Kondensator 778 kurzgeschlossen und der Verstärker 772 als Proportionalverstärker betrieben wird. Infolgedessen gelangt beim Drücken eines der Knöpfe 658 und 660 ein Signal an die Basis der Transistoren 780 und 782, welches eine Polarität besitzt, um entweder die eine oder die andere der beiden Servoventilwicklungen 784 und 786 zu speisen in dem Maße, wie dies für die Bewegung des Armes seitens der Instruktionsperson im Instruktionsbetrieb wünschenswert ist. Diese
-59-
70981 9/071 8
Bewegungsgeschwindigkeit im Instruktionsbetrieb kann mittels dns Potentiometers 886 eingestellt werden.
V/ic· zuvor bereits erwähnt, ist es normalerweise außerordentlich schwierig, einen Manipulatorarm, wie z.B. 50 so zu instruieren, daß der Greifer eine geradlinige Bahn durchfährt. Dies ist deshalb der Fall, weil die Bewegungen in allen sechs Koordinaten Drehbewegungen sind, wobei noch bestimmte dieser Bewegungen sich zueinander addieren. Die Herbeiführung einer geradlinigen Bewegung in mehreren verschiedenen Koordinaten einfach durch Drücken der betreffenden Richtungsknöpfe, wie z.B. 658 und 660, 686 und 688 sowie 692 und 694 (Fig. 24) und geeignete Einstellung der Geschwindigkeiten in den betroffenen Koordinaten ist praktisch unmöglich. Auf der anderenSeite erfordern viele Montageoperationen solche geradlinigen Bewegungen, beispielswsise wenn ein Bolzen passend in ein° Bohrung eingesetzt werden soll.
Zur Lösung dieses Problems kann nun ein Rechner Verwendung finden, der dio notwendigen Berechnungen durchführt zur Bestimmung der erforderlichen B wegungen in den einzelnen Koordinaten für den Erhalt einer geradlinigen Bewegung in einer gewünschten Richtung. Wenn nach Fig. 26 etwa ein Bolzen 900 in eine passende Bohrung 902 eingeführt werden soll, so muß der Greifer so geführt werden, daß der Bolzen 900 sich entlang der Bohrungsachse entsprechend der Linie 904 bewegt. Diese Achse kann gegenüber der Horizontalen und/oder Vertikalen einen beliebigen Winkel einnehmen. Die Instruktionsperson bestimmt nun als erstes diejenige Wegstrecke, um welche der Bolzen 900 entlang der Linie 904 zu bewegen ist, um mit der gewünschten Tiefe in die Bohrung 902 einzutreten. Darauf werden die Positionssignale aus dsn Codierern, din dann auftreten, wenn der Bolzen 900 sich auf der Linie 904 unmittelbar vor der Bohrung 902 befindet, zusammen mit der zuvor bestimmten Wegstrecke dem Rechner zugeführt. Der Rechner führt die notwendigen Berechnungen durch für den Erhalt einer Serie aufeinanderfolgender Positionen in allen sechs Koordinaten
7098 19/0718
43.
derart, daß sich der Greifer mit dem Bolzen 900 entlang der Linie 904 um die gewünschte Wegstrecke bewegt. Ss versteht, sich, daß diese Bewegung viele Einzolrechnungen erfordert, da die einzigen zur Verfügung stehenden Daten die Positionssignale aus den Codierern der sechs Koordinaten für den Beginn der Einführungsbewegung sind.
Desweiteren kann der Rechner dazu Verwendung finden, die Instruktionsperson bei der Instruktion füi- eine Bewegung entlang ein^r Linie 906 senkrecht zur Linie 904 zu unterstützen, die auf ähnliche Weise programmierbar ist, oder für den Erhalt einer Bewegung senkrecht zu der Ebene d^r beiden Linien 904 und 906 wie auch einer zu all diesen vorgenannten Bewegungsrichtungen geneigt verlaufenden Bewegung, wie nachfolgend noch im einzelnen beschrieben wird. Die Berechnungen, die der Rechner durchzuführen hat, für Bewegungen entlang der Linie 904 oder 9OC lassen sich indessen erheblich reduzieren, so daß die benötigte Rechenzeit für den Erhalt der erforderlichen Programmdaten wesentlich geringer wird. Dies ist von Bedeutung, obwohl der Rechner seine Berechnungen, wie gesagt, außerhalb des Arbeitsablaufes, d.h. während des Instruktionsbetriebes durchführt, da ja auch hier keine beliebig langen Rechenzeiten zur Verfügung stehen.
Vor Betrachtung der Art und Weise, in welcher der Rechner die gewünschte Bewegung entlang der Linie 904 durchführt, soll zunächst einmal die gegenseitige Abhängigkeit der Bewegungen in den einzelnen Koordinaten für den Manipulatorarm 50 untersucht werden. In Fig. 27 sind die sechs Bewegungskoordinaten des Manipulatorarmes in Verbindung mit einem ^artesischen Koordinatensystem mit den Koordinaten X, Y und Z gezeigt, wobei die Bewegungskomponenten in den sechs Bewegungskoordinaten als Winkel angegeben sind. So ist die Armschwenkbewegung mit 04, die Oberarmbeugebewegung mit 01, die Unterarmbougebewegung mit 02, die Unterarmdrehbewegung mit 05, die Greiferbeugebewegung mit 03 und die Greiferdrehbewegung mit 06 bezeichnet. In der
-61-
709819/071 8
Position des Armes nach Fig. 27 sollen all diese- Winkel Gl QG Null betragen, und die Pfeile bezeichnen die Richtung der positiven Zunahme der Winkel. Besonders zu bemerken ist, daß 02 Null beträgt, wenn der Oberarmteil 84 mii: dem Untcrarmtcil 90 einen rechten Winkel einschließt, während alle anderen Winkel ihren Nullwert an irgend einer Stelle innerhalb der betreffenden Gesamtbewegung annehmen.
Wie zuvor bereits allgemein beschrieben, können die Winkel der einzelnen Bewegungskoordinaten folgende Grenzwerte annehmen:
+30°
01 = c-rtO (Oberarmbeugebewegung)
' ο
02 = ^nO (Unterarmbeugebewegung)
03 = - '(Greiferbeugebewegung)
04 = - 55° (Armschwenkbewegung)
05 = -150° (Unterarmdrehbewegung)
06 = unbegrenzt (Greiferdrehbewegung)
Während also 06 mechanisch unbegrenzt ist, sollten doch der Einfachheit halber für die Rechnerprogrammierung alle Argumente trigonometrischer Funktionen kleiner als 180 bzw. sein, um Mehrdeutigkeiten in den Winkelfunktionen zu vermeiden. Dementsprechend sei angenommen, daß 06 auf + 180 begrenzt ist.
Die Position einer jeden Koordinate nach Fig. 27 wird durch die Codierer 602 und 608 bis 616 angegeben, wie vorausgehend beschrieben. Die Ausgangssignale dieser Codierer seien mit Öle bis 06e bezeichnet. ^"ie aus Fig. 27 hervorgeht, addieren sich die Bewegungen in einigen der Koordinaten, so daß es hier zu gegenseitigen Abhängigkeiten kommt. In einigen Fällen wird die dabei resultierende Bewegung von!den Codierern nicht erfasst. Aus diesem Grunde gleicht ONe nicht in jedem Falle ON.
-62-
7098 19/0718
In bestimmten Fällen v/irken sogar die Bewegungen in mehreren Achsen gleichzeitig zusammen.
Die einzelnen Getriebeuntersotzungen und insbesondere» die in Zusammenhang mit Fig. 21 genannten sind nun so gewählt, daß die Werte für alle die Winkel 01 bis 06 als Funktion der Werte Öle bis 06e durch Verbindung der Codicrerausgangssignale auf Binärbasis ausgedrückt werden können. Das bedeutet, daß die jeweiligen Wert? von 01 bis 03 einfach durch Addieren ein^s festen und eines binärveränderlichen Teiles eines Codiererausgangssignals zu dem Ausgangssignal eines anderen Codierers erhalten werden können. In diesem Sinn sind die Getri^beuntersetzungen im einzelnen folgendermaßen gewählt:
01 Öle (1)
02 02e (2)
03 03e + 1/32 05e (3)
04 04e (4)
05 05e (5)
06 06e + 1/16 03e + 17/51i 2 θ 5e
(6)
Da der Rechner auch in der Lage sein muß, eine umgekehrte Umformung vorzunehmen, d.h. von den Codiererwerten Öle - 06e zu den Winkelwerten 01 - 06 zu gelangen, sind auch die entsprechenden folgenden Gleichungen von Bedeutung:
Öle = Ol 1/32 05 1/32 05 (7)
O2e = 02 (3)
O3e - 03 - (9)
O4e = 04 1/16 03 - (10)
O5e = 05 (11)
06 e = 06 - (12)
Um zu gewährleisten, daß der Rechner nicht eine Position ermittelt, die außerhalb des möglichen Bewegungsbereiches einer
-63-
709819/0718
bestimmten Koordinate liegt, müssen die Werte Öle - OGe begrenzt werden. Wie zuvor bereits erwähnt, begrenzt man 06 willkürlich auf £ 180 . Unter Verwendung der Gleichungen (1) - (6) und der erwähnten Winkelbereich? von 01 - 06 werden für Öle 06e die nachfolgenden Begrenzungen erhalten:
Öle = 01 30° 115,3° (13a)
Öle - 01 -50° -115,3° (13b)
02e = 02 40° 17/512 05e 167, (14a)
02e = 02 -50° 17/512 05e -167. (14b)
04e = 04 55° (15a)
04e = 04 -55° (15b)
04e = 05 150° (16a)
05e = 05 -150° (16b)
03e = 03 - 1/32 05e (17a)
03e = 03 - 1/32 05e (17b)
06e - OS - 1/16 03 - (18a)
06 e - 06 - 1/16 03 - (18b)
Als Beispiel für die Vereinfachung, die erfindungsgemäß für die Umwandlung der Positionssignale aus den Codierern in die gewünschten O-Werte erzielt wird sei nachfolgend der Winkel 06 betrachtet, welcher die Greiferdrehbewegung angibt und der Komponenten der Bewegungen in der Greiferdreh-, der Greiferbeuge- und der Unterarmdrehkoordinate in sich schließt, wie dies in der Gleichung (6) zum Ausdruck kommt. In Fig. 28 ist ein typisches logisches Schaltungsdiagramm für die Herleitung von 08 aus den drei betreffenden Codierer-Positionswerten gezeigt. Danach wird das Ausgangssignal des Codierers 614 für die Greiferdrehbewegung einem ersten Addierer 910 zugeführt, während der andere Eingang des Codierers 910 das um vier Bit nach rechts verschobene 15 Bit-Ausgangssignal 03e aus dem Codierer 612 für die Greiferbeugebewegung zugeführt erhält. Das Ausgangssignal des Addierers 910 ist auf diese Weise 06e + 1/16 03e.
-64-
709819/0718
Dieses Ausgangssignal wird einem zweiten Addierer 912 zugeführt, dessen anderer Eingang das um den Faktor 5 nach rechts verschobene Ausgangssignal 05e des Codierers 616 für dio Un':erarmdrehbewegung erhält. Infolgedessen entspricht das Ausgangssignal des Addierers 912 dem Wert 06e + 1/16 03e + 1/32 05e. Dieses Signal wird einem dritten Addierer 914 zugeführt, dessen anderer Eingang das um den Faktor 9 nach rechts verschobene Ausgangssignal 05e des Codierers 616 für die Unterarmdrehbewegung zugeführt erhält. Das Ausgangssignal des Addierers 914 entspricht damit dem gewünschten Wert 06, da die beiden Signalkomponenten aus dem Codierer 616, nämlich 1/32 95e und 1/512 05e, miteinander den durch die Gleichung (6) vorgeschriebenen Wert bilden. Auf diese Weise wird mit nur drei Addierern, die selbständig ausgeführt oder einfach durch Programmierung in dem Rechner realisiert sein können, die Umwandlung sämtlicher Positionswerte Öle - 06e in die Winkelwerte 01 - 06 erreicht. Ebenso wie die Gleichungen (1) - (6) sind auch die Gleichungen (7) - (12) durch binäre Inkremente miteinander verknüpft, weshalb andererseits die O-Werte auch sehr einfach in die gewünschten Positionswerte rückverwandelt werden können.
Damit der Rechner die gewünschten Positionen in allen sechs Bewegungskoordinaten für eine geradlinige Bewegung z.B. entlang der Linie 904 berechnen kann, ist es erforderlich, daß er die aus den Codierer-Positionswerten erhaltenen O-Werte in cartesische Koordinaten, d.h. X-, Y- und Z-Werte umsetzt, damit ein neues Bewegungsinkrement in cartesischen Koordinaten hinzuaddiert werden kann. Danach muß der Rechner die neuen cartesischen Koordinatenwerte wieder in Polarkoordinaten zurückverwandeln, um diejenigen O-Werte zu erhalten, welche die neuen Steuersignale für die verfügbaren sechs Bewegungskoordinaten bilden, um entlang der Linie 904 fortzuschreiten.
-65-
7 0 9819/0718
Falls diese Umwandlung durch die Lösung von sechs parallelen Gleichungen mit sechs Unbekannten erfolgt, ist si« sehr komplex und schwer programmierbar und erfordert zudem ein beträchtliches Maß von Rechnerzeit. Erfindungsgcmäß wird deshalb ein anderer Weg beschritten, mit dem sich die erforderliche Rechnerzeit wesentlich vermindern lässt und dennoch genaue Ergebnisse erhalten werden. Hinzu kommt, daß diese Lösungsweise mit dem zuvor beschriebenen linearen Interpolationsbetrieb verträglich ist, so daß sich damit eine außerordentlich genaue Bewegung in einer jeden beliebigen Richtung erzielen lässt. Die genannte Vereinfachung wird dadurch erreicht, daß der Greifer zunächst so gerichtet wird, daß der davon gehaltene Bolzen 902 in der gewünschton Bewegungsrichtung weist. Die betreffenden Positionswerte aus den Codierern ergeben dann Orientierungswinkel, die für die Umwandlung von den Polarkoordinaten- in das cartesische Koordinatensystem und umgekehrt verwendet v/erden können.
Vor Beschreibung dieser Verfahrensweise im einzelnen sei zunächst Fig. 29 betrachtet, worin die verschiedenen, z.T. miteinander verknüpften Bewegungsmöglichkeiten des Manipulatorarmes 50 schematisch dargestellt sind. In dieser Figur bezeichnet der Vektor al den Oberarmteil 84. Die Vektorkomponenten a2 und a3, die miteinander einen rechten Winkel einschließen, bezeichnen zusammen die Orientierung des Unterarmteils 90. Dio Komponente a3 fällt deshalb auf, weil die Mittelachse des Unterarmteiles 90 etwas oberhalb der Achse 92 verläuft, wie am besten aus Fig. 11 ersichtlich ist. Jedoch stehen die beiden Komponenten a2 und a3 stets senkrecht aufeinander, wie dies aus Fig. 29 hervorgeht.
Das Element b stellt den Greifersockel 96 dar, der um die Greiferbeugeachse 98 - hier mit drei bezeichnet - gemäß dem Winkel QZ schwenkbar ist. ^er Greifer selbst ist in der Figur mit 920 bezeichnet, und der Vektor c bezeichnet einen Gegenstand,
709819/0718
wi« z.B. den Bolzen 900, der im rechten Y/inkel zu dem Element b bewegt werden soll. Das Ende des Bolzens 900 bzw. Elements c - in der nachfolgenden Beschreibung "Endeffektor" genannt - ist mit 6 bezeichnet. Der Schnittpunkt der Elemente b und c trägt die Bezeichnung 5. Erfährt der Greifer eine Greiferdrehbewegung entsprechend ein^r Veränderung von 03, so bewegt sich der Endeffektor S in einer Ebene senkrecht zu dem Element b.
Wie zuvor bereits allxgemein beschrieben, basiert die erfindungsgemäße Umwandlung von cartesischm Koordinaten in Polarkoordinaten auf der Annahme, daß die Instruktionsperson den Endeffektor entweder entlang der Achse des Elements b oder derjenigen des Elements c bewegen möchte. Jedoch ist auch eine kompliziertere Bewegung, wie z.B. eine solche entlang einer normalen zu der Ebene der Elemente b und c, oder einer zu dieser Ebene geneigten Linie möglich, wie noch beschrieben wird. Nach der Figur wird der Manipulatorarm 50 durch Vektoren al, a2 und a3 in Verbindung mit den Elementen b und c repräsentiert. Die Bewegung dieses Armes wird gesteuert durch Veränderung der Winkel Ol - 06. Durch Begrenzung der aufgegebenen Bewegung in Richtung des Elements b oder des Elements c (in der Figur mit"eriiang b" bzw. "entlang c" bezeichnet) auf Xcm wird die Schwierigkeit der Umwandlung von cartesischen in Polarkoordinaten weitgehend reduziert. Dies ist deshalb der Fall, weil man weiß, daß bei einer aufgegebenen Bewegung in Plus- oder Minus-Richtung entlang b bzw, c die Phnkte 3,
und 5 und G alle identische Veränderungen Δ Χ, ΔΥ Ι Δ, Ζ erfahren, da die Elemente b und c zueinander rechtwinkelig starr miteinander verbunden sind.
Zwar kann die Orientierung des Elements c gegenüber dem Element b durch Veränderung des Winkels OS verändert werden, doch werden bei Aufgabe einer Bewegung entlang b die Punkte 3, 5 und 6 stets miteinander und parallel zu der Achse des Elements b bewegt.
-67-
70981 9/0718
fO'
Ebenso bewegen sich diese Punkte miteinander und entlang der Achse des Elements c, wenn eine Bewegung entlang dieser Achse aufgegeben wird. Durch Beschränkung aller Bewegungen von einem bestimmten Startpunkt aus, dessen Werte Ol - 06 bekannt sind, auf gleichlaufende lineare Translationsbewegungen der Punkte 3, 5 und 6 erfordern die Berechnungen der Lage des Endpunktes 6 nur drei Gleichungen mit sechs Unbekannten. Werden diese drei Gleichungen umgerechnet, so daß nur noch fünf Unbekannte auftreten, so ergibt sich der Punkt 5, und bei weiterer Umrechnung auf drei Unbekannte der Punkt 3.
Wie aus Fig. 29 ersichtlich, stellt der Punkt 3 die Vektorsumme von al, a2 und a3 dar. Der Punkt 5 entspricht der Vektorsumme al + a2 + a2 + a3 + b, und der Punkt c entspricht der Vektorsumme al + a2 + a3 + b + c. Erfindungsgemäß wurden nun drei Gleichungen entwickelt mit den sechs Unbekannten Ol - 06, welche x6, y6 und z6, d.h. die cartesischen Koordinaten des Endeffektors 6 angeben. Diese Gleichungen können Verwendung finden für die Ermittlung der Koordinaten x5, y5 und z5 des Punktes 5, wenn man die c-Glieder zu Null macht, und ebenso können die Werte x3, y3 und z3 erhalten werden, wenn man die b- und die c-Glieder zu Null macht. Die drei Gleichungen für den Erhalt der X-, Y- und Z-Koordinaten des Endeffektors 6 mü; den Elementen al, a2, a3, b und c sowie den Winkeln 01 06 lauten wie folgt:
xö = al .Cos01.Cos04 + a2.Cos(180 - Θ1 - 02).Cos04 + a3.Sin(180 - Θ1 - 02).Cos04+b.Cos(180 - Θ3).Cos04.Cos + b.Sin(180 - 03).Cos05.Sin(l80 - 01 - 02).Cos04
- b.Sin(180 - 03).SinO5.SinO4
- c.Ce?0S.Sin(180 - 03)#Cos04.Cos(180 - 01 - 02) + c. CosA .Sin(180 - 01 - 02).Cos04.CosB
- c. CosA .SinB.SinO4 (19)
-68-
7098 19/07 18
y6 = al SinOl - a2 Sin(180 - Θ1 - 92) + a3.Cos(180 - 01 - Θ2) - b.Cos(180 - 03).Sin(180 - 01 - 02) + b.Sin(180 - 03).Cos05.Cos(180 - 01 - 02) + c.Cos06.Sin(180 - 03).Sin(180 - 01 - 02) + c. [ CosA I .CosB.Cos(180 - 01 - 02) (20)
•zß = al.Cos01.Sin04 + a2.Cos(180 - 01 - 02).Sin05 +-a3.SIn(ISO - 01 - 02).Sin04
+ b.Gos(l80 - 03).Sin04.Cos(180 - 01 - 02) - c.CosOS.Sin(180 - 03).Sin04.Cos(180 - 01 - 02) + ~b.Sin(180. - 0 - 3).Cos05.Sin(180 - Ot - 02).Sin04
c.
CosA
.CosB.Sin(180 - 01 - 02)(Sin04
+b.Sin(180 - 03).Sin05.Cos04
+c.
CosA
.SinB.Cos04 (21)
Nach Festlegung und Ausrichtung des Endeffektors 6 in der gewünschten Richtung, in welcher di^ Bewegung erfolgen soll, ist es erforderlich, die cartosischen Koordinaten der PunkCo 3, 5 und 6 zu errechnen, welche den Ausgangspunkt für die vorgesehene Bewegung bilden. Diese Koordinaten können aus den Gleichungen (19), (20) und (21) erhalten worden. Zunächst werden die Koordinaten X6, YQ und Z6 bestimmt, indem man die erforderlichen Werte 01 - 08 in eine jede dieser Gleichungen einsetzt. Dann werden di·^ c-Glieder zu Null gemacht und die Gleichungen für X5, Y5 und Z5 gelöst. Wenn dann die b- und c-Glipder zu Null gemacht werden, erhält man die Koordinaten X3, Y3 und Z3.
Für die gewünschte Bewegung in der Richtung des Elements b ist es erforderlich, deren Koordinaten ΔΧ, ΔΥ und ZiZ zu berechnen. Dabei ist es wichtig zu wissen, daß sich die drei Punkte 3, 5 und 6 gemeinsam entsprechend diesen Koordinaten ^\X, ZSY und-AZ bewegen. Dies ist eine Voraussetzung dafür, daß die Orientierung vom Punkt 3 aus beibehalten bleibt. D.h. die Element b und c
-69-
70981 9/0718
vollführen im Raum eine translatorische Bewegung, wobei ihre Orientierung die gleiche bleibt wie im Anfangspunkt, wie aus Fig. 30 ersieh lieh. In dieser Figur erkrrnc man, daß, um diese Bedingung zu erfüllen, di~ Elemente al, a2 und a3 entsprechend bewegt werden. Dabei werden di~se Element·^ im Allgemeinen k-^ine translatorisch-. Bewegung erfahren. Beschränkt man die Bewegung der Punkte 3, 5 und 6 auf ein konstantes Weginkremcnt .A S, so werden die Rechnungen zum Erhalt von Θ1 - 06 für di^ nnuen Punkt? 3, 5 und 6 - als Punkts 3N bzw. 5N bzw. GN bezeichnet - wesentlich vereinfacht.
Für die Abhängigkeit der Koordinateninkremente Ax, —LY und A Z von dem Weginkrcment Jl\ S besteht folgende Beziehung:
S =V A XS +. AY2 + Az2 (22),
wobei, wie gesagt, A S die Strecke darstellt, durch welche sich
die Punkte 3, 5 und 6 jeweils bewegen, während ___*. X —^Y LZ
die cartesischen Koordinaten dieser Bewegung sind.
Soll diese Bewegung in Richtung des Elements b, d.h. der Achse 904, stattfinden, so ergeben sich die betreffenden Koordinaten Xb, AYb und A Zb aus folgenden Gleichungen:
(23)
(24)
(25) b
Soll die Bewegung in Richtung des Elements c erfolgen, so werden die betreffenden cartesischon Koordinaten A Xc, A Yc und A Zc aus folgenden Gleichungen erhalten:
-70-
709819/0718
A Xb = X5 - X3
b
Ja Yb = Y5 - Y3
b
A Zb = Z5 - Z3
A Xc = Χδ - X5 Λ g
(27)
Yc = Υ6 C Υ5
A -
Zc = Ζ6 C Ζ5
A -
. /Λ
Auf ähnliche Weise können die Koordinaten einer geradlinigen Bewegung um die Strecke Δ S in beliebiger Richtung wie folgt erhalten werden:
A X = As * Richtungskosinus der Bewegung in der X-Achse (29) A. Y =As · Richtungskosinus der Bewegung in der Y-Achse (30) Δ Z = As · Richtungskosinus der Bewegung in der Z-Achse (31)
Die so erhaltenen KoordinateninkrementeΔ Χ, /Λ Υ und ZiZ kann man nun zu den zunächst ermittelten Koordinaten X, Y und Z s der Punkte 3, 5 und 6 hinzuaddieren, um die Koordinaten der neuen Punkte 3N, 5N und 6N zu erhalten. Nun müssen noch die entsprechenden neuen Winkel N- N ermittelt werden. Dieser Vorgang, der als inverser Transformationsvorgang bezeichnet wird, erfolgt unter Verwendung von drei Gleichungen mit drei Unbekannten, welche die neuen kartesiashen Koordinaten des Punktes 3 angeben, und deren Auflösung nach QJN, 62N und Θ4Ν, womit sich die neue Position des Punktes 3 ergibt. Hat man Θ1Ν, 02N und Θ4Ν, so kann man mit Hilfe des Dreiecks aus den Punkten 2f, 3 und 5, dessen drei Seiten sich leicht bestimmen lassen, 03N finden. Ist 03N bekannt, so kann mit den bekannten Koordimten X5, Y5 und Z5 05N ermittelt werden. Auf ähnliche Weise läßt sich danach 06N bestimmen.
Die spezifischen Rechenvorgänge für die inverse Transformation seien nun anhand der Figuren 31 - 49 erläutert, welche die Aufeinanderfolge von Operationen angeben, die durch den Rechner
-71-
70981 9/0718
während des Instruktionsbetriebes zu leisten sind. Wie aus Fig. 31 ersichtlich, erfolgt zunächst die Berechnung von 04N, wozu der arc tg von Z3N/X3N bestimmt werden muß. Nimmt man an, daß die Bewegung in Richtung des Elementes b erfolgen soll, so ist X3N gleich der X-Koordinate des Ausgangspunktes, erhalten aus der Gleichung (19) zuzüglich der Veränderung der Abstände Xb aus Gleichung (23). Auf ähnliche Weise werden Y3N und Z3N erhalten. Die Ermittlung des arc tg kommx dem Block 922 in Fig. 31 zum Ausdruck, wobei anzumerken ist, daß diese Operation in dem Rechner in Verbindung mit den beiden Manipulatorarmen 50 und 52 erfolgt, wie nachfolgend noch genauer beschrieben wird. Alternativ hierzu können die Rechnungen nach den Figuren 31 - 49 jedoch auch auf irgendeine andere geeignete Weise erfolgen, beispielsweise mit Hilfe eines Handrechners oder eines Analogrechners oder irgendeines allgemeinen Digitalrechners.
Als nächstes müssen Θ1Ν und Θ2Ν berechnet werden, wie dies in Fig.32 zum Ausdruck kommt. Zum Erhalt dieser Werte findet das aus den Punkten 0, 2 und 3 nach Fig. 29 und 30 gellldete Dreieck Verwendung. Zunächstwird die Entfernung zwischen den Punkten O und 3 ermittelt, wie durch den Logik-Block 924 angedeutet. Der erhaltene Wert wird in dem Logik-Block 925 mit der Vektorsumme aus al und a4 aus Fig. 29 kombiniert, um den halben Umfang (semiperimeter) des Dreiecks aus den Punkten 0, 2 und 3 zu erhalten, der mit s 0_2-3 bezeic^ne^ ist. Der Ausgangswert des Logik-Blockes 125 wird dann mit den Eingagswerten dieses Logik-Blockes im Logik-Block 926 kombiniert, um die Fläche des Dreiecks aus den Punkten 0, 2 und 3 zu erhalten. Im Logik-Block 928 wird der arc sin des Winkels zwischen den Punkten 0, 2 und 3 bestimmt, und das Ergebnis wird einem Subtrahierer 930 zugeführt, in dem dnWert proportional der in Fig. 29 so bezeichneten Abweichung, d.h. der arc tg von a3/a2 abgezogen wird, um den gewünschten Wert 02N zu erhalten. Der Flächenwert aus dem Block 926 wird des weiteren in dem logischen Block 932 mit al und der Strecke zwischen den Punkten 0 und 3 kombiniert, um einen Wert Θ1Ν" zu erhalten, und Y3 wird in dem Logik-Block 934 kombiniert mit der Strecke zwischen den Punkten 0 und 3, um einen Wert Θ1Ν· zu gewinnen. Diese beiden letztge-
7098.1 9/071 8
nannten Werte werden in dem Addierer 936 kombiniert, der den gewünschten Wert QlN liefert. Die Werte 01Nf und QlN" sind in Pig, 32a zu erkennen, woraus auch hervorgeht, daß 01 die Summe von Olf und01" ist.
Nachdem so die Werte für die drei Steuersignale der Hauptkoordinaten, d.h. 01, 02 und 04 bestimmt wurden, ist es erforderlich, den neuen Wert von 03, d.h. Θ3Ν zu berechnen. Hierzu sei auf die Figuren 33 - 37 und 33a verwiesen, worin das Dreieck aus den Punkten 2», 3 und 5 auftritt. Zur Verwendung dieses Dreiecks müssen zunächst die Koordinaten des Punktes 2'N ermittelt werden. Dies geschieht in einer Gruppe von logischen Schaltungen, die in Fig. 33 allgemein mit 938 bezeichnet sind. Sind die Koordinaten des Punktes 2*N bekannt, so wird nach dem logischen Block 940 (Fig. 34) die Strecke zwischen den Punkten 2fN und 5N bestimmt unter Verwendung der X-, Y- und Z-Koordinaten des P1 nktes 5N, die bekannt sind, sowie den aus dem logischen Block 938 erhaltenen X-, Y- und Z-Koordinaten.
Der halbe Umfang (semiperimeter) des Dreiecks aus den Punkten 2»N, 3N und 5N wird dann bestimmt in dem logischen Block 942 (Fig. 35), und die Fläche dieses Dreiecks wird ermittelt in dem logischen Block 944 (Fig. 36). Zuletzt wird in dem logischen Block 946 (Fig. 37) der Wert Θ3Ν ermittelt unter Verwendung der Fläche aus dem logischen Block 944 und der Elemente a2 und b.
Nachdem man nun/die Werte Θ1Ν, Θ2Ν, Θ3Ν und Θ4Ν hat, wird der neue Wert für 05, d.h. Θ5Ν, errechnet unter Verwendung der vier zuvor berechneten Werte. Für diese Berechnung wird angenommen, daß der Punkt 5Q die Position des Punktes 5 sei, wenn 05■ » 0 ist, wie in Fig. 38 angegeben, unter diesen Umständen werden die Koordinaten des Punktes 3f ermittelt, der auf der Achse des Elements a2 liegt, deren relative Richtung eine Funktion des Winkels (180°- 03) ist. Dann kanndas Dreieck aus den Punkten 3», 5 und 5N ermittelt werden sowie der von den Punkten 5N, 3f und 5Q bestimmte Winkel, welches der gesuchte Winkel Θ5Ν ist. In Fig. 38 entspricht das Element a5 der Strecke
709819/0718
zwischen den Punkten 3N und 3*N, und seine X-, Y- und Z-Koordinaten weiden mit Hilfe der logischen Blöcke 948, 949 und 950 (Fig. 39) ermittelt. Die X-, Y- und Z-Koordinaten des Punktes 31N können mit Hilfe der logischen Blöcke 951 t 952 und 953 (Fig. 39b) erhalten werden.
Nachdem man nun die Koordinaten des Punktes 3fN hat, können für das Dreieck aus den Punkten 3fN, 5N und 5 die Koordinaten des Punktes 5 ermittelt werden (der dem Punkt
5 entspricht, sofern 05N = 0) mit Hilfe der logischen Blöcke 954, 955 und 956 aus Fig. 39c. Die Seite mit den Endpunkten 5N und 5 wird dann ermittelt mit Hilfe des logischen Blockes 957 (Fig. 40). Dann wird mit Hilfe des logischen Blockes 958 (Fig. 41) der Radius r der Basis des Kegels bestimmt, der entsteht, wenn 05 variiert wird, und die beiden Ausgangswerte aus den logischen Blöcken 957 und 958 bilden die Eingangswerte für den logischen Block 959 zur Bestimmung des halben Umfanges (semiperimeter) des Dreiecks aus den Punkten 3*N, 5N und 5 , wie aus Fig. 42 ersichtlich. Der logische Block 960 in Fig. dient dazu, den gewünschten Winkel ON zu erhalten. Jedoch läßt der Ausgangswert des logischen Blockes 960 nicht erkennen, ob 05N positiv oder negativ ist. Die Polarität von Θ5Ν wird deshalb bestimmt, indem man mächst das Kreuzprodukt der Vektoren zwischen den Punkten 31N und 5 bzw. 3fN und 5N bildet, wie dies mit dem logischen Block 961 in Fig. 43a zum Ausdruck kommt. Dieses Kreuzprodukt ist als CX5 bezeichnet. Ist die resultierende Richtung die gleiche wie diejenige des Vektors zwischen den Punkten 21N und 3N, dann ist das Vorzeichen positiv, ist sie umgekehrt, so ist das Vorzeichen negativ, wie durch den logischen Block 962 (Fig. 43b) bestimmt wird. In diesem Zusammenhang sei erwähnt, daß die zweite Lösung für Θ5Ν, wenn -Θ3Ν verwendet wird, stets zu einem Θ5Ν2 - 05Nl - 180° führt. Die korrekten Lösungen für Θ3Ν und 05N sind diejenigen, welche die geringsten Änderungen von Θ3 und 05 erfordern.
Nachdem nun Θ4Ν, Θ1Ν, Θ2Ν, 03N und Θ5Ν vorliegen, kann Θ6Ν berechnet werden. Hinsichtlich der Lösung für 05N verdient
-74-709819/0718
- 1MT-
jedoch Beachtung, daß wenn (180ο-θ3), was aus dem logischen Block 963 in Fgi. 39a hervorgeht, geringer als i 0,01° ist, was als 0 gelten soll, dann Θ5 nicht unmittelbar zu ermitteln ist. Dann ergibt die Lösung für 06N auch den Wert Θ5Ν. Der Fall, daß (180°-03) = 0 ist, entspricht der Situation, daß das Element b parallel zu dem Element a2 verläuft und somit der Radius der Kegelbasis gegen 0 geht. In diesem Fall bezeichnen 05 und Θ6 Drehungen um die gleiche Achse, (diejenige des Elements a2) und in Phase miteinander, d.h. solche, die sich addieren.
Zur Bestimmung von 06N sei auf Fig. 44 verwiesen, worin die Lösung des Dreiecks mit den Eckpunkten 5N, 6 und 6N verdeutlicht ist, wobei der Punkt 6 den Fall bezeichnet, in dem Θ6 « 0 ist. Gibt der logische Block 963 aus Fig. 39a an, daß (180 -03) größer als ί 0,1° ist, dann wird Θ6Ν ermittelt durch Lösen dieses Dreiecks. Nimmt man an, daß aus dem logischen Block kein Ergebnis erhalten wird, so werden die Koordinaten des Punktes 6 bestimmt unter Verwendung der bekannten Koordinaten des P nktes 5N, wozu die Koordinaten des Vektorelements c (mit Θ6 ■* 0) hinzuaddiert werden. Diese Addition erfolgt in den logischen Blöcken 965, 966 und 967 (Figuren 45a, 45b und 45c).
Die Länge der Dreiecksseite zwischen den Punkten 6 und 6N\Ard
dann ermittelt in dem Logik-Block 968 (Fig. 46). Der halbe Umfang (semiperimeter) des Dreiecks aus den Punkten 6N, 5N und 6Q wird bestimmt in dem Logik-Block 969 (Fig. 47), und Θ6Ν wird erhalten aus dem Logik-Block 970 (Fig. 48).
Zur Bestimmung des richtigen Vorzeichens von Θ6Ν wird in dem logischen Block 971 (Fig. 48a) das Kreuzprodukt der Vektoren zwischen den Punkten 5N und 6 bzw. 5N und 6N er-
mittelt, und die Richtung des sich daraus ergebenden Vektors CX6Q wird verglichen mit dem Vektor zwischen den Punkten 3N und 5N in dem logischen Block 972 in Fig. 48b.
In dem speziellen Fall, daß 03 kleiner als ^0,01° ist (Fig. 39a) sind die Elemente a2 und b im wesentlichen gleichlaufend, und eine Änderung von 05 oder 06 resultiert in einer
70981 9/07 18
Drehung um die Achse des Elements a2. Unter diesen Umständen entfallen die Rechnungen für 05N, und Θ6Ν wird berechnet ausgehen :" von Fgi. 45a, wobei in allen Gleichungen 05 » 0 gesetzt wird. Während die auf diese Weise erhaltenen Werte für Θ6Ν ohne Beachtung von 05 als neue 06-Werte verwendet werden könnten, werden indessen zur Verteilung der Gesamtbewegung zwischen 05 und 06 die folgenden Schritte unternommen: Nach Beendigung der Rechnungen nach den Figuren 45a - 48b mit 05 «= 0 werden die errechneten Werte von Θ6Ν, als *06 bezeichnet, dem Logik-Block (Fgi. 49) zugeführt zusammen mit den alten Werten von 05 und In diesem Logik-Block wird das errechnete Inkrement von 06 erhalten, mit A B bezeichnet, und durch 2 dividiert. Der Wert Jl B/2 wird in den Logik-Blöcken 974 und 975 zu den alten 05- und 06-Werten hinzuaddiert, um die gewünschten Werte Θ5Ν und 06 N zu erhalten. Es sei betont, daß die Logik-Blöcke 973, 974 und 975 nur dann Verwendung finden, wenn (180° - 03) geringer als -0,01° ist (Fig. 39a).
Während die vorausgehend beschriebene inverse Transformation aus kartesiachen Koordinaten in die sechs gewünschten Polarkoordinaten für die neue Position, in welcher sich das von dem Greifer aufgenommene Teil 900 entlang der Achse 904 bewegen soll, recht komplex erscheint, ist sie doch wesentlich einfacher als die Berechnung, die erforderlich wäre, wenn die gewöhnliche Rechenmethode unter Verwendung von 6 Gleichungen mit je 6 Unbekannten Verwendung fände. Diese Vereinfachung beruht darauf, daß man stets die korrekten Koordinaten des Punktes 3 kennt. Damit beschränkt sich das Problem auf die Lösung vn drei Gleichungen mit drei Unbekannten (04, 01 und 02), die keine Schwierigkeit«» bereitet. Sind 01, 02 und 04 einmal ermittelt, so sind noch einmal drei Gleichungen mit drei Unbekannten zu lösen. Schätzungsweise beträgt die Zeit, die der Rechner für die verhältnismäßig einfache vorausgehend beschriebene inverse Transformation benötigt, etwa ein Ze&ntel bis ein Zwanzigstel derjenigen Zeit, die für die herkömmliche Rechenmethode erforderlich wäre. Man muß auch wissen, daß, falls gewünscht, die Weginkremente
7098 19/0718
:\ S entlang der Achse 904 verhältnismäßig kurz sein können, z.B. in der Größenordnung von 5-10 mm, womit sich die Bahnabweichungen außerordentlich gering halten lassen. Für S *
5 nun läßt sich ein Fehler von weniger als 0,13 mm abschätzen, wenn für die betreffende Bewegung der lineare Interpolationsbetrieb vorgesehen wird, wie dies in Verbindung mit Fig. 25 beschrieben wurde.
Wie vorausgehend bereits allgpnein beschrieben, ist es auch möglich, die zuvor beschriebene inverse Transformation bei einer Drehung um den Punkt 5 anzuwenden, wie dies Fig. 50 zeigt. In dieser Figur ist eine programmierte Rotation um die Achse des Elements c zu erkennen. In diesem Fall bleiben die Punkte 5 und
6 stillstehend, während sich der Punkt 3 auf einer kreisförmigen Bahn 980 bewegt. Die Bahn 980 kann leicht in Form von aufeinanderfolgenden kleinen Inkrementen des Winkels oC programmiert werden, der in der Ausgangsposition 0 betragen soll. Eine solche Bahn findet z.B. dann Verwendung, wenn bei der Montage von Teilen eine Drehbewegung um eine Achse zu vollführen ist, wie z.B. beim Eindrehen von Schrauben.
Nach Fig. 50 wird die Nettoabweichung des Punktes 3 durch die Summe der Vektoren zwischen den Punkten 3 und 7 bzw. 7 und erhalten. Jedoch liegt der Vektor zwischen den Punkten 3 und auf der Achse des Elements b, und seine Größe beträgt b - »CoSoC Seine Komponenten ergeben sich aus den folgenden Gleichungen:
X5 — X3
' Λ Xb - - (b - b'Cosc^) (32)
Y5 - Y3
£ yb m . (b _ b«Cos oC ) (33)
Z5 - Z3
& Zb - . (b - b-CosoC) (34)
Die Richtung des Vektors zwischen den Punkten 7 und 8 wird durch das negative Kreuzprodukt (b X C-) erhalten. Sie ist normal
70981 9/0718
zu der Ebene der Vektoren b und c. Im Beispiel der Fig. 50 hat der Vektor zwischen den Punkten 7 und 8 die Größe b»Sin</-Seine Komponenten ergeben sich aus den Gleichungen
= - Sx«(b.Sin^ ) (35)
A Yx * - Sy (b-Sin ) (36)
Λ Zs - - Sz'(b«Sin oü ) (37)
wobei Sx der Richtungscosinus der Bewegung (sweep axis) in bezug auf die X-Achse,
Sy der Richtungscosinus der Bewegung in bezug auf die Y-Achse und Z der Richtungseosinus der Bewegung in bezug auf die Z-Achse
Aus diesen Gleichungen läßt sich der Punkt 3N für eine Drehung um das Element c nach Fig. 50 nach folgenden Gleichungen bestimmen:
X3N = X3 - Xb 4 (38)
Y3N = Y3 - Yb 4 (39)
Z3N = Z3 i Zb 4 (40)
ι- A -A Xs
h A -Ays
ι- A ■ A zs
Da die Punkte 5 und 6 in Ruhe bleiben hat man damit die kartesischen Koordinaten für die Punkte 3N, 5N und 6N und kann nun die inverse Transformation in der gleichen Weise vornehmen, wie sie in Verbindung mit den Figuren 31 - 49 beschrieben wurde, um die neuen Werte Θ1 - 06 zu erhalten.
Wie vorausgehend allgpnein beschrieben, findet der erwähnte Rechner im Instruktionsbetrieb dazu Verwendung, Bewegungen exakt programmieren zu können, die erforderlich sind, um Teile unter verschiedenen Winkeln und in schrägen Ebenen miteinander vereinigen zu können. Dabei wird der Instruktionsperson die praktisch sonst undurchführbare Aufgabe abgenommen,
-78-
709819/0718
«ff*
die sechs Polarkoordinatenbewegungen für den Erhalt der gewünschten Bahn zu koordinieren.
Es ist nun weiter vorgesehen, den betreffenden Rechner über geeignete Schnittstelleneinrichtungen mit der Steuerschaltung für den betreffenden Manipulatorarm so zu verbinden, daß nach einmal erfolgter Berechnung der Werte Θ1Ν - 06N auf die beschriebene Weise diese Werte nach entsprechender Umformung gemäß den Gleichungen (7) - (12) und ggf. Umwandlung in Digitalform in dem Programmspeicher der betreffenden Anlage aufzuzeichnen, um von dort während des Arbeitsbetriebes als Steuersignale für alle sechs Bewegungskoordinaten Verwendung zu finden. Die Art und Weise, in welcher der Rechner an die Programmsteuerung angeschlossen werden kann, geht aus den Figuren 51 - 58 hervor, die nach Fig. 58A zusammenzusetzen sind.
Hiernach ist der Rechner, allgemein mit 1000 bezeichnet, über geeignete Schnittstelleneinrichtungen 1002 mit der Manipulator steuerung verbunden, die hier nur in Form von Hauptblöcken dargestellt ist. Diese letzteren werden naturgemäß in vielen Fällen einzelne Schaltungskomponenten in Form von Schaltungskarten oder dergl. enthalten. In denjenigen Fällen, in denen ein solcher Block im wesentlichen einem solchen entspricht, wie er vorausgehend in Verbindung mit den Figuren 21 - 25 beschrieben wurde, sind die gleichen Bezugszahlen verwendet. Der Rechner 1000 ist vorzugsweise ein solcher, wie er sich unter der Bezei chnung Data General 32K bit core storage computer Model Nova 2/10 auf dem Markt befindet, und mit einer Fernschreibeinheit 1004 ausgerüstet, mit deren Hilfe die Instruktionsperson den Rechner 1000 während des Instruktionsbetriebes mit Daten speisen und die errechneten Programmschritte in den Programmspeicher 628 überführen kann. Die Verbindung zwischen dem Rechner 1000 und den Schnittstelleneinrichtungen 1002 ist generell mit dem Doppelpfeil 1006 angegeben.
-79-
709819/U718
Vorzugsweise bilden die Schnittstelleneinrichtungen 1002 einen Teil des Rechners 1000, so daß der Rechner einfach in die Manipulatorsteuerung eingesteckt zu werden braucht. Dabei kann ein einziger Rechner 1000 mit Schnittstelleneinrichtungen 1002 abwechselnd die beiden Manipulatorarme 50 und 52 bedienen, wozu Schaltmittel vorgesehen sein können, die es erlauben, den Übergang vom einen zum anderen Manipulatorarm willkürlich und auf einfache Weise vorzunehmen.
Betrachtet man nun die Hauptkomponenten der Manipulatorsteuerung, so werden die Positionssignale aus den sechs Codierern, hier zusammen mit 1008 bezeichnet (Fig. 57), einer Erfassungseinheit 1010 zugeführt, die auch die drei Ausgangssignale des Gruppenzählers 674 (Fig. 52) erhält, die allge-
0 1 mein mit 1012 bezeichnet sind und den Signalen 2 , 2 und in Fig. 23 entsprechen. Die Erfassungseinheit 1010 liefert ein geeignetes Multiplex-Äusgangssignal En, das dem Vergleicher 626 (Fig. 58) zugeführt wird.
Sollen die Positionssignale aus den Codierern in dem Speicher 628 als Steuersignale aufgezeichnet werden, d.h. während des Instruktionsbetriebes, so wird das Signal En über den Schalter MUX9 auf der I-Karte 1014 und die Leitungen MEn dem Speicher 628 zugeführt. In diesem Zusammenhang sei erwähnt, daß die Bezeichnung MUX in den Figuren 51 - 58 einen Multiplexer in integrierter Schaltungstechnik angibt, der eine Vielzahl von Schaltkreisen zur Umschaltung eines Ausgangs zwischen mehreren Eingängen in Abhängigkeit von einem oder mehreren betreffenden Steuersignalen enthält. Diese Vielzahl von Schaltkontakten ist hier als einziger Umschaltkontakt dargestellt, dessen Steuerung durch eine gestrichelte Wirkungslinie angedxttet ist.
Die binärcodierten Daten aus einem jeden Codierer bestehen aus einem 15-Bit-Wort, und ein Paritätsgenerator 1016 ist auf der Karte 1014 dazu vorgesehen, ein Psltätsbit als
-80-
70981 9/0718
16. Bit hinzuzufügen, so daß die dem Speicher 628 über die Leitungen MEn übermittelten Daten ein 16-Bit-Wort bilden. Die Codierer-Daten können auch durch den Inverter 1018 invertiert und so über die Leitungen TEn einer Prüf- und Wiedergabeeinheit 1020 zugeführt werden. Zusätzlich können Daten aus der Hauptsteuestafel 1022, welche zusätzliche Steuersignale bilden, über den Multiplex-Schalter MUX 10 auf der I-Karte 1014 den Codiererdaten hinzuaddiert werden.
Auf dem Steuerpult ist ein Instruktionsschalter 1024 vorgesehen, der eine normale Instruktionsposition D26, auch mit MNT, eine manuelle Instruktionsposition 1027, auch mit MMT, eine Rechnerhilfsposition 1028, auch mit MCP, sowie eine Bandsteuerposition 1030, auch mit MTR, bezeichnet. Nimmt der Schalter 1024 eine der beiden Positionen 1027 und 1028 ein, so liefert der Multiplex-Schalter MUXlO über den Schalter MUX 9 HilfsSteuersignale von der Hauptsteuertafel 1022 an den Speicher 628.
Nun sei zunächst die Arbeitsweise während des normalen Instruktionsbetriebes betrachtet, bei dem der Schalter 1024 sich in der Position 1026 befindet.
Wird die Anlage eingeschaltet und der Betriebswahlschalter von Arbeitsbetrieb auf Instruktionsbetrieb umgestellt, so werden die Positionsdaten En aus den Codierern mittelbar einem Speicher für wahlfreien Zugriff RAMl auf der Instruktionskarte 1032 zugeführt. Während dieses Instruktionsbetriebes wird der Schalter MUX 4 auf den Ausgang des Speichers RAMl geschaltet. Beim Einschalten der Stromversorgung oder beim Umlegen des Betriebswahlschalters in die Instruktionsposition (WTE) steuert der Schreib-Lese-Steuerkreis 1036 den Speicher RAMl derart, daß die Codiererdaten En darin aufgezeichnet werden.
Die in dem Speicher RAMl aufgezeichneten Daten, mit Dn bezeichnet, werden dem einen Eingang des Subtrahierers 1038 in
-81-
709819/0718
dem Vergleicher 626 zugeführt, dessen anderer Eingang die Codiererdaten En erhält. Der Vergleicher 626 vergleicht die Daten aus dem Speicher RAMl mit den Daten En und erzeugt hieraus über den Digital-Analog-Umsetzer 640 das Abweichungssignal EER. Auf diese Weise ist ein rückgekoppeltes Instruktionssystem geschaffen, welches bewirkt, daß die ursprünglich von den Codierern angegebene Position beibehalten und eine Abdrift in allen sechs Koordinaten vermieden wird, wie vorausgehend im einzelnen in Verbindung mit den Figuren 22, 23 und 24 beschrieben. Die Plus- und Minusrichtungssignale aus dem Vergleicher 626 finden Verwendung wie ia Arbeitsbetrieb für alle sechs Koordinaten. Wenn jedoch im Instruktionsbetrieb einer der Richtungsknöpfe gedrückt wird, wie z.B. einer der Knöpfe 658 und 660 für die Armschwenkbewegung, so wird ein Instruktions-Richtungssignal TP bzw. TN erzeugt, während die Plus- und Minusrichtungssignale unterbunden werden. Dementsprechend folgen die Bewegungen der betreffenden Koordinate den Steuersignalen aus der Instruktionseingabeeinheit, während es in den übrigen Koordinaten bei den in dem Speicher RAMl aufgezeichneten ursprünglichen Positionen bleibt.
Die Instruktions-Rchtungssignale dienen auch dazu, den Speicher RAMl während bestimmter Multiplex-Intervalle, wie z.B. G3 für die Armschwenkbewegung, in den Schreibbetrieb zu bringen, so daß der Inhalt dieses Speichers auf den letzten Stand gebracht wird. Wenn der betreffende Richtungsknopf losgelassen wird, so wird der Manipulatorarm daher in der betreffenden neuen Position festgehalten, wie im einzelnen bereits beschrieben. Beim Drücken des Aufzeichnungsknopfes werden die gegenwärtigen Ausgangssignale der Codierer zusammen mit den HilfsSteuersignalen von der Hauptsteuertafel 1022 über die I-Karte 1014 in den Speicher 628 eingeschrieben. Dieser Aufzeichnungsvorgang ist im wesentlichen der gleiche wie bei herkömmlichen instruierbaren Manipulatoren. Jedoch wird beim Drücken des Aufzeichnungsknopfes im vorliegenden Fall eine Relaisbank 1040 unter Strom gesetzt, um das Auf-
-82-
709819/0718
Zeichensignal CRR zu erzeugen, und dieses wird mittels der W-Karte 1042 mit dem Haupttaktsignal synchronisiert. Auf diese Weise werden das Speicherauslösesignal WCB, das Speicherbetriebssignal WHC, das Ädressenschrittsignal WSP und der Speicherspeisestrom VDD für alle Betriebsarten durch die gleichen Schaltkreise erzeugt.
Befindet sich der Schalter 1024 in der manuellen Instruktionsposition 1027, so ist auch ein Gruppeninstruktionsbetrieb möglich. Bei dieser Schalterstellung wird der Instruktionsablauf von einem eingebauten Prüfer 1020 gesteuert. Bei Drücken eines Gruppenknopfes (XM gedrückt) bewirkt die Hauptsperre auf der W-Karte 1042 eine synchrone Rückstellung, wodurch das Haupttaktsignal unterbunden wird. An dieser Stelle ist der Gruppenbetrieb der gleiche wie bei herkömmlichen Manipulatoren bei Gruppenauswahl, Gruppenlesen und Gruppenaufzeichnung. Eine zusätzliche Steuertafel 1044 enthält eine Serie von fünfzehn Schaltern 1026, die von Hand bedient werden können, um beliebige in den Multiplex-Intervallen Gl und G2 aufzuzeichnende Steuerbits einzugeben. Diese zusätzliche Steuertafel dient hauptsächlich zur manuellen Eingabe von Steuerbefehlen zum Sprung von einem Programmabschnitt zu einem anderen, wie noch beschrieben wird. Solche manuellen Steuerschalter sind erforderlich, da der Rechner 1000 dazu Verwendung findet, über seine Eingabeeinheit 1004 Sprungbefehle einzugeben, wie noch im einzelnen beschrieben wird. Die fünfzehn Schalter 1026 bringen die fünfzehn Bits in einer jeden Gruppe hervor und werden manuell eingestellt nach dem Gruppencode. Die Ausgangssignale dieser Schalter werden über Odergatter dem Ausgang En der Erfassungseinheit 1010 und von dort in der beschriebenen Weise dem Speicher 628 zugeführt.
Wie vorausgehend bereits allgemein beschrieben, kann der Rechner 1000 als Instruktionshilfe dienen und verarbeitet zu diesem Zweck Eingangsdaten von der Hauptsteuertafel zu
-83-
709819/U718
Ausgangsdaten, die in dem Speicher 628 aufgezeichnet werden. Diese Arbeitsweise findet dann statt, wenn der Schalter 1024 die sog. Rechnerposition 1028 einnimmt. Bei dieser Position kommen zwei Funktionsweisen in Betracht. Die erste ist der sog. Rechner-zum-Manipulator-Betrieb, wobei in dem Rechner Daten hervorgebracht werden, die sodann in dem Speicher 628 aufgezeichnet werden. In der zweiten, dem sog. Manipulatorzum Rechner-Betrieb werden dem Rechner 1000 aus der Manipulatorsteuerung Instruktionsdaten zugeführt.
Zunächst sei nun der Rechner-zum-Manipulator-Betrieb betrachtet. Dabei übernimmt der Rechner 1000 über die Schnittstelleneinrxchtungen 1000 die vollständige Steuerung des Speichers 628. Genauer gesagt liefern die Schnittstelleneinrxchtungen 1000 die gewünschten Adressen CAn an den Schalter MUXl in dem Adressenzähler 680. Der Schalter MUXl wird von dem Signal MING gesteuert und im Rechner-zum-Manipulator-Betrieb wirksam. Auf diese Weise wird von dem Schalter MUXl die gewünschte Adresse als Adresseneingang An an das Adressenregister 678 gegeben. Das Signal MING bringt des weiteren den Schalter MUX5 in die Position 2, wodurch der Gruppenabschnitt (3 niedriger LSD's) der Speicheradresse durch das Rechnerausgangssignal CGC (0-2) gesteuert wird. Das Ausgangssignal des Schalters MUX5 ist mit MGC (0-2) bezeichnet. Auf diese Weise erfolgt die Auswahl irgendeiner bestimmten Gruppe bei einer bestimmten Adresse in dem Speicher 628 unter Steuerung durch den Rechner 1000.
Das Signal MING steuert weiterhin über das Odergatter 1046 auf der Datenselektorkarte 1048 den Schalter MUX9 auf der I-Karte 1014 über das Ausgangssignal ZTT aus dem Odergatter 1046, Wenn bei dieser Betriebsweise der Rechner 1000 seine Rechnungen für eine Gruppe von Codiererdaten 01 - 06 beendet hat und die von dem Rechner dabei erhaltenen Daten als Steuersignale für den Arbeitsbetrieb in dem Speicher 628 aufgezeichnet werden sollen, werden diese Daten über die Schnittstelleneinrichtungen
-84-
70981 9/0718
1002 und die Leitungen CEn auf den Schalter MUX6 auf der Datenselektorkarte 1048 gegeben. Das Ausgangssignal IEn von dieser Karte gelangt an den anderen Eingang des Schalters MÜX9 auf der I-Karte 1014 und von dort zum Speicher 628.
Während des Rechner-zum-Manipulator-Betriebes bei der Instruktion treten die Haupttaktimpulse auf, und das System ist über den Speicher RAMl geschlossen. Daher vermag der Manipulatorarm bzw.- greifer während der Durchführung der vorgenannten Rechenvorgänge nicht abzudriften, und die errechneten Werte für eine jede Koordinate werden in de« Speicher 628 aufgezeichnet. Auch werden bei dieser Betriebsart das von der W-Karte stammende Speicherauslösesignal WCB und das Speicherbetriebssignal WMC durch die betreffenden Signale CCB und CMC von den Schnittstelleneinrichtungen 1002 ersetzt. Auf diese Weise gibt es bei der Übermittlung der vom Rechner errechneten Daten zu dem Speicher 628 kein Synchronisationsproblem. Genauer gesagt wird während des Rechner-am -Manipulator-Betriebes das CCB-Signal über den Inverter 1050 dem Multiplexer 1052 zugeführt, der durch das MING-Signal gesteuert wird, so daß während dieser Betriebsart das WCB-Signal an die Stelle des CCB-Signals tritt. Auch tritt das MING-Signal durch das Odergatter 1053 hindurch, um das WMC-Signal zu bilden.
Es ist anzumerken, daß jede Datengruppe für eine bestimmte Koordinate fünfzehn Informationsbits umfaßt, die als einziges Wort parallel übertragen werden, wobei dessen Adresse über die Leitungen CAn und CGC (0-2) bestimmt wurde. Diese D?tengruppen werden nacheinander über die Leitungen CEn gegeben während der Multiplex-Intervalle G3 - G8 im Anschluß an die Hilfssteuersignalgruppen 1 und 2. Da die gesamte Adresse vor der Datenübertragung bestimmt wird, kann gewünschtenfalls eine jede Datengruppe entsprechend einer bestimmten Koordinate in den Speicher gegeben werden.
-85-
7098 19/0718
Beim Manipulator-zum-Rechner-Betrieb in der Schalterstellung 1028 besteht keine Verbindung zwischen dem Rechner 1000 und dem Speicher 628. Bei dieser Betriebsart findet in der oben angegebenen Weise eine Datenübertragung von dem Speicher RAMl statt, um damit ein geschlossenes Instrukfrionssystem zu erhalten, so daß der Manipulatorarm bzw. -greifer nicht abdriftet. Da während dieser Betriebsart das Haupttaktsignal auftritt, müssen die Schnittstellenexnrichtungen 1002 mit diesem Taktsignal synchronisiert werden. Zu diesem Zweck werden den Schnittstellenexnrichtungen das Haupttaktsignal WRD und die Hilfssteuersignale des ersten Multiplex-Intervalls Gl zugeführt.
Während des Manipulator-zum-Rechner Betriebes werden die Hilfssteuersignale der Multiplexintervalle Gl und G2 nicht an den Rechner übertragen, sondern nur die Positionssignale aus den Codierern während der Multiplex-Intervalle G2 - G8. Das Intervall Gl findet Verwendung zur Synchronisierung, während das Intervall G2 dazu dient, die Adresse des gegenwärtigen Programmschrittes dem Rechner mitzuteilen, so daß dieser weiß, wohin er die für diesen Programmschritt errechneten Daten zu übermitteln hat.
Im Manipulator-zum-Rechner-Betrieb wird die Schrittadresse aus dem Adressenregister gewonnen, wobei dessen Ausgangssignal mit den MCP- und den G2-Signalen getastet wird, wie mit dem Block 1054 dargestellt. Das Ausgangssignal des betreffenden Gattersystems gelangt über nicht gezeigte ODER-Gatter an den Eingang En des Speichers RAMl. Diese Schrittadresse wird dem Schalter MUX4 und über die Leitungen Dn und die Schnittstellenexnrichtungen 1002 dem Rechner 1000 zugeführt. Da sich der Schalter 1024 während dieser Betriebsart in der Instruktionsstellung befindet, nimmt der Schalter MUX4 seine Position 2 ein und das Ausgangssignal des Rechners RAMl tritt auf den Leitungen Dn auf.
-86-
7098 19/0718
Diese Leitungen finden auch dazu Verwendung, den Schnittstelleneinrichtungen 1002 die Positionsdaten entsprechend der gegenwärtigen Position des Manipulatorarmes bzw.—Greifers zuzuführen.
Wird der Schalter 1024 in die Position 1030 umgelegt, so findet ein Bandspeicher 1056 dazu Verwendung, dem Schalter MUX6 auf der Selektorkarte 1048 von einem Band aufgezeichnete Positions- und Steuersignale zuzuführen. Das MTR-Signal, welches erzeugt wird, wenn sich der Schalter 1024 in der Position 1030 befindet, steuert den Schalter MUX6 so, daß diese vom Band gelesenen Daten über den Schalter MUX9 in den Speicher 628 gelangen. In diesem Fall kann der Bandspeicher 1056 dazu Verwendung finden, dem Manipulatorspeicher 628 Daten unmittelbar zuzuführen anstatt diese z.B. durch Instruktion von Hand einzugeben, wenn eine Anzahl von gleichen Montageanlagen während aufeinanderfolgender Arbeitszyklen gleiche Aufgaben durchführen sollen. Der Bandspeicher 1056 nimmt die Informationen von den Speicherausgangsleitungen MDn auf, die in dem Pufferregister 1058 gespeichert waren und von dort über die Leitungen TDn gelangten. Nachdem in dem Speicher 628 ein Programm aufgezeichnet wurde, kann es auf diese Weise während des Arbeitsbetriebes auf das Band übertragen werden. Befindet sich das Programm auf dem Band, so kann es dazu Verwendung finden, gleiche Montageanlagen in der gleichen Weise zu steuern.
Befindet sich der Schalter 1024 in der Position 1030, so wird das Haupttaktsignal der betreffenden Anlage unterbunden, während der Bandspeicher 1056 nun den Datenfluß in den und aus dem Speicher 628 steuert.
Nachfolgend sei nun die Arbeitsweise der in den Figuren 51 - 58 dargestellten Schaltmittel während des Arbeitsbetriebes betrachtet. Dazu sei nochmals betont, daß der Rechner 1000 während des Arbeitsbetriebes untätig ist. Dementsprechend funktioniert die Schaltungsanordnung bei dieser Betriebsart
-87-
7 0 9 8 19/0718
im wesentlichen genauso wie in den eingangs genannten Veröffentlichungen beschrieben. Jedoch können mit Hilfe der Schaltkreise auf einer Folgesteuerkarte 1060 drei verschiedene Arten von Adressensprüngen, nämlich JMP, JMP-R und JMS, erfolgen. Bei der Adressensprungart JMP springt die Manipulatorsteuerung lediglich zu einer neuen Adresse und fährt im übrigen mit ihrem programmierten Betrieb fort. Bei der Sprungart JMP-R springt die Steuerung zu einer neuen Adresse und fährt sodann fort, bis ein einzelnes sog. Ende-Unterprogramm-Bit (End/Sub.) erscheint, und kehrt sodann zu dem ursprünglichen Programm zurück. Bei der Sprungart JMS springt die Steuerung zu einer neuen Adresse, geht sodann um eine bestimmte Schrittzahl η weiter und kehrt darauf zu dem ursprünglichen Programmschritt (N + 1) zurück.
Vor Betrachtung dieser Adressensprungarten im einzelnen sei zunächst die Arbeitsweise im Arbeitsbetrieb bei einem ganz normalen Programmablauf ohne Sprünge beschrieben. Die Anfangsadresse des Programms wird mit dem Programmselektor 1062 festgelegt, und die nachfolgenden Adressen treten in Abhängigkeit von dem Programmschrittwechselsignal WSP auf. Das Ausgangssignal des Registers 1064 wird einem Register 1065 zugeführt, und das Ausgangssignal des Registers 1065 gelangt an einen +1- oder -1-Schritt-Addierer 1081. Ist das Register 1064 beim Schritt N angelangt, so erscheint infolgedessen am Ausgang des Addierers 1081 der Schritt N+l. Jedesmal wenn ein WSP-Signal auftritt, fährt das Register 1064 mittels des Odergatters 1067 um einen Schritt fort, doch bleibt das Register 1065 stehen wegen des Inverters 1069. Mit Verschwinden des WSP-Signals wird das Register 1065 bereitgesetzt, um mit dem Setzen des Registers 1064 weiterzuschreiten. Wenn eine nicht in die Reihe passende Adresse in das Adressenregister 678 eingegeben werden soll, so wird ein WAR-Signal erzeugt, welches die Register 1064 und 1065 über das Odergatter 1067 steuert und ebenso den Schalter MUX7, wodurch das Register 1064 anstatt durch das Ausgangssignal des Addierers 1061 durch ein externes Adressensignal An
-88-
709819/071 8
. 40/1 *
gesteuert wird. Dementsprechend setzt das WAR-Signal über die Adressenleitungen von An sowie die Schalter MUXl und MUX2 das Register 1064 bereit, wie durch den Programmselektor 1062 vorgeschrieben. Von den Ausgangssignalen ACn des Adressenregisters 678 wird der Speicher 628 gesteuert bis auf die drei geringsten binären Digits, die der Steuerung durch die Gruppenzählerausgangssignale GC (0-2) unterliegen. Falls erwünscht, können die Adressenregister-Ausgangssignale ACn durch einen Codeumsetzer ROM, dessen Ausgangssignal eine Adressenwiedergabeeinrichtung 1066 speist, in eine binärcodierte Dezimalzahl umgewandelt werden. Ein Fortschaltknopf 1068 auf einer Adressensteuertafel 1070 dient dazu, das Adressenregister vorwärts oder rückwärts fortzuschalten, je nach der Stellung des Schrittrichtungsschalters 1072. Durch Niederhalten des Fortschaltknopfes 1068 kann ein rasches Fortschalten von Schritt zu Schritt in jeder Richtung erreicht werden.
Während des Wiedergabebetriebes werden die am Ausgang des Speichers 628 erscheinenden Steuersignaldaten MDn dem Pufferregister 1058 zugeführt, von wo sie zu weiteren Schaltkreisen weitergeleitet werden. In dem Pufferregister 1058 werden die MDn-Daten während der Gl- und G2-Intervalle aufgeschlüsselt (latched up) und decodiert, um auf diese Weise die Hilfssteuersignalbits zu gewinnen. Der Rest der MDn-Daten wird in dem Register 1058 zwischengespeichert und als SDn-Daten der FoIgesteuerkarte 1060 zugeführt. Diese Daten gelangen auch zu der Prüf- und Wiedergabeeinheit 1020. Ebenso werden die TDn-Daten auf die zuvor beschriebene Weise in den Bandspeicher 1056 gebracht. Die puffergespeicherten Daten BDn und TDn gelangen auch in die lineare Interpolationseinheit 1074, die vorausgehend in Verbindung mit Fig. 25 im einzelnen beschrieben wurde. Diese liefert Daten über die Leitungen LDn zu der Instruktionskarte 1032. Beim Arbeitsbetrieb befindet sich der Schalter MUX4 in der Position 1 und damit gelangen die LDn-Daten über die Leitungen Dn zu dem Vergleicher 626. Bei Punktsteuerung während des Arbeitsbetriebes iaichen die puffergespeicherten Daten BDn und TDn aus der linearen
709819/0718 ~89~
Interpolationseinheit als LDn-D ten ohne Veränderung unter, wie beschrieben. Im linearen Interpolationsbetrieb jedoch, mit CP bezeichnet, werden die Datensignale BDn und CDn durch die lineare Interpolationseinheit umgewandelt, um die zuvor erwähnten künstlichen Inkrement-Steuersignale zu gewinnen, die dann als LDn-Daten dem Vergleicher 626 zugeführt werden. In diesem werden die Dn-D?ten mit den Codiererdaten En verglichen, um daraus auf die zuvor beschriebene Weise das Abweichungssignal EER und die Plus- und Minus-Richtungssignale zu gewinnen.
Während des Arbeitsbetriebes werden die Hilfssteuersignaldaten in dem Pufferregister 1058 während der Intervalle Sl* und S2· aufgeschlüsselt, die den letzten Abschnitten der Gl- und G2-Intervalle entsprechen. Diese Hilfssteuersignale sind tabellarisch in den Figuren 62 und 63 dargestellt. Sie können entweder vermittels der Schalter auf der Hauptstaiertafel 1022 oder vermittels des Rechners 1000 während des Instruktionsbetriebes programmiert werden. Betrachtet man die Figuren und 63 und nimmt man zunächst den Fall der Punktsteuerung PTP an, so finden die Bits 1 und 2 in dem Gl-Intervall dazu Verwendung, Genauigkeit 2- und Genauigkeit 3-Signale zu erzeugen, wie im einzelnen in der US-PS 3 661 051 ausgeführt. Das während des Gl-Intervalls auftretende Bit 3 bringt eine gerfage Geschwindigkeit für die Instruktion in allen sechs Koordinaten zum Ausdruck, das Bit 4 bezeichnet das Ende des Programms und die Bits 5-9 stellen OX-Signale dar. Die Bits 12 - 15 sind WX-Signale und die Bits 13 und 14 sind Verknüfungssteuersignale (clamp control signals). Die Bits 10 und 11 des Gl-Intervalls dienen zur Bestimmung der Betriebsart, d.h. Punktsteuerung PTP, lineare Interpolationssteuerung CP bzw. Sprungbetrieb JMS oder JMP, in welcher die Steuerung für einen bestimmten Programmschritt arbeiten soll. In dem G2-Intervall bleiben die Bits 1-9 unbelegt für die Verwendung in der Punktsteuerung, das Bit 10 ist ein weiteres
-90-
70981 9/071 8
OX-Signal, das Bit 11 ist ein Zeitverzögerungssignal, welches angibt, daß der nächsten Programmschritt erst nach Ablauf einer bestimmten Verzögerungszeit erfolgen soll, und die Bits 12 - 15 bilden weitere WX-Signale.
Beim linearen Interpolationsbetrieb XP steuern die Bits 1-3 des Gl-Intervalls die Einstellung des Zählers 742 so, daß dieser eine bestimmte Anzahl von Interpolationsintervallen innerhalb eines Programmschrittes liefert, wie zuvor beschrieben. Ist die durch die Bits 1-3 ausgedrückte Binärzahl 000, so liefert der Zähler 742 16 Interpolationsintervalle. Geben die Bits 1-3 die Zahl 001 an, so liefert er 32 Interpolationsintervalle usw. bis zu maximal 256 Interpolationsintervallen. Das Bit 4 ist ein Programmende-Signal für den linearen Interpolationsbetrieb, die Bits 5-15 sind die gleichen wie im Punktsteuerbetrieb nach obiger Beschreibung. Im G2-Intervall finden die Bits 1-6 Verwendung zur Einstellung des Zählers 672, der die Dauer eines jeden Multiplex-Intervalls bestimmt. Genauer gesagt steuern diese Bits 1 - 6 den Zhjller 672 derart, daß er minimal 64 bzw. maximal 127 Zählungen vornehmen kann, wie ebenfalls bereits beschrieben. Die Bits 7-9 des G2-Intervalls dienen zur Bestimmung der Teilerstufen in dem Frequenzteiler 744. Beträgt die durch die Bits 7-9 ausge-
4 drückte Zahl 000, so diviert der Frequenzteiler 744 durch 2 ,
beträgt die Zahl 100, so dividiert er durch 2 . Die übrigen Bits 10 - 15 finden, wie gesagt, wie bei der Punktsteuerung Verwendung.
Im JMS-Spungbetrieb geben die Bits 1-9 und 12 die Startadresse des Unterprogrammes, die Bits 10 und 11 den JMS-Betrieb und die Bits 13 - 15 die Unterprogrammnummer (=) an, die zwischen 1 und 7 betragen kann, für den Fall etwa, daß bis zu 7 Paletten während des Montageablaufs Verwendung finden. Die Bits 1-3 des G2-Intervalls in dem JMS-Betrieb bezeichnen die Anzahl der Schritte in dieser Betriebsart, während die
-91-
709819/0718
übrigen Bits im G2-Intervall reserviert bleiben.
Im JMP- und JMP-R-Betrieb bezeichnen die Bits 1-9 und 12 des Gl-Intervalls die Startadresse für den vorzunehmen Programmsprung und die Bits 10 und 11 die betreffende Betriebsart JMP bzw. JMP-R. Das Bit 1 an der Stelle 13 fcezeiehnet den JMP-R-Betrieb, bei welchem der Manipulatorarm bzw. -greifer beim Auftreten des Bits 1 an der Stelle 15 des G2-Intervalls (Ende-Unterprogramm-Bit) zu dem Programmschritt N + 1 zurückkehrt. Alle übrigen Bitstellen im G2-Intervall bleiben frei während des JMP- oder JMP-R-Betriebes.
Nachfolgend sei nun die Betriebsart JMP im einzelnen betrachtet. Die Startadresse für die Betriebsarten JMP, JMP-R und JMS kommt, wie gesagt, in den Bits 1-9 und 12 des Intervalls Gl zum Ausdruck. Diese Startadresse gelangt über die Leitungen BDn und CDn an eine Serie von Startadressensperren (starting address latches) 1080 in dem Adressenzähler 680 und wird darin festgehalten, wenn dieser ein JPS-Signal empfängt. Diese JPS-Signal wird durch einen JMP/JMS-Detektor 1082 erzeugt, der durch den während des Gl-Intervalls auftretenden Multipleximpuls gesteuert wird und auf der Leitung JPS ein Ausgangssignal hervorbringt, wenn die Bits 10 und 11 des Gl-Intervalls 1 und 0 oder 1 und 1 betragen. Desweiteren liefert der Detekter 1082 ein Signal auf der Leitung JMP, wenn die Bits 10 und des Gl-Intervalls 1 und 1 lauten, und ein Signal auf der Leitung JMS, wenn sie 1 und 0 lauten. Die Startadresse im JMP-Betrieb gelangt so zum Schaltkontakt der Position 1 des Schalters MUX3 in dem Adressenzähler 680. Erhält die Lese-/ Schreibsteuerung 1083 ein JMP- oder ein JMS-Signal von dem Detektor 1082, so liefert sie ein Signal über die Leitung 1084 an den Adressenrückstellschaltkreis 1085, der seinerseits ein Signal über die Leitung QAl an den Schalter MUX2 innerhalb des Adressenzählers 680 liefert, um den Schalter MUX2 in die Position 2 zu bringen, wodurch die Startadresse für den JMP-Betrieb von den Sperren 1080 über die Schalter MUX3, MUX2
-92-
70981 9/0718
und MUXl zum Schalter MUX7 gelangt. Der Schalter MUX7 wird durch das WAR-Signal in die Position 1 gebracht, wodurch die Startadresse in das Register 1064 und über die Leitung ACn zum Speicher 628 gelangt. Aufgrund dessen geht der Speicher 628 unmittelbar zu der neuen Startadresse über und fährt daraufhin von dieser aus im Programm fort. Beim JMP-Betrieb erfolgt, wie gesagt, keine Rückkehr zu einem früheren Programmschritt.
Beim JMP-R-Betrieb hingegen erfolgt eine Rückkehr zu dem Programmschritt N + 1, nachdem der Speicher 628 zu der neuen Startadresse gesprungen und sodann ein Ende-Unterprogramm-Bit (end/sub) 1 an der Stelle 15 des G2-Intervalls erhalten hat, wie dies in Fig. 63 zum Ausdruck kommt. Zu Beginn des JMP-R-Betriebes wird die am Ausgang des Addierers 1081 erscheinende Adresse des Programmschrittes N + 1 über die Leitungen LAn zu einem Speicher für wahlfreien Zugriff RAM2 gegeben. Der Speicher RAM2 hat 8 Adressenplätze, wobei der Adressenplatz 0 dazu dient, die Adresse des Programmschrittes N + 1 zu speichern, während die übrigen Adressenplätze die neuen Startadressen eines jeden von sieben aufeinanderfolgenden Schritten in dem JMS-Betrieb aufzunehmen vermögen, wie nachfolgend in Verbindung mit dem JMS-Betrieb noch genauer beschrieben wird. Das Signal auf der Leitung 1084 zu Beginn des JMP-R-Betriebes bringt den Schalter MUX8 auf der Folgesteuerkarte 1060 in die Position 1, wodurch die Adresse des Programmschrittes N + 1 in dem Adressenplatz 0 des Speichers RAM2 gespeichert wird. Wird ein Ende-Unterprogramm-Bit an der Bitstelle 15 des G2-Intervalls erhalten, welches angibt, daß der JMP-R-Betrieb abgeschlossen ist und der Speicher 628 zum Programmschritt N + 1 zurückkehren soll, so wird ein Signal E/S in die Lese-/ Schreibsteuerung 1083 eingegeben, die daraufhin über die Leitung 1086 den Speicher RAM2 dazu bringt^ die in dem Adressenplatz 0 gespeicherte Adresse zu lesen/über Leitungen JÄn dem Schaltkontakt 2 des Schalters MUX3 zuzuführen. Weiterhin
-93-
709819/0718
liefert die Lese-VSchreibsteuerung 1083 ein Signal über die Leitung QAD an den Schalter MUX3 durch welches dieser in die Position 2 gebracht wird. Die Adresse des Programmschrittes N + 1 gelangt dann über die Schalter MTJX3, MÜX2, MUXl und MUX7 zum Register 1064, wodurch der Speicher 628 veranlasst wird, zum Programmschritt N + 1 zurückzukehren und den Programmablauf dort fortzusetzen.
Der JMS-Betrieb findet Verwendung, wenn beim Arbeitsbetrieb der Anlage eine Anzahl Teile an verschiedenen Stellen von einer Palette aufgenommen werden müssen. Im Normalfall verlangt der JMS-Betrieb eine kleine Anzahl Schritte, die erforderlich sind, ein T^iI von der Palette aufzunehmen und in eine bestimmte Position zu bringen. Die gleiche Anzahl Schritte tritt in einem jeden Zyklus während des Arbeitsbetriebes auf, jedoch ändert sich dabei die Position des jeweils aufgenommenen Teiles. Erfindungsgemäß werden die für diese verschiedenen Positionen erforderlichen Steuersignale durch den Rechner 1000 errechnet und sodann während des Instruktionsbetriebes als Folge von Programmschritten in dem Speicher 628 aufgezeichnet, was als "Aufgabe Ill-Operation1* (Task III operation) bezeichnet werden soll. Sind jedesmal drei Schritte erforderlich, um alle Teile von einer Palette aufzunehmen, so werden die betreffenden Positionssteuerbefehle in dem Speicher 628 in drei aufeinanderfolgenden Gruppen gespeichert. Tritt ein Programmschritt auf, der nach einer solchen Gruppe im JMS-Betrieb verlangt, so wird die Startadresse der ersten Gruppe durch die Bits 1-9 und 12 des Gl-Intervalls eingegeben, wie in Verbindung mit Fig. 62 erläutert. Nimmt man an, daß die erste Gruppe in den Speicherplätzen 512, 513 und 514 gespeichert ist, so wird durch die Bits anstelle 1-9 und 12 des Gl-Intervalls die Startadresse für den Speicherplatz 512 ausgedrückt, worauf der Speicher 628 den dort gespeicherten Programmschritt ausspeichert. Sind alle drei dieser aufeinanderfolgenden Programmschritte ausgeführt, so muß der Speicher zum Hauptprogrammschritt N + 1 zurückkehren und das Hauptprogramm fortsetzen.
-94-
709819/0718
Im nächsten Montagezyklus jedoch in dem der Programmschritt N auftritt, welcher nach dem JMS-Betrieb verlangt, muß der Speicher zum Speicherplatz 515 springen anstatt zum Speicherplatz 512, dessen Adresse durch die Bits 1-9 und 12 im Gl-Intervall des N-ten Programmschrittes ausgedrückt wird, wobei angenommen wird, daß die Speicherplätze 515, 516 und 517 die passenden Positionssteuersignale für die Aufnahme des zweiten Teiles von der Palette enthalten. Dabei können bis zu sieben verschiedene Paletten an verschiedenen Orten Verwendung finden, indem der Speicher zu den entsprechenden Speicherplätzen zu springen vermag.
Die Anzahl der Programmschritte für das JMS-Unterprogramm (W-Steuerbefehle) für eine bestimmte Palette wird durch die Bits 1, 2 und 3 im G2-Intervall angegeben und einer W-Sperre (W latch) 1087 mitgeteilt, jedesmal wenn ein nach dem JMS-Betrieb verlangender Programmschritt auftritt. Ein Zähler 1088 zählt daraufhin die Anzahl der aufeinanderfolgenden Programmschritte, und wenn das Zählerausgangssignal der in der Sperre 1087 gespeicherten Zahl entspricht, liefert der Vergleicher 1089 ein Ausgangssignal, welches der Lese-/Schreib-Steuerung zugeführt wird und zugleich den Zähler 1088 und die Sperre 1087 rückstellt.
Nachfolgend sei nun die Art und Weise betrachtet, in welcher die Folgesteuerkarte 1060 arbeitet, um den Speicher 628 gemäß der ersten Startadresse zu der ersten Gruppe von Speicherplätzen für die Aufnahme des ersten Teiles von der Palette und in den darauffolgenden Arbeitsspielen zu den nachfolgenden Gruppen führt. Nimmt man wiederum an, daß jede Gruppe drei Programmschritte enthält und daß der erste Programmschritt sich in dem Speicherplatz 512 befindet, so wird zunächst die Startadresse 512 in der Startadressensperre 1080 gespeichert, wenn der Detektor ein JPS-Signal erzeugt. Ebenso wird die Adresse des Programmschritts N + 1 in dem Speicherplatz 0
-95-
70981 9/0718
2849123
des Speichers RAM2 gespeichert, wie zuvor beschrieben, und die Unterprogrammnummer der betreffenden Palette in Form der Bits 13, 14 und 15 des Gl-Intervalls wird in einer der Unterprogrammsperren 1090 festgehalten, von denen je eine für eine jede der sieben Paletten-Unterprogramme auftritt. Die gespeicherte Unterprogrammnummer wird in dem Decodierer 1091 decodiert und betätigt das betreffende der Flip-Flops 1092 zur Erkennung des ersten Durchganges, so daß dieses Flip-Flop entsprechend der betreffenden Unterprogrammnummer gesetzt wird, Mit dem Einschalten der Stromversorgung werden die Flip-Flops 1092 durch Impulse eines Oszillators 1093 rückgestellt, die einem Rück£ .,ellsteuerkreis 1094 zugeführt werden. Der Steuerkreis 1094 bewirkt ebenso die Rückstellung des Speichers RAM2 und der T,ese-/Schreib-Steuerung 1083. Desweiteren werden die Flip-Flops 1092 rückgestellt, wenn mit dem letzten Programmschritt des JMS-Unterprogramms bei der Aufnahme des letzten Teils von der betreffenden Palette das Ende-Unterprogramm-Bit auftritt, wie zuvor beschrieben.
Sobald die Startadresse 512 in den Sperren 1080 gespeichert und ein JPS-Signal aufgetreten ist, wird diese Startadresse dem Speicher 628 mitgeteilt, worauf die in den Speicherplätzen 512, 513 und 514 gespeicherten Programmschritte des JMS-Unterprogramms ausgeführt werden. Nach Einspeicherung des Programmschrittes N + 1 im Speicherplatz O des Speichers RAM2 wird der Schalter MUX8 in die Position 2 gebracht, wodurch der Speicher RAM2 nun durch die in einer der Sperren 1090 gespeicherte Unterprogrammzahl adressengesteuert wird. Handelt es sich beispielsweise um das JMS-Unterprogramm für die erste Palette, so wird der Speicher RAM2 so adressengesteuert, daß die Programmschritte mit den Adressen 512, 513 und 514 nacheinander in die Speicherplätze des Speichers RAM2 für die erste Palette eingeschrieben werden, wobei das Adressensignal für den Programmschritt N + 1, wie gesagt, über die Leitung LAn zu dem Speicher RAM2 gelangt. Dementsprechend wird nach Vollendung
-96-
70981 9/07Ί 8
der genanntai ersten drei Programmschritte, wenn der Vergleicher 1089 ein Ausgangssignal liefert, die Adresse des Programmschrittes 515, des ersten der nächsten Gruppe von JMS-Programmschritten in dem Speicherplatz des Speichers RAM2 gespeichert, der zuvor den ersten Programmschritt für die erste Palette aufgenommen hatte. Die Lese-/Schreibsteuerung 1083 reagiert darauf, indem sie den Schalter MUX8 in die Position 1 bringt und den Speicher RAM2 so steuert, daß aus dessen Speicherplatz 0 der Programmschritt N + 1 gelesen wird, der über die Leitungen JAn und den Schalter MUX3 zu dem Adressenregister 678 gelangt, wodurch der Speicher 628 zum Programmschritt N + 1 zurückkehrt. Da jedoch das betreffende der Flip-Flops 1092 gesetzt bleibt, wird das nächstemal, bei welchem der Programmschritt N auftritt und in den Sperren 1080 die Startadresse 512 gespeichert wird, diese Startadresse nicht an den Speicher 628 weitergegeben. Stattdessen liefert die Lese-/Schreibsteuerung 1083 auf das von dem gesetzten Flip-Flop stammende ß-Signal ein Signal über die Leitung QAD an den Schalter MUX3, womit die Adresse des Programmschrittes 515 aus dem betreffenden Speicherplatz des Speichers RAM2 über die JAn-Leitungen und die Schalter MUX3, MÜX2 und MUXl zu dem Adressenregister 678 gelangt.
Der vorgenannte Ablauf wiederholt sich während der nachfolgenden Arbeitsspiele, bis das letzte Teil von der betreffenden Palette augenommen wurde. Ist dies der Fall, so tritt an der letzten Stelle der betreffenden JMS-Gruppe, d.h. beim Bit 15 des G2-Intervalls die Ziffer 1 auf, die zur Erzeugung des Ende-Unterprogramm-Signals E/S führt, mit dem die Flip-Flops 1092 und die Lese-/Schreibsteuerung 1083 rückgestellt werden. Wird der Anlage eine neue Palette zugeführt, so wird die Startadresse hierfür wiederum durch die Sperren 1080 gesteuert, da noch keines der Flip-Flops 1092 gesetzt ist. In diesem Zusammenhang sei darauf hingewiesen, daß die Flip-Flops 1092 je eines für die sieben Unterprogramm-Nummern enthalten, die in den Sperren 1090 gespeichert werden können, so daß während
-97-
7098 19/07 18
desselben Programmablaufes Teile von sieben Paletten aufgenommen werden können.
Nachfolgend werden kurz die speziellen Aufgaben beschrieben, die der Rechner 1000 während des Instruktionsbetriebes zu erfüllen hat. Die erste dieser Aufgaben - Aufgabe I - besteht darin, alle erforderlichen Berechnungen durchzuführen, damit sich der Manipulatorgreifer in einer bestimmten Richtung eine bestimmte Strecke mit einer bestimmten Geschwindigkeit bewegt, wie vorausgehend in Verbindung mit den Figuren 31 - 49 beschrieben, und die Ergebnisse unter den richtigen Adressen in dem Speicher zu speichern. Dabei muß die Instruktionsperson den Manipulatorgreifer in eine gewünschte Position bringen und entsprechend der gewünschten Bewegungsrichtung ausrichten, während sich der Schalter 1024 in der normalen Instruktionspositxon 1026 befindet. Dazu muß sie über die Steuertafel 1044, wenn sich der Schalter 1024 in der Handinstruktionsposition 1027 befindet, die erforderlichen HilfsSteuersignale eingeben. Wenn jedoch nun der Rechner 1000 tätig werden soll, wird der Schalter 1024 in die sog. Rechnerposition 1028 gebracht.
Ein typischer Rechenvorgang für die Lösung der Aufgabe I ist nachfolgend in der dafür üblichen Form wiedergegeben.
-98-
7098 1 9/07 1 8
Aufgabe
(D (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) (40) (41) (42) (43) (44) (45) (46) (47) (48) (49) (50) (51)
TASK? 1 R WHEN ROBOT READY R ROBOT if.
B ":
C ": -3 S ": -2 VEL:
F OR C: C X FOR X BITS:
00000011V1 1WViVZVJ λ λΧλΧααΧλ α /ν X 123456123456 000-330000000 K FOR OTHER BITS: K KKTE I 2DP 1000 P PROCEED: P TYPE ADDRESS AND 6 READINGS
010000 022315 015653 022703 037170 040000 040644 1T^O: P
ROBOT OUTPUT 10S00 10CS1 10002 10003 10004 10005 30006 10007 12002 0 21553 15631 22545 3 6660 40074 40630
ROBOT OUTPUT 10010 10011 ΙΘ012 10013 10014 10015 10016 10017 12S02 0 21010 15613 22437 36353 40167 40616
ROBOT OUTPUT 10020 10221 10022 10023 10024 10025 10026 10027 •12SS2 0 26244 15630 22252 3 6043 43262 4G606
ROBOT OUTPUT 10033 1SO31 10032 10033 10034 10035 10036 10037
-12002 0 17500 15570 22117 35531 40354 40600
ROBOT OUTPUT 10040 10041 10042 10043 10044 10045 10246 10047 12602 0 16734 15563 21764 35223 40446 40575
ROBOT OUTPUT 10050 10051 10052 10G53 10054 10355 10S56 10057 12Ü02 0 16170 15561 21633 34715 40540 40573
ROBOT OUTPUT 10060 10061 10062 10063 10064 10065 10066 10067 12C02 0 15426 15563 21533 34410 42631 - 40572
■ROBOT OUTPUT 10270 10071 12072 10073 10074 1S075 10076 10077 12002 0 14664 15567 21354 341G3 43722 40574
ROBOT OUTPUT 1010S 10101 10102 10103 10104 10105 10106 10107 12002 1 14120 15577 21226 33575- 41013 40577
COMPLETE LAST STEP = TASK?
-99-
709819/0718
Wie ersichtlich, druckt der Rechner mit der Fernschreibeinheit 1004 zunächst aus "TASK?" (Zeile 1). Daraufhin tippt die Instruktionsperson in der gleichen Zeile die Nummer der betreffenden Aufgabe, also "1" ein. Dann schreibt der Rechner in Zeile 2 "R WHEN ROBOT READY" und wartet. Sodann bringt die Bedienungsperson den Manipulatorgreifer in die gewünschte Position und richtet ihn aus, wenn dies nicht bereits geschehen ist, und tippt sodann am Ende der Zeile 2 ein "R". Nun schreibt der Rechner in Zeile 3 "ROBOT =:" und wartet, bis die Bedienungsperson die Nummer desjenigen Manipulatorarmes eintippt, der gerade instruiert werden soll, in diesem Fall "1". Dies ist dann der Fall, wenn der Rechner zur Instruktion von zwei oder mehr Manipulatorarmen nebeneinander dient. Nun schreibt der Rechner in Zeile 4 "B":" und wartet, bis die Bedienungsperson die gewünschte Bewegungsstrecke in Richtung b eingibt, wie vorausgehend in Verbindung mit Fig. 29 beschrieben. In dem gegebenen Beispiel soll in dieser Richtung keine Bewegung stattfinden, weshalb die Bedienungsperson am Ende von Zeile 4 "O" einschreibt. Auf ähnliche Weise werden von der Bedienungsperson die Zeilen 5 und 6 vervollständigt, welche die zurückzulegenden Wegstrecken in Richtung c sowie in b und c senkrechter Richtung (S) angeben. In dem dargestellten Fall wird in Richtung c eine Bewegung von -3 Zoll und in Richtung S eine solche -2 Zoll gewünscht. Dann schreibt der Rechner in Zeile 7 "VEL:" und wartet darauf, daß die Bedienungsperson die gewünschte Geschwindigkeit für die Bewegung einschreibt. In dem betrachteten Fall soll die Geschwindigkeit 120 Zoll/min betragen, was durch die eingeschriebene Zahl "120" zum Ausdruck gebracht wird.
Wie vorausgehend allgemein beschrieben, beruhen die anhand dr Figuren 31 - 49 erläuterten Berechnungen auf der Annahme, daß die drei äußeren Punkte 3, 5 und 6 sich miteinander translatorisch bewegen. Mit dieser Annahme können naturgemäß bei einer Bewegung über eine größere Strecke beträchtliche Fehler in die Berechnungen eingeführt werden. Daher unterteilt der Rechner 1000
-100-
70981 9/07 18
die gewünschte Strecke zunächst in kleine Bewegungsinkremente in der gewünschten Richtung und führt separate Berechnungen für die sechs Koordinaten der Endpunkte dieser Inkremente durch, die nacheinander durchlaufen werden sollen. Diese Inkremente können größer oder kleiner sein, je nach der gewünschten Genauigkeit, mit welcher die Bewegung erfolgen soll. Zu diesem Zweck schreibt der Rechner in Zeile 8 "F OR C:" und wartet darauf, daß die Instruktionsperson danach "F" oder MC'f einschreibt, je nachdem ob die Unterteilung in die Inkremente fein (fine) oder grob (coarse) sein soll. In dem betrachteten Fall schreibt die Instruktionsperson am Ende der Zeile 8 "C".
Dann schreibt der Rechner in Zeile 9 "X FOR X BITS:" und wartet. Möchte die Instruktionsperson irgendwelche der zusätzlichen Steuersignale der Intervalle Gl und G2 verändern, d.h. neue solche Steuersignale manuell eingeben, so schreibt sie am Ende der Zeile 9 11X", anderenfalls "CR" (£arrige return). In dem gewählten Beispiel schreibt die Instruktionsperson "X", worauf der Rechner mit den Zeilen 10, 11 und 12 antwortet. Diese Zeilen bezeichnen in vertikaler Aufeinanderfolge die sechs OX- und sechs WX-Signale. Dann tippt die Instruktionsperson in Zeile 13 den gewünschten Wert für jedes OX- und WX-Signal ein. In dem gewählten Beispiel wird für alle Signale "0" eingeschrieben, was bedeutet, daß für den betreffenden Programmschritt keine OX- und WX-Signale erforderlich sind. Dann schreibt der Rechner in Zeile 14 "K for other bits:" und wartet. Nun kann die Instruktionsperson durch Einschreiben von "K" am Ende der Zeile 14 zum Ausdruck bringen, daß sie andere Bits verändern möchte. Der Rechner schreibt dann die Zeilen 15 und 16 und wartet darauf, daß die Instruktionsperson die Zeile 17 ausfüllt. In dem gegebenen Beispiel soll die Verknpfung Kl programmiert werden, was durch Einschreiben von "1" unter "Kl" bzw. von "0" unter den drei übrigen Spalten zum Ausdruck gebracht wird.
-101-
70981 9/0718
Nun hat der Rechner 1000 alle für die Ausführung der Aufgabe I erforderlichen Informationen, worauf er in Zeile 18 schreibt "P proceed:" und sodann wartet. Wenn dann der Rechner mit seiner Rechenarbeit beginnen soll und die dabei anfallenden Ergebnisse in dem Speicher 628 aufgezeichnet werden können, schreibt die Instruktionsperson am Ende der Zeile 18 "P" ein. Jedoch erscheinen in dem betrachteten Beispiel in den Zeilen 19 und 20 noch die gegenwärtigen Adressen- und Positionswerte, die dem Rechner über die Leitungen Dn normalerweise ohne Ausdrucken übermittelt werden. Dabei erscheinen alle Adressen- und Positionswerte im Oktal-Code, von dem jedes Digit in eine dreistellige Binärzahl umwandelbar ist nach folgendem Schema:
Oktal-Digit Binärzahl
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Im vorliegenden F?>11 wird durch die Oktalcode-Zahl 010000 in Zeile 20 die Adresse 512 für die Speicherung der ersten errechneten Position angegeben, während die sechs gegenwärtigen Positionswerte aus den Codierern durch die sechs darauffolgenden Oktalcodezahlen dargestellt werden. In den Zeilen 21-48 sind die darauffolgend berechneten Bewegungsinkremente ausgedruckt, die unter aufeinanderfolgenden Adressen in dem Speicher 628 gespeichert werden, wobei wiederum anzumerken wird, daß diese Zeilen während eines Instruktionsvorganges normalerweise nicht ausgedruckt werden. Die Speicherung dieser Positionswerte in dem Speicher 628 wird dadurch erreicht, daß die Adressensignale für eine Gruppe errechneter Werte über die Leitungen CAn und
-102-
7 09819/0718
die Schalter MUXl und MUX7 dem Register 1064 in dem Adressenregister 678 zugeführt werden. Dieses liefert auch geeignete Gruppenadressen über die Leitungen CGC (0-2) und den Schalter MUX5zur Steuerung der Gruppenadressierung in dem Speicher 628 anstelle des Gruppenzählers 674. Die errechneten Positionswerte werden über die Schnittstelleneinrichtungen 1002, die Leitungen CEn, die Schalter MUX6 und MUX9 dem Speicher 628 zugeleitet. In Zeile 23 sind die Adressen für die acht Multiplex-Intervalle Gl - G8 des Programmschrittes 512 in Oktalcode-Zahlen ausgedruckt, während Zeile 24 die Steuerbefehle für ein jedes dieser Intervalle wiedergibt. Der Steuerbefehl 12002 für das Gl-Intervall wird im Binärcode zu 001 010 000 000 010, welcher Ausdruck in umgekljürter Reihenfolge gelesen werden muß, wie in den Figuren 62 und 63 zum Ausdruck kommt. Dieser Befehl bewirkt ein Genauigkeit-3-Signal (Acc. 3 signal) beim Bit 2, ein CP-Signal beim Bit 11 (welches angibt, daß dieser Programmschritt im linearen Interpolationsbetrieb zu erfolgen hat) und ein Kl-Verknüpfungs-Signal beim Bit entsprechend der durch die Instruktionsperson in Zeile 17 eingetippten Information. Im G2-Intervall in Zeile 24 treten keine Befehlsdigits auf, und die sechs darauffolgenden Oktalzahlen stellen die errechneten Positionswerte dar, die in dem Speicher 628 auf die oben beschriebene Weise aufgezeichnet werden. Die Zeilen 25, 26 und 27 betreffen die nächste vom Rechner 1000 errechneten Positionswerte, wobei die zusätzlichen Steuersignale die gleichen geblieben sind. Jedoch ist die Adresse des sechsten Programmschrittes 513, wie in Zeile 26 angegeben. In der gleichen Weise zeigen die Zeilen 28 - 48 sieben weitere Gruppen von errechneten und unter aufeinanderfolgenden Adressen in dem Speicher aufgezeichneten Positionswerten. Nach Vollendung dieser Rechenarbeit schreibt der Rechner in Zeile 49 "complete" und Zeile 50 gibt die letzte Adresse, d.h. 520, im Dezimalcode wieder, woran die Instruktionsperson erkennt, wieviele Programmschritte der Rechner errechnet hat.
-103-
70S81 9/0718
Nach Durchführung dieser Berechnungen und Abspeicherung derselben im Speicher 628 wartet der Rechner auf die nächste Aufgabe, was er in Zeile 51 zum Ausdruck bringt. FbIIs gewünscht, kann die Instruktionsperson nun auf der Hauptsteuertafel den Betriebswahlschalter umlegen und die soeben errechneten und aufgezeichneten Programmschritte kontrollieren, indem sie die davon gesteuerten Bewegungen des Manipulatorarmes und -greifer beobachtet.
Indessen kann der Rechner während des Instruktionsbetriebes auch für eine andere Arbeit, die Aufgabe II, Verwendung finden. In diesem Fall werden die beiden Endpositionen einer gewünschten Bahn des Manipulatorarmes bzw. -greifers in den Rechner eingegeben, der dann die dafür erforderlichen Geschwindigkeitssteuerkonstanten zu berechnen und in den Gl- und G2-Intervallen des betreffenden Programmschrittes in den Speicher einzugeben hat, so daß der Endeffektor (Punkt 6/Fig. 29) zwischen diesen Punkten eine stetige Bewegung vollführt. Eine solche Programmierarbeit ist besonders vorteilhaft für Nahtschweißungen oder dergl., wobei der Endeffektor, d.h. der Lichtbogen, sich entlang einer gekrümmten oder sinusförmigen Bahn bewegen muß. Bei entsprechenden früheren Anordnungen, wie sie z.B. in der US-PS 3 885 295 beschrieben sind, musste die Instruktionsperson den Manipulator exakt in kleinen Intervallen instruieren, um im Arbeitsbetrieb eine halbwegs konstante Geschwindigkeit zu erzielen. Die dazu erforderlichen Messungen brachten naturgemäß gewisse Ungenauigkeiten mit sich bei der Festlegung der einzelnen Intervalle, für die Programmschritte aufzuzeichnen waren, was sich im Arbeitsbetrieb in entsprechenden Veränderungen der Bewegungsgeschwindigkeit des Manipulatorgreifers bzw. des davon gehaltenen Werkzeugs äußerte.
Bei der Aufgabe II nach vorliegender Erfindung errechnet der Rechner 1000 die Strecke /\ S zwischen den beiden gewünschten Endpunkten und sodann die Geschwindigkeitskonstanten, die erforderlich sind, um diese Strecke mit einer bestimmten Geschwindigkeit zu durchfahrenο Demgemäß braucht die Instruktions-
-104-
709819/071 8
person den Manipulatorgreifer nicht in eine Anzahl dicht beieinanderliegender Positionen zu bringen, sodern lediglich in die beiden Endpositionen der gewünschten Bahn und die gewünschte Geschwindigkeit in den Rechner einzugeben. Hierdurch wird die Instruktionsarbeit für die Programmierung gekrümmter Bahnen außerordentlich erleichtert, da die Eingabe dichter beieinanderliegender Positionen nur noch bei verhältnismäßig scharfen Kurven erforderlich ist und zudem nicht auf die Einhaltung genau gleicher Abstände dieser Punkte zu achten ist. Der Rechner bestimmt seinerseits die Konstanten für die korrekten Geschwindigkeiten in den einzelnen Koordinaten und bewirkt deren Aufzeichnung in dem Programmspeicher, so daß im Arbeitsbetrieb eine fortlaufende Bewegung mit der gewünschten Geschwindigkeit erfolgt. .......
Ein typischer Rechenablauf für die Aufgabe II ist nachfolgend wiedergegeben:
Aufgabe II
(1) task? 2 ;
(2) R WHEN READY R · ί
(3) ROBOT //: 1 · · i
(4) TYPE ADDRESS AND 6 READINGS :
(5) 000730 022315 015653 022703 037170 040000 040644 ', \
(6) P PROCEED: P
(7) MOVE ROBOTj R VJKEN READY R
(8) T FOR TOOL OFFSET: T
(9) OFFSET B: 9.75
(10) OFFSET C: -1
(11) OFFSET S: .5 . (1.2) VEL: 120
(13) X FOR X BITS: X
(14) 0 00203UUWVVJVJ
(15) XXXXXXXXXXXX
(16) 123456123456
(17) 0000000D0000
(18) K FOR OTHER BITS: K
(19) KKTE
(20) 12DP
(21) 1100 . .
(22) P PROCEED: P . ' -
(23) TYPE ADDRESS AND 6 READINGS
(24) 000730 006222 016100 017770 030276 042021 040726
(25) P PROCEED: P .
(26) ROBOT OUTPUT
(27) 730 731 732 733 734 735 736 737 ι
(28) 32004 110 6222 16100 17770 30276 42021 40726
(29) COMPLETE ·
(30) LAST STEP = 59
(31) TASK?
709819/0718
Bei dem Rechenvorgang nach Aufgabe II bringt die Instruktionsperson den Manipulatorgreifer zunächst in die erste Endposition und schreibt dann mittels der Fernschreibeinrichtung 1004 am Ende von Zeile 2 "R" ein sowie in Zeile 3 die Nummer des betreffenden Manipulatorarmes, also "1". Zur Erläuterung sind in obigem Ausdruck sodann die Adressen und die Positionswerte für die erste Endposition ausgedruckt, obgleich die Zeilen 4 und 5 normalerweise nicht ausgedruckt würden. Nach Aufnahme dieser Dpten druckt der Rechner in Zeile 7 "MOVE ROBOT R WHEN READY" und wartet sodann. Die Instruktionsperson nimmt nun die Eingabeinheit 656 auf und bewegt damit den Greifer in die andere Endposition der gewünschten Bahn. Nachdem dies geschehen ist, wird dies dem Rechner angezeigt durch Eintippen von "R" am Ende der Zeile 7. Die betreffenden Werte erscheinen schließlich in Zeile 24. Zunächst schreibt der Rechner jedoch in Zeile 8 "T FOR TOOL OFFSET:" und wartet. Ist der Endeffektor - Punkt 6 - gegenüber den vorbestimmten Werten von b, c und s versetzt, wie dies z.B. bei Verwendung von Lichtbogenschweißelektroden der Fall ist, so werden die Versetzungskonstanten an den Enden der Zeilen 9, 10 und 11 eingeschrieben, nachdem zunächst in Zeile 8 "T" angefügt wurde. Darauf schreibt die Instruktionsperson die gewünschte Geschwindigkeit zwischen den beiden Endpositionen ein, in dem vorliegenden Beispiel 120 Zoll/min. Auch kann sie in den Zeilen 13 - 21 auf die bereits geschilderte Weise OX-, WX- und weitere zusätzliche Steuersignalbits für die Gl- und G2-Intervalle eingeben.
Nachdem der Rechner die Positionswerte für die gewünschten Endpositionen erhalten hat, berechnet er zunächst A S, d.h. die zwischen diesen beiden Positionen zurückzulegende Wegstrecke, indem er zunächst die Positionswerte in cartesische Koordinaten umrechnet gemäß Gleichungen (19), (20) und (21) und hieraus AS nach der Formel
-106-
709819/0 718
gewinnt. Nach der Bestimmung von S ermittelt der Rechner die Anajzhl der erforderlichen Interpolationsintervalle nach folgender Tabelle:
.AS (Zoll) Anzahl der Interpolations Codeza
intervalle
0,1 - 0,2 16 000
0,2 - 0,4 32 001
0,4 - 0,8 64 010
0,8 - 1,6 128 011
1,6 - 3,2 256 100
Dann wandelt der Rechner die Codezahl um, so daß sie mit den Bits 1,2 und 3 im Gl-Intervall aufgezeichnet werden kann, wie dies vorausgehend in Verbindung mit Fig. 62 beschrieben wurde. Darauf ermittelt der Rechner die Gesamtzeit für die Bewegung zwischen den beiden Endpositionen, indem er ZlS durch die Geschwindigkeit dividiert und die dafür erforderliche Zahl von Teilerstufen in dem Frequenzteiler 744 bestimmt, der die errechnete Gesamtzeit nach folgender Tabelle unterteilt:
Gesamtzeit (yusec) 6250 Teilerstufen Codezahl
3125 - 12500 24 000
6250 - 25000 25 001
12500 - 50000 26 010
25000 - 100000 27 011
50000 - 28 100
Nun codiert der Rechner die gewählte Zahl von Teilerstufen für die Aufzeichnung unter den Bits 7, 8 und 9 im G2-Intervall, wie zuvor in Verbindung mit Fig. 63 geschildert. Nimmt man an,daß die Gesamtzeit 7027,us beträgt, so ermittelt der Rechner hierzu 2 Teilerstufen. Da jedoch mit der Anzahl der Teilerstufen die
-107-
709819/0718
erforderliche Teilung nur angenähert werden kann, wie mit der obigen Tabelle zum Ausdruck kommt, errechnet der Rechner sodann die korrekte Zählfrequenz für den programmierbaren Zähler 672, damit das aus dem Oszillator stammende Taktsignal um genau die richtige Zahl dividiert wird, um die erforderliche Gesamtzeit zu ergeben. Diese Zhälfrequenz wird vom Rechner für die Aufzeichnung als Bits 1-6 des Gl-Intervalls codiert.
Der oben wiedergegebene Ausdruck für die Aufgabe II gibt in Zeile 28 die Steuersignaldaten für die Intervalle Gl und G2 an,sowie die sechs Positionswerte für den Punkt z. Diese Positionswerte sind die gleichen wie die in Zeile 24 angegebenen, die, wie gesagt, die Positionswerte der gewünschten Endposition wiedrgibt. Die Adresse der Daten in Zeile 28 sind in Zeile 27 angegeben und sind die gleichen wie diejenigen der Daten für die erste in den Rechner eingegebene Endposition, die in Zeile 5 erscheinen. Aus der ersten in Zeile 28 angegebenen Oktalzahl für das Gl-Intervall, "32004" wird die fünfzehnstellige Binärzahl 011-010-000-000-100. Wird diese Zahl entsprechend den Bits 1-15 des Gl-Intervalls (Fig. 62) von rechts nach links gelesen, so sieht man, daß die Bits 1-3 die Zahl 32 angeben als Anzahl der Interpolationsintervalle. Die Oktalzahl für das G2-Intervall "00110" in Zeile 28 wird zu der fünfzehnstelligen Binärzahl 000-000-001-001-000. Liest man die Bits 1-6 derselben von rechts nach links, so resultiert daraus die Zählfrequenz 72 für den Zähler 672, wozu daran erinnert sei, daß dieser Zähler eine minimale Zählfrequenz von 64 hat, die zu der Zahl mit den Bits 1-6 ausgedrückten Binärzahl 0001 hinzuaddiert wird, um 72 zu ergeben. Die in den Bits 7-9 beim Lesen von rechts nach links enthaltene Zahl drückt die Anzahl der Teilerstufen für den Frequenzteiler 744 aus, nämlich in dem gegebenen Beispiel 2 .
-108-
70981 9/071 8
Desweiteren kann der. Rechner 1000 erfindungsgemäß dazu dienen, die Positionswerte und Geschwindigkeitssteuerkonstanten für den Manipulatorarm bzw. -greifer zu ermitteln, wenn dieser verschiedene Teile von einer Palette aufzunehmen hat, auf der sich diese Teile in verschiedenen Positionen befinden. Diese Arbeit sei als Aufgabe III bezeichnet. Soll der Manipulatorgreifer entsprechend programmiert werden, aufeinanderfolgend Teile von der Palette 58 in Fig. 3 aufzunehmen, so ist es erforderlich, ihn so zu programmieren, daß die Greiferdrehachse über einem jeden der Teile senkrecht zu der Palette steht. Dann muß sich der Greifer längs einer geraden Linie in eine Position begeben, in welcher er das Teil aufnehmen kann, und sodann zunächst entlang der gleichen Linie in umgekehrter Richtung. Da die Palette 58 schräg steht, verläuft diese Linie nicht parallel zu irgend einer der Koordinatenachsen.
Für die Bewegung in Richtung auf das von der Palette aufzunehmende Teil und zurück kann die Arbeitsweise nach Aufgabe I Verwendung finden, wonach die Bewegung längs einer Achse, wie z.B. b, erfolgt. Um jedoch die Instruktion des Manipulators für die aufeinanderfolgende Aufnahme verschiedener Teile von der gleichen Palette während aufeinanderfolgender Arbeitsspiele zu erleichtern, ist die Arbeitsweise nach Aufgabe III so angelegt, daß damit nacheinander alle erforderlichen Endpositionen des Greifers für die Aufnahme der aufeinanderfolgenden Teile von der Palette vorprogrammiert werden können. Zu diesem Zweck werden in den Rechner 1000 die Koordinatenwerte für die Ebene der Palette, die gewünschte Richtung, die erforderliche Wegstrecke und die gewünschte Bewegungsgeschwindigkeit in der jeweiligen Richtung sowie die Anzahl der verschiedenen Positionen auf der Palette eingegeben. Der Rechner führt dann die notwendigen Berechnungen durch für die Aufnahme eines jeden Teiles und bewirkt die Aufzeichnung der errechneten Werte inform aufeinanderfolgender Programmschritte in dem Speicher 628 auf die zuvor beschriebene Weise.
-109-
709819/0718
Im einzelnen führt die Instruktionsperson den Manipulatorgreifer zunächst in eine Position über einem der aufzunehmenden Teile an einer Ecke der Palette 58, so beispielsweise über den Teil 58a (Fig. 3) und sodann herab in eine Position, wo die Greiferfinder dieses Teil von der Palette aufzunehmen vermögen. Diese Abwärtsbewegung kann nach der Arbeitsweise gemäß Aufgabe I pogrammiert werden. Die betreffende Endposition wird dem Rechner zugeführt. Daraufhin wird der Greifer positioniert für die Aufnahme eines Teiles 58b in einer anderen Ecke der Palette, und nachdem auch die hierzu gehörigen Daten dem Rechner zugeführt wurden, wird der Greifer in die erforderliche Position für die Aufnahme des Teiles 58c in einer dritten Ecke der Palette gebracht, deren Daten ebenfalls dem Rechner zugeführt werden. Nach Eingabe dieser Daten für die Aufnahme der Teile 58a, 58b und 58c erhält der Rechner alle erforderlichen Daten zur Errechnung der Ebene der Palette 58. Zusätzlich ist der Rechner durch die Eingabe der Daten für die obere und untere Endposition der Bewegung in Richtung auf das Teil 58a darüber informiert, wie die betreffenden Bewegungen für die Aufnahme aller übrigen Teile von der Palette zu erfolgen haben. Sodann werden die Anzahl der von der Palette aufzunehmenden Teile sowie deren gegenseitiger Abstand in den Rechner eingegeben, der daraus alle notwendigen Zwischenpositionen des Greifers für die Aufnahme sämtlicher Teile von der Palette während aufeinanderfolgender Arbeitsspiele errechnet.
Ein typischer Arbeitsablauf nach Aufgabe III ist nachfolgend wiedergegeben:
-110-
7098 19/0718
Aufgabe III
(2) (3) (4) (5) (6) (7) (8) (9) (10) (H) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25) (26) (27) (28) (29) (30) (31) (32) (33) (34) (35) (36) (37) (38) (39) • (40) . (41) (42) (43) (44)
TAS-K? 3 ROBOT ·#: OFFSET B: 8.75 OFFSET C:
OFFSET S: VEL:
X FOR X BITS: X 000003WWWWWW XXXXXXXXXXXX 123456123456 1000000'£0000 K FOR OTHER BITS: K KKTE 12DP 2000 START ADDRESS:
SUB ,f:
W:
N-MAX:
H-MAX:
R WHEW RQBOT READY R TYPE ADDRESS AND 6 READINGS 0.00770 020537 032773 050413 P PROCEED: P R WHEN ROBOT READY R TYPE ADDRESS AND 6 READINGS 00077Θ 017146 032345 047744 P PROCEED: P R WHEM ROBOT' READY R f TYPE ADDRESS AND 6 READINGS' 000770 317146 632347 -047744 P PROCEED: P R WHEN ROBOT READY R TYPE ADDRESS AND 6 READINGS 000770 017775 031212/1347574 035436 040000 037747 035436 040000 037772 040726 040000 037E12 035402 040000 040011
.P PROCEED: P
ROBOT OUTPUT "·
770 771 772 773 774 .775 776 777
25000 2 0 0 0.0. 0.0 ROBOT OUTPUT
10000 -16001 1BB02 10003 10004 10B05 10006 10007
2.0 0 20537 32773 50413 35436 4ßß00 37747 ROBOT OUTPUT
10010 1Ö011 10012 10013 10014 10015 10016 10017 12002 70 17146 32345 47744 35436 40B00 37772
-111-
709819/0718
(45) ROBOT OUTPUT
(46) 10020 10021 10022 10023 10024 10025 10026
(47) 20 0 20563 32751 50410 36531
(48) ROBOT OUTPUT
(49) 10030 10031 10032 10033 10034 10035 10036
(50) 12002 70 17171 32323 47741 36531
(51) ROBOT OUTPUT
(52) 10040 10041 10042 10043 10044'10045 10046
(53) 20 0 20563 32752 50411 37627
(54) ROBOT OUTPUT
(55) 10050 10051 10052 10053 10054 10055 10056
(56) 12002 70 17171 32324 47741 37627
(57) ROBOT OUTPUT
(58) 10060; 10061 10062 10063 10064 10065 10066'
(59) 20 0 20536 32776 50414 40726
(60) ROBOT OUTPUT
(61) 10070 10071 10072 10073 10074 10075 10076
(62) 12002 70 17145 32350 47745 40726
(63) ROBOT OUTPUT
(64) 10100 101Cl 10102 10103 10104 10105 10106
(65) 20 0 21501 31545 50160 35402
(66) ROBOT OUTPUT
(67) 1011ü 10111 10112 10113 10114 10115 10116
(68) 12Ö02 70 20033 31130 47502 35402
(69) ROBOT OUTPUT
(7°) 18123 10121 10122 10123 10124 10125 10126 ("7D 20 0 ?.1S?.A 31523 50155 3 6520
(72) ROBOT OUTPUT
(73) 10130 10131 10132 10133 10134 10135 10136
(74) 12322 70 20056 31106 47476 .36520
(75) ROBOT OUTPUT
(76) 10140 10141 10142 10143 10144 10145 10146
(77) 20 0 21525 31524 50155 37641
(78) ROBOT OUTPUT
(79) 10150 10151 10152 10153 10154 10155 10156 (8Q) 12002 70 20056 31107 47476 37641
(81) ROBOT OUTPUT
(82) 10163 10161 10162 10163 10164 10165 10166
(83) 20 0 21501 31550 50160 40763
(84) ROBOT OUTPUT
(85) 1017Θ 13171 10172 10173 10174 13175 10176
(86) 12002 /10070 20033 31133 4750 1 40763.
(87) LAST SR ADDRESS = 52 7
(88) COMPLETE
(89) LAST STEP - 63 ""
(90) TASK?
10027
40000-
37502
10037
40000
37525
10047
40000
37234
10057
40000
37257
10067
40000
3 67 67
10077
40000
37012
10107
37760
40005
131 17
37760
40030
I Q 121
3 774 3
10137
40000
37 543
3 7542
10147
40000
37243
10157
40030
3 72 67
10167
40000
36770
10177
40036
36765
709819/0718
-112-
Am Ende der Zeilen 2, 3 und 4 gibt die Instruktionsperson Versetzungen in den Achsen b und c sowie der dazu senkrechten Achse s (Fig. 29) ein, derart, daß die vom Rechner den Berechnungen zugrundegelegten Koordinatenwerte denjenigen Punkt bezeichnen, an dem das Teil die Palette berührt, anstatt etwa desjenigen Punktes, an welchem das Teil vom Greifer tatsächlich ergriffen wird. Diese Information muß durch Messungen an einem der Teile auf einer jeden Palette ermittelt werden. Die Zeilen 5-14 in dem obigen Ausdruck der Aufgabe III entsprechen im wesentlichen denjenigen von Aufgabe II.jedoch sei darauf hingewiesen, daß für die Verknüpfung Nr. 1 (Kl) in Zeile 14 "2" eingegeben wird. Dies wird vom Rechner dahin interpretiert, daß der erste Schritt einer jeden JMS-Schrittfolge im Punktbetrieb erfolgen soll, während die übrigen Schritte dieser Folge mit linearer Interpolation abgewickelt werden sollen.
Die Instruktionsperson wählt eine geeignete Startadresse, die genügend weit entfernt von dem übrigen Programm ist, um in dem Speicher allen denjenigen aufeinanderfolgenden Programmschritten Platz zu bieten , die für die Aufnahme aller Teile von der Palette erforderlich sind, und tippt diese Adresse am Ende von Zeile 15 ein. Dann wird am Ende von Zeile 16 die Nummer der Palette bzw. des dazugehörigen Unterprogrammes eingeschrieben, in diesem Felle "2". Am Ende von Zoile 17 wird die Anzahl der Programmschritte in einer jeden JMS-Folge eingegeben, nämlich "2", was bedeutet, daß eine jede JMS-Folge nur zwei Schritte umfasst. Diese Information wird mit den Bits 1-3 des G2-Intervalls aufgezeichnet, wie in Zusammenhang mit Fig. 63 beschrieben. Nun schreibt die Instruktionsperson in Zeile 18 die Anzahl der Teile ein, die auf der Palette nebeneinander in Horizontalrichtung auftreten, im gewählten Beispiel "4", sowie in Zeile 19 die Anzahl der untereinander auftretenden Teile, nämlich "2".
-113-
7098 1 9/07 1 S
- Die sechs Positionswerte für die Position des Greifers über dem Teil in der linken oberen Ecke der Palette sind in Zeile 22 ausgedruckt, diejenigen für die Stellung des Greifers beim Ergreifen dieses Teiles in Zeile 26, diejenigen für die Greiferstellung zum Ergreifen des Teiles in der rechten oberen Ecke in Zeile 30 und diejenigen für die Ergreifung des Teiles in der linken unteren Ecke in Zeile 34. Keine dieser Zeilen würde jedoch normalerweise ausgedruckt werden, wenn die Instruktionsperson den Greifer nacheinander in die betreffenden Positionen führt, wie dies die Zeilen 20, 24, 26 und 28 verlangen.
Nun macht der Rechner die erforderlichen Berechnungen für die Bestimmung aller Positionen des Greifers zur aufeinanderfolgendai Aufnahme aller acht Teile und bewirkt die Aufzeichnung der errechneten Positionswerte als Steuerdaten in dem Speicher 628 beginnend mit Schritt 512, wie aus den Zeilen 40 - 86 des obigen Ausdruckes ersichtlich ist. Zu Beginn des Instruktionsvorganges gemäß Aufgabe III befand sich der Greifer in der Position des ^ Schrittes 770 (Oktal), jedoch werden die errechneten Werte beginnend mit Schritt 512 (Oktal 10000) gespeichert, wie Zeile 40 erkennen lässt. In diesem Zusammenhang sei.darauf hingewiesen, daß die errechneten Werte für die Position zur Erfassung des viertel Teiles, die in Zeile 62 angegeben sind, recht genau denjenigen aus Zeile 30 entsprechen, welche die Position angeben, in welche die Instruktionsperson den Greifer zur Aufnahme des rechten oberen Teiles 58b geführt hat. Auch entsprechen die errechneten W.'-rrte für die Aufnahme des fünften Teiles aus Zeile 68 recht genau denjenigen aus Zeile 34. Indessen werden in dem Speicher 628 stets die errechneten W-rte anstelle von teils errechneten und teils tatsächlichen Werten aufgezeichnet. Lediglich für den ersten Schritt der ersten Schrittfolge werden die tatsächlichen, ursprünglich eingegebenen Positionswerte verwendet, weshalb die Zeilen 22 und 41 identische Positionswerte zeigen.
-114-
70981 9/0718
Die in Zeile 86 erscheinende Oktalzahl für das G2-Intervall wird in die Binärzahl-101-000-000-111-000 umgewandelt. Von rechts gelesen erscheint darin als Bit 15 die Ziffer "1", welche das Ende der JMS-Folge für die Entladung der Palette bezeichnet. Wie zuvor beschrieben, findet dieses end/sub-Bit während des Arbeitsbetriebes dazu Verwendung, auf der Folgesteuerkarte 1060 (Fig. 55) die Flip-Flops 1092 und die Lese-/Schreibsteuerung 1083 rückzustellen, um die Steuerung bereitzusetzen für die Aufnahme von Teilen von einer neuen Palette.
Hinsichtlich der Arbeitsweise nach den vorstehend beschriebenen Aufgaben I, II und III sei angemerkt, daß die Fernschreibeeinheit 1004 sich an irgend einem bequemliegenden Ort befinden kann, so daß die Instruktionsperson während des Instruktionsbetriebes mit der einen Hand den Manipulatorgreifer dirigieren und mit der anderen den Rechner 1000 bedienen kann. Sind die einzelnen im Instruktionsbetrieb eingestellten bzw. errechneten Programmpunkte in dem Speicher 628 einmal aufgezeichnet, so erfolgt die Bewegung des Manipulatorarmes bzw, -greifers in dem nachfolgenden Arbeitsbetrieb, wie gesagt, ohne Zuhilfenahme des Rechners.
Während bei der Anordnung nach den Figuren 51 - 58 der Rechner 1000 als Hilfsmittel für die Erledigung verschiedener Aufgaben während des Instruktionsbetriebes dient, macht eine jede solche Anlage einen eigenen Programmspeicher 628 erforderlich. Gemäß vorteilhafter Weiterbildung der Erfindung können jedoch mehrere derartige Anlagen mit Hilfe eines einzigen Programmspeichers gemeinsam arbeiten. Eine derartige Anordnung ist in den Figuren 29, 60 und 61 gezeigt. Hiernach findet ein Kleinrechner 1000a als Steuerrechner in Verbindung mit einem Plattenspeicher 1100 großer Kapazität dazu Verwendung, insgesamt acht Minipulatorarme, bezeichnet mit den Nummern 1-8, zu bedienen. Der gemeinsame große Speicher 1100 ersetzt den zuvor anhand der Figuren 51 beschriebenen individuellen Speicher 628. Der Kleinrechner 1000a bewirkt die Synchronisation bzw. Koordinierung bei der Zuführung
-115-
70981 9/07 1 Β
der gespeicherten digitalen Steuersignale zu dem Steuerungsteil eines jeden Manipulatorarmes 1-8, wobei je zwei dieser Manipulatorarme für die durchzuführenden Montagearbeiten gemeinsam Verwendung finden. Zusätzlich kann der Kleinrechner 1000a im Instruktionsbetrieb die in Verbindung mit den Figuren 51 - 58, 62 und 83 beschriebenen Rechenarbeiten durchführen. Der Plattenspeicher 1100 steht in Verbindung mit einer Schnittstelleneinrichtung 1110, die bei Anforderung von Plattenspeicherdaten durch irgend eine der vier Schnittstelleneinheiten 1102, 1104, 1106 und 1108 in Verbindung mit einer jeden Einzelanlage tätig wird, um die verlangten Daten dem Rechner 1000a zuzuführen.
In Fig. 60 ist eine der Schnittstelleneinheiten, 1102, genauer dargestellt. Diese Einheit erhält Takt- und Steuersignale von der Zentraleinheit in dem Rechner 1000a über die Leitungen 1116. Zusätzlich tritt zwischen dem Rechner 1000a und den Schnittstelleneinheiten eine sechszehnadrige Sammelleitung 1120 auf.
Die Schnittstelleneinheit 1102 steht mit dem eigenen Speicher und den Steuerschaltkreisen einer jeden zwei Manipulatorarme aufweisenden Einzelanlage in Verbindung, wie sie in Fig. 61 gezeigt sind. Nach dieser Figur finden zwei Instruktionsregister, RAM A und RAM B, je eines für einen jeden Manipulatorarm, anstelle des vorausgehend beschriebenen Speichers 628 Verwendung. Vorzugsweise weisen die Register RAM A und RAM B nur Speicherplatz für ein oder zwei Schritte (bei acht Wörtern pro Schritt) auf, da sie lediglich als Pufferregister für die Zeit fungieren, während welcher die andere Einheit den Manipulatorarm steuert. Ein Flip-Flop 1122 bestimmt welches der Register RAM A und RAM B während des Arbeitsbetriebes gerade zum Einsatz kommt, und dient ferner dazu, den nächsten Befehl in das oder aus dem anderen Register abzurufen.
-116-
70981 9/0718
■A\\.
Aus der Schnittstelleneinheit 1102 treffen die Daten in rascher Aufeinanderfolge ein, Alle Steuersignale für die Speicherung des nächsten Befehls entstammen der Schnittstelleneinheit 1102. Eine auf drei Leitungen eintreffende Gruppenadresse leitet jedes Unterwort auf den korrekten Speicherplatz in den Registern RAM A und RAM B. Ein Speicherstartbefehl löst zeitkorrekte Schreibbefehle aus, und auf ähnliche Weise gelangt das erforderliche Modus-Signal an das Register RAM A bzw. RAM B, welches als Pufferspeicher für den nächsten Schrittbefehl fungiert. Der Plattenspeicher 1100 hat zwei Arbeitsgeschwindigkeiten, je nachdem ob er während des Instruktionsbetriebes neue Daten aus der betreffenden Schnittstelleneinheit erhält oder die Anlage im Arbeitsbetrieb bedient. Alle Zeitsignale treten synchron auf und entstammen dem Haupttaktsignal des Rechners.
Während des Instruktionsbetriebes findet nur das Register RAM A Verwendung und dient dazu, Daten zu sammeln, wenn in den sechs Bewegungskoordinaten neue Positionen auftreten. Wenn einer der Richtungsknöpfe für eine der Achsen gedrückt wird, die in Fig.61 mit P.B.3-P.B.8 bezeichnet ist, so wird die entsprechende Bewegung in dem Register RAM A aufgezeichnet. Wenn dieser Knopf freigegeben wird, hält das Register RAM A die betreffenden Daten aktiv fest, während die vorausgehend beschriebene, rückgekoppelte Instruktionsanordnung dazu Verwendung findet, den Positionsbefehl festzuhalten. Die Aufzeichnung in dem Plattenspeicher 1100 findet erst dann statt, wenn der Hauptaufzeichenknopf der Anlage gedrückt wird, wobei die Schnittstelleneinheit das Register RAM A dazu bringt, das gesamte gespeicherte Wort in etwa 15 ,usec zu lesen. Unmittelbar anschließend übernimmt die in der Manipulatorsteuerung nach Fig. 61 auftretende lokale Steuerung den betreffenden Manipulatorarm und hält ihn in der zuletzt festgelegten Position, wie vorausgehend in Verbindung mit den Figuren 22 und 23 beschrieben. Das 15 ,usec-Intervall, welches für die Übertragung des in dem Register RAM A
-117-
70981 9/0718
gespeicherten Wortes in den Plattenspeicher 1100 zur Verfügung steht, berührt nicht die Servo-Folgefähigkeit in einer jeden Koordinate, und daher wird die gespeicherte Position beibehalten.
Die Wirkungsweise der Schnittstelleneinheit 1102 bei der Bedienung zweier Manipulatorarme besteht darin, zwischen dem Rechner 1000a und den lokalen Steuerungen (Fig. 61) eines jeden Manipulatorarmes als Interprettierorgan zu fungieren. Wenn z.B. der Manipulatorarm 1 den nächsten Steuerbefehl erwartet, so wird auf der Leitung 1124 ein Abfragesignal an den Rechner gesandt. Ist der Rechner bereit zu antworten, so überträgt er über die löadrige Sammelleitung 1118 das nächste Datenwort. Die Schnittstelleneinheit leitet dieses Datenwort zusammen mit den notwendigen Steuer- und Zeitsignalen der Steuerung des Manipulatorarmes 1 zu, wo der betreffende Befehl in dem Register RAM A oder RAM B gespeichert wird, je nachdem, in welchem Schaltzustand sich das Flip-Flop 1122 befindet. Die Kommunikation zwischen dem Rechner und der lokalen Steuerung eines jeden Manipulatorarmes erfolgt unter der Steuerung der Schnittstelleneinheit und zwar mit der Bitfrequenz von nominal 1,6 ,usec eines normalen Kleinrechners.
Eine ähnliche Rolle spielt die Schnittstelleneinheit 1102, wenn Daten aus einer der lokalen Steuerungen eines jeden Manipulatorarmes während des Instruktionsbetriebes in dem Plattenspeicher aufgezeichnet werden sollen. Wenn beispielsweise eine Aufzeichnung von Daten seitens des Manipulatorarmes 1 erfolgen soll, so werden diese Daten im Register RAM A untergebracht. Das Drücken des Aufzeichenknopfes teilt der Schnittstelleneinheit 1102 mit, daß vom Manipulatorarm 1 eine Datenübertragung an den Hauptspeicher 1100 stattfinden soll. Daraufhin sendet die Schnittstelleneinheit 1102 über die Leitungen 1124 eine Anfrage an den Rechner, die diesem mitteilt, daß seine Hilfe in Anspruch genommen werden soll. Der Rechner bestätigt diese Anfrage.
-118-
70981 9/071 8
Nun liefert die Schnittstelleneinheit die passenden Zeit- und * Steuersignale an die Steuerung des Manipulatorarmes 1, die zur Folge haben, daß der Inhalt des Registers RAM A über die Sammelleitung 1120 zum Zweck der Speicherung an den Rechner 1000a übertragen wird. Nach dieser Datenübertragung sorgt die lokale Steuerung des Manipulatorarmes dafür, daß dieser in der betreffenden Position verbleibt.
Spezielle Instruktionssignale dienen dazu, den Rechner 1000a über bestimmte Unterprogramme oder Aufgaben zu informieren, die während des Instruktionsbetriebes auszuführen sind, wie vorausgehend in Zusammenhang mit den Figuren 51 - 58 beschrieben. Dabei verdient angemerkt zu werden, daß die Instruktionshilfsfunktion des Rechners 1000a die geringste Priorität besitzt, da seine Zentraleinheit alle während des Arbeitsbetriebes von den übrigen Einzelanlagen laufend anfallenden Aufträge zu erfüllen hat. Wenn also im Betrieb des Rechners eine Verzögerung auftritt, so nur bei den außer der Reihe stattfindenden Arbeiten in Zusammenhang mit der Instruierung.
Der Rechner 1000a vermag ein 16Bit-Wort aufzunehmen, und kann dabei eine Speicherzykluszeit von l,6yusec (Kernspeicher), eine Additions-Subtraktions-Zeit von 3,2,usee, eine Divisionszeit von 16rusec (festverdrahtet) und eine Multiplikationszeit von 13,2/Usec (festverdrahtet) haben. Der Plattenspeicher 1100 kann jede beliebige Größe haben, wie sie für die Anzahl der erforderlichen Operationen seitens der Gesamtzahl der anschlossenen Einzelanlagen erforderlich ist. Selbst die kleinsten marktgängigen Plattenspeicher haben Speicherraum für eine Million Bits, was einer Speicherkapazität für etwa 15 Arbeitsminuten von acht Manipulatorarmes entspricht, wenn man annimmt, daß diese durchschnittlich 1 Sekunde für die Abwicklung eines Programmschrittes benötigen. In diesem Zusammenhang verdient angemarkt zu werden, daß, obgleich die Anschaffungskosten des Plattenspeichers 1100 hoch sind, dieser Speicher jedoch eine größere Zahl einzelner Programmspeicher in eins* jeden Einzelanlage
-119-
709819/0 7 18
ersetzt, die gewöhnlich als Magnetkern-Matrixspeicher ausgebildet und ebenfalls relativ teuer sind.
Betrachtet man nun die Arbeitsbelastung des Rechners 1000a während des Arbeitsbetriebes, so ist nur eine geringe Zeit dafür erforderlich, alle Aufträge seitens der acht Manipulatorarme zu erfüllen. Wenn beispielsweise dreißig /usec Rechnerzeit für die Abwicklung eines Routineauftrages zur Lieferung der nächsten Programmschrittdaten für einen Manipulatorarm benötigt werden, so erfordert die Bedienung von acht Manipulatorarmen insgesamt etwa 250 /Usec pro Programmschritt eines jeden. Da jedoch ein solcher Auftrag seitens eines Manipulatorarmes nur durchschnittlich etwa einmal pro Sekunde anfällt, verbleibt ein beträchtlicher Teil der Rechnerzeit für andere Aufgaben, wie z.B. für die beschriebene Hilfestellung bei der Instruierung der einzelnen Manipulatorarme .
Um Aufträge während des Arbeitsbetriebes in einer Zeit von 30/usec abzuwickeln, dient der Kernspeicher innerhalb des Kleinrechners 1000a als Quelle aufeinanderfolgender Befehle, wobei er als Puffer wirkt und während der zwischen dem Eingang solcher Aufträge liegenden Zeitintervalle Datenblöcke aus dem Plattenspeicher 1100 übernimmt. Auf diese Weise kann die durchschnittliche Zugriffszeit für Daten aus dem Plattenspeicher außer Betracht bleiben. Stattdessen kann der Kleinspeicher 1000a jedoch auch die eintreffenden Aufträge an den Plattenspeicher weiterleiten und umgekehrt, wobei dann freilich für jeden Auftrag zusätzliche acht msec in Rechnung gestellt werden müssen. Selbst bei einer solchen Anordnung jedoch verbleibt ausreichend Zeit, alle Aufträge von acht Manipulatorarmen während des Arbeitsbetriebes derselben auszuführen und danebenher noch zusätzliche Rechenvorgänge für den Instruktionsbetrieb abzuwickeln.
Wie vorausgehend bereits allgemein erörtert, ist der Rechner 1000 vorzugsweise ein solcher vom Typ Data General 32K bit core storage computer Model Nova 2/10. Die speziellen Programme
-120-
709819/071 8
die für diesen entwickelt wurden, um die oben beschriebenen Aufgaben zu erfüllen, sind in dem hier angeschlossenen "Appendix I" angegeben. In diesem Appendix erscheint das Haupt- oder Leitprogramm auf Seite 1. Das Unterprogramm CPC auf den Seiten 2-4 entspricht den Schritten gemäß oben beschriebener Aufgabe I. Das Unterprogramm ARC auf den Seiten 5-7 entspricht den Schritten gemäß Aufgabe II und das Unterprogramm PAL auf den Seiten 8-11 entspricht den Schritten gemäß Aufgabe III. Das auf Seite 12 wiedergegebene Unterprogramm CNG dient zur Veränderung von Manipulatorkonstanten, wie z.B. der L-nge der Elemente b und c oder irgendwelcher anderer konstanter Parameter, so daß Manipulatorarme verschiedener Abmessungen zum Einsatz kommen können. Dieses Unterprogramm findet auch Verwendung für den Ausdruck der gegenwärtigen Werte der Manipulatorkonstanten. Das auf Seite wiedergegebene Unterprogramm TEST dient während irgendwelcher Korrekturen zum Ausdrücken von Zwischenwerten während der Durchführung der oben beschriebenen Berechnungen zwecks Kontrolle.
Die Unterprogramme SRI - SR16 auf den Seiten 14 - 34 des Appendix I finden Anwendung an verschiedenen Stellen während der Ausführung der oben beschriebenen Aufgaben, wie in den jeweiligen Programmen angegeben. Die mit diesen Unterprogrammen ausgeführten Funktionen sind, wie üblich, in englisch angegeben und am linken Rand neben der betreffenden Angabe mit "CH gekennzeichnet. Das Unterprogramm CNTRL von Seite 35 und 36 des Appendix I dient dazu, die zusätzlichen Steuerbits während der Intervalle Gl und G2 zu bilden, wie vorausgehend in Verbindung mit den Figuren 62 und 63 beschrieben. Das Unterprogramm CNVI von Seite 37 dient dazu, die seitens der Codierer angezeigten Positionswerte in die entsprechenden Winkel umzuwandeln, während das Unterprogramm CNVO von Seite 38 dazu Verwendung findet, die errechneten neuen Winkel auf die beschriebene Weise in entsprechende Positionswerte überzuführen. Mit dem Unterprogramm RBTIN von Seite 39 lassen sich Daten aus den Codierern
709819/0718
26 43123
des Manipulatorarmes auf die beschriebene Weise über die Schnittstelleneinrichtungen 1002 in den Rechner 1000 eingeben. Das Unterprogramm RBTOT von Seite 40 findet Verwendung für die Datenübertragung von dem Rechner zu ds n korrekten Speicherplätzen des Speichers 628.
Alle der im Appendix I angegebenen Unterprogramme mit Ausnahme von Teilen der Unterprogramme von den Seiten 39 und 40 sind in der Programmsprache Fortran IV abgefaßt, wozu auf das "Fortran IV User's Manual No. 093-000053-08", herausgegeben von der Data General Corporation hingewiesen sei. Zu denjenigen Fällen, wo im Appendix I ein Standard-Unterprogramm verlangt wird, sei auf das "Run Time Library User's Manual Fortran IV No. 093-000068-05" der D^ta General Corporation verwiesen, worin die Standard-Unterprogramme für die Fortran IV-Bibliothek eines herkömmlichen Data General Nova 2/10-Rechners beschrieben sind.
Tzile der Unterprogramme von den Seiten 33 und 40 sind im Mnemonischen Code anstatt in Fortran IV abgefaßt und hierzu sei auf das Handbuch "Introduction to Programming the Nova Computers" No. 093-000067-01 der Data General Corporation hingewiesen, wo sich eine komplette Beschreibung der mnemonischen Code-Elemente findet, die auf den genannten Seiten im Appendix I Verwendung finden.
- Patentansprüche -
709819/071 8
Le e rs

Claims (7)

  1. Patentansprüche
    - 1.)Programmierbarer Manipulator mit mindestens einem Arm, Antrieben zur Bewegung dieses Armes bzw. des daran befindlichen Greifers oder dergl. in mehreren Koordinaten, einem Programmspeicher zur Speicherung digitaler Daten entsprechend einzelnen Positionen des Armes bzw. Greifers in den einzelnen Koordinaten, Codierern zur Erzeugung von Positionssignalen entsprechend der jeweiligen tatsächlichen Position in den einzelnen Koordinaten und Einspeichermitteln zur Einspeicherung solcher Positionssignale während eines sog. Instruktionsbetriebes in den Programmspeicher als Steuerdaten für den anschließenden Arbeitsbetrieb, dadurch g e k e η η zeichnet, daß zur Berechnung zusätzlicher, als Steuerdaten in dem Programmspeicher (628) aufzuzeichnender Positionsdaten entsprechend einer gewünschten neuen Position ein seitens der Codierer (z.B. 608, 610, 614) gespeister Rechner (1000) vorgesehen ist in Verbindung mit zugehörigen Einspeichermitteln (1002, 678).
  2. 2. Manipulator nach Anspruch 1, dadurch gekennzeichnet, daß der Programmspeicher (628) eine Mehrzahl Speicherplätze entsprechend den verschiedenen Positionen des Manipulatorarmes (50, 52) bzw. -greifers (70, 72) enthält, und daß die Positionssignale einerseits und die errechneten Positionsdaten andererseits in verschiedenen dieser Speicherplätze gespeichert werden.
    -2-
    70981 9/071 8
  3. 3. ManiTJUlator nach Anspruch 2, gekennzeichnet durch Schaltmittel (630, 646) zum Herauslesen der in den Speicherplätzen gespeicherten Informationen und entsprechenden Steuern des Manipulatorarmes bzw. -greifers während eines jeden Arbeitszyklus im Arbeitsbetrieb.
  4. 4. Manipulator nach Anspruch 3, dadurch gekennzeichnet, daß die Reihenfolge, in welcher die Informationen aus den einzelnen Speicherplätzen gelesen werden, von einer gewünschten Folge von Bewegungen des Manipulatorarmes bzw. -greifers zu neuen Positionen einschließlich der in dem Rechner (1000) errechneten zusätzlichen Positionen abhängt.
  5. 5. Manipulator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Positionssignale verschiedenen Winkelpositionen des Manipulatorarmes bzw. -greifers entsnrechen und daß der Rechner (1000) in der Lage ist, daraus cartesische Koordinaten für die jeweilige Position zu errechnen, bestimmte Inkremente zu den errechneten cartesischen Koordinaten entsprechend der gewünschten neuen Position hinzuzuaddieren, die so erhaltenen neuen cartesischen Koordinaten in neue Positionssignale entsprechend den einzelnen Bewegungskoordxnaten umzurechnen und diese neuen Positionssignale als die zusätzlichen Positionsdaten in den Programmspeicher (628) einzuspeichern.
  6. 6. Manipulator nach Anspruch 5, dadurch gekennzeichnet, daß der Rechner (1000) in der Lage ist, die cartesischen Koordinaten eines Punktes an oder in Verbindung mit dem Greifer (70, 72) des Manipulators zu berechnen, mit Inkrementen zu addieren und in die Bewegungskoordinaten zurückzutransformieren, die sodann gespeichert werden.
    —3—
    7 U y ö i 9 / U 7 I 8
  7. 7. Manipulator nach Anspruch 6, dadurch gekennzeichnet, daß der Greifer (70, 72) gegenüber dem Arm in mehreren Koordinaten beweglich ist und daß zu den cartesischen Koordinaten für die Greiferposition gleiche Inkremente hinzuaddiert werden, um auf diese Weise neue cartesische Koordinaten entsprechend einer translatorischen Bewegung des Greifers in die neue Position zu erhalten.
    8. Manipulator nach Anspruch 7, gekennzeichnet durch eine Positionssteuereinrichtung (656) zur Bewegung des Armes bzw. Greifers derart, daß der Greifer eine bestimmte Orientierung erfährt, und daß der Rechner seitens der Codierer gespeist wird, wenn der Greifer in die gewünschte Orientierung gebracht ist.
    9. Manipulator nach Anspruch 8, dadurch gekennzeichnet, daß die translatorische Bewegung des Greifers in Richtung seiner Orientierung oder senkrecht hierzu erfolgt.
    10. Manipulator nach einem der vorhergehenden Ansprüche, dadurch gekennze ichnet, daß er mehrere entsprechende Manipulatorarme (50, 52 bzw. 1 - 8/Fig. 59) aufweist, denen ein gemeinsamer Programmspeicher (1100) zugeordnet ist.
    11. Manipulator nach Anspruch 10, dadurch gekennzeichnet, daß den verschiedenen Manipulatorarmen ein gemeinsamer Rechner (lOOOi) zugeordnet ist, der in der Lage ist, die gespeicherten Rechendaten zu lesen und Steuermitteln (1102 1108 etc.) eines jeden Manipulatorarmes zuzuleiten, um die— sen bzw. dessen Greifer in die gewünschte neue Position zu führen.
    -4-
    703819/0718
    12. Manipulator nach einem der vorhergehenden Ansprüche mit einer um eine vertikale Achse drehbaren Plattform, einem um eine horizontale Achse gegenüber dieser Plattform schwenkbaren Oberarmteil, einem um eine zu der ersten horizontalen Achse parallele Achse am Ende des Oberarmteiles schwenkbaren Unterarmteil, einem um eine zu der Unterarmachse senkrechte Achse (Greiferbeugeachse) am Außenende des Unterarmteiles schwenkbaren Greifer oder dergl., der überdies um eine zu der letztgenannten Achse senkrechte Achse (Greiferdrehachse) drehbar ist, sowie Antriebsmitteln auf der Plattform für die Bewegung des Ober- und des Unterarmteiles um die betreffenden horizontalen Achsen, dadurch gekennzeichnet, daß die Antriebsmittel (232, 234) für die Greiferbewegungen mit dem Oberarmteil (84) mitbeweglich in dem Oberarmteil angeordnet sind.
    13. Manipulator nach Anspruch 12, dadurch gekennzeichnet, daß der Unterarmteil (90) an seinem Außenende einen um die Mittelachse des Unterarmteiles drehbaren Handwurzelteil (94) aufweist, der seinerseits an seinem Ende den Greifer (70, 72) trägt.
    14. Manipulator nach Anspruch 12 oder 13, dadurch gekennzeichnet, daß die Antriebsmittel für die betreffenden Bewegungen ("Grexferbewegungen") aus Motoren, vorzugsweise Hydraulikmotoren (z.B. 232, 234), bestehen, die dicht bei der Mittelachse des Oberarmteiles (84) angeordnet sind und deren Wellen im wesentlichen parallel zu dieser Mittelachse nach oben geführt sind.
    15. Manipulator nach Anspruch 14, dadurch gekennzeichnet, daß koaxial zu der horizontalen Achse (Ellbogenachse 92), um welche der Unterarmteil (90) gegenüber dem Oberarmteil (84) schwenkbar ist, voneinander unabhängige Kegelräder (328, 330, 332) angeordnet sind, die über weitere
    -5-
    709819/0718
    Kegelräder (z.B. 356, 358, 360) einerseits mit den Wellen der in dem Oberarmteil (84) befindlichen Motoren (232, 234), andererseits mit weiteren Wellen (368, 370, 372) in Verbindung stehen, die zu im bzv/. am Unterarmteil (90) angeordneten Getrieben (Fig. 17 bzw. 19) führen.
    16. Manipulator nach Anspruch 15, dadurch gekennzeichn e t, daß die Codierer (612, 614, 616) für die betreffenden Bewegungen ("Greiferbewegungen") über zusätzliche Kegelräder (622) mit den Kegelrädern (328, 330, 332) auf der Ellbogenachse (92) gekuppelt sind.
    17. Manipulator nach einem der Ansprüche 12 - 16, dadurch gekennzeichnet, daß die Antriebe der Plattform (80), des Oberarmteiles (84) und des Unterarmteiles (90) mindestens teilweise aus Kugelumlauf-Spindeltrieben (142, 194, 222) mit hydraulischem Rotationsantrieb bestehen.
    18. Manipulator nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Greifer oder dergl. (70, 72) pneumatisch betätigbar und, vorzugsweise auswechselbar, in einen Sockel (534) eingesetzt ist, über dem ihm Druckluft zuführbar ist.
    19. Manipulator nach Anspruch 18, dadurch gekennzeichnet, daß dem Sockel (534) die Druckluft von dem Unterarmteil (90) her über eine auf der Greiforbeugeachse (98) befindliche Durchflußkupplung (554) zuführbar ist.
    20. Manipulator nach Anspruch 13 und 20, dadurch gekennzeichnet, daß die Druckluft der Durchflußkupplung (554) über den drehbaren Handwurzelteil (94) zugeführt wird, der hierzu einen mit einem abgedichteten Ringkanal (416) des Unterarmteiles (90) in Verbindung stehenden Druckluftkanal (424) aufweist.
    -6-
    7098 19/07 1
    21. Manipulator nach einrm der vorhergehenden Ansprüche, dadurch gekennze ichnet, daß der Unterarmteil (90) an seinom Außenende ein Getriebe (410) trägt, welches dem Greifer (70, 72) eine Beuge- und eine Drehbewegung über Planetengetriebe vermittelt, und daß die Planetengetriebe eine seitwärts gefederte Achse (464, 524) aufvreison, womit die darauf gelagerten Zahnräder (466, 470; 526, 530) elastisch gegen die damit kämmenden Zahnkränze (468, 472; 528, 532) gedrückt werden.
    22. Manipulator nach Anspruch 21, dadurch gekennzeichnet, daß die auf die Achse (464, 524) der Planetengetriebe einwirkende Federkraft einer Mehrzahl von unter Vorspannung stehenden Tellerfedern (570) entstammt.
    23. Manipulator nach Anspruch 22, dadurch gekennzeichnet, daß dio Tellerfedern (570) in dem Maße vorgespannt sind, daß die davon ausgeübte Kraft im angrenzenden Dehnungsbereich im wesentlichen konstant bleibt.
    24. Manipulator nach einem der vorhergehenden Ansprüche mit einer Instruktionssteuereinrichtung zur Bewegung des Armes bzw. Greifers entlang einer gewünschten Bahn im Instruktionsbetrieb, gekennzeichnet durch/Register (z.B. 652) zur Speicherung des digitalcodierten Positionssignals während der Bewegung des Armes bzw. Greifers mittels der Instruktionssteuereinrichtung (655), in dem die bei einer jeden solchen Bewegung zuletzt eingegebenen Positionsdaten während solcher Zeiten innerhalb des Instruktionsbetrirbes festgehalten werden, in denen der Arm bzw. Greifer unbewegt bleibt, und durch eine Regeleinrichtung (772) zum Festhalten des Armes bzw. Greifers in der zuletzt angefahrenen Position unter Einschluß eines Vergleichors (626), dem die zulrtzt eingegebenen Positionsdaten aus dem Register (652) zusammen mit dem gegenwärtigen Positionssignal aus den Codierern (z.B. 610) zugeführt werden.
    -7-
    709819/0718
    25. Manipulator nach Anspruch 24, dadurch ge kennzeich-* net, daß die Instruktionssteuereinrichtung (656) je zwei Richtungsknöpf& (z.B. 658, 660) für eine jede Koordi- ' nate sowie eine davon gesteuerte Einrichtung (664) für die Bewegung des Armes bzw. Greifers sowie die Eingabe des betreffenden Positionssignals in das Register (652) aufweist.
    26. Manipulator nach Anspruch 24 oder 25, dadurch gekennzeichnet, daß für eine jede Koordinate ein eigenes Register (z.B. 652, 690, 696) vorgesehen ist, während der Vergl^icher (626) allen Koordinaten geraeinsam zugeordnet ist und die Daten von den einzelnen Registern zusammen mit dem Positionssignal von dem jeweiligen Codierer (z.B. 610, 608, 614) in aufeinanderfolgenden Multiplexintervallen (Gl - G8) empfängt.
    27. Manipulator nach Anspruch 26, gekennzeichnet durch eine Einrichtung (676) zur fortlaufenden Erzeugung von Multiplex-Impulsen, davon gesteuerte Einrichtungen (682, 684 etc.) zur aufeinanderfolgenden Hindurchleitung der Positionssignale aus den Codierern (610, 608 etc.) an einen ersten Eingang des gemeinsamen Vergleichers (626) und weitere von den Multipleximpulsen gesteuerte Schaltmittel (642, etc.) zur aufeinanderfolgenden Verbindung der betreffenden Register (652, 690 etc.) mit dem anderen Eingang des Vergleichers.
    28. Manipulator nach Anspruch 27, gekennzeichnet durch von den Multipleximpulsen (G3 - G8) gesteuerte Schaltmittel (644, 700 etc.) zur aufeinanderfolgenden Steuerung der Antriebe des Armes bzw. Greifers in den einzelnen Koordinaten für dessen Fixierung in der zuletzt angefahrenen Position.
    -8-
    0 3 8 19/0718
    -S-
    29. Manipulator nach einem der vorhergehenden Ansprüche mit Adressiermitteln für den Abruf der gesicherten Steuersignale aus dem Programmspeichor in einer vorgegebenen Taktfolge, gekennzeichnet durch ein in zumindest einem der Steuersignale auftretendes Hilfssteuersignal (VEL), Schaltkreise (726, 728, 730), die auf dieses Hilfssteuersignal hin ein der Differenz zwischen dem betreffenden Steuersignal und dem vorausgegangenen Steuersignal entsprechendes digitales Signal erzeugen, eine Teilerschaltung (740) zur Unterteilung dieses digitalen Signals in eine vorbestimmte Zahl einzelner Inkremente, eine Einrichtung (742, 738) zur Erzeugung einer Folge von künstlichen Steuersignalen mit gleichen Zeitabständen, deren Zahl derjenigen der Inkremente entspricht und die von den vorausgegangenen Steuersignalen um das jeweilige Inkrement abweichen, und eine Steuereinrichtung (626, 646) zur Bewegung des Manipulatorarmes bzw. -greifers mit im wesentlichen konstanter Geschwindigkeit in Abhängigkeit von den künstlichen Steuersignalen.
    30. Manipulator nach Anspruch 29, dadurch gekennzeichnet, daß das Teilverhältnis der Teilerschaltung (740) durch einen programmierbaren Zähler (742) steuerbar ist.
    31. Manipulator nach Anspruch 29 oder 30, gekennzeichnet durch einen Taktgenerator (670), einen diesen nachgeschalteten Frequenzteiler (744) und eine Einrichtung (742) zur Bestimmung der Zahl der Inkremente in Abhängigkeit von der Impulsfrequenz aus dem Frequenzteiler derart, daß sich die Anzahl der Inkremente nach der Einstellung des Frequenzteilers richtet.
    32. Manipulator nach Anspruch 31, dadurch gekennzeichnet, daß das das Hilfssteuersignal (VEL) enthaltende Steuersignal noch ein weiteres Hilfssteuersignal enthält, welches
    -9-
    70981 9/0718
    eine Einrichtung (722) zur Bestimmung des Teilverhältnisses , des Freauenzteilers (744) steuert.
    33. Manipulator nach Anspruch 32, gekennzeichnet durch Speichermittel (1000) zur vorübergehenden Speicherung der aus den Codierern (610 etc.) stammenden Positionssignale entsprechend zwei verschiedenen Positionen des Armes bzw. Greifers sowie digitaler Daten entsprechend der gewünschten Bahngeschwindigkeit des Armes bzw. Greifers zwischen diesen beiden Positionen, eine Einrichtung (1000) zur Gewinnung des weiteren Hilfssteuersignals aus den gespeicherten Signalen bzw. Daten und eine Einrichtung (678) zur Einspeicherung desselben in den Programmspeicher (628).
    34. Manipulator nach einem der Ansprüche 29 - 33, dadurch gekennzeichnet, daß die Steuereinrichtung (626, 646) eine Einrichtung (626) zur Erzeugung eines kontinuierlichen Abweichungssignals entsprechend der Differenz zwischen einem t der künstlichen Steuersignale und dem gegenwärtigen Positionssignal, in zwei Richtungen wirksame Servoventile (z.B. 646) * zur Steuerung der Bewegung des A.rmes bzw. Greifers mit im wesentlichen gleichbleibender Geschwindigkeit, eine Einrichtung (770, 772) zur Steuerung der Servoventile in Abhängigkeit von dem Abweichungssignal, eine Einrichtung (810) zur Erzeugung eines Richtungssignals mit einer dem Vorzeichen des Abweichungssignals entsprechenden Polarität und eine Einrichtung (788, 790) zur Bestimmung der Ansteuerrichtung der Servoventile in Abhängigkeit von dem Richtungssignal, im übrigen aber unabhängig von einem Vorzeichenwechsel des Abweichungssignals, enthält.
    35. Manipulator nach Anspruch 34, dadurch gekennzeichnet, daß zwischen die Einrichtung (626) zur Erzeugung des Abweichungssignals und die Servoventile (z.B. 646) ein Inverter (770) geschaltet ist, dessen Inverterfunktion von der
    4 Polarität des Abweichungssignals abhängig ist.
    -10-
    7098 19/0718
    36. Manipulator nach Anspruch 33 oder 34, dadurch gekennzeichnet, daß die Einrichtung (788, 790) zur Bestimmung der Richtung der Aussteuerung der Servoventile (z.B. 646) eine Einrichtung (820, 822) enthält, die sie nur bei Abwesenheit des Hilfssteuersignals (VEL) wirksam werden lässt.
    37. Manipulator nach einem der Ansprüche 29 - 36, dadurch gekennzeichnet, daß die Einrichtung (626) zur Erzeugung des Abweiehungssignals allen Koordinaten gemeinsam ist und die Positions- und Hilfssteuersxgnale (VEL) der einzelnen Koordinaten von einer Multiplexexnrichtung (676) zyklisch nacheinander zugeführt erhält.
    38. Manipulator nach einem der Ansprüche 29-37, gekennzeichnet durch eine Einrichtung (852, 854), welche den nächsten Programmschritt auf die Erzeugung der zusätzlichen Steuersignale hin aus dem Programmspeicher (628) abruft.
    39. Manipulator nach Anspruch 38, gekennzeichnet durch eine Einrichtung (874, 854), durch welche in Abwesenheit eines Hilfssteuersignals (VEL) der nächste Programmschritt dann aus dem Programmspeicher (628) abgerufen wird, wenn die durch den gegenwärtigen Programmschritt vorgeschriebene Bewegung in sämtlichen Koordinaten mit einer vorbestimmten Genauigkeit vollendet ist.
    40. Verfahren zur Programmierung des Manipulators nach einem der vorhergehenden Ansprüche?, dadurch gekennzeichnet, daß der Greifer oder dergl. zunächst in eine erste Position geführt und dabei in einer gewünschten Richtung ausgerichtet wird, daß die Positionssignale entsprechend dieser ersten Position in dem Programmspeicher gespeichert werden, daß aus den gespeicherten Positionssignalen digitale Positionsdaten entsprechend einer neuen Position in der gewünschten Richtung errechnet werden und daß die errechneten Positionsdaten
    -11-
    709819/0718
    zusätzlich in dem Programmspeicher gespeichert werden, um im Arbeitsbetrieb zusammen mit den gespeicherten Positionssignalen als Steuersignale Verwendung zu finden.
    41. Programmierverfahren nach Anspruch 40, wobei die Positionssignale digitale Signale entsprechend den Winkelpositionen des Manipulatorarmes bzw. -greifers in den verschiedenen Bewegungskoordinaten sind, dadurch gekennzeichnet, daß diese Winkelpositionssignale zunächst in cartesische Koordinatensignale umgerechnet werden, daß zu den cartesischen Koordinatensignalen des Greifers in der gewünschten Bewegungsrichtung gleiche Inkremente entsprechend einer neuen Position hinzuaddiert werden und daß die so erhaltenen cartesischen Koordinatendaten in digitale Winkelpositionsdaten rückgerechnet werden, die sodann gespeichert werden.
    42. Verfahren zur Programmierung des Manipulators nach einem der Ansprüche 1-39, wobei der Arm bzw. Greifer zunächst in eine erste Position geführt wird und die dabei auftretenden Positionssignale gespeichert werden, worauf er in eine zweite Position gebracht wird und die zugehörigen Positionssignale ebenfalls gespeichert werden, dadurch g e kennzeichnet, daß zwischen den Positionssignalen beider Positionen in dem Programmspeicher ein digitales Signal entsprechend einer gewünschten Geschwindigkeit gespeichert wird, mit welcher sich der Arm bzw. Greifer im Arbeitsbetrieb zwischen den beiden vorgegebenen Positionen bewegen soll, und daß aus den gespeicherten Positions- und Geschwindigkeitssignalen ein Geschwindigkeitssteuersignal errechnet und ebenfalls in dem Programmspeicher gespeichert wird, um im Arbeitsbetrieb des Manipulators zusammen mit den gespeicherten Positionssignalen für die Steuerung des Bewegungsablaufs Verwendung zu finden.
    -12-
    7 0 3 8 19/071
    43. Vorfahren zur Programmierung des Manipulators nach einem der Ansprüche 1-39 zum Be- oder Entladen von Paletten oder dergl., wobei der Greifer gegenüber einer solchen Palette in bestimmte Positionen gebracht wird und die betreffenden Positionssignale gespeichert werden, dadurch gekennzeichnet, daß zunächst digitale Daten en sprechend dem gegenseitigen Abstand der einzelnen Teile auf der Palette gewonnen und gespeichert werden, daß aus den gespeicherten Positionssignalen und den gespeicherten digitalen Daten zusätzliche digitale Positionsdaten entsprechend den Positionen weiterer Teile auf der Palette errechnet werden und daß auch die zusätzlichen Positionssignale in dem Programmspeicher-gespeichert werden, um im Arbeitsbetrieb des Manipulators zusammen mit den gespeicherten Positionssignalen als Steuersignale Verwendung zu finden.
    44. Programmierverfahren nach Anspruch 43, dadurch gekennzeichnet, daß die zunächst angefahrenen Positionen diejenigen der Teile an drei Ecken der Palette sind.
    45. Programmierverfahren nach Anspruch 43 oder 44, wobei für die Aufnahme bzw. Ablage eines jeden Teiles mehrere Programmschritte erforderlich sind, dadurch gekennzeichnet, daß die errechneten zusätzlichen Positionsdaten eine Gruppe digitaler Daten entsprechend der Position eines jeden der weiteren Teile auf der Palette enthalten.
    46. Programmierverfahren nach Anspruch 45, dadurch gekennzeichnet, daß die Gruppen digitaler Daten in aufeinanderfolgenden Speicherplätzen gespeichert werden und daß zusätzlich digitale Daten entsprechend der Anzahl der Programmschritte in einer jeden dieser Gruppen gespeichert werden.
    -13-
    7 09819/0718
    47. Programmierverfahren nach einem der Ansprüche 43 - 46, wobei der Greifer an den Teilen an einem Punkt außerhalb der Ebene der Palette angreift, dadurch gekennzeichnet, daß zusätzlich digitale Daten entsprechend der Versetzung des Greiferangriffspunktes gegenüber der Palettenebene gespeichert werden und daß die errechneten zusätzlichen Positionsdaten mit diesen gespeicherten Versetzungsdaten modifiziert werden.
    48. Programmierverfahren nach einom der Ansprüche 43 - 47, wobei mehrere verschiedenartige Paletten Verwendung finden, dadurch gekennz e i chne t, daß mit jeder Gruppe zusätzliche digitale Daten zur Identifizierung des jeweiligen Palettentyps gespeichert werden.
    49. Programmierverfahren nach ^inem der Ansprüche 43 - 48, dadurch ge k e η η ζ e i c h η e t, daß zusammen mit dem Programm eines jeden Palettentyps digitale Daten gespeichert werden, welche das letzte von einer jeden Palette aufzunehmende bzw. darauf abzulegende Teil bezeichnen.
    7 09819/071
DE2649123A 1975-10-28 1976-10-28 Programmierbarer Manipulator Expired DE2649123C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/625,932 US4163183A (en) 1975-10-28 1975-10-28 Programmable automatic assembly system

Publications (2)

Publication Number Publication Date
DE2649123A1 true DE2649123A1 (de) 1977-05-12
DE2649123C2 DE2649123C2 (de) 1986-07-24

Family

ID=24508237

Family Applications (2)

Application Number Title Priority Date Filing Date
DE2660912A Expired DE2660912C2 (de) 1975-10-28 1976-10-28 Programmsteuerung für einen Manipulator
DE2649123A Expired DE2649123C2 (de) 1975-10-28 1976-10-28 Programmierbarer Manipulator

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE2660912A Expired DE2660912C2 (de) 1975-10-28 1976-10-28 Programmsteuerung für einen Manipulator

Country Status (8)

Country Link
US (1) US4163183A (de)
JP (1) JPS5284669A (de)
CA (1) CA1084966A (de)
DE (2) DE2660912C2 (de)
FR (4) FR2357339A1 (de)
GB (4) GB1561256A (de)
IT (1) IT1075776B (de)
SE (6) SE446071B (de)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0001686A1 (de) * 1977-10-20 1979-05-02 Imperial Chemical Industries Plc Industrieller Manipulator zum dicht gegeneinander Stapeln von Gegenständen und Stapelnverfahren unter Verwendung des Manipulators
DE3034244A1 (de) * 1979-09-14 1981-04-02 Tokico Ltd., Kawasaki, Kanagawa Lernfaehiger roboter
DE3039094A1 (de) * 1979-10-19 1981-04-30 Tokico Ltd., Kawasaki, Kanagawa Roboter
WO1982000906A1 (en) * 1980-09-05 1982-03-18 H Hossdorf Method and device for shaping a surface of a workpiece
DE3033202A1 (de) * 1980-09-03 1982-04-08 Siemens AG, 1000 Berlin und 8000 München Verfahren zur interpolation zwischen einer kartesischen koordinatenachse und einer rundachse, sowie zur steuerung der rundachse bei numerisch gesteuerten werkzeugmaschinen
DE3337782A1 (de) * 1983-10-18 1984-11-29 Daimler-Benz Ag, 7000 Stuttgart Verfahren zum programmieren und wiederholten ausfuehren einer bewegung eines roboters
DE3803040A1 (de) * 1988-02-02 1989-08-10 Eke Robotersysteme Gmbh Schwenkantrieb fuer den arm eines industrieroboters
CN108188736A (zh) * 2018-03-23 2018-06-22 浙江亿宝科技有限公司 一种换向器自动装配机

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4086522A (en) * 1976-09-08 1978-04-25 Unimation, Inc. Computer assisted teaching arrangement for conveyor line operation
GB1586017A (en) * 1977-05-30 1981-03-11 Sepa Control system for an automatic machine
US4445184A (en) * 1980-07-19 1984-04-24 Shin Meiwa Industry Co., Ltd. Articulated robot
CH639584A5 (fr) * 1980-10-10 1983-11-30 Microbo Sa Automate susceptible d'apprentissage.
JPS5769314A (en) * 1980-10-13 1982-04-28 Fanuc Ltd Numerical control system
US4379335A (en) * 1980-10-28 1983-04-05 Auto-Place, Inc. Electronic controller and portable programmer system for a pneumatically-powered point-to-point robot
US4468695A (en) * 1980-11-20 1984-08-28 Tokico Ltd. Robot
JPS57113114A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPS584377A (ja) * 1981-03-18 1983-01-11 株式会社安川電機 関節形産業用ロボツトの制御装置
IT1144709B (it) * 1981-05-15 1986-10-29 Dea Spa Sistema di misura dimensionale servito da una pluralita di bracci operativi e controllato da un sistema a calcolatore
US4581893A (en) * 1982-04-19 1986-04-15 Unimation, Inc. Manipulator apparatus with energy efficient control
FR2530173B1 (fr) * 1982-07-14 1987-08-14 Kuka Schweissanlagen & Roboter Procede et montage pour freiner une partie de machine et pour l'arreter
US4558420A (en) * 1982-10-25 1985-12-10 Gerber Scientific Inc. Computer generated mold for contoured garment piece formation
JPS59106007A (ja) * 1982-12-10 1984-06-19 Toyota Central Res & Dev Lab Inc 多関節型ロボツトの軌跡制御装置
JPS59172013A (ja) * 1983-03-22 1984-09-28 Mitsubishi Electric Corp 数値制御装置の刃物台同期方式
US4557663A (en) * 1984-01-09 1985-12-10 Westinghouse Electric Corp. Modular, low cost, pogrammable assembly system
GB2155212A (en) * 1984-02-29 1985-09-18 Dowty Group Services Apparatus for assembling component parts
US4688983A (en) * 1984-05-21 1987-08-25 Unimation Inc. Low cost robot
US4973215A (en) * 1986-02-18 1990-11-27 Robotics Research Corporation Industrial robot with servo
US4878801A (en) * 1986-05-19 1989-11-07 Invention Design Engineering Associates, Inc. Machine for handling circuit package storage tubes
US4748552A (en) * 1986-05-28 1988-05-31 Goro Kikuchi Sequence control system
US4822238A (en) * 1986-06-19 1989-04-18 Westinghouse Electric Corp. Robotic arm
DE3931964C2 (de) * 1989-09-25 1996-05-30 Rexroth Mannesmann Gmbh Vorrichtung zur Steuerung des Bewegungsablaufs mehrerer, von je einem Stellglied gleichzeitig zu betätigender hydraulischer Antriebe
US5126948A (en) * 1989-11-08 1992-06-30 Ltv Aerospace And Defense Company Digital position encoder and data optimizer
DE4290927T1 (de) * 1991-04-01 1994-01-13 Fanuc Robotics North America Verfahren und System zur flexiblen Montage von Baugruppen
JPH0553634A (ja) * 1991-08-29 1993-03-05 Matsushita Electric Ind Co Ltd 複腕干渉回避システム
FR2687523B1 (fr) * 1992-02-18 1995-01-20 Telediffusion Fse Regie de diffusion de programmes audiovisuels.
US5475797A (en) * 1993-10-22 1995-12-12 Xerox Corporation Menu driven system for controlling automated assembly of palletized elements
SE512338C2 (sv) * 1998-06-25 2000-02-28 Neos Robotics Ab System och metod för reglering av en robot
US6612143B1 (en) 2001-04-13 2003-09-02 Orametrix, Inc. Robot and method for bending orthodontic archwires and other medical devices
DE10148519A1 (de) * 2001-10-01 2003-04-24 Siemens Ag Programmierverfahren zur Erstellung eines Steuerungsprogramms einer industriellen Maschine
DE10258633A1 (de) * 2002-12-16 2004-07-08 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Positionieren von zusammenzufügenden Bauteilen
US20080172857A1 (en) * 2007-01-05 2008-07-24 Tennessee Rand Automation Systems and Methods for Manipulating a Frame in a Manufacturing Process
JP5507587B2 (ja) * 2012-01-11 2014-05-28 ファナック株式会社 補助指令の実行機能を有する数値制御装置
US9517895B2 (en) * 2013-10-30 2016-12-13 GM Global Technology Operations LLC Vehicle frame turnover system and method
US9804593B1 (en) * 2014-12-12 2017-10-31 X Development Llc Methods and systems for teaching positions to components of devices
CN107114012B (zh) * 2014-12-22 2020-04-14 株式会社富士 对基板作业管理装置
CN110582230B (zh) * 2017-03-10 2022-11-22 华盛顿大学 测量和评估医疗植入物的稳定性的方法和系统
US11625023B2 (en) * 2017-09-29 2023-04-11 Donald Scott Rogers Device and method for automated assembly of interlocking segments
JP7118628B2 (ja) * 2017-12-01 2022-08-16 キヤノン株式会社 ロボット装置、およびロボット装置の制御方法
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
DE102018105041A1 (de) * 2018-03-06 2019-09-12 Dürr Systems Ag Schwenkeinheit für einen Handhabungsroboter und zugehöriges Verfahren
PL3769174T3 (pl) * 2018-03-21 2022-10-24 Realtime Robotics, Inc. Planowanie przemieszczania robota do różnych środowisk i zadań oraz jego ulepszone działanie
JP7417356B2 (ja) * 2019-01-25 2024-01-18 株式会社ソニー・インタラクティブエンタテインメント ロボット制御システム
CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、系统、方法和规则
US11958183B2 (en) 2019-09-19 2024-04-16 The Research Foundation For The State University Of New York Negotiation-based human-robot collaboration via augmented reality
CN112093471B (zh) * 2020-07-29 2022-03-04 强信机械科技(莱州)有限公司 一种切拼下摆机的机械手
CN113771045B (zh) * 2021-10-15 2022-04-01 广东工业大学 视觉引导的直角机器人手机中框高适应定位抓取方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1148721B (de) * 1958-09-19 1963-05-16 Gen Mills Inc Ferngesteuerter Manipulator
DE2012858A1 (de) 1969-03-18 1970-09-24 Unimation Inc., Bethel, Conn. (V.St.A.) Programmgesteuerter Manipulator
DE2323407A1 (de) * 1972-05-10 1973-11-29 Commissariat Energie Atomique Telemanipulator
US3784031A (en) * 1970-08-21 1974-01-08 Tokyo Shibaura Electric Co Machine for performing work
US3826383A (en) * 1972-05-31 1974-07-30 Keller & Knappich Augsburg Automatic handling apparatus
DE2433003A1 (de) 1973-07-09 1975-01-30 Kawasaki Heavy Ind Ltd Programmsteuersystem

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2822094A (en) * 1953-09-29 1958-02-04 Greer Hydraulics Inc Bridge manipulator
FR1371685A (fr) * 1963-10-15 1964-09-04 Lemer & Cie Manipulateur à distance commandé par vérins
US3701888A (en) * 1970-08-05 1972-10-31 Bendix Corp Time shared position feedback system for numerical control
US3624371A (en) * 1970-08-06 1971-11-30 Cincinnati Milacron Inc Apparatus for generating and recording a program and producing a finished part therefrom
US3909600A (en) * 1972-06-26 1975-09-30 Cincinnati Milacron Inc Method and apparatus for controlling an automation along a predetermined path
JPS5425300B2 (de) * 1973-01-25 1979-08-27
JPS5214900B2 (de) * 1973-02-28 1977-04-25
US3920972A (en) * 1974-07-16 1975-11-18 Cincinnati Milacron Inc Method and apparatus for programming a computer operated robot arm
US4011437A (en) * 1975-09-12 1977-03-08 Cincinnati Milacron, Inc. Method and apparatus for compensating for unprogrammed changes in relative position between a machine and workpiece

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1148721B (de) * 1958-09-19 1963-05-16 Gen Mills Inc Ferngesteuerter Manipulator
DE2012858A1 (de) 1969-03-18 1970-09-24 Unimation Inc., Bethel, Conn. (V.St.A.) Programmgesteuerter Manipulator
US3784031A (en) * 1970-08-21 1974-01-08 Tokyo Shibaura Electric Co Machine for performing work
DE2323407A1 (de) * 1972-05-10 1973-11-29 Commissariat Energie Atomique Telemanipulator
US3826383A (en) * 1972-05-31 1974-07-30 Keller & Knappich Augsburg Automatic handling apparatus
DE2433003A1 (de) 1973-07-09 1975-01-30 Kawasaki Heavy Ind Ltd Programmsteuersystem

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DE-Z.: "Die elektrische Ausrüstung", Februar 1963, S.11-17
DE-Z.: "ZwF" 68 (1973) H.8,S.381-387
DIN 66025, Blatt 2, Oktober 1973

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0001686A1 (de) * 1977-10-20 1979-05-02 Imperial Chemical Industries Plc Industrieller Manipulator zum dicht gegeneinander Stapeln von Gegenständen und Stapelnverfahren unter Verwendung des Manipulators
DE3034244A1 (de) * 1979-09-14 1981-04-02 Tokico Ltd., Kawasaki, Kanagawa Lernfaehiger roboter
DE3039094A1 (de) * 1979-10-19 1981-04-30 Tokico Ltd., Kawasaki, Kanagawa Roboter
DE3033202A1 (de) * 1980-09-03 1982-04-08 Siemens AG, 1000 Berlin und 8000 München Verfahren zur interpolation zwischen einer kartesischen koordinatenachse und einer rundachse, sowie zur steuerung der rundachse bei numerisch gesteuerten werkzeugmaschinen
WO1982000906A1 (en) * 1980-09-05 1982-03-18 H Hossdorf Method and device for shaping a surface of a workpiece
DE3337782A1 (de) * 1983-10-18 1984-11-29 Daimler-Benz Ag, 7000 Stuttgart Verfahren zum programmieren und wiederholten ausfuehren einer bewegung eines roboters
DE3803040A1 (de) * 1988-02-02 1989-08-10 Eke Robotersysteme Gmbh Schwenkantrieb fuer den arm eines industrieroboters
CN108188736A (zh) * 2018-03-23 2018-06-22 浙江亿宝科技有限公司 一种换向器自动装配机
CN108188736B (zh) * 2018-03-23 2023-08-15 浙江亿宝科技有限公司 一种换向器自动装配机

Also Published As

Publication number Publication date
GB1561256A (en) 1980-02-13
FR2361206A1 (fr) 1978-03-10
SE8305520L (sv) 1983-10-07
SE8305521L (sv) 1983-10-07
US4163183A (en) 1979-07-31
DE2660912C2 (de) 1986-07-17
IT1075776B (it) 1985-04-22
CA1084966A (en) 1980-09-02
SE8305518D0 (sv) 1983-10-07
SE8305517L (sv) 1983-10-07
FR2361207A1 (fr) 1978-03-10
DE2649123C2 (de) 1986-07-24
SE8305518L (sv) 1983-10-07
FR2361206B1 (de) 1984-07-20
SE446071B (sv) 1986-08-11
SE8305521D0 (sv) 1983-10-07
SE8305520D0 (de) 1983-10-07
FR2357339A1 (fr) 1978-02-03
GB1561258A (en) 1980-02-13
JPS5284669A (en) 1977-07-14
FR2357339B1 (de) 1984-10-19
SE7611920L (sv) 1977-04-29
SE8305519L (sv) 1983-10-07
GB1561260A (en) 1980-02-13
SE8305517D0 (sv) 1983-10-07
FR2361207B1 (fr) 1985-08-23
GB1561259A (en) 1980-02-13
FR2361205A1 (fr) 1978-03-10
SE8305519D0 (sv) 1983-10-07

Similar Documents

Publication Publication Date Title
DE2649123A1 (de) Programmierbare montageanlage (manipulator)
DE3406255C2 (de)
DE2709335A1 (de) Programmierbarer manipulator
EP0699794B1 (de) Nähvorrichtung
DE60218983T2 (de) Maschine und verfahren zur herstellung von kegelrädern
DE2330054C2 (de) Vorrichtung zur Steuerung der Bewegung eines Arbeitselementes eines Roboterarmes
DE2636148C2 (de) Verfahren zur Bahnsteuerung eines Elementes mittels linearer oder zirkularer Interpolation
DE2530261C2 (de) Programmiereinrichtung für einen Manipulator
DE69216167T2 (de) Gerät zur Steuerung eines Industrieroboters zur Durchführung koordinierter Arbeitsvorgänge unter Verwendung eines Playbackteachingverfahrens und dies-bezügliches Verfahren
DE2740507A1 (de) Verfahren zur programmierung eines programmsteuerbaren manipulators und dementsprechender manipulator
DE3344633C2 (de)
DE3046897A1 (de) Unterrichtungsverfahren zum unmittelbaren unterrichten eines roboters ueber seinen betrieb und unmittelbar unterrichtende vorrichtung fuer einen industriellen roboter
DE3806966C2 (de)
DE2526504B2 (de) Verfahren zur Erstellung eines Programms für die rechnergeführte Steuerung der Arbeitsfunktionen und der Bewegung eines Roboterarmes und Vorrichtung zur Durchführung des Verfahrens
EP0232548B1 (de) Bearbeitungsstation für grosse Werkstücke
DE3144843A1 (de) Verfahren zum betreiben eines als schweissroboter arbeitenden manipulators und dementsprechende steuerung
DE2619336A1 (de) Roboter- oder manipulatorkopf mit mindestens zwei senkrecht zueinander stehenden rotationsachsen
DE102004026813A1 (de) Verfahren und Vorrichtung zum Steuern von Handhabungsgeräten
DE2727262A1 (de) Instruierbarer programmsteuerbarer manipulator
EP0133499A2 (de) Getriebekopf für Manipulatoren
DE102018218298A1 (de) Bearbeitungssystem
DE2417861A1 (de) Programmierbarer industrieroboter
DE2017535C3 (de) Steueranordnung fur Kopierwerk zeugmaschinen
DE3530365C2 (de) Handgelenk für Industrieroboter
DE2111889A1 (de) Numerische Regeleinrichtung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2660914

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2660914

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2660913

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2660913

8172 Supplementary division/partition in:

Ref country code: DE

Ref document number: 2660912

Format of ref document f/p: P

Q171 Divided out to:

Ref country code: DE

Ref document number: 2660912

AH Division in

Ref country code: DE

Ref document number: 2660912

Format of ref document f/p: P

D2 Grant after examination
8363 Opposition against the patent
8339 Ceased/non-payment of the annual fee