(57)【特許請求の範囲】
【請求項１】
技術的プロセス（ＴＰ）を制御及び／又は監視するための自動化装置（ＡＧ）であって、
−少なくとも１つのタスク（Ｔ１、Ｔ２）ならびにプロセス関連およびユーザプログラム関連のデータを有する少なくとも１つのユーザプログラム（Ｔｉ）を記憶するためのメモリ（Ｍ）を備え、冗長自動化装置（ＡＧ′）の連結の際に冗長自動化装置（ＡＧ′）のメモリ（Ｍ′）内へメモリ（Ｍ）の内容が転送される自動化装置において、
−各タスク（Ｔ１、Ｔ２）に、それぞれのタスク（Ｔ１、Ｔ２）がアクセスするメモリ（Ｍ）の部分（Ｍ１、Ｍ２）の内容を転送するために、更新タスク（Ｔ１Ａ、Ｔ２Ａ）が対応付けられ、
−タスク（Ｔ１、Ｔ２）および更新タスク（Ｔ１Ａ、Ｔ２Ａ）の実行時間が予め定められたまたは予め定め得る実行時間上限（ｔ１１、ｔ２１）を超過するときに、更新タスク（Ｔ１Ａ、Ｔ２Ａ）が終了される
ことを特徴とする自動化装置。
【請求項２】
各タスク（Ｔ１、Ｔ２）に対してメモリ（Ｍ）へのそのつどのアクセスのロギングがログメモリ（Ｔ１Ｍ、Ｔ２Ｍ）内で行われ、更新タスク（Ｔ１Ａ、Ｔ２Ａ）によって、メモリ（Ｍ）の、それぞれのログメモリ（Ｔ１Ｍ、Ｔ２Ｍ）の内容を手がかりに転送すべきものとして認識可能である部分（Ｍ１、Ｍ２）の転送が行われることを特徴とする請求項１記載の自動化装置。
【請求項３】
更新タスク（Ｔ１Ａ、Ｔ２Ａ）に、それぞれの更新タスク（Ｔ１Ａ、Ｔ２Ａ）が対応付けられているタスク（Ｔ１、Ｔ２）よりも高い優先度が割当てられていることを特徴とする請求項１または２記載の自動化装置。
【請求項４】
技術的プロセス（ＴＰ）の制御及び／又は監視中に自動化装置（ＡＧ）に通信接続されている冗長自動化装置（ＡＧ′）を更新する方法であって、各自動化装置（ＡＧ、ＡＧ′）がそれぞれメモリ（Ｍ、Ｍ′）を有し、自動化装置（ＡＧ）のメモリ（Ｍ）内に少なくとも１つのタスク（Ｔ１、Ｔ２）ならびにプロセス関連およびユーザプログラム関連のデータを有する少なくとも１つのユーザプログラムが記憶され、第１の更新実行中に冗長自動化装置（ＡＧ′）のメモリ（Ｍ′）内へ自動化装置（ＡＧ）のメモリ（Ｍ）の内容が順次転送される更新方法において、
第２の更新実行中に、それぞれのタスク（Ｔ１、Ｔ２）に対応付けられている更新タスク（Ｔ１Ａ、Ｔ２Ａ）によって、タスク（Ｔ１、Ｔ２）がアクセスするメモリ（Ｍ）の部分（Ｍ１、Ｍ２）の内容が冗長自動化装置（ＡＧ′）のメモリ（Ｍ′）内に転送され、更新タスク（Ｔ１Ａ、Ｔ２Ａ）が、タスク（Ｔ１、Ｔ２）および更新タスク（Ｔ１Ａ、Ｔ２Ａ）の実行時間が予め定められたまたは予め定め得る実行時間上限（ｔ１１、ｔ２１）を超過するときに、終了されることを特徴とする更新方法。
【請求項５】
メモリ（Ｍ）へのタスク（Ｔ１、Ｔ２）の各アクセスがログされ、更新タスク（Ｔ１Ａ、Ｔ２Ａ）がメモリ（Ｍ）の、ロギングを手がかりにして転送すべきものとして認識可能な部分（Ｍ１、Ｍ２）を転送することを特徴とする請求項４記載の方法。
【請求項６】
更新タスク（Ｔ１Ａ、Ｔ２Ａ）に、それぞれの更新タスク（Ｔ１Ａ、Ｔ２Ａ）が対応付けられているタスク（Ｔ１、Ｔ２）よりも高い優先度が割当てられることを特徴とする請求項４または５記載の方法。
【請求項７】
第２の更新実行が、更新タスク（Ｔ１Ａ、Ｔ２Ａ）が実行時間上限（ｔ１１、ｔ２１）の超過に基づいて終了されたときに、新たに開始されることを特徴とする請求項４ないし６の１つに記載の方法。
【請求項８】
第２の更新実行が予め定められたまたは予め定め得る緩和時間の経過後に新たに開始されることを特徴とする請求項７記載の方法。
【発明の詳細な説明】
【０００１】
本発明は、技術的プロセスを制御及び／又は監視するための自動化装置であって、少なくとも１つのタスクならびにプロセス関連およびユーザプログラム関連のデータを有する少なくとも１つのユーザプログラムを記憶するためのメモリを備え、冗長自動化装置の連結の際に冗長自動化装置のメモリ内へ自動化装置のメモリの内容が転送される自動化装置に関する。さらに本発明は、このような自動化装置に通信接続されている冗長自動化装置の更新方法に関する。
【０００２】
蓄積プログラム制御（ＳＰＳ）は、個別作動に、従って非冗長性の作動に適している自動化装置の広く普及している特別な実現である。いわゆるプロセスコンピュータまたは純粋な事務所用のパーソナルコンピュータに比較して特に特別な電源部分、特別なシールド、バッファされたメモリ及び／又は無停電の電源装置を補われているいわゆるパーソナルコンピュータも自動化装置として使用される。
【０００３】
基本的に自動化装置は、あらゆる“標準コンピュータ”のように、メモリ内に格納されている応用プログラムを実行するための少なくとも１つのプロセッサを含んでいる。標準コンピュータに比較しての自動化装置の特殊性は、自動化装置は制御及び／又は監視すべきプロセスに接続するための手段、特に例えばディジタル及び／又はアナログ入力インタフェースまたはディジタル及び／又はアナログ出力インタフェースのような入力及び出力装置を有することにある。
【０００４】
個別作動用の自動化装置と異なって、少なくとも１つの冗長自動化装置（以下ではバックアップ自動化装置とも呼ばれる）による冗長作動に適している自動化装置は、冗長自動化装置とは少なくとも、冗長自動化装置との通信接続装置が相違している。このような通信接続装置は通常例えば、冗長自動化装置との通信接続の形成を可能にする直列及び／又は並列インタフェースまたはバスインタフェースである。このような冗長作動のために適した自動化装置は例えばヨーロッパ特許第 0 487 147号、ヨーロッパ特許第 0 636 956号およびドイツ特許第196 24 302号明細書から知られている。
【０００５】
ヨーロッパ特許第 0 497 147号明細書から、２つの部分装置から構成された冗長自動化装置が知られている。各部分装置は中央処理装置とメモリと通信プロセッサとを有し、両方の通信プロセッサは通信線を介して互いに接続されている。両部分装置は同一のユーザプログラムを実行し、通信線を介して同一のユーザプログラムの同期処理を保証するために同期化データを交換する。
【０００６】
ヨーロッパ特許第 0 636 956号明細書から同じく、２つの部分システム（すなわち原自動化システム及び／又は追加自動化システム）を有する自動化システムは知られている。部分システムの１つが故障した際に技術的プロセスは残存する部分システム（すなわち原自動化システム）により制御される。故障した部分システム（すなわち追加自動化システム）の交換の後にこの部分システムが再び原自動化システムに連結されなければならない。そのために原自動化システムも追加自動化システムも、両部分システムを通信的に接続し得る通信インタフェースを有する。この通信接続を介して原自動化システムのメモリの内容が追加自動化システムのメモリ内に転送される。この転送は、転送が原自動化システムの時間的に危険でない状態中にもしくは順次にいわゆるタイムスライス内で行われることによって、原自動化システムによる技術的プロセスの制御を保ったまま行われる。
【０００７】
冗長性の第２の装置もしくは部分システムのメモリ内へ第１の装置もしくは部分システムのメモリの内容を転送することは“更新”とも呼ばれる。例えばドイツ特許第196 24 302号明細書から、例えば保守作業に基づいて一時的に停止される追加自動化システムに原自動化システムの現在のデータストックが伝達される更新方法は知られている。
【０００８】
公知の更新方法は２つの進行過程に分けられている。第１の進行過程では原自動化システムのメモリの内容が順次の原自動化システムのメモリからの読出しおよび追加自動化システムのメモリ内への書込みにより伝送される。その際に１つのステップで読出しまたは書込みをされるデータの長さは、この過程に必要とされる時間と、制御すべきプロセスに関して最大許容可能な原自動化システムの潜伏期間とにより決定される。特定の数のこのような書込み過程および読出し過程の後に追加自動化システムへの原自動化システムの“基本データストック”の転送が行われる。しかしこの時間中に、原自動化システムのメモリ内のデータは技術的プロセスの中断されない制御に基づいて連続的な変更を受ける。これらのその間に変更されたメモリ内容はその後の進行過程で伝送される。そのために原自動化システムのメモリ内への新しいデータ及び／又は変更されたデータの書込みの際に同一のデータが位置情報と一緒に一時メモリ内にも書込まれ、第２の進行過程で一時メモリの内容が位置情報の評価のもとに追加自動化システムのメモリ内に伝送される。
【０００９】
本発明の課題は、冗長性作動に適した自動化装置であって、冗長自動化装置またはバックアップ自動化装置の更新を特に効率的に、また技術的プロセスの継続される制御の著しい中断なしに、また追加的なハードウェア費用なしに可能にする自動化装置を提供することである。さらに、このような自動化装置に通信接続されている冗長自動化装置を更新するのに特に適した方法が提供されなければならない。
【００１０】
自動化装置に関する課題は本発明によれば請求項１の特徴により解決される。有利な実施例は請求項１に従属する請求項の対象である。
【００１１】
更新方法に関する課題は本発明によれば請求項４の特徴により解決される。有利な実施例は請求項４に従属する請求項の対象である。
【００１２】
本発明により得られる利点は特に、一方では更新のために技術的プロセスの制御及び／又は監視が中断されなくてよいこと、他方では技術的プロセスの継続される制御及び／又は監視中にも、ユーザプログラムのタスクと一緒に長いラン時間を必要とする更新タスクが終了されることによって、反応時間上限（すなわち変更がプロセスの状態に反応される時間）が守られることである。更新タスクが終了されると直ちに、技術的プロセスの制御及び／又は監視に関して再び、更新の必要なしに乗り切ることのできる状況が作られているので、再びユーザプログラムの可能性に相応して技術的プロセスの追加変更に反応される。
【００１３】
メモリ内に格納されプロセッサにより実行される自動化装置のユーザプログラムは少なくとも１つのいわゆるタスク（すなわち進行（順序、継続時間）をオペレーティングシステムのいわゆるスケジューラにより決定されるユーザプログラムの進行ユニット）を含んでいる。ユーザプログラムに追加して、自動化装置のメモリ内にはプロセス関連およびユーザプログラム関連のデータ（例えばプロセス状態およびユーザプログラムの変数）も記憶されている。
【００１４】
例えばバックアップ自動化装置における保守作業の終了後のバックアップ自動化装置の連結の際、バックアップ自動化装置のメモリ内へ自動化装置のメモリの内容が転送される（更新）。この転送は自動化装置の作動中に、すなわち自動化装置による技術的プロセスの中断されない制御中に行われる。
【００１５】
更新方法は２つの実行段階に分けられている。第１の実行段階では、ドイツ特許第196 24 302号明細書から知られている更新方法に類似して、自動化装置のメモリの内容が順次の読出しおよび書込みによりバックアップ自動化装置のメモリ内に伝送される。その際に１つのステップで読出しまたは書込みをされるデータの長さは、この過程に必要とされる時間と、制御すべきプロセスに関して最大許容可能な原自動化システムの潜伏期間とにより決定される。特定の数のこのような書込み過程および読出し過程の後に追加自動化システムへ原自動化システムの“基本データストック”の転送が行われる。しかしこの時間中に、原自動化システムのメモリ内のデータは技術的プロセスの中断されない制御に基づいて連続的な変更を受ける。これらのその間に変更されたメモリ内容はその後の更新過程で伝送される。
【００１６】
その後の更新は、それぞれのタスクがアクセスするメモリの部分の内容を転送するためにユーザプログラムの各タスクが対応付けられている特別な更新タスクによって行われ、更新タスクがユーザプログラムの多数のタスクに対応付けられているように計画されていてもよい。それぞれの更新タスクは、更新タスクが対応付けられているタスクの実行に続いて実行される。タスクおよび対応付けられている更新タスクの実行時間の合計はタスク自体の実行時間よりも必ず大きい。
【００１７】
更新が技術的プロセスの継続される制御の著しい中断なしに行われるように、更新タスクの実行がユーザプログラムの他のタスクの開始を常に余裕をもって遅らせてよい。このことを保証するために、タスクおよび対応付けられている更新タスクの実行時間の合計が求められ、合計実行時間として捕捉される。捕捉された合計実行時間が予め定められたまたは予め定め得る実行時間上限を超過すると、更新タスクが終了されることによって、更新タスクの実行は終了される。
【００１８】
以下において本発明の実施例を図面により一層詳細に説明する。
図１は、技術的プロセスを監視制御するための自動化装置とそれに通信接続されている冗長自動化装置とを有する自動化システムの概要を示す図、
図２ないし図５は、ユーザプログラムのそれぞれ異なる優先順位を有する種々のタスクの時間的経過、
図６は、自動化装置のメモリの個々のセグメントの内容を冗長自動化装置の対応するメモリへ転送する概要図、
図７は、特定のタスクがアクセスする標識を付けられたセクション及びセグメントを有する自動化装置のメモリのメモリレイアウトの概要図である。
【００１９】
図１は自動化システムＡＧ、ＡＧ′およびこれにより制御及び／又は監視すべき技術的プロセスＴＰを示す。自動化システムＡＧ、ＡＧ′は少なくとも１つの自動化装置ＡＧと冗長自動化装置またはバックアップ自動化装置ＡＧ′とを含んでいる。
【００２０】
自動化装置ＡＧもバックアップ自動化装置ＡＧ′も技術的プロセスＴＰを監視制御すべき立場にある。自動化装置ＡＧとバックアップ自動化装置ＡＧ′との間の区別は装置ＡＧ、ＡＧ′のそれぞれの機能を記述する純粋に言葉上での区別である。すなわち、最初の更新過程のバックアップ自動化装置ＡＧ′は時間的にそれよりも後に位置するその後の更新過程の自動化装置ＡＧであってよい。
【００２１】
命令および制御指令を技術的プロセスＴＰに伝達するために、またこれから信号およびプロセス値を受信するために、通信接続Ｂが自動化装置ＡＧ、ＡＧ′と技術的プロセスＴＰとの間に設けられている。この通信接続Ｂは図１に例としてバス接続Ｂとして示されている。プロセスＴＰとの通信接続Ｂは全体的にまたは部分的に従来の配線の形態で構成されていてもよい。
【００２２】
同じく単に図面を簡単にする理由から、プロセス接続を可能にする通信接続Ｂは自動化装置ＡＧとバックアップ自動化装置ＡＧ′との間の通信接続をも表している。通常現在使用されているバス接続Ｂは、内部（自動化装置ＡＧ、バックアップ自動化装置ＡＧ′）の通信も外部（（バックアップ‐）自動化装置ＡＧ、ＡＧ′、技術的プロセスＴＰ）の通信も取り扱うために十分な帯域幅を有している。しかし、更新が全体として加速されて行われるように、場合によっては特に高いデータ転送速度を達成するために、内部の通信を独立したバス（例えばいわゆるバックプレーンバス）を介して取り扱うことも同じく可能である。
【００２３】
さらに各自動化装置ＡＧ、ＡＧ′は、少なくとも１つのタスクＴ１、Ｔ２ならびにプロセス関連およびユーザプログラム関連のデータと共に少なくとも１つのユーザプログラムを記憶するために設けられているメモリＭ、Ｍ′を有する。
【００２４】
以下では、ユーザプログラムのタスクＴ１、Ｔ２はそれぞれ固定のタイムスロット（例えば３００ｍｓ毎のタイムスロット）内で実行されるいわゆるサイクリックなタスクＴ１、Ｔ２であることから出発する。サイクリックなタスクＴ１、Ｔ２は、タスクＴ１、Ｔ２自体の実行時間が３００ｍｓを越えず、またこのサイクリックなタスクＴ１、Ｔ２が再び開始さなければならない時点に他のタスクＴ１、Ｔ２が実行されない場合にのみ、規則正しく３００ｍｓ毎に実行される。
【００２５】
第１の条件は、ユーザプログラムのプログラミングにより、例えば３００ｍｓのタイムスロット内で実行されるタスクＴ１、Ｔ２に対して、処理に３００ｍｓよりも長い実行時間を必要とするジョブが予定されないようにすることによって満たされる。
【００２６】
第２の条件は上述したように、スケジューラがタスクマネージメントを主に引き受けるのでなおさら、プログラミングの過程で間接的にのみ満たされる。プログラミングつまりプログラムはいずれにしても、スケジューラに対して競合するタスクＴ１、Ｔ２の実行の際の順位に対する尺度である優先順位のよく練り上げられた割当てにより、それぞれのタスクＴ１、Ｔ２の実行が意図されるタイムスロット内で実際にも可能であることの基礎である。
【００２７】
例としてここでは、実行時間の長くかかるインプットタスクに重要なサイクリックなアラームタスクよりも高い優先順位が割当てられ、従ってアラームタスクの呼出しがそのタイムスロット内で可能でない場合が説明される。アラームタスクの呼出し時点は常に再び到達されるが、アラームタスクはその低い優先順位のために、それよりも高い優先順位を有するインプットタスクが実行される間は実行されない。
【００２８】
図２は２つのタスクＴ１、Ｔ２を有するサイクリックな（ユーザ）プログラムＴｉの時間的経過を示す。タスクＴ１、Ｔ２は固定のタイムスロット内で実行され、その場合タスクＴ１は１００ｍｓ毎に、タスクＴ２は２２５ｍｓ毎に実行される。サイクリックなプログラムＴｉもタスクとして（例えば固定のタイムスロットなしのタスクとして）理解され得る。プログラムＴｉの反復性は図２にグラフィックに時点ｔ＋２７５ｍｓにおけるプログラムＴｉの“新開始”として示されている。
【００２９】
固定のタイムスロット内での進行を予定されているタスクＴ１、Ｔ２が実際にそれぞれタイムスロットにより予め定められた開始時点で開始されることを保証するために、タスクＴ１、Ｔ２に優先順位が割当てられる。タスクのより高い優先順位はプロセッサによるその優先的な処理を生じる。タスクの協調はオペレーティングシステムのスケジューラにより行われる。
【００３０】
優先順位の割当てなしでは、図２に示されている状況を顧慮して、いったん開始されたタスクＴｉが永久的に、少なくとも１つのそれがその終了に達するまで、実行される。その後のタスクＴ１、Ｔ２は、それらが永久的に実行されるタスクＴｉから直接的に呼出されないかぎり、実行されない。しかし、他の永久的に実行されるタスクＴｉからのタスクＴ１、Ｔ２のこのような直接的な呼出しにより、タスクＴ１、Ｔ２の実行のための固定のタイムスロットが実現されず、または実現に困難を伴う。なぜならば、タスクＴｉがそれ自体でスケジューラの全機能を使用するからである。
【００３１】
オペレーティングシステム内に含まれているスケジューラはタスクＴ１、Ｔ２、Ｔｉの進行の際の協調を簡単化する。そのためにスケジューラに各タスクＴ１、Ｔ２、Ｔｉについての知識が与えられ、各タスクＴ１、Ｔ２、Ｔｉに対して形式、継続時間およびその進行の順序を決定するパラメータが定められる。
【００３２】
図２に示されている状況に対してはタスクＴ１、Ｔ２に対して、それがサイクリックなタスクＴ１、Ｔ２であることが決定され、その場合タスクＴ１は１００ｍｓ毎に、タスクＴ２は２２５ｍｓ毎に呼出されなければならない。追加的にタスクＴ１にタスクＴ２よりも高い優先順位を割当てられる。このことは図２に縦軸上の位置によりグラフィックに示されている。タスクＴｉは固定のタイムスロットなしのサイクリックなタスクである。このタスクＴｉは、それがその終了に達するつど、新たに開始される。タスクＴｉは最も低い優先順位を有する。
【００３３】
タスクＴ１、Ｔ２の１つが実行されるべき時点の１つ、例えばｔ＋１００ｍｓ、ｔ＋２００ｍｓ、ｔ＋２２５ｍｓ、ｔ＋３００ｍｓ、ｔ＋４００ｍｓ、ｔ＋４５０ｍｓ、ｔ＋５００ｍｓ、…、に到達すると、スケジューラはタスクＴｉの実行を中断し、それぞれのタスクＴ１、Ｔ２が実行されるように計らう。
【００３４】
時点ｔ＋９００ｍｓで、選ばれた例によれば、同時にタスクＴ１（１００ｍｓのタイムスロット）もタスクＴ２（２２５ｍｓのタイムスロット）も実行されなければならない。これは、プロセッサが第１のタスクＴ１の命令を第２のタスクＴ２の命令と同時に実行することはできないので、可能でない。タスクＴ１にはタスクＴ２よりも高い優先順位が割当てられたので、この時点およびそれとほぼ同じ時点で先ず優先順位の高いほうのタスクＴ１が、その直後にタスクＴ２が実行される。タスクＴ２が終了された後に初めて、再びタスクＴｉに戻される。
【００３５】
この状況から、タスクＴ１、Ｔ２が固定のタイムスロット内での進行に対して予定されている場合に対しても、その実際の進行が予定されているタイムスロット内でシステム内在的に常には保証されないことは明らかである。それゆえ、個々のタスクＴ１、Ｔ２の開始時点のシフトがある限度内で許容可能である。
【００３６】
図３は、このようにして、すなわちタスクＴ１、Ｔ２に対応付けられている更新タスクＴ１Ａ、Ｔ２Ａがどの時点で実行されるかを示す。図２によるタスクＴ１、Ｔ２が改めて示されている。追加的に、タスクＴ１に対応付けられている更新タスクＴ１Ａと、タスクＴ２に対応付けられている更新タスクＴ２Ａとが示されている。簡単化のためにはタスクＴ１、Ｔ２、Ｔ１Ａ、Ｔ２Ａは示されている呼出し時点でもそれぞれ等しい実行時間を有していなければならない。しかしタスクＴ１、Ｔ２、Ｔ１Ａ、Ｔ２Ａの実行時間は呼出し時点から呼出し時点へと異なっていてもよい。
【００３７】
タスクＴ１に対応付けられている更新タスクＴ１ＡはタスクＴ１自体よりも高い優先順位を有する。それにより、更新タスクＴ１Ａが可能なかぎりタスクＴ１の実行にすぐ続いて実行されることが保証されている。このことはタスクＴ２に対応付けられている更新タスクＴ２Ａに対しても同様に当てはまる。
【００３８】
図３から、タイムスロットの選ばれたセクションに対して、タスクＴ１、Ｔ２、Ｔ１Ａ、Ｔ２Ａの実行時間がサイクリックなタスクＴ１、Ｔ２の実行をそれらのそのつどの開始時点（１００ｍｓ毎または２２５ｍｓ毎）で妨げない状況が与えられていることは明らかである。更新タスクＴ１Ａ、Ｔ２Ａの実行のために必要とされる時間は完全にタスクＴｉの“負担”になる。このことは、タスクＴｉの新開始に対する時点が図２にくらべて時点ｔ＋２７５ｍｓから時点ｔ＋５２５ｍｓへずらされていることから明らかである。ユーザプログラムの個々のサイクルのこの延長は危険とみなされない。なぜならば、そのサイクル時間はいずれにせよ非常に稀な場合にしか一定でなく、個々のタスクＴ１、Ｔ２に対していずれにせよ必要な実行時間に応じて相違するからである。
【００３９】
“危険な”状況は、更新タスクＴ１Ａの実行がサイクリックな固定のタイムスロット内で進行するタスクＴ２の開始をその予め定められた開始時点で疑わしいものにするときに初めて存在する。このような状況は図４に示されている。
【００４０】
時点ｔ＋２００ｍｓでの更新タスクＴ１Ａの実行時間は図４では図３にくらべてわずかに長い。それにより更新タスクＴ１Ａが時点ｔ＋２２５ｍｓで、すなわち本来タスクＴ２が開始されなければならないであろう時点でまだ実行される。更新タスクＴ１ＡはタスクＴ２よりも高い優先順位を有するので、更新タスクＴ１Ａは、たといタスクＴ２の開始時点が到達されているとしても、中断されない。タスクＴ２は更新タスクＴ１Ａの実行が終了されたときに初めて実行される。それによっていま、タスクＴ２が更新タスクＴ１Ａの実行に基づいてもはや本来予定されている固定のタイムスロット内で実行されない状況が存在する。
【００４１】
既述のように、このような状況（すなわち固定のタイムスロットが正確に守られない状況）は更新タスクＴ１Ａ、Ｔ２Ａの不存在のときにも生じる。従って、サイクリックなタスクＴ１、Ｔ２の呼出し時点のわずかなずれは常に許容可能であり、しばしば気付かれない。個々のサイクリックなタスクＴ１、Ｔ２の呼出し時点のどのずれが個々の場合に許容可能であるかは予め決定し得ない。その代わりに、それぞれの技術的プロセスＴＰの制御及び／又は監視のためのプログラムの開発の際に、最大許容可能なずれの大きさが、個々のタスクＴ１、Ｔ２の呼出しの際の必要な時間的順序に従って、また特に制御及び／又は監視をすべきプロセスＴＰの必要条件を考慮に入れて、決定される。
【００４２】
数１００ｍｓのサイクリックなタスクの呼出し時点のずれは、時間的にほとんど危険でない少数のタスクを有するプログラムにより制御される遅いプロセスの場合には常に許容可能であり得るが、時間的に危険な速いプロセスの場合には不利な結果をもたらす。こうして最大実行時間ｔ１１、ｔ２１と、タスクＴ１、Ｔ２と、対応付けられている更新タスクＴ１Ａ、Ｔ２Ａの和に対する上限とが決定される。
【００４３】
これはプログラミング技術的に、それぞれの技術的プロセスＴＰの状況にほぼ合わせなければならず、それによって同じく前もって決定可能でないサイクリックなタスクＴ１、Ｔ２のタイムスロットの呼出し時点の決定またはそれらの優先順位の決定と基本的に異なる作業ステップではない。最大実行時間ｔ１１は値５０ｍｓに決定され得よう。この最大実行時間ｔ１１は図４による状況では到達されていない。従って、更新タスクＴ１Ａは中断されないであろう。更新過程中に更新タスクＴ１Ａ、Ｔ２Ａが中断されないかぎり、更新過程は全体として継続される。
【００４４】
図５には、和実行時間ｔ１（すなわちタスクＴ１ならびに対応付けられている更新タスクＴ１Ａの実行時間の和）は例えば５０ｍｓの決定された最大実行時間ｔ１１を超過するであろう状況が示されている。この状況では、更新タスクＴ１Ａが終了されることによって、更新タスクＴ１Ａの実行は中断される。
【００４５】
最大実行時間ｔ１１、ｔ２１の監視は例えばそのために予定されている相応の高い優先順位を有する監視タスクにより行われる。これは和実行時間ｔ１、ｔ２の監視および最大実行時間ｔ１１、ｔ２１の超過の認識が可能であるように狭いタイムスロット内で進行する。
【００４６】
更新タスクＴ１Ａの終了により、サイクリックなタスクＴ２の実行が許容不可能に遅らされないことが保証されている。更新タスクＴ１Ａの終了により、“待ち”タスクＴ２が現在最も高い優先順位を有する実行可能なタスクになる。従って、これがスケジューラにより直接に実行するべく予定される。それによって更新中にも特定の反応時間（すなわち技術的プロセスＴＰ内の特定の変化、例えば調節過程で流入する測定値の変化に反応する時間）が守られ、または保証される。
【００４７】
第２の実行中に（すなわちメモリの内容の転送が更新タスクＴ１Ａ、Ｔ２Ａにより行われる更新のセクション中に）、更新タスクＴ１Ａ、Ｔ２Ａが実行時間上限ｔ１１、ｔ２１の超過に基づいて終了されると、第２の実行は全体として終了され、新たに、場合によっては例えば１分の予め定められた、または予め定め得る“緩和時間”の経過の後に開始される。
【００４８】
第２の実行中にすべての更新タスクＴ１Ａ、Ｔ２Ａが、実行時間上限ｔ１１、ｔ２１の超過なしに処理される場合、すなわち更新タスクＴ１Ａ、Ｔ２Ａがそのプログラム終端に達成され、ユーザプログラムが更新中にアクセスする特別なメモリ範囲の内容が最後のステップで転送されることにより、自ずから終了する場合にのみ、更新は全体として成功裡に終了されたとみなされる。
【００４９】
いまや、先ず自動化装置ＡＧのメモリＭの内容が順次に読出され、バックアップ自動化装置ＡＧ′のメモリＭ′内に書込まれることによりこのバックアップ自動化装置ＡＧ′に伝送されることによって、バックアップ自動化装置ＡＧ′の更新が行われる。更新過程のこの第１の実行は図６に示されている。
【００５０】
図６によればメモリＭの内容が順次に読出され、バックアップ自動化装置ＡＧ′のメモリＭ′内に伝送される。これはメモリＭの破線または実線で囲まれたセクションにより示されている。伝送は自動化装置ＡＧとバックアップ自動化装置ＡＧ′との間に設けられている通信接続Ｂ（例えばバス）を介して行われる。これは図６に矢印により示されている。
【００５１】
このステップにより“基本データストック”がバックアップ自動化装置ＡＧ′に伝送される。この基本データストックは例えば、自動化装置ＡＧ上で実行されるユーザプログラムと、技術的プロセスＴＰのいわゆる周辺またはプロセスイメージと、場合によってはいくつかの絶え間のない変更を受けないユーザプログラムのデータ（例えばオペレーティングパラメータ、レセプトデータ、など）とを含んでいる。
【００５２】
更新中に（すなわち“基本データストック”の伝送中にも）、技術的プロセスＴＰの監視制御は自動化装置ＡＧにより不変に保たれるので、メモリＭの内容の連続的な変更が行われる。メモリＭ内のこれらの変更は図６にメモリＭ内の×印の範囲により示されている。
【００５３】
“基本データストック”の転送時には、丁度読出されかつ転送されるセクションの“前”のすべての変化が考慮に入れられる。なぜならば、これらの変化が生じているセクションはまさにすべての以前のセクションのように読出され、また完全に転送されるからである。これは図６では、丁度転送される範囲の前に位置している範囲である。図６に示されているその後の３つの変更された範囲は基本データストックの伝送時に考慮に入れられない。なぜならば、相応の変化は、当該セクションの内容が伝送された後に初めて有効になるからである。説明したように基本データストックの転送の多数回の繰り返しはここでより良い結果をもたらさない。なぜならば、メモリＭ内の変化は連続的には行われるが、確定的には行われないからである。
【００５４】
転送すべきメモリＭの内容の、更新中にも行われる変更を考慮に入れる立場にある補足的な更新実行として、いまユーザプログラムの各タスクＴ１、Ｔ２に対応付けられている更新タスクＴ１Ａ、Ｔ２Ａを有する実行が開始される。
【００５５】
図７から明らかなように、タスクＴ１、Ｔ２は自動化装置ＡＧのすべてのメモリＭにではなく、メモリＭのセクションＭ１、Ｍ２にのみアクセスする。それぞれのタスクＴ１、Ｔ２がアクセスするセクションＭ１、Ｍ２はそれぞれ対応付けられている更新タスクＴ１Ａ、Ｔ２Ａにより順次に、第１の更新実行での基本データストックの転送と同じように、読出され（それぞれのセクションＭ１、Ｍ２内の異なる囲みをされた範囲により示されている）、またバックアップ自動化装置ＡＧ′の（図示されていない）メモリＭ′内に伝送される。その際、メモリＭに関するセクションＭ１、Ｍ２の丁度読出される範囲の位置を示し、また丁度読出される範囲の内容がメモリＭ′内の相応のアドレスに書込まれることを保証する追加的な位置情報が利用される。
【００５６】
更新タスクＴ１Ａ、Ｔ２Ａにより、それぞれのタスクＴ１、Ｔ２がアクセスするメモリＭ１、Ｍ２の部分の内容の転送が基本的に順次に行われるときにも、この順次の転送は更新タスクＴ１Ａ、Ｔ２Ａの呼出し内で行われる。更新タスクＴ１Ａ、Ｔ２Ａのプログラムコード内で、メモリセクションＭ１、Ｍ２の内容の転送が完全に読出し過程および書込み過程により行われるように構成されていてもよい。
【００５７】
更新タスクＴ１Ａ、Ｔ２Ａが、専らそれぞれのタスクＴ１、Ｔ２がアクセスするメモリＭ１、Ｍ２の部分の内容を転送する立場に置かれるようにするために、更新タスクＴ１Ａ、Ｔ２Ａ内でそれぞれのメモリセクションＭ１、Ｍ２を標識するためのパラメータは、通常オフセットおよび大きさとして、または開始アドレスおよび終了アドレスとしても、知られている。これらのパラメータはプログラミングの際にそのつどの値により占められる。
【００５８】
代替的に、各タスクＴ１、Ｔ２に対してメモリＭへのそのアクセスがログメモリセルＴ１Ｍ、Ｔ２Ｍ内に記録され、更新タスクＴ１Ａ、Ｔ２Ａが、それぞれのログメモリセルＴ１Ｍ、Ｔ２Ｍの内容により転送すべきものとして認識可能であるメモリＭ１、Ｍ２の部分を転送する方法も考えられる。この方法は、考慮に入れるべきメモリセクションＭ１、Ｍ２に対するパラメータをプログラミングの際に決定しなければならない、場合によっては誤りを孕んでいる要請を防止し、さらに更新タスクＴ１Ａ、Ｔ２ＡがメモリセクションＭ１、Ｍ２のすべての内容を転送しなくなよく、実際に変更された部分のみを転送すればよいという利点を有する。
【００５９】
図６にログメモリセルＴ１Ｍ、Ｔ２Ｍが概略的に示されていると共に、冗長自動化装置ＡＧ′に内容を伝送すべきメモリＭの外側にログメモリセルＴ１Ｍ、Ｔ２Ｍが位置し、特にログメモリセルＴ１Ｍ、Ｔ２Ｍの内容の転送が必要でないことが示されている。ログメモリセルＴ１Ｍ、Ｔ２ＭはメモリＭの部分として実現されていてもよいので、図６で仮定されているメモリＭとログメモリセルＴ１Ｍ、Ｔ２Ｍとの間の分離は図面をわかりやすくする役割のみをする。メモリＭの転送すべき範囲は開始アドレスおよび終了アドレスまたは開始アドレスおよびこの開始アドレスに続いて伝送すべきデータボリュウムにより知らされる。例えば前記のログメモリセルＴ１Ｍ、Ｔ２Ｍの内容のような転送すべきでないメモリ内容はこのようにして予定されている範囲の外側に位置し得る。
【００６０】
第２の更新実行中に更新タスクＴ１Ａ、Ｔ２Ａが実行時間上限ｔ１１、ｔ２１の超過に基づいて終了されないと、更新は、ユーザプログラムが更新中にアクセスする特別なメモリ範囲の内容のなお進めるべき転送を留保して、成功裡に終了したものとみなされる。バックアップ自動化装置ＡＧ′のメモリＭ′の内容は自動化装置ＡＧのメモリＭの内容に一致する。
【００６１】
自動化装置ＡＧからバックアップ自動化装置ＡＧ′への信号により、更新が成功裡に終了していることがバックアップ自動化装置ＡＧ′に表示される。バックアップ自動化装置ＡＧ′内でそれに基づいてユーザプログラムのコピーが開始され、またバックアップ自動化装置ＡＧ′がユーザプログラムのコピーに基づいて自動化装置ＡＧと同一の作用を実行するならば、データの同一性が引き続いて保証される。こうして、例えば自動化装置ＡＧの交換が必要になった場合、バックアップ自動化装置ＡＧ′が直ちに技術的プロセスＴＰの監視制御を引き受ける。
【００６２】
更新タスクによる、それぞれのメモリセクションの内容の転送は、メモリセクションの内容の変更がそれぞれのタスクＴ１、Ｔ２の実行時間中のみは可能であるが、更新タスクＴ１Ａ、Ｔ２Ａの実行時間中には可能でないので、有利であることが判明している。従って、更新タスクＴ１Ａ、Ｔ２ＡはそれぞれのメモリセクションＭ１、Ｍ２の内容を常に完全に転送することができるので、更新タスクＴ１Ａ、Ｔ２Ａの終了時に、そのつどのメモリセクションＭ１、Ｍ２の内容が完全に転送され、その間のこのメモリセクションの内容の変化が新たな転送を必要としないことが保証されている。
【００６３】
以下には、特に図３に関連して、これまでの説明から明らかである特別な場合が説明される。図３によれば、時点ｔ＋０ｍｓから出発して、更新タスクＴ１Ａが２回呼出され、かつ、更新タスクＴ２Ａが初回の呼出しをされる前に、完全に実行される。更新が（ほぼ）成功裡に実行されたとみなされるので、すべての更新タスクＴ１Ａ、Ｔ２Ａが完全に実行されたとき、それぞれの更新タスクＴ１Ａ、Ｔ２Ａの完全な実行の事実が記憶されなければならない。図３による状況で更新タスクＴ１Ａに対して例えば時点ｔ＋１２５ｍｓで更新タスクＴ１Ａの完全な実行を標識する“フラグ”がセットされる。時点ｔ＋２５０ｍｓで更新タスクＴ２Ａに対して相応のフラグがセットされる。その後の更新タスクＴ１Ａ、Ｔ２Ａが存在しないので、それによって更新実行は成功裡に終了したとみなされる。第２の更新実行は例えば時点ｔ＋２５０ｍｓで終了されている。更新タスクＴ１Ａ、Ｔ２Ａのもう一度の開始は、たといこれが図３、４および５に相応に示されているとしても、必要でない。
【００６４】
しかしながら、特別な取扱を必要とする状況は、第２の更新実行の終了前に更新タスクＴ１Ａ、Ｔ２Ａが一回行われた完全な実行の後に新たに開始されるときに生ずる。このような状況が図５に示されている。時点ｔ＋１２５ｍｓで更新タスクＴ１Ａが終了され、相応のフラグがセットされる。時点ｔ＋２５０ｍｓで、第２の更新実行がまだ終了されていないので、新たに呼出された更新タスクＴ１Ａは終了される。なぜならば、予め定められた実行時間上限ｔ１１が超過されるからである。時点ｔ＋２７５ｍｓで、その後に実行された更新タスクＴ２Ａに対して相応のフラグがセットされる。
【００６５】
ここでも両方のフラグがセットされ、すなわちフラグが更新タスクＴ１Ａに対してその初回の呼出しにより、更新タスクＴ２Ａに対してそのただ一回の呼出しによりセットされ、更新実行がそれによって成功裡に終了したとみなされる。しかしながら実際には更新タスクＴ１Ａは、これが、タスクＴ１がアクセスするメモリＭのすべてのセクションＭ１の内容を転送し得ないうちに、終了された。すなわち事情によってはすべての変化がメモリセクションＭ１内に転送されておらず、従ってこのような状況では更新が終了されたとみなされ得ない。
【００６６】
しかし必要な特別な取扱は、それぞれの更新タスクＴ１Ａ、Ｔ２Ａに対応付けられているフラグが各新たな呼出しの際にそれぞれの更新タスクＴ１Ａ、Ｔ２Ａに対応付けられているタスクＴ１、Ｔ２がリセットされることによって、簡単に達成される。上記の状況に対して、このことは、更新タスクＴ１Ａのフラグが時点ｔ＋１２５ｍｓでセットされ、また時点ｔ＋２００ｍｓでリセットされることを意味する。時点ｔ＋２７５ｍｓで更新タスクＴ２Ａのフラグがセットされても、更新が終了されたとみなされない。なぜならば、更新タスクＴ１Ａのフラグが欠けているからである。実際には更新は、時点ｔ＋３７５ｍｓで、すなわち最も早くて、初回に更新タスクＴ１Ａのフラグが再びセットされ、更新タスクＴ２Ａのフラグがまだ再びリセットされていない時点で、終了されたとみなされる。
【００６７】
以上に既に説明された本発明の有利な実施例のようにログメモリが応用される場合に対しては、更新タスクＴ１Ａ、Ｔ２Ａの各完全な実行の後にそれぞれのログメモリＴ１Ｍ、Ｔ２Ｍの内容はリセットされ、または無効として標識されなければならない。
【００６８】
本発明の別の局面は、低い優先順位を有する特別なタスク（特別な誤取扱または誤反応に対して予定されているＦタスク）が更新タスクＴ１Ａ、Ｔ２Ａの実行時間の和により、Ｆタスクの低い優先順位に基づいてより高い優先順位を有する実行可能なタスクＴ１、Ｔ２およびそれらに対応付けられている更新タスクＴ１Ａ、Ｔ２Ａが“優先的に”実行されるので、もはや本来予定されている固定のタイムスロット内で実行されない状況に関わるものである。
【００６９】
このような状況に対して、この局面によれば、より高い優先順位を有するタスクＴ１、Ｔ２の更新タスクＴ１Ａ、Ｔ２Ａ（好ましくは最も高い優先順位を有するタスクＴ１の更新タスクＴ１Ａ）がその本来の実行の前に短時間だけＦタスクの優先順位を、更新タスクＴ１Ａの相応の抑制のもとにＦタスクの即時の実行を行なわせる値にセットする。このようにして、更新の際にも特別な優先順位の低いＦタスクの反応挙動が予測可能にとどまることが保証される。なぜならば、その呼出しが更新タスクＴ１Ａ、Ｔ２Ａの追加的な実行により許容可能な遅れよりも長く遅らされないからである。
【００７０】
こうして、タスク指向のユーザプログラムを有する自動化装置のメモリ内容が作動の中断なしに冗長自動化装置に伝達される。基本データストックの従来通常の転送によれば、その間に変更されたデータストックの転送は個々のタスクに対応付けられている更新タスクにより行われ、更新タスクはそれぞれのタスクがアクセスするメモリ内容のセクションのみを伝送する。
【図面の簡単な説明】
【図１】  自動化システムの概概略図。
【図２】  タスクの時間的経過を示す図。
【図３】  タスクの時間的経過を示す図。
【図４】  タスクの時間的経過を示す図。
【図５】  タスクの時間的経過を示す図。
【図６】  自動化装置のメモリの個々のセグメントの内容を冗長自動化装置の対応するメモリへ転送する概要図。
【図７】  自動化装置のメモリのメモリレイアウトの概要図。
【符号の説明】
ＡＧ、ＡＧ′  自動化装置
Ｂ  接続
Ｍ、Ｍ′  メモリ
Ｔ１、Ｔ２  タスク
Ｔ１Ａ、Ｔ２Ａ  更新タスク
Ｔｉ  （ユーザ）プログラム／タスク
【図１】
0003754369.tif 000002
【図２】
0003754369.tif 000003
【図３】
0003754369.tif 000004
【図４】
0003754369.tif 000005
【図５】
0003754369.tif 000006
【図６】
0003754369.tif 000007
【図７】
0003754369.tif 000008