(58)【調査した分野】(Int.Cl.,DB名)
前記第1のデータソースが、制御システムフィールド装置、プログラム可能論理制御装置またはデータベースのうちの一つであることを特徴とする、請求項1に記載の機器。
前記格納された指示により、前記プロセッサーシステムが、ユーザが第1のユーザ定義パラメータ名を指定することを可能にすべく、複数のユーザ選択可能なフィールドを有するグラフィカルユーザインターフェースを表示することを可能とすることを特徴とする、請求項1に記載の機器。
前記共通の通信インターフェースがオブジェクトのリンクと埋め込み標準を使用して実施されることを特徴とする請求項15に記載の指示を格納して有する機械アクセス可能な媒体。
ユーザが前記第1のユーザ定義パラメータ名を指定できるようにするために複数のユーザ選択可能なフィールドを有するグラフィカルユーザインターフェースを表示することを更に含む、請求項22に記載の方法。
【発明を実施するための最良の形態】
【0007】
なお、以下の説明では、例示的な機器およびシステムが、その他の数多く存在する構成要素の中でも特に、ハードウェア上で実行されるソフトウェア及び又はファームウェアを含んだ状態で述べられているが、このようなシステムは単に本発明の実施形態の一例に過ぎず、本発明を限定するものであると見なされるべきでない。例えば、これらのハードウェア、ソフトウェアおよびファームウェア構成要素のいずれか又は全ては、ハードウェアにおいてのみ、またはソフトウェアにおいてのみ、あるいはハードウェアとソフトウェアの任意の組合せにおいて具体化できるものとして考慮されるべきである。よって、実施例として挙げられる機器およびシステムが以下に説明されているが、通常の技術を有する当業者であれば、本明細書に提供される実施例がこれらの機器およびシステムを実施する唯一の手段ではないことが容易に理解できるはずである。
【0008】
既知の技法は、(例えば、複数のサブシステムとデータソースをその中に備える法人企業体などの)ネットワーク・システムの至る所に設置されている様々なタイプのデータソース(例えば、データベース、サーバ、プロセス制御システムコントローラ、など)に関連する(例えば、由来する、または格納されている)情報にソフトウェアプロセスがアクセスする(例えば、読み込む、または書き込む)ことを可能にするものであり、各々のデータソースと情報を交換するように高度にカスタマイズされたデータソース・インターフェース構成体またはデータソース・インターフェース・モジュール(例えば、ソフトウェア機能、オブジェクト指向プログラミング・クラス、ソフトウェア層、など)を採用する。同じ制御システム製造メーカにより提供された標準部品にインターフェース接続する場合、これらのインターフェースは事前に構築されるので、通常インターフェース接続ソフトウェアの複雑性のほとんどはユーザに分からない(見えない)状態になっている。しかしながら、第三者からの異なる対象データソース内の情報にアクセスするようにソフトウェアプロセスが構成されるたびに、対象データソースに関連する通信インターフェース標準およびプロトコルに関して比較的高度な訓練を受けている、または比較的高度な知識を有する個人(例えば、プログラマ、エンジニア、など)が、対象データソース内の情報にアクセスするように構成され高度にカスタマイズされたデータソース・インターフェースを作成しなければならない。従って、既知の技法の場合では、ソフトウェアプロセスが情報を交換することになる各データソースの通信インターフェースや通信プロトコルなどに関する比較的高度な知識を有することが個々人に要求される。
【0009】
第三者データソースにインターフェース接続する既知の技法とは異なり、本明細書に記載される例示的な機器と方法は、異なるタイプのデータソースの通信インターフェース、通信プロトコルなどに関する多量の知識を有することをユーザに要求することなく、様々なタイプのデータソースに関連する(例えば、由来する、または格納されている)情報またはデータにアクセスする際にユニバーサル・データソース・アクセス・インターフェース(すなわちユニバーサル・インターフェース)を使用すること可能にする。制御システムは、それぞれが一つ又は複数の第三者データソースにアクセスするように構成されるユニバーサル・インターフェースの様々なインスタンスを、備えることができる。ユニバーサル・インターフェースの各インスタンスには、当該ユニバーサル・インターフェース・インスタンスに対応するデータソース内のデータにアクセスするためにデータアクセス依頼を行うことができる一般データアクセス・インターフェースが、含まれうる。一般データアクセス・インターフェースには、制御システム中のその他のデータにアクセスするために使用されるものに類似するデータアクセス技法を使用することにより、制御システムを通じてアクセスしうる。本明細書に示される実施例では、制御システムルーチンを構成し実行するための制御システムソフトウェアがモジュールを使用して実施される。ユーザは、プロセス制御システムのコントローラ及び又はフィールド装置により実行されることになっているプロセス制御ルーチンを定義するために、モジュールを構成することができる。モジュールは、プロセス制御ルーチンを実施するための機能を定義する複数の機能ブロックを含んでいる。例示的な実施形態のいくつかでは、この機能によって、コントローラまたはフィールド装置に測定値(例えば、電圧値、温度値、フロー値、電圧値、現在値、など)を取得させたり、アルゴリズムまたは計算(例えば、積分、微分、たし算、ひき算、など)を実行させたり、計装の制御(例えば、バルブの開閉、炉調整、ボイラ調整、など)を行わせたり、またはその他いかなる機能を行わせるようにしても良い。後述の実施例におけるユニバーサル・インターフェースは、アクセスされる(例えば、読み込まれる、書き込まれる、修正変更される、など)データのタイプを指定するために複数のユーザ構成可能設定を備えるモジュールを使用して実施される。
【0010】
データがアクセスされるたびに、所望のデータの位置を示すパス情報、装置識別情報、レジスタ情報をデータアクセス依頼に含んで提供することを要求するのではなく、ユーザ定義の名称に基づいてアプリケーションが制御システムの全体にわたりデータにアクセスすることを可能にすべく、ユーザ定義の名称を特定のデータに割り当てるようにユニバーサル・インターフェース・モジュールを構成することができる。例示的なユニバーサル・インターフェース・モジュールは、異なるタイプのデータソース(例えば、プログラム可能論理制御装置(PLC)、フィールド装置、サーバ、など)と通信するために比較的高度にカスタマイズされた複数のデータソース・インターフェース機能を含んでいる。異なるデータソースに関連する様々な通信インターフェース標準およびプロトコルに関する多量の予備知識または知識を必要とせずに、異なるタイプのデータソース内の情報にアクセスするのに、ユーザまたはアプリケーションが例示的なユニバーサル・インターフェース・モジュールを使用できるようするために、例示的なユニバーサル・インターフェース・モジュールは、データソースと関連する高度にカスタマイズされたデータソース・インターフェース機能から一般データアクセス依頼インターフェースを抽象化する。
【0011】
例示的な実施形態では、実験室データシステムにおいて生成及び又は格納される実験室計測データにアクセスするために、例示的なユニバーサル・インターフェース・モジュールが実験室データシステムに連結されたアプリケーションステーションにて実施されうる。アプリケーションステーション内のユニバーサル・インターフェース・モジュールには、ユーザまたはソフトウェアプロセス(例えば、アプリケーション)が実験室データに各々割り当てられたユーザ定義の名称を使用して実験室計測データにアクセスするために使用できる一般データアクセス・インターフェースが含まれうる。また、ユニバーサル・インターフェース・モジュールは、依頼された実験室データに割り当てられたユーザ定義の名称を含む一般データアクセス・インターフェースからデータ依頼を受け取る実験室データアクセス依頼生成機構を含みうる。実験室データアクセス依頼生成機構は、実験室データを生成及び又は格納する実験室データシステム内の実験室データへのアクセスに特有なインターフェースのフォーマットを使用してデータ依頼をフォーマットするように構成される。このように、例示的なユニバーサル・インターフェース・モジュールを使用するように構成されたユーザまたはソフトウェアプロセスは、例示的なユニバーサル・インターフェース・モジュールの一般データアクセス依頼インターフェースを介し、ユーザ定義のデータ名を使用して実験室データを依頼することができる。またそれによって、例示的なユニバーサル・インターフェース・モジュールは、データアクセス依頼を生成して実験室データシステムにその依頼を通信するために実験室データアクセス依頼生成機構を使用できるようになり、これにより、実験室データシステムと直接に通信するための特定のデータ依頼フォーマットをユーザまたはソフトウェアプロセスが認識していることを要求する必要がなくなる。
【0012】
別の例示的な実施形態では、制御システム内部または外部のSQLデータベースにデータアクセスを提供すべく、制御システム内のアプリケーションステーションにおいてインスタンス化された例示的なユニバーサル・インターフェース・モジュールが構造化問合せ(クエリ)言語(SQL)データベース・インターフェースを備えうる。SQLデータベース・インターフェースは、データ読み出し及び又はデータを格納するためにSQLデータベースに通信すべく、データ依頼をSQL問合せ文字列にフォーマットする問合せ文字列生成機構としての機能を含みうる。このように、例示的なユニバーサル・インターフェース・モジュールを使用するように構成されたユーザまたはソフトウェアプロセスは、例示的なユニバーサル・インターフェース・モジュールの一般データアクセス依頼インターフェースを介してデータアクセス依頼を提供することができる。データアクセス依頼は、ユニバーサル・インターフェース・モジュールを実行するアプリケーションステーションの中から発する、またはアプリケーションステーションに通信可能に連結された別のアプリケーションステーションまたはその他の構成要素から発することができる。またそれによって、例示的なユニバーサル・インターフェース・モジュールはSQL問合せ文字列生成機構機能を使用して、データアクセス依頼を適切なSQL問合せ文字列に変換し、SQLデータベースにSQL問合せ文字列を通信することができる。
【0013】
ここで
図1を参照すると、例示的なエンタープライズ・ネットワーク100は、例えば製造環境、材料取扱い環境などにおける一つ又は複数のプロセスの自動化に関連する一つ又は複数のプロセス制御システム、データ分析システム、データ記憶システムなどを含んでいる。バスまたはローカルエリアネットワーク(LAN)106を介してコントローラA 108、コントローラB 110、アプリケーションステーション112、およびアプリケーションステーション102を通じて企業体ネットワーク100に接続されているビジネスシステム114に通信可能に連結されたオペレータステーション104およびアプリケーションステーション102が、例示的なエンタープライズ・ネットワーク100に含まれている。議論の目的上、
図1には特定数のシステムおよび特定タイプのシステムが示されているが、例示的な企業体ネットワーク100には更に多くの、またはより少数の、システムおよびその他のタイプのシステムが含まれてよい。
【0014】
アプリケーションステーション102は、一つ又は複数の情報技術アプリケーション、ユーザ対話型アプリケーション、及び又は通信アプリケーションに関連した動作を実行するように構成されうる。例えば、アプリケーションステーション102、オペレータステーション104、コントローラA 108、コントローラB 110、アプリケーションステーション112およびビジネスシステム114が、任意の所望の通信媒体(例えば、ワイヤレス、ハードワイヤード式、など)およびプロトコル(例えば、HTTP、SOAP、など)を使用してお互いに及び又はその他のシステムと通信できるようにする通信用アプリケーションやプロセス制御関連アプリケーションに関連する動作を実行するようにアプリケーションステーション102を構成しうる。
【0015】
LAN 106は所望のあらゆる通信媒体およびプロトコルを使用して実施されうる。例えば、LAN 106は、ハードワイヤード(配線式)またはワイヤレス(無線式)Ethernet(登録商標)通信方式に基づくものでありうる。これについては周知の方式であるため、ここで更に詳しく説明しない。しかしながら、通常の技術を有する当業者ならば、その他のあらゆる適切な通信媒体およびプロトコルを使用できることは一目瞭然のはずである。更に、アプリケーションステーション102およびオペレータステーション104内にLANが一つだけ備えられた状態で図示されているが、二つ以上のLANおよび適切な通信系ハードウェアを使用して、これらのシステム間に冗長通信経路を提供するようにしても良い。例示的な企業体ネットワーク100のステーション104、102および112及び又はコントローラ108および110がLAN 106を介して通信可能に連結された状態で図示されているが、例示的な企業体ネットワーク100におけるステーション102、104および112、コントローラ108および110、及び又は第三者ビジネスシステム114 の一つ又は複数を地理的に遠隔な位置に設置しても良く、この場合、例えば、ワイヤレス通信回線、インターネットを基盤とした通信ネットワーク、またはその他にも交換通信ネットワークやパケットを基盤とした通信ネットワーク、電話回線(例えば、デジタル加入者線)、またはそれのいかなる組合せを使用して実施される広域ネットワーク(WAN)(図示せず)を介して、当前記一つ又は複数のステーションおよびコントローラをLAN 106に通信可能に連結しても良い。更に、ステーション102、104および112、コントローラ108および110、及び又はビジネスシステム114 内にはLANが一つだけ備えられた状態で図示されているが、二つ以上のLANおよび適切な通信系ハードウェアを使用して、これらの間に冗長通信経路を提供するようにしても良い。
【0016】
アプリケーションステーション102は、アプリケーションステーション102、オペレータステーション104、コントローラA 108、コントローラB 110、アプリケーションステーション112、及び又はビジネスシステム114の一つ又は複数においてソフトウェアプロセスが情報にアクセスする(例えば、読み取る及び又は書き込む)ことを可能にするために本明細書に記載される例示的な方法およびシステムを実施するために使用される、一つ又は複数のアプリケーションに関連する動作を実行するように構成されうる。アプリケーションステーション102およびオペレータステーション104は、一つ又は複数のワークステーションまたはその他の適切な1以上のコンピュータ・システム(または処理システム(例えば、
図14のプロセッサーシステム1410)を使用して実施されうる。例えば、シングルプロセッサのパーソナルコンピュータ、シングルまたはマルチプロセッサのワークステーションなどを使用して、アプリケーションステーション102およびオペレータステーション104を実施することが可能である。
【0017】
コントローラ108および110の詳細に注目すると、コントローラA 108には制御CPU 116が含まれており、コントローラB 110には制御CPU 118が含まれている。本明細書においては、その各々がLAN 106に通信可能に連結された状態で示されている。制御CPUの116と118の各々は、各々のI/O装置128と130を介して、各フィールド装置120と122及び各プログラム可能論理制御装置(PLC)124と126に通信可能に連結されている。フィールド装置120と122、ならびにPLCの124と126は、制御システムの製造メーカ、または第三者により提供されたものであってよい。コントローラA 108に連結された制御CPU 116、フィールド装置120、PLC 124およびI/O装置128は、コントローラB 110に連結されている各々対応する制御CPU 118、フィールド装置122、PLC 126およびI/O装置130と実質的に類似しているものであってもよい、もしくは異なるものであってもよい。
【0018】
例えば、Emerson Process Management(登録商標)およびFisher−Rosemount Systems,Inc社により販売されるDeltaV(登録商標)コントローラを使用してコントローラ108と110のうち一つまたは両方を実施しうる。但し、その他のコントローラを代わりに使用することも可能である。
図1のコントローラ108および110の各々において制御CPUが一つだけ備えられた状態で示されているが、いかなる所望のタイプまたはいかなる所望のタイプの組合せの制御CPUを追加して備えても良い。いかなる場合も、システムエンジニアまたはその他のシステムオペレータがアプリケーションステーション102を使用して生成し制御CPU116および118においてインスタンス化した一つ又は複数のプロセス制御ルーチンを有する一つ又は複数のプロセス制御モジュールを、制御CPU116および118により実行しうる。更に、第三者の装置を含むネットワーク・エンティティにおけるデータの場所を定義する装置IDやレジスタ・アドレスまたはIDなどの提供を要する代わりに、ユーザ定義のデータアクセス依頼パラメータ名を使用してフィールド装置120と122およびPLC124と126内のデータにユーザ及び又はアプリケーションがアクセスすることを可能にするために、一つ又は複数のユニバーサル・インターフェース・モジュールを、制御CPUの116および118により実行しうる。本明細書に記載されるユニバーサル・インターフェース・モジュールは、この情報を制御システム内のその他のアプリケーションにより容易に利用できるようにするために、第三者装置を含むネットワーク・エンティティに定期的にアクセスして前記第三者装置を含むネットワーク・エンティティからアクセスした値を局部的(ローカル)にキャッシュするように構成されうる。
【0019】
フィールド装置120および122のうち一つまたは両方は、Fieldbus適合バルブ、アクチュエータ、センサなどであってよく、この場合、フィールド装置120および122は周知のFieldbusプロトコルを使用して各々の制御CPU116および118と通信する。もちろん、より少数のまたは更に多くのフィールド装置およびその他のタイプのフィールド装置と通信プロトコルを代わりに使用することも可能である。その代わりとして、例えば、フィールド装置120および122のうち一つまたは両方は、周知のProfibus(登録商標)およびHART(登録商標)通信プロトコルを使用して各々の制御CPU116および118と通信するProfibus(登録商標)またはHART(登録商標)適合装置であってよい。(I/O装置128および130に類似するか同一の)I/O装置を追加して制御CPU116および118に連結しても良く、そうすることによって、(Fieldbus装置、HART(登録商標)装置などでありうる)追加されたフィールド装置の一群が制御CPU116および118と通信することができるようにしても良い。
【0020】
図1に表されるように、アプリケーションステーション112は、アラームおよびイベント監視機能132およびイベント・ヒストリアン134を実行する。アラームおよびイベント監視機能132は、例示的な企業体ネットワーク100のプロセスコントローラ108および110の一つ又は複数に関連する様々な態様及び又は区域を監視すべく、一つ又は複数の監視ルーチンに関連する動作を実行するように構成されうる。例えば、アラームおよびイベント監視機能132により監視されるコントローラ108および110における特定のイベント(例えば、圧力限界値、プロセス開始時間、プロセス終了時間、設備の不具合、など)をユーザが指定しても良く、更にイベントが特定の特徴(例えば、しきい値限界値に達したなど)を有する場合に生成されるべきアラームのタイプをユーザが指定しても良い。イベント・ヒストリアン・ステーション134は、アラームおよびイベント監視機能132が監視するように設定されている各イベント、アラーム、アクションなどに関連したプロセス制御ログ情報を取得または収集することができる。イベント・ヒストリアン・ステーション134はログ・データベース(図示せず)にプロセス制御ログ情報を格納できる。
【0021】
ビジネスシステム114には複数のサーバおよびデータベースが備えられている。なお、図中では第三者サーバ136および第三者データベース138が前記複数のサーバおよびデータベースの一例として示されている。一般に、ビジネスシステム114は企業体ネットワーク100のビジネス的側面(例えば会計、購買、営業、市場取引など)を対象としうる。例えば、ビジネスシステム114は、棚卸しされた原材料の数量や稼動コスト、必要生産数量などを示す情報を格納することができる。ビジネスシステム114内の情報のいくつかは、企業体ネットワーク100のその他の構成要素(例えば、コントローラ108および110、アプリケーションステーション112など)から得られた情報に基づいて生成されることができる。更にまた、コントローラ108および110及び又はアプリケーションステーション112は、アプリケーションステーション102により実行されビジネスシステム114内のデータへのアクセスを可能にするように構成されたユニバーサル・インターフェース・モジュール(例えば、
図2のユニバーサル・インターフェース・モジュール206)を通じてビジネスシステム114に格納された情報を読み出すことができる。また、ステーション102、104と112およびコントローラ108と110により構成される制御システムからビジネスシステムに生産実績情報を通信できる。
【0022】
第三者サーバ136および第三者データベース138は、ビジネス関連動作の任意のものを実行するために実施されうる。第三者サーバ136および第三者データベース138がステーション102、104と112およびコントローラ108と110に関連した同じデータアクセス・インターフェース規格またはプロトコルを使用しないことを示すために、「第三者」の命名規則を使用しうる。即ち、第三者サーバ136および第三者データベース138内の情報にアクセスするために使用されるデータアクセス・プロトコルは、ステーション102、104と112およびコントローラ108と110により構成された制御システム内の情報にアクセスするために使用されるデータアクセス・プロトコルとは実質的に異なりうる。例えば、ステーション102、104と112およびコントローラ108と110が、制御システムソフトウェア・パッケージ(例えば、Emerson Process Management社(登録商標)によるDeltaV(登録商標)ディジタル・オートメーション・システム)の一部として共通の供給業者(例えば、Emerson Process Management社(登録商標))により提供されるものである場合、供給業者に定義されたデータアクセス標準(つまり、ネーティブ(自身固有)のデータアクセス・インターフェース規格)を使用するように、ステーション102、104と112およびコントローラ108と110のそれぞれを構成しうる。但し、ステーション102、104、112およびコントローラ108と110が、第三者サーバ136および第三者データベース138(またはフィールド装置またはPLCなどの第三者フィールド装置)に関連したネーティブでない第三者データアクセス・インターフェース規格を使用するように構成されない場合もある。本明細書に示される実施例において、第三者データアクセス・インターフェースはネーティブ・データアクセス・インターフェースとは異なる。即ち、ネーティブ・データアクセス・インターフェースを実施するために使用されるものと同じ供給業者定義のデータアクセス標準に従って設計または構成されたデータアクセス・インターフェースが、第三者データアクセス・インターフェースを必要とする第三者データソースには備えられていない。
【0023】
例示的な実施形態のいくつかにおいて、第三者データソース内のデータにアクセスするための第三者データアクセス・インターフェースは、供給業者定義のデータアクセス標準(または供給業者定義のデータアクセス標準とは異なる業界定義のデータアクセス標準)に従って構成される。ユーザおよびソフトウェアプロセス及び又はソフトウェアアプリケーションが各タイプのデータソース特有のフォーマットにてデータアクセス依頼を提供することを必要とせずに、ユーザおよびソフトウェアプロセス及び又はソフトウェアアプリケーションによるネーティブのデータソースおよび第三者データソースへのアクセスを可能にするために、本明細書に記載される機器および方法は、第1のフォーマットを備えるデータアクセス依頼を、ネーティブのデータアクセス・インターフェースのフォーマット及び又は第三者データアクセス・インターフェースのフォーマットへ翻訳するユニバーサル・インターフェース・モジュールを提供する。このように、あらゆるタイプのデータソースに含まれるデータにアクセスするためのデータアクセス依頼フォーマットは、ユニバーサル・フォーマットに標準化される。このようなユニバーサル・フォーマットへの標準化により、アクセスされるべきデータのパラメータ名をユーザが定義できるようになり、且つ、ユーザやソフトウェアプロセス及び又はアプリケーションがユーザ定義のパラメータ名を使用してデータにアクセスできるようになる。
【0024】
例えばステーション102、104、112およびコントローラ108と110のような制御システムのネーティブ構成要素によって、それに生成された及び又はそれの中に格納されているデータにアクセスするために実行できるユニバーサル・インターフェース・モジュールを実施するために、本明細書に記載される例示的な方法および機器を使用できる。第三者製造メーカにより提供されたビジネスシステム114、フィールド装置(例えば、フィールド装置120および122に類似するまたはそれと同一のフィールド装置)、及び又はPLCサブシステム(例えば、PLC124および128に類似するか、またはそれと同一のPLC)により生成及び又は格納されているデータにアクセスするために、ユニバーサル・インターフェース・モジュールを制御システムのネーティブの構成要素によって使用することもできる。特に、ユニバーサル・インターフェース・モジュールにより、ネーティブ構成要素のユーザまたはソフトウェアプロセスに、企業体ネットワーク100全体に至る異なるデータソースに関連する様々な通信プロトコルや通信インターフェースまたはデータアクセス機能に関する比較的高度な知識を有することを要求する必要なく、制御システムに連結されているあらゆる構成要素内のデータにアクセスすることが可能になる。
【0025】
例示的な企業体ネットワーク100は、より詳細にわたり後述される例示的なシステムおよび方法を有利に採用しうるシステムの一種を示すべく提示されている。但し望ましい場合は、
図1に示される例示的な企業体ネットワーク100よりも複雑なその他のシステムにおいても、または例示的な企業体ネットワーク100よりも複雑性の低いその他のシステムにおいても、及び又はプロセス制御作業、企業体管理動作、通信作業などに関連して使用されるシステムにおいても、本明細書に記載される例示的なシステムおよび方法を有利に採用することができる。
【0026】
図2に描かれるデータアクセス構成200は、本明細書に記載される例示的な方法および機器に従って構成され、アプリケーションステーション102により実行されるソフトウェアプロセス202が例示的なユニバーサル・インターフェース・モジュールを介して複数の異なるデータソース内の情報にアクセスすることを可能にするように構成される。本明細書に示される実施例において、アプリケーションステーション102により実行された例示的なユニバーサル・インターフェース・モジュール206は、第三者データベース・インターフェース208を介した第三者データベース138へのアクセスを提供する。制御CPU116により実行される例示的なユニバーサル・インターフェース・モジュール210は、コントローラA 108、フィールド装置120、及び又はPLC124により生成された及び又はそれに格納されているデータへのアクセスを提供する。制御CPU 118により実行される例示的なユニバーサル・インターフェース・モジュール212は、コントローラB 110、フィールド装置122、及び又はPLC126により生成された及び又はそれに格納されているデータへのアクセスを提供する。ユニバーサル・インターフェース・モジュール206、210および212の各々は、アクセスされるべきデータおよびそのデータのユーザ定義パラメータ名を指定するユーザ定義の構成に基づいて、その各々のネットワーク・エンティティによりインスタンス化され実行される。ユニバーサル・インターフェース・モジュール206、210および212のインスタンスは、ユーザ定義のパラメータ名を用いて後で当前記のデータにアクセスするために複数回使用できるアクセスされるべきデータへのパスを定義するために、構成フェーズ中に一回比較的容易に構成されうるモジュールとして実施される。
【0027】
ソフトウェアプロセス202は、ステーション102および104(
図1)上で実行可能なユーザ・アプリケーションでありえ、グラフィカルユーザインターフェース(GUI)や、制御CPUの116および118のうちのいずれかに実質的に類似するか、またはそれと同一である制御CPUにより実行可能なソフトウェアプロセス、またはその他のシステムにより実行可能なソフトウェアプロセスを有する。例示的な実施形態のいくつかでは、ソフトウェアプロセス20が、企業体ネットワーク100において生成された特定のデータを監視するバックグラウンド・プロセスであってよい。その他の例示的な実施形態において、ソフトウェアプロセス202は、ユーザが企業体ネットワーク100に関連する情報をアクセスできるウェブ基盤のアプリケーションであってよい。ユニバーサル・インターフェース・モジュール206の使用により、ソフトウェアプロセス202には、第三者データベース138にアクセスするために第三者データベース・インターフェース208に特有のデータアクセス機能を備える必要がなくなる。同じように、ソフトウェアプロセス202は、制御CPU 116、フィールド装置120および及び又はPLC 124内のデータにアクセスするためにユニバーサル・インターフェース・モジュール210を使用でき、また制御CPU118、フィールド装置122、及び又はPLC 126内のデータにアクセスするためにユニバーサル・インターフェース・モジュール212を使用できる。図示する実施例において、また以下より詳細にわたり説明されているように、ユニバーサル・インターフェース・モジュール206、210および212は、ユーザ定義のパラメータ名を含む第1のフォーマットでデータアクセス依頼を受け取るように構成され、且つ、アクセスされるべきデータソースに対応したフォーマットにデータアクセス依頼を変換してフォーマットされたデータアクセス依頼を対応するデータソース(例えば、第三者データベース138、制御CPU116と118、PLC120と122、およびフィールド装置124と126)に通信するように構成された、複数の事前定義された機能を有するモジュールとして実施される。更に、データソースに書き込まれるべきデータがソフトウェアプロセス202により提供される場合、ユニバーサル・インターフェース・モジュール206、210および212は、前記提供されるデータを各々のデータソースに対応するフォーマットに翻訳するように構成される。このように、情報を交換するところの異なるデータソースに関連する異なる通信プロトコルや通信フォーマットや通信インターフェースなどに関する詳細を知っていなければならない、というユーザへの負担が解消される。
【0028】
図3は、
図2のユニバーサル・インターフェース・モジュール206、210および212の各々を実施するために使用されうる例示的なプログラミング構造のブロック図である。本明細書に示される実施例において、ユニバーサル・インターフェース・モジュール206、210および212の各々はオブジェクト指向プログラミング環境を使用して実施される。但し、任意の適切なタイプのプログラミング言語に関しては、その代わりとして他のタイプのプログラミング環境を使用しうる。ユニバーサル・インターフェース・モジュールは異なるネットワーク・エンティティにおいてインスタンス化されうる。例えば、
図1および
図2のアプリケーションステーション102はユニバーサル・インターフェース・モジュール206をインスタンス化し実行するように構成され、
図1および
図2の制御CPU116はユニバーサル・インターフェース・モジュール210をインスタンス化し実行するように構成され、また
図1および
図2の制御CPU118はユニバーサル・インターフェース・モジュール212をインスタンス化し実行するように構成される。ユニバーサル・インターフェース・モジュールの機能特性のいくつかまたは全ては、機械アクセス可能媒体に格納された、例えば
図14の例示的なプロセッサーシステム1410などのプロセッサーシステムにより実行されると
図13A〜
図13Bのフローチャートに示される動作を実行するような指示、コード、及び又はその他のソフトウェア及び又はファームウェアなどを使用して実施しうる。
【0029】
図示される実施例における
図2のユニバーサル・インターフェース・モジュール206、210および212の各々は、その構成要素(例えば、
図1のコントローラA 108)内の、またはその構成要素に連結されている別のデータソース(例えば、
図1および
図2のフィールド装置120またはPLC 124)内のデータへアクセスするために、企業体100(
図1)の各々のネーティブ構成要素により実行されるように設計、プログラムなどを行いうる。ネーティブのおよび第三者のコントローラやサーバ、データベースなどをはじめとする異なるネットワーク・エンティティにアクセスするためのデータアクセス依頼のフォーマットは、ソフトウェア提供業者、プロセス制御システムのサプライヤ、設備メーカなどにより定義されうる。
【0030】
ユニバーサル・インターフェース・モジュールのインスタンス化は、
図7を参照して後述される構成用インターフェースを介して構成されうる一つ又は複数のユーザ選択可能な機能特性に基づいて作動するように構成されうる。構成フェーズ中には、ユーザがデータアクセスを有効に設定することを希望するデータソースのタイプに基づいて、およびユーザがデータアクセス関連用途に向けて有効に設定することを希望する機能のタイプ(例えば、データ処理、アラーム、など)に基づいて、ユーザ(例えば、ソフトウェア提供業者、プロセス制御システムのサプライヤ、設備メーカなどの顧客)が、機能特性のいくつかまたは全てを選択できる。実行フェーズ中には、構成フェーズ中に指定されたユーザ構成に基づいてユニバーサル・インターフェース・モジュールが作動する。ユニバーサル・インターフェース・モジュールの設計フェーズ、構成フェーズおよび実行フェーズについては、
図4を参照して以下詳細にわたり説明する。
【0031】
図3に示されるように、
図2のユニバーサル・インターフェース・モジュール206、210および212の各々は、UniversalInterfaceClassタイプのオブジェクト指向クラス(本稿ではユニバーサル・インターフェース・クラス302と呼ぶ)を使用して実施される。
図3に関連して後述される機能に従って実施されるその他のクラス(例えば、データソース・インターフェース・クラス、アラーム・クラス、データ処理クラス、など)の特徴を引き継ぐUniversalInterfaceClassタイプのオブジェクトをインスタンス化するためにユニバーサル・インターフェース・クラス302を使用しうる。このように、UniversalInterfaceClassタイプのオブジェクトは、企業体100のあらゆるネーティブ構成要素が一つ又は複数のデータソース(例えば、
図1および
図2のフィールド装置120および122、PLC124および126、ならびに第三者データベース138)にアクセスすることを可能にするための様々な能力を有するコンテナ(オブジェクト群)またはモジュール(機能単位)として使用することができる。
【0032】
ユニバーサル・インターフェース・クラス302には、企業体ネットワーク100のその他のモジュール(例えば、プロセス制御ルーチン・モジュール)内のデータにアクセスする方法と実質的に類似するか同一の方法でデータソース内のデータにアクセスできる、一般データアクセス・インターフェース304が備えられている。一般データアクセス・インターフェース304は、一つ又は複数のネーティブデータソース(例えば、
図1および
図2のフィールド装置120および122、ならびにPLCの124および126)に格納された情報へのアクセスを依頼するために企業体ネットワーク100のネーティブ構成要素により使用される、複数のユニバーサル・データアクセス機能を定義しうる。一般データアクセス・インターフェース304のユニバーサル・データアクセス機能は、第三者システムおよび装置(例えば、
図1のビジネスシステム114)にあるデータソース内の情報にアクセスするために、同じ方法で、企業体100のネーティブ構成要素により使用されうる。
【0033】
構成フェーズ中に指定されたネーティブデータソース内の情報にユニバーサル・インターフェース・モジュールがアクセスすることを可能にするために、ユニバーサル・インターフェース・クラス302には入出力インターフェース306が備えられている。構成フェーズ中に指定された第三者データソース内の情報にユニバーサル・インターフェース・モジュールがアクセスすることを可能にするために、ユニバーサル・インターフェース・クラス302には、複数の第三者データソース・インターフェース308a〜308cが備えられている。
【0034】
図示する実施例においては、第三者データソース・インターフェース308a〜cには、第三者コントローラ・インターフェース308a、第三者サーバ・インターフェース308b、および第三者データベース・インターフェース308cが含まれている。その他の例示的な実施形態では、その他のタイプの第三者データソース内の情報にアクセスするために、その他の第三者データアクセス・インターフェースを備えてもよい。上述されるように、第三者データソース(例えば、
図1の第三者サーバ136および第三者データベース138)は、ネーティブのデータアクセス機能を実施するために使用されるデータアクセス標準(例えば、別の供給業者定義の標準、または別の業界定義の標準)とは異なるデータアクセス標準(例えば、供給業者定義の標準、または業界定義の標準)に従って実施された第三者データアクセス機能を使用してアクセスされるデータソースである。よって、第三者データソース・インターフェース308a〜308cには、第三者データソース内の情報にアクセスするために第三者データアクセス機能が含まれている。
【0035】
メモリ312にデータを格納するために、ユニバーサル・インターフェース・クラス302には、データ格納インターフェース310(つまりデータ構造インターフェース310)を備えうる。本明細書に示される実施例において、ユニバーサル・インターフェース・クラス302のインスタンス化は、ユニバーサル・インターフェース・モジュール・インスタンス化によりアクセスされた(例えば、書き込まれた、または読み込まれた)情報のコピーを格納するためにメモリ312を使用する。例えば、
図2のユニバーサル・インターフェース・モジュール206が定期的に
図1および
図2の第三者データベース138からデータを読み取る依頼を伝送するように構成される場合、ユニバーサル・インターフェース・モジュール206は、第三者データベース・インターフェース308cを介して指定されたデータソースからデータを読み取り、メモリ312に読み取られたデータのコピーを格納する(例えば、読み取られたデータをキャッシュに格納する)ためにデータ格納インターフェース310を使用する。このように、例えば
図1および
図2のアプリケーションステーション102などの企業体ネットワーク100のネーティブ構成要素部分がユニバーサル・インターフェース・モジュール206に読み取られたデータ依頼を通信する場合、ユニバーサル・インターフェース・モジュール206は、それがローカルメモリのキャッシュに格納された依頼データを有するかどうかを判断するかもしれず、またその場合、ユニバーサル・インターフェース・モジュール206は、第三者データベース138にアクセスするのに比較的長期の遅延を要する代わりに一般データアクセス・インターフェース304を介してアプリケーションステーション102内のキャッシュに格納された値を直ちに返すことができる。同様に、アプリケーションステーション102が第三者データベース138における値を変更するために書込み依頼を通信する場合、ユニバーサル・インターフェース・モジュール206はメモリ312における値を変更し、メモリ312において変更されたデータを、第三者データベース・インターフェース308cを介して第三者データベース138に書き込む。
【0036】
例示的な実施形態において、ユニバーサル・インターフェース・モジュール206は、アプリケーションステーション102のローカルメモリ(例えば、ハードドライブ、ランダムアクセス記憶装置(RAM))にメモリ312が割り当てられるように依頼するためにデータ格納インターフェース310を使用する。データを局部的(ローカル)にメモリ312に格納することにより、データソース(例えば、フィールド装置120および122の一つ、またはPLC124および126のうちの一つ)にアクセスすることなく、企業体ネットワーク100における複数のネットワーク構成要素により同じ情報を複数回にわたりアクセスできるようになるので、データのメモリ312内への局部的な格納は、データアクセス速度を増加させるために有利に使用することができる。また、メモリ312により提供される局部格納機能によって、アプリケーションが、ユニバーサル・インターフェース・モジュールと第三者装置との間の通信状態に関係なく(例えば、通信リンクが一時的に無効になっていることに関係なく)、ユニバーサル・インターフェース・モジュールに書き込まれるべきデータとともにデータ書込み依頼を通信できるようになる。例えば、ユニバーサル・インターフェース・モジュールは、書込みデータを局部的に格納し、その後ユニバーサル・インターフェース・モジュールと第三者装置間の通信リンクが再度設置された時点で第三者装置にデータを書き込むためにメモリ312を使用することができる。
【0037】
データが第三者装置に書き込まれることになっている例示的な実施形態のいくつかにおいて、ユニバーサル・インターフェース・モジュール206は、メモリ312内へのデータの格納に当たり周知のキャッシング技法(例えば、データ・ライトスルー、データ・ライトバック、など)を使用しうる。メモリ312に格納されたデータをどのくらいの頻度でリフレッシュまたは更新するか、及び又はメモリ312に格納されたデータをどのくらいの頻度で各々のデータソースにライトバックするかを示す、リフレッシュまたは更新パラメータ値を、ユーザが構成時間中に提供しうる。
【0038】
図示する実施例においては、ユニバーサル・インターフェース・クラス302には、メモリ312内のデータがいつ無効となりうるかを検出することによってデータのインテグリティ(完全整合性)を保証するために、データ有効性監視機構314が備えられている。データ有効性監視機構314は、メモリ312内のデータがもはや各々のデータソース内の各々のデータと同じものでないかもしれないとの旨を示して、いつデータソースとのデータ通信に障害が生じたのかを判断するように構成されうる。例えば、ユニバーサル・インターフェース・クラス302が第三者サーバ・インターフェース308bを介して
図1の第三者サーバ136と通信するために使用される場合、データ格納インターフェース310はメモリ312にアクセスされたデータを格納する。
図2に示される実施例において、第三者データベース138がクラッシュした場合、もしくは第三者データベース138がユニバーサル・インターフェース・モジュール206と通信できなくなると、データ有効性監視機構314は、第三者データベース138との情報交換が失敗したことを検出するか、LAN106に通信可能に連結されたネットワーク監視機構(図示せず)によりデータベース138を利用できないとの通知を受け取るかの少なくともいずれかを行う。その後、データ有効性監視機構314は、メモリ312およびそれに対応する第三者データベース138に格納されたデータがもはや有効でないかもしれないことを示すために、警告メッセージを生成するか、第三者データベース138からのデータに関連するデータ品質パラメータを更新するかの少なくともいずれかを行う。このように、メモリ312に格納されたデータのインテグリティ(完全整合性)を継続的に監視することができ、ユニバーサル・インターフェース・モジュール206を通じてデータにアクセスする企業体100のネーティブ構成要素が、無効データを使用してしまうことを防止する。
【0039】
図2のユニバーサル・インターフェース・モジュール206、210および212の各々は、データソース(例えば、
図1および
図2の第三者データベース138)内の特定データへのアクセスを制限するように構成されてもよい。特定タイプのデータアクセスを制限するため、及び又は特定のデータへのアクセスを制限するために、ユニバーサル・インターフェース・クラス302には一つ又は複数の規則316が含まれている。規則316は、特定のデータソース及び又はデータソース内の特定データへのデータアクセスのうち特定タイプのもの(例えば、リードアクセス、ライトアクセス、など)を制限する。いくつかの例示的な実施形態における規則316は、データソース・インターフェース306および308a〜308cの特定の一つにより選択的に使用されうる。なお、規則316には、必須規則とユーザ選択可能規則が含まれうる。必須規則はユーザにより無効とすることができないが、選択可能規則は構成フェーズ中に有効にも無効にも設定できる。
【0040】
企業体ネットワーク100のネーティブ構成により一般データアクセス・インターフェース304を介してデータソース・インターフェース306および308a〜308cの各々に対応するデータアクセス依頼フォーマットにて提供されたデータアクセス依頼を変換するために、ユニバーサル・インターフェース・クラス302には一つ又は複数の変換ユーティリティ318が備えられている。図示される実施例では、変換ユーティリティ318が、データアクセス依頼の内容を含む情報を一般データアクセス・インターフェース304から受信し、更に変換ユーティリティ318がその情報を、データソース・インターフェース306および308a〜308cの各々に対応するアクセス依頼フォーマット(例えば、対象データソースに対応するフォーマット、および当該対象データソースと関連した通信プロトコル)に変換する。変換ユーティリティ318がデータソース・インターフェース306および308a〜308cとは別に示されているが、例示的な実施形態のいくつかでは、データソース・インターフェース306および308a〜308cの各々にめいめいの変換ユーティリティ318を含んでもよい。
【0041】
ユニバーサル・インターフェース・モジュール206、210および212の各々がデータ処理動作(例えば、データのフィルター、データのタイプ変換、など)を実行できるようにするために、ユニバーサル・インターフェース・クラス302には、一つ又は複数のデータ処理機能320が備えられている。データ処理機能320としては、例えば、データタイプ変換、データ条件設定機能(例えば、平均算出機能、データ・フィルタ、など)、論理関係(例えば、ビット反転)が挙げられる。ユーザは、データソース・インターフェース306および308a〜308cの選択されたものに関連してどのデータ処理機能320を使用するのかを選択しうる。ユーザに指定されたデータに基づいてアラームを生成するために、ユニバーサル・インターフェース・クラス302には一つ又は複数のアラーム322が備えられている。ユーザは、任意の所望のデータに関する一つ又は複数のアラーム322をデータソースから選択しうる。特定のデータを監視するようにアラーム322を構成し、監視の対象となっているデータ値がしきい値以上またはしきい値以下になった場合に通知を生成するようにしても良い。データソース・インターフェース306および308a〜308c、データ格納インターフェース310、データ有効性監視機構314、規則316、変換ユーティリティ318、機能320およびアラーム322は、ユニバーサル・インターフェース・クラス302のデータ要素及び又は機能要素として実施されうる。
【0042】
図4は、
図2のユーザインターフェース・モジュール206、210および212の各々を実施するために使用されうる例示的な方法のフローチャートを表す図である。特に設計フェーズ402中に、ユニバーサル・インターフェース定型設計者(例えば、ソフトウェア提供業者、プロセス制御システムのサプライヤ、設備メーカ、など)は、ユーザ選択可能なデータソース・インターフェース(例えば、
図3のデータソース・インターフェース306および308a〜308c)を設計またはプログラムし(例えば、ソフトウェア・コードを生成し)、(そのうちいくつかはユーザ選択可能でありうる)データアクセス規則(例えば、
図3の規則316)を定義し、ユーザ選択可能なアラーム・タイプ(例えば、
図3のアラーム318)を定義し、ユーザ選択可能なデータ処理機能(例えば、
図3のデータ処理機能320)を定義できる(ブロック404)。また設計フェーズ402中には、ユニバーサル・インターフェース定型408を生成するために、ブロック404で提供されたユーザ選択可能データソース・インターフェース、データアクセス規則、ユーザ選択可能アラーム・タイプおよびユーザ選択可能データ処理機能が使用される(ブロック406)。
【0043】
ユーザ構成フェーズ410中には、ユニバーサル・インターフェース定型408を使用してユニバーサル・インターフェース・モジュール(例えば、
図2のユニバーサル・インターフェース・モジュール206、210および212のうちの一つ)の特定の構成を指定するために、ユーザは(
図7に示される如く構成プログラム・グラフィカルユーザインターフェース(GUI)700を備えうる)構成用アプリケーションを使用できる。例えば、ユニバーサル・インターフェース定型408は、
図3に関連して上述される機能特性の全てを提供することができ、そのいくつかは例えばデータソース・インターフェース306および308a〜308c、規則316、データアクセス依頼変換ユーティリティ318、データ処理機能320およびアラーム322のいくつかまたは全てなど、ユーザ選択可能なものでありうる。その後、ユーザは、実行時フェーズ412中にユニバーサル・インターフェース・モジュールのインスタンスが動作することを保証するための所望の方法に基づいて、ブロックのいくつかを選択する(例えば、有効に設定する)ことができる。例えば
図4に示されるように、ユーザは、データソース・インターフェース(例えば、
図3のデータソース・インターフェース306および308a〜308cのうちの一つ又は複数)を選択でき、データアクセス規則(例えば、
図3の規則316の一つ又は複数)を選択したりユーザ定義の規則を定義したりでき、更にアラーム・タイプ(例えば、
図3のアラーム322の一つ又は複数)を選択でき、且つ、データ処理機能(例えば、
図3のデータ処理機能320の一つ又は複数)を選択できる(ブロック414)。いくつかの例示的な実施形態において、ユーザは、いくつかの項目に関しては選択しないことにすることも可能である。例えば、ユーザは、いずれのアラーム322も、またはいずれのデータ処理機能320も選択しないことにしてもよい。
【0044】
ブロック414で選択を行った後に、ユーザはデータアクセス・パラメータを指定することができる(ブロック416)。データアクセス・パラメータにはデータソース・パス(例えば、
図1および
図2のフィールド装置120と122、PLC124と126、ならびに
図1のビジネスシステム114のネットワーク・パスまたはネットワーク・アドレス)、アクセスされるべきデータ、ユニバーサル・インターフェース・モジュール内で各々の基準を割り当てるためのユーザ定義名などが含まれる。更に、ユーザは、指定されたデータソースから読み出されたデータに関連した特定のしきい値に基づいてアラームがトリガされるようにも定義しうる。その後、ユニバーサル・インターフェース・モジュール420は、ユーザに選択された機能特性を含むように生成され、企業体100の対応する構成要素(例えば、
図1ステーション102、104および112のうちの一つ、またはコントローラ108および110のうちの一つ)にダウンロードされる(ブロック418)。
【0045】
実行時フェーズ412中に、プロセッサーシステム(例えば、
図1のアプリケーションステーション102、コントローラ116、コントローラ118など)は、前記ダウンロードされたユニバーサル・インターフェース・モジュール420を実行することができる(ブロック422)。その後、ユニバーサル・インターフェース・モジュール420は、構成フェーズ410中に指定されたユーザ構成に従ってデータアクセス、アラーム監視、データ処理機能などを実行する(ブロック424)。
【0046】
図5は、ユニバーサル・インターフェース・モジュール210を介して例えばオペレータステーション104などの企業体ネットワーク100のネーティブ構成要素が、コントローラA 108内のデータにアクセスすることができる例示的な様態を表す。
本明細書に示される実施例において、ユニバーサル・インターフェース・モジュール210のモジュール名501は「ModuleA」である。図示される如く、ユニバーサル・インターフェース・モジュール210には、特定の基準および基準パス506用のパラメータ名504を含む複数のパラメータ502が備えられている。企業体100のネーティブ構成要素は、ユニバーサル・インターフェース・モジュール210を独自に識別するためにモジュール名501を使用することができる。(つまり、読込み依頼512に含まれるモジュール名501は、コントローラA 108により実行されるユニバーサル・インターフェース・モジュール210と独自に関連付けられている。)コントローラA 108内のデータにアクセスするために、オペレータステーション104は、ユニバーサル・インターフェース・モジュール210に設定されたモジュール名501およびパラメータ名504を使用する。本明細書に示される実施例において、モジュール名501、パラメータ名504およびそれの関連する基準パス506は、
図4の構成フェーズ410中にユーザにより指定される。オペレータステーション104は、モジュール名501およびパラメータ名504を使用して、コントローラA 108を通じてフィールド装置120から読み出される情報のうち関心の的になっている情報を参照する。ユニバーサル・インターフェース・モジュール210によりメモリ(例えば、メモリ312)に局部的に格納され、読み出される基準を生成する、フィールド装置120の入力ポート(IN)とフィールド装置120の装置のID(PT1)は、前記参照されたパラメータ用に定義された基準パス506により指定される。
【0047】
ユニバーサル・インターフェース・モジュール210にコントローラA 108からデータを読み出させるために、オペレータステーション104は、ユニバーサル・インターフェース読込み機能呼出512「(UnivRead(ModuleA、圧力))」をコントローラA 108に通信し、その次にコントローラA 108は、前記読込み機能呼出512を一般データアクセス・インターフェース304に送信する。本明細書に示される実施例において、ユニバーサル・インターフェース読込み機能呼出512のフォーマットは本明細書で目的の情報を指定するために「UnivRead(モジュール名、パラメータ名)」として示される。モジュール名(例えば、モジュール名=>ModuleA)は、データが読み出されるべきデータソースと読み出されるべき特定のデータ(例えば、パラメータ名=>圧力)を同定するために企業体ネットワーク100(
図1)内で使用される。(つまり、モジュール名は、企業体ネットワーク100の特定の構成要素に関連する。)アプリケーションがパラメータ値を受け取るために定期的にデータアクセス依頼を通信すると、キャッシュメモリ(例えば、メモリ312)に格納された直近のパラメータ値は直ちにアプリケーションに返されることになる。それ以外の場合は、フィールド装置120に関連したデータアクセス依頼フォーマットに従ってフォーマットされたデータアクセス依頼514を生成するようにユニバーサル・インターフェース・モジュール210用に構成されたパラメータ502を、変換ユーティリティ318は使用する。本明細書に示される実施例において、データアクセス依頼514のフォーマットは、ユニバーサル・インターフェース読込み機能呼出512のフォーマットとは異なり、必ずしも
図5に示されるようにフォーマットされていない。変換ユーティリティ318がデータアクセス依頼514を生成後、ユニバーサル・インターフェース・モジュール210はフィールド装置120にデータアクセス依頼514を通信する。
【0048】
例示的な実施形態のいくつかにおいて、ユニバーサル・インターフェース・モジュール210は、データソース内のデータにアクセスするためにインターフェース特有のフォーマットを使用するように構成されうる。モジュール「ModuleA」からパラメータ「圧力」を読み取るためにアプリケーションがユニバーサル・インターフェース・モジュール210に通信できるようにする、との例示的なインターフェース特有なフォーマットによる依頼は、「ModuleA/圧力/PV.CV」としてフォーマットされうる。特定のデータタイプ(例えば、整数、倍数、浮動小数、など)を特定のデータソースから依頼元のアプリケーションに返すべく、データアクセス依頼フォーマットを、還元データタイプ指名子およびソース指名子を含むように拡張することが可能であり、「DvRt:float//ModuleA/圧力/PV.CV」としてフォーマットすることができる。
【0049】
コントローラ108に通信可能に連結されたその他の構成要素(例えば、
図1および
図2のPLC124およびフィールド装置120)内のデータにアクセスすべく異なるネットワーク・エンティティ(例えば、
図1のアプリケーションステーション102およびコントローラ108)がユニバーサル・インターフェース・クラス302(
図3)に基づいてユニバーサル・インターフェース・オブジェクト602および604をインスタンス化するところの、
図1の企業体ネットワーク100の一部分が、
図6に示されている。図示されるように、アプリケーションステーション102は、ユニバーサル・インターフェース・クラス302に基づく「UniversalInterfaceClass」タイプの実験室オブジェクト602(つまり、実験室ユニバーサル・インターフェース・モジュール・オブジェクト602)をインスタンス化する。実験室オブジェクト602は「実験室」という名称のユニバーサル・インターフェース・モジュールである。図示される実施例では、例えばデータアクセス速度を増加させることにより、及び又は実験室オブジェクト602と第三者実験室システム603間の通信リンクが無効となっている場合でも実験室オブジェクト602に関連したローカル・キャッシュメモリからデータを読み出せるようにすることにより、企業体100内のアプリケーションによるデータへのアクセスを図るために、実験室オブジェクト602が、定期的に第三者実験室システム603内のデータにアクセスするように構成され、読み出されたデータをローカルメモリ(例えば、
図3のメモリ312)において局部的にキャッシュに格納するようにしても良い。実験室オブジェクト602は、密度データ値606および粘度データ値608を含むデータパラメータを定義する。本明細書に示される実施例において、実験室システム603は、密度データ値606および粘度データ値608に対応するデータを提供する。
【0050】
図示される如く、コントローラ108は、ユニバーサル・インターフェース・クラス302に基づく「UniversalInterfaceClass」タイプの煤吹器オブジェクト604(つまり、煤吹器ユニバーサル・インターフェース・モジュール・オブジェクト604)をインスタンス化する。煤吹器オブジェクト604は「煤吹器」という名称のユニバーサル・インターフェース・モジュールである。煤吹器オブジェクト604は、「第1管温度」のデータ値610、「第2管温度」のデータ値612、および「差圧」のデータ値614を含むデータパラメータを定義する。本明細書に示される実施例において、PLC124は、第2管温度データ値610および第2管温度データ値612に対応するデータを提供する。差圧データ値614は、第2のデータ値(例えば、第2の電圧値)から第1のデータ値(例えば、第1の電圧値)を引き算するように設定された機能320(
図3)の一つにより生成されうる。
【0051】
本明細書に示される実施例において、コントローラ108は、フィールド装置120と通信するためのバス・カード620と、PLC124と通信するためのシリアルカード622を含む。フィールド装置120内のデータにアクセスするために、煤吹器オブジェクト604は、データに定期的にアクセスし、一般データアクセス・インターフェース304(
図3)に対応するフォーマットによりユーザ定義パラメータ名に基づいてキャッシュに格納して、例えば
図3の変換ユーティリティ318の一つを使用してデータアクセス依頼をバス・カード620およびフィールド装置120(またはシリアルカード622およびPLC124)に対応するフォーマットに変換するように構成される。また、PLC 124内のデータにアクセスするために、煤吹器オブジェクト604は、一般データアクセス・インターフェース304(
図3)に対応するフォーマットでデータアクセス依頼を受け取り、例えば
図3の変換ユーティリティ318の一つを使用してデータアクセス依頼をバス・カード620およびフィールド装置120(またはシリアルカード622およびPLC 124)に対応するフォーマットに変換するように構成されうる。
【0052】
実験室オブジェクト602および煤吹器オブジェクト604の構成(例えば、実験室と煤吹器といったモジュール名、各モジュール、データ処理機能、データ経路のパラメータ名など)は、構成フェーズ(例えば、
図4の構成フェーズ410)中にユーザにより指定することができる。その後、アプリケーションステーション102およびコントローラ108は、ユーザ指定の動作を実行するために、実行時フェーズ(例えば、
図4の実行時フェーズ412)中に実験室オブジェクト602および煤吹器オブジェクト604の各々のものを実行することができる。
【0053】
図7は、
図6のユニバーサル・インターフェース実験室モジュール602を構成するために構成フェーズ(例えば、
図4の構成フェーズ410)中に使用されうる例示的な構成プログラム・グラフィカルユーザインターフェース(GUI)700を示す図である。例示的な実施形態のいくつかにおいて、ユーザがユニバーサル・インターフェース・モジュール(例えば、実験室ユニバーサル・インターフェース・モジュール・オブジェクト602またはその他のユニバーサル・インターフェース・モジュール)を構成できるようにするために、構成プログラムGUI700は、制御システムソフトウェア・パッケージ(例えば、Emerson Process Management(登録商標)によるDeltaV(登録商標)ディジタル・オートメーション・システム)の一部として提供される。
【0054】
構成プログラムGUI700は、ユーザがユニバーサル・インターフェース・モジュールの各インスタンスに独自のモジュール名を与えることを可能にする。またユーザは、ユニバーサル・インターフェース・モジュールのインスタンスを通じてアクセスされるデータにユーザ定義のパラメータ名を与えうる。更にユーザは、どのパラメータがユニバーサル・インターフェース・モジュールにおいて定期的にリフレッシュされ(例えば、
図3のメモリ312において)キャッシュに格納されることになるかを指定してもよい。通常、モジュールのパラメータおよび各パラメータ用に選択された機能特性は、実験室ユニバーサル・インターフェース・モジュール・オブジェクト602が実行時フェーズ(例えば、
図4の実行時フェーズ412)中にどのように機能すべきかを指定するために、表の各行は
図3に関連して上述される機能特性を示すところの、テーブル(またはスプレッドシート)を用いて構成段階中に表示されることになる。
【0055】
データソース・インターフェース(例えば、
図3のデータソース・インターフェース306および308a〜308cの一つ)に関連したユーザにより編集可能なパラメータ値、アラーム(例えば、
図3のアラーム322)、規則(例えば、
図3の規則316)、データ・プロセス機能など(例えば、
図3のデータ・プロセス機能320)、を表示するために、構成プログラムGUI700にはエリア710を編集するパラメータが備えられている。本明細書に示される実施例において、エリア710を編集するパラメータは、表式のまたはスプレッドシートの形式でパラメータ値を表示する。パラメータ値は、スプレッドシート・ファイル、テキストファイル、エクステンシブル・マークアップ・ランゲージ(XML)ファイル、またはGUI700のスプレッドシート表示ビューにインポートされうるその他のファイルに、(例えば、「記憶機構パラメータ」オプションを選択することにより)格納されることができる。実験室ユニバーサル・インターフェース・モジュール・オブジェクト602が作動する方法を変更すべく、GUI700のスプレッドシート表示ビューを介してスプレッドシート・ファイル、テキストファイル、XMLファイルなどのパラメータを表示および編集するために、ユーザはGUI700を使用しうる。
【0056】
ユーザはユニバーサル・インターフェース・モジュールにデータパラメータを追加し、データパラメータに名称を与えた後、前記ユーザはユニバーサル・インターフェース・モジュールを介して本明細書で関心の的になっている情報にアクセスするおよびそれを処理するのに必要な情報を提供しうる。
図7に示される実施例において、プログラム構成GUI700には、データ型フィールド712、読み取り専用フィールド714、パス・フィールド716、および更新時間フィールド(または更新間隔フィールド)718が備えられている。データ型フィールド712は、アクセスされるべき基準のデータタイプ(例えば、浮動小数点、整数、など)を指定する機能をユーザに提供する。読み取り専用フィールド714は、データパラメータが読み取り専用であるべきかどうか示す機能をユーザに提供する。
【0057】
パス・フィールド716は、企業体ネットワーク100(
図1)内のデータパラメータおよびデータを生成する及び又は格納するデータソースのパスを指定する機能をユーザに提供する。パス・フィールドにおいて指定されたパスにより、対応するデータソース・インターフェースを、ユニバーサル・インターフェース・モジュールが選択するようになる。例えば、パスがネーティブのフィールド装置に対応する場合、ユニバーサル・インターフェース・モジュールは
図3のI/Oインターフェース306を選択する。その反面、パスが第三者データソースに対応する場合、ユニバーサル・インターフェース・モジュールは第三者インターフェース308a〜308cの一つを選択する。
【0058】
更新時間フィールド718は、ユニバーサル・インターフェース・モジュールがどのくらいの頻度で局部的に格納された基準(つまり、
図3のメモリ312に局部的に格納された基準値)をリフレッシュするべきかを指定する機能をユーザに提供する。例えば、基準が高速フィールド装置に対応する場合、ユニバーサル・インターフェース・モジュールに比較的高頻度で基準をリフレッシュさせるように、ユーザは更新時間を短めに指定するかもしれない。一方、一日一回の頻度で更新されるフィールド装置内のパラメータに基準が対応する場合、ユニバーサル・インターフェース・モジュールに比較的低頻度で基準をリフレッシュさせるように、ユーザは更新時間を長めに指定するかもしれない。いかなる場合も、基準値は、例えばメモリ312に局部的に格納され、それによってユニバーサル・インターフェース・モジュールが当該基準値を求める読込み依頼を受信した際は常に、例えばフィールド装置(例えば、
図2のフィールド装置120)、PLC(例えば、
図2のPLC124)、またはユニバーサル・インターフェース・モジュールに連結されたその他の構成要素との通信の確立を必要とせずに、ユニバーサル・インターフェース・モジュールがローカルメモリ312から基準値を読み出せるようになっている。
【0059】
プログラム構成GUI700には、アラーム・フィールド720、警報値フィールド722および数値演算stat/fnフィールド724も備えられている。ユーザは、対応する基準に対してアラームを装備すべきかどうかをアラーム・フィールド720によって指定することができる。アラーム値フィールド722は、基準値に基づいてアラームがトリガされるところの最低及び又は最大しきい値を指定する機能をユーザに提供する。アラーム検出は、ユニバーサル・インターフェース・モジュールにおいて構成されたいかなるパラメータに対して定義されうる。例示的な実施形態のいくつかにおいてアラーム状態が検出されると、企業体ネットワーク100内のその他のモジュール(例えば、制御プロセスモジュール)に対してアラームが報告されるのと同じ方法で、オペレータステーション104(
図1)に対してアラームが自動的に報告される。数値演算stat/fnフィールド724は、統計機能、数値演算機能、またはその他の処理機能のあらゆるものが、対応するデータ上で実行されるべきかどうかを指定する機能をユーザに提供する。
【0060】
図8は、実行フェーズ(例えば、
図4の実行フェーズ406)中にユニバーサル・インターフェース・モジュールを使用してアクセスされたデータを表示するのに使用しうる例示的な実行時GUI800を示す図である。例示的な実行時GUI800には、構成されたパラメータに関連する実行時の動作値を示すところのテーブル形式またはスプレッドシート形式を用いて実施された表示領域810が備えられている。本明細書に示される実施例において、各々のデータソース(例えば、
図1および
図2のフィールド装置120またはPLC124)から読み出されたデータの値を表示するために、例示的な実行時GUI800には実際値フィールド812が備えられている。例示的な実行時GUI800には、例えば
図3のメモリ312に局部的に格納されたデータがもはや有効ではないかもしれないことを示すべく各々のデータに関連したデータ品質パラメータを表示するために、データの品質フィールド814も備えられている。このように、メモリ312に格納されたデータのインテグリティを継続して監視することができ、且つ、ユニバーサル・インターフェース・モジュールを通じてデータにアクセスする企業体100のネーティブ構成要素が無効データを使用することを防止している。
【0061】
図9は、
図7の構成プログラムGUI700を介して指定されたユーザ指定の構成に基づいて生成された例示的なソフトウェア命令を含む事前コンパイル中間準備エリア900(例えば、ソフトウェア・ファイル)を描く図である。本明細書に示される実施例において、ユニバーサル・インターフェース・モジュールのパラメータに関連したエントリの各々は、実行時フェーズ(例えば、
図4の実行時フェーズ412)中に実行される機能に対応する。構成フェーズ(例えば、
図4の構成フェーズ410)中に、ユーザがユニバーサル・インターフェース・モジュール構成の各パラメータに必要な情報を指定し終えてコンパイル・オプションまたは生成オプションを選択すると、構成プログラムは、ユニバーサル・インターフェース・モジュール(例えば、
図4のユニバーサル・インターフェース・モジュール420)を生成するために事前コンパイル中間準備エリア900にユニバーサル情報モジュール情報を生成する。このように、ユニバーサル・インターフェース・モジュールは、実行時フェーズ(例えば、
図4の実行時フェーズ412)中に実行することができる。
【0062】
図9に示される実施例において、事前コンパイル中間準備エリア900にはパラメータ定義902および904が備えられている。また、事前コンパイル中間準備エリア900には、(
図3のユニバーサル・インターフェース・クラス302の基づいた)UniversalInterfaceClassタイプの実験室オブジェクト(例えば、
図6の実験室オブジェクト602)をインスタンス化できるmain関数906が備えられている。更に、図示されていないが、main関数906は、パラメータ定義902および904に関連した動作を有効にするソフトウェア命令を含んでいる。
【0063】
図10は、ユニバーサル・インターフェース・モジュール206が共通の通信インターフェース1004を介して第三者データソース1002と通信する例示的な実施形態を描く図である。図示される如く、その他のユニバーサル・インターフェース・モジュール1012および1014もまた共通の通信インターフェース1004を介して第三者データソース1002に通信することができる。共通の通信インターフェース1004を実施するために使用されうる例示的な共通の通信インターフェースは、周知の業界標準OPC(マイクロソフト株式会社のOLE(オブジェクトのリンクと埋め込み)/COM(コンポーネント・オブジェクト・モデル)標準を基盤とする)を含んでいる。共通の通信インターフェース1004は、異なる供給業者により提供された(または異なる標準に適合する設計がなされている)クライアントおよびサーバアプリケーション間に比較的高度な相互運用性を提供する。従来は、クライアントアプリケーション供給業者が、各制御装置とインターフェースに対して異なるドライバーを開発しなければならなかった。共通の通信インターフェース1004によって、ユニバーサル・インターフェース・モジュール206が、共通の通信データソース・インターフェース1006として
図10に示されるタイプのインターフェースの一つを使用して、第三者データソース1002にアクセスすることが可能になる。
図10に示される実施例では、
図3に関連して上述される第三者データソース・インターフェース308a〜308cの代わりに、またはそれに加えて、共通通信データソース・インターフェース1006を使用してもよい。
【0064】
ユニバーサル・インターフェース・モジュール206は、共通の通信インターフェース1004により有効とされた同じ機能呼出を使用して第三者データソース1002のあらゆるものにも通信することができる。即ち、共通の通信インターフェース1004により、第三者データソース1002の各々に関連する通信標準の全てを認識していなければならないという条件からユニバーサル・インターフェース・モジュール206は開放される(隔離される)。もちろん、上記されるように、その他の例示的な実施形態におけるユニバーサル・インターフェース・モジュール206には、第三者データソース1002に直接に通信するための第三者データソース・インターフェース(例えば、第三者データソース・インターフェース308a〜308c)を備えうる。
【0065】
図11は、
図10の共通通信インターフェース1004を実施するために使用されうるリソースフレームワーク(枠組み)1102およびデータソース・エクステンション(DSE)のフレームワーク1104を示す。一般にリソースフレームワーク1102は、データバインディングに関連するプロセスを実施するように構成されており、且つ、以下詳細に説明されるように変数、スクリプト、およびデータソース(例えば、
図10の第三者データソース1002)への参照を生成およびトラッキングするリソース管理機構1106を含んでいる。各ユニバーサル・インターフェース・モジュール(例えば、ユニバーサル・インターフェース・モジュール206)は、各々のリソース管理機構のインスタンス(例えば、リソース管理機構1106)により管理される。例えば、リソースフレームワーク1102は、各々が異なるユニバーサル・インターフェース・モジュールに一意に関連する、リソース管理機構1106に類似する複数のリソース管理機構インスタンスを含みうる。
図11に示されるように、ユニバーサル・インターフェース・モジュール206には、特徴またはプロパティ(性状)(例えば、データ要素および機能要素)をリソース管理機構1106から引き継ぐモジュール・リソース管理機構1108が備えられている。モジュール・リソース管理機構1108は、共通の通信インターフェース・データソース・インターフェース1006(
図10)において実施されることができ、且つ、一つ又は複数の変数1110、スクリプト(つまり、実行可能なソフトウェア・スクリプト)1112、そして変数ベースに格納されたデータソース参照1114に関連する。変数ベース1114は、コンテキスト1118のデータリンクまたは1以上のデータリンク・オブジェクト1116(つまり、1以上のバインディングまたは結合オブジェクト1116)の一つ又は複数を介して、変数1110、スクリプト(つまり、実行可能なソフトウェア・スクリプト)1112、そして変数ベースに格納されたデータソース参照1114を一つ又は複数のデータサービスまたはデータソースに連結するか、結び付けるか、またはバインドする。
【0066】
図示される実施例においては、データリンク1116が、設定参照1120およびアクティブ参照1122を介して第三者データソース1002(
図10)に通信可能に連結される。設定参照とアクティブな参照1120および1122は、特定のデータ項目を捜し出すためにDSEフレームワーク1104により必要とされる情報(例えば、ネットワーク・パス情報)を含む文字列オブジェクトである。本明細書に示される実施例において、アクティブ参照1122のエイリアス(例えば、変数名)は、完全に解消されなければならない(つまり、エイリアスは各々のネットワーク・パスに翻訳または関連付けられなければならない)が、設定参照1120は未解消のエイリアスを含みうる。
【0067】
データリンク1116は、データソース(例えば、
図10の第三者データソース1002の一つ)内の特定のデータ項目の位置の文字列表現を含みうる、よって、データリンク1116はデータソースに特有である。それに加えて、文字列表現は、実行時中に変更可能なエイリアスへの参照を含みうる。図示される如く、コンテキスト1118も、データソース1124(例えば、実行時データソース)および後述されるデータソース管理機能1126に連結される。
【0068】
図11に示されるように、リソース管理機構1106はモジュール・リソース管理機構1108からデータ・コンテキストを受け取る。一般にデータ・コンテキストは、モジュール・リソース管理機構1108により使用されるプロパティ(例えば、変数名、データソースID、など)からなる。リソース管理機構1106は、データ・コンテキストに関連するプロパティを、変数1110とスクリプト1112および変数ベースの参照1114の適切なものにマップする、関係付ける、もしくは関連付けるように構成される。それに加えて、リソース管理機構1106は更に、バインディング1116、コンテキスト1118およびデータソース管理機能1126を介して第三者データソース1002の一つ又は複数にプロパティをマップするか、関連付けるか、もしくは結びつけるように構成される。変数1110、スクリプト1112、変数ベースの参照1114、及び又は第三者データソース1002にモジュール・リソース管理機構1108のプロパティを関係付けるためにリソース管理機構1106により使用されるマッピングは、例えばシステム構成エンジニアまたはその他のシステムユーザによってシステム構成動作(例えば、
図4の構成フェーズ410)中に確立することができる。
【0069】
稼動中、リソース管理機構1106は、変数の変更やデータソースに書き込まれるべき値などに関係する情報を受信しうる。場合によって、データ変更は、モジュール・リソース管理機構1108によりリソース管理機構1106に提供されるデータ・コンテキストの変更を介して伝達されうる。より具体的に言うと、このような場合には、一つ又は複数のデータ・コンテキストプロパティに対してなされたユーザ起動の変更、または
図2のソフトウェアプロセス202によりなされた変更により、一つ又は複数のスクリプト1112が発動されて、変数1110及び又は変数ベース1114内の参照に関連する値の一つ又は複数が変更されることになりうる。前記変更が第三者データソース1002の一つ又は複数に格納されたデータと関係する場合には、リソース管理機構1106により管理されるオブジェクトへの変更が、バインディング1116およびコンテキスト・オブジェクト1118を介して、第三者データソース1002の適切な一つ又は複数に自動的に伝播されうる。その他の場合では、(例えば、プロセス変数への変更が参照された結果として)第三者データソース1002の一つ又は複数の中でデータ変更が生じ、また、リソース管理機構1106により提供されるマッピング機能性を介してユニバーサル・インターフェース・モジュール206のモジュール・リソース管理機構1108に格納されたプロパティの適切なものに、コンテキスト1118およびバインディング1116を介して自動的に前記変更が伝播されうる。
【0070】
データソース管理機能1126は、データソース(例えば、第三者データソース1002の一つ)に関連する一群の結合オブジェクト(例えば、データリンク1116)に関係するクライアント状態情報を維持するために使用されるコンテキスト・オブジェクト(例えば、コンテキスト・オブジェクト1118)を生成し管理する。ユニバーサル・インターフェース・モジュール206の場合には、コンテキスト・オブジェクト1118および各々の第三者データソース・インターフェース(例えば、
図10の共通の通信インターフェースデータソース・インターフェース1006、及び又は
図3の第三者データソース・インターフェース308a〜308c)の間に一対一対応の関係が存在する。言いかえれば、ユニバーサル・インターフェース・モジュール206におけるデータソース・インターフェースごとに一つのコンテキストがあり、各コンテキストは、当前記のデータソース・インターフェースに関連したバインディングのみを含んでいる。よって、
図11の実施例において、コンテキスト・オブジェクト1118は、例えば
図10の共通の通信インターフェースデータソース・インターフェース1006に一意に対応する。
【0071】
また、コンテキスト・オブジェクトはデータ更新機構も提供する。前記データ更新機構のうちの一つは、イベントを基盤とするものであり各々全てのイベントに応答して更新を開始する一方、前記データ更新機構の別の一つは、本来照合され、複数のデータ変更イベントを収集しタイマーに応答してデータソースへと変更済バインディング項目のリストを送ることにより、定期的に(例えば、タイマーに基づいて)更新を開始する。もちろん、比較的多くのイベントがプロセスに存在する場合、各イベントに個々別々に応答することにより、
図1の企業体100中のプロセス制御システムの性能及び又は実行時プロセスの性能を損なうこともある(例えば、応答性が遅くなりうる)。よって、ダーティ・バインディングのリスト(例えば、データは変更済みだが実行時プロセスにまだ受け渡されていない一群のバインディング)に定期的に応答することにより、全体的な性能を向上させることができる。コンテキスト・オブジェクト1118および第三者データソース1002間の接続は、例えばマイクロソフト株式会社により提供される「Indigo」のフレームワークを使用して実施されてよい。
【0072】
図11の実施例に関連した変更情報の流れが、ユニバーサル・インターフェース・モジュール206で開始されリソース管理機構1106、データリンク1116、データソース管理機能1126およびコンテキスト1118を介して第三者データソース1002の一つ又は複数に自動的に伝播される状態で説明されているが、データ変更情報は、その代わりに、またはそれに加えて、第三者データソース1002の一つ又は複数からユニバーサル・インターフェース・モジュール206に自動的に伝播することも可能である。リソースフレームワーク1102およびDSEフレームワーク1104の更なる詳細は、2005年5月4日出願のPCT特許出願番号PCT/US2005/015394に提示されている。なお、当該出願の明細書は本明細書に参照することにより本稿にその全体が援用される。
【0073】
図12、
図13A、
図13Bおよび
図13Cは、例示的なユニバーサル・インターフェース・モジュール206、210および212(
図2)を実施するために使用されうる例示的な方法のフローチャートである。以下、議論の目的上、ユニバーサル・インターフェース・モジュール206に関連してフローチャートを説明する。例示的な実施形態のいくつかにおいて、
図12、
図13A、
図13Bおよび
図13Cの例示的な方法は、プロセッサ(例えば、
図14の例示的なプロセッサーシステム1410に示されるプロセッサ1412)による実行のためのプログラムを含む機械可読命令を使用して実施されうる。前記プログラムは、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、デジタル多用途ディスク(DVD)などの有形媒体、またはプロセッサ1412を関連したメモリに格納されたソフトウェアで具体化されうる、及び又は、周知の方法でファームウェア及び又は専用ハードウェアで具体化されうるものである。更に、例示的なプログラムは、
図12、
図13A、
図13Bおよび
図13Cに示されるフローチャートを参照して説明されているが、通常の技術を有する当業者ならば、例示的なユニバーサル・インターフェース・モジュール206を実施するその他多くの方法を代わりに使用しうることは一目瞭然のはずである。例えば、ブロックの実行順序は変更できるものであり、及び又は、本明細書に記載されるブロックのうちのいくつかを変更、除外、または組み合わせることが可能である。
【0074】
ここで
図12を参照すると、ユーザがユニバーサル・インターフェース・モジュール206用に特定の構成を指定することを可能にするために、図中に示される例示的な方法を
図4の構成フェーズ410中に実施しうる。このように、ユニバーサル・インターフェース・モジュール206はアクセスすべきデータソースをユーザが指定することができ、またユニバーサル・インターフェース・モジュール206が実行すべき(例えば、データ処理動作、アラーム生成動作、などの)その他の動作もユーザは指定することができる。本明細書に示される実施例では、
図7の例示的な構成プログラムGUI700および
図9の事前コンパイル中間準備エリア900に関連して、
図12の例示的な方法を説明する。但し、構成プログラムGUI700またはその他のGUIを基盤としたプログラムに関しては、
図12の例示的な方法を実施する必要はない。例えば例示的な実施形態のいくつかにおいて、
図12の例示的な方法はテキストベースのユーザインターフェース(例えば、コマンドライン・インターフェース)またはその他いかなるタイプのユーザインターフェースを使用して実施されてもよい。
【0075】
図12に示されるように、構成プログラムGUI700は最初にユニバーサル・インターフェース定型(例えば、
図4のユニバーサル・インターフェース定型408)を受信する(または読み出す)(ブロック1202)。その後、構成プログラムGUI700は、ユニバーサル・インターフェース定型408により提供されるユーザ選択可能なオプションまたは機能特性を読み込む(ブロック1204)。例えば、構成プログラムGUI700は、選択可能なデータソース・パス、データタイプ、データ・プロセス機能、アラームのタイプ、更新時間などをドロップダウン・メニューに投入することができる。
【0076】
その後、構成プログラムGUI700は、基準パラメータ(例えば、圧力基準パラメータ)がモジュールに追加されたかどうかを判断する(ブロック1206)。基準パラメータが追加されたと構成プログラムGUI700が判断した場合(ブロック1206)、構成プログラムGUI700は事前コンパイル中間準備エリア900(
図9)の追加されたパラメータに対応するソフトウェア・コードを格納する(ブロック1208)。例えば、構成プログラムGUI700はパラメータ定義(例えば、
図9のパラメータ定義902および904の一つ)を格納することができる。
【0077】
その後、構成プログラムGUI700は、ユーザ選択可能な機能特性またはユーザ編集可能な機能特性をパラメータ編集エリア710(
図7)に表示する(ブロック1210)。その後、構成プログラムGUI 700は、追加された基準パラメータのためのユーザ指定機能選択を受信する(ブロック1212)。構成プログラムGUI700は、事前コンパイル中間準備エリア900においてユーザ指定機能特性を各々のパラメータ定義と関連付ける(ブロック1214)。構成プログラムGUI 700は各々のデータソースにおいてユーザ定義の基準パラメータ名を基準位置と関連付ける(ブロック1216)。例えば、
図7に示されるようにユーザ定義の基準パラメータ名が「圧力」である場合、アクセスされるべき基準値の位置が「PT1」のIDを有するフィールド装置内の「IN」ポート(
図5および
図7)である場合、企業体ネットワーク100のネーティブ構成要素がユーザ定義の基準パラメータ名「圧力」に基づいて基準値「PT1.IN」にて参照しアクセスすることを可能にするために、構成プログラムGUI700は、企業体ネットワーク100内の基準「PT1.IN」の位置にユーザ定義の基準パラメータ名「圧力」を関連付ける。
【0078】
構成プログラム(例えば、構成プログラムGUI700に対応する構成プログラム)は、それが
図2のユニバーサル・インターフェース・モジュール206を生成すべきかどうかを判断する(ブロック1220)。例えば、ユーザが構成プログラムGUI700上でコンパイル・オプションまたは生成オプション(図示せず)を選択すると、構成プログラムは、それがユニバーサル・インターフェース・モジュール206を生成するべきであると判断しうる。構成プログラムがユニバーサル・インターフェース・モジュール206を生成するべきであると判断した場合(ブロック1220)、構成プログラムは、事前コンパイル中間準備エリア900の情報に基づいてユニバーサル・インターフェース・モジュール206を生成する(ブロック1222)。ユニバーサル・インターフェース・モジュール206を生成後(ブロック1222)、または、コンパイルされたユーザインターフェース206を生成すべきではない構成プログラムが判断した場合(ブロック1220)、または基準パラメータが追加されていないと構成プログラムGUI700が判断した場合(ブロック1206)、構成プログラムは、それが
図12の例示的な方法を終了すべきかどうかを判断する(ブロック1224)。例えば、ユーザが構成プログラムGUI700を終了した場合または現在の構成作業空間(ワークスペース)を閉じた場合、構成プログラムは、それが例示的な方法を終了すべきであると判断する。構成プログラムが例示的な方法を終了すべきでないと判断した場合、制御はブロック1206に戻される。それ以外の場合、
図12の例示的な方法は終了される。
【0079】
ここで
図13A、
図13Bおよび
図13Cを参照するに、ユニバーサル・インターフェース・モジュール206が一つ又は複数のデータソース内のデータにアクセスできるようにするために、図中に示される例示的な方法を
図4の実行時フェーズ412中に実施しうる。以下、議論の目的上、
図13A、
図13Bおよび
図13Cの例示的な方法を、アプリケーションステーション102(
図1および
図2)により実施されるものとして説明する。但し、例示的な方法はその他のプロセッサーシステムまたは装置を使用しても実施されうる。最初に、アプリケーションステーション102はユニバーサル・インターフェース・モジュール206をインスタンス化する(ブロック1302)。例えば、アプリケーションステーション102は、ユニバーサル・インターフェース・クラスのタイプのユニバーサル・インターフェース・モジュール・オブジェクトをインスタンス化することができる。その後、アプリケーションステーション102はユーザ指定のパラメータに対応する1以上のデータソース・インターフェース(例えば、
図3のデータソース・インターフェース306および308a〜308cの一つ又は複数)をインスタンス化する(ブロック1304)。その後、アプリケーションステーション102は対応するデータソースにデータソース・インターフェースをバインドする(ブロック1306)。例えば、アプリケーションステーション102は、ユーザ指定のモジュール名「実験室」に等しい
図5のモジュール名501、および、ユーザ指定の基準パラメータ名とパスに等しい複数のパラメータ502(
図5)を設定することができる。
【0080】
その後、アプリケーションステーション102はユーザ指定のデータ処理機能をインスタンス化する(ブロック1308)。例えば、アプリケーションステーション102は、
図3のデータ処理機能320の一つ又は複数をインスタンス化することができる。その後、アプリケーションステーション102は、ユーザ指定のデータ処理機能を、対応するデータソース・インターフェースまたはその他のデータ処理機能にバインドする(ブロック1310)。例えば、アプリケーションステーション102は、ユーザ指定のデータ処理機能を、ブロック1304でインスタンス化されたデータソース・インターフェース306および308a〜308cの対応するものにバインドすることができる。その後、アプリケーションステーション102はユーザ指定のアラーム機能をインスタンス化する(ブロック1312)。例えば、アプリケーションステーション102は、
図3のアラーム322の一つ又は複数をインスタンス化することができる。その後、アプリケーションステーション102は、アラーム422のうち有効になっているものを、ユニバーサル・インターフェース・モジュール206にバインドする(ブロック1314)。例えば、アプリケーションステーション102は、アラームを各々の基準パラメータにバインドすることができる。その後、アプリケーションステーション102は、一般データアクセス・インターフェース304(
図3)をインスタンス化し(ブロック1316)、ユニバーサル・インターフェース・モジュール206を稼動する(または実行する)(ブロック1318)。
【0081】
ユニバーサル・インターフェース・モジュール206は、一つ又は複数の対応するデータソース(ブロック1320)(
図13B)からのユーザ指定データの初期読取りを実行する。例えば、ユーザ指定のデータが第三者データを含んでいる場合、ユニバーサル・インターフェース・モジュール206は、第三者データベース138(
図2)からデータを読み取る。その後、ユニバーサル・インターフェース・モジュール206は、例えば
図3のメモリ312などのローカルメモリにデータを格納する(ブロック1322)。続いて、ユニバーサル・インターフェース・モジュール206は、
図7の更新時間フィールドに格納された更新時間または間隔値に基づいて定期的にまたは非定期的に第三者データベース138からデータを読み取ることができる。ユニバーサル・インターフェース・モジュール206は、それがデータソース(
図13B)からデータアクセス依頼を受信したかどうかを判断する(ブロック1324)。例えば、ユニバーサル・インターフェース・モジュール206が、企業体ネットワーク100(
図1)の別の構成要素またはネットワーク・エンティティからユニバーサル・インターフェース読込み機能呼出512(
図5)を受信すると、ユニバーサル・インターフェース・モジュール206はそれがデータアクセス依頼を受信したものと判断する。
【0082】
ユニバーサル・インターフェース・モジュール206がデータアクセス依頼を受信したと判断した場合(ブロック1324)、ユニバーサル・インターフェース・モジュール206は、例えばデータ格納インターフェース310(
図3)を使用して、局部的にキャッシュに格納されたているデータのうち依頼されたものをメモリ312から読み出す(ブロック1326)。ユニバーサル・インターフェース・モジュール206は、それが一つ又は複数のデータ・プロセス機能を実行するべきかどうかを判断する(ブロック1328)。例えば、ユーザ指定の機能が、依頼されたデータのためにユニバーサル・インターフェース・モジュール206においてインスタンス化された場合、ユニバーサル・インターフェース・モジュール206は依頼データに対して一つ又は複数データ処理機能を実行する(ブロック1330)。データ・プロセス機能は、いかなる時点においても実行でき、必ずしもデータアクセス依頼がユニバーサル・インターフェース・モジュール206により受信された場合にだけに実行されなければならないというわけではない。
【0083】
データ・プロセス機能を実行後(ブロック1330)、またはユニバーサル・インターフェース・モジュール206がデータアクセス依頼を受信していないと判断した場合(ブロック1324)、ユニバーサル・インターフェース・モジュール206は、一つ又は複数アラーム(例えば、
図8のアラーム・フィールドに対応するアラーム)を生成するべきかどうかを判断する(ブロック1338)(
図13C)。例えば、更新済データがブロック1312(
図13A)でインスタンス化されたアラーム322(
図3)の一つに対して利用可能であり、更新済データがユーザ指定の下限しきい値より低いかまたはユーザ指定の上限しきい値より高い場合、ユニバーサル・インターフェース・モジュール206はアラームを生成する(ブロック1340)。
【0084】
ユニバーサル・インターフェース・モジュール206がアラームを生成後(ブロック1340)、またはユニバーサル・インターフェース・モジュール206がアラームを生成すべきでないと判断した場合(ブロック1338)、ユニバーサル・インターフェース・モジュール206はデータをデータソースに書き込むべきどうかを判断する(ブロック1342)。例えば、ユニバーサル・インターフェース・モジュール206が、企業体ネットワーク100(
図1)のネーティブ構成要素またはネットワーク・エンティティからユニバーサル・インターフェース・ライト機能呼出を受け取る場合、または特定のデータソースに特定の情報を定期的に書き込むために、ユーザが構成フェーズ410(
図4)中にユニバーサル・インターフェース・モジュール206を構成した場合、ユニバーサル・インターフェース・モジュール206はデータをデータソースに書き込むべきであると判断する。
【0085】
ユニバーサル・インターフェース・モジュール206が、指定されたデータソースにデータを書き込むべきと判断した場合(ブロック1342)、ユニバーサル・インターフェース・モジュール206は、指定された対象データソースに対応するデータソース・インターフェース306および308a〜308cの一つを選択する(ブロック1344)。その後、変換ユーティリティ318(
図3)の一つは、対象データソースのフォーマットに従ってデータ書込み依頼(例えば、データ書込み機能呼出し)を生成する(ブロック1346)。その後、対象データソースに対応するデータソース・インターフェース(例えば、ネーティブデータソース用の
図3および
図5のI/Oインターフェース306または第三者データソース用の
図3の第三者インターフェース308a〜308c)は、データ書込依頼と、対象データソースに書き込まれるべきデータを通信する。
【0086】
その後、ユニバーサル・インターフェース・モジュール206は、データを(例えばメモリ312において)局部的にキャッシュに格納するべきかどうか判断する(ブロック1350)。例えば、ユーザは、どのデータが局部的にキャッシュに格納されるべきかを構成フェーズ410(
図4)中に指定することができる。ユニバーサル・インターフェース・モジュール206がデータを局部的にキャッシュに格納すべきでないと判断した場合(ブロック1350)、データ格納インターフェース310(
図3)はメモリ312にデータを格納する(ブロック1352)。データ格納インターフェース310がメモリ312にデータを格納した後、またはユニバーサル・インターフェース・モジュール206がデータを局部的にキャッシュに格納しないと判断した場合(ブロック1350)、ユニバーサル・インターフェース・モジュール206は、動作を終了すべきかどうかを判断する(ブロック1354)。例えば、ユーザまたはソフトウェアプロセス(例えば、
図2のソフトウェアプロセス202)は、ユニバーサル・インターフェース・モジュール206を終了してもよい。ユニバーサル・インターフェース・モジュール206がそれの動作を終了すべきでないと判断した場合、制御は
図13Bのブロック1320に送り返される。それ以外の場合、
図13A、
図13Bおよび
図13Cの例示的な方法は終了される。
【0087】
図14は、本明細書に記載される機器および方法を実施するために使用されうる例示的なプロセッサーシステム1410のブロック図である。
図14に示されるように、プロセッサーシステム1410は相互接続バス1414に連結されるプロセッサ1412を含んでいる。プロセッサ1412には、レジスタ・セットまたはレジスタ領域1416が含まれている。レジスタ・セットまたはレジスタ領域1416は、
図14では完全にチップ上に備えられた状態で示されているが、その代わりとして、完全に又は部分的にチップ外に備えられた状態で、専用の電気接続を介して及び又は相互接続バス1414を介して、プロセッサ1412に直接連結することも可能である。プロセッサ1412には、適切なプロセッサ、処理装置またはマイクロプロセッサであればいかなるものを使用してもよい。
図14には図示されていないが、システム1410は、マルチプロセッサシステムでありえ、よってプロセッサ1412と同一であるか、または類似し、且つ相互接続バス1414に通信可能に連結される、一つ又は複数の更に追加された別のプロセッサを含んでもよい。
【0088】
図14のプロセッサ1412は、メモリーコントローラー1420および周辺入出力(I/O)コントローラ1422を含むチップセット1418に連結される。周知のように、チップセットは一般に、チップセット1418に連結される一つ又は複数のプロセッサによりアクセス可能なまたは使用される複数の汎用及び又は専用レジスタやタイマーなどに加え、入出力および記憶管理機能を備える。メモリ制御部1420は、プロセッサ1412(または、複数のプロセッサが備えられている場合は「複数のプロセッサ」)がシステム・メモリ1424および大容量記憶メモリ1425にアクセスできるようにする機能を果たす。
【0089】
システム・メモリ1424は、例えば静的ランダムアクセス記憶装置(SRAM)、動的ランダムアクセス記憶装置(DRAM)、フラッシュメモリ、読み取り専用メモリなど(ROM)など所望のあらゆるタイプの揮発性及び又は不揮発性メモリを含みうる。大容量記憶メモリ1425は、ハードディスクドライブ、オプティカルドライブ、テープ記憶装置などを含む所望のあらゆるタイプの大容量記憶装置を含みうる。
【0090】
周辺I/Oコントローラ1422は、周辺I/Oバス1432を介して、周辺入出力(I/O)装置1426および1428、ならびにネットワーク・インターフェース1430とプロセッサ1412が通信することを可能にする機能を行う。I/O装置1426および1428には、例えば、キーボード、ビデオディスプレイまたはモニター、マウスなど、所望するいかなるタイプのI/O装置を使用しえる。ネットワーク・インターフェース1430は、プロセッサーシステム1410が別のプロセッサーシステムと通信することを可能にする例えばイーサネット(登録商標)装置、非同期転送モード(ATM)装置、802.11装置、DSLモデム、ケーブル・モデム、セルラーモデムなどであってよい。
【0091】
メモリ制御器1420とI/Oコントローラ1422は、
図14においてチップセット1418内の別々の機能ブロックとして表されているが、これらのブロックにより実行される機能は、単一の半導体回路内に統合しても、個別の集積回路を二つ以上用いても実施しうるものである。
【0092】
実施例として挙げられる特定の方法、機器および製造品が本明細書において記載されているが、この特許の適用領域の範囲はそれに限定されるものではない。それとは逆に、本特許は、字義的にもしくは均等論に基づいて添付の特許請求の範囲内に公正に含まれる方法、機器および製造品の全てを網羅するものである。