DE60225464T2 - Robotersystem und verfahren und software für das robotersystem - Google Patents

Robotersystem und verfahren und software für das robotersystem Download PDF

Info

Publication number
DE60225464T2
DE60225464T2 DE60225464T DE60225464T DE60225464T2 DE 60225464 T2 DE60225464 T2 DE 60225464T2 DE 60225464 T DE60225464 T DE 60225464T DE 60225464 T DE60225464 T DE 60225464T DE 60225464 T2 DE60225464 T2 DE 60225464T2
Authority
DE
Germany
Prior art keywords
program
robot
control system
computer
reflection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60225464T
Other languages
English (en)
Other versions
DE60225464D1 (de
Inventor
Ingemar Reyier
Peter Eriksson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ABB AB
Original Assignee
ABB AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ABB AB filed Critical ABB AB
Application granted granted Critical
Publication of DE60225464D1 publication Critical patent/DE60225464D1/de
Publication of DE60225464T2 publication Critical patent/DE60225464T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32126Hyperlink, access to program modules and to hardware modules in www, web server, browser
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36043Correction or modification of program
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36056Modify program, machining order in real time, during operation, dynamically

Description

  • 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 11a11c 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 12a12b, 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/56
  • 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.

Claims (21)

  1. Verfahren zum Bearbeiten eines Computerprogramms in einem Industrieroboter, aufweisend mindestens einen Industrieroboter mit einem Steuerungssystem (3), einschließend einen Hauptspeicher (6) mit mindestens einem gespeicherten Roboterprogramm, wobei das Roboterprogramm von einem externen Computer aus bearbeitet wird, der mit dem Steuerungssystem verbunden ist, dadurch gekennzeichnet, dass das Verfahren aufweist: – Erhalten einer Referenz zu dem zu bearbeitenden Teil des Roboterprogramms, – Erstellen einer lokalen Reflexion des Programmteils im externen Computer durch Abrufen einer Kopie des Programmteils gemäß der Referenz, – Bearbeiten des Programmteils in dem externen Computer, – Senden eines Befehls zum Durchführen einer Änderung in dem Roboterprogramm abhängig von der Bearbeitung an das Steuerungssystem, und – Durchführen der Änderung unmittelbar in dem Hauptspeicher des Steuerungssystems und Aktualisieren der Reflexion.
  2. Verfahren nach Anspruch 1, wobei Informationen über Symbole und Datenobjekte zur Reflexion abgerufen werden.
  3. Verfahren nach Anspruch 1 oder 2, wobei die Reflexion mit einer Programmlogik versehen ist, um semantische Informationen über das Roboterprogramm zu erstellen und zu deuten.
  4. Verfahren nach einem der Ansprüche 1–3, wobei die Position des Programmzählers in dem Roboterprogramm abgerufen wird, woraufhin die Positi on des Programmzählers in der Reflexion gezeigt wird.
  5. Verfahren nach einem der Ansprüche 1–4, wobei eine Beschreibung darüber, wie die Änderung durchzuführen ist, an das Steuerungssystem gesendet wird.
  6. Verfahren nach Anspruch 5, wobei die Beschreibung der Änderung den Unterschied zwischen dem bestehenden Programmcode und dem bearbeiteten Programmcode umfasst.
  7. Verfahren nach einem der Ansprüche 1–6, wobei das Roboterprogramm in eine Reihe von verschiedenen Programmmodulen unterteilt wird, wobei eine Übersicht über die Programmmodule auf dem externen Computer gezeigt wird, wobei das zu bearbeitende Programmmodul in der Übersicht markiert ist und die Referenz erhalten wird.
  8. Verfahren nach Anspruch 7, wobei zumindest ein Teil des markierten Programmmoduls auf dem externen Computer gezeigt wird, wodurch einem Benutzer die Möglichkeit gegeben wird, den gezeigten Text zu bearbeiten.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Robotersystem zwei Roboter aufweist, die mit dem externen Computer über ein Netzwerk verbunden sind.
  10. Robotersystem, aufweisend einen Industrieroboter (1) mit einem Steuerungssystem (3), einschließend einen Hauptspeicher (5) mit mindestens einem Roboterprogramm und einem Prozessor, und einen externen Computer (4), der mit dem Steuerungssystem verbunden ist, wodurch das Robotersystem derart angeordnet ist, dass das Roboterprogramm in dem externen Computer bearbeitbar ist, dadurch gekennzeichnet, dass das Robotersystem Mittel (16) zum Erhalten einer Referenz durch den zu bearbeitenden Teil des Roboterprogramms und zum Erstellen einer lokalen Reflexion in dem externen Computer des Teils, Mittel (14) zum Erzeugen und Senden eines Befehls an das Steuerungssystem in Bezug auf die Durchführung einer Änderung unmittelbar in dem Teil des Roboterprogramms in dem Hauptspeicher des Steuerungssys tems, und Mittel zum Aktualisieren der Reflexion aufweist.
  11. Robotersystem nach Anspruch 10, dadurch gekennzeichnet, dass die einen Befehl erzeugenden Mittel (14) dazu geeignet sind, eine Beschreibung darüber zu erstellen, wie die Änderung durchzuführen ist, und dass der Änderungsbefehl die erstellte Beschreibung aufweist.
  12. Robotersystem nach Anspruch 11, dadurch gekennzeichnet, dass die Beschreibung der Änderung den Unterschied zwischen dem bestehenden Programmcode und dem bearbeiteten Programmcode aufweist.
  13. Robotersystem nach einem der Ansprüche 10–12, dadurch gekennzeichnet, dass es Mittel zum Herausfinden der Position des Programmzählers in dem Roboterprogramm und zum Zeigen des Programmzählers (20) in der Reflexion aufweist.
  14. Robotersystem nach einem der Ansprüche 10–13, dadurch gekennzeichnet, dass die lokale Reflexion Informationen über Symbole und Datenobjekte aufweist.
  15. Robotersystem nach Anspruch 14, dadurch gekennzeichnet, dass die Reflexion eine Programmlogik zum Erstellen und Deuten von semantischen Informationen über das Roboterprogramm aufweist.
  16. Robotersystem nach einem der Ansprüche 10–15, dadurch gekennzeichnet, dass das Roboterprogramm in eine Reihe von verschiedenen Programmmodulen unterteilt ist, und dass der Computer einen Explorer aufweist, der eine Übersicht über die Programmmodule zeigt und Mittel zum Markieren des zu bearbeitenden Programmmoduls in der Übersicht aufweist.
  17. Robotersystem nach einem der Ansprüche 11–19, dadurch gekennzeichnet, dass es zwei Roboter aufweist, die mit dem externen Computer über ein Netzwerk verbunden sind.
  18. Computerprogrammprodukt, das unmittelbar in den internen Speicher eines Computers geladen werden kann, aufweisend Softwarecodeteile, um den Roboter in die Lage zu versetzen, das Verfahren nach einem der Ansprüche 1–10 durchzuführen.
  19. Computerprogrammprodukt nach Anspruch 18, das zumindest teilweise über ein Netzwerk, wie das Internet, zur Verfügung gestellt wird.
  20. Maschinenlesbares Medium, aufweisend ein Computerprogramm, aufweisend Befehle zum Beeinflussen eines Prozessors dahingehend, dass er das Verfahren nach einem der Ansprüche 1–10 ausführt.
  21. Verwendung eines Robotersystems nach einem der Ansprüche 10–17 für eine Malanwendung.
DE60225464T 2001-11-12 2002-11-11 Robotersystem und verfahren und software für das robotersystem Expired - Lifetime DE60225464T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE0103735A SE0103735L (sv) 2001-11-12 2001-11-12 Ett robotsystem samt en metod och en programvaruprodukt för robotsystemet
SE0103735 2001-11-12
PCT/SE2002/002053 WO2003057428A1 (en) 2001-11-12 2002-11-11 A robot system and a method and a software product for the robot system

Publications (2)

Publication Number Publication Date
DE60225464D1 DE60225464D1 (de) 2008-04-17
DE60225464T2 true DE60225464T2 (de) 2008-10-02

Family

ID=20285927

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60225464T Expired - Lifetime DE60225464T2 (de) 2001-11-12 2002-11-11 Robotersystem und verfahren und software für das robotersystem

Country Status (7)

Country Link
US (1) US20050107915A1 (de)
EP (1) EP1444071B1 (de)
AT (1) ATE387993T1 (de)
AU (1) AU2002354355A1 (de)
DE (1) DE60225464T2 (de)
SE (1) SE0103735L (de)
WO (1) WO2003057428A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836702B1 (en) * 2003-06-11 2004-12-28 Abb Ab Method for fine tuning of a robot program
DE102005047204A1 (de) * 2005-10-01 2007-04-05 Daimlerchrysler Ag Verfahren zur Programmierung eines Industrieroboters
US8781609B2 (en) * 2006-05-19 2014-07-15 Siemens Industry, Inc. Signal processing network
DE102007056117A1 (de) * 2007-11-15 2009-05-28 Kuka Roboter Gmbh Industrieroboter und Verfahren zum Steuern der Bewegung eines Industrieroboters
US8875156B2 (en) * 2008-09-30 2014-10-28 Rockwell Automation Technologies, Inc. Remote object data property replication method and system
JP2012232363A (ja) * 2011-04-28 2012-11-29 Seiko Epson Corp ロボット制御システム、ロボットシステム及びプログラム
CN110026983B (zh) * 2019-04-30 2020-06-23 南京云图机器人科技有限公司 一种机器人编程系统
JP2023080596A (ja) * 2021-11-30 2023-06-09 セイコーエプソン株式会社 プログラム作成装置およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL7703078A (nl) * 1977-03-22 1978-09-26 Philips Nv Inrichting voor het genereren en corrigeren van een gebruikersprogramma.
DE3279287D1 (en) * 1981-09-22 1989-01-19 Sankyo Seiki Seisakusho Kk Control apparatus and method for industrial robot
US4517652A (en) * 1982-03-05 1985-05-14 Texas Instruments Incorporated Hand-held manipulator application module
JP3550210B2 (ja) * 1995-03-22 2004-08-04 ファナック株式会社 産業用ロボットにおけるソフトウェア更新方法
US5984503A (en) * 1997-08-15 1999-11-16 Vickers, Incorporated Method and apparatus for entering and displaying structure information in a machining system
JP3196704B2 (ja) * 1997-09-30 2001-08-06 松下電器産業株式会社 産業用ロボット
US6560513B2 (en) * 1999-11-19 2003-05-06 Fanuc Robotics North America Robotic system with teach pendant
JP2001222309A (ja) * 2000-02-10 2001-08-17 Yaskawa Electric Corp ロボット制御装置

Also Published As

Publication number Publication date
US20050107915A1 (en) 2005-05-19
EP1444071A1 (de) 2004-08-11
SE518850C2 (sv) 2002-11-26
WO2003057428A1 (en) 2003-07-17
EP1444071B1 (de) 2008-03-05
SE0103735L (sv) 2002-11-26
SE0103735D0 (sv) 2001-11-12
ATE387993T1 (de) 2008-03-15
AU2002354355A1 (en) 2003-07-24
DE60225464D1 (de) 2008-04-17

Similar Documents

Publication Publication Date Title
DE19781804B4 (de) Vorrichtung zur Simulation einer Echtzeit-Prozesssteuerung
DE60225464T2 (de) Robotersystem und verfahren und software für das robotersystem
DE102016006202B4 (de) Numerische Steuervorrichtung zum Verwalten von Bearbeitungsdaten und Bearbeitungsergebnissen
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
EP2171582B1 (de) Fernbedienung eines browser-programms
EP1862901A1 (de) Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen
DE10322837A1 (de) Verfahren zur Projektierung eines Automatisierungssystems
EP0662226B1 (de) Verfahren zur bearbeitung eines anwenderprogramms auf einem parallelrechnersystem
DE10233971A1 (de) Verfahren und Vorrichtung zur Erzeugung von Software
EP0708941B1 (de) Verfahren zum test eines objektorientierten programms
EP1235123A2 (de) Addon-Mechanismus für ein Steuerungssystem basierend auf einem Typdatenfeld
EP3483756A1 (de) Cad/cam analyse werkzeug mit rückverbindung zu cad/cam daten
EP1343078B1 (de) System zur Modellierung und Generierung von Softwaregenerierungssystemen
DE19637883B4 (de) Datenverarbeitungsanlage zur Ausführung großer Programmsysteme
EP1241568B1 (de) Verfahren und Vorrichtung zur Einfügung von Variablen in den Programmablauf einer Datenverarbeitungsanlage
EP2093663A1 (de) Engineering-System für die Entwicklung eines Projektes und Verfahren
EP2498155B1 (de) Verfahren zur Erkennung von Änderungen an SW-Schnittstellen und zum automatischen Anpassungen dieser Schnittstellen in einer Automatisierungsslösung
DE10016337B4 (de) Verfahren und Vorrichtung zur Erzeugung und Verarbeitung von Daten durch einen aktiven Strukturbaum
EP1043657A1 (de) Softwareobjekt, System und Verfahren für ein Automatisierungsprogramm mit Funktionsregeln mit Mehrfachnutzung für verschiedene Programmierwerkzeuge
EP0809183A1 (de) Verfahren und Anordnung zur Aktualisierung eines Teils eines Programmcodes während dessen Ausführung
DE10228200A1 (de) Verfahren und Vorrichtung zur Steuerung einer Maschine mit einer Bedienungsanleitung
EP0521177A1 (de) Schnittstellensteuerung zur Ansteuerung von Datenbanksystemen
DE19828611C2 (de) Datenverarbeitungsvorrichtung und zugehöriges Verfahren
EP2085880A2 (de) Addon-Mechanismus für ein Steuerungssystem bzw. für ein Engineeringsystem basierend auf einem Typdatenfeld
EP3267372A1 (de) Teil- oder vollautomatisierte qualitätskontrolle eines arbeitsergebnisses

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: DEMSKI, FRANK & NOBBE PATENTANWAELTE, 47051 DUISBU