DE19956271A1 - Automatisierungsgerät und Aufdat-Verfahren - Google Patents

Automatisierungsgerät und Aufdat-Verfahren

Info

Publication number
DE19956271A1
DE19956271A1 DE19956271A DE19956271A DE19956271A1 DE 19956271 A1 DE19956271 A1 DE 19956271A1 DE 19956271 A DE19956271 A DE 19956271A DE 19956271 A DE19956271 A DE 19956271A DE 19956271 A1 DE19956271 A1 DE 19956271A1
Authority
DE
Germany
Prior art keywords
task
memory
update
automation device
tasks
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
DE19956271A
Other languages
English (en)
Inventor
Herbert Barthel
Juergen Laforsch
Ralph Luber
Josef Ritzer
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 Corp
Original Assignee
Siemens Corp
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 Corp filed Critical Siemens Corp
Priority to DE19956271A priority Critical patent/DE19956271A1/de
Priority to EP00989773A priority patent/EP1238318B1/de
Priority to PCT/DE2000/004002 priority patent/WO2001037058A1/de
Priority to JP2001539086A priority patent/JP3754369B2/ja
Priority to ES00989773T priority patent/ES2203549T3/es
Priority to DE50002941T priority patent/DE50002941D1/de
Priority to CNB008182191A priority patent/CN1193281C/zh
Priority to AT00989773T priority patent/ATE245287T1/de
Priority to US10/130,117 priority patent/US7168075B1/en
Publication of DE19956271A1 publication Critical patent/DE19956271A1/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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • 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/24Pc safety
    • G05B2219/24182Redundancy
    • 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/24Pc safety
    • G05B2219/24186Redundant processors are synchronised
    • 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/24Pc safety
    • G05B2219/24187Redundant processors run identical programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Es wird ein Automatisierungsgerät (AG) mit einem taskorientierten Anwenderprogramm angegeben, dessen Speicherinhalt (M) ohne Unterbrechung des Betriebs an ein redundantes Automatisierungsgerät (AG') zu übertragen ist. Nach einem herkömmlichen Transfer eines Grunddatenbestandes erfolgt der Transfer zwischenzeitlich geänderter Daten mittels den einzelnen Tasks (T1, T2) zugeordneter Aufdattasks (T1A, T2A), wobei diese nur denjenigen Ausschnitt (M1, M2) des Speicherinhalts (M) übertragen, auf den die jeweiligen Tasks (T1, T2) zugreifen.

Description

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 prozeß- 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 sogenannter Prozessrechner oder auch ein sogenannter Personal Computer, der im Vergleich 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 umfaßt 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, daß das Automatisierungsge­ rät Mittel zur Anbindung an einen zu steuernden und/oder zu überwachenden Prozeß 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 Prozeß durch das verblei­ bende Teilsystem, das Anfangsautomatisierungssystem, geführt. Nach dem Austausch des ausgefallenen Teilsystems muß dieses, nämlich das Zusatzautomatisierungssystem, wieder an das An­ fangsautomatisierungssystem angekoppelt werden. Dazu weist sowohl das Anfangs- wie auch das Zusatzautomatisierungssystem eine Kommunikationsschnittstelle auf, mittels derer die bei­ den Teilsysteme kommunikativ verbindbar sind. Über diese Kom­ munikationsverbindung wird der Inhalt des Speichers des An­ fangsautomatisierungssystems in den Speicher des Zusatzauto­ matisierungssystems transferiert. Dieser Transfer erfolgt un­ ter Beibehaltung der Steuerung des technischen Prozesses durch das Anfangsautomatisierungssystem, indem entweder der Transfer während eines zeitunkritischen Zustands des Anfangs­ automatisierungssystems oder sukzessive in sogenannten Zeit­ scheiben 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 Prozeß maximal tolerierbare Latenzphase des An­ fangsautomatisierungssystems bestimmt. Nach einer bestimmten Anzahl solcher Schreib- und Lesevorgänge ist ein Transfer ei­ nes "Grunddatenbestandes" des Anfangsautomatisierungssystems an das Zusatzautomatisierungssystem erfolgt. Während dieser Zeit sind jedoch die Daten im Speicher des Anfangsautomati­ sierungssystems aufgrund der nicht unterbrochenen Steuerung des technischen Prozesses einer kontinuierlichen Veränderung unterworfen. Diese zwischenzeitlich geänderten Speicherin­ halte werden in einem weiteren Durchlauf übertragen. Dazu werden beim Einschreiben von neuen und/oder geänderten Daten in den Speicher des Anfangsautomatisierungssystems dieselben Daten zusammen mit einer Positionsinformation auch in einen Zwischenspeicher geschrieben und im zweiten Durchlauf wird der Inhalt des Zwischenspeichers unter Auswertung der Positi­ onsinformationen in den Speicher des Zusatzautomatisierungs­ systems ü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­ findungsgsmäß 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 muß, 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 umfaßt 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 prozeß- und anwenderprogrammbezogene Daten, z. B. Prozeß­ zustände und Variable des Anwenderprogramms, gespeichert.
Beim Ankoppeln des Backupautomatisierungsgerätes, z. B. nach Abschluß von Wartungsarbeiten am Backupautomatisierungsgerät, ist ein Transfer des Inhalts des Speichers des Automatisie­ rungsgerätes in den Speicher des Backupautomatisierungsgerä­ tes vorgesehen (Aufdaten). Dabei erfolgt dieser Transfer wäh­ rend des Betriebs des Automatisierungsgerätes, also während 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 Prozeß 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, daß eine Aufdattask mehreren Tasks des Anwenderprogramms zugeordnet ist. Dabei wird die jeweilige Aufdattask im An­ schluß 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­ kanntermaßen 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 erfaßt. Überschreitet die erfaßte Summenlaufzeit eine vorge­ gebene oder vorgebbare Laufzeitobergrenze wird die Ausführung 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 Prozeß TP. Das Automatisierungssystem AG, AG' umfaßt 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­ zeß 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 Prozeß TP zu übermitteln, aber auch um Signale und Prozeßwerte von die­ sem zu empfangen, ist eine kommunikative Verbindung B zwi­ schen den Automatisierungsgeräten AG, AG' und dem technischen Prozeß TP vorgesehen. Diese kommunikative Verbindung B ist in Fig. 1 exemplarisch als Busverbindung B dargestellt. Die kom­ munikative Verbindung B mit dem Prozeß TP kann auch ganz oder teilweise in Form einer herkömmlichen Verdrahtung bestehen.
Gleichfalls nur aus Gründen der zeichnerischen Vereinfachung stellt die kommunikative Verbindung B, die den Prozeßanschluß ermöglicht, auch die kommunikative Verbindung zwischen Auto­ matisierungsgerät AG und Backupautomatisierungsgerät AG' dar. Üblicherweise sind heute gebräuchliche Busverbindungen B der­ art leistungsfähig, dass sie ausreichend Bandbreite zur Ver­ fügung stellen, um sowohl die interne (Automatisierungsgerät AG, Backupautomatisierungsgerät AG') wie auch die externe ((Backup-)Automatisierungsgerät AG, AG', technischer Prozeß TP) Kommunikation abzuwickeln. Es ist jedoch gleichfalls mög­ lich, die interne Kommunikation über einen separaten Bus - beispielsweise einen sogenannten Rückwandbus - abzuwickeln, um auf diese Weise ggf. besonders hohe Datentransferraten zu erreichen, so dass das Aufdaten insgesamt beschleunigt erfol­ gen 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­ zeß- und anwenderprogrammbezogener Daten vorgesehen ist.
Nachfolgend wird davon ausgegangen, daß 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 300 ms, ausgeführt werden. Eine zyklische Task T1, T2 ge­ langt nur dann regelmäßig alle 300 ms zur Ausführung, wenn die Laufzeit der Task T1, T2 selbst nicht mehr als 300 ms beträgt und zu dem Zeitpunkt, zu dem diese zyklische Task T1, T2 wie­ der gestartet werden müßte, keine andere Task T1, T2 ausge­ fü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. 300 ms läuft, keine Aufgaben vorgesehen werden, deren Abarbeitung mehr als 300 ms 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 eine Ausführung der jeweiligen Task T1, 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 T1 mit zwei Tasks T1, T2. Die Tasks T1, T2 laufen in einem festen Zeitraster, wobei die Task T1 alle 100 ms und die Task T2 alle 225 ms zur Ausführung gelangt. Auch das zyklische Programm T1 kann als Task, z. B. als Task ohne festes Zeitraster, aufgefaßt werden. Die Zykli­ zität des Programms T1 ist in Fig. 2 graphisch durch den "Neu­ start" des Programms T1 beim Zeitpunkt t + 275 ms angedeutet.
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 T1, 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 T1 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 T1 aufgerufen würden. Mit einem sol­ chen direkten Aufruf einer Task T1, T2 aus einer anderen, permanent ausgeführten Task T1 läßt sich jedoch ein festes Zeitraster für die Ausführung der Tasks T1, T2 nicht oder nur schwer realisieren, es sein denn, die Task T1 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, T1. Dazu werden dem Scheduler jede Task T1, T2, T1 bekannt gemacht und für jede Task T1, T2, T1 Parameter definiert, die Art, Dauer und Reihenfolge ihres Ablaufes festlegen.
Für die in Fig. 2 dargestellte Situation wird für die Tasks T1, T2 festgelegt, daß es sich um zyklische Tasks T1, T2 han­ delt, wobei die Task T1 alle 100 ms und die Task T2 alle 225 ms aufgerufen werden soll. Zusätzlich wird der Task T1 eine hö­ here Priorität zugewiesen als der Task T2. Dies ist in Fig. 2 durch die Position über der Ordinate graphisch dargestellt. Die Task T1 ist eine zyklische Task ohne festes Zeitraster. Sie wird jedes Mal, wenn sie ihr Ende erreicht, neu gestar­ tet. Die Task T1 hat die niedrigste Priorität.
Wird einer der Zeitpunkte erreicht, zu dem eine der Tasks T1, T2 ausgeführt werden soll - z. B. t + 100 ms, t + 200 ms, t + 225 ms, t + 300 ms, t + 400 ms, t + 450 ms, t + 500 ms, . . . - unterbricht der Scheduler die Ausführung der Task T1 und sorgt dafür, dass die jeweilige Task T1, T2 zur Ausführung gelangt.
Zum Zeitpunkt t + 900 ms müßte gemäß dem gewählten Beispiel gleichzeitig sowohl die Task T1 - 100 ms-Raster - wie auch die Task T2-225 ms-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 T1 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 T1 selbst. Dadurch ist gewährleistet, dass die Aufdattask T1A möglichst unmittelbar im Anschluß 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 100 ms bzw. alle 225 ms - nicht stört. Die für die Ausführung der Aufdattasks T1A, T2A benötigte Zeit geht vollständig "zu Lasten" der Task T1. Dies ist daran ersicht­ lich, dass der Zeitpunkt für den Neustart der Task T1 im Ge­ gensatz zu Fig. 2 vom Zeitpunkt t + 275 ms auf den Zeitpunkt t + 525 ms verschoben ist. Diese Verlängerung einzelner Zyklen des Anwenderprogramms wird nicht als kritisch aufgefaßt, 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 + 200 ms ist in Fig. 4 gegenüber Fig. 3 geringfügig länger. Dadurch wird die Aufdattask T1A zum Zeitpunkt t + 225 ms, d. h. zu dem Zeitpunkt, zu dem eigentlich die Task T2 gestartet werden müßte, 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äßt 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 gemäß der erforder­ lichen zeitlichen Abfolge beim Aufruf der einzelnen Tasks T1, 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 100 ms kann bei einem langsamen Prozeß, der von einem Programm mit wenigen, weitgehend zeitunkritischen Tasks gesteuert wird, durchaus tolerierbar sein, bei einem schnel­ len, zeitkritischen Prozeß jedoch bereits nachteilige Folgen zeitigen. Festgelegt wird somit die Maximallaufzeiten t11, 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 t11 könnte also auf den Wert 50 ms festlegt werden. Diese Maximallaufzeit t11 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 t1, d. h. die Summe der Laufzeiten der Task T1 sowie der zugeordneten Aufdattask T1A, die festgelegte Maxi­ mallaufzeit t11 von z. B. 50 ms ü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 t11, 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 t1, t2 und eine Erkennung des Überschreitens der Maximallaufzei­ ten t11, 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 Prozeß TP, z. B. die Änderungen ei­ nes in einen Regelvorgang einfließenden Meßwertes, 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 T1A, T2A aufgrund des Überschreitens der Laufzeit­ obergrenze t11, 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 t11, 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 umfaßt z. B. das auf dem Automatisierungsgerät AG ablau­ fende Anwenderprogramm sowie das sogenannte Peripherie- oder Prozeßabbild des technischen Prozesses TP und ferner evtl. gewisse nicht ständiger Veränderung unterworfene Daten (z. B. Betriebsparameter, Rezeptdaten, etc.) des Anwenderprogramms.
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 TIA, T2A kann auch vorgesehen sein, daß 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 TiM, 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, daß die Aufdattask T1A, T2A nicht den gesamten Inhalt des Speicher­ ausschnittes M1, M2 transferieren muß, sondern nur denjenigen 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 daß 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 t11, 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, daß 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 + 0 ms - 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, muß 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 + 125 ms ein "'flag" gesetzt, das die komplette Ausführung der Aufdattask T1A kennzeichnet. Im Zeitpunkt t + 250 ms 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 + 250 ms 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 + 125 ms ist die Aufdattask T1A abgearbeitet und ein entspre­ chendes flag würde gesetzt. Im Zeitpunkt t + 250 ms wird - weil der zweite Aufdatdurchlauf noch nicht abgeschlossen ist - die erneut aufgerufene Aufdattask T1A terminiert, da die vorgege­ bene Laufzeitobergrenze t1l überschritten wird. Im Zeitpunkt t + 275 ms 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üßte damit als erfolgreich abgeschlossen gelten. Tatsächlich 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 Speicher­ ausschnitt M1 transferiert worden, so daß das Aufdaten in ei­ ner solchen Konstellation nicht als abgeschlossen gelten kann.
Die erforderliche Sonderbehandlung läßt 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 + 12 ms gesetzt und zum Zeitpunkt t + 200 ms zurückgesetzt wird. Auch wenn jetzt im Zeitpunkt t + 275 ms 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 + 375 ms 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, daß gemäß 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, daß 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.

Claims (8)

1. Automatisierungsgerät (AG) zur Steuerung und/oder Überwa­ chung eines technischen Prozesses (TP),
  • - mit einem Speicher (M) zur Speicherung zumindest eines An­ wenderprogramms (T1) mit mindestens einer Task (T1, T2) so­ wie prozeß- und 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,
dadurch gekennzeichnet,
  • - 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 (t1l, t2l) ü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 (T1) mit mindestens einer Task (T1, T2) sowie prozeß- und 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, dadurch gekennzeichnet, 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 (t11, t21) überschreitet.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass jeder Zugriff einer Task (T1, T2) auf den Speicher (M) protokolliert wird und die Auf­ dattask (TIA, T2A) den anhand der Protokollierung als zu transferierenden erkennbaren Teil (M1, M2) des Speichers (M) transferiert.
6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, 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, dadurch gekennzeichnet, dass der zweite Aufdatdurchlauf neu gestartet wird, wenn eine Aufdattask (T1A, T2A) aufgrund des Überschreitens der Laufzeitobergrenze (t1l, t2l) termi­ niert wurde.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der zweite Aufdatdurchlauf nach Ablauf einer vorgegebenen oder vorgebbaren Relaxations­ zeit neu gestartet wird.
DE19956271A 1999-11-15 1999-11-23 Automatisierungsgerät und Aufdat-Verfahren Withdrawn DE19956271A1 (de)

Priority Applications (9)

Application Number Priority Date Filing Date Title
DE19956271A DE19956271A1 (de) 1999-11-15 1999-11-23 Automatisierungsgerät und Aufdat-Verfahren
EP00989773A EP1238318B1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren
PCT/DE2000/004002 WO2001037058A1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren
JP2001539086A JP3754369B2 (ja) 1999-11-15 2000-11-14 自動化装置および更新方法
ES00989773T ES2203549T3 (es) 1999-11-15 2000-11-14 Aparato de automatizacion y procedimiento de actualizacion.
DE50002941T DE50002941D1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren
CNB008182191A CN1193281C (zh) 1999-11-15 2000-11-14 自动化设备及更新方法
AT00989773T ATE245287T1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren
US10/130,117 US7168075B1 (en) 1999-11-15 2000-11-14 Automation device and updating method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE19955073 1999-11-15
DE19956271A DE19956271A1 (de) 1999-11-15 1999-11-23 Automatisierungsgerät und Aufdat-Verfahren

Publications (1)

Publication Number Publication Date
DE19956271A1 true DE19956271A1 (de) 2001-06-07

Family

ID=7929203

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19956271A Withdrawn DE19956271A1 (de) 1999-11-15 1999-11-23 Automatisierungsgerät und Aufdat-Verfahren
DE50002941T Expired - Lifetime DE50002941D1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE50002941T Expired - Lifetime DE50002941D1 (de) 1999-11-15 2000-11-14 Automatisierungsgerät und aufdat-verfahren

Country Status (1)

Country Link
DE (2) DE19956271A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1302826A1 (de) * 2001-09-27 2003-04-16 Siemens Aktiengesellschaft Synchronisationsverfahren für ein hochverfügbares Automatisierungssystem
EP1860514A1 (de) 2006-05-26 2007-11-28 Siemens Aktiengesellschaft Anordnung mit mindestens zwei über Kommunikationsmittel verbundenen Automatisierungsgeräten

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1302826A1 (de) * 2001-09-27 2003-04-16 Siemens Aktiengesellschaft Synchronisationsverfahren für ein hochverfügbares Automatisierungssystem
EP1526420A1 (de) * 2001-09-27 2005-04-27 Siemens Aktiengesellschaft Synchronisationsverfahren für ein hochverfügbares Automatisierungssystem
EP1860514A1 (de) 2006-05-26 2007-11-28 Siemens Aktiengesellschaft Anordnung mit mindestens zwei über Kommunikationsmittel verbundenen Automatisierungsgeräten

Also Published As

Publication number Publication date
DE50002941D1 (de) 2003-08-21

Similar Documents

Publication Publication Date Title
EP1238318B1 (de) Automatisierungsgerät und aufdat-verfahren
DE19836347C2 (de) Fehlertolerantes Computersystem
DE3854594T2 (de) Programmierbare Steuerung mit parallelen Prozessoren.
EP3538960B1 (de) Ablaufsteuerung von programmmodulen
EP0636956B1 (de) Aufdatverfahren
EP2067081B1 (de) Verfahren zum synchronisieren zweier steuereinrichtungen und redundant aufgebaute automatisierungsvorrichtung
DE112011103443T5 (de) Intelligente Schnittstelle für ein dezentrales Steuerungssystem
EP0807883A2 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE19744071A1 (de) Eine programmierbare Logiksteuervorrichtung verwendendes Steuerungssystem
EP2732347A1 (de) Verfahren und system zur dynamischen verteilung von programmfunktionen in verteilten steuerungssystemen
EP0360135B1 (de) Verfahren zur Interruptverarbeitung in einer Datentverarbeitungsanlage
EP3396479B1 (de) Engineering-system
DE69122001T2 (de) Integrierte Schaltung mit einer Standardzelle, einer Anwendungszelle und einer Prüfzelle
EP2090948B1 (de) Verfahren zum Betrieb eines Automatisierungssystems
EP2615511A1 (de) Verfahren zur synchronen Ausführung von Programmen in einem redundanten Automatisierungssystem
DE19956271A1 (de) Automatisierungsgerät und Aufdat-Verfahren
EP0525214B1 (de) Verfahren zum Betreiben eines Automatisierungsgeräts
EP0499213A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
WO1996020442A1 (de) Responsives system zur signalverarbeitung sowie verfahren zur herstellung eines responsiven systems
EP0584512B1 (de) Verfahren zum zeitlichen Überwachen einer Programmabarbeitung
DE102008023873A1 (de) Verfahren zum Betrieb eines Antriebssystems
DE102016121542A1 (de) Ablaufsteuerung von Programmmodulen
WO2003046673A1 (de) Engineeringsystem und automatisierungssystem
EP1536328A2 (de) Datenverarbeitungssystem mit automatisierbarer Verwaltung und Verfahren zur automatisierten Verwaltung eines Datenverarbeitungssystems
DE102005039771B3 (de) Einheit zur Verwaltung von Echtzeitprozessen ohne asynchrone Unterbrechungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal