(57)【要約】【課題】  ＲＴ性の保証を容易化することが可能であり、かつネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間を短くすることが出来、かつシステム構成が変更してもソフト変更量を小さく抑えることによりソフト生産性の向上をはかる。【解決手段】  ＡＰの実行を制御，管理する，ミドルウェア，ＯＳ，割り込み処理，ドライバソフト等より構成されるソフトウェアプラットフォーム内にＡＰモジュールまたは通信処理の実行順番、あるいは各通信処理のＲＴ通信サービス情報が格納されているＡＰ構成情報記憶手段とＡＰ構成情報記憶手段を参照し、ＡＰ構成情報記憶手段に格納されている実行順番に従ってＡＰモジュールを実行したり、通信処理を実行するモジュール起動制御手段を設ける。【選択図】図１
2007052813.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション・プログラムを構成する１個またはそれ以上のソフトウェアモジュールの起動手順を格納するモジュール構成情報格納部と
該モジュール構成情報格納部を参照し、該アプリケーション・プログラムモジュールを実行するモジュール起動制御部と
を有する制御ユニット。
【請求項２】
請求項１において、前記モジュール構成情報格納部は、実行されているアプリケーションプログラムモジュールと
次に実行すべきアプリケーション・プログラムモジュールとを対応付けて格納する制御ユニット。
【請求項３】
複数の制御ユニットがネットワークに接続された制御システムであって、該制御ユニットは、
アプリケーション・プログラムを構成する１個またはそれ以上のソフトウェアモジュールの起動手順を格納するモジュール構成情報格納部と
該モジュール構成情報格納部を参照し、該アプリケーション・プログラムモジュールを実行するモジュール起動制御部と
を有する制御システム。
【請求項４】
請求項３において、前記モジュール構成情報格納部は、実行されているアプリケーションプログラムモジュールと
次に実行すべきアプリケーション・プログラムモジュールとを対応付けて格納する制御システム。
【請求項５】
ネットワークと、前記ネットワークと接続するための通信手段を有する少なくとも１つの制御ユニットとを有する分散制御システムであって、該制御ユニットは、
ネットワーク通信機能を有する１個またはそれ以上のメッセージ・オブジェクトの起動手順を格納するメッセージ・オブジェクト構成情報格納手段と
該メッセージ・オブジェクト構成情報格納手段を参照し、該メッセージ・オブジェクトを実行するリアルタイム通信処理制御手段と
を有することを特徴とする分散制御システム。
【請求項６】
請求項５において、
前記リアルタイム通信処理制御手段は、タスクに実行されるソフトウェア・モジュールである分散制御システム。
【請求項７】
請求項５において、
前記メッセージ・オブジェクト構成情報格納手段は、通信処理を実行する優先度を示す通信処理優先度を有し、この優先度に基づいて通信処理を行う分散制御システム。
【請求項８】
請求項７において、
前記メッセージ・オブジェクト構成情報格納手段は、ユニット内通信またはユニット間通信を示す情報を有し、ユニット間通信について、前記通信処理優先度を有する分散制御システム。
【請求項９】
請求項５において、
前記メッセージ・オブジェクト構成情報格納手段は、通信サービスの種類を有する分散制御システム。
【請求項１０】
ネットワークに接続された少なくとも１つの制御ユニットを有する分散制御システムにおいて、該制御ユニットは、
アプリケーションプログラムを構成する１個またはそれ以上のソフトウェア・モジュールの起動手順を格納するモジュール構成情報格納手段と、
ネットワーク通信機能を有する１個またはそれ以上のメッセージ・オブジェクトの起動手順を格納するオブジェクト構成情報格納手段と、
該アプリケーションプログラム・モジュール構成情報格納手段を参照し、該アプリケーションプログラム・モジュールを実行するモジュール起動制御手段と、  該メッセージ・オブジェクト構成情報格納手段を参照し、該メッセージ・オブジェクトを実行するリアルタイム通信処理制御手段と
を有する分散制御システム。
【請求項１１】
前記モジュール起動制御手段は、タスクであることを特徴とする請求項１０記載の分散制御システム。
【請求項１２】
前記モジュール起動制御手段は、ＯＳ内の１機能であることを特徴とする請求項１０記載の分散制御システム。
【請求項１３】
前記アプリケーション・プログラムモジュール構成情報格納手段は、次に実行するソフトウェアモジュール情報を含むことを特徴とする請求項１０記載の分散制御システム。
【請求項１４】
前記リアルタイム通信処理制御手段は、タスクに実行されるソフトウェア・モジュールであることを特徴とする請求項１０記載の分散制御システム。
【請求項１５】
前記リアルタイム通信処理制御手段は、タスクであることを特徴とする請求項１０記載の分散制御システム。
【請求項１６】
前記リアルタイム通信処理制御手段は、ＯＳ内の１機能であることを特徴とする請求項１０記載の分散制御システム。
【請求項１７】
前記メッセージ・オブジェクト構成情報格納手段は、通信処理優先度を含むことを特徴とする請求項１０記載の分散制御システム。
【請求項１８】
前記メッセージ・オブジェクト構成情報格納手段は、ユニット内通信なのかユニット間通信なのかを示す情報を含むことを特徴とする請求項１０記載の分散制御システム。
【請求項１９】
前記メッセージ・オブジェクト構成情報格納手段は、通信サービスの種類を含むことを特徴とする請求項１０記載の分散制御システム。
【請求項２０】
前記メッセージ・オブジェクト構成情報格納手段は、次に実行するソフトウェア・モジュール情報を含むことを特徴とする請求項１０記載の分散制御システム。
【請求項２１】
アプリケーション・プログラムを構成する１個またはそれ以上のソフトウェア・モジュールの起動手段を格納するモジュール構成情報格納手段と、ネットワーク通信機能を有する１個またはそれ以上のメッセージ・オブジェクトの起動手順を格納するオブジェクト構成情報格納手段と、モジュール構成情報格納手段を参照し、該アプリケーション・プログラムモジュールを実行するモジュール起動制御手段と該オブジェクト構成情報格納手段を参照し、該メッセージ・オブジェクトを実行するリアルタイム通信処理手段とを有する少なくとも１つの制御ユニットとモジュール構成情報格納手段に格納すべき情報を有する計算機と、該制御ユニット内に存在し、該情報モジュール構成情報格納手段に格納する初期化手段とがネットワークに接続された制御システム。
【請求項２２】
システム構成情報を入力とし、前記アプリケーション・プログラムモジュール構成情報格納手段に格納すべき情報と前記モジュール起動制御手段よりなるプログラムコードを出力する、分散制御ミドルウェア・コード生成ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は組み込みシステムに係り、特に、複数の組み込みシステムがＣＡＮ
（Controller Area Nerwork）やFoundation Fieldbus等のフィールドネットワークにより相互接続された分散制御システム、例えば自動車内のパワートレイン制御システム，ファクトリーオートメーションやプロセスオートメーションのフィールド機器制御システム、医療機器やロボット制御システムに関する。
【背景技術】
【０００２】
従来技術１として、フィールドネットワークの一つであるＬＯＮ（Local Operating 
Network ）や、自動車制御向け標準通信プロトコルであるＯＳＥＫ−ＣＯＭのような、通信処理はアプリケーション・プログラム（ＡＰ）が呼び出すライブラリ方式があげられる。
【０００３】
この方式は文献「ＯＳＥＫ／ＶＤＸ  Communication Version2.0a（ftp://www−iit.
etec.uni−karlsruhe.de／pub／osek／より入手可能）」に詳しい。
【０００４】
また、従来技術２として、多くの産業システムで採用されているメモリ転写方式
（＝Reflective Memory方式）があげられる。これは文献「REFLECTIVE MEMORYNETWORK 
WHITE PAPER(http://www.vmic.com／より入手可能))に詳しい。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術１では、通信処理を使用するためには、ＡＰ開発者がＡＰ内に通信処理やＡＰの起動タイミングを記述する必要がある。
【０００６】
しかし、今後、各ユニットがフィールドネットワークで相互接続される分散制御システム構成に移行するにつれて、特に、ネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間の保証、即ち、End−to−Endのリアルタイム（Real−Time。以下ＲＴ）性の保証の際、不都合が生じる。
【０００７】
理由は、基本的に、このＲＴ性保証を通信処理やＡＰの起動タイミングを考慮して各
ＡＰ毎に独立して実現する場合、少なくともＲＴ性保証に関しては、ＡＰに汎用性が無いので、システム構成が変更する毎に、ＡＰを全面的に書き直さなければならなくなるからである。また、今後フィールドネットワークのプロトコルの標準化が進むにつれ、異なるベンダユニットを相互に接続したいという顧客側からの要望が強くなるが、これらのユニットを相互接続した場合、ユニット内のＡＰを書き換えられない場合、上記理由により、ＲＴ性保証は非常に困難である。
【０００８】
一方、従来技術２では、ＡＰと通信処理が共有メモリを介して分離され、互いに非同期に動作する。一般的に通信処理は、各ユニット上のシステム上での共有メモリの値を周期的に転送，更新する処理を行う。そのため、各ＡＰ単体の最悪実行時間及び通信処理の最悪実行時間は容易に保証出来る。
【０００９】
しかし、ＡＰと通信処理が非同期であるため、データの伝搬遅延が発生するので、ネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間は大きい。このため、最悪実行時間が厳しい処理に対しては、従来技術２の適用が困難になる。また、従来技術２では、データの更新が行われていなくても、該共有メモリ上の値は周期的に転送，更新されるため、ネットワーク上のトラフィックを無駄に使うことになる。
【００１０】
本発明は、ＲＴ性の保証を容易化することが可能であり、かつネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間を短くすることが出来、かつシステム構成が変更してもソフト変更量を小さく抑えることによりソフト生産性の向上をはかることを目的としている。
【課題を解決するための手段】
【００１１】
ＡＰの実行を制御，管理する、ミドルウェア，ＯＳ，割り込み処理，ドライバソフト等より構成されるソフトウェアプラットフォーム内に、以下の手段を設けることにより、上記目的を達成する：
（１）ＡＰモジュールまたは通信処理の実行順番、あるいは各通信処理のＲＴ通信サービス情報が格納されているＡＰ構成情報記憶手段。
【００１２】
（２）該ＡＰ構成情報記憶手段を参照し、該ＡＰ構成情報記憶手段に格納されている実行順番に従ってＡＰモジュールを実行したり、通信処理を実行するモジュール起動制御手段。
【００１３】
モジュール起動制御手段が該ＡＰ構成情報記憶手段を参照し、該ＡＰ構成情報記憶手段に格納されているＡＰモジュールまたは通信処理の実行順番に従って  ＡＰモジュールを実行したり、あるいは通信処理を実行する。
【００１４】
モジュール起動制御手段がＡＰモジュールを実行したり、あるいは通信処理を実行することにより、ＡＰと通信処理は完全に分離する。
【００１５】
また、ＡＰモジュールの実行順序や通信処理の実行順序や通信処理のＲＴ通信サービス内容の変更は、該ＡＰ構成情報記憶手段の変更により実現可能になる。
【発明の効果】
【００１６】
本発明によれば、
ＡＰ構成情報記憶手段を変更することにより、ＡＰモジュールの実行順序や通信処理の実行順序やメッセージ・オブジェクトの通信処理優先度を変更でき、さらには、ＡＰと通信処理を非同期にあるいは、同期して動作させることができるので、ネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間を短くすることが容易になり、ＲＴ性の保証を容易にすることが可能になる。
【００１７】
ＡＰ内に通信処理が混在することは無く、両者は完全に分離されており、かつ、ＡＰモジュール及び通信処理の実行順番と各通信処理のＲＴ通信サービス情報を変更できるので、システム構成が変更してもソフト変更量を小さく抑えることによりソフト生産性の向上をはかることが可能になる。
【発明を実施するための最良の形態】
【００１８】
以下、図面に従って説明する。
【００１９】
図１に本発明の分散制御システムを示す。
【００２０】
分散制御システムは、複数のユニット１ａ，１ｂ，…，１ｎがネットワーク２に接続されて構成されている。各ユニットは、アプリケーション・プログラム（ＡＰ）１１と分散制御ミドルウェア１２，リアルタイムオペレーティングシステム（ＲＴＯＳ）１３とネットワーク通信処理ドライバ１４からなる。ＡＰ１１は、複数のＡＰモジュール２１ａ，
２１ｂ，…，２１ｎからなる。分散制御ミドルウェア１２は複数のモジュール起動制御タスク２２ａ，…，２２ｋとＡＰ構成情報２３と複数のメッセージ・オブジェクト２４ａ，…，２４ｍとＲＴ通信処理制御２５からなる。さらにＡＰ構成情報２３はＡＰモジュール構成情報２３ａ，メッセージ・オブジェクト構成情報２３ｂよりなる。また図中の矢印
３１ａ〜３１ｎ，３２ａ〜３２ｋ，３３ａ〜３３ｋ，３４ａ〜３４ｍ，３５ａ〜３５ｋ，３６，２５ａ，２５ｂらは制御フローである。
【００２１】
図２はＡＰモジュール構成情報２３ａを示したものである。
【００２２】
図に示す表の左列はシステム内で実行されるＡＰモジュール、右列は左列の該ＡＰモジュールの実行終了後、次に実行されるモジュールを示すモジュール起動制御タスク（ＡＰモジュールあるいはメッセージ・オブジェクトの送受信処理）が登録されている。
【００２３】
図の例では、モジュール起動制御タスクがＡＰモジュール：Ｍ１実行後、次に実行するのはメッセージ・オブジェクト：MsgObj１送信であり、また、ＡＰモジュール：Ｍ２実行後、次に実行するのはＡＰモジュール：Ｍ３であることを示している。ＡＰモジュール：Ｍ３実行後、次に実行されるモジュールがＮＵＬＬになっているが、このＮＵＬＬは、次に実行されるモジュールが存在しない、即ち、モジュール起動制御タスクの終了を示す。また、ＡＰモジュール：Ｍ４実行後、次に実行するのはメッセージ・オブジェクト：
MsgObj３送信である。
【００２４】
図３はメッセージ・オブジェクト構成情報２３ｂを示したものである。
【００２５】
図に示す表の第一列（最左列）は、システム内のメッセージ・オブジェクト名、第二列は通信処理優先度、第三列は通信処理がユニット内通信かユニット間通信かを示すフラグである内部／外部通信、第四列は通信サービス種類、第五列はメッセージ・オブジェクトの送信処理実行後、次に実行されるモジュール、第六列（最右列）はメッセージ・オブジェクトの受信処理実行後、次に実行されるモジュールが登録されている。なお通信処理優先度は、ユニット間通信の時のみ設定され、ユニット内通信では未設定（ＮＵＬＬ）となる。
【００２６】
通信サービス種類は、同期通信と非同期通信の２種類がある。
【００２７】
（１）同期通信は、メッセージ送信処理の場合、該処理後、即メッセージを受信側に送信する処理が実行され、また、メッセージ受信処理の場合、メッセージ受信イベントが発生後、即、該処理が実行される通信サービスである。
【００２８】
（２）非同期通信は、メッセージ送信処理の場合、該送信処理後、メッセージを受信側に送信する処理が即実行される保証は無い。基本的には、送信処理を実行するモジュール起動制御タスクＡとは異なる別の実行制御タスクＢにて、モジュール起動制御タスクＡとは無関係に、メッセージを受信側に送信する処理が実行される。また、メッセージ受信処理の場合、該メッセージ受信イベントとは無関係の他のイベント（周期タイマ，センサ入力他）で該メッセージ受信処理が実行される通信サービスである。
【００２９】
図の例では、MsgObj１は、その通信優先度はＮＵＬＬ，ユニット内部通信，同期通信サービスである。モジュール起動制御タスクがMsgObj１送信処理実行後、次に実行するのは、MsgObj１受信処理であり、また、モジュール起動制御タスクがMsgObj１受信処理実行後、次に実行するのは、ＡＰモジュール：Ｍ２であることを示している。
【００３０】
MsgObj２は、その通信優先度は中，ユニット外部通信，同期通信サービスである。モジュール起動制御タスクがMsgObj２送信処理実行後、次に実行するのは、ＮＵＬＬ、即ち、モジュール起動制御タスクの終了を示しており、また、モジュール起動制御タスクが
MsgObj２受信処理実行後、次に実行するのは、ＡＰモジュール：Ｍ４であることを示している。
【００３１】
一方、MsgObj３は、その通信優先度は低，ユニット外部通信，非同期通信サービスである。モジュール起動制御タスクがMsgObj３送信処理実行後、次に実行するのは、ＡＰモジュール：Ｍ５であり、また、モジュール起動制御タスクがMsgObj３受信処理実行後、次に実行するのは、ＮＵＬＬ、即ち、モジュール起動制御タスクの終了を示している。
【００３２】
ＡＰ構成情報２３内のＡＰモジュール構成情報２３ａ，メッセージ・オブジェクト構成情報２３ｂは、各モジュール起動制御タスク２２ａ，…，２２ｋが参照可能な共有データとしてユニット１ａ内のメモリ上に格納される。
【００３３】
なお本実施例では、ＡＰ構成情報２３を図２，図３に示すＡＰモジュール構成情報23ａ，メッセージ・オブジェクト構成情報２３ｂの２表より構成されることにしたが、これらが１つの表に統合されても構わない。ＡＰモジュール、メッセージ・オブジェクトを併せて各モジュールの次実行モジュールが登録されている表と、図３のメッセージ・オブジェクトの次実行モジュールを除いた情報をまとめた表にわけることも可能である。また、これらの情報は、表の形である必要はなく、例えば、各モジュールの構成情報単位の構造体を定義し、これらをポインタで管理してもよい。
【００３４】
次に、本発明の基本的な動作例を以下説明する。図１において、動作の主体となるのは、モジュール起動制御タスク２２ａ〜２２ｋであり、ここでは、モジュール起動制御タスクの動作を表すフローチャート図２６を用いて図１の動作例を説明することにする。
【００３５】
５０１にてRTOS13によりモジュール起動制御タスクが起動される。起動されたタスクは５０２にて最初に実行するモジュールを実行する（注：５０１と５０２の詳細は、図４にて後述する）。
【００３６】
モジュール実行後、５０３にてＡＰ構成情報２３を参照し、次実行モジュールを求める。
【００３７】
次実行モジュールがメッセージ・オブジェクトであるかどうか５０４にて確認し、メッセージでないならば、ＡＰモジュールであるか５０５にて確認、ＡＰモジュールでもないのならば、該タスクは実行すべき全てのモジュールを終了したので、該タスクの処理を終了する。
【００３８】
５０５にて、次実行モジュールがＡＰモジュールならば、５０７にて該ＡＰモジュールを実行し、実行が終了したら５０３に戻ってＡＰ構成情報２３の参照より処理を繰り返す。
【００３９】
５０４にて、次実行モジュールがメッセージ・オブジェクトならば、送信処理なのか受信処理なのかを５０８にて確認する。受信処理ならば、５０９にてＲＴ通信制御を呼び出して受信処理を実行する。送信処理ならば、５１０にてＲＴ通信制御を呼び出して送信処理を実行する。
【００４０】
通信処理５０８あるいは５１０が終了したら５０３に戻ってＡＰ構成情報２３の参照より処理を繰り返す。
【００４１】
ＡＰ構成情報２３に登録されている該メッセージ・オブジェクトの通信サービスがＲＴ通信処理制御２５に記述されており、該モジュール起動制御タスクは２５を呼び出し、
２５に記述されている処理に従い、ＲＴＯＳ（１３）〜ネットワーク通信ドライバ１４を経由してユニット間通信を実行する。
【００４２】
なお、ＲＴ通信処理制御２５は、通信対象のメッセージ・オブジェクトの通信処理優先度、ユニット内通信かユニット間通信か、通信サービスを、ＡＰ構成情報２３（より正確にはメッセージ・オブジェクト構成情報２３ｂ）を参照することにより、通信処理を実行する。本ＲＴ通信処理制御２５は、例えば、文献「OSEK／VDX Communication Version
2.0a 」に記載されている、ＯＳＥＫ−ＣＯＭ通信ライブラリによって実現可能である。
【００４３】
モジュール起動制御タスクは、図４に示すようにしてRTOS13によって起動される。
【００４４】
図４は割り込み処理の動作フローを示した図である。
【００４５】
図において、１０１ａから１０１ｍは割り込み処理である。割り込み処理１０１ｍは
１１１〜１１５の処理より構成される。他の割り込み処理も同様である。１０２は割り込みベクタ表である。１０３ａから１０３ｎはＲＴＯＳ内タスク制御ブロック（ＴＣＢ）である。ＴＣＢには、タスク実行優先度、起動後に最初に実行するモジュール情報，タスク状態他が保存されている。１０４は割り込み原因−起動タスク対応表である。
【００４６】
割り込み処理の動作は、以下のようになる。割り込み信号の入力により、マイクロプロセッサは、それまで実行していた処理を中断、途中結果を保存し、割り込みベクタ表102を参照して割り込み要因（＝ベクタ番号）に対応する割り込み処理を起動する。一例として、割り込み要因がベクタ番号Ｍで起動される割り込み処理が１０１ｍの割り込み処理Ｍの場合、まず１１１にて割り込みの原因を特定する。具体的には、通信ＬＳＩからの割り込みの場合、該通信ＬＳＩの制御レジスタを参照することにより、割り込みの原因が、送信完了なのか、外部よりメッセージを受信したのか、あるいはエラーが発生したのかを特定する。ここで、割り込みの原因が原因２であったとすると、１１２にて１０４の割り込み原因−起動タスク対応表を参照して、起動タスクを見つける。１０４には、原因２の起動タスクはモジュール起動制御タスク２であり、１１３にてモジュール起動制御タスク２のＴＣＢ２（１０３ｂ）を参照し、該タスク状態を実行可能にする。そして１１４にて
RTOS13に処理を渡して、割り込み処理を終了する（１１５）。
【００４７】
一方、RTOS13は、実行可能状態のタスクの中で、最高優先度のタスクを起動し、最初に実行するモジュールを実行する。実行可能状態の複数個のタスクの中から最高優先度のタスクを起動する手段は、ＲＴＯＳでは標準的な、優先度毎に設けられた複数のスケジューリング・キューより構成されるタスク・スケジューラにより実現される。
【００４８】
一例として、図４で、モジュール起動制御タスク２が起動された場合、最初に実行するモジュールはＴＣＢ2(１０３ｂ）参照により、「MsgObj２受信」となる。その後の該タスクの動作は、図２，図３の先程の説明より、以下となる：
（１）図３を参照することにより、メッセージ・オブジェクト名：MsgObj２受信処理実行後、次に実行するのは、ＡＰモジュール：Ｍ４である。
【００４９】
（２）図２を参照することにより、ＡＰモジュール：Ｍ４実行後、次に実行するのはメッセージ・オブジェクト：MsgObj３送信である。
【００５０】
（３）図３を参照することにより、メッセージ・オブジェクト名：MsgObj３送信処理実行後、次に実行するのは、ＡＰモジュール：Ｍ５である。
【００５１】
（４）図２を参照することにより、ＡＰモジュール：Ｍ５実行後、次に実行するのは
ＮＵＬＬ、即ち、該タスクの動作終了を示す。
【００５２】
以上より、該タスクの動作をまとめると、以下となる：
MsgObj２受信→Ｍ４→MsgObj３送信→Ｍ５→終了
ＡＰ構成情報の参照による、モジュール起動制御タスクの動作例を以下に記す。まず最初に、あるユニット内のモジュール起動制御タスクＡが最初にＡＰモジュール：Ｍ１を実行するとすれば、図２，図３の次実行モジュールを辿ることにより、モジュールの実行順序は、以下の通りとなる：
Ｍ１→MsgObj１受信→MsgObj１送信→Ｍ２→Ｍ３→終了
また、別のユニット内のモジュール起動制御タスクＢが最初にMsgObj２受信を実行するとすれば、図２，図３の次実行モジュールを辿ることにより、モジュールの実行順序は、以下の通りとなる：
MsgObj２受信→Ｍ４→MsgObj３送信→Ｍ５→終了
以上の様に、モジュール起動制御タスクの動作は、関数呼び出しのみからなるｃ言語のメイン関数のような、関数（＝モジュール）起動のみを行い、モジュール実行順序制御を行うといったＡＰ処理実行の枠組み（フレームワーク）となる。
【００５３】
なお、モジュール起動制御タスクがＡＰモジュールを呼び出して実行する反面、ＡＰモジュールがモジュール起動制御タスク、ＯＳサービス(システムコール)を呼び出して実行することはしないので、またＡＰとモジュール起動制御タスクの間のＡＰＩは、ＡＰモジュールとなる。これは、従来技術のＡＰＩがＯＳサービスやライブラリであるのとは、正反対である。
【００５４】
本実施例では、図１の各ユニット内のＡＰ構成情報２３は、図２，図３にて示した表の全ての情報を保持する、即ち該情報はユニット間で同一情報を共有することになる。あるいは、各ユニット毎に、該ユニットが使用する情報、即ち該ユニット内モジュール（ＡＰモジュールあるいはメッセージ・オブジェクト）に関する情報のみを保有させることは、容易に実現可能である。
【００５５】
本実施例では、モジュール起動制御タスク２２ａ〜２２ｋが実行するモジュールＡＰ以外のモジュールとして、メッセージ・オブジェクトを扱った。しかし、メッセージ以外の他の入出力オブジェクト、例えば、具体的なセンサオブジェクト，アクチュエータ・オブジェクトに関しても、メッセージ・オブジェクト３４ａ〜３４ｍに相当する入出力オブジェクトと、ＲＴ通信処理制御２５に相当する入出力オブジェクト制御モジュールと、ＡＰ構成情報２３内に入出力オブジェクト構成情報を格納することにより、各種入出力オブジェクトに関してもメッセージ・オブジェクトと同様の実行制御が可能になる。
【００５６】
本実施例では、モジュール起動制御タスク２２ａ〜２２ｋはタスクとしているが、
RTOS13の内部の機能でもよい。この場合、タスク切り換えオーバーヘッドが減少するが、ＲＴＯＳのサイズが大きくなり、ポータビリティが悪くなる。
【００５７】
本実施例では、ＲＴ通信処理制御２５はメッセージ・オブジェクト２４ａ〜２４ｍより呼び出されるソフトウェアモジュールであり、モジュール起動制御タスク２２ａ〜２２ｋにて実行されるが、２５がモジュール起動制御タスク２２ａ〜２２ｋとは別の独立したタスクでよいし、また２５がRTOS13の内部の機能であってもよい。２５をタスクにした場合、２２ａ〜２２ｋとの並行処理がより柔軟に行える一方、タスク切り換えオーバーヘッドが増える。２５をＲＴＯＳ内部の機能にすると、タスク切り換えオーバーヘッドが減少するが、ＲＴＯＳのサイズが大きくなり、ポータビリティが悪くなる。
【００５８】
本実施例では、ＲＴ通信処理制御２５はネットワーク通信処理ドライバ１４を直接制御していないが、直接２５が１４を制御する構成であってもかまわない。この場合、RTOSを経由しない分だけ、オーバーヘッドが小さくなる一方、２５が１４を実行する際、共有資源の排他制御処理を行う必要があり、２５内のプログラムの記述が複雑になる。
【００５９】
ここでは、ＡＰ構成情報変更によるシステム変更例を、具体例にて説明する。
【００６０】
（１）基本構成
図５は、自動車のオートクルーズ制御を実現するために使われるスロットル制御ユニット内のモジュール起動制御タスクの動作を示したものである。
【００６１】
図５において、ユニット１は、ネットワーク２に接続される。ユニット１はＡＰモジュールである目標駆動力計算２１ｙおよびスロットル開度計算２１ｚとメッセージ・オブジェクトである目標車速２４ｙおよび目標駆動力２４ｚからなる。ユニット１はネットワーク２を介して目標車速の情報４３を受信する。ユニット１はユニット出力４２からスロットル開度を出力する。２２はモジュール起動制御タスクＡである。
【００６２】
図５のモジュール起動制御タスクＡ（２２）の動作は、図６〜図９に示すパラメータにて設定される。
【００６３】
図６はスロットル制御ユニット１内の割り込み原因−起動タスク対応表を示す。この対応表はモジュール起動制御タスクＡ（２２）は３０msタイマにより周期起動されることを表している。
【００６４】
図７はモジュール起動制御タスクＡのＴＣＢ（タスク制御ブロック）を示す。タスク実行優先度は高、起動後に最初に実行するモジュールは目標車速２４ｙの受信であることを示している。
【００６５】
図８はＡＰモジュール構成情報を示す。ＡＰモジュール：目標駆動力計算２１ｙ実行後、次にメッセージ・オブジェクト：目標駆動力２４ｚの送信処理を実行、また、ＡＰモジュール：スロットル開度計算２１ｚ実行後はタスク終了であることを示している。
【００６６】
図９はメッセージ・オブジェクト構成情報を示す。メッセージ・オブジェクト：目標車速２４ｙの通信は、その通信優先度は中，ユニット間通信，非同期通信サービスである。モジュール起動制御タスクが目標車速２４ｙの送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標車速２４ｙの受信処理実行後、次に実行するのは、ＡＰモジュール：目標駆動力計算２１ｙであることを示している。一方、メッセージ・オブジェクト：目標駆動力２４ｚの通信は、その通信優先度はＮＵＬＬ，ユニット内通信，同期通信サービスである。モジュール起動制御タスクが目標駆動力２４ｚの送信処理実行後、目標駆動力２４ｚの受信、また、モジュール起動制御タスクが目標駆動力２４ｚの受信処理実行後、次に実行するのは、ＡＰモジュール：スロットル開度計算２１ｚであることを示している。
【００６７】
以上の図６〜図９のパラメータ値により、モジュール起動制御タスクＡ（２２）の動作は、３０msタイマにより周期起動され、また、モジュール実行順序は以下となる：
目標車速２４ｙ受信→目標駆動力計算２１ｙ→目標駆動力２４ｚ送信→目標駆動力24ｚ受信→スロットル開度計算２１ｚ実行→タスク終了
【００６８】
（２）機能分散
図１０は、図５のスロットル制御ユニットを２ユニットに機能分散した場合のモジュール起動制御タスクの動作を示したものである。
【００６９】
図１０において、ユニット１ｙと１ｚは、ネットワーク２に接続される。ユニット１ｙはＡＰモジュールである目標駆動力計算２１ｙとメッセージ・オブジェクトである目標車速２４ｙおよび目標駆動力２４ｚ１からなる。ユニット１ｙはネットワーク２を介して目標車速の情報４３を受信する。ユニット１ｙはネットワーク２に目標駆動力の情報４４を送信する。２２ｙはユニット１ｙ内のモジュール起動制御タスクＡである。ユニット１ｚはＡＰモジュールであるスロットル開度計算２１ｚとメッセージ・オブジェクトである目標駆動力２４ｚ２からなる。ユニット１ｚはネットワーク２を介して目標駆動力の情報
４４を受信する。ユニット１ｚはユニット出力４２からスロットル開度を出力する。22ｚはユニット１ｚ内のモジュール起動制御タスクＢである。
【００７０】
図１０のモジュール起動制御タスクＡ（２２ｙ）、タスクＢ（２２ｚ）の動作は、図
１１〜図１４に示すパラメータにて設定される。
【００７１】
図１１は駆動力マネジメントユニット１ｙ、スロットル制御ユニット内１ｚそれぞれの割り込み原因−起動タスク対応表を示す。図より、モジュール起動制御タスクＡ(２２ｙ)，タスクＢ（２２ｚ）は、それぞれ３０msタイマによる周期起動、目標駆動力２４ｚ２の受信イベント起動となることを示している。
【００７２】
図１２はモジュール起動制御タスクＡ，タスクＢのＴＣＢ（タスク制御ブロック）を示す。タスクＡ，タスクＢ共にタスク実行優先度は高、また起動後に最初に実行するモジュールはタスクＡが目標車速２４ｙの受信，タスクＢが目標駆動力２４ｚ２の受信であることを示している。
【００７３】
図１３はＡＰモジュール構成情報を示す。ＡＰモジュール：目標駆動力計算２１ｙ実行後、次にメッセージ・オブジェクト：目標駆動力２４ｚ１の送信処理を実行、また、ＡＰモジュール：スロットル開度計算２１ｚ実行後はタスク終了であることを示している。
【００７４】
図１４はメッセージ・オブジェクト構成情報を示す。メッセージ・オブジェクト：目標車速２４ｙの通信は、その通信優先度は中，ユニット間通信，非同期通信サービスである。モジュール起動制御タスクが目標車速２４ｙの送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標車速２４ｙの受信処理実行後、次に実行するのは、ＡＰモジュール：目標駆動力計算２１ｙであることを示している。一方、メッセージ・オブジェクト：目標駆動力２４ｚ１，２４ｚ２（両者は同一オブジェクトであり、構成情報はユニット間で共有される）の通信は、その通信優先度は高，ユニット間通信，同期通信サービスである。モジュール起動制御タスクが目標駆動力の送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標駆動力の受信処理実行後、次に実行するのは、ＡＰモジュール：スロットル開度計算２１ｚであることを示している。
【００７５】
以上の図１１〜図１４のパラメータ値により、モジュール起動制御タスクＡ（２２ｙ）の動作は、３０msタイマにより周期起動され、また、モジュール実行順序は以下となる：
目標車速２４ｙ受信→目標駆動力計算２１ｙ→目標駆動力送信→タスク終了
また、モジュール起動制御タスクＢ（２２ｚ）の動作は、目標駆動力の受信イベントで起動され、また、モジュール実行順序は以下となる：
目標駆動力受信→スロットル開度計算２１ｚ実行→タスク終了
よって、（１）から（２）にシステム構成変更があった場合、以下のパラメータの変更のみで対応できる。
【００７６】
・スロットル制御ユニット内１ｚの割り込み原因−起動タスク対応表のモジュール起動制御タスクＢ（２２ｚ）の新規登録。
【００７７】
・モジュール起動制御タスクＢ（２２ｚ）のＴＣＢ（タスク制御ブロック）の新規登録。
【００７８】
・ＡＰ構成情報の変更は、メッセージ・オブジェクト：目標駆動力の通信処理優先度、内部／外部通信、送信時の次実行モジュールの３箇所。
【００７９】
（３）新機能
図１５は、図１０のシステム構成に、新たにレーダユニットを追加した場合のモジュール起動制御タスクの動作を示したものである。
【００８０】
図１５において、ユニット１ｘ，１ｙ，１ｚは、ネットワーク２に接続される。ユニット１ｘはＡＰモジュールである車間距離計算２１ｗおよび目標車速計算２１ｘとメッセージ・オブジェクトである車間距離２４ｘおよび目標車速２４ｙ１からなる。ユニット１ｘはユニット入力４１からレータ情報を入力する。ユニット１ｘはネットワーク２に目標車速の情報４５を送信する。２２ｘはユニット１ｘ内のモジュール起動制御タスクＣである。ユニット１ｙ１はＡＰモジュールである目標駆動力計算２１ｙとメッセージ・オブジェクトである目標車速２４ｙ２および目標駆動力２４ｚ１からなる。ユニット１ｙ１はネットワーク２を介して目標車速の情報４３を受信する。ユニット１ｙ１はネットワーク２に目標駆動力の情報４４を送信する。２２ｙはユニット１ｙ１内のモジュール起動制御タスクＡである。ユニット１ｚはＡＰモジュールであるスロットル開度計算２１ｚとメッセージ・オブジェクトである目標駆動力２４ｚ２からなる。ユニット１ｚはネットワーク２を介して目標駆動力の情報４４を受信する。ユニット１ｚはユニット出力４２からスロットル開度を出力する。２２ｚはユニット１ｚ内のモジュール起動制御タスクＢである。
【００８１】
図１５のモジュール起動制御タスクＡ（２２ｙ），タスクＢ（２２ｚ），タスクＣ
（２２ｘ）の動作は、図１６〜図１９に示すパラメータにて設定される。
【００８２】
図１６は駆動力マネジメントユニット１ｙ，スロットル制御ユニット内１ｚ，レーダユニット１ｚそれぞれの割り込み原因−起動タスク対応表を示す。図より、モジュール起動制御タスクＡ（２２ｙ），タスクＢ（２２ｚ），タスクＣ（２２ｘ）は、それぞれ目標車速２４ｙ２の受信イベント起動、目標駆動力２４ｚ２の受信イベント起動、３０msタイマによる周期起動となることを示している。
【００８３】
図１７はモジュール起動制御タスクＡ，タスクＢ，タスクＣのＴＣＢ（タスク制御ブロック）を示す。タスクＡ，タスクＢ，タスクＣ共にタスク実行優先度は高、また起動後に最初に実行するモジュールはタスクＡが目標車速２４ｙ２の受信，タスクＢが目標駆動力２４ｚ２の受信，タスクＣが車間距離計算２１ｗであることを示している。
【００８４】
図１８はＡＰモジュール構成情報を示す。ＡＰモジュール：目標駆動力計算２１ｙ実行後、次にメッセージ・オブジェクト：目標駆動力２４ｚ１の送信処理を実行、また、ＡＰモジュール：スロットル開度計算２１ｚ実行後はタスク終了であり、車間距離計算２１ｗ実行後、次にメッセージ・オブジェクト：車間距離２４ｘの送信処理を実行、目標車速計算２１ｘ実行後、次にメッセージ・オブジェクト：目標車速２４ｙ１の送信処理を実行することを示している。
【００８５】
図１９はメッセージ・オブジェクト構成情報を示す。メッセージ・オブジェクト：目標車速２４ｙ１，２４ｙ２（両者は同一オブジェクトであり、構成情報はユニット間で共有される）の通信は、その通信優先度は中、ユニット間通信，同期通信サービスである。モジュール起動制御タスクが目標車速の送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標車速の受信処理実行後、次に実行するのは、ＡＰモジュール：目標駆動力計算２１ｙであることを示している。一方、メッセージ・オブジェクト：目標駆動力２４ｚ１，２４ｚ２（両者は同一オブジェクトであり、構成情報はユニット間で共有される）の通信は、その通信優先度は高，ユニット間通信，同期通信サービスである。モジュール起動制御タスクが目標駆動力の送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標駆動力の受信処理実行後、次に実行するのは、ＡＰモジュール：スロットル開度計算２１ｚであることを示している。さらに、メッセージ・オブジェクト：車間距離２４ｘの通信は、その通信優先度はＮＵＬＬ，ユニット内通信，同期通信サービスである。モジュール起動制御タスクが車間距離の送信処理実行後、メッセージ・オブジェクト：車間距離の受信処理実行、また、モジュール起動制御タスクが車間距離の受信処理実行後、次に実行するのは、ＡＰモジュール：目標車速計算２１ｘであることを示している。
【００８６】
以上の図１６〜図１９のパラメータ値により、モジュール起動制御タスクＡ（２２ｙ）の動作は、目標車速の受信イベントで起動され、また、モジュール実行順序は以下となる：
目標車速受信→目標駆動力計算２１ｙ→目標駆動力送信→タスク終了
また、モジュール起動制御タスクＢ（２２ｚ）の動作は、目標駆動力の受信イベントで起動され、また、モジュール実行順序は以下となる：
目標駆動力受信→スロットル開度計算２１ｚ実行→タスク終了
さらに、モジュール起動制御タスクＣ（２２ｘ）の動作は、３０msタイマにより周期起動され、また、モジュール実行順序は以下となる：
車間距離計算２１ｗ→車間距離送信→車間距離受信→目標車速計算２１ｘ→目標車速送信→タスク終了
よって、（２）から（３）にシステム構成変更があった場合、以下のパラメータの変更のみで対応できる。
【００８７】
・駆動力マネジメントユニット内１ｙ１の割り込み原因−起動タスク対応表の割り込み原因の変更。
【００８８】
・レーダユニット内１ｘの割り込み原因−起動タスク対応表のモジュール起動制御タスクＣ（２２ｘ）の新規登録。
【００８９】
・モジュール起動制御タスクＣ（２２ｘ）のＴＣＢ（タスク制御ブロック）の新規登録。
【００９０】
・ＡＰ構成情報の変更は、ＡＰモジュール：車間距離計算２１ｗ、目標車速計算２１ｘの新規登録、メッセージ・オブジェクト：目標車速の通信サービス種類、メッセージ・オブジェクト：車間距離の新規登録。
【００９１】
（４）機能移動
図２０は、図１５のシステム構成にて、モジュールをあるユニットから別のユニットに移動した場合のモジュール起動制御タスクの動作を示したものである。
【００９２】
図２０において、ユニット１ｖ，１ｗ，１ｚは、ネットワーク２に接続される。ユニット１ｖはＡＰモジュールである車間距離計算２１ｗとメッセージ・オブジェクトである車間距離２４ｘ１からなる。ユニット１ｖはユニット入力４１からレータ情報を入力する。ユニット１ｖはネットワーク２に車間距離の情報４５を送信する。２２ｖはユニット１ｖ内のモジュール起動制御タスクＣである。ユニット１ｗはＡＰモジュールである目標車速計算２１ｘおよび目標駆動力計算  ２１ｙとメッセージ・オブジェクトである車間距離
２４ｘ２および目標車速24ｙおよび目標駆動力２４ｚ１からなる。ユニット１ｗはネットワーク２を介して車間距離の情報４５を受信する。ユニット１ｗはネットワーク２に目標駆動力の情報４４を送信する。２２ｗはユニット１ｗ内のモジュール起動制御タスクＡである。ユニット１ｚはＡＰモジュールであるスロットル開度計算２１ｚとメッセージ・オブジェクトである目標駆動力２４ｚ２からなる。ユニット１ｚはネットワーク２を介して目標駆動力の情報４４を受信する。ユニット１ｚはユニット出力４２からスロットル開度を出力する。２２ｚはユニット１ｚ内のモジュール起動制御タスクＢである。
【００９３】
図２０のモジュール起動制御タスクＡ（２２ｗ），タスクＢ（２２ｚ），タスクＣ
（２２ｖ）の動作は、図２１〜図２４に示すパラメータにて設定される。
【００９４】
図２１は駆動力マネジメントユニット１ｗ、スロットル制御ユニット内１ｚ，レーダユニット１ｖそれぞれの割り込み原因−起動タスク対応表を示す。図より、モジュール起動制御タスクＡ（２２ｗ），タスクＢ（２２ｚ），タスクＣ（２２ｖ）は、それぞれ車間距離２４ｘ２の受信イベント起動、目標駆動力２４ｚ２の受信イベント起動、３０msタイマによる周期起動となる。
【００９５】
図２２はモジュール起動制御タスクＡ，タスクＢ，タスクＣのＴＣＢ（タスク制御ブロック）を示す。タスクＡ，タスクＢ，タスクＣ共にタスク実行優先度は高、また起動後に最初に実行するモジュールはタスクＡが車間距離２４ｘ２の受信、タスクＢが目標駆動力２４ｚ２の受信、タスクＣが車間距離計算２１ｗであることを示している。
【００９６】
図２３はＡＰモジュール構成情報を示す。ＡＰモジュール：目標駆動力計算２１ｙ実行後、次にメッセージ・オブジェクト：目標駆動力２４ｚ１の送信処理を実行、また、ＡＰモジュール：スロットル開度計算２１ｚ実行後はタスク終了であり、車間距離計算２１ｗ実行後、次にメッセージ・オブジェクト：車間距離２４ｘの送信処理を実行、目標車速計算２１ｘ実行後、次にメッセージ・オブジェクト：目標車速２４ｙ１の送信処理を実行することを示している。図２３は図１８と同一である。
【００９７】
図２４はメッセージ・オブジェクト構成情報を示す。メッセージ・オブジェクト：目標車速２４ｙの通信は、その通信優先度はＮＵＬＬ，ユニット内通信，同期通信サービスである。モジュール起動制御タスクが目標車速の送信処理実行後、メッセージ・オブジェクト：目標車速の受信処理実行、また、モジュール起動制御タスクが目標車速の受信処理実行後、次に実行するのは、ＡＰモジュール：目標駆動力計算２１ｙであることを示している。一方、メッセージ・オブジェクト：目標駆動力２４ｚ１，２４ｚ２（両者は同一オブジェクトであり、構成情報はユニット間で共有される）の通信は、その通信優先度は高，ユニット間通信，同期通信サービスである。モジュール起動制御タスクが目標駆動力の送信処理実行後、タスク終了、また、モジュール起動制御タスクが目標駆動力の受信処理実行後、次に実行するのは、ＡＰモジュール：スロットル開度計算２１ｚであることを示している。さらに、メッセージ・オブジェクト：車間距離２４ｘ１，２４ｘ２（両者は同一オブジェクトであり、構成情報はユニット間で共有される）の通信は、その通信優先度は低，ユニット間通信，同期通信サービスである。モジュール起動制御タスクが車間距離の送信処理実行後、メッセージ・オブジェクト：車間距離の受信処理実行、また、モジュール起動制御タスクが車間距離の受信処理実行後、次に実行するのは、ＡＰモジュール：目標車速計算２１ｘであることを示している。
【００９８】
以上の図２１〜図２４のパラメータ値により、モジュール起動制御タスクＡ（２２ｗ）の動作は、車間距離の受信イベントで起動され、また、モジュール実行順序は以下となる：
車間距離受信→目標車速計算２１ｘ→目標車速送信→目標車速受信→目標駆動力計算２１ｙ→目標駆動力送信→タスク終了
また、モジュール起動制御タスクＢ（２２ｚ）の動作は、目標駆動力の受信イベントで起動され、また、モジュール実行順序は以下となる：
目標駆動力受信→スロットル開度計算２１ｚ実行→タスク終了
さらに、モジュール起動制御タスクＣ（２２ｖ）の動作は、３０msタイマにより周期起動され、また、モジュール実行順序は以下となる：
車間距離計算２１ｗ→車間距離送信→タスク終了
よって、（３）から（４）にシステム構成変更があった場合、以下のパラメータの変更のみで対応できる。
【００９９】
・駆動力マネジメントユニット内１ｙ１の割り込み原因−起動タスク対応表の割り込み原因の変更。
【０１００】
・モジュール起動制御タスクＡ（２２ｗ）のＴＣＢ（タスク制御ブロック）の起動後に最初に実行するモジュール変更。
【０１０１】
・ＡＰ構成情報の変更は、ＡＰモジュール構成情報は無し、メッセージ・オブジェクト：目標車速，車間距離の通信処理優先度，内部/外部通信，送信時の次実行モジュールの変更。
【０１０２】
以上のように、モジュール起動制御タスクは、ＡＰ構成情報（ＡＰモジュール構成情報，メッセージ・オブジェクト構成情報）、さらには、割り込み原因−起動タスク対応表内の起動タスク情報，タスク制御ブロック内のタスク実行優先度情報と起動後に最初に実行するモジュール情報の変更により、任意のシステム構成に対応できる。このように、システム構成が変更してもソフト変更量を小さく抑えることができるので、ソフト生産性の向上をはかることが可能になる。
【０１０３】
さらに、これらの情報を変更することで、ＡＰモジュールの実行順序や通信処理の実行順序やメッセージ・オブジェクトの通信処理優先度を変更でき、ＡＰと通信処理を非同期にあるいは、同期して動作させることができるので、ネットワークを跨った通信処理を含むセンサ入力〜アクチュエータ出力を行う処理の最悪実行時間を短くすることが可能になる。
【０１０４】
図２５にＡＰ構成情報設定システムの構成図を記す。
【０１０５】
図において、複数のユニット１ａ１，…，１ｎ１とパソコン５１はネットワーク２に接続される。各ユニット内は、アプリケーション・プログラム(ＡＰ)１１と分散制御ミドルウェア１２，リアルタイムオペレーティングシステム（ＲＴＯＳ）１３，ネットワーク通信処理ドライバ１４と初期化処理１５からなる。ＡＰ１１は、複数のＡＰモジュール21ａ，２１ｂ，…，２１ｎからなる。分散制御処理ミドルウェアは複数のモジュール起動制御タスク２２ａ，…，２２ｋとＡＰ構成情報２３と複数のメッセージ・オブジェクト２４ａ，…，２４ｍとリアルタイム通信処理制御２５からなる。さらに２３はＡＰモジュール構成情報２３ａ，メッセージ・オブジェクト構成情報２３ｂよりなる。また図中の矢印31ａ〜３１ｎ，３２ａ〜３２ｋ，３３ａ〜３３ｋ，３４ａ〜３４ｍ，３５ａ〜３５ｋ，３６，２５ａ，２５ｂ，３７，３７ａらは制御フローである。５１はセンターコントロールユニットやパソコン等の汎用計算機であり、それがＡＰ構成情報格納ディスク５２と接続される。
【０１０６】
ＡＰ構成情報設定システムの動作は、以下のようになる。ＡＰ構成情報格納ディスク
５２には全癒ニットのＡＰ構成情報が格納されており、システム立ち上げ時に、計算機
５１がＡＰ構成情報格納ディスク５２よりＡＰ構成情報の書き換えが必要なユニット宛に該ユニットのＡＰ構成情報（図４に記した割り込み原因−起動タスク対応表１０４、タスク制御ブロック１０３ａ〜１０３ｎ）をネットワーク経由で複数のパケットに分割して送信する。該受信側のユニットでは、初期化処理１５がネットワーク通信ドライバ１４経由で、送られてきたパケットを受信、ＡＰ構成情報２３に格納して行く。
【０１０７】
上記では、ディスク５２にはＡＰ構成情報が格納され、計算機５１により該情報をユニット内ＡＰ構成情報２３に格納する場合のみ記したが、ＡＰ構成情報の他に、図４の割り込み原因−起動タスク対応表１０４やタスク制御ブロック１０３ａ〜１０３ｎの情報も
ＡＰ構成情報格納ディスク５２に格納され、計算機５１により該情報をユニットに送信し、格納してもよい。
【０１０８】
本システムがあれば、ユニットが既にシステム実装された後でも、ユニット内のモジュール起動制御タスクの動作を変更することができるので、新ユニット追加等のシステム構成変更があっても、ユニットをシステムから取り外さなくてよくなる。
【０１０９】
なお、ここでは、ＡＰ構成情報の設定をネットワーク経由で行う実施例を記したが、ネットワーク以外にもＲＳ２３２等のシリアルケーブル経由でユニットのＡＰ構成情報の設定を行うことも可能である。この場合ユニット１ａ１内には、シリアルケーブル・ドライバソフトが必要になり、初期化処理３８はネットワーク通信処理ドライバ１４の代わりにシリアルケーブル・ドライバソフトを使うことになる。
【０１１０】
さらに、ＡＰ構成情報の設定は、ＲＯＭライタを使用して、ＡＰ構成情報２３のメモリ領域に直接書き込もことも可能である。
【０１１１】
図２７にＡＰ構成情報生成ツールの構成図を記す。
【０１１２】
図において、システム構成情報６０１が該ツールの入力情報、ＡＰ構成情報生成ツールは６０２、ＡＰ構成情報２３が出力情報である。ツール６０２は構文解析ツール６０２１，データ生成ツール６０２２の２つのツールより構成される。
【０１１３】
システム構成情報６０１は、以下に記す、タスク情報，ＡＰ情報，メッセージ・オブジェクト情報より構成される。
【０１１４】
（１）システム情報
・分散制御処理（入力から出力までの複数タスクの実行）のタスク実行順序、実行するタスク名及びデータフロー。
【０１１５】
・分散制御処理の最悪実行時間。
【０１１６】
・他タスクとの共有リソースアクセス競合により、処理が遅延する時間。
【０１１７】
・前タスクから継承される実行遅れ時間。
【０１１８】
・分散制御処理完了までのEnd-to-Endのデッドライン。
【０１１９】
（２）タスク情報
・モジュール実行順序、実行するモジュール名及びデータフロー
・タスク実行優先度
・タスクの起動タイプ（周期タイマ起動 or イベント起動）。
【０１２０】
・タスク起動周期時間
- 周期時間（周期起動タイプの分散制御処理）。
【０１２１】
- イベント発生最小時間（イベント駆動タイプの分散制御処理）。
【０１２２】
・自タスクの最悪応答行時間。
【０１２３】
（３）ＡＰ情報
・内包する全ＡＰモジュールへのポインタ。
【０１２４】
・各ＡＰモジュールの入力情報の個数、データタイプ。
【０１２５】
・各ＡＰモジュールの出力情報の個数、データタイプ。
【０１２６】
（４）メッセージ・オブジェクト情報
・内包する全メッセージ・オブジェクトへのポインタ。
【０１２７】
・各メッセージ・オブジェクトのデータタイプ。
【０１２８】
・メッセージ種類（同期通信 or 非同期通信）。
【０１２９】
・送信処理，受信処理完了までのタイムアウト時間。
【０１３０】
・送信処理リトライ上限回数。
【０１３１】
・採用する通信エラー処理。
【０１３２】
構文解析ツール６０２１は、システム構成情報６０１よりＡＰ構成情報を抽出するツールであり、一般の構文解析ツールにて実現可能である。またデータ生成ツール６０２２は、ツール６０２１からの出力をＡＰ構成情報２３のフォーマットに変換するものである。
【０１３３】
本ツールがあれば、人手でＡＰ構成情報２３を作成しなくて済み、ソフトウェアの生産性が向上する。
【０１３４】
図２８に分散制御処理ミドルウェア・コード生成ツールの構成図を記す。
【０１３５】
図において、システム構成情報６０１が該ツールの入力情報，分散制御処理ミドルウェア・コード生成ツールは６０５，分散制御処理ミドルウェア・コードが６０４である。ツール６０５はＡＰ構成情報生成ツール６０２，中間データであるＡＰ構成情報２３，コード生成ツール６０３より構成される。
【０１３６】
コード生成ツール６０３は、図２６にてその動作を記したモジュール起動制御タスク
（図１の２２ａ〜２２ｋ）と該タスクの参照データであるＡＰ構成情報２３よりモジュール起動制御タスクのコードを生成する。生成されるコードは、高級言語のソースファイルでも、アセンブラコードでも、オブジェクト・ファイルでもよい。
【０１３７】
本ツールによって生成されたコードは、上記で説明してきた、モジュール起動制御タスクがＡＰ構成情報を参照する処理のコードよりもサイズを小さくできるので、メモリの節約及び実行時間のオーバーヘッドの低減がはかれる。
【図面の簡単な説明】
【０１３８】
【図１】本発明の一実施例を表すユニット構成を示す図である。
【図２】ＡＰモジュール構成情報２３ａの一例を示した図である。
【図３】メッセージ・オブジェクト構成情報２３ｂの一例を示した図である。
【図４】割り込み処理の動作フローを示した図である。
【図５】スロットル制御ユニット内のモジュール起動制御タスクの動作を示した図である。
【図６】スロットル制御ユニット１内の割り込み原因−起動タスク対応表を示した図である。
【図７】モジュール起動制御タスクＡのＴＣＢ（タスク制御ブロック）を示した図である。
【図８】ＡＰモジュール構成情報を示した図である。
【図９】メッセージ・オブジェクト構成情報を示した図である。
【図１０】機能分散した場合のモジュール起動制御タスクの動作を示した図である。
【図１１】スロットル制御ユニット１内の割り込み原因−起動タスク対応表を示した図である。
【図１２】モジュール起動制御タスクＡのＴＣＢ（タスク制御ブロック）を示した図である。
【図１３】ＡＰモジュール構成情報を示した図である。
【図１４】メッセージ・オブジェクト構成情報を示した図である。
【図１５】ユニットを追加した場合のモジュール起動制御タスクの動作を示した図である。
【図１６】スロットル制御ユニット１内の割り込み原因−起動タスク対応表を示した図である。
【図１７】モジュール起動制御タスクＡのＴＣＢ（タスク制御ブロック）を示した図である。
【図１８】ＡＰモジュール構成情報を示した図である。
【図１９】メッセージ・オブジェクト構成情報を示した図である。
【図２０】モジュールをあるユニットから別のユニットに移動した場合のモジュール起動制御タスクの動作を示した図である。
【図２１】スロットル制御ユニット１内の割り込み原因−起動タスク対応表を示した図である。
【図２２】モジュール起動制御タスクＡのＴＣＢ（タスク制御ブロック）を示した図である。
【図２３】ＡＰモジュール構成情報を示した図である。
【図２４】メッセージ・オブジェクト構成情報を示した図である。
【図２５】ＡＰ構成情報設定システムの構成を示した図である。
【図２６】モジュール起動制御タスクの動作を表すフローチャートを示した図である。
【図２７】ＡＰ構成情報生成ツールの構成を示した図である。
【図２８】分散制御処理ミドルウェア・コード生成ツールの構成を示した図である。
【符号の説明】
【０１３９】
１…ユニット、１１…アプリケーション・プログラム、１２…分散制御ミドルウェア、１３…リアルタイムオペレーティングシステム、１４…ネットワーク通信処理ドライバ、２０…ネットワーク、２１…アプリケーション・プログラムモジュール、２２…モジュール起動タスク、２３…アプリケーション・プログラム構成情報、２４…メッセージ・オブジェクト、２５…リアルタイム通信処理制御、３１〜３８…制御フロー、４１…ユニットへの入力、４２…ユニットからの出力、４３〜４５…ネットワークを経由する情報、５１…計算機、５２…ＡＰ構成情報格納ディスク、１０１…割り込み処理、１０２…割り込みベクタ表、１０３…リアルタイムオペレーティングシステム内タスク制御ブロック、104…割込み原因−起動タスク対応表、１１１〜１１５…割り込み処理の内容。
【図１】
2007052813.tif 000003
【図２】
2007052813.tif 000004
【図３】
2007052813.tif 000005
【図４】
2007052813.tif 000006
【図５】
2007052813.tif 000007
【図６】
2007052813.tif 000008
【図７】
2007052813.tif 000009
【図８】
2007052813.tif 000010
【図９】
2007052813.tif 000011
【図１０】
2007052813.tif 000012
【図１１】
2007052813.tif 000013
【図１２】
2007052813.tif 000014
【図１３】
2007052813.tif 000015
【図１４】
2007052813.tif 000016
【図１５】
2007052813.tif 000017
【図１６】
2007052813.tif 000018
【図１７】
2007052813.tif 000019
【図１８】
2007052813.tif 000020
【図１９】
2007052813.tif 000021
【図２０】
2007052813.tif 000022
【図２１】
2007052813.tif 000023
【図２２】
2007052813.tif 000024
【図２３】
2007052813.tif 000025
【図２４】
2007052813.tif 000026
【図２５】
2007052813.tif 000027
【図２６】
2007052813.tif 000028
【図２７】
2007052813.tif 000029
【図２８】
2007052813.tif 000030
【手続補正書】
【提出日】平成18年11月29日(2006.11.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークと接続するための通信手段を有する複数のユニットを備え、自動車の分散制御を行う分散制御システムであって、
複数のユニットとして、自動車の状態を検知するセンサユニットと、
自動車の状態を計算する演算ユニットとを備え、
前記センサユニット及び前記演算ユニットに関係するメッセージ・オブジェクトの通信処理優先度を高くすることを特徴とする分散制御システム。
【請求項２】
請求項１において、
複数のユニットとして、アクチュエータを有するアクチュエータユニットを備え、
前記センサユニットからアクチュエータユニット迄に関係するメッセージ・オブジェクトの通信処理優先度を高くすることを特徴とする分散制御システム。
【請求項３】
請求項１又は請求項２において、
前記センサユニットは、車間距離を測定するレーダーを備えたことを特徴とする分散制御システム。
【請求項４】
請求項１から請求項４のうちの１つにおいて、
前記演算ユニットは、自動車の駆動力を制御することを特徴とする分散制御システム。
【請求項５】
請求項１から請求項４のうちの１つにおいて、
前記ユニットは、通信処理を実行するメッセージ・オブジェクトの複数の前記ユニットを用いる処理での優先度を示す通信処理優先度を格納するメッセージ・オブジェクト構成情報格納手段を備えることを特徴とする分散制御システム。
【請求項６】
分散制御システムのシステム構成情報を入力とし、前記アプリケーション・プログラムモジュール構成情報格納手段に格納すべき情報と前記モジュール起動制御手段よりなるプログラムコードを出力する分散制御ミドルウェア・コード生成ツール。
【請求項７】
請求項６において、
分散制御システムのシステム構成情報から前記アプリケーション・プログラムモジュール構成情報格納手段を抽出する構文解析ツールを備えたことを特徴とする分散制御ミドルウェア・コード生成ツール。
【請求項８】
請求項７において、
前記構文解析ツールからの出力データを前記アプリケーション・プログラムモジュール構成情報のフォーマットに変換することを特徴とする分散制御ミドルウェア・コード生成ツール。