(57)【要約】      （修正有）【課題】特定の瞬間のシミュレーションのスナップショットの作成を容易に行う。【解決手段】シミュレーションモジュールのパラメータに対して冗長信号を作成する複数の通信可能に接続されたシミュレーションモジュールとしてシミュレーションシステムを作成することと、シミュレーションシステムの動作中にシミュレーションコンピュータ内の専用メモリ領域に格納するためにシミュレーションシステム内で通信可能に接続されたシミュレーションモジュールの冗長信号を送信することと、特定の時間にシミュレーションシステムの動作を停止し、専用メモリ領域の内容をスナップショットファイルにコピーし、シミュレーションシステムの動作を継続することにより、特定の時間にシミュレーションシステムのスナップショットを格納することとを有する。【選択図】図１
2010015596.tif 000002
【特許請求の範囲】
【請求項１】
プロセス制御システム内の冗長モジュールに送信される冗長信号を作成する冗長能力を有するモジュールを備えた前記プロセス制御システムのシミュレーションシステムのスナップショットを取得する方法であって、
シミュレーションモジュールのパラメータに対して冗長信号を作成する複数の通信可能に接続されたシミュレーションモジュールとしてシミュレーションシステムを作成することと、
前記シミュレーションシステムの動作中にシミュレーションコンピュータ内の専用メモリ領域に格納するために前記シミュレーションシステム内で通信可能に接続された前記シミュレーションモジュールの前記冗長信号を送信することと、
特定の時間に前記シミュレーションシステムの動作を停止し、前記専用メモリ領域の内容をスナップショットファイルにコピーし、前記シミュレーションシステムの動作を継続することにより、特定の時間に前記シミュレーションシステムのスナップショットを格納することとを有するシミュレーションシステムのスナップショットを取得する方法。
【請求項２】
前記シミュレーションシステムの動作を停止し、前記スナップショットファイルにアクセスし、前記スナップショットファイルの内容を通信可能に接続された前記シミュレーションモジュールにコピーし、そして前記シミュレーションシステムの動作を継続することにより、前記シミュレーションシステムを前回の状態に復元することをさらに有する、請求項１記載のシミュレーションシステムのスナップショットを取得する方法。
【請求項３】
前記シミュレーションシステムの動作中に前記シミュレーションシステムのスナップショットを格納するステップに関連するステップを自動的かつ周期的に実行することを有する、請求項１記載のシミュレーションシステムのスナップショットを取得する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス制御システム内の冗長モジュールに送信される冗長信号を作成する冗長能力を有するモジュールを備えたプロセス制御システムのシミュレーションシステムのスナップショットを取得する方法に関するものである。
【背景技術】
【０００２】
化学プロセス、石油プロセス、または他のプロセスにおいて利用される分散型プロセス制御システムは、アナログバス、デジタルバス、またはアナログ／デジタルを組み合わせたバスを介して一または複数のフィールドデバイスに通信可能に接続された一または複数のプロセスコントローラを備えているのが一般的である。これらのフィールドデバイスは、たとえば、バルブ、バルブポジショナ、スイッチ、およびトランスミッタ（たとえば、温度センサ、圧力センサおよび流量センサ）などであってもよく、プロセス環境内に設置され、バルブの開閉およびプロセスパラメータの測定の如きプロセス機能を実行する。また、周知のＦｉｅｌｄｂｕｓ（フィールドバス）プロトコルに準拠するフィールドバスデバイスの如きスマートフィールドデバイスは、制御計算、アラーム機能、および一般的にコントローラ内に実装されている他の制御機能も実行する。また、プロセスコントローラもプラント環境内に設置されているのが一般的であり、フィールドデバイスにより作成されるプロセス測定値および／またはこれらのフィールドデバイスに関連する他の情報を表す信号を受信し、プロセス制御決定を行い、受信した情報に基づいて制御信号を生成し、たとえば、ＨＡＲＴフィールドデバイスおよびＦｉｅｌｄｂｕｓフィールドデバイスの如きフィールドデバイスにおいて実行される制御モジュールまたは制御ブロックと協調するさまざまな制御モジュールを実行する。コントローラ内の制御モジュールは、通信回線を介してこれらの制御信号をフィールドデバイスに送信してプロセスの動作を制御する。
【０００３】
フィールドデバイスおよびコントローラからの情報は、過酷なプラント環境から離れた制御室または他の場所に通常設置されているオペレータワークステーション、パーソナルコンピュータ、データヒストリアン、レポート作成装置、集中型データベースなどの如き一または複数の他のハードウェアデバイスがデータハイウェイを介して入手することが可能なようにされていることが一般的である。これらのハードウェアデバイスは、たとえば、プロセス制御ルーチンの設定変更、コントローラまたはフィールドデバイス内の制御モジュールの動作修正、プロセスの現状の閲覧、作業員のトレーニングまたはプロセス制御ソフトウェアの試験のためのプロセス動作のシミュレーション、コンフィギュレーションデータベースの更新などの如きプロセスに関連した機能をオペレータが操作することを可能にしうるアプリケーションを実行する。
【０００４】
一例としては、フィッシャーローズマウント社により販売されているＤｅｌｔａＶ（登録商標）制御システムは、プロセスプラント内のさまざまな場所に設置されているさまざまなデバイス内に格納されこれらのデバイスにより実行される複数のアプリケーションを有している。一または複数のワークステーションに搭載されているコンフィギュレーションアプリケーションは、ユーザがプロセス制御モジュールを作成または変更し、これらの制御モジュールをデータハイウェイを介して専用の分散型コントローラにダウンロードすることを可能にする。また、このコンフィギュレーションアプリケーションは、データをユーザに表示するために、また設定ポイントの如きプロセス制御ルーチン内の設定をユーザが変更することを可能にするために、閲覧アプリケーションにより利用されるユーザインターフェイスを設計者が作成または変更することも可能にする。各専用コントローラおよび、場合によっては、フィールドデバイスは、実際のプロセス制御を実現するために割り当てられダウンロードされる制御モジュールを実行するコントローラアプリケーションを格納・実行する。一または複数のオペレータワークステーション上で実行されうる閲覧アプリケーションは、データハイウェイを介してコントローラアプリケーションからデータを受信し、ユーザインターフェイスを利用してこのデータをプロセス制御システムの設計者、オペレータ、またはユーザに表示する。このユーザインターフェイスは、オペレータビュー、エンジニアビュー、テクニシャンビューなどの如き複数の異なるビューのうちのいずれかを提供しうる。データヒストリアンアプリケーションは、データハイウェイ上で提供されるデータの一部または全部を収集・格納するデータヒストリアンデバイスに格納され、このデバイスにより実行されることが一般的であり、一方、コンフィギュレーションデータベースアプリケーションは、上述のデータハイウェイに接続されるさらなるコンピュータデバイスで実行され、現行のプロセス制御ルーチンコンフィギュレーションおよびそれに関連するデータを格納しうる。あるいは、コンフィギュレーションデータベースは、コンフィギュレーションアプリケーションと同一のワークステーションに格納される。
【０００５】
ミズーリ州のセントルイスにあるＤｏｎ Ｈ．Ｍｕｎｇｅｒ社により販売されているＭｉｍｉｃアプリケーションまたはカナダのカルガリーにあるＨｙｐｒｏｔｅｃｈ社により製造・販売されているＨＹＳＹＳの如きシミュレーションアプリケーションは、データハイウェイに接続されたパーソナルコンピュータ上で実行されうる。これらのインターフェイスアプリケーションまたは他のインターフェイスアプリケーションは、コントローラまたはユーザインターフェイスに格納された制御モジュールの試験を可能にすべくデータハイウェイを介してコントローラアプリケーションおよび閲覧アプリケーションと通信する。また、これらのシミュレーションアプリケーションは、トレーニングおよびシステム点検の実行をも可能にする。場合によっては、高忠実度プロセスシミュレーション製品であるＨＹＳＹＳアプリケーションをＭｉｍｉｃアプリケーションと同一のコンピュータへ統合し、プロセス制御設計の正確なタイミングおよび応答をシミュレーションしてその設計の点検を行うこともある。通常、これらのシミュレーションアプリケーションは、周知のＯＰＣインターフェイスまたはＰＩインターフェイスの如き標準インターフェイスを利用してコントローラまたはフィールドデバイス内のコントローラアプリケーションと通信する。
【０００６】
あるいは、シミュレーションは手動により実行されてきた。この場合、オペレータまたは他のユーザは、コントローラまたはフィールドデバイスの制御モジュール内の入力／出力（Ｉ／Ｏ）機能ブロックのシミュレーション能力を利用してＩ／Ｏブロックにより処理される数値および状態変数を手動で設定することにより、フィールドデバイスを実際に制御することなく、ましてやフィールドデバイスをコントローラに接続させることもなく、情報または制御論理を検証することを可能にする。いずれの場合であっても、出力ブロック目標に基づいてシミュレーションされたプロセス動的特性を実際の制御モジュールへ提供して実際の制御モジュールと相互作用するために、コントローラまたはフィールドデバイスに特定のシミュレーションモジュールを作成・格納することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
これらのシステムにおいて、閲覧アプリケーションにより作成されるユーザ表示画面に示される情報は、制御モジュールを設計し、割り当て、コントローラまたはフィールドデバイスにダウンロードし、そしてシミュレーションプロシージャを利用してシステムを試験した後に、コントローラにより正確に通信されている情報であることを検証することは可能である。全部が揃ったシステムハードウェアを用いてコンフィギュレーション点検およびオペレータトレーニングをコントローラシステムの設定に先行して行なうことが一般的であり、これにより、コントローラへの物理的接続やコントローラとワークステーションとの間の通信が十分に検査されうる。また、性能、メモリ要件、およびコンフィギュレーション済みのモジュールによりコントローラに加えられる負荷も検査されうる。
【０００８】
しかしながら、ほとんどの場合には、プロセス制御システムが十分にコンフィギュレーション・実行された後、および／またはプロセス制御システムがオンライン状態で動作している間に、このプロセス制御システムまたはプロセス制御システムのノードをシミュレーションすることが望ましい。たとえば、新しいオペレータをトレーニングするようなトレーニング目的または新しい動作パラメータセットを用いて実際のプラントを運転する以前に所望の結果が得られるか否かを調査するためにこれらの動作パラメータを試験するような試験目的のために、十分に実行されているプロセス制御システムを模倣するシミュレーション環境を作成することが望ましい場合もある。
【０００９】
残念なことに、コンフィギュレーションを実行する時点でシミュレーションシステムが作成されなかった場合には、コンフィギュレーションされている通りに実際のプロセスからコンフィギュレーションシステムを作成しなければならない。このことは、オペレータまたは他の作業員が、シミュレーションされる各ノード内の各制御ブロックに対して別々のシミュレーションブロックをインストールすることにより手動でシミュレーションシステムを作成しなければならず、かつ、シミュレーションされるノードの外部にあり、各ノードに通信可能に接続されている各ブロックまたは各機能に対してＩ／ＯブロックまたはＩ／Ｏ参照を作成しなければならないということを通常意味する。また、プロセスプラント内で発生する実際の通信を模倣すべくこれらのブロック間の通信もコンフィギュレーションしなければならない。オペレータは各ノードをブロック毎に手動でコピーするので、作成されたシミュレーションシステムにはオペレータにより導入された誤差が含まれることがあり、したがって、コンフィギュレーションされている通りにプラントを正確にシミュレーションできないことがある。さらに、この作業は、とくに、各ノード内に何百何千という異なるブロックが存在し、何百何千というシミュレーション制御ブロックおよび場合によってはそれよりさらに多い入力／出力ブロックを作成することが必要になることもあるような複雑なプラントでは、非常に時間のかかる作業である。
【００１０】
あるいは、オペレータは、ノードの各ブロックのソフトウェアを、コンフィギュレーションされている通りにシミュレーション環境、たとえばシミュレーションコンピュータにコピーしてもよい。しかしながら、この場合、オペレータは依然として上述のブロックへのシミュレーション入力／出力ブロックまたは入力／出力参照を手動で作成しなければならない。上述のように、この作業は、依然として、オペレータが導入する誤差を伴い、かつ時間のかかる作業である。
【００１１】
いずれの場合であっても、上述の問題により、実際に稼動しかつコンフィギュレーションされたプラントに対してシミュレーションを作成するには、多くの時間と多くのオペレータの労力とが必要であり、したがって、コストが高い。場合によっては、何百万ドルもの費用が必要となる。この費用が、正確なシミュレーションシステムをコンフィギュレーションされたプロセス制御システムに対して作成することを多くのプラントに躊躇させており、この結果として、プラントにおいて提供可能なトレーニングの量および質とともに、実行可能なオフライン試験の量をも制限することになる。
【００１２】
さらに、実際の動作システムからコピーされたシミュレーションシステム内に問題を引き起こす入力／出力ブロックの状況信号の如き多くの信号が存在する。とくに、各ブロックは、他のブロックに通信信号を送信する場合、たとえば良好、不良、古いなどのような信号の状態を示す状態信号を提供することが一般的である。しかしながら、動作プラントからコピーされたシミュレーション環境において、状態信号は常に古いかまたは不良である。というのは、そのプラント内においてはその信号を送信・更新するような実際のデバイスが存在しないからである。この結果、シミュレーションシステムは、不良状態信号の処理のために動きが取れなくなり、実際の制御環境をシミュレーションすることができなくなり、オペレータに複数のエラーメッセージを送信することがある。このエラーメッセージはシミュレーションオペレータをうんざりさせる。
【００１３】
さらに、すべてのプロセス変数、設定ポイント、および他のプロセスパラメータを含む、動作中のシミュレーションシステムのスナップショットを取得または作成することが望ましいような状況または時間が存在する。シミュレーションされたプラントまたはそのプラントのノードのこのようなスナップショットは、問題の診断、他のシミュレーションにおいて将来利用するためにとくに良好なプラント状態またはとくに不良なプラント状態の保存、同一のシミュレーションを再現してさまざまなアクションの効果の試験などに有効である場合がある。しかしながら、今日、長時間シミュレーションの動作を実際に停止してシミュレーション内の各々のブロックの状況をコピーせずに特定の瞬間のシミュレーションのスナップショットを作成する公知の方法は存在しない。ノード内のブロックなどをコピーする公知または標準の方法はそのノードの動作サイクルよりも長い時間を必要とするので、動作状態のシミュレーションにこのようなコピー方法を実行すると、変数または数値がコピー処理中に変わってしまい、このため、取得されたプラント状況またはノード状況は特定の瞬時におけるものではなく、それとは別の異なる時間における異なる変数値を有してしまうことを意味する。これとは対照的に、すべてのモジュールパラメータの数値にアクセスしてコピーするのに必要な時間だけシミュレーションを停止すると、とくにオブジェクト指向型プログラミング環境ではシミュレーションオペレータが気付くほど顕著であり、シミュレーションが途絶してしまう。
【課題を解決するための手段】
【００１４】
シミュレーションシステムは、プロセス制御システムの一または複数の完全に設定されたノードのためのコンフィギュレーションデータベースに接続され、これらのノード内の、機能ブロックを含むモジュールを一または複数のシミュレーションコンピュータにコピーする。このシミュレーションシステムはアルゴリズムを有しており、該アルゴリズムは、コピー行程中またはその後に、コピーされたノードの各々に対して参照パラメータモジュールを自動的に作成してそのノードの外部の入力参照または出力参照の各々に対する参照パラメータを格納する。これらの入力参照または出力参照には、入力／出力ブロック、他のノード内の他の機能ブロック、フィールドデバイス内のトランスミッタブロックなどが含まれる。Ｆｉｅｌｄｂｕｓ機能ブロックの場合には、シミュレーションシステムは、コントローラノードのプロトコルで、シミュレーションワークステーション内にＦｉｅｌｄｂｕｓ機能ブロックの動作を模倣する機能ブロックを自動的に作成し、次いで、コントローラの外部のフィールドデバイス内ではなく元々シミュレーションされるコントローラ内に納められるように設定されていたかのように動作するこれらの模倣Ｆｉｅｌｄｂｕｓ機能ブロックを有するシミュレーションシステムを作成する。さらに、シミュレーションシステムは、状態信号を動作不能状態にするかまたはシミュレーションシステム内の作成された入力／出力ブロックの状態信号を無視するように動作し、状態信号がオペレータ認識可能なエラーを引きおこすことを防止しうる。
【００１５】
さらに、シミュレーションシステムの非常に短時間のスナップショットを取得または格納すべく既知の制御モジュールの冗長能力を利用することが可能である。とくに、シミュレーションシステムは、プロセス制御システム内の制御ブロックの各々により提供される冗長データを利用することが可能であり、冗長ブロックを更新する代わりに、シミュレーションワークステーション内のメモリに論理的な方法で更新されたパラメータを単に格納することが可能である。シミュレーションノードのスナップショットが所望の場合には、シミュレーションシステムは、シミュレーションメモリ内の冗長データをなんらかのスナップショットファイルまたはバッファファイルにコピーするために必要な時間、シミュレーションモジュールの動作を停止しうる。この迅速なコピー行程の後、シミュレーションシステムを再起動することが可能である。ほとんどの場合、このコピー行程は、シミュレーションシステム動作の中断にシミュレーションオペレータが気付かないほど短い。この行程により、シミュレーションオペレータは、シミュレーションシステムを著しく中断する必要もなく特定の瞬間かつ単一の瞬間において一または複数のシミュレーションノードのスナップショットを取得することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】複数のノードと、該ノードのうちの一または複数のシミュレーションを作成・実行するシミュレーションシステムとを備えた典型的なプロセス制御ネットワークのブロック線図である。
【図２】シミュレーションオペレータにより利用されるシミュレーション作成・制御スクリーンを例示するスクリーン表示画面である。
【図３】プロセス制御システムの単一コントローラノードに対してシミュレーションを作成するコマンドを例示するスクリーン表示画面である。
【図４】プロセス制御システムの単一コントローラノードに対して作成されたシミュレーションを例示するスクリーン表示画面である。
【図５】前記シミュレーション内のモジュール参照に変換された一組の外部参照パラメータを例示するスクリーン表示画面である。
【図６】作成された前記シミュレーションの入力／出力参照を保持すべく作成されたコンテナまたは参照パラメータモジュールを例示するスクリーン表示画面である。
【図７】前記シミュレーションのスナップショットの取得にシミュレーションオペレータにより利用されるスナップショット取得スクリーンを例示するスクリーン表示画面である。
【図８】先に取得したスナップショットの状態への前記シミュレーションシステムの復元にシミュレーションオペレータにより利用される復元スクリーンを例示するスクリーン表示画面である。
【発明を実施するための形態】
【００１７】
ここで、図１を参照すると、分散型プロセス制御システム10は一または複数のノード12、14、16、18、20を備えている。図１の例示のプロセス制御システム10において、各ノード12、14、16は、一または複数のフィールドデバイスに入力／出力（Ｉ／Ｏ）デバイス24を介して接続されるプロセスコントローラ12a、14a、16aを備えており、この入力／出力（Ｉ／Ｏ）デバイス24は、たとえばＦｉｅｌｄｂｕｓインターフェイス、ＨＡＲＴインターフェイスなどであってもよい。また、コントローラ12a、14a、16aは、たとえばイーサネット（登録商標）リンクでありうるデータハイウェイ30を介して、ノード18、20内の一または複数のホストワークステーションまたはオペレータワークステーション18a、20aにも結合されている。所望の場合には、コントローラノード12、14、16は、冗長コントローラ12R、14R、16Rを備えてもよく、これらの冗長コントローラは、公知の方法で（すなわち、通常、専用通信リンクを利用して）コントローラ12a、14a、16aの状態を追跡し、主コントローラ12a、14a、16aの対応するコントローラが故障するとそのコントローラとして仕事を引き継ぐために設けられている。コントローラノード12、14、16ならびにそれに関連付けられている入力／出力デバイス24およびフィールドデバイス22、23は、時には過酷な場合があるプラント環境内に設置され、そのプラント環境全体に亘り分散されていることが一般的であるが、一方、オペレータワークステーションノード18、20は、コントローラ作業員が容易にアクセスすることが可能な制御室または他のあまり過酷でない環境に設置されることが多い。
【００１８】
一般的にいえば、プロセス制御システム10を設定・監視するために利用されるアプリケーションを格納・実行すべくノード18、20のワークステーション18a、20aを使用することが可能である。さらに、データベース32は、データハイウェイに接続され、データヒストリアンまたはコンフィギュレーションデータベースとして動作しうる。このデータヒストリアンまたはコンフィギュレーションデータベースは、ノード12、14、16、18、20へダウンロードされ、その中に格納されるプロセス制御システムの現在の設定を格納する。
【００１９】
公知のように、各コントローラ12a、14a、16aは、一例としてフィッシャーローズマウントシステムズ社により販売されているＤｅｌｔａＶコントローラであってもよく、複数の異なるかつ個別に実行される制御モジュールまたは制御ブロックを用いて制御戦略を実現するコントローラアプリケーションを格納・実行する。これらの制御モジュールの各々は機能ブロックと一般的に呼ばれるブロックから構成され、ここでは、各機能ブロックは、全体の制御ルーチンの一部またはサブルーチンであり、プロセス制御ルーチン10内でプロセス制御ループを実現するために（リンクと呼ばれる通信を介して）他の機能ブロックと協同して動作する。周知のように、機能ブロックは、トランスミッタ、センサ、もしくは他のプロセスパラメータ測定デバイスに関連するような入力機能、ＰＩＤ制御、ファジー論理制御などを実行する制御ルーチンに関連するような制御機能、またはプロセス制御システム10内でなんらかの物理的機能を実行するためにバルブの如きあるデバイスの動作を制御する出力機能のいずれかを実行することが一般的である。いうまでもなく、ハイブリッドおよび他のタイプの機能ブロックも存在する。ＦｉｅｌｄｂｕｓプロトコルおよびＤｅｌｔａＶシステムプロトコルは、オブジェクト指向型プログラミングプロトコルで設計され、実行される制御モジュールおよび機能ブロックを利用するが、これらの制御モジュールは、たとえばシーケンシャル機能ブロック、梯子形論理などを含む所望の任意の制御プログラミングスキームを利用して設計されることが可能であり、機能ブロックまたはその他の特定のプログラミング技術を利用して設計されることに限定されるわけではない。いうまでもなく、プロセス制御ノード12、14、16内に格納される制御モジュールの設定は、ワークステーション18a、20a内のアプリケーションがアクセス可能なコンフィギュレーションデータベース32に格納される。
【００２０】
図１に例示するシステムでは、コントローラ12a、14a、16aに接続されたフィールドデバイス22、23は、標準型４−２０ミリアンペアデバイスであってもよく、またはプロセッサとメモリとを備えたＨＡＲＴデバイス、Ｐｒｏｆｉｂｕｓデバイス、もしくはＦｉｅｌｄｂｕｓデバイスの如きスマートフィールドデバイスであってもよい。（図１の符号23により標識されている）Ｆｉｅｌｄｂｕｓフィールドデバイスの如きこれらのデバイスの一部は、コントローラ12a、14a、16aにより実現される制御戦略に関連するモジュールまたは機能ブロックの如きサブモジュールを格納・実行しうる。機能ブロック26、27は、図１において、Ｆｉｅｌｄｂｕｓフィールドデバイス23の二つの異なるデバイス内に配置されるように例示されている。フィールドデバイス23内の機能ブロック26、27は、公知のように、プロセス制御を実現するためにコントローラ12a、14a、16aないのモジュールの実効と協動して実行されてもよい。もちろん、フィールドデバイス22、23は、センサ、バルブ、トランスミッタ、ポジショナなどの如きいかなるタイプのデバイスであってもよく、Ｉ／Ｏデバイス24は、ＨＡＲＴ、Ｆｉｅｌｄｂｕｓ（フィールドバス）、Ｐｒｏｆｉｂｕｓなどの如き所望の任意の通信プロトコルまたはコントローラプロトコルに従ういかなるタイプのＩ／Ｏデバイスであってもよい。
【００２１】
図１のプロセス制御システム10では、ワークステーション20aは、プロセス制御システム10の一または複数のノードに対して、本明細書においてシミュレーションインスタンスと呼ぶところの一または複数のシミュレーションを作成・実行するために利用されるシミュレーションシステムまたはシミュレーションアプリケーション50を備えている。一般的にいうと、シミュレーションアプリケーションは、実行されると、一または複数の特定のノードに対して、そのノード内の各制御モジュールをコンフィギュレーションデータベースからシミュレーションモジュールとしてコピーすることによりシミュレーションインスタンスを作成し、シミュレーションワークステーション20a内にこれらのシミュレーションモジュールを格納する。所望ならば、シミュレーションアプリケーション50は、複数のワークステーションにこのシミュレーションインスタンスを分散することが可能である。しかしながら、説明のために、シミュレーションモジュールはすべて単一のシミュレーションワークステーション20aで作成・実行されると想定する。この作成工程中に、シミュレーションアプリケーション50は、シミュレーションインスタンス内で各ノードに対する参照パラメータモジュールを作成し、ここでは、各参照パラメータモジュールは、そのノード内のシミュレーションモジュールのうちのいずれかにより特定されるノードに送受信される信号に関連する入力／出力参照の各々に対する参照パラメータを有している。一つのノードまたは複数のノードに対してシミュレーションインスタンスがいったん作成されると、試験目的またはトレーニング目的の如き所望の任意の目的でこのシミュレーションインスタンスを実装・実行することが可能である。
【００２２】
図１に例示するように、シミュレーションモジュール50（このシミュレーションモジュールは、ホストワークステーション20aのコンピュータ読み取り可能メモリ52に格納され、マイクロプロセッサ54上で実行されるように構成されている）は、内部にアプリケーション、ルーチン、またはサブルーチン56〜58を有している。第一のルーチン56は、シミュレーションオペレータがプロセス制御システム10の一または複数のノードのシミュレーションインスタンスを作成し、閲覧し、および制御することを可能にするために、シミュレーションワークステーション20aに関連するユーザ表示デバイス60を作成・動作することに関連する。第二のルーチンは、実行されると、一または複数の特定のノードに対してシミュレーションインスタンスを実際に作成する。このインスタンスの作成は、前述の特定のノードの各々に関連する（そして、単一または複数の機能ブロックを有しうる）モジュールの各々に対して、通信可能に相互接続されたシミュレーションモジュールを作成し、次いで、これらのノードの各々に対して参照パラメータモジュールを自動的に作成することにより行われる。第三のルーチンは、シミュレーションインスタンスがいったん作成されると、シミュレーションインスタンスの開始、停止、再設定、スナップショットの取得、復元、またはそうでない場合には制御を行うために利用しうる。いうまでもなく、ルーチン57、58は、シミュレーションオペレータがプロセス制御システムに対するシミュレーションインスタンスの作成、制御、および閲覧においてさまざまな手段を取ることを可能にすべく、ユーザ表示ルーチンと統合される。
【００２３】
プロセス制御システム10の動作中（すなわち、プロセス制御設定が作成され、プロセス制御システム10にダウンロードされ、それによりプロセス制御システム10の内部のさまざまなノードの各々にダウンロードされた後）であり、シミュレーションインスタンスの作成以前であれば、オペレータはシミュレーションアプリケーション50にアクセスしてもよい。そのとき、表示ルーチン56は、図２に例示されるような制御表示スクリーンまたはシミュレーション表示スクリーン70をオペレータに提示しうる。図２の例示のシミュレーション表示スクリーンは、図２において表示スクリーンの左側にあるノード表示区域72と表示スクリーン70の右側にある情報区域74とを含む複数の異なる区域を有している。
【００２４】
ノード表示区域72は、プロセス制御システム10のノードとそのノードの各々に関連するデバイス、ルーチンなどとを表示し、シミュレーションオペレータがマウスの使用の如き所望の任意の方法でこれらのノードまたはノード内のコントローラの如きデバイスのうちの一もしくは複数を選択することを可能にしうる。図２のノード表示区域72は、プロセス10のコンフィギュレーションデータベース32に格納されるさまざまなプロセス制御設定要素を表示する木構造を例示する。いうまでもなく、プロセス制御システム10のノードまたは他の要素はその他の所望の方法で表示されてもよい。一方、情報区域74は、ノード表示区域72で選択された要素内の副要素の図式記述またはテキスト形式記述の如き、ノード表示区域内で選択された要素に関する情報をシミュレーションオペレータに提供する。所望の場合には、プロセス制御システム10の一または複数のノードに対してシミュレーションインスタンスを生成するために利用でき、またプロセス制御システム10の一または複数のノードに対してシミュレーションインスタンスを実行し、制御し、閲覧するために利用しうるコマンドセットに制御スクリーン70上のドロップダウンメニューまたはポップアップメニューを利用してアクセスしうる。所望の場合には、実際のプロセス制御システム10の実行速度または実行サイクルに応じてシミュレーションの速度を特定するためにスライドバーを設けうる。スライドバーは、ストップポジションと、シミュレーションインスタンスを実際のプロセス制御システム10の実行速度よりも遅くまたは速く実行させるポジションとを有しうる。また、このバーは、シミュレーションオペレータがシミュレーションインスタンスを迅速に停止および開始することを可能にするポーズボタン、プレイボタン、フォワードボタンを有しうる。
【００２５】
図２は、とりわけ制御戦略80を有する、ノード表示区域72の木構造をとくに例示しており、この制御戦略80は、それ自体に付属するＡｒｅａ＿Ａを有し、Ａｒｅａ＿Ａは、その下位に、Ｌｏｏｐ１〜Ｌｏｏｐ６、Ｔｅｓｔ＿ＡＩ１、Ｔｅｓｔ＿ＡＯ１，Ｔｅｓｔ＿ＤＩ１、およびＴｅｓｔ＿ＤＯ１からなるモジュールセットを有している。Ａｒｅａ＿Ａが図２で選択されているので、情報区域74は、Ａｒｅａ＿Ａに関連するさまざまなループおよび他の要素を例示しており、Ａｒｅａ＿Ａが選択されている限りはここから次のアクションが生じることになる。同様に、図２の木構造は、制御ネットワーク84を有しており、制御ネットワーク84は、とりわけ三つのコントローラ、Ｎ＿Ｓｏｌｖ＿１、Ｓｏｌ＿Ｍａｎ＿１、およびＣｔｌｒ１を有している。Ｃｔｌｒ１は、指定モジュールと、Ｉ／ＯカードＣ０１、Ｃ０３、Ｃ０４と、指定遠隔Ｉ／Ｏとを有している。他の要素、モジュールなどが、Ｎ＿Ｓｏｌｖ＿１コントローラおよびＳｏｌ＿Ｍａｎ＿１コントローラに関連付けられていることはいうまでもないが、図２の木構造では展開されていない。
【００２６】
一般的にいえば、ワークステーション20aにおいて、シミュレーションオペレータは、表示スクリーン70のノード表示区域を利用してコントローラの如き一または複数のノードを選択しうる。選択したノードに対しては、それに続くアクションが生じることになる。したがって、シミュレーションオペレータは、シミュレーションインスタンスを作成・実行するための一または複数のノード（たとえば、コントローラ）を選択しうる。たとえば、シミュレーションオペレータが一つのノードのみを選択し、次いで、たとえばドロップダウンメニューを利用してシミュレーションインスタンスを作成する場合、上述のルーチン57はその単一のノードに対するシミュレーションインスタンスを作成することになる。同様に、シミュレーションオペレータが三つのノード（たとえば、図１のノード12、14、16の各々）またはスクリーン70のノード表示区域72上のプロセス制御システム全体を選択し、次いで、シミュレーション作成ボタンを選択する場合、ルーチン57は、その三つのノードの各々の中のモジュールまたはシステム全体のモジュールを含んだシミュレーションインスタンスを作成する。この方法で、シミュレーションオペレータは、プロセス制御システム10内のシミュレーションインスタンスを作成・実行するノードの数とノードの種類とを容易に選択することが可能になり、このことにより、いかなる数の特定されたノードに対してでもシミュレーションインスタンスが同時に作成されることが可能になる。さらに、シミュレーションオペレータは、シミュレーションインスタンスが動作中に、ノード表示区域72を利用して別のノードを選択して閲覧しうる。
【００２７】
シミュレーションオペレータがシミュレーション作成ボタンを選択すると、そのアルゴリズムまたはルーチン57は、指定されたノードに対して設定されているとおりに、プロセス制御ネットワークをシミュレーションインスタンスに変換すべく動作する。この機能を実行するために、シミュレーション作成ルーチン57は、コンフィギュレーションデータベースにアクセスし、特定のノードの各々に存在するブロックおよびモジュールの各々に対してシミュレーションブロックを、コンフィギュレーションデータベースに32に格納されているとおりに、コピー（または作成）する。シミュレーション作成ルーチン57は、所望ならば、ノード毎に行ってもよい。この動作の一部として、シミュレーション作成ルーチン57は、コンフィギュレーションデータベース32にコマンドを送信し、一つのノードに対してモジュール、機能ブロックなどの一つのコピーを取得する。取得されたコピーは、シミュレーションワークステーション20aに格納され、好ましくは、シミュレーション入力が入力ブロックに対して使用されることを指定することによりシミュレーションモジュールに変換される。
【００２８】
シミュレーションモジュールブロックは、シミュレーションワークステーション20aにおいてノード毎に作成されるが、これらは、実際の制御モジュールにおいて指定されるとおりに、通信リンクにより互いに通信可能に結合される。しかしながら、この作成行程の一部として、シミュレーション作成ルーチン57は、指定されたノードの外側に存在する制御ブロックの各々の入力および出力を、実際の入力および出力に関連付けられた、たとえばパス名を利用して自動的に特定する。この機能を実行するために、シミュレーション作成ルーチン57は、作成されたシミュレーションブロックの入力および出力の送信元または送信先のパス名または他のしるしをシミュレーションされたノードのノードパス名と比較し、その入力送信元または出力送信元が指定されたノード（すなわち、シミュレーションが作成されているノード）の内部または外部に存在するか否かを判断する。その通信信号の送信元または送信先が指定されたノードの外部に存在する場合は、シミュレーション作成ルーチン57は、入力部または出力部として動作するためにシミュレーションシステム内の参照パラメータモジュール（ルーチン57により作成されるモジュール）へリンクを自動的に形成し、シミュレーションワークステーション20の如きシミュレーションシステム内にそのモジュールを格納する。理解されるように、この参照パラメータモジュールは、シミュレーションシステム内に実際には存在しないシミュレーションインスタンスための特定の入力および出力に対してリンクまたは送信先を提供すべく利用される。たとえば、フィールドデバイスへのリンクなどがそれに含まれる。
【００２９】
図３は、単一のコントローラノード94（Ｓｏｌ＿Ｍａｎ＿１と名づけられたコントローラノード）が選択されている木構造92を有するスクリーン表示画面90を例示している。シミュレーションオペレータが、ポップアップメニュー96を（たとえば、マウスを使って選択されたコントローラ94を右クリックすることにより）呼び出し、「Ｓｉｍｕｌａｔｅ Ｃｏｎｖｅｒｓｉｏｎ（シミュレートコンバージョン）」コマンドにアクセスしたところである。表示画面90の右手側は、選択されたコントローラ94内のモジュールを例示している。ウインドウ96でＳｉｍｕｌａｔｅ Ｃｏｎｖｅｒｓｉｏｎコマンドを選択すると、アプリケーション57が呼び出され、次いで、このアプリケーション57が、上述のように、選択されたコントローラノード94に対してシミュレーションを作成する。
【００３０】
具体的には、ルーチン57は、指定されたノード94への入出力を格納するための参照パラメータモジュールに加えて、そのノード内の制御モジュールの各々に対してシミュレーションモジュールまたはシミュレーションブロックを作成する。このようなシミュレーションインスタンスが図４に例示されている。この図は、選択されたコントローラのシミュレーションインスタンスが作成された後のそのシミュレーションインスタンス内のモジュールを示すスクリーン100を例示している。スクリーン100の右側に例示されているように、コントローラノード94のシミュレーションインスタンスは、シミュレーションモジュールＬｏｏｐ１〜Ｌｏｏｐ６（コンフィギュレーションデータベース32内に格納されている、ノード94の実際のモジュールＬｏｏｐ１〜Ｌｏｏｐ６から作成されるシミュレーションモジュール）を有している。しかしながら、変換行程の一部として、アプリケーション57は、さらなるモジュール102（Ｍ＿ＣＴＬＲ１と呼ばれるモジュール）を作成しており、このモジュールは、コントローラノード94に対する入力参照および出力参照を保持するコンテナモジュールとして利用される。上述のように、ノードに対してシミュレーションされた制御ブロックおよび制御モジュールを作成した後、ルーチン57は、作成されたシミュレーションモジュールの外部になんらかの入力／出力が存在するか判断する。たとえば、このような入力／出力には、このシミュレーションインスタンス内に含まれない他のノード内のブロックへの参照またはフィールドデバイスもしくはモジュールからの信号が含まれる。このような入力／出力参照を検出すると、ルーチン57は、それらの参照のためにモジュール102の如き参照モジュールを自動的に作成し、これにより、シミュレーションの一部ではないフィールドデバイスの如きハードウェアの送受信信号のためにシミュレーションインスタンスの入力／出力の送受信を担うモジュールをシミュレーションシステム内に作成する。
【００３１】
図５は、変換された機能ブロック108（シミュレーションされた入力を有するブロック）と外部参照セット110a〜110fとを示すスクリーン表示画面105を例示している。外部参照セットの各々は、一つのＨＡＲＴデバイス入力またはＨＡＲＴデバイス出力を指定し（したがって、一つの外部参照）、この一つのＨＡＲＴデバイス入力またはＨＡＲＴデバイス出力は、事実、ノードがこれらの外部参照を保持するために作成された外部参照モジュールを指し示している。また、参照ボックス110が選択されてそのプロパティがポップアップウインドウ112に例示されている。ポップアップウインドウ112は、この参照に対するパス名がＭ＿Ｓｏｌ＿Ｍａｎ＿１コントローラノード（シミュレーションされたノード）内のモジュールＣ０１ＣＨ０１ＨＡＲＴ＿ＰＶであることを明記している。同様に、図６は、メニューボックス118内に名前付き外部参照パラメータセットを有しているＣ０１ＣＨ０１ＨＡＲＴ＿ＰＶモジュールを示すスクリーン表示画面116を例示している。これらの外部参照パラメータのうちの選択された一つ（すなわち、ＨＡＲＴ＿ＰＶパラメータ）のプロパティはポップアップウインドウ120に例示されている。もちろん、図４の参照パラメータモジュールに関連するかまたはその中に格納されるその他の参照パラメータの各々に対する同様のプロパティも格納される。
【００３２】
したがって、理解されるように、アプリケーション57は、シミュレーション変換の一部として、各シミュレーションブロックに関連する外部参照の数値および他の属性を格納する外部参照パラメータモジュールを作成する。本明細書で記載するアプリケーション57は各指定されたコントローラノードに対して単一の外部参照モジュールを作成するが、所望ならば、外部参照パラメータモジュールは、さらに多いまたはさらに少ない外部参照を保持してもよい。したがって、たとえば、各外部参照に対して一つの外部参照パラメータモジュールを作成してもよい。また、このように実施することにより、シミュレーションオペレータがシミュレーションシステムに対して手動で外部参照を指定または作成する必要もなくなる。従来、このような作業は時間がかかりエラーを伴っていた。さらに、これらのモジュールを作成することにより、シミュレーションの実行が容易になる。というのは、シミュレーションインスタンスの入出力がこれらの外部参照モジュールにより操作されることが可能になり、これらの外部参照モジュールが、そのオブジェクト指向性に起因して、容易にアクセス・変更されるからである。
【００３３】
シミュレーション作成ルーチン57がコントローラノードに関連する制御ブロックおよび他のモジュールを認識し、コピーすることはかなり容易なことであるが、一つのノードの制御ブロックもしくは他の機能ブロックまたはモジュールの一部がそのノードのコントローラに格納され、コントローラの外部で実行されることもある。たとえば、Ｆｉｅｌｄｂｕｓフィールドデバイスは、プロセス制御システムのあるノードに関連する制御ブロックおよび他のモジュールを格納・実行することが可能である。これらの場合には、シミュレーション作成ルーチン57は、ノード内に存在しかつコントローラの外部に存在する制御ブロックまたは他のモジュールの存在を、コンフィギュレーションデータベース32に格納された設定スキーム内においてそのようなブロックを探索することにより、まず、認識することが可能である。本明細書で記載されるアプリケーション57は、とくに、Ｆｉｅｌｄｂｕｓ機能ブロックを探索するが、あるノードのコントローラの外部で動作することが可能な他のタイプの機能ブロックが存在し、アプリケーション57がこれらのタイプのブロックも探索しうる、ということも可能である。もちろん、この探索を実行する方法は、そのノードのコントローラ内で使用されるプログラミングおよびドキュメンテーションのタイプに依存する。
【００３４】
ノードに結合し、そのノードのコントローラの外部に存在する機能ブロックまたはモジュールの存在を認識すると、シミュレーション作成ルーチン57は、そのブロックをコピーするか、またはシミュレーションワークステーション20a内にそのブロックを模倣する新規のブロックを作成する。たとえば、そのブロックをコピーするために、シミュレーション作成ルーチン57は、コンフィギュレーションデータベースから、またはそのブロックを実際に格納するフィールドデバイスからそのブロックにアクセスしうる。よくあるように、そのフィールドデバイスまたは他のデバイスの中の機能ブロックがシミュレーションに用いられたコントローラブロックと同一のプロトコルでないような場合は、アプリケーション57は、そのフィールドデバイス内の機能ブロックの機能性を最も模倣するコントローラプロトコルでシミュレーションブロックを作成しうる。この機能は、そのフィールドデバイスの機能ブロックのために利用するコントローラプロトコルブロックを指定するように依頼されうるシミュレーションオペレータの助けの有無に関係なく実行されうる。あるいは、パラメータ変換を含む、異なるプロトコルを使用するブロック間の変換の仕様を定めるテーブルまたはリストを、そのフィールドデバイス内の実際の機能ブロックの動作を模倣するコントローラプロトコル内に格納し、そのコントローラプロトコル内に機能ブロックを作成するために利用しうる。
【００３５】
たとえば、Ｆｉｅｌｄｂｕｓ機能ブロックの如き外部機能ブロックのためのコントローラプロトコル内に機能ブロックを作成した後、シミュレーション作成ルーチン57は、コントローラプロトコルブロックまたはコントローラプロトコルモジュールを用いて実行されるのと同一の方法で、その機能ブロックをシミュレーションブロックに変換しうる。
【００３６】
現行のシミュレーションにおいて生じる他の問題は、制御システム内のフィールドデバイスの如き実際のデバイスまたは供給源にはもはや結合されていないかまたはシミュレーションモードを有していないような、したがって、不良または古いデータを提供すると考えられるかまたは誤診の原因となるような、入力機能ブロックおよび出力機能ブロックの如き供給源からの入力／出力エラーのしるしを処理する問題である。場合によっては、このような信号を発生するこれらのブロックまたは供給源は、シミュレーションを行うようには設定されておらず、したがって、これらのブロックからの信号は不良Ｉ／Ｏメッセージの発生を引起こす。さらに、この入力および出力に対する参照パラメータを用いてシミュレーションを作成すると、シミュレーション制御モジュールによりＩ／Ｏ不良が検出されるのに、実際には、そのようなＩ／Ｏ不良は存在しないというような状況を引起こすことになる（というのは、本当のＩ／Ｏが発生していないからである）。シミュレーションにおいてこれらのブロックの入出力データの量に応じて、シミュレーションインスタンスの動作中に、複数のエラーメッセージが検出され、シミュレーションオペレータに入力／出力エラーのしるしまたは診断エラーのしるしとして送信される可能性がある。このような誤ったエラーメッセージは、シミュレーション中に対処すると混乱を引き起こしかつ面倒である。
【００３７】
このような問題を回避するために、シミュレーション作成アプリケーション57では、処理方法が変更され、シミュレーションインスタンスの場合と実際のプロセス制御システムの場合とでは、入力／出力信号が異なる方法により処理される。具体的には、シミュレーション作成アプリケーション57は、たとえば、アナログ出力（ＡＯ）ブロック内および離散出力（ＤＯ）ブロック内でのＢａｄ（バッド）Ｉ／Ｏのしるしまたは検出ならびに、上述の外部参照パラメータモジュール内の外部パラメータの如き、Ｉ／Ｏチャネルを直接に参照する外部パラメータ内でのＢａｄＩ／Ｏのしるしまたは検出を動作不能にする。この動作を実行するために、シミュレーション作成アプリケーション57は、たとえばＩ／Ｏエラー検出用のビットを設定しないことによりこれらのＩ／Ｏ信号の状態のしるしを意図的に無効にするか、または、その出力デバイスがシミュレーションワークステーション20a内で実行されるように割り当てられているようにシミュレーションする。これらの状態のしるしまたはエラーのしるしが動作可能状態にされないと、シミュレーションオペレータインターフェイス上では、そのＩ／Ｏが正常であるかのように見え、これにより、誤ったｂａｄＩ／Ｏのしるしにより混乱することなしにシミュレーションを利用してオペレータのトレーニングを実行することが可能になる。もちろん、シミュレーション作成ルーチン57は、フィールドデバイスの如き実際の動作デバイスに接続されていないために、シミュレーションシステム内において不良Ｉ／Ｏデータまたは古いＩ／Ｏデータを有すると予測されるその他のブロックまたは供給源からのＩ／Ｏエラー検出を、変換工程中に、動作不能にしうる。
【００３８】
ノードのうちの一または複数のノードに対してシミュレーションインスタンスが作成された後、このシミュレーションインスタンスはトレーニング目的または試験目的のためにシミュレーションワークステーション20a内で実行されることが可能である。場合によっては、このシミュレーションインスタンスは、ＯＰＣの如き任意の公知の技術を利用して、ノードの各々の入力／出力に対して作成された参照を介して、ＨＹＳＩＳインターフェイスの如き標準シミュレーションインターフェイスに接続されることがある。もちろん、所望の場合には、シミュレーション作成ルーチン57は、ＡＰＩ（アプリケーションプログラミングインターフェイス）の如きそれ自体のインターフェイスを提供し、シミュレーションオペレータが任意の所望の方法でシミュレーションインスタンスへの入力および出力を指定または変更することを可能にしてもよい。
【００３９】
理解されるように、たとえ複数のノードの場合であっても、シミュレーションインスタンスの初期化、シミュレーションインスタンスの速度制御、およびシミュレーションインスタンス内の情報の閲覧画面のためのコマンドが、シングルコマンドを用いて、そして単一のインターフェイスを介して実行されてもよい。この閲覧画面を利用することにより、シミュレーションオペレータはシミュレーションに含まれるすべてのノードをアドレス指定した単一の要求を発行することが可能になる。表示スクリーンのノード表示区域を介して異なるノードを選択することによりこの閲覧画面を表示または変更することができる。
【００４０】
大規模なトレーニングシステムでは、トレーニングセッションの初期の時点からプロセス制御シミュレーションを再び開始する機能を提供するが必要となることが多い。また、シミュレーション中に実行されたオペレータのアクションを最初の時点から再生することが必要となることもありうる。これらの機能はアプリケーション58により実行されることが可能であり、たとえば、図２の表示画面70上のドロップダウンメニューを介してアプリケーション58を開始することができる。
【００４１】
従来、シミュレーションインスタンス内のさまざまな機能ブロックまたはモジュールの所望のパラメータをコピーするために一つ一つ要求することが通常必要であったので、動作中のシミュレーションのスナップショットを取得することは多少困難であった。しかしながら、これらの要求は、さまざまなモジュールに別々に送信されることが必要であり、実行には有限の時間がかかるため、このコピーを実行することを可能にするために長期間シミュレーションを停止することなく、同一のインスタンスにおいて、シミュレーションシステムのモジュールのすべての状態をコピーすることは現実的には不可能である。内部に複数の制御モジュールを有する大規模なシミュレーションシステムでは、このコピー行程により、著しい遅延が引起こされ、シミュレーションに無視できない混乱をもたらす結果となる。
【００４２】
スナップショットを取得する行程を促進するために、シミュレーションシステム内のモジュール冗長能力を利用することが可能であることが発見されている。具体的には、公知のように、図１のコントローラ12a、14a、16a内で実行される制御モジュールおよび制御ブロックのごとき制御モジュールのほとんどが冗長能力を有している。さらに詳細には、これらの制御モジュールは、冗長コントローラ12R、14R、16Rに搭載された冗長制御モジュールに、周期的にまたは変化毎にモジュールのパラメータなどの数値を送信するように作成されていることが一般的である。これらの制御モジュールは、冗長コントローラ12R、14R、16Rが、コントローラ12a、14a、16aの対応するひとつに故障が発生した場合に、プロセス制御システムの主動作を引き継ぐためにいつでも使用可能状態であるように自分自身を更新する。
【００４３】
シミュレーション作成アプリケーション57は、シミュレーションインスタンス対してシミュレーションモジュールを作成する行程の間、シミュレーションモジュールにより生成された冗長信号の各々を冗長モジュールまたはシミュレーションコンピュータ20a内の指定のメモリアドレスに結合し、これらの信号が既知のメモリ領域に書き込まれ、保存されることを可能にする。したがって、シミュレーションインスタンス内のモジュールの各々に対して冗長制御モジュールを作成する代わりに、シミュレーション作成アプリケーション57は、シミュレーションモジュールにより生成された冗長信号を特定かつ専用のメモリ領域に結合することのみが必要であり、これらのメモリ領域は、他のモジュール内のメモリ領域であってもよくなくてもよい。シミュレーションモジュールの通常の過程において作成される冗長信号は、次いで、シミュレーションシステムの動作中に捕らえられ、これらの信号内のデータは、後で検索するために容易にアクセス可能なメモリに任意の論理的な方法で格納される。その後、シミュレーションインスタンスの動作中の任意の時点で、アプリケーション58は、この論理的な方法で格納された冗長データをオペレータがアクセス可能なバッファまたはファイルにコピーすることにより動作中のシミュレーションのスナップショットを作成しうる。冗長データのメモリ領域が専用メモリ領域であり、容易にアクセス可能なメモリ内に存在するので、ブロックコピーでありうるコピー行程を迅速に実行することが可能であり、このことにより、実際のシミュレーションインスタンスの異なるモジュールに格納された状態のデータをコピーすることと比較して、シミュレーションシステムのスナップショットを取得するためにかかる速度が促進される。したがって、特定の時間におけるスナップショットを作成する場合、ルーチン58は、その特定の時間のみシミュレーションシステムの動作を停止し、専用メモリ領域の内容をスナップショットファイルにコピーし、次いで、シミュレーションシステムの動作を続ける。スナップショットファイルへのコピーは、通常、非常に迅速に行われることが可能である。
【００４４】
図７は、特定の時間にシミュレーションシステムのスナップショットの取得を開始するためにシミュレーションオペレータにより利用されうるスクリーン表示画面130を例示している。例示されているように、シミュレーションオペレータは、ノード表示区域72により指定される通りに、選択されたノード内に上述のシステムのスナップショットを保存し、将来参照するためにそのスナップショットに名前を付けうる。いうまでもなく、このようなスナップショットは、適切な冗長能力を有するならばいずれのノードに対してでもノード毎に取得されうる。所望ならば、スナップショット収集アプリケーション58は、プロセス制御システムのノードの各々に指示し、一枚のスナップショットを同時に取得することが可能であり、これにより、複数のノードよりなる一枚のスナップショットを得ることが可能である。
【００４５】
同様に、図８に例示されるように、シミュレーションオペレータは、復元アプリケーション（ルーチン58の一部である復元アプリケーション）を始動させ、シミュレーションシステムの前回のスナップショットのうちから復元する一つを選択することにより、保存されたスナップショット内に取得されている前回の設定状態にシミュレーションシステムを復元することが可能である。もちろん、シミュレーションオペレータにより選択される復元ファイルは、スナップショットとして前回保存されたファイルであることが一般的であり、復元アプリケーションは、復元ファイル内のそのデータを取得し、任意の標準の方法または公知の方法でそのデータをシミュレーションモジュールに書き込む。この動作中、ルーチン58は、シミュレーションシステムの動作を停止し、シミュレーションオペレータにより指定されたスナップショットファイルにアクセスし、そのスナップショットファイルの内容を通信可能に相互接続されたシミュレーションモジュールにコピーし、次いで、シミュレーションシステムの動作を継続する。
【００４６】
シミュレーションの保存または復元の要求を処理すると同時に、そのシミュレーションに関連するシミュレーションモジュールの実行が停止する。この理由から、遅延を最小にして保存および復元を行う必要がある。所望の場合には、保存および復元に関連するコマンドは、ＯＰＣを利用して、アプリケーション／トレーニングステーションからノードに渡されてもよい。この場合、担当アプリケーションは、該当する各ノードに対して保存コマンドおよび復元コマンドを発行する責任がある。好ましくは、保存コマンドが始動されたときは、シミュレーション制御アプリケーション58が表示画面上にダイアログを提供し、これにより、保存されるノードをシミュレーションオペレータが指定することが可能になる。また、シミュレーションオペレータは、データファイルとともに保存される記述も提供しうる。同様に、復元コマンドが始動されたときは、シミュレーション制御アプリケーション58は、スナップショットファイルが作成されてきた時間の一覧とそれに関連する記述とを提示する。特定の時間が選択されたあと、シミュレーションオペレータは、保存されたデータを用いて復元される必要のあるノードを選択しうる。 
【００４７】
所望の場合には、シミュレーション制御アプリケーション58は、保存コマンドが自動的にかつ周期的にすべてのノードに発行されることを可能にする選択肢をサポートする。自動保存を始動するためには、シミュレーションオペレータは、この機能を動作可能にし、保存の頻度とファイルに包含する必要のある記述とを指定する必要がある。この機能に関するダイアログは、マイクロソフト（登録商標）ワードオートセーブツールオプションをモデルにして作成されうる。この機能の動作の結果として、シミュレーション制御アプリケーション58は、シミュレーションインスタンスのノードに取得・保存コマンドを周期的に発行する。トレーニングセッションの混乱を避けるためには、保存コマンドを実行すると、シミュレーションモジュールの実行が停止させられる必要がある。この結果、保存コマンドが遅延なく処理されることが可能になる。
【００４８】
実現されると、本明細書において記載されるソフトウェアはいずれも、磁気ディスク、レーザディスク、または他の格納媒体の如き任意のコンピュータ読み取り可能メモリに、コンピュータまたはプロセッサのＲＡＭまたはＲＯＭなどに格納されうる。同様に、このソフトウェアは、任意の公知または所望の搬送方法を利用して、ユーザ、プロセス制御システム、またはオペレータワークステーションに搬送されうる。上述の任意の公知または所望の搬送方法には、たとえば、コンピュータ読み取り可能ディスクもしくは他の移送可能コンピュータ格納機構による方法、または電話回線、インターネット、ワールドワイドウェブ、その他のローカルエリアネットワークもしくはワイドエリアネットワークなどの如き通信チャネルを利用する方法が含まれる。上述の電話回線、インターネット、ワールドワイドウェブ、その他のローカルエリアネットワークもしくはワイドエリアネットワークなどの如き通信チャネルを利用する方法での搬送は、移送可能格納媒体を介してかかるソフトウェアを提供することと同一または相互変換可能であると考えられる。さらに、このソフトウェアは、変調なしに直接提供されてもよく、または通信チャネルを利用して伝送される前に任意の適切な変調用搬送波を利用して変調されてもよい。
【００４９】
したがって、本発明は特定の例を参照して記載されたが、それらは、例示のみを意図したものであり、本発明を制限することを意図したものではない。したがって、本発明の精神および範疇から逸脱することなく開示された実施例に変更、追加、または削除を加えうることは当業者にとり明らかである。
【符号の説明】
【００５０】
10 プロセス制御システム
12、14、16、18、20 ノード
12a、14a、16a コントローラ
18a、20a ワークステーション
32 コンフィギュレーションデータベース
【図１】
2010015596.tif 000003
【図２】
2010015596.tif 000004
【図３】
2010015596.tif 000005
【図４】
2010015596.tif 000006
【図５】
2010015596.tif 000007
【図６】
2010015596.tif 000008
【図７】
2010015596.tif 000009
【図８】
2010015596.tif 000010