(57)【要約】      （修正有）【課題】シミュレーションシステムにおいて装置評価の効率や精度を高めやすくする。【解決手段】記憶部は複数のイベントの順番を示す順番データと、直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、イベントの内容を指定した内容指定データとを記憶する。複数のイベントは、例えば、対象装置の外部イベント又は内部イベントの何れかである。読出部は順番データにしたがって、相対タイミングデータと内容指定データとを記憶部から読み出す。仮想時刻計時部はシミュレーションシステムにおける仮想時刻を計時する。判定部は直前のイベントが発生した仮想時刻からの経過時間が、相対タイミングデータが示す時間差となったか否かを判定する。直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となると、発生部は、内容指定データにより指定されたイベントを対象装置に発生させる。【選択図】図１
2009031944.tif 000002
【特許請求の範囲】
【請求項１】
対象装置の動作をシミュレーションするためのシミュレーションシステムであって、
前記対象装置に外部から作用する外部イベント又は該対象装置の内部で発生する内部イベントの何れかである複数のイベントの順番を示す順番データと、各イベントについて直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、前記イベントの内容を指定した内容指定データとを記憶した記憶部と、
前記順番データにしたがって、前記相対タイミングデータと前記内容指定データとを前記記憶部から読み出す読出部と、
前記シミュレーションシステムにおける仮想時刻を計時する仮想時刻計時部と、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となったか否かを判定する判定部と、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となると、前記内容指定データにより指定された内容にしたがったイベントを前記対象装置に発生させる発生部と
を含むことを特徴とするシミュレーションシステム。
【請求項２】
前記外部イベントが発生すると該外部イベントに対応した信号を前記対象装置へ出力する出力部と、
前記対象装置において前記内部イベントが発生すると該対象装置から出力される該内部イベントに対応した信号を入力する入力部と、
前記入力部から入力された信号に基づいて前記外部イベントの発生条件となる前記内部イベントの発生を検知する検知部と
を含むことを特徴とする請求項１に記載のシミュレーションシステム。
【請求項３】
前記外部イベントの発生条件を複数のイベントの組み合わせによって定義するために、組み合わされる前記複数のイベントの順番データをそれぞれ同一としたことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記外部イベントの発生条件を、前記組み合わされる複数のイベントの各発生条件の論理積又は論理和によって表現したことを特徴とする請求項３に記載のシミュレーションシステム。
【請求項５】
前記記憶部は、前記順番データ、前記相対タイミングデータ、前記発生条件のデータ及び前記内容指定データを関連付けた複数のシーケンスファイルを記憶しており、
前記発生部は、前記記憶部から読み出した複数のシーケンスファイルのそれぞれに対応したイベントを並列に発生させる複数の並列実行部を含む
ことを特徴とする請求項３又は４に記載のシミュレーションシステム。
【請求項６】
前記複数の並列実行部は、それぞれ独立したプロセスとして構成され、それぞれ対応したシーケンスファイルを前記記憶部から読み出して前記外部イベントの発生処理を実行することを特徴とする請求項５に記載のシミュレーションシステム。
【請求項７】
前記複数の並列実行部は、単一のプロセスに含まれた異なるスレッドとして構成され、それぞれ対応したシーケンスファイルを前記記憶部から読み出して外部イベントの発生処理を実行することを特徴とする請求項５に記載のシミュレーションシステム。
【請求項８】
前記記憶部は、さらに、
複数ある前記イベントのそれぞれ識別するための識別データと、
前記外部イベントの発生条件を複数のイベントの組み合わせによって定義するために、組み合わされる前記複数のイベントの識別データを論理式に表現した発生条件のデータとを記憶していることを特徴とする請求項２に記載の画像形成装置。
【請求項９】
対象装置の動作をシミュレーションするためのシミュレーション演算方法であって、
前記対象装置に外部から作用する外部イベント又は該対象装置の内部で発生する内部イベントの何れかである複数のイベントの順番を示す順番データと、各イベントについて直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、前記イベントの内容を指定した内容指定データとを記憶した記憶装置から、前記順番データにしたがって、前記相対タイミングデータと前記内容指定データとを読み出すステップと、
前記シミュレーションにおける仮想時刻を計時するステップと、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となったか否かを判定するステップと、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となると、前記内容指定データにより指定された内容にしたがったイベントを前記対象装置に発生させるステップと
を含むことを特徴とするシミュレーション演算方法。
【請求項１０】
対象装置の動作をコンピュータ上でシミュレーションするためのコンピュータプログラムであって、
前記対象装置に外部から作用する外部イベント又は該対象装置の内部で発生する内部イベントの何れかである複数のイベントの順番を示す順番データと、各イベントについて直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、前記イベントの内容を指定した内容指定データとを記憶した前記コンピュータの記憶装置から、前記順番データにしたがって、前記相対タイミングデータと前記内容指定データとを読み出す読出部と、
前記シミュレーションにおける仮想時刻を計時する仮想時刻計時部と、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となったか否かを判定する判定部と、
前記直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となると、前記内容指定データにより指定された内容にしたがったイベントを前記対象装置に発生させる発生部と
を前記コンピュータにより機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象装置の動作をコンピュータ上でシミュレーションするシミュレーションシステム、シミュレーション演算方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
評価対象となる装置や周辺デバイスのシミュレーションモデル（以下、仮想デバイスモデルと記す。）を構築するための各種手法やツールが考案されている（特許文献１）。特許文献１によれば、オブジェクト指向分析により仮想デバイスモデルの所作をモデル化し実行する手法が示されている。
【０００３】
また、市販されているツールでは、仮想デバイスモデルの動作をスクリプト言語や状態遷移表により記述するものが存在する。その一方で、評価対象となるＣＰＵへの入力情報を時系列に並べたリストを新規に作成、又は、実機動作からのトレーシングにより作成し、そのリストに基づき動作する仮想デバイスモデルも提案されている（特許文献２、３）。
【特許文献１】特開平１０−１２４３４３号公報
【特許文献２】特開平１−３０７８３７号公報
【特許文献３】特開２００５−４９９４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１や、仮想デバイスモデルの動作をスクリプト言語や状態遷移表により記述する手法は、仮想デバイスモデル自体の動作検証に多くの工数を割く必要がある。一方で、特許文献２，３に記載された手法では、仮想デバイスモデルから評価対象装置へ一方的に情報が出力されるため、評価対象装置からの出力に応じた仮想デバイスモデルの動作を必要とする場合に、特許文献２，３の手法では対応できないだろう。
【０００５】
そこで、本発明は、このような課題及び他の課題のうち、少なくとも１つを解決することを目的とする。例えば、本発明は、シミュレーションシステムを簡単に作り出すことが可能とすることを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【０００６】
本発明は、例えば、対象装置の動作をシミュレーションするためのシミュレーションシステムに適用できる。記憶部は、複数のイベントの順番を示す順番データと、各イベントについて直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、前記イベントの内容を指定した内容指定データとを記憶する。複数のイベントは、例えば、対象装置に外部から作用する外部イベント又は対象装置の内部で発生する内部イベントの何れかである。読出部は、順番データにしたがって、相対タイミングデータと内容指定データとを記憶部から読み出す。仮想時刻計時部は、シミュレーションシステムにおける仮想時刻を計時する。判定部は、直前のイベントが発生した仮想時刻からの経過時間が、相対タイミングデータが示す時間差となったか否かを判定する。直前のイベントが発生した仮想時刻からの経過時間が、前記相対タイミングデータが示す時間差となると、発生部は、内容指定データにより指定された内容にしたがったイベントを対象装置に発生させる。
【発明の効果】
【０００７】
本発明では、外部イベントの発生条件を、直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、発生条件が満たされたときに発生するイベントの内容を指定した内容指定データとにより定義する。これにより、シミュレーションシステムを簡単に作り出すことが可能となるため、装置評価の効率や精度を高めやすくなる。
【発明を実施するための最良の形態】
【０００８】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【０００９】
［実施形態１］
以下、本発明を導入したシミュレーションシステムの実施形態として、画像形成装置のシミュレーションデバッグを行うシミュレーションシステムについて説明する。シミュレーションシステムは、対象装置の動作をシミュレーション演算するためのコンピュータシステムである。
【００１０】
図１は、実施形態に係るシミュレーションシステムの各機能を示すブロック図である。シミュレーションシステムは、例えば、パーソナルコンピュータ、ワークステーション等（以下、まとめてコンピュータシステムと呼ぶ）で実行されるコンピュータプログラムとして実現される。
【００１１】
シミュレーションシステムは、ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２、簡易シーケンサ１０３及びこれらを同期接続するためのシミュレータハブ（以下、ＨＵＢ）１０４を備えている。これらの各ユニットは、対応するプログラムモジュールをハードウエアリソースが実行することで、コンピュータシステム上に構築される仮想的な手段や装置である。ただし、説明の便宜上、以下では、これらの各ユニットをアプリケーションソフトなどのプログラムモジュールとして説明する。
【００１２】
とりわけ、簡易シーケンサ１０３は、仮想デバイスシミュレーションシステムとして実現される。ＣＰＵシミュレータ１０１は、ハードウェアとしてのＣＰＵの動作及び機能をシミュレーションする。機構モデルシミュレータ１０２は、画像形成装置における搬送機構などの動作及び機能をシミュレーションする。ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２及びＨＵＢ１０４の各機能、並びに、その構成については、例えば、公知の技術（例：特開２００５−３３９０２９号公報）が採用されてもよい。
【００１３】
ＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２及び簡易シーケンサ１０３は、それぞれがコンピュータ上で稼働しているオペレーティングシステム（以下、ＯＳ）上で個別に動作するアプリケーションソフトである。各アプリケーションソフトは、独立したプロセスとして存在する。
【００１４】
ＣＰＵシミュレータ１０１は、ダイナミックリンクライブラリ（以下、ＤＬＬ）として提供される外部モジュールとの間で、共有メモリ１１０と、関数の直接呼出し方式を採用した外部インターフェース１１１とを有している。また、機構モデルシミュレータ１０２及び簡易シーケンサ１０３は、プロセス間通信方式を採用した外部インターフェース（例：ソケットインターフェース）１２０、１２１をそれぞれ有している。外部インターフェース１２０、１２１は、例えば、ＯＳが提供するアプリケーションプログラムインターフェース（以下、ＡＰＩ）であってもよい。なお、簡易シーケンサ１０３もＡＰＩが提供するプロセス間通信を介してＨＵＢ１０４とのデータ、情報及び信号の送受信を実行する。
【００１５】
ＨＵＢ１０４は、ＣＰＵシミュレータ１０１が備える直接呼出し方式の外部インターフェース１１１を利用するため、例えば、ＤＬＬとして提供される。よって、ＨＵＢ１０４は、ＣＰＵシミュレータ１０１から起動されるサブプロセスとして動作する。ＣＰＵシミュレータ１０１は、各種イベント発生時に、予め指定されたＨＵＢ１０４のコールバック関数１２２を呼び出す。
【００１６】
次に、各構成要素の機能について説明する。ＣＰＵシミュレータ１０１は、シミュレーション対象となるＣＰＵ（以下、ターゲットＣＰＵ）の動作を、後述するコンピュータシステム２０１上で実現する。ターゲットＣＰＵとは、コンピュータシステム２０１に搭載されているＣＰＵではなく、シミュレーションの対象となる対象装置（例：画像形成装置）に搭載され、対象装置を制御するためのＣＰＵ（例：メインＣＰＵ、両面ＣＰＵ）のことである。それゆえ、シミュレーションの対象装置を、画像形成装置自体というよりは、メインＣＰＵ、両面ＣＰＵと観念してもよい。
【００１７】
ＣＰＵシミュレータ１０１は、ターゲットＣＰＵのファームウエアに従って、ターゲットＣＰＵが備える各端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子を制御する。ＣＰＵシミュレータ１０１は、外部インターフェースとして、ターゲットＣＰＵのＩ／Ｏ、メモリ、レジスタアクセスのためのメソッドを用意している。外部モジュールは、これらのメソッドにより仮想アドレス空間へのアクセスを行う。
【００１８】
コンピュータシステム２０１上で実行される、ファームウエアの処理のシミュレーション方法は様々である。例えば、ファームウエアのソースプログラムをコンピュータシステムのネイティブ言語に変換して実行する方式と、ターゲットＣＰＵの実行命令を１語ずつ解釈してコンピュータシステムのＣＰＵに対応した実行命令に翻訳しながら実行する方式がある。本発明は、何れのＣＰＵシミュレーション方式により実現されてもよい。
【００１９】
上述したように、ＣＰＵシミュレータ１０１のイベントごとに、ＨＵＢ１０４のコールバック関数１２２が呼び出される。ＣＰＵシミュレータ１０１がコールバック関数１２２を呼び出すイベント例には、ＣＰＵシミュレータ１０１の状態に関するもの（例：起動、初期化終了）や、ターゲットＣＰＵの動作シミュレーション上のイベント（メモリアクセス、割り込み発生等）がある。
【００２０】
なお、イベントには、シミュレーションの対象装置に外部から作用する外部イベントと、対象装置の内部で発生する内部イベントとがある。対象装置がＣＰＵであれば、ＣＰＵに対しする各種信号の入力は、外部イベントに相当する。また、ＣＰＵの内部演算により発生したイベントは、内部イベントに相当する。
【００２１】
機構モデルシミュレータ１０２は、アクチュエータ、センサを含む複数の部品からなる機構モデルを、コンピュータシステム上で擬似的に動作させる。機構モデルの各要素（以下、機構部品）は、ユーザにより形状、種類、動作、機構部品間の干渉及び連携条件などが定義される。機構部品の形状は、例えば、形状を測定するための位置のデータなどにより定義される。種類は、種類を表す識別番号により特定される。動作は、手順を記載した情報などにより定義される。機構部品間の干渉は、干渉する相手となる他の機構部品の識別情報により定義される。連携条件は、連携する相手となる干渉する相手となる他の機構部品と、そのときの条件を示した情報などにより定義される。
【００２２】
センサ、アクチュエータなどの機構部品については、外部信号についての定義が行われる。これら機構部品の定義は、ＣＡＤ図面のデータを読み込んで設定したり、専用の機構モデル作成ソフトウエアをユーザが操作することで設定したり、その両方の組み合わせによって設定したりしてもよい。何れの場合でも定義情報が、ハードディスクやＲＡＭなどの記憶装置に記憶されることになる。
【００２３】
定義される機構部品の種類としては、単なる物体と定義される物と機能定義がなされるもの（モータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等）がある。また、機構部品には、対象となる装置の構成物ではないもので装置の動作シミュレーションに必要なもの（画像形成装置における用紙等）が含まれてもよい。構築された機構モデルは、コンピュータシステムの表示装置に２次元、又は３次元のグラフィックとして表示される。
【００２４】
機構モデルシミュレータ１０２は、ＣＰＵシミュレータ１０１からＨＵＢ１０４を介して送信されたアクチュエータ動作信号を受信する。機構モデルシミュレータ１０２は、アクチュエータ動作信号が指し示すアクチュエータの機構モデルを、予め定義された動きで動作させる。さらに、機構モデルシミュレータ１０２は、機構定義に基づき、アクチュエータに連結された機構部品を、当該アクチュエータの動作に関連付けて定義された動きで動作させる。また、機構モデルシミュレータ１０２は、オペレータの操作により動作する機構に関して、キーボード２０４やマウス２０５によってオペレータによる機構部品への操作を擬似的に再現する。これにより、機構モデルシミュレータ１０２は、擬似操作に応じて対象となる機構部品を、予め定義された動きで動作させる。さらに、機構モデルシミュレータ１０２は、機構部品間の干渉、連携定義に従い、関連するすべての機構部品の動作を再現する。
【００２５】
これら機構部品の動作は、実際の表示装置に表示されたグラフィックとして再現される。さらに、機構モデルシミュレータ１０２は、センサとして定義された機構モデルに予め定義された作用が発生すると、その作用に応じたセンサ信号を発生させる。センサ信号は、ＨＵＢ１０４を介してＣＰＵシミュレータ１０１に送信される。なお、予め定義された作用は、外部イベントの一例である。また、センサ信号の発生は、内部イベントの一例である。
【００２６】
簡易シーケンサ１０３は、シーケンスデータ読み込み部１０５、シーケンス実行部１０６、ハブ通信部１０７及び仮想時間計測部１０８を備えている。シーケンスデータ読み込み部１０５は、対象となる仮想デバイスモデルの動作を記述したシーケンスファイル１０９からシーケンスデータの読み込みを行い、その内容を解析し、解析結果をシーケンス実行部１０６に伝える。シーケンスファイル１０９は、例えば、コンピュータシステムのハードディスクにテキストファイルとして記憶される。
【００２７】
シーケンス実行部１０６は、シーケンスデータ読み込み部１０５によって読み込まれ、解析された仮想デバイスモデルの動作を実行する。具体的に、シーケンス実行部１０６は、ハブ通信部１０７を介してＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２に所定条件で信号を出力する。また、シーケンス実行部１０６は、ＣＰＵシミュレータ１０１や機構モデルシミュレータ１０２から入力される信号に応じて、後述のイベント待ち処理を行う。
【００２８】
ハブ通信部１０７は、プロセス間通信を通じてＨＵＢ１０４との間で各種信号の入力及び出力を実行する。さらに、ハブ通信部１０７は、ＨＵＢ１０４からの指示に従い、簡易シーケンサ１０３とシミュレーションシステムとにおける仮想時間の同期処理を行う。
【００２９】
仮想時間計測部１０８は、簡易シーケンサ１０３の中で扱われる仮想時間を計測するタイマーや計時部である。ハブ通信部１０７は、仮想時間計測部１０８から取得した仮想時間を用いて各部の動作を同期させる。これにより、シミュレーションシステム全体の仮想時間に対する各部の同期が常に維持される。なお、仮想時間計測部１０８は、シミュレーションシステムにおける仮想時刻を計時する仮想時刻計時部の一例である。
【００３０】
図２は、シミュレーションシステムのハードウェア構成の一例を示す図である。コンピュータシステム２０１は、例えば、コンピュータなどの本体部２０２、表示装置２０３、キーボード２０４及びマウス２０５を備えている。
【００３１】
本体部２０２は、中央処理装置（以下、ＣＰＵ）２１１、主記憶装置（以下、ＲＡＭ）２１２及びハードディスク２１３などを内蔵している。表示装置２０３は、本体部２０２からの指示により情報、データ及びグラフィカルオブジェクトを表示する。表示装置２０３は、例えば、構築された機構モデルを２次元又は３次元のグラフィックとして表示する。さらに、表示装置２０３は、機構モデルに含まれる機構部品の動作もグラフィックとして再現する。
【００３２】
キーボード２０４やマウス２０５は、入力装置の一例である。キーボードは、コンピュータシステム２０１にユーザの指示や文字情報を入力するために使用される。マウス２０５は、表示装置２０３上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するために使用される。
【００３３】
ハードディスク２１３には、シミュレーションシステムの各機能を実現するためのコンピュータプログラム、シミュレーションの対象となる機器の定義情報を含むシミュレーションのための各種データが格納される。すなわち、上述したシーケンスファイル１０９がハードディスク２１３に記憶されている。よって、ハードディスク２１３は、記憶部の一例である。
【００３４】
シミュレーションに際しては、ＣＰＵ２１１が、コンピュータプログラムや各種データをハードディスク２１３からＲＡＭ２１２へロードし、コンピュータプログラムを実行する。ＣＰＵ２１１が、シミュレーションに際して実行した演算結果やデータは、ＲＡＭ２１２に一旦記憶される。演算結果やデータのうち、バックアップが必要なものは、ハードディスク２１３に記憶される。
【００３５】
図３は、本実施形態のシミュレーションシステムによるシミュレート対象となる電子写真方式を採用した画像形成装置の用紙搬送機構を示す概略図である。なお、本発明に係るシミュレーションの対象装置は、画像形成装置にのみ限定されることはない。
【００３６】
画像形成装置３０１の備える機構部品は、給紙搬送ユニット、印刷搬送ユニット、両面搬送ユニット及び排紙ユニットに大別される。給紙搬送ユニットは、記録用紙Ｐを格納する給紙カセット３２３、ピックアップローラ３０２、給紙ローラ３０３、給紙センサ３０４、給紙搬送ローラ３０５、レジ前ローラ３０６、レジ前センサ３０７を備える。印刷搬送ユニットは、レジストローラ３０８、感光ドラム３０９、定着加圧ローラ３１０、定着排紙ローラ３１１、定着排紙センサ３１２を備えている。両面搬送ユニットは、フラッパ３１３、反転センサ３１６、反転ローラ３１７、Ｄカットローラ３１８、横レジスト可動板３２２、両面搬送ローラ３１９、両面搬送センサ３２０、再給紙ローラ３２１を備えている。排紙ユニットは、排紙ローラ３１４、排紙トレイ３１５を備えている。各ユニットの詳細を以下で説明する。
【００３７】
まず、画像形成装置３０１が両面印刷を実行する際の用紙搬送動作について説明する。画像形成装置３０１のエンジン制御部は、ピックアップローラ３０２及び給紙ローラ３０３を回転させ、記録用紙Ｐを給紙カセット３２３から送り出す。エンジン制御部は、ＣＰＵ、ＲＯＭ、ＲＡＭ及びＡＳＩＣなどにより実現される。このＲＯＭには、機構部品を制御するためのファームウエアが記憶されている。エンジン制御部は、送り出された記録用紙Ｐの先端を給紙センサ３０４が検出したら、給紙搬送ローラ３０５とレジ前ローラ３０６を回転させ、記録用紙Ｐをレジストローラ３０８まで搬送する。記録用紙Ｐがレジ前センサ３０７で検出されたら、エンジン制御部は、所定時間後に給紙搬送ユニットが備える各ローラを停止させる。その際に、エンジン制御部は、レジストローラ３０８に突き当てることでループ（たわみ）が形成され状態で記録用紙Ｐを停止させる。
【００３８】
その後、エンジン制御部は、レジストローラ３０８、レジ前ローラ３０６、給紙搬送ローラ３０５を回転させ、記録用紙Ｐを、回転している感光ドラム３０９へ搬送する。これにより、記録用紙Ｐに画像が形成される。エンジン制御部は、さらへ搬送を継続する。定着加圧ローラ３１０は、搬送されてきた記録用紙Ｐに画像を加熱定着させる。その後、エンジン制御部は、定着排紙ローラ３１１により記録用紙Ｐを搬送する。
【００３９】
定着排紙センサ３１２が記録用紙Ｐを検出したら、エンジン制御部は、フラッパ３１３を駆動して記録紙Ｐを反転引き込み側（図３の下方）に導く。反転センサ３１６が記録用紙Ｐを検出すると、エンジン制御部は、反転ローラ３１７を反転引き込み方向に回転させる。反転センサ３１６が記録用紙Ｐの後端を検出したら、エンジン制御部は、所定時間経過後に、反転ローラ３１７の回転を停止させる。
【００４０】
次に、エンジン制御部は、反転ローラ３１７を両面搬送方向に回転させ、Ｄカットローラ３１８へ搬送する。Ｄカットローラ３１８は、断面が半月状をしている。Ｄカットローラ３１８の円弧部分は記録用紙Ｐに当接するが、平面部分は記録用紙Ｐと当接しないように構成されている。Ｄカットローラ３１８が回転することで、円弧部分が記録用紙Ｐを搬送する。平面部分は記録用紙Ｐに当接できないため、記録用紙Ｐを搬送できない。よって、平面部分が記録用紙Ｐに対して対向しているときは、記録用紙Ｐが一旦停止する。この状態で、横レジスト可動板３２２が記録用紙Ｐを左右両側から挟み込むように移動し、記録用紙Ｐの中心が、所定の位置に整合される。これを、横レジスト位置調整と呼ぶ。横レジスト位置調整が必要なのは、搬送の途中で、記録用紙Ｐの主走査方向における位置がばらついてしまうからである。
【００４１】
エンジン制御部は、Ｄカットローラ３１８又は両面搬送ローラ３１９を回転させることで記録用紙Ｐの搬送を再開する。両面搬送センサ３２０が記録用紙を検出すると、エンジン制御部は、再給紙ローラ３２１の下流へ記録用紙を搬送する。そして、記録用紙Ｐは、その２面目の印刷のため、再給紙ローラ３２１及びレジ前ローラ３０６によって再給紙される。以下の処理は、１面目と同様である。ただし、２面目に画像が形成された記録用紙Ｐは、排紙トレイ３１５へと排出される。その際に、エンジン制御部は、フラッパ３１３を駆動しないことで、記録用紙Ｐを排紙トレイ３１５へ誘導する。そして、エンジン制御部は、排紙ローラ３１４を回転させることで記録用紙Ｐを排紙トレイ３１５へ排出する。
【００４２】
以上のような用紙搬送制御は、画像形成装置３０１を制御するために作成された制御ソフトウエアがエンジン制御部のＣＰＵによって実行される。エンジン制御部のＣＰＵは、ドライバ回路などを介して、モータ、クラッチ、ソレノイドといった各種アクチュエータを制御する。
【００４３】
図４は、エンジン制御部の機能ブロック図である。画像形成装置３０１の制御機能は、本体主制御部４０１と両面制御部４０２とに分散されている。本体主制御部４０１は、給紙搬送ユニット４２１、印刷搬送ユニット４２６及び排紙ユニット４２４の動作を制御する。両面制御部４０２は、両面搬送ユニット４２３の動作を制御する。本体主制御部４０１と両面制御部４０２は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ゲート素子等から構成され、制御機能の主要部はＲＯＭに書き込まれたソフトウエアで実現されている。
【００４４】
本体主制御部４０１にはメインＣＰＵ４０３が搭載される。メインＣＰＵ４０３は、ドライバ４０６を介してメインモータ４０５、ドライバ４０８を介してレジストローラクラッチ４０７、ドライバ４１０を介して給紙モータ４０９、ドライバ４１２を介してピックアップソレノイド４１１が制御される。メインモータ４０５などは、アクチュエータの一例である。メインＣＰＵ４０３には、用紙搬送状態検知部として、給紙センサ３０４、レジ前センサ３０７、定着排紙センサ３１２が接続されている。
【００４５】
ピックアップローラ３０２及び給紙ローラ３０３は、ピックアップカム機構４２５により駆動される。ピックアップカム機構４２５は、給紙モータ４０９の駆動時に、ピックアップソレノイド４１１の作動をトリガとして停止する。ピックアップカム機構４２５は、ピックアップローラ３０２及び給紙ローラ３０３を一定時間駆動して停止させる。
【００４６】
給紙搬送ローラ３０５及びレジ前ローラ３０６は、給紙モータ４０９からの指示に従い、駆動又は停止する。レジストローラ３０８は、レジストローラクラッチ４０７の作動中のみメインモータ４０５により駆動される。感光ドラム３０９、定着加圧ローラ３１０及び排紙ローラ３１４は、メインモータ４０５の駆動、停止に連動して、駆動、停止する。
【００４７】
両面制御部４０２には、両面ＣＰＵ４０４が搭載されている。両面ＣＰＵ４０４は、ドライバ４１４を介して反転モータ４１３、ドライバ４１６を介してフラッパソレノイド４１５を制御する。さらに、両面ＣＰＵ４０４は、ドライバ４１８を介して横レジモータ４１７、ドライバ４２０を介してＤローラモータ４１９、ドライバ４２２を介して再給紙モータ４２７を制御する。反転モータ４１３などは、アクチュエータの一例である。両面ＣＰＵ４０４には、用紙搬送状態検知部として、反転センサ３１６、両面搬送センサ３２０が接続されている。
【００４８】
反転ローラ３１７は、反転モータ４１３の駆動、停止に連動して、駆動、停止する。とりわけ、反転ローラ３１７は、反転モータ４１３の回転方向に従い正転又は逆転する。フラッパ３１３は、用紙搬送路を、フラッパソレノイド４１５の停止中は排紙ユニット４２４側に、フラッパソレノイド４１５の作動中は両面搬送ユニット４２３側に切り換える。横レジスト可動板３２２は、横レジモータ４１７の駆動、停止に連動して、駆動、停止する。横レジスト可動板３２２は、横レジモータ４１７の回転方向に従い動作方向が切換わる。Ｄカットローラ３１８は、Ｄローラモータ４１９の駆動、停止に連動して、駆動、停止する。両面搬送ローラ３１９及び再給紙ローラ３２１は、再給紙モータ４２７の駆動、停止に連動して、駆動、停止する。
【００４９】
メインＣＰＵ４０３と両面ＣＰＵ４０４との間は、シリアル通信Ｉ／Ｆによって接続され、各種情報の送受信を行っている。
【００５０】
図５は、両面印刷動作を実現する各種アクチュエータの制御シーケンスを示すタイミングチャートである。図のアルファベット（ａないしｚ）で示されるタイミングは、各アクチュエータに対する制御タイミングを示す。
【００５１】
＜メインＣＰＵの動作＞
まず、メインＣＰＵ４０３は、メインモータ４０５、給紙モータ４０９を駆動する（ａ）。さらに、所定時間後に、メインＣＰＵ４０３は、ピックアップソレノイド４１１を所定時間駆動する（ｂ〜ｃ）。これによりピックアップカム機構４２５が作動する。レジ前センサ３０７が用紙先端を検知すると、メインＣＰＵ４０３は、所定時間（レジストローラ前でのループ形成に要する時間）後に、給紙モータ４０９をホールド状態で保持する（ｄ）。給紙モータ４０９は、例えば、ステッピングモータである。また、ホールド状態とは、励磁相に通電したまま回転を停止する状態である。この後で実行される送り込み処理に際して、速やかにモータが回転を始められる必要がある。そのため、メインＣＰＵ４０３は、レジストローラ前で記録用紙Ｐが待機している状態で、給紙モータ４０９をホールド状態にする。また、メインＣＰＵ４０３は当該センサからの検知信号が紙無しから紙有りへ変化したか否かに応じて、用紙の先端をレジ前センサ３０７が検知したか否かを判断する。以下、特に説明のない限り、搬送路上での各センサによる用紙先端の検知は、同様に判断される。また、用紙後端の検知は、センサ信号の紙有りから紙無しへの変化により判断するものとする。
【００５２】
メインＣＰＵ４０３によって別途制御されている画像形成ユニットの画像形成準備が整うと、メインＣＰＵ４０３は、画像垂直同期信号を出力する。メインＣＰＵ４０３は、レジストローラクラッチ４０７を駆動するとともに、給紙モータ４０９の回転を再開する（ｅ）。画像垂直同期信号は、不図示の画像データ出力装置に対して出力する信号で、用紙搬送と画像データとのタイミング合わせをするための信号である。
【００５３】
メインＣＰＵ４０３は、画像垂直同期信号の出力後、所定時間が経過したときに、連続印刷をするか否かの判断を行う。これは、外部装置等から引き続き印刷を行うページが指定されているかどうかを確認する処理である。後続ページが存在すれば、メインＣＰＵ４０３は、画像形成装置内の各種機能を印刷可能状態のまま保持し、所定のタイミングで次ページの印刷処理を開始する。後続ページが存在しない場合、メインＣＰＵ４０３は、画像形成装置内の各種機能を印刷待機状態に立ち下げる処理を行う。後続ページが存在しない場合、レジ前センサ３０７が用紙後端を検知したタイミングで、メインＣＰＵ４０３は、給紙モータ４０９を停止する。この場合の停止とは、給紙モータ４０９の励磁相の通電を停止することを示す。ただし、タイミングｆでは、両面印刷の２面目の印刷ページが存在する。そのため、給紙モータ４０９の回転は継続する。
【００５４】
続いて、用紙後端がレジストローラ３０８を通過したタイミングになると、後続ページの有無に関係なく、メインＣＰＵ４０３は、レジストローラクラッチ４０７を停止する（ｇ）。
【００５５】
その後、メインＣＰＵ４０３は、両面ＣＰＵ４０４からシリアル通信によって再給紙を待っている最中であることを示す再給紙待機中情報を受信するまで待つ。再給紙待機中情報を受信すると、所定時間後に、メインＣＰＵ４０３は、両面ＣＰＵ４０４に対してシリアル通信によって再給紙指示を送信する（ｔ）。
【００５６】
１面目の搬送時と同様に、レジ前センサ３０７による用紙先端検知後の所定タイミングで、メインＣＰＵ４０３は、給紙モータ４０９をホールド状態で保持する（ｕ）。メインＣＰＵ４０３は、画像垂直同期信号を出力し、レジストローラクラッチ４０７を駆動する（ｖ）。２面目の処理ではこれらの制御に加え、メインＣＰＵ４０３は、タイミングｕで、両面ＣＰＵ４０４に対して一時停止を指示し、タイミングｖで、両面ＣＰＵ４０４に対して一時停止解除を指示する。これらの指示は、シリアル通信により送信される。
【００５７】
続いて、レジ前センサ３０７により用紙後端が検知されたタイミングで、メインＣＰＵ４０３は、（後続ページが存在しないため）給紙モータ４０９を停止する（ｘ）。続いて、用紙後端がレジストローラ３０８を通過したタイミングで、メインＣＰＵ４０３は、レジストローラクラッチ４０７を停止する（ｙ）。その後、定着排紙センサ３１２により用紙後端を検知してから所定時間後に、メインＣＰＵ４０３は、メインモータ４０５を停止し、用紙搬送制御を終了する（ｚ）。
【００５８】
＜両面ＣＰＵの動作＞
一方、両面ＣＰＵ４０４は、メインＣＰＵ４０３からシリアル通信によって反転動作指示を受信するまで待機する。反転動作指示を受信すると、両面ＣＰＵ４０４は、フラッパソレノイド４１５を駆動する（ｈ）。その後、反転センサ３１６が用紙先端を検知すると、両面ＣＰＵ４０４は、反転モータ４１３の駆動を開始する（ｉ）。このときの反転モータ４１３の回転方向は、印刷搬送ユニットから両面搬送ニットへ用紙が受け入れられる方向である。なお、記録用紙Ｐは、反転モータ４１３によって駆動される反転ローラ３１７によって搬送される。
【００５９】
また、フラッパソレノイド４１５の駆動が開始されてから所定時間後に、両面ＣＰＵ４０４は、フラッパソレノイド４１５を停止する（ｊ）。反転センサ３１６が用紙後端を検知してから所定時間後に、両面ＣＰＵ４０４は、反転モータ４１３の回転方向を切り換える（ｋ）。さらに所定時間後、両面ＣＰＵ４０４は、Ｄローラモータ４１９の駆動を開始する（ｌ）。用紙が横レジスト可動板３２２による調整位置に達し、Ｄカットローラ３１８の平面部分が用紙面側になった位置で、両面ＣＰＵ４０４は、反転モータ４１３、Ｄローラモータ４１９を停止させ、横レジスト位置調整を開始する（ｍ）。横レジスト調整は、Ｄローラモータ４１９一時停止中に、横レジモータ４１７を用紙サイズに応じた所定量回転させることにより実行される（ｎ〜ｏ）。
【００６０】
横レジスト位置調整が完了すると、両面ＣＰＵ４０４は、Ｄローラモータ４１９の駆動を再開すると同時に再給紙モータ４２７の駆動を開始する（ｐ）。両面搬送センサ３２０が用紙先端を検知すると、両面ＣＰＵ４０４は、用紙を開放するよう横レジモータを所定量（はさじ込み時と同じ量）回転させる（ｑ〜ｒ）。また、両面ＣＰＵ４０４は、Ｄローラモータ４１９の停止処理を開始する。Ｄローラモータ４１９は、両面搬送センサ３２０が用紙先端を検知した後、平面部分が用紙面側になった位置で停止する。両面ＣＰＵ４０４は、両面搬送センサ３２０が用紙先端を検知してから所定時間後（用紙が再給紙待機位置へ到達するのに要する時間後）に再給紙モータ４２７を停止させる。また、両面ＣＰＵ４０４は、メインＣＰＵ４０３へシリアル通信によって再給紙待機中情報を送信する（ｓ）。
【００６１】
その後、シリアル通信によるメインＣＰＵ４０３から送信される再給紙指示、一時停止指示、一時停止解除指示に従い、両面ＣＰＵ４０４は、再給紙モータ４２７の駆動、停止、駆動を行う（ｔ〜ｖ）。メインＣＰＵ４０３からの一時停止解除指示を受信した後、所定タイミング（用紙後端が再給紙ローラ３２１を通過するタイミング）で、両面ＣＰＵ４０４は、再給紙ローラを停止させる（ｗ）。以上が、シミュレート対象装置である画像形成装置３０１の動作である。
【００６２】
本実施形態に係るシミュレーションシステムは、画像形成装置に搭載されたＣＰＵの制御ソフトウエア（以下、ファームウエア）の実機レスデバッグ及び評価を目的とするものである。実機レスデバッグとは、実機を用いないで実行されるデバッグ処理のことである。したがって、画像形成装置３０１が対象装置である場合、２つのＣＰＵ（メインＣＰＵ４０３、両面ＣＰＵ４０４）のファームウエアを対象としたデバッグ及び評価システムを構築する必要がある。
【００６３】
これらを実現する単純な方法としては、実機と同様に、シミュレーションシステム上にも複数のＣＰＵシミュレータを構築し、各ＣＰＵシミュレータでそれぞれに対応したファームウエアを実行することが考えられる。
【００６４】
図６は、比較例としてのシミュレーションシステムを示す図である。すでに説明した個所には、同一の参照符号が付されている。図６に示した比較例は、ＣＰＵシミュレータ１０１、１０１’、機構モデルシミュレータ１０２及びこれらを同期接続するシミュレータハブ（以下、ＨＵＢ）１０４を備えている。
【００６５】
ＣＰＵシミュレータ１０１は、画像形成装置のメインＣＰＵ４０３の動作をシミュレートする。ＣＰＵシミュレータ１０１’は、両面ＣＰＵ４０４をシミュレートする。すなわち、ＣＰＵシミュレータ１０１、１０１’は、それぞれファームウエアをＰＣ上で模擬実行する。
【００６６】
図６に示された構成は、複数のＣＰＵを組み合わせて構成された組み合わせシステムを評価する構成としては有効である。しかし、開発途上におけるファームウエアのデバッグや評価のための構成としては不十分である。例えば、両面ＣＰＵ４０４のファームウエアをデバッグ及び評価するシステムの場合、動作保証されたメインＣＰＵ４０３のファームウエアが必要になる。しかし、開発途上においては、動作が保証されたファームウエアが存在するという前提が成り立たない。それゆえ、図６に示された構成では、不十分である。
【００６７】
背景技術の欄で説明したように、仮想デバイスモデルを構築するための各種手法やツールが考案されている。しかし、何れも仮想デバイスモデルの構築に多くの工数を要するものであるか、仮想デバイスモデルからの一方的な出力のみしか扱えないものであった。
【００６８】
ところで、本実施形態に係る両面ＣＰＵ４０４のファームウエアの評価及びデバッグを行うような目的をもったシミュレーションシステムにおいて、図５に示したタイミングチャートで動作するメインＣＰＵ４０３の仮想デバイスモデルを作成すればよい。図５に示されたメインＣＰＵ４０３の大部分の動作は、各種制御信号出力や機内通信を時系列に実行するのみの単純なシーケンスで実現できるからである。よって、対象装置の動作を高度に分析したり、スクリプト言語による複雑なプログラムを作ったりすること、さらに、このプログラムの動作を検証したりすることは必要ない。
【００６９】
しかし、一部に、センサ信号や両面ＣＰＵ４０４から送信される情報などの外部入力を待つ動作が必要になるため、単純な時系列データの出力処理のみでも対応できない。
【００７０】
そこで、本実施形態に係るシミュレーションシステムでは、シーケンスファイルに基づき動作する仮想デバイスシミュレーション機能を設ける。とりわけ、このシーケンスファイルには、時系列に記述されたイベント内容とイベント出力タイミングを基本とする動作シーケンスに加えて、外部からの入力イベント内容と入力イベントに対応する動作情報が記述される。これにより、対象装置の動作を忠実にシミュレーションする仮想デバイスを容易に作成できるようになる。なお、入力イベントは、上述の外部イベントに相当し、出力イベントは、内部イベントに相当しよう。
【００７１】
図７は、実施形態に係るシーケンスファイル１０９に記述されるシーケンスデータの一例を示す図である。シーケンスデータは、メインＣＰＵ４０３の動作に則している。
【００７２】
シーケンスファイル１０９は、イベント番号、イベント種別、信号名、相対タイミング、内容データ、トリガ条件といった６つのシーケンスデータをイベントごとに備えている。なお、図７では、各イベントに対応するタイミング記号（図５）を記述しているが、本項目はシーケンスファイルに記述されなくてもよい。
【００７３】
イベント番号は、イベントの順番を示す番号で、イベントの実行順に昇順につけられる。簡易シーケンサ１０３は、シーケンスファイル１０９に登録されている各イベントをイベント番号順に実行する。したがって、各イベントのイベント番号が正しく実行順に設定されていれば、イベントファイル内でのイベントの記述順は順不同でもよい。このように、イベント番号は、複数のイベントの各順番を示す順番データの一例である。
【００７４】
イベント種別は、例えば、”ｏ”と”ｗ”の何れかが指定される。”ｏ”は、所定信号の出力イベントを示す。”ｗ”は、所定信号に対して予め指定された条件の発生待ちイベントを示す。
【００７５】
信号名は、ＨＵＢ１０４を介してＣＰＵシミュレータ１０１、機構モデルシミュレータ１０２及び簡易シーケンサ１０３間でやり取りされる信号の名前を示す情報である。信号名には、信号ごとに予め指定されている文字列や記号が設定される。信号名は、シミュレーションシステムの配線情報として不図示の配線情報ファイルに予め設定されていてもよい。配線情報は、どの信号線がどの端子とどの端子との間に配線されているかを記述した情報である。配線情報ファイルは、シミュレータの起動時に、ＨＵＢ１０４によってハードディスク２１３から読み込まれる。本シミュレーションシステムで扱われる信号種別には、例えば、２値信号（１ビット値；０又は１）、多値信号（複数ビットの整数値）、アナログ信号（浮動小数点値）、文字列信号などがある。信号種別は、配線情報ファイルに信号名と対応付けられて設定されている。
【００７６】
相対タイミングは、各イベントについて直前に発生することになっているイベントとの相対的な時間差（相対時間）を示す情報である。シーケンスファイル１０９では、各イベントにイベント番号がその実行順にしたがって付与されている。したがって、相対時間は、当該イベントのイベント番号より小さい他のイベントのうち、最大のイベント番号を付与された他のイベントの実行タイミングから当該イベントの実行タイミングまでの時間となる。相対時間は、対象装置（本例では画像形成装置３０１）の動作シミュレーションにおける仮想時間であり、コンピュータシステム２０１におけるシミュレーション実行の実処理時間ではない。なお、イベント種別が”ｗ”の場合、簡易シーケンサ１０３は、シーケンスファイル１０９に記述された相対時間の情報を無視する。このように、相対タイミングは、各イベントについて直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータの一例である。
【００７７】
内容データは、イベント種別が”ｏ”の場合、信号名により指定された信号の出力値を示し、イベント種別が”ｗ”の場合、指定された信号のイベント成立条件（比較値）を示す情報である。データの欄には、信号種別に対応した形式の値が設定される。信号種別とデータの欄の形式が異なる場合（２値信号に”１０”が設定されたケースなど）、簡易シーケンサ１０３は、当該イベントを無視し、次のイベント処理に進む。なお、イベント種別が、”ｗ”でトリガ条件が”ｒ”、”ｆ”、”ｈ”、”ｌ”の何れかである場合、簡易シーケンサ１０３は、データ欄の情報を無視する。このように、内容データは、イベントの内容を指定した内容指定データの一例である。
【００７８】
トリガ条件は、イベント種別が”ｗ”の場合のイベントの発生条件を示す情報である。トリガ条件としては、例えば、”ｒ”、”ｆ”、”ｅ”、”ｈ”、”ｌ”、”＝”、”＞”、”＞＝”、”＜”、”＜＝”の何れかが指定される。簡易シーケンサ１０３は、以下の場合にトリガ条件が成立すると判断する。
”ｒ”  ：  指定された信号の値が０から０以外に変化した場合。
”ｆ”  ：  指定された信号の値が０以外から０に変化した場合。
”ｅ”  ：  指定された信号の値が変化した場合（変化方向は不問）。
”ｈ”  ：  指定された信号の値が０以外の場合。
”ｌ”  ：  指定された信号の値が０の場合。
”＝”  ：  指定された信号の値がデータ欄の値と一致する場合。
”＞”  ：  指定された信号の値がデータ欄の値よりも大きい場合。
”＞＝”  ：  指定された信号の値がデータ欄の値以上の場合。
”＜”  ：  指定された信号の値がデータ欄の値よりも小さい場合。
”＜＝”  ：  指定された信号の値がデータ欄の値以下の場合。
【００７９】
簡易シーケンサ１０３が備えるシーケンスデータ読み込み部１０５は、シーケンスファイル１０９を読み込み、イベント番号の昇順にシーケンスデータを取り出してシーケンス実行部１０６に渡す。それゆえ、シーケンスデータ読み込み部１０５は、順番データにしたがって、相対タイミングデータと内容指定データとを記憶部から読み出す読出部の一例といえる。シーケンス実行部１０６は、シーケンスデータ読み込み部１０５から受け取ったシーケンスデータに基づき、所定のイベント処理を行う。
【００８０】
図８は、実施形態に係るシーケンス実行部１０６の処理を示すフローチャートである。ステップＳ８０１（以下、単にＳｘｘｘと記す）で、シーケンス実行部１０６は、シーケンスデータ読み込み部１０５からシーケンスデータを取得する。Ｓ８０２で、シーケンス実行部１０６は、イベント種別を確認する。イベント種別が”イベント待ち”であれば、Ｓ８０６に進む。一方、イベント種別が”出力”であれば、Ｓ８０３に進む。
【００８１】
Ｓ８０３で、シーケンス実行部１０６は、その時点での仮想時間上の絶対時刻（シミュレーション開始からの仮想時間）を仮想時間計測部１０８から取得する。ここで取得した時刻を起点にイベント実行までの相対時間を測定する。
【００８２】
Ｓ８０４で、シーケンス実行部１０６は、シーケンスデータに含まれている相対タイミングにより指定された相対時間が経過したか否かを判定する。シーケンス実行部１０６は、例えば、仮想時間計測部１０８から取得した現在の時刻（絶対時間）とＳ８０３で取得した時刻との時間差を仮想時間上の相対時間として算出する。シーケンス実行部１０６は、算出した相対時間が、シーケンスデータにより指定された時間を超えたか否かを判定する。このように、Ｓ８０４は、待機ループとなっている。指定された時間が経過したらＳ８０５に進む。なお、シーケンス実行部１０６は、直前のイベントが発生した仮想時刻からの経過時間が、相対タイミングデータが示す時間差となったか否かを判定する判定部の一例である。
【００８３】
Ｓ８０５で、シーケンス実行部１０６は、シーケンスデータにより信号名に対応して指定された内容データの出力をハブ通信部１０７に要求する。ハブ通信部１０７は、指定されたデータを、指定された信号名に対応した信号としてＨＵＢ１０４へ出力する。よって、シーケンス実行部１０６は、内容指定データにより指定された内容にしたがったイベントを対象装置に発生させる発生部の一例である。また、シーケンス実行部１０６やハブ通信部１０７は、外部イベントが発生すると外部イベントに対応した信号を対象装置へ出力する出力部の一例である。その後、Ｓ８０１に戻って、シーケンス実行部１０６は、シーケンスデータ読み込み部１０５から次のシーケンスデータを取得する。
【００８４】
Ｓ８０２でイベント種別が”イベント待ち”の場合、Ｓ８０６に進む。Ｓ８０６で、シーケンス実行部１０６は、シーケンスデータで指定された信号のその時点での値を読み込む。Ｓ８０７で、シーケンス実行部１０６は、読み込んだ信号の値が、指定されたトリガ条件を満たしているか否かを判定する。トリガ条件が成立していなければ、Ｓ８０８に進む。Ｓ８０８で、シーケンス実行部１０６は、ハブ通信部１０７から信号の値を読み込み、値が変化したか否かを判定する。すなわち、Ｓ８０８は、信号の変化を待つためのループとなっている。なお、シーケンス実行部１０６やハブ通信部１０７は、対象装置において内部イベントが発生すると対象装置から出力される内部イベントに対応した信号を入力する入力部の一例である。
【００８５】
信号の値が変化すると、ステップＳ８０６に戻る。以下、トリガ条件が成立するまで、Ｓ８０６、Ｓ８０７及びＳ８０８を繰り返す。最終的に、トリガ条件が成立すると、ステップＳ８０１に戻る。よって、シーケンス実行部１０６は、入力部から入力された信号に基づいて外部イベントの発生条件となる内部イベントの発生を検知する検知部の一例である。
【００８６】
両面ＣＰＵ４０４のファームウエアのデバッグ及び評価を考えた場合、例えば、図５のタイミングｕ以降のメインＣＰＵ４０３による信号出力の絶対的な各タイミングは、レジ前センサ３０７に用紙先端が到達するタイミングによって変化する。このような機能を持った簡易シーケンサ１０３によって、メインＣＰＵ４０３の仮想デバイスモデルを簡単に実現することができるようになる。
【００８７】
また、上述したシミュレーションシステムに、特開２００６−１０７３７０号公報に示されるような機構部品の応答特性を持たせた機構モデルシミュレータを組み込むことが希望されてもよい。しかし、通常、シミュレーション対象の機構モデルの応答タイミングを予め想定することは困難である。よって、このような機構モデルシミュレータと組み合わせたシミュレーションシステムにおいてメインＣＰＵ４０３のような装置の仮想デバイスモデルを作成する際にも、本実施形態に係る簡易シーケンサ１０３は有効である。すなわち、簡易シーケンサ１０３は、各イベント間の相対的な時間差や、条件の成立未成立によって、所望のイベントの発生タイミングを制御できるからである。
【００８８】
ここまでは、ファームウエアのデバッグ及び評価システムについて説明した。しかし、簡易シーケンサで作成した制御シーケンスによって、メカ機構モデルの動作検証を行うメカ機構検証システムにおいても、本実施形態に示した技術は応用できる。
【００８９】
また、本実施形態に示したシーケンスデータは、ユーザが新規に作成してもよいし、実機動作をトレースして得られたデータに必要な加工を施すことで作成したものであってもよい。例えば、画像形成装置３０１に関しては、類似した形状を有する既存の画像形成装置を動作させ、そのメインＣＰＵによるアクチュエータ制御信号のトレースデータを取得すればよい。トレースデータに対して、必要に応じてタイミングを変更したり、イベント待ち処理を追加したりすれば、所望のシーケンスデータが得られる。このように、類似装置のトレースデータを利用すれば、新規にシーケンスデータを作成するよりも簡単に仮想デバイスモデルを作成することができる利点がある。また、メインＣＰＵのファームウエアの完成を待たずに、両面ＣＰＵのファームウエアデバッグ及びその検証が可能になる利点もある。
【００９０】
本実施形態では、外部イベントの発生条件を、直前に発生することになっているイベントとの相対的な時間差を示す相対タイミングデータと、発生条件が満たされたときに発生するイベントの内容を指定した内容指定データとにより定義する。これにより、シミュレーションシステムを簡単に作り出すことが可能となるため、装置評価の効率や精度を高めやすくなる。
【００９１】
また、本実施形態では、対象装置に対する信号の出力だけでなく、対象装置から出力される信号の入力にも簡易シーケンサ１０３は対応している。よって、より複雑なシミュレーションにも対応できる。
【００９２】
［実施形態２］
実施形態１における簡易シーケンサでは、イベント待ちにおけるトリガ条件を、１つの信号の値に基づいて判定している。しかし、本発明は、これに限定されることはなく、複数の信号の値が採用されてもよい。すなわち、各信号について設定された個別の信号条件を組み合わせることで、他のトリガ条件を設定してもよい。
【００９３】
本実施形態においてシミュレーションシステムの対象装置は実施形態１と同じ画像形成装置とする。ただし、用紙搬送制御の機能構成は実施形態１のものとは異なる。すなわち、制御用ＣＰＵとしてメインＣＰＵ、両面ＣＰＵのほかにもう１つ給紙搬送ユニットを制御する給紙ＣＰＵを搭載した給紙制御部を有する構成になっている。
【００９４】
図９は、実施形態に係る用紙搬送制御機構の機能ブロック図である。給紙搬送ユニット４２１’の内部構成は、図４に示した給紙搬送ユニット４２１と同様である。本実施形態においては、画像形成装置３０１に、給紙制御部９２７が追加されている。給紙制御部９２７は、給紙搬送ユニット４２１’を制御する給紙ＣＰＵ９２８を搭載している。給紙ＣＰＵ９２８には、ドライバ９２９を介して給紙モータ４０９が、ドライバ９３０を介してピックアップソレノイド４１１が、アクチュエータとして接続されている。また、給紙ＣＰＵ９２８には、用紙搬送状態検知部として、給紙センサ３０４やレジ前センサ３０７が接続されている。給紙ＣＰＵ９２８は、メインＣＰＵ４０３とシリアル通信Ｉ／Ｆで接続されている。メインＣＰＵ４０３は、両面ＣＰＵ４０４と給紙ＣＰＵ９２８をそれぞれ別チャネルのシリアル通信Ｉ／Ｆで接続している。
【００９５】
図１０は、片面印刷時の制御シーケンスの一例を示したタイミングチャートである。実施形態１とは異なり、給紙モータ４０９及びピックアップソレノイド４１１の駆動並びに給紙センサ３０４及びレジ前センサ３０７の監視を給紙ＣＰＵ９２８が担当する。
【００９６】
印刷開始に際して、メインＣＰＵ４０３から給紙開始指示を受信すると、給紙ＣＰＵ９２８が給紙モータ４０９を起動する（ａ）。また、給紙開始指示を受信してから所定時間後に、給紙ＣＰＵ９２８は、ピックアップソレノイド４１１を駆動する（ｂ〜ｃ）。そして、給紙ＣＰＵ９２８は、レジ前センサ３０７が用紙先端を検知してから所定時間後に、給紙ＣＰＵ９２８は、給紙モータ４０９をホールド状態で保持する。また、給紙ＣＰＵ９２８は、シリアル通信Ｉ／Ｆを介してメインＣＰＵ４０３に対しレジ前待機中情報を送信する（ｄ）。レジ前待機中情報は、レジ前センサ３０７が記録用紙Ｐの先端を検知するまで待機することを示す情報である。
【００９７】
メインＣＰＵ４０３は、レジ前待機中情報を受信すると所定の画像形成準備処理の完了を待って画像垂直同期信号を出力するとともに、給紙ＣＰＵ９２８に対して送り込み指示を送信する（ｅ）。給紙ＣＰＵ９２８は、メインＣＰＵ４０３からの送り込み指示を受信すると直ちに給紙モータ４０９の駆動を開始する。
【００９８】
実施形態１で説明したとおり、メインＣＰＵ４０３は送り込み指示を送信してから所定時間後に、連続印刷をするか否かの判断を行う。連続印刷でない場合、メインＣＰＵ４０３は、画像形成装置内の各種機能を印刷待機状態に移行させる。このとき、メインＣＰＵ４０３は、給紙ＣＰＵ９２８に対してシリアル通信Ｉ／Ｆを介して停止指示を送信する（Ａ）。給紙ＣＰＵ９２８は、メインＣＰＵ４０３からの停止指示を受信すると、用紙後端がレジ前センサ３０７を通過したか否かを判定する。通過していれば、給紙ＣＰＵ９２８は、直ちに給紙モータ４０９を停止させる。一方、用紙後端がレジ前センサ３０７を通過していなければ、用紙後端の通過が検知されるのを待つ。
【００９９】
以上説明したような画像形成装置３０１におけるメインＣＰＵ４０３のファームウエアデバッグ及び評価システムを構築する場合、給紙ＣＰＵ９２８の仮想デバイスモデルを作成する必要がある。すなわち、図１０に示した給紙ＣＰＵ９２８の動作を、簡易シーケンサにより実現することになる。
【０１００】
給紙ＣＰＵ９２８は、タイミングＡでメインＣＰＵ４０３からの停止指示を受信すると、給紙モータ４０９の停止制御を行う。ここで、給紙ＣＰＵ９２８は、メインＣＰＵ４０３からの停止指示を受信したとき、レジ前センサ３０７の検知状態に応じて、給紙モータ４０９停止のタイミングを変更している。実施形態１に示した簡易シーケンサでは、イベント待ちを１つの信号のトリガ条件のみで表現していた。そのため、実施形態１の簡易シーケンサは、実施形態２のメインＣＰＵ４０３からの停止指示に対する給紙ＣＰＵ９２８の処理を実現できない。そこで、実施形態２に示す簡易シーケンサでは、複数の信号を参照するトリガ条件によってイベント待ちを設定できるようにしている。
【０１０１】
本実施形態における画像形成装置３０１の機器シミュレーションシステムの構成は図１と同じである。ただし、簡易シーケンサのシーケンス実行部１０６の制御内容が実施形態１とは異なる。
【０１０２】
図１１は、実施形態に係る給紙ＣＰＵ９２８を簡易シーケンサで仮想デバイスモデル化した場合のシーケンスデータの一例を示す図である。図１１によれば、タイミングＡに対応するイベントのシーケンスデータが２つ存在する。すなわち、信号名ｆｅｄｃｍｄに対するイベントと、信号名ｐｒｒｓｎｓに対するイベントである。これらのイベントのタイミング番号は、同一である。これは、複数のイベントの順番データをそれぞれ同一とすることで、外部イベントの発生条件を複数のイベントの組み合わせによって定義するためである。
【０１０３】
なお、ｆｅｄｃｍｄは、メインＣＰＵ４０３から給紙ＣＰＵ９２８に対するコマンドデータを表している。このトリガ条件によれば、メインＣＰＵ４０３からのコマンドデータが”１４”に一致するまで給紙ＣＰＵ９２８が待機すること（イベント待ち）になる。
【０１０４】
ｐｒｒｓｎｓは、レジ前センサ３０７から出力される検知信号を表している。なお、対応するトリガ条件は、”ｌ”となっている。よって、給紙センサ３０４からの検知信号が”０”になるまで、給紙ＣＰＵ９２８は待機することになる。
【０１０５】
図１１によれば、シーケンスデータに入力条件を格納する欄が設けられている。それぞれの入力条件の欄は”ａｎｄ”が設定されている。これは、同一のイベント番号が付与された２つのシーケンスデータの各トリガ条件が、ＡＮＤで成立（両方とも成立）した場合に、以降のイベントに進むことを意味する。入力条件欄の設定内容の一例を以下に示す。
”ａｎｄ”  ：  同じイベント番号を付与された複数のトリガ条件がすべて成立した場合に以降のイベントに進む。
”ｏｒ”  ：  同じイベント番号を付与された複数のトリガ条件の何れかが成立した場合に以降のイベントに進む。
【０１０６】
本実施形態に係るシーケンス実行部の制御の流れは基本的には実施形態１の図８に示したフローチャートと同様である。ただし、Ｓ８０１及びＳ８０６〜Ｓ８０８の各ステップの処理内容に違いがある。
【０１０７】
図１２は、Ｓ８０１のさらに詳細な処理を示したフローチャートである。Ｓ１２０１で、シーケンス実行部１０６は、前回取得して保存したシーケンスデータがあるかどうかを判定する。もし、２回目以降のシーケンスデータ取得処理であれば、前回取得したシーケンスデータがＳ１２０７で保存されているからである。判定の結果、前回取得したシーケンスデータが存在しない場合（起動後の初回のみ）、Ｓ１２０２に進む。前回取得したシーケンスデータが存在していれば、Ｓ１２０４に進む。
【０１０８】
Ｓ１２０２で、シーケンス実行部１０６は、シーケンスデータ読み込み部１０５から１つのシーケンスデータを取得する。Ｓ１２０３で、シーケンス実行部１０６は、取得したシーケンスデータを保存し、Ｓ１２０４に進む。
【０１０９】
Ｓ１２０４で、シーケンス実行部１０６は、イベント番号にしたがって次のシーケンスデータをシーケンスデータ読み込み部１０５から取得する。Ｓ１２０５で、シーケンス実行部１０６は、取得したシーケンスデータのイベント番号が保存しているシーケンスデータのイベント番号と一致するか否かを判定する。一致すれば、Ｓ１２０６に進み、シーケンス実行部１０６は、取得したシーケンスデータを保存し、Ｓ１２０４に戻り、さらにその次のシーケンスデータを取得する。Ｓ１２０４ないしＳ１２０６は、イベント番号が不一致になるまで繰り返される。
【０１１０】
Ｓ１２０５でイベント番号が不一致と判定されると、Ｓ１２０７に進み、シーケンス実行部１０６は、最後のシーケンスデータを次回のイベントを実行するためのシーケンスデータとして保存する。以上の処理により、Ｓ８０１で、同一のイベント番号が付与された複数のシーケンスデータが取得される。その後、Ｓ８０２ないしＳ８０５が実行される。
【０１１１】
Ｓ８０６で、シーケンス実行部１０６は、複数のシーケンスデータが存在する場合、対象となるすべての信号の値を読み込む。そして、Ｓ８０７で、シーケンス実行部１０６は、シーケンスデータの入力条件欄の記号に従いトリガ条件の成立を確認する。
【０１１２】
実施形態２のシーケンスデータでは、同じイベント番号が付与されたイベントの入力条件は、同じ記号のみ扱えるものとする。もし、同じイベント番号が付与された複数のイベントにそれぞれ異なる記号（例：一方が”ａｎｄ”で他方が”ｏｒ”）が設定されていれば、簡易シーケンサ１０３はエラーとして処理する。
Ｓ８０８で、シーケンス実行部１０６は、対象となる信号の何れか１つでも変化すればＳ８０６に戻る。
【０１１３】
以上説明したように、同一のイベント番号を付与された複数のイベントの各信号値を必要とするトリガ条件を採用することで、イベント待ちを設定することができる。これにより、より複雑な動作の仮想デバイスモデルを容易に作成できるようになる。
【０１１４】
［実施形態３］
実施形態１、２に係る各機器シミュレーションシステムは、１つの簡易シーケンサを有していた。本実施形態のシミュレーションシステムでは、複数の簡易シーケンサを備えることで、複数のシーケンスデータを独立したシーケンスとして並列に動作できるようにする。なお、シミュレート対象装置は、実施形態１、２と同じ画像形成装置とする。また、用紙搬送制御部の機能構成は、実施形態２（図９）と同様とする。
【０１１５】
図９に示した３つあるＣＰＵの１つに適用されるファームウエアのデバッグ及び評価システムを構築する場合、他の２つのＣＰＵの動作をシミュレートする仮想デバイスモデルが必要になる。例えば、メインＣＰＵ４０３のシミュレーションデバッグ及び評価システムを考えた場合、両面ＣＰＵ４０４と給紙ＣＰＵ９２８の両方の動作をシミュレートする仮想デバイスモデルが必要になる。以下、このような構成のシミュレーションシステムについて説明する。
【０１１６】
図１３は、両面印刷時における両面搬送ユニットの再給紙動作を示すタイミングチャートである。１面目の給紙動作ないし両面搬送についてはすでに説明したので省略する（図５、図１０）。
【０１１７】
両面ＣＰＵ４０４は、両面搬送ユニット内の所定位置まで用紙を搬送すると、再給紙モータ４２７を停止し、メインＣＰＵ４０３にシリアル通信Ｉ／Ｆを介して再給紙待機中情報を送信する（ｓ）。その後、両面ＣＰＵ４０４は、メインＣＰＵ４０３からの再給紙指示を待つ。メインＣＰＵ４０３は両面ＣＰＵ４０４からの再給紙待機中情報を受信すると、シリアル通信Ｉ／Ｆを介して両面ＣＰＵ４０４及び給紙ＣＰＵ９２８に再給紙指示を送信する（ｔ）。
【０１１８】
両面ＣＰＵ４０４は、再給紙モータ４２７を駆動して用紙搬送を開始し、メインＣＰＵ４０３からの停止指示を待つ。一方、給紙ＣＰＵ９２８は、レジ前センサ３０７での用紙先端検知を開始する。そして、給紙ＣＰＵ９２８は、レジ前センサ３０７が用紙先端を検知すると、その所定時間後に給紙モータ４０９をホールド状態に保持する。さらに、給紙ＣＰＵ９２８は、メインＣＰＵ４０３に対してシリアル通信Ｉ／Ｆを介してレジ前待機中情報を送信する（ｕ）。
【０１１９】
メインＣＰＵ４０３は、レジ前待機中情報を受信すると、所定の画像形成準備が完了するのを待ってから画像垂直同期信号を出力する。さらに、メインＣＰＵ４０３は、両面ＣＰＵ４０４及び給紙ＣＰＵ９２８に対して送り込み指示を送信する（ｖ）。メインＣＰＵ４０３からの送り込み指示を受信すると、両面ＣＰＵ４０４は、再給紙モータ４２７を駆動する。同様に、給紙ＣＰＵ９２８は、給紙モータ４０９の駆動を再開する。
【０１２０】
以上の動作に対して、両面ＣＰＵ４０４と給紙ＣＰＵ９２８の仮想デバイスモデルを実施形態２の構成の簡易シーケンサにより１つのシーケンスデータで実現することを考えた場合、以下のような問題が発生する。
【０１２１】
例えば、タイミングｔで、停止指示待ちと、レジ前センサ３０７の信号立ち上がり待ちとを”ＡＮＤ”条件、”ＯＲ”条件として、イベント待ちを設定したとても正しい動作をシミュレートすることはできない。給紙ＣＰＵ９２８におけるレジ前センサ３０７の信号立ち上がり待ちを先行イベントとして設定し、両面ＣＰＵ４０４におけるメインＣＰＵ４０３からの停止指示待ちを後続イベントとして設定すればそれなりの動作はするだろう。しかし、これはメインＣＰＵ４０３、両面ＣＰＵ４０４及び給紙ＣＰＵ９２８の連携が順番どおりに正しく行われることを前提としたイベント設定である。シミュレーションの目的がメインＣＰＵ４０３のファームウエアデバッグ及び評価である場合、ファームウエアの処理によって動作する周辺デバイスモデルはできる限り実機に忠実な動作をする必要がある。
【０１２２】
そこで、本実施形態のシミュレーションシステムでは、２つのシーケンスデータを独立した２つの簡易シーケンサにより別々に並列処理する構成とし、問題に対応できるようにしている。
【０１２３】
図１４は、本実施形態におけるシミュレーションシステムの機能構成を示す図である。図１との違いは、ＨＵＢ１０４に２つの簡易シーケンサ１０３、１０３’）が接続され、それぞれが別のプロセスとして異なるシーケンスファイル１０９、１０１’を読み込み実行することである。それぞれの簡易シーケンサの動作は、実施形態２の簡易シーケンサ１０３と同様である。また、シーケンスファイルの書式も実施形態２のシーケンスファイル１０９と同様である。
【０１２４】
シーケンスファイル１０９には、両面ＣＰＵ４０４の動作シーケンスが記述されている。また、シーケンスファイル１０９’には、給紙ＣＰＵ９２８の動作シーケンスが記述されている。簡易シーケンサ１０３、１０３’は、それぞれ独立のプロセスとして動作する。すなわち、簡易シーケンサ１０３、１０３’は、それぞれ対応するシーケンスファイルにしたがって所定の仮想タイミングでの処理やイベント待ちを並列に実行する。それゆえ、簡易シーケンサ１０３、１０３’は、記憶部から読み出した複数のシーケンスファイルのそれぞれに対応したイベントを並列に発生させる複数の並列実行部の一例である。また、簡易シーケンサ１０３、１０３’は、それぞれ対応したシーケンスファイルを記憶部から読み出して外部イベントの発生処理を実行する複数の並列実行部の一例でもある。
【０１２５】
このような構成とすることで、異なるイベント待ち条件を持つ複数の仮想デバイスモデルを簡単に構築することが可能になる。
【０１２６】
［実施形態４］
実施形態３では、異なるシーケンスファイルを実行する簡易シーケンサを別プロセスとして構成する例を示した。それに対し、本実施形態では、１つのプロセスとして構成される簡易シーケンサ内に複数のシーケンス実行部を別スレッドとして構成することにより、実施形態３と同様の効果を得られるようにしている。
【０１２７】
図１５は、実施形態に係るシミュレーションシステムの機能構成を示す図である。シーケンス実行部１０６、１０６’は、簡易シーケンサ１０３のプロセスに含まれる別スレッドとして構成されている。それゆえ、シーケンス実行部１０６、１０６’は、単一のプロセスに含まれた異なるスレッドとして構成され、それぞれ対応したシーケンスファイルを記憶部から読み出して外部イベントの発生処理を実行する複数の並列実行部の一例である。それぞれのシーケンス実行部の動作は、実施形態２のシーケンス実行部１０６と同じである。
【０１２８】
シーケンスデータ読み込み部１０５は、２つのシーケンス実行部からの要求に応じてそれぞれ対応したシーケンスファイルからシーケンスデータを読み込む。ハブ通信部１０７は、それぞれのシーケンス実行部からの要求に応じて、シミュレータハブとの信号の送受信を行う。仮想時間計測部１０８は、それぞれのシーケンス実行部に同じ仮想時間情報を供給する。
【０１２９】
以上の構成により、１つのプロセスとして実現された簡易シーケンサによって複数のシーケンスを並列実行させることができる。
【０１３０】
［実施形態５］
実施形態２のシーケンスデータは、同一のイベント番号が付与された各イベントの入力条件は同じ記号のみ扱えることを前提としていた。もし、同一のイベント番号が付与された複数のイベントに異なる記号が設定された場合、簡易シーケンサは、エラーとして処理していた。
【０１３１】
本実施形態では、異なるシーケンスデータの書式を採用する。例えば、信号ごとに入力条件を設定しない。さらに、複数のトリガ条件に対して、イベント番号とは別のインデックスを付与する。また、インデックスによって表現した論理式を、同一のイベント番号を付与されたシーケンスデータのトリガ条件とする。これにより、複雑なイベント待ち条件を扱えるようになる。
【０１３２】
図１６は、実施形態に係るシーケンスデータの一例を示す図である。このシーケンスデータでは、イベントＩＤの欄が追加されている。イベントＩＤは、すべてのイベントについて固有の番号が付与される。すなわち、イベントＩＤは、複数あるイベントのそれぞれ識別するための識別データの一例である。
【０１３３】
図１６に示した例では、イベント番号が”４”であるイベントが３つある。これらのイベントＩＤは、それぞれ４、５、６となっている。これら３つのイベントに設定された個別のトリガ条件を組み合わせることによって、イベント待ちが設定される。この例では、イベントＩＤが”４”のトリガ条件と、イベントＩＤ”５”又は”６”の何れかに対応したトリガ条件が成立すると、次のイベントに進むことが示されている。この組合わせられたトリガ条件が、イベント番号が”４”でかつイベントＩＤが”７”であるトリガ条件の欄に記述されている。
【０１３４】
イベントＩＤが”７”であるイベントデータのイベント種別には、記号”ｅ”が記述されている。これは、このイベントのトリガ条件が、複数のトリガ条件を論理式により記述されていることを示している。
【０１３５】
トリガ条件の欄に記述された論理式”４＊（５＋６）”のうち、数字は、イベントＩＤを示している。すなわち、イベントＩＤに対応したトリガ条件が、この論理式によって組み合わされることが示されている。論理式において、＊は”ａｎｄ（論理積）”を示し、＋は”ｏｒ（論理和）”を示している。さらに、（）によって囲まれた部分は結合優先度の高いことを示している。このように、実施形態５では、外部イベントの発生条件が、複数のイベントの各発生条件の論理積又は論理和によって表現される。すなわち、イベントファイルには、組み合わされる複数のイベントの識別データを論理式に表現した発生条件のデータが含まれている。これにより、外部イベントの発生条件を複数のイベントの組み合わせによって定義することが可能となる。
【０１３６】
シーケンス実行部１０６は、論理式により表現されたトリガ条件を用いて、Ｓ８０７の条件判断を行う。これにより、より複雑なイベント待ち条件を扱えるようになる。
【図面の簡単な説明】
【０１３７】
【図１】実施形態に係るシミュレーションシステムの各機能を示すブロック図である。
【図２】シミュレーションシステムのハードウェア構成の一例を示す図である。
【図３】本実施形態のシミュレーションシステムによるシミュレート対象となる電子写真方式を採用した画像形成装置の用紙搬送機構を示す概略図である。
【図４】エンジン制御部の機能ブロック図である。
【図５】両面印刷動作を実現する各種アクチュエータの制御シーケンスを示すタイミングチャートである。
【図６】比較例としてのシミュレーションシステムを示す図である。
【図７】実施形態に係るシーケンスファイル１０９に記述されるシーケンスデータの一例を示す図である。
【図８】実施形態に係るシーケンス実行部１０６の処理を示すフローチャートである。
【図９】実施形態に係る用紙搬送制御機構の機能ブロック図である。
【図１０】片面印刷時の制御シーケンスの一例を示したタイミングチャートである。
【図１１】実施形態に係る給紙ＣＰＵ９２８を簡易シーケンサで仮想デバイスモデル化した場合のシーケンスデータの一例を示す図である。
【図１２】Ｓ８０１のさらに詳細な処理を示したフローチャートである。
【図１３】両面印刷時における両面搬送ユニットの再給紙動作を示すタイミングチャートである。
【図１４】本実施形態におけるシミュレーションシステムの機能構成を示す図である。
【図１５】実施形態に係るシミュレーションシステムの機能構成を示す図である。
【図１６】実施形態に係るシーケンスデータの一例を示す図である。
【符号の説明】
【０１３８】
１０１‥‥ＣＰＵシミュレータ
１０２‥‥機構モデルシミュレータ
１０３‥‥簡易シーケンサ
１０４‥‥シミュレータハブ
１０５‥‥シーケンスデータ読み込み部
１０６‥‥シーケンス実行部
１０７‥‥ハブ通信部
１０８‥‥仮想時間計測部
１０９‥‥シーケンスファイル
【図１】
2009031944.tif 000003
【図２】
2009031944.tif 000004
【図３】
2009031944.tif 000005
【図４】
2009031944.tif 000006
【図５】
2009031944.tif 000007
【図６】
2009031944.tif 000008
【図７】
2009031944.tif 000009
【図８】
2009031944.tif 000010
【図９】
2009031944.tif 000011
【図１０】
2009031944.tif 000012
【図１１】
2009031944.tif 000013
【図１２】
2009031944.tif 000014
【図１３】
2009031944.tif 000015
【図１４】
2009031944.tif 000016
【図１５】
2009031944.tif 000017
【図１６】
2009031944.tif 000018