(57)【特許請求の範囲】
【請求項１】
仮想環境上で仮想プラントの機器を動作させる仮想プラントシミュレータが模擬ネットワークを介して接続された仮想プラントシミュレーションシステムにおいて、
前記模擬ネットワークに接続され、前記仮想プラントシミュレータへ出力する制御信号を生成するための制御値が格納された第１レジスタと、前記第１レジスタの制御値に基づいて演算した結果の前記制御信号を生成する第１制御ロジックが記憶された第１ロジック記憶部とを有する第１コントローラと、
前記模擬ネットワークに接続され、前記第１コントローラと同様に動作可能な第２コントローラと、
前記模擬ネットワークに接続された指令装置とを備え、
前記指令装置は、
前記第１コントローラより前記第１ロジック記憶部の前記第１制御ロジックと、指定されたブレイクポイントに対応する前記第１レジスタの制御値とをコピーする第１複製部と、
コピーされた前記第１制御ロジックを編集した第２制御ロジックが記憶された第２ロジック記憶部と、
前記第２ロジック記憶部の第２制御ロジックと、コピーした前記第１レジスタの制御値とを前記第２コントローラにコピーする第２複製部と、
起動した前記第２コントローラが前記ブレイクポイントから演算した演算結果と、動作中の前記第１コントローラが前記ブレイクポイントから演算した演算結果とを比較する比較部と、
前記比較部による比較の結果が予め設定した条件を満たす場合、前記仮想プラントシミュレータへの制御信号の出力を、前記第１コントローラから前記第２コントローラへ切り替える信号選択部と
を具備する仮想プラントシミュレーションシステム。
【請求項２】
前記制御信号の出力が前記第２コントローラへ切り替えられた後、前記第１コントローラを停止させる制御部を具備する請求項１に記載の仮想プラントシミュレーションシステム。
【請求項３】
データを保存するための保存部と、
指定されたブレイクポイントで前記第１コントローラと前記仮想プラントシミュレータの演算を停止させ、演算を停止したときの前記第１コントローラと前記仮想プラントシミュレータの状態のデータに名前を付けて前記保存部に保存する制御部と
を具備する請求項１に記載の仮想プラントシミュレーションシステム。
【請求項４】
前記第１コントローラからコピーした第１制御ロジックを編集して第２制御ロジックを生成する編集部を具備する請求項１に記載の仮想プラントシミュレーションシステム。
【請求項５】
前記第１および第２コントローラ、前記仮想プラントシミュレータからの入力信号に対して指令を出力する条件と出力先が対応して設定されたテーブルと、
入力信号に対して条件が整ったときに前記指令を前記出力先へ出力する制御部と
を具備する請求項１に記載の仮想プラントシミュレーションシステム。
【請求項６】
前記第１および第２コントローラのうち少なくとも仮想プラントを制御中のコントローラの演算状況をモニタリングする保守ツールを具備する請求項１に記載の仮想プラントシミュレーションシステム。
【請求項７】
仮想環境上で仮想プラントの機器を動作させる仮想プラントシミュレータと、前記仮想プラントシミュレータへ出力する制御信号を生成するための制御値が格納された第１レジスタと、前記第１レジスタの制御値に基づいて演算した結果の前記制御信号を生成する第１制御ロジックが記憶された第１ロジック記憶部とを有する第１コントローラと、前記第１コントローラと同様に動作可能な第２コントローラとに模擬ネットワークを介して接続された指令装置において、
前記第１コントローラより前記第１ロジック記憶部の前記第１制御ロジックと、指定されたブレイクポイントに対応する前記第１レジスタの制御値とをコピーする第１複製部と、
コピーされた前記第１制御ロジックを編集した第２制御ロジックが記憶された第２ロジック記憶部と、
前記第２ロジック記憶部の第２制御ロジックと、コピーした前記第１レジスタの制御値とを前記第２コントローラにコピーする第２複製部と、
起動した前記第２コントローラが前記ブレイクポイントから演算した演算結果と、動作中の前記第１コントローラが前記ブレイクポイントから演算した演算結果とを比較する比較部と、
前記比較部による比較の結果が予め設定した条件を満たす場合、前記仮想プラントシミュレータへの制御信号の出力を、前記第１コントローラから前記第２コントローラへ切り替える信号選択部と
を具備する指令装置。
【請求項８】
仮想環境上で仮想プラントの機器を動作させる仮想プラントシミュレータと、前記仮想プラントシミュレータへ出力する制御信号を生成するための制御値が格納された第１レジスタと、前記第１レジスタの制御値に基づいて演算した結果の前記制御信号を生成する第１制御ロジックが記憶された第１ロジック記憶部とを有する第１コントローラと、前記第１コントローラと同様に動作可能な第２コントローラと指令装置とを模擬ネットワークを介して接続した仮想プラントシミュレーションシステムにおける仮想プラントシミュレーション方法において、
前記指令装置が、前記第１コントローラより前記第１ロジック記憶部の前記第１制御ロジックと、指定されたブレイクポイントに対応する前記第１レジスタの制御値とをコピーし、
前記指令装置が、コピーした前記第１制御ロジックを編集した第２制御ロジックを記憶し、
記憶した第２制御ロジックとコピーした前記第１レジスタの制御値とを前記第２コントローラにコピーし、
起動した前記第２コントローラが前記ブレイクポイントから前記第１レジスタの制御値を用いて演算した演算結果と、動作中の前記第１コントローラが前記ブレイクポイントから演算した演算結果とを前記指令装置が比較し、
比較の結果が予め設定した条件を満たす場合、前記仮想プラントシミュレータへの制御信号の出力を、前記指令装置が、前記第１コントローラから前記第２コントローラへ切り替える仮想プラントシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、仮想プラントシミュレーションシステム、指令装置、仮想プラントシミュレーション方法に関する。
【背景技術】
【０００２】
発電監視制御装置のエンジニアリング、設計、試験を実施するため、仮想的な発電所（プラント）と、これを監視制御する模擬発電監視制御装置とを組合せて総合組合せ試験を行う仮想プラントシミュレーションシステムがある。
【０００３】
従来の仮想プラントシミュレーションシステムは、仮想的な発電所の運転を停止させた状態から定格運転に至るまでの任意のポイント（例えばタービンの各起動状態、ターニング、ヒートソーク、定格速度、初負荷、２５％負荷、５０％負荷、７５％負荷、１００%負荷等）で、模擬発電監視制御装置の制御ロジックの演算状態とプラントの入出力値がバランスしたコンディションのデータを保存することが可能であり、保存したコンディションデータを模擬発電監視制御装置が読み込むことで、任意の状態を復元することができる。
【０００４】
しかし、従来の仮想プラントシミュレーションシステムの場合、各コンディションを保存するためには、プラントの起動から定格出力に至るまでの運転を、実際のプラントの運転と同等の時間をかけて行う必要があり、多くの時間を必要とする。
【０００５】
また、仮想発電監視制御装置の制御ロジックを、あるポイントから修正した場合は、その都度、プラントを再起動させて時間をかけて運転を行ってコンディションのデータを作成する必要があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１３８５２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の仮想プラントシミュレーションシステムの場合、模擬発電監視制御装置とプラントモデルを組合せて、実際の発電所の動作を模擬する際、模擬発電所監視制御装置内部のレジスタ状態とプラントモデルのレジスタ状態が常にバランスがとれていれば、任意のコンディションに復元することが可能である。
【０００８】
しかしながら、模擬発電監視制御装置の制御ロジックの一部または全てを修正する場合は、模擬発電監視制御装置内部のレジスタの配置が変わってしまうことから、プラントモデルのレジスタ状態とのバランスがとれなくなり、せっかく保存したコンディションのデータが使えず、試験をやり直すしかなかった。
【０００９】
本発明が解決しようとする課題は、模擬監視制御装置のロジックを任意のポイントで修正する場合に模擬監視制御装置内部のレジスタの状態を継承することで、模擬監視制御装置のレジスタの状態とプラントモデルのレジスタ状態とのバランスを維持し、任意のポイントで運転を一時停止させた状態からの再起動の手続きを必要とせず、任意のポイントで修正した制御ロジックにより運転を再開することができる仮想プラントシミュレーションシステム、指令装置、仮想プラントシミュレーション方法を提供することにある。
【課題を解決するための手段】
【００１０】
実施形態の仮想プラントシミュレーションシステムは、仮想環境上で仮想プラントの機器を動作させる仮想プラントシミュレータが模擬ネットワークを介して接続された仮想プラントシミュレーションシステムである。仮想プラントシミュレーションシステムは模擬ネットワークに接続され、仮想プラントシミュレータへ出力する制御信号を生成するための制御値が格納された第１レジスタと、第１レジスタの制御値に基づいて演算した結果の制御信号を生成する第１制御ロジックが記憶された第１ロジック記憶部とを有する第１コントローラと、模擬ネットワークに接続され、第１コントローラと同様に動作可能な第２コントローラと、模擬ネットワークに接続された指令装置とを備える。指令装置は、第１複製部、第２ロジック記憶部、第２複製部、比較部、信号選択部を備える。第１複製部は第１コントローラより第１ロジック記憶部の第１制御ロジックと、指定されたブレイクポイントに対応する第１レジスタの制御値とをコピーする。第２ロジック記憶部にはコピーされた第１制御ロジックを編集した第２制御ロジックが記憶される。第２複製部は第２ロジック記憶部の第２制御ロジックと、コピーした第１レジスタの制御値とを第２コントローラにコピーする。比較部は起動した第２コントローラがブレイクポイントから演算した演算結果と、動作中の第１コントローラがブレイクポイントから演算した演算結果とを比較する。信号選択部は比較部による比較の結果が予め設定した条件を満たす場合、仮想プラントシミュレータへの制御信号の出力を、第１コントローラから第２コントローラへ切り替える。
【図面の簡単な説明】
【００１１】
【図１】実施形態の仮想プラントシミュレーションシステムの構成を示す図である。
【図２】仮想プラントシミュレーションシステムにおけるシミュレータの構成を示す図である。
【図３】仮想プラントシミュレーションシステムにおけるコントローラとコマンダの構成を示す図である。
【図４】コマンダと複数のコントローラの内部構成を示す図である。
【図５】仮想プラントシミュレーションシステムの動作を示すフローチャートである。
【図６】制御ロジックの編集画面の一例を示す図である。
【図７】第２実施形態（接続リストの変形例）を示す図である。
【図８】第３実施形態（保存部の追加）を示す図である。
【図９】第４実施形態（簡易ノードへの置き換え）を示す図である。
【図１０】第４実施形態においてMicrosoft Excelで作成した簡易ノードの一例を示す図である。
【図１１】第５実施形態（トラップ機能の追加）を示す図である。
【図１２】第５実施形態においてコントローラとＩＥＳとコマンダの接続例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、実施形態を詳細に説明する。
【００１３】
（第１実施形態）  
図１は第１実施形態の仮想プラントシミュレーションシステムを示す図である。  
図１に示すように、第１実施形態の仮想プラントシミュレーションシステムは、ワークステーションなどの高性能なコンピュータの仮想環境上に、複数の監視制御端末２０と、統合保守端末３０と、サーバ端末４０と、制御装置としてのコントローラ５０とが相互に通信可能に接続された制御ネットワーク７０と、この制御ネットワーク７０に接続された模擬ネットワーク８０と、この模擬ネットワーク８０に相互に通信可能に接続された複数のコントローラ５０（図面ではＣＮＴ１、ＣＮＴ２…ＣＮＴｎ）、仮想的な発電所（仮想発電プラント）などを模擬する模擬装置としてのシミュレータ１０および指令装置としてのコマンダ６０を備える。
【００１４】
すなわちこの仮想プラントシミュレーションシステムは仮想環境上で仮想プラントの機器を動作させるシミュレータ１０が模擬ネットワーク８０を介して接続されたものである。なお模擬ネットワーク８０と制御ネットワーク７０とは実際のネットワークと同様にそれぞれ二重化されている。
【００１５】
監視制御端末２０はオペレータが仮想プラントの運用指令を行う端末、例えばヒューマンインターフェース端末であり、以下ＨＭＩ１、ＨＭＩ２…ＨＭＩｍと称す。
【００１６】
統合保守端末３０は例えば統合エンジニアリングステーション３０であり、以下ＩＥＳ３０と称す。ＩＥＳ３０はオペレータが保守作業を行う端末であり、例えばコントローラ５０に記憶されている制御ロジックの編集操作や仮想発電プラントの動作確認時の起動操作、停止操作、所望のブレイクポイント（トラッキングポイント）の指示操作などを行う。
【００１７】
図２はシミュレータ１０の構成を示す図である。  
図２に示すように、シミュレータ１０は発電プラントモデル１００、共有メモリ１０７、伝送サーバ１１２を有する。
【００１８】
発電プラントモデル１００は、アクチュエータモデル１０１、プラント物理モデル１０２、計測器モデル１０３などの演算実行モジュールを有する。発電プラントモデル１００の演算実行結果（計算結果および計算パラメータなど）のデータは共有メモリ１０７に記憶および反映される。
【００１９】
共有メモリ１０７には、計算用パラメータ１０８、物理モデル入出力値１０９、計測器モデル入出力値１１０、アクチュエータ入出力値１１１などが記憶される。
【００２０】
伝送サーバ１１２は、コマンダ６０から送信された各指令を受信し、発電プラントモデル１００に渡す。発電プラントモデル１００は伝送サーバ１１２から伝達された指令に応じた動作、つまりモデルの実行、停止を行う。
【００２１】
シミュレータ１０は、シミュレーション動作を実行中、予め選択した共有メモリ１０７の各入出力値（データ）を、伝送サーバ１１２を通じてコマンダ６０とやりとりし、発電プラントモデル１００に基づく仮想発電プラントを稼働させる。またシミュレータ１０は、コマンダ６０からの指令に基づき仮想発電プラントを起動、運転および停止させる。
【００２２】
シミュレータ１０と各コントローラ５０はコマンダ６０から入力された「実行」指令に基づき動作する。シミュレータ１０およびコントローラ５０は、入力された「実行」指令により、仮想発電プラントのシミュレーションと制御演算を開始し、これによりコントローラ５０−コマンダ６０間、シミュレータ１０−コマンダ６０間で入力信号および出力信号を送受信する。
【００２３】
コマンダ６０により「停止」が指令された場合は、接続されている全てのコントローラ５０とシミュレータ１０は演算を停止し、その状態を維持する。
【００２４】
コマンダ６０は、予め接続リスト記憶部６６に記憶した接続リスト６６ａ、６６ｂ（図３参照）に従い、コントローラ５０とシミュレータ１０との信号接続を行い、仮想発電プラントの動作模擬を行う。
【００２５】
図３に示すように、接続リスト記憶部６６には、接続リスト６６ａ、６６ｂが記憶されている。接続リスト６６ａ、６６ｂには、ＦＲＯＭの欄とＴＯの欄が対応して設けられている。
【００２６】
接続リスト６６ａは、コントローラ（ＣＮＴ１、ＣＮＴ２）５０から出力された出力信号を他のコントローラ（ＣＮＴｎ）５０およびシミュレータ（Ｐ）１０への入力信号として送信するための紐付け用のリストである。
【００２７】
ＦＲＯＭの欄には、コントローラ（ＣＮＴ１、ＣＮＴ２）５０の識別情報であるノード番号「１」「２」などの欄とコントローラ（ＣＮＴ１、ＣＮＴ２）５０からの出力信号の変数（レジスタの値）の欄が設けられており、それぞれノード番号と変数（レジスタの値）が予め設定されている。
【００２８】
ＴＯの欄には、コントローラ（ＣＮＴｎ）５０とシミュレータ（Ｐ）１０のノード番号「ｎ」、「Ｐ」の欄とコントローラ（ＣＮＴｎ）５０とシミュレータ（Ｐ）１０への入力信号の変数（レジスタの値）の欄が設けられており、それぞれの欄にノード番号と変数（レジスタの値）が予め設定されている。
【００２９】
接続リスト６６ｂは、コントローラ（ＣＮＴｎ）５０およびシミュレータ（Ｐ）１０から出力された出力信号を他のコントローラ（ＣＮＴ１、ＣＮＴ２）５０への入力信号として送信するための紐付け用のリストである。
【００３０】
ＦＲＯＭの欄には、コントローラ（ＣＮＴｎ）５０およびシミュレータ（Ｐ）１０のノード番号「ｎ」、「Ｐ」の欄とコントローラ（ＣＮＴｎ）５０およびシミュレータ（Ｐ）１０からの出力信号の変数（レジスタの値）の欄が設けられており、それぞれの欄にノード番号と変数（レジスタの値）が予め設定されている。
【００３１】
ＴＯの欄には、コントローラ（ＣＮＴ１、ＣＮＴ２）５０のノード番号「１」、「２」の欄とコントローラ（ＣＮＴ１、ＣＮＴ２）５０への入力信号の変数（レジスタの値）の欄が設けられており、それぞれの欄にノード番号と変数（レジスタの値）が予め設定されている。
【００３２】
この場合、制御部６７は、予め設定している接続リスト６６ａ、６６ｂに従い、信号の出力側のノードと入力側のノードとの間で信号値を受け渡すことで、必要な信号の接続を行う（図４参照）。
【００３３】
ここで、保守を主としたコマンダ６０と複数のコントローラ５０の内部構成について説明する。なおここでは複数のコントローラ５０を常用系と待機系に分けて説明する。説明を分かり易くするために常用系のコントローラ５０をコントローラ５０Ａとし、待機系のコントローラ５０をコントローラ５０Ｂとする。
【００３４】
図４に示すように、コントローラ５０Ａは、第１コントローラであり、演算部５１Ａ、第１レジスタとしてのレジスタ５２Ａ、ツールインターフェース５３Ａ、ロジック記憶部５５Ａを有する。
【００３５】
ロジック記憶部５５Ａには、シミュレータ１０に与える制御信号を生成するための制御ロジックが書き換え可能に記憶されている。レジスタ５２Ａには、シミュレータ１０へ出力する制御信号を生成する元データとなる制御値が格納されている。
【００３６】
演算部５１Ａは、ロジック記憶部５５Ａの制御ロジックを読み込み、レジスタ５２Ａの制御値を入力とした制御ロジックの演算を実行し、演算結果の制御信号を生成しシミュレータ１０へ出力する。
【００３７】
ツールインターフェース５３Ａは、演算部５１Ａによる演算結果をＩＥＳ３０へ出力し、ＩＥＳ３０で動作する保守プログラム（保守ツール）上でモニタリングさせる。演算部５１Ａによる演算結果はコマンダ６０へも出力される。
【００３８】
またコントローラ５０Ｂは、コントローラ５０Ａと同様に動作可能な第２コントローラであり、演算部５１Ｂ、第２レジスタとしてのレジスタ５２Ｂ、ツールインターフェース５３Ｂ、ロジック記憶部５５Ｂを有する。
【００３９】
ロジック記憶部５５Ｂには、シミュレータ１０に与える制御信号を生成するための制御ロジックが書き換え可能に記憶されている。レジスタ５２Ｂには、シミュレータ１０へ出力する制御信号を生成する元データとなる制御値が格納されている。
【００４０】
演算部５１Ｂは、ロジック記憶部５５Ｂの制御ロジックを読み込み、レジスタ５２Ｂの制御値を入力とした制御ロジックの演算を実行し、演算結果の制御信号を生成しシミュレータ１０へ出力する。
【００４１】
ツールインターフェース５３Ｂは、演算部５１Ｂによる演算結果をＩＥＳ３０へ出力し、ＩＥＳ３０で動作する保守ツール上でモニタリングさせる。演算部５１Ｂによる演算結果はコマンダ６０へも出力される。
【００４２】
コマンダ６０は、第１複製部としてのコピー部６１、第１ロジック記憶部としてのロジック記憶部６２、編集部６３、第２ロジック記憶部としてのロジック記憶部６４、第２複製部としてのコピー部６５、接続リスト記憶部６６、制御部６７、信号選択部６８、比較部６９および入力信号、出力信号、指令などのポートを有する。
【００４３】
コピー部６１は、コントローラ５０Ａよりロジック記憶部５５Ａの旧制御ロジックと、指定ブレイクポイントに対応するレジスタ５２Ａの制御値とをコピー（複製）し、ロジック記憶部６２に記憶する。
【００４４】
編集部６３は、ロジック記憶部６２にコピーされた旧制御ロジックを読み出し、ＩＥＳ３０の編集画面８１（図６参照）での操作で、旧制御ロジックを編集し第２制御ロジック（以下「新制御ロジック」と称す）を作成し、ロジック記憶部６４に記憶する。
【００４５】
すなわちロジック記憶部６４にはコピー部６１によりロジック記憶部６２にコピーされた旧制御ロジックを編集部６３にて編集した新制御ロジックが記憶される。
【００４６】
コピー部６５は、ロジック記憶部６４の新制御ロジックと、コピーした指定ブレイクポイントに対応するレジスタ５２Ａの制御値とをコントローラ５０Ｂにコピーする。
【００４７】
ここでのコピーとは新制御ロジックをコントローラ５０Ｂのロジック記憶部５５Ｂに上書きし、レジスタ５２Ａの制御値をコントローラ５０Ｂのレジスタ５２Ｂに上書きすることをいう。
【００４８】
制御部６７は、ＩＥＳ３０のオペレータの「起動」、「実行」、「停止」などの操作により、対応する指令をコントローラ５０Ａ、５０Ｂおよびシミュレータ１０へ送信し、コントローラ５０Ａ、５０Ｂおよびシミュレータ１０に実行させる。例えば稼働中の全ての機器の動作停止の指令（コマンド）を出力することで、模擬ネットワーク８０を介して接続されている全てのコントローラ５０Ａ、５０Ｂ、シミュレータ１０の動作や演算を停止させ、その状態を維持する。
【００４９】
比較部６９は、制御部６７からの起動指令で起動したコントローラ５０ＢがＩＥＳ３０から指定されたブレイクポイントから演算した演算結果（出力信号）と、動作中のコントローラ５０Ａがブレイクポイントから演算した演算結果（出力信号）とを比較する。
【００５０】
信号選択部６８は、比較部６９による演算結果（出力信号）の比較結果が予め設定した条件（例えば制御ロジックの出力値が一致など）を満たす場合、シミュレータ１０への制御信号の出力を、コントローラ５０Ａからコントローラ５０Ｂへ切り替える。
【００５１】
次に、図５のフローチャートを参照してこの仮想プラントシミュレーションシステムの動作を説明する。  
この例では、常用系のコントローラ５０Ａと待機系のコントローラ５０Ｂとの一組で制御ロジックの修正を行いながら仮想発電プラントの運転を継続可能なコントローラとしての機能を実現する。
【００５２】
制御ロジックの修正が発生した際、制御部６７は制御ロジックコピー指令をコピー部６１に出力する。これにより、コピー部６１は、常用系のコントローラ５０Ａのロジック記憶部５５Ａに記憶されている制御ロジックを読み出し、模擬ネットワーク８０を通じてコマンダ６０内のロジック記憶部６２に旧制御ロジックとして記憶する。つまり常用系の制御ロジックをコピーする（図５のステップＳ１０１）。
【００５３】
次に、コピーした制御ロジックのロジック修正を実施するため、オペレータがＩＥＳ３０から編集部６３を起動し、図６に示すような編集画面８１を表示する。編集画面８１にはシート選択ボタン８２と、旧制御ロジック用の表示シート８３と、コピーした旧制御ロジックの編集により生成される新制御ロジック用の表示シート８４とが表示される。
【００５４】
編集画面８１において、シート選択ボタン８２を操作して、ロジック記憶部６２の旧制御ロジックを指定することで旧制御ロジックが表示シート８３に表示される。
【００５５】
ここで、旧制御ロジックをコピー操作して、シート選択ボタン８２を操作して表示シート８４の側をアクティブに切り替えた後、ペースト操作すると、旧制御ロジックが表示シート８４に貼り付けられて表示されるので、以降、表示シート８４の制御ロジックを新たな制御ロジックとして編集可能になる（ステップＳ１０２）。
【００５６】
編集画面８１の例は、「Dw002」という信号の入力線を削除して新たな制御ロジックを生成した例である。
【００５７】
この際、編集部６３は、演算を行う際に必要となる参照レジスタ（入力値）と演算結果を格納するレジスタ（出力値）を新旧それぞれの制御ロジックに割り付ける。
【００５８】
例えば制御ロジックのホールド信号、積分器およびタイマーの値などのように演算結果が保持されるケースは、常用系のレジスタ５２Ａから待機系のレジスタ５２Ｂにトラッキングを行うレジスタ領域を割り付ける（例えばＴＤ１２３４）。
【００５９】
編集後、オペレータが保存操作を行うことで、新制御ロジックがロジック記憶部６４に記憶される。
【００６０】
新制御ロジックがロジック記憶部６４に記憶された後、修正した制御ロジックの確認のため、オペレータがＩＥＳ３０からトラッキングポイントを指定して（ステップＳ１０３）、待機系のコントローラ５０Ｂに対する起動操作を行うと、制御部６７は新制御ロジックコピー指令をコピー部６５に出力する。
【００６１】
新制御ロジックコピー指令を受けたコピー部６５は、トラッキング用のレジスタ領域に割り付けた信号を、トラッキングして常用系の演算結果を待機系のレジスタ５２Ｂに上書きする。なおトラッキングとは、参照元のレジスタの値をコピー先のレジスタに同期（追従）させることである。
【００６２】
このため、待機系のコントローラ５０Ｂにおいて制御上重要なホールド信号、積分器、タイマーなどの値が、仮想発電所（発電プラントモデル１００）の状態とバランスされる。
【００６３】
次に、制御部６７からコピー部６５と待機系のコントローラ５０Ｂに対して起動指令が出力される。すると、コピー部６５は、ロジック記憶部６４に記憶されている修正後の新制御ロジックを待機系のコントローラ５０Ｂのロジック記憶部５５Ｂへ書込む（コピーする）（ステップＳ１０４）。
【００６４】
また制御部６７から起動指令を受けたコントローラ５０Ｂでは、演算部５１Ｂが、ロジック記憶部５５Ｂから新制御ロジックを読み出す。そして演算部５１Ｂは指定されたトラッキングポイントに対応するレジスタ５２Ｂの値を、読み出した新制御ロジックに入力して演算を開始する（ステップＳ１０５）。
【００６５】
以降、常用系のコントローラ５０Ａと待機系のコントローラ５０Ｂとが共に動作、つまり二重化動作状態となる。
【００６６】
接続リスト記憶部６６の接続リストからの入力信号は、常用系／待機系の両コントローラに同じ信号が入力される。なおシミュレータ１０に対するコントローラとしての制御信号は、信号選択部６８により、常用系のコントローラ５０Ａの制御信号が選択され、常用系のコントローラ５０Ａによる仮想発電プラントの運転が継続される。
【００６７】
一方、常用系のコントローラ５０Ａが旧制御ロジックで演算を実行した結果と、待機系のコントローラ５０Ｂが新制御ロジックで演算を実行した結果は、それぞれのコントローラの出力信号としてコマンダ６０に入力されるので、これら出力信号を比較部６９が取り込み比較することで（ステップＳ１０６）、差分を求め、制御部６７に出力する。
【００６８】
制御部６７は、比較部６９から受け取った差分を予め設定されている条件と照合し、動作の健全性に問題があるか否かを判定する（ステップＳ１０７）。
【００６９】
この判定の結果、差分が条件と合致せず、動作の健全性に問題があると判定された場合、つまりコントローラの切り替えがＯＫではない場合（ステップＳ１０７のＮｏ）、制御部６７は、待機系のコントローラ５０Ｂに対して「停止」指令を出力し、待機系のコントローラ５０Ａを停止させる（ステップＳ１０８）。
【００７０】
一方、判定の結果、差分が条件と合致し、動作の健全性に問題がないことが確認され、コントローラの切り替えがＯＫと判定された場合（ステップＳ１０７のＹｅｓ）、制御部６７は、シミュレータ１０への制御信号の出力を、コントローラ５０Ａからコントローラ５０Ｂへ切り替えるよう信号選択部６８へ指示し、信号選択部６８はこの指示に従いシミュレータ１０への制御信号の出力を、コントローラ５０Ａからコントローラ５０Ｂへ切り替える。
【００７１】
制御信号の出力を切り替えた後、制御部６７は、常用系のコントローラ５０Ａに対して「停止」指令を出力し、常用系のコントローラ５０Ａを停止させる（ステップＳ１０９）。これにより待機系のコントローラ５０Ｂの制御信号でシミュレータ１０による仮想発電プラントの運転が継続される。
【００７２】
このように第１実施形態によれば、コントローラ５０Ａによる仮想発電プラントの監視制御の総合組合せ試験を実施する上で、あるブレイクポイントにおいてコントローラ５０Ａの制御ロジックの修正が必要となった場合に、制御を継続したまま、制御ロジックの変更が可能となり、ブレイクポイントにおけるコントローラ５０Ａのレジスタ５２Ａの値と新制御ロジックとのバランスを維持しつつ試験の継続が可能となると共に、仮想発電所を構成するための各種リソースを削減することができる。
【００７３】
次に、図７を参照して第２実施形態を説明する。  
この第２実施形態は、図３に示した接続リスト６６ａ、６６ｂの変形例であり、図７に示すように、接続リスト６６ａには、例えばＦＲＯＭのノード１の変数の欄に「１２３．４」、ＦＲＯＭのノード２の変数の欄に「ＯＮ」などの固定値が設定されている。接続リスト６６ｂには、例えばＦＲＯＭのノード１の変数の欄に「２３４．５」、ＦＲＯＭのノード２の変数の欄に「ＯＦＦ」などの固定値が設定されている。
【００７４】
この場合、制御部６７は、予め設定している接続リスト６６ａ、６６ｂに従い、信号値および固定値を受け渡すことで、必要な信号の接続を行う。
【００７５】
この第２実施形態によれば、接続リスト６６ａ、６６ｂに固定値を設定しておくことで、仮想発電所を構成するコントローラ５０とシミュレータ１０との間での入出力信号のやり取りを少なくできる。
【００７６】
次に、図８を参照して第３実施形態を説明する。  
この第３実施形態は、図７に示した第２実施形態の応用例であり、図８に示すように、コマンダ６０に保存部７２を備える。保存部７２には、全てのコントローラ５０とシミュレータ１０の演算状態のデータが保存される。制御部６７が発行する指令として「保存」指令と「復元」指令を追加する。
【００７７】
コマンダ６０では、制御部６７は指定されたブレイクポイントでコントローラ５０とシミュレータ１０の演算を停止させ、演算を停止したときのコントローラ５０とシミュレータ１０の状態のデータに自動的に名前を付与して保存部７２に保存する。
【００７８】
この第３実施形態では、コマンダ６０において制御部６７が「停止」指令を出力すると、全てのコントローラ５０とシミュレータ１０の演算が停止する。演算が停止すると、全てのコントローラ５０とシミュレータ１０の演算状態のデータ（停止時点のプラント機器の入出力信号や制御ロジック、レジスタのデータ：断面データ）がバッファメモリなどに維持される。
【００７９】
このように演算状態のデータが維持された状態で、制御部６７が「保存」指令を出力すると、バッファメモリに維持されている仮想発電所を運転中のコントローラ５０または全てのコントローラ５０とシミュレータ１０の演算状態のデータに自動的に名前が付けられて保存部６２に保存される。
【００８０】
その後、制御部６７が「復元」指令を出力すると、保存部６２から保存された演算状態のデータが選択されて、全てのコントローラ５０とシミュレータ１０の稼働状態を、指定した演算状態から復元することができる。
【００８１】
この第３実施形態によれば、仮想発電所を模擬するシミュレータ１０や仮想発電所の動作を監視制御するコントローラ５０を、仮想発電所の機器の起動から定格負荷運転までを模擬する過程で、例えばターニング、ヒートソーク、定格速度、初負荷、２５％負荷、５０％負荷、７５％、定格負荷などのブレイクポイントにおける重要なイベント状態を保存し復元できることから、コントローラ５０の制御ロジックの動作確認を、より効率的に繰り返し実施することができる。
【００８２】
次に、図９、図１０を参照して第４実施形態を説明する。  
図９に示すように、この第４実施形態は、上述した第３実施形態の複数のコントローラ（ＣＮＴ１，ＣＮＴ２…ＣＮｎ）５０のうち、一部のコントローラ（ＣＮＴ２）５０を簡易ノード９０に置き換えた例である。
【００８３】
簡易ノード９０は、さまざまなソフトウェア、開発言語により、作成することが可能であり、一例として、例えばVisual BasicやMicrosoft Office、C#、C++などの特定のプログラミング言語を有するソフトウェアで作成し構成する。
【００８４】
図１０にMicrosoft Excelで作成した簡易ノード９０の一例を示す。なおVisual Basic、Microsoft Office、Microsoft ExcelなどはMicrosoft社の商標である。
【００８５】
この簡易ノード９０は、コマンダ６０から伝送される入力信号をＥｘｃｅｌ接続Ｉ／Ｆ９１を介して、Ｅｘｃｅｌ上の帳票ファイルとして表形式で表示する。簡易ノード９０は、入力信号セルの数値に対して、Ｅｘｃｅｌ関数で演算処理を行い、出力信号セルに演算結果を出力する。
【００８６】
そして、簡易ノード９０は、Ｅｘｃｅｌ帳票上の出力変数エリアをＥｘｃｅｌ接続Ｉ／Ｆ９１を介してコマンダ６０へデータを送信する。
【００８７】
この第４実施形態によれば、コントローラ５０またはシミュレータ１０の一部または全てを簡易ノード９０に置き替えて、コントローラ５０、シミュレータ１０、ハードパネル模擬などを行うことができ、任意の信号に対する、信号設定、簡易応答、グラフ表示などが可能となるため、コントローラ５０のロジック動作の確認やエビデンス作成を容易に行うことができる。
【００８８】
次に、図１１、図１２を参照して第５実施形態を説明する。  
図１１に示すように、この第５実施形態は、第３実施形態の構成にトラップテーブル７３を付加した例を示す図である。
【００８９】
この第５実施形態の場合、コマンダ６０内に設けたトラップテーブル７３と制御部６７とでトラップ機能を構成する。
【００９０】
トラップテーブル７３には、監視信号のトラップ番号、ノード番号、変数、条件が対応して記憶されている。条件としては、判定式、閾値、指令が対応して設定されている。制御部は、トラップテーブル７３を参照して監視信号に対して条件が整ったときに、対応する指令をノードへ出力する。
【００９１】
すなわちトラップテーブル７３には、コントローラ５０、シミュレータ１０からの入力信号に対して指令を出力する条件と出力先が対応して設定されており、制御部６７は入力信号に対して条件が整ったときに指令を出力先へ出力する。
【００９２】
この第５実施形態では、コマンダ６０に監視信号が入力されたときに、制御部６７がトラップテーブル７３を参照することにより、条件に当てはまる指令を任意のノードに出力できるようになる。例えば制御部６７が「実行」指令を出力することで、各ノードより常に監視信号の値が送信されるようになる。
【００９３】
コマンダ６０では、制御部６７が、この監視信号をトラップ信号として、事前に設定している条件の判定式および閾値に従い条件が整ったか否かを判定し、条件が整った場合に事前に設定している「指令」を出力する。  
図１２はＩＥＳ３０とコントローラ５０とコマンダ６０との接続例を示す図である。
【００９４】
図１２に示すように、コントローラ５０は、演算部５１、レジスタ５２、ツールインターフェース５３、ロジック記憶部５５を有する。コントローラ５０の各部の機能は第１実施形態で説明した図４の構成の機能と同じである。
【００９５】
演算部５１はコマンダ６０からの指令に基づいてロジック記憶部５５から読み出した制御ロジックにレジスタ５２の値を入力して演算を実行する。
【００９６】
ＩＥＳ３０は、ツールインターフェース５３を介して、コントローラ５０の演算結果をモニタリングする。コマンダ６０が「演算機能のみ停止」の指令をコントローラ５０に出力することで、ＩＥＳ３０は停止直前の演算の入力出力状態をモニタリングすることができる。
【００９７】
（第５実施形態の効果）  
コントローラ５０が実時間で動作している場合、制御ロジックの構成ミスなどにより問題が発生しているケースでは、真因の特定に時間を要することがある。  
この第５実施形態によれば、例えば特定のトラップ（監視信号）が「真」となった場合に、コントローラ５０の一部または全部を「停止」させ、これと共にＩＥＳ３０がロジック状態をモニタリングすることで、監視信号が「真」となった真因を解析することが容易となる。
【００９８】
また、コマンダ６０にトラップ機能を設けたことで、仮想発電所を運転する際のそれぞれのブレイクポイントにおける信号をトラップし、「停止」、「保存」、「実行」指令を順番に出力することで、任意のブレイクポイント（例えばタービンの各起動状態、ターニング、ヒートソーク、定格速度、初負荷、２５％負荷、５０％負荷、７５％負荷、１００%負荷等）の状態を自動的で保存することが可能になる。
【００９９】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１００】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置などのストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体：electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばＣＤ−ＲＯＭ等の記録媒体やフラッシュメモリ、リムーバブルメディア：Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【０１０１】
１０…シミュレータ、２０…監視制御端末、３０…統合保守端末（統合エンジニアリングステーション：ＩＥＳ）、４０…サーバ端末、５０，５０Ａ，５０Ｂ…コントローラ、５１，５１Ａ，５１Ｂ…演算部、５２，５２Ａ，５２Ｂ…レジスタ、５３，５３Ａ，５３Ｂ…ツールインターフェース、５５，５５Ａ，５５Ｂ…ロジック記憶部、６０…コマンダ、６１…コピー部、６２…ロジック記憶部、６２…保存部、６３…編集部、６４…ロジック記憶部、６５…コピー部、６６…接続リスト記憶部、６６ａ，６６ｂ…接続リスト、６７…制御部、６８…信号選択部、６９…比較部、７０…制御ネットワーク、７２…保存部、７３…トラップテーブル、８０…模擬ネットワーク、８１…編集画面、８２…シート選択ボタン、８３，８４…表示シート、９０…簡易ノード、１００…発電プラントモデル、１０１…アクチュエータモデル、１０２…プラント物理モデル、１０３…計測器モデル、１０７…共有メモリ、１１２…伝送サーバ。
【図１】
0006639310.tif 000002
【図２】
0006639310.tif 000003
【図３】
0006639310.tif 000004
【図４】
0006639310.tif 000005
【図５】
0006639310.tif 000006
【図６】
0006639310.tif 000007
【図７】
0006639310.tif 000008
【図８】
0006639310.tif 000009
【図９】
0006639310.tif 000010
【図１０】
0006639310.tif 000011
【図１１】
0006639310.tif 000012
【図１２】
0006639310.tif 000013