従来の印刷制御装置を図17乃至図23を参照して説明する。この印刷制御装置はインクジェットプリンタに用いられ、このインクジェットプリンタの概略の構成を図17に示す。
このインクジェットプリンタは、紙送りを行う紙送りモータ(以下、PFモータともいう)1と、この紙送りモータ1を駆動する紙送りモータドライバ2と、キャリッジ3と、このキャリッジ3を駆動するキャリッジモータ(以下、CRモータともいう)4と、このキャリッジモータ4を駆動するCRモータドライバ5と、DCユニット6と、目詰まり防止のためのインクの吸い出しを制御するポンプモータ7と、このポンプモータ7を駆動するポンプモータドライバ8と、キャリッジ3に固定されて印刷紙50にインクを吐出するヘッド9と、このヘッド9を駆動制御するヘッドドライバ10と、キャリッジ3に固定されたリニア式エンコーダ11と、所定の間隔にスリットが形成された符号板12と、PFモータ1用のロータリ式エンコーダ13と、印刷処理されている紙の終端位置を検出する紙検出センサ15と、プリンタ全体の制御を行うCPU16と、CPU16に対して周期的に割込み信号を発生するタイマIC17と、ホストコンピュータ18との間でデータの送受信を行うインタフェース部(以下IFともいう)19と、ホストコンピュータ18からIF19を介して送られてくる印字情報に基づいて印字解像度やヘッド9の駆動波形等を制御するASIC20と、ASIC20およびCPU16の作業領域やプログラム格納領域として用いられるPROM21,RAM22およびEEPROM23と、印刷中の紙50を支持するプラテン25と、PFモータ1によって駆動されて印刷紙50を搬送する搬送ローラ27と、CRモータ4の回転軸に取付けられたプーリ30と、このプーリ30によって駆動されるタイミングベルト31と、を備えている。
なお、DCユニット6は、CPU16から送られてくる制御指令、エンコーダ11,13の出力に基づいて紙送りモータドライバ2およびCRモータドライバ5を駆動制御する。また、紙送りモータ1およびCRモータ4はいずれもDCモータで構成されている。
このインクジェットプリンタのキャリッジ3の周辺の構成を図18に示す。
キャリッジ3は、タイミングベルト31によりプーリ30を介してキャリッジモータ4に接続され、ガイド部材32に案内されてプラテン25に平行に移動するように駆動される。キャリッジ3の印刷紙に対向する面には、ブラックインクを吐出するノズル列およびカラーインクを吐出するノズル列からなる記録ヘッド9が設けられ、各ノズル列はインクカートリッジ34からインクの供給を受けて印刷紙にインク滴を吐出して文字や画像を印字する。
またキャリッジ3の非印字領域には、非印字時に記録ヘッド9のノズル開口を封止するためのキャッピング装置35と、図17に示すポンプモータ7を有するポンプユニット36とが設けられている。キャリッジ3が印字領域から非印字領域に移動すると、図示しないレバーに当接してキャッピング装置35は上方に移動し、ヘッド9を封止する。
ヘッド9のノズル開口列に目詰まりが生じた場合や、カートリッジ34の交換等を行ってヘッド9から強制的にインクを吐出する場合は、ヘッド9を封止した状態でポンプユニット36を作動させ、ポンプユニット36からの負圧により、ノズル開口列からインクを吸い出す。これにより、ノズル開口列の近傍に付着している塵埃や紙粉が洗浄され、さらにはヘッド9内の気泡がインクとともにキャップ37に排出される。
次に、キャリッジ3に取付けられたリニア式エンコーダ11の構成を図19に示す。このエンコーダ11は発光ダイオード11aと、コリメータレンズ11bと、検出処理部11cとを備えている。この検出処理部11cは複数(4個)のフォトダイオード11dと、信号処理回路11eと、2個のコンパレータ11fA ,11fBと、を有している。
発光ダイオード11aの両端に抵抗を介して電圧Vccが印加されると、発光ダイオード11aから光が発せられる。この光はコリメータレンズ11bによって平行にされて符号板12を通過する。符号板12には所定の間隔(例えば1/180インチ(=1/180×2.54cm))毎にスリットが設けられた構成となっている。
この符号板12を通過した平行光は、図示しない固定スリットを通って各フォトダイオード11dに入射し、電気信号に変換される。4個のフォトダイオード11dから出力される電気信号が信号処理回路11eにおいて信号処理される。この信号処理回路11eから出力される信号がコンパレータ11fA,11fBにおいて比較され、比較結果がパルスとして出力される。コンパレータ11fA、11fB から出力されるパルスENC−A,ENC−Bがエンコーダ11の出力となる。
パルスENC−AとパルスENC−Bは位相が90度だけ異なっている。CRモータ4が正転すなわちキャリッジ3が主走査方向に移動しているときは図20(a)に示すようにパルスENC−AはパルスENC−Bよりも90度だけ位相が進み、CRモータ4が逆転しているときは図20(b)に示すようにパルスENC−AはパルスENC−Bよりも90度だけ位相が遅れるようにエンコーダ4は構成されている。そして、上記パルスの1周期Tは符号板12のスリット間隔(例えば1/180インチ(=1/180×2.54cm))に対応し、 キャリッジ3が上記スリット間隔を移動する時間に等しい。
一方、PFモータ1用のロータリ式エンコーダ13は符号板がPFモータ1の回転に応じて回転する回転円板である以外は、リニア式エンコーダ11と同様の構成となっており、2つの出力パルスENC−A,ENC−Bを出力する。なおインクジェットプリンタにおいては、PFモータ1用のエンコーダ13の符号板に設けられている複数のスリットのスリット間隔は、1/180インチ(=1/180×2.54cm)であり、PFモータ1が上記1スリット間隔だけ回転すると、1/1440インチ(=1/1440×2.54cm)だけ紙送りされるような構成となっている。
次に図17において示した紙検出センサ15の位置について図21を参照して説明する。図21において、プリンタ60の給紙挿入口61に挿入された紙50は、給紙モータ63によって駆動される給紙ローラ64によってプリンタ60内に送り込まれる。プリンタ60内に送り込まれた紙50の先端が例えば光学式の紙検出センサ15によって検出される。この紙検出センサ15によって先端が検出された紙50はPFモータ1によって駆動される紙送りローラ65および従動ローラ66によって紙送りが行われる。
続いてキャリッジガイド部材32に沿って移動するキャリッジ3に固定された記録ヘッド(図示せず)からインクが滴下されることにより印字が行われる。そして所定の位置まで紙送りが行われると、現在、印字されている紙50の終端(後端)が紙検出センサ15によって検出される。そしてPFモータ1によって駆動される歯車67aにより、歯車67bを介して歯車67cが駆動され、これにより、排紙ローラ68および従動ローラ69が回転駆動されて、印字が終了した紙50が排紙口62から外部に排出される。なお、紙送りローラ65の回転軸には、エンコーダ13の符号板が取り付けられている。
次に、この従来のインクジェットプリンタのPFモータ1の制御について図22および図23を参照して説明する。このPFモータ1の制御はDCユニット6によって行われ、このDCユニット6は図22に示すように位置カウンタ6aと、減算部6bと、目標速度演算部6cと、速度演算部6dと、減算器6eと、比例要素6fと、積分要素6gと、微分要素6hと、加算器6iと、D/Aコンバータ6jと、タイマ6kと、加速制御部6mとを備えている。
位置カウンタ6aはエンコーダ13の出力パルスENC−A,ENC−Bの各々の立ち上がりエッジ、立ち下がりエッジを検出し、検出されたエッジの個数を計数し、この計数値に基づいて、PFモータ1によって送られる紙の送り量を演算する。この計数はPFモータ1が正転しているときは1個のエッジが検出されると「+1」を加算し、逆転しているときは、1個のエッジが検出されると「−1」を加算する。パルスENC−AおよびENC−Bの各々の周期は符号板のスリット間隔に等しく、かつパルスENC−AとパルスENC−Bは位相が90度だけ異なっている。このため、上記計数のカウント値「1」はエンコーダ13の符号板のスリット間隔の1/4に対応する。また、PFモータ1が1スリット間隔だけ回転すると、1/1440インチ(=1/1440×2.54cm)だけ紙送りされるからこれにより上記位置カウンタ6aの計数値に1/4×1/1440インチ(=1/4×1/1440×2.54cm)を乗算すれば、PFモータ1の、計数値が「0」に対応する位置すなわち起動開始位置からの紙送り量を求めることができる。このときエンコーダ13の解像度は1/5760インチ(=1/5760×2.54cm)となる。
減算器6bは、目標位置と、位置カウンタ6aのカウント値との位置偏差を演算する。
目標速度演算部6cは、減算器6bの出力である位置偏差に基づいてPFモータ1の目標速度を演算する。この演算は位置偏差にゲインKpを乗算することにより行われる。このゲインKpは位置偏差に応じて決定される。なお、このゲインKpの値は図示しないテーブルに格納していても良い。
速度演算部6dはエンコーダ13の出力パルスENC−A,ENC−Bに基づいてPFモータ1の速度を演算する。この速度は次のようにして求められる。まずエンコーダ13の出力パルスENC−A,ENC−Bの各々の立ち上がりエッジ、立ち下がりエッジを検出し、エッジ間の時間間隔を例えばタイマカウンタによってカウントする。このカウント値をTとすると、速度は1/Tに比例したものとなる。
減算器6eは、目標速度と、速度演算部6dによって演算されたPFモータ1の実際の速度との速度偏差を演算する。
比例要素6fは上記速度偏差に定数Gpを乗算し、乗算結果を出力する。積分要素6gは速度偏差に定数Giを乗じたものを積算する。微分要素6hは現在の速度偏差と、1つ前の速度偏差との差に定数Gdを乗算し、乗算結果を出力する。なお比例要素6f、積分要素6g、および微分要素6hの演算はエンコーダ13の出力パルスENC−Aの1周期毎を、例えば出力パルスENC−Aの立ち上がりエッジに同期して行う。
比例要素6f、積分要素6g、および微分要素6hの出力は加算器6iにおいて加算される。そして加算結果、すなわちPFモータ1の駆動電流がD/Aコンバータ6jに送られてアナログ電流に変換される。このアナログ電流に基づいてドライバ2によってPFモータ1が駆動される。
また、タイマ6kおよび加速制御部6mは加速制御に用いられ、比例要素6f、積分要素6g、および微分要素6hを使用するPID制御は加速途中の定速および減速制御に用いられる。
タイマ6kはCPU16から送られてくるクロック信号に基づいて所定時間毎にタイマ割込み信号を発生する。
加速制御部6mは上記タイマ割込信号を受ける度毎に所定の電流値(例えば20mA)を目標電流値に積算し、積算結果すなわち加速時におけるPFモータ1の目標電流値がD/Aコンバータ6jに送られる。PID制御の場合と同様に上記目標電流値はD/Aコンバータ6jによってアナログ電流に変換され、このアナログ電流に基づいてドライバ2によってPFモータ1が駆動される。
ドライバ2は、例えば4個のトランジスタを備えており、D/Aコンバータ6jの出力に基づいて上記トランジスタを各々ONまたはOFFさせることにより
(a)PFモータ1を正転または逆転させる運転モード
(b)回生ブレーキ運転モード(ショートブレーキ運転モード、すなわちPFモータ1の停止を維持するモード)
(c)PFモータ1を停止させようとするモード
を行わせることが可能な構成となっている。
次に図23(a),(b)を参照してDCユニット6の動作を説明する。PFモータ1が停止しているときにCPU16からDCユニット6にPFモータ1を起動させる起動指令信号が送られると、加速制御部6mから起動初期電流値I0 がD/Aコンバータ6jに送られる。なお、この起動初期電流値I0は起動指令信号とともにCPU16から加速制御部6mに送られてくる。そしてこの電流値I0はD/Aコンバータ6jによってアナログ電流に変換されてドライバ2に送られ、このドライバ2によってPFモータ1が起動開始する(図23(a),(b)参照)。
起動指令信号を受信した後、所定の時間毎にタイマ6kからタイマ割込信号が発生される。加速制御部6mはタイマ割込信号を受信する度毎に、起動初期電流値I0に所定の電流値(例えば20mA)を積算し、積算した電流値をD/Aコンバータ6jに送る。するとこの積算した電流値はD/Aコンバータ6jによってアナログ電流に変換されてドライバ2に送られる。そしてPFモータ1に供給される電流の値が上記積算した電流値となるように、ドライバ2によってPFモータ1が駆動されPFモータ1の速度は上昇する(図23(b)参照)。このためPFモータ1に供給される電流値は図23(a)に示すように階段状になる。
なお、このときPID制御系も動作しているが、D/Aコンバータ6jは加速制御部6mの出力を選択して取込む。
加速制御部6mの電流値の積算処理は、積算した電流値が一定の電流値ISとなるまで行われる。時刻t1において積算した電流値が所定値ISとなると、加速制御部6mは積算処理を停止し、D/Aコンバータ6jに一定の電流値ISを供給する。これによりPFモータ1に供給される電流の値が電流値ISとなるようにドライバ2によって駆動される(図23(a)参照)。
そして、PFモータ1の速度がオーバーシュートするのを防止するために、PFモータ1が所定の速度V1になると(時刻t2 )になると、PFモータ1に供給される電流を減小させるように加速制御部6mが制御する。このときPFモータ1の速度は更に上昇するが、PFモータ1の速度が所定の速度vcに達すると(図23(b)の時刻t3参照)、D/Aコンバータ6jが、PID制御系の出力すなわち加算器6iの出力を選択し、PID制御が行われる。
すなわち、目標位置と、カウンタ6aのカウント値との位置偏差に基づいて目標速度が演算され、この目標速度と、エンコーダ13の出力から得られる実際の速度との速度偏差に基づいて、比例要素6f、積分要素6g、および微分要素6hが動作し、各々比例、積分、および微分演算が行われ、これらの演算結果の和に基づいて、PFモータ1の制御が行われる。なお、上記比例、積分、および微分演算は、例えばエンコーダ13の出力パルスENC−Aの立ち上がりエッジに同期して行われる。これによりPFモータ1の速度は所望の速度veとな るように制御される。なお、所定の速度vcは所望の速度veの70〜80%の値であることが好ましい。
時刻t4からPFモータ1は所望の速度veとなる。その後、PFモータ1が目標位置に近づくと(図23(b)の時刻t5参照)、PFモータ1の減速が行われ、時刻t6にPFモータ1が停止する。
本発明による印刷制御装置の一実施の形態の構成を図1乃至図15を参照して説明する。この実施の形態の印刷制御装置の構成を図1に示す。この実施の形態の印刷制御装置は、図23に示す従来の印刷制御装置6において、紙後端保持駆動制御部80と、紙後端位置カウンタ95と、制御選択部96とを新たに付加した構成となっている。なお、図1に示す通常紙送り制御部100は図23に示す従来の印刷制御装置6内の位置カウンタ6aと、減算器6bと、目標速度演算部6cと、速度演算部6dと、減算器6eと、比例要素6fと、積分要素6gと、微分要素6hと、加算器6iとを備えた構成となっている。すなわち、通常紙送り制御部100は図23に示す従来の印刷制御装置6内のD/Aコンバータ6j、タイマ6k、および加速制御部6mを除いた要素を備えた構成となっている。
次に本実施の形態の印刷制御装置の動作を図2を参照して説明する。
まず、起動指令に基づいて、加速制御部6mによってPFモータ1が起動され、紙送りが開始される。このとき紙送りされる紙の種類や、印刷モードに応じて、制御選択部97が判別し(図2のステップF1参照)、特定の紙の種類や、印刷モード以外の場合は、制御選択部97によって通常紙送り制御部100が選択され(図2のステップF2参照)、従来の場合と同様の紙送りが行われる。
特定の紙の種類(例えば紙厚が厚い紙等)の場合はステップF3に進み、紙の後端が紙検出センサ15によって検出されたかが判定される。紙の後端が検出されない場合は制御選択部97によって通常紙送り制御部100が選択され(図2のステップF2参照)、従来の場合と同様の紙送り制御が行われる。
ステップF3において紙後端が検出された場合は、エンコーダ13の出力に基づいて、紙後端位置カウンタ95によって、紙後端の現在の位置がカウントされる(図2のステップF4参照)。そしてこのカウント値と、紙送り量の目標値とに基づいて、今回の紙送り制御終了後に紙後端が紙後端保持領域で、停止するか否かが制御選択部97によって判定される(図2のステップF5参照)。なお、紙後端保持領域とは図26に示す領域Xのことである。
ステップF5において紙後端保持領域に紙後端が停止すると判定されなかった場合は、制御選択部97によって通常の紙送り制御部100が選択され、従来の場合と同様の紙送り制御が行われる(図2のステップF2参照)。
ステップF5において紙後端保持領域に紙後端が停止すると判定された場合は、制御選択部97によって、紙後端保持駆動制御部80が選択され、紙後端保持駆動制御が行われる(ステップF6参照)。したがって、紙後端が、図26に示す領域Y、すなわち紙検出センサ15の位置から紙後端保持領域Xまでの間の領域Yに停止する場合や紙後端保持領域Xを通過する場合は、紙後端保持駆動制御部80は選択されない。なお、紙後端保持駆動制御部80は紙後端保持領域から紙後端が起動する場合にも、制御選択部97によって選択される。
次に紙後端保持駆動制御部80の構成と動作について図3乃至図15を参照して説明する。この紙後端保持駆動制御部80の構成を図3に示し、その動作を図4に示す。
この紙後端保持駆動制御部80は、位置カウンタ81と、周期カウンタ82と、制御選択部84と、タイマ割込制御部85と、エンコーダ割込制御部86と、ホールド制御部87と、微分制御部88と、選択部89,90とを備えている。そしてこの紙後端保持駆動制御部は、紙後端保持領域に紙後端を保持するように制御する場合に用いられる。
位置カウンタ81はエンコーダ13の出力パルスENC−A,ENC−Bの各々の立ち上がりエッジ、立ち下がりエッジを検出し、検出されたエッジの個数を計数するとともに上記立ち上がりエッジ、立ち下がりエッジに同期してパルスを出力する。この計数はPFモータ1が正転しているときは1個のエッジが検出されると「+1」を加算し、逆転しているときは、1個のエッジが検出されると「−1」を加算する。
周期カウンタ82は、エンコーダ13の出力パルスENC−A,ENC−Bの各々の立ち上がりエッジ、立ち下がりエッジを検出し、符号板12のスリット間隔の1/4を紙が移動する時間(周期)を例えばタイマカウントによってカウントし、このカウント値T-curを出力する。
制御選択部84は設定値Timerを有するタイマカウンタ84aを備えている。このタイマカウンタ84aは制御選択部97からの選択信号に基づいてカウントを開始し、カウント値が上記設定値Timerに達するまでカウントを行い、上記設定値Timerに達したとき、および位置カウンタからの出力パルスを受けたときは、リセットされ再び零からカウントを開始する。
また制御選択部84は、位置カウンタ81からの出力パルスを受けたときに図5に示すように目標位置を含む目標範囲内に紙後端が位置している場合は、ホールド制御部87を選択する。そして上記目標範囲外に位置している場合は、位置カウンタ81からの出力パルスをタイマカウンタ84aが受信したときのカウント値Tに基づいてタイマ割込制御部85かまたはエンコーダ割込制御部86を選択する。上記カウント値Tが設定値Timerに達しても位置カウンタ81から出力パルスを受信しない場合(この場合、T>Timerと見なす)、すなわち紙50が停止しているかまたは目標速度よりもかなりゆっくりと動いている場合はタイマ割込制御部85を選択し、上記カウント値Tが設定値Timerの値以下の場合はエンコーダ割込制御部86を選択する。したがって制御選択部84は位置カウンタ81から出力パルスを受信する毎、またはタイマカウンタ84aのカウント値が設定値Timerに達したときに、上記3つの制御部のうちの1つの制御部を選択する動作を行う。
タイマ割込制御部85は、制御選択部84によって選択されたときには、位置カウンタ81の出力から得られる紙後端の位置および進行方向に基づいてPFモータ1に付加する電流I-curを決定し、選択部89に送出する。
エンコーダ割込制御部86は、制御選択部84によって選択されたときには、位置カウンタ81の出力から得られる紙後端の位置および進行方向と、周期カウンタ82の出力から得られた周期T-curとに基づいて、PFモータ1に付加する電流I-curを決定し、選択部89に送出する。
選択部89は、タイマ割込制御部85が選択されているときにはタイマ割込制御部85の出力を選択し、エンコーダ割込制御部86が選択されているときにはエンコーダ割込制御部86の出力を選択して選択部90に送出する。
微分制御部88は、周期カウンタ82の出力から得られる周期T-curに基づいて、紙後端の現在の速度と基準速度との速度偏差を演算し、この速度偏差と一つ前の割込時、すなわち一つ前の動作時の速度偏差との差に応じた増減電流値I-crtDを決定する。なお、増減電流値I-crtDは、紙後端の現在の速度と基準速度との速度偏差と一つ前の動作時の速度偏差との差に、上記演算された速度偏差に対応した定数を乗じて求めても良い。
ホールド制御部87は、位置カウンタ81の出力から得られる、紙後端の位置および進行方向に基づいて、紙後端が図5に示すホールド時の許容範囲内に位置しているときは、上記範囲内に紙後端の位置が保持されるようにPFモータ1に付加する電流I-curを決定し、紙後端が上記許容範囲外に位置しているときには、制御選択部84を介して、タイマ割込制御部85またはエンコーダ割込制御部86を動作させる。
選択部90はホールド制御部87が選択されているときには、ホールド制御部87の出力を選択し、ホールド制御部87が選択されていないときには選択部89の出力を選択し、この選択された、PFモータ1に付加する電流I-curをD/Aコンバータ6jに送出する。この電流値I-curはD/Aコンバータ6jによってアナログ電流に変換され、このアナログ電流に基づいてドライバ2によってPFモータ1が駆動される。
次に、紙後端保持駆動制御部80の動作の概要を図4を参照して説明する。
まず、紙後端保持駆動制御部80が選択されると、選択された回数が1回目かそれとも2回以上選択されたか制御選択部84によって判定される(ステップF10参照)。1回目の場合は、電流値I-curの初期値としてI-cur=I-startが設定される(ステップF11参照)。1回目の場合は、電流値I-curの初期値として、前回のホールド電流値I-holdがI-cur=I-holdとして設定される(ステップF12参照)。
続いて、タイマカウンタ84aのカウント値TがTimerか否かが判定され(ステップF13参照)、T>Timerの場合は、制御選択部84によってタイマ割込制御部85が選択され、タイマ割込制御が実行される(ステップF14参照)。T≦Timerの場合は制御選択部84によってエンコーダ割込制御部86が選択され(ステップF15参照)、エンコーダ割込制御が行われる。
そして、位置カウンタ81の出力に基づいて、紙後端の現在位置が図5に示す目標範囲LR間に位置しているか否かが制御選択部84によって判定される(ステップF16参照)。紙後端が目標範囲LR間に位置していない場合は、ステップF13に戻り、上述のステップが繰返される。
紙後端が目標範囲LR間に位置している場合は制御選択部84によってホールド制御部87が選択され、ホールド制御が行われる。
次にタイマ割込制御部85の動作の一具体例を図6を参照して説明する。
まず、紙後端の現在位置Pが確認される(ステップF20参照)。続いて紙送りの進行方向Dirが確認され(ステップF21参照)、現在周期TーcurがTimerであることの確認がなされる(ステップF22参照)。
その後、位置カウンタ81の出力に基づいて、紙後端の現在位置が図5に示す目標範囲(LR間)に入っているか否かが判定される(ステップF23参照)。紙後端の現在位置が目標範囲(LR間)に入っている場合は現在の電流値を変更せず(ステップF24参照)、紙後端の現在位置が目標範囲に入っていなくて、図5に示すLL側に位置している場合は、ステップF25に進み、現在の電流値Iーcurに制御量IーstepT1が付加された値がIーcurとなる(Iーcur=Iーcur+IーstepT1)。またステップF23において紙後端の位置が図5に示すRR側に位置している場合は、ステップF26に進み、現在の電流値Iーcurから制御量IーstepT1を減算した値がIーcurとなる(Iーcur=Iーcur−IーstepT1)。
続いて、ステップF27において、現在速度係数Vーradが零に設定され、ステップF28において微分制御部F88が呼び出され、微分制御量IーcurDが演算される。
その後、ステップF29において、現在の電流値Iーcurに上記微分制御量IーcurDが加算された値がIーcurとなる(Iーcur=Iーcur+IーcurD)。このステップF29において演算された電流値Iーcurに基づいてモータ制御が行われる(ステップF30)。すなわち上記電流値Iーcurが選択部89,90を介してD/Aコンバータ6jに送られ、PFモータ1の制御が行われる。
次に上述の微分制御部88の動作の一具体例を、図7を参照して説明する。
まず、微分制御部88が呼び出されると、この呼び出しがタイマ割込制御部85からの呼び出しか否かがステップF40において判定される。タイマ割込制御部85からの呼出しでない場合はステップF41に進み、制御前1個進行方向Dirーlastが現在の進行方向Dirーcurとされた後、ステップF42において現在の速度Vーradが現在の周期Tーcurから求められ(Vーrad=α/Tーcur)、ステップF44に進む。なお、ここでαは周期を速度に変換する係数である。ステップF40において、タイマ割込制御部85からの呼出しの場合は、現在の速度Vーradは「0」に初期設定され(ステップF43)、ステップF44に進む。
ステップF44において、現在の速度Vーradが微分制御における上限速度VーradDと比較される。そして現在の速度Vーradが上限速度VーradDを越えている場合には、現在の速度V-radは上限速度VーradDとされ(ステップF45参照)、ステップF46に進む。ステップF44において、現在の速度Vーradが上限速度VーradD以下の場合は、ステップF46に進む。
ステップF46において、微分制御における基準速度VーradーlimitBから現在の速度を引き現在の加速度係数βーrad2を演算する。続いてステップF47において、紙の送り方向Dirが正転方向か否かが判定される。正転方向の場合はそのままで、ステップF49に進み、逆転方向の場合にはステップF48に進み現在の加速度係数βーrad2に−1を乗算したものを新たに現在の加速度係数βーrad2とし、ステップF49に進む。
ステップF49において、現在の加速度係数βーrad2から1つ前の加速度係数βーrad1を減算して、加速度係数βーradを求める。
その後、ステップF50において、この求めた加速度係数βーradに微分制御量(電流値)IーstepDを乗算し、微分制御量IーcurDを求める。その後、次の微分制御に備えて、1つ前の加速度係数βーrad1を現在の加速度係数βーrad2とする(ステップF51参照)。
そして求めた微分制御量IーcurDの絶対値が微分制御量の上下限値IーcurDーlimit以下か否かがステップF52において判定され、上下限値以下の場合は微分制御量IーcurDは変更せず、そのままとし、上下限値を超えている場合は、微分制御量IーcurDの絶対値が上下限値に等しくなるようにして微分制御を終了する(ステップF53参照)。なお、このとき、微分制御量IーcurDの符号は元のままとする。
次に図6で説明したモータ制御の動作の一具体例を図8を参照して説明する。
まず、現在の電流値Iーcurの絶対値が電流値の上下限値Iーmax以下か否かがステップF32において判定される。上下限値Iーmaxを超えている場合はエラー処理が行われる。上下限値Iーmax以下の場合は、ステップF34に進み、現在の電流値Iーcurが零以上か否かが判定される。零以上の場合は、ステップF35に進み、紙送り正転方向にPFモータ1を駆動する。現在の電流値Iーcurが負の場合はステップF36に進み、紙送り逆転方向にPFモータ1を駆動する。このようにしてモータ制御が行われる。なお、ステップF33において行われるエラー処理の一具体例を図9を参照して説明する。まずステップF37において、全オフブレーキ運転とし、PFモータ1を停止させることにより紙送りを停止する。続いてステップF38において、エラーメッセージを出力し、処理を終了する。
次にエンコーダ割込制御部86の動作の一具体例を図10乃至図12を参照して説明する。まず、ステップF60において、今回の制御のためにPFモータ1を起動してから、エンコーダ割込制御部86の呼出し回数が5回以上か否かが判定され、4回以下の場合は図11に示すステップF76に進み、現在の電流値Iーcurにエンコーダ割込制御量の初期値IーstepEStが加算された後、ステップF77において上述したモータ制御が行われる。
ステップF60において、エンコーダ割込制御部86の呼出し回数が5回以上の場合は、紙後端の現在位置Pの確認(ステップF61参照)、紙送りの進行方向Dirの確認(ステップF62参照)、および現在周期Tーcurの確認(ステップF63参照)が行われる。
その後、ステップF64において、紙後端の現在位置の判定が行われる。紙後端が図5に示す目標範囲(LR間)に位置している場合は、ステップF65に進み、紙送りの進行方向Dirの判定が行われる。進行方向Dirが紙送り正転方向の場合は、後述するホールド電流値Iーholdの計算が行われる(ステップF66参照)。続いてステップF66において、現在の電流値Iーcurからホールド電流値Iーholdが減算されたものが新たな、現在の電流値Iーcurとされる。進行方向が紙送り逆転方向の場合は、ステップF68に進みホールド電流値Iーholdの計算が行われる。続いてステップF69において、現在の電流値Iーcurに上記ホールド電流値Iーholdが加算されたものが新たな、現在の電流値Iーcurとされる。
次にステップF70において、ホールド制御に変更され、目標範囲への到達回数Vーtimesがカウントされる(ステップF71参照)。そして目標範囲突入方向Dirーholdが現在の進行方向Dirーcurとされ(ステップF72参照)、現在の進行方向Dirーcurが進行方向Dirとされる(ステップF73)。
続いてステップF74において、微分制御部88が呼び出されて、微分制御量IーcurDが演算される。その後、ステップF75において、現在の電流値Iーcurに上記微分制御量IーcurDが加算されたものが、新たな、現在の電流値Iーcurとなる。続いて、この現在電流値に基づいてモータ制御が行われる(ステップF77参照)。
再び図10に戻り、図10に示すステップF64において、紙後端の現在位置が、図5に示す範囲LL側にある場合は、図11に示すステップF78に進む。ステップF78において、紙送りの進行方向Dirーcurが紙送り正転方向の場合はステップF79に進み、紙送り逆転方向の場合はステップF80に進む。
ステップF79において、現在の周期Tーcurが、上限速度時エンコーダ周期T−limitD、基準速度時エンコーダ周期T-limitB(>T-limitD)、および下限速度時エンコーダ周期TーlimitL(>TーlimitB)と比較され、比較結果に応じて制御量が決定される。そして現在の電流値Iーcurに、決定された制御量が加算されたものが新しい、現在の電流値Iーcurとし(ステップF79参照)、その後図10に示すステップF74に進み、微分制御が行われる。ステップF79において、決定される制御量は以下の通りである。現在の周期TーcurがTーlimitDより小さい場合には、制御量は−IーstepE1であり、TーcurがTーlimitD以上でかつTーlimitBより小さい場合には、制御量は、−IーstepE2であり、TーcurがTーlimitB以上でかつTーlimitLより小さい場合には、制御量は零であり、TーcurがTーlimitL以上である場合には、制御量は、+IーstepE3である。
ステップF80においては、現在の電流値Iーcurに制御量IーstepE4を加算したものが新しい、現在の電流値Iーcurとされ、その後、図10に示すステップF74に進み、微分制御が行われる。
再び図10に戻り、図10に示すステップF64において、紙後端の現在位置が、図5に示す範囲RR側にある場合は、図12に示すステップF81に進む。ステップF81において、紙送りの進行方向Dirーcurが紙送り正転方向の場合はステップF82に進み、紙送り逆転方向の場合はステップF83に進む。
ステップF82において、現在の電流値Iーcurに制御量IーstepE4を加算したものが新しい、現在の電流値Iーcurとされ、その後、図10に示すステップF74に進み、微分制御が行われる。
ステップF83において、現在の周期Tーcurが、TーlimitD,TーlimitB、およびTーlimitLと比較され、比較結果に応じて制御量が決定される。そして現在の電流値Iーcurに、決定された制御量が加算されたものが新しい、現在の電流値Iーcurとされ(ステップF83参照)、その後、図10に示すステップF74に進み、微分制御が行われる。
ステップF83において、決定される制御量は以下の通りである。現在の周期TーcurがTーlimitDより小さい場合には、制御量は+IーstepE1であり、TーcurがTーlimitD以上でかつTーlimitBより小さい場合には、制御量は、+IーstepE2であり、TーcurがTーlimitB以上でかつTーlimitLより小さい場合には、制御量は零であり、TーcurがTーlimitL以上である場合には、制御量は、−IーstepE3である。
次にホールド制御部87の動作の一具体例を図13を参照して説明する。
まず、紙後端の現在位置Pの確認、進行方向Dirの確認、および現在周期Tーcurの確認が行われる(ステップF90,F91,F92参照)。
次にステップF93において、紙後端の現在位置の判定が行われる。紙後端の現在位置が図5に示す停止許容範囲LL〜RR間に入っている場合は、ステップF94に進み、現在の電流値Iーcurが新たに現在の電流値とされた後、ステップF100に進む。
ステップF93において、紙後端の位置が点LLの外側に位置している場合には、現在の電流値Iーcurに制御量IーstepH1が加算されたものが新たな、現在の電流値とされ(ステップF95参照)、その後、ステップF96において、制御選択部84によってエンコーダ割込制御部86またはタイマ割込制御部85が呼び出され、エンコーダ割込制御またはタイマ割込制御が行われる。そしてその後、ステップF100に進む。
ステップF93において、紙後端の位置が点RRの外側に位置している場合には、現在の電流値Iーcurから制御量IーstepH1が減算されたものが新たな、現在の電流値Iーcurとされ(ステップF97参照)、その後ステップF98において、制御選択部84によって、エンコーダ割込制御部86またはタイマ割込制御部85が呼び出され、エンコーダ割込制御またはタイマ割込制御が行われる。そして、その後ステップF100に進む。
ステップF100において、現在速度係数Vーrad「0」に初期設定される。その後、ステップF101において、微分制御部88が呼び出され、微分制御量IーcurDが求められる。次にステップF102において、現在の電流値Iーcurに上記微分制御量IーcurDが加算された値が、新しい現在の電流値となる。
次にステップF103において、紙送りが停止していてかつ停止時間が停止時間上限値Tーholdーlimit以下か否かが判定され、停止時間上限値Tーholdーlimitを超えている場合には現在の電流値Iーcurを変更せずステップF105に進み、停止時間上限値Tーholdーlimit以下の場合には、現在の電流値Iーcurを「0」にしてステップF105に進む。
ステップF105において、既に述べたモータ制御が行われる。その後ステップF106に進み、タイマ割込制御またはエンコーダ割込制御からホールド制御に入った回数、すなわち振動回数Vーtimesが停止判定振動回数Vーtimeーlimit以上か否かが判定される。停止判定振動回数以上の場合にはステップF109に進み、停止判定がOKとされる。停止判定振動回数より少ない場合にはステップF107に進む。
ステップF107において、停止時間Hーtimeが停止判定時間Hーtimeーlimit以上か否かが判定され。停止判定時間以上の場合はステップF109に進み、停止判定がOKとされる。停止判定時間未満の場合はステップF108に進み停止判定は不可とされる。
最後に、エンコーダ割込制御において用いられたホールド電流値Iーholdの計算を図14を参照して説明する。まず、ステップF120において、振動回数Vーtimesが1か否かが判定される。振動回数Vーtimesが1に等しい場合には、ステップF121に進み、ホールド電流値Iーholdはホールド基準電流Iーholdーbaseとされる。振動回数Vーtimesが1に等しくない場合には、ステップF122に進み、紙送りの現在進行方向Dirーcurが目標範囲突入方向Dirーholdか否か判定される。目標範囲突入方向Dirーholdに等しい場合には、ステップF123に進み、現在のホールド電流Iーholdからホールド電流補正量Iーholdーadを減算した値を、新たなホールド電流値Iーholdとする。ステップF122において目標範囲突入方向Dirーholdに等しくない場合には、ステップF124に進み、現在のホールド電流値Iーholdにホールド電流補正量Iーholdーadを加算した値を、新たなホールド電流値I-holdとする。
以上説明したように本実施の形態の印刷制御装置によれば、紙の後端を紙後端保持領域に保持することが可能となり、紙後端近くでも、紙送りの精度を確保することができる。
本発明は、特にサーボモータ(DCモータ、ACモータ)を用いて制御対象を下記の通り制御するような場合に有効である。
a)高精度に位置決め制御を行うときに、PID制御によって粗く位置決め後、本発明の制御に切り換えて位置決め制御を行う場合、
b)粗く速度制御を行って目標位置まで制御し(例えば、プリンタでは、インクの吸引ポンプを動作するポンプモータなどの制御)、本発明の制御に切り換えて位置決め制御を行う場合、
c)用紙格納部の紙を分離するためにトルクを保持させながら紙送りする場合、
d)連続紙をキャリッジに搭載したカッターで切断する際に発生する負荷に対応するために、本発明の制御を適用する場合、
e)厚紙を遅い速度で給紙するときに本発明の制御を適用する場合
に有効である。
次に、本発明によるモータの制御プログラムを記録した記録媒体の一実施の形態について図15および図16を参照して説明する。図15,図16は、本実施の形態のモータの制御プログラムを記録した記録媒体が用いられるコンピュータシステム130の一例を示す斜視図およびブロック図である。図15において、コンピュータシステム130は、CPUを含むコンピュータ本体131と、例えばCRT等の表示装置132と、キーボードやマウス等の入力装置133と、印刷を実行する印刷装置134と、を備えている。
コンピュータ本体131は、図16に示すように、RAMより構成される内部メモリ135と、内蔵または外付け可能なメモリユニット136と、を備えており、メモリユニット136としてはフレキシブルまたはフロッピディスク(FD)ドライブ137,CD−ROMドライブ138,ハードディスクドライブ(HD)ユニット139が搭載されている。図15に示すように、これらのメモリユニット136に用いられる記録媒体140としては、FDドライブ137のスロットに挿入されて使用されるフレキシブルディスクまたはフロッピディスク(FD)141と、CD−ROMドライブ138に用いられるCD−ROM142等が用いられる。
図15および図16に示すように、一般的なコンピュータシステムに用いられる記録媒体140としては、FD141やCD−ROM142が考えられるが、本実施の形態は特に印刷装置134の制御プログラムに関するものであるので、例えば印刷装置134に内蔵させる不揮発性メモリとしてのROMチップ143に本発明のモータの制御プログラムを記録させるようにしても良い。
また、記録媒体としては、FD、CD−ROM、MO(Magneto−Optical)ディスク、DVD(Digital Verstile Disk)、その他の光学的記録ディスク、カードメモリ、磁気テープ等であっても良いことは云うまでもない。
本実施の形態の記録媒体140は、図2に示す制御手順ステップF1〜F6、図4に示す制御手順ステップF10〜F17、図6に示す制御手順ステップF20〜F30、図7に示す制御手順ステップF40〜F53、図8に示す制御手順ステップF32〜F36、図9に示す制御手順ステップF37〜F38、図10に示す制御手順ステップF60〜F77、図11に示す制御手順ステップF78〜F80、図12に示す制御手順ステップF81〜F83、図13に示す制御手順ステップF90〜F109、および図14に示す制御手順ステップF120〜F124を備えるように構成したものである。