(57)【特許請求の範囲】
【請求項１】
分散制御システムにおいてアプリケーションを構成する方法であって、
前記分散制御システムに関連付けられた少なくとも１つの組み込み挙動を備える使用可能素子の集合を提供するステップであって、ここで、前記素子の１つまたは複数の組み込み挙動が、デフォルト・パラメータの集合を含み、当該デフォルト・パラメータは、１つまたは複数の取り付けられたデバイスのタイプに対応して設定され、前記アプリケーション用の前記素子の１つまたは複数のグループに基づいて修正されるものである、ステップと、
前記アプリケーションのニーズに基づいて、前記使用可能素子の中から該アプリケーションを実行するための素子の集合を選択するステップと、
前記アプリケーション用の前記素子の１つまたは複数のグループに基づいて、該素子の通信のトポロジを設計するステップであって、ここで、当該ステップが、前記素子の少なくとも１つの部分集合が通信サブセットに接続されるようにトポロジを設計することを有するステップと、
を含む方法であって、前記組み込み挙動は、前記素子が、ネットワークに接続されると自動的に自己組織化を行うものである、方法。
【請求項２】
前記素子の集合を選択するステップが、組み込みサンプリング挙動に基づいて少なくとも１つの素子を選択するステップを含み、前記組み込みサンプリング挙動は、素子が、ネットワークに接続されると自動的にデフォルト・サンプリング・レート・パラメータを設定するものである、請求項１に記載の方法。
【請求項３】
前記素子の集合を選択するステップが、組み込み警告生成挙動に基づいて少なくとも１つの素子を選択するステップを含み、前記組み込み警告生成挙動は、素子が、ネットワークに接続されると自動的に警告をトリガするためのデフォルト値を判断するものである、請求項１に記載の方法。
【請求項４】
前記素子の集合を選択するステップが、組み込みデータ処理挙動に基づいて少なくとも１つの素子を選択するステップを含み、前記組み込みデータ処理挙動は、対応するノード・アプリケーション・プログラムに、ネットワーク上の１つの宛先または１組の宛先に付属のセンサから得られるデータ・サンプルを自動的に提示される、請求項１に記載の方法。
【請求項５】
前記素子の集合を選択するステップが、組み込み収集挙動に基づいて２つまたそれ以上の素子を選択するステップを含む、請求項１に記載の方法。
【請求項６】
前記素子の集合を選択するステップが、組み込み制御ループ挙動に基づいて少なくとも１つの素子を選択するステップを含み、前記組み込み制御ループ挙動は、対応するノード・アプリケーション・プログラムに、ネットワーク上に提示される制御値を使用して付属のアクチュエータを駆動させる、請求項１に記載の方法。
【請求項７】
前記組み込み制御ループ挙動が、組み込み安全モード挙動を含む、請求項６に記載の方法。
【請求項８】
前記デフォルト・パラメータが、クラス・メンバーシップに基づいている請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、分散システムの分野に関連する。特にこの発明は、自己組織化分散システムに関連する。
【０００２】
【従来の技術】
一般に制御システムは、産業用および他のアプリケーションの制御を提供するように配置されるセンサおよびアクチュエータ並びにアプリケーション・コントローラを含む。そのようなセンサは、温度センサ、圧力センサ、タコメータ等を含むことができる。そのようなアクチュエータは、バルブ、モータ、ヒータ等を含むことができる。そのような制御システム内のアプリケーション・コントローラは、プログラマブル論理制御装置(PLC)またはコンピュータ・システムを用いて実現することができる。
【０００３】
制御システムのセンサ、アクチュエータおよびアプリケーション・コントローラは、通信ネットワークを介して相互接続することができる。そのような通信ネットワークは、イーサネット、またはプロセス制御環境のために特化される多様なフィールドレベル制御バスの１つもしくは複数のようなパケット・ベースの通信ネットワークを用いて実現することができる。複数の要素が通信ネットワークを介して相互接続される制御システムは、分散システムまたは分散測定および制御システムと呼ぶことができる。センサ、アクチュエータおよびコントローラは、通常、通信ネットワーク上にノードとして接続される。１つまたは複数のセンサ、アクチュエータまたはコントローラを含むノードは、分散制御システムの素子ノードまたは素子と呼ぶことができる。
【０００４】
分散システム内のそれぞれの素子は、通常、通信ネットワークを介して１つまたは複数の他の素子と相互作用する。例えば、特定の素子は、データを収集し、選択される他の素子にデータを転送することができる。さらに、特定の素子は、計算を実施し、選択される他の素子に計算の結果を供給することができる。従って、素子のそれぞれは、通常適当なパラメータを用いて構築され、そのパラメータは、素子が、アプリケーションの全体設計に従って他の素子の適当なものと通信することを可能にする。
【０００５】
【発明が解決しようとする課題】
従来の分散システムは通常、準備(commissioning)プロセスを経験し、その間に素子のそれぞれが、適切なパラメータを用いて構築される。典型的な準備プロセスの間、システムのインストール者は、手操作でそれぞれの個々の素子にパラメータを入力する。残念ながら、そのような手操作による入力操作は、通常時間がかかり、高価であり、従来の分散制御システムをインストールする費用をかなり増加させる。さらに、そのような手操作による構築は、一般に新しい素子がシステムに加えられるときに必要とされ、そのため既存のシステムを拡張し、維持する費用を増加させる。
【０００６】
さらに、一般にそのような準備プロセスは、素子の通信特性および相互作用プロトコルに関連する大量の情報がコンパイルされ、システムのインストール者に提供されることを必要とし、それによって個々の素子についてパラメータを適切に設定することができる。残念ながら、インストール情報をコンパイルするのに必要な努力は、インストールの費用をかなり増加させ、新しいシステムの開発を減速させる。
【０００７】
【課題を解決するための手段】
自己組織化素子を含む分散制御システムが開示される。自己組織化素子は、特定のアプリケーションを実施するために必要とされる組み込み挙動に基づいてあらかじめ選択される。組み込み挙動は、素子が、ネットワークに結合されると多様な方法を使用して自動的に自己組織化を行い、アプリケーションを実施することを可能にする。組み込み挙動は、特定のアプリケーションが、主として素子選択のプロセスを通して構築されることを可能にする。
【０００８】
組み込み挙動は、素子内のノード・アプリケーションの符号化の中で具体化することができる。それぞれの組み込み挙動は、デフォルト・パラメータのあらかじめ決められた組を含むことができる。素子に関するデフォルト・パラメータは、親もしくはピア・ノードまたは制御ノードのような制御システムの他の要素によって生成される構成メッセージを使用して修正することができる。
【０００９】
この発明の他の機能および利点は、後述の詳細な説明から明らかになる。
【００１０】
【発明の実施の形態】
この発明は、添付の図面を参照して特定の典型的な実施例に関して記述される。
【００１１】
図1は、ネットワーク12に結合される自己組織化素子1-nの１組を含む分散制御システム10を示す。素子1-nのそれぞれは、１つまたは複数の組み込み挙動を含む。分散制御システム10のためのアプリケーションの設計者は、特定のアプリケーションを実施するために必要とされる組み込み挙動に基づいて素子1-nを選択する。素子1-nのそれぞれは、プロセッサおよびコードを格納するためのメモリを含むソフトウェア実行資源を含む。素子1-nのそれぞれは、ネットワーク12を介して通信するためのハードウェアおよびソフトウェア機構も含む。
【００１２】
素子1-nの任意の１つまたは複数は、センサまたはアクチュエータのような１つまたは複数の付属の装置をもつことができる。付属のセンサをもつ素子1-nは、センサ素子と呼ばれる。付属のアクチュエータをもつ素子1-nは、アクチュエータ素子と呼ばれる。制御機能を実施する素子1-nは、制御素子と呼ばれる。
【００１３】
素子1-nは、組み込み挙動の具体化である対応するノード・アプリケーション・プログラム1-mを実行する。ノード・アプリケーション・プログラム1-mの任意の１つまたは複数は、制御挙動、組み込みセンサ挙動または組み込みアクチュエータ挙動を実施することができる。ノード・アプリケーション・プログラム1-mの任意の１つは、１つの計算タスクを表すことができる。さらに、ノード・アプリケーション・プログラム1-mの任意の２つまたはそれ以上が一緒になって、ひとまとまりの計算タスクを供給することができる。ノード・アプリケーション・プログラム1-mの２つまたはそれ以上のそのような寄せ集めを仮想ノード・アプリケーション・プログラムと呼ぶことができる。そのような仮想ノード・アプリケーション・プログラムは、素子1-nのいくつかを横断して広がることができる。例えば、ノード・アプリケーション・プログラム1-3は、１つの仮想ノード・アプリケーションを提供することができる。
【００１４】
さらに、制御挙動のためのノード・アプリケーション・プログラムを、適当な通信資源をもつプログラム可能論理制御装置またはコンピュータ・システムのようなネットワーク12上の専用の制御ノードに埋め込むことができる。
【００１５】
ネットワーク12は、いくつかのネットワークを接続するゲートウェイまたはルータへの通信を提供することができる。複数のネットワークのそのような接続は、階層的な態様で配列することができる。階層の高いまたは低いレベルにあるネットワークは、素子1-nの配列と同様の配列を含むことができる。
【００１６】
素子1-nの組み込み挙動は、対応するノード・アプリケーション・プログラム1-mの符号化の中で具体化される。組み込み挙動は、利用可能な素子の中からの素子1-nの適当な選択により、分散制御システム10のためのアプリケーションが大部分構築されることを可能にする。それぞれの素子1-nは、ネットワーク12に接続されるとき、特定のアプリケーションの目的を満たすその組み込み挙動に従って自動的に自己を組織化する。
【００１７】
素子1-nの組み込み挙動は、個々の挙動を含む。個々の組み込み挙動の例は、センサ素子のサンプリング挙動、センサ素子のように監視機能を実施する素子の警報生成挙動、およびセンサ素子および制御素子のようなデータ生成素子のデータ処理挙動を含む。個々の挙動の他の例は、アクチュエータ素子の通常モードおよび安全モード挙動を含む。
【００１８】
素子1-nの組み込み挙動は、集合的な挙動を含む。集合的な挙動の一例は、分散制御システム10内の標準化されたイベントに対する素子1-nの応答である。分散制御システム10内の標準化されたイベントは、リブート・イベント、システム・シャットダウン・イベントおよび緊急イベントを含むことができる。あらかじめ規定される集合的な挙動の別の例は、素子1-nに含まれることができるクロックの自動的な同期化のための支援である。
【００１９】
素子1-nのそれぞれの組み込み挙動は、挙動に関連するデフォルト・パラメータを含む。デフォルト・パラメータは、素子1-nのクラスまたはグループに基づいて修正することができる。素子1-nのそのようなグループは、ネットワーク12を介する素子1-nの間の利用可能な通信に基づくことができる。また、素子1-nのそのようなグループは、素子が取り付けられるセンサまたはアクチュエータのタイプ、素子1-nの物理的位置、または他の多様な基準に基づくことができる。
【００２０】
センサ素子に関連する組み込み挙動の一例は、そのサンプリング挙動である。組み込みサンプリング挙動の例は、付属のセンサの周期的なサンプリングを実施するための挙動である。周期的なサンプリング挙動は、修正することができるデフォルト・サンプリング・レートを含む。周期的なサンプリング挙動を必要とする制御システム10のためのアプリケーションの設計者は、特定のアプリケーションの必要に応じて、この組み込み挙動をもつ素子1-nの１つまたは複数を選択する。組み込みの周期的なサンプリング挙動をもつ素子1-nは、それらがネットワーク12に接続されると、デフォルト・サンプリング・レート・パラメータを自動的に設定する。
【００２１】
周期的なサンプリング挙動を用いて符号化される素子1-nのノード・アプリケーション・プログラム1-mは、それを取り付けることができるセンサのそれぞれのタイプに対するデフォルト・サンプリング・レートを用いて符号化することができる。センサのタイプの例は、いくつかの例のみ挙げると、温度センサ、化学成分または物質センサ、および圧力センサを含む。制御システム10にインストールされると、組み込みの周期的サンプリング挙動をもつそれぞれの素子1-nは、付属のセンサの１つまたは複数のタイプを判断し、センサの検出されたタイプに関するデフォルト値にそのサンプリング・レートを設定する。
【００２２】
組み込みの周期的サンプリング挙動をもつ素子1-nの個々のものまたは集合に対するサンプリング・レート・パラメータは、ネットワーク12を介して転送される構成メッセージを使用して修正することができる。対象となる素子1-nは、ネットワーク12を介してこれらの構成メッセージを受信し、それに応じてそれらのサンプリング・レート・パラメータを設定する。これらの構成メッセージは、例えばネットワーク12上のアプリケーション・コントローラような、対象となる素子1-nの親ノードによって生成することができる。あるいは、これらの構成メッセージは、対象となる素子1-nのネットワーク12上のピア・ノードによって生成することができる。これらの構成メッセージは、素子1-nの個々のもの、または素子1-nのグループあるいはクラスを対象とすることができる。
【００２３】
組み込み挙動の別の例で、素子1-nの１つまたは複数は、その対応するノード・アプリケーション・プログラム1-mに組み込まれる挙動をもつことができ、その挙動は、対応するノード・アプリケーション・プログラムが警報状況を示す値を計算するたびにそのノード・アプリケーション・プログラムに警報を生成させる。この警報挙動をもつ素子1-nは、ネットワーク12に接続されると、警報をトリガするためのデフォルト値を自動的に判断する。この挙動をもつ素子1-nの個々のものまたは集合内の警報をトリガするデフォルト値は、ネットワーク12を介して転送される構成メッセージを使用して設定され、または修正されることができる。対象となる素子1-nは、ネットワーク12を介してこれらのメッセージを受信し、それに応じて警報をトリガする値を設定する。
【００２４】
素子に関連する組み込み挙動の別の例は、そのデータ処理挙動である。例えば、素子1-nの１つまたは複数は、特定のアプリケーションについて、対応するノード・アプリケーション・プログラム1-mに組み込まれるデータ処理挙動に基づいて選択することができ、そのデータ処理挙動は、対応するノード・アプリケーション・プログラムに、付属のセンサから得られるデータ・サンプルを内部で記録させる。別の例で、素子1-nの１つまたは複数は、対応するノード・アプリケーション・プログラム1-mに組み込まれるデータ処理挙動について選択することができ、そのデータ処理挙動は、対応するノード・アプリケーション・プログラムに、ネットワーク12上の１つの宛先または１組の宛先に付属のセンサから得られるデータ・サンプルを自動的に提示させる。制御システム10のアプリケーションの設計者は、適当な場合に内部で記録し、または外部に提示する挙動をもつ素子1-nを選択し、選択された素子1-nは、それらがネットワーク12に接続されると自動的に挙動する。
【００２５】
アクチュエータ素子に関連するあらかじめ決められた挙動の一例は、組み込み制御ループ挙動である。例えば、素子1-nの１つまたは複数は、その対応するノード・アプリケーション・プログラム1-mに組み込まれる制御ループ挙動について選択することができ、その制御ループ挙動は、対応するノード・アプリケーション・プログラムに、ネットワーク12上に提示される制御値を使用して付属のアクチュエータを駆動させる。この制御ループ挙動は、組み込み安全モードを含むことができ、従って制御ループに必要とされるネットワーク12上の他の素子との通信が失われる場合、アクチュエータ素子は、その付属のアクチュエータをあらかじめ決められた安全モードにおく。
【００２６】
例えば、付属のヒータを制御するアクチュエータ素子は、ネットワーク12上に提示されるヒータ制御値に応じて所望の温度を維持するようにヒータを駆動する組み込み挙動をもつことができる。この挙動は、ヒータ制御ループの他の要素との通信が失われる場合、付属のヒータのスイッチを切るデフォルト挙動を含むことができる。制御システム10のアプリケーションの設計者は、適当な場合にこれらの組み込み挙動をもつ素子1-nを選択し、選択される素子1-nは、それらがネットワーク12に接続されると自動的に挙動する。
【００２７】
素子1-nの組み込み挙動のためのデフォルト・パラメータは、素子1-nが取り付けられる特定の装置に基づくことができる。あるいは、デフォルト・パラメータは、クラス・メンバーシップのような共通またはグループの属性に基づくことができる。素子1-nは、ネットワーク12に接続されるとそれらのクラス・メンバーシップを判断し、クラス・メンバーシップに応じてそれらのデフォルト・パラメータを修正することができる。あるいは、素子1-nのクラスの全てのメンバのサンプリング・レート・パラメータの変更のためにネットワーク12を介して構成メッセージを転送してもよい。
【００２８】
素子1-n内のノード・アプリケーション・プログラム1-mは、素子1-nの任意の集合を横切って分散される態様で作用する複数のあらかじめ規定されるプロシージャを支援するコードを含む。あらかじめ規定されるプロシージャは、寄せ集め、順序付け、値の選択、クラス・メンバーシップ判断および投票(voting)等のような共通のアプリケーション・タスクを支援する。素子1-n内のあらかじめ規定されるプロシージャは、ネットワーク12を介して例えば素子1-nの個々のものまたはクラスに転送される構成メッセージを使用して修正することにより、あらかじめ規定されるプロシージャに関連するパラメータを変更することができる。選択として、あらかじめ規定されるプロシージャは、ノード・アプリケーション・プログラム1-m内のあらかじめ規定されるそれぞれのプロシージャについて機能の代替を符号化することによって変更することができる。
【００２９】
素子1-nのそれぞれは、局所的に維持される状態を支援する。局所的に維持される状態は、多様な条件に応じて修正することができる。例えば、素子1-nの局所的に維持される状態は、集合的なプロシージャ、局所的な行動イベント、局所的な計算または局所的なトランスジューサ行動の結果、ネットワーク12を介するイベントまたはデータの受信、またはシステム定義されるイベントまたは条件等に応じて変化することができる。さらに、素子1-nのそれぞれは、初期化、実行および終了を含むシステム全体のあらかじめ規定される状態を支援する。素子1-nが適当な状態に対応する限り、これらのシステム全体の状態は、さらに細かく分けてもよく、または空でもよい。
【００３０】
ノード・アプリケーション・プログラム1-mは、特定の組み込み挙動に依存する多様な関係構造の１つまたは複数を支援することができる。これらの関係を使用して、ネットワーク12およびプロシージャのアプリケーションを介して素子1-nの個々またはグループに転送される構成メッセージの適用範囲を規定することができる。これらの関係は、ピア、親および子の階層的な構造を含む。これらの関係は、隣接するものおよび近傍のものを含む。これらの構造は、意味論およびシステムを横切る名前空間(name-space)の両方に関して標準化される。
【００３１】
例えば、付属のセンサを周期的にサンプリングする組み込み挙動をもつ素子1-nは、ネットワーク12上のそれらの親ノードからそれらのサンプリング・レート・パラメータを得ることができる。素子1-nは、例えば他の素子1-nの１つまたはアプリケーション・コントローラであるネットワーク12上のそれらの親ノードを判断し、それらの親ノードから、ネットワーク12上に提示される構成メッセージ内にそれらの親ノードが提供するサンプリング・レートを取得する。同様に、ネットワーク12にデータを周期的に提示する組み込みデータ処理挙動をもつ素子1-nは、ネットワーク12上のそれらのピアまたはネットワーク12上のそれらの親にデータを周期的に提示することができる。
【００３２】
素子1-nは、ネットワーク12上の通信のために、標準化される自己記述の一様なデータモデルに従って、データを提示し、イベントを報告し、構成メッセージを転送する。１つの実施例で、メッセージ・パケットおよびデータ・パケットは、ネットワーク12を介して発行購読(publish-subscribe:パブリッシュ-サブスクライブ)プロトコルに従って転送される。この発行購読プロトコルは、素子が、自動的に分散制御システム10内の自己組織化アプリケーションに設定されることを可能にする。
【００３３】
図2は、ネットワーク12上の制御ループ50に配置される１組の自己組織化素子52-56を示す。制御ループ50に関する素子は、制御素子52、センサ素子54およびアクチュエータ素子56を含む。制御ループ50で使用するために、センサ素子54は、付属のセンサ60をもち、アクチュエータ素子56は、付属のアクチュエータ62をもつ。制御素子52は、組み込み制御ノード・アプリケーション・プログラムをもち、センサ素子54は、組み込みセンサ・ノード・アプリケーション・プログラムをもち、アクチュエータ素子56は、組み込みアクチュエータ・ノード・アプリケーション・プログラムをもつ。
【００３４】
制御素子52は、その組み込み制御ノード・アプリケーション・プログラムによって提供される制御挙動についてあらかじめ選択される。制御ループについて制御挙動の一例は、比例積分微分(PID)アルゴリズムである。組み込み制御挙動によって、制御素子52は、ネットワーク12上に提示されるデータ・サンプルを取得し、データ・サンプルに応じて制御値を生成し、ネットワーク12上に制御値を提示する。制御素子52は、ネットワーク12に接続されると、その組み込み制御挙動に使用するために、提示されるセンサ・データ・サンプルを聞こうとし始める。
【００３５】
センサ素子54は、付属のセンサ60を周期的にサンプリングするその組み込みセンサ・ノード・アプリケーション・プログラムの挙動についてあらかじめ選択される。センサ素子54は、ネットワーク12に接続されると、自動的に組み込みサンプリング挙動に従事する。センサ素子54は、最初にそのデフォルト・サンプリング・レートでセンサ60をサンプリングする。サンプリング・レートは、例えばネットワーク12を介して制御素子52から転送される構成メッセージによって修正することができる。組み込みデータ処理挙動に従って、センサ素子54は、例えば制御素子52による使用のため、得られたセンサ・データ・サンプルをネットワーク12上に周期的に提示し、または発行する。
【００３６】
アクチュエータ素子56は、ネットワーク12を介して制御値を取得し、制御値をアクチュエータ62に適用するそのアクチュエータ・ノード・アプリケーション・プログラムの組み込み挙動についてあらかじめ選択される。アクチュエータ素子56は、ネットワーク12に接続されると、ネットワーク12上に提示される制御値を自動的に聞こうとする。
【００３７】
上述のような素子52-56の相互作用は、素子52-56が、ネットワーク12を介して互いに通信するそれらの能力に基づいて自動的に相互作用する通信に基づくグループ化の一例である。制御素子52は、センサ素子54によって提示されるデータ・サンプルを消費し、アクチュエータ素子56は、制御素子52によって提示される制御値を消費する。このグループ化は、例えばネットワーク12のサブネット上に素子52-56を配置することによって達成することができる。素子52-56が、ネットワーク12上の他の素子と通信することができる場合、グループ化の他のタイプを使用して制御ループ50を自動的に組織化することができる。
【００３８】
例えば、素子52-56は、物理的な近さに基づいてグループ化することができる。アクチュエータ素子56が、異なる複数の制御素子から発生するネットワーク12上に提示される制御値を検出する場合、アクチュエータ素子56は、制御素子のうち最も近接するものから発生する制御値を使用する。制御値を提示するために制御素子によって使用されるメッセージは、発生制御素子の物理的座標を含むことができる。これは、アクチュエータ素子56が、分散制御システム10の任意の場所にインストールされ、制御値を取得するために制御素子を自動的に判断することを可能にする。同様に、制御素子52が、異なる複数のセンサ素子によって提示されるデータ・サンプルを検出する場合、それは、センサ素子うち最も近接するものからデータ・サンプルを消費する。
【００３９】
別の例で、素子52-56は、単位基準でグループ化することができる。アクチュエータ素子56が、異なる複数の制御素子から発生するネットワーク12上に提示される制御値を検出する場合、アクチュエータ素子56は、その付属のアクチュエータ62に必要とされる単位に合致する制御値を使用する。例えば、アクチュエータ62がヒータである場合、アクチュエータ素子56は、温度単位をもつ制御値を消費する。制御値を提示するために制御素子によって使用されるメッセージは、対応する制御値に関する単位を含む。同様に、制御素子52が、温度を制御している場合、それは、ネットワーク12上に提示される温度データ・サンプルだけを消費する。
【００４０】
制御ループ50の代替の実施例で、制御ノード・アプリケーション・プログラムは、センサ素子54またはアクチュエータ素子56に含めることができる。制御ノード・アプリケーション・プログラムは、提示されるデータ・サンプルを消費し、素子54および56の選択に依存して局所的にまたはネットワーク12を介して制御値を提示する。
【００４１】
例えば、１つの実施例で、センサ素子54は、制御ノード・アプリケーション・プログラムおよびセンサ・ノード・アプリケーション・プログラムを含む。センサ・ノード・アプリケーション・プログラムは、センサ素子54内で、制御ノード・アプリケーション・プログラムにセンサ・データ・サンプルを局所的に提示する。それに応じて、制御ノード・アプリケーション・プログラムは、制御値を生成し、ネットワーク12にその制御値を提示する。アクチュエータ素子56は、ネットワーク12上に提示された制御値を消費し、それらをアクチュエータ62に適用する。
【００４２】
別の実施例では、アクチュエータ素子56が、制御ノード・アプリケーション・プログラムおよびアクチュエータ・ノード・アプリケーション・プログラムを含む。センサ・ノード・アプリケーション・プログラムは、ネットワーク12上にセンサ・データ・サンプルを提示し、アクチュエータ素子56内の制御ノード・アプリケーション・プログラムが、ネットワーク12上に提示されたセンサ・データ・サンプルを消費する。アクチュエータ素子56内の制御ノード・アプリケーション・プログラムは、制御値を生成し、アクチュエータ素子56内のアクチュエータ・ノード・アプリケーション・プログラムにその制御値を局所的に提示し、アクチュエータ素子56は、その制御値をアクチュエータ62に適用する。
【００４３】
ある実施例で、組み込み挙動、プロシージャ、局所的に維持される状態の支援および関係は、全ての素子1-nの永久的な定着物(fixture)であり、対応するノード・アプリケーション・プログラム1-mの符号化の中で具体化される。選択として、組み込み挙動、プロシージャ、局所的に維持される状態の支援および関係は、あるアプリケーション・ドメイン内で適用可能な素子の定着物でありうる。実施例の選択は、経済性および所望の適用可能性の範囲に依存する。
【００４４】
素子1-nによって支援される組み込み挙動、プロシージャ、局所的に維持される状態についての支援および関係は、分散制御システム10内のアプリケーションを構築する以下の方法を可能にする。最初に、素子1-nは、構築される特定のアプリケーションの必要に基づいて、利用可能な素子の中から選択される。素子1-nの１つまたは複数は、例えば取り付けることができる装置のタイプに基づいて選択することができる。別の例として、素子1-nの１つまたは複数は、構築されるアプリケーションに有用な組み込みの個々の挙動または集合的な挙動に基づいて選択することができる。構築されるアプリケーションは、選択される素子1-nの集合的な挙動の使用によって、最大限の機能が満たされるように設計される。
【００４５】
次に、全ての選択される素子1-nの状態挙動が規定される。アプリケーションは、個々の素子1-nではなく素子1-nのクラスに選択される素子1-nの状態挙動を適用できるように設計することが好ましい。
【００４６】
分散制御システム10の通信トポロジーは、構築されるアプリケーションによって必要とされる結合を自動的に実現することができる代替のインストールを十分に利用して設計される。例えば、素子のグループは、ネットワーク12上でサブネットすることができる。別の例として、ユーザ・データグラム・プロトコル(UDP)のような通信プロトコルは、選択される素子1-nのためのデフォルト・アドレスと共に使用することができる。このプロトコルは、選択される素子1-nが、ネットワーク12に接続されると発行購読方式の連関を使用して自己構築を実施することを可能にする。
【００４７】
選択される素子1-nの集合的および個別の挙動およびプロシージャのパラメータは、ネットワーク12を介して転送される構成メッセージを使用して活性化されまたは修正される。これらの組み込み挙動およびプロシージャは、必要であればカスタマイズすることができる。パラメータへの修正が、個々の素子1-n基準ではなく、素子1-nのクラスに関して実施されるようにアプリケーションを設計することが好ましい。
【００４８】
最後に、組み込み挙動およびプロシージャを使用して満足することができないアプリケーション要求は、特定の素子1-nに合わせてカスタマイズされる修正である。例えば、カスタマイズされるコードは、ノード・アプリケーション・プログラム1-mの中の適当なものに加えることができる。
【００４９】
上述の方法は、アプリケーション設計者が、素子1-n内で支援されるあらかじめ規定される能力から新しいアプリケーションを構築することを可能にする。新しいアプリケーションは、素子1-nの個々または集合の固有の能力、およびこれらの固有の能力の修正に基づいて作用することができる。
【００５０】
組み込み挙動およびプロシージャを含む素子1-nのあらかじめ規定される能力は、グループに基づくことができる。そのようなグループは、クラス・メンバーシップ規定によって達成することができる。クラス・メンバーシップ規定の一例は、温度を測定する素子1-nの全てである。クラスの別の例は、座標点x、y、zの近くに位置する全ての素子1-nである。
【００５１】
グループ化に基づく集合的な挙動の例として、中間値の形式のデータ・サンプルの寄せ集めが、温度を測定する素子1-nとして規定されるグループに属する全ての素子1-nによって報告されるように、アプリケーションを指定することができる。ピアおよび最も近くの隣接するものとの支援される関係は、グループ化される素子の集合を形成する際、およびグループ化される素子の集合の間の通信経路を形成する際に有用である。
【００５２】
アプリケーションによって使用されるグループ化またはクラス・メンバーシップ規定のタイプは、さまざまな意味論を含むことができる。それぞれに有用であるメンバーシップ基準の例およびアプリケーション・ドメインの例を以下で述べる。
【００５３】
素子1-nのグループ化は、それらの物理的位置に基づくことができる。素子1-nの物理的位置は、例えば緯度、経度、高さまたは他の格子表現のような座標として表現することができる。
【００５４】
素子1-nのグループ化は、収容階層の観点でそれらの物理的位置に基づくことができる。１つの例は、分散制御システム10に関する建物制御アプリケーションであり、その中で、建物番号、床番号、部屋番号、部屋座標x、y、zまたは部屋内容物列挙を含む位置階層が使用される。
【００５５】
素子1-nのグループ化は、人間が読むことができる位置情報としての物理的位置に基づくことができる。この一例は、列挙が特定の位置を示す分散制御システム10のための建物制御アプリケーションである。
【００５６】
素子1-nのグループ化は、近さの観点でそれらの物理的位置に基づくことができる。１つの例は、座標x、y、zの10メートル以内に位置する全ての素子1-nを含むグループ化である。
【００５７】
素子1-nのグループ化は、最も近くに隣接するものの識別の観点でそれらの物理的位置に基づくことができる。グループ化のこれらのタイプは、送電線または他の線形プロセスに関するような分散制御システム10の障害検出アプリケーションに有用である。
【００５８】
素子1-nのグループ化は、機能に基づくことができる。機能に基づくグループ化の例は、温度を測定する素子1-nの全てである。別の例は、分散制御システム10のためのプロセス監視または制御アプリケーションに有用であるような、温度に関する寄せ集めを実施する素子1-nの全てである。
【００５９】
素子1-nのグループ化は、それらの通信特性に基づくことができる。そのようなグループ化の例は、特定のメッセージを受信する素子1-nの全部である。そのようなグループ化は、分散制御システム10に関する通信診断(telecommunication diagnosis)アプリケーションに有用でありうる。
【００６０】
素子1-nのグループ化は、特定の値に基づくことができる。例えば、そのようなグループ化は、氷点以下の温度を測定する素子1-nを含むことができる。別の例は、指定される時間間隔に、あるクラスの２つのイベントを検出する素子1-nである。そのようなグループ化は、分散制御システム10に関する警報システム・アプリケーションに有用でありうる。
【００６１】
素子1-nのグループは、静的である必要はない。素子1-nのメンバーシップ特性は、周期的またはある状態変化またはイベント時に再評価することができる。さらに、寄せ集めまたは順序付けのようなプロシージャを含む素子1-nの中の組み込みプロシージャは、周期的またはある状態変化または同様のイベント時に実行することが好ましい。このようにして、動的なアプリケーション挙動を構築することができる。
【００６２】
図3は、素子1-nの中の素子14の例を示す。素子14は、ネットワーク12を介する通信を可能にする一組の通信回路20を含む。通信回路20および関連するコードは、素子14に組み込まれるデフォルト挙動を変更するパラメータを素子14に設定する構成メッセージの受信を可能にする。通信回路20はさらに、ネットワーク12上のデータの受信および提示を可能にする。
【００６３】
素子14は、組み込み挙動を提供し、分散制御システム10内の集合的なプロシージャを支援する１つまたは複数のノード・アプリケーション・プログラムの記憶および実行を可能にするプロセッサ22およびメモリ24を含む。そのような挙動が、対応するノード・アプリケーション・プログラム内で実現される場合、メモリ24は、付属のセンサから得られるデータ・サンプルの記録も可能にする。
【００６４】
素子14は、通信経路28を介して付属の装置にインタフェースする１組の装置インタフェース回路26を含む。付属の装置は、センサまたはアクチュエータまたは組み合わせでありうる。装置インタフェース回路26は、プロセッサ22が、付属の装置のタイプを判断することを可能にする。これによって、素子14内のノード・アプリケーション・プログラムは、デフォルト・パラメータを設定し、付属の装置のタイプに基づいてそれがクラスのメンバであるか判断することができる。
【００６５】
分散制御システム10の監視される領域内で10分ごとに温度が監視されなければならない分散制御システム10について、第１の例のアプリケーションを考える。さらに、監視される領域内で、炭化水素濃度が毎秒監視されなければならないが、10分ごとにのみ報告されると仮定する。さらに、分散制御システム10内の任意の位置で、炭化水素濃度が指定された閾値を越える場合、検出点の50メートル以内の全ての素子は、前の分および検出時間の後の分について得られるそれらの毎秒の読み取りを報告しなければならないと仮定する。さらに、素子が、点検整備のために除去されるとき、素子1-nの数および位置は変化するが、分散制御システム10は、この目的のために劣化させられることがないと仮定する。最後に、全てのデータは、データベースに記録されると仮定する。
【００６６】
以下は、分散制御システム10内の第１のアプリケーションについて設計の解決法の概要であり、その中で、素子1-nの適切な選択によって、アプリケーション機能の充実した量を達成することができる。最初に、温度を測定し、温度測定を周期的に放送するための組み込み挙動をもつ素子1-nの第１のグループが、選択される。第１のグループについてサンプル・レートは、温度を測定する素子1-nのクラスとしての第１のグループに、周期的にネットワーク12を介して送信される構成メッセージによって判断される。
【００６７】
次に、炭化水素濃度を周期的に測定し、それらの炭化水素濃度測定をピア・グループに伝送する組み込み挙動をもつ素子1-nの第２のグループが選択される。第２のグループについてサンプル・レートは、炭化水素濃度を測定する素子1-nのクラスとして第２のグループに周期的に送信される構成メッセージによって判断される。さらに素子1-nの第２のグループのメンバは、それらの得られる測定を内部バッファに記録し、タイムスタンプする挙動について選択される。
【００６８】
素子1-nの第２のグループのメンバは、それらの測定が、指定される閾値を越えるかどうか検出するように構築され、またはカスタマイズされる。第２のグループのメンバの１つが、指定される閾値を越える測定を示す場合、それは、ネットワーク12上にイベントを発信する。イベントは、イベントを発信する素子1-nのタイムスタンプおよび座標を含む。
【００６９】
さらに、そのようなイベントが、素子1-nの第２のグループのメンバによって検出されるか、50メートル以内のそれらのグループの別のものから受信されるとき、素子1-nの第２のグループのメンバは、イベントのタイムスタンプの１分前およびその後の追加の１分について、それらの内部記録からデータを放送するように構築され、またはカスタマイズされる。
【００７０】
素子1-nの第２のグループのメンバは、タイムスタンプを含む自己記述パケット、発生素子の位置、およびデータの単位を使用して、ネットワーク12を通してデータおよびイベントを放送する。この挙動は、第２のグループのそれぞれの素子1-nに組み込まれる。放送の期間および指定される閾値等は、ネットワーク12を介して、クラスとして第２のグループに周期的に転送される構成メッセージを使用して、第２のグループのメンバに提供される。
【００７１】
次に、分散制御システム10内の第１のアプリケーションについてデータベースが選択される。データベースは、ネットワーク12を介して受信される任意のデータを、温度および炭化水素濃度に適当な単位で自動的に格納するように構築され、またはカスタマイズされる。
【００７２】
次に、アプリケーション・コントローラのようなネットワーク12上のノードは、周期的に素子1-nに適当な構成メッセージを送信するように構築される。そのような２つの構成メッセージがある。温度を測定する素子の第１のグループに影響を及ぼす１つのメッセージと、炭化水素濃度を測定する第２のグループに影響を及ぼすもう１つのメッセージである。第１または第２のグループの素子が、分散制御システム10に導入され、現在のアプリケーション・パラメータを動的に学習できるようにするのは、これらの構成メッセージである。
【００７３】
同一のコードが、温度を測定する素子1-nの第１のグループの全てのメンバのノード・アプリケーション・プログラムの中で走り、同一のコードが、炭化水素を測定する第２のグループの全てのノード・アプリケーション・プログラム内で走ることに注意すべきである。さらに、全ての通信は、温度または炭化水素の測定装置である機能的メンバーシップまたは空間的メンバーシップのいずれかに基づくので、名前空間の問題はない。
【００７４】
プロセス線が、同一の機能を実施する多数の素子1-nを含むアプリケーション構築の第２の例を考える。任意の時間のプロセス線上の数nは、異なることができる。処理される項目(items)は、オンラインであって、最も長くアイドル状態にある素子1-nによって処理されなければならないと仮定する。このアプリケーションについてそれぞれの素子1-nは、内部同期クロックを含む。それぞれの素子1-nは、それがオンラインになるとき、またはそれが１つの項目を処理し終えるとき、局所的時間をサンプリングし、格納する。
【００７５】
素子1-nの全ては、参加する素子の数に依存せずに、最も古い格納された時間を判断するプロトコルに参加する。素子1-nを横断して分配され、その中に組み込まれるこのプロトコルは、それぞれの素子が、線の中で隣り合っているか判断することを可能にする。１つの項目が処理されようとするとき、それは、最も古い格納された局所的時間をもつ素子1-nによって受け入れられる。
【００７６】
そのような最小化プロトコルの概要は、次の通りである。全ての素子1-nは、規定される期間内にネットワーク12上に発行されるクロック値を聞こうとする。ネットワーク12上に発行され、それらの内部クロック値より小さいクロック値を検出する素子1-nは、黙ったままである。それらの内部クロック値より大きいクロック値を検出する素子1-nは、ネットワーク12上にそれらの内部クロック値を発行する。それらの内部クロック値より小さいネットワーク12上のクロック値を検出する素子1-nは、検出される値がそれらのものである場合、それらの内部クロック値を発行する。指定された期間にネットワーク12上でクロック値を検出しない素子1-nは、ネットワーク12上にそれらの内部クロック値を発行する。
【００７７】
この発明の上記の詳細な記述は、説明の目的で示されており、この発明を明確な実施例に限定するものではない。
【００７８】
本発明は例として次の実施態様を含む。
（１）ネットワーク(12)と、
それぞれが少なくとも１つの組み込み挙動をもつことに関してあらかじめ選択される１組の素子(14)と、
を備え、上記組み込み挙動は、上記素子(14)が、ネットワーク(12)に結合されると自動的に自己組織化し、分散制御システム内のアプリケーションを実施することを可能にする分散制御システム(10)。
【００７９】
（２）それぞれの組み込み挙動は、最初に１組のデフォルト・パラメータに従って作用する、上記(1)に記載の分散制御システム(10)。
（３）上記素子(14)の組み込み挙動の任意の１つまたは複数についてのデフォルト・パラメータは、ネットワーク(12)を通して転送される構成メッセージによって修正される、上記(2)に記載の分散制御システム(10)。
【００８０】
（４）上記構成メッセージは、上記ネットワーク(12)上の上記素子(14)の個々のものについて対象とされる、上記(3)の分散制御システム(10)。
（５）上記構成メッセージは、上記ネットワーク(12)上の上記素子(14)のクラスを対象とする、上記(3)に記載の分散制御システム(10)。
【００８１】
（６）上記クラスは、付属のトランスデューサの特定のタイプをもつ上記素子(14)を指定する、上記(5)に記載の分散制御システム(10)。
（７）上記クラスは、分散制御システム(10)内で特定の位置配列をもつ上記素子(14)を指定する、上記(5)の分散制御システム(10)。
【００８２】
（８）上記素子(14)の１つまたは複数は、付属のトランスジューサのタイプに応じて、対応する上記デフォルト・パラメータを修正する、上記(2)の分散制御システム(10)。
（９）上記素子(14)の１つまたは複数は、上記ネットワーク(12)上の他の素子(14)の検出に応じて、対応する上記デフォルト・パラメータを修正する、上記(2)の分散制御システム(10)。
【００８３】
（１０）上記組み込み挙動は、データ・サンプリング挙動を含む、上記(1)に記載の分散制御システム(10)。
（１１）上記組み込み挙動は、データ処理挙動を含む、上記(1)に記載の分散制御システム(10)。
【００８４】
（１２）上記組み込み挙動は、警報生成挙動を含む、上記(1)に記載の分散制御システム(10)。
（１３）上記組み込み挙動は、安全モード挙動を含む、上記(1)の分散制御システム(10)。
【００８５】
（１４）ネットワーク(12)を介してデータ・サンプルを取得するステップと、該データ・サンプルに応じて制御値を生成するステップと、ネットワーク(12)上に該制御値を提示するステップを含む組み込み制御ループ挙動をもつ制御素子(52)と、
センサ(60)に結合されるセンサ素子(54)であって、該センサ素子(54)は、該センサ(60)からデータ・サンプルを取得するステップと、ネットワーク(12)上に該データ・サンプルを提示するステップを含み、組み込みサンプリング挙動をもつことについてあらかじめ選択され、該センサ素子(54)は、ネットワーク(12)に接続されると該サンプリング挙動に従事するセンサ素子(54)と、
アクチュエータ(62)に結合されるアクチュエータ素子(56)であって、該アクチュエータ素子(56)は、ネットワーク(12)を通じて制御値を取得するステップと、該制御値をアクチュエータ(62)に適用するステップを含む組み込みアクチュエータ挙動をもつことについてあらかじめ選択され、該アクチュエータ素子(56)は、ネットワーク(12)に接続されると該アクチュエータ挙動に従事するアクチュエータ素子(56)と、
を備える分散制御システム(50)。
【００８６】
（１５）上記センサ素子(54)は、ネットワーク(12)に接続されると、１組のデフォルト・パラメータに従って上記サンプリング挙動に従事する、上記(14)に記載の分散制御システム(50)。
（１６）上記デフォルト・パラメータは、上記センサ素子(54)がセンサをサンプリングするレートについてデフォルト値を含む、上記(15)に記載の分散制御システム(50)。
【００８７】
（１７）上記制御素子(52)は、ネットワーク(12)を通して構成メッセージを転送することによって、センサ素子(54)がセンサをサンプリングするレートを修正する、上記(15)に記載の分散制御システム(50)。
（１８）上記センサ素子(54)は、センサについてタイプ表示を検出し、センサをサンプリングするレートを、デフォルト・レートまたはセンサのそのタイプに設定することによって該レートを修正する、上記(15)に記載の分散制御システム(50)。
【００８８】
（１９）上記アクチュエータ挙動はさらに、上記制御素子(52)および上記センサ素子(54)が、ネットワーク(12)上で通信し、上記アクチュエータを上記制御素子(52)の安全モードにおいているか、または上記センサ素子(54)が、通信していないかを判断するステップを含む、上記(14)に記載の分散制御システム(50)。
（２０）さらにネットワーク(12)上にデータ・サンプルを提示する別のセンサ素子を備え、上記制御素子(52)は、最も近接する上記センサ素子の１つからデータ・サンプルを消費する、上記(14)に記載の分散制御システム(50)。
【００８９】
（２１）さらにネットワーク(12)上にデータ・サンプルを提示する別のセンサ素子を備え、上記制御素子(52)は、上記制御値の単位に合致するデータ・サンプルの単位の表示をもつデータ・サンプルを提示するセンサ素子の１つから、データ・サンプルを消費する、上記(14)の分散制御システム(50)。
（２２）さらにネットワーク(12)上にデータ値を提示する別の制御素子を備え、上記アクチュエータ素子(56)は、最も近接する上記制御素子の１つからデータ値を消費する、上記(14)に記載の分散制御システム(50)。
【００９０】
（２３）さらにットワーク(12)上にデータ値を提示する別の制御素子を備え、上記アクチュエータ素子(56)は、上記アクチュエータが必要とする単位に合致するデータ値の単位の表示をもつデータ値を提示する制御素子の１つから、データ値を消費する、上記(14)に記載の分散制御システム(50)。
【００９１】
（２４）センサ(60)に結合されるセンサ素子(54)であって、該センサ素子(54)は、該センサ(60)からデータ・サンプルを取得するステップと、該データ・サンプルを制御ノード・アプリケーション・プログラムに提示するステップを実施するセンサ・ノード・アプリケーション・プログラムを実行する資源をもち、該制御ノード・アプリケーション・プログラムは、該データ・サンプルに応じて該制御値を生成するセンサ素子(54)と、
アクチュエータ(62)に結合されるアクチュエータ素子(56)であって、上記制御ノード・アプリケーション・プログラムから上記制御値を取得するステップと、該制御値を該アクチュエータ(62)に適用するステップを実施するアクチュエータ・ノード・アプリケーション・プログラムを実行する資源をもつアクチュエータ素子(56)と、
を備える分散制御システム(50)。
【００９２】
（２５）上記制御ノード・アプリケーション・プログラムは、上記センサ素子(54)内で挙動し、該制御ノード・アプリケーション・プログラムは、上記センサ・ノード・アプリケーション・プログラムから局所的にデータ・サンプルを取得し、該センサ素子(54)および上記アクチュエータ素子(56)が結合される上記ネットワーク(12)上に上記制御値を提示する、上記(24)に記載の分散制御システム(50)。
【００９３】
（２６）上記制御ノード・アプリケーション・プログラムは、上記アクチュエータ素子(56)内で挙動し、該制御ノード・アプリケーション・プログラムは、上記センサ素子(54)および上記アクチュエータ素子(56)に結合されるネットワーク(12)を介して上記データ・サンプルを取得し、上記アクチュエータ・ノード・アプリケーション・プログラムに上記制御値を局所的に提示する、上記(24)に記載の分散制御システム(50)。
【００９４】
【発明の効果】
本発明によれば、分散制御システムにおいてそれぞれの素子に必要なパラメータを手操作で入力する必要がないので、システムを拡張し、維持する費用を低減させることができる。
【図面の簡単な説明】
【図１】ネットワークを通して相互作用する１組の自己組織化素子1-nを含む分散制御システムを示す図。
【図２】制御ループに配列された１組の自己組織化素子を示す図。
【図３】自己組織化素子の要素の一例を示す図。
【符号の説明】
１０,５０      分散制御システム
１２          ネットワーク
５２          制御素子
５４          センサ素子
５６          アクチュエータ素子
６０          センサ
６２          アクチュエータ
【図１】
0004249304.tif 000002
【図２】
0004249304.tif 000003
【図３】
0004249304.tif 000004