(58)【調査した分野】(Int.Cl.,DB名)
前記モジュールテンプレートに基づいて、前記モジュールインスタンスを生成するステップは、選択済オプション属性を前記モジュールインスタンスに関連付けるステップをさらに含み、前記選択済オプション属性は、前記複数のコンポーネントのそれぞれを特定し、前記特定されたコンポーネントが前記生成されたモジュールインスタンスの中に含まれるかどうかを指定する、請求項1に記載の方法。
前記複数のコンポーネントは、第1の複数のコンポーネントであり、前記モジュールテンプレートは、第2の複数のコンポーネントをさらに有し、前記モジュールインスタンスを生成するステップは、前記第2の複数のコンポーネントのそれぞれを、前記生成されたモジュールインスタンスの中に無条件に含めるステップをさらに含む、請求項1又は請求項2に記載の方法。
複数のモジュールテンプレートを有するテンプレートライブラリを提供するステップをさらに含み、前記モジュールテンプレートを提供するステップは、前記複数のモジュールテンプレートのうちの1つの選択に応答して、前記モジュールテンプレートを提供するステップを含む、請求項1〜請求項3の何れか1項に記載の方法。
前記モジュールテンプレートを提供するステップは、前記複数のコンポーネントを一覧表示し、前記複数のコンポーネントのそれぞれに対して各々の選択制御を有する、ダイアログ画面を表示するステップを含む、請求項1〜請求項4の何れか1項に記載の方法。
前記モジュールテンプレートは、前記1組の選択された1つ以上のコンポーネントからの一定のコンポーネントを関連付けることができる、複数の種類を指定し、前記方法は、
前記一定のコンポーネントに対する種類の選択を受け取るステップであって、前記種類の選択は、前記複数の種類のうちの1つを特定するステップを含み、
前記モジュールインスタンスを生成するステップは、前記種類の選択に従って、前記一定のコンポーネントをインスタンス化するステップをさらに含む、請求項1〜請求項6の何れか1項に記載の方法。
前記複数の種類は、複数のプロトコル、複数のアラーム機能、またはフィードバックオプションとフィードフォワードオプションを含む、複数の信号オプションのうちの少なくとも1つに対応する、請求項7に記載の方法。
前記生成されたモジュールインスタンスに対する変更要求を受け取るステップであって、前記変更要求は、前記一定のコンポーネントおよび前記複数の種類からの新規の種類を指定するステップと、
前記一定のコンポーネントを、前記新規の種類に関連付けるステップを含む、前記生成されたモジュールインスタンスを前記変更要求に従って更新するステップと、をさらに含む、請求項7に記載の方法。
前記選択は、第1の選択であり、前記1組の選択された1つ以上のコンポーネントは、第1の組の選択された1つ以上のコンポーネントであり、前記1組の選択されていないゼロ以上のコンポーネントは、第1の組の選択されていないゼロ以上のコンポーネントであり、前記モジュールインスタンスは、第1のモジュールインスタンスであり、
前記モジュールテンプレートの前記複数のコンポーネントのうちの1つ以上の第2の選択を受け取り、第2の組の選択された1つ以上のコンポーネントおよび第2の組の選択されていないゼロ以上のコンポーネントを定義するステップと、
前記モジュールテンプレートに基づいて、第2のモジュールインスタンスを生成するステップであって、前記第2の組の選択された1つ以上のコンポーネントを含め、前記第2の組の選択されていないゼロ以上のコンポーネントを含めないように、前記第2のモジュールインスタンスをインスタンス化するステップ含む、前記第2のモジュールインスタンスを生成するステップをさらに含み、
前記第1のモジュールインスタンスは、前記第2のモジュールインスタンスに含まれない、少なくとも1つのコンポーネントを含む、請求項1〜請求項10の何れか1項に記載の方法。
前記モジュールインスタンスを生成するステップは、前記1組の選択された1つ以上のコンポーネントに関連する、履歴データの収集を可能にするステップをさらに含む、請求項1〜請求項13の何れか1項に記載の方法。
前記モジュールインスタンスを生成するステップは、前記モジュールをダイナモスクリプトに関連付けるステップをさらに含み、前記ダイナモスクリプトは、少なくとも前記1組の選択された1つ以上のコンポーネントに対応する、請求項1〜請求項14の何れか1項に記載の方法。
前記複数のブロックのうちの前記1つは、前記複数のブロックのうちの第1のブロックであり、前記任意コンポーネントは、前記複数のブロックのうちの第2のブロックにさらに対応し、前記複数のブロックのうちの前記第1のブロックと、前記複数のブロックのうちの前記第2のブロックは、任意コンポーネント群を定義する、請求項16に記載のモジュールテンプレート。
前記任意コンポーネント識別子は、第1の任意コンポーネント識別子であり、前記複数のブロックのうちの1つは、前記複数のブロックのうちの第1のブロックであり、前記オプションデータは、前記複数のブロックのうちの第2のブロックに対応する第2の任意コンポーネント識別子をさらに含み、第1の任意コンポーネントおよび第2の任意コンポーネントのそれぞれは、前記第1の任意コンポーネントおよび前記第2の任意コンポーネントのうちの他方とは独立して、ユーザ選択に従って前記モジュールインスタンス中にインスタンス化される、請求項16又は請求項17に記載のモジュールテンプレート。
前記ユーザインターフェースは、前記複数の論理ブロックのうちの1つ以上を選択し、前記複数の論理ブロックのうちの前記選択された1つ以上を、前記任意属性に関連付けるための、インターフェース画面を含む、請求項19に記載のシステム。
前記モジュールインスタンス化エンジンは、前記任意コンポーネントが前記生成されたモジュールインスタンスの中で選択されると、前記任意コンポーネントに関連する履歴データの収集を可能にする、請求項19又は請求項20に記載のシステム。
前記モジュールインスタンス化エンジンは、前記生成されたモジュールインスタンスを、ダイナモスクリプトに関連付け、前記ダイナモスクリプトは、前記任意コンポーネントが選択されると、少なくとも前記任意コンポーネントに対応する、請求項19〜21の何れか1項に記載のシステム。
【背景技術】
【0002】
化学、石油または他のプロセスにおいて使用されるような、分散型または拡張可能なプロセス制御システム等のプロセス制御システムは、相互に、少なくとも1つのホストまたは操作者ワークステーションに、およびアナログ、デジタル、または混合アナログ/デジタルバスを介して、1つ以上のフィールド機器に通信可能に結合する、1つ以上のプロセス制御器を典型的に含む。例えば、弁、弁位置決め装置、スイッチおよび伝達装置(例えば、温度、圧力、および流量センサ)等であり得るフィールド機器は、プロセス内で、弁の開閉およびプロセスパラメータの測定等の機能を実行する。プロセス制御器は、フィールド機器によって行われるプロセス計測、および/またはフィールド機器に関連する他の情報を示す信号を受け、この情報を使用して、制御ルーチンを実装し、次に制御信号を生成し、これはプロセスの動作を制御するために、バス上でフィールド機器に送信される。フィールド機器および制御器からの情報は、典型的には、操作者が、プロセスの現状の閲覧、プロセスの動作の修正等の、プロセスに関わる任意の所望の機能を実施することを可能とするように、操作者のワークステーションによって実行される1つ以上のアプリケーションに利用可能とされる。
【0003】
テキサス州オースティンに本社を置くFisher Rosemount Systems,Inc.によって販売されるDeltaV(登録商標)システム等のいくつかのプロセス制御システムは、制御器の中および/またはフィールド機器の中に位置する機能ブロックもしくはモジュールとよばれる機能ブロックの群を使用して、制御操作を実行する。これらの場合、制御器または他のデバイスは、1つ以上の機能ブロックまたはモジュールを含むことと、およびそれらを実行することができる。それらの機能ブロックまたはモジュールは、それぞれ(同一のデバイス内部で、または異なるデバイス内部の)他の機能ブロックからの入力を受け取り、および/または、他の機能ブロックへの出力を提供し、かつプロセスパラメータの測定もしくは検出、デバイスの制御、または比例−微分−積分(PID)制御ルーチンの実装等の制御操作の実行等の、いくつかのプロセス操作を実行する。プロセス制御システム内の異なる機能ブロックおよびモジュールは、1つ以上のプロセス制御ループを形成するように、概して相互に通信可能に(例えば、バス上で)構成される。
【0004】
いくつかの場合では、機能ブロックは、Foundation(登録商標)Fieldbusによって公布される基準に準拠してもよく、または、類似してもよい。しかしながら、「用語機能ブロック」という用語は、本明細書で使用される場合、DeltaV(登録商標)またはFieldbusプロトコルが機能ブロックとして特定するものに限定されず、その代わりに、任意の種類の制御システムおよび/または通信プロトコルに関連付けられ、いくつかの制御機能を実装するために使用することができる、任意の他の種類のブロック、プログラム、ハードウェア、ファームウェア等を含む。さらに、「機能ブロック」という用語は、本明細書で使用される場合、概して、1つのまたは数個の制御機能をカプセル化する機能ブロック、1つ以上のプロセスパラメータを含むリソースブロック、センサ(例えば、温度センサ、圧力センサ等)、流量計、弁アクチュエータ等へのインターフェースに対応する変換器ブロック、または任意の他の種類のブロックを指し得る。さらに、機能ブロックは、ディスクリート入力(Discrete Input:DI)、ディスクリート出力(Discrete Output:DO)、アナログ入力(Analog Input:AO)、アナログ出力(Analog Output:AO)、PID制御、PD制御、PI制御、P制御、コントロールセレクタ(Control Selector)、バイアス/ゲイン設定器(Bias/Gain Station)等の基本機能ブロック、ならびに設定値ランプ発生器(Setpoint Ramp Generator)、タイマ(Timer)、アナログ警報機、離散警報機(Discrete Alarm)、無駄時間(Deadtime)等の高度機能ブロックを指し得る。またさらに、機能ブロックは、本明細書で使用される場合、例えば、数個のFieldbus機能ブロック、または1つのまたは数個の入れ子ブロックをも含む、入れ子ブロックであってもよい。また、機能ブロックは、オブジェクト志向のプログラミング環境の内のオブジェクトの形態を典型的に採るが、機能ブロックは、任意の適切なソフトウェア環境の中で、任意の所望のデータ構造を使用して定義することができるということに留意されたい。
【0005】
したがって、プロセス制御器は、流量制御ループ、温度制御ループ、圧力制御ループ等の、プロセスに対して定義される、またはプロセス内に包含される、いくつかの異なるループのそれぞれについて、異なるアルゴリズム、サブルーチンまたは制御ループ(これらはすべて制御ルーチンである)を実行するように典型的にプログラムされる。前述のとおり、かかる制御ループはそれぞれ、アナログ入力(AI)機能ブロック等の1つ以上の入力ブロック、比例−積分−微分(PID)またはファジー論理制御機能ブロック等の単一の出力制御ブロック、およびアナログ出力(AO)機能ブロック等の1つの出力ブロックを含む。
【0006】
制御ルーチン、およびかかるルーチンを実装する機能ブロックは、PID制御、ファジー論理制御、および、スミス予測機またはモデル予測制御(MPC)等のモデルベースの技術を含む、いくつかの制御技術に従って構成される。モデルベースの制御技術において、閉ループ制御応答を判定するためにルーチン内で使用されるパラメータは、プロセスへの入力としての役割を果たす、操作されたまたは測定された外乱における変化に対する動的プロセス応答に基づく。プロセス入力における変化に対するプロセスのこの応答の表示は、プロセスモデルとして特徴付けられ得る。例えば、第1次のパラメータ化プロセスモデルは、ゲイン、無駄時間、およびプロセスの時定数の値を特定し得る。
【0007】
典型的なプラントでは、技師は、操作者ワークステーション上で作動する構成システムを使用して、プロセス制御ストラテジを定義し、構成し得る。いくつかの構成システムは、技師が特定のアプリケーションに従って、選択された制御要素のインスタンスを選択し、生成することができるように、機能ブロックまたはモジュール(典型的にいくつかの機能ブロックから成る)等の制御要素を格納するためのライブラリを含み得る。また、構成システムは、インスタンスを、例えば、制御要素を制御器またはプログラマブルフィールド機器にダウンロードすることにより、プロセス制御環境に適用する前に、技師が選択された制御要素の生成されたインスタンスを修正して変更することを可能としてもよい。
【0008】
例えば、DeltaV(登録商標)システムの中のテンプレートライブラリは、基本的計測および制御機能性に対処する、種々のモジュールテンプレートを格納する。DeltaV(登録商標)システムの中のテンプレートは、自律またはクラスベースであることができる(すなわち、クラステンプレートからインスタンス化されたインスタンスにリンクし、クラステンプレートにおける変化をインスタンスに伝搬することができる)。技師は、対応するプロセス制御スキームを定義および構成する際に、1つのまたは数個のモジュールテンプレートを開始点としてしばしば使用する。しかしながら、モジュールテンプレートに対する典型的な修正は、著しい技術的努力を伴い、一定のチェックイン、チェックアウト、および文書化手順を必要とするため、テンプレートライブラリを使用した作業は、多大な時間を必要とする場合がある。
【0009】
プロセス制御システムを構成するタスクを単純化するため、Emerson(登録商標) Process Management社は、Project Builder Library(PBL)として知られる、一群の包括的な再利用可能モジュールテンプレートおよびモジュールクラスを開発した。概して、PBLにおけるモジュールテンプレートは、特定のモジュールに適用可能な、考えられる最も広範囲の構成オプションおよび状況に対処する。PBLに貢献する技師は、ISA S88.0、IEC 61508、IEC 61131−3等の国際基準に則って構築し、長期にわたるアプリケーションおよびプロジェクトエンジニアリングからの経験および最良の実践に立脚している。PBLを使用すると、技師は、モジュールテンプレートを選択し、所望の特性を可能にし、構成するために、モジュールパラメータの値を修正し、特定のアプリケーションに不必要な特性を無効にすることができる。例えば、一定のテンプレートは、一定の機能ブロックへの8つの可能な入力を可能とし得、したがって、これらの8つの入力に対応する8つの入力ブロックを含み得る。これらの入力の1つのみを必要とするユーザは、対応するパラメータに値FALSEを割り当てることにより、8つの入力のうちの7つを効果的に無効とすることができる。したがって、典型的なPBLテンプレートは、類似の目的のために定義されるDeltaV(登録商標)ライブラリモジュールよりも多くの特性を含む。例えば、連続制御(Continuous Control)のためのPBLテンプレートは、対応するDeltaV(登録商標)テンプレートのすべての機能、ならびに設備アービトレーション、有効/無効機能付きの4トラック入力および第1のアウト検出の支援、有効/無効機能付きの条件付きの警報および操作者アクセス、RCAS_INおよびROUT_INチャネルの状態を設定するための制御、操作者がモジュールにアクセスすることを任意に妨げるモードロック、故障パラメータ等に関する追加機能を含み得る。つまり、PBLモジュールテンプレートは、技師が特定のプロジェクトのために必要とし得る、モジュールのすべての機能性を含む可能性が高く、このモジュールを使用するために、技師は通常、モジュールパラメータのうちのいくつかのみ、またはすべての値を変更する必要がある。
【0010】
PBLは、プロセス制御を構成するプロセスを著しく単純化することができる一方、PBLモジュールテンプレートは、残念ながら比較的大量の制御器メモリを必要とする。具体的には、技師は、モジュールパラメータを修正することにより、モジュールテンプレートをカスタマイズするため、各インスタンスは、特定の機能ブロックがインスタンスにおいて動作可能かどうかに関わらず、関連付けられるパラメータと併せて、親モジュールテンプレートからすべての機能ブロックを継承する。さらに、各モジュールインスタンスが、対応するPBLモジュールテンプレートの機能性全体を留保するために、PBLテンプレートは常に「見たものが手に入るもの」(WYSIWYG)というユーザの体験を提供せず、技師は、どの機能ブロックおよびパラメータが実際に使用されているか判断するために、多くのパラメータを調べなければならない。
【発明を実施するための形態】
【0017】
図1は、任意コンポーネントを有するモジュールテンプレートを定義、編集、および使用する技術が適用され得る、プロセス制御システム10の実施例を図示する。制御システム10は、データヒストリアン12と、それぞれが表示画面14を有する、1つ以上のホストワークステーションまたはコンピュータ13(任意の種類のパソコン、ワークステーション等であってもよい)に接続される、プロセス制御器11とを含む。制御器11はまた、入力出力(I/O)カード26および28を介して、フィールド機器15〜22に接続される。データヒストリアン12は、データを格納するための、任意の所望の種類のメモリおよび任意の所望のまたは周知のソフトウェア、ハードウェアまたはファームウェアを有する、任意の所望の種類のデータ収集ユニットであってもよい。データヒストリアン12は、ワークステーション13と別個であっても(
図1に示されるように)、またはワークステーション13のうちの1つの一部分であってもよい。一例として、Fisher−Rosemount Systems,Inc.によって販売されるDeltaV(登録商標)制御器であってもよい制御器11は、例えば、イーサネット(登録商標)接続または任意の他の所望の通信ネットワークを介して、ホストコンピュータ13と、データヒストリアン12とに通信可能に接続される。制御器11はまた、例えば、標準4−20maデバイスおよび/またはFOUNDATION Fieldbusプロトコル、HARTプロトコル等の任意のスマート通信プロトコルに関連付けられる、任意の所望のハードウェアおよびソフトウェアを使用して、フィールド機器15〜22に通信可能に接続される。
【0018】
フィールド機器15〜22は、センサ、弁、伝達装置、位置決め装置等の任意の種類のデバイスであってもよく、一方、I/Oカード26および28は、任意の所望の通信または制御器プロトコルに準拠する、任意の種類のI/Oデバイスであってもよい。
図1に示される実施形態では、フィールド機器15〜18は、アナログライン上でI/Oカード26に通信する、標準4−20mAデバイスであってもよく、一方、フィールド機器19〜22は、Fieldbusプロトコル通信を使用して、デジタルバス上でI/Oカード28に通信する、Fieldbusフィールド機器等のスマートデバイスである。当然のことながら、フィールド機器15〜22は、将来開発される任意の基準またはプロトコルを含む、任意の他の所望の有線または無線基準またはプロトコルに準拠することができる。
【0019】
制御器11は、制御ループを含み得る1つ以上のプロセス制御ルーチンを実行または監視し、デバイス15〜22、ホストコンピュータ13およびデータヒストリアン12と通信して、プロセスを所望の様態で制御する、プロセッサ23を含む。制御ルーチンは、制御器メモリ24の中に格納されてもよく、または別様に制御器11に関連付けられてもよい(例えば、スマートフィールド機器19〜22に分散される)。概して、本明細書に記載される任意の制御ルーチンまたはモジュールは、所望される場合、異なる制御器または他のデバイスによって実装または実行される部分を含んでもよいということに留意すべきである。さらに、プロセス制御システム10の中に実装される、本明細書に記載の制御ルーチンまたはモジュールは、ソフトウェア、ファームウェア、ハードウェア等を含む、任意の形式をとってもよい。本開示の目的のために、プロセス制御モジュールは、例えば、任意のコンピュータ可読媒体上に格納される、ルーチン、ブロックまたはその任意の要素を含む、プロセス制御システムの任意の要素または部分であってもよい。モジュール、またはサブルーチン、サブルーチンの要素(コードのライン等)等の、制御手順の任意の要素であり得る制御ルーチンは、オブジェクト志向プログラミングを使用して、ラダー論理、シーケンシャル機能チャート、機能ブロック図を使用して、または任意の他のソフトウェアプログラミング言語または設計パラダイムを使用して、任意の所望のソフトウェアフォーマットに実装されてもよい。同様に、制御ルーチンは、例えば、1つ以上のEPROM、EEPROM、特定用途向け集積回路(ASIC)、または任意の他のハードウェアまたはファームウェア要素にハードコードされてもよい。したがって、制御器11は、任意の所望の様態で制御ストラテジまたは制御ルーチンを実装するように構成されてもよい。
【0020】
いくつかの実施形態では、制御器11は、機能ブロックを使用して制御ストラテジを実装する。しかしながら、任意パラメータを有するモジュールテンプレートを定義、編集、および使用する技術は、概して、他の制御方法または仕様(例えば、ラダー論理、シーケンシャル機能チャート等)に適用され得る。プロセス制御システム10において、機能ブロックは、制御論理、リソース論理、通信論理、変換器論理等のうちの1つ以上が、論理ブロックの中にカプセル化される、任意のスキームと一致し得る。説明を容易にするために、「論理ブロック」および「機能ブロック」という用語は、本明細書において、交換可能に使用される。各機能ブロックは、全体の制御ストラテジのオブジェクトまたは他の要素(例えば、サブルーチン)であり、通信リンクを介して他の機能ブロックと相互接続して、プロセス制御システム10内の1つ以上のプロセス制御ループを実装するように動作する。機能ブロックは、典型的には、伝達装置、センサまたは他のプロセスパラメータ測定デバイスに関連付けられるもの等の入力機能、PID、ファジー論理等を実行する制御ルーチンに関連付けられるもの等の制御機能、または弁等のいくつかのデバイスを制御して、プロセス制御システム10内でいくつかの物理的機能を実施する、出力機能のうちの1つを実行する。当然のことながら、ハイブリッドおよび他の種類の機能ブロックが存在してもよい。機能ブロックは、制御器11に格納され、制御器11によって実行されてもよく、これは、これらの機能ブロックが標準4−20mAデバイスおよびHARTデバイス等のいくつかの種類のスマートフィールド機器のために使用されるか、または関連付けられる場合に典型的であって、または、Fieldbusデバイスを用いた場合には、フィールド機器自体に格納され、フィールド機器自体によって実装されてもよい。
【0021】
図1の分解ブロック30によって図示されるように、制御器11は、ルーチン32および34として図示される、いくつかの単ループ制御ルーチンを含んでもよく、所望される場合、制御ループ36として図示される、1つ以上の高度制御ループを実装してもよい。かかるループは、それぞれ典型的に制御モジュールまたは単にモジュールとよばれる。単ループ制御ルーチン32および34は、単一入力/単一出力ファジー論理制御ブロックおよび単一入力/単一出力PID制御ブロックをそれぞれ使用して、適当なアナログ入力(AI)およびアナログ出力(AO)機能ブロックに接続される、単一のループ制御を実施するステップとして図示され、これは、弁等のプロセス制御デバイスに、温度および圧力伝達装置等の測定デバイスに、またはプロセス制御システム10内の任意の他のデバイスに関連付けられてもよい。高度制御ループ36は、1つ以上のAI機能ブロックに通信可能に接続される入力と、1つ以上のAO機能ブロックに通信可能に接続される出力とを有する、高度制御ブロック38を含めるように図示されている。しかしながら、高度制御ブロック38の入力および出力は、任意の他の所望の機能ブロックまたは制御要素に接続されて、他の種類の入力を受け取り、他の種類の制御出力を提供してもよい。高度制御ブロック38は、任意の種類のモデル予測制御(MPC)ブロック、ニューラルネットワークモデリングまたは制御ブロック、多変数ファジー論理制御ブロック、実時間オプティマイザブロック等であってもよい。高度制御ブロック38を含む、
図1に図示される機能ブロックは、制御器11によって実行することができるか、または、代替的に、ワークステーション13のうちの1つか、または、さらにはフィールド機器19〜22のうちの1つ等の任意の他の処理デバイスの中に位置し、任意の他の処理デバイスによって実行することができるということが理解されよう。
【0022】
メモリおよびプロセシングリソースを過度に使用することなく、プロセス制御システム10の制御ストラテジを素早く効率的に定義するために、認証されたユーザ(例えば、構成技師、操作者等)は、1つまたは複数の任意コンポーネントおよびゼロ以上の必須コンポーネントを用いて、モジュールテンプレートを定義し、使用してもよい。具体的には、ユーザは、機能ブロックを選択または定義すること、選択された機能ブロックを相互接続してモジュールの制御ルーチンを定義すること、モジュールのプロセスパラメータを定義すること、パラメータにデフォルト値を割り当てること等により、モジュールテンプレートを開発することができる。
図4〜
図11Cを参照して以下に詳細に記載するように、ユーザは、選択可能な属性をいくつかのまたはすべてのコンポーネントに割り当てて、モジュールテンプレートに基づく任意の特定のモジュールインスタンス(または単に「インスタンス」)において、これらのコンポーネントが任意であることを示すことができる。ユーザは、同様に、所望される場合、任意パラメータまたは他のモジュール属性を特定することができ、プロセス制御システム10を構成するために使用するために、例えば、データベース等のレポジトリの中にモジュールテンプレートを保存することができる。以下の実施例は、任意コンポーネントを有するモジュールテンプレートの後続の使用をさらに説明し、その使用には、特定のアプリケーションについてのインスタンスを生成する際、選択可能な属性によって、モジュールテンプレートにおける利用可能なコンポーネントを選択的に有効化すること、必須、および選択されたコンポーネントのみを有するインスタンスを、制御器および/またはスマートフィールド機器の中へとダウンロードすること、モジュールテンプレートおよび選択された任意コンポーネントに従ってインスタンスを編集すること、共通モジュールテンプレートから派生する複数のインスタンスを編集すること等が挙げられる。任意コンポーネントを操作することに関する技術は、主にモジュールテンプレートに関して考察されるが、類似の技術もまたモジュールクラスに適用され得るということに留意されたい。したがって、以下の考察において、「モジュールテンプレート」および「モジュールクラス」という用語は、交換可能に使用される。
【0023】
図1に図示される実施例では、ワークステーション13は、任意パラメータを有するモジュールテンプレートに関連する操作を支援する、操作者インターフェースアプリケーションパッケージ50を(個別に、分散型の様態で、または任意の他の様態で)含む。認証されたユーザはまた、操作者インターフェースアプリケーションパッケージ50を使用して、プロセス制御システム10内に接続された、デバイス、ユニット、および他の要素の種々の機能を閲覧、編集、および管理するためにアクセスすることができる。操作者インターフェースアプリケーションパッケージ50は、ワークステーション13のメモリ52の中に存在してもよく、アプリケーションパッケージ50内のアプリケーションまたはエンティティのそれぞれは、各ワークステーション13に伴なう各々のプロセッサ54上で実行されるように適合されてもよい。アプリケーションパッケージ全体50は、ワークステーション13の中に格納されるように図示されるが、これらのアプリケーションまたは他のエンティティのうちのいくつかは、システム10内の、またはシステム10に関連付けられる、またはシステム10と通信する、他のワークステーションまたはコンピュータデバイスの中に格納され、実行されてもよい。さらに、アプリケーションパッケージ50は、ワークステーション13に伴う表示画面14、または手持ち式デバイス、ラップトップ、他のワークステーション、プリンタ等を含む、任意の他の所望の表示画面または表示装置に、表示出力を提供してもよい。同様に、アプリケーションパッケージ50内のアプリケーションは、分割されて2つ以上のコンピュータまたは機械上で実行されてもよく、相互に連動して動作するように構成されてもよい。
【0024】
本明細書に記載される技術を支援するために、アプリケーションパッケージ50は、任意コンポーネントを有するモジュールテンプレートを作成し、修正するための、テンプレート開発アプリケーションまたはインターフェースと、モジュールテンプレートを特定のプロセス区域に適用する(すなわち、インスタンス化する)ための、システム構成アプリケーションまたはインターフェースとを含んでもよい。所望される場合、単一のアプリケーションまたはアプリケーションフレームワークは、モジュールテンプレート開発とモジュールテンプレート適用の両方を支援し得る。一例として、アプリケーションパッケージ50は、Emerson Process Management社によって開発されたPlantWeb(登録商標)デジタルアーキテクチャに準拠していてもよく、より具体的には、1つのまたは数個のDeltaV(登録商標)アプリケーション(例えば、Control Studio、Plant Explorer、Operate等)を含んでもよい。任意コンポーネントを有するモジュールテンプレートを開発し、適用するための支援は、次にControl Studioアプリケーションに追加することができるが、一方、任意パラメータを有するモジュールテンプレートは、より従来型のテンプレートおよび機能とともにDeltaV(登録商標)ライブラリの中に格納されてもよい。この実施例の説明を続けると、Plant Explorerは、ユーザが、モジュールテンプレートライブラリをブラウズし、所望のモジュールテンプレートを選択し、モジュールテンプレートを使用して生成されたモジュールインスタンスを閲覧し、含まれるどのコンポーネントが任意であるか判断し、インスタンス上で他の操作を実施することを可能にすることにより、モジュールテンプレートに関連する操作についてのさらなる支援を提供してもよい。概して、モジュールテンプレートに関連する機能性は、1つまたは複数のソフトウェアアプリケーションに任意の所望の様態で配分され得るということが理解されよう。
【0025】
プロセス制御環境におけるモジュールテンプレートの構造および動作をよりよく図示するため、
図2は、モジュールレベルを含む、プロセス制御システム10を構成する際に使用され得る、制御要素の1つの概して許容される階層型構造を図示する。次に、
図3は、
図2に図示される階層型構造のモジュールレベルに概して伴う、一般的に使用されるモジュールのコンポーネントを概略的に図示する。次に、
図4〜
図10Cは、操作者インターフェースアプリケーションパッケージ50のユーザインターフェースの種々の実施例を参照して、任意コンポーネントを有するモジュールテンプレートを開発し、適用する技術を図示する。より具体的には、
図4は、概して任意コンポーネントを有するモジュールテンプレートに基づいて、モジュールのインスタンスを生成する技術を図示し、
図5〜
図6Bは、任意コンポーネントを有するモジュールテンプレートを開発するための、インターフェース画面の実施例を図示し、
図7A〜
図10Cは、対応するユーザインターフェースに提示されるように、このモジュールテンプレートを使用して生成された、インスタンスの数個の実施例を図示する。
【0026】
図2を参照すると、階層型モデル100は、プロセス制御ストラテジを開発するための、トップダウンの工学的アプローチを示す。木のような構造の、最も高いレベルにあるプラント102から開始して、モデル100は、ユーザが制御要素を閲覧または構成し得る、複数のレベルを含む。プラント102は、例えば、化学プラント、石油精製所、オートメーション工場、または制御され(少なくとも部分的に)、オートメーション化されたプロセスを有する、任意の他の環境であってもよい。
図2に示されるように、プラント102は、1つのまたは数個のプラントエリア104を含んでもよく、プラントエリア104は、次いで、
図2を参照してより詳細に記載されるような、一定の基本的または高度な制御タスクを実施するモジュール106を含んでもよい。機能ブロックダイアグラム108は、対応するモジュール106の制御論理を、1つ(単純な場合)または数個の(単純ではない場合)相互接続した機能ブロック110として定義してもよい。この意味で、機能ブロックダイアグラム108は、モジュール106の構造を定義する。機能ブロック110は、次いで、パラメータ112に対応する。本実施例において、比例−微分−積分(PID)機能ブロックが、ゲイン、一定の設定点(例えば、目標圧力)、入力信号等の調整パラメータに依存する、制御機能に関与する。アプリケーションパッケージ50において、要素102〜112のそれぞれは、データ構造、ソフトウェアオブジェクト、または任意の他のデータの集合体によって表示されてもよい。要素のうちの少なくともいくつかはまた、プロセス制御システム100における物理的要素、物理的要素の部品に対して、または逆に、物理的要素の集まりに対応する。例えば、PIDループモジュール106は、弁、位置決め装置、およびセンサに対応してもよく、ゲインチューニングパラメータ112は、制御器メモリの中に格納された値、アナログ信号伝達線を介して伝搬される信号等に対応してもよい。
【0027】
次に、
図3は、
図3を参照して説明されるモジュール106のコンポーネントを図示する。有線または無線信号伝達を使用して物理エンティティと対話するために、モジュール106は、I/Oコンポーネント120を含む。アプリケーションパッケージ50の観点から、I/Oコンポーネント120は、特定のソフトウェアオブジェクトに関連付けられるプロトコル固有のドライバであってもよい。一方で、モジュール106は、例えば、図形アイコン、アニメーション機能を有するダイナモ等を含み得る画面122を介して、ユーザに図形情報を提示する。モジュール106はまた、事象データを収集し、管理する履歴収集コンポーネント124、警報コンポーネント126、条件コンポーネント128、および、例えば、機能ブロックダイアグラム108(
図2を参照)としてモジュール106のコンポーネントの操作を管理するアルゴリズムコンポーネント130を含んでもよい。
図3に示されるように、パラメータ132は、種々のコンポーネント120〜130に関連付けられてもよい。
【0028】
図4を参照すると、例えば、アプリケーションパッケージ50(
図1を参照)によって支援される構成環境またはシステム150は、
図2および
図3を参照して説明した、一般方法のうちの少なくともいくつかを利用してもよい。具体的には、モジュールテンプレートライブラリ152は、例えば、やはり分解図に図示される、ゲインスケジューリング制御のPIDに対するモジュールテンプレート154、無駄時間補償制御ループのPIDに対するモジュールテンプレート156、および標準PID制御ループに対するモジュールテンプレート158を含む、種々のアプリケーションおよび状況において使用されるための、いくつかのモジュールテンプレートを含んでもよい。概して、モジュールテンプレート154、156、および158のそれぞれは、広範囲な機能的要件に対処する。モジュールテンプレートライブラリ152に貢献するユーザは、例えば、多くのプロジェクトに関連するデータを解析する構成技師であってもよく、単一のモジュールテンプレートの中におけるすべての可能な状況を網羅することを試み得る。他の貢献者は、特定のプロジェクトにおける、一定の同一のまたは類似の機能性の頻繁な後続する複製に備えてテンプレートを開発するユーザであってもよく、後にこれらのモジュールテンプレートを使用してインスタンスを作成する同一のユーザであり得る。どちらの場合も、モジュールテンプレート154、156、および158は、指定のアプリケーションのコンテキストにおいて、ユーザが余分であると見なすことになる、少なくともいくつかのコンポーネント(例えば、機能ブロック、機能ブロックの群、パラメータ等)を典型的に含む。
【0029】
これらのおよび他の考慮事項(例えば、制御器メモリの節約、処理能力の維持、モジュールのユーザへの提示の複雑さの低減等)に対処するため、構成環境150は、ユーザが、例えば、同一のモジュールテンプレート158から、異なる機能ブロックを有するインスタンスを得ることを可能にする。その結果、インスタンス160および162はモジュールテンプレート158に基づいているが、インスタンス160は、インスタンス162とは構造的に異なる。当然のことながら、インスタンス160および162はまた、異なるパラメータを含み得る。
【0030】
モジュールテンプレート158を設計および編集する時、構成技師等のユーザは、必須型属性を機能ブロック170、172、および174に割り当てて、少なくとも機能ブロック170、172、および174が、モジュールテンプレート158に基づく各インスタンスの中に存在しなければならないことを示してもよい。代替的に、構成環境150は、デフォルト設定により、必須型属性をモジュールテンプレートの中の各機能ブロックに関連付けてもよく、ユーザは、所望される場合、および適用できる場合、デフォルト属性をオーバーライドすることができる。さらに、技師は、任意属性を機能ブロック176〜179に割り当てて、これらの機能ブロックを特定のインスタンスの中に含めるかどうかを、ユーザが後に選ぶことができるということを示すことができる。所望される場合、技師は、機能ブロック178と179とをあわせてグループ化し、共通の任意属性を機能ブロック178および179に割り当てることができる。またさらに、技師は、代用可能な属性を機能ブロック182に割り当てて、種々のブロックの機能ブロック182に対する代用を可能にできる。少なくともいくつかの場合において、技師は、機能ブロック182に対して選択可能な、許可できる機能ブロックの群を指定する。
図4に図示される実施例では、モジュールテンプレート158は、機能ブロック182として使用することができる、3つの機能ブロックを指定する。モジュールテンプレート158の設計が完了すると、技師は、ワークステーション13のメモリの中に存在してもよいライブラリ152(
図1を参照)、別個のデータベース、オンラインレポジトリ等にモジュールテンプレート158を保存することができる。
【0031】
構成環境150で動作しているテンプレート生成エンジン184は、新規のモジュールテンプレートの定義、既存のモジュールテンプレートへの修正、およびテンプレート構成および管理に関連する他の機能を支援し得る。テンプレート生成エンジン184は、ユーザが、1つまたは複数のコンポーネント(例えば、機能ブロック176〜179)を選択し、必須または任意属性を個別のコンポーネントまたはコンポーネントの群に割り当て、以下により詳細に記載される他の機能を実施することを可能にする、ユーザインターフェースと協働し得る。さらに、モジュールインスタンス化エンジン186は、ユーザのコマンドに応答して、モジュールインスタンス160および162を生成し得る。具体的には、モジュールインスタンス化エンジン186は、メモリを必須型コンポーネントおよび選択された任意コンポーネントに割り当て、制御器および/またはフィールド機器等の上で実行可能な命令を生成し得る。さらに、モジュールインスタンス化エンジン186は、生成されたモジュールインスタンス160および162の中の、選択された任意コンポーネントについての履歴データ(例えば、事象データ)の収集を可能にし得る。
【0032】
インスタンス160および162を生成する前、または生成する際に(インスタンス化プロセスは矢印190および192によって表示される)、構成環境は、「親」モジュールテンプレート158が、各々のオプション選択ステージ194および196の間に、任意コンポーネントを含むことをユーザに示してもよい。構成環境150は、図形ダイアログ画面、テキストベースのダイアログ画面、スプレッドシート、または任意の他の形式のユーザインターフェースを表示して、ユーザが、任意コンポーネント176〜179のうちのどれが、インスタンス160または162に含められるべきであるか、および3つの可能な機能ブロックのうちのどれが、機能ブロック182に関連付けられるべきであるかを指定することを要求してもよい。任意に、構成環境150はまた、機能ブロック170、172、および174は必須であることを示してもよい。本実施例において、ユーザは、インスタンス160を作成する時、モジュールテンプレート158の中の利用可能なすべての機能ブロックを選択し、機能ブロック177、178、および179をインスタンス162から省くことを選ぶ。さらに、ユーザは、機能ブロック182が、インスタンス160ではタイプ1であり、インスタンス162ではタイプ2であるということを指定する。したがって、ユーザは、共有するモジュールテンプレート158に基づいて、2つの構造的に区別できるインスタンス160および162を生成する。
【0033】
インスタンス160および162のグラフィック表示において、構成環境150は、親モジュールテンプレート158の元の構造的レイアウトを維持し、モジュールテンプレート158の中の、選択されていない任意コンポーネントが配置される場所に、空白スペースを表示してもよい。このようにして、構成環境150は、インスタンス160および162を、モジュールテンプレート158の派生物として容易に特定することができるため、ユーザに一定のレベルの快適性を提供する。さらに、ユーザが後に、当初退けた任意コンポーネントのうちのいくつかを再び有効化することを決定した場合、構成環境150は、これらの再び有効化されたコンポーネントを、あらかじめ割り当てられた位置に表示する。1つの具体的な実施例では、ユーザは、インスタンス162を編集し、任意機能ブロック177を選択することを後に決定し得る。構成環境150は、機能ブロック177を、モジュールテンプレート158によって指定された位置に表示する。
【0034】
引き続き
図4を参照すると、インスタンス160および162のそれぞれは、これらのインスタンスをモジュールテンプレート158に論理的にリンクする、親テンプレート識別子200を含んでもよい。以下により詳細に記載されるように、親テンプレート識別子200は、指定されたプロセス区域内で、モジュールテンプレート158に基づくすべてのインスタンスを特定すること、共通ダイアログを使用してインスタンス160および162を同時に編集すること等を含む、種々の目的のために使用され得る。さらに、インスタンス160および162のそれぞれはまた、モジュールテンプレート158において利用可能オプションのうちのどれが特定のインスタンスにおいて有効化されたかを示す、選択済オプションフィールド202または204をそれぞれ含んでもよい。いくつかの実施形態では、選択済オプションフィールド202は、各ビットが任意コンポーネントに対応するビットマスクであってもよく、ビット内に格納される値は、インスタンスの中におけるコンポーネントの有無を示す。親テンプレート識別子200および選択済オプションフィールド202または204のそれぞれは、インスタンス160または162のオブジェクトデータの一部として保存されるか、または、別個に保存され、インスタンス160および162に論理的にリンクされてもよい。
【0035】
いくつかの実施形態では、構成環境150は、親テンプレート識別子200を保護として使用し、ユーザがモジュールテンプレートによって指定されたコンポーネントおよびパラメータのみを編集するように制限してもよい。必要な時には、ユーザは、所定のコマンドまたは手順を使用して、この保護をオーバーライドすることができる。構成環境150はまた、ユーザがインスタンスとモジュールテンプレートとの間のリンクを切ることを可能にし得る。例えば、ユーザは、親モジュールテンプレート158によって定められた範囲外の構造的な変更をインスタンス162に加えることを希望し得る。構成環境150は、これらの変更を加えると、親テンプレートへの接続が失われるということをユーザに、通知するように、ダイアログを自動的に生成してもよい。ユーザからの確認を受け取ると、構成環境150は、フィールド200および204を削除または修正して、インスタンス162をモジュールテンプレート158から切り離し得る。後続の操作において、構成環境150は、インスタンス162を、「最初から」すなわち、従来のライブラリにおいて利用可能な基本機能ブロックから構築されたものとして扱う。
【0036】
ここで
図5を参照すると、いくつかのまたはすべてのアプリケーションパッケージ50(
図1を参照)によって支援される構成環境150は、前述のテンプレート154、156、および158等のモジュールテンプレートを構成するための、インターフェース画面またはウィンドウ220の例を含んでもよい。インターフェース画面220は、テキストのプルダウンメニュー224および絵文字メニュー226を有するツールバー222、ステンシル項目240を表示するステンシルウィンドウ228、およびダイアグラムウィンドウ242を含んでもよい。所望される場合、ツールバー222は、例えばMicrosoft Corporationによって開発されたものに類似した、リボンスタイルのインターフェースであってもよい。ステンシルウィンドウ228は、任意の数の既定の制御要素または機能ブロックまたはリソースブロック等のブロックを含んでもよい。いくつかの実施形態では、ステンシルウィンドウ228はまた、ブロックのテーマによる配列(例えば、フィードバック制御に関連するすべてのブロック)または他の形式のグループ化を提供してもよい。さらに、各ステンシル項目は、関連する機能の素早い視覚的な識別のために、アイコン(例えば、一般的に使用される工学記号、説明的な絵等)を含んでもよい。インターフェース画面220を使用してモジュールテンプレートを設計する時、ユーザは、ステンシルウィンドウ228からステンシル項目を選択し、選択したステンシル項目をダイアグラムウィンドウ242内の所望の場所にドラッグし、選択したステンシル項目を所望の場所にドロップすることができる。アプリケーションパッケージ50は、このようにして、ユーザが、単純なドラッグアンドドロップインターフェースを使用して、素早くモジュールテンプレートを構築し得る、直感的な構成環境を提供し得る。しかしながら、構成環境150はまた、一例を挙げると、テキストコマンド等の異なる種類のユーザインターフェースを介してユーザと対話し得るということに留意されたい。
【0037】
概してユーザインターフェースに関して、構成環境150は、モジュール、制御ルーチン、およびプロセス制御システム10の制御ストラテジの他の部分のテキストまたは図形構成のための、いくつかの、またはすべてのメイン/編集ペイン、種々のライブラリ制御要素、およびプロセス区域をブラウズするためのエクスプローラペイン、ドラッグアンドドロップ操作を介して、例えば、機能的群への任意分割を伴う、主要ペインの中の効率的選択および配置のためのアイコンを提示するパレットペイン、識別子、優先度、および種々の警告の説明を表示するための警告ペイン、種々の操作パラメータの名前、デフォルト値、現在の値等を一覧表示するパラメータペイン、物理的モジュールのアドレスを一覧表示する参照ペイン、メインペインに提示される図形の所望のサイズを、ユーザが容易に選択することを可能にするスライドバー、ウォッチペイン、フォーミュラペイン、構成環境150の現在の状態(例えば、「編集」)を示すステータスバー等を含んでもよい。つまり、概してプロセス制御システム10に、具体的にはモジュールおよびモジュールテンプレートに関連する情報が、任意の所望の様態で提示され得る。
【0038】
ダイアグラムウィンドウ242において、
図5は、上記で概説された技術を使用して開発された、モジュールクラスまたはテンプレートの特定の一実施例を図示する。具体的には、モジュールクラスPID_STDは、設定点およびエラー信号に基づいて、プロセス変数を制御する、標準PIDアルゴリズムを支援する。構成技師は、考えられる最も複雑なPID制御について必要とされる機能のほとんど、または可能であれば、すべてを含めるように、制御モジュールテンプレートPID_STDを設計してもよい。この点において、モジュールテンプレートPID_STDは、PBLにおいて利用可能なテンプレートPID_LTに類似する。しかしながら、
図5は、明確にすること、および簡潔にする目的のために、PID_LTテンプレートのいくつかのブロックおよびパラメータを図示していないということに留意されたい。
【0039】
ダイアグラム250は、モジュールテンプレートPID_STDのコンポーネントの可能な1つのレイアウトを図示する。このモジュールテンプレートおよび他のモジュールテンプレートを設計する時、ユーザは、絵文字メニュー226の中のアイコン252をポイントしてクリックし、エリア選択ツールを有効化し、インターロック条件機能ブロック256およびBooleanファン入力(BFI)機能ブロック258の周囲にボックス(または他の形状)254を作画してエリア260を定義し、右クリックしてプロパティメニューを有効化し、任意属性をインターロック条件機能ブロック256および258に割り当てることができる。所望される場合、任意属性は、総体でインターロック条件機能ブロック256および258に適用され得る。代替的に、インターフェースウィンドウ220は、絵文字メニュー226の中に、1つのまたは数個の機能ブロックを選択するステップと任意属性をその選択に割り当てるステップを組み合わせる機能を有効化するためのアイコンを含んでもよい。当然のことながら、インターフェースウィンドウ220、または構成環境150の別のインターフェース要素は、蛍光ペンツール、テキストベースのコマンドダイアログ、プログラミングスクリプト支援等の、任意の所望の種類の選択およびプロパティ割り当てツールを含んでもよい。
【0040】
図5への参照を継続すると、ユーザは、同様に、インターロック条件機能ブロック272の周囲にボックス270を作画してエリア274定義してもよい。いくつかの実施形態では、構成環境150は、例えば、ユーザが機能ブロックの集合体を用いて操作することを望まない場合、ユーザが任意属性を選択された機能ブロックに直接関連付けることを可能にし得る。したがって、ユーザは、インターロック条件機能ブロック272をクリックし、オプション選択メニューを有効化し、任意属性をそこに割り当てることができる。
図5にさらに図示されるように、ユーザはまた、インターロック条件機能ブロック276および278の周囲に、および、集合的に施設アービトレーション論理に関与するエリア280の中の数個の機能ブロックおよびパラメータの周囲に、別個のボックスを描くことができる。PIDアービトレーションブロック282に加えて、エリア280はまた、例えば、ACQUIRE_ID(入力パラメータ284)、OVR_ENAB(入力パラメータ286)、およびOWNER_ID(出力パラメータ288)等の、数個のパラメータを含むということに留意されたい。したがって、構成環境150は、機能ブロック、パラメータ、または機能ブロックおよびパラメータの組み合わせの選択を支援する。
【0041】
任意プロパティを機能ブロックまたは機能ブロックの群に割り当てることに加えて、ユーザは、エリア260、274、280等のそれぞれに、任意に名前を割り当てることができる。例えば、ユーザは、TRACK1という名前をエリア260に、TRACK2という名前をエリア274、ARBITRAIONをエリア280に割り当てることができる。好ましくは、各名前は、モジュールテンプレートの特定のコンテキストにおいて、選択されたエリアに関連付けられる集合的機能を反映する。より具体的には、TRACK2という名前は、PID_STDテンプレートの将来のユーザに対して、対応するインターロック条件機能ブロック272が、多重トラックPIDループにおいて、第2の入力、または「トラック」のサービスを提供し得るということを示す。
【0042】
図5を参照して記載される実施例を継続すると、ユーザは、モジュールテンプレートPID_STDを、(例えば、メモリ52に配置される)プロセス制御システム10のテンプレートライブラリ中、オンラインレポジトリの中、または別個のストレージデバイスの中に保存することができる。所望される場合、ユーザは、モジュールテンプレートPID_STDをモジュールクラスに関連付けることができる。どちらの場合も、モジュールテンプレートPID_STDは、同一のまたは異なるユーザが、モジュールテンプレートPID_STDに基づいてモジュールインスタンスを作成することができるように、構成システム150によって認識される所定のフォーマットの中に格納され得る。
【0043】
図6Aおよび
図6Bは、構成環境150が前述の属性割り当て技術のうちのいくつかを支援するように表示し得る、メニューおよびダイアログの例を図示する。具体的には、
図6Aは、例えば、機能ブロック300およびユーザの機能ブロック300のダブルクリックに応じてポップアップする、プルダウンメニュー302を図示する。プルダウンメニュー302は、選択された時に、任意プロパティを有効または無効にし、機能ブロック300のショートカット名を割り当てるための、ユーザダイアログ304をトリガし得る、プロパティメニュー項目を含んでもよい。本実施例において、ユーザダイアログ304は、ENABLEおよびDISABLEオプションを有するラジオボタン306、およびユーザが任意に入力できるテキスト入力ボックス308を含む。
図6Bは、類似のプルダウンメニュー312およびユーザダイアログ314を図示する。しかしながら、構成環境150は、機能ブロック318および320を囲むボックス316内のエリアにプルダウンメニュー312を適用する。言い換えると、ダイアログ314を介して指定されたオプションは、数個の機能ブロックの群に適用される。
【0044】
図7に図示される一実施例では、構成システム150のインターフェースウィンドウ350は、一定のクラスベースのモジュールテンプレートPID_LOOPに基づいて、所望のオプションを選択することにより、複数のインスタンスを作成およびカスタマイズするための、便利で効率的なドラッグアンドドロップインターフェースを提供する。本実施形態におけるインターフェースウィンドウ350は、モジュールエクスプローラペイン352、詳細閲覧ペイン354、およびツールバー356を含む。モジュールエクスプローラペイン352は、プロセス制御システム10の種々の要素を、ライブラリブランチ362(そしてそれはモジュールテンプレートブランチ364を含む)を含む、階層木360の形式で一覧表示し得る。概して、モジュールエクスプローラペイン352の中の要素は、任意の所望の様態で一覧表示され、提示され得る。さらに階層木360に関して、システム構成ブランチ366は、ブランチ368の下の一定のプロセス区域「A」についての要素の群を含む、特定の制御ストラテジに関連する要素を一覧表示し得る。
【0045】
例えば、連続制御のために、モジュールテンプレートPID_LOOPから1つのまたは数個のモジュールインスタンスを作成するために、ユーザは、モジュールクラスPID_LOOPを所望のプロセス区域またはブランチ368に対応するエリア等の領域にドラッグすることができる。プロセス領域は、エリア、ユニット、セル、または構成環境150がモジュール割り当てを可能にする、任意の他のエンティティであってもよい。この時、構成環境150は、モジュールテンプレートPID_LOOPから作成される1つ以上のモジュールを定義し、命名するための、および1つ以上のモジュールについて、任意コンポーネントを選択するための、モジュール開発インターフェース380を自動的に表示してもよい。代替的に、ユーザは、専用のメニュー項目または一定のコマンドを使用して、モジュール開発インターフェース380を起動してもよい。モジュール開発インターフェース380は、定義タブ382、構成タブ384、プロセス区域選択メニュー386(例えば、プルダウンリスト)、およびモジュールテンプレート選択メニュー388を含んでもよい。ユーザは、OKボタン390をクリックすることにより、定義および構成プロセスを完了することができる。いくつかの実施形態では、ADDボタン392は、ユーザが、選択されたモジュールテンプレート、すなわちテンプレートPID_LOOPに基づいてモジュールインスタンスを追加することを可能にする。
【0046】
いくつかの実施形態では、構成環境150は、対応するモジュールテンプレートが少なくとも1つの任意コンポーネントを含む場合のみに、モジュール開発インターフェース380を表示してもよい。言い換えると、一定のモジュールテンプレートが必須型コンポーネントのみを含む場合、インスタンスを生成する際にシステム開発インターフェースを表示することは必要ではない。
【0047】
図7は、定義タブ382が有効化され、したがって、定義区域400がフォアグラウンドにある、モジュール開発インターフェース380を図示する。概して、定義区域400は、任意のレイアウトを有してもよく、任意の所望の種類の制御、セレクタ、および/またはダイアログを含んでもよい。しかしながら、
図7の実施例は、それぞれの個別のモジュールが、カラム402の中の一意タグによって特定され、モジュールテンプレートPID_LOOPの各任意コンポーネントが、カラム404、406、または408等の別個のカラムにおいて特定され、各行422〜430が、対応するモジュールについて選択されるオプションを指定する、定義区域400の特に便利な表またはスプレッドシートレイアウトを図示する。言い換えると、定義区域400の中の各セルは、一定のモジュール/任意コンポーネントチュープルに対するオプションを特定し、空白スペースは、その項目の省略を示す。したがって、行420は、タグ100FIC605によって特定可能なモジュールインスタンスに対して、カラム404(本実施例において、フィードフォワード制御入力値パラメータに関連付けられる機能ブロック)の中で特定された任意コンポーネントの標準(STD)タイプまたは「フレーバー」が選択されているということを示す一方で、行422は、タグLIC310のモジュールインスタンスが、このコンポーネントをまったく含まないということを示す。別の実施例を考慮すると、定義区域400の中の情報は、6つの一覧表示されたインスタンスのそれぞれは任意コンポーネントLP_PIDを含むが、行422、424、および426の中のインスタンスがSTDタイプのLP_PIDコンポーネントを含む一方で、行426の中のインスタンスはFFタイプのLP_PIDコンポーネントを含み、行428中のインスタンスは拡張された警告を有するSTDタイプのLP_PIDコンポーネントを含み、行430中のインスタンスは拡張された警告を有するFFタイプのLP_PIDコンポーネントを含むということを示す。
【0048】
概して、ユーザは、定義区域400の中の任意のセルをクリックして、一定のオプションを選択するかまたは非選択し、セルの中の値(例えば、コンポーネントの種類)を変更すること等を行なうことができる。ユーザはまた、スライダバー432を操作して、所望のカラムにフォーカスを与えることができる。構成環境150のこのインターフェースウィンドウおよび類似のインターフェースウィンドウにおいて、モジュールタグカラム452は、スライダバー432が操作されている時、同一の位置に留まってもよい。いくつかの実施形態では、各セルは、特定の任意コンポーネントについて利用可能な種類のプルダウンリストを自動的に提供してもよい。前述のとおり、一定の任意コンポーネントは、インスタンスの中に存在してもしなくてもよく、対応するセルは、ユーザがインスタンスの中に任意コンポーネントを含めることを選んだ時、次にチェックマークまたは別の視覚的表示を表示してもよい。所望される場合、定義区域400はまた、必須型コンポーネントを一覧表示して、ユーザが選択されたテンプレートに関連付けられるすべての機能ブロックを特定することを補助してもよい。この場合、必須型コンポーネントは、好ましくは、混同を防ぐために、グレー表示の形態か、または別個のタブ下に提示される。機能ブロックに加えて、定義区域400は、モジュールテンプレートのパラメータおよび他のコンポーネントを(
図3を参照)一覧表示し得るということにも留意されたい。さらに、
図6Aおよび
図6Bを参照して前述のように、定義区域400は、コンポーネントまたはコンポーネントの群に割り当てられたショートカット名を任意に表示してもよい。
【0049】
前述に照らして、構成環境150は、任意の所望のレイアウト、例えば、複数のインスタンスおよび複数のコンポーネントを含む表形式、インスタンス固有のブランチ下に一覧表示される任意コンポーネントを用いた階層木、各インスタンスについての別個のタブ等を使用して、任意コンポーネントのリスト(または他の形式の特定)を提供してもよいということが理解されよう。さらに、構成環境150は、任意コンポーネントが除外されるべきかどうか、モジュールテンプレートによって指定される唯一の変形に含められるべきかどうか、またはモジュールテンプレートによって指定される、数個の種類のうちの1つに含められるべきかどうかをユーザが特定することができるようにするために、各任意コンポーネントについての任意の種類のセレクタを提供してもよい。いくつかの実施形態では、セレクタは、まず任意コンポーネントが特定のインスタンスに含められるべきかどうかを指定し、モジュールテンプレートが、任意コンポーネントの複数の可能な種類のフレーバーを指定する場合、可能な種類のフレーバーのどれが使用されるべきかを引き続いて指定するための、多重ステージダイアログを含んでもよい。言い換えると、構成環境150は、現在の任意コンポーネントについてのセレクタと別個の、または一体である種類セレクタを提供してもよい。
【0050】
図8は、モジュール開発インターフェース380の別の動作状態を図示する。具体的には、ユーザが構成タブ384を有効化した時、モジュール開発インターフェース380は、構成区域450をフォアグラウンドに置く。構成区域450のレイアウトは、定義区域400のレイアウトに類似してもよい。
図8の実施例において、カラム452は、個別のモジュールインスタンスのタグを一覧表示し、カラム454〜458は、モジュールテンプレートPID_LOOPの任意コンポーネントを一覧表示する。ユーザは、任意の所望のセルをクリックして、任意コンポーネントの選択を変更することができる。追加的に、ユーザは、カラム460をクリックして、モジュール開発インターフェース380のパラメータ構成ビューを有効化することができる。構成区域450は、ユーザがソーステンプレートを共有する複数のモジュールを効率的に構成することを可能にするということが理解されよう。構成の速度および効率を向上させることに加えて、共通構成区域450を支援することにより、モジュール開発インターフェース380はまた、モジュール間の機能的差異を明瞭に示す。具体的には、
図8に示されるような任意コンポーネントの一覧表を見ることにより、ユーザは、各モジュールについて別個のインターフェース画面を有効化することなく、タグ100FIC101、100DIC222、および100TIC450を有するインスタンス間の機能的差異を直ちに確認することができる。さらに、例えば、ユーザが、すべてのインスタンスにおいてカラム458の中の、同一の種類の任意コンポーネントを選択することを望む場合、モジュール開発インターフェース380は、操作者のエラーの可能性を低減する。またさらに、いくつかの実施形態におけるモジュール開発インターフェース380は、特定の任意コンポーネント(例えば、AI1/LP_IN)についての共通選択オプション(例えば、FF型)を構成区域450の各行に適用するための機能を提供してもよい。
【0051】
図9を参照すると、モジュール開発インターフェース380はまた、パラメータ構成区域450に概して類似した、パラメータ構成区域470をフォアグラウンドに出してもよい。しかしながら、パラメータ構成区域470はまた、パラメータが適用される任意コンポーネントを特定するように、対応する機能ブロックの名前をバー472上に表示し、構成ビューの前のレベルに素早く戻ることを可能にするアップフォルダアイコン474を含む。少なくともいくつかの実施形態では、ユーザは、種々のモジュール/パラメータチュープルに対応するセルに、数値または英数字パラメータを直接打ち込むことができる。パラメータ構成区域470は、前述のとおり、モジュールパラメータカラム460(
図8を参照)をクリックすることにより、有効化されてもよい。代替的に、ユーザは、例えば、モジュールエクスプローラペイン352または詳細閲覧ペイン354(
図7を参照)の中のモジュールの図形またはテキストの識別子を直接クリックしてもよい。
【0052】
いくつかの場合では、カラム478の中のパラメータLP_IN等のパラメータは、構造またはビットストリングとして定義され得る。
図10は、ユーザがその中でLP_INまたは類似のコマンドパラメータを修正する、モジュール開発インターフェース380のまた別の動作状態を図示する。この表示では、バー472はパラメータの名前を表示し、構成区域470は、それにしたがってビットマスクまたは構造ベースのパラメータに関連のある情報を表示するように更新される。この意味で、モジュール開発インターフェース380は、コンポーネントおよびパラメータの詳細にアクセスするための、効率的なアプローチを提供する。
【0053】
再度
図7を参照すると、ユーザがオプションおよびモジュールタグを入力した後、ユーザは、OKボタン390をクリックすることができる。それに応答して、構成環境150は、それぞれが各々の行420〜430に指定されるオプションに従って構成される、6つのモジュールインスタンスを生成し、生成されたインスタンスを、ユーザがモジュールテンプレートPID_LOOPをドラッグする位置の、ブランチ368の中に置く。いくつかの実施形態では、モジュール開発インターフェース380は、インスタンスの位置を指定する、各インスタンスについての追加パラメータを含んでもよい。所望される場合、構成環境150は、構成されたインスタンスを制御器等の対応する物理的要素に適用するプロセスを自動的に開始してもよく、または、ユーザは、ダウンロードプロセスを始めるための、別個の制御を有効にしてもよい。また、任意コンポーネントを有するモジュールテンプレートに基づくインスタンスは、一定の属性(例えば、親テンプレート識別子200、選択済オプションフィールド202〜204等)をオブジェクト内に格納する必要がないことも企図される。制御器のメモリを節約するために、これらの属性は、ワークステーション13のメモリの、ローカルまたはオンラインデータベース等に格納されてもよい。
【0054】
代替的に、構成環境150は、インスタンス化された6つのモジュールインスタンスに関連する構成情報を、アプリケーションパッケージ50の別のコンポーネントに伝達してもよい。例えば、アプリケーションパッケージ50は、モジュールインスタンスにワークステーションメモリを割り当て、データベースと通信してインスタンスへの参照および他の情報を更新し、直接に、あるいはアプリケーションパッケージ50の通信コンポーネントを介して、モジュールインスタンスを制御器11および/またはスマートフィールド機器19〜22(
図1を参照)にダウンロードする、モジュールインスタンス化エンジンを含んでもよい。概して、ユーザインターフェース画面を表示し、プロセスシングおよびメモリリソースを割り当て、モジュールインスタンスを制御器およびフィールド機器に適用することに関連する機能は、複数のワークステーション13の間で分散されてもよく、いくつかの実施形態では、任意の所望の様態で他のコンピュータデバイスに分散されてもよいということに留意されたい。
【0055】
モジュール開発インターフェース380は、プロセス制御システム10の要件が変更された時や、以前にインスタンス化されたモジュールを編集する時等、後に呼び出されてもよいということが理解されよう。さらに、ユーザは、モジュールテンプレートを選択し、インスタンス化された指定のモジュールテンプレートからすべてのモジュールインスタンスを自動的に特定するために、一定の機能を呼び出すことができる。このように、ユーザは、以前に選択された対応する親モジュールテンプレートの中の異なるオプションのために、これらのモジュールインスタンスが同一でない場合でも、複数のモジュールインスタンスを効率的に探し、更新し得る。例えば、操作者は、特定の機能を実行する数個の4−20mAレガシーフィールド機器を、一定のプロセス区域の中で、同一または類似の機能を実施するFieldbusデバイスに取り替えることを選び得る。構成環境150においてこれらの変更を適切に構成するために、操作者は、特定の機能のために開発されたモジュールテンプレートから派生するすべてのモジュールを、一定のプロセス区域の中で特定する機能を呼び出すことができる(当然のことながら、インスタンスが任意コンポーネントを有するモジュールテンプレートを使用してそもそも作成された場合)。
図7〜
図10を参照して上で考察したものに類似したインターフェース画面を使用して、ユーザは、例えば、機能ブロックの新規の種類またはフレーバーを指定することにより、新規のFieldbus構成に対応するように、複数のインスタンスの中の1つのまたは数個の適当な任意コンポーネントを変更することができる。この意味で、ユーザは、各モジュールを個別に探したり、適当なダイアログを呼び出したりすることなく、複数のモジュールに適用可能な変更を効率的に伝搬することができる。いくつかの実施形態では、構成システム150はまた、インスタンスの集合的編集のための、スプレッドシート以外のユーザインターフェースを提供し得る。
【0056】
別の状況では、ユーザは、モジュールテンプレートの中で利用可能なコンポーネントを、コンポーネントが当初に選択されなかったモジュールテンプレートに基づいて、インスタンスに容易に追加することができる。構成環境150は、モジュール開発インターフェース380に類似したインターフェース画面を提示してもよい。さらに、ユーザは、共通の親モジュールテンプレートを共有する複数のインスタンスへの追加または削除を伝搬することができる。
【0057】
別の態様では、モジュールテンプレートは、任意コンポーネントの選択を反映するように適合した、標準表示要素または表示要素の群を含んでもよい。したがって、モジュールインスタンスは、インスタンスの中で実際に選択された表示要素のみを格納または参照してもよい。構成環境150がモジュールインスタンスのグラフィック表示を生成する時、グラフィック表示は、選択されたオプションを反映して、プレゼンテーションの明確さおよび一貫性を向上させることができる。一方、今日利用可能である構成環境のうちの少なくともいくつかは、FALSEまたはゼロに設定されたパラメータによって無効化され、かつモジュールの物理的対応物において、事実上存在しない、コンポーネントを描写することにより、テンプレート由来のモジュールの雑然として紛らわしい表示を生じることがある。
【0058】
構成環境150のモジュールテンプレートに関連付けられる、柔軟な図形の利点をよりよく図示するために、
図11および
図12は、前述のテンプレートPID_STDを使用して生成された、モジュールインスタンスの2つの実施例を示す。
図5および
図11を同時に参照すると、インターフェース画面502の中のモジュールダイアグラム500は、エリア280の中の機能ブロックおよびパラメータと共に、機能ブロック276および278が省略されている一方で、インターロック条件機能ブロック256、258、および272が選択されている、モジュールテンプレートPID_STDに基づくインスタンスに対応する。一方では、インターフェース画面522(
図12)の中のモジュールダイアグラム520は、モジュールテンプレートPID_STDに基づく別のインスタンスに対応する。
図12のインスタンスは、任意インターロック条件機能ブロック256およびエリア280に関連付けられるアービトレーション機能を含む。当然のことながら、両インスタンスはまた、自由選択ではないコンポーネントを含む。
図11のインスタンスに含まれるブロック(および関連付けられるワイヤリング)は、両方共PID_STDテンプレートからインスタンス化されているが、異なっている。しかしながら、インターフェース画面502および522は、モジュールテンプレートPID_STDにおいて指定される位置に任意ブロック256、272等を設置する。このように、テンプレートPID_STDに基づく複数のインスタンスを使用して作業するユーザは、インスタンス間の機能的差異を直ちに特定することができる。
【0059】
特定のインスタンスの中で使用されている表示要素のみを有効にするために、構成環境150は、選択済オプションフィールド202〜204および親テンプレートフィールド200(
図4を参照)を使用してもよい。具体的には、構成環境150は、親モジュールテンプレートへのリンクをたどることによって、表示要素または表示要素への参照を読み出し得、ダイアグラム500または520を表示する際にどの表示要素が使用されるべきかを、選択済オプションフィールド202を使用して決定することができる。さらに、機能ブロックアイコンおよび標準図形等の固定表示要素に加えて、構成環境150は、ダイナモ、アニメーション、および他の図形要素を同様に支援してもよい。例えば、構成環境は、選択されたオプションおよび自由選択ではないコンポーネントに対応するダイナモスクリプトを自動的に生成(またはレポジトリから選択)してもよい。
【0060】
モジュールインスタンスのグラフィック描写にさらに関して、
図6Aおよび
図6Bを参照して説明された指定ショートカット名は、印刷された文書の中に、オフラインモードで、および構成環境150の範囲内および範囲外の両方の他のコンテキストで表示されてもよい。
図13に示されるように、例えば、インターフェース画面600は、対応する任意コンポーネントに割り当てられたショートカット名610とともに機能ブロックがその中に図示される、ダイアグラム602を表示してもよい。本実施例における機能ブロック612および614は、ボックス616で囲まれる、単一の集合した任意コンポーネントに関連付けられるため、機能ブロック612および614は、ボックス616の角に表示される単一のショートカット名を共有するということに留意されたい。
【0061】
概して
図3〜
図13に関して、モジュールテンプレートは、テンプレートを使用して1つ以上のインスタンスが作成された後、そのテンプレートに対する変更を妨げるために、任意にソフトウェアロックを含み得ることも企図される。
【0062】
任意コンポーネントを有するモジュールテンプレートを開発し、適用する技術が、PIDループを主に参照して上に記載されるが、モジュールテンプレートライブラリは、多様な制御ルーチンを対象とすることができ、例えば、アナログ制御(例えば、PIDループ)、モニタリング(例えば、アナログ入力モニタリング)、2状態モータ(例えば、ポンプおよび攪拌機のための制御)、3状態モータ(例えば、モータを前進/逆転させるための制御)、二方弁制御、シミュレーション等のためのモジュールテンプレートを含んでもよいということにも留意されたい。
【0063】
本システムおよび方法は、説明のみで、かつ本発明を制限することを意図しない、特定の実施例を参照して説明されるが、本発明の精神および範囲を逸脱することなく、開示された実施形態に、変更、追加および/または削除が行われ得ることは、当業者には明白となろう。