Beschreibung
Verfahren zum Betrieb eines Automatisierungssystems
Die vorliegende Erfindung betrifft ein Verfahren zum Betrieb eines Automatisierungssystems, durch das ein zur Steuerung und/oder Überwachung eines technischen Prozesses vorgesehenes Automatisierungsgerat mittels eines zum Bedienen und Beobachten des Automatisierungsgerates vorgesehenen Programmiergerat uberwachbar ist.
Zum Zweck der Inbetriebnahme und der Wartung des Automatisierungsgerates ist die Beobachtung der auf dem Automatisierungsgerat ablaufenden Software vorgesehen. Wünschenswert ist dabei, daß durch die Beobachtung die Ausfuhrung der Software nicht merklich gestört oder gar unterbrochen wird.
Die Aufgabe der vorliegenden Erfindung besteht folglich darin, ein Verfahren zum Betrieb eines Automatisierungssystems anzugeben, bei dem das Automatisierungsgerat durch ein Programmiergerat bei weitestgehender Vermeidung störender Einflüsse uberwachbar ist.
Diese Aufgabe wird mit einem Verfahren zum Betrieb eines zu- mindest ein Automatisierungsgerat sowie ein mit diesem kommunikativ verbundenes Programmiergerat umfassenden Automatisierungssystems, wobei das Automatisierungsgerat ein Anwenderprogramm, insbesondere ein Programm zur Steuerung und/oder Überwachung eines externen technischen Prozesses, ausfuhrt und wobei durch das Programmiergerat die Ausfuhrung des Anwenderprogramms überwacht wird, indem am Programmiergerat eine oder mehrere Datenadressen des Anwenderprogramms zur Überwachung ausgewählt werden, dadurch gelost,
- daß am Programmiergerat für jede zur Überwachung ausgewählte Datenadresse eine Codeadresse- eine Adresse des Anwenderprogramms, insbesondere eine Adresse m unmittelbarer Nahe eines den Inhalt der ausgewählten Datenadresse beem- flussenden Abschnitts des Anwenderprogramms - ausgewählt wird,
- daß die ausgewählte Datenadresse zusammen mit der Codeadresse im Rahmen eines Anforderungstelegramms an das Automatisierungsgerat übermittelt wird, - daß der Inhalt der ausgewählten Datenadresse bei Erreichen der jeweiligen Codeadresse wahrend der Ausfuhrung des Anwenderprogramms aufgezeichnet wird und
- daß der aufgezeichnete Inhalt der Datenadresse im Rahmen eines Ergebnistelegramms an das Programmiergerat ubermit- telt wird.
Über eine Datenadresse sind alle im Automatisierungsgerat vorhandenen Speicherbereiche referenzierbar . Entsprechend bezeichnet im vorliegenden Zusammenhang der Ausdruck Daten- adresse nicht nur eine explizite Adresse im Bereich des Anwenderprogramms sondern ggf. auch ein durch eine Start- und Endadresse vorgegebener Datenbereich und darüber hinaus ggf. auch einzelne Register bzw. Registersatze.
Die Software auf dem Automatisierungsgerat laßt sich grob m die sogenannte Firmware und das Anwenderprogramm unterteilen. Das Anwenderprogramm gliedert sich m im wesentlichen voneinander unabhängige Module, die im folgenden als Bausteine bezeichnet werden und die auf dem Programmiergerat erstellt und auf das Automatisierungsgerat geladen werden und dort unter Steuerung der Firmware des Automatisierungsgerates nach bestimmten Regeln zur Ausfuhrung gelangen.
Üblicherweise findet bei Automatisierungsaufgaben eine zyklische Bearbeitung statt, wobei z.B. einige Bausteine m einem festen Zeitraster immer wieder gestartet werden. Spezielle Bausteine werden nach ihrer Ausfuhrung auch sofort wieder ge- startet, wobei dies als sogenannter freier Zyklus bezeichnet wird, ein Zyklus also, dem kein festes Zeitraster zugrunde liegt.
Wenn das Automatisierungsgerat mehrere Prozessoren aufweist, ist es möglich, daß mehrere Bausteine gleichzeitig ausgeführt werden. Steht dagegen nur ein Prozessor zur Verfugung, so werden die jeweiligen Bausteine nach einem Zeitscheibenver- fahren zur Ausfuhrung gebracht, wobei beim Benutzer der Eindruck der gleichzeitigen Bearbeitung der jeweiligen Bausteine entsteht.
Die Bausteine werden vom Anwender m dafür vorgesehenen, ggf. auch unterschiedlichen Sprachen erstellt und durch ein auf dem Programmiergerat ablauffähiges Ubersetzerprogramm m die Maschinensprache des Automatisierungsgerates transferiert.
Beim Anwendungsfall gemäß dem Ausfuhrungsbeispiel kommen z.B. die Programmiersprachen KOP, FUP, AWL, SCL, HIGRAPH, GRAPH 7, etc. zum Einsatz.
Das Automatisierungsgerat fuhrt die einzelnen Maschinenbefehle eines Bausteins nacheinander aus. Dabei ist jeder einzelne Maschinenbefehl des Automatisierungsgerates durch eine Codeadresse eindeutig referenzierbar . Die Codeadresse wird spezifiziert durch den Baustein, dessen Typ und dessen Nummer, und den einzelnen Maschinenbefehl, der durch seine jeweilige
Adresse im Baustein repräsentiert wird. Das obengenannte An-
forderungstelegramm enthalt eine oder mehrere dieser eben beschriebenen Codeadressen.
Zur Auswahl der gewünschten Code- bzw. Datenadressen können bekannte Methoden verwendet werden, indem z.B. zur Auswahl einer Datenadresse bzw. eines Datenadressbereichs eine bestimmte Anweisung des Anwenderprogramms bzw. ein Abschnitt mit mehreren Programmanweisungen markiert und diese Markierung als Auswahl interpretiert wird. Alternativ ist es selbstverständlich auch möglich, diese Auswahl mittels expliziter entsprechender Angaben zu treffen, indem z.B. die relevanten Datenadressen manuell eingegeben werden.
In einem Automatisierungsgerat werden gemäß einer abstrakten Betrachtungsweise von Sensoren gelieferte Daten verarbeitet und gemäß den Verarbeitungsergebnissen Aktoren angesteuert. Je nach verwendeter Sprache gibt es dazu verschiedene Kon- strukte. Gemeinsam ist allen, daß sie verschiedene Datenbereiche unterscheiden und diese m ihren Befehlen adressieren können. Bei allen Sprachen ist es möglich, einen einzelnen Sensor abzufragen, einen einzelnen Aktor anzusteuern und Ergebnisse zwischenzuspeichern, z.B. um Zustande über Bausteingrenzen hinweg zu halten. Je nach Maschinennahe der jeweils verwendeten Sprache unterstutzt der Sprachumfang auch eine direkte Manipulation von Registern. Die kleinste auf diese Weise adressierbare Einheit ist eine Datenadresse.
Zum Zweck der Überwachung des Automatisierungsgerates wird vom Programmierger t ein Auftrag mittels des Anforderungste- legramms an das Automatisierungsgerat gesendet. Diese Anforderung enthalt eine oder menrere Codeadressen und pro Codeadresse eine oder mehrere Datenadressen.
Das Anforderungstelegramm weist ein Headersegment, ein Einstiegsdatensatzsegment sowie ein oder mehrere Watchpomtseg- mente mit jeweils zumindest einer Codeadresse und einer oder mehreren Datenadressen auf. Mit den Datenadressen sind alle im Maschinenmodell vorhandenen Speicherbereiche ansprechbar auch die Register, insbesondere aber Bitgruppen, weil viele Sensoren und Aktoren nicht nur einzelne Bits liefern, sondern Gruppen von Bits, weswegen auch größere zusammenhangende Bereiche mit einer Datenadresse ansprechbar sind.
Das Automatisierungsgerat zeichnet bei Erreichen einer der im Anforderungstelegramm spezifizierten Codeadressen die im selben Watchpomtsegment zusammen mit dieser Codeadresse angegebenen Daten auf. Zusätzlich kann eine Triggerbedingung vorge- geben werden, die beim Erreichen einer Codeadresse erf llt sein muß, damit die Aufzeichnung beginnt.
Das Automatisierungsgerat übermittelt seinerseits nach jedem Zyklus, reguliert durch eine Flußkontrolle, die angeforderten Daten an das Programmiergerat, bis der Auftrag durch andere Anforderungstelegramme gestoppt oder geloscht wird.
Aufbau und Struktur des Ergebnistelegramms sind ganz analog zum Anforderungstelegramm. Insofern weist auch das Ergebni- stelegramm ein Headersegment, ein Einstiegsdatensatzsegment sowie ein oder mehrere Watchpomtsegmente mit jeweils zumindest einer Codeadresse und einer oder mehreren Datenadressen auf.
Die m den sogenannten honeren Programmiersprachen zur Verfugung stehenden Konstrukte werden auf die Befehle der Zielma- schine abgebildet. Dabei kann es vorkommen, daß bestimmte Daten nur temporar m den jeweiligen Registern des Automatisierungsgerates vorhanden sind, ohne jemals unter einer für den
Anwender referenzierbaren Datenadresse gespeichert zu werden. Um auch solche Zwischenergebnisse auf der Seite des Programmiergerätes korrekt beobacnten zu können, ist es vorgesehen, in einem Anforderungstelegramm zu einer Codeadresse auch Re- gister angeben zu können. Als Beispiel sei hier eine einfache logische Verknüpfung der Form "WENN Sensor 1 UND Sensor 2 ODER Sensor 3, DANN Aktor 1" genannt, wobei das Ergebnis der UND-Verknupfung m einem Register zwischengespeichert wird, um dieses Zwischenergebnis bei der nachfolgenden ODER- Verknüpfung verwenden zu können. Das letztendliche Verknup- fungsergebnis steht als Inhalt der Variablen Aktor 1 schließlich wieder direkt m einer Datenadresse zur Verfugung. Das Zwischenergebnis ginge allerdings verloren, wenn nicht auch der Zugriff auf das Register selbst möglich wäre.
An dieser Stelle wird auch unmittelbar ersichtlich, warum im Anforderungstelegramm Codeadressen und zu jeder dieser Codeadressen Datenadressen angebbar sind.
Da es nämlich n Bausteiner αurchaus vorkommen kann, daß eine Datenadresse mehrfach beschrieben und gelesen wird, ist es vorteilhaft, die Daten nicht am Ende des Zyklus zu beobachten, sondern an all den Codeadressen, an denen es referen- ziert wird. Nur so kann das Anwenderprogramm auf der Seite des Programmiergerätes nachvollzogen werden.
Insbesondere im vorliegend geschilderten Fall reicht es z.B. nicht aus, das Register, m dem das Zwischenergebnis der oben beschriebenen UND-Verknup ung zwischengespeichert wird, anzu- geben, da dieses Register zu diversen Zeitpunkten zur Speicherung unterschiedlicnster Zwischenergebnisse verwendet werden kann. Nur unmittelbar nach der Verknüpfung "WENN Sensor 1
UND Sensor 2" gibt der Inhalt des Registers das Ergebnis der UND-Verknupfung wieder. Das Ergebnis der nachfolgenden ODER- Verknupfung wird im selben Register zwischengespeichert, so daß das Ergebnis der UND-Verknupfung verloren geht.
Im Betrieb zeichnet das Automatisierungsgerat die mit dem An- forderungstelegramm spezifizierten Daten auf, um sie zu einem im Vergleich zum Zeitpunkt der Aufzeichnung spateren Zeitpunkt zu senden. Im allgemeinen kann das Automatisierungsge- rat nur eine vergleichsweise kleine Menge von Daten aufzeichnen. Insbesondere ist die Menge der aufzuzeichnenden Daten jedoch durch Art und Geschwindigkeit einerseits des Automatisierungsgerates sowie andererseits der Kommunikationsmittel zwischen Automatisierungsgerat und Programmiergerat sowie der durch den Anwender tolerierten Störung der Programmausfuhrung auf selten des Automatisierungsgerates vorgegeben. Durch die Menge der transferierbaren Daten ist eine Obergrenze für die Menge der aufzeichenbaren Daten festgelegt, auch wenn das Automatisierungsgerat eine größere Menge von Daten theoretisch aufzeichnen konnte. Es ist also angezeigt, mit dem Anforderungstelegramm nur diejenigen Informationen anzufordern, die spater auch zur Anzeige auf dem Programmiergerat gelangen.
Höhere Spezialspracnen f r Schrittketten (z.B. HIGRAPH, GRAPH 7, ...) verwenden zur Programmierung der Weiterschaltbedmgung und der im jeweiligen Schritt auszuführenden Aktion wiederum Basissprachen (z.B. AWL, KOP, FUP, ...). Für den Anwender ist es nun einerseits wichtig, zu erkennen, welcher Schritt momentan aktiv ist und darüber hinaus speziell auch die Weiterschaltbedmgung zu betrachten. Dafür ist im allgemeinen die Betrachtung einiger weniger Codeadressen ausreichend, wobei insbesondere die Menge der relevanten Codeadres-
sen im Vergleich zur Große des Bausteins relativ gering ist. Allerdings sind die relevanten Codeadressen blicherweise innerhalb des Bausteins verstreut und darüber hinaus noch mit dem Laufzeitsystem der Schrittkettensteuerung vermischt. Auf- grund der begrenzten Möglichkeiten hinsichtlich des Datentransfers zwischen Automatisierungsgerat und Programmiergerat ist es wenig sinnvoll, den Baustein komplett zu beobachten, da dies unter Umstanden sehr schnell mit Kapazitatsobergren- zen bezüglich des Datentransfers kollidiert. Tatsachlich wer- den ja auch nur die für die Berechnung der Weiterschaltbedm- gungen notwendigen Codeadressen benotigt. Folglich werden nur die tatsächlich erforderlichen Codeadressen an das Programmiergerat transferiert.
E ähnliches Problem ergibt sich bei der Programmierung von Bausteinaufrufen mit Parametern. Im Einzelfall sind zur Übertragung der Parameterwerte eine Vielzahl einzelner Befehle erforderlich. Somit gäbe es nur wenige für die Beobachtung tatsächlich relevante Codeadressen, die über einen größeren Bereich des Bausteins verteilt sind. Für einen solchen Fall ist vorgesehen, die an den Baustein zu übertragenden Werte vom sogenannten "Stack" zu übernehmen. Das Ablegen von Parametern beim Aufruf von Unterprogrammen auf dem Stack ist eine allgemein bekannte Methode, um Parameter ausgehend von einem ersten Programmbereich an einen zweiten, davon unabhängigen Programmbereich zu übergeben. Es zeigt sich also, daß alle Werte, die m einen Baustein übertragen werden, vor dem eigentlichen Maschinenbefehl zum Bausteinaufruf vom Stapel oder sogar aus einem speziellen Instanzdatenbaustein gelesen wer- den können. Analog können alle Werte, die aus dem Baustein übertragen werden, nach dem eigentlichen Maschinenbefehl zum Bausteinaufruf vom Stapel oder wiederum aus dem Instanzdaten-
baustein gelesen werden. Zur Beobachtung der Parameteruberga- be sind für jeden Bausteinaufruf zwei Codeadressen erforderlich. Pro Codeadresse können jedoch im Einzelfall mehrere Datenadressen erforderlich sein, wobei sich die Anzahl der er- forderlichen Datenadressen nach der Anzahl der Em- bzw. Ausgabeparameter richtet.
Die Kontrolle des Datenflusses, m anderem Zusammenhang auch die sogenannte Flußkontrolle, wird folgendermaßen realisiert: Nach Ausführung der zu einem Zyklus gehörigen Bausteine wird der durch das Anforderungstelegramm initiierte Auftrag blok- kiert, d.h. es werden keine weitere Daten mehr aufgezeichnet, auch wenn das Automatisierungsgerat einen Befehl an einer durch das Anforderungstelegramm spezifizierten Codeadresse em weiteres Mal ausfuhrt. Nun wird das Senden der angeforderten Daten angestoßen. Das Senden erfolgt dabei parallel zur Ausfuhrung des Anwenderprogramms. Em solcher Sendevorgang kann sich im Bedarfsfall auch über mehrere Zyklen erstrecken, wobei dann die aufgezeichneten Daten abschnittswei- se übertragen werden. Wahrend des Sendens wird aufgrund des abschnittsweisen Sendens parallel zur Ausfuhrung des Anwenderprogramms, insbesondere auch aufgrund der möglichen Aufteilung der zu sendenden Daten auf mehrere Zyklen, das Anwenderprogramm nur unmerklich gestört. Erst nachdem das Program- miergerat die auf diese Weise empfangenen Daten ausgewertet und dargestellt hat, schickt dieses ein Telegramm, welches den zuvor blockierten Auftrag wieder freigibt, so daß die Aufzeichnung der mit dem Anforderungstelegramm spezifizierten Daten erneut beginnt.
Die Anwenderprogramme werden im Programmiergerat mittels einer dafür vorgesehenen Software m Maschinenbefehle des Auto-
matisierungsgerates übersetzt. Dabei kann es sich um direkt vom Prozessor des Automatisierungsgerates ausfuhrbare Befehle handeln oder um eine Zwischensprache, die im Automatisierungsgerat zunächst interpretiert oder aber von der Firmware des Automatisierungsgerates m Befehle des Prozessors des Automatisierungsgerates übersetzt wird. Grundsatzlich wird bei der Übersetzung Wert auf kurzen, schnell ablauffähigen Code gelegt.
Auf einem Automatisierungsgerat, dessen Prozessor oder dessen Prozessoren mittels handelsüblicher MikroController realisiert werden, muß das Maschinenmodell des Automatisierungsgerates auf das Speichermodell des Mikrocontrollers übertragen werden. Zum Beobachten muß zusätzlicher Code m das ubersetz- te Anwenderprogramm eingefügt werden. Dies erfordert im allgemeinen einen besonderen Ubersetzungslauf . Findet das übersetzen der Firmware des Automatisierungsgerates statt, ergibt sich eine Zykluszeitbelastung durch die Übersetzung und das Einketten der sich ergebenden zusatzlichen Befehle. Fm- det das übersetzen im Programmiergerat statt, ergibt sich eine Zykluszeitbelastung durch das Herunterladen und das Einketten der zusätzlichen Befehle. In beiden Fallen kann die Zykluszeitbelastung durch passende Auswahl der zu beobachtenden Codeadressen minimiert werden.
Damit m Zeiten, m denen em Beobachtungsauftrag blockiert ist, keine Zykluszeitbelastung auftritt, sind die für die Beobachtung notigen Befehle maskierbar. Eine Aufzeichnung der angeforderten Daten erfolgt damit nur dann, wenn die entspre- chenden Befehle nicht maskiert sind. Nach Beendigung des Zyklus ist der Auftrag durch die Firmware blockierbar, sofern dies nicht schon bei der Aufzeichnung geschieht. Abschließend
werden die aufgezeichneten Daten an das Programmiergerat gesandt .
Bei einem Automatisierungsgerat, welches die Maschinenbefehle interpretiert, bewirkt der Interpreter die Abbildung des Ma- schmenmodells auf den realen Speicher. Dabei spielt es für die folgende Betrachtung keine Rolle, ob der Interpreter durch einen anwenderspezifischen Schaltkreis (ASIC) oder durch e Programm auf einem handelsüblichen Mikrocontroller realisiert wird. Die Firmware markiert die zu beobachtenden
Befehle, wozu sie zumindest 1 Bit pro Befehl benotigt. Trifft der Interpreter auf einen markierten Befehl, unterbricht er die Ausfuhrung und zeichnet die angeforderten Daten auf. Danach kann die Ausfuhrung fortgesetzt werden. Diese Unterbre- chung muß wie bei den übersetzenden Maschinen maskierbar sein, damit m den Zeiten, m denen der Auftrag blockiert ist, keine Zykluszeitbelastung auftritt. Analog wie bei den übersetzenden Maschinen ist der Auftrag nach Beendigung des Zyklus durch die Firmware blockierbar, sofern dies nicht schon bei der Aufzeichnung geschieht. Abschließend werden die aufgezeichneten Daten an das Programmiergerat gesandt.
Gemäß einer weiteren Ausgestaltung ist vorgesehen, einen Beobachtungsauftrag mit Bedingungen zu versehen, damit bei Bau- steinen, die einem Zyklus mehrfach ausgeführt werden, eine spezielle Ausfuhrung beobachtbar ist. Darüber hinaus ist m einem Auftrag unterscheidbar, wie bei mehrfacher Ausfuhrung der Befehle innerhalb eines Bausteins zu reagieren ist. Eine derartige Mehrfachausfuhrung tritt im Baustein auf, wenn durch Sprunge im Baustein Schleifen entstehen. Im Beobachtungsauftrag kann beispielsweise eingestellt werden, ob der Auftrag durch die Mehrf chausfuhrung blockiert wird oder
nicht. Wird er bei der zweiten Ausfuhrung einer Codeadresse nicht blockiert, so werden die Daten für diese Codeadresse überschrieben, so daß im Ergebnis die Daten des letzten Schleifendurchgangs für einen tatsächlichen Transfer an das Programmiergerat zur Verfugung stehen. Wurde dagegen bei jedem Schleifendurchgang em Transfer erfolgen, hatte dies eine hohe Zykluszeitbelastung zur Folge. Die Zykluszeitbelastung kann weiter gesenkt werden, indem beim ersten Auftreten einer Mehrfachausfuhrung die Aufzeichnung blockiert wird, so daß nur die Daten des ersten Schleifendurchgangs transferiert werden.
Das Verfahren erlaubt es, zu jedem Baustein mehrere Codeadressen und zu jeder Codeadresse mehrere Datenadressen anzu- geben. Die Codeadresse definiert einen einzelnen Maschinenbefehl. Mit den Datenadressen sind alle im Maschmenmodell vorhandenen Speicherbereiche ansprechbar, auch die Register. Das Verfahren minimiert die aufzuzeichnenden und zu transferierenden Daten und die mit der Aufzeichnung und dem Transfer emhergehende Zykluszeitbelastung auf em Minimum. Diese Mi- nimierung ist unabhängig von der Sprache, m der das Anwenderprogramm erstellt wurde und der Art der Zielmaschme .
Weitere Merkmale, Vorteile und Anwendungsmoglichkeiten der Erfindung ergeben sich aus den Unteranspruchen, der nachfolgenden Beschreibung eines Ausfuhrungsbeispiels, anhand der Figuren und der Figuren selbst. Dabei bilden alle beschriebenen und/oder bildlich dargestellten Merkmale für sich oder m beliebiger Kombination den Gegenstand der vorliegenden Erfin- düng, unabhängig von ihrer Zusammenfassung m den Ansprüchen oder deren Ruckoeziehung .
In den Figuren zeigen
FIG 1 das Anforderungstelegramm und FIG 2 das Empfangstelegramm.
Gemäß FIG 1 weist das Anforderungstelegramm AT zumindest em Headersegment AH, em Einstiegsdatensatzsegment AE sowie em oder mehrere Watchpomtsegmente AW1, AW2, ..., AWn auf. Im Headersegment AH oder kurz im Header AH ist zumindest die Auftragskennung 1110, eine Codierung des Bausteins 1111, auf das sich das Anforderungstelegramm bezieht, codiert nach Typ und Nummer, sowie eine Triggerbedingung 1112, eine Kennung hinsichtlich eventueller Mehrfachausfuhrungen 1113 sowie die Anzahl der Watchpomts ohne Einstiegsdatensatz 1114 angegeben.
Der Einstiegsdatensatz AE, der im Gegensatz zu den Watchpomts die jeweiligen Überwachungswerte, insbesondere die Register, vor der Befehlsausführung zeigt, umfaßt eine Codeadresse 1121, Register 1122, eine Kennung hinsichtlich der Anzahl der nachfolgenden Datenadressen 1123 sowie die durch die Kennung 1123 vorgegebene Anzahl von Datenadressen 1124.
Ganz analog zum Einstiegsdatensatz AE ist der Aufbau der Watchpomtsegmente AW1, AW2, ..., AWn. Jedes dieser Watch- pomtsegmente AW1, AW2, ..., AWn umfaßt eine Codeadresse
1131-1, 1131-2, 1131-n ("-1" referenziert das erste Watch- po tsegment AW1, entsprechend referenziert "-2" das zweite Watchpomtseσment und "-n" das Watchpomtsegment AWn. Für die nachfolgende Beschreibung werden die zusätzlichen Referenzie- rungen, wo dies nicht unbedingt erforderlich ist, ausgelassen.) Darüber ninaus umfaßt jedes Watchpomtsegment Daten über die relevanten Register 1132, eine Kennung hinsichtlich
der Anzahl der nachfolgenden Datenadressen 1133 und die entsprechend der Kennung 1133 vorgegebene Anzahl von Datenadressen 1134.
Gemäß FIG 2 umfaßt das Empfangstelegramm ET zumindest den Header EH, Einstiegsdaten EE sowie Watchpomtdaten EW1, EW2, ..., EWn. Im einzelnen umfaßt der Header EH zumindest eine Auftragskennung 1210 sowie eine Auftragsnummer 1211. Die Einstiegsdaten umfassen zumindest die Codeadresse 1221, Regi- sterwerte 1222 und Datenwerte 1223. Ganz analog umfassen die Watchpomtdaten EWl, EW2, ..., EWn zumindest die Codeadresse 1231, Registerwerte 1232 und Datenwerte 1233.
Mittels der Auftragsnummer 1211 werden gleichzeitig vorhande- ne Auftrage unterschieden. Em eineindeutige Auftragsnummer 1211 wird automatisch bei der Auftragsvergabe vom Automatisierungsgerat zugewiesen. Die Große der für die Registerwerte, 1222, 1232-1, 1232-2, ..., 1232-n vorgesehenen Segmente des Empfangstelegramms ET ist abhangig von Art und Anzahl der angeforderten Register; ganz analog ist die Große der für die Datenwerte 1233, 1233-1, 1233-2, ...., 1233-n vorgesehenen Segmente des Empfangstelegramms ET abhangig von Art und Anzahl der angeforderten Daten.
Im Empfangstelegramm ET müssen nicht samtliche Codeadressen des Anforderungstelegramms AT vorhanden sein, da eventuelle Sprunge bei der Ausfuhrung des zu überwachenden Programms dazu fuhren können, daß Teile des zu überwachenden Programms nicht ausgeführt werden und bestimmte im Anforderungstele- gramm AT spezifizierte Codeadressen nicht erreicht werden.
_.„„-, PCT/EP
WO 00/19283
15 Der Einstiegsdatensatz EE ist stets vorhanden, jedoch muß dessen Codeadresse 1221 nicht mit der Codeadresse der Anforderung 1121 übereinstimmen, da em Sprung über diese erste Adresse im beobachteten Zyklus vorgekommen sein konnte.
Der Datenverkehr zwischen Programmiergerat und Automatisierungsgerat, die zu diesem Zweck mittels eines Datenubertra- gungskabels in geeigneter, nicht dargestellter, jedoch allgemein bekannter Weise miteinander gekoppelt sind, wird nach- folgend dargestellt.
Sobald der Anwender eine Beobachtung startet, wird auf der Seite des Programmiergeräts em Anforderungstelegramm AT aufgebaut. Dieses Anforderungstelegramm AT wird an das Automati- sierungsgerat übermittelt. Das Automatisierungsgerat empfangt das Anforderungstelegramm AT, akzeptiert es, sofern die Struktur des Anforderungstelegramms AT den erwarteten Vorgaben entspricht und vergibt eine Auftragsnummer 1211. Danach wird der Auftrag als blockiert markiert.
Das Automatisierungsgerat sendet eine positive Quittung mitsamt der Auftragsnummer 1211 an das Programmiergerat. Das Programmiergerat vermerkt mit dem Eingang der positiven Quittung den Auftrag als akzeptiert.
Sodann wird auf selten des Programmiergeräts em Freigabete- legramm aufgebaut. Dieses Freigabetelegramm wird an das Automatisierungsgerat übermittelt, wobei auf selten des Automatisierungsgerates der Auftrag mit dem Eingang des Freigabetele- gramms als freigegeben markiert wird.
Als Antwort sendet das Automatisierungsgerat eine positive Quittung an das Programmiergerat, wobei auf selten des Programmiergerätes der Auftrag mit Eingang der positiven Quittung als freigegeben vermerkt wird.
Wenn wahrend der Ausfuhrung des Anwenderprogramms im Automatisierungsgerat zu einem bestimmten Zeitpunkt die Triggerbedingung 1112, die im Header AH des Anforderungstelegramms AT spezifiziert ist, erfüllt ist, beginnt die Aufzeichnung der vom Benutzer zur Beobachtung ausgewählten Daten. Im einfachsten Fall besteht die Triggerbedingung im Erreichen einer der im Anforderungstelegramm AT angegebenen Codeadressen 1131-1, 1131-2, ..., 1131-n; es sind aber komplexere Tπggerbedmgun- gen denkbar, wie z.B. "Aufrufpfad" oder "aufgeschlagene Da- tenbausteme" . Im Falle, daß em Baustein von mehreren anderen Bausteinen innerhalb eines Zyklus verwendet wird, ist es damit möglich, eine spezielle Ausfuhrung der Codeadressen m diesem Zyklus beobachten. Der Aufrufpfad beschreibt eine Bau- stem ierachie die notig ist, damit die Aufzeichnung beginnt. Die Bedingung aufgeschlagene Datenbausteine erfordert, daß zu Beginn der Aufzeichnung die angegebenen Datenbausteine aufgeschlagen sind. Die Bedingungen können einzeln oder kombiniert verwendet werden.
Wird also z.B. bei einer einfachen Triggerbedingung der obengenannten Art die durch die Adresse 1131-1 des Antworttelegramms AT referenzierte Codeadresse bei der Ausfuhrung des Anwenderprogramms erreicht, werden die durch das Datum 1132-1 referenzierten Register, die durch Datum 1133-1 referenzierte Anzahl von Datenadressen und dabei insbesondere die durch das Datum 1134-1 referenzierten Daten aufgezeichnet.
Nachdem diese Aufzeichnung beendet ist, wird e Ergebnistelegramm aufgebaut, das zumindest diese aufgezeichneten Daten enthalt. Der entsprechende Auftrag wird blockiert. Daraufhin wird das Ergebnis m Form eines Ergebnistelegramms ET an das Programmiergerat übermittelt.
Auf der Seite des Programmiergerätes kann das Ergebnis nunmehr dargestellt werden, wobei für den Fall, daß die durch das Datum 1231-1 referenzierte Codeadresse am Bildschirm dar- gestellt wird, in Verbindung mit dieser Codeadresse die Registerwerte 1232-1 und die Datenwerte 1233-1 darstellbar sind.
Nach der Darstellung des Ergebnisses wird erneut em Freiga- betelegramm an das Automatisierungsgerat gesendet, um den Auftrag erneut freizugeben. Das Automatisierungsgerat übermittelt eine positive Quittung an das Programmiergerat, sobald der Auftrag freigegeben ist. Das Programmiergerat vermerkt den Auftrag als freigegeben mit dem Eingang dieser positiven Quittung. Damit sind die Bedingungen wieder derart hergestellt, daß beim nächsten Erreichen der Triggerbedingung die Aufzeichnung erneut beginnt und die aufgezeichneten Daten schließlich zur Darstellung an das Programmiergerat übermittelt werden.
Diese Schritte wiederholen sich so lange, bis der Anwender den Auftrag beendet.