(57)【要約】      （修正有）【課題】プラントの制御と同時にシミュレーションが実行できる制御装置を提供する。【解決手段】シミュレーション機能付き制御装置２０は、プラントの制御を行う制御プログラムと当該制御プログラムを構成する制御ロジックの動作確認を行うためのシミュレーションプログラムとのそれぞれに対しユーザが設定した割合でＣＰＵ実行時間を時分割して割り当て実行したり、別々のＣＰＵコアを割り当てて独立して実行する実行制御部を備える。【選択図】図１
2015114901.tif 000002
【特許請求の範囲】
【請求項１】
プラントの制御を行う制御プログラムと前記制御プログラムを構成する制御ロジックの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部
を備えることを特徴とする制御装置。
【請求項２】
前記制御プログラムの実行と、前記シミュレーションプログラムの実行とのそれぞれに対して割り当てるＣＰＵ実行時間の比率を取得するＣＰＵ割当設定取得部を備え、
前記実行制御部は、予め定められた単位時間を前記比率に応じて制御プログラムを実行する制御用単位時間と前記シミュレーションプログラムを実行するシミュレーション用単位時間とに分割し、前記単位時間ごとに前記制御プログラムを前記制御用単位時間ＣＰＵに割り当てて実行し、前記シミュレーションプログラムを前記シミュレーション用単位時間ＣＰＵに割り当てて実行する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
制御装置の備えるＣＰＵは複数のコアを備え、
前記ＣＰＵ割当設定取得部は、前記制御プログラムの実行を行うコアを示す制御用コアと、前記シミュレーションプログラムの実行を行うコアを示すシミュレーション用コアとを指定する情報を取得し、
前記実行制御部は、前記制御プログラムを前記制御用コアに割り当てて実行し、前記シミュレーションプログラムをシミュレーション用コアに割り当てて実行する
ことを特徴とする請求項１又は請求項２に記載の制御装置。
【請求項４】
実行中の前記制御プログラムが前記プラントに備えられたセンサから取得するプロセス値を前記シミュレーションプログラムの入力値として取得するプロセス値取得部
を備えることを特徴とする請求項１から請求項３の何れか１項に記載の制御装置。
【請求項５】
プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続され、
前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付けるＣＰＵ割当設定受付部と、
前記シミュレーションプログラムが実行する制御ロジックの選択を受け付けるシミュレーション対象設定部と、
前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力するシミュレーション結果表示部と
を備えることを特徴とする設計装置。
【請求項６】
制御装置が、
プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する
ことを特徴とする制御方法。
【請求項７】
設計装置が、
プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続され、
前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付け、
前記シミュレーションプログラムが実行する制御ロジックの選択を受け付け、
前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力する
ことを特徴とする制御方法。
【請求項８】
制御装置のコンピュータを、
プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する手段
として機能させるためのプログラム。
【請求項９】
プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続された設計装置のコンピュータを、
前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付ける手段、
前記シミュレーションプログラムが実行する制御ロジックの選択を受け付ける手段、
前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力する手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、設計装置、制御方法及びプログラムに関する。
【背景技術】
【０００２】
稼動中の制御装置の制御ロジックを変更する場合、変更が正しいかどうか動作確認をして確かめることが必要となる。このような場合、制御装置とは別に動作確認用のシミュレーション装置を用いて変更後の制御ロジックプログラムを模擬的に実行し動作確認を行うことが一般的である。
このようなシミュレーション装置では、一般に汎用ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が搭載される。それに対して制御装置には組込み向けＣＰＵが搭載されることが一般的である。汎用ＣＰＵを搭載したシミュレーション装置にＳＣＡＤＡ（Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｑｕｉｓｉｔｉｏｎ）と呼ばれる制御システムを導入すれば汎用ＣＰＵを搭載したシミュレーション装置を用いて簡単な制御を行うことも可能ではあるが、そのような装置が発電所などのプラント制御に用いられることは一般的ではない。
【０００３】
また、特許文献１には、制御装置とシミュレーション装置をシリアル伝送バスにより接続し、ユーザのモード切替操作により制御装置の接続先を制御対象装置からシミュレーション装置に切り替え、実際の制御装置を用いてシミュレーションを行う技術が開示されている。しかし、この方法は、シミュレーションを行っている間はその制御装置を実際の制御対象装置の制御に使用することができない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６２−２２１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、これらのシミュレーション方法には以下のような課題が存在する。すなわち、制御装置とシミュレーション装置とで搭載するＣＰＵが異なる場合、浮動小数演算の丸め誤差の取り扱いが異なる等、厳密には同じ結果が得られる保証が無い。
また、シミュレーション装置に制御装置と同じＣＰＵを搭載し、同等のソフトウェアを動作させれば、厳密に同じ結果を得ることは可能であるが、別の装置が必要なため、コストアップや設置スペースの確保の問題が生じる。
【０００６】
そこでこの発明は、上述の課題を解決することのできる制御装置、設計装置、制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、プラントの制御を行う制御プログラムと前記制御プログラムを構成する制御ロジックの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置である。
【０００８】
また本発明の第２の態様における制御装置は、前記制御プログラムの実行と、前記シミュレーションプログラムの実行とのそれぞれに対して割り当てるＣＰＵ実行時間の比率を取得するＣＰＵ割当設定取得部を備え、前記実行制御部は、予め定められた単位時間を前記比率に応じて制御プログラムを実行する制御用単位時間と前記シミュレーションプログラムを実行するシミュレーション用単位時間とに分割し、前記単位時間ごとに前記制御プログラムを前記制御用単位時間ＣＰＵに割り当てて実行し、前記シミュレーションプログラムを前記シミュレーション用単位時間ＣＰＵに割り当てて実行することを特徴とする。
【０００９】
また本発明の第３の態様における制御装置の備えるＣＰＵは複数のコアを備え、前記ＣＰＵ割当設定取得部は、前記制御プログラムの実行を行うコアを示す制御用コアと、前記シミュレーションプログラムの実行を行うコアを示すシミュレーション用コアとを指定する情報を取得し、前記実行制御部は、前記制御プログラムを前記制御用コアに割り当てて実行し、前記シミュレーションプログラムをシミュレーション用コアに割り当てて実行することを特徴とする。
【００１０】
また本発明の第４の態様における制御装置は、実行中の前記制御プログラムが前記プラントに備えられたセンサから取得するプロセス値を前記シミュレーションプログラムの入力値として取得するプロセス値取得部を備えることを特徴とする。
【００１１】
また本発明の第５の態様は、プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続され、前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付けるＣＰＵ割当設定受付部と、前記シミュレーションプログラムに実行する制御ロジックの選択を受け付けるシミュレーション対象設定部と、前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力するシミュレーション結果表示部とを備えることを特徴とする設計装置である。
【００１２】
また本発明の第６の態様は、制御装置が、プラントの制御を行う制御プログラムと、前記制御プログラムの動作を検証するためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行することを特徴とする制御方法である。
【００１３】
また本発明の第７の態様は、設計装置が、プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続され、前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付け、前記シミュレーションプログラムが実行する制御ロジックの選択を受け付け、前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力することを特徴とする制御方法である。
【００１４】
また本発明の第８の態様は、制御装置のコンピュータを、プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する手段として機能させるためのプログラムである。
【００１５】
また本発明の第９の態様は、プラントの制御を行う制御プログラムと、前記制御プログラムの動作確認を行うためのシミュレーションプログラムとのそれぞれに独立したＣＰＵ資源を割り当てて実行する実行制御部を備えることを特徴とする制御装置と通信接続された設計装置のコンピュータを、前記制御プログラムと前記シミュレーションプログラムとの実行に割り当てられるＣＰＵ資源の設定を受け付ける手段、前記シミュレーションプログラムが実行する制御ロジックの選択を受け付ける手段、前記シミュレーションプログラムの実行結果を前記制御装置から取得し出力する手段として機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、新たにシミュレーション装置を追加することなく同じ演算結果を得られる環境でシミュレーションを行うことができるようになる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一の実施形態による並列化支援装置及び実行装置を含む制御システムの概略図である。
【図２】本発明の第一の実施形態による制御装置及び設計装置の機能ブロック図である。
【図３】本発明の第一の実施形態による制御装置における処理概要を示す図である。
【図４】本発明の第一の実施形態による制御装置及び設計装置の処理フローを示す図である。
【図５】本発明の第二の実施形態による制御装置及び設計装置の機能ブロック図である。
【図６】本発明の第二の実施形態による制御装置における処理概要を示す図である。
【図７】本発明の第三の実施形態による制御装置及び設計装置の機能ブロック図である。
【図８】本発明の第三の実施形態による制御装置における処理概要を示す図である。
【発明を実施するための形態】
【００１８】
＜第一の実施形態＞
以下、本発明の第一の実施形態による制御装置及び設計装置を図１〜図４を参照して説明する。
図１は第１の実施形態による制御装置及び設計装置を含む制御システムの概略図である。
図１に示すように本実施形態の制御システムは、設計装置１０と、制御装置２０と、制御対象装置３０と、を備えている。
制御装置２０は、制御プログラムを実行して制御対象装置３０を制御するコントローラである。制御対象装置３０は、制御対象となる例えばガスタービンなどの制御対象３０１と、センサや操作端等の計測制御機器３０２で構成されている。制御装置２０は、計測制御機器３０２を通して制御対象３０１と接続している。また、制御装置２０は、制御プログラムを実行しながら（符号３１）余剰のコンピュータ資源を利用してシミュレーションプログラムを実行し（符号３２）、制御装置２０で動作する制御プログラムの動作確認を行うことができるシミュレーション機能付きの制御装置である。また、制御装置２０には組み込み向けＣＰＵが搭載されている。
【００１９】
制御プログラムとは、制御対象装置３０の制御用アプリケーションプログラムを構成するプログラムであり、制御装置２０では複数の制御プログラムが実行される。またシミュレーションプログラムとは、動作確認を行う対象となる制御ロジックを含む制御ロジックプログラムと、その制御ロジックプログラムの動作に対する制御対象の挙動を模擬するプログラムと、それらを協調動作させ当該制御ロジックプログラムの動作確認が行えるようにするプログラムとを含む一連のソフトウェア全体を示すものであるとする。なお、制御ロジックプログラムとは、制御プログラムを構成する一部のプログラムである。
また、これらの制御プログラムやシミュレーションプログラムは、制御装置２０の備えるコンピュータにインストールされたＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）においてプロセスやスレッドとして実行される。
【００２０】
設計装置１０は、動作確認を行う制御ロジックプログラムを選択したり、制御装置２０における制御プログラムとシミュレーションプログラムとの実行に対してコンピュータ資源の割り振りを設定したり、制御装置２０からシミュレーションプログラムの実行結果を取得し、制御ロジックプログラムが正しく実行されたか否かを確認するのに用いる装置である。設計装置１０は制御装置２０と通信接続され、ユーザは、設計装置１０で選択した制御ロジックプログラムを制御装置２０に送信することができる。なお、コンピュータ資源とは具体的にはＣＰＵ資源であり、ユーザは、設計装置１０を用いてＣＰＵの持つ処理能力をどのように分配するかを設定する。また、設計装置１０の備えるＣＰＵは汎用ＣＰＵでよい。
【００２１】
図２は第１の実施形態による制御装置及び設計装置の機能ブロック図である。
まず、設計装置１０について説明する。図２に示すように本実施形態の設計装置１０は、ＣＰＵ割当設定受付部１０１と、割当支援情報表示部１０２と、シミュレーション結果表示部１０３と、シミュレーション対象設定部１０４と、通信部１０５と、操作検出部１０６と、記憶部１０７とを備えている。
ＣＰＵ割当設定受付部１０１は、制御プログラムとシミュレーションプログラムへの独立したＣＰＵ資源の割り当ての設定を受け付ける。本実施形態ではＣＰＵ割当設定受付部１０１は、それぞれのプログラムの実行に対して割り当てるＣＰＵ実行時間の比率を受け付ける。例えば、ＣＰＵ割当設定受付部１０１は、ユーザの指示操作により制御プログラムにＣＰＵの実行時間の７５％を割り当て、シミュレーションプログラムに２５％を割り当てるという設定を受け付け記憶部１０７に記録する。
【００２２】
割当支援情報表示部１０２は、ユーザがＣＰＵ資源をどのように割り当てることができるかを決めるのを支援する情報を設計装置１０の備える表示画面に表示する。例えば、割当支援情報表示部１０２は、制御装置２０において「制御プログラムＡ１」と「制御プログラムＡ２」が動作し、それら２つの実行にＣＰＵの処理能力の６０％が必要であるといった情報を表示する。ユーザはこの情報を見てシミュレーションプログラムの実行に割り当てることができるのはＣＰＵの処理能力の４０％以下であることを理解することができる。そしてユーザは、ＣＰＵ割当設定受付部１０１の機能を用いてシミュレーションプログラムにＣＰＵ資源の４０％を割り当てる。
【００２３】
シミュレーション結果表示部１０３は、ユーザのシミュレーション結果要求指示操作により、制御装置２０で実行したシミュレーションの結果を通信部１０５を介して制御装置２０から取得し、設計装置１０の備える表示画面に表示する。
通信部１０５は、制御装置２０へユーザが指定した制御プログラムとシミュレーションプログラムとに割り当てたＣＰＵ実行時間の比率や、ユーザが選択したシミュレーションプログラムを送信したり、制御装置２０からシミュレーション結果を取得する。
記憶部１０７は、制御ロジックプログラム、ＣＰＵ割当設定受付部１０１が受け付けた設定情報や制御装置２０から取得したシミュレーション結果などを記憶する。
シミュレーション対象設定部１０４は、シミュレーション対象となる制御ロジックプログラムの選択をユーザから受け付ける。また、シミュレーション対象設定部１０４は、ユーザによる機能演算ブロックの出力値の設定を受け付ける。機能演算ブロックとは、制御ロジックプログラムを構成する演算要素（ＰＯＬ：Ｐｒｏｇｒａｍ  Ｏｒｉｅｎｔｅｄ  Ｌａｎｇｕａｇｅ）である。機能演算ブロックの出力値を設定することで、ユーザは所望の条件下での制御ロジックプログラムの動作確認を行うことができる。
操作検出部１０６は、ユーザによるマウスやキーボードによる入力操作等を検出し、その操作指示情報を取得する。
【００２４】
次に、制御装置２０について説明する。図２に示すように本実施形態の制御装置２０は、ＣＰＵ割当設定取得部２０１と、実行制御部２０２と、シミュレーション結果送信部２０３と、制御ロジック取得部２０４と、プロセス値入出力部２０５と、通信部２０６と、記憶部２０７とを備えている。
ＣＰＵ割当設定取得部２０１は、設計装置１０でユーザが設定した制御プログラムとシミュレーションプログラムのそれぞれの実行に対して割り当てるＣＰＵ実行時間の比率を取得する。
【００２５】
実行制御部２０２は、制御プログラムとシミュレーションプログラムとのそれぞれに対して独立したＣＰＵ資源を割り当てて実行する。本実施例では、予め定められた単位時間をＣＰＵ割当設定取得部２０１が取得した比率に応じて制御用単位時間とシミュレーション用単位時間とに分割し、単位時間ごとに制御プログラムを制御用単位時間だけＣＰＵに割り当てて実行し、シミュレーションプログラムをシミュレーション用単位時間だけＣＰＵに割り当てて実行する。単位時間とは、ＯＳがプロセスの実行の管理に用いる処理時間の単位のことであり、例えば１ｍｓｅｃである。実行制御部２０２は、ＯＳ等が備えるタイマ割り込みの機能を利用して制御プログラムを制御用単位時間だけ実行させ、シミュレーションプログラムの実行に切り替え、またシミュレーションプログラムをシミュレーション用単位時間だけ実行させ、制御プログラムの実行に切り替える。なお、実際には制御プログラムの実行が優先されるため、シミュレーションプログラムの実行に割り当てられるＣＰＵ実行時間は少なくなる場合が多い。
【００２６】
シミュレーション結果送信部２０３は、実行制御部２０２が実行したシミュレーションプログラムの実行結果を出力する。シミュレーション結果送信部２０３は、実行結果を記憶部２０７に記録してもよいし、通信部２０６を介して設計装置１０に送信してもよい。
記憶部２０７は、制御プログラム、シミュレーションプログラム、ユーザが設計装置１０で制御プログラムとシミュレーションプログラムとに対して設定したＣＰＵ実行時間の比率の情報などを記憶している。
制御ロジック取得部２０４は、設計装置１０でユーザが選択した制御ロジックプログラムを取得する。
プロセス値入出力部２０５は、制御対象装置３０を制御する。プロセス値入出力部２０５は、制御プログラムにより実行される、制御装置２０に備わる機能である。
【００２７】
図３は本発明の第一の実施形態による制御装置における処理概要を示す図である。
図３を用いて制御装置２０にて実行制御部２０２が、制御プログラム及びシミュレーションプログラムの実行を切り替える処理について説明する。
符号３１は、「制御プログラムＡ１」のプロセスの実行時間を示している。符号３２は、「シミュレーションプログラムＢ１」のプロセスの実行時間を示している。それぞれの矢印の長さが「制御プログラムＡ１」及び「シミュレーションプログラムＢ１」のプロセスがＣＰＵに割り当てられて処理される時間の長さを示している。符号３３は、単位時間である。符号３４は、制御用単位時間である。符号３５は、シミュレーション用単位時間である。「制御プログラムＡ１」及び「シミュレーションプログラムＢ１」は単位時間３３の周期でＣＰＵを割り当てられ、「制御プログラムＡ１」は制御用単位時間３４の間、「シミュレーションプログラムＢ１」はシミュレーション用単位時間３５の間実行される。
【００２８】
次に「制御プログラムＡ１」のプロセスと「シミュレーションプログラムＢ１」のプロセスを切り替える処理について説明する。前提として実行制御部２０２が、「制御プログラムＡ１」と「シミュレーションプログラムＢ１」のプロセスを起動し、現在、「制御プログラムＡ１」のプロセスが実行されているものとする。すると実行制御部２０２は、制御装置２０が備えるタイマのカウントを参照し、「制御プログラムＡ１」のプロセスがＣＰＵに割り当てられた時刻からの経過時間が制御用単位時間になると、タイマ割り込みによって「シミュレーションプログラムＢ１」のプロセスにＣＰＵを割り当てる。次に実行制御部２０２は、実行プロセスが「シミュレーションプログラムＢ１」に切り替わってシミュレーション用単位時間が経過するとタイマ割り込みによって「制御プログラムＡ１」のプロセスにＣＰＵを割り当てる。そして実行制御部２０２は、両方のプロセスが実行を完了するまでこのような切り替えを繰り返す。
【００２９】
図４は第一の実施形態による設計装置及び制御装置の処理フローを示す図である。
図４の処理フローを用いて制御装置２０において設計装置１０で設定した比率で制御処理とシミュレーションの実行とを行う処理について説明する。
＜割当比率設定処理＞
まず、ユーザの操作によりＣＰＵ割当設定受付部１０１が、制御プログラムとシミュレーションプログラムとに割り当てるＣＰＵ実行時間の比率の入力を受け付ける（ステップＳ１０）。次に操作検出部１０６が、ユーザの所定の操作による割り当て比率の送信指示信号を受信すると、操作検出部１０６は送信指示があった旨の信号をＣＰＵ割当設定受付部１０１に出力する。するとＣＰＵ割当設定受付部１０１が割り当て比率の情報を通信部１０５へ出力し、通信部１０５は割り当て比率の情報を制御装置２０へ送信する（ステップＳ１１）。
制御装置２０では、通信部２０６が割り当て比率情報を受信すると割り当て比率情報をＣＰＵ割当設定取得部２０１へ出力する。そして、ＣＰＵ割当設定取得部２０１は、割り当て比率情報を記憶部２０７へ書き込む（ステップＳ１２）。そして、ＣＰＵ割当設定取得部２０１は、書込み処理の結果が成功したか否かを通信部２０６へ出力し、通信部２０６は書込み処理の成功又は失敗を設計装置１０へ通知する（ステップＳ１３）。書込み処理が失敗した場合、ＣＰＵ割当設定受付部１０１は再度、通信部１０５を介して割り当て比率の情報を制御装置２０へ送信してもよい。
【００３０】
＜シミュレーション対象選択処理＞
また、シミュレーション対象設定部１０４は、複数ある制御ロジックプログラムの中から、ユーザの操作によるシミュレーション対象となる制御ロジックプログラムの選択を受け付ける（ステップＳ１４）。次に操作検出部１０６が、ユーザの所定の操作による制御ロジックプログラムの送信指示信号を受信すると、操作検出部１０６は送信指示があった旨の信号をシミュレーション対象設定部１０４に出力する。するとシミュレーション対象設定部１０４が制御ロジックプログラムを記憶部１０７から読み出し通信部１０５へ出力する。そして通信部１０５が制御ロジックプログラムを制御装置２０へ送信する（ステップＳ１５）。
制御装置２０では、通信部２０６がシミュレーション対象となる制御ロジックプログラムを受信すると制御ロジックプログラムを制御ロジック取得部２０４へ出力する。そして、制御ロジック取得部２０４は、制御ロジックプログラムを記憶部２０７へ書き込む（ステップＳ１６）。そして、制御ロジック取得部２０４は、書込み処理の結果が成功したか否かを通信部２０６へ出力し、通信部２０６は書込み処理の成功又は失敗を設計装置１０へ通知する（ステップＳ１７）。書込み処理が失敗した場合、シミュレーション対象設定部１０４は再度、通信部１０５を介して制御ロジックプログラムを制御装置２０へ送信してもよい。
【００３１】
＜シミュレーション実行処理＞
次に実行制御部２０２は、ユーザの所定の操作などによる実行指示信号を取得して、記憶部２０７から制御プログラムと、シミュレーション対象となる制御ロジックプログラムを含むシミュレーションプログラムと、割り当て比率情報とを取得し、制御プログラムとシミュレーションプログラムとを実行する（ステップＳ１９）。このとき実行制御部２０２は、図３で説明したように単位時間ごとに制御プログラムを制御用単位時間実行し、シミュレーションプログラムをシミュレーション用単位時間実行するよう制御する。
また、シミュレーションプログラム実行中もプロセス値入出力部２０５は、制御対象装置３０が送信した（ステップＳ１８）計測制御機器３０２（センサ）が測定した制御対象装置３０の状態を示すプロセス値を取得し、制御ロジック演算を行って演算結果を制御信号として制御対象装置３０の計測制御機器３０２（制御機器）に送信し（ステップＳ２０）、継続的に制御対象３０１の制御を行う。
制御プログラム及びシミュレーションプログラムの実行が継続する間、ステップＳ１８〜ステップＳ２０の処理が繰り返し行われる。
【００３２】
＜シミュレーション結果取得処理＞
上述のシミュレーション実行処理（ステップＳ１８〜ステップＳ２０）が実行されている間、設計装置１０では、シミュレーション結果表示部１０３がユーザからシミュレーション結果要求を受け付ける。具体的には操作検出部１０６が、ユーザによる所定のシミュレーション結果要求操作を検出すると、操作検出部１０６はシミュレーション結果表示部１０３へ当該要求を検出した旨の情報を出力する。すると、シミュレーション結果表示部１０３は、シミュレーション結果要求信号を通信部１０５へ出力し、通信部１０５はシミュレーション結果要求信号を制御装置２０へ送信する（ステップＳ２１）。
制御装置２０では、シミュレーション結果送信部２０３が通信部２０６を介してシミュレーション結果要求信号を取得する。そして、シミュレーション結果送信部２０３は当該要求を受け付けた旨の情報を通信部２０６を介して設計装置１０へ通知する（ステップＳ２２）。
一方、設計装置１０からのシミュレーション結果要求信号の有無にかかわらず、シミュレーションプログラムは、シミュレーションプログラムの実行に伴い、シミュレーション結果を出力する（ステップＳ２３）。シミュレーション結果送信部２０３は、設計装置１０からシミュレーション結果要求信号を受信すると、シミュレーションプログラムが出力したシミュレーション結果を通信部２０６を介して設計装置１０へ送信する（ステップＳ２４）。設計装置１０では、通信部１０５がシミュレーション結果を受信しシミュレーション結果表示部１０３がその結果を表示する（ステップＳ２５）。
ユーザによるシミュレーション結果要求操作があった場合、シミュレーションプログラムの実行が継続する間、ステップＳ２３〜ステップＳ２５の処理が繰り返し行われる。
なお、シミュレーション結果取得処理（ステップＳ２１〜ステップＳ２５）は、シミュレーションプログラムが実行されていれば、シミュレーション実行処理（ステップＳ１８〜ステップＳ２０）と並列して実行が可能である。
【００３３】
なお、本処理フローにおいて、割当比率設定処理（ステップＳ１０〜Ｓ１２）と、シミュレーション対象選択処理（ステップＳ１３〜Ｓ１５）の順番は逆であってもよい。つまり先にシミュレーション対象選択処理を行って後に割当比率設定処理を行ってもよい。
また、既に割当比率設定処理（ステップＳ１０〜Ｓ１２）が行われていてその割り当て比率を変更する必要がない場合は改めてステップＳ１０〜Ｓ１２の処理を行う必要はない。また、既にシミュレーション対象選択処理（ステップＳ１３〜Ｓ１５）が行われていてシミュレーションする制御ロジックプログラムを変える必要が無ければ再度ステップＳ１３〜ステップＳ１５の処理を行う必要はない。
【００３４】
本実施形態によれば、１台の制御装置内でタイマ割り込みによる制御を行うことにより、制御プログラムとシミュレーションプログラムを独立して実行することができる。それにより１台の制御装置で制御アプリケーションプログラムを稼働させ実際にプラントなどの制御を行いながら、その制御演算に影響を与えることなく、制御ロジックプログラムの動作確認を行うことができる。また、シミュレーションプログラムは制御演算が行われている制御装置と同じハードウェア上で実行するため、ＣＰＵのタイプの違いによる演算結果の差異が生じることがなく、この制御装置は制御ロジックプログラムの動作確認に最適である。また、既存の制御装置がシミュレーション機能を持つため、シミュレーション装置用のハードウェアを追加する必要が無い。
【００３５】
＜第二の実施形態＞
以下、本発明の第二の実施形態による制御システムを図５〜６を参照して説明する。
第一の実施形態ではタイマ割り込みによってＣＰＵ実行時間を時分割して制御プログラムとシミュレーションプログラムを独立して実行した。第二の実施形態では制御プログラムとシミュレーションプログラムを別々のＣＰＵコア（独立したＣＰＵ資源）に割り当てることによって、それぞれのプログラムを独立して実行する。
図５は第二の実施形態による制御装置及び設計装置の機能ブロック図である。
図５で示すように、本実施形態による設計装置１０は、割当支援情報表示部１０２を備えていないだけで他の構成は第一の実施形態と同じである。
本実施形態のＣＰＵ割当設定受付部１０１は、制御プログラムとシミュレーションプログラムを独立して実行するにあたり、それぞれのプログラムを割り当てるＣＰＵコアの指定を受け付ける。例えば、ＣＰＵ割当設定受付部１０１は、制御プログラムを実行するコア（制御用コア）として「コア１」、シミュレーションプログラムを実行するコア（シミュレーション用コア）として「コア２」という設定をユーザの割り当て操作によって受け付け、記憶部１０７に記録する。
他の機能部については、第一の実施形態と同じであるため説明を省略する。
【００３６】
図５で示すように、本実施形態による制御装置２０の構成は、第一の実施形態と同じである。
本実施形態のＣＰＵ割当設定取得部２０１は、設計装置１０でユーザが設定した制御用コアとシミュレーション用コアの情報を取得し記憶部２０７に記録する。
実行制御部２０２は、制御プログラムとシミュレーションプログラムとを別々のＣＰＵコアに割り当てて実行する。具体的には、ＣＰＵ割当設定取得部２０１が取得した情報に基づいて、制御プログラムを制御用コアに割り当てて実行し、前記シミュレーションプログラムをシミュレーション用コアに割り当てて実行する。
他の機能部については、第一の実施形態と同じであるため説明を省略する。
【００３７】
図６は本発明の第二の実施形態による制御装置における処理概要を示す図である。
図６を用いて制御装置２０にて実行制御部２０２が、制御プログラム及びシミュレーションプログラムを実行する処理について説明する。なお、図３と同じ内容には同じ符号を付して説明する。
前提としてユーザの指示により制御プログラムは「コア１」に、シミュレーションプログラムは「コア２」に割り当てて実行するよう設定されているものとする。
まず、実行制御部２０２は、ＣＰＵ割当設定取得部２０１が記録した制御プログラムとシミュレーションプログラムをそれぞれどのコアに割り当てて実行するかの情報を記憶部２０７から読み出す。
実行制御部２０２は、制御装置２０が備える「コア１」に制御プログラムを割り当てて実行する（符号３１）。また、実行制御部２０２は、「コア２」にシミュレーションプログラムを割り当てて実行する（符号３２）。実行制御部２０２がプログラムを所定のＣＰＵコアに割り当てて実行する方法は、実行環境に応じた所定の方法で割り当てればよい。第一の実施形態では、制御アプリケーションプログラムの実行が優先されるため、シミュレーションプログラムの実行に割り当てられるＣＰＵ実行時間は少なくなり、その結果、シミュレーションプログラムの実行に要する時間は長くなることが多い。図６で示すように本実施形態においては、第一の実施形態と異なり、制御用単位時間（符号３４）とシミュレーション用単位時間（符号３５）は同じ単位時間（符号３３）となる。つまりシミュレーションプログラムの実行にも制御プログラムの実行と同じ長さのＣＰＵ実行時間が割り当てられる。
なお、本実施形態では、図４のステップＳ１０において、ＣＰＵ割当設定受付部１０１が、ＣＰＵ実行時間の割り当て比率ではなく制御プログラムとシミュレーションプログラムとに割り当てるコアの設定を受け付ける。ステップＳ１１では、通信部２０６が制御用コアとシミュレーション用コアの情報を制御装置２０へ送信し、ステップＳ１２では、ＣＰＵ割当設定取得部２０１が、制御用コアとシミュレーション用コアの情報を記憶部２０７へ書き込む。そしてステップＳ１４において、実行制御部２０２が制御プログラムとシミュレーションプログラムとを別々のコアに割り当てて実行する。図４の他の処理ステップについては第一の実施形態と同じである。
【００３８】
本実施形態によれば、実行制御部２０２が、制御プログラムとシミュレーションプログラムとをユーザが指定したコアの割り当てに従って、制御装置２０の備える別々のコアに割り当てて実行するので、第一の実施形態の効果に加えて制御ロジックプログラムを、実際の処理時間で実行させ動作確認を行うことができるという効果が得られる。
【００３９】
＜第三の実施形態＞
以下、本発明の第三の実施形態による制御システムを図７〜８を参照して説明する。
本実施形態は第一及び第二の実施形態の何れとも組み合わせることが可能であるが第一の実施形態と組み合わせた場合の機能ブロック図を用いて説明を行う。
【００４０】
図７は第三の実施形態による制御装置及び設計装置の機能ブロック図である。
図７で示すように、本実施形態による制御装置２０は、プロセス値取得部２０８を備えている点で第一の実施形態とは異なる。他の構成については、第一の実施形態と同じである。また、本実施形態による設計装置１０は、第一の実施形態と同じである。
プロセス値取得部２０８は、プロセス値入出力部２０５が取得する制御対象装置３０に備えられた各種センサ類からのプロセス値をシミュレーションプログラムの入力値として取得する。プロセス値とは、制御対象のプラントなどの各種状態量を示す信号をデジタル変換した値である。状態量とは、例えば配管を流れる水の流量や温度、発電機の出力周波数などである。
【００４１】
図８は本発明の第三の実施形態による制御装置における処理概要を示す図である。
図８を用いてプロセス値取得部２０８の処理について説明する。なお、図３と同じ内容には同じ符号を付して説明する。
制御装置２０は、プロセス値入出力部２０５が演算した結果の制御信号（符号６１）を制御周期ごとに制御対象装置３０へ送信し、制御対象装置３０を制御する。また、制御装置２０は、各センサ類や計測器から様々なプロセス値（符号６２）を取得する。この例では制御装置２０が制御周期ごとにプロセス値を取得するのものとする。符号３６は、制御周期である。このとき例えば、プロセス値入出力部２０５は、時刻「Ｔ０」、「Ｔ４」にプロセス値を取得する。すると、プロセス値取得部２０８は、時刻「Ｔ０」、「Ｔ４」にプロセス値入出力部２０５に渡されたプロセス値を取得し、時刻「Ｔ１」、「Ｔ５」にＣＰＵに割り当てられるシミュレーションプログラムに入力値として渡すことができる。プラントによっては１万点を超す入力値を設定しなければならず、プロセス値取得部２０８の機能によってこの設定作業を省略できるので制御ロジックプログラムのシミュレーションを行う上で大きな作業効率の向上を図ることができる。また、実際のプラントのプロセス値を利用するので、ユーザは現実に即した条件下でのシミュレーションを行うことができる。
なお、本実施形態では、図４のステップＳ１４において、プロセス値取得部２０８がプロセス値を取得し、シミュレーションプログラムに入力値として出力する。そして実行制御部２０２が制御プログラムとシミュレーションプログラムとにＣＰＵを時分割して割り当てて実行する。他の処理ステップについては第一の実施形態と同じである。
【００４２】
なお、第一の実施形態と組み合わせた場合、シミュレーションプログラムに割り当てられるＣＰＵ実行時間が少なくなること多いと考えられる。その為、プロセス値の取得のタイミングが実際に制御プログラムとして実行される場合のプロセス値の取得のタイミングと比べてずれることが考えられる。しかし、プロセス値取得タイミングの差による影響は多くの場合僅少であり、実際に得られるであろうプロセス値と近しい値を取得することができるので動作確認を行う上で問題とはならない。
【００４３】
本実施形態によれば、実際の運転状態から得られるプロセス値に基づいてシミュレーションすることが可能となり、機能演算ブロックの出力値を固定・設定してシミュレーション条件を作る手間が省くことができる。また、リアルタイムにシミュレーションプログラムへの入力値を更新することが出来る。
【００４４】
なお、上述の制御装置は内部にコンピュータを有している。そして、上述した制御装置におけるＣＰＵ割当設定取得部２０１、実行制御部２０２、プロセス値取得部２０８による各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００４５】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００４６】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【００４７】
１０・・・制御装置
２０・・・実行装置
３０・・・制御対象装置
１０１・・・ＣＰＵ割当設定受付部
１０２・・・割当支援情報表示部
１０３・・・シミュレーション結果表示部
１０４・・・シミュレーション対象設定部
１０５・・・通信部
１０６・・・操作検出部
１０７・・・記憶部
２０１・・・ＣＰＵ割当設定取得部
２０２・・・実行制御部
２０３・・・シミュレーション結果送信部
２０４・・・制御ロジック取得部
２０５・・・プロセス値入出力部
２０６・・・通信部
２０７・・・記憶部
２０８・・・プロセス値取得部
３０１・・・制御対象
３０２・・・計測制御機器
【図１】
2015114901.tif 000003
【図２】
2015114901.tif 000004
【図３】
2015114901.tif 000005
【図４】
2015114901.tif 000006
【図５】
2015114901.tif 000007
【図６】
2015114901.tif 000008
【図７】
2015114901.tif 000009
【図８】
2015114901.tif 000010