(57)【要約】【課題】  現在のホストベース印刷システムでは、プリンタ内およびＮＩＣのバッファ内に複数の印刷ジョブをキュー入力させることが可能となっているが、「優先クライアント」の情報をＮＩＣに設定しておくことにより、優先するクライアントに対しては、一刻も早く印刷を行わせるようにその印刷制御（キュー内での追い抜き印刷）を行う手段を提供し、バッファの空きサイズ情報によって、その制御方法を変更可能とする。【解決手段】  印刷クライアント側ではなく、ＮＩＣ側にその優先クライアント設定を行わせ、本制御の管理方法を簡便化する。【選択図】        図１
2007034496.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク網で接続されるホスト装置とプリンタとから構成され、前記ホスト装置にエラー回復のためのページメモリを保持する印刷制御システムであって、
前記プリンタは前記ホスト装置の指示に従って占有状態に移行する占有移行手段と占有解除状態に移行する占有解除手段とを備え、前記ホスト装置はジョブの印刷データを転送し終えると印刷の完了を待たずに前記占有解除手段に占有解除状態に移行することを指示する手段とを備え、
前記ホスト装置は前記占有解除手段に占有解除状態に移行することを指示した後に前記プリンタのステータスを監視しページの印刷が正常終了した場合には前記ページメモリを解放する手段とを備え、
前記ホスト装置は前記占有解除手段に占有解除状態に移行することを指示した後に前記プリンタのステータスを監視しエラーを検出した場合には前記占有移行手段に占有状態に移行することを指示するとともにエラーが発生したページの印刷データを再送信する手段とを備え、
前記ホスト装置は前記占有移行手段に占有状態に移行することを指示した後に前記プリンタのステータスを監視し他のジョブに関するエラーを検出した場合には、前記占有解除手段に占有解除状態に移行することを指示する手段とを備え、
前記占有移行手段は正常に印刷されなかったページがある場合には該ページの印刷を指示したホスト装置以外のホスト装置からの占有移行要求を拒否する手段とを備え、
前記プリンタは印刷完了前の占有解除状態において、プリンタ内の印刷用バッファメモリに空きのある場合には印刷データの入力を受け付ける手段とを備え、最初の印刷データの印刷完了後に２番目に受け付けた印刷データの印刷を行う手段とを備えることを特徴とする印刷制御システム。
【請求項２】
前記プリンタは、ネットワークに接続するためのネットワークインタフェースカードとプリンタ本体とから構成され、前記ネットワークインタフェースカードは前記ホスト装置からの占有移行および占有解除の指示に応じてネットワークインタフェースカード自身の占有処理とプリンタ本体の占有指示処理を行う手段を持つこと特徴とする請求項１記載の印刷制御システム。
【請求項３】
前記ネットワークインタフェースカードは、ネットワーク上に接続された複数の前記ホスト装置に対する優先度情報を持ち、プリンタ装置の占有移行指示処理においては優先度をプリンタ本体へ通知する手段とを備えることを特徴とする請求項２記載の印刷制御システム。
【請求項４】
前記ネットワークインタフェースカードは、優先度情報をネットワークインタフェースの設定パラメータとして設定可能な手段を備えることを特徴とする請求項２または３記載の印刷制御システム。
【請求項５】
前記プリンタ本体は、前記印刷データ受け付け手段において、占有単位に保持を行う印刷データ情報に優先度を格納する手段とを備え、もしプリンタ内の印刷用バッファメモリに空きのない場合には既にバッファ内に格納されている優先度の低い印刷データを削除する手段とを備え、印刷データが削除されたことをステータスとして出力する手段を備えることを特徴とする請求項１から４のいずれかに記載の印刷制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置にエラー回復のためのページメモリを保持する印刷方式に係る印刷制御システムに関する。
【背景技術】
【０００２】
ジャムなどのエラー回復を行うために、プリンタにページメモリを保持し、エラーが発生した場合には、プリンタに保持したページメモリに格納された印刷データを用いてエラー回復を行うのが一般的である。
【０００３】
しかしながら、この方法によれば、少なくとも１ページの印刷データを保持可能な容量のメモリをプリンタに保持しなければエラー回復が行えない。このため、特にデータサイズが大きい高解像度プリンタあるいはカラープリンタにおいては１ページの印刷データを保持するために大容量のメモリが必要になり、プリンタのコストが上昇するという問題がある。
【０００４】
この問題を解決するため、例えば特許文献１あるいは特許文献２に示されるように、エラー回復用のページメモリをホスト装置に持つことによりプリンタのメモリを小容量に抑える技術が知られている。
【０００５】
しかしながらこれらの方法によれば、ジョブが終了するまでの間、他のジョブのページが割り込まないようにプリンタを占有する必要があるため、ジョブの最終ページが排紙されて、印刷が正常終了するまでプリンタを占有しつづけなければならず、別のジョブのページを連続して印刷することができないため、ジョブ間にダウンタイムが生じてパフォーマンスが低下する恐れがあるという問題がある。
【０００６】
この問題を解決するため、ジョブの印刷データをすべて送信し終えると、排紙完了を待たずにプリンタの占有を解除することにより、他のジョブの印刷データの送信を可能とするとともに、エラーが発生した場合にはホスト装置に保持したページメモリを使用してエラーの回復を行うことが行われている。
【０００７】
上述した印刷装置システムでは、排紙完了前に占有が解除されるために、プリンタ内の印刷データ用メモリバッファに空き容量がある場合には、印刷データを入力することが可能であり、すなわち複数の印刷データが入力されることが予想される。
【特許文献１】特開平８−２５８３７５号公報
【特許文献２】特開平９−２８２１１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、上述した印刷制御システムにおいて、クライアントから印刷される印刷データ（ジョブ）に対して、クライアント情報にリンクした優先度情報を設けることにより、プリンタバッファメモリ内でのジョブの追い抜き印刷を可能とすることである。この優先度情報はネットワークインタフェースカードに保持され、ネットワークインタフェースカードのパラメータとして設定可能とする。
【０００９】
さらにプリンタバッファに空きメモリ容量が少ない場合には、プリンタバッファ内に存在する優先度の低い印刷データを削除することにより、追い抜き印刷を行うことを可能とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の印刷制御システムは、ネットワーク網で接続されるホスト装置とプリンタとから構成され、前記ホスト装置にエラー回復のためのページメモリを保持する印刷制御システムであって、
前記プリンタは前記ホスト装置の指示に従って占有状態に移行する占有移行手段と占有解除状態に移行する占有解除手段とを備え、前記ホスト装置はジョブの印刷データを転送し終えると印刷の完了を待たずに前記占有解除手段に占有解除状態に移行することを指示する手段とを備え、
前記ホスト装置は前記占有解除手段に占有解除状態に移行することを指示した後に前記プリンタのステータスを監視しページの印刷が正常終了した場合には前記ページメモリを解放する手段とを備え、
前記ホスト装置は前記占有解除手段に占有解除状態に移行することを指示した後に前記プリンタのステータスを監視しエラーを検出した場合には前記占有移行手段に占有状態に移行することを指示するとともにエラーが発生したページの印刷データを再送信する手段とを備え、
前記ホスト装置は前記占有移行手段に占有状態に移行することを指示した後に前記プリンタのステータスを監視し他のジョブに関するエラーを検出した場合には、前記占有解除手段に占有解除状態に移行することを指示する手段とを備え、
前記占有移行手段は正常に印刷されなかったページがある場合には該ページの印刷を指示したホスト装置以外のホスト装置からの占有移行要求を拒否する手段とを備え、
前記プリンタは印刷完了前の占有解除状態において、プリンタ内の印刷用バッファメモリに空きのある場合には印刷データの入力を受け付ける手段とを備え、最初の印刷データの印刷完了後に２番目に受け付けた印刷データの印刷を行う手段とから構成される。
【００１１】
また前記プリンタは、ネットワークに接続するためのネットワークインタフェースカードとプリンタ本体とから構成され、前記ネットワークインタフェースカードは前記ホスト装置からの占有移行および占有解除の指示に応じてネットワークインタフェースカード自身の占有処理とプリンタ本体の占有指示処理を行う手段とから構成される。
【００１２】
また前記ネットワークインタフェースカードは、ネットワーク上に接続された複数の前記ホスト装置に対する優先度情報を持ち、プリンタ装置の占有移行指示処理においては優先度をプリンタ本体へ通知する手段とから構成される。
【００１３】
また前記ネットワークインタフェースカードは、優先度情報をネットワークインタフェースの設定パラメータとして設定可能な手段とから構成される。
【００１４】
また前記プリンタ本体は、前記印刷データ受け付け手段において、占有単位に保持を行う印刷データ情報に優先度を格納する手段とを備え、もしプリンタ内の印刷用バッファメモリに空きのない場合には既にバッファ内に格納されている優先度の低い印刷データを削除する手段とを備え、印刷データが削除されたことをステータスとして出力する手段とから構成される。
【発明の効果】
【００１５】
本発明によれば、エラー回復用のページメモリをホスト装置に保持しながら、ジョブの全ページを送信し終えた時に、排紙完了を待つことなくプリンタの占有を解除するため、次のジョブのデータ送信を直ちに開始することができ、ジョブ間のダウンタイムを避けることができるとともに、エラーが発生した場合にはエラーの回復を正しく行うことができ、そしてそのような制御の元で、クライアント情報にリンクした優先度情報を設けることにより、プリンタバッファメモリ内でのジョブの追い抜き印刷を可能とする。この優先度情報はネットワークインタフェースカードに保持され、ネットワークインタフェースカードのパラメータとして設定可能とする。さらにプリンタバッファに空きメモリ容量が少ない場合には、プリンタバッファ内に存在する優先度の低い印刷データを削除することにより、追い抜き印刷を行うことを可能とする。
【発明を実施するための最良の形態】
【００１６】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例】
【００１７】
〔第１実施形態〕
図１は本発明装置の構成を示すブロック図である。
【００１８】
図中、１および１１はコンピュータであり、ＣＰＵ、メモリ、ハードディスク、フロッピー（登録商標）ディスクドライブ、キーボード、マウス、モニタ、ネットワークインタフェース等のハードウェア（不図示）を備える。２および１２はオペレーティングシステムであり、コンピュータ１または１１が備えるハードウェア、およびアプリケーション３または１３、プリンタドライバ４または１４、ランゲージモニタ５または１５、ネットワークポートドライバ６または１６などのソフトウェアを管理する。アプリケーション３または１３は、例えばワードプロセッサのようなアプリケーションソフトウェアであり、操作者の指示に従って文書の作成・印刷などを行う。
【００１９】
４および１４はプリンタドライバであり、アプリケーション３または１３が発行した印刷指令をオペレーティングシステム２または１２を経て受け取り、該印刷指令をランゲージモニタ５または１５、およびプリンタ７が解釈可能なプリンタコマンドに変換する。５および１５はランゲージモニタであり、プリンタドライバ４または１４が出力したプリンタコマンドを受け取り、ネットワークポートドライバ６または１６を経由してプリンタ７に送信する。
【００２０】
６および１６はネットワークポートドライバであり、ランゲージモニタ５または１５が出力したプリンタコマンドをネットワークインタフェースを経てプリンタ７に送信するとともに、プリンタ７からステータスを受信した場合にはランゲージモニタ５または１５に出力する。７はプリンタであり、ネットワークポートドライバ６または１６から受信したプリンタコマンドに従って印刷を行う。
【００２１】
図２はプリンタ７の構成を示すブロック図である。
【００２２】
図中、２１はネットワークインタフェースであり、コンピュータ１または１１からプリンタコマンドを受信する。２２はＦＩＦＯ（ファーストインファーストアウト）メモリであり、ネットワークインタフェース２１から受信した画像データを格納する。復号回路２３は、ＦＩＦＯメモリ２２に記憶された画像データを復号し、プリンタエンジン２４に出力する。プリンタエンジン２４は、レーザビームプリンタエンジンであり、制御回路２５の指示により、復号回路２３が出力した画像データに従って印刷を行う。２５は制御回路であり、例えば１チップＣＰＵで構成され、ネットワークインタフェース２１との内部的な通信、ＦＩＦＯメモリ２２、復号回路２３およびプリンタエンジン２４の制御を行う。
【００２３】
図３はプリンタ７の構成を示すブロック図であり、ネットワークインタフェースに特化して記述している。
【００２４】
ネットワークインタフェースカード２１において、２１１はネットワークインタフェース用ＣＰＵで、書き換え可能なＦｌａｓｈＲＯＭ  ２１３に記憶された制御プログラムに基づいてシステムバス２１４に接続されるネットワークコントローラ（ＬＡＮＣ  ２１５）を介してローカルエリアネットワーク（ＬＡＮ  ２１９）に接続されたホストコンピュータ等の複数の外部装置（不図示）と所定のネットワーク通信プロトコルを用いて、前記外部装置から送られる印刷データやプリンタ制御命令等の各種データ送受信要求を統括的に制御し、拡張インタフェースコントローラ（ＥＸＰＣ  ２１７）を介して接続されるプリンタコントローラ２５に対して適切なデータ転送制御を行う。
【００２５】
またＦｌａｓｈＲＯＭ  ２１３には、ＣＰＵ  ２１１の制御プログラムも記憶されている。ＲＡＭ  ２１２はＣＰＵ  ２１１の主メモリ、ワークエリア等の一時記憶領域をして用いられる。ＬＥＤ  ２１６はネットワークプリントサーバの動作状態を示す表示部として用いられており、例えばネットワークコントローラ（ＬＡＮＣ  ２１５）とローカルエリアネットワーク（ＬＡＮ  ２１９）の電気的な接続状態（ＬＩＮＫ）やネットワーク通信モード（１０Ｂａｓｅや１００Ｂａｓｅ、全二重、半二重）等の各種動作状態をＬＥＤの点滅パターンや色で示すことが可能となっている。
【００２６】
さらにネットワークインタフェースカード２１とプリンタコントローラ２５を繋ぐ拡張インタフェース２１８は、図示しないコネクタで構成されており、ネットワークインタフェースカード２１のみが着脱する構成となっている。
【００２７】
プリンタコントローラ２５において、２５１はプリンタコントローラ用ＣＰＵで、ＲＯＭ２５３に記憶された制御プログラムに基づいてシステムバス２５４に接続される各種デバイスとのアクセスを統括的に制御し、拡張インタフェースコントローラ（ＥＸＰＣ  ２５５）を介して接続されるネットワークインタフェース２１から受信される印刷データを基に復号回路２３によって出力画像情報を生成し、プリンタエンジン２４に対して画像信号を出力する。
【００２８】
２５２はＣＰＵ  ２５１の主メモリ、ワークエリア等として機能するＲＡＭである。
【００２９】
なお、本図で示したプリンタエンジン２４は既知の印刷技術を利用するものであり、好適な実施系として例えば電子写真方式（レーザービーム方式）やインクジェット方式、昇華（熱転写）方式等が挙げられる。
【００３０】
以下、印刷動作について説明する。
【００３１】
操作者がコンピュータ１側でアプリケーション３を操作して印刷を指示すると、アプリケーション３からオペレーティングシステム２を経由してプリンタドライバ４に印刷指令が渡される。プリンタドライバ４はアプリケーション３から発行された印刷指令に基づき、画像データに変換して圧縮し、圧縮した画像データを、用紙サイズ、ビットマップデータのラインの長さとライン数などを指定するページ開始コマンド、画像データの終了を示す画像データ終了コマンドとともに出力する。
【００３２】
プリンタコマンドが出力されると、オペレーティングシステム２はランゲージモニタ５にジョブ開始を通知した後に、出力されたプリンタコマンドを順次ランゲージモニタに引き渡す。ランゲージモニタ５は、ジョブが開始されると、占有要求コマンドをプリンタ７に送信する。
【００３３】
ランゲージモニタ５はプリンタの占有に成功すると、受け取ったプリンタコマンドを順次プリンタ７に送信する。なおランゲージモニタ５は画像データコマンドをプリンタ７に送信する前に、ステータス要求コマンドを送信し、プリンタ７のステータスを取得して、画像データコマンドが送信可能であることを確認する。ランゲージモニタ５は、１ページのプリンタコマンドを送信し終えると、印刷要求コマンドを送信する。
【００３４】
制御回路２５は、印刷要求コマンドを受信すると、プリンタエンジン２４に対して印刷開始を指示する。ランゲージモニタ５はまた、取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放する。ランゲージモニタ５はまた、取得したプリンタステータスがエラーを示した場合には、印刷が正常終了していないページから再送信を試みる。
【００３５】
このようにしてジョブの全ページのプリンタコマンドを転送し終えると、ランゲージモニタ５は排紙完了を待たずに占有解除コマンドを送信する。ランゲージモニタ５はまた、占有解除コマンドを送信した後もプリンタ７のステータス取得を続け、取得したプリンタステータスがページの印刷が正常終了したことを示した場合には、該当するページメモリを解放するとともに、エラーを検出した場合には、再度占有要求コマンドを送信し、エラーページの回復を試みる。
【００３６】
次に、図４を参照し、ランゲージモニタ５が使用するデータ構造を説明する。
【００３７】
図中、ＪｏｂＱｕｅｕｅはジョブ管理情報の先頭アドレスを示す。ジョブ管理情報はＮｅｘｔＪｏｂによってリンクリストを構成し、オペレーティングシステム２からジョブの開始が通知されるたびに、リンクリストの末尾に新しいジョブ管理情報が追加される。またＣｕｒｒｅｎｔＪｏｂは送信が終了していない先頭のジョブ管理情報のアドレスを示し、ジョブの全ページのプリンタコマンドを送信し終えると、その次のジョブ管理情報を指すように更新される。
【００３８】
ジョブ管理情報中、ＪｏｂＮｕｍｂｅｒは、ジョブを識別する番号であり、占有要求コマンドの応答でプリンタ７から通知される。また、ＰａｇｅＱｕｅｕｅは該ジョブに属するページ管理情報の先頭アドレスを示す。ページ管理情報はＮｅｘｔＰａｇｅによってリンクリストを構成し、オペレーティングシステム２から１ページのデータを渡されるたびに、リンクリストの末尾に新しいページ管理情報が追加される。
【００３９】
ＣｕｒｒｅｎｔＰａｇｅは送信が終了していない先頭のページ管理情報のアドレスを示し、ページの全プリンタコマンドを送信し終えると、その次のページ管理情報を指すように更新される。
【００４０】
ページ管理情報中、ＰａｇｅＮｕｍｂｅｒは、ページを識別する情報であり、後述する手順により、占有要求時に決定された基底ページ番号の次から始まる連続番号である。また、Ｂｕｆｆｅｒは該ページのページバッファの先頭アドレスである。ＰａｇｅＢｕｆｆｅｒはページバッファであり、該ページを構成する一連のプリンタコマンドを格納する。
【００４１】
ＣｕｒｒｅｎｔＣｍｄは送信が終了していない先頭のプリンタコマンドのアドレスを示し、１つのプリンタコマンドを送信すると、その次のプリンタコマンドを指すように更新される。
【００４２】
あるページの印刷の正常終了が検出されると、該ページのページメモリおよびページ管理情報は解放され、ジョブ管理情報のＰａｇｅＱｕｅｕｅは、その次のページ管理情報を指すように更新される。あるジョブのページの印刷がすべて正常終了し、ページ管理情報が全て解放された場合には、該ジョブのジョブ管理情報は解放され、ＪｏｂＱｕｅｕｅはその次のジョブ管理情報のアドレスを指すように更新される。
【００４３】
次に図５を参照し、ランゲージモニタ５の処理の詳細を説明する。
【００４４】
まず、Ｓ１にて、後述するステータス監視処理を行う。次にＳ２にて、Ｓ１にて取得したステータスを参照して、エラーが発生しているか判定を行い、発生していればＳ３に進むが、ジョブがない状態では意味のある処理は行われない。
【００４５】
次にＳ４にて未送信ジョブがあるか判定する。ジョブがない状態ではＳ１に戻り、ジョブ開始を待つ。未送信ジョブがある場合は、Ｓ５に進み、占有要求コマンドを送信する。占有要求コマンドの送信にあたって、該ジョブ管理情報のＪｏｂＮｕｍｂｅｒをパラメータとして通知する。なおＪｏｂＮｕｍｂｅｒの初期値は０なので、該ジョブの最初の占有時には０が通知される。
【００４６】
次にＳ６にて占有要求応答を受信し、正常応答でなかった場合はプリンタ７の占有に失敗しているので、Ｓ１に戻り、再度占有を試みる。Ｓ６にて正常応答であった場合は、通知されたジョブ番号をジョブ管理情報のＪｏｂＮｕｍｂｅｒに記録するとともに、現在占有中のジョブ番号（不図示）に格納する。
【００４７】
次にＳ７にてステータス監視処理を行う。次にＳ８にて、Ｓ７にて取得したステータスを参照して、エラーが発生しているか判定する。エラーが発生していない場合にはＳ９に進み、プリンタ７が印刷中であるか判定する。プリンタ７が印刷中でない場合には、Ｓ１０にて送信ページ番号に０を格納し、次にＳ１１にて、データクリアコマンドを送信する。このとき、ページ番号の初期値として、０を指定する。
【００４８】
Ｓ９にてプリンタ７が印刷中でない場合にはＳ１２に進み、Ｓ７にて取得したステータスを参照して、送信ページ番号に印刷開始ページ番号を格納する。
【００４９】
いずれの場合もＳ１３に進み、後述するデータ転送処理を行う。処理中のジョブのページを全て送信し終えるか、あるいはエラーを検出するとデータ転送処理が終了するので、Ｓ１４に進み、Ｓ１３にて取得した最新のステータスを参照し、エラーが発生しているか判定する。エラーが発生していない場合には、処理中のジョブのページを全て送信し終えた場合なので、Ｓ１５に進み、占有解除コマンドを送信する。このとき、現在占有中のジョブ番号をクリアする。次にＳ１に戻る。
【００５０】
この後、Ｓ１、Ｓ２、Ｓ４からなるループを実行し、ジョブの全ページの印刷が正常終了した場合には、Ｓ１のステータス監視処理内でジョブ終了処理が行われる。また、エラーもしくは優先度によるジョブ削除処理が発生した場合には、Ｓ２からＳ３に進み、ジョブとページを全て未送信に戻す。
【００５１】
具体的には、図４示のＣｕｒｒｅｎｔＪｏｂに、ＪｏｂＱｕｅｕｅに格納されている先頭のジョブ管理情報のアドレスを格納し、ＣｕｒｒｅｎｔＰａｇｅに、先頭のジョブ管理情報のＰａｇｅＱｕｅｕｅに格納されている先頭のページ管理情報のアドレスを格納し、ＣｕｒｒｅｎｔＣｍｄに、先頭のジョブ管理情報の先頭のページ管理情報のＢｕｆｆｅｒに格納されているページバッファの先頭アドレスを格納する。
【００５２】
次にＳ４からＳ５に進み、プリンタの占有を行い、以下エラーが発生したページからデータ転送をやり直す。また、次のジョブが開始された場合には、Ｓ４からＳ５に進み、プリンタの占有を行い、以下新しいジョブのデータ転送を行う。
【００５３】
Ｓ８またはＳ１４にて、エラーが発生している場合には、Ｓ１６にてジョブとページを全て未送信に戻す。次にＳ１７にて、取得した最新のステータスを参照し、プリンタステータスの先頭ジョブ番号と、現在占有中のジョブ番号が同一であるか判定する。プリンタステータスの先頭ジョブ番号と、現在占有中のジョブ番号が同一である場合には、Ｓ１０に進み、以下エラーが発生したページからデータの転送をやり直す。プリンタステータスの先頭ジョブ番号と、現在占有中のジョブ番号が同一でない場合には、Ｓ１５に進み、占有解除コマンドを送信し、Ｓ１に戻る。
【００５４】
その後、Ｓ１、Ｓ２、Ｓ４を経由してＳ５に進み、プリンタの占有を試みる。後に示すように、プリンタの先頭ジョブが、該ホストが発行したジョブであれば直ちに占有が認められ、以下エラーが発生したページからデータの転送をやり直す。そうでない場合は、エラー回復が行われてプリンタの先頭ジョブが正常終了するまで、占有は拒否される。
【００５５】
図６は、図５示のＳ１３のデータ転送処理の詳細を示すフローチャートである。
【００５６】
まずＳ３０にて、送信すべき印刷データがあるか判定する。送信すべき印刷データがない場合は直ちに処理を終了する。送信すべき印刷データがある場合はＳ３１に進み、送信ページ番号を＋１し、ページ管理情報のＰａｇｅＮｕｍｂｅｒに格納する。
【００５７】
次にＳ３２にて、ステータス監視処理を行う。次にＳ３３にてエラーが発生しているか判定する。エラーが発生している場合は直ちに処理を終了する。エラーが発生していない場合はＳ３４に進み、Ｓ３２にて取得したプリンタステータスを参照して、印刷データの送信が可能か判定する。印刷データの送信が可能である場合には、Ｓ３７に進み、印刷データを送信する。
【００５８】
次にＳ３８にて、１ページのデータ送信が終了したか判定する。１ページのデータ送信が終了していない場合は、Ｓ３２に戻り、現在送信中のページのデータ送信を続ける。１ページのデータ送信が終了している場合は、Ｓ３９にて該ページの印刷要求を発行済みであるか判定する。該ページの印刷要求を発行済みである場合には、Ｓ３０に戻り、次のページのデータ送信を行う。該ページの印刷要求を発行済みでない場合には、Ｓ４０にて印刷要求コマンドを送信し、Ｓ３０に戻る。
【００５９】
Ｓ３４にて印刷データの送信が可能でない場合は、Ｓ３５にて、該ページの印刷要求を発行済みであるか判定する。該ページの印刷要求を発行済みである場合は、Ｓ３２に戻り、印刷データが送信可能になるまで待つ。該ページの印刷要求を発行済みでない場合は、Ｓ３６にて、Ｓ３２にて取得したプリンタステータスを参照して、前ページの画像データ出力が終了しているか判定する。前ページの画像データ出力が終了していない場合は、プリンタのＦＩＦＯメモリ２２に、前ページの画像データの一部が格納されているので、Ｓ３２に戻り、印刷データが送信可能になるまで待つ。前ページの画像データ出力が終了している場合には、プリンタのＦＩＦＯメモリ２２に、前ページの画像データは全く格納されておらず、待っていてもプリンタのＦＩＦＯメモリ２２に秋ができる可能性はないので、Ｓ４１に進み、印刷要求コマンドを送信し、Ｓ３２に戻る。
【００６０】
図７は図５示のＳ１、Ｓ７、および図６示のＳ３２のステータス監視処理の詳細を示すフローチャートである。
【００６１】
まずＳ５１にて、ステータス要求コマンドを送信する。次にＳ５２にてステータス応答を受信し、エラーもしくは優先度によるジョブ削除処理が発生しているか判定する。エラーもしくは優先度によるジョブ削除処理が発生している場合には、直ちに処理を終了する。エラーもしくは優先度によるジョブ削除処理が発生していない場合には、Ｓ５３にて印刷完了したページがあるか判定する。
【００６２】
具体的には、プリンタステータスの印刷完了ページ番号と等しいＰａｇｅＮｕｍｂｅｒを有するページ管理情報があれば、そのページの印刷が完了していると判定される。そのようなページが存在しなければ、直ちに処理を終了する。そのようなページが存在した場合には、Ｓ５６にて該ページのページメモリおよびページ管理情報を削除する。
【００６３】
次にＳ５７にて、該ページが属するジョブのページの印刷がすべて完了したか判定する。該ページが属するジョブのページの印刷が完了していない場合には、直ちに処理を終了する。該ページが属するジョブのページの印刷がすべて完了した場合には、Ｓ５８にて該ジョブのジョブ管理情報を削除し、処理を終了する。
【００６４】
なお上記ではエラーと優先度によるジョブ削除処理を同一で記述したのは、優先度によるジョブ削除についてはまだ始まっていない状態のジョブであり、ジョブ開始の最初のページでエラーが発生したものと同じ復帰再送処理となるからである。
【００６５】
図８は、制御回路２５が実行するコマンド処理の処理手順を示すフローチャートである。
【００６６】
まずＳ１０１にてコマンド受信を待機する。コマンド受信が行われた場合は、Ｓ１０２にて受信したコマンドが占有要求コマンドであるか判定する。占有要求コマンドであった場合は、Ｓ１２１に進み、現在プリンタが占有されているか判定する。現在プリンタが占有されている場合には、Ｓ１２６に進み、エラー応答を送信し、Ｓ１０１に戻る。現在プリンタが占有されていない場合には、Ｓ１２２に進み、エラージョブがあるか、すなわちエラージョブ番号が０以外であるか判定する。
【００６７】
エラージョブがない場合には、Ｓ１５７でジョブの優先度情報（ＮＩＣから占有時に同時に渡される情報）とサイズ情報とプリンタの空きバッファ容量から、優先度の低いジョブの削除（Ｓ１５８）を行うかどうかの判断を行う。優先度の高いジョブが、もしプリンタバッファ内に入らない場合には、優先度の低いジョブの削除を行う。印刷データの削除を行うとともに印刷待ちキューからの情報の削除を行い、バッファ内で後続するジョブのデータ移動やキュー内での情報移動を行う。
【００６８】
次にＳ１５９にて、削除された旨を示すステータス情報を印刷装置の状態情報として、クライアントへ伝達する。そしてＳ１２３に進み、次ジョブ番号を占有ジョブ番号に格納する。
【００６９】
Ｓ１５７にて空きメモリに余裕があった場合には、Ｓ１６０にて、プリンタバッファ内の印刷データ移動や、印刷待ちキュー内での順序入れ替えを行う。優先度による順序入れ替えがない場合は通常のようにキューの最後に入れられる。そしてＳ１２４へ進む。
【００７０】
次にＳ１２４にて、次ジョブ番号に１を加算する。なお次ジョブ番号の初期値は１である。
【００７１】
次にＳ１６１にて、ジョブの優先度情報をジョブ情報内に保存する。この保存された優先度は次回の優先度によるジョブ削除の判断にて使用される。
【００７２】
次にＳ１２５にて、占有ジョブ番号とともに正常応答を送信し、Ｓ１０１に戻る。
【００７３】
Ｓ１２２にてエラージョブがあった場合には、Ｓ１４１にてエラージョブ番号と、占有要求コマンドに付加されたジョブ番号が一致するか判定する。エラージョブ番号と、占有要求コマンドに付加されたジョブ番号が一致しない場合は、Ｓ１４５にてエラー応答を送信し、Ｓ１０１に戻る。エラージョブ番号と、占有要求コマンドに付加されたジョブ番号が一致した場合は、Ｓ１４２にてエラージョブ番号を占有ジョブ番号に格納し、Ｓ１４３にてエラージョブ番号をクリアし、Ｓ１４４にて占有ジョブ番号とともに正常応答を送信し、Ｓ１０１に戻る。
【００７４】
Ｓ１０２にて、受信したコマンドが占有要求コマンドでなかった場合はＳ１０３にて、受信したコマンドがデータクリアコマンドであるか判定する。受信したコマンドがデータクリアコマンドであった場合は、Ｓ１３１にてデータクリア処理を行う。
【００７５】
具体的には、ＦＩＦＯメモリ２２に格納された画像データ、および制御回路２５のワーク領域に格納されたページ開始コマンドなどをクリアするとともに、データクリアコマンドで指定されたページ番号を、印刷開始ページ番号、画像出力完了ページ番号、および印刷完了ページ番号に格納する。次にＳ１０１に戻る。
【００７６】
Ｓ１０３にて、受信したコマンドがデータクリアコマンドでなかった場合には、Ｓ１０４にて受信したコマンドが印刷データコマンドであるか判定する。受信したコマンドが印刷データコマンドであった場合は、Ｓ１３２にて印刷データ処理を行う。
【００７７】
具体的には、受信したコマンドが画像データコマンドであればＦＩＦＯメモリ２２に画像データを格納する。また受信したコマンドがページ開始コマンドであれば制御回路２５のワーク領域に格納する。次にＳ１０１に戻る。
【００７８】
Ｓ１０４にて、受信したコマンドが印刷データコマンドでなかった場合は、Ｓ１０５にて受信したコマンドが印刷要求コマンドであるか判定する。受信したコマンドが印刷要求コマンドであった場合は、Ｓ１３３に進み、印刷開始要求処理を行う。具体的には、先に受信したページ開始コマンドに従ってプリンタエンジン２４に対し印刷開始を要求するとともに、印刷開始ページ番号を＋１する。次にＳ１０１に戻る。
【００７９】
Ｓ１０５にて受信したコマンドが印刷要求コマンドでなかった場合は、Ｓ１０６にて、受信したコマンドがステータス要求コマンドであるか判定する。受信したコマンドがステータス要求コマンドであった場合には、Ｓ１３４にてステータス応答を送信することによりプリンタステータスを通知する。ここで通知されるプリンタステータスには、先頭ジョブ番号、エラー状態、印刷開始ページ番号、画像出力完了ページ番号、および印刷完了ページ番号が含まれる。次にＳ１０１に戻る。
【００８０】
Ｓ１０６にて、受信したコマンドがステータス要求コマンドでなかった場合は、占有解除コマンドを受信した場合なので、Ｓ１３５に進み、占有ジョブ番号をクリアする。
【００８１】
図９は、制御回路２５が実行する印刷処理の処理手順を示すフローチャートである。なお、印刷処理はコマンド処理と並行に動作する。
【００８２】
まずＳ２０１にて、印刷が正常終了したページがあるか判定する。印刷が正常終了したページがなかった場合にはＳ２１１に進む。印刷が正常終了したページがあった場合には、Ｓ２０２にて印刷完了ページ番号に１を加算し、次にＳ２０３にて印刷が正常終了したページが属するジョブの全ページの印刷が正常終了したか判定する。印刷が正常終了したページが属するジョブの全ページの印刷が正常終了していない場合はＳ２１１に進む。印刷が正常終了したページが属するジョブの全ページの印刷が正常終了した場合は、Ｓ２０４にて先頭ジョブのジョブ終了処理を行い、次にＳ２０４にて未終了ジョブがあるか判定する。
【００８３】
未終了ジョブがあった場合はＳ２０５にて先頭ジョブ番号を更新し、Ｓ２１１に進む。未終了ジョブがなかった場合は、Ｓ２０６にて先頭ジョブ番号をクリアし、Ｓ２１１に進む。
【００８４】
Ｓ２１１では、画像出力が終了したページがあるか判定する。画像出力が終了したページがなかった場合は、Ｓ２２１に進む。画像出力が終了したページがあった場合は、Ｓ２１２にて画像出力完了ページ番号に１を加算してＳ２２１に進む。
【００８５】
Ｓ２２１では、エラーが発生しているか判定する。エラーが発生していない場合には、Ｓ２０１に戻る。エラーが発生している場合には、Ｓ２２２にて先頭ジョブ以外のジョブの終了処理を行い、次にＳ２２３にて先頭ジョブが現在プリンタを占有中であるか、つまり先頭ジョブ番号と占有ジョブ番号が一致するか判定する。先頭ジョブが現在プリンタを占有中である場合は、Ｓ２０１に戻る。先頭ジョブが現在プリンタを占有中でない場合は、Ｓ２２４にて先頭ジョブ番号をエラージョブ番号に格納し、Ｓ２０１に戻る。
【００８６】
図１０は、本発明のネットワークインタフェースにおける印刷用コマンドの処理を表す。ネットワークインタフェースはコマンドに対して、プリンタへ転送のみを行う、プリンタへそのまま転送しその応答を得てホストに返送する、ネットワークインタフェース内のみで処理を行いその結果をホストへ返送する、プリンタへ転送するとともにネットワークインタフェース内の処理も同時に行いその結果をホストへ返送する、といったように各コマンドに応じた処理を行う。
【００８７】
まずＳ９０１にてコマンドの受信を行う。もしコマンドが受信されたなら、コマンドの種類を判断する。Ｓ９０２は占有要求コマンドの場合であり、プリンタの占有を行うとともにネットワーク上の他のクライアントＰＣからの占有に対する制御のために、ネットワークインタフェース上においても占有の処理が必要である。ネットワークインタフェースは占有コマンドに対して、ネットワークインタフェース内に設定された優先度パラメータを参照し、その情報をコマンド内に含めて、プリンタコントローラに対して占有コマンドを送付する（Ｓ９０３〜Ｓ９０４）。
【００８８】
次にネットワークインタフェースはプリンタからのコマンドの返信（Ｓ９１２）を得て、ネットワークインタフェース内の処理の状態と合わせて、ホストへコマンドに対する返信処理を行う（Ｓ９１３）。
【００８９】
Ｓ９０５はデータバッファのクリアコマンドであり、これに対してはネットワークインタフェース内のデータバッファクリアも同時に行い、プリンタにコマンドを転送しプリンタ側のデータバッファのクリアも行い、その結果からコマンドの返信処理をＳ９１３で行う。
【００９０】
Ｓ９０８はプリンタ制御用のコマンドであり、プリンタへコマンドを転送し、プリンタからのコマンドを返信し、その結果をホストへ返送する。Ｓ９０９のステータス要求に対しても、同様の処理を行う。
【００９１】
Ｓ９１０は印刷データが含まれるコマンドであり、このコマンドに対してはプリンタ側へ転送のみを行う。
【００９２】
Ｓ９１１はネットワークインタフェースに処理を行わせるコマンドであり、これはネットワークインタフェース内の処理の結果に応じた返送をホストに対して行う。
【００９３】
図１１は、本発明のネットワークインタフェースにおける、優先印刷を行う場合に、ネットワークインタフェース上での設定を行うＧＵＩの例を示す図である。
【図面の簡単な説明】
【００９４】
【図１】本発明の印刷制御システムの構成を示すブロック図である。
【図２】本発明のプリンタの構成の詳細を示すブロック図である。
【図３】本発明のプリンタの構成の詳細を示すブロック図である（主にネットワークインタフェース）。
【図４】本発明で使用するデータ構造の説明図である。
【図５】本発明のホスト装置が実行する処理手順を示すフローチャートである。
【図６】本発明のホスト装置が実行する処理手順を示すフローチャートである。
【図７】本発明のホスト装置が実行する処理手順を示すフローチャートである。
【図８】本発明のプリンタ制御回路が実行する処理手順を示すフローチャートである。
【図９】本発明の制御回路が実行する処理手順を示すフローチャートである。
【図１０】本発明のネットワークインタフェースが実行する処理手順を示すフローチャートである。
【図１１】本発明のネットワークインタフェースで優先度情報を設定するＧＵＩの例を示す図である。
【符号の説明】
【００９５】
１、１１        コンピュータ
２、１２        オペレーティングシステム
３、１３        アプリケーション
４、１４        プリンタドライバ
５、１５        ランゲージモニタ
６、１６        ネットワークポートドライバ
７              プリンタ
２１            ネットワークインタフェース
２２            ＦＩＦＯメモリ
２３            復号回路
２４            プリンタエンジン
２５            制御回路
２１１          ネットワークインタフェースのＣＰＵ
２１２          ネットワークインタフェースのＲＡＭ
２１３          ネットワークインタフェースのＦｌａｓｈＲＯＭ
２１４          ネットワークインタフェースの内部バス
２１５          ネットワークインタフェースのＬＡＮコントローラ
２１６          ネットワークインタフェースのＬＥＤ
２１７、２５５  プリンタ拡張インタフェースコントローラ
２１８          プリンタ拡張インタフェース
２１９          ＬＡＮ（ネットワーク）
２５１          プリンタコントローラのＣＰＵ
２５２          プリンタコントローラのＲＡＭ
２５３          プリンタコントローラのＲＯＭ
２５４          プリンタコントローラの内部バス
【図１】
2007034496.tif 000003
【図２】
2007034496.tif 000004
【図３】
2007034496.tif 000005
【図４】
2007034496.tif 000006
【図５】
2007034496.tif 000007
【図６】
2007034496.tif 000008
【図７】
2007034496.tif 000009
【図８】
2007034496.tif 000010
【図９】
2007034496.tif 000011
【図１０】
2007034496.tif 000012
【図１１】
2007034496.tif 000013