以下において、他のコンポーネントの中でも、ハードウェアで実行されるソフトウェアおよび/またはファームウェアを含む、例示的な方法および装置を記載するが、これらの例は例示的なものにすぎず、制限的なものとして考えられるべきではないことに留意されたい。例えば、ハードウェア、ソフトウェア、およびファームウェアコンポーネントのいずれかまたは全てを、ハードウェアのみ、ソフトウェアのみ、またはハードウェアおよびソフトウェアの任意の組み合わせにおいて実現できることが検討される。したがって、以下において、例示的な方法および装置を説明するが、当業者は、示されている例が、かかる方法および装置を実装する唯一の方法ではないことを容易に理解するだろう。例えば、例示的な方法および装置が、プロセス制御検索結果の管理に関連して記載されているが、例示的な方法および装置は、より一般的に適用可能であり、任意の自動化システム、バッチ処理システム、製造システム、工業制御システム、安全装置システム等のための検索結果を管理するために実装されてもよい。
本明細書に記載される例示的なシステム、方法、および製品は、プロセス制御システムのユーザに検索サービスを提供するために使用することができる。いくつかの例において、プロセス制御システムは、フィールドデバイス統合(FDI)規格を使用する。いくつかの例示的な検索サービスは、パブリッシャと、検索エンジンと、を含む。いくつかの例において、パブリッシャは、プロセス制御システムから一連の検索可能なアイテムに関連付けられた情報を収集し、収集された情報を検索データベースに発行する。いくつかの例示的な検索エンジンは、例示的な検索データベース内の検索可能なアイテムのクエリを含むリクエストを受信し、クエリに基づいて、検索データベース内で一連の検索可能なアイテムを検索し、検索プロファイルに基づいて、収集された情報のうちの少なくとも一部を返す。
発行および/または検索されてもよい、いくつかの例示的な検索アイテムは、製造データ、プロセス制御システムの一部の表示、プロセス制御システム内のデバイスおよび/またはアプリケーションのデータトレンド、プロセス制御システム内のデバイスおよび/またはアプリケーションに関するオペレータの注記、デバイスのデータシート、プロセス制御システム内のデバイスによって生成される警告および/または注意、プロセス制御システム内のデバイスおよび/またはアプリケーションのための文書、プロセス制御システム内のデバイスからの診断、プロセス制御システム内のデバイスおよび/またはアプリケーションによって生成されるログ、ならびに/あるいはプロセス制御システム内の任意の他のタイプの検索可能なアイテムを含む。
以下に記載されるいくつかの例示的なシステム、方法、および製品は、ユーザが検索結果をカスタマイズおよび向上することを可能にするように検索プロファイルを使用する。いくつかの例において、プロセス制御システムのユーザは、1つ以上のタイプの検索結果を選択することを含めて、検索プロファイルを作成、編集、および/または削除し、検索クエリに検索条件を付加し、過去の検索クエリに基づいて検索結果を加重し、ならびに/あるいは検索プロファイルから過去の検索クエリを削除することができる。ユーザが検索プロファイルを使用して検索を実行する場合、ユーザによって入力された検索クエリは、検索プロファイルに応じて修正されてもよく、および/または例示的な検索エンジンは、検索プロファイルに特定された所望の検索結果に基づいて、特定のタイプの検索結果を返す。いくつかの例において、検索エンジンは、ユーザによって入力された検索クエリおよび/またはユーザによって選択された検索結果に基づいて、検索プロファイルを更新する。検索プロファイルを更新することは、例えば、ユーザの選択に基づいて検索結果を加重すること、および/または過去の検索クエリに基づいて検索条件を加重すること、を含んでもよい。
図1は、プロセス制御システム100に検索サービスを提供するための、FDIサーバ106を含む例示的プロセス制御システム100を示すブロック図である。例示的な制御環境100は、制御システム102および/または他の制御システム(図示せず)に通信可能に結合されてもよいさらなるクライアント(図示せず)を含んでもよい。
クライアント104(例えば、ターミナル、ワークステーション、パーソナルコンピュータ)、例示的な制御システム102、および/またはフィールドデバイス統合(FDI)サーバ106は、FDI規格を使用して通信する。FDIサーバ106は、HART(登録商標)、Foundation Fieldbus、および/またはProfibusを含む異なる規格を使用して動作する、異なるネットワーク上のデバイスとインターフェースを取る。概して、FDIは、デバイスの製造者および/またはサプライヤが、デバイスが本来意図されたおよび/または構築された規格に関係なく、均一にデバイスを管理するために、顧客によって使用可能なツールセットを構築できるようにするための仕様を提供する。FDIは、標準的なElectronic Device Description Language(EDDL)のテキストベースのファイル(例えば、XMLファイル)が、デバイス、デバイスによって提供された方法、デバイスによってサポートされる測定およびデバイスパラメータ、デバイスのための構成情報、および/またはユーザがデバイスと行うことができる相互作用を記述できるようにする、テキストによるデバイス記述方法を含む。
FDIはさらに、アプリケーションおよび/またはデバイスが通信するための標準方法を提供する。通信方法は、通信チャネルを介してメッセージを送信および受信する、メッセージバスの方法に類似する。メッセージバスの方法は、アプリケーション、コントローラ、サーバおよび/またはデバイスが、受信するアプリケーションまたはデバイスの内部動作に関する特定詳細のすべてを必ずしも認識することなく、相互作用することを可能にする。メッセージバスの手法に加えて、FDIは、アプリケーション、コントローラ、サーバ、および/またはデバイスからサービスをリクエストする、サービス指向方法のための機能を提供する。このようなサービス指向方法の下では、アプリケーション、コントローラ、サーバ、および/またはデバイスは、契約およびメッセージを使用して、機能性を明らかにし、利用する。サービス方法は、システムリソースおよび/または作用を交渉、割り当て、割り当てを解除、制限、管理、診断するためにアプリケーション、コントローラ、サーバおよび/またはデバイスによって使用されてもよい。
例示的なクライアント104および例示的なFDIサーバ106は、第1の通信バス108を介して通信される。FDIサーバ106は、通信バス108と同じまたは異なるタイプであってもよい、他の通信バス110、112へ、通信バス108を接続する。FDIサーバ106は、さらに、通信バス112を介して制御システム102と通信する。このため、クライアント104は、FDIサーバ106ならびに適切な通信バス108および112を介して、制御システム102内の任意のデバイスと通信してもよい。
いくつかの例において、通信バス108〜112は、Foundation Fieldbusプロトコル、Profibusプロトコル、および/またはHARTプロトコルに準拠するように実装されてもよい。
例示的な制御システム102は、製造施設、処理施設、自動化施設、および/または任意の他の種類のプロセス制御構造またはシステムの任意の種類を含んでもよい。いくつかの例において、制御システム102は、異なる位置に配置される複数の施設を含んでもよい。さらに、例示的な制御システム102がプロセス制御サブシステム114に関連付けられていても、制御システム102は、さらなるプロセス制御システムを含んでもよい。
例示的なプロセス制御サブシステム114は、データバス118を介して、コントローラ116へ通信可能に結合される。プロセス制御サブシステム114は、任意の数のフィールドデバイス(例えば入力および/または出力デバイス)を含んでもよい。フィールドデバイス119は、入力の受信、出力の生成、および/またはプロセスの制御が可能であるプロセス制御コンポーネントの任意の種類を含んでもよい。例えば、フィールドデバイスは、プロセスを制御するために、例えば、バルブ、ポンプ、ファン、ヒーター、クーラー、および/またはミキサー等の入力デバイスを含んでもよい。さらに、フィールドデバイスは、プロセスの一部を測定するために、例えば、温度計、圧力計、濃度計、流面計測装置、流量計測装置、および/または蒸気センサ等の出力デバイスを含んでもよい。入力デバイスは、指定されたコマンドを実行し、プロセスに変更を生じさせるために、コントローラ116から命令を受信してもよい。さらに、出力デバイスは、プロセスデータ、環境データ、および/または入力デバイスデータを測定してもよく、プロセス制御情報(例えばプロセスデータ)として、コントローラ118へ測定したデータを送信してもよい。このプロセスデータは、各フィールドデバイスからの測定された出力に対応する、変数値(例えば、測定されたプロセス変数および/または測定されたクオリティ変数)を含んでもよい。
図1の図示された例において、例示的なコントローラ116は、データバス118を介して、プロセス制御サブシステム114内のフィールドデバイスと通信してもよい。データバス118は、プロセス制御サブシステム114内の通信コンポーネントに結合されてもよい。通信コンポーネントは、フィールドデバイスからデータを受信し、例示的なコントローラ116によって受信できる通信媒体へデータを転換するための入出力カードを含んでもよい。さらに、これらの入出力カードは、データを、コントローラ116から、対応するフィールドデバイスによって処理できるデータフォーマットへ転換してもよい。一例において、データバス118は、Fieldbusプロトコルまたは他の種類の有線および/もしくは無線の通信プロトコル(例えばProfibusプロトコル、HARTプロトコル等)を使用して実装されてもよい。
コントローラ116は、任意の有線および/または無線接続によって、FDIサーバ106と通信可能に結合される。いくつかの例において、接続は、コントローラ116へのアクセスを制限するために、ファイアウォールおよび/または他のセキュリティメカニズムを含んでもよい。コントローラ116は、コントローラ116がプロセス制御サブシステム114からプロセスデータを受信すると、FDIサーバ106へプロセスデータを送信してもよい。他の例において、コントローラ116は、定期的な間隔で(例えば毎分、毎時間、毎日等)、FDIサーバ106へプロセスデータを送信してもよい。あるいは、FDIサーバ106は、コントローラ116からプロセスデータをリクエストしてもよい。
プロセスデータを受信すると、図1の例示的なFDIサーバ106は、ファイルシステム(図示せず)内のプロセスデータを格納する。ファイルシステムは、プロセス制御サブシステム114内のデバイスに基づいて、および/または、プロセス制御サブシステム114を管理するために、コントローラ116内で動作するルーチン(例えばアプリケーションおよび/またはアルゴリズム)に基づいて、ディレクトリおよび/またはサブディレクトリと階層的に編成されてもよい。他の例では、ファイルシステムは、制御システム102のオペレータによって編成されてもよい。プロセスデータは、関連付けられたディレクトリおよび/またはサブディレクトリ内のパラメータに格納されてもよい。いくつかの例において、パラメータは、コントローラ116上で動作するルーチンと関連付けられる、またはプロセス制御システム100内のフィールドデバイス出力と関連付けられる変数にしてもよい。パラメータは、パラメータに関連付けられたプロセスデータの種類を記述するメタデータを含んでもよい。
例示的なクライアント104は、プロセス制御システム100に関連付けられプロセスデータを読み込み、書き出し、および/または登録することが承認されてもよい個人に関連付けられてもよい。クライアント104は、さらに、リモート位置からプロセス制御システム100にアクセスしてもよい制御システム102に関連付けられた人員に関連付けられてもよい。クライアント104は、任意の有線および/または無線通信媒体(例えばインターネット)を使用して、FDIサーバ106を介してプロセス制御システム100にアクセスしてもよい。
相互動作機能を提供することに加えて、FDIサーバ106は、クライアント104に、クライアント104のユーザのために所望のデータを迅速に呼び出すために使用されてもよい、検索サービスを提供する。以下に詳細を記載するように、FDIサーバ106は、コンテキスト検索結果を提供し、ユーザまたはクライアント104に関連付けられた検索プロファイルに基づいて検索結果を提供し、検索クエリに基づいてユーザまたはクライアント104の検索プロファイルを更新し、過去の検索に基づいて検索クエリおよび/または検索結果を修正し、および/または検索サービスの利用性を強化するための他の検索機能をクライアント104のユーザに提供することができる。
例示的なFDIサーバ106は、プロセスデータが、クライアント104で動作するクライアントアプリケーション120のユーザによって表示可能になるように、プロセスデータをフォーマットすることができる。図1の例は、インターフェース122内のプロセスデータを示すクライアントアプリケーション120を示す。例えば、クライアントアプリケーション120は、ウェブクライアントディスプレイアプリケーションを含んでもよい。FDIサーバ106は、ウェブページを作成し、および/またはテンプレートウェブページにアクセスし、ウェブページ内にデータフィールドを配置または埋め込むことにより、ウェブサーバアプリケーションのためのプロセスデータをフォーマットしてもよい。インターフェース122は、ウェブブラウザを介して、次いでHTMLリクエストおよび応答を使用して、FDIサーバ106内でホストされるウェブページにアクセスすることにより、プロセスデータを表示してもよい。あるいは、FDIサーバ106は、ウェブブラウザ(例えばインターフェース122)内で実行可能であってもよい、またはクライアント104(例えばWindows(登録商標)オペレーティングシステムアプリケーション、アプリケーションプラグイン)に本来のものであってもよい、クライアントアプリケーション120において、ウェブアプリケーション(例えばActiveX,Adobe Flash(登録商標)および/またはSilverlight(登録商標)を初期化することにより、クライアントディスプレイアプリケーションのために、プロセスデータをフォーマットしてもよい。
いくつかの例において、クライアント104は、検索を実施する前に、クライアントアプリケーション120をダウンロードおよび/またはインストールすることができる。FDIサーバ106は、検索結果をクライアントアプリケーション120へ送信する。いくつかの例において、FDIサーバ106は、クライアントアプリケーション120へプロセスデータを送信する前に、対応するデータフィールドに、プロセスデータを関連付ける。プロセスデータの受信時において、クライアントアプリケーション120は、対応するデータフィールド内のプロセスデータを表示するために、ウェブブラウザ(例えばインターフェース122)内のディスプレイを作成(たとえば、レンダリング)する。
クライアント104は、好ましい検索パターンに合うように、後で特定される検索クエリを使用して検索される結果のタイプ、検索クエリへの自動的追加、検索結果のリターンフォーマット、および/または検索結果への任意の他の修正を特定することによって、検索プロファイルをカスタマイズすることができる。例えば、クライアント104は、データフィールドを表示するために、ウェブブラウザ内の場所を特定することができる。検索プロファイルは、クライアント104および/またはクライアント104のユーザに特化していてもよい。例えば、オペレータは、技術者またはエンジニアとは異なる検索プロファイルを使用することができるが、クライアント104は、プロセス制御システム内のユーザの役割に関わらず、クライアント104のユーザのための異なる検索プロファイルを有することができる。
FDIサーバ106はさらに、通信バス108〜112上の他のデバイス128、130、132、134、136から受信されるデータに基づいて、検索結果を更新することができる。例示的なデバイス128〜136は、ワークステーション、端末、コントローラ、通信ネットワークドロップノード、通信デバイス(例えば、モデム、ネットワークゲートウェイ)、ならびに/あるいは任意の他のタイプの入力、出力、および/または制御デバイスを含んでもよい。
図2は、図1の例示的なFDIサーバ106を実装するために使用されてもよい、例示的なサービス指向フレームワーク200のブロック図である。例示的なサービス指向フレームワーク200は、プロセス制御システム(例えば、図1のプロセス制御システム100)の柔軟性を向上するために、サービス指向アーキテクチャを提供する。図2に示されるように、サービス指向フレームワーク200は、ホストアプリケーション202、検索エンジン204、デバイス記述208、および1つ以上のデバイスネットワーク210と通信する。サービス指向フレームワーク200は、サービスレイヤ212、変換レイヤ214、ネットワークアプリケーションレイヤ216、およびセキュリティレイヤ218を含む。
図2の例示的なホストアプリケーション202は、デバイスを設定するためのアプリケーション、デバイスの較正および診断を実行するためのアプリケーション、および/または1つ以上のデバイスネットワークに配置されたデバイスから測定値およびイベントを読み込むためのアプリケーションである。図2に示されるように、ホストアプリケーション202は、サービスレイヤ212からサービスをリクエストおよび利用してもよいサービス顧客206を含む。ホストアプリケーション202は、例えば、図1の例示的なクライアント104および/または図10の例示的なコンピュータ1000上で実行されるコンピュータ可読命令を使用して実装されてもよい。ホストアプリケーション202は、サービス指向フレームワーク200を介して、デバイスネットワーク210と通信する。したがって、例示的なサービス指向フレームワーク200および/またはフレームワーク200の選択された部分は、デバイスネットワーク108、110、および112上のクライアント104、サーバ106、コントローラ116、および/またはデバイス128〜136のそれぞれの上で実装されてもよい。
サービスレイヤ212は、サービスインターフェース220、サービスメッセージタイプ222、サービスデータタイプ224、アダプタ226、および検索インターフェース230を含むサービス228を含む。検索インターフェース230に加えて、サービスレイヤ212によって提供された例示的なサービス228は、デバイス記述208およびデバイスネットワーク210へのアクセスを含む。サービス228は、アプリケーションおよび/またはデバイスが、所望の能力または機能を実行するようにサービス228にリクエストできるようにするサービス契約として明らかになっている。サービスによって実装された新しい機能、ならびに新しいメッセージおよびデータタイプを含むためのサービス契約の変更は、既存の契約と上位互換性がない。
サービスレイヤ212は、サービスインターフェース220を介してアクセスされる。サービスレイヤ212は、アプリケーションおよび/またはデバイスからのサービスリクエストを管理し、ホストアプリケーションによって使用するためのサービス契約を変換する。サービスとサービス顧客との間のメッセージのやりとりの際に、メッセージを各サービス顧客が理解できるフォーマットに変えるために、1つ以上のアダプタ226を使用してもよい。
サービスレイヤ212へのアクセスは、ポリシーによって定義される。ポリシーは、サービス顧客が、接続の種類、サービスにアクセスするための任意のセキュリティ要件、および/またはサービスのリクエストに関する任意の他の詳細を決定する方法を提供する。
変換レイヤ214は、FDIベースのプロトコルとデバイスネットワークに特化したプロトコル(例えば、HART、Fieldbus、Profibus)との間を変換する。例示的な変換レイヤ214は、デバイス記述ファイル208からデバイスについての情報を受信する。デバイス記述ファイル208は、電子デバイス記述言語(EDDL)232および/または共通ファイルフォーマット234のデバイスについての情報を含む。EDDLファイル232は、図1のデバイス128〜136の各製造者によって生成されるテキストによる記述を表す。EDDLファイル232は、デバイス128〜136のデジタルデータシートに類似する。従来のプログラミング言語と比較して、EDDLエレメントの柔軟性は、制限されており、また、デバイス記述に特化している。一方で、EDD言語の簡潔性により、EDDデバイス記述の容易かつ効率的な開発が可能になり、ハードウェアおよびオペレーティングシステムプラットフォームへの依存がなくなり、デバイス動作のための均一的な理念が生じ、翻訳を経て高いロバスト性がもたらされる。EDDL技術は、低程度から平均的な複雑さのデバイスで有利に使用することができる。
共通ファイルフォーマット234は、デバイスおよび/またはアプリケーションについての情報を格納し、ファイルは、システム、ツールセット、アプリケーション、および/または他のデバイスの間で交換されてもよい。いくつかの例において、共通ファイルフォーマット234は、柔軟性があり、タグを使用して仮想的に制限されていない記述を可能にする拡張マークアップ言語(XML)を含むスキーマを使用する。
ネットワークアプリケーションレイヤ216は、図1のデバイスネットワーク108〜112のうちの1つ以上と相互作用するためのデータアクセス機能を含む。例示的なフレームワーク200は、複数のネットワークアプリケーションレイヤ216を含んでもよく、これらのそれぞれが、HART、Fieldbus、およびProfibus等の特定のデバイスネットワークに特化している。したがって、例示的なフレームワーク200およびネットワークアプリケーションレイヤ216は、これらのプロトコルへのいかなる変更も必要としない。
デバイスネットワーク210は、デバイスを構成し、デバイス診断にアクセスし、測定値、アラームおよびイベントを送信する能力、ならびに/またはその他の通信および制御能力を有する例示的なフレームワーク200を提供する。サービス指向フレームワーク200によってサポートされるいくつかの例示的な能力は、リクエストおよび/または応答、発行および/または登録、イベントの送信、アプリケーションおよび/またはデバイスのディレクトリの保守、ならびに/またはデバイスへのコマンドの書き込みを含む。サービス指向フレームワーク200は、ホストアプリケーション202に、サービスレイヤ212を介したこれらの能力へのアクセスを提供する。例えば、サービス指向フレームワーク200は、リクエスト/応答、発行/登録、イベント、ディレクトリ、および書き込み能力について定義されたサービスを有してもよい。
動作の例において、ホストアプリケーション202は、デバイスネットワーク上の圧力トランスミッタデバイスからの圧力測定値等、デバイスパラメータを読み込むために、リクエストを生成する。デバイスネットワークがHARTネットワークの場合、ホストアプリケーション202は、圧力トランスミッタデバイスにコマンドを送信する。これに対して、デバイスネットワークがフィールドバスネットワークの場合、ホストアプリケーション202は、オブジェクト辞書エントリを読み込みまたはリクエストを行う。FDI規格を使用して、例示的なホストアプリケーション202は、圧力トランスミッタデバイスから圧力を読み込むために、汎用(例えば、標準)フォーマットでリクストを作成する。リクエストを受信すると、サービスレイヤ212は、変換レイヤ214へリクエストを送信する。変換レイヤ214は、圧力トランスミッタデバイスが接続されているデバイスネットワークに特化したコマンドを生成し、ネットワークアプリケーションレイヤ216を介してコマンドを送信する。デバイスネットワークは、圧力トランスミッタデバイスへリクエストを送信し、ネットワークアプリケーションレイヤ216を介して、デバイスから変換レイヤ214へ応答を返す。変換レイヤ214は、次に、ホストアプリケーション202によって理解可能である標準応答フォーマットへ、応答を転換する。いくつかの他の例において、ホストアプリケーション202は、応答のための特定のフォーマットを必要とする。これらの場合において、ホストアプリケーション202は、応答がホストアプリケーション202に戻される際に、特定のアダプタ226を呼び出すようにリクエストしてもよい。
いくつかの場合において、デバイスネットワークへのアクセスを制限する必要があるかもしれない。この要件をサポートするために、サービス指向フレームワーク200は、認証および/または承認を提供するために、セキュリティレイヤ218を含む。認証の実装は、使用されるサービスホストの種類に依存してもよい。このため、サービス指向フレームワーク200は、1つ以上のセキュリティレイヤのプラグインを可能にする。例えば、サービス指向フレームワーク200がインターネット情報サービス(IIS)においてホストされる場合、IISによって提供された認証サポートが使用される。サービスがWindows(登録商標)サービスによってホストされる場合、メッセージベースまたはトランスポートベースの認証が使用される。
いくつかの例において、サービス指向フレームワーク200は、ユーザアクセスの承認を提供する。これらの場合、承認モジュールは、ユーザ、グループ、および役割について、リソース上のアクセス許可を提供するためにプラグインできる。
図3は、図2の例示的な検索エンジン204および例示的な検索インターフェース230の詳細ブロック図である。例示的な検索エンジン204および/または例示的な検索インターフェース230は、図1の例示的なFDIサーバ106、任意の通信バス108〜112に結合された1つ以上の他のサーバ、および/または図10のコンピュータシステム1000を使用して実装されてもよい。
図2の例示的な検索エンジン204は、検索フレームワーク302と、検索データベース304と、クエリおよびナレッジデータベース306と、検索プロファイルデータベース308と、を含む。例示的な検索フレームワーク302は、サーチャ310と、インデクサ311と、サブスクライバ(例えば、リスナ)312と、を含む。例示的な検索エンジン204はまた、デバイスパブリッシャ314と、アセット管理パブリッシャ316と、制御システムパブリッシャ318と、を含む。しかしながら、検索エンジン204は、図示されたパブリッシャ314〜318に追加および/または代替のパブリッシャを含むことができる。いくつかの例において、パブリッシャ314〜318は、検索プロファイルの作成に基づいて作成および/または排除されてもよい。検索結果で返されるデバイスを特定する検索プロファイルが作成される時、検索プロファイル内で選択された検索結果のタイプを発行する、新しいパブリッシャが作成される。いくつかの例において、検索プロファイルが検索中に特定される時、検索プロファイルは、デバイスパブリッシャ314を有効にすることができる。これに応答して、いくつかの他の例において、パブリッシャ314〜318は、任意の検索プロファイルに対して検索エンジン204によってアクセスされる、ユニバーサルパブリッシャに統合されてもよい。
パブリッシャ314〜318は、収集された情報を関連データベース304〜308に発行する。例えば、制御システムパブリッシャ318は、プロセス制御デバイスから収集されたデータを、検索データベース304に発行することができる。同様に、デバイスパブリッシャ314は、製造元が提供した文書およびサービスのリストを、クエリおよびナレッジデータベース306に発行することができる。
例示的なパブリッシャ314〜318各々は、デバイスパブリッシャ314に含まれるデータ変更リスナ320等のデータ変更リスナを含む。データ変更リスナ320は、パブリッシャ314〜318のうちのどれがデータ変更リスナ320を実装しているかに応じて、データ、デバイス情報、制御情報、または他のデータ変更に対する変更をリッスンまたは監視する。例えば、デバイスパブリッシャ314内のデータ変更リスナ320は、新しいデバイスに対して、既存のデバイスに対する更新に対して、および/またはデバイス記述208からの既存デバイスの削除に対して、デバイス記述208(例えば、共通ファイルフォーマット232の記述ファイル、電子デバイス記述言語234の記述ファイル)を監視することができる。他の例において、制御システムパブリッシャ318内のデータ変更リスナ320は、デバイス(例えば、図1のデバイス128〜136)によって、および/またはアプリケーション(例えば、クライアントアプリケーション120)によって送信されるデータおよび/またはコマンドをリッスンまたは監視する。
データおよび/または情報を収集するために、例示的なパブリッシャ314〜318は、デバイス128〜136、クライアントアプリケーション120、および/またはコントローラ102の間で渡されるメッセージに対して、通信バス108〜112をリッスンすることができる。図1の例示的なプロセス制御システム100によって使用されるメッセージバス構造のために、FDIサーバ106(および/または検索サーバ(図示せず))は、FDIサーバ106が接続されるそれぞれの通信バス108〜112に沿って渡される、どのようなメッセージも読み込むことができる。このように、FDIサーバ106は、(例えば、パブリッシャ314〜318を介して)メッセージバス上のデータおよび/またはデバイス情報をスヌープするように構成されてもよい。加えてまたは代替として、デバイス128〜136、クライアントアプリケーション120、制御システム102、および/またはFDIサーバ106は、動作データ、制御データ、警告および/または注意データ、トレンドデータ、デバイス診断、および/または任意のタイプのデバイスおよび/またはアプリケーション情報を定期的および/または非定期的に提供するように構成されてもよい。
クライアント104のユーザによって(例えば、インターフェース122を介して)入力される検索パラメータに基づいて検索を実行するために、サービス指向フレームワーク200は、(例えば、検索インターフェース230を介して)サーチャ310にアクセスする。例示的なサーチャ310は、アプリケーションインターフェース322を介してプロセッサ324から1つ以上の検索パラメータおよび/または検索プロファイルを受信する。アプリケーションインターフェース322は、ここを通じて図1のクライアントアプリケーション120および/または図2のホストアプリケーション202がサービス指向フレームワーク200によって提供される、検索サービスにアクセスすることができる、インターフェースである。検索エンジン302はまた、プロセッサ324から、検索パラメータに関連付けられた表示コンテキスト情報を受信する。
サーチャ310は、検索データベース304にアクセスし、検索パラメータをインデックスされたプロセス制御情報に一致させる。例えば、サーチャ310は、検索パラメータのうちのどれがプロセス制御情報のインデックス内に含まれるかを決定することによって、検索パラメータを一致させる。サーチャ310はまた、追加の検索パラメータとして表示コンテキスト情報を使用して、検索パラメータを一致させることができる。例えば、表示コンテキストが、検索パラメータが概略図内で生成されたことを示す場合、サーチャ310は、検索パラメータに一致するインデックスされたプロセス制御情報を検索することに加えて、概略図に関連付けられたインデックスされたプロセス制御情報を検索する。
例示的サーチャ310は、ユーザによって提供される検索パラメータに基づいて、検索パラメータをインデックスされたプロセス制御情報に一致させることができる。例えば、ユーザは、検索パラメータを語句全体として一致させるように特定することができる。その場合、サーチャ310は、検索データベース304で、語句全体に一致する、インデックスされたプロセス制御情報を検索する。他の例において、検索パラメータは、検索から除外される語句を列挙することができる。例示的なサーチャ310は次いで、除外された語句を含まない、インデックスされたプロセス制御情報を一致させる。例示的なサーチャ310はまた、例えば、数式および/または論理結合子を含む検索を実行するように、他の検索パラメータを使用することができる。
サーチャ310が制御パラメータをインデックスされたプロセス制御情報に一致させる時、サーチャ310は、一致したプロセス制御情報を検索結果として検索結果リストに格納する。一致したプロセス制御情報は、検索データベース304内の対応するソース情報および/または実行時データへのリンクを含む。一致したプロセス制御情報はまた、インデックスされたプロセス制御情報を含むことができる。サーチャ310は、サーチャ310が検索データベース304内のインデックスの検索を完了するまで、検索結果を検索結果リストに追加する。
例示的なサーチャ310は、検索パラメータがインデックスされたプロセス制御情報に一致する程度の計算(例えば、関連性計算)に基づいて、検索結果の各々に対してパーセント一致値を決定する。サーチャ310は、最も関連性の高い検索結果が1番目に表示されるように、検索結果を格付けおよび/または順位付けるためにパーセント一致値を使用する。他の例において、サーチャ310は、最もアクセスの多い検索結果を1番目に表示してもよく、および/または最もアクセスが多い検索結果および最も関連性の高い検索結果の組み合わせを1番目に表示することができる。いくつかの例において、サーチャ310は、これらが一致させられるにつれて、検索結果を格付けおよび/または順位付けする。他の例において、サーチャ310は、検索データベース304の検索完了時に、検索結果を格付けおよび/または順位付けする。
検索結果を格付けおよび/または順位付けると、サーチャ310は、検索結果を検索フィルタ332へ送信する。例示的検索フィルタ332は、プロセッサ324から受信されるフィルタ条件に基づいて、検索結果をフィルタ(および/またはパース)する。例示的フィルタ条件は、ユーザの職務、ユーザに関連付けられた制御の範囲、ユーザのセキュリティアクセス、ユーザに寄与された権限、および/またはユーザに関連付けられた識別子に関連付けられる。フィルタ条件は、ユーザがユーザに関連しない情報および/またはユーザが視認することを承認されていない情報を視認することがないことを確実にするために、検索フィルタ332によって使用される。
インデクサ311は、データベース304〜318内のデータおよび/またはデバイス情報をインデックスする。実行時データのうちのどれがインデックスされるかを決定するために、例示的なインデクサ311は、プロセス制御担当者によって提供されてもよい、ルールセットを使用する。インデクサ311は、受信された実行時データに関連付けられた制御パラメータのうちのどれがインデックスされるかを識別するために、ルールセット内で特定された制御パラメータを使用する。例えば、ルールセットは、PUMP01制御パラメータがインデックスされることを示すことができる。サブスクライバ312は、メッセージ内にPUMP01制御パラメータを含む実行時データを受信するので、インデクサ311は、PUMP01制御パラメータがインデックスされることを決定することが可能である。PUMP01に関連付けられた実行時データをインデックスするために、インデクサ311は、メッセージから実行時データをパースし、PUMP01制御パラメータおよび関連付けられた実行時データを検索データベース304に転送する。
いくつかの例において、プロセス制御担当者は、全てのプロセス制御データをインデックスするように決定する場合がある。これらの例において、サブスクライバ312は、全ての受信した実行時データをインデクサ311へ転送する。他の例において、プロセス制御担当者は、フィールドデバイス出力に関連付けられたプロセス制御データだけをインデックスするように決定することができる。これらの他の例において、プロセス制御担当者は、フィールドデバイス出力に関連付けられた制御パラメータのリストを含むように、ルールセットを定義する場合がある。サブスクライバ312は次いで、受信した実行時データに関連付けられた制御パラメータをルールセット内で特定された制御パラメータに一致させるために、このルールセットにアクセスする。サブスクライバ312は、一致する制御パラメータおよび関連付けられた実行時データをインデクサ311へ転送する。また他の例において、サブスクライバ312は、検索インターフェース230から、どの制御パラメータが検索結果内に含まれていたかを示す更新を受信することができる。サブスクライバ312は次いで、制御パラメータおよび関連付けられた実行時データに対する比較的最近の検索だけがインデックスされるように、ルールセットを更新する。さらに、最近アクセスされた制御パラメータをインデックスするための時間制限は、プロセス制御担当者によって特定されてもよい。
実行時データをインデックスするために、検索フレームワーク302は、インデクサ311を含む。例示的インデクサ311は、サブスクライバ312から、実行時データおよび対応する制御パラメータを受信し、検索データベース304内に格納されたインデックスを介して、検索レコードを更新する。検索データベース304内で、制御パラメータは記述として使用されてもよく、これによって、実行時データをアクセス可能にする。実行時データをインデックスするために、インデクサ311は、実行時データに関連付けられた制御パラメータを識別し、制御パラメータを検索データベース304内に格納された検索可能インデックスに格納する。加えて、インデクサ311は、格納された制御パラメータに関連付けられた実行時データをインデックスに格納する。インデクサ311は、実行時データおよび/または対応する制御パラメータをインデックスするために、語境界明確化、タグ付け、テキスト分割、コンテンツ分析、テキスト分析、テキストマイニング、コンコーダンス生成、会話分割、字句解析、および/または字句分析)と称されることがしばしばある、任意のタイプのデータ圧縮および/または文書パース(例えば、トークン化)を使用してもよい。
実行時データおよび制御パラメータをインデックスに格納することによって、サーチャ310は、検索結果内に制御パラメータを含めることができる。サーチャ310はまた、表示された制御パラメータに対応する、インデックス内に格納された実行時データを表示することができる。この様式において、サーチャ310によって返された検索結果は、インデックスされた実行時データを含む。インデクサ311は、サブスクライバ312が実行時データを受信するにつれて実行時データをインデックスするため、検索結果として表示される実行時データは、実質的に最新の生成された実行時データである。このように、検索結果を視認するユーザは、検索結果および/または最初の検索コンテキストとは別にプロセス制御情報を視認するために、別のアプリケーションを開くことを必要とせず、検索結果内で最新のプロセス制御情報を視認することができる。
例示的なインデクサ311はまた、実行時データがインデックスに格納される例において、インデックス内の比較的より最近の実行時データで実行時データを上書きすることができる。この様式において、インデクサ311は、最新の実行時データでインデックスを更新する。インデクサ311はまた、実行時データが変更および/または更新されたことを示すメッセージをサーチャ310に送信することができる。この結果、インデクサ311が実行時データをインデックスに格納するにつれて、検索結果内に表示されるいずれの実行時データも、最新の実行時データで更新することができる。
実行時データをインデックスすることに加えて、例示的なインデクサ311は、ソース情報をインデックスする。例示的なインデクサ311は、プロセス制御環境100全体に格納される可能性がある、ソース情報をインデックスする。この様式において、インデクサ311は、プロセス制御環境100の異なる場所(例えば、デバイス記述208)に格納されたソース情報に対して、検索データベース304内に格納される検索可能なインデックスを作成する。他の例において、インデクサ311は、プロセス制御担当者の好みに基づいて、デバイス記述208および/またはソース情報のタイプの各々に対してインデックスを作成することができる。これらの例において、インデクサ311は、複数のインデックスを検索データベース304に格納するので、検索インターフェース230は、検索を実行するために検索データベース304にアクセスすることだけが必要である。さらに、インデクサ311は、プロセス制御担当者の要件に基づいて、定期的に(例えば、毎時、毎日、毎週等)ソース情報をインデックスする。
図3のインデクサ311は、加えてまたは代替として、デバイス記述208内のデバイス情報を特定し、デバイス情報の一部および/または全てをインデックスに格納するために、クローラおよび/または検索スパイダを使用して、デバイス情報をインデックスすることができる。インデクサ311は、デバイス情報をインデックスするために任意のタイプのデータ圧縮および/または文書パースを使用することができる。デバイス情報のインデックスされた部分は、検索インターフェース230によって、検索結果アイテムとして表示される。デバイス情報の一部は、例えば、文書および/または情報のタイトル、文書および/または情報に関連付けられたおよび/あるいは埋め込まれたキーワードまたは語句、文書および/または情報によって参照される図1のデバイス128〜136および/または制御パラメータ、文書および/または情報の承認された視聴者、ならびに/あるいは文書および/または情報に関連付けられたプロセス制御システム100の領域を含むことができる。さらに、インデクサ311は、文書および/または情報のタイプを決定し、タイプをインデックスに格納することができる。ソース情報の一部および/または完全なコピーを検索データベース304内のインデックスに格納することによって、サーチャ310は、検索パラメータをソース情報の一部に一致させることができる。さらに、文書および/または情報のタイプをインデックスに格納することによって、サーチャ310は、特定のタイプの文書および/または情報に対するコンテキストベースの検索を実行するために、タイプを使用することができる。
図3はさらに、例示的な検索インターフェース230の詳細ブロック図を示す。例示的な検索インターフェース230は、ユーザから検索パラメータを受信し、検索パラメータに少なくとも部分的に一致する検索結果を提供する。例示的な検索インターフェース230はまた、保存された(例えば、オフラインの)検索結果を管理し、条件に基づいて検索結果をフィルタし、および/または検索のコンテキストに基づいて、検索結果の表示を管理する。
ユーザから検索パラメータを受信するために、例示的検索インターフェース230は、アプリケーションインターフェース322を含む。例示的なアプリケーションインターフェース322は、図1のクライアント104に通信可能に結合および/または図1のクライアント104内(例えば、クライアントアプリケーション120の中)に含まれる。アプリケーションインターフェース322はまた、図1のユーザインターフェース122に通信可能に結合される。いくつかの例において、アプリケーションインターフェース322は、ユーザインターフェース122内に含まれる検索ボックスおよび/または機能に動作可能に結合される。検索パラメータが、ユーザによって、ユーザインターフェース122内の検索機能を介して検索ボックスに入力および/または選択される時、例示的なアプリケーションインターフェース322は、検索パラメータを受信する。いくつかの例において、検索パラメータは、ユーザインターフェース122内で動作しているアプリケーションによって提供されてもよい。
加えて、アプリケーションインターフェース322は、ユーザインターフェース122を介してユーザによって提供されるフィルタ条件を受信する。いくつかの例において、フィルタ条件は、選択された検索プロファイルに含まれる。フィルタ条件は、検索インターフェース230によって、検索結果をフィルタおよびパースするために使用される。いくつかの例において、検索結果は、ユーザにアクセス可能なユーザ情報および/またはプロセス制御システム100の領域に基づいて、フィルタされてもよい。フィルタ条件はまた、ユーザの職務、ユーザに関連付けられた制御の範囲、ユーザのセキュリティアクセス、ユーザに寄与された権限、および/またはユーザに関連付けられた識別子を含むことができる。アプリケーションインターフェース322によって受信されたフィルタ条件は、ユーザがユーザに関連しない情報および/またはユーザが視認することを承認されていない情報を視認しないことを確実にする。ユーザインターフェース122および/またはユーザインターフェース122によって表示されるアプリケーションから、検索パラメータおよび/またはフィルタ条件を受信すると、例示的アプリケーションインターフェース322は、検索パラメータおよび/またはフィルタ条件をプロセッサ324へ転送する。いくつかの例において、アプリケーションインターフェース322は、プロセッサ324が検索パラメータおよび/またはフィルタ条件を受信するために利用可能になるまで、検索パラメータおよび/またはフィルタ条件を待ち行列に入れることができる。
アプリケーションインターフェース322によって受信される検索パラメータは、例えば、テキストおよび/またはコンテキスト情報を含む。テキストは、ユーザによってユーザインターフェース122の検索フィールド(例えば、テキストボックス)内へ入力される単語または語句、図1のフィールドデバイス128〜136の識別子(例えば、タグ)、オペレータおよび/またはユーザ情報、日付範囲、ならびに/あるいはプロセス制御情報を検索するためにユーザが特定することができる、任意の他の情報を含むことができる。コンテキスト情報は、ユーザインターフェース122内に表示されたプロセス制御情報のグラフ表示を選択するユーザによって生成されてもよい。例えば、ユーザは、プロセス制御サブシステム114の図表内に表示されたVALVE01フィールドデバイスの選択されたグラフ表示に関連付けられたプロセス制御情報を検索することができる。この例において、アプリケーションインターフェース322によって受信されたインコンテキスト情報は、VALVE01フィールドデバイスの名前を含む検索パラメータと、VALVE01フィールドデバイスの選択が図表アプリケーション内であったことを示す検索パラメータとを含むことができる。検索パラメータはまた、ユーザがVALVE01フィールドデバイスに関連付けられた文書の検索結果を視認するように選択したことを示すインコンテキスト情報を含むことができる。アプリケーションインターフェース322によって受信されたこれらの検索パラメータに基づいて、サーチャ310は、VALVE01フィールドデバイスに関連付けられた文書および/または図表に関連付けられた文書に対し、検索データベース304の検索を集中する。
別の例において、ユーザは、機能ブロック図内の機能ブロックを選択することができる。例示的なアプリケーションインターフェース322は、ユーザインターフェース122から、機能ブロック図内で発生した選択、機能ブロックの名前、および/または機能ブロックに関連付けられた制御パラメータを示す、検索パラメータを受信する。これらの検索パラメータは、サーチャ310によって、選択された制御パラメータに関連付けられた実行時データおよび/または機能ブロックを記述する文書を検索するために使用されてもよい。他の検索例は、図4〜8を参照して説明する。
加えて、例示的アプリケーションインターフェース322は、サーチャ310をユーザインターフェース122および/またはユーザインターフェース122によって表示されるアプリケーションに通信可能に結合するので、アプリケーションインターフェース322は、ユーザインターフェース122内で表示するための検索結果を送信する。検索結果は、例えば、プロセス制御情報、プロセス制御アイテム、および/あるいは一部のまたはインデックスされたプロセス制御情報のリストを含む。他の例において、検索結果は、プロセス制御情報のグラフ表示および/または対応する実行時データを含む制御パラメータを含む。インデックスされたソース情報および/または実行時データは、ユーザインターフェース122によって、プレビューパネル内および/または検索結果パネル内に検索結果としてグラフに表示されてもよい。
図示された例の例示的プロセッサ324は、受信された検索パラメータから、インコンテキスト情報の表示コンテキストを決定する。プロセッサ324は、検索結果が、ユーザが検索を開始したコンテキストに対応するグラフ表示でユーザに表示され得るように、表示コンテキストを決定する。プロセッサ324は、例えば、検索が開始されたアプリケーションのタイプ、アプリケーション内から検索されるように選択されたデータタイプ、および/または検索されるように選択された制御パラメータのデータタイプに表示コンテキストを一致させることによって、表示コンテキストを決定する。プロセッサ324はまた、検索パラメータおよび/またはフィルタ条件内に含まれたインコンテキスト情報に基づいて、表示コンテキストを決定することができる。
検索結果の表示コンテキストを決定すると、プロセッサ324は、決定された表示コンテキストをレンダラ326へ送信する。例示的なレンダラ326は、ユーザインターフェース122内に表示するための対応する検索結果のグラフ表示を生成するために、表示コンテキストを使用する。プロセッサ324はまた、表示コンテキストをサーチャ310へ送信する。プロセッサ324は、メッセージおよび/または命令の中に表示コンテキストを送信する。加えて、プロセッサ324は、検索パラメータ、フィルタ条件、および/またはインコンテキスト情報をサーチャ310へ送信する。加えて、例示的プロセッサ324は、ユーザインターフェース122の検索フィールド内に表示するために、代替のスペルを送信および/またはアプリケーションインターフェース322に最近入力された検索パラメータを提供することができる。
図3の図示された例において、アプリケーションインターフェース322は、表示された検索結果を格納するように、ユーザインターフェース122から命令を受信する。命令は、検索結果を格納するためにユーザによって割り当てられた識別子(例えば、名前)を含むことができる。検索結果格納命令を受信すると、アプリケーションインターフェース322は、命令をプロセッサ324へ転送し、次いで、プロセッサ324は検索結果に対してサーチャ310にアクセスする。プロセッサ324は、検索結果および/または検索の識別子を検索結果データベース330へ格納する、保存検索マネージャ328へ命令を転送する。例示的な検索結果データベース330は、関連付けられた識別子の下に検索結果を格納する。例示的な検索結果データベース330および検索データベース304、クエリおよびナレッジデータベース306、ならびに/あるいは検索プロファイルデータベース308は、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、および/または任意の他のタイプのメモリによって実装されてもよい。
検索結果を格納することによって、クライアント104および/またはクライアントアプリケーション120のユーザは、格納された検索結果内にリストされるプロセス制御情報にアクセスすることができる。ユーザは、特定のプロセス制御アイテムに関連付けられた一群のリンクを格納するために、検索結果を格納することができる。例えば、ユーザは、PUMP01フィールドデバイスに関連付けられた文書を検索することができる。表示された検索結果は、検索データベース304内のソース情報および実行時データメモリ内の実行時データへのリンクを含む。文書および実行時情報の各々をクライアント104のローカルに格納する代わりに、ユーザは、検索結果を格納することができ、これによって、ソース情報および/実行時データへのリンクを格納する。ユーザは次いで、同じプロセス制御情報の別の検索を実行する代わりに、ローカル(例えば、オフライン)で格納された検索結果にアクセスすることができる。
図3の例示的な保存検索マネージャ328はまた、検索データベース304内のインデックスのコピーを検索結果データベース330へ格納する。検索データベース304からインデックスのコピーを保存するために、プロセッサ324は、ユーザインターフェース122を介して、クライアント120のユーザから命令を受信する。他の例において、プロセッサ324は、定期的に(例えば、毎時、毎日、毎月等)検索データベース304にアクセスすることができる。検索データベース304にアクセスすることによって、プロセッサ324は、インデックスをコピーし、コピーを保存検索マネージャ328へ転送することができる。保存検索マネージャ328は次いで、コピーを検索結果データベース330に格納する。インデックスのコピーを格納することによって、例示的な保存検索マネージャ328は、検索データベース304が利用可能でない場合に、ユーザが検索を実施することを可能にする。検索データベース304が利用可能でない場合、例示的なプロセッサ324は、保存検索マネージャ328を介して、検索結果データベース330内のバックアップインデックスのコピーにアクセスする。
例えば、クライアント104のユーザは、クライアント104にログインするための識別子を提供する。ユーザが検索を実行する時、識別子は、検索パラメータとしてアプリケーションインターフェース322へ送信されてもよく、および/またはメタデータとして検索パラメータおよび/または表示コンテキスト情報内に埋め込まれてもよい。プロセッサ324は、メタデータから識別子を抽出し、識別子を検索フィルタ332へ転送することができる。検索フィルタ332は次いで、例えば、識別子に関連付けられた制御のゾーンおよび/または識別子に関連付けられた職務を決定する。検索フィルタ322は次いで、検索結果から、職務および/または制御のゾーンに関連付けられていない一切の検索結果を削除する。さらに、検索フィルタ322は、識別子がアクセスしてもよい検索結果を決定するために、(例えば、図2のセキュリティレイヤ218を介して)セキュリティ認証情報にアクセスすることができる。検索フィルタ322は次いで、削除されなかった検索結果を表示データマネージャ334へ転送する。
例示的な表示データマネージャ334は、ユーザインターフェース122によって表示されるアプリケーション内に検索結果として表示されるプロセス制御情報を管理する。表示データマネージャ334は、ローカルキャッシュに検索結果内に含まれた実行時データに関連付けられた制御パラメータを格納、および/または検索結果内に含まれたソース情報へのリンクを格納する。表示データマネージャ334は次いで、検索結果をレンダラ326へ転送する。さらに、表示データマネージャ334は、検索結果として表示されたインデックスされた実行時データおよび/またはソース情報のうちのいずれかが、変更しているかどうかを決定するために、定期的に(例えば、毎秒、毎分、5分毎、10分毎等)および/または非定期的に(例えば、オンデマンド)検索データベース304にアクセスする。インデックスされたプロセス制御情報のうちのいずれかが変更している場合、表示データマネージャ334は、変更された情報で検索結果を更新し、変更された情報をレンダラ326へ送信する。他の例において、表示データマネージャ334は、パブリッシャ314〜318から、実行時データが変更していることを示すメッセージを受信する。この様式において、表示データマネージャ334は、プロセス制御情報がプロセス制御システム100内で変更するにつれて、表示された検索結果を更新する。プロセス制御情報を更新する結果として、表示データマネージャ334は、ユーザが検索結果コンテキスト内で最新のプロセス制御情報を視認することを可能にする。
例示的な表示データマネージャ334はまた、検索データベース304にアクセスすることによって、検索結果内に表示された実行時データにアクセスすることができる。表示データマネージャ334は、検索データベース304内で実行時データを発見するために、実行時データに関連付けられた制御パラメータを使用することができる。表示データマネージャ334が、実行時データのうちの少なくともいくつかが変更していると決定する場合、表示データマネージャ334は、対応する検索結果を更新し、更新された検索結果をレンダラ326へ送信する。
さらに、例示的な表示データマネージャ334は、検索結果内にリストされたソース情報の新しいバージョンが格納されているかどうかを決定するために、検索データベース304にアクセスすることができる。表示データマネージャ334が、新しいバージョンが格納された、および/またはそうではなく、ソース情報が変更していると決定する場合、表示データマネージャ334は、検索結果を変更されたソース情報で更新し、変更されたソース情報をレンダラ326へ転送する。レンダラ326は次いで、表示された検索結果を変更されたソース情報で更新することができる。
加えてまたは代替として、図3の例示的な表示データマネージャ334は、検索結果内に表示された実行時データおよび/またはソース情報のうちのいずれかが変更しているかどうかを決定するために、サーチャ310に命令を送信する。命令を受信すると、サーチャ310は、インデックスされたプロセス制御情報のうちのいずれかが変更しているかどうかを決定するために、検索データベース304にアクセスする。インデックスされたプロセス制御情報が変更している場合、検索エンジン204は、変更された情報を表示データマネージャ334へ転送する。
例示的なレンダラ326は、表示データマネージャ334から受信された表示可能なバージョン(例えば、レンダラ)の検索結果を作成する。レンダラ326は、プロセッサ324から受信された表示コンテキスト情報を使用して、および/または検索結果内にリストされたプロセス制御情報のタイプに基づいて、表示可能な検索結果を作成する。レンダラ326は、検索結果のための表示テンプレートを選択するために、表示コンテキスト情報を使用する。例えば、表示コンテキストが機能ブロック図に関連付けられる場合(例えば、検索が、機能ブロック図から開始された場合)、レンダラ326は、検索結果を機能ブロックとして表示することが可能である埋め込み型アプリケーションを含むテンプレートを選択することができる。別の例において、レンダラ326がフィールドデバイスに関連付けられた表示コンテキスト情報を受信する場合(例えば、フィールドデバイスがプロセス制御システム100の図表またはレイアウト内で選択された)、レンダラ326は、実行時データのグラフ表示を表示することが可能なテンプレート(例えば、値、チャート、グラフ等)を選択することができる。
例示的なレンダラ326はまた、検索結果をどのように表示するかを決定するために、検索結果内に含まれたプロセス制御情報のタイプを使用することができる。例えば、レンダラ326は、図表ファイルを表示することができるアプリケーションで検索結果内にリストされた図表ファイルフォーマットに関連付けられたプロセス制御情報を表示することができる。他の例において、レンダラ326は、検索結果をリストとして表示するために、クライアント104のユーザから命令を受信することができる。この様式において、検索結果は、リストされたプロセス制御情報のコンテキスト内に表示される。類似の様式において、文書ファイルフォーマットに関連付けられたプロセス制御情報は、レンダラ326によって、ワード処理アプリケーションに表示されてもよい。
代替として、レンダラ326は、表示コンテキスト情報に基づいて、および/または検索結果のタイプに基づいて、検索結果をリストとして表示することができる。例えば、検索結果がプロセス制御情報の異なるタイプに関連付けられる場合、レンダラ326は、検索結果をリストとして表示することができる。レンダラ326はまた、ファイルタイプのコンテキストに選択された検索結果を示すプレビューパネルを生成することができる。
さらに、例示的なレンダラ326は、関連付けられたアプリケーションの中に選択されたプロセス制御情報を表示する。例えば、ユーザは、検索データベース304に格納されたワード処理文書に対応する、検索結果を選択することができる。この例において、例示的なアプリケーションインターフェース322は、選択をプロセッサ324に転送し、プロセッサ324は、検索結果内のリンクを使用して、選択されたワード処理文書のために検索データベース304にアクセスする。プロセッサ324は次いで、文書をレンダラ326へ送信する。レンダラ326は、文書がワード処理文書であることを決定し、ユーザインターフェース122内にワード処理アプリケーションを開き、ワード処理アプリケーション内に文書を表示する。表示データマネージャ334はまた、開いた文書の変更バージョンが検索データベース304に格納される時、ユーザに指標を提供することができる。
さらに、レンダラ326は、検索結果をどのように表示するかを決定するために、フィルタ条件を使用することができる。例えば、レンダラ326は、クライアント104のユーザの識別子がオペレータとして分類されている場合、オペレータインターフェーステンプレートを選択することができる。類似の様式において、レンダラ326は、識別子がデザイナおよび/またはエンジニアとして分類されている場合、エンタープライズアプリケーションに検索結果を表示することができる。レンダラ326は、プロセッサ324および/または検索フィルタ332からフィルタ条件を受信する。フィルタ条件および/または表示コンテキストに基づいて検索結果を表示する追加の例は、図4〜8を参照して説明する。
図示された例の例示的なレンダラ326は、生成された表示可能な検索結果をユーザインターフェース122へ送信する。ユーザインターフェース122は、ユーザによって視認可能なクライアント104内に検索結果を表示する。いくつかの例において、ユーザは、表示される検索結果をプレビューすることを選択することができる。これらの例において、アプリケーションインターフェース322は、選択された検索結果のユーザインターフェース122から命令を受信し、命令をレンダラ326へ転送する。例示的なレンダラ326は次いで、検索結果に関連付けられたプロセス制御情報のタイプに基づいて、および/または表示される検索結果のコンテキストタイプに基づいて、選択された検索結果のための表示を生成する。いくつかの例において、レンダラ326は、プレビューパネルにプロセス制御情報を表示するために、検索結果内に含まれたインデックスされたプロセス制御情報を使用することができる。他の例において、検索結果内に含まれたインデックスされたプロセス制御情報が表示を生成するために不十分である場合、レンダラ326は、選択された検索結果の対応するプロセス制御情報のために検索データベース304にアクセスすることができる。レンダラ326は次いで、ユーザインターフェース122内で表示するために、選択された検索結果のグラフ表示をアプリケーションインターフェース322へ送信する。
検索データベース304を検索することに加えて、図2の例示的な検索インターフェース230は、図1のプロセス制御環境100内の他のクライアントを検索するためのクライアントインターフェース336を含む。例示的なクライアントインターフェース336は、クライアント内のメモリのファイルおよび/またはフォルダ検索を実施することによって、他のクライアントを検索する。クライアントインターフェース336はまた、検索を開始したユーザインターフェース126を含むクライアント104を検索する。この様式において、ユーザは、ユーザのクライアント104を含む、プロセス制御環境100内の実質的にあらゆる場所にあるプロセス制御情報を検索することができる。
図示した例の例示的なクライアントインターフェース336は、検索エンジン204から検索パラメータを受信し、通信可能に結合されたクライアントで制御パラメータに一致するプロセス制御情報を検索する。クライアントインターフェース336は、検索パラメータに一致する実行時データおよび/またはソース情報に関連付けられた制御パラメータを検索する。クライアントインターフェース336は、ユーザが、クライアントにはローカルに格納されている可能性があるが、検索データベース304にはまだ格納されていない、プロセス制御情報を検索することを可能にする。クライアントインターフェース336はまた、検索エンジン204に、最近アクセスされた検索結果のリストを提供することができる。検索エンジン204は、検索結果のうちのどれが最近アクセスされたかに基づいて、検索結果を格付けるおよび/または順序付けるために、クライアントインターフェース336からのリストを使用する。加えてまたは代替として、クライアントインターフェース336は、他のクライアントを検索するために、検索エンジン204に対してインターフェースとして機能することができる。
他のクライアントを検索すると、図3の例示的なクライアントインターフェース336は、一致する検索結果を検索エンジン204へ送信する。例示的な検索エンジン204は次いで、クライアントインターフェース336からの検索結果を、検索データベース304からの検索結果に組み込む。さらに、検索エンジン204は、他のワークステーション上に格納されている検索結果に隣接して指標を配置することができる。ユーザは、検索結果の指標を視認し、対応する検索結果が別のワークステーション上に格納されていることを知ることができる。
図4は、プロセス制御システム(例えば、図1のプロセス制御システム100)に検索サービスを提供するための検索インターフェース402を含む、例示的なユーザインターフェース400である。例示的なユーザインターフェース400は、ナビゲーションバー404と、検索テキストフィールド406と、検索プロファイル選択バー408とを含むアプリケーション(例えば、クライアントアプリケーション120)を表示する。例示的なユーザインターフェース400はまた、プロセス制御システム100の一部の表示を選択するために使用されてもよい表示選択バー410、および表示選択バー410を使用して選択されたプロセス制御システム100の一部を表示する表示領域412を表示する。例示的なクライアントアプリケーション120は、例えば、ユーザが図1のプロセス制御システム100に関連付けられたプロセス制御情報を視認することを可能にする、エンタープライズアプリケーションであってもよい。ナビゲーションバー404は、ユーザがクライアントアプリケーション120および/またはプロセス制御システム100と異なる方式で相互作用することを選択する場合がある、クライアントアプリケーション120内のいくつかの相互作用ビューを示す。
図示された例において、ナビゲーションバー404の検索タブは、検索インターフェース402を表示するために選択されている。上述のように、例示的な検索インターフェース402は、ユーザが1つ以上の検索パラメータを含む検索クエリを入力することを可能にするための検索テキストフィールド406を含む。
いくつかの例において、ユーザは、検索パラメータの名前を記述するテキストを用いて、検索パラメータのタイプおよび/またはカテゴリを入力することができる。例えば、ユーザは、検索テキストフィールド406に、検索カテゴリ「block_type=PID」およびブロック名「block_name=FIC_101」を入力することができる。これらの検索パラメータの各々は、検索エンジン204によって、検索データベース304でブロックタイプPIDおよびブロック名FIC_101を含むインデックスされたプロセス制御情報を検索するために使用される。検索テキストフィールド406はまた、ユーザがワイルドカード値(例えば、FIC*)を入力することをサポートすることができ、および/またはユーザが入力を開始した内容に基づいて、テキストを自動入力することができる。検索クエリは、ブール結合子を使用して、結合子を使用して、検索フィールドを使用して、および/または検索クエリの任意の他のタイプおよび/または機能を使用して、単純な言語フォーマットで入力されてもよい。さらに、検索テキストフィールド406は、それ以前の検索のために入力された最近のテキストをユーザに表示することができる。
図4の例示的検索インターフェース402はさらに、ユーザが検索プロファイルを選択して検索に関連付けることを可能にするための、検索プロファイル選択バー408を含む。検索プロファイルは、ユーザによって特定および/またはそれ以前の検索クエリおよび/または結果選択から適合されるにつれて、検索クエリを修正および/または検索から表示された結果を修正することができる。ユーザが検索プロファイルを選択しない、いくつかの例において、検索インターフェース402は、デフォルトの検索プロファイルを特定することができる。例示的な検索インターフェース402はさらに、検索プロファイル作成ボタン414と、検索プロファイル修正ボタン416とを含む。検索プロファイル作成ボタン414は、ユーザが今後の検索中に選択するための新しい検索プロファイルを作成することを可能にする。検索プロファイル修正ボタン416は、ユーザが選択した既存の検索プロファイルを修正することを可能にする。検索プロファイルを作成および/または修正するための例示的なユーザインターフェース700は、図7を参照して以下に説明する。
例示的な検索インターフェース402はさらに、検索カテゴリバー418を含む。例示的な検索カテゴリバー418は、検索インターフェース230が、一致するプロセス制御情報を発見するために、特定された検索クエリおよび/または検索プロファイルと共に使用することができる、選択可能な検索パラメータを含む。この例においては、表示検索パラメータ420が選択される。表示検索パラメータ420を選択することによって、図3のサーチャ310は、グラフ表示の表示タイプに関連付けられたプロセス制御情報を検索する。他の例において、トレンド検索パラメータの選択は、サーチャ310に、例えば、実行時データ、グラフ、および/またはチャートを含む、プロセスのトレンドおよび/または履歴に関連付けられたプロセス制御情報を検索することを行わせる。ドキュメント検索パラメータの選択は、サーチャ310に、特定された検索クエリおよび/または検索プロファイルに関連付けられたソース情報文書を検索することを行わせる。
図5は、検索クエリ504、高度検索パネル506、および選択された検索プロファイル508を備える検索インターフェース502を含む、別の例示的なユーザインターフェース500である。加えて、図5は、例示的な検索カテゴリバー418を示し、ここで、ユーザは、図1のクライアントアプリケーション120に、高度検索パネル506を表示させる高度検索ボタン510を選択している。
例示的な高度検索パネル506は、ユーザが、検索パラメータをより正確におよび/またはより具体的に提供することを可能にする。図示された例の高度検索パネル506は、検索を実施するためのプロセス制御システム104内の場所(例えば、PLANT_99)を特定するために使用されてもよい、場所フィールド512を含む。高度検索パネル506は、ユーザが特定された日付範囲内で修正および/または作成されたプロセス制御情報を検索することを可能にする、日付フィールド514を含む。高度検索パネル506はまた、特定されたファイルサイズを下回る、または上回るプロセス制御情報を検索するためのファイルサイズフィールド516を含む。加えて、高度検索パネル506は、他のワークステーションおよび/または他のプロセス制御コンポーネントで、検索データベース304内でインデックスされていないプロセス制御情報を検索するように、検索エンジン302に命令するためにユーザが選択することができる、包含選択機能518を含む。
さらに、高度検索パネル506は、ユーザがインデックスされたプロセス制御情報の名前を検索パラメータとして入力することを可能にする名前フィールド520と、ユーザがインデックスされたプロセス制御情報の識別子を検索パラメータとして入力することを可能にするタグフィールド522と、を含む。高度検索フィールド506はまた、ユーザがソース情報の作成者を検索パラメータとして特定することを可能にする作成者フィールド524を含む。いくつかの例において、ユーザは、高度検索パネル506にフィールドを追加および/または削除することができる。例えば、ユーザがフィールドデバイス名で検索パラメータを特定することが必要な場合、ユーザは、フィールドデバイス名のフィールドを追加することができる。さらに、フィールド512〜516は、選択可能な検索パラメータを包含するドロップダウンボックスを示す矢印を示す。フィールド512〜516は制限された数の可能値を有するので、フィールド512〜516は、ドロップダウンボックスを含む。例えば、日付フィールド514内で選択するために、一定の数の可能な日付だけが存在する。別の例において、コントローラに関連付けられたフィールドは、プロセス制御システム100内に含まれたコントローラ(例えば、図1のコントローラ116)の名前を含むドロップダウンボックスを含むことができる。いくつかの他の例において、ユーザは、検索クエリ504を介して所望のフィールド指定子(例えば、場所)を、続いて、区切り文字(例えば、コロン、セミコロン、ハイフォン、等号)および所望のフィールド値(例えば、Plant_99)を入力することができる。
フィールド504、512〜524内にテキストを入力および/または情報を選択することによって、ユーザは、検索エンジン302が検索データベース304で一致するインデックスされたプロセス制御情報を検索するために使用する検索パラメータを特定する。クライアント104は、検索結果のグラフ表示のためのテンプレートを決定するために、フィールド504、512〜524および/または検索カテゴリバー418内の選択されたカテゴリに関連付けられた表示コンテキスト情報を使用することができる。さらに、検索エンジン302は、フィールド504、512〜524の検索パラメータがクライアントアプリケーション120から送信されたことを決定し、検索結果パネル526内に示された検索結果の対応するグラフ表示を生成することができる。
図5の例はまた、ユーザが、選択インジケータ528によって示されるようにPLANT_99のフィード準備の検索結果を選択したことを示す。クライアントアプリケーション120は、PLANT_99フィード準備の検索結果に関連付けられたプロセス制御情報が図表に対応するデータタイプを有することを決定する。PLANT_99のフィード準備の検索結果を選択することに応答して、クライアントアプリケーション120は、PLANT_99のフィード準備の検索結果に連結されたプロセス制御情報のグラフ表示530を生成する。検索インターフェースは次いで、プレビューパネル526内の図表としてグラフ表示530を表示する。この例において、グラフ表示530は、場所PLANT_99内のデバイスおよび相互接続の図表表示を示す。
図6は、ナビゲーションバー404と、例示的な検索クエリ606に基づいた検索結果604を含む検索インターフェース602と、例示的な検索プロファイル608とを含む、例示的なユーザインターフェース600である。例示的な検索インターフェース602はまた、例示的検索プロファイル作成および検索プロファイル修正ボタン414および416を含む。
例示的な検索インターフェース602はまた、検索ヒントまたは検索明確化610および612を含み、これらは、検索を絞り込むようにシステムのユーザに問い合わせるために、ユーザインターフェース600上に表示されるプロンプトである。例えば、検索クエリ606をパースする一方で、サーチャ310は、検索インターフェース602に、ユーザが「最後の7日間」によって何を意味したかを特定するために、検索明確化610を用いてユーザへの問い合わせを行わせる。例示的クエリが、2010年7月15日の東部夏時間(EDT)午後1:05:00に実行される場合、サーチャ310は、検索用語「最後の7日間」は、2010年7月8日のEDT午後1:05:00から2010年7月15日のEDT午後1:05:00または2010年7月8日のEDT午前12:00:00から2010年7月15日のEDT午前12:00:00までの時間を表す可能性があると決定する。同様に、サーチャ310は、検索用語「貯蔵タンク」が燃料貯蔵タンク1A〜10Cまたは水貯蔵タンク20D〜21Dを表しているかどうかを決定するために、検索インターフェース602に、検索明確化612を用いてユーザへの問い合わせを行わせることができる。加えて、サーチャ310は、選択された検索プロファイル608に基づいて、検索クエリ606に用語「場所:Plant_99」を追加した。
検索明確化610、612の選択の前に、サーチャ310はまた、検索クエリ606および検索プロファイル608に基づいて、仮検索結果614を提供する。仮検索結果614は、例えば、用語「貯蔵タンク」が、例示的検索結果614に示された燃料貯蔵タンクおよび/または特定の貯蔵タンクを表す可能性がより大きいことを反映することができる。仮検索結果614はまた、選択された検索プロファイル608内の検索クエリ用語「場所:Plant_99」の追加に基づいて、Plant_99に位置したタンクに制限される。
図7は、検索プロファイル構成インターフェース702を含む、例示的なユーザインターフェース700である。検索プロファイル構成インターフェース702は、ナビゲーションバー404を介して選択可能であり、後でプロセス制御システム100の検索の際に使用するために、検索プロファイルを作成、修正、または削除するために、図1のプロセス制御システム100のユーザによってアクセスされてもよい。上述のように、検索プロファイルは、ユーザが、好ましい検索結果および/または検索クエリへの修正を特定することを可能にする。検索プロファイルは、加えてまたは代替として、ユーザによって送信された以前のクエリを加重するために、および/または以前のクエリに基づいてユーザによって選択された結果に基づいて結果を加重するために、図3のインデクサ311によって維持されてもよい。以前のクエリを加重することは、例えば、以前のクエリの実行の頻度、以前のクエリで使用された検索用語の頻度、以前のクエリの特殊性および/または普遍性(例えば、以前のクエリで使用された検索用語の狭い/または広い範囲)等に基づくことができる。
例示的な検索プロファイル構成インターフェース702は、検索プロファイル選択バー704と、検索結果選択肢706と、追加の検索用語708と、検索クエリ履歴710とを含む。検索プロファイル選択バー704は、プロファイル削除ボタン712を介して修正または削除するための検索プロファイルを選択するために使用されてもよい。選択された検索プロファイルの修正は、プロファイル名変更ボタン714を介してプロファイル名を変更すること、好ましい検索結果を選択すること、含まれる検索クエリ用語を追加、修正、および/または削除すること、ならびに/あるいは過去の検索クエリを修正することを含むことができる。
ユーザは、表示716、トレンド718、オペレータ注記720、データシート722、警告/注意724、文書726、診断728、ログ730、および/またはカスタム検索結果732を含む可能性がある、検索結果選択肢706を使用して、好ましい検索結果を選択することができる。図7の検索結果選択肢706は、図示された選択肢716〜732を含む一方で、検索結果選択肢706は、加えてまたは代替として、デバイス場所、現在のデータ測定値、特定の時間期間の過去のデータ測定値、製造元特定情報、設置特定情報(例えば、デバイスの測定内容、構成データ等)、および/または検索データベースに格納されてもよい任意の他のタイプのプロセス制御情報等の他の選択肢を含むことができる。
ユーザはまた、検索プロファイルを使用して実施された検索クエリに追加されるための検索用語を特定することによって、選択された検索プロファイルを修正することができる。例示的な追加の検索用語708は、ブール演算子734および736ならびにクエリ用語738および740を使用して特定されてもよい。ブール演算子734および736は、AND、ANDNOT(つまり、NAND、NOT)、OR、NOTOR(つまりNOR)、X−OR(つまりXOR)および/または任意の他のブール演算子等の任意のブール演算子を含むことができる。検索プロファイルがそれぞれのクエリ用語738および740をクエリに付加するために選択される場合、ブール演算子734および736は、検索に関連付けられたクエリを修正する。2つの例示的なクエリ用語738および740が例示的な検索プロファイルに含まれる一方で、追加のクエリ用語は、クエリ用語追加ボタン742を選択することによって、選択された検索プロファイルに追加されてもよく、クエリ用語738および740は、それぞれのクエリ用語削除ボタン744および746を選択することによって、選択された検索プロファイルから削除されてもよい。
ユーザはさらに、検索クエリ履歴710を修正することによって、図7の例示的な検索プロファイルを修正することができる。例示的な検索クエリ履歴710は、ユーザが、選択された検索プロファイルを使用して以前に実行した過去の検索クエリのうちのいずれかを選択することが可能であるように、履歴クエリ選択バー748を含む。例示的な履歴クエリ選択バー748は、最初に入力されたように、および/または実行時に検索クエリによって修正されたようにクエリを表示することができる。上述のように、検索プロファイルは、ユーザがクエリを入力後にクエリ用語および/または検索結果の相対的加重を修正および/または変更することが可能であるので、履歴クエリ選択バー748は、過去の検索結果につながる実際のクエリをユーザに通知するために、過去のクエリを修正されたように有利に表示することができる。過去の検索クエリを選択後、ユーザは、履歴クエリ削除ボタン750を選択することによって、検索クエリ履歴710からクエリを削除する、および/またはお気に入りクエリボタン752を選択することによって、クエリの加重および/またはステータスを上げることができる。
選択された検索プロファイルを修正後、ユーザは、検索プロファイルに任意の変更を保存するために、検索プロファイル保存ボタン754を選択することができる。ユーザが変更を受容する意思がない場合、ユーザは、変更解除ボタン756を選択することによって、検索プロファイルへの変更を解除することができる。検索プロファイル保存ボタン754および/または変更解除ボタン756は、加えて、検索プロファイル構成インターフェース702を閉じ、図4〜6の例示的な検索インターフェース402、502、602等の以前の検索インターフェースにユーザを戻す。
例示的な検索プロファイル構成インターフェース702はさらにプレビュー表示758を含むことができる。プレビュー表示758は、例えば、検索プロファイル構成インターフェース702を開く前にユーザが相互作用していた以前のインターフェース、検索クエリ履歴710で選択された過去のクエリの結果のプレビュー、および/または検索プロファイルを構成中にユーザに表示されてもよい、任意の他の補足および/またはコンテキスト情報を表示することができる。
図8は、統合検索インターフェース802を含む、別の例示的なユーザインターフェース800である。図8の統合検索インターフェース802は、図8に図示されたようなプロセス制御システム図表804の表示、またはナビゲーションバー404を介して使用可能な任意の他のユーザインターフェース表示等、任意の他のユーザインターフェース表示を含むことができる。このように、統合検索インターフェース802は、プロセス制御システム100のユーザが、ナビゲーションバー404を介して検索インターフェースをナビゲートおよび検索クエリを手動で入力する必要なく、コンテキストの関連のプロセス制御情報を迅速に検索することを可能にする。
図8に示されるように、ユーザは、カーソル808を介して、プロセス制御システム図表804のデバイス表示(例えば、デバイス806の図表表示)を選択する。いくつかの例において、ユーザは、コンテキストメニュー810をユーザインターフェース800上に表示させるために、2次マウスクリック(例えば、Windows(登録商標)オペレーティングシステム環境の右利きユーザの右クリック)を使用して、デバイス表示を選択する。例示的なコンテキストメニュー810は、コンテキスト(例えば、プロセス制御システム図表804)内の選択されたデバイス806に関連する、ユーザによって選択されるためのオプションを含む。例えば、選択されたデバイス806のコンテキストメニュー810は、選択されたデバイス806からの測定値のトレンドを開くため、選択されたデバイス806に関連付けられた警告および/またはイベントを視認するため、デバイスの健全度情報にアクセスするため、オペレータ注記を追加するため、ユーザインターフェース800から他のインターフェース(例えば、お気に入り)に迅速にアクセスするため、および/またはクイック検索812を実施するためのオプションを含むことができる。
例示的なクイック検索812のコンテキストオプションは、クイック検索816、818、820、822の追加メニュー814およびカスタム検索824を開く。例示的なクイック検索816〜822は、ユーザが、選択されたデバイス806(816)に接続されたデバイスの場所、選択されたデバイス806(818)に類似のデバイス、選択されたデバイス806(820)に関する履歴情報、および/または選択されたデバイス806(822)のデータシート等、選択されたデバイス806に関する関連情報に迅速にアクセスすることを可能にする。カスタム検索824は、例えば、ユーザインターフェース800に、図4〜6の例示的な検索インターフェース402、502、602等の検索インターフェースを表示することを行わせることができる。他のクイック検索816〜822は、加えてまたは代替として、ユーザがクイック検索812のコンテキストオプションを選択する時、オプションとして例示的なメニュー814に含まれていてもよい。
図2の検索エンジン204および検索インターフェース230を実装する例示的な様式は図3に示されているが、図3に示された要素、プロセスおよび/またはデバイスのうちの1つ以上は、任意の他の方式において、組み合わせ、分割、再配列、省略、排除および/または実装されてもよい。さらに、図3の例示的な検索フレームワーク302、例示的な検索データベース304、例示的なクエリおよびナレッジデータベース306、例示的な検索プロファイルデータベース308、例示的なサーチャ310、例示的なインデクサ311、例示的なサブスクライバ312、例示的なパブリッシャ314〜318、例示的なデータ変更リスナ320、例示的なアプリケーションインターフェース322、例示的なプロセッサ324、例示的なレンダラ326、例示的な保存検索マネージャ328、例示的な検索結果データベース330、例示的な検索フィルタ332、例示的な表示データマネージャ334、例示的なクライアントインターフェース336、および/またはより一般的に、例示的な検索エンジン204および/または例示的な検索インターフェース230は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせを使用して実装されてもよい。したがって、例えば、例示的な検索フレームワーク302、例示的な検索データベース304、例示的なクエリおよびナレッジデータベース306、例示的な検索プロファイルデータベース308、例示的なサーチャ310、例示的なインデクサ311、例示的なサブスクライバ312、例示的なパブリッシャ314〜318、例示的なデータ変更リスナ320、例示的なアプリケーションインターフェース322、例示的なプロセッサ324、例示的なレンダラ326、例示的な保存検索マネージャ328、例示的な検索結果データベース330、例示的な検索フィルタ332、例示的な表示データマネージャ334、例示的なクライアントインターフェース336、および/またはより一般的に、例示的な検索エンジン204および/または例示的な検索インターフェース230は、1つ以上の回路、プログラム可能プロセッサ、用途特定集積回路(ASIC)、プログラム可能ロジックデバイス(PLD)および/またはフィールドプログラム可能ロジックデバイス(FPLD)等によって実装されてもよい。任意の添付の装置の請求項が、純粋にソフトウェアおよび/またはファームウェアの実装に及ぶように読解される時、例示的な検索フレームワーク302、例示的な検索データベース304、例示的なクエリおよびナレッジデータベース306、例示的な検索プロファイルデータベース308、例示的なサーチャ310、例示的なインデクサ311、例示的なサブスクライバ312、例示的なパブリッシャ314〜318、例示的なデータ変更リスナ320、例示的なアプリケーションインターフェース322、例示的なプロセッサ324、例示的なレンダラ326、例示的な保存検索マネージャ328、例示的な検索結果データベース330、例示的な検索フィルタ332、例示的な表示データマネージャ334、および/または例示的なクライアントインターフェース336のうちの少なくとも一つは、ここに明示的に、ソフトウェアおよび/またはファームウェアを格納する、メモリ、DVD、CD等のコンピュータ可読媒体を含むように定義される。またさらに、図3の例示的な検索エンジン204および/または例示的な検索インターフェース230は、図3に示されたもの加えて、または代わりに1つ以上の要素、プロセス、および/またはデバイスを含むことができ、および/または図示された要素、プロセス、およびデバイスのうちの任意の2つ以上または全てを含むことができる。
図3の検索エンジンを実装するための例示的なプロセス900のフローチャート表現は、図9に示される。例示的なプロセス900は、図10を参照して以下に説明される例示的なコンピュータ1000の中に示されるプロセッサ1002等のプロセッサによって実行するためのプログラムの形の機械可読命令を備えることができる。プログラムは、プロセッサ1002に関連付けられたCD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)またはメモリ等のコンピュータ可読媒体上に格納されるソフトウェアに実現されてもよいが、プログラム全体および/またはその部分は、代替として、プロセッサ1002以外のデバイスによって実行され得て、および/またはファームウェアまたは専用ハードウェアに実現され得る。さらに、例示的なプログラムは、図9に図示されたフローチャートを参照して説明されるが、例示的な検索エンジン204を実装する多数の他の方法が代替として使用されてもよい。例えば、ブロックの実行の順序は変更されてもよく、および/または説明されるブロックのうちのいくつかは、変更、排除、または組み合わされてもよい。
上述のように、図9の例示的な動作は、ハードディスクドライブ、フラッシュメモリ、読み込み専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)、および/または任意の持続時間(例えばより長い期間、永久に、短いインスタンス、一時的なバッファリングのため、および/または情報のキャッシュのため)情報を格納する、任意の他のストレージメディア等の有形のコンピュータ可読媒体に格納される符号化命令(例えばコンピュータ可読命令)を使用して実装してもよい。本明細書に使用されているように、有形のコンピュータ可読媒体という用語は、コンピュータ可読ストレージのいかなる種類も含み、伝播する信号を除外するように、明示的に定義されている。さらに、またはあるいは、図9の例示的な動作は、ハードディスクドライブ、フラッシュメモリ、読み込み専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、および/または任意の持続時間(例えばより長い期間、永久に、短いインスタンス、一時的なバッファリングのため、および/または情報のキャッシュのため)情報を格納する、任意の他のストレージメディア等の持続的なコンピュータ可読媒体に格納される符号化命令(例えばコンピュータ可読命令)を使用して実装してもよい。本明細書に使用されているように、持続的なコンピュータ可読媒体という用語は、いかなる種類のコンピュータ可読媒体も含み、伝播する信号を除外するように、明示的に定義されている。
図9の例示的なプロセス900は、図3の例示的な検索エンジン204を実装するために実施されてもよい。例示的なプロセス900は、図1の例示的なFDIサーバ106、例示的なクライアント104、および/または図10の例示的なコンピュータ1000上で実行される機械可読命令を使用して実装されてもよい。
例示的なプロセス900は、新しいプロセス制御デバイス(例えば、図1のデバイス128〜136)がプロセス制御システム(例えば、プロセス制御システム100)に存在しているかどうかを(例えば、図3のサブスクライバ312を介して)決定することによって開始する(ブロック902)。本明細書に使用される「新しい」プロセス制御デバイスとは、以前の時点に比較すると、プロセス制御システム100に新しく存在するプロセス制御デバイス(例えば、システムに接続されたデバイス、オフライン状態からシステムに再接続されたデバイス、初めてシステムに接続されたデバイス等)を言う。新しいプロセス制御デバイスが存在する場合(ブロック902)、パブリッシャ(例えば、図3のデバイスパブリッシャ314)は、新しいデバイスの製造元によって提供されたデータを図3の検索データベース304へ発行する(ブロック904)。
新しいデバイスが存在しない場合(ブロック902)、またはデバイスパブリッシャ314が新しいデバイスのためのデータを検索データベース314に発行した場合(ブロック904)、例示的なサブスクライバ312は、新しいデータに対してプロセス制御システム100を監視する(ブロック906)。データを監視することは、例えば、図2のデバイスネットワーク210上でメッセージをリッスンすること、図3のパブリッシャ314〜318でデータをリッスンすること等を含むことができる。インデクサ311は次いで、新しいデータが使用可能であるかどうかを決定することができる(ブロック908)。本明細書に使用されている「新しい」データとは、プロセス制御デバイス、アプリケーション、コントローラ、および/またはサブスクライバ312によって以前に認識されたことがない任意の他のプロセス制御データに対応する、サブスクライバ312によって受信されたプロセス制御データを言う。サブスクライバ312によって受信されたデータは、インデックスするためにインデクサ311へ提供される。新しいデータが使用可能である場合(ブロック908)、例示的なインデクサ311は、データを検索データベース314へ、および/または任意の他の適切なデータベースへ発行する(ブロック910)。
新しいプロセス制御データが存在しない場合(ブロック908)、またはインデクサ311が新しいプロセス制御データを検索データベース314へ発行する時(ブロック910)、例示的なインデクサ311は、検索データベース314のインデックスデータを更新する(ブロック912)。例えば、インデクサ311は、新しいプロセス制御デバイスに対して発行されたデータに基づいて、および/または新しく発行されたプロセス制御データに基づいて、インデックスデータを更新することができる。
ブロック914で、例示的なサーチャ310は、検索リクエストが(例えば、図3の検索インターフェース230から、プロセッサ324から、図1のクライアントアプリケーション120から)受信されたかどうかを決定する。検索リクエストは、検索クエリ、キーワード、特定された検索プロファイル、アプリケーションコンテキスト、および/またはプロセス制御システム100の検索に関する任意の他の情報を含むことができる。検索リクエストが受信された場合(ブロック914)、サーチャ310は、検索プロファイルデータベース318から検索リクエストに関連付けられた検索プロファイルを呼び出す(ブロック916)。特定された検索プロファイルに基づいて、サーチャ310は、検索クエリを更新する(ブロック918)。例えば、サーチャ310は、特定のタイプの検索結果を特定するため、および/または用語を検索クエリに追加するために、受信された検索クエリを変更することができる。
サーチャ310は次いで、更新された検索クエリに基づいて、検索データベース314からデータを呼び出す(ブロック920)。例えば、サーチャ310は、検索プロファイルによって修正されたような検索クエリに対応する、検索データベース314からの検索結果を取得するために、Wolfram Alpha検索エンジンを使用して検索を実行することができる。サーチャ310は、プロセス制御システム100のユーザへの表示のための検索プロファイルに応じて、呼び出された検索データをリクエスト者(例えば、図3の検索インターフェース230、プロセッサ324、図1のクライアントアプリケーション120)に返す(ブロック922)。例えば、サーチャ310は、検索クエリに基づいて検索結果を呼び出し、検索プロファイルに選択されている検索結果のタイプだけを返すことができる。サーチャ310が結果を返した後(ブロック922)またはサーチャ310が検索リクエストを受信しない場合(ブロック914)、例示的プロセス900は終了する。代替として、例示的プロセス900は、新しいデバイスの監視、プロセス制御データの監視、および/または検索リクエストをサービスすることを継続するために、ブロック902を反復することができる。
図10は、図9のプロセス900に図3の検索エンジン204、検索インターフェース230を実装するように実行することができる、例示的なコンピュータ1000のブロック図である。例示的なコンピュータ1000は、さらに、またはあるいは、クライアントアプリケーション120を実行するために、図1のクライアント104を実装するために使用されてもよい。コンピュータ1000は、例えば、サーバ、パーソナルコンピュータ、携帯電話(セルフォン)、携帯情報端末(PDA)、インターネット機器、または任意の他の種類のコンピューティングデバイスにすることができる。
例示的なプロセッサシステム1100は、ランダムアクセスメモリ(RAM)1004、読み込み専用メモリ(ROM)1006、およびフラッシュメモリ1008等の関連付けられたメモリを有するプロセッサ1002を含む。例えば、プロセッサ1002は、Pentium(登録商標)ファミリー、Itanium(登録商標)ファミリー、またはXScale(登録商標)ファミリーからの1つ以上のIntel(登録商標)マイクロプロセッサによって実装されてもよい。当然ながら、他のファミリーからの他のプロセッサも適している。
RAM1004、ROM1006、および/またはフラッシュメモリ1008は、図9のプロセス900を実装する機械可読命令を格納してもよい。RAM1004は、同期ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)、および/または任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。図示された例のフラッシュメモリ1008は、ブートブロック1010を含む。RAM1004、ROM1006、およびフラッシュメモリ1008へのアクセスは、典型的には、メモリコントローラ(図示せず)によって制御される。
プロセッサ1002は、他のコンポーネントがインターフェースを取ってもよいバス1012等のインターフェースに結合される。図示された例において、バス1012へのインターフェースを取るコンポーネントは、入力デバイス1014、ディスプレイデバイス1016、大容量ストレージデバイス1018、およびリムーバブルストレージデバイスドライブ1020を含む。リムーバブルストレージデバイスドライブ1020は、磁気または光学メディア等の関連付けられたリムーバブルストレージメディア1022を含んでもよい。
入力デバイス1014は、ユーザがデータおよびコマンドをプロセッサ1002へ入力することを可能にする。入力デバイス1014は、キーボード、マウス、タッチスクリーン、トラックパッド、バーコードスキャナ、またはユーザがプロセッサ1002へ情報を提供することを可能にする任意の他のデバイスのうちの任意の1つ以上を使用して実装してもよい。
ディスプレイデバイス1016は、例えば、液晶ディスプレイ(LCD)モニタ、ブラウン管(CRT)モニタ、またはプロセッサ1002とユーザとの間のインターフェースとして作用する任意の他の適切なデバイスであってもよい。図10に示されるようなディスプレイデバイス1016は、プロセッサ1002へディスプレイ画面がインターフェースを取ることが必要な任意のさらなるハードウェアを含む。
大容量ストレージデバイス1018は、例えば、従来のハードドライブ、またはプロセッサ1002によって読み込み可能な任意の他の磁気または光学メディアにしてもよい。
リムーバブルストレージデバイスドライブ1020は、例えば、コンパクトディスク記録可能(CD−R)ドライブ、コンパクトディスク再書き込み可能(CD−RW)ドライブ、デジタル多用途ディスク(DVD)ドライブ等の光学ドライブまたは任意の他の光学ドライブにしてもよい。あるいは、例えば、磁気メディアドライブにしてもよい。リムーバブルストレージメディア1022は、ドライブ1020と共に動作するためにメディア1022が選択されるため、リムーバブルストレージデバイスドライブ1020に対して補完的である。例えば、リムーバブルストレージデバイスドライブ1020が光学ドライブである場合、リムーバブルストレージメディア1022は、CD−Rディスク、CD−RWディスク、DVDディスクまたは任意の他の適した光学ディスクにしてもよい。一方で、リムーバブルストレージデバイスドライブ1020が磁気メディアデバイスである場合、リムーバブルストレージメディア1022は、例えば、ディスケットまたは任意の他の適した磁気ストレージメディアにしてもよい。
図9のプロセス900を実装するための符号化命令は、RAM1004、ROM1006、フラッシュメモリ1008、大容量ストレージデバイス1018、および/またはCDまたはDVD等のリムーバブルストレージメディア1022に格納してもよい。
前述から、上述の開示されたシステム、方法、および製品は、プロセス制御システムに検索サービスを提供するために使用されてもよいことが理解されるであろう。上述の例示的なシステム、方法、および製品は、プロセス制御システムのユーザに、異なるコンテキストからプロセス制御システムに関連付けられた所望のデバイス、アプリケーション、および/または情報を迅速に検索かつ発見することを提供する。加えて、例示的なシステム、方法、および製品は、プロセス制御システムのユーザに、検索プロファイルを使用しないものよりも高速な結果の検索および呼び出しのために所望のタイプの検索結果を指定するための構成可能な検索プロファイルを提供する。
特定の例示的な方法、装置、および製品を本明細書に記載しているが、本特許の網羅する範囲はこれに制限されない。逆に、本特許は、本特許の特許請求の範囲内に十分相当する全ての方法、装置、および製品を網羅する。