DE10057780A1 - Verfahren zum Betrieb einer programmierbaren Steuereinrichtung - Google Patents
Verfahren zum Betrieb einer programmierbaren SteuereinrichtungInfo
- Publication number
- DE10057780A1 DE10057780A1 DE10057780A DE10057780A DE10057780A1 DE 10057780 A1 DE10057780 A1 DE 10057780A1 DE 10057780 A DE10057780 A DE 10057780A DE 10057780 A DE10057780 A DE 10057780A DE 10057780 A1 DE10057780 A1 DE 10057780A1
- Authority
- DE
- Germany
- Prior art keywords
- action
- memory
- comparison
- value
- condition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/058—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0428—Safety, monitoring
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25428—Field device
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Executing Machine-Instructions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Electrotherapy Devices (AREA)
- Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)
Abstract
Das Verfahren zeichnet sich dadurch aus, dass zur Laufzeit des Programms (8) der Steuereinrichtung (1) Vergleichsoperationen (31) formulierbar sind, die durch eine Auswertungsroutine (4) auswertbar sind und dass in Abhängigkeit vom Ergebnis der jeweiligen Vergleichsoperation (31) Aktionen (32, 33) ausgelöst werden, die ebenfalls zur Laufzeit des Programms (8) formulierbar sind, so dass eine Diagnose und/oder Überwachung der Steuereinrichtung (1) erfolgen kann, ohne deren Betrieb zu unterbrechen.
Description
Die Erfindung betrifft ein Verfahren zum Betrieb einer pro
grammierbaren Steuereinrichtung, welche einen Speicher und eine
Verarbeitungseinheit aufweist, wobei im Speicher eine durch die
Verarbeitungseinheit ausführbare Auswertungsroutine abgelegt
ist.
Eine programmierbare Steuereinrichtung ist z. B. als Personal
computer, als Zentraleinheit einer so genannten speicher
programmierbaren Steuerung, oder allgemein als so genannter
Controller bekannt, der in verschiedenen elektrischen Geräten
zu deren Steuerung verwendet wird. Die das Verhalten der Steu
ereinrichtung bestimmende Software, ist im Speicher abgelegt
und wird von der Verarbeitungseinheit ausgeführt. Die Steuer
einrichtung ist geeignet, externe Daten und Signale aufzunehmen
und zu verarbeiten und in Abhängigkeit davon bestimmte, pro
grammierte Aktionen auszulösen. Dabei wird z. B. ein Vergleich
zwischen einem Eingangswert und einem vorgegebenen Sollwert
durchgeführt und in Abhängigkeit vom Ergebnis dieses Vergleichs
eine vorgegebene Aktion ausgelöst. Ein häufig veränderlicher
Wert, wie z. B. der Sollwert, ist dabei üblicherweise als exter
ner Parameter realisiert, der ohne Änderung oder Aktualisierung
der Software an eine veränderte Situation anpassbar ist. Bedin
gung und Aktion sind dagegen Bestandteil der Software.
Nachteilig bei diesen bekannten programmierbaren Steuerein
richtungen ist, dass zwar ein Parameter einer Bedingung, nicht
aber die eigentliche Bedingung und auch nicht die Aktion, die
in Abhängigkeit vom Ergebnis der Bedingung ausgelöst wird, ohne
Änderung oder Aktualisierung der Software veränderbar ist.
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren
zum Betrieb einer programmierbaren Steuereinrichtung anzugeben,
bei dem auch die Bedingung (im folgenden Vergleichsoperation)
und/oder die Aktion - als Reaktion auf mögliche Ergebnisse der
Bedingung - veränderbar ist, ohne dass dazu eine Änderung oder
Aktualisierung der Software erforderlich wird. Vorgenommene
Veränderungen wirken sich damit direkt - zur so genannten Lauf
zeit der Software - auf das Verhalten der Steuereinrichtung
aus.
Diese Aufgabe wird erfindungsgemäß mit den Merkmalen des An
spruchs 1 gelöst. Dazu sind im Speicher der programmierbaren
Steuerung unabhängig von der durch die Verarbeitungseinheit
ausführbaren Auswertungsroutine ein Operand, ein Vergleichs
operator und ein Vergleichswert abgelegt. Dabei bilden Operand,
Vergleichswert und Vergleichsoperator eine binäre Vergleichs
operation, welche entweder ein erstes oder ein zweites Ergebnis
liefert. Mit dem ersten Ergebnis ist eine erste Aktion und mit
dem zweiten Ergebnis eine zweite Aktion assoziiert. Bei der
Ausführung der Auswertungsroutine erfolgt eine Auswertung der
binären Vergleichsoperation und in Abhängigkeit vom Ergebnis
der Vergleichsoperation entweder die erste oder die zweite Ak
tion. Die Erfindung ist grundsätzlich jedoch auch auf Operatio
nen mit mehr als zwei Ergebnissen anwendbar.
Eine so genannte binäre Operation ist eine Operation mit genau
zwei Operanden, wobei jeder Operand selbst eine Operation sein
kann. Ein Beispiel für eine binäre Operation (in der Notation
der Programmiersprache C, C++) ist die (Vergleichs-)Operation
"a = = b" oder die (Zuweisungs-)Operation "a = b", wobei "a" und
"b" Operanden der speziellen binären Operation sind. Allgemein
umfasst eine binäre Operation einen ersten und zweiten Operan
den (oder Parameter) und einen Operationsbezeichner (oder Ope
rator). Auch eine Operation "A + B = = C" ist eine binäre Operation.
Allerdings enthält diese spezielle binäre Operation als
ersten Parameter selbst eine binäre Operation, nämlich die Ad
dition der beiden Parameter "A", "B" in einer "inneren" binären
Operation. Das Ergebnis dieser inneren binären Operation ist
neben dem Parameter "C" der weitere Parameter der äußeren binä
ren Vergleichsoperation.
Die binäre Operation ist die gebräuchlichste Operation, so dass
im Sprachgebrauch häufig nicht zwischen Operation und binärer
Operation unterschieden wird. Nachfolgend werden daher die Beg
riffe "binäre Operation" und "Operation" auch synonym verwen
det. Zusätzlich zur binären Operation gibt es noch die so ge
nannte "unäre Operation". Diese umfasst nur einen Parameter und
einen Operator. Ein Beispiel für eine unäre Operation ist eine
Invertierung/Negation des Operanden - "!a", wiederum in der No
tation der Programmiersprache C, C++.
Beliebig komplexe Ausdrücke lassen sich aus binären und unären
Operationen zusammensetzen. Die möglichen Operationen, denen
die Parameter einzelner binärer Operationen unterworfen werden
können, sind z. B. Rechenoperationen, wie Additions-, Subtrakti
ons-, Multiplikations- und Divisionsoperationen, logische Ope
rationen, wie eine UND-Verknüpfung oder eine ODER-Verknüpfung,
Zuweisungsoperationen (a = b) sowie Vergleichsoperationen zum
Vergleich der Parameter auf Identität ( = = ), Ungleichheit (! =),
kleiner (<), kleiner gleich (< =), größer (<), größer gleich
(< =), etc.
Eine Operation "a OP1 b" mit OP1 als Vergleichsoperator ist ei
ne binäre Vergleichsoperation. Entsprechend ist auch
"x OP2 y OP1 b" mit OP1 als Vergleichsoperator eine binäre Ver
gleichsoperation mit der inneren binären Operation "x OP2 y",
bei der OP2 ein Rechenoperator (+, -, ×, /) oder ein logischer
Operator (UND, ODER) ist. "x OP2 y" ist die "innere" Operation,
da OP1 als Vergleichsoperator die niedrigste Priorität
hat. So wird beispielsweise bei "a + b = c" stets zunächst "a + b"
ausgeführt, bevor die Zuweisung erfolgt.
Der so genannte Typ des Ergebnisses einer Operation hängt
grundsätzlich vom Typ des oder der Operanden ab. So resultiert
aus der Addition, Subtraktion oder Multiplikation zweier natür
licher Zahlen wieder eine natürliche Zahl, während aus der Ad
dition, Subtraktion oder Multiplikation einer natürlichen und
einer reellen Zahl eine reelle Zahl resultiert. Dagegen hat ei
ne binäre Vergleichsoperation unabhängig vom Typ der Operanden
immer ein Ergebnis vom Typ [ja, nein] (oder je nach Bezeich
nung/Darstellung auch [wahr, falsch], [erfüllt, nicht erfüllt]
bzw. [true, false]). Werden nämlich z. B. zwei Operanden auf
Gleichheit (= =) geprüft, gibt es für das Ergebnis der Ver
gleichsoperation nur die zwei Ergebnisse "Gleichheit" - ent
sprechend "ja"/"wahr"/"erfüllt"/"true" - oder "Ungleich
heit" - entsprechend "nein"/"falsch"/"nicht erfüllt"/
"false".
Die Auswertungsroutine ist durch die Verarbeitungseinheit aus
führbar. Die von der Auswertungsroutine unabhängig gespeicherte
Vergleichsoperation ist dagegen durch die Verarbeitungseinheit
nicht ausführbar. Grund hierfür ist, dass es sich bei der Ver
gleichsoperation nur um eine Kombination von Daten - nämlich
Operand, Vergleichswert und Vergleichsoperator - handelt, die
zwar logisch eine Operation bilden, aber keinen ausführbaren
Code darstellen. Die Auswertungsroutine ermöglicht durch die
Auswertung dieser Daten die Auswertung der dadurch gebildeten
Vergleichsoperation.
Nachdem in Abhängigkeit vom Ergebnis der Vergleichsoperation
stets entweder die erste oder die zweite Aktion erfolgt, be
steht die Möglichkeit, spezifisch auf das Ergebnis der Vergleichsoperation
zu reagieren. Damit ist es z. B. möglich, den
Inhalt einer sensiblen Speicherzelle der Steuereinrichtung auf
Veränderungen, z. B. Abweichungen von einem Erwartungswert, zu
überwachen. Dazu wird als Operand der Inhalt der zu überwachen
den Speicherzelle und als Vergleichswert der Erwartungswert
verwandt. Als Vergleichsoperator wird der Operator zum Ver
gleich auf Identität verwandt. Bei jeder Ausführung der Auswer
tungsroutine erfolgt eine Auswertung der durch die Vergleichs
operation spezifizierten Bedingung. Dies führt zu der ersten
Aktion, sofern der Inhalt der Speicherzelle mit dem Vergleichs
wert übereinstimmt, und zu der zweiten Aktion, sofern diese
Identität nicht besteht. Die zweite Aktion zeigt damit die Ver
änderung der zu überwachenden Speicherzelle an. Die Aktionen
beziehen sich z. B. auf das Setzen oder Löschen einer Speicher
stelle oder auf das Ein- oder Ausschalten eines Betriebsmit
tels, z. B. einer Leuchte.
In zweckmäßiger Ausgestaltung ist im Speicher zusätzlich zu dem
Operanden, dem Vergleichsoperator und dem Vergleichswert ein
Maskierungswert abgelegt. Der Maskierungswert und der Operand
sind dann Operanden einer Maskierungsoperation mit einem Mas
kierungsoperator. Diese innere Maskierungsoperation wird von
der Auswertungsroutine ausgewertet. Das Ergebnis der Maskie
rungsoperation bildet mit dem Vergleichswert und dem Ver
gleichsoperator die binäre Vergleichsoperation. Gemäß dieser
Ausgestaltung wird also die Vergleichsoperation um eine innere
Maskierungsoperation ergänzt. Damit ist es z. B. möglich, an
stelle des Inhalts einer kompletten Speicherzelle, die übli
cherweise acht oder sechzehn Bit umfasst, einzelne Positionen,
d. h. einzelne Bits der Speicherzelle zu überwachen.
Zur Überprüfung, ob das oberste Bit einer 8 Bit Speicherzelle
gesetzt ist, wird deren Inhalt mit dem Binärwert "1000 0000",
entsprechend Dezimal 128 bzw. Hexadezimal 80, einer logischen
UND-Verknüpfung unterzogen. Der Operand ist also der Inhalt der
Speicherzelle, der Maskierungswert ist "80" und die logische
UND-Verknüpfung der Maskierungsoperator. Das Ergebnis dieser
Maskierungsoperation ist entweder "80" oder "0", je nachdem, ob
das untersuchte Bit in der überprüften Speicherzelle gesetzt
war. Durch die äußere Vergleichsoperation erfolgt abschließend
z. B. die Überprüfung auf Ungleichheit mit "0". Ist die Bedin
gung der äußeren Vergleichsoperation erfüllt (80 ≠ 0), war das
Bit gesetzt.
Zusätzlich zu der Maskierung durch eine logische UND-Ver
knüpfung ist z. B. auch eine Maskierung durch eine logische
ODER-Verknüpfung oder eine logische Exclusiv-ODER-Verknüpfung
möglich. In einer weiteren Ausgestaltung ist daher vorgesehen,
dass auch der Maskierungsoperator zur freien Vorgabe im Spei
cher abgelegt ist. Der Maskierungsoperator wird bei der Auswer
tung der Maskierungsoperation durch die Auswertungsroutine be
rücksichtigt.
Ist die Vergleichsoperation durch den Inhalt eines jeweils im
Speicher abgelegten Operationsbereichs codiert, wobei dieser
entweder zumindest den Operanden, den Vergleichswert und den
Vergleichsoperator oder - je nach Ausgestaltung - darüber hin
aus noch den Maskierungswert umfasst, ist eine Organisation der
Parameter der Vergleichsoperation in einem spezifisch adres
sierbaren Speicherbereich - dem Operationsbereich - möglich.
Dazu kann ein zusammengesetzter Datentyp definiert werden, der
die für die jeweiligen Parameter erforderlichen Felder umfasst.
Bei Verwendung dieses zusammengesetzten Datentyps sind im Spei
cher zusammengehörige Parameter in jeweils einem Operationsbe
reich ablegbar, deren Zusammengehörigkeit damit implizit fest
steht. Dies erleichtert die Organisation und Zuordnung der Pa
rameter. Ferner kann auf diese Weise eine erste Vergleichsoperation
einfach und schnell gegen eine zweite Vergleichsopera
tion ausgetauscht werden.
Ähnlich wie die Vergleichsoperation ist auch die auszulösende
Aktion durch im Speicher abgelegt Parameter spezifiziert. Vor
teilhaft ist dabei jede Aktion, also die erste und die zweite
Aktion, durch einen ersten und zweiten Aktionsbereich codiert.
Jeder Aktionsbereich umfasst entweder eine Folgeaktion oder ei
ne Verknüpfungsreferenz oder sowohl eine Folgeaktion als auch
eine Verknüpfungsreferenz. Tatsächlich umfasst der Aktionsbe
reich als Segment des Speichers eine Position zum Abspeichern
der Folgeaktion bzw. eine Position zum Abspeichern der Verknüp
fungsreferenz. Zur Vereinfachung werden Speicherposition und
jeweiliger Inhalt im folgenden synonym bezeichnet. Der Aktions
bereich dient zur Organisation der Parameter (Folgeaktion, Ver
knüpfungsreferenz) einer Aktion und erleichtert den Zugriff auf
zusammengehörige Parameter.
In vorteilhafter Weiterbildung bilden der Operationsbereich und
der erste und zweite Aktionsbereich im Speicher eine zu
sammenhängend adressierbare Struktur, einen Condition-Block.
Der Condition-Block umfasst sowohl die Parameter zur Codierung
der Vergleichsoperation als auch die Parameter zur Codierung
der ersten und zweiten Aktion. Der Condition-Block (oder ein so
genannter Zeiger auf den Condition-Block) ist damit als Para
meter für die Auswertungsroutine verwendbar. Im Speicher sind
eine Vielzahl von Condition-Blöcken ablegbar. Zur Verwendung
eines anderen Condition-Blocks ist damit lediglich ein anderer
Parameter, nämlich der andere Condition-Block oder dessen Ad
resse, an die Auswertungsroutine erforderlich.
Wenn jede Aktion, die erste wie auch die zweite Aktion, eine
Auslösung einer zugeordneten Folgeaktion umfasst, ist auch die
Vorgabe und Veränderung einer spezifischen Aktion zur Laufzeit
möglich. Wenn die erste Aktion z. B. stets das Einschalten und
die zweite Aktion stets das Ausschalten einer Leuchte bewirkt,
ist der Umstand, ob die durch die Vergleichsoperation codierte
Bedingung erfüllt ist, anhand des Status dieses Betriebsmittels
ersichtlich. Dies ist zu Diagnosezwecken sinnvoll und hilf
reich.
Um zu ermitteln, wie oft eine Bedingung während des Betriebs
der Steuereinrichtung erfüllt ist, müsste eine Bedienperson das
Aufleuchten der Leuchte zählen. Wenn die Bedingung mehrfach
hintereinander erfüllt ist, ist nicht erkennbar, wie oft die
Bedingung tatsächlich erfüllt war, wenn die Leuchte permanent
leuchtet. Zudem ist das Zählen durch die Bedienperson generell
fehlerträchtig. Als Folgeaktion ist daher z. B. das Inkrementie
ren oder Dekrementieren eines Zähler vorgesehen. Wenn z. B. für
die erste Aktion als Folgeaktion das Inkrementieren eines ers
ten Zählers vorgegeben wird, ist anhand des Wertes dieses Zäh
lers jederzeit ermittelbar, wie oft die Bedingung erfüllt war.
Weitere Folgeaktionen sind z. B. das Auslösen eines Interrupts
oder Triggers.
Zweckmäßigerweise ist als Spezifikation einer Folgeaktion auch
die Startadresse eines Programmsegments zulässig, so dass das
Auslösen der Folgeaktion eine Ausführung der ab der angegebenen
Startadresse im Speicher abgelegten Routine umfasst.
Wenn jeder Aktion jeweils eine Verknüpfungsreferenz zugeordnet
ist, die zur Referenzierung eines Condition-Blocks durch Angabe
der entsprechenden Adresse im Speicher geeignet ist, und die
Aktion eine Auswertung der Verknüpfungsreferenz umfasst, sind
zwei oder mehr Condition-Blöcke zur Formulierung komplexerer
Ausdrücke verknüpfbar. Damit sind Vergleichsoperationen der Art
"(A = = B) UND (C = = D)" darstellbar. Die erste Bedingung
"A = = B" wird durch einen ersten Condition-Block codiert. Die
zweite Bedingung "C = = D" wird durch einen zweiten Condition-
Block codiert. Die Verknüpfung der beiden Condition-Blöcke er
folgt über die Verknüpfungsreferenz derjenigen Aktion des ers
ten Condition-Blocks, die bei erfüllter Bedingung ausgelöst
wird.
Für die nachfolgende Beschreibung soll vorausgesetzt werden,
dass bei erfüllter Bedingung stets die erste Aktion und bei
nicht erfüllter Bedingung stets die zweite Aktion ausgelöst
wird.
Um eine logische UND-Verknüpfung zweier Operationen durch zwei
Condition-Blöcke auszudrücken, wird der ersten Verknüp
fungsreferenz, der Verknüpfungsreferenz der ersten Aktion des
ersten Condition-Blocks, die Adresse des zweiten Condition-
Blocks zugewiesen. Die zweite Verknüpfungsreferenz des ersten
Condition-Blocks und die zwei Verknüpfungsreferenzen des zwei
ten Condition-Blocks werden auf einen Wert, z. B. "0", gesetzt,
der eindeutig angibt, dass keine Verknüpfung besteht. Ist näm
lich die erste Bedingung nicht erfüllt, so kann der Ausdruck
insgesamt niemals wahr sein, so dass keine weitere Auswertung
erforderlich ist.
Um entsprechend eine logische ODER-Verknüpfung zweier Opera
tionen auszudrücken, wird der Verknüpfungsreferenz der zweiten
Aktion des ersten Condition-Blocks die Adresse des zweiten Con
dition-Blocks zugewiesen. Alle anderen Verknüpfungsreferenzen
sind auf den eindeutigen Wert zu setzen.
Vorteilhaft umfasst die erste oder die zweite Aktion eines je
den Condition-Blocks sowohl die Auslösung der Folgeaktion als
auch die Auswertung der Verknüpfungsreferenz. Dann ist bei kom
plexen Ausdrücken als Folgeaktion z. B. das Bilden von Zwi
schenergebnissen (Setzen/Löschen einer Speicherstelle)
oder die Reaktion (Interrupt, Trigger) auf bestimmte Zwischen
ergebnisse möglich.
Das Verfahren lässt sich vorteilhaft bei einer solchen Steuer
einrichtung zur Überwachung und/oder Diagnose des Datenverkehrs
einsetzen, die einen Busanschluss zum Anschluss an einen Bus
aufweist und zum Empfang eines Telegramms über den Bus geeignet
ist sowie beim Empfang eines Telegramms zumindest einen Daten
bereich des Telegramms in einen Empfangsspeicher des Speichers
kopiert, indem der Operand ein Element des Empfangsspeichers
ist oder eine Position des Empfangsspeichers bezeichnet. Damit
bezieht sich die Vergleichsoperation eines Condition-Blocks di
rekt oder indirekt auf ein Datum des empfangenen Telegramms.
Durch entsprechende Ausdrücke lässt sich damit z. B. überwachen,
ob eine bestimmte Datenfolge empfangen wurde oder nach dem wie
vielten Empfang einer bestimmten Datenfolge eine Speicherzelle
ihren Wert wechselt. Alle diese Ausdrücke sind zur Laufzeit der
Software der Steuereinrichtung formulier- und vorgebbar.
Voraussetzung zur Verwendung dieses Überwachungs- und Diagno
severfahrens ist damit lediglich, dass die Steuereinrichtung
über die Auswertungsroutine verfügt. Bei der Ausführung der
Auswertungsroutine erfolgt dann die Auswertung der Vergleichs
operation des als Parameter übergebenen Condition-Blocks und in
Abhängigkeit vom Ergebnis entweder die erste oder zweite Aktion
gemäß dem Inhalt des ersten oder zweiten Aktionsbereichs des
Condition-Blocks.
Gemäß einer weiteren vorteilhaften Ausgestaltung ist die Aus
wertungsroutine hardcodiert. Die Auswertungsroutine ist hard
codierbar, wenn sie derart formulierbar ist, dass jede Ver
gleichsoperation unabhängig vom jeweiligen Operand oder Ope
rator stets von ein und derselben Auswertungsroutine auswertbar
ist. Dabei ist trotz der Vielfalt der Möglichkeiten bei der
Formulierung der Vergleichsoperation die Auswertungsroutine
selbst unveränderlich. Die damit statische Auswertungsroutine
ist in Form eines anwenderspezifischen Schaltkreises, z. B. ei
nes ASICs oder eines FPGAs, hardcodiert realisierbar.
Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand
einer Zeichnung näher erläutert. Darin zeigen:
Fig. 1 über einen Bus kommunikativ miteinander ver
bundene Steuereinrichtungen,
Fig. 2a u. 2b einen Empfangsspeicherbereichs der Steuerein
richtung,
Fig. 3 einen Condition-Block, und
Fig. 4 verknüpfte Condition-Blöcke.
Fig. 1 zeigt eine erste und eine zweite Steuereinrichtung 1 so
wie weitere, teilweise verdeckte Steuereinrichtungen 1 mit je
weils einem Empfangsspeicher bzw. einem Empfangsspeicherbereich
2, der Teil eines Speichers 3 ist. Im Speicher 3 ist ferner ei
ne Auswertungsroutine 4 gespeichert. Die Steuereinrichtungen 1
sind in an sich bekannter Weise kommunikativ über einen Bus 5
miteinander verbunden. Zur Anbindung an den Bus 5 weist jede
Steuereinrichtung 1 eine Busanschaltung 6 auf. Ferner ist zum
Bedienen des Busses 5 (Senden, Empfangen) eine Verarbeitungs
einheit 7 vorgesehen, z. B. ein Mikroprozessor oder ein ASIC.
Durch die Verarbeitungseinheit 7 ist die Auswertungsroutine 4
ausführbar.
In dem Speicher 3 ist auch die Firmware/Software 8 gespeichert,
welche die Steuereinrichtung 1 in die Lage versetzt, unter
Steuerung der Verarbeitungseinheit 7 den Bus 5 zu bedienen und
am Datenverkehr über den Bus 5 teilzunehmen. Die Verarbeitungs
einheit 7 ist zur Ausführung der Firm-/Software 8 vorgesehen.
Verarbeitungseinheit 7, Speicher 3 und Busanschaltung 6 sind in
an sich bekannter Weise z. B. über einen nicht dargestellten in
ternen Bus miteinander verbunden. Die erste Steuereinrichtung 1
ist damit geeignet, mit der zweiten Steuereinrichtung 1 über
den Bus 5 (verdeutlicht durch den Doppelpfeil) Daten 10 auszu
tauschen.
Die Steuereinrichtung 1 ermöglicht z. B. den Anschluss eines
weiteren (nicht dargestellten) Gerätes ohne eigenen Busan
schluss an den Bus 5. Die Steuereinrichtung 1 ist aber z. B.
auch ein zu Automatisierungszwecken einsetzbares so genanntes
intelligentes Feldgerät, das eine Busanschaltung 6 enthält und
darüber hinaus z. B. Ein-/Ausgabefunktionalität oder Ver
arbeitungsfunktionalität (Zählen, Regeln, etc.) zur Steuerung
und/oder Überwachung eines externen technischen Prozesses bie
tet. Im folgenden wird sowohl die Steuereinrichtung 1 als auch
das elektrische Gerät mit integrierter Steuereinrichtung 1 als
Kommunikationsteilnehmer bezeichnet.
Der Datenaustausch zwischen zumindest zwei Kommunikations
teilnehmern 1 erfolgt mittels so genannter Telegramme 10, wobei
einer der Kommunikationsteilnehmer 1 Daten sendet und mindes
tens ein anderer Kommunikationsteilnehmer 1 die gesendeten Da
ten empfängt. Das Telegramm 10 ist ein strukturiertes Datenpa
ket mit einer Empfängerkennung 11 und einer Senderkennung 12,
das gemäß einem für den Bus 5 definierten Protokoll zwischen
mindestens zwei Kommunikationsteilnehmern 1 ausgetauscht wird.
Mittels der Empfängerkennung 11 wird derjenige Kommunikations
teilnehmer 1 angegeben, für den das Telegramm 10 bestimmt ist.
Auf diese Weise ist das Versenden eines Telegramms 10 an einen
bestimmten Kommunikationsteilnehmer 1, aber auch - mit einer
entsprechenden Empfängerkennung 11 - an alle Kommunikations
teilnehmer 1 möglich. Mit der Senderkennung 12 wird derjenige
Kommunikationsteilnehmer 1 angegeben, der das Telegramm 10 ab
gesendet hat. Zusätzlich zu der Empfänger- und der Senderkennung
11 bzw. 12 umfasst das Telegramm 10 auch noch die eigent
lichen Nutzdaten 13.
Zum Empfang eines Telegramms 10 beobachtet jeder Kommunikati
onsteilnehmer 1 unter Steuerung der Verarbeitungseinheit 7 den
Datenverkehr auf dem Bus 5. Wird dabei ein Telegramm 10 mit ei
ner Empfängerkennung 11 erkannt, die den jeweiligen Kommunika
tionsteilnehmer 1 als Empfänger bestimmt, so wird das Telegramm
10, gegebenenfalls auch nur dessen Nutzdaten 13, in den Emp
fangsspeicher 2 kopiert. Es gibt auch Kommunikationsteilnehmer
1, die unabhängig von der jeweiligen Empfängerkennung 11 sämt
liche Telegramme 10 in den Empfangsspeicher 2 kopieren. Die
Auswertung des Telegramms 10 bzw. der Nutzdaten 13 des Tele
gramms 10 erfolgt ausgehend von dem Inhalt des Empfangs
speichers 2 des Kommunikationsteilnehmers 1.
Fig. 2a zeigt eine erste Darstellung des Empfangsspeichers 2,
der eine Anzahl von Speicherzellen 21 umfasst. Jede der Spei
cherzellen 21 kann ein Datum aufnehmen. Die Begriffe "Datum" -
Inhalt einer Speicherzelle - und "Speicherzelle" werden im fol
genden synonym gebraucht. Jede Speicherzelle 21 hat eine ein
deutige Adresse, anhand derer die Speicherzelle bzw. deren In
halt referenzierbar ist. Der Inhalt der ersten Speicherzelle 21
(Position/Adresse 0) ist z. B. "FF", der Inhalt der siebzehnten
Speicherzelle (Position/Adresse 16 = 10Hex) ist "AF". Damit
lässt sich der Inhalt des Empfangsspeichers 2 durch die Angabe
der Adresse der jeweiligen Speicherzelle 21 wie folgt referen
zieren: Der Inhalt des Empfangsspeichers 2 an der Adresse 00Hex
ist "FF", an der Adresse 01Hex "FA", an der Adresse 10Hex "AF",
an der Adresse 11Hex "3E", usw. Dabei bezieht sich diese Refe
renzierung auf Speicherzellen 21 der Größe eines Bytes. Zwei
oder mehr Bytes lassen sich bekanntlich zu einem Speicherwort
(2 Byte), zu einem Speicherlangwort (4 Byte) etc. zusammenfas
sen. Der Inhalt des Speicherwortes an der Adresse 00Hex des Empfangsspeicherbereichs
2 ist damit "FF FA" und der Inhalt des
Speicherwortes an der Adresse 10Hex entsprechend "AF 3E".
Die Übereinstimmung des Inhalts einer Speicherzelle 21 mit ei
nem Vergleichswert stellt eine Bedingung dar, deren Erfülltsein
- bzw. entsprechend deren Nicht-Erfülltsein - ein Anwender er
mitteln möchte.
Fig. 2b zeigt eine zweite Darstellung des Empfangsspeichers 2.
Gemäß dieser Darstellung sind die ersten zwei Speicherzellen 21
(zwei Speicherzellen = 2 Byte = 1 Worte) zur Ablage der Empfän
gerkennung 11 eines empfangenen und in den Empfangsspeicher
bereich 2 kopierten Telegramms 10 vorgesehen. Weitere zwei
Speicherzellen 21 sind zur Ablage der Senderkennung 12 des Te
legramms 10 und die darauf folgenden Speicherzellen 21 zur Ab
lage der Nutzdaten 13 des Telegramms 10 vorgesehen.
Damit lässt sich jetzt eine Bedingung formulieren, mit der
überprüft werden kann, ob von einem bestimmten Kommunikati
onsteilnehmer 1 ein Telegramm 10 empfangen wurde, bei dem ein
bestimmtes Datum von einem vorbestimmten, z. B. einem erwarteten
Wert, abweicht.
Natürlichsprachlich wäre eine solche Bedingung wie folgt aus
zudrücken:
Die beispielhaft verwendete Bedingung umfasst zwei separate O
perationen: Mit der ersten Operation (von WENN bis UND) wird
ermittelt, ob das Telegramm 10 von einem bestimmten Sender
(Kommunikationsteilnehmer) 1 stammt. Mit der zweiten Operation
(von UND bis DANN) wird ermittelt, ob eine bestimmte Stelle
(Position/Adresse) der übermittelten Nutzdaten 13 von einem
vorbestimmten Wert abweicht. Bei beiden Operationen handelt es
sich um "binäre Operationen", die mit einem so genannten Condi
tion-Block 30 dargestellt werden.
Fig. 3 zeigt einen solchen Condition-Block 30. Der Condition-
Block 30 umfasst einen Operationsbereich 31 zur Aufnahme einer
vorgebbaren Operation 31 und einen ersten und zweiten Akti
onsbereich 32, 33 zur Aufnahme einer vorgebbaren ersten bzw.
zweiten Aktion 32, 33. Nachdem in dem Operationsbereich 31 eine
Operation 31 und in den Aktionsbereich 32, 33 Aktionen 32, 33
gespeichert sind, werden die Begriffe Operation 31 und Operati
onsbereich 31 bzw. Aktion 32, 33 und Aktionsbereich 32, 33 syn
onym verwendet.
Der Operationsbereich 31 umfasst Positionen 34 bis 37 zum Auf
nehmen einer Adresse 34, eines Maskierungswertes 35, eines Ver
gleichsoperators 36 und eines Vergleichswertes 37. Nachfolgend
werden die Position und deren Inhalt, also z. B. die Position 34
zur Aufnahme einer Adresse und die Adresse 34 selbst, wiederum
synonym bezeichnet.
Nachdem die mit einem Condition-Block 30 formulierte Operation
31 als Operator 36 einen Vergleichsoperator 36 umfasst, handelt
es sich entsprechend bei der Operation 31 um eine Vergleichs
operation 31. Eine Vergleichsoperation 31 ist eine Operation,
die stets eines von zwei möglichen Ergebnissen liefert ([er
füllt, nicht erfüllt]; [True, False]; [Ja, Nein]; etc.). Die
Vergleichsoperation 31 stellt damit eine Bedingung dar, die
entweder "wahr" oder "falsch", "erfüllt" oder "nicht erfüllt",
etc. ist. Entsprechend werden auch die Begriffe
Operation und Bedingung synonym verwendet.
Zur Auswertung des Ergebnisses der Vergleichsoperation 31 ist
der erste und der zweite Aktionsbereich 32, 33 vorgesehen. Da
bei ist der erste Aktionsbereich 32 mit dem ersten der zwei
möglichen Ergebnisse der Vergleichsoperation 31 und der zweite
Aktionsbereich 33 mit dem zweiten der zwei möglichen Ergebnisse
der Vergleichsoperation 31 assoziiert. Jeder Aktionsbereich 32,
33 umfasst einen Folgeaktionsbereich 38, 38' und eine Verknüp
fungsreferenz 39, 39', wobei wiederum der Folgeaktionsbereich
38, 38' und eine darin abgelegte Folgeaktion 38, 38' synonym be
zeichnet werden.
Im Falle eines ersten Ergebnisses - z. B. "erfüllt" - wird die
im Folgeaktionsbereich 38 des ersten Aktionsbereichs 32 ge
speicherte erste Folgeaktion 38 ausgeführt. Entsprechend wird
im Falle eines zweiten Ergebnisses - z. B. "nicht erfüllt" - die
im Folgeaktionsbereich 38' des zweiten Aktionsbereichs 33 ge
speicherte zweite Folgeaktion 38' ausgeführt. Im Folgeakti
onsbereich 38, 38' ist entweder die jeweilige Folgeaktion 38,
38' selbst oder eine Referenz zu deren Speicherort (deren
Startadresse) gespeichert.
Als Folgeaktion 38, 38' kommt z. B. das Inkrementieren oder De
krementieren eines Zählers in Betracht. Wenn als erste Folgeaktion
38 das Inkrementieren eines ersten Zählers und als zwei
te Folgeaktion 38' das Inkrementieren eines zweiten Zählers
vorgesehen ist, kann durch Auswertung der jeweiligen Zähler
stände ermittelt werden, wie oft eine Bedingung erfüllt oder
nicht erfüllt war. Ferner kommt als Folgeaktion 38, 38' z. B. das
Auslösen eines Interrupts in Betracht, so dass schnellstmöglich
auf den Umstand, dass eine Bedingung erfüllt oder nicht erfüllt
ist, reagiert werden kann. Schließlich kommt als Folgereaktion
38, 38' z. B. auch in Betracht, ein Datum des Empfangsspeichers
2 im Falle einer erfüllten Bedingung auf einen ersten Wert und
im Falle einer nicht erfüllten Bedingung auf einen zweiten Wert
zu setzen, oder ein erstes Datum des Empfangsspeichers 2 im
Falle einer erfüllten Bedingung auf einen vorgegebenen Wert und
im Falle einer nicht erfüllten Bedingung ein zweites Datum auf
denselben oder einen anderen Wert zu setzen. Dies ermöglicht
ein späteres Auswerten der Ergebnisse der Bedingung durch die
jenige Software/Applikation, die die eigentliche Auswertung des
Empfangsspeichers 2 vornimmt.
Jeder Aktionsbereich 32, 33 umfasst jeweils eine Verknüpfungs
referenz 39, 39'. Die Verknüpfungsreferenz 39, 39' dient zur Ver
knüpfung eines Condition-Blocks 30 mit einem weiteren Con
dition-Block 30. Die Verknüpfungsreferenz 39, 39' ist z. B. die
Adresse des weiteren Condition-Blocks oder die Indexnummer des
weiteren Condition-Blocks 30, wenn eine bestimmte, maximale An
zahl von Condition-Blöcken 30 vorgesehen ist und damit jeder
Condition-Block über eine eindeutige Indexnummer referenzierbar
ist. Die Verknüpfungsreferenz 39, 39' stellt quasi einen Ausgang
des Condition-Blocks 30 dar.
Folgeaktion 38, 38' und Verknüpfungsreferenz 39, 39' sind unab
hängig voneinander verwendbar. An die Auswertung einer Bedin
gung 31 kann sich also die Ausführung einer Folgeaktion 38, 38'
und - über die Verknüpfungsreferenz 39, 39' - die Verarbeitung
eines weiteren Condition-Blocks 30 anschließen. Alternativ ist
es auch möglich, dass eine Folgeaktion 38, 38' nach der Auswer
tung der aktuellen Bedingung 31 unterbleibt und direkt mit der
Verarbeitung eines mittels der Verknüpfungsreferenz 39, 39' spe
zifizierten weiteren Condition-Blocks 30 fortgesetzt wird.
Schließlich ist es auch möglich, dass keine Verknüpfung mit ei
nem weiteren Condition-Block 30 vorgesehen ist und nur eine
Folgeaktion 38, 38' ausgeführt wird.
Wenn die Verknüpfungsreferenz 39, 39' nicht belegt ist, bedeutet
dies, dass keine Verknüpfung besteht und dem aktuellen Condi
tion-Block 30 kein weiterer Condition-Block 30 folgt. Anstelle
einer nicht belegten Verknüpfungsreferenz 39, 39' kann auch ein
eindeutiger, vorgegebener Wert - z. B. "0" - für die Verknüp
fungsreferenz 39, 39' bedeuten, dass dem aktuellen Condition-
Block 30 kein weiterer Condition-Block 30 folgt.
Die Verknüpfung mehrerer Condition-Blöcke 30 erlaubt die For
mulierung komplexer Ausdrücke, die aus einzelnen Operationen
oder Bedingungen zusammengesetzt sind, wobei jede einzelne Be
dingung durch einen separaten Condition-Block 30 codiert ist.
Zur Abgrenzung zwischen den Begriffen Bedingung/Operation und
Ausdruck wird der Begriff Ausdruck im vorliegenden Text im Sin
ne zusammengesetzter Operationen/Bedingungen handelt. Ent
sprechend umfasst ein Ausdruck eine oder mehrere Operationen/
Bedingungen, da jeder Condition-Block 30 mit dessen Ope
rationsteil 31 genau eine Operation/Bedingung codiert. Bei ei
nem Ausdruck, zu dessen Codierung ein einziger Condition-Block
30 ausreicht, entspricht der Ausdruck der einzigen Bedingung.
Fig. 4 zeigt zwei verknüpfte Condition-Blöcke 30, anhand derer
die Formulierung eines Ausdrucks zur Überprüfung, ob ein be
stimmter Kommunikationsteilnehmer 1 ein bestimmtes Datum gesendet
hat, mit Hilfe der Condition-Blöcke 30 verdeutlicht
wird. Der Ausdruck umfasst zwei Operationen, wobei sich die
erste Operation auf den bestimmten Kommunikationsteilnehmer 1
und die zweite Operation auf das bestimmte Datum bezieht. Ent
sprechend werden zur Formulierung des Ausdrucks zwei Condition-
Blöcke 30 benötigt, wobei der erste (in Fig. 4 der obere) Condi
tion-Block 30 zur Codierung der sich auf den Kommunikations
teilnehmer 1 beziehenden Operation und der zweite (in Fig. 4 der
untere) Condition-Block 30 zur Codierung der sich auf das Datum
beziehenden Operation verwendet wird.
Zunächst wird anhand eines an die Programmiersprache PASCAL an
gelehnten Pseudocodes die Auswertung eines durch einen oder
mehrere Condition-Blöcke 30 formulierten Ausdrucks erläutert,
wobei die Bezugnahme auf einzelne Anweisungen/Schritte anhand
der links angegebenen Zeilennummern erfolgt.
In den Zeilen 100 bis 150 ist ein möglicher Algorithmus zur Re
alisierung eines Condition-Blocks 30 angegeben. In Zeile 100
wird mit FUNCTION ein Unterprogramm eingeleitet, das aus Grün
den der Lesbarkeit als "ConditionBlock" bezeichnet ist und mit
den Parametern "adresse", "maske", "operator" und "operand2"
versorgt wird. Das Unterprogramm liefert entsprechend des in
ternen Algorithmus' einen Wert des Typs "boolean" ([Wahr,
Falsch]; [True, False]; etc.) zurück. Die Übergabe der Parame
ter sowie insbesondere welche Daten/Werte als Parameter über
mittelt werden, wird weiter unten im Zusammenhang mit dem Auf
ruf des Unterprogramms erläutert.
Die Art der durch den Condition-Block 30 auszuführenden Ver
gleichsoperation wird dem Unterprogramm mittels des Parameters
"operator" vorgegeben. Der zweite Operand der Vergleichs
operation wird mittels des Parameters "operand2" vorgegeben.
Der erste Operand der Vergleichsoperation wird innerhalb des
Unterprogramms bestimmt. Dazu wird in Zeile 101 die lokale Va
riable "operand1" deklariert. Dieser wird in Zeile 103 der In
halt des Empfangsspeichers 2 an der durch den Parameter "adres
se" vorgegebenen Adresse/Position zugewiesen. Anschließend wird
der Wert dieser Variablen in Zeile 104 mit dem Wert des Parameters
"maske" einer logischen UND-Verknüpfung unterworfen (der
erste Operand wird "maskiert"). Damit steht jetzt neben dem
zweiten Operand, der als Parameter "operand2" übergeben worden
war, auch der erste Operand in der Variablen "operand1" zur
weiteren Verwendung zur Verfügung.
In Zeile 105 wird entsprechend dem als Parameter "operator" ü
bergebenen Operator eine Fallunterscheidung eingeleitet. Dabei
sei eine numerische Zuordnung in der Weise getroffen, dass ein
Wert "01" für den Parameter "operator" eine Vergleichsoperation
auf Identität, ein Wert "02" für den Parameter eine Vergleichs
operation auf Ungleichheit usw. codiert. Bezeichnet also der
übergebene Operator eine Operation zum Vergleich auf Identität
(" = = "), so wird zur Zeile 106 verzweigt. Bezeichnet der überge
bene Operator eine Operation zum Vergleich auf Ungleichheit
("! ="), so wird zur Zeile 110 verzweigt, usw.
Für die weitere Erläuterung wird angenommen, dass mit dem Pa
rameter "operator" ein Operator zum Vergleich auf Ungleichheit
vorgegeben wurde und entsprechend zur Zeile 110 verzweigt wur
de. In der Zeile 110 wird dieser Operator innerhalb der IF-
Anweisung nach den Vorschriften der Programmiersprache als "< <"
(ungleich) ausgedrückt. Wenn der Wert der Variablen "operand1"
ungleich dem Wert des Parameters "operand2" ist, wird zur Zeile
111, sonst zur Zeile 113 verzweigt. Bei einer Verzweigung zur
Zeile 111 wird der Rückgabewert des Unterprogramms auf den Wert
"TRUE" (die beiden Operanden waren bei zu überprüfender Un
gleichheit tatsächlich ungleich) und bei einer Verzweigung zur
Zeile 113 auf den Wert "FALSE" (die beiden Operanden waren bei
zu überprüfender Ungleichheit tatsächlich gleich) gesetzt.
Ist die letzte Zeile einer Alternative der in Zeile 105 ein
geleiteten Fallunterscheidung erreicht, wird zum Ende der Fall
unterscheidung in Zeile 149 gesprungen und das Unterprogramm an
dieser Stelle fortgesetzt. Das Unterprogramm endet dann in Zei
le 150 und der zuvor (z. B. in Zeile 111 bzw. Zeile 113) ermit
telte Rückgabewert des Unterprogramms wird zurückgegeben.
Wie anhand des Pseudo-Codes erkennbar ist, erfolgt die Aus
wertung anderer Operatoren, wie z. B. Gleichheit (" = = "; Zeilen
106 bis 109) oder Kleiner ("<"; Zeilen 114 bis 117), analog zu
der beschriebenen Auswertung. Daher sind im Pseudo-Code die an
sonsten erforderlichen weiteren Alternativen der Fallunter
scheidung auch nicht mehr explizit aufgeführt.
Anstelle der Maskierung mittels der UND-Verknüpfung in Zeile
104 kann auch eine andere Verknüpfung, z. B. OR oder XOR, vor
gesehen werden. Ferner kann vorgesehen sein, dass der Verknüp
fungsoperator für die Maskierung in gleicher Weise als Para
meter übergeben wird, wie oben für den Parameter "operator"
dargestellt. Anstelle der fest vorgegebenen Verknüpfung, so wie
sie jetzt in Zeile 104 angegeben ist, wäre dann eine zusätz
liche Fallunterscheidung in der Form der Zeilen 105 bis 149
einzufügen.
Anhand der nachfolgenden Zeilen 200 bis 214 wird die Verar
beitung mehrerer, verbundener Condition-Blöcke 30 erläutert.
In Zeile 200 wird dabei zunächst geprüft, ob eine Verarbeitung
oder Auswertung eines Condition-Blocks 30 oder einer Folge von
Condition-Blöcken 30 überhaupt vorgesehen oder momentan deakti
viert ist. Dies erfolgt durch Abfrage des Status des flags
"Prüfung aktiv", wobei nur bei gesetztem flag die Bedingung er
füllt ist und die Bearbeitung in Zeile 201 fortgesetzt wird.
In Zeile 201 wird der Variablen "Zeiger auf Condition-Block"
diejenige Adresse zugewiesen, an der der erste Condition-Block
30 im Speicher 3 abgelegt ist. Diese Variable wird in Zeile 202
verwendet, um eine Bedingung für eine Wiederholungsanweisung
(WHILE-Schleife) zur formulieren, die solange erfüllt ist, wie
Condition-Blöcke 30 auszuwerten sind. Wenn im Pseudocode Beg
riffe vorkommen, wie z. B. "Condition-Block", die auch in der
übrigen Beschreibung verwendet werden, werden diese Begriffe
kursiv gedruckt sowie zur Erleichterung der Zuordenbarkeit das
entsprechende Bezugszeichen angegeben.
Wenn die Auswertung eines oder mehrerer Condition-Blöcke vor
gesehen ist, ist zumindest ein Condition-Block 30 definiert, so
dass die Bedingung erfüllt ist und die Bearbeitung in Zeile 203
fortgesetzt wird. Sollte bei aktivierter Auswertung kein Condi
tion-Block 30 definiert sein, stellt die Abfrage der Zeile 202
eine Sicherheitsüberprüfung dar. Diese bewirkt, dass die Verar
beitung in Zeile 213 fortgesetzt wird und mithin die Auswertung
komplett übersprungen wird.
Ist zumindest ein erster Condition-Block 30 definiert, ist die
Bedingung in Zeile 202 erfüllt und es wird die in Zeile 203
formulierte Fallunterscheidung eingeleitet. Diese Fallunter
scheidung ist abhängig vom Rückgabewert des Unterprogramms
"ConditionBlock"; vgl. Zeilen 100 bis 150 des ersten Pseudocode
Fragments. Dort war beschrieben, dass das Unterprogramm "Condi
tionBlock" je nachdem, ob die mit dem jeweiligen Condition-
Block 30 formulierte Vergleichsoperation 31 erfüllt oder nicht
erfüllt war, entweder den Rückgabewert "TRUE" oder den Rückga
bewert "FALSE" zurückliefert. Die beiden einzig möglichen Al
ternativen der Fallunterscheidung lauten damit "TRUE" und
"FALSE". Entsprechend wird die Verarbeitung in Zeile 204 fort
gesetzt, wenn die Vergleichsoperation 31 des aktuellen Condi
tion-Blocks 30 erfüllt ist, oder in Zeile 208, wenn die Ver
gleichsoperation 31 nicht erfüllt ist.
Bei erfüllter Vergleichsoperation 31 wird gemäß Zeile 205 die
im Aktionsbereich 32 festgelegte erste Folgeaktion 38 ausge
führt. Anschließend wird in Zeile 206 der Variablen "Zeiger auf
Condition-Block" der Wert der ersten Verknüpfungsreferenz 39
des aktuellen Condition-Blocks 30 zugewiesen. Damit ist bei
mehreren verknüpften Condition-Blöcken 30 die Weiterschaltung
zum nachfolgenden Condition-Block 30 eingeleitet. Folgt dem ak
tuellen Condition-Block 30 kein weiterer Condition-Block nach,
ist dies durch einen entsprechenden Wert der Verknüpfungsrefe
renz 39, z. B. "0", angegeben. Folgt dem aktuellen Condition-
Block 30 ein Condition-Block nach, so ist dessen Adresse als
Verknüpfungsreferenz 39 hinterlegt. Nach Bearbeitung der Zeile
206 hat die Variable "Zeiger auf Condition-Block" also entweder
den Wert Null oder einen von Null verschiedenen Wert. Mit die
ser Voraussetzung wird die Verarbeitung nach Passieren der Zei
len 212, 213 in Zeile 202 fortgesetzt. Ist jetzt der Wert der
Variablen "Zeiger auf Condition-Block" gleich Null, so ist die
Bedingung der Zeile 202 nicht erfüllt und die Auswertung endet.
Ist der Wert der Variablen "Zeiger auf Condition-Block" dagegen
von Null verschieden, so wird der dadurch spezifizierte nächste
Condition-Block 30 ausgewertet.
Analog zum Fall der erfüllten Vergleichsoperation 31 wird bei
nicht erfüllter Vergleichsoperation 31 zunächst die Verarbei
tung in Zeile 209 fortgesetzt und dort die Ausführung der zwei
ten Folgeaktion 38' bewirkt. Im Anschluss daran wird in Zeile
210 der Variablen "Zeiger auf Condition-Block" der Wert der
zweiten Verknüpfungsreferenz 39' zugewiesen.
Im Condition-Block 30 bzw. in dessen Aktionsbereich 32 ist ent
weder die Folgeaktion 38, 38' selbst oder aber deren Start
adresse im Speicher 3 hinterlegt. Eine Folgeaktion 38, 38', die
gegebenenfalls noch im Condition-Block 30 hinterlegbar ist,
kann sich z. B. auf das Inkrementieren oder das Dekrementieren
eines Zählers oder das Auslösen eines Interrupts beziehen. Bei
einer demgegenüber komplexeren Folgeaktion 38, 38' wird im Con
dition-Block 30 selbst aus Effizienzgründen lediglich deren
Startadresse hinterlegt, über die die Folgeaktion 38, 38' di
rekt aufrufbar ist. Der allgemeine Fall ist jedoch einerseits
die Hinterlegung der jeweiligen Startadresse für jede mögliche
Folgeaktion 38, 38' oder andererseits die Hinterlegung einer
Indexnummer zur Referenzierung einer vorgegebenen Folgeaktion
38, 38' (z. B.: 1: Inkrementierte Zähler 1, 2: Dekrementierte
Zähler 1, u. s. w.). Dann ist nämlich für die softwaremäßige Rea
lisierung des Condition-Blocks 30 ein statischer Datentyp ver
wendbar.
Beim Aufruf des Unterprogramms "ConditionBlock" in Zeile 203
werden als Parameter des Unterprogramms die Adresse 34, der
Maskierungswert 35, der Vergleichsoperator 36 und der Ver
gleichswert 37 übergeben. Diese Parameter sind zusammen im Ope
rationsbereich 31 des jeweiligen Condition-Blocks 30 ge
speichert. Aus Gründen der Übersichtlichkeit wurde im Pseudo
code die Verwendung der Variablen "Zeiger auf Condition-Block"
nicht vollständig dargestellt. Damit z. B. als Parameter des Un
terprogramms "ConditionBlock" stets die Werte des Operationsbe
reichs 31 des momentan ausgewerteten Conditions-Blocks 30 über
geben werden, müsste der erste Parameter in Zeile 203 vollstän
dig - angelehnt an die Notation der Programmiersprache PASCAL -
etwa lauten: "Zeiger auf Condition-Block^.Adresse". Entspre
chendes gilt für die weiteren Parameter. In PASCAL ist dann
auch eine Notation in der Form "WITH Zeiger auf Condition-
Block^ DO CASE ConditionBlock(Adresse 34, . . .) OF" zugelas
sen, was wieder die Kurzfassung der Parameterliste ermöglicht.
Dies gilt in entsprechender Weise auch für die Anweisungen bzw.
Operationen der Zeilen 205, 206 und 209, 210.
Davon ausgehend wird nachfolgend die Auswertung der beiden in
Fig. 4 gezeigten Condition-Blöcke 30 beschrieben. Dabei werden
zur Verbindung mit dem Pseudocode dessen jeweils relevante Zei
len in eckigen Klammen - [, ] - angegeben. Zunächst [Zeile 200]
wird vorausgesetzt, dass die Auswertung der Condition-Blöcke
aktiviert ist. Dann wird der erste Condition-Block 30 - in
Fig. 4 der obere - ausgewählt [Zeile 201].
Beim Aufruf des Unterprogramms "ConditionBlock" [Zeile 203]
werden als Parameter für die Adresse 34 der Wert "4", für den
Maskierungswert 35 der Wert "FF 00", für den Vergleichsoperator
36 der Wert "01" und für den Vergleichswert 37 der Wert "3D 00"
übergeben. Mit diesen Werten erfolgt die Verarbeitung des Un
terprogramms "ConditionBlock" [Zeilen 100-150]. Dabei wird zu
nächst [Zeile 103] der Variablen "operand1" der Inhalt des Emp
fangsspeichers 2 an der Adresse 4 zugewiesen. Aus Fig. 2a ist
ersichtlich, dass der Inhalt des Empfangsspeichers 2 an der Ad
resse 4 als Wort (2 Byte) ausgelesen "3D F4" ist. Der Wert der
Variablen "operand1" lautet damit entsprechend "3D F4". Dieser
Wert wird jetzt mit dem Wert des Parameters "maske" einer logi
schen UND-Verknüpfung unterworfen [Zeile 104]. Der Wert des Pa
rameters "maske" lautete "FF 00", so dass die Variable "ope
rand1" nach der Maskierung [Zeile 104] den Wert "3D 00" hat.
In Abhängigkeit vom Wert des Parameters "operator" erfolgt dann
eine Fallunterscheidung [Zeile 105] zur Auswertung der jeweils
codierten Vergleichsoperation. Hier war als Parameter der Wert
"01" übergeben, der nach der vorgenommenen Zuordnung eine Ver
gleichsoperation auf Identität codieren soll. Die Vergleichs
operation lautet dann mit der Variablen "operand1" und dem Pa
rameter "operand2" ausgeschrieben: "(3D 00 = 3D 00)" [Zeile 106].
Diese Operation ist wahr, so dass der Rückgabewert des Unter
programms entsprechend gesetzt wird [Zeile 107].
Mit dem Rückgabewert "TRUE" des Unterprogramms erfolgt jetzt
die Verzweigung zur Alternative der erfüllten Vergleichsope
ration [Zeilen 204 bis 207]. Hier ist zunächst die Ausführung
der ersten Folgeaktion 38 vorgesehen [Zeile 205]. Als Adresse
der ersten Folgeaktion 38 ist jedoch der Wert "00 00" vorge
geben, was gleichbedeutend mit dem Umstand ist, dass keine Fol
geaktion vorgesehen ist. Dann wird der Zeiger auf den Con
dition-Block weiter geschaltet, indem die entsprechende Variable
mit dem Wert der ersten Verknüpfungsreferenz 39 geladen
wird [Zeile 206]. Die erste Verknüpfungsreferenz hat den Wert
"00 A0" und es sei vorausgesetzt, dass der zweite Condition-
Block 30 - in Fig. 4 der untere - an der Position "00 A0" im
Speicher 3 abgelegt ist, so dass über die erste Verknüp
fungsreferenz 39 die gewünschte Verknüpfung hergestellt ist.
Die Auswertung des ersten Condition-Blocks 30 ist damit abge
schlossen und entsprechend der erste Durchlauf der Auswer
tungsschleife [Zeilen 202 bis 213] beendet. Mit dem neuen Wert
"00 0A" der Variablen "Zeiger auf Condition-Block" wird ge
prüft, ob die Bedingung für den Eintritt in die Schleife [Zeile
202] noch erfüllt ist. Der Wert "00 0A" ist ungleich "0", also
erfolgt ein erneuter Aufruf des Unterprogramms "ConditionBlock"
mit den in dem jetzt aktuellen (zweiten, unteren) Condition
Block 30 hinterlegten Werten [Zeile 203].
Der Wert für den Parameter Adresse 34 lautet "8", der für den
Maskierungswert 35 "FF FF", der für den Vergleichsoperator 36
"02" und der für den Vergleichswert 37 "AB CD". Mit diesen Wer
ten erfolgt die erneute Verarbeitung des Unterprogramms "Condi
tionBlock" [Zeilen 100-150]. Der Inhalt des Empfangsspeichers 2
an der Adresse "8" lautet "B2 16" (vgl. Fig. 2a). Dieser Wert
wird der Variablen "operand1" zugewiesen [Zeile 103] und mit
"FF FF" UND-verknüpft [Zeile 104], so dass der Wert der Variab
len unverändert bleibt. Durch die Fallunterscheidung wird an
hand des Wertes "02" des Parameters "operator" die entsprechen
de Vergleichsoperation selektiert. Diese lautet dann mit der
Variablen "operand1" und dem Parameter "operand2" ausgeschrie
ben "(B2 16< <AB CD)" [Zeile 110]. Diese Operation ist wahr, so
dass der Rückgabewert des Unterprogramms entsprechend gesetzt
wird [Zeile 111].
Mit dem Rückgabewert "TRUE" des Unterprogramms erfolgt jetzt
erneut die Verzweigung zur Alternative der erfüllten Ver
gleichsoperation [Zeilen 204 bis 207]. Hier ist zunächst wieder
die Ausführung der ersten Folgeaktion 38 vorgesehen [Zeile
205]. Als Adresse der ersten Folgeaktion 38 ist der Wert
"0C 00" vorgegeben. Die erste Folgeaktion 38 wird ausgeführt,
indem ein an der Adresse "0C 00" des Speichers 3 beginnendes
Unterprogramm ausgeführt wird. Dann wird der Zeiger auf den
Condition-Block weiter geschaltet, indem die entsprechende Va
riable mit dem Wert der ersten Verknüpfungsreferenz 39 geladen
wird [Zeile 206]. Die erste Verknüpfungsreferenz hat den Wert
"00 00", was gleichbedeutend mit dem Umstand ist, dass kein
weiterer Condition-Block folgt.
Die Auswertung des zweiten Condition-Blocks 30 ist damit
gleichfalls abgeschlossen und entsprechend der zweite Durchlauf
der Auswertungsschleife [Zeilen 202 bis 213] beendet. Mit dem
neuen Wert "00 00" der Variablen "Zeiger auf Condition-Block"
wird geprüft, ob die Bedingung für den Eintritt in die Schleife
[Zeile 202] immer noch erfüllt ist. Der Wert "00 00" ist dies
mal gleich "0", so dass der Algorithmus für die Auswertung der
in Fig. 4 angegebenen Condition-Blöcke 30 beendet ist.
Die Auswertung der beiden in Fig. 4 gezeigten Condition-Blöcke
30 entspricht damit der Verarbeitung des weiter oben exempla
risch formulierten Ausdrucks zur Überprüfung, ob von einem be
stimmten Sender 1 innerhalb der übermittelten Nutzdaten 13 ein
bestimmtes Datum von einem vorbestimmten, z. B. erwarteten Wert
abweicht.
Mit dem ersten der beiden verbundenen Condition-Blöcke 30 wird
die Erkennung des bestimmten Senders 1 gewährleistet, denn die
in den Empfangsspeicher 2 transferierten Daten werden ab der
Adresse "4" des Empfangsspeichers 2, dem Speicherplatz der Senderkennung
12, untersucht. Mit dem nachfolgenden Condition-
Block 30 erfolgt dann die Untersuchung der Nutzdaten 13, denn
der Empfangsspeicher wird an der Adresse "8", der ersten Posi
tion der Nutzdaten 13, untersucht.
Die beiden beschriebenen Pseudocode Fragmente stellen ein Bei
spiel für eine Formulierung der Auswertungsroutine 4 dar. Damit
ist gezeigt, dass die Auswertungsroutine 4 bei der gewählten
speziellen Formulierung trotz der Möglichkeit einer Auswertung
unterschiedlichster Operationen unveränderlich ist. Dies ermög
licht die Realisierung der Auswertungsroutine 4 z. B. mittels
eines ASICs oder eines FPGAs, so dass dann die Auswertungsrou
tine 4 hardcodiert ist. Die Hardcodierung der Auswertungsrouti
ne 4 bewirkt eine beschleunigte Abarbeitung, so dass die Aus
wertung der jeweiligen Operationen/Bedingungen in Echtzeit er
folgen kann.
Das Verfahren zum Betrieb einer programmierbaren Steuereinrich
tung zeichnet sich somit dadurch aus, dass zur Laufzeit des
Programms 8 der Steuereinrichtung 1 Vergleichsoperationen 31
formulierbar sind, die durch eine Auswertungsroutine 4 auswert
bar sind. In Abhängigkeit vom Ergebnis der jeweiligen Ver
gleichsoperation 31 werden Aktionen 32, 33 ausgelöst, die eben
falls zur Laufzeit des Programms 8 formulierbar sind, so dass
eine Diagnose und/oder Überwachung der Steuereinrichtung 1 er
folgen kann, ohne deren Betrieb zu unterbrechen.
Claims (12)
1. Verfahren zum Betrieb einer programmierbaren Steuereinrich
tung (1), das einen Speicher (3) und eine Verarbeitungseinheit
(7) aufweist,
wobei im Speicher (3) eine durch die Verarbeitungsein heit (7) ausführbare Auswertungsroutine (4) sowie un abhängig davon ein Operand (34), ein Vergleichsoperator (36) und ein Vergleichswert (37) abgelegt sind,
wobei Operand (34), Vergleichswert (37) und Vergleichs operator (36) eine binäre Vergleichsoperation (31) bil den, welche entweder ein erstes oder ein zweites Ergeb nis liefert und mit denen eine erste und zweite Aktion (32, 33) assoziiert ist, und
wobei bei Ausführung der Auswertungsroutine (4) eine Auswertung der binären Vergleichsoperation (31) erfolgt und in Abhängigkeit vom Ergebnis der binären Vergleichs operation (31) entweder die erste oder die zweite Aktion (32, 33) erfolgt.
wobei im Speicher (3) eine durch die Verarbeitungsein heit (7) ausführbare Auswertungsroutine (4) sowie un abhängig davon ein Operand (34), ein Vergleichsoperator (36) und ein Vergleichswert (37) abgelegt sind,
wobei Operand (34), Vergleichswert (37) und Vergleichs operator (36) eine binäre Vergleichsoperation (31) bil den, welche entweder ein erstes oder ein zweites Ergeb nis liefert und mit denen eine erste und zweite Aktion (32, 33) assoziiert ist, und
wobei bei Ausführung der Auswertungsroutine (4) eine Auswertung der binären Vergleichsoperation (31) erfolgt und in Abhängigkeit vom Ergebnis der binären Vergleichs operation (31) entweder die erste oder die zweite Aktion (32, 33) erfolgt.
2. Verfahren nach Anspruch 1, wobei im Speicher (3) ein Mas
kierungswert (35) abgelegt ist und Operand (34) und Mas
kierungswert (35) Operanden einer Maskierungsoperation mit ei
nem Maskierungsoperator sind, deren Ergebnis mit dem Ver
gleichswert (37) und dem Vergleichsoperator (36) die binäre
Vergleichsoperation (31) bildet.
3. Verfahren nach Anspruch 1, wobei die Vergleichsoperation
(31) durch den Inhalt (34, 36, 37) eines jeweils im Speicher
(3) abgelegten Operationsbereichs (31) codiert ist, der zumin
dest den Operanden (34), den Vergleichswert (37) und den Ver
gleichsoperator (36) umfasst.
4. Verfahren nach Anspruch 2, wobei die Vergleichsoperation
(31) durch den Inhalt (34, 35, 36, 37) eines jeweils im Speicher
(3) abgelegten Operationsbereichs (31) codiert ist, der
zumindest den Operanden (34), den Maskierungswert (35), den
Vergleichswert (37) und den Vergleichsoperator (36) umfasst.
5. Verfahren nach Anspruch 1, wobei jede Aktion (32, 33) durch
den Inhalt (38, 38', 39, 39') eines jeweils im Speicher (3) ab
gelegten ersten und zweiten Aktionsbereich (32, 33) codiert ist
und
wobei jeder Aktionsbereich (32, 33) entweder
eine Folgeaktion (38, 38') oder
eine Verknüpfungsreferenz (39, 39') oder
eine Folgeaktion (38, 38') und eine Verknüpfungsreferenz (39, 39') umfasst.
wobei jeder Aktionsbereich (32, 33) entweder
eine Folgeaktion (38, 38') oder
eine Verknüpfungsreferenz (39, 39') oder
eine Folgeaktion (38, 38') und eine Verknüpfungsreferenz (39, 39') umfasst.
6. Verfahren nach einem der Ansprüche 3 bis 5, wobei der Opera
tionsbereich (31) und der erste und zweite Aktionsbereich (32,
33) einen Condition-Block (30) im Speicher (3) bilden.
7. Verfahren nach Anspruch 6, wobei jeder Aktion (32, 33) je
weils eine Verknüpfungsreferenz (39, 39') zugeordnet ist, die
zur Referenzierung eines Condition-Blocks (30) durch Angabe der
entsprechenden Adresse im Speicher (3) geeignet ist, und die
Aktion (32, 33) eine Auswertung der Verknüpfungsreferenz (39,
39') umfasst.
8. Verfahren nach Anspruch 1, wobei jeder Aktion (32, 33) je
weils eine Folgeaktion (38, 38') zugeordnet ist und die
Aktion (32, 33) eine Auslösung der Folgeaktion (38, 38') um
fasst.
9. Verfahren nach Anspruch 8, wobei das Auslösen der Folge
aktion (38, 38') eine Ausführung einer ab der als Folgeaktion
(38, 38') angegebenen Startadresse (38, 38') im Speicher (3)
abgelegten Routine umfasst.
10. Verfahren nach einem der Ansprüche 7 bis 9, wobei die erste
oder die zweite Aktion (32, 33) sowohl die Auslösung der Folge
aktion (38, 38') als auch die Auswertung der Verknüpfungsrefe
renz (39, 39') umfasst.
11. Verfahren nach Anspruch 1, wobei die Steuereinrichtung (1)
einen Busanschluss (6) zum Anschluss an einen Bus (5) aufweist
und zum Empfang eines Telegramms (10) über den Bus (5) geeignet
ist, wobei beim Empfang eines Telegramms (10) zumindest einen
Datenbereich (13) des Telegramm (10) in einen Empfangsspeicher
(2) des Speichers (3) kopiert wird, und wobei der Operand (34)
ein Element des Empfangsspeichers (2) ist oder eine Position
des Empfangsspeichers (2) bezeichnet.
12. Verfahren nach Anspruch 1, wobei die Auswertungsroutine (4)
hardcodiert ist.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10057780A DE10057780A1 (de) | 2000-11-22 | 2000-11-22 | Verfahren zum Betrieb einer programmierbaren Steuereinrichtung |
EP01997725A EP1410117A2 (de) | 2000-11-22 | 2001-11-16 | Verfahren zum betrieb einer programmierbaren steuereinrichtung |
PCT/DE2001/004324 WO2002042852A2 (de) | 2000-11-22 | 2001-11-16 | Verfahren zum betrieb einer programmierbaren steuereinrichtung |
US10/432,366 US20040030869A1 (en) | 2000-11-22 | 2001-11-16 | Method for operating a progammable control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10057780A DE10057780A1 (de) | 2000-11-22 | 2000-11-22 | Verfahren zum Betrieb einer programmierbaren Steuereinrichtung |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10057780A1 true DE10057780A1 (de) | 2002-06-06 |
Family
ID=7664142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10057780A Withdrawn DE10057780A1 (de) | 2000-11-22 | 2000-11-22 | Verfahren zum Betrieb einer programmierbaren Steuereinrichtung |
Country Status (4)
Country | Link |
---|---|
US (1) | US20040030869A1 (de) |
EP (1) | EP1410117A2 (de) |
DE (1) | DE10057780A1 (de) |
WO (1) | WO2002042852A2 (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200167668A1 (en) * | 2018-11-27 | 2020-05-28 | Sap Se | Dynamic rule execution order |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4561059A (en) * | 1983-02-24 | 1985-12-24 | Beckworth Davis International, Inc. | Microprocessor controlled welding apparatus |
US4577318A (en) * | 1983-11-14 | 1986-03-18 | Burroughs Corporation | Self testing detection system for comparing digital signal transition times |
JPH0777691B2 (ja) * | 1989-04-28 | 1995-08-23 | オ−クマ株式会社 | 数値制御方法及びその装置 |
JP2580865B2 (ja) * | 1990-10-17 | 1997-02-12 | 三菱自動車工業株式会社 | 車両用ステアリング制御装置 |
JP3158364B2 (ja) * | 1992-10-13 | 2001-04-23 | ソニー株式会社 | 電子機器 |
US5608662A (en) * | 1995-01-12 | 1997-03-04 | Television Computer, Inc. | Packet filter engine |
EP0829048B1 (de) * | 1995-06-01 | 2003-02-19 | Fujitsu Limited | Programmierbare vorrichtung und verfahren zum befehlsauffang |
US5826071A (en) * | 1995-08-31 | 1998-10-20 | Advanced Micro Devices, Inc. | Parallel mask decoder and method for generating said mask |
US5790554A (en) * | 1995-10-04 | 1998-08-04 | Bay Networks, Inc. | Method and apparatus for processing data packets in a network |
US6147976A (en) * | 1996-06-24 | 2000-11-14 | Cabletron Systems, Inc. | Fast network layer packet filter |
FR2764407B1 (fr) * | 1997-06-05 | 1999-07-30 | Alsthom Cge Alcatel | Dispositif de retouche de programme de commande dans un processeur |
US6052522A (en) * | 1997-10-30 | 2000-04-18 | Infineon Technologies North America Corporation | Method and apparatus for extracting data stored in concatenated registers |
US6262749B1 (en) * | 1997-12-31 | 2001-07-17 | Acuson Corporation | Ultrasonic system and method for data transfer, storage and/or processing |
US6347087B1 (en) * | 1998-10-05 | 2002-02-12 | Packet Engines Incorporated | Content-based forwarding/filtering in a network switching device |
JP2000339188A (ja) * | 1999-05-27 | 2000-12-08 | Harness Syst Tech Res Ltd | プログラム実行異常検出装置 |
-
2000
- 2000-11-22 DE DE10057780A patent/DE10057780A1/de not_active Withdrawn
-
2001
- 2001-11-16 EP EP01997725A patent/EP1410117A2/de not_active Ceased
- 2001-11-16 US US10/432,366 patent/US20040030869A1/en not_active Abandoned
- 2001-11-16 WO PCT/DE2001/004324 patent/WO2002042852A2/de not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US20040030869A1 (en) | 2004-02-12 |
WO2002042852A3 (de) | 2004-02-26 |
EP1410117A2 (de) | 2004-04-21 |
WO2002042852A2 (de) | 2002-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4100198B4 (de) | Kommunikationsmodul zum schnittstellenmäßigen Verbinden einer Vielzahl serieller Kommunikationsverbindungen zum Austausch von Daten zwischen den Verbindungen und einer programmierbaren Steuerung | |
DE69803860T2 (de) | Direktspeicherzugriffseinheit | |
DE3854361T2 (de) | Programmierbare Protokollvorrichtung. | |
EP1222739B1 (de) | Rekonfigurierbares gate-array | |
DE69425757T2 (de) | Sucheinrichtung für paketnetzwerk | |
EP2882145A1 (de) | Verfahren und filteranordnung zum speichern von informationen über einen seriellen datenbus eines kommunikationsnetzwerks eingehender nachrichten in einem teilnehmer des netzwerks | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
EP2293193A1 (de) | Verfahren und Vorrichtung zur Datenverarbeitung | |
EP0466969A1 (de) | Verfahren zur Verhinderung unzulässiger Abweichungen vom Ablaufprotokoll einer Anwendung bei einem Datenaustauschsystem | |
EP1069731B1 (de) | Netzwerk und Verfahren zum Austausch von Botschaften | |
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE3587874T2 (de) | Protokolle für Terminal. | |
DE69822364T2 (de) | Aufspürung von heissen Stellen in einer Maschine mit nichtuniformen Speicherzugriffen | |
EP0722583A1 (de) | Prozessor für zeichenketten variabler länge | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2935101C2 (de) | ||
EP1119801B1 (de) | Verfahren zum betrieb eines automatisierungssystems | |
EP1821165B1 (de) | Nutzung von Variablen in mehreren Automatisierungssystemen | |
DE10057780A1 (de) | Verfahren zum Betrieb einer programmierbaren Steuereinrichtung | |
DE2932394A1 (de) | Intelligente, programmierbare prozessteueranordnung | |
DE68905848T2 (de) | Speicherprogrammierbare steuerung mit strukturierter programmiersprache. | |
DE3242631C2 (de) | ||
EP1051671B1 (de) | Daten- bzw. informationsübertragungssystem | |
DE112018008145T5 (de) | Kommunikationssystem, Kommunikationsgerät, Kommunikationsverfahren und Programm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |