(58)【調査した分野】(Int.Cl.,DB名)
前記モジュールクラスオブジェクトの修正を検出することは、修正が加えられた前記モジュールクラスオブジェクトがコンフィギュレーションデータベースに保存されたことを検出することを含んでいる請求項1記載の方法。
前記モジュールクラスオブジェクトの修正を検出することは、修正が加えられた前記モジュールクラスオブジェクトがバージョン管理システムを通じてチェックインされたことを検出することを含んでいる請求項1記載の方法。
修正が加えられた前記モジュールクラスオブジェクトの前記バージョン識別子を修正が加えられた前記複数のモジュールオブジェクトの各々と関連付けすることは、修正が加えられた前記モジュールクラスオブジェクトの前記バージョン識別子を修正が加えられた前記複数のモジュールオブジェクトの各々の一部として格納することを含んでいる請求項1記載の方法。
修正が加えられた前記モジュールクラスオブジェクトの前記バージョン識別子を修正が加えられた前記複数のモジュールオブジェクトの各々と関連付けすることは、修正が加えられた前記モジュールクラスオブジェクトの前記バージョン識別子に修正が加えられた前記複数のモジュールオブジェクトの各々をリンクさせることを含んでいる請求項1記載の方法。
下記(j)〜(k)を前記プロセッサにより実行されるように構成された、前記コンピュータ読み取り可能媒体に格納されているコンフィギュレーションとバージョン管理ルーチンと、
(j)修正が加えられた前記複数のモジュールオブジェクトに対してそれぞれに対応するバージョン識別子を生成する、
(k)修正が加えられた前記複数のモジュールオブジェクトの前記バージョン識別子を適切な修正が加えられた前記モジュールオブジェクトと関連づける、
を有して構成されている請求項7記載のコンフィギュレーションシステム。
前記コンフィギュレーションおよび前記バージョン管理ルーチンが、修正が加えられた前記モジュールクラスオブジェクトが前記データベースに保存されたことを検出することにより前記モジュールクラスオブジェクトの修正を検出すべく前記プロセッサにより実行されるように構成されている請求項7記載のコンフィギュレーションシステム。
下記(l)〜(n)を前記プロセッサにより実行されるように構成された、前記コンピュータ読み取り可能媒体に格納されているコンフィギュレーションとバージョン管理ルーチンと、
(l)ユーザに前記モジュールクラスオブジェクトのチェックアウトを許可する、
(m)ユーザに前記モジュールクラスオブジェクトのチェックインを許可する、
(n)修正が加えられた前記モジュールクラスオブジェクトがチェックインされたことを検出することにより前記モジュールクラスオブジェクトの修正を検出する、
を有して構成されている請求項7記載のコンフィギュレーションシステム。
前記コンフィギュレーションおよび前記バージョン管理ルーチンが、修正が加えられた前記複数のモジュールオブジェクトの各々の一部として修正が加えられた前記モジュールクラスオブジェクトの前記バージョン識別子を格納すべく前記プロセッサにより実行されるように構成されている請求項7記載のコンフィギュレーションシステム。
前記コンフィギュレーションおよび前記バージョン管理ルーチンが、修正が加えられた前記複数のモジュールクラスオブジェクトの前記バージョン識別子に修正が加えられた前記複数のモジュールオブジェクトの各々をリンクさせるべく前記プロセッサにより実行されるように構成されている請求項7記載のコンフィギュレーションシステム。
前記モジュールクラスオブジェクトと関連づけされた前記バージョンデータを修正が加えられた前記モジュールオブジェクトと関連づけすることが、前記モジュールクラスオブジェクトと関連づけされた前記バージョンデータを修正が加えられた前記モジュールオブジェクトの一部として格納することを含んでいる請求項13記載の方法。
前記モジュールクラスオブジェクトと関連づけされた前記バージョンデータを修正が加えられた前記モジュールオブジェクトと関連付けすることが、前記モジュールクラスオブジェクトと関連づけされた前記バージョンデータに修正が加えられた前記モジュールオブジェクトをリンクさせることを含んでいる請求項13記載の方法。
前記モジュールオブジェクトの修正を検出することが、修正が加えられた前記モジュールオブジェクトを作成した前記モジュールクラスオブジェクトの一または複数の修正を検出することを含んでいる請求項13記載の方法。
前記モジュールオブジェクトの修正を検出することが、修正が加えられた前記モジュールオブジェクトを作成した前記モジュールクラスオブジェクトに影響を及ぼさない前記モジュールオブジェクトの修正を検出することを含んでいる請求項13記載の方法。
格納されている前記バージョン管理ルーチンが、修正が加えられた前記モジュールオブジェクトを作成した前記一または複数のモジュールクラスオブジェクトの一または複数の修正に起因する前記モジュールオブジェクトの修正を検出すべく前記プロセッサにより実行されるように構成されている請求項18記載のコンフィギュレーションシステム。
格納されている前記バージョン管理ルーチンが、修正が加えられた前記モジュールオブジェクトを作成した前記一または複数のモジュールクラスオブジェクトに影響を及ぼさない前記モジュールオブジェクトの修正を検出すべく前記プロセッサにより実行されるように構成されている請求項18記載のコンフィギュレーションシステム。
【発明を実施するための最良の形態】
【0014】
ここで、
図1を参照すると、プロセスプラント10は、イーサネット(登録商標)接続またはイーサネット(登録商標)バス15などを介して、複数のワークステーション14に接続されている一または複数のコントローラ12を備えている。これらのコントローラ12もまた、複数組の通信回線または通信バス18を介して、プロセスプラント10内のデバイスまたは装置と接続されているが、複数の組の通信回線18のうちのコントローラ12aに接続されている通信回線のみが
図1に示されている。一例としてフィッシャーローズマウントシステムズ社から販売されているDeltaV(登録商標)コントローラなどにより実現されうる上記コントローラ12は、プロセスプラント10全体に分散されているフィールドデバイスおよびフィールドデバイス内の機能ブロックの如き制御エレメントと通信し、一または複数のプロセス制御ルーチン19を実行し、プロセスプラント10の所望の運転を実行することが可能である。(たとえばパーソナルコンピュータでありうる)ワークステーション14は、コントローラ12により実行されるプロセス制御ルーチン19およびワークステーション14または他のコンピュータにより実行される表示ルーチンを設計し、かかるプロセス制御ルーチン19をコントローラ12にダウンロードするようにコントローラ12と通信するために、一または複数のコンフィギュレーションエンジニアにより用いられうる。さらに、ワークステーション14は、プロセスプラント10の運転中にプロセスプラント10またはそのエレメントに関する情報を受信・表示する表示ルーチンを実行しうる。
【0015】
ワークステーション14の各々は、コンフィギュレーション設計アプリケーションおよび表示アプリケーションまたは閲覧アプリケーションの如きアプリケーションを格納するするとともにプロセスプラント10のコンフィギュレーションに関するコンフィギュレーションデータの如きデータを格納するメモリ20を備えている。また、ワークステーション14の各々は、プロセス制御ルーチンおよび他のルーチンを設計してこれらのプロセス制御ルーチンをコントローラ12にダウンロードすること、またはプロセスプラント10の運転中に情報を収集してユーザに対して表示することをコンフィギュレーションエンジニアに可能にするアプリケーションを実行するプロセッサ21を備えている。
【0016】
さらに、コントローラ12の各々は、制御アプリケーションおよび通信アプリケーションを格納するメモリ22と、任意の公知の方法でそれらの制御アプリケーションおよび通信アプリケーションを実行するプロセッサ24とを備えている。一つのケースでは、コントローラ12の各々は、複数の異なる独立実行型の制御モジュールまたはプロセス制御ルーチン19を用いて制御戦略を実現するコントローラアプリケーションを格納・実行する。これらのプロセス制御ルーチン19の各々は、一般的に機能ブロックと呼ばれているものからなっていてもよい。ここで、各機能ブロックは、制御ルーチン全体の一部またはサブルーチンであり、プロセスプラント10内のプロセス制御ループを実行すべく、(リンクと呼ばれる通信施設を介して)他の機能ブロックとともに動作する。公知のように、オブジェクト指向型プログラミングプロトコルのオブジェクトでありうる機能ブロックは、通常、トランスミッタ、センサ、または他のプロセスパラメータ測定デバイスに関連する入力機能の如き入力機能、PID制御、ファジーロジック制御などを実行する制御ルーチンに関連する制御機能の如き制御機能、またはプロセスプラント10内のなんらかの物理的機能を実行するバルブの如きなんらかのデバイスの動作を制御する出力機能のうちの一つを実行する。もちろん、モデル予測コントローラ(MPC)、オプチマイザなどの如きハイブリッドおよび他のタイプの複合機能ブロックも存在する。FieldbusプロトコルおよびDeltaV(登録商標)システムプロトコルは、オブジェクト指向型プログラミングプロトコルに従って設計・実行される制御モジュールおよび制御機能ブロックを用いるが、これらの制御モジュールは、たとえばシーケンシャル機能ブロック、ラダーロジックなどを含むいかなる所望の制御プログラミングスキームを用いて設計されてもよく、機能ブロックまたはその他特定のプログラミング技術を用いて設計されることには限定されない。
【0017】
ワークステーション14は、プロセス制御ルーチン19内の制御エレメントとこれらの制御エレメントがプロセスプラント10の制御を行うように構成される様態とを示す表示スクリーンを介して、コントローラ12内のプロセス制御ルーチン19の画像表示をユーザに対して提供しうる。
図1のシステムでは、コンフィギュレーションデータベース25は、イーサネット(登録商標)バス15に接続され、コントローラ12およびワークステーション14により用いられるコンフィギュレーションデータを格納するとともに、将来の利用のためにプロセスプラント10において生成されるデータを収集・格納することによりデータヒストリアンとして機能する。
【0018】
図1に示されているプロセスプラント10では、コントローラ12aは、本明細書においてReactor_01、Reactor_02、およびReactor_03と呼ばれる、(プラント10内の複製装置である)三組の同様に構成された反応装置にバス18を介して通信可能に接続されている。Reactor_01は、反応容器またはタンク100と、酸、アルカリ、および水を反応容器100に提供する流体流入管を制御するようにそれぞれ対応して接続される(装置エンティティである)三つの供給用バルブシステム101、102、103と、反応容器100から流出する流体を制御するように接続される流出用バルブシステム104とを備えている。レベルセンサ、温度センサ、圧力センサなどの如き任意のタイプのセンサでありうるセンサ105は、反応容器100の内部または近傍に配置されている。ここでの説明上、センサ105は、レベルセンサであると想定する。さらに、共有ヘッダバルブシステム110は、上記の反応装置の各々への流水量を制御する主制御装置を提供するために、給水管のうちの、上記反応装置Reactor_01、Reactor_02、およびReactor_03の各々に対する上流側で接続されている。
【0019】
同様に、Reactor_02は、反応容器200と、三つの供給用バルブシステム201、202、203と、流出用バルブシステム204と、レベルセンサ205とを備えており、Reactor_03は、反応容器300と、三つの供給用バルブシステム301、302、303と、流出用バルブシステム304と、レベルセンサ305とを備えている。
図1の一例では、供給用バルブシステム101、201、301が酸を供給し、供給用バルブシステム102、202、302がアルカリを供給し、供給用バルブシステム103、203、303が共有ヘッダバルブシステム110とともに水を反応容器100に供給して、反応装置Reactor_01、Reactor_02、およびReactor_03は塩を製造しうる。流出用バルブシステム104、204、304は、
図1の右方向に向かうフローラインから製品を流出し、
図1の下向に向かうフローラインから廃棄物または他の不必要な材料を排出すべく動作しうる。
【0020】
コントローラ12は、反応装置ユニットに関する一または複数の動作を実行すべくバス18を介してバルブシステム101〜104、110、201〜204、301〜304と、センサ105、205、305とに通信可能に接続され、これらのエレメントの動作を制御する。かかる動作は、フェイズと一般的に呼ばれ、たとえば反応容器100、200、300を充填すること、反応容器100、200、300内の材料を加熱すること、反応容器100、200、300を空にすること、反応容器100、200、300を洗浄することなどが含まれる。
【0021】
図1に示されているバルブ、センサ、および他の装置は、たとえばFieldbusデバイス、4〜20maデバイス、HARTデバイスなどを含むいかなる所望の種類またはタイプの装置であってもよく、Fieldbusプロトコル、HARTプロトコル、4〜20maアナログプロトコルなどの如きいかなる公知のまたは所望の通信プロトコルに準拠するコントローラ12と通信してもよい。さらに、本明細書で説明する原理に従って、他のタイプのデバイスが、コントローラ12に接続されてもよいし、またコントローラ12により制御されてもよい。また、プロセスプラント10に関連する他のデバイスまたは領域を制御するために、プラント10内において、他の数のコントローラおよび他のタイプのコントローラが接続されてもよい。この追加されたコントローラの動作は、
図1に示されているコントローラ12の動作と、いかなる所望の方法により協調させられてもよい。
【0022】
一般的にいえば、
図1のプロセスプラント10は、塩の如き製品の生産に必要とされる一連の異なる(通常フェイズと呼ばれる)ステップを実行するように反応装置ユニットのうちの一または複数(および他の装置)の動作を方向付けする高レベルの制御ルーチンであるバッチ実行ルーチンを、たとえばワークステーション14のうちの一つまたはコントローラ12aが実行するバッチプロセスを実現するために用いられる。異なるフェイズを実行するために、バッチ実行ルーチンは、実行されるステップ、これらのステップに関連する量および時間、ならびにこれらのステップの順序を明記するいわゆるレシピと呼ばれているものを用いる。一つのレシピには、たとえば、反応容器を適切な材料または原料で充填すること、反応容器内の材料を混合すること、反応容器内の材料を特定の時間、特定の温度で加熱すること、反応容器を空にすること、および次のバッチランの準備として反応容器を洗浄することが含まれうる。これらのステップの各々はバッチランのフェイズを規定しており、コントローラ12内のバッチ実行ルーチンはこれらのフェイズの各々に対して異なる制御アルゴリズムを実行する。もちろん、特定材料、材料の量、加熱温度、時間などは個々のレシピに応じて異なりうるので、これらのパラメータは、製造または生産される製品および用いられるレシピに応じて、バッチ毎に変わる。当業者にとって明らかなように、本明細書では、
図1に示された反応装置内におけるバッチランのための制御ルーチンおよび構成が記載されているが、他の所望のデバイスを制御して、その他の所望のバッチプロセスを実行するために、または、所望ならば、連続プロセスランを実行するために、制御ルーチンが用いられてもよい。
【0023】
また、いうまでもなく、バッチプロセスの同一のフェイズまたはステップが、同一のまたは異なる時間に、
図1の別々の反応装置ユニットに対して実行されてもよい。さらに、
図1の反応装置ユニットは、同一の数の同一のタイプの装置を一般的に備えているので、特定のフェイズに対する同一の包括的フェイズ制御ルーチンを、別々の反応装置ユニットの制御に用いてもよい。ただし、これらの異なる反応装置ユニットに関連する異なるハードウェアまたは装置を制御するためにこの包括的フェイズ制御ルーチンを修正する必要がある。たとえば、(反応装置ユニットが充填される、)Reactor_01に対する充填フェイズを実行するために、充填制御ルーチンは、たとえば容器100が満タンであることをレベルメータ105が感知する特定の時間、供給用バルブシステム101、102、103に関連する一または複数のバルブを開ける。しかしながら、この供給用バルブの指定を、バルブシステム101、102、103に代わりにバルブシステム201、202、203に関連する供給用バルブに変更し、レベルメータの指定を、レベルメータ105に代わりにレベルメータ205に変更するのみで、上記の同一の制御ルーチンがReactor_02に対する充填フェイズの実行に用いられうる。
【0024】
図2は、
図1の反応装置のうちの一つ、とくにReactor_01を詳細に示している。
図1に同様に示されているように、
図2のReactor_01は、反応タンク100と、酸、アルカリ、および水をタンク100に供給する供給用バルブシステム101、102、103、110と、材料をタンク100から取り除く流出用バルブシステム104と、レベルセンサ105とを備えている。
図2にさらに示されているように、供給用バルブシステム101、102、103の各々はトータライザと呼ばれる同種の装置を用いており、このトータライザは、相互に平行に配置された二つのバルブと、これらの二つのバルブの下流に配置された流量測定デバイスとを備えている。
図3にさらに詳細に示される供給用バルブシステム101のトータライザは、粗調整バルブと呼ばれるオン/オフ型バルブ101aと、微調整バルブと呼ばれるオン/オフ型バルブ101bと、これらのバルブ101a、101bの下流に配置された流量計101cとを備えている。トータライザ101は、それに関連する一または複数の制御モジュールまたは制御ルーチンを有しており、これらの制御モジュールまたは制御ルーチンは、流量メータ101cにより測定された測定結果を用いて酸の供給量を制御すべく用いられる。第一の制御ルーチンは、粗調整バルブ101aおよび微調整バルブ101bを用いるトータライザ101を介して、高速の流量制御を行いうるし、第二の制御ルーチンは、粗調整バルブ101aおよび微調整バルブ101bを用いるトータライザ101を介して、高精度の流量制御を行いうる。
【0025】
図2から明らかなように、アルカリ供給用バルブシステム102は、粗調整バルブ102aと、微調整バルブ102bと、流量メータ102cとを有するトータライザを備えており、共有ヘッダバルブシステム110は、粗調整バルブ110aと、微調整バルブ110bと、流量メータ110cとを備えている。トータライザ101、102、110の各々は、同一のユニット、すなわちReactor_01の異なる場所で用いられるが、その内部には同一のタイプの複製装置を有している。同様に、Reactor_02およびReactor_03もまた、供給用バルブシステム201、202、301、302においてトータライザを備えている。
【0026】
同様に、流出用バルブシステム104は、三つのバルブを備える他の複製装置である。
図4に最もよく示されているように、流出用バルブシステム104は、タンク100からの材料の放出のために開かれなければならない主流出用バルブ104aと、タンク100からの製品の搬送のために主流出用バルブ104aとともに開かれなければならない製品用バルブ104bと、タンク100から廃液システムまたは保存システムに廃棄製品、洗浄液などの如き材料を排出するために主流出用バルブ104aとともに開かれなければならない排液用バルブ104cを備えている。もちろん、タンク100を閉める目的、タンク100を空にする目的、またはタンク100からの製品を排出する目的でバルブ104a、104b、および104cの状態を制御するために、一または複数の制御ルーチンが流出用バルブシステム104に関連付けされてもよい。
【0027】
従来、
図1の反応装置Reactor_01、Reactor_02、Reactor_03と関連するさまざまな装置を制御する制御ルーチンを作成するために、コンフィギュレーションエンジニアは、まず、実質的に包括的である、たとえばワークステーション14のうちの一つに格納される複数の制御モジュールテンプレートを作成していた。制御モジュールテンプレートを作成するために、エンジニアは、画像を用いて異なる制御機能ブロックを相互に接続することにより、反応装置により実行される、さまざまなエレメントまたはループの制御ルーチンを提供していた。通常バルブまたは制御ループに基づいて包括的制御モジュールテンプレートがいったん作成されると、これらの制御モジュールテンプレートがコピーされていた。制御モジュールテンプレートのコピーは、プラント10内の特定の装置、たとえば反応装置Reactor_01、Reactor_02、Reactor_03内の特定の装置に手動により結びつけられることが可能であった。米国特許第6,385,496に記載されているように、いったん直接にまたは別名を用いて結びつけられると、制御モジュールテンプレートの結びつけられたコピーは、一または複数のコントローラ12にダウンロードされ、それらのコピーが結びつけられている反応装置に対してプロセス制御アクティビティを実行すべく用いられていた。しかしながら、制御モジュールテンプレートから作成された、結びつけられている制御モジュールは、プロセスプラントにおいて用いられる場合、それを構成している制御モジュールテンプレートのリファレンス情報またはそれとの関係を有しておらず、事実上は、スタンドアロン制御モジュールまたはスタンドアロン制御オブジェクトであった。
【0028】
また、これらのシステムでは、コンフィギュレーションは、制御モジュールレベルで行わなければならなかった。すなわち、プロセスプラント内のさまざまな装置またはループの各々に対して別々の制御モジュールを作成しなければならなかった。制御モジュールレベルでは、プロセスプラント内のプロセスエンティティの各々に対して作成されそれに結びつけられなければならない異なるタイプの制御モジュールが一般的に数多く存在する。したがって、コンフィギュレーションエンジニアは、多くの時間を、個々の制御モジュールをコピーしてプラント内の個々の装置に結びつけるのみに費やしていた。たとえば、コンフィギュレーションエンジニアは、プラント内の一つの反応装置ユニットために何ダースもの制御モジュールを作成しコピーし、これらの制御モジュールの各々をその反応装置ユニット内の特定の装置に結びつけなければならないことがあった。この反応装置ユニットがプラント内で複製されたときは、そのコンフィギュレーションエンジニアが、複製された装置の各々の何ダースもの制御モジュールに対し上記のコピー作業および結びつけ作業を実行しなければならなかったので、そのコンフィギュレーションエンジニアの作業はさらに単調になって、時間のかかる、人的エラーの発生を伴うものとなった。
【0029】
従来、コンフィギュレーションエンジニアは、ユニットモジュールを作成することができたが、これらのユニットモジュールは、ユニット上で実行されうるフェイズ用の収容部に過ぎず、そのユニットまたはそのユニット内の装置の基本動作を制御すべく用いられる制御スキームに関連する装置リファレンス情報を有していなかった。また、異なる装置の制御に用いられる制御エレメントに対してテンプレートを作成することができたが、装置エンティティおよびユニットエンティティの如き、プラント内の高レベルの複製エンティティを参照すべく用いられうるパッケージ化された制御モジュールがなかった。換言すれば、プロセスプラント10内のさまざまな複製エンティティに対して制御ルーチンを作成するために、コンフィギュレーションエンジニアは、低レベルの制御における装置の複製の各々に対して制御モジュールをコピーし、これらの制御モジュールの各々を、プロセスプラント10内の特定のまたは指定の装置または他のエンティティに応じて調整しなければならなかった。複数の複製装置を備えた大規模のプラントでは、このような作業は、時間がかかるとともに構成エラーを伴いうるものであった。さらに、複製装置に関連する制御モジュールに対する変更は、異なる装置の異なる制御モジュールに対して手作業により加えなければならなかったので、単調な、時間のかかる、オペレータによるエラーの発生をともなうものであった。同様に、オペレータ用の表示画面は、制御モジュールとは別に作成しなければならず、制御モジュールの場合と同様に、表示画面は、個別に作成され、一部変更され、プロセスプラント内の装置に結びつけられねばならなかった。
【0030】
プロセスコンフィギュレーションの作成および変更を容易でかつ時間の余りかからないものにするために、
図1のワークステーション14のうちの一つに格納されるコンフィギュレーションアプリケーションは、プロセスプラント10の構成に用いられる一組のモジュールクラスオブジェクトを有している。これらのモジュールクラスオブジェクトは、複数の組の複製装置を用いてプラントを構成する場合にとくに有効である。一般的にいえば、異なるモジュールクラスオブジェクト52は、プロセスプラント10内で複製または利用される異なるタイプの物理的なユニットまたは装置の各々、プロセスプラント10内で複製または利用される制御アクティビティの各タイプ、プロセスプラント10内で複製または利用される異なるタイプの表示アプリケーションの各々などに対して作成されうる。いったん作成されると、モジュールクラスオブジェクト52は、そのモジュールクラスオブジェクトに対応する、プロセスプラント10内のエレメントを構成すべく用いられうる。
【0031】
プロセスエンティティの実質的に包括的バージョンであるとともに特定のエンティティに結びつけられていないモジュールクラスオブジェクトは、それらに関連する低レベルオブジェクトまたはインスタンス53、54、55、56(以下モジュールオブジェクトまたはモジュールブロックと呼ぶ)を有しうる。各モジュールオブジェクトは、モジュールクラスオブジェクトから作成され、これを構成しているモジュールクラスオブジェクトと同一の構造および性質を引き継いでいる。しかしながら、各モジュールオブジェクトは、プロセスプラント10内の特定のエンティティに結びつけられている。したがって、単一のモジュールクラスオブジェクト52が特定のタイプの反応装置ユニットを(プラント10内に存在するそのような反応装置ユニットの数に関係なく)表現すべく作成されうるし、その一方で、異なるモジュールオブジェクト53がプラント10内に実際に存在するそのタイプの異なる反応装置ユニットの各々に対して存在しうるしまたは作成されうる。
【0032】
モジュールクラスオブジェクトから作成されるモジュールオブジェクトは、そのモジュールクラスオブジェクトに関連付けされ、それにより保有される。したがって、そのモジュールクラスオブジェクトに対して加えられた変更は、そのモジュールクラスオブジェクトに関連付けされているモジュールオブジェクトの各々に自動的に反映されるかまたは伝達される。したがって、複数のモジュールオブジェクトが一つの特定のモジュールクラスオブジェクトから作成されており、これらの異なるモジュールオブジェクトの各々が異なるプロセスエンティティに結びつけられているような場合には、そのモジュールクラスオブジェクトを変更して、その変更を、関連づけされているモジュールオブジェクトに自動的に伝達させるだけで、上記の異なるモジュールオブジェクトに対して変更を加えることが可能である。
【0033】
同様に、いったんモジュールクラスオブジェクトからモジュールオブジェクトが作成されると、これらのモジュールオブジェクトを、バルク編集手法を用いて、プロセスプラント10内の特定の装置に結びつけうる。具体的にいえば、特定のモジュールクラスオブジェクトのモジュールオブジェクトがすべて同一のモジュールクラスオブジェクトに結合または保有されているので、たとえば表計算タイプのアプリケーションを用いてこれらのモジュールオブジェクトをすべて一緒に設定することが可能となり、このことにより、モジュールオブジェクトとこれらのモジュールオブジェクトに関連づけされているプラント10内の特定の装置との間に特定の関係を指定することがより容易なものとなるとともにさらに時間のかからないものとなる。
【0034】
図1のモジュールクラスオブジェクト52は、いわゆるオブジェクト指向型のプログラミング環境またはプログラミング言語のオブジェクトでありうる。したがって、これらのオブジェクトは他のオブジェクトを保有するまたは参照することができる。一般的にいえば、モジュールクラスオブジェクト52は、高級オブジェクトであり、これらの高級オブジェクトは、プロセスエンティティに関連する制御ルーチン、装置、または他のエレメントの如き個々のエレメントの表示情報または定義情報に加えて、物理エレメントが相互接続される様式または論理エレメントが物理エレメントとともに動作する様式の如き上記の個々のエレメントが相互に動作する様式の定義情報または表示情報を有している。換言すれば、モジュールクラスオブジェクトは、プロセスプラント10内の特定の装置または特定のグループの装置、制御エレメント、表示画面などを制御・閲覧する基盤を提供する、たとえばオブジェクト指向型プログラミング言語のオブジェクトでありうるし、プロセスプラント10内の異なる複製装置を構成に用いるべく、そのエレメントのインスタンスを多く作成するのに有用でありうる。
【0035】
基本的に、各モジュールクラスオブジェクトはコンフィギュレーションコンテナであり、このコンフィギュレーションコンテナは、プロセスエンティティに対する包括的な定義を、そのエンティティを制御するためにコントローラ12により用いられるべく、またはそのエンティティに関する表示アクティビティを実行するためにワークステーション14により用いられるべくそのエンティティに適応可能なさまざまな制御および/または表示のためのアプリケーションまたはルーチンの形態で有している。このモジュールクラスオブジェクトは、ユニット、装置、制御エンティティ表示アプリケーションなどの如き任意の種類のプロセスエンティティを表現しうる。プロセスプラント10のコンフィギュレーション中、モジュールクラスオブジェクトは、そのモジュールクラスオブジェクトにより定められた定義に準拠する任意の数の異なるプロセスエンティティに対し、そのプロセスエンティティのコンフィギュレーションインスタンスを作成すべく用いられうる。各コンフィギュレーションインスタンス(モジュールクラスオブジェクトから作成されたモジュールオブジェクト)は、異なる実際のプロセスエンティティと関連づけられるかまたは結びづけられている。これらの異なるモジュールオブジェクトには、とりわけ、プロセスプラント10内に配置される特定のプロセスエンティティに結びつけられる制御ルーチンおよび/または表示ルーチンが含まれ、制御ルーチンは、プロセスエンティティに対して実際の制御アクティティビティを実行すべく
図1のコントローラ12内にダウンロードされ用いられることが可能であり、表示ルーチンは、プロセスプラント10の運転中に、エンティティに関する実際の表示アクティビティを実行すべくワークステーション14へダウンロードされることが可能である。
【0036】
異なるタイプのモジュールクラスオブジェクトは、異なる適用範囲を有するプロセスエンティティを反映しうるので、異なる適用範囲を有するプロセスエンティティによりまたはそれに対して動作するように構成された制御ルーチンおよび/または表示ルーチンを含んでいる。ユニットの如きプロセスエンティティの適用範囲が大きければ大きいほど、より多くの制御ルーチンおよび/または表示ルーチンが通常そのモジュールクラスオブジェクトに関連づけされ、これらのモジュールクラスオブジェクトを用いてプラントの領域を構成することがより容易となる。しかしながら、モジュールクラスオブジェクトに関連づけされるプロセスエンティティの適用範囲が大きければ大きいほど、そのプロセスが、その適用範囲内において複製装置を含む可能性がより小さなものとなり、大規模な場合においてそのモジュールクラスオブジェクトが有用である可能性が小さくなる。これに対し、モジュールクラスオブジェクトに関連づけされるプロセスエンティティの適用範囲が小さければ小さいほど、そのモジュールクラスオブジェクトをプラントのさまざまな異なるロケーションにおいて使用可能である可能性が大きくなるが、どのような特定の場合であってもこのモジュールクラスオブジェクトを用いるときに実行されるコンフィギュレーションの量が小さくなる。いずれの場合であっても、モジュールクラスオブジェクトは、制御モジュールレベルにおけるよりも高度の抽象化レベルで異なる複製装置に対してコンフィギュレーションを実行することを可能とし、このことにより、複製装置ユニットおよび他の装置を備えるプロセスプラントを構成することが、モジュールクラスオブジェクト、とくにユニットレベルのように広い適用範囲を有するモジュールクラスオブジェクトを用いる場合により容易なものとなるとともにさらに時間のかからないものとなる。
【0037】
一つの実施例では、プロセスプラントを構成する場合、コンフィギュレーションエンジニアは、
図1の異なる反応装置に対するように、プロセスプラント内の複製されている異なるエレメントに対して単一のモジュールクラスオブジェクトを作成しうる。そのあと、コンフィギュレーションエンジニアは、
図1の実際の反応装置の各々に対して上記のモジュールクラスオブジェクトのインスタンス(モジュールオブジェクト)を作成しうる。このように作成されたモジュールオブジェクトの各々は、
図1の反応装置のうちの一つを動作させるべくコントローラ12aにより用いられる制御ルーチンを有しうるし、とくに
図1の反応装置のうちの一つ内の装置と、結合させられるかまたは結び付けられる。次いで、これらの制御ルーチンは、コントローラ12へダウンロードされ、プロセスプラント10の運転中に用いられることが可能である。しかしながら、モジュールオブジェクトの各々は、いったん作成されたあとでも、モジュールクラスオブジェクトに依然として結びつけられており、そのモジュールオブジェクトを変更するために、そのモジュールオブジェクトへのアクセスを提供または拒絶するために、制御されることが可能である。同様に、同一のモジュールクラスオブジェクトからのモジュールオブジェクトは、それらを、一緒に作成・定義されること、たとえば表計算プログラムを用いてプラント内の装置に結びつけられることが可能である。
【0038】
プロセスプラント内でコンフィギュレーションアクティビティを実行すべくプロセスプラント内で作成・使用されうるモジュールクラスオブジェクトの可能なタイプには他にも多くあるが、一例として本明細書に記載される四つの特定のタイプには、ユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトが含まれる。一般的にいえば、各異なるタイプのモジュールクラスオブジェクトは、プロセスプラント10内での異なる制御範囲または使用範囲に対して構成されたものまたは異なる制御範囲または使用範囲を意図した物である。ユニットモジュールクラスオブジェクトは、プロセスプラント内の広範囲の装置に対する制御アクティビティを表現(または構成)すべく用いられることを意図したものである。具体的にいえば、ユニットモジュールクラスオブジェクトは、たとえばなんらかの公知の方法で相互に協力して動作する個々のエレメントを備える
図1の反応装置の如き相互に関連する一組の装置(通常、複製装置)のモデル化をまたは構成に利用されることを意図したものである。
【0039】
装置モジュールクラスオブジェクトは、プロセスプラント内の上記よりも狭い範囲の物理装置に対する制御アクティビティの表現(および構成)に用いられることを意図したものである。装置モジュールクラスオブジェクトに関連する装置は、通常、ユニットのサブシステムを構成するバルブ、流量計などの如き一または複数の物理エンティティであり、この装置モジュールクラスオブジェクトは、上記のような装置に実行される、コマンド駆動型アルゴリズム(CDA)、シーケンシャルフローチャート(SFC)アルゴリズム、機能ブロックダイアグラム(FBD)アルゴリズム、フェイズアルゴリズムなどでありうる一または複数のコマンドまたはアルゴリズムを有しうる。このように、装置モジュールクラスオブジェクトは、ユニット内の複数の低レベルのコンポーネントまたはエンティティの制御を設定することにより、そのユニット内において上記のような装置が用いられた場合にその装置の一組の基本的な機能を実施可能にすることを目的としている。公知のように、コマンド駆動型アルゴリズム(コマンド駆動型制御論理)は、ある機能を達成するために、複数のステップを通して、低レベルコンポーネントを協調させなければならない場合に用いられる。たとえば、あるバルブは、特定の時間の間開放され、次いで、他のバルブが開放されてから閉鎖されるまでの間、閉鎖されなければならない場合がある。
図3のトータライザ101は、当該トータライザを通じて所望の全流量を供給すべく流量メータの読み取り値に基づいて粗調整用バルブおよび微調整バルブをまず作動させ操作するためにこのタイプのコマンド駆動型アルゴリズムを用いる。状態駆動型(状態駆動型制御ロジック)は、単一ステップで操作されうる異なる低レベルコンポーネントの状態を指定しうる。このような状態駆動型アルゴリズムは
図4の流出用バルブシステム104に用いられうる。ここでは、その内部の個々のバルブの状態が、タンク100を閉鎖するため、タンク100を空にするため、またはタンク100から製品を搬送するために、流出用バルブシステム104の所望の状態に基づいて別々に(しかし単一ステップで)制御される。
【0040】
制御モジュールクラスオブジェクトは、プロセスプラント内の個々の制御エレメントまたは制御モジュールを表現(および構成)するために用いられることを意図している。制御モジュールクラスオブジェクトは、バルブ、計器などの如きプラントエンティティ、装置、またはユニットに対して実行される特定のタイプの制御を提供または指定する。一般的にいえば、制御モジュールクラスオブジェクトは、プロセスプラント内の複製の制御アクティビティの実行に役立つ、コントローラにより実行されるなんらかの制御モジュールを規定する一組の通信可能に相互に接続される機能ブロックの如き特定のタイプの制御プログラミングを供する。ほとんどの場合、制御モジュールクラスオブジェクトは、単一のデバイスまたは一組の関連するデバイスを操作すべく包括的制御戦略を供する。
【0041】
表示モジュールクラスオブジェクトは、プロセスプラント10の運転中に制御オペレータの如きユーザにより閲覧される表示アクティビティを表現(および構成)すべく用いられることを意図したものである。したがって、表示モジュールクラスオブジェクトは、
図1のオペレータワークステーション14内に特定のタイプの表示画面を生成するために必要なプログラミングと、プラント10の運転中にこのプラントからの適切な情報を取得することをその表示画面に可能にすべくワークステーション14のうちの一または複数(ならびにプロセスプラント10内のその他のデバイス)により実行される必要があるプログラミングを指定しうる。表示クラスモジュールのタイプには、たとえばアラーム表示画面、コンフィギュレーション閲覧表示画面、オペレーション閲覧表示画面、診断表示画面などが含まれる。もちろん、表示モジュールクラスオブジェクトは、プロセスプラント内のいかなる所望の適応範囲を有する物理エレメントまたは物理エンティティを表すまたはそれに結びつけられる表示画面を供してもよい。たとえば、表示モジュールクラスオブジェクトは、プロセスプラント10内の全領域、ユニット、装置、制御エレメント、またはこれらのエレメントを組み合わせた物に関する情報を表示してもよい。
【0042】
図5を参照すると、階層構造グラフが
図1のコンフィギュレーションアプリケーション50に用いられるさまざまなタイプのモジュールクラスオブジェクト間の相互接続とともに、モジュールクラスオブジェクトとこれらのモジュールクラスオブジェクトから作成されたモジュールオブジェクトとの間の相互関係を示している。
図5のグラフの上側から始めると、モジュールクラスオブジェクトは、モジュールクラスタイプにより、ユニットモジュールクラスタイプ400、装置モジュールクラスタイプ402、制御モジュールクラスタイプ404、および表示モジュールクラスタイプ406のうちの一つへ分けられている。もちろん、他のタイプのモジュールクラスオブジェクトが提供または使用されてもよい。本明細書で示されているこれらの四つのタイプは、モジュールクラスタイプの一例に過ぎない。(たとえばオブジェクト指向型プログラミング言語の高レベルオブジェクトでありうるとともに、分かりやすいように二重線を用いて
図5に示されている)個々のモジュールクラスオブジェクトは、異なるタイプのモジュールクラス400、402、404、406の各々に該当する。具体的にいえば、プロセスプラント10の異なるユニットまたは異なるタイプのユニットに対して複数の異なるユニットモジュールクラスオブジェクトが存在しうる。たとえば、反応装置ユニットクラスモジュールオブジェクト410は、プロセスプラント10内の反応装置の特定のタイプまたはコンフィギュレーションを表しうる。同様に、パッケージャユニットモジュールクラスオブジェクト412は、プロセスプラント10内のパッケージングユニットの特定のタイプまたはコンフィギュレーションを表しうるし、ドライヤーユニットクラスモジュールオブジェクト414は、プロセスプラント10内のドライヤーユニットの特定のタイプまたはコンフィギュレーションを表しうる。もちろん、物理的構造において相互に異なる反応装置を表すべく一を超える反応装置ユニットモジュールクラスオブジェクトが存在してもよい。さらに、あるユニットモジュールクラスオブジェクトを用いて表されうるまたはモデル化されうるプラント内の異なるタイプのユニットをすべて記載するつもりはないが、当業者にとって明らかなように、異なるタイプのプラントには、ユニットモジュールクラスオブジェクトを用いてモデル化されうるまたは表されうる異なるタイプのユニットが数多くある。
【0043】
同様に、プロセスプラント10内の異なるタイプの装置を表し、モデル化し、構成するために用いられる装置モジュールクラスオブジェクトには異なものが数多くある。
図5に示されている一例としては、トータライザ装置モジュールクラスオブジェクト416および流出用バルブ装置モジュールクラスオブジェクト418が含まれており、その各々が、プロセスプラント10内の異なるタイプの装置(および好ましくは複製装置)に関連付けされている。同様に、オン/オフバルブ制御モジュールクラスオブジェクト422、レベルセンサ制御モジュールクラスオブジェクト424、および流量メータ制御モジュールクラスオブジェクト426として
図5に示されている異なるタイプの制御モジュールクラスオブジェクトが数多くある。さらに、表示モジュールクラスオブジェクトは、アラーム表示モジュールクラスオブジェクト432、閲覧表示モジュールクラスオブジェクト434、および診断表示モジュールクラスオブジェクト436として
図5に示されている。もちろん、本明細書記載の原理に従って、その他の所望のユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトがプロセスプラント10のコンフィギュレーション内で作成・使用されてもよい。
【0044】
各モジュールクラスオブジェクトは、それに関連するまたはそれにより保有されるサブオブジェクトを有しうる。これらのサブオブジェクトは、それ自体でモジュールクラスオブジェクトであってもよいし、または
図5に示されているように、それらが属するモジュールクラスオブジェクトのインスタンスとして作成されたモジュールオブジェクトであってもよい。
図5は、反応装置ユニットモジュールクラスオブジェクト410がそれに関連するReactor_01、Reactor_02,およびReactor_03と呼ばれる三つの反応装置モジュールオブジェクトを有しており、これらの反応装置モジュールオブジェクトが
図1のそれぞれ対応する反応装置に対応づけされている(すなわち、結びつけられている)ことを示している。また、
図5は、トータライザ装置モジュールクラスオブジェクト416が、Water1、Acid1,Acid2、Alkali1、およびAlkali2と呼ばれる五つの異なるモジュールオブジェクトを有するまたは保有しているものとして示している。どうように、オン/オフバルブ制御モジュールクラスオブジェクト422は、Coarse_Valve1、Coarse_Valve2,Coarse_Valve3,Fine_Valve1、Fine_Valve2,およびFine_Valve3と呼ばれるモジュールオブジェクト有しているものとして示されている。同様に、
図5のその他のユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトは、それらに関連する一または複数のモジュールオブジェクトを有しうる。しかしながら、分かりやすいように、これらのモジュールオブジェクトは、
図5には示されていない。
【0045】
図5では、Reactor_01ユニットモジュールオブジェクト、Reactor_02ユニットモジュールオブジェクト、Reactor_03ユニットモジュールオブジェクト、Acid1(装置)モジュールオブジェクト、Acid2(装置)モジュールオブジェクト、Acid3(装置)モジュールオブジェクト、Coarse_Valve1制御モジュールオブジェクト、Coarse_Valve2制御モジュールオブジェクト、Coarse_Valve3制御モジュールオブジェクト、Fine_Valve1制御モジュールオブジェクト、Fine_Valve2制御モジュールオブジェクト、Fine_Valve3制御モジュールオブジェクト、その他のユニットモジュールオブジェクト、装置モジュールオブジェクト、制御モジュールオブジェクト、および表示モジュールオブジェクトの各々は、プロセスプラント10内の実際のユニットアプリケーション、装置アプリケーション、制御アプリケーション、または表示アプリケーションに結びつけられている個別のオブジェクトである。たとえば、プラント10において用いられる物理的酸トータライザは複数存在しているので、コンフィギュレーションルーチンにおいて作成される酸トータライザモジュールオブジェクトは複数存在することになり、プラント10内に存在する個々の酸トータライザに対して別々の酸トータライザモジュールオブジェクトが存在する。しかしながら、これらの別々のトータライザモジュールオブジェクトは、同一のトータライザモジュールクラスオブジェクト416に結びつけられるかまたは保有されている。もちろん、
図5では、限られた数のモジュールクラスオブジェクトおよびそれらに関連するモジュールオブジェクトだけを示されているが、いうまでもなく、他のタイプのモジュールクラスオブジェクトが用いられてもよいし、異なるモジュールクラスオブジェクトの各々から任意の数のモジュールオブジェクトが作成されてもよい。
【0046】
図5のモジュールクラスオブジェクトの各々(したがって、それに加えて
図5のモジュールオブジェクトの各々)は、そのオブジェクトの一部として、そのモジュールを定義または構成する物理的または論理的なプロセスエレメントの定義情報または表示情報および、所望ならばこれらのプロセスエレメントがプロセスプラント10内でなんらかのアクティビティを実行するために物理的または論理的に相互に動作する様式の定義情報または表示情報を有しうる。たとえば、ユニットモジュールクラスオブジェクトは、通常、そのユニットとして定義されているプロセスエンティティ内のまたはそのプロセスエンティティを構成している物理的エレメントおよび制御エレメントのすべての表示情報を有している。また、このユニットモジュールクラスオブジェクトは、個々の部分の特定の構成および、これらの部分がユニットとして動作するために物理的にどのように相互に結びつけられかを規定しうる。同様に、装置モジュールクラスオブジェクトは、通常、装置として定義されるエンティティを制御するために用いられる制御ルーチンまたは制御モジュールと、これらの制御ルーチンを用いて、上記の部分が、プラント10に配置された場合に、装置として動作するために物理的にまたは論理的に相互に作用する様式を定義するコマンドとを有している。同様に、各制御モジュールクラスオブジェクトは、通常、プラント内で実行される、ある種の制御アルゴリズムの形式で制御アクティビティを定義する。また、各表示モジュールクラスオブジェクトは、プラント10内の指定されたタイプのユニット、装置、プラント領域、またはその他の物理的エンティティもしくは論理的エンティティに対して、とくに表示スクリーンコンフィギュレーションおよび表示される情報を定義し、もしあれば、収集されるデータおよび収集されるデータに加えられるデータ操作を定義する。
【0047】
モジュールクラスの定義の一部として、モジュールクラスオブジェクトは、その内部に組み込まれるまたはその内部で用いられる他のモジュールクラスオブジェクトを表示または定義する。この場合、モジュールクラスオブジェクトから作成されるモジュールオブジェクトは、モジュールクラスレベルで定義される関係に従って、他のモジュールクラスオブジェクトから作成される他のモジュールオブジェクトを組み込むか、参照するか、または包含する。厳密に必要というわけではないが、ユニットモジュールクラスオブジェクトは、他のユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトを組み込みうるし、装置モジュールクラスオブジェクトは、他の装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトを組み込みうる。制御モジュールクラスオブジェクトは、他の制御モジュールクラスオブジェクトおよび表示モジュールクラスオブジェクトを組み込むかまたは参照しうる。しかしながら、所望ならば、他のモジュールクラスオブジェクト関係も同様に用いてもよい。これらの組み込みの関係は、
図5の下側の大矢印により示され、表示モジュールクラスオブジェクトのうちのいずれかが制御モジュールクラスオブジェクト、装置モジュールクラスオブジェクトおよびユニットモジュールクラスオブジェクトのうちのいずれかにより包含または参照されてもよいこと、制御モジュールクラスオブジェクトのうちのいずれかが装置モジュールクラスオブジェクトおよびユニットモジュールクラスオブジェクトのうちのいずれかにより包含または参照されてもよいこと、装置モジュールクラスオブジェクトのうちのいずれかがユニットモジュールクラスオブジェクトのうちのいずれかに包含または参照されてもよいことを示している。いうまでもなく、モジュールクラスオブジェクトは、同一のタイプの他のモジュールクラスオブジェクトを組み込んでもよい。たとえば、ユニットモジュールクラスオブジェクトは、その定義の一部として、他のユニットモジュールクラスオブジェクトを組み込みうる。同様に、装置モジュールクラスオブジェクトは、他の装置モジュールクラスオブジェクトを包含しうるし、制御モジュールクラスオブジェクトは、他の制御モジュールクラスオブジェクトを包含しうるし、表示モジュールクラスオブジェクトは、他の表示モジュールクラスオブジェクトを包含しうる。もちろん、所望ならば、モジュールクラスオブジェクトは、複数回、他のモジュールクラスオブジェクトを使用してもまたは組み込んでもよい。たとえば、反応装置ユニットモジュールクラスオブジェクトは、トータライザ装置モジュールクラスオブジェクトを複数回組み込んでもまたは使用してもよい。というのは、反応装置ユニットモジュールクラスオブジェクトによりモデル化されている反応装置は、複数のトータライザ用インスタンスを有しているからである。
【0048】
また、いうまでもなく、第一のモジュールクラスオブジェクトが第二のモジュールクラスオブジェクトを組み込むまたは使用する場合、第一のモジュールクラスオブジェクトから作成されるまたはそのインスタンスとして作成されるモジュールオブジェクトはいずれも、第二のモジュールクラスオブジェクトから作成されるまたはそのインスタンスとして作成されるモジュールオブジェクトを組み込みまたは使用しうる。したがって、反応装置ユニットモジュールクラスオブジェクト410が、そのエレメントまたは一部として、トータライザモジュールクラスオブジェクト416を用いる場合、Reactor_01モジュールオブジェクトは、そのエレメントまたは一部としてAcid1モジュールオブジェクトの如きトータライザモジュールオブジェクトのうちの一つを使用または包含しうる。同様に、トータライザ装置モジュールクラスオブジェクトが、流出用バルブ装置モジュールクラスオブジェクトを組み込むまたは使用する場合、たとえばTotaliza_1と一意に命名されうる、トータライザ装置モジュールクラスオブジェクトから作成されるモジュールオブジェクトは、流出用バルブ装置モジュールクラスオブジェクトから作成されたとえばOutlet_Valve_2と一意に命名されるモジュールオブジェクトを有しうる。このようにして、モジュールクラスオブジェクトレベルで定義されるモジュールクラスオブジェクト間の関係が、それらのモジュールクラスオブジェクトから展開されるまたは作成されるモジュールオブジェクトに反映される。モジュールクラスオブジェクト(したがって、それに加えてモジュールオブジェクト)間のこのような相互接続および参照により、コンフィギュレーションアクティビティ中のオブジェクトの変更の可能性が増大されるとともにその転送の可能性が向上されることになるため、制御モジュールクラスオブジェクトおよび装置モジュールクラスオブジェクトの如き最初の一組のモジュールクラスオブジェクトが作成されたあとに、ユニットモジュールクラスオブジェクトの如きさらに複雑なモジュールクラスオブジェクトを、これらの初期のモジュールクラスオブジェクトを参照することにより容易に作成しうる。もちろん、モジュールクラスオブジェクトは他のモジュールクラスオブジェクトを参照または使用することが可能であるが、これに加えてまたはこれに代えて、モジュールクラスオブジェクトは、付属のモジュールクラスオブジェクトを備えていないバルブ、センサなどの如き単純オブジェクトまたはプロセスエンティティを定義または使用してもよい。これらの単純オブジェクトは、使用する制御ルーチンに関して、モジュールクラスオブジェクト自体の内に十分に定義されている。
【0049】
図6は、ユニットモジュールクラスオブジェクトに関連するまたはその内に存在するエンティティを記載または定義する一つの様式を示す反応装置ユニットモジュールクラスオブジェクト410の一例を示している。
図6に示されているように、この反応装置ユニットモジュールクラスオブジェクト410は、モジュールクラスオブジェクトが存在しないプロセスプラント10内の単純オブジェクトまたは単純エレメントであるタンク500の表示情報を有している。このタンク500が点線により示されている理由は、このタンクに関する入力/出力制御または実行する必要のある制御アクティビティまたは低レベルアクティビティが存在しないからである。したがって、タンク500は、反応装置ユニットモジュールクラスオブジェクト410と関連するその他のオブジェクト間の相互接続を示すために含まれているに過ぎない。また、反応装置ユニットモジュールクラスオブジェクト410は、それぞれ対応してAcid、Alkali、および水と命名された三つのトータライザ501、502、510を備えており、これらは、
図5のトータライザ装置モジュールクラスオブジェクト416の三つの異なるリファレンスである。水トータライザモジュールクラスオブジェクト510がユニットモジュールクラスオブジェクト410のうちの点線によって分離されている区域に示されることにより、この水トータライザモジュールクラスオブジェクト510が共有モジュールクラスオブジェクトであって、ユニットモジュールクラスオブジェクト410が、このオブジェクトに対する制御を他のユニットモジュールクラスオブジェクトと共有していることを示している。
図6の流出用オブジェクト504は、
図5の流出用バルブ装置モジュールクラスオブジェクト418のリファレンスであり、レベルセンサ505は、
図5のレベルセンサ制御モジュールクラスオブジェクト424のリファレンスであり、water_inバルブ503は、バルブオブジェクトのリファレンスである。このバルブオブジェクトのリファレンスは、単純バルブエレメントでありうるし(、したがって、ユニットモジュールクラスオブジェクト410内で十分に定義されている)か、またはコンフィギュレーション戦略のいずこかに定義されるバルブ制御モジュールクラスオブジェクトのリファレンスでありうる。また、反応装置ユニットモジュールクラスオブジェクト410の異なるエンティティまたは部分の間の物理的な相互接続が、これらの異なるエレメント間の相互接続を定義する目的で示されている。上記のように、ユニットモジュールクラスオブジェクト410または他のなんらかのタイプのモジュールクラスオブジェクトは、それに関連する包括的制御ルーチンを含む、そのモジュールクラスオブジェクト内で十分意に定義されている単純エレメントを有してもよく、および/またはそのモジュールクラスオブジェクト外で定義されているモジュールクラスオブジェクトのリファレンスを有してもよい。
【0050】
また、ユニットモジュールクラスオブジェクト410は、反応装置閲覧表示画面520および反応装置アラーム表示画面522と呼ばれる二つの例示的表示モジュールクラスオブジェクトを有しており、これらは、
図5の閲覧表示モジュールクラスオブジェクト434およびアラーム表示モジュールクラスオブジェクト432のリファレンスである。これらのオブジェクトは、反応装置ユニットモジュールクラスオブジェクト410に定義される反応装置ユニット装置または部分のうちのいずれかに関連する状態(たとえば、タンクの充填レベル)およびアラームを表示する包括的表示アクティビティを定義する。同様に、ユニットモジュールクラスオブジェクト410は、Doseフェイズクラスオブジェクト、Mixフェイズクラスオブジェクト、Drainフェイズクラスオブジェクト、およびFlushフェイズクラスオブジェクトとしてボックス524内に示されているフェイズクラスオブジェクトの如き他のエレメントを有しうるし、これらの各々は、ユニットモジュールクラスオブジェクト410により定義されるユニット上で作動される包括的制御ルーチンを定義している。このユニットモジュールクラスオブジェクトは、フェイズクラスオブジェクトに対して零以上の対応付けを有しうる。フェイズクラスオブジェクト524は、任意の所望の方法で、他の場所で定義され、ユニットモジュールクラスオブジェクト410にインポートされうる。ある意味において、フェイズクラス524は、ユニットを充填すること、ユニットを加熱すること、ユニットを空にすること、ユニットを洗浄することなどの如き異なる機能を実行すべく、ユニットモジュールクラスオブジェクト410により定義されたユニットに対して作動されうるコマンドまたはルーチンである。
【0051】
さらに、ユニットモジュールクラスオブジェクト410は、このユニットモジュールクラスオブジェクト410からコンフィギュレーションアプリケーション50(
図1)により作成されるモジュールクラスオブジェクトのリファレンスを格納するメモリまたは区域526を有しうる。この区域526は、本質的に、ユニットモジュールクラスオブジェクト410から作成されそれにより保有されたモジュールクラスオブジェクトのリストである。(もちろん、保有されているモジュールオブジェクトのこのようなリストおよび他の表示情報は、任意の所望の方法でワークステーション内にまたはコンフィギュレーションアプリケーション50により格納されてもよく、ユニットモジュールクラスオブジェクト410において物理的に収納される必要はない。)いずれの場合であっても、
図6の一例では、ユニットモジュールクラスオブジェクト410は、ユニットモジュールオブジェクトReactor_01、Reactor_02などを保有しており、これらの各々は、反応装置ユニットモジュールクラスオブジェクト410から作成されたものである。
【0052】
また、ユニットモジュールクラスオブジェクト410は、コンフィギュレーションアクティビティの間またはそのあとでユニットモジュールクラスオブジェクト410により実行されうる一組のメソッド530を有している。これらのメソッド530は、ユニットモジュールクラスオブジェクト410に対して加えられた変更をこのユニットモジュールクラスオブジェクト410により保有されるモジュールオブジェクト526の各々に自動的に伝送する変更管理メソッドまたは変更管理アプリケーションを有しうる。他のメソッドには、ユニットモジュールクラスオブジェクト410に対しておよび/もしくはそれにより保有されるユニットモジュールオブジェクト526のうちのいずれかに対してセキュリティ管理またはアクセス管理を行うセキュリティ管理メソッド、または、モジュールクラスオブジェクトもしくはそれから作成されるモジュールオブジェクトに対して変更パラメータおよび/もしくはセキュリティパラメーメソッドが含まれる。もちろん、種々のメソッド530が、ユニットモジュールクラスオブジェクト410に対してまたはそれに関してその他のプロシージャを実行してもよい。
【0053】
所望の場合には、ユニットモジュールクラスオブジェクト410は、このモジュールクラスオブジェクト410に加えられた変更がユニットモジュールオブジェクト526へ伝送される方法、およびセキュリティアクセスがユニットモジュールオブジェクト526において設定される方法を管理してもよい。このような機能を供する一つの方法は、変更がユニットモジュールオブジェクト526へ伝送され、そこで、セキュリティが処理される方法を指定するために、ユニットモジュールクラスオブジェクト410内に一または複数のフラッグまたはパラメータを設定することである。具体的にいえば、ユニットモジュールクラスオブジェクト410に対して加えられた変更をユニットモジュールオブジェクト526のうちの一または複数に自動的に伝送されるべきか否かを指定するために、一または複数の変更伝送パラメータが設定されうる。これらの変更伝送パラメータは、ユニットモジュールオブジェクト526に格納されうるし、ユニットモジュールクラスオブジェクトに対して加えられた変更がユニットモジュールオブジェクトに反映される必要があるか否かを、ユニットモジュールオブジェクト全体としてまたはサブエレメント毎に指定しうる。たとえば、ユニットモジュールクラスオブジェクト410は、(「C」の符号が付けられた)全域型変更パラメータ534を有しうる。このパラメータは、ユニットモジュールクラスオブジェクト410から作成された各ユニットモジュールオブジェクトに設定され、ユニットモジュールクラスオブジェクト410に加えられた変更がそのユニットモジュールオブジェクトに自動的に反映されることを有効または無効にしうる。同様に、ブロック501〜505、510、520、522の如き各サブエレメントまたは各ブロックは、ユニットモジュールクラスオブジェクト410内の当該ブロックに対して加えられた変更がそのユニットモジュールオブジェクトに反映される必要があるか否かを当該ブロックのみに対して指定する変更パラメータ536を有しうる。もちろん、ユニットモジュールオブジェクトの異なるブロックは、たとえばユニットモジュールクラスオブジェクト410のAcidブロック501に対して加えられた変更がモジュールオブジェクト526のうちの特定の一つの対応するAcidブロックに伝送される一方、ユニットモジュールクラスオブジェクト410のAcidブロック502に対して加えられた変更がそのユニットモジュールオブジェクトのうちの特定の一つのAlkaliブロックには伝送されないように、異なって設定されうる。さらに、ユニットモジュールクラスオブジェクトから作成された異なるユニットモジュールオブジェクトは、ユニットモジュールクラスオブジェクト410内のAlkaliブロック502に対する変更がユニットモジュールオブジェクト526の第一のユニットモジュールオブジェクトの対応するAlkaliブロックに伝送される一方でユニットモジュールオブジェクト526の第二のユニットモジュールオブジェクトには伝送されないように、その変更パラメータが異なって設定されうる。もちろん、ユニットモジュールクラスオブジェクト410の変更管理メソッドは、ユニットモジュールオブジェクト526の変更パラメータにアクセス・使用して、ユニットモジュールクラスオブジェクト410において変更がなされた場合にそれらのオブジェクト内で変更を行うようにしてもよいし行わないようにしてもよい。
【0054】
同様に、ユニットモジュールクラスオブジェクト410は、ユニットモジュールオブジェクト526の各々においてセキュリティまたはアクセスが管理される様式を指定する一または複数のセキュリティパラメータを有しうる。ユニットモジュールクラスオブジェクト410は、(「S」の符号が付けられた)全域型セキュリティパラメータ538を有しうるこのパラメータは、反応装置ユニットモジュールクラスオブジェクト410から作成された反応装置ユニットモジュールオブジェクト全体に対して任意の所望のレベルのセキュリティを提供しうるし、および/またはブロック501〜505、510、520、522などの各々に対するが如き、ユニットモジュールクラスオブジェクト410の各サブエレメントに対して異なるセキュリティパラメータ540を有しうる。このセキュリティパラメータ540は、ブロック毎に、上記のブロックの各々に対するセキュリティレベルを指定する。この全域型セキュリティパラメータ538は、事前に許可されたセキュリティアクセスレベルを有するユーザ以外のすべてのユーザに対してユニットモジュールクラスオブジェクトをロックするロックパラメータでありうる。もちろん、セキュリティパラメータ538、540は、アクセス禁止、アクセス制限、特定のタイプまたは身分のユーザによるアクセスなどの如き複数の異なるレベルのセキュリティのうちのいずれか一つを指定してもよく、また、これらのセキュリティレベルは、同一のユニットモジュールクラスオブジェクトから作成された異なるブロックまたは異なるユニットモジュールオブジェクトにおいて異なって設定されてもよい。所望ならば、セキュリティ手段の一部は、ユニットモジュールクラスオブジェクトに関連する一または複数のメソッドまたはアルゴリズムに対する暗号化を含んでのよい。
【0055】
いうまでもなく、ユニットモジュールクラスオブジェクト410の変更パラメータおよびセキュリティパラメータは、デフォルト値に設定されてもよく、ユニットモジュールクラスオブジェクト410から作成された各ユニットモジュールオブジェクト526の対応する変更パラメータおよびセキュリティパラメータは、作成された時点で、このデフォルト値を受け入れてもよい。しかしながら、このような変更パラメータおよびセキュリティパラメータのデフォルト値もまた、ユニットモジュールオブジェクト526において、これらのユニットモジュールオブジェクトが作成されたあと、(適切なセキュリティアクセスを有するユーザにより)個々に変更されうる。本明細書では、反応装置ユニットモジュールクラスオブジェクトに関して、変更パラメータおよびセキュリティパラメータが説明されているが、同様の変更パラメータおよびセキュリティパラメータは、他のタイプのユニットモジュールクラスオブジェクトのみならず、いかなる所望のタイプの装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、表示モジュールクラスオブジェクトなどに供されてもよい。
【0056】
所望の場合には、ユニットモジュールクラスオブジェクト410は、当該ユニットモジュールクラスオブジェクト410に関連するユニットのユニットまたはサブユニット関連するドキュメンテーションを含む、ユニットモジュールクラスオブジェクトのために格納されたまたはそれに関連するドキュメンテーションへのURLまたは他のリファレンスの如きリファレンスを有しうる。
図6では、このようなリファレンスが、リファレンス546として示されている。
【0057】
モジュールクラスオブジェクトのさらなる一例として、
図7には、トータライザ装置モジュールクラスオブジェクト416が示されている。このトータライザ装置モジュールクラスオブジェクト416は、(両方ともにオン/オフタイプの制御モジュールクラスオブジェクトである)Coarse_Valve550およびFine_Valve552と命名される制御モジュールクラスオブジェクトと、(流量計制御モジュールクラスオブジェクトである)Flow_Meter554と命名される制御モジュールクラスオブジェクトとともに、これらのエレメント間の相互接続に関する表示記号とを有している。さらに、トータライザ装置モジュールクラスオブジェクト416は、Totalizer Alarm表示モジュールクラスオブジェクト560を含む表示モジュールクラスオブジェクトと、装置モジュールクラスオブジェクト416上で実装されうる一または複数のアルゴリズム564とを有する。アルゴリズム564が、Totalizer_FastコマンドおよびTotalize_Accurateコマンドを有するものとして記載されているが、その他のコマンドまたはアルゴリズムが同様に含まれまたは用いられてもよい。さらに、装置モジュールクラスオブジェクトに関連するまたはそれに含まれるコマンドアルゴリズム564は、いかなる所望の形態を有してもよく、また、たとえばコマンド駆動型アルゴリズム(CDA)、状態駆動型アルゴリズム(SDA)、シーケンシャルフローチャート(SFC)アルゴリズム、機能ブロックダイアグラム(FBD)アルゴリズム、フェイズアルゴリズムなどであってもよい。しかしながら、一般的にいえば、これらのアルゴリズム564は、すべてCDAまたはSDAの如き特定のタイプである。もちろん、これらのアルゴリズム564は、C、C++のプログラミング環境、シーケンシャル機能チャートプログラミング環境、機能ブロックプログラミング環境などの如きいかなる所望の言語またはプログラミング環境で書かれてもよい。
【0058】
また、トータライザ装置モジュールクラスオブジェクト416は、装置モジュールクラスオブジェクト416から作成された、Acid1、Acid2、Alkali1、Alkali2、Water_Hdr1などと命名された一組の保有装置モジュールオブジェクト566への表示記号(および、所望ならば、通信パス)を格納するリストまたはメモリを有している。同様に、トータライザ装置モジュールクラスオブジェクト416は、装置モジュールオブジェクト566への変更の伝送を管理するために、全域型変更パラメータ572および/またはオブジェクトベースの変更パラメータ574とともに用いられうる変更管理メソッドを含む一組のメソッド570を有している。また、トータライザ装置モジュールクラスオブジェクト416は、全域型セキュリティパラメータ580およびオブジェクトベースのセキュリティパラメータ582を有している。変更パラメータおよびセキュリティパラメータ572、574、580、582は、
図6のユニットモジュールクラスオブジェクト410の変更パラメータおよびセキュリティパラメータに対して記載されたとおりに概ね作動し、コマンド564を含む、制御モジュールクラスオブジェクト416のエレメントのうちのいずれにも適応されうる。さらに、変更パラメータおよびセキュリティパラメータの内の一方または両方は、本明細書にとくに記載されているように、全域レベル、オブジェクトレベル、またはエレメントレベル以外ならば、モジュールクラスオブジェクト(したがって、それに加えてそれから作成されるモジュールオブジェクト)内のいかなる所望のレベルでも提供されうる。所望ならば、モジュールクラスオブジェクトまたはそれから作成されるモジュールオブジェクトの変更パラメータおよびセキュリティパラメータは、単純かつ明快な方法でモジュールクラスオブジェクト全体またはモジュールオブジェクトに対して異なる変更パラメータおよびセキュリティパラメータを設定または指定することをコンフィギュレーションエンジニアに可能にするように、たとえば表計算プログラムの如き一括コンフィギュレーション用のアプリケーションまたはプログラムを用いて、設定または構成されてもよい。
【0059】
所望の場合には、装置モジュールクラスオブジェクト416は、当該モジュールクラスオブジェクト416に関連する装置の装置またはサブエレメントに関連するドキュメンテーションを含む、装置モジュールクラスオブジェクトのために格納されたまたはそれに関連するドキュメンテーションへのURLまたは他のリファレンスの如きリファレンスを有してもよい。
図7では、このようなリファレンスが、リファレンス599として示されている。同様に、アルゴリズム564のうちのいずれかの如き、装置モジュールクラスオブジェクト416のアルゴリズムのうちのいずれかは、暗号化されてもよいし、またはこれらのアルゴリズム564を暗号化または複合化するための、それに関連するセキュリティパラメータを有してもよい。所望ならば、このような暗号化または複合化がメソッド570により実行されてもよい。
【0060】
プロセスプラント10を構築すべく、コンフィギュレーションエンジニアは、コンフィギュレーションアプリケーション50(
図1)に関連するライブラリ内に、必要なユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、制御モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトを作成する。所望ならば、このコンフィギュレーションエンジニアは、制御モジュールクラスおよび表示モジュールクラスの如き低次の適応範囲のエンティティから初めて、これらの低適応範囲のエンティティを利用または参照する装置モジュールクラスオブジェクトおよびユニットモジュールクラスオブジェクトの如き高次の適用範囲のエンティティに対するモジュールクラスオブジェクトへと展開してもよい。そのあと、コンフィギュレーションエンジニアは、プラント内のプロセスエンティティの各々に対して、必要なモジュールクラスオブジェクトを選択または指定し、この選択されたモジュールクラスオブジェクトに対応して実際のモジュールオブジェクトを作成してもよい。複製装置を設定する場合には、コンフィギュレーションエンジニアは、同一のモジュールクラスオブジェクトから、複製装置の各インスタンスに対するモジュールオブジェクトを作成する。したがって、コンフィギュレーションエンジニアは、
図1の反応装置に対して反応装置ユニットモジュールクラスオブジェクトを作成しうる(このことは、ライブラリ内に他のモジュールクラスオブジェクトがまだ存在していない場合には当該反応装置ユニットモジュールクラスオブジェクトにより参照される他のモジュールクラスオブジェクトを作成することを含んでいる)。そのあと、コンフィギュレーションエンジニアは、当該反応装置ユニットモジュールクラスオブジェクトから、
図1の反応装置Reactor_1、Reactor_2,およびReactor_3の各々に対する反応装置ユニットモジュールオブジェクトを作成することで、プロセスを構築しうる。
【0061】
モジュールクラスオブジェクトから一または複数のモジュールオブジェクトを作成したあと、コンフィギュレーションエンジニアは、(サブオブジェクトまたは参照オブジェクト含む)これらのオブジェクトをプラント内の特定の装置と結びつけうる。これらのユニットモジュールオブジェクトがたん一のユニットモジュールクラスオブジェクトに関連づけされているので、異なるユニットモジュールオブジェクトのエイリアス名、パラメータ、および他の変数が、表計算アプリケーションの如き一括処理アプリケーションなどを用いて一緒に指定されうる。もちろん、モジュールオブジェクトを特定の装置に結びつけることにより、コンフィギュレーションエンジニアは、プロセスプラント10の運転中に制御アクティビティを実行するためにコントローラ12内の制御ルーチンまたは制御モジュールにより用いられる制御変数および通信パス名または、プロセスプラント10の運転中にたとえばワークステーション14内の表示ルーチンにより用いられる表示変数を実際には指定している。この結びつけアクティビティが完了したあと、コンフィギュレーションエンジニアは、結びつけられた制御ルーチンをコントローラ12へ、また、結びつけられた表示ルーチンをワークステーション14へダウンロードしうる。
【0062】
図8〜
図16は、プロセスプラント10を構築すべくコンフィギュレーションエンジニアがモジュールクラスオブジェクトを作成・使用するプロセス中に、
図1のコンフィギュレーションアプリケーションにより作成されうるスクリーン表示画面を示している。いうまでもなく、
図8〜
図16のスクリーン表示画面のうちのほとんどは、そのスクリーンの左側にエクスプローラビューを有している。同様に、
図8〜
図16のスクリーン表示画面のうちのほとんどは、その右側に一または複数の情報ビューを有している。これらの情報ビューは、エクスプローラビューのエレメントの内の選択された一つン関するさらなる情報を供している。この情報ビューでユーザに対して表示されることが可能なまたはユーザにより変更されることが可能な情報は、異なるモジュールクラスオブジェクトまたはそのサブエレメントの各々に対して設定される
図6および
図7の制御パラメータおよびセキュリティパラメータ534、536、538、540、572、574、580、582により決定または管理されうる。したがって、エクスプローラビュー内の特定のエレメントは、ユーザに対して表示または暴露され、エクスプローラビューに示されているモジュールクラスオブジェクトにおいて設定されモジュールオブジェクトに対して伝送されるセキュリティパラメータおよび制御パラメータに基づいて閲覧および/または変更されうる。もちろん、最初に説明したように、情報は、常に隠されていてもよいし、パスワードまたは他のセキュリティコードを入力するユーザにより表示可能または変更可能であってもよく、常に表示可能であるが変更可能でないものであってもよく、常に表示可能であるとともに変更可能であってもよく、またはこれらのその他の組み合わせもしくは他のセキュリティパラメータおよび変更パラメータのその他の組み合わせであってもよい。さらに、所望ならば、いずれのエレメントをさらに詳細に表示可能または変更可能かをユーザに知らせるために、エレメントの表示可能性または変更可能性が、強調表示、灰色表示、色付き表示、またはその他の技術を用いて、エクスプローラビューにおいて表示されてもよい。
【0063】
図8において、スクリーン表示画面600は、その表示画面の左側に示されているエクスプローラコンフィギュレーションビュー602の部分を有している。このエクスプローラビュー602の部分は、ユニットモジュールクラスオブジェクト604、装置モジュールクラスオブジェクト606、および制御モジュールクラスオブジェクト608を含む複数のモジュールクラスオブジェクトを格納するライブラリを示している。(
図6の反応装置ユニットモジュールクラスオブジェクト410に対応しうる)Reactorユニットモジュールクラスオブジェクト610は、上記のユニットモジュールクラスライブラリ604内に格納され、Doseフェイズクラスオブジェクト、Mixフェイズクラスオブジェクト、Drainフェイズクラスオブジェクト、Flushフェイズクラスオブジェクト、Acid装置モジュールクラスオブジェクト、Alkali装置モジュールクラスオブジェクト、Water装置モジュールクラスオブジェクト、流出用装置モジュールクラスオブジェクト、Water_In制御モジュールクラスオブジェクト、Level_Meter制御モジュールクラスオブジェクト、および所望の他のオブジェクトを含む複数のサブエレメントの表示記号を有している。したがって、ユニットモジュールクラスライブラリ604において定義されているように、Reactorユニットモジュールクラスオブジェクト610は、フェイズクラスオブジェクトの表示記号のみならず装置モジュールクラスオブジェクトおよび制御モジュールクラスオブジェクトの表示記号も有している。スクリーン600においてReactorユニットモジュールクラスオブジェクト610が選択されているので、そのエレメントがスクリーン600の右側においてさらに詳細に示されている。
【0064】
さらに、装置モジュールクラスライブラリ606は、(
図7のトータライザ装置モジュールクラスオブジェクト416に対応しうる)トータライザ装置モジュールクラスオブジェクト614と、Reactor_Outlet装置モジュールクラスオブジェクト616とを有している。このトータライザ装置モジュールクラスオブジェクト614は、Command_00001、Command_00002、およびCommand_00003と呼ばれる、(
図7のアルゴリズムのうちの一つの如き)アルゴリズムの三つの部分を有している。また、モジュールクラスオブジェクト614は、(オン/オフタイプの制御モジュールクラスオブジェクトである)Coarse_ValveおよびFine_Valveならびに(流量計タイプの制御モジュールクラスオブジェクトである)Flow_Meterと呼ばれる制御モジュールオブジェクトへのリファレンスを有している。さらに、Reactor_Outlet装置モジュールクラスオブジェクト616は、State_00001、State_00002,およびState_00003と呼ばれる三つの状態を有する状態駆動型の制御アルゴリズムモジュール、Targetモジュール、Driveモジュール、Monitorモジュール、およびReadbackモジュールと、(オン/オフ制御モジュールクラスオブジェクトタイプのモジュールブロックの表示記号またはそれらへのリファレンスでありうるとともにOutlet、Drain、およびProductと命名されているまたは単純オブジェクトでありうる)Outletバルブ制御モジュールオブジェクト、Drainバルブ制御モジュールオブジェクト、およびProductバルブ制御モジュールオブジェクトとを有している。TotalizerモジュールクラスオブジェクトおよびReactor_Outletモジュールクラスオブジェクト614、616に関連するコマンド駆動型および状態駆動型のアルゴリズムは、いかなる所望のルーチンであってもよく、装置モジュールクラスオブジェクト内の制御モジュールオブジェクトを参照して、それらのコマンドとともに用いられてもよい。具体的にいえば、装置モジュールクラスオブジェクトのCDAコマンドアルゴリズムまたはSDAコマンドアルゴリズムは、制御モジュール(または他の装置モジュール)を参照する表現またはアクションを、これらのモジュールに対応するモジュールブロックの名称を組み入れ、当該アルゴリズムの実行時点においていずれの装置を操作するのかを示すことにより有しうる。これらのアルゴリズム内で制御モジュール(または他の装置モジュール)に対応するモジュールブロック名を用いることにより、そのアルゴリズムが搭載されている装置モジュールオブジェクトにより参照されるまたは関連付けされる制御モジュールオブジェクトが指定され、これらの特定の名称は、その装置モジュールオブジェクトが装置モジュールクラスオブジェクトからさくせいされるときに結びつけられるかまたはインスタンス化される。
【0065】
図9は、トータライザ装置モジュールクラスオブジェクト614が、それに関連する実行論理を示すべく展開されているコンフィギュレーションスクリーン620を示しており、Command_00002,Command_00003、およびCommand_00099を有するコマンド駆動型アルゴリズムが含まれている。スクリーン620の右側622に示されているように、実行論理制御ルーチンに関する情報がさらに詳細に提供されている。具体的にいえば、Command_00002は、トータライザを通って流れる流量正確にまたは繊細に制御するために用いられるトータライザ調整ルーチンである。Command_00003は、トータライザの高速の流れを管理または提供するトータライザ高速ルーチンであり、Command_00099は、トータライザをリセットするリセットルーチンである。スクリーン620のMonitorブロックは、監視アクティビティを提供する実行論理に関連する機能ブロックである。
図8および
図9から明らかなように、ライブラリ604、606、608内のモジュールクラスオブジェクト内のエレメントの各々は、サブオブジェクトおよびサブエレメントを有しており、一部またはすべてのケースにおいて、これらのサブエレメントは、プロセスプラント10の運転中にコントローラまたはワークステーションにより実行される制御ルーチンまたは表示ルーチンを参照または有している。しかしながら、モジュールクラスオブジェクトにおける制御ルーチン、表示ルーチン、およびその他の装置リファレンスは、実質的に包括的であり、したがって、プラント10内の実際の個々の装置には結びつけられてもいなければ結合されてもいない。
【0066】
図10は、トータライザ装置モジュールクラスオブジェクト614の実行論理のCommand_00002ルーチンの詳細を示すさらなるスクリーン表示画面630を示している。シーケンシャル機能チャートプログラミングエディタ634から展開されたポップアップウィンドウ632に示されているように、Command_00002ルーチンは、一連のステップを有しており、各ステップは、一連のアクションを有している。Command_00002ルーチンの第一のステップ(S1)の第一のアクション(A1)のみがウィンドウ632において示されている。いうまでもなく、Command_00002ルーチンの第一のステップの第一のアクションは、Flow_Meter制御モジュールオブジェクトパラメータであるResetを「True」に設定し、次いで、変数SPの状態に基づいて、Coarse_Valve制御モジュールオブジェクト(または、モジュールブロック)のTarget_Stateパラメータを「Valve:Open」に設定し、Fine_Valve制御モジュールオブジェクト(または、モジュールブロック)のTarget_Stateパラメータを「Valve:Open」に設定する。いうまでもなく、Command_00002ルーチンのこのセクションは、この時点では、包括的に、トータライザ装置モジュールクラスオブジェクトに関連するFlow_Meter制御モジュールオブジェクト(または、モジュールブロック)、Coarse_Valve制御モジュールオブジェクト(または、モジュールブロック)、およびFine_Valve制御モジュールオブジェクト(または、モジュールブロック)を参照しているが、トータライザ装置モジュールクラスオブジェクトから作成される実際のトータライザ装置モジュールオブジェクトは、トータライザ装置モジュールオブジェクトを用いてまたはそれの一部として作成される制御モジュールオブジェクトの実際の名称を参照する。
【0067】
図11は、
図8のReactorユニットモジュールクラスオブジェクト610において用いられるまたは参照されうるDoseフェイズクラス642に関連する制御アルゴリズムの詳細を示すスクリーンビュー640を示している。具体的にいえば、このDoseフェイズクラス642は、Abort、Fail、Hold、Restart、およびRunを含む一組の異なる汎用制御アクションを有している。(Run_Logicと呼ばれる)実行アクションに関連する論理は、Step1(S1)、Step2(S2)、およびStep3(S3)として上記スクリーンの区域644において示されている一連のステップと、二つの転移T1、T2と、終了とを有している。シーケンシャル機能チャートエディタ646は、ブロック図形式でこれらのステップと転移とを画像を用いて示している。ポップアップスクリーン648は、Step1(S1)のAction1(A1)に関連する実際の制御論理を示している。具体的にいえば、論理エディタであるスクリーン648の実行ロジックは、反応装置用の共有水ヘッダを取得するアクションと、water_inバルブを開くアクションと、次いで、その反応装置に関連する全てのトータライザをリセットするアクションとを有している。
【0068】
Doseフェイズクラスが反応装置から独立して書かれているので、当該Doseフェイズクラスは、ランタイムの時点またはその前のどちらかで指定されるがいうまでもなく反応装置ユニットモジュールクラスオブジェクトにおいて指定可能でない装置を参照するためにエイリアス名を用いる。しかしながら、制御アルゴリズム648内で用いられる実際のデバイスまたは他のプロセスエレメントへのリファレンスは、同一のユニットモジュールクラスオブジェクト、このケースでは反応装置ユニットモジュールクラスオブジェクトに対するものである。制御ルーチン648では、エイリアス名は、#記号により表されるので、#WATER_IN#は、同一のモジュール、すなわちユニットモジュールクラスオブジェクト610内のwater_in制御モジュールのエイリアス名である。同様に、#WATER#、#ACID#、および#ALKALI#の記号表示は、Reactorユニットモジュールクラスオブジェクト610内のWaterトータライザモジュールブロック、Acidトータライザモジュールブロック、およびAlkaliトータライザモジュールブロックを参照している。もちろん、いうまでもなく、トータライザ流出用装置モジュールクラスオブジェクト、反応装置流出用装置モジュールクラスオブジェクト、およびオン/オフバルブ制御モジュールクラスオブジェクトは、それぞれ対応する、(たとえば、Alkali1、Acid1、などと命名された)トータライザ装置モジュールオブジェクトおよび反応装置モジュールオブジェクトならびに(Coarse_Valve、Fine_Valve、Outlet1などと命名された)オン/オフ制御モジュールオブジェクトを通じて、反応装置ユニットモジュールクラスオブジェクトに関連付けされ、そのユニットクラスオブジェクトの論理部分となる。
【0069】
図12は、Reactor_Outlet装置モジュールクラスオブジェクト616がさらに詳細に示されているスクリーン表示画面650を示している。このReactor_Outlet装置モジュールクラスオブジェクト616に関連するRun_Logicは、Driveエレメントと、Monitorエレメントと、Readbackエレメントと、そしてさらに重要なことには、Reactor_Outlet装置モジュールクラスオブジェクト616に関連するバルブを制御すべく用いられる四つの状態を有する状態駆動型アルゴリズムとを備えたものとしてスクリーン部分652に示されている。右側のスクリーン部分654は、実際のバルブの開閉に用いられる制御ブロックまたは制御モジュール内の駆動アイテムDrain_SP、Outlet_SP、およびProduct_SPの名称と、Drain、Outlet、およびProductと命名されたモジュールブロック内の各制御モジュールTarget_Stateに対する通信パス仕様とに関する詳細を有している。リードバックパス仕様は、Drainモジュールブロック、Outletモジュールブロック、およびProductモジュールブロックの各々におけるCurrent_Stateのリードバックパラメータに対する通信パス備えており、Reactor_Outlet装置の異なる状態に対するバルブの状態もまた供されている。したがって、スクリーン部分654内のDriveの詳細から、Reactor_Outlet616の閉鎖状態運転の間は、廃液用バルブ、流出用バルブ、および製品用バルブはすべて閉められており、廃液運転の間は、廃液用バルブおよび流出用バルブは開かれているが製品用バルブは閉められており、製品放出運転の間は、廃液用バルブは閉められているが流出用バルブおよび製品用バルブは開かれていることが分かる。いうまでもなく、
図12のスクリーン表示画面650が、装置モジュールクラスオブジェクトに対して状態駆動制御論理を指定する一つの方法を示しているが、その他の所望の方法が同様に用いられてもよい。
【0070】
もちろん、所望ならば、これらのスクリーンまたは
図9〜
図12に示されているスクリーンと同等のスクリーンが、Doseフェイズクラスまたは他のフェイズクラス内に、または、ユニットモジュールクラスオブジェクト、装置モジュールクラスオブジェクト、および表示モジュールクラスオブジェクトの如きその他のモジュールのうちのいずれかに対し、制御アルゴリズムを作成・指定することにより、任意の所望のモジュールクラスオブジェクトを作成すべくコンフィギュレーションエンジニアにより用いられてもよい。
【0071】
以上で記載したように一または複数のモジュールクラスオブジェクトを作成したあと、コンフィギュレーションエンジニアは、これらのモジュールクラスオブジェクトを用いてプロセスプラント10内のエレメントを構成する。
図13は、プロセスプラント10のシステムコンフィギュレーションを示す階層ビュー661を有するスクリーン表示画面660を示している。システムコンフィギュレーション662は、プロセスプラント10の制御戦略の指定、具体的にいえば、プロセスプラント10のプロセスエンティティの制御に用いられる制御戦略664と表示されている区域を有している。これらの制御戦略664は、プラント10の物理領域の如き論理的グループに分割されている。ビュー661にはArea_A665が示されている。Area_A665は、塩の製造に用いられる複数の台数のまたは例示の複製装置を内部に有しうる、Saltsと呼ばれる塩製造区域666を備えている。
【0072】
プラント10の塩製造区域を構成するために、コンフィギュレーションエンジニアは、
図8のユニットモジュールクラスライブラリ604内の反応装置ユニットモジュールクラスオブジェクト610を選択し、Salts666の見出しの下へドラッグまたはコピーし、反応装置ユニットモジュールクラスオブジェクト610により指定される形式の反応装置のインスタンスを作成しうる。この反応装置がReactor_1ユニットモジュールオブジェクト668として
図13に示されている。コンフィギュレーションアプリケーション50は、Reactor_1ユニットモジュールオブジェクト668を、それを構成しているユニットモジュールクラスオブジェクトの名称に基づく一方でそのコンフィグレーションシステム内において一意的な方法で自動的に命名しうる。
図13に示されているように、Reactor_1ユニットモジュールオブジェクト668は、Acid_1トータライザ装置モジュールオブジェクト、Alkali_1トータライザ装置モジュールオブジェクト、およびOutlet_2装置モジュールオブジェクトを備えており、これらはそれぞれ、反応装置ユニットモジュールクラスオブジェクト610内で指定される酸モジュールクラスオブジェクト、アルカリモジュールクラスオブジェクト、および流出モジュールクラスオブジェクトに対応している。さらに、Reactor_1ユニットモジュールオブジェクト668は、モジュールクラスオブジェクト610により指定されるとおりに(フェイズクラスから作成される)Doseユニットフェイズ、Drainユニットフェイズ、Flushユニットフェイズ、およびMixユニットフェイズを有している。Aliasesと呼ばれるフォルダにはエイリアスレゾルーションテーブルが設けられており、このテーブルは、Reactor_1ユニットモジュールオブジェクト668のいずれかの制御ルーチンにおいて用いられるエイリアス名のレゾルーションリストを有している。Reactor_1ユニットモジュールオブジェクト668内のエイリアスレゾルーションテーブルにより、ランタイム以前またはランタイム中に、これらの制御ルーチンを分けてプロセスプラント10内の特定の装置に結びつけることが可能となる。ユニットフェイズおよびエイリアスレゾルーションテーブルの利用は、本特許の譲受人に譲渡されるとともに、本明細書において参照することによりここで明示的にその全内容を援用する米国特許番号第6,385,496号に詳細に記載されている。さらに、Reactor_1ユニットモジュールオブジェクト668は、Water_HDR1モジュールオブジェクトとWater_Inモジュールオブジェクトとを有しており、これらのモジュールオブジェクトは、それぞれ、Reactorユニットクラスオブジェクト610内に示されているWaterトータライザ装置モジュールクラスオブジェクトと、Reactorユニットクラスオブジェクト610のWater_Inオン/オフ型バルブ制御モジュールクラスオブジェクトとに対応している。もちろん、この場合も先と同様に、コンフィギュレーションアプリケーション50は、Reactor_1ユニットモジュールオブジェクト668のエレメントに対して用いられる命名スキームを、当該Reactor_1ユニットモジュールオブジェクト668の個々のエレメントを構成しているReactorユニットモジュールクラスオブジェクト610内の対応するエレメントの名称に基づく一方で命名された名称がそのコンフィギュレーション戦略において一意的である方法で自動的に提供してもよい。Reactorユニットモジュールクラスオブジェクト610に関する説明から明らかなように、Water_HDR1は、(
図1の共有ヘッダバルブシステム110に対応する)共有水ヘッダである。したがって、Salts記号表示下において、Water_HDR1670と呼ばれる別の装置モジュールオブジェクトが設けられている。もちろん、コンフィギュレーションエンジニアは、
図8のトータライザ装置モジュールクラスオブジェクトからWater_HDR1670を、そのエレメントをスクリーン区域661へコピーまたはドラッグすることにより作成してもよい。このケースの場合、予測されるように、共有水ヘッダWater_HDR1670は、(Coarse_Valve4およびFine_Valve4と命名される)特定のオン/オフ型バルブ制御モジュールオブジェクトと、(Flow_Meter4と命名される)特定の流量計制御モジュールオブジェクトとを有しているものとして示されており、これらは、それぞれ、
図8のトータライザ装置モジュールクラスオブジェクト614のCoarse_Valve制御モジュールクラスオブジェクト、Fine_Valve制御モジュールクラスオブジェクト、およびFlow_Meter制御モジュールクラスオブジェクトに対応している。さらに、Reactor_1モジュールオブジェクト668内のWater_HDR1リファレンスは、Water_HDR1装置モジュールオブジェクト670を参照している。
【0073】
もちろん、上記の装置モジュールまたは制御モジュールのうちのいずれでもユニットモジュールクラスオブジェクト内で共有モジュールオブジェクトまたは非共有モジュールオブジェクトとして指定されてもよい。非共有モジュールオブジェクトは、その非共有モジュールオブジェクトを構成している高レベルのモジュールオブジェクトにより完全に保有される。共有モジュールオブジェクトは、一を超える数の高レベルモジュールオブジェクトにより保有されるかまたはそれらと関連づけされる。モジュールオブジェクトの共有特性または非共有特性は、エクスプローラビューにおけるモジュールオブジェクトの表示に影響を与える。具体的にいえば、非共有モジュールオブジェクトの指定により、モジュールオブジェクトは、制御戦略内の高レベルオブジェクト下でのみ表示され、その一日、共有モジュールオブジェクトの指定により、その共有モジュールブロックまたは共有モジュールオブジェクトは高レベルモジュールオブジェクトの各々の下で表示され、これらの高レベルモジュールオブジェクトは、エクスプローラ階層においてそのエレメントおよびスタンドアロンモジュールオブジェクトを共有する。
【0074】
いうまでもなく、コンフィギュレーションエンジニアは、反応装置ユニットモジュールクラスオブジェクト610をコピーし、当該反応装置ユニットモジュールクラスオブジェクト610内に指定されるエレメントの全てを有するそのインスタンス(反応装置ユニットモジュールオブジェクト668)を作成することにより、反応装置全体に対する制御戦略をそのコンフィギュレーションシステムの制御戦略区域664内に作成することができる。しかしながら、モジュールオブジェクト毎に変わる入力/出力表示記号を用いて、またモジュールオブジェクトがプロセスプラント10内で結びつけられる様式を指定することをコンフィギュレーションエンジニアに可能にすべく作成されうるコンフィギュレーションダイアログボックスを用いて、反応装置ユニットモジュールオブジェクト668の個々のユニットおよびとくに制御エレメントをプロセスプラント10内の特定のエンティティに結びつけることまたは結合することが可能である。また、上記のように、作成された反応装置モジュールオブジェクト668は、依然として、反応装置ユニットモジュールクラスオブジェクト610に接続されているとともにそれにより保有されており、したがって、反応装置ユニットモジュールクラスオブジェクト610内で行われる変更は、所望ならば、Reactor_1モジュールオブジェクト668内に自動的に伝送させ反映させてもよい。いずれの場合であっても、コンフィギュレーションエンジニアは、全体的に(オブジェクトワイドに)またはエレメント毎に親モジュールクラスオブジェクトからの変更を受理または拒否するように、Reactor_1ユニットモジュールオブジェクト668の如き作成されたモジュールオブジェクトを変更または個別に調整しうる。
【0075】
スクリーン660の右側部分672は、(区域661において選択されているエレメントであるので)Reactor_1モジュールオブジェクト668のエレメントの全てに関連するパラメータ、アラームなどに加えて、それらに関連する数値情報、フィルタリング情報、および他の情報を掲示または記載している。もちろん、コンフィギュレーションエンジニアは、所望通りに、Reactor_1モジュールオブジェクト668のエレメントの各々に対するこのようなデータを変更または指定することにより、任意の所望の方法で、モジュールクラスオブジェクトから作成される個々のモジュールオブジェクトを調整してもよい。
【0076】
図14は、Reactor_1ユニットモジュールオブジェクト668のAcid1装置モジュールオブジェクト682のコンフィギュレーションを示すスクリーン680を示している。
図14では、Acid1装置モジュールオブジェクト682が選択されているので、そのエレメントがスクリーン680の右側に示されている。これらのエレメントには、Coarse_Valve1制御モジュールオブジェクト、Fine_Valve1制御モジュールオブジェクト、Flow_Meter1制御モジュールオブジェクトや、表示パラメータなどが含まれている。
【0077】
ポップアップスクリーン686は、Acid1装置モジュールオブジェクトに関連するサブモジュールオブジェクトおよび、これらのサブモジュールオブジェクトが帰属するまたはそれを構成しているモジュールクラスに関する情報を提供している。具体的にいえば、Acid1装置モジュールオブジェクトはトータライザ装置モジュールクラスオブジェクトに属し、Coarse_Valve1モジュールオブジェクトおよびFine_Valve1モジュールオブジェクトは
図8のライブラリ区域608からのOn_OFF_Valve1制御モジュールクラスオブジェクトに属し、Flow_Meter1モジュールオブジェクトは
図8のライブラリ区域608のFlow_Meter制御モジュールクラスオブジェクトに属する。
【0078】
また、Acid1コンフィギュレーションポップアップスクリーン686のタブ表示画面には、パラメータ、IO(入力/出力)、アラーム、およびFieldbusの表示がある。パラメータタブは、Reactor_1モジュールオブジェクト668のAcid1トータライザのエレメントの各々のパラメータを指定または入力すべく用いられうる。IOタブは、Reactor_1モジュールオブジェクト668のAcid1トータライザモジュールオブジェクト682のエレメントの各々の入力/出力接続関係を指定することによりこれらの個々のエレメントをプロセスプラント10内の実際の装置に結びつけるべく用いられる。所望ならば、これらの結びつけを、
図15に示されているようなスプレッドシート用のアルゴリズムまたはプログラムを用いて指定することにより、(任意のレベルにおける)モジュールオブジェクトの全てのエレメントとプロセスプラント10内の実際のエレメントとの間の相互接続を全域的にまたは一括して指定してもよい。
図15のスプレッドシート表示画面688は、異なるトータライザ装置モジュールからの粗調整用バルブをプロセスプラント10内の装置に同時に結びつけることをコンフィギュレーションエンジニアに可能にするスプレッドシートビューを示している。このケースの場合、IO_Outパス名およびIO_Readbackパス名がVLV−101A、VLV−201A、VLV−301A、およびVLV−401Aに対して指定されている。しかしながら、所望ならば、同一のモジュールの異なるエレメントが一括して指定されてもよい。
【0079】
図14をさらに説明すると、ポップアップスクリーン686のアラームタブは、Acid_1モジュールオブジェクトに関連するアラームを指定または構成すべく用いられうるし、Fieldbusタブは、必要に応じて、特定のFieldbusデバイスの接続関係を指定すべく用いられうる。もちろん、同等のコンフィギュレーションスクリーンが、Reactor_1モジュールオブジェクト668内の他のモジュールオブジェクトに対してまたはReactor_1モジュールオブジェクト668全体に対して用いられてもよい。同様に、同一のまたは同等のコンフィギュレーションスクリーンが、他のモジュールオブジェクトに対して用いられてもよい。いうまでもなく、これらのコンフィギュレーションスクリーンは、ユニットモジュールレベル、装置モジュールレベル、制御モジュールレベルなどを含むいかなるモジュールオブジェクトレベルで表示・使用されてもよい。
【0080】
図16は、プロセスプラント10用のコンフィギュレーションシステムのエクスプローラビュー661を有するスクリーン表示画面690を示しており、この画面によると、
図8のReatorユニットモジュールクラスオブジェクト610からコピーまたは作成された、Reactor_1_1と呼ばれる反応装置モジュールオブジェクト692をコンフィギュレーションエンジニアがさらに追加している。もちろん、Reactor_1_1モジュールオブジェクト692の作成のときに、コンフィギュレーションエンジニアは、異なったパラメータ、異なるデバイスに対して異なった接続関係、およびそのサブエレメントの各々で異なった制御ルーチンを用いるように指定してもよい。
図16に示されているように、Reactor_1_1モジュールオブジェクトは、
図8のReactorユニットモジュールクラスオブジェクト610内の装置モジュールクラスオブジェクトの各々のサブオブジェクトを有しており、これらには、Acid2装置モジュールオブジェクト、Alkali2装置モジュールオブジェクト、およびOutlet4装置モジュールオブジェクトがふくまれる。また、Reactor_1_1モジュールオブジェクトは、Water_In2、制御モジュールオブジェクト、Level_Meter2制御モジュールオブジェクト、Water_HDR1およびDoseと呼ばれる共有装置モジュールオブジェクトのリファレンス、Drainユニットフェイズ、Flushユニットフェイズ、およびMixユニットフェイズを有している。Reactor_1_1モジュールオブジェクト692とのみ関連するサブオブジェクトは、固有の名称が与えられており、Water_HDR1モジュールオブジェクトの如き共有ユニットは、共有水ヘッダの名称で示されている。
【0081】
いうまでもなく、コンフィギュレーションエンジニアは、同様の方法で、本明細書記載の原理にしたがって、プロセス制御環境内のユニット、装置、制御エレメント、および表示エレメントに対してコンフィギュレーションエレメントを作成するために、その他のユニットモジュールオブジェクト、装置モジュールクラスオブジェクト、および制御モジュールクラスオブジェクトならびに表示モジュールクラスオブジェクトを用いてもよい。また、いうまでもなく、細目にまで至りうる、これらのモジュールクラスオブジェクトの利用により、コンフィギュレーションエンジニアは、コンフィギュレーションを行うのに非常に有利となる。というのは、コンフィギュレーションエンジニアは、制御テンプレートから別々に個々の制御エレメントを作成またはコピーする必要がないどころか、プロセスプラント10の構築に利用する非常に多くのコンフィギュレーションアイテムを作成すべく提供される非常に高レベルのまたは高適応範囲のモジュールクラスオブジェクトを用いることができる。
【0082】
さらに、コンフィギュレーションエンジニアは、ユニットモジュールクラスオブジェクトのうちの一または複数を変更し、これらの変更を、当該ユニットモジュールクラスオブジェクトから作成されたまたはそれに関連づけされているモジュールオブジェクトの各々に伝送することにより、全域的に異なるプロセスエンティティのコンフィギュレーションのエレメントに対して変更を加えうる。この機能により、コンフィギュレーションが行われたあとのそのコンフィギュレーションの変更が、容易なかつ時間のかからないものとなる。さらに、コンフィギュレーションエンジニアは、モジュールクラスオブジェクト内のセキュリティパラメータを設定することにより、コンフィギュレーションシステム内のモジュールオブジェクトのさまざまなエレメントまたはコンポーネントに対するアクセスレベルを指定しうる。上記のように、コンフィギュレーションエンジニアは、セキュリティを、モジュール毎に、ユニットモジュールレベル、装置モジュールレベル、制御モジュールレベル、および表示モジュールレベルの如き任意のレベルで指定しうる。このようにして、ユニットモジュールオブジェクトうちの一部のエレメントは閲覧できるようになっており他のエレメントは閲覧できないようになっていてもよい。
【0083】
もちろん、コンフィギュレーションシステムが完成しモジュールオブジェクトがプロセスプラント10内の個々のプロセスエンティティと結びつけられると、これらのモジュールに関連する制御用および表示用のモジュールまたはエレメントを、プロセスプラント10の運転中に実行すべく、
図1の適切なコントローラ12およびワークステーション14にダウンロードしてもよい。
【0084】
図17は、プロセスプラントアイテムを設定し当該アイテムへのアクセスを制限するルーチン700の一例を示すフローダイアグラムである。このルーチン700は、
図1のプロセスプラント10のワークステーション14のうちの一もしくは複数および/またはコントローラ12の如き一または複数のコンピューティングシステムにより実行されうる。また、このルーチン700は、プロセスプラント10から分離されているコンピューティングシステムにより実行されてもよい。たとえば、第三者であるプロバイダは、当該第三者であるプロバイダにより作成されたたとえばモジュールオブジェクト、モジュールクラスオブジェクト、モジュールテンプレート、複合テンプレートなどへのアクセスを制限すべくルーチン700を用いてもよい。そして、これらの作成されたモジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどは、この第三者であるプロバイダの顧客により利用されうるが、この顧客は、これらの作成されたモジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどの内部にあるアイテムの一部または全部をたとえば閲覧することが可能でない。一般的に、設定されるプロセスプラントアイテムは、モジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどである。ルーチン700は、たとえばコンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションの一部として実行されうる。たとえば、ルーチン700は、モジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどのコンフィギュレーション中にまたはそのあとで、コンフィギュレーションアプリケーション50を用いて実行されうる。また、ルーチン700は、コンフィギュレーションアプリケーション50から分離されたアプリケーションにより実行されうる。
【0085】
ブロック702で、なんらかのプロセスプラントアイテムへのアクセスを制限する(すなわち、そのプロセスプラントアイテムに関連するデータを保護する)ことを示すユーザ入力情報が受信される。たとえば、当該アイテムを設定している人が、当該アイテムに関連するデータを保護することを示す、ボックスのチェック、ボタンの選択、メニューアイテムの選択などを行いうる。また、このユーザ入力情報は、そのアイテムのどの情報が保護されるのかを示してもよい。たとえば、ユーザは、一部のデータを保護し他のデータを保護しないでおくことを選択してもよい。
【0086】
他の方法では、ユーザは、検出されるデータの選択を許容されえない。たとえば、ユーザは、あるアイテムに対して保護または非保護のいずれかを選択できるのみである場合がある。一例では、モジュールオブジェクトまたはモジュールクラスオブジェクトに関連するデータの保護を選択した場合、そのモジュールオブジェクトまたはモジュールクラスオブジェクトに関連する一組のデータは保護されうるが、そのセットに含まれないデータは保護されない。たとえば、モジュールオブジェクトまたはモジュールクラスオブジェクトを構成する機能ブロックおよびそれらの相互接続情報は保護されるが、そのモジュールオブジェクトまたはモジュールクラスオブジェクトのパラメータは保護されない。
【0087】
図18(a)および
図18(b)は、
図1のコンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションにより作成されうるスクリーン表示画面の一例である。プロセスの動作中にそのプロセスを監視すべく用いられるアプルケーション、コンフィギュレーションをデバッギングするためのデバッギングアプリケーション、資産管理アプリケーションなどの如き他のタイプのアプリケーションにより同等のスクリーン表示画面が作成されうる。スクリーン表示画面720は、複合テンプレートのライブラリ724を有するエクスプローラビューの一部722を備えている。上記の複合テンプレートのうちの一つは、DYN_FULL複合テンプレート726である。このDYN_FULL複合テンプレート726は、さまざまなサブエレメントを有している。これらのサブエレメントは、エクスプローラビュー722においてDYN_FULL複合テンプレート726が選択されているので、スクリーン表示画面720の右側に示されている。DYN_FULL複合テンプレート726を構成する上記のサブエレメントはパラメータと機能ブロック730とを有している。
【0088】
スクリーン表示画面720では、DYN_FULL複合テンプレート726が保護されるものとして設定されていないので、当該スクリーン表示画面720の右側に、機能ブロック730が表示されている。その一方、
図18(b)は、保護されるものとして設定されたDYN_FULL複合テンプレート726に相当するスクリーン表示画面732を示している。したがって、スクリーン表示画面732では、機能ブロック730は、上記右側728に表示されていない(すなわち、それらは隠されている)。DYN_FULL複合テンプレート726のパラメータは、DYN_FULL複合テンプレート726が保護されるものとして設定されていても、依然として表示されている。
【0089】
図17をさらに説明すると、ブロック704で、ユーザは、パスワードを入力するように促されうる。たとえば、ウィンドウプロンプト、スクリーンプロンプト、オーディオプロンプトはユーザに対してパスワードを入力するように促しうる。以下で記載するように、このパスワードが、後に、保護データにアクセスするためにおよび/またはアイテムを再設定し保護を解除するために用いられうる。ブロック706で、上記のパスワードが受信されうる。たとえば、パスワードは、コンピューティングシステムのキーボード、キーパッド、タッチスクリーン、ライトペン、マウスなどを用いて入力されうる。
【0090】
ブロック708では、保護されるプロセスプラントアイテムに関連するデータであるという表示記号が格納され、そのアイテムと関連づけされうる。たとえば、上記アイテムがオブジェクトである場合、表示記号はオブジェクトの一部として格納されうる。他の例としては、表示記号がオブジェクトから分離されて格納され、その表示記号へのリンクがそのオブジェクトの一部として格納されうる。さらに他の例では、プロセスプラントアイテムがモジュールクラスオブジェクトから作成されるアイテムである場合、表示記号は、そのモジュールクラスオブジェクトの一部として格納されうる。ユーザが保護するデータの選択を許容されない場合、ブロック708は削除されうる。
【0091】
ブロック710では、ブロック706で受信されたパスワードが格納され、そのアイテムと関連付けされうる。たとえば、そのアイテムがオブジェクトである場合、パスワードはそのオブジェクトの一部として格納されうる。他の例では、パスワードがオブジェクトから分離されて格納され、そのパスワードへのリンクがそのオブジェクトの一部として格納されうる。さらに他の例では、プロセスプラントアイテムがモジュールクラスオブジェクトから作成されるアイテムである場合、パスワードは、そのモジュールクラスオブジェクトの一部として格納されうる。
【0092】
任意選択的に、保護されるデータおよび/またはパスワードは暗号化されうる。これらの実施態様では、ブロック708、710は、暗号化されたデータおよび/または暗号化されたパスワードを格納し関連づけすることを含む。さらに、プロセスプラントアイテムがモジュールクラスオブジェクトから作成されるアイテムである場合には、保護されるデータまたは暗号化されるデータはそのモジュールクラスオブジェクトの一部として格納されうる。
【0093】
上記のアイテムがモジュールクラスオブジェクトである場合には、保護されるデータであるという表示記号およびパスワードは、そのモジュールクラスオブジェクトから作成されるアイテムに伝送されうる。
【0094】
ルーチン700と同等のルーチンがプロセスプラントアイテムまたはそのアイテムに関連付けされる特定のデータを「保護解除」すべく用いられうる。すなわち、保護されているプロセスプラントアイテムに関連するデータを保護解除することを示すユーザ入力情報が受信されうる。そして、ユーザはパスワードを促される。ルーチン700のブロック710で、受信されたパスワードが、格納されている、保護されるプロセスプラントアイテムに関連づけされているパスワードと一致した場合、ユーザは、保護されるデータのうちいずれを(または全てを)保護解除にするのかに関する入力を促される。次いで、ルーチン700のブロック708で格納されそのアイテムと関連づけされた表示記号は、そのデータの一部または全部が保護されないことを示すように修正されうる。
【0095】
図19は、一群のプロセスプラントアイテムを設定してその群へのアクセスを制限するルーチン750の一例を示すフローダイアグラムである。このルーチン750は、
図1のプロセスプラント10のワークステーション14のうちの一または複数および/またはコントローラ12の如き一または複数のコンピューティングシステムにより実行されうる。この群内のプロセスプラントアイテムは、たとえば、モジュールオブジェクト、モジュールクラスオブジェクト、および/または複合テンプレートでありうる。ルーチン750は、コンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションの一部として実行されうる。たとえば、ルーチン750は、コンフィギュレーションアプリケーション50を用いて上記の群のアイテムを設定したあとに実行されうる。また、ルーチン750は、コンフィギュレーションアプリケーション50とは別のアプリケーションにより実行されうる。
【0096】
ブロック752では、上記の一群のアイテムへのアクセスが制限されること(すなわち、上記の一群のプロセスプラントアイテムが保護されること)を示すユーザ入力情報が受信される。たとえば、この群の各アイテムに関連するデータへのアクセスが防御される。これに加えて、この群へのアイテムの追加またはこの群からアイテムの削除は禁止される。このような一群のアイテムとは、たとえば、アイテムのライブラリ、アイテムのフォルダ、アイテムのクラス、アイテムのカテゴリなどである。
【0097】
一群のアイテムを設定する人は、一群のアイテムを強調表示することにより、ライブラリ名、フォルダ名、クラス名、カテゴリ名を選択することなどにより、その群の選択をまず行いうる。
図18(a)を説明すると、人は、たとえば、サブライブラリ734の選択、カテゴリ736の選択、そのカテゴリ736内の複数のモジュールの強調表示などを行いうる。次いで、その人は、たとえば、その群が保護されることを示すための、ボックスのチェック、ボタンの選択、メニューアイテムの選択などを行いうる。
【0098】
図19をさらに参照すると、ブロック754では、ユーザはパスワードを入力するように促されうる。たとえば、ウィンドウプロンプト、スクリーンプロンプト、オーディオプロンプトによりユーザに対してパスワードを入力するように促しうる。以下で記載するように、このパスワードが、後に、保護データにアクセスするためにおよび/またはアイテムを再設定し保護を解除するために用いられうる。ブロック756で、上記のパスワードが受信されうる。たとえば、パスワードは、コンピューティングシステムのキーボード、キーパッド、タッチスクリーン、ライトペン、マウスなどを用いて入力されうる。
【0099】
ブロック758で、その一群のアイテムが保護されるという表示記号が格納され、そのアイテムと関連づけされうる。たとえば、上記の群がアイテムのカテゴリである場合、そのカテゴリを変更しようという試みがなされた場合に、そのカテゴリが保護されていることが判別されるように、上記の一群のアイテムが保護されるという表示記号が格納され、この表示記号がそのカテゴリと関連付けされる。さらに、表示記号はその群の各アイテムと関連づけされうる。たとえば、これらのアイテムがオブジェクトである場合、そのアイテムが保護されている群のアイテムであるという表示記号が各オブジェクトの一部として格納されうる。また、その表示記号が各オブジェクトから分離されて格納されうるし、その表示記号へのリンクが各オブジェクトの一部として格納されうる。
【0100】
ブロック760では、ブロック756で受信されたパスワードが格納され、上記の一群のアイテムと関連づけされうる。たとえば、その群がアイテムのカテゴリである場合、パスワードが格納され、そのパスワードはそのカテゴリと関連づけされうる。さらに、そのパスワードはその群の各アイテムと関連づけされうる。たとえば、これらのアイテムがオブジェクトである場合、そのパスワードは各オブジェクトの一部として格納されうる。また、そのパスワードが各オブジェクトから分離されて格納されうるし、そのパスワードへのリンクが各オブジェクトの一部として格納されうる。
【0101】
図17のルーチン700と同様に、ルーチン750と同等のルーチンが、上記の一群のプロセスプラントアイテムを「保護解除」すべく用いられうる。
【0102】
図20は、保護されることもあれば保護されないこともある、プロセスプラントアイテムに関連づけされたデータの閲覧を許可するか否かを判定するルーチン770の一例を示すフローダイアグラムである。このルーチン770は、
図1のプロセスプラント10のワークステーション14のうちの一または複数および/またはコントローラ12の如き一または複数のコンピューティングシステムにより実行されうる。このようなプロセスプラントアイテムは、モジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどを有している。ルーチン770は、コンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションの一部として実行されうる。また、ルーチン770は、監視アプリケーション、デバッギングアプリケーション、資産管理アプリケーションなどの如き他のアプリケーションの一部として実行されうる。
【0103】
ブロック772では、プロセスプラントアイテムに関連するデータを閲覧する要求が受信される。たとえば、ユーザは、エクスプローラビューにおいてアイテムを選択し、モジュールへとドリルダウンし、そのモジュールのコンポーネントを調べうる。一例として
図18(b)を参照すると、ユーザは、スクリーン表示画面732におけるエクスプローラビューのうちの部分722においてDYN_FULL複合テンプレート726を選択している。したがって、DYN_FULL複合テンプレート726のサブエレメントがスクリーン表示画面732の右側に表示される。
【0104】
ブロック774では、上記のアイテムに関連するデータを保護するか否かが判定される。たとえば、
図17のブロック708で格納されるような、上記のアイテムに関連するデータが保護されることを示す表示記号の如き、上記のアイテムに関連する表示記号が存在するか否かが判定されうる。他の一例では、
図19のブロック758で格納されるような、上記のアイテムが保護される一群のアイテムの一部であることを示す表示記号の如きアイテムに関連する表示記号が存在するか否かが判定される。
【0105】
アイテムに関連するデータが保護されない場合、フローは、そのアイテムに関連するデータが表示されるブロック776へ進みうる。たとえば、ユーザがエクスプローラビューにおいてそのアイテムを選択した場合、そのアイテムのサブエレメントが表示クリーンの一部分に表示されうる。一例として
図18(a)を参照すると、ユーザは、スクリーン表示画面720におけるエクスプローラビューノブ分722においてDYN_FULL複合テンプレート726を選択している。したがって、機能ブロック730を含む、DYN_FULL複合テンプレート726のサブエレメントが、スクリーン表示画面720の右側部分728に表示される。他の一例では、ユーザの要求によりモジュールに至るまで「ドリルダウン」し、そのモジュールのコンポーネントを調べる場合、そのモジュールのコンポーネントが表示スクリーンまたはウィンドウに表示されうる。
【0106】
ブロック774において、アイテムに関連するデータが保護されることが判定された場合フローはブロック786へ進みうる。ここで、そのアイテムに関連するデータのうちの保護されるデータは表示されないが、非保護のデータは表示されうる。
【0107】
任意選択的に、ブロック774でアイテムに関連するデータが保護されると判定された場合、フローはブロック778に進んでもよい。ブロック778では、ユーザは。たとえばウィンドウプロンプト、表示スクリーンプロンプト、オーディオプロンプトなどを用いてパスワードを入力するように促されうる。たとえば、パスワードは、コンピューティングシステムのキーボード、キーパッド、タッチスクリーン、ライトペン、マウスなどを用いて入力されうる。ブロック782では、ブロック780で受信されたパスワードは、格納されそのアイテムに関連づけされたパスワードと比較されうる。たとえば、受信されたパスワードは、
図17のブロック710で格納されたパスワード、または
図19のブロック760で格納されたパスワードと比較されうる。
【0108】
ブロック784では、ブロック780で受信されたパスワードが、格納されかつそのアイテムに関連づけされているパスワードと一致するか否かが判定されうる。これらのパスワードが一致する場合、そのアイテムに関連するデータがブロック776で表示されうる。パスワードが一致しない場合、ブロック786で、そのアイテムに関連するデータのうちの保護されるデータは表示されないが非保護のデータは表示されうる。たとえば、
図18を参照すると、DYN_FULLモジュール726のパラメータが表示スクリーン732の右側部分728において表示されているがDYN_FULLモジュール726のこう制している機能ブロックは表示されていない。
【0109】
なお、ブロック778、780、782、784は、任意なものであり、削除されてもよい。このようなケースの場合には、上記のように、ブロック774でデータが保護されることが判定された場合、フローはブロック786へ進みうる。
【0110】
図21は、保護されることもあれば保護されないこともあるプロセスプラントアイテムまたは一群のプロセスプラントアイテムの修正を許可するか否を判定するルーチンの一例を示すフローダイアグラムである。このルーチン800は、
図1のプロセスプラント10のワークステーション14のうちの一または複数および/またはコントローラ12の如き一または複数のコンピューティングシステムにより実行されうる。このようなプロセスプラントアイテムは、たとえば、モジュールオブジェクト、モジュールクラスオブジェクト、および/または複合テンプレートを有している。ルーチン800は、コンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションの一部として実行されうる。また、ルーチン800は、たとえば資産管理アプリケーションの如き他のアプリケーションの一部として実行されうる。
【0111】
ブロック802では、プロセスプラントアイテムまたは一群のプロセスプラントアイテムの修正の要求が受信される。たとえば、ユーザは、エクスプローラビューにおいて、修正するアイテムの選択、アイテムの修正するコンポーネントなどを行いうる。他の一例では、ユーザは、一群のアイテム代えアイテムの削除、一群のアイテムに対して新規のアイテムの追加などを試みうる。
【0112】
ブロック804では、アイテムまたは一群のアイテムが保護されるか否かが判定される。たとえば、
図17のブロック708で格納されるような、上記のアイテムに関連するデータが保護されることを示す表示記号の如き、上記のアイテムに関連する表示記号が存在するか否かが判定されうる。他の一例では、
図19のブロック758で格納されるような、上記のアイテムが保護される一群のアイテムの一部であることを示す表示記号の如き、上記のアイテムに関連する表示記号が存在するか否かが判定されうる。さらに他の一例では、
図19のブロック758で格納されるような、上記の一群のアイテムが保護されることを示す表示記号の如き、上記の一群のアイテムに関連する表示記号が存在するか否かが判定されうる。
【0113】
上記のアイテムまたは上記の一群のアイテムに関連するデータが保護されない場合、フローは、修正が許可されるブロック806へ進みうる。しかしながら、ブロック804で、上記のアイテムまたは上記の一群のアイテムに関連するデータが保護されると判定された場合、フローはブロック808へ進みうる。ブロック808では、ユーザが修正しようとしている上記のアイテムまたは上記の一群のアイテムが保護されていることを示す通知(たとえば、ウィンドウプロンプト、表示スクリーンプロンプト、オーディオプロンプトなど)が生成されうる。任意選択的に、ブロック808は削除されてもよい。このようなケースの場合には、上記のアイテムまたは上記の一群のアイテムは、上記のアイテムまたは上記の一群のアイテムが保護されていることをユーザに示すような方法で表示されうる。たとえば、上記のアイテムまたは上記の一群のアイテムの画像が、上記のアイテムまたは上記の一群のアイテムが保護されていることを示すように、「灰色」になってもよいし、シンボルを有すなどしてもよい。他の一例では、上記のアイテムまたは上記の一群のアイテムが保護されているというユーザに対する表示が存在しない場合もある。このようなケースの場合、ユーザは、上記のアイテムまたは上記の一群のアイテムの修正を単に行えないということもある。このブロック808のあとかまたはブロック808が削除されている場合、ルーチンは終了してもよい。
【0114】
任意選択的に、フローはブロック810へ進んでもよい。ブロック810では、ユーザは、ウィンドウプロンプト、表示スクリーンプロンプト、オーディオプロンプトなどを用いて、パスワードを入力するように促されうる。ブロック812において、ユーザにより入力されたパスワードが受信されうる。たとえば、このパスワードは、コンピューティングシステムのキーボード、キーパッド、タッチスクリーン、ライトペン、マウスなどを利用して入力されうる。ブロック814では、ブロック812で受信されたパスワードが、格納されかつ上記のアイテムまたは上記の一群のアイテムに関連づけされているパスワードと比較されうる。たとえば、受信されたパスワードは、
図17ノブロック710で格納されたパスワードまたは
図19ノブロック760で格納されたパスワードと比較されうる。
【0115】
ブロック816では、ブロック812で受信されたパスワードが、格納されかつ上記のアイテムまたは上記の一群のアイテムと関連づけされているパスワードと一致するか否が判定されうる。これらのパスワードが一致する場合、その修正がブロック806において許可されうる。これらのパスワードが一致しない場合、その修正が許可されないという通知がブロック818において生成されうる。これに代えてまたはこれに加えて、この通知は、ブロック812で受信されたパスワードが正しいパスワードでないことを示してもよい。
【0116】
以上のように、ブロック810、812、814、816、818は、任意のものであり、削除されてもよい。このようなケースの場合、ルーチンはブロック808のあと終了しうる。また、ブロック808は、任意のものであり、削除されてもよい。このようなケースの場合、ルーチンは、上記のアイテムまたは上記の一群のアイテムが保護されるとブロック804で判定されている場合、終了してもよいし任意ブロック810へ進んでもよい。
【0117】
図17および
図19〜21では、プロセスプラントアイテムへのアクセスを制限するためのパスワードに関して説明されたが、パスワードに代えてまたはそれに加えて、アクセスを制限する他の技術が用いられてもよい。たとえば、アイテムに対するアクセスを許可された人を表す事前許可セキュリティアクセスレベル、アイテムに対するアクセスを許可された特定の人の表示記号(ログイン名、ID番号)のリストなどが用いられてもよい。さらに、全てのアクセスを禁止するか否か、読み取りアクセスのみ許可するか否か、異なる人および/または異なるレベルの認可に対する異なる防御レベルのなどの如き防御レベルに関連するデータが、さらにアイテムまたは一群のアイテムに関連づけされうる。さらに、一部の実施態様では、ユーザは、アイテムのサブエレメントに対して異なるレベルのセキュリティレベルを選択することを許可されうる。一般的に、アクセスセキュリティデータ(たとえば、パスワード、バイオメトリックデータ、事前に許可されたセキュリティティアクセスレベル、許可された人および/またはIDのリストなど)は、格納されかつプロセスプラントアイテムと関連づけされうるし、このアクセスセキュリティデータは、ユーザセキュリティデータ(たとえば、ユーザにより入力されるパスワード、ユーザのID、ユーザのログインID、ユーザより得られるバイオメトリックデータなど)と比較され、アイテムおよび/またはそのアイテムの特定のサブエレメントへのアクセスを許可されているか否かを判定しうる。
【0118】
図17を説明すると、ブロック704、706、710は、所望ならば、削除されてもよい。たとえば、ユーザは、プロセスプラントアイテムまたは当該プロセスプラントアイテムに関連するデータが保護されることを示してもよい。次いで、ユーザは、
図19のルーチン750と同等のルーチンを用いて、自分が保護したいプロセスプラントアイテムを含む一群のアイテムを保護してもよい。このようにして、ユーザは、保護されているデータを閲覧すべく他の人によりそのアイテムの設定が変更されること禁止しうる。
【0119】
図22は、プロセスプラントアイテムをエクスポートるルーチン830の一例を示すフローダイアグラムである。このルーチン830は、
図1のワークステーション14のうちの一または複数および/またはコントローラ12の如き一または複数のコンピューティングシステムにより実行されうる。また、ルーチン830は、プロセスプラント10から分離されたコンピューティングシステムにより実行されうる。たとえば、ルーチン830は、プロセスプラントアイテムを顧客にまたはプロセスプラント10へエクスポートするために、第三のプロバイダのコンピューティングシステムまたは他のプロセスプラントのコンピューティングシステムにより実行されうる。このプロセスプラントアイテムは、モジュールオブジェクト、モジュールクラスオブジェクト、複合テンプレートなどを有しうる。ルーチン830は、コンフィギュレーションアプリケーション50の如きコンフィギュレーションアプリケーションの一部として実行されうる。また、ルーチン830は、資産運用アプリケーションまたは、たとえば第三のプロバイダにより用いられるアプリケーションの如き他のアプリケーションの一部として実行されうる。
【0120】
ブロック832では、プロセスプラントアイテムをエクスポートする要求が受信されうる。たとえば、ユーザは、エクスプローラビューへエクスポートするアイテムを選択しうる。他の一例では、ユーザは、エクスポートする一群のプロセスプラントアイテムを選択しうるし、ルーチン830をその一群の各々に対して実行しうる。
【0121】
ブロック834では、上記アイテムに関連するデータが保護されるか否かが判定される。たとえば、
図17のブロック708で格納されるような、上記のアイテムに関連するデータが保護されることを示す表示記号の如き、上記のアイテムに関連する表示記号が存在するか否かが判定されうる。他の一例では、
図19のブロック758で格納されるような、上記のアイテムが、保護される一群のアイテムの一部であることを示す表示記号の如き上記アイテムに関連する表示記号が存在するか否かが判定される。上記アイテムに関連するデータが保護されない場合、フローは、上記アイテムがエクスポートされうるブロック836へ進みうる。
【0122】
しかしながら、ブロック834で上記アイテムに関連するデータが保護されると判定された場合、フローは、ブロック838へ進みうる。ブロック838では、保護されるデータが暗号化されうる。次いで、ブロック840では、上記のアイテムに関連するパスワードが暗号化されうる。たとえば、
図17ノブロック706で受信されたパスワードまたは
図19のブロック756で受信されたパスワードが暗号化される。
【0123】
ブロック842では、上記アイテムは、保護されるデータが暗号化された保護データと交換されパスワードが暗号化されたパスワードと交換された状態で、エクスポートされうる。このプロセスプラントアイテムがモジュールクラスオブジェクトから作成されたアイテムである場合、暗号化されたデータおよび/または暗号化されたパスワードは、たとえば、そのモジュールクラスオブジェクトまたはそのアイテムの一部としてエクスポートされうる。
【0124】
図23は、プロセスプラントに関連するバージョン管理および監査トレイル情報を提供すべく用いられうるコンフィギュレーションシステム900の一例を示すブロック線図である利用可能なバージョン管理技術および監査トレイル技術のさらなる態様は、本出願の譲受者に譲渡された表題が「プロセスプラントにおけるバージョン管理および監査トレイル(Version Control and Audit Trail in a Process Control System)」である米国特許番号第6,449,624号に記載されている。いうまでもなく、米国特許番号第6,449,624号に記載されている技術を用いなければならないということはなく、異なる技術を用いてもよい。米国特許番号第6,449,624号は、本明細書において参照することにより、全ての目的においてその全内容をここに援用されるものとする。
【0125】
コンフィギュレーションシステム900は、たとえばワークステーション14(
図1)またはなんらかの他のコンピューティングデバイスの表示デバイス丈に生成されうるユーザインターフェイス904を備えている。このユーザインターフェイス904は、一または複数のコンフィギュレーションアプリケーション906を用いてプロセスプラントまたはプロセスプラントの一部を設定することをユーザに可能にしうる。コンフィギュレーションアプリケーション906は、コンフィギュレーションアプリケーション50(
図1)の如きコンフィギュレーションアプリケーションを含みうる。また、ユーザインターフェイス904は、バージョン管理および監査トレイルシステム908(以後、「VCATシステム」と呼ぶ)と接続され、このVCATシステムは、通常、コンフィギュレーションアプリケーション906と協働し、プロセスプラントまたはそのプロセスプラントの一部の設定に関する履歴情報を記録・管理する。コンフィギュレーションアプリケーション906およびVCATシステム908の両方は、コンフィギュレーションデータベース912にアクセスまたはそれと通信し、このコンフィギュレーションデータベース912は、プロセスプラントまたはそのプロセスプラントの一部の現在時点での設定(以後、プロセスコンフィギュレーションと呼ぶ)を表すデータを格納しうる。また、VCATシステム908は、バージョン管理データベース910とも通信する。
【0126】
バージョン管理データベース910は、プロセスコンフィギュレーションにおいて活用される各アイテムの任意の数の以前のバージョンを表すコンフィギュレーション履歴データを有しうる。一緒にすると、全てのアイテムの履歴データを用いて、プロセスの以前の設定を再現することが可能である。さらに詳細にいうと、コンフィギュレーションデータベース912内の各アイテム(およびコンフィギュレーションデータベース912内にはもはや存在していない各アイテム)に対して、そのアイテムのコンフィギュレーションを表すデータが複数のバージョンにわたり格納されている。たとえば、あるアイテムがその作成以来3回にわたり修正されてきているとする。したがって、バージョン管理データベース910は、作成の時点でのそのアイテムのコンフィギュレーションを表す「バージョン1」と呼ばれうるデータのみならず、上記の3回の修正の各々のあとのそのアイテムのコンフィギュレーションを表す「バージョン2」、「バージョン3」、および「バージョン4」に相当するデータも有していることになる。
【0127】
したがって、コンフィギュレーション履歴データは、モジュールオブジェクトおよびモジュールクラスオブジェクトに対して加えられる修正全てを表すデータを有しうる。これらの修正は、限定されるわけではないが、コンフィギュレーションアプリケーション906を用い手行われうる。ユーザインターフェイス904、コンフィギュレーションアプリケーション906、およびVCATシステム908のうちのいずれかまたは全てを組み合わせて、単一の統合されたシステムにしうる。しかしながら、説明の便宜上、タスクを、インターフェイス904、コンフィギュレーションアプリケーション906、およびVCATシステム908に対して別々に帰属するものとして本明細書で記載する。VCATシステム908は、プロセスコンフィギュレーションの修正を監視することを可能にするような方法でワークステーション14(
図1)の如き一または複数のコンピューティングデバイスを用いて実装されうる。ユーザインターフェイス904およびコンフィギュレーションアプリケーション906は、VCATシステム908と同一のコンピューティングデバイス上に、またはVCATシステム908を実装するコンピューティングデバイスと通信する異なるコンピューティングデバイス上に実装されうる。
【0128】
データベース910、912の一方または両方のデータは、ワークステーション14と関連するたとえば揮発性メモリ、磁気式格納媒体、または光学式格納媒体の如き、プロセスプラント10内のいずこかに物理的に設けられているコンピュータ夜も取り可能媒体に格納されうる。これに代えて、データベース910、912の一方または両方のデータは、ワークステーション14の如きコンピューティングデバイスが、イントラネット、インターネット、またはその他の通信媒体の如きネットワークを利用して格納されているデータにアクセスするような遠隔の領域に格納されうる。さらに、データベース910、912の各々に格納されるデータは、同一のコンピュータ読み取り可能媒体に格納される必要はない。したがって、データベース910、912の一部分が、他の部分を格納するデバイスまたは媒体とは異なるメモリデバイスまたはメモリ媒体に格納されてもよい。
【0129】
図23では、VCATシステム908は、バージョン管理データベース910とは異なりかつそれから分離されたものとして示されている。これに代えて、バージョン管理データベース910がVCATシステム908の一部を形成してもよい。同様に、コンフィギュレーションデータベース912およびバージョン管理データベース910は、分離されたかつ異なるデータ構造を構成してもよいが、これに限定されるわけではない。すなわち、データベース910、912は、同一の格納媒体に設けられてもよいし、事実上、プロセスプラント10専用の共通データベースの一部分を構成しうる。さらに、データベース910、912の各々に格納されるデータは、同一のコンピュータ読み取り可能媒体に格納される必要がない。したがって、本明細書で用いられる「データベース」は、いかなる特定のデータ構造に限定されることなく解釈されるべきである。
【0130】
図24は、プロセスプラントアイテムのバージョン野津移籍を用にするルーチン930の一例を示すフローダイアグラムである。このプロセスプラントアイテムは、たとえば、モジュールオブジェクトおよび/またはモジュールクラスオブジェクトを有しうる、ルーチン930は、
図23のVCATシステム908などにより実行されうる。
図23を参照しながら、このルーチン930を説明する。
【0131】
ブロック932では、プロセスプラントアイテムの修正が検出されうる。たとえば、ユーザは、コンフィギュレーションアプリケーション906を用いてプロセスコンフィギュレーションに対して新規のアイテムの追加を試みうる。他の一例では、ユーザは、アイテムの修正したあと、コンフィギュレーションデータベース912にそのアイテムを保存することを要求しうる。さらに他の一例では、ユーザは、アイテムの修正したあと、コンフィギュレーションデータベース912にそのアイテムを「チェックイン」することを要求しうる。米国特許第6,449,624は、利用可能な「チェックイン」手順および「チェックアウト」手順に関連する技術を記載している。
【0132】
ブロック934では、モジュールクラスオブジェクトがアイテムの修正に用いられた場合にいずれのモジュールクラスオブジェクトが用いられたかが判定されうる。たとえば、第一のモジュールクラスオブジェクトが第二のモジュールクラスオブジェクトの作成に用いられ、次いで、この第二のモジュールクラスオブジェクトがアイテムの作成に用いられている。アイテムの修正に一または複数のモジュールクラスオブジェクトが用いられた場合、ブロック936で、用いられたモジュールクラスオブジェクトの各々のバージョンが判定されうる。
【0133】
ブロック938では、修正されたアイテムのバージョン識別子が生成される。このバージョン識別子は、数字、文字、シンボルなどを有しうる。バージョン識別子は、ブロック932で検出される修正を反映するバージョンを表す。たとえば、ブロック932で検出された修正がアイテムの作成であった場合、そのバージョン識別子は第一のバージョンを表す。他の一例では、ブロック932で検出された修正がアイテムの第一のバージョンの修正であった場合、そのバージョン識別子は第二のバージョンを表す。
【0134】
ブロック940では、ブロック938で生成されたバージョン識別子が、格納され、修正されたアイテムと関連づけされる。たとえば、そのアイテムがオブジェクトである場合、そのバージョン識別子は、そのオブジェクトの一部として格納されうる。他の一例では、そのバージョン識別子は、そのオブジェクトから分離されて格納されうるし、そのバージョン識別子へのリンクがそのオブジェクトの一部として格納されうる。
【0135】
ブロック942では、ブロック936で判定された、アイテムを構成している一または複数のモジュールクラスオブジェクトのバージョン識別子が、格納され、修正されたアイテムと関連づけされうる。たとえば、アイテムがオブジェクトである場合、そのバージョン識別子はそのオブジェクトの一部として格納されうる。他の一例では、そのバージョン識別子は、オブジェクトから分離されて格納されうるし、そのバージョン識別子への一または複数のリンクは、そのオブジェクトの一部として格納されうる。さらに他の一例では、ブロック938で生成されるバージョン識別子は、ブロック936で生成されるバージョン識別子を用いて生成されうる。たとえば、ブロック936で判定されるバージョン識別子は、ブロック938で生成されるバージョン識別子内にコード化されうる。このようなケースの場合、ブロック940はブロック942を包含しうる。
【0136】
図25は、プロセスプラントアイテムのバージョンの追跡を容易にするルーチン948の一例を示すフローダイアグラムである。これらのプロセスプラントアイテムは、モジュールオブジェクトおよび/またはモジュールクラスオブジェクトを有しうる。ルーチン948は、たとえば
図23のVCATシステム908により実行されうる。
【0137】
ブロック950では、モジュールクラスオブジェクトの新規のバージョンが作成されたか否かが判定されうる。たとえば、モジュールクラスオブジェクトの新規のバージョンがいつ「チェックイン」されたかが検出されうる。ブロック952では、そのモジュールクラスオブジェクトを用いて作成されたプロセスプラントアイテムが判定されうる。たとえば、
図6を参照すると、モジュールオブジェクトのうちのいずれが上記のモジュールクラスオブジェクトから作成されたものかを判定するために、メモリ526が検査されうる。また、他のモジュールクラスオブジェクトのうちのいずれが上記のモジュールクラスオブジェクトから作成されたものかを判定するために、メモリ526または他のメモリもしくはセクションが検査されうる。
【0138】
ブロック954では、モジュールクラスオブジェクトの新規のバージョンまたはそのモジュールクラスオブジェクトに対して加えられた変更が、ブロック952で判定されたアイテムに伝送されうる。次いで、ブロック958で、そのモジュールクラスオブジェクトの新規のバージョンのバージョン識別子が、格納され、ブロック952で判定されたアイテムに関連づけされうる。一例では、ブロック952で判定されるアイテムのバージョン識別子は、これらのアイテムの新規のバージョンを反映するための更新はなされない。任意選択的に、他の一例では、ブロック952で判定されるアイテムのバージョン識別子は、ブロック959で更新される。次いで、それらのアイテムの新規のバージョン識別子は、格納され、それらのアイテムと関連づけされる。
【0139】
図24のブロック940、942および
図25のブロック958、959で格納されるバージョン識別子により、ユーザは、現在時点のコンフィギュレーションに、アイテムのいずれのバージョンが用いられているか、またはこれらのアイテムを構成しているモジュールクラスオブジェクトのいずれのバージョンが用いられているのか、を追跡することが容易となる。たとえば、コンフィギュレーションアプリケーション、資産管理アプリケーションなどは、コンフィギュレーションデータベース912(
図23)を検査し、アイテムのバージョンおよびこれらのアイテムを構成しているモジュールクラスオブジェクトのバージョンを判定しうる。他の一例では、デバッギングアプリケーション、監視アプリケーションなどは、たとえばコントローラ12のメモリを検査し、アイテムのバージョンおよびこれらのアイテムを構成しているモジュールクラスオブジェクトのバージョンを判定しうる。
【0140】
図26は、プロセスプラントアイテムのコンフィギュレーションを容易にするルーチン960の一例を示すフローダイアグラムである。このルーチン960は、たとえば、プロセスプラントアイテムがコンフィギュレーションアプリケーションにより表示スクリーン上に表示されるときに、実行されうる。このプロセスプラントアイテムは、たとえばモジュールオブジェクトおよび/またはモジュールクラスオブジェクトを有しうる。ルーチン960は、たとえば
図23のコンフィギュレーションアプリケーション906および/またはVCATシステム908により実行されうる。このルーチン960を
図23を参照しながら説明する。
【0141】
ブロック962では、上記のアイテムの作成にモジュールクラスオブジェクトが用いられた場合、いずれのモジュールクラスが用いられたかが判定されうる。たとえば、第一のモジュールクラスオブジェクトが第二のモジュールクラスオブジェクトの作成に用いられ、次いで、この第二のモジュールクラスオブジェクトが上記のアイテムの作成に用いられる。上記アイテムの作成に一または複数のモジュールクラスオブジェクトが用いられる場合、ブロック964では、それらのモジュールクラスオブジェクトの各々の現在時点でのバージョンが判定されうる。ブロック966では、上記のアイテムの作成に用いられたモジュールクラスオブジェクトの各々のバージョンが判定されうる。たとえば、
図24のブロック942で格納され、上記のアイテムと関連づけされたバージョン識別子が検索されうる。
【0142】
ブロック968では、上記のアイテムの作成に用いられたモジュールクラスオブジェクトの各々に対して、そのモジュールクラスオブジェクトの現在時点のバージョンが上記のアイテムの作成に用いられたモジュールクラスオブジェクトのバージョンと異なるか否が判定される。異ならない場合、ルーチンは終了しうる。しかしながら、一または複数の相違が検出された場合、ブロック970においてなんらかの通知が生成されうる。この通知は、通常、上記のアイテムの作成に用いられたモジュールクラスオブジェクトの新規のバージョンが入手可能であるということを示しうる。また、この通知は、テキスト、シンボル、色彩、オーディオプロンプトなどを有しうる。たとえば、テキストボックスまたはウィンドウを、コンフィギュレーション表示スクリーン上の上記のアイテムの図式表現のとなりにまたは重ね合わせて、表示しうる。他の一例では、シンボルを、上記アイテムの図式表現上にまたはその近くに表示しうる。さらに他の一例では、上記アイテムの図式表現の色彩、明度などが変更されうる。この通知自体が、いずれのモジュールクラスオブジェクトが入手可能な新規のバージョンを有しているかを示しうる。他の方法では、この通知は、いずれのモジュールクラスオブジェクトが入手可能な新規のバージョンを有しているかをユーザに対して通知しないが、ユーザが、たとえばメニューアイテムを選択することにより、シンボル上を「ダブルクリック」することにより、上記アイテムに至るまで「ドリルダウン」することなどにより、その情報を見出すためのさらなるステップを実行することができる。
【0143】
次いで、任意選択的に、ユーザは、モジュールクラスオブジェクトの新規のバージョンを用いて上記のプロセスプラントアイテムを更新することにより当該アイテムを修正するプロセスを開始するためのユーザインターフェイス機構を提供されうる。たとえば、ユーザは、そのプロセスを開始するためのたとえばボタンを提供されうる。他の一例では、ユーザは、上記のプロセスプラントアイテムの更新に新規のバージョンを有する複数のモジュールクラスオブジェクトのうちのいずれを用いるかを選択するためのユーザインターフェイス機構を提供されうる。たとえば、ユーザは、上記のプロセスプラントアイテムの更新に用いられる新規のバージョンを有するモジュールクラスオブジェクトに対応して、ボックスのチェック、図式表現の強調表示などを行うことをできうる。
【0144】
図27は、プロセスプラントアイテムのコンフィギュレーションを容易にするルーチン980の一例を示すフローダイアグラムである。このルーチン980は、プロセスプラントアイテムがたとえば修正および/または「チェックイン」されるときに実行されうる。上記のプロセスプラントアイテムは、たとえばモジュールクラスオブジェクトを有しうる。ルーチン980は、
図23のたとえばコンフィギュレーションアプリケーション906および/またはVCATシステム908により実行されうる。このルーチン980を、
図23を参照しながら説明する。
【0145】
ブロック982では、モジュールクラスオブジェクトの新規のバージョンが作成されたか否かが判定されうる。たとえば、新規のバージョンのモジュールクラスオブジェクトがいつ「チェックイン」されたかが検出されうる。ブロック984では、このモジュールクラスオブジェクトを用いて作成されたプロセスプラントアイテムが判定されうる。たとえば、
図6を参照すると、モジュールオブジェクトのうちのいずれが上記のモジュールクラスオブジェクトから作成されたものかを判定するために、メモリ526が検査されうる。また、他のモジュールクラスオブジェクトのうちのいずれが上記のモジュールクラスオブジェクトから作成されたものかを判定するために、メモリ526または他のメモリもしくはセクションが検査されうる。
【0146】
ブロック986では、ユーザは、上記のモジュールクラスオブジェクトに対して加えられた変更をブロック984で特定されたプロセスプラントアイテムのうちの一または複数に伝送すべきか否かに関して入力を促されうる。たとえば、テキストボックス、ウィンドウ、表示スクリーン、オーディオプロンプトなどがユーザの促しに用いられうる。
【0147】
任意選択的に、ユーザは、ブロック984で特定されたプロセスプラントアイテムのうちから変更が伝送される特定のプロセスプラントアイテムを選択するユーザインターフェイス機構を提供されてもよい。たとえば、ユーザは、上記のプロセスプラントアイテムの更新に用いられる新規のバージョンを有するモジュールクラスオブジェクトに対応して、ボックスのチェック、図式表現の強調表示などを行うことをできうる。
【0148】
ブロック988では、ブロック986により生成されたプロンプトに対するユーザの応答が受信される。ブロック990では、このユーザの応答が、変更を伝送することを示しているか否かが判定されうる。変更が伝送されない場合、ルーチンは終了する。変更が伝送される場合、ブロック992で変更が、ブロック984で特定されたプロセスプラントアイテムに伝送される。任意選択的に、変更は、ブロック984で特定されたプロセスプラントアイテムのうちの選択されるアイテムに伝送されてもよい。
【0149】
図17、
図19〜
図22、および
図24〜27は、プロセスプラントアイテムに関連して記載されているが、同等のルーチンが、プロセスプラントアイテムにより実行される制御ステップのシーケンスに従って、アクセスの制限、加えられた変更の追跡、および変更の伝送に用いられてもよい。たとえば、
図17、
図19〜
図22、および
図24〜27のルーチンと同等のルーチンが、フェイズクラス、ユニットフェイズ、および/または一群のフェイズクラスもしくはユニットフェイズに従って、アクセスの制限、加えられた変更の追跡、および変更の伝送に用いられてもよい。
【0150】
図28は、モジュールクラスオブジェクトを設定するためのユーザインターフェイスのスクリーン表示画面1000の一例である。このスクリーン表示画面1000では、「CALCULATION」と呼ばれるモジュールクラスオブジェクトの詳細が示されている。スクリーン表示画面1000は、上記のオブジェクトを編集するための編集部1004を有している。
図28に示されているように、CALCULATIONモジュールクラスオブジェクトは、乗算機能ブロック1008と、加算機能ブロック1012とを有している。また、スクリーン表示画面1000は、CALCULATIONモジュールクラスオブジェクトへのアクセスが制限されている場合であっても隠されることのない、CALCULATIONモジュールクラスオブジェクトのパラメータを示す部分1020も有している。隠されることのないパラメータには、CALCULATIONモジュールクラスオブジェクトから作成されるモジュールオブジェクトのバージョンを示すバージョンインディケータ1026と、CALCULATIONモジュールクラスオブジェクトのバージョンを示すバージョンインディケータ1028とが含まれる。
【0151】
図29は、隠されることのない、CALCULATIONモジュールクラスオブジェクトのパラメータを判定するためのユーザインターフェイスのスクリーン表示画面1030の他の一例である。このスクリーン表示画面1030は、隠されることのない一群のパラメータからパラメータを追加および削除するための追加ボタン1032および削除ボタン1034を有している。スクリーン表示画面1030は、MULTIPLIERパラメータ1038が隠されることのない一群のパラメータに追加されることを示している。もう一度、
図28を参照すると、MULTIPLIERパラメータ1038は、乗算ブロック1008の入力「IN2」に対応している。
【0152】
図30は、デバッギングアプリケーション用のユーザインターフェイスのスクリーン表示画面1040の一例である。このスクリーン表示画面1040では、CALCULATION_1モジュールオブジェクトの詳細が示されている。CALCULATION_1モジュールオブジェクトは、CALCULATIONモジュールクラスオブジェクトから作成されている。この一例では、CALCULATIONモジュールクラスオブジェクトへのアクセスは制限されていない。したがって、スクリーン表示画面1040は、CALCULATION_1モジュールオブジェクトを構成しているサブエレメントの詳細を概ね示している。たとえば、部分1044は、CALCULATION_1モジュールオブジェクトが、乗算機能ブロック1008と、加算機能ブロック1012とを有していることを示している。また、スクリーン表示画面1040は、CALCULATION_1モジュールオブジェクトのパラメータを表示する部分1048も有している。たとえば、CALCULATION_1モジュールオブジェクトは、バージョンインディケータ1026、1028と、MULTIPLIERパラメータ1038とを有している。これに加えて、スクリーン表示画面1040は、CALCULATION_1モジュールオブジェクトを構成している機能ブロック表示す部分1050も有している。すなわち、部分1050は、CALCULATION_1モジュールオブジェクトが、加算機能ブロックと乗算機能ブロックとを有していることを示している。
【0153】
図31は、CALCULATIONモジュールクラスオブジェクトへのアクセスが制限されている場合のスクリーン表示画面1040の一例である。したがって、スクリーン表示画面1040は、CALCULATION_1モジュールオブジェクトを構成しているサブエレメントの全ての詳細を概ね示していない。たとえば、部分1044、1050は、CALCULATION_1モジュールオブジェクトが乗算機能ブロック1008と加算機能ブロック1012とを有していることを示していない。しかしながら、部分1048は、CALCULATION_1モジュールオブジェクトのパラメータを依然として示している。
【0154】
当業者にとって明らかなように、本明細書記載の技術に対してさまざまな変更を加えることが可能である。たとえば、ブロックの順番の変更、ブロックの削除、新規のブロックの追加などを行ってもよい。さらに、本明細書記載のさまざまな技術を組み合わせてもよい。たとえば、
図17のルーチン700と同等のルーチンを用いてモジュールクラスオブジェクトに関連するなんらかのデータを保護してもよい。次いで、そのモジュールクラスオブジェクトからモジュールテンプレートを作成してもよい。次いで、
図17のルーチン700と同等のルーチンを用いて、前記のモジュールクラスオブジェクトでは保護されていない、モジュールテンプレートに関連するなんらかのデータを保護してもよい。次いで、前記のモジュールクラスオブジェクトおよび前記のモジュールテンプレートに対して指定された保護を有する、前記のモジュールテンプレートの特定のインスタンスを作成してもよい。
【0155】
実現された場合、本明細書記載のソフトウェアは、そのいずれも、磁気ディスク、レーザーディスク、または他の記憶媒体や、コンピュータまたはプロセッサのRAMまたはROMなどの如きいかなるコンピュータ読取り可能メモリに格納されてもよい。同様に、このソフトウェアは、たとえばコンピュータ読取り可能ディスクまたは他の搬送可能なコンピュータ格納メカニズムまたは、電話回線、インターネット、ワールドワイドウェブ、その他のローカルエリアネットワークもしくはワイドエリアネットワークなど如き通信チャネルを含むいかなる公知のまたはいかなる所望の搬送方法を用いて、ユーザ、プロセスプラント、またはオペレータワークステーションへ搬送されてもよい。(上記の電話回線、インターネット、ワールドワイドウェブ、その他のローカルエリアネットワークもしくはワイドエリアネットワークなど如き通信チャネルは、搬送可能な記憶媒体を介してかかるソフトウェアを提供するのと同様または相互交換可能であるとみなされる)
本発明は特定の例を参照して説明されているが、これは、説明のみを意図したものであって、本発明を限定することを意図したものではない。当業者にとって明らかであるように、ここに開示されている実施例に対し、本発明の精神および範囲から逸脱することなく変更、追加または削除を行うことが可能である。