-
Diese Erfindung bezieht sich auf ein Datenverarbeitungsgerät, in dem eine
Reihe von Regeln jeweils in Form einer Bedingung und einer zugehörigen Antwort
gespeichert ist, wobei der Bedingungsanteil jeder Regel das Vorliegen eines bestimmten
Verhaltens erfordert und das Gerät Mittel zur Reaktion auf die Erfüllung jeglicher
genannten Bedingung durch die Erzeugung der zugehörigen Antwort enthält.
-
Eine bekannte Vorrichtung dieser allgemeinen Art wird in einem Artikel
von R.D. Hill mit dem Titel "Supporting Concurrency, Communication and
Synchronism in Human-Computer Interactions - The Sassafras UIMS", erschienen in ACM
Transactions on Graphics, Band 5, Nr. 3 (Juli 1986), Seite 179 - 210, beschrieben. Bei
dieser bekannten Vorrichtung in Form eines Benutzeroberflächen-Managementsystems
(User-Interface Management System, UIMS) spezifiziert jede Regel eine Antwort auf
ein externes Ereignis, d.h. die Eingabe eines Codes, oder eine vorzunehmende
Handlung, wenn ein Zustand angenommen wird. Der Bedingungsanteil jeder Regel ist
entweder der Name eines Ereignisses gefolgt von einer Liste mit Marken oder nur eine Liste
mit Marken. Die Handlung beinhaltet eine Liste von zu setzenden ?? Marken, zu
sendenden Ereignissen und Zuordnungen. Jede Eingabe in den verarbeitenden Teil der
Vorrichtung geht durch eine Warteschlange mit eingehenden Ereignissen (die im System
selbst durch das Starten ?? von Regeln erzeugt oder extern eingegeben werden kann).
Eine Regel wird gestartet, d.h. die entsprechende zugehörige Antwort wird erzeugt,
wenn alle Marken in der Bedingung gesetzt sind und das Ereignis (falls vorhanden) am
Anfang der Warteschlange steht.
-
Die Verarbeitung in der bekannten Vorrichtung erfolgt durch
Wiederholung der beiden folgenden Schritte:
-
1. Unter Berücksichtigung nur derjenigen Regeln, deren
Bedingungsanteil nur aus einer Liste mit Marken besteht,
-
(a) Identifizieren und Markieren aller Regeln, die aufgrund der
aktuellen Werte der Marken gestartet werden können,
-
(b) Starten aller markierten Regeln.
-
2. Unter Berücksichtigung aller anderen Regeln nochmals
-
(a) Identifizieren und Markieren aller Regeln, die aufgrund der
aktuellen Werte der Marken und des Token am Anfang der Eingabe-Warteschlange gestartet
werden können,
-
(b) Starten aller markierten Regeln
-
(c) Löschung des Token am Anfang der Eingabe-Warteschlange.
-
Es ist offensichtlich, daß mehr als eine Regel zur gleichen Zeit markiert
werden kann; somit kann ein einzelnes Ereignis das Starten von mehr als einer Regel
bewirken.
-
In der bekannten Vorrichtung wird eine Regel, wenn sie markiert ist,
ausnahmslos gestartet, obwohl sich zum Zeitpunkt des Startens der Zustand der
Vorrichtung dahingehend geändert haben kann, daß die Regel nicht länger markiert werden
sollte. Dies stellt eine Einschränkung dar. Außerdem kann bei einer Vernachlässigung
der tatsächlichen Verarbeitungsgeschwindigkeit der Schritte 1 und 2 die
Geschwindigkeit, mit der sich der Zustand der Vorrichtung entwickelt, nur durch das Timing von
extern eingegebenen Ereignissen beeinflußt werden. Es ist eine Aufgabe der
vorliegenden Erfindung, diese Nachteile abzuschwächen.
-
Die französische Patentanmeldung Nr. 2544099 schafft ein Verfahren zur
Erfassung eines Ausfalls in einem Produktionszyklus, wobei die für die Durchführung
eines Schrittes benötigte Zeit mit einer Standardzeit verglichen wird und, falls die
benötigte Zeit die Standardzeit überschreitet, die nicht durchgeführten logischen
Bedingungen, die den Ausfall verursachten, angezeigt werden.
-
Die europäische Patentanmeldung Nr. 0249111 beschreibt eine Anordnung
zur Umwandlung von Schaltcodes in Befehle speziell für Kransteuerungen. Eine
bestimmte Funktionsanordnung kann jedem Schalter oder jeder Schaltgruppe über eine
Gruppenadresse zugeordnet werden, die mittels einer Matrix ausgewählt wurde.
-
Die US-Patentschrift Nr. 3744029 beschreibt eine programmierbare
Folgeregelung mit einem Regelkreis, der auf zwei gleichzeitig anliegende Eingangssignale
reagiert, indem er ein Signal erzeugt, wenn eines der Eingangssignale eher als das
andere eintrifft.
-
Die internationale Patentanmeldung Nr. WO 84/02988 beschreibt ein
Verfahren zur Stabilisierung von asynchronen Zustandsmaschinen, durch das ein
Eingangssignal, das in das Geschehen einbezogen werden kann, der logischen Schaltung nur über
einen selbsthaltenden Schalter zugeführt wird, der über ein Rückkopplungssignal
aktiviert wird.
-
Die vorliegende Erfindung ist dadurch gekennzeichnet, daß der
Bedingungsanteil jeder der Regeln außerdem das ständige Vorliegen eines bestimmten
Verhaltens oder einer Verhaltensgruppe während einer bestimmten endlichen Zeitspanne
erfordert, und daß Mittel geschaffen werden, die die Antwort verhindern, falls das
Verhalten oder die Verhaltensgruppe nicht mehr vorliegen sollte, wenn die Antwort
erfolgen soll.
-
Es wurde jetzt erkannt, daß, wenn der Bedingungsanteil jeder der Regeln
das ständige Vorliegen eines bestimmten Verhaltens oder einer Verhaltensgruppe
während einer bestimmten endlichen Zeitspanne erfordert, die obengenannten
Einschränkungen bei den bekannten Systemen gemindert werden können.
-
Gemäß einer Ausführungsform ist die vorliegende Erfindung dadurch
gekennzeichnet, daß die Vorrichtung so ausgelegt ist, daß sie die Entwicklung einer
Verhaltensgruppe über mehrere Stufen simuliert; daß der Antwortanteil jeder Regel eine
Änderung des Verhaltens nach sich zieht; und daß die Vorrichtung Mittel enthält, mit
denen registriert wird, welche Verhalten bei jeder Stufe der Simulation vorliegen, um
mit Hilfe der Reihe von Regeln die genannte Registrierung und die Zeitpunkte innerhalb
der Simulation zu bestimmen, bei denen jedes genannte Vorliegen begann, um den
Zeitpunkt innerhalb der Simulation zu bestimmen, bei dem die nächste Änderung des
Verhaltens auftreten wird, und um eine Ausgabe der späteren Zeitpunkte und der
entsprechenden Änderungen des Verhaltens zu bewirken.
-
Diese Ausführungsform der vorliegenden Erfindung kann außerdem
dadurch gekennzeichnet sein, daß die Vorrichtung mehrere Mittel enthält, die registrieren,
welche Verhalten bei jeder Stufe der Simulation vorliegen, und dadurch, daß jedes der
genannten Mittel so ausgelegt ist, daß es mit Hilfe eines entsprechenden Teils der Reihe
von Regeln die genannte Registrierung und die Zeitpunkte innerhalb der Simulation
bestimmt, bei denen jedes genannte Vorliegen begann, den Zeitpunkt innerhalb der
Simulation bestimmt, bei dem die nächste Änderung des Verhaltens auftreten wird, und
eine Ausgabe des späteren Zeitpunktes und der entsprechenden Änderungen des
Verhaltens bewirkt, die von demjenigen der genannten Mittel bestimmt werden, das den
frühesten späteren Zeitpunkt ermittelt hat.
-
Es ist offensichtlich, daß die obengenannten Simulationen keine
Echtzeitsimulationen
zu sein brauchen, jedoch zum Beispiel aus den direkt aufeinanderfolgenden
Ausgaben der aufeinanderfolgenden Zeitpunkte bestehen können, zu denen Änderungen
des Verhaltens in dem simulierten Prozeß auftreten, gemeinsam mit Daten, die diese
Änderungen spezifizieren.
-
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und
werden im folgenden näher beschrieben. Es zeigen:
-
Figur 1 ein Blockschaltbild einer ersten Ausführungsform,
-
Figuren 2 und 3 Ablaufpläne, die die Form eines von der in Figur 1
gezeigten Ausführungsform durchgeführten Programms darstellen, und
-
Figur 4 ein Blockschaltbild einer zweiten Äusführungsform.
-
In Figur 1 enthält ein Datenverarbeitungssystem einen Computer 1, einen
Detektor 2 für externe Ereignisse und eine Echtzeituhr 3. Der Ausgang der Uhr 3 ist
mit einem Eingangsanschluß 4 des Computers 1 verbunden, und ein Ausgang 5 des
Detektors 2 ist mit einem Eingang 6 des Computers 1 verbunden. Der Ereignisdetektor
2 ist außerdem mit einer Reihe von Signaleingangsleitungen 7, 8 usw. und einem
Rückstellsignaleingang 11 versehen. Die Signaleingangsleitungen 7, 8 usw. sind auch mit den
entsprechenden Biteingängen eines Eingangsanschlusses 12 des Computers 1 verbunden.
Der Computer 1 ist mit einem Ausgangsanschluß 13 versehen, dessen entsprechende
Bitausgänge mit den entsprechenden Signalausgangsleitungen 14, 15 usw. verbunden
sind. Ein weiterer Bitausgang 16 des Computers 1, zum Beispiel ein weiterer
Bitausgang des Anschlusses 13, ist mit dem Rückstellsignaleingang 11 des Detektors 2
verbunden.
-
Der Detektor 2 ist so konstruiert, daß er an seinem Ausgang 5 jedes Mal
ein Signal erzeugt, wenn sich der logische Pegel auf einer seiner Eingangsleitungen 7, 8
usw. ändert. Ein Rückstellsignal am Eingang 11 bewirkt, daß logisch "1" auflogisch
"0" zurückgesetzt wird. Der Detektor 2 kann zum Beispiel ein ODER-Gatter und ein
Flip-Flop mit RS-Tastung und für jede der Eingangsleitungen 7, 8 usw. ein
monostabiles Flip-Flop mit positiver und negativer Flankentriggerung enthalten, dessen Eingang
mit der entsprechenden Leitung 7, 8 usw. und dessen Ausgang mit dem Stelleingang des
Flip-Flops mit RS-Tastung über das ODER-Gatter verbunden sind, wobei der
Rückstelleingang und der Ausgang des Flip-Flops mit RS-Tastung mit dem Eingang 11 bzw. mit
dem Ausgang 5 verbunden sind. Der Computer 1 beinhaltet in normaler Art eine
Zentraleinheit 17, einen Programmspeicher 18 und einen zusätzlichen Speicher 19. Der
zusätzliche Speicher 19 enthält unter anderem ein Speicherfeld 20, ein Speicherfeld 21,
einen Zeiger 22 und ein Register 23. Das Speicherfeld 20 hat die Form einer Tabelle
mit N Einträgen 240, 24i 24N-1' von denen jeder einer Position des Zeigers 22
entspricht, und das Speicherfeld 21 hat in gleicher Weise die Form einer Tabelle mit M
Einträgen 25&sub0;, 25&sub1; ... 25M-1. Jeder der N Einträge 24 enthält jeweils eine der
obengenannten Regeln und hat fünf Felder 26, 27, 28, 29 und 30. Die Daten im Feld 26
spezifizieren das Verhalten Bi, das vorliegen muß, damit die entsprechende Regel
"armiert" wird; die Daten in Feld 27 spezifizieren die Zeit ti (die extrem kurz sein kann),
während der das Verhalten Bi ständig vorliegen muß' damit die entsprechende Regel i
tatsächlich "gestartet" wird; die Daten in Feld 28 speziffzieren die Antwort Ri, die
erforderlich ist, wenn die entsprechende Regel i tatsächlich "gestartet" wird; die Daten
in Feld 29 stellen eine Marke Fi dar, die der entsprechenden Regel i zugeordnet ist; und
die Daten in Feld 30 spezifizieren den tatsächlichen Zeitpunkt Ti, zu dem die
entsprechende Regel i gestartet werden muß, wenn die Marke Fi gesetzt wird. Jeder der M
Einträge 25 entspricht jeweils einem Verhalten Bi, das in den Feldern 26 der N Einträge
24 spezifiziert ist, oder jeweils einer Komponente eines Verhaltens Bi, wenn dieses
Verhalten zusammensetzt ist. Jeder der Einträge 25 hat drei Felder 31, 32 und 90. Die
Daten in Feld 31 spezifizieren das entsprechende Verhalten oder die entsprechende
Komponente des Verhaltens; die Daten in Feld 32 stellen eine Marke dar, die angibt, ob
das entsprechende Verhalten oder die entsprechende Verhaltenskomponente vorliegt
oder nicht; und die Daten in Feld 90 geben den Zeitpunkt an, zu dem das entsprechende
Verhalten oder die entsprechende Verhaltenskomponente begonnen hat, wenn die Marke
in dem entsprechenden Feld 32 gesetzt wird. Es gibt einen Eintrag 25 für jegliches
Verhalten und jegliche Verhaltenkomponente, die in den Feldern 26 spezifiziert sind.
Das Register 23 wird während des Betriebes mit dem Inhalt des Feldes 28 des Eintrags
oder der Einträge 24 der Tabelle 20 geladen, das diejenige Regel oder diejenigen
Regeln enthält, bei der/denen festgestellt wird, daß sie auf der Grundlage der gerade
vorliegenden Verhalten als nächstes gestartet wird/werden, wie weiter unten zu sehen sein
wird. Ein Feld 33 des Registers 23 enthält diesen Inhalt, d.h. Daten, die die
erforderliche(n) Antwort(en) spezifizieren; ein Feld 34 enthält Daten, die den tatsächlichen
Zeitpunkt spezifizieren, zu dem diese Antwort(en) gegeben werden muß/müssen; und ein
Feld 35 enthält Daten, die angeben, von welcher Regel oder welchen Regeln der Inhalt
des Feldes 33 abgeleitet wird.
-
Der Computer 1 in Figur 1 ist so programmiert, daß er ein zyklisches
Hauptprogramm durchführt, das die Form eines Ablaufplans hat, wie in Figur 2
dargestellt, in dem einer der Blöcke die Form des in Figur 3 gezeigten Ablaufplans aufweist.
Die Zeitspanne zwischen den Inkrementen der Echtzeituhr 3 ist so groß gewählt, daß
ein Zyklus des Hauptprogramms immer innerhalb einer solchen Zeitspanne durchgeführt
werden kann.
-
Die verschiedenen Schritte in dem in Figur 2 gezeigten Ablaufplan haben
die folgenden Bedeutungen:
-
36 - Start
-
37 - Initialisieren
-
91 - Wurde die Uhr 3 neu inkrementiert?
-
38 - Entspricht der von der Uhr 3 angezeigte tatsächliche Zeitpunkt dem
in Feld 34 des Registers 23 spezifizierten Zeitpunkt T?
-
39 - In Feld 33 spezifizierte Antwort(en) geben und die Marke F im Feld
29 des Eintrags oder der Einträge 24 in Tabelle 20, spezifiziert
durch den Inhalt von Feld 35 des Registers 23, zurücksetzen. Die
Marke in Feld 32 von jeglichem Eintrag 25 in Tabelle 21, der
einem Verhalten entspricht, das durch die Ausgabe der Antwort(en)
geschaffen wurde, setzen und den aktuellen tatsächlichen Zeitpunkt
von 3 in das Feld 90 des/der entsprechenden Eintrags/Einträge 25 in
Tabelle 21 einlesen. Die Marke in Feld 32 von jeglichem Eintrag 25
in Tabelle 21, der einem Verhalten entspricht, das durch die
Ausgabe der Antwort(en) beseitigt wurde, herabsetzen.
-
40 - Führt der Detektor 2 dem Eingang 6 ein Signal zu?
-
41 - Eingangsanschluß 12 zur Feststellung der logischen Pegel auf den
Eingangsleitungen 7, 8 usw. lesen und diese Pegel in Tabelle 21
durch Einstellen (falls notwendig) der Marke in Feld 32 der
Einträge 25, die den entsprechenden Eingangsleitungen entsprechen,
registrieren. Für jeden Eintrag 25, für den die Marke in Feld 32
somit erneut gesetzt wird, die aktuelle Restzeit von 3 in das Feld 90
des entsprechenden Eintrags einlesen. Den Detektor 2 durch
Erzeugung eines Rückstellsignals am Ausgang 16 zurücksetzen.
-
42 - Routine aus Fig. 3
-
Die verschiedenen Schritte in dem in Figur 3 gezeigten Ablaufplan haben
die folgenden Bedeutungen:
-
43 - Start
-
45 - Liegt/liegen für den Eintrag 24 in Tabelle 20, auf den der Zeiger 22
zeigt, das/die im Feld 26 spezifizierte(n) Verhalten, d.h. das durch
den Zustand der Marke(n) in Feld 32 des entsprechenden Eintrags
oder der entsprechenden Einträge 25 in Tabelle 21 als vorliegend
angegebene Verhalten, vor?
-
46 - Ist die Marke F in Feld 29 für den in Schritt 45 spezifizierten
Eintrag 24 gesetzt?
-
47 - Die in Schritt 46 spezifizierte Marke F herabsetzen.
-
48 - Wie 46.
-
49 - Für den in Schritt 45 spezifizierten Eintrag 24 (a) die Marke F in
Feld 29 setzen und (b) die Summe aus der in Feld 27 gespeicherten
Zeit und der letzten in dem/den Feld(em) 90 des Eintrages/der
Einträge 25 in Tabelle 21 berechnen, die dem/den in Feld 26
spezifizierten Verhalten entspricht, und das Ergebnis in Feld 30 speichern.
-
50 - Den Zeiger 22 inkrementieren.
-
51 - Ist der Zeiger 22 bei N?
-
52 - Den Zeiger 22 auf Null zurücksetzen. Den Inhalt von Feld 30 aller
derjenigen Einträge 24, für die die Marke im entsprechenden Feld
29 gesetzt ist, überprüfen und feststellen, welche(r) den frühesten
Zeitpunkt angibt/angibt. Diesen (tatsächlichen Zeitpunkt, zu dem die
entsprechende Regel gestartet werden muß, wenn das/die in dem
Bedingungsanteil dieser Regel spezifizierte(n) Verhalten weiterhin
vorliegt/vorliegen) in Feld 34 des Registers 23 laden, den Inhalt des
Feldes 26 des/der entsprechenden Eintrags/Einträge 24 in das Feld
33 des Registers 23 und die Daten, die den/die entsprechenden
Eintrag/Einträge identifizieren, in das Feld 35 des Registers 23 laden.
-
53 - Ende.
-
Es ist offensichtlich, daß die in Figur 3 gezeigte Routine immer nach
einer Aktualisierung des Inhalts der in Fig. 1 dargestellten Tabelle 21 aufgrund einer
gestarteten Regel (was zu einer potentieile Änderung des internen oder externen
Verhaltens
führt) und/oder nach einer Änderung des Eingangssignals auf einer der Leitungen
7, 8 usw. (entsprechend einer Änderung eines externen Verhaltens) durchgeführt wird.
Somit wird die in Figur 3 dargestellte Routine zumindest bei jeder Änderung des in
Tabelle 21 aufgeführten Verhaltens (extern oder intern) durchgeführt, und sie dient zur
Feststellung, welche (falls überhaupt) der in den Einträgen 24 der Tabelle 20
gespeicherten Regeln ausgehend von der neuen Gruppe von aktuell vorliegenden Verhalten,
wie in Tabelle 21 angegeben, als nächste gestartet werden muß/müssen, und zum Laden
von Einzelheiten der erforderlichen Antwort zusammen mit dem tatsächlichen
Zeitpunkt, zu dem diese erfolgen sollte, in das Register 23. Bei jeder Inkrementierung
der Echtzeituhr 3 vergleicht das zyklische Hauptprogramm aus Figur 2 die in Feld 34
des Registers 23 spezifizierte Zeit mit der tatsächlichen Zeit und bewirkt, wenn die
tatsächliche Zeit die spezifizierte Zeit erreichen sollte, daß die in Feld 33
spezifizierte(n) Antwort(en) ausgeführt wird/werden, d.h. es startet die entsprechende Regel,
wonach die Routine aus Figur 3 noch einmal aufgerufen wird, so daß die nächste Regel
(falls vorhanden), die aufgrund des gerade vorliegenden Verhaltens gestartet werden
muß, bestimmt werden kann und die entsprechenden Daten im Register 23 gespeichert
werden (wo sie die gerade vorliegenden Daten ersetzen).
-
Die in den Feldern 27 der Einträge 24i der Tabelle 20 gespeicherten
Zeiten ti sollten natürlich ganzzahlige Vielfache der Zeitspanne zwischen den
Inkrementen der Echtzeituhr 3 sein. Das mögliche Zeitminimum tmin entspricht der genannten
verstreichenden Zeit, und wenn eine derartige Zeit in einem gegebenen Eintrag 24
erforderlich ist, braucht diese nicht unbedingt als solche in dem entsprechenden Feld 27
gespeichert zu werden; das System kann so ausgelegt sein, daß es auf eine fehlende
Information in einem gegebenen Feld 27 so reagiert, daß es tmin zu der letzten in Schritt
49 spezifizierten Zeit addiert. In einem solchen Fall ist tmin praktisch eine
Voreinstellung.
-
Wie oben beschrieben wird jeglicher Eintrag 24 in der Tabelle 20 jedes
Mal ausgewertet, wenn die Routine aus Figur 3 durchgeführt wird (mit Hilfe des
Zeigers 22). Dies ist nicht wesentlich, da die einzigen Einträge, die unbedingt ausgewertet
werden müssen, diejenigen (falls überhaupt) sind, bei denen sich seit der letzten
Durchführung der Routine aus Figur 3 ein Verhalten in Feld 26 geändert hat. Eine derartige
Selektivität kann zu einer wesentlichen Reduzierung bei der Verarbeitung führen und bei
jeder Durchführung der Routine aus Figur 3 zum Beispiel dadurch erreicht werden, daß
erst alle Einträge 24 abgefragt werden, um festzustellen und festzuhalten, in welchem
Feld 24 eine neue Änderung des Verhaltens vorliegt, und dann dem Zeiger 22 nur
Werte zu geben, die diesen Einträgen entsprechen. Alternativ kann eine Tabelle (nicht
abgebildet) erstellt werden, die jedem Eintrag 25 in Tabelle 21 entspricht, wobei diese
Tabelle eine Liste aller Einträge 24 enthält, die das Verhalten aufweisen, welches dem
entsprechenden Eintrag 25 in ihrem Feld 26 entspricht. Jedes Mal, wenn sich ein
Verhalten ändert, kann die entsprechende Tabelle dann dazu verwendet werden, anzugeben,
welche Einträge 24 ausgewertet werden müssen (welche Werte an den Zeiger 22 zu
geben sind).
-
Es ist zu erkennen, daß ein Datenverarbeitungsgerät der beschriebenen Art
in bezug auf die Figuren 1 bis 3 viele Anwendungsmöglichkeiten bietet. Obwohl seine
Vorteile wohl am deutlichsten bei Anwendungen zutage treten, bei denen die
Entwicklung der gesamten Vorrichtung eventuell von einer großen Anzahl von Verhalten
abhängt, wird nun als Beispiel eine recht einfache Anwendungsmöglichkeit beschrieben.
Diese Anwendung ist die Steuerung einer Waschmaschine, bei der auf die Betätigung
der Starttaste folgendermaßen reagiert wird: (a) Befüllen der Waschtrommel mit heißem
Wasser, (b) langsames Hin- und Herbewegen der Wäsche während 5 Minuten, (c)
Abpumpen des Wassers aus der Waschtrommel während 50 Sekunden, (d) Befüllen der
Waschtrommel mit kaltem Wasser und (e) Abpumpen des Wassers aus der
Waschtrommel und schnelles Schleudern der Wäsche während 50 Sekunden. Es ist dafür gesorgt,
daß das Programm beendet und eine Pumpen-Fehleranzeige aktiviert wird, wenn die
Waschtrommel der Maschine noch voll Wasser ist, nachdem die Entleerungspumpe 10
Sekunden gelaufen ist, wodurch die Gefahr der Überhitzung der Pumpe im Falle ihrer
Blockierung minimiert wird.
-
Zur Realisierung dieser Steuerung muß der Ereignisdetektor 2 mit zwei
Eingangsleitungen 7 und 8 versehen sein, die mit der Starttaste der Maschine bzw.
einem Wasserpegeldetektor in der Waschtrommel verbunden sind, und der
Ausgangsanschluß 13 muß sechs Ausgangsleitungen 14, 15 usw. enthalten, die mit den Reglern
für das Heißwasserventil, das Kaltwasserventil, den Langsamlauf des
Waschmaschinenmotors, den Schnellauf des Waschmaschinenmotors, die
Waschtrommel-Entleerungspumpe bzw. die Pumpen-Fehleranzeige der Maschine verbunden sind. Die
entsprechenden Verhalten, die mit entsprechenden Daten in der Tabelle 21 aufgelistet sind, können
dann folgende sein:
-
betriebsbereit
-
Starttaste_betätigt
-
erste_Befüllung
-
voll_Wasser
-
Heißwasserventil_geöffnet
-
Waschen
-
Motor_Langsamlauf
-
Entleerungspumpe_eingeschaltet
-
zweite_Befüllung
-
Kaltwasserventil_geöffnet
-
Schleudern
-
Motor_Schnellauf
-
Pumpen-Fehleranzeige_aktiviert
-
und die mit Daten in der Tabelle 20 aufgelisteten Regeln können folgende sein:
Verhalten in Feld
Zeitdauer in Feld 27
1. Betriebsbereit & Starttaste_betätigt
2. erste_Befüllung & nicht (voll_Wasser)
3. erste_Befüllung & voll_Wasser
4. Waschen & Motor_Langsamlauf
5. Waschen & Entleerungspumpe_eingeschaltet
6. zweite_Befüllung & nicht (voll_Wasser)
7. zweite_Befüllung & voll_Wasser
8. Schleudern
nicht (betriebsbereit) erste_Befüllung
Heißwasserventil_geöffnet
nicht (Heißwasserventil_geöffnet) & nicht (erste_Befüllung) & Waschen & Motor_Langsamlauf
nicht (Motor_Langsamlauf) & Entleerungspumpe_eingeschaltet
nicht (Entleerungspumpe_eingeschaltet) & nicht (Waschen) & zweite_Befüllung
Kaltwasserventil_geöffnet
nicht (Kaltwasserventil_geöffnet) & nicht (zweite_Befüllung) & Schleudern & Motor_Schnellauf & Entleerungspumpe_eingeschaltet
nicht (Motor_Schnellauf)
& nicht (Entleerungspumpe_eingeschaltet) & nicht (Schleudern) & Pumpen-Fehleranzeige_aktiviert
-
wobei der Ausdruck "nicht (-----)" bedeutet, daß das in Klammern angegebene
Verhalten nicht vorliegt. Betrachtet man die obengenannten Inhalte der Tabellen 20 und 21 aus
Figur 1, so stellt sich heraus, daß die erforderliche Funktionsfolge durchgeführt wird,
wenn das Verhalten "betriebsbereit" so markiert wird, daß es bei dem Schritt 37
Initialisieren aus Figur 2 vorliegt (während die anderen Verhalten als nicht vorliegend markiert
sind). Die Verhalten "Starttaste_betätigt" und "voll_Wasser" entsprechen, zusätzlich zu
den Zuständen der entsprechenden Marken in Tabelle 21, bestimmten logischen Pegeln
auf den entsprechenden Eingangsleitungen 7 und 8, und die Verhalten
"Heißwasserventil_geöffnet", "Motor_Schnellauf" und "Pumpen-Fehleranzeige_aktiviert" entsprechen,
zusätzlich zu den Zuständen der entsprechenden Marken in Tabelle 21, bestimmten
Signalen, die von dem System auf den entsprechenden Ausgangsleitungen 14, 15 usw.
erzeugt werden. Umgekehrt entsprechen die Verhalten "betriebsbereit", "erste_
Befüllung", "Waschen", "zweite_Befüllung" und "Schleudern" lediglich Zuständen der
entsprechenden Marken in Tabelle 21; sie stellen rein interne Verhalten dar, obwohl ihr
Vorliegen einen bestimmten Vorgang anzeigt, der von der Maschine durchgeführt wird.
Es ist festzustellen, daß die Verwendung dieser letzteren Verhalten in den
entsprechenden Regeln tatsächlich Regeln ergibt, die aus den restlichen Teilen der entsprechenden
Regeln bestehen und bei bestimmten Schritten im Betriebszyklus der Maschine
geschaffen und gelöscht oder aktiviert und deaktiviert werden. Somit führt z.B. das Vorliegen
des internen Verhaltens "Waschen" tatsächlich zur Schaffung oder Aktivierung der
Regeln
Motor_Langsamlauf
und Entleerungspumpe_einschaltet
nicht (Motor_Langsamlauf) & Entleerungspumpe_eingeschaltet
nicht (Entleerungspumpe_eingeschalte& nicht (Waschen)
& zweite_Befüllung
-
Wenn das interne Verhalten "Waschen" nicht mehr vorliegt, werden diese Regeln
tatsächlich gelöscht oder deaktiviert. Somit bilden diese Regeln in der Tat ein Schema
"Waschen".
-
Eine erfindungsgemäße Vorrichtung kann, falls gewünscht, lediglich zur
Simulation der Entwicklung von Verhalten in der Realität benutzt werden anstatt
tatsächlich an dieser Entwicklung teilzunehmen. Somit kann zum Beispiel das in bezug auf
die Figuren 1 bis 3 beschriebene System lediglich zur Simulation der obengenannten
Funktionen der Waschmaschine eingesetzt werden. Um dies zu erreichen, brauchen nur
Regeln zu der Liste in Tabelle 20 hinzugefügt zu werden, um interne Änderungen des
Verhaltens zu schaffen, die Änderungen in den Eingangsleitungen 7, 8 zum Detektor 2
entsprechen (wobei diese Änderungen natürlich nicht bei einer bloßen Simulation
auftreten werden; der Detektor 2 kann unter diesen Umständen praktisch weggelassen
werden). Dies kann durch das Hinzufügen der folgenden Regeln erreicht werden:
Verhalten in feld
Zeitdauer in Feld 27
10. betriebsbereit
11. Starttaste_betätigt
12. Heißwasserventil_geöffnet
13. Kaltwasserventil_geöffnet
14. Entleerungspumpe eingeschaltet
nicht (Starttaste_betätigt)
voll_Wasser
nicht (voll_Wasser)
-
oder, wenn auch die Aktivierung der Pumpen-Fehleranzeige simuliert werden soll, nur
die Regeln 10 bis 13. Somit wird das interne Verhalten "Starttaste_betätigt" eine
Sekunde nach Auftreten des internen Verhaltens "betriebsbereit" geschaffen, das interne
Verhalten "voll_Wasser" wird 50 Sekunden, nachdem das Verhalten
"Heiß-/Kaltwasserventil_geöffnet" ständig vorliegt, geschaffen und, wenn die Regel 14 hinzugefügt wird,
wird das interne Verhalten "nicht (voll_Wasser)" 5 Sekunden, nachdem das Verhalten
"Entleerungspumpe_eingeschaltet" ständig vorliegt, geschaffen. Eine derartige
Simulation des Betriebs von tatsächlich existierenden Geräten kann zur Verbesserung von
deren Konstruktion, zur Diagnose von internen Fehlern und zur Vorhersage ihrer
Leistung beitragen.
-
Die obenbeschriebene Simulation ist eine Echtzeit-Simulation. Unter
gewissen Umständen kann es vorgezogen werden, stattdessen die Zeitpunkte, zu denen
änderungen des Verhaltens auftreten, lediglich anzuzeigen, auszudrucken oder
anderweitig in direkter Folge zusammen mit den entsprechenden Änderungen des Verhaltens
auszugeben. In einem derartigen Fall kann die Echtzeituhr 3 aus Figur 1 auch
weggelassen werden, die Vorrichtung aus Figur 1 mit einem Anzeigegerät, einem Drucker oder
ähnlichem (nicht dargestellt) ausgerüstet werden und das Programm in Speicher 17 so
abgeändert werden, daß zum Beispiel die Schritte 38 bis 41 und 91 in Figur 2 durch die
folgende einzelne Funktionsfolge ersetzt werden:
-
Anzeigen, Drucken oder anderweitig Ausgeben der in Feld 34 des
Registers 23 spezifizierten Zeit und jeglicher geschaffenen oder durch die in Feld 33 des
Registers 23 spezifizierte(n) Antwort(en) beseitigten Verhalten. Rücksetzen der Marke F
in Feld 29 des Eintrags oder der Einträge 24 in Tabelle 20, die durch den Inhalt von
Feld 35 des Registers 23 spezifiziert sind. Setzen der Marke in Feld 32 von jedem
Eintrag 25 in Tabelle 21, der einem Verhalten entspricht, das durch die Antwort(en)
geschaffen wurde, und Einlesen der in Feld 34 des Registers 23 gespeicherten Zeit in das
Feld 90 des/der entsprechenden Eintrags/Einträge 25 in Tabelle 21. Herabsetzen der
Marke in Feld 32 von jedem Eintrag 25 in Tabelle 21, der einem Verhalten entspricht,
das durch die Antwort beseitigt wurde.
-
Es sollte beachtet werden, daß der Ausdruck "Verhalten", wie er in dieser
Spezifikation verwendet wird, in einem weiteren Sinne interpretiert werden sollte als
dies üblicherweise im alltäglichen Gebrauch der Fall ist, nämlich dahingehend, daß
sogar statische, leblose Objekte ein "Verhalten" aufweisen können; tatsächlich stellt ihre
bloße Existenz eine Form von Verhalten dar. Der Ausdruck kann zum Beispiel dazu
verwendet werden, die einfache Existenz eines Stuhls zusätzlich zu seinen
physikalischen Eigenschaften wie seine Farbe, sein Gewicht, seine Form, seinen Platzbedarf
usw. zu beschreiben. Außerdem kann ein Verhalten selbst eine oder mehrere der
obengenannten Regeln beinhalten, so daß es möglich ist, Regeln von beliebigem Umfang zu
verschachteln. Somit kann ein erfindungsgemäßes System zur Simulation der
Entwicklung jeder Folge von Zuständen in der Realität verwendet werden.
-
Wenn ein Verhalten, das in Feld 26 von einer oder mehreren Regeln, die
in der Tabelle 20 der in bezug auf die Figuren 1 bis 3 beschriebenen Vorrichtung
enthalten sind, gespeichert ist, ein Verhalten einer anderen derartigen Vorrichtung darstellt,
zum Beispiel insofern, als es in Feld 28 in der Tabelle 20 der anderen Vorrichtung
gespeichert ist, so ist zu beachten, daß sich das Verhalten der ersten Vorrichtung durch
das Verhalten der anderen Vorrichtung beeinflussen läßt, zum Beispiel indem die
entsprechende(n) Eingangsleitung(en) 7, 8 der ersten Vorrichtung mit der/den
entsprechenden Ausgangsleitung(en) 14, 15 der anderen Vorrichtung verbunden werden. Wenn das
gleiche auf beide Vorrichtungen zutrifft, so kann zwischen ihnen eine Wechselbeziehung
auftreten; die beiden Vorrichtungen können tatsächlich miteinander kommunizieren,
zum Beispiel indem die entsprechende(n) Eingangsleitung(en) 7,8 der einen mit der/den
entsprechenden Ausgangsleitung(en) 14, 15 der anderen Vorrichtung verbunden werden,
obwohl sie in anderer Hinsicht ganz verschieden sein können und insbesondere völlig
unterschiedliche Funktionen ausüben können. Dies trifft offensichtlich auch zu, wenn
mehr als zwei derartige Vorrichtungen in einer Umgebung vorhanden sind. Wenn daher
mehrere derartige Vorrichtungen in einer Umgebung vorhanden sind, die so ausgerüstet
sind, daß sie über gewöhnliche Verhaltenszeichen miteinander kommunizieren können,
können weitere Vorrichtungen mit ganz anderen Funktionen hinzugefügt werden, unter
der einzigen Voraussetzung, daß ein Teil ihrer Verhaltensspezifikation das Empfangen
und Übertragen von derartigen Zeichen und die Initiierung geeigneter Handlungen bei
deren Empfang erlaubt. Es sind im Prinzip bei der Einführung dieser neuen
Vorrichtungen keine Änderungen erforderlich.
-
Wenn die Tabelle 20 der in bezug auf die Figuren 1 bis 3 beschriebenen
Vorrichtung eine sehr große Anzahl von Regeln enthält, kann die Verarbeitung, die bei
jeder Änderung eines in Feld 21 gespeicherten Verhaltens erforderlich ist, aufwendig
sein, so daß die Gesamtreaktionszeit der Vorrichtung auf eine solche Änderung des
Verhaltens unerwünscht lang wird. In diesem Fall kann die Verarbeitung auf mehrere
Vorrichtungen der beschriebenen Art aufgeteilt werden, falls jede dieser Vorrichtungen
einen bidirektionalen Kommunikationskanal zu jeder der anderen Vorrichtungen, z.B.
über einen zentralen Knotenpunkt, enthält. Die Reihe von Regeln, die sonst in einer
einzigen Tabelle 20 gespeichert würde, kann dann in mehrere Teile aufgeteilt werden,
von denen jeder in der entsprechenden Tabelle einer entsprechenden Vorrichtung
gespeichert wird und wobei die entsprechenden Verhalten dann in der Tabelle 21 dieser
Vorrichtung gespeichert werden. Damit die verschiedenen Vorrichtung auf koordinierte
Weise funktionieren, kann jede von ihnen so angeordnet sein, daß sie Angaben über
jede Änderung des Verhaltens, die über eine der Leitungen 7, 8 usw. zugeführt werden,
und jede dadurch erzeugte Änderung des Verhaltens durch Starten einer der intern
gespeicherten Regeln an jede der anderen Vorrichtungen überträgt, zum Beispiel als
Teil jedes Schrittes 39 und 44 aus den Figuren 2 bzw. 3. Diese Angaben können zum
Beispiel die Form von Signalen auf den entsprechenden Eingangsleitungen 7, 8 usw.
jeder der anderen Vorrichtungen haben, so daß alle Vorrichtungen bei jeder Änderung
des Verhaltens in geeigneter Weise reagieren. In der Tat können mehrere
Vorrichtungen, die auf diese Art funktionieren und miteinander kommunizieren, ein
fehlertolerantes Ganzes darstellen, wenn die Eingangsleitungen 7, 8 üsw. jeder Vorrichtung parallel
zu den entsprechenden Leitungen der anderen Vorrichtungen geschaltet werden, da für
den Fall, daß eine gegebene Vorrichtung fehlerhaft ist, dafür gesorgt werden kann, daß
ihre gespeicherten Regeln und Verhalten automatisch auf die restlichen Vorichtungen
aufgeteilt werden (was zwar zu einer Verringerung der Verarbeitungsgeschwindigkeit
führt, womit jedoch ein kompletter Ausfall vermieden werden kann). Dieses Verfahren
kann unterstützt werden, wenn tatsächlich in jeder Vorrichtung der komplette Satz
Regeln und Verhalten gespeichert ist und bei fehlerfreiem Betrieb alle außer dem
entsprechenden Teil deaktiviert sind.
-
Die Aufteilung der Verarbeitung auf mehrere Vorrichtungen in der oben
beschriebenen Weise kann offensichtlich auch in dem Fall erfolgen, wenn lediglich die
Auswertung von Verhalten in der Realität, wie oben beschrieben, in Echtzeit simuliert
werden soll. Bei der alternativen Simulation, bei der die Zeitpunkte, zu denen
Änderungen des Verhaltens auftreten, lediglich angezeigt oder anderweitig in direkter Folge
zusammen mit den entsprechenden Änderungen des Verhaltens ausgegeben werden,
kann diese Aufteilung immer noch durchgeführt werden. In diesem Fall müssen jedoch
die von jeder Vorrichtungen bei einer Änderung des Verhaltens gemachten Vorhersagen
untersucht werden. Jede Vorrichtung macht eine Vorhersage auf der Grundlage ihres
Anteils an dem kompletten Satz Regeln und Verhalten, und es liegt auf der Hand, daß
hierbei die früheste(n) Vorhersage(n) als nächstes ausgegeben werden muß/müssen.
Somit kann bei der Durchführung dieser Art der Simulation dafür gesorgt werden, daß
jede Vorrichtung bei jedem Auftreten einer Änderung des Verhaltens ihre eigene
Vorhersage für den Zeitpunkt der nächsten Änderung des Verhaltens an den zentralen
Knotenpunkt übermittelt, wobei der zentrale Knotenpunkt dann bestimmt, welcher dieser
vorhergesagten Zeitpunkte der nächste ist, und diesen an alle Vorrichtungen übermittelt,
um die entsprechende Ausgabe durch jegliche Vorrichtung zu deaktivieren, die einen
anderen als den vom zentralen Knotenpunkt empfangenen Zeitpunkt der nächsten
Änderung des Verhaltens vorhersagt. Diese Deaktivierung kann für den aktuellen
Programmzyklus in der Streichung des obengenannten einzelnen Funktionsablaufs, der die Schritte
38 - 41 und 91 in Figur 2 ersetzt, und seinen Ersatz durch die Aktualisierung der
entsprechenden Tabelle 21 in Übereinstimmung mit dem genannten frühesten Zeitpunkt
und der/den zugehörige(n) Änderung(en) des Verhaltens bestehen (was der/den
deaktivierten Vorrichtung(en) von der/den nicht deaktivierten Vorrichtung(en) mitgeteilt
werden muß).
-
Es wurde zwar eine Ausführungsform der Erfindung beschrieben, bei der
die erforderlichen Funktionen mittels eines intern gespeicherten Programms
durchgeführt werden, jedoch ist zu beachten, daß eine derartige Steuerung nicht
unbedingt vorliegen muß. Die Regeln können alternativ in der Vorrichtung als
festverdrahtetes Programm gespeichert werden, und die Antwort auf die Erfüllung der
entsprechenden Bedingung kann ebenfalls nur mittels Hardware erzeugt werden. In diesem Fall
kann die Vorrichtung die in dem in Figur 4 gezeigten Blockschaltbild dargestellte Form
annehmen.
-
In Figur 4 umfaßt ein erfindungsgemäßes Datenverarbeitungsgerät einen
Satz logischer Schaltungen 60&sub1;, 60&sub2; ... 60N, die jede einem entsprechenden Paar der
obengenannten Regeln entsprechen, wobei die Antwort auf die Erfülltung des
Bedingungsanteils einer der beiden Regeln das Negativ der Antwort auf die Erfüllung des
Bedingungsanteils der anderen Regel des entsprechenden Paares darstellt. Jede Schaltung
60 enthält eine Anschlußmatrix 61, zwei UND-Gatter 62 und 63, einen Zähler 64, einen
Decodierer 73 und einen Inverter 70, die einer Regel des entsprechenden Paares
entsprechen, sowie eine Anschlußmatrix 65, zwei UND-Gatter 66 und 67, einen Zähler 68,
einen Decodierer 74 und einen Inverter 71, die der anderen Regel des entsprechenden
Paares entsprechen, und ein Flip-Flop mit RS-Tastung 69. Die UND-Gatter 63 und 67
weisen jeweils zwei Eingänge auf, von denen einer von einem gemeinsamen
Taktimpuls-Generator 72 gespeist wird. Der andere Eingang des UND-Gatters 63 ist mit dem
Ausgang des UND-Gatters 62 verbunden und der andere Eingang des UND-Gatters 67
mit dem Ausgang des UND-Gatters 66. Die Takteingänge CL der Zähler 64 und 68
sind mit den Ausgängen der UND-Gatter 63 bzw. 67 verbunden und ihre
Rückstelleingänge
R sind über die Inverter 70 bzw. 71 mit den Ausgängen der UND-Gatter 62 bzw.
66 verbunden. Der Ausgang D des Zählers 64 ist mit dem Decodierer 73 verbunden
und der Ausgang D des Zählers 68 mit dem Decodierer 74. Die Ausgänge 75 und 76
der Decodierer 73 und 74 sind mit dem Stelleingang (S) bzw. dem Rückstelleingang (R)
des Flip-Flops 69 verbunden, dessen Q-Ausgang 78 mit der entsprechenden
Eingangsleitung der Anschlußmatrix 77 verbunden ist. Die Decodierer 73 und 74 sind so
ausgelegt, daß sie an ihren Ausgängen 75 bzw. 76 ein Signal erzeugen, wenn die Zahl in
den entsprechenden Zählern 64 bzw. 65 einen vorher festgelegten Wert ungleich Null
erreicht, wobei dieser Wert dem Zeitpunkt entspricht, zu dem die Reihe von Verhalten,
die erforderlich ist, um die entsprechende Regel zu "armieren", vorliegen muß, damit
die Regel tatsächlich gestartet wird. Die Anschlußmatrix 77 weist erste und zweite
Mehrfachausgänge 79 bzw. 80 auf, wobei der Ausgang 80 mit einer Anschlußmatrix 81
verbunden ist, die einen weiteren Mehrfacheingang 82 aufweist. Der Ausgang 79 und
der Eingang 82 bilden die Verbindung der Vorrichtung nach außen; der Eingang 82
kann weggelassen werden, wenn die Vorrichtung lediglich zu Simulationszwecken
eingesetzt wird. Der Mehrfachausgang 83 der Anschlußmatrix 81 ist mit den
Anschlußmatrizen 61 und 65 verbunden. Die Signale auf den jeweiligen Leitungen dieses
Ausgangs 83 (abgeleitet entweder vom Eingang 82 oder intern von den jeweiligen
Ausgängen 78 über die Anschlußmatrix 77) zeigen an, ob die jeweiligen Verhalten, die für
das "Armieren" der verschiedenen Regeln erforderlich sind, vorliegen oder nicht. Das
UND-Gatter 62 hat einen (gegebenenfalls invertierenden) Eingang, der jedem Verhalten
entspricht, das zum "Armieren" der entsprechenden Regel vorliegen muß, wobei dieser
Eingang mit der entsprechenden Leitung des Ausgangs 83 in der Matrix 61 verbunden
ist. Somit wird, wenn diese Verhalten alle vorliegen, das UND-Gatter 63 freigegeben,
wodurch der Taktgenerator 72 den Zähier 64 inkrementieren kann. Falls diese Situation
lange genug besteht, erzeugt der Decodierer 73 ein Ausgangssignal, das das Flip-Flop
69 stellt (falls es nicht bereits gestellt ist), was zu einer logischen "1" am Ausgang 78&sub1;
führt. Wenn jedoch die erforderliche Verhaltensreihe bereits vorher nicht mehr vorliegt,
wird das UND-Gatter 63 wieder deaktiviert und der Zähler 64 über den Inverter 70 auf
Null zurückgestellt. Die Bauelemente 66, 67, 68, 71, 74 funktionieren in der gleichen
Weise, jedoch als Reaktion auf das Vorliegen von Verhalten, die von dem Ausgang 83
über die Anschlußmatrix 65 abgeleitet sind. Ein Ausgangssignal vom Decodierer 74
führt jedoch zur Rückstellung des Flip-Flps 69 (falls es nicht bereits zurückgestellt ist)
und somit zu einer logischen "0" am Ausgang 78&sub1;. Es ist offensichtlich, daß die Zähler
64 und 68 von dem Typ sein sollten, der bei Erreichen des Maximums anhält, um
sicherzustellen, daß jedes Mal, wenn die jeweiligen Verhalten vorliegen, nur ein
Ausgangssignal erzeugt wird, auch wenn die jeweiligen Verhalten eine wesentliche Zeit
weiterhin vorhanden bleiben, nachdem sie das erforderliche Ausgangssignal von dem
jeweiligen Decodierer ausgelöst haben. Die Schaltungen 60&sub2; ... 60N funktionieren in der
gleichen Weise wie die Schaltung 60&sub1;.
-
Aus der Lektüre der vorliegenden Beschreibung werden dem
Fachkundigen leicht weitere Abwandlungen ersichtlich sein. Derartige Abwandlungen können
andere Merkmale beinhalten, die an sich schon bekannt sind und anstelle oder zusätzlich
zu hier bereits beschriebenen Merkmalen eingesetzt werden können. Obwohl in dieser
Patentanmeldung Ansprüche bezüglich spezieller Kombinationen von Merkmalen
formuliert wurden, sollte berücksichtigt werden, daß der Anwendungsbereich der
Beschreibung der vorliegenden Patentanmeldung auch jegliches neue Merkmal oder jegliche neue
Kombination von hier entweder explizit oder implizit beschriebenen Merkmalen oder
jegliche Verallgemeinerung umfaßt, unabhängig davon, ob er sich auf dieselbe
Erfindung bezieht, für die hier ein Patent beansprucht wird, oder nicht, und ob er jegliche
oder alle gleichartigen technischen Probleme so wie die vorliegende Erfindung
abschwächt oder nicht. Die Anmeider weisen hiermit darauf hin, daß neue
Patentansprüche bezüglich derartiger Merkmale bzw. Kombinationen derartiger Merkmale während
des Verfahrens zur vorliegenden Patentanmeldung oder zu jeglicher weiteren hiervon
abgeleiteten Patentanmeldung formuliert werden können.