DE19728726A1 - Robotercontroller und dessen Steuerverfahren - Google Patents
Robotercontroller und dessen SteuerverfahrenInfo
- Publication number
- DE19728726A1 DE19728726A1 DE19728726A DE19728726A DE19728726A1 DE 19728726 A1 DE19728726 A1 DE 19728726A1 DE 19728726 A DE19728726 A DE 19728726A DE 19728726 A DE19728726 A DE 19728726A DE 19728726 A1 DE19728726 A1 DE 19728726A1
- Authority
- DE
- Germany
- Prior art keywords
- event
- program
- task
- processing
- real
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/31—From computer integrated manufacturing till monitoring
- G05B2219/31293—Enter size measurements, store in data base, analyze and identify in size data group
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33095—External clock delivers interrupts for real time execution of programs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34258—Real time system, qnx, works together with non real time system, windows nt
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34266—Windows-95
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34338—Execute control tasks, programs as well as user, application programs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/34—Director, elements to supervisory
- G05B2219/34383—Dynamic preemptive, special event register manages time slices for applications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40389—Use robot control language also to write non robotic user, application programs
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Description
Die Erfindung betrifft einen Robotercontroller und dessen Steuerverfahren. Insbesondere bezieht
sich die Erfindung auf Robotercontroller und typische Personal-Computer-(PC)-Betriebssysteme,
die die mit dem Auftreten von Ereignissen verknüpfte Verarbeitung auf Echtzeit-Basis ausführen.
Die meisten herkömmlichen Robotercontroller und ihre Steuerverfahren sind dazu ausgelegt, den
Betrieb spezieller Manipulatoren wie SCARA-Manipulatoren und in kartesischen Koordinaten
gesteuerte Manipulatoren zu steuern. Zu diesem Zweck setzen die herkömmlichen Robotercon
troller (nachfolgend auch als "RC" abgekürzt unabhängig entwickelte Robotercontroller-Betriebs
systeme (RC-Betriebssysteme) ein.
In den letzten Jahren ist jedoch ein zunehmender Bedarf an Robotercontrollern aufgetreten, die
über die Steuerung des Betriebs der Manipulatoren hinaus zur Steuerung des gesamten Systems
in der Lage sind, etwa auch periphere Einrichtungen zu steuern oder mit externen Einrichtungen
zu kommunizieren. In solchen Fällen muß als RC-Betriebssystem ein zu Multitasking befähigtes
Betriebssystem eingesetzt werden. Zur Erfüllung dieser Forderung werden in den meisten Fällen
entweder proprietäre Betriebssysteme oder allgemeine Echtzeit-Betriebssysteme verwendet, wie
sie etwa unter den Bezeichnungen pSOS® (Warenzeichen der Integrated Corporation), VxWorks®
(Warenzeichen der WindRiver Systems Corporation), VTRX® (Warenzeichen der MicroTech
Research Corporation), OS-9, etc. bekannt sind.
Da die Steuerung von Manipulatoren und peripheren Einrichtungen eine Echtzeit-Verarbeitung
erfordert, ist die Fähigkeit zu einer solchen Echtzeit-Verarbeitung eine wesentliche Forderung an
ein RC-Betriebssystem.
Die Entwicklung proprietärer Betriebssysteme, die eine Echtzeit-Verarbeitung ermöglichen,
erfordert einen enormen Arbeitsaufwand. Während die allgemeinen Echtzeit-Betriebssysteme
andererseits problemlos Echtzeit-Verarbeitungsfähigkeit besitzen, führen ihre hohen Kosten zu
ökonomischen Problemen.
In letzter Zeit sind preiswerte PC-Betriebssysteme auf den Markt gekommen und werden in
großem Umfang eingesetzt. Wenn solch ein PC-Betriebssystem für einen Robotercontroller
eingesetzt werden kann, ist es möglich, sowohl den Aufwand an Entwicklungsarbeit als auch die
Kosten wesentlich zu reduzieren. Dieser Weg bietet die zusätzlichen Vorteile des für die Benutzer
leichten Trainings, weiterer Verminderung von Entwicklungsvorlaufzeiten wegen der Verfügbar
keit eines ganzen Bündels von Entwicklungswerkzeugen, sowie der Möglichkeit der Ausweitung
der Anwendungen durch Verwendung von ab Lager lieferbarer Hardware und Software.
Obwohl jedoch preiswerte PCs und PC-orientierte Betriebssysteme Multitasking-Fähigkeiten
bieten, ist ihr Taskwechselbetrieb langsam, und eine Verminderung der Schaltintervalle ist
unmöglich, weshalb es schwierig ist, eine Echtzeit-Verarbeitung sicherzustellen.
Da, wie zuvor erwähnt, die Steuerung von Manipulatoren und peripheren Einrichtungen eine
Echtzeit-Verarbeitung erfordert, kann kein System in der Praxis eingesetzt werden, bei dem eine
lange Zeit zwischen dem Auftreten eines Ereignisses und dem Anlauf des Tasks zur Verarbeitung
dieses Ereignisses vergeht.
Ein weiterer komplizierender Faktor ist der, daß, wenn einer der vorerwähnten PCs oder eines der
PC-orientierten Betriebssysteme verwendet wird, die Zeitspanne zwischen dem Auftreten eines
Ereignisses und dem Hochlauf (Booten) des Tasks zur Verarbeitung des Ereignisses abhängig von
dem Zeitpunkt, zu dem das Ereignis auftrat, sehr stark variieren kann. Diese Tatsache vermindert
die Qualität der Verarbeitung im Hinblick auf die Reproduzierbarkeit.
Wenn daher ein schneller Taskwechsel und eine Verminderung der Bootzeitschwankung bei
irgendeinem der vorgenannten PCs und PC-Betriebssysteme, den sogenannten Nicht-Echtzeit-
Betriebssystemen, erzielbar ist, können Robotercontroller mit geringerem Entwicklungsaufwand,
mit höherem Funktionalitätsgrad, mit verbesserter Benutzer-Erlernbarkeit und mit größerem
Erweiterungspotential durch die Verwendung von ab Lager erhältlicher Hardware und Software
geschaffen werden, während die den vorgenannten PC-Betriebssystemen eigenen verschiedenen
Vorteile voll genutzt werden.
Die vorliegende Erfindung befaßt sich mit diesen Problemen, und ihre Aufgabe ist es, einen
Robotercontroller sowie dessen Steuerungsverfahren unter Verwendung eines allgemeinen PCs
und eines allgemeinen Betriebssystems für PCs zu schaffen.
Diese Aufgabe wird erfindungsgemäß mit einem Roboterantriebscontroller gemäß Anspruch 1
bzw. einem Steuerverfahren gemäß Anspruch 7 gelöst.
Im Rahmen des vorliegenden Textes bezieht sich der Begriff "preemptive-Methode" allgemein auf
die Unterteilung der CPU-Verarbeitung in feste Zeitscheiben, so daß das Betriebssystem den
Anwendungen CPU-Zeit nach Maßgabe eines Prioritätenschemas zuweist. Anders ausgedrückt,
der Begriff schließt den Fall ein, daß, bevor eine Anwendung die CPU freigibt, das Betriebssy
stem mit jeder Zeiteinheit die Verarbeitung übernimmt und die CPU zu einer anderen Anwendung
umschaltet. Wenn folglich mehrere Anwendungen in einem preemptiven Multitasking-Schema
ausgeführt werden, braucht eine Anwendung nicht darauf zu warten, daß eine andere Anwen
dung ihre Verarbeitung beendet. Dies reduziert wesentlich die von dem Benutzer realisierte
Wartezeit und verbessert den scheinbaren Wirkungsgrad des Computers.
Gemäß der im Anspruch 1 definierten Lösung wird in bestimmten Wiederhol-Intervallen festge
stellt, ob ein Ereignis aufgetreten ist, so daß der Task, in welchem die mit dem Ereignis verbun
dene Verarbeitung ausgeführt wird, angesteuert werden kann. Indem somit eine Ereignistreiber
verarbeitung bei jedem Wiederhol-Intervall, das zur Handhabung von Ereignissen auf einer
Echtzeit-Basis nötig ist, ausgeführt wird, können Steuerungen so bewirkt werden, daß die
Verarbeitung zur Handhabung der Ereignisse in Echtzeit ausgeführt wird.
Ein weiteres Aspekt ist ein integriertes Management der zu verarbeitenden Ereignisse, was das
Management von Ereignissen vereinfacht.
Gemäß dem Verfahren nach Anspruch 7 kann ein externer Zeitgeber zur Erzeugung von externen
Interruptsignalen zu den Wiederhol-Intervallen eingesetzt werden, die ausreichen, um auf das
Auftreten von Ereignissen in Echtzeit zu reagieren. Indem eine Ereignistreiberverarbeitung
synchron mit den Interruptsignalen durchgeführt wird, können selbst typische PCs und typische
PC-Betriebssysteme, die aufgrund von Zeitscheiben oder internen Interrupts auf der Basis eines
Systemzeitgebers die vorgenannten Wiederhol-Intervalle nicht gewährleisten können, eine
Ereignistreiberverarbeitung in Echtzeit steuern.
Die Task-Wechseleinrichtung umfaßt vorzugsweise eine Zeitteilungseinrichtung, die die Zeit mit
den vorgenannten Wiederhol-Intervallen unterteilt, das heißt Zeitscheiben bildet, so daß die
Ereignistreibereinrichtung einseitig eine Ereignistreiberverarbeitung zu jeder von der Zeiteintei
lungseinrichtung erzeugten Zeitscheibe ausführt. Der Ereignistreiberschritt kann so konfiguriert
werden, daß er die Ereignistreiberverarbeitung zu jeder der Zeitscheiben ausführt, die das
vorgenannte allgemeine Betriebssystem zu den vorgenannten Wiederhol-Intervallen ausführt.
Auf diese Weise kann die Ereignistreiberverarbeitung als ein Task implementiert werden, der
einseitig zu jeder Zeitscheibe verarbeitet wird. Folglich kann eine ereignisgesteuerte Verarbeitung
so gesteuert werden, daß sie in einer einfachen Konfiguration in Echtzeit ausgeführt wird.
Gemäß den Weiterbildungen der Ansprüche 3 bzw. 8 kann eine dynamische Zuordnung
zwischen Ereignissen und den die zugehörige Verarbeitung ausführenden Programmen erstellt
werden, was eine effektive Nutzung der Systemressourcen sicherstellt. Durch Rücksetzen des
Ereigniserwartungszustands am Ende der Ereignistreiberverarbeitung ist es möglich, Ereigniser
wartungszustände und Ereigniserwartungsfreigabeaktionen in Echtzeit zu verfolgen.
Die Hardwareressourcen in den Ansprüchen 4 bzw. 9 umfassen I/O-(Eingabe/Ausgabe)-Ports, auf
den Speicher abgebildete I/O-Ports, die eigentlichen Manipulatoren, System-I/O-Einheiten, die in
einer Treiberbox untergebracht sind, und spezielle mit den ISA-Bus verbundene Schaltungskar
ten. Der Begriff "Programm" bezieht sich auf Benutzertasks, die Manipulatoroperationen und
periphere Einrichtungen steuern, sowie auf Programme, die in Systemtasks ausgeführt werden,
um unter anderem die internen Zustände von Controllern zu überwachen.
Indem somit die verschiedenen Zustände, die in einem Roboter auftreten, als Ereignisse behan
delt werden, ist es möglich, die Verarbeitung entsprechend diesen Ereignissen in Echtzeit
auszuführen.
Gemäß der Weiterbildung der Ansprüche 5 bzw. 10 sieht die Erfindung eine Ereignisressourcen
tabelle vor, die die Zustände von Ereignisressourcen in einem gemeinsam genutzten Speicherbe
reich speichert, der von mehreren Tasks abgefragt und aktualisiert werden kann. Der zutreffende
Bereich in der vorgenannten Ereignisressourcentabelle entsprechend den Zuständen der Ereignis
ressourcen, die durch die Ausgabe von Programmen, die in den verschiedenen Tasks verarbeitet
werden, geändert werden, wird aktualisiert. Durch Abfragen der vorgenannten Ereignisressour
centabelle ist es daher möglich, Ereignisse wahrzunehmen, die von Programmausgaben herrüh
ren. Dies erlaubt eine wirkungsvolle Erfassung von Ereignissen.
Da ferner die tatsächlichen Hardwareressourcen aufgrund von Änderungen in den Ereignisres
sourcen, die sich in der Ereignisressourcentabelle widerspiegeln, aktualisiert werden können,
brauchen die in verschiedenen Tasks ausgeführten Programme die tatsächlichen Hardwareres
sourcen nicht zu aktualisieren. Somit führt die Integration der Hardwareressourcen-Aktualisie
rungsprozesse zu einer erhöhten Verarbeitungsgeschwindigkeit.
Normalerweise müssen Programme, die die Tatsache angemeldet haben, daß sie auf das
Auftreten eines Ereignisses warten, in Echtzeit verarbeitet werden, wenn das Ereignis auftritt.
Wenn das Programm jedoch ausgelagert wurde, nimmt das Neuladen des Programms mehrere
zehn oder sogar hunderte Millisekunden in Anspruch. Das Verarbeitungsschema der vorliegenden
Erfindung startet jedoch vorzugsweise die Programme, die auf ein Ereignis warten, auf periodi
scher Basis unabhängig davon, ob tatsächlich ein Verarbeitungserfordernis besteht. Dies
verhindert das Auslagern der Programme und kann damit die Ausführung einer Echtzeit-Verarbei
tung gewährleisten.
Ausführungsbeispiele der Erfindung werden nachfolgend anhand der Zeichnungen im einzelnen
erläutert, es zeigen:
Fig. 1 ein Funktionsblockdiagramm einer Ausführungsform des Robotercontrollers gemäß der
vorliegenden Erfindung,
Fig. 2 die Hardwarekonfiguration des Robotercontrollers in der Ausführungsform von Fig. 1,
Fig. 3 ein Konzeptionsdiagramm eines Beispiels einer von dem Controller ausgeführten
Multitasking-Verarbeitung,
Fig. 4 eine spezielle Abbildung des Ereignisregistrierungsprozesses,
Fig. 5(A) und (B) Flußdiagramme zur Erläuterung der Prozedur, nach der das System Ereignisse in
Echtzeit steuert, und
Fig. 6 ein Funktionsblockdiagramm des Robotercontrollers gemäß einer anderen Ausfüh
rungsform der Erfindung.
Der Robotercontroller der nachfolgend beschriebenen Ausführungsform der Erfindung steuert
entweder Manipulatoraktionen oder die peripheren Einrichtungen. Diese Art von Manipulatorope
ration oder Steuerung einer peripheren Einrichtung kann benutzerangepaßt werden, um benut
zerspezifischen Steuerungen zu entsprechen. Daher schreibt der Benutzer Anwendungspro
gramme für die von den mit dem Controller verbundenen Manipulatoren auszuführenden
Operationen in Robotersteuersprachen, die von dem Controller ausgeführt werden können. Der
Controller ist so konfiguriert, daß Benutzertasks, in denen benutzergeschriebene Manipulator
steuerungs-Anwendungsprogramme sowie Tasks, die eine Systemverarbeitung zur Überwachung
des internen Zustands des Controllers durchführen, auf Multitasking-Basis ausgeführt werden
können.
Fig. 3 ist ein konzeptionelles Diagramm, das ein Beispiel der Multitasking-Verarbeitung zeigt, die
der Controller 10 ausführt. Wie dargestellt, ist der Controller so konfiguriert, daß Programme die
die Anwendungen zur Steuerung der Manipulatorsteuerungs-Verarbeitung 120-1, der Förder
steuerungs-Verarbeitung 120-2, etc. enthalten, auf Multitasking-Basis als Tasks 110-1, 110-2,
usw. ausgeführt werden. Genauer gesagt wird die CPU-Zeit in Zeitscheiben unterteilt und
mehreren Tasks so zugeordnet, so daß mehrere Tasks scheinbar gleichzeitig ausgeführt werden
können.
Bei dieser Art Robotercontroller muß die Steuerung der Manipulatoren und der peripheren
Einrichtungen, die von verschiedenen Programmen ausgeführt werden, in Echtzeit ausgeführt
werden. Wenn daher eine lange Zeit zwischen dem Auftreten eines Ereignisses und dem
Zeitpunkt vergeht, zu dem der Task, der dieses Ereignis verarbeitet, startet, ist der Controller für
praktische Anwendungen nicht sehr nützlich.
Der Robotercontroller 10 der vorliegenden Ausführungsform enthält die folgende Konfiguration,
damit die Verarbeitung der vorerwähnten Ereignisse in Echtzeit ausgeführt werden kann.
Zunächst soll die erforderliche Hardwarekonfiguration des Systems beschrieben werden, die in
Fig. 2 gezeigt ist.
Wie in der Figur gezeigt, sind in dem Controller 10 die Haupt-CPU 210, die Festplatte (HDD)
220, das RAM 230 und die Schnittstellenkarte 240 durch den CPU-Bus 280 miteinander
verbunden. Über einen Erweiterungsbus 290 sind weiterhin eine Treiberbox 260, in der Manipu
latoren 270 und I/O-Einheiten 262 montiert sind, sowie spezielle Schaltungskarten 250, die
unter anderem einen externen Zeitgeber 252 enthalten, mit der Schnittstellenkarte 240 verbun
den.
Das RAM 230 speichert ein Betriebssystem 232, welches den Controller steuert, ein Steuerpro
gramm 234, das die mit den vorgenannten Ereignissen verbundene Verarbeitung ausführt, und
verschiedene Programme und Daten einschließlich vom Benutzer erstellter Anwendungspro
gramme für die Robotersteuerung.
Das Betriebssystem 232 umfaßt ein allgemeines PC-Betriebssystem, bei dem es sich um ein
Allzweck-PC-Betriebssystem handelt, das Standardfunktionen wie preemptives Multitasking
sowie die Ereignissynchronisationsfunktion ausweist. Hierbei handelt es sich allerdings nicht um
ein sogenanntes Echtzeit-Betriebssystem. Daß es sich nicht um ein Echtzeit-Betriebssystem
handelt, verweist auf die Tatsache, daß das Betriebssystem Taskwechsel mit niedriger
Geschwindigkeit ausführt und keine Möglichkeit zur Einstellung kurzer Wechselzeiten bietet.
Folglich ist das Betriebssystem nicht zur Durchführung einer Echtzeit-Verarbeitung in der Lage.
Es sei angemerkt, daß die vorliegende Ausführungsform das als Windows 95® (Warenzeichen der
Microsoft Corporation) bekannte Betriebssystem als allgemeines PC-Betriebssystem einsetzt.
Das Steuerprogramm 234 umfaßt verschiedene Programme und Speicherbereiche, die eine
später beschriebene Ereignistreibereinheit 40, eine Hardwareressourcen-Aktualisierungseinheit
44, eine Ereignisregistriereinheit 60, eine Ereignisressourcenzustands-Speichereinheit 70, eine
Ereignisressourcenzustands-Aktualisierungseinheit 80 und eine Auslagerungsverhinderungseinheit
90 implementieren (siehe Fig. 1).
Die später beschriebene, in Fig. 1 gezeigte Task-Wechseleinheit 30 umfaßt hauptsächlich die
Task-Wechselfunktion des Betriebssystems 232. In ähnlicher Weise verwenden die Ereignistrei
bereinheit 40 und die Ereignisregistriereinheit 60 Teile der Ereignissynchronisationsfunktion des
Betriebssystems 232.
Unter dem Anwendungsprogramm 236 ist ein benutzer-geschriebenes Programm, das in einer
Robotersteuersprache codiert ist, zu verstehen, das die von den Manipulatoren auszuführenden
Operationen beschreibt. Der Begriff "Ereignis" bezieht sich auf die verschiedenen Ereignisse, die
während der Operation eines Manipulators oder während der Steuerung einer peripheren
Einrichtung auftreten. Insbesondere schließt der Begriff Ereignisse ein, die in Manipulatoren 270
oder der Treiberbox 260 auftreten und mit Änderungen der System-I/O-Einheiten 262 verbunden
sind, Ereignisse die mit Änderungen in Hardwareressourcen wie etwa den Schaltungskarten 250
verbunden sind, sowie Ereignisse, die von den Ausgangsdaten erzeugt werden, die von
Programmen 232, 234 und 236 für Zwecke der gegenseitigen Tasksynchronisation und
Kommunikation erzeugt werden. Die System-I/O-Einheiten, die Hardwareressourcen und die
Ausgangsdaten, die Ereignisse erzeugen, werden Ereignisressourcen genannt.
Im folgenden werden die Merkmale erläutert, die den Controller 10 in die Lage versetzen, eine
ereignisgebundene Verarbeitung auf Echtzeit-Basis auszuführen.
Fig. 1 ist ein Funktionsblockdiagramm des Controllers 10. Der Controller 10 umfaßt: die schon
erwähnte Task-Wechseleinheit 30, die Tasks auf preemtiver Basis wechselt, einen externen
Interruptgenerator 50, der einen externen Zeitgeber zur Erzeugung von Interruptsignalen in
vorgegebenen Wiederhol-Intervallen verwendet, eine Ereignistreibereinheit 40, die eine Ereignis
treiberverarbeitung in Synchronisation mit den von dem externen Interruptgenerator 50 erzeug
ten Interruptsignalen ausführt, eine Ereignisregistriereinheit 60, die die Tatsache registriert, daß
das Anwendungsprogramm 136, das die mit dem Auftreten eines Ereignisses verbundene
Verarbeitung ausführt, auf das Auftreten eines Ereignisses wartet, eine Ereignisressourcenzu
stands-Speichereinheit 70, die Ereignisressourcenzustände speichert, um das Auftreten von
Ereignissen zu verfolgen (sich zu merken), eine Ereignisressourcenzustands-Aktualisierungseinheit
80, die die Zustände von Ereignisressourcen aktualisiert, welche in der Ereignisressourcenzu
stands-Speichereinheit 70 gespeichert sind, und eine Auslagerungsverhinderungseinheit 90, die
das Auslagern des Anwendungsprogramms 236 verhindert, welches auf das Auftreten eines
Ereignisses wartet. Der externe Interruptgenerator 50, die Ereignistreibereinheit 40, die Ereignis
registriereinheit 60, die Ereignisressourcenzustands-Speichereinheit 70 und die Ereignisressour
cenzustands-Aktualisierungseinheit 80 arbeiten als Echtzeit-Steuerungseinrichtung 20. Diese
Komponenten steuern und weisen die Task-Wechseleinheit 30 an, Tasks zu wechseln, so daß
die mit dem Auftreten eines Ereignisses verbundene Verarbeitung in Echtzeit ausgeführt werden
kann.
Die Ereignistreibereinheit 40 enthält ferner eine Hardwareressourcen-Aktualisierungseinheit 44,
damit festgelegte Hardwareressourcen, die später beschrieben werden, aktualisiert werden, und
zwar aufgrund der durch die Ereignisressourcenzustands-Aktualisierungseinheit 80 aktualisierten
Informationen.
Der externe Interruptgenerator 50 verwendet einen externen Zeitgeber 252, der auf den mit dem
Erweiterungsbus 290 verbundenen Schaltungskarten 250 bzw. einer von ihnen montiert ist, um
periodisch in festgelegten Wiederhol-Intervallen Interruptsignale zu erzeugen. Im vorliegenden
Text bezieht sich der Begriff "festgelegtes Wiederhol-Intervall" auf das kurze Zeitintervall, das für
den Start des ein Ereignis verarbeitenden Programms auf Echtzeit-Basis nötig ist. Bei der
vorliegenden Ausführungsform ist dieses Intervall auf 1 ms gesetzt.
Wie zuvor angemerkt, ist das im RAM 230 des Controllers 10 gespeicherte Betriebssystem 232
kein sogenanntes Echtzeit-Betriebssystem. Daher kann es die Zeit nicht in Zeitscheiben einteilen,
die Zeitintervalle darstellen, welche zur Erfassung von ereignisverarbeitenden Programmen
innerhalb des Systems kurz genug sind. Daher verwendet die vorliegende Ausführungsform einen
externen Zeitgeber 252 zur Erzeugung von Interruptsignalen in festgelegten Wiederhol-Interval
len, um den gleichen Effekt zu erzielen wie die Erzeugung von 1 ms Zeitscheiben.
Wenn das Betriebssystem 232, das eine Verarbeitung in Reaktion auf das Auftreten eines
Ereignisses ausführt, eine Ereigniserwartungsanforderung ausgibt, registriert die Ereignisregi
striereinheit 60 die Tatsache, daß das Anwendungsprogramm 236 auf das Auftreten eines
Ereignisses warten. Bei dem Anwendungsprogramm 236 handelt es sich um irgendeines der
Programme, die auf Multitasking-Basis ausgeführt werden, um die Manipulatorsteuerungs-
Verarbeitung 120-1, die Fördersteuerungs-Verarbeitung 120-2, etc. zu steuern, wie in Fig. 3
gezeigt. Das Programm ist im RAM 230 gespeichert, wie in Fig. 2 gezeigt. Das Auftreten eines
Ereignisses bezieht sich auf eine Änderung einer Ereignisressource, wie zuvor angemerkt.
Um das Anwendungsprogramm 236, das auf Multitasking-Basis in Reaktion auf eine Änderung in
einer Ereignisressource ausgeführt wird, zu starten, ist es nötig, eine Zuordnung zwischen
Ereignisressourcen und den auf ihre Änderung wartenden Programmen herzustellen. In einem
Zustand, wo es auf eine Änderung einer Ereignisressource warten muß, fordert daher jedes
Anwendungsprogramm 236 die Ereignisregistriereinheit 60 auf, die Tatsache zu registrieren, daß
das Programm auf das Auftreten eines Ereignisses wartet.
Bei Empfang dieser Anforderung, ordnet die Ereignisregistriereinheit 60 die Ereignisressource
einem Ereignisobjekt zu und registriert die Tatsache, daß das Programm auf das Auftreten eines
Ereignisses wartet. Der Begriff "Ereignis" umfaßt in diesem Zusammenhang jedes der verschie
denen zuvor genannten Ereignisse. Ein "Ereignisobjekt" bezieht sich auf die Einheit, mittels derer
das System die verschiedenen Ereignisse verfolgt. Anders ausgedrückt, das System verfolgt
(merkt sich) die Ereignisobjekte, und jedes Ereignisobjekt hat ein Ereignis-Handle als seine eigene
ID (Identifikation).
Die Funktion, mit der das System Ereignisse und Ereignisobjekte verfolgt, kann unter Verwen
dung der Ereignissynchronisationsfunktion des Betriebssystems 232 implementiert werden.
Genauer gesagt, wird der Registrierprozeß wie folgt ausgeführt: die Ereignisregistriereinheit 60
erzeugt bei der Systeminitialisierung eine geeignete Anzahl von Ereignisobjekten.
Wenn von dem Anwendungsprogramm 236 eine Ereignisregistrieranforderung erzeugt wird,
werden Ereignisressourcen irgendwelchen unbenutzten (nicht mit einer Ereignisressource
verknüpfte) Ereignisobjekten zugewiesen. Wenn eine Ereignisregistrieranforderung von einem
anderen Anwendungsprogramm 236 bezüglich einer bereits registrierten Ereignisressource
erzeugt wird, wird das zuvor mit der Ereignisressource verknüpfte Ereignisobjekt verwendet,
statt daß ein neues Ereignisobjekt zugewiesen wird. In diesem Zusammenhang bedeutet der
Begriff "verwenden" daß, wenn ein Ereignis-Handle an ein Anwendungsprogramm zurückgege
ben wird, wie später erläutert, dieses Handle für das Ereignisobjekt dem anderen Anwendungs
programm zurückgegeben wird. Der Begriff "verwenden" umfaßt auch die Erzeugung eines
neuen Ereignisobjekts, wenn dem System die zuvor erzeugten Ereignisobjekte ausgehen.
Wie später beschrieben, registriert die Ereignisregistriereinheit das Ereignisobjekt zur Verwen
dung beim Dummy-Booten (ein Aufruf des Programms, ohne daß diese im Moment wirklich
benötigt wird), um jegliches Auslagern (Swappen) des Anwendungsprogramms 236, das auf das
Auftreten eines Ereignisses wartet, zu verhindern. Zu diesem Zweck verwendet die Ereignisregi
striereinheit ein für jedes Anwendungsprogramm unabhängig erzeugtes Ereignisobjekt. Die
Ereignisregistriereinheit weist dieses Ereignisobjekt jedem Anwendungsprogramm 236 zu, das
eine Ereigniserwartungsanforderung erzeugt hat, und startet das Programm auf einer Dummy-
Basis.
Nach Abschluß des Registrierungsprozesses gibt die Ereignisregistriereinheit 60 das Ereignis-
Handle, bei dem es sich um die Identifikation (ID) für das Ereignisobjekt handelt, an das Anwen
dungsprogramm 236 zurück, das eine Registrierung angefordert hat. Als Ergebnis empfängt das
Anwendungsprogramm 236 sowohl das Ereignis-Handle für ein mit einer Ereignisressource
verbundenes Ereignisobjekt als auch das Ereignis-Handle für ein Ereignisobjekt für einen Dummy-
Start.
Anschließend fordert das Anwendungsprogramm 236 das Betriebssystem 232 auf, es zu starten,
wenn in dem durch das Ereignis-Handle bezeichneten Ereignisobjekt eine Änderung auftritt. Dies
stellt sicher, daß die Programme in einem Bereitschaftszustand sind, bis eine Änderung in der als
Ereignisobjekt registrierten Ereignisressource auftritt oder bis ein Dummy-Startprozeß ausgeführt
wird, um das Auslagern zu verhindern.
Die Korrespondenz zwischen einer Ereignisressource und einem Anwendungsprogramm wird
erstellt, wenn ein Ereignis-Handle an das Anwendungsprogramm zurückgegeben wird. Dieser
Korrespondenzerstellungsprozeß verläßt sich auf die Benutzung der Ereignissynchronisations
funktion, bei der es sich um ein Standardmerkmal des Betriebssystems handelt. Genauer gesagt,
setzt die Ereignissynchronisationsfunktion das Ereignisobjekt in einen signalisierten Zustand, so
daß die Tasks für alle Programme, die das entsprechende Ereignis-Handle haben, gestartet
werden können.
Fig. 4 zeigt ein spezielles Abbild des Ereignisregisterprozesses. Wie zuvor erwähnt, erzeugt die
Ereignisregistriereinheit 60 während der Systeminitialisierung eine geeignete Anzahl von ereignis
identifizierenden Ereignisobjekten (mit entsprechenden Ereignis-Handlen EH1, EH2, EH3, . . . ) für
Anwendungsprogramme, um Ereignisse zu identifizieren, und Dummy-Start-Ereignisobjekte (mit
entsprechenden Ereignis-Handlen DH1, DH2, . . . ) für jedes Anwendungsprogramm (1).
Wenn während der Ausführung eines mit einem Anwendungsprogramm AP2 verbundenen Tasks
eine Situation auftritt, die es erfordert, daß das Programm auf eine Änderung in einer Ereignis
ressource ER2 wartet, gibt das Anwendungsprogramm AP2 eine Registrieranforderung an die
Ereignisregistriereinheit 60 (2). In diesem Prozeß übergibt das Programm die Ereignisressource
ER2 als ein Argument an die Ereignisregistriereinheit 60. Da ein unbenutztes Ereignisobjekt, in
diesem Fall ein Ereignisobjekt (mit dem Ereignis-Handle EH1) der Ereignisressource ER1 zugewie
sen ist (3), weist die Ereignisregistriereinheit 60 ein anderes Ereignisobjekt (mit dem Ereignis-
Handle EH2) der Ereignisressource ER2 zu (4), und gibt das Ereignis-Handle EH2 des Ereignisob
jekts und das Ereignis-Handle DH2 des Ereignisobjekts für die Dummy-Verarbeitung an das
Anwendungsprogramm AP2 zurück (5). Das Anwendungsprogramm AP2 fordert das Betriebssy
stem 232 auf, solange zu warten, bis das Ereignis-Handle EH2 und das durch DH2 gekennzeich
nete Ereignisobjekt, die beide von der Ereignisregistriereinheit 60 zurückgegeben wurden, den
signalisierten Zustand annehmen (6).
Beim Dummy-Start für den Auslagerungsverhinderungsprozeß wird jedoch nur die Dummy-
Verarbeitung ausgeführt, damit das Programm nicht ausgelagert wird. Daher ist die Registrierung
und Ausführung des Dummy-Startprozesses für die Verwendung transparent, wenn der Benutzer
ein Anwendungsprogramm erstellt.
Es können auch mehrere Ereignisressourcen pro Anwendungsprogramm gleichzeitig registriert
werden. Wenn ein Anwendungsprogramm beispielsweise auf Änderungen in mehreren Ereignis
ressourcen (ER1, ER3, ER4) wartet, können Registrieranforderungen an die Ereignisregistrierein
heit 60 unter Verwendung dieser Ereignisressourcen als Argumente ausgegeben werden.
Da ein Ereignisobjekt EH1 bereits mit der Ereignisressource ER1 verbunden ist, werden dieser
Ereignisressource keine neuen Ereignisobjekte zugewiesen. Ein unbenutztes Ereignisobjekt (mit
dem Ereignis-Handle EH3) wird der Ereignisressource ER3 zugewiesen. Wenn keine Ereignisob
jekte vorhanden sind, die der Ereignisressource ER4 zugewiesen werden können, wird ein neues
Ereignisobjekt (mit dem Ereignis-Handle EH4) erzeugt und zugeordnet.
Die Ereignis-Handle EH1, EH3 und EH4 für die zugewiesenen Ereignisobjekte sowie das Ereignis-
Handle DH für eine Dummy-Ereignisobjekt werden an das Anwendungsprogramm zurückgege
ben.
Die Ereignisressourcenzustands-Speichereinheit 70 ist in einem Speicherbereich für gemeinsamen
Zugriff vorgesehen, der von den Tasks abgefragt und aktualisiert werden kann. Die Ereignisres
sourcenzustands-Speichereinheit hält eine Ereignisressourcentabelle, in der die Zustände der
Ereignisressourcen gespeichert sind.
Die Ereignisressourcentabelle ist, wie zuvor erwähnt, so konfiguriert, daß sie die Hardwareres
sourcenzustände für die System-I/O-Einheiten 262 und die Schaltungskarten 250 hält, die in den
Manipulatoren 270 und der Treiberbox 260 aufgetreten sind, sowie die Ausgangsdatengruppe,
die es den Programmen 232, 234 und 236 ermöglicht, eine Synchronisation und Kommunikation
unter den Tasks auszuführen.
Die Zustände von Ereignisressourcen, die in der Ereignisressourcentabelle gespeichert sind,
werden von der Ereignistreibereinheit 40 in regelmäßigen Zeitintervallen und von der Ereignisres
sourcenzustands-Aktualisierungseinheit 80 nach Bedarf aktualisiert, wie später beschrieben.
Wenn, hauptsächlich von dem Anwendungsprogramm 236, angefordert, aktualisiert die
Ereignisressourcenzustands-Aktualisierungseinheit 80 die Zustände der Ausgangsports und jene
der Ausgangsdatengruppe, die zur Synchronisation und Kommunikation unter den Tasks
verwendet wird.
Die vorgenannte Anforderung wird in der Weise ausgegeben, daß ein Anwendungsprogramm
236 während seiner Ausführung eine Funktion aufruft, die die Ereignisressourcenzustands-
Aktualisierungseinheit 80 startet. Zu diesem Zweck übergibt das Anwendungsprogramm die
Ausgangsdatengruppe als Argument.
Normalerweise übergeben die Anwendungsprogramme 236 einander und empfangen voneinan
der die Ausgangsdatengruppe. Bei der vorliegenden Ausführungsform wird jedoch, wenn eine
Ausgangsdatengruppe auftritt, die zwischen Anwendungsprogrammen ausgetauscht werden
muß, eine Anforderung für einen Ausgangsdatengruppen-Austausch an die Ereignisressourcenzu
stands-Aktualisierungseinheit 80 mittels der vorerwähnten Funktion ausgegeben. Bei Empfang
der Anforderung aktualisiert die Ereignisressourcenzustands-Aktualisierungseinheit 80 den
Zustand der betroffenen Ereignisressource in der Ereignisressourcenzustands-Speichereinheit 70.
Daher aktualisieren Anwendungsprogramme 236 nicht die Ausgangsports 242, die beim
tatsächlichen Auftreten einer Ausgangsdatengruppe aktualisiert werden würden. Diese
Ausgangsports sind so konfiguriert, daß sie auf einer Gemeinschaftsbasis von der Hardwareres
sourcen-Aktualisierungseinheit 44 aktualisiert werden, wie später beschrieben.
Die Ereignistreibereinheit 40 führt eine Ereignistreiberverarbeitung synchron mit den Interrupt
signalen aus, die von dem externen Interruptgenerator 50 erzeugt werden. Unter
"Ereignistreiberverarbeitung" ist der Prozeß der regelmäßigen Erfassung von Ereignissen in den
Wiederhol-Intervallen, die zur Ausführung einer Echtzeit-Verarbeitung nötig sind, und die
Benachrichtigung der Task-Wechseleinheit 30 darüber zu verstehen, daß die Steuerung zu dem
Task umgeschaltet werden muß, in welchem die dem Ereignis entsprechende Verarbeitung
ausgeführt wird.
Die Ereignistreiberverarbeitung durch die Ereignistreibereinheit 40 tritt auf, wenn die CPU 210
sowohl das im RAM 230 gespeicherte Steuerprogramm 234 als auch die Ereignissynchronisa
tionsfunktion des Betriebssystems 232 ausführt. Das Steuerprogramm 234, das die Funktion der
Ereignistreibereinheit 40 implementiert, ist im System resident. Der Task, der die Verarbeitung
ausführt, wird synchron mit den Interruptsignalen getrieben, die von dem externen Interruptge
nerator 50 erzeugt werden. Wie später erläutert, ist die Ereignistreibereinheit in einer solchen
Weise konfiguriert, daß, wenn ein einem gegebenen Ereignis entsprechendes Programm gestartet
wird, die Ereignissynchronisationsfunktion des Betriebssystems 232 benutzt wird. Zur Erfassung
von Ereignissen überwacht die Ereignistreibereinheit 40 die Ereignisressourcen wie folgt obwohl
die Ereignistreibereinheit verschiedene Überwachungsmethoden zur Erfassung von Ereignisres
sourcenänderungen für verschiedene Einrichtungen verwendet, definiert man für den Eingangs
port 242 im voraus die Portadresse und die Adressengröße, die zu überwachen sind. Sobald dies
erfolgt ist, fragt die Ereignistreibereinheit synchron mit dem Interrupt alle definierten Eingangs
ports ab und speichert den momentanen Zustand des Eingangsports 242 im zugehörigen Bereich
der Ereignisressourcentabelle, die in der Ereignisressourcenzustands-Speichereinheit 70 gespei
chert ist. Zur Erfassung eines Ereignisses vergleicht die Ereignistreibereinheit den Zustand des
abgefragten Eingangsports 242 mit dem vorigen, in der Ereignisressourcentabelle gespeicherten
Zustand.
Was die anderen Einrichtungen, etwa die Manipulatoren 270, die in der Treiberbox 260 montier
ten System-I/O-Einheiten und die speziellen Schaltungskarten 250 angeht, die mit dem Erweite
rungsbus 290 verbunden sind, so überwacht die Ereignistreibereinheit diese durch Aufruf der
gesondert vorgesehenen Einrichtungstreiber. Sie speichert die momentanen Zustände der
Robotersystemeinheit 270, der System-I/O-Einheiten und der speziellen Schaltungskarten 250 in
dem betroffenen Bereich in der Ereignisressourcentabelle, die in der Ereignisressourcenzustands-
Speichereinheit 70 gespeichert ist. Zur Erfassung eines Ereignisses vergleicht die Ereignistrei
bereinheit die Ergebnisse der durch Aufruf der Einrichtungstreiber durchgeführten Überwachung
mit dem in der Ereignisressourcentabelle gespeicherten vorherigen Zustand. Was die Ausgangs
datengruppe für verschiedene Anwendungsprogramme 236 angeht, so wird normalerweise das
Auftreten eines Anwendungsprogramms in dem Ausgangsport 244 reflektiert.
Wenn dann unter den Ereignisressourcenänderungen, die festgestellt wurden, eine in der
Ereignisregistriereinheit 60 registrierte Ereignisressource ist, weist die Ereignistreibereinheit 40
die Task-Wechseleinheit 30 an, den mit dem Anwendungsprogramm 236 verbundenen Task zu
starten, indem das Ereignisobjekt in den signalisierten Zustand versetzt wird.
Wenn zwei oder mehr Anwendungsprogramme auf eine Änderung in derselben Ereignisressource
warten, oder wenn gleichzeitig Änderungen bei mehreren Ereignisressourcen auftreten, nehmen
das eine oder die mehreren entsprechenden Ereignisobjekte den signalisierten Zustand an.
Danach schaltet eine Funktion im Betriebssystem die Verarbeitung der Anwendungsprogramme
in einem Umlaufverfahren um.
Da, wie oben erwähnt, das Anwendungsprogramm 236 den Ausgangsport 244 nicht tatsächlich
aktualisiert, wenn die Ereignisressourcentabelle aktualisiert wird, muß die Ereignisressourcenta
belle aktualisiert werden. Wenn daher in einem Anwendungsprogramm eine Ausgangsdaten
gruppe erzeugt wird, aktualisiert die Hardwareressourcen-Aktualisierungseinheit 44 den tatsäch
lichen, entsprechenden Ausgangsport 244.
Das System ist so konfiguriert, daß die Größe der Ausgangsdatengruppe und die Ausgangs
adresse des tatsächlichen Ausgangsports 244 für die Anwendungsprogramme 236, die für den
Aktualisierungsprozeß nötig sind, im voraus registriert werden können.
Die Task-Wechseleinheit 30 schaltet in vorgeschriebenen Zeitintervallen zu irgendeinem Task
um, um die Verarbeitung auf einer Multitasking-Basis auszuführen. Die Task-Wechseleinheit
schaltet auch zu einem Task um, wenn entweder die Ereignistreibereinheit 40 oder die Auslage
rungsverhinderungseinheit 90 den Start des Tasks für das entsprechende Anwendungsprogramm
236 dadurch anzeigt, daß ein Ereignisobjekt in den signalisierten Zustand versetzt wird.
Der Controller 10 führt den Taskwechsel unter Verwendung der Standard-Zeitscheibenfunktion
aus, die in dem Betriebssystem 232 verfügbar ist, um die Verarbeitung auf einer Multitasking-
Basis auszuführen.
Das Umschalten zu dem letzteren Task wird dadurch implementiert, daß der Task für das
Anwendungsprogramm 236 gestartet wird, das das Ereignis-Handle besitzt, welches dem
Ereignisobjekt entspricht, das in einen signalisierten Zustand versetzt wurde. Dies wird bewirkt,
wenn die CPU 210 die Ereignissynchronisationsfunktion des Betriebssystems 232 ausführt, das
in dem RAM 230 gespeichert ist.
Wie oben erwähnt werden, wenn mehrere Anwendungsprogramme auf eine Änderung in
derselben Ereignisressource warten, oder wenn Änderungen in mehreren Ereignisressourcen
gleichzeitig auftreten, das entsprechende oder die mehreren entsprechenden Ereignisobjekte in
den signalisierten Zustand versetzt. Dies ermöglicht es der Task-Wechseleinheit 30, die Anwen
dungsprogramme, die die entsprechenden Ereignis-Handle besitzen, auf einer Umlaufbasis
(round-robin) zu starten.
Wenn ein Ereignis registriert ist, werden das Ereignisobjekt und das Anwendungsprogramm
durch die Standard-Ereignissynchronisationsfunktion miteinander verknüpft, die das Betriebssy
stem bietet. Daher kann man dadurch, daß ein Ereignisobjekt in den signalisierten Zustand
versetzt wird, den Task für das Anwendungsprogramm 236 starten, welches das entsprechende
Ereignis-Handle besitzt.
Die Fig. 5A und B sind Flußdiagramme, die die Prozedur zeigen, nach der das System Ereignisse
auf einer Echtzeit-Basis treibt. Fig. 5A zeigt die Prozedur dafür, daß die Ereignistreiberverarbei
tung periodisch in festgelegten Zeitintervallen durch die Ereignistreibereinheit 40 auftritt. Fig. 5B
zeigt die Prozedur, nach der die ereignisgesteuerten Anwendungsprogramme 236 arbeiten.
Wie in Fig. 5B gezeigt, spezifiziert, wenn ein Task für ein Anwendungsprogramm 236 gestartet
wird und ein Ereigniserwartungszustand während der Ausführung der Verarbeitungsstufe 1
erzeugt (Schritt 110), das Anwendungsprogramm 236 die Ereignisressource gegenüber der
Ereignisregistriereinheit, um die Registrierung des Ereigniserwartungszustands anzufordern
(Schritt 120) und als Ergebnis tritt das Anwendungsprogramm in den Ereigniserwartungszustand
ein (Schritt 130). Demgemäß wird die Ereignisressource, deren Änderung von dem Anwen
dungsprogramm 236 erwartet wird, in Korrespondenz mit einem Ereignisobjekt registriert. Das
Anwendungsprogramm 236 empfängt das Ereignis-Handle entsprechend dem Ereignisobjekt und
wartet, bis das Ereignisobjekt den signalisierten Zustand annimmt.
Andererseits überwacht, wie in Fig. 5A gezeigt, die Ereignistreibereinheit 40 die verschiedenen
Hardwareressourcen, wie oben beschrieben wurde (Schritt 10). Wenn es eine Änderung in der
Ausgangsdatengruppe infolge des Anwendungsprogramms (AP) gibt, bei der es sich um eine als
ein Ereignisobjekt in der oben erwähnten Ereignisressourcentabelle registrierte Ereignisressource
handelt (Schritt 20), aktualisiert die Hardwareressourcen-Aktualisierungseinheit 44 der Ereignis
treibereinheit 40 tatsächlich den Ausgangsport 244, bei dem es sich um die entsprechende
Hardwareressource handelt (Schritt 30).
Wenn es eine Änderung in einer registrierten Ereignisressource gibt (Schritt 40), wird das der
Ereignisressource entsprechende Ereignisobjekt, das durch die Ereignisregistriereinheit 60
registriert wurde, in den signalisierten Zustand versetzt (Schritt 50). Wenn das Ereignisobjekt
den signalisierten Zustand angenommen hat, startet das Betriebssystem 232, was mit der Task-
Wechseleinheit 30 äquivalent ist, den Task, in welchem das Anwendungsprogramm, das das
entsprechende Ereignis-Handle besitzt, ausgeführt wird (Schritt 60).
Wenn dies auftritt, beginnt das Anwendungsprogramm 236, das auf das Auftreten eines durch
das Ereignis-Handle gekennzeichneten Ereignisses gewartet hat, die Ausführung der Verarbei
tungsstufe 2 (Schritt 140). Dies ist in Fig. 5B gezeigt.
Wenn ein Anwendungsprogramm, dessen Verarbeitung in Echtzeit ausgeführt werden muß,
wartet, startet die Auslagerungsverhinderungseinheit 90 das Anwendungsprogramm auf
periodischer Basis, damit dieses Anwendungsprogramm nicht ausgelagert wird.
Anwendungsprogramme, die eine Echtzeit-Verarbeitung erfordern, sind solche die auf das
Eintreten eines Ereignisses warten. Wenn diese Anwendungsprogramme ausgelagert werden und
sie angesteuert werden, nachdem ein Ereignis aufgetreten ist, nimmt das Neuladen des erforder
lichen Programms mehrere zehn oder sogar mehrere hundert Millisekunden in Anspruch, was die
Fähigkeit des Systems reduziert, auf Ereignisse in Echtzeit zu antworten.
Daher weist die Auslagerungsverhinderungseinheit 90 die Task-Wechseleinheit 30 an, das
Anwendungsprogramm zu starten, das mit einem Dummy-Aktivierungs-Ereignisobjekt in der
Ereignisregistriereinheit 60 verknüpft ist, und zwar in festgelegten Zeitintervallen. Zu diesem
Zweck werden festgelegte Zeitintervalle unter Benutzung des Systemzeitgebers erzeugt. Die
Auslagerungsverhinderungseinheit liefert an die Task-Wechseleinheit 30 die nachfolgend
beschriebenen Befehle.
Wenn ein Anwendungsprogramm die Ereignisregistriereinheit 60 auffordert, die Tatsache zu
registrieren, daß es auf die Änderung in einer Ereignisressource wartet, wird das Ereignis-Handle
für das Dummy-Verarbeitungs-Ereignisobjekt an das Anwendungsprogramm zurückgegeben, wie
oben beschrieben. Die Auslagerungsverhinderungseinheit 90 versetzt das Dummy-Verarbeitungs-
Ereignisobjekt periodisch in den signalisierten Zustand, um die Task-Wechseleinheit 30 anzuwei
sen, den Task für das Anwendungsprogramm, das das entsprechende Ereignis-Handle besitzt, zu
starten.
Das Anwendungsprogramm kann anhand der Art des Ereignisobjekts feststellen, ob ein bestimm
ter Task durch die Auslagerungsverhinderungseinheit 90 oder durch die Ereignistreibereinheit 40
ausgelöst wurde. Wenn der Task von der Auslagerungsverhinderungseinheit 90 ausgelöst wurde,
führt das Anwendungsprogramm eine Dummy-Verarbeitung durch und wartet erneut auf das
Auftreten eines Ereignisses. Diese Art Verarbeitung, die von dem Anwendungsprogramm
auszuführen ist, rollte von dem Steuerprogramm als eine Funktion vorgesehen werden, die von
dem Anwendungsprogramm aufgerufen wird, wenn das Anwendungsprogramm die Tatsache
registriert, daß es auf das Auftreten eines Ereignisses wartet. Auf diese Weise braucht ein
Benutzer bei der Erstellung eines Anwendungsprogramms nur die Funktion zu benutzen, ohne
sich selbst mit der Problematik des involvierten Mechanismus zu befassen.
Diese Merkmale implementieren die folgenden Charakteristiken, die besser sind als das was in
herkömmlichen Produkten zur Verfügung steht:
Die Zeitdauer, die vom Auftreten eines Ereignisses bis zum Start des entsprechenden Programms
erforderlich ist, ist kurz, und ihre Schwankung ist gering. Dies führt zu einem hohen Grad an
Genauigkeitswiederholbarkeit bei wiederholten Roboteroperationen oder bei den Operationen
anderer Steuerungsanlagen, die von einem Benutzer codiert werden. Man nehme an, daß ein
Sensor die Position eines Objekts auf einem Förderer feststellt und ein Roboter seine Operation
auf der Basis des Sensorsignals beginnt. Wenn eine deutliche Schwankung von dem Zeitpunkt
einer Sensoreingabe bis zum Beginn der Roboteroperation vorhanden ist, erfordert es nicht nur
eine Menge Arbeit, das gesamte System zu justieren, vielmehr kann in einigen Fällen der Roboter
auch versagen, das auf dem Förderer montierte Objekt richtig zu handhaben.
In einem Echtzeitsystem mit einer begrenzten Verarbeitungskapazität kann eine Zunahme der
Anzahl von Tasks, die gleichzeitig ausgeführt werden, zu einer raschen Zunahme der Zeitdauer
vom Auftreten eines Ereignisses bis zu dem Zeitpunkt führen, zu dem die entsprechende -
Verarbeitung ausgeführt wird, was zu einem deutlichen Abfall des Reaktionsvermögens des
Systems führt. Im Gegensatz dazu kann ein auf der vorliegenden Erfindung beruhendes System
wegen seines überragenden Echtzeit-Verarbeitungsvermögens eine große Anzahl gleichzeitig
ausgeführter Tasks unterstützen. Bei der vorliegenden Ausführungsform können 32 Tasks
gleichzeitig in der Robotersprache ausgeführt werden, in der Benutzer Programme schreiben.
Was Ereignisse anbetrifft, die in dem System registriert werden können, so können nicht nur
einfache gewöhnliche Ereignisse, wie das Ein- und Ausschalten eines I/O-Signals, sondern auch
komplexe Bedingungen als Ereignis registriert werden, etwa daß ein Roboter eine bestimmte
Orientierung annimmt, und zwar durch Verwendung einer Ereignisressourcentabelle, einer einen
bestimmten Wert annehmenden Variablen im Programm, oder einer Kombination dieser Bedin
gungen in Form logischer Ausdrücke.
Durch Implementieren eines Robotercontrollers durch Kombinieren eines PCs mit Windows 95®,
wie bei der vorliegenden Ausführungsform, ist es möglich, das große Angebot an preiswerten
Erweiterungskarten (Netzwerkverbindungskarten, Instrumentenverbindungskarten und allgemei
nen I/O-Karten) zu nutzen, die im Handel zur Verfügung stehen.
Ferner können Anwendungsprogramme unter Verwendung von im Handel zur Verfügung
stehenden Programmiersprachen (Visual C++, Visual Basic, usw.) entwickelt werden, zusätzlich
zu speziellen Robotersprachen. Das Softwarebetriebsverfahren, das die vorliegende Erfindung
implementiert, basiert auf Windows 95® Betriebsverfahren, so daß alle Benutzer, die mit anderen
Anwendungen (Textverarbeitung, Tabellenkalkulation, etc.), die unter Windows 95® laufen,
vertraut sind, leicht lernen können, wie die Roboterbetriebsprozeduren gemäß der vorliegenden
Erfindung arbeiten.
Obwohl in Verbindung mit der vorliegenden Ausführungsform die Verwendung von Windows 95®
als ein Beispiel eines allgemeinen PC-Betriebssystems erläutert wurde, können auch andere
typische PC-Betriebssysteme verwendet werden.
Die vorliegende Erfindung ist keinesfalls auf die bezüglich der obigen Ausführungsformen
gegebene Erläuterung beschränkt. Vielmehr sind modifizierte Ausführungsformen möglich.
Im folgenden wird eine Ausführungsform eines Robotercontrollers 10 beschrieben, der ein
allgemeines PC-Betriebssystem einsetzt, das in der Lage ist, eine Echtzeit-Verarbeitung auszufüh
ren.
Ein Betriebssystem wird hier dann als zur Durchführung einer Echtzeit-Verarbeitung angesehen,
wenn der Taskwechsel durch das Betriebssystem schnell ausgeführt werden kann. Diese Art von
Betriebssystem kann mittels eines Systemzeitgebers ausreichend kleine Zeitintervalle erzeugen,
und eine Zeitscheibenbildung kann in ausreichend kurzen Zeitintervallen ausgeführt, um eine
Echtzeit-Steuerung zuzulassen.
Im ersteren Fall kann die Erzeugung von Interrupts durch einen externen Zeitgeber in dem
externen Interruptgenerator 50 der vorgenannten Ausführungsform durch einen Systemzeitgeber
ersetzt werden, und all die anderen Merkmale können in gleicher Weise wie bei der vorerwähn
ten Ausführungsform implementiert werden.
Im letzteren Fall kann die Erzeugung von Interrupts durch einen externen Zeitgeber in dem
externen Interruptgenerator 50 der vorgenannten Ausführungsform ersetzt werden durch die
Verwendung einer Zeitscheibenbildung, und alle anderen Merkmale können in gleicher Weise wie
bei der vorgenannten Ausführungsform implementiert werden.
In beiden Fällen können Zeitintervalle, die kurz genug sind, um eine Echtzeit-Steuerung in der
internen Arbeit des Systems zu erlauben, eingestellt werden. Folglich bedarf es nicht des
externen Zeitgebers, der in der Hardwarekonfiguration von Fig. 2 gezeigt ist.
Der letztere Fall sei nachfolgend als Beispiel erläutert.
Fig. 6 ist ein Funktionsblockdiagramm eines Robotercontrollers 10, der ein Betriebssystem mit
Echtzeit-Verarbeitungsvermögen einsetzt. Diese Figur unterscheidet sich von Fig. 1 darin, daß
die Task-Wechseleinheit 30 eine Zeitscheibeneinheit 32 anstelle des externen Interruptgenerators
50 enthält. Allen anderen Komponenten sind dieselben Namen und dieselben Bezugszahlen wie
in Fig. 1 zugeordnet. Eine Erläuterung der Funktionen, die ähnlich jenen in Fig. 1 sind, unter
bleibt.
Die Zeitscheibeneinheit 32 unterteilt die Zeit in Zeitintervalle, die kurz genug sind, um Echtzeit
steuerungen zu erlauben, beispielsweise je eine Millisekunde. Sie weist CPU-Zeit Tasks in einer
Umlaufweise (round-robin) zu, um die Tasks zu starten. Für jede Zeitscheibe treibt die Zeitschei
beneinheit die Ereignistreibereinheit 40 vor Ausführung eines gegebenen Tasks.
Das Steuerprogramm 234, das die Funktionen der Ereignistreibereinheit 40 implementiert, wird
als ein Task ausgeführt, der einseitig auf einer Zeitscheibe pro Zeitscheiben-Basis ausgeführt
wird. Da die Ereignistreiberverarbeitung in der Ereignistreibereinheit 40 innerhalb einer Millise
kunde endet, wird, wenn keine Ereignisse aufgetreten sind, die normale auf Zeitscheiben-Basis
beruhende Task-Aktivierung für die Restzeit in der Zeitscheibe bewirkt.
In jeglicher anderer Hinsicht kann dieses Schema die Funktionen eines Robotercontrollers in
genau der gleichen Weise implementieren, wie die erste Ausführungsform.
Obwohl diese Ausführungsform die Verwendung einer Standard-Ereignissynchronisationsfunktion
illustriert, die von dem System vorgesehen wird, kann jegliche Ereignissynchronisationsfunktion
verwendet werden, solange sie die gleichen Wirkungen ergibt. Anders ausgedrückt, Funktionen,
die von dem System oder von System aufrufen ausgeführt werden können, können eingesetzt
werden. Alternativ können auch Steuerprogramme entwickelt werden, die dieselben Wirkungen
wie die Ereignissynchronisationsfunktion bieten.
Obwohl die vorliegende Ausführungsform den Fall darstellt, bei dem das Betriebssystem 232 und
das Steuerprogramm 234 für den Controller 10 im RAM 230 gespeichert sind, können sie auch
in einem abnehmbaren externen Speichermedium gespeichert sein. Ebenso können sie von einem
externen Speichermedium auf ein internes Speichermedium geladen werden, oder, mittels
Kommunikationsverbindungen, von einer externen Einrichtung auf ein internes Speichermedium.
Weiterhin ist die vorliegende Erfindung keineswegs auf spezielle Robotertypen oder -Konfigura
tionen beschränkt, sondern ist auf eine weite Vielfalt von Robotercontrollern anwendbar.
Obwohl die vorliegende Ausführungsform ein Robotercontrollersystem beschreibt, kann ein
Roboterfolger (robot sequencer), der von derselben Konfiguration Gebrauch macht, ebenfalls
konstruiert werden. Daher liegt auch die Anwendung der vorliegenden Erfindung auf einen
Roboterfolger im Rahmen der vorliegenden Erfindung.
Claims (11)
1. Robotercontroller umfassend eine Task-Wechseleinrichtung (30), die mit einer
preemptiven Multitasking-Funktion versehen ist, und eine Echtzeit-Steuereinrichtung (20), die
Steuerungen dadurch ausführt, daß sie die Task-Wechseleinrichtung (30) anweist, Tasks zu
wechseln, so daß die Verarbeitung als Reaktion auf das Auftreten eines Ereignisses in Echtzeit
ausgeführt wird, wobei
die Echtzeit-Steuereinrichtung Ereignisse auf regelmäßiger Basis in Wiederhol-Interval
len, die zur Ausführung einer Echtzeit-Verarbeitung erforderlich sind, erfaßt und eine Ereignistrei
bereinrichtung (40) enthält, die eine Ereignistreiberverarbeitung ausführt, welche der Task-
Wechseleinrichtung einen Wechsel zu dem Task anzeigt, in welchem die mit dem Ereignis
verknüpfte Verarbeitung ausgeführt wird.
2. Robotercontroller nach Anspruch 1, bei dem die Echtzeit-Steuereinrichtung (20)
weiterhin eine externe Interrupt-Generatoreinrichtung (50) umfaßt, die unter Verwendung eines
externen Zeitgebers (252) Interruptsignale in den Wiederhol-Intervallen erzeugt, wobei die
Ereignistreibereinrichtung (40) die Ereignistreiberverarbeitung synchron mit diesen Interruptsigna
len ausführt.
3. Robotercontroller nach Anspruch 1 oder 2, bei dem
die Echtzeit-Steuereinrichtung (20) weiterhin eine Ereignisregistriereinrichtung (60)
umfaßt, die registriert, daß das Programm, das die mit dem Auftreten des Ereignisses verbun
dene Verarbeitung ausführt, auf das Auftreten des Ereignisses wartet, und
die Ereignistreibereinrichtung (40), wenn sie das Auftreten des von der Ereignisregi
striereinrichtung (60) registrierten Ereignisses feststellt, die Task-Wechseleinrichtung (30)
anweist, zu dem Task zu wechseln, der von dem Programm auszuführen ist, das auf das
Auftreten des von der Ereignisregistriereinrichtung (60) registrierten Ereignisses gewartet hat.
4. Robotercontroller nach einem der Ansprüche 1 bis 3, bei dem
die Echtzeit-Steuereinrichtung (20) wenigstens eines von folgendem als ein Ereignis
behandelt: eine Änderung in den Hardwareressourcen, die der Roboter besitzt, oder in der
Ausgangsdatengruppe, die es dem Programm, das Manipulatoraktionen oder periphere Einrich
tungen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen.
5. Robotercontroller nach Anspruch 4, bei dem die Echtzeit-Steuereinrichtung (20)
umfaßt:
eine Ereignisressourcenzustands-Speichereinrichtung (70), die in einem gemeinsam genutzten Speicherbereich, der von mehreren Tasks abgefragt und aktualisiert werden kann, Speicherereignisressourcenzustände speichert, um wenigstens eines von folgendem zu verfolgen: eine Änderung in den Hardwareressourcen oder den Ausgangsdaten, die das Programm, das Manipulatoraktionen oder periphere Einrichtungen steuert, in die Lage versetzt, Synchronisation und Kommunikation auszuführen, und
eine Ereignisressourcenzustands-Aktualisierungseinrichtung (80), die den Ereignisres sourcenzustand, der in der Ereignisressourcenzustands-Speichereinrichtung (70) gespeichert ist, auf der Basis wenigstens eines von folgendem aktualisiert: den Manipulatoroperationen und der Ausgangsdatengruppe, die es dem Programm, das periphere Einrichtungen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen,
und bei dem die Ereignistreibereinrichtung (40) eine Hardwareressourcen-Aktualisie rungseinrichtung (44) umfaßt die Hardwareressourcen auf der Basis eines Ereignisressourcenzu stands aktualisiert, der von der Ereignisressourcenzustands-Aktualisierungseinrichtung (80) aktualisiert wurde.
eine Ereignisressourcenzustands-Speichereinrichtung (70), die in einem gemeinsam genutzten Speicherbereich, der von mehreren Tasks abgefragt und aktualisiert werden kann, Speicherereignisressourcenzustände speichert, um wenigstens eines von folgendem zu verfolgen: eine Änderung in den Hardwareressourcen oder den Ausgangsdaten, die das Programm, das Manipulatoraktionen oder periphere Einrichtungen steuert, in die Lage versetzt, Synchronisation und Kommunikation auszuführen, und
eine Ereignisressourcenzustands-Aktualisierungseinrichtung (80), die den Ereignisres sourcenzustand, der in der Ereignisressourcenzustands-Speichereinrichtung (70) gespeichert ist, auf der Basis wenigstens eines von folgendem aktualisiert: den Manipulatoroperationen und der Ausgangsdatengruppe, die es dem Programm, das periphere Einrichtungen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen,
und bei dem die Ereignistreibereinrichtung (40) eine Hardwareressourcen-Aktualisie rungseinrichtung (44) umfaßt die Hardwareressourcen auf der Basis eines Ereignisressourcenzu stands aktualisiert, der von der Ereignisressourcenzustands-Aktualisierungseinrichtung (80) aktualisiert wurde.
6. Robotercontroller nach Anspruch 3 oder einem der Ansprüche 4 und 5 in ihrer
Abhängigkeit von Anspruch 3, bei dem der Robotercontroller eine Auslagerungsverhinderungs
einrichtung (90) aufweist, die das Auslagern des Programms dadurch verhindert, daß die Task-
Wechseleinrichtung (30) regelmäßig in bestimmten Zeitintervallen angewiesen wird, das
Programm zu starten, das die Tatsache registriert hat, daß es auf das Auftreten eines Ereignisses
wartet.
7. Echtzeit-Steuerverfahren für eine mit dem Auftreten eines Ereignisses in einem Robo
tercontroller verbundene Verarbeitung, das ein allgemeines Betriebssystem einsetzt, welches eine
preemptive Multitasking-Funktion aufweist, umfassend
einen Interrupterzeugungsschritt zur Erzeugung eines externen Interruptsignals unter Verwendung eines externen Zeitgebers auf regelmäßiger Basis in Wiederhol-Intervallen, die zur Ausführung einer Echtzeit-Verarbeitung nötig sind, und
einen Ereignistreiberschritt, bei dem Ereignisse synchron mit den externen Interrupt signalen erfaßt werden und eine Ereignistreiberverarbeitung ausgeführt wird, bei der das allgemeine Betriebssystem angewiesen wird, auf den Task umzuschalten, in welchem die mit dem Ereignis verknüpfte Verarbeitung ausgeführt wird.
einen Interrupterzeugungsschritt zur Erzeugung eines externen Interruptsignals unter Verwendung eines externen Zeitgebers auf regelmäßiger Basis in Wiederhol-Intervallen, die zur Ausführung einer Echtzeit-Verarbeitung nötig sind, und
einen Ereignistreiberschritt, bei dem Ereignisse synchron mit den externen Interrupt signalen erfaßt werden und eine Ereignistreiberverarbeitung ausgeführt wird, bei der das allgemeine Betriebssystem angewiesen wird, auf den Task umzuschalten, in welchem die mit dem Ereignis verknüpfte Verarbeitung ausgeführt wird.
8. Verfahren nach Anspruch 7, bei dem das Programm, das die mit dem Auftreten des
Ereignisses verknüpfte Verarbeitung ausführt, einen Ereignisregistrierschritt umfaßt, bei dem die
Tatsache registriert wird, daß das Programm auf das Auftreten des Ereignisses wartet, wobei der
Ereignistreiberschritt, wenn das Auftreten eines in dem Ereignisregistrierschritt registrierten
Ereignisses festgestellt wird, das allgemeine Betriebssystem anweist, zu dem Task zu wechseln,
in welchem das Programm ausgeführt wird, das auf das Auftreten des Ereignisses wartet, das in
dem Ereignisregistrierschritt registriert wurde.
9. Verfahren nach Anspruch 7 oder 8, bei dem wenigstens eines von folgendem als ein
Ereignis behandelt wird: eine Änderung der Hardwareressourcen, die der Roboter besitzt, oder
der Ausgangsdaten, die es dem Programm, das Manipulatoraktionen oder periphere Einrichtun
gen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen.
10. Verfahren nach Anspruch 9, ferner umfassend
einen Ereignisressourcenzustands-Speicherschritt, der in einem gemeinsam genutzten Speicherbereich, der von mehreren Tasks abgerufen und aktualisiert werden kann, Speicher ereignisressourcenzustände speichert, um wenigstens eines von folgendem zu verfolgen: eine Änderung in den Hardwareressourcen oder den Ausgangsdaten, die es dem Programm, das Manipulatoraktionen oder periphere Einrichtungen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen, und
einen Ereignisressourcenzustands-Aktualisierungsschritt, bei dem eine Aktualisierung auf der Basis wenigstens eines von folgendem ausgeführt wird: den Manipulatoroperationen und der Ausgangsdatengruppe, die es dem Programm, das periphere Einrichtungen steuert, ermög licht, Synchronisation und Kommunikation auszuführen,
wobei der Ereignistreiberschritt einen Hardwareressourcen-Aktualisierungsschritt umfaßt, bei dem Hardwareressourcen auf der Basis der Ereignisressourceninformation aktualisiert werden, die von dem Ereignisressourcenzustands-Aktualisierungsschritt aktualisiert wurden.
einen Ereignisressourcenzustands-Speicherschritt, der in einem gemeinsam genutzten Speicherbereich, der von mehreren Tasks abgerufen und aktualisiert werden kann, Speicher ereignisressourcenzustände speichert, um wenigstens eines von folgendem zu verfolgen: eine Änderung in den Hardwareressourcen oder den Ausgangsdaten, die es dem Programm, das Manipulatoraktionen oder periphere Einrichtungen steuert, ermöglicht, Synchronisation und Kommunikation auszuführen, und
einen Ereignisressourcenzustands-Aktualisierungsschritt, bei dem eine Aktualisierung auf der Basis wenigstens eines von folgendem ausgeführt wird: den Manipulatoroperationen und der Ausgangsdatengruppe, die es dem Programm, das periphere Einrichtungen steuert, ermög licht, Synchronisation und Kommunikation auszuführen,
wobei der Ereignistreiberschritt einen Hardwareressourcen-Aktualisierungsschritt umfaßt, bei dem Hardwareressourcen auf der Basis der Ereignisressourceninformation aktualisiert werden, die von dem Ereignisressourcenzustands-Aktualisierungsschritt aktualisiert wurden.
11. Verfahren nach Anspruch 8 oder einem der Ansprüche 9 und 10 in ihrer Abhängig
keit von Anspruch 8, bei dem das Steuerverfahren einen Auslagerungsverhinderungsschritt
umfaßt, der das Auslagern des Programms dadurch verhindert, daß das allgemeine Betriebssy
stem angewiesen wird, das Programm regelmäßig in bestimmten Zeitintervallen zu starten, das
die Tatsache registriert hat, daß es auf das Auftreten eines Ereignisses wartet.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP195352/96 | 1996-07-05 | ||
JP19535296A JP3832517B2 (ja) | 1996-07-05 | 1996-07-05 | ロボット用コントローラ及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19728726A1 true DE19728726A1 (de) | 1998-01-08 |
DE19728726B4 DE19728726B4 (de) | 2015-07-30 |
Family
ID=16339751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19728726.3A Expired - Lifetime DE19728726B4 (de) | 1996-07-05 | 1997-07-04 | Robotercontroller und dessen Steuerverfahren |
Country Status (3)
Country | Link |
---|---|
US (2) | US6031973A (de) |
JP (1) | JP3832517B2 (de) |
DE (1) | DE19728726B4 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356806B1 (en) | 1998-12-12 | 2002-03-12 | Kuka Roboter Gmbh | Method for handling a voltage drop in the control of a robot and for restarting a robot following a voltage drop |
WO2004029804A3 (de) * | 2002-09-13 | 2006-03-30 | Phoenix Contact Gmbh & Co | Echtzeitfähiges steuerungssystem mit einer sps-applikation unter einem nicht echtzeitfähigen betriebssystem |
DE102006034681A1 (de) * | 2006-07-24 | 2008-01-31 | Areva Np Gmbh | Verfahren zur Stabilisierung der Zykluszeit eines zyklischen Prozesses in einem Automatisierungssystem sowie Automatisierungssystem |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7024666B1 (en) | 2002-01-28 | 2006-04-04 | Roy-G-Biv Corporation | Motion control systems and methods |
US6859671B1 (en) | 1995-05-30 | 2005-02-22 | Roy-G-Biv Corporation | Application programs for motion control devices including access limitations |
US20100131081A1 (en) * | 1995-05-30 | 2010-05-27 | Brown David W | Systems and methods for motion control |
US20060206219A1 (en) * | 1995-05-30 | 2006-09-14 | Brown David W | Motion control systems and methods |
US20020156872A1 (en) * | 2001-01-04 | 2002-10-24 | Brown David W. | Systems and methods for transmitting motion control data |
US5691897A (en) * | 1995-05-30 | 1997-11-25 | Roy-G-Biv Corporation | Motion control systems |
US20010032278A1 (en) * | 1997-10-07 | 2001-10-18 | Brown Stephen J. | Remote generation and distribution of command programs for programmable devices |
JPH11249725A (ja) * | 1998-02-26 | 1999-09-17 | Fanuc Ltd | ロボット制御装置 |
JP3132463B2 (ja) * | 1998-04-07 | 2001-02-05 | 松下電器産業株式会社 | ロボット制御装置 |
US6952827B1 (en) * | 1998-11-13 | 2005-10-04 | Cray Inc. | User program and operating system interface in a multithreaded environment |
US6879862B2 (en) * | 2000-02-28 | 2005-04-12 | Roy-G-Biv Corporation | Selection and control of motion data |
US20100131078A1 (en) * | 1999-10-27 | 2010-05-27 | Brown David W | Event driven motion systems |
US8032605B2 (en) * | 1999-10-27 | 2011-10-04 | Roy-G-Biv Corporation | Generation and distribution of motion commands over a distributed network |
US9235955B2 (en) * | 2000-12-22 | 2016-01-12 | Bally Gaming, Inc. | Universal game monitoring unit and system |
US20020019891A1 (en) * | 1999-12-30 | 2002-02-14 | James Morrow | Generic device controller unit and method |
US6697708B2 (en) | 2000-10-11 | 2004-02-24 | Sony Corporation | Robot apparatus and robot apparatus motion control method |
WO2002071241A1 (en) * | 2001-02-09 | 2002-09-12 | Roy-G-Biv Corporation | Event management systems and methods for the distribution of motion control commands |
US7904194B2 (en) * | 2001-02-09 | 2011-03-08 | Roy-G-Biv Corporation | Event management systems and methods for motion control systems |
JP3610915B2 (ja) * | 2001-03-19 | 2005-01-19 | 株式会社デンソー | 処理実行装置及びプログラム |
US20030069998A1 (en) * | 2001-08-31 | 2003-04-10 | Brown David W. | Motion services protocol accessible through uniform resource locator (URL) |
US20050132104A1 (en) * | 2003-11-17 | 2005-06-16 | Brown David W. | Command processing systems and methods |
US20070022194A1 (en) * | 2003-09-25 | 2007-01-25 | Brown David W | Database event driven motion systems |
US20060064503A1 (en) * | 2003-09-25 | 2006-03-23 | Brown David W | Data routing systems and methods |
US8027349B2 (en) | 2003-09-25 | 2011-09-27 | Roy-G-Biv Corporation | Database event driven motion systems |
US7350065B2 (en) * | 2003-12-15 | 2008-03-25 | International Business Machines Corporation | Method, apparatus and program storage device for providing a remote power reset at a remote server through a network connection |
CN1997974B (zh) * | 2004-04-30 | 2010-05-05 | 捷讯研究有限公司 | 内容保护入场券系统和方法 |
US7418584B1 (en) * | 2004-05-11 | 2008-08-26 | Advanced Micro Devices, Inc. | Executing system management mode code as virtual machine guest |
JP4534796B2 (ja) | 2005-02-25 | 2010-09-01 | セイコーエプソン株式会社 | 制御システム |
US8187883B2 (en) * | 2005-10-21 | 2012-05-29 | Wisconsin Alumni Research Foundation | Method and system for delivering nucleic acid into a target cell |
US8055725B2 (en) * | 2006-01-12 | 2011-11-08 | International Business Machines Corporation | Method, apparatus and program product for remotely restoring a non-responsive computing system |
US8689217B2 (en) | 2008-10-31 | 2014-04-01 | Electronics And Telecommunications Research Institute | System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes |
KR101248802B1 (ko) * | 2008-10-31 | 2013-03-29 | 한국전자통신연구원 | 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법 |
KR101102930B1 (ko) * | 2008-10-31 | 2012-01-10 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법 |
US9213586B2 (en) * | 2009-03-18 | 2015-12-15 | Sas Institute Inc. | Computer-implemented systems for resource level locking without resource level locks |
US8572617B2 (en) * | 2009-07-21 | 2013-10-29 | Sas Institute Inc. | Processor-implemented systems and methods for event handling |
US8756606B2 (en) * | 2011-01-31 | 2014-06-17 | Toyota Jidosha Kabushiki Kaisha | Safety controller and safety control method in which time partitions are scheduled according to a scheduling pattern |
CN103481285B (zh) * | 2013-09-16 | 2016-03-09 | 国家电网公司 | 基于现实虚拟技术的高压带电作业机器人控制系统及方法 |
CN204076264U (zh) * | 2013-12-30 | 2015-01-07 | 北京配天技术有限公司 | 一种运动控制卡及机器人 |
CN105682864A (zh) * | 2014-12-26 | 2016-06-15 | 深圳市配天智造装备股份有限公司 | 一种控制卡及机器人 |
KR102235166B1 (ko) * | 2015-09-21 | 2021-04-02 | 주식회사 레인보우로보틱스 | 실시간 로봇 시스템, 로봇 시스템 제어 장치 및 로봇 시스템 제어 방법 |
EP3419793B1 (de) * | 2016-02-23 | 2021-06-30 | ABB Schweiz AG | Robotersteuergerätesystem, robotanordnung, computer program und verfahren dafür |
US10384347B2 (en) | 2016-03-25 | 2019-08-20 | Seiko Epson Corporation | Robot control device, robot, and simulation device |
EP3299258B1 (de) | 2016-09-23 | 2020-11-04 | Dana Heavy Vehicle Systems Group, LLC | Steer-by-wire lenkung |
US20210018912A1 (en) * | 2018-04-10 | 2021-01-21 | Fetch Robotics, Inc. | Robot Management System |
WO2019200012A1 (en) | 2018-04-10 | 2019-10-17 | Cairl Brian | System and method for robot-assisted, cart-based workflows |
WO2019225746A1 (ja) * | 2018-05-25 | 2019-11-28 | 川崎重工業株式会社 | ロボットシステム及び追加学習方法 |
CN110146845B (zh) * | 2019-04-17 | 2021-07-27 | 杭州电子科技大学 | 一种事件驱动的固定时间电磁源定位方法 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59206808A (ja) * | 1983-05-11 | 1984-11-22 | Asahi Optical Co Ltd | 焦点検出装置 |
US4954948A (en) * | 1986-12-29 | 1990-09-04 | Motorola, Inc. | Microprocessor operating system for sequentially executing subtasks |
US5193189A (en) * | 1987-10-07 | 1993-03-09 | Allen-Bradley Company, Inc. | Programmable controller with multiple priority level task processing |
US5016166A (en) * | 1989-04-12 | 1991-05-14 | Sun Microsystems, Inc. | Method and apparatus for the synchronization of devices |
JPH0371234A (ja) * | 1989-08-10 | 1991-03-27 | Meidensha Corp | 状態変化検出装置 |
JP2954294B2 (ja) * | 1990-08-06 | 1999-09-27 | キヤノン株式会社 | 自動組立装置の制御装置 |
US5625821A (en) * | 1991-08-12 | 1997-04-29 | International Business Machines Corporation | Asynchronous or synchronous operation of event signaller by event management services in a computer system |
JPH05204672A (ja) * | 1992-01-27 | 1993-08-13 | Mitsubishi Electric Corp | インタフェースシステム |
JP2574983B2 (ja) * | 1993-04-06 | 1997-01-22 | 本田技研工業株式会社 | マルチタスク制御システム |
JP3310402B2 (ja) * | 1993-06-24 | 2002-08-05 | 株式会社三協精機製作所 | マルチタスク制御コントローラ |
JPH07129418A (ja) * | 1993-11-08 | 1995-05-19 | Fanuc Ltd | マルチタスク環境でのプログラム制御方式 |
DE4410775C2 (de) * | 1994-03-28 | 2000-04-06 | Daimler Chrysler Ag | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät |
JP3215264B2 (ja) * | 1994-06-29 | 2001-10-02 | 科学技術庁航空宇宙技術研究所長 | スケジュール制御装置とその方法 |
DE19500957A1 (de) * | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
DE4445651A1 (de) * | 1994-12-21 | 1996-06-27 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen |
US5627745A (en) | 1995-05-03 | 1997-05-06 | Allen-Bradley Company, Inc. | Parallel processing in a multitasking industrial controller |
US5850536A (en) * | 1996-05-01 | 1998-12-15 | Mci Communications Corporation | Method and system for simulated multi-tasking |
JPH1021093A (ja) * | 1996-06-28 | 1998-01-23 | Oki Electric Ind Co Ltd | マルチウエイト監視機能付き情報処理装置 |
-
1996
- 1996-07-05 JP JP19535296A patent/JP3832517B2/ja not_active Expired - Lifetime
-
1997
- 1997-06-16 US US08/876,697 patent/US6031973A/en not_active Expired - Lifetime
- 1997-07-04 DE DE19728726.3A patent/DE19728726B4/de not_active Expired - Lifetime
-
2000
- 2000-01-12 US US09/482,387 patent/US6301634B1/en not_active Expired - Lifetime
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356806B1 (en) | 1998-12-12 | 2002-03-12 | Kuka Roboter Gmbh | Method for handling a voltage drop in the control of a robot and for restarting a robot following a voltage drop |
WO2004029804A3 (de) * | 2002-09-13 | 2006-03-30 | Phoenix Contact Gmbh & Co | Echtzeitfähiges steuerungssystem mit einer sps-applikation unter einem nicht echtzeitfähigen betriebssystem |
US7657895B2 (en) | 2002-09-13 | 2010-02-02 | Phoenix Contact Gmbh & Co. Kg | Real time-capable control system having an sps application under a non-real time-capable operating system |
DE102006034681A1 (de) * | 2006-07-24 | 2008-01-31 | Areva Np Gmbh | Verfahren zur Stabilisierung der Zykluszeit eines zyklischen Prozesses in einem Automatisierungssystem sowie Automatisierungssystem |
DE102006034681B4 (de) * | 2006-07-24 | 2013-02-07 | Areva Np Gmbh | Verfahren zur Stabilisierung der Zykluszeit eines zyklischen Prozesses in einem Automatisierungssystem sowie Automatisierungssystem |
Also Published As
Publication number | Publication date |
---|---|
JP3832517B2 (ja) | 2006-10-11 |
US6301634B1 (en) | 2001-10-09 |
DE19728726B4 (de) | 2015-07-30 |
US6031973A (en) | 2000-02-29 |
JPH1015836A (ja) | 1998-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19728726B4 (de) | Robotercontroller und dessen Steuerverfahren | |
DE69026379T2 (de) | Nachrichtenorientierte Fehlerbeseitigungsverfahren | |
DE4011745C2 (de) | ||
DE69211231T2 (de) | Verfahren und Vorrichtung zur Verwaltung eines gemeinsam genutzten Speichers ausserhalb des Bildschirms | |
DE3587218T2 (de) | Verfahren zur Ausführung von in einer hohen Programmiersprache geschriebenen Anwenderprogrammen. | |
DE68922769T2 (de) | Verfahren zum Erzeugen eines temporären Anhaltens von Tasken, die in einem virtuellen Datenverarbeitungssystem ablaufen. | |
DE69130630T2 (de) | Synchrones Verfahren und Gerät für Prozessoren | |
DE69427544T2 (de) | Programmierbarer Kontroller und Verfahren zur Durchführung von SFC-Programmen mit Hilfe eines programmierbaren Kontrollers | |
DE3587034T3 (de) | Verfahren und Einrichtung zur Steuerung automatischer Geräte. | |
DE69121937T2 (de) | Verfahren und Gerät zum teilweisen Lauf eines Sequenzprogramms zwecks Fehlersuche | |
DE4410775C2 (de) | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE69518453T2 (de) | Verfahren und System zum Dynamischen Auswählen eines Kommunikationsmodus | |
DE3750045T2 (de) | Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten. | |
EP0799441B1 (de) | Verfahren zur steuerung von technischen vorgängen | |
DE3854323T2 (de) | Jobsteuerung für Online-System. | |
DE10027359A1 (de) | Verfahren und Vorrichtung zur Vorhersage einer Wiederanlaufzeit und Festplattenlaufwerk | |
DE4005042A1 (de) | Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit | |
DE69411096T2 (de) | Entwicklungsunterstützungssystem für einen Mikrocomputer mit internem Cachespeicher | |
DE3650158T2 (de) | Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem. | |
DE69031361T2 (de) | Taktsignalgeneratorsystem | |
DE69232371T2 (de) | Programmierbares Steuergerät | |
DE2632277A1 (de) | Mikroprogrammierbarer computer fuer eine numerische steuervorrichtung | |
DE3520285A1 (de) | Verfahren und vorrichtung zur steuerung eines dialogcomputersystems | |
DE4422637A1 (de) | Rechnersystem und Verfahren zum Problemlösen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8127 | New person/name/address of the applicant |
Owner name: SEIKO INSTRUMENTS INC., CHIBA, JP Owner name: SEIKO EPSON CORP., TOKIO/TOKYO, JP |
|
8127 | New person/name/address of the applicant |
Owner name: SEIKO EPSON CORP., TOKYO, JP |
|
R016 | Response to examination communication | ||
R018 | Grant decision by examination section/examining division | ||
R020 | Patent grant now final | ||
R071 | Expiry of right |