(57)【要約】【課題】複数の計算機からなる実システムを用いた操作訓練を準備に労力をかけなくても実行可能にする。【解決手段】複数のサブシステムＳ１，Ｓ２，Ｓ３がネットワーク３により接続された実システム１において、全てのサブシステムに操作者がいない場合、例えば稼働させることができるが操作者がいないサブシステムＳ２、稼働していないサブシステムＳ３などがある場合であっても、サブシステムＳ２においては同システム設けられた模擬部１３により処理動作が実行され、サブシステムＳ３については同システムに代わってシミュレータ２に設けられた模擬部２３により処理動作が実行される。【選択図】      図１
2006258987.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにより接続された複数のサブシステムを含む実システムと、
前記実システムの複数のサブシステムの処理動作を模擬するシミュレータとを有する訓練支援システムであって、
前記シミュレータは、
前記実システムのサブシステムを操作する訓練対象者に対する訓練のための処理要求を行う処理要求手段と、
前記処理要求手段による処理要求に対する処理動作を模擬するか前記サブシステムで実稼働させるかを判定する第１判定手段と、
前記第１判定手段により前記サブシステムで実稼働させると判定された場合に、前記処理要求手段による処理要求を前記実システムのサブシステムに送信する処理要求送信手段とを有し、
前記サブシステムは、
前記処理要求送信手段により送信された処理要求を受信する処理要求受信手段と、
前記処理要求受信手段によって受信された処理要求に対して、処理動作を模擬するか訓練対象者によって操作させて処理動作を実行するかを判定する第２判定手段と、
前記第２判定手段によって処理動作を模擬すると判定された場合に処理要求に対する処理を模擬して処理結果を生成する模擬手段と、
前記模擬手段によって模擬された処理結果あるいは前記訓練対象者による操作に応じた処理結果を送信する処理結果送信手段と
を有したことを特徴とする訓練支援システム。
【請求項２】
前記シミュレータは、前記実システムに含まれるサブシステムのそれぞれに対応する複数のモジュールを設け、この複数のモジュールを組み合わせることで前記実システム全体を模擬することを特徴とする請求項１記載の訓練支援システム。
【請求項３】
前記シミュレータは、前記第１判定手段によって処理動作を模擬すると判定された場合に、前記訓練対象者が操作するサブシステムに対応するモジュールにより処理動作を模擬することを特徴とする請求項２記載の訓練支援システム。
【請求項４】
前記シミュレータは、前記第１判定手段によって処理動作を前記サブシステムで実稼働させると判定された場合に、当該サブシステムに対応するモジュールによって処理要求を送信し、この処理要求に対する前記処理結果送信手段によって送信された処理結果を受信することを特徴とする請求項２記載の訓練支援システム。
【請求項５】
前記第１判定手段及び前記第２判定手段による判定を定義する判定データを設定する設定手段を具備し、
前記第１判定手段及び前記第２判定手段は、前記設定手段によって設定された前記判定データに応じて処理要求に対する判定を行うことを特徴とする請求項１記載の訓練支援システム。
【請求項６】
前記シミュレータは、
処理動作を一時停止させる指示を入力する停止指示入力手段と、
前記停止指示入力手段によって一時停止の指示が入力された後に、前記処理要求送信手段によって送信され前記サブシステムに受信されなかった処理要求を記憶する記憶手段と、
処理動作の再開の指示を入力する再開指示入力手段と、
前記再開指示入力手段によって入力された指示に応じて処理動作が開始される際に、前記記憶手段に記憶された処理要求を前記サブシステムに再送する再送手段と
を具備したことを特徴とする請求項１記載の訓練支援システム。
【請求項７】
複数のサブシステムを含む実システムの処理動作を模擬するシミュレータを実現するコンピュータを、
前記実システムのサブシステムを操作する訓練対象者に対する訓練のための処理要求を行う処理要求手段と、
前記処理要求手段による処理要求に対する処理動作を模擬するか前記サブシステムで実稼働させるかを判定する第１判定手段と、
前記第１判定手段により前記サブシステムで実稼働させると判定された場合に、前記処理要求手段による処理要求を前記実システムのサブシステムに送信する処理要求送信手段と、
前記処理要求送信手段によって送信された処理要求に対する処理結果を、前記サブシステムから受信する処理結果受信手段として機能させるための訓練支援プログラム。
【請求項８】
ネットワークにより接続された他の複数のコンピュータとにより実システムを構成するコンピュータを、
訓練対象者に対する訓練のための処理要求を受信する処理要求受信手段と、
前記処理要求受信手段によって受信された処理要求に対して、処理動作を模擬するか訓練対象者によって操作させて処理動作を実行するかを判定する第２判定手段と、
前記第２判定手段によって処理動作を模擬すると判定された場合に処理要求に対する処理を模擬して処理結果を生成する模擬手段と、
前記模擬手段によって模擬された処理結果あるいは前記訓練対象者による操作に応じた処理結果を送信する処理結果送信手段として機能させるための訓練支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続された複数の計算機で構成される実システムの操作訓練を行うための訓練支援システム、訓練支援プログラム、及び訓練支援方法に関する。
【背景技術】
【０００２】
従来、シミュレータで実世界を模擬させた訓練システムが提案されているが、仮想空間内で閉じたものが主である。また、コンピュータ上で動作する対戦型の囲碁・将棋等のゲームは、複数の仮想的なプレイヤーの意志決定を模擬するが、それらの模擬は１台のマシンで集中して行われている。これらは、実際に運用されているシステムを複数の人間が同時に訓練する用途には不向きである。
【０００３】
これに対し、複数のオペレータを同時に訓練できるようにする訓練シミュレータも提案されている（例えば特許文献１）。特許文献１に記載された訓練シミュレータでは、制御システム模擬手段を複数個用い、その内の少なくとも１つの制御システム模擬手段が、メモリからのデータを情報伝送手段を介して入力するよう構成することで、制御システム模擬手段を並行して作用できるようにして、複数のオペレータが同時に事故対策のための処置を実施するようなケースの訓練を実現できるようにしている。
【特許文献１】特開平５−３１６６５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
こうして特許文献１に記載された訓練シミュレータでは、複数のオペレータの訓練を実現できるものの、訓練シミュレータ用に複数の電子計算機によって構成されたものであり仮想空間での訓練となっていた。
【０００５】
実システムにおいて訓練シミュレータを実現しようとした場合には、実システムの方が特許文献１にある訓練シミュレータを構成するシステムよりも複雑で大規模であるため、操作訓練を効率良く行うのは困難であった。すなわち、実システムの規模が大きくなると、それに伴ってシステムに関わる操作者が多人数となるため、システム全体を訓練するためには、それら全ての操作者が同時にシステムの操作を行う状態にしなければならない。従って、訓練を実施する場合には、全ての操作者のスケジュールを調整する必要があり、その調整はかなり困難となってしまう。また、システム全体に対する訓練を実行する場合には、システムを構成する全てのサブシステムを稼動させなければならず、その間、それぞれのサブシステムの操作者を拘束してしまうことになる。
【０００６】
本発明は前記のような事情を考慮してなされたもので、複数の計算機からなる実システムを、システムを操作する全ての操作者がいない場合であってもシステム全体が動作している時と同様の動作を再現することで、準備に労力をかけなくても実システムの訓練が可能な訓練支援システム、訓練支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、ネットワークにより接続された複数のサブシステムを含む実システムと、前記実システムの複数のサブシステムの処理動作を模擬するシミュレータとを有する訓練支援システムであって、前記シミュレータは、前記実システムのサブシステムを操作する訓練対象者に対する訓練のための処理要求を行う処理要求手段と、前記処理要求手段による処理要求に対する処理動作を模擬するか前記サブシステムで実稼働させるかを判定する第１判定手段と、前記第１判定手段により前記サブシステムで実稼働させると判定された場合に、前記処理要求手段による処理要求を前記実システムのサブシステムに送信する処理要求送信手段とを有し、前記サブシステムは、前記処理要求送信手段により送信された処理要求を受信する処理要求受信手段と、前記処理要求受信手段によって受信された処理要求に対して、処理動作を模擬するか訓練対象者によって操作させて処理動作を実行するかを判定する第２判定手段と、前記第２判定手段によって処理動作を模擬すると判定された場合に処理要求に対する処理を模擬して処理結果を生成する模擬手段と、前記模擬手段によって模擬された処理結果あるいは前記訓練対象者による操作に応じた処理結果を送信する処理結果送信手段とを有したことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ネットワークで接続された複数の計算機（サブシステム）で構成される大規模で複雑な実システムにおいて、システムを操作する全ての操作者がいない場合であっても、システム全体が動作している時と同様の動作を再現できるようにすることで、システム全体を訓練するために全ての操作者を確保する必要がなく、これにより操作訓練の準備に要する労力を低減し、操作訓練を効率良く行うことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施の形態について説明する。  
図１は、本実施形態における訓練支援システムの構成を示すブロック図である。本実施形態における訓練支援システムは、ネットワークで接続された複数の計算機で構成される大規模で複雑な実際に稼働している実システムの操作訓練を行うことができるもので、図１に示すように、実システム１にシミュレータ２をネットワーク３を介して接続することにより構成される。
【００１０】
なお、本実施形態における訓練支援システムは、大規模で複雑なシステムの操作訓練を行うためのもので、実システム１には多数の計算機（サブシステム）を含むが、図１では説明を簡単にするために、３つのサブシステムＳ１，Ｓ２，Ｓ３のみを示している。
【００１１】
シミュレータ２は、例えばサブシステム単位で模擬するモジュールを組み合わせて実行することで、実システム１の全体の動作を模擬する機能を提供する。図１に示す実システム１に設けられる３つのサブシステムＳ１，Ｓ２，Ｓ３に対しては、それぞれに対するモジュールＭ１，Ｍ２，Ｍ３が設けられる。なお、シミュレータ２では、モジュールをサブシステム単位で模擬するだけでなく、他の単位で模擬するモジュールを設けるようにしても良い。
【００１２】
実システム１のサブシステムＳ１は、計算機によって訓練支援プログラムを実行することで、図１中に示す訓練支援用の各機能が設けられる。すなわち、サブシステムＳ１では、制御部１０、判定部１１、判定テーブル１２、模擬部１３、ログデータ記憶部１４、ルールデータ記憶部１５、初期条件データ記憶部１６、送受信部１７、及び入出力インタフェース部１８が設けられる。
【００１３】
なお、サブシステムＳ１，Ｓ２，Ｓ３は、実稼働される場合には、訓練対象者または訓練統裁者によって操作される。訓練対象者は、実際に訓練を受ける対象者であり、操作内容に応じて訓練内容のデータが送受信される。訓練統裁者は、訓練を指揮監督する人物であり、訓練の開始、一時停止、再開、終了などの指揮命令を入力して、その制御命令をネットワーク３を介して他のサブシステムやシミュレータ２に送信させる。サブシステムＳ１，Ｓ２，Ｓ３は、例えば訓練対象者によって操作される訓練対象者モードと訓練統裁者によって操作される統裁者モードが設定可能であり、訓練対象者と訓練対象者の何れが使用するかに応じて設定され操作されるものとする。以下の説明では訓練対象者によって操作される場合を主にして説明する。なお、実システム１において操作訓練を行う訓練対象者は、１人でも複数でも良い。以下の説明では１人の訓練対象者がサブシステムＳ１を操作する場合について説明する。また、本実施形態の実システム１では、訓練対象者が操作するサブシステムＳ１以外の全てのサブシステムＳ２，Ｓ３において操作者がいなくても、実稼働を模擬して処理結果を出力させることができるようになっている。
【００１４】
制御部１０は、サブシステムＳ１における訓練支援処理の制御を司るもので、ＣＰＵ、プログラムやデータなどを記憶するメモリなどから構成される。制御部１０は、訓練中に送受信部１７を介してシミュレータ２あるいは他のサブシステムから受信されるデータ（処理要求メッセージ）を受け取り、そのデータに応じて必要な処理を呼び出して順次処理し、その結果を所定の送信先に送受信部１７を介して送信する。制御部１０は、判定部１１によりシステムを実稼働させる際に訓練対象者によって操作させるか、あるいは模擬するかを判定させ、この判定結果に応じた制御を行う。また、制御部１０は、訓練統裁者からの指示に応じて、前述した判定を定義する判定データを、判定部１１を通じて判定テーブル１２に設定すると共に、送受信部１７を通じてシミュレータ２に対して判定データを送信して設定させる（判定手段）。
【００１５】
判定部１１は、判定テーブル１２に設定された判定データを参照することで、システムと人間（訓練対象者）の意思決定を模擬するか、サブシステムＳ１を実稼動させるかを判定する（第２判定手段）。
【００１６】
判定テーブル１２は、判定部１１により参照されるもので、操作訓練の開始時に行われる初期条件の設定において、各サブシステムについて実稼動させるか、あるいはシミュレータ２で模擬させるかを定義する判定データが記憶される（例えば、訓練統裁者の操作による）。実システム１において判定テーブル１２に設定されたデータは、シミュレータ２に対して送信され、シミュレータ２の判定テーブル２２（後述する）にも設定される。判定テーブル１２には、例えば訓練対象とするサブシステムＳ１，Ｓ２，Ｓ３の全てのデータが一括して設定され管理されるものとする。ただし、各サブシステム単位で、そのサブシステムと対応するモジュールについての判定データを個々に持つようにしても良い。
【００１７】
模擬部１３は、判定部１１によりシステムと人間（訓練対象者）の意思決定を模擬すると判定された場合に、ルールデータ記憶部１５に定義されたルールデータに従い、システムの挙動もしくはシステム操作者による操作の模擬を実行し、その模擬動作の結果を制御部１０に返す（模擬手段）。
【００１８】
ログデータ記憶部１４は、訓練対象者の操作やシステムの挙動の内容が時間の経過に伴って、模擬部１３によりログデータとして記憶される。
【００１９】
ルールデータ記憶部１５は、サブシステムや操作者の意志決定（どのような処理の実行を指示（操作）するか）を模擬するために必要なルールをまとめたデータが予め記憶される。
【００２０】
初期条件データ記憶部１６は、操作訓練に必要な設定を行うための各種条件を記録する。操作訓練の開始時に制御部１０により初期条件データが読み出されてメモリ上に記憶されることで初期化条件の設定が行われる。この初期化条件の設定の内容は、シミュレータ１側に送信される。
【００２１】
送受信部１７は、制御部１０の制御のもとで、サブシステムＳ１とシミュレータ１あるいは他のサブシステムＳ２，Ｓ３との間で訓練に関するデータ（処理要求メッセージ、返信用メッセージ）を送受信する（処理要求受信手段、処理結果送信手段）。
【００２２】
入出力インタフェース部１８は、訓練対象者（あるいは訓練統裁者）が操作するインタフェースであり、キーボードやポインティングデバイスなどの入力装置やディスプレイ装置などの出力装置などを含む。入出力インタフェース部１８は、判定部１１で訓練対象者により実際に操作させることで実稼働するという判定がなされた場合に、訓練対象者と制御部１０との間で情報の送受信を行うために使用される。
【００２３】
なお、サブシステムＳ２，Ｓ３においても、サブシステムＳ１と同様にして訓練支援プログラムにより実現される訓練支援用の機能が設けられるものとして説明を省略する。
【００２４】
一方、シミュレータ２は、制御部２０、判定部２１、判定テーブル２２、模擬部２３、ログデータ記憶部２４、ルールデータ記憶部２５、シナリオデータ記憶部２６、メッセージ用バッファ２７、送受信部２８、及び時間管理部２９が設けられる。
【００２５】
制御部２０は、シミュレータ２における訓練支援処理の制御を司るもので、ＣＰＵ、プログラムやデータなどを記憶するメモリなどから構成される。制御部２０は、訓練中に送受信部２８を介して実システム１の各サブシステムＳ１，Ｓ２，Ｓ３から受信されるデータを受け取り、そのデータに応じて必要な処理を呼び出して順次処理し、その結果を所定の送信先に送受信部２８を介して送信する。制御部２０は、判定部２１により各サブシステムＳ１，Ｓ２，Ｓ３について、システムを実稼働させる際に訓練対象者によって操作させるか、あるいは模擬するかを判定させ、この判定結果に応じた制御を行う。制御部２０は、判定部２１によりシステムを実稼働させると判定された場合に、サブシステムを操作する訓練対象者に対する訓練のための処理要求メッセージを送受信部２８から送信する（処理要求手段）。制御部２０では、実システム１の各サブシステムＳ１，Ｓ２，Ｓ３のそれぞれに対応するモジュールＭ１，Ｍ２，Ｍ３が起動され、サブシステムを模擬する場合には対応するモジュールにより動作する。なお、制御部２０は、送受信部２８を通じて、実システムのサブシステムから判定データを受信し、判定部２１を通じて判定テーブル２２に設定する（設定手段）。また、制御部２０は、送受信部２８を通じて実システム１から処理動作を一時停止させる指示が入力された場合に、処理要求メッセージをサブシステムに送信しても受信されなかったものをメッセージ再生用バッファ２７に記憶させておく。そして、処理動作を再開させる指示に応じて処理動作を開始させる前に、サブシステムとの時間的整合性を取るために、メッセージ再生用バッファ２７に記憶された処理要求メッセージをサブシステムに送信する（再送手段）。
【００２６】
判定部２１は、判定テーブル２２に設定された判定データを参照することで、各サブシステムＳ１，Ｓ２，Ｓ３について、システムと人間（訓練対象者）の意思決定を模擬するか、サブシステムを実稼動させるかを判定する（第１判定手段）。
【００２７】
判定テーブル２２は、判定部２１により参照されるもので、各サブシステムＳ１，Ｓ２，Ｓ３について実稼動させるか、あるいはシミュレータ２側で模擬させるかを定義する判定データが記憶される。判定テーブル２２に記憶される判定データは、実システム１において操作訓練の開始時に行われる初期条件の設定において設定されたもので、送受信部２８を介して受信されたものが記憶される。判定テーブル２２には、例えば訓練対象とするサブシステムＳ１，Ｓ２，Ｓ３の全てのデータが一括して設定される。
【００２８】
模擬部２３は、判定部２１によりシステムと人間（訓練対象者）の意思決定を模擬すると判定された場合に、モジュール（サブシステム）単位でルールデータ記憶部２５に定義されたルールデータに従い、システムの挙動もしくはシステム操作者による操作の模擬を実行し、その模擬動作の結果を制御部２０に返す。また、シミュレータ２の模擬部２３では、各サブシステムに対応するモジュールＭ１，Ｍ２，Ｍ３を組み合わせて実行することで、実システム１の全体の動作を模擬する。
【００２９】
ログデータ記憶部２４は、各モジュールに対応するサブシステムにおける、訓練対象者の操作やシステムの挙動の内容が時間の経過に伴って、模擬部２３によりログデータとして記憶される。
【００３０】
ルールデータ記憶部２５は、サブシステムや操作者の意志決定を模擬するために必要なルールをまとめたデータが予め記憶される。
【００３１】
シナリオデータ記憶部２６は、訓練支援システムにおいて実行される操作訓練のシナリオデータが記録されたシナリオファイルを複数記憶する。訓練支援システムでは、シナリオデータ記憶部２６に記憶された複数のシナリオファイルから何れかが選択され、このファイルのシナリオデータに沿って操作訓練が進行される。
【００３２】
メッセージ用バッファ２７は、実システム１のサブシステムにおける稼働が停止された際に、このサブシステムに対して送信した処理要求メッセージが正しく送信できなかった場合に、訓練再開時に再送するためメッセージを一時記憶しておくために用いられる。
【００３３】
送受信部２８は、制御部２０の制御のもとで、実システム１の各サブシステムＳ１，Ｓ２，Ｓ３との間で訓練に関するデータを送受信する。送受信部２８は、判定部２１によりサブシステムを実稼動させると判定された場合に、処理要求メッセージを実システム１の所定のサブシステムに送信する（処理要求送信手段）。また、送受信部２８は、実システム１から処理動作を一時停止させる指示あるいは処理動作の再開の指示を入力して制御部２０に通知する（停止指示入力手段、再開指示入力手段）。
【００３４】
時間管理部２９は、リアルタイムな訓練を行うために、通常運用時のシステムの挙動と同様に処理が実行されるように、シミュレータ２側の時間の進み方を管理する。また、一時停止後に実際のサブシステム側に送信したデータ（処理要求メッセージ）をメッセージ用バッファ２７にバッファしておき、再開時に再送する機能を提供する。
【００３５】
次に、本実施形態における訓練支援システムの特徴の概略について説明する。ここでは、（１）訓練対象者による実際の操作と模擬の使い分け、（２）時間に関する整合性についてそれぞれ説明する。
【００３６】
（１）まず、実システム１における訓練対象者による実際の操作と模擬の使い分けについて説明する。
【００３７】
訓練支援システムにおいて、シミュレータ２は、操作訓練の対象とする実システム１をサブシステム単位（あるいはさらに詳細な機能単位）で模擬するモジュールを組み合わせることによりシステム全体を模擬する。また、シミュレータ２で実行される各サブシステムに対応する各モジュールは、実際のサブシステムと１対１に対応している。
【００３８】
図２には、実システム１を構成するサブシステムＳ１，Ｓ２，Ｓ３とシミュレータ２のモジュールＭ１，Ｍ２，Ｍ３が１対１に対応して、情報の送受信が可能であることを示している。
【００３９】
各モジュールは通信インタフェースを有しており、実システム１の対応するサブシステムに問い合わせた結果をモジュールの出力結果とすることが可能である（図３参照）。また、訓練支援システムにおいて、実システム１のサブシステムを実稼動させるか、シミュレータ２のモジュールで模擬させるかを訓練開始前に初期条件として設定することができる。
【００４０】
図３は、図２中の１対１に対応する１組のサブシステムとモジュールを示す図である。図３に示すように、サブシステムとモジュールは、サブシステムを実稼動させるか、あるいはシミュレータ側で模擬させるかに応じて経路が選択されてデータの送受信が行われる。図３においては、３つの経路（ａ）（ｂ）（ｃ）があり、何れか１つの経路が選択される。
【００４１】
（ａ）実システム１（サブシステム）を稼動して訓練対象者が実際に操作を行う場合。この場合には、（１）→（２）→（３）→（４）→（５）→（６）の経路が用いられる。
【００４２】
（ｂ）実システム１（サブシステム）を稼動するが、訓練対象者はおらず、実システムでその模擬を行う場合。この場合、（１）→（２）→（９）→（１０）→（５）→（６）の経路が用いられる。
【００４３】
（ｃ）実システムを稼動しないで、全て模擬する場合。この場合、（１）→（７）→（８）→（６）の処理経路が用いられる。
【００４４】
実システム１とシミュレータ２では、それぞれ判定部１１，２１において、システムと人間（訓練対象者）の意思決定を模擬するか、サブシステムを実稼動させるかを判定し、その判定結果に応じて制御部１０，２０により図３中の黒丸の箇所で切り替えを行うことで、前述した処理経路の何れかを利用する。
【００４５】
すなわち、経路（ａ）については、サブシステムに対する操作者が確保されている場合に用いることができる。そして、経路（ｂ）については、サブシステムにおいて操作者が確保されなかったとしても、模擬部１３によってサブシステムを実稼働させてその結果を用いて訓練を実行することができる。さらに、経路（ｃ）については、サブシステムが実稼働されない場合であっても、このサブシステムが稼働されている場合と同様にしてシステム全体が稼働されている場合の操作訓練を実行することができる。
【００４６】
なお、図３におけるモジュールに対する入力（１）は、シナリオデータ記憶部２６に記憶されたシナリオデータ、あるいは他のモジュール（サブシステム）の処理結果である。また、モジュールからの出力（６）は、他のモジュールの入力となる。
【００４７】
経路（ｃ）については、例えばモジュールに対応するサブシステムについては実稼働されないが、他のモジュール（サブシステム）を稼働させるために、シミュレータ２側で模擬した結果を他のモジュールに対して出力する場合に用いられる。
【００４８】
（２）次に、時間に関する整合性について説明する。
【００４９】
訓練支援システムでは、実際のサブシステムとシミュレータ２で模擬するサブシステムを組み合わせて実システム１の挙動を模擬した場合でも、時間管理部２９によって時間の進み方を管理し、通常運用時のシステムの挙動となんら変わらないリアルタイムな訓練が実行できるように制御する。
【００５０】
また、訓練対象者による操作訓練を途中で一時停止することができる。例えば、訓練統裁者が訓練対象者による訓練状況を監視し、訓練対象者に対して訓練途中で講評を行う場合や、シミュレータ２側で訓練環境の内部状態を変更して訓練の軌道修正を変更する場合などがある。このように操作訓練を一時停止する場合、実システム１側のサブシステムとシミュレータ２のシミュレータ２側の停止するタイミングにずれがあると、例えばシミュレータ２（モジュール）からのサブシステムに対して送信したデータが正常に受信されない場合がある。
【００５１】
図４は、実際のサブシステムが停止中にもかかわらず、シミュレータ２から訓練に関するデータ（処理要求メッセージ）を送信しようとして失敗している様子を示す。図４に示す状態は、シミュレータ２側の停止タイミングがサブシステムの停止よりも遅れたために、サブシステムが停止された後にデータが送信されることで、正常に受信されなかった例を示している。
【００５２】
こうした場合には、操作訓練を再開したときに、両者の間で矛盾が生じる可能性がある。そこで、このような矛盾が起こらないように、時間管理部２９により、サブシステムが一時停止された後に実際のサブシステム側に送信したデータをメッセージ用バッファ２７にバッファしておき、操作訓練が再開された時に再送することで同期をとるようにする。
【００５３】
次に、本実施形態における訓練支援システムの動作について説明する。  
まず、訓練支援システムの基本的な動作について、図５に示すフローチャートを参照しながら説明する。
【００５４】
はじめに、訓練支援システムにおいて操作訓練が開始される前に、実システム１において初期条件の設定が行われる。初期状態の設定は、例えば訓練統裁者によって、入出力インタフェース部１８を通じて統裁者モードを設定要求し、この統裁者モードにおいて各種指示を入力することで行われるものとする。
【００５５】
本実施形態における訓練支援システムでは、初期条件として少なくとも以下の項目（ａ）〜（ｄ）が設定されるものとする。（ａ）シミュレータ２を稼動させるマシン（コンピュータ）を一意に識別するＩＤ（ＩＰアドレスなど）、（ｂ）訓練に参加するサブシステムの稼動マシンを一意に識別するＩＤ（ＩＰアドレスなど）、（ｃ）シミュレータ２側で読み込ませるシナリオファイル名（操作訓練の内容）、（ｄ）各サブシステムを実稼動させるか、シミュレータモジュールで模擬させるかをまとめた情報（判定データ）がある。
【００５６】
制御部１０は、入出力インタフェース部１８を通じて入力される訓練統裁者からの指示に応じて、初期条件データ記憶部１６から操作訓練に必要な初期条件のデータを読み込んで、メモリ上に記憶設定する。そして、制御部１０は、判定データ（ｄ）を、判定部１１を通じて判定テーブル１２に設定する。また、制御部１０は、判定テーブル１２に設定した判定データ（ｄ）とシナリオファイル名（ｃ）を、シミュレータ２を稼動させるマシンを一意に識別するＩＤ（ＩＰアドレスなど）に従うシミュレータ２に対して、送受信部１７を通じて送信して設定させる（ステップＡ１）。
【００５７】
シミュレータ２は、ネットワーク３、送受信部２８を介して、実システム１から判定データとシナリオファイル名を受信して、操作訓練が実行可能となるように初期化を実行して初期環境を設定する。例えば、シミュレータ２の制御部２０は、判定データを判定部２１を通じて判定テーブル２２に設定し、また模擬部２３により実システム１から受信したシナリオファイル名に従うシナリオファイル（シナリオデータ）をシナリオデータ記憶部２６から読み込ませる（ステップＡ２）。
【００５８】
シミュレータ２は、初期化した操作訓練の初期環境を、送受信部２８を通じて実システム１に対して送信する（ステップＡ３）。
【００５９】
こうして、実システム１とシミュレータ２との間で同じ条件で操作訓練のための動作が実行可能となる。
【００６０】
なお、初期条件の設定は、前述のように、訓練統裁者が訓練統裁者モード下で行うだけでなく、訓練対象者自身が各種指示を入力することで設定できるようにしても良い。
【００６１】
以下、実システム１では、操作訓練で使用されるサブシステム（例えばサブシステムＳ１）において、訓練対象者により訓練対象者モードが設定され、初期設定で指定されたシナリオ（操作訓練内容）に従う操作訓練が実行される。訓練対象が使用するマシン（サブシステム）は、訓練統裁者が使用するマシンと別のものが使用され、訓練対象者による操作訓練の内容が別のサブシステムにおいて訓練統裁者が監視できるようにする。なお、訓練対象者と訓練統裁者が同一のマシンを、モードを切り替えて使用するようにしても良い。
【００６２】
以下、操作訓練が実施されるが、その間、操作訓練の終了、あるいは操作訓練の一時停止の判定が行われる（ステップＡ４，Ａ５）。
【００６３】
操作訓練の終了と判定された場合、例えば訓練対象者あるいは訓練統裁者から終了が指示された場合あるいはシナリオが終了した場合には操作訓練動作を終了する（ステップＡ４、Ｙｅｓ）。
【００６４】
一方、操作訓練の一時停止と判定された場合（ステップＡ５、Ｙｅｓ）、例えば訓練対象者あるいは訓練統裁者から終了が指示された場合には操作訓練の一時停止処理が実行される（ステップＡ７）。
【００６５】
操作訓練の終了あるいは操作訓練の一時停止と判定されていない間は（ステップＡ４，Ａ５、Ｎｏ）、実システム１（各サブシステム）とシミュレータ２との間でデータを送受信しながら、シナリオを進めて操作訓練を実施する（ステップＡ６）。なお、本実施形態における操作訓練の特徴的な動作については後述する。
【００６６】
操作訓練の一時停止が指示された場合には（ステップＡ５、Ｙｅｓ）、訓練の一時停止を行う（ステップＡ７）。例えば訓練対象者あるいは訓練統裁者から訓練の一時停止が指示されたサブシステム（マシン）は、訓練に関連している実システム１の他のマシン（サブシステム）、及びシミュレータ２を稼動しているマシンに対して一時停止の指示を出す。この一時停止の指示を受信したマシンは、現在の状態を保持して、操作訓練のための動作を停止する。この時、実システム１とシミュレータ２との間で動作を停止するタイミングのずれに対処するため、時間に関する整合性をとるための処理を実行する（図９）。
【００６７】
その後、操作訓練の再開が指示されるまで（ステップＡ８、Ｎｏ）、操作訓練の中断中処理を実行する（ステップＡ９）。中断中処理では、例えば、実システム１において実稼動させているサブシステムをシミュレータ２で模擬するように変更したり（判定データの変更）、シミュレータ２において実行されているシナリオの設定を変更するなど、訓練環境の内部状態を変更して訓練の軌道修正を変更する場合、あるいは訓練統裁者による訓練対象者に対する訓練内容についての講評する場合（例えば訓練統裁者が使用しているサブシステムから訓練対象者が使用してるサブシステムへの通知）などがある。なお、中断中処理の処理内容については任意に設定することができる。
【００６８】
そして、操作訓練の再開が指示された場合（ステップＡ８、Ｙｅｓ）、例えば訓練対象者あるいは訓練統裁者から訓練再開の指示が入力された場合、この指示を入力したサブシステム（マシン）は、訓練に関連している実システム１の他のマシン（サブシステム）、及びシミュレータ２を稼動しているマシンに対して訓練再開の指示を出す。これにより、実システム１の各サブシステムとシミュレータ２は、操作訓練の再開処理を実行する（ステップＡ１０）。
【００６９】
この時、実システム１とシミュレータ２との間で動作を一時停止するタイミングのずれに対処するため、時間に関する整合性をとるための処理を実行する（図９）。詳細については後述する。
【００７０】
次に、図５に示すフローチャート中の操作訓練の実施（ステップＡ６）における、実際の訓練対象者による操作と模擬の使い分けについて、図６に示すフローチャートを参照しながら説明する。
【００７１】
本実施形態における訓練支援システムでは、図７に示すように、訓練対象とする実システム１がサブシステムＳ１、Ｓ２、Ｓ３で構成され、それぞれネットワーク３で接続されたマシンＣ１、Ｃ２、Ｃ３上で実現されている。また、サブシステムＳ１，Ｓ２，Ｓ３は、それぞれシミュレータ２側のモジュールＭ１、Ｍ２、Ｍ３と対応している。
【００７２】
以下、図７の状況での操作訓練の動作について説明する。  
まず、シミュレータ２側のモジュールＭ１にシナリオを処理していく過程で処理要求が受信されたものとする（ステップＢ１）。
【００７３】
シミュレータ２の制御部２０は、判定部２１により判定テーブル２２を参照して、どの経路で処理を行うかを確認する（ステップＢ２）。ここで、選択される経路は、図３における３種類の経路のうちの１つとなる。
【００７４】
図８には、判定テーブル２２に設定された判定テーブルの一例を示している。図８に示すように、判定テーブル２２に設定される判定データでは、モジュール名、モジュールの配備マシン、処理マシン、対応するサブシステム、処理場所、意思決定のそれぞれについてのデータが対応づけられている。
【００７５】
図８に示す例では、シミュレータ２を実現するマシンＳＩＭに配備されているモジュールＭ１，Ｍ２に届いた処理要求は、それぞれ実システム１のマシンＣ１，Ｃ２に配備されているサブシステムＳ１，Ｓ２で処理を実行する、すなわち、実際のシステムを実稼動させることが設定されている。サブシステムＳ１に対しては、意志決定が「訓練対象者」に設定されているため、サブシステムＳ１では訓練対象者からの操作を受け付けて、その操作に応じた処理動作が実行される。また、モジュールＭ２の処理要求に対する意思決定はサブシステムＳ２が行うことが設定されている。この場合、サブシステムＳ２は稼働されるが操作者がいなくても、サブシステムＳ２の模擬部の処理動作が実行され処理結果が出力される。さらにモジュールＭ３に届いた処理要求に対しては意志決定は「なし」、すなわち実システム１ではなく、シミュレータ２側のモジュールＭ３で模擬することが設定されている。
【００７６】
前述したように、モジュールＭ１に処理要求が受信された場合には、判定テーブル２２のモジュール名がＭ１の行を検索し、この該当するデータと対応付けられた処理マシンがＣ１、処理場所がサブシステムＳ１、意思決定が訓練対象者というデータを取得する。
【００７７】
次に、制御部２０は、判定テーブル２２を参照することにより、実システム１側で処理を行うと判定された場合には、送受信部２８によって送信用のメッセージを作成させる（ステップＢ３）。
【００７８】
ここでは、モジュールＭ１に処理要求が受信され、処理マシンがＣ１であることが判定されているため、マシンＣ１宛ての処理要求メッセージＭＥＳ１を作成する。メッセージＭＥＳ１には、メッセージＩＤ、モジュール名、処理に必要なデータを付加する。
【００７９】
制御部２０は、送受信部２８により作成されたメッセージを、送受信部２８から送信先のマシンに対して送信させる（ステップＢ４）。すなわち、メッセージＭＥＳ１を実システム１のマシンＣ１（サブシステムＳ１）へ送信する。
【００８０】
一方、実システム１のサブシステムＳ１では、送受信部１７を通じて制御部１０にシミュレータ２からのメッセージが受信される（ステップＢ５）。ここでは、処理マシンＣ１に届いたメッセージが送受信部１７で処理されて、制御部１０が解釈できるデータに変換される。すなわち、メッセージＩＤ、モジュール名（Ｍ１）、処理に必要なデータが取り出される。
【００８１】
制御部１０は、判定部１１により判定テーブル１２を参照して、どの経路で処理を行うかを確認する（ステップＢ６）。判定テーブル１２には、シミュレータ２（マシンＳＩＭ）の判定テーブル２２と同じ判定データが設定されている（図８参照）。従って、前述と同様にして、判定テーブル１２からモジュール名がＭ１の行を検索し、この該当するデータと対応付けられた処理場所がサブシステムＳ１、意思決定が訓練対象者というデータを取得することができる。
【００８２】
なお、中断中処理などにおいて、判定テーブル１２に設定された判定データが変更された場合は、その変更内容を訓練に参加している全てのマシンに伝えて、それぞれが記憶している判定テーブルの内容を変更させ、訓練支援システム全体で常に整合性を保つようにされている。
【００８３】
ここで、訓練対象者が意志決定する（どのような処理の実行を操作する）と判定されている場合、制御部１０は、入出力インタフェース部１８（例えばディスプレイ）に処理要求のメッセージを出力して処理操作の実行を促す（ステップＢ７）。
【００８４】
訓練対象者は、入出力インタフェース部１８から出力されるメッセージに応じて意思決定の入力、すなわち所定の処理操作を行う。これにより、サブシステムＳ１は、訓練対象者による操作に応じた処理動作を実行する。つまり、シナリオに従う処理要求に対して処理操作を行うことで、実システム１での操作訓練が行われることになる。
【００８５】
制御部１０は、訓練対象者による操作に応じた処理結果を送信するため、返信用メッセージの送信指示に対して、判定部１１により判定テーブル１２を参照して返信先を確認する（ステップＢ９）。ここでは、判定テーブル１２（図８）からモジュール名がＭ１の行を検索し、マシンＳＩＭへ返信メッセージを送信するものと判定する。
【００８６】
制御部１０は、送受信部１７によって返信用のメッセージを作成させ、返信先に返信させる（ステップＢ１０）。
【００８７】
ここで、返信メッセージには、メッセージＩＤ、モジュール名、処理結果である返信データを付加する。返信データには、次にそのデータを送信すべきマシンの情報も記されている。このマシンの情報は、訓練対象者が明示的に指定する、あるいは訓練対象者の意思決定の結果に応じてサブシステムＳ１が決定することにより返信データに設定されるものとする。
【００８８】
本実施形態では、マシンＳＩＭ宛ての返信メッセージＭＥＳ２を作成する。メッセージＭＥＳ２には、メッセージＩＤ、モジュール名Ｍ１、返信データを付加する。返信データには、次にデータを送信すべきサブシステムとして、サブシステムＳ２が設定されているものとする。
【００８９】
シミュレータ２（マシンＳＩＭ）では、送受信部２８を通じて制御部２０に実システム１からのメッセージが受信される（ステップＢ１１）。ここでは、シミュレータ２（マシンＳＩＭ）に届いた返信メッセージが送受信部２８で処理されて、制御部２０が解釈できるデータに変換される。すなわち、メッセージＩＤ、モジュール名（Ｍ１）、返信データ（次にデータを送信すべきサブシステム）が取り出される。
【００９０】
制御部２０は、返信メッセージを受け取ると、この返信データに含まれている次にデータを送信すべきサブシステムを取り出して、判定テーブル２２の対応するサブシステムの項目と比較し、次に送信すべきモジュールもしくは実システムを決定する（ステップＢ１２）。
【００９１】
ここでは、制御部２０は、メッセージＭＥＳ２の返信データから次にデータを送信すべきサブシステムとしてサブシステムＳ２を取り出す。そして、判定テーブル２２の対応するサブシステムの項目を検索して、モジュール名Ｍ２、処理マシンＣ２、処理場所Ｓ２、意思決定Ｓ２という情報を取得する。制御部２０は（ここではモジュールＭ２）、これらの情報をもとにして、マシンＣ２（サブシステムＳ２）宛ての新たな処理要求メッセージを送受信部２８により送信させる。
【００９２】
サブシステムＳ２では、処理要求メッセージを受信すると、前述と同様にして処理要求メッセージが解釈され、判定部１１により判定テーブル１２を参照して、どの経路で処理を行うかを確認される。判定テーブル１２からモジュール名がＭ２の行を検索し、この該当するデータと対応付けられた処理場所がサブシステムＳ２、意思決定がサブシステムＳ２というデータを取得することができる（図８参照）。
【００９３】
ここで、サブシステムＳ２が意志決定すると判定されることで、サブシステムＳ２の制御部１０は、模擬部１３によりルールデータ記憶部１５に記憶されたルールデータに従って処理動作を模擬し、その処理結果をマシンＳＩＭ（シミュレータ２）に送信する（前述した経路（ｂ）の場合）。つまり、サブシステムＳ２に操作者がいなくても、サブシステムＳ２の模擬部１３によってルールデータ記憶部１５に記憶されルールデータに従い、処理要求メッセージに対して所定の処理動作を実行して処理結果を出力することができる。
【００９４】
また、シミュレータ２の制御部２０は、サブシステムから受信したメッセージの返信データから次にデータを送信すべきサブシステムとしてサブシステムＳ３が取り出されものとする。この場合、判定テーブル２２の対応するサブシステムの項目を検索して、モジュール名Ｍ３、処理マシンＣ３、処理場所Ｓ３、意思決定「なし」という情報を取得する。制御部２０は（ここではモジュールＭ３）、これらの情報をもとにして、マシンＣ３（サブシステムＳ３）に対しては処理要求メッセージを送信せず、模擬部２３によりルールデータ記憶部２５に記憶されたルールデータに従って処理動作を模擬してその処理結果を出力する（前述した経路（ｃ）の場合）。つまり、サブシステムＳ３が稼働していなくても、シミュレータ２の模擬部２３によってルールデータ記憶部２５に記憶されルールデータに従い、処理要求メッセージに対して所定の処理動作を実行して処理結果を出力することができる。
【００９５】
このようにして、本実施形態における訓練支援システムでは、複数のサブシステムＳ１，Ｓ２，Ｓ３がネットワーク３により接続された実システム１において、全てのサブシステムに操作者がいない場合、例えば稼働させることができるが操作者がいないサブシステムＳ２、稼働していないサブシステムＳ３などがある場合であっても、サブシステムＳ２においては同システム設けられた模擬部１３により処理動作が実行され、サブシステムＳ３については同システムに代わってシミュレータ２に設けられた模擬部２３により処理動作が実行されるので、サブシステムＳ１を操作する訓練対象者により実システム１を用いた操作訓練を実施することができる。
【００９６】
従って、操作訓練を実施するために、実システム１の各サブシステムＳ１，Ｓ２，Ｓ３を操作する操作者を確保するための準備が不用となるので労力を大幅に軽減することができる。
【００９７】
次に、図５に示すフローチャート中の時間に関する整合性をとるための処理（ステップＡ７〜Ａ１０）について、図９に示すフローチャートを参照しながら説明する。
【００９８】
まず、実システム１において、例えば訓練統裁者によって、サブシステムに対して操作訓練の一時停止が指示されたものとする。このサブシステムは、判定テーブル１２を参照して、ネットワーク３を通じて、訓練支援処理を実行している他のサブシステムに対して処理の一時停止を通知する指示メッセージを送信すると共に、訓練対象者による訓練操作ができない状態にする（ステップＣ１）。また、操作訓練処理を実行しているサブシステムにおいても、一時停止の指示メッセージを受信すると、操作が一切できないようにする。そして、訓練操作ができないようにしたサブシステムは、シミュレータ２側から訓練に関するメッセージが届いても、制御部１０で判断して、それらのメッセージを一切受け付けないようにする。
【００９９】
こうして、一時停止をする処理を終了したサブシステムは、訓練統裁者が操作するサブシステム（マシン）に対して、終了の返信メッセージを送信する。
【０１００】
次に、シミュレータ２についても訓練支援処理を一時停止させるために、訓練統裁者が操作するサブマシンから、シミュレータ２を稼動しているマシンに対して一時停止の指示メッセージを送信する（ステップＣ２）。
【０１０１】
シミュレータ２では、受け取った一時停止の指示メッセージを制御部２０で解釈し、シナリオの読み込みを停止して訓練支援処理を停止する。シミュレータ２は、一時停止する処理の終了後に、訓練統裁者が操作するマシンに対して、終了の返信メッセージを送信する。
【０１０２】
ところで、シミュレータ２では、一時停止の指示メッセージを受信して停止処理を終了するまでの間に、実システム１（サブシステム）に対して送信したメッセージのうちエラーで返ってきたもの（正常に送信できなかったメッセージ）があった場合、このメッセージをメッセージ用バッファ２７に記憶させておく。
【０１０３】
メッセージ用バッファ２７には、例えば送信エラーとなったメッセージをもとに、メッセージＩＤ、メッセージ内容、送信先、発信した時刻のデータを対応づけて記憶させておく。メッセージＩＤは、エラーとなって返されたメッセージのＩＤを示す。メッセージ内容は、送信しようとしたメッセージの内容を表す。送信先はメッセージの送信先を示す。また、発信した時刻は、そのメッセージを発信した時刻を表す。
【０１０４】
図１０には、メッセージ用バッファ２７に記憶された送信メッセージの一例を示している。図１０に示すメッセージ用バッファ２７において、例えばメッセージＩＤ「１０１」のメッセージについては、メッセージ内容が「ＡＢＣ…」、送信先がマシンＣ１（サブシステムＳ１）であり、発信時刻が「１０：１０：３２」であることを示すデータが記憶されている。
【０１０５】
こうして、訓練支援処理が再開された時に整合性をとるための処理を含めた一時停止の処理が完了する。
【０１０６】
ここで、実システム１では、中断中処理が実行される（ステップＣ４）。中断中処理では、前述したように、例えば実システム１において実稼動させているサブシステムをシミュレータ２で模擬するように変更したり（判定データの変更）、シミュレータ２において実行されているシナリオの設定を変更するなど、訓練環境の内部状態を変更して訓練の軌道修正を変更する場合、あるいは訓練統裁者による訓練対象者に対する訓練内容についての講評する場合（例えば訓練統裁者が使用しているサブシステムから訓練対象者が使用してるサブシステムへの通知）などがある。
【０１０７】
中断中処理が終了すると、実システム１において、例えば訓練統裁者によってサブシステムに対して操作訓練の再開が指示される。このサブシステムは、判定テーブル１２を参照して、ネットワーク３を通じて、訓練支援処理を実行する他のサブシステムに対して訓練支援処理の再開を通知する指示メッセージを送信する。この指示メッセージを受信したサブシステムは、訓練支援処理を再開し、訓練統裁者が操作するサブシステムに対して返信メッセージを送信する（ステップＣ５）。
【０１０８】
次に、シミュレータ２についても訓練支援処理を再開させるために、訓練統裁者が操作するサブマシンから、シミュレータ２を稼動しているマシンに対して再開の指示メッセージを送信する。シミュレータ２では、受け取った再開の指示メッセージを制御部２０で解釈し、再開のための処理を開始する。
【０１０９】
ここで、シミュレータ２の制御部２０は、メッセージ用バッファ２７を参照し、正常に送信されていないメッセージが記憶されている場合には、各メッセージに付加されている発信した時刻データをもとにして発信した時刻順にソートする。
【０１１０】
図１１には、図１０に示すように記憶されていたメッセージのデータをソートした例を示している。
【０１１１】
制御部２０は、発信した時刻順にソートしたメッセージを、その順番で再送する（ステップＣ６）。送信するタイミングは、一時停止前に送信したタイミングと同じとする。例えば、メッセージＩＤ３０６のメッセージは、ＩＤ２８のメッセージが送信された７秒後に送信する。
【０１１２】
なお、前述した説明では、シミュレータ２は、訓練支援処理が再開される際に自動的にメッセージ用バッファ２７に記憶されているメッセージを再送するとしているが、訓練統裁者がサブシステムからメッセージの再送指示を入力し、この指示がネットワーク３を通じて受信された場合にメッセージの再送処理を開始するようにしても良い。
【０１１３】
実システム１（サブシステム）では、シミュレータ２からのメッセージが受信されると、送受信部１７を介して制御部１０に送られる。このサブシステムが操作者により操作されている場合、受信したメッセージをディスプレイに表示すると共に、訓練対象者が意思決定の指示を入力できるように操作可能な状態にする（ステップＣ７）。
【０１１４】
例えば、図１１に示すように、メッセージ用バッファ２７にメッセージが記憶されている場合、メッセージＩＤ２８の再送用のメッセージが、マシンＣ３（サブシステムＳ３）に送信される。マシンＣ３では、受信したメッセージに対して判定テーブル１２を参照し、対応するサブシステムと意思決定を参照して、訓練対象者が存在するかどうかを判定し、訓練対象者が存在する場合はマシンの操作を可能にする。メッセージＩＤ２８のメッセージについては、対応するサブシステムがＳ３であり、これに対応する意志決定が「なし」が設定されているので操作者がないものと判定され、メッセージの表示は行われない。
【０１１５】
同様にして、メッセージＩＤ３０６，１０１の再送メッセージについても、送信先のマシンＣ１（サブシステムＳ１）に送信され、各メッセージに応じた処理が実行される。サブシステムＳ１については、意志決定が「訓練対象者」に設定されているので、ディスプレイに受信メッセージが表示される。
【０１１６】
ここで、シミュレータ２は、メッセージ用バッファ２７に記憶されていた再送用のメッセージを全て再送し終えると、再送完了のメッセージを作成し、訓練統裁者が操作するマシン（サブシステム）へ送信する。
【０１１７】
訓練統裁者が操作するマシンは、再送完了のメッセージを受信すると、判定テーブル１２を参照して訓練に参加している全てのマシンを確認し、それらの全てに対して、マシン操作を可能にするメッセージを送信する。
【０１１８】
訓練に参加しているマシンでは、マシン操作を可能にするメッセージを受け取ると、判定テーブル１２を参照して、訓練対象者が存在している場合のみマシン操作を可能にする（ステップＣ８）。
【０１１９】
このようにして、本実施形態における訓練支援システムでは、例えば訓練統裁者が訓練対象者に操作の講評をしたり、訓練環境を変更したりするために訓練支援処理を一時停止させる場合に、実システム１とシミュレータ２の停止処理の実行タイミングのずれにより、シミュレータ２から実システム１（サブシステム）へのメッセージが正常に送信できなかった場合であっても、シミュレータ２のメッセージ用バッファ２７に蓄積しておき、訓練支援処理が再開された際に送信順に従ってメッセージが再送信されるので、実システム１とシミュレータ２との間で整合をとることができる。
【０１２０】
なお、前述した実施形態では、実システム１の各サブシステムＳ１，Ｓ２，Ｓ３に模擬部１３を設けて、サブシステムと訓練対象者の模擬を実行させるものとして説明しているが、シミュレータ２側の模擬部２３によって各サブシステムにおける訓練対象者を模擬するようにしても良い。
【０１２１】
また、前述した説明では、説明を容易にするために、サブシステムＳ１において一人の訓練対象者が操作訓練を行う場合を想定しているが、同時に複数の訓練対象者がそれぞれのサブシステムにおいて操作訓練することも可能である。
【０１２２】
さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組み合わせにより種々の発明が抽出され得る。例えば、実施の形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０１２３】
また、前述した各実施形態において記載した処理は、コンピュータに実行させることのできる訓練支援プログラムとして、例えば磁気ディスク（フレキシブルディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリなどの記録媒体に書き込んで各種装置に提供することができる。また、通信媒体により伝送して各種装置に提供することも可能である。訓練支援システム（実システム１、シミュレータ２）を実現するコンピュータは、記録媒体に記録された訓練支援プログラムを読み込み、または通信媒体を介して訓練支援プログラムを受信し、このプログラムによって動作が制御されることにより、上述した処理を実行する。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施形態における訓練支援システムの構成を示すブロック図。
【図２】本実施形態における実システム１とシミュレータ２の関係を示す図。
【図３】図２中の１対１に対応する１組のサブシステムとモジュールを示す図。
【図４】本実施形態におけるシミュレータ２から訓練に関するデータ（処理要求メッセージ）を送信しようとして失敗している様子を示す図。
【図５】本実施形態における訓練支援システムの基本的な動作について説明するためのフローチャート。
【図６】本実施形態における実際の訓練対象者による操作と模擬の使い分けについて説明するためのフローチャート。
【図７】本実施形態における訓練支援システムのサブシステムとモジュールとの関係を示す図。
【図８】本実施形態における判定テーブル２２に記憶される判定データの一例を示す図。
【図９】本実施形態における時間に関する整合性の処理を説明するためのフローチャート。
【図１０】本実施形態におけるメッセージ用バッファ２７に記憶されるメッセージの一例を示す図。
【図１１】図１０に示すメッセージ用バッファ２７に記憶されたメッセージをソートした後の例を示す図。
【符号の説明】
【０１２５】
１…実システム、２…シミュレータ、３…ネットワーク、Ｓ１，Ｓ２，Ｓ３…サブシステム、１０，２０…制御部、１１，２１…判定部、１２，２２…判定テーブル、１３，２３…模擬部、１４，２４…ログデータ記憶部、１５，２５…ルールデータ記憶部、１６…初期条件データ記憶部、１７，２８…送受信部、１８…入出力インタフェース部、２６…シナリオデータ記憶部、２７…メッセージ用バッファ、２９…時間管理部。
【図１】
2006258987.tif 000003
【図２】
2006258987.tif 000004
【図３】
2006258987.tif 000005
【図４】
2006258987.tif 000006
【図５】
2006258987.tif 000007
【図６】
2006258987.tif 000008
【図７】
2006258987.tif 000009
【図８】
2006258987.tif 000010
【図９】
2006258987.tif 000011
【図１０】
2006258987.tif 000012
【図１１】
2006258987.tif 000013