(57)【特許請求の範囲】
【請求項１】
外部にあるホスト・コンピュータから受信した記録情報に従って、記録装置を構成する各センサの検出信号を監視しながら記録装置を構成する各ハードウェア要素を制御し、且つ、該各ハードウェア要素を正常に制御できない致命的エラー発生時に、前記ホスト・コンピュータに致命的エラーコードを返すと同時に記録装置を休止状態とするエラー処理ルーチンを実行するファームウェアと、
該ファームウェアからデータ書き込み可能であって且つ前記ホスト・コンピュータからデータ読み取り可能な記憶装置と、
を備えた、記録媒体に記録を行う記録装置であって、
前記記録装置を節電状態とする休止モードを実行可能に構成されるとともに、前記ホスト・コンピュータから記録データを受信しない時間が所定の時間に達した際には前記休止モードに移行する休止モード移行動作を実行し、前記休止モードにおいて前記ホスト・コンピュータから記録データを受信した際には前記休止モードを解除する休止モード解除動作を実行するよう構成され、
基準となる時から前記致命的エラー発生時までの経過時間を監視する経過時間監視手段を備え、
前記経過時間監視手段は、前記記録装置の電源投入時から前記致命的エラー発生時までの経過時間ＴＡをカウントするタイムカウンタＡと、
前記記録装置の電源投入時から最後に実行された前記休止モード解除動作の動作開始時までの経過時間ＴＢをカウントするタイムカウンタＢと、を備えて構成され、
前記致命的エラー発生時に、前記経過時間ＴＡと前記経過時間ＴＢが同じ場合には前記経過時間ＴＡを経過時間ＴＦとし、前記経過時間ＴＡと前記経過時間ＴＢが異なる場合には前記経過時間ＴＡから前記経過時間ＴＢを減算した時間を経過時間ＴＦとして、
前記経過時間ＴＦと、
前記致命的エラー発生時における前記各センサの検出信号と、
に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【請求項２】
請求項１において、前記ファームウェアが、記録装置の現在状態を示すフラグを設定しながら記録装置を構成する各ハードウェア要素を制御し、
前記致命的エラー発生時に、当該致命的エラー発生時における前記各フラグの設定状態に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【請求項３】
請求項１または２において、前記致命的エラー発生時に、前記各ハードウェア要素のうち最後に駆動制御が行われた当該ハードウェア要素に対して出した制御指令内容に関するデータを前記ファームウェアによって前記記憶装置に書き込む、ことを特徴とする記録装置。
【請求項４】
請求項１から３のいずれか１項において、記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、
該キャリッジの主走査方向位置を検出するキャリッジ位置検出手段と、を有し、
前記致命的エラー発生時に、前記キャリッジ位置検出手段によって検出された前記致命的エラー発生時における前記キャリッジの主走査方向位置に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【請求項５】
請求項１から４のいずれか１項において、記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、
該キャリッジを駆動するキャリッジ駆動手段と、
前記キャリッジの待機位置近傍において前記キャリッジが往復動する経路上に出没可能に設けられ、前記キャリッジが待機位置にある場合に、出状態となって前記キャリッジと係合可能となることにより、前記キャリッジを待機位置側にロックするキャリッジロック部材と、
該キャリッジロック部材を前記キャリッジの往復動経路上に出没させるキャリッジロック部材駆動手段と、を備え、
前記キャリッジロック部材駆動手段が前記キャリッジロック部材の没動作実行に失敗した際に、前記ファームウェアが当該没動作実行のリトライを前記キャリッジロック部材駆動手段に指示する様に構成され、
前記致命的エラー発生時に、前記リトライ指示の累積回数に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【請求項６】
請求項５において、前記キャリッジロック部材駆動手段に前記キャリッジロック部材の出没動作実行命令を出した後に、前記キャリッジ駆動手段を構成する駆動モータの電流値の変化を監視しながら前記キャリッジがその際位置する第１のキャリッジ位置から前記キャリッジロック部材の出没位置を跨いだ第２のキャリッジ位置へ前記キャリッジを移動させ、該キャリッジの前記第１のキャリッジ位置から前記第２のキャリッジ位置への移動中において前記電流値が一定値を越えるか否かを検出することによって前記キャリッジロック部材の出没状態を検出する、キャリッジロック状態検出手段を備えていることを特徴とする記録装置。
【請求項７】
請求項５または６において、前記キャリッジ駆動手段と前記キャリッジロック部材駆動手段とを同時に制御することにより、前記キャリッジロック部材の没動作と、前記キャリッジの前記キャリッジロック部材からの離間動作とを同時に実行して前記キャリッジのロック状態を解除する、キャリッジロック解除手段を備えていることを特徴とする記録装置。
【請求項８】
請求項１から７のいずれか１項において、前記記憶装置がＥＥＰＲＯＭであることを特徴とする記録装置。
【請求項９】
請求項１から７のいずれか１項に記載の前記ファームウェアが格納されていることを特徴とするコンピュータ読み取り可能な記憶装置。
【請求項１０】
外部にあるホスト・コンピュータから受信した記録情報に従って、記録装置を構成する各センサの検出信号を監視しながら記録装置を構成する各ハードウェア要素を制御し、且つ、該各ハードウェア要素を正常に制御できない致命的エラー発生時に、前記ホスト・コンピュータに致命的エラーコードを返すと同時に記録装置を休止状態とするエラー処理ルーチンを実行するファームウェアと、
該ファームウェアからデータ書き込み可能であって且つ前記ホスト・コンピュータからデータ読み取り可能な記憶装置と、
を備えた、記録媒体に記録を行う記録装置であって、
基準となる時から前記致命的エラー発生時までの経過時間を監視する経過時間監視手段と、
記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、
該キャリッジを駆動するキャリッジ駆動手段と、
前記キャリッジの待機位置近傍において前記キャリッジが往復動する経路上に出没可能に設けられ、前記キャリッジが待機位置にある場合に、出状態となって前記キャリッジと係合可能となることにより、前記キャリッジを待機位置側にロックするキャリッジロック部材と、
該キャリッジロック部材を前記キャリッジの往復動経路上に出没させるキャリッジロック部材駆動手段と、
前記キャリッジ駆動手段と前記キャリッジロック部材駆動手段とを同時に制御することにより、前記キャリッジロック部材の没動作と、前記キャリッジの前記キャリッジロック部材からの離間動作とを同時に実行して前記キャリッジのロック状態を解除する、キャリッジロック解除手段と、を備え、
前記キャリッジロック部材駆動手段が前記キャリッジロック部材の没動作実行に失敗した際に、前記ファームウェアが当該没動作実行のリトライを前記キャリッジロック部材駆動手段に指示する様に構成され、
前記致命的エラー発生時に、
前記経過時間と、
前記致命的エラー発生時における前記各センサの検出信号と、
前記リトライ指示の累積回数に関するデータと、
に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【請求項１１】
外部にあるホスト・コンピュータから受信した記録情報に従って、記録装置を構成する各センサの検出信号を監視しながら記録装置を構成する各ハードウェア要素を制御し、且つ、該各ハードウェア要素を正常に制御できない致命的エラー発生時に、前記ホスト・コンピュータに致命的エラーコードを返すと同時に記録装置を休止状態とするエラー処理ルーチンを実行するファームウェアと、
該ファームウェアからデータ書き込み可能であって且つ前記ホスト・コンピュータからデータ読み取り可能な記憶装置と、
を備えた、記録媒体に記録を行う記録装置であって、
基準となる時から前記致命的エラー発生時までの経過時間を監視する経過時間監視手段と、
記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、
該キャリッジを駆動するキャリッジ駆動手段と、
前記キャリッジの待機位置近傍において前記キャリッジが往復動する経路上に出没可能に設けられ、前記キャリッジが待機位置にある場合に、出状態となって前記キャリッジと係合可能となることにより、前記キャリッジを待機位置側にロックするキャリッジロック部材と、
該キャリッジロック部材を前記キャリッジの往復動経路上に出没させるキャリッジロック部材駆動手段と、
前記キャリッジ駆動手段と前記キャリッジロック部材駆動手段とを同時に制御することにより、前記キャリッジロック部材の没動作と、前記キャリッジの前記キャリッジロック部材からの離間動作とを同時に実行して前記キャリッジのロック状態を解除する、キャリッジロック解除手段と、
前記キャリッジロック部材駆動手段に前記キャリッジロック部材の出没動作実行命令を出した後に、前記キャリッジ駆動手段を構成する駆動モータの電流値の変化を監視しながら前記キャリッジがその際位置する第１のキャリッジ位置から前記キャリッジロック部材の出没位置を跨いだ第２のキャリッジ位置へ前記キャリッジを移動させ、該キャリッジの前記第１のキャリッジ位置から前記第２のキャリッジ位置への移動中において前記電流値が一定値を越えるか否かを検出することによって前記キャリッジロック部材の出没状態を検出する、キャリッジロック状態検出手段と、を備え、
前記キャリッジロック部材駆動手段が前記キャリッジロック部材の没動作実行に失敗した際に、前記ファームウェアが当該没動作実行のリトライを前記キャリッジロック部材駆動手段に指示する様に構成され、
前記致命的エラー発生時に、
前記経過時間と、
前記致命的エラー発生時における前記各センサの検出信号と、
前記リトライ指示の累積回数に関するデータと、
に関するデータを前記ファームウェアによって前記記憶装置に書き込む、
ことを特徴とする記録装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録媒体に記録を行う記録装置に関する。また、本発明は、該記録装置を構成する各ハードウェア要素を制御するファームウェアが格納された、コンピュータ読み取り可能な記憶装置に関する。
【０００２】
【従来の技術】
プリンタ等に代表される記録装置は、例えば印字媒体の給送経路上における当該印字媒体の通過を検出する紙検出器や、主走査方向に往復動する様に構成された記録部の現在位置を検出する記録部検出器等の、種々のセンサを備えている。更に、記録装置は、例えば前記記録部を主走査方向に往復動させる駆動モータや、印字媒体を記録部に一定ピッチで搬送する搬送ローラを駆動する駆動モータ等の、種々の制御対象（ハードウェア要素）を備えている。
【０００３】
これら種々の制御対象は、ソフトウェア手段としてのファームウェアによって制御される。ファームウェアは、外部にあるホスト・コンピュータから受信した印刷情報に従って、記録装置を構成する前記各センサの検出信号を監視しながら、記録装置を構成する前記各制御対象（ハードウェア要素）を制御する。また、当該ファームウェアには、その制御ルーチンの実行過程において、記録装置の現在状態を示すフラグ、例えば、記録装置が現在クリーニング動作中である、等のフラグを設定し、これによって、後の制御ルーチンの分岐処理を判断し、適正なハードウェア制御を行うものもある。
【０００４】
【発明が解決しようとする課題】
ところで、この様な記録装置を制御するファームウェアは、制御対象を正しく制御できなかった際に実行するエラー制御ルーチンを有している。即ち、当該エラー制御ルーチンは、記録装置に何らかの致命的なハードウェア障害（致命的エラー）が発生した場合に実行される。従って当該致命的エラーが発生すると、記録装置は休止状態となってその後の記録動作を中止する。またこの際、記録装置は、前記ホスト・コンピュータに致命的エラーが発生したことを示すエラーコードを返し、記録動作の継続が不可能である旨を知らせる様になっている。
【０００５】
ここで、従来この様なエラーコードは、どの様な制御ルーチンにおいて致命的エラーが発生したのか、例えば、“排紙エラー”、“給紙エラー”、“紙送りエラー”等の様に、記録装置における記録動作を大別した上で、当該大別した記録動作のいずれの範疇に属するものであるかを示すに止まっていた。従って、前記ホスト・コンピュータ側からすると、前記致命的エラーが大凡どの様な動作中に発生したかについては判るものの、当該致命的エラーのより詳細な内容、例えば、致命的エラー発生時において実際に制御不能となったハードウェア要素がどれか、或いは、当該制御不能となったハードウェア要素の駆動状態（駆動モータであれば、回転方向、回転スピード）、等については知る術が無く、また、当該制御不能となったハードウェア要素と動作的に密接な関係を有する他のハードウェア要素との因果関係も掴めないことから、特に、当該致命的エラーが再現性の低いものであると、当該致命的エラーの再発防止策を講じることが困難となっていた。
【０００６】
そこで本発明はこの様な状況に鑑みなされたものであり、その目的は、ハードウェア要素が制御不能となる致命的エラーの発生原因を、精度良く確実に特定することによって、致命的エラーの効果的な再発防止対策を講じることにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本願請求項１記載の記録装置は、外部にあるホスト・コンピュータから受信した記録情報に従って、記録装置を構成する各センサの検出信号を監視しながら記録装置を構成する各ハードウェア要素を制御し、且つ、該各ハードウェア要素を正常に制御できない致命的エラー発生時に、前記ホスト・コンピュータに致命的エラーコードを返すと同時に記録装置を休止状態とするエラー処理ルーチンを実行するファームウェアと、該ファームウェアからデータ書き込み可能であって且つ前記ホスト・コンピュータからデータ読み取り可能な記憶装置と、を備えた、記録媒体に記録を行う記録装置であって、基準となる時から前記致命的エラー発生時までの経過時間を監視する経過時間監視手段を備え、前記致命的エラー発生時に、該経過時間と、前記致命的エラー発生時における前記各センサの検出信号と、に関するデータを前記ファームウェアによって前記記憶装置に書き込むことを特徴とする。
【０００８】
本願請求項１記載の発明によれば、基準となる時から致命的エラー発生時までの経過時間と、致命的エラー発生時における記録装置の各センサの検出信号、に関するデータを記憶装置に保存するので、これによって致命的エラー、即ち、記録動作を途中で中止せざるを得ないメカ的エラー、の発生原因を精度良く確実に特定することが可能となり、以て効果的な致命的エラー発生防止対策を講じることが可能となる。
【０００９】
即ち、記録装置の各ハードウェア要素を制御するファームウェアは、記録装置を構成する各センサ、例えば、主走査方向に往復動作する記録ヘッド部を備えた記録装置であれば当該記録ヘッド部の位置を検出するセンサや、記録媒体の給送経路上に設置される記録媒体を検出するセンサ、をはじめとする種々のセンサ、の検出信号を監視しながら、前記各ハードウェア要素の適切な制御を行う。
従って、この様な各センサの検出信号は、とある時点における記録装置の状態を判断する為の、有力な手掛かりとなる。
【００１０】
一方、致命的エラー発生時点において記録装置がどの様な動作を行っていたか、の詳細についての推定は、基準となる時から致命的エラー発生時までの経過時間が判明していれば、ファームウェアの制御ルーチンからタイム・チャートを作成することによって推定することができる。しかし、当該推定はあくまで推定に過ぎず、実際に致命的エラーが発生した時点における記録装置の動作状態の、正確な再現を保証するものでは無い。尚、“基準となる時”とは、例えば記録装置の電源を投入した時であり、或いは、ホスト・コンピュータから記録情報を受信した時であり、或いは、長期間の休止状態（所謂節電モード）から再び待機状態（記録動作を直ちに開始することができる状態）に復帰した時であり、即ち、前記タイム・チャートを作成する際にスタート地点を特定することが可能な時を言う。
【００１１】
しかし、本願請求項１記載の記録装置は、前記基準となる時から致命的エラー発生時までの経過時間を監視する経過時間監視手段を備えた上で、致命的エラー発生時に、前記経過時間と共に、致命的エラー発生時における各センサの検出信号に関するデータをホスト・コンピュータからアクセス可能な記憶装置に書き込む様になっている。従って、致命的エラーが発生して記録装置が記録動作を中止した際に、ホスト・コンピュータからこれらデータを読み出すことができ、そして読み出したこれらのデータから、前記タイム・チャートによって推定した、致命的エラー発生時の記録装置の動作状態を裏付けることが可能となり、従って致命的エラー発生時点における記録装置の状態を正確に特定することができ、以て致命的エラー発生要因を精度良く確実に特定することが可能となる。また、特に制御不能となったハードウェア要素と動作的に密接な関連を有する他のハードウェア要素を特定することが可能となることからも、より一層致命的エラー発生要因を精度良く特定することが可能となる。
ここで、”基準となる時”から”致命的エラー発生時”までの間に、長期間（例えば、数週間）のアイドルタイムが介在すると、前記タイム・チャートを作成し、そして当該タイム・チャートに致命的エラー発生ポイントを書き込む際に精度が低下する。即ち、“基準となる時”から致命的エラー発生時までの経過時間が長いと、所謂“ズレ”が生じて、致命的エラー発生時における記録装置の動作を正確に特定できなくなる。そこで、２つのタイムカウンタＡ、Ｂを用いることにより、”基準となる時”を、最後の休止モード解除動作の開始時に設定し、当該時点から致命的エラー発生時までの経過時間を採用するので、前記長期間のアイドルタイムをタイム・チャート上から排除することができ、以て致命的エラー発生時における記録装置の動作推定精度を向上させることが可能となる。
【００１２】
本願請求項２記載の記録装置は、請求項１において、前記ファームウェアが、記録装置の現在状態を示すフラグを設定しながら記録装置を構成する各ハードウェア要素を制御し、前記致命的エラー発生時に、当該致命的エラー発生時における前記各フラグの設定状態に関するデータを前記ファームウェアによって前記記憶装置に書き込むことを特徴とする。
【００１３】
ファームウェアによっては、その制御フローにおいて、記録装置の現在状態を示す各フラグ、例えば、記録装置がクリーニング動作中であることを示すフラグや、インク・カートリッジを搭載する記録装置であればインク・カートリッジが正常に搭載されているか否かを示すフラグ、をはじめとする種々のフラグ、を設定しながら、以降の各ハードウェア要素の適切な制御を行うものがある。
従って、この様な記録装置の現在状態を示す各フラグは、とある時点における記録装置の状態を判断する為の、有力な手掛かりとなる。
【００１４】
そして本願請求項２記載の記録装置は、前記致命的エラー発生時に、当該致命的エラー発生時におけるこれら各フラグの設定状態に関するデータをホスト・コンピュータからアクセス可能な記憶装置に書き込む様になっている。従って、致命的エラーが発生して記録装置が記録動作を中止した際に、ホスト・コンピュータからこれらデータを読み出すことができ、そして読み出したこれらのデータから、前記タイム・チャートによって推定した、致命的エラー発生時の記録装置の動作状態を更に確実に裏付けることが可能となり、以て致命的エラー発生要因を更に精度良く確実に特定することが可能となる。
【００１５】
本願請求項３記載の記録装置は、請求項１または２において、前記致命的エラー発生時に、前記各ハードウェア要素のうち最後に駆動制御が行われた当該ハードウェア要素に対して出した制御指令内容に関するデータを前記ファームウェアによって前記記憶装置に書き込むことを特徴とする。
【００１６】
ファームウェアによっては、各ハードウェア要素の制御に際し、所謂“負荷制御”を採用するものがある。“負荷制御”とは、ハードウェア要素を駆動制御するに際し、一定の駆動量（例えば、駆動モータであれば回転量）を指示して駆動制御するのでは無く、制御対象となるハードウェア要素が一定の負荷に抗しながら動作を行う性質を有するものである場合に、当該一定の負荷に打ち勝って目的とする制御（例えば、目的とする位置まで移動させる、等）を達成させる様な制御方法であり、従って負荷制御を採用する制御ルーチンは、前記一定の負荷の大小によって、その制御ルーチンを完了させる為に必要な時間が異なる可能性がある。換言すると、制御時間の再現性が低いということになる。
この様な制御を行う記録装置において致命的エラーが発生すると、制御ルーチンから前述したタイム・チャートを作成し、当該タイム・チャートから致命的エラー発生時における記録装置の動作状態を推定する場合に、所謂“時間のズレ”が生じてその推定の精度が低下することになる。
【００１７】
しかし、本願請求項３記載の記録装置は、致命的エラー発生時点において最後に駆動制御が行われたハードウェア要素に対して出した制御指令内容に関するデータをホスト・コンピュータからアクセス可能な記憶装置に書き込む様になっている。従って、致命的エラー発生後に当該制御指令内容に関するデータを読み出し、当該制御指令内容に関するデータを考慮することによって、前記時間のズレを修正することが可能となり、従って前記負荷制御を使用する場合であっても、致命的エラー発生時における記録装置の動作状態を精度良く特定することが可能となる。
【００１８】
本願請求項４記載の記録装置は、請求項１から３のいずれか１項において、記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、該キャリッジの主走査方向位置を検出するキャリッジ位置検出手段と、を有し、前記致命的エラー発生時に、前記キャリッジ位置検出手段によって検出された前記致命的エラー発生時における前記キャリッジの主走査方向位置に関するデータを前記ファームウェアによって前記記憶装置に書き込むことを特徴とする。
【００１９】
記録装置は、記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、該キャリッジの主走査方向位置を検出するキャリッジ位置検出手段とを備えている。ここで、キャリッジは主走査方向に往復動する構成要素であり、また、待機位置に戻った際には、該キャリッジを待機位置にロックするキャリッジロック部材と係合する等、種々の動作を頻繁に行う構成要素である為、当該キャリッジが致命的エラーの発生原因に深く関係する確率が高いものとなっている。
そこで、本願請求項４記載の記録装置は、致命的エラー発生時に、当該致命的エラー発生時におけるキャリッジの主走査方向位置に関するデータを記憶装置に書き込むので、これによって、致命的エラー発生原因をより確実に特定することが可能となる。
【００２０】
本願請求項５記載の記録装置は、請求項１から４のいずれか１項において、記録媒体に記録を行う記録部を備えた、主走査方向に往復動するキャリッジと、該キャリッジを駆動するキャリッジ駆動手段と、前記キャリッジの待機位置近傍において前記キャリッジが往復動する経路上に出没可能に設けられ、前記キャリッジが待機位置にある場合に、出状態となって前記キャリッジと係合可能となることにより、前記キャリッジを待機位置側にロックするキャリッジロック部材と、該キャリッジロック部材を前記キャリッジの往復動経路上に出没させるキャリッジロック部材駆動手段と、を備え、前記キャリッジロック部材駆動手段が前記キャリッジロック部材の没動作実行に失敗した際に、前記ファームウェアが当該没動作実行のリトライを前記キャリッジロック部材駆動手段に指示する様に構成され、前記致命的エラー発生時に、前記リトライ指示の累積回数に関するデータを前記ファームウェアによって前記記憶装置に書き込むことを特徴とする。
【００２１】
キャリッジを待機位置側にロックするキャリッジロック部材は、キャリッジの往復動経路上に出没動作し、出状態となることにより、キャリッジを待機位置側にロックする。一方、該キャリッジロック部材は、出状態において、キャリッジが何らかの外力を受けることにより、当該キャリッジと強く係合した状態となる場合がある。従ってこの場合、当該一定の力によってキャリッジロック部材の没動作が阻害され、当該キャリッジロック部材の没動作実行に失敗する場合がある。ファームウェアはこの様な場合に、キャリッジロック部材駆動手段に前記没動作実行のリトライを促すことが望ましいが、当該リトライ指示の累積回数の多少は、即ち記録装置の致命的エラー発生確率の大小を表している。つまり、前記没動作のリトライ回数が多い記録装置は、キャリッジロック部材の前記没動作が円滑に行えない記録装置であると推定でき、換言すれば当該キャリッジロック部材或いはキャリッジが原因によるメカ的エラーが発生し易い記録装置であると言える。
【００２２】
本願請求項５記載の発明によれば、致命的エラー発生時に、前記リトライ指示の累積回数に関するデータを記憶装置に書き込むので、これによって致命的エラーの発生が、単に“キャリッジロック部材の没動作実行（キャリッジロック解除）に失敗した”ことに起因することのみならず、“キャリッジロック部材の没動作実行（キャリッジロック解除）が潜在的に行いづらいハードウェア構成であった”ことに起因することを知ることができ、以て一層精度の良い致命的エラー発生原因の特定を行うことが可能となる。
【００２３】
本願請求項６記載の記録装置は、請求項５において、前記キャリッジロック部材駆動手段に前記キャリッジロック部材の出没動作実行命令を出した後に、前記キャリッジ駆動手段を構成する駆動モータの電流値の変化を監視しながら前記キャリッジがその際位置する第１のキャリッジ位置から前記キャリッジロック部材の出没位置を跨いだ第２のキャリッジ位置へ前記キャリッジを移動させ、該キャリッジの前記第１のキャリッジ位置から前記第２のキャリッジ位置への移動中において前記電流値が一定値を越えるか否かを検出することによって前記キャリッジロック部材の出没状態を検出する、キャリッジロック状態検出手段を備えていることを特徴とする。
【００２４】
本願請求項６記載の発明によれば、記録装置はキャリッジのロック状態を検出するキャリッジロック状態検出手段を備えているので、これによってキャリッジロック動作或いはキャリッジロック解除動作を実行した後に、実際にこれら動作が正確に実行されたか否かを検出することができ、従ってファームウェアにおいて単にメカ的エラーが発生したことのみをもって後の記録動作を停止させることなく、例えば、前記キャリッジロック動作或いは前記キャリッジロック解除動作をリトライする等の、キャリッジのロック状態に応じた適切なエラー処理を行うことが可能となり、以て円滑な記録動作を行うことができる。
【００２５】
また、当該キャリッジロック状態検出手段は、既存の構成要素、即ち、キャリッジと、キャリッジモータと、キャリッジロック部材とを利用し、そしてこれらを制御するファームウェアによってキャリッジのロック状態を検出する。より詳しくは、キャリッジをキャリッジロック部材の出没位置を跨いで往復動作させ、キャリッジが当該往復動作を行うことができたか否かを、キャリッジモータの負荷、即ちキャリッジモータの電流値を監視することによって判断する。つまり、当該電流値が一定値を越えなければ、キャリッジがキャリッジロック部材の出没位置を通過できたことになり、キャリッジロック部材が没状態（キャリッジロック解除状態）であると判断することができる。
従って以上により、既存の構成要素を利用して、キャリッジロック状態検出手段を低コストに構成することができる。
【００２６】
本願請求項７記載の記録装置は、請求項５または６において、前記キャリッジ駆動手段と前記キャリッジロック部材駆動手段とを同時に制御することにより、前記キャリッジロック部材の没動作と、前記キャリッジの前記キャリッジロック部材からの離間動作とを同時に実行して前記キャリッジのロック状態を解除する、キャリッジロック解除手段を備えていることを特徴とする。
【００２７】
本願請求項７記載の発明によれば、より適切に且つ確実に、キャリッジと、キャリッジロック部材との係合状態を解くことが可能となる。即ち、キャリッジロック解除を行う際には、キャリッジとキャリッジロック部材との係合状態、つまり、キャリッジロック部材がキャリッジから一定の力を受けている場合を想定し、確実にキャリッジロック部材の没動作を実行する為にキャリッジをキャリッジロック部材から一旦離間させる離間動作を実行し、その後に、キャリッジロック部材の没動作を行い、以てキャリッジロック解除を行うのが一般的である。しかし、キャリッジに何らかの外力が加わっていると、キャリッジがキャリッジロック部材から一旦離間しても、その後にキャリッジロック部材側に前記外力によって押し戻され、そして再びキャリッジロック部材に一定の力を作用させる虞もある。この様な場合、キャリッジロック部材の没動作を実行しようとしても、該キャリッジロック部材はキャリッジとの圧接状態にある為、従って該キャリッジロック部材は没状態とはならず、キャリッジロック解除を実行することができない場合がある。
【００２８】
しかし、本願請求項７記載の記録装置は、キャリッジの離間動作と、キャリッジロック部材の没動作とを同時に行うので、キャリッジがキャリッジロック部材側に押し戻される様な何らかの外力を受けている場合でも、キャリッジの離間動作実行によってキャリッジのキャリッジロック部材に対する圧接状態が緩和される一瞬の隙、或いは、キャリッジがキャリッジロック部材から離間する一瞬の隙を利用してキャリッジロック部材の没動作を正常に実行することができ、従って、キャリッジロック解除動作をより適切に且つ確実に行うことが可能となる。
【００２９】
本願請求項８記載の記録装置は、請求項１から７のいずれか１項において、前記記憶装置がＥＥＰＲＯＭであることを特徴とする。
本願請求項８記載の発明によれば、致命的エラー発生原因特定の為に種々のデータを書き込む記憶装置がＥＥＰＲＯＭであるので、安価に且つ簡易に記憶装置を構成することができる。
【００３０】
本願請求項９記載のコンピュータ読み取り可能な記憶装置は、請求項１から７のいずれか１項に記載の前記ファームウェアが格納されていることを特徴とする。
本願請求項９記載の発明によれば、コンピュータ読み取り可能な記憶装置は、請求項１から７のいずれか１項に記載の前記ファームウェアを格納しているので、当該記憶装置を記録装置に搭載することにより、前述した本願請求項１から７のいずれか１項に記載の発明と同様な作用効果を得ることが可能となる。
【００３１】
【発明の実施の形態】
＜インク・ジェット・プリンタの概略構成＞
以下では、図１を参照しながら、本発明に係る「記録装置」としてのインク・ジェット・プリンタの概要について説明する。ここで、図１は、インク・ジェット・プリンタ１００の概略側面図である。
【００３２】
インク・ジェット・プリンタ（以下、単に「プリンタ」という。）１００は、「被記録材」としての印刷用紙（単票紙、以下、単に「用紙」という。）Ｐの給送経路として側面視略Ｕ字型の給送経路を有する。この給送経路上には、給紙トレイ１と、給紙ローラ３と、搬送ローラ６と、キャリッジ８と、排紙ローラ７とが設けられている。
【００３３】
給紙トレイ１は、複数枚積層された用紙Ｐを収納可能な構成を有し、用紙Ｐを収納した状態でプリンタ１００に着脱可能に取り付けられる。給紙トレイ１の下部には、ホッパ２およびホッパ・ホルダ１８が配置されている。ホッパ２は、給紙トレイ１の底部にホッパ軸２ａを中心に回動可能に取り付けられ、ホッパ・ホルダ１８は、ホッパ２の底部にホッパ・ホルダ軸１８ａを中心に回動可能に取り付けられ、底部の一部を構成している。給紙トレイ１は、ホッパ・ホルダ１８に設けられた凸部１８ｃがバネ１８ｂの付勢力によってホッパ２を押し上げることによって上方に押し上げられて、給紙トレイ１に積層された用紙Ｐの、最上位のものを給紙ローラ３に押圧し、該給紙ローラ３の回転により用紙Ｐを送り出す。
【００３４】
給紙ローラ３は、給紙ローラ軸３ａに、用紙Ｐの幅方向（図１の紙面の表裏方向）に複数個取り付けられていて、そのうちの一部には、そのローラ表面にゴム材３ｂが取り付けられ、用紙Ｐをその表面に巻回させて給送しやすいように構成されている。給紙ローラ３は、給紙ローラ軸３ａを中心に、図示しない紙送りモータによって回動（正転および逆転）駆動される。
【００３５】
給紙ローラ３の背面には、複数個の給紙従動ローラ４がゴム材３ｂを有する給紙ローラ３に対して進退可能に設置されている。給紙従動ローラ４は、用紙Ｐを搬送ローラ６へ給送する給送動作時には給紙ローラ３に圧接して、給紙ローラ３の回動に従って従動回動する。また、給紙従動ローラ４は、用紙Ｐが搬送駆動ローラ６ａによって搬送される印刷時には、用紙Ｐのバックテンションをなくすため、給紙ローラ３と離間する。更にこのとき、給紙従動ローラ４は、ガイド部材１６のガイド面１６ａよりも僅かに突出しているので、用紙Ｐの先端若しくは後端が通過する際の接触摩擦抵抗を軽減させ、これによってもバックテンションを軽減させている。
【００３６】
給紙ローラ３の側部近傍には、給紙ローラ３による給送動作を補助するためのガイド・ローラ１０が設けられている。ガイド・ローラ１０は、ガイド・ローラ・ホルダ１０ａに支持されている。ガイド・ローラ１０には、駆動モータは連結されておらず、用紙Ｐの給送に伴い用紙Ｐに接触して自由に回動するように構成されている。
【００３７】
給紙ローラ３の後方下部には、用紙Ｐの重送を防止する用紙分離手段としての分離パッド１１ａおよび、パッド・ホルダ１１が設けられている。パッド・ホルダ１１は給紙ローラ３に対して進退可能に構成され、パッド・ホルダ１１に設置される分離パッド１１ａは、給紙ローラ３のローラ面に押圧され、また、押圧解除される。ここで、ゴム材３ｂと用紙Ｐとの間の摩擦係数をμ1，分離パッド１１ａと用紙Ｐとの間の摩擦係数をμ2，用紙Ｐ相互間の摩擦係数をμ3とすると、μ1＞μ2＞μ3となっているので、給紙トレイ１が、ホッパ２によって上方へ押し上げられ、給紙トレイ１に積層された用紙Ｐの最上位のものを給紙ローラ３に押圧することによって送り出す際に、用紙Ｐの最上位の、次位以下のものが重送して送られることが防止される。また、分離パッド１１ａおよびパッド・ホルダ１１は、用紙Ｐが搬送駆動ローラ６ａによって搬送される印刷時には、バックテンションをなくすために離間位置をとる。
【００３８】
給紙ローラ３の後方斜め下には、制御軸５が給紙ローラ軸３ａと平行に配設されている。この制御軸５は、図示しない専用の制御軸モータによって、給紙ローラ３、搬送ローラ６および排紙ローラ７とは独立に回動（正転および逆転）可能となっている。また、制御軸５には、制御軸５の回動基準位置を検出するスリット・ホイール（図示せず）が取り付けられている。このスリット・ホイールには、径方向にスリット（図示略）が形成されていると共に、該スリットに光を通過させる光センサ（図示略）が近接して設けられていて、このスリットの中央部を光センサの光が通過する位置が、制御軸５の回動基準位置とされる。制御軸５には、その軸方向に沿って複数のカム機構（図示せず）が固設されていて、制御軸５が回動すると、当該カム機構が稼働し、これにより、前述したホッパ２と、給紙従動ローラ４と、分離パッド１１ａとが、適切なタイミングで給紙ローラ３に対する圧接および圧接解除動作を行う様になっている。従って制御軸５は、その単一軸の回動のみによってプリンタ１００の複数の構成要素を制御し、これにより、プリンタ１００の構成を簡単にし、そして、プリンタ１００の低コスト化を計っている。
【００３９】
次に、給紙ローラ３の周囲には、給紙ローラ３の外周面に沿って、用紙Ｐを案内するガイド部材１６，１７が、給紙ローラ３の外周面（ゴム材３ｂの外周面）から一定の距離だけ離間して設けられている。また、ガイド部材１７および該ガイド部材１７の下流側には、複数個のガイド・ローラ１５が設けられ、用紙Ｐが通過する際の用紙Ｐの給送負荷（及び搬送負荷）を軽減させている。
【００４０】
搬送ローラ６と給紙ローラ３との間には、ローラ・ホルダ１９が、プリンタ１００の基体の一部となるフレーム（図示せず）に取り付けられ、該ローラ・ホルダ１９には、搬送従動ローラ６ｂと、ガイド・ローラ１５がそれぞれ取り付けられている。
【００４１】
搬送ローラ６と給紙ローラ３との間には、前述の様に用紙Ｐの通過を検知する紙検出器１３が取り付けられている。紙検出器１３は、用紙Ｐの先端および終端を検出する。この検出信号は、後に詳述するプリンタ１００の制御部に与えられ、用紙Ｐの現在位置の検知、用紙Ｐのサイズの識別等に利用される。
【００４２】
次に、搬送ローラ６は搬送駆動ローラ６ａと搬送従動ローラ６ｂから構成されている。搬送駆動ローラ６ａは図示しない紙送りモータによって回動駆動され、搬送従動ローラ６ｂは、搬送駆動ローラ６ａに圧接することにより従動回動する。搬送駆動ローラ６ａおよび搬送従動ローラ６ｂは、用紙Ｐを挟持して、一定ピッチで副走査方向（図１における左方向）に搬送する。
【００４３】
キャリッジ８は、図１では図示しないキャリッジモータ（以下「ＣＲモータ」と言う）によって、ガイド軸１２に沿って主走査方向（図１における紙面の表裏方向）に往復動するように構成されている。キャリッジ８には、インク・カートリッジ８ａが着脱可能に取り付けられ、このインク・カートリッジ８ａ内のインクは、キャリッジ８の用紙Ｐに対向する面に設けられた記録ヘッド８ｂに送られる。記録ヘッド８ｂは、用紙Ｐに対向する面に形成されたノズル列（図示略）からインクを、プラテン９上に搬送された用紙Ｐに吐き出し、これにより、印刷が行われる。尚、キャリッジ８の主走査方向における位置は、後に詳説する「キャリッジ位置検出手段」としてのリニアエンコーダ（図１では図示せず）の出力信号によって特定可能となっている。
【００４４】
次に、図２に示す様に、キャリッジ８のホームポジション（待機位置：図２（Ａ）において係合部８ｃ（後に詳述する）がHome地点にある状態）近傍には、図１において図示を省略するキャリッジロック装置２１が配設されている。ここで、図２（Ａ）は、キャリッジ８およびキャリッジロック装置２１の正面図であり、図２（Ｂ）は、同側面図である。該キャリッジロック装置２１には、図示を省略する摩擦クラッチ機構を介して搬送駆動ローラ６ａの回動力が伝達される様に構成されていて、搬送駆動ローラ６ａが紙送りモータ（図示せず）によって正転および逆転駆動されることによって生ずる摩擦力により、図２（Ｂ）に示す矢印の方向に往復動する様に構成されている。
【００４５】
また、キャリッジロック装置２１は、図２（Ｂ）に示す様に「キャリッジロック部材」としてのロックレバー２２を有している。ロックレバー２２は、キャリッジ８の底部に形成された係合部８ｃと係合可能となる様に（図２（Ａ）および（Ｂ）は当該係合した状態を示している）、キャリッジロック装置２１から上方に一定高さ突出するように設けられていて、キャリッジ８をホームポジション側（図２（Ａ）における、ロックレバー２２から右側の領域）にロックするキャリッジロック動作時には、前記紙送りモータ（図示せず）を回動させることにより、ロックレバー２２を、キャリッジ８の往復動作に伴う係合部８ｃの往復動経路上に突出させ、係合部８ｃと係合可能な状態にする（図２（Ｂ）に示す状態：以下、当該ロックレバー２２の状態を、ロックレバー２２の「出状態」と言う）。従ってこれにより、キャリッジ８の印字領域側（図２（Ａ）における、ロックレバー２２から左側の領域）への移動を規制し、キャリッジ８をホームポジション側にロックする。
【００４６】
また、キャリッジ８のロック解除動作時には、前記紙送りモータ（図示せず）を回動させて、ロックレバー２２を係合部８ｃの往復動経路上から退避させる（当該退避したロックレバー２２の位置を、図２（Ｂ）において仮想線および符号２２’で示す。以下、当該ロックレバー２２の状態を、ロックレバー２２の「没状態」と言う）。従ってこれにより、キャリッジ８が印字領域側へ移動することが可能となり、即ち、キャリッジ８のロック状態が解除されたことになる。尚、以下においては、キャリッジ８の“ロック解除動作”とは、ロックレバー２２を没状態とする為に、該ロックレバー２２の駆動源である紙送りモータ（図示せず）が正転することを示し、ロックレバー２２が実際に没状態となったか否かとは無関係なものとする。また、前記紙送りモータ（図示せず）および前記摩擦クラッチ機構は、「キャリッジロック部材」としてのロックレバー２２の駆動手段を構成し、本実施形態においては、前記紙送りモータ（図示せず）の逆転がロックレバー２２の出動作と対応し、正転が没動作に対応する様に構成されている。
【００４７】
尚、キャリッジロック装置２１の近傍には、キャリッジロック装置２１と同様にキャリッジ８の往復動経路に対して出没動作を行うワイピング装置（図示せず）が配設されている。該ワイピング装置（図示せず）は、上端部が記録ヘッド８ｂに弾接できる程度の高さに設けられたワイピングブレード（図示せず）を有し、ワイピング動作時には図示しないポンプ駆動モータの駆動力によってキャリッジ８の往復動経路上に出て、キャリッジ８の底部に配置された記録ヘッド８ｂに弾接してノズル面（図示せず）を払拭し、ノズル面を清掃する役割を果たしている。ここで、当該払拭動作は、キャリッジ８がワイピングブレード（図示せず）に対して往復動作することによって行われる。
【００４８】
次に、キャリッジロック装置２１から更にホームポジション側（図２（Ａ）における右側）には、図示を省略するキャッピング装置が設けられている。該キャッピング装置は、キャリッジ８がホームポジション側に戻った際に記録ヘッド８ｂを封止してノズル開口の目詰まりを防止するほかに、該封止状態においてポンプ装置（図示せず）からの負圧の供給を受けることにより、インク充填時或いは目詰まり解消時に記録ヘッド８ｂからインクを強制的に吐出させる機能を備えている。
以上が、プリンタ１００の概略構成である。
【００４９】
＜インク・ジェット・プリンタの制御部の構成＞
次に、図３を参照しつつ、プリンタ１００の制御部１５０の構成について概説する。ここで、図３は、プリンタ１００の制御部１５０の構成を示すブロック図である。プリンタ１００の制御部１５０は、プリンタ１００に印刷情報を送信するホスト・コンピュータ３０との間でデータの送受信が可能に構成され、ホスト・コンピュータ３０とのインタフェース部（以下「ＩＦ」と言う）３１と、ＡＳＩＣ３２，ＲＡＭ３３，ＰＲＯＭ３４，ＥＥＰＲＯＭ３５，ＣＰＵ３６，発振回路３７，ＤＣユニット３８，制御軸モータドライバ３９，給紙モータドライバ４０，紙送りモータドライバ４１，およびＣＲモータドライバ４２を備えている。
【００５０】
ＤＣユニット３８には、搬送される印刷用紙Ｐの始端および終端を検出する前述した紙検出センサ１３からの検出信号と、前述した制御軸５の基準位置を検出するロータリエンコーダ５２からの検出信号と、リニアエンコーダ５０からの出力信号が与えられる。ここで、リニアエンコーダ５０は、主走査方向（図３における矢印方向）に往復動するキャリッジ８の、当該主走査方向における絶対位置を検出する為のものであり、符号板４９のスリットを通過する光によって、該スリットの前端を検出する立ち上がり信号と、後端を検出する立ち下がり信号を出力する。従って、キャリッジ８のHome位置（図２（Ａ）参照）を基準位置とし、且つ、該基準位置から前記出力信号をカウントすることにより、キャリッジ８の絶対位置の検出が可能となる。
【００５１】
尚、図３において符号４６はＣＲモータを示し、符号４７は、ＣＲモータ４６のモータ軸に取り付けられるピニオン歯車を、符号４８は、該ピニオン歯車４７によって駆動される駆動ベルトを示していて、キャリッジ８は、該駆動ベルト４８に固定され、これにより、ＣＲモータ４６の正転動作および逆転動作がキャリッジ８の往復動作に転換される。
【００５２】
ＣＰＵ３６は、プリンタ１００全体の制御を行い、発信回路３７は、ＣＰＵ３６に対して周期的な割り込み信号を発生させ、時間のカウントを可能とする。ＡＳＩＣ３２は、ホスト・コンピュータ３０からＩＦ３１を介して送信される印字データに基づいて印字解像度や記録ヘッド８ｂの駆動波形等を制御するものである。ＲＡＭ３３は、ＡＳＩＣ３２およびＣＰＵ３６の作業領域や他のデータの１次格納領域として用いられ、ＰＲＯＭ３４およびＥＥＰＲＯＭ３５には、プリンタ１００を制御する為に必要な制御プログラム（ファームウェア）および処理に必要なデータが格納されている。また、ＥＥＰＲＯＭ３５には、後に詳述する、プリンタ１００に致命的エラーが発生した際に保存すべき種々のデータが書き込まれ、更に、当該書き込まれたデータは、ホスト・コンピュータ３０からＩＦ３１を介して読み取ることが可能となっている。
【００５３】
紙送りモータドライバ４１は、ＤＣユニット３８の制御の下、紙送りモータ４５を駆動制御して紙送りを行う他、前述の様に、キャリッジロック装置２１を駆動して、キャリッジ８のロック動作およびロック解除動作を行う。「キャリッジモータ駆動手段」としてのＣＲモータドライバ４２は、ＤＣユニット３８の制御の下、ＣＲモータ４６を駆動制御することによりキャリッジ８を往復動または停止・保持させる。給紙モータドライバ４０は、ＣＰＵ３６の制御の下、給紙モータ４４を駆動制御することにより前述した給紙ローラ３を回動させて、印刷用紙Ｐの給送を行う。
尚、図３においては図示を省略するが、ＣＰＵ３６は、その他の制御対象、例えば、記録ヘッド８ｂを駆動制御するヘッドドライバ装置（図示せず）等を有している。以上が、制御部１５０の構成である。
【００５４】
＜キャリッジロック動作およびキャリッジロック解除動作＞
次に、図４乃至図７および図２を参照しつつ、キャリッジロック装置２１（ロックレバー２２）による、キャリッジ８のロック動作およびロック解除動作について説明する。ここで、図４は、キャリッジ８のロック動作を行う制御ルーチン（サブルーチン）２００のフローチャートであり、図５は、キャリッジ８のロック解除動作を行う制御ルーチン（サブルーチン）３００のフローチャートである。また、図６および図７は、図５に示したキャリッジ８のロック解除動作を行う制御ルーチンから呼び出される他の制御ルーチン（サブルーチン）のフローチャートである。図４乃至図７に示すこれらの制御ルーチンは、ファームウェアとしてＰＲＯＭ３４またはＥＥＰＲＯＭ３５に格納され、必要に応じてメインルーチン、例えば、プリンタ１００を後述する待機モードから休止モードに移行させる制御ルーチンや、或いは、記録ヘッド８ｂのクリーニング動作を行う制御ルーチン等から呼び出され、その都度実行される。
【００５５】
以下、図４および必要に応じて適宜図２をも参照しつつ、キャリッジ８のロック動作を行う制御ルーチン（以下「ＣＲロックルーチン」と言う）２００について説明する。ＣＲロックルーチン２００は、先ず、ＣＲロックセットフラグのＯＮ／ＯＦＦ状態を判断する（ステップＳ２０１）。ここで、“ＣＲロックセットフラグ”とは、プリンタ１００の現在状態を示すフラグの１つであり、ＯＮであれば、キャリッジ８が既にロック状態となっていることを示し、ＯＦＦであれば、ロック解除状態であることを示す。従って、当該ＣＲロックセットフラグが「ＯＮ」の場合、キャリッジ８のロック動作を行う必要が無いので、メインルーチンへリターンする（ステップＳ２０１の肯定枝）。
【００５６】
ＣＲロックセットフラグが「ＯＦＦ」であれば（ステップＳ２０１の否定枝）、キャリッジ８をホームポジション側のＰ1地点（図２（Ａ）参照）へ移動させる制御指令を出し（ステップＳ２０２）、次に、紙送りモータ４５をＲ1ステップ逆転させる制御指令を出して（ステップＳ２０３）、ロックレバー２２の“出動作”を実行する。ここで、図２（Ａ）に示すＰ1地点は、ホームポジションよりも更にロックレバー２２から離間した位置にあり、ロックレバー２２と係合部８ｃとの係合状態を確実に解除できる地点である。また、値Ｒ1は、ロックレバー２２が没状態から出状態となる為に必要な紙送りモータ４５の回動量に対応するステップ数よりも、やや多めの値となっている。そして、キャリッジ８をホームポジションへ移動させる制御指令を出す（ステップＳ２０４）。
【００５７】
以上によってキャリッジ８がホームポジション側にロックされるので、当該状態を示すフラグ、即ち、プリンタ１００の現在状態を示すフラグの１つであるＣＲロックセットフラグを「ＯＮ」に設定して（ステップＳ２０５）、呼出元の制御ルーチン（メインルーチン）にリターンする。
【００５８】
次に、図５および必要に応じて適宜図２をも参照しつつ、キャリッジ８のロック解除動作を行う制御ルーチン（以下「ＣＲロック解除ルーチン」と言う）３００について説明する。ＣＲロック解除ルーチン３００は、先ず、致命的エラー（メカ的エラー）発生時のジャンプ先を宣言する（ステップＳ３０１）。従ってこれにより、以降の処理ステップにおいて致命的エラーが発生すると、致命的エラー発生時に実行される制御ルーチン（以下「エラー制御ルーチン」と言う）へとジャンプする。尚、当該エラー制御ルーチンの詳細については、後に詳述する。
【００５９】
次に、電源ＯＮ時の動作であるか否かを判断し（ステップＳ３０２）、電源ＯＮ時の動作であれば、キャリッジ８がロック状態にあると判断できるので直ちにステップＳ３０４移行のキャリッジロック解除動作に移行する（ステップＳ３０２の肯定枝）。電源ＯＮ時の動作でなければ（ステップＳ３０２の否定枝）、キャリッジロック状態であるか否か、即ち、ＣＲロックセットフラグのＯＮ／ＯＦＦ状態を判断する（ステップＳ３０３）。ＣＲロックセットフラグが「ＯＦＦ」の場合、キャリッジ８のロック解除動作を行う必要が無いので、メインルーチンへリターンする（ステップＳ３０３の否定枝）。ＣＲロックセットフラグが「ＯＮ」であれば（ステップＳ３０３の肯定枝）、キャリッジ８を前述したＰ１地点（図２（Ａ）参照）へ移動させる制御指令を出し（ステップＳ３０４）、次に、当該位置にキャリッジ８を停止・保持するキャリッジホールド制御指令を出した後に（ステップＳ３０５）、紙送りモータ４５をＲ１ステップ正転させる制御指令を出して（ステップＳ３０６）、ロックレバー２２の“没動作”を実行する。ここで、キャリッジホールド制御指令を出した後にロックレバー２２の没動作を実行するのは、ＣＲモータ４６が無励磁状態となることによって自由回動が可能となり、これにより、キャリッジ８が移動して係合部８ｃとロックレバー２２とが係合状態となる（図２（Ａ）において係合部８ｃがＰ２地点にある状態）ことを防止する為である。
【００６０】
次に、ロックレバー２２が実際に没状態となったか否かを、ＣＲロック解除確認ルーチンを実行することで確認する（ステップＳ３０７）。尚、当該ＣＲロック解除確認ルーチンは、キャリッジ８のロック解除が実際に達成されたか否かを確認する制御ルーチンであり、その詳しい内容は、後に説明することとする。そして、当該ＣＲロック解除確認ルーチンにおいてキャリッジ８のロック解除が確認されれば、当該状態を示すフラグ、即ち、プリンタ１００の現在状態を示すフラグの１つであるＣＲロックセットフラグを「ＯＦＦ」に設定して（ステップＳ３０８）、呼出元の制御ルーチン（メインルーチン）にリターンする。
【００６１】
ここで、ステップＳ３０７においてＣＲロック解除確認ルーチンを実行した結果、万が一キャリッジ８のロック解除が確認されなければ、キャリッジ８のロック解除動作をリトライすることができる。従って、ＣＲロック解除ルーチン３００の呼出元であるメインルーチンにおいて、キャリッジ８のロック解除が実際には達成されていないにも関わらず、当該ロック解除が達成されたものとして以降の処理ステップを実行し、その結果致命的エラーを発生させて、印刷動作を途中で中止させる様な不具合の発生を防止することができる様になっている。
【００６２】
次に、当該ＣＲロック解除確認ルーチンについて図６および適宜図２をも参照しつつ説明する。図６において符号４００は、当該ＣＲロック解除確認ルーチンを示している。ＣＲロック解除確認ルーチン４００は、最初にキャリッジロック解除動作のリトライ回数を示す変数Ｎをゼロリセットし（ステップＳ４０１）、次に、キャリッジ８を「第２のキャリッジ位置」としてのＰ３地点（図２（Ａ）参照）へ移動させる制御指令を出す（ステップＳ４０２）。ここで、当該キャリッジ８のＰ３地点への移動動作前においては、キャリッジ８はホームポジション側のいずれかの地点、即ち「第１のキャリッジ位置」にあるので、当該第１のキャリッジ位置から第２のキャリッジ位置への移動動作は、即ち、ロックレバー２２の出没位置を跨いで移動する動作となる。
【００６３】
そして、キャリッジ８をホームポジション側からＰ３地点へ移動させる前記制御指令を出すと共に、ＣＲモータ４６の電流値Ｉａの変化を監視し、これによってキャリッジ８のロック状態が解除されたか否かを検出する（ステップＳ４０３）。より詳しくは、ＣＲモータ４６はＤＣモータであるので、電流値Ｉａが一定値Ｉｍａｘを越える様な急激な変化を示せば、ＣＲモータ４６に負荷が掛かった状態、即ち、キャリッジ８（係合部８ｃ）がロックレバー２２に当接して、Ｐ３地点への移動が規制された状態になったと判断することができる。従って、電流値Ｉａが一定値Ｉｍａｘを越えた場合（ステップＳ４０３の肯定枝）は、キャリッジ８のロック解除動作を実行したにも関わらず未だキャリッジ８がロック状態にあると判断し、以降の処理ステップ（ステップＳ４０５）において、キャリッジロック解除動作をリトライし、そして当該リトライの繰り返し回数を示す変数Ｎ（リトライ回数Ｎ）に「１」を加算する（ステップＳ４０６）。尚、ステップＳ４０５におけるＣＲロック解除リトライルーチンの詳細な内容については、後に詳述する。
【００６４】
ここで、変数Ｎによって表される前記リトライ回数の上限は、本実施形態においては５回までと設定している。従って、ステップＳ４０４において変数Ｎの値を判断し、Ｎ＝５であれば（ステップＳ４０４の肯定枝）、プリンタ１００における致命的エラーコードの１つである“キャリッジエラー”コードをホスト・コンピュータ３０へ送信し（ステップＳ４０８）、致命的エラー発生時に実行するエラー制御ルーチン（後に詳述）へジャンプする（ステップＳ４０９）。Ｎ≦４であれば、ステップＳ４０２以降を繰り返して、ロックレバー２２の状態検出および必要に応じてキャリッジロック解除のリトライ動作を実行する。
【００６５】
尚、キャリッジロック解除動作のリトライが行われると、前記リトライ回数Ｎと共に変数Ｒに「１」が加算される（ステップＳ４０７）。変数Ｒは、プリンタ１００の電源を投入してから実行されたキャリッジロック解除動作のリトライ回数の累積値を示すものであり、後述するエラー制御ルーチンにおいて利用される。
【００６６】
以上の様に、キャリッジ８がロック状態にあるか否か、即ち、ロックレバー２２が没状態であるか出状態であるかを、キャリッジ８のロックレバー２２の出没位置を跨いだ移動動作中における、ＣＲモータ４６の電流値の変化を監視することによって検出するので、特別な構成要素を設けることなく、簡易に且つ確実に前記検出を行うことができる様になっている。
【００６７】
尚、ステップＳ４０３においてＣＲモータ４６の電流値Ｉａが一定値Ｉｍａｘを越えなかった場合（ステップＳ４０３の否定枝）、キャリッジ８が制御指令通りホームポジション側からＰ３地点へ到達できたと判断できるので、キャリッジ８をホームポジション側のＰ１地点に戻し（ステップＳ４１０）、当該地点においてキャリッジ８をホールドして（ステップＳ４１１）、ＣＲロック解除ルーチン３００へリターンする。
【００６８】
次に、ステップＳ４０５における、ＣＲロック解除リトライルーチンについて図７および適宜図２をも参照しつつ説明する。図７において符号５００は、当該ＣＲロック解除リトライルーチンを示している。ＣＲロック解除リトライルーチン５００は、キャリッジ８をＰ１地点へ移動させる制御指令と、紙送りモータ４５をＲ２ステップ正転させる制御指令とを同時に出す（ステップＳ５０１，Ｓ５０２）。ここで、値Ｒ２は、図５を参照しつつ既に述べたＣＲロック解除ルーチン３００のステップＳ３０６における値Ｒ１よりも、充分大なるものとなっていて、これにより、ロックレバー２２の没動作をより確実に行う様になっている。
【００６９】
そして、キャリッジ８をＰ１地点へ移動させる制御指令と、紙送りモータ４５をＲ２ステップ正転させる制御指令とを同時に出すことにより、以下の様な作用効果を発揮する。つまり、キャリッジロック解除動作の際、より詳しくは、ロックレバー２２の没動作を実行する際に、キャリッジ８に何らかの外力が作用し、当該外力によってキャリッジ８（係合部８ｃ）がロックレバー２２を印字領域側（図２（Ａ）における左方向）に強く押す様な両者の係合状態（圧接状態：係合部８ｃは図２（Ａ）のＰ２地点に位置する）となっている場合がある。この様な場合、先にキャリッジ８をＰ１地点へ移動する制御指令を出した後に、ロックレバー２２の没動作を実行する制御指令を出しても、前記何らかの外力によって、当該ロックレバー２２の没動作実行時には再びキャリッジ８（係合部８ｃ）とロックレバー２２とが係合状態（圧接状態）となっている虞がある。しかし、両者が同時に動作することによって、キャリッジ８（係合部８ｃ）とロックレバー２２との圧接状態が緩和される一瞬の隙、或いは、キャリッジ８（係合部８ｃ）とロックレバー２２との係合状態が解除される一瞬の隙を利用して、ロックレバー２２がキャリッジ８に作用する前記外力に打ち勝って没状態となることができ、以てキャリッジロック解除を確実に達成することが可能となる。
【００７０】
尚、以上説明したＣＲロックルーチン２００、ＣＲロック解除ルーチン３００、ＣＲロック解除確認ルーチン４００、ＣＲロック解除リトライルーチン５００はあくまで一実施例であり、その他の実施形態を採り得ることは言うまでも無い。例えば、本実施形態においては、ＣＲモータ４６の電流値を監視することによってロックレバー２２の出没状態を検出するキャリッジロック状態検出手段を、ＣＲロック解除確認ルーチン４００においてキャリッジロック解除が正常に実行されたか否かの検出に利用したが、当該検出手段をＣＲロックルーチン２００に適用し、キャリッジロックが確実に実行されたか否かの検出に利用することもできる。
【００７１】
また、キャリッジロック解除動作をリトライする際に、キャリッジ８のロックレバー２２からの離間動作と、ロックレバー２２の没動作とを同時に実行するキャリッジロック解除手段を用いたが、通常のキャリッジロック解除動作、即ち、ＣＲロック解除ルーチン３００において当該手段を適用することもできる。
【００７２】
＜致命的エラー発生時のエラー制御ルーチン＞
次に、図８乃至図１０を参照しつつ、プリンタ１００に致命的エラー（メカ的エラー）が発生した際に実行されるエラー制御ルーチンについて説明する。ここで、図８（Ａ）はプリンタ１００の動作状態の変化の一例を、時間軸（縦軸）によって示したタイム・チャートであり、図８（Ｂ）は、プリンタ１００の制御ルーチンから事後的に作成した、プリンタ１００の動作推定図（タイム・チャート）である。また、図９はプリンタ１００を待機モードと休止モードとに切り換える制御ルーチン（メインルーチン）のフローチャートであり、図１０はエラー制御ルーチン（サブルーチン）のフローチャートである。
【００７３】
ここで、これら制御ルーチンはファームウェアとしてＰＲＯＭ３４またはＥＥＰＲＯＭ３５に格納され、図９に示す制御ルーチン（メインルーチン）はプリンタ１００の電源投入と共に自動的に実行され、図１０に示すエラー制御ルーチン（サブルーチン）は、必要に応じて他の制御ルーチン（メインルーチン）から呼び出されて実行される。
【００７４】
先ず、エラー制御ルーチンの詳細を説明する前に、図８（Ａ）に示すプリンタ１００の動作状態の変化の一例を用いつつ、プリンタ１００の動作モードについて説明することとする。
図８（Ａ）において、プリンタ１００は、電源ＯＮ（▲１▼）後に電源投入時動作を実行する（区間ａ）。該電源投入時動作において、プリンタ１００は、例えばキャリッジ８のロック解除動作を行い、キャリッジ８のホームポジションを検出し、また、制御軸５の基準位置を検出し、更に、その他種々の動作を行って後の印刷動作に備える様になっている。また、電源ＯＮによって、図９に示す制御ルーチン（メインルーチン）が実行される。そして、ホスト・コンピュータ３０からの印刷データを受信しないアイドルタイム（区間ｂ）が経過した後に、ホスト・コンピュータ３０からの印刷データを受信（▲２▼）すると、印刷準備動作を実行する（区間ｃ）。
【００７５】
該印刷準備動作において、プリンタ１００は印刷用紙Ｐの給紙動作を行い、記録ヘッド８ｂのクリーニング動作を行い、更に、その他種々の動作を行って印刷動作の準備を行う。そして、印刷動作を実行し（区間ｄ）、印刷が行われた印刷用紙Ｐの排紙動作等を行う印刷終了動作を実行し（区間ｅ）、再びホスト・コンピュータ３０からの印刷データ受信を待つアイドルタイムに入る（区間ｆ）。ここで、区間ｆにおいては、プリンタ１００はホスト・コンピュータ３０から印刷データを受信すると、直ちに印刷準備動作を実行することのできる待機モードにある。
【００７６】
次に、プリンタ１００はホスト・コンピュータ３０からの印刷データを受信しないアイドルタイムを監視し、該アイドルタイムが所定の時間に達すると、休止モード移行動作を実行する（区間ｇ）。該休止モード移行動作において、プリンタ１００は、キャリッジ８をホームポジションに戻し、前述したキャッピング装置（図示せず）によって記録ヘッド８ｂを封止してノズル開口の目詰まりを防止する他、制御部１５０および全てのモータを節電状態とする。そして、当該休止モードの状態で再びホスト・コンピュータ３０からの印刷データを待つ（区間ｈ）。
【００７７】
長期間のアイドルタイム（例えば、数週間）が経過し、休止モードの状態にあるプリンタ１００が再びホスト・コンピュータ３０からの印刷データを受信（▲３▼）すると、プリンタ１００は休止モードの解除動作を実行した後に（区間ｉ）、印刷準備動作を実行する（区間ｊ）。
【００７８】
ここで、本事例においては、当該印刷準備動作中に致命的エラー（メカ的エラー）が発生（▲４▼）したものとする。致命的エラーが発生すると、プリンタ１００はホスト・コンピュータ３０に致命的エラーコードを送信し（▲４▼）、致命的エラー発生時動作（区間ｋ）を行った後に印字動作を中止する（▲５▼）。ここで、当該致命的エラーコードはプリンタ１００がメカ的エラーの発生によってその後の印刷動作を継続することができないことをホスト・コンピュータ３０側に通知する為のエラーコードであり、プリンタ１００の制御ルーチンの種別を大別して、ホスト・コンピュータ側に大凡のメカ的エラー発生場所を知らせる様になっている。ここで、本実施形態に係るプリンタ１００の致命的エラーコードには、前述した“キャリッジエラー”コードと、その他に“給紙エラー”，“紙送りエラー”コードが準備されている。これら致命的エラーコードの送信は、例えば前述したキャリッジ８のロック解除動作時において、該ロック解除動作のリトライ回数Ｎが上限の“５”に達した場合に送信される。その他には、例えば図３において、制御軸モータ４３を所定量回動させる制御指令を出したにも関わらずロータリエンコーダ５２が基準位置を検出しない場合や、紙送りモータ４５を所定量回動させる制御指令を出したにも関わらず紙検出センサ１３が印刷用紙Ｐの後端の通過を検出できない場合等に、該当する前記致命的エラーコードが送信される。
【００７９】
以上がプリンタ１００の動作内容の一例であり、次に、図９を参照しつつ、プリンタ１００を待機モードと休止モードとに切り換える制御ルーチン（メインルーチン）６００について説明する。
制御ルーチン６００はプリンタ１００の電源ＯＮと同時に自動的に実行され、先ず、致命的エラー発生時のジャンプ先を宣言する（ステップＳ６０１）。従ってこれにより、以降の処理ステップにおいて致命的エラーが発生すると、図１０に示すエラー制御ルーチンにジャンプする。次に、「経過時間監視手段」としてのタイムカウンタＡ及びタイムカウンタＢをゼロリセットし、そしてそのタイムカウントを開始する（ステップＳ６０２）。ここで、タイムカウンタＡは、プリンタ１００の電源ＯＮ時から致命的エラー発生時までの経過時間をカウントするものであり（図８（Ａ）における▲１▼から▲４▼までの経過時間）、カウント値（ＴＡ）は当該経過時間を示している。また、タイムカウンタＢは、電源ＯＮ時から最後に実行された休止モード解除動作の動作開始時までの経過時間をカウントするものであり（図８（Ａ）における▲１▼から▲３▼までの経過時間）、カウント値（ＴＢ）は当該経過時間を示している。従って、後に詳述するが、タイムカウンタＢは、休止モード解除動作が開始される際に、そのタイムカウントを停止する様になっている。尚、これらカウント値の利用形態については図１０を参照しつつ後に説明する。
【００８０】
次に、図８（Ａ）を参照しつつ前述した電源投入時動作ルーチンを実行し（ステップＳ６０３）、タイムカウンタＪのゼロリセット及びタイムカウントを開始する（ステップＳ６０４）。タイムカウンタＪは、図８（Ａ）を参照しつつ前述した、プリンタ１００がホスト・コンピュータ３０から印刷データを受信しないアイドルタイムの経過時間を監視するものであり、該タイムカウンタＪによって監視された経過時間（ＴＪ）が、予め定められた一定の時間Ｔm以上となった場合にはプリンタ１００を前述した休止モードに移行する枝へと分岐する（ステップＳ６０５の肯定枝）。一方、当該一定の時間Ｔmに達するまでは、プリンタ１００は前述した待機モードを維持しながらホスト・コンピュータ３０から印刷データが送信されるのを待つ。
【００８１】
ホスト・コンピュータ３０から印刷データを受信すると（ステップＳ６０６の肯定枝）、タイムカウンタＪをゼロリセットし（ステップＳ６０７）、前述した印刷準備動作（ステップＳ６０８），印刷動作（ステップＳ６０９），印刷終了動作（ステップＳ６１０）の一連の制御ルーチンを実行し、再びアイドルタイムの経過時間を監視しながらホスト・コンピュータから印刷データが送信されるのを待つ。
【００８２】
一方、前記アイドルタイムが予め定められた一定の時間Ｔmを越えると、前述した休止モード移行動作ルーチンを実施する（ステップＳ６１１）。次に、タイムカウンタＢは、そのカウント値（ＴＢ）をタイムカウンタＡのカウント値（ＴＡ）に補正して、以降のタイムカウントを行う（ステップＳ６１２）。ここで、タイムカウンタＢのカウント値（ＴＢ）をタイムカウンタＡのカウント値（ＴＡ）に補正した後に再カウントするのは、以降実施されるステップＳ６１４においてタイムカウントを停止した際に、そのカウント値（ＴＢ）を、「電源ＯＮ時から最後の休止モード解除動作の動作開始時までの経過時間」とする為である。
【００８３】
即ち、休止モード解除動作（ステップＳ６１５）は電源ＯＮ時から複数回実行される場合がある。ここで、前述した様にタイムカウンタＢは、「電源ＯＮ時から、最後に実行された休止モード解除動作の動作開始時までの経過時間」をカウントするものであるので、従ってステップＳ６１２においてタイムカウンタＢのカウント値を一旦リセットし、電源ＯＮ時から一度も停止することなく継続してタイムカウントを行っているものとする必要があるからである。
【００８４】
ステップＳ６１１によって休止モードに移行した後は、該休止モードの状態においてホスト・コンピュータ３０から印刷データが送信されるのを待ち（ステップＳ６１３の否定枝）、印刷データを受信すると（ステップＳ６１３の肯定枝）、タイムカウンタＢのカウントを停止し（ステップＳ６１４）、休止モード解除動作を行い（ステップＳ６１５）、前述したステップＳ６０７以降を実行する。
【００８５】
次に、図１０を参照しつつエラー制御ルーチン７００について説明する。エラー制御ルーチン７００は、先ず、タイムカウンタＡのカウント値（ＴＡ）とタイムカウンタＢのカウント値（ＴＢ）が同じであるか否かを確認する（ステップＳ７０１）。カウント値が同じであれば（ＴＡ＝ＴＢ）、「経過時間ＴＦ＝ＴＡ」と定義し（ステップＳ７０２）、カウント値が同じでなければ（ＴＡ≠ＴＢ）、「経過時間ＴＦ＝ＴＡ−ＴＢ」と定義する（ステップＳ７０３）。尚、経過時間ＴＦの意義内容については後に説明する。
【００８６】
そして、各センサの現在状態を読み込む（ステップＳ７０４）。ここでの“各センサ”とは、図３に示した紙検出センサ１３，ロータリエンコーダ５２，リニアエンコーダ５０をはじめとする、プリンタ１００に設けられた全てのセンサを指し、これにより、致命的エラー発生時点における、プリンタ１００に設けられた全てのセンサの状態が判明する。ここで、リニアエンコーダ５０の検出信号から判明するキャリッジ８の主走査方向位置に関する情報は、キャリッジ８がプリンタ１００において特に頻繁な動作を行う構成要素であり、従って致命的エラー発生要因と関連し易いことから、致命的エラー発生要因を特定する為に特に重要な情報となる。
【００８７】
次に、ＥＥＰＲＯＭ３５に当該各センサの現在状態に関するデータと、前記経過時間ＴＦと、プリンタ１００の各制御ルーチン実行中に設定された、プリンタ１００の現在状態を示す各フラグと、前述したキャリッジロック解除リトライ動作の累積回数を示す変数Ｒと、前述した致命的エラーコードの種別（“キャリッジエラー”または“給紙エラー”または“紙送りエラー”）と、最後に駆動制御が行われた駆動モータに出した制御指令内容（駆動モード，回転方向，回転量）と、を書き込む。
【００８８】
ここで、前記“制御ルーチン実行中に設定されたプリンタ１００の現在状態を示す各フラグ”には、前述した“ＣＲロックセットフラグ”の他に、例えば、プリンタ１００がクリーニング動作中であることを示す“クリーニング動作中フラグ”や、その他にもプリンタ１００の現在状態を示す為に設定される各種のフラグがある。これらは全て、プリンタ１００の制御ルーチンによって「ＯＮ」または「ＯＦＦ」のいずれかに設定されている。また、最後に駆動制御が行われた駆動モータの駆動モードは、該駆動モードから、駆動対象がいずれの駆動モータであったか（本実施形態においては、制御軸モータ４３，給紙モータ４４，紙送りモータ４５，ＣＲモータ４６のうちいずれか）が判別可能となっている。
【００８９】
ステップＳ７０５においてこれらデータを書き込むと、致命的エラー発生時動作（キャリッジ８のHome地点への移動および記録ヘッド８ｂの封止（キャッピング））を行った後に（ステップＳ７０６）、全ての処理を終了する（印刷動作を中止する：メインルーチンへは戻らない）。これにより、プリンタ１００は休止状態となる。
以上がエラー制御ルーチン７００の内容である。
【００９０】
＜致命的エラー発生原因特定方法＞
次に、前述したエラー制御ルーチン７００の作用効果および致命的エラーの発生原因特定方法について図８（Ｂ）および適宜その他の図面を参照しつつ説明する。
先ず、致命的エラーの発生原因を正確に特定する為には、当該致命的エラー発生時に、プリンタ１００の各ハードウェア要素がどの様な状態であったかを特定する必要があるが、この様な致命的エラー発生時におけるプリンタ１００の状態は、“基準となる時”（例えば、プリンタ１００の電源ＯＮ時、或いは、プリンタ１００が休止モードから待機モードに移行する移行動作を開始した時）から致命的エラー発生時までの経過時間と、プリンタ１００の制御ルーチンとから、事後的にタイム・チャートを作成することによって推定することができる。
【００９１】
図８（Ｂ）は、この様なプリンタ１００の制御ルーチンから事後的に作成したタイム・チャートの一例である。つまり、長期間のアイドル・タイム（図８（Ａ）における区間ｈ）中にホスト・コンピュータ３０から印刷データを受信すると、プリンタ１００は必ず休止モードから待機モードへの移行動作（図８（Ａ）における区間ｉ）を実行し、そしてその後に必ず印刷準備動作（図８（Ａ）における区間ｊ）を実行する。ここで、前記休止モードから待機モードへの移行動作および前記印刷準備動作は、予め定義された制御ルーチンであるので、前記休止モードから待機モードへの移行動作を開始してから致命的エラー発生までにどの程度時間が経過したかが判明すれば、図８（Ｂ）に示す様なタイム・チャートを作成し、そして当該タイム・チャート中に致命的エラー発生ポイント（図８（Ｂ）において符号Ｑで示す）を書き込むことができる。従って、図８（Ｂ）からは、印刷準備動作において、ＣＲ（キャリッジ）動作１（区間ｊ’１）→ＣＲ動作２（区間ｊ’２）→ＰＦ（紙送り）動作１（区間ｊ’３）と推移し、そして当該ＰＦ動作１の途中において致命的エラーが発生したと推定することができる。
【００９２】
尚、制御ルーチン中における各処理ステップの動作時間の推定（本実施例においては、区間ｉ’〜区間ｊ’３の、各区間のスパン）は、事後的にプリンタ１００と同一のハードウェア構成を備えたプリンタを用いて、同一の制御ルーチン（印刷準備動作ルーチン）を実際に実行することによって推定可能であり、或いは、各処理ステップにおける各ハードウェア要素の制御量（例えば、駆動モータであればその回転量）から推定することも可能である。
【００９３】
以上から、図８（Ｂ）に示すタイム・チャートを作成し、該タイム・チャート中に致命的エラー発生ポイントＱを書き込む為には、“基準となる時”から致命的エラー発生時までの経過時間を監視することが必要となる。図９に示すタイムカウンタＡおよびＢは、前述した様に当該経過時間を監視する為のものであり、タイムカウンタＡのカウント値ＴＡは、図８（Ａ）における▲１▼乃至▲４▼の時点までの経過時間（電源ＯＮ時から致命的エラー発生時までの経過時間）を、タイムカウンタＢのカウント値ＴＢは、図８（Ａ）における▲１▼乃至▲３▼の時点までの経過時間（電源ＯＮ時から最後の休止モード解除動作の動作開始時までの経過時間）を示すものである。
【００９４】
ここで、タイムカウンタＡおよびＢの２つのカウンタを使用するのは、図８（Ａ）における区間ｆや区間ｈの様に、“基準となる時”から“致命的エラー発生時”までの間に、長期間（例えば、数週間）のアイドルタイムが介在すると、図８（Ｂ）に示すタイム・チャートを作成し、そして当該タイム・チャート上に致命的エラー発生ポイントＱを書き込む際に精度が低下するからである。
【００９５】
つまり、図８（Ｂ）に示す区間ｉ’，ｊ’1，ｊ’２，ｊ’３，は、実際には極めて短いスパン（例えば、数百ミリsec）であり、この様な短いスパンの区間に致命的エラー発生ポイントＱを書き込む場合に、“基準となる時”から致命的エラー発生時までの経過時間が長いと、所謂“ズレ”が生じて、致命的エラー発生時におけるプリンタ１００の動作を正確に特定できなくなるからである。従って、タイムカウンタＡおよびＢの２つのカウンタを使用することにより、前述の様な長期間のアイドルタイムをタイム・チャート上から排除することができ、以て致命的エラー発生時におけるプリンタ１００の動作推定精度を向上させることが可能となる。より詳しくは、“基準となる時”を、図８（Ａ）に示す最後の休止モード解除動作の開始時（区間ｉの開始時）に設定し、当該時点から致命的エラー発生時までの経過時間、即ち、タイムカウンタＡのカウント値（ＴＡ）からタイムカウンタＢのカウント値（ＴＢ）を差し引いた値を採用することにより、前述の様な長期間のアイドルタイムをタイム・チャートから排除することができる。従って、当該長期間のアイドルタイムが排除された経過時間が、図１０に示す「経過時間ＴＦ」となる。
【００９６】
尚、プリンタ１００の電源ＯＮが行われた後にまもなく致命的エラーが発生した様な場合（前述の様な長期間のアイドルタイムが介在していない場合）であれば、プリンタ１００の電源ＯＮから致命的エラー発生時までの経過時間、即ち、タイムカウンタＡのカウント値（ＴＡ）をそのまま利用することができる。従って、図１０に示したフローチャートでは、タイムカウンタＢが未だカウントを停止していない場合（タイムカウンタＡのカウント値（ＴＡ）とタイムカウンタＢのカウント値（ＴＡ）が同じままである場合：ステップＳ７０１の肯定枝）にはタイムカウンタＡの値をそのまま用い（ステップＳ７０２）、タイムカウンタＢが過去にカウントを停止し、その結果タイムカウンタＡのカウンタ値（ＴＡ）とタイムカウンタＢ（ＴＢ）のカウンタ値が異なるものとなっていれば（ステップＳ７０１の否定枝）、前述した様にタイムカウンタＡのカウント値（ＴＡ）からタイムカウンタＢのカウント値（ＴＢ）を差し引いた値を、“基準となる時”から致命的エラー発生時までの経過時間として採用する（ステップＳ７０３）。
【００９７】
以上説明した様に、致命的エラーの発生時にプリンタ１００がどの様な動作状態であったかは、前述の方法によって推定することができるが、当該推定はあくまで推定であって、実際の致命的エラーが発生した際にプリンタ１００がどの様な状態であったかを保証するものでは無い。しかし、図１０に示したエラー制御ルーチン７００は、致命的エラー発生時に、ＥＥＰＲＯＭ３５に前述した種々のデータを書き込む様になっていて、更に、該書き込まれたデータがホスト・コンピュータ３０からＩＦ３１を介して読み取ることが可能となっている（図３参照）。従ってこれにより、致命的エラーが発生した時点におけるプリンタ１００の状態が、証拠として詳しく残されたことになる。
【００９８】
より詳しくは、キャリッジロック解除のリトライ動作累積回数を示す変数Ｒの値を残すことにより、プリンタ１００の“キャリッジロック解除の困難性”を推測することができ、以て致命的エラーの発生原因特定に役立てることができる。また、各制御ルーチンにおいて設定した、致命的エラー発生時におけるプリンタ１００の状態を示す各フラグの設定値を残すことにより、致命的エラー発生時における、プリンタ１００の制御ルーチン上における設定状態を知ることができ、同様に致命的エラーの発生原因特定に役立てることができる。更に、最後に駆動制御が行われたモータへの制御指令内容（駆動モード，回転方向，回転量）を残すことにより、前述した図８（Ｂ）に示すタイム・チャートと、致命的エラー発生時における実際のタイム・チャートとの時間のズレを修正することができ、同様に致命的エラーの発生原因特定に役立てることができる。
【００９９】
尚、ＥＥＰＲＯＭ３５は他の記憶媒体、例えば、ハードディスク等のコンピュータ読み取り可能な他の記憶媒体に置き換えることが可能である。また、以上述べたプリンタ１００を制御するファームウェアは、フロッピィ・ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ハードディスク等のコンピュータ読み取り可能な記憶媒体に書き込んで提供することもできる。
【０１００】
【発明の効果】
以上説明した様に、本発明によれば、基準となる時から致命的エラー発生時までの経過時間と、致命的エラー発生時における記録装置の状態に関するデータを記憶装置に保存するので、これによって致命的エラー、即ち、以降の記録動作を正常に実行することが不可能となる様なメカ的エラーの発生要因を効率的に精度良く特定することが可能となり、以て確実な致命的エラー発生防止対策を講じることが可能となる。
【図面の簡単な説明】
【図１】本発明に係るインク・ジェット・プリンタの概略側面図である。
【図２】（Ａ）は本発明に係るインク・ジェット・プリンタのキャリッジおよびキャリッジロック装置の正面図であり、（Ｂ）は同側面図である。
【図３】本発明に係るインク・ジェット・プリンタの制御部の構成を示すブロック図である。
【図４】本発明に係るインク・ジェット・プリンタの、キャリッジロック動作の制御ルーチンを示すフローチャートである。
【図５】本発明に係るインク・ジェット・プリンタの、キャリッジロック解除動作の制御ルーチンを示すフローチャートである。
【図６】本発明に係るインク・ジェット・プリンタの、キャリッジロック解除確認動作の制御ルーチンを示すフローチャートである。
【図７】本発明に係るインク・ジェット・プリンタの、キャリッジロック解除のリトライ動作の制御ルーチンを示すフローチャートである。
【図８】本発明に係るインク・ジェット・プリンタの、動作状態の変化の一例を示すタイム・チャートである。
【図９】本発明に係るインク・ジェット・プリンタを待機モードと休止モードとに切り換える制御ルーチンを示すフローチャートである。
【図１０】本発明に係るインク・ジェット・プリンタに致命的エラーが発生した際に実行される、エラー制御ルーチンを示すフローチャートである。
【符号の説明】
８  キャリッジ
８ｂ  記録ヘッド
８ｃ  係合部
５  制御軸
１３  紙検出器
２１  キャリッジロック装置
２２  ロックレバー
３５  ＥＥＰＲＯＭ
４５  紙送りモータ
４６  ＣＲモータ
５０  リニアエンコーダ
５２  ロータリエンコーダ
１００  インク・ジェット・プリンタ
１５０  制御部
Ｐ  印刷用紙
【図１】
0003707540.tif 000002
【図２】
0003707540.tif 000003
【図３】
0003707540.tif 000004
【図４】
0003707540.tif 000005
【図５】
0003707540.tif 000006
【図６】
0003707540.tif 000007
【図７】
0003707540.tif 000008
【図８】
0003707540.tif 000009
【図９】
0003707540.tif 000010
【図１０】
0003707540.tif 000011