-
Technisches Gebiet
-
Die Erfindung betrifft ein Verfahren eines Steuerns eines Robotersystems.
-
Hintergrund
-
Industrieroboter verwenden oft eingebettete Steuerungen zum Steuern ihrer Bewegung und Bewegung. Die konventionellen eingebetteten Robotersteuerungen adaptieren allgemein ein einfaches Bootloaderverfahren.
-
Wenn ein Problem auftritt in einigen der Anwendungsprogramme zum Steuern des Roboters in dem einfachen Bootloaderverfahren, ist es nicht einfach, dieses Problem zu lösen durch Neustarten nur des Anwendungsprogramms, das das Problem hat. Daher ist ein solches Problem gelöst worden durch Neustarten des Bootloaders (deutsch: Urlader) durch Neustarten der gesamten eingebetteten Steuerung, egal wie klein der auftretende Fehler ist.
-
Ferner ist es in dem konventionellen Bootloadersystem schwierig gewesen, den Prozess jedes Anwendungsprogramms effizient zu Verwalten in einer Umgebung, wo gerade mehrere Anwendungsprogramme laufen.
-
Erforderlich ist daher eine Entwicklung eines Verfahrens und einer Vorrichtung zum Steuern eines Robotersystems, das mehrere Anwendungsprogramme effizient verwalten und schnell auf einen Fehler antworten kann.
-
Offenbarung
-
Technisches Problem
-
Die vorliegende Erfindung stellt ein Verfahren eines effizienten Verwaltens eines eingebetteten Robotersystems unter Verwendung eines Laufzeitsystems und eine Vorrichtung davon bereit.
-
Technische Lösung
-
Ein Aspekt der vorliegenden Erfindung bietet eine Vorrichtung zum Steuern eines Robotersystems, eingerichtet zum Steuern des Robotersystems durch Verwenden einer Mastersteuerung, eingebettet in das Robotersystem. Gemäß einer Ausführungsform der vorliegenden Erfindung kann die Mastersteuerung enthalten: eine Laufzeiteinheit; eine Speichereinheit, eingerichtet zum Speichern eines Laufzeitcodes zum Ausführen einer Laufzeit (englisch: runtime), einer Laufzeitsymboltabelle und eines Anwendungscodes zum Durchführen von designierten Funktionen des Robotersystems; eine Operationseinheit, eingerichtet zum Durchführen einer Operation zum Ausführen der Laufzeit und Steuern eines Flusses von Signalen zur Steuerung des Robotersystems; und eine Kommunikationseinheit, eingerichtet zum Kommunizieren mit einem Hostcomputer des Robotersystems. Die Laufzeiteinheit kann enthalten: ein Anwendungsladermodul, eingerichtet zum Laden das Anwendungscodes; und ein Anwendungsprogrammschnittstellemodul, eingerichtet zum Ausführen des geladenen Anwendungscodes.
-
Die Laufzeiteinrichtung kann auch enthalten ein Steuerungsformverwaltungsmodul, eingerichtet zum Erkennen einer Slavesteuerung, eingebettet in das Robotersystem, und dynamisch Verwalten einer Konfiguration von Systeminformation des Robotersystems.
-
Die Laufzeiteinheit kann auch enthalten ein Datenloggermodul, eingerichtet zum Erzeugen von Logdaten aus Operation der Laufzeit.
-
Das Anwendungsprogramschnittstellemodul kann den Anwendungscode ausführen durch Verwendung eines Systemaufrufs eines Betriebssystems des Robotersystems, und ein Parameter, referenziert für Ausführung des Anwendungscodes, kann transferiert werden unter Verwendung einer Registrierung (englisch: registry) der Vorrichtung zum Steuern eines Robotersystems.
-
Ein weiterer Aspekt der vorliegenden Erfindung bietet ein Verfahren eines Steuerns eines Robotersystems durch Verwendung einer Mastersteuerung, eingebettet in das Robotersystem. Das Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung kann enthalten: Initialisieren der Mastersteuerung durch Verwendung eines Bootloaders, eingerichtet in dem Robotersystem; Ausführen einer Laufzeit durch Laden eines Laufzeitausführungscodes, gespeichert in einem Speicherplatz der Mastersteuerung; und Laden und Ausführen eines Anwendungsprogramms, gespeichert in einem Speicherplatz der Mastersteuerung.
-
Das Verfahren kann auch enthalten, nach Ausführen der Laufzeit, Erzeugen von Logdaten aus Operation der Mastersteuerung.
-
Das Robotersystem kann auch enthalten eine Slavesteuerung, und das Verfahren kann auch enthalten, nach Ausführen der Laufzeit, dynamisch Verwalten der Slavesteuerung und einer Konfiguration von Systeminformation.
-
In dem Schritt von Laden und Ausführen des Anwendungsprogramms, kann ein Systemaufruf eines Betriebssystems des Robotersystems verwendet werden, und ein Parameter für Ausführen des Anwendungsprogramms kann transferiert werden unter Verwendung einer Registrierung der Mastersteuerung.
-
Andere Aspekte, Merkmale und Vorteile der vorliegenden Erfindung werden besser verstanden werden durch die beigefügten Figuren, die Ansprüche und die detaillierte Beschreibung.
-
Vorteilhafte Effekte
-
Gemäß einiger Ausführungsformen der vorliegenden Erfindung wird es möglich, die Effizienz eines Verwaltens von Anwendungsprogrammen zum Realisieren der Funktionen eines Robotersystems zu verbessern durch Implementieren der Laufzeit in der Steuerung des Robotersystems.
-
Beschreibung der Figuren
-
1 illustriert eine Umgebung, in welcher ein Robotersteuerungssystem unter Verwendung einer Laufzeit realisiert ist gemäß einer Ausführungsform der vorliegenden Erfindung.
-
2 zeigt eine Konfiguration einer Robotersteuerungsvorrichtung unter Verwendung einer Laufzeit gemäß einer Ausführungsform der vorliegenden Erfindung.
-
3 zeigt eine Konfiguration einer Steuerungslaufzeit gemäß einer Ausführungsform der vorliegenden Erfindung.
-
4 ist ein Flussdiagramm, das ein Verfahren eines Steuerns eines Robotersteuerungssystem unter Verwendung einer Laufzeit gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
5 illustriert eine Laufzeitladeoperation einer Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
6 illustriert Schritte eines Ladens eines Anwendungsprogramms der Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
7 illustriert Schritte eines Ablaufens eines Anwendungsprogramms der Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
8 zeigt eine Steuerungs-Anwendungs-Host-Schnittstelle gemäß einer Ausführungsform der vorliegenden Erfindung.
-
9 zeigt eine Operation eines Anwendungsladers, enthalten in der Steuerungslaufzeit, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
10 zeigt eine Anwendungsprogrammschnittstelle der Steuerungslaufzeit gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Modus der Erfindung
-
Nachstehend wird ein Verfahren eines Steuerns eines Robotersystems unter Verwendung einer Laufzeit und eine Vorrichtung davon gemäß einigen Ausführungsformen der vorliegenden Erfindung detailliert beschrieben werden mit Referenz auf die beigefügten Zeichnungen.
-
Dies jedoch ist in keinerlei Hinsicht, um die vorliegende Erfindung einzuschränken auf bestimmte Ausführungsformen, und es soll verstanden werden, dass alle Permutationen, Äquivalente und Substitute, die durch die technischen Ideen und Bereiche der vorliegenden Erfindung abgedeckt sind, in dieser Beschreibung enthalten sind. Beim Beschreiben der vorliegenden Erfindung, wenn gewisse detaillierte Beschreibung von relevanter bekannter Technik betrachtet wird als das Wesentliche der vorliegenden Erfindung zu umgehen, wird solch detaillierte Beschreibung weggelassen werden. Ferner wird jeglichen identischen oder korrespondierenden Elementen ein gleiches Bezugszeichen zugeordnet, und keine redundante Beschreibung davon wird bereitgestellt werden.
-
1 illustriert eine Umgebung, in welcher ein Robotersteuerungssystem unter Verwendung einer Laufzeit realisiert ist gemäß einer Ausführungsform der vorliegenden Erfindung. Bezugnehmend auf 1 kann das Robotersystem 100 eine Mastersteuerung 110, eine Laufzeiteinheit 120, eine erste Slavesteuerung 130 und eine zweite Slavesteuerung 140 enthalten. Die Mastersteuerung 110 kann mit einem Hostcomputer 150 kommunizieren, um ein Benutzerkommando zu erhalten.
-
Das Robotersystem 100 kann enthalten eine Mehrzahl von Manipulatoren, welche gesteuert werden können durch die Mastersteuerung 110 und/oder die Slavesteuerungen 130, 140.
-
Die Mastersteuerung 110, welche eine Hauptsteuerung des Robotersystems 100 ist, kann das Benutzerkommando von dem Hostcomputer 150 empfangen und die Slavesteuerungen 130, 140 und/oder die Manipulatoren verwalten/steuern. Die Mastersteuerung gemäß einer Ausführungsform der vorliegenden Erfindung benutzt nicht ein einfaches Bootloaderverfahren, sondern wendet die Laufzeiteinheit 120 an, um die Verwaltungseffizienz des Robotersystems 100 zu verbessern.
-
Die Slavesteuerungen 130, 140 können ein Firmwaremodul enthalten, in welchem Funktionen, benötigt für Steueroperationen jedes Slavetreibers, realisiert sind in der Form von Firmware. Die Slavesteuerungen 130, 140 können verbunden mit der Mastersteuerung 110 durch eine Kommunikationseinheit und verwaltet durch die Mastersteuerung 110 sein.
-
Der Hostcomputer 150 ist ein Endgerät, verwendet von einem Nutzer des Robotersystems 100, um das Robotersystem 100 zu steuern und kann irgendwas von einer Vielfalt von bekannten Endgeräten zusätzlich zu einem Computer sein. Der Nutzer kann auf die Laufzeiteinheit 120 der Mastersteuerung 110 durch den Hostcomputer 150 zugreifen, um das Robotersystem 100 zu verwalten.
-
2 zeigt eine Konfiguration einer Robotersteuerungsvorrichtung unter Verwendung einer Laufzeit gemäß einer Ausführungsform der vorliegenden Erfindung. Bezugnehmend auf 2 kann die Mastersteuerung 110 gemäß einer Ausführungsform der vorliegenden Erfindung eine Operationseinheit 112, eine Speichereinheit 114, eine Kommunikationseinheit 118 und eine Laufzeiteinheit 120 enthalten.
-
Die Operationseinheit 112, welche einer zentralen Verarbeitungseinheit (CPU) der Mastersteuerung 110 entspricht, kann den Fluss von Signalen innerhalb der Mastersteuerung 110 steuern und physikalische Operationen für Funktionen ausgeführt durch die Mastersteuerung 110 durchführen. Beispielsweise kann die Operationseinheit 112 gemäß einer Ausführungsform der vorliegenden Erfindung eine Operation zum Ausführen einer Laufzeit durch Steuern der Laufzeiteinheit 120 durchführen und den Fluss von Signalen in der Robotersystemsteuervorrichtung steuern.
-
Die Speichereinheit 114, die ein Platz zum Speichern von Daten, benötigt zum Durchführen der Funktionen der Mastersteuerung 110, ist, kann einem Speicherchip in einer Mastersteuerung entsprechen. Speziell kann die Speichereinheit 114 einen Laufzeitcode zum Ausführen einer Laufzeit, eine Laufzeitsymboltabelle, einen Anwendungscode zum Realisieren der Funktionen des Robotersystems, Daten benötigt wenn eine Anwendung ausgeführt wird, und Ergebnisdaten eines Ausführens der Anwendung speichern. Beispielsweise kann die Speichereinheit 114 der Mastersteuerung 110 gemäß einer Ausführungsform der vorliegenden Erfindung unterschieden werden in ein RAM 115 und einen nicht-flüchtigen Speicher 116.
-
Der RAM 115 kann die Funktion eines Speicherns von Information zum Betreiben der Mastersteuerung 110 ausführen. Das RAM 115 hat allgemein eine schnellere Antwortgeschwindigkeit als der nicht-flüchtige Speicher 116 und initialisiert seine Inhalte wenn Energie abgeschnitten ist. Der RAM 115 kann eine Vielfalt von Daten gemäß dem Zustand, in dem das Robotersystem 100 manövriert wird, speichern.
-
Der nicht-flüchtige Speicher 116, welche seine Inhalte behält selbst wenn Energie abgeschnitten ist, kann realisiert werden in einem Flash-Speicher und dergleichen. Der nicht-flüchtige Speicher 116 kann einen Laufzeitcode, eine Laufzeitsymboltabelle, einen Anwendungscode zum Realisieren der Funktionen des Robotersystem, und Anwendungsdaten, resultierend von Ausführen einer Anwendung, speichern. Daten; gespeichert in der Speichereinheit 114 gemäß Operationsschritten des Robotersystems 110, werden später detailliert beschrieben werden unter Bezugnahme auf 4 bis 7.
-
Die Kommunikationseinheit 118 kann mit dem Hostcomputer des Robotersystems 100 kommunizieren. Das heißt, die Kommunikationseinheit 118 kann Transfer von Signalen zwischen der Mastersteuerung 110 und dem Hostcomputer 150 handhaben. Zusätzlich kann die Kommunikationseinheit 118 Kommunikation zwischen der Mastersteuerung 110 und einer anderen Komponente des Robotersystems 100, beispielsweise der Slavesteuerung, dem Manipulator und dergleichen, handhaben. Der Transfer von Signalen für die Steuerung des Robotersystems 100 kann realisiert werden mit verschiedenen Mitteln, wie beispielsweise TCP-Sockel-Kommunikation (englisch: TCP socket communication), UDP-Kommunikation, TFTP-Kommunikation usw., und die Kommunikationseinheit 118 kann Nerzwerkhardware, die solche Kommunikationsmittel handhabt, entsprechen.
-
Konfigurationen von anderer benötigter Hardware, die die Mastersteuerung 110 konstituiert, sind gut bekannt denjenigen, die von normaler Fähigkeit in der Technik sind, zu der die vorliegende Erfindung gehört, und daher wird detaillierte Beschreibung davon weggelassen werden. Operationen der Mastersteuerung 110 für die Steuerung des Robotersystems 100 und die Konfiguration der Laufzeiteinheit 120 werden detailliert beschrieben werden unter Bezugnahme auf die anderen Zeichnungen.
-
3 zeigt eine Konfiguration einer Laufzeiteinheit 120 der Mastersteuerung 110 gemäß einer Ausführungsform der vorliegenden Erfindung. Bezugnehmend auf 3 sind Funktionen, die durch die Laufzeiteinheit 120 gemäß einer Ausführungsform der vorliegenden Erfindung durchgeführt werden können in Blöcken illustriert. Jedoch ist, was illustriert ist, nur für die Bequemlichkeit von Beschreibung und Verständnis, und es soll verstanden werden, dass die Funktionen verschieden unterteilt oder kombiniert mit 2 oder mehr anderen Funktionen werden können in der Konfiguration der Laufzeiteinheit 120.
-
Die Laufzeiteinheit 120 gemäß einer Ausführungsform der vorliegenden Erfindung kann enthalten eines oder mehreres von einem Hardwarevorrichtungstreibermodul 310, einem Hardwareverwaltungsmodul, einem Speicherverwaltungsmodul, einem Kommunikationsprotokollmodul, einem Nutzerkommandoschnittstellemodul, einem Simulatorschnittstellemodul, einem Datenloggermodul 320, einem Steuerungsformverwaltungsmodul 330, einem Anwendungsladermodul 340, einem Anwendungsprogrammschnittstellemodul 350 und einem Betriebssystemkern 360.
-
Das Steuerungsformverwaltungsmodul 330 kann die Slavesteuerung, eingebettet in das Robotersystem, erkennen und die Konfiguration von Systeminformation dynamisch verwalten.
-
Der Betriebssystemkern 350 kann die Komponenten gemäß ihrer Funktionen verwalten, wie ein Kern (englisch: kernel) eines gewöhnlichen Betriebssystems.
-
Das Hardwarevorrichtungstreibermodul 310 kann einen Treiber zum Treiben von Hardwarekomponenten der Mastersteuerung 110 unterstützten. Entsprechend verwenden die Komponenten der Laufzeiteinheit 120 Hardwareressourcen durch das Hardwarevorrichtungstreibermodul 310, und Information über die Verwendung von Hardware kann verwaltet werden durch eine Hardwareverwaltungsfunktion und eine Speicherverwaltungsfunktion.
-
Das Datenloggermodul 320 kann Logdaten für Operationen der Mastersteuerung 110, das Robotersystem 100 steuernd, und der Slavesteuerungen 130, 140 sammeln und aufzeichnen. Solche Steuerlogdaten können zu dem Hostcomputer 150 gesendet werden. Das Datenloggermodul 320 kann Information mit dem Hostcomputer austauschen durch, beispielsweise, TCP-IP-Sockel-Kommunikation.
-
Das Anwendungsladermodul 340 kann eine Symboltabelleladefunktion und eine Anwendungsprogrammladefunktion zum Realisieren der Funktionen des Robotersystems 100 bereitstellen.
-
Hier kann das Anwendungsladermodul 340 eine Funktion eines Ladens eines Datenwerts einer Symboltabelle, welche spezifisch vorbereitet ist für den Nutzer, in einem Anwendungsprogramm, ausgeführt durch das Anwendungsprogrammschnittstellemodul 350, bereitstellen. Ferner kann das durch einen Anwendungsprogrammlader ausgeführte Anwendungsprogramm die Funktionen einer Laufzeit durch eine Anwendungsprogrammschnittstelle der Laufzeit aufrufen und verwenden. Detaillierte Operationen des Anwendungsladermoduls 340 werden beschrieben werden unter Bezugnahme auf 9.
-
Das Anwendungsprogrammschnittstellemodul 350 kann einen Anwendungscode ausführen durch Verwendung eines Systemaufrufs eines Betriebssystems des Robotersystems 100. Ferner kann ein Parameter, auf den Bezug genommen wird durch die Ausführung des Anwendungscodes, transferiert werden unter Verwendung einer Registrierung einer Vorrichtung, die das Robotersystem steuert. In anderen Worten ist das Anwendungsprogrammschnittstellemodul 350 ein Modul, das API unterstützt, die Ausführung eines Anwendungsprogramms durch Verwendung eines Systemaufrufs bereitgestellt durch das Betriebssystem des Robotersystems unterstützend. Aufrufen und Ausführen einer Anwendungsprogrammschnittstelle werden unter Bezugnahme auf 10 beschrieben werden.
-
Das Nutzerkommandoschnittstellemodul kann eine Funktion eines Empfangens eines Nutzerkommandos von dem Hostcomputer 150 und Antwortens auf den Hostcomputer 150 mit einem Ergebniss eines Durchführens des Nutzerkommandos bereitstellen. Das Simulatorschnittstellemodul kann eine Schnittstelle mit Robotersimulationssoftware, installiert auf dem Hostcomputer, bereitstellen.
-
In der Laufzeiteinheit 120 der Mastersteuerung 110 gemäß einer Ausführungsform der vorliegenden Erfindung, kann ein universeller asynchroner Empfänger/Sender (UART), Ethernet, IP (Internet-Protokoll), ARP (Adress-Auflösungs-Protokoll), TCP (Übertragungs-Steuer-Protokoll), UDP (Nutzer-Datagram-Protokoll), TFTP (Trivial-Datei-Übertragungs-Protokoll) und dergleichen ein Kommunikationsprotokoll unterstützen.
-
4 ist ein Flussdiagramm, das ein Verfahren eines Steuerns eines Robotersteuerungssystem gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. 5 illustriert eine Laufzeitladeoperation einer Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung. 6 illustriert Schritte eines Ladens eines Anwendungsprogramms der Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung. 7 illustriert Schritte eines Ablaufens eines Anwendungsprogramms der Steuerung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
In dem Schritt eines Hochfahrens einer eingebetteten Steuerung durch Verwendung eines Bootloaders (S410) wird die Mastersteuerung 110 initialisiert unter Verwendung des Bootloaders. Das heißt, in diesem Schritt werden die Mastersteuerung 110 und/oder die Slavesteuerungen 130, 140 initialisiert für eine Steuerung des Robotersystems 100. Durch diese Initialisierungsprozedur kann eine Laufzeit bereit sein für ein Laden in der Mastersteuerung 110. Initialisieren des Robotersystems durch den Bootloader ist gut bekannt denjenigen von gewöhnlicher Fähigkeit in der Technik und wird daher im Folgenden nicht beschrieben werden.
-
In dem Schritt eines Ladens einer Laufzeit (S420), nachdem die Initialisierung des Robotersystems 100 durch den Bootloader fertig ist, wird ein Starten der Laufzeiteinheit 120 vorbereitet. Bezugnehmend auf 5 kann der Laufzeitladeschritt ausgeführt werden durch ein Laden eines Laufzeitcodes in den RAM 115 aus dem nicht-flüchtigen Speicher 116 der Mastersteuerung 110. Wenn die Mastersteuerung 110 initialisiert und durch den Bootloader hochgefahren ist, kann der Bootloader einen Laufzeitausführungscode, welcher in dem nicht-flüchtigen Speicher gespeichert ist, in den RAM 115 laden. Wenn der Laufzeitausführungscode aus dem Flash-Speicher durch den Bootloader geladen ist, übergibt der Bootloader ein Steuerrecht der Steuerung und führt die Laufzeit aus. In anderen Worten wird in diesem Schritt die Laufzeiteinheit 120 ausgeführt durch Laden des Laufzeitausführungscodes in dem Speicher der Mastersteuerung 110. Wenn die Laufzeit ausgeführt wird, können Laufzeitdaten erzeugt werden gemäß einer Initialisierungsinformation, die in den Laufzeitausführungscode programmiert ist.
-
In dem Schritt eines Ladens eines Anwendungsprogramms (S430) wird ein Anwendungsprogramm des Robotersystems geladen unter Verwendung des Anwendungsladermoduls 340 der Laufzeiteinheit 120. Das heißt, das Anwendungsprogamm zum Realisieren der Funktionen des Robotersystems wird geladen während die Laufzeiteinheit 120 der Mastersteuerung 110 ausgeführt wird. Bezugnehmend auf 6 kann Laden des Anwendungsprogramms ausgeführt werden durch Laden der Laufzeitsymboltabelle und des Anwendungsprogramms (Anwendungscode 1, Anwendungscode N) in den RAM 115. Der Nutzer des Hostcomputers 150 kann die Laufzeitsymboltabelle durch die Laufzeiteinheit 120 korrigieren.
-
In dem Schritt eines Ausführens des Anwendungsprogramms (S440) wird das Anwendungsprogramm ausgeführt unter Verwendung des Anwendungsprogrammschnittstellemoduls 350 der Laufzeiteinheit 120. Das heißt, die Funktionen des Robotersystems 100 werden realisiert durch Ausführen des geladenen Anwendungsprogramms. Hier verwendet das Anwendungsprogrammschnittstellemodul 350 den Systemaufruf des Betriebssystems des Robotersystems 100, und ein Parameter zum Ausführen des Anwendungsprogramms kann transferiert werden unter Verwendung einer Registrierung der Mastersteuerung 110. Wenn ein Laden des Anwendungscodes vollständig ist, erzeugt die Laufzeiteinheit 120 dynamisch einen Prozess und führt den Anwendungscode aus. Hier kann der Anwendungscode Anwendungsdaten erzeugen gemäß der Initialisierungsinformation und, falls notwendig, auf die Laufzeitsymboltabelle Bezug nehmen zum Korrigieren der Anwendungsdaten. Jedes Anwendungsprogramm kann erzeugt und verwaltet werden als ein separater Prozess durch das Betriebssystem. Als solche kann die Laufzeiteinheit 120 der Mastersteuerung 110 eine Anzahl von Anwendungsprogrammen simultan laden und ausführen.
-
8 zeigt eine Steuerungs-Anwendungs-Host-Schnittstelle gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Wie oben beschrieben kann die Laufzeiteinheit 120 der Mastersteuerung 110 Information mit dem Hostcomputer 150 austauschen durch eine Anwendungs-Host-Schnittstelle. Wie in 8 illustriert, kann die Anwendungs-Host-Schnittstelle enthalten ein Nutzerkommandoschnittstellemodul, ein Simulatorschnittstellemodul, das Steuerungsformverwaltungsmodul 330, ein Speicherdateisystemmodul und das Anwendungsladermodul 340.
-
Das Nutzerkommandoschnittstellemodul kann Daten mit dem Hostcomputer durch TCP-Sockel-Kommunikation austauschen. Wenn der Nutzer ein Robotersteuerkommando durch ein Nutzerkommandofenster des Hostcomputers 150 eingibt, kann das Nutzerkommandoschnittstellemodul der Anwendungs-Host-Schnittstelle der Mastersteuerung 110 das Robotersteuerkommando empfangen und ausführen und mit dem Ergebnis einer Ausführung in dem Nutzerkommandofenster antworten.
-
Das Simulatorschnittstellemodul kann Daten mit einem Robotersimulator des Hostcomputers durch TCP-Sockel-Kommunikation austauschen.
-
Das Speicherdateisystemmodul kann mit einem TFTP-Konsole-Fenster des Hostcomputers durch TFTP-Kommunikation verbunden sein. Der Nutzer kann eine Datei von und zu der Mastersteuerung 110 herunterladen oder hinauf laden und einen Dateinamen ändern und/oder löschen durch ein TFTP-Kommando.
-
Operationen des oben genannten Nutzerkommandoschnittstellenmoduls, Simulatorschnittstellenmoduls, Steuerungsformverwaltungsmoduls 330, Speicherdateisystemmoduls, Anwendungsladermoduls 340 und Anwendungsprogrammschnittstellenmoduls 350 können überwacht werden durch einen Datenloggerclient. Die überwachte Information kann gesendet werden an einen Datenloggerserver des Hostcomputers 150 durch UDP-Sockel-Kommunikation.
-
9 zeigt eine Operation eines Anwendungsladers, enthalten in der Steuerungslaufzeit, gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Wie oben beschrieben kann das Anwendungsladermodul 340 die Anwendungsprogrammladefunktion und die Symboltabelleladefunktion bereitstellen. Hier kann die Laufzeitsymboltabelle konfiguriert werden durch ein Nutzerkommando oder in einer Dateiform zum Speichern in dem Flash-Speicher. Ferner kann das Anwendungsprogramm gespeichert werden in dem Flash-Speicher in einer ELF(ausführbares und linkbares Format)-Datei-Form durch einen Anwendungsprogrammentwickler. Die ELF-Datei-Form des Anwendungsprogramms kann ein Codesegment, ein Datensegment und ein zusätzliches Segment des Programms enthalten.
-
Wenn das Anwendungsladermodul 340 ausgeführt wird kann die Laufzeitsymboltabelle geladen werden. Wenn das Laufzeitsymbol geladen ist, kann jedes Programmsegment extrahiert werden durch Analysieren eines Programmkopfes (englisch: program header) von der ELF-Datei, und das extrahierte Programmsegment kann geladen werden in den RAM 115. Wenn das Laden des Anwendungsprogramms fertig ist, kann das Anwendungsladermodul 340 die schon geladene Laufzeitsymboltabelle durchsuchen, um Symboldaten, übereinstimmend mit den Symboldaten des Anwendungsprogramms, zu finden, und die übereinstimmenden Symboldaten in einen Datenbereich des Anwendungsprogramms laden.
-
Wenn das Anwendungsprogramm und die Symboltabelle geladen sind, kann die Laufzeiteinheit 120 einen Systemaufruf des Betriebssystems aufrufen, um einen neuen Anwendungsprogramm zu erzeugen und das Anwendungsprogramm auszuführen. Nachdem das Anwendungsprogramm einem neuen Prozess von dem Betriebssystem zugeordnet und ausgeführt ist, kann das Anwendungsprogramm einen separaten Thread in dem Programm erzeugen und ausführen.
-
10 zeigt eine Anwendungsprogrammschnittstelle der Steuerungslaufzeit gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Das Anwendungsprogrammschnittstellemodul 350, bereitgestellt durch die Laufzeiteinheit 120 der Mastersteuerung 110, kann enthalten eine Bewegungs-API, POSIX-APO, eine Kommunikations-API, eine Steuerungs-API und eine Eingabe-/Ausgabe-API. Verschiedene Anwendungsprogramme zum Realisieren des Robotersystems 100 können ausgeführt werden durch Aufrufen der Anwendungs-Programm-Schnittstelle (API) der Laufzeiteinheit 120 durch einen Systemaufruf, bereitgestellt durch das Betriebssystem.
-
Ein Parameter, transferiert mit einer Anforderung für API, und eine Systemaufrufnummer entsprechend der aufgerufenen API kann kopiert werden in die Systemregistrierung der Mastersteuerung 110. Wenn ein Systemaufruf gemacht ist durch Aufrufen der API in dem Anwendungsprogramm, kann eine Softwareunterbrechung (englisch: software interrupt) auftreten, so dass das Betriebssystem den Systemaufruf empfangen und verarbeiten kann.
-
Wenn die Softwareunterbrechung aufgetreten ist durch das Anwendungsprogramm, ruft ein Systemaufrufhandhaber (englisch: system call hander) des Betriebssystems die angeforderte API auf und führt sie aus durch Bezugnehmen auf eine Handhaberadresse (englisch: handler address; API-Adresse) des passenden Systemaufrufs, registriert in der Systemaufruftabelle des Betriebssystems. Hier kann die angeforderte API verarbeitet werden durch Empfangen eines API-Anforderungs-Parameters, gespeichert in der Systemregistrierung der Mastersteuerung 110. Wenn die API aufgerufen und ausgeführt ist durch die Softwareunterbrechung und den Systemaufruf, kann ein Ausführungsergebnis zurückgegeben werden zu dem Anwendungsprogramm durch den Softwareunterbrechungsbehandler.
-
Bisher ist für die Bequemlichkeit von Beschreibung und Verständnis eine bestimmte Ausführungsform der vorliegenden Erfindung beschrieben worden. Es soll es jedoch verstanden werden, dass Permutationen der vorliegenden Erfindung möglich sind ohne von den wesentlichen Merkmalen der vorliegenden Erfindung abzuweichen durch diejenigen, die von normaler Fähigkeit in der Technik, zu der die vorliegende Erfindung gehört, sind. Daher soll die offenbarte Ausführungsform verstanden werden in beschreibenden Perspektiven, nicht einschränkenden Perspektiven. Der Umfang der vorliegenden Erfindung soll definiert werden durch die angehängten Ansprüche, anstatt der obigen Beschreibung, und alle Differenzen innerhalb des äquivalenten Umfangs sollen verstanden werden als in der vorliegenden Erfindung enthalten.