以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、この発明の範囲をそれらのみに限定する趣旨のものではない。
[第1の実施形態]
第1の実施形態は、機械装置として画像形成装置のシミュレーションデバッグを行うシミュレーションデバッグシステムの例である。
<装置構成>
本実施形態のシミュレーションデバッグシステムは、パーソナルコンピュータ、ワークステーション等の情報処理装置(以下、コンピュータシステムと呼ぶ)で実行されるプログラムとして実現される。図2はシミュレーションデバッグシステムに用いられるコンピュータシステムの装置構成を模式的に示す図である。
コンピュータシステム201は、中央処理装置(以下、CPUと呼ぶ)、主記憶装置(以下、RAMと呼ぶ)、ハードディスク(外部記憶装置)等を内蔵した本体部202、本体部202からの指示により画面表示を行う表示装置203、このコンピュータシステム201にユーザの指示や文字情報を入力するためのキーボード204、表示装置203上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するマウス(ポインティングデバイス)205を備えている。
本体部202のCPUはハードディスクに格納されているプログラム、オペレーティングシステム(OS)等を実行し、RAMにプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。RAMは各種データを一時記憶するために用いられ、CPUの主メモリ、ワークエリア等として機能する。
ハードディスクには機械装置シミュレーションデバッグシステムの各機能を実現したプログラム、シミュレーションの対象となる機器の情報を含むシミュレーションのための各種データが格納される。本体部202のCPUがハードディスクからこのプログラムを本体部202のRAMにロードするように制御し、プログラムに基づいてコンピュータシステムを制御することによってシミュレーションが実行される。
<機能構成>
次に、本実施形態の機械装置シミュレーションデバッグシステムの機能構成について図1を参照して説明する。図1は、本実施形態の機械装置シミュレーションデバッグシステムの機能構成を示す図である。
図1のように、本実施形態の機器制御シミュレーションシステムはCPUシミュレータ101と、機構モデルシミュレータ102から構成される。以下、これらをそれぞれ独立したプロセスとして動作するコンポーネントとして構成した場合について説明を行うが、これらを専用の装置として構成することも可能であることは言うまでもない。また、以下の処理は本体部202の中央処理装置によって制御されることは言うまでもない。
<CPUシミュレータ>
機器制御シミュレーションシステムの各構成要素の機能について説明する。CPUシミュレータ101は、シミュレーション対象となる機械装置の動作を制御するCPU(以下、ターゲットCPUと呼ぶ)の動作を、コンピュータシステム201上で擬似的に再現するコンポーネントである。ここで、ターゲットCPUは、コンピュータシステム201に搭載されているCPUではなく、シミュレーションの対象となる機械装置(本実施形態では画像形成装置)に搭載され、この機械装置を制御するためのCPUのことである。CPUシミュレータ101は、ターゲットCPUの制御プログラム(以下、ターゲットファームウエアと呼ぶ)に従って、ターゲットCPUの端子に対応して定義された仮想入力端子の情報を読み込み、仮想出力端子の出力を制御する。
また、CPUシミュレータ101は、ターゲットCPUのアドレス空間に対応した仮想アドレス空間を用意している。仮想アドレス空間とは、ターゲットCPUの管理するアドレス空間上の個々のメモリ領域と1対1で対応するメモリ領域をコンピュータシステム201のRAM上に定義したものである。
コンピュータシステム201上のRAMに定義された仮想アドレス空間の実アドレス値は、ターゲットCPUの扱うアドレス値とは一般に異なるため、CPUシミュレータ101は仮想アドレスと実アドレスの対応表を有している。そして、仮想アドレス空間上のアドレス値に対してターゲットファームウエアによりアクセス命令がなされた場合、CPUシミュレータ101はアドレスの対応表を参照し、本体部202のRAM上の対応するアドレス領域にアクセスするように制御する。同様に、ターゲットCPUのレジスタ等も仮想アドレス空間上に対応する領域が設定されるため、CPUシミュレータ101はレジスタのアドレスと実アドレスの対応表を有しており、レジスタ等へのアクセスがなされた場合その対応表を参照し、本体部202のRAM上の対応するアドレス領域にアクセスするように制御する。
CPUシミュレータ101は外部インターフェースとしてのI/Oのメソッド、メモリ及びレジスタへアクセスするためのメソッドを有している。外部モジュールはこれらのメソッドを用いて先に述べた仮想アドレス空間へのアクセスを実行する。コンピュータシステム201においてターゲットファームウエアの処理をシミュレートする方法には、ターゲットファームウエアのソースプログラムをコンピュータシステム201のネイティブ言語に変換して実行する方式と、ターゲットCPUの実行命令を1語ずつ解釈しコンピュータシステム201のCPUに対応した実行命令に翻訳しながら実行する方式がある。本実施形態のシミュレーションデバッグシステムは何れかのCPUシミュレーション方式を採用するものとする。
<機構モデルシミュレータ>
機構モデルシミュレータ102は、アクチュエータ、センサを含む複数の部品からなる機構モデルをコンピュータシステム201上で擬似的に動作させるコンポーネントである。機構モデルシミュレータ102は、機構モデルの各要素(以下、機械部品と呼ぶ)について、ユーザがその形状、種類、動作、機械部品間の干渉と連携条件等を定義・設定することができるように制御する。更に、センサ、アクチュエータ等については外部信号定義を行えるように制御する。尚、これら機械部品の定義はCAD図面から自動設定したり、或いは、専用の機構モデル作成ソフトウェアツールをユーザが操作することによって設定できるように制御する。
尚、このようにして構築された機械部品はオブジェクトコードとして実装され、機械部品の動作はオブジェクトコードのメソッドの実行として実装される。また、機械部品に定義された各情報はオブジェクトのパラメータとして設定され、機械部品間の連携等はオブジェクト間の通信によって実装される。このようなオブジェクトコードの実体は、本体部202のRAM、ハードディスク等の記憶領域の情報として存在する。
定義される機械部品には、機能定義がなされない部品と、機能定義がなされる部品(モータ、ソレノイド、クラッチ、センサ、歯車、カム、ローラ等)とがある。また、機械部品には、対象となる機構モデルの構成物ではないが、装置の動作シミュレーションに必要なもの(例えば、画像形成装置における用紙等)も含まれることに留意する。
このように構築された機構モデルは、コンピュータシステム201の表示装置203上に2次元、又は、3次元のグラフィックとして可視的に表示される。
機構モデルシミュレータ102は、CPUシミュレータ101から送られてきたアクチュエータ駆動信号に対応して、該当するアクチュエータの機構モデルを定義された動きで仮想的に動作させるように制御する。更に機構定義に基づきアクチュエータに連結された機械部品をアクチュエータの動作に関連付けて定義された動きで仮想的に動作させるように制御する。
また、キーボード204、マウス205等を用いたユーザの指示入力によりオペレータによる機械部品への操作を擬似的に再現し、擬似操作に応じて対象となる機械部品を定義された動きで仮想的に動作させるように制御する。更に、機械部品間の干渉、連携等の定義情報に従い、関連する全ての機械部品の動作が再現されるように制御する。
これら機械部品の動作は前記表示装置203に表示されたグラフィックとして再現されるように制御するとともに、機構モデルの動作の結果、センサとして定義された機構モデルにあらかじめ定義された作用が発生すると、作用に応じたセンサ信号を発生させ、そのセンサ信号をCPUシミュレータ101に送信するように制御する。
<画像形成装置の仮想動作例>
次に、機構モデルシミュレータ102(に基づいて動作する本体部202のCPU)の制御によって表示装置203に表示される仮想メカの動作について、図3(図3A〜図3E)を参照して説明する。図3は、表示装置203に2次元のグラフィックとして表示される、画像形成装置の仮想動作の例を示す図である。
ここでは画像形成装置において両面印刷を実行する場合の一連の動作について説明する。記録紙Pに対して両面印刷を実行する場合、コンピュータシステム201の表示装置203において、図3A〜図3Eに示す画像形成装置の仮想的な動作が、時系列順にアニメーションのように変化して表示される。尚、表示装置203の表示制御、各機械部品の動作、連携等は本体部202のCPUによって制御される。
図3A(a)は、画像形成装置1の給紙カセット23に記録用紙Pが格納されている初期状態を示している。
図3A(b)は、ピックアップローラ2および給紙ローラ3を回転させて、記録用紙Pを給紙し、給紙センサ4で記録用紙Pを検出して、給紙搬送ローラ5とレジスト前ローラ6を回転させ、記録用紙Pを搬送している状態を示している。
レジスト前センサ7が記録用紙Pを検出したら、所定時間後に各ローラを停止させ、記録用紙Pをレジストローラ8にループ作成した状態で突き当てて搬送停止する。その後、レジストローラ8、レジスト前ローラ6、給紙搬送ローラ5を回転させ、記録用紙Pを、回転している感光ドラム9に搬送して記録用紙Pに画像形成する。この状態を図3B(a)に示す。
さらに搬送を継続し、定着加圧ローラ10で画像を記録用紙Pに加熱定着し、定着排紙ローラ11で記録用紙Pを搬送し、定着排紙センサ12で記録用紙Pを検出したら、フラッパ13を駆動して反転引き込み側に導く。この状態を、図3B(b)に示す。
次に、反転センサ16で記録用紙Pを検出し、反転ローラ17を反転引き込み方向に回転させる。そして、反転センサ16で記録用紙Pの後端を検出したら、所定時間経過後に反転ローラ17の回転を停止させる。この状態を図3C(a)に示す。
次に、反転ローラ17を両面搬送方向に回転させ、記録用紙PをDカットローラ18に搬送させて、Dカットローラ18の半月部分が記録用紙Pと接しないようにしながら、一旦停止させる。この状態を図3C(b)に示す。
この状態で、横レジスト可動板22で記録用紙Pを左右両側から挟み込むように制御して横レジスト位置調整を行う。その後、Dカットローラ18、両面搬送ローラ19で記録用紙Pの搬送を再開し、両面搬送センサ20で記録用紙を検出し、再給紙ローラ21の下流へ搬送する。この状態を図3D(a)に示す。
そして、2面目の印刷のため、再給紙ローラ21、レジスト前ローラ6を回転させて記録用紙Pを再給紙させる。そして、1面目と同様に、再給紙した記録用紙Pをレジストローラ8でループ作成したのち、感光ドラム9で2面目の画像を形成する。この状態を図3D(b)に示す。
次に、定着加圧ローラ10、定着排紙ローラ11を回転させて記録用紙Pを搬送し、定着排紙センサ12で記録用紙Pを検出する。2面目は、排紙トレイ15へ排出するので、フラッパ13は駆動せず、記録用紙Pを排紙トレイ15へ導く。この状態を図3E(a)に示す。
そして、排紙ローラ14で、記録用紙Pを排紙トレイ15へ排出する。この状態を図3E(b)に示す。
以上のように、機構モデルシミュレータ102は、これら図3A〜図3Eというように、記録用紙Pが搬送されていく様子を、アニメーションのように刻々と変化させて、表示装置203に表示する。ユーザは、記録用紙Pが所望の搬送動作になっているかを確認することによって、ターゲットファームウエアのデバッグを容易に行うことができる。
<接続配線>
第1の実施形態におけるCPUシミュレータ101と機構モデルシミュレータ102の接続について図4を参照して説明する。図4はCPUシミュレータ101と機構モデルシミュレータ102の接続配線を示す図である。尚、図4に示される各要素は、本実施形態においてはプログラムコードとして実装されるものであることは言うまでもない。
図4において、CPUシミュレータ101上のターゲットファームウエアは機構モデルシミュレータ102へ駆動指示を伝える。一方、機構モデルシミュレータ102は、機構モデルシミュレータ102の機械部品の動作変化を、CPUシミュレータ101上のターゲットファームウエアに伝える。
ターゲットファームウエアは、機械部品メインモータ300(給紙搬送ローラ5、レジスト前ローラ6、レジストローラ8、感光ドラム9、定着加圧ローラ10、定着排紙ローラ11、排紙ローラ14の回転を行う)の駆動指示を、メインモータ駆動信号(MMD)を用いて行う。
同様に、機械部品給紙モータ301(ピックアップローラ2、給紙ローラ3の回転を行う)の駆動指示を、給紙モータ駆動信号(FEEDMD)を用いて行う。
同様に、機械部品反転モータ302(反転ローラ17の回転を行う)の駆動指示を、反転モータ駆動信号(SWBKMD)と回転方向指示信号(SBDIRD)を用いて行う。
同様に、横レジモータ303(横レジスト可動板22を広げたり狭めたりする)の駆動指示を、横レジモータ駆動信号(HREGMD)と回転方向指示信号(HRDIRD)を用いて行う。
同様に、両面搬送モータ304(Dカットローラ18、両面搬送ローラ19の回転を行う)の駆動指示を、両面搬送モータ駆動信号(DUPMD)を用いて行う。
同様に、再給紙モータ305(再給紙ローラ19の回転を行う)の駆動指示を、再給紙モータ駆動信号(RFDMD)を用いて行う。
同様に、給紙クラッチ306(メインモータ300が回転駆動している時、給紙搬送ローラ5およびレジスト前ローラ6の回転/停止を選択する)の駆動指示を、給紙クラッチ駆動信号(FEEDCLD)を用いて行う。
同様に、レジクラッチ307(メインモータ300が回転駆動している時、レジストローラ8の回転/停止を選択する)の駆動指示を、レジクラッチ駆動信号(REGCLD)を用いて行う。
同様に、フラッパソレノイド13の駆動指示を、両面ソレノイド駆動信号(DUPSLD)を用いて行う。ここで、ON駆動はフラッパが記録用紙を両面行きへ導き、OFF駆動はフラッパが記録用紙を排紙トレイ15へ導くように動作することを意味するものとする。
一方、機構モデルシミュレータ102の給紙センサ4は、機構モデルシミュレータでの紙有無の検知情報を、給紙センサ信号(FEEDS)を用いてCPUシミュレータ101上のターゲットファームウエアへ伝える。
同様に、レジスト前センサ7は、紙有無の検知情報を、レジスト前センサ信号(REGS)を用いてCPUシミュレータ101上のターゲットファームウエアへ伝える。
同様に、定着排紙センサ12は、紙有無の検知情報を、定着排紙センサ信号(FPOUTS)を用いてCPUシミュレータ101上のターゲットファームウエアへ伝える。
同様に、反転センサ16は、紙有無の検知情報を、反転センサ信号(SWBKS)を用いてCPUシミュレータ101上のターゲットファームウエアへ伝える。
同様に、両面搬送センサ20は、紙有無の検知情報を、両面搬送センサ信号(DUPS)を用いてCPUシミュレータ101上のターゲットファームウエアへ伝える。
<応答特性変換>
第1の実施形態では、機械装置の応答遅延特性を忠実にシミュレートするため、CPUシミュレータ101に、DCモータ応答特性変換308、クラッチ応答特性変換309、ソレノイド応答特性変換310、センサ応答特性変換311を設けたことが、従来と異なる。それぞれの変換について図5(a)から図5(e)を参照して説明する。
<DCモータ応答特性変換>
まず、DCモータ応答特性308について図5(a)を参照して説明する。図5(a)は、DCモータ応答特性変換308のタイムチャートである。
実際のDCモータは、駆動開始を指示する駆動信号を入力してから実際に定常回転に到達するまでに立ち上がり時間が存在し、一方、定常回転している状態において駆動停止を指示する駆動信号を入力してから実際に停止するまでに立下り時間が存在する。そこで、あらかじめこのような応答特性をコンピュータシステム201に記憶させておく。
尚、応答特性は機械部品のスペックや、測定値によって求められる。他の機械部品についても同様である。
そして、メインモータ300(DCモータ)をMMDにて駆動する状況においては、図5(a)に示すように、DCモータ応答特性変換308は、ターゲットファームウエアから駆動ONの駆動信号が入力された場合、立ち上がり時間だけ遅延させてから、仮想メインモータ(機械部品メインモータ300)へ回転の指示を出力する。同様に、ターゲットファームウエアから駆動OFFの駆動信号が入力された場合、立下り時間だけ遅延させてから、仮想メインモータへ回転停止の指示を出力する。
本実施形態においては、他のモータ301〜305についてもこのDCモータ応答特性変換308と同様の変換を適用する。
従来のシミュレーションシステムにおいては、このような応答特性をシミュレートしていなかったため、DCモータ駆動信号の入力と同時に仮想DCモータにおいて記録用紙搬送が開始し、また、駆動停止信号の入力と同時に記録用紙の搬送が停止していた。このため、機構モデルシミュレータの動作が実際の機器の動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、DCモータの応答特性をもシミュレート可能とするため、正確なシミュレーションデバッグが可能である。
尚、このような応答特性変換を実施する上では、各DCモータの応答特性をあらかじめコンピュータシステム201に記憶させておき、この応答特性をそれぞれのDCモータに対して適用にするようにすれば、より正確なシミュレーションを行うことができる。図4の例では、機械部品メインモータ300、機械部品給紙モータ301、機械部品反転モータ302、横レジモータ303、両面搬送モータ304、再給紙モータ305のそれぞれについて、その応答特性をコンピュータシステム201に記憶させておき、DCモータ応答特性変換308は、MMD、FEEDMD、SWBKMD、HREGMD、DUPMD、RFDMD等が入力されたとき、その対応する応答特性に基づいて遅延を発生させるように構成すれば、より正確なシミュレーションを行うことができる。
また、同じDCモータでも、複数の応答特性を記憶しておき、使用条件に応じた応答特性を適用するように構成すると、より正確なシミュレーションを行うことができる。例えば、HREGMDやSWBKMDのように、回転方向が正逆存在する場合には、正転用の応答特性と逆転用の応答特性とを記憶しておいて選択するように構成するとより好適である。また、DCモータによって、回転速度を2種類持たせた場合には、高速回転用の応答特性と低速回転用の応答特性とを記憶しておいて、選択するように構成するとより好適である。
更に、DCモータの応答特性を現実の特性に近づけると、より正確なシミュレーションを行うことができる。例えば、DCモータの応答特性として、立ち上がりの速度上昇時間特性、立下りの速度下降時間特性を記憶し、駆動ONしてから徐々に回転速度が上昇するように仮想DCモータに通知したり、駆動OFFしてから徐々に回転速度が下降するように仮想DCモータに通知するようにすると、より好適である。
<クラッチ応答特性変換>
次に、クラッチ応答特性変換309について図5(b)を参照して説明する。図5(b)は、クラッチ応答特性変換309のタイムチャートである。
実際のクラッチは、駆動開始を指示する駆動信号を入力してから実際に駆動連結するまでに連結時間が存在し、一方、駆動連結状態に置いて駆動解放を指示する駆動信号を入力してから実際に駆動開放されるまでに開放時間が存在する。そこで、あらかじめこのような応答特性をコンピュータシステム201に記憶させておく。
そして、給紙クラッチ306をFEEDCLDにて駆動する状況においては、図5(b)に示すように、クラッチ応答特性変換309は、ターゲットファームウエアから駆動ONの駆動信号が入力された場合、連結時間だけ遅延させてから、仮想給紙クラッチ306へ駆動の指示を出力する。同様に、ターゲットファームウエアから駆動OFFの駆動信号が入力された場合、開放時間だけ遅延させてから、仮想給紙クラッチ306へ駆動停止の指示を出力する。
本実施形態においては、レジクラッチ307についてもこのクラッチ応答特性変換309と同様の変換を適用する。
従来のシミュレーションシステムにおいては、このような応答特性をシミュレートしていなかったため、クラッチ駆動信号の入力と同時に仮想クラッチが連結してローラでの記録用紙搬送が開始し、また、駆動停止信号の入力と同時に仮想クラッチが解放して記録用紙の搬送が停止していた。このため、機構モデルシミュレータの動作が実際の機器の動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、クラッチの応答特性をもシミュレート可能とするため、正確なシミュレーションデバッグが可能である。
尚、このような応答特性変換を実施する上では、各クラッチの応答特性をあらかじめコンピュータシステム201に記憶させておき、この応答特性をそれぞれのクラッチに対して適用にするようにすれば、より正確なシミュレーションを行うことができる。図4の例では、給紙クラッチ306、レジクラッチ307のそれぞれについて、その応答特性をコンピュータシステム201に記憶させておき、クラッチ応答特性変換309は、FEEDCLD、REGCLD等が入力されたとき、その対応する応答特性に基づいて遅延を発生させるように構成すれば、より正確なシミュレーションを行うことができる。
また、同じクラッチでも、複数の応答特性を記憶しておき、使用条件に応じた応答特性を適用するように構成すると、より正確なシミュレーションを行うことができる。
<ソレノイド応答特性変換>
次に、ソレノイド応答特性変換310について図5(c)(d)を参照して説明する。図5(c)(d)は、ソレノイド応答特性変換310のタイムチャートである。
実際のソレノイドは、駆動開始を指示する駆動信号を入力してから実際に動作するまでにON応答時間が存在し、一方、駆動停止を指示する駆動信号を入力してから実際に開放するまでOFF応答時間が存在する。そこで、あらかじめこのような応答特性をコンピュータシステム201に記憶させておく。
そして、フラッパソレノイド13をDUPSLDにて駆動する状況においては、図5(c)に示すように、ソレノイド応答特性変換310は、ターゲットファームウエアから駆動ONの駆動信号が入力された場合、ON応答時間だけ遅延させてから、仮想フラッパソレノイド13へ駆動の指示を出力する。同様に、ターゲットファームウエアから駆動OFFの駆動信号が入力された場合、OFF応答時間だけ遅延させてから、仮想フラッパソレノイド13へ駆動停止の指示を出力する。
従来のシミュレーションにおいては、このような応答特性をシミュレートしていなかったため、ソレノイド駆動や停止を指示する信号を入力すると同時に仮想フラッパで搬送路を切替えてしまっていた。このため、記録用紙の行き先について、機構モデルシミュレータの動作が実際の機器の動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、ソレノイドに応答特性をもシミュレート可能とするため、正確なシミュレーションデバッグが可能である。
尚、このような応答特性変換を実施する上では、各ソレノイドの応答特性をあらかじめコンピュータシステム201に記憶させておき、この応答特性をそれぞれのソレノイドに対して適用にするようにすれば、より正確なシミュレーションを行うことができる。
また、同じソレノイドでも、複数の応答特性を記憶しておき、使用条件に応じた応答特性を適用するように構成すると、より正確なシミュレーションを行うことができる。
次に、フラッパソレノイド13をPWM駆動する場合の応答特性変換について図5(d)を参照して説明する。図5(d)は、フラッパソレノイド13をPWM駆動する場合のタイムチャートである。この場合も、あらかじめソレノイドON応答時間(ON応答時間)、ソレノイドOFF応答時間(OFF応答時間)をコンピュータシステム201に記憶させておくことは同様である。
図5(d)に示すように、フラッパソレノイドをPWM駆動する場合、ターゲットファームウエアは一定時間駆動ONの信号を出力し、フラッパが十分に動作した後に、ON駆動とOFF駆動を繰返すPWM駆動の信号を出力し、定常状態を形成する。フラッパソレノイドを駆動停止させる場合、OFF駆動停止の信号を出力する。
一方、ソレノイド応答特性変換310は、ターゲットファームウエアから駆動ONの駆動信号が入力された場合、ON応答時間だけ遅延させてから、仮想フラッパソレノイド13へ駆動の指示を出力する。また、ターゲットファームウエアから駆動OFFの駆動信号された場合、駆動OFFの信号の継続時間を測定し、その時間がOFF応答時間よりも短い間は仮想フラッパソレノイド13に駆動停止を伝えないようにし、OFF応答時間を超えた場合は仮想フラッパソレノイド13に駆動停止を伝える。
従来のシミュレーションシステムにおいては、このようなPWM駆動特性をシミュレートしていなかったため、ソレノイドのPWM駆動を指示すると、記録用紙を搬送中に、PWMのON/OFFの繰返しに合わせて、仮想フラッパが搬送路を断続的に切替えてしまっていた。このため、機構モデルシミュレータの動作が実際の機器の動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、PWM駆動応答特性をもシミュレーションできるため、正確なシミュレーションデバッグが可能である。
<センサ応答特性変換>
次に、センサ応答特性変換311について図5(e)を参照して説明する。図5(e)は、センサ応答特性変換311のタイムチャートである。
実際のセンサは、記録用紙の先端がセンサ位置に到達して実際にON信号を出力するまでON反応応答時間が存在し、記録用紙の後端がセンサ位置に到達して実際にOFF信号を出力するまでにOFF反応応答時間が存在する。そこで、あらかじめこのような応答特性をコンピュータシステム201に記憶させておく。
そして、記録用紙の有無に関する検知情報をFEEDSにて通知する状況においては、図5(e)に示すように、センサ応答特性変換311は、給紙センサ4の仮想センサから、紙先端を検知したという検知ONの情報が入力された場合、センサON応答時間だけ遅延させてから、ターゲットファームウエアへ検知ONを通知する。同様に、仮想センサから紙後端を検知したという検知OFFの情報が入力された場合、センサOFF応答時間だけ遅延させてから、ターゲットファームウエアへ検知OFFを通知する。
本実施形態においては、他のセンサ7,12,16,20についてもこのセンサ応答特性変換311と同様の変換を適用する。
従来のシミュレーションシステムにおいては、このような応答特性をシミュレートしていなかったため、記録用紙の先端が仮想センサに到達すると同時に検知ONがターゲットファームウエアへ通知され、記録用紙の後端が仮想センサを通過すると同時に検知OFFが通知された。このため、機構シミュレータの動作が実際の機器の動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、仮想センサの応答特性をもシミュレート可能とするため、正確なシミュレーションデバッグが可能である。
尚、このような応答特性変換を実施する上では、各センサの応答特性をあらかじめコンピュータシステム201に記憶させておき、この応答特性をそれぞれのセンサに対して適用にするようにすれば、より正確なシミュレーションを行うことができる。
また、同じセンサでも、複数の応答特性を記憶しておき、使用条件に応じた応答特性を適用するように構成すると、より正確なシミュレーションを行うことができる。
<応答特性変換の処理の流れ>
次に、本実施形態における機械部品駆動の応答特性変換の処理の詳細について図6と図7を参照して説明する。図6は、本実施形態でのDCモータ応答特性変換308、クラッチ応答特性変換309、ソレノイド応答特性変換310の各処理のフローチャートである。尚、以下では、ON応答時間とOFF応答時間があらかじめコンピュータシステム201に設定されているものとする。
まず、ステップS601において、応答特性変換に入力される機械部品の駆動信号がONであるか否かを判定する。ONの場合(ステップS601でYES)、ステップS602へ進んでタイマカウンタ初期化を行い、更にステップS603へ進む。OFFの場合(ステップS601でNO)、ステップS607へ進んでタイマカウンタの初期化を行い、更にステップS608へ進む。
ここで、タイマカウンタは、シミュレーションの実行に合わせてカウントアップする計時装置である。また、タイマカウンタの初期化とは、カウンタの値を0に設定することをいう。
ステップS603においては、タイマカウンタの値があらかじめ設定されたON応答時間を超えたか否かを判定する。超えた場合(ステップS603でYES)ステップS605へ進み、超えていない場合(ステップS603でNO)ステップS604へ進む。ステップS604においては、応答特性変換に入力される駆動信号がONであるか否かを判定する。ONの場合(ステップS604でYES)ステップS603へ戻り、ONではない場合(ステップS604でNO)ステップS607へ進む。即ち、ステップS603、S604においては、ONの駆動信号がON応答時間を超えるまで継続して入力されるというイベントを検知する処理を行っている。
ステップS605において、応答特性変換は駆動ONを機構モデルシミュレータ102の仮想メカへ出力し、ステップS606へ進む。そして、ステップS606において、応答特性変換に入力される駆動信号がONであるか否かを判定する。ONの場合(ステップS606でYES)ステップS605へ進み、ONではない場合(ステップS606でNO)ステップS607へ進む。即ち、ステップS605、S606においては、応答特性変換に入力される駆動信号がONの間(ステップS606)、駆動ON指示を機構モデルシミュレータ102の仮想メカへ出力する処理を行っている。
ステップS607においては、タイマカウンタの初期化を行う。先に述べたように、S601、S604、S606において応答特性変換へ入力される駆動信号OFFであれば、ステップS607へ進みタイマカウンタ初期化を行うことになる。
ステップS608においては、タイマカウンタの値があらかじめ設定されたOFF応答時間を超えたか否かを判定する。超えた場合(ステップS608でYES)ステップS610へ進み、超えていない場合(ステップS608でNO)ステップS609へ進む。ステップS609においては、応答特性変換に入力される駆動信号がOFFであるか否かを判定する。OFFの場合(ステップS609でYES)ステップS608へ戻り、OFFではない場合(ステップS609でNO)ステップS601へ進む。即ち、ステップS608、S609においては、OFFの駆動信号がOFF応答時間を超えるまで継続して入力されるというイベントを検知する処理を行っている。
ステップS610において、応答特性変換は駆動OFFを機構モデルシミュレータ102の仮想メカへ出力し、ステップS611へ進む。そして、ステップS611において、応答特性変換に入力される駆動信号がOFFであるか否かを判定する。OFFの場合(ステップS611でYES)ステップS610へ進み、OFFではない場合(ステップS611でNO)ステップS601へ進む。即ち、ステップS610、S611においては、応答特性変換に入力される駆動信号がOFFの間(ステップS611)、駆動OFF指示を機構モデルシミュレータ102の仮想メカへ出力する処理を行っている。
以上のような処理を行うことによって、駆動ONの駆動信号の入力について駆動ONの応答特性時間だけ遅延させ、また、駆動OFFの駆動信号の入力について駆動OFFの応答時間だけ遅延させることができる。また、ステップS608、S609において、応答特性変換に駆動OFFが入力された場合においても、それがOFF応答時間を超える時間継続して入力されない限り、駆動OFFを機構モデルシミュレータ102の仮想メカに出力しないことにより、前述したPWM駆動に対応することができる。
<機械部品検知の応答特性変換の処理の流れ>
次に、センサ応答特性変換311の処理の詳細について図7を用いて説明する。図7は、本実施形態でのセンサ応答特性変換311の処理のフローチャートである。尚、以下では、ON応答時間とOFF応答時間があらかじめコンピュータシステム201に設定されていることは先と同様である。
まず、ステップS701において、応答特性変換に入力される機構モデルシミュレータ102の仮想メカからのセンサ信号がONであるか否かを判定する。ONの場合(ステップS701でYES)、ステップS702へ進んでタイマカウンタ初期化を行い、更にステップS703へ進む。OFFの場合(ステップS701でNO)、ステップS707へ進んでタイマカウンタの初期化を行い、更にステップS708へ進む。
ここで、タイマカウンタは、シミュレーションの実行に合わせてカウントアップする計時装置であることは先と同様である。また、タイマカウンタの初期化とは、カウンタの値を0に設定することをいうことも同様である。
ステップS703においては、タイマカウンタの値があらかじめ設定されたON応答時間を超えたか否かを判定する。超えた場合(ステップS703でYES)ステップS705へ進み、超えていない場合(ステップS703でNO)ステップS704へ進む。ステップS704においては、応答特性変換に入力されるセンサ信号がONであるか否かを判定する。ONの場合(ステップS704でYES)ステップS703へ戻り、ONではない場合(ステップS704でNO)ステップS707へ進む。即ち、ステップS703、S704においては、ONのセンサ信号がON応答時間を超えるまで継続して入力されるというイベントを検知する処理を行っている。
ステップS705において、応答特性変換はONのセンサ信号をターゲットファームウエアへ出力し、ステップS706へ進む。そして、ステップS706において、応答特性変換に入力されるセンサ信号がONであるか否かを判定する。ONの場合(ステップS706でYES)ステップS705へ進み、ONではない場合(ステップS706でNO)ステップS707へ進む。即ち、ステップS705、S706においては、応答特性変換に入力されるセンサ信号がONの間(ステップS706)、ONのセンサ信号をターゲットファームウエアへ出力する処理を行っている。
ステップS707においては、タイマカウンタの初期化を行う。先に述べたように、S701、S704、S706において応答特性変換へ入力されるセンサ信号OFFであれば、ステップS707へ進みタイマカウンタ初期化を行うことになる。
ステップS708においては、タイマカウンタの値があらかじめ設定されたOFF応答時間を超えたか否かを判定する。超えた場合(ステップS708でYES)ステップS710へ進み、超えていない場合(ステップS708でNO)ステップS709へ進む。ステップS709においては、応答特性変換に入力されるセンサ信号がOFFであるか否かを判定する。OFFの場合(ステップS709でYES)ステップS708へ戻り、OFFではない場合(ステップS709でNO)ステップS701へ進む。即ち、ステップS708、S709においては、OFFのセンサ信号がOFF応答時間を超えるまで継続して入力されるというイベントを検知する処理を行っている。
ステップS710において、応答特性変換はOFFのセンサ信号をターゲットファームウエアへ出力し、ステップS711へ進む。そして、ステップS711において、応答特性変換に入力されるセンサ信号がOFFであるか否かを判定する。OFFの場合(ステップS711でYES)ステップS710へ進み、OFFではない場合(ステップS711でNO)ステップS701へ進む。即ち、ステップS710、S711においては、応答特性変換に入力されるセンサ信号がOFFの間(ステップS711)、OFFのセンサ信号をターゲットファームウエアへ出力する処理を行っている。
以上のような処理を行うことによって、ONのセンサ信号の入力についてON応答時間だけ遅延させ、また、OFFのセンサ信号の入力についてOFF応答時間だけ遅延させることができる。
以上説明したように、従来のシミュレーションシステムにおいては、このような応答特性をシミュレートしていなかったため、シミュレーションの動作が実際の機械動作と一致せず、ターゲットファームウエアのデバッグを正確に行うことができなかった。本実施形態では、CPUシミュレータ101が応答特性をもシミュレートするため、実際の機械動作と同じような、精度良いシミュレーションを行うことが可能である。
[第2の実施形態]
第2の実施形態は、第1の実施形態と同様に、機械装置として画像形成装置のシミュレーションデバッグを行うシミュレーションデバッグシステムの例である。
装置構成(図2)、機能構成(図1)は、シミュレーション表示例(図3)は、第1の実施形態と同様であり、すでに説明済みのため説明を省略する。ここでは、図8の接続配線図を参照し、第1の実施形態の接続配線図(図4)と異なる部分について説明する。 第1の実施形態では、機械装置の応答遅延特性を忠実にシミュレートするため、CPUシミュレータ101に、DCモータ応答特性変換308、クラッチ応答特性変換309、ソレノイド応答特性変換310、センサ応答特性変換311を設けた。本実施形態では、これらを、機構モデルシミュレータ102に設けたところが、第1の実施形態と異なる。
DCモータ応答特性変換308のタイムチャート(図5(a))、クラッチ応答特性変換309のタイムチャート(図5(b))、ソレノイド応答特性変換310のタイムチャート(図5(c)(d))、センサ応答特性変換311のタイムチャート(図5(e))、駆動部品応答特性変換の処理フローチャート(図6)、機械部品検知応答特性変換の処理フローチャート(図7)は、第1の実施形態と同様であるので、説明を省略する。
本実施形態においては、機構モデルシミュレータ102において応答特性をシミュレートするため、第1の実施形態と同様に、実際の機械動作と同じような精度よいシミュレーションを行うことが可能である。
[第3の実施形態]
第3の実施形態は、第1および第2の実施形態と同様に、機械装置として画像形成装置のシミュレーションデバッグを行うシミュレーションデバッグシステムの例である。
装置構成(図2)、シミュレーション表示例(図3)は、第1の実施形態と同様であり、すでに説明済みのため説明を省略する。図9の機能構成図を参照して、第1および第2の実施形態の機能構成(図1)と異なる部分について説明する。
本実施形態は、第1および第2の実施形態の機能構成に、中間インターフェース部103を追加したところが異なる。中間インターフェース部103は、CPUシミュレータ101と機構モデルシミュレータ102を、配線接続して同期処理を行うコンポーネントである。
中間インタフェース部103は、CPUシミュレータ101の仮想アドレス空間へアクセスし、ターゲットファームウエアから駆動信号を入力し、機構モデルシミュレータ102の仮想機器駆動部品へ所定の出力を行う。また、逆に、機構モデルシミュレータ102の仮想機器検知部品から検知(センサ)信号を入力し、CPUシミュレータ101のターゲットファームウエアの仮想アドレス空間へアクセスし、検知信号を出力する。更に、CPUシミュレータ101と、機構モデルシミュレータ102のタイマカウント値を用いて、シミュレーションの同期制御を行う。
本実施形態の接続配線を図10を参照して説明する。図10は、第3の実施形態における接続配線を示す図である。
第1の実施形態(図4)では、機械装置の応答遅延特性を忠実にシミュレーションするため、CPUシミュレータ101に、DCモータ応答特性変換308、クラッチ応答特性変換309、ソレノイド応答特性変換310、センサ応答特性変換311を、CPUシミュレータ101に設けた。第2の実施形態(図8)では、これらを、機構モデルシミュレータ102に設けた。本実施形態では、これらを、中間インターフェース部103に設けたところが、第1および第2の実施形態と異なる。
第1の実施形態、及び、第2の実施形態の構成では、CPUシミュレータ101、或いは、機構モデルシミュレータ102の、それぞれの装置について応答特性変換を実装する必要がある。本実施形態では、中間インターフェース部103に応答特性変換を備えるため、CPUシミュレータ101や機構モデルシミュレータ102を交換したり複数接続したりすることができ、拡張性に優れている。
尚、DCモータ応答特性変換308のタイムチャート(図5(a))、クラッチ応答特性変換309のタイムチャート(図5(b))、ソレノイド応答特性変換310のタイムチャート(図5(c)(d))、センサ応答特性変換311のタイムチャート(図5(e))、駆動部品応答特性変換の処理フローチャート(図6)、機械部品検知応答特性変換の処理フローチャート(図7)は、第1の実施形態と同様であるので、説明を省略する。
本実施形態では、中間インターフェース部103に応答特性変換を備えるため、実際の機械動作と同じような精度よいシミュレーションが可能である。
[第4の実施形態]
第4の実施形態は、第1、第2、第3の実施形態と同様に、機械装置として画像形成装置のシミュレーションデバッグを行うシミュレーションデバッグシステムの例である。本実施形態では、機械部品としてステッピングモータを用いた例について述べる。
本実施形態におけるシステムも、CPUシミュレータ101のターゲットファームウエアと機構モデルシミュレータ102の仮想メカとの間に応答特性変換を設けるものであり、第1の実施形態のようにCPUシミュレータ101内に応答特性変換を備えた構成や、第2の実施形態のように機構モデルシミュレータ102内に応答特性変換を備えた構成も可能であるが、以下では、第3の実施形態と同様に、中間インターフェース部103に応答特性変換を備えた構成について説明する。
尚、ハードウェア構成(図2)、機能構成(図9)、シミュレーション表示例(図3)、DCモータ応答特性変換308のタイムチャート(図5(a))、クラッチ応答特性変換309のタイムチャート(図5(b))、ソレノイド応答特性変換310のタイムチャート(図5(c)(d))、センサ応答特性変換311のタイムチャート(図5(e))、駆動部品応答特性変換の処理フローチャート(図6)、機械部品検知応答特性変換の処理フローチャート(図7)は、第3の実施形態と同様であるので、説明を省略する。
<接続配線>
本実施形態の接続配線について、図11を参照して第3の実施形態(図10)と異なる部分を説明する。図11は本実施形態における接続配線を示す図(図11)である。
図11において、反転モータ302はステッピングモータであり、ターゲットファームウエアから、通電信号SWBKM−I、励磁パターンA相信号SWBKM−A、励磁パターンB相信号SWBKM−B、励磁パターンC相信号SWBKM−C、励磁パターンD相信号SWBKM−Dの合計5つの信号を伝えることによって駆動指示を行うものとする。また、横レジストモータ303はステッピングモータであり、ターゲットファームウエアから、通電信号HREGM−I、励磁パターンA相信号HREGM−A、励磁パターンB相信号HREGM−Bの合計3つの信号を伝えることによって駆動指示を行うものとする。
ターゲットCPUは、ステッピングモータの各相に与える駆動パルス間隔を変化させることにより回転速度を制御し、また、駆動パルスを変化させる順序により回転方向を制御する。このような制御は、ステッピングモータドライバーICを介して行われるが、ステッピングモータドライバーICの種類によりターゲットCPUによる制御方式も異なる。本実施形態では、ターゲットCPUからステッピングモータドライバーICへステッピングモータへの通電のON、OFFの指定信号と各相の駆動パルス信号を出力する方式について説明する。また、本実施形態においてシミュレートするステッピングモータは、1パルスあたりの回転角度が所定の値に定められているものとする。
また、本実施形態においては、中間インターフェース部103は、CPUシミュレータ101から反転モータ302へ出力される駆動パルス信号に対して、後述する所定の変換・中継処理を行うステッピングモータ応答特性変換312を有する。更に、CPUシミュレータ101から横レジモータ303へ出力される駆動パルス信号に対して、後述する所定の変換・中継処理を行うステッピングモータ応答特性変換313を有する。
本実施形態では、ステッピングモータ応答特性変換312、313は、入力された駆動パルス信号を解析し、反転モータ302については、回転速度と回転方向とを出力する。横レジモータ303については、回転角度と回転方向とを出力する。反転モータ302は、ステッピングモータ応答特性変換312より入力された回転速度と回転方向とに基づいて、回転の動作をシミュレートする。そして、横レジモータ303は、ステッピングモータ応答特性変換313より入力された回転角度と回転方向とに基づいて、回転の動作をシミュレートする。
<ステッピングモータ応答特性変換>
次に、ステッピングモータ応答特性変換312について図12を参照して説明する。図12は、ステッピングモータ応答特性変換312における励磁パターン信号の経時的変化を例示したものである。
図12の表のそれぞれにおいて、表中のある列に示されている0と1の組み合わせは励磁状態のパターンを示しており、互いに隣り合う列のパターンは1同期時間前後のパターンの変化を示している。例えば、図12(a)は、1同期時間置きに、パターン1、パターン2、パターン3、パターン4、パターン1、・・・と変換することを意味する。尚、表中の1は、ターゲットファームウエアから出力される励磁パターン信号がONであることを意味し、0は、励磁パターン信号がOFFであることを意味する。
尚、図11中のSWBKM−Iは、励磁パターン信号の通電を制御する信号であり、ステッピングモータ応答特性変換312は、ONのSWBKM−Iが入力されている時にのみ、励磁パターン信号SWBKM−A,SWBKM−B,SWBKM−C,SWBKM−Dに基づいた解析と、反転モータ302への信号出力を行う。
図12(a)のように励磁パターン信号SWBKM−A,SWBKM−B,SWBKM−C,SWBKM−Dを、パターン1、パターン2、パターン3、パターン4、再びパターン1と繰返し変化させた場合は、反転モータ302を1相励磁で正回転させることを意味する。
同様に、図12(b)のように繰返し変化させた場合は、反転モータ302を1相励磁で逆回転させることを意味する。同様に、図12(c)のように繰返し変化させた場合は、反転モータ302を2相励磁で正回転させることを意味する。同様に、図12(d)のように繰返し変化させた場合は、反転モータ302を2相励磁で逆回転させることを意味する。同様に、図12(e)のように繰返し変化させた場合は、反転モータ302を1−2相励磁で正回転させることを意味する。同様に、図12(f)のように繰返し変化させた場合は、反転モータ302を1−2相励磁で逆回転させることを意味する。
このように、励磁パターン信号の変化を解析することで、回転方向等を知ることができる。
次に、ステッピングモータ応答特性変換313について図13を参照して説明する。図13は、ステッピングモータ応答特性変換313における励磁パターン信号の経時的変化を例示したものである。
図13の表のそれぞれにおいて、表中のある列に示されている0と1の組み合わせは励磁状態のパターンを示しており、互いに隣り合う列のパターンは1同期時間前後のパターンの変化を示していることは図12と同様である。
また、図11中のHREGM−Iは、励磁パターン信号の通電を制御する信号であり、ステッピングモータ応答特性変換313は、ONのHREGM−Iが入力されている時にのみ、励磁パターン信号HREGM−A,HREGM−Bに基づいた解析と、横レジモータ303への信号出力を行う。
図13(a)のように励磁パターン信号HREGM−A,HREGM−Bを、パターン1、パターン2、パターン3、パターン4、再びパターン1と繰返し変化させた場合は、横レジモータ303を2相励磁で正回転させることを意味する。同様に、図13(b)のように繰り返し変化させた場合は、横レジモータ303を2相励磁で逆回転させることを意味する。
このように、図12の場合と同様に、励磁パターン信号の変化を解析することで、回転方向等を知ることができる。
尚、図13の場合においては、励磁パターンを2相励磁と固定としたため、C相、D相の駆動信号は不要である。また、ターゲットファームウエアにおいてはA相とB相の信号を出力するが、モータドライバでは/A相、/B相を自動生成し、A相、B相、/A相(A相の反転)、/B相(B相の反転)の4つの相を用いてモータを駆動させる。
シミュレータでは、A相、B相の駆動信号パターンから回転方向等を知ることができる。
<応答特性変換の処理の流れ>
次に、本実施形態におけるステッピングモータ応答特性変換の処理の詳細について、図14と図15を参照して説明する。図14は、ステッピングモータ応答特性変換312の処理のフローチャートである。尚、本実施形態においては、機構モデルシミュレータ102からターゲットファームウエアに対して、1同期間隔毎に同期信号が送出されるものとする。
まず、ステップS801においてパルスカウンターをクリアするように制御する。パルスカウンターは、CPUシミュレータ101からの励磁パルス出力から1同期間隔あたりのステッピングモータの動作量をカウントするために用いられるものである。カウント方法は後述する。
次に、ステップS802において、ステッピングモータ応答特性変換312へONのステッピングモータ通電信号が入力されるまで待機するように制御する。ONの通電信号が入力されると(ステップS802でYES)ステップS803へ進む。
ステップS803において、ステッピングモータ応答特性変換312へ入力される、ステッピングモータ駆動パルス信号(パルス)として定義された各信号の変化があるまで待機するように制御する。駆動パルス信号にいずれかの変化があった場合(ステップS803でYES)、ステップS804へ進む。
ステップS804において、パルスの変化を解析し、ステッピングモータの動作を解析する。即ち、例えば、図12のようなパルスの変化を列挙した表をあらかじめコンピュータシステム201に記憶させておいたうえで、S803で観察されたパルスの変化が表中のどの変化に該当するかを判定し、ステッピングモータの回転方向を判定する。パルスの変化がステッピングモータを回転させるものではない場合はその旨を判定する。
次に、ステップS805において、ステップS804におけるパルス変化解析に基づいて、パルスカウンターのカウント処理を行う。即ち、ステップS804でのパルス変化解析の結果、パルス信号が正回転方向に変化している場合にはカウンターを1カウントアップし、逆回転方向に変化している場合にはカウンターを1カウントダウンする。パルス信号に変化がない場合や、パルス信号の変化が正しくモータを回転させることができないパターンの場合にはパルスカウンター値を変化させない。
次に、ステップS806において同期信号のチェック、即ち、同期信号を受けたか否かを判定する。同期信号は、ターゲットファームウエアが機構モデルシミュレータ102に対して出力した実行指示に対して、機構モデルシミュレータ102が1同期間隔毎に動作終了を通知する信号である。ステップS806で同期信号を受けていない場合(ステップS806でNO)、ステップS802へ戻り、S802〜S805の処理を繰り返す。ステップS806で同期信号を受けている場合(ステップS806でYES)、ステップS807に進む。ステップS806を設けることにより、1同期間隔毎にステップS807が実行されることになる。
ステップS807においては、機構モデルシミュレータ102のステッピングモータモデル(反転モータ302)に対してモータの回転方向と回転速度を指示する。モータの回転方向と回転速度はパルスカウンターの値から以下のように求める。
即ち、ステップS805のパルスカウントの処理により、パルスカウンター値が正の場合には正回転、負の場合には逆回転となるため、回転方向についてはパルスカウンター値の正負によって求める。
また、回転速度に関してはパルスカウンターの絶対値によって決める。先に述べたように、ステップS807は1同期間隔毎に実行されるため、この時点でのパルスカウンターの絶対値は1同期間隔内でのステッピングモータ駆動パルスの累積値である。従って、パルスカウンターの絶対値から1同期時間のモータ回転量が求まり、モータ回転速度が求まることになる。
例えば、本実施形態における1同期間隔の時間が仮想時間上の1msec、ステッピングモータの1パルスあたりの回転角度が7.5°、ある1同期間隔でのパルスカウンター値が2であった場合、回転速度は次のようになる。
(7.5×2)/360/(0.001/60)=2500[rpm]
ステッピングモータ応答特性変換312は、このようにして求められた回転速度、及び、回転方向を機構モデルシミュレータ102へ出力する。
機構モデルシミュレータ102は、ステッピングモータ応答特性変換312から入力されたこのような情報に基づき、反転モータ302の回転動作を制御する。
次に、ステッピングモータ応答特性変換313の処理について説明する。図15は、ステッピングモータ応答特性変換313の処理の流れを示すフローチャートである。
ステップS901〜S906における処理は図14のステップS801〜S806における処理と同様である。即ち、この処理により1同期間隔毎にステップカウントを行う。 そして、ステップS907で機構モデルシミュレータ102のモータモデル駆動指示方式に合わせて、回転方向と回転角度を求める。回転方向については図14と同様にパルスカウンター値の正負によって求まる。回転角度についてはパルスカウンターの絶対値と対象となるモータモデルの1パルスあたりの回転角度から求まる。
例えば、ある1同期間隔での前記パルスカウンター値が3、ステッピングモータの1パルスあたりの回転角度が7.5°であるとすると、回転角度は次のようになる。
7.5×3=22.5[°]
ステッピングモータ313は、このようにして求められた回転角度、及び、回転方向を機構モデルシミュレータ102へ出力する。
機構モデルシミュレータ102は、ステッピングモータ応答特性変換313から入力されたこのような情報に基づき、横レジモータ303の回転動作を制御する。
本実施形態では、ステッピングモータ応答特性変換を、パルス信号を入力し、回転速度と回転方向の組み合わせ、或いは、回転角度と回転方向の組み合わせを出力する例について述べたが、実施形態はこれに限られるものではない。例えば、パルスカウンター値と回転方向といった組み合わせにしてもよい。
また、これらのステッピングモータ応答特性変換312,313を、本実施形態では中間インターフェース部103に有する例で示したが、もちろん第1の実施形態や第2の実施形態のようにCPUシミュレータ101や機構モデルシミュレータ102に有するような構成をとってもよい。
本実施形態においては、中間インターフェース部103にステッピングモータ応答特性変換を設けることにより、実際の機械動作と同じようなステッピングモータの精度よいシミュレーションが可能となった。
<他の実施形態>
以上、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。 また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。