-
TECHNISCHES GEBIET
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Bearbeiten eines
Computerprogramms in einem Industrieroboter von einem externen Computer, der
mit dem Steuerungssystem des Roboters verbunden ist. Die Erfindung
betrifft auch ein Computerprogrammprodukt, das Softwarecodeteile
aufweist, die den Computer in die Lage versetzen, die Schritte des
Verfahrens gemäß der Erfindung
durchzuführen.
-
Die
vorliegende Erfindung betrifft ferner ein Robotersystem, das mindestens
einen Industrieroboter mit einem Steuerungssystem aufweist, das
einen Hauptspeicher mit mindestens einem gespeicherten Roboterprogramm
und einen Computer, der mit dem Steuerungssystem des Roboters verbunden
ist, einschließt,
wodurch das Robotersystem so angepasst ist, dass das Roboterprogramm
von dem externen Computer bearbeitbar ist. Die Erfindung betrifft
auch die Verwendung eines Robotersystems für eine Malanwendung.
-
STAND DER TECHNIK
-
Ein
Roboterprogramm ist ein Computerprogramm, das die Bewegungen des
Roboters steuert, wenn dieser eine bestimmte Anwendung durchführen soll.
Normalerweise wird das Roboterprogramm in einer speziellen Programmsprache
für die
Roboterprogrammierung geschrieben. Es ist aus der
EP 0075325 bekannt, ein Bearbeiten,
einen Testlauf und eine Fehlererkennung eines Roboterprogramms für einen
Industrieroboter mit einer tragbaren Programmiereinheit, die unmittelbar
mit dem Steuerungssystem des Roboters verbunden ist, durchzuführen. Da die
Programmiereinheit unmittelbar mit dem Steuerungssystem verbunden
ist, ist es möglich,
während des
Testens und der Fehlererkennung des Roboterprogramms die Vorgänge in dem
Steuerungssystem bei Ablauf des Programms zu beobachten und zu verfolgen.
Es ist auch möglich,
das Programm anzuhalten, eine Änderung
in einer Programmzeile vorzunehmen und dann das Programm von der
Stelle aus, an der es angehalten wurde, weiterlaufen zu lassen, ohne
dass das Programm wieder von vorne laufen muss.
-
Ein
Nachteil des Bearbeitens und Testens des Roboterprogramms mit Hilfe
der Programmiereinheit besteht darin, dass der Operator das Roboterprogramm
nicht gleichzeitig für
separate Roboter bearbeiten kann. Bei bestimmten Anwendungen, bei denen
eine Reihe von Robotern zusammen in einer Roboterzelle angeordnet
sind, ist es für
einen Operator wünschenswert,
das Roboterprogramm der Roboter von einem einzigen Ort aus zu bearbeiten
und testen. Andere Nachteile der Programmiereinheit bestehen darin,
dass sie einen kleinen Bildschirm aufweist, keine Tastatur besitzt,
und dass es mit einer beibehaltenen Umgebung für ein kompiliertes Roboterprogramm
schwierig ist, eine freie Textbearbeitung zu erreichen. Diese Nachteile
bringen für
einen Operator, der erhebliche Änderungen
an dem Programm vornehmen muss, Nachteile mit sich.
-
Es
ist ferner bekannt, ein Roboterprogramm von einem externen Computer,
vorzugsweise einem gewöhnlichen
Personal Computer, der über
ein Netzwerk mit dem Steuerungssystem von einem oder mehreren Robotern
verbunden ist, zu bearbeiten und einen Testlauf durchzuführen. Da
die Übertragung zwischen
dem externen Computer und dem Steuerungssystem nicht unmittelbar,
sondern über
eine Form von Datenübertragung
erfolgt, ist es wichtig, dass die Menge der übertragenen Daten pro Zeiteinheit
niedrig gehalten wird, um zu verhindern, dass die Datenübertragung überlastet
wird. Wenn das Roboterprogramm von dem externen Computer bearbeitet werden
soll, wird daher eine Kopie des Programms von dem sekundären Speicher
in dem Steuerungssystem des Roboters auf den Computer abgerufen, und
die Bearbeitung erfolgt auf der Kopie in dem Computer. Wenn das
Programm bearbeitet worden ist, wird es wieder in den sekundären Speicher
in dem Steuerungssystem des Roboters geladen. Bevor das Programm
ausgeführt
werden kann, wird es zum Beispiel durch Kompilieren und Verknüpfen vorbereitet
und hinsichtlich Syntax und Semantik überprüft.
-
Einige
Vorteile, die durch das Bearbeiten des Roboterprogramms von einem
externen Computer erzielt werden, sind der Zugriff auf einen größeren Bildschirm,
eine bessere Tastatur und dass es möglich ist, eine freie Textbearbeitung
an Stelle einer einge schränkten
Bearbeitung, wie zum Beispiel "Objektbearbeitung", zu verwenden. Ein
weiterer Vorteil besteht darin, dass es noch möglich ist, das Programm zu
bearbeiten, wenn ein Steuerungssystemfehler auftritt, und dass mehrere
Roboter von der gleichen Einheit bearbeitet werden können. Außerdem kann der
Operator in einer Entfernung zu den Robotern sitzen und die Bearbeitung
vornehmen. Ein Nachteil des oben beschriebenen Verfahrens der Bearbeitung eines
Roboterprogramms von einem externen Computer besteht darin, dass,
wenn das Programm nach einer Änderung
einem Testlauf unterzogen werden muss, das gesamte Programm wieder
von vorne gestartet werden muss. Dies impliziert auch, dass, bevor
das Programm gestartet werden kann, die physikalische Umgebung des
Roboters in ihren Anfangszustand gebracht werden muss, zum Beispiel
durch Jogging des Roboters in seine Ausgangsposition. Dieses Verfahren
ist zeitaufwändig
und schwierig, insbesondere wenn das Programm mehrmals während des
Testens geändert
werden muss.
-
Neben
der Programmiereinheit können
andere externe Computer über
ein Netzwerk mit dem Steuerungssystem verbunden werden. Ein Problem, das
auftritt, wenn der Roboter mit dem vorstehend beschriebenen Verfahren
von dem externen Computer bearbeitet wird, besteht darin dass es,
bis die Kopie wieder in das Steuerungssystem geladen wurde, nur
möglich
ist, die Änderungen
an dem Programm auf dem Computer zu sehen, auf dem das Programm bearbeitet
wird. Wenn es um viele und umfangreiche Änderungen geht, kann es lange
dauern, bis diese Änderungen
in dem Steuerungssystem sichtbar sind. Es ist daher wünschenswert,
dass in dem Roboterprogramm vorgenommene Änderungen sofort an anderen
Einheiten, die mit dem Steuerungssystem verbunden sind, sichtbar
sind. Ein zusätzlicher
Nachteil des vorstehend erwähnten
Verfahrens besteht darin, dass der Operator nicht sehen kann, was
in dem Steuerungssystem geschieht, wenn das Programm während des
Testens und der Fehlererkennung des Roboterprogramms läuft.
-
Um
einem Operator das Bearbeiten und den Testlauf eines Roboterprogramms
zu erleichtern, ist es bekannt, eine größere Programmeinheit zu erstellen,
so dass diese hinsichtlich der Größe des Bildschirms und der
Programmierwerkzeuge eher wie ein Personal Computer aussieht. Es
gibt jedoch Anwendungen, bei denen es wünschenswert ist, Roboterprogramme
aus einer größeren Entfernung
bearbeiten und einen Testlauf durchführen zu können, als es die Programmiereinheit
ermöglicht,
und zusätzlich mehrere
Roboter von dem gleichen Computer bearbeiten und Testläufe vornehmen
zu können.
Ein Beispiel für
eine derartige Anwendung sind Malvorgänge, die von Industrierobotern
durchgeführt
werden. Bei bestimmten Anwendungen ist es daher wünschenswert,
den Roboter von einem externen Computer behandeln zu können.
-
Es
ist somit wünschenswert,
ein Verfahren zum Bearbeiten eines Roboterprogramms mit einem externen
Computer zu finden, das die Vorteile des externen Computers beibehält und zusätzlich die
vorstehend erwähnten
Vorteile der Programmiereinheit aufweist.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren
zur Verfügung
zu stellen, das die Online-Behandlung eines oder mehrerer Industrieroboter
von einem externen Computer ermöglicht,
der mit dem Steuerungssystem des Roboters oder der Roboter verbunden
ist und nicht die vorstehend erwähnten
Nachteile aufweist. Die Behandlung eines Industrieroboters bedeutet
in erster Linie das Bearbeiten eines Roboterprogramms, aber Behandlung
bedeutet auch das Testen und die Fehlererkennung des Roboterprogramms.
Insbesondere wird ein Verfahren angestrebt, bei dem es möglich ist, Änderungen
in dem Roboterprogramm vorzunehmen, ohne dass die Umgebung des Roboters
geändert wird
und ohne dass die Übertragung
zwischen dem Computer und dem Steuerungssystem zu sehr überlastet
wird.
-
Diese
Aufgabe wird mit einem Verfahren gelöst, das die folgenden Schritte
aufweist: Erhalten einer Referenz zu dem zu bearbeitenden Teil des
Roboterprogramms, Erstellen einer lokalen Reflexion des Roboterprogramms
im externen Computer durch Abrufen einer Kopie des Roboterprogramms
gemäß der Referenz,
Bearbeiten des Roboterprogramms in dem externen Computer, Senden
eines Befehls zum Durchführen
einer Änderung
in dem Roboterprogramm abhängig
von der erwähnten
Bearbeitung an das Steuerungssystem, Durchführen der erwähnten Änderung
unmittelbar in dem Hauptspeicher des Steuerungssystems und Aktualisieren
der Reflexion. Auf Grund der Tatsache, dass alle Änderungen
unmittelbar in dem Hauptspeicher des Steuerungssystems und nicht
nur in einer Kopie auf dem externen Computer durchgeführt werden,
werden die Änderungen
für andere
Einheiten, die mit dem Steuerungssystem verbunden sind, verfügbar. Ein
zusätzlicher
Vorteil der Durchführung
von Änderungen
unmittelbar in dem Programm in dem Hauptspeicher besteht darin,
dass das Programm nur an einem einzigen Ort verfügbar ist, das heißt in dem
Steuerungssystem, was bedeutet, dass das Programm während der
Bearbeitung nicht angehalten werden muss und eine Änderung
bemerkbar ist, sobald sie durchgeführt wurde.
-
Der
Hauptspeicher speichert Programme in Form eines bearbeiteten Programmcodes.
Bearbeiteter Programmcode bedeutet zum Beispiel einen Code, der
kompiliert und verknüpft
ist. Da die Änderung
unmittelbar in dem bearbeiteten Programmcode durchgeführt wird,
reicht eine teilweise Kompilierung und inkrementelle Verknüpfung aus.
Eine inkrementelle Verknüpfung
bedeutet, dass nur diejenigen Teile des Programms, die mittelbar
oder unmittelbar von der Änderung
betroffen sind, verknüpft
werden. Somit muss nicht wieder das gesamte Programm kompiliert
und verknüpft
werden, und das Programm muss nicht nach Vornahme einer Änderung
von vorne gestartet werden. Es wird somit möglich sein, das Programm anzuhalten,
eine Änderung
in dem Programm vorzunehmen und das Programm wieder mit unveränderter
Umgebung an der Stelle zu starten, an der es angehalten wurde. Eine
unveränderte
Umgebung bedeutet zum Beispiel die Konfiguration des Roboters, Variablen
in dem Programm und E/A-Einstellungen.
-
Ein
Roboterprogramm ist normalerweise sehr groß und kann aus vielen tausend
Programmzeilen bestehen. Das Aufrufen des gesamten Roboterprogramms
erfordert ein hohes Maß an Übertragung
zwischen dem Computer und dem Steuerungssystem. Durch Aufrufen und
Anzeigen nur des Teils des Programms, der zu bearbeiten ist, ist
es nicht notwendig, das gesamte Programm aufzurufen. Die Referenz
zu dem Teil des Programms, der zu bearbeiten ist, ist entweder bereits
bekannt oder kann durch Abfragen herausgefunden werden.
-
In
dem externen Computer wird eine lokale Reflexion des Teils des Programms
erstellt, der zu bearbeiten ist, und nach der vorstehend erwähnten Änderung
des Programmteils wird die Änderung
sowohl in der Reflexion als auch in dem Hauptspeicher durchgeführt. Bei
jeder Änderung
des Roboterprogramms in dem Hauptspeicher wird auch die Reflexion
geändert,
so dass sie stets eine genaue Kopie des Roboterprogramms in dem
Hauptspeicher darstellt. Da die Bearbeitung des Roboterprogramms
in einer lokalen Reflexion des Programms auf dem externen Computer
stattfindet und nur die Änderungen
an das Steuerungssystem gesendet werden, wird der Bedarf an Netzwerkübertragung
zwischen dem Computer und dem Steuerungssystem reduziert. Wenn sich zum
Beispiel der Benutzer in dem Programmteil auf und ab bewegt, um
verschiedene Abschnitte des Programmteils einzusehen, wird ein Programmcode,
der von der Reflexion abgerufen wurde, angezeigt, und nicht einer,
der von dem Steuerungssystem abgerufen wurde.
-
Nach
einer weiteren bevorzugten Ausführungsform
der Erfindung werden Informationen über Symbole und Datenobjekte
für die
Reflexion abgerufen. Vorzugsweise ist die Reflexion auch mit einer Programmlogik
versehen, um semantische Informationen über das Roboterprogramm zu
erstellen und zu deuten. Auf diese Weise kann die Netzwerkübertragung
zwischen dem Computer und dem Steuerungssystem dahingehend weiter
reduziert werden, dass es ausreicht, sich der lokalen Reflexion
zuzuwenden, um semantische Informationen über den zu bearbeitenden Teil
des Programms und seine Umgebung zu erhalten. Derartige Informationen
sind notwendig, um bestimmte Funktionen erhalten zu können, um
das Bearbeiten durch einen Benutzer zu erleichtern, wie farbige
Darstellung und Auswertung und Ausführung.
-
Nach
einer weiteren bevorzugten Ausführungsform
der Erfindung wird die Position des Befehlszählers in dem Roboterprogramm
abgerufen, woraufhin die Position des Befehlszählers in der Reflexion angezeigt
wird. Da der Benutzer die Möglichkeit
hat, zu verfolgen, wo sich der Programmzeiger in dem Programm befindet,
hat er den Eindruck, dass er einen unmittelbaren Einblick in die
Vorgänge
im Steuerungssystem hat. Auf diese Weise wird es einfacher sein,
das Testen und die Fehlererkennung eines Roboterprogramms von dem
externen Computer durchzuführen.
-
Nach
einer weiteren bevorzugten Ausführungsform
der Erfindung wird eine Beschreibung darüber, wie die Änderung
durchzuführen
ist, an das Steuerungssystem gesendet. Auf diese Weise ist das Steuerungssystem
in der Lage, schnell und einfach die Änderung durchzuführen, und
das Steuerungssystem muss keine Leistung darauf verschwenden, herauszufinden,
wie die Änderungen
durchzuführen sind.
Stattdessen kann die Leistung des Steuerungssystems für andere
Aufgaben verwendet werden.
-
Nach
noch einer weiteren bevorzugten Ausführungsform der Erfindung weist
die vorstehend erwähnte
Beschreibung der Änderung
den Unterschied zwischen dem bestehenden Programmcode und dem bearbeiteten
Programmcode auf. Wegen dieser Informationen wird es für das Steuerungssystem
einfacher, die angeforderte Änderung
mit einer beibehaltenen Umgebung durchzuführen. Da nur die Änderungen,
und nicht der gesamte Textkörper,
an das Steuerungssystem gesendet werden, reduziert sich auch die
Netzwerkübertragung
zwischen dem Computer und dem Steuerungssystem.
-
Nach
noch einer weiteren bevorzugten Ausführungsform der Erfindung ist
das Roboterprogramm in eine Reihe von verschiedenen Programmmodulen
unterteilt, und eine Übersicht über diese Programmmodule
wird auf dem externen Computer angezeigt, wobei das zu bearbeitende
Programmmodul in der Übersicht
markiert wird. Vorzugsweise wird zumindest ein Teil des markierten
Programmmoduls auf dem externen Computer gezeigt, wodurch einem Benutzer
die Möglichkeit
gegeben wird, den gezeigten Text zu bearbeiten. Um das Bearbeiten
für den Benutzer
zu erleichtern, wird eine Übersicht über diejenigen
Programmmodule gezeigt, die bearbeitet werden können, und der Benutzer wählt aus,
welches Modul bearbeitet wird, indem er dieses Modul markiert. Wenn
das Modul markiert worden ist, wird zumindest ein Teil des Moduls
auf dem Computerbildschirm gezeigt. Der Benutzer kann sich dann
in dem Programmmodul auf und ab bewegen und verschiedene Teile des
Moduls ändern.
Während
der vorstehend erwähnten
Reflexion wird vorzugsweise das zu bearbeitende Programmmodul reflektiert.
-
Eine
weitere Aufgabe der Erfindung besteht darin, ein Robotersystem zur
Verfügung
zu stellen, das einen Industrieroboter und einen Computer, der mit
dem Steuerungssystem des Roboters verbunden ist, aufweist, was es
einem Benutzer ermöglicht,
eine Bearbeitung, ein Testen und eine Fehlererkennung eines Roboterprogramms,
das auf dem Steuerungssystem des Roboters läuft, durchzuführen. Diese Aufgabe
wird mit dem in der Einführung
beschriebenen Robotersystem gelöst,
das dadurch gekennzeichnet ist, dass das Robotersystem Mittel zum
Erhalten einer Referenz zu dem zu bearbeitenden Teil des Roboterprogramms
und, gemäß der Erfindung, zum
Abrufen einer Kopie des erwähnten
Teils des Roboterprogramms von dem Hauptspeicher in den externen
Computer sowie Mittel zum Erzeugen und Senden eines Befehls an das
Steuerungssystem zur Durchführung
einer Änderung
in Abhängigkeit
der erwähnten
Bearbeitung unmittelbar in dem erwähnten Teil des Roboterprogramms
in dem Hauptspeicher des Steuerungssystems aufweist.
-
Ein
Robotersystem gemäß der Erfindung kann
vorteilhafterweise für
eine Malanwendung verwendet werden.
-
Die
Erfindung wird vorzugsweise als ein oder mehrere Computerprogramme
implementiert, das eine Reihe von Programmbefehlen aufweist, die
die Schritte des Verfahrens ausführen.
Diese Computerprogramme können
entweder auf einem Prozessor in dem externen Computer oder auf einem
Prozessor in dem Steuerungssystem des Roboters laufen.
-
Noch
eine weitere Aufgabe der Erfindung besteht darin, ein Computerprogrammprodukt
zur Verfügung
zu stellen, das eine Online-Behandlung von einem oder mehreren Industrierobotern
von einem externen Computer ermöglicht.
Diese Aufgabe wird mit einem Computerprogrammprodukt gelöst, das unmittelbar
in den internen Speicher eines Computers geladen werden kann, dessen
Speicher Softwarecodeabschnitte aufweist, um es dem Computer zu
ermöglichen,
das Verfahren wie vorstehend beschrieben durchzuführen.
-
Noch
eine weitere Aufgabe der Erfindung besteht darin, ein maschinenlesbares
Medium zur Verfügung
zu stellen, das ein Computerprogramm aufweist, das Befehle zur Beeinflussung
eines Prozessors zum Durchführen
des Verfahren wie vorstehend beschrieben aufweist.
-
KURZE BESCHREIBUNG DER ZEICHNUNG
-
Die
vorliegende Erfindung wird nun mit Hilfe von verschiedenen Ausführungsformen,
die beispielhaft beschrieben sind, und mit Bezug auf die beigefügten Zeichnungen
beschrieben.
-
1 zeigt
einen externen Computer, der mit einem Industrieroboter verbunden
ist.
-
2 veranschaulicht,
wie ein Industrieroboter von einem externen Computer nach einer
Ausführungsform
der Erfindung behandelt wird.
-
BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORM
-
1 zeigt
einen Industrieroboter 1, der einen Manipulator 2,
ein Steuerungssystem 3 und einen externen Computer 4 aufweist,
der über
ein Netzwerk mit dem Steuerungssystem des Roboters verbunden ist.
Der externe Computer weist einen Bildschirm und eine Tastatur auf.
Das Netzwerk kann mehrere Industrieroboter und Computer aufweisen. Der
externe Computer ist zum Beispiel ein gewöhnlicher Personal Computer.
Das Steuerungssystem des Roboters weist sowohl einen sekundären Speicher 6, in
dem Dateien mit dem Programmcode gespeichert sind, als auch einen
Hauptspeicher 5, in dem der bearbeitete Programmcode gespeichert
ist, auf. Bei den folgenden Ausführungsformen
bedeutet ein bearbeiteter Programmcode einen solchen Code, der kompiliert
und verknüpft
ist.
-
2 zeigt
einen Teil des Hauptspeichers 5 des Steuerungssystems.
Der Hauptspeicher weist diejenigen Programme 10 auf, die
das eigentliche Steuerungssystem darstellen, das heißt die Programme,
die die Daten und die Dateibehandlung in dem Roboter steuern. Die
Programme 10 weisen zum Beispiel einen Compiler und einen
Binder für
einen Roboterprogrammcode auf. Ferner weist der Hauptspeicher kompilierte
und verknüpfte
Roboterprogramme 11 sowie Tabellen und Symbole 12 auf, die
während
der Kompilierung der Roboterprogramme erzeugt wurden. Der primäre speichert
den kompilierten und den verknüpften
Code und dessen Textdarstellung. Die Symbole sind zum Beispiel Variablen,
Konstanten, Prozeduren und Funktionen. Ein Roboterprogramm wird
in eine Reihe von Programmmodulen 11a–11c unterteilt, von
denen jedes eine Reihe von Programmzeilen mit einem Robotercode aufweist.
Das Programm 10 des Steuerungssystems behandelt die Programmmodule
und die Symboltabellen.
-
2 zeigt
auch einen Teil des externen Computers 4. Der Computer
besitzt einen Explorer 13, der auf eindeutige Weise, in
Form einer Hierarchie, relevante Roboterprogramme zeigt, das heißt die Roboterprogramme,
die in dem Hauptspeicher des Steuerungssystems gespeichert sind,
sowie ihre Programmmodule. Ein Benutzer, der eine Änderung in
einem bestimmten Programmmodul 11b in einem Roboterprogramm
vornehmen möchte,
kann sich in dem Explorer 13 nach oben und unten bewegen,
bis er das gewünschte
Programmmodul 11b findet. Um den Programmcode für das gewünschte Modul
sehen zu können,
klickt der Benutzer das gewünschte Modul 11b in
dem Explorer 13 an. Der Explorer 13 hält dann
eine Referenz für
das Modul 11b bereit. Wenn der Benutzer ein Modul anklickt,
wird ein Behandlungsobjekt 14 erzeugt, das mit dem gewünschten
Modul 11b mit Hilfe der Referenz verbunden wird, und es öffnet sich
ein Fenster 15, in dem die Programmzeilen in dem Modul 11b anzuzeigen
sind.
-
Das
Behandlungsobjekt 14 erzeugt wiederum ein Hilfsobjekt 16,
das eine Programmlogik aufweist, um ein Roboterprogramm semantisch
interpretieren zu können.
Die Programmlogik umfasst zum Beispiel einen Compiler und einen
Binder. In dieser Ausführungsform
umfasst die Programmlogik auch semantische Informationen, um eine
farbliche Darstellung verschiedener Arten in dem Programmcode, der
dem Benutzer gezeigt wird, erzeugen zu können. Die Programmlogik kann
zum Beispiel eine Kopie derjenigen Teile des Steuerungssystems des
Roboters sein, die eine derartige Programmlogik einschließen. Mehrere
Behandlungsobjekte können
das gleiche Hilfsobjekt verwenden. Wenn ein Hilfsobjekt bereits
besteht, reicht es aus, wenn das Behandlungsobjekt das bestehende
Hilfsobjekt abruft. In dieser Ausführungsform bestehen das Behandlungsobjekt 14 und
das Hilfsobjekt 16 aus COM-Objekten.
-
Mit
Hilfe des Programms 10 des Steuerungssystems ruft das Hilfsobjekt 16 den
Inhalt des Moduls 11b aus dem Hauptspeicher ab, das heißt sowohl den
kompilierten als auch den verknüpften
Programmcode und die Textdarstellung des Programms, und die Tabellen
und Symbole 12a, 12b, die zu dem Modul und seiner
Umgebung gehören.
Auf diese Weise wird eine Reflexion in dem externen Computer des
Moduls 11b und der Symboltabellen 12a, 12b in dem
Hauptspeicher des Steuerungssystems erzeugt. Das Hilfsobjekt 16 weist
diese Reflexion auf. Das Programmmodul umfasst normalerweise mehrere hundert
Programmzeilen, aber es können
nur einige zehn Programmzeilen in dem Fenster 15 untergebracht
werden. Das Behandlungsobjekt ruft von dem Modul in dem Hilfsobjekt 16 so
viele Programmzeilen ab, wie sie in dem Fenster 15 angezeigt
werden können,
und zeigt diese Programmzeilen in dem Fenster. Das Behandlungsobjekt
ruft auch die semantischen Informationen ab, die benötigt werden,
um eine farbliche Darstellung der gezeigten Programmzeilen vorzunehmen,
und führt
die farbliche Darstellung aus. Wenn sich der Benutzer entscheidet,
einen neuen Teil des Programmmoduls 11b zu sehen, indem
er zum Beispiel den Text scrollt, ruft das Behandlungsobjekt diese
neuen Programmzeilen und Informationen darüber ab, wie diese von dem Hilfsobjekt 16 gefärbt werden
sollen. Das Behandlungsobjekt zeigt dann die neuen Programmzeilen
in dem Fenster 15.
-
Wenn
sich der Benutzer entscheidet, eine Änderung in einer Programmzeile
vorzunehmen, werden eine oder mehrere Alternativen für mögliche Änderungen
angezeigt. Das Hilfsobjekt 16 erhält diese Alternativen unter
Verwendung der Tabellen und Symbole 12a–12b, die zu dem Modul
und seiner Umgebung gehören.
Welche Alternativen gezeigt werden, hängt von der semantischen Umgebung
ab, in der die Änderung
vorgenommen werden soll. Wenn zum Beispiel eine Programmzeile in
einer Bedingungsklausel geändert
werden soll, in der nur Datenobjekte und Funktionen einer bestimmten
Art erlaubt sind, werden nur Datenobjekte und Funktionen dieser
Art vorgeschlagen. Der Benutzer kann zwischen der Auswahl einer
der vorgeschlagenen Alternativen oder der Eingabe einer vollkommen
neuen Alternative wählen.
Jeder Knopfdruck erzeugt eine Änderung in
der Reflexion.
-
Wenn
die Programmzeile geändert
wird und der Benutzer Zeilenende drückt, erzeugt das Behandlungsobjekt 14 eine
Beschreibung der Änderung mit
Informationen darüber,
wo in dem Modul die Änderung
vorgenommen werden soll und wie die Änderung vorgenommen werden
soll. Die Beschreibung der Änderung
umfasst eine genaue Beschreibung des Unterschieds zwischen dem bestehenden
Programmcode und dem neuen bearbeiteten Programmcode. Eine Beschreibung
der Änderung,
die besagt, dass in Programmzeile 25, Position 8, 5 in
eine 6 geändert werden soll, sieht folgendermaßen aus:
25:8/5 → 6
-
Das
Behandlungsobjekt 14 sendet die Beschreibung der Änderung
an das Steuerungssystem, das die Änderung unmittelbar in dem
Hauptspeicher in dem kompilierten und verknüpften Programmcode für das Modul 11b durchführt. Wegen
der genauen Beschreibung der Änderung
kann die Änderung
unmittelbar in dem bearbeiteten Programmcode schnell und einfach
vorgenommen werden, und nur eine teilweise Kompilierung und eine
inkrementelle Verknüpfung
sind notwendig. Eine inkrementelle Verknüpfung bedeutet, dass nur diejenigen
Teile des Programms, die mittelbar oder unmittelbar von der Änderung
betroffen sind, verknüpft
werden. Somit ist es nicht notwendig, das gesamte Programm wieder
zu kompilieren und zu ändern.
Das Steuerungssystem wendet sich der Textdarstellung des Moduls
zu, das auch aktualisiert wird. Wenn die Änderung vorgenommen wurde,
sendet das Steuerungssystem einen Änderungsbefehl an das Hilfsobjekt,
der die Reflexion des Moduls 11b aktualisiert. Die Reflexion
wird stets gleichzeitig mit dem aktualisierten Original aktualisiert.
Wenn eine Vielzahl von Computern mit dem Steuerungssystem verbunden
sind, wird ein Änderungsbefehl
an alle Hilfsobjekte in den angeschlossenen Computern gesendet,
die ihre Kopien des Moduls 11b aktualisieren. Wenn eine
Vielzahl von Computern mit dem Steuerungssystem verbunden sind, ist
es für
das Steuerungssystem von Vorteil, gleichzeitig einen Änderungsbefehl
an alle Computer zu senden.
-
Wenn
das Roboterprogramm läuft,
zeigt ein Befehlszähler
in dem Hauptspeicher den Programmbefehl an, der derzeit durchgeführt wird.
Wenn ein Testen und/oder eine Fehlererkennung in einem Roboterprogramm
durchgeführt
werden sollen, ist es von Vorteil, wenn es möglich ist zu sehen, welcher Befehl
derzeit ausgeführt
wird, wodurch es ermöglicht
wird, den Vorgängen
in dem Programm zu folgen. Hierfür
wird ein Cursor 20 in dem Fenster 15 angezeigt,
der die Position des Befehlszählers
in dem Programm code markiert. Das Behandlungsobjekt 14 ruft
von dem Steuerungssystem Informationen über die Position des Befehlszählers ab
und leitet die Positionsinformationen an das Fenster 15 weiter,
das den Cursor an dieser Position zeigt.
-
Die
Erfindung ist nicht auf die gezeigten Ausführungsformen beschränkt, sondern
kann im Rahmen der folgenden Ansprüche variiert und modifiziert werden.
Ein Änderungsbefehl
an das Steuerungssystem kann bei anderen Gelegenheiten als am Zeilenende
erzeugt werden, zum Beispiel jedes Mal, wenn der Benutzer eine Taste
auf der Tastatur drückt. In
einer alternativen Ausgestaltung kann der Benutzer selber wählen, wann
ein Änderungsbefehl
zu erzeugen ist, indem er auf eine besondere "Sicherungs"-Taste drückt, die einen Änderungsbefehl
erzeugt, wenn sie aktiviert wird.
-
In
einer alternativen Ausgestaltung der Erfindung sendet das Behandlungsobjekt
den Änderungsbefehl
zur gleichen Zeit an das Steuerungssystem und das Hilfsobjekt.
-
Anstelle
des Teilens der Funktionen des Abrufens des Roboterprogramms und
des Erzeugens und Sendens eines Änderungsbefehls
an das Steuerungssystem auf zwei verschiedenen Objekten (das Behandlungsobjekt
und das Hilfsobjekt), können
diese Funktionen natürlich
von ein und demselben Objekt durchgeführt werden.
-
In
einer alternativen Ausgestaltung umfasst der Änderungsbefehl, der an den
Hauptspeicher gesendet wird, einen bearbeiteten Programmcode, und der
Unterschied zwischen dem bestehenden und dem bearbeiteten Programmcode
wird in dem Robotersteuerungssystem erzeugt. Danach wird eine Beschreibung
der Änderung
auf Grundlage der erhaltenen Unterschiede erzeugt.