(57)【要約】【課題】効率よく、画像形成装置の動作を検証する。【解決手段】シミュレータ装置は、画像形成装置の動作を検証するために、当該動作をシミュレーションする装置である。シミュレータ装置は、画像形成装置の動作をシミュレーション演算するための演算部と、演算部におけるシミュレーション速度を選択する選択部とを含むことを特徴とする。【選択図】図３
2007328548.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置の動作を検証するために該動作をシミュレーションするシミュレータ装置であって、
画像形成装置の動作をシミュレーション演算するための演算部と、
前記演算部におけるシミュレーション速度を選択する選択部と
を含むことを特徴とするシミュレータ装置。
【請求項２】
前記演算部は、
第１のシミュレーション速度でシミュレーション演算を実行する高速モードと、
前記第１のシミュレーション速度よりも遅い第２のシミュレーション速度でシミュレーション演算を実行する低速モードと
を含み、
前記選択部は、
前記高速モードと前記低速モードのいずれかを選択する
ことを特徴とする請求項１に記載のシミュレータ装置。
【請求項３】
前記演算部は、
前記高速モードが選択されると、前記画像形成装置の動作を第１の精度でもってシミュレーション演算する第１のシミュレーション演算手段と、
前記低速モードが選択されると、前記画像形成装置の動作を、第１の精度よりも高い第２の精度でもってシミュレーション演算する第２のシミュレーション演算手段と
を含むことを特徴とする請求項２に記載のシミュレータ装置。
【請求項４】
前記選択部は、
前記演算部におけるシミュレーション演算の実行前および実行中であっても前記高速モードと前記低速モードのいずれかを選択するための入力を受け付ける受付手段
を含むことを特徴とする請求項１ないし３のいずれかに記載のシミュレータ装置。
【請求項５】
前記選択部は、
前記演算部におけるシミュレーション速度を切り替える１以上のタイミングを指定する第１の指定手段と、
前記指定されたタイミングに対応するシミュレーション速度またはシミュレーションモードを指定する第２の指定手段と
を含むことを特徴とする請求項１ないし４のいずれかに記載のシミュレータ装置。
【請求項６】
画像形成装置の設計を支援するための設計支援方法であって、
請求項１ないし５のいずれかに記載のシミュレータ装置を用いて画像形成装置の設計を支援することを特徴とする設計支援方法。
【請求項７】
画像形成装置の動作を検証するために該動作をシミュレーションするシミュレーション方法であって、
前記画像形成装置の動作をシミュレーションするためのシミュレーション速度を選択するステップと、
選択された前記シミュレーション速度にしたがってシミュレーション演算するステップと
を含むことを特徴とするシミュレーション方法。
【請求項８】
コンピュータ上で画像形成装置の動作を検証すべく該動作をシミュレーションするコンピュータプログラムであって、
前記コンピュータ上で、
画像形成装置の動作をシミュレーション演算するための演算手段と、
前記演算手段におけるシミュレーション速度を選択する選択手段と
を実現することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置の設計を支援するためのシミュレーション技術に関する。
【背景技術】
【０００２】
従来、シート状の搬送体の搬送はあらゆる分野で行われている。例えば画像形成装置では、記録材などの搬送体をローラやガイドなどの搬送機構によって搬送する。搬送体の搬送には制御を行うためのソフトウエアは不可欠である。多くの搬送制御では等速かつ一方向にのみ搬送体を搬送することは稀有である。通常は、搬送体の搬送速度は適宜切り替えられる。例えば、センサが搬送体の位置を検知すると、搬送制御部は、所定位置で搬送体を停止させたり、ローラを逆回転させて搬送方向を反転させたりすることもある。
【０００３】
また、近年の画像形成装置は高機能・高生産が謳われている。それに伴い画像形成装置を制御するためのソフトウエアは複雑化し、不具合の発見から原因特定、修正の工数も増大している。
【０００４】
このような事情から、搬送機構の設計にシミュレーション技術を用いる機会も増えてきている。特許文献１によれば、搬送体の挙動をシミュレーション演算することで、搬送機構に潜在する欠陥を発見するシステムが提案されている。
【０００５】
機構シミュレーションがあらゆる場面で活躍している中、機構を制御するためのソフトウエアの検証技術も要望されつつある。ソフトウエアの検証に関しては、基本的な紙の動作についてのシミュレーションや、イレギュラーな状況の再現が必須である。ソフトウエアの設計ミスは、基本的な動作よりも、イレギュラーな動作を制御する部分に多く発生することが経験的にわかっている。
【０００６】
特許文献２によれば、キーボードなどの入力装置からプリンタ制御ソフトウエアにスイッチのオン／オフやカバーの開閉などの外部イベントを発生させる設計支援方法が提案されている。
【特許文献１】特開平９−８１６００号公報
【特許文献２】特開平５−１４３２６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ソフトウエアを検証するための従来のシミュレータにおいては、シミュレーションの実行速度が一定であった。そのため、用途に応じて実行速度を変更できず、大変不便であった。
【０００８】
例えば、種々のモードで動作させることで広範囲なシミュレーションを実行したい場合、シミュレーション速度を通常よりも増加させたほうが、早く結果が得られるため効率が良い。その一方で、実際にどのような現象であるかを厳密に検証したい場合、シミュレーション速度を相対的に低下させたほうが、その現象を細かく分析できる。
【０００９】
そこで、本発明は、このような課題および他の課題のうち、少なくとも１つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【００１０】
本発明は、例えば、画像形成装置の動作を検証するために該動作をシミュレーションするシミュレータ装置において好適に実現される。シミュレータ装置は、画像形成装置の動作をシミュレーション演算するための演算部と、演算部におけるシミュレーション速度を選択する選択部とを含むことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、例えば、設計者は、検証を行う用途に応じて、シミュレーション速度を選択できるため、従来よりも効率よく、画像形成装置の動作を検証することが可能となろう。
【発明を実施するための最良の形態】
【００１２】
以下に本発明の一実施形態を示す。もちろん以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１３】
図１は、実施形態に係るシミュレータ装置の概要を示す図である。このシミュレータ装置は、画像形成装置の紙搬送などのシミュレーションを実行することで、設計支援装置として機能しうる。このシミュレータ装置は、例えば、パーソナルコンピュータ（ＰＣ）と、シミュレーションプログラムとによって実現してもよいし、専用の論理回路（一部ソフトウエアにより実現されてもよい。）により実現されてもよい。このようなシミュレータ装置は、現実世界における画像形成装置を制御するファームソフトウェア（ファームウェア）における制御タイミングを設計する際に役立つであろう。
【００１４】
ソフトウェアシミュレーション部１は、例えば、紙搬送制御に関するファームソフトウェアをＰＣ上で仮想的に実行するための機能モジュールである。ソフトウェアシミュレーション部１は、ソフトウェアシミュレーションの実行結果を機構シミュレーション部２に渡す。
【００１５】
なお、ソフトウェアシミュレーション部１と機構シミュレーション部２とによって、シミュレーション演算部３を構成している。シミュレーション演算部３は、選択された様々なシミュレーション速度（シミュレーションモード）にしたがって演算を実行する。シミュレーションモードは、高速モードや通常（低速）モードなど、２以上あればよい。また、演算部３は、シミュレーション速度が相対的に遅い場合に、演算精度を相対的に高くしてもよい。
【００１６】
機構シミュレーション部２は、例えば、紙搬送制御に関わるローラの速度などから紙が紙搬送機構内のどの部位に存在するかを算出する機能モジュールである。機構シミュレーション部２は、算出結果をソフトシミュレーション部１もしくは表示制御部５に渡す。
【００１７】
入力監視部４は、マンマシンインターフェース（例：キーボードデバイスやマウスなど）からの入力を監視する機能モジュールである。入力監視部４は、ソフトウェアシミュレーションの実行開始を意味する信号が入力されると、ソフトウェアシミュレーション部１に実行開始を指示する。ま、入力監視部４およびマンマシンインターフェースは、演算部３におけるシミュレーション速度（シミュレーションモード）を選択する手段として機能する。なお、入力監視部４は、演算部３におけるシミュレーション演算の実行前および実行中であっても、シミュレーション速度を選択するための入力を受け付けてもよい。
【００１８】
表示制御部５は、例えば、ＰＣに付随するディスプレイなどの表示装置上に紙搬送シミュレーション画面などを表示させる機能モジュールである。表示制御部５は、シミュレーション速度を選択するための画面を表示装置に表示させてもよい。この画面には、シミュレーション速度を切り替えることになる１以上のタイミングを指定するためのテキストボックスが含まれてもよい。また、この画面には、指定されたタイミングに対応するシミュレーション速度またはシミュレーションモードを指定するためのボタンなどが含まれてもよい。
【００１９】
本実施形態に係るソフトウェアシミュレーション部１や機構シミュレーション部２などの各機能モジュールは、ソフトウエアモジュールとして実現されてもよい。これらのソフトウエアモジュールは、実行前は、ＰＣの記憶装置（例：ＨＤＤなど）に保管されているが、実行時には、ＰＣのＲＡＭに展開され、ＣＰＵによって実行される。
【００２０】
図２は、実施形態に係るシミュレータ装置の一例を示すブロック図である。ＣＰＵ２０１は、コンピュータプログラムに基づいて、コンピュータの各ユニットを統括的に制御する制御ユニットである。ＲＯＭ２０２は、ＰＣのファームウェアなどの制御プログラムを記憶する不揮発性の記憶ユニットである。ＲＡＭ２０３は、ワークエリアとして機能する揮発性の記憶ユニットである。ハードディスクドライブ（ＨＤＤ）２０４は、大容量の記憶ユニットである。ＨＤＤ２０４は、ソフトウエアモジュールとして実現されたソフトウェアシミュレーション部１、機構シミュレーション部２、入力監視部４および表示制御部５を記憶していてもよい。実際には、機能自体ではなく、各機能を実現するためのプログラムコードがＨＤＤ２０４に記憶されている。また、ＨＤＤ２０４には、画像形成装置の搬送制御をシミュレーションするために必要となる各種のデータを記憶している。これらのデータには、搬送パスの長さ、形状、位置や、搬送ローラ、フラッパ、シートセンサの位置、動力源（モータなと）と各機構との関係などである。
【００２１】
表示制御回路２０５は、いわゆるグラフィックスカードであり、表示制御部５からの指示に従って表示装置２０６の表示用の信号を出力する。表示装置２０６は、ユーザに対して各種情報を表示するための表示ユニットである。操作部２０７は、ポインティングデバイスやキーボードなどの入力ユニットである。
【００２２】
図３は、実施形態に係るソフトウェアシミュレーション部および機構シミュレーション部の一例を示すブロック図である。各ブロックは、ソフトウエアモジュール、ハードウエアモジュールまたはソフトウエアモジュールとハードウエアモジュールとの協働によって実現される。
【００２３】
ソフトウェアシミュレーション部１は、ファームソフトウェア部１０、同期処理部１１、入力Ｉ／Ｆ部１２、出力Ｉ／Ｆ部１３、同期信号出力部１５、ＵＩ信号入力部１６を備えている。ファームソフトウェア部１０は、例えば、現実世界の画像形成装置における紙搬送制御を行うためのソフトウエアそのものである。同期処理部１１は、ファームソフトウェア部１０の状況に応じて同期を取りながらシミュレーション時間を進める処理を実行するモジュールである。
【００２４】
入力Ｉ／Ｆ部１２は、機構シミュレーション部２からの情報を入力するためのインタフェースである。出力Ｉ／Ｆ部１３は、機構シミュレーション部２へ情報を出力するためのインタフェースである。同期信号出力部１５は、同期処理部１１により作られた同期信号を機構シミュレーション部２へ出力するインタフェースである。ＵＩ情報入力部１６は、機構シミュレーション部２から出力されるＵＩ（ユーザインタフェース）の操作に関する情報を入力するためのインタフェースである。
【００２５】
機構シミュレーション部２は、紙位置演算部２０、同期信号入力部２１、ＵＩ情報出力部２２、出力Ｉ／Ｆ部２７、ＵＩ部２８、入力Ｉ／Ｆ部２９を備えている。
【００２６】
紙位置演算部２０は、例えば、紙搬送制御に関わるモータ、クラッチ、フラッパの制御情報に基づいて紙搬送パス上の搬送速度を計算し、紙の先端位置および後端位置を算出するためのモジュールである。
【００２７】
同期信号入力部２１は、ソフトウェアシミュレーション部１から出力される同期信号を入力するインタフェースである。紙位置演算部２０は、この同期信号に従って、紙位置等の計算を行う。ＵＩ情報出力部２２は、ＵＩ部２８から入力された情報のうち同期信号に関わる情報をソフトウェアシミュレーション部１へ出力するインタフェースである。
【００２８】
出力Ｉ／Ｆ部２７は、前段の紙位置演算部２０によりセットされた紙位置の情報をソフトウェアシミュレーション部１の入力Ｉ／Ｆ部１２へと出力するインタフェースである。
【００２９】
ＵＩ部２８は、前段の紙位置演算部２０により算出された紙の先端位置および後端位置の各情報に基づき、紙搬送シミュレーション画面を表示するための表示データを作成して、表示制御部５へ出力する。また、ＵＩ部２８は、操作部２０７および入力監視部４を通じて入力された情報を受け取り、その情報を紙位置演算部２０やＵＩ情報出力部２２へと転送する。
【００３０】
入力Ｉ／Ｆ部２９は、ソフトウェアシミュレーション部１の出力Ｉ／Ｆ部１３から出力された情報を受け付けるためのインタフェースである。例えば、入力Ｉ／Ｆ部２９は、紙搬送制御に関わるモータ、クラッチ、フラッパなどの各種デバイスの制御情報を後段へと転送する。
【００３１】
図４は、表示装置２０６に表示される搬送シミュレーション画面の一例を示す図である。画面Ｗ１は、画像形成装置の搬送機構の断面を模したものである。４０１は、紙Ｐを搬送するための搬送ローラを示している。４０２は、紙の先端や後端を検出するためのシートセンサを示している。図中の破線４０３は、紙搬送パスを示している。なお、搬送ローラ４０１の数と位置、シートセンサの数と位置および搬送パスの長さと形状など、シミュレーションを行う上で必要となる各種データは、ＨＤＤ２０４に格納されているものとする。
【００３２】
図５は、シミュレーション動作を説明するための図である。とりわけ、図５には、紙搬送制御に関する各種デバイスの配例が示されている。紙Ｐは、搬送パスＡＢ上を実線矢印方向へローラＲ１により搬送される。ローラＲ１は、クラッチＣＬ１を介してモータＭ１から動力が伝達されている。紙Ｐの先端が、ローラＲ１よりも搬送方向下流に配置されたシートセンサＳ１が、紙Ｐの先端を検出すると、フラッパＦＬ１が切り替えられる。フラッパＦＬ１は、搬送パスＢＣとパスＢＤとを選択的に切り替えることができる。
【００３３】
設計者が操作部２０７を通じて紙搬送シミュレーションの開始を指示したことを入力監視部４が検出すると、ＣＰＵ２０１は、ソフトウェアシミュレーション部１および機構シミュレーション部２を起動する。なお、以下において、各モジュールを動作主体として記述するが、各モジュールがソフトウエアによって実現される場合、実際の動作主体はＣＰＵ２０１であることはいうまでもない。
【００３４】
ソフトウェアシミュレーション部１が起動されると、ファームソフトウェア部１０は、同期処理部１１と協調して、現実世界における画像形成装置の紙搬送制御を実行するソフトウエアを逐次実行していく。
【００３５】
ファームソフトウェア部１０が、モータＭ１の回転を開始させるために、出力Ｉ／Ｆ部１２を介して機構シミュレーション部２の入力Ｉ／Ｆ部２３へ必要なコマンドを出力する。コマンドの内容は、例えば、モータＭ１を特定するためのＩＤ、回転速度、回転方向などである。入力Ｉ／Ｆ部２３は、入力されたコマンドを紙位置演算部２０に渡す。
【００３６】
紙位置演算部２０は、モータＭ１の回転を開始する。演算部２０は、モータＭ１により駆動力が付与されるローラやクラッチをＨＤＤ２０４に記憶されている情報から検索して抽出する。そして、演算部２０は、抽出されたローラやクラッチの回転速度や回転方向をコマンドの内容に応じて算出する。例えば、ローラＲ１にはクラッチＣＬ１を介してモータＭ１が駆動力を与えている。よって、演算部２０は、クラッチＣＬ１のＯＮ／ＯＦＦ情報に基づき、ローラＲ１の回転速度や回転方向の情報を算出する。
【００３７】
紙位置演算部２０は、例えば、所定の時間間隔ｔごとに、紙Ｐの先端と後端の位置を算出する。まず、演算部２０は、紙Ｐの先端から後端までが含まれている搬送パスＡＢの情報をＨＤＤ２０４から読み出す。この搬送パスの情報には、例えば、各搬送パス内のローラを特定するためのＩＤと、その位置情報とが含まれている。
【００３８】
また、演算部２０は、紙Ｐの先端位置から後端方向に向かってローラを検索する。そして、演算部２０は、初めに見つかったローラＲ１のＩＤに基づいて、ローラＲ１の情報をＨＤＤ２０４から抽出し、ローラＲ１の速度ｖを算出する。演算部２０は、速度ｖと時間間隔ｔとに基づいて、紙Ｐがｔの間に進む距離Ｓ＝ｖ×ｔを算出する。これにより、演算部２０は、紙Ｐの現在位置の情報を更新する。現在位置の情報など、演算に必要となる情報はＲＡＭ２０３に格納されるものとする。
【００３９】
演算部２０は、更新された位置情報をＵＩ表示部２８に渡す。ＵＩ表示部２８は、受け取った紙Ｐの位置情報に従って、紙搬送シミュレーション画面Ｗ１上の対応した位置に紙Ｐが表示されるよう表示データを作成する。表示制御部５は、ＵＩ部２８から表示データを受信して、紙搬送シミュレーション画面Ｗ１を表示装置２０６上に表示させる。
【００４０】
なお、ＨＤＤ２０４に記憶されているパス情報には、各搬送パス内に配置されたシートセンサのＩＤとその位置情報も含まれている。紙位置演算部２０は、紙Ｐの先端位置から後端方向に向かって搬送パスに配置されているシートセンサを検索する。演算部２０は、抽出されたシートセンサＳ１のＯＮ情報を出力Ｉ／Ｆ部２７へ送る。また、紙Ｐの後端がシートセンサＳ１を通過すると、演算部２８は、シートセンサＳ１のＯＦＦ情報を出力Ｉ／Ｆ部２７へ送る。出力Ｉ／Ｆ部２７は、シートセンサＳ１のＯＮ情報もしくはＯＦＦ情報をコマンド化し、ソフトウェアシミュレーション部１の入力Ｉ／Ｆ部１２へ出力する。
【００４１】
ファームソフトウェア部１０は、入力Ｉ／Ｆ部１２からシートセンサＳ１のＯＮ情報を受け取り、フラッパＦＬ１の制御を開始する。モータＭ１の場合とほぼ同様に、ファームソフトウェア部１０は、機構シミュレーション部２へフラッパＦＬ１するためのコマンドを送出する。
【００４２】
演算部２０は、このコマンドを受け取ると、紙Ｐの先端が分岐点Ｂに到達するの待つ。シミュレーションによってシートセンサＳ１が先端を検出すると、演算部２０は、紙Ｐが次に進むべき搬送パスを決定する。例えば、搬送パスは、シミュレーション条件として予め設定されたフラッパＦＬ１の切り替え状態に応じて決定される。なお、この例では、紙Ｐの進行方向は、搬送パスＢＣと搬送パスＢＤのいずれかである。
【００４３】
なお、ここで述べたｔは、同期処理部１１により管理される。紙位置演算２０は、同期処理部１１からの同期信号を同期信号出力部１５ならびに同期信号入力部２１を経由して受け取り、受け取った同期信号に応じて、各種のシミュレーション演算を実行する。
【００４４】
図６Ａ、Ｂは、各シミュレーションモードにおけるシミュレーション時間の違いを説明するための図である。とりわけ、図６Ａは、通常モードにおけるシミュレーション時間と実時間との関係を示している。図６Ｂは、高速モードにおけるシミュレーション時間と実時間との関係を示している。なお、通常モードのシミュレーション速度は、高速モードのそれよりも低速である。よって、通常モードは低速モードと呼ばれてもよい。
【００４５】
図６Ａが示すように、通常モードではシミュレーション時間と実時間とが一致している。同期処理部１１は、ファームウェアソフト部１０の状況を監視するとともに、実時間とシミュレーション時間とが同一となるように同期信号を調整する。具体的には、ファームウェアソフト部１０は、２ｍｓｅｃの間に完了させるべき動作が実際に完了していても、実時間で２ｍｓｅｃが経過しない限り、シミュレーション時間を２ｍｓｅｃ進めることはしない。同期処理部１１は、実時間が２ｍｓｅｃ進んだらシミュレーション時間を２ｍｓｅｃ進め、同期信号出力部１５から対応する同期信号を送出する。これにより、シミュレーション時間と実時間とが一致することになる。
【００４６】
図６Ｂが示すように、高速モードでは、実時間とは無関係にシミュレーション時間が進行する。これは、同期処理部１１が、ファームウェアソフト部１０の状況を監視し、可能な限り早くシミュレーション時間が進む様に同期信号の送信を調整しているからである。具体的には、ファームウェアソフトウェア部１０が、２ｍｓｅｃの間に完了させるべき動作が実際に完了すると、即座にシミュレーション時間を２ｍｓｅｃ進める。これにより、実時間よりも早いタイミングでシミュレーション時間が進むことになる。これにより、シミュレーション演算の高速化を達成できる。
【００４７】
このように、本実施形態のシミュレータ装置は、少なくとも２つのシミュレーションモードを持つことで、シミュレーションの用途に応じて各モードを使い分けることが可能となる。
【００４８】
図７Ａは、実施形態に係るシミュレーションモードの選択機構の一例を示す図である。とりわけ、図７Ａは、基本設定画面の一例を示している。基本設定画面は、表示制御部の制御下、表示装置２０６に表示される。モード設定レバー７１は、操作部２０７のクリック操作に応じて、左右のいずれかにスライドする。モード設定レバー７１が右側にスライドさせられると、入力監視部４は、高速モードが選択されたと認識する。モード設定レバー７１が左側にスライドさせられると、入力監視部４は、通常モードが選択されたと認識する。
【００４９】
この際、レバ７１ーの動きの情報は、入力監視部４、ＵＩ部２８、ＵＩ情報出力部２２およびＵＩ情報入力部１６を介して同期処理部１１が受信する。同期処理部１１は、受信した情報に従って、選択されたシミュレーションモードを特定し、特定されたモードを実現するよう同期信号の送信タイミングを調整する。なお、このＵＩ部２８は、操作部２０７において特定の操作が入力されることで、シミュレーション動作中にも基本設定画面を表示する。すなわち、シミュレーション動作中であっても、シミュレーションモードを切り替えることが可能となっている。
【００５０】
なお、図７Ｂでは、高速モードと通常モードとが例示されているが、３以上のシミュレーションモードが用意されてもよい。さらに、基本設定画面において、具体的なシミュレーション速度を入力できるようにしてもよい。
【００５１】
図７Ｂは、実施形態に係るシーケンシャル設定画面の一例を示す図である。テキストボック７５は、シミュレーションモードを切り替えるタイミングとなる時間データを入力するためのテキストボックスである。時間データは、時刻であってもよいし、シミュレーション開始時からの経過時間であってもよい。７６は、通常モードを選択するためのチェックボックスである。７７は、高速モードを選択するためのチェックボックスである。なお、チェックボックス７６、７７は、択一的に選択可能となっている。そのため、チェックボックス７６、７７は、ラジオボタンとして実現されてもよい。
【００５２】
閉じるボタン７８は、テキストボックス７５やチャックボックス７６により設定された切り替えタイミングやモードをシミュレーションに反映させるためのボタンである。図７Ｂに示された設定画面では、シミュレーション速度を切り替える１以上のタイミングを指定でき、また、指定されたタイミングに対応するシミュレーション速度やシミュレーションモードを指定することができる。
【００５３】
閉じるボタン７８が押されたことが入力監視部４によって検出されると、ＵＩ部２８は、指定された切り替えタイミングとモードに関する情報を、ＵＩ情報出力部２２およびＵＩ情報入力部１６を介して同期処理部１１へ伝達する。同期処理部１１は、指定されたタイミングが到来すると、対応するシミュレーションモードへと切り替えるよう同期信号を調整する。このように、本実施形態では、設計者などのユーザが、切り替えタイミングと、切り替え後のシミュレーションモードとを任意に指定することが可能となる。
【００５４】
図８は、実施形態に係るシミュレーションモードの設定変更シーケンスの一例を示すフローチャートである。このフローチャートは、とりわけ、同期処理部１１の一部処理に関するものである。このシーケンスは、シミュレーションプログラムの起動時に開始され、他の処理と並行して実行される。
【００５５】
ステップＳ８０１において、同期処理部１１を実現するＣＰＵ２０１は、高速モードに設定するための情報を操作部２０７から受信したか否かを判定する。ここで、高速モードに設定するための情報は、図７Ａにおけるレバー７１が通常モードから高速モードへとスライドされた時にＵＩ部２８から送信される情報である。もちろん、この情報には、高速モードが選択されたことを示す情報が含まれている。
【００５６】
高速モードが選択された場合、ステップＳ８０２に進み、ＣＰＵ２０１は、シミュレーションモードを高速モードへと変更する。同期処理部１１は、上述したように高速モードを実現するための同期信号の送出処理とその他の必要な処理を実行する。
【００５７】
一方、高速モードが選択されたのでなければ、ステップＳ８０３に進み、ＣＰＵ２０１は、通常モードに設定するため情報を受信したか否かを判定する。ここで、通常モードに設定するための情報は、図７Ａにおけるレバー７１が高速モードから通常モードへとスライドされた時にＵＩ部２８から送信される情報である。もちろん、この情報には、通常モードが選択されたことを示す情報が含まれている。
【００５８】
通常モードに設定するための情報を受信したときは、ステップＳ８０４に進み、ＣＰＵ２０１は、シミュレーションモードを通常モードへと変更する。同期処理部１１は、上述したように通常モードを実現するための同期信号の送出処理とその他の必要な処理を実行する。一方、通常モードに設定するための情報を受信したのでなければ、ＣＰＵ２０１は、本フローチャートの処理を一旦終了し、ステップＳ８０１から最初各ステップを実行する。
【００５９】
なお、ここでシミュレーションモードについての初期値については触れられていないが、例えば、初期値は通常モードであってもよい。
【００６０】
図９は、実施形態に係るシーケンシャル設定シーケンスの一例を示すフローチャートである。シーケンシャル設定とは、図７Ｂを用いて、１以上の切り替えタイミングと、対応するシミュレーションモードとを設定する処理のことである。このシーケンスも、同期処理部１１の一部処理であるが、ここでは、ＣＰＵ２０１が実行するものとして説明する。また、このシーケンスも、シミュレーションプログラムの起動時から開始され、他の処理と並行して実行されるものとする。
【００６１】
ステップＳ９０１において、ＣＰＵ２０１は、ＲＡＭ２０３に記憶されている受信フラグをＦＡＬＳＥに設定する。この受信フラグは、シーケンシャル設定情報を受信したか否かを判断するために、後続のステップにおいて使用される。シーケンシャル設定情報は、図７Ｂを用いて説明したように、１以上の切り替えタイミングと、対応するシミュレーションモードとを設定するための情報である。
【００６２】
ステップＳ９０２において、ＣＰＵ２０１は、シーケンシャル設定情報を受信したか否かを判定する。受信したのであれば、ステップＳ９０３に進み、ＣＰＵ２０１は、シーケンシャル設定情報に基づいて設定テーブルを作成する。設定テーブルには、図７Ｂにおいて入力されたタイミングが、現在時刻に近いものから順番にソートされて登録されている。もちろん、タイミングに対応するモードの選択情報も一緒にソートされることはいうまでもない。なお、設定テーブルはＲＡＭ２０３に記憶されるものとする。
【００６３】
ステップＳ９０４において、ＣＰＵ２０１は、受信フラグをＴＲＵＥに変更する。なお、ステップＳ９０３とＳ９０４の順番は、逆であってもよい。なお、本実施形態における各ステップは、図に示された順番にのみ限定されることはなく、同一の結果が得られるのであれば、順番が任意に変更されてもよい。
【００６４】
ステップＳ９０５において、ＣＰＵ２０１は、作成した設定テーブルを読み出し、現在時間と比較して、まだ経過しておらず、かつ、最も近いタイミングを特定し、特定したタイミングを監視時間として設定する。この監視時間は、ＣＰＵ２０１に内蔵されたタイマーを用いて監視される。
【００６５】
ステップＳ９０６において、ＣＰＵ２０１は、シミュレーションを終了させるべきか否かを判定する。例えば、シミュレーションがすべて完了しているか、割り込み処理によって終了が指示されていれば、終了すべきと判定される。終了すべきでなければ、ステップＳ９０２へと戻る。
【００６６】
ステップＳ９０２において、シーケンシャル設定情報が受信されたのでなければ、ステップＳ９０７へ進む。ステップＳ９０７において、ＣＰＵ２０１は、ＲＡＭ２０３からフラグを読み出して、フラグがＴＲＵＥに設定されているか否かを判定する。フラグがＴＲＵＥでなければ、ステップＳ９０６へ進む。
【００６７】
一方、フラグがＴＲＵＥであれば、ステップＳ９０８に進む。Ｓ９０８において、ＣＰＵ２０１は、タイマーを参照し、設定された監視時間が経過したか否かを判定する。設定した監視時間に達していなければ、ステップＳ９０６に進む。
【００６８】
一方、監視時間が経過していれば、ステップＳ９０９に進み、ＣＰＵ２０１は、ＲＡＭ２０３から設定テーブルを読み出し、設定テーブルにおいて現在の監視時間に対応するシミュレーションモードを特定する。そして、ＣＰＵ２０１は、特定したシミュレーションモード（通常モードｏｒ高速モード）へと変更するための切り替えコマンドを発行する。この切り替えコマンドに従って、図８に示した設定処理が実行されることになる。
【００６９】
ステップＳ９１０において、ＣＰＵ２０１は、設定テーブルを読み出して、今回経過したと判断された監視時間の次の監視時間を特定し、特定された監視時間を監視対象として設定する。その後、ステップＳ９０６に進む。
【００７０】
図１０は、実施形態に係るシミュレーションモードの切り替えシーケンスの一例を示すフローチャートである。このシーケンスも、同期処理部１１の一部処理であるが、ここでは、ＣＰＵ２０１が実行するものとして説明する。また、このシーケンスも、シミュレーションプログラムの起動時から開始され、他の処理と並行して実行されるものとする。
【００７１】
ステップＳ１００１において、ＣＰＵ２０１は、同期用の実時間情報をＲＡＭ２０３に記憶する。例えば、実時間情報は、この瞬間におけるＣＰＵ２０１のクロックのカウント数など、実時間を特定可能な情報のことである。この実時間情報は、後続のステップにおいて、シミュレーション時間と実時間との関係を調整するために使用される。
【００７２】
ステップＳ１００２において、ＣＰＵ２０１は、ファームウェアソフト部１０の状態が、すでに機構シミュレーション部２へ同期信号を送ることが可能な状態であるか否かを判定する。同期信号を送信することが可能となるまで待機してから、ＣＰＵ２０１は、ステップＳ１００３へ進む。なお、同期信号を送信することが可能な状態とは、例えば、ファームソフトウェアのメインシーケンス自体が動作していない状態などである。
【００７３】
ステップＳ１００３において、ＣＰＵ２０１は、シミュレーションモードが通常モードに設定されているか否かを判定する。通常モードでなければ（すなわち、高速モードであれば）、ステップＳ１００７に進む。ステップＳ１００７において、ＣＰＵ２０１は、同期用の実時間情報から同期信号を生成し、同期信号出力部１５および同期信号入力部２１を経由して機構シミュレーション部２の紙位置演算部２０に対して同期信号を送信する。ステップＳ１００８において、ＣＰＵ２０１は、同期用の実時間情報をＲＡＭ２０３に保存し、ステップＳ１００２へ戻る。このように、高速モードにおいては、所定の実時間を待つことなく、同期信号が出力されるため、シミュレーションが高速で実行されることになる。なお、高速モードにおいても、通常モードにおける所定の実時間（例：２ｍｓｅｃ）よりも相対的に短い実時間を待機時間として利用してもよい。
【００７４】
一方、シミュレーションモードが通常モードに設定されている場合、ステップＳ１００４に進む。ステップＳ１００４において、ＣＰＵ２０１は、同期用実時間情報に含まれる時間と、現在のシミュレーション時間とを比較し、現在のシミュレーション時間が実時間に換算して所定時間（例：２ｍｓｅｃ）以上経過したか否かを判定する。所定時間以上経過するまで待ってから、ステップＳ１００５へと進む。
【００７５】
ステップＳ１００５において、ＣＰＵ２０１は、ＲＡＭ２０３に記憶されている同期用の実時間情報に上述の所定時間を加算することで、実時間情報を更新する。ステップＳ１００６において、ＣＰＵ２０１は、同期信号出力部１５および同期信号入力部２１を経由して機構シミュレーション部２の紙位置演算部２０に対して更新後の同期用実時間情報に対応する同期信号を生成して送信し、ステップＳ１００２へ戻る。
【００７６】
以上説明したように、本実施形態によれば、検証を行う用途に応じて、シミュレーションの速度を選択することも可能となるため、従来よりも効率よく、画像形成装置の動作を検証することが可能となろう。
【００７７】
なお、シミュレーション速度については、具体的な値を指定できるようにしてもよいが、複数用意されたシミュレーションモード（例：高速モードや低速モード）からユーザが選択できたほうが、ユーザフレンドリーであろう。
【００７８】
なお、シミュレーション演算部３は、高速モードが選択されると、画像形成装置の動作を第１の精度でもってシミュレーション演算してもよい。また、シミュレーション演算部３は、低速モードが選択されると、画像形成装置の動作を、第１の精度よりも高い第２の精度でもってシミュレーション演算してもよい。とりわけ、低速モードであれば、高速モードに比較して、時間的余裕が生じるため、相対的に高い精度を期待できるような複雑な演算を実行できよう。
【００７９】
また、本実施形態のＣＰＵ２０１は、シミュレーション演算部３におけるシミュレーション演算の実行前および実行中であっても高速モードと低速モードのいずれかを選択するための入力を受け付けることができる。例えば、設計者は、長時間経過した後の動作状態（例えば１０１枚目のプリント中の動作状態等）を細かく検証することを希望したとする。この場合、検証したい時間の少し前まで高速で動作させ、検証したい時間では動作速度を低下させて細かく分析するといったことも可能となる。よって、検証の効率が向上することになろう。
【００８０】
また、本実施形態のＣＰＵ２０１は操作部２０７や表示装置２０６と協働することで、ミュレーション速度を切り替える１以上のタイミングと、指定されたタイミングに対応するシミュレーション速度またはシミュレーションモードとを指定できる（図７Ｂ）。よって、設計者は、シミュレーションモードを所望のタイミングで切り替えながら、画像形成装置の動作を検証することが可能となる。
【００８１】
また、本実施形態に係るシミュレータ装置やシミュレーションプログラムを活用すれば、画像形成装置の設計を効率よく支援することが可能となろう。
【００８２】
［他の実施形態］
以上、様々な実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００８３】
本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム等に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
【００８４】
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
【００８５】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【００８６】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、記録媒体としては、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００８７】
また、プログラムは、クライアントコンピュータのブラウザを用いてインターネットのホームページからダウンロードしてもよい。すなわち、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードしてもよいのである。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明の構成要件となる場合がある。
【００８８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布してもよい。この場合、所定条件をクリアしたユーザにのみ、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報で暗号化されたプログラムを復号して実行し、プログラムをコンピュータにインストールしてもよい。
【００８９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現されてもよい。なお、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ってもよい。もちろん、この場合も、前述した実施形態の機能が実現され得る。
【００９０】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ってもよい。このようにして、前述した実施形態の機能が実現されることもある。
【図面の簡単な説明】
【００９１】
【図１】実施形態に係るシミュレータ装置の概要を示す図である。
【図２】実施形態に係るシミュレータ装置の一例を示すブロック図である。
【図３】実施形態に係るソフトウェアシミュレーション部および機構シミュレーション部の一例を示すブロック図である。
【図４】表示装置２０６に表示される搬送シミュレーション画面の一例を示す図である。
【図５】シミュレーション動作を説明するための図である。
【図６Ａ】通常（低速）モードにおけるシミュレーション時間と実時間との関係を示す図である。
【図６Ｂ】高速モードにおけるシミュレーション時間と実時間との関係を示す図である。
【図７Ａ】実施形態に係る通常モードと高速モードとを選択的に切り替えるための設定画面の一例を示す図である。
【図７Ｂ】実施形態に係るシーケンシャル設定画面の一例を示す図である。
【図８】実施形態に係るシミュレーションモードの設定変更シーケンスの一例を示すフローチャートである。
【図９】実施形態に係るシーケンシャル設定シーケンスの一例を示すフローチャートである。
【図１０】実施形態に係るシミュレーションモードの切り替えシーケンスの一例を示すフローチャートである。
【符号の説明】
【００９２】
１…ソフトウェアシミュレーション部
２…機構シミュレーション部
３…シミュレーション演算部
４…入力監視部
５…表示制御部
１０…ファームソフトウェア部
１１…同期処理部
１２…入力Ｉ／Ｆ部
１３…出力Ｉ／Ｆ部
１５…同期信号出力部
１６…ＵＩ信号入力部
２０…紙位置演算部
２１…同期信号入力部
２２…ＵＩ情報出力部
２７…出力Ｉ／Ｆ部
２８…ＵＩ部
２９…入力Ｉ／Ｆ部
【図１】
2007328548.tif 000003
【図２】
2007328548.tif 000004
【図３】
2007328548.tif 000005
【図４】
2007328548.tif 000006
【図５】
2007328548.tif 000007
【図６Ａ】
2007328548.tif 000008
【図６Ｂ】
2007328548.tif 000009
【図７Ａ】
2007328548.tif 000010
【図７Ｂ】
2007328548.tif 000011
【図８】
2007328548.tif 000012
【図９】
2007328548.tif 000013
【図１０】
2007328548.tif 000014