(57)【要約】  本発明は、各装置が対応する装置ロジックにより特定される複数の装置（１００ａ、１００ｂ、１００ｃ）と、前記複数の装置（１００ａ、１００ｂ、１００ｃ）の制御ロジックを収集し、少なくとも一つの装置（１００ｂ）に対応する装置ロジックに基づいて複数の装置のうちの少なくとも一つの装置（１００ｂ）の実行反応を特定するための手段（３３２）とを有するネットワーク化された制御システムに関する。ネットワーク化された制御システムは更に、前記少なくとも一つの装置（１００ｂ）の実行反応を定める少なくとも一つの装置から独立した制御ロジックプログラムを生成するための手段（３３４）と、前記少なくとも一つの装置から独立した制御ロジックプログラムを、選択される装置（１００ｃ）に割り当てられる装置特有の制御ロジックコードに翻訳するための装置とを有する。
2010518502.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置のうちの少なくとも一つの装置の実行反応を制御することを可能にする制御ロジックコードを受信するための受信器と、前記制御ロジックコードを実行するための実行環境と、前記制御ロジックコードに適応できるサポートロジックとを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するために通信リンクを提供する、複数の装置を含むネットワーク化された制御システムの装置。
【請求項２】
前記サポートロジックは、前記制御ロジックコードに適応するためのインスタンス化メッセージを受信するための手段を有する、請求項１に記載の装置。
【請求項３】
前記受信器は、前記複数の装置のうちの少なくとも一つの第２の装置の実行反応を制御することを可能にする他の制御ロジックコードを受信し、前記実行環境は、前記他の制御ロジックコードを実行し、前記サポートロジックは、前記他の制御ロジックコードに適応できる、請求項１又は２に記載の装置。
【請求項４】
前記複数の装置のうちの少なくとも一つの装置の実行反応を定める、装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な制御ロジックコードに翻訳するための手段と、前記制御ロジックコードを前記選択される装置に発信するための手段と、前記選択される装置のサポートロジック及び前記制御ロジックプログラムで入力として使用される状態変数を持つすべての装置の前記サポートロジックを適応させるための手段とを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するための通信リンクを提供する、請求項１乃至３の何れか一項に記載の装置を複数持つネットワーク化された制御システムを初期化する装置。
【請求項５】
請求項１乃至３の何れか一項に記載の装置が各々対応する装置ロジックによって特定される複数の装置と、前記複数の装置の前記装置ロジックを収集し、前記少なくとも一つの装置に対応する装置ロジックに基づいて、前記複数の装置のうちの前記少なくとも一つの装置の実行反応を特定するための手段と、前記少なくとも一つの装置の前記実行反応を定める少なくとも一つの装置から独立した制御ロジックプログラムを生成するための手段と、請求項４に記載の初期化する装置とを有する、ネットワーク化された制御システム。
【請求項６】
前記収集するための手段は、すべての装置ロジックに基づいて、すべての前記複数の装置の実行反応を特定し、前記生成するための手段は、複数の装置から独立した制御ロジックプログラムを提供する、請求項５に記載のネットワーク化された制御システム。
【請求項７】
装置のグループの共通の状態変数上の、又は装置のグループの一組の値上の動作によって、装置のグループを制御することに適している少なくとも一つのアプリケーションを更に有する、請求項５又は６に記載のネットワーク化された制御システム。
【請求項８】
請求項１乃至３の何れか一項に記載の装置を複数持つネットワーク化された制御システムを初期化する方法であって、複数の装置のうちの少なくとも一つの装置の実行反応を定める、装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な制御ロジックコードに翻訳するステップと、前記制御ロジックコードを前記選択される装置に発信するステップと、前記選択される装置のサポートロジック、及び前記制御ロジックプログラムの入力として使用される状態変数を持つすべての装置の前記サポートロジックを適応させるステップとを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するために通信リンクを提供する、方法。
【請求項９】
請求項１乃至３の何れか一項に記載の装置が各々装置ロジックによって特定される、複数の装置を提供するステップと、前記複数の装置の装置ロジックを収集し、前記少なくとも一つの装置に対応する装置ロジックに基づいて、前記複数の装置のうちの少なくとも一つの装置の実行反応を特定するステップと、前記少なくとも一つの装置の前記実行反応を定めている少なくとも一つの装置から独立した制御ロジックプログラムを生成するステップと、請求項５に記載のネットワーク化された制御システムを初期化するステップとを有する、ネットワーク化された制御システムを確立する方法。
【請求項１０】
前記少なくとも一つの装置の実行反応を定める少なくとも一つの新規な装置から独立した制御ロジックプログラムを生成するステップと、前記少なくとも一つの新規な装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な新規な制御ロジックコードに翻訳するステップと、前記新規な制御ロジックコードを前記選択される装置に発信するステップと、この場合、インクリメント動作である、前記選択される装置のサポートロジック、及び前記少なくとも一つの新規な装置から独立した制御ロジックプログラムの入力として使用される状態変数を持つすべての装置の前記サポートロジックを適応させるステップとを更に有する、請求項９に記載のネットワーク化された制御システムを確立する方法。
【請求項１１】
請求項５乃至７の何れか一項に記載のネットワーク化された制御システムに新しい機能を加える方法であって、前記少なくとも一つの装置の実行反応を定める少なくとも一つの新規な装置から独立した制御ロジックプログラムを生成するステップと、前記少なくとも一つの新規な装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な新規な制御ロジックコードに翻訳するステップと、前記新規な制御ロジックコードを前記選択される装置に発信するステップと、この場合、インクリメント動作である、前記選択される装置のサポートロジック、及び前記少なくとも一つの新規な装置から独立した制御ロジックプログラムの入力として使用される状態変数を持つすべての装置のサポートロジックを適応させるステップとを有する、方法。
【請求項１２】
コンピュータによって実行されるとき、請求項８乃至１１の何れか一項に記載の方法を実施できるコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを格納する記録担体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してネットワーク化された制御システム（例えば複雑な照明装置）に関し、特にこの種のネットワーク化された制御システムの通信に関する。
【０００２】
ネットワーク化された制御システムは、商業的な、産業的及び組織的事業市場の、更に、消費者市場のユビキタスのトレンドである。ネットワーク化された制御システムに対する実施例は、ビルのオートメーション・システム（例えば照明、加熱及び換気又は安全性のための）である。ネットワーク化された制御システムは、光バラスト、スイッチ、昼光検知若しくは人体検知センサ、アクチュエータ又はメーターのような装置から成る。前記装置は、ワイヤレスで、すなわちＲＦ（無線周波数）モジュールを介して、好ましくは接続される。ネットワーク化された制御システムの機能は、装置の状態及び機能から成る装置ロジックと、当該装置ロジックと対話する制御アプリケーションによって典型的に定められる。装置の状態及び機能は、ベンダー定義され、しばしば標準化されている。制御アプリケーションは、ベンダー定義され、時々ユーザー定義されている。前記制御アプリケーションは、異なる装置に命令を出すことによって、又は入力として複数の装置からの情報をとることによって、複数の装置と通常対話する。概して、装置と、当該装置に割り当てられる制御アプリケーション・ソフトウェアとを考慮すると、制御と装置ロジックとの間の対話のいくつかは、当該装置に対して局所的であり、その他が既知の通信プロトコル又は他の機構を介した装置間の情報の通信に依存する。
【背景技術】
【０００３】
米国特許公開公報ＵＳ２００３／００４０８１３Ａ１は、ホーム・オートメーション・システムの分散制御を提供するための方法と装置に関し、分散された制御アプリケーションのための動作原理を記載する。当該公報ＵＳ２００３／００４０８１３Ａ１において、ロジック部分は、それぞれの装置に対して定められ、すべての関連装置に識別子を送ることによって同時にロジック部分を起動させるために用いられる当該識別子（場面識別子）が割り当てられる。識別子だけが装置間で通信されるので、可能性ある機能は限られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、特にネットワーク化された制御システムの通信を改善することができるネットワーク化された制御システムの改良型の装置を提供することにある。
【課題を解決するための手段】
【０００５】
この目的は、独立クレームによって解決される。更なる実施例は、従属クレームによって示される。
【０００６】
本発明の基本的な着想は、制御アプリケーションに透過的に、ネットワーク化された制御システムの制御関連の情報の通信を実行することである。これは、関係のある実行コードが実行される装置を特定せずに、よって、いかなる通信態様もユーザが特定する必要なしに、ネットワーク化された制御システムのユーザ又はロジックデザイナーが、目標システムの特定の又はすべての装置の収集での制御ロジックを定めることができる。制御ロジック、更にはそのデザインプロセスは、著しくより単純になり、よりコンパクトであり、より多くの柔軟性（例えば、新しい機能を加えるときに）を見越せる。さらにまた、本発明は、目標システムのいかなる装置にも、制御ロジックを割り当てるので、例えば装置機能又はリソースに関して、目標制御システムのコンピュータ制御及びオートメーション化した最適化が可能である。
【０００７】
本発明の実施例によると、分散の観点から独立して制御アプリケーションの開発及び確立が可能である。このことは、ユーザがわかるように、制御ロジック及びロジックデザインプロセスの複雑さを減らすことを可能にする。更に、アプリケーション開発の後、コンピュータ制御され及び自動化システム最適化を考慮に入れた、装置に対する制御ロジックの自由な配分が可能になる。本発明のため、当業者ではないユーザも、最適な態様で、制御ロジックを容易に定め、セットアップできる。さらにまた、新しい制御機能を実行システムに加えることが、より容易になる。
【０００８】
以下に、本願明細書において使用される幾つかの重要な用語が説明される。
【０００９】
「ネットワーク化された制御システム」という用語は、複数の接続されたノード又は装置を有するシステムを意味する。前記装置は、通信システム（例えばワイヤレス通信システム）によって接続される。前記ネットワーク化された制御システムは、人体検知及び昼光検知センサ並びに所定の規則（例えば週日及び週末、働いている時間及び仕事の後の時間に対する）を持つ複雑な照明制御システム、建築オートメーション・システム、家庭用制御システム、雰囲気照明システム又は工業、小売、組織、居住を含む他のいかなる制御及びオートメーション環境である。
【００１０】
「装置」という用語は、「ネットワーク化された制御システム」のいかなるノードも意味する。装置ロジックは、対応する装置の能力及びリソースに関する情報を有する。システムのタイプに応じて、装置は、光バラスト、スイッチ、昼光検知若しくは人体検知センサ、アクチュエータ又はメーターを有する。前記装置は、無線周波数モジュールを介して接続されてもよい。各装置は、対応する装置ロジックによって特定される。
【００１１】
「装置ロジック」という用語は、装置により提供される、可能性がある制御パラメータ及び機能を意味する。前記装置ロジックは、対応する装置のハードウェア又はソフトウェア状態の属性を表し、装置状態及びローカル装置機能を定める。前記装置ロジックは、装置のハードウェア及びソフトウェア状態の属性を表す装置「状態変数」によって表される。
【００１２】
装置の「実行反応」という用語は、ネットワーク化された制御システムの通常動作の間の装置の機能を意味する。
【００１３】
「制御ロジックプログラム」という用語は、一つ又は複数の装置の実行反応を記述する装置から独立したプログラムを意味する。制御ロジックプログラムは、ユーザー定義の「システム」状態変数（装置状態変数に加えて）を含む。制御ロジックプログラムは、基本的に、プログラミング言語で定式化される状態変数での動作から成る。
【００１４】
「制御ロジックコード」という用語は、対応する制御ロジックプログラムの翻訳である、装置に特有のソフトウエアプログラムを意味する。前記制御ロジックコードは、選択される装置に割り当てられる。前記制御ロジックコードは、前記選択される装置に実行されるために最適化されていて、他の装置では動かない。前記制御ロジックコードは、解釈可能なバイトコードである。
【００１５】
本発明の実施例によると、複数の装置を含むネットワーク化された制御システムの装置は、前記複数の装置のうちの少なくとも一つの装置の実行反応を制御することを可能にする制御ロジックコードを受信するための受信器と、前記制御ロジックコードを実行するための実行環境と、前記制御ロジックコードに適応できるサポートロジックとを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するために通信リンクを提供する。
【００１６】
前記ネットワーク化された制御システムの複数の装置のうちの少なくとも一つの装置の前記実行反応を制御している前記制御ロジックコードは、前記ネットワーク化された制御システムのいかなる選択される装置にも割り当てられて、実行される。
【００１７】
本発明の実施例によると、前記少なくとも一つの装置は、選択される装置を含み、前記制御ロジックコードが実行される。このことは、前記選択される装置が、前記制御ロジックコードを実行することによって、それ自身の実行反応を制御することを意味する。
【００１８】
別の実施例によると、前記少なくとも一つの装置は、前記選択される装置を含まない。
【００１９】
本発明の実施例によると、前記少なくとも一つの装置は、当該装置の他に少なくとも一つの他の装置を含み、前記制御ロジックは実行され、前記サポートロジックは、前記選択される装置でない装置からの状態変数を格納するためのストレージを含む。前記ストレージは、制御ロジック実行の間、前記制御ロジックコードによって要求される実行状態変数が外部素子から送信される必要がなく、内部ストレージから読み込まれることができるという効果がある。
【００２０】
本発明の実施例によると、前記通信リンクは、前記少なくとも一つの装置の実際の状態を定めている実際の状態変数を読み込むことを可能にし、前記制御ロジックコードを実行するために変化した状態変数を前記少なくとも一つの装置に発信することを可能にする。本発明の他の実施例によると、前記通信リンクは、前記制御ロジックコードに透過的である。
【００２１】
本発明の他の実施例によると、前記サポートロジックは、インスタンス化メッセージを受信するための手段を有し、前記インスタンス化メッセージに基づいて自身を前記制御ロジックコードに適応するように構成される。
【００２２】
本発明の他の実施例によると、前記受信器は、複数の装置のうちの少なくとも一つの第２の装置の実行反応を制御することを可能にする他の制御ロジックコードを受信するように構成され、前記実行環境は、前記他の制御ロジックコードを実行するように構成され、前記サポートロジックは、前記他の制御ロジックコードに適応できる。
【００２３】
本発明の実施例によると、前記受信器は、前記通信リンクを介して前記制御ロジックコードを受信するように構成される。
【００２４】
本発明の他の実施例によると、前記実行環境は、バーチャル・マシンである。
【００２５】
本発明の実施例によると、本発明による複数の装置を持つネットワーク化された制御システムを初期化する装置は、前記複数の装置のうちの少なくとも一つの装置の実行反応を定める、装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な制御ロジックコードに翻訳するための手段と、前記制御ロジックコードを前記選択される装置に発信するための手段と、前記選択される装置のサポートロジックと前記制御ロジックプログラムで使用される状態変数を持つすべての装置の前記サポートロジックとを適応させるための手段とを有し、前記サポートロジックは、前記少なくとも一つの装置の前記実行反応を制御するために必要な状態変数を交換するための通信リンクを提供する。
【００２６】
前記制御ロジックプログラムにおいて使用される状態変数を持つすべての装置は、前記制御ロジックプログラムのための入力状態変数を提供する。１台の選択される装置に割り当てられる制御ロジックコードに対して、前記選択される装置の前記サポートロジックだけでなく制御プログラムで使用される状態変数を持つ入力のすべての（マスター）装置のサポートロジックも、適応されなければならない。特に、加入テーブルエントリが、適応される。
【００２７】
本発明の実施例によると、前記複数の装置の各装置は、対応する装置ロジックによって特定され、前記翻訳するための手段は、翻訳された制御ロジックコードが選択される装置に適されるように、前記選択される装置に対応する装置ロジックを考慮するように構成される。これは、前記制御ロジックコードを前記選択される装置に適応させる。
【００２８】
本発明の他の実施例によると、前記翻訳するための手段は、前記選択される装置に対応する前記装置ロジックに基づいて、前記選択される装置を選択するように構成される。これは、前記制御ロジックコードを実行することに最も適しているネットワーク化された制御システムの複数の装置のうちの装置を選択することを可能にする。
【００２９】
本発明の実施例によると、前記装置ロジックは、前記選択される装置の能力及びリソースに関する情報を有する。
【００３０】
本発明の他の実施例によると、前記翻訳するための手段は、前記複数の装置のうちの少なくとも一つの他の装置の実行反応を定める、他の装置から独立した制御ロジックプログラムを、前記複数の装置のうちの他の選択される装置で実行可能な他の制御ロジックプログラムコードに翻訳するように構成され、前記発信するための手段は、前記他の制御ロジックコードを実行するための前記他の選択される装置の実行環境に、前記他の制御ロジックコードを発信するように構成され、前記適応するための手段は、前記他の選択される装置のサポートロジックを適応させるように構成される。
【００３１】
本発明の他の実施例によると、前記翻訳するための手段は、前記ネットワーク化された制御システムの複数の装置の実行反応を定めている制御ロジックプログラムのプールから、装置から独立した制御ロジックプログラム及び他の装置から独立した制御ロジックプログラムを受信するように構成される。
【００３２】
本発明の実施例によると、装置は、動作の間、ネットワーク化された制御システムを更新するため前記他の制御ロジックコードを翻訳して送信するように構成される。
【００３３】
本発明のさらに他の実施例によると、前記他の選択される装置は、選択される装置であり、前記他の装置から独立した制御ロジックプログラムは、前記選択される装置で実行される制御ロジックプログラムの置換である。
【００３４】
本発明のさらに他の実施例によると、ネットワーク化された制御システムは、各装置が対応する装置ロジックによって特定される、本発明による複数の装置と、前記複数の装置の前記装置ロジックを収集し、少なくとも一つの装置に対応する装置ロジックに基づいて、前記複数の装置の前記少なくとも一つの装置の実行反応を特定するための手段と、前記少なくとも一つの装置の前記実行反応を定める少なくとも一つの装置から独立した制御ロジックプログラムを生成するための手段と、本発明による初期化する装置とを有する。
【００３５】
本発明の実施例によると、前記装置ロジックは、対応する装置のハードウェア又はソフトウェア状態の属性を表す。
【００３６】
本発明の他の実施例によると、前記収集するための手段は、ユーザが前記少なくとも一つの装置の前記実行反応を特定することができるインタフェースを有する。
【００３７】
本発明の実施例によると、インタフェースによって、ユーザが前記選択される装置を定めることができる。本発明の実施例によると、前記インタフェースは、グラフィカル・インタフェースである。
【００３８】
本発明の他の実施例によると、前記収集するための手段は、前記少なくとも一つの装置の実行反応が依存する他の装置に対応する他の装置ロジックに基づいて、前記少なくとも一つの装置の前記実行反応を特定するように構成される。
【００３９】
本発明のさらに他の実施例によると、前記収集するための手段は、すべての装置ロジックに基づいて、すべての複数の装置の実行反応を特定するように構成され、前記生成するための手段は、すべての複数の装置の実行反応を定めるため、複数の装置から独立した制御ロジックプログラムを提供するように構成される。
【００４０】
本発明の実施例によると、前記ネットワーク化された制御システムは、装置のグループの共通の状態変数での、又は装置のグループの一組の値での動作によって、装置のグループを制御することに適している少なくとも一つのアプリケーションを更に有する。グループは、ロジックデザイン及び保守のための基本的概念であり、一組の装置の共通の状態変数での動作（例えば、「すべてのランプの調光レベルを値Ｘにセットした」）、又は一組の値での動作（例えば「センサのグループで測定される平均昼光値」）を許容する。グループは抽象的なデザイン（例えば「リビングルームのすべてのランプ」）から引き出せ、このことは、タイプ化されたグループ（例えばタイプのランプのグループ）を導く。グループは、同様に任意に物理的装置をグループ化することにより（例えば部屋のすべての装置（タイプを持たない「任意のグループ」））、直接的デザインにおいて手動で定めてもよい。
【００４１】
本発明の他の実施例によれば、本発明による複数の装置を持つネットワーク化された制御システムを初期化する方法は、前記複数の装置のうちの少なくとも一つの装置の実行反応を定める、装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な制御ロジックコードに翻訳するステップと、前記制御ロジックコードを前記選択される装置に発信するステップと、前記選択される装置のサポートロジック、及び前記制御ロジックプログラムの入力として使用される状態変数を持つすべての装置の前記サポートロジックを適応させるステップとを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するために通信リンクを提供する。
【００４２】
実施例によると、出力として前記制御ロジックプログラムで使用される状態変数、すなわち前記制御ロジックプログラムによって変えられる状態変数もある。例えば加入と比較して、これらの装置は、すべての装置で固有なサポートロジックであるこれらの（出力）状態変数に対する変化通知をただ受け取るので、これらの装置の（外部的な）マスター装置のサポートロジックは、変えられる必要がない。
【００４３】
本発明の他の実施例によると、ネットワーク化された制御システムを確立する方法は、各装置が装置ロジックによって特定される、本発明による複数の装置を提供するステップと、前記複数の装置の装置ロジックを収集し、前記少なくとも一つの装置に対応する装置ロジックに基づいて、前記複数の装置のうちの少なくとも一つの装置の実行反応を特定するステップと、前記少なくとも一つの装置の前記実行反応を定めている少なくとも一つの装置から独立した制御ロジックプログラムを生成するステップと、本発明による前記ネットワーク化された制御システムを初期化するステップとを有する。
【００４４】
実施例によると、ネットワーク化された制御システムを確立する方法は、前記少なくとも一つの装置の実行反応を定める少なくとも一つの新規な装置から独立した制御ロジックプログラムを生成するステップと、前記少なくとも一つの新規な装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な新規な制御ロジックコードに翻訳するステップと、前記新規な制御ロジックコードを前記選択される装置に発信するステップと、この場合、インクリメント動作である、前記選択される装置のサポートロジック、及び前記少なくとも一つの新規な装置から独立した制御ロジックプログラムの入力として使用される状態変数を持つすべての装置の前記サポートロジックを適応させるステップとを更に有する。
【００４５】
インクリメント動作は、情報を既存のサポートロジックに加えることを意味する。
【００４６】
更に、前記少なくとも一つの新規な装置から独立した制御ロジックプログラムに関するステップが実行される間、ネットワーク化された制御システムは、動作中である。
【００４７】
本発明の他の実施例によると、新しい機能を本発明の実施例によるネットワーク化された制御システムに加える方法は、前記少なくとも一つの装置の実行反応を定める少なくとも一つの新規な装置から独立した制御ロジックプログラムを生成するステップと、前記少なくとも一つの新規な装置から独立した制御ロジックプログラムを、前記複数の装置のうちの選択される装置で実行可能な新規な制御ロジックコードに翻訳するステップと、前記新規な制御ロジックコードを前記選択される装置に発信するステップと、この場合、インクリメント動作である、前記選択される装置のサポートロジック、及び前記少なくとも一つの新規な装置から独立した制御ロジックプログラムの入力として使用される状態変数を持つすべての装置のサポートロジックを適応させるステップとを有する。
【００４８】
前記インクリメント動作は、情報を既存のサポートロジックに加えることを意味する。
【００４９】
新しい機能を加える方法が実行される間、ネットワーク化された制御システムは、動作中である。
【００５０】
本発明の実施例によると、コンピュータによって実行されるとき、本発明による上記の方法を実施できるコンピュータプログラムが設けられている。
【００５１】
本発明の他の実施例によると、本発明によるコンピュータプログラムを格納する記録担体（例えば電子アクセスのためのコンピュータプログラムを格納するために適切なＣＤ―ＲＯＭ、ＤＶＤ、メモリカード、ディスケット又は類似のデータキャリア）が設けられる。
【００５２】
本発明のこれら及びその他の態様は、以下に記載されている実施例を参照して明らかになり、説明されるだろう。
【００５３】
本発明は、以下に例示的実施形態に関して更に詳細に説明されるだろう。しかしながら、本発明は、これらの例示的実施形態に限定されない。
【図面の簡単な説明】
【００５４】
【図１】図１は、本発明による装置を示す。
【図２】図２は、本発明によるネットワーク化された制御システムを初期化する装置を示す。
【図３】図３は、本発明によるネットワーク化された制御システムを示す。
【発明を実施するための形態】
【００５５】
以下では、機能的に類似であるか同一の要素は、同一参照番号を持つ。
【００５６】
図１は、本発明の実施例による装置１００を示す。前記装置は、複数の装置からなるネットワーク化された制御システムの使用に適している。装置１００は、受信器１０２と、実行環境１０４と、サポートロジック１０６と、装置ロジック１０８とを有する。
【００５７】
装置１００は、受信器１０２を介して制御ロジックコードを受信するように構成される。受信された制御ロジックコードは、特定の装置１００に割り当てられる。受信器１０２は、制御ロジックコードを実行環境１０４に提供するように構成される。実行環境１０４は、制御ロジックコード（エグゼキューター）を実行するように構成される。制御ロジックコードの実行は、ネットワーク化された制御システムの複数の装置のうちの少なくとも一つの装置の実行反応を制御することを可能にする。前記少なくとも一つの装置は、前記制御ロジックコードを実行する装置１００であるか、又はネットワーク化された制御システムの他のいかなる装置でもよい。前記制御ロジックコードは、ネットワーク化された制御システムの複数の装置の実行反応を制御する。この場合には、前記制御ロジックコードを実行する装置１００は、前記制御ロジックコードによって制御される装置の一部であってもよいし、そうでなくてもよい。換言すれば、前記制御ロジックコードは、実行される装置１００を含むネットワーク化された制御システムのいかなる装置の実行反応も制御する。
【００５８】
実行反応を制御するために、制御ロジックコードは、制御される装置の実際の状態変数を受信することを必要とし、変化された状態変数を制御されるべき装置に送信する必要がある。前記状態変数は、前記制御ロジックコードを実行するために必要である。実行環境１０４において実行される制御ロジックコードと制御されるべき装置との間の状態変数の送信は、サポートロジック１０６によって実行される。サポートロジック１０６は、制御ロジックコードに適応できて、状態変数を交換するために通信リンクを提供するように構成される。
【００５９】
実施例によると、サポートロジック１０６は、インスタンス化メッセージを受信するための手段を含む。インスタンス化メッセージは、制御ロジックコードと共に外部から受信されるか、又は前記制御ロジックコードを受信した後、内部で生成される。前記インスタンス化メッセージは、サポートロジック１０６を制御ロジックコードの要件に適応させて、状態変数が前記制御ロジックコードによって制御されるべき装置から受信され当該装置へ発信されるように、特に通信リンクを定める。
【００６０】
装置１００は、複数の制御ロジックコードのホストをつとめるように構成される。このように、受信器１０２は、他の装置の実行反応を制御することを許容する他の制御ロジックコードを受信するように構成される。実行環境１０４は、他の制御ロジックコードを実行するように構成され、サポートロジック１０６は、他の制御ロジックコードをサポートするために順応性がある。
【００６１】
ネットワーク化された制御システムは、通信サブシステム（図３に示される）によって接続されるノード又は装置から成る。ネットワーク化された制御システムのノード又は装置１００は、追加設定なしでその装置ロジック１０８によって記述されている。装置ロジック１０８は装置状態及びローカル装置機能を定める。装置ロジック１０８、すなわち、可能な制御パラメータ及び機能（追加設定なしで装置１００により提供されている）は、装置１００のハードウェア及びソフトウェア状態の属性を表している装置状態変数（例えばランプの減光しているレベル）によってもっぱら表される。このように、状態変数は、目標システムの唯一１台の装置１００に属する。換言すれば、特定の状態変数は、状態を表す特定の装置１００に属する。この装置１００は、状態変数のマスター装置と呼ばれている。マスター装置のハードウェア又はソフトウェアの属性値の変化は、状態変数値の変化によって反映され、またこの逆も成立する。
【００６２】
装置１００は、制御ロジックコードを実行するための実行環境１０４を備えている。一般のネットワーク化された制御システムにおける制御アプリケーションは、１の又は典型的に複数の装置の装置ロジックで動作する。実行環境１０４は、内部の装置ロジック１０８及び内部の状態変数へのアクセス機構を含むバイトコードを解釈するバーチャル・マシンである。
【００６３】
更に装置１００は、サポートロジック１０６（制御関連の情報の転送に対して責任がある）を有する。これは、単に制御関連の情報の装置ロジック及び透過的な通信だけに基づいて、制御アプリケーションデザインを許容する。サポートロジック１０６の実現は、実行ネットワーク化された制御システムの実施に依存する。前記サポートロジックは、状態変数値が外部的な場合であっても、サポートロジックコードが正しい状態変数値によって動作することを確実にする。制御ロジックコードが実行される装置１００と異なる装置に状態変数が属する場合、状態変数は外部的である。装置１００のサポートロジック１０６は、外部入力状態変数及び外部出力状態変数を取扱うように構成される。外部入力状態変数は、通信リンクを介して装置１００によって受信されて、実行環境１０４に提供される状態変数である。外部出力状態変数は、実行反応が、実行された制御ロジックコードによって制御される外部装置に発信されるべき実行された制御ロジックコードによって作られる状態変数である。
【００６４】
実施例によると、制御ロジックコードのホストをつとめている装置１００は、全ての、又は、ホストされた制御ロジックコードのために必要とされる特定の外部入力状態変数のローカル・コピーを格納する。前記ローカル・コピーは、装置１００のメモリのような格納手段（図示されない）に格納される。実行の間、制御ロジックコードは、外部の状態変数の代わりに格納されたローカル状態変数値を使用する。外部の状態変数の格納されたコピーの値が最新であることを確実にするために、サポートロジック１０６は、加入メカニズムを実現する。前記加入メカニズムは、各マスター装置の加入テーブルを用いることにより、前記システムに加えられる。マスター装置は、状態変数が属する装置である。マスター装置は、内部状態変数ごとのエントリを持つ加入テーブルを格納する。各エントリは、入力状態変数としてこの状態変数を持つ制御ロジックコードが位置するネットワーク化された制御システムのすべての装置をリストする。例えばハードウェア状態が変化したので、内部状態変数の値が前記マスター装置で変化する場合、前記加入テーブルがチェックされ、変化通知はこの状態変数のエントリにリストされるすべての装置に送信される。状態変数が「トリガー状態変数」であることを意味して、関係した定義が制御ロジックコードに対して特定された場合、変化通知の受領時に、制御ロジックコードは起動される。
【００６５】
制御ロジックコードのホストをつとめている装置１００がすべてのホストされた制御ロジックコードのすべての外部の出力状態変数のためのマスター・デバイス・アドレスを格納するように、外部の出力状態変数は扱われる。制御ロジックコードが外部の状態変数の値を変えるとき、変化通知は前記マスター装置に送られる。
【００６６】
この実施例によれば、動作フェーズのネットワーク化された制御システムの装置同士の間の全ての通信は、状態変数変化通知の交換から成り、これは関連したサポートロジックを非常にコンパクトにして、非常に効率的なアプリケーション制御ロジックから独立した実施態様を許容する。
【００６７】
新しい制御機能が動作時にすでにネットワーク化された制御システムに加えられる場合には、加入テーブルは新しく定められないが、制御機能がすでに存在するためにエントリがまだそこにない場合、新しい機能のために必要とされるエントリが加えられる。
【００６８】
ネットワーク化された制御システムの初期化の前に、ネットワーク化された制御システムの複数の装置の実行反応は、装置から独立した制御ロジックプログラムによって定義される。ネットワーク化された制御システムの初期化の間、装置から独立した制御ロジックプログラムは、装置に特有の制御ロジックコードに翻訳されて、選択される装置に割り当てられる。ロジックプログラムの翻訳及び選択される装置に対する制御ロジックコードの割当ては、初期化するための装置によって実行される。
【００６９】
本発明の実施例によれば、図２は、複数の装置を持つネットワーク化された制御システムを初期化する装置２００を示す。装置２００は、入力として装置から独立した制御ロジックプログラムを受信するように構成されて、選択される装置に割り当てられ実行される制御ロジックコードを出力するように構成される。前記選択される装置は、図１に記載されている装置１００である。装置２００は、前記選択される装置のサポートロジックを適応させるインスタンス化メッセージを更に出力する。
【００７０】
装置２００は、ネットワーク化された制御システムの複数の装置のうちの少なくとも一つの装置の実行反応を定める装置から独立した制御ロジックプログラムを翻訳するための手段２２２を有する。翻訳するための手段２２２は、装置から独立した制御ロジックプログラムを受信して、制御ロジックプログラムを、特定されたか又は選択される装置で実行可能な装置特有の制御ロジックプログラムコードに翻訳するように構成される。翻訳するための手段２２２は、制御ロジックプログラムを、送信するための手段２２４に供給するように構成される。送信するための手段２２４は、制御ロジックコードを、前記選択される装置に送信するように構成される。更に装置２００は、前記選択される装置のサポートロジックを適応するための手段２２６を有する。適応するための手段２２６は、前記選択される装置のサポートロジックをインスタンス化するために、前記選択される装置にインスタンス化メッセージを提供するように構成される。
【００７１】
翻訳するための手段２２２は、制御ロジックコードが割り当てられる前記選択される装置からみて制御ロジックコードを最適化するために、前記選択される装置の装置ロジックを考慮に入れる。従って、装置２００は、前記選択される装置の装置ロジックを受信するように構成される。更に、翻訳するための手段２２２は、前記選択される装置に対応する装置ロジックに基づいて、前記選択される装置を選択するように構成される。従って、翻訳するための手段２２２は、制御ロジックコードを実行する選択される装置を定める選択のための追加手段を有する。選択される装置を選択することは、制御ロジックコードを選択される装置に適応させることを可能にするために、制御ロジックプログラムの翻訳の前か間に、好ましくは実行される。 
【００７２】
ネットワーク化された制御システムの複数の装置の実行反応は、複数の制御ロジックプログラムによって制御される。このように、装置２００は、複数の制御ロジックプログラムを受信し、翻訳して、複数の制御ロジックコードを出力するように構成される。前記複数の制御ロジックコードは、前記ネットワーク化された制御システムの複数の装置で異なるものに割り当てられる。あるいは、複数の制御ロジックコード又は多数の制御ロジックコードは、同じ装置に割り当てられる。特定のロジックプログラムコードの選択される装置を選択するときに、翻訳するための手段２２２は、異なる制御ロジックプログラムを考慮に入れる。適応するための手段２２６は、制御ロジックコードが割り当てられる異なる装置のサポートロジックを適応させるように構成される。
【００７３】
実施例によると、装置２００は、他の制御ロジックプログラムを受信し、翻訳するか、又はネットワーク化された制御システムの初期化の後、他の制御ロジックコードを出力するように構成される。このように、他の制御ロジックコードは、動作の間、ネットワーク化された制御システムを更新する。前記他の制御ロジックコードは、選択される装置にすでに実行されている制御ロジックコードを置換する。
【００７４】
新しい制御機能が、すでに動作しているネットワーク化された制御システムに加えられる場合には、ロジックデザインは上記の通りである。コンパイラ機能は、このとき新規な制御ロジックを実行コードに翻訳する。新規なロジックを装置に割り当てるために、既存のロジックの分配が考慮されてもよい。さらにまた、サポートロジックをインスタンス化することは、すでにシステムにあるサポートロジックへの追加である。
【００７５】
実施例によると、制御ロジックをデザインし、ネットワーク化された制御システムを初期化する、すなわちセットアップするプロセスは、ロジックデザイン、コンパイル、システム設定及び保守ステップを含む。 
【００７６】
ロジックデザインは、ネットワーク化された制御システムのユーザ又はデザイナーによって実行され、ネットワーク化された制御システム内のすべての装置ロジックの収集での制御ロジックプログラムの開発を含む。この「デザインビュー」は、装置を特定せずに実行される。関連した実行制御ロジックコードが実行システムで実行される。好ましい実施例において、前記ロジックデザインは、グラフィック・ツールを使用してなされる。
【００７７】
前記ロジックデザインにおいて作成される制御ロジックプログラムのコンパイルは、自動化されて実行される。実行システムのための実行可能制御ロジックコード（例えばバイトコード）への制御ロジックプログラムの翻訳は、動作の間制御ロジックコードが実行される装置への制御ロジックコードの割当てを含む。前記コンパイル・ステップは、更に、前記制御ロジックコードを実行するために必要な情報の通信を実現しているサポートロジックのインスタンス化を含む。
【００７８】
システムセットアップは、ネットワーク及びアプリケーション設定の典型的ステップの他に、割り当てられた装置への制御ロジックコードのアップロードを含む。
【００７９】
システムにすでにある制御ロジックを変える必要なしに、新規なロジックで以前のステップを単に繰り返し、したがって新規なロジックをダウンロードすることによるスタートアップの後、システム保守によって、新規な制御ロジックがネットワーク化された制御システムに容易に加えられることができる。
【００８０】
実行時に、装置の実行反応及び装置間の関係を定める制御アプリケーションは、必要な所で、装置の間に情報の通信のためのサポートロジックを展開する割り当てられた装置上で制御ロジックコードを実行することによって実現される。
【００８１】
制御機能の後の追加は、システムにすでにある制御ロジックを変える必要なく、ロジックデザインからエグゼキューターアップロード及びサポートロジックインスタンス化までステップを繰り返すことによって容易である。
【００８２】
実施例によると、コンパイル・プロセスステップは、実行可能制御ロジックコードへの制御ロジックプログラムの翻訳のステップ、制御ロジックに対する実行選択される装置の割当てのステップ、システム状態変数へのマスター装置の割当てのステップ及びサポートロジックの自動インスタンス化のステップを含む。
【００８３】
実行システムのための実行可能制御ロジックコード（例えばバイトコード）への制御ロジックプログラムの翻訳のステップは、プログラミング言語の特性に依存して当業者に既知のようになされる。
【００８４】
制御ロジックへの実行装置の割当てのステップは、制御ロジックコードの各部分を制御ロジックが実行される目標システムの装置に割り当てる（すなわち装置の処理ユニットによって）ことを含む。前記制御ロジックコードの割当ては、例えばユーザが制御ロジックプログラムを、関係した制御ロジックコードが最終的に動作する装置に割り当てる態様で、手動でなされる。このプロセスを補助するために、例えば、デフォルト実行する装置が、出力状態変数又は制御ロジックコードの出力状態変数のマスター装置であるというデフォルトの規則が、特定される。
【００８５】
好ましい実施例において、制御ロジックの割当ては、コンピュータ制御されるか、又は自動的にコンパイラ・プログラムによってなされる。割当ては、装置の能力及びリソースの考慮の下でと同様に制御ロジックプログラムにおける装置の関係を分析することによって実行される。例えば、スイッチＹが不揮発メモリを有しないことがわかる場合、「ランプＸは、スイッチＹによって薄暗くされる」制御ロジックから制御ロジックコードは、ランプＸに割り当てられる。メモリは、ロジック割当てプロセスによって考慮に入れられることができる装置機能又は装置リソースの単なる１つの実施例である。実行時に、実行可能制御ロジックコードは、割り当てられた装置の実行環境において実行される。
【００８６】
システム状態変数へのマスター装置の割当てのステップは、いかなるユーザー定義のシステム状態変数も目標システムの装置に割り当てることを含む。このとき、この装置は、装置状態変数に類似したこの状態変数のマスター装置であり、このことは実行システムで、この装置が状態変数のインスタンスを保持し、このインスタンスの値が状態変数に対する"マスター"値として扱われることを意味する。マスター装置へのシステム状態変数の割当ては、ユーザによって手動でなされる。好ましい実施例において、この割当ては、これらの能力又はリソースの考慮の下、制御ロジックプログラムの装置の関係を分析することによって、コンピュータ制御されるか、又は自動的になされる。
【００８７】
制御ロジックコードを実行するために必要な情報の通信を実現するサポートロジックの自動的インスタンス化のステップは、実行装置から独立した制御ロジックのデザインを許容する。本発明によると、各制御ロジックコードは、一つの自由に選択可能な、割り当てられた装置で実行される。
【００８８】
状態変数が制御ロジックコードによって読み込まれる場合、又は状態変数が制御ロジックコードによって変えられる場合、状態変数は、制御ロジックコードに「含まれる」と呼ばれる。制御ロジックによって読み込まれる状態変数は、制御ロジックコードに関係するイベント（例えばスタート又は停止）において使用される状態変数もカバーする入力状態変数である。前記制御ロジックコードによって変えられる状態変数は、出力状態変数である。状態変数は、制御ロジックコードの入出力状態変数両方でありえる。各状態変数は、唯一１台のマスター装置に属する。
【００８９】
１つの制御ロジックコードを考慮するので、各関連のある状態変数は、装置がこの状態変数に対するマスター装置である場合装置の内部であり、又は他の装置がこの状態変数に対するマスター装置である場合外部であるかのいずれかである。状態変数が内部である場合、状態変数の現在の値は、装置のハードウェア又はソフトウェアによって直接制御ロジックコードの実行環境に、容易に提供されることができる。すべての外部の状態変数に対して、前記制御ロジックコードが正しい状態変数値で常に実行されることを確実にするサポートロジックがインスタンス化される。
【００９０】
例えば、「ランプＸがスイッチＹによって調光される」制御ロジックからの制御ロジックコードがランプＸに割り当てられた後、サポートロジックは、実行時に、スイッチＹによってセットされ調光しているレベルが、ランプＸに利用可能となることを保証しなければならない。
【００９１】
図３は、本発明の実施例によるネットワーク化された制御システムを示す。ネットワーク化された制御システムは、複数の装置１００ａ、１００ｂ、１００ｃと、収集のための手段３３２と、生成するための手段３３４と、装置２００とを有する。ネットワーク化された制御システムの装置１００ａ、１００ｂ、１００ｃ及び手段３３２、３３４、２００は、通信システムによって接続される。
【００９２】
装置１００ａ、１００ｂ、１００ｃは、図１に記載されているタイプである。各装置は、対応する装置ロジックによって特定される。前記装置ロジックは、対応する装置のハードウェア又はソフトウェア状態の属性を表す。
【００９３】
収集のための手段３３２は、複数の装置１００ａ、１００ｂ、１００ｃの装置ロジックを集めるように構成される。更に、手段３３２は、複数の装置１００ａ、１００ｂ、１００ｃの少なくとも一つの装置１００ｂの実行反応を特定するように構成される。少なくとも一つの装置１００ｂの実行反応は、少なくとも一つの装置１００ｂに対応する装置ロジックを考慮することによって特定される。収集のための手段３３２は、特定された実行反応を、生成するための手段３３４に提供するように構成される。生成するための手段３３４は、収集のための手段３３２により提供される実行反応を表す少なくとも一つの装置から独立した制御ロジックプログラムを作成するように構成される。前記少なくとも一つの装置から独立した制御ロジックプログラムは、前記少なくとも一つの装置１００ｂの実行反応を定める。生成するための手段３３４は、少なくとも一つの装置から独立した制御ロジックプログラムを装置２００に提供するように構成される。
【００９４】
装置２００は、図２にて説明したような装置である。装置２００は、前記少なくとも一つの装置から独立した制御ロジックプログラムを受信して、前記少なくとも一つの装置から独立した制御ロジックプログラムを少なくとも一つの装置に特有の制御ロジックコードに翻訳するように構成される。この実施例によれば、装置２００は、第３の装置１００ｃに制御ロジックコードを割り当てる。第３の装置１００ｃは、第２の装置１００ｂの実行反応を制御する制御ロジックコードを実行するように構成される。
【００９５】
制御ロジックコードを実行する装置としての第３の装置１００ｃの選択及び実行反応が制御ロジックコードによって制御される装置としての第２の装置１００ｂの選択は、単なる例示である。
【００９６】
実施例によると、収集のための手段３３２には、ユーザが少なくとも一つの装置１００ｂの実行反応を特定することができるインタフェースを有する。前記インタフェースによって、更にユーザは、選択される装置１００ｃを定めることができる。前記インタフェースは、グラフィカル・インタフェースである。
【００９７】
収集するための手段３３２は、少なくとも一つの装置の実行反応が依存する他の装置に対応する他の装置ロジックに基づいて、前記少なくとも一つの装置１００ｂの実行反応を特定するように構成される。例えば、第２の装置１００ｂの実行反応が第１の装置１００ａの状態に依存する場合、収集するための手段３３２は、第２の装置１００ｂの実行反応を特定する第１及び第２の装置１００ａ、１００ｂの装置ロジックを考慮に入れる。
【００９８】
収集するための手段３３２は、すべての装置ロジックに基づいて、すべての装置１００ａ、１００ｂ、１００ｃの実行反応を特定するように構成される。すべての装置１００ａ、１００ｂ、１００ｃの実行反応を定めるために、生成するための手段３３４は、複数の異なる装置から独立した制御ロジックプログラムを提供するように構成される。
【００９９】
ロジックデザインは、本発明によるネットワーク化された制御システムのインスタンス化の第１のステップである。ロジックデザインは、ネットワーク化された制御システムで、すべての装置ロジックの収集での制御ロジックの開発を含む（「デザインビュー」）。
【０１００】
前記制御ロジックは、物理的装置で表わされて、直接特定されてもよい。あるいは、前記制御ロジックは、物理的装置で表わされて特定されなくてもよい。ロジックデザインプロセスは、いくつかの抽象概念レベルをカバーする。いくつかの抽象概念レベルをカバーする例は、「すべての部屋で、その部屋のすべてのランプは、同じ部屋のスイッチによって調光される」という定義である。ロジックデザインプロセスは、グラフィック・ツールの使用を含んでもよい。
【０１０１】
好ましい実施例によると、本発明によるデザインプロセスは、実行システムで実行される装置から独立して、制御ロジックを常に考慮する。例えば、ユーザは通常、「ランプＸは、スイッチＹによって調光される」というような制御ロジックを特定することに興味があるだけである。実行システムで、ロジックのこの部分は、ユーザに見える様に装置Ｘ及びＹの反応を変えることなく、装置能力又はリソースに依存して、ランプＸに、スイッチＹに、又はシステムの他の装置にも実行されることができる。
【０１０２】
ネットワーク化された制御システムに関するデザインビューは、多くのコンパイル可能なロジックプログラムからなる、コンパイル可能なロジックによって表される。好ましい実施例によると、コンパイル可能なロジックプログラムは、人間が読み取れるスクリプトによって表される。コンパイル可能なロジックプログラムは、ロジックデザインプロセスの出力である。この出力は異なるやり方、例えば、全て又はいくらかの物理的装置の装置ロジックの収集で直接特定されるか、又は目標システムの本当の物理的装置に対するこれらの仮想装置の割当てを介して、標準化されたタイプの仮想装置上の抽象的なロジックからの翻訳プロセスで、生成されてもよい。
【０１０３】
コンパイル可能なロジックプログラムは、目標システムに属しているすべての装置の装置ロジックの一様な表現で、すなわち、ネットワーク化された制御システムに属している装置のすべての装置状態変数で定められる。さらにまた、ユーザは、装置から独立して、グローバルな状態情報、例えば、「自宅に誰もいない」ようなグローバルなシステム状態を表している状態変数又は平均値若しくは集積された値を表しているシステム状態変数を定める。制御ロジックは、基本的に、あるプログラミング言語で作成された状態変数上での動作から成るだろう。制御ロジックプログラムの構文は、最新技術のスクリプト言語に関してである。
【０１０４】
制御ロジックプログラム仕様は、イベントの定義をさらに含む。イベントは、特定の制御ロジックプログラムがトリガーされるか又は止められるという態様である。
【０１０５】
好ましい実施例において、制御ロジックプログラムは、この制御ロジックプログラムによって表される制御ロジックに関係している状態変数のいずれかの変化のデフォルトによってもトリガーされる。ユーザ又はロジックデザイナーは、これらの値が変化する場合、前記制御ロジックプログラムをトリガーする状態変数のセットを制限するか又は拡張することによって、又は、制御ロジックプログラムがトリガーされる前に、満たされなければならない状態変数値の条件によって、これを更に洗練する。絶対の又は相対的な時間は、考えられるトリガーのうちの１つである。
【０１０６】
この制御ロジックプログラムのすべての指示が実行されたあと、デフォルトによって、特定の制御ロジックプログラムは止まる。しかし、ユーザは、状態変数値が変化する場合、実行制御ロジックプログラムを止めることをトリガーする状態変数も定めてもよい。トリガーを始めることに関して類似の任意の改良が、定められてもよい。
【０１０７】
開示された発明のいくつかの拡張実施例は、可能である。例えば、ユーザは、デザインビューのイベントの条件を特定してもよい。これらの条件は、加入メカニズムを実装しているサポートロジックに含まれる。この包含は、関係した条件が満たされる場合、エグゼキューターはトリガーされるだけであるか、及び／又は、変化通知が送信されるだけの態様でもよい。条件は、例えば、絶対であるか相対的な状態変数値変化、及び／又は変化通知の最小頻度か若しくは最大頻度に関係する。
【０１０８】
上述したことは、分配態様から独立している制御アプリケーションの開発及び設立を可能にするシステムを記述し、これによって、制御ロジック（ユーザがそれを見るような）及びロジックデザインプロセスの複雑さを減らし、装置に制御ロジックの自由な分配を可能にし、これはアプリケーション開発の後、コンピュータ制御の／自動化システム最適化を可能にさせる。結局は、この種のシステムは、非技術的なユーザが、最適なやり方で、また容易に制御ロジックを定めセットアップすることを許容する。
【０１０９】
本発明によると、制御ロジックをデザインし、ネットワーク化された制御システムをセットアップするプロセスは、以下のステップを有する。
・ロジックデザインするステップ（ユーザ／デザイナーによる）。
装置を特定することなく、目標システム（「デザインビュー」）のすべての装置ロジックのコレクションでの制御ロジックの開発。関連した実行コードが実行システムで実行される実施例において、ロジックデザインは、グラフィック・ツールを使用してなされる。
・コンパイル（自動化した）：（装置に対するエグゼキューターの割当てを含む）実行システム（例えばバイトコード）のための実行可能（制御ロジック）コード（エグゼキューターと呼ばれる）への制御ロジックプログラムの翻訳
これらは、動作中実行される。エグゼキューターを走らせるために必要な情報の通信を実現するサポートロジックのインスタンス化。
・システムセットアップ。ネットワーク及びアプリケーション構成の典型的ステップの他に、このステップは、割り当てられた装置にエグゼキューターのアップロードも含む。
・システムメンテナンス。新規な制御ロジックは、すでにあるシステムの制御ロジックを変える必要なしで、単に新規なロジックで上記ステップを繰り返し、したがって、それをダウンロードすることによって、スタートアップの後、目標システムに容易に加えられることもできる。
【０１１０】
本発明によるシステムの柔軟性は、特にアプリケーションロジック（ＣｏｎｔｒｏｌＬｏｇｉｃＰｒｏｇｒａｍｓ（ＣＬＰ）と呼ばれる）を定める手段の仮編成済み制限によって成し遂げられる。ＣＬＰは、すべての装置―装置状態変数（ＳＶ）の装置ロジックの一様な表現で定められる。加えて、ユーザは、グローバルな状態情報（装置から独立している）を表している「システム状態変数」を定めてもよい。制御ロジックは、基本的に、あるプログラミング言語（例えば最新技術のスクリプト言語に関しての構文で）で定式化される状態変数上の動作から成る。
【０１１１】
より複雑なアプリケーション（例えば装置のグループの制御及び管理）のための専用の概念は、小さいメモリ使用量及び低い帯域幅実施態様のような制御システムの典型的要件を伴うロジックプログラミングのための制限された手段の場合、特に、更なる効果がある。以下に、ネットワーク化された制御システムのグループ機能の効果的な実現を可能にする、本発明の他の実施例が記載されている。目標システムは、装置のグループを制御しているアプリケーションを含む、上記の通りのネットワーク化された制御システムである。グループは、ロジックデザイン及び保守のための基本的概念である。デザインビューにおいて、装置グループは、一組の装置の共通の状態変数（例えば、「すべてのランプの調光レベルを値Ｘにセットする」）上の動作、又は一組の値（例えば「一群のセンサで測定された平均昼光値」）上の動作を定めるようにする。
【０１１２】
グループは、タイプ化されたグループ（例えばタイプのランプのグループ）につながる抽象的なデザイン（例えば「リビングルームのすべてのランプ」）から引き出すことができる。グループは、物理的装置（例えば部屋（タイプを持たない「任意のグループ」）のすべての装置）を任意にグループ化することによって、直接のデザインにおいて手動で定められてもよい。
【０１１３】
デザインビュー
デザインビューのグループの定義は、グループに属しているメンバー装置のリストを含み、装置定義に類似した他の部品を含んでもよい。
・グループＩＤ：グループのユニークな識別子。
・グループ状態変数（ＳＶ）：グループＳＶは、グループ化された装置の同じタイプ（名前）の装置ＳＶの一組を表す。デザインビューにおいて、グループＳＶは、グループ―ＩＤ．ＳＶ―ｎａｍｅと呼ばれる。
実施例：グループＳＶ"Ｇｒｏｕｐ．ＤｉｍＬｅｖｅｌ"とは、グループに属しているすべての装置の装置ＳＶ"ＤｅｖｉｃｅＸ．ＤｉｍＬｅｖｅｌ"のセットをいう。
−意味、すなわちグループＳＶへの命令の意味は、特定されてもよいが、単純であろう。例えば、Ｇｒｏｕｐ．ＳＶｘを変えることは、各メンバー装置で関係する装置ＳＶｘを変えることを導く。命令に加えて、グループＳＶは、すべてのメンバー装置のすべての関係する装置ＳＶｘ値の平均値を返す平均（Ｇｒｏｕｐ．ＳＶｘ）のようなデザインビュー動作も許容するだろう。
−タイプ化されたグループにおいて、グループＳＶは、関係する装置タイプの装置ＳＶによって与えられる。ＣＬＰにおいて使用されるこれらグループＳＶだけが関連することに留意されたい。
−任意のグループにおいて、グループＳＶは、グループ内の装置のすべての装置ＳＶによって与えられる。任意のグループのグループＳＶへの命令は、関係する装置ＳＶ（グループＳＶタイプの中で）の一組と単に関連する。
・グループ位置：任意には、グループは位置情報を持ち、これは、グループのすべての装置が同じ位置情報を持つことを意味する。
【０１１４】
コンパイル
コンパイラは、グループ（デバイス・アドレスに類似する）へ、ＣＬＰにおいて使用するグループＳＶ当たりに、アドレスを割り当て、前記コンパイラは、（どのようなグループロジックがシステムで用いられるかに依存して）最大２つのシステムＳＶを生成する：
・（装置の状態変数に関係する）グループＧに与えられる値を表しているＧ．ＳＶ―ＩＤ
このＳＶは、グループのすべての装置に命令（すなわち、対応する装置ＳＶを変える）を与えるために用いられる。この使用のために、Ｇ．ＳＶ―ＩＤが、ＣＬＰのステートメント：（すべてのメンバーＳＶのＤ．ＳＶ―ＩＤを〈ｖａｌｕｅ〉にセットすることに至る）Ｇ．ＳＶｋ：＝＜ｖａｌｕｅ＞において使用される。これらの実際値も独立に変化する（例えば実世界のイベントによって）一方、グループ化された装置ＳＶを変える最後の要求を含むので、このＳＶが一種の「公称値」ＳＶであることに注意されたい。
・すべての関係した装置ＳＶのリストを表しているＧ．ＳＶ―ＩＤ．ｔａｂ
このＳＶは、グループ化された装置ＳＶのセットを読み込んで／評価する「平均」のような機能を実現するために用いられる。
【０１１５】
その後、コンパイラは、上記の通りにマスター装置にこれらのシステムＳＶを割り当てる。次のステップでは、コンパイラは、上述され定められたサポートロジックの一部として、サポートエグゼキューター（ＣＬＰから生成されるエグゼキューターに加えて）を生成する。
グループＳＶ値の変化：すべてのメンバーＳＶのＤ．ＳＶ―ＩＤを〈ｖａｌｕｅ〉にセットすることに至るステートメントＧ．ＳＶｋ：＝＜ｖａｌｕｅ＞を含むＣＬＰがある場合、これは以下のように実現される。
−グループＧの（同じタイプの関係した装置ＳＶを持つ）各装置Ｄは、トリガーＳＶ（トリガーだけ、コピー不要）及びロジックとしてＧ．ＳＶ―ＩＤを持つ（コンパイラ生成された）エグゼキューターを得る：Ｄ．ＳＶ―ＩＤ：＝Ｇ．ＳＶ―ＩＤ（すなわち、Ｇ．ＳＶ―ＩＤが変えられる場合、Ｄ．ＳＶ―ＩＤはしたがって、変えられる）
−Ｇ．ＳＶ―ＩＤのマスター装置は、関係する加入情報を得る。実施例において、グループＩＡアドレスＧが、加入目的地として（のみ）使用される。すべてのメンバー装置は、アドレスを格納して、目的地としてグループ・アドレスを持つメッセージを（また）聞く。この場合、ネットワーク抽象概念レイヤは、放送又はマルチキャスト・メッセージとして変化通知を送信する。あるいは、Ｇ．ＳＶ―ＩＤのマスターは、加入者としてメンバー装置のリストを持つ。
【０１１６】
この方法の効果は、装置が既存のエグゼキューター（下記参照）を変えずに後のグループに加えられることができるということである。任意のグループにおいて、関係する互換性を持つＳＶの装置だけが、サポートエグゼキューターを得るだろう。
・グループＳＶの他の（好まれない）扱い：
−Ｇ．ＳＶ―ＩＤのマスター装置は、トリガーＳＶとしてＧ．ＳＶ―ＩＤを持つ（コンパイラ生成される）エグゼキューターと、ロジックステートメントＤ．ＳＶ―ＩＤ：＝Ｇ．ＳＶ―ＩＤを得る（すべてのメンバー装置のためのすなわち出力状態変数Ｄ．ＳＶ―ＩＤを持つ）。
−このために、Ｇ．ＳＶ―ＩＤのマスター装置は、関係する参照情報を得る。オプション間の選択は、コンパイラによってなされることができる。
・グループＳＶ（入力として）に対する読み出し／評価機能： 
ＣＬＰがすべてのメンバー値（例えば「平均」）上の動作を含む場合、システムＳＶのＧ．ＳＶ―ＩＤ．ｔａｂが定められ、マスター装置に割り当てられる。
−Ｇ．ＳＶ―ＩＤ．ｔａｂは、すべてのメンバー装置ＳＶ（事実分配されたＳＶリポジトリーの部分）の値を持つ動的テーブル｛（Ｄｉ、Ｄｉ．ＳＶ―ＩＤ）、ｉ＝１．．ｎ｝である。
−グループＧの各装置Ｄは、トリガーＳＶとしてＤ．ＳＶ―ＩＤ及びロジックを持つ（コンパイラ生成される）サポートエグゼキューターと、Ｇ．ＳＶ―ＩＤ．ｔａｂのためのマスター参照情報とを得る：
−Ｇ．ＳＶ―ＩＤ．ｔａｂ：＝｛（Ｄ，Ｄ．ＳＶ―ＩＤ）｝（１つの要素［Ｄ，Ｄ．ＳＶ―ＩＤ］を持つテーブル）。
−Ｇ．ＳＶ―ＩＤ．ｔａｂのマスターでの、新規な値は、以下の通りに解釈される：Ｄがすでにテーブルにある場合：そのとき値を重ね書き。さもなければ、テーブルに加える。
このとき、平均（Ｇ．ＳＶ―ＩＤ）のような機能は、入力としてＧ．ＳＶ―ＩＤ．ｔａｂを持つエグゼキューターコードに翻訳できる。
−拡張：Ｇ．ＳＶ―ＩＤ．ｔａｂは、要求あり次第Ｄ．ＳＶ―ＩＤ値を（引く）得るために用いられるメンバー装置に対する単なる参照リストでもありえる。
【０１１７】
ＣＬＰにおいて使われるこれらのグループＳＶだけが確立されることに、再度留意されたい。例えばすべてのメンバー値の平均のようなＣＬＰを配備する機能がない場合、Ｇ．ＳＶ―ＩＤ．ｔａｂＳＶは生成されないだろう。
【０１１８】
準備及び保守
上述のように、グループロジックの開示された実現はまた、グループに出入りする装置を加えるか又は取り外すような保守手順に対して効果がある。
・グループロジックによって制御されるだけである装置を加えること（例えばすでに既存のランプ・グループにランプを）
【０１１９】
装置Ｄを（例えばシステム・リポジトリーから）グループ定義が知られなければならないグループに加えること。
−グループＳＶのＧ．ＳＶ―ＩＤがある場合、このとき、このＳＶの関係する外部のインスタンスは、上記のサポートエグゼキューター（Ｄ．ＳＶ―ＩＤ：＝Ｇ．ＳＶ―ＩＤ）と同様に新規な装置上にインストールされる。さらにまた、グループ・アドレスＧは、装置Ｄが聞くアドレスのリストに加えられる。
−Ｇ．ＳＶ―ＩＤのマスターが加入者リストを使用する場合、新規な装置はメンバーとしてその存在を発表しなければならない。
−グループＳＶのＧ．ＳＶ―ＩＤ．ｔａｂ及び関係したロジックがある場合、新規な装置は、マスター参照（マスター装置のアドレス）を決めて、サポートエグゼキューター（Ｇ．ＳＶ―ＩＤ．ｔａｂ：＝｛（Ｄ、Ｄ．ＳＶ―ＩＤ）｝）をインストールすることを必要とする。
【０１２０】
大きい効果は、新規な装置を集積するすべてのステップが新規な装置でなされるということであり、すなわち、すでに既存の装置上の何も変える必要がないことである。
【０１２１】
・グループロジックだけを持つ装置を除外
グループロジックだけを持つ装置は、システム（まだ完全に機能的なシステム）の残りを何も変える必要なしで、単に取り除かれることができる。
【０１２２】
他の実施例において、ガーベージ・コレクション・メカニズムは、Ｇ．ＳＶ―ＩＤ．ｔａｂの表の使われていないエントリを削除するために使用される。
【０１２３】
要約された本発明が、以下に説明される。
【０１２４】
−（最終的な実行コードが走るべき、装置の何れかを指示することなく、よって、通信に関係する態様に独立して）制御ロジックプログラム（装置の実行反応及び装置間の関係を定める）がシステムの特定の又はすべての装置ロジックの収集の「デザインビュー」においてユーザにより特定され、
-特定された制御ロジックプログラムを実行コードに自動的に翻訳し、例えば、装置機能又はリソースを考慮することによって、前記実行コードを最適化された態様で実行時に前記実行コードを実行する装置に割り当て、
−コンパイラ・プログラムが、特定の制御ロジックプログラムを実行可能なコードに自動的に翻訳し、例えば装置能力及びリソースを考慮に入れながら、前記実行可能なコードを適当なやり方で実行時にそれを実行する装置に割り当て、実行時にこのサポートロジックが前記制御ロジックに含まれる装置間の情報のすべての必要な通信のために提供されるように、前記装置でサポートロジックを自動的にインスタンス化し、
−すべての装置は、コンパイラ機能からアップロードされた実行可能な制御ロジックコードを走らせ、例えば、前記コンパイラプログラムによる適当なインスタンス化の後、前記制御ロジックに透過的な態様でホストされる制御ロジックに必要な情報のすべての通信を提供するサポートロジックをホストするように準備される、
ネットワーク化された制御システム。
【０１２５】
「デザインビュー」で特定される前記制御ロジックから取り出される実行可能なコードを実行するために実行環境を実施し、例えばコンパイラプログラムによる適当なインスタンス化の後、前記制御ロジックに透過的な態様ですべてのホストされる制御ロジックに必要な情報のすべての通信を提供するサポートロジックを実施するネットワーク化された制御システムの装置。
【０１２６】
システムのすべての装置ロジックの収集を提供する「デザインビュー」で特定される制御ロジックプログラムを、実行可能なコードに翻訳し、例えば装置の能力又はリソースを考慮に入れることにより、実行可能なコードを最適なやり方で実行時にそれを実行する装置に割り当て、実行時にこのサポートロジックが前記制御ロジックに含まれる装置間の情報のすべての必要な通信のために提供されるように、前記装置のサポートロジックを自動的に構成する、ネットワーク化された制御システムのためのコンパイラプログラム。
【０１２７】
システム内にすでにある制御ロジックを変化する必要なしに、ロジックデザインから制御ロジックコード（エグゼキューター）アップロード及びサポートロジックインスタンス化まで同じステップを繰り返すことにより、システムスタートアップ後にも制御ロジックが加えられることができる上述のネットワーク化された制御システム。
【０１２８】
本発明による少なくとも一つの新しい装置から独立した制御ロジックプログラムを生成するステップと、新しい制御ロジックプログラムを、複数の装置のうちの選択される装置で実行可能な制御ロジックコードに翻訳するステップと、前記制御ロジックコードを前記選択される装置に送信するステップと、本発明により前記制御ロジックプログラム内の入力として用いられる状態変数を持つすべての装置のサポートロジックと、選択される装置のサポートロジックとを適応させるステップ（この場合はインクリメント動作、すなわち、存在するサポートロジックに情報を加えることを意味する）とを有する、動作時、ネットワーク化された制御システムに新しい機能を加えるための方法。
【０１２９】
グループロジックがグループ状態変数で定められるネットワーク化された制御システム。
【０１３０】
グループロジックを、上述のようなサポートエグゼキューター及び状態変数Ｇ．ＳＶ−ＩＤ及びＧ．ＳＶ−ＩＤｔａｂに、コンパイラプログラムが自動的に翻訳するネットワーク化された制御システム。
【０１３１】
グループＳＶを値に設定することが、グループＳＶのマスターインスタンスを前記値に変化するステップと、前記グループＳＶのすべての加入装置の関係する変化通知を送信するステップとにより、すべての関係するメンバー装置ＳＶに同じ値を設定することを導き、すべての加入装置は関係する装置ＳＶをグループＳＶの新しい値に変化するエグゼキューターを持つ、ネットワーク化された制御システム。
【０１３２】
変化通知が目的地としてグループアドレスを使用し、すべてのグループメンバーもこのアドレスへのメッセージを聞く、上述のネットワーク化された制御システム。
【０１３３】
グループロジックだけにより制御される装置を加えることは、システムに既に属している装置に何の変化も実行させることなくなされることができる、ネットワーク化された制御システム。
【０１３４】
装置をシステムに加えることが、グループアドレスを、聞く必要のあるアドレスのリストに加え、上述のようにサポートエグゼキューター及びグループＳＶインスタンスを確立することによりなされる、ネットワーク化された制御システム。
【０１３５】
本発明の少なくとも幾つかの機能は、ハードウェア又はソフトウェアにより実施されてもよい。ソフトウェアで実施する場合、一つの又は複数の標準マイクロプロセッサが、本発明を実施する一つの又は複数のアルゴリズムを使用するのに用いられてもよい。
【０１３６】
「有する」という用語は、他の要素又はステップを排除しないし、「ａ」「ａｎ」は複数を排除しないことに留意すべきである。更に、請求項中のいかなる参照符号も本発明の範囲を制限するものと解釈してはならない。
【図１】
2010518502.tif 000003
【図２】
2010518502.tif 000004
【図３】
2010518502.tif 000005
【手続補正書】
【提出日】平成22年1月22日(2010.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
対応する制御ロジックプログラムの翻訳である、装置に特有のソフトウェアプログラムである制御ロジックコードであって、複数の装置のうちの少なくとも一つの装置の実行反応を制御することを可能にする当該制御ロジックコードを受信するための受信器と、前記制御ロジックコードを実行するための実行環境と、前記制御ロジックコードに適応できるサポートロジックとを有し、前記サポートロジックは、前記制御ロジックコードを実行するために必要な状態変数を交換するために通信リンクを提供する、複数の装置を含むネットワーク化された制御システムの装置。
【国際調査報告】
2010518502.tif 000006
2010518502.tif 000007