-
Die vorliegende Erfindung bezieht
sich auf das Gebiet von Steuerungssystemen. Insbesondere bezieht
sich diese Erfindung auf Echtzeitsteuerungssysteme, die eine nichtdeterministische
Kommunikation verwenden.
-
Echtzeitsteuerungssysteme umfassen üblicherweise
Sensoren und Betätiger
und Anwendungssteuerungen, die angeordnet sind, um eine Steuerung
von Vorrichtungen zu liefern, die Vorrichtungen umfassen, die bei
industriellen Prozessen verwendet werden. Solche Sensoren können Temperatursensoren,
Drucksensoren, Tachometer etc. umfassen. Solche Betätiger können Ventile,
Motoren, Heizer etc. umfassen. Anwendungssteuerungen in einem solchen
Steuerungssystem können
mit programmierbaren Logiksteuerungen (PLC; PLC = programmable logic
controller) oder Computersystemen implementiert sein, die Personalcomputersysteme umfassen.
-
Ein Echtzeitsteuerungssystem in seiner
einfachsten Form umfaßt
eine Anwendungssteuerung, zumindest einen Sensor und zumindest einen
Betätiger. Üblicherweise
implementiert die Anwendungssteuerung einen Steuerungsalgorithmus,
der angepaßt
ist, um einen Sollwert für
eine bestimmte Vorrichtung beizubehalten, die gesteuert wird. Üblicherweise
erhält
die Anwendungssteuerung Sensordatenabtastwerte von dem Sensor und
verwendet die Sensordatenabtastwerte als Eingaben in einen Steuerungsalgorithmus,
der einen Steuerungswert berechnet, der an den Betätiger angewendet
werden soll. Die Anwendungssteuerung schreibt dann üblicherweise
den Steuerungswert in den Betätiger. Üblicherweise
erhält
die Anwendungssteuerung durchgehend Sensordatenabtastwerte und liefert
durchgehend Steuerungswerte zu dem Betätiger, um einen gewünschten
Sollwert beizubehalten. Eine solche Anordnung kann als ein Steuerungssystem
mit geschlossener Schleife bezeichnet werden.
-
Ein einfaches Echtzeitsteuerungssystem
für einen
Motor kann z. B. einen Tachometer (Sensor) umfassen, der die Drehgeschwindigkeit
des Motors mißt,
und eine Verstärkerschaltung
(Betätiger),
die die Drehgeschwindigkeit des Motors ansprechend auf einen Steuerungswert
erhöht
oder senkt, der an die Verstärkerschaltung
angelegt wird. Eine Anwendungssteuerung erhält periodisch Drehgeschwindigkeitsabtastwerte
von dem Tachometer und schreibt periodisch Steuerungswerte in die
Verstärkerschaltung,
um den gewünschten
Sollwert für
die Geschwindigkeit des Motors beizubehalten.
-
Ein typischer Steuerungsalgorithmus
für ein solches
Echtzeitsteuerungssystem verwendet üblicherweise Zeitgebungsinformationen
zusammen mit Sensordatenabtastwerten, um Steuerungswerte zu berechnen.
Zusätzlich
dazu ordnet ein solcher Steuerungsalgorithmus üblicherweise Zeitgebungsinformationen
zu jedem Steuerungswert zu. Ein solcher Typ eines Steuerungsalgorithmus
wird als ein Proportional-Integral-Differential-Algorithmus (PID-Algorithmus)
bezeichnet. Ein PID-Algorithmus nimmt üblicherweise einen Zeitwert
als eine Eingabe, der jedem Sensordatenabtastwert zugeordnet ist.
Die Zeitwerte ermöglichen
es dem PID-Algorithmus, die Änderungsrate
der Sensor-datenabtastwerte zu berücksichtigen, wenn ein neuer
Steuerungswert berechnet wird. Zusätzlich dazu weist der PID-Algorithmus üblicherweise
einen Zeitwert zu jedem neuen Steuerungswert zu, der eine Zeit anzeigt,
zu der der neue Steuerungswert an den Betätiger angelegt werden soll.
-
Folglich muß ein Echtzeitsteuerungssystem üblicherweise
genaue Zeitgebungsinformationen für jeden Sensordatenabtastwert
liefern, um eine genaue Berechnung von Steuerungswerten hervorzurufen.
Zusätzlich
dazu muß ein
Echtzeitsteuerungssystem üblicherweise
jeden Steuerungswert an den Betätiger
mit genauer Zeitgebung anlegen, um eine genaue Steuerung des gewünschten
Sollwerts zu liefern. Leider leiden bekannte Steuerungssysteme üblicherweise
unter Ungenauigkeiten in der Beziehung zwischen den Sensordaten abtastwerten
und ihren zugeordneten Zeitgebungsinformationen. Zusätzlich dazu
bestehen üblicherweise
Ungenauigkeiten im Hinblick auf die Zeit, für die ein Steuerungswert an
einen Betätiger
bei bekannten Systemen angelegt wird. Im allgemeinen werden solche
Ungewißheiten durch
die nichtdeterministische Eigenschaft der Kommunikation verursacht,
die üblicherweise
bei bekannten Echtzeitsteuerungssystemen verwendet wird.
-
Zum Beispiel sind die Sensoren, Betätiger und
Steuerungen bei bekannten Echtzeitsteuerungssystemen üblicherweise über ein
Kommunikationsnetzwerk verbunden. Ein solches Kommunikationsnetzwerk
kann mit einem paketbasierten Kommunikationsprotokoll implementiert
sein, das eine Kollisionshandhabung umfaßt. Das Ethernet ist ein Beispiel eines
paketbasierten Netzwerks mit Kollisionshandhabung. Ein anderes Beispiel
ist LonTalk, das ein Feldebenensteuerungsbus ist, der für die Prozeßsteuerungsumgebung
spezialisiert ist. Ein solches Kommunikationsnetzwerk kann ferner
mit Zeitteilungs-Mehrfachzugriff (TDMA) oder Token-Ring-Protokollen
implementiert sein, um nur einige zu nennen.
-
Eine Anwendungssteuerung, die mit
einem solchen Kommunikationsnetzwerk verbunden ist, erhält üblicherweise
Sensordatenabtastwerte unter Verwendung von Meldungen; die über das
Kommunikationsnetzwerk übertragen
werden. Üblicherweise umfaßt die Anwendungssteuerung
einen Echtzeittakt, der verwendet wird, um einen Zeitwert zu jedem Sensordatenabtastwert
zuzuweisen, der über
das Kommunikationsnetzwerk empfangen wird.
-
Üblicherweise
existiert eine Verzögerung zwischen
der Zeit, zu der ein Sensordatenabtastwert erzeugt wird, und der
Zeit, zu der eine Anwendungssteuerung einen Zeitwert für diesen
Sensordatenabtastwert von dessen Echtzeittakt erhält. Eine
solche Verzögerung
umfaßt üblicherweise
die Verzögerung, die
der Meldungsübertragung über den
Kommunikationsweg zugeordnet ist. Eine solche Verzögerung umfaßt ferner üblicherweise
die Verzögerung,
die dem Erhalten eines Zeitwerts von dem Echtzeittakt durch die
Anwendungssteuerung zugeordnet ist.
-
Zusätzlich dazu existiert üblicherweise
eine Verzögerung
zwischen der Zeit, zu der eine Anwendungssteuerung einen Steuerungswert
erzeugt, und der Zeit, zu der der Steuerungswert an einen Betätiger angelegt
wird. Eine solche Verzögerung
umfaßt üblicherweise
die Verzögerung,
die der Meldungsübertragung über den
Kommunikationsweg zu dem Betätiger
zugeordnet ist, sowie die Verzögerung
in dem Betätiger,
bevor der Steuerungswert angelegt wird.
-
Solche Verzögerungen, sowohl bei der Sensordatenzeitgebung
als auch bei der Anwendung von Steuerungswerten, sind üblicherweise
nicht konstant. Statt dessen variieren solche Verzögerungen üblicherweise
auf eine nichtdeterministische oder zufällige Weise. Eine solche Abweichung
der Verzögerung
kann als Zittern bezeichnet werden. Zittern kann durch die Abweichung
von Verkehr auf dem Kommunikationsnetzwerk verursacht werden. Zusätzlich dazu
können
Kollisionen, die auf dem Kommunikationsnetzwerk auftreten, wesentliche
Zitterbeträge
einbringen. Andere Quellen von Zittern können eine Abweichung der Zeit
umfassen, die durch ein Betriebssystem benötigt wird, unter dem die Anwendungssteuerung üblicherweise
läuft,
um einen Echtzeittaktwert im Hinblick auf variierende Beträge von Betriebssystemaktivität aufzubereiten.
-
Leider erzeugt ein solches Zittern üblicherweise
Ungenauigkeiten beim Zuordnen von Zeitwerten zu Sensordatenabtastwerten.
Ein solches Zittern erzeugt ferner üblicherweise Ungenauigkeiten
bei der Zeitgebung der Anwendung der Steuerungswerte an Betätiger. Solche
Ungenauigkeiten verringern üblicherweise
die Genauigkeit und die Effizienz solcher bekannten Steuerungssysteme.
-
Das Dokument
EP 0 550 809 A1 offenbart eine
bekannte Technik, die für
diese Anwendung relevant ist.
-
Das Steuerungssystem der Erfindung
gemäß Anspruch
1 liefert genaue Zeitgebungsinformationen für Sensordatenabtastwerte nd
eine genaue Zeitgebung für
die Anwendung von Steuerungswerten an Betätiger im Hinblick auf eine
nichtdeterministische Kommunikation. Das Steuerungssystem umfaßt einen
Sensorknoten mit einer Schaltungsanordnung, die eine Sensorzeitmarke
im wesentlichen gleichzeitig zu einer Zeit erzeugt, zu der sie einen Sensordatenabtastwert
erhält.
Die Sensorzeitmarke ermöglicht
eine genaue Berechnung eines Betätigersteuerungswerts
und einer Betätigerzeitmarke.
Das Steuerungssystem kann einen Betätigerknoten umfassen, der eine
Schaltungsanordnung zum Auslösen
der Anwendung des Betätigersteuerungswerts an
den Betätiger
unter Verwendung der Betätigerzeitmarke
aufweist.
-
Andere Merkmale und Vorteile der
vorliegenden Erfindung werden aus der detaillierten Beschreibung
offensichtlich, die folgt.
-
Die vorliegende Erfindung wird im
Hinblick auf bestimmte exemplarische Ausführungsbeispiele derselben beschrieben
und es wird entsprechend Bezug auf die Zeichnungen genommen, in
denen:
-
1 ein
Ausführungsbeispiel
eines Echtzeitsteuerungssystems darstellt, das genaue Zeitgebungsinformationen
für Sensordatenabtastwerte
und eine genaue Zeitgebung für
die Anwendung von Steuerungswerten an Betätiger im Hinblick auf eine nichtdeterministische
Kommunikation liefert;
-
2 ein
Ausführungsbeispiel
von Mechanismen in einem Sensorknoten zum genauen Zeitmarkieren
von Sensordatenabtastwerten darstellt;
-
3 ein
Ausführungsbeispiel
eines Mechanismus in einem Betätigerknoten
darstellt, zum genauen Anwenden von Betätigersteuerungswerten an den
Betätiger;
-
4 ein
Prozeßsteuerungsnetzwerk
zeigt, das Verfahren zum Handhaben von Ereignisstürmen implementiert.
-
1 stellt
ein Ausführungsbeispiel
eines Echtzeitsteuerungssystems 10 dar, das genaue Zeitgebungsinformationen
für Sensordatenabtastwerte und
eine genaue Zeitgebung für
die Anwendung von Steuerungswerten an Betätiger im Hinblick auf eine nichtdeterministische
Kommunikation liefert. Das Echtzeitsteuerungssystem 10 umfaßt eine
Anwendungssteuerung 12, einen Sensorknoten 14 und
einen Betätigerknoten 16.
Der Sensorknoten 14 umfaßt eine Schaltungsanordnung,
die ein genaues Zeitmarkieren von Sensordatenabtastwerten eines Sensors 20 umfaßt. Der
Betätigerknoten 16 umfaßt eine
Schaltungsanordnung, die die genaue Anwendung von Steuerungswerten
an einen Betätiger 22 ermöglicht.
-
Der Netzwerkkommunikationsweg 18 kann mit
einem aus einer Vielzahl von Kommunikationsmechanismen implementiert
sein. Bei einem Ausführungsbeispiel
ist der Netzwerkkommunikationsweg 18 ein Ethernetkommunikationsnetzwerk.
Bei einem anderen Ausführungsbeispiel
ist der Netzwerkkommunikationsweg 18 ein LonTalk-Feldebenen-Steuerungsbus,
der für
die Prozeßsteuerungsumgebung spezialisiert
ist. Bei anderen Ausführungsbeispielen kann
der Netzwerkkommunikationsweg 18 mit einem Zeitteilungs-Mehrfachzugriff
(TDMA) oder Token-Ring-Protokollen
implementiert sein, um nur einige wenige Möglichkeiten zu nennen.
-
Der Sensor 20 stellt einen
beliebigen Sensor dar, der in einem Echtzeitsteuerungssystem verwendet
werden kann. Solche Sensoren umfassen z. B. Vorrichtungen, wie z.
B. Temperatursensoren, Drucksensoren und Tachometer. Der Betätiger 20 stellt
einen beliebigen Betätiger
dar, der in einem Echtzeitsteuerungssystem verwendet werden kann.
Solche Betätiger
umfassen z. B. Vorrichtungen, wie z. B. Ventile, Motoren, Heizer
und Verstärker.
-
Der Sensorknoten 14 verbindet
den Sensor 20 schnittstellenmäßig mit dem Netzwerkkommunikationsweg 18.
Der Sensorknoten 14 umfaßt die Kommunikationshardware
und -software, die für
eine Kommunikation über
den Netzwerkkommunikationsweg 18 notwendig ist. Der Sensorknoten 14 umfaßt ferner
eine Taktschaltung 30, die ein genaues Zeitmarkieren von
Sensordatenabtastwerten ermöglicht, die
von einem Sensor 20 erhalten werden.
-
Der Betätigerknoten 16 verbindet
den Betätiger 22 schnittstellenmäßig mit
dem Netzwerkkommunikationsweg 18. Der Betätigerknoten
umfaßt
die Kommunikationshardware und -software, die für eine Kommunikation über den
Netzwerkkommunikationsweg 18 notwendig ist. Der Betätigerknoten 16 umfaßt ferner
eine Taktschaltung 32, die die genaue Anwendung
von Steuerungswerten an den Betätiger 22 ermöglicht.
Bei einem Ausführungsbeispiel
werden die Taktschaltungen 30 und 32 synchronisiert,
durch Übertragen
von Zeitpaketen über
den Netzwerkkommunikationsweg 18 und Beliefern des Sensorknotens 14 und
des Betätigerknotens 16 mit
Zeitpaketdetektoren auf eine Weise, die in dem U.S.-Patent Nr. 5,566,180
beschrieben ist.
-
Die Anwendungssteuerung 12 implementiert einen
Prozeßsteuerungsalgorithmus
für eine
Steuerung einer Vorrichtung (nicht gezeigt) mit geschlossener Schleife.
Die Anwendungssteuerung 12 erfaßt das Verhalten der Vorrichtung
unter Verwendung des Sensors 20 und steuert das Verhalten
der Vorrichtung unter Verwendung des Betätigers 22. Zum Beispiel
kann die Vorrichtung ein Motor sein und der Betätiger 22 kann ein
Verstärker
sein, der die Geschwindigkeit des Motors steuert, und der Sensor 20 ein
Tachometer, der die Geschwindigkeit des Motors mißt. Die
Anwendungssteuerung 12 umfaßt die Kommunikationshardware
und -software, d. h.
-
Protokollstapel, die für eine Kommunikation über den
Netzwerkkommunikationsweg 18 notwendig sind. Die Anwendungssteuerung 12 kann
als eine programmierbare Logiksteuerung (PLC) oder als ein Computersystem
implementiert sein.
-
Der Sensorknoten 14 erzeugt
einen Sensordatenabtastwert durch Abtasten eines Sensordatensignals 24 aus
dem Sensor 20. Gleichzeitig erhält der Sensorknoten 14 eine
Sensorzeitmarke von der Taktschaltung 30. Die Sensorzeitmarke
wird von der Taktschaltung 30 im wesentlichen gleichzeitig
zu dem Abtasten des Sensordatensignals 24 erhalten, um
eine genaue Sensorzeitmarke zu liefern. Bei einem Ausführungsbeispiel
tastet der Sensorknoten 14 das Sensordatensignal 24 ansprechend
auf eine Anforderungsmeldung nach Sensordaten ab, die über den Netzwerkkommunikationsweg 18 empfangen
wird. Ein solches Ausführungsbeispiel
kann als ein Ziehsystem bezeichnet werden, in dem ein externer Knoten
Daten aus dem Sensorknoten 14 zieht. Die Anforderung nach
Sensordaten kann bei der Anwendungssteuerung 12 oder bei
dem Betätigerknoten 16 entstehen.
-
Der Sensorknoten 14 erzeugt
ein Sensordatenpaket 40. Das Sensordatenpaket 14 umfaßt den Sensordatenabtastwert,
der von dem Sensor 20 erhalten wird, und die Sensorzeitmarke,
die von der Taktschaltung 30 erhalten wird. Der Sensorknoten 14 überträgt das Sensordatenpaket 40 über den
Netzwerkkommunikationsweg 18. Das Sensordatenpaket 40 in
einem Ziehsystem wird zu dem Knoten auf dem Netzwerkkommunikationsweg 18 übertragen,
der die Anforderung nach Sensordaten ausgegeben hat, was entweder
die Anwendungssteuerung 12 oder der Betätigerknoten 16 sein
kann.
-
Bei einem anderen Ausführungsbeispiel
tastet der Sensorknoten 14 das Sensordatensignal 24 ab
und erhält
eine entsprechende Sensorzeitmarke ohne Anforderungsmeldungen. Dieses
Ausführungsbeispiel
kann als ein Drücksystem
bezeichnet werden. Bei einem Drücksystem
ist der Sensorknoten 14 vorprogrammiert, um periodisch
Sensordatenabtastwerte und Sensorzeitmarken zu erhalten. Der Sensorknoten 14 überträgt periodisch
das Sensordatenpaket 40, das neu erhaltene 5ensordatenabtastwerte und
Sensorzeitmarken enthält, über den
Netzwerkkommunikationsweg 18 entweder zu der Anwendungssteuerung 12 oder
zu dem Betätigerknoten 16.
-
Bei der nachfolgenden Erörterung
sei angenommen, daß die
Anwendungssteuerung 12 den Prozeβsteuerungsalgorithmus implementiert.
Die Anwendungssteuerung 12 empfängt das Sensordatenpaket 40 über den
Kommunikationsweg 18 und verwendet den Sensordatenabtastwert
und die Sensorzeitmarke, die in demselben enthalten sind, als Eingaben
in dessen Prozeßsteuerungsalgorithmus.
Der Prozeßsteuerungsalgorithmus
erzeugt einen Betätigersteuerungswert
und eine entsprechende Betätigerzeitmarke,
die eine zukünftige
Zeit anzeigt, zu der der Betätigersteuerungswert
an den Betätiger 22 angewendet
werden soll. Die Anwendungssteuerung 12 ordnet den Betätigersteuerungswert
und die Betätigerzeitmarke
in einem Steuerungspaket 42 an. Die Anwendungssteuerung 12 überträgt dann
das Steuerungspaket 42 zu dem Betätigerknoten 16 über den Netzwerkkommunikationsweg 18.
-
Der Betätigerknoten 16 empfängt das
Steuerungspaket 42 über
den Netzwerkkommunikationsweg 18 und verwendet die Betätigerzeitmarke,
die in demselben enthalten ist, als ein Auslöseereignis zum Anwenden des
Betätigersteuerungswerts
an den Betätiger 22 als
ein Betätigersignal 26.
Der Betätigerknoten 16 synchronisiert
die Anwendung des Betätigersteuerungswerts
an die Betätigerzeitmarke
unter Verwendung der Taktschaltung 32. Die Taktschaltung 32 wird
mit der Taktschaltung 30 synchronisiert und die Anwendungssteuerung 12 leitet
die Betätigerzeitmarke
von der Sensorzeitmarke her, die durch die Taktschaltung 30 erzeugt
wurde.
-
Das gezeigte Prozeßsteuerungssystem 10 zeigt
ein Ausführungsbeispiel,
bei dem die Anwendungssteuerung 12 Sensordatenabtastwerte
und Zeitmarken von dem Sensorknoten 14 über den Netzwerkkommunikationsweg 18 erhält, Betätigersteue rungswerte
und Betätigerzeitmarken
berechnet und dann die Betätigersteuerungswerte
und die Zeitmarken zu dem Betätigerknoten 16 über den
Kommunikationsweg 18 überträgt. Bei
einem anderen Ausführungsbeispiel
kann der Prozeßsteuerungsalgorithmus
in dem Betätigerknoten 16 implementiert sein,
der einen Prozessor und andere Softwareausführungsressourcen umfaßt. Bei
einem solchen Ausführungsbeispiel
erhält
der Betätigerknoten 16 Sensordatenabtastwerte
und Zeitmarken von dem Sensorknoten 14 über den Kommunikationsweg 18,
berechnet Betätigersteuerungswerte
und Zeitmarken und wendet die Betätigersteuerungswerte an den
Betätiger 22 an.
-
Bei einem wiederum anderen Ausführungsbeispiel
ist der Prozeßsteuerungsalgorithmus
für die Vorrichtung,
die an dem Betätiger 22 angebracht
ist, in dem Sensorknoten 14 implementiert, der einen Prozessor
und andere Softwareausführungsressourcen
umfaßt.
Bei einem solchen Ausführungsbeispiel erhält der Sensorknoten 14 Sensordatenabtastwerte und
Zeitmarken, berechnet Betätigersteuerungswerte
und Zeitmarken und überträgt dann
die Betätigersteuerungswerte
und Zeitmarken zu dem Betätigerknoten 16 über den
Netzwerkkommunikationsweg 18.
-
2 stellt
Mechanismen in dem Sensorknoten 14 zum genauen Zeitmarkieren von
Sensordatenabtastwerten bei einem Ausführungsbeispiel dar. Der Sensorknoten 14 umfaßt einen
Prozessor 52, der einen Sensordatenabtastwert 62 von
einem Analog-zu-Digital-Wandler 54 und eine Sensorzeitmarke 64 von
der Taktschaltung 30 erhält und dann das Sensordatenpaket 40 anordnet.
Der Sensorknoten 14 umfaßt ferner einen Protokollstapel 50,
der die Software- und Hardwareelemente umfaßt, die eine Kommunikation über den
Netzwerkkommunikationsweg 18 ermöglichen.
-
Der Analog-zu-Digital-Wandler 54 ist
gekoppelt, um das analoge Sensordatensignal 24 von dem Sensor 20 zu
empfangen. Der Analog-zu-Digital-Wandler 54 erzeugt den
Sensordatenabtastwert 62 durch Digitalisieren des Sensordatensig nals 24 ansprechend
auf ein Strobe-Signal 60, das durch den Prozessor 52 erzeugt
wird. Der Analog-zu-Digital-Wandler 54 hält den Sensordatenabtastwert 62 für ein nachfolgendes
Lesen durch den Prozessor 52. Das Strobe-Signal 60 verursacht
ferner, daß ein Latch 56 einen
Taktwert 66 aus der Taktschaltung 30 abtastet
und hält.
Das Strobe-Signal 60 verursacht, daß das Latch 56 den
Taktwert 66 im wesentlichen gleichzeitig zu dem Abtasten
des Sensordatensignals 24 durch den Analog-zu-Digital-Wandler 54 abtastet.
-
Bei einem Ausführungsbeispiel gibt der Prozessor 52 das
Strobe-Signal 60 aus, um den Taktwert 66 und das
Sensordatensignal 24 ansprechend auf eine Anforderungsmeldung
abzutasten, die über
den Netzwerkkommunikationsweg 18 empfangen wird. Bei einem
anderen Ausführungsbeispiel
gibt der Prozessor 52 periodisch das Strobe-Signal 60 aus,
um den Taktwert 66 und das Sensordatensignal 24 abzutasten.
Der Prozessor 52 kann z. B. den Taktwert 66 lesen
oder „abrufen", um zu bestimmen,
wann ein weiterer Satz von Abtastwerten des Taktwerts 66 und des
Sensordatensignals 24 erhalten werden sollte.
-
Der Prozessor 52 liest den
Sensordatenabtastwert 62, der durch den Analog-zu-Digital-Wandler 54 gehalten
wird, und schreibt ihn in das Sensordatenpaket 40. Zusätzlich dazu
liest der Prozessor 52 die Sensorzeitmarke 64,
die durch das Latch 56 gehalten wird, und schreibt dieselbe
in das Sensordatenpaket 40. Der Prozessor 52 überträgt dann
das Sensordatenpaket 40 über den Netzwerkkommunikationsweg 18 unter
Verwendung des Protokollstapels 50. Das Sensordatenpaket 40 in
dem Ziehsystem wird zu dem Anforderungsknoten übertragen, z. B. der Anwendungssteuerung 12.
In einem Drücksystem überträgt der Prozessor 52 das
Sensordatendatenpaket 40 entweder zu der Anwendungssteuerung 12 oder
zu dem Betätigerknoten 16,
abhängig davon,
welcher als das Ziel vorbestimmt ist.
-
3 stellt
ein Ausführungsbeispiel
eines Mechanismus in dem Betätigerknoten
16 zum genauen Anwenden von Betätigersteuerungswerten
an den Betätiger 22 dar.
Der Betätigerknoten 16 umfaßt einen
Protokollstapel 70, der die Softwareund Hardwareelemente
umfaßt,
die eine Kommunikation über den
Netzwerkkommunikationsweg 18 ermöglichen. Der Betätigerknoten 16 umfaßt ferner
einen Prozessor 72, der das Steuerungspaket 42 über den
Netzwerkkommunikationsweg 18 unter Verwendung des Protokollstapels 70 empfängt.
-
Der Prozessor 72 schreibt
den Betätigersteuerungswert
von dem Steuerungspaket 42 in einen Digital-zu-Analog-Wandler 74 als
einen Steuerungswert 80. Der Digital-zu-Analog-Wandler 7A hält den Steuerungswert 80,
bis ein Strobe-Signal 88 durch
einen Komparator 78 aktiviert wird. Zusätzlich dazu schreibt der Prozessor 72 die
Betätigerzeitmarke,
die in dem Steuerungspaket 42 enthalten ist, in ein Latch 76.
-
Der Komparator 78 vergleicht
eine zwischengespeicherten Betätigerzeitmarke 82 mit
einem freilaufenden Taktwert 86, der durch die Taktschaltung 32 erzeugt
wurde. Der Komparator 78 aktiviert das Strobe-Signal 88,
wenn der freilaufende Taktwert 86 die zwischengespeicherten
Betätigerzeitmarke 82 erreicht.
Das Strobe-Signal 88 verursacht, daß der Digital-zu-Analog-Wandler 74 den
Steuerungswert 80 in ein Betätigersteuerungssignal 26 für den Betätiger 22 umwandelt.
-
Bei einem anderen Ausführungsbeispiel
ist die Auslösefunktion,
die durch den Komparator 78 vorgesehen ist, statt dessen
in Firmware ausgeführt, z.
B. mit einem Vergleichsbefehl, der durch den Prozessor 72 ausgeführt wird.
-
4 zeigt
ein Prozeßsteuerungsnetzwerk 100,
das Verfahren zum Handhaben von Ereignisstürmen implementiert. Das Prozeßsteuerungsnetzwerk 100 umfaßt einen
Sensorknoten 104 und einen Betätigerknoten 106, die
zusammen eine Steue rungsschleife implementieren. Der Sensorknoten 104 und
der Betätigerknoten 106 umfassen
jeweils eine synchronisierte Taktschaltung und die Hardware- und
Softwareelemente für
eine Kommunikation über
einen Netzwerkkommunikationsweg 102. Der Sensorknoten 104 überträgt periodisch
ein Sensordatenpaket zu dem Betätigerknoten 106 über den Netzwerkkommunikationsweg 102,
das einen Sensordatenabtastwert und eine entsprechende Sensorzeitmarke
enthält.
-
Bei einem Ausführungsbeispiel stellen der Sensorknoten 104 und
der Betätigerknoten 106 ein Ziehsystem
bereit, bei dem der Betätigerknoten 106 periodisch
Anforderungsmeldungen zu dem Sensorknoten 104 über den
Netzwerkkommunikationsweg 102 überträgt. Der Sensorknoten 104 antwortet
auf jede Anforderungsmeldung durch Erhalten eines Sensordatenabtastwerts
und einer entsprechenden Sensorzeitmarke und Übertragen derselben in einem Sensordatenpaket über den
Netzwerkkommunikationsweg 102. Bei einem anderen Ausführungsbeispiel
liefern der Sensorknoten 104 und der Betätigerknoten 106 ein
Drucksystem, bei dem der Sensorknoten 104 periodisch einen
Sensordatenabtastwert und eine entsprechende Sensorzeitmarke erhält und dieselben
in einem Sensordatenpaket über
den Netzwerkkommunikationsweg 102 überträgt.
-
Das Prozeßsteuerungsnetzwerk 100 umfaßt einen
Satz von Überwachungsknoten 110–114.
Jeder der Überwachungsknoten 110–114 führt eine Überwachungsfunktion
aus, um ein unübliches
Ereignis oder einen Alarm in dem Prozeßsteuerungsnetzwerk 100 zu
erfassen. Diese Alarme können
z. B. Hochtemperaturalarme oder andere Ereignisse sein, die zu anderen
Teilen des Prozeßsteuerungsnetzwerks 100 kommuniziert
werden müssen.
-
Eine Bedingung kann in dem Prozeßsteuerungsnetzwerk 100 auftreten,
die als ein Ereignissturm bezeichnet werden kann. Ein Ereignissturm kann
z. B. auftreten, wenn eine große
Anzahl der Überwachungsknoten 110–114 ein
unübliches
Ereignis erfaßt.
Die Überwachungsknoten 110–114,
die ein unübliches
Ereignis erfassen, übertragen
Alarmmeldungen über
den Netzwerkkommunikationsweg 102, um andere Teile des
Prozeßsteuerungsnetzwerks 100 über die
unüblichen
Ereignisse zu benachrichtigen.
-
Die große Anzahl von Alarmmeldungen,
die über
den Netzwerkkommunikationsweg 102 während eines Ereignissturms übertragen
wird, kann den Großteil
der verfügbaren
Bandbreite des Netzwerkkommunikationswegs 102 verbrauchen.
Diese Ereignisstürme
können
eine große
Anzahl von Kollisionen verursachen, und der resultierende Kollisionsentscheidungsmechanismus
auf dem Netzwerkkommunikationsweg 102 kann den Gesamtdurchsatz
in dem Prozeßsteuerungsnetzwerk 100 verlangsamen. Folglich
können
die Meldungen, die zum Beibehalten der Steuerungsschleife zwischen
dem Sensorknoten 104 und dem Betätigerknoten 106 erforderlich
sind, verzögert
werden oder sogar verlorengehen oder außer Betrieb gebracht werden.
-
Die Sensorzeitmarken, die in den
Sensordatenpaketen enthalten sind, die über den Netzwerkkommunikationsweg 102 übertragen
werden, ermöglichen
die Erfassung von verzögerten
oder fehlenden oder außer
Betrieb gesetzten Sensordatenpaketen. Es sei z. B. angenommen, daß die Steuerungsschleife
zwischen dem Sensorknoten 104 und dem Betätigerknoten 106 die
Abtastung von Sensordaten alle t0 Sekunden umfaßt. Ist dies der Fall, dann
sollte ein Sensordatenpaket über
den Netzwerkkommunikationsweg 102 ungefähr alle t0 Sekunden übertragen werden
und die Sensorzeitmarke, die in jedem Sensordatenpaket enthalten
ist, sollte sich von einer vorangehenden durch ungefähr t0 Sekunden
unterscheiden. Wenn zwei aufeinanderfolgende Sensordatenpakete,
die auf dem Netzwerkkommunikationsweg 102 getragen werden,
Zeitmarkenwerte aufweisen, die sich um bedeutend mehr als t0 Sekunden unterscheiden,
dann ist dies eine Anzeige dafür,
daß die
Sensordatenpakete verzögert
sind oder möglicherweise
aufgrund eines Ereignissturms verloren gingen.
-
Einer oder mehrere des Betätigerknotens 106 und
der Überwachungsknoten 110–114 können die
Sensorzeitmarken in den Sensordatenpaketen verwenden, die über den
Netzwerkkommunikationsweg 102 übertragen werden, um Ereignisstürme zu erfassen.
Der Betätigerknoten 106 als
das Ziel empfängt
bereits die Sensordatenpakete und extrahiert die Sensorzeitmarken,
um Betätigersteuerungswerte zu
berechnen. Zusätzlich
dazu können
die Überwachungsknoten 110–114 den
Netzwerkkommunikationsweg 102 nach Sensordatenpaketen überwachen oder „durchschnüffeln" und die Sensorzeitmarken aufzeichnen,
um verzögerte
oder fehlende Sensordatenpakete zu erfassen.
-
Bei einem Ausführungsbeispiel, wenn der Überwachungsknoten 110 z.
B. verzögerte
oder fehlende Sensordatenpakete erfaßt, die einen Ereignissturm
signalisieren können,
stoppt er das Übertragen von Überwachungsmeldungen
auf dem Kommunikationsweg 102 für eine vorbestimmte Zeitperiode.
Bei einem anderen Ausführungsbeispiel überträgt der Überwachungsknoten 110 eine
Notfallbenachrichtigungsmeldung über
den Kommunikationsweg 102, wenn er einen möglichen
Ereignissturm erfaßt.
Die Notfallbenachrichtigungsmeldung verursacht, daß die verbleibenden Überwachungsknoten 112–114 das Übertragen
von Meldungen auf dem Kommunikationsweg 102 für eine vorbestimmte
Zeitperiode stoppen.
-
Ein anderes Verfahren zum Erfassen
von möglichen
Ereignisstürmen
umfaßt
die Erfassung von Kollisionen auf dem Netzwerkkommunikationsweg 102 für Ausführungsbeispiele,
bei denen der Netzwerkkommunikationsweg 102 eine Kollisionshandhabung
bereitstellt, wie z. B. ein Ethernet. Der Protokollstapel, d. h.
die Kommunikationshardware und -software, in dem Sensorknoten 104,
umfaßt
z. B. einen Mechanismus zum Protokollieren des Auftretens von Kollisionen
auf dem Netzwerkkommunikationsweg 102. Der Prozessor in
dem Sensorknoten 104 fragt periodisch den entsprechenden
Protokollstapel ab, um zu bestimmen, ob eine übermäßige Anzahl von Kollisionen
auftreten, die einen Ereignissturm anzeigen könnten.
-
Bei einem anderen Ausführungsbeispiel
umfaßt
der Protokollstapel bei dem Sensorknoten 104 eine ausgehende
Meldungswarteschlange zum Puffern von Meldungen für eine Übertragung über den Netzwerkkommunikationsweg 102.
Der Prozessor in dem Sensorknoten 104 überprüft periodisch die ausgehende
Meldungswarteschlange. Eine annähernd volle
ausgehende Meldungswarteschlange könnte anzeigen, daß ein Ereignissturm
unterwegs ist.
-
Bei einem Ausführungsbeispiel durchlaufen der
Sensorknoten 104 und der Betätigerknoten 106 ihre
Steuerungsschleife in einem Modus mit reduziertem Verhalten, wenn
ein Ereignissturm erfaßt
wird. Bei einem Ausführungsbeispiel
eines reduzierten Zustands liefert der Sensorknoten 104 Sensordatenabtastwerte
alle t0/K Sekunden, wobei K eine Konstante ist, und nicht die t0-Abtastwerte
pro Sekunde in einem normalen Zustand ohne Ereignissturm. Der reduzierte
Zustand reduziert die Bandbreitenverwendung auf dem Netzwerkkommunikationsweg 102,
die erforderlich ist, um die Steuerungsschleife beizubehalten.
-
Bei einem anderen Ausführungsbeispiel
setzen der Sensorknoten 104 und der Betätigerknoten 106 die
Steuerungsschleife in einen „sicheren" Zustand, wenn ein
Ereignissturm erfaßt
wird. Der sichere Zustand kann dem letzten Steuerungswert entsprechen,
der erfolgreich durch den Betätigerknoten 106 empfangen
wurde. Alternativ kann der Betätigerknoten 106 den
Betätiger
abschalten, sobald ein Ereignissturm erfaßt wird.
-
Die Überwachungsknoten 110–114 können eine
Vielzahl von Aktionen unternehmen, sobald ein Ereignissturm erfaßt wird.
Zum Beispiel können
die Überwachungsknoten 110–114 das Übertragen
von Meldungen auf dem Netzwerkkommunikationsweg 102 stoppen,
einschließlich
von Alarmmeldungen, für eine Zeitperiode.
Die Überwachungsknoten 110–114 können weiterhin Überwachungsdaten
erhalten und können
synchronisierte Taktschaltungen umfassen, die ermöglichen,
daß die Überwachungsdaten
genau zeitmakiert werden. Dies würde
ermöglichen,
daß die Überwachungsknoten 110–114 die
gepufferten Überwachungsdaten
und Zeitmarken über
den Netzwerkkommunikationsweg 102 übertragen, sobald die Ereignisstürme enden,
und es einem Empfangsknoten ermöglichen,
die Überwachungsdaten
zu rekonstruieren, mit genauen Zeitgebungsinformationen. Alternativ
können
die Überwachungsknoten 110–114 die Rate
für eine
Zeitperiode während
eines Ereignissturms reduzieren, mit der sie Meldungen auf dem Netzwerkkommunikationsweg 102 übertragen.
-
Die vorangehende detaillierte Beschreibung der
vorliegenden Erfindung wird zu Zwecken der Darstellung bereitgestellt
und soll nicht ausschließend sein
oder die Erfindung auf das genaue offenbarte Ausführungsbeispiel
einschränken.
Entsprechend wird der Schutzbereich der vorliegenden Erfindung durch
die beiliegenden Ansprüche
definiert.