WO1999027427A1 - Virtual robot - Google Patents

Virtual robot Download PDF

Info

Publication number
WO1999027427A1
WO1999027427A1 PCT/EP1998/007567 EP9807567W WO9927427A1 WO 1999027427 A1 WO1999027427 A1 WO 1999027427A1 EP 9807567 W EP9807567 W EP 9807567W WO 9927427 A1 WO9927427 A1 WO 9927427A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
abstract
translator
virtual robot
model
Prior art date
Application number
PCT/EP1998/007567
Other languages
German (de)
French (fr)
Inventor
Helmut BLÖCKER
Gerhard Kauer
Original Assignee
GESELLSCHAFT FüR BIOTECHNOLOGISCHE FORSCHUNG MBH (GBF)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GESELLSCHAFT FüR BIOTECHNOLOGISCHE FORSCHUNG MBH (GBF) filed Critical GESELLSCHAFT FüR BIOTECHNOLOGISCHE FORSCHUNG MBH (GBF)
Priority to EP98962389A priority Critical patent/EP0954772A1/en
Priority to JP52765999A priority patent/JP2002511969A/en
Priority to CA002278582A priority patent/CA2278582A1/en
Publication of WO1999027427A1 publication Critical patent/WO1999027427A1/en

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33053Modular hardware, software, easy modification, expansion, generic, oop
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39014Match virtual world with real world
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40131Virtual reality control, programming of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40312OOP object oriented programming for simulation

Definitions

  • the invention relates to a virtual robot, i.e. a method and a device for controlling robots and automatic machines, such as experiments in a laboratory or automated processes in industrial production.
  • the invention is therefore based on the object of developing a virtual robot for controlling robots or automatic machines which can be easily adapted to a wide variety of robots.
  • a virtual robot according to the invention for controlling a real machine preferably comprises a software IC “controller” for controlling the abstract machine, an IC “model” for describing the abstract world of the machine to be actually controlled, an IC “translator” for generating and using the language of the abstract machine, an IC “ro ⁇ bot” for implementing actions of an abstract Robo ⁇ ters that depend on events of the controller, IC “robot Device” to implement actions of a real robot which depend on events of the controller, and an IC “Swatch” for outputting the current internal state of the real machine to a display unit or for simulating real actions.
  • IC “controller” for controlling the abstract machine
  • an IC “model” for describing the abstract world of the machine to be actually controlled
  • an IC “translator” for generating and using the language of the abstract machine
  • an IC “ro ⁇ bot” for implementing actions of an abstract Robo ⁇ ters that depend on events of the controller
  • IC “robot Device” to
  • the software ICs "Swatch” and “Robotdevice” can be derived from an abstract base class “View”, in which the interfaces of the ICs “Swatch” and “Robotdevice” are defined. Furthermore, the software ICs “View” and “Model” can be given a common interface by means of excitation, which enables simplified communication with the "controller”.
  • the IC “Translator” consist of the Mini class “Language”, which comprises the two object classes “Grammar” and “Vocabulary”, the class “Grammar” defining the rules for actions and methods of the abstract machine, while the class “Vocabulary” contains the necessary terms.
  • the "Model” class is such that it inherits its interface to its subclasses, which include an abstract model of the world of a robot that is actually used.
  • the device control includes logging al ⁇ ler "Views”, loading the program parameters in the IC “Mo ⁇ del” and the setting up of the process in the IC world “Model”.
  • the limits of the process world are checked, and if the world limits are not reached, the pending process step is carried out while reaching the World borders of the virtual robot is ended and thus the control of the real robot is finished.
  • This object-oriented design of the software is carried out in four steps:
  • a particular effect when using such software ICs is that when a software IC is improved, all software which contains this software IC is also improved.
  • the easy interchangeability of software ICs is achieved by distinct software units exist that communicate exclusively via exactly defi ⁇ ned interfaces together.
  • the code within an IC is completely encapsulated, ie all internal elements of the ongoing data processing to the product can of au ⁇ , ie by other ICs, inaccessible.
  • FIG. 11 shows a detailed event flow diagram of the virtual robot, the focus of detail being on the IC "translator”.
  • the first step in object-oriented programming is a description of the problem for the control software.
  • an external process pushes the Ansteue- control software, and gives her the required runtime of the Pro ⁇ program parameters, such as information on the actions being performed, so in case of software for controlling a vacuum chamber, the switch-on of the vacuum pump, the numbers of the valves, Time of opening, etc.
  • This information must be translated into program parameters.
  • This is handled by a parser, adds ⁇ ver of a corresponding grammar and a vocabulary ⁇ .
  • the required functions can be understood under the grammar and the necessary data under the vocabulary. that will.
  • the control of the robot to be controlled is carried out by successive commands which have to be given to it at certain times. It is therefore necessary in clock with which the necessary synchronization can take place. Status reports on the current execution status are also required, ie an output unit for a screen is necessary.
  • a communication interface is also required to forward current commands from the control software to the robot.
  • the relevant objects are abstracted into classes of appropriate granularity.
  • the individual machines or robots to be controlled are unsuitable objects for the general design, since they are a direct symbol for the dependency.
  • the IC "controller” contains an interface to the timer of the operating system. The data that define actions for the IC "controller” directly affect its abstract world.
  • the next step is to define the interfaces and inheritance hierarchies between the classes.
  • the "Controller”, "Model” and “View” objects are decoupled, but must be synchronized. Changes of an object may affect other objects without the geän ⁇ -made object to know the other exactly. This is the De ⁇ chorus of "Observer pattern”. Therefore, the design of these three objects is based on the "Observer pattern”.
  • the "Translator” object is only used during the program ⁇ startes. It is not necessary that this object exists as long as the "controller”. A simple association is thus possible in order to establish a connection for the evaluation of the information transmitted.
  • the "Language” object shown in FIG. 1 combines the elements “Grammar” and "Vocabulary".
  • Prinzipi ⁇ ell could formulate the grammar of a language in the form of methods, the vocabulary, however, regarded as their data. This would be the classic definition of a class: summarizing data with the operations directed at it. However, you would be the one ⁇ impose limitation in this design, both elements can not be independent vari ⁇ ming. It would be more cumbersome to apply different grammars to the same vocabulary if both elements were united in one and the same class.
  • Fig. 2 shows the connection between the "Translator” object and its “Language” object.
  • the problem shows that as long as the "Translator” object exists, it needs its “Language” object. Therefore associations are excluded as a connection.
  • 00D aggregations are considered elements of synthesis: "The object consists of ", or "Object A uses object B throughout its existence for task X ".
  • the "translator” class is combined in a singular aggregation with the "Language” class, as shown in FIG. 2.
  • Fig. 3 shows the nesting of the "view” objects.
  • the “controller” implements the algorithms for controlling the various machines (eg cyclical ventilation in a vacuum chamber) and is thus an example of a “strategy pattern”.
  • the class "View” is an abstract base class' in which the interface of the concrete classes derived from it is defined. This design ensures the consistency of the interface for all views.
  • “Swatch” is the class whose copy for the graphical output of the current is responsible internal state on the screen.
  • the "robot Device” class encapsulates the respective interface Subject Author ⁇ fenden hardware to be controlled robot.
  • This class is an adapter class that resolves the hardware dependency via an adapted class.
  • the adapted classes receive the names of the devices to be controlled.
  • the object adapter for the described "view” objects uses the object composition shown in FIG. 4. Here, the Whether ⁇ If ject to "VC-Device" on behalf of all other ⁇ controlled robot.
  • the "controller” object shown in FIG. 5 is the center of the application in the present software design. It registers objects dependent on it in order to inform it in the future of any changes that may occur. Here is unmarried ⁇ Lich the signal that something has changed, sent.
  • the associated class has an interface with which the dependent objects can be synchronized with the new state via queries. In the present case, these are the dependent objects "CSR”, “PCR” and Vacuum Chamber ", which stand for three different robot types in the underlying application.
  • the dependent objects are responsible for obtaining the information relevant to them.
  • the "controller” object utilizes the data that have been available over the Whether ⁇ ject "Translator” and a gegebe ⁇ executes nes protocol.
  • the "controller” has access to the Sy ⁇ stemuhr of the computer and receives from the latter via an interface, a measure of time.
  • the "controller” class is abstract and defines an interface that is inherited from all derived classes. The classes derived from it can be easily exchanged through the common interface. The different methods for each robot are thus solved by this design, which is based on an "observer huster", as shown in FIG. 5.
  • the "model” has the same interface as a “view”. You could now derive the "model” from the abstract base class "View” to inherit this interface, but this would not be a clean representation of reality.
  • PCR is a pipetting robot
  • CRS is a gripping robot
  • Vac or VacuumChamber is an automatic vacuum chamber.
  • FIGS. 9-11 The dynamic, externally visible behavior of the system and its objects is graphically documented in FIGS. 9-11. Internal actions, which are determined by algorithms, are not taken into account unless they manifest themselves externally. All events are first identified and only then assigned to the objects. In this way, the dynamic model provides additional control as to whether the design presented in the object model is sustainable. State diagrams are thus created for each object, as is exemplarily carried out in FIGS. 9-11 with a focus on the "translator".
  • the "controller” receives a line from the “controller” which should contain information for the process to be controlled.
  • the "Translator” checks the grammar and vocabulary of this line and accepts it as a command line.
  • the "Translator” translates the content of the line into program-relevant parameters using the grammar and vocabulary available to it.
  • the translator returns these program parameters to the "controller”.
  • the "controller” receives a line from the “controller” which should contain information for the process to be controlled.
  • the "Translator” checks the grammar and vocabulary of this line and does not accept them as a command line because the grammar is incorrect.
  • the "Translator” informs the "Controller” of an incorrect command line and terminates.
  • the "controller” receives a line from the “controller” which should contain information for the process to be controlled.
  • the "Translator” determines that the transferred line is invalid.
  • the "Translator” informs the controller that it has received an incorrect line of information and aborts.
  • Fig. 11 finally, is a self-explanatory whilflußplan detail with focus "Translator”, that the relationships shown in FIGS. 9 and 10 in the Bacpro ⁇ program embeds.

Abstract

A virtual robot for controlling an automatic machine is formed by the interaction of the following software ICs: a 'controller' IC for controlling the abstract machine; a 'model' IC for describing the abstract world of the real machine to be controlled; a 'translator' IC for generating the language of the abstract machine; a 'robot' IC for implementing actions of an abstract robot which depend on events of the 'controller' IC; and a 'swatch' IC for outputting the actual inner state of the real machine on a display unit.

Description

Virtueller Roboter Virtual robot
Die Erfindung betrifft einen virtuellen Roboter, d.h. ein Verfahren und eine Vorrichtung zum Steuern von Robotern und automatischen Maschinen, wie beispielsweise Experimente in einem Labor oder automatisierte Verfahrensabiäufe in der industriellen Fertigung.The invention relates to a virtual robot, i.e. a method and a device for controlling robots and automatic machines, such as experiments in a laboratory or automated processes in industrial production.
Automatisierte Verfahrensabläufe, in denen Vorrichtungen, die im allgemeinen als Roboter bezeichnet werden, mittels spezieller Steuerungsprogramme diverse Tätigkeiten ausführen werden in vielen industriellen Bereichen und Labors verwendet. Beispielsweise ist es bei dem Humane Genome Pro- ject notwendig, eine große Anzahl von DNA-Präparationen zur Isolierung der menschlichen Genome durchzuführen. Um zu dem gewünschten Ziel zu gelangen, ist eine automatisierte Präparation mittels Präpar Yonsroboter notwendig. Die Steuerung bzw. das Steuerungsprogramm derartiger Automaten oder Roboter ist jedoch bislang auf den verwendeten Roboter individuell zugeschnitten und angepaßt. Der Austausch eines Roboters durch einen anderen oder die Erweiterung einer Automatisierung durch Hinzufügen eines weiteren Roboters anderen Typs bedingt daher im Regelfall die Abänderung, Erweiterung oder im Extremfall den gesamten Austausch der bestehenden Steuerungssoftware.Automated process sequences in which devices, which are generally referred to as robots, carry out various activities by means of special control programs are used in many industrial areas and laboratories. For example, the Human Genome Project requires a large number of DNA preparations to isolate the human genome. In order to achieve the desired goal, automated preparation using the Yonsrobot preparation is necessary. However, the control or the control program of such machines or robots has so far been individually tailored and adapted to the robot used. Replacing a robot with another robot or expanding automation by adding another robot of a different type therefore generally requires the modification, extension or, in extreme cases, the entire replacement of the existing control software.
Der Erfindung liegt daher die Aufgabe zugrunde, einen virtuellen Roboter zur Steuerung von Robotern oder Automaten zu entwickeln, der einfach an unterschiedlichste Roboter angepaßt werden kann.The invention is therefore based on the object of developing a virtual robot for controlling robots or automatic machines which can be easily adapted to a wide variety of robots.
Die Aufgabe wird durch die Merkmale des unabhängigen Anspruchs gelöst. Bevorzugte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.The object is solved by the features of the independent claim. Preferred embodiments of the invention are the subject of the dependent claims.
Vorzugsweise umfaßt eine erfindungsgemäßer virtueller Roboter zum Steuern einer realen Maschine einen Software-IC "Controller" zum Steuern der abstrakten Maschine, einen IC "Model", zum Beschreiben der abstrakten Welt der real zu steuernden Maschine, einen IC "Translator" zum Erzeugen und Benutzen der Sprache der abstrakten Maschine, einen IC "Ro¬ bot" zum Implementieren von Aktionen eines abstrakten Robo¬ ters, die von Ereignissen des Controllers abhängen, einen IC "Robotdevice" zum Implementieren von Aktionen eines realen Roboters, die von Ereignissen des Controllers abhängen, und einen IC "Swatch" zum Ausgeben des aktuellen inneren Zu- stands der realen Maschine auf eine Anzeigeeinheit oder zur Simulation von realen Aktionen.A virtual robot according to the invention for controlling a real machine preferably comprises a software IC “controller” for controlling the abstract machine, an IC “model” for describing the abstract world of the machine to be actually controlled, an IC “translator” for generating and using the language of the abstract machine, an IC "ro ¬ bot" for implementing actions of an abstract Robo ¬ ters that depend on events of the controller, IC "robot Device" to implement actions of a real robot which depend on events of the controller, and an IC "Swatch" for outputting the current internal state of the real machine to a display unit or for simulating real actions.
Die Software-ICs "Swatch" und "Robotdevice" können aus einer abstrakten Basisklasse "View" abgeleitet werden, in der die Schnittstellen der ICs "Swatch" und "Robotdevice" definiert sind. Ferner können die Software-ICs "View" und "Model" eine gemeinsame Schnittstelle durch Exzorption erhalten, die eine Vereinfachte Kommunikation mit dem "Controller" ermöglicht. Der IC "Translator" bestehe aus der Mi- xin-Klasse "Language", die die zwei Ob ektklassen "Grammar" und "Vocabulary" umfaßt, wobei die Klasse "Grammar" das Regelwerk für Aktionen bzw. Methoden der abstrakten Maschine definiert, während die Klasse "Vocabulary" die dazu notwendigen Begriffe beinhaltet. Die Klasse "Model" ist so beschaffen, daß sie ihre Schnittstelle auf ihre Unterklassen vererbt, die ein abstraktes Model der Welt eines real verwendeten Roboters umfaßt.The software ICs "Swatch" and "Robotdevice" can be derived from an abstract base class "View", in which the interfaces of the ICs "Swatch" and "Robotdevice" are defined. Furthermore, the software ICs "View" and "Model" can be given a common interface by means of excitation, which enables simplified communication with the "controller". The IC "Translator" consist of the Mini class "Language", which comprises the two object classes "Grammar" and "Vocabulary", the class "Grammar" defining the rules for actions and methods of the abstract machine, while the class "Vocabulary" contains the necessary terms. The "Model" class is such that it inherits its interface to its subclasses, which include an abstract model of the world of a robot that is actually used.
Zur Durchführung der Steuerung erhält der "Translator" vom "Controller" eine Datei, die Informationen über den anzusteuernden Prozeß enthalten soll, der "Translator" überprüft die Grammatik und den Wortschatz dieser Zeile und ak¬ zeptiert sie als Kommandozeile, der "Translator" übersetzt den Inhalt der Zeile mit Hilfe der ihm zur Verfügung stehenden ICs "Grammar" und "Vocabulary" in abstrakte Parameter, der "Translator" gibt dann diese Programmparameter an den "Controller" zurück, und der "Controller" startet: die Gerä¬ testeuerung des virtuellen Roboters mit den Proσrammparame- tern .To carry out the control of the "Translator" receives "Controller" a file should contain about to be driven process the information that the "Translator" analyzed the grammar and vocabulary of this line and ak ¬ they zeptiert as a command line, translated the "Translator" the contents of the line, use the means available ICs "Grammar" and "Vocabulary" in abstract parameters of the "Translator" then this program parameters to the "controller" back, and the "controller" begins: the Gerä ¬ testeuerung of virtual robot with the program parameters.
Ferner beinhaltet die Gerätesteuerung das Anmelden al¬ ler "Views", das Laden der Programmparameter in den IC "Mo¬ del", und das Aufbauen der Prozeßwelt im IC "Model". Zur Durchführung der Steuerung des realen Roboters wird nach er¬ folgreichem Aufbau der Prozeßwelt ein Taktgeber "Timer" oder ein anderer Beobachter, beispielsweise ein Sensor, gestar¬ tet. Die Grenzen der Prozeßwelt werden geprüft, wobei im Falle des Nichterreichens der Weltgrenzen der anstehende Prozeßschritt ausgeführt wird, während mit dem Erreichen der Weltgrenzen der virtuelle Roboter beendet wird und damit die Steuerung des realen Roboters beendet ist.Furthermore, the device control includes logging al ¬ ler "Views", loading the program parameters in the IC "Mo ¬ del" and the setting up of the process in the IC world "Model". To carry out the control of the real robot ¬ successful rich structure of the process world clock "Timer" or another observer, such as a sensor, is gestar ¬ tet after it. The limits of the process world are checked, and if the world limits are not reached, the pending process step is carried out while reaching the World borders of the virtual robot is ended and thus the control of the real robot is finished.
Vorteilhafterweise besteht die Software zur Ansteuerung der unterschiedlichen realen Roboter aus leicht modifizier¬ baren Bausteinen, nämlich den genannten Software-ICs . Dieses objektorientierte Design der Software wird in vier Schritten vollzogen :Advantageously, the software for controlling the various real robot from readily modify ¬ cash blocks, namely the above-mentioned software ICs. This object-oriented design of the software is carried out in four steps:
1. Relevante Objekte erkennen,1. Identify relevant objects,
2. Abstraktion zu Klassen passender Granularität ,2. abstraction to classes of appropriate granularity,
3. Schnittstellen und Vererbungshierarchie festlegen, sowie3. Define interfaces and inheritance hierarchy, as well
4. Zentrale Beziehungen zwischen den Objekten festlegen.4. Define central relationships between the objects.
Ein besonderer Effekt bei der Verwendung derartiger Software-ICs ist, daß bei der Verbesserung eines Software ICs sämtliche Software, die diesen Software-IC enthält, ebenfalls verbessert wird. Die einfache Austauschbarkeit der Software-ICs wird dadurch erreicht, daß abgegrenzte Softwareeinheiten vorliegen, die ausschließlich über genau defi¬ nierte Schnittstellen miteinander kommunizieren. Der Code innerhalb eines ICs ist völlig gekapselt, d.h. alle internen Elemente der stattfindenden Datenverarbeitung sind von au¬ ßen, d.h. von anderen ICs, nicht zugänglich.A particular effect when using such software ICs is that when a software IC is improved, all software which contains this software IC is also improved. The easy interchangeability of software ICs is achieved by distinct software units exist that communicate exclusively via exactly defi ¬ ned interfaces together. The code within an IC is completely encapsulated, ie all internal elements of the ongoing data processing to the product can of au ¬, ie by other ICs, inaccessible.
Eine bevorzugte Ausführungsform der Erfindung ist nachfolgend anhand der Zeichnungen erläutert.A preferred embodiment of the invention is explained below with reference to the drawings.
Fig. 1 zeigt den Aufbau der Klasse "Language",1 shows the structure of the "Language" class,
Fig. 2 zeigt den Zusammenhang zwischen "Translator" und "Language",2 shows the relationship between "translator" and "language",
Fig. 3 zeigt den Aufbau der Klasse "View", Fig. 4 zeigt die Festlegung des abstrakten "Robot",3 shows the structure of the class "View", 4 shows the definition of the abstract "robot",
Fig. 5 zeigt das "Observer"-Muster für den abstrakten "Controller" ,5 shows the "Observer" pattern for the abstract "controller",
Fig. 6 zeigt die Definition der Klasse "Controllerinterface",6 shows the definition of the class "controller interface",
Fig. 7 zeigt die Vererbungshierarchie der Klasse "Model",7 shows the inheritance hierarchy of the class "model",
Fig. 8 zeigt ein Diagramm des gesamten virtuellen Roboters,8 shows a diagram of the entire virtual robot,
Fig. 9 zeigt ein Flußdiagramm der den IC "Translator" betreffenden Ereignisse,9 shows a flow diagram of the events relating to the IC "translator",
Fig. 10 zeigt ein Ereignisflußdiagramm des ICs "Translator", und10 shows an event flow diagram of the IC "Translator", and
Fig. 11 zeigt ein ausführliches Ereignisflußdiagramm des virtuellen Roboters, wobei der Detailschwerpunkt auf dem IC "Translator" liegt.11 shows a detailed event flow diagram of the virtual robot, the focus of detail being on the IC "translator".
In der objektorientierten Programmierung erfolgt als erster Schritt eine Problembeschreibung für die Ansteue- rungssoftware . Hier stößt ein externer Prozeß die Ansteue- rungssoftware an und übergibt ihr die zur Laufzeit des Pro¬ gramms benötigten Parameter, wie beispielsweise Informationen über die auszuführenden Aktionen, also Im Falle einer Software zur Steuerung einer Vakuumkammer die Einschaltzeiten der Vakuumpumpe, die Nummern der Ventile, Zeitangaben zu deren Öffnung etc. Diese Angaben müssen in Programmparameter übersetzt werden. Dies wird von einem Parser übernommen,^ der über eine entsprechende Grammatik und einen Wortschatz ver¬ fügt. Dabei kann unter der Grammatik die benötigten Funktionen und unter dem Wortschatz die notwendigen Daten verstan- den werden. Die Kontrolle über den anzusteuernden Roboter wird durch aufeinanderfolgende Befehle ausgeführt, die zu bestimmten Zeiten an ihn abgegeben werden müssen. Es ist daher in Taktgeber notwendig, mit dem die notwendigen Synchronisationen erfolgen können. Ferner werden Statusreports über den aktuellen Ausführungszustand benötigt, d.h. es ist eine Ausgabeeinheit für einen Bildschirm notwendig. Außerdem wird eine Kommunikationsschnittstelle benötigt, um aktuelle Befehle aus der Steuerungssoftware heraus an den Roboter weiterzuleiten .The first step in object-oriented programming is a description of the problem for the control software. Here, an external process pushes the Ansteue- control software, and gives her the required runtime of the Pro ¬ program parameters, such as information on the actions being performed, so in case of software for controlling a vacuum chamber, the switch-on of the vacuum pump, the numbers of the valves, Time of opening, etc. This information must be translated into program parameters. This is handled by a parser, adds ^ ver of a corresponding grammar and a vocabulary ¬. The required functions can be understood under the grammar and the necessary data under the vocabulary. that will. The control of the robot to be controlled is carried out by successive commands which have to be given to it at certain times. It is therefore necessary in clock with which the necessary synchronization can take place. Status reports on the current execution status are also required, ie an output unit for a screen is necessary. A communication interface is also required to forward current commands from the control software to the robot.
Im zweiten Analyseschritt der objektorientierten Programmierung werden die relevanten Objekte zu Klassen passender Granularität abstrahiert. Die einzelnen anzusteuernden Maschinen oder Roboter sind ungeeignete Objekte für das allgemeine Design, da sie ein direktes Symbol für die Abhängigkeit sind. An deren Stelle soll ein abstrakter Roboter, oder allgemeiner eine abstrakte "Maschine" stehen, die in Beziehung zu einer Timer-gesteuerten Ein- und Ausgabefunktion steht. Aus der Sicht der Ansteuerungssoftware ist diese "Maschine" ein Objekt, das über die vorgegebenen Parameter kontrolliert werden muß. Daher wird als das erste Objekt ein Software-IC mit dem Namen "Controller" geschaffen. Der IC "Controller" enthält eine Schnittstelle zu dem Zeitgeber des Betriebsystems. Die Daten, die Aktionen für den IC "Controller" definieren, betreffen direkt dessen abstrakte Welt. Soll nun ein Greifroboter, der Gegenstände von A nach B bewegt, angesteuert werden, so beziehen sich alle Koordinatenangaben auf seinen erfaßbaren Bereich. Seine Welt besteht daher aus Koordinaten und dem Anfahren der entsprechenden Koordinaten. Bei anderen Robotern, wie beispielsweise einem Pipetier-Roboter , sind nur Temperatur und Zeitangaben für dessen Steuerung wichtig. D.h. dessen Welt wird durch Temperatur und Zeitparameter aufgebaut. Folglich muß die abstrakte Maschine "Controller" muß über eine abstrakte Beschrei- bung ihrer Welt verfügen. Entsprechend wird eine Klasse "Model" benötigt.In the second analysis step of object-oriented programming, the relevant objects are abstracted into classes of appropriate granularity. The individual machines or robots to be controlled are unsuitable objects for the general design, since they are a direct symbol for the dependency. In their place, there should be an abstract robot, or more generally an abstract "machine" that is related to a timer-controlled input and output function. From the point of view of the control software, this "machine" is an object that must be checked using the specified parameters. Therefore, a software IC named "Controller" is created as the first object. The IC "controller" contains an interface to the timer of the operating system. The data that define actions for the IC "controller" directly affect its abstract world. If a gripping robot that moves objects from A to B is now to be controlled, all coordinate information relates to its detectable area. His world therefore consists of coordinates and moving to the corresponding coordinates. With other robots, such as a pipetting robot, only the temperature and times are important for its control. This means that its world is built up by temperature and time parameters. Consequently, the abstract machine "controller" must have an abstract description exercise their world. Accordingly, a "Model" class is required.
Der Anwender muß zu Kontrollzwecken über den internen Zustand der abstrakten Maschine "Controller" informiert werden. Dies soll über eine Ausgabe des aktuellen Zustandes auf den Bildschirm erfolgen. Man könnte das Objekt nun einfach "Bildschirm" nennen, wodurch das Design jedoch unnötig festgelegt würde und erhebliches Potential verlöre. Ergeben sich Veränderungen im Modell-Datensatz, so muß sofort die Ausgabe auf dem Bildschirm an die neue Situation angepaßt werden. Dies ist jedoch nicht nur für den Bildschirm so, sondern auch für die eigentliche, anzusteuernde Maschine. Ändert sich das Modell, so sollte sich die Sicht für die Applikation ebenfalls ändern. Die allgemeine Ausdrucksform der dritten Klasse kann daher mit "View" bezeichnet werden. Sie beinhaltet sowohl die Bildschirmausgabe als auch die direkte Kommunikation mit der Maschine, ist also jeweils eine Variante der selben Form:The user must be informed about the internal state of the abstract machine "controller" for control purposes. This should be done by displaying the current status on the screen. One could simply call the object "screen", but this would unnecessarily define the design and would lose considerable potential. If there are changes in the model data set, the output on the screen must be adapted to the new situation immediately. However, this is not only so for the screen, but also for the actual machine to be controlled. If the model changes, the view for the application should also change. The general expression of the third class can therefore be called "view". It includes both the screen output and direct communication with the machine, so it is a variant of the same form:
Verändert der "Controller" das Modell, so werden die abhängigen ICs "View" darüber informiert.If the "controller" changes the model, the dependent ICs "View" are informed.
Die abstrakte Maschine "Controller" muß über die neuen Anforderungen informiert werden, die von einer fremden Soft¬ ware beim Aufruf übergeben wurden. Diese Informationen liegen in Form einer Zeile mit Schlüsselworten vor. Diese Schlüsselworte identifizieren die unmittelbar auf sie folgende Information. Diese Information ist ebenso maschinenab¬ hängig, wie das die Klasse "Model". In der Regel sind hier alle Informationen gegeben die den IC "Model" unmittelbar betreffen. Daher wird ein Übersetzer für die jeweilige ab¬ strakte Maschine benötigt, der sowohl über die Grammatik (die Funktionen) , als auch den Wortschatz (die Daten) der jeweiligen Anforderung verfügt. Die vierte Klasse wird daher als "Translator" festgelegt. Grammatik und Wortschatz sind die beiden Elemente, welche in diesem Zusammenhang die breiteste Variation in das Design bringen. Man kann diesen Sachverhalt über ein fünftes Objekt mit dem Namen "Language" widerspiegeln .The abstract machine "controller" must be informed of the new requirements that were passed on by a third-party software when it was called. This information is in the form of a line with keywords. These keywords identify the information immediately following them. This information is just as machine- dependent as the "Model" class. As a rule, all information is given here that directly affects the IC "Model". Therefore, a translator for the respective machine from ¬ cut research is needed, which has both the grammar (which functions) as well as the vocabulary (the data) of the respective requirement. The fourth class is therefore set as "Translator". Grammar and vocabulary are the two elements that bring the widest variation in design in this context. This can be reflected in a fifth object called "Language".
Als nächstes müssen die Schnittstellen und Vererbungshierarchien zwischen den Klassen festgelegt werden. Die Objekte "Controller", "Model" und "View" sind entkoppelt, müssen aber synchronisiert werden. Änderungen eines Objektes können sich auf andere Objekte auswirken, ohne daß das geän¬ derte Objekt die anderen genau kennen muß. Dies ist die De¬ finition eines "Observer-Musters" . Daher wird das Design dieser drei Objekte an das "Observer-Muster" angelehnt.The next step is to define the interfaces and inheritance hierarchies between the classes. The "Controller", "Model" and "View" objects are decoupled, but must be synchronized. Changes of an object may affect other objects without the geän ¬-made object to know the other exactly. This is the De ¬ finition of "Observer pattern". Therefore, the design of these three objects is based on the "Observer pattern".
Das "Translator"-Objekt wird nur während des Programm¬ startes gebraucht. Es ist nicht notwendig, daß dieses Objekt genauso lange existiert, wie der "Controller". Somit bietet sich eine einfache Assoziation an, um eine Verbindung für die Auswertung der übergebenen Information herzustellen.The "Translator" object is only used during the program ¬ startes. It is not necessary that this object exists as long as the "controller". A simple association is thus possible in order to establish a connection for the evaluation of the information transmitted.
Das in der Fig. 1 dargestellte "Language"-Obj ekt faßt die Elemente "Grammar" und "Vocabulary" zusammen. Prinzipi¬ ell könnte man die Grammatik einer Sprache in Form von Methoden formulieren, die Vokabeln hingegen als deren Daten auffassen. Dies wäre die klassische Definition einer Klasse: Zusammenfassen von Daten mit den auf sie gerichteten Operationen. Allerdings würde man sich bei diesem Design die Ein¬ schränkung auferlegen, beide Elemente nicht unabhängig vari¬ ieren zu können. So wäre es umständlicher, unterschiedliche Grammatiken auf den gleichen Wortschatz anzuwenden, wenn beide Elemente in ein und der selben Klasse vereint wären. Es gibt eine Reihe von Möglichkeiten diese beiden Elemente als eigene Klassen aufzufassen und durch Vererbung in eine "Language"-Klasse zu vereinen. So könnte das "Language"- Objekt wie hier in der Fig. 1 dargestellt als Exemplar einer Mix-In Klasse verstanden werden. Somit ist es möglich das "Grammar" Objekt in künftigen Entwicklungen auszutauschen, ohne daß das "Vocabulary" -Obj ekt betroffen ist.The "Language" object shown in FIG. 1 combines the elements "Grammar" and "Vocabulary". Prinzipi ¬ ell could formulate the grammar of a language in the form of methods, the vocabulary, however, regarded as their data. This would be the classic definition of a class: summarizing data with the operations directed at it. However, you would be the one ¬ impose limitation in this design, both elements can not be independent vari ¬ ming. It would be more cumbersome to apply different grammars to the same vocabulary if both elements were united in one and the same class. There are a number of ways to treat these two elements as separate classes and to combine them into a "Language" class by inheritance. So the "Language" - Object as shown here in FIG. 1 can be understood as an example of a mix-in class. It is therefore possible to exchange the "Grammar" object in future developments without affecting the "Vocabulary" object.
Fig. 2 zeigt die Verbindung zwischen dem "Translator"- Objekt und seinem "Language"-Obj ekt . Aus der Problemstellung ergibt sich, daß solange das "Translator "-Obj ekt existiert, es sein "Language"-Objekt benötigt. Daher scheiden Assoziationen somit als Verbindung aus. Prinzipiell verbleiben noch die Möglichkeiten der Vererbung oder der Aggregation. Vererbungen sind Elemente des objektorientierten Designs (=00D) um verwandte Objekte, quasi "phylogenetisch" auseinander hervorgehen zu lassen. Aggregationen werden im 00D als Elemente der Synthese angesehen: "Das Objekt besteht aus...", oder "Das Objekt A verwendet während seiner gesamten Existenz Objekt B für Aufgabe X...". Somit wird die "Transla- tor"-Klasse in einer singulären Aggregation mit der "Langua- ge"-Klasse verbunden, wie dies in der Fig. 2 dargestellt ist .Fig. 2 shows the connection between the "Translator" object and its "Language" object. The problem shows that as long as the "Translator" object exists, it needs its "Language" object. Therefore associations are excluded as a connection. In principle, the possibilities of inheritance or aggregation remain. Inheritance is an element of object-oriented design (= 00D) in order to let related objects emerge from one another in a "phylogenetic" way. In 00D, aggregations are considered elements of synthesis: "The object consists of ...", or "Object A uses object B throughout its existence for task X ...". Thus, the "translator" class is combined in a singular aggregation with the "Language" class, as shown in FIG. 2.
Fig. 3 zeigt die Schachtelung der "View" Objekte. Es leiten sich gemäß eines einfachen "Composite- Musters" zwei Views ab: "Screen" und "Robotdevice". Der "Controller" verwirklicht die Algorithmen zur Ansteuerung der verschiedenen Maschinen (z.B. bei einer Vakuumkammer eine zyklische Entlüftung) und ist somit Beispiel eines "Strategy- Musters". Die Klasse ,,View" ist eine abstrakte Basisklasse' in der die Schnittstelle der von ihr abgeleiteten konkreten Klassen definiert ist. Dieses Design sichert die Konsistenz der Schnittstelle für alle Views. "Swatch" ist die Klasse, deren Exemplar für die graphische Ausgabe des aktuellen inneren Zustandes auf dem Schirm verantwortlich ist. Die Klasse "Robotdevice" kapselt die jeweilige Schnittstelle zur betref¬ fenden Hardware des anzusteuernden Roboters. Diese Klasse ist eine Adapterklasse, welche die Hardwareabhängigkeit über eine adaptierte Klasse auflöst. Die adaptierten Klassen erhalten die Namen der anzusteuernden Geräte.Fig. 3 shows the nesting of the "view" objects. According to a simple "composite pattern", two views are derived: "Screen" and "Robotdevice". The "controller" implements the algorithms for controlling the various machines (eg cyclical ventilation in a vacuum chamber) and is thus an example of a "strategy pattern". The class "View" is an abstract base class' in which the interface of the concrete classes derived from it is defined. This design ensures the consistency of the interface for all views. "Swatch" is the class whose copy for the graphical output of the current is responsible internal state on the screen. the "robot Device" class encapsulates the respective interface Subject Author ¬ fenden hardware to be controlled robot. This class is an adapter class that resolves the hardware dependency via an adapted class. The adapted classes receive the names of the devices to be controlled.
Um eine maximale Flexibilität zu realisieren wird kein Klassenadapter sondern ein in der Fig. 4 dargestellter Objektadapter verwendet. Somit ist es möglich, während der Laufzeit des Programms durch einfaches Auswechseln der Objekte verschiedene Zielgeräte anzusteuern. Der Objektadapter für die beschriebenen "View"-Obj ekte verwendet die in der Fig. 4 dargestellten Obj ekt komposition . Dabei Steht das Ob¬ jekt "VC-Device" stellvertretend für alle übrigen anzu¬ steuernden Roboter.In order to achieve maximum flexibility, no class adapter is used, but rather an object adapter shown in FIG. 4. It is thus possible to control different target devices by simply changing the objects during the runtime of the program. The object adapter for the described "view" objects uses the object composition shown in FIG. 4. Here, the Whether ¬ If ject to "VC-Device" on behalf of all other ¬ controlled robot.
Das in der Fig. 5 dargestellte "Controller"-Obj ekt ist im vorliegenden Softwareentwurf das Zentrum der Applikation. Es meldet von ihr abhängige Objekte an, um sie künftig bei auftretenden Veränderungen zu informieren. Dabei wird ledig¬ lich das Signal, daß sich etwas verändert hat, abgesendet. Die zugehörige Klasse verfügt über eine Schnittstelle, mit der sich die abhängigen Objekte über Anfragen mit dem neuen Zustand synchronisieren können. Im vorliegenden Fall handelt es sich um die abhängigen Objekte "CSR", "PCR" und Vacuum- Chamber", die in der zugrundeliegenden Applikation für drei verschiedenen Robotertypen stehen.The "controller" object shown in FIG. 5 is the center of the application in the present software design. It registers objects dependent on it in order to inform it in the future of any changes that may occur. Here is unmarried ¬ Lich the signal that something has changed, sent. The associated class has an interface with which the dependent objects can be synchronized with the new state via queries. In the present case, these are the dependent objects "CSR", "PCR" and Vacuum Chamber ", which stand for three different robot types in the underlying application.
Die abhängigen Objekte sind für die Beschaffung der für sie relevanten Informationen selbst verantwortlich. Das "Controller"-Objekt verwertet die Daten, welche über das Ob¬ jekt "Translator" verfügbar wurden, und arbeitet ein gegebe¬ nes Protokoll ab. Der "Controller" hat Zugriff auf die Sy¬ stemuhr des Rechners und erhält von dieser über eine Schnittstelle ein Zeitmaß. Die "Controller"-Klasse ist abstrakt und definiert eine Schnittstelle, die von allen abgeleiteten Klassen geerbt wird. Durch die gemeinsame Schnittstelle können die von ihr abgeleiteten Klassen auf einfache Weise ausgetauscht werden. Die für jeden Roboter unterschiedlichen Methoden sind somit durch diesen Entwurf gelöst, dem ein "Observer-Huster" zugrunde liegt, wie dies in der Fig. 5 dargestellt ist.The dependent objects are responsible for obtaining the information relevant to them. The "controller" object utilizes the data that have been available over the Whether ¬ ject "Translator" and a gegebe ¬ executes nes protocol. The "controller" has access to the Sy ¬ stemuhr of the computer and receives from the latter via an interface, a measure of time. The "controller" class is abstract and defines an interface that is inherited from all derived classes. The classes derived from it can be easily exchanged through the common interface. The different methods for each robot are thus solved by this design, which is based on an "observer huster", as shown in FIG. 5.
Das in der Fig. 6 dargestellte "Model" -Objekt reprä¬ sentiert die Welt der jeweiligen Maschine. Die aus dem "Translator" gewonnenen Daten werden in einem frühen Schritt der Programmlaufzeit über den "Controller" in das "Model" transferiert. Somit ist ", Model" ebenfalls ein Beobachter und wird im "Observer" Muster als solcher angemeldet. Die "Model"-Klasse ist abstrakt und wird durch Vererbung in ihre speziellen, maschinenabhängigen Aufgaben aufgelöst, die hier im Beispiel als "PCR-Model", CSR-Model" und "Vac-Model" ent¬ sprechend dreier verschiedener Roboter bezeichnet sind.The illustrated in Fig. 6 "Model" object repre ¬ sented the world of each machine. The data obtained from the "translator" is transferred to the "model" via the "controller" in an early step of the program runtime. Thus, "Model" is also an observer and is registered as such in the "Observer" pattern. The "Model" class is abstract and is dissolved by inheritance to their specific, machine-dependent tasks that here ent in the example as "PCR Model" CSR Model "and" Vac Model speaking three different robots are called.
Das "Model" hat für diese Zwecke die gleiche Schnittstelle wie ein "View". Man könnte nun das "Model" von der abstrakten Basisklasse "View" ableiten, um diese Schnittstelle zu vererben, allerdings wäre dies keine saubere Darstellung der Realität.For this purpose, the "model" has the same interface as a "view". You could now derive the "model" from the abstract base class "View" to inherit this interface, but this would not be a clean representation of reality.
Würde man diesem Gedanken folgen, so würde das Design auf längere Sicht eine Fehlerquelle beinhalten. So könnte eine Weiterentwicklung der Basisklasse "View", ohne Berücksichtigung der von ihr abhängenden "Model"-Klasse zu ungewollten Effekten führen. Daher wird, wie in der Fig. 7 dargestellt, die reine Schnittstelle aus der "View"-Klasse abstrahiert und eine eigene Klasse "Controllerinterface" definiert, von der dann Ergebnisse sowohl für die Klasse "Model" als auch "View" abgeleitet werden. Das " , Controllerinterface" Objekt garantiert die Konsistenz dieser Schnittstelle für alle Ob¬ jekte, die mit dem "Controller" -Obj ekt interagieren müssen. Eine Weiterentwicklung des Interfaces ist durch diese Abstraktion unproblematisch geworden, weil alle von den Veränderungen betroffenen Klassen diese sogleich erben.If one followed this idea, the design would contain a source of error in the long run. A further development of the base class "View", without considering the dependent "Model" class, could lead to unwanted effects. Therefore, as shown in FIG. 7, the pure interface is abstracted from the "View" class and a separate class "Controller Interface" is defined, from which results are then derived for both the "Model" and "View" classes. The "Controller Interface" can assure the consistency of projects that interface for all Whether ¬ that must interact ect with the "Controller" -Obj. A further development of the interface has become unproblematic due to this abstraction, because all classes affected by the changes immediately inherit them.
Zusammenfassend ergibt sich daher das in der Fig. 8 dargestellte Objektmodell des virtuellen Roboters. Im vorliegenden Beispiel ist PCR ein Pipettierroboter , CRS ein Greifroboter und Vac beziehungsweise VacuumChamber eine automatischen Vakuumkammer.In summary, the object model of the virtual robot shown in FIG. 8 results. In the present example, PCR is a pipetting robot, CRS is a gripping robot and Vac or VacuumChamber is an automatic vacuum chamber.
In den Figuren 9 - 11 werden die dynamischen, nach außen hin sichtbaren Verhaltensweisen des Systems und seiner Objekte graphisch dokumentiert. Innere Aktionen, die durch Algorithmen festgelegt sind, werden nicht berücksichtigt, sofern sie sich nicht nach außen hin manifestieren. Alle Ereignisse werden zunächst identifiziert und dann erst den Objekten zugewiesen. Auf diese Weise erhält man durch das dynamische Modell eine zusätzliche Kontrolle, ob das im Objektmodell vorgestellte Design tragfähig ist. So v;erden Zu- standsdiagramme für jedes Objekt erstellt, wie dies in den Fig. 9 - 11 beispielhaft mit Schwerpunkt auf den "Translator" durchgeführt ist.The dynamic, externally visible behavior of the system and its objects is graphically documented in FIGS. 9-11. Internal actions, which are determined by algorithms, are not taken into account unless they manifest themselves externally. All events are first identified and only then assigned to the objects. In this way, the dynamic model provides additional control as to whether the design presented in the object model is sustainable. State diagrams are thus created for each object, as is exemplarily carried out in FIGS. 9-11 with a focus on the "translator".
Szenario für den "Translator":Scenario for the "Translator":
NormalfallNormal case
Der "Translator" erhält vom "Controller" eine Zeile, die Informationen für den anzusteuernden Prozeß enthalten soll.The "controller" receives a line from the "controller" which should contain information for the process to be controlled.
Der "Translator" überprüft die Grammatik und den Wortschatz dieser Zeile und akzeptiert diese als Kommandozeile.The "Translator" checks the grammar and vocabulary of this line and accepts it as a command line.
Der "Translator" übersetzt den Inhalt der Zeile mit Hilfe der ihm zur Verfügung stehenden Grammatik und Wortschatz in programmrelevante Parameter. Der Translator gibt diese Programmparameter an den "Controller" zurück.The "Translator" translates the content of the line into program-relevant parameters using the grammar and vocabulary available to it. The translator returns these program parameters to the "controller".
Extremfälle :Extreme cases:
Der "Translator" erhält vom "Controller" eine Zeile, die Informationen für den anzusteuernden Prozeß enthalten soll.The "controller" receives a line from the "controller" which should contain information for the process to be controlled.
Der "Translator" überprüft die Grammatik und den Wortschatz dieser Zeile und akzeptiert diese nicht als Kommandozeile, weil die Grammatik fehlerhaft ist.The "Translator" checks the grammar and vocabulary of this line and does not accept them as a command line because the grammar is incorrect.
Der "Translator" informiert den "Controller" über eine fehlerhafte Kommandozeile und bricht ab.The "Translator" informs the "Controller" of an incorrect command line and terminates.
Fehleingaben :Incorrect entries:
Der "Translator" erhält vom "Controller" eine Zeile, die Informationen für den anzusteuernden Prozeß enthalten soll.The "controller" receives a line from the "controller" which should contain information for the process to be controlled.
Der "Translator" stellt fest, daß die übergebene Zeile ungültig ist.The "Translator" determines that the transferred line is invalid.
Der "Translator" informiert den Controller, eine fehlerhafte Informationszeile erhalten zu haben und bricht ab.The "Translator" informs the controller that it has received an incorrect line of information and aborts.
Fig. 11 schließlich ist ein selbsterklärender Ereignisflußplan mit Detailschwerpunkt "Translator", das die in den Fig. 9 und 10 dargestellten Zusammenhänge in das Gesamtpro¬ gramm einbettet.Fig. 11, finally, is a self-explanatory Ereignisflußplan detail with focus "Translator", that the relationships shown in FIGS. 9 and 10 in the Gesamtpro ¬ program embeds.
Die in den Figuren verwendete Notation wird üblicherweise bei einem objektorientierten Design verwendet und ist beispielsweise in Arnold Hickersberger : Der Weg zur objektorientierten Software, Hüthig Verlag, Heidelberg 1993, beschrieben . The notation used in the figures is usually used in an object-oriented design and is described, for example, in Arnold Hickersberger: The Way to Object-Oriented Software, Hüthig Verlag, Heidelberg 1993.

Claims

Patentansprüche claims
1. Virtueller Roboter zum Steuern einer automatischen Maschine, dadurch gekennzeichnet, daß der virtuelle Roboter durch die folgenden Software-ICs gebildet wird: einen IC "Controller" zum Steuern der abstrakten Maschine, einen IC "Model", zum Beschreiben der abstrakten Welt der real zu steuernden Maschine, einen IC "Translator" zum Erzeugen und Benutzen der Sprache der abstrakten Maschine, einen IC "Robot" zum Implementieren von Aktionen eines abstrakten Roboters, die von Ereignissen des IC "Controller" abhängen, einen IC "Robotdevice" zum Implementieren von Aktionen eines realen Roboters, die von Ereignissen des IC "Controller" abhängen, und einen IC "Swatch" zum Ausgeben des aktuellen inneren Zustands der realen Maschine auf eine Anzeigeeinheit oder Simulation von realen Aktionen.1. Virtual robot for controlling an automatic machine, characterized in that the virtual robot is formed by the following software ICs: an IC "controller" for controlling the abstract machine, an IC "model" for describing the abstract world of the real machine to be controlled, an IC "translator" to generate and use the language of the abstract machine, an IC "robot" to implement actions of an abstract robot that depend on events of the IC "controller", an IC "robot device" to implement Actions of a real robot, which depend on events of the IC "controller", and an IC "Swatch" for outputting the current internal state of the real machine on a display unit or simulation of real actions.
2. Virtueller Roboter nach Anspruch 1, dadurch gekennzeichnet, daß die Software-ICs "Swatch" und "Robotdevice" aus einer abstrakten Basisklasse "View" abgeleitet werden, in der die Schnittstellen der ICs "Swatch" und "Robotdevice" definiert sind.2. Virtual robot according to claim 1, characterized in that the software ICs "Swatch" and "Robotdevice" are derived from an abstract base class "View" in which the interfaces of the ICs "Swatch" and "Robotdevice" are defined.
3. Virtueller Roboter nach Anspruch 2, dadurch gekennzeichnet, daß die Software-ICs "View" und "Model" eine gemeinsame Schnittstelle durch Exzerption erhalten, die eine vereinfachte Kommunikation mit dem "Controller" ermöglicht.3. Virtual robot according to claim 2, characterized in that the software ICs "View" and "Model" receive a common interface by excerpt, which enables simplified communication with the "controller".
4. Virtueller Roboter nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß der IC "Translator" aus der Mixin-Klasse "Language" besteht, die die zwei Objektklassen "Grammar" und "Vocabulary" umfaßt, wobei die Klasse "Grammar" das Regelwerk für Aktionen bzw. Methoden der abstrakten Maschine definiert, während die Klasse "Vocabulary" die dazu notwendigen Begriffe beinhaltet.4. Virtual robot according to one of the preceding claims, characterized in that the IC "translator" the Mixin class "Language", which comprises the two object classes "Grammar" and "Vocabulary", the "Grammar" class defining the rules for actions and methods of the abstract machine, while the "Vocabulary" class defines the necessary terms includes.
5. Virtueller Roboter nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, daß die Klasse "Model" ihre Schnittstelle auf ihre Unterklassen vererbt, die ein abstraktes Model der Welt eines real verwendeten Roboters umfaßt.5. Virtual robot according to one of the preceding claims, characterized in that the class "model" inherits its interface to its subclasses, which comprises an abstract model of the world of a robot actually used.
6. Virtueller Roboter nach einem der vorangegangenen Ansprüche dadurch gekennzeichnet, daß der "Translator" vom "Controller" eine Datei erhält, die Informationen über den anzusteuernden Prozeß enthalten soll, der "Translator" die Grammatik und den Wortschatz dieser Zeile überprüft und sie als Kommandozeile akzeptiert, der "Translator" den Inhalt der Zeile mit Hilfe der ihm zur Verfügung stehenden ICs "Grammar" und "Vocabulary" in abstrakte Parameter übersetzt, der "Translator" dann diese Programmparameter an den "Controller" zurückgibt, und der "Controller" die Gerätesteuerung des virtuellen Ro¬ boters mit den Programmparametern startet.6. Virtual robot according to one of the preceding claims, characterized in that the "translator" receives a file from the "controller" which should contain information about the process to be controlled, the "translator" checks the grammar and the vocabulary of this line and it as a command line accepted, the "Translator" translates the contents of the line into abstract parameters using the ICs "Grammar" and "Vocabulary", the "Translator" then returns these program parameters to the "Controller", and the "Controller" the device control of the virtual ro ¬ boters with the program parameters starts.
7. Virtueller Roboter nach Anspruch β, dadurch gekenn¬ zeichnet, daß die Gerätesteuerung das Anmelden aller "Views", das Laden der Programmparameter in das "Model", und das Aufbauen der Prozeßwelt im IC "Model" beinhaltet.7. Virtual robot according to claim β, characterized characterized ¬ marked in that the device controller logging all "Views", the loading of the program parameters in the "Model," and the setting up of the process in the world IC "Model" includes.
8. Virtueller Roboter nach Anspruch 7, dadurch gekennzeichnet, daß nach erfolgreichem Aufbau der Prozeßwelt ein Taktgeber "Timer" oder ein anderer Beobachter, beispielsweise ein Sensor, gestartet wird.8. Virtual robot according to claim 7, characterized in that after successful establishment of the process world Clock "timer" or another observer, for example a sensor, is started.
9. Virtueller Roboter nach Anspruch 8, dadurch gekennzeichnet, daß die Grenzen der Prozeßwelt geprüft werden, wobei im Falle des Nichterreichens der Weltgrenzen der anstehende Prozeßschritt ausgeführt wird, während mit dem Errei¬ chen der Weltgrenzen der virtuelle Roboter beendet wird. 9. Virtual robot according to claim 8, characterized in that the limits of the process environment and in the case of non-attainment of the world limits the pending processing step is carried out while the Errei ¬ chen the world boundaries of the virtual robot is ended be tested.
PCT/EP1998/007567 1997-11-24 1998-11-24 Virtual robot WO1999027427A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP98962389A EP0954772A1 (en) 1997-11-24 1998-11-24 Virtual robot
JP52765999A JP2002511969A (en) 1997-11-24 1998-11-24 Virtual robot
CA002278582A CA2278582A1 (en) 1997-11-24 1998-11-24 Virtual robot

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE1997151955 DE19751955A1 (en) 1997-11-24 1997-11-24 Virtual robot
DE19751955.5 1997-11-24

Publications (1)

Publication Number Publication Date
WO1999027427A1 true WO1999027427A1 (en) 1999-06-03

Family

ID=7849623

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP1998/007567 WO1999027427A1 (en) 1997-11-24 1998-11-24 Virtual robot

Country Status (5)

Country Link
EP (1) EP0954772A1 (en)
JP (1) JP2002511969A (en)
CA (1) CA2278582A1 (en)
DE (1) DE19751955A1 (en)
WO (1) WO1999027427A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003102854A2 (en) * 2002-06-04 2003-12-11 Applera Corporation System and method for open control and monitoring of biological instruments

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19949558A1 (en) * 1999-10-14 2001-04-19 Heidenhain Gmbh Dr Johannes Control program for a numerical machine tool with a reusable software structure
DE102004031485B4 (en) 2004-06-30 2015-07-30 Kuka Roboter Gmbh Method and device for controlling the handling device
DE102008018962B4 (en) * 2008-04-16 2015-08-20 Kuka Roboter Gmbh Method for controlling a robot
DE102010012598A1 (en) * 2010-02-26 2011-09-01 Kuka Laboratories Gmbh Process module library and programming environment for programming a manipulator process

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914567A (en) * 1987-11-02 1990-04-03 Savoir Design system using visual language
US5247650A (en) * 1989-08-30 1993-09-21 Industrial Technology Institute System for combining originally software incompatible control, kinematic, and discrete event simulation systems into a single integrated simulation system
EP0596205A2 (en) * 1992-11-03 1994-05-11 Hewlett-Packard Company Bench supervisor system
US5423023A (en) * 1990-06-25 1995-06-06 Prime Computer, Inc. Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools
US5528503A (en) * 1993-04-30 1996-06-18 Texas Instruments Incoporated Integrated automation development system and method
US5586323A (en) * 1991-04-23 1996-12-17 Hitachi, Ltd. Compilier system using an intermediate abstract form and machine-specific installers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914567A (en) * 1987-11-02 1990-04-03 Savoir Design system using visual language
US5247650A (en) * 1989-08-30 1993-09-21 Industrial Technology Institute System for combining originally software incompatible control, kinematic, and discrete event simulation systems into a single integrated simulation system
US5423023A (en) * 1990-06-25 1995-06-06 Prime Computer, Inc. Method and apparatus for providing a user configurable system which integrates and manages a plurality of different task and software tools
US5586323A (en) * 1991-04-23 1996-12-17 Hitachi, Ltd. Compilier system using an intermediate abstract form and machine-specific installers
EP0596205A2 (en) * 1992-11-03 1994-05-11 Hewlett-Packard Company Bench supervisor system
US5528503A (en) * 1993-04-30 1996-06-18 Texas Instruments Incoporated Integrated automation development system and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. MICHAEL GRIESMEYER ET AL.: "Process Subsystem Architecture for Virtual Manufacturing Validation", PROCEEDINGS OF THE 1996 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, April 1996 (1996-04-01), Minneapolis, Minnesota, US, pages 2371 - 2376, XP000772562 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003102854A2 (en) * 2002-06-04 2003-12-11 Applera Corporation System and method for open control and monitoring of biological instruments
WO2003102854A3 (en) * 2002-06-04 2004-07-22 Applera Corp System and method for open control and monitoring of biological instruments
US6909974B2 (en) 2002-06-04 2005-06-21 Applera Corporation System and method for discovery of biological instruments
US7379823B2 (en) 2002-06-04 2008-05-27 Applera Corporation System and method for discovery of biological instruments
US7379821B2 (en) 2002-06-04 2008-05-27 Applera Corporation System and method for open control and monitoring of biological instruments
US7491367B2 (en) 2002-06-04 2009-02-17 Applera Corporation System and method for providing a standardized state interface for instrumentation
US7680605B2 (en) 2002-06-04 2010-03-16 Applied Biosystems, Llc System and method for discovery of biological instruments

Also Published As

Publication number Publication date
JP2002511969A (en) 2002-04-16
EP0954772A1 (en) 1999-11-10
CA2278582A1 (en) 1999-06-03
DE19751955A1 (en) 1999-06-02

Similar Documents

Publication Publication Date Title
EP1385071B1 (en) Method for exchanging data between machine controllers, specially robot controllers
DE19781804B4 (en) Device for simulating a real-time process control
EP1131686B1 (en) Method for controlling technical processes
DE10147115B4 (en) Use of remote soft phases in a process control system
DE102005026040A1 (en) Parameterization of a simulation working model
EP1638028A2 (en) Computer aided generation and change management for user interfaces
EP1522910B1 (en) Method and system for configuring a control system
EP3273315B1 (en) Platform for further use of existing software for controlling industrial field devices
WO1999027427A1 (en) Virtual robot
DE10324594A1 (en) Method for providing improved simulation capabilities of a dynamic system outside of the original modeling environment
DE19615683A1 (en) Method and control device for a graphical control of processes in a network management system
EP1944664B1 (en) Troubleshooting method for an automation controller
EP1862901A1 (en) Input of program commands in imperative programming languages
DE10215653A1 (en) Program code automatic generation method in which program code sections are generated using input and output controls or masks so that flexible engineering workflows can be gernated
EP2299341A1 (en) Editing device and method for configuring parameters of an industrial automation arrangement
EP1655663A1 (en) Dataflow modelling in engineering systems
EP1502164B1 (en) Method FOR SUPPORTING PLANNING AND PRODUCING AN AUTOMATED TECHNICAL PROCESS
EP1051671B1 (en) System for transmitting data or information
EP1936452A1 (en) Method and device for dynamic processing of objects of a simulation model
DE102005002362A1 (en) Program system configuration method for medical image display, involves setting up logical communications between interfaces of program components and interfaces of source code event handler to process generated events by handler
DE102005009529A1 (en) Method for data processing with integration of two frameworks via a generic block to communicate between the frameworks
DE10233971A1 (en) Software generating method for a software-controlled device uses a software model implemented as data in a computer to derive software program code automatically from the model
EP2093663A1 (en) Engineering system for developing a project and method
DE10125384B4 (en) Device and method for commissioning and diagnosis of control systems
DE102004023634B4 (en) Method for checking the completeness and consistency of an information library

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

ENP Entry into the national phase

Ref document number: 2278582

Country of ref document: CA

Ref country code: CA

Ref document number: 2278582

Kind code of ref document: A

Format of ref document f/p: F

WWE Wipo information: entry into national phase

Ref document number: 1998962389

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWP Wipo information: published in national office

Ref document number: 1998962389

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 09355368

Country of ref document: US

WWW Wipo information: withdrawn in national office

Ref document number: 1998962389

Country of ref document: EP