(57)【要約】      （修正有）【課題】制御システムオペレータに対して訓練シナリオを提供するためのＤＣＳコントローラの正確なシミュレーションを実施することは困難で高コストである。ＤＳＣシステムがより複雑になるにつれてますます困難になり、より高価になる。【解決手段】エミュレートされることになるコントローラの制御システム論理とシミュレーションモデルとの間で共有メモリに対する共通アクセスを介して接続を確立する段階を含み制御システム論理及びシミュレーションモデルに関連した以前のシミュレーションからの状態データがメモリから検索されて、別のシミュレーション実行を初期化する。次いで、シミュレーションモデル及び制御システム論理に関連した状態データは、タイミング及び制御機構と同期されて、コントローラのシミュレーションが実行される。【選択図】図２
2008170998.tif 000002
【特許請求の範囲】
【請求項１】
動的フィードバック制御システムをシミュレーションする方法であって、
コントローラの制御システム論理の少なくとも一部とシミュレーションモデルとの間で共有メモリに対する共通アクセスを介して接続を確立する段階と、
前記制御システム論理及び前記シミュレーションモデルと関連し、且つ以前のシミュレーションと関連している、複数の状態データを検索する段階と、
前記制御システム論理及び前記シミュレーションモデルと関連した前記複数の状態データをタイミング及び制御機構と同期させる段階と、
前記コントローラのシミュレーションを実行する段階と、
を含む方法。
【請求項２】
前記コントローラのシミュレーション実行時に、前記シミュレーションモデル及び前記制御システム論理に関連した前記状態データの少なくとも一部を更新し、該更新された状態データをデータベース内に記憶する段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記状態データの少なくとも一部に対して回帰分析を実行して、将来のシミュレーション結果を予測するためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を更に含む、
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記コントローラのシミュレーションの実行が、指定された開始ステップから指定された終了ステップまでステップを進めて、次いで停止し、次のコマンド又は呼び出しプログラムを待機する段階を含む、
ことを特徴とする請求項１に記載の方法。
【請求項５】
動的フィードバック制御システムシミュレーションを準備する方法であって、
コントローラの制御システム論理の少なくとも一部とシミュレーションモデルを含むシミュレーションソフトウェアとの間で共有メモリに対する共通アクセスを介して接続を確立する段階と、
グラフィカルユーザーインターフェースから受け取ったコマンドを受け入れて、前記制御システム論理の少なくとも一部と前記シミュレーションソフトウェアとの間の入出力（Ｉ／Ｏ）構成要素の接続を確立する段階と、
前記Ｉ／Ｏ構成要素接続におけるエラーを検出する段階と、
前記エラーに関連した入力及び出力信号の名前付け不整合を識別する段階と、
前記入力及び出力信号の名前付け不整合を訂正する段階と、
を含む。
【請求項６】
前記制御システム論理の少なくとも一部及び前記シミュレーションモデルと関連し、且つ以前のシミュレーションと関連している、複数の状態データを検索する段階と、
前記シミュレーションモデル及び制御システム論理を同期させる段階と、
シミュレーションを実行する段階と
を更に含む、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記シミュレーションと関連した前期状態データを調整するためのグラフィカルユーザーインターフェースからコマンドを受け入れる段階を更に含む、
ことを特徴とする請求項５に記載の方法。
【請求項８】
シミュレーションの実行前に、前記シミュレーションに関連した少なくとも１つの制御システム設定を調整するためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を更に含む、
ことを特徴とする請求項５に記載の方法。
【請求項９】
動的フィードバックシステムをシミュレーションするシステムであって、
シミュレーションモデルを含み、共有メモリと通信するシミュレーションソフトウェアと、
前記共有メモリと通信するコントローラと関連し、且つ前記シミュレーションソフトウェアとの間で共通アクセスを介して前記共有メモリが接続を確立する、制御システム論理の少なくとも一部と、
前記制御システム論理及び前記シミュレーションモデルと関連した複数の状態データが記憶されている、前記シミュレーションソフトウェア及びコントローラと通信するデータベースと、
前記コントローラ及び前記シミュレーションソフトウェアと通信するタイミング及び制御機構と、
を備え、
前記タイミング及び制御機構が、前記シミュレーションソフトウェア及び前記制御システム論理の少なくとも一部を同期させる、
ことを特徴とする動的フィードバックシステムをシミュレーションするシステム。
【請求項１０】
前記シミュレーションを構成又は実行するユーザコマンドを受け入れるために前記制御システム論理の少なくとも一部と通信するグラフィカルユーザーインターフェースを更に備える、
ことを特徴とする請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、制御システムをシミュレーションするシステム及び方法に関し、より詳細には動的フィードバック制御システムをシミュレーションするシステム及び方法に関する。
【背景技術】
【０００２】
タービンシミュレーションは、Ｈａｒｄｗａｒｅ  ｉｎ  ｔｈｅ  Ｌｏｏｐシミュレーション及びテーブル・トップシミュレーション（非ＨＩＴＬシミュレーションとしても知られる）を含む、複数のプラットフォームに定義することができる。動的フィードバック制御システムのシミュレーションは、ｈａｒｄｗａｒｅ−ｉｎ−ｔｈｅ−ｌｏｏｐ（ＨＩＴＬ）シミュレーション又は非ＨＩＴＬシミュレーションとして分類することができる。ＨＩＴＬシミュレーションシステムは、実際の（又は対象の）制御システムからの幾つかのハードウェア要素を含み、ＨＩＴＬシミュレーションシステムの他の要素と直接又は間接的に通信してシミュレーションされる。非ＨＩＴＬシミュレーションは、シミュレーションシステム中に実際の（又は対象の）制御システムからのハードウェア要素を含まない。
【０００３】
Ｈａｒｄｗａｒｅ  ｉｎ  ｔｈｅ  ｌｏｏｐシミュレーションは、制御システムの全ての態様並びにこのコントローラに装着される入出力カードを試験する。Ｈａｒｄｗａｒｅ  ｉｎ  ｔｈｅ  ｌｏｏｐシミュレーションは、主に、制御システム技術者による工場受入試験（ＦＡＴ）に使用され、顧客に対して制御システムの機能性を証明する。ＨＩＴＬシミュレーションシステムの動作においては、制御システムは、シミュレーションされる装置モデルから測定された入力信号を受信し、一定の内部計算を実行し、次いで、シミュレーションされる装置モデルに指令信号を出力する。典型的なＨＩＴＬシミュレーションにおいて、実制御システムハードウェア及びソフトウェアの特定用途向け構成要素及び専用構成要素が使用される場合、これらの動作は通常、正確に制御された間隔で高速で繰り返される。しかしながら、これらの要素は、厳密な基準セットに従って動作するように設計されているので、ＨＩＴＬシミュレーションの結果として得られる動的フィードバックシミュレーションは、厳密な実時間動作、非停止動作、及び実行が単一の予めプログラムされた状態で開始されるような、幾つかの動作上の制約を受ける。通常、Ｈａｒｄｗａｒｅ  ｉｎ  ｔｈｅ  ｌｏｏｐは、タービン制御のシミュレーションに対して最も時間効率が良いが高コストの手法である。
【０００４】
典型的な非ＨＩＴＬシミュレーションにおいては、実制御システムソフトウェアのシミュレーションモデルは、通常、装置モデルと同じシミュレーションソフトウェア環境への変換を介してなされる。プロセス用装置及び制御システムのこの統合シミュレーションは、変換プロセスに起因するシミュレーション制御システムモデルにおけるエラーの可能性、制御論理のシミュレーションに起因する忠実性及び現実性の喪失、制御システム論理をシミュレーションソフトウェア中に変換及び組み込むために追加のステップが必要とされること、及びシミュレーションプロセス中のシミュレーション制御システム論理に対してなされた修正が、シミュレーションから抽出され、実制御システムソフトウェアに適用されなければならない、といった幾つかの固有の問題を含んでいる。システムにおける忠実性は、シミュレーション能力と呼ばれ、運転しているパワープラント動作に適合するように制御する。
【０００５】
非ＨＩＴＬは、通常、制御システム技術者によって使用され、制御システムが、目的とする正確なシーケンスで動作を完了していることを検証する。非ＨＩＴＬシミュレーションは、どのようなＩ／Ｏ妥当性確認も含まない。しかしながら、非ＨＩＴＬシミュレーションは、シミュレーションの開発コストに加算されるトレーナの利用を必要とし、高速の妥当性確認を妨げる。
【０００６】
ＨＩＴＬシミュレーション及び非ＨＩＴＬシミュレーションの両方に関連する欠点が受け継がれて組み合わされるために、パワープラント制御システムの最新化はまた、現実のコントローラアップグレードのシミュレーション、或いはメンテナンス又はトラブルシューティングの動作のシミュレーションを行った後に、こうした動作を実際に実制御システムに実装することに対する課題を生み出してきた。アナログパワープラント制御システムのシミュレーションは、より最近のデジタル制御システム（ＤＣＳ）と比較して比較的に容易であった。制御システムオペレータに対して訓練シナリオを提供するためのＤＣＳコントローラの正確なシミュレーションを実施することはまた、より困難で高コストである。ＤＳＣシステムがより複雑になるにつれて、これらもまた、完全にエミュレートするためにますます困難になり、より高価になる。
【発明の開示】
【０００７】
本発明の実施形態によれば、エミュレートされることになるコントローラの制御システム論理とシミュレーションモデルとの間で共有メモリに対する共通アクセスを介して接続を確立する段階を含む、動的フィードバック制御システムをシミュレーションするための方法が開示される。制御システム論理及びシミュレーションモデルに関連した以前のシミュレーションからの状態データがメモリから検索されて、別のシミュレーション実行を初期化する。次いで、シミュレーションモデル及び制御システム論理に関連した状態データは、タイミング及び制御機構と同期されて、コントローラのシミュレーションが実行される。
【０００８】
本発明の１つの態様によれば、本方法は更に、コントローラのシミュレーションの実行時に、シミュレーションモデル及び制御システム論理と関連した状態データの少なくとも一部を更新し、該更新された状態データをデータベース内に記憶する段階を含む。本発明の他の態様によれば、本方法は更に、コントローラのシミュレーションを実行する前に、コントローラのシミュレーションと関連した状態データの少なくとも一部を調整するために、グラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の更に別の態様によれば、本方法は更に、コントローラのシミュレーションを実行する前に、コントローラのシミュレーションと関連した状態データの少なくとも一部を調整するためにグラフィカルユーザーインターフェースからコマンドを受け入れることを含む。
【０００９】
本発明の更に他の態様によれば、本方法は更に、コントローラのシミュレーションを実行する前に、コントローラのシミュレーションと関連した少なくとも１つの制御システム設定を調整するためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の別の態様によれば、本方法は更に、状態データの少なくとも一部の上で回帰分析を実行して将来のシミュレーション結果を予測するために、グラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の別の態様によれば、本方法は更に、シミュレーションモデルに関連したシミュレーションデータをプロットするためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の更に他の態様によれば、コントローラのシミュレーションの実行は、指定された開始ステップから指定された終了ステップまでステップを進め、次いで停止し、次のコマンド又はプログラム呼び出しを待機する段階を含む。
【００１０】
本発明の他の実施形態によれば、コントローラの制御システム論理の少なくとも一部とシミュレーションモデルを含むシミュレーションソフトウェアとの間で共有メモリに対する共通アクセスを介して接続を確立する段階を含む、動的フィードバック制御システムのシミュレーションを準備する方法が開示される。本方法はまた、グラフィカルユーザーインターフェースから受け取ったコマンドを受け入れて、制御システム論理の少なくとも一部とシミュレーションソフトウェアとの間の入出力（Ｉ／Ｏ）構成要素の接続を確立する。本方法は更に、（Ｉ／Ｏ）構成要素接続におけるエラーを検出する段階と、エラーに関連した入力及び出力信号の名前付け不整合を識別する段階と、入力及び出力信号の名前付け不整合を訂正する段階を含む。
【００１１】
本発明の１つの態様によれば、本方法は更に、制御システム論理の少なくとも一部及びシミュレーションモデルと関連し、且つ以前のシミュレーションと関連している状態データを検索する段階と、シミュレーションモデル及び制御システム論理を同期させ、シミュレーションを実行する段階とを含む。本発明の他の態様によれば、本方法は更に、シミュレーションの実行時、シミュレーションモデル及び制御システム論理と関連した状態データの少なくとも一部を更新する段階と、該更新された状態データをデータベース内に記憶する段階とを含む。本発明の他の態様によれば、本方法は更に、シミュレーションと関連した状態データを調整するためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。
【００１２】
本発明の更に別の態様によれば、本方法は更に、シミュレーションを実行する前に、シミュレーションと関連した少なくとも1つの制御システム設定を調整するためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の他の態様によれば、本方法は更に、回帰分析を状態データの少なくとも一部に対して実行して、将来のシミュレーション結果を予測するために、グラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の更に別の態様によれば、本方法は更に、シミュレーションモデルと関連したシミュレーションデータをプロットするためにグラフィカルユーザーインターフェースからコマンドを受け入れる段階を含む。本発明の１つの態様によれば、シミュレーションの実行は、指定された開始ステップから指定された終了ステップまでステップを進め、次いで停止して、次のコマンド又はプログラム呼び出しを待機する段階を含む。
【００１３】
本発明の更に別の実施形態によれば、シミュレーションモデルを含み共用メモリと通信するシミュレーションソフトウェアを含む動的フィードバック制御システムをシミュレーションするシステムが開示される。本システムはまた、共有メモリと通信するコントローラと関連し、且つシミュレーションソフトウェアとの間で共通アクセスを介して共有メモリが接続を確立する制御システム論理の少なくとも一部を含む。本システムは更に、制御システム論理及びシミュレーションモデルと関連した状態データが、データベース中に記憶されている、シミュレーションソフトウェア及びコントローラと通信するデータベースを含む。本システムはまた、コントローラ及びシミュレーションソフトウェアと通信するタイミング及び制御機構を含み、タイミング及び制御機構が、シミュレーションソフトウェア及び制御システム論理の少なくとも一部を同期させる。
【００１４】
本発明の１つの態様によれば、コントローラの制御システム論理は、シミュレーションモデルと同じオペレーティングシステム上にホストされる。本発明の他の態様によれば、システムは更に、シミュレーションを構成又は実行するユーザコマンドを受け入れるために制御システム論理の少なくとも一部と通信するグラフィカルユーザーインターフェースを含む。本発明の更に他の態様によれば、グラフィカルユーザーインターフェースは、監視ウインドウメニューを含み、該監視ウインドウは、１つ又はそれ以上のシミュレーション変数と関連した生データをプロットする。本発明の更に他の態様によれば、グラフィカルユーザーインターフェースは、対話型シミュレーションメニューを含み、該対話型シミュレーションメニューは、シミュレーションの状態データと関連したステップ数を増減少させるオプションを提供する。
【発明を実施するための最良の形態】
【００１５】
従って、概略的に本発明を説明してきたが、ここで、必ずしも縮尺通りに描かれていない添付図面について説明する。
【００１６】
本発明は、シミュレーションに基づくコスト効率の良いソフトウェアを対象とし、現在のＨＩＴＬ及び非ＨＩＴＬシミュレーションシステムよりも短時間で制御及び作動性の高度な機能及び妥当性確認を可能にする。本発明は、ｈａｒｄｗａｒｅ−ｉｎ−ｔｈｅ−ｌｏｏｐ（ＨＩＴＬ）及び非ＨＩＴＬ環境の利点を達成し且つ各々の欠点を最小にするシミュレーションシステムに関する。本発明は、「仮想シミュレーション」と呼ばれるプロセスを含み、これは、ＤＣＳの基礎となるソースコードを取りこれを移植して、低価格なコンピュータプラットフォーム上で実行させる。本発明のシステム及び方法は、現実性のある非ＨＩＴＬシミュレーション環境の広範なデバッグ能力及び操作の柔軟性と実時間ＨＩＴＬシミュレーション環境の真正性とを組み合わせたシミュレーションのフレームワークを提供する。
【００１７】
本発明は、特定のシステム用の実制御システムアプリケーションを完全デバッグ能力及びシミュレーション実行の制御の柔軟性を有する装置のシミュレーションモデルをテストすることができる環境を提供する。制御システムは、実時間で動作することができ、エミュレータと独立して動作することができる。例えば、エミュレータは、1ミリ秒毎にステップを進めるよう示されることが可能であるが、４０ミリ秒のコントローラのスキャン速度のエミュレータを想定してもよい。更に、本発明は、シミュレーションに基づく動的フィードバック制御システムの分析及び設計の新しい能力を提供する。この能力は、設計及び開発活動中の生産性を改善し、エンドユーザ訓練用の実現技術である。
【００１８】
更に、本発明は、制御システム設計の正確さ及び品質を改善し、欠点を低減し、更に制御中のプロセスの作動性についてより全体的な研究を可能にする。本発明のシミュレーションプラットフォームを設計チームにとってより効果的にするこの特徴はまた、オペレータ訓練シミュレータに対する基礎を提供し、顧客が彼らの操作要員を訓練し、様々な装置のより効率的な操作を行うことを可能にする。本発明はまた、ガスタービン、蒸気タービン又は複合サイクルパワープラントのシミュレーションに伴う用途に適している。更に、本発明は、制御システム論理の開発及び妥当性確認、機械設計の妥当性確認、作動性研究、顧客訓練、回帰分析、並びに外部販売／収益を含む複数の側面で使用することができる。
【００１９】
本発明は、本発明の実施形態によるシステム、方法、装置、及びコンピュータプログラム製品のブロック図を参照しながら以下に説明される。ブロック図の各ブロック及びブロック図中のブロックの組合せはそれぞれ、コンピュータプログラム命令によって実施することができることは理解されるであろう。これらのコンピュータプログラム命令は、汎用コンピュータ、特定用途コンピュータ、或いは他のプログラム可能なデータ処理装置上にロードされて、コンピュータ又は他のプログラム可能なデータ処理装置上で実行される命令が、以下の本明細書で詳細に検討されるブロック図の各ブロック或いはブロック図中のブロックの組合せの機能を実施する手段をもたらすような機械を提供することができる。
【００２０】
これらのコンピュータ命令はまた、コンピュータ読み取り可能なメモリ内に格納することができ、これらは、特定の様態で機能するようコンピュータ又は他のプログラム可能なデータ処理装置に命令することができ、コンピュータ読み取り可能なメモリ内に格納された命令が、１つ又は複数のブロックで指定される機能を実施する命令手段を含む製造品をもたらすようにする。コンピュータプログラム命令はまた、コンピュータ又は他のプログラム可能なデータ処理装置上にロードされ、一連の動作ステップがコンピュータ及び他のプログラム可能なデータ処理装置上で実行されて、コンピュータ及び他のプログラム可能なデータ処理装置上で実行される命令がコンピュータ実装プロセスを提供することができ、１つ又は複数のブロックで指定される機能を実施するステップを提供するようになる。
【００２１】
従って、ブロック図のブロックは、指定された機能を実行する手段の組合せ、指定された機能を実行するステップの組合せ、及び指定された機能を実行するプログラム命令手段をサポートする。ブロック図の各ブロック及びブロック図中のブロックの組合せが、指定された機能又はステップを実行する特定用途のハードウェアベースのコンピュータシステム、又は特定用途のハードウェア及びコンピュータ命令の組合せによって実装することができる点も理解されるであろう。
【００２２】
本発明は、コンピュータのオペレーティングシステム上で実行中のアプリケーションプログラムを通して実装することができる。本発明はまた、携帯デバイス、マルチプロセッサーシステム、マイクロプロセッサーベース又はプログラム可能な家電製品、ミニコンピュータ、メインフレームコンピュータ、その他を含む他のコンピュータシステム構成で実施することができる。
【００２３】
本発明の構成要素であるアプリケーションプログラムは、ある抽象データタイプを実装し、あるタスク、動作、又はタスクを実行するルーチン、プログラム、コンポーネント、データ構造、その他を含む。分散コンピューティング環境においては、アプリケーションプログラム（全体又は一部）は、ローカルメモリ内、又は他の記憶装置内に配置することができる。加えて、或いは代替形態において、アプリケーションプログラム（全体又は一部）は、本発明の実施を可能にする遠隔メモリ又は記憶装置内に配置することができ、そこでタスクが、通信ネットワークを介して接続された遠隔処理デバイスによって実行される。本発明の例示的な実施形態は、添付図面を参照しながら以下でより十分に説明され、ここでは同じ番号は、複数の図面を通して同じ要素を示す。実際、これらの発明は、多くの異なる形態で具現化することができ、本明細書に記載される実施形態に限定されるものと解釈すべきではなく、むしろこれらの実施形態は、本開示が適用される法的要件を満足するように提供される。
【００２４】
図１は、本発明の例示的な実施形態による複合動的フィードバック制御システムのシミュレーション用システムを示す。本発明の例示的な実施形態において、シミュレーションされることになる実時間制御システムソフトウェアの内部アーキテクチャは公知であり、ソースコードは、修正用に利用可能である。本発明の例示的な実施形態では、制御システムは、ＱＮＸ実時間オペレーティングシステム上でホストすることができる。マイクロカーネルベースのオペレーティングシステムとして、ＱＮＸは、幾つかの小タスクの形態でオペレーティングシステムのほとんどが実行する。ＱＮＸの場合、マイクロカーネルを使用することにより、開発者は、ＯＳ自体を変更することを必要とせずに不要なあらゆる機能を停止することができる。制御システムソフトウェアは、階層化製品であり、アプリケーションソフトウェアは、ランタイムとして知られるユーティリティプロセス層上に載り、該ランタイムは、ＱＮＸオペレーティングシステム上に載る。従って、ランタイム層は、ＱＮＸオペレーティングシステムの詳細からアプリケーションソフトウェアを分離する役割を果たす。
【００２５】
図１の例示的な実施形態に示すように、本発明は、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムのようなオペレーティングシステム１０２に対するランタイム環境のポートを含む。例示的な実施形態では、ポーティングランタイムは、制御システム・ブロックウェアと共にＱＮＸ特定機能を利用し、同じ機能性をＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）環境で実行することを可能にするＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）ソフトウェアラッパーを生成している。オペレーティングシステム１０２に対するランタイムポートを利用して、エミュレートされたコントローラ１０４の実制御システム論理１０６は、シミュレーションされる装置のシミュレーションモデルとして同じＰＣ上にホストすることができる。本発明の例示的な実施形態では、ランタイム及び関連するアプリケーションツールは、Ｍｉｃｒｏｓｏｆｔ  Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ設計スイートを使用して、Ｃ及びＣ＋＋でプログラムされる。これらのツール及びソフトウェア言語は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム上で実行されるシミュレーションソフトウェアパッケージと互換性がある。
【００２６】
本発明の例示的な実施形態では、実時間制御システム論理１０６の実装は、ホストコンピュータの実時間オペレーティングシステムに対する最小限の依存性で階層化される。制御システムアプリケーションソフトウェア言語、その開発支援ツール、及びプログラミング環境は、装置シミュレーションソフトウェア／モデル１１４と互換性がある。装置モデルを実装するのに使用されるシミュレーションソフトウェア／モデル１１４はまた、他のサードパーティのソフトウェアパッケージとの通信をサポートする能力を有することができる。シミュレーションソフトウェアは、この場合ではサードパーティソフトウェアプログラムとの通信手段として、共有メモリにアクセスするための柔軟な機構を含む、サードパーティのコードを結果として得られるシミュレーションに組み込む柔軟な手段を有する。アプリケーションプログラミングインタフェース（ＡＰＩ）が、この機能を実行するために使用される。
【００２７】
通信チャネルは、共通アクセス１１２を介して、シミュレーションシステムの２つの主要な構成要素：すなわち制御システム論理１０６６とシミュレーションソフトウェア／モデル１１４との間の共有メモリ領域に対して確立される。図１の例示的な実施形態では、シミュレーションソフトウェア／モデル１１４及び制御システム論理１０６と関連したＷｉｎｄｏｗｓ（登録商標）ランタイムポートの両方は、共有メモリアクセス機構１１２を利用して、シミュレーション装置モデルとエミュレートコントローラ１０４の制御システムアプリケーションソフトウェア論理１０６との間の通信チャネルとして機能する。タイミング及び制御機構１１６は、シミュレーション装置モデル及び制御システム論理１０６の実行を協働させ同期させる。データベース機構１１８は、シミュレーション装置モデル及び制御システム論理１０６の両方を含むシミュレーションの実行しているシミュレーションの状態をあらゆる時点で保存し復元する。シミュレーションソフトウェア／モデル１１４及びエミュレートされるコントローラ１０４の制御システム論理１０６は、図３及び４を参照して以下でより詳細に説明される。
【００２８】
シミュレーションエグゼクティブ・グラフィカルユーザーインターフェースは、シミュレーションソフトウェア／モデル１１４及び制御システムアプリケーションソフトウェアの両方を含む、シミュレーションシステム構成要素の実行上の全ての態様を制御し、協働するために設けられる。制御システム論理１０６及びシミュレーションモデルの実行制御及び同期は、シミュレーションエグゼクティブ・グラフィカルユーザーインターフェースによって影響を受ける。シミュレーションエグゼクティブ・グラフィカルユーザーインターフェースは、とりわけ、ツールボックス１０８、トレンドレコーダ、及びＨＭＩ（ヒューマン・マシーン・インターフェイス）１１０を含む、標準制御システムソフトウェアツールの可用性を考慮し、標準実時間制御システムプラットフォームで利用可能なツールと同じ機能を有する。制御システム論理１０６へのアクセスは、ツールボックス１０８及びＧＥ  Ｆａｎｕｃ  Ａｕｔｏｍａｔｉｏｎ  Ｎｏｒｔｈ  Ａｍｅｒｉｃａ，ＩｎｃのＣｉｍｐｌｉｃｉｔｙ（登録商標）ワークベンチヒューマン・マシーン・インタフェース（Ｃｉｍｐｌｉｃｉｔｙ（登録商標）ＨＭＩ）などのＨＭＩ１１０を通じてなされる。グラフィカルユーザーインターフェースの例示的な実施形態を図５を参照しながらより詳細に説明する。
【００２９】
エミュレートコントローラ１０４の視点から、シミュレーションは、ユーザコミュニティによって広く定義される３つのグループ：すなわち、オペレータシミュレーション、要求シミュレーション及び対話型シミュレーションに分離することができる。オペレータシミュレーションは通常、顧客訓練を目標とし、ハードウェアコストに最も敏感である。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）などのオペレーティングシステムにおいて実行するソフトウェア単独ソリューションが例示的なソリューションである。要求シミュレーションは、アプリケーションコードの妥当性確認をサポートし、外部装置と対話する能力を必要とし、シミュレーション及び実Ｉ／Ｏのミックスをサポートする。コントローラがＩ／Ｏにアクセスするときは常に、実ハードウェアにおいてホストされる必要がある。対話型シミュレーションは、モデル及び制御アルゴリズムの内部的開発及び分析に使用される。対話型シミュレーションは通常、アプリケーションコードのスケジューリングの制御及び高度デバッグ機能を必要とする。
【００３０】
図２は、本発明の例示的な実施形態によるシミュレーションのセットアップ及び実行に関するフローチャートである。プロセスは、ステップ２０２で、ＨＭＩ（ヒューマン・マシーン・インタフェース）の構成から始まる。ＨＭＩ及びツールボックスは、制御システムソフトウェアを観測し設定を変更することが必要な場合に開くことができる。次いで、ステップ２０４が呼び出され、シミュレーションモデルをロードして、コントローラ用のエミュレータを構成し、共有メモリへの制御システム論理のアクセスを確立することによってシミュレータシステムを実行する。次いで、ステップ２０６が呼び出され、制御システム論理ソフトウェアとシミュレーションモデルとの間のＩ／Ｏ（入出力）構成要素の接続を確立する。
【００３１】
図２に示される本発明の例示的な実施形態では、ステップ２０８は、何らかのＩ／Ｏ接続エラーが存在するかどうかを判断するために呼び出される。接続を確立しようとする際に検出された何らかのエラーが存在する場合、シミュレーションエグゼクティブ・グラフィカルユーザーインターフェースを通じてオペレータに通知がなされることになる。更に、Ｉ／Ｏ接続に関してのエラーが存在する場合には、ステップ２１０でエラーを訂正する。エラー訂正の実施例は、エラーを生じているＩ／Ｏ接続に対応するシミュレーションモデル又はシミュレータ制御ソフトウェアのいずれかにおける適切な参照名の訂正を含むことになる。次いで、ステップ２１２では、将来の使用及びセットアップ時間の短縮のために訂正された情報（例えば、Ｉ／Ｏ参照名）を記憶する。エラーが検出されず、Ｉ／Ｏ接続が成功した場合、ステップ２１４が呼び出され、エミュレートコントローラ及びシミュレーションモデルに対する初期状態又は状態データ（又は状態ファイル）をデータレポジトリからロードする。次に、ステップ２１６でシミュレーションが実行され、次いで状態データが、将来の使用のためにステップ２１８で保存される。この特定のセットアップの固有の態様は、データを将来の使用のために記憶し、場合によっては当業者にとって容易に認められる様々な回帰分析法を通じて当該記憶されたデータに基づく結果を学習し予測するためのシミュレーション能力である。グラフィカルユーザーインターフェースを介して行われる回帰分析は、以下で検討されるように、以前のシミュレーションにおいて記憶された状態データを利用して、シミュレーションモデル及び／又はエミュレーション設定の態様に対する調整を決定し、より正確なシミュレーションを提供する。
【００３２】
図3は、シミュレーションソフトウェアの概要図であり、本発明の例示的な実施形態による制御システムエミュレータと連携して動作する複数の構成要素を示す。図3に示すように、本発明のシミュレータシステムは、制御システムエミュレータ３０６と連携して動作する複数の構成要素からなる。シミュレータシステムの主要構成要素は、コントローラシミュレータＤＬＬ（ダイナミックリンクライブラリ）３０２、シミュレーションエグゼクティブ３１０、検証ツール３０８、モデリングソフトウェア３１２、及び図3に示すような、ＡｓｐｅｎＴｅｃｈのＡｓｐｅｎ  ＨＹＳＹＳ（登録商標）３０４などの外付けタービンモデリングソフトウェア又はサードパーティパッケージである。
【００３３】
コントローラシミュレータＤＬＬ３０２は、シミュレーション環境の全ての外部プログラムのセットアップ及び通信の手段として機能を果たすダイナミックリンクライブラリである。コントローラシミュレータＤＬＬ３０２は、コントローラシミュレータＤＬＬ３０２に関連するプロセスに対して全てのアプリケーションプログラミングインタフェース（ＡＰＩ）の利用を可能にし、外部インタフェースが単一の入力点から複数のプロセスに通信するのを可能にする。ＡＰＩは、プログラムベースの呼び出しであり、ソースコードにアクセスすることなくプログラムの特定の機能にアクセスするために他のプログラムにより使用することができる。従って、ＡＰＩは、他のソフトウェアアプリケーションへの制御及び監視インタフェースを提供する。
【００３４】
コントローラシミュレータＤＬＬ３０２は、モデリングソフトウェア３１０とエミュレータ３０６との間で既知である特定の識別番号を指定することによって、コントラクトフォームでの全ての入出力（Ｉ／Ｏ）接続をセットアップすることができる。制御システムは、アナログ又はデジタル（リアル又はＢｏｏｌｅａｎとも呼ばれる）の変数からなる。コントラクトフォームは、Ｂｏｏｌｅａｎ及び／又はアナログ／デジタル型変数などの特定の信号／変数と相関付けられた共有メモリの特定のブロックである。本発明の例示的な実施形態では、これらのコントラクトは、「Ｒｅｇｉｓｔｅｒ  Ｃｏｎｔｒａｃｔ  ＩＤ」と呼ばれるＡＰＩを通してエミュレータ３０６に知らされるようになる。Ｒｅｇｉｓｔｅｒ  Ｃｏｎｔｒａｃｔ  ＩＤ  ＡＰＩは、共有メモリのブロックを生成し、付随するプロセス間の通信手段として使用されることになる。
【００３５】
本発明の例示的な実施形態では、コントローラシミュレータＤＬＬ３０２は、ランコマンドＡＰＩを全ての外部プログラムに公開し、エミュレータ３０６への単一入力点を可能とし、モデリングインタフェースが同期実行できるようにする。コントローラシミュレータＤＬＬ３０２はまた、グローバルストップコマンドＡＰＩを呼出プログラムに対して公開することができる。ストップコマンドが実行されると、全ての従属処理が閉じられ、当該プロセスに付属する全てのウインドウを消失させる。更に、コントローラシミュレータＤＬＬ３０２は、全ての付随するプロセスを呼出プログラムにより提供されるステップ数だけ進めるステップコマンドを公開することができる。付随するプロセスは、全てのオペレーティングシステム（例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標））のプロセスであり、シミュレーションモデル、エミュレータ、その他などのシミュレーションが実行されたときに開始される。ステップコマンドが実行されると、シミュレーションは、指定された開始ステップから指定された終了ステップまで「ステップを進め」、次いで停止し、次のコマンド又は呼出プログラムを待機する。
【００３６】
コントローラシミュレータＤＬＬ３０２はまた、呼出プログラムを除くコントローラシミュレータに付随する各プロセスに対する全ての変数のグローバルな保存をトリガするセーブコマンドを公開することができる。また、セーブコマンドは、コントローラシミュレータＤＬＬ３０２がデータを（変数、データダンプ、その他によって）保存すべきフォーマットを識別することになる呼出プログラムからのフラグを受入れることができる。更にまた、コントローラシミュレータＤＬＬ３０２は、呼出プログラムを除くコントローラシミュレータ３０２に付随する各プロセスに対する全ての変数のグローバル復元をトリガするリストアコマンドを公開することができる。更に、リストアコマンドは、復元が変数によって又はデータダンプによって行うべきかどうかを識別する呼出プロセスからのフラグを受入れることができる。データダンプは、全ての変数をバイナリ復元することである。この復元は、実行中のソフトウェアがどのようにも変更されていないことを前提とする。変数による復元プロセスは、ソフトウェアシステム内の各個々の信号名に対して既知の値を１つずつ書き込む。
【００３７】
コントローラシミュレータＤＬＬ３０２はまた、コントローラシミュレータＤＬＬ３０２に対する全ての付随するプロセスのグローバルな一時停止をトリガするポーズコマンドを公開する。一時停止状態の間、付随するプロセスは、コントローラシミュレータＤＬＬ３０２からのレジュームコマンド又はステップコマンドを待機する。コントローラシミュレータＤＬＬ３０２はまた、呼出プロセスを除く全ての付随プロセスの名前付変数信号リストを公開することができる。更に、リストが付けられたデバイスが識別される（すなわち、タービン制御システムガスタービンモデル、Ｇ１、Ｓ１、その他）。この公開は、シミュレーション環境の通常動作とはインタフェースしない。コントローラシミュレータＤＬＬ３０２は、付随するプロセス中に存在する全ての入力／出力名をリストするＩ／Ｏ報告ＡＰＩを公開すべきである。これは、通信プロセス間の何らかの不整合を識別する能力を呼出プロセスに与える。
【００３８】
コントローラシミュレータＤＬＬ３０２はまた、呼出プログラムに特定の変数に対するシミュレーションフラグを切り替え、当該変数にユーザ定義値を書き込む能力を与えるＡＰＩを公開することができる。これは、フォールトインジェクションに使用されることになる。例えば、ユーザは、制御システムに対して誤った速度信号を書き込み、制御システムがどのように応答するかを確認することができる。このシミュレーションコマンドは、制御システムエミュレータ３０６に対する直接通信である。コントローラシミュレータＤＬＬ３０２はまた、エンドユーザが、単一のアナログ又はデジタル変数を読み書きすると共に制御システムエミュレータ３０６に付随する論理を強制的に行う能力を与えるＡＰＩを呼出プログラムに公開する。これらの読み込み、書き込み、強制論理コマンドはまた、制御システムエミュレータ３０６への直接通信である。
【００３９】
検証ツール３０８は、シミュレーションシステム上での回帰分析をエミュレートし、プロットし、自動化して実行するための構成要素からなるＧＵＩ（グラフィカル・ユーザ・インタフェース）である。検証ツール３０８はまた、シミュレーションエグゼクティブ３１０の基本機能を含むことができる。検証ツール３０８は、ＨＭＩエミュレーション、プロット、自動化及び回帰を含むことができる。ＨＭＩエミュレーションは、ユーザのＰＣ上に導入される、Ｃｉｍｐｌｉｃｉｔｙ（登録商標）ＨＭＩソフトウェアなどのＨＭＩソフトウェアを持たないパワープラントシミュレーションの基本機能を実行する能力をエンドユーザに与える。プロットにより、エンドユーザは、シミュレーションモデル３１０及び制御システムからのデータを同一のプロット上にプロットすることが可能になる。これはまた、制御システム論理の妥当性確認／検証に使用するための分析ツールをエンドユーザに提供する。自動化は、ユーザが完了したい特定の動作を挿入する能力をユーザに与える標準リスト／コンボボックスからなる。また、自動化は、検証ツール３０８中にインポートするために標準のテキストフォーマットでスクリプトを記述する能力をユーザに提供する。このインポート機能に加えて、初心者ユーザは、グラフィカルユーザーインターフェースから自分のスクリプトを記述し、保存することを選択することができる。プログラムは、このデータの構文解析し、これを自動化用の正しいフォーマットでメモリ中に入力する。検証ツールにより、タービン制御システムによって利用される標準トレンディングフォーマット／ツールの使用が可能になる。検証ＧＵＩはまた、コントローラシミュレータＤＬＬの全てのＡＰＩを事前に利用可能にする。
【００４０】
本発明の例示的な実施形態では、検証ツール３０８とパワープラントデータ分析において現在動作中のデータ分析ツールとの間には直接インタフェースがある。このインタフェースは、ホストプログラムにプロットデータ及びシグニチャデータをわたすことになるＡＰＩ呼出であり、ホストプログラムは、対応するシグネチャ及び平均からの偏差に基づく返送結果に対するプロットを分析することになる。境界値は、ユーザによってプログラムの開始前に設定されることになる。シグニチャデータは、それ以前のシミュレーション又はパワープラント運転から収集され、パワープラントの妥当性があり且つ正確な運転であることが証明されたデータである。
【００４１】
モデリングソフトウェア３１２は、シミュレーションシステムに対する付加的な構成要素であり追加コストである。事前構築プロセスを使用することよって、モデルは、スタンドアロンモデルとしてコンパイルすることができ、モデリングプロセスに関連した一定のコストを削減又は排除することができる。本発明の例示的な実施形態では、ＭＳＣソフトウェアＥａｓｙ５モデリングソフトウェアは、パワープラントシミュレーション開発用のビルディングブロックとして使用し、ソースコードを顧客シミュレーション用スタンドアロンとしてコンパイルすることができる。これはシミュレータシステムを形成する別個のツールである。Ａｓｐｅｎ  ＨＹＳＹＳ（登録商標）３０４は、対話型プロセスモデリングソリューションであり、技術者がプラント設計、性能監視、トラブルシューティング、動作改善、その他のための安定状態モデルを生成することを可能にする。Ａｓｐｅｎ  ＨＹＳＹＳ（登録商標）は、コントローラシミュレータＤＬＬを通じてシミュレーションソフトウェアと双方向通信を行う外部ソフトウェアでもある。
【００４２】
本発明の例示的な実施形態では、シミュレータシステムはまた、モデル及びエミュレートされるコントローラとの間の入出力信号名によりエンドユーザを支援するＩ／Ｏ構成ツールを含むことができる。このツールは、不整合がある名称を識別し、ユーザが新しい名称を入力する能力を与えることができる。ユーザが、全ての名称付け又はデータ型の不整合を解決した後、ユーザは、今後の使用のために構成を保存するオプションを有することになる。このデータは、シミュレーションエグゼクティブ３１０に再供給され、将来のセットアップにおいてユーザに入力を求める前に使用することができる。このツールはまた、テーブルトップ（非ＨＩＴＬ）シミュレーションに対して下位互換性をもたせることができる。
【００４３】
シミュレータシステムはまた、開始／セットアッププロセスの間システムを分析して、あらゆる運転サイクルの間に達成することができる最大速度を決定することができる。次に、この回数は、パワープラントシミュレーション中に達成することができる時間ステップに対する仕様上限（ＵＳＬ）としてシミュレーションエグゼクティブ３１０内に置くことができる。ユーザにはまた、ＵＳＬに対して時間ステップを増減少させる能力を与えることができる。
【００４４】
図４は、本発明の例示的な実施形態による例示的制御システムエミュレータを示す。図４に示されるように、例示的な実施形態は、複数のソフトウェアユニットの組合せであり、これらは相互に通信して、プラットフォームを越えた共通性を可能にする。本発明の例示的な実施形態では、エミュレータは、１つ又はそれ以上のコントローラの基本的機能の幾つかをエミュレートするソフトウェア実行ファイルのセットである。エミュレータは、ツールボックス４０２を使用して実コントローラと全く同様に構成される。アプリケーションプログラミングインタフェース（ＡＰＩ）は、変数空間（ｖａｒｄｅｆ）４０６への直接アクセスを提供し、これによって入出力信号は、外部ソフトウェアモデルによって駆動することができるようになる。ＡＰＩ４０４は、他のＷｉｎｄｏｗｓ（登録商標）ソフトウェアアプリケーションに対する制御及び監視インタフェースを提供する。
【００４５】
ツールボックス構成及びインタフェース監視は、ＴＣＰ／ＩＰソケットライブラリー上に構築される。これは、同じＰＣ上でシミュレータ／エミュレータとして実行している場合でも、変更を行うことなくツールボックス４０２を使用することができる正規化層を提供する。エミュレータは、状態変数復元及び名称による変数アクセスを実行するために、ツールボックス４０２のシンボルテーブルの生成に依存する。本発明の例示的な実施形態では、シンボルテーブルは、コントローラで使用される全ての信号（又は変数）に対する以下のフィールド、すなわち、完全信号名、アドレストークン、初期／現在値を含む。ソケットは、ＴＣＰ／ＩＰプロトコルを通じて通信するためにＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）環境内で利用可能な標準機構である。図４に示されるツールボックスＳＴは、タービン制御論理を構成／修正するのに使用されるＧＥ専用の制御システムソフトウェアＧＵＩである。本発明の代替の実施形態では、他のＧＵＩを使用することができる。
【００４６】
ＳＤＩ４０８プロトコル及び構成ファイルもまたサポートされる。ＳＤＩは、コントローラとツールボックスとの間の通信に使用されるＧＥ専用プロトコルであるが、他の通信プロトコルを実装してもよい。別個のＰｃｏｄｅエキスパンダー４１０は、各モードに対して生成される。Ｐｃｏｄｅエキスパンダー４１０は、ソフトウェアインタプリタであり、バイナリ言語を読み出し、制御システムがどのように動作すべきかを解釈実行する。各Ｐｃｏｄｅエキスパンダー４１０は、ブロックウェアエンジン４１２を駆動するための構成情報の共通セットを生成する。ブロックウェアエンジン４１２は、制御システムシーケンスを実行するエミュレートコントローラ論理である。必要ではない又はサポートされないツールボックス４０２からのあらゆる構成情報は、Ｐｃｏｄｅエキスパンダーによって無視され、必要に応じてツールボックス４０２に対し成功したものとして肯定応答することができる。各モード間で重要ではないデータタイプの変化しか存在しない場合には、ブロックウェアライブラリー４１４の単一のセットは、複数のエミュレータモードをサポートすることができる。ブロックウェアライブラリー４１４は、制御システム論理（例えば、Ｒｕｎｇ  Ｌａｄｄｅｒ  Ｄｉａｇｕｒａｍ  ＰＬＣロジック）を構築するときに使用される関数の標準セットである。
【００４７】
アプリケーション変数空間（ｖａｒｄｅｆ）４０６は、グローバルメモリ領域として実装することができる。変数空間は、エミュレータが変数値を記憶するメモリブロックである。保存、復元及びバックトラック動作に対しては、ＡＰＩ４０４を通じて高速アクセスが必要とされる。目標は、１００ｍｓ未満の保存時間である。エミュレータは、ｖａｒｄｅｆ４０６中に存在しないアプリケーションコードを維持することができる。
【００４８】
ツールボックス４０２からのエミュレータへのオンライン負荷は、コマンドにより命令された新規又は全ての変数を初期化することを除いて、ｖａｒｄｅｆ４０６の状態を保存すべきである。本発明の例示的な実施形態では、オンライン負荷に対する性能要件、同期要件、又は外部データ生成要件は存在しない。実コントローラによってサポートされるこれらの機能の全ては、ｖａｒｄｅｆ４０６保存が、実コントローラに関して正確である限り、シミュレータ内で折り合わせることができる。用語「折り合う」とは、修正された制御論理及びタービン制御動作に対する影響を初期化することを指す。追加された新規の論理がタービン上に悪影響をもたらすことになる場合、オンラインダウンロードが無効にされることになる。実コントローラに関連する場合、用語「折り合う」とは、エミュレート制御装置が、実コントローラと同じ機能を有することになることを意味する。
【００４９】
エミュレータは、ツールボックス４０２を介してアクセス可能な関心のある変数を維持する。本発明の例示的な実施形態では、関心のある変数はリードオンリー状態情報を含む。関心変数は、ユーザが、シミュレーションの実行中に監視することを選択するあらゆる変数とすることができる。本発明の幾つかの例示的な実施形態では、関心変数は、特定のトークンを通じてアクセスできるが、他の例示的な実施形態では、関心変数は、固有の可変の方法を通じてアクセスされる。これは、トークンアドレス（メモリアドレス空間）又は変数名によるアクセスを指す。関心変数は、オペレータがアクセス可能にすることができるが、エミュレータは、これらの変数の一部を維持することができ、これによってツールボックス４０２は、コントローラについての混乱した又は誤った情報は表示しないようになる。変数値の多くは、開始時にデフォルト状態にセットし、次いでそのままにして置くことができる。少なくとも２つの読み出し変数コマンドをサポートすることができる。１つの読み出し変数コマンドは、シンボル名によるアクセスを提供し、第２の読み出し変数コマンドは、トークンによるアクセスを提供することができる。読み出し変数コマンドは、１つのアクセス当りに複数の変数をサポートすることができる。また、少なくとも２つの書き込み変数コマンドをサポートすることができる。１つの書き込み変数コマンドは、シンボル名によるアクセスを提供し、第２の読み出し変数コマンドは、トークンによるアクセスを提供することができる。書き込み変数コマンドは、１つのアクセス当りに複数の変数をサポートすることができる。
【００５０】
ＧＥのイーサネット（登録商標）グローバルデータ（ＥＧＤ）プロトコルなどのパワープラントシステムに使用されるネットワーク通信プロトコルは、アプリケーションコードから分離され、或いは各フレーム後のアプリケーションの出力スレッドにより駆動することができる。ＥＧＤは、ＨＭＩに通信するのに使用されるＴＣＰ／ＩＰプロトコルである。ＥＧＤ交換マップが生成され、これがアプリケーションコードによって更新されたかどうかに関係なくＥＧＤサービス４１６によって周期的に送信される。
【００５１】
更に、図４に示される例示的な実施形態では、エミュレータは、簡素化された警告スキャナー４１８によって実装された簡素な警告キューをサポートする。本発明の例示的な実施形態では、ＡＰＩを使用した警告キューを実装するが、他の実施形態では、コントローラ専用警告プロトコルをサポートすることができる。本発明の例示的な実施形態では、インタフェースを簡素なプロセス警告機能用に設けることができる。ダンプ要求は、キュー上でのプロセス警告を返す。ダンプ要求は、ＨＭＩプロセス内で実行する非同期プロトコルであり、外部プロセスからのコマンドを待機する。ダンプ要求は、存在する警告の全てに対して呼出プログラムに指示を出させるように警告マネージャに伝える１つのコマンドである。肯定応答及びリセットコマンドは、キュー中の個々の警告及び全ての警告についてサポートすることができる。本発明の他の実施形態では、簡素な警告保留機能のためにインタフェースを設けることができる。ダンプ要求は、キュー上の保留警告を返送する。この場合も、肯定応答及びリセットコマンドは、キュー中の個々の警告及び全ての警告についてサポートすることができる。
【００５２】
エミュレータはまた、キャプチャーブロック及び動的データレコーダなどのデータ収集４２０をサポートすることができる。キャプチャーブロックに必要なメモリは、ヒープメモリ又は他のメモリ域から割り当てることができる。本発明の例示的な実施形態では、キャプチャーブロックからのデータは、従来のＳＤＩインタフェース４０８を通じてのみアクセス可能であり、ＡＰＩ４０４を通じてはアクセスできない。本発明の代替の実施形態では、トレーナを開発し、必要に応じてシミュレーション要求用に導入することができる。トレーナは、実コントローラで実行している同じソフトウェアをホストするのに使用されるＰＣ又は他の共通ハードウェアプラットフォームとすることができるが、固有Ｉ／Ｏに対するサポートがないなどの非推奨機能又は冗長機能を有する。
【００５３】
様々なコマンドが、シミュレータを構成するのに使用される。これらのコマンドは、シミュレーションされるコントローラのモデル形式（例えば、ＧＥ  Ｍａｒｋ  ＩＶデジタル制御システム（ＤＣＳ）又はＧＥ  Ｍａｒｋ  Ｖｉｅ  ＤＣＳ、その他）の選択、実行モード（例えば、実時間−スケジュールクロックがフレーム速度で動作する、或いは可能最速−ブロックウェア４１２が緊密なループにおいてノーズトゥテールで実行される）の選択、又はディレクトリィ（例えば、シンボルテーブルファイル、エラーログ、その他の配置）の構成を含むことができる。シンボルテーブルは、利用可能であれば開始時にロードすべきである。シンボルテーブルを必要とする全てのＡＰＩコマンドは、テーブルがロードされていない場合にはエラー出力すべきである。ランコマンドでは、スケジューリングクロックソース４２２が、ブロックウェアエンジン４１２に接続され、最後に中断したシミュレーション時間を拾い出す。ストップコマンドでは、スケジューリングクロックソース４２２が、ブロックウェアエンジン４１２から分離されて、シミュレーション時間を効果的に休止する。シングルステップモードでは、アプリケーションコードの１つのフレームが実行されて休止する。
【００５４】
図4に示された例示的な実施形態では、エミュレータは、アドレス（すなわちトークン）ではなく名称によって変数を保存し復元することができ、主要アプリケーションコードの変更にまたがったコントローラの状態情報の保存及び復元を可能にする。本発明の例示的な実施形態では、エミュレータは、ｖａｒｄｅｆ４０６全体を未加工の形式で取り込むことによってコントローラの状態を保存し、次いで、この取り込んだものを特定のシンボルテーブルファイルと関連づけて、高速の保存時間を可能にすることになる。
【００５５】
バックトラック操作は、アプリケーションコードの大きな変更がない（すなわち、ｖａｒｄｅｆ４０６が変更されない）場合のコントローラ内の状態条件の初期化である。バックトラック操作は、未加工の保存された値でｖａｒｄｅｆ４０６を上書きすることによって完了することができる。復元動作は、アプリケーションコードの大きな変更が、復元前に生じている可能性があることを示す。ｖａｒｄｅｆ４０６レイアウトは変更されている可能性があるので、ｖａｒｄｅｆ４０６のバルクコピーをすることは十分ではない。ｖａｒｄｅｆ４０６を所要の状態に復元する最良の機会を確保するために、エミュレータは、（１）ｖａｒｄｅｆ４０６をゼロにし、（２）現在のシンボルテーブル及び要求された復元シンボルテーブルをロードし、（３）両シンボルテーブル中のあらゆる信号に対して、要求された復元シンボルテーブル中に見つけられた値及びトークンを使用して変数を初期化する。
【００５６】
シミュレーションＧＵＩ４２４は、シミュレーションエグゼクティブのサードパーティ開発者向けの基準設計とすることができる。シミュレーションＧＵＩ４２４はまた、エミュレータによりサポートされるあらゆるＡＰＩ呼出の動作例を含む。シミュレーションＧＵＩのより詳細な説明は、図5を参照して以下に提供される。
【００５７】
図5は、本発明の例示的な実施形態によるシミュレーションエグゼクティブユーザインタフェース５０２を示す。シミュレーションエグゼクティブユーザインタフェース５０２は、シミュレーションシステムに対するＡＰＩの全てを制御するグラフィカルユーザーインターフェース（ＧＵＩ）である。シミュレーションエグゼクティブユーザインタフェース５０２は、使い勝手を良くするための種々のメニューアイテムを含むことができる。これらのメニューアイテムは、様々なツールバー／セットアップメニューに分けることができ、該メニューが拡張されて、シミュレーションメニュー５０４、非実時間サブメニュー５０６、監視ウインドウ５０８、その他のようなネストされたサブメニューを含むことができる。図5に示すヘルプサブメニューなどの当業者には容易に理解される追加のサブメニューも含むことができる。
【００５８】
図5の例示的な実施形態では、種々のツールバーメニューは、限定ではないが、新しいシミュレーションを生成するための「Ｎｅｗ（新規）」メニューアイテム、最新のシミュレーションを現在の状態で保存する「Ｓａｖｅ（保存）」メニューアイテム、既存のシミュレーションをロードするための「Ｏｐｅｎ（オープン）」メニューアイテム、その他を含む、通常ウインドウズＧＵＩ上に存在する基本アイテムへのアクセスを提供することができる。ツールバーメニューはまた、実行、終了、一時停止、再開、保存及び復元など、図5の例示的なシミュレーションエグゼクティブインタフェース５０２に示されていないコマンドを含むことができる。ツールバーメニューはまた、ユーザがシミュレーション実行を構成し或いは既存（又は前に記憶されている）シミュレーションを分析するために種々の設定オプション及びコマンドにアクセスするようにカスタマイズすることができる。調整することができる実施可能な設定の実施例は、時間ステップ、ステップコマンドによる実行制御、並びに全てのプロセスの一時停止及び再開である。
【００５９】
図5の例示的な実施形態では、シミュレーションサブメニュー５０４は、Ｃｒｅａｔｅ  Ｎｅｗ（新規作成）、Ｏｐｅｎ  Ｅｘｉｓｔｉｎｇ（既存のものを開く）、その他などのメニューアイテム（又はボタン）を含む。Ｃｒｅａｔｅ  Ｎｅｗ（新規作成）アイテムは、ＧＵＩを開き、シミュレーションにおいて構成されようとしているデバイス名、ＨＭＩと共に各デバイスに割り当てられるネットワークアドレス、ユニットデータハイウェイ（ＵＤＨ）、及びプラントデータハイウェイ（ＰＤＨ）ネットワークアドレスからなる新規のシミュレーション構成を作成する。ＵＤＨは、全てのパワープラントデバイス間でデータを転送するためにパワープラントで使用されるデータ配信ＴＣＰ／ＩＰプロトコルである。ＰＤＨは、顧客ネットワークをパワープラントハードウェアに接続する配信ＴＣＰ／ＩＰプロトコルである。代替の実施形態では、Ｃｒｅａｔｅ  Ｎｅｗ（新規作成）又はＯｐｅｎ  Ｅｘｉｓｔｉｎｇ（既存のものを開く）ＧＵＩアイテムはまた、自動構成ネットワークアドレスチェックボックスを含み、ユーザが特定ＮＩＣ（ネットワークインタフェースカード）カードに対して上述のアドレスの全てを割り当てることを可能にすることができる。シミュレーションサブメニュー５０４はまた、定期的に監視されることになるシミュレーションシステムに接続された各デバイスについての状態表示を有することができる。本発明の例示的な実施形態では、状態表示は、デバイスが始動していないときは赤状態、デバイスが実行中のときは緑状態を示すことになる。
【００６０】
図５に示されていない追加コマンドボタンをシミュレーションサブメニュー５０４に追加し、シミュレーションシステムに付随する全てのプロセスを開始させる「Ｓｔａｒｔ  Ｓｉｍｕｌａｔｉｏｎ（シミュレーション開始）」、シミュレーションシステムに付随する全てのウインドウ及びプロセスを消失させる「Ｃｌｏｓｅ  Ｓｉｍｕｌａｔｉｏｎ（シミュレーション終了）」、エミュレータのプロセスを繰り返す「Ｒｅｂｏｏｔ  Ｃｏｎｔｒｏｌｌｅｒｓ（コントローラ再起動）」、ＧＵＩを閉じてユーザをメインスクリーンに戻す「Ｃａｎｃｅｌ（キャンセル）」、ユーザによって入力された構成を保存する「Ｓａｖｅ（保存）」、以前から存在していた設定ファイルから構成を復元する「Ｒｅｓｔｏｒｅ（復元）」などの追加の機能を提供することができる。当業者には明らかなように他のコマンドも実装することができる。
【００６１】
対話型シミュレーションサブメニューは、保存、一時停止、復元及びステップ機能に対するメニューアイテムを含む追加のサブメニューにアクセスすることを可能にする。本発明の例示的な実施形態では、非実時間サブメニュー５０６によって、ユーザがスライドバー又は他のインタフェース（例えば、ボタン、テキストボックス、その他）の使用を通じてシミュレーションのステップサイズを増減可能にすることができる。上記に加えて、非実時間サブメニュー５０６は、経路／配置及びシミュレーションに関するユーザによって追加されたあらゆるコメントと共に、全ての保存された状態の名称及びテキストを記憶することになるリストボックスのような機能を含むことができる。図５の例示的なシミュレーションエグゼクティブはまた、検証ツールへの直接リンクを有し、これはある実施形態ではスタンドアローンプログラムとすることができる。
【００６２】
図５に示すように、「監視ウインドウ」サブメニュー５０８も含めることができ、ユーザがモデル及び制御システム変数を観測したいかどうかをユーザに促すブラウズボタンを有することができる。モデル及び制御システム変数は、コンボ／リストボックス機能で分離することができ、ソースから変数を容易に観測する機能をユーザに与えることができる。コンボ／リストボックスは、分割されたＧＵＩインタフェースであり、付随するプロセスからの全ての変数をユーザ画面上の別個の行でエンドユーザが見ることを可能にする。この機能に加えて、監視ウインドウサブメニュー５０８は、書き込まれていないあらゆるアナログ（実）値の値を変更し、コントローラ内の何らの論理を強制する能力を提供することができる。更に、監視ウインドウサブメニュー５０８はまた、監視リスト中の全ての信号を選択する能力を提供し、生データをプロットするオプションを有することができる。
【００６３】
これらの発明が上述の説明及び添付図面に提示された教示の利点を有することに関連した、多くの修正形態及び本明細書で記載された本発明の他の実施形態は、当業者であれば想起されるであろう。従って、本発明は開示された特定の実施形態に限定されず、修正形態及び他の実施形態は、添付の請求項の範囲内に含まれるものとする点は理解すべきである。本明細書では特定の用語が用いられているが、これらは、一般的な意味及び説明の意味で使用されており、限定を目的とするものではない。
【図面の簡単な説明】
【００６４】
【図１】本発明の例示的な実施形態による複雑な動的フィードバック制御システムのシミュレーション用のシステム。
【図２】本発明の例示的な実施形態によるシミュレーションのセットアップ及び実行に関するフローチャート。
【図３】本発明の例示的な実施形態による制御システムエミュレータと連携して動作する複数の構成要素を示す、シミュレーションソフトウェアの概略図。
【図４】本発明の例示的な実施形態による例示的な制御システムエミュレータ。
【図５】本発明の例示的な実施形態によるシミュレーションエグゼクティブユーザインタフェース。
【符号の説明】
【００６５】
１０２  オペレーティングシステム
１０４  エミュレートされるコントローラ
１０６  制御システム論理
１０８  ツールボックス
１１０  ＨＭＩ
１１２  共有メモリアクセス
１１４  シミュレーションソフトウェア／モデル
１１６  タイミング及び制御
１１８  データベース
２０２  ブロック
２０４  ブロック
２０６  ブロック
２０８  ブロック
２１０  ブロック
２１２  ブロック
２１４  ブロック
２１６  ブロック
２１８  ブロック
３０２  コントローラシミュレータＤＬＬ
３０４  ＡＳＰＥＮ／ＨＹＳＹＳ
３０６  制御システムエミュレータ
３０８  検証ツール
３１０  シミュレーションエグゼクティブ
３１２  モデリングソフトウェア
４０２  ツールボックス
４０６  ｖａｒｄｅｆ
４０８  ＳＤＩ
４１０  Ｐｃｏｄｅエキスパンダー
４１２  ブロックウェアエンジン
４１４  ライブラリー
４１６  ＥＧＤサービス
４２０  警告スキャナー
４２０  データ収集
４２２  スケジューラ
４２４  シミュレーションＧＵＩ
５０２  エグゼクティブユーザインタフェース
５０４  シミュレーションサブメニュー
５０６  非実時間サブメニュー
５０８  監視ウインドウサブメニュー
５１０  ヘルプサブメニュー
【図１】
2008170998.tif 000003
【図２】
2008170998.tif 000004
【図３】
2008170998.tif 000005
【図４】
2008170998.tif 000006
【図５】
2008170998.tif 000007