DE10057780A1 - Verfahren zum Betrieb einer programmierbaren Steuereinrichtung - Google Patents

Verfahren zum Betrieb einer programmierbaren Steuereinrichtung

Info

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
Application number
DE10057780A
Other languages
English (en)
Inventor
Klaus Spichtinger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE10057780A priority Critical patent/DE10057780A1/de
Priority to EP01997725A priority patent/EP1410117A2/de
Priority to PCT/DE2001/004324 priority patent/WO2002042852A2/de
Priority to US10/432,366 priority patent/US20040030869A1/en
Publication of DE10057780A1 publication Critical patent/DE10057780A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0428Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25428Field 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.
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.
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.
DE10057780A 2000-11-22 2000-11-22 Verfahren zum Betrieb einer programmierbaren Steuereinrichtung Withdrawn DE10057780A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 プログラム実行異常検出装置

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