(57)【要約】    【課題】  仮想時間上の１単位時間毎にシステム全体の処理を進めるステップ実行を実現できるプログラム連携システムの処理方法を提供する。    【解決手段】  プログラム連携システムは、複数のアプリケーションとプロセス接続モジュールとを含み、プロセス接続モジュールは、特定のアプリケーションから動作中情報を受けている間、周辺のアプリケーションとの同期実行処理を継続させる手順と、特定のアプリケーションからステップ終了情報を受けている間、周辺のアプリケーションの動作を特定のアプリケーションのステップ終了時間で停止させる指示を行う手順とを有し、特定のアプリケーションは、ステップ実行の指示に従って、予め設定されたステップ実行単位時間だけステップ実行処理を実行した後、一時停止する手順と、プロセス接続モジュールにステップ終了情報を通知する手順とを有する。【選択図】      図２
2006172128.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ上でそれぞれ独立のプロセスとして動作し、仮想時間の経過に対応した処理を行う複数のアプリケーションと、前記複数のアプリケーションを接続して１つのシステムとして動作させるプロセス接続モジュールとを含み、前記各アプリケーション固有の仮想時間をシステム全体の仮想時間に同期させるプログラム連携システムの処理方法において、
前記プロセス接続モジュールは、
特定のアプリケーションから動作中情報を受けている間、周辺のアプリケーションとの同期実行処理を継続させる手順と、
前記特定のアプリケーションからステップ終了情報を受けている間、前記周辺のアプリケーションの動作を前記特定のアプリケーションのステップ終了時間で停止させる指示を行う手順とを有し、
前記特定のアプリケーションは、
ユーザインタフェースを介して受け付けたステップ実行の指示に従って、予め設定されたステップ実行単位時間だけステップ実行処理を実行した後、一時停止する手順と、
前記プロセス接続モジュールに前記ステップ終了情報を通知する手順とを有することを特徴とするプログラム連携システムの処理方法。
【請求項２】
コンピュータ上でそれぞれ独立のプロセスとして動作し、仮想時間の経過に対応した処理を行う複数のアプリケーションと、ユーザインタフェースを有し、前記複数のアプリケーションを接続して１つのシステムとして動作させるプロセス接続モジュールとを含み、前記各アプリケーション固有の仮想時間をシステム全体の仮想時間に同期させるプログラム連携システムの処理方法において、
前記プロセス接続モジュールは、
前記ユーザインタフェースを介して受け付けた実行指示によりシステム全体の同時実行を開始する手順と、
前記ユーザインタフェースを介して受け付けた一時停止指示によりシステム全体を一時停止する手順と、
前記ユーザインタフェースを介して受け付けたステップ実行指示により予め設定されたステップ実行単位時間だけシステム全体の同期実行を行う手順とを有することを特徴とするプログラム連携システムの処理方法。
【請求項３】
前記ステップ実行単位時間がシステム全体の同期単位時間より短く設定された場合、前記プロセス接続モジュールは、前記ステップ実行単位で実行されるアプリケーションの総実行時間が前記同期単位時間に達した場合、システム全体を同期させることを特徴とする請求項２記載のプログラム連携システムの処理方法。
【請求項４】
前記ステップ実行単位時間は、アプリケーションが管理する１単位実行時間より短い時間単位で設定可能であり、前記プロセス接続モジュールは、ステップ実行に際して、前記アプリケーションが管理する時間単位で前記ステップ実行単位時間より長い最小時間単位の実行を前記アプリケーションに指示することを特徴とする請求項２記載のプログラム連携システムの処理方法。
【請求項５】
請求項１乃至４のいずれかに記載のプログラム連携システムが実現される情報処理装置。
【請求項６】
請求項１乃至４のいずれかに記載のプログラム連携システムの処理方法を実行するためのプログラム。
【請求項７】
請求項６に記載のプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ上で独立プロセスとして動作する複数のアプリケーションを１つのシステムとして同期・実行させるプログラム連携システムの処理方法および情報処理装置に関する。
【背景技術】
【０００２】
従来、プログラム連携システムには、独立プロセスとして動作する複数のアプリケーションソフトウェア（単にアプリケーションという）を中間インタフェース部を介して連携動作させるものが知られている（特許文献１参照）。この中間インタフェース部は、同期処理部を有し、仮想時間の概念を持つ複数のプログラムをシステム全体の１つの仮想時間に同期・実行させる。
【０００３】
しかし、このような従来のプログラム連携システムには、オペレータの操作に応じてシステム全体を微小単位で実行させる（以下、ステップ実行という）機能である、仮想時間上の一定時間毎にシステム処理を進行させる手段が備わっていない。すなわち、従来のプログラム連携システムは、システムとしてステップ実行手段を有していないか、あるいはシステムを構成するプログラムのうち１つのイベント単位でシステム全体をステップ実行させる手段のみを有しているかのいずれかであった。
【０００４】
このイベント単位でシステム全体をステップ実行させる例として、システム構成にソフトウェアデバッガを加え、デバッグ対象のブログラムの１命令単位でシステム全体を動作させる、あるいはシステム構成にシーケンシャルなデータ変化を発生させるプログラムを加え、データ変化毎にシステム全体を動作させる場合が挙げられる。
【０００５】
ここで、複数のアプリケーションプログラムを連携させて、１つのシステムとして動作させる場合、システム全体を仮想時間上の微小時間毎にステップ実行させる機能を持たせることにより、利便性が高まることが期待される。例えば、機器制御シミュレーションを行う場合、装置を制御するＣＰＵのシミュレータ、機構モデルのシミュレータ、その他、各種装置構成のシミュレータやシミュレーションを支援するシステムを受け持つアプリケーションソフトウェア（以下、まとめてシミュレータアプリケーションという）等によって、システムは構成されるが、機構モデルの微小な動作を詳細にモニタしながら、システムを構成する他の機能を同期して動作させることが必要な場合がある。つまり、システム検証が必要な場合がある。
【特許文献１】特開平１１−３２７９５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のプログラム連携システムでは、ステップ実行手段が無いので、前述したシステム検証を行うことができなかった。また、一部のプログラムのイベント単位におけるステップ実行機能しか備わっていないので、イベント間でシステムとしての微小な動作を検証することができなかった。
【０００７】
そこで、本発明は、仮想時間上の１単位時間毎にシステム全体の処理を進めるステップ実行を実現できるプログラム連携システムの処理方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明のプログラム連携システムの処理方法は、コンピュータ上でそれぞれ独立のプロセスとして動作し、仮想時間の経過に対応した処理を行う複数のアプリケーションと、前記複数のアプリケーションを接続して１つのシステムとして動作させるプロセス接続モジュールとを含み、前記各アプリケーション固有の仮想時間をシステム全体の仮想時間に同期させるプログラム連携システムの処理方法において、前記プロセス接続モジュールは、特定のアプリケーションから動作中情報を受けている間、周辺のアプリケーションとの同期実行処理を継続させる手順と、前記特定のアプリケーションからステップ終了情報を受けている間、前記周辺のアプリケーションの動作を前記特定のアプリケーションのステップ終了時間で停止させる指示を行う手順とを有し、前記特定のアプリケーションは、ユーザインタフェースを介して受け付けたステップ実行の指示に従って、予め設定されたステップ実行単位時間だけステップ実行処理を実行した後、一時停止する手順と、前記プロセス接続モジュールに前記ステップ終了情報を通知する手順とを有することを特徴とする。
【０００９】
本発明のプログラム連携システムの処理方法は、コンピュータ上でそれぞれ独立のプロセスとして動作し、仮想時間の経過に対応した処理を行う複数のアプリケーションと、ユーザインタフェースを有し、前記複数のアプリケーションを接続して１つのシステムとして動作させるプロセス接続モジュールとを含み、前記各アプリケーション固有の仮想時間をシステム全体の仮想時間に同期させるプログラム連携システムの処理方法において、前記プロセス接続モジュールは、前記ユーザインタフェースを介して受け付けた実行指示によりシステム全体の同時実行を開始する手順と、前記ユーザインタフェースを介して受け付けた一時停止指示によりシステム全体を一時停止する手順と、前記ユーザインタフェースを介して受け付けたステップ実行指示により予め設定されたステップ実行単位時間だけシステム全体の同期実行を行う手順とを有することを特徴とする。
【発明の効果】
【００１０】
本発明１に係るプログラム連携システムの処理方法によれば、プロセス接続モジュールは、特定のアプリケーションから動作中情報を受けている間、周辺のアプリケーションとの同期実行処理を継続させ、特定のアプリケーションからステップ終了情報を受けている間、周辺のアプリケーションの動作を特定のアプリケーションのステップ終了時間で停止させる指示を行い、一方、特定のアプリケーションは、ユーザインタフェースを介して受け付けたステップ実行の指示に従って、予め設定されたステップ実行単位時間だけステップ実行処理を実行した後、一時停止し、プロセス接続モジュールにステップ終了情報を通知するので、仮想時間上の１単位時間毎にシステム全体の処理を進めるステップ実行を実現できる。特に、システムの一部として構成されるアプリケーションからの情報に従って、ステップ実行を可能にする。これにより、システム検証を容易に行うことができる。
【００１１】
また、プロセス接続モジュールは、ユーザインタフェースを介して受け付けた実行指示によりシステム全体の同時実行を開始し、ユーザインタフェースを介して受け付けた一時停止指示によりシステム全体を一時停止し、ユーザインタフェースを介して受け付けたステップ実行指示により予め設定されたステップ実行単位時間だけシステム全体の同期実行を行うので、システム全体を連携・動作させる中継機能としてのプロセス接続モジュールによって、仮想時間上の１単位時間毎にシステム全体の処理を進めるステップ実行を実現できる。
【００１２】
また、アプリケーションの最小実行単位が異なる場合、小さな単位で実行可能なアプリケーションのみを微小単位でステップ実行させ、システム全体の同期としては、最小実行単位が大きなアプリケーションに合わせて連携実行させることができる。
【発明を実施するための最良の形態】
【００１３】
本発明のプログラム連携システムの処理方法および情報処理装置の実施の形態について図面を参照しながら説明する。本実施形態のプログラム連携システムは機器制御シミュレーションシステムに適用される。機器制御シミュレーションシステムは、パーソナルコンピュータ、ワークステーション等（以下、まとめてコンピュータシステムと呼ぶ）で実行されるプログラムとして、実現される。
【００１４】
［第１の実施形態］
図１は第１の実施形態の機器制御シミュレーションシステムが実現されるコンピュータシステムのハードウェア構成を示す図である。コンピュータシステム２０１は、中央処理装置（ＣＰＵ）２１１、主記憶装置（ＲＡＭ）２１２、ハードディスク２１３等を内蔵した本体部２０２、本体部２０２からの指示により画面表示を行う表示装置２０３、このコンピュータシステム２０１にユーザの指示や文字情報を入力するためのキーボード２０４、および表示装置１０２の画面上における任意の位置を指定し、その位置に表示されていたアイコン等に応じた指示を入力するマウス２０５から構成される。
【００１５】
ハードディスク２１３には、機器制御シミュレーションシステムの各機能を実現するプログラム、シミュレーションの対象となる機器の情報を含むシミュレーションのための各種データが格納される。シミュレーションを実行する際、上記プログラムおよび各種データをＲＡＭ２１２にロードし、ＣＰＵ２１１はＲＡＭ２１２にロードされたプログラムを実行する。
【００１６】
コンピュータシステム２０１の基本動作は、基本プログラムであるオペレーティングシステム（ＯＳ）を介して実行される。
【００１７】
図２は機器制御シミュレーションシステムの機能的構成を示す図である。この機器制御シミュレーションシステムは、ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２、簡易シーケンサ（シミュレータアプリケーション）１０３およびシミュレータハブ（ＨＵＢ）１０４から構成される。ＨＵＢ１０４は、コア部１０５およびインターフェース部１０６から構成される。
【００１８】
コア部１０５には、システム管理モジュール１１１、同期モジュール１１２、配線モジュール１１３などが設けられている。インターフェース部１０６には、ＣＰＵシミュレータインタフェースモジュール（ＣＩＦモジュール）１１６、機構モデルシミュレータインタフェース（ＭＩＦモジュール）１１５、およびシミュレータアプリケーションインターフェース（ＡＩＦモジュール）１１４が設けられている。ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２および簡易シーケンサ１０３は、それぞれＯＳ上で個別に動作するアプリケーションソフトであり、それぞれ独立したプロセスとして存在する。
【００１９】
本実施形態では、ＣＰＵシミュレータ１０１は、ダイナミックリンクライブラリ（ＤＬＬ）で提供される外部モジュールとの間で、共有メモリおよび関数の直接呼出し方式による外部インターフェースを有する。また、機構モデルシミュレータ１０２および簡易シーケンサ１０３は、ソケットインターフェースによるプロセス間通信方式による外部インターフェースを有する。
【００２０】
つぎに、各構成要素の機能を示す。ＣＰＵシミュレータ１０１は、シミュレーション対象となるＣＰＵ（ターゲットＣＰＵ）の動作をコンピュータシステム２０１上で実現する機能である。ここで、ターゲットＣＰＵとは、コンピュータシステム２０１に搭載されているＣＰＵでなく、シミュレーションの対象となる装置（例えば、プリンタ装置）に搭載され、この装置を制御するためのＣＰＵである。ＣＰＵシミュレータ１０１は、ターゲットＣＰＵの制御プログラム（ターゲットファームウェア）に従って、ターゲットＣＰＵの端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。
【００２１】
ＣＰＵシミュレータ１０１は、ターゲットＣＰＵのアドレス空間に対応した仮想アドレス空間を用意している。仮想アドレス空間とは、ターゲットＣＰＵが管理するアドレス空間上の個々の領域と１対１で対応する領域を、コンピュータシステム２０１のＲＡＭ２１２上に定義したものである。
【００２２】
仮想アドレス空間におけるコンピュータシステム２０１の実アドレス値は、ターゲットＣＰＵの扱うアドレス値と異なるが、ＣＰＵシミュレータ１０１は、ターゲットファームウェアによるターゲットＣＰＵアドレス空間上のアドレス値へのアクセス命令に従って、仮想アドレス空間上の対応する領域にアクセスする。ターゲットＣＰＵのレジスタ類も、仮想アドレス空間上に対応する領域が設定され、レジスタ類へのアクセスも仮想アドレス空間へのアクセスによってシミュレーションされる。
【００２３】
ＣＰＵシミュレータ１０１は、外部インターフェースとして、ターゲットＣＰＵのＩ／Ｏ、メモリ、レジスタアクセスのためのメソッドを用意している。外部モジュールは、これらのメソッドにより仮想アドレス空間へのアクセスを行う。
【００２４】
機構モデルシミュレータ１０２は、アクチュエータ、センサを含む複数の部品からなる機構モデルをコンピュータ上で擬似的に動作させる機能である。機構モデルの各要素（機構部品）には、ユーザにより形状、種類、動作、機構部品間の干渉と連携条件等が定義される。また、センサ、アクチュエータについては、外部信号定義が行われる。これらの機構部品の定義は、ＣＡＤ図面からの自動設定、専用の機構モデル作成ソフトウェアを用いたユーザ操作による設定、その両方の組み合わせによる設定などで行われる。
【００２５】
このように定義される機構部品の種類には、単なる物体として定義されるもの、および機能定義がなされるもの（モータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等）がある。また、機構部品には、対象となる装置の構成物ではないものであって、装置の動作シミュレーションに必要なもの（例えば、プリンタ装置における用紙等）も含まれる。このように構築された機構モデルは、コンピュータシステム２０１の表示装置２０３に２次元あるいは３次元のグラフィックとして表示される。
【００２６】
機構モデルシミュレータ１０２は、ＣＰＵシミュレータ１０１からＨＵＢ１０４を介して送られてきたアクチュエータ動作信号に応答し、該当するアクチュエータの機構モデルを定義された動きで動作させる。また、機構定義に基づき、アクチュエータに連結された機構部品をアクチュエータの動作に関連付けて定義された動きで動作させる。
【００２７】
また、オペレータの操作により動作する機構については、キーボード２０４、マウス２０５によってオペレータによる機構部品への操作を擬似的に再現し、擬似操作に応じて対象となる機構部品を定義された動きで動作させる。また、機構部品間の干渉、連携定義にしたがって、関連する全ての機構部品の動作が再現される。これら機構部品の動作は、表示装置２０３に表示されたグラフィックとして再現されるとともに、機構モデルの動作の結果、センサとして定義された機構モデルに予め定義された作用が発生すると、作用に応じたセンサ信号が発生し、そのセンサ信号はＣＰＵシミュレータ１０１にＨＵＢ１０４を介して送信される。
【００２８】
簡易シーケンサ１０３は、機器制御シミュレーションシステムによる各種試験のための支援プログラムであり、予め定義された信号線の変化をタイミングチャートの形式で記述するグラフィックユーザインターフェース（ＧＵＩ）を有する。簡易シーケンサ１０３は、このＧＵＩによって設定されたタイミングチャートに従って、機器シミュレーションシステムの仮想時間の中で定義された信号の変化をＨＵＢ１０４を介してＣＰＵシミュレータ１０１および機構モデルシミュレータ１０２に出力する。
【００２９】
図３は簡易シーケンサ１０３におけるタイミングチャートが表示されたＧＵＩ画面を示す図である。タイミングチャートが表示された画面の中で、従来の図形編集アプリケーションと同様の編集機能により、信号線の変化を編集することが可能である。このＧＵＩ画面には、操作ウインドウ３１０およびタイミングチャートウインドウ３２０が表示される。操作ウインドウ３１０には、停止ボタン３１１、ポーズボタン３１２、実行ボタン３１３、ステップ実行ボタン３１４、信号設定ボタン３１５、ファイルオープンボタン３１６および設定保存ボタン３１７が設けられている。信号線の追加、削除は、信号設定ボタン３１５の押下により表示されるＧＵＩ画面で行われる。
【００３０】
図４は簡易シーケンサ１０３において信号線の追加、削除が設定されるＧＵＩ画面を示す図である。このＧＵＩ画面は信号設定ウインドウ４０１として表示される。信号設定ウインドウ４０１には、使用可能信号一覧４１４、使用信号一覧４１５、追加ボタン４１１、削除ボタン４１２、適用ボタン４１７、ＯＫボタン４１８、キャンセルボタン４１９およびステップ間隔設定ボックス４１６が配置される。信号を簡易シーケンサ１０３に追加する場合、使用可能信号一覧４１４から使用する信号をマウスクリックで選択し、追加ボタン４１１をマウスクリックする。また、信号を簡易シーケンサ１０３から削除する場合、使用信号一覧４１５から削除する信号をマウスクリックで選択し、削除ボタン４１２をマウスクリックする。また、ウインドウ内でステップ実行間隔を設定することが可能である。この設定は、ステップ間隔設定ボックス４１６に、仮想時間のμｓｅｃ単位でキーボードから値を直接入力することで行われる。
【００３１】
これらの作業で、簡易シーケンサ１０３で出力する信号を決定した後、適用ボタン４１７またはＯＫボタン４１８をマウスクリックすることにより、設定が簡易シーケンサ１０３に反映される。一方、設定を簡易シーケンサ１０３に反映させない場合、キャンセルボタン４１９をマウスクリックする。ＯＫボタン４１８またはキャンセルボタン４１９がマウスクリックされると、信号設定ウインドウ４０１は閉じられる。
【００３２】
使用する信号および各信号の変化が設定された後、図３のＧＵＩ画面（ウインドウ）で設定保存ボタン３１７がマウスクリックされると、設定されたシーケンスが保存される。保存されたシーケンスファイルは、ファイルオープンボタン３１６を押下することによって読み出すことができる。
【００３３】
設定された信号シーケンスは、図３のＧＵＩ画面における以下の操作によって出力される。まず、実行ボタン３１３をマウスクリックすることにより、システムの仮想時間にしたがって設定された信号の変化を連続的に出力する。また、ポーズボタン３１２をマウスクリックすると、信号の出力を一時停止する。この場合、システムの仮想時間はポーズボタン３１２がマウスクリックされた時点で停止する。ステップ実行ボタン３１４がマウスクリックされると、予め定義された仮想時間上の一定間隔で信号の出力が行われた後、一時停止する。このステップ実行の詳細については、後述する。そして、停止ボタン３１１がマウスクリックされると、信号線の出力を停止し、シーケンスのスタート時点に戻る。このとき、機器制御シミュレーションシステム全体がリセットされる。
【００３４】
ステップ実行ボタン３１４が選択された場合の処理を示す。機器制御シミュレーションシステムは、複数の独立プロセスである周辺シミュレーションツールを組み合わせて動作させるため、それぞれの持つ仮想時間を同期させる必要がある。この方法として、ＨＵＢ１０４の同期モジュール１１２は、各インタフェースモジュールを介してそれぞれの周辺シミュレーションツールに、予め定義した１同期間隔の実行を指示する。そして、各インタフェースモジュールを介してそれぞれの周辺シミュレーションツールから１同期間隔の動作終了の通知を受ける。全周辺シミュレーションツールから１同期間隔の動作終了通知を受けた時点で、次の１同期の実行処理に移る。この処理を繰り返すことにより、機器制御シミュレーションシステムを構成する全アプリケーションを同じ仮想時間の中で動作させることができる。このような同期システムの中で、簡易シーケンサ１０３は、ステップ実行を実現する。
【００３５】
図５は簡易シーケンサ１０３の処理手順を示すフローチャートである。簡易シーケンサ１０３が起動すると、まず、初期化処理を行う（ステップＳ１）。ＨＵＢ１０４から１同期間隔実行指示があるまで待つ（ステップＳ２）。ＨＵＢ１０４から１同期間隔実行指示を受けると、ＧＵＩの設定が停止であるか否かを判別する（ステップＳ３）。停止である場合、ＨＵＢ１０４に停止を通知し（ステップＳ４）、本処理を終了する。
【００３６】
一方、ステップＳ３で停止でない場合、ポーズ状態であるか否かを判別する（ステップＳ５）。ポーズ状態である場合、ステップＳ３の処理に戻る。ここで、ポーズ状態とは、ポーズボタン３１２がマウスクリックされた状態の他、ステップ実行ボタン３１４によって１ステップ実行終了後、次のステップ実行または実行指示までの一時停止状態を含む。
【００３７】
一方、ステップＳ５でポーズ状態でないと判別された場合、ＨＵＢ１０４に実行を通知した後（ステップＳ６）、シーケンスシミュレータの仮想時間最小単位をカウントアップし（ステップＳ７）、その時点での仮想時間の各信号設定に応じた信号出力をＨＵＢ１０４に対して行う（ステップＳ８）。
【００３８】
この後、ステップ実行であるか否かを判別し（ステップＳ９）、ステップ実行である場合、１ステップ時間が経過したか否かを判別する（ステップＳ１０）。１ステップ時間が経過している場合、ＨＵＢ１０４に１ステップ実行終了を通知し（ステップＳ１１）、ステップＳ３の処理に戻る。一方、１ステップ時間が経過していない場合、ステップＳ６の処理に戻る。
【００３９】
一方、ステップＳ９でステップ実行でない場合、１同期時間が終了したか否かを判別する（ステップＳ１２）。１同期時間に到達していない場合、ステップＳ３の処理に戻る。一方、１同期時間に到達している場合、ＨＵＢ１０４に同期実行終了を通知し（ステップＳ１３）、ステップＳ２の処理に戻る。
【００４０】
図６はＨＵＢ１０４による同期処理手順を示すフローチャートである。まず、全アプリケーションソフトウェアに１同期時間の実行を指示した後（ステップＳ２１）、簡易シーケンサ１０３からの停止通知の有無を判別する（ステップＳ２２）。停止通知があった場合、全アプリケーションをリセットし（ステップＳ２５）、本処理を終了する。
【００４１】
一方、ステップＳ２２で停止通知がない場合、簡易シーケンサ１０３からのステップ終了通知の有無を判別する（ステップＳ２３）。ステップ終了通知があった場合、各アプリケーションにステップ終了時間での停止指示を出す（ステップＳ２６）。ＨＵＢ１０４から停止指示を受けた各アプリケーションは、それぞれの実行単位時間において指示された時間を超えた時点で（既に時間を過ぎている場合には直ちに）処理を停止する。
【００４２】
この後、簡易シーケンサ１０３からの実行通知を待ち（ステップＳ２７）、実行通知を受けると、全アプリケーションに対する停止指示を解除した後（ステップＳ２８）、ステップＳ２２の処理に戻る。この処理により、各アプリケーションは、簡易シーケンサ１０３のステップ実行に伴い、それぞれの実行単位時間に応じて擬似的に同期して実行される。
【００４３】
一方、ステップＳ２３で簡易シーケンサ１０３からのステップ終了通知がない場合、全てのアプリケーションからの実行終了通知の有無を判別する（ステップＳ２４）。ここで、実行終了通知の無いアプリケーションが１つでもある場合、ステップＳ２２の処理に戻り、全てのアプリケーションから実行終了通知がある場合、ステップＳ２１の処理に戻る。
【００４４】
このように、第１の実施形態の機器制御シミュレーションシステムによれば、単位時間毎のステップ実行を実現できる。また、ステップ実行単位をシステムの同期単位よりも小さく設定した場合でも、擬似的にシステム全体をステップ実行単位で動作させることができる。
【００４５】
［第２の実施形態］
前記第１の実施形態では、周辺アプリケーションソフトである簡易シーケンサからのステップ実行方式を示したが、第２の実施形態では、アプリケーションを中継するＨＵＢからのステップ実行方式を示す。また、周辺シミュレーションツールへの指示方式の違いによるインターフェース部の対応を示す。第２の実施形態の機器制御シミュレーションシステムの機能的構成は、前記第１の実施形態と同じであるので、その説明を省略する。
【００４６】
図７はＨＵＢ１０４におけるＧＵＩ画面を示す図である。ＨＵＢ１０４が有するＧＵＩは、シミュレータコントロールバーと呼ばれる。シミュレータコントロールバーは、シミュレーションシステムの動作および設定を行う各種ボタンから構成される。各種ボタンには、メニューボタン５１１、起動ボタン５１２、終了ボタン５１３、停止ボタン５１４、ポーズボタン５１５、実行ボタン５１６およびステップ実行ボタン５１７が含まれる。
【００４７】
メニューボタン５１１をマウスクリックすると、シミュレーションシステムの各種設定メニューがプルダウンメニューとして表示される。このメニューに関しては、本発明と直接関係しないので、その詳細な説明を省略する。起動ボタン５１２をマウスクリックすると、全アプリケーションを含むシステムが起動する。システム起動後、実行ボタン５１６をマウスクリックすると、シミュレーションの実行が開始される。シミュレーション実行中に停止ボタン５１４をマウスクリックすると、シミュレーションが停止する。また、シミュレーション実行中にポーズボタン５１５をマウスクリックすると、シミュレーションが一時停止し、一時停止中にポーズボタン５１５をマウスクリックすると、一時停止の状態からシミュレーションが再開する。停止中、または一時停止中にステップ実行ボタン５１７をマウスクリックすると、予め定義された仮想時間上の一定間隔だけシステムの実行を行い、一時停止する。尚、ステップ実行の詳細については後述する。システム起動時に終了ボタン５１３をマウスクリックすると、システムを構成する各アプリケーションソフトウェア、およびＨＵＢ１０４を構成する同期、配線、インターフェースなどの各モジュールを終了する。
【００４８】
図８はＨＵＢ１０４の各種ボタンに対する処理手順を示すフローチャートである。まず、停止ボタン５１４が押下され、停止であるか否かを判別する（ステップＳ３１）。停止である場合、システム全体をリセットし（ステップＳ３７）、本処理を終了する。一方、停止でない場合、ポーズ状態であるか否かを判別する（ステップＳ３２）。ポーズ状態である場合、ステップＳ３１の処理に戻る。ここで、ポーズ状態には、ポーズボタン５１５がマウスクリックされた状態の他、ステップ実行ボタン５１７によって１ステップ実行終了後の次のステップ実行、または実行指示までの一時停止状態も含まれる。
【００４９】
一方、ステップＳ３２でポーズ状態でない場合、全アプリケーションソフトウェアに対して１ステップ間隔の実行を指示する（ステップＳ３３）。ここで、各アプリケーションに指示する１ステップ間隔の時間は、それぞれのアプリケーションの仮想時間上の最小実行時間単位で１ステップ間隔を超える最小の時間、具体的には数式（１）により求めた値に設定される。
【００５０】
Ｔ＝（＜Ｔｓｔｅｐ／ｔ＞＋１）×ｔ  …  （１）
ただし、Ｔ：アプリケーションに設定する実行時間、Ｔｓｔｅｐ：  指定されたステップ実行時間、ｔ：アプリケーションの最小実行時間、＜＞：除算結果の小数点以下切り捨てを表す。
【００５１】
この後、全アプリケーションソフトウェアからの実行終了通知を待つ（ステップＳ３４）。各アプリケーションソフトウェアは、ＨＵＢ１０４からの実行指示に対してそれぞれの最小実行単位で指示された時間に到達した時点で、実行終了通知をＨＵＢ１０４に通知する。ステップＳ３４で全アプリケーションソフトウェアからの実行終了通知を受けると、ステップ実行であるか否かを判別する（ステップＳ３５）。ステップ実行である場合、ステップＳ３１の処理に戻る。一方、ステップＳ３５でステップ実行でない場合、すなわち連続実行の場合、１同期時間に到達しているか否かを判別する（ステップＳ３６）。１同期時間に到達していない場合、ステップＳ３３の処理に戻り、１同期時間に到達している場合、ステップＳ３１の処理に戻る。
【００５２】
第２の実施形態の機器制御シミュレーションシステムによれば、このような制御を行うことにより、各アプリケーション毎の最小実行時間が異なった場合でも、システム全体で時間単位のステップ実行を実現することができる。
【００５３】
尚、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。
【００５４】
例えば、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明の目的は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５５】
プログラムコードを供給するための記憶媒体としては、例えば、ＲＯＭ、フロッピー（登録商標）ディスク、ＰＣＭＣＩＡカードやコンパクトフラッシュ（登録商標）等のメモリカード、ハードディスク、マイクロＤＡＴ、光磁気ディスク、ＣＤ−ＲやＣＤ−ＲＷ等の光ディスク、ＤＶＤ等の相変化型光ディスク等で構成されてもよい。また、プログラムコードをネットワークを介してダウンロードしてもよい。
【００５６】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００５７】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５８】
【図１】第１の実施形態の機器制御シミュレーションシステムが実現されるコンピュータシステムのハードウェア構成を示す図である。
【図２】機器制御シミュレーションシステムの機能的構成を示す図である。
【図３】簡易シーケンサ１０３におけるタイミングチャートが表示されたＧＵＩ画面を示す図である。
【図４】簡易シーケンサ１０３において信号線の追加、削除が設定されるＧＵＩ画面を示す図である。
【図５】簡易シーケンサ１０３の処理手順を示すフローチャートである。
【図６】ＨＵＢ１０４による同期処理手順を示すフローチャートである。
【図７】ＨＵＢ１０４におけるＧＵＩ画面を示す図である。
【図８】ＨＵＢ１０４の各種ボタンに対する処理手順を示すフローチャートである。
【符号の説明】
【００５９】
１０１  ＣＰＵシミュレータ
１０２  機構モデルシミュレータ
１０３  簡易シーケンサ（シミュレータアプリケーション）
１０４  シミュレータハブ
１１２  同期モジュール
２０１  コンピュータシステム
【図１】
2006172128.tif 000003
【図２】
2006172128.tif 000004
【図３】
2006172128.tif 000005
【図４】
2006172128.tif 000006
【図５】
2006172128.tif 000007
【図６】
2006172128.tif 000008
【図７】
2006172128.tif 000009
【図８】
2006172128.tif 000010