(57)【要約】【課題】プロセス制御システムの効率的な構成方法を提供する。【解決手段】コンピュータシステムにおけるプロセス制御ストラテジを開発するための方法は、制御操作に関連する第１の複数のコンポーネントを有しするモジュールテンプレートを提供するステップと、モジュールテンプレートの第１の複数のコンポーネントのうちの１つ以上の選択を受け取るステップと、モジュールテンプレートに基づいて、モジュールのインスタンスを生成するステップであって、第１の複数のコンポーネントのうちの選択された１つ以上のもののみをインスタンス化するステップを含む、ステップと、モジュールの生成されたインスタンスをプロセス制御ストラテジに関連付けるステップとを含む。【選択図】図４
2011040059.tif 000002
【特許請求の範囲】
【請求項１】
プロセスプラントのプロセス制御ストラテジを開発するための、コンピュータシステムにおけるプロセス制御構成方法であって、
前記コンピュータシステムのユーザインターフェース上に、複数のコンポーネントを有するモジュールテンプレートを提供するステップであって、前記複数のコンポーネントは、前記プロセスプラントにおいてプロセス制御操作を行うための、複数の少なくとも部分的に相互接続された論理ブロックと、それに関連付けられる多数のパラメータとを含む、ステップと、
１組の選択された１つ以上のコンポーネントおよび１組の選択されていないゼロ以上のコンポーネントを定義するように、前記ユーザインターフェースを介して、前記モジュールテンプレートの前記複数のコンポーネントのうちの１つ以上の選択を受け取るステップと、
前記モジュールテンプレートに基づいて、前記コンピュータシステム上に、モジュールインスタンスを生成するステップであって、前記１組の選択された１つ以上のコンポーネントを含め、かつ前記１組の選択されていないゼロ以上のコンポーネントを含めないように、前記モジュールインスタンスをインスタンス化するステップを含む、前記モジュールインスタンスを生成するステップと、
前記生成されたモジュールインスタンスを、前記プロセス制御ストラテジに関連付けるステップであって、前記生成されたモジュールインスタンスに従って、前記プロセスプラントにおいて稼動する物理的装置において使用するための、プロセッサ上で実行可能な１組の命令を生成するステップと、を含む、プロセス制御構成方法。
【請求項２】
ユーザインターフェース上に、前記生成されたモジュールインスタンスのグラフィック表示を表示するステップであって、前記１組の選択された１つ以上のコンポーネントに対応する表示要素を表示するステップと、前記１組の選択されていないゼロ以上のコンポーネントに対応する表示要素を表示しないステップとを含む、前記表示するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記複数のコンポーネントは、第１の複数のコンポーネントであり、前記モジュールテンプレートは、第２の複数のコンポーネントをさらに有し、前記モジュールインスタンスを生成するステップは、前記第２の複数のコンポーネントのそれぞれを、前記生成されたモジュールインスタンスの中に無条件に含めるステップをさらに含む、請求項１に記載の方法。
【請求項４】
複数のモジュールテンプレートを有するテンプレートライブラリを提供するステップをさらに含み、前記モジュールテンプレートを提供するステップは、前記複数のモジュールテンプレートのうちの１つの選択に応答して、前記モジュールテンプレートを提供するステップを含む、請求項１に記載の方法。
【請求項５】
前記モジュールテンプレートを提供するステップは、前記複数のコンポーネントを一覧表示し、前記複数のコンポーネントのそれぞれに対して各々の選択制御を有する、ダイアログ画面を表示するステップを含む、請求項１に記載の方法。
【請求項６】
前記ダイアログ画面は、スプレッドシートの１組のセルを定義する、複数の行および多数の列を有する前記スプレッドシートを含み、前記複数の行または前記多数の列のうちの一方は、前記モジュールテンプレートに基づいて生成される複数のインスタンスを指定し、前記複数の行または前記多数の列のうちの他方は、前記１組のセルのそれぞれが、前記複数のインスタンスの各々および前記複数のコンポーネントの各々に対応するように、前記複数のコンポーネントを指定する、請求項５に記載の方法。
【請求項７】
前記モジュールテンプレートは、前記１組の選択された１つ以上のコンポーネントからの一定のコンポーネントを関連付けることができる、複数の種類を指定し、前記方法は、
前記一定のコンポーネントに対する種類の選択を受け取るステップであって、前記種類の選択は、前記複数の種類のうちの１つを特定するステップを含み、
前記モジュールインスタンスを生成するステップは、前記種類の選択に従って、前記一定のコンポーネントをインスタンス化するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記複数の種類は、複数のプロトコル、複数のアラーム機能、またはフィードバックオプションとフィードフォワードオプションを含む、複数の信号オプションのうちの少なくとも１つに対応する、請求項７に記載の方法。
【請求項９】
前記生成されたモジュールインスタンスに対する変更要求を受け取るステップであって、前記変更要求は、前記一定のコンポーネントおよび前記複数の種類からの新規の種類を指定するステップと、
前記一定のコンポーネントを、前記新規の種類に関連付けるステップを含む、前記生成されたモジュールインスタンスを前記変更要求に従って更新するステップと、をさらに含む、請求項７に記載の方法。
【請求項１０】
前記モジュールテンプレートを定義するように、ユーザインターフェースを提供するステップと、
前記複数のコンポーネントのそれぞれを、任意属性に関連付けて、前記生成されたモジュールインスタンスの中の、前記複数のコンポーネントのそれぞれの任意存在を指定する制御を提供するステップと、をさらに含む、請求項１に記載の方法。
【請求項１１】
前記モジュールテンプレートに基づいて、前記モジュールインスタンスを生成するステップは、選択済オプション属性を前記モジュールインスタンスに関連付けるステップをさらに含み、前記選択済オプション属性は、前記複数のコンポーネントのそれぞれを特定し、前記特定されたコンポーネントが前記生成されたモジュールインスタンスの中に含まれるかどうかを指定する、請求項１に記載の方法。
【請求項１２】
前記選択済オプション属性は、ビットマスクである、請求項１１に記載の方法。
【請求項１３】
前記１組の選択された１つ以上のコンポーネントに従って、前記モジュールインスタンスの変更を制限するステップを含む、前記モジュールインスタンスを変更するためのインターフェースを提供するステップをさらに含む、請求項１に記載の方法。
【請求項１４】
前記選択は、第１の選択であり、前記１組の選択された１つ以上のコンポーネントは、第１の組の選択された１つ以上のコンポーネントであり、前記１組の選択されていないゼロ以上のコンポーネントは、第１の組の選択されていないゼロ以上のコンポーネントであり、前記モジュールインスタンスは、第１のモジュールインスタンスであり、
前記モジュールテンプレートの前記複数のコンポーネントのうちの１つ以上の第２の選択を受け取り、第２の組の選択された１つ以上のコンポーネントおよび第２の組の選択されていないゼロ以上のコンポーネントを定義するステップと、
前記モジュールテンプレートに基づいて、第２のモジュールインスタンスを生成するステップであって、前記第２の組の選択された１つ以上のコンポーネントを含め、前記第２の組の選択されていないゼロ以上のコンポーネントを含めないように、前記第２のモジュールインスタンスをインスタンス化するステップ含む、前記第２のモジュールインスタンスを生成するステップをさらに含み、
前記第１のモジュールインスタンスは、前記第２のモジュールインスタンスに含まれない、少なくとも１つのコンポーネントを含む、請求項１に記載の方法。
【請求項１５】
前記モジュールテンプレートに関連する、モジュールインスタンス特定要求を受け取るステップと、
前記プロセス制御ストラテジに関連し、かつ前記モジュールテンプレートに基づく、各モジュールインスタンスを特定するステップと、
対話型ユーザインターフェース上に、少なくとも各特定されたモジュールインスタンスが何であるかを記述する情報を表示するステップと、をさらに含む、請求項１に記載の方法。
【請求項１６】
前記１組の選択された１つ以上の任意コンポーネントに関連する、変更要求を受け取るステップと、
各特定されたモジュールインスタンスについて、前記１組の選択された１つ以上の任意コンポーネントに、前記変更要求を自動的に適用するステップと、をさらに含む、請求項１５に記載の方法。
【請求項１７】
前記モジュールインスタンスを生成するステップは、前記１組の選択された１つ以上のコンポーネントに関連する、履歴データの収集を可能にするステップをさらに含む、請求項１に記載の方法。
【請求項１８】
前記モジュールインスタンスを生成するステップは、前記モジュールをダイナモスクリプトに関連付けるステップをさらに含み、前記ダイナモスクリプトは、少なくとも前記１組の選択された１つ以上のコンポーネントに対応する、請求項１に記載の方法。
【請求項１９】
プロセスプラントのプロセス制御ストラテジを構成する際に使用するためのモジュールテンプレートを開発するための、コンピュータシステムにおけるプロセス制御構成方法であって、前記モジュールテンプレートは、コンピュータ可読媒体上にデータとして格納され、前記方法は、
前記コンピュータシステムに伴う対話型ユーザインターフェース上に、前記モジュールテンプレートの表示を提供するステップであって、前記モジュールテンプレートは、プロセス制御操作を行うための、複数のコンポーネントを有する、前記表示を提供するステップと、
前記対話型ユーザインターフェースを介して、要求を受け取り、任意コンポーネントを定義するように、前記複数のコンポーネントのうちの１つを任意属性に関連付けるステップと、
前記任意コンポーネントを、前記モジュールテンプレートに関連付けるステップと、を含み、
前記モジュールテンプレートは、前記少なくとも１つのモジュールインスタンスが、ユーザ入力に基づいて、前記任意コンポーネントを条件的に含めるか、または除外するように、前記プロセスプラントにおける１つ以上の物理的装置によって実行可能な１組の命令として、少なくとも１つのモジュールインスタンスを生成するように実行可能である、プロセス制御構成方法。
【請求項２０】
前記モジュールテンプレートの前記表示を提供するステップは、
ユーザインターフェース画面上に、複数の構造コンポーネントを提供するステップであって、前記複数の構造コンポーネントのそれぞれは、所定の機能に関連付けられる、前記複数の構造コンポーネントを提供するステップと、
前記複数の構造コンポーネントのうちの２つ以上の選択を受け取るステップと、
前記複数の構造コンポーネントのうちの前記選択された２つ以上の間の相互動作を記述する、コンポーネント相互動作情報を受け取るステップと、
前記複数の構造コンポーネントのうちの前記選択された２つ以上に関連する、１組のパラメータを受け取るステップと、
前記複数の構造コンポーネントのうちの前記選択された２つ以上と、前記コンポーネント相互動作情報と、前記１組のパラメータとを、前記モジュールテンプレートに関連付けるステップと、を含む、請求項１９に記載の方法。
【請求項２１】
前記要求を受け取るステップは、第１の要求を受け取るステップを含み、前記任意コンポーネントは、第１の任意コンポーネントであり、
第２の要求を受け取り、第２の任意コンポーネントを定義するように、前記複数のコンポーネントの別の１つを、前記任意属性と関連付けるステップと、
前記第１の任意コンポーネントおよび前記第２の任意コンポーネントを、任意コンポーネント群に関連付けるステップであって、前記任意コンポーネント群全体は、前記少なくとも１つのモジュールインスタンスに、条件的に含められるか、または除外される、前記関連付けるステップをさらに含む、請求項１９に記載の方法。
【請求項２２】
ショートカット名を受け取るステップと、
前記ショートカット名を、前記任意コンポーネント群に関連付けるステップと、をさらに含む、請求項２１に記載の方法。
【請求項２３】
前記要求を受け取るステップは、前記任意コンポーネントに関連付けられる、複数の種類の指定を受け取るステップをさらに含み、前記任意コンポーネントの前記複数の種類のまさに１つが、前記少なくとも１つのモジュールインスタンスに選択的に含められるか、または除外される、請求項１９に記載の方法。
【請求項２４】
プロセス制御システムを構成するための、１組の命令としてコンピュータ可読媒体上に格納され、かつプロセッサ上で実行可能なプロセス制御構成システムであって、
前記プロセス制御システムにおいて、制御操作を実施するように、物理的装置上で少なくとも部分的に実行される、モジュールインスタンスを開発するためのユーザインターフェースであって、
制御論理に関連する１つまたは数個の構造コンポーネントと、１つまたは数個のパラメータを含む、複数のコンポーネントを有する、モジュールテンプレートを提示するためのインターフェース画面であって、前記複数のコンポーネントは、１組の任意コンポーネントを含む、インターフェース画面と、
１組の選択された１つ以上の任意コンポーネントおよび１組の選択されていないゼロ以上の任意コンポーネントを定義するように、前記１組の任意コンポーネントの中からの１つ以上の任意コンポーネントの選択を受け取るための、ユーザが操作可能な制御と、を含む、ユーザインターフェースと、
前記モジュールテンプレートに基づいて、前記モジュールインスタンスを生成するための、モジュールインスタンス化エンジンであって、前記１組の選択された１つ以上の任意コンポーネントをインスタンス化し、前記１組の選択されていないゼロ以上の任意コンポーネントをインスタンス化しない、モジュールインスタンス化エンジンと、を含む、プロセス制御構成システム。
【請求項２５】
複数のモジュールテンプレートを格納するためのデータベースをさらに備える、請求項２４に記載のシステム。
【請求項２６】
前記１つのまたは数個の構造コンポーネントは機能ブロックであって、
各機能ブロックは、
各々プロセス制御パラメータを受け取るようにそれぞれが適合される、１つのまたは数個の入力と、
１つのまたは数個の出力と、
前記１つのまたは数個の入力に応答して、前記１つのまたは数個の出力において制御信号を生成する制御論理と、を含む、請求項２４に記載のシステム。
【請求項２７】
前記ユーザインターフェースは、第１のユーザインターフェースであって、
前記システムは、
前記モジュールテンプレートを開発するための、第２のユーザインターフェースであって、
前記複数のコンポーネントを選択し、制御アルゴリズムを定義するように、その間の相互動作を指定するための、第１のユーザが操作可能な制御と、
前記任意コンポーネントの組を指定し、各々の任意属性を、前記１組の任意コンポーネントの中の各コンポーネントに関連付けるための、第２のユーザが操作可能な制御と、を含む、第２のユーザインターフェースをさらに含む、請求項２４に記載のシステム。
【請求項２８】
モジュールテンプレートを開発するために、コンピュータ可読媒体上に１組の命令として格納され、かつプロセッサ上で実行可能なプロセス制御構成システムであって、前記モジュールテンプレートは、プロセスプラントにおける制御ストラテジを定義する上で使用され、前記システムは、
前記モジュールテンプレートの表示を表示するための対話式画面であって、前記モジュールテンプレートは、コンピュータ可読媒体上にデータとして格納され、それぞれが各々の論理演算に関連付けられる、複数の構造コンポーネントと、多数のパラメータとを含む、対話式画面と、
前記複数の構造コンポーネントのうちの少なくとも１つの選択を受け取るための、第１のユーザが操作可能な制御と、
前記複数の構造コンポーネントのうちの前記選択された少なくとも１つを、任意属性に関連付けるための、第２のユーザが操作可能な制御と、
前記複数の構造コンポーネントのうちの前記少なくとも１つの前記選択と、前記任意属性とに従って、前記モジュールテンプレートを生成するための、テンプレート生成エンジンと、を備え、
少なくとも１つのモジュールインスタンスは、前記モジュールテンプレートに基づいて、前記プロセスプラントにおいて１つ以上の物理的装置によって実行可能な１組の命令として生成され、前記少なくとも１つのモジュールインスタンスは、ユーザ選択に従って、前記任意コンポーネントを含めるか、または除外する、プロセス制御構成システム。
【請求項２９】
第１のユーザが操作可能な制御は、前記複数の構造コンポーネントのうちの複数を有する任意群を選択するようにさらに適合され、前記第２のユーザが操作可能な制御は、前記任意群全体が、前記ユーザ選択に従って、前記少なくとも１つのモジュールインスタンスに含められるか、または除外されるように、前記任意群を前記任意属性に関連付ける、請求項２８に記載のプロセス制御構成システム。
【請求項３０】
ショートカット名を受け取り、前記ショートカット名を前記任意群に関連付けるための、第３のユーザが操作可能な制御をさらに備える、請求項２９に記載のプロセス制御構成システム。
【請求項３１】
前記前記複数の構造コンポーネントのうちの選択された少なくとも１つを、複数のコンポーネント種類に関連付けるための、第３のユーザが操作可能な制御をさらに備え、前記少なくとも１つのモジュールインスタンスは、前記種類の選択に従って、前記複数の構造コンポーネントのうちの前記選択された少なくとも１つを含む、請求項２８に記載のプロセス制御構成システム。
【請求項３２】
前記モジュールテンプレートに基づいてモジュールインスタンスを生成するために、コンピュータ可読媒体上にデータとして格納されるモジュールテンプレートであって、前記モジュールインスタンスは、プロセス制御システムにおいて稼働しているデバイス上で少なくとも部分的に実行され、前記モジュールテンプレートは、
複数のブロックを記述するブロックデータであって、各ブロックは、プロセス制御機能に関連付けられる、ブロックデータと、
前記複数のブロックのうちの少なくともいくつかの間の論理結合を記述する、結合データと、
前記複数のブロックに関連付けられる、多数のプロセスパラメータを記述するパラメータデータと、
ユーザ選択に基づいて、前記モジュールインスタンスにおいて任意に存在する、前記複数のブロックのうちの１つに対応する、任意コンポーネント識別子を含む、オプションデータと、を備える、モジュールテンプレート。
【請求項３３】
前記複数のブロックのうちの前記１つは、前記複数のブロックのうちの第１のブロックであり、前記任意コンポーネントは、前記複数のブロックのうちの第２のブロックにさらに対応し、前記複数のブロックのうちの前記第１のブロックと、前記複数のブロックのうちの前記第２のブロックは、任意コンポーネント群を定義する、請求項３２に記載のモジュールテンプレート。
【請求項３４】
任意コンポーネント群に関連付けられるグループ名をさらに含む、請求項３３に記載のモジュールテンプレート。
【請求項３５】
前記任意コンポーネント識別子は、第１の任意コンポーネント識別子であり、前記複数のブロックのうちの１つは、前記複数のブロックのうちの第１のブロックであり、前記オプションデータは、前記複数のブロックのうちの第２のブロックに対応する第２の任意コンポーネント識別子をさらに含み、前記第１の任意コンポーネントおよび前記第２の任意コンポーネントのそれぞれは、前記第１の任意コンポーネントおよび前記第２の任意コンポーネントのうちの他方とは独立して、ユーザ選択に従って前記モジュールインスタンス中にインスタンス化される、請求項３２に記載のモジュールテンプレート。
【請求項３６】
前記オプションデータは、前記複数のブロックのうちの１つに関連付けられる、複数の種類を指定する種類選択フィールドをさらに含む、請求項３２に記載のモジュールテンプレート。
【請求項３７】
プロセスプラントの中に、制御ストラテジを実装するためのプロセス制御システムであって、
前記制御ストラテジを実装するための、複数のデバイスであって、前記プロセスプラントにおいて各々物理的段階を実施する制御器および複数のフィールド機器を含む、複数のデバイスと、
複数の論理ブロックおよび多数のパラメータを伴うデータとしてモジュールテンプレートを格納するための、コンピュータ可読媒体であって、前記モジュールテンプレートは、前記複数のデバイス上で実行可能な命令の組としてモジュールインスタンスを生成するために使用され、前記複数の論理ブロックのうちの少なくとも１つは、任意コンポーネントを定義するように、任意属性に関連付けられる、コンピュータ可読媒体と、
構成システムであって、
前記モジュールテンプレートとのユーザ対話を支援するように、プロセッサ上で実行可能なユーザインターフェースと、
前記モジュールテンプレートに基づいて、モジュールインスタンスを生成するための、モジュールインスタンス化エンジンであって、前記任意コンポーネントが選択されると、前記任意コンポーネントをインスタンス化し、任意コンポーネントが選択されないと、前記任意コンポーネントをインスタンス化しない、モジュールインスタンス化エンジンと、を含む、構成システムと、を備える、プロセス制御システム。
【請求項３８】
前記ユーザインターフェースは、前記複数の論理ブロックのうちの１つ以上を選択し、前記複数の論理ブロックのうちの前記選択された１つ以上を、前記任意属性に関連付けるための、インターフェース画面を含む、請求項３７に記載のシステム。
【請求項３９】
前記モジュールインスタンス化エンジンは、前記任意コンポーネントが前記生成されたモジュールインスタンスの中で選択されると、前記任意コンポーネントに関連する履歴データの収集を可能にする、請求項３７に記載のシステム。
【請求項４０】
前記モジュールインスタンス化エンジンは、前記生成されたモジュールインスタンスを、ダイナモスクリプトに関連付け、前記ダイナモスクリプトは、前記任意コンポーネントが選択されると、少なくとも前記任意コンポーネントに対応する、請求項３７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してプロセス制御システムに関し、具体的には、かかるシステムの効率的構成の提供に関する。
【背景技術】
【０００２】
化学、石油または他のプロセスにおいて使用されるような、分散型または拡張可能なプロセス制御システム等のプロセス制御システムは、相互に、少なくとも１つのホストまたは操作者ワークステーションに、およびアナログ、デジタル、または混合アナログ／デジタルバスを介して、１つ以上のフィールド機器に通信可能に結合する、１つ以上のプロセス制御器を典型的に含む。例えば、弁、弁位置決め装置、スイッチおよび伝達装置（例えば、温度、圧力、および流量センサ）等であり得るフィールド機器は、プロセス内で、弁の開閉およびプロセスパラメータの測定等の機能を実行する。プロセス制御器は、フィールド機器によって行われるプロセス計測、および／またはフィールド機器に関連する他の情報を示す信号を受け、この情報を使用して、制御ルーチンを実装し、次に制御信号を生成し、これはプロセスの動作を制御するために、バス上でフィールド機器に送信される。フィールド機器および制御器からの情報は、典型的には、操作者が、プロセスの現状の閲覧、プロセスの動作の修正等の、プロセスに関わる任意の所望の機能を実施することを可能とするように、操作者のワークステーションによって実行される１つ以上のアプリケーションに利用可能とされる。
【０００３】
テキサス州オースティンに本社を置くＦｉｓｈｅｒ  Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって販売されるＤｅｌｔａＶ（登録商標）システム等のいくつかのプロセス制御システムは、制御器の中および／またはフィールド機器の中に位置する機能ブロックもしくはモジュールとよばれる機能ブロックの群を使用して、制御操作を実行する。これらの場合、制御器または他のデバイスは、１つ以上の機能ブロックまたはモジュールを含むことと、およびそれらを実行することができる。それらの機能ブロックまたはモジュールは、それぞれ（同一のデバイス内部で、または異なるデバイス内部の）他の機能ブロックからの入力を受け取り、および／または、他の機能ブロックへの出力を提供し、かつプロセスパラメータの測定もしくは検出、デバイスの制御、または比例−微分−積分（ＰＩＤ）制御ルーチンの実装等の制御操作の実行等の、いくつかのプロセス操作を実行する。プロセス制御システム内の異なる機能ブロックおよびモジュールは、１つ以上のプロセス制御ループを形成するように、概して相互に通信可能に（例えば、バス上で）構成される。
【０００４】
いくつかの場合では、機能ブロックは、Ｆｏｕｎｄａｔｉｏｎ（登録商標）Ｆｉｅｌｄｂｕｓによって公布される基準に準拠してもよく、または、類似してもよい。しかしながら、「用語機能ブロック」という用語は、本明細書で使用される場合、ＤｅｌｔａＶ（登録商標）またはＦｉｅｌｄｂｕｓプロトコルが機能ブロックとして特定するものに限定されず、その代わりに、任意の種類の制御システムおよび／または通信プロトコルに関連付けられ、いくつかの制御機能を実装するために使用することができる、任意の他の種類のブロック、プログラム、ハードウェア、ファームウェア等を含む。さらに、「機能ブロック」という用語は、本明細書で使用される場合、概して、１つのまたは数個の制御機能をカプセル化する機能ブロック、１つ以上のプロセスパラメータを含むリソースブロック、センサ（例えば、温度センサ、圧力センサ等）、流量計、弁アクチュエータ等へのインターフェースに対応する変換器ブロック、または任意の他の種類のブロックを指し得る。さらに、機能ブロックは、ディスクリート入力（Ｄｉｓｃｒｅｔｅ  Ｉｎｐｕｔ：ＤＩ）、ディスクリート出力（Ｄｉｓｃｒｅｔｅ  Ｏｕｔｐｕｔ：ＤＯ）、アナログ入力（Ａｎａｌｏｇ  Ｉｎｐｕｔ：ＡＯ）、アナログ出力（Ａｎａｌｏｇ  Ｏｕｔｐｕｔ：ＡＯ）、ＰＩＤ制御、ＰＤ制御、ＰＩ制御、Ｐ制御、コントロールセレクタ（Ｃｏｎｔｒｏｌ  Ｓｅｌｅｃｔｏｒ）、バイアス／ゲイン設定器（Ｂｉａｓ／Ｇａｉｎ  Ｓｔａｔｉｏｎ）等の基本機能ブロック、ならびに設定値ランプ発生器（Ｓｅｔｐｏｉｎｔ  Ｒａｍｐ  Ｇｅｎｅｒａｔｏｒ）、タイマ（Ｔｉｍｅｒ）、アナログ警報機、離散警報機（Ｄｉｓｃｒｅｔｅ  Ａｌａｒｍ）、無駄時間（Ｄｅａｄｔｉｍｅ）等の高度機能ブロックを指し得る。またさらに、機能ブロックは、本明細書で使用される場合、例えば、数個のＦｉｅｌｄｂｕｓ機能ブロック、または１つのまたは数個の入れ子ブロックをも含む、入れ子ブロックであってもよい。また、機能ブロックは、オブジェクト志向のプログラミング環境の内のオブジェクトの形態を典型的に採るが、機能ブロックは、任意の適切なソフトウェア環境の中で、任意の所望のデータ構造を使用して定義することができるということに留意されたい。
【０００５】
したがって、プロセス制御器は、流量制御ループ、温度制御ループ、圧力制御ループ等の、プロセスに対して定義される、またはプロセス内に包含される、いくつかの異なるループのそれぞれについて、異なるアルゴリズム、サブルーチンまたは制御ループ（これらはすべて制御ルーチンである）を実行するように典型的にプログラムされる。前述のとおり、かかる制御ループはそれぞれ、アナログ入力（ＡＩ）機能ブロック等の１つ以上の入力ブロック、比例−積分−微分（ＰＩＤ）またはファジー論理制御機能ブロック等の単一の出力制御ブロック、およびアナログ出力（ＡＯ）機能ブロック等の１つの出力ブロックを含む。
【０００６】
制御ルーチン、およびかかるルーチンを実装する機能ブロックは、ＰＩＤ制御、ファジー論理制御、および、スミス予測機またはモデル予測制御（ＭＰＣ）等のモデルベースの技術を含む、いくつかの制御技術に従って構成される。モデルベースの制御技術において、閉ループ制御応答を判定するためにルーチン内で使用されるパラメータは、プロセスへの入力としての役割を果たす、操作されたまたは測定された外乱における変化に対する動的プロセス応答に基づく。プロセス入力における変化に対するプロセスのこの応答の表示は、プロセスモデルとして特徴付けられ得る。例えば、第１次のパラメータ化プロセスモデルは、ゲイン、無駄時間、およびプロセスの時定数の値を特定し得る。
【０００７】
典型的なプラントでは、技師は、操作者ワークステーション上で作動する構成システムを使用して、プロセス制御ストラテジを定義し、構成し得る。いくつかの構成システムは、技師が特定のアプリケーションに従って、選択された制御要素のインスタンスを選択し、生成することができるように、機能ブロックまたはモジュール（典型的にいくつかの機能ブロックから成る）等の制御要素を格納するためのライブラリを含み得る。また、構成システムは、インスタンスを、例えば、制御要素を制御器またはプログラマブルフィールド機器にダウンロードすることにより、プロセス制御環境に適用する前に、技師が選択された制御要素の生成されたインスタンスを修正して変更することを可能としてもよい。
【０００８】
例えば、ＤｅｌｔａＶ（登録商標）システムの中のテンプレートライブラリは、基本的計測および制御機能性に対処する、種々のモジュールテンプレートを格納する。ＤｅｌｔａＶ（登録商標）システムの中のテンプレートは、自律またはクラスベースであることができる（すなわち、クラステンプレートからインスタンス化されたインスタンスにリンクし、クラステンプレートにおける変化をインスタンスに伝搬することができる）。技師は、対応するプロセス制御スキームを定義および構成する際に、１つのまたは数個のモジュールテンプレートを開始点としてしばしば使用する。しかしながら、モジュールテンプレートに対する典型的な修正は、著しい技術的努力を伴い、一定のチェックイン、チェックアウト、および文書化手順を必要とするため、テンプレートライブラリを使用した作業は、多大な時間を必要とする場合がある。
【０００９】
プロセス制御システムを構成するタスクを単純化するため、Ｅｍｅｒｓｏｎ（登録商標）  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔ社は、Ｐｒｏｊｅｃｔ  Ｂｕｉｌｄｅｒ  Ｌｉｂｒａｒｙ（ＰＢＬ）として知られる、一群の包括的な再利用可能モジュールテンプレートおよびモジュールクラスを開発した。概して、ＰＢＬにおけるモジュールテンプレートは、特定のモジュールに適用可能な、考えられる最も広範囲の構成オプションおよび状況に対処する。ＰＢＬに貢献する技師は、ＩＳＡ  Ｓ８８．０、ＩＥＣ  ６１５０８、ＩＥＣ  ６１１３１−３等の国際基準に則って構築し、長期にわたるアプリケーションおよびプロジェクトエンジニアリングからの経験および最良の実践に立脚している。ＰＢＬを使用すると、技師は、モジュールテンプレートを選択し、所望の特性を可能にし、構成するために、モジュールパラメータの値を修正し、特定のアプリケーションに不必要な特性を無効にすることができる。例えば、一定のテンプレートは、一定の機能ブロックへの８つの可能な入力を可能とし得、したがって、これらの８つの入力に対応する８つの入力ブロックを含み得る。これらの入力の１つのみを必要とするユーザは、対応するパラメータに値ＦＡＬＳＥを割り当てることにより、８つの入力のうちの７つを効果的に無効とすることができる。したがって、典型的なＰＢＬテンプレートは、類似の目的のために定義されるＤｅｌｔａＶ（登録商標）ライブラリモジュールよりも多くの特性を含む。例えば、連続制御（Ｃｏｎｔｉｎｕｏｕｓ  Ｃｏｎｔｒｏｌ）のためのＰＢＬテンプレートは、対応するＤｅｌｔａＶ（登録商標）テンプレートのすべての機能、ならびに設備アービトレーション、有効／無効機能付きの４トラック入力および第１のアウト検出の支援、有効／無効機能付きの条件付きの警報および操作者アクセス、ＲＣＡＳ＿ＩＮおよびＲＯＵＴ＿ＩＮチャネルの状態を設定するための制御、操作者がモジュールにアクセスすることを任意に妨げるモードロック、故障パラメータ等に関する追加機能を含み得る。つまり、ＰＢＬモジュールテンプレートは、技師が特定のプロジェクトのために必要とし得る、モジュールのすべての機能性を含む可能性が高く、このモジュールを使用するために、技師は通常、モジュールパラメータのうちのいくつかのみ、またはすべての値を変更する必要がある。
【００１０】
ＰＢＬは、プロセス制御を構成するプロセスを著しく単純化することができる一方、ＰＢＬモジュールテンプレートは、残念ながら比較的大量の制御器メモリを必要とする。具体的には、技師は、モジュールパラメータを修正することにより、モジュールテンプレートをカスタマイズするため、各インスタンスは、特定の機能ブロックがインスタンスにおいて動作可能かどうかに関わらず、関連付けられるパラメータと併せて、親モジュールテンプレートからすべての機能ブロックを継承する。さらに、各モジュールインスタンスが、対応するＰＢＬモジュールテンプレートの機能性全体を留保するために、ＰＢＬテンプレートは常に「見たものが手に入るもの」（ＷＹＳＩＷＹＧ）というユーザの体験を提供せず、技師は、どの機能ブロックおよびパラメータが実際に使用されているか判断するために、多くのパラメータを調べなければならない。
【発明の概要】
【００１１】
プロセス制御構成において使用するためのモジュールテンプレートは、論理または機能ブロックおよびプロセスパラメータ等の、１つのまたは数個の選択可能なコンポーネントを含む。プロセス制御スキームを設計する際、操作者は、特定のアプリケーションのためのモジュールテンプレートを選択し、モジュールテンプレート内部に所望のコンポーネントを選択して、選択されたコンポーネントのみを含むモジュールインスタンスを作成することができる。したがって、操作者は、モジュールインスタンスの構造と、モジュールインスタンスのコンポーネントに対応するパラメータの両方をカスタマイズし得る。いくつかの実施形態では、モジュールテンプレートは、１つのまたは数個の自由選択ではないコンポーネント追加的に含み、モジュールテンプレートを使用して作成された各モジュールインスタンスは、それにしたがってモジュールインスタンスの任意構成、およびユーザによって選択された任意コンポーネントに関わらず、自由選択ではないコンポーネントのそれぞれを含む。任意に、モジュールインスタンスはまた、そこからモジュールインスタンスが生成されたモジュールテンプレート、すなわち、「親」テンプレートを特定するために、親テンプレート識別子を含む。別の選択肢として、モジュールインスタンスは、親モジュールテンプレートにおいて利用可能であるオプションのうちのどれが、モジュールインスタンスのインスタンス化の時に選択されたかを特定するデータフィールドを含んでもよい。いくつかの実施形態では、操作者は、モジュールインスタンスがインスタンス化された後に、モジュールインスタンスを修正してもよい。これらの実施形態のうち少なくともいくつかでは、操作者は、以前に選択された任意コンポーネントを非選択としてもよく、および／または以前に選択されていない任意コンポーネントを選択してもよい。
【００１２】
別の態様では、プロセス制御システムを構成するためのソフトウェア環境は、モジュールテンプレートを定義し、モジュールテンプレートの１つのまたは数個のコンポーネントを特定し、および選択可能な属性を、特定された１つのまたは数個のコンポーネントに割り当てて、モジュールテンプレートに基づいて、モジュールインスタンスを生成する時に、特定されたコンポーネントが選択されるかまたは省かれるかを示すための、ユーザインターフェースを含む。いくつかの実施形態では、ユーザインターフェースは、ユーザが、コンポーネントの群を選択し、選択された群に共通の選択可能な属性を割り当てることを可能にする。ユーザインターフェースはまた、同一のユーザまたは別の操作者が、後に一覧から所望の種類を選択して、コンポーネントを特定のインスタンスにおける選択された種類に関連付けることができるように、機能ブロック等のコンポーネントを、数個の指定された種類の一覧に関連付けることを可能にするように、ブロックの種類の選択特性を支援してもよい。いくつかの実施形態では、ユーザインターフェースは、ユーザが、モジュールテンプレートの中の、コンポーネントのうちの１つまたは群を選択し、ショートカット名を選択されたコンポーネントまたはコンポーネントの群に割り当てることを可能にする。ユーザは、１つのまたは数個の選択されたコンポーネントが、モジュールテンプレートに基づいて、インスタンスの中で実行する機能を記述する名前を選ぶであろうことが意図される。いったんショートカット名が割り当てられると、いくつかの実施形態におけるユーザインターフェースは、ショートカット名が割り当てられた、１つのまたは数個のコンポーネントの隣に、またはその上に、ショートカット名を表示する。ユーザがショートカット名をコンポーネントの群に割り当てる時、ユーザインターフェースは、群を囲むボックス、投げ縄、または別の視覚インジケータをさらに表示して、ショートカット名がコンポーネントの群に対応することを表わしてもよい。
【００１３】
ソフトウェア環境は、モジュールテンプレートをデータベース等のテンプレートライブラリの中に保存し、プロセス制御設計または構成中に、同一のまたは別のユーザインターフェースを介して、１つ以上の保存されたモジュールテンプレートをユーザに提供してもよい。いくつかの実施形態では、ユーザインターフェースは、各任意コンポーネント、すなわち、選択されるか、または非選択でもよいコンポーネントに対する識別子を提供する。特定のアプリケーションに適したモジュールテンプレートを選択すると、ユーザは、所望のオプションを選択し、ユーザインターフェース上で制御を有効化して、選択されたモジュールテンプレートおよび選択されたオプションと一致するモジュールのインスタンスを生成することができる。ユーザは、同一のモジュールテンプレートを使用して、複数のインスタンスを生成することができ、そのうちのいくつかは異なる選択されたオプションを有するものとすることができる。
【００１４】
いくつかの実施形態では、プロセス制御システムを構成するためのソフトウェア環境は、ユーザが、インスタンス作成時に親モジュールテンプレートで選択されたインスタンスの中のコンポーネントのみを修正することを可能にすることにより、親モジュールテンプレートにリンクされるモジュールインスタンスを、誤った編集から保護する。所望される場合、ソフトウェア環境のユーザインターフェースは、ユーザがこの保護をオーバーライドし、親モジュールテンプレートへのリンクを切り、所望に応じてインスタンスを修正することを可能にしてもよい。追加的にまたは代替的に、ユーザインターフェースは、少なくとも明示的なユーザコマンドによってオーバーライドされるまで、ユーザがインスタンスの構造ではなくパラメータ値のみを修正することを可能にすることにより、選択可能なオプションを有するモジュールテンプレートにリンクするインスタンスを保護してもよい。
【００１５】
いくつかの実施形態では、プロセス制御システムを構成するためのソフトウェア環境のシステム開発インターフェースは、モジュールテンプレートを選択し、モジュールテンプレートを使用して作成されたすべてのモジュールインスタンスが、選択されたプロセス区域の中で特定されることを要求するための、インターフェース機能を提供する。任意に、システム開発インターフェースは、特定されたモジュールインスタンスと、これらのインスタンスに関連付けられる構成オプションの両方を表示してもよい。システム開発インターフェースは、特定されたインスタンスをあわせて効率的に編集するための、別の機能を提供してもよい（例えば、親モジュールテンプレートのオプションを選択するか、または非選択とする、親モジュールテンプレートによって指定される共通パラメータを編集する、等）。
【図面の簡単な説明】
【００１６】
【図１】制御器、数個のフィールド機器、および任意コンポーネントを有するモジュールテンプレートを使用して、制御器およびフィールド機器を構成し得るワークステーションを含む、プロセス制御システムの略図である。
【図２】図１に図示されるもの等のプロセス制御システムを構成する際に使用される、制御要素の周知の階層型構造の一例を図示する、ブロック図である。
【図３】プロセスプラントの制御スキームを作成し、維持するために使用される、周知のモジュールのコンポーネントを概略的に図示する。
【図４】１つ以上の任意コンポーネントを有するモジュールテンプレートに基づいて、数個のモジュールインスタンスを生成するプロセスを図示するブロック図である。
【図５】任意コンポーネントを有するモジュールテンプレートを表示する、ユーザインターフェース画面の例である。
【図６Ａ】モジュールのコンポーネントのプロパティを構成するためのダイアログ画面の例を図示する。
【図６Ｂ】モジュールのコンポーネントのプロパティを構成するためのダイアログ画面の例を図示する。
【図７】任意コンポーネントを有するモジュールテンプレートを選択し、そのモジュールテンプレートを使用して、モジュールのインスタンスを生成するためのユーザインターフェースの一例を図示する。
【図８】指定のモジュールテンプレートを使用して生成される、１つのまたは数個のモジュールのコンポーネントを閲覧し、選択するための、スプレッドシートスタイルのインターフェース画面の例である。
【図９】指定のモジュールテンプレートを使用して生成される、１つのまたは数個のモジュールのパラメータを閲覧し、編集するための、スプレッドシートスタイルのインターフェース画面の例である。
【図１０】指定のモジュールテンプレートを使用して生成される、１つのまたは数個のモジュールのビットマスクまたは構造ベースのパラメータを編集するための、スプレッドシートスタイルのインターフェース画面の例である。
【図１１】図５のモジュールテンプレートを使用して生成される、モジュールインスタンスを表示する、ユーザインターフェース画面の例である。
【図１２】図５のモジュールテンプレートを使用して生成される、モジュールインスタンスを表示する、ユーザインターフェース画面の例である。
【図１３】コンポーネントおよびコンポーネントの群のショートカット名とともに、モジュールの数個のコンポーネントを表示する、ユーザインターフェース画面を図示する。
【発明を実施するための形態】
【００１７】
図１は、任意コンポーネントを有するモジュールテンプレートを定義、編集、および使用する技術が適用され得る、プロセス制御システム１０の実施例を図示する。制御システム１０は、データヒストリアン１２と、それぞれが表示画面１４を有する、１つ以上のホストワークステーションまたはコンピュータ１３（任意の種類のパソコン、ワークステーション等であってもよい）に接続される、プロセス制御器１１とを含む。制御器１１はまた、入力出力（Ｉ／Ｏ）カード２６および２８を介して、フィールド機器１５〜２２に接続される。データヒストリアン１２は、データを格納するための、任意の所望の種類のメモリおよび任意の所望のまたは周知のソフトウェア、ハードウェアまたはファームウェアを有する、任意の所望の種類のデータ収集ユニットであってもよい。データヒストリアン１２は、ワークステーション１３と別個であっても（図１に示されるように）、またはワークステーション１３のうちの１つの一部分であってもよい。一例として、Ｆｉｓｈｅｒ−Ｒｏｓｅｍｏｕｎｔ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって販売されるＤｅｌｔａＶ（登録商標）制御器であってもよい制御器１１は、例えば、イーサネット（登録商標）接続または任意の他の所望の通信ネットワークを介して、ホストコンピュータ１３と、データヒストリアン１２とに通信可能に接続される。制御器１１はまた、例えば、標準４−２０ｍａデバイスおよび／またはＦＯＵＮＤＡＴＩＯＮ  Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴプロトコル等の任意のスマート通信プロトコルに関連付けられる、任意の所望のハードウェアおよびソフトウェアを使用して、フィールド機器１５〜２２に通信可能に接続される。
【００１８】
フィールド機器１５〜２２は、センサ、弁、伝達装置、位置決め装置等の任意の種類のデバイスであってもよく、一方、Ｉ／Ｏカード２６および２８は、任意の所望の通信または制御器プロトコルに準拠する、任意の種類のＩ／Ｏデバイスであってもよい。図１に示される実施形態では、フィールド機器１５〜１８は、アナログライン上でＩ／Ｏカード２６に通信する、標準４−２０ｍＡデバイスであってもよく、一方、フィールド機器１９〜２２は、Ｆｉｅｌｄｂｕｓプロトコル通信を使用して、デジタルバス上でＩ／Ｏカード２８に通信する、Ｆｉｅｌｄｂｕｓフィールド機器等のスマートデバイスである。当然のことながら、フィールド機器１５〜２２は、将来開発される任意の基準またはプロトコルを含む、任意の他の所望の有線または無線基準またはプロトコルに準拠することができる。
【００１９】
制御器１１は、制御ループを含み得る１つ以上のプロセス制御ルーチンを実行または監視し、デバイス１５〜２２、ホストコンピュータ１３およびデータヒストリアン１２と通信して、プロセスを所望の様態で制御する、プロセッサ２３を含む。制御ルーチンは、制御器メモリ２４の中に格納されてもよく、または別様に制御器１１に関連付けられてもよい（例えば、スマートフィールド機器１９〜２２に分散される）。概して、本明細書に記載される任意の制御ルーチンまたはモジュールは、所望される場合、異なる制御器または他のデバイスによって実装または実行される部分を含んでもよいということに留意すべきである。さらに、プロセス制御システム１０の中に実装される、本明細書に記載の制御ルーチンまたはモジュールは、ソフトウェア、ファームウェア、ハードウェア等を含む、任意の形式をとってもよい。本開示の目的のために、プロセス制御モジュールは、例えば、任意のコンピュータ可読媒体上に格納される、ルーチン、ブロックまたはその任意の要素を含む、プロセス制御システムの任意の要素または部分であってもよい。モジュール、またはサブルーチン、サブルーチンの要素（コードのライン等）等の、制御手順の任意の要素であり得る制御ルーチンは、オブジェクト志向プログラミングを使用して、ラダー論理、シーケンシャル機能チャート、機能ブロック図を使用して、または任意の他のソフトウェアプログラミング言語または設計パラダイムを使用して、任意の所望のソフトウェアフォーマットに実装されてもよい。同様に、制御ルーチンは、例えば、１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）、または任意の他のハードウェアまたはファームウェア要素にハードコードされてもよい。したがって、制御器１１は、任意の所望の様態で制御ストラテジまたは制御ルーチンを実装するように構成されてもよい。
【００２０】
いくつかの実施形態では、制御器１１は、機能ブロックを使用して制御ストラテジを実装する。しかしながら、任意パラメータを有するモジュールテンプレートを定義、編集、および使用する技術は、概して、他の制御方法または仕様（例えば、ラダー論理、シーケンシャル機能チャート等）に適用され得る。プロセス制御システム１０において、機能ブロックは、制御論理、リソース論理、通信論理、変換器論理等のうちの１つ以上が、論理ブロックの中にカプセル化される、任意のスキームと一致し得る。説明を容易にするために、「論理ブロック」および「機能ブロック」という用語は、本明細書において、交換可能に使用される。各機能ブロックは、全体の制御ストラテジのオブジェクトまたは他の要素（例えば、サブルーチン）であり、通信リンクを介して他の機能ブロックと相互接続して、プロセス制御システム１０内の１つ以上のプロセス制御ループを実装するように動作する。機能ブロックは、典型的には、伝達装置、センサまたは他のプロセスパラメータ測定デバイスに関連付けられるもの等の入力機能、ＰＩＤ、ファジー論理等を実行する制御ルーチンに関連付けられるもの等の制御機能、または弁等のいくつかのデバイスを制御して、プロセス制御システム１０内でいくつかの物理的機能を実施する、出力機能のうちの１つを実行する。当然のことながら、ハイブリッドおよび他の種類の機能ブロックが存在してもよい。機能ブロックは、制御器１１に格納され、制御器１１によって実行されてもよく、これは、これらの機能ブロックが標準４−２０ｍＡデバイスおよびＨＡＲＴデバイス等のいくつかの種類のスマートフィールド機器のために使用されるか、または関連付けられる場合に典型的であって、または、Ｆｉｅｌｄｂｕｓデバイスを用いた場合には、フィールド機器自体に格納され、フィールド機器自体によって実装されてもよい。
【００２１】
図１の分解ブロック３０によって図示されるように、制御器１１は、ルーチン３２および３４として図示される、いくつかの単ループ制御ルーチンを含んでもよく、所望される場合、制御ループ３６として図示される、１つ以上の高度制御ループを実装してもよい。かかるループは、それぞれ典型的に制御モジュールまたは単にモジュールとよばれる。単ループ制御ルーチン３２および３４は、単一入力／単一出力ファジー論理制御ブロックおよび単一入力／単一出力ＰＩＤ制御ブロックをそれぞれ使用して、適当なアナログ入力（ＡＩ）およびアナログ出力（ＡＯ）機能ブロックに接続される、単一のループ制御を実施するステップとして図示され、これは、弁等のプロセス制御デバイスに、温度および圧力伝達装置等の測定デバイスに、またはプロセス制御システム１０内の任意の他のデバイスに関連付けられてもよい。高度制御ループ３６は、１つ以上のＡＩ機能ブロックに通信可能に接続される入力と、１つ以上のＡＯ機能ブロックに通信可能に接続される出力とを有する、高度制御ブロック３８を含めるように図示されている。しかしながら、高度制御ブロック３８の入力および出力は、任意の他の所望の機能ブロックまたは制御要素に接続されて、他の種類の入力を受け取り、他の種類の制御出力を提供してもよい。高度制御ブロック３８は、任意の種類のモデル予測制御（ＭＰＣ）ブロック、ニューラルネットワークモデリングまたは制御ブロック、多変数ファジー論理制御ブロック、実時間オプティマイザブロック等であってもよい。高度制御ブロック３８を含む、図１に図示される機能ブロックは、制御器１１によって実行することができるか、または、代替的に、ワークステーション１３のうちの１つか、または、さらにはフィールド機器１９〜２２のうちの１つ等の任意の他の処理デバイスの中に位置し、任意の他の処理デバイスによって実行することができるということが理解されよう。
【００２２】
メモリおよびプロセシングリソースを過度に使用することなく、プロセス制御システム１０の制御ストラテジを素早く効率的に定義するために、認証されたユーザ（例えば、構成技師、操作者等）は、１つまたは複数の任意コンポーネントおよびゼロ以上の必須コンポーネントを用いて、モジュールテンプレートを定義し、使用してもよい。具体的には、ユーザは、機能ブロックを選択または定義すること、選択された機能ブロックを相互接続してモジュールの制御ルーチンを定義すること、モジュールのプロセスパラメータを定義すること、パラメータにデフォルト値を割り当てること等により、モジュールテンプレートを開発することができる。図４〜図１１Ｃを参照して以下に詳細に記載するように、ユーザは、選択可能な属性をいくつかのまたはすべてのコンポーネントに割り当てて、モジュールテンプレートに基づく任意の特定のモジュールインスタンス（または単に「インスタンス」）において、これらのコンポーネントが任意であることを示すことができる。ユーザは、同様に、所望される場合、任意パラメータまたは他のモジュール属性を特定することができ、プロセス制御システム１０を構成するために使用するために、例えば、データベース等のレポジトリの中にモジュールテンプレートを保存することができる。以下の実施例は、任意コンポーネントを有するモジュールテンプレートの後続の使用をさらに説明し、その使用には、特定のアプリケーションについてのインスタンスを生成する際、選択可能な属性によって、モジュールテンプレートにおける利用可能なコンポーネントを選択的に有効化すること、必須、および選択されたコンポーネントのみを有するインスタンスを、制御器および／またはスマートフィールド機器の中へとダウンロードすること、モジュールテンプレートおよび選択された任意コンポーネントに従ってインスタンスを編集すること、共通モジュールテンプレートから派生する複数のインスタンスを編集すること等が挙げられる。任意コンポーネントを操作することに関する技術は、主にモジュールテンプレートに関して考察されるが、類似の技術もまたモジュールクラスに適用され得るということに留意されたい。したがって、以下の考察において、「モジュールテンプレート」および「モジュールクラス」という用語は、交換可能に使用される。
【００２３】
図１に図示される実施例では、ワークステーション１３は、任意パラメータを有するモジュールテンプレートに関連する操作を支援する、操作者インターフェースアプリケーションパッケージ５０を（個別に、分散型の様態で、または任意の他の様態で）含む。認証されたユーザはまた、操作者インターフェースアプリケーションパッケージ５０を使用して、プロセス制御システム１０内に接続された、デバイス、ユニット、および他の要素の種々の機能を閲覧、編集、および管理するためにアクセスすることができる。操作者インターフェースアプリケーションパッケージ５０は、ワークステーション１３のメモリ５２の中に存在してもよく、アプリケーションパッケージ５０内のアプリケーションまたはエンティティのそれぞれは、各ワークステーション１３に伴なう各々のプロセッサ５４上で実行されるように適合されてもよい。アプリケーションパッケージ全体５０は、ワークステーション１３の中に格納されるように図示されるが、これらのアプリケーションまたは他のエンティティのうちのいくつかは、システム１０内の、またはシステム１０に関連付けられる、またはシステム１０と通信する、他のワークステーションまたはコンピュータデバイスの中に格納され、実行されてもよい。さらに、アプリケーションパッケージ５０は、ワークステーション１３に伴う表示画面１４、または手持ち式デバイス、ラップトップ、他のワークステーション、プリンタ等を含む、任意の他の所望の表示画面または表示装置に、表示出力を提供してもよい。同様に、アプリケーションパッケージ５０内のアプリケーションは、分割されて２つ以上のコンピュータまたは機械上で実行されてもよく、相互に連動して動作するように構成されてもよい。
【００２４】
本明細書に記載される技術を支援するために、アプリケーションパッケージ５０は、任意コンポーネントを有するモジュールテンプレートを作成し、修正するための、テンプレート開発アプリケーションまたはインターフェースと、モジュールテンプレートを特定のプロセス区域に適用する（すなわち、インスタンス化する）ための、システム構成アプリケーションまたはインターフェースとを含んでもよい。所望される場合、単一のアプリケーションまたはアプリケーションフレームワークは、モジュールテンプレート開発とモジュールテンプレート適用の両方を支援し得る。一例として、アプリケーションパッケージ５０は、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔ社によって開発されたＰｌａｎｔＷｅｂ（登録商標）デジタルアーキテクチャに準拠していてもよく、より具体的には、１つのまたは数個のＤｅｌｔａＶ（登録商標）アプリケーション（例えば、Ｃｏｎｔｒｏｌ  Ｓｔｕｄｉｏ、Ｐｌａｎｔ  Ｅｘｐｌｏｒｅｒ、Ｏｐｅｒａｔｅ等）を含んでもよい。任意コンポーネントを有するモジュールテンプレートを開発し、適用するための支援は、次にＣｏｎｔｒｏｌ  Ｓｔｕｄｉｏアプリケーションに追加することができるが、一方、任意パラメータを有するモジュールテンプレートは、より従来型のテンプレートおよび機能とともにＤｅｌｔａＶ（登録商標）ライブラリの中に格納されてもよい。この実施例の説明を続けると、Ｐｌａｎｔ  Ｅｘｐｌｏｒｅｒは、ユーザが、モジュールテンプレートライブラリをブラウズし、所望のモジュールテンプレートを選択し、モジュールテンプレートを使用して生成されたモジュールインスタンスを閲覧し、含まれるどのコンポーネントが任意であるか判断し、インスタンス上で他の操作を実施することを可能にすることにより、モジュールテンプレートに関連する操作についてのさらなる支援を提供してもよい。概して、モジュールテンプレートに関連する機能性は、１つまたは複数のソフトウェアアプリケーションに任意の所望の様態で配分され得るということが理解されよう。
【００２５】
プロセス制御環境におけるモジュールテンプレートの構造および動作をよりよく図示するため、図２は、モジュールレベルを含む、プロセス制御システム１０を構成する際に使用され得る、制御要素の１つの概して許容される階層型構造を図示する。次に、図３は、図２に図示される階層型構造のモジュールレベルに概して伴う、一般的に使用されるモジュールのコンポーネントを概略的に図示する。次に、図４〜図１０Ｃは、操作者インターフェースアプリケーションパッケージ５０のユーザインターフェースの種々の実施例を参照して、任意コンポーネントを有するモジュールテンプレートを開発し、適用する技術を図示する。より具体的には、図４は、概して任意コンポーネントを有するモジュールテンプレートに基づいて、モジュールのインスタンスを生成する技術を図示し、図５〜図６Ｂは、任意コンポーネントを有するモジュールテンプレートを開発するための、インターフェース画面の実施例を図示し、図７Ａ〜図１０Ｃは、対応するユーザインターフェースに提示されるように、このモジュールテンプレートを使用して生成された、インスタンスの数個の実施例を図示する。
【００２６】
図２を参照すると、階層型モデル１００は、プロセス制御ストラテジを開発するための、トップダウンの工学的アプローチを示す。木のような構造の、最も高いレベルにあるプラント１０２から開始して、モデル１００は、ユーザが制御要素を閲覧または構成し得る、複数のレベルを含む。プラント１０２は、例えば、化学プラント、石油精製所、オートメーション工場、または制御され（少なくとも部分的に）、オートメーション化されたプロセスを有する、任意の他の環境であってもよい。図２に示されるように、プラント１０２は、１つのまたは数個のプラントエリア１０４を含んでもよく、プラントエリア１０４は、次いで、図２を参照してより詳細に記載されるような、一定の基本的または高度な制御タスクを実施するモジュール１０６を含んでもよい。機能ブロックダイアグラム１０８は、対応するモジュール１０６の制御論理を、１つ（単純な場合）または数個の（単純ではない場合）相互接続した機能ブロック１１０として定義してもよい。この意味で、機能ブロックダイアグラム１０８は、モジュール１０６の構造を定義する。機能ブロック１１０は、次いで、パラメータ１１２に対応する。本実施例において、比例−微分−積分（ＰＩＤ）機能ブロックが、ゲイン、一定の設定点（例えば、目標圧力）、入力信号等の調整パラメータに依存する、制御機能に関与する。アプリケーションパッケージ５０において、要素１０２〜１１２のそれぞれは、データ構造、ソフトウェアオブジェクト、または任意の他のデータの集合体によって表示されてもよい。要素のうちの少なくともいくつかはまた、プロセス制御システム１００における物理的要素、物理的要素の部品に対して、または逆に、物理的要素の集まりに対応する。例えば、ＰＩＤループモジュール１０６は、弁、位置決め装置、およびセンサに対応してもよく、ゲインチューニングパラメータ１１２は、制御器メモリの中に格納された値、アナログ信号伝達線を介して伝搬される信号等に対応してもよい。
【００２７】
次に、図３は、図３を参照して説明されるモジュール１０６のコンポーネントを図示する。有線または無線信号伝達を使用して物理エンティティと対話するために、モジュール１０６は、Ｉ／Ｏコンポーネント１２０を含む。アプリケーションパッケージ５０の観点から、Ｉ／Ｏコンポーネント１２０は、特定のソフトウェアオブジェクトに関連付けられるプロトコル固有のドライバであってもよい。一方で、モジュール１０６は、例えば、図形アイコン、アニメーション機能を有するダイナモ等を含み得る画面１２２を介して、ユーザに図形情報を提示する。モジュール１０６はまた、事象データを収集し、管理する履歴収集コンポーネント１２４、警報コンポーネント１２６、条件コンポーネント１２８、および、例えば、機能ブロックダイアグラム１０８（図２を参照）としてモジュール１０６のコンポーネントの操作を管理するアルゴリズムコンポーネント１３０を含んでもよい。図３に示されるように、パラメータ１３２は、種々のコンポーネント１２０〜１３０に関連付けられてもよい。
【００２８】
図４を参照すると、例えば、アプリケーションパッケージ５０（図１を参照）によって支援される構成環境またはシステム１５０は、図２および図３を参照して説明した、一般方法のうちの少なくともいくつかを利用してもよい。具体的には、モジュールテンプレートライブラリ１５２は、例えば、やはり分解図に図示される、ゲインスケジューリング制御のＰＩＤに対するモジュールテンプレート１５４、無駄時間補償制御ループのＰＩＤに対するモジュールテンプレート１５６、および標準ＰＩＤ制御ループに対するモジュールテンプレート１５８を含む、種々のアプリケーションおよび状況において使用されるための、いくつかのモジュールテンプレートを含んでもよい。概して、モジュールテンプレート１５４、１５６、および１５８のそれぞれは、広範囲な機能的要件に対処する。モジュールテンプレートライブラリ１５２に貢献するユーザは、例えば、多くのプロジェクトに関連するデータを解析する構成技師であってもよく、単一のモジュールテンプレートの中におけるすべての可能な状況を網羅することを試み得る。他の貢献者は、特定のプロジェクトにおける、一定の同一のまたは類似の機能性の頻繁な後続する複製に備えてテンプレートを開発するユーザであってもよく、後にこれらのモジュールテンプレートを使用してインスタンスを作成する同一のユーザであり得る。どちらの場合も、モジュールテンプレート１５４、１５６、および１５８は、指定のアプリケーションのコンテキストにおいて、ユーザが余分であると見なすことになる、少なくともいくつかのコンポーネント（例えば、機能ブロック、機能ブロックの群、パラメータ等）を典型的に含む。
【００２９】
これらのおよび他の考慮事項（例えば、制御器メモリの節約、処理能力の維持、モジュールのユーザへの提示の複雑さの低減等）に対処するため、構成環境１５０は、ユーザが、例えば、同一のモジュールテンプレート１５８から、異なる機能ブロックを有するインスタンスを得ることを可能にする。その結果、インスタンス１６０および１６２はモジュールテンプレート１５８に基づいているが、インスタンス１６０は、インスタンス１６２とは構造的に異なる。当然のことながら、インスタンス１６０および１６２はまた、異なるパラメータを含み得る。
【００３０】
モジュールテンプレート１５８を設計および編集する時、構成技師等のユーザは、必須型属性を機能ブロック１７０、１７２、および１７４に割り当てて、少なくとも機能ブロック１７０、１７２、および１７４が、モジュールテンプレート１５８に基づく各インスタンスの中に存在しなければならないことを示してもよい。代替的に、構成環境１５０は、デフォルト設定により、必須型属性をモジュールテンプレートの中の各機能ブロックに関連付けてもよく、ユーザは、所望される場合、および適用できる場合、デフォルト属性をオーバーライドすることができる。さらに、技師は、任意属性を機能ブロック１７６〜１７９に割り当てて、これらの機能ブロックを特定のインスタンスの中に含めるかどうかを、ユーザが後に選ぶことができるということを示すことができる。所望される場合、技師は、機能ブロック１７８と１７９とをあわせてグループ化し、共通の任意属性を機能ブロック１７８および１７９に割り当てることができる。またさらに、技師は、代用可能な属性を機能ブロック１８２に割り当てて、種々のブロックの機能ブロック１８２に対する代用を可能にできる。少なくともいくつかの場合において、技師は、機能ブロック１８２に対して選択可能な、許可できる機能ブロックの群を指定する。図４に図示される実施例では、モジュールテンプレート１５８は、機能ブロック１８２として使用することができる、３つの機能ブロックを指定する。モジュールテンプレート１５８の設計が完了すると、技師は、ワークステーション１３のメモリの中に存在してもよいライブラリ１５２（図１を参照）、別個のデータベース、オンラインレポジトリ等にモジュールテンプレート１５８を保存することができる。
【００３１】
構成環境１５０で動作しているテンプレート生成エンジン１８４は、新規のモジュールテンプレートの定義、既存のモジュールテンプレートへの修正、およびテンプレート構成および管理に関連する他の機能を支援し得る。テンプレート生成エンジン１８４は、ユーザが、１つまたは複数のコンポーネント（例えば、機能ブロック１７６〜１７９）を選択し、必須または任意属性を個別のコンポーネントまたはコンポーネントの群に割り当て、以下により詳細に記載される他の機能を実施することを可能にする、ユーザインターフェースと協働し得る。さらに、モジュールインスタンス化エンジン１８６は、ユーザのコマンドに応答して、モジュールインスタンス１６０および１６２を生成し得る。具体的には、モジュールインスタンス化エンジン１８６は、メモリを必須型コンポーネントおよび選択された任意コンポーネントに割り当て、制御器および／またはフィールド機器等の上で実行可能な命令を生成し得る。さらに、モジュールインスタンス化エンジン１８６は、生成されたモジュールインスタンス１６０および１６２の中の、選択された任意コンポーネントについての履歴データ（例えば、事象データ）の収集を可能にし得る。
【００３２】
インスタンス１６０および１６２を生成する前、または生成する際に（インスタンス化プロセスは矢印１９０および１９２によって表示される）、構成環境は、「親」モジュールテンプレート１５８が、各々のオプション選択ステージ１９４および１９６の間に、任意コンポーネントを含むことをユーザに示してもよい。構成環境１５０は、図形ダイアログ画面、テキストベースのダイアログ画面、スプレッドシート、または任意の他の形式のユーザインターフェースを表示して、ユーザが、任意コンポーネント１７６〜１７９のうちのどれが、インスタンス１６０または１６２に含められるべきであるか、および３つの可能な機能ブロックのうちのどれが、機能ブロック１８２に関連付けられるべきであるかを指定することを要求してもよい。任意に、構成環境１５０はまた、機能ブロック１７０、１７２、および１７４は必須であることを示してもよい。本実施例において、ユーザは、インスタンス１６０を作成する時、モジュールテンプレート１５８の中の利用可能なすべての機能ブロックを選択し、機能ブロック１７７、１７８、および１７９をインスタンス１６２から省くことを選ぶ。さらに、ユーザは、機能ブロック１８２が、インスタンス１６０ではタイプ１であり、インスタンス１６２ではタイプ２であるということを指定する。したがって、ユーザは、共有するモジュールテンプレート１５８に基づいて、２つの構造的に区別できるインスタンス１６０および１６２を生成する。
【００３３】
インスタンス１６０および１６２のグラフィック表示において、構成環境１５０は、親モジュールテンプレート１５８の元の構造的レイアウトを維持し、モジュールテンプレート１５８の中の、選択されていない任意コンポーネントが配置される場所に、空白スペースを表示してもよい。このようにして、構成環境１５０は、インスタンス１６０および１６２を、モジュールテンプレート１５８の派生物として容易に特定することができるため、ユーザに一定のレベルの快適性を提供する。さらに、ユーザが後に、当初退けた任意コンポーネントのうちのいくつかを再び有効化することを決定した場合、構成環境１５０は、これらの再び有効化されたコンポーネントを、あらかじめ割り当てられた位置に表示する。１つの具体的な実施例では、ユーザは、インスタンス１６２を編集し、任意機能ブロック１７７を選択することを後に決定し得る。構成環境１５０は、機能ブロック１７７を、モジュールテンプレート１５８によって指定された位置に表示する。
【００３４】
引き続き図４を参照すると、インスタンス１６０および１６２のそれぞれは、これらのインスタンスをモジュールテンプレート１５８に論理的にリンクする、親テンプレート識別子２００を含んでもよい。以下により詳細に記載されるように、親テンプレート識別子２００は、指定されたプロセス区域内で、モジュールテンプレート１５８に基づくすべてのインスタンスを特定すること、共通ダイアログを使用してインスタンス１６０および１６２を同時に編集すること等を含む、種々の目的のために使用され得る。さらに、インスタンス１６０および１６２のそれぞれはまた、モジュールテンプレート１５８において利用可能オプションのうちのどれが特定のインスタンスにおいて有効化されたかを示す、選択済オプションフィールド２０２または２０４をそれぞれ含んでもよい。いくつかの実施形態では、選択済オプションフィールド２０２は、各ビットが任意コンポーネントに対応するビットマスクであってもよく、ビット内に格納される値は、インスタンスの中におけるコンポーネントの有無を示す。親テンプレート識別子２００および選択済オプションフィールド２０２または２０４のそれぞれは、インスタンス１６０または１６２のオブジェクトデータの一部として保存されるか、または、別個に保存され、インスタンス１６０および１６２に論理的にリンクされてもよい。
【００３５】
いくつかの実施形態では、構成環境１５０は、親テンプレート識別子２００を保護として使用し、ユーザがモジュールテンプレートによって指定されたコンポーネントおよびパラメータのみを編集するように制限してもよい。必要な時には、ユーザは、所定のコマンドまたは手順を使用して、この保護をオーバーライドすることができる。構成環境１５０はまた、ユーザがインスタンスとモジュールテンプレートとの間のリンクを切ることを可能にし得る。例えば、ユーザは、親モジュールテンプレート１５８によって定められた範囲外の構造的な変更をインスタンス１６２に加えることを希望し得る。構成環境１５０は、これらの変更を加えると、親テンプレートへの接続が失われるということをユーザに、通知するように、ダイアログを自動的に生成してもよい。ユーザからの確認を受け取ると、構成環境１５０は、フィールド２００および２０４を削除または修正して、インスタンス１６２をモジュールテンプレート１５８から切り離し得る。後続の操作において、構成環境１５０は、インスタンス１６２を、「最初から」すなわち、従来のライブラリにおいて利用可能な基本機能ブロックから構築されたものとして扱う。
【００３６】
ここで図５を参照すると、いくつかのまたはすべてのアプリケーションパッケージ５０（図１を参照）によって支援される構成環境１５０は、前述のテンプレート１５４、１５６、および１５８等のモジュールテンプレートを構成するための、インターフェース画面またはウィンドウ２２０の例を含んでもよい。インターフェース画面２２０は、テキストのプルダウンメニュー２２４および絵文字メニュー２２６を有するツールバー２２２、ステンシル項目２４０を表示するステンシルウィンドウ２２８、およびダイアグラムウィンドウ２４２を含んでもよい。所望される場合、ツールバー２２２は、例えばＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたものに類似した、リボンスタイルのインターフェースであってもよい。ステンシルウィンドウ２２８は、任意の数の既定の制御要素または機能ブロックまたはリソースブロック等のブロックを含んでもよい。いくつかの実施形態では、ステンシルウィンドウ２２８はまた、ブロックのテーマによる配列（例えば、フィードバック制御に関連するすべてのブロック）または他の形式のグループ化を提供してもよい。さらに、各ステンシル項目は、関連する機能の素早い視覚的な識別のために、アイコン（例えば、一般的に使用される工学記号、説明的な絵等）を含んでもよい。インターフェース画面２２０を使用してモジュールテンプレートを設計する時、ユーザは、ステンシルウィンドウ２２８からステンシル項目を選択し、選択したステンシル項目をダイアグラムウィンドウ２４２内の所望の場所にドラッグし、選択したステンシル項目を所望の場所にドロップすることができる。アプリケーションパッケージ５０は、このようにして、ユーザが、単純なドラッグアンドドロップインターフェースを使用して、素早くモジュールテンプレートを構築し得る、直感的な構成環境を提供し得る。しかしながら、構成環境１５０はまた、一例を挙げると、テキストコマンド等の異なる種類のユーザインターフェースを介してユーザと対話し得るということに留意されたい。
【００３７】
概してユーザインターフェースに関して、構成環境１５０は、モジュール、制御ルーチン、およびプロセス制御システム１０の制御ストラテジの他の部分のテキストまたは図形構成のための、いくつかの、またはすべてのメイン／編集ペイン、種々のライブラリ制御要素、およびプロセス区域をブラウズするためのエクスプローラペイン、ドラッグアンドドロップ操作を介して、例えば、機能的群への任意分割を伴う、主要ペインの中の効率的選択および配置のためのアイコンを提示するパレットペイン、識別子、優先度、および種々の警告の説明を表示するための警告ペイン、種々の操作パラメータの名前、デフォルト値、現在の値等を一覧表示するパラメータペイン、物理的モジュールのアドレスを一覧表示する参照ペイン、メインペインに提示される図形の所望のサイズを、ユーザが容易に選択することを可能にするスライドバー、ウォッチペイン、フォーミュラペイン、構成環境１５０の現在の状態（例えば、「編集」）を示すステータスバー等を含んでもよい。つまり、概してプロセス制御システム１０に、具体的にはモジュールおよびモジュールテンプレートに関連する情報が、任意の所望の様態で提示され得る。
【００３８】
ダイアグラムウィンドウ２４２において、図５は、上記で概説された技術を使用して開発された、モジュールクラスまたはテンプレートの特定の一実施例を図示する。具体的には、モジュールクラスＰＩＤ＿ＳＴＤは、設定点およびエラー信号に基づいて、プロセス変数を制御する、標準ＰＩＤアルゴリズムを支援する。構成技師は、考えられる最も複雑なＰＩＤ制御について必要とされる機能のほとんど、または可能であれば、すべてを含めるように、制御モジュールテンプレートＰＩＤ＿ＳＴＤを設計してもよい。この点において、モジュールテンプレートＰＩＤ＿ＳＴＤは、ＰＢＬにおいて利用可能なテンプレートＰＩＤ＿ＬＴに類似する。しかしながら、図５は、明確にすること、および簡潔にする目的のために、ＰＩＤ＿ＬＴテンプレートのいくつかのブロックおよびパラメータを図示していないということに留意されたい。
【００３９】
ダイアグラム２５０は、モジュールテンプレートＰＩＤ＿ＳＴＤのコンポーネントの可能な１つのレイアウトを図示する。このモジュールテンプレートおよび他のモジュールテンプレートを設計する時、ユーザは、絵文字メニュー２２６の中のアイコン２５２をポイントしてクリックし、エリア選択ツールを有効化し、インターロック条件機能ブロック２５６およびＢｏｏｌｅａｎファン入力（ＢＦＩ）機能ブロック２５８の周囲にボックス（または他の形状）２５４を作画してエリア２６０を定義し、右クリックしてプロパティメニューを有効化し、任意属性をインターロック条件機能ブロック２５６および２５８に割り当てることができる。所望される場合、任意属性は、総体でインターロック条件機能ブロック２５６および２５８に適用され得る。代替的に、インターフェースウィンドウ２２０は、絵文字メニュー２２６の中に、１つのまたは数個の機能ブロックを選択するステップと任意属性をその選択に割り当てるステップを組み合わせる機能を有効化するためのアイコンを含んでもよい。当然のことながら、インターフェースウィンドウ２２０、または構成環境１５０の別のインターフェース要素は、蛍光ペンツール、テキストベースのコマンドダイアログ、プログラミングスクリプト支援等の、任意の所望の種類の選択およびプロパティ割り当てツールを含んでもよい。
【００４０】
図５への参照を継続すると、ユーザは、同様に、インターロック条件機能ブロック２７２の周囲にボックス２７０を作画してエリア２７４定義してもよい。いくつかの実施形態では、構成環境１５０は、例えば、ユーザが機能ブロックの集合体を用いて操作することを望まない場合、ユーザが任意属性を選択された機能ブロックに直接関連付けることを可能にし得る。したがって、ユーザは、インターロック条件機能ブロック２７２をクリックし、オプション選択メニューを有効化し、任意属性をそこに割り当てることができる。図５にさらに図示されるように、ユーザはまた、インターロック条件機能ブロック２７６および２７８の周囲に、および、集合的に施設アービトレーション論理に関与するエリア２８０の中の数個の機能ブロックおよびパラメータの周囲に、別個のボックスを描くことができる。ＰＩＤアービトレーションブロック２８２に加えて、エリア２８０はまた、例えば、ＡＣＱＵＩＲＥ＿ＩＤ（入力パラメータ２８４）、ＯＶＲ＿ＥＮＡＢ（入力パラメータ２８６）、およびＯＷＮＥＲ＿ＩＤ（出力パラメータ２８８）等の、数個のパラメータを含むということに留意されたい。したがって、構成環境１５０は、機能ブロック、パラメータ、または機能ブロックおよびパラメータの組み合わせの選択を支援する。
【００４１】
任意プロパティを機能ブロックまたは機能ブロックの群に割り当てることに加えて、ユーザは、エリア２６０、２７４、２８０等のそれぞれに、任意に名前を割り当てることができる。例えば、ユーザは、ＴＲＡＣＫ１という名前をエリア２６０に、ＴＲＡＣＫ２という名前をエリア２７４、ＡＲＢＩＴＲＡＩＯＮをエリア２８０に割り当てることができる。好ましくは、各名前は、モジュールテンプレートの特定のコンテキストにおいて、選択されたエリアに関連付けられる集合的機能を反映する。より具体的には、ＴＲＡＣＫ２という名前は、ＰＩＤ＿ＳＴＤテンプレートの将来のユーザに対して、対応するインターロック条件機能ブロック２７２が、多重トラックＰＩＤループにおいて、第２の入力、または「トラック」のサービスを提供し得るということを示す。
【００４２】
図５を参照して記載される実施例を継続すると、ユーザは、モジュールテンプレートＰＩＤ＿ＳＴＤを、（例えば、メモリ５２に配置される）プロセス制御システム１０のテンプレートライブラリ中、オンラインレポジトリの中、または別個のストレージデバイスの中に保存することができる。所望される場合、ユーザは、モジュールテンプレートＰＩＤ＿ＳＴＤをモジュールクラスに関連付けることができる。どちらの場合も、モジュールテンプレートＰＩＤ＿ＳＴＤは、同一のまたは異なるユーザが、モジュールテンプレートＰＩＤ＿ＳＴＤに基づいてモジュールインスタンスを作成することができるように、構成システム１５０によって認識される所定のフォーマットの中に格納され得る。
【００４３】
図６Ａおよび図６Ｂは、構成環境１５０が前述の属性割り当て技術のうちのいくつかを支援するように表示し得る、メニューおよびダイアログの例を図示する。具体的には、図６Ａは、例えば、機能ブロック３００およびユーザの機能ブロック３００のダブルクリックに応じてポップアップする、プルダウンメニュー３０２を図示する。プルダウンメニュー３０２は、選択された時に、任意プロパティを有効または無効にし、機能ブロック３００のショートカット名を割り当てるための、ユーザダイアログ３０４をトリガし得る、プロパティメニュー項目を含んでもよい。本実施例において、ユーザダイアログ３０４は、ＥＮＡＢＬＥおよびＤＩＳＡＢＬＥオプションを有するラジオボタン３０６、およびユーザが任意に入力できるテキスト入力ボックス３０８を含む。図６Ｂは、類似のプルダウンメニュー３１２およびユーザダイアログ３１４を図示する。しかしながら、構成環境１５０は、機能ブロック３１８および３２０を囲むボックス３１６内のエリアにプルダウンメニュー３１２を適用する。言い換えると、ダイアログ３１４を介して指定されたオプションは、数個の機能ブロックの群に適用される。
【００４４】
図７に図示される一実施例では、構成システム１５０のインターフェースウィンドウ３５０は、一定のクラスベースのモジュールテンプレートＰＩＤ＿ＬＯＯＰに基づいて、所望のオプションを選択することにより、複数のインスタンスを作成およびカスタマイズするための、便利で効率的なドラッグアンドドロップインターフェースを提供する。本実施形態におけるインターフェースウィンドウ３５０は、モジュールエクスプローラペイン３５２、詳細閲覧ペイン３５４、およびツールバー３５６を含む。モジュールエクスプローラペイン３５２は、プロセス制御システム１０の種々の要素を、ライブラリブランチ３６２（そしてそれはモジュールテンプレートブランチ３６４を含む）を含む、階層木３６０の形式で一覧表示し得る。概して、モジュールエクスプローラペイン３５２の中の要素は、任意の所望の様態で一覧表示され、提示され得る。さらに階層木３６０に関して、システム構成ブランチ３６６は、ブランチ３６８の下の一定のプロセス区域「Ａ」についての要素の群を含む、特定の制御ストラテジに関連する要素を一覧表示し得る。
【００４５】
例えば、連続制御のために、モジュールテンプレートＰＩＤ＿ＬＯＯＰから１つのまたは数個のモジュールインスタンスを作成するために、ユーザは、モジュールクラスＰＩＤ＿ＬＯＯＰを所望のプロセス区域またはブランチ３６８に対応するエリア等の領域にドラッグすることができる。プロセス領域は、エリア、ユニット、セル、または構成環境１５０がモジュール割り当てを可能にする、任意の他のエンティティであってもよい。この時、構成環境１５０は、モジュールテンプレートＰＩＤ＿ＬＯＯＰから作成される１つ以上のモジュールを定義し、命名するための、および１つ以上のモジュールについて、任意コンポーネントを選択するための、モジュール開発インターフェース３８０を自動的に表示してもよい。代替的に、ユーザは、専用のメニュー項目または一定のコマンドを使用して、モジュール開発インターフェース３８０を起動してもよい。モジュール開発インターフェース３８０は、定義タブ３８２、構成タブ３８４、プロセス区域選択メニュー３８６（例えば、プルダウンリスト）、およびモジュールテンプレート選択メニュー３８８を含んでもよい。ユーザは、ＯＫボタン３９０をクリックすることにより、定義および構成プロセスを完了することができる。いくつかの実施形態では、ＡＤＤボタン３９２は、ユーザが、選択されたモジュールテンプレート、すなわちテンプレートＰＩＤ＿ＬＯＯＰに基づいてモジュールインスタンスを追加することを可能にする。
【００４６】
いくつかの実施形態では、構成環境１５０は、対応するモジュールテンプレートが少なくとも１つの任意コンポーネントを含む場合のみに、モジュール開発インターフェース３８０を表示してもよい。言い換えると、一定のモジュールテンプレートが必須型コンポーネントのみを含む場合、インスタンスを生成する際にシステム開発インターフェースを表示することは必要ではない。
【００４７】
図７は、定義タブ３８２が有効化され、したがって、定義区域４００がフォアグラウンドにある、モジュール開発インターフェース３８０を図示する。概して、定義区域４００は、任意のレイアウトを有してもよく、任意の所望の種類の制御、セレクタ、および／またはダイアログを含んでもよい。しかしながら、図７の実施例は、それぞれの個別のモジュールが、カラム４０２の中の一意タグによって特定され、モジュールテンプレートＰＩＤ＿ＬＯＯＰの各任意コンポーネントが、カラム４０４、４０６、または４０８等の別個のカラムにおいて特定され、各行４２２〜４３０が、対応するモジュールについて選択されるオプションを指定する、定義区域４００の特に便利な表またはスプレッドシートレイアウトを図示する。言い換えると、定義区域４００の中の各セルは、一定のモジュール／任意コンポーネントチュープルに対するオプションを特定し、空白スペースは、その項目の省略を示す。したがって、行４２０は、タグ１００ＦＩＣ６０５によって特定可能なモジュールインスタンスに対して、カラム４０４（本実施例において、フィードフォワード制御入力値パラメータに関連付けられる機能ブロック）の中で特定された任意コンポーネントの標準（ＳＴＤ）タイプまたは「フレーバー」が選択されているということを示す一方で、行４２２は、タグＬＩＣ３１０のモジュールインスタンスが、このコンポーネントをまったく含まないということを示す。別の実施例を考慮すると、定義区域４００の中の情報は、６つの一覧表示されたインスタンスのそれぞれは任意コンポーネントＬＰ＿ＰＩＤを含むが、行４２２、４２４、および４２６の中のインスタンスがＳＴＤタイプのＬＰ＿ＰＩＤコンポーネントを含む一方で、行４２６の中のインスタンスはＦＦタイプのＬＰ＿ＰＩＤコンポーネントを含み、行４２８中のインスタンスは拡張された警告を有するＳＴＤタイプのＬＰ＿ＰＩＤコンポーネントを含み、行４３０中のインスタンスは拡張された警告を有するＦＦタイプのＬＰ＿ＰＩＤコンポーネントを含むということを示す。
【００４８】
概して、ユーザは、定義区域４００の中の任意のセルをクリックして、一定のオプションを選択するかまたは非選択し、セルの中の値（例えば、コンポーネントの種類）を変更すること等を行なうことができる。ユーザはまた、スライダバー４３２を操作して、所望のカラムにフォーカスを与えることができる。構成環境１５０のこのインターフェースウィンドウおよび類似のインターフェースウィンドウにおいて、モジュールタグカラム４５２は、スライダバー４３２が操作されている時、同一の位置に留まってもよい。いくつかの実施形態では、各セルは、特定の任意コンポーネントについて利用可能な種類のプルダウンリストを自動的に提供してもよい。前述のとおり、一定の任意コンポーネントは、インスタンスの中に存在してもしなくてもよく、対応するセルは、ユーザがインスタンスの中に任意コンポーネントを含めることを選んだ時、次にチェックマークまたは別の視覚的表示を表示してもよい。所望される場合、定義区域４００はまた、必須型コンポーネントを一覧表示して、ユーザが選択されたテンプレートに関連付けられるすべての機能ブロックを特定することを補助してもよい。この場合、必須型コンポーネントは、好ましくは、混同を防ぐために、グレー表示の形態か、または別個のタブ下に提示される。機能ブロックに加えて、定義区域４００は、モジュールテンプレートのパラメータおよび他のコンポーネントを（図３を参照）一覧表示し得るということにも留意されたい。さらに、図６Ａおよび図６Ｂを参照して前述のように、定義区域４００は、コンポーネントまたはコンポーネントの群に割り当てられたショートカット名を任意に表示してもよい。
【００４９】
前述に照らして、構成環境１５０は、任意の所望のレイアウト、例えば、複数のインスタンスおよび複数のコンポーネントを含む表形式、インスタンス固有のブランチ下に一覧表示される任意コンポーネントを用いた階層木、各インスタンスについての別個のタブ等を使用して、任意コンポーネントのリスト（または他の形式の特定）を提供してもよいということが理解されよう。さらに、構成環境１５０は、任意コンポーネントが除外されるべきかどうか、モジュールテンプレートによって指定される唯一の変形に含められるべきかどうか、またはモジュールテンプレートによって指定される、数個の種類のうちの１つに含められるべきかどうかをユーザが特定することができるようにするために、各任意コンポーネントについての任意の種類のセレクタを提供してもよい。いくつかの実施形態では、セレクタは、まず任意コンポーネントが特定のインスタンスに含められるべきかどうかを指定し、モジュールテンプレートが、任意コンポーネントの複数の可能な種類のフレーバーを指定する場合、可能な種類のフレーバーのどれが使用されるべきかを引き続いて指定するための、多重ステージダイアログを含んでもよい。言い換えると、構成環境１５０は、現在の任意コンポーネントについてのセレクタと別個の、または一体である種類セレクタを提供してもよい。
【００５０】
図８は、モジュール開発インターフェース３８０の別の動作状態を図示する。具体的には、ユーザが構成タブ３８４を有効化した時、モジュール開発インターフェース３８０は、構成区域４５０をフォアグラウンドに置く。構成区域４５０のレイアウトは、定義区域４００のレイアウトに類似してもよい。図８の実施例において、カラム４５２は、個別のモジュールインスタンスのタグを一覧表示し、カラム４５４〜４５８は、モジュールテンプレートＰＩＤ＿ＬＯＯＰの任意コンポーネントを一覧表示する。ユーザは、任意の所望のセルをクリックして、任意コンポーネントの選択を変更することができる。追加的に、ユーザは、カラム４６０をクリックして、モジュール開発インターフェース３８０のパラメータ構成ビューを有効化することができる。構成区域４５０は、ユーザがソーステンプレートを共有する複数のモジュールを効率的に構成することを可能にするということが理解されよう。構成の速度および効率を向上させることに加えて、共通構成区域４５０を支援することにより、モジュール開発インターフェース３８０はまた、モジュール間の機能的差異を明瞭に示す。具体的には、図８に示されるような任意コンポーネントの一覧表を見ることにより、ユーザは、各モジュールについて別個のインターフェース画面を有効化することなく、タグ１００ＦＩＣ１０１、１００ＤＩＣ２２２、および１００ＴＩＣ４５０を有するインスタンス間の機能的差異を直ちに確認することができる。さらに、例えば、ユーザが、すべてのインスタンスにおいてカラム４５８の中の、同一の種類の任意コンポーネントを選択することを望む場合、モジュール開発インターフェース３８０は、操作者のエラーの可能性を低減する。またさらに、いくつかの実施形態におけるモジュール開発インターフェース３８０は、特定の任意コンポーネント（例えば、ＡＩ１／ＬＰ＿ＩＮ）についての共通選択オプション（例えば、ＦＦ型）を構成区域４５０の各行に適用するための機能を提供してもよい。
【００５１】
図９を参照すると、モジュール開発インターフェース３８０はまた、パラメータ構成区域４５０に概して類似した、パラメータ構成区域４７０をフォアグラウンドに出してもよい。しかしながら、パラメータ構成区域４７０はまた、パラメータが適用される任意コンポーネントを特定するように、対応する機能ブロックの名前をバー４７２上に表示し、構成ビューの前のレベルに素早く戻ることを可能にするアップフォルダアイコン４７４を含む。少なくともいくつかの実施形態では、ユーザは、種々のモジュール／パラメータチュープルに対応するセルに、数値または英数字パラメータを直接打ち込むことができる。パラメータ構成区域４７０は、前述のとおり、モジュールパラメータカラム４６０（図８を参照）をクリックすることにより、有効化されてもよい。代替的に、ユーザは、例えば、モジュールエクスプローラペイン３５２または詳細閲覧ペイン３５４（図７を参照）の中のモジュールの図形またはテキストの識別子を直接クリックしてもよい。
【００５２】
いくつかの場合では、カラム４７８の中のパラメータＬＰ＿ＩＮ等のパラメータは、構造またはビットストリングとして定義され得る。図１０は、ユーザがその中でＬＰ＿ＩＮまたは類似のコマンドパラメータを修正する、モジュール開発インターフェース３８０のまた別の動作状態を図示する。この表示では、バー４７２はパラメータの名前を表示し、構成区域４７０は、それにしたがってビットマスクまたは構造ベースのパラメータに関連のある情報を表示するように更新される。この意味で、モジュール開発インターフェース３８０は、コンポーネントおよびパラメータの詳細にアクセスするための、効率的なアプローチを提供する。
【００５３】
再度図７を参照すると、ユーザがオプションおよびモジュールタグを入力した後、ユーザは、ＯＫボタン３９０をクリックすることができる。それに応答して、構成環境１５０は、それぞれが各々の行４２０〜４３０に指定されるオプションに従って構成される、６つのモジュールインスタンスを生成し、生成されたインスタンスを、ユーザがモジュールテンプレートＰＩＤ＿ＬＯＯＰをドラッグする位置の、ブランチ３６８の中に置く。いくつかの実施形態では、モジュール開発インターフェース３８０は、インスタンスの位置を指定する、各インスタンスについての追加パラメータを含んでもよい。所望される場合、構成環境１５０は、構成されたインスタンスを制御器等の対応する物理的要素に適用するプロセスを自動的に開始してもよく、または、ユーザは、ダウンロードプロセスを始めるための、別個の制御を有効にしてもよい。また、任意コンポーネントを有するモジュールテンプレートに基づくインスタンスは、一定の属性（例えば、親テンプレート識別子２００、選択済オプションフィールド２０２〜２０４等）をオブジェクト内に格納する必要がないことも企図される。制御器のメモリを節約するために、これらの属性は、ワークステーション１３のメモリの、ローカルまたはオンラインデータベース等に格納されてもよい。
【００５４】
代替的に、構成環境１５０は、インスタンス化された６つのモジュールインスタンスに関連する構成情報を、アプリケーションパッケージ５０の別のコンポーネントに伝達してもよい。例えば、アプリケーションパッケージ５０は、モジュールインスタンスにワークステーションメモリを割り当て、データベースと通信してインスタンスへの参照および他の情報を更新し、直接に、あるいはアプリケーションパッケージ５０の通信コンポーネントを介して、モジュールインスタンスを制御器１１および／またはスマートフィールド機器１９〜２２（図１を参照）にダウンロードする、モジュールインスタンス化エンジンを含んでもよい。概して、ユーザインターフェース画面を表示し、プロセスシングおよびメモリリソースを割り当て、モジュールインスタンスを制御器およびフィールド機器に適用することに関連する機能は、複数のワークステーション１３の間で分散されてもよく、いくつかの実施形態では、任意の所望の様態で他のコンピュータデバイスに分散されてもよいということに留意されたい。
【００５５】
モジュール開発インターフェース３８０は、プロセス制御システム１０の要件が変更された時や、以前にインスタンス化されたモジュールを編集する時等、後に呼び出されてもよいということが理解されよう。さらに、ユーザは、モジュールテンプレートを選択し、インスタンス化された指定のモジュールテンプレートからすべてのモジュールインスタンスを自動的に特定するために、一定の機能を呼び出すことができる。このように、ユーザは、以前に選択された対応する親モジュールテンプレートの中の異なるオプションのために、これらのモジュールインスタンスが同一でない場合でも、複数のモジュールインスタンスを効率的に探し、更新し得る。例えば、操作者は、特定の機能を実行する数個の４−２０ｍＡレガシーフィールド機器を、一定のプロセス区域の中で、同一または類似の機能を実施するＦｉｅｌｄｂｕｓデバイスに取り替えることを選び得る。構成環境１５０においてこれらの変更を適切に構成するために、操作者は、特定の機能のために開発されたモジュールテンプレートから派生するすべてのモジュールを、一定のプロセス区域の中で特定する機能を呼び出すことができる（当然のことながら、インスタンスが任意コンポーネントを有するモジュールテンプレートを使用してそもそも作成された場合）。図７〜図１０を参照して上で考察したものに類似したインターフェース画面を使用して、ユーザは、例えば、機能ブロックの新規の種類またはフレーバーを指定することにより、新規のＦｉｅｌｄｂｕｓ構成に対応するように、複数のインスタンスの中の１つのまたは数個の適当な任意コンポーネントを変更することができる。この意味で、ユーザは、各モジュールを個別に探したり、適当なダイアログを呼び出したりすることなく、複数のモジュールに適用可能な変更を効率的に伝搬することができる。いくつかの実施形態では、構成システム１５０はまた、インスタンスの集合的編集のための、スプレッドシート以外のユーザインターフェースを提供し得る。
【００５６】
別の状況では、ユーザは、モジュールテンプレートの中で利用可能なコンポーネントを、コンポーネントが当初に選択されなかったモジュールテンプレートに基づいて、インスタンスに容易に追加することができる。構成環境１５０は、モジュール開発インターフェース３８０に類似したインターフェース画面を提示してもよい。さらに、ユーザは、共通の親モジュールテンプレートを共有する複数のインスタンスへの追加または削除を伝搬することができる。
【００５７】
別の態様では、モジュールテンプレートは、任意コンポーネントの選択を反映するように適合した、標準表示要素または表示要素の群を含んでもよい。したがって、モジュールインスタンスは、インスタンスの中で実際に選択された表示要素のみを格納または参照してもよい。構成環境１５０がモジュールインスタンスのグラフィック表示を生成する時、グラフィック表示は、選択されたオプションを反映して、プレゼンテーションの明確さおよび一貫性を向上させることができる。一方、今日利用可能である構成環境のうちの少なくともいくつかは、ＦＡＬＳＥまたはゼロに設定されたパラメータによって無効化され、かつモジュールの物理的対応物において、事実上存在しない、コンポーネントを描写することにより、テンプレート由来のモジュールの雑然として紛らわしい表示を生じることがある。
【００５８】
構成環境１５０のモジュールテンプレートに関連付けられる、柔軟な図形の利点をよりよく図示するために、図１１および図１２は、前述のテンプレートＰＩＤ＿ＳＴＤを使用して生成された、モジュールインスタンスの２つの実施例を示す。図５および図１１を同時に参照すると、インターフェース画面５０２の中のモジュールダイアグラム５００は、エリア２８０の中の機能ブロックおよびパラメータと共に、機能ブロック２７６および２７８が省略されている一方で、インターロック条件機能ブロック２５６、２５８、および２７２が選択されている、モジュールテンプレートＰＩＤ＿ＳＴＤに基づくインスタンスに対応する。一方では、インターフェース画面５２２（図１２）の中のモジュールダイアグラム５２０は、モジュールテンプレートＰＩＤ＿ＳＴＤに基づく別のインスタンスに対応する。図１２のインスタンスは、任意インターロック条件機能ブロック２５６およびエリア２８０に関連付けられるアービトレーション機能を含む。当然のことながら、両インスタンスはまた、自由選択ではないコンポーネントを含む。図１１のインスタンスに含まれるブロック（および関連付けられるワイヤリング）は、両方共ＰＩＤ＿ＳＴＤテンプレートからインスタンス化されているが、異なっている。しかしながら、インターフェース画面５０２および５２２は、モジュールテンプレートＰＩＤ＿ＳＴＤにおいて指定される位置に任意ブロック２５６、２７２等を設置する。このように、テンプレートＰＩＤ＿ＳＴＤに基づく複数のインスタンスを使用して作業するユーザは、インスタンス間の機能的差異を直ちに特定することができる。
【００５９】
特定のインスタンスの中で使用されている表示要素のみを有効にするために、構成環境１５０は、選択済オプションフィールド２０２〜２０４および親テンプレートフィールド２００（図４を参照）を使用してもよい。具体的には、構成環境１５０は、親モジュールテンプレートへのリンクをたどることによって、表示要素または表示要素への参照を読み出し得、ダイアグラム５００または５２０を表示する際にどの表示要素が使用されるべきかを、選択済オプションフィールド２０２を使用して決定することができる。さらに、機能ブロックアイコンおよび標準図形等の固定表示要素に加えて、構成環境１５０は、ダイナモ、アニメーション、および他の図形要素を同様に支援してもよい。例えば、構成環境は、選択されたオプションおよび自由選択ではないコンポーネントに対応するダイナモスクリプトを自動的に生成（またはレポジトリから選択）してもよい。
【００６０】
モジュールインスタンスのグラフィック描写にさらに関して、図６Ａおよび図６Ｂを参照して説明された指定ショートカット名は、印刷された文書の中に、オフラインモードで、および構成環境１５０の範囲内および範囲外の両方の他のコンテキストで表示されてもよい。図１３に示されるように、例えば、インターフェース画面６００は、対応する任意コンポーネントに割り当てられたショートカット名６１０とともに機能ブロックがその中に図示される、ダイアグラム６０２を表示してもよい。本実施例における機能ブロック６１２および６１４は、ボックス６１６で囲まれる、単一の集合した任意コンポーネントに関連付けられるため、機能ブロック６１２および６１４は、ボックス６１６の角に表示される単一のショートカット名を共有するということに留意されたい。
【００６１】
概して図３〜図１３に関して、モジュールテンプレートは、テンプレートを使用して１つ以上のインスタンスが作成された後、そのテンプレートに対する変更を妨げるために、任意にソフトウェアロックを含み得ることも企図される。
【００６２】
任意コンポーネントを有するモジュールテンプレートを開発し、適用する技術が、ＰＩＤループを主に参照して上に記載されるが、モジュールテンプレートライブラリは、多様な制御ルーチンを対象とすることができ、例えば、アナログ制御（例えば、ＰＩＤループ）、モニタリング（例えば、アナログ入力モニタリング）、２状態モータ（例えば、ポンプおよび攪拌機のための制御）、３状態モータ（例えば、モータを前進／逆転させるための制御）、二方弁制御、シミュレーション等のためのモジュールテンプレートを含んでもよいということにも留意されたい。
【００６３】
本システムおよび方法は、説明のみで、かつ本発明を制限することを意図しない、特定の実施例を参照して説明されるが、本発明の精神および範囲を逸脱することなく、開示された実施形態に、変更、追加および／または削除が行われ得ることは、当業者には明白となろう。
【図１】
2011040059.tif 000003
【図２】
2011040059.tif 000004
【図３】
2011040059.tif 000005
【図４】
2011040059.tif 000006
【図５】
2011040059.tif 000007
【図６Ａ】
2011040059.tif 000008
【図６Ｂ】
2011040059.tif 000009
【図７】
2011040059.tif 000010
【図８】
2011040059.tif 000011
【図９】
2011040059.tif 000012
【図１０】
2011040059.tif 000013
【図１１】
2011040059.tif 000014
【図１２】
2011040059.tif 000015
【図１３】
2011040059.tif 000016