(57)【要約】【課題】実プラントを模擬するプラントモデルと分散制御装置の機能をエミュレーションした模擬制御部を同一コンピュータに集約した場合でも、ＣＰＵの負荷を軽減して且つ実機に近い環境でのシミュレーションを実現する。【解決手段】タスクを格納する各エリア毎に設定された複数の演算周期の中の最小のものを基本周期とし、その複数の演算周期の最小公倍数を単位周期とする。基本周期毎に起動指令が与えられたときに、次の起動指令までの間に演算周期の開始点が来るようなエリアを演算周期が短い順に実行するように処理スケジュールを設定する。これにより、各タスクが単位周期内で実行される回数は実機と同じとなり、タスクの実行の順序性も実機と同じになる。一方、基本周期は実機よりも遙かに長くすることができるので演算処理のためのＣＰＵの負荷を軽減でき、プラントモデルの処理などに処理能力を割り当てることができる。【選択図】図７
2007233930.tif 000002
【特許請求の範囲】
【請求項１】
プラントの運転状況をモニタする監視端末や運転を制御する制御端末の動作をコンピュータ上で模擬するプラントモデルと、前記プラントモデルにより生成される模擬監視信号を受けて所定の演算処理を実行して前記プラントモデルに対し模擬制御信号を与えるためにコンピュータ上にエミュレートされた模擬制御部と、を有する分散制御システム用シミュレータにおいて、前記模擬制御部は、
a)制御演算を実行するための複数のプログラムをそれぞれタスクとし、それぞれ同一又は相違する演算周期が設定された状態でタスクを格納しておくためのタスク格納部と、
b)与えられたタスクのプログラムを実行することで制御演算を実行するタスク実行部と、
c)複数種類の演算周期の中で最小のものを基本周期として該基本周期毎に起動指令を発する管理部と、
d)複数種類の演算周期の最小公倍数を単位周期とし、１単位周期内で実行される演算回数が各タスク毎に（単位周期）／（演算周期）となるようにするとともに、前記起動指令が与えられるとまず演算周期が基本周期であるタスクを選択し、引き続いて、次の起動指令が来るまでの基本周期内に演算周期が回ってくるタスクについて所定の順序で選択するように、１単位周期内のタスクの選択順序を設定するタスク選択順序設定部と、
e)前記管理部により与えられる前記起動指令に応じて、前記タスク選択順序設定部により設定された選択順序に基づいて前記タスク格納部から順次タスクを選択して前記タスク実行部に与えるタスク選択部と、
を備えることを特徴とする分散制御システム用シミュレータ。
【請求項２】
前記タスク選択順序設定部における前記所定の順序は演算周期の短いものを優先させたものであることを特徴とする請求項１に記載の分散制御システム用シミュレータ。
【請求項３】
前記タスク格納部の格納領域を仮想的に複数に分割し、各分割領域にそれぞれタスクを格納するとともに分割領域毎に演算周期が設定されてなり、前記タスク選択順序設定部は、分割領域を１つの処理単位としてその演算周期に応じて選択順序を設定するようにしたことを特徴とする請求項２に記載の分散制御システム用シミュレータ。
【請求項４】
複数の分割領域に同一の演算周期が設定されている場合には、予め付した領域識別情報に基づく規定の規則で優先性を定めたものであることを特徴とする請求項３に記載の分散制御システム用シミュレータ。
【請求項５】
前記プラントモデルと前記模擬制御部が同一のコンピュータ上に実現されていることを特徴とする請求項１〜４のいずれかに記載の分散制御システム用シミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種プラントを監視／制御するための分散制御システムの動作を模擬する分散制御システム用シミュレータに関し、さらに詳しくは、該シミュレータにおいて制御演算の遂行を管理制御する技術に関する。
【背景技術】
【０００２】
工場、発電設備、ゴミ焼却設備、水処理設備などの各種のプラントを制御／監視するために分散制御システムが使用されている。図１は一般的な分散制御システムの一例の概略構成図である。図１において、制御装置１は通信ユニット（ＮＴＵ）１１を介してＬＡＮ等のネットワーク回線２に接続され、ネットワーク回線２を介してオペレータが操作するオペレータコンソール３に接続されている。制御装置１は通信ユニット１１以外に、演算ユニット（ＬＣＵ）１２、アナログ入力モジュール（ＡＩ）１３、アナログ出力モジュール（ＡＯ）１４、デジタル入力モジュール（ＤＩ）１５、デジタル出力モジュール（ＤＯ）１６等の各種ユニット又はモジュールを備えており、これら入出力モジュール１３〜１６を介してプロセスを監視するための各種監視端末（例えば流量センサ、圧力センサ、温度センサなど）４や各種制御端末（例えばバルブ、ヒータなど）５に接続されている。
【０００３】
演算ユニット１２は各種の制御演算処理を実行するためにＣＰＵ、ＲＯＭ、ＲＡＭ等を備えた回路であって、図２に示すように、機能的には、タスク制御処理部２０とタスク格納部２１とを含む。タスク格納部２１は、プロセス制御のための制御演算用のプログラムデータをそれぞれタスクとして記憶しておくための記憶部であり、仮想的に複数のエリア（記憶領域）に分割されている。この例ではエリア数は４であって第１〜第４エリア２１１〜２１４としているが、このエリア数は予め定められた最大個数（例えば８個）の範囲内で任意である。各エリアにはそれぞれのタスクを格納することが可能であり、各エリア内に格納されたタスクは一つの処理単位として起動されることになる。
【０００４】
各エリアには予め決められた複数の演算周期の中で任意のものを設定できる。例えば、１０ｍｓ、２０ｍｓ、５０ｍｓ、１００ｍｓ、２００ｍｓ、２５０ｍｓ、５００ｍｓ、１０００ｍｓの８種類の演算周期が用意されており、この中の任意のものを選んで各エリア毎に設定できるようにしている。即ち、プロセス制御の応答が緩慢でもよい処理は長い演算周期を設定すればよいし、高速の応答を要求される処理については短い演算周期を設定する必要がある。例えば図２の例では、第１〜第４エリア２１１〜２１４にはそれぞれ２００ｍｓ、２５０ｍｓ、５００ｍｓ、１０００ｍｓの演算周期が設定されている。
【０００５】
タスク制御処理部２０はタスク格納部２１から各エリア毎にタスクを読み出し、例えば入力されたプロセス監視信号に対してそのタスクのプログラムに従った制御演算処理を実行してプロセス制御信号を生成して出力する。したがって、各エリア２１１〜２１４に設定されている演算周期にできるだけ適合するようにエリアを選択して、そのエリア内のタスクを実行する必要がある。そこで、実機では、次のようにしてタスクの演算順序を決めている。図２の例における各エリア２１１〜２１４内のタスクの処理動作を図３により説明する。
【０００６】
タスク制御処理部２０は上記８種類の演算周期の最大公約数である１０ｍｓを基本周期として各エリアのタスクを選択する機能を有する。また、上記８種類の演算周期の最小公倍数である１０００ｍｓを単位周期として考える。タスク制御処理部２０は異なるエリアに格納されているタスクを同時に処理することはできないため、同一タイミングで演算周期が回ってきた場合の優先性を予め定めておく。ここでは、演算周期の短いものほど優先性が高く、同じ演算周期であればエリアに付された番号の小さいものほど優先性を高くする。
【０００７】
図３に示すように、単位周期の開始点では全ての演算周期が回ってくるが、上記優先性に従って、まず演算周期が最短の第１エリア２１１に格納されているタスクを選択してその演算処理を実行し、これが終了したならば引き続き次に演算周期が短い第２エリア２１２に格納されているタスクを選択してその演算処理を実行する。その終了後、第３エリア２１３、第４エリア２１４と順にそれらのエリアに格納されているタスクを実行する。単位周期の開始点から２００ｍｓ経過後に、演算周期２００ｍｓが回ってくるから第１エリア２１１に格納されているタスクを選択してその演算処理を実行する。その後、演算周期２５０ｍｓが回ってくるから第２エリア２１２に格納されているタスクを選択してその演算処理を実行する。
【０００８】
単位周期の開始点から４００ｍｓ経過後に、演算周期２００ｍｓが再び回ってくるから第１エリア２１１に格納されているタスクを選択してその演算処理を実行する。その後、単位周期の開始点から５００ｍｓ経過後に、演算周期２５０ｍｓ及び５００ｍｓの両方が回ってくるが、前者が優先であるから、まず第２エリア２１２に格納されているタスクを選択してその演算処理を実行した後に引き続いて、第３エリア２１３に格納されているタスクを選択してその演算処理を実行する。
【０００９】
単位周期の開始点から６００ｍｓ経過後に、演算周期２００ｍｓが再び回ってくるから第１エリア２１１に格納されているタスクを選択してその演算処理を実行する。その後、単位周期の開始点から７５０ｍｓ経過後に演算周期２５０ｍｓが再び回ってくるから、第２エリア２１２に格納されているタスクを選択してその演算処理を実行し、単位周期の開始点から８００ｍｓ経過後に、演算周期２００ｍｓが再び回ってくるから第１エリア２１１に格納されているタスクを選択してその演算処理を実行する。
【００１０】
このようにして１単位周期内の各エリア２１１〜２１４のタスクの演算処理が一巡する。このときの１単位周期内の各エリアの演算実行の順序を図３中の（）内に示している。タスク制御処理部２０は基本周期１０ｍｓ毎に起動されてタスクの読み出しと演算実行とが開始可能であるため、複数のエリアの演算周期が重なる場合を除いて、演算周期毎に実際のタスクの演算処理を実行することができる。以上のようにして、タスク制御処理部２０は複数のエリアに分けて登録された複数のタスクをそれぞれの演算周期に合わせて実行してゆくことにより、適切なプロセス制御／監視を実行する。
【００１１】
さて、上述したような分散制御システムでは自動化が進んではいるものの、オペレータによる操作・監視を必要とすることも多く、高い信頼性と安全性とを確保するにはオペレータの運転の習熟が不可欠である。オペレータが運転の訓練を行うために実機を使用することは実際上難しいため、実機の動作を模擬したシミュレータを用いて運転訓練を行うのが一般的である（例えば特許文献１、２など参照）。
【００１２】
シミュレータは、実際のプラントにおける各種制御端末５や各種監視端末４の動作をコンピュータ上で模擬するプラントモデルと、制御装置１の機能をコンピュータ上でエミュレーション（emulation）した模擬制御部とを含んで構成される。従来一般的には、プラントモデルと模擬制御部とはそれぞれ別個のコンピュータ上で実現されるが、そうした場合にはＬＡＮ等のネットワーク回線を通して模擬制御信号や模擬監視信号を授受することになり、信号の伝送遅延等のためにシミュレーションのリアルタイム性に劣る場合がある。そこで、こうした問題を避けるために、同一のコンピュータ上でプラントモデルと模擬制御装置を実現することが考えられる。
【００１３】
【特許文献１】特開平１１−３０９４８号公報
【特許文献２】特開平１１−２１２６２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
ところが、シミュレータで上記のような構成を採る場合、コンピュータのＣＰＵに掛かる負荷がかなり大きくなるため演算速度が問題となる。コストを下げるためには、市販されているパーソナルコンピュータを利用できるようにする必要があるが、その場合、ＣＰＵの演算速度の限界により上述したような実機と同じようなタイミングで演算処理を遂行することは実質的に不可能である。一方で、そうした制約にも拘わらず、実機の運転状態に近いシミュレーション環境が実現できないと、運転訓練の効果を損なうことになる。
【００１５】
本発明はかかる課題に鑑みて成されたものであり、その主な目的とするところは、コンピュータのＣＰＵの負荷を軽減しながら、実プラントの運転状態により近い環境で運転訓練のシミュレーションが行える分散制御システム用シミュレータを提供することにある。
【課題を解決するための手段】
【００１６】
上記課題を解決するために成された本発明は、プラントの運転状況をモニタする監視端末や運転を制御する制御端末の動作をコンピュータ上で模擬するプラントモデルと、前記プラントモデルにより生成される模擬監視信号を受けて所定の演算処理を実行して前記プラントモデルに対し模擬制御信号を与えるためにコンピュータ上にエミュレートされた模擬制御部と、を有する分散制御システム用シミュレータにおいて、前記模擬制御部は、
a)制御演算を実行するための複数のプログラムをそれぞれタスクとし、それぞれ同一又は相違する演算周期が設定された状態でタスクを格納しておくためのタスク格納部と、
b)与えられたタスクのプログラムを実行することで制御演算を実行するタスク実行部と、
c)複数種類の演算周期の中で最小のものを基本周期として該基本周期毎に起動指令を発する管理部と、
d)複数種類の演算周期の最小公倍数を単位周期とし、１単位周期内で実行される演算回数が各タスク毎に（単位周期）／（演算周期）となるようにするとともに、前記起動指令が与えられるとまず演算周期が基本周期であるタスクを選択し、引き続いて、次の起動指令が来るまでの基本周期内に演算周期が回ってくるタスクについて所定の順序で選択するように、１単位周期内のタスクの選択順序を設定するタスク選択順序設定部と、
e)前記管理部により与えられる前記起動指令に応じて、前記タスク選択順序設定部により設定された選択順序に基づいて前記タスク格納部から順次タスクを選択して前記タスク実行部に与えるタスク選択部と、
を備えることを特徴としている。
【００１７】
一例を挙げると、演算周期として２００ｍｓ、２５０ｍｓ、５００ｍｓ、１０００ｍｓの４種類を考える場合、基本周期は２００ｍｓ、単位周期は１０００ｍｓである。この場合、演算周期２５０ｍｓ、５００ｍｓについては、単位周期内において開始点以外では基本周期の開始点と演算周期の開始点とが一致しないため演算周期の開始点では起動指令が発せられず、正確に演算周期の開始点で演算処理を実行することはできない。しかしながら、タスク選択順序設定部により設定される選択順序によれば、１単位周期内でみたときに各タスクがタスク実行部で実行される回数は実機の場合と同じになる。それにより、複数の演算周期が基本周期の倍数になっていなくても、単位周期に対応する単位時間当たりの演算結果の変化量を実機とシミュレータとで同じにすることができる。また、単位周期内でいくつかのタスクの演算の開始点は実機の場合の演算の開始点と同一にはならないものの、その演算の順序性は実機の場合と同じになるため、演算結果、つまりはプロセス制御信号の発生順序も実機と同じにすることができる。
【００１８】
なお、通常、短い演算周期が設定されているタスクほど迅速な応答性が要求される制御演算であると考えられるから、上記タスク選択順序設定部における上記所定の順序は演算周期の短いものを優先させたものとすることが好ましい。即ち、例えば上記のように２００ｍｓ、２５０ｍｓ、５００ｍｓ、１０００ｍｓの演算周期が与えられた場合には、この順に優先度を与えるようにするとよい。
【００１９】
また、実際にはタスクは多数存在するから、同一の演算周期を持つタスクをまとめて処理するほうが効率的な処理が行える。そこで、本発明に係る分散制御システム用シミュレータにおいては、上記タスク格納部の格納領域を仮想的に複数に分割し、各分割領域にそれぞれタスクを格納するとともに分割領域毎に演算周期が設定されてなり、上記タスク選択順序設定部は、分割領域を１つの処理単位としてその演算周期に応じて選択順序を設定するようにした構成とすることが好ましい。
【００２０】
また、その構成において、複数の分割領域に同一の演算周期が設定されている場合には、予め付した領域識別情報に基づく規定の規則で優先性を定めたものとするとよい。具体的には例えば、領域識別情報として各領域に連続番号を付しておき、その番号の小さいものほど優先的に処理するものとすることができる。
【００２１】
なお、シミュレータとして機能するコンピュータの演算能力が十分に高ければ必ずしも本発明のような処理方法を採る必要はないが、市販の一般的なパーソナルコンピュータを用い、さらにプラントモデルと模擬制御部とをその同一のパーソナルコンピュータ上で実現しようとした場合には、ＣＰＵの演算速度の限界から実機と同様の処理は実質的に不可能である。特にこうした場合において、本発明を利用して基本周期を相対的に長くすることはＣＰＵの負荷軽減に有効である。
【発明の効果】
【００２２】
本発明に係る分散制御システム用シミュレータによれば、実機のように複数の演算周期の最大公約数を基本周期とする必要はなく、比較的長い基本周期を設定することができる。それによって、ＣＰＵの負荷が軽減でき、制御演算以外のデータ入出力、データ転送など他の処理を実行する時間的余裕を確保することが容易になる。また、ＣＰＵの負荷を軽減しながらも、制御演算結果の発生の順序性は実機と同じとなり、単位周期に相当する単位時間内の演算結果の変化量も実機と同じになる。これにより、特に順序性が重要なデジタル値出力についても、比較的変化が緩慢であるアナログ値出力についても、実機と同等の環境をシミュレータ上で実現することができ、適切な運転訓練を遂行することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の一実施例である分散制御システム用シミュレータについて図面を参照して詳細に説明する。
【００２４】
図４は本実施例による分散制御システム用シミュレータの全体構成図である。このシミュレータでは、実プラントの監視端末や制御端末の動作を模擬するプラントモデル３２と、実機の制御装置１の機能をエミュレーションした模擬制御部３１、とが同一のコンピュータ３０上で動作し、このコンピュータ３０にオペレータコンソール用端末３３が接続されている。したがって、図１に示した制御装置１に含まれる演算ユニット１２以外の他のユニット、モジュールの機能も全てコンピュータ３０のＣＰＵで処理されることになり、プラントモデル３２の機能も同じＣＰＵで処理されることになる。
【００２５】
本実施例によるシミュレータの基本的な動作の一例を挙げると、プラントモデル３２は模擬制御端末としてバルブを、模擬監視端末として流量センサを含み、模擬制御信号に基づいてこのバルブの開度を調節し、その結果として流路に流れる液体の流量を流量センサでモニタして模擬監視信号として出力する。一方、模擬制御部３１は、模擬監視信号を受け取り、それに対し所定の制御演算処理を実行して模擬制御信号を生成して出力する。例えば、上述したように模擬監視信号が流量であるとき、この流量と目標流量値との差を求め、その差をゼロとするような値を制御演算により算出してこれを模擬制御信号としてプラントモデル３２に指示する。
【００２６】
図５は模擬制御部３１の構成を機能的に示したブロック図である。演算処理機能部４１、通信機能部４２及びデータ入出力管理機能部４３はそれぞれ実機の制御装置１における演算ユニット１２、通信ユニット１１及びその他のＩ／Ｏ処理用の各モジュール１３、１４、１５、１６の機能をそれぞれエミュレーションしたものであり、管理機能部（本発明における管理部に相当）４０はこれら各部が同期して動作するように一定周期で起動指令を与える機能を有する。
【００２７】
上述のように本実施例のシミュレータは、通常であれば別々のコンピュータ上で実現される模擬制御部３１とプラントモデル３２とが同一のコンピュータ上に搭載されているため、このコンピュータで処理するべき演算量はかなり多い。その一方で、使用されるコンピュータとしては市販のパーソナルコンピュータを想定しているため、ＣＰＵの演算速度も或る程度限界がある。こうした条件から、前述した実機のように基本周期を１０ｍｓとすることは不可能である。また実機では、２００ｍｓ、２５０ｍｓ、５００ｍｓ、１０００ｍｓの４種類の演算周期が頻繁に使用されるため、実用的にはこれらをカバーできれば十分であるが、この４種類の演算周期の最大公約数である５０ｍｓを基本周期として定めることも難しい。そこで、ここでは、上記４種類の演算周期の中で最小の２００ｍｓを基本周期として定める。また、４種類の演算周期の最小公倍数である１０００ｍｓを単位周期とすることは実機と同じである。
【００２８】
図６は本実施例における演算処理機能部４１の機能的な構成を示すブロック図である。図６に示すように、タスク選択部５２は起動指令を受けて、タスク選択順序設定部５０に設定されている処理スケジュール５１に従った順序でタスク格納部５４内の各エリア５４１〜５４４内のタスクを読み出し、このタスクのプログラムをタスク実行部５３に渡して制御演算処理を実行させる。したがって、１単位周期内における各エリアのタスクの実行順序はタスク選択順序設定部５０により決められる。タスク選択順序設定部５０はタスク格納部５４内の各エリアに設定される演算周期が確定すると、それに応じて後述するような順序を決める処理スケジュール５１を作成する機能を有する。
【００２９】
ここで、処理スケジュール５１を作成する際の条件は次の通りである。
（１）複数の演算周期の中で最小の演算周期を基本周期とする。
（２）複数の演算周期の最小公倍数を単位周期とする。
（３）１単位周期内で実行される演算回数は、各タスク（ここではエリア）毎に、単位周期／演算周期となるようにする。
（４）異なる演算周期の開始点が一致した場合には、演算周期の短いものを優先的に処理する。
（５）異なるエリアに同じ演算周期が設定されている場合には、エリア番号の小さいものを優先的に処理する。
（６）起動指令が与えられたときに、まず演算周期が基本周期であるエリアの処理を実行した後に、次の起動指令までの基本周期内に演算周期の開始点が存在するエリアについては引き続いて処理を実行する。
【００３０】
図６に示した例でいうと、上記（１）、（２）により基本周期は２００ｍｓ、単位周期は１０００ｍｓとなり、１単位周期内に基本周期が５つ存在する。また上記（３）により、演算周期が２００ｍｓである第１エリア５４１内のタスクは１単位周期内に５回、演算周期が２５０ｍｓである第２エリア５４２内のタスクは１単位周期内に４回、演算周期５００ｍｓである第３エリア５４３内のタスクは１単位周期内に２回、演算周期１０００ｍｓである第４エリア５４４内のタスクは１単位周期内に１回実行されることになる。また、演算周期２５０ｍｓと５００ｍｓとは演算周期の開始点が一致することがあるが、上記（４）により、演算周期２５０ｍｓである第２エリア５４２内のタスクの実行が優先する。また上記（５）は適用されない。
【００３１】
具体的なタスク処理動作を図７により説明する。１単位周期の開始点（時間：０ｍｓ）において１番目（ｎ＝１）の起動指令が与えられたとき、このときには第１乃至第４エリア５４１〜５４２の全てを実行する必要があるが、演算周期の短いものから優先的に実行することになる。即ち、タスク選択部５２は処理スケジュール５１に基づき、まず第１エリア５４１のタスク（制御演算プログラム）をタスク格納部５４から読み出してタスク実行部５３に設定する。これによりタスク実行部５３においてこのタスクが実行され、その結果が出力される。このタスクが終了すると、次に第２エリア５４２のタスク、第３エリア５４３のタスク、第４エリア５４４のタスクが順番に選択されて実行される。第４エリア５４４のタスクが終了すれば、次の起動指令が来るまで待機する。
【００３２】
１単位周期内において１個目の起動指令から２００ｍｓ後に２番目（ｎ＝２）の起動指令が与えられると、タスク選択部５２はまず第１エリア５４１のタスクを読み出してタスク実行部５３に設定する。これによりこのタスクが実行されてその結果が出力される。このタスクが終了すると、次にこの基本周期（単位周期の開始点から２００ｍｓ〜４００ｍｓの時間範囲）内に実行すべき、演算周期が２５０ｍｓである第２エリア５４２のタスクが選択されて実行される。この第２エリア５４２のタスクが終了すると、第３及び第４エリア５４３、５４４のタスクの実行はスキップされ、次の起動指令が来るまで待機する。
【００３３】
１単位周期内において１個目の起動指令から４００ｍｓ後に３番目（ｎ＝３）の起動指令が与えられると、タスク選択部５２はまず第１エリア５４１のタスクを読み出してタスク実行部５３に設定する。これによりこのタスクが実行されてその結果が出力される。このタスクが終了すると、次にこの基本周期（単位周期の開始点から４００ｍｓ〜６００ｍｓの時間範囲）内に実行すべき、演算周期が２５０ｍｓである第２エリア５４２と演算周期が５００ｍｓである第３エリア５４３のタスクが選択されて実行される。前述のように演算周期が短いほうが優先であるため、順序としては第２エリア５４２→第３エリア５４３となる。本来ならば、第２エリア及び第３エリアの演算タスクは５００ｍｓの時点で実行されるものであるが、ここでは４００ｍｓで発せられる起動指令に対応して実行される。第３エリア５４３のタスクが終了すると、第４エリア５４４のタスクの実行はスキップされ、次の起動指令が来るまで待機する。
【００３４】
１単位周期内において１個目の起動指令から６００ｍｓ後に４番目（ｎ＝４）の起動指令が与えられると、タスク選択部５２はまず第１エリア５４１のタスクを読み出してタスク実行部５３に設定する。これによりこのタスクが実行されてその結果が出力される。このタスクが終了すると、次にこの基本周期（単位周期の開始点から６００ｍｓ〜８００ｍｓの時間範囲）内に実行すべき、演算周期が２５０ｍｓである第２エリア５４２のタスクが選択されて実行される。本来ならば、第２エリア５４２のタスクは７５０ｍｓの時点で実行されるものであるが、前倒しで６００ｍｓの起動指令に対応して実行される。この第２エリア５４２のタスクが終了すると、第３及び第４エリア５４３、５４４のタスクの実行はスキップされ、次の起動指令が来るまで待機する。
【００３５】
１単位周期内において１個目の起動指令から８００ｍｓ後に５番目（ｎ＝５）の起動指令が与えられると、タスク選択部５２は第１エリア５４１のタスクのみを読み出してタスク実行部５３に設定する。そして、この第１エリア５４１のタスクが終了すると、第２乃至第４エリア５４２、５４３、５４４のタスクの実行はスキップされ、次の起動指令が来るまで待機する。
【００３６】
以上で１単位周期内のタスクの実行が終了し、次の単位周期でも同様の手順で処理が繰り返される。これにより、第１エリア５４１のタスクは１単位周期内に５回、第２エリア５４２のタスクは１単位周期内に４回、第３エリア５４３のタスクは１単位周期内に２回、第４エリア５４４のタスクは１単位周期内に１回、実行され、単位周期に相当する時間内でみたときには実機と同じ回数が確実に実行される。これにより、この単位周期に相当する単位時間当たりの演算結果の変化量は実機と同じとなる。また、図７では各エリアの実行順序を図３と同様に（）内に記載しているが、図７と図３とを比較すれば分かるように、処理の順序性も実機と同一となる。即ち、タスクによってはその実行の開始点が実機とは若干ずれるものの、演算結果の発生の順序性は完全に維持される。
【００３７】
そのため、基本周期を長くしても、実機に近いシミュレーション環境を提供することができ、運転訓練の効果を十分に発揮することができる。また、基本周期を長くしたことにより、ＣＰＵの負荷が軽減される。さらにまた、図７を図３と比較すれば分かるように、基本周期毎に与えられる起動指令のタイミングの後にタスクの実行が集約され、それによって制御演算を実行していない時間も集約される。これにより、制御演算処理以外の様々な処理に割り当てる時間を確保し易くなり、この点でもＣＰＵの負荷が軽減される。こうしたことの結果として、市販されているパーソナルコンピュータ程度のＣＰＵ性能であっても、プラントモデルと模擬制御部とを同一コンピュータ上に搭載したシミュレータを実現することができる。
【００３８】
なお、上記実施例では、演算周期等、特定の数値を例示して本実施例の構成と動作を説明したが、本発明はこの数値に限定されるものではなく、より一般的に適用が可能である。また、上記実施例では、タスク格納部を仮想的に複数のエリアに区分して各エリア毎に演算周期を設定したが、１個毎にタスクに演算周期を設定する場合でも本発明を用いることができる。また、それ以外の点においても、本発明の趣旨の範囲で適宜、変形、修正、追加を行っても本願特許請求の範囲に包含されることは明らかである。
【図面の簡単な説明】
【００３９】
【図１】一般的な分散制御システムの一例の概略構成図。
【図２】図１中の演算ユニット（ＬＣＵ）の機能ブロック図。
【図３】実機における演算タスクの処理動作を説明するためのタイミング図。
【図４】本発明の一実施例による分散制御システム用シミュレータの全体構成図。
【図５】本実施例による分散制御システム用シミュレータの模擬制御部の機能ブロック図。
【図６】図５中の演算処理機能部の詳細機能ブロック図。
【図７】本実施例によるシミュレータにおける演算タスクの処理動作を説明するためのタイミング図。
【符号の説明】
【００４０】
３０…コンピュータ
３１…模擬制御部
３２…プラントモデル
３３…オペレータコンソール用端末
４０…管理機能部
４１…演算処理機能部
４２…通信機能部
４３…データ入出力管理機能部
５０…タスク選択順序設定部
５１…処理スケジュール
５２…タスク選択部
５３…タスク実行部
５４…タスク格納部
５４１…第１エリア
５４２…第２エリア
５４３…第３エリア
５４４…第４エリア
【図１】
2007233930.tif 000003
【図２】
2007233930.tif 000004
【図３】
2007233930.tif 000005
【図４】
2007233930.tif 000006
【図５】
2007233930.tif 000007
【図６】
2007233930.tif 000008
【図７】
2007233930.tif 000009