(57)【特許請求の範囲】
【請求項１】
複数の制御ユニットを有する分散制御システム上で実行される複数のアプリケーションモジュールの起動順番が記述されたＡＰモジュール起動情報、前記制御ユニット毎に当該制御ユニットに配置されるアプリケーションモジュールが記述されたＡＰモジュール配置情報、アプリケーションモジュール毎に入力データおよび出力データが記述されたＡＰモジュール入出力情報、ならびに、前記分散制御システムへの入力データおよび出力データが記述されたシステム入出力情報を予め格納する記憶手段と、
前記記憶手段に格納されたデータを用いて、前記制御ユニット毎に、当該制御ユニットにデータの送受信を指示するメッセージオブジェクトを生成するメッセージオブジェクト生成手段と、
前記記憶手段に格納されたデータおよび前記制御ユニット毎に生成されたメッセージオブジェクトを用いて、前記制御ユニット毎に、当該制御ユニットにおけるアプリケーションモジュールおよびメッセージオブジェクトの起動順番を定めるＡＰモジュール／メッセージオブジェクト起動情報を生成するＡＰモジュール／メッセージオブジェクト起動情報生成手段と、
生成された前記メッセージオブジェクトおよび前記ＡＰモジュール／メッセージオブジェクト起動情報を出力する出力手段と
を備え、
前記メッセージオブジェクト生成手段は、
前記制御ユニット毎に、当該制御ユニットに配置されるアプリケーションモジュールを前記ＡＰモジュール配置情報から抽出し、抽出したアプリケーションモジュールに対応する入力データおよび出力データを前記ＡＰモジュール入出力情報から抽出し、抽出したデータの中で、入力データおよび出力データの双方に用いられているデータを削除して残ったデータの中の入力データを、当該制御ユニットのユニット間通信情報の入力データとして保存する処理、および
前記制御ユニット毎に、当該制御ユニット以外の制御ユニットのユニット間通信情報の入力データと前記システム入出力情報の出力データとの中から、前記ＡＰモジュール入出力情報を参照して、当該制御ユニットに配置されるそれぞれのアプリケーションモジュールの出力データと共通のデータを抽出し、抽出したデータを、当該制御ユニットのユニット間通信情報の出力データとして保存する処理を実行するユニット間通信情報生成手段と、
前記制御ユニット毎に、当該制御ユニットのユニット間通信情報内のそれぞれのデータをメッセージデータとするメッセージオブジェクトを生成し、生成したそれぞれのメッセージオブジェクトに含まれるメッセージデータについて、当該制御ユニットのユニット間通信情報を参照して、当該メッセージデータが、入力データとして当該ユニット間通信情報に保存されている場合に、当該メッセージデータを有するメッセージオブジェクトに受信を指示する旨の属性を設定し、当該メッセージデータが、出力データとして当該ユニット間通信情報に保存されている場合に、当該メッセージデータを有するメッセージオブジェクトに送信を指示する旨の属性を設定するメッセージオブジェクト属性設定手段と
を有し、
ＡＰモジュール／メッセージオブジェクト起動情報生成手段は、
制御ユニット毎に、前記ＡＰモジュール起動情報に記述されているアプリケーションモジュールの起動順に前記ＡＰモジュール入出力情報を参照して、前記ＡＰモジュール起動情報に記述されているアプリケーションモジュールの入力データが、受信を指示する旨の属性を有するメッセージオブジェクトのメッセージデータである場合に、当該アプリケーションモジュールの起動前に当該メッセージデータの受信を指示するメッセージオブジェクトを挿入し、
前記ＡＰモジュール起動情報に記述されているアプリケーションモジュールの出力データが、送信を指示する旨の属性を有するメッセージオブジェクトのメッセージデータである場合に、当該アプリケーションモジュールの起動後に当該メッセージデータの送信を指示するメッセージオブジェクトを挿入することにより、当該制御ユニットに対応するＡＰモジュール／メッセージオブジェクト起動情報を生成すること
を特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術の分野】
本発明は、ＣＡＮ(Controller Area Nerwork)、Foundation Fieldbus等のフィールドネットワークによって複数の組込みシステムを接続させた分散制御システムに関する。
【０００２】
【従来の技術】
自動車のパワートレイン制御システム、ファクトリーオートメーションやプロセスオートメーションのフィールド機器制御システム、医療機器やロボットの制御システム等には、フィールドネットワークにより複数の組込システムを接続させた分散制御システムが適用されている。
【０００３】
さて、フィールドネットワークの一つであるＬＯＮ(Local Operating Network)、自動車制御向け標準通信プロトコル(ＯＳＥＫ−ＣＯＭ)等においては、アプリケーションプログラムモジュール(以下、ＡＰモジュールと呼ぶ)が通信処理を呼び出すライブラリ方式が採用されている。なお、これに関連する技術は、例えば、「OSEK/VDX Communication Version2.0a(OSEKグループ編)」等に記載されている。
【０００４】
また、多くの産業システムにおいては、共有メモリを介して分離されたＡＰモジュールと通信処理とが非同期に動作するメモリ転写方式(Reflective Memory方式)が採用されている。なお、これに関連する技術は、例えば、特開平６−３３２８０７号公報に開示されている。
【０００５】
【発明が解決しようとする課題】
ところが、上記従来のライブラリ方式によれば、ＡＰモジュールに通信処理等が記述されているため、ネットワークを介した通信処理を含むセンサ入力〜アクチュエータ出力までの最悪実行時間の保証、すなわち、Ｅｎｄ−ｔｏ−Ｅｎｄのリアルタイム性の保証が困難である。
【０００６】
すなわち、ＡＰモジュールおよび通信処理の起動タイミングを考慮しつつＡＰモジュール毎に独立のリアルタイム性が保証されている場合、少なくともリアルタイム性の保証についてはＡＰモジュールに汎用性がないため、システム構成変更のたびにＡＰモジュールの全面的な書替えが必要となり、Ｅｎｄ−ｔｏ−Ｅｎｄのリアルタイム性の保証が困難となる。また、フィールドネットワークのプロトコルの標準化の進行に伴い、互いに異なるベンダユニットの相互接続の要求が高まるものと予測されるが、これらの異種ユニットの相互接続に際して、各ユニット上のＡＰモジュールの書替えが不可能である場合、Ｅｎｄ−ｔｏ−Ｅｎｄのリアルタイム性は保証されない。
【０００７】
一方、上記従来のメモリ転写方式によれば、ＡＰモジュールと通信処理とが分離されているため、個々のＡＰモジュールの最悪実行時間および通信処理の最悪実行時間は保証されるが、ＡＰモジュールと通信処理とが非同期に起動されるため、データ伝搬遅延が発生する。したがって、ネットワークを介した通信処理を含むセンサ入力〜アクチュエータ出力までの最悪実行時間が保証されない。このような理由から、上記従来のメモリ転写方式は、最悪実行時間に対する要求が厳しい処理には不向きとされている。
【０００８】
また、上記従来のメモリ転写方式によれば、通信処理によって共有メモリ上のデータが周期的に転送・更新されるため、ネットワーク上のトラフィックが発生しやすい。
【０００９】
そこで、本発明は、この分散制御システム上の各制御ユニットの制御構造が定義された情報を自動生成することができる情報処理装置を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明は、
複数の制御ユニットを有する分散制御システム上で実行されるアプリケーションを構成する全アプリケーションモジュールの起動順番情報と、前記各アプリケーションモジュールの配置先ユニットが指定されたユニット格納情報と、前記各アプリケーションモジュールの入出力データ名情報と、前記アプリケーションを構成する各アプリケーションプログラムの実行優先度を表す実行優先度情報と、が格納された記憶手段と、
前記配置先ユニット情報により配置先ユニットとして指定された各制御ユニットについて、それぞれ、当該制御ユニット上に配置される全アプリケーションモジュールの当該制御ユニット上における起動順番を定めたモジュール構成情報、および、当該制御ユニット上に配置される各アプリケーションモジュールにメッセージデータを送受信させるためのメッセージオブジェクトのうちの少なくとも一方を、前記起動順番情報および前記入出力データ名情報に基づき生成する情報生成手段と、
前記情報生成手段が生成した情報を出力する出力手段と、
を備え、
前記情報生成手段により生成される、各制御ユニットのモジュール構成情報には、さらに、当該制御ユニット上に配置される各アプリケーションプログラムの実行優先度を表す実行優先度情報が含まれ、
前記情報生成手段は、
前記各制御ユニット上に配置される各アプリケーションモジュールの実行優先度情報を、前記記憶手段に格納された、当該アプリケーションモジュールの実行優先度情報に基づき生成することを特徴とする情報処理装置を提供する。
【００１４】
本情報処理装置によれば、アプリケーションを構成する全アプリケーションモジュールの起動順番が定められたシステム構成情報等の入力情報を入力受付手段に入力するだけで、上記分散制御システムの各制御ユニットの制御構造が定義された情報、すなわち、モジュール構成情報およびメッセージオブジェクトのうちの少なくとも何れか一方が入力情報に基づき自動生成される。したがって、上記分散制御システムのｅｎｄ−ｔｏ−ｅｎｄのリアルタイム性の保証の容易化に役立つ。
【００１５】
【発明の実施の形態】
以下、添付の図面を参照しながら、本発明に係る実施の一形態について説明する。
【００１６】
まず、図１により、本実施の形態に係る分散制御システムの基本構成について説明する。
【００１７】
本分散制御システムは、ＣＰＵ及びメモリ等を備えた複数の制御ユニット１ａ,...,１ｎをネットワーク接続することによって構成されている。そして、各制御ユニットのメモリには、それぞれ、相互のメッセージ通信によって協調動作するアプリケーションプログラムモジュールＭ1,Ｍ2,...,Ｍn(以下、ＡＰモジュールと呼ぶ)、ＡＰモジュール間の通信サービス等を提供する分散制御処理ミドルウェア５、タスク制御等を行うリアルタイムオペレーティングシステム(以下、ＲＴＯＳと呼ぶ)３、ネットワーク上へのデータ転送等を制御するネットワーク通信処理ドライバ４が格納されている。ここで、各制御ユニットの分散制御処理ミドルウェア５がＡＰモジュールに対して提供するサービスには、(１)ＡＰモジュールとの間でメッセージオブジェクトＭｓｇ1,Ｍｓｇ2,...,Ｍｓｇnの送受信を行うＲＴ通信サービス、(２)ＡＰ構成情報７によって割り当てられたＡＰモジュールを起動する複数のタスクＴ1,Ｔ2,...,Ｔn、がある。これらのサービスによって、各制御ユニットに分散されたＡＰモジュールが相互のメッセージ通信により協調動作を行うことができるが、これについては後述する。
【００１８】
さて、各制御ユニット１ａ,...,１ｎ上のＡＰ構成情報７及びメッセージオブジェクトは、いずれも、記憶媒体等を利用して、情報処理装置２の出力情報をオフライン転送したものである。情報処理装置２は、外部記憶装置に格納されたプログラム、すなわち情報解析ツール８をロード及び実行することによって、それらのＡＰ構成情報７及びメッセージオブジェクトを、ユーザからの入力情報であるユーザ定義情報に基づき自動生成する。この情報解析ツール８による情報自動生成処理の詳細な説明に先立ち、その処理に関連する情報((１)ユーザ定義情報、(２)ＡＰ構成情報、(３)メッセージオブジェクト)について説明しておく。
【００１９】
(１)ユーザ定義情報
ユーザ定義情報には、３種類の情報、すなわち、システム構成情報２０、ユニット構成情報２１、システム入出力情報２５が含まれている。
【００２０】
ユニット構成情報２１には、図２(ｂ)に示すように、ＡＰモジュール配置情報テーブル２３が含まれている。このＡＰモジュール配置情報テーブル２３には、各制御ユニットごとに、それぞれ、その制御ユニットのＡＰモジュール配置情報が登録されている。そして、各制御ユニットのＡＰモジュール配置情報には、それぞれ、その制御ユニットに配されるＡＰモジュール名２３ａが含まれている。なお、ここで一例として挙げた、制御ユニットＵ1のＡＰモジュール配置情報には、制御ユニットＵ1に配される２つのＡＰモジュール名「Ｍ1」,「Ｍ2」が含まれている。
【００２１】
また、システム入出力情報２５には、図２(ｃ)に示すように、システム入出力情報テーブル２６が含まれている。このシステム入出力情報テーブル２６には、システムの入力データ名及び出力データ名が登録されている。なお、ここで一例として挙げたシステム入出力情報テーブル２６には、入力データ名として「Ｄ11」「Ｄ21」「Ｄ31」が登録され、出力データ名として「Ｄ14」「Ｄ24」「Ｄ34」が登録されている。
【００２２】
また、システム構成情報２０には、図２(ａ)に示すように、２種類の情報テーブル、すなわち、ＡＰモジュール起動情報テーブル２２及びＡＰモジュール入出力情報テーブル２４が含まれている。
【００２３】
一方のＡＰモジュール起動情報テーブル２２には、タスクごとに、それぞれ、そのタスクのＡＰモジュール起動情報が登録されている。そして、各タスクのＡＰモジュール起動情報には、それぞれ、そのタスクによるＡＰモジュールの起動順番情報２２ａ、そのタスクの優先度情報２２ｂ、そのタスクの起動条件２２情報ｃ、そのタスクのウエイト状態を解除させるタイミング等が設定されたイベントセット条件情報２２ｄが含まれている。
【００２４】
他方のＡＰモジュール入出力情報テーブル２４には、各ＡＰモジュールごとに、それぞれ、そのＡＰモジュールのＡＰモジュール入出力情報が登録されている。そして、各ＡＰモジュールのＡＰモジュール入出力情報には、それぞれ、そのＡＰモジュールの入力データ名２４ａ及び出力データ名２４ｂが含まれている。
【００２５】
なお、ここで一例として挙げたＡＰモジュールＭ1のＡＰモジュール入出力情報には、ＡＰモジュールＭ1の入力データ名「Ｄ1」及び出力データ名「Ｄ2」が含まれている。また、タスク１のＡＰモジュール起動情報には、優先度情報「１」の他、「タスク１は、１０ｍｓ周期で実行状態に移行するが、実行状態においては、ＡＰモジュールＭ1を起動し、１０ｍｓのウェイトを経て、２つのＡＰモジュールＭ2,Ｍ3を順番に起動する」ことを表す情報が含まれている。
【００２６】
(２)ＡＰ構成情報
ＡＰ構成情報７には、ＡＰモジュール／メッセージオブジェクト起動情報テーブルが含まれている。このＡＰモジュール／メッセージオブジェクト起動情報テーブルには、図３(ａ)に示すように、タスクごとに、それぞれ、タスクのＡＰモジュール／メッセージオブジェクト起動情報が登録されている。各タスクのＡＰモジュール／メッセージオブジェクト起動情報には、それぞれ、そのタスクによるＡＰモジュール及びメッセージオブジェクトの起動順番情報３０ａ、そのタスクの優先度情報３０ｂ、そのタスクの起動条件情報３０ｃ、そのタスクのウエイト状態を解除するイベント等が設定されたイベントセット条件情報３０ｄが含まれている。
【００２７】
なお、ここで一例として挙げた、タスク１のＡＰモジュール／メッセージオブジェクト起動情報には、優先度情報「１」のほか、「タスク１は、実行可能状態から実行状態に１０ｍｓ周期で移行するが、実行状態においては、まず、ＡＰモジュールＭ1を起動し、１０ｍｓのウェイトを経て、２つのＡＰモジュールＭ2,Ｍ3を順番に起動した後、メッセージオブジェクトＭｓｇ11を起動する」ことを表す情報が含まれている。
【００２８】
(３)メッセージオブジェクト
メッセージオブジェクト情報テーブルには、図３(ｂ)に示すように、１以上のメッセージオブジェクトＭiが登録されている。各メッセージオブジェクトＭiには、それぞれ、そのメッセージオブジェクトのメッセージデータ３１ａ、メッセージオブジェクト名３１ｂ、そのメッセージオブジェクトのメッセージデータに対するＡＰモジュールのアクセス権が設定された読出し／書込み情報３１ｃ、そのメッセージオブジェクトが送信オブジェクトであるか受信オブジェクトであるかを表す送信／受信情報３１ｄ、そのメッセージオブジェクトのメッセージデータ更新時のアクション情報３１ｅ、そのメッセージオブジェクトの優先度情報３１ｆ、そのメッセージオブジェクトの更新条件情報３１ｇ等が含まれている。
【００２９】
なお、ここで一例として挙げたメッセージオブジェクト「Ｍｓｇ12-13」の各データ設定領域３１ａ,３１ｂ,３１ｃ,３１ｄ,３１ｅ,３１ｆ,３１ｇには、それぞれ、２つのメッセージデータ「Ｄ12」「Ｄ13」、メッセージオブジェクト名「Ｍｓｇ12-13」、メッセージデータに対するＡＰモジュールの読出し／書込み情報「読書き」、送信／受信情報「制御ユニット外との送受信なし」、メッセージデータ更新後のアクション情報「アクションを起こさない」、優先度情報「２」、メッセージデータ更新条件情報「ＡＰモジュールＭ1起動後」が設定されている。
【００３０】
つぎに、情報解析ツール８による情報自動生成処理について説明する。但し、ユーザ定義情報は、予めデータベースに格納されていることとする。そして、そのユーザ定義情報には、前述の３種類の情報として、(１)３個の制御ユニットＵ1,Ｕ2,Ｕ3が登録されたＡＰモジュール配置情報テーブル２３(図４参照)を含むユニット構成情報、(２)入力データＤ11,Ｄ21,Ｄ31及び出力データＤ14,Ｄ24,Ｄ34が登録されたシステム入出力情報テーブルを含むシステム入出力情報(図３３参照)、(３)３個のタスクＴ1,Ｔ2,Ｔ3が登録されたＡＰモジュール起動情報テーブル２２(図５参照)及び９個のＡＰモジュールＭ11,Ｍ12,Ｍ13,Ｍ21,Ｍ22,Ｍ23,Ｍ31,Ｍ32,Ｍ33が登録されたＡＰモジュール入出力情報テーブル２３(図６参照)を含むシステム情報が格納されていることとする。
【００３１】
図７に示すように、情報解析ツール８は、データベースからユーザ定義情報を取り出して、メッセージオブジェクト情報テーブル生成処理Ｓ７０〜Ｓ７４を実行し、ユーザ定義情報に基づきメッセージオブジェクト情報テーブルを生成した後、さらに、ＡＰモジュール／メッセージオブジェクト情報テーブル生成処理Ｓ７５〜Ｓ７９を実行し、ユーザ定義情報に基づきＡＰモジュール／メッセージオブジェクト起動情報テーブルを生成する。
【００３２】
具体的には、情報解析ツール８は、まず、メッセージオブジェクト情報テーブル生成処理Ｓ７０〜Ｓ７４において、以下に示す一連の処理を実行して、ＡＰモジュール配置情報テーブル２３に登録されている各制御ユニットＵ1,Ｕ2,Ｕ3のメッセージオブジェクト情報テーブルを作成する。
【００３３】
Ｓ７０において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２３に登録されている制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象ユニットとして、それぞれについて、図８に示したユニット間通信データ抽出処理Ｓ８１〜Ｓ８３を実行する。ただし、Ｓ８３だけは、全制御ユニットＵ1,Ｕ2,Ｕ3についてのＳ８１〜Ｓ８２の実行が終了してから実行する。
【００３４】
処理対象ユニット上に配置される全ＡＰモジュールの入出力データをＡＰモジュール入出力情報テーブル２４から取り出し、そのなかから、入力データ及び出力データの双方として用いられているデータを削除する(Ｓ８１)。そして、最終的に残った入力データを、その制御ユニットのユニット間通信情報の入力データとして保存する(Ｓ８２)。以上の処理を全ての制御ユニットについて実行したら、さらに、各制御ユニットについて、ぞれぞれ、Ｓ８３を実行する。すなわち、他の制御ユニットのユニット間通信情報の入力データとして保存されているデータと、システム入出情報の出力データとのなかから、処理対象ユニット上のＡＰモジュールの出力データと共通するものを抽出し、そのデータをユニット間通信情報の出力データとして保存する(Ｓ８３)。
【００３５】
例えば、処理対象ユニットが制御ユニットＵ1である場合のユニット間通信データ抽出処理では、図９に示すように、制御ユニットＵ1の入出力データ、他の制御ユニットの入力データ、システムの入出力データのうち、入力データＤ11,Ｄ21及び出力データＤ14,Ｄ32,Ｄ22,Ｄ12,Ｄ13が、制御ユニットＵ1のユニット間通信情報の入力データ及び出力データとして保存される。
【００３６】
つぎに、Ｓ７１において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２３に登録されている制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象ユニットとして、それぞれについて、図１０に示したタスク間通信データ抽出処理Ｓ９０〜Ｓ９３を実行する。
【００３７】
ＡＰモジュール起動情報テーブル２２に登録されている各タスクごとに、それぞれ、そのタスクで起動されるＡＰモジュールのうち、処理対象ユニットに配されるものの入力データ及び出力データをＡＰモジュール入出力情報テーブル２４から取り出し、それらの入出力データによってタスク入出力情報テーブルを作成する(Ｓ９０)。そして、各タスク入出力情報テーブルに登録されている入力データ及び出力データから、それぞれ、処理対象ユニットのユニット間通信情報の入力データ及び出力データを削除する(Ｓ９１)。さらに、各タスク入出力情報テーブルから、それぞれ、入力データ及び出力データの双方として登録されていたデータを削除し(Ｓ９２)、最終的に残ったデータ群を、タスク間通信情報として保存しておく(Ｓ９３)。
【００３８】
例えば、処理対象ユニットが制御ユニットＵ1である場合のタスク間通信データ抽出処理Ｓ９０〜Ｓ９３では、図１１に示すように、ＡＰモジュール起動情報テーブル２２に登録されている各タスクＴ1,Ｔ2,Ｔ3ごとに、それぞれ、そのタスクで起動されるＡＰモジュールのうち、処理対象ユニットＵ1に配されるモジュールＭ11,Ｍ12,Ｍ13,Ｍ21,Ｍ31の入力データ及び出力データがＡＰモジュール入出力情報テーブル２４から取り出され、それらの入出力データによってタスク入出力情報テーブル１１０ａ,１１０ｂ,１１０ｃが作成される。そして、各タスク入出力情報テーブル１１０ａ,１１０ｂ,１１０ｃの入力データ及び出力データから、それぞれ、処理対象ユニットＵ1のユニット間通信情報(図９参照)の入力データＤ11,Ｄ21及び出力データＤ14,Ｄ32,Ｄ22,Ｄ12,Ｄ13が削除され、さらに、入力データ及び出力データの双方として登録されていたデータ(タスク入出力情報テーブル１１０ａにおいてＤ12,Ｄ13)が削除される。そして、最終的に残ったデータＤ22が、タスク間通信情報１２１として保存される。
【００３９】
つぎに、Ｓ７２において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２３に登録されている制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象ユニットとして、それぞれについて、図１２に示したパックデータ抽出処理Ｓ１２０〜Ｓ１２１を実行する。
【００４０】
処理対象ユニットのタスク間通信情報及びユニット間通信情報から、それぞれ、全ての保存データを取り出す。そして、処理対象ユニット上に配されるＡＰモジュールのなかで、各保存データを出力するものをＡＰモジュール入出力情報テーブル２４で検索し、その結果得られたＡＰモジュールを実行するタスクを、ＡＰモジュール起動情報テーブル２２でそれぞれ検索する(Ｓ１２０)。さらに、処理対象ユニットに配されるＡＰモジュールのなかで、各保存データを読み出すものをＡＰモジュール入出力情報テーブル２４で検索する(Ｓ１２１)。このとき、いずれかの保存データを読み出すＡＰモジュールが複数検索された場合には、それらのうちから、その保存データを出力するＡＰモジュールと同一タスクで起動されるほうのＡＰモジュールを、その保存データの読出ＡＰモジュールとして選択する。そして、各保存データと以上の検索結果(読出ＡＰモジュール、出力タスク)とを対応付けて、パック抽出テーブルとして保存しておく(Ｓ１２２)。
【００４１】
例えば、処理対象ユニットが制御ユニットＵ1である場合のパックデータ抽出処理Ｓ１２０〜Ｓ１２１では、制御ユニットＵ1のタスク間通信情報(図１１参照)及びユニット間通信情報(図９参照)から保存データＤ11,Ｄ21,Ｄ22,Ｄ12,Ｄ14,Ｄ13,Ｄ32が取り出され、それら各データＤ11,Ｄ21,Ｄ22,Ｄ12,Ｄ14,Ｄ13,Ｄ32を出力するＡＰモジュールの起動タスク、及び、それら各データＤ11,Ｄ21,Ｄ22,Ｄ12,Ｄ14,Ｄ13,Ｄ32を読み出すＡＰモジュールが検索され、その検索結果に基づいて、図１３に示したパック抽出テーブル１３０が作成される。
【００４２】
つぎに、Ｓ７３において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２３に登録されている制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象ユニットとして、それぞれについて、図１４に示したメッセージオブジェクト生成処理Ｓ１４０〜Ｓ１４１を実行する。
【００４３】
処理対象ユニットのパック抽出テーブルに登録されているデータのうち、互いに同じＡＰモジュールに読みだされ、かつ、互いに同じタスクで起動されるＡＰモジュールから出力される２つ以上のデータがある場合には、図３(ｂ)に示したメッセージオブジェクトと同様なデータ構造を有する名前付きのメッセージオブジェクトを生成し、このメッセージオブジェクトに、それら２つ以上のデータを１つのパックデータとして割り当てる(Ｓ１４０)。このように、送信元タスク及び送信先モジュールの双方が共通するデータ群を１つのパックデータとして１つのメッセージオブジェクトに割り当てることによって、アプリケーション実行中における通信量の削減を図ることができる。
【００４４】
そして、それ以外のデータについては、それぞれに名前付きのメッセージオブジェクトを生成し、メッセージオブジェクトにデータを１対１に割り当てる(Ｓ１４１)。
【００４５】
例えば、処理対象ユニットが制御ユニットＵ1である場合のパックデータメッセージオブジェクト生成処理では、制御ユニットＵ1のパック抽出テーブルに登録されているデータＤ11,Ｄ21,Ｄ22,Ｄ12,Ｄ14,Ｄ13,Ｄ32のうち、２つのデータＤ12,Ｄ13がパックとされ、そのパックデータに１つのメッセージオブジェクトＭｓｇ12-13が割り当てられる(Ｓ１４０)。また、それ以外の各データＤ11,Ｄ21,Ｄ22,Ｄ14,Ｄ32が、互いに異なるメッセージオブジェクトＭｓｇ11,Ｍｓｇ21,Ｍｓｇ22,Ｍｓｇ14,Ｍｓｇ32に割り当てられる(Ｓ１４１)。
【００４６】
つぎに、Ｓ７４において、情報解析ツール５２は、ＡＰモジュール配置情報テーブル２３に登録されている制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象ユニットとして、それぞれについて、図１６、図１７及び図１８に示したメッセージオブジェクト項目設定処理を実行する。すなわち、各制御ユニットＵ1,Ｕ2,Ｕ3ごとに、それぞれ、以下に示す処理(１)(２)(３)(４)(５)(６)を行い、その制御ユニットのパック抽出テーブルの登録データに割り当てられたメッセージオブジェクトの各データ設定領域へのデータ設定処理を行う。
【００４７】
(１)書込み／読出し設定処理Ｓ１５０〜Ｓ１５４
処理対象ユニットのパック抽出テーブルに登録された各データに読出ＡＰモジュールがあるか否かを、ユニット間通信情報の入力データの内容及びタスク間通信情報の内容によって判定する(Ｓ１５０)。
【００４８】
ここで、ユニット間通信情報の入力データ及びタスク間通信情報の何れにもそのデータが設定されていれば、そのデータには読出ＡＰモジュールがないと判定し、そのデータに割り当てられたメッセージオブジェクトの読出し／書込み情報設定領域に「書込み」を設定する(Ｓ１５１)。
【００４９】
それ以外の場合には、データに読出ＡＰモジュールがあると判定し、今度は、そのデータに書込ＡＰモジュールがあるか否かを、ユニット間通信情報の出力データの内容及びタスク間通信情報の内容によって判定する(Ｓ１５２)。
【００５０】
ここで、ユニット間通信情報の出力データ及びタスク間通信情報のいずれにもそのデータが設定されていなければ、そのデータには書込ＡＰモジュールがないと判定し、そのデータに割り当てられたメッセージオブジェクトの読出し／書込み情報設定領域に「読出し」を設定する(Ｓ１５３)。
【００５１】
一方、タスク間通信情報にのみそのデータが設定されていれば、そのデータに割り当てられたメッセージオブジェクトの読出し／書込み情報設定領域に「読書き」を設定する(Ｓ１５４)。
【００５２】
これにより、処理対象ユニットのパック抽出テーブルに登録された各データに割り当てられたメッセージオブジェクトの読出し／書込み情報設定領域へのデータ設定が終了する。
【００５３】
例えば、処理対象ユニットが制御ユニットＵ1である場合の書込み／読出し設定処理Ｓ１５０〜Ｓ１５４では、制御ユニットＵ1のパック抽出テーブル(図１３参照)に登録された各データＤ22,Ｄ11,Ｄ21,Ｄ14,Ｄ32のうち、ユニット間通信情報の入力データ及びタスク間通信情報のいずれにも設定されていないデータＤ14,Ｄ32に割り当てられたメッセージオブジェクトＭｓｇ14,Ｍｓｇ32の読出し／書込み情報設定領域には「書込み」が設定され(Ｓ１５１)、ユニット間通信情報の出力データ及びタスク間通信情報のいずれにも設定されていないデータＤ11,Ｄ21に割り当てられたメッセージオブジェクトＭｓｇ11,Ｍｓｇ21の読出し／書込み設定領域には「読出し」が設定される(Ｓ１５３)。また、タスク間通信情報にのみ設定されているデータＤ22に割り当てられたメッセージオブジェクトＭｓｇ22の読出し／書込み設定領域には「読書き」が設定される(Ｓ１５４)。
【００５４】
(２)送信／受信設定処理Ｓ１５５〜Ｓ１５９
処理対象ユニットのパック抽出テーブルの登録データに割り当てられたメッセージオブジェクトが、処理対象ユニットから他の制御ユニットに送信されるか否かを判定する(Ｓ１５５)。そのメッセージオブジェクトのデータがユニット間通信情報の出力データに設定されている場合には、処理対象ユニットから他の制御ユニットにメッセージオブジェクトが送信されると判定し、そのメッセージオブジェクトの送信／受信情報設定領域に「送信」を設定する(Ｓ１５６)。それ以外の場合には、処理対象ユニットから他の制御ユニットにメッセージオブジェクトが送信されないと判定し、今度は、そのメッセージオブジェクトを処理対象ユニットが受信するか否かを判定する(Ｓ１５７)。そのメッセージオブジェクトのデータがユニット間通信情報の入力データに設定されている場合には、そのメッセージオブジェクトを処理対象ユニットが受信すると判定し、そのメッセージオブジェクトの送信／受信情報設定領域に「受信」を設定し(Ｓ１５８)、それ以外の場合には、処理対象ユニットではそのメッセージオブジェクトの送受信を行わないと判定し、そのメッセージオブジェクトの送信／受信情報設定領域に「なし」を設定する(Ｓ１５９)。
【００５５】
これにより、処理対象ユニットのパック抽出テーブルに登録された各データに割り当てられたメッセージオブジェクトの送信／受信情報設定領域へのデータ設定が終了する。
【００５６】
例えば、処理対象ユニットが制御ユニットＵ1である場合の送信／受信設定処理Ｓ１５０〜Ｓ１５４では、各データＤ22,Ｄ11,Ｄ21,Ｄ14,Ｄ32のうち、ユニット間通信情報の出力データに該当するデータＤ14,Ｄ32のメッセージオブジェクトＭｓｇ14,Ｍｓｇ32は、送信オブジェクトと判定され、その送信／受信情報設定領域には「送信」が設定される(Ｓ１５６)。また、ユニット間通信情報の入力データに該当するデータのＤ11,Ｄ21のメッセージオブジェクトＭｓｇ11,Ｍｓｇ21は、受信オブジェクトと判定され、その送信／受信情報設定領域には「受信」が設定される(Ｓ１５８)。そして、ユニット間通信情報の入出力データの何れにも該当しないデータＤ22のメッセージオブジェクトＭｓｇ22は、送信オブジェクト及び受信オブジェクトの何れでもないと判定され、その送信／受信情報設定領域には「なし」が設定される(Ｓ１５９)。
【００５７】
(３)更新後アクション設定処理Ｓ１６０〜Ｓ１６６
処理対象ユニットの各メッセージオブジェクトの読出し／書込み情報の設定内容によって、そのメッセージデータが読出し可能か否かを順次判定する。
【００５８】
メッセージオブジェクトの読出し／書込み情報として「書込み」が設定されている場合には、メッセージオブジェクトのメッセージデータを読出し不可能と判定し、そのメッセージオブジェクトのアクション情報設定領域に「アクションなし」を設定し、その後の処理を行わずに、次述の(４)優先度設定処理に移行する。
【００５９】
一方、メッセージオブジェクトの読出し／書込み情報として「読出し」が設定されている場合には、メッセージオブジェクトのメッセージデータを読出し可能と判定し、このメッセージデータを入力データとするＡＰモジュールをＡＰモジュール入出力情報テーブル２４で検索する(Ｓ１６０)。このとき見つけたＡＰモジュールを起動するタスクをＡＰモジュール起動情報テーブル２２で検索し(Ｓ１６１)、そのタスクのＡＰモジュール起動情報をＡＰモジュール起動情報テーブル２２から取り出して、このＡＰモジュール起動情報に基づき以下の処理を進める。
【００６０】
まず、ＡＰモジュール起動情報に含まれている起動条件情報の設定内容が「メッセージオブジェクトのメッセージデータの更新後」であるか否かを判定し(Ｓ１６２)、「メッセージオブジェクトのメッセージデータ更新後」が設定されていた場合にだけ、メッセージオブジェクトのアクション情報設定領域に「Ｓ１６１で見つかったタスクの起動」を設定する(Ｓ１６３)。さらに、ＡＰモジュール起動情報に含まれている起動順番において、Ｓ１６０で見つかったＡＰモジュールの起動直前にウエイトの設定があるか否かを判定し(Ｓ１６４)、ウエイトの設定があった場合にだけ、メッセージオブジェクトのアクション情報設定領域にイベントセットを設定する(Ｓ１６５)。
【００６１】
そして、Ｓ１６０で見つけたＡＰモジュールを起動する他のタスクをＡＰモジュール起動情報テーブル２２で検索し、それが見つからなくなるまで、Ｓ１６１以降の処理を繰り返し実行する(Ｓ１６６)。
【００６２】
これにより、処理対象ユニットの各メッセージオブジェクトのイベントセット条件情報設定領域へのデータ設定が終了する。
【００６３】
例えば、処理対象ユニットが制御ユニットＵ1である場合の更新後アクション設定処理Ｓ１６０〜Ｓ１６６では、読出し／書込み情報として「書込み」が設定されているメッセージオブジェクトＭｓｇ14,Ｍｓｇ32は、メッセージデータ読出し不可能と判定され、そのアクション情報設定領域に「アクションなし」と設定される(Ｓ１６０)。一方、読出し／書込み情報として「読出し」または「読書き」が設定されているメッセージオブジェクトＭｓｇ11,Ｍｓｇ21,Ｍｓｇ22は、いずれも、メッセージデータ読出し可能と判定されるが、そのメッセージデータを入力とするＡＰモジュールの起動タスクのＡＰモジュール起動情報に含まれている起動条件情報に「メッセージオブジェクトのメッセージデータの更新後」と設定されていたメッセージオブジェクトＭｓｇ21のアクション情報設定領域にだけ「タスクＴ2起動」が設定される(Ｓ１６３)。
【００６４】
(４)優先度設定処理Ｓ１６７〜Ｓ１７１
処理対象ユニットの各メッセージオブジェクトの読出し／書込み情報の設定内容によって、そのメッセージデータを書き込む書込ＡＰモジュールがあるか否かを順次判定する(Ｓ１６７)。
【００６５】
メッセージオブジェクトの読出し／書込み情報として「読出し」が設定されている場合には、そのメッセージオブジェクトには書込ＡＰモジュールがないと判定し、そのメッセージオブジェクトの優先度情報設定領域に「優先度なし」と設定する(Ｓ１６８)。
【００６６】
一方、メッセージオブジェクトの読出し／書込み情報として「書込み」または「読書き」で設定されている場合には、そのメッセージオブジェクトには書込ＡＰモジュールがあると判定し、さらに、そのメッセージオブジェクトの読出し／書込み情報の設定内容によって、そのメッセージオブジェクトのメッセージデータを読みだす読出ＡＰモジュールがあるか否かを判定する(Ｓ１６９)。
【００６７】
メッセージオブジェクトの読出し／書込み情報が「書込み」であった場合には、そのメッセージオブジェクトには読出モジュールがないと判定し、そのメッセージオブジェクトのメッセージデータを出力データとする書込ＡＰモジュールをＡＰモジュール入出力情報テーブル２６で検索する。このとき見つかった書込ＡＰモジュールの起動タスクのＡＰモジュール起動情報をＡＰモジュール起動情報テーブル２２から取り出して、そのＡＰモジュール起動情報に含まれている優先度情報を、そのメッセージオブジェクトの優先度情報設定領域に設定する(Ｓ１７１)。
【００６８】
一方、メッセージオブジェクトの読出し／書込み情報として「読み書き」が設定されている場合には、そのメッセージオブジェクトには書込モジュールの他に読出モジュールもあると判定し、そのメッセージオブジェクトのメッセージデータを入力データとする読出ＡＰモジュールのうち、そのメッセージオブジェクトのメッセージデータを出力データとする書込ＡＰモジュールとは別のタスクで起動される読出ＡＰモジュールをＡＰモジュール入出力情報テーブル２６で検索する。この検索により見つかった読出ＡＰモジュールを起動するタスクのＡＰモジュール起動情報をＡＰモジュール起動情報テーブル２２から取り出し、そのＡＰモジュール起動情報に含まれている優先度情報(検索により複数の読出ＡＰモジュールが見つかった場合であれば、各読出ＡＰモジュールの起動タスクのＡＰモジュール起動情報に含まれている優先度情報の設定値のうちの最高値)を、メッセージオブジェクトの優先度情報設定領域に設定する。このように、メッセージオブジェクトの優先度に送信先の優先度を設定することによって、優先度制御が保証される。
【００６９】
これにより、処理対象ユニットの各メッセージオブジェクトの優先度情報設定領域へのデータ設定が終了する。
【００７０】
例えば、処理対象ユニットが制御ユニットＵ1である場合の優先度設定処理Ｓ１６７〜Ｓ１７１では、読出し／書込み情報として「読出し」が設定されているメッセージオブジェクトＭｓｇ11,Ｍｓｇ21は、書込ＡＰモジュールなしと判定され(Ｓ１６７)、その優先度情報設定領域には「優先度なし」と設定される(Ｓ１６８)。それ以外のメッセージモジュールＭｓｇ14,Ｍｓｇ32,Ｍｓｇ22のうち、読出し／書込み情報として「読書き」が設定されているメッセージオブジェクトＭｓｇ22は、読出ＡＰモジュールありと判定されて(Ｓ１６９)、その優先度情報設定領域には、書込ＡＰモジュールＭ21とは別タスクで起動される読出ＡＰモジュールＭ31の起動タスクＴ3の優先度「３」が設定され(Ｓ１７０)、その他のメッセージオブジェクトＭｓｇ14,Ｍｓｇ32は、読出ＡＰモジュールなしと判定されて(Ｓ１６９)、その優先度情報設定領域には、書込ＡＰモジュールＭ13,Ｍ31の起動タスクＴ1,Ｔ1の優先度「１」「３」が設定される(Ｓ１７１)。
【００７１】
(５)更新条件設定処理Ｓ１７２〜Ｓ１７５
処理対象ユニットの各メッセージオブジェクトの送信／受信情報の設定内容によって、そのメッセージオブジェクトが受信オブジェクトであるか否かを順次判定する(Ｓ１７２)。
【００７２】
ここで、メッセージオブジェクトの送信／受信情報として「受信」が設定されている場合には、そのメッセージオブジェクトを受信オブジェクトであると判定し、そのメッセージオブジェクトの更新条件情報設定領域に「メッセージ到着時」と設定する(Ｓ１７６)。
【００７３】
それ以外の場合には、メッセージオブジェクトのメッセージデータがパックデータであるか否かを判定して(Ｓ１７４)、パックデータでなければ、メッセージオブジェクトの更新条件情報設定領域に「メッセージオブジェクトのメッセージデータを出力するＡＰモジュール終了後」と設定し(Ｓ１７６)、パックデータであれば、そのパックデータに含まれているデータを出力するＡＰモジュールうちで一番最後にデータを出力するＡＰモジュールを、ＡＰモジュール起動情報の起動条件情報およびＡＰモジュール入出力情報で検索し、メッセージオブジェクトの更新条件情報設定領域に「最後のデータを出力するＡＰモジュール終了後」と設定する(Ｓ１７５)。
【００７４】
これにより、処理対象ユニットの各メッセージオブジェクトの更新条件情報設定領域へのデータ設定が終了する。
【００７５】
以上の処理Ｓ７０〜Ｓ７４によって、ＡＰモジュール配置情報テーブルに登録されている全ての制御ユニットＵ1,Ｕ2,Ｕ3のメッセージオブジェクトの生成およびそのデータ設定領域へのデータ設定が終了すると、情報解析ツール８は、それらを、図１８に示すように、各制御ユニットごとに準備したメッセージオブジェクト情報テーブルにそれぞれ登録する。その後、前述したように、情報解析ツール８は、ＡＰモジュール／メッセージオブジェクト起動情報テーブル生成処理Ｓ７５〜Ｓ７９を実行する。具体的には、情報解析ツール８は、以下に示す一連の処理を実行し、ＡＰモジュール配置情報テーブル２３に登録されている全ての制御ユニットＵ1,Ｕ2,Ｕ3のＡＰモジュール／メッセージオブジェクト起動情報テーブルを作成する。
【００７６】
まず、Ｓ７５において、情報解析ツール８は、ＡＰモジュール起動情報２２に登録された各タスクＴ1,Ｔ2,Ｔ3について、それぞれ、そのタスクのＡＰモジュール起動情報をＡＰモジュール起動情報テーブルから取り出し、図１９に示したメッセージオブジェクト送受信設定処理Ｓ２００〜Ｓ２０５を実行する。
【００７７】
各処理対象タスクのＡＰモジュール起動情報に含まれている起動順番情報に起動順に登録されているＡＰモジュールについて、順次、その入力データがいずれかのメッセージオブジェクトのメッセージデータに該当するか否かを、ＡＰモジュール入出力情報テーブル２４の登録内容および各メッセージオブジェクトの設定内容により判定する(Ｓ２００)。そして、メッセージオブジェクトのメッセージデータを入力データとするＡＰモジュールが見つかった場合には、起動順番情報におけるそのＡＰモジュールの直前に「そのメッセージオブジェクト(メッセージオブジェクト名を特定)の受信」の設定を挿入する(Ｓ２０１)。
【００７８】
さらに、起動順番情報に登録されている各ＡＰモジュールについて、順次、その出力データがいずれかのメッセージオブジェクトのメッセージデータに該当するか否かを、ＡＰモジュール入出力情報テーブル２４の登録内容および各メッセージオブジェクトの設定内容に基づき判定し(Ｓ２０２)、メッセージオブジェクトのメッセージデータを出力データとしていないＡＰモジュールについては、メッセージオブジェクト送受信設定処理における以降の処理Ｓ２０３〜Ｓ２０５を行わずに、次述のＡＰモジュール削除処理に移行する。
【００７９】
一方、メッセージオブジェクトのメッセージデータを出力データとするＡＰモジュールについては、さらに、そのメッセージデータがパックデータであるか否かの判定を行い(Ｓ２０３)、パックデータでなければ、起動順番情報におけるそのＡＰモジュールの直後に「そのメッセーオブジェクト(メッセージオブジェクト名を特定)の送信」の設定を挿入するが(Ｓ２０４)、パックデータであれば、そのパックデータに含まれている各データを出力するＡＰモジュールのうちで、一番最後にデータを出力するＡＰモジュールを、ＡＰモジュール起動情報テーブル２２およびＡＰモジュール入出力情報テーブル２４で検索し、起動順番情報におけるそのＡＰモジュールの直後に「そのメッセーオブジェクト(メッセージオブジェクト名を特定)の送信」の設定を挿入する(Ｓ２０５)。
【００８０】
つぎに、Ｓ７６において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２４に登録された制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象として、それぞれについて、以下のＡＰモジュール削除処理を実行する。メッセージオブジェクト送受信設定処理において処理された各タスクＴ1,Ｔ2,Ｔ3の起動順番情報から、それぞれ、処理対象ユニットのＡＰモジュール配置情報に含まれていないＡＰモジュールを削除し、これらを、処理対象ユニット上の各タスクのＡＰモジュール／メッセージオブジェクト起動情報の起動順番情報とする。このとき全てのＡＰモジュールが削除されたタスクについては、以降の処理においては、そのタスクを処理対象ユニット上のタスクとして取り扱わない。
【００８１】
つぎに、Ｓ７７において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２４に登録された制御ユニットＵ1,Ｕ2,Ｕ3を順次処理対象として、それぞれについて、図２０に示した起動条件設定処理Ｓ２１０〜Ｓ２１４を実行する。
【００８２】
処理対象ユニットの各タスクＴ1,Ｔ2,Ｔ3について、それぞれ、そのタスクのＡＰモジュール起動情報の起動順番情報において一番最初の起動モジュールとして設定されていたＡＰモジュールが、ＡＰモジュール削除処理で削除されたか否かを判定する(Ｓ２１０)。
【００８３】
そして、最初の起動モジュールが削除されなかったタスクについては、メッセージオブジェクト送受信設定処理(Ｓ７５)で取り出したそのタスクのＡＰモジュール起動情報に含まれている起動条件情報を、そのまま、そのタスクのＡＰモジュール／メッセージオブジェクト起動情報の起動条件情報とする(Ｓ２１１)。
【００８４】
一方、最初の起動モジュールが削除されたタスクについては、さらに、そのタスクの起動条件情報にウエイト設定があるか否かを判定する(Ｓ２１２)。このときウエイト設定が見つかれば、メッセージオブジェクト送受信設定処理(Ｓ７５)で取り出したそのタスクのＡＰモジュール起動情報に含まれているイベントセット条件情報を、そのタスクのＡＰモジュール／メッセージオブジェクト起動情報の起動条件情報とするが(Ｓ２１３)、ウエイト設定が見つからなければ、最初の起動ＡＰモジュールの全ての入力データが準備されたタイミングを、そのタスクのＡＰモジュール／メッセージオブジェクト起動情報の起動条件情報として設定する(Ｓ２１４)。
【００８５】
つぎに、Ｓ７８において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２４に登録された制御ユニットを順次処理対象として、それぞれについて、図２１に示したウエイト設定処理Ｓ２２０〜Ｓ２２３を実行する。
【００８６】
処理対象ユニット上の各タスクＴ1,Ｔ2,Ｔ3のＡＰモジュール／メッセージオブジェクト起動情報の起動順番情報に「メッセージ受信」が連続的に設定されていた場合には、その間に「ウエイト」の設定を挿入する(Ｓ２２０)。
【００８７】
そして、処理対象ユニット上の各タスクＴ1,Ｔ2,Ｔ3のＡＰモジュール／メッセージオブジェクト起動情報の起動順番情報に設定されているＡＰモジュールのなかに、ＡＰモジュール削除処理(Ｓ７６)で削除されたＡＰモジュールの後に起動されるＡＰモジュールがあるか否かを判定する(Ｓ２２１)。このとき、該当するＡＰモジュールが見つからかなった起動順番情報については、ウエイト設定処理における以後の処理Ｓ２２２〜Ｓ２２３を行わずに、次述のタスク優先度設定処理に移行する。一方、該当するＡＰモジュールが見つかった起動順番情報については、さらに、そのＡＰモジュールの直前に「メッセージ受信」の設定がされているか否を判定し(Ｓ２２２)、「メッセージ受信」の設定がされていれば、その直前に「ウエイト」の設定を挿入するが(Ｓ２２３)、「メッセージ受信」の設定がされていなければ、次述のタスク優先度設定処理に移行する。
【００８８】
つぎに、Ｓ７９において、情報解析ツール８は、ＡＰモジュール配置情報テーブル２４に登録された制御ユニットを順次処理対象として、それぞれについて、図２２に示したタスク優先度設定処理Ｓ２３０〜Ｓ２３１を実行する。
【００８９】
メッセージオブジェクト送受信設定処理(Ｓ７５)で取り出した各タスクＴ1,Ｔ2,Ｔ3のＡＰモジュール起動情報に含まれている優先度情報を、それぞれ、各タスクのＡＰモジュール／メッセージオブジェクト起動情報の優先度情報とする(Ｓ２３０)。そして、ＡＰモジュール削除処理で全てのＡＰモジュールが削除されたタスクがあった場合には、そのタスクよりも優先度の高い他のタスクの優先度情報を１段階ずつ繰り下げる(Ｓ２３１)。例えば、処理対象ユニット上のタスクＴ2の全ＡＰモジュールがＡＰモジュール削除処理で削除され、タスクＴ2が処理対象ユニット上から削除された場合において、メッセージオブジェクト送受信設定処理(Ｓ７５)で取り出した各タスクＴ1,Ｔ2,Ｔ3のＡＰモジュール起動情報の優先度情報に「１」,「２」,「３」が設定されているときは、処理対象ユニット上の２つのタスクＴ1,Ｔ3のうち、削除タスクＴ2よりも優先度の高いほうのタスクＴ3の優先度情報の設定を「３」から「２」に１段階繰り下げる。
【００９０】
このような設定処理によれば、タスクが複数の制御ユニット上にまたがった場合でも、同一制御ユニット上で相対的にタスク優先度を設定することができるため、優先度制御が保証される。
【００９１】
以上の処理Ｓ７５〜Ｓ７９によって、ＡＰモジュール配置情報テーブルに登録されている全制御ユニットＵ1,Ｕ2,Ｕ3上の各タスクのＡＰモジュール／メッセージオブジェクト起動情報の生成が終了すると、情報解析ツール８は、それらを、図２３、図２４および図２５に示すように、各制御ユニットごとに準備したＡＰモジュール／メッセージオブジェクト起動情報テーブルにそれぞれ登録する。
【００９２】
そして、各制御ユニットのメッセージオブジェクト情報テーブルおよびＡＰモジュール／メッセージオブジェクト起動情報テーブルは、前述したように、それぞれ、各制御ユニット用のＡＰ構成情報およびメッセージオブジェクトとして記憶媒体等に保存され、分散制御システム上の各制御ユニットＵ1,Ｕ2,Ｕ3にオフラインで転送される。
【００９３】
以上のような情報自動生成処理が定義された情報解析ツール８を情報処理装置２にインストールされていれば、ユーザは、この情報解析ツール８を利用して、所望のシステム構成上における後述のＡＰモジュールの協調動作に必要となるＡＰ構成情報およびメッセージオブジェクトを自動生成することができる。したがって、例えば、ＡＰモジュール配置の変更等によりシステム構成が変更されても、ユーザは、ＡＰモジュールの内容を書きかえることなく、ユーザ定義情報の設定内容を修正するだけで足りる。
【００９４】
なお、以上においては、メッセージオブジェクトに含まれているデータの種類が固定され、かつ、その設定が完全に自動化されているが、以下に示すように、必要に応じて、ユーザがメッセージオブジェクトの設定内容を変更できるようにしても構わない。
【００９５】
ユーザは、メッセージオブジェクトの設定内容に変更を加える必要がある場合には、ユーザ定義情報に、図２６に示すような通信情報テーブル１８０およびパック情報テーブル１８１を付加する。
【００９６】
通信情報テーブル１８０には、図２６(ａ)に示すように、設定内容を変更する必要があるメッセージオブジェクトの通信情報がそれぞれ登録される。各通信情報には、メッセージオブジェクトを識別するためのメッセージデータ名１８０ａの他、上述の情報自動生成処理によってメッセージオブジェクトのデータ設定領域に設定済みのデータを変更するための変更情報、例えば、メッセージオブジェクトの優先度情報１８０ｂ、メッセージオブジェクトのメッセージ更新時のアクション情報(例えば、イベントセットやタスク起動の追加および削除)１８０ｄを含ませることができる。その他、メッセージオブジェクトに新たに付加される付加情報、例えば、メッセージオブジェクトのメッセージ通信の種類(ダイレクト通信または指定時間毎の周期的通信)が設定されたダイレクト／周期(時間)設定情報１８０ｃ、タイムアウト値１８０ｅ、メッセージオブジェクトのメッセージ未到着許容回数情報１８０ｆ、タイムアウト等のエラー発生時にメッセージオブジェクトが起動するタスク名１８０ｇ、Ａｃｋ設定情報(有/無)１８０ｈ等を含ませることもできる。
【００９７】
また、パック情報テーブル１８１には、図１８(ｂ)に示すように、メッセージデータ群を新たなパックデータにするためのパック情報が登録される。各パック情報には、パックデータにすべき複数のメッセージデータ名１８１ａの他、上述の通信情報と同様な変更情報および付加情報(優先度１８１ｂ、ダイレクト／周期(時間)設定情報１８１ｃ、受信時のアクション情報１８１ｄ、タイムアウト値１８１ｅ、メッセージ未到着許容回数１８１ｆ、エラー発生時の起動スク名１８１ｇ、Ａｃｋ設定情報１８１ｈ)を含ませることができる。さらに、メッセージオブジェクトのダイレクト送信タイミング情報(特定のメッセージデータ更新後、全メッセージデータ更新後、いずれかのメッセージデータ更新後等)１８１ｉ、メッセージオブジェクトが送受信する特定のメッセージデータ名が指定された単独通信設定情報１８１ｊ等の付加情報も含ませることができる。
【００９８】
そして、ユーザ定義情報に通信情報テーブル１８０が含まれている場合には、情報解析ツール８は、更新条件設定処理後に、通信情報に基づくメッセージオブジェクトの設定内容の修正処理(図２７(ａ)参照)を実行する。具体的には、更新条件設定処理の終了後に、ユーザ定義情報に通信情報テーブル１８０が含まれているか否かを判定し(Ｓ１７８)、通信情報テーブル１８０が含まれていたら、各メッセージオブジェクトの設定内容を、そのメッセージオブジェクトのメッセージデータ名を含んでいる通信情報に基づき変更する(Ｓ１７９)。すなわち、通信情報に含まれている変更情報(優先度１８０ｂ、更新後アクション情報１８０ｄ)を用いて、メッセージオブジェクト中の対応情報の設定内容を変更し、さらに、通信情報に含まれている付加情報(ダイレクト／周期(時間)設定情報１８０ｃ、タイムアウト値１８０ｅ、メッセージ未到着許容回数１８０ｆ、エラー発生時起動タスク１８０ｇ、Ａｃｋ設定情報１８０ｈ)を、機能追加情報としてメッセージオブジェクトに付加する。
【００９９】
また、ユーザ定義情報にパック情報テーブル１８１が含まれている場合には、情報解析ツール８は、メッセージオブジェクト生成処理(Ｓ１４０)中に、パック情報に基づくパック処理(図２７(ｂ)参照)をさらに実行すると共に、更新条件設定処理の終了後に、パック情報に基づくメッセージオブジェクトの設定内容の修正処理を実行する。具体的には、メッセージオブジェクト生成処理(Ｓ１４０)において、ユーザ定義情報にパック情報テーブル１８１が含まれているか否かを判定し(Ｓ１８０)、パック情報テーブル１８１が含まれていたら、パック情報において指定されているメッセージデータ群を１つのパックデータとしてパックし、このパックデータを、１つのメッセージオブジェクトに割り当てる。そして、更新条件設定処理の終了後には、パック情報に基づき生成されたメッセージオブジェクトの設定内容を、そのパック情報に基づき変更する。すなわち、パック情報に含まれている変更情報(優先度１８１ｂ、更新後アクション情報１８１ｄ)を用いて、メッセージオブジェクト中の対応情報の設定内容を変更し、さらに、パック情報に含まれている付加情報(ダイレクト／周期(時間)設定情報１８１ｃ、タイムアウト値１８１ｅ、メッセージ未到着許容回数１８１ｆ、エラー発生時の起動スク名１８１ｇ、Ａｃｋ設定情報１８１ｈ、ダイレクト送信タイミング情報１８１ｉ、単独通信設定情報１８１ｊ)を、機能追加情報としてメッセージオブジェクトに付加する。
【０１００】
このように、ユーザ定義情報に通信情報テーブルおよびパック情報テーブルが含まれていた場合にだけ、情報解析ツール８が、それらのテーブルに登録されている通信情報およびパック情報に基づき、メッセージオブジェクトの設定内容を修正するようにすれば、ユーザは、ユーザ定義情報への通信情報テーブルおよびパック情報テーブルの適宜な付加により、情報処理装置２で自動生成されるＡＰ構成情報およびメッセージオブジェクトの設定内容(例えば、優先度、パックデータの組合せ等)を、対応システムに固有の事情に応じて修正することができる。また、付加機能(ダイレクト通信から周期的通信への変更機能、単独通信機能等)の追加等、より細かな情報設定をすることもできる。
【０１０１】
したがって、例えば、上記情報自動生成処理において生成されるメッセージオブジェクト情報テーブルの登録内容が、システム変更やユニット構成変更の影響によって変更される可能性がある場合でも、一旦作成した通信情報テーブルやパック情報テーブルの登録内容を変更しなければ、そのような可能性をなくすことができる。
【０１０２】
さて、図１８のメッセージオブジェクト情報テーブルおよび図２３〜図２５のＡＰモジュール／メッセージオブジェクト起動情報テーブルが各制御ユニットＵ1,Ｕ2,Ｕ3に転送された分散制御システムにおいては、図２８に示したような各制御ユニットＵ1,Ｕ2,Ｕ3上のＡＰモジュール間の相互のメッセージ通信によってアプリケーションが実行される。
【０１０３】
(１)制御ユニットＵ1上における処理
ＲＴＯＳ３は、タスクＴ1のＡＰモジュール／メッセージオブジェクト起動情報(図２３)の起動条件情報にしたがい、タスクＴ1をｌ０ｍｓ周期で起動する。それにより実行状態に移行したタスクＴ1は、タスクＴ1のＡＰモジュール／メッセージオブジェクト起動情報(図２３(ａ))の起動順番情報にしたがい、ＡＰモジュールＭ13,Ｍ11,Ｍ12およびＲＴ通信処理制御部６を起動する。具体的には、以下の通りである。
【０１０４】
タスクＴ1は、まず、ネットワーク上からの受信メッセージによるオブジェクトＭｓｇ11のメッセージデータ更新のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、オブジェクトＭｓｇ11の更新条件情報(図１８(ａ))に定められたタイミングで、オブジェクトＭｓｇ11のメッセージデータを受信メッセージにより更新する。
【０１０５】
次いで、タスクＴ1は、２つのＡＰモジュールＭ11,Ｍ12を順番に起動してから、さらに、ネットワーク上へのメッセージオブジェクトＭｓｇ12-13の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ12-13の更新条件情報(図１８(ａ))にしたがい、ＡＰモジュールＭ12の終了後にメッセージオブジェクトＭｓｇ12-13のメッセージデータを更新してから、そのメッセージオブジェクトＭｓｇ12-13をネットワーク上へと送信する。
【０１０６】
さらに、ＡＰモジュールＭ13を起動し、最後に、ネットワーク上へのメッセージオブジェクトＭｓｇ14の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ14の更新条件情報(図１８(ａ))にしたがい、ＡＰモジュールＭ13の終了後にメッセージオブジェクトＭｓｇ14のメッセージデータを更新してから、そのメッセージオブジェクトＭｓｇ14をネットワーク上へと送信する。なお、最後の起動処理を終了させたタスクＴ1は終了する。
【０１０７】
また、ネットワーク上からメッセージオブジェクトＭｓｇ22をネットワーク通信処理ドライバ４が受信すると、ＲＴＯＳ３は、ＲＴ通信処理制御部６を起動する。ＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ12の更新後アクション情報(図１８(ａ))にしたがい、ＲＴＯＳ３にタスクＴ2を起動させるべくシステムコールを用いる。それにより実行状態に移行したタスクＴ2は、タスクＴ2のＡＰモジュール／メッセージオブジェクト起動情報(図２３(ｂ))の起動順番情報にしたがい、ＡＰモジュールＭ21およびＲＴ通信処理制御部６を起動する。具体的には、以下の通りである。
【０１０８】
タスクＴ2は、まず、メッセージオブジェクトＭｓｇ12のメッセージデータ更新のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ12の更新条件情報(図１８(ａ))にしたがい、メッセージオブジェクトＭｓｇ12のメッセージデータを受信メッセージによって更新する。
【０１０９】
さらに、タスクＴ2は、ＡＰモジュールＭ21を起動し、最後に、メッセージオブジェクトＭｓｇ22の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ22の更新条件情報および更新後アクション情報(図１８(ａ))にしたがい、ＡＰモジュールＭ21の終了後にメッセージセージオブジェクトＭｓｇ22のメッセージデータを更新し、そのメッセージセージオブジェクトＭｓｇ22をネットワーク上に送信すると共に、ＲＴＯＳ３にタスクＴ3を起動させるべくシステムコールを用いる。なお、最後の起動処理を終了させたタスクＴ2は終了する。
【０１１０】
さて、実行状態に移行したタスクＴ3は、タスクＴ3のＡＰモジュール／メッセージオブジェクト起動情報(図２３(ｂ))の起動順番情報にしたがい、ＡＰモジュールＭ31およびＲＴ通信処理制御部６を起動する。具体的には、以下の通りである。
【０１１１】
タスクＴ3は、まず、メッセージオブジェクトＭｓｇ22のタスク間通信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、タスクＴ2からのメッセージオブジェクトＭｓｇ22を受信する。
【０１１２】
次いで、タスクＴ3は、ＡＰモジュールＭ31を起動し、最後に、メッセージオブジェクトＭｓｇ32の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ32の更新条件情報および更新後アクション情報(図１８(ａ))にしたがい、ＡＰモジュールＭ31の終了後にメッセージセージオブジェクトＭｓｇ32のメッセージデータを更新し、そのメッセージセージオブジェクトＭｓｇ32をネットワーク上に送信すると共に、ＲＴＯＳ３にタスクを終了させるべくシステムコールを用いる。なお、最後の起動処理を終了させたタスクＴ3は終了する。
【０１１３】
(２)制御ユニットＵ2上における処理
ネットワーク上からメッセージオブジェクトＭｓｇ22をネットワーク通信処理ドライバ４が受信すると、ＲＴＯＳ３は、ＲＴ通信処理制御部６を起動する。ＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ22の更新後アクション情報(図１８(ｂ))にしたがい、ＲＴＯＳ３にタスクＴ2を起動させるべくシステムコールを用いる。それにより実行状態に移行したタスクＴ2は、ＡＰモジュール／メッセージオブジェクト起動情報(図２４(ａ))の起動順番情報にしたがい、ＡＰモジュールＭ22,Ｍ23,Ｍ32およびＲＴ通信処理制御部６を起動する。具体的には、以下の通りである。
【０１１４】
タスクＴ2は、まず、メッセージオブジェクトＭｓｇ22のメッセージデータ更新のためにＲＴ通信処理制御部６を起動し、さらに、メッセージオブジェクトＭｓｇ12-13の受信のためにＲＴ通信処理制御部６を起動する。ＲＴ通信処理制御部６は、最初の起動時には、メッセージオブジェクトＭｓｇ22の更新条件情報(図１８(ｂ))にしたがい、メッセージオブジェクトＭｓｇ22のメッセージデータを受信メッセージによって更新し、次の起動時には、メッセージオブジェクトＭｓｇ12-13の更新条件情報(図１８(ｂ))にしたがい、ネットワーク上からのメッセージセージオブジェクトＭｓｇ12-13の到着時にそのメッセージデータでメッセージセージオブジェクトＭｓｇ12-13を更新する。
【０１１５】
次いで、タスクＴ2は、ＡＰモジュールＭ22を起動し、さらに、ウエイト１を実行させるべくシステムコールを用いる。このとき、ＡＰモジュール／メッセージオブジェクト起動情報(図２４(ａ))のイベント情報に設定されているイベント１(ＡＰモジュール終了から１０ｍｓ)を与えるアラームを起動させるべくシステムコールを用いる。
【０１１６】
その後、アラームの起動によってウエイト状態が解除されたタスクＴ2は、ＡＰモジュールＭ23を起動し、最後に、ネットワーク上へのメッセージオブジェクトＭｓｇ24の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ24の更新条件情報(図１８(ｂ))にしたがい、ＡＰモジュールＭ23の終了後にメッセージセージオブジェクトＭｓｇ24のメッセージデータを更新し、そのメッセージセージオブジェクトＭｓｇ24をネットワーク上へと送信する。なお、最後の起動処理を終了させたタスクＴ2は終了する。
【０１１７】
さて、ネットワーク上からメッセージオブジェクトＭｓｇ32をネットワーク通信処理ドライバ４が受信すると、ＲＴＯＳ３は、ＲＴ通信処理制御部６を起動する。ＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ32の更新後アクション情報(図１８(ｂ))にしたがい、ＲＴＯＳ３にタスクＴ3を起動させるべくシステムコールを用いる。これにより実行状態に移行したタスクＴ3は、タスクＴ3のＡＰモジュール／メッセージオブジェクト起動情報(図２４(ｂ))の起動順番情報にしたがい、ＡＰモジュールＭ32およびＲＴ通信処理制御部６を起動する。具体的には、タスクＴ3は、まず、メッセージオブジェクトＭｓｇ32のメッセージデータ更新のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ32の更新条件(図１８(ｂ))にしたがい、メッセージオブジェクトＭｓｇ32を受信メッセージにより更新する。次いで、タスクＴ3は、ＡＰモジュールＭ32を起動し、最後に、メッセージオブジェクトＭｓｇ33の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ32の更新条件情報(図１８(ｂ))にしたがい、ＡＰモジュールＭ32の終了後にメッセージセージオブジェクトＭｓｇ32のメッセージデータを更新する。なお、最後の起動処理を終了させたタスクＴ3は終了する。
【０１１８】
(３)制御ユニットＵ3
ネットワーク上からメッセージオブジェクトＭｓｇ33をネットワーク通信処理ドライバ４が受信すると、ＲＴＯＳ３は、ＲＴ通信処理制御部６を起動する。ＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ33の更新後アクション情報(図１８(ｃ))にしたがい、ＲＴＯＳ３にタスクＴ3を起動させるべくシステムコールを用いる。それにより実行状態に移行したタスクＴ2は、タスクＴ2のＡＰモジュール／メッセージオブジェクト起動情報(図２５)の起動順番情報にしたがい、ＡＰモジュールＭ33およびＲＴ通信処理制御部６を起動する。具体的には、タスクＴ3は、まず、メッセージオブジェクトＭｓｇ33のメッセージデータ更新のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ33の更新条件情報(図１８(ｃ))にしたがい、メッセージオブジェクトＭｓｇ33のメッセージデータを受信メッセージによって更新する。次いで、タスクＴ3は、ＡＰモジュールＭ33を起動し、最後に、ネットワーク上へのメッセージオブジェクトＭｓｇ34の送信のためにＲＴ通信処理制御部６を起動する。このとき起動されたＲＴ通信処理制御部６は、メッセージオブジェクトＭｓｇ34の更新条件にしたがい、ＡＰモジュールＭ33の終了ＡＰとにメッセージオブジェクトＭｓｇ34のメッセージデータを更新してから、そのメッセージオブジェクトＭｓｇ34をネットワーク上へと送信する。なお、最後の起動処理を終了させたタスクＴ3は終了する。
【０１１９】
なお、以上において、各制御ユニットＵ1,Ｕ2,Ｕ3からネットワーク上へのメッセージ送信は、それぞれのメッセージオブジェクトに含まれている優先度情報にしたがって行われている。
【０１２０】
このように、本分散制御システムにおいては、タスクが、ＡＰ構成情報にしたがってＡＰモジュールとメッセージ通信処理とを起動するようにしているため、ＡＰモジュールとメッセージ通信処理プログラムとの完全な分離化が実現されている。したがって、本分散制御システムによれば、システム構成やユニット構成等が変更されても、ユーザは、ソフトウエアに変更を加えることなく、ユーザ定義情報の設定内容を変更するだけで、新たなシステム構成下におけるアプリケーションの実行を可能とすることができる。すなわち、システム構成やユニット構成の変更に伴うソフトウエア変更量を最小限に抑制することができるため、アプリケーションを新たなシステム対応にするための労力を削減することができる。
【０１２１】
さらに、ユーザ定義情報の設定内容を変更するだけで、ＡＰ構成情報の設定内容を変更させることができるため、ＡＰモジュールおよびメッセージ通信処理の起動順番やメッセージオブジェクトの優先度等の変更によって、簡単に、ＡＰモジュールとメッセージ通信処理とを同期的にあるいは非同期に起動させることができる。従って、ネットワークを介した通信処理を含むセンサ入力〜アクチュエータ出力までの最悪処理実行時間を簡単に短縮することができ、ネットワークを介したｅｎｄ−ｔｏ−ｅｎｄのリアルタイム性を容易に保証することができる。
【０１２２】
以上、ネットワーク上の複数の制御ユニットにＡＰモジュールが分散されている場合を例に挙げて説明したが、本発明は、ネットワーク上の１つの制御ユニットに全てのＡＰモジュールが配置される場合にも適用可能である。例えば、図４のＡＰモジュール起動情報テーブルおよび図５のＡＰモジュール入出力テーブルがシステム構成情報２０に含まれ、かつ、制御ユニットＵ1に配されるＡＰモジュールとして全てのＡＰモジュールが登録されたＡＰモジュール配置テーブルがユニット構成情報２１に含まれている場合には、情報解析ツール８は、これらの情報２０,２１に基づき上述の情報自動生成処理を実行し、制御ユニットＵ1のメッセージオブジェクト情報テーブルおよびＡＰモジュール／メッセージオブジェクト起動情報テーブルに、それぞれ、図２９および図３０に示したデータを登録する。これらのテーブルが転送された制御ユニットＵ1上におけるアプリケーション実行の際には、タスクが、ＡＰモジュール／メッセージオブジェクト起動情報において定められた起動順番等にしたがって、ＡＰモジュールおよびＡＰモジュール間のメッセージオブジェクト送受信サービスを提供するＲＴ通信制御部を起動する(図３１参照)。これにより、相互のメッセージ通信によるＡＰモジュールの協調動作が行われ、アプリケーションが実行される。
【０１２３】
なお、本実施の形態では、メッセージオブジェクトに書込モジュールの他に複数の読出モジュールがある場合には、各読出ＡＰモジュールの起動タスクの優先度のなかの最高値を、そのメッセージオブジェクトの優先度としているが、必ずしも、このようにする必要はない。例えば、書込モジュールの優先度をそのメッセージオブジェクトの優先度とすれば、優先度の高いタスクからメッセージが送信され易くなる。
【０１２４】
また、タスクが周期的にのみ起動されるシステムに本発明を適用する場合には、周期的にメッセージが更新されるようにするか、あるいは、周期的にメッセージを到着させ、その周期にあわせてタスクが起動されるようにすればよい。
【０１２５】
また、本実施の形態では、同一ユニット内におけるタスク間通信の場合にもメッセージを生成しているが、同一ユニット内におけるタスク間通信の場合にはメッセージを生成しないようにすれば、通信処理の削減が図られる。
【０１２６】
【発明の効果】
本分散制御システムによれば、タスクが、ＡＰ構成情報にしたがってＡＰモジュールとメッセージ通信処理とを起動するようにしているため、ＡＰモジュールとメッセージ通信処理プログラムとの完全な分離化が実現される。したがって、本分散制御システムによれば、システム構成やユニット構成等が変更されても、ユーザは、ソフトウエアに変更を加えることなく、ユーザ定義情報の設定内容を変更するだけで、新たなシステム構成下におけるアプリケーションの実行を可能とすることができる。すなわち、システム構成やユニット構成の変更に伴うソフトウエア変更量を最小限に抑制することができるため、ソフトウエアの生産性を向上させることができると共に、種々の構成のシステムにアプリケーションを適用するために費やされる作業を削減することができる。
【０１２７】
また、ユーザ定義情報の設定内容を変更するだけで、ＡＰ構成情報の設定内容を変更させることができるため、ＡＰモジュールおよびメッセージ通信処理の起動順番やメッセージオブジェクトの優先度等の変更によって、簡単に、ＡＰモジュールとメッセージ通信処理とを同期的にあるいは非同期に起動させることができる。従って、ネットワークを介した通信処理を含むセンサ入力〜アクチュエータ出力までの最悪処理実行時間を簡単に短縮することができ、ネットワークを介したｅｎｄ−ｔｏ−ｅｎｄのリアルタイム性を容易に保証することができる。
【０１２８】
また、メッセージオブジェクトに複数の読出モジュールがある場合には、書込モジュールの優先度をそのメッセージオブジェクトの優先度とすることによって、優先度の高いタスクからのメッセージの送信を行いやすくことができる。
【０１２９】
また、同一ユニット内におけるタスク間通信の場合には、メッセージを生成しないようにすれば通信処理の削減を図ることができる。
【図面の簡単な説明】
【図１】本発明の実施の一形態に係る分散制御システムの構成図である。
【図２】(ａ)は、ユーザ定義情報に含まれているシステム構成情報のデータ構造を概念的に示した図であり、(ｂ)は、ユーザ定義情報に含まれているユニット構成情報のデータ構造を概念的に示した図であり、(ｃ)は、ユーザ定義情報に含まれているシステム入出力情報のデータ構造を概念的に示した図である。
【図３】(ａ)は、ＡＰ構成情報のデータ構造を概念的に示した図であり、(ｂ)は、メッセージオブジェクト情報のデータ構造を概念的に示した図である。
【図４】ユニット構成情報に含まれているＡＰモジュール配置情報テーブルの一例を示した図である。
【図５】システム構成情報に含まれているＡＰモジュール起動情報テーブルの一例を示した図である。
【図６】システム構成情報に含まれているＡＰモジュール入出力情報テーブルの一例を示した図である。
【図７】情報解析ツールが実行する情報自動生成処理の流れを示したフローチャート図である。
【図８】図７のユニット間通信データ抽出ルーチンＳ７０におけるユニット間通信データ抽出処理の流れを示したフローチャート図である。
【図９】ユニット間通信データ抽出処理を具体的に説明するための図である。
【図１０】図７のタスク間通信データ抽出ルーチンＳ７１におけるタスク間通信データ抽出処理の流れを示したフローチャート図である。
【図１１】タスク間通信データ抽出処理を具体的に説明するための図である。
【図１２】図７のパックデータ抽出ルーチンＳ７２におけるパックデータ抽出処理の流れを示したフローチャート図である。
【図１３】パックデータ抽出処理により作成されたパック抽出テーブルのデータ構造を概念的に示した図である。
【図１４】図７のメッセージオブジェクト生成ルーチンＳ７３におけるメッセージオブジェクト処理の流れを示したフローチャート図である。
【図１５】図７のメッセージオブジェクト項目設定ルーチンＳ７４における書込み／読出し設定処理および送信／受信設定処理の流れを示したフローチャート図である。
【図１６】図７のメッセージオブジェクト項目設定ルーチンＳ７４における更新後アクション設定処理および優先度設定処理の流れを示したフローチャート図である。
【図１７】図７のメッセージオブジェクト項目設定ルーチンＳ７４における更新条件設定処理および設定修正処理の流れを示したフローチャート図である。
【図１８】情報解析ツールにより生成された各制御ユニットのメッセージオブジェクト情報テーブルの一例を示した図である。
【図１９】図７のメッセージオブジェクト送受信設定ルーチンＳ７５におけるメッセージオブジェクト送受信設定処理の流れを示したフローチャート図である。
【図２０】図７の起動条件設定ルーチンＳ７６における起動条件設定処理の流れを示したフローチャート図である。
【図２１】図７の起動条件設定ルーチンＳ７８におけるウエイト設定処理の流れを示したフローチャート図である。
【図２２】図７のタスク優先度設定ルーチンＳ７９におけるタスク優先度設定処理の流れを示したフローチャート図である。
【図２３】情報解析ツールにより生成されたＡＰモジュール／メッセージオブジェクト起動情報デーブルの一例を示した図である。
【図２４】情報解析ツールにより生成されたＡＰモジュール／メッセージオブジェクト起動情報デーブルの一例を示した図である。
【図２５】情報解析ツールにより生成されたＡＰモジュール／メッセージオブジェクト起動情報デーブルの一例を示した図である。
【図２６】(ａ)は、ユーザ定義情報に含まれている通信情報テーブルのデータ構造を概念的に示した図であり、(ｂ)は、ユーザ定義情報に含まれているパック情報テーブルのデータ構造を概念的に示した図である。
【図２７】図７のメッセージオブジェクト項目設定ルーチンＳ７４に付加する設定修正処理の流れを示したフローチャート図である。
【図２８】本発明の実施の一形態に係る分散制御システムにおける、メッセージ通信によるＡＰモジュールの協調動作を説明するための図である。
【図２９】１つの制御ユニットに全てのＡＰモジュールが配置される場合における、その制御ユニットのメッセージオブジェクト情報テーブルの一例を示した図である。
【図３０】１つの制御ユニットに全てのＡＰモジュールが配置される場合における、その制御ユニットのＡＰモジュール／メッセージオブジェクト起動情報テーブルの一例を示した図である。
【図３１】本発明の実施の一形態に係る分散制御システムにおける、メッセージ通信によるＡＰモジュールの協調動作を説明するための図である。
【図３２】システム入出力情報に含まれているシステム入出力情報テーブルの一例を示した図である。
【符号の説明】
Ｍ1,Ｍ2,...,Ｍn…アプリケーションプログラムモジュール(ＡＰモジュール)
Ｍｓｇ1,Ｍｓｇ2,...,Ｍｓｇn…メッセージオブジェクト
Ｔ1,Ｔ2,...,Ｔn…タスク
１ａ,...,１ｎ…制御ユニット
２…情報処理装置
３…リアルタイムオペレーティングシステム(ＲＴＯＳ)
４…ネットワーク通信処理ドライバ
５…分散制御処理ミドルウェア
６…ＲＴ通信処理制御部
７…ＡＰ構成情報
８…情報解析ツール
２０…システム構成情報
２１…ユニット構成情報
２２…ＡＰモジュール起動情報テーブル
２３…ＡＰモジュール配置情報テーブル
２４…ＡＰモジュール入出力情報テーブル
２５…システム入出力情報
２６…システム入出力情報テーブル
１８０…通信情報テーブル
１８１…パック情報テーブル
【図１】
0003841137.tif 000002
【図２】
0003841137.tif 000003
【図３】
0003841137.tif 000004
【図４】
0003841137.tif 000005
【図５】
0003841137.tif 000006
【図６】
0003841137.tif 000007
【図７】
0003841137.tif 000008
【図８】
0003841137.tif 000009
【図９】
0003841137.tif 000010
【図１０】
0003841137.tif 000011
【図１１】
0003841137.tif 000012
【図１２】
0003841137.tif 000013
【図１３】
0003841137.tif 000014
【図１４】
0003841137.tif 000015
【図１５】
0003841137.tif 000016
【図１６】
0003841137.tif 000017
【図１７】
0003841137.tif 000018
【図１８】
0003841137.tif 000019
【図１９】
0003841137.tif 000020
【図２０】
0003841137.tif 000021
【図２１】
0003841137.tif 000022
【図２２】
0003841137.tif 000023
【図２３】
0003841137.tif 000024
【図２４】
0003841137.tif 000025
【図２５】
0003841137.tif 000026
【図２６】
0003841137.tif 000027
【図２７】
0003841137.tif 000028
【図２８】
0003841137.tif 000029
【図２９】
0003841137.tif 000030
【図３０】
0003841137.tif 000031
【図３１】
0003841137.tif 000032
【図３２】
0003841137.tif 000033