(57)【要約】【課題】  エンコーダからの出力パルスに基づきモータをフィードバック制御する際、モータが一時的に停止してエンコーダからパルスエッジが出力されなくなっても、モータの駆動を再開できるようにする。【解決手段】  プリンタのキャリッジ駆動制御装置において、ＣＲモータ３５の駆動制御時に、エンコーダエッジ検出部８からエッジ検出信号が出力されない時間が置換判定時間以上経過すると、速度演算部１６による検出速度に代えて、ＣＰＵ２側から設定される置換速度を、ＣＲモータ３５の駆動制御に用いるキャリッジ３１の移動速度として設定する。この結果、ＣＲモータ３５の駆動制御時に、ＣＲモータ３５の回転が停止（若しくは略停止）したとしても、その後、置換判定時間が経過した時点で、ＣＲモータ３５から駆動トルクを発生させて、キャリッジ３１の駆動を再開することができるようになる。【選択図】  図３
2006158131.tif 000002
【特許請求の範囲】
【請求項１】
駆動対象がモータにより所定量駆動される度にパルス信号を発生するパルス信号発生手段から出力されるパルス信号の立上がりエッジ及び立下がりエッジのうちの少なくとも一方のエッジ間の周期を計測し、その計測したエッジ周期から前記駆動対象の駆動速度を演算すると共に、
その演算された駆動速度が所定の目標速度となるように前記モータの操作量を演算し、その演算結果に基づき前記モータを駆動制御するモータ制御方法であって、
前記モータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記駆動速度の演算結果を、前記目標速度よりも低い所定の設定速度に置換することを特徴とするモータ制御方法。
【請求項２】
前記駆動速度の演算結果を置換するのに用いる設定速度は、前記目標速度に基づき設定することを特徴とする請求項１に記載のモータ制御方法。
【請求項３】
前記駆動速度の演算結果を置換するのに用いる設定速度は、前記エッジ周期から以前演算した駆動速度に基づき設定することを特徴とする請求項１に記載のモータ制御方法。
【請求項４】
前記モータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過した際には、前記駆動対象の駆動速度の演算結果を、複数の設定速度を用いて段階的に減少させることを特徴とする請求項１〜請求項３何れか記載のモータ制御方法。
【請求項５】
前記駆動速度を前記設定速度に置換可能な期間は、前記モータの駆動制御を開始してから駆動制御を終了するまでの一制御期間内の一部に制限されることを特徴とする請求項１〜請求項４の何れかに記載のモータ制御方法。
【請求項６】
前記モータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の停止判定時間以上経過すると、前記モータが停止したと判定して、モータの駆動制御を終了するようにし、しかも、前記置換判定時間には、前記停止判定時間よりも短い時間を設定することを特徴とする請求項１〜請求項５の何れかに記載のモータ制御方法。
【請求項７】
前記置換判定時間には、前記駆動対象の駆動速度を演算するのに用いた最新のエッジ周期に基づき、このエッジ周期よりも長い時間を設定することを特徴とする請求項６に記載のモータ制御方法。
【請求項８】
前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、その置換判定時間を、前記停止判定時間よりも短い時間に補正することを特徴とする請求項７に記載のモータ制御方法。
【請求項９】
前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、その置換判定時間が前記停止判定時間よりも短くなるよう、前記置換判定時間を、前記停止判定時間に基づき再設定することを特徴とする請求項８に記載のモータ制御方法。
【請求項１０】
前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、前記停止判定時間を前記置換判定時間よりも長い時間に補正することを特徴とする請求項７に記載のモータ制御方法。
【請求項１１】
前記駆動速度の演算結果を前記設定速度に置換した後、前記パルス信号発生手段から駆動速度演算用の前記エッジが所定数出力される迄の間は、前記駆動速度の演算結果として、前記設定速度若しくは予め設定された初期駆動速度を設定することを特徴とする請求項１〜請求項１０の何れかに記載のモータ制御方法。
【請求項１２】
前記駆動速度の演算結果を前記設定速度に置換すると、そのとき、前記パルス信号発生手段から駆動速度演算用のエッジが入力されたものとして、前記エッジ周期を計測することを特徴とする請求項１〜請求項１０の何れかに記載のモータ制御方法。
【請求項１３】
駆動対象がモータにより所定量駆動される度にパルス信号を発生するパルス信号発生手段と、
前記パルス信号発生手段が発生したパルス信号の立上がりエッジ及び立下がりエッジのうちの少なくとも一方のエッジ間の周期を計測し、その計測したエッジ周期から前記駆動対象の駆動速度を演算する速度演算手段と、
前記速度演算手段にて演算された駆動速度が所定の目標速度となるように前記モータの操作量を演算し、その演算結果に基づき前記モータを駆動制御する駆動制御手段と、
を備えたモータ制御装置において、
前記駆動制御手段によるモータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記速度演算手段による前記駆動速度の演算結果を、前記目標速度よりも低い所定の設定速度に置換する速度置換手段を設けたことを特徴とするモータ制御装置。
【請求項１４】
前記速度置換手段は、前記設定速度を前記目標速度に基づき設定することを特徴とする請求項１３に記載のモータ制御装置。
【請求項１５】
前記速度置換手段は、前記設定速度を前記速度演算手段にて演算された駆動速度に基づき設定することを特徴とする請求項１３に記載のモータ制御装置。
【請求項１６】
前記速度置換手段は、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記速度演算手段による前記駆動速度の演算結果を、複数の設定速度を用いて段階的に減少させることを特徴とする請求項１３〜請求項１５の何れかに記載のモータ制御装置。
【請求項１７】
前記速度置換手段は、前記駆動制御手段が前記モータの駆動制御を開始してから駆動制御を終了するまでの一制御期間の中で、前記駆動速度を前記設定速度にて置換可能な期間を設定可能であることを特徴とする請求項１３〜請求項１６の何れかに記載のモータ制御装置。
【請求項１８】
前記駆動制御手段によるモータの駆動制御時に、前記パルス信号発生手段から前記パルス信号が出力されない状態が所定の停止判定時間以上経過すると、前記モータが停止したと判定して、前記駆動制御手段によるモータの駆動制御を終了させる停止判定手段を備え、
前記速度置換手段が用いる置換判定時間は、前記停止判定手段が用いる停止判定時間よりも短い時間に設定されていることを特徴とする請求項１３〜請求項１７の何れかに記載のモータ制御装置。
【請求項１９】
前記速度置換手段が用いる置換判定時間を、前記速度演算手段が前記駆動対象の駆動速度を演算するのに用いた最新のエッジ周期に基づき、このエッジ周期よりも長い時間に設定する置換判定時間設定手段を備えたことを特徴とする請求項１８に記載のモータ制御装置。
【請求項２０】
前記置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、更に、その置換判定時間を前記停止判定時間よりも短い時間に補正することを特徴とする請求項１９に記載のモータ制御装置。
【請求項２１】
前記置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、その置換判定時間が前記停止判定時間よりも短くなるよう、置換判定時間を前記停止判定時間に基づき再設定することを特徴とする請求項２０に記載のモータ制御装置。
【請求項２２】
前記置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、前記停止判定時間を前記置換判定時間よりも長い時間に補正することを特徴とする請求項１９に記載のモータ制御装置。
【請求項２３】
前記速度演算手段は、前記速度置換手段が駆動速度の演算結果を前記設定速度に置換した後、前記パルス信号発生手段から駆動速度演算用のエッジが所定数入力される迄の間は、前記駆動速度の演算結果として、前記速度置換手段が置換に用いた設定速度若しくは予め設定された初期駆動速度を設定することを特徴とする請求項１３〜請求項２２の何れかに記載のモータ制御装置。
【請求項２４】
前記速度演算手段は、前記速度置換手段が駆動速度の演算結果を前記設定速度に置換すると、そのとき、前記パルス信号発生手段から駆動速度演算用のエッジが入力されたものとして、前記エッジ周期を計測することを特徴とする請求項１３〜請求項２２の何れかに記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダから出力されるパルス信号のエッジ周期に基づき、モータにより駆動される駆動対象の駆動速度を求め、その駆動速度が目標速度となるようにモータを駆動制御するモータ制御方法及び装置に関する。
【背景技術】
【０００２】
従来より、例えば、インクジェットプリンタ等の画像形成装置には、記録ヘッドを搭載するために、ガイド軸に沿って往復動可能に配置され、モータにより駆動（移動）されるキャリッジが備えられている。
【０００３】
そして、この種の画像形成装置において、記録用紙に画像を形成する際には、記録ヘッド（延いてはキャリッジ）を一定速度で移動させる必要があることから、キャリッジを駆動するモータは、キャリッジの一走査毎に、まず、記録ヘッドによる記録動作を開始すべき記録開始位置にてキャリッジの移動速度が一定の目標速度になるように加速され、キャリッジが記録開始位置に到達すると、その後、記録ヘッドによる記録動作を停止させる記録終了位置まで、キャリッジを目標速度で定速移動させるために定速駆動され、キャリッジが記録終了位置に到達すると、キャリッジが目標停止位置で停止するように減速される（例えば、特許文献１，２等、参照）。
【０００４】
また、この種の画像形成装置には、キャリッジの記録用紙との対向位置に反射型光学センサを組み込み、キャリッジを極低速で移動させつつ反射型光学センサにて得られる受光信号のレベル変化を検出することにより、記録ヘッドに対向配置された記録用紙の両端位置を光学的に検出するようにしたものも知られている（例えば、特許文献３等参照）。
【特許文献１】特開２００１−３１０５１７号公報
【特許文献２】特開２００３−３３５０１１号公報
【特許文献３】特開平３−７３７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、上記のようにモータを駆動制御する場合には、駆動対象であるキャリッジが所定量移動する度（若しくはモータの回転軸が所定量回転する度）にパルス信号を発生するエンコーダが用いられ、モータは、そのエンコーダから出力されるパルス信号に基づき離散的に算出されるキャリッジの移動速度（換言すれば駆動対象の駆動速度）が所定の目標速度となるようにフィードバック制御される。
【０００６】
ところが、このようにモータをフィードバック制御する場合、記録用紙の両端位置の検出時等、モータを低速で駆動する際には、モータに加わる負荷の変動等によって、モータの回転が一時的に停止すると、その後、停止状態から復帰できなくなることがあった。
【０００７】
つまり、上記のようにモータをフィードバック制御する場合、駆動対象の駆動速度は、エンコーダから出力されるパルス信号のエッジタイミング毎に更新されることから、モータの操作量を予め設定された一定周期毎に演算するようにされている場合には、操作量の演算時に、駆動対象の実速度がパルスエッジによって更新されているときもあれば、更新されていないときもある。
【０００８】
これに対し、駆動対象を低速駆動している際には、駆動対象の駆動速度が著しく低下して、その駆動系で生じる摩擦が動摩擦から静摩擦へと変化し、モータに加わる負荷が上昇することがある。またこの場合、モータ自体もある程度の回転速度を発生させてやらないと、逆起電力による安定性が得られない為、負荷の影響を受け易くなる。また、モータに加わる負荷は、駆動対象の摺動部のグリス塗布状態や微小異物（埃など）の付着状態など、不確かな変動要因によって変動する。
【０００９】
このため、駆動対象の低速駆動時には、駆動対象が一時的に停止状態になることがあり、このとき、図２０（ａ）に示すように、エンコーダのエッジタイミング毎に更新される駆動対象の速度（検出速度）が目標速度よりも高くなっていると、操作量の演算タイミング（制御演算タイミング）では、モータの速度を下げる方向の操作量を演算することになるため、モータは完全に停止し、最終的には、駆動系の機械的なエラーと認識されてしまうのである。
【００１０】
なお、図２０（ａ）は、操作量の演算タイミング（制御演算タイミング）が一定周期毎に発生するようにモータ制御装置を構成した場合の、駆動対象の実速度とエンコーダエッジ周期により得られる検出速度と目標速度との関係を表すタイムチャートであるが、制御演算タイミングをエンコーダエッジタイミングに設定した場合にも同様の問題が生じる。
【００１１】
つまり、この場合、駆動対象が停止すれば操作量の演算も停止されることから、制御演算タイミングが一定周期に設定されている場合と同様、駆動系の機械的なエラーが認識されるまで駆動対象の停止状態が継続されてしまうのである。
【００１２】
一方、上記のような問題は、モータの加速駆動時にも、同様に発生する。
すなわち、例えば、駆動対象であるキャリッジを停止状態から目標速度まで加速する場合には、図２０（ｂ）に示す如く、駆動開始直後には、駆動対象がその駆動系の特性に応じて予め設定した速度軌跡に沿って加速されるように、モータの操作量をエンコーダエッジタイミングに同期して順次設定する所謂オープンループ制御（Ｏ／Ｐ）を行い、その後、駆動対象がある程度加速された段階で、モータ制御を、上述したフィードバック制御（Ｆ／Ｂ）に切り換えることが行われる。
【００１３】
しかし、オープンループ制御（Ｏ／Ｐ）の際に設定される操作量は、駆動対象の駆動系の理想的な特性に応じて設定されたものであることから、その操作量を用いてモータを実際に制御した際には、駆動系の特性のバラツキ等によって、想定した速度軌跡に比べて駆動対象の駆動速度が高くなったり、低くなったりする。
【００１４】
そして、図２０（ｂ）に示すように、駆動対象の駆動速度が想定した速度軌跡よりも高くなると、制御がオープンループ制御（Ｏ／Ｐ）からフィードバック制御（Ｆ／Ｂ）に切り換えられた際に、駆動対象を減速させるべく、モータの操作量が演算されて、モータ（延いては駆動対象）が停止してしまうことがある。
【００１５】
そして、このように駆動対象が一旦停止すると、エンコーダからパルスエッジが入力されなくなるので、モータの低速駆動時と同様、その停止状態が継続されて、最終的には、駆動系の機械的なエラーと認識されてしまうことになる。
【００１６】
本発明は、こうした問題に鑑みなされたものであり、エンコーダからの出力パルスに基づきモータをフィードバック制御する際、モータの低速駆動時や加速駆動時等にモータが一時的に停止してエンコーダからパルスエッジが出力されなくなっても、モータの駆動を再開できるようにすることを目的とする。
【課題を解決するための手段】
【００１７】
係る目的を達成するためになされた請求項１に記載の発明は、駆動対象がモータにより所定量駆動される度にパルス信号を発生するパルス信号発生手段から出力されるパルス信号の立上がりエッジ及び立下がりエッジのうちの少なくとも一方のエッジ間の周期を計測し、その計測したエッジ周期から前記駆動対象の駆動速度を演算すると共に、その演算された駆動速度が所定の目標速度となるように前記モータの操作量を演算し、その演算結果に基づき前記モータを駆動制御するモータ制御方法であって、前記モータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記駆動速度の演算結果を、前記目標速度よりも低い所定の設定速度に置換することを特徴とする。
【００１８】
この請求項１に記載のモータ制御方法によれば、駆動対象の駆動速度が目標速度よりも高くなって、モータに制動力を発生させた際に、モータの回転が停止（若しくは略停止）して、パルス信号発生手段からエッジ周期計測用のエッジが出力されなくなったとしても、その状態が置換判定時間以上経過すると、モータ制御に用いられる駆動対象の駆動速度が、目標速度よりも低い設定速度に置換されることから、その後、モータは、駆動力を発生するように制御されることになる。
【００１９】
よって、本発明方法によれば、駆動対象の駆動時にその駆動速度が一時的に低下したとしても、停止状態に陥ることなく駆動対象の駆動を再開することができる。
次に、請求項２に記載の発明は、請求項１に記載のモータ制御方法において、駆動速度の演算結果を置換するのに用いる設定速度は、目標速度に基づき設定することを特徴とし、請求項３に記載の発明は、請求項１に記載のモータ制御方法において、駆動速度の演算結果を置換するのに用いる設定速度は、前記エッジ周期から以前演算した駆動速度に基づき設定することを特徴とする。
【００２０】
つまり、本発明方法（請求項１）において、駆動速度の演算結果を置換するのに用いる設定速度は、目標速度よりも小さい値であればよく、例えば、固定値であってもよいが、請求項２又は請求項３に記載のように、目標速度、若しくは、エッジ周期に基づき以前演算した駆動速度、に基づき設定するようにすれば、設定速度を、モータが停止状態に陥る前のモータの回転状態に応じて設定できることになるため、駆動速度の演算結果を置換した直後のモータ制御によって生じる駆動力を、過不足のない最適値に制御することが可能となる。
【００２１】
また次に、請求項４に記載の発明は、請求項１〜請求項３何れか記載のモータ制御方法において、モータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過した際には、前記駆動対象の駆動速度の演算結果を、複数の設定速度を用いて段階的に減少させることを特徴とする。
【００２２】
この請求項４に記載のモータ制御方法によれば、モータが一旦停止してから、モータが回転し始め、パルス信号発生手段からパルス信号のエッジが出力されるようになるまで、モータの駆動力を段階的に増加させることができるようになり、モータの回転復帰時に生じるトルク変動を抑制することができる。
【００２３】
また、請求項５に記載の発明は、請求項１〜請求項４の何れかに記載のモータ制御方法において、駆動速度を前記設定速度に置換可能な期間は、前記モータの駆動制御を開始してから駆動制御を終了するまでの一制御期間内の一部に制限されることを特徴とする。
【００２４】
この請求項５に記載のモータ制御方法によれば、駆動対象の駆動速度を設定速度に置換可能な期間を、モータの駆動制御時にモータが停止し易い駆動領域に制限することができるようになり、駆動対象の駆動速度を誤って設定速度に置換してしまうのを防止できる。
【００２５】
ところで、本発明方法（請求項１〜５）のように、駆動対象の駆動速度が目標速度となるようにモータをフィードバック制御する場合、駆動対象を所定位置まで駆動できたときや、モータ自体若しくはモータから駆動対象への動力伝達系に故障が生じたときに、モータを駆動し続けると、電力を無駄に消費してしまうことになり、モータや動力伝達系が故障したときには、モータが過熱して発火する虞もある。
【００２６】
このため、本発明方法（請求項１〜５）では、更に請求項６に記載のように、モータの駆動制御時にパルス信号発生手段からパルス信号のエッジが出力されない状態が所定の停止判定時間以上経過すると、モータが停止したと判定して、モータの駆動制御を終了するようにするとよい。
【００２７】
またこの場合、請求項６に記載のように、置換判定時間には、停止判定時間よりも短い時間を設定するようにすれば、停止判定時間に基づきモータの停止が判定されてモータの駆動制御が終了される前に、パルス周期から求められた駆動対象の駆動時間が設定速度に置換されることになり、この置換動作によってモータ（延いては駆動対象）が駆動されれば、その後、停止判定時間に基づきモータの停止が判定されることはないので、モータの駆動制御時に駆動対象の駆動速度が目標速度よりも高い速度に保持されてモータが停止したような場合には、モータ（延いては駆動対象）の駆動を確実に再開することができる。
【００２８】
なお、この請求項６に記載のモータ制御方法において、駆動対象の駆動速度を設定速度に置換するか否かを判定するのに用いられる置換判定時間には、予め設定された固定値を設定するようにしてもよいが、請求項７に記載のように、駆動対象の駆動速度を演算するのに用いたエッジ周期に基づき、そのエッジ周期よりも長い時間を設定するようにしてもよい。
【００２９】
そして、この請求項７に記載のように置換判定時間を設定するようにすれば、モータが停止状態に陥る前に計測した最新のエッジ周期に応じて置換判定時間を設定することができるようになるため、その設定した置換判定時間を用いて、モータの回転停止（換言すれば駆動対象の駆動速度を設定速度に置換するか否か）を速やかにしかも高精度に判定することができるようになる。
【００３０】
一方、請求項７に記載のモータ制御方法に従い、置換判定時間をエッジ周期に基づき設定するようにした場合、場合によっては、置換判定時間が、停止判定時間以上になってしまうことも考えられる。
【００３１】
このため、請求項７に記載のモータ制御方法は、更に、請求項８〜請求項１０の何れかに記載のようにするとよい。
すなわち、エッジ周期に基づき設定した置換判定時間が停止判定時間以上となる場合には、請求項８に記載のように、その置換判定時間を停止判定時間よりも短い時間に補正するか、或いは、請求項１０に記載のように、停止判定時間を置換判定時間よりも長い時間に補正するようにするとよい。
【００３２】
また特に、請求項８に記載のように、エッジ周期に基づき設定した置換判定時間が停止判定時間以上となる場合に、置換判定時間を補正する際には、請求項９に記載のように、その置換判定時間を、停止判定時間に基づき再設定するようにしてもよい。
【００３３】
そして、このように、エッジ周期に基づき設定した置換判定時間が停止判定時間以上となる場合に、置換判定時間若しくは停止判定時間を再度設定し直すようにすれば、駆動対象の駆動速度を設定速度に置換するか否かを判定するのに用いる置換判定時間を、停止判定時間よりも短い時間に確実に設定することができるようになり、モータ（延いては駆動対象）の駆動をより確実に再開することができる。
【００３４】
また次に、請求項１１に記載の発明は、請求項１〜請求項１０の何れかに記載のモータ制御方法において、駆動速度の演算結果を前記設定速度に置換した後、前記パルス信号発生手段から駆動速度演算用の前記エッジが所定数出力される迄の間は、前記駆動速度の演算結果として、前記設定速度若しくは予め設定された初期駆動速度を設定することを特徴している。
【００３５】
また、請求項１２に記載の発明は、請求項１〜請求項１０の何れかに記載のモータ制御方法において、駆動速度の演算結果を前記設定速度に置換すると、そのとき、前記パルス信号発生手段から駆動速度演算用のエッジが入力されたものとして、前記エッジ周期を計測することを特徴としている。
【００３６】
つまり、本発明方法（請求項１〜請求項１０）においては、パルス信号発生手段が発生したパルス信号の立上がりエッジ及び立下がりエッジのうちの少なくとも一方のエッジ間の周期を計測し、その計測したエッジ周期から駆動対象の駆動速度を演算することから、その演算結果を設定速度に置換した後、モータが回転して、パルス信号発生手段から駆動速度演算用のエッジが出力された際には、前回のエッジ入力から今回のエッジ入力までの時間（つまりエッジ周期）が異常に長くなって、駆動速度の演算結果が、設定速度や実際の駆動速度よりも低くなり過ぎ、その後のモータの駆動制御によって、モータに過大なトルクを発生させてしまうことも考えられる。
【００３７】
そこで、本発明（請求項１〜請求項１０）のモータ制御方法においては、請求項１１に記載のように、駆動速度の演算結果を設定速度に置換した後、パルス信号発生手段から駆動速度演算用のエッジが所定数入力される迄の間は、駆動速度の演算結果として、設定速度若しくは予め設定された初期駆動速度を設定するようにするか、或いは、請求項１２に記載のように、駆動速度の演算結果を設定速度に置換したときに、パルス信号発生手段から駆動速度演算用のエッジが入力されたものとして、エッジ周期を計測するようにすれば、駆動速度の演算結果を設定速度に置換し、その後モータが駆動されて、パルス信号発生手段から駆動速度演算用のエッジが入力された際に更新される駆動対象の駆動速度を、駆動対象の実際の駆動速度に近づけることができるようになり、モータの駆動制御を、モータに過大なトルクを発生させることなく、最適に実行することが可能となる。
【００３８】
次に、請求項１３〜請求項２４に記載の発明は、それぞれ、上述した請求項１〜請求項１２に記載のモータ制御方法に従いモータを駆動するモータ駆動装置に関する発明である。
【００３９】
すなわち、まず、請求項1３に記載の発明は、駆動対象がモータにより所定量駆動される度にパルス信号を発生するパルス信号発生手段と、前記パルス信号発生手段が発生したパルス信号の立上がりエッジ及び立下がりエッジのうちの少なくとも一方のエッジ間の周期を計測し、その計測したエッジ周期から前記駆動対象の駆動速度を演算する速度演算手段と、前記速度演算手段にて演算された駆動速度が所定の目標速度となるように前記モータの操作量を演算し、その演算結果に基づき前記モータを駆動制御する駆動制御手段とを備えたモータ制御装置において、前記駆動制御手段によるモータの駆動制御時に、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記速度演算手段による前記駆動速度の演算結果を、前記目標速度よりも低い所定の設定速度に置換する速度置換手段を設けたことを特徴とする。従って、この請求項１３に記載のモータ制御装置によれば、請求項１に記載のモータ制御方法に従いモータを駆動制御することができ、請求項１と同様の効果を得ることができる。
【００４０】
次に、請求項１４に記載の発明は、請求項１３に記載のモータ制御装置において、速度置換手段は、前記設定速度を前記目標速度に基づき設定することを特徴とする。従って、このモータ制御装置によれば、請求項２に記載のモータ制御方法に従いモータを駆動制御することができ、請求項２と同様の効果を得ることができる。
【００４１】
また、請求項１５に記載の発明は、請求項１３に記載のモータ制御装置において、速度置換手段は、前記設定速度を前記速度演算手段にて演算された駆動速度に基づき設定することを特徴とする。従って、このモータ制御装置によれば、請求項３に記載のモータ制御方法に従いモータを駆動制御することができ、請求項３と同様の効果を得ることができる。
【００４２】
また次に、請求項１６に記載の発明は、請求項１３〜請求項１５の何れかに記載のモータ制御装置において、速度置換手段は、前記パルス信号発生手段から前記エッジが出力されない状態が所定の置換判定時間以上経過すると、前記速度演算手段による前記駆動速度の演算結果を、複数の設定速度を用いて段階的に減少させることを特徴とする。従って、このモータ制御装置によれば、請求項４に記載のモータ制御方法に従いモータを駆動制御することができ、請求項４と同様の効果を得ることができる。
【００４３】
また更に、請求項１７に記載の発明は、請求項１３〜請求項１６の何れかに記載のモータ制御装置において、速度置換手段は、前記駆動制御手段が前記モータの駆動制御を開始してから駆動制御を終了するまでの一制御期間の中で、前記駆動速度を前記設定速度にて置換可能な期間を設定可能であることを特徴とする。従って、このモータ制御装置によれば、請求項５に記載のモータ制御方法に従いモータを駆動制御することができ、請求項５と同様の効果を得ることができる。
【００４４】
また、請求項１８に記載の発明は、請求項１３〜請求項１７の何れかに記載のモータ制御装置において、駆動制御手段によるモータの駆動制御時に、前記パルス信号発生手段から前記パルス信号が出力されない状態が所定の停止判定時間以上経過すると、前記モータが停止したと判定して、前記駆動制御手段によるモータの駆動制御を終了させる停止判定手段を備え、前記速度置換手段が用いる置換判定時間は、前記停止判定手段が用いる停止判定時間よりも短い時間に設定されていることを特徴とする。従って、このモータ制御装置によれば、請求項６に記載のモータ制御方法に従いモータを駆動制御することができ、請求項６と同様の効果を得ることができる。
【００４５】
また次に、請求項１９に記載の発明は、請求項１８に記載のモータ制御装置において、速度置換手段が用いる置換判定時間を、前記速度演算手段が前記駆動対象の駆動速度を演算するのに用いた最新のエッジ周期に基づき、このエッジ周期よりも長い時間に設定する置換判定時間設定手段を備えたことを特徴とする。従って、このモータ制御装置によれば、請求項７に記載のモータ制御方法に従いモータを駆動制御することができ、請求項７と同様の効果を得ることができる。
【００４６】
また更に、請求項２０に記載の発明は、請求項１９に記載のモータ制御装置において、置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、更に、その置換判定時間を前記停止判定時間よりも短い時間に補正することを特徴とする。従って、このモータ制御装置によれば、請求項８に記載のモータ制御方法に従いモータを駆動制御することができ、請求項８と同様の効果を得ることができる。
【００４７】
また、請求項２１に記載の発明は、請求項２０に記載のモータ制御装置において、置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、その置換判定時間が前記停止判定時間よりも短くなるよう、置換判定時間を前記停止判定時間に基づき再設定することを特徴とする。従って、このモータ制御装置によれば、請求項９に記載のモータ制御方法に従いモータを駆動制御することができ、請求項９と同様の効果を得ることができる。
【００４８】
次に、請求項２２に記載の発明は、請求項１９に記載のモータ制御装置において、置換判定時間設定手段は、前記エッジ周期に基づき設定した置換判定時間が前記停止判定時間以上となる場合には、前記停止判定時間を前記置換判定時間よりも長い時間に補正することを特徴とする。従って、このモータ制御装置によれば、請求項１０に記載のモータ制御方法に従いモータを駆動制御することができ、請求項１０と同様の効果を得ることができる。
【００４９】
一方、請求項２３に記載の発明は、請求項１３〜請求項２２の何れかに記載のモータ制御装置において、速度演算手段は、前記速度置換手段が駆動速度の演算結果を前記設定速度に置換した後、前記パルス信号発生手段から駆動速度演算用のエッジが所定数入力される迄の間は、前記駆動速度の演算結果として、前記速度置換手段が置換に用いた設定速度若しくは予め設定された初期駆動速度を設定することを特徴とする。従って、このモータ制御装置によれば、請求項１１に記載のモータ制御方法に従いモータを駆動制御することができ、請求項１１と同様の効果を得ることができる。
【００５０】
また、請求項２４に記載の発明は、請求項１３〜請求項２２の何れかに記載のモータ制御装置において、速度演算手段は、前記速度置換手段が駆動速度の演算結果を前記設定速度に置換すると、そのとき、前記パルス信号発生手段から駆動速度演算用のエッジが入力されたものとして、前記エッジ周期を計測することを特徴とする。従って、このモータ制御装置によれば、請求項１２に記載のモータ制御方法に従いモータを駆動制御することができ、請求項１２と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００５１】
以下に本発明の実施形態を図面と共に説明する。
図１は、本発明が適用されたインクジェットプリンタ（以下、単に「プリンタ」という）におけるキャリッジ駆動機構の構成を表す概略構成図である。
【００５２】
図１に示すように、このキャリッジ駆動機構においては、押えローラ３２等により搬送されてくる記録用紙３３の幅方向に設置されたガイド軸３４に、ノズルから記録用紙３３に向けてインクを吐出させて記録を行う記録ヘッド３０を搭載したキャリッジ３１が挿通されている。
【００５３】
そして、キャリッジ３１は、ガイド軸３４に沿って設けられた無端ベルト３７に連結され、その無端ベルト３７は、ガイド軸３４の一端に設置されたキャリッジモータ（ＣＲモータ）３５のプーリ３６と、ガイド軸３４の他端に設置されたアイドルプーリ（図示せず）との間に掛け止められている。
【００５４】
つまり、キャリッジ３１は、無端ベルト３７を介して伝達されるＣＲモータ３５の駆動力により、ガイド軸３４に沿って記録用紙３３の幅方向に往復運動するように構成されている。なお、ＣＲモータ３５は直流モータからなる。
【００５５】
また、ガイド軸３４の下方には、一定間隔ごとに一定幅のスリットを形成したタイミングスリット３８が、ガイド軸３４に沿って設置されている。そして、キャリッジ３１の下部には、タイミングスリット３８を挟んで発光素子と受光素子とが対面するように配置されたフォトインタラプタからなる検出部（図示されない）が備えられており、上述のタイミングスリット３８と共に、リニアエンコーダ３９（図３参照）を構成している。
【００５６】
このリニアエンコーダ３９を構成する検出部は、図２に示すように、キャリッジ３１の移動に応じて、互いに一定周期（本実施形態においては、１／４周期）ズレた２種類のパルス信号（以下、エンコーダ信号という）ＥＮＣ１，ＥＮＣ２を出力する。そして、この２つのエンコーダ信号ＥＮＣ１，ＥＮＣ２は、キャリッジ３１の移動方向がホームポジション（図１の左端位置）からアイドルプーリ側に向かう順方向である場合は、ＥＮＣ１がＥＮＣ２に対して位相が一定周期進み、アイドルプーリ側からホームポジションに向かう逆方向である場合は、ＥＮＣ１がＥＮＣ２に対して位相が一定周期遅れるようにされている。
【００５７】
このようなキャリッジ駆動機構において、キャリッジ３１は、ガイド軸３４のプーリ３５側端付近に設定されたホームポジション、前回の記録が終了した位置、若しくは、記録ヘッド３０のメンテナンス等を行うための所定の停止位置に停止され、記録ヘッド３０を動作させて記録用紙３３へ画像を形成させる記録処理が開始されると、前述した従来装置と同様、駆動開始位置（つまり停止位置）から記録開始位置までの間に一定の目標駆動速度に達するよう加速され、その後、記録終了位置（減速開始位置）までの間は目標駆動速度で駆動され、減速開始位置を越えると、目標停止位置にて停止するよう減速される。
【００５８】
また、キャリッジ３１は、ホームポジションやメンテナンス用の所定の停止位置に停止させる場合や、記録用紙３３に対向するようキャリッジ３１に設けられた反射型光学センサ（図示せず）を用いて記録用紙３３の両端位置を検出する場合には、画像形成時よりも低速で駆動（移動）される。
【００５９】
そして、キャリッジ３１をこのように駆動させるために、プリンタには、キャリッジ駆動制御装置が内蔵されている。
このキャリッジ駆動制御装置は、図３に示すように、プリンタの制御を統括するＣＰＵ２からの指令を受けてキャリッジ３１のアクチュエータであるＣＲモータ３５を駆動するものであり、ＣＲモータ３５の回転速度や回転方向等を制御するためのＰＷＭ信号を生成するＡＳＩＣ（Application Specific Integrated Circuit）３と、このＡＳＩＣ３にて生成されたＰＷＭ信号に基づいてＣＲモータ３５を駆動させるキャリッジ駆動回路（ＣＲ駆動回路）４とから構成されている。
【００６０】
ここで、ＣＲ駆動回路４は、４つのスイッチング素子（例えば、ＦＥＴ：電界効果型トランジスタなどからなる素子）と、各スイッチング素子に並列接続されたフライホイールダイオードとで構成された周知のＨブリッジ回路からなり、これらスイッチング素子を外部からの駆動信号（ＰＷＭ信号）を受けてＯＮ／ＯＦＦすることにより、ＣＲモータ３５への通電を制御する回路である。
【００６１】
一方、ＡＳＩＣ３の内部には、ＣＰＵ２の動作によって、ＣＲモータ３５の駆動制御に必要な各種パラメータが格納される動作モード設定レジスタ群５が備えられている。
この動作モード設定レジスタ群５には、ＣＲモータ３５を起動するための起動設定レジスタ５０、ＣＲモータ３５の駆動時（特に低速駆動時や加速駆動時等）にキャリッジ３１が停止した際に、リニアエンコーダ３９を介して検出されるキャリッジ３１の駆動速度（検出速度：ｄｅｔ＿ｃｅｌｏ）を所定の置換速度（ｒｅｐ＿ｖｅｌｏ）に置換して、ＣＲモータ３５の再駆動を図る置換制御を実行するのに必要なパラメータを設定するための置換制御用設定レジスタ（５１〜５４）、キャリッジ３１の停止を判定するのに必要な停止判定時間（ｔｈ＿ｓｔｏｐ）を設定するための停止判定時間設定レジスタ５５、キャリッジ３１の位置及び速度に応じてＣＲモータ３５をフィードバック制御するのに必要なパラメータを設定するためのフィードバック制御用設定レジスタ（５６〜６０）、ＣＲモータ３５の駆動に用いるＰＷＭ信号のデューティ比の上限（最大ＰＷＭデューティ）を設定するための最大ＰＷＭデューティ設定レジスタ６１、等が設けられている。
【００６２】
また、置換制御用設定レジスタは、ＣＲモータ３５を駆動してキャリッジ３１を一走査方向に移動させる際に、キャリッジ３１の全移動領域の中から置換制御を実行すべき領域を表す制御開始位置（第１置換有効位置）と制御終了位置（第２置換有効位置）をそれぞれ設定するための第１置換有効位置レジスタ５１及び第２置換有効位置レジスタ５２、リニアエンコーダ３９からの入力パルスのエッジ間隔から検出された検出速度（ｄｅｔ＿ｖｅｌｏ）を置換するのに用いる置換速度（ｒｅｐ＿ｖｅｌｏ）を設定するための置換速度（周期）設定レジスタ５３、検出速度（ｄｅｔ＿ｖｅｌｏ）を置換速度（ｒｅｐ＿ｖｅｌｏ）に置換するか否かを判定するのに要する置換判定時間（ｔｈ＿ｒｅｐ）を設定するための置換判定時間設定レジスタ５４、等から構成されている。
【００６３】
また、フィードバック制御用設定レジスタは、ＣＲモータ３５のフィードバック制御に必要な制御ゲインや制御定数等を設定するための制御パラメータ設定レジスタ５６、キャリッジ３１の目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）を設定するための目標駆動速度設定レジスタ５７、キャリッジ３１の定速駆動後に減速制御を開始する位置を設定するための減速開始位置設定レジスタ５８、キャリッジ３１の目標停止位置を設定するための目標停止位置設定レジスタ５９、ＣＲモータ３５の操作量を演算するための演算タイミングを設定するための演算タイミング設定レジスタ６０、等から構成されている。
【００６４】
なお、これら各設定レジスタには、ＣＰＵ２側から上記各パラメータが書き込まれるが、ＣＰＵ２は、置換判定時間設定レジスタ５４には、停止判定時間設定レジスタ５５に書き込む停止判定時間（ｔｈ＿ｓｔｏｐ）よりも時間が短く設定された置換判定時間（ｔｈ＿ｒｅｐ）を書き込むようにされており、また、置換速度設定レジスタ５３には、目標駆動速度設定レジスタ５７に書き込むキャリッジ３１の目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）よりも低速度に設定された置換速度（ｒｅｐ＿ｖｅｌｏ）を書き込むようにされている。
【００６５】
次に、ＡＳＩＣ３には、上述した動作モード設定レジスタ群５に加えて、リニアエンコーダ３９からのエンコーダ信号ＥＮＣ１，ＥＮＣ２よりも十分に周期が短いクロック信号ＣＫを生成してＡＳＩＣ３内部の各部に供給するクロック生成部６と、リニアエンコーダ３９からのエンコーダ信号ＥＮＣ１，ＥＮＣ２に基づきキャリッジ３１の位置や移動速度を検出するためのエンコーダエッジ検出部８、位置カウンタ１０、周期カウンタ１２、及び速度演算部１６と、これら各部による検出結果とフィードバック制御用設定レジスタ（５６〜６０）に設定されたパラメータとに基づきＣＲモータ３５の操作量を演算するためのフィードバック演算処理部１８と、このフィードバック演算処理部１８にて演算された操作量に応じてＣＲモータ３５をデューティ駆動するためのＰＷＭ信号を生成し、ＣＲ駆動回路４に出力する駆動用信号生成部１９と、速度演算部１６にて演算されたキャリッジ３１の移動速度（検出速度：ｄｅｔ＿ｖｅｌｏ）と置換速度設定レジスタ５３に設定された置換速度（ｒｅｐ＿ｖｅｌｏ）との何れか一方を、フィードバック演算処理部１８が制御に用いる移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定するための速度選択部２０、置換有効位置判定部２２、及び置換判定部２４と、キャリッジ３１が完全に停止したか否かを判定するための停止判定部２６と、この停止判定部２６による判定結果等、ＡＳＩＣ３内で生成された各種信号を処理してＣＰＵ２に出力する各種信号処理部２８とが備えられている。
【００６６】
ここで、エンコーダエッジ検出部８は、図２に示したエンコーダ信号ＥＮＣ１，ＥＮＣ２を取り込み、エンコーダ信号ＥＮＣ１の各周期の開始／終了を表すエッジ（本実施形態ではＥＮＣ２がハイレベルの時におけるＥＮＣ１のエッジ）及びＣＲモータ３５の回転方向（エッジ検出信号がＥＮＣ１の立ち下がりエッジであれば順方向、立ち上がりエッジであれば逆方向）を検出するものであり、エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）を、位置カウンタ１０、周期カウンタ１２、速度演算部１６、及び各種信号処理部２８に出力する。
【００６７】
また、位置カウンタ１０は、エンコーダエッジ検出部８が検出したＣＲモータ３５の回転方向（つまりキャリッジ３１の移動方向）に応じて、エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）にてカウント値（ｅｎｃ＿ｃｏｕｎｔ）をカウントアップ（順方向のとき）またはカウントダウン（逆方向のとき）することにより、キャリッジ３１がホームポジションから何番目のスリットに位置しているのかを検出するものであり、そのカウント値（ｅｎｃ＿ｃｏｕｎｔ）はフィードバック演算処理部１８及び置換有効位置判定部２２に出力される。
【００６８】
また、周期カウンタ１２は、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が入力される度に初期化されて、エッジ検出信号入力後の経過時間を、クロック信号ＣＫをカウントすることにより計時するものであり、その計時結果を表すカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）は、速度演算部１６、置換判定部２４、及び停止判定部２６に出力される。
【００６９】
そして、速度演算部１６では、エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）に同期して、リニアエンコーダ３９の物理分解能（ｒｅｓｏ：つまりタイミングスリット３８のスリット間の距離）と、エンコーダ信号ＥＮＣ１の前回の一周期内に周期カウンタ１２がカウントしたカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）の保持値Ｃn-1 とに基づき、キャリッジ３１の移動速度（検出速度：ｄｅｔ＿ｖｅｌｏ（＝ｒｅｓｏ／ｅｎｃ＿ｐｅｒｉｏｄ））が算出される。
【００７０】
一方、置換有効位置判定部２２は、位置カウンタ１０から出力されたキャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）と、第１及び第２の置換有効位置設定レジスタ５１、５２に設定された第１置換有効位置（ｒｅｐ＿ｐｏｓ１）及び第２置換有効位置（ｒｅｐ＿ｐｏｓ２）とを比較することにより、キャリッジ３１がこの２つの置換有効位置の間に位置するか否かを判定し、その判定結果を表す置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）を置換判定部２４に出力する。
【００７１】
また、置換判定部２４は、置換有効位置判定部２２から出力された置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）が値１にセットされているとき（詳しくは、キャリッジ３１が２つの置換有効位置の間に位置する場合）に、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）と置換判定時間設定レジスタ５４に設定された置換判定時間（ｔｈ＿ｒｅｐ）とを比較することにより、エンコーダエッジ検出部８にてエンコーダ信号のエッジが検出されない時間が置換判定時間（ｔｈ＿ｒｅｐ）以上経過したか否かを判定し、その判定結果を表す置換フラグ（ｒｅｐ＿ｏｎ）を速度選択部２０及び各種信号処理部２８に出力する。
【００７２】
そして、速度選択部２０では、この置換判定部２４から入力される置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされているとき（詳しくはエンコーダ信号のエッジが置換判定時間以上検出されない場合）には、キャリッジ３１が停止したと判断して、置換速度（ｒｅｐ＿ｖｅｌｏ）を、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として、フィードバック演算処理部１８及び各種信号処理部２８に出力し、逆に、置換フラグ（ｒｅｐ＿ｏｎ）が値０にリセットされているときには、キャリッジ３１は正常に駆動できているものとして、速度演算部１６から出力された検出速度（ｄｅｔ＿ｖｅｌｏ）を、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として、フィードバック演算処理部１８及び各種信号処理部２８に出力する。
【００７３】
また、停止判定部２６は、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）と停止判定時間設定レジスタ５５に設定された停止判定時間（ｔｈ＿ｓｔｏｐ）とを比較することにより、エンコーダエッジ検出部８にてエンコーダ信号のエッジが検出されない時間が停止判定時間（ｔｈ＿ｓｔｏｐ）以上経過したか否かを判定し、エンコーダ信号のエッジが検出されない時間が停止判定時間（ｔｈ＿ｓｔｏｐ）以上経過していれば、キャリッジ３１は完全に停止しており、速度選択部２０にてキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を変更しても、キャリッジ３１を移動させることはできないと判断して、停止フラグ（ｓｔｏｐ＿ｏｎ）を値１にセットし、フィードバック演算処理部１８及び各種信号処理部２８に出力する。
【００７４】
そして、フィードバック演算処理部１８では、ＣＰＵ２から起動設定レジスタ５０にＣＲモータ３５の駆動制御を開始する起動指令が設定されてから、停止判定部２６にてキャリッジ３１の停止が判定されて、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされるまでの間、フィードバック制御用レジスタ（５６〜６０）に設定されたパラメータと、位置カウンタ１０からのカウント値（ｅｎｃ＿ｃｏｕｎｔ）と、速度選択部２０からの移動速度（ｐｌａｎｔ＿ｖｅｌｏ）と、エンコーダエッジ検出部８からのエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）とに基づき、ＣＲモータ３５の操作量が演算される。
【００７５】
つまり、フィードバック演算処理部１８は、起動設定レジスタ５０に起動指令が設定されると、キャリッジ３１を現在の停止位置から図２０（ｂ）に示したような所定の速度軌跡で加速させるための操作量を、エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）に同期して複数回設定し、その後、演算タイミング設定レジスタ６０に設定された一定周期の演算タイミング毎に、速度選択部２０からの移動速度（ｐｌａｎｔ＿ｖｅｌｏ）と、目標駆動速度設定レジスタ５７に設定された目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）と、制御パラメータ設定レジスタ５６に設定された制御パラメータとを用いて、移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）にフィードバック制御するための操作量を演算する。
【００７６】
また、フィードバック演算処理部１８は、こうした操作量のフィードバック演算を行いつつ、位置カウンタ１０からのカウント値（ｅｎｃ＿ｃｏｕｎｔ）に基づき得られるキャリッジ３１の位置が減速開始位置設定レジスタ５８に設定された減速開始位置に達したか否かを判定し、キャリッジ３１が減速開始位置に達したと判断すると、その後の演算タイミングでは、キャリッジ３１を目標停止位置設定レジスタ５９に設定された目標停止位置で停止させるのに必要な操作量を演算する。
【００７７】
この結果、駆動用信号生成部１９からは、キャリッジ３１を目標駆動速度まで加速させて定速駆動し、キャリッジ３１が減速開始位置に到達すると、キャリッジ３１を減速させて目標停止位置で停止させるのに必要なＣＲモータ３５の駆動信号（ＰＷＭ信号）が出力されることになり、ＣＲモータ３５は、その駆動信号に従い駆動制御されることになる。
【００７８】
なお、最大ＰＷＭデューティ設定レジスタ６１に設定された最大ＰＷＭデューティは、フィードバック演算処理部１８及び駆動用信号生成部１９に取り込まれ、これら各部でＣＲモータ３５の操作量やその駆動信号（ＰＷＭ信号）を生成する際の上限値として使用される。
【００７９】
以上説明したように、本実施形態のキャリッジ駆動制御装置においては、ＣＲモータ３５の駆動制御時に、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されない時間（つまり周期カウンタ１２による最新のカウンタ値（ｅｎｃ＿ｐｅｒｉｏｄ））が置換判定時間（ｔｈ＿ｒｅｐ）以上経過すると、速度演算部１６による検出速度（ｄｅｔ＿ｖｅｌｏ）に代えて、ＣＰＵ２側から設定される置換速度（ｒｅｐ＿ｖｅｌｏ）を、ＣＲモータ３５の駆動制御に用いるキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定するようにしている。
【００８０】
従って、本実施形態によれば、図４に例示するように、速度演算部１６にて演算された検出速度（ｄｅｔ＿ｖｅｌｏ）を用いてＣＲモータ３５を駆動制御しているときに、その検出速度（ｄｅｔ＿ｖｅｌｏ）が目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）よりも高くなって、ＣＲモータ３５を減速させた際に、ＣＲモータ３５の回転が停止（若しくは略停止）して、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されなくなったとしても、その状態が置換判定時間（ｔｈ＿ｒｅｐ）以上経過すると、制御に用いられるキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）が、検出速度（ｄｅｔ＿ｖｅｌｏ）から、目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）よりも低い置換速度（ｒｅｐ＿ｖｅｌｏ）に置換されることから、その後、ＣＲモータ３５は、駆動力を発生するように制御されることになる。従って、本実施形態によれば、ＣＲモータ３５の駆動制御時に、その回転が一時的に低下したとしても、停止状態に陥るようなことはなく、キャリッジ３１の駆動を再開することができる。
【００８１】
また、本実施形態では、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）に切り替えるか否かを判定する置換判定部２４を、キャリッジ３１が第１置換有効位置（ｒｅｐ＿ｐｏｓ１）と第２置換有効位置（ｒｅｐ＿ｐｏｓ２）との間の領域に位置しているときに限って動作させ、キャリッジ３１がそれ以外の領域に位置しているときには、検出速度（ｄｅｔ＿ｖｅｌｏ）をそのまま移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として選択するようにしていることから、第１置換有効位置（ｒｅｐ＿ｐｏｓ１）と第２置換有効位置（ｒｅｐ＿ｐｏｓ２）とで規定される領域を、キャリッジ３１（延いてはＣＲモータ３５）が負荷変動等によって停止し易い領域に設定しておくことで、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）へと誤って切り替えてしまう確率（換言すれば置換制御の誤制御が発生する確率）を低下させることができる。
【００８２】
なお、このように置換制御を許可する領域は、キャリッジ３１の全移動領域中の一領域に制限する必要はなく、複数の領域を設定できるようにしてもよい。
また、本実施形態では、置換判定時間（ｔｈ＿ｒｅｐ）よりも長い停止判定時間（ｔｈ＿ｓｔｏｐ）を設定し、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されない時間（つまり周期カウンタ１２による最新のカウンタ値（ｅｎｃ＿ｐｅｒｉｏｄ））が停止判定時間（ｔｈ＿ｓｔｏｐ）以上経過すると、キャリッジ３１は完全に停止したと判断して、ＣＲモータ３５の駆動制御を終了するようにされている。
【００８３】
このため、キャリッジ３１を目標停止位置まで駆動できたときや、ＣＲモータ３５やＣＲモータ３５からキャリッジ３１に至る動力伝達系に故障が生じたときに、ＣＲモータ３５を駆動し続ける、といったことも防止できる。
【００８４】
なお、本実施形態では、リニアエンコーダ３９が、本発明のパルス信号発生手段に相当し、エンコーダエッジ検出部８、位置カウンタ１０、周期カウンタ１２、及び速度演算部１６が、本発明の速度演算手段に相当し、フィードバック演算処理部１８、駆動用信号生成部１９、及びＣＲ駆動回路４が、本発明の駆動制御手段に相当し、速度選択部２０、置換有効位置判定部２２、及び置換判定部２４が、本発明の速度置換手段に相当し、停止判定部２６が、本発明の停止判定手段に相当する。
【００８５】
以上、本発明の一実施形態について説明したが、本発明は、上記実施形態に限定されるものではなく、本発明の技術範囲内にて種々の態様を採ることができる。
そこで次に、上記実施形態の一部を変更した複数の変形例について説明する。
（変形例１）
上記実施形態においては、キャリッジ３１の移動速度や位置の検出、ＣＲモータ３５の操作量の演算、ＰＷＭ信号の生成等に、ＡＳＩＣ３を利用するものとして説明したが、ＡＳＩＣ３を構成する上記各部は、例えば、ＰＬＤ（Programmable Logic Device ）を利用して実現してもよく、或いは、ＣＰＵ２若しくはＣＰＵ２とは異なるマイクロコンピュータの一処理として実現するようにしてもよい。
【００８６】
そこで、この変形例１では、上述したＡＳＩＣ３の構成要素の内、フィードバック演算処理部１８、停止判定部２６、位置カウンタ１０、速度演算部１６、置換有効位置判定部２２、置換判定部２４、速度選択部２０としての機能を、マイクロコンピュータを用いて実現する際の処理手順の一例を、図５〜図１０に示すフローチャートに沿って説明する。
【００８７】
図５は、フィードバック演算処理部１８としての機能をマイクロコンピュータにて実現するための操作量生成処理を表すフローチャートである。
この操作量生成処理は、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１０２（Ｓはステップを表す）にて、ＣＲモータ３５の駆動制御用の各種パラメータ（制御ゲイン等の制御パラメータ、目標駆動速度、減速開始位置、目標停止位置等）を初期設定する初期化の処理を実行した後、Ｓ１０４に移行して、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定する。
【００８８】
そして、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、Ｓ１０６に移行して、現在、操作量の演算タイミングであるか否かを判定し、現在、操作量の演算タイミングでなければ、再度Ｓ１０４に移行する。
【００８９】
また、Ｓ１０６にて、現在、操作量の演算タイミングであると判断されると、Ｓ１０８に移行し、Ｓ１０２にて初期設定した各種パラメータと、後述の処理で演算されるキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）、及び、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）に基づき、キャリッジ３１を目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）で駆動するのに必要なＣＲモータ３５の操作量を演算し、Ｓ１０４に移行する。
【００９０】
また、Ｓ１０４にて、停止フラグ（ｓｔｏｐ＿ｏｎ）がリセットされていると判断された際には、キャリッジ３１は完全に停止しており、ＣＲモータ３５を駆動する必要はないと判断して、当該操作量生成処理を終了する。
【００９１】
次に、図６は、停止判定部２６としての機能をマイクロコンピュータにて実現するための停止判定処理を表すフローチャートである。
この停止判定処理は、操作量演算処理と同様、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１１２にて、停止フラグ（ｓｔｏｐ＿ｏｎ）を値０にリセットする初期化の処理を実行した後、Ｓ１１４に移行して、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）と予め設定された停止判定時間（ｔｈ＿ｓｔｏｐ）とを比較する。
【００９２】
そして、このＳ１１４では、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が停止判定時間（ｔｈ＿ｓｔｏｐ）以下であると判断されると、再度このＳ１１４を実行することにより、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が停止判定時間（ｔｈ＿ｓｔｏｐ）を越えるのを監視し、カウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が停止判定時間（ｔｈ＿ｓｔｏｐ）を越えると、キャリッジ３１は完全に停止したと判断して、Ｓ１１６に移行し、停止フラグ（ｓｔｏｐ＿ｏｎ）を値１にセットした後、当該停止判定処理を終了する。
【００９３】
また次に、図７は、位置カウンタ１０及び速度演算部１６としての機能をマイクロコンピュータにて実現するための位置・速度検出処理を表すフローチャートである。
この位置・速度検出処理も、上述した各処理と同様、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１２２にて、検出速度（ｄｅｔ＿ｖｅｌｏ）、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）、及び、キャリッジの移動方向を表す方向パラメータ（ｄｉｒ）に、それぞれ、初期値（ｉｎｉｔ＿ｖｅｌｏ、ｎｏｗ＿ｃｏｕｎｔ、ｎｅｘｔ＿ｄｉｒ）を設定する初期化の処理を実行する。なお、検出速度（ｄｅｔ＿ｖｅｌｏ）の初期値（ｉｎｉｔ＿ｖｅｌｏ）は、キャリッジ３１の停止を表し、カウント値（ｅｎｃ＿ｃｏｕｎｔ）の初期値（ｎｏｗ＿ｃｏｕｎｔ）は、前回ＣＲモータ３５の駆動を停止した際のカウント値を表し、方向パラメータ（ｄｉｒ）の初期値（ｎｅｘｔ＿ｄｉｒ）は、これから駆動すべきキャリッジ３１の駆動方向を表す。
【００９４】
そして、Ｓ１２２の初期化の処理が終了すると、Ｓ１２４に移行して、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、Ｓ１２６に移行し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該位置・速度検出処理を終了する。
【００９５】
次に、Ｓ１２６では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたか否かを判断する。そして、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていなければ、再度Ｓ１２４に移行し、逆に、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていれば、Ｓ１２８に移行して、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）がＳ１２２で初期化に用いた初期値（ｎｏｗ＿ｃｏｕｎｔ）と一致するか否か、つまり、当該処理の起動後、最初に検出されたエッジであるか否かを判定する。
【００９６】
そして、Ｓ１２８にて、カウント値（ｅｎｃ＿ｃｏｕｎｔ）が初期値（ｎｏｗ＿ｃｏｕｎｔ）と一致すると判定された場合には、当該処理の起動後、最初に検出したエッジである為、実際のキャリッジの移動距離は判らず、速度を算出する意味がない為、そのままＳ１３２に移行する。
【００９７】
また逆に、Ｓ１２８にて、カウント値（ｅｎｃ＿ｃｏｕｎｔ）は初期値（ｎｏｗ＿ｃｏｕｎｔ）と一致しないと判定された場合には、Ｓ１３０にて、リニアエンコーダ３９の物理分解能（ｒｅｓｏ）と、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が前回出力されてから今回出力されるまでの間に周期カウンタ１２にてカウントされたカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）とに基づき、所定の演算式「ｄｅｔ＿ｖｅｌｏ＝ｒｅｓｏ／ｅｎｃ＿ｐｅｒｉｏｄ」を用いて、キャリッジ３１の移動速度（検出速度：ｄｅｔ＿ｖｅｌｏ）を算出し、Ｓ１３２に移行する。
【００９８】
次に、Ｓ１３２では、Ｓ１２２にて初期設定され、その後、エンコーダエッジ検出部８にて更新される方向パラメータｄｉｒが、キャリッジ３１の順方向への移動を表す値（ｄｉｒ＿ｆｏｒｗａｒｄ）であるか否かを判定する。
【００９９】
そして、方向パラメータｄｉｒが、キャリッジ３１の順方向への移動を表す値（ｄｉｒ＿ｆｏｒｗａｒｄ）であれば、Ｓ１３４にて、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）を値１だけカウントアップした後、Ｓ１２４に移行し、逆に、方向パラメータｄｉｒが、キャリッジ３１の順方向への移動を表す値（ｄｉｒ＿ｆｏｒｗａｒｄ）でなければ（つまり、キャリッジ３１が逆方向に移動していれば）、Ｓ１３６にて、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）を値１だけカウントダウンした後、Ｓ１２４に移行する。
【０１００】
次に、図８は、置換有効位置判定部２２としての機能をマイクロコンピュータにて実現するための置換有効位置判定処理を表すフローチャートである。
この置換有効位置判定処理は、上述した各処理と同様、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１４２にて、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）を値０にリセットする初期化の処理を実行した後、Ｓ１４４に移行し、キャリッジ３１の位置を表すカウント値（ｅｎｃ＿ｃｏｕｎｔ）が、予め設定された第１置換有効位置（ｒｅｐ＿ｐｏｓ１）と第２置換有効位置（ｒｅｐ＿ｐｏｓ２）との間にあるか否かを判断する。
【０１０１】
そして、カウント値（ｅｎｃ＿ｃｏｕｎｔ）が第１置換有効位置（ｒｅｐ＿ｐｏｓ１）と第２置換有効位置（ｒｅｐ＿ｐｏｓ２）との間にあれば、Ｓ１４６に移行して、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）を値１にセットした後、Ｓ１５０に移行し、逆に、カウント値（ｅｎｃ＿ｃｏｕｎｔ）が第１置換有効位置（ｒｅｐ＿ｐｏｓ１）と第２置換有効位置（ｒｅｐ＿ｐｏｓ２）との間になければ、Ｓ１４８に移行して、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）を値０にリセットした後、Ｓ１５０に移行する。
【０１０２】
次に、Ｓ１５０では、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定する。そして、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、再度Ｓ１４４に移行し、逆に、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該置換有効位置判定処理を終了する。
【０１０３】
また、図９は、置換判定部２４としての機能をマイクロコンピュータにて実現するための置換判定処理を表すフローチャートである。
この置換判定処理は、上述した各処理と同様、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１５２にて、置換フラグ（ｒｅｐ＿ｏｎ）を値０にリセットする初期化の処理を実行した後、Ｓ１５４に移行し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定する。
【０１０４】
そして、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、続くＳ１５６に移行し、逆に、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該置換有効位置判定処理を終了する。
【０１０５】
次に、Ｓ１５６では、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）が値１にセットされているか否かを判定し、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）が値１にセットされていなければ、再度Ｓ１５４に移行し、逆に、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）が値１にセットされていれば、Ｓ１５８に移行して、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が予め設定された置換判定時間（ｔｈ＿ｒｅｐ）よりも大きいか否かを判断する。
【０１０６】
そして、カウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が置換判定時間（ｔｈ＿ｒｅｐ）よりも大きく、エンコーダエッジ検出部８にてエンコーダ信号のエッジが検出されない時間が置換判定時間（ｔｈ＿ｒｅｐ）以上経過している場合には、Ｓ１６０に移行して、置換フラグ（ｒｅｐ＿ｏｎ）を値１にセットした後、再度Ｓ１５４に移行し、逆に、カウント値（ｅｎｃ＿ｐｅｒｉｏｄ）が置換判定時間（ｔｈ＿ｒｅｐ）以下であれば、Ｓ１６２に移行して、置換フラグ（ｒｅｐ＿ｏｎ）を値０にリセットした後、再度Ｓ１５４に移行する。
【０１０７】
次に、図１０は、速度選択部２０としての機能をマイクロコンピュータにて実現するための速度選択処理を表すフローチャートである。
この速度選択処理は、上述した各処理と同様、キャリッジ３１の駆動開始指令が入力された際に起動される処理であり、処理が開始されると、まずＳ１７２にて、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として初期値０を設定する初期化の処理を実行した後、Ｓ１７４に移行し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定する。
【０１０８】
そして、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、続くＳ１７６に移行し、逆に、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該置換有効位置判定処理を終了する。
【０１０９】
次に、Ｓ１７６では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたか否かを判断する。そして、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていれば、Ｓ１７８に移行して、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）に基づき算出された検出速度（ｄｅｔ＿ｖｅｌｏ）を、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定した後、Ｓ１７４に移行し、逆に、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていなければ、Ｓ１８０に移行する。
【０１１０】
このＳ１８０では、置換フラグ（ｒｅｐ＿ｏｎ）は値１にセットされているか否かを判断する。そして、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていれば、Ｓ１８２に移行して、予め設定された置換速度（ｒｅｐ＿ｖｅｌｏ）を、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定した後、Ｓ１７４に移行し、逆に、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていなければ、そのままＳ１７４に移行する。
【０１１１】
以上説明したように、図３に示したフィードバック演算処理部１８、停止判定部２６、位置カウンタ１０、速度演算部１６、置換有効位置判定部２２、置換判定部２４、及び、速度選択部２０としての機能は、図５〜図１０に示したフローチャートに沿ってプログラムを実行することにより、マイクロコンピュータを用いて実現することができる。そして、このようにこれら各部の機能をマイクロコンピュータの一処理として実現するようにしても、上記実施形態と同様の効果を得ることができる。
（変形例２）
上記実施形態では、検出速度（ｄｅｔ＿ｖｅｌｏ）に代えてキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定する置換速度（ｒｅｐ＿ｖｅｌｏ）には、ＣＰＵ２から置換速度設定レジスタ５３に設定された固定値を使用するものとして説明したが、この置換速度（ｒｅｐ＿ｖｅｌｏ）は、目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）若しくは検出速度（ｄｅｔ＿ｖｅｌｏ）に基づき設定するようにしてもよい。
【０１１２】
そして、このためには、例えば、図１１に示す如く、動作モード設定レジスタ群５に、置換速度設定レジスタ５３に代えて、ＣＰＵ２側から置換係数αを設定するための置換係数設定レジスタ６３を設けると共に、ＡＳＩＣ３内に、この置換係数設定レジスタ６３に設定された置換係数αと目標駆動速度設定レジスタ５７に設定された目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）とに基づき、演算式「ｒｅｐ＿ｖｅｌｏ＝α×ｔａｒｇｅｔ＿ｖｅｌｏ」を用いて置換速度（ｒｅｐ＿ｖｅｌｏ）を演算する置換速度設定部２５を設けるようにすればよい。
【０１１３】
なお、このような置換速度設定部２５としての機能をマイクロコンピュータにて実現するには、図１２に例示するように、図１０に示した速度選択処理におけるＳ１８２の処理を、上記演算式に従い目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）に置換係数αを乗じた演算結果（つまり置換速度（ｒｅｐ＿ｖｅｌｏ））をそのままキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定するＳ１８４の処理に変更すればよい。
【０１１４】
また、置換速度（ｒｅｐ＿ｖｅｌｏ）を、検出速度（ｄｅｔ＿ｖｅｌｏ）に基づき設定するようにするには、置換判定部２４若しくはＳ１８４の処理において、演算式「ｒｅｐ＿ｖｅｌｏ＝α×ｄｅｔ＿ｖｅｌｏ」を用いて置換速度（ｒｅｐ＿ｖｅｌｏ）を求めるようにすればよい。
【０１１５】
そして、このように、置換速度（ｒｅｐ＿ｖｅｌｏ）を、目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）若しくは検出速度（ｄｅｔ＿ｖｅｌｏ）に基づき設定するようにしても、上記実施形態と同様の効果を得ることができる。
（変形例３）
上記変形例２において、図１２に示した速度選択処理では、置換判定部２４からの置換フラグ（ｒｅｐ＿ｏｎ）がセット状態にあるときには、Ｓ１８４にて、演算式「ｒｅｐ＿ｖｅｌｏ＝α×ｔａｒｇｅｔ＿ｖｅｌｏ」を用いて求めた置換速度（ｒｅｐ＿ｖｅｌｏ）をキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定するものとして説明したが、こうしたＳ１８４における演算及び置換動作は、置換フラグ（ｒｅｐ＿ｏｎ）が値０から値１に変化した直後に一回だけ行うようにしても、上記実施形態と同様の効果を得ることができる。
【０１１６】
そして、このようにするには、速度選択処理を、図１３に示す手順で実行するようにすればよい。
つまり、この速度選択処理においては、起動直後に実行する初期化の処理（Ｓ１７１）にて、移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を初期値０に設定するだけでなく、置換フラグの前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）として、そのときの置換フラグ（ｒｅｐ＿ｏｎ）の値を設定する。
【０１１７】
そして、Ｓ１８０にて、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていると判断された際には、Ｓ１８８にて、その置換フラグ（ｒｅｐ＿ｏｎ）は前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致しているか否かを判定し、置換フラグ（ｒｅｐ＿ｏｎ）が前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致していなければ（つまり、置換フラグ（ｒｅｐ＿ｏｎ）が値０から値１に変化していれば）、Ｓ１９０にて、上記演算式に従い目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）に置換係数αを乗じた演算結果（つまり置換速度（ｒｅｐ＿ｖｅｌｏ））をキャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定すると共に、置換フラグの前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）として現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定した後、Ｓ１７４に移行する。
【０１１８】
また、Ｓ１８８にて、置換フラグ（ｒｅｐ＿ｏｎ）は前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致していると判定された際には、そのままＳ１７４に移行し、Ｓ１８０にて、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていないと判定された際には、Ｓ１８６に移行して、置換フラグの前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）として現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定した後、Ｓ１７４に移行する。
【０１１９】
なお、図１３に示す速度選択処理は、上記の点以外は、図１０若しくは図１２に示した速度選択処理と同様に実行される。
そして、このように置換フラグ（ｒｅｐ＿ｏｎ）が値０から値１に変化した直後に一回だけ置換速度（ｒｅｐ＿ｖｅｌｏ）を演算して、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として設定するようにすれば、装置の処理負荷を軽減することができる。
（変形例４）
上記実施形態では、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）に切り替えた後、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されると、キャリッジ３１を駆動できたとして、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として検出速度（ｄｅｔ＿ｖｅｌｏ）を設定する通常制御に復帰するものとして説明したが、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されても、キャリッジ３１を正常に駆動できるとは限らないので、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）に切り替えた後、エンコーダエッジ検出部８から複数回エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたときに、キャリッジ３１を正常に駆動できるようになったと判断して、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に検出速度（ｄｅｔ＿ｖｅｌｏ）を設定する通常制御に復帰するようにしてもよい。
【０１２０】
そして、このような制御を行うには、速度選択処理を、図１４に示す手順で実行するようにすればよい。
すなわち、図１４に示す速度選択処理では、Ｓ１８０にて、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていると判断された際には、Ｓ１９６にて、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）に予め設定された初期値（ｒｅｐ＿ｃｎｔ）を設定した後、Ｓ１８２に移行する。
【０１２１】
また、Ｓ１７６にて、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたと判断されると、Ｓ１９２に移行して、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）が値０になっているか否かを判定する。
【０１２２】
そして、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）が値０になっていなければ、Ｓ１９４にて、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）を値１だけダウンカウントした後、Ｓ１８２に移行し、逆に、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）が値０になっていれば、Ｓ１７８に移行する。
【０１２３】
なお、図１４に示す速度選択処理は、上記の点以外は、図１０に示した速度選択処理と同様に実行される。
そして、速度選択処理を図１４に示す手順で実行するようにすれば、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）の初期値（ｒｅｐ＿ｃｎｔ）として１以上の整数値を設定しておくことで、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）に切り替えてから、エンコーダエッジ検出部８から複数回エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力された後に、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に検出速度（ｄｅｔ＿ｖｅｌｏ）を設定する通常制御に復帰させることができるようになり、キャリッジ３１の駆動を確実に再開することが可能となる。
【０１２４】
なお、図１４に示す速度選択処理では、復帰後エッジカウント値（ｒｅｐ＿ａｃｔ）の初期値（ｒｅｐ＿ｃｎｔ）に値０を設定すれば、上記実施形態と同様の制御を実行できる。
（変形例５）
上記実施形態では、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）として置換速度（ｒｅｐ＿ｖｅｌｏ）を設定した際、その置換速度（ｒｅｐ＿ｖｅｌｏ）は、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されるまでの間、変化しないものとして説明したが、この置換速度（ｒｅｐ＿ｖｅｌｏ）は、段階的に変化（減少）させるようにしてもよい。
【０１２５】
そして、このためには、エンコーダエッジ検出部８からのエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）の出力停止期間中に、置換判定時間（ｔｈ＿ｒｅｐ）の経過を複数回繰り返し判定して、その判定の度に、置換速度（ｒｅｐ＿ｖｅｌｏ）を変更するようにすればよいことから、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）とは別に、置換判定時間（ｔｈ＿ｒｅｐ）を繰り返し計時するための置換判定時間計時用カウンタを用意し、そのカウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）が置換判定時間（ｔｈ＿ｒｅｐ）に達する度に、置換フラグ（ｒｅｐ＿ｏｎ）を値１ずつカウントアップして、その置換フラグ（ｒｅｐ＿ｏｎ）の値（１，２，…，ｎ）に応じて置換速度（ｒｅｐ＿ｖｅｌｏ）を設定するようにすればよい。
【０１２６】
具体的には、例えば、上記置換判定時間計時用カウンタとしての置換判定時間カウント処理を図１５に示すフローチャートに沿って実行し、置換判定部２４としての置換判定処理を図１６に示すフローチャートに沿って実行し、更に、速度選択部２０としての速度選択処理を図１７又は図１８に示すフローチャートに沿って実行するようにすればよい。
【０１２７】
以下、これら各フローチャートについて説明する。
まず、図１５に示す置換判定時間カウント処理では、Ｓ２０２にて、置換判定時間計時用のカウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）を初期値０に設定すると共に、置換フラグ（ｒｅｐ＿ｏｎ）の更新判定用パラメータ（ｔｅｍｐ＿ｒｅｐ＿ｏｎ）に、現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定する、初期化の処理を実行する。
【０１２８】
そして、続くＳ２０４では、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、続くＳ２０６に移行し、逆に、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該置換判定時間カウント処理を終了する。
【０１２９】
次に、Ｓ２０６では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたか否かを判断する。そして、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていれば、Ｓ２１２に移行して、Ｓ２０２にて実行される初期化の処理と同様、置換判定時間計時用のカウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）を初期値０に設定すると共に、置換フラグ（ｒｅｐ＿ｏｎ）の更新判定用パラメータ（ｔｅｍｐ＿ｒｅｐ＿ｏｎ）に、現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定し、再度Ｓ２０４に移行する。
【０１３０】
一方、Ｓ２０６にて、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていないと判断されると、Ｓ２０８に移行して、置換フラグ（ｒｅｐ＿ｏｎ）と更新判定用パラメータ（ｔｅｍｐ＿ｒｅｐ＿ｏｎ）とが一致しているか否かを判定する。
【０１３１】
そして、置換フラグ（ｒｅｐ＿ｏｎ）と更新判定用パラメータ（ｔｅｍｐ＿ｒｅｐ＿ｏｎ）とが一致していなければ、上述したＳ２１２の処理を実行した後、Ｓ２０４に移行する。また逆に、置換フラグ（ｒｅｐ＿ｏｎ）と更新判定用パラメータ（ｔｅｍｐ＿ｒｅｐ＿ｏｎ）とが一致していれば、Ｓ２１０に移行して、置換判定時間計時用のカウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）を値１だけカウントアップした後、Ｓ２０４に移行する。
【０１３２】
次に、図１６に示す置換判定処理では、図９に示した置換判定処理と同様、Ｓ１５２、Ｓ１５４、Ｓ１５６の処理が実行される。そして、このＳ１５６にて、置換有効フラグ（ｒｅｐ＿ｅｎａｂｌｅ）が値１にセットされていると判断されると、Ｓ１６４に移行して、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたか否かを判断し、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていれば、Ｓ１６２に移行して、置換フラグ（ｒｅｐ＿ｏｎ）を値０にリセットした後、Ｓ１５４に移行する。
【０１３３】
一方、Ｓ１６４にて、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていない（つまり、キャリッジ３１は停止中である）と判断されると、Ｓ１６６に移行して、置換判定時間計時用のカウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）が置換判定時間（ｔｈ＿ｒｅｐ）よりも大きいか否かを判断する。
【０１３４】
そして、カウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）が置換判定時間（ｔｈ＿ｒｅｐ）よりも大きい場合には、置換フラグ（ｒｅｐ＿ｏｎ）に値１を加えて、置換フラグ（ｒｅｐ＿ｏｎ）を更新した後、Ｓ１５４に移行し、逆に、カウント値（ｒｅｐ＿ｃｏｕｎｔｅｒ）が置換判定時間（ｔｈ＿ｒｅｐ）以下であれば、そのままＳ１５４に移行する。
【０１３５】
つまり、図１５及び図１６に示す置換判定時間カウント処理及び置換判定処理では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されなくなってからの経過時間を、置換判定時間（ｔｈ＿ｒｅｐ）を上限として繰り返し計時し、その計時時間が置換判定時間（ｔｈ＿ｒｅｐ）に達する度に、置換フラグ（ｒｅｐ＿ｏｎ）を値１ずつ更新（カウントアップ）するようにされている。
【０１３６】
次に図１７に示す速度選択処理は、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を、上記のように更新される置換フラグ（ｒｅｐ＿ｏｎ）の値（０，１，２，…，ｎ）に応じて、検出速度（ｄｅｔ＿ｖｅｌｏ）若しくは複数の置換速度（ｒｅｐ＿ｖｅｌｏ＿１，ｒｅｐ＿ｖｅｌｏ＿２，…，ｒｅｐ＿ｖｅｌｏ＿ｎ）の何れかに設定するための処理である。
【０１３７】
なお、この複数の置換速度（ｒｅｐ＿ｖｅｌｏ＿１，ｒｅｐ＿ｖｅｌｏ＿２，…，ｒｅｐ＿ｖｅｌｏ＿ｎ）は、置換フラグ（ｒｅｐ＿ｏｎ）の値が大きいときに設定される置換速度程、低速になるよう設定されている。
【０１３８】
図１７に示す如く、この速度選択処理では、図１０に示した速度選択処理と同様に、Ｓ１７２、Ｓ１７４、Ｓ１７６、Ｓ１７８の処理が順次実行される。そして、Ｓ１７６にて、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていないと判断されると、Ｓ１８０に移行して、置換フラグ（ｒｅｐ＿ｏｎ）は値１にセットされているか否かを判断し、置換フラグ（ｒｅｐ＿ｏｎ）が値１にセットされていれば、Ｓ１８４に移行して、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に、予め設定された第１の置換速度（ｒｅｐ＿ｖｅｌｏ＿１）を設定した後、Ｓ１７４に移行する。
【０１３９】
また、Ｓ１８０にて、置換フラグ（ｒｅｐ＿ｏｎ）は値１にセットされていないと判断された場合には、Ｓ２２２に移行して、置換フラグ（ｒｅｐ＿ｏｎ）は値２にセットされているか否かを判断し、置換フラグ（ｒｅｐ＿ｏｎ）が値２にセットされていれば、Ｓ２２４に移行して、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に、予め設定された第２の置換速度（ｒｅｐ＿ｖｅｌｏ＿２）を設定した後、Ｓ１７４に移行する。
【０１４０】
そして、Ｓ２２２にて、置換フラグ（ｒｅｐ＿ｏｎ）は値２にセットされていないと判断された場合には、同様の判定処理を値ｎまで順次行い、各判定処理（Ｓ２２６）にて、置換フラグ（ｒｅｐ＿ｏｎ）は値ｎにセットされていると判断された場合には、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に、置換フラグ（ｒｅｐ＿ｏｎ）の値に対応して予め設定された第ｎの置換速度（ｒｅｐ＿ｖｅｌｏ＿ｎ）を設定した後、Ｓ１７４に移行し、最終的に、置換フラグ（ｒｅｐ＿ｏｎ）は値ｎにセットされていないと判断された際（つまり、置換フラグｒｅｐ＿ｏｎ＝０の場合）には、そのままＳ１７４に移行する。
【０１４１】
従って、この速度選択処理では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されない時間が置換判定時間（ｔｈ＿ｒｅｐ）以上経過して、移動速度（ｐｌａｎｔ＿ｖｅｌｏ）に置換速度（ｒｅｐ＿ｖｅｌｏ＿１）を設定すると、その後、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力される迄の間、置換判定時間（ｔｈ＿ｒｅｐ）が経過する度に、移動速度（ｐｌａｎｔ＿ｖｅｌｏ）が、現在よりも更に低い置換速度（ｒｅｐ＿ｖｅｌｏ＿２，ｒｅｐ＿ｖｅｌｏ＿３，…，ｒｅｐ＿ｖｅｌｏ＿ｎ）へと順次切り換えられることになる。
【０１４２】
よって、この変形例５によれば、キャリッジ３１の停止が検出されてからエンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されるようになるまで、ＣＲモータ３５の駆動力を段階的に増加させることができるようになり、ＣＲモータ３５の回転復帰時に生じるトルク変動を抑制することができる。
【０１４３】
一方、図１８に示す速度選択処理は、図１３に示した速度選択処理において、Ｓ１７６にて、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていないと判定された際に実行されるＳ１８０以降の処理を変更したものである。
【０１４４】
すなわち、この速度選択処理では、Ｓ１７６にて否定判定されると、Ｓ２３２に移行して、置換フラグ（ｒｅｐ＿ｏｎ）が値０にリセットされているか否かを判定し、置換フラグ（ｒｅｐ＿ｏｎ）が値０にリセットされている場合には、Ｓ２３４に移行して、置換フラグの前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）として現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定した後、Ｓ１７４に移行する。
【０１４５】
また、Ｓ２３２で、置換フラグ（ｒｅｐ＿ｏｎ）が値０にリセットされていないと判断された場合（換言すれば、置換フラグｒｅｐ＿ｏｎが値１〜値ｎの何れかである場合）には、Ｓ２３６に移行して、置換フラグ（ｒｅｐ＿ｏｎ）は前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致しているか否かを判定する。
【０１４６】
そして、置換フラグ（ｒｅｐ＿ｏｎ）が前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致していなければ（つまり、置換フラグ（ｒｅｐ＿ｏｎ）が更新されていれば）、Ｓ２３８に移行して、目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）に、置換フラグ（ｒｅｐ＿ｏｎ）の値に応じて設定される置換係数αを乗じることで、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を演算すると共に、置換フラグの前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）として現在の置換フラグ（ｒｅｐ＿ｏｎ）の値を設定し、Ｓ１７４に移行し、逆に、置換フラグ（ｒｅｐ＿ｏｎ）が前回値（ｌａｓｔ＿ｒｅｐ＿ｏｎ）と一致していれば、そのままＳ１７４に移行する。
【０１４７】
つまり、図１８に示した速度選択処理では、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を目標駆動速度（ｔａｒｇｅｔ＿ｖｅｌｏ）に基づき算出する際に用いる置換係数αを、置換フラグ（ｒｅｐ＿ｏｎ）の値に応じて異なる値に設定することにより、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）、換言すれば置換速度（ｒｅｐ＿ｖｅｌｏ）を段階的に変化させるようにしている。そして、速度選択処理をこのように実行するようにしても、上記と同様の効果を得ることができる。
（変形例６）
上記実施形態では、置換判定時間（ｔｈ＿ｒｅｐ）には、ＣＰＵ２から設定された固定値を使用するものとして説明したが、この置換判定時間（ｔｈ＿ｒｅｐ）は、周期カウンタ１２によるカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）、換言すれば、最新のエッジ周期に基づき算出するようにしてもよい。
【０１４８】
そして、このように置換判定時間を算出する際には、図１９に示す手順で置換判定時間算出処理を実行するようにすればよい。なお、図１９に示す置換判定時間算出処理は、周期カウンタ１２としての機能を含む処理である。
【０１４９】
図１９に示す如く、この置換判定時間算出処理では、まず、Ｓ２４２にて、エンコーダエッジ検出部８から最新のエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されてからの経過時間を表すカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）に初期値０を設定すると共に、エンコーダエッジ検出部８から前回エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されて最新のエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されるまでのエッジ周期を表すカウント値（ｐｒｅ＿ｐｅｒｉｏｄ）に予め設定された最大値（ｍａｘ  ｖａｌｕｅ）を設定する、初期化の処理を実行する。
【０１５０】
そして、続くＳ２４４では、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされているか否かを判定し、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていなければ、続くＳ２４６に移行し、逆に、停止フラグ（ｓｔｏｐ＿ｏｎ）が値１にセットされていれば、ＣＲモータ３５の駆動制御は完了したと判断して、当該置換判定時間算出処理を終了する。
【０１５１】
次に、Ｓ２４６では、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されたか否かを判断する。そして、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていなければ、Ｓ２４８に移行し、エッジ検出後の経過時間を表すカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）を値１だけカウントアップした後、Ｓ２４４に移行し、逆に、エンコーダエッジ検出部８からエッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されていれば、Ｓ２５０に移行する。
【０１５２】
そして、Ｓ２５０では、最新のエッジ周期を表すカウント値（ｐｒｅ＿ｐｅｒｉｏｄ）に、前回エッジ検出信号（ｄｅｔ＿ｅｄｇｅ）が出力されてからの経過時間を表すカウント値（ｅｎｃ＿ｐｅｒｉｏｄ）を設定すると共に、最新のエッジ周期を表すカウント値（ｐｒｅ＿ｐｅｒｉｏｄ）に予め設定された係数β（但し、β＞１）を乗じることで、置換判定時間（ｔｈ＿ｒｅｐ）を算出し、Ｓ２５２に移行する。
【０１５３】
Ｓ２５２では、Ｓ２５０にて算出した置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）以上であるか否かを判定し、置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）以上であれば、停止判定時間（ｔｈ＿ｓｔｏｐ）に値１よりも小さい設定値（例えば、０．８）を乗じることで、置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）よりも短くなるよう、置換判定時間（ｔｈ＿ｒｅｐ）を算出し直し、Ｓ２５６に移行する。
【０１５４】
また、置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）以上でなければ、そのままＳ２５６に移行する。そして、Ｓ２５６では、カウント値（ｅｎｃ＿ｐｅｒｉｏｄ）に初期値０を設定し、再度Ｓ２４４に移行する。
【０１５５】
このように、図１９に示す置換判定時間算出処理では、最新のエッジ周期を表すカウント値（ｐｒｅ＿ｐｅｒｉｏｄ）に係数β（但し、β＞１）を乗じることで、置換判定時間（ｔｈ＿ｒｅｐ）を算出し、更に、その算出した置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）以上になれば、置換判定時間（ｔｈ＿ｒｅｐ）が停止判定時間（ｔｈ＿ｓｔｏｐ）よりも短くなるよう、停止判定時間（ｔｈ＿ｓｔｏｐ）に基づき、置換判定時間（ｔｈ＿ｒｅｐ）を算出し直すようにされていることから、キャリッジ３１の停止（換言すれば、キャリッジ３１の移動速度（ｐｌａｎｔ＿ｖｅｌｏ）を検出速度（ｄｅｔ＿ｖｅｌｏ）から置換速度（ｒｅｐ＿ｖｅｌｏ）に切り換えるか否か）を速やかにしかも高精度に判定することができるようになる。
【０１５６】
なお、図１９に示した置換判定時間算出処理は、本発明の置換判定時間設定手段に相当する。
また、図１９に示した置換判定時間算出処理では、置換判定時間（ｔｈ＿ｒｅｐ）は、停止判定時間（ｔｈ＿ｓｔｏｐ）を上限として、単に最新のエッジ周期を表すカウント値（ｐｒｅ＿ｐｅｒｉｏｄ）に基づき設定するものとして説明したが、変形例５で説明したように、置換速度（ｒｅｐ＿ｖｅｌｏ）を段階的に変化させる場合には、それぞれの置換判定時間の累積値が停止判定時間未満となるようにすればよい。
【０１５７】
つまり、移動速度（ｐｌａｎｔ＿ｖｅｌｏ）の置換動作を段階的に行う際には、１回目の置換判定時間（ｔｈ＿ｒｅｐ）は停止判定時間（ｔｈ＿ｓｔｏｐ）以下となり、２回目の置換判定時間（ｔｈ＿ｒｅｐ）は１回目の置換判定時間（ｔｈ＿ｒｅｐ）との合計が停止判定時間（ｔｈ＿ｓｔｏｐ）以下となり、３回目の置換判定時間（ｔｈ＿ｒｅｐ）は１回目及び２回目の置換判定時間（ｔｈ＿ｒｅｐ）との合計が停止判定時間（ｔｈ＿ｓｔｏｐ）未満となるように設定すればよい。
【０１５８】
また、例えば、これらの時間が停止判定時間（ｔｈ＿ｓｔｏｐ）以上になった場合には、１回目の置換判定時間（ｔｈ＿ｒｅｐ）は、演算式「ｔｈ＿ｓｔｏｐ×０．８」を用いて算出し直し、２回目の置換判定時間（ｔｈ＿ｒｅｐ）は、演算式「（ｔｈ＿ｓｔｏｐ−ｔｈ＿ｒｅｐ）×０．８」を用いて算出し直し、３回目の停止判定時間（ｔｈ＿ｒｅｐ）は、演算式「（ｔｈ＿ｓｔｏｐ−ｔｈ＿ｒｅｐ×２）×０．８」を用いて算出し直すようにすればよい。
【０１５９】
なお、上記実施形態及び変形例では、本発明を、プリンタにおいてキャリッジ３１を移動させるのに使用されるＣＲモータ３５の駆動装置に適用した場合について説明したが、本発明は、エンコーダを用いてモータを含む駆動対象の駆動速度を検出して、その駆動速度が目標速度となるようにモータをフィードバック制御する装置であれば、適用することができる。
【０１６０】
また、上記実施形態及び変形例では、エンコーダは、リニアエンコーダからなり、図２に示した２相のパルス信号を発生するものとして説明したが、エンコーダはロータリエンコーダであってもよく、また、エンコーダからの出力パルスは１相であってもよい。
【図面の簡単な説明】
【０１６１】
【図１】実施形態のプリンタを構成しているキャリッジ駆動機構の概略構成を表す説明図である。
【図２】エンコーダ信号及びこの信号の処理回路の動作を説明する説明図である。
【図３】キャリッジを駆動する制御装置（ＡＳＩＣ）の構成を表すブロック図である。
【図４】実施形態の制御装置の動作を説明する説明図である。
【図５】変形例１の操作量演算処理を表すフローチャートである。
【図６】変形例１の停止判定処理を表すフローチャートである。
【図７】変形例１の位置・速度検出処理を表すフローチャートである。
【図８】変形例１の置換有効位置判定処理を表すフローチャートである。
【図９】変形例１の置換判定処理を表すフローチャートである。
【図１０】変形例１の速度選択処理を表すフローチャートである。
【図１１】変形例２の制御装置（ＡＳＩＣ）の構成を表すブロック図である。
【図１２】変形例２の速度選択処理を表すフローチャートである。
【図１３】変形例３の速度選択処理を表すフローチャートである。
【図１４】変形例４の速度選択処理を表すフローチャートである。
【図１５】変形例５の置換判定時間カウント処理を表すフローチャートである。
【図１６】変形例５の置換判定処理を表すフローチャートである。
【図１７】変形例５の速度選択処理を表すフローチャートである。
【図１８】変形例５の速度選択処理の他の例を表すフローチャートである。
【図１９】変形例６の置換判定時間算出処理を表すフローチャートである。
【図２０】従来装置の問題点を説明する説明図である。
【符号の説明】
【０１６２】
２…ＣＰＵ、４…ＣＲ駆動回路、５…動作モード設定レジスタ群、６…クロック生成部、８…エンコーダエッジ検出部、１０…位置カウンタ、１２…周期カウンタ、１６…速度演算部、１８…フィードバック演算処理部、１９…駆動用信号生成部、２０…速度選択部、２２…置換有効位置判定部、２４…置換判定部、２５…置換速度設定部、２６…停止判定部、２８…各種信号処理部、３０…記録ヘッド、３１…キャリッジ、３３…記録用紙、３４…ガイド軸、３５…ＣＲモータ、３６…プーリ、３７…無端ベルト、３８…タイミングスリット、３９…リニアエンコーダ、５０…起動設定レジスタ、５１…第１置換有効位置設定レジスタ、５２…第２置換有効位置設定レジスタ、５３…置換速度設定レジスタ、５４…置換判定時間設定レジスタ、５５…停止判定時間設定レジスタ、５６…制御パラメータ設定レジスタ、５７…目標駆動速度設定レジスタ、５８…減速開始位置設定レジスタ、５９…目標停止位置設定レジスタ、６０…演算タイミング設定レジスタ、６１…最大ＰＷＭデューティ設定レジスタ、６３…置換係数設定レジスタ。
【図１】
2006158131.tif 000003
【図２】
2006158131.tif 000004
【図３】
2006158131.tif 000005
【図４】
2006158131.tif 000006
【図５】
2006158131.tif 000007
【図６】
2006158131.tif 000008
【図７】
2006158131.tif 000009
【図８】
2006158131.tif 000010
【図９】
2006158131.tif 000011
【図１０】
2006158131.tif 000012
【図１１】
2006158131.tif 000013
【図１２】
2006158131.tif 000014
【図１３】
2006158131.tif 000015
【図１４】
2006158131.tif 000016
【図１５】
2006158131.tif 000017
【図１６】
2006158131.tif 000018
【図１７】
2006158131.tif 000019
【図１８】
2006158131.tif 000020
【図１９】
2006158131.tif 000021
【図２０】
2006158131.tif 000022