(57)【要約】【課題】システムの一部に局所的な異常が発生した場合に、その影響がシステム全体に及ばないよう適切な復旧処理を実行させる分散制御装置を提供すること。【解決手段】電子制御装置１の分散制御装置１１は、電子制御装置１の所定の機能を実現するために電子制御装置１、２に分散配置されたタスク１００、２００、１０１を所定の順序で実行させるタスク実行順序制御手段１１０と、電子制御装置１以外の装置である電子制御装置２にあり、タスク実行順序制御手段１１０により実行が指示されたタスクＢ２００の処理時間を監視しタスクＢ２００がデッドラインオーバーとなったか否かを判定するデッドラインオーバー判定手段１１１と、タスクＢ２００がデッドラインオーバーになったと判定された場合、所定の復旧処理を実行させる復旧処理実行手段１１２と、を備えることを特徴とする。【選択図】図１
2007264997.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された複数の電子制御装置のそれぞれに搭載される分散制御装置であって、
１の電子制御装置における所定の機能を実現するために複数の電子制御装置に分散配置されたタスクを所定の順序に従って実行させるタスク実行順序制御手段と、
前記１の電子制御装置以外の電子制御装置に配置されたタスクであって、前記タスク実行順序制御手段により実行が指示されたタスクがデッドラインオーバーとなったか否かを判定するデッドラインオーバー判定手段と、
前記デッドラインオーバー判定手段により前記タスクがデッドラインオーバーになったと判定された場合、所定の復旧処理を実行させる復旧処理実行手段と、
を備えることを特徴とする分散制御装置。
【請求項２】
前記デッドラインオーバー判定手段は、前記１の電子制御装置以外の電子制御装置に対し、前記タスク実行順序制御手段がタスクの実行を指示してから経過した時間が所定の時間を超過した場合に、デッドラインオーバーであると判定する、
ことを特徴とする請求項１に記載の分散制御装置。
【請求項３】
前記所定の復旧処理は、デッドライン時間を超過したタスクが一時的に更新したデータを初期化したり、デッドライン時間を超過したタスクを再実行させたり、アラームを吹鳴させたり、デッドライン時間を超過したタスクが出力あるいは更新するはずだったデータの値を所定の値で代用させたり、デッドライン時間を超過したタスクに後続するタスクの順番を変更したりする処理である、
ことを特徴とする請求項１に記載の分散制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散制御装置に関し、より詳細には、システムの一部に局所的な異常が発生した場合に、システム全体を停止させないよう適切な復旧処理を実行する分散制御装置に関する。
【背景技術】
【０００２】
ネットワークを介して複数の電子制御装置を分散協調制御する制御ソフトウェア構造において、各電子制御装置に備えられた各システムを実現するための各制御アプリケーションプログラムからデータ管理機能および時間同期機能を分離し、各制御アプリケーションプログラムの下位の分散制御プラットフォーム中に、複数の電子制御装置に共通するデータ管理機能および時間同期機能を配置したことを特徴とする制御ソフトウェア構造およびこの構造を用いた制御装置が知られている（例えば、特許文献１参照。）。
【０００３】
従来は、各制御システムを実現するための制御アプリケーションプログラム自体に、データ管理機能や、データの送受信、演算タイミング等の同期を取る時間同期機能を備えるようにしていたため、ネットワークを介して複数のシステムを関連させながら処理を実行させる制御構造では、一部の制御アプリケーションプログラムを変更（データの更新時期等の変更をいう。）すると、他の制御アプリケーションプログラムとの間の整合性を失ってしまい、他の制御アプリケーションプログラムを再設計する必要が生じる場合もあった。
【０００４】
特許文献１に記載の制御ソフトウェア構造は、上述の問題を解決し、一部の制御アプリケーションプログラムを変更する場合であっても、複数の電子制御装置で共通する分散制御プラットフォームのみを再設計すればよいこととなり、他の制御アプリケーションプログラムの再利用性を高めることができる。
【特許文献１】特開２００４−２２０３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の制御ソフトウェア構造は、複数の電子制御装置に分散配置された制御アプリケーションプログラムのタスク間における時間同期性の保証および処理タイミングについて説明するが、デッドラインオーバーが発生した場合の処理については言及が無い。そのため、１のタスクでデッドラインオーバーが発生し適切なタイミングで所定のデータの更新や他のＥＣＵへのデータ送信が行われなかった場合には、更新または送信が行われていない不適切なデータに基づいて後のタスクによる処理が進行し、その影響がシステム全体に及んでしまう場合も考えられる。
【０００６】
係る状況に鑑み、本発明は、システムの一部に局所的な異常が発生した場合に、その影響がシステム全体に及ばないよう適切な復旧処理を実行させる分散制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、第１の発明は、ネットワークに接続された複数の電子制御装置のそれぞれに搭載される分散制御装置であって、１の電子制御装置における所定の機能を実現するために複数の電子制御装置に分散配置されたタスクを所定の順序に従って実行させるタスク実行順序制御手段と、前記１の電子制御装置以外の電子制御装置に配置されたタスクであって、前記タスク実行順序制御手段により実行が指示されたタスクの処理時間を監視し、該タスクがデッドラインオーバーとなったか否かを判定するデッドラインオーバー判定手段と、前記デッドラインオーバー判定手段により前記タスクがデッドラインオーバーになったと判定された場合、所定の復旧処理を実行させる復旧処理実行手段と、を備えることを特徴とする。
【０００８】
また、第２の発明は、第１の発明に係る分散処理装置において、前記デッドラインオーバー判定手段は、前記１の電子制御装置以外の電子制御装置に対し、前記タスク実行順序制御手段がタスクの実行を指示してから経過した時間が所定の時間を超過した場合に、デッドラインオーバーであると判定することを特徴とする。
【０００９】
また、第３の発明は、第１の発明に係る分散処理装置において、前記所定の復旧処理は、デッドライン時間を超過したタスクが一時的に更新したデータを初期化したり、デッドライン時間を超過したタスクを再実行させたり、アラームを吹鳴させたり、デッドライン時間を超過したタスクが出力あるいは更新するはずだったデータの値を所定の値で代用させたり、デッドライン時間を超過したタスクに後続するタスクの順番を変更したりする処理である、ことを特徴とする。
【発明の効果】
【００１０】
上述の手段により、本発明は、システムの一部に局所的な異常が発生した場合に、その影響がシステム全体に及ばないよう適切な復旧処理を実行させる分散制御装置を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照しつつ、いくつかの実施例に分けて、本発明を実施するための最良の形態の説明を行う。
【実施例１】
【００１２】
図１は、本発明に係る分散制御装置を利用した分散制御システムの構成例を示すブロック図である。分散制御システムＳは、ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）バスやＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）バス等の車載ネットワーク通信プロトコルによるバス３で接続された、複数のＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｏｒｏｌ  Ｕｎｉｔ）１およびＥＣＵ２等で構成される。
【００１３】
ＥＣＵ１およびＥＣＵ２は、各種車載装置を制御するための電子制御装置であり、例えば、滑りやすい路面上での発進や加速の時、エンジンの出力を低下させたり、駆動輪にブレーキをかけたりしてタイヤと路面とのスリップ率を最適な値に維持し、駆動輪がスピンしないように駆動力を制御するトラクション制御装置、加速度センサーにより衝撃を検知し、衝突判定の演算処理を行ってエアバッグ展開用の気体を供給するインフレーター等を制御するエアバッグ制御装置、障害物回避などの急激なハンドル操作をしたときや、滑りやすい路面のカーブに進入したときなどに発生する横滑りを抑制するために、エンジン出力と各車輪のブレーキ力を自動的に制御し車両の安定性を確保する車両安定性制御装置等がある。
【００１４】
また、ＥＣＵ１、２は、それぞれ、演算装置および記憶装置を備えたマイクロコンピュータ並びに分散制御装置１１、２１を有し、その記憶装置にＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や制御アプリケーションプログラム１０、２０を格納する。
【００１５】
制御アプリケーションプログラム１０、２０は、各ＥＣＵの機能を実現するためのプログラムであり、例えば、トラクション制御装置におけるトラクション制御プログラム、エアバッグ制御装置におけるエアバッグ制御プログラム、車両安定性制御装置における車両安定性制御プログラムが相当する。
【００１６】
また、各制御アプリケーションプログラム１０、２０は、種々のタスクで構成される。ここで、「タスク」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）から見た処理の実行単位をいい、各制御アプリケーションプログラム１０、２０が有するサブルーチンの他、各制御アプリケーションプログラム１０、２０自体も含まれる。例えば、トラクション制御プログラムは、加速度を検出するタスク、エンジンの出力を低下させるタスク、ブレーキを作動させるタスク等を有し、エアバッグ制御プログラムは、衝突による衝撃を検出するタスク、エアバッグ作動の要否を判定するタスク、インフレーターに気体を供給するタスク等を有し、或いは、車両安定性制御プログラムは、横滑りを検出するタスク、エンジンの出力を低下させるタスク、ブレーキを作動させるタスク等を有する。また、トラクション制御プログラム、エアバッグ制御プログラム、車両安定性制御プログラム等もタスクに含まれる。
【００１７】
また、各制御アプリケーションプログラム１０、２０は、自身が属するＥＣＵ以外のＥＣＵにおける他の制御アプリケーションプログラムが有するタスクを利用して、各ＥＣＵの機能を実現する場合もある。この場合、各制御アプリケーションプログラム１０、２０は、各ＥＣＵが実現しようとする機能毎に、実行するタスクの順序をタスク実行順序定義テーブルに定義する。タスク実行順序定義テーブルは、各制御アプリケーションプログラム１０、２０がプログラム内に用意するようにしてもよく、外部の記憶手段に用意するようにしてもよい。
【００１８】
例えば、ＥＣＵ１が所定の機能（例えば、スピン防止機能）を実現しようとする場合、最初にＥＣＵ１の制御アプリケーションプログラムにあるタスクＡ１００（例えば、加速度を検出するタスク）を実行し、次に、ＥＣＵ２の制御アプリケーションプログラムにあるタスクＢ２００（例えば、横滑りを検出するタスク）を実行し、最後に、ＥＣＵ１の制御アプリケーションプログラムにあるタスクＣ１０１（例えば、ブレーキを作動させるタスク）を実行するといった順序をタスク実行順序定義テーブルに定義する。このように、実行順序を定義することで、例えば、横滑りを検出する前に不必要なブレーキを作動させることを防止することができる。
【００１９】
また、各制御アプリケーションプログラム１０、２０は、実行するタスクの順序に併せて、各タスクに費やすことのできる最大時間（以下、「デッドライン時間」という。）を設定する。１のタスクを無期限に実行すれば、緊急を要する他のタスクを適切に実行できなくなる場合があるからである。１のタスクに費やす時間がこの最大時間を超過した場合、後述の分散制御装置１１、２１は、デッドラインオーバーが発生したものと判断し、所定のタスクを実行する。
【００２０】
分散制御装置１１、２１は、各ＥＣＵに配置され、複数の異なる制御アプリケーションプログラムで共用できるよう各ＥＣＵで共通となる構成を有し、各ＥＣＵに分散配置された各制御アプリケーションプログラムを協働させる装置である。
【００２１】
また、分散制御装置１１、２１は、タスク実行順序制御手段１１０、１２０、デッドラインオーバー判定手段１１１、２１１および復旧処理実行手段１１２、２１２を有し、例えば、各ＥＣＵで共用するデータを集中または分散管理するデータベースを参照しながら、タスク実行順序制御手段１１０により分散制御システムＳ内に分散配置された各制御アプリケーションプログラムおよび各タスクを所定の順番で実行させるミドルウェア（プログラム）であってもよい。なお、分散制御装置１１、２１は、プログラムとしてＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の一部に統合されていてもよい。
【００２２】
タスク実行順序制御手段１１０、１２０は、分散制御装置１１、１２が搭載されるＥＣＵ１、２の制御アプリケーションプログラム１０、２０と交信してそのＥＣＵ１、２が実現しようとする機能毎に定義されたタスクの実行順位に関する情報を制御アプリケーションプログラム１０、２０のタスク実行順序定義テーブルから取得する。なお、タスク実行順序制御手段１１０、１２０は、分散制御装置１１、１２が搭載されるＥＣＵ１、２が実現しようとする機能毎に定義された、タスクの実行順位を予め所定の記憶手段に記憶しておき、ＥＣＵ１、２から機能の実現を指示された場合に、ＥＣＵ１、２の記憶手段にアクセスして指示された機能に対応する実行順位を取得するようにしてもよい。
【００２３】
デッドラインオーバー判定手段１１１、２１１は、各タスクの実行順位と共に定義されるデッドライン時間を参照し、実行中のタスクの処理時間がデッドライン時間を超過していないかを監視する。デッドライン時間の超過を検出した場合には、デッドラインオーバー判定手段１１１、２１１は、復旧処理実行手段１１２、２１２にその旨通知し、復旧処理実行手段１１２、２１２に復旧処理を実行させる。この場合、タスク実行順序制御手段１１０、１２０は、復旧処理実行手段１１２、２１２による復旧処理が完了するまで処理を中断させ、復旧処理実行手段１１２、２１２による復旧処理が完了した後、処理を再開させる。
【００２４】
ここで、「復旧処理」とは、デッドライン時間を超過したタスクの影響が他のタスク、他のＥＣＵ、または、分散制御システムＳ全体に及ばないよう、分散制御装置１１、２１が実行するタスクであり、例えば、デッドライン時間を超過したタスクが一時的に更新した各種データを初期化したり、デッドライン時間を超過したタスクを再実行させたり、アラームを吹鳴させたり、デッドライン時間を超過したタスクが出力あるいは更新するはずだったデータを所定のデータ（初期値等）で代用させたり、デッドライン時間を超過したタスクの後続のタスクの順番を変更したりする。
【００２５】
なお、復旧処理実行手段１１２、２１２は、デッドライン時間を超過したタスクが自身の属するＥＣＵにおける制御アプリケーションプログラムのタスクである場合には、そのタスクを強制終了させ、デッドライン時間を超過したタスクが自身の属するＥＣＵ以外のＥＣＵにおける制御アプリケーションプログラムのタスクである場合には、そのタスクを強制終了させるよう他のＥＣＵの分散制御装置に通知する。
【００２６】
このように、デッドラインオーバー判定手段１１１、２１１は、自身の属するＥＣＵばかりでなく、自身の属するＥＣＵ以外のＥＣＵの制御アプリケーションプログラムにおけるタスクの処理時間がデッドライン時間を超過していないかを監視し、自身の属するＥＣＵ以外のＥＣＵにおけるタスクでデッドラインオーバーが発生した場合に所定の復旧処理を実行することで、自身の属するＥＣＵ以外のＥＣＵにおけるタスクで発生したデッドラインオーバーの影響が自身の属するＥＣＵひいてはシステム全体に及ぶのを防止する。
【００２７】
すなわち、分散制御システムＳは、１のＥＣＵのタスクにより更新されるべきデータが更新されたことを確認せずに、別のＥＣＵの後続のタスクを実行させないようにすることで、１のＥＣＵのタスクで発生したデッドラインオーバーの影響が他のＥＣＵひいてはシステム全体に及ぶのを防止する。
【００２８】
次に、図２乃至図４を参照しながら、分散制御システムＳがＥＣＵ１の所定の機能を実現するために複数のＥＣＵに分散配置された複数のタスクを所定の順番で実行する処理について説明する。
【００２９】
図２は、縦軸にＥＣＵ１、２を配し、横軸を時間軸として、ＥＣＵ１、２におけるタスクの推移を示す図であり、図２（Ａ）は、タスクＡ１００、タスクＢ２００およびタスクＣ１０１が正常に実行された場合を示し、図２（Ｂ）は、タスクＢ２００が適切に実行されずデッドラインオーバーとなった場合を示す。なお、実行されるタスクの順番は、図２（Ａ）および図２（Ｂ）共に、タスクＡ１００、タスクＢ２００、タスクＣ１０１の順番で定義されているものとする。
【００３０】
図２（Ａ）において、分散制御システムＳは、最初にＥＣＵ１における分散制御装置１１のタスク実行順序制御手段１１０により、タスク実行順序定義テーブルを参照して実行すべきタスクの順番がタスクＡ１００、タスクＢ２００、タスクＣ１０１の順番であることを確認する。
【００３１】
タスク実行順序制御手段１１０は、その順番に従い、ＥＣＵ１の制御アプリケーションプログラム１０におけるタスクＡ１００を呼び出し、処理を実行させる。タスクＡ１００は、所定の手順に従って処理を実行し、処理が完了した場合にはＥＣＵ１における分散制御装置１１に処理が完了した旨を通知する。
【００３２】
タスクＡ１００が正常に完了した旨の通知を受けると、タスク実行順序制御手段１１０は、ＥＣＵ２におけるタスクＢ２００を呼び出すようＥＣＵ２における分散制御装置２１のタスク実行順序制御手段２１０に指示する。
【００３３】
指示を受けたＥＣＵ２におけるタスク実行順序制御手段２１０は、ＥＣＵ２の制御アプリケーションプログラム２０におけるタスクＢ２００を呼び出し、処理を実行させる。タスクＢ２００は、ＥＣＵ１のタスクＡ１００と同様に、所定の手順に従って処理を実行し処理が完了した場合にはＥＣＵ２における分散制御装置２１に処理が完了した旨を通知する。
【００３４】
タスクＢ２００が正常に完了した旨の通知を受けると、タスク実行順序制御手段２１０は、その旨をＥＣＵ１における分散制御装置１１のタスク実行順序制御手段１１０に通知する。
【００３５】
通知を受けたＥＣＵ１におけるタスク実行順序制御手段１１０は、ＥＣＵ１の制御アプリケーションプログラム１０におけるタスクＣ１０１を呼び出し、処理を実行させる。タスクＣ１０１は、ＥＣＵ１のタスクＡ１００およびＥＣＵ２のタスクＢ２００と同様に、所定の手順に従って処理を実行し処理が完了した場合にはＥＣＵ１における分散制御装置１１に処理が完了した旨を通知する。
【００３６】
このようにして、分散制御システムＳは、タスクＡ１００、タスクＢ２００およびタスクＣ１０１から構成されるＥＣＵ１の機能を実現する。
【００３７】
次に、タスクＢ２００が適切に実行されずデッドラインオーバーとなる場合を説明する。
【００３８】
図２（Ｂ）において、分散制御システムＳは、図２（Ａ）の場合と同様に、最初にＥＣＵ１における分散制御装置１１のタスク実行順序制御手段１１０により、タスク実行順序定義テーブルを参照して実行すべきタスクの順番がタスクＡ１００、タスクＢ２００、タスクＣ１０１の順番であることを取得する。
【００３９】
タスク実行順序制御手段１１０は、その順番に従い、ＥＣＵ１の制御アプリケーションプログラム１０におけるタスクＡ１００を呼び出し、処理を実行させる。処理が完了すると、タスクＡ１００は、ＥＣＵ１における分散制御装置１１に処理が完了した旨を通知する。
【００４０】
タスクＡ１００が正常に完了した旨の通知を受けると、タスク実行順序制御手段１１０は、ＥＣＵ２におけるタスクＢ２００を呼び出すようＥＣＵ２における分散制御装置２１のタスク実行順序制御手段２１０に指示する。
【００４１】
しかし、この時点で、ＥＣＵ１とＥＣＵ２との間における通信途絶が発生すると、ＥＣＵ１からの指示がＥＣＵ２に伝達されず、ＥＣＵ２におけるタスクＢ２００は実行されないこととなる。
【００４２】
このような場合であっても、ＥＣＵ１における分散制御装置１１は、デッドラインオーバー判定手段１１１によりＥＣＵ２におけるタスクＢ２００の処理状況を監視しており、ＥＣＵ１におけるタスク実行順序制御手段１１０がＥＣＵ２におけるタスクＢ２００を呼び出すようＥＣＵ２に指示を出した時点からの経過時間が、タスク実行順序定義テーブルに定義されたタスクＢ２００のデッドライン時間を超過した場合、デッドラインオーバーが発生したものと判定する。
【００４３】
デッドラインオーバー判定手段１１１により、デッドラインオーバーが発生したものと判定されると、ＥＣＵ１における分散制御装置１１は、復旧処理実行手段１１２により復旧処理を実行させる。
【００４４】
仮に、デッドラインオーバー判定手段１１１が存在せず、タスクＢ２００が所定のデータの値を更新する内容のタスクであった場合、ＥＣＵ１は、ＥＣＵ２におけるタスクＢ２００を呼び出してから所定の時間が経過した所定のタイミングで、所定のデータが既にタスクＢ２００により更新されたものとして後続のタスクＣ１０１を実行してしまう。したがって、所定のデータが異常値であれば、デッドラインオーバー判定手段１１１を有さないシステムは、システム全体に悪影響が及ぶのを防止できない場合も考えられる。
【００４５】
一方で、本発明に係る分散制御装置１１、２１を備えた分散制御システムＳは、ＥＣＵ２におけるタスクＢ２００がデッドラインオーバーとなったことを迅速かつ確実に認識し、ＥＣＵ１における復旧処理を実行させ、デッドラインオーバーの発生が及ぼす影響を最小限に留め、分散制御システムＳ全体に影響が及ぶのを防止することができる。
【００４６】
図３は、ＥＣＵ１の演算装置で実行される処理の流れを示すフローチャートであり、斜線で示すブロックは、制御アプリケーションプログラム１０による処理を示し、斜線のない他のブロックは、分散制御装置１１による処理を示す。なお、ＥＣＵ１の所定の機能を実現するために実行されるタスクの順番は、図２（Ａ）および図２（Ｂ）の場合と同様、タスクＡ１００、タスクＢ２００、タスクＣ１０１の順番で定義されているものとする。
【００４７】
最初に、ＥＣＵ１は、ＥＣＵ１における制御アプリケーションプログラム１０のタスクＡ１００を呼び出し（ステップＳ１０１）、タスクＡ１００を実行させる（ステップＳ１０２）。その後、タスクＡ１００から処理完了通知を受信すると（ステップＳ１０３）、タスク実行順序定義テーブルに定義された順番に従ってＥＣＵ２におけるタスクＢ２００を実行させるよう、ＥＣＵ２の分散制御装置２１にその旨指示する（ステップＳ１０４）。
【００４８】
ＥＣＵ１は、指示を送信した後、デッドラインオーバー判定手段１１１により、その時点からの経過時間を計測し（ステップＳ１０９）、ＥＣＵ２からタスクＢ２００の処理完了通知が送信されるまで待機する（ステップＳ１０５のＮＯ、ステップＳ１０９のＮＯ）。
【００４９】
ＥＣＵ２からタスクＢ２００の処理完了通知を受信すると（ステップＳ１０５のＹＥＳ）、タスク実行順序定義テーブルに定義された順番に従ってＥＣＵ１におけるタスクＣ１０１を呼び出し（ステップＳ１０６）、タスクＣ１０１を実行させる（ステップＳ１０７）。その後、タスクＣ１０１から処理完了通知を受信して（ステップＳ１０８）、演算装置で実行される処理を終了させる。
【００５０】
一方、ＥＣＵ２からタスクＢ２００の処理完了通知を受信しないままに（ステップＳ１０５のＮＯ）、タスク実行順序定義テーブルに定義されたタスクＢ２００のデッドライン時間が経過すると、ＥＣＵ１のデッドラインオーバー判定手段１１１は、タスクＢ２００がデッドラインオーバーになったと判定し（ステップＳ１０９のＹＥＳ）、その旨を示す信号を復旧処理実行手段１１２に送信する（ステップＳ１１０）。
【００５１】
その後、復旧処理実行手段１１２は、デッドラインオーバー判定手段１１１からの信号を受信して復旧処理を実行し（ステップＳ１１１）、タスクＢ２００のデッドラインオーバーによる影響が分散制御システムＳの他の部分に及ばないよう対処して演算装置で実行される処理を終了させる。
【００５２】
図４は、ＥＣＵ１と協働するＥＣＵ２の演算装置で実行される処理の流れを示すフローチャートであり、斜線で示すブロックは、制御アプリケーションプログラム１０による処理を示し、斜線のない他のブロックは、分散制御装置１１による処理を示す。
【００５３】
最初に、ＥＣＵ２は、ＥＣＵ１からの指示が送信されてくるのを監視し（ステップＳ２０１）、指示が送信されてこない場合（ステップＳ２０１のＮＯ），その指示が送信されるのを継続して監視する。
【００５４】
ＥＣＵ２は、ＥＣＵ１からの指示を受信すると（ステップＳ２０１のＹＥＳ）、その指示内容（ＥＣＵ２の制御アプリケーションプログラム２０におけるタスクＢ２００の呼び出し）を取得し、その指示内容に応じてタスクＢ２００を呼び出し（ステップＳ２０２）、タスクＢ２００を実行させる（ステップＳ２０３）。
【００５５】
その後、ＥＣＵ２は、タスクＢ２００から処理完了通知を受信し（ステップＳ２０４）、その処理完了通知をＥＣＵ１に送信して（ステップＳ２０５）、ＥＣＵ２の演算装置で実行される処理を終了させる。
【００５６】
以上の構成により、分散制御システムＳは、ＥＣＵ１、ＥＣＵ２、バス３等のハードウェアの異常による通信途絶や通信遅延、または、制御アプリケーションプログラム１０、２０、分散制御装置１１、２１等のソフトウェアの不具合による処理の遅延に起因して、複数のＥＣＵに分散配置された複数のタスクのうちの１つがデッドラインオーバーとなった場合に、そのタスクが配置されるＥＣＵ以外のＥＣＵでも迅速かつ確実にデッドラインオーバーの発生を認識させ、そのデッドラインオーバーの影響を局所化するよう復旧処理を実行させるので、そのデッドラインオーバーの影響が分散制御システムＳ全体に及ぶのを防止し、システムの信頼性を向上させることができる。
【００５７】
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
【００５８】
例えば、分散制御システムに接続されるＥＣＵの全てが分散制御装置を有するものとしてもよく、一部のＥＣＵのみが分散制御装置を有するものとしてもよい。全てのＥＣＵが分散制御装置を有することとした場合には、何れのＥＣＵでデッドラインオーバーが発生した場合であってもその影響を局所化できるという効果があり、一方で、一部のＥＣＵのみが分散制御装置を有することとした場合には、分散制御システムを構築するためのコストを低下させることができるという効果があるからである。
【図面の簡単な説明】
【００５９】
【図１】本発明に係る分散制御システムの構成例を示すブロック図である。
【図２】ＥＣＵ１、２におけるタスクの進捗状況を示す図である。
【図３】ＥＣＵ１の演算装置で実行される処理の流れを示すフローチャートである。
【図４】ＥＣＵ２の演算装置で実行される処理の流れを示すフローチャートである。
【符号の説明】
【００６０】
１、２  ＥＣＵ
３      バス
１０、２０  制御アプリケーションプログラム
１１、２１  分散制御装置
１００  タスクＡ
１０１  タスクＣ
２００  タスクＢ
Ｓ      分散制御システム
【図１】
2007264997.tif 000003
【図２】
2007264997.tif 000004
【図３】
2007264997.tif 000005
【図４】
2007264997.tif 000006