以下、本発明に従うシリアルプリンタの一実施形態について説明する。
図2は、この実施形態にかかるシリアルプリンタ(例えば、インクジェットプリンタ)の機械的構成を示す要部斜視図を示す。
図2に示すように、プリンタ1はプリンタ本体2を備え、この本体ケース2にキャリッジ軸8が固定され、このキャリッジ軸8にキャリッジ3が移動可能な状態で組み付けられている。キャリッジ3は無端の牽引ベルト6と結合され、牽引ベルト6は駆動プーリ4と従動プーリ5間に張設され、駆動プーリ4にはキャリッジモータ7が結合される。キャリッジモータ7が駆動プーリ4を介して牽引ベルト6を移動させることで、キャリッジ3がキャリッジ軸8に沿って主走査方向(図4、5に示すX軸方向)に往復移動する。本体ケース2の底部には紙送りモータ9が固定され、この紙送りモータ9は、紙送りローラ25(図3参照)と排紙ローラ26(図3参照)に結合される。紙送りモータ9が紙送りローラ25(図3参照)と排紙ローラ26(図3参照)を駆動することによって記録用紙10が副走査方向に送られる。
キャリッジ3の下部には印刷ヘッド11が記録用紙10と対向するように搭載され、キャリッジ3の上部には印刷ヘッド11にインクを供給するインクカートリッジ12(例えばブラックインクと複数のカラーインクのカートリッジ)が着脱可能に取り付けられている。印刷ヘッド11は複数のインクジェットノズル13(図3参照)を有し、印刷動作では、所定の空間解像度に対応したタイミングでインクがインクジェットノズル13から記録用紙10に向かって吐出されるように、印刷ヘッド11が駆動される。
キャリッジ3の所定のホームポジション(例えば図2では右側端部)には、印刷ヘッド11のノズル13を外気から遮断するためのキャップ14が配設されている。キャリッジ3がホームポジション(HP)に位置すると、キャップ14が自動的に印刷ヘッド11にキャッピングされるようになっている。
キャップ14には、印刷ヘッド11のクリーニング動作においてキャップ14の内部空間を負圧にするための吸引ポンプ15がポンプチューブ15aを介して接続されている。吸引ポンプ15はギヤ機構(図示省略)を介してポンプモータ16(図3参照)に接続され、このポンプモータ16により駆動される。また、印刷ヘッド11の印字領域とホームポジションの間にはゴム等の弾性板からなるワイピング部材17が配設され、印刷ヘッド11が印字領域に向かうときにワイピング部材17によって印刷ヘッド11の表面がワイピング処理される。
プリンタ1は、キャリッジ3の速度、移動方向及び位置等を検出するためのリニアエンコーダ18を備えている。リニアエンコーダ18は半透明樹脂製の被検出用テープ19(以下、単にテープと称す)と光学センサ20(図2参照)とからなり、テープ19がプリンタ本体2の側壁に、キャリッジ3の移動経路と平行に取り付けられている。光学センサ20がキャリッジ3の背面の、テープ19表面をセンスする位置に取り付けられ、キャリッジ3と一緒にテープ19に沿って移動する。
テープ19表面には、キャリッジ3の移動方向に沿って一定ピッチで、例えば1/180(inch)(=2.54/180(cm))のピッチで、多数のスリット21が形成されている。光学センサ20はキャリッジ3とともに移動した際にテープ19上のスリット21を検出して、キャリッジ3の速度、移動方向及び位置を測定するために使用される90度位相がシフトした2種類のパルス信号を出力する。
図3は、プリンタ1の内部に搭載される制御装置のハードウェア構成を示す。
図3に示すように、プリンタ1は制御装置24を備え、制御装置24はケーブル22を介して、印刷データやヘッドクリーニング指令などのソースであるホスト装置23と接続される。制御装置24は、ホスト装置23から受信した印刷データ又は指令に基づいて、キャリッジモータ7、紙送りモータ9、ポンプモータ16及び印刷ヘッド11を駆動し制御する。
制御装置24はCPU27、ASIC28、PROM29、RAM30、EEPROM31、インターフェース(I/F)32を備える。
PROM29には、CPU27により実行される制御プログラムや、主走査プロセスの加速フェーズ用及び減速フェーズ用の目標速度のセットを定義した複数の速度値テーブルや、それら複数の速度値テーブルにそれぞれ対応した複数の助走距離Lauxなどが記憶されている。ここで、複数の速度値テーブルとは、予め設定されている定速フェーズ用の複数の異なる目標速度にそれぞれ対応したものである。例えば、定速フェーズ用目標速度が所定の低速値である場合の速度値テーブル(これは例えば高画質又は高解像度の印刷に使用される)、それが所定の中速値である場合の速度値テーブル(これは例えば通常画質又は通常解像度の印刷に使用される)、及びそれが所定の高速値である場合の速度値テーブル(これは例えば高速又は低解像度の印刷に使用される)などがPROM29に記憶されており、いずれの速度テーブルも、それぞれの定速フェーズ用目標速度に適した加速フェーズ用及び減速フェーズ用の目標速度のセットを定義している。また、複数の助走距離Lauxとは、上述した定速フェーズ用の複数の目標速度にそれぞれ対応したものである。定速フェーズ用の目標速度が高いほど、助走距離Lauxは長くなるように設定されている。CPU27による主走査プロセスの制御において、印刷モード(例えば、高速印刷か通常印刷か高画質印刷かという印刷品位又は印刷速度、或いは印刷解像度などのレベル)やその他の条件に応じて、上述した定速フェーズ用の複数の目標速度の中から適切な一つの目標速度がよって選択され、そして、その選択された定速フェーズ用の目標速度に対応した速度値テーブル及び助走距離Lauxが選択されることになる。
PROM29には、さらに、ファーストドット調整によって設定されたファーストドット調整値Afstd、及び双方向印刷調整によって設定された双方方向印刷調整値Abidが記憶されている。因みに、ファーストドット調整は例えばプリンタのメーカ側で組み立て後出荷前に行われ、また、双方向印刷調整はプリンタがユーザに渡った後にユーザの手で又は自動的に随時に行われる。
CPU27は、電源スイッチ39に接続され、CPU27は、電源スイッチ39のターンオン信号を入力したときプリンタ1内の各部を起動させる。CPU27はPROM29に記憶された制御プログラムに基づき、RAM30を作業領域として用いて、プリンタ1内の各部を制御するための情報処理を行い、その結果として各部に制御信号を送る。CPU27は、I/F32およびASIC28を介してホスト装置23との間で印刷データや各種指令のやり取りを行う。また、CPU27はI/F32およびASIC28を介してホスト装置23から入力した印刷データを処理し、ASIC28を制御して、キャリッジモータ7、紙送りモータ9及び印刷ヘッド11の駆動などの印刷のための各種動作を実行させる。
ASIC28は、ポンプモータドライバ33、紙送りモータドライバ34、キャリッジモータドライバ35及びヘッドドライバ36に接続される。ポンプモータドライバ33にはポンプモータ16が接続され、紙送りモータドライバ34には紙送りモータ9が接続され、キャリッジモータドライバ35にはキャリッジモータ7が接続され、また、ヘッドドライバ36には印刷ヘッド11(特に、インクジェットノズル13からインクを押し出す例えばピエゾ素子を用いたアクチュエータ37)に接続される。ASIC28は、CPU27からの制御信号に基づき、ポンプモータドライバ33、紙送りモータドライバ34、キャリッジモータドライバ35及びヘッドドライバ36を制御し、その制御の下で、ポンプモータドライバ33、紙送りモータドライバ34、キャリッジモータドライバ35及びヘッドドライバ36がそれぞれ、ポンプモータ16、紙送りモータ9、キャリッジモータ7及び印刷ヘッド11を駆動する。
CPU27は、リニアエンコーダ18の光学センサ20と信号線38を介して接続され、その光学センサ20から、上述した2種類のパルス信号を入力する。そして、CPU27は、入力されたパルス信号の周期に基づきキャリッジ3の走行速度を算出する。また、CPU27は、入力された2種類のパルス信号のレベルを比較する(位相シフトの方向を把握する)ことで、キャリッジ3の移動方向を検出し、また、パルス信号の立ち上がり又は立ち下がりをカウントしてキャリッジ3の位置を検出する。そして、CPU27は、キャリッジの走行を制御する処理におけて、検出されキャリッジ3の走行速度、移動方向及び位置を使用する。なお、リニアエンコーダ18の光学センサ20からのパルス信号(以下、エンコーダパルスという)の空間分解能は例えば1/180(inch)(=2.54/180(cm))である。CPU27は、このエンコーダパルスのカウント値(以下、ステップ数という)に基づいてキャリッジの位置を制御する。
以下では、上述した構成の下でCPU27とASIC28が行う制御動作、とりわけ、ホスト装置23から受信された印刷データに基づいて印刷を実行する場合における各回の主走査プロセスの制御動作に関して説明する。
まず、CPU27とASIC28による各回の主走査プロセスの制御動作の概要を説明する。
CPU27は、各回の主走査プロセスに関して、印刷データに基づいて、その主走査プロセスにおいて印刷ヘッド11を駆動するためのヘッド駆動データを生成し、そのヘッド駆動データをRAM30に格納する。また、CPU27は、印刷データに基づいて、その主走査プロセスにおける目標の印刷範囲を決定し、その目標の印刷範囲の左端のドット位置と右端のドット位置を決定する。そして、CPU27は、その左端トドット位置と右端ドット位置、並びに印刷データにより指定された印刷モードなどに応じて、定速フェーズ用の目標速度としてPROM29に記憶されている複数の目標速度の中から、適切な一つを選択する。そして、CPU12は、選択した定速フェーズ用の目標速度に対応した速度値テーブル40をPROM29から読んで、これをRAM30に格納する。さらに、CPU27は、定速フェーズ用の目標速度に応じた助走距離Laux、並びにファーストドット調整値Afstd及び双方向印刷調整値AbidをPROM29から読み、これらのデータと上述した目標の印刷範囲の左端ドット位置と右端ドット位置に基づいて、後に詳述する方法で、ファーストドット位置(最初のドット形成動作を行うべきキャリッジ位置)、ラストドット位置(最後のドット形成動作を行うべきキャリッジ位置)及びキャリッジの走行開始位置を設定し、そして、その走行開始位置をRAM30に格納する。
また、キャリッジ3が移動している間、CPU27は、リニアエンコーダ18の光学センサ20からのパルス信号に基づいて、キャリッジ3の現在位置や現在速度や走行方向を実質的に実時間で計算し、キャリッジの現在位置や現在速度や走行方向を示すデータをRAM30に格納する。
ASIC28は、RAM30から走行開始位置及び速度値テーブル40や現在位置や現在速度や走行方向を読み、そして、キャリッジドライバ35を介してキャリッジモータ7の駆動を制御することにより、設定された走行開始位置からキャリッジ3の走行を開始し、速度値テーブル40内の加速フェーズ用の標準目標速度セットに従って加速フェーズを実行する。場合によっては、ASIC28は、速度値テーブル40内の加速フェーズ用の標準目標速度セットをそのまま用いるのではなく、それを修正して、助走距離Lauxよりも若干短い助走でキャリッジを高速安定走行状態に到達させるような修正目標速度セットを作成し、その修正目標速度セットに基づいて加速フェーズを実行することもできる。また、場合によっては、ASIC28は、キャリッジ3の走行を開始する前に、ロジカルシークを行って、キャリッジの現在位置を次の主走査プロセスの走行開始位置に修正することもある。ASIC28は、加速フェーズが終わると、定速フェーズの制御を実行する。このキャリッジ走行制御と並行して、ASIC28は、RAM30からファーストドット位置、ラスとドット位置及びヘッド駆動データを読み、そして、ヘッドドライバ36を介して印刷ヘッド11を制御することにより、ファーストドット位置からラストドット位置までの間インクドット形成動作を行わせる。
CPU27は、上述した定速フェーズが終了するより前に、今回の主走査プロセスの印刷範囲や次回の主走査プロセスの印刷範囲などに基づいて、後に詳述するような方法で、キャリッジの停止位置を設定し、この停止位置をRAM30に格納する。ASIC28は、RAM30から停止位置を読み、停止位置でキャリッジ3を停止するように減速フェーズの開始位置を決定し、そして、減速フェーズ開始位置から速度値テーブル40の減速フェーズ用の目標速度セットを用いてキャリッジドライバ35を介してキャリッジモータ7の駆動を制御することにより、減速フェーズを実行し、最終的にキャリッジ3を停止位置で停止させる。
以下では、CPU27とASIC28による各回(N回目)の主走査プロセスの制御動作、とりわけ、走行開始位置と停止位置(つまり、キャリッジ走行範囲)を決定するための処理をより詳細に説明する。
図4及び図5は、キャリッジ走行範囲を決定するための方法を示している。
図4及び図5において、Xはキャリッジ位置を示し、右へ向かう方向がキャリッジ位置Xの値が増える方向つまりプラス方向、左へ向かう方向キャリッジ位置Xの値が減る方向つまりマイナス方向である。また、XlendとXrendは、それぞれ、印刷データに基づいて決定される目標の印刷範囲の左端と右端のドットの位置を指す。
図4には、予め設定されているファーストドット調整値Afstdの極性がプラス(右方向へのシフトを意味する)である場合のキャリッジ走行範囲の決定方法が示されている。図4中、図4Aは、本実施形態の方法との対比のために、図1で既に説明した従来の決定方法を示しており、図4Bと図4Cが、本実施形態の決定方法を示している。そして、図4Bは、予め設定されている双方向印刷調整値Abidの極性がプラスである(右方向へのシフトを指示する)場合に対応し、図4Cは、双方向印刷調整値Abidの極性がマイナスである(左方向へのシフトを指示する)場合に対応する。
図4Bを参照して、双方向印刷調整値Abidがプラス(右シフト)である場合の決定方法を説明する。
まず、往走プロセス(キャリッジがプラス方向へ走行する主走査プロセス)での決定方法を、図4Bの上側のグラフ101を参照して説明する。
グラフ101に示すように、印刷データにより決定された目標の左端ドット位置Vlendに、ファーストドット調整値Afstdが加算され、その結果がファーストドット位置(最初のドット形成動作を行うべきキャリッジ位置)Xfstd_fwとして設定される。つまり、ファーストドット位置Xfstd_fwは、左端ドット位置Vlendよりファーストドット調整値Afstdの絶対値分だけ右へシフトした位置に設定される。
このファーストドット位置Xfstd_fwに、助走距離Laux(常にプラスの値)が減算され、その結果が、キャリッジの最小走行範囲Rminrunの左端として設定される。つまり、キャリッジの最小走行範囲Rminrunの左端は、ファーストドット位置Xfstd_fwより助走距離Laux分だけ左へシフトした位置に設定される。
また、グラフ101に示すように、印刷データにより決定された右端ドット位置Vrendに、ファーストドット調整値Afstdが加算され、その結果がラストドット位置(最後のドット形成動作を行うべきキャリッジ位置)Xlstd_fwとして設定される。つまり、ラストドット位置Xlatd_fwは、右端ドット位置Vrendよりファーストドット調整値Afstdの絶対値分だけ右へシフトした位置に設定される。
このラストドット位置Xlstd_fwに、双方向印刷調整値Abidと助走距離Laux(常にプラスの値)が加算され、その結果が、キャリッジの最小走行範囲Rminrunの右端として設定される。つまり、キャリッジの最小走行範囲Rminrunの右端は、ラストドット位置Xlstd_fwより双方向印刷調整値Abidと助走距離Lauxの合計値の絶対値分だけ右へシフトした位置に設定される。
このようにして設定された最小走行範囲Rminrunは、キャリッジが必ず走行しなければならない区間である。なお、この最小走行範囲Rminrunの中で、両側の助走距離Lauxの区間を除いた中間の区間Rhsrunが、ドット形成可能な高速安定走行区間である。
そして、往走プロセスの走行開始位置Xstt_fwは、最小走行範囲Rminrunの左端位置に設定される(後述する図7のS19のように、この左端よりさらに左側へずれた位置に設定される場合もある)。また、往走プロセスの停止位置Xstp_fwは、最小走行範囲Rminrunの右端位置に設定される(後述する図9のS39のように、この右端よりさらに右側へずれた位置に設定される場合もある)。
次に、双方向印刷調整値Abidがプラス(右シフト)である場合の復走プロセス(キャリッジがマイナス方向へ走行する主走査プロセス)での決定方法を、図4Bの下側のグラフ103を参照して説明する。
グラフ103に示すように、印刷データにより決定された右端ドット位置Vrendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がファーストドット位置Xfstd_bwとして設定される。つまり、ファーストドット位置Xfstd_bwは、右端ドット位置Vrendよりファーストドット調整値Afstdと双方向印刷調整値Abidの合計値の絶対値分だけ右へシフトした位置に設定される。
このファーストドット位置Xfstd_bwに、助走距離Laux(常にプラスの値)が加算され、その結果が、キャリッジの最小走行範囲Rminrunの右端として設定される。つまり、キャリッジの最小走行範囲Rminrunの右端は、ファーストドット位置Xfstd_bwより助走距離Laux分だけ右へシフトした位置に設定される。
また、グラフ103に示すように、印刷データにより決定された左端ドット位置Vlendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がラストドット位置Xlstd_bwとして設定される。つまり、ラストドット位置Xlstd_bwは、左端ドット位置Vlendよりファーストドット調整値Afstdと双方向印刷調整値Abidの合計値の絶対値分だけ右へシフトした位置に設定される。
このラストドット位置Xlst_bwに、双方向印刷調整値Abidと助走距離Laux(常にプラスの値)が減算され、その結果が、キャリッジの最小走行範囲Rminrunの左端として設定される。つまり、キャリッジの最小走行範囲Rminrunの左端は、ラストドット位置Xfltd_bwより双方向印刷調整値Abidと助走距離Lauxの合計値の絶対値分だけ左へシフトした位置に設定される。
そして、復走プロセスの走行開始位置Xstt_bwは、最小走行範囲Rminrunの右端位置に設定される(後述する図8のS27のように、この右端よりさらに右側へずれた位置に設定される場合もある)。復走プロセスの停止位置Xstt_bwは、最小走行範囲Rminrunの左端に設定される(後述する図10のS47のように、この左端よりさらに左側へずれた位置に設定される場合もある)。
次に、図4Cを参照して、双方向印刷調整値Abidがマイナス(左シフト)である場合の決定方法を説明する。
まず、往走プロセスでの決定方法を、図4Cの上側のグラフ105を参照して説明する。
グラフ105に示すように、ファーストドット位置Xfstd_fwが、グラフ101の場合と同様に、左端ドット位置Vlendよりファーストドット調整値Afstdの絶対値分だけ右へシフトした位置に設定される。このファーストドット位置Xfstd_fwに、双方向印刷調整値Abidが加算され、さらに助走距離Laux(常にプラスの値)が減算され、その結果が、キャリッジの最小走行範囲Rminrunの左端として設定される。つまり、キャリッジの最小走行範囲Rminrunの左端は、ファーストドット位置Xfstd_fwより、双方向印刷調整値Abidの絶対値と助走距離Lauxの合計値分だけ左へシフトした位置に設定される。
また、グラフ105に示すように、ラストドット位置Xlatd_fwが、グラフ101の場合と同様に、右端ドット位置Vrendよりファーストドット調整値Afstdの絶対値分だけ右へシフトした位置に設定される。このラストドット位置Xlstd_fwに、助走距離Laux(常にプラスの値)が加算され、その結果が、キャリッジの最小走行範囲Rminrunの右端として設定される。つまり、キャリッジの最小走行範囲Rminrunの右端は、ラストドット位置Xlstd_fwより助走距離Laux分だけ右へシフトした位置に設定される。
そして、往走プロセスの走行開始位置Xstt_fwは、最小走行範囲Rminrunの左端位置に設定される(後述する図7のS19のように、この左端よりさらに左側へずれた位置に設定される場合もある)。往走プロセスの停止位置Xstp_fwは、最小走行範囲Rminrunの右端位置に設定される(後述する図9のS39のように、この右端よりさらに右側へずれた位置に設定される場合もある)。
次に、双方向印刷調整値Abidがマイナス(左シフト)である場合の復走プロセスでの決定方法を、図4Cの下側のグラフ107を参照して説明する。
グラフ107に示すように、印刷データにより決定された右端ドット位置Vrendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がファーストドット位置Xfstd_bwとして設定される。つまり、ファーストドット位置Xfstd_bwは、右端ドット位置Vrendより、ファーストドット調整値Afstd分だけ右へシフトし、更に双方向印刷調整値Abidの絶対値分だけ左へシフトした位置に設定される。
このファーストドット位置Xfstd_bwに、双方向印刷調整値Abidが減算され、更に助走距離Laux(常にプラスの値)が加算され、その結果が、キャリッジの最小走行範囲Rminrunの右端として設定される。つまり、キャリッジの最小走行範囲Rminrunの右端は、ファーストドット位置Xfstd_bwより、双方向印刷調整値Abidの絶対値と助走距離Lauxとの合計値分だけ右へシフトした位置に設定される。
また、グラフ107に示すように、印刷データにより決定された左端ドット位置Vlendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がラストドット位置Xlstd_bwとして設定される。つまり、ラストドット位置Xlstd_bwは、左端ドット位置Vlendより、ファーストドット調整値Afstd分だけ右へシフトし、更に双方向印刷調整値Abidの絶対値分だけ左へシフトした位置に設定される。
このラストドット位置Xlst_bwに、助走距離Laux(常にプラスの値)が減算され、その結果が、キャリッジの最小走行範囲Rminrunの左端として設定される。つまり、キャリッジの最小走行範囲Rminrunの左端は、ラストドット位置Xfltd_bwより助走距離Laux分だけ左へシフトした位置に設定される。
そして、復走プロセスの走行開始位置Xstt_bwは、最小走行範囲Rminrunの右端位置に設定される(後述する図8のS27のように、この右端よりさらに右側へずれた位置に設定される場合もある)。復走プロセスの停止位置Xstt_bwは、最小走行範囲Rminrunの左端に設定される(後述する図10のS47のように、この左端よりさらに左側へずれた位置に設定される場合もある)。
以上の図4B及び図4Cに示された決定方法を計算式で表すと、次のようになる。
(1) 双方向印刷調整値Abidがプラス(左シフト)の場合
(1−1)往走プロセス
最小走行範囲Rminrunの左端=Xlend+Astd−Laux …1
最小走行範囲Rminrunの右端=Xrend+Astd+Abid+Laux …2
Xstt_fw≦最小走行範囲Rminrunの左端 …3
Xstp_fw≧最小走行範囲Rminrunの右端 …4
(1−2) 復走プロセス
最小走行範囲Rminrunの左端=Xlend+Astd−Laux …1
最小走行範囲Rminrunの右端=Xrend+Astd+Abid−Laux …2
Xstp_bw≦最小走行範囲Rminrunの左端 …5
Xstt_bw≧最小走行範囲Rminrunの右端 …6
(2) 双方向印刷調整値Abidがマイナス(右シフト)の場合
(2−1)往走プロセス
最小走行範囲Rminrunの左端=Xlend+Astd+Abid−Laux …7
最小走行範囲Rminrunの右端=Xrend+Astd+Laux …8
Xstt_fw≦最小走行範囲Rminrunの左端 …3
Xstp_fw≧最小走行範囲Rminrunの右端 …4
(2−2) 復走プロセス
最小走行範囲Rminrunの左端=Xlend+Astd+Abid−Laux …7
最小走行範囲Rminrunの右端=Xrend+Astd+Laux …8
Xstp_bw≦最小走行範囲Rminrunの左端 …5
Xstt_bw≧最小走行範囲Rminrunの右端 …6
図5には、ファーストドット調整値Afstdの極性がマイナスである(左方向へのシフトを指示する)場合の決定方法が示されている。図5中、図5Aは、本実施形態の方法との対比のために、図1で既に説明した従来の決定方法を示しており、図5Bと図5Cが、本実施形態の決定方法を示している。そして、図5Bは、双方向印刷調整値Abidの極性がプラスである場合に対応し、図5Cは、双方向印刷調整値Abidの極性がマイナスである場合に対応する。
図5Bと図5Cに示す決定方法は、既に説明した図4Bと図4Cに示した方法と比べて、ファーストドット調整値Afstdのシフト方向が逆である点が異なるのみで、他の点では実質的に同一である。そして、図5Bと図5Cに示す決定方法にも、上述した式1〜式8がそのまま適用される。
図4B、図4C、図5B及び図5Cに示された本実施形態で採用される計算式、そのうち特に式1,2,7及び8に基づけば、最小走行範囲Rminrunの長さは次式で示される。
最小走行範囲Rminrunの長さ=Xrend−Xlend+Abid+2Laux …9
この式9、並びに図4及び図5から分かるように、本実施形態の方法による最小走行範囲Rminrunの長さは、ドット形成範囲Rdot(ファーストドット位置Xrendからラストドット位置Xlendまで)の長さに、双方向印刷調整値Abidと助走距離Lauxの2倍を加えた長さとなる。これに対し、図1、図4A及び図5Aに示された従来技術に従うと、最小走行範囲Rminrunの長さは、ドット形成範囲Rdotの長さに、位置調整マージンMadjの2倍と助走距離Lauxの2倍を加えた長さとなる。従って、本実施形態と従来技術との間の最小走行範囲Rminrunの長さの違いは、双方向印刷調整値Abidと位置調整マージンMadjの2倍との間の長さの違いに相当する。ここで、位置調整マージンMadjの2倍とは、既に説明したように、少なくとも、ファーストドット調整値Afstdと双方向印刷調整値Abidとを加算した合計のシフト量の最大変動幅分の長さである。従って、本実施形態に従えば、従来技術より、最小走行範囲Rminrunの長さが短縮される。キャリッジの実際の走行範囲は、走行開始位置Xsttから停止位置Xstpまでであり、それは、最小で最小走行範囲Rminrunと一致する(場合によっては、最小走行範囲Rminrunより外側へ拡張されるが、その点は本実施形態も従来技術も同様である)。従って、本実施形態に従えば、従来技術より、キャリッジの実際の走行距離が短縮し、よって、印刷のスループットが向上する。
また、上述の制御によれば、特に、例えば長方形の写真を印刷する場合のように、連続的に交互に繰り返される往走プロセスと復走プロセスにおいて、印刷データに基づく目標の印刷範囲Rprtの位置が全く同一である場合には、図4及び図5から分かるように、往走プロセスの停止位置と次の復走プロセスの走行開始位置(または、復走プロセスの停止位置と次の往走プロセスの走行開始位置)とが一致することになるので、ロジカルシークを行う必要性が減り、スループットが向上する。
以下では、図4及び図5に示した走行範囲の決定方法を行うための、CPU27とASIC28による制御動作の手順を説明する。
図6は、CPU27とASIC28による各回(N回目)の主走査プロセスの制御動作の全体的な流れを示している。
図6に示すステップS1では、N回目の主走査プロセスを開始する(キャリッジの走行を開始する)前に、N回目の主走査プロセスのための走行開始位置を設定する。ステップS2で、N−1回目の主走査プロセスが終わってキャリッジが停止しているとき、キャリッジの現在位置が、設定された走行開始位置に一致するかチェックする。このチェックの結果、一致していれば、ステップS4に進み、現在位置(つまり、走行開始位置)からキャリッジの走行を開始して加速フェーズを実行する。上記チェックの結果、一致していなければ、ステップS3でロジカルシークを行って、キャリッジの現在位置を走行開始位置に一致するように修正し、その後にステップS4に進む。ただし、上記チェックの結果一致していない場合であっても、現在位置と走行開始位置との距離が僅かである場合には、加速フェーズにおいて前述した修正目標速度セットを使用するという方法を採用することで、ロジカルシークを省略して、直ちにステップS4に進むことができる。すなわち、現在位置と走行開始位置との距離が、修正目標速度セットでは補償できない程度に大きい場合を除けば、現在位置と走行開始位置とが一致してなくてもステップS3のロジカルシークを行わないようにすることができる。
加速フェーズが終わると、続いて、ステップS5で定速フェーズを行なう。定速フェーズの間に、ステップS6で、N回目の主走査プロセスのための停止位置を設定する。ステップS7で、定速フェーズを終了して、設定された停止位置でキャリッジを停止することができるように減速フェーズを実行する。ステップS8でキャリッジが停止し、これでN回目の主走査プロセスの制御動作が終了する。
図7から図8は、CPU27によるN回目の主走査プロセスのための走行開始位置(図4及び図5に示された走行開始位置Xstt_fw及びXstt_bw)を設定するための制御動作の流れを示す。
図7のステップS11にて、N回目の主走査プロセスのための印刷データに基づいて、N回目の主走査プロセスでの印刷範囲の左端ドット位置Vlendと右端ドット位置Vrendが計算される。ステップS12で、N回目の主走査プロセスが往走プロセスと復走プロセスのいずれであるか判断される。往走プロセスの場合、制御はステップS13以下のルーチンに進み、復走プロセスの場合、制御は図8のステップS21以下のルーチンに進む。
往走プロセスの場合、ステップS13において、ステップS11で計算されたN回目の左端ドット位置Vlendに、ファーストドット調整値Afstdが加算され、その結果がN回目のファーストドット位置Xfstd_fwとして設定される。ステップS14で、双方向印刷調整値Abidの極性がプラスかマイナスか(シフト方向が右か左が)が判断される。その極性がゼロ又はプラス(右シフト)である場合、ステップS15で、N回目のファーストドット位置Xfstd_fwに、助走距離Laux(常にプラスの値)が減算され、その結果が、N回目の最小走行範囲Rminrunの左端として設定される(図4Bのグラフ101、図5Bのグラフ109)。一方、上記極性がマイナス(左シフト)である場合、ステップS16で、N回目のファーストドット位置Xfstd_fwに、双方向印刷調整値Abidが加算され、さらに助走距離Laux(常にプラスの値)が減算され、その結果が、N回目の最小走行範囲Rminrunの左端として設定される(図4Cのグラフ105、図5Cのグラフ113)。
ステップS17で、停止しているキャリッジの現在位置が、N回目の最小走行範囲Rminrunの左端よりも左側(外側)に位置しているかチェックされる。このチェックの結果が否定的、すなわち、現在位置がN回目の最小走行範囲Rminrunの左端と一致しているか又はより右側(内側)にある場合には、ステップS18で、N回目の最小走行範囲Rminrunの左端が、N回目の走行開始位置Xstt_fwとして設定される。一方、上記チェックの結果が肯定的、すなわち、現在位置がN回目の最小走行範囲Rminrunの左端より左側(外側)にある場合には、ステップS19で、その現在位置がN回目の走行開始位置Xstt_fwとして設定される。
復走プロセスの場合、図8のステップS21で、N回目の右端ドット位置Vrendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がN回目のファーストドット位置Xfstd_bwとして設定される。ステップS22で、双方向印刷調整値Abidの極性がプラスかマイナスか(シフト方向が右か左が)が判断される。その極性がゼロ又はプラス(右シフト)である場合、ステップS23で、N回目のファーストドット位置Xfstd_bwに、助走距離Laux(常にプラスの値)が加算され、その結果が、N回目の最小走行範囲Rminrunの右端として設定される(図4Bのグラフ103、図5Bのグラフ111)。一方、上記極性がマイナス(左シフト)である場合、ステップS16で、N回目のファーストドット位置Xfstd_bwに、双方向印刷調整値Abidが減算され、更に助走距離Laux(常にプラスの値)が加算され、その結果が、N回目の最小走行範囲Rminrunの右端として設定される(図4Cのグラフ107、図5Bのグラフ115)。
ステップS25で、停止しているキャリッジの現在位置が、N回目の最小走行範囲Rminrunの右端よりも右側(外側)に位置しているかチェックされる。このチェックの結果が否定的、すなわち、現在位置がN回目の最小走行範囲Rminrunの右端と一致しているか又はより左側(内側)にある場合には、ステップS26で、N回目の最小走行範囲Rminrunの右端が、N回目の走行開始位置Xstt_bwとして設定される。一方、上記チェックの結果が肯定的、すなわち、現在位置がN回目の最小走行範囲Rminrunの右端より右側(外側)にある場合には、ステップS27で、その現在位置がN回目の走行開始位置Xstt_bwとして設定される。
図9から図10は、CPU27によるN回目の主走査プロセスのための停止位置(図4及び図5に示された停止位置Xstp_fw及びXstp_bw)を設定するための制御動作の流れを示す。
図9のステップS31にて、N回目の主走査プロセスが往走プロセスと復走プロセスのいずれであるか判断される。往走プロセスの場合、制御はステップS32以下のルーチンに進み、復走プロセスの場合、制御は図10のステップS40以下のルーチンに進む。
往走プロセスの場合、ステップS32において、図7のステップS11で計算されたN回目の右端ドット位置Vrendに、ファーストドット調整値Afstdが加算され、その結果がN回目のラストドット位置Xlstd_fwとして設定される。ステップS33で、双方向印刷調整値Abidの極性がプラスかマイナスか(シフト方向が右か左が)が判断される。その極性がゼロ又はプラス(右シフト)である場合、ステップS34で、N回目のラストドット位置Xlstd_fwに、双方向印刷調整値Abidと助走距離Laux(常にプラスの値)が加算され、その結果が、N回目の最小走行範囲Rminrunの右端として設定される(図4Bのグラフ101、図5Bのグラフ109)。一方、上記極性がマイナス(左シフト)である場合、ステップS35で、N回目のラストドット位置Xlstd_fwに、助走距離Laux(常にプラスの値)が加算され、その結果が、N回目の最小走行範囲Rminrunの右端として設定される(図4Cのグラフ105、図5Cのグラフ113)。
ステップS36で、N+1回目の主走査プロセスのための印刷データが既に入手済みであるならば、そのN+1回目の印刷データに基づいて、既に図7から図8を参照して説明したと同様の方法で、N+1回目の最小走行範囲が決定される。ステップS37で、N+1回目の最小走行範囲の左端又は右端が、N回目の最小走行範囲Rminrunの右端より右側(外側)に位置しているかチェックされる。このチェックの結果が否定的、すなわち、N+1回目の最小走行範囲の左端及び右端が、N回目の最小走行範囲Rminrunの右端より右側(外側)には位置してない場合には、ステップS38で、N回目の最小走行範囲Rminrunの右端が、N回目の停止位置Xstp_fwとして設定される。一方、上記チェックの結果が肯定的、すなわち、N+1回目の最小走行範囲の左端又は右端が、N回目の最小走行範囲Rminrunの右端より右側(外側)に位置する場合には、ステップS39で、N+1回目の最小走行範囲の左端又は右端であって、N回目の最小走行範囲Rminrunの右端より右側(外側)に位置する端が、N回目の停止位置Xstp_fwとして設定される。なお、ステップS39が行われた場合、N回目の停止位置Xstp_fwとして設定されたN+1回目の最小走行範囲の左端又は右端は、その後のN+1回目の主走査プロセスの制御では走行開始位置として設定されることになり、よってロジカルシークが不要となる。因みに、ステップS38からS39のように、今回の主走査プロセスの実行中に、次回の主走査プロセスの印刷範囲に基づいてロジカルシークが不要になるように、今回の主走査プロセスの停止位置を決定する制御は、スーパーロジカルシークと呼ばれる。
復走プロセスの場合、図10のステップS40で、N回目の右端ドット位置Vrendに、ファーストドット調整値Afstdと双方向印刷調整値Abidが加算され、その結果がN回目のファーストドット位置Xfstd_bwとして設定される。ステップS41で、双方向印刷調整値Abidの極性がプラスかマイナスか(シフト方向が右か左が)が判断される。その極性がゼロ又はプラス(右シフト)である場合、ステップS42で、N回目のラストドット位置Xlst_bwに、双方向印刷調整値Abidと助走距離Laux(常にプラスの値)が減算され、その結果が、N回目の最小走行範囲Rminrunの左端として設定される(図4Bのグラフ103、図5Bのグラフ111)。一方、上記極性がマイナス(左シフト)である場合、ステップS35で、N回目のラストドット位置Xlst_bwに、助走距離Laux(常にプラスの値)が減算され、その結果が、キャリッジの最小走行範囲Rminrunの左端として設定される(図4Cのグラフ107、図5Cのグラフ115)。
ステップS44で、N+1回目の主走査プロセスのための印刷データが既に入手済みであるならば、そのN+1回目の印刷データに基づいて、既に図7から図8を参照して説明したと同様の方法で、N+1回目の最小走行範囲が決定される。ステップS45で、N+1回目の最小走行範囲の左端又は右端が、N回目の最小走行範囲Rminrunの左端より左側(外側)に位置しているかチェックされる。このチェックの結果が否定的、すなわち、N+1回目の最小走行範囲の左端及び右端が、N回目の最小走行範囲Rminrunの左端より左側(外側)には位置してない場合には、ステップS46で、N回目の最小走行範囲Rminrunの左端が、N回目の停止位置Xstp_bwとして設定される。一方、上記チェックの結果が肯定的、すなわち、N+1回目の最小走行範囲の左端又は右端が、N回目の最小走行範囲Rminrunの左端より左側(外側)に位置する場合には、ステップS47で、N+1回目の最小走行範囲の左端又は右端であって、N回目の最小走行範囲Rminrunの左端より左側(外側)に位置している端が、N回目の停止位置Xstp_bwとして設定される(スーパーロジカルシーク)。
以上の制御動作により、図4及び図5に示した走行範囲の設定方法が実現される。
図4及び図5に示した各回の主走査プロセスの走行範囲の設定方法を要約すれば、次の(1)〜(4)のとおりである。
(1) 目標の印刷範囲の決定
印刷データに基づいて、その主走査プロセスでの目標の印刷範囲Rprt(左端ドット位置Xlend及び右端ドット位置Xrend)を決定する。
(2) ドット形成範囲Rdot(ファーストドット位置Xfstd及びラストドット位置Xlstd)の決定
(2−1) 往走プロセス(キャリッジ位置座標系の第一方向(例えば右方向)へキャリッジを走行させる主走査プロセス)の場合
目標の印刷範囲Rprtをファーストドット調整値Afstdに従ってシフトすることで、ドット形成範囲Rdotを決定する。
(2−2) 復走プロセス(キャリッジ位置座標系における第二方向(例えば左方向)へキャリッジを走行させる主走査プロセス)の場合
目標の印刷範囲Rprtをファーストドット調整値Afstd及び双方向印刷調整値Abidに従ってシフトすることで、ドット形成範囲Rdotを決定する。
(3) 最小走行範囲Rminrunの決定
ドット形成範囲Rdotに、第一又は第二の方向から選ばれた一方向への双方向印刷調整値Abidmの絶対値分の範囲拡張と、第一及び第二の双方向への助走距離Laux分の範囲拡張とが加えられた範囲を、最小走行範囲Rminrunとして設定する。
ここで、往走プロセスの場合であって双方向印刷調整値Abidが第一方向のシフト量である場合、及び、復走プロセスの場合であって双方向印刷調整値Abidが第二方向のシフト量である場合には、上述した双方向印刷調整値Abidmの絶対値分の範囲拡張の方向として、第一方向が選ばれる。一方、往走プロセスの場合であって双方向印刷調整値Abidが第二方向のシフト量である場合、及び復走プロセスの場合であって双方向印刷調整値Abidが第一方向のシフト量である場合には、上述した双方向印刷調整値Abidmの絶対値分の範囲拡張の方向として、第二方向が選ばれる。
このようにして最小走行範囲Rminrunが決定される結果、図4及び図5から分かるように、往走プロセスでも復走プロセスでも、最小走行範囲Rminrun内の両側の助走距離Lauxの区間を除いた高速安定走行区間Rhsrunの長さは、ドット形成範囲Rdotに双方向印刷調整値Abidmの絶対値を加算した長さになる。また、往走プロセスと復走プロセスの印刷範囲Pprtの位置が一致する場合には、図4及び図5から分かるように、往走プロセスと復走プロセスの最小走行範囲Rminrunの位置も一致することになる。
(4) 実際の走行範囲(走行開始位置Xstt及び停止位置Xstp)の決定
最小走行範囲Rminrunを包含するように実際の走行範囲を決定する。
以上、本発明の実施形態を説明したが、この実施形態は本発明の説明のための例示にすぎず、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。