以下に添付図面を参照して、この発明に係る画像形成装置及びプログラムの最良な実施の形態を詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る画像形成装置の一例であるインクジェット記録装置を含んだ画像形成システムの構成を模式的に示した図である。同図に示したように画像形成システムは、インクジェット記録装置50とホスト300とを有し、LAN等のネットワークやUSBケーブル等による接続線Wを介して、互いに通信可能に接続されている。なお、図1では、インクジェット記録装置50にホスト300を1台接続した例を示しているが、これに限らず、ネットワーク上に接続された複数のホスト300が接続線Wを介してインクジェット記録装置50に接続される形態としてもよい。
インクジェット記録装置50は、記録用紙(記録媒体)に画像や文字等の情報を形成(印刷)するインクジェットプリンタ等の画像形成装置である。また、ホスト300は、インクジェット記録装置50を利用するユーザにより操作されるPC(Personal Computer)等の情報処理装置である。
本システムにおいて、インクジェット記録装置50は、ホスト300から送信された画像データや文書データを後述するホストI/F部103で受信すると、後述するエンジン制御部100の制御により、これらデータが表す画像等の情報を記録用紙に形成(印刷)する。
以下、インクジェット記録装置50の構成について説明する。図2は、図1に示したインクジェット記録装置50の概略構成を示す平面図である。図2に示すように、インクジェット記録装置50は、ガイドロット1、キャリッジ2、記録ヘッド3、主走査モータ4、駆動プーリ5、従動プーリ6、タイミングベルト7、エンコーダスケール8、エンコーダセンサ9、搬送ベルト10、搬送ローラ11、テンションローラ12、副走査モータ13、駆動プーリ14、従動プーリ15、タイミングベルト16を有している。
ガイドロット1は、キャリッジ2が主走査方向に移動するようキャリッジ2を保持している。具体的には、インクジェット記録装置50は、左右の側板(図示せず)に横架したガイドロット1によってキャリッジ2を保持している。
キャリッジ2は、1又は複数個の液体吐出ヘッドからなる記録ヘッド3を装着している。記録ヘッド3は、例えばイエロー(Y)のインク(記録液)滴を吐出する記録ヘッド3y、シアン(C)のインク滴を吐出する記録ヘッド3c、マゼンタ(M)のインク滴を吐出する記録ヘッド3m、ブラック(K)のインク滴を吐出する記録ヘッド3kを装着している。以下、色を区別しないときは「記録ヘッド3」という。各記録ヘッド3y,3c,3m,3kは、複数のインク吐出口(ノズル)を形成したノズル面(ノズル列)が主走査方向と直行する方向(副走査方向)に並ぶよう配列されるとともに、各インク吐出口方向が下方(記録用紙P側)を向くようキャリッジ2に装着されている。
また、キャリッジ2の背面(下方)側には、スリットを形成したエンコーダスケール8を主走査方向に沿って設けてある。また、キャリッジ2にはエンコーダスケール8のスリットを検出するエンコーダセンサ9を設けてある。インクジェット記録装置50では、このエンコーダスケール8とエンコーダセンサ9によって、キャリッジ2の主走査方向の位置を検知するためのリニアエンコーダを構成している。キャリッジ2は、記録ヘッド3y,3c,3m,3kから吐出されるインク滴によって記録用紙Pに所定の画像を印字(記録)する。
なお、ここでは記録ヘッド3が、色毎に独立した液体吐出ヘッドを有する場合について説明したが、記録ヘッド3が複数色のインク滴を吐出する液体吐出ヘッド有する構成としてもよい。例えば、各色のインク液滴を吐出する複数のノズル列を有した1又は複数の液体吐出ヘッドを用いる構成としてもよい。また、色の数及び配列順序はこれに限るものではなく、何れの色数であってもよいし、何れの配列順序であってもよい。
記録ヘッド3の液体吐出ヘッドには、インク液滴を吐出するための圧力を発生する圧力発生手段として種々のアクチュエータなどを用いる。圧力発生手段としては、例えば圧電素子などの圧電アクチュエータ、発熱抵抗体などの電気熱変換素子を用いて液体の膜沸騰による相変化を利用するサーマルアクチュエータ、温度変化による金属相変化を用いる形状記憶合金アクチュエータ、静電力を用いる静電アクチュエータなどを用いる。
主走査モータ4は、駆動プーリ5と従動プーリ6との間に渡したタイミングベルト7を介してキャリッジ2を主走査方向に移動走査させる。搬送ベルト10は、記録用紙Pを静電吸着するとともに、記録ヘッド3に対向する位置で記録用紙Pを搬送するための搬送手段である。この搬送ベルト10は、環状をなす無端状ベルトであり、搬送ローラ11とテンションローラ12との間に掛け渡されている。搬送ローラ11は、搬送ベルト10を回転させるローラである。テンションローラ12は、搬送ベルト10に所定のテンションを与えて搬送ローラ11とテンションローラ12との間で搬送ベルト10を保持するローラである。
副走査モータ13は、駆動プーリ14と従動プーリ15との間に渡したタイミングベルト16を介して搬送ローラ11を福走査方向に回転させる。これにより、搬送ベルト10は、ベルト搬送方向(副走査方向)に周回し、周回移動しながら帯電ローラ(図示せず)によって帯電(電荷付与)される。
搬送ベルト10は、1層構造のベルトでも良く、複数層からなる構造のベルトでもよい。搬送ベルト10が1層構造の搬送ベルトの場合は、搬送ベルト10が記録用紙Pや帯電ローラ(図示せず)に接触するので、層全体を絶縁材料で形成しておく。また、搬送ベルト10が複数層構造の搬送ベルトの場合は、搬送ベルト10が記録用紙Pや帯電ローラ(図示せず)に接触する側の層を絶縁層で形成し、記録用紙Pや帯電ローラ(図示せず)と接触しない側の層を導電層で形成しておくことが好ましい。
また、インクジェット記録装置50は、キャリッジ2や主走査モータ4を制御する手段として後述のエンジン制御部100を備えている。以下、インクジェット記録装置50のエンジン制御部100の構成について説明する。
図3は、エンジン制御部100の構成を示す機能ブロック図である。エンジン制御部100は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等で構成されるマイクロコンピュータ(図3ではCPUと表記)101と、NVRAM(Non Volatile RAM)やHDD(Hard disk drive)等の不揮発性のコンピュータ読み取り可能な記録媒体で構成される記憶部102とを有しており、このCPU101と、記憶部102に予め記憶された所定のプログラムとの協働によって、インクジェット記録装置50全体の制御を行う。
ホスト300から送信された画像データは、エンジン制御部100のホストI/F部103で受信され、画像処理部104によって印字モードに適したデータに変換される。画像処理部104によってデータ変換された画像データは、画像データ格納部105へ格納される。
主走査モータ駆動部106は、CPU101からの指示に基づいて、主走査モータ4を回転駆動させてキャリッジ2を主走査方向の往路及び復路方向に移動させる。キャリッジ2に搭載されたエンコーダセンサ9からは、キャリッジ2の移動距離及び移動速度に応じたパルス信号が出力される。エッジ検出部107は、エンコーダセンサ9から出力されたパルス信号のエッジを検出するとともに、検出したパルス信号を主走査速度検出部108、主走査位置検出部110、駆動タイミング生成部109へ出力する。
主走査速度検出部108は、エッジ検出部107からのパルス信号の出力期間を測定し、この測定結果に基づいてキャリッジ2(記録ヘッド3)の記録用紙Pに対する相対的な移動速度(以下、キャリッジ速度という)を検出する。主走査速度検出部108は、検出したキャリッジ速度を駆動タイミング生成部109へ出力する。
駆動タイミング生成部109は、エッジ検出部107からのパルス信号をトリガとし、キャリッジ速度及び予め設定された設定情報に基づいて、記録ヘッド3の駆動を開始するまでの調整期間(以下、駆動タイミング調整期間という)を設定する。
ここで、設定情報とは、例えば、キャリッジ速度の各値と駆動タイミング調整期間とを関連付けたテーブル情報や、キャリッジ速度を入力することで、当該キャリッジ速度の値に対応する駆動タイミング調整期間を導出可能な関係式等である。なお、設定情報には、様々なキャリッジ速度の条件下において、同じのエンコーダ周期で吐出されたインクが同一の位置に着滴されるよう、駆動タイミング調整期間が設定されているものとする。
また、駆動タイミング生成部109は、駆動タイミング調整期間を経過した後、記録ヘッド駆動制御部113が生成する駆動波形に基づいて、記録ヘッド3の駆動中か否かを判定し、当該記録ヘッド3の駆動が行われていないときに、記録ヘッド3の駆動を開始するタイミングを指示したパルス信号(以下、駆動タイミングという)を生成する。そして、駆動タイミング生成部109は、生成した駆動タイミングを記録ヘッド駆動制御部113へ出力する。なお、駆動タイミング生成部109の動作については後述する。
主走査位置検出部110は、エッジ検出部107からのパルス信号をカウントし、キャリッジ2のエンコーダスケール8に対する現在位置(以下、キャリッジ位置という)を検出する。主走査位置検出部110は、検出したキャリッジ位置の情報を印字領域判定部111へ送る。
印字領域判定部111は、主走査位置検出部110から送られてくるキャリッジ位置に基づいて、キャリッジ位置が印字領域内であるか否かを判定する。印字領域判定部111は、キャリッジ位置が印字領域内であるか否かの判定結果を記録ヘッド駆動制御部113へ送る。
記録ヘッド駆動波形格納部112には記録ヘッド3を駆動する駆動波形データが格納されている。記録ヘッド駆動制御部113は、記録ヘッド駆動波形格納部112に格納された駆動波形データから記録ヘッド3を駆動するための駆動波形を生成する。
記録ヘッド駆動制御部113は、キャリッジ位置が印字領域内である場合に、駆動タイミング生成部109からのパルス信号を開始タイミングとして記録ヘッド3を駆動させて記録ヘッド3から液滴(インク)を吐出させる。このとき、記録ヘッド駆動制御部113は、画像データ格納部105に格納された画像データと、記録ヘッド駆動波形格納部112に格納された駆動波形データと、に基づいて記録ヘッド3を駆動させる。
以下、インクジェット記録装置50の、主走査方向の駆動制御について説明する。ここで、図4は、CPU101により実行される、主走査モータ4の駆動制御(主走査制御)の手順を示したフローチャートである。
まず、CPU101は、主走査モータ4の目標速度や停止位置等、動作毎に設定する必要がある制御パラメータや、比例ゲインや積分ゲイン等、エンジン制御部100の各部に固有のパラメータを設定する(ステップS11)。
次いで、CPU101は、ホストI/F部103を介してホスト300から画像形成を行う旨の指示信号を受け付けると、主走査モータ駆動部106に主走査モータ4の駆動を指示する指示信号を出力することで、主走査モータ4の回転駆動を開始する(ステップS12)。
このとき、CPU101はキャリッジ2の主走査方向の制御に係る各機能部(主走査速度検出部108、主走査位置検出部110)を一定時間間隔で監視しており(ステップS13;No)、これら各機能からCPU101に対して割り込みがかかると(ステップS13;Yes)、ステップS14以降の処理を実行する。
ここで、CPU101は、主走査速度検出部108から、当該主走査速度検出部108で検出されたキャリッジ2のキャリッジ速度を取得するとともに(ステップS14)、主走査位置検出部110から、当該主走査位置検出部110で検出されたキャリッジ2のキャリッジ位置を取得する(ステップS15)。
次いで、CPU101は、ステップS15で取得したキャリッジ2のキャリッジ位置が、停止位置に到達したか否かを判定し、停止位置に達していない場合(ステップS16;No)、現在のキャリッジ速度から速度偏差量を算出する(ステップS17)。続いて、CPU101は、ステップS17で算出した速度偏差量に基づきPI(Proportional Integral)制御を主走査モータ駆動部106に施すことで、主走査モータ4の回転速度を変更し(ステップS18)、ステップS13に再び戻る。なお、ステップS18のPI制御では、ステップS11で設定したパラメータ、停止位置までの距離及びキャリッジ速度から計算を行い、主走査モータ4の走査量を決定する。
一方、ステップS16において、停止位置に到達したと判定すると、CPU101は、主走査モータ駆動部106に主走査モータ4の駆動を停止する指示信号を出力することで、主走査モータ4の駆動を停止し(ステップS19)、処理を終了する。
図5は、上述した主走査制御により実現されるキャリッジ2の主走査方向の速度変化の一例を示した図である。縦軸はキャリッジ速度を意味しており、上方に行くほど高速であることを意味する。また、横軸は主走査方向の各位置を意味している。ここで、主走査方向の各位置は、所定の速度(目標速度)まで加速する加速区間と、等速で移動する等速区間と、所定の速度まで減速する減速区間と、そして改行等が行われている間の停止区間との4つの区間に大別される。
図5に示したように、CPU101によるPI制御により、加速区間では主走査モータ4の回転速度が加速されることで、キャリッジ速度が上昇し、等速区間では主走査モータ4の回転速度が維持されることで、キャリッジ2は等速で移動する。また、減速区間では主走査モータ4の回転速度が減速されることで、キャリッジ速度が減少し、停止区間で停止される。なお、主走査方向の各位置での目標速度及び各区間は制御パラメータに含まれているものとする。
また、図5に示したように、等速区間のあるタイミングAから、減速区間のあるタイミングBまで、インクを吐出して記録用紙に画像形成を行う印字区間が含まれている。上述した印字領域判定部111では、主走査位置検出部110により検出されるキャリッジ2の位置がこの印字区間内か否かを判定する。なお、印字区間を表す設定情報は制御パラメータに含まれているものとする。
次に、図6を参照して、キャリッジ速度と、記録ヘッド3から吐出されるインク滴の着滴位置との関係について説明する。ここで、図6は、キャリッジ2の移動速度とインク滴の着滴位置との関係を説明するための図である。同図において、vC1及びvC2は、キャリッジ2のキャリッジ速度を示しており、vC1>vC2である。tD1及びtD2は、エンコーダスケール8のエッジから記録ヘッド3の駆動タイミングが生成されるまでの調整時間(以下、駆動タイミング調整期間という)を示しており、tD2>tD1である。xJ1及びxJ2は、エンコーダスケール8のエッジからインク滴の着滴位置までの距離を示しており、後述するようにxJ1=xJ2である。また、vJはインク滴の吐出速度、hJは記録ヘッド3から記録用紙Pまでの距離である。なお、図6では、インク滴の吐出に係る二つの条件を、上記した各記号の末尾の数値(1又は2)で識別している。
まず、第1の条件として、キャリッジ2の速度がvC1であり、記録ヘッドは期間tD1後、インク的を速度vJで吐出し、インク滴はエンコーダスケール8のエッジEから距離xJ1の位置に着滴したとする。また、第2の条件として、キャリッジ2の速度がvC2であり、記録ヘッドは期間tD2後、インク的を速度vJで吐出し、インク滴はエンコーダスケール8のエッジEから距離xJ2の位置に着滴したとする。
上記各条件での着滴位置xJ1、xJ2は、下記式(1)、(2)により夫々求められる。
xJ1=(hJ/vJ+tD1)×vC1 (1)
xJ2=(hJ/vJ+tD2)×vC2 (2)
駆動タイミング生成部109は、キャリッジ速度vC1、cC2の夫々の値に基づき、キャリッジ速度が異なる場合であっても、インク着滴位置xJ1、xJ2が同位置(xJ1=xJ2)となるよう、駆動タイミング調整期間tD1、tD2の経過後に駆動タイミングを生成する。
このとき、目標とする着滴位置をxJとすると、駆動タイミング調整期間tDは下記式(3)により算出される。なお、vCは任意のキャリッジ速度である。
tD=xJ/vC−hJ/vJ (3)
また、エンコーダスケール8のエッジ間距離をxE、エンコーダセンサ9のエンコーダ周期をtEとすると、キャリッジ速度vCは下記式(4)で表される。
vC=xE/tE (4)
つまり、駆動タイミング調整期間tDは、上記式(3)及び(4)から、下記式(5)のように表すことができる。ここで、xJ、xE、hJ、vJは、インクジェット記録装置50及び印字モードにおいて一定の値となるため、駆動タイミング調整期間tDは、エンコーダ周期tEの一次関数で表される。
tD=tE×xJ/xE−hJ/vJ (5)
ところで、駆動タイミング生成部109では、駆動タイミング調整期間tDの終了時に駆動タイミングを生成することになるが、この駆動タイミングを不用意に生成すると、インク滴が不吐出となる頻度が増加する可能性がある。以下、図7を参照して、インクが不吐出となる状態について説明する。
図7は、駆動タイミングの生成方法を説明するためのタイミングチャートであって、インクが不吐出となる状態を示している。同図において、tE1、tE2及びtE3は、エンコーダ信号のエンコーダ周期を示している。tD1及びtD2は、エンコーダ周期に応じて定まる駆動タイミング調整期間である。なお、駆動タイミング調整期間の末尾の数値をエンコーダ周期の末尾の数値(1又は2)と同値とすることで、何れのエンコーダ周期に対応するものかを識別している。また、tJは駆動タイミングtD1に応じて開始された記録ヘッド3の駆動期間を示している。
図7において、印字1についての駆動期間tJは、下記式(6)で表される。
tJ<tE2+tD2−tD1 (6)
ここで、tE2<tE1であるとすると、tD2−tD1は負の値となるため、駆動タイミング調整期間を設けない場合(tD1=tD2=0)と比較し、駆動期間tJは減少している。印字には所定の期間を要するため、駆動期間tJの値によっては十分な吐出を行うことができず、インク滴が吐出されない割合が増加する。
また、図7に示したように、駆動期間tJ中に新たな駆動タイミングが生成される可能性があるが、記録ヘッド3の駆動途中に中断することはできないため、タイミングエラー娃が発生する。このとき、新たに生成された駆動タイミングは無効化されるため、この結果、エンコーダ周期tE2に対応する印字2についてのインク滴が不吐出となる。
このような問題を解決するため、本実施形態の駆動タイミング生成部109では、駆動タイミング調整期間の完了時に、記録ヘッド3の駆動状態を検出し、記録ヘッド3の駆動が行われていないときに、その駆動が完了してから駆動タイミングを生成する。以下、図8及び図9を参照して、駆動タイミング生成部109の動作について説明する。
ここで、図8は、駆動タイミング生成部109の動作を説明するためのフローチャートである。また、図9は、駆動タイミング生成部109による駆動タイミングの生成方法を説明するためのタイミングチャートである。なお、図8において、図7と同様の要素については同じ符号を用いて適宜説明を省略する。
まず、駆動タイミング生成部109は、エッジ検出部107からエッジ検出を示したパルス信号が入力されるまで待機する(ステップS21;No)。ここで、エッジ検出部107からのパルス信号の入力を検出すると(ステップS21;Yes)、駆動タイミング生成部109は、主走査速度検出部108から入力されるキャリッジ速度と、予め設定されたパラメータとに基づいて、このエンコーダ周期に対応する駆動タイミング調整期間を設定する(ステップS22)。そして、駆動タイミング生成部109は、エッジ検出部107から次のパルス信号が入力されたタイミングで、ステップS22で設定した駆動タイミング調整期間のカウントを開始する(ステップS23)。
なお、ステップS23のカウント開始とともに、ステップS21;Yes→ステップS22の処理も同時に実行される。その結果、新たなエッジが検出される毎に、直前のエッジに対応する駆動タイミング調整期間のカウントが開始されることになる。例えば、図8の場合、エンコーダ周期tE1に応じた駆動タイミング調整期間tD1のカウントが、エンコーダ周期tE1の終了とともに開始される。また、エンコーダ周期tE2に応じた駆動タイミング調整期間tD2のカウントが、エンコーダ周期tE2の終了とともに開始される。
次いで、駆動タイミング生成部109は、駆動タイミング調整期間が完了するまでカウントを継続し(ステップS24;No→ステップS25)、駆動タイミング調整期間に到達したと判定すると(ステップS24;Yes)、続くステップS26の処理に移行する。
続いて、駆動タイミング生成部109は、記録ヘッド駆動制御部113が出力する駆動波形に基づいて、記録ヘッド3の駆動が完了しているか否かを判定する(ステップS26)。記録ヘッド3の駆動が完了していると判定した場合(ステップS26;Yes)、駆動タイミング生成部109は、駆動タイミングを生成することで、記録ヘッド駆動制御部113に記録ヘッド3の駆動開始を指示し(ステップS27)、ステップS21に再び戻る。
一方、ステップS26において、記録ヘッド3が駆動中と判定した場合、駆動タイミング生成部109は、駆動遅延期間として記録ヘッド3の駆動が完了するまで待機し(ステップS26;No)、記録ヘッド3の駆動が完了した後ステップS27の処理に移行する。
例えば、図8の場合、駆動タイミング生成部109は、駆動タイミング調整期間tD1の完了時に、記録ヘッド駆動制御部113の駆動波形から記録ヘッド3の駆動が完了していると判定するため、駆動タイミングを生成する。また、駆動タイミング生成部109は、駆動タイミング調整期間tD2の完了時に、記録ヘッド駆動制御部113の駆動波形から記録ヘッド3の駆動中と判定し、記録ヘッド3の駆動が完了するまでの駆動遅延期間tW2待機した後、駆動タイミングを生成する。
なお、駆動タイミング生成部109が、記録ヘッド3の駆動完了を待機する駆動遅延期間(tW2)は、記録ヘッド駆動制御部113の駆動波形の変化に基づいて動作することで、専用のタイマやカウンタ等により計時を行わずに構成することが可能である。また、タイマやカウンタ等を用いて待機期間を計時する形態としてもよく、例えば、予め設定された時間内に記録ヘッド3の駆動が完了しなければタイムアウトとして、次の駆動タイミングの生成をキャンセルする形態としてもよい。
また、待機期間が発生するということは、駆動タイミング調整期間tDのタイミングで駆動が開始されないということであり、実際にインクが着滴される位置と目標とする着滴位置との間に多少の誤差が生じる。そのため、インクの不吐出よりもインクの着滴位置を優先する場合があることも考慮し、駆動待機時間を発生させない設定も可能としておくことが好ましい。以下、駆動待機時間の各種設定例について説明する。
図10は、駆動待機時間の設定例を示した図である。同図では、駆動待機時間を設定するための設定値と、その設定内容とを関連付けて示している。なお、各設定値は、駆動タイミング生成部109に予め設定可能なパラメータであり、この設定値に応じて駆動タイミング生成部109が動作するよう構成されているものとする。
例えば、設定値として“0x00”が指示された場合、駆動タイミング生成部109は駆動待機時間を0(μs)、即ち駆動待機時間なしで駆動タイミングを生成する。また、“0x01”が指示された場合、駆動タイミング生成部109は駆動待機時間を1μs以下とし、1μsを経過した時点で次の駆動タイミングの生成をキャンセルする。また、“N”が指示された場合、駆動タイミング生成部109は駆動待機時間をNμs以下とし、Nμsを経過した時点で次の駆動タイミングの生成をキャンセルする。さらに、“0xFF”が指示された場合、駆動タイミング生成部109は駆動待機時間を無制限とし、記録ヘッド3の駆動が完了するまで待機する。このように、駆動待機時間に関する条件を選択可能とすることで、利便性を向上させることができる。なお、駆動待機時間の設定内容は、図10の例に限定されないものとする。
以上説明したように、駆動タイミング生成部109の制御により、記録ヘッド3の駆動期間を確保し、且つ、記録ヘッド3の駆動中に駆動タイミングが生成されてしまうことを防止することができるため、インク滴が不吐出となる割合を低減することができる。
なお、本実施形態の駆動タイミング生成部109では、各エンコーダ周期の平均値がヘッド駆動期間より長いときに、特に有効に機能することになる。そのため、各エンコーダ周期の平均値がヘッド駆動期間より長いときのみ、上記の制御を行うよう記録ヘッド3の駆動方法を切り替える形態としてもよい。
[第2の実施形態]
次に第2の実施形態について説明する。図11に示したように、第2の実施形態に係るエンジン制御部200は、上述した図1の駆動タイミング生成部109に代えて駆動タイミング生成部201を備えている。また、主走査位置検出部110で検出されるキャリッジ位置が駆動タイミング生成部201に入力されるよう構成されている。以下、駆動タイミング生成部201について説明する。なお、上述した第1の実施形態と同様の要素については、同じ符号を付与し説明を省略する。
上述した第1の実施形態では、エンコーダ周期の平均値がヘッド駆動期間より長いときに有効に機能する。しかしながら、ヘッド駆動期間(tJ)より短いエンコーダ周期が連続して出現すると、駆動遅延期間が累積し、駆動遅延期間中に次の駆動遅延期間が開始されてしまう状態が発生する可能性がある。以下、図11を参照して、この駆動遅延期間の累積について説明する。
図12は、駆動タイミング生成部201の駆動タイミングの生成方法を説明するためのタイミングチャートである。同図において、tE1〜tE6はエンコーダ周期であり、各周期を同値としている。また、tD1〜tD6は駆動タイミング調整期間であり、tW2〜tW6は、駆動遅延期間である。なお、駆動タイミング調整期間及び駆動遅延期間の末尾の数値をエンコーダ周期の末尾の数値と同値とすることで、何れのエンコーダ周期に対応するものかを識別している。
ここで、エンコーダ周期の平均値がヘッド駆動期間より短いと、駆動遅延期間tW4及びtW5に示すように、駆動待機時間が累積して長くなる状態が発生する。具体的には、駆動遅延期間tW4において、次の駆動遅延期間tW5の開始時に記録ヘッド3が駆動状態にあると、駆動遅延期間tW4は残存することになるため、結果的にtW4及びtW5が累積されることになる。
そこで、本実施形態の駆動タイミング生成部201では、駆動待機時間が累積する状態にある場合、前の駆動待機時間を破棄し、次の駆動待機時間のカウントを開始する。例えば、図12の例では、駆動遅延期間tW4から次の駆動遅延期間tW5に移行し、印字4についての駆動をキャンセルさせる。この場合、記録ヘッド駆動制御部113は、印字4についての駆動制御を行わないため、印字4は不吐出となるが、駆動待機時間は一旦リセットされるため、その後の印字位置が大幅にずれていくといった不具合を抑制することができる。
また、駆動待機時間の発生は、記録ヘッド3の印字制御において重要な情報である。そのため、駆動タイミング生成部201では、駆動待機時間の発生時に、その旨をCPU101に割り込み等で通知する。なお、CPU101への通知時には、発生した事象に応じて通知レベルの重要度を切り替えることが好ましい。本実施形態では、「インク吐出はしているが、着滴位置に誤差が生じている可能性があるもの」をワーニングとして通知し、「印字駆動タイミングがキャンセルされ、インク不吐出が発生しているもの」をエラーとして通知する。
図13は、駆動タイミング生成部201の動作を説明するためのフローチャートである。まず、駆動タイミング生成部201は、エッジ検出部107からエッジ検出を指示するパルス信号が入力されるまで待機し(ステップS31;No)、パルス信号の入力を検出すると(ステップS31;Yes)、ステップS32に移行する。
次いで、駆動タイミング生成部201は、主走査速度検出部108から入力されるキャリッジ速度と予め設定されたパラメータとに基づいて、駆動タイミング調整期間を設定する(ステップS32)。続いて、駆動タイミング生成部201は、エッジ検出部107から次のパルス信号が入力されたタイミングで、ステップS32で設定した駆動タイミング調整期間のカウントを開始する(ステップS33)。
なお、ステップS33のカウント開始とともに、ステップS31;Yes→ステップS32の処理も同時に実行されるため、結果として新たなエッジが検出される毎に、直前のエッジ(エンコーダ周期)に対応する駆動タイミング調整期間のカウントが開始されることになる。以下では、n番目のエンコーダ周期tEn(nは任意の整数)に着目して説明を進める。
駆動タイミング生成部201は、駆動タイミング調整期間に到達するまでカウントを継続し(ステップS34;No→ステップS35)、駆動タイミング調整期間に到達したと判定すると(ステップS34;Yes)、続くステップS36の処理に移行する。
続いて、駆動タイミング生成部201は、記録ヘッド駆動制御部113が出力する駆動波形に基づいて、記録ヘッド3の駆動が完了しているか否かを判定する(ステップS36)。記録ヘッド3が駆動中と判定した場合(ステップS36;No)、駆動タイミング生成部201は、駆動遅延期間tWnとして記録ヘッド3の駆動完了を待機するが、これによりインクの着滴位置に誤差が発生する可能性があるため、誤差発生位置とエンコーダ周期tEnとを関連付けたワーニング信号をCPU101に通知する(ステップS37)。
ここで、誤差発生位置とは、エンコーダ周期tEnの処理時に主走査位置検出部110から入力されたキャリッジ位置である。また、ステップS37の処理は、ステップS36で駆動中と判定される毎に実行されるが、ワーニング信号は同一のエンコーダ周期tE(n)につき一度のみ通知が行われるよう制御されることが好ましい。
次いで、駆動タイミング生成部201は、エンコーダ周期tEnについての駆動遅延期間tWnの間に、次のエンコーダ周期tE(n+1)についての駆動遅延期間tW(n+1)の開始時期に到達したか否かを判定する(ステップS38)。ここで、駆動遅延期間tW(n+1)の開始時期に至らないと判定した場合(ステップS38;No)、ステップS36に再び戻る。
また、ステップS38において、駆動遅延期間tW(n+1)の開始時期に到達したと判定した場合(ステップS38;Yes)、駆動タイミング生成部201は、現在カウント中の駆動遅延期間tWnをパスし、次の駆動遅延期間tW(n+1)、即ち次のエンコーダ周期tE(n+1)の処理に移行する(ステップS39)。
また、この場合、エンコーダ周期tEnについての印字が行われないため、駆動タイミング生成部201は、タイミングエラー発生と判断し、その発生位置とエンコーダ周期tE(n+1)とを関連付けたエラー信号をCPU101に通知し(ステップS40)、ステップS36に再び戻る。なお、エラーの発生位置とは、エンコーダ周期tE(n+1)の処理時に主走査位置検出部110から入力されたキャリッジ位置である。
一方、ステップS36において、記録ヘッド3の駆動が完了していると判定した場合(ステップS36;Yes)、駆動タイミング生成部201は駆動タイミングを生成することで、記録ヘッド駆動制御部113に記録ヘッド3の駆動開始を指示し(ステップS41)、ステップS31に再び戻る。
上記の処理により、例えば図12に示した駆動遅延期間tW2、tW3及びtW4の開始時、ワーニング信号として、Warning#1、#2及び#3が夫々CPU101に通知されることになる。また、駆動遅延期間tW5の開始時には、エラー信号としてError#1がCPU101に通知され、駆動遅延期間tW6の開始時には、ワーニング信号としてWarning#4がCPU101に通知される。
CPU101では、駆動タイミング生成部201から通知されたワーニング信号及びエラー信号をワーニング/エラー履歴として記憶部102に格納する。ここで、図14は、上述したWarning#1、#2、#3及び#4、Error#1についての、ワーニング/エラー履歴の一例を示した図である。同図に示したように、ワーニング又はエラーの発生位置と、ワーニング又はエラー発生時のエンコーダ周期とが関連付けて記録される。このように、記録ヘッド3の駆動時に発生したワーニング/エラーの履歴を取得しておくことで、印刷実行後の解析の効率化を図ることができる。
なお、本実施形態で実装したワーニング/エラー通知機能を、上述した第1の実施形態の駆動タイミング生成部109に実装する形態としてもよい。
以上、本発明に係る実施形態について説明したが、これに限定されるものではなく、本発明の主旨を逸脱しない範囲での種々の変更、置換、追加等が可能である。
例えば、上記実施形態の処理にかかるプログラムを、コンピュータで読み取り可能な記録媒体として提供することも可能である。記録媒体としては、磁気ディスク、光ディスク(CD−ROM、CD−R、DVD等)、光磁気ディスク(MO等)、半導体メモリ等、プログラムを記録でき、且つ、コンピュータが読み取り可能な記録媒体であれば、その形式は問わないものとする。
また、上記実施形態の処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
また、上記実施形態の機能部(画像処理部104、エッジ検出部107、主走査速度検出部108、駆動タイミング生成部109、主走査位置検出部110、印字領域判定部111及び記録ヘッド駆動制御部113)は、各機能部を実現する固有の機能を具備したASIC等のハードウェアにより実現される形態としてもよいし、CPU101と記憶部102に記憶されたプログラムとの協働により実現される形態としてもよい。