(57)【要約】【課題】プラント制御アプリケーションそのものを変更することなく加速／減速シミュレーションを実施する。【解決手段】プラント制御装置は、タイマカウントに基づいてタイムスケールを決定する基準時間に変換する基準時間生成処理部２２と、アプリケーションコードを解読し、アプリケーションを実行するアプリケーション解読実行処理部２７と、プロセスＩＯ１２との間でデータを授受するプロセスＩＯインターフェース処理部３０と、基準時間で表されたＩＯデータ授受実行周期およびアプリケーション実行周期に応じてプロセスＩＯインターフェース処理部３０及びアプリケーション解読実行処理部２７へ実行要求を出力するスケジューラ２９と、受け取ったシミュレーション速度情報に基づくシミュレーション速度を設定してスケジューラへ送るシミュレーション条件設定部３２と、を具備する。【選択図】  図１
2012113572.tif 000002
【特許請求の範囲】
【請求項１】
制御対象となる各プロセス機器とプロセスＩＯを介してデータを授受するプラント制御装置であり、
タイマカウントに基づいてタイムスケールを決定する基準時間に変換する基準時間生成処理部と、
実行するシミュレーションのシミュレーションデータを受け取り、受け取ったシミュレーションデータを格納するユーザレジスタへ転送するシミュレーションデータ展開処理部と、
シミュレーションの実行に伴って実行されるアプリケーションのアプリケーションコードを解読し、予め読み出し可能に格納されたアプリケーションコードおよび当該アプリケーションを実行する際に用いられるシミュレーションデータを前記ユーザレジスタから読み出してアプリケーションを実行するアプリケーション解読実行処理部と、
前記ユーザレジスタと前記プロセスＩＯと間でデータを授受するプロセスＩＯインターフェース処理部と、
予め読み出し可能に格納され前記基準時間で規定された実行周期テーブルのＩＯデータ授受実行周期およびアプリケーション実行周期を読み出し、前記基準時間を用いて前記ＩＯデータ授受実行周期およびアプリケーション実行周期を計測し、アプリケーション実行周期になったらアプリケーション解読実行処理部へ実行要求を出力するスケジューラと、
シミュレーション速度情報を受け取り、受け取ったシミュレーション速度情報に基づいてシミュレーション速度を設定し、前記スケジューラへ送るシミュレーション条件設定部と、を具備することを特徴とするプラント制御装置。
【請求項２】
指定されたトリガ条件でアプリケーションを中断させるトリガ条件の入力を受け付け、入力されたトリガ条件を前記アプリケーション解読実行処理部へ送るトリガ条件設定部をさらに具備することを特徴とする請求項１記載のプラント制御装置。
【請求項３】
前記アプリケーション解読実行処理部は、アプリケーションが中断した場合、中断位置を保存する一方、アプリケーション再開を受け付けた場合、保存した中断位置からアプリケーションの再開するように構成されたことを特徴とする請求項２記載のプラント制御装置。
【請求項４】
指定された繰返し条件の入力を受け付け、入力された繰返し条件を前記アプリケーション解読実行処理部へ送るように構成された繰返し条件設定部をさらに具備することを特徴とする請求項１〜３のいずれか１項に記載のプラント制御装置。
【請求項５】
制御対象となる各プロセス機器とプロセスＩＯを介してデータを授受するプラント制御装置において実行されるプラント動作シミュレーション方法であり、
基準時間生成処理部が、設定されたシミュレーションの加速／減速の度合いおよびタイマカウントに基づいてタイムスケールを決定する基準時間に変換するステップと、
スケジューラが、予め読み出し可能に格納され前記基準時間で規定された実行周期テーブルのＩＯデータ授受実行周期およびアプリケーション実行周期を読み出し、前記基準時間を用いて前記ＩＯデータ授受実行周期およびアプリケーション実行周期を計測し、アプリケーション実行周期になると、アプリケーションの実行を要求するステップと、
プロセスＩＯインターフェース処理部が、前記スケジューラによって計測されたＩＯデータ授受実行周期に従ってユーザレジスタと前記プロセスＩＯとの間でデータを授受するステップと、
アプリケーション解読実行処理部が、実行するアプリケーションのアプリケーションコードを解読し、予め読み出し可能に格納されたアプリケーションコードおよび当該アプリケーションを実行する際に用いられるシミュレーションデータを読み出し、前記スケジューラからアプリケーション実行周期で送信されるアプリケーションの実行要求に従ってアプリケーションを実行するステップと、を具備することを特徴とするプラント動作シミュレーション方法。
【請求項６】
トリガ条件設定部が、指定されたトリガ条件でアプリケーションを中断させるトリガ条件の入力を受け付け、入力されたトリガ条件を前記アプリケーション解読実行処理部へ送るステップをさらに具備することを特徴とする請求項５記載のプラント動作シミュレーション方法。
【請求項７】
前記アプリケーション解読実行処理部は、アプリケーションが中断した場合、中断位置を保存する一方、アプリケーション再開を受け付けた場合、保存した中断位置からアプリケーションの再開するステップを具備することを特徴とする請求項６記載のプラント動作シミュレーション方法。
【請求項８】
繰返し条件設定部が、指定された繰返し条件の入力を受け付け、入力された繰返し条件を前記アプリケーション解読実行処理部へ送るステップをさらに具備することを特徴とする請求項５〜７のいずれか１項に記載のプラント動作シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラント制御アプリケーションそのものを変更することなく加速／減速シミュレーションを実施できるプラント制御装置およびプラント動作シミュレーション方法に関する。
【背景技術】
【０００２】
一般に、各種プラントのプラント制御アプリケーションの動作検証では、予め収集した実プラントの運転データを入力値とし、プラント制御アプリケーションそのものを動作させる方法でシミュレーションを実施し、プラント制御アプリケーションの動作確認を実施している。このようなシミュレーションを実施するプラント制御装置は、例えば、特開２００９−１６９７７２号公報（特許文献１）に記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１６９７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したようなプラント制御装置におけるシミュレーション方法により、アプリケーション内に、時間に依存するロジックが含まれるプラント制御アプリケーションについて加速または減速したシミュレーション（加速／減速シミュレーション）を実施する場合、プラント制御アプリケーションの実行周期を変えるだけでは、加速／減速シミュレーションを実現できない。すなわち、制御パラメータの調整等をしない限り、プラント状態のシミュレーションにおいても実時間と同じ時間が必要になる。
【０００５】
上述したようなプラント制御装置におけるシミュレーション方法では、長時間にわたるプラント状態のシミュレーションでは、実時間と同じ長い時間をかけてアプリケーションの動作を確認し、極めて短時間で変化するプラント状態のシミュレーションでは、プラント制御アプリケーションの途中経過をロジックレベルで確認することができないため、データのトレース結果から過渡状態中のプラント制御アプリケーションの動作を確認していた。
【０００６】
換言すれば、上述したようなプラント制御装置におけるシミュレーション方法は、長時間にわたるプラント状態のシミュレーションでは、実時間と同じ長い時間が必要になり、逆に、極めて短時間で変化するプラント状態のシミュレーションでは、プラント制御アプリケーションの途中経過をロジックレベルで確認することができないという課題がある。
【０００７】
本発明は、上述の課題を解決するためになされたものであり、プラント制御装置のタイムスケールを決定する基準時間を可変とすることにより、プラント制御アプリケーションそのものを変更することなしに、加速／減速シミュレーションを実施できるプラント制御装置およびプラント動作シミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の実施形態に係るプラント制御装置は、上述した課題を解決するため、制御対象となる各プロセス機器とプロセスＩＯを介してデータを授受するプラント制御装置であり、制御対象となる各プロセス機器とプロセスＩＯを介してデータを授受するプラント制御装置であり、タイマカウントに基づいてタイムスケールを決定する基準時間に変換する基準時間生成処理部と、実行するシミュレーションのシミュレーションデータを受け取り、受け取ったシミュレーションデータを、当該シミュレーションの実行に伴って実行されるアプリケーションの実行に使用されるシミュレーションデータを格納するユーザレジスタへ転送するシミュレーションデータ展開処理部と、シミュレーションの実行に伴って実行されるアプリケーションのアプリケーションコードを解読し、予め読み出し可能に格納されたアプリケーションコードおよび当該アプリケーションを実行する際に用いられるシミュレーションデータを前記ユーザレジスタから読み出してアプリケーションを実行するアプリケーション解読実行処理部と、前記ユーザレジスタと前記プロセスＩＯと間でデータを授受するプロセスＩＯインターフェース処理部と、予め読み出し可能に格納され前記基準時間で規定された実行周期テーブルのＩＯデータ授受実行周期およびアプリケーション実行周期を読み出し、前記基準時間を用いて前記ＩＯデータ授受実行周期およびアプリケーション実行周期を計測し、アプリケーション実行周期になったらアプリケーション解読実行処理部へ実行要求を出力するスケジューラと、シミュレーション速度情報を受け取り、受け取ったシミュレーション速度情報に基づいてシミュレーション速度を設定し、前記スケジューラへ送るシミュレーション条件設定部と、を具備することを特徴とする。
【０００９】
本発明の実施形態に係るプラント動作シミュレーション方法は、上述した課題を解決するため、制御対象となる各プロセス機器とプロセスＩＯを介してデータを授受するプラント制御装置において実行されるプラント動作シミュレーション方法であり、基準時間生成処理部が、設定されたシミュレーションの加速／減速の度合いおよびタイマカウントに基づいてタイムスケールを決定する基準時間に変換するステップと、スケジューラが、予め読み出し可能に格納され前記基準時間で規定された実行周期テーブルのＩＯデータ授受実行周期およびアプリケーション実行周期を読み出し、前記基準時間を用いて前記ＩＯデータ授受実行周期およびアプリケーション実行周期を計測し、アプリケーション実行周期になると、アプリケーションの実行を要求するステップと、プロセスＩＯインターフェース処理部が、前記スケジューラによって計測されたＩＯデータ授受実行周期に従ってユーザレジスタと前記プロセスＩＯとの間でデータを授受するステップと、アプリケーション解読実行処理部が、実行するアプリケーションのアプリケーションコードを解読し、予め読み出し可能に格納されたアプリケーションコードおよび当該アプリケーションを実行する際に用いられるシミュレーションデータを読み出し、前記スケジューラからアプリケーション実行周期で送信されるアプリケーションの実行要求に従ってアプリケーションを実行するステップと、を具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、プラント制御アプリケーションに時間に依存するロジックが含まれている場合でも、オペレータが指定した加速／減速度合いに応じた基準時間を用いて、プラント制御装置の他の機能やプラント制御アプリケーションを変更することなく加速／減速シミュレーションを実施することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るプラント制御装置の構成例を示す概略図。
【図２】本発明の実施形態に係るプラント制御装置の一例である第１のプラント制御装置のスケジューラが参照する実行周期テーブルの一例を説明する説明図。
【図３】本発明の実施形態に係るプラント制御装置の一例である第１のプラント制御装置が具備するスケジューラの動作例であり、（ａ）は通常動作時の場合、（ｂ）は２倍速シミュレーション実行時の場合、を説明する説明図。
【図４】本発明に係るプラント動作シミュレーション方法の一例である第１のプラント制御装置のトリガ条件設定部が設定するトリガ条件の一例を説明する説明図。
【図５】本発明に係るプラント動作シミュレーション方法の一例である第１のプラント動作シミュレーション方法の処理手順の処理ステップを示す処理フロー図。
【図６】本発明の第２の実施形態に係るプラント制御装置の構成例を示す概略図。
【図７】本発明に係るプラント動作シミュレーション方法の一例である第２のプラント動作シミュレーション方法の処理手順を実行する際に設定される繰返し条件の一例を説明する説明図。
【図８】本発明に係るプラント動作シミュレーション方法の一例である第２のプラント動作シミュレーション方法の処理手順の処理ステップを示す処理フロー図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態に係るプラント制御装置およびプラント動作シミュレーション方法について、図面を参照して説明する。
【００１３】
［第１の実施形態］
図１は、本発明の第１の実施形態に係るプラント制御装置の一例である第１のプラント制御装置１０Ａの構成を示す概略図である。
【００１４】
図１に示される第１のプラント制御装置１０Ａは、プラント動作シミュレーションをするために必要な情報や指令を与える保守ツール１１と、制御対象となる各プロセス機器（図１において省略）との入出力インターフェースとして第１のプラント制御装置１０Ａとの間で信号伝送するプロセスＩＯ１２とが接続されている。
【００１５】
第１のプラント制御装置１０Ａは、タイマ２１と、基準時間生成処理部２２と、アプリケーションコードメモリ２３と、シミュレーションデータメモリ２４と、ユーザレジスタ２５と、シミュレーションデータ展開処理部２６と、アプリケーション解読実行処理部２７と、実行周期テーブル２８と、スケジューラ２９と、プロセスＩＯインターフェース処理部３０と、保守ツールインターフェース３１と、シミュレーション条件設定部３２と、トリガ条件設定部３３と、を具備する。
【００１６】
タイマ２１は、所定時間刻みでカウントする機能と、そのカウント値（以下、「タイマカウント値」と称する。）を出力する機能を有し、タイマカウント値を基準時間生成処理部２２へ出力する。
【００１７】
基準時間生成処理部２２は、タイマカウント値をプラント制御装置動作の基準とする時間（以下、「基準時間」と称する。）に変換する機能を有し、タイマ２１から出力されたタイマカウント値を受信して、受信したタイマカウント値をタイムスケールを決定する時間、すなわち、基準時間に変換する。また、基準時間生成処理部２２は、シミュレーション条件設定部３２からシミュレーション速度情報としてシミュレーションの加速／減速度合いを受け取り、受け取ったシミュレーションの加速／減速度合いに基づいて、加速／減速シミュレーション用の基準時間（以下、「シミュレーション基準時間」と称する。）を生成して、アプリケーション解読実行処理部２７およびスケジューラ２９へ出力する。
【００１８】
例えば、通常の１基準時間（基準時間の１倍の長さの時間）をタイマ１０００カウントとした場合、通常よりも速いシミュレーション（加速シミュレーション）を行うのであれば、１シミュレーション基準時間を短くする一方、通常よりも遅いシミュレーション（減速シミュレーション）を行うのであれば、１シミュレーション基準時間（シミュレーション基準時間の１倍の長さの時間）を長くする。
【００１９】
例えば、２倍速シミュレーションであれば５００（＝１０００／２）カウントを１シミュレーション基準時間として１シミュレーション基準時間を短くする一方、０．５倍速シミュレーションであれば２０００（＝１０００／０．５）カウントを１シミュレーション基準時間として１シミュレーション基準時間を長くする。
【００２０】
アプリケーションコードメモリ２３は、アプリケーションの実行コードを格納するメモリである。また、シミュレーションデータメモリ２４は、保守ツール１１から入力（転送）されるシミュレーションデータを格納するメモリである。尚、アプリケーションコードメモリ２３およびシミュレーションデータメモリ２４は、物理的に二つのメモリに分割されていることを要しない。
【００２１】
ユーザレジスタ２５は、アプリケーションを実行するにあたり使用するシミュレーションデータを格納する記憶領域であり、アプリケーション実行時にアプリケーション解読実行処理部２７がアクセスして使用する。
【００２２】
シミュレーションデータ展開処理部２６は、シミュレーションデータメモリ２４に格納されたデータを読み出して、ユーザレジスタ２５へ転送する機能を有する。シミュレーションデータ展開処理部２６は、スケジューラ２９からの起動要求を受け付けて起動し、起動すると、シミュレーションデータメモリ２４に格納されたシミュレーションデータを読み出してユーザレジスタ２５へ転送する（シミュレーションデータ展開処理）。
【００２３】
アプリケーション解読実行処理部２７は、アプリケーションコードを解読する機能と、アプリケーションを実行する機能とを有する。アプリケーション解読実行処理部２７は、実行要求のあったアプリケーションコードを解読し、ユーザレジスタ２５から必要なデータを読み出してアプリケーション（演算処理）を実行する（アプリケーション解読実行処理）。
【００２４】
実行周期テーブル２８は、ユーザレジスタ２５とプロセスＩＯ１２と間（ユーザレジスタ−プロセスＩＯ間）のデータ授受周期（以下、「ＩＯデータ授受実行周期」と称する。）や、アプリケーション実行周期を定義したテーブルである。実行周期テーブル２８の一例について図２を参照して説明する。
【００２５】
図２は本発明の実施形態に係るプラント制御装置の一例である第１のプラント制御装置１０Ａのスケジューラ２９が参照する実行周期テーブル２８の一例を説明する説明図である。
【００２６】
実行周期テーブル２８は、ＩＯデータ授受実行周期およびアプリケーション実行周期と基準時間とがそれぞれ対応付けられており、例えば、図２に示されるように、ＩＯデータ授受実行周期は１基準時間であり、アプリケーション実行周期は２基準時間である。ここで、ｎ基準時間（ｎは任意の正数）とは、基準時間のｎ倍の時間を示す。
【００２７】
図１に戻り、第１のプラント制御装置１０Ａのスケジューラ２９について説明すると、スケジューラ２９は、ＩＯデータ授受実行周期を計測する機能と、所定のアプリケーション実行周期になったらアプリケーション解読実行処理部２７とプロセスＩＯインターフェース処理部３０とに対して当該アプリケーションの起動要求を出力する機能とを有する。ここで、スケジューラ２９の動作例を図２および図３を参照して説明する。
【００２８】
図３は本発明の実施形態に係るプラント制御装置の一例である第１のプラント制御装置１０Ａが具備するスケジューラ２９の動作例であり、図３（ａ）は通常動作時の場合、図３（ｂ）は２倍速シミュレーション実行時の場合、を説明する説明図である。
【００２９】
スケジューラ２９は、基準時間生成処理部２２が生成した基準時間を用いて、基準時間単位に変換された実行周期テーブル２８のＩＯデータ授受実行周期を計測し、アプリケーション実行周期になったらアプリケーション解読実行処理部２７とプロセスＩＯインターフェース処理部３０とに起動要求を出力する。図２に示されるように実行周期テーブル２８を設定すれば、図３（ａ）および図３（ｂ）に示されるように、同じ２基準時間でアプリケーションが実行する。
【００３０】
但し、基準時間生成処理部２２が生成した基準時間は、保守ツール１１から入力されるシミュレーション条件の設定時に１基準時間のタイムカウントを増減させることができるため、同じ２基準時間であっても、図３（ａ）に例示される１基準時間が１０００カウントの場合と、図３（ｂ）に例示される１基準時間が５００カウントの場合とでは、実際の実行タイミングは変化する。
【００３１】
すなわち、第１のプラント制御装置１０Ａでは、スケジューラ２９が基準時間を用いて実行周期を管理しており、保守ツール１１から入力されるシミュレーション条件の設定時に１基準時間のタイムカウントを増減させることによって、実行周期テーブル２８を変更することなく、ｎ倍速（ｎは任意の正数）のシミュレーションの実施が可能となる。
【００３２】
図１に戻り、第１のプラント制御装置１０ＡのプロセスＩＯインターフェース処理部３０について説明すると、プロセスＩＯインターフェース処理部３０は、ユーザレジスタ２５とプロセスＩＯ１２と間でデータを授受する機能（プロセスＩＯインターフェース処理機能）を有する。プロセスＩＯインターフェース処理部３０は、スケジューラ２９からの起動要求を受けて起動すると、スケジューラ２９が計測するＩＯデータ授受実行周期に基づいて、ユーザレジスタ−プロセスＩＯ間のデータ授受を行う（プロセスＩＯインターフェース処理）。すなわち、プロセスＩＯインターフェース処理部３０は、起動後、プロセスＩＯ１２からの入力データをユーザレジスタ２５に転送し、ユーザレジスタ２５の出力データをプロセスＩＯ１２に転送する。
【００３３】
保守ツールインターフェース３１は、第１のプラント制御装置１０Ａとシミュレーションデータやシミュレーション条件等を転送するための保守ツール１１との間でデータを授受するインターフェース機能を有し、保守ツール１１との接続を行う。
【００３４】
シミュレーション条件設定部３２は、保守ツール１１から入力されたシミュレーション速度情報、すなわち、シミュレーションの加速度合いまたは減速度合い（加速／減速度合い）の情報を受け取り、受け取ったシミュレーション速度情報に基づくシミュレーションの加速／減速度合いを設定する。
【００３５】
トリガ条件設定部３３は、指定されたトリガ条件でアプリケーションを中断させるシミュレーションを実施する場合に当該トリガ条件を設定する機能を有し、保守ツール１１から入力されたトリガ条件を設定し、設定したトリガ条件をアプリケーション解読実行処理部２７へ送る。
【００３６】
図４は、本発明に係るプラント動作シミュレーション方法の一例である第１のプラント制御装置１０Ａのトリガ条件設定部３３が設定するトリガ条件の一例を説明する説明図である。
【００３７】
図４に示されるように、トリガ条件設定部３３に設定されるトリガ条件は、「ユーザレジスタＸＸＸＸ＝＝０」等のように表され、このようなトリガ条件と、「トリガ条件１」等のトリガ条件ｉ（ｉは１以上の自然数であり、図４に示される例ではｉ＝１，２，３，４である。）を特定する情報としてのトリガ条件の名称が対応付けられる。トリガ条件設定部３３は、トリガ条件の名称と当該名称と対応付けられた具体的なトリガ条件とをアプリケーション解読実行処理部２７へ送る。
【００３８】
このように構成される第１のプラント制御装置１０Ａでは、接続された保守ツール１１から入力され指定された加速／減速度合いに応じた基準時間を生成し、生成した基準時間を用いて、シミュレーションデータ展開処理部２６とアプリケーション解読実行処理部２７の起動周期の計測や、経過時間の計測を行うことにより、第１のプラント制御装置１０Ａの他の機能やプラント制御アプリケーションを変更しなくても、加速／減速シミュレーションを実施することができる。
【００３９】
次に、本発明の第１の実施形態に係るプラント動作シミュレーション方法（以下、「第１の動作シミュレーション方法」と称する。）について説明する。
【００４０】
第１の動作シミュレーション方法は、例えば、制御対象となる各プロセス機器とプロセスＩＯ１２を介してデータを授受する第１のプラント制御装置１０Ａにおいて実行されるプラント動作シミュレーション方法であり、基準時間生成処理ステップと、スケジューリングステップと、プロセスＩＯインターフェース処理ステップと、アプリケーション解読実行処理ステップとを具備する動作シミュレーション方法である。
【００４１】
基準時間生成ステップは、基準時間生成処理部２２が、設定されたシミュレーションの加速／減速の度合いおよびタイマカウントに基づいてタイムスケールを決定する基準時間に変換するステップである。
【００４２】
スケジューリングステップは、スケジューラ２９が、基準時間で規定された実行周期テーブル２８のＩＯデータ授受実行周期およびアプリケーション実行周期を読み出し、基準時間を用いてＩＯデータ授受実行周期およびアプリケーション実行周期を計測し、アプリケーション実行周期になると、アプリケーションの実行を要求するステップである。
【００４３】
プロセスＩＯインターフェース処理ステップは、プロセスＩＯインターフェース処理部３０が、スケジューラ２９によって計測されたＩＯデータ授受実行周期に従ってユーザレジスタ２５とプロセスＩＯ１２との間でデータを授受するステップである。
【００４４】
アプリケーション解読実行処理ステップは、アプリケーション解読実行処理部２７が、実行するアプリケーションのアプリケーションコードを解読し、予め読み出し可能に格納されたアプリケーションコードおよび当該アプリケーションを実行する際に用いられるシミュレーションデータを読み出し、スケジューラ２９からアプリケーション実行周期で送信されるアプリケーションの実行要求に従ってアプリケーションを実行するステップである。
【００４５】
図５は、本発明の実施形態に係るプラント動作シミュレーション方法の一例である第１の動作シミュレーション方法の処理手順（以下、単に「第１の処理手順」と称する。）の処理ステップを示す処理フロー図である。
【００４６】
第１の処理手順の処理ステップは、スケジューラ２９が起動し、プラント動作シミュレーションが実行されると、その処理ステップ（ステップＳ１〜ステップＳ８）が開始される。
【００４７】
プラント動作シミュレーションを実行させるために、オペレータ（ユーザ）が保守ツール１１を入力操作して、シミュレーションの加速／減速の度合い、シミュレーションデータ、トリガ条件およびプラント動作シミュレーション実行要求を保守ツール１１から第１のプラント制御装置１０Ａに入力する。
【００４８】
すると、基準時間生成処理部２２では、シミュレーション設定部３２に設定されたシミュレーションの加速／減速の度合いおよびタイマ２１のタイマカウントに基づいて、一定回数のカウント値(例えば１０００カウント)を１とした基準時間が生成される。続いて、基準時間生成処理部２２で生成された基準時間は、スケジューラ２９に入力されてスケジューラ２９が起動する（開始）。
【００４９】
スケジューラ２９が基準時間生成処理部２２で生成された基準時間を受け取ると、受け取った基準時間を用いて実行周期テーブル２８のＩＯデータ授受実行周期とアプリケーション実行周期を計測する。そして、アプリケーション実行周期になると、プロセスＩＯインターフェース処理部３０、シミュレーションデータ展開処理部２６およびアプリケーション解読実行処理部２７へ実行（起動）要求を送り、プロセスＩＯインターフェース処理部３０でのプロセスＩＯインターフェース処理、シミュレーションデータ展開処理部２６でのシミュレーションデータ展開処理およびアプリケーション解読実行処理部２７でのアプリケーション解読実行処理がスタートする（ステップＳ１）。
【００５０】
続くステップＳ２では、シミュレーションを開始し、アプリケーション解読実行処理をスタートするにあたり、アプリケーション解読実行処理部２７がアプリケーションを最初から実行する場合、すなわち、アプリケーション中断からの再開でない場合（ステップＳ２でＮＯの場合）には、解読開始位置をアプリケーションコードの先頭としてアプリケーションの解読を開始する（ステップＳ３）。
【００５１】
続いて、ステップＳ４〜ステップＳ６で実行される二段ループ、すなわち、コード解読が完了するまで実行されるループ（以下、「第１のループ」と称する。）と、第１のループ内に全トリガ条件について成立するかのチェックが完了するまで実行されるループ（以下、「第２のループ」と称する。）を有する二段ループに進む。
【００５２】
第１のループ内のステップＳ４では、アプリケーション解読実行処理部２７がアプリケーションコードメモリ２３のアプリケーションコードを解読し、続くステップＳ５で、ユーザレジスタ２５のデータと、スケジューラ２９から通知された基準時間単位の経過時間を用いて解読したアプリケーションコードを実行する。
【００５３】
アプリケーションコードが実行されると、続いて、第１のループ内のステップＳ５から第２のループ内のステップＳ６に進み、アプリケーション解読実行処理部２７は、１命令コード分の解読実行処理が終わる度に、トリガ条件ｉ（ｉは１以上の自然数）が成立するか否かがチェックする。そして、設定された全トリガ条件について何れのトリガ条件も成立しない場合（ステップＳ６でＮＯの場合）、第１のループおよび第２のループで構成される二段ループを脱して、第１の処理手順を終了する。
【００５４】
また、設定された何れかのトリガ条件、すなわち、トリガ条件ｉが成立する場合、第１のループおよび第２のループで構成される二段ループを脱して、ステップＳ７に進む。ステップＳ７では、アプリケーション解読実行処理部２７が、アプリケーションの解読実行を中断し、中断位置を保存し、続くステップＳ８では、スケジューラ２９にトリガ条件の成立を通知する（ステップＳ８）。
【００５５】
トリガ条件の成立が通知された（ステップＳ８が終了した）後は、それ以降、シミュレーションデータ展開処理部２６とアプリケーション解読実行処理部２７の実行周期の計測とその起動を停止して、第１の処理手順を終了する。
【００５６】
一方、ステップＳ２において、アプリケーションの実行がアプリケーション中断からの再開の場合（ステップＳ２でＮＯの場合）には、スケジューラ２９が、中断していたアプリケーション解読実行処理部２７を起動し、解読開始位置をアプリケーションの中断位置としてアプリケーションの解読を開始する（ステップＳ９）。その後、ステップＳ４に進み、ステップＳ４以降の処理ステップを実行する。
【００５７】
このように、第１のプラント制御装置１０Ａおよび第１の処理手順によれば、プラント制御アプリケーションに時間に依存するロジックが含まれている場合でも、オペレータが指定した加速／減速度合いに応じた基準時間を用いて、シミュレーションデータ展開処理部２６とアプリケーション解読実行処理部２７の起動周期の計測や、経過時間の計測を行うことにより、プラント制御装置の他の機能やプラント制御アプリケーションの変更なしに加速／減速シミュレーションを実施することができる。
【００５８】
また、オペレータが指定したトリガ条件によって、アプリケーションの実行を中断させることもできる。そして、プラント制御アプリケーションに時間に依存するロジックが含まれていても、シミュレーション再開後の基準時間をシミュレーション再開時点での時間とすることで、シミュレーションの中断時間の影響を受けずに中断位置からアプリケーションを再開させることができる。
【００５９】
特に、プラントが異常状態に至った際のデータをシミュレーションの入力データとし、プラントの異常状態発生をトリガ条件に設定してシミュレーションを中断させることにより、異常状態に至った時点でのプラント制御アプリケーションの内部状態を保守ツール１１によって解析することができる。
【００６０】
尚、上述した第１のプラント制御装置１０Ａは、トリガ条件設定部３３を具備しているが、指定したトリガ条件でアプリケーションを中断させないシミュレーションを実施する場合、トリガ条件設定部３３を具備していなくてもシミュレーションを実施することができる。すなわち、プラント制御装置の他の機能やプラント制御アプリケーションの変更なしに加速／減速シミュレーションを実施するプラント制御装置を構成するに当たり、トリガ条件設定部３３を具備しない構成を採用することもできる。この場合、第１の処理手順は、ステップＳ６〜ステップＳ８が省略される。
【００６１】
［第２の実施形態］
図６は、本発明の第２の実施形態に係るプラント制御装置の一例である第２のプラント制御装置１０Ｂの構成を示す概略図である。
【００６２】
第２のプラント制御装置１０Ｂは、第１のプラント制御装置１０Ａに対して、トリガ条件設定部３３の代わりに繰返し条件設定部３５を具備する点で相違するが、他の構成要素については実質的に異ならない。そこで、実質的に異ならない構成要素については、同じ符号を付して説明を省略する。
【００６３】
第２のプラント制御装置１０Ｂは、例えば、図６に示されるように、プラント動作シミュレーションをするために必要な情報や指令を与える保守ツール１１と、制御対象となる各プロセス機器（図１において省略）との入出力インターフェースとして第１プラント制御装置１０Ａとの間で信号伝送するプロセスＩＯ１２とが接続されている。
【００６４】
第２のプラント制御装置１０Ｂは、タイマ２１、基準時間生成処理部２２、アプリケーションコードメモリ２３、シミュレーションデータメモリ２４、ユーザレジスタ２５、シミュレーションデータ展開処理部２６、アプリケーション解読実行処理部２７、実行周期テーブル２８、スケジューラ２９、プロセスＩＯインターフェース処理部３０、保守ツールインターフェース３１およびシミュレーション条件設定部３２に加え、さらに、繰返し条件設定部３５を具備する。
【００６５】
繰返し条件設定部３５は、指定されたアプリケーションの実行回数を繰返し条件として設定する機能を有する。繰返し条件設定部３５は、保守ツール１１から入力されたアプリケーションの実行回数を繰返し条件として設定し、設定した繰返し条件をアプリケーション解読実行処理部２７へ送る。
【００６６】
図７は、本発明に係るプラント動作シミュレーション方法の一例である第２のプラント動作シミュレーション方法の処理手順を実行する際に設定される繰返し条件の一例を説明する説明図である。
【００６７】
図７に示されるように、繰返し条件設定部３５に設定される繰返し条件の例としては、「アプリケーション１０周期実行」等のようにアプリケーションを繰返し実行させる回数が表され、このような繰返し条件と、「繰返し条件」等の繰返し条件であることを特定する情報が対応付けられる。
【００６８】
図８は、本発明に係るプラント動作シミュレーション方法の一例である第２のプラント動作シミュレーション方法の処理手順（以下、単に「第２の処理手順」と称する。）の処理ステップを示す処理フロー図である。
【００６９】
第２の処理手順（ステップＳ２１〜ステップＳ２７）は、例えば、第２のプラント制御装置１０Ｂがプラント動作シミュレーションを実行することによって、その処理ステップ（ステップＳ２１〜ステップＳ２７）が実行される。すなわち、スケジューラ２９を起動してプラント動作シミュレーションが実行され、第２の処理手順の処理ステップは開始される（開始）。
【００７０】
スケジューラ２９が起動して第２の処理手順の処理ステップがスタートすると、ステップＳ２１に進み、第１の処理手順のステップＳ１と同様に、プロセスＩＯインターフェース処理部３０でのプロセスＩＯインターフェース処理、シミュレーションデータ展開処理部２６でのシミュレーションデータ展開処理およびアプリケーション解読実行処理部２７でのアプリケーション解読実行処理がスタートする（ステップＳ２１）。
【００７１】
続いて、ステップＳ２１からステップＳ２２〜ステップＳ２３で実行されるループ、すなわち、コード解読が完了するまでステップＳ２２とステップＳ２３とを繰返し実行するループ（以下、「第３のループ」と称する。）に進む。
【００７２】
第３のループのステップＳ２２では、アプリケーション解読実行処理部２７がアプリケーションコードメモリ２３のアプリケーションコードを解読し、続くステップＳ２３で、ユーザレジスタ２５のデータと、スケジューラ２９から通知された基準時間単位の経過時間を用いて解読したアプリケーションコードを実行する。ステップＳ２２とステップＳ２３とを繰返し実行してコード解読が完了すると、第３のループを脱して、ステップＳ２４に進む。
【００７３】
ステップＳ２４では、アプリケーション解読実行処理部２７が、繰返し条件設定部３５から送られた繰返し条件を完了しているかを判定する。例えば、アプリケーションを繰返し実行させる回数は、当該回数を示す数値を格納する変数を設定しておき、設定した変数と繰返し回数として設定された設定値とを比較して判断する。
【００７４】
アプリケーション解読実行処理部２７が繰返し条件を完了していないと判断した場合（ステップＳ２４でＮＯの場合）、ステップＳ２５に進み、アプリケーション実行回数をカウントアップし（ステップＳ２５）、アプリケーションの実行周期の１周期を終了する（終了）。
【００７５】
一方、アプリケーション解読実行処理部２７が繰返し条件を完了していると判断した場合（ステップＳ２４でＹＥＳの場合）、ステップＳ２６に進み、アプリケーション解読実行処理部２７はアプリケーションの実行回数をクリア（アプリケーション実行回数を示す変数に格納される数値を０に）する。そして、ステップＳ２７で、スケジューラ２９へ繰返し条件が完了したことを通知する。スケジューラ２９は、繰返し条件が完了した旨の通知を受け取ると、シミュレーションデータ展開処理部２６とアプリケーション解読実行処理部２７の実行周期の計測とその起動を停止する（終了）。
【００７６】
尚、上述したシミュレーションの実行停止状態からシミュレーションを再開させるためには、オペレータは保守ツール１１を用いて、繰返し条件設定部３５に新たな繰返し条件を設定し、プラント制御装置１０Ｂにシミュレーション再開を指示する。シミュレーション再開が指示されると、スケジューラ２９は、再開が指示された時点の基準時間から実行周期テーブル２８のＩＯデータ授受実行周期とアプリケーション実行周期の計測を再開し、シミュレーションデータ展開処理部２６やアプリケーション解読実行処理部２７の起動を再開する。
【００７７】
このように、第２のプラント制御装置１０Ｂおよび第２の処理手順によれば、プラント制御アプリケーションに時間に依存するロジックが含まれている場合でも、オペレータが指定した加速／減速度合いに応じた基準時間を用いて、シミュレーションデータ展開処理部２６とアプリケーション解読実行処理部２７の起動周期の計測や、経過時間の計測を行うことにより、プラント制御装置の他の機能やプラント制御アプリケーションの変更なしに加速／減速シミュレーションを実施することができる。
【００７８】
また、オペレータが指定した実行周期数分だけアプリケーションを実行させることができる。特に、高速に変化するプラント状態およびプラント制御アプリケーションの動作を１実行周期単位で確認することができる。
【００７９】
以上、プラント制御装置１０Ａ，１０Ｂ、並びに、シミュレーション方法の一例である第１の処理手順および第２の処理手順によれば、オペレータは実行周期を１実行周期とする指定することにより、１周期実行毎のステップ実行ができるプラント制御装置を得ることができ、高速に変化するプラント状態及びプラント制御アプリケーションの動作を１実行周期単位で確認することができる。
【００８０】
特に、第１のプラント制御装置１０Ａおよび第１の処理手順では、オペレータが指定したトリガ条件によって、アプリケーションの実行を中断させることもできる。そして、プラント制御アプリケーションに時間に依存するロジックが含まれていても、シミュレーション再開後の基準時間をシミュレーション再開時点での時間とすることで、シミュレーションの中断時間の影響を受けずに中断位置からアプリケーションを再開させることができる。
【００８１】
また、プラントが異常状態に至った際のデータをシミュレーションの入力データとし、プラントの異常状態発生をトリガ条件に設定してシミュレーションを中断させることにより、異常状態に至った時点でのプラント制御アプリケーションの内部状態を保守ツール１１によって解析することができる。
【００８２】
一方、第２のプラント制御装置１０Ｂおよび第２の処理手順では、オペレータが指定した実行周期数分だけアプリケーションを実行させることができる。特に、高速に変化するプラント状態およびプラント制御アプリケーションの動作を１実行周期単位で確認することができる。
【００８３】
尚、本発明は上記の各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化しても良い。また、上記の各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除しても良い。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００８４】
例えば、第１のプラント制御装置１０Ａについてトリガ条件設定部３３を具備しないプラント制御装置を形成したり、第１のプラント制御装置１０Ａと第２のプラント制御装置１０Ｂの構成要素を組み合わせて、トリガ条件設定部３３と繰返し条件設定部３５とを具備するプラント制御装置を形成することもできる。
【符号の説明】
【００８５】
１０Ａ  第１のプラント制御装置
１０Ｂ  第２のプラント制御装置
１１  保守ツール
１２  プロセスＩＯ
２１  タイマ
２２  基準時間生成処理部
２３  アプリケーションコードメモリ
２４  シミュレーションデータメモリ
２５  ユーザレジスタ
２６  シミュレーションデータ展開処理部
２７  アプリケーション解読実行処理部
２８  実行周期テーブル
２９  スケジューラ
３０  プロセスＩＯインターフェース処理部
３１  保守ツールインターフェース
３２  シミュレーション条件設定部
３３  トリガ条件設定部
３５  繰返し条件設定部
【図１】
2012113572.tif 000003
【図２】
2012113572.tif 000004
【図３】
2012113572.tif 000005
【図４】
2012113572.tif 000006
【図５】
2012113572.tif 000007
【図６】
2012113572.tif 000008
【図７】
2012113572.tif 000009
【図８】
2012113572.tif 000010