(57)【特許請求の範囲】
【請求項１】
プロセスを制御するために、アクションまたはアクションセットを自動的に行うための、プロセス制御プラントでのホストデバイスの構成方法であって、
１つ以上のステップの少なくとも一部のそれぞれを所定ステップのセットから選択することを含み、前記ホストデバイスで、前記ホストデバイスにより行われる前記１つ以上のステップのシーケンスを含むワークフローテンプレートを生成することと、
前記ホストデバイスで、前記ホストデバイスでの前記ワークフローテンプレートのインスタンスを作成することと、
前記ホストデバイスで、特定のアクションまたはアクションのシーケンスを定義するワークフローのインスタンスを自動的にトリガするトリガ条件を生成することと、
前記トリガ条件を検出することと、
前記トリガ条件の検出に応えて、前記ホストデバイスで、前記１つ以上のステップの前記シーケンスを実行することと、
を備え、
前記ワークフローテンプレートの前記１つ以上のステップは、前記ホストデバイスが１つ以上のフィールドデバイスに連結された遠隔端末装置（ＲＴＵ）と通信することを可能にし、前記ホストデバイスと前記１つ以上のフィールドデバイスとの間の通信を可能にし、前記ワークフローテンプレートは前記ホストデバイスが、（ｉ）前記ＲＴＵから構成プロファイルをアップロードすること、または（ｉｉ）前記ＲＴＵに構成プロファイルをダウンロードすることのうち１つを行うことを可能にする、方法。
【請求項２】
前記遠隔端末装置（ＲＴＵ）から受信したデータを基に、フィールドデバイスに関連付けられたプロセスパラメータの変更を判定することに応えて、前記ワークフローテンプレートの前記１つ以上のステップにより、前記ホストデバイスが前記ＲＴＵに連結された前記フィールドデバイスのセットポイントを調整することを可能にする、請求項１に記載の方法。
【請求項３】
前記ワークフローテンプレートが、前記ホストデバイスが前記プロセスパラメータの前記変更の検出に応えてアラーム表示を生成し、前記アラーム表示をユーザインターフェースデバイスに送信することを可能にする１つ以上のステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記１つ以上のステップのステップは構文に準拠する表現に対応し、１つ以上のステップの前記シーケンスの実行は、
１つ以上のルーチンは前記ホストデバイスに関連付けられたメモリに記憶される、前記構文を基に前記表現を構文解析し、前記１つ以上のルーチンを識別することと、
前記１つ以上の識別されたルーチンを実行することと、
を含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記表現は１つ以上のパラメータに関連付けられ、前記ワークフローテンプレートの生成は、ｉ）パラメータタイプ、及びｉｉ）前記１つ以上のパラメータのそれぞれに対するパラメータ値の１つまたは両方を指定することを含む、請求項４に記載の方法。
【請求項６】
前記表現はワークフローパラメータタイプの少なくとも１つのパラメータに関連付けられ、前記方法は前記ワークフローのそれぞれのインスタンスに対する前記少なくとも１つのパラメータに対するそれぞれの値を指定することをさらに備える、請求項４に記載の方法。
【請求項７】
前記ワークフローテンプレートは第１ワークフローテンプレートであり、前記方法は第２ワークフローテンプレートを生成することをさらに備え、前記第２ワークフローテンプレートは前記第１ワークフローテンプレートのインスタンスの実行をトリガするステップを含む、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
カスタム表現を定義することをさらに含み、前記カスタム表現は前記構文に準拠し、前記ワークフローテンプレートを生成することは前記ワークフローテンプレートの前記カスタム表現に対応するステップを含むことを含む、請求項４に記載の方法。
【請求項９】
前記１つ以上のステップの第１ステップは第１分岐及び第２分岐が続く条件ステップであり、前記第１分岐または前記第２分岐は前記第１ステップの実行結果を基に前記ワークフローのインスタンスの実行中に選択される、請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
プロセスを制御するためのプロセス制御システムであって、
前記プロセス制御システムは、１つ以上の遠隔端末装置（ＲＴＵ）と通信し、（ｉ）前記１つ以上の遠隔端末装置からデータを取得すること、及び（ｉｉ）前記１つ以上のＲＴＵにデータを送信することのうち１つまたは両方を行うように構成されるホストデバイスを備え、前記ホストデバイスは、
複数の所定ステップを記憶する非一時的なコンピュータ可読メモリと、
記憶された前記複数の所定ステップから選択され、前記ホストデバイスにより行われる、１つ以上のステップのシーケンスを含むワークフローテンプレートを生成し、
前記ワークフローテンプレートに対応するワークフローインスタンスを作成し、
前記ワークフローインスタンスを自動的にトリガするトリガ条件を生成し、
前記トリガ条件を検出し、
前記トリガ条件の検出に応えて、前記１つ以上のステップの前記シーケンスの実行を開始する
ように構成されるアクションエンジンと、
を含み、
前記ワークフローテンプレートの前記１つ以上のステップは、前記ホストデバイスがＲＴＵと通信することを可能にし、（ｉ）前記ＲＴＵから構成プロファイルをアップロードすること、または（ｉｉ）前記ＲＴＵに構成プロファイルをダウンロードすることのうち１つを行う、プロセス制御システム。
【請求項１１】
前記ＲＴＵから受信したデータを基に、フィールドデバイスに関連付けられたプロセスパラメータの変更を判定することに応えて、前記ワークフローテンプレートの前記１つ以上のステップにより、前記ホストデバイスが前記ＲＴＵに連結された前記フィールドデバイスのセットポイントを調整することを可能にする、請求項１０に記載のプロセス制御システム。
【請求項１２】
前記ワークフローテンプレートは、前記ホストデバイスが、前記プロセスパラメータの前記変更の検出に応えてアラーム表示を生成し、前記アラーム表示をユーザインターフェースデバイスに送信することを可能にする１つ以上のステップをさらに含む、請求項１１に記載のプロセス制御システム。
【請求項１３】
前記１つ以上のステップのステップは構文に準拠する表現に対応し、前記アクションエンジンは前記表現を構文解析し、前記非一時的なコンピュータ可読メモリまたは前記ホストデバイスの別のメモリに記憶される１つ以上のルーチン、つまり前記ステップを実行するための前記１つ以上のルーチンを識別するようにさらに構成される、請求項１０乃至１２のいずれか１項に記載のプロセス制御システム。
【請求項１４】
前記表現は１つ以上のパラメータに関連付けられ、前記ワークフローテンプレートの生成は、ｉ）パラメータタイプ、及びｉｉ）前記１つ以上のパラメータのそれぞれに対するパラメータ値の１つまたは両方を指定することを含む、請求項１３に記載のプロセス制御システム。
【請求項１５】
前記表現はワークフローパラメータタイプの少なくとも１つのパラメータに関連付けられ、前記アクションエンジンは前記ワークフローテンプレートに対応するそれぞれのワークフローインスタンスのための前記少なくとも１つのパラメータに対するそれぞれの値を受け取るようにさらに構成される、請求項１３に記載のプロセス制御システム。
【請求項１６】
前記ワークフローテンプレートは第１ワークフローテンプレートであり、前記アクションエンジンは第２ワークフローテンプレートを生成するようにさらに構成され、前記第２ワークフローテンプレートは、前記第１ワークフローテンプレートのインスタンスの実行をトリガするステップを含む、請求項１０乃至１５のいずれか１項に記載のプロセス制御システム。
【請求項１７】
前記アクションエンジンはカスタム表現を生成するためのユーザインターフェースを提供するようにさらに構成され、前記カスタム表現は前記構文に準拠し、前記ワークフローテンプレートを生成することは前記ワークフローテンプレートの前記カスタム表現に対応するステップを含むことを含む、請求項１３に記載のプロセス制御システム。
【請求項１８】
前記１つ以上のステップの第１ステップは第１分岐及び第２分岐が続く条件ステップであり、前記第１分岐または前記第２分岐は前記第１ステップの実行結果を基に前記ワークフローインスタンスの実行中に選択される、請求項１０乃至１７のいずれか１項に記載のプロセス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、プロセスプラントシステムに関し、より詳細には、プロセス制御及びデータ取得システムでのサーバアクションの構成に関する。
【背景技術】
【０００２】
本明細書に提供する背景の記載は、本開示の文脈を概して提示するためのものである。この背景セクションに記載されている限りの、現在名前を挙げた発明者らの研究、ならびにその他の方法で出願時に先行技術と見なされない記載の態様は、明示または黙示を問わず本開示に対する先行技術として認められない。
【０００３】
化学プロセスプラント、石油プロセスプラントまたは他のプロセスプラントで使用されるような分散プロセス制御システムは、典型的に、アナログバス、デジタルバスもしくはアナログ／デジタル併用バスを介して、または無線通信リンクもしくはネットワークを介して、１つ以上のフィールドデバイスに通信可能に連結される１つ以上のプロセスコントローラを含む。フィールドデバイスは、例えば、バルブ、バルブポジショナ、スイッチ及びトランスミッタ（例えば、温度センサ、圧力センサ、レベルセンサ及び流速センサ）でも良く、プロセス環境内に配置され、概して、バルブの開閉、プロセスパラメータの測定等のなどの物理的機能またはプロセス制御機能を行い、プロセスプラントまたはシステム内で実行する１つ以上のプロセスを制御する。周知のＦｉｅｌｄｂｕｓプロトコルに準拠するフィールドデバイスなどのスマートフィールドデバイスは、制御計算、アラーム機能及びコントローラ内で一般に実施される他の制御機能をさらに行っても良い。典型的にはプラント環境内にさらに配置されるプロセスコントローラは、センサ及び／もしくはフィールドデバイスにより行われたプロセス測定を示す信号、ならびに／または、フィールドデバイスに関する他の情報を受信し、例えば、プロセス制御決定を行い、受信された情報に基づいて制御信号を生成し、ＨＡＲＴ（登録商標）、Ｗｉｒｅｌｅｓｓ  ＨＡＲＴ（登録商標）及びＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓフィールドデバイスなどのフィールドデバイスにおいて行われる制御モジュールまたはブロックと協調する、異なる制御モジュールを実行するコントローラアプリケーションを実行する。コントローラの制御モジュールは、通信回線またはリンク上でフィールドデバイスに制御信号を送信し、それによって、プロセスプラントまたはシステムの少なくとも一部の動作を制御する。
【０００４】
フィールドデバイス及びコントローラからの情報は、通常は、データハイウェイ上で１つ以上の他のハードウェアデバイスに利用可能になり、ハードウェアデバイスは、典型的には、より過酷なプラント環境から離れた制御室または他の場所に設置されるオペレータワークステーション、パーソナルコンピュータもしくはコンピューティングデバイス、データヒストリアン、リポートジェネレータ、集中データベースまたは他の集中運用管理コンピューティングデバイスである。これらのハードウェアデバイスのそれぞれは、典型的には、プロセスプラントにわたり、またはプロセスプラントの一部にわたり集中する。これらのハードウェアデバイスは、例えば、オペレータが、プロセス制御ルーチンの設定を変更すること、コントローラまたはフィールドデバイス内の制御モジュールの動作を修正すること、プロセスの現在の状態を見ること、フィールドデバイス及びコントローラによって生成されたアラームを見ること、要員を訓練するか、もしくは、プロセス制御ソフトウェアをテストする目的でプロセスの動作をシミュレーションすること、設定データベースを維持及び更新すること等の、プロセスの制御及び／またはプロセスプラントの動作に関する機能を行うことを可能にし得るアプリケーションを実行する。ハードウェアデバイス、コントローラ及びフィールドデバイスにより利用されるデータハイウェイは、有線通信パス、無線通信パスまたは有線通信パス及び無線通信パスの組み合わせを含んでも良い。
【０００５】
一例として、監視制御及びデータ取得システム、分散制御システム、その組み合わせ等は、サーバ及び／またはユーザインターフェースデバイスなどの集中コンピューティングデバイスを含んでも良く、集中コンピューティングデバイスは、コントローラ、遠隔端末装置（ＲＴＵ）などと通信し、プロセス制御システムのフィールドデバイスからデータを収集し、データを分析し、システムの制御に作用し（一部の場合には、データの分析に基づく）、アラームを生成する等をしても良い。しかしながら、係るホストシステムは、多くの場合、特定のプラントでの特有のシステムに必要となり得るカスタムアクションを行うための構成などの、システムの構成に関して柔軟性が欠如している。例えば、システムの特定の変更に応えて、ホストシステムが特定のアクションまたはアクションのシーケンスを自動的に行うように構成することは、通常は、ホストデバイスで実行し得るカスタムプログラムを作成するためのプログラミング言語または記述言語の知識が必要であり、さらにソフトウェア開発アプリケーション、プログラムコンパイラなどの追加システム及び構成要素を必要とし得る。さらに、係るカスタムコンピュータプログラムが作成されたとしても、プログラムの保守は簡単ではないことが多く、更新または拡張は一層困難である。
【発明の概要】
【０００６】
一態様では、アクションまたはアクションセットを自動的に行うために、プロセス制御プラントでホストデバイスを構成する方法は、所定ステップのセットから１つ以上のステップの少なくとも一部のそれぞれを選択することを含み、ホストデバイスで、ホストデバイスが行う１つ以上のステップのシーケンスを含むワークフローテンプレートを生成することを含む。方法は、ホストデバイスで、ホストデバイスでのワークフローテンプレートのインスタンスを作成することをさらに含む。方法は、ホストデバイスで、インスタンスワークフローを自動的にトリガするトリガ条件を生成することをさらに含む。方法は、トリガ条件を検出することを追加的に含む。方法は、トリガ条件の検出に応えて、ホストコンピューティングデバイスで、１つ以上のステップのシーケンスを実行することをさらに含む。
【０００７】
別の態様では、プロセス制御システムは、１つ以上の遠隔端末装置（ＲＴＵ）と通信し、（ｉ）１つ以上の遠隔端末装置からデータを取得すること、及び（ｉｉ）１つ以上のＲＴＵにデータを送信することのうち１つまたは両方を行うように構成されるホストデバイスを備える。ホストデバイスは複数の所定ステップを記憶する非一時的なコンピュータ可読メモリを含む。ホストデバイスは、ワークフローテンプレートを生成するように構成されるアクションエンジンをさらに含み、ワークフローテンプレートは記憶された複数の所定ステップから選択され、ホストデバイスにより行われる１つ以上のステップのシーケンスを含む。アクションエンジンは、ワークフローテンプレートに対応するワークフローインスタンスを作成するようにさらに構成される。アクションエンジンは、ワークフローインスタンスを自動的にトリガするトリガ条件を生成するようにさらに構成される。アクションエンジンは、トリガ条件を検出し、トリガ条件の検出に応えて、１つ以上のステップのシーケンスの実行を開始するようにさらに構成される。
【図面の簡単な説明】
【０００８】
【図１】自動アクションを行うように構成され得る監視制御及びデータ取得システムを含むプロセスプラントまたはプロセス制御システムの一例のブロック図を示す。
【図２】図１のプロセス制御システムのサーバなどの、ホストデバイスの一例の簡略ブロック図を示す。
【図３】アクションエンジンの実装の一例のブロック図を示す。
【図４】ユーザがワークフローテンプレートを生成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される画面を図示する例示的なディスプレイを示す。
【図５】ユーザがカスタム表現を作成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される画面を図示する例示的なディスプレイを示す。
【図６】ユーザがカスタム表現を作成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される別の画面を図示する例示的なディスプレイを示す。
【図７】ユーザがバックグラウンドクエリを作成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される画面を図示する例示的なディスプレイを示す。
【図８】ユーザがワークフローテンプレートのインスタンスを構成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される画面を図示する例示的なディスプレイを示す。
【図９】ユーザがワークフローテンプレートのインスタンスを構成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される別の画面を図示する例示的なディスプレイを示す。
【図１０】ユーザがワークフローテンプレートのインスタンスを構成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される別の画面を図示する例示的なディスプレイを示す。
【図１１】ユーザがワークフローテンプレートのインスタンスを構成することが可能な、図３のアクションエンジンのユーザインターフェースモジュールにより生成される別の画面を図示する例示的なディスプレイを示す。
【図１２】アクションまたはアクションセットを自動的に行うために、プロセス制御プラントでホストデバイスを構成する方法の一例のフロー図を示す。
【発明を実施するための形態】
【０００９】
本開示は、プロセス制御システムでアクションまたはアクションのシーケンスを行うために、ホストデバイスを構成するためのシステム及び方法に関する。特に、ホストデバイスの構成を容易にするルーチンが開示される。ルーチンにより、ユーザは特定のアクションまたはアクションのシーケンスを定義するワークフローを生成し、定義されたアクションまたはアクションのシーケンスを自動的に開始するためのトリガイベントまたは条件を定義することができる。システム及び方法は、ユーザが、所定ステップのセットからワークフローに含める１つ以上のステップを選択することにより、ワークフローを定義することを可能にする。ユーザは、ワークフローの特定の分岐がワークフローの実行中に選択される場合、ワークフローの前ステップの結果を基に、ワークフローに条件分岐をさらに定義しても良い。システムは、ユーザが、プロセス制御環境でプロセスを監視及び制御するためのプロセス戦略を迅速及び効率的に定義及び実装可能にすることにより、柔軟性及びビジネスアジリティを提供する。係る戦略は、プラント要員（例えば、現場）によりプロセスプラントに定義及び実装することができ、プログラミングまたは記述言語の知識または専門知識を伴わない。したがって、係る戦略は、例えば、プロセスまたはプラント動作を最適化するための特有のプラント要件を基に、または他の検討事項を基に、プラントに容易に開発及び実装することができる。さらに、ワークフローを自動的に開始することにより、例えば、プロセス制御システムにより検出及び自動的に作用し得る特定のイベントまたはアラームへの応答時間がより迅速になるため（例えば、デバイスでセットポイントを自動的に調整する、シャットインが必要または望まれる際にプロセスを迅速にシャトインする等）、プラントを動作する効率を向上し得る。
【００１０】
まずプロセスプラントの一例の全体的なアーキテクチャに注目すると、図１はプロセス制御システムまたはプロセスプラント１０で動作する例示的なプロセス制御ネットワーク１００のブロック図である。プロセス制御ネットワーク１００は、様々な他のデバイス間での直接的または間接的な接続性を提供するネットワークバックボーン１０５を含んでも良い。種々の実施形態では、ネットワークバックボーン１０５に連結されるデバイスは、アクセスポイント７２、他のプロセスプラントへのゲートウェイ７５（例えば、イントラネットまたは企業ワイドエリアネットワークを介する）、外部システムへのゲートウェイ７８（例えば、インターネットへ）、ヒューマンインターフェース（ＨＭＩ）デバイス１１４、サーバ１５０、データシステム１０２（例えば、プロセスデータベース、ヒストリアン等を含む）、コントローラ１１、入力／出力（Ｉ／Ｏ）カード２６及び２８、有線通信ネットワーク２３、無線通信ネットワーク７０ならびに監視システム通信ネットワーク７２の組み合わせを含む。有線通信ネットワーク２３は、産業自動化プロトコル（例えば、ＨＡＲＴ、ＰＲＯＦＩＢＵＳ  ＤＰ（分散型周辺機器）等）または別の適切な通信プロトコルに従って動作しても良く、有線フィールドデバイス１５〜２２を含む。コントローラ１１は、例えば、標準４−２０ｍａデバイス及び／またはＦｉｅｌｄｂｕｓもしくはＨＡＲＴプロトコルなどの任意のスマート通信プロトコルに関連付けられた、任意の適切なハードウェア及びソフトウェアを使用して、フィールドデバイス１５〜２２に通信可能に連結される。フィールドデバイス１５〜２２は任意のタイプのデバイス、例えば、バルブ、バルブポジショナ、スイッチ、センサ（例えば、温度センサ、圧力センサ、振動センサ、流速センサもしくはｐＨセンサ）、ポンプ、ファン等、または係るタイプの２つ以上の組み合わせであっても良く、一方でＩ／Ｏカード２６、２８はＨＡＲＴ、Ｆｉｅｌｄｂｕｓ、Ｐｒｏｆｉｂｕｓ等の任意の適切な通信またはコントローラプロトコルに準拠する任意のタイプのＩ／Ｏデバイスであっても良い。フィールドデバイス１５〜２２は、プロセスまたはプロセス制御ループ内で、例えば、バルブの開閉、プロセスパラメータの測定などの制御機能、監視機能及び／または物理的な機能を行う。図１に例示する実施形態では、フィールドデバイス１５〜１８は、アナログ回線上でＩ／Ｏカード２６に通信する標準４−２０ｍａデバイスであり、フィールドデバイス１９〜２２は、例えば、Ｆｉｅｌｄｂｕｓプロトコル通信を使用して、デジタルバス上でＩ／Ｏカード２８に通信するＦｉｅｌｄｂｕｓフィールドデバイスなどのスマートデバイスである。当然ながら、フィールドデバイス１５〜２２及びＩ／Ｏカード２６、２８は標準４−２０ｍａ、ＨＡＲＴまたはＦｉｅｌｄｂｕｓプロトコル以外の、将来開発される任意の規格またはプロトコルを含む、任意の他の適切なプロトコルに準拠できるだろう。
【００１１】
本開示に従って動作しても良い無線通信ネットワーク７０は、無線フィールドデバイス４０〜４６と、無線アダプタ５２ａ及び５２ｂと、アクセスポイント５５ａ及び５５ｂと、ルータ５８を含む無線デバイス４０〜５８とを含んでも良い。無線アダプタ５２ａ及び５２ｂは、非無線フィールドデバイス４８及び５０にそれぞれ接続されても良い。コントローラ１１は、プロセッサ３０と、メモリ３２と、メモリ３２に記憶されても良く、かつプロセッサ３０により実行されても良い、１つ以上の制御ルーチン３８とを含んでも良い。図１はネットワークバックボーン１０５に接続されるデバイスの一部のうち単一のデバイスを図示するのみであるが、デバイスのそれぞれはネットワークバックボーン１０５上の複数のインスタンスを有することがあり、実際には、プロセスプラント１０は複数のネットワークバックボーン１０５を含んでも良いことが理解される。
【００１２】
サーバ１５０及び／またはＨＭＩデバイス１１４などのホストデバイスは、ネットワークバックボーン１０５を介して、コントローラ１１及び無線ゲートウェイ３５に通信可能に接続されても良い。コントローラ１１は入力／出力（Ｉ／Ｏ）カード２６及び２８を介して、有線フィールドデバイス１５〜２２に通信可能に接続されても良く、かつネットワークバックボーン１０５及び無線ゲートウェイ３５を介して、無線フィールドデバイス４０〜４６に通信可能に接続されても良い。コントローラ１１はフィールドデバイス１５〜２２及び４０〜４６の少なくとも一部を使用して、バッチプロセスまたは継続プロセスを実行するために動作しても良い。コントローラ１１は、例として、Ｅｍｅｒｓｏｎ  Ｐｒｏｃｅｓｓ  Ｍａｎａｇｅｍｅｎｔが販売するＤｅｌｔａＶ（商標）コントローラであっても良く、プロセス制御ネットワークバックボーン１０５に通信可能に接続される。コントローラ１１は、例えば、標準４−２０ｍＡデバイス、Ｉ／Ｏカード２６、２８及び／またはＦＯＵＮＤＡＴＩＯＮ（登録商標）プロトコル、Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴ（登録商標）プロトコル、Ｗｉｒｅｌｅｓｓ  ＨＡＲＴ（登録商標）プロトコル等の任意のスマート通信プロトコルに関連付けられた任意の所望のハードウェアならびにソフトウェアを使用して、フィールドデバイス１５〜２２及び４０〜４６に通信可能にさらに接続されても良い。図１に例示する実施形態では、コントローラ１１、フィールドデバイス１５〜２２及びＩ／Ｏカード２６、２８は有線デバイスであり、フィールドデバイス４０〜４６は無線フィールドデバイスである。
【００１３】
コントローラ１１のプロセッサ３０は、１つ以上のプロセスルーチン３８などの、メモリ３２に記憶される１つ以上のプロセス制御ルーチンを実施または監視し、プロセス制御ルーチンは制御ループを含んでも良い。プロセッサ３０はフィールドデバイス１５〜２２及び４０〜４６と通信しても良く、かつバックボーン１０５に通信可能に接続される他のノードと通信しても良い。本明細書に記載の任意の制御ルーチンまたはモジュール（品質予測及び故障検出モジュールまたは機能ブロックを含む）は、所望であれば、その部分が異なるコントローラまたは他のデバイスにより実施または実行されても良いことに留意すべきである。同様に、本明細書に記載され、プロセス制御システム１０内に実施されるべき制御ルーチンまたはモジュールは、ソフトウェア、ファームウェア、ハードウェア等を含む任意の形態であっても良い。制御ルーチンは任意の所望のソフトウェア形式で実施されても良く、例えば、オブジェクト指向プログラミング、ラダーロジック、シーケンシャル・ファンクション・チャート、ファンクション・ブロック・ダイアグラムを使用して、または任意の他のソフトウェアプログラミング言語もしくは設計パラダイムを使用して実施されても良い。特に、制御ルーチンはサーバ１５０と連動するＨＭＩデバイス１１４を通じて、ユーザにより実装されても良い。制御ルーチンは、例えば、ランダムアクセスメモリ（ＲＡＭ）または読出専用メモリ（ＲＯＭ）などの任意の所望のタイプのメモリに記憶されても良い。同様に、制御ルーチンは、例えば、１つ以上のＥＰＲＯＭ、ＥＥＰＲＯＭ、特定用途向け集積回路（ＡＳＩＣ）または任意の他のハードウェアもしくはファームウェア要素にハードコードされても良い。したがって、コントローラ１１は（特定の実施形態ではＵＩデバイス１１４を使用するユーザにより）、任意の所望の方法で制御戦略または制御ルーチンを実施するように構成されても良い。
【００１４】
有線ネットワーク１０及び／または無線ネットワーク７０に加えて、または代わりに、プロセス制御ネットワーク１００は、監視制御及びデータ取得（ＳＣＡＤＡ）ネットワーク７２などの、集中または分散監視ネットワークまたはシステムを含んでも良く、ホスト（例えば、サーバ１５０）とリモートフィールドデバイスとの間の通信を可能にする１つ以上のＲＴＵ８０を含んでも良い。図１の実施形態では、プロセス制御ネットワーク１００はフィールドデバイス９２〜９６と通信するいくつかのＲＴＵ８０を含む。ＲＴＵ８０ａは、有線接続を介してバックボーン１０５に直接連結され、ＲＴＵ８０ｂ、８０ｃ及び８０ｄはＳＣＡＤＡゲートウェイまたはルータ３６を介してバックボーン１０５に連結される無線ネットワークを形成する。各ＲＴＵ８０は、ＲＴＵ８０がサーバ１０５及び／またはＨＭＩデバイス１１４などのホストデバイスとの通信を可能にするネットワークインターフェースを含んでも良い。ＲＴＵ８０は、ＦＯＵＮＤＡＴＩＯＮ（登録商標）Ｆｉｅｌｄｂｕｓプロトコル、ＨＡＲＴ（登録商標）プロトコル、Ｗｉｒｅｌｅｓｓ  ＨＡＲＴ（登録商標）プロトコル等の任意の適切な有線または無線通信プロトコルを使用してホストデバイスと通信しても良い。各ＲＴＵ８０は、さらにプロセッサ８２及びメモリ８３を含む。ＲＴＵ８０のメモリ８２は、ＲＴＵ８０の構成プロファイル及び／またはＲＴＵ８０により行われても良い１つ以上のルーチン（例えば、制御ルーチン）を記憶しても良い。ＲＴＵ８０のプロセッサ８２は、ＲＴＵ８０のメモリ８３に記憶される１つ以上のルーチンを実行し、ＲＴＵ８０に接続される１つ以上のフィールドデバイスを制御する、及び／またはＲＴＵ８０に接続される１つ以上のデバイスからデータを収集しても良い。図１には４つのＲＴＵ８０のみ及び５つのフィールドデバイス９２〜９６のみが例示されているが、ネットワーク７２は任意の数のＲＴＵ８０及びフィールドデバイス９２〜９６を含んでも良いことを理解すべきである。例えば、少なくとも一部の実施形態では、ネットワーク７２は数百もしくは数千ものＲＴＵ８０及び／または数百もしくは数千ものフィールドデバイス９２〜９６を含んでも良い。
【００１５】
サーバ１５０及び／またはＨＭＩデバイス１１４などのホストデバイスは、ＲＴＵ８０及び／またはコントローラ１１と通信し、例えば、フィールドデバイス９２〜９６、１５〜２２及び４０〜４６からリアルタイムのプロセスデータを取得すること、ＲＴＵ８０及び／またはコントローラ１１を構成（または再構成）すること、ＲＴＵ８０及び／またはコントローラ１１を介してフィールドデバイス９２〜９６、１５〜２２及び４０〜４６を構成または再構成すること、ＲＴＵ８０及びコントローラ１１を介してフィールドデバイス９２〜９６、１５〜２２及び４０〜４６の動作を制御すること等を行っても良い。サーバ１５０がこれら及びプロセス制御ネットワーク１００内のデバイスに関する、ならびに／またはプロセス制御ネットワーク１００によって監視及び／もしくは制御されるプロセスに関する他のアクションを行うことを可能にするために、サーバ１５０は、それぞれがサーバ１５０のメモリに記憶されるコンピュータ可読命令の形態であっても良く、サーバ１５０のプロセッサにより実行可能であっても良く、種々の計算動作、プロセス制御動作（例えば、セットポイントの設定もしくは調整、バルブの開閉等）、コントローラ１１及び／またはＲＴＵ８０に関する構成動作（例えば、構成もしくは制御ルーチンをＲＴＵ８０もしくはコントローラ１１にダウンロードする、構成もしくは制御ルーチンをＲＴＵ８０もしくはコントローラ１１からアップロードする）、ＨＭＩデバイス１１４とのインターフェース動作（例えば、ＨＭＩデバイスでの表示用にプロセスデータを送信する、ＨＭＩデバイスにアラームデータを送信する等）などを可能にする特定のルーチンまたはモジュールを含んでも良い。
【００１６】
一実施形態では、サーバ１５０はアクションエンジンを含み、アクションエンジンは、ユーザが容易にワークフローを構成することを可能にし、ワークフローは、サーバ１５０が特定の定義されたアクションまたは特定の定義されたアクションのシーケンスをオペレータの追加入力を伴わず自動的に行うことを可能にする。アクションエンジンにより、オペレータは任意のプログラミング言語もしくは記述言語の知識が全くなくても、または最小限の知識しかなくても、係るワークフローを作成することが可能になる。これを達成するために、アクションエンジンは、ユーザに所定ステップまたは構築ブロックのセットを提供し、これによりユーザは、１つ以上のステップまたは構築ブロックのシーケンスにより構成されるワークフローを作成することができる。ステップまたは構築ブロックは、数式表現、論理表現、文字列表現、日付／時間表現、アクションエンジン特有表現等の表現に関連付けられても良い。表現は、特定の形式または構文に準拠しても良く、形式または構文は、その後、形式または構文を基に表現を構文解析するように構成されるパーサにより解釈されても良い。代替的には、ステップまたは構築ブロックは、任意の適切なオブジェクト（例えば、実行可能オブジェクト、ダイナミックリンクライブラリ（ＤＬＬ）オブジェクト等）であっても良く、任意の適切なオブジェクトは、サーバ１５０が他のデバイスに関して行っても良いアクション、他のデバイスから収集されるデータに関して行っても良いアクション、サーバ１５０により計算されるデータなどに関して行っても良いアクション等を実行しても良い。
【００１７】
このように、アクションエンジン１５２は、サーバ１５０がステップからアクションを行うために使用するルーチンまたはモジュールを要約する。ステップは、例えば、サーバ１５０と、ＲＴＵ８０、コントローラ１１、ＨＭＩ１１４等の他のデバイスとの間の通信を行うために、オペレータがサーバ１５０で実行するワークフローを定義するために使用されても良い。ほんの一例として、ユーザは、サーバ１５０が構成ファイルをＲＴＵ８０に自動的にダウンロードすることを可能にするワークフローを作成しても良い。これは、例えば、ＲＴＵ８０が新規ＲＴＵデバイスに置き換えられた際など、ＲＴＵ８０がそれ自体の構成を失ったという検出に応えて行われる。別の例として、ユーザは、サーバ１５０がフィールドデバイスまたはフィールドデバイスのグループでセットポイント調整を自動的に行うことを可能にするワークフローを作成しても良い。これは、例えば、係るセットポイント調整が必要または望まれる、プロセス変数の変更もしくはプロセス変数の組み合わせの変更の検出に応えて行われる。
【００１８】
一実施形態では、アクションエンジン１５２は、オペレータがワークフローを作成できるようにし、ワークフローは、サーバ１５０がデータ分析及びアラーム生成ならびに／またはプロセス制御ネットワーク１００を介して収集されたデータに基づく管理を自動的に行うことを可能にする。例えば、１つ以上のワークフローを作成しても良く、サーバ１５０がプロセス制御システムで現在アクティブなアラームを監視することを可能にしても良い。１つ以上のワークフローは、アラームが特定の期間内に処理されなかった場合、例えば、アラームの重要度及び／または表示を自動的に変更することにより、適切なプラント要員にアラームが見えるようにアラーム構成を自動的に変更することによるなど、アクティブなアラームを強化するように構成されても良い。反対に、１つ以上のワークフローを作成して、例えば、これらのアラームがシステムの他のアラームからのものであり、システムで検出された実際の問題を表し得ない場合、サーバ１５０が特定のアラームの抑制を可能にする（例えば、非アクティブ化、重要度を下げる）ようにしても良い。
【００１９】
データ及び／またはアラームはデータベースに記憶される履歴データ及び／または履歴アラームの分析を含んでも良い。例えば、１つ以上のワークフローを作成して、サーバ１５０が、例えば、その後オペレータまたは他のユーザに提供され得る報告書に使用される特定のデータセットの作成を可能にしても良い。別の例として、１つ以上のワークフローを作成して、サーバ１５０が、履歴データを分析して特定のパターンまたは特定の（例えば、異常な）値の検索を可能にしても良い。係るパターンまたは値が識別されると、ワークフローは、識別されたパターンまたは値を、例えば、オペレータに伝達しても良い。別の例として、１つ以上のワークフローを作成して、サーバ１５０が、データベースを検索して、例えば、非侵入型の（例えば、遅い）バックグラウンドクエリを行うことにより特定の値または条件を識別し、他のシステム（例えば、メンテナンスアプリケーションまたは他のアプリケーション）がより迅速にデータにアクセス可能になるよう識別データを再編できるようにしても良い。
【００２０】
別の例として、１つ以上のワークフローを作成して、ワークフローはサーバ１５０が、例えば、ルールから逸脱するデータセットを識別するために、定義されたルールセットをデータに適用することを可能にしても良い。例えば、プロセス制御システム１０が石油／ガス井戸を含む場合、各井戸に対応するデータにルールが適用され、１つ以上の最も性能の高い井戸及び／または１つ以上の最も性能の低い井戸を識別することができる。この情報を使用して、例えば、識別された井戸を調査することにより、システムを最適化しても良い。一部のシステムでは、井戸の最適化がアクションエンジン１５２により作成されるワークフローに組み込まれても良く、これにより自動井戸最適化が行われても良い。自動最適化は、例えば、井戸パラメータを自動的に修正し、新規井戸パラメータを、対応するＲＴＵに送信するワークフローを含んでも良い。
【００２１】
別の例として、１つ以上のワークフローを作成しても良く、サーバ１５０が、プロセス制御システムの現在アクティブなアラーム及び／または履歴アラームを監視及び／または分析し、アラームの特定のユーザ定義トレンドを検出または識別することを可能にしても良い。１つ以上のワークフローはさらに、サーバ１５０が、特定の定義値をデータベースに自動的に設定し、識別または検出されたトレンドを示すことを可能にしても良い。追加的または代替的には、検出または識別されたトレンドに関するデータはプロセス制御システム（例えば、プロセス制御システムのオペレータ）により使用され、システム内の短期間または長期間の問題（例えば、デバイスの特定のフィールドデバイスに関連付けられた性能問題）を識別し、ならびに／またはプロセス制御システムを改善及び／もしくは最適化するための方法を識別しても良い。別の例として、１つ以上のワークフローを作成して、サーバ１５０が、プロセス制御システムで検出された特定の条件を基に、作業項目を自動的に作成することを可能にしても良い。サーバ１５０は、例えば、データベース内の特定のユーザ定義条件の検出を基に、係る作業項目を生成しても良い。１つ以上のワークフローは、さらにサーバ１５０が、作業項目を特定の要員に自動的に割り当て、作業項目を割り当てられた要員に提供することを可能にしても良い。
【００２２】
１つ以上のワークフロールーチンまたはステップは、サーバ１５０が、様々な方法でプラントオペレータ及び要員との対話が可能になるよう提供されても良い。例えば、１つ以上のワークフロールーチンまたはステップは、サーバ１５０が、データベースの特定の条件または変更が検出される際に、「注記」を作成し、これらの注記をＨＭＩデバイス１１４などのＨＭＩデバイスを介してオペレータに提供することを可能にしても良い。別の例として、１つ以上のワークフロールーチンまたはステップは、サーバ１５０が、ＨＭＩデバイス１１４などのＨＭＩデバイス上のウィンドウを自動的に開くことにより、（例えば、特定の１つのアラームまたは特定の複数のアラームが強化された際に、及び／または早急な対応を必要とする際に、プラント要員に通知するために）、オペレータとの対話を可能にしても良い。１つ以上のワークフローは、ユーザが、ワークフローとの手動対話を可能にするために、ＨＭＩデバイス上にダイアログウィンドウを表示するステップをさらに含んでも良く、例えば、サーバ１５０により実際に行われるアクションの前に、または特定のアラームが生成されるイベントにおいてオペレータが従うべき特定の手順を表示することにより、特定のアクションを確認する。ワークフローは、アラームの記録を作成し、インシデント後の分析中などにアラームが後で分析可能になるよう、記録をメモリに記憶するステップをさらに含んでも良い。アクションエンジン１５２は、ユーザが、プラントオペレータまたは他の要員に送信される電子メール（電子メール通知）、ショートメッセージサービス（ＳＭＳ）通知などの自動通知のためのトリガを設定できるようにし得る、１つ以上の表現またはステップをさらに含んでも良い。追加的または代替的には、アクションエンジン１５２は、例えば、ＰＯＰ３サーバを介して、電子メール、ＳＭＳメッセージなどを受け取るように構成されても良い。一実施形態では、アクションエンジン１５２は、ユーザが電子メール、ＳＭＳメッセージなどをワークフローテンプレートのステップに組み込むことが可能な１つ以上のステップまたは表現を含んでも良い。
【００２３】
一実施形態では、アクションエンジン１５２は、サーバ１５０のオペレーティングシステムと対話し、例えば、オペレーティングシステムの動作に関する特定の条件を検出するように構成されても良い。例えば、アクションエンジン１５２は、ユーザが１つ以上のワークフローを作成し、サーバ１５０上のシステムリソースを監視し、サーバ１５０上の特定のフォルダもしくはファイルを監視し、またはサーバ１５０のオペレーティングシステムに関する、もしくは関連付けられる他のアクションを行うことができるようにしても良い。一実施形態では、アクションエンジン１５０は、ユーザがサーバ１５０のリソースを監視しても良い１つ以上のワークフローを作成し、システムの低リソースを検出し、システムの災害復旧を援助し得るフェイルオーバー動作を開始できるようにしても良い。
【００２４】
一実施形態では、アクションエンジン１５２は、ユーザが、サーバ１５０に必要または望まれ得るデータ管理動作を実施する、１つ以上のワークフローを作成できるように構成されても良い。例えば、１つ以上のワークフローを作成して、サーバ１５０が特定のファイル（例えば、履歴アーカイブファイル）をサーバ１５０の外部のデータ記憶システム間及び／またはプロセス制御システムの外部のデータ記憶システム間で移動を可能にしても良い。さらに、１つ以上のトリガは、例えば、データベースシステムの１つの変更または複数の変更の検出に応えて、１つ以上のデータ管理ワークフローの開始をトリガするように定義されても良い。
【００２５】
一実施形態では、アクションエンジン１５２は、プロセス制御（ＯＰＣ）クライアントのためのオブジェクトリンキング及び埋め込み（ＯＬＥ）として動作するように構成され、例えば、ＯＰＣサーバからデータを読み出すために、ＯＰＣサーバと直接的に通信することができても良い。
【００２６】
図１を引き続き参照すると、無線ゲートウェイ３５は、無線通信ネットワーク７０の種々の無線デバイス４０〜５８にアクセスを提供し得るプロバイダデバイスの一例である。特に、無線ゲートウェイ３５はプロセス制御ネットワーク１００の無線デバイス４０〜５８と他のノード（図１のコントローラ１１を含む）との間の通信連結を提供する。同様に、無線ゲートウェイ３６は監視（例えば、ＳＣＡＤＡ）ネットワーク７２のＲＴＵ８０へのアクセスを提供するプロバイダデバイスの一例である。無線ゲートウェイ３５及び／または無線ゲートウェイ３６は、一部の場合では、有線もしくは無線プロトコルスタックの１つの共有層または複数の共有層をトンネリングしながら、有線もしくは無線プロトコルスタックの下位層にサービス（例えば、アドレス変換、ルーティング、パケットセグメント化、優先順位付け等）をルーティングすること、バッファリングすること及びタイミング調整することにより、それぞれのデバイスに通信連結を提供する。別の場合では、無線ゲートウェイ３５及び／または無線ゲートウェイ３６は、プロトコル層を全く共有しない有線もしくは無線プロトコル間のコマンドを変換しても良い。プロトコル及びコメント変換に加えて、無線ゲートウェイ３５、３６は、通信ネットワーク７０及び通信ネットワーク７２で実施される無線プロトコルに関連付けられるスケジューリング方式のタイムスロット及びスーパーフレーム（等しい時間間隔の通信タイムスロットのセット）により使用される同期クロッキングを提供しても良い。さらに、無線ゲートウェイ３５、３６は、通信ネットワーク７０及び通信ネットワーク７２に、リソース管理、性能調整、ネットワーク障害緩和、トラフィック監視、セキュリティなどのネットワーク管理機能及び運用管理機能を提供しても良い。
【００２７】
有線フィールドデバイス１５〜２２と同様に、無線ネットワーク７０の無線フィールドデバイス４０〜４６はプロセスプラント１０内で、例えば、バルブの開閉またはプロセスパラメータの測定などの物理的な制御機能を行っても良い。しかしながら、無線フィールドデバイス４０〜４６は、ネットワーク７０の無線プロトコルを使用して通信するように構成される。したがって、無線フィールドデバイス４０〜４６、無線ゲートウェイ及び無線ネットワーク７０の他の無線ノード５２〜５８は、無線通信パケットの生産者及び消費者である。
【００２８】
一部のシナリオでは、無線ネットワーク７０は非無線デバイスを含んでも良い。例えば、図１Ａのフィールドデバイス４８は旧来の４−２０ｍＡデバイスであっても良く、フィールドデバイス５０は従来の有線ＨＡＲＴデバイスであっても良い。ネットワーク３０内で通信するために、フィールドデバイス４８及び５０は、無線アダプタ（ＷＡ）５２ａまたは５２ｂを介して、無線通信ネットワーク７０に接続されても良い。追加的には、無線アダプタ５２ａまたは５２ｂは、Ｆｏｕｎｄａｔｉｏｎ（登録商標）、Ｆｉｅｌｄｂｕｓ、ＰＲＯＦＩＢＵＳ、ＤｅｖｉｃｅＮｅｔ等の他の通信プロトコルをサポートしても良い。さらに、無線ネットワーク３０は１つ以上のネットワークアクセスポイント５５ａ、５５ｂを含んでも良く、アクセスポイントは無線ゲートウェイ３５と有線通信する個別の物理デバイスであっても良いか、または無線ゲートウェイ３５に集積デバイスとして提供されても良い。無線ネットワーク７０は、無線通信ネットワーク３０内の１つの無線デバイスから別の無線デバイスにパケットを転送するために１つ以上のルータ５８をさらに含んでも良い。無線デバイス３２〜４６及び５２〜５８は、無線通信ネットワーク７０の無線リンク６０上で、互いに及び無線ゲートウェイ３５と通信しても良い。
【００２９】
したがって、図１は、プロセス制御システムの種々のネットワークにネットワークルーティング機能性及び運用管理を提供するように主に役立つ、いくつかのプロバイダデバイスの例を含む。例えば、無線ゲートウェイ３５、アクセスポイント５５ａ、５５ｂ及びルータ５８は無線通信ネットワーク７０で無線パケットをルーティングする機能性を含む。無線ゲートウェイ３５は、無線ネットワーク７０のためのトラフィック管理及び運用管理機能を行い、ならびに無線ネットワーク７０と通信可能に接続している有線ネットワーク間でトラフィックをルーティングする。無線ネットワーク７０は、Ｗｉｒｅｌｅｓｓ  ＨＡＲＴなどのプロセス制御メッセージ及び機能を特にサポートする無線プロセス制御プロトコルを利用しても良い。
【００３０】
同様に、ネットワーク７２のデバイス９２〜２６はプロセスプラント１０内で、例えば、バルブの開閉またはプロセスパラメータの測定などの物理的な制御機能を行っても良い。デバイス８２〜９６は、サーバ１５０及び／またはＨＭＩデバイス１１４などのホストデバイスを介して、ネットワーク７２を介したＲＴＵ８０とホストデバイスとの間の方向通信により、監視及び／または制御されても良い。
【００３１】
特定の実施形態では、プロセス制御ネットワーク１００は、他の無線プロトコルを使用して通信するネットワークバックボーン１０５に接続される他のノードを含んでも良い。例えば、プロセス制御ネットワーク１００は、ＷｉＦｉまたは他のＩＥＥＥ８０２．１１に準拠した無線ローカルエリアネットワークプロトコルなどの他の無線プロトコル、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）または他のＩＴＵ−Ｒ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ  Ｒａｄｉｏｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ）互換プロトコルなどのモバイル通信プロトコル、近接界通信（ＮＦＣ）及びＢｌｕｅｔｏｏｔｈ（登録商標）などの短波無線通信、または他の無線通信プロトコルを利用する１つ以上の無線アクセスポイント７２を含んでも良い。典型的には、係る無線アクセスポイント７２により、ハンドヘルドまたは他のポータブルコンピューティングデバイスは、無線ネットワーク７０と異なり、かつ無線ネットワーク７０とは異なる無線プロトコルをサポートする、それぞれの無線ネットワーク上で通信できる。一部の実施形態では、ホストデバイスは無線アクセスポイント７２を使用してプロセス制御ネットワーク１００上で通信する。一部のシナリオでは、ホストデバイスでは、１つ以上のプロセス制御デバイス（例えば、コントローラ１１、フィールドデバイス１５〜２２、無線デバイス３５、４０〜５８、ＲＴＵ８０）は、アクセスポイント７２によりサポートされる無線ネットワークを使用してさらに通信しても良い。
【００３２】
追加的または代替的には、プロバイダデバイスは当該プロセス制御システム１０の外部のシステムへの１つ以上のゲートウェイ７５、７８を含んでも良い。係る実施形態では、ホストデバイスは前記外部システムを制御し、監視し、または他の方法で前記外部システムと通信するために使用されても良い。典型的には、係るシステムは、プロセス制御システム１０により生成または動作される情報の顧客または供給者である。例えば、プラントゲートウェイノード７５は当該プロセスプラント１０（それ自体のそれぞれのプロセス制御データネットワークバックボーン１０５を有している）をそれ自体のそれぞれのネットワークバックボーンを有している別のプロセスプラントに通信可能に接続しても良い。一実施形態では、単一のネットワークバックボーン１０５は複数のプロセスプラントまたはプロセス制御環境にサービスを提供しても良い。
【００３３】
別の例では、プラントゲートウェイノード７５は、当該プロセスプラントを、プロセス制御ネットワーク１００またはバックボーン１０５を含まない旧来のまたは従来技術のプロセスプラントに通信可能に接続しても良い。この例では、プラントゲートウェイノード７５は、プラント１０のプロセス制御ビッグデータバックボーン１０５により利用されるプロトコルと、旧来のシステム（例えば、Ｅｔｈｅｒｎｅｔ、Ｐｒｏｆｉｂｕｓ、Ｆｉｅｌｄｂｕｓ、ＤｅｖｉｃｅＮｅｔ等）により利用される異なるプロトコルとの間でメッセージを転換または変換しても良い。係る例では、ホストデバイスは前記旧来のまたは従来技術のプロセスプラントでシステムまたはネットワークを制御し、監視し、または他の方法で通信するために使用されても良い。
【００３４】
図２は一実施形態による、図１のサーバ１５０などの例示的なホストデバイス２００の簡略ブロック図を示す。ホストデバイス２００は、ホストデバイス２００と、図１のプロセス制御ネットワーク１００のコントローラ１１及び／またはＲＴＵ８０との間の通信などの、ホストデバイス２００と、プロセス制御ネットワークの種々の他の構成要素との通信を可能にする１つ以上のネットワークインターフェース２０２を含む。ホストデバイス２００は、プロセッサ２０４及びメモリ２０６をさらに含む。１つ以上のインターフェース２０２、プロセッサ２０４及びメモリ２０６は、システムバス２１０により相互接続される。アクションエンジン２１２はメモリ２０６に記憶される。アクションエンジン２１２は図１のアクションエンジン１５２に対応しても良い。アクションエンジン２１２は、プロセッサ２０４上での実行時に、ユーザがプロセッサ２０４により実行されるカスタムワークフローを定義できるようにし、ホストデバイス２００がワークフロー内で定義された特定のアクションまたはアクションの特定のシーケンスを自動的に行うことを可能にしても良い。
【００３５】
一実施形態では、アクションエンジン２１２はユーザに所定ステップのセットを提供し、ユーザは１つ以上のステップを含むワークフローテンプレートを作成することができる。ステップは、ホストデバイスがシステムの他のデバイスに関して行うアクション、ホストが特定の決定を行うために行い得る計算、例えば、特定形式の特定データをオペレータに表示するためのデータ操作アクション、またはプロセスプラントの動作に必要もしくは望まれ得る他のアクションもしくは動作に対応しても良い。ワークフローにより分析または他の方法で使用され得るデータは、ＲＴＵ、コントローラもしくはプロセス制御システムを動作させる他のデバイスから受信されるリアルタイムデータであっても良く、あるいはリアルタイムデータもしくはデータベースに記憶される以前に収集されたデータ（例えば、図１のデータシステム１０２、サーバの一部であるデータベース、その組み合わせ等）であっても良い。一実施形態では、アクションエンジン自体が図１のデータシステム１０２のデータベースなどのデータベース、またはホストデバイス２００の一部のデータベースに記憶されても良く、これにより、係るデータベースシステムに典型的に実施される内部冗長性機構からの利益を得る。さらに、アクションエンジン２１２は、オペレータが、概してプロセス制御システムを構成、制御及び／または監視し得る構成アプリケーションの一部であっても良く、これにより、オペレータは、プログラミングアプリケーション、記述アプリケーションまたはコンパイリングアプリケーションなどの異なるソフトウェアアプリケーションを切り替えることなく、アクションエンジンワークフローを作成及び管理することができる。
【００３６】
一例として、ユーザは、プロセス変数を取得するステップ、プロセス変数と所定閾値とを比較するステップ、プロセス変数が閾値を超える際にジャーナルエントリを生成するステップ、アラーム指示を生成するステップ及びオペレータ表示デバイスまたはユーザインターフェースデバイスを介してアラームをオペレータに表示するステップを含むワークフローを生成しても良い。ユーザが一度ワークフローテンプレートを作成すると、ユーザはワークフローの１つ以上のインスタンスを作成しても良く、かつ、例えば、異なるインスタンスが異なるＲＴＵまたはコントローラデバイスに対応するように、これらのインスタンスを特定のパラメータでカスタマイズしても良い。定義されたワークフローは、その後、異なるＲＴＵまたはコントローラデバイスに適用することができ、異なるＲＴＵまたはコントローラデバイスのそれぞれに対してワークフローを複製する必要を排除する。さらに、ワークフローが変更または修正されると（例えば、ワークフローのステップが変更または削除される、新規ステップが追加される、変数が変更される等）、変更はテンプレートに対応する全てのワークフローインスタンスに自動的に伝搬され得る。これに応じて、ワークフローテンプレートの特定のインスタンスがホストデバイス２００でトリガされると、新規または修正されたワークフローが実行され得る。
【００３７】
図３に注目すると、図３は一実施形態例による、アクションエンジン２１２の例示的な実装のブロック図である。図３の実施形態では、アクションエンジン２１２は、アクションエンジン２１２の動作を可能にするいくつかのルーチンまたはモジュールを含む。ルーチンまたはモジュールのそれぞれは、メモリ（例えば、図２のメモリ２０６）に記憶されたコンピュータ可読命令のセットを備え、プロセッサ（例えば、図２のプロセッサ２０４）上での実行時に、プロセッサにアクションエンジン２１２の種々の構成要素を実施させる。図３の実施形態では、アクションエンジン２１２は、ワークフローモジュール２２０、バックグラウンドクエリモジュール２２２及び表現エディタモジュール２２４を含む。追加的には、アクションエンジン２１２はパーサ２２６及び所定の表現またはステップ２２８のセットを含んでも良い。所定の表現またはステップ２２８のセットは、ワークフローテンプレートを作成するために使用され得る、種々の事前に構成された表現を含んでも良い。事前に構成された表現は、アクションエンジン２１２に提供される（例えば、最初に含まれる）表現及び／またはアクションエンジン２１２を使用して、例えば、以下でより詳細に説明する通り、表現エディタモジュール２２４を使用して、作成された表現を含んでも良い。ワークフローモジュール２２０は、ユーザがワークフローテンプレートを作成することを可能にしても良く、ここでワークフローテンプレートは、所定の表現またはステップ２２８のセットから選択された１つ以上の表現またはステップを含んでも良い。ワークフローモジュール２２０は、ユーザがワークフローテンプレートに対応する１つ以上のワークフローのインスタンスを作成することをさらに可能にしても良く、かつユーザが作成されたワークフローインスタンスの実行をトリガするトリガを構成することを可能にしても良い。ワークフローモジュール２２０は、さらにユーザインターフェースデバイス（例えば、図１のＨＭＩデバイス１１４）を介してユーザに表示されても良いユーザインターフェースを提供し、ユーザがワークフローテンプレートを定義し、ワークフローインスタンスを作成することを可能にしても良い。以下でより詳細に説明する通り、ワークフローインスタンスの実行は、特定のユーザがスケジュールした１つの時間または複数の時間（例えば、特定の期間で繰り返される）でトリガされても良く、あるいは特定のパラメータ及び／またはデータベースフィールドの１つの値または複数の値の変更の検出に応えてトリガされても良い。例えば、バックグラウンドクエリモジュール２２２は、ユーザがデータベースクエリを定義できるようにしても良い。１つ以上のバックグラウンドクエリは、その後、ワークフローインスタンスに関連付けられても良く、かつバックグラウンドクエリの範囲内の特定のデータ（例えば、１つ以上のデータベースフィールド）の値変更が検出される際に、ワークフローインスタンスの実行をトリガしても良い。
【００３８】
図４に注目すると、例示的なディスプレイ５００は、アクションエンジンのユーザインターフェース構成要素により生成されても良く、ユーザがワークフローを作成することを可能にする画面を図示する。ディスプレイ４００は、例えば、図２のワークフローモジュール２２０のユーザインターフェース構成要素により生成されても良い。ディスプレイ４００は、作成されているワークフローテンプレートの視覚的な例示を提供するペイン４０２と、ユーザが、ワークフローテンプレートのステップのそれぞれに対する特有のステップまたは表現を選択することにより、ワークフローテンプレートのステップを決定することができ、ワークフローテンプレートに対して選択された表現の種々のパラメータを指定することができるペイン４０６とを含む。ペイン４０２は、ユーザがワークフローテンプレートに含める任意の適切な数のステップを作成できるようにしても良く、かつユーザがステップ間のリンクをさらに定義できるようにしても良い。各ステップはペイン４０２のボックスにより表現されても良い。ワークフローテンプレートは、概して、少なくとも１つのステップを含むため、ユーザが初めに新規テンプレートを開くと、ペイン４０２はワークフローテンプレートの第１ステップを表現する単一ボックスを含み得る。ユーザは、既に作成されたステップに対応するボックス上で右クリックし、追加ステップの作成に対応するアクションを選択することにより、１つ以上の追加ステップを定義しても良い。ユーザが特定のステップ上で右クリックすると、メニューが現れても良く、ユーザが、そのステップに関して行うアクションまたは、ワークフロー４００の大事なステップもしくは後続ステップなどの、ワークフローテンプレート４００の１つ以上の他のステップに関して行うアクションを選択することができる。一部のアクション例は、「ステップを後に挿入する」、「ステップを前に挿入する」、「ＹＥＳステップを追加する」、「ＮＯステップを追加する」、「既存のステップへのＹＥＳリンク」、「ステップ例へのＮＯリンク」及び「ステップを削除する」のセットからの任意のアクションを含んでも良い。「ＹＥＳステップを追加する」、「ＮＯステップを追加する」のステップオプションにより、ユーザはステップに続く条件分岐を作成することができても良く、ここでステップにより戻される値を基に、特定の分岐が選択され得る。ほんの一例として、ステップにより戻される論理ゼロ（「０」）の値は、「ＮＯ」分岐を選択しても良く、ゼロではない値（例えば、論理１の値）は「ＹＥＳ」分岐を選択しても良い。
【００３９】
ワークフローテンプレート４０４は複数のステップ４１０〜４１４を含む。ユーザは、ペイン４０６でパラメータ値を入力することにより、ステップ４１０〜４１４のそれぞれの種々のパラメータを定義しても良い。例えば、ユーザは、ペイン４０６の「ステップ名」ボックス４２０でステップ（例えば、ステップ４１０）のための名前を提供しても良い。ユーザは、ペイン４０６の「数式」ボックス４２２のドロップメニューを使用することにより、ステップ４１０〜４１４のための表現をさらに選択しても良い。図４の例では、ユーザは名前「レシピのダウンロード」をワークフローテンプレート４０４の第１ステップ４１０に提供し、第１ステップ４１０に対して表現「Ｗｒｉｔｅ＿ＣｏｎｔｒｏｌＷａｖｅ＿Ｌｉｓｔ」を選択した。選択された表現は「表現」ボックス４２４でユーザに見えるようにしても良い。ペイン４０６の数式パラメータウィンドウ４２６は数式ボックス４２２で選択された表現に関連付けられたパラメータを表示しても良く、かつユーザが各パラメータに対してパラメータタイプ及びパラメータ値を選択できるようにしても良い。ユーザは、各パラメータに対して所定パラメータタイプのセットからパラメータタイプを選択しても良い。所定パラメータタイプのセットは１つ以上の「一定値」、「前ステップ結果」、「ランタイム値」、「ワークフローパラメータ」を含んでも良い。一定値パラメータタイプは、対応する値フィールドに指定された値は、特定のパラメータに応じて、適切な数値または英数字の値であっても良く、ワークフローテンプレートのあらゆるインスタンスにおいて不変であることを示しても良い。前ステップ結果パラメータタイプは、現在の表現がワークフローの前ステップの結果をフェッチし、この結果を現在のパラメータの値として使用するべきであることを示しても良い。ランタイム値パラメータタイプは、対応するパラメータのランタイム時に、現在のワークフローで使用するために変数が作成されるべきであることを示しても良い。ワークフローパラメータタイプは、特有のパラメータ値がインスタンスベースで、例えば、ワークフローテンプレート４００のインスタンスが生成される際に、選択されるだろうことを示しても良い。当然ながら、所定パラメータタイプのセットは、他のパラメータタイプを含んでも良く、かつ／あるいは上で説明した１つ以上のパラメータタイプを省略しても良い。
【００４０】
図４の例では、表現Ｗｒｉｔｅ＿ＣｏｎｔｒｏｌＷａｖｅ＿ｌｉｓｔは２つのパラメータの表現である（つまり、２つのパラメータがこの表現に関連付けられる）。Ｗｒｉｔｅ＿ＣｏｎｔｒｏｌＷａｖｅ＿ｌｉｓｔ表現に関連付けられる第１パラメータは、リストがダウンロードされるデバイス（例えば、ＲＴＵ）を指定する「デバイス」パラメータ及びデバースにダウンロードされるレシピ（例えば、レシピを含むファイルのファイル名）を指定する「リスト」パラメータである。例示された実施形態では、ユーザはステップ４１０に対して選択されたＷｒｉｔｅ＿ＣｏｎｔｒｏｌＷａｖｅ＿ｌｉｓｔのパラメータのそれぞれを「ワークフローパラメータ」タイプとなるよう選択した。これに応じて、ユーザは、ユーザがワークフローテンプレートの特定のインスタンスを生成する際に、これらのパラメータに対する特有のパラメータ値を選択するだろう。
【００４１】
図４のワークフローテンプレート例で続けると、ダウンロードレシピステップ４１０は、具体的にはステップ４１１〜４１３を含む「ＮＯ」分岐４３０及びステップ４１４を含む「ＹＥＳ」分岐４３２の条件分岐が続く。実行中、「ＮＯ」分岐４３０または「ＹＥＳ」分岐４２２はステップ４１０の実行結果に基づいて選択されても良い。例えば、レシピダウンロードの成功は論理１の値を返しても良い。この値を基に、「ＹＥＳ」分岐４３２が選択されても良い。分岐４３２はワークフローを終えるための「終了」ステップを含んでも良い（ステップ４１３）。一方、レシピダウンロードの失敗は論理１以外の値（例えば、論理０または別の値）を返しても良い。この場合、「ＮＯ」分岐４３０が選択されても良い。分岐４３０は、レシピダウンロードの失敗を記録するジャーナルエントリを作成するステップ（ステップ４１１）と、別のダウンロードレシピステップ（ステップ４１３）が続く、一定期間のアイドル時間を定義し得る「休止」ステップとを含んでも良い。ダウンロードレシピステップ４１３はステップ４１０を戻って参照しても良く、ステップ４１０で開始するワークフローの実行をトリガしても良い。
【００４２】
図５を参照すると、例示的なディスプレイ５００は、アクションエンジンのユーザインターフェース構成要素により生成されても良く、ユーザがカスタム表現を作成することを可能にする画面を図示する。ディスプレイ５００は、例えば、図２の表現エディタモジュール２２４のユーザインターフェース構成要素により生成されても良い。ディスプレイ５００は、「機能」タブ及び「数式ツリー」タブを含む部分５０２を含む。図５では、機能タブが選択される。機能タブが選択された状態では、ディスプレイ５００の部分５０２は、ユーザがカスタム表現を作成するために利用できる機能セットをユーザに表示する。ディスプレイ５００を使用して、ユーザはこれらの機能の１つ以上を、表現を作成するための構築ブロックとして選択することにより、表現を定義しても良い。図６を簡潔に注目すると、図６ディスプレイ５００が例示され、ユーザにより作成され得る表現の一例を図示する。表現はユーザにより「数式」ウィンドウ５１０に入力されても良く、かつ部分５０２の「数式ツリー」タップを介して「数式ツリー」形式でユーザにさらに表示されても良い。一度作成されると、表現はユーザにより提供された表現名を使用して保存することができ、かつワークフローテンプレートでの選択に対してその後利用可能になっても良い。例えば、表現は、ワークフローテンプレートが作成または編集されている際に、選択に提供されるステップセットに利用可能になっても良い。
【００４３】
図７に簡潔に注目すると、例示的なディスプレイ７００は、アクションエンジンのユーザインターフェース構成要素により生成されても良く、ユーザがバックグラウンドクエリを作成することを可能にする画面を図示する。ディスプレイ７００は、例えば、図２のバックグラウンドクエリモジュール２２０のユーザインターフェース構成要素により生成されても良い。ディスプレイ７００により、ユーザは、例えば、ドロップダウンメニューからテーブル名を選択することにより、データベースのテーブル名を選択することができても良い。ユーザは、さらに選択されたテーブルで問い合わせられる特定のインデックスまたはカラムを指定することにより、クエリの範囲を狭めることができる。ユーザは、さらに、（例えば、「Ｗｈｅｒｅ」ウィンドウ７０２に変数名を入力することにより）クエリに対して変数名を指定することができても良い。ユーザは、さらに、「テスト」ボタン７０４を押すことにより、クエリをテスト及び検証することができても良い。ユーザは、さらに、例えば、エラー、警告、情報及びデバッグのうち１つ以上の任意の組み合わせを選択する識別を選択することにより、クエリのトレースレベル識別を指定することができても良い。指定された識別は、クエリの結果を記録するために、その後、コンテナトレースログで使用される。
【００４４】
図８〜図１１は、ユーザがワークフローのインスタンスを作成することを可能にする、アクションエンジンのユーザインターフェース構成要素により生成されても良い例示的なディスプレイを図示する。例示されたディスプレイは、例えば、図２のワークフローモジュール２２０のユーザインターフェース構成要素により生成されても良い。図８に注目すると、インスタンスを作成すべきワークフローテンプレートを識別するディスプレイ８００が図示される。ユーザは、ボックス８０２のドロップダウンメニューを使用することにより、ワークフローテンプレート形式利用可能なワークフローテンプレートのセットを選択しても良い。図９を参照すると、ディスプレイ９００はディスプレイ８００でユーザが識別したワークフローテンプレートに関連付けられたタイプ「ワークフローパラメータ」の任意のパラメータをユーザに提供する。ディスプレイ９００を使用して、ユーザは図示されたパラメータのそれぞれに値を提供し、それによりワークフローの特定のインスタンスをカスタマイズしても良い。図１０を参照すると、ディスプレイ１０００により、ユーザは、ワークフローインスタンスのための出力設定を指定することができる。ディスプレイ１０００により、さらにユーザはワークフローインスタンスの実行結果を基に生成することができるアラームを定義できても良く、例えば、ユーザは、ワークフローインスタンスの実行がエラー状態を生成する際に、アラームを生成するべきであるということを指定しても良い。代替的には、ユーザは、ワークフローインスタンスの実行がシステムの任意の状態変化をもたらす際に、例えば、システムを監視するために、アラームを生成するべきであるということを指定しても良い。追加的には、ユーザはアラームのアラーム優先度を指定できても良い。図１１に注目すると、ディスプレイ１１００により、ユーザは、ワークフローインスタンスに対するトリガ条件を指定することができる。上で説明した通り、トリガ条件は、指定時間の１つ以上の開始などのスケジュール時間に基づいて指定期間等で繰り返しても良く、及び／または１つ以上の（例えば、バックグラウンドクエリにより生成される）データベースフィールドの値変更などの値変更に基づいても良い。
【００４５】
図１２のフロー図は、アクションまたはアクションセットを自動的に行うために、プロセス制御プラントでホストデバイスを構成する方法１２００を図示する。方法１２００は、コンピュータ可読媒体（一時的な信号を除く）上に記憶されるソフトウェア命令により実行されても良いコンピュータ実行方法であり、例えば、サーバ１５０、ＨＭＩデバイス１１４またはホストデバイス２００などのプロセッサにより実行される。ワークフローテンプレートが生成される（ブロック１２０２）。ワークフローテンプレートは、ホストデバイスにより行われる１つ以上のステップのシーケンスを含む。１つ以上のステップの少なくとも一部のそれぞれは、所定ステップのセットから選択される（ブロック１２０３）。ワークフローテンプレートに対応するワークフローインスタンスが生成される（ブロック１２０４）。ワークフローインスタンスの実行をトリガするトリガに対するトリガ条件が生成される（ブロック１２０８）。トリガ条件の検出に応えて、１つ以上のステップのシーケンスが実行される（ブロック１２１０）。
【００４６】
実施形態では、方法１２００に関連する、上に挙げた一部のステップは省略され、組み合わされ、補足されまたは再度並び替えられることに留意されたい。
【００４７】
具体的に別途規定のない限り、「ｐｒｏｃｅｓｓｉｎｇ」、「ｃｏｍｐｕｔｉｎｇ」、「ｃａｌｃｕｌａｔｉｎｇ」、「ｄｅｔｅｒｍｉｎｉｎｇ」、「ｉｄｅｎｔｉｆｙｉｎｇ」、「ｐｒｅｓｅｎｔｉｎｇ」、「ｄｉｓｐｌａｙｉｎｇ」または同様の単語などの単語を使用する本明細書の説明は、１つ以上のメモリ（例えば、揮発性メモリ、不揮発性メモリまたはその組み合わせ）、レジスタまたは情報を受信、記憶、送信または表示する他のマシン構成要素内の物理的（例えば、電子的、磁気的もしくは光学的）数量として表わされるデータを操作または変換するマシン（例えば、コンピュータ）のアクション及び／またはプロセスを指し得る。
【００４８】
ソフトウェアで実行されるとき、本明細書に記載されるアプリケーション、サービス、エンジン、ルーチン及びモジュールのいずれも、コンピュータもしくはプロセッサ等のＲＡＭまたはＲＯＭ内で、磁気ディスク、レーザディスク、ソリッドステートメモリデバイス、分子メモリ記憶デバイス、光ディスクまたは他の記憶媒体上等で、任意の有形の非一過性コンピュータ可読メモリに記憶され得る。本明細書に開示されるシステムの例が、他の構成部品の中でも、ハードウェア上で実行されるソフトウェア及び／またはファームウェアを含むものとして開示されるが、係るシステムが単に例示であり、制限するものとして考えられるべきではないことに留意されたい。例えば、これらのハードウェア、ソフトウェア、及びファームウェア構成要素のいずれかまたは全てが、ハードウェアで排他的に、ソフトウェアで排他的に、またはハードウェア及びソフトウェアの任意の組み合わせで具体化され得ることが考えられる。したがって、当業者であれば、提供される例が係るシステムを実行する唯一の方法でないと容易に理解するだろう。
【００４９】
したがって、例示のみで、本発明を制限するものではないことを意図される特有の例に関して、本発明を説明したが、本発明の趣旨及び範囲から逸脱することなく、開示された実施形態に対して、変更、追加または削除を行っても良いことが、当業者に明らかにされるだろう。
【図１】
0006701092.tif 000002
【図２】
0006701092.tif 000003
【図３】
0006701092.tif 000004
【図４】
0006701092.tif 000005
【図５】
0006701092.tif 000006
【図６】
0006701092.tif 000007
【図７】
0006701092.tif 000008
【図８】
0006701092.tif 000009
【図９】
0006701092.tif 000010
【図１０】
0006701092.tif 000011
【図１１】
0006701092.tif 000012
【図１２】
0006701092.tif 000013