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. 7Γ 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° |
8° |
(13a) |
Öle |
- 01 |
-50° |
-115,3° |
8° |
(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
o·
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