(57)【要約】【課題】複雑な内部構造を有する電気機器において、特別なハードウェアを用いずに容易に動作シミュレーションを実行可能にするとともに、動作シミュレーションを行うべき負荷を特定して動作シミュレーションを行う。【解決手段】画像形成装置１００は、ＣＰＵ１０とＲＡＭ３０とを備え、ＣＰＵ１０は、画像形成装置１００に実行させるべき動作シミュレーションを特定する情報を含む状態遷移表データ９ａに基づいて動作シミュレーションを実行させ、この実行させている動作シミュレーションを識別する情報をＲＡＭ３０に記憶させる。動作シミュレーションの遷移条件を含むトリガデータ９ｂに基づいて画像形成装置１００が遷移条件を満たすか否かを判断し、遷移条件を満たすと判断した場合、ＲＡＭ３０に記憶された情報に基づいて画像形成装置１００が実行する動作シミュレーションを変更させる。【選択図】図３
2010152622.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、ＲＡＭとを備える被シミュレーション装置の動作をシミュレーションする方法であって、
前記ＣＰＵが、前記被シミュレーション装置に実行させるべき動作シミュレーションを特定する情報を含む状態遷移表データに基づいて動作シミュレーションを実行させる第１の工程と、
前記ＣＰＵが、実行させている動作シミュレーションを識別する情報を前記ＲＡＭに記憶させる第２の工程と、
前記ＣＰＵが、前記動作シミュレーションの遷移条件を含むトリガデータに基づいて前記被シミュレーション装置が遷移条件を満たすか否かを判断し、遷移条件を満たすと判断した場合、前記ＲＡＭに記憶された情報に基づいて前記被シミュレーション装置に実行させる動作シミュレーションを変更させる第３の工程と、
を有することを特徴とする動作シミュレーション方法。
【請求項２】
前記状態遷移表データは、前記制御部が遷移条件を満たすと判断した場合に変更させる動作シミュレーションを特定する次状態情報を含み、
前記第３の工程は、前記ＣＰＵが、遷移条件を満たすと判断した場合、前記被シミュレーション装置に前記ＲＡＭに記憶された情報と前記次状態情報とに基づいて前記被シュミレーション装置の動作シミュレーションを特定して変更させることを特徴とする請求項１に記載の動作シミュレーション方法。
【請求項３】
前記被シミュレーション装置は、複数の負荷を備え、
前記状態遷移表データは、前記負荷毎に実行させるべき動作シミュレーションを特定する情報を含むことを特徴とする請求項１又は２に記載の動作シミュレーション方法。
【請求項４】
前記状態遷移表データによって特定される前記被シミュレーション装置の動作は、前記被シュミレーション装置が有する機能に基づいた動作であることを特徴とする請求項１〜３のいずれか一項に記載の動作シミュレーション方法。
【請求項５】
前記トリガデータは、タイマ情報及びイベント情報から構成されるトリガ配列を含むことを特徴とする請求項１〜４のいずれか一項に記載の動作シミュレーション方法。
【請求項６】
前記トリガ配列のタイマ情報は前記イベント毎のタイマ値がソートされていることを特徴とする請求項５に記載の動作シミュレーション方法。
【請求項７】
前記被シミュレーション装置は、前記状態遷移表データと前記トリガデータとを記憶する記憶部を備えることを特徴とする請求項１〜６のいずれか一項に記載の動作シミュレーション方法。
【請求項８】
前記ＣＰＵが、前記被シミュレーション装置が有する機能の動作と前記動作シミュレーションとを選択して前記シミュレーション装置の動作を制御する切り替えスイッチ工程を更に有することを特徴とする請求項１〜７のいずれか一項に記載の動作シミュレーション方法。
【請求項９】
ＲＡＭを備える被シミュレーション装置を、
前記被シミュレーション装置に実行させるべき動作シミュレーションを特定する情報を含む状態遷移表データに基づいて動作シミュレーションを実行させる第１の手段、
実行させている動作シミュレーションを識別する情報を前記ＲＡＭに記憶させる第２の手段と、
前記動作シミュレーションの遷移条件を含むトリガデータに基づいて前記被シミュレーション装置が遷移条件を満たすか否かを判断し、遷移条件を満たすと判断した場合、前記ＲＡＭに記憶された情報に基づいて前記被シミュレーション装置に実行させる動作シミュレーションを変更させる第３の手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作シミュレーション方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、電気機器の動作シミュレーションを行う手法が種々考案されている。例えば、入力指令、出力指令、入力確認、出力確認の４つの要素によって記述されるアクチュエータモデルを用いて電気機器の動作を記述し、この記述された動作を入力信号によって呼び出して動作シミュレーションを行う手法がある。他にも、電気機器がとるべき動作をタイムチャートで記述して、電気機器の動作シミュレーションを行う方法等がある。
【０００３】
特許文献１には、設備の各アクチュエータを、出力指令信号、出力状態確認信号、動作時間によってモデル化し、これらの３つの要素に基づいて設備の動作シミュレーションを行う技術が記載されている。
特許文献２には、被シュミレーション装置の中央処理装置部と周辺部とを電気的に接続する第１状態と、中央処理装置部と周辺部と擬似信号出力部とを電気的に接続する第２状態とを制御信号に基づいて切り替えることができるシミュレーション装置に関する技術が記載されている。
特許文献３には、シーケンス制御に関わるタイムチャートの時間軸に任意のスキップ先を設定することにより、装置が行うべき動作を所定のスキップ先にスキップさせるシーケンス制御シミュレータに関する技術が記載されている。
【特許文献１】特開平６−２８２３１０号公報
【特許文献２】特開２０００−２５９２２１号公報
【特許文献３】特開２００１−１１７６０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載のような、アクチュエータモデルによって記述されたシミュレーション方法では、被シミュレーション装置を構成する１つの負荷のオン／オフを指定することしかできず、各負荷の動作の起点となるトリガやタイマ値等については予め定められた固定値しか用いることができなかった。つまり、単純な動作シミュレーションを行うことしかできず、複合型の画像形成装置のような複雑な内部構造を有する電気機器において、汎用的な動作シミュレーションを行うことはできない。
【０００５】
特許文献２に記載の技術では、制御信号に応じて接続状態を変更して、被シミュレーション装置全体の入出力を第１状態と第２状態で電気的に切り替えることはできるが、被シミュレーション装置全体の入出力を変更するため、ある特定の負荷だけ選択して動作シミュレーションを実行することはできない。また、動作シミュレーションのためのシミュレータと配線が必要なため費用を要する。
【０００６】
特許文献３に記載のような、シーケンス制御に関する動作シミュレーション方法の場合では、タイムチャートで記述するためユーザにとって分かりやすく設計することができ、さらに複数のセンサや負荷を含ませて設計した各種条件により特定のスキップ先に動作を遷移させることができるので、ある程度複雑な動作シミュレーションを実行することはできる。しかし、このようなタイムチャートでは、設計する負荷の動作タイミングが固定されてしまう。即ち、例えば１つのセンサと３つの負荷がある場合、あるセンサがオンになってから一定時間が経過してから各負荷を所定の順番でオンさせたりオフさせたりすることはできるが、センサがオンになってから所定時間経過した後にある負荷がオンしているなら別の負荷をオフさせる、というような動作シミュレーションを設計することはできない。
【０００７】
本発明は上記課題に鑑みてされたものであり、その目的とするところは、複雑な内部構造を有する電気機器において、特別なハードウェアを用いずに容易に動作シミュレーションを実行可能にするとともに、動作シミュレーションを行うべき負荷を特定して動作シミュレーションを実行することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、請求項１に記載の発明は、
ＣＰＵと、ＲＡＭとを備える被シミュレーション装置の動作をシミュレーションする方法であって、
前記ＣＰＵが、前記被シミュレーション装置に実行させるべき動作シミュレーションを特定する情報を含む状態遷移表データに基づいて動作シミュレーションを実行させる第１の工程と、
前記ＣＰＵが、実行させている動作シミュレーションを識別する情報を前記ＲＡＭに記憶させる第２の工程と、
前記ＣＰＵが、前記動作シミュレーションの遷移条件を含むトリガデータに基づいて前記被シミュレーション装置が遷移条件を満たすか否かを判断し、遷移条件を満たすと判断した場合、前記ＲＡＭに記憶された情報に基づいて前記被シミュレーション装置に実行させる動作シミュレーションを変更させる第３の工程と、
を有することを特徴とする。
【０００９】
請求項２に記載の発明は、請求項１に記載の発明において、
前記状態遷移表データは、前記制御部が遷移条件を満たすと判断した場合に変更させる動作シミュレーションを特定する次状態情報を含み、
前記第３の工程は、前記ＣＰＵが、遷移条件を満たすと判断した場合、前記被シミュレーション装置に前記ＲＡＭに記憶された情報と前記次状態情報とに基づいて前記被シュミレーション装置の動作シミュレーションを特定して変更させることを特徴とする。
【００１０】
請求項３に記載の発明は、請求項１又は２に記載の発明において、
前記被シミュレーション装置は、複数の負荷を備え、
前記状態遷移表データは、前記負荷毎に実行させるべき動作シミュレーションを特定する情報を含むことを特徴とする。
【００１１】
請求項４に記載の発明は、請求項１〜３のいずれか一項に記載の発明において、
前記状態遷移表データによって特定される前記被シミュレーション装置の動作は、前記被シュミレーション装置が有する機能に基づいた動作であることを特徴とする。
【００１２】
請求項５に記載の発明は、請求項１〜４のいずれか一項に記載の発明において、
前記トリガデータは、タイマ情報及びイベント情報から構成されるトリガ配列を含むことを特徴とする。
【００１３】
請求項６に記載の発明は、請求項５に記載の発明において、
前記トリガ配列のタイマ情報は前記イベント毎のタイマ値がソートされていることを特徴とする。
【００１４】
請求項７に記載の発明は、請求項１〜６のいずれか一項に記載の発明において、
前記被シミュレーション装置は、前記状態遷移表データと前記トリガデータとを記憶する記憶部を備えることを特徴とする。
【００１５】
請求項８に記載の発明は、請求項１〜７のいずれか一項に記載の発明において、
前記ＣＰＵが、前記被シミュレーション装置が有する機能の動作と前記動作シミュレーションとを選択して前記シミュレーション装置の動作を制御する切り替えスイッチ工程を更に有することを特徴とする。
【００１６】
請求項９に記載の発明は、
ＲＡＭを備える被シミュレーション装置を、
前記被シミュレーション装置に実行させるべき動作シミュレーションを特定する情報を含む状態遷移表データに基づいて動作シミュレーションを実行させる第１の手段、
実行させている動作シミュレーションを識別する情報を前記ＲＡＭに記憶させる第２の手段と、
前記動作シミュレーションの遷移条件を含むトリガデータに基づいて前記被シミュレーション装置が遷移条件を満たすか否かを判断し、遷移条件を満たすと判断した場合、前記ＲＡＭに記憶された情報に基づいて前記被シミュレーション装置に実行させる動作シミュレーションを変更させる第３の手段、
として機能させる。
【発明の効果】
【００１７】
本発明によれば、複雑な内部構造を有する電気機器において、特別なハードウェアを用いずに容易に動作シミュレーションを実行可能にするとともに、動作シミュレーションを行うべき負荷を特定して動作シミュレーションを実行させることができる。
【発明を実施するための最良の形態】
【００１８】
（被シミュレーション装置の構成）
以下、図を参照して本発明の動作シミュレーション方法を画像形成装置（被シミュレーション装置）に適用した実施の形態を詳細に説明する。
まず、画像形成装置の構成を説明する。
図１に、本実施の形態における画像形成装置１００のブロック図を示す。
【００１９】
ＣＰＵ（Central Processing Unit）１０は、画像形成装置１００の各部の処理動作を統括的に制御する。ＣＰＵ１０は、画像読取部（図示せず）において読み取られた原稿の画像データを用紙に画像形成する画像形成部（図示せず）の各動作を制御する。また、ＣＰＵ１０は、画像形成装置１００に接続された後処理装置（フィニッシャー）等も制御可能である。
【００２０】
また、ＣＰＵ１０は、記憶部２０に記憶されているプログラム又は通信部６０から受信したプログラムに基づいて画像形成装置１００の負荷の動作シミュレーションを行う。
【００２１】
記憶部２０は、ハードディスク等から構成され、ファームウェア、シミュレータプログラム、切り替えスイッチ５、状態遷移ハンドラ８、シミュレータタスク９に関するプログラム、画像形成のために必要な各種プログラム、これらのプログラムの実行に必要なパラメータやファイル等を記憶している。ファームウェアとは、画像形成装置１００を構成する負荷を制御するためのプログラムである。
【００２２】
また、記憶部２０は、状態遷移表データ９ａ（図７（ｂ）参照）、トリガデータ９ｂ（図７（ｃ）参照）等を記憶する。
【００２３】
ＲＡＭ（Random Access Memory）３０は、ＣＰＵ１０により実行される各種プログラム及びこれらプログラムに係る各種データ等を一時的に記憶するワークエリアとして機能する。
【００２４】
操作部４０は、カーソルキー、数字入力キー、及び各種機能キー等を備えたキーボードや感圧式のタッチパネル等を備えて構成され、キーボードやタッチパネルにより入力された操作信号をＣＰＵ１０に出力する。
【００２５】
表示部５０は、ＬＣＤ（Liquid Crystal Display）等により構成され、ＣＰＵ１０から入力される表示データに基づいて各種画面を表示する。
【００２６】
通信部６０は、ＬＡＮアダプタ、ルータ、ＴＡ（Terminal Adapter）等を備え、通信ネットワークを介して接続されたＰＣ（Personal Computer）等の外部機器との間で、シミュレーションプログラムに関わるデータやその他の各種データの送受信を行う。
【００２７】
次に、画像形成装置１００の動作について説明する。
【００２８】
（ファームウェア処理）
まず、記憶部２０に記憶されているファームウェアについて説明する。
図２に、画像形成装置１００のデバイスドライバ（以下、単にドライバ７という。）を起動するためのファームウェア処理のフローチャートを示す。ファームウェア処理は、画像形成装置１００の電源オンの信号等、ファームウェア処理を実行するために予め定められた信号がＣＰＵ１０に入力された際に、ＣＰＵ１０と記憶部２０に記憶されたファームウェアとの協働により実行される。
【００２９】
図２に示すように、まず、Ｉ／Ｏ（Input/Output）ハンドラ１が起動されてトリガが発生される（ステップＳ１１）。Ｉ／Ｏハンドラ１は、入出力ハンドラとも呼ばれ、ＣＰＵ１０が実行中の各プログラム間の入出力データを制御するためのプログラムのことである。
【００３０】
Ｉ／Ｏハンドラ１が起動されると、タイマハンドラ２が起動されてタイマがカウントアップされる（ステップＳ１２）。タスクスケジューラ３が起動されて（ステップＳ１３）、タスクスケジューラ３とタイマに基づいてタスク４が起動される（ステップＳ１４）。
【００３１】
次いで、ＢＩＯＳ６（Basic Input Output System）が起動される（ステップＳ１５）。  ドライバ７が起動され（ステップＳ１６）、ファームウェア処理は終了する。
ファームウェア処理によってドライバ７が起動すると、ＣＰＵ１０は画像形成装置１００の各負荷の制御を行い、画像形成を行なうことができる。
【００３２】
（シミュレータシステム処理）
次に、記憶部２０に記憶されたシミュレータプログラムに基づいて実行されるシミュレータシステム処理について説明する。
図３に、シミュレータシステム処理のフローチャートを示す。シミュレータシステム処理は、操作部４０等により動作シミュレーション実行の指示がＣＰＵ１０に対して入力された際に、ＣＰＵ１０と記憶部２０に記憶されたシミュレータプログラムとの協働により実行される。シミュレータシステム処理が実行される際には、ファームウェア処理が実行されており、Ｉ／Ｏハンドラ１とタスクスケジューラ３が起動されている。
【００３３】
図３に示すように、まず、Ｉ／Ｏハンドラ１からの指示によって状態遷移ハンドラ８が起動される（ステップＳ２１）。状態遷移ハンドラ８とは、タスクスケジューラ３を介して、動作シミュレーションを行わせるためのシミュレータタスク９を起動させるプログラムである。
【００３４】
次いで、タスクスケジューラ３を介してシミュレータタスク９が起動され、このシミュレータタスク９の起動指示（コール）により、ＢＩＯＳ６又はドライバ７が起動され（ステップＳ２２）、シミュレータシステム処理は終了する。このステップＳ２２における処理の詳細については後述する。
シミュレータシステム処理によってＢＩＯＳ６又はドライバ７が起動すると、ＣＰＵ１０は負荷を制御して動作シミュレーションを行うことができる。
【００３５】
（ファームウェアとシミュレータプログラムの比較）
次に、上述したファームウェアとシミュレータプログラムを対比して説明する。
図４に、ファームウェアとシミュレータプログラムのソフトウェア構造を模式的に示す。
【００３６】
図４に示すように、シミュレータシステム処理において起動された状態遷移ハンドラ８と記憶部２０に記憶された遷移タイミングカウンタ８ａとの組合せで、ファームウェア処理において起動されたタイマハンドラ２とタスクスケジューラ３の組合せと同等の機能を有する。遷移タイミングカウンタ８ａとは、詳細は後述するが、トリガデータ９ｂと比較するタイマの現在値を示すCurrent_Timerのことである。
【００３７】
また、シミュレータシステム処理において起動されたシミュレータタスク９と記憶部２０に記憶された状態遷移表データ９ａとトリガデータ９ｂとの組合せで、ファームウェア処理におけるタスク４、又はタスク４とＢＩＯＳ６の組合せと同等の機能を実現する。
【００３８】
図４に示す、切り替えスイッチ５とは、ファームウェア処理が実行された際、記憶部２０に記憶された状態遷移表データ９ａとトリガデータ９ｂに、画像形成装置１００のある負荷についての動作が格納（登録）されていた場合に、この負荷に関するタスク４からＢＩＯＳ６へのコールを遮断するためのプログラムである。この切り替えスイッチ５により、画像形成装置１００を動作させるためのプログラムと、画像形成装置１００の動作シミュレーションを行うためのプログラムとを共存させることができる。例えば、画像形成装置１００に接続されたフィニッシャーを構成する負荷（例えば、ある特定のモータ等）について、何も動作させない旨を示すデータを状態遷移表データ９ａとトリガデータ９ｂに登録すれば、この負荷を停止したままにする動作シミュレーションを行うことができる。
【００３９】
（シミュレーション手順）
次に、本実施の形態における動作シミュレーション方法を画像形成装置１００に適用してシミュレーションを行う際の手順の一例について説明する。
【００４０】
図５に、画像形成装置１００（被シミュレーション装置）とＰＣ２００（シミュレーション装置）について模式的に示す。図５に示すように、まず、ＰＣ２００と画像形成装置１００とが相互にデータ送受信可能にネットワークＮで接続する。
【００４１】
次に、ＰＣ２００において、画像形成装置１００に行わせる動作シミュレーションの各動作を識別するための状態遷移表データ９ａとトリガデータ９ｂが作成される。作成された状態遷移表データ９ａとトリガデータ９ｂは、ネットワークＮを介して画像形成装置１００に対して送信される。
【００４２】
画像形成装置１００においては、通信部６０を介して受信した状態遷移表データ９ａとトリガデータ９ｂは記憶部２０に記憶される。なお、ＰＣ２００において作成された状態遷移表データ９ａとトリガデータ９ｂは、必ずしもネットワークＮを介して画像形成装置１００に対して送信されるようにしなくてもよい。例えば、ＵＳＢ（Universal Serial Bus）メモリに状態遷移表データ９ａとトリガデータ９ｂを記憶させ、このＵＳＢメモリを画像形成装置１００に接続させて記憶部２０に記憶させるようにしてもよい。
【００４３】
図６に、状態遷移表データ９ａとトリガデータ９ｂを作成するためにＰＣ２００のモニタ（図示せず）に表示される設計画面２０１の一例を示す。図６に示すように、設計画面２０１は、動作欄２０２、設定欄２０３、設定表示欄２０４、トリガデータ設定欄２０５等から構成され、状態遷移表データ９ａとトリガデータ９ｂの各項目の値を指定することができる。
【００４４】
動作欄２０２は、状態遷移表データ９ａの動作の項目を指定するためのものである。例えば、画像形成装置１００の、ある負荷の停止、定速、加速、減速、自起動、ＨＰ（Home Position）サーチ等である。設定欄２０３は、状態遷移表データ９ａの動作パラメータの項目の値を指定するためのものである。
【００４５】
動作欄２０２と設定欄２０３において設定された状態遷移表データ９ａは、設定表示欄２０４に値が表示される。図６に示す例では、状態遷移表データ９ａは、停止→励磁要求→ＨＰサーチ→加速→定速・・・の動作と、それぞれの動作の動作パラメータは、０→０→０→２５０→２０６６・・・として設計されている。
【００４６】
トリガデータ設定欄２０５は、状態遷移表データ９ａが示す各状態の次の状態に遷移するためのトリガデータ９ｂを設定するためのものである。図６に示す例では、画像形成装置１００内の「ＰＳ１」というセンサがオンになったら、励磁要求を開始し、このセンサがオンになってから２００ｍｓ経過したら負荷の状態をＨＰサーチに遷移させる等が設定されている。なお、図６に示す例では、トリガデータ９ｂ設定欄５４においては、負荷が次の状態に遷移するためのトリガは各々１種類であるが、複数のトリガの組合せであってもよい。
【００４７】
なお、ＰＣ２００において設計される状態遷移表データ９ａとトリガデータ９ｂは、予め定められた特定のデータ形式（フォーマット）に基づいて設計されればよく、設計画面２０１のようにタイムチャート等を用いて設計してもよいし、バイナリファイルやテキストファイルにキーボード等によって直接データ入力を行うことにより作成されるようにしてもよい。
【００４８】
次に、状態遷移表データ９ａとトリガデータ９ｂの詳細について説明する。
【００４９】
（動作シミュレーションの状態遷移の例）
図７（ａ）に、画像形成装置１００が行う動作シミュレーションにおける負荷の動作状態の遷移を模式的に示す。図７（ａ）に示す例では、画像形成装置１００の負荷が取りうる状態を、それぞれ０、１、２・・・のように連番に番号を付す。図７（ａ）に示すように、まず、負荷の動作の状態は０（停止）であり、トリガが発生すると状態は１（加速）に移行する。次のトリガが発生すると、状態は２（定速）となる。
【００５０】
状態が２の場合においては、トリガが２つ定められている。この２つのトリガを、それぞれ遷移条件１、遷移条件２という。遷移条件２よりも先に遷移条件１を満たした場合には、状態は２（定速）から３（加速）に移行する。遷移条件１よりも先に遷移条件２を満たした場合には、状態は５（減速）に移行する。このようにトリガを複数設定することもできる。複数のトリガを設定した場合には、この複数のトリガのうち、最も先に条件を満たしたトリガに対応する遷移先に状態は遷移する。
【００５１】
負荷の状態が３（加速）でトリガが発生すると、状態は４（定速）に移行し、次のトリガが発生すると状態は５（減速）に移行する。負荷の状態が５（減速）でトリガが発生すると、状態は０（停止）に戻る。
【００５２】
（状態遷移表データ９ａ）
図７（ｂ）に、画像形成装置１００の負荷に図７（ａ）の状態遷移をさせるための状態遷移表データ９ａのデータ格納例を示す。図７（ｂ）に示すように、状態遷移表データ９ａは、状態、動作、動作パラメータ、次状態数、次状態１、及び次状態２等から構成される。状態と動作は、図７（ａ）に示された状態と動作に対応する値である。動作パラメータは、設計画面２０１の設定欄２０３において設定されたパラメータが格納される。設定欄２０３においてパラメータが設定されていなければ、値は格納されない。
【００５３】
次状態数とは、ある状態から遷移すべき次の状態の数のことである。図７（ａ）に示す状態遷移図の場合、状態２から遷移すべき次の状態は、状態３と状態５の２つであるので、状態２に対応する次状態数には２が格納される。その他の状態から遷移すべき次の状態は１つであるので、次状態数は１が格納される。
【００５４】
次状態１と次状態２は、それぞれの状態から遷移する状態を特定する値である。次状態数が１である場合には、次状態２には値が格納されない。次状態数が２である場合には、次状態２には値が格納される。なお、状態遷移表データ９ａに格納される次状態数は２つまでに限られず、予め定められた数であればよい。状態遷移表データ９ａに格納される次状態の値の個数は、次状態数に応じた数の次状態が格納される。
【００５５】
（トリガデータ９ｂ）
図７（ｃ）に、画像形成装置１００の負荷に図７（ａ）の状態遷移をさせるためのトリガデータ９ｂのデータ格納例を示す。図７（ｃ）に示すように、トリガデータ９ｂは、状態、遷移条件１、条件１パラメータ、遷移条件２、条件２パラメータ等から構成される。状態は、図７（ａ）に示された状態及び図７（ｂ）の状態遷移表データ９ａの状態に対応する値である。また、トリガデータ９ｂにはトリガ配列（詳細後述）を含ませることもできる。
【００５６】
遷移条件１と遷移条件２は、各状態から次の状態へと遷移するためのトリガを発生させる条件である。条件１パラメータと条件２パラメータは、遷移条件１又は遷移条件２に伴うパラメータである。遷移条件１と遷移条件２が、それぞれ条件１パラメータと条件２パラメータを満たすことによって、対応する状態が次状態へと遷移する。条件１パラメータと条件２パラメータに値が格納されていない場合には、遷移条件１又は遷移条件２の条件を満たすことによって状態が次の状態に遷移する。
【００５７】
図７（ｃ）のデータ格納例では、画像形成装置１００の負荷が状態０（停止）であった場合に、所定のコマンドがＣＰＵ１０に入力された際にトリガが発生し、負荷の状態は０（停止）から１（加速）に遷移する。状態が２（定速）であった場合、画像形成装置１００のあるセンサ（例えば、温度センサ等。センサ１とする。）がオンになってから２０ｍｓ経過後、又は他のセンサ（例えば、モータ回転数センサ等。センサ２とする。）がオフになってから１００ｍｓ経過後のいずれか早い方が経過した際にトリガが発生する。前者がトリガとなった場合、図７（ｂ）の状態遷移表データ９ａに示すように、状態は２（定速）から３（加速）へ遷移する。後者がトリガとなった場合、状態は２（定速）から５（減速）へ遷移する。
【００５８】
このように、画像形成装置１００の各負荷の動作シミュレーションを負荷毎の状態遷移表データ９ａとトリガデータ９ｂによって設計することによって、タイムチャートで記述可能な動作をこの２つのデータによって記述することができる。また、状態遷移表データ９ａには、複数の次状態を含ませることができ、トリガデータ９ｂには、複数の遷移条件を含ませることができるため、従来複数のタイムチャートを組み合わせなければ記述できないような複数の分岐を有する動作シミュレーションを行うこともできる。
【００５９】
（シミュレータタスク起動処理）
次に、シミュレータシステム処理のステップＳ２２において、状態遷移ハンドラ８がシミュレータタスク９を起動する処理（シミュレータタスク起動処理という）について詳細に説明する。
【００６０】
図８、図９に、シミュレータタスク起動処理の詳細なフローチャートを示す。シミュレータタスク起動処理は、ＣＰＵ１０と記憶部２０に記憶された状態遷移ハンドラ８との協働により実行される。シミュレータタスク起動処理では、タイムバケット経過毎に、状態遷移を引き起こすトリガとタイマ値の組合せ条件が揃ったか否かを判定し、この条件がそろっていればシミュレータタスク９を起動する。以下に説明する例では、タイムバケットの単位は２ｍｓとして説明する。
【００６１】
まず、flag_Trigger_Sig等が作成されてＲＡＭ３０に記憶される等の初期設定処理が実行される（ステップＳ３１）。次に、２ｍｓ（タイムバケット）経過したか否かが判断される（ステップＳ３２）。２ｍｓ経過したと判断されない場合（ステップＳ３２；ＮＯ）、処理はステップＳ４３に移行する。
２ｍｓ経過したと判断された場合（ステップＳ３２；ＹＥＳ）、入力スキャン処理及び入力エッジポスト処理が行われる（ステップＳ３３）。
【００６２】
次いで、ＲＡＭ３０に記憶されたflag_Trigger_Sig（図１１参照）がオフ（例えば、値が０）にされる（ステップＳ３４）。flag_Trigger_Sigとは、シミュレータタスク起動処理が実行された際にＣＰＵ１０によって作成されてＲＡＭ３０に記憶されるものであり、トリガデータ９ｂのトリガ配列に格納された各イベントのタイマ値がタイムアップしたか否かを示すフラグの集まりである。このflag_Trigger_Sigは、タイムバケットが経過するたびに、ステップＳ３４において、いったん全てのフラグがオフにされる。
【００６３】
タイマ現在値を示すCurrent_Timer（遷移タイミングカウンタ８ａ）を２ｍｓ進めることによりシミュレータのタイマ処理が行われる（ステップＳ３５）。記憶部２０に記憶されたトリガデータ９ｂのトリガ配列が読み出され、Current_Timerとタイマ値が一致しているイベントがあるか否かが判断される（ステップＳ３６）。イベントとは、トリガの要因となるものであり、例えば、画像形成装置１００を構成する各センサや、制御部に入力される所定のコマンド等のことである。
【００６４】
図１０に、トリガ配列のデータ格納例を示す。図１０に示すように、トリガ配列には、画像形成装置１００における各イベントについて、対応するタイマ値の組が格納される。
ステップＳ３６においては、トリガ配列に格納された各要素とCurrent_Timerが比較され、値が一致するイベントがあるか否かが判断される。例えば、トリガ配列が図１０に示すデータ格納例でありCurrent_Timerが５０ｍｓであった場合、ステップＳ３６においては、一致すると判断されるイベントは「コマンド２」と「ＰＳ０１ ＯＦＦ」である。
【００６５】
Current_Timerとタイマ値が一致しているイベントがあると判断された場合（ステップＳ３６；ＹＥＳ）、このイベントに対応するflag_Trigger_Sigがオン（例えば、値が３）にされる（ステップＳ３７）。
【００６６】
図１１に、flag_Trigger_Sigのデータ格納例を示す。図１１に示すように、トリガ配列に格納されている各イベント毎にフラグが対応付けられている。トリガ配列が図１０に示すデータ格納例でありCurrent_Timerが５０ｍｓであった場合、図１１に示すように、コマンド２、ＰＳ０１ＯＦＦの各イベントに関するflag_Trigger_Sigがオン（値が３）に変更される。つまり、flag_Trigger_Sigがオンになっているので、このイベントのタイマ値とCurrent_Timerが一致したことを示している。他のイベントのタイマ値とCurrent_Timerは一致していない。
【００６７】
図８に戻り、変数Current_Timerとタイマ値が一致しているイベントがあると判断されない場合（ステップＳ３６；ＮＯ）、シミュレータシステム処理において使用される全てのイベントについて、変数flag_Trigger_Sigが設定されたか否かが判断される（ステップＳ３８）。具体的には、記憶部２０に記憶されたトリガデータ９ｂに含まれるイベントに対応するトリガ配列のイベントの各要素とCurrent_Timerが比較されたか否かが判断される。
【００６８】
flag_Trigger_Sigが設定されたと判断されない場合（ステップＳ３８；ＮＯ）、処理はステップＳ３６に戻り、再度Current_Timerが一致しているイベントがあるか否かが判断される。
【００６９】
すべてのイベントについてflag_Trigger_Sigが設定されたと判断された場合（ステップＳ３８；ＹＥＳ）、図９に移り、flag_Trigger_Sigがオンになっているイベントがあるか否かが判断される（ステップＳ３９）。
【００７０】
flag_Trigger_Sigがオンになっているイベントがあると判断された場合（ステップＳ３９；ＹＥＳ）、ＲＡＭ３０に記憶されたCurrent_Statusを更新してシミュレータタスク９の起動が指示される（ステップＳ４０）。ＲＡＭ３０に記憶されたLatest_TimerIDが更新されることにより、最近使用した遷移条件が更新される（ステップＳ４１）。
【００７１】
図１２に、Current_Statusのデータ格納例を示す。Current_Statusは、記憶部２０に記憶された状態遷移表データ９ａに基づいて実行されている画像形成装置１００の各負荷の動作シミュレーションの状態を示すためのものである。図１２に示すように、負荷（図中では「デバイス種類」と記載）毎に、現在の動作状態が格納される。「現在の状態値」に格納される値は、状態遷移表データ９ａの状態の数値に対応する。つまり、図１２のデータ格納例では、Ｍ０１という名称の負荷は、このＭ０１に対応する状態遷移表データ９ａの状態３（例えば、加速状態）にあることが示されている。
【００７２】
図１３に、Latest_TimerIDのデータ格納例を示す。Latest_TimerIDとは、シミュレータタスク起動処理が実行された際にＣＰＵ１０によって作成されてＲＡＭ３０に記憶されるものであり、各イベント毎に直近で一致したタイマ値を識別するためのものである。
【００７３】
図１３に示すように、Latest_TimerIDは、トリガ配列の各イベントに対応付けられて、現在値と最新のトリガＩＤが格納される。現在値と最新のトリガＩＤは、トリガ配列に格納された各値のうち、ステップＳ３６においてCurrent_Timerと一致したと判断されたイベントに対応するトリガのタイマ数と、このタイマ数に対応するタイマ値とに基づいて、Latest_TimerIDに各値（つまり、Current_Timerと同値）が格納されることにより、Latest_TimerIDが更新される。
【００７４】
図１０に示すトリガ配列の要素は多数あるため、各イベントに対応するタイマ数とCurrent_Timerが一致するか否かを判断するステップＳ３６の処理負荷を軽減するためにLatest_TimerIDは使用される。つまり、ステップＳ３６においては、Latest_TimerIDの最新トリガＩＤが参照され、このトリガＩＤ以降のタイマ値が比較される。
【００７５】
図９に戻り、flag_Trigger_Sigがオンになっているイベントがあると判断されない場合（ステップＳ３９；ＮＯ）、シミュレータで使用される全てのイベントについてflag_Trigger_Sigが参照されたか否かが判断される（ステップＳ４２）。具体的には、記憶部２０に記憶されたトリガデータ９ｂに含まれるイベントに対応するflag_Trigger_Sigをすべて参照したか否かが判断される。
【００７６】
すべてのイベントについてflag_Trigger_Sigが参照されたと判断されない場合（ステップＳ４２；ＮＯ）、処理はステップＳ３９に戻り、あるイベントについてflag_Trigger_Sigがオンになっているか否かが判断される。
【００７７】
すべてのイベントについてflag_Trigger_Sigが参照されたと判断された場合（ステップＳ４２；ＹＥＳ）、タスクスケジューラ３が何のタスクの実行を指示しているかが判断される（ステップＳ４３）。
【００７８】
タスクスケジューラ３が、シミュレータタスク９の実行を指示していると判断された場合（ステップＳ４３；シミュレータタスク９）、シミュレータタスク９に基づいた処理が実行される（ステップＳ４４）。
【００７９】
タスクスケジューラ３が、シミュレータタスク９以外のその他のタスク４の実行を指示していると判断された場合（ステップＳ４３；その他のタスク）、このタスク４に基づいた処理が実行される（ステップＳ４５）。ただし、このタスク４の実行により、シミュレータで使用する負荷の動作が指定された場合には切り替えスイッチ５によってＢＩＯＳ６が起動しないよう制御される。シミュレータで使用する負荷は、状態遷移表データ９ａに基づいて判断される。
【００８０】
次いで、システム終了指示がＣＰＵ１０に対して入力されたか否かが判断される（ステップＳ４６）。システム終了指示がＣＰＵ１０に対して入力されたと判断された場合（ステップＳ４６；ＮＯ）、処理はステップＳ３２に戻る。
システム終了指示がＣＰＵ１０に対して入力されたと判断されない場合（ステップＳ４６；ＹＥＳ）、処理は終了する。
【００８１】
（シミュレータタスク９の動作）
次に、ステップＳ４４のシミュレータタスク９の処理（シミュレータタスク動作処理という。）を詳細に説明する。
図１４に、シミュレータタスク動作処理のフローチャートを示す。シミュレータタスク動作処理は、タスクスケジューラ３を介して状態遷移ハンドラ８からシミュレータタスク９がコールされてシミュレータタスク９が起動した際に、ＣＰＵ１０と記憶部２０に記憶されたシミュレータタスク９のプログラムとの協働により実行される。
【００８２】
図１４に示すように、シミュレータタスク９が受信した受信メッセージが解析される（ステップＳ５１）。次いで、記憶部２０に記憶された状態遷移表データ９ａが参照されて、状態遷移表データ９ａの状態と動作パラメータに基づいて、画像形成装置１００におけるどの負荷にどのような動作を行うのかが判定されて負荷に与えるコマンドとパラメータが記憶部２０から取得される（ステップＳ５２）。
【００８３】
ステップＳ５３において判定された負荷へのコマンドのタイプに応じて、ＢＩＯＳ６を指定して呼び出すか、ドライバ７を指定して呼び出すかが判断される（ステップＳ５３）。ステップＳ５４においては、コマンド毎にＢＩＯＳ６とドライバ７のどちらを呼び出すかを示す値が予め指定されており、これに基づいて判断される。
【００８４】
ＢＩＯＳ６を指定して呼び出すと判断された場合（ステップＳ５３；ＢＩＯＳ６）、シミュレータタスク９の受信メッセージが該当するＢＩＯＳ６へのコマンドへ翻訳され（ステップＳ５４）、ＢＩＯＳ６が起動されて状態遷移表データ９ａのパラメータに基づいて負荷が制御される（ステップＳ５５）。
【００８５】
ドライバ７を指定して呼び出すと判断された場合（ステップＳ５３；ドライバ７）、シミュレータタスク９の受信メッセージが該当するドライバ７へのコマンドへ翻訳され（ステップＳ５６）、ドライバ７が起動されて状態遷移表データ９ａのパラメータに基づいて負荷が制御される（ステップＳ５７）。
【００８６】
一方、ＢＩＯＳ６もドライバ７も呼び出さない、その他の処理であると判断された場合（ステップＳ５３；その他の処理）、負荷に対してその他の処理（何もしない等）が実行され（ステップＳ５８）、シミュレータタスク９が終了され（ステップＳ５９）、処理は終了する。
【００８７】
以上のように、本実施の形態における動作シミュレーション方法によれば、状態遷移表データ９ａとトリガデータ９ｂとに基づいて画像形成装置１００の動作シミュレーションを実行させることができる。状態遷移表データ９ａには、画像形成装置１００の負荷が実行する動作と、遷移条件を満たした時に次に実行すべき動作を特定する情報が格納されているので、遷移条件に応じて画像形成装置１００が行うべき動作を指定して動作シミュレーションを行うことができ、複雑な動作シミュレーションを実行することができる。
【００８８】
また、状態遷移表データ９ａとトリガデータ９ｂを画像形成装置１００の負荷毎に設定することによって、画像形成装置１００の負荷それぞれに対する動作シミュレーションを実行させることができる。
【００８９】
状態遷移表データ９ａにおいて特定される画像形成装置１００の動作シミュレーションは、画像形成装置１００が本来行うべき機能に基づいた動作やパラメータに基づいているので、ＨＰサーチ等のパッケージ化された画像形成装置１００の動作のシミュレーションを実行することもできる。
【００９０】
また、トリガ配列をトリガデータ９ｂに含ませることにより、遷移タイミングカウンタ８ａとトリガデータ９ｂが一致しているか否かを判別するための計算量を削減することができる。このトリガ配列にタイマ値がソートされて格納されているので、Latest_TimerIDと比較することにより、さらに計算量を削減することができる。
【００９１】
また、画像形成装置１００の記憶部２０に状態遷移表データ９ａとトリガデータ９ｂとを記憶させて動作シミュレーションを行うことができ、これらの状態遷移表データ９ａとトリガデータ９ｂはＰＣにおいて作成することができるので、画像形成装置１００の動作シミュレーションを行うにあたって特別なハードウェアを用意する必要がなくなる。
【００９２】
また、切り替えスイッチ５により、動作シミュレーションを行うべき負荷に対するタスクからのコールを選択的に行うことができるので、ファームウェア等の画像形成装置１００が有する固有のプログラムとシミュレータプログラムを共存させることができる。
【００９３】
なお、上述した本実施の形態における記述は、本発明に係る好適な被シミュレーション装置の一例であり、これに限定されるものではない。
本実施の形態におけるシミュレータタスク起動処理は、タイマ値に基づいて説明をしたが、モータステップカウンタや温度条件を遷移条件に使用する場合についても、タイムバケット毎に条件がそろっているか否かを判定する同様の処理が行われる。
【００９４】
また、ファームウェア処理が実行中の場合、トリガ配列に格納されている各イベントのタイマ現在値は、各イベントの発生時点のCurrent_Timerから現在のCurrent_Timerで計測されるようにしてもよい。
【００９５】
また、本実施の形態における記憶部２０以外のその他のコンピュータ読み取り可能な媒体として、ＳＤ（Secure Digital）カードやＵＳＢ（Universal Serial Bus）メモリのようなフラッシュメモリ等の不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬型記録媒体を適用することが可能である。また、本発明に係るプログラムのデータや音声データ等の各種データを、搬送波（キャリアウェーブ）に重畳させて通信回線を介して提供することも可能である。
【００９６】
その他、動作シミュレーション方法の各工程の細部動作に関しても、本発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【図面の簡単な説明】
【００９７】
【図１】本実施の形態における画像形成装置のブロック図である。
【図２】本実施の形態におけるファームウェア処理を示すフローチャートである。
【図３】本実施の形態におけるシミュレータシステム処理を示すフローチャートである。
【図４】ファームウェアとシミュレータプログラムのソフトウェア構造を示す模式図である。
【図５】画像形成装置とＰＣがネットワークを介して接続されたことを示す模式図である。
【図６】図５のＰＣに表示される設定画面の一例を示す図である。
【図７】動作シミュレーションの状態遷移を示す図であり、（ａ）は、画像形成装置が行う動作シミュレーションにおける負荷の動作状態の模式図であり、（ｂ）は、図１に示す記憶部に記憶される状態遷移表データのデータ格納例を示す図であり、（ｃ）は、図１に示す記憶部に記憶されるトリガデータのデータ格納例を示す図である。
【図８】図１の画像形成装置によって実行されるシミュレータタスク起動処理のフローチャートである。
【図９】図１の画像形成装置によって実行されるシミュレータタスク起動処理のフローチャートである。
【図１０】図１の記憶部に記憶されるトリガ配列のデータ格納例を示す図である。
【図１１】図１のＲＡＭに記憶されるflag_Trigger_Sigのデータ格納例を示す図である。
【図１２】図１のＲＡＭに記憶されるCurrent_Sratusのデータ格納例を示す図である。
【図１３】図１のＲＡＭに記憶されるLatest_TimerIDのデータ格納例を示す図である。
【図１４】図１の画像形成装置によって実行されるシミュレータタスク動作処理のフローチャートである。
【符号の説明】
【００９８】
１  Ｉ／Ｏハンドラ
２  タイマハンドラ
３  タスクスケジューラ
４  タスク
５  切り替えスイッチ
６  ＢＩＯＳ
７  ドライバ
８  状態遷移ハンドラ
８ａ  遷移タイミングカウンタ
９  シミュレータタスク
９ａ  状態遷移表データ
９ｂ  トリガデータ
１０  制御部
２０  記憶部
３０  ＲＡＭ
４０  操作部
５０  表示部
６０  通信部
１００  画像形成装置
２００  ＰＣ
２０１  設計画面
２０２  動作欄
２０３  設定欄
２０４  設定表示欄
２０５  トリガデータ設定欄
【図１】
2010152622.tif 000003
【図２】
2010152622.tif 000004
【図３】
2010152622.tif 000005
【図４】
2010152622.tif 000006
【図５】
2010152622.tif 000007
【図６】
2010152622.tif 000008
【図７】
2010152622.tif 000009
【図８】
2010152622.tif 000010
【図９】
2010152622.tif 000011
【図１０】
2010152622.tif 000012
【図１１】
2010152622.tif 000013
【図１２】
2010152622.tif 000014
【図１３】
2010152622.tif 000015
【図１４】
2010152622.tif 000016