以下は、他のコンポーネントの中でも特に、ハードウェア上に実装されるソフトウェアおよび/またはファームウェアを含む、例示的方法ならびに装置を記述するが、これらの例は、解説にすぎず、制限として見なされるべきではないことに留意されたい。例えば、ハードウェア、ソフトウェア、およびファームウェアコンポーネントのうちのいずれかまたはすべては、ハードウェアのみで、ソフトウェアのみで、またはハードウェアおよびソフトウェアの任意の組み合わせによって具現化することができることが意図される。したがって、以下が例示的方法および装置を記述する一方で、当業者は、提供される例が、そのような方法および装置を実装する唯一の方法ではないことを容易に理解するであろう。例えば、例示的方法および装置は、プロセスデータを管理することに関連して記述される一方、例示的方法および装置は、より一般的に適用可能であり、任意の自動化システム、バッチ処理システム、製造システム、産業用制御システム、安全計装システム等に関連付けられるデータを管理するために実装することができる。
プロセス制御システムは、一般的に、制御システム内に位置するフィールド機器を管理する、ルーチン、制御戦略、および/またはアルゴリズムを実施する、コントローラを含む。フィールド機器は、例えば、弁、弁ポジショナ、スイッチ、および送信部であってもよく、弁の開閉、およびプロセス制御パラメータの測定等のプロセス制御機能を実施する場合がある。フィールド機器を管理することに加えて、コントローラは、フィールド機器から受信される情報に基づき、プロセスデータを生成する場合がある。プロセスデータは、プロセス統計、警報、監視情報、プロセストレンド情報、診断情報、フィールド機器状態情報、および/またはフィールド機器からのメッセージを含むことができる。
コントローラは、オペレータがプロセス制御システムを管理できるように、ワークステーション上で動作するアプリケーションにプロセスデータを送信する。典型的に、アプリケーションは、少なくとも1つのグラフィックデータ表現として、プロセスデータをユーザインターフェース内に表示する。これらのデータ表現は、典型的に、チャート、グラフ、データ表、リストボックス、グラフィック記号、テキスト等の形態で、プロセスデータをグラフで表示するため、データ表現は、オペレータにとって有用である。ユーザインターフェース内のデータ表現および対応するテキストは、一般的に、情報を閲覧するオペレータのロケールに関連付けられるフォーマットおよび/または言語で表示される。
多くの既知のシステムでは、ワークステーションは、対応する電子デバイス記述言語(EDDL)ファイルを使用して、フィールド機器からのプロセスデータを表示する。多くの場合、EDDLファイルは、対応するフィールド機器と共に、プロセス制御環境に輸送される。いくつかの例では、EDDLファイルは、フィールド機器内に含まれ、フィールド機器をプロセス制御システムにインストールすると、プロセス制御システムにアップロードされてもよい。これらの場合では、コントローラが、EDDLファイルを記憶してもよい。代替として、プロセス制御システムに接続される各ワークステーションが、EDDLファイルのローカルコピーを記憶してもよい。他の例では、プロセス制御人員は、EDDLファイルを中央データベースに記憶し、対応するフィールド機器からのプロセスデータを表示するために、EDDLファイルにアクセスする場合がある。
現在、多くの周知のプロセス制御通信プロトコルは、EDDLファイルの使用をサポートする。これらのプロセス制御プロトコルには、例えば、Foundation Fieldbus(登録商標)、Hart(登録商標) Communication Foundation、およびProfibus(登録商標)が挙げられる。さらに、フィールド機器統合(FDI)標準は、プロセス制御人員によって使用される普遍的ツールセットを作成して、制御システム内の共に通信可能に接続されるフィールド機器を管理するために、EDDLファイルの使用をサポートする場合がある。
EDDLは、フィールド機器の特性、パラメータ、および/または機能を記述するために使用されてもよい、テキストに基づく言語である。この機能性としては、例えば、メニューシステム記述、一般的なデバイス情報、診断、性能解析情報、動作統計、パラメータ化情報、範囲設定情報、シミュレーションパラメータ、オーバーライド情報、較正トリム情報、監視情報、デバイスセキュリティプロトコル、および/またはリセット情報が挙げられる。フィールド機器の製造業者は、通信プロトコルおよび/またはデバイスオペレーティングシステム(例えば、Windows(登録商標)、Android、Blackberry OS、iOS等)とは関係なく、プロセスデータにアクセスし、プロセスデータを表示する、ホストワークステーションおよび/もしくは手持ち式デバイスの標準化形態ならびに/または構造を提供するために、EDDLを使用する。
EDDLファイルは、プロセスデータがどのように表示されるかを特定するが、EDDLファイルは、プロセスデータを記憶しない。現在、プロセスデータは、コントローラによって、固定記憶システム(例えば、データベース)に記憶される場合がある。多くの場合、記憶されるプロセスデータは、プロセスデータを生成したフィールド機器、プロセス制御システムの領域、プロセスデータに関連付けられる識別子、プロセスデータが生成された時刻、および/またはプロセス制御人員によって特定される任意の他の配列で整理することができる。加えて、プロセスデータは、プロセスデータを生成したフィールド機器の種類、プロセスデータを輸送するために使用される通信プロトコル、および/またはプロセスデータ型に関連付けられるフォーマットで記憶されてもよい。
EDDLファイルは、プロセスデータをグラフィック表現で表示するために、記憶されたプロセスデータのデータベース位置を参照する場合がある。プロセスデータを参照するために、いくつかのEDDLファイルは、データベース内のプロセスデータのディレクトリ位置を特定しなければならない場合がある。さらに、EDDLファイルは、プロセスデータのフォーマットと合致するパラメータおよび/または変数を特定しなければならない場合がある。このようにして、EDDLファイルは、所望のプロセスデータの適切な位置(単数または複数)を参照するように、手動で構成されなければならない場合がある。プロセスデータが異なる位置に移動される場合、EDDLファイルは、新しい位置に更新されなければならない場合がある。加えて、プロセスデータを取り出すアプリケーションは、データベース全体を検索しなければならない場合がある。データベース全体を検索することは、非効率的であり、かつ時間がかかる場合がある。さらに、いくつかのアプリケーションは、ユーザがプロセスデータを検索することを可能にするように、データベースに通信可能に接続されていない場合がある。
現在、プロセス制御システム内の多くのワークステーション、サーバ、プロセッサ等は、アプリケーションがプロセスデータを標準化(例えば、共通)フォーマットに換えることができるように、プロセスデータを普遍的フォーマットに変換するインターフェースを利用する場合がある。例えば、いくつかのアプリケーションは、Hart(登録商標)通信プロトコルに準拠する、フィールド機器によって生成されたプロセスデータを閲覧するために構成されてもよい。このプロセスデータを、Foundation Fieldbus(登録商標)通信プロトコルに関連付けられるプロセスデータを閲覧するために構成されたアプリケーションに送信するために、アプリケーション間のインターフェースは、プロセスデータを、両方の通信プロトコルに準拠するフォーマットに変換する。これらのインターフェースは、プロセスデータの交換を可能にすることができるが、比較的複雑であり、また、いずれかの準拠する通信プロトコルへの変更に対して更新される必要がある。加えて、いくつかのインターフェースは、すべてのプロセスデータを普遍的フォーマットに適切に変換しない場合がある。
本明細書に記述される例示的方法および装置は、プロセス制御データを記憶するために、共通(例えば、普遍的および/または標準化)ファイルフォーマットを利用する。共通ファイルフォーマットは、プロセス制御システム内の1つ以上のフィールド機器をパラメータ化する、プロセスデータ群を含む。例示的共通ファイルフォーマットは、プロセスデータを記憶するための配列(例えば、編成、アーキテクチャ、および/またはファイル構造)に準拠する記述子ファイルを作成するために、例示的方法および装置によって利用される。プロセス制御システム内の各フィールド機器の記述子ファイルが作成されてもよい。代替として、プロセス制御領域内のフィールド機器のグループの記述子ファイルが作成されてもよい。記述子ファイルは、プロセスデータを記憶するメモリの比較的小さな容量を必要とする場合があり、それによって、記述子ファイルが、移植可能であり、かつデバイスにローカルに記憶されるようにすることができる。
本明細書に記述される例示的方法および装置によって利用される例示的共通ファイルフォーマットは、ヘッダ部分と、データ部分とを含む。他の例では、共通ファイルフォーマットは、追加部分を含んでもよい。例示的ヘッダは、記述子ファイルを記述する情報を含む。この情報には、例えば、共通ファイルフォーマットのスキーマレベル、バージョン情報、および/または記述子ファイルの機能が挙げられる。ヘッダ内の識別情報は、アプリケーションが記述子ファイルの適切なバージョンを読み込んでいることの検証を提供する。換言すれば、バージョン情報は、アプリケーションが、記述子ファイルのコンテンツ(例えば、プロセスデータ)がアプリケーションと互換性があるか否かを判定することを可能にする。いくつかの例では、本明細書に記述される方法および装置は、記述子ファイルをクライアント(例えば、プロセス制御システムに関連付けられるワークステーションのユーザ)によって要求されるバージョンに変換するために、バージョン情報を使用してもよい。
また、アプリケーションは、クライアントからのプロセスデータの要求と合致する記述子ファイルを検索するために、ヘッダ内の識別情報を使用してもよい。例えば、ユーザは、アプリケーション内で、ポンプフィールド機器に関連付けられるプロセスデータを閲覧することを要求してもよい。アプリケーションは、記述子ファイルのヘッダ内の対応する識別情報と合致させるために、要求内に含まれるフィールド機器の識別子を使用する。加えて、EDDLファイルは、ヘッダ内に含まれる識別情報によって、記述子ファイルを参照してもよい。
ヘッダに加えて、共通ファイルフォーマットは、データ部分を特定する。例示的データ部分は、フィールド機器の特性を記述する、プロセスデータのエントリ(例えば、ブロック)を含む。また、プロセスデータは、フィールド機器からの出力を含んでもよい。本明細書に記述される例示的方法および装置は、グローバルオブジェクトが最初に定義されるように、記述子ファイル内のプロセスデータを配列する。例えば、共通ファイルフォーマットは、プロセスデータを階層に構造化し、グローバルオブジェクトは、階層内で比較的高く定義され、一方、個々の変数は、階層内で比較的低く定義される。このようにして、記述子ファイル内の比較的低いオブジェクトは、より低いオブジェクトのグローバル定義を提供する、比較的高いオブジェクトを参照してもよい。
いくつかの例では、記述子ファイル内のエントリは、例えば、ビットマップおよび/または他のオブジェクトへのリンクを有する、複数のデータフィールドを含むことによって、比較的複雑である場合がある。一例では、記述子ファイルは、少なくとも1つの物理ファイルを含む、ファイル本体を含む。ファイル本体は、それぞれの物理ファイルを記述する、1つ以上のオープンファイル記述を含む。オープンファイル記述は、1つ以上のファイルエントリを含む、1つ以上のセクションによって参照される。このようにして、セクションは、ファイルエントリのリストを含んでもよい。
加えて、各ファイルエントリは、フィールド機器の特長、機能、パラメータ、および/またはコンポーネントに関連付けられる変数を含んでもよい。変数は、例えば、変数型フィールド、値フィールド、および/または品質フィールドによって定義されてもよい。変数型フィールドは、変数の型(例えば、ブール型、整数型、符号なし型、浮動小数点型、倍精度浮動小数点型、列挙型、ASCII型、ビット列型、時刻型、日付時刻型等)を特定する。値フィールドは、変数によって記述されるプロセスデータを記憶する。値フィールドは、フィールド機器によって生成されるプロセスデータ、または代替として、フィールド機器の特長、機能、および/またはパラメータを記述するプロセスデータを含んでもよい。変数品質フィールドは、対応する値フィールドに記憶されるプロセスデータが特定される閾値内にある可能性を特定してもよい。
さらに、ファイルエントリは、1つ以上の変数内に位置するプロセスデータに対してアクションを実施する式および/または表示変換を含んでもよい。このようにして、プロセスデータは、比較的複雑な式および/または方法として記述子ファイルに記憶されてもよく、それによって、記述子ファイル内に記憶されるプロセスデータを表示する、アプリケーションの柔軟性を提供する。式は、例えば、変数内に記憶されるプロセスデータを使用する、数学的演算を含んでもよい。いくつかの例では、式は、例えば、Jscriptによって実装されてもよい。表示変換は、例えば、変数に関連付けられるプロセスデータがどのように表示されるかを特定する命令を含んでもよい。いくつかの例では、表示変換は、拡張スタイルシート言語変換(XSLT)を使用して実装されてもよい。
また、ファイルエントリは、別のセクションへの参照を含んでもよい。このようにして、記述子ファイルは、ファイルエントリのネスト化階層を含んでもよい。例えば、ファイルエントリは、例えば、ネスト化プロセスデータの群および/またはリストを含むオブジェクトとして実装されてもよい。別の例では、ファイルエントリは、例えば、値アレイ、参照アレイ、および/またはエントリアレイを含むオブジェクトとして実装されてもよい。これらの他の例では、ファイルエントリは、各ネスト化ファイルエントリが変数への参照を含む、いくつかのネスト化ファイルエントリを特定する、カウントフィールドを含んでもよい。換言すれば、値アレイ、参照アレイ、および/またはエントリアレイは、変数のグループにインデックスを付けるために使用されてもよい。
本明細書に記述される例示的方法および装置によって実装される例示的記述子ファイルは、プロセスデータがどのように記憶され、取り出されるかについてのブループリントを提供するスキーマによって検証される。スキーマは、記述子ファイルの構造およびコンテンツに対する制約に関する共通ファイルフォーマット要件を表現する、文書型である。例えば、スキーマは、上述されるヘッダ、データ部分、オープンファイル記述、セクション、ファイルエントリ、および/または変数間の関係を特定してもよい。いくつかの例では、共通ファイルフォーマットは、拡張マークアップ言語(XML)および/またはXSLTフォーマットに関連付けられてもよい。これらの例では、XMLスキーマは、例えば、文書定義マークアップ言語(DDML)、文書スキーマ定義言語(DSDL)、文書構造記述(DSD)等を含む、任意の種類のXMLスキーマ言語を使用して実装されてもよい。
例示的スキーマは、対応するフィールド機器の編成に基づき、記述子ファイル内のオブジェクトおよび/または変数を配列する場合がある。例えば、フィールド機器は、温度センサと、圧力センサと、アクチュエータとを含む場合がある。対応する記述子ファイルは、2つのセンサのセクションと、アクチュエータの別個のセクションとを有する、フィールド機器の単一のオープンファイル記述を含んでもよい。センサセクションのファイルエントリは、温度センサのネスト化セクションと、圧力センサの別個のネスト化セクションとを含む、エントリアレイオブジェクトを含む。これらのネスト化セクションのそれぞれは、それぞれのセンサから生成されたプロセスデータ、および/またはそれぞれのセンサのパラメータ化されたプロセスデータを記憶する、変数によって参照される、ネスト化ファイルエントリを含んでもよい。アクチュエータセクションは、アクチュエータに関連付けられる変数を参照する、1つ以上のファイルエントリを含んでもよい。このようにして、記述子ファイルの配列は、フィールド機器のハードウェハ配列をミラーリングし、同時に、例示的スキーマによって特定される例示的共通ファイルフォーマットに準拠する。
本明細書に記述される例示的方法および装置は、記述子ファイルからプロセスデータを生成する、および/また取り出すためのガイドラインとして、スキーマを使用する。スキーマに従うことによって、アプリケーションが、記述子ファイルを利用するためのインターフェースおよび/または特定の通信プロトコルによってサポートされていなくてもよいため、例示的方法および装置は、記述子ファイルを比較的より移植可能にすること、および/またはプロセス制御アプリケーションによって使用可能にすることができる。さらに、プロセスデータ階層が、特定の通信プロトコル、フィールド機器、アプリケーションの種類、および/またはプロセス制御システムから独立しているため、スキーマによって特定される共通ファイルフォーマットは、プロセス制御技術における変更に比較的強い。
いくつかの例では、本明細書に記述される方法および装置は、プロセスデータを表示するために、EDDLファイルに関連する共通ファイルフォーマットに準拠する記述子ファイルを使用する場合がある。例えば、EDDLファイルが、記述子ファイル内に記憶されるプロセスデータがアプリケーション内にどのように表示されるかを特定してもよい。これらの例では、EDDLファイルは、記述子ファイル内の変数を参照してもよい。記述子ファイルが、例示的スキーマに準拠するため、EDDLファイルは、プロセスデータのデータ位置が修正される際に修正されなくてもよい。他の例では、記述子ファイルは、デバイスの機能性、特長、および/またはディスプレイ情報を含んでもよく、それによって、対応するEDDLを冗長性のあるものにする。
図1は、例示的ディスプレイインターフェース102を含む、例示的プロセス制御環境100のブロック図を示す。例示的ディスプレイインターフェース102は、記述子ファイル(単数または複数)内に記憶されるプロセスデータを表示する。ディスプレイインターフェース102は、プロセス制御システム104に関連付けられる。加えて、ディスプレイインターフェース102は、ワークステーション106によって実装されてもよい、および/またはワークステーション106内に含まれてもよい。他の例では、ディスプレイインターフェース102は、ワークステーション106に通信可能に接続される場合がある、サーバ、プロセッサ、分散コンピューティングネットワーク、および/または任意の他のコンピューティングデバイス(単数または複数)内に含まれてもよい。
また、図示される例は、ファイルジェネレータ108をホストするサーバ107も含む。ファイルジェネレータ108は、スキーマに準拠する普遍的(例えば、共通)ファイルフォーマットで記述子ファイルを作成する。ファイルジェネレータ108は、サーバ107内に示されるが、他の例では、ファイルジェネレータ108は、ワークステーション106内に含まれ、ディスプレイインターフェース102と並列動作してもよい。
図1の例示的ワークステーション106および/または例示的サーバ107は、パーソナルコンピュータ、ラップトップ、サーバ、コントローラ、携帯情報端末(PDA)、マイクロコンピュータ等の任意のコンピューティングデバイスを含んでもよい。また、例示的ワークステーション106は、例えば、携帯電話、スマートフォン、PDA、ネットパッド、フィールド通信等の任意のモバイルコンピューティングデバイスも含んでもよい。ワークステーション106および/またはサーバ107は、任意の好適なコンピュータシステムまたは処理システム(例えば、図10のプロセッサシステムP10)を使用して、実装されてもよい。例えば、ワークステーション106は、シングルプロセッサパーソナルコンピュータ、シングルまたはマルチプロセッサワークステーション等を使用して実装できる可能性がある。
例示的プロセス制御システム104は、任意の種類の製造施設、プロセス施設、オートメーション施設、安全計装施設、および/または任意の他の種類のプロセス制御構造もしくはシステムを含んでもよい。いくつかの例では、プロセス制御システム104は、異なる場所に位置する複数の施設を含んでもよい。加えて、例示的プロセス制御環境100は、同一施設内に含まれ、かつ/または異なる施設に位置する場合がある、他のプロセス制御システム(図示せず)を含んでもよい。
例示的プロセス制御システム104は、ローカルエリアネットワーク(LAN)110を介して、ワークステーション106および/またはサーバ107に通信可能に接続される場合がある、コントローラ109を含む。LAN110は、任意の通信媒体および/またはプロトコルを使用して実装されてもよい。例えば、LAN110は、有線または無線イーサネット(登録商標)通信スキームに基づいてもよい。しかしながら、任意の他の好適な通信媒体およびプロトコルを使用できる可能性がある。さらに、LAN110が示されるが、冗長通信パスを提供するために、2つ以上のLANおよび/または無線ネットワーク、ならびに適切な通信ハードウェアを使用してもよい。
プロセス制御環境100は、遠隔ワークステーション(例えば、プロセス制御環境100外のワークステーション)に、プロセス制御環境100によって生成されるプロセスデータへのアクセスを提供するために、ファイアウォール(図示せず)を含んでもよい。また、プロセス制御環境100は、ワークステーション(図示せず)をLAN110に通信可能に接続するために、1つ以上のルータ(図示せず)も含んでもよい。また、ルータは、複数のプロセス制御システムを通信可能に接続することもできる。
プロセス制御システム104はまた、フィールド機器112(例えば、入力および/または出力デバイス)も含む。フィールド機器112は、入力を受信し、出力を生成し、および/またはプロセスを制御することができる、任意の種類(単数または複数)のプロセス制御コンポーネント(単数または複数)を含んでもよい。フィールド機器112は、プロセスを制御するための、例えば、弁、ポンプ、ファン、ヒーター、クーラー、および/またはミキサー等の制御デバイスを含むことができる。加えて、フィールド機器112は、例えば、プロセスの一部を測定するための温度センサ、圧力ゲージ、濃度ゲージ、液面計、流量計、および/または蒸気センサ等の測定または監視デバイスを含んでもよい。フィールド機器112は、入力114を介してコントローラ109から命令を受信し、特定されたコマンドを実行し、フィールド機器112によって実装および/または制御されるプロセスに変化を生じさせる。さらに、フィールド機器112は、プロセスデータ、環境データ、および/または入力デバイスデータを測定し、測定されたデータを、出力116を介して、プロセス制御データとしてコントローラ109に送信する。このプロセス制御データには、フィールド機器112からの測定された出力に対応する変数の値が含まれてもよい。
フィールド機器112は、コントローラ109、サーバ107、および/またはワークステーション106によってアクセス可能である、EDDLファイルに関連付けられてもよい。EDDLファイルは、フィールド機器112の特性、機能、パラメータ、および/または特長を記述する。ワークステーション106は、記述子ファイル内に記憶されるプロセスデータをどのように表示するかを判定するために、EDDLファイルにアクセスすることができる。
また、プロセス制御システム104は、フィールド機器112からデータを受信し、データを、例示的コントローラ109によって処理することができる通信に変換するために、I/Oデバイス122(例えば、1つ以上のI/Oカード)も含む。同様に、I/Oデバイス122は、コントローラ109からのデータまたは通信を、対応するフィールド機器112によって処理することができるデータフォーマットに変換する場合がある。
図1の例示的コントローラ109は、プロセス制御システム104内のフィールド機器112を管理するために、1つ以上の制御ルーチン(例えば、プロセス制御アルゴリズム、機能、および/または命令)を操作する。制御ルーチンには、プロセス監視アプリケーション、警報管理アプリケーション、プロセストレンディングおよび/または履歴アプリケーション、診断アプリケーション、バッチ処理および/またはキャンペーン管理アプリケーション、統計アプリケーション、ストリーミング動画アプリケーション、高度制御アプリケーション、安全計装アプリケーション等が含まれる。例示的コントローラ109は、プロセスデータ(例えば、プロセス制御情報)をワークステーション106に送信する。コントローラ109によって送信されるプロセスデータは、例えば、プロセス制御値、データ値、警報情報、テキスト、状態情報、診断情報、エラーメッセージ、パラメータ、イベント、および/またはデバイス識別子を含んでもよい。
いくつかの例では、また、コントローラ109は、フィールド機器112からのプロセスデータをデータベース124に送信してもよい。データベース124は、電子的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および/または任意の他の種類のメモリによって実装されてもよい。例示的データベース124は、コントローラ109によって生成される、実質的にすべてのプロセスデータを記憶してもよい。プロセスデータは、関連フィールド機器に基づき、記憶および/または整理されてもよい。例えば、ポンプ01識別子を有するポンプのポンプ速度パラメータPS101に関連付けられる出力値(例えば、プロセス制御情報)は、データベース124内に記憶され、ポンプ01識別子およびPS101パラメータによってインデックスが付けられてもよい。
また、データベース124内に記憶されるプロセスデータのうちの少なくともいくつかが、記述子ファイル内に記憶される場合がある。記述子ファイルは、LAN110に通信可能に接続される、記述子ファイルデータベース126内に記憶される。記述子ファイルデータベース126は、電子的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、および/または任意の他の種類のメモリによって実装されてもよい。さらに、記述子ファイルデータベース126は、固定記憶システムによって実装されてもよい。例示的記述子ファイルデータベース126は、プロセス制御システム104内の別個のデータベースとして示されるが、他の例では、記述子ファイルデータベース126は、プロセス制御環境100に関連付けられる各ワークステーション(例えば、ワークステーション106)内にローカルに実装されてもよい。加えて、または代替として、記述子ファイルデータベース126は、サーバ107および/またはコントローラ109内に含まれてもよい。
例示的記述子ファイルデータベース126は、プロセスデータを共通ファイルフォーマットで記憶するように構成される、記述子ファイルを記憶する。記述子ファイルデータベース126は、フィールド機器112のそれぞれの記述子ファイルを含んでもよく、または代替として、フィールド機器112のグループの記述子ファイルを含んでもよい。例示的記述子ファイルは、例示的ファイルジェネレータ108によって生成される。プロセスデータは、コントローラ109を介して、記述子ファイルに記憶されてもよい。例えば、フィールド機器112のうちの1つによって生成されるプロセスデータは、コントローラ109によって、それぞれの記述子ファイルに記憶されてもよい。また、プロセスデータは、サーバ107を介して、記述子ファイルに記憶されてもよい。例えば、フィールド機器のうちの1つに関連付けられるパラメータ化情報は、対応するフィールド機器がプロセス制御システム104内にインストールされる、および/またはプロセス制御システム104内で作動されると、サーバ107および/またはワークステーション106によって、それぞれの記述子ファイルに記憶される場合がある。このようにして、記述子ファイルは、イベント、状態、および/または測定値を記述する、リアルタイムプロセスデータを記憶してもよく、また、フィールド機器に関連付けられる設定情報を記憶してもよい。加えて、記述子ファイルは、対応するフィールド機器に関連付けられる特長、機能、コンポーネント、および/またはディスプレイ情報を定義する情報を記憶してもよい。
例示的ワークステーション106は、記憶されるプロセスデータを取り出す、管理する、および/または表示するために、例示的記述子ファイルデータベース126にアクセスする場合がある。また、他のワークステーションおよび/または手持ち式デバイス(図示せず)も、プロセスデータについて、データベース126にアクセスする場合がある。このようにして、プロセス制御環境100へのアクセスを有する任意のコンピューティングデバイスは、プロセスデータを管理する、取り出す、および/または表示するために、データベース126にアクセスする場合がある。記述子ファイルデータベース126が、要求されたプロセスデータを有する記述子ファイルを含まない場合、ワークステーション106は、プロセスデータについて、データベース124にアクセスする場合がある。
プロセス制御システム104へのアクセスを有する、例示的ワークステーション106および/または他のワークステーションは、1つ以上のアプリケーションを介して、プロセス制御システム104内の1つ以上のプロセスを閲覧する、修正する、および/または訂正するように構成されてもよい。図示される例では、アプリケーション130は、ユーザインターフェース132を介して表示される。アプリケーションは、エンタープライズビューアプリケーション、グラフィックススタジオアプリケーション、エクスプローラアプリケーション、および/または任意の他の種類のプロセス制御に基づくアプリケーションを含んでもよい。これらのアプリケーション130は、ユーザインターフェース132を介して、ワークステーション106内にプロセスデータを表示する。ユーザインターフェース132は、グラフィック表現(単数または複数)として表示されるプロセス制御情報(例えば、機能ブロック図および/または概略図)を示すための、ワークステーション106内に表示されてもよい、グラフィックウィンドウ(例えば、アプリケーションプログラミングインターフェース(API))を含んでもよい。ワークステーション106は、ディスプレイインターフェース102に通信可能に接続されてもよい、2つ以上のユーザインターフェース132を表示する能力を有する場合がある。
図示される例では、アプリケーション130は、プロセスデータを取り出す、管理する、および/または表示するために、記述子ファイルデータベース126内の記述子ファイルの共通ファイルフォーマットを利用してもよい。プロセスデータは、スキーマに基づいて標準化されるファイルフォーマットで記憶されるため、アプリケーション130は、ファイルフォーマット専用インターフェースなしで、記述子ファイルにアクセスする場合がある。
このようにして、ワークステーション106上で動作する任意のアプリケーションは、プロセスデータをアプリケーションに準拠する標準規格に変換する、転換する、および/または別の方法でフォーマットする必要なく、記述子ファイル内に記憶されるプロセスデータにアクセスすることができる。さらに、プロセスデータがフィールド機器112によって生成される際、アプリケーション130は、I/Oデバイス122とフィールド機器112との間で通信するために使用される通信プロトコル、フィールド機器112の種類、フィールド機器112のプロトコル、および/またはプロセスデータに関連付けられる任意の他の独自仕様のフォーマットに関わらず、記述子ファイル内に記憶されるプロセスデータにアクセスする場合がある。
図1の例では、ファイルジェネレータ108は、記憶されるプロセスデータ型、記憶されるプロセスデータ間の関係、および/または対応するフィールド機器112のうちの1つから生成されるプロセスデータの配列に基づき、記述子ファイルを作成する。また、ファイルジェネレータ108は、記述子ファイル内のプロセスデータを整理する、および/または配列するために、例示的スキーマも使用する。いくつかの例では、ファイルジェネレータ108は、プロセス制御人員から、プロセスデータがどのように整理されるかを特定する入力を受信してもよい。加えて、ファイルジェネレータ108は、例示的スキーマを用いて、新たに作成された記述子ファイルを検証してもよい。記述子ファイルが作成されると、ファイルジェネレータ108は、記述子ファイルを記述子ファイルデータベース126に保存する。ファイルジェネレータ108は、図2に関連して、さらに詳細に説明される。
図1の例示的ディスプレイインターフェース102は、ワークステーション106のユーザが、記述子ファイル内に記憶されるプロセスデータを管理することを可能にする。例示的ディスプレイインターフェース102は、ユーザから、プロセスデータの閲覧要求、プロセスデータへのアクセス要求、および/またはプロセスデータの更新要求を受信してもよい。ユーザは、ディスプレイインターフェース102に、フィールド機器112に関連付けられる記述子ファイルを位置付けさせるために、フィールド機器112のうちの1つを特定してもよい。代替として、ユーザは、パラメータおよび/または変数を特定し、ディスプレイインターフェース102に、合致するパラメータおよび/または変数を有する記述子ファイルを位置付けさせてもよい。さらに他の例では、ユーザは、記述子ファイルデータベース126内の記述子ファイルのディレクトリをブラウズするために、ディスプレイインターフェース102を使用してもよい。次いで、ユーザは、所望の記述子ファイルを選択することによって、プロセスデータを閲覧してもよい。
例示的ディスプレイインターフェース102は、記述子ファイル内の要求されたプロセスデータを位置付けるために、例示的スキーマを使用する。スキーマは、プロセスデータがどのように記憶されるかを特定するため、例示的ディスプレイインターフェース102は、記述子ファイルを検索するために、スキーマを適用してもよい。プロセスデータを取り出すことに加えて、例示的ディスプレイインターフェース102は、ワークステーション106のユーザが、記述子ファイルに書き込むこと、および/または記述子ファイル内に記憶されるプロセスデータを修正することを可能にする場合がある。
また、例示的ディスプレイインターフェース102は、取り出されたプロセスデータのうちのどれがアプリケーション130内に表示されるかを判定するために、記述子ファイル内の表示変換および/または対応するEDDLファイルを使用してもよい。プロセスデータを表示するために、例示的ディスプレイインターフェース102は、EDDLファイルおよび/または表示変換によって特定されるテンプレートのデータフィールド内に、プロセスデータをレンダリングしてもよい。また、ディスプレイインターフェース102は、アプリケーション130がテンプレート内にプロセスデータのグラフィック表現を生成するために使用する、命令を含む表示ファイルを生成してもよい。このようにして、ディスプレイインターフェース102は、ユーザが、1つ以上の記述子ファイル内に記憶されるプロセスデータを比較的素早く取り出し、閲覧することを可能にする。
図2は、図1の例示的ディスプレイインターフェース102およびファイルジェネレータ108の機能ブロック図を示す。記述子ファイルデータベース126は、ディスプレイインターフェース102およびファイルジェネレータ108の外部に示されるが、いくつかの例では、記述子ファイルデータベース126は、ディスプレイインターフェース102および/またはファイルジェネレータ108内に含まれてもよい。他の例では、ディスプレイインターフェース102および/またはファイルジェネレータ108は、記述子ファイルデータベース126のローカルコピーを含んでもよい。
例示的ファイルジェネレータ108は、記述子ファイルを作成し、プロセスデータを記述子ファイルに記憶する。例示的ファイルジェネレータ108は、複数の記述子ファイルを同時に生成する場合がある、または代替として、記述子ファイルを順次処理する場合がある。記述子ファイルを作成する、修正する、閲覧する、および/または編集するために、例示的ファイルジェネレータ108は、エディタ202を含む。例示的エディタ202は、フィールド機器開発者および/もしくはプロセス制御人員が、記述子ファイルを作成する、ならびに/または修正することを可能にする、インターフェースとして機能してもよい。記述子ファイルが拡張スタイルシート言語変換(XSLT)フォーマットおよび/または拡張マークアップ言語(XML)フォーマットである例では、エディタ202は、Altova(登録商標)社からのXMLSpy(登録商標)を使用して実装されてもよい。これらの他の例では、エディタ202は、記述子ファイルを、XMLおよび/またはXSLTフォーマットからハイパーテキストマークアップ言語(HTML)ファイルに変換する場合がある。次いで、ワークステーション106がインターネットを介して記述子ファイルデータベース126に通信可能に接続される例では、ディスプレイインターフェース102は、HTMLフォーマット化記述子ファイルにアクセスする場合がある。
記述子ファイルを作成するために、例示的エディタ202は、フィールド機器112の機能性を記述する情報を受信してもよい。他の例では、ユーザは、フィールド機器112に関連付けられる仕様に基づき、記述子ファイルを作成するために、エディタ202を利用する場合がある。例えば、エディタ202は、デバイス設計者が記述子ファイルを作成するために使用する場合がある、テキスト編集アプリケーションを呼び出してもよい。他の例では、エディタ202は、入力114、出力116、データベース124内に記憶されるプロセスデータ、および/またはフィールド機器112に関連付けられる任意の追加情報に基づき、記述子ファイルを生成する、ルーチンおよび/またはアルゴリズムであってもよい。例えば、エディタ202は、フィールド機器からの出力の種類を識別し、出力の種類に基づき、出力されたプロセスデータを記憶するための記述子ファイルを作成してもよい。いくつかの例では、エディタ202は、フィールド機器112のうちの1つの特長および/または機能性に基づき、プロセスデータを記憶する、記述子ファイルを作成するために使用される場合がある。他の例では、エディタ202は、集合的なフィールド機器112の特長および/または機能性に基づき、階層でプロセスデータを記憶する、記述子ファイルを作成する場合がある。
図示される例の例示的エディタ202は、スキーマ204を使用して、記述子ファイルを作成する。例示的スキーマ204は、例えば、記述子ファイル内のプロセスデータがどのように整理されるかを記述する構造を提供する、XMLファイルであってもよい。例示的スキーマ204は、ファイルジェネレータ108のキャッシュ(例えば、メモリ)内に記憶されてもよく、または代替として、図1のサーバ107のメモリ内に記憶され、エディタ202によって遠隔からアクセスされてもよい。スキーマ204は、図3および図4に関連してより詳細に説明される。
フィールドデバイスの記述子ファイルを作成するために、例示的エディタ202は、スキーマ204に準拠するファイル構造を判定するために、フィールド機器に関連付けられる情報および/またはプロセスデータを使用する。例示的エディタ202は、記述子ファイルに記憶されるプロセスデータ間の関係を判定することによって、ファイル構造を判定する。プロセスデータの関係を判定するために、例示的エディタ202は、フィールド機器に関連付けられるEDDLファイルにアクセスすることによって、プロセスデータの階層を判定してもよい。EDDLファイルは、フィールド機器内、サーバ107内、および/またはプロセス制御システム104内のデータベース内に記憶されてもよい。EDDLファイルは、どのプロセスデータの特長、機能、および/または型が関連しているか、および/またはグループ化されるかを特定してもよい。例示的エディタ202は、オープンファイル記述、セクション、ファイルエントリ、および/またはオブジェクトを使用して、ファイル階層を作成するために、EDDLファイル内の関係情報を使用する。
また、例示的エディタ202は、プロセスデータのどの部分がフィールド機器のコンポーネントに関連付けられるかに基づき、プロセスデータの関係を判定してもよい。このようにして、例示的エディタ202は、同一のコンポーネントに関連付けられる、同一のセクション内のプロセスデータの部分をグループ化する。また、例示的エディタ202は、プロセスデータをどのように構造化するかを判定するために、フィールド機器の階層を使用してもよい。例えば、エディタ202は、フィールド機器内のネスト化コンポーネントをミラーリングするために、記述子ファイルのオブジェクトおよび/またはセクションをネスト化してもよい。
さらに、例示的エディタ202は、プロセスデータ型を識別することによって、プロセスデータの関係を判定してもよい。例示的エディタ202は、プロセスデータが、数値、値のアレイ、テキストの文字列、ブール値、論理値、および/または任意の他の型のデータに対応するか否かを判定することによって、型を識別してもよい。また、例示的エディタ202は、プロセスデータ型に基づき、記述子ファイルのオブジェクトの型を選択してもよい。例えば、エディタ202は、数値のアレイに関連付けられるプロセスデータの値アレイを選択してもよい。プロセスデータ型に基づき、例示的エディタ202は、例えば、値アレイ、リスト、群、参照アレイ、エントリアレイ、変数、式、および/または表示変換を含む、任意の数のオブジェクトから、適切なオブジェクトを選択してもよい。さらに、例示的エディタ202は、プロセスデータの型に基づき、任意の数の変数型から選択してもよい。変数値型には、例えば、ブール型、整数型、符号なし型、浮動小数点型、倍精度浮動小数点型、列挙型、ASCII型、ビット列型、時刻型、および/または日付時刻型を含む。
記述子ファイルに記憶されるプロセスデータ間の関係を判定した後、例示的エディタ202は、記述子ファイルのファイル本体(例えば、データ部分)と、ヘッダとを作成する。エディタ202は、プロセスデータ内に含まれる識別情報に基づき、ヘッダを作成する。また、エディタ202は、記述子ファイルのバージョンを特定するためのヘッダ内のフィールドを作成してもよい。ヘッダは、例えば、フィールド機器の製造業者名、フィールド機器の種類、記述子ファイルの主バージョン、記述子ファイルの副バージョン、フィールド機器の保守バージョン、フィールド機器の構築バージョン、および/またはフィールド機器のモデル番号を含んでもよい。記述子ファイルの主バージョンは、記述子ファイル内の互換性のあるファイルエントリを判定するために、ディスプレイインターフェース102および/またはアプリケーション130によって使用される場合がある。記述子ファイルの副バージョンは、各主バージョンの副付加バージョンを提供する。このようにして、比較的古いアプリケーションは、互換性のあるフィールドエントリを判定するために、記述子ファイルを読み取り、主/副バージョンのヘッダ情報を使用する場合がある。換言すれば、ヘッダは、比較的古いアプリケーションが、古いアプリケーションと互換性のあるプロセスデータにのみアクセスすることができるように、記述子ファイルを下位互換性のあるものにすることができる。いくつかの例では、記述子ファイルの主バージョンが、プリケーションと互換性がない場合、アプリケーションは、プロセスデータにアクセスすることを許可されず、それによって、アプリケーションが記述子ファイルを損傷する、および/またはプロセスデータを不適切に表示することを防止する場合がある。
例示的エディタ202は、関係情報に基づき、記述子ファイルと関連付けるために、いくつかの物理ファイルを判定することによって、ファイル本体を作成する。いくつかの物理ファイルは、フィールド機器のいくつかのコンポーネントに対応してもよい。他の例では、いくつかの物理ファイルは、フィールド機器に関連付けられる、異なる特長および/または機能に対応してもよい。例えば、第1の物理ファイルは、弁コントローラフィールド機器内に含まれる圧力センサのために作成されてもよく、また、第2の物理ファイルは、弁コントローラフィールド機器内に含まれる温度センサのために作成されてもよい。物理ファイルのそれぞれは、記述子ファイルのファイル本体によって参照される、および/または記述子ファイルのファイル本体内に含まれる。
各物理ファイルについて、例示的エディタ202は、オープンファイル記述を使用して、物理ファイルに記述子ファイルのファイル本体を参照させる。オープンファイル記述は、物理ファイルを識別する識別情報を含む。また、オープンファイル記述は、セクションへの参照も含む。例示的エディタ202は、プロセスデータ間の関係に基づき、オープンファイル記述内にセクションを作成する。例えば、エディタ202は、センサコンポーネントの警報およびイベントプロセスデータのためのセクションと、センサコンポーネントのプロセスデータの出力値のためのセクションとを作成する場合がある。例示的エディタ202は、対応するオープンファイル記述内の作成されたセクションへの参照を含んでもよい。
各セクションについて、エディタ202は、ファイルエントリのオブジェクトの型を判定する。ファイルエントリは、セクション内のオブジェクトへの参照である。エディタ202は、プロセスデータの型および/または関係に基づき、オブジェクトを選択してもよい。したがって、プロセスデータの群またはリストは、ファイルエントリ内で参照されるオブジェクトのリストまたは群として、記述子ファイルに記憶されてもよい。プロセスデータが、変数、パラメータ、および/もしくは値のグループならびに/またはセットを含む場合がある例では、エディタ202は、ファイルエントリがアレイオブジェクトに関連付けられることを判定してもよい。グループおよび/またはセットの種類に基づき、アレイは、値アレイ、参照アレイ、および/またはエントリアレイを含んでもよい。これらのアレイのそれぞれは、値、パラメータ、および/または変数のファイルエントリを有するネスト化セクションを含んでもよい。このようにして、エディタ202は、記述子ファイル内にネスト化セクションおよび/またはオブジェクトを作成する場合がある。
加えて、エディタ202は、表示および/またはアクセスされる前に、数式内に含まれるプロセスデータのセクション内に、式オブジェクトファイルエントリを作成してもよい。例えば、エディタ202は、オブジェクトが、変数の値を、タンクの数値レベルからタンク容量の百分率に変換する式であることを特定してもよい。また、記述子ファイルが、記憶されるプロセスデータがどのように表示されるかを記述する命令を含む例では、エディタ202は、表示変換オブジェクトを作成してもよい。表示変換オブジェクトを作成するために、例示的エディタ202は、ファイルエントリ内に、命令のセットへの参照を作成してもよい。
セクションを識別するために、例示的エディタ202は、セクションに、セクション名および/またはセクションインデックスを割り当ててもよい。セクション名は、セクションを記述してもよい。セクションインデックスは、オープンファイル記述を参照してもよく、および/またはファイルエントリによって参照されてもよい。ファイルエントリを識別するために、例示的エディタ202は、ファイルエントリに、エントリ名、エントリ型、および/またはカウントを割り当ててもよい。エントリ名は、セクションによって参照され、ファイルエントリを記述してもよい。エントリ型は、エントリに関連付けられるオブジェクトの型に対応する。カウントは、アレイオブジェクト内のいくつかのアイテムを識別する場合がある。ファイルエントリが変数オブジェクトに対応する場合、エディタ202は、変数型、値、および/または変数の品質を割り当ててもよい。変数型は、プロセスデータの型を識別する。変数オブジェクト内の値フィールドは、プロセスデータを記憶する。
例示的エディタ202は、プロセスデータの関係に基づき、セクション、ファイルエントリ、および/または対応するオブジェクトを配列ならびに/または整理する。例示的エディタ202は、記述子ファイルの編成および/または配列がスキーマ204の規則および/またはガイドラインに確実に準拠するように、例示的スキーマ204を利用する。いくつかの例では、エディタ202は、プロセスデータの関係が例示的スキーマ204と矛盾する場合、セクション、ファイルエントリ、オープンファイル記述を再配列してもよい。
記述子ファイルが作成されると、例示的エディタ202は、記述子ファイルをコンパイラ206に送信する。図2の例示的コンパイラ206は、記述子ファイルデータベース126内への記憶のために、および/もしくは例示的ディスプレイインターフェース102による使用のために、記述子ファイルを処理する、コンパイルする、確認する、ならびに/または転換する。例示的コンパイラ206は、記述子ファイルをスキャンおよび/もしくは解析して、構文エラー、プロトコルエラー、ならびに/または語彙項目を識別するために、任意の数および/もしくは種類(単数または複数)のアルゴリズム(単数または複数)、論理、ならびに/または方法を使用する、スキャナ208を含む。スキャナ208は、記述子ファイルを圧縮二値フォーマットに変換するために、語彙項目をトークナイザ210に提供する。スキャナ208によって検出される、いかなるエラーも、エディタ202を介して、フィールド機器設計者に通信する場合がある。また、例示的スキャナ208は、例示的スキーマ204を使用して、記述子ファイルを検証してもよい。スキャナ208によって検出されるエラーの種類に基づき、例示的エディタ202は、検出されたエラーを試験および/またはデバッグするためのツールを、フィールド機器設計者に提供する。エディタ202は、フィールド機器設計者および/または他のプロセス制御人員が、記述子ファイルを編集して、いかなる検出されたエラーも修正することを可能にする。このようにして、例示的スキャナ208は、フィールド機器設計者が、記述子ファイルとのユーザ対話を試験および/またはシミュレートすることを可能にし、これは、記述子ファイルの品質の改善をもたらす場合がある。
任意の数および/もしくは種類(単数または複数)のアルゴリズム(単数または複数)、論理、ならびに/または方法(単数または複数)を使用して、図2の例示的トークナイザ210は、特定のトークン(例えば、分類可能な入力文字列)を識別するために、スキャナ208によって識別される語彙項目を処理する。例えば、スキャナ208は、例示的トークナイザ210が1つ以上の圧縮二値語に解析する、および/または分離する、例えば、文を表す文字列語彙項目を識別することができる。トークナイザ210によって識別される各トークンは、値(例えば、実際の変数名)および種類(例えば、変数、演算子、数等)の両方を有し、それによって、トークナイザ210が、記述子ファイルを二値フォーマットに圧縮することを可能にする。圧縮フォーマットは、プロセス制御人員による改竄および/または後続の処理の問題を防止する場合がある。トークン化された記述子ファイルは比較的小さいため、多くのフィールド機器のトークン化されたファイルは、手持ち式デバイスおよび/またはワークステーション106の限られたフラッシュメモリ内に記憶することができる。
また、図2のファイルジェネレータ108は、記述子ファイルを製造供給元および/またはシステム固有の形式に転換する、インタプリタ212も含む。例えば、インタプリタ212は、記述子ファイルを独自仕様のプロセス制御標準および/またはプロセス制御マネージャによって要求される任意の他の標準に転換するために使用されてもよい。ファイルジェネレータ108は、記述子ファイルを、プロセス制御システム104および/またはワークステーション106内のアプリケーションと互換性のあるフォーマットに変換するために、インタプリタ212を利用することができる。例えば、インタプリタ212は、記述子ファイルを、ウェブブラウザによってアクセスすることができる、HTMLフォーマットに変換することができる。いくつかの例では、インタプリタ212は、トークナイザ210が記述子ファイルを圧縮する前に、記述子ファイルを転換してもよい。他の例では、インタプリタ212は、圧縮二値記述子ファイルを転換してもよい。例示的インタプリタ212は、記述子ファイルを対応する特定されるフォーマットに転換するために、任意の数および/もしくは種類(単数または複数)のアルゴリズム(単数または複数)、論理、ならびに/または方法(単数または複数)を使用することができる。例示的インタプリタ212は、記述子ファイルを転換する場合があるが、記述子ファイルに記憶される下層のプロセスデータは、スキーマ204によって特定される例示的共通ファイルフォーマットに準拠する。
記述子ファイルがスキャンされる、トークン化される、および/または転換されると、図示される例の例示的コンパイラ206は、記述子ファイルを記述子ファイルデータベース126に記憶する。いくつかの例では、コンパイラ206は、同一の記述子ファイルの複数の転換バージョンを記憶することができ、それによって、異なるフォーマットおよび/またはオペレーティングシステムに関連付けられる、異なるアプリケーションが、互換性のある記述子ファイルにアクセスすることを可能にする。他の例では、コンパイラ206は、記述子ファイルの圧縮二値バージョンと、圧縮されていないバージョンとを記憶する場合があり、それによって、ユーザが、デバイスのメモリ制約に基づき、記述子ファイルを選択することを可能にする。
プロセスデータを記述子ファイルに記憶するために、例示的ファイルジェネレータ108は、データベースインターフェース214を含む。データベースインターフェース214は、LAN110を介して、コントローラ109および記述子ファイルデータベース126に通信可能に接続される。例示的データベースインターフェース214は、ファイルジェネレータ108内に実装されているように示される。他の例では、データベースインターフェース214は、記述子ファイルデータベース126内に、記述子ファイルデータベース126に関連付けられるプロセッサ内に、ディスプレイインターフェース102内に、ならびに/またはプロセス制御システム104内に別個のプロセッサおよび/もしくはサーバとして含まれてもよい。
例示的データベースインターフェース214は、コントローラ109からプロセスデータを受信する。また、例示的データベースインターフェース214は、他のソース(例えば、プロセス制御人員、フィールド機器仕様等)からプロセスデータを受信してもよい。例示的データベースインターフェース214は、記述子ファイルを識別するために、プロセスデータ内の識別情報を使用する。例えば、ポンプ023の識別子を有するポンプフィールド機器からのプロセスデータは、ポンプ023識別子を含むヘッダを有する記述子ファイルを検索するために、データベースインターフェース214によって使用されてもよい。
記述子ファイルを位置付けた後、例示的データベースインターフェース214は、記述子ファイルの構造を判定するために、スキーマ204にアクセスする場合がある。データベースインターフェース214は、プロセスデータを記憶する記述子ファイル内のオブジェクトを位置付けるために、この判定された構造を使用してもよい。代替として、データベースインターフェース214は、プロセスデータと合致するセクション、オープンファイル記述、ファイルエントリ、オブジェクト、および/または変数型について、記述子ファイルをスキャンしてもよい。例えば、データベースインターフェース214は、記述子ファイルのファイル本体内の対応するオープンファイル記述を位置付けるために、プロセスデータを使用してもよい。次いで、データベースインターフェース214は、プロセスデータと合致するオブジェクトを含むファイルエントリについて、オープンファイル記述内のセクションをスキャンしてもよい。データベースインターフェース214は、プロセスデータの識別子を変数型および/または変数名と合致させることによって、プロセスデータをオブジェクトと合致させてもよい。例えば、ポンプ出力は、出力の値(例えば、3.2ガロン/秒)をパラメータ(例えば、ポンプOUT02)にタグ付けすることによって、プロセスデータとして生成されてもよい。例示的データベースインターフェース214は、対応するポンプOUT02識別子および/または名前を有するオブジェクトについて、ファイルエントリを検索する。
例示的データベースインターフェース214は、記述子ファイルのファイル本体内の識別された合致するオブジェクトに、プロセスデータを記憶する。プロセスデータを記憶するために、例示的データベースインターフェース214は、アレイ、群、および/またはリストオブジェクト内にネスト化されてもよい、変数オブジェクトの値フィールドに、プロセスデータの値を記憶する。値フィールドが、プロセスデータの以前に記憶された値を含む例では、データベースインターフェース214は、以前の値に上書きする。他の例では、データベースインターフェース214は、以前のプロセスデータ値を含むアレイオブジェクト内に、新しいプロセスデータ値を記憶してもよい。次いで、例示的データベースインターフェース214は、新たに記憶されたプロセスデータを有する記述子ファイルへのアクセスを終わらせる、および/または終了してもよい。
また、図2の例は、プロセスデータにアクセスするために、記述子ファイルについて記述子ファイルデータベース126にアクセスする、例示的ディスプレイインターフェース102も示す。いくつかの例では、ディスプレイインターフェース102は、記述子ファイルを手持ち式デバイスおよび/またはワークステーション106にローカルに記憶するために、記述子ファイルデータベース126に定期的にアクセスする場合がある。このようにして、ユーザは、LAN110に通信可能に接続されるデバイスを有することなく、プロセスデータを閲覧する、および/またはプロセスデータにアクセスすることができる。他の例では、ディスプレイインターフェース102は、プロセスデータの閲覧要求が受信される時にいつでも、記述子ファイルについて、記述子ファイルデータベース126にアクセスする。
例示的ディスプレイインターフェース102は、ワークステーション(例えば、ワークステーション106)からのプロセスデータへの複数のアクセス要求を同時に処理する場合がある。代替として、例示的ディスプレイインターフェース102は、プロセスデータへの単一のアクセス要求を処理する場合がある。これらの代替の例では、複数の要求を処理するために、複数のディスプレイインターフェース102が利用されてもよい。例示的ディスプレイインターフェース102は、ワークステーション106と関連して説明されるが、ディスプレイインターフェース102は、他のワークステーションおよび/または図1のプロセス制御環境100に関連付けられるデバイスで動作してもよい。
プロセスデータの閲覧要求を受信するために、例示的ディスプレイインターフェース102は、受信部220を含む。例示的受信部220は、ワークステーション106内のユーザインターフェース132に通信可能に接続される。受信部220は、ワークステーション106および/またはユーザインターフェース132を介して、ユーザから、プロセスデータへのアクセスおよび/またはプロセスデータの取り出し要求を受信する。ユーザは、所望のデータに関連付けられる識別子を、要求および/または検索フィールドに入力することによって、プロセスデータにアクセスすることを選択する。例えば、ユーザは、フィールド機器の識別子を入力してもよい。別の例では、ユーザは、プロセス制御システム104内の領域および/またはフィールド機器群を入力してもよい。さらに別の例では、ユーザは、パラメータに関連付けられるプロセスデータを閲覧するために、パラメータの識別子(例えば、変数名)を特定してもよい。
また、ユーザは、データディレクトリ内の所望のプロセス制御オブジェクト(例えば、フィールド機器、コンポーネント、領域等のリスティング)をブラウズすることによって、プロセスデータを特定してもよい。例えば、ユーザは、オープン機能を利用し、ディレクトリを所望のフィールド機器にナビゲートしてもよい。さらに他の例では、ユーザは、ユーザインターフェース132を介して、情報に関連付けられるグラフィック表現および/または識別子を選択することによって、プロセスデータにアクセスする場合がある。代替として、ユーザは、プロセスデータを含む、および/またはリストする、ウェブサイトアドレスを入力してもよい。次いで、ユーザは、表示されるウェブページ内にリストされる所望のプロセス制御オブジェクトを選択してもよい。
プロセスデータの閲覧要求を受信すると、例示的受信部220は、ファイルプロセッサ222に要求を送信する。例示的ファイルプロセッサ222は、記述子ファイルを識別するために、要求を情報に解析する。ファイルプロセッサ222は、記述子ファイルデータベース126にアクセスして、要求されたプロセスデータと合致する記述子ファイルを検索するために、情報を使用する。例えば、プロセスデータの要求は、「Rosemount(登録商標)フィールド機器圧力センサ」種類と、圧力センサの「PRS02」識別子とを含んでもよい。ファイルプロセッサ222は、Rosemount(登録商標)フィールド機器圧力センサの機能性を定義する、記述子ファイルを検索する。また、ファイルプロセッサ222は、PRS02識別子を有するヘッダを含む、記述子ファイルも検索する。場合によっては、記述子ファイルの名称および/またはファイル名は、種類および/または識別子を含んでもよい。他の場合では、記述子ファイルのヘッダ内に記憶されるメタデータは、種類および/または識別子を含んでもよい。さらに他の場合では、ファイルプロセッサ222は、合致する種類および/または識別子について、記述子ファイル内のオブジェクトのファイルエントリおよび/または名前を検索しなければならない場合がある。
要求されたプロセスデータを取り出すために、図2の例示的ディスプレイインターフェース102は、プロセスデータリーダ224を含む。例示的プロセスデータリーダ224は、プロセスデータの記述子ファイルの検索要求に関連付けられる識別子を使用する。プロセスデータリーダ224は、ファイルプロセッサ222から記述子ファイルを受信する。また、例示的プロセスデータリーダ224は、記述子ファイルがどのように構造化および/または配列されるかを判定するために、スキーマ204にアクセスする場合がある。次いで、プロセスデータリーダ224は、無関係のセクションおよび/または物理ファイルを検索する必要なく、記述ファイルからのプロセスデータに比較的素早くアクセスするために、配列情報を使用してもよい。
例示的プロセスデータリーダ224は、記述子ファイルを開き、要求と合致するオブジェクトを有するファイルエントリについて記述子ファイルをスキャンすることによって、プロセスデータを取り出す。プロセスデータリーダ224は、要求されたプロセスデータに対応する物理ファイルを選択するために、オープンファイル記述内の情報を使用してもよい。次いで、プロセスデータリーダ224は、どのセクションが要求に対応するかを識別するために、オープンファイル記述内のセクションを審査してもよい。各セクションについて、プロセスデータリーダ224は、どのファイルエントリが要求に合致する名前、種類、および/または識別子を有するオブジェクトを含むかを判定してもよい。次いで、例示的プロセスデータリーダ224は、オブジェクトからプロセスデータを取り出す。プロセスデータを取り出すために、プロセスデータリーダ224は、記憶されるプロセスデータをコピーする。プロセスデータリーダ224は、すべての要求されたプロセスデータが取り出されるまで、記述子ファイルからプロセスデータを取り出すことを継続する。ファイルエントリオブジェクトが式を含む例では、例示的プロセスデータリーダ224は、式によって特定される動作を実行および/または実施する。例えば、プロセスデータリーダ224は、式オブジェクトによって特定される変数の値に対する数学演算を実施してもよい。
プロセスデータの要求が、ファイルプロセッサ222に2つ以上の記述子ファイルを位置付けさせる例では、例示的プロセスデータリーダ224は、それぞれの記述子ファイルからプロセスデータを取り出し、取り出されたプロセスデータを集約および/またはコンパイルする。また、プロセスデータリーダ224は、どのプロセスデータがどの記述子ファイルから取り出されたかをラベル付けおよび/またはマークしてもよい。次いで、プロセスデータリーダ224は、表示のために、コンパイルされたプロセスデータをレンダラー228に送信してもよい。
例示的レンダラー228は、要求されたプロセスデータの表示を生成する。また、例示的レンダラー228は、記述子ファイル内に含まれていない、要求されたプロセスデータについて、データベース124にもアクセスする。プロセスデータがどのように表示されるかを判定するために、例示的レンダラー228は、対応するEDDLファイルを位置付けてもよい。レンダラー228は、プロセスデータを、EDDLファイル内のパラメータおよび/または参照と合致させてもよい。例示的レンダラー228は、EDDLファイル内の命令を実行することによって、ユーザインターフェース132を介して表示するためのグラフを生成する。レンダラー228は、任意のメニュー、表示、および/またはフォーマット情報を判定するために、命令を実行する場合がある。
また、例示的レンダラー228は、プロセスデータへの参照について、EDDLファイルを読み込む。いくつかの例では、EDDLファイルの部分は、記述子ファイル内に記憶されるプロセスデータに対応するリンクおよび/またはファイルディレクトリ位置を含んでもよい。例えば、EDDLファイルは、ポンプ速度データフィールドを含んでもよい。また、EDDLファイルは、記述子ファイル内のポンプ速度変数オブジェクトへのリンクを含んでもよい。例示的レンダラー228は、記述子ファイルからのポンプ速度値(例えば、プロセスデータ)を対応するEDDLファイルに挿入して、ポンプ速度値のグラフィック表現を生成するために、リンクを使用する。
また、レンダラー228は、プロセスデータの型をテンプレートと合致させてもよい。これらの例では、レンダラー228は、プロセスデータを対応するデータフィールドに埋め込む、および/または挿入してもよい。データフィールドのそれぞれは、互換性のあるプロセスデータの型を記述する、仕様リストを含んでもよい。次いで、レンダラー228は、テンプレートのデータフィールド内のプロセスデータをコンパイルすることによって、表示ファイルを生成してもよい。表示ファイルは、例えば、プロセスデータの位置、要求されたプロセスデータのグラフィック表現、および/またはデータフィールドを特定する。
さらに、例示的レンダラー228は、プロセスデータがどのように表示されるかを特定する、表示変換ファイルエントリオブジェクトを実行する。レンダラー228は、表示変換ファイルエントリオブジェクトに基づき、表示ファイルを構築してもよい。例示的レンダラー228は、対応するプロセスデータを用いて、記述されるグラフを生成するために、表示ファイルを実行する。例示的レンダラー228は、図2のディスプレイインターフェース102内に示されるが、ディスプレイインターフェース102は、プロセス制御情報を表示するデバイスとは別個である場合がある他の例では、レンダラー228は、デバイス内に位置してもよい。これらの例では、レンダラー228は、表示ファイルをデバイスに送信する(例えば、インターネットおよび/またはLAN110を介して)。
例示的レンダラー228は、表示ファイルを、ユーザが、例えば、ユーザインターフェース132を介して閲覧可能である、フォーマットに処理する(例えば、レンダリングする)。例示的レンダラー228は、プロセス制御情報のグラフ(単数または複数)を表示するデバイス(例えば、ワークステーション106)のディスプレイ寸法に基づき、表示を生成する場合がある。表示ファイルをレンダリングした後、例示的レンダラー228は、要求されたプロセス制御情報をグラフで表示するために、レンダリングされた表示を、ワークステーション106内のアプリケーション130に送信する。
例示的ディスプレイインターフェース102およびファイルジェネレータ108が図2に図示されてきたが、図2に図示されるサーバ、プラットフォーム、インターフェース、データ構造、要素、プロセス、および/またはデバイスのうちの1つ以上が、任意の方法で組み合わされ、分割され、再配列され、除外され、排除され、および/または実装されてもよい。さらに、例示的エディタ202、例示的スキーマ204、例示的コンパイラ206、例示的スキャナ208、例示的トークナイザ210、例示的インタプリタ212、例示的データベースインターフェース214、例示的受信部220、例示的ファイルプロセッサ222、例示的プロセスデータリーダ224、例示的レンダラー228、ならびに/または、より一般的には、例示的ディスプレイインターフェース102および/もしくはファイルジェネレータ108は、ハードウェア、ソフトウェア、ファームウェア、ならびに/またはハードウェア、ソフトウェア、および/もしくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、例えば、例示的エディタ202、例示的スキーマ204、例示的コンパイラ206、例示的スキャナ208、例示的トークナイザ210、例示的インタプリタ212、例示的データベースインターフェース214、例示的受信部220、例示的ファイルプロセッサ222、例示的プロセスデータリーダ224、例示的レンダラー228、ならびに/または、より一般的には、例示的ディスプレイインターフェース102および/もしくはファイルジェネレータ108のうちのいずれも、1つ以上の回路(単数または複数)、プログラム可能なプロセッサ(単数または複数)、特定用途向け集積回路(単数または複数)(ASIC(単数または複数))、プログラマブル論理デバイス(単数または複数)(PLD(単数または複数))、および/またはフィールドプログラマブル論理デバイス(単数または複数)(FPLD(単数または複数))等によって実装することができる。
本特許のいずれかの装置請求項が、純粋にソフトウェアおよび/またはファームウェア実装を網羅するものとして読まれる場合、例示的エディタ202、例示的スキーマ204、例示的コンパイラ206、例示的スキャナ208、例示的トークナイザ210、例示的インタプリタ212、例示的データベースインターフェース214、例示的受信部220、例示的ファイルプロセッサ222、例示的プロセスデータリーダ224、および/または例示的レンダラー228のうちの少なくとも1つは、そのソフトウェアおよび/またはファームウェアを記憶する、メモリ、DVD、CD等のコンピュータ可読媒体を含むことが、本明細書に明示的に定義される。さらにまた、例示的ディスプレイインターフェース102および/もしくはファイルジェネレータ108は、図2に図示されるものに加えて、またはそれらの代わりに、1つ以上の要素、プロセス、および/もしくはデバイスを含んでもよく、ならびに/または図示される要素、プロセス、およびデバイスのうちのいずれか2つ以上もしくはすべてを含んでもよい。
図3は、ブロックモデル図で描写される、図2の例示的スキーマ204を示す。例示的スキーマ204は、記述子ファイルの階層を示す。他の例では、スキーマ204は、ブロックの他の配列および/または階層を含んでもよい。例示的ディスプレイインターフェース102は、プロセスデータが記述子ファイル内のどこに位置するかを判定するために、スキーマ204を使用してもよい。記述子ファイルは、異なる数のブロックを含んでもよいが、記述子ファイル内の異なる種類のブロック間の関係は、例示的スキーマ204と一致する。
例示的スキーマ204は、共通ファイルフォーマットとして参照される、記述子ファイルインスタンス302を含む。共通ファイルフォーマットは、任意の種類のプロセス制御アプリケーションによってアクセスすることができる、記述子ファイル内のプロセスデータの普遍性に言及する。記述子ファイルインスタンス302は、ヘッダ304を含む。プロセスデータの要求をヘッダ304内の情報と合致させるために、ディスプレイインターフェース102が、記述子ファイルインスタンス302にアクセスするだけでよいように、例示的ヘッダ304は、記述子ファイルインスタンス302の比較的高いレベルに位置付けられる。この例では、ヘッダ304は、記述子ファイルインスタンス302に関連付けられるフィールド機器の製造業者の種類およびフィールド機器の種類のためのフィールドを含む。また、例示的ヘッダ304は、記述子ファイルインスタンス302の主バージョン、副バージョン、保守バージョン、および構築バージョンも含む。他の例では、ヘッダ304は、フィールド機器の識別子(例えば、シリアル番号)を含んでもよい。
また、記述子ファイルインスタンス302は、ファイル本体306も含む。ファイル本体306は、階層フォーマットに配列されたプロセスデータを記憶する。多くの例では、プロセスデータの1つ以上の物理ファイルは、ファイル本体306に記憶される。例示的ファイル本体306は、各物理ファイルのオープンファイル記述308を含む。図示される例では、オープンファイル記述308は、オープンファイル記述308にファイル本体306を参照させるために使用される場合がある、記号名および記号番号を含む。また、オープンファイル記述308は、記憶される対応するプロセスデータを記述する、および/または一般化するためのフィールドを含んでもよい。
オープンファイル記述308は、セクション309を含む。例示的スキーマ204は、セクション309を示すが、オープンファイル記述308は、追加セクションを含んでもよい。セクション309は、フィールド機器の共通コンポーネントからのものと実質的に同様の、および/または比較的関連する、プロセスデータを含んでもよい。例示的セクション309は、オープンファイル記述308によって参照される場合がある、および/またはインデックスが付けられる場合がある、セクション名フィールドと、セクションインデックスフィールドとを含む。代替として、セクションインデックスは、セクション309内に含まれる、いくつかのファイルエントリを参照する場合がある。
例示的セクション309は、ファイルエントリ310を含む。図3は、ファイルエントリ310を示すが、他の例は、セクション309内に含まれる複数のファイルエントリを含んでもよい。例示的ファイルエントリ310は、エントリ名フィールドと、エントリ型フィールドと、カウントフィールドとを含む。エントリ名フィールドは、ファイルエントリ310を識別してもよく、また、セクションインデックスによって参照されてもよい。エントリ型は、ファイルエントリ310に関連付けられるオブジェクトの型を特定する。例えば、ファイルエントリ310は、変数型フィールドと、値フィールドと、品質フィールドとを含む、変数オブジェクト312に関連付けられてもよい。変数オブジェクト312は、プロセスデータ(例えば、状態、値、イベント、パラメータ情報等)を値フィールド内に記憶する。変数型フィールドは、変数オブジェクト312の型を特定する。変数オブジェクト312に関連付けられる場合がある、変数型314の例が示される。
さらに、また、ファイルエントリ310は、式オブジェクトおよび/または表示変換オブジェクト(図示せず)を含んでもよい。例えば、式オブジェクトは、式フィールドと、値フィールドとを含んでもよい。式フィールドは、値フィールドに記憶されるプロセスデータに対して実施される、数学上の計算を特定する。別の例では、表示変換オブジェクトは、命令フィールドと、値フィールドとを含む場合がある。命令フィールドは、例えば、値フィールド内に記憶されるプロセスデータを表示するためのXSLT命令を含んでもよい。
また、例示的ファイルエントリ310は、値アレイオブジェクト316と、リストオブジェクト318と、群オブジェクト320と、参照アレイオブジェクト322と、エントリアレイオブジェクト324とを含んでもよい。例示的オブジェクト316〜324は、プロセスデータ値のセットおよび/またはグループを記憶するように構成される。セットおよび/またはグループを記憶するために、オブジェクト316〜324は、プロセスデータをネスト化変数オブジェクトとして記憶するファイルエントリを含む、ネスト化セクションを含む。このようにして、オブジェクト316〜314は、プロセスデータのグループおよび/またはアレイを記憶するために、ネスト化セクションを使用する。ネスト化セクションは、スキーマ204のセクション309と同様のフォーマットおよび階層を含む。したがって、ネスト化セクションは、ネスト化変数オブジェクトならびに/またはネスト化アレイ、群、および/もしくはリストに関連付けられる、ネスト化ファイルエントリを含んでもよい。例えば、リストオブジェクト318は、変数オブジェクトに関連付けられるファイルエントリのネスト化セクションを含有する場合がある。別の例では、値アレイオブジェクト316は、変数オブジェクトのアレイへのインデックスが付けられた、ファイルエントリのネスト化セクションを含有する場合がある。
図3の例示的スキーマ204を使用することによって、ディスプレイインターフェース102は、記述子ファイルインスタンス302をプロセスデータの要求と合致させるためにヘッダ304を使用することによって、プロセスデータを比較的素早く位置付ける場合がある。次いで、ディスプレイインターフェース102は、対応するセクション309について、オープンファイル記述308をスキャンし、要求されたプロセスデータを記憶する、オブジェクト312および316〜324のうちの1つを含む、関連ファイルエントリ310について、セクション309をスキャンしてもよい。プロセスデータは、例示的スキーマ204に準拠する記述子ファイル内に記憶されるため、異なるアプリケーション(例えば、アプリケーション130)は、アプリケーションの種類に関わらず、ディスプレイインターフェース102を介して、プロセスデータにアクセスする場合がある。換言すれば、例示的スキーマ204は、プロセスデータをアプリケーションが読み取り可能なフォーマットに変換するためのインターフェースおよび/またはアダプタなく、プロセスデータが普遍的にアクセスされるようにすることができる。
図4は、図3の例示的スキーマ204を、XMLオブジェクトモデル図で示す。スキーマ204の構造は、図3に関連して記述されるブロックモデル図に類似する。図4のスキーマ204を実装するための命令を以下に示す。
スキーマ204を表す例示的命令は、記述子ファイルを検証するために、図2のスキャナ208によって実行されてもよい。例えば、命令は、記述子ファイル内で特定されるオブジェクトの型が、確実に、スキーマ204内で特定および/または定義されるようにするために使用されてもよい(例えば、<xs:simpleType name=”T_EntryTypes”>)。加えて、命令は、変数オブジェクト内の値の型が、確実に、スキーマ204内で特定および/または定義されるようにするために使用されてもよい(例えば、<xs:simpleType name=”T_AllVariableTypes”>)。この検証は、プロセスデータが、確実に、大部分のアプリケーションがアクセス可能なフォーマットで記憶されるようにする。さらに、命令は、記述子ファイルの構造が、確実に、オープンファイル記述、セクション、ファイルエントリ、および/もしくはスキーマ204内で特定されるオブジェクト(例えば、</xs:sequence>)の構造ならびに/またはそれらの間の関係と合致するようにするために使用されてもよい。
図5は、図3および図4の例示的スキーマ204に準拠する、例示的記述子ファイル500のブロックモデル図を示す。図5は、例示的記述子ファイル500を示すが、他の例は、追加の、もしくはより少ない、オープンファイル記述、セクション、ファイルエントリ、および/またはオブジェクトを含んでもよい。例示的記述子ファイル500は、プロセスデータを、多くのプロセス制御アプリケーションによってアクセスすることができる、普遍的および/または共通フォーマットで記憶する。いくつかの例では、記述子ファイル500および対応するEDDLは、携帯デバイスに記憶されてもよい。携帯デバイスは、記述子ファイル内に記憶されるプロセスデータがどのように表示されるかを定義するために、EDDLファイルを使用してもよい。このようにして、プロセス制御人員は、プロセス制御システム104にアクセスする必要なく、プロセスデータにアクセスする、および/またはプロセスデータを閲覧することができる。例示的記述子ファイル500を実装および/または定義するための命令を以下に示す。
図示される例では、記述子ファイル500は、記述子ファイルインスタンス502を含む。記述子ファイルインスタンス502は、ヘッダ504と、ファイル本体506とを含む。ファイル本体506は、フィールド機器のコンポーネント1によって生成されるプロセスデータを記憶する第1の物理ファイルに対応する、第1のオープンファイル記述508(例えば、<SymbolName>Component 1</SymbolNam>)と、フィールド機器のコンポーネント2によって生成されるプロセスデータを記憶する第2の物理ファイルに対応する、第2のオープンファイル記述510(例えば、<SymbolName>Component 2</SymbolNam>)とを含む。第1のオープンファイル記述508は、セクション514および515に区分化され、第2のオープンファイル記述510は、セクション516および517に区分化される。セクション514〜517は、コンポーネントに関連付けられる関連プロセスデータのそれぞれのグループに対応する場合がある。
セクション514は、セクション1というセクション名を割り当てられ、群オブジェクト520に関連付けられるファイルエントリ518(例えば、<EntryName>Entry A</EntryName>)を含む。また、セクション514は、エントリアレイオブジェクト524に関連付けられるファイルエントリ522(例えば、<EntryName>Entry B</EntryName>)も含む。上記にリストされる例示的命令は、オブジェクト520および524のファイルエントリを有するセクションに対する命令を含まない。しかしながら、他の例では、例示的群オブジェクト520および/またはエントリアレイオブジェクト524は、プロセスデータを記憶する変数オブジェクトを含むネスト化ファイルエントリを有する、1つ以上のネスト化セクションを含んでもよい。ネスト化セクションおよび/またはファイルエントリのそれぞれは、それぞれのファイルエントリ518および522内のアレイフィールドによってインデックスが付けられてもよい。
セクション515は、セクション2というセクション名を割り当てられ、リストオブジェクト528に関連付けられるファイルエントリ526(例えば、<EntryName>Entry C</EntryName>)を含む。また、セクション515は、参照アレイオブジェクト532に関連付けられるファイルエントリ530(例えば、<EntryName>Entry D</EntryName>)も含む。同様に、セクション516は、セクション3というセクション名を割り当てられ、値アレイオブジェクト536に関連付けられるファイルエントリ534(例えば、<EntryName>Entry E</EntryName>)を含む。また、セクション516は、変数オブジェクト540に関連付けられるファイルエントリ538(例えば、<EntryName>Entry F</EntryName>)も含む。変数オブジェクト540は、「浮動小数点型」の変数型に関連付けられ、記憶数値「32.5」(例えば、プロセスデータ)を含む。
さらに、セクション517は、セクション4というセクション名を割り当てられ、群オブジェクト544に関連付けられるファイルエントリ542(例えば、<EntryName>Entry G</EntryName>)を含む。また、セクション517は、エントリアレイオブジェクト548に関連付けられるファイルエントリ546(例えば、<EntryName>Entry H</EntryName>)も含む。この例では、群オブジェクト520は、群オブジェクト544とは異なるプロセスデータのグループおよび/またはセットを記憶する。同様に、エントリアレイオブジェクト524は、エントリアレイオブジェクト548とは異なるプロセスデータのアレイを記憶する。
図6は、記述子ファイル内に記憶されたプロセスデータを表示する、図1のアプリケーション130を示す。この例では、ユーザは、TANK101識別子を有するフィールド機器に関連付けられるプロセスデータの閲覧要求を提出してもよい。例示的ディスプレイインターフェース102は、要求を受信し、ヘッダ内にTANK101識別子を含む記述子ファイルを位置付ける。次いで、ディスプレイインターフェース102は、要求されたプロセスデータ(例えば、レベル、温度、下範囲、および上範囲)の記述子ファイルを検索するために、図3および図4の例示的スキーマ204を使用してもよい。
レベルパラメータは、どれだけの液体がTank101フィールド機器内に存在するかを百分率で特定してもよい。温度パラメータは、液体の温度を特定してもよい。下範囲パラメータは、警報がトリガされる前のTank101フィールド機器内の流体の最小閾値を特定してもよい。同様に、上範囲パラメータは、警報がトリガされる前のTank101フィールド機器内の流体の最大閾値を特定してもよい。図6の例は、記述子ファイルが、Tank101フィールド機器内のセンサによって測定されるプロセスデータ(例えば、レベルおよび温度)を記憶する場合があることを示す。また、記述子ファイルは、Tank101フィールド機器の特性(例えば、下範囲および上範囲)を定義する、パラメータ化プロセスデータも記憶する。プロセスデータは、記述子ファイルのファイルエントリ内に含まれる、それぞれの変数オブジェクトの値フィールド内に記憶されてもよい。
また、例示的ディスプレイインターフェース102は、プロセスデータがどのように表示されるかを判定するために、Tank101フィールド機器に関連付けられるEDDLファイルにアクセスする場合がある。例えば、EDDLファイルは、プロセスデータが、第1のパネル602内に数値で表示され、第2のパネル604内にグラフで表示されることを特定してもよい。また、EDDLファイルは、パネル602および604内のデータフィールドの位置を特定してもよい。第2のパネル604は、Tank101フィールド機器の流体レベル608を示す、タンクグラフ606を含む。プロセスデータは、共通および/または普遍的ファイルフォーマットとして記述子ファイルに記憶されるため、アプリケーション130は、プロセスデータをアプリケーション130特有のフォーマットに変換する必要なく、プロセスデータをパネル602および604内に表示することができる。
図1および図2のディスプレイインターフェース102ならびに/またはファイルジェネレータ108を実装するための例示的プロセス700、800、および900を表すフローチャートを、図7、図8A、図8B、および図9に示す。この例では、プロセス700、800、および900は、機械可読命令を使用して、図10に関連して以下で説明される例示的プロセッサシステムP10内に示される、プロセッサP12等のプロセッサによって実行するためのプログラムの形態で実装される場合がある。このプログラムは、プロセッサP12に関連付けられる、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)、またはメモリ等のコンピュータ可読媒体上に記憶されるソフトウェア内に具現化されてもよいが、代替として、プログラム全体および/またはその一部を、プロセッサP12以外のデバイスによって実行すること、ならびに/あるいはファームウェアもしくは専用ハードウェア内に具現化することも可能である。さらに、例示的プログラムは、図8A、図8B、図9A、および図9Bに図示されるフローチャートを参照して説明されるが、代替として、例示的ディスプレイインターフェース102および/またはファイルジェネレータ108を実装する多くの他の方法を使用してもよい。例えば、ブロックを実行する順序が変更されてもよく、および/または記載されるブロックのうちのいくつかが変更、排除、もしくは組み合わされてもよい。
上述のように、図7、図8A、図8B、および図9の例示的プロセスは、ハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュメモリ、ランダムアクセスメモリ(RAM)、および/または情報が任意の期間(例えば、延長された期間、永久的、短いインスタンス、一時的にバッファリングする間、および/または情報をキャッシングする間)記憶される任意の他の記憶媒体等の有形のコンピュータ可読媒体上に記憶される、コード化された命令(例えば、コンピュータ可読命令)を使用して、実装することができる。本明細書で使用される場合、有形のコンピュータ可読媒体という用語は、任意の種類のコンピュータ可読記憶装置を含み、伝播信号を除くことが明示的に定義される。加えて、または代替として、図7、図8A、図8B、および図9の例示的プロセスは、ハードディスクドライブ、フラッシュメモリ、読み取り専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュメモリ、ランダムアクセスメモリ、および/または情報が任意の期間(例えば、延長された期間、永久的、短いインスタンス、一時的にバッファリングする間、および/または情報をキャッシングする間)記憶される任意の他の記憶媒体等の非一過性コンピュータ可読媒体上に記憶される、コード化された命令(例えば、コンピュータ可読命令)を使用して実装されてもよい。本明細書で使用される場合、非一過性コンピュータ可読媒体という用語は、任意の種類のコンピュータ可読媒体を含み、伝播信号を除くことが明示的に定義される。
図7の例示的プロセス700は、アプリケーション内に表示するために、記述子ファイル内に記憶されるプロセスデータを取り出す。例示的プロセス700は、ユーザからプロセスデータへのアクセス要求を受信する(例えば、受信部220を介して)(ブロック702)ことによって開始する。例示的プロセス700は、要求内に含まれる情報と合致するヘッダを含む記述子ファイルを検索する(例えば、ファイルプロセッサ222を介して)(ブロック704)。次いで、例示的プロセス700は、取り出された記述子ファイルの構造を判定するために、スキーマ(例えば、スキーマ204)にアクセスする(例えば、プロセスデータリーダ224を介して)(ブロック706)。
例示的プロセス700は、要求と合致するファイル本体内のオブジェクトについて、記述子ファイルをスキャンする(例えば、プロセスデータリーダ224を介して)(ブロック708)。プロセス700は、プロセスデータに関連付けられるオープンファイル記述を判定することによって、オブジェクトを位置付けてもよい。オープンファイル記述内で、次いで、プロセス700は、プロセスデータに対応するセクションを検索する。次いで、例示的プロセス700は、要求されたプロセスデータを記憶する値フィールドを含む変数オブジェクトを有するファイルエントリについて、セクションを検索してもよい。いくつかの例では、プロセス700は、合致するプロセスデータを有する変数オブジェクトが位置付けられるまで、ネスト化セクション、ファイルエントリ、および/またはオブジェクトについて、オブジェクトをスキャンしてもよい。オブジェクトは、プロセスデータを記憶する、および/またはプロセスデータにインデックスを付けることができる、任意のアレイ、リスト、群等を含んでもよい。
例示的プロセス700は、プロセスデータが記述子ファイル内に位置するか否かを判定する(例えば、プロセスデータリーダ224を介して)(ブロック710)ことによって継続する。例示的プロセス700が、記述子ファイル内にプロセスデータを位置付けることができない場合、プロセス700は、コントローラデータベース(例えば、図1のデータベース124)から要求されたプロセスデータにアクセスする(ブロック714)。コントローラデータベースは、プロセス制御システム104全体のプロセスデータの集約を記憶してもよい。いくつかの例では、コントローラデータベースを検索することは、非効率的かつ/または時間がかかる場合がある。代替として、例示的プロセス700は、他の記述子ファイルを検索してもよい。しかしながら、例示的プロセス700が、要求されたプロセスデータを位置付けることができる場合(ブロック710)、プロセス700は、プロセスデータを取り出し、コンパイルする(例えば、プロセスデータリーダ224を介して)(ブロック712)。
次いで、図7の例示的プロセス700は、取り出す追加のプロセスデータが存在するか否かを判定する(例えば、プロセスデータリーダ224を介して)(ブロック716)。追加のプロセスデータが存在する場合、例示的プロセス700は、要求されたプロセスデータと合致する変数オブジェクトについて、記述子ファイルを検索する(ブロック708)。しかしながら、取り出す追加のプロセスデータが存在しない場合、例示的プロセス700は、プロセスデータに対して、オブジェクト内の式によって特定される計算を実施することによって、式オブジェクトを実行する(例えば、プロセスデータリーダ224を介して)(ブロック718)。式オブジェクトが存在しない場合、例示的プロセス700は、ブロック718を省略してもよい。加えて、取り出されたプロセスデータが表示変換オブジェクトに対応する場合、例示的プロセス700は、対応するプロセスデータを表示するために、オブジェクトによって特定される命令を実行する(例えば、プロセスデータリーダ224および/またはレンダラー228を介して)(ブロック720)。次いで、例示的プロセス700は、表示のためのプロセスデータをアプリケーション内にレンダリングする(例えば、レンダラー228を介して)(ブロック722)。例示的プロセス700は、プロセスデータがテンプレート内にどのように表示されるかを特定するEDDLファイルを使用することによって、表示のためのプロセスデータをレンダリングしてもよい。プロセス700は、レンダリングされるアプリケーションにレンダリングすることができる、または送信することができる、表示ファイルを生成するように、プロセスデータを有するテンプレートをコンパイルしてもよい。プロセスデータが表示されると、例示的プロセス700は終了する。
図8Aおよび図8Bの例示的プロセス800は、記述子ファイルを作成する。例示的プロセス800は、プロセスデータの記憶要求に応えて、または代替として、プロセス制御人員による記述子ファイルの作成要求に答えて、記述子ファイルを作成してもよい。図8Aの例示的プロセス800は、例えば、プロセスデータの記述子ファイルへの記憶要求を受信する(例えば、エディタ202を介して)(ブロック802)ことによって開始する。次いで、例示的プロセス800は、プロセスデータ間の関係を判定する(例えば、エディタ202を介して)(ブロック804)。関係を判定することは、プロセスデータの型を識別すること、フィールド機器の同一のコンポーネント内の関連付けられるプロセスデータを識別すること、および/または比較的類似するプロセスデータを識別することを含む場合がある。
次いで、例示的プロセス800は、例えば、図1および図2の記述子ファイルデータベース126内の記述子ファイルのインスタンスを作成することによって、プロセスデータの関係に基づき、記述子ファイルを作成する(例えば、エディタ202を介して)(ブロック806)。例示的プロセス800は、スキーマ(例えば、図3および図4の例示的スキーマ204)に基づき、インスタンスを作成してもよい。次いで、例示的プロセス800は、プロセスデータ内に含まれる識別情報および/または記述子ファイルの作成要求に基づき、記述子ファイルのヘッダを作成する(例えば、エディタ202を介して)(ブロック808)。次いで、例示的プロセス800は、ファイル本体を作成してもよい(例えば、エディタ202を介して)(ブロック810)。
例示的プロセス800は、プロセスデータの関係に基づいて作成される、各物理ファイルのオープンファイル記述を作成する(例えば、エディタ202を介して)(ブロック812)ために、スキーマを使用する。また、例示的プロセス800は、オープンファイル記述(単数または複数)にファイル本体を参照させてもよい。各オープンファイル記述に対して、例示的プロセス800は、スキーマおよび/またはプロセスデータの関係に基づき、1つ以上のセクションを作成する(例えば、エディタ202を介して)(ブロック814)。各セクションに対して、例示的プロセス800は、スキーマおよび/またはプロセスデータの関係に基づき、少なくとも1つのファイルエントリを作成する(例えば、エディタ202を介して)(ブロック816)。
図8Bの例示的プロセス800は、ファイルエントリのそれぞれに関連付けるために、オブジェクトの型を判定する(例えば、エディタ202を介して)(ブロック818)ことによって継続する。ファイルエントリの群および/またはリストオブジェクト内に記憶されるプロセスデータについて、例示的プロセスは、ファイルエントリ内にそれぞれの群および/またはリストオブジェクトを作成する(例えば、エディタ202を介して)(ブロック820)。次いで、例示的プロセス800は、群および/またはリストオブジェクトに、ファイルエントリおよび/または対応するセクションへのインデックスを付ける(例えば、エディタ202を介して)(ブロック822)。次いで、例示的プロセス800は、プロセスデータを、群および/またはリストオブジェクト内に含まれるネスト化ファイルエントリの変数オブジェクトに記憶してもよい(例えば、エディタ202および/またはデータベースインターフェース214を介して)(ブロック824)。
式および/または表示変換オブジェクト(例えば、E/DT)に関連付けられて記憶されるプロセスデータについて、例示的プロセス800は、プロセスデータおよび/または要求内に含まれる情報に基づき、それぞれの式オブジェクトおよび/または表示変換オブジェクトを作成する(例えば、エディタ202を介して)(ブロック826)。例示的プロセス800は、プロセス制御人員および/またはEDDLファイルによって提供される数式を生成することによって、式オブジェクトを作成してもよい。同様に、例示的プロセス800は、EDDLファイルおよび/またはプロセス制御人員によって特定されるディスプレイ情報に基づき、表示変換オブジェクトを作成してもよい。次いで、例示的プロセス800は、プロセスデータを、変数オブジェクトとして式および/または表示変換オブジェクトに記憶し、式および/または表示変換オブジェクトを、それぞれのファイルエントリに記憶し、ファイルエントリに適切なセクションへのインデックスを付けてもよい(例えば、エディタ202を介して)(ブロック828)。
アレイ(例えば、参照アレイ、値アレイ、および/またはエントリアレイ)で記憶されるプロセスデータについて、例示的プロセス800は、プロセスデータを記憶するために、いくつかのファイルエントリに基づき、オブジェクトのカウントフィールドの値を生成する(例えば、エディタ202を介して)(ブロック830)。次いで、例示的プロセス800は、プロセスデータを、アレイオブジェクト内に含まれる変数オブジェクトに記憶するために、ネスト化セクションおよび/またはファイルエントリを作成してもよい(例えば、エディタ202および/またはデータベースインターフェース214を介して)(ブロック832)。次いで、例示的プロセス800は、ネスト化ファイルエントリにアレイオブジェクトへのインデックスを付けてもよい(例えば、エディタ202を介して)(ブロック834)。
例示的プロセス800が、比較的高いレベルのセクション、ファイルエントリ、および/またはオブジェクトを作成することを記述するが、また、例示的プロセス800は、ブロック812〜834を介して、スキーマおよび/またはプロセスデータの関係に基づき、ネスト化構造(例えば、セクション、ファイルエントリ、オブジェクト等)を作成してもよい。記述子ファイルを作成した後、例示的プロセス800は、スキーマを使用して、記述子ファイルを検証する(例えば、スキャナ208を介して)(ブロック836)。また、例示的プロセス800は、エラーについて記述子ファイルをスキャンする、記述子ファイルをトークン化する、および/または記述子ファイルを転換してもよい。検証がいずれかのエラーを検出する場合、例示的プロセス800は、エラーを訂正する、および/またはプロセス制御人員にエラーを訂正するよう促してもよい。記述子ファイルが検証に合格した後、次いで、例示的プロセス800は、記述子ファイルを記述子ファイルデータベース126に記憶する(例えば、エディタ202および/またはコンパイラ206を介して)(ブロック838)。次いで、例示的プロセスは、終了する場合がある。
図9の例示的プロセス900は、プロセスデータを、既に作成された記述子ファイルに記憶する。例示的プロセス900は、コントローラからプロセスデータを受信する(例えば、データベースインターフェース214を介して)(ブロック902)ことによって開始する。他の例では、プロセス900は、図1のデータベース124ならびに/またはプロセス制御システム104に関連付けられる任意の他のプロセッサおよび/もしくはサーバからプロセスデータを受信してもよい。次いで、例示的プロセス900は、受信したプロセスデータに対応する記述子ファイルデータベース126内の記述子ファイルを位置付ける(例えば、データベースインターフェース214を介して)(ブロック904)。例示的プロセス900は、合致する記述子ファイルを位置付けるために、ヘッダおよび/または変数オブジェクトの名前を使用してもよい。
合致する記述子ファイルを位置付けた後、例示的プロセス900は、記憶されるプロセスデータに対応する、ファイル本体と、オープンファイル記述とを位置付ける(例えば、データベースインターフェース214を介して)(ブロック906)。次いで、例示的プロセス900は、記憶されるプロセスデータと合致する、セクションと、セクションのファイルエントリ内のオブジェクトとを位置付ける(例えば、データベースインターフェース214を介して)(ブロック908および910)。オブジェクトがネスト化セクションおよび/またはファイルエントリを含む例では、例示的プロセス900は、プロセスデータに対応するネスト化オブジェクトを位置付けてもよい。次いで、例示的プロセス900は、プロセスデータを、プロセスデータと合致する変数オブジェクトの値フィールドに記憶してもよい(例えば、データベースインターフェース214を介して)(ブロック912)。
図9の例示的プロセス900は、記憶する追加のプロセスデータが存在するか否かを判定することによって継続する。追加のプロセスデータが存在する場合、例示的プロセス900は、ブロック904に戻り、対応する記述子ファイルを位置付ける。しかしながら、記憶する追加のプロセスデータが存在しない場合、例示的プロセス900は、記述子ファイルへのアクセスセッションを終了する、および/または新たに追加されたプロセスデータを有する記述子ファイルを、記述子ファイルデータベース126に記憶する。次いで、例示的プロセス900は、終了する場合がある。
図10は、本明細書に記載される例示的方法および装置を実装するために使用される場合がある、例示的プロセッサシステムP10のブロック図である。例えば、図1および/または図2の例示的エディタ202、例示的スキーマ204、例示的コンパイラ206、例示的スキャナ208、例示的トークナイザ210、例示的インタプリタ212、例示的データベースインターフェース214、例示的受信部220、例示的ファイルプロセッサ222、例示的プロセスデータリーダ224、例示的レンダラー228、ならびに/または、より一般的には、例示的ディスプレイインターフェース102および/もしくはファイルジェネレータ108を実装するために、例示的プロセッサシステムP10と同様または同一のプロセッサシステムが使用されてもよい。例示的プロセッサシステムP10は、複数の周辺機器、インターフェース、チップ、メモリ等を含むように以下に説明されるが、これらの要素のうちの1つ以上が、例示的エディタ202、例示的スキーマ204、例示的コンパイラ206、例示的スキャナ208、例示的トークナイザ210、例示的インタプリタ212、例示的データベースインターフェース214、例示的受信部220、例示的ファイルプロセッサ222、例示的プロセスデータリーダ224、例示的レンダラー228、ならびに/または、より一般的には、例示的ディスプレイインターフェース102および/もしくはファイルジェネレータ108のうちの1つ以上を実装するために使用される他の例示的プロセッサシステムから削除されてもよい。
図10に示されるように、プロセッサシステムP10は、相互接続バスP14に接続される、プロセッサP12を含む。プロセッサP12は、図10では完全にオンチップであるように描写されるが、代替として、完全に、または部分的にオフチップであり、専用電気接続を介して、および/または相互接続バスP14を介して、プロセッサP12に直接接続される場合がある、レジスタセットまたはレジスタ空間P16を含む。プロセッサP12は、任意の好適なプロセッサ、処理ユニット、またはマイクロプロセッサであってもよい。図10には示されていないが、システムP10は、マルチプロセッサシステムであってもよく、したがって、プロセッサP12と同一である、または類似し、相互接続バスP14に通信可能に接続される、1つ以上の追加プロセッサを含んでもよい。
図10のプロセッサP12は、メモリコントローラP20と、周辺機器入力/出力(I/O)コントローラP22とを含む、チップセットP18に接続される。周知であるように、チップセットは、典型的に、チップセットP18に接続される1つ以上のプロセッサがアクセス可能である、もしくはチップセットP18に接続される1つ以上のプロセッサによって使用される、I/Oおよびメモリ管理機能、ならびに複数の汎用および/または専用レジスタ、タイマ等を提供する。メモリコントローラP20は、プロセッサP12(または、複数のプロセッサが存在する場合、プロセッサ(複数))がシステムメモリP24および大容量記憶メモリP25にアクセスすることを可能にする、機能を実施する。
システムメモリP24は、例えば、静的ランダムアクセスメモリ(SRAM)、動的ランダムアクセスメモリ(DRAM)、フラッシュメモリ、読み取り専用メモリ(ROM)等の任意の所望の種類の揮発性および/または不揮発性メモリを含んでもよい。大容量記憶メモリP25は、任意の所望の種類の大容量記憶デバイスを含んでもよい。例えば、例示的プロセッサシステムP10が、例示的記述子ファイルデータベース126(図1および図2)を実装するために使用される場合、大容量記憶メモリP25は、ハードディスクドライブ、光学ドライブ、テープ記憶デバイス等を含んでもよい。代替として、例示的プロセッサシステムP10が、例示的記述子ファイルデータベース126を実装するために使用される場合、大容量記憶メモリP25は、固体メモリ(例えば、フラッシュメモリ、RAMメモリ等)、磁気メモリ(例えば、ハードドライブ)、または例示的記述子ファイルデータベース126における大容量記憶に好適な任意の他のメモリを含んでもよい。
周辺機器I/OコントローラP22は、プロセッサP12が、周辺機器I/OバスP32を介して、周辺機器入力/出力(I/O)デバイスP26およびP28、ならびにネットワークインターフェースP30と通信することを可能にする、機能を実施する。I/OデバイスP26およびP28は、例えば、キーボード、ディスプレイ(例えば、液晶ディスプレイ(LCD)、ブラウン管(CRT)ディスプレイ等)、ナビゲーションデバイス(例えば、マウス、トラックボール、静電容量式タッチパッド、ジョイスティック等)等の任意の所望の種類のI/Oデバイスであってもよい。ネットワークインターフェースP30は、プロセッサシステムP10が別のプロセッサシステムと通信することを可能にする、例えば、イーサネット(登録商標)デバイス、非同期転送モード(ATM)デバイス、802.11デバイス、DSLモデム、ケーブルモデム、携帯電話モデム等であってもよい。
メモリコントローラP20およびI/OコントローラP22は、チップセットP18内の別個の機能ブロックとして図10に描写されるが、これらのブロックによって実施される機能は、単一の半導体回路内に集積されてもよく、または、2つ以上の別個の集積回路を使用して実装されてもよい。
上述の例示的方法および/または装置のうちの少なくともいくつかは、コンピュータプロセッサ上で動く、1つ以上のソフトウェアおよび/またはファームウェアプログラムによって実装される。しかしながら、本明細書に記載される例示的方法および/または装置のうちのいくつか、またはすべてを、全体的に、または部分的に実装するために、特定用途向け集積回路、プログラマブル論理アレイ、および他のハードウェアデバイスを含むが、これらに限定されない、専用ハードウェア実装を、同様に構築することができる。さらに、また、分散処理もしくはコンポーネント/オブジェクト分散処理、並列処理、または仮想機械処理を含むが、これらに限定されない、代替のソフトウェア実装も、本明細書に記載される例示的方法および/またはシステムを実装するために構築することができる。
また、本明細書に記述される例示的ソフトウェアおよび/またはファームウェア実装は、磁気媒体(例えば、磁気ディスクまたはテープ)、光ディスク等の光磁気媒体もしくは光媒体、あるいはメモリカード、または1つ以上の読み取り専用(不揮発性)メモリ、ランダムアクセスメモリ、もしくは他の書き換え可能(揮発性)メモリを収容する他のパッケージ等の固体媒体等の有形記憶媒体上に記憶されることにも留意されたい。したがって、本明細書に記載される例示的ソフトウェアおよび/またはファームウェアは、上述されるもの、またはとって代わる記憶媒体等の有形記憶媒体上に記憶することができる。上記の明細書が、特定の標準およびプロトコルを参照して、例示的コンポーネントおよび機能を説明する範囲について、本特許の範囲は、そのような標準およびプロトコルに限定されないことが理解される。
加えて、本特許は、ハードウェア上で実行されるソフトウェアまたはファームウェアを含む、例示的方法および装置を開示するが、そのようなシステムは、例示にすぎず、制限として解釈されるべきではないことに留意されたい。例えば、これらのハードウェアおよびソフトウェアコンポーネントのうちのいずれか、またはすべてを、ハードウェアのみで、ソフトウェアのみで、ファームウェアのみで、またはハードウェア、ファームウェア、および/もしくはソフトウェアの何らかの組み合わせで具現化できることが意図される。したがって、上記の明細書は、例示的方法、システム、および機械がアクセス可能な媒体を説明したが、例は、そのようなシステム、方法、および機械がアクセス可能な媒体を実装するための唯一の方法ではない。したがって、特定の例示的方法、システム、および機械がアクセス可能な媒体が本明細書に記載されてきたが、本特許の対象範囲は、これらに限定されない。それどころか、本特許は、文言上、または均等論の下で適正に添付の特許請求の範囲内である、すべての方法、システム、および機械がアクセス可能な媒体を対象とする。