Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
AUTOMATION DEVICE AND UPDATING METHOD
Document Type and Number:
WIPO Patent Application WO/2001/037058
Kind Code:
A1
Abstract:
The invention relates to an automation device (AG) comprising a task-oriented user program whose memory contents (M) are to be transmitted to a redundant automation device (AG') without interrupting operation. After the conventional transfer of a basic data stock, the transfer of intermediately modified data is effected by means of updating tasks (T1A, T2A) that are assigned to the individual tasks (T1, T2), whereby these updating tasks transmit only the part (M1, M2) of the memory contents (M) that is accessed by the respective tasks (T1, T2).

Inventors:
BARTHEL HERBERT (DE)
LAFORSCH JUERGEN (DE)
LUBER RALPH (DE)
RITZER JOSEF (DE)
Application Number:
PCT/DE2000/004002
Publication Date:
May 25, 2001
Filing Date:
November 14, 2000
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SIEMENS AG (DE)
BARTHEL HERBERT (DE)
LAFORSCH JUERGEN (DE)
LUBER RALPH (DE)
RITZER JOSEF (DE)
International Classes:
G05B9/03; G05B19/042; G06F11/20; G05B19/408; G06F9/46; (IPC1-7): G05B19/414; G05B19/042
Foreign References:
EP0636956A21995-02-01
EP0460308A11991-12-11
Attorney, Agent or Firm:
SIEMENS AKTIENGESELLSCHAFT (Postfach 22 16 34 München, DE)
SIEMENS AKTIENGESELLSCHAFT (Postfach 22 16 34 München, DE)
Download PDF:
Claims:
Patentansprüche
1. Automatisierungsgerät (AG) zur Steuerung und/oder Überwa chung eines technischen Prozesses (TP), mit einem Speicher (M) zur Speicherung zumindest eines An wenderprogramms (Ti) mit mindestens einer Task (T1, T2) so wie prozessund anwenderprogrammbezogener Daten, wobei beim Ankoppeln eines redundanten Automatisierungsge rätes (AG') ein Transfer des Inhalts des Speichers (M) in einen Speicher (M') des redundanten Automatisierungsgerätes (AG') erfolgt, d a d u r c h g e k e n n z e i c h n e t, dass jeder Task (T1, T2) zum Transfer des Inhalts eines Teils (M1, M2) des Speichers (M), auf den die jeweilige Task (T1, T2) zugreift, eine Aufdattask (T1A, T2A) zugeord net ist, und dass eine Terminierung der Aufdattask (T1A, T2A) erfolgt, wenn die Laufzeit von Task (T1, T2) und Aufdattask (T1A, T2A) eine vorgegebene oder vorgebbare Laufzeitobergrenze (tll, t21) überschreitet.
2. Automatisierungsgerät nach Anspruch 1, bei dem für jede Task (T1, T2) eine Protokollierung der jeweiligen Zugriffe auf den Speicher (M) in einem Protokollspeicher (T1M, T2M) erfolgt, wobei mittels der Aufdattask (T1A, T2A) der Transfer desjenigen Teils (M1, M2) des Speichers (M) erfolgt, der an hand des Inhalts des jeweiligen Protokollspeichers (T1M, T2M) als zu transferieren erkennbar ist.
3. Automatisierungsgerät nach Anspruch 1 oder 2, bei dem der Aufdattask (T1A, T2A) eine höhere Priorität zugewiesen ist, als derjenigen Task (T1, T2), der die jeweilige Aufdattask (T1A, T2A) zugeordnet ist.
4. Verfahren zum Aufdaten eines mit einem Automatisierungsge rät (AG) kommunikativ verbundenen redundanten Automatisie rungsgerätes (AG') während der Steuerung und/oder Überwachung eines technischen Prozesses (TP), wobei jedes Automatisie rungsgerät (AG, AG') jeweils einen Speicher (M, M') aufweist, wobei im Speicher (M) des Automatisierungsgerätes (AG) zumin dest ein Anwenderprogramm (Ti) mit mindestens einer Task (T1, T2) sowie prozessund anwenderprogrammbezogene Daten gespei chert sind, und wobei in einem ersten Aufdatdurchlauf ein sukzessiver Transfer des Inhalts des Speichers (M) des Auto matisierungsgerätes (AG) in den Speicher (M') des redundanten Automatisierungsgerätes (AG') erfolgt, d a d u r c h g e k e n n z e i c h n e t, dass in einem zweiten Aufdat durchlauf mittels einer der jeweiligen Task (T1, T2) zugeord neten Aufdattask (T1A, T2A) der Inhalt des Teils (M1, M2) des Speichers (M), auf den die Task (T1, T2) zugreift, in den Speicher (M') des redundanten Automatisierungsgerätes (AG') transferiert wird, wobei die Aufdattask (T1A, T2A) terminiert wird, wenn die Laufzeit von Task (T1, T2) und Aufdattask (T1A, T2A) eine vorgegebene oder vorgebbare Laufzeitober grenze (tll, t21) überschreitet.
5. Verfahren nach Anspruch 4, d a d u r c h g e k e n n z e i c h n e t, dass jeder Zugriff einer Task (T1, T2) auf den Speicher (M) protokolliert wird und die Auf dattask (T1A, T2A) den anhand der Protokollierung als zu transferierenden erkennbaren Teil (M1, M2) des Speichers (M) transferiert.
6. Verfahren nach Anspruch 4 oder 5, d a d u r c h g e k e n n z e i c h n e t, dass der Aufdattask (T1A, T2A) eine höhere Priorität zugewiesen wird, als derjenigen Task (T1, T2), der die jeweilige Aufdattask (T1A, T2A) zugeordnet ist.
7. Verfahren nach einem der Ansprüche 4 bis 6, d a d u r c h g e k e n n z e i c h n e t, dass der zweite Aufdatdurchlauf neu gestartet wird, wenn eine Aufdattask (T1A, T2A) aufgrund des Überschreitens der Laufzeitobergrenze (tll, t21) termi niert wurde.
8. Verfahren nach Anspruch 7, d a d u r c h g e k e n n z e i c h n e t, dass der zweite Aufdatdurchlauf nach Ablauf einer vorgegebenen oder vorgebbaren Relaxations zeit neu gestartet wird.
Description:
Beschreibung Automatisierungsgerät und Aufdat-Verfahren Die Erfindung betrifft ein Automatisierungsgerät zur Steue- rung und/oder Überwachung eines technischen Prozesses, mit einem Speicher zur Speicherung zumindest eines Anwenderpro- gramms mit mindestens einer Task sowie prozess-und anwender- programmbezogener Daten, wobei beim Ankoppeln eines redundan- ten Automatisierungsgerätes ein Transfer des Inhalts des Speichers in einen Speicher des redundanten Automatisierungs- gerätes erfolgt. Sie betrifft weiter ein Verfahren zum Aufda- ten eines mit einem solchen Automatisierungsgerät kommunika- tiv verbundenen redundanten Automatisierungsgerätes.

Eine Speicherprogrammierbare Steuerung (SPS) ist eine weit verbreitete, spezielle Realisierung eines zum Einzelbetrieb und damit zum nicht-redundanten Betrieb geeigneten Automati- sierungsgerätes. Auch kann ein so genannter Prozessrechner oder auch ein so genannter Personal Computer, der im Ver- gleich zu einem für einen reinen Büro-Einsatz vorgesehenen Personal Computer insbesondere um ein spezielles Netzteil, um eine spezielle Abschirmung, um einen gepufferten Speicher und/oder um eine unterbrechungsfreie Stromversorgung ergänzt ist, als Automatisierungsgerät eingesetzt werden.

Grundsätzlich umfasst das Automatisierungsgerät, wie jeder "Standardcomputer", zumindest einen Prozessor zum Ausführen eines in einem Speicher hinterlegten Anwenderprogramms. Die Besonderheit des Automatisierungsgerätes im Vergleich zu ei- nem Standardcomputer liegt darin, dass das Automatisierungs- gerät Mittel zur Anbindung an einen zu steuernden und/oder zu überwachenden Prozess aufweist, insbesondere Ein-/Ausgabevor- richtungen, wie z. B. Digital-/Analogeingabeschnittstellen bzw. Digital-/Analogausgabeschnittstellen.

Ein Automatisierungsgerät, das im Gegensatz zu dem für den Einzelbetrieb vorgesehenen Automatisierungsgerät zum redun- danten Betrieb mit mindestens einem redundanten Automatisie- rungsgerät-im folgenden auch als Backupautomatisierungsge- rät bezeichnet-geeignet ist, unterscheidet sich von diesem zumindest durch eine Vorrichtung zur kommunikativen Verbin- dung mit dem zugeordneten redundanten Automatisierungsgerät.

Bei einer derartigen Vorrichtung handelt es sich üblicher- weise um eine Schnittstelle, z. B. um eine serielle/parallele Schnittstelle oder eine Busschnittstelle, die das Herstellen einer Kommunikationsverbindung mit dem zugeordneten redundan- ten Automatisierungsgerät ermöglicht. Derartige, zum redun- danten Betrieb geeignete Automatisierungsgeräte sind z. B. aus der EP 0 497 147, der EP 0 636 956 oder der DE 196 24 302 be- kannt.

Aus der EP 0 497 147 ist ein redundant aus zwei Teilgeräten aufgebautes Automatisierungsgerät bekannt. Jedes der Teilge- räte weist eine Zentraleinheit und einen Speicher sowie einen Kommunikationsprozessor auf, wobei die beiden Kommunikations- prozessoren über eine Kommunikationsleitung miteinander ver- bunden sind. Die beiden Teilgeräte führen identische Anwen- derprogramme aus und tauschen über die Kommunikationsleitung zur Gewährleistung einer synchronen Abarbeitung der identi- schen Anwenderprogramme Synchronisationsdaten aus.

Aus der EP 0 636 956 ist ebenfalls ein zwei Teilsysteme, näm- lich ein Anfangs-und ein Zusatzautomatisierungssystem, auf- weisendes Automatisierungssystem bekannt. Beim Ausfall eines der Teilsysteme wird der technische Prozess durch das verbleibende Teilsystem, das Anfangsautomatisierungssystem, geführt. Nach dem Austausch des ausgefallenen Teilsystems muss dieses, nämlich das Zusatzautomatisierungssystem, wieder an das Anfangsautomatisierungssystem angekoppelt werden. Dazu weist sowohl das Anfangs-wie auch das Zusatzautomatisie- rungssystem eine Kommunikationsschnittstelle auf, mittels de- rer die beiden Teilsysteme kommunikativ verbindbar sind. Über

diese Kommunikationsverbindung wird der Inhalt des Speichers des Anfangsautomatisierungssystems in den Speicher des Zu- satzautomatisierungssystems transferiert. Dieser Transfer er- folgt unter Beibehaltung der Steuerung des technischen Pro- zesses durch das Anfangsautomatisierungssystem, indem entwe- der der Transfer während eines zeitunkritischen Zustands des Anfangsautomatisierungssystems oder sukzessive in sogenannten Zeitscheiben erfolgt.

Der Transfer des Inhalts des Speichers des ersten Gerätes/- Teilsystems in den Speicher des redundanten zweiten Gerätes/- Teilsystems wird auch als"Aufdaten"bezeichnet. So ist z. B. aus der DE 196 24 302 ein Verfahren zum Aufdaten (Aufdatver- fahren) bekannt, mit dem einem z. B. aufgrund von Wartungsar- beiten vorübergehend stillgelegten Zusatzautomatisierungssy- stem der aktuelle Datenbestand des Anfangsautomatisierungs- systems übermittelt wird.

Das bekannte Aufdatverfahren ist in zwei Durchläufe unter- teilt. In einem ersten Durchlauf wird der Inhalt des Spei- chers des Anfangsautomatisierungssystems durch sukzessives Auslesen aus dem Speicher des Anfangsautomatisierungssystems und Einschreiben in den Speicher des Zusatzautomatisierungs- systems übertragen. Der Umfang der dabei in einem Schritt ausgelesenen bzw. eingeschriebenen Daten wird durch die für diesen Vorgang benötigte Zeitspanne und die in Bezug auf den zu steuernden Prozess maximal tolerierbare Latenzphase des Anfangsautomatisierungssystems bestimmt. Nach einer bestimm- ten Anzahl solcher Schreib-und Lesevorgänge ist ein Transfer eines"Grunddatenbestandes"des Anfangsautomatisierungssys- tems an das Zusatzautomatisierungssystem erfolgt. Während dieser Zeit sind jedoch die Daten im Speicher des Anfangsau- tomatisierungssystems aufgrund der nicht unterbrochenen Steu- erung des technischen Prozesses einer kontinuierlichen Verän- derung unterworfen. Diese zwischenzeitlich geänderten Spei- cherinhalte werden in einem weiteren Durchlauf übertragen.

Dazu werden beim Einschreiben von neuen und/oder geänderten

Daten in den Speicher des Anfangsautomatisierungssystems die- selben Daten zusammen mit einer Positionsinformation auch in einen Zwischenspeicher geschrieben und im zweiten Durchlauf wird der Inhalt des Zwischenspeichers unter Auswertung der Positionsinformationen in den Speicher des Zusatzautomatisie- rungssystems übertragen.

Der Erfindung liegt die Aufgabe zugrunde, ein zum redundanten Betrieb geeignetes Automatisierungsgerät anzugeben, mit dem ein Aufdaten eines redundanten Automatisierungsgerätes oder Backupautomatisierungsgerätes besonders effizient und ohne merkliche Störung der fortgesetzten Steuerung des technischen Prozesses sowie ohne zusätzlichen Hardwareaufwand ermöglicht ist. Des Weiteren soll ein besonders geeignetes Verfahren zum Aufdaten eines mit einem solchen Automatisierungsgerät kommu- nikativ verbundenen redundanten Automatisierungsgerätes ange- geben werden.

Bezüglich des Automatisierungsgerätes wird diese Aufgabe er- findungsgemäß gelöst durch die Merkmale des Anspruchs 1. Vor- teilhafte Ausgestaltungen sind Gegenstand der auf diesen rückbezogenen Unteransprüche.

Bezüglich des Aufdatverfahrens wird die genannte Aufgabe er- findungsgemäß gelöst durch die Merkmale des Anspruchs 4.

Zweckmäßige Weiterbildungen sind Gegenstand der auf diesen rückbezogenen Unteransprüche.

Die mit der Erfindung erzielten Vorteile bestehen insbeson- dere darin, dass einerseits zum Aufdaten die Steuerung und/oder Überwachung des technischen Prozesses nicht unter- brochen werden muss, und dass andererseits auch während der fortgesetzten Steuerung und/oder Überwachung des technischen Prozesses Reaktionszeitobergrenzen, d. h. Zeitspannen, inner- halb derer auf eine Veränderung im Zustand des Prozesses rea- giert wird, eingehalten werden, indem eine Aufdattask termi- niert wird, die zusammen mit der dieser zugeordneten Task des

Anwenderprogramms zuviel Laufzeit beansprucht. Sobald die Aufdattask terminiert wurde, ist hinsichtlich der Steuerung und/oder Überwachung des technischen Prozesses wieder die Konstellation hergestellt, die ohne das Erfordernis des Auf- datens bestände, so dass wieder entsprechend der Möglichkei- ten des Anwenderprogramms auf Zustandsänderungen des techni- schen Prozesses reagiert werden kann.

Das im Speicher abgelegte und von einem Prozessor ausgeführte Anwenderprogramm des Automatisierungsgeräts umfasst zumindest eine sogenannte Task, d. h. eine Ablaufeinheit des Anwender- programms, deren Ablauf (Reihenfolge, Dauer) vom sogenannten Scheduler des Betriebssystems bestimmt wird. Zusätzlich zum Anwenderprogramm sind im Speicher des Automatisierungsgerätes auch prozess-und anwenderprogrammbezogene Daten, z. B. Pro- zesszustände und Variable des Anwenderprogramms, gespeichert.

Beim Ankoppeln des Backupautomatisierungsgerätes, z. B. nach Abschluss von Wartungsarbeiten am Backupautomatisierungsge- rät, ist ein Transfer des Inhalts des Speichers des Automati- sierungsgerätes in den Speicher des Backupautomatisierungsge- rätes vorgesehen (Aufdaten). Dabei erfolgt dieser Transfer während des Betriebs des Automatisierungsgerätes, also wäh- rend der ununterbrochenen Steuerung des technischen Prozesses durch das Automatisierungsgerät.

Das Aufdatverfahren ist in zwei Durchläufe unterteilt. In ei- nem ersten Durchlauf wird-analog zum aus der DE 196 24 302 bekannten Aufdatverfahren-der Inhalt des Speichers des Au- tomatisierungsgerätes durch sukzessives Auslesen und Ein- schreiben in den Speicher des Backupautomatisierungsgerätes übertragen. Der Umfang der dabei in einem Schritt ausgelese- nen bzw. eingeschriebenen Daten wird durch die für diesen Vorgang benötigte Zeitspanne und die in Bezug auf den zu steuernden Prozess maximal tolerierbare Latenzphase des Auto- matisierungsgerätes bestimmt. Nach einer bestimmten Anzahl solcher Schreib-und Lesevorgänge ist ein Transfer eines

"Grunddatenbestandes"des Automatisierungsgerätes an das Backupautomatisierungsgerät erfolgt. Während dieser Zeit sind jedoch die Daten im Speicher des Automatisierungsgerätes auf- grund der nicht unterbrochenen Steuerung des technischen Pro- zesses einer kontinuierlichen Veränderung unterworfen. Diese zwischenzeitlich geänderten Speicherinhalte werden in einem weiteren Aufdatdurchlauf übertragen.

Das weitere Aufdaten erfolgt mittels spezieller Aufdattasks, die jeder Task des Anwenderprogramms zum Transfer des Inhalts des Teils des Speichers, auf den die jeweilige Task zugreift, zugeordnet ist, wobei durchaus auch vorgesehen sein kann, dass eine Aufdattask mehreren Tasks des Anwenderprogramms zu- geordnet ist. Dabei wird die jeweilige Aufdattask im An- schluss an die Ausführung derjenigen Task, der die Aufdattask zugeordnet ist, ausgeführt. Die Summe der Laufzeit von Task und zugeordneter Aufdattask ist notwendig größer als die Laufzeit der Task selbst.

Damit das Aufdaten ohne merkliche Störung der fortgesetzten Steuerung des technischen Prozesses erfolgen kann, darf er- kanntermagen der Ablauf einer Aufdattask den Start anderer Tasks des Anwenderprogramms allenfalls marginal verzögern. Um dies zu gewährleisten, wird die Summe der Laufzeiten von Task und zugeordneter Aufdattask ermittelt und als Summenlaufzeit erfasst. Überschreitet die erfasste Summenlaufzeit eine vor- gegebene oder vorgebbare Laufzeitobergrenze wird die Ausfüh- rung der Aufdattask beendet, indem die Aufdattask terminiert wird.

Nachfolgend wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnungen näher erläutert. Darin zeigen : FIG 1 schematisch ein Automatisierungssystem mit einem Automatisierungsgerät und einem damit kommu- nikativ verbundenen redundanten Automatisie-

rungsgerät zur Führung eines technischen Prozes- ses, FIG 2 bis 5 den zeitlichen Ablauf verschiedener Tasks mit jeweils unterschiedlichen Prioritäten eines An- wenderprogramms, FIG 6 eine schematische Darstellung des Transfers des Inhalts einzelner Segmente eines Speichers des Automatisierungsgerätes in einen korrespondie- renden Speicher des redundanten Automatisie- rungsgerätes, und FIG 7 eine schematische Darstellung des Speicherlay- outs des Speichers des Automatisierungsgerätes mit ausgezeichneten Abschnitten/Segmenten, auf die bestimmte Tasks zugreifen.

FIG 1 zeigt ein Automatisierungssystem AG, AG'und einen von diesem zu steuernden und/oder zu überwachenden technischen Prozess TP. Das Automatisierungssystem AG, AG'umfasst zumin- dest ein Automatisierungsgerät AG und ein redundantes Automa- tisierungsgerät oder Backupautomatisierungsgerät AG'.

Sowohl das Automatisierungsgerät AG als auch das Backupauto- matisierungsgerät AG'sind in der Lage, den technischen Pro- zess TP zu führen. Die Unterscheidung zwischen Automatisie- rungsgerät AG und Backupautomatisierungsgerät AG'ist als rein sprachliche Unterscheidung anzusehen, die die jeweilige Funktionalität des Gerätes AG, AG'beschreibt. So kann das Backupautomatisierungsgerät AG'eines ersten Aufdatvorgangs das Automatisierungsgerät AG eines zeitlich später liegenden weiteren Aufdatvorgangs sein.

Um Befehle und Steueranweisungen an den technischen Prozess TP zu übermitteln, aber auch um Signale und Prozesswerte von diesem zu empfangen, ist eine kommunikative Verbindung B zwi- schen den Automatisierungsgeräten AG, AG'und dem technischen Prozess TP vorgesehen. Diese kommunikative Verbindung B ist in FIG 1 exemplarisch als Busverbindung B dargestellt. Die

kommunikative Verbindung B mit dem Prozess TP kann auch ganz oder teilweise in Form einer herkömmlichen Verdrahtung beste- hen.

Gleichfalls nur aus Gründen der zeichnerischen Vereinfachung stellt die kommunikative Verbindung B, die den Prozessan- schluss ermöglicht, auch die kommunikative Verbindung zwi- schen Automatisierungsgerät AG und Backupautomatisierungsge- rät AG'dar. Üblicherweise sind heute gebräuchliche Busver- bindungen B derart leistungsfähig, dass sie ausreichend Band- breite zur Verfügung stellen, um sowohl die interne (Auto- matisierungsgerät AG, Backupautomatisierungsgerät AG') wie auch die externe ((Backup-) Automatisierungsgerät AG, AG', technischer Prozess TP) Kommunikation abzuwickeln. Es ist je- doch gleichfalls möglich, die interne Kommunikation über ei- nen separaten Bus-beispielsweise einen so genannten Rück- wandbus-abzuwickeln, um auf diese Weise ggf. besonders hohe Datentransferraten zu erreichen, so dass das Aufdaten insge- samt beschleunigt erfolgen kann.

Des Weiteren weist jedes Automatisierungsgerät AG, AG'einen Speicher M, M'auf, der zur Speicherung zumindest eines An- wenderprogramms mit mindestens einer Task T1, T2 sowie pro- zess-und anwenderprogrammbezogener Daten vorgesehen ist.

Nachfolgend wird davon ausgegangen, dass es sich bei den Tasks T1, T2 des Anwenderprogramms um sogenannte zyklische Tasks T1, T2 handelt, die jeweils in einem festen Zeitraster, z. B. alle 300ms, ausgeführt werden. Eine zyklische Task T1, T2 gelangt nur dann regelmäßig alle 300ms zur Ausführung, wenn die Laufzeit der Task Tl, T2 selbst nicht mehr als 300ms beträgt und zu dem Zeitpunkt, zu dem diese zyklische Task T1, T2 wieder gestartet werden müsste, keine andere Task T1, T2 ausgeführt wird.

Die Erfüllung der ersten Bedingung erfolgt mit der Program- mierung des Anwenderprogramms, indem für eine Task T1, T2,

die in einem festen Zeitraster von z. B. 300ms läuft, keine Aufgaben vorgesehen werden, deren Abarbeitung mehr als 300ms Laufzeit in Anspruch nimmt.

Die Erfüllung der zweiten Bedingung erfolgt nur mittelbar im Zuge der Programmierung, zumal-wie bereits weiter oben er- wähnt-der Scheduler das Taskmanagement wesentlich über- nimmt. Die Programmierung oder das Programm bildet allerdings mit der durchdachten Zuweisung von Prioritäten, die für den Scheduler ein Maß für die Rangfolge bei der Ausführung kon- kurrierender Tasks T1, T2 sind, die Grundlage dafür, dass ei- ne Ausführung der jeweiligen Task Tl, T2 im beabsichtigten Zeitraster auch tatsächlich möglich ist.

Exemplarisch wird hier der Fall beschrieben, bei dem einer laufzeitintensiven Eingabetask eine höhere Priorität zugewie- sen wird, als einer wichtigen zyklischen Alarmtask und daher der Aufruf der Alarmtask in ihrem Zeitraster nicht möglich ist. Obwohl die Aufrufzeitpunkte der Alarmtask immer wieder erreicht werden, gelangt die Alarmtask aufgrund ihrer gerin- geren Priorität solange nicht zu Ausführung, wie die Einga- betask mit höherer Priorität ausgeführt wird.

FIG 2 zeigt den zeitlichen Verlauf der Abarbeitung eines zy- klischen (Anwender-) Programms Ti mit zwei Tasks Tl, T2. Die Tasks T1, T2 laufen in einem festen Zeitraster, wobei die Task T1 alle 100ms und die Task T2 alle 225ms zur Ausführung gelangt. Auch das zyklische Programm Ti kann als Task, z. B. als Task ohne festes Zeitraster, aufgefasst werden. Die Zyklizität des Programms Ti ist in FIG 2 graphisch durch den "Neustart"des Programms Ti beim Zeitpunkt t+275ms angedeu- tet.

Um sicherzustellen, dass eine Task T1, T2, die für einen Ab- lauf in einem festen Zeitraster vorgesehen ist, tatsächlich auch jeweils zu den durch das Zeitraster vorgegebenen Start- zeitpunkten gestartet wird, sind den Tasks Tl, T2 Prioritäten

zuweisbar, wobei eine höhere Priorität einer Task deren be- vorzugte Bearbeitung durch den Prozessor zur Folge hat. Die Koordination der Tasks erfolgt durch den Scheduler des Be- triebssystems.

Ohne eine Zuweisung von Prioritäten würde mit Hinblick auf die in FIG 2 dargestellte Situation eine einmal gestartete Task Ti permanent-zumindest jedoch bis sie ihr Ende er- reicht-ausgeführt werden. Weitere Tasks T1, T2 würden nicht zur Ausführung gelangen, wenn sie nicht direkt von der perma- nent ausgeführten Task Ti aufgerufen würden. Mit einem sol- chen direkten Aufruf einer Task T1, T2 aus einer anderen, permanent ausgeführten Task Ti lässt sich jedoch ein festes Zeitraster für die Ausführung der Tasks T1, T2 nicht oder nur schwer realisieren, es sein denn, die Task Ti stellt selbst die volle Funktionalität eines Schedulers zur Verfügung.

Der im Betriebssystem enthaltene Scheduler vereinfacht die Koordination beim Ablauf von Tasks T1, T2, Ti. Dazu werden dem Scheduler jede Task T1, T2, Ti bekannt gemacht und für jede Task T1, T2, Ti Parameter definiert, die Art, Dauer und Reihenfolge ihres Ablaufes festlegen.

Für die in FIG 2 dargestellte Situation wird für die Tasks Tl, T2 festgelegt, dass es sich um zyklische Tasks T1, T2 handelt, wobei die Task T1 alle 100ms und die Task T2 alle 225ms aufgerufen werden soll. Zusätzlich wird der Task T1 ei- ne höhere Priorität zugewiesen als der Task T2. Dies ist in FIG 2 durch die Position aber der Ordinate graphisch darge- stellt. Die Task Ti ist eine zyklische Task ohne festes Zeit- raster. Sie wird jedes Mal, wenn sie ihr Ende erreicht, neu gestartet. Die Task Ti hat die niedrigste Priorität.

Wird einer der Zeitpunkte erreicht, zu dem eine der Tasks T1, T2 ausgeführt werden soll-z. B. t+lOOms, t+200ms, t+225ms, t+300ms, t+400ms, t+450ms, t+500ms,...-unterbricht der

Scheduler die Ausführung der Task Ti und sorgt dafür, dass die jeweilige Task T1, T2 zur Ausführung gelangt.

Zum Zeitpunkt t+900ms müsste gemäß dem gewählten Beispiel gleichzeitig sowohl die Task T1-100ms-Raster-wie auch die Task T2-225ms-Raster-zur Ausführung kommen. Dies ist nicht möglich, da der Prozessor nicht die Anweisungen der er- sten Task T1 zeitgleich mit den Anweisungen der zweiten Task T2 ausführen kann. Da der Task T1 eine höhere Priorität als der Task T2 zugewiesen wurde, gelangt in diesem Zeitpunkt und in vergleichbaren Zeitpunkten zunächst die höherpriore Task T1 und unmittelbar danach die Task T2 zur Ausführung. Erst nachdem auch die Task T2 beendet wurde, wird wieder zur Task Ti zurückgeschaltet.

Aus dieser Konstellation ist ersichtlich, dass auch für den Fall, dass eine Task T1, T2 für einen Ablauf in einem festen Zeitraster vorgesehen ist, deren tatsächlicher Ablauf in dem vorgesehenen Zeitraster systemimmanent nicht in jedem Falle sichergestellt werden kann. Darum ist eine Verschiebung der Startzeitpunkte einzelner Tasks T1, T2 in gewissen Grenzen tolerierbar.

FIG 3 veranschaulicht, in welcher Weise, d. h. zu welchen Zeitpunkten, die den Tasks T1, T2 zugeordneten Aufdattasks T1A, T2A zur Ausführung gelangen. Dabei sind die Tasks T1, T2 gemäß FIG 2 erneut dargestellt. Zusätzlich sind die der Task T1 zugeordnete Aufdattask T1A und die der Task T2 zugeordnete Aufdattask T2A dargestellt. Zur Vereinfachung sollen die Tasks T1, T2, T1A, T2A zu jedem dargestellten Aufrufzeitpunkt jeweils gleiche Laufzeiten aufweisen. Jedoch können die Lauf- zeiten der Tasks T1, T2, T1A, T2A von Aufrufzeitpunkt zu Auf- rufzeitpunkt auch differieren.

Die der Task T1 zugeordnete Aufdattask T1A hat eine höhere Priorität als die Task Tl selbst. Dadurch ist gewährleistet, dass die Aufdattask T1A möglichst unmittelbar im Anschluss an

die Ausführung der Task T1 ausgeführt wird. Dies gilt analog für die der Task T2 zugeordnete Aufdattask T2A.

Aus FIG 3 ist ersichtlich, dass für den gewählten Ausschnitt des Zeitstrahls gerade eine Konstellation gegeben ist, bei der die Laufzeiten der Tasks T1, T1A, T2, T2A die Ausführung der zyklischen Tasks T1, T2 zu deren jeweiligen Startzeit- punkten-alle 100ms bzw. alle 225ms-nicht stört. Die für die Ausführung der Aufdattasks T1A, T2A benötigte Zeit geht vollständig"zu Lasten"der Task Ti. Dies ist daran ersicht- lich, dass der Zeitpunkt für den Neustart der Task Ti im Ge- gensatz zu FIG 2 vom Zeitpunkt t+275ms auf den Zeitpunkt t+525ms verschoben ist. Diese Verlängerung einzelner Zyklen des Anwenderprogramms wird nicht als kritisch aufgefasst, da dessen Zykluszeit ohnehin in den seltensten Fällen konstant ist und je nach für die einzelnen Tasks T1, T2 ohnehin erfor- derlicher Laufzeit differiert.

Eine"kritische"Situation liegt erst dann vor, wenn die Aus- führung einer Aufdattask T1A den Start einer zyklischen, in einem festen Zeitraster laufenden Task T2 zu dessen vorbe- stimmten Startzeitpunkt in Frage stellt. Eine derartige Kon- stellation ist in FIG 4 dargestellt.

Die Laufzeit der Aufdattask T1A zum Zeitpunkt t+200ms ist in FIG 4 gegenüber FIG 3 geringfügig langer. Dadurch wird die Aufdattask T1A zum Zeitpunkt t+225ms, d. h. zu dem Zeitpunkt, zu dem eigentlich die Task T2 gestartet werden müsste, noch ausgeführt. Da die Aufdattask T1A eine höhere Priorität als die Task T2 hat, wird die Aufdattask T1A nicht unterbrochen, obwohl der Startzeitpunkt der Task T2 erreicht ist. Die Task T2 gelangt erst zur Ausführung, wenn die Ausführung der Auf- dattask T1A abgeschlossen wurde. Damit liegt jetzt eine Kon- stellation vor, bei der die Task T2 aufgrund der Ausführung der Aufdattask T1A nicht mehr im eigentlich vorgesehenen fe- sten Zeitraster ausgeführt werden kann.

Wie bereits erwähnt, kann die Konstellation, nämlich dass ein festes Zeitraster nicht exakt eingehalten werden kann, auch in Abwesenheit der Aufdattasks T1A, T2A eintreten. Geringfü- gige Verschiebungen der Aufrufzeitpunkte der zyklischen Tasks T1, T2 sind daher stets tolerierbar und werden häufig nicht bemerkt. Welche Verschiebungen der Aufrufzeitpunkte der ein- zelnen zyklischen Tasks T1, T2 im Einzelfall tolerierbar sind, lässt sich nicht im vorhinein festlegen. Statt dessen ist bei der Entwicklung des Programms zur Steuerung und/oder Überwachung des jeweiligen technischen Prozesses TP die Größe der maximal tolerierbaren Verschiebungen gemma$ der erforder- lichen zeitlichen Abfolge beim Aufruf der einzelnen Tasks Tl, T2 und besonders im Hinblick auf die Erfordernisse des zu steuernden und/oder zu überwachenden technischen Prozesses TP festzulegen.

Eine Verschiebung eines Aufrufzeitpunktes einer zyklischen Task um einige 100ms kann bei einem langsamen Prozess, der von einem Programm mit wenigen, weitgehend zeitunkritischen Tasks gesteuert wird, durchaus tolerierbar sein, bei einem schnellen, zeitkritischen Prozess jedoch bereits nachteilige Folgen zeitigen. Festgelegt wird somit die Maximallaufzeiten tll, t21, die Obergrenze für die Summe der Laufzeit der Task T1, T2 und zugeordneter Aufdattask T1A, T2A.

Dies ist programmiertechnisch kein grundsätzlich anderer Ar- beitsschritt als die Festlegung der Aufrufzeitpunkte-des Zeitrasters-der zyklischen Tasks T1, T2 oder deren Priori- täten, die auch im wesentlichen auf die Situation des jewei- ligen technischen Prozesses TP abzustellen sind und damit gleichfalls nicht im vorhinein festlegbar sind. Die Maximal- laufzeit tll könnte also auf den Wert 50ms festlegt werden.

Diese Maximallaufzeit tll ist bei der Konstellation gemäß FIG 4 nicht erreicht. Die Aufdattask T1A würde demnach nicht abgebrochen. Solange während eines Aufdatvorganges keine Auf- dattask T1A, T2A unterbrochen wird, wird der Aufdatvorgang auch insgesamt fortgesetzt.

In FIG 5 ist eine Konstellation dargestellt, bei der die Sum- menlaufzeit tl, d. h. die Summe der Laufzeiten der Task T1 so- wie der zugeordneten Aufdattask T1A, die festgelegte Maxi- mallaufzeit tll von z. B. 50ms überschreiten würde. Bei dieser Konstellation wird die Ausführung der Aufdattask T1A unter- brochen, indem die Aufdattask T1A terminiert wird.

Die Überwachung der Maximallaufzeiten tll, t21 erfolgt z. B. durch eine dafür vorgesehene Überwachungstask mit entspre- chend hoher Priorität. Diese läuft in einem derart engen Zeitraster ab, dass eine Überwachung der Summenlaufzeiten tl, t2 und eine Erkennung des Überschreitens der Maximallaufzei- ten tll, t21 möglich ist.

Durch das Terminieren der Aufdattask T1A wird gewährleistet, dass die Ausführung der zyklischen Task T2 nicht unzulässig verzögert wird. Mit dem Terminieren der Aufdattask T1A wird die"wartende"Task T2 diejenige lauffähige Task mit der der- zeit höchsten Priorität. Diese wird daher vom Scheduler un- mittelbar zur Ausführung vorgesehen. Auch während des Aufda- tens können damit bestimmte Reaktionszeiten eingehalten oder sichergestellt werden, d. h. Zeiten, in denen auf bestimmte Änderungen im technischen Prozess TP, z. B. die Änderungen ei- nes in einen Regelvorgang einfließenden Messwertes, reagiert werden kann.

Wird während des zweiten Durchlaufes-also während des Ab- schnittes des Aufdatens, in dem der Transfer des Speicherin- haltes mittels der Aufdattasks T1A, T2A erfolgt-eine Auf- dattask TlA, T2A aufgrund des Überschreitens der Laufzeit- obergrenze tll, t21 terminiert, so wird der zweite Durchlauf insgesamt abgebrochen und erneut-ggf. nach Verstreichen ei- ner vorgegebenen oder vorgebbaren"Relaxationszeit"von z. B. einer Minute-gestartet.

Das Aufdaten gilt insgesamt nur dann als erfolgreich abge- schlossen, wenn während des zweiten Durchlaufes sämtliche

Aufdattasks T1A, T2A ohne Überschreitung der Laufzeitober- grenze tll, t21 abgearbeitet werden, also sich dadurch selbst terminieren, dass sie ihr Programmende erreichen und in einem abschließenden Schritt der Inhalt eines speziellen Speicher- bereiches, auf den das Anwenderprogramm während des Aufdatens zugreift, transferiert wird.

Nunmehr erfolgt das Aufdaten des Backupautomatisierungsgerä- tes AG', indem zunächst der Inhalt des Speichers M des Auto- matisierungsgerätes AG sukzessive ausgelesen und durch Ein- schreiben in den Speicher M'des Backupautomatisierungsgerä- tes AG'an dieses übertragen wird. Dieser erste Durchlauf des Aufdatvorganges ist in FIG 6 dargestellt.

Gemäß FIG 6 wird der Inhalt des Speichers M sukzessive ausge- lesen und in den Speicher M'des Backupautomatisierungsgerä- tes AG'übertragen. Dies ist durch den strichliniert oder durchgehend umrandeten Ausschnitt des Speichers M angedeutet.

Die Übertragung erfolgt über die zwischen Automatisierungsge- rät AG und Backupautomatisierungsgerät AG'vorgesehene kommu- nikative Verbindung B, z. B. einen Bus. Dies ist in FIG 6 durch einen Pfeil angedeutet.

Mit diesem Schritt ist ein"Grunddatenbestand"an das Backup- automatisierungsgerät AG'übertragen. Dieser Grunddatenbe- stand umfasst z. B. das auf dem Automatisierungsgerät AG ab- laufende Anwenderprogramm sowie das sogenannte Peripherie- oder Prozessabbild des technischen Prozesses TP und ferner evtl. gewisse nicht ständiger Veränderung unterworfene Daten (z. B. Betriebsparameter, Rezeptdaten, etc.) des Anwenderpro- gramms.

Da während des Aufdatens-also auch während der Übertragung des"Grunddatenbestandes"-die Führung des technischen Pro- zesses TP durch das Automatisierungsgerät AG unverändert auf- rechterhalten wird, finden kontinuierliche Veränderungen des Inhalts des Speichers M statt. Diese Veränderungen im Spei-

cher M sind in FIG 6 durch die ausgekreuzten Bereiche im Speicher M dargestellt.

Beim Transfer des"Grunddatenbestandes"werden alle Verände- rungen, die"vor"dem Abschnitt, der gerade ausgelesen und transferiert wird, berücksichtigt, da der Abschnitt, in dem diese Veränderungen aufgetreten sind, genau wie alle vorheri- gen Abschnitte ausgelesen und komplett transferiert wird. In FIG 6 ist dies ein Bereich, der vor dem gerade transferierten Bereich liegt. Die weiteren drei in FIG 6 dargestellten ver- änderten Bereiche konnten bei der Übertragung des Grunddaten- bestandes nicht berücksichtigt werden, da die entsprechenden Veränderungen erst wirksam wurden, nachdem die Inhalte der betreffenden Abschnitte übertragen worden sind. Ein mehrmali- ges Wiederholen des Transfers des Grunddatenbestandes in der beschriebenen Art und Weise bringt hier keinen besseren Er- folg, da die Veränderungen im Speicher M kontinuierlich, aber nicht deterministisch erfolgen.

Als ergänzender Aufdatdurchlauf, der in der Lage ist, auch während des Aufdatens erfolgende Änderungen des Inhalts des zu transferierenden Speichers M zu berücksichtigen, wird jetzt ein Durchlauf mit einer jeder Task T1, T2 des Anwender- programms zugeordneten Aufdattask T1A, T2A gestartet.

Wie aus FIG 7 ersichtlich ist, greift eine Task T1, T2 nicht auf den gesamten Speicher M, sondern nur auf einen Ausschnitt M1, M2 des Speichers M des Automatisierungsgerätes AG zu. Der Ausschnitt M1, M2, auf den die jeweilige Task T1, T2 zu- greift, wird von der jeweils zugeordneten Aufdattask T1A, T2A sukzessive-in einer dem Transfer des Grunddatenbestandes im ersten Aufdatdurchlauf vergleichbaren Weise-ausgelesen (an- gedeutet durch die unterschiedlich umrandeten Bereiche im je- weiligen Ausschnitt M1, M2) und in den (nicht dargestellten) Speicher M'des Backupautomatisierungsgerätes AG'übertragen.

Dabei werden zusätzliche Positionsinformationen herangezogen, die die Position eines gerade gelesenen Bereiches eines Aus-

schnittes M1, M2 bezogen auf den Speicher M angeben und mit. denen gewährleistet wird, dass der Inhalt des gerade gelese- nen Bereiches auch im Speicher M'an entsprechende Adressen geschrieben wird.

Auch wenn mittels der Aufdattask T1A, T2A der Transfer des Inhalts des Teils des Speichers M1, M2, auf den die jeweilige Task T1, T2 zugreift, grundsätzlich sukzessive erfolgt, er- folgt dieser sukzessive Transfer innerhalb eines Aufrufes der Aufdattask T1A, T2A. Im Programmcode der Aufdattask T1A, T2A kann auch vorgesehen sein, dass der Transfer des Inhalts des Speicherausschnittes M1, M2 vollständig mit einem Lese-und einem Schreibvorgang erfolgt.

Damit die Aufdattask T1A, T2A in die Lage versetzt wird, aus- schließlich den Inhalt des Teils des Speichers M1, M2, auf den die jeweilige Task T1, T2 zugreift, zu transferieren, sind innerhalb der Aufdattask T1A, T2A Parameter zur Kenn- zeichnung des jeweiligen Speicherausschnittes M1, M2-übli- cherweise als Offset und Größe oder auch als Start-und End- adresse-bekannt. Diese Parameter können beim Programmieren mit den jeweiligen Werten belegt werden.

Alternativ ist auch ein Verfahren denkbar, bei dem für jede Task T1, T2 deren Zugriffe auf den Speicher M in einem Proto- kollspeicher T1M, T2M protokolliert werden und die Aufdattask T1A, T2A denjenigen Teil des Speichers M1, M2 transferiert, der anhand des Inhalts des jeweiligen Protokollspeichers T1M, T2M als zu transferieren erkennbar ist. Dies vermeidet das ggf. fehlerträchtige Erfordernis, die Parameter für den zu berücksichtigenden Speicherausschnitt M1, M2 beim Programmie- ren festlegen zu müssen und hat zudem den Vorteil, dass die Aufdattask T1A, T2A nicht den gesamten Inhalt des Speicher- ausschnittes M1, M2 transferieren muss, sondern nur denjeni- gen Teil, der tatsächlich verändert wurde.

Mit der schematischen Darstellung des Protokollspeichers T1M, T2M in FIG 6 ist veranschaulicht, dass der Protokollspeicher T1M, T2M außerhalb des Speichers M liegt, dessen Inhalt an das redundante Automatisierungsgerät AG'zu übertragen ist, zumal ein Transfer des Inhalt des Protokollspeichers T1M, T2M nicht erforderlich ist. Der Protokollspeicher T1M, T2M wird als Teil des Speichers M realisiert sein, so dass die aus in FIG 6 vorgenommene Trennung zwischen Speicher M und Proto- kollspeicher T1M, T2M nur der Übersichtlichkeit dient. Der zu transferierende Bereich des Speichers M wird dann durch eine Start-und Endadresse oder eine Startadresse und ein ab die- ser Startadresse zu übertragendes Datenvolumen angegeben.

Nicht zu transferierende Speicherinhalte, wie z. B. die In- halte der besagten Protokollspeicher T1M, T2M, können dann außerhalb des auf diese Weise vorgesehenen Bereiches liegen.

Wenn während des zweiten Aufdatdurchlaufes keine der Aufdat- tasks T1A, T2A aufgrund des Überschreitens der Laufzeitober- grenze tll, t21 terminiert wird, gilt das Aufdaten-vorbe- haltlich des noch abzuwickelnden Transfers des Inhalts des speziellen Speicherbereiches, auf den das Anwenderprogramm während des Aufdatens zugreift,-als erfolgreich beendet.

Der Inhalt des Speichers M'des Backupautomatisierungsgerätes AG'entspricht dem Inhalt des Speichers M des Automatisie- rungsgerätes AG.

Durch ein Signal vom Automatisierungsgerät AG an das Backup- automatisierungsgerät AG'kann diesem angezeigt werden, dass das Aufdaten erfolgreich abgeschlossen ist. Wenn im Backup- automatisierungsgerät AG'daraufhin die Kopie des Anwender- programms gestartet wird und das Backupautomatisierungsgerät AG'aufgrund der Kopie des Anwenderprogramms identische Ak- tionen ausführt wie das Automatisierungsgerät AG'bleibt die Identität der Daten weiterhin gewährleistet. Somit kann das Backupautomatisierungsgerät AG', z. B. im Falle eines notwen- dig werdenden Austausches des Automatisierungsgerätes AG, so- fort die Führung des technischen Prozesses TP übernehmen.

Der Transfer der Inhalte der jeweiligen Speicherausschnitte M1, M2 mittels der Aufdattasks erweist sich als vorteilhaft, weil eine Veränderung der Inhalte der Speicherausschnitte nur während der Laufzeit der jeweiligen Tasks T1, T2, nicht je- doch während der Laufzeit der Aufdattasks T1A, T2A möglich ist. Die Aufdattasks T1A, T2A können daher die Inhalte der jeweiligen Speicherausschnitte M1, M2 stets komplett transfe- rieren, so dass am Ende der Aufdattask T1A, T2A sicherge- stellt ist, dass der Inhalt des jeweiligen Speicherausschnit- tes M1, M2 komplett übertragen wurde, ohne dass zwischenzeit- liche Änderungen im Inhalt dieses Speicherausschnittes einen erneuten Transfer erforderlich machen würden.

Nachfolgend wird ein Sonderfall beschrieben, der aus den bis- herigen Ausführungen, insbesondere im Zusammenhang mit FIG 3, ersichtlich ist. Gemäß FIG 3 wird-ausgehend vom Zeitpunkt t+Oms-die Aufdattask T1A zweimal aufgerufen und komplett ausgeführt, bevor die Aufdattask T2A das erste mal aufgerufen wird. Nachdem das Aufdaten (im wesentlichen) als erfolgreich ausgeführt gilt, wenn sämtliche Aufdattasks T1A, T2A komplett ausgeführt werden konnten, muss die Tatsache der kompletten Ausführung der jeweiligen Aufdattasks T1A, T2A abgespeichert werden. In der Konstellation gemäß FIG 3 würde für die Auf- dattask T1A etwa im Zeitpunkt t+125ms ein"flag"gesetzt, das die komplette Ausführung der Aufdattask T1A kennzeichnet. Im Zeitpunkt t+250ms würde ein entsprechendes flag für die Auf- dattasks T2A gesetzt. Da keine weiteren Aufdattasks T1A, T2A vorhanden sind, gilt der Aufdatdurchlauf damit als erfolg- reich beendet. Der zweite Aufdatdurchlauf ist etwa im Zeit- punkt t+250ms abgeschlossen. Ein nochmaliges Starten der Auf- dattasks T1A, T2A ist nicht erforderlich, auch wenn dies in FIG 3,4 und 5 entsprechend dargestellt ist.

Eine eine Sonderbehandlung erfordernde Konstellation tritt allerdings dann auf, wenn vor Beendigung des zweiten Aufdat- durchlaufes eine Aufdattask T1A, T2A nach einem einmal er- folgten kompletten Durchlauf erneut gestartet wird. Eine der-

artige Konstellation ist in FIG 5 dargestellt. Im Zeitpunkt t+125ms ist die Aufdattask T1A abgearbeitet und ein entspre- chendes flag würde gesetzt. Im Zeitpunkt t+250ms wird-weil der zweite Aufdatdurchlauf noch nicht abgeschlossen ist-die erneut aufgerufene Aufdattask T1A terminiert, da die vorgege- bene Laufzeitobergrenze tll überschritten wird. Im Zeitpunkt t+275ms wird für die dann abgearbeitete Aufdattask T2A das entsprechende flag gesetzt.

Auch hier wären beide flags gesetzt, nämlich für die Aufdat- tasks T1A von deren erstmaligem Aufruf und für die Aufdat- tasks T2A von deren einzigem Aufruf, und der Aufdatdurchlauf müsste damit als erfolgreich abgeschlossen gelten. Tatsäch- lich wurde allerdings die Aufdattask T1A terminiert, bevor diese den Inhalt des gesamten Ausschnittes M1 des Speichers M, auf den die zugehörige Task T1 zugreift, transferieren konnte. Es sind also eventuell nicht sämtliche Änderungen im Speicherausschnitt M1 transferiert worden, so dass das Aufda- ten in einer solchen Konstellation nicht als abgeschlossen gelten kann.

Die erforderliche Sonderbehandlung lässt sich jedoch einfach damit erreichen, dass das der jeweiligen Aufdattask T1A, T2A zugeordnete flag bei jedem neuen Aufruf derjenigen Task T1, T2, der die jeweilige Aufdattask T1A, T2A zugeordnet ist, zu- rückgesetzt wird. Für die oben beschriebene Konstellation be- deutet dies, dass das flag der Aufdattask T1A zum Zeitpunkt t+125ms gesetzt und zum Zeitpunkt t+200ms zurückgesetzt wird.

Auch wenn jetzt im Zeitpunkt t+275ms das flag der Aufdattask T2A gesetzt wird, gilt das Aufdaten nicht als abgeschlossen, da das flag der Aufdattask T1A fehlt. Tatsächlich gilt das Aufdaten erst zum Zeitpunkt t+375ms als abgeschlossen, d. h. zum frühesten Zeitpunkt, zu dem erstmalig das flag der Auf- dattask T1A wieder gesetzt ist, das flag der Aufdattask T2A aber noch nicht wieder zurückgesetzt ist.

Für den Fall, dass gemma$ der oben bereits beschriebenen vor- teilhaften Ausgestaltung der Erfindung der Protokollspeicher T1M, T2M zur Anwendung kommt, ist nach jeder kompletten Aus- führung einer Aufdattask T1A, T2A der Inhalt des jeweiligen Protokollspeichers T1M, T2M zurückzusetzen oder als ungültig zu markieren.

Ein weiterer Aspekt der Erfindung beschäftigt sich mit der Situation, bei der eine spezielle Task, eine für spezielle Fehlerbehandlungen bzw. Fehlerreaktionen vorgesehene F-Task, mit niedriger Priorität durch die Summe der Laufzeiten der Aufdattasks T1A, T2A nicht mehr in dem eigentlich vorgesehe- nen festen Zeitraster ausgeführt werden kann, da aufgrund der niedrigen Priorität der F-Task lauffähige Tasks T1, T2 mit höherer Priorität und deren zugeordnete Aufdattasks T1A, T2A "bevorzugt"ausgeführt werden.

Für eine solche Konstellation ist gemäß dieses Aspektes vor- gesehen, dass die Aufdattask T1A, T2A einer Task T1, T2 mit höherer Priorität, vorzugsweise die Aufdattask T1A derjenigen Task T1 mit der höchsten Priorität vor ihrer eigenen Ausfüh- rung kurzfristig die Priorität der F-Task auf einen Wert, der deren sofortige Ausführung-unter entsprechender Verdrängung der Aufdattask T1A-zur Folge hat, setzt. Auf diese Weise wird gewährleistet, dass auch beim Aufdaten das Reaktionsver- halten spezieller niederpriorer F-Task vorhersagbar bleibt, da deren Aufruf durch die zusätzliche Ausführung der Aufdat- tasks T1A, T2A nicht länger als tolerierbar verzögert wird.

Somit ist ein Automatisierungsgerät mit einem taskorientier- ten Anwenderprogramm bereitgestellt, dessen Speicherinhalt ohne Unterbrechung des Betriebs an ein redundantes Automati- sierungsgerät zu übertragen ist. Nach einem herkömmlichen Transfer eines Grunddatenbestandes erfolgt der Transfer zwi- schenzeitlich geänderter Daten mittels den einzelnen Tasks zugeordneter Aufdattasks, wobei die Aufdattasks nur denjeni- gen Ausschnitt des Speicherinhaltes übertragen, auf den die jeweilige Task zugreift.

Bezugszeichenliste AG, AGz Automatisierungsgerät B Verbindung M, M Speicher T1, 2 Task TlA, T2A Aufdattask Ti (Anwender-) Programm/Task