(57)【要約】【課題】例えばプリンタとスキャナーとを有する複合装置において、スキャナーの暴走が検出されたとき、これを制御するマイクロプロセッサにリセット信号を送ってリセットして初期化させることになるが、この場合、スキャナー全体が初期化されることになるため、例えばスキャン処理中であった場合には、最初から同じ処理を繰り返すことになって、非効率的になるという問題があった。【解決手段】スキャナー１０１の異常を検出する検出部１１８と、異常に対する復旧情報を生成する復旧情報生成部１２０と、この復旧情報を表示する表示部と復旧情報に基づいた復旧指示を入力する入力部とを有するオペレーションパネル１２３と、入力された復旧指示に従って、スキャナー１０１の復旧処理を行う復旧処理部１２１とを備え、スキャナー１０１の一部をリセットすることで処理の継続を可能とする。【選択図】図１
2009049619.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ユニットを備えた複合装置であって、
前記複数の機能ユニットの各々の異常を検出する検出部と、
前記各々の異常に対する復旧情報を生成する復旧情報生成部と、
前記復旧情報を表示する表示部と、
前記復旧情報に基づいた復旧指示を入力する入力部と、
前記入力された復旧指示に従って、前記複数の機能ユニットのいずれかの復旧処理を行う復旧処理部と
を備えたことを特徴とする複合装置。
【請求項２】
前記復旧情報は、前記機能ユニットの一部をリセットすることで処理の継続が可能な異常に対する復旧情報であることを特徴とする請求項１記載の複合装置。
【請求項３】
前記機能ユニットが、別々に構成された印刷ユニットと読み取りユニットであって、前記印刷ユニットが前記読み取りユニットに対して制御指示することを特徴とする請求項２記載の複合装置。
【請求項４】
前記検出部、前記復旧情報生成部、前記表示部、前記入力部、及び前記復旧処理部が前記印刷ユニットに備えられ、前記読み取りユニットに発生した異常に対する復旧処理を行うことを特徴とする請求項３記載の複合装置。
【請求項５】
複数の機能ユニットを備えた複合装置であって、
前記複数の機能ユニットの各々の異常を検出する検出部と、
前記検出部により異常が検出されたら現在の処理が継続可能か否かを判断する判断部と、
前記判断部によって処理の継続が可能と判断されたら、異常が検出された前記機能ユニットの復旧処理を行う復旧処理部と
を備えたことを特徴とする複合装置。
【請求項６】
前記機能ユニットが、別々に構成された印刷ユニットと読み取りユニットであって、前記印刷ユニットが前記読み取りユニットに対して制御指示することを特徴とする請求項５記載の複合装置。
【請求項７】
前記検出部、前記判断部、及び前記復旧処理部が前記印刷ユニットに備えられ、前記読み取りユニットに発生した異常に対する復旧処理を行うことを特徴とする請求項６記載の複合装置。
【請求項８】
前記制御指示は、コマンド通信で行われることを特徴とする請求項１乃至７の何れかに記載の複合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機能ユニットを備えた複合装置に関するものである。
【背景技術】
【０００２】
従来、この種の複合装置、例えばコンピュータ本体とキーボードを組み合わせたような装置においては、所定のキーボード監視手段によってキーボードを監視し、キーボードの暴走が検出されたとき、キーボードを制御するマイクロプロセッサにリセット信号を送ってこれをリセットして初期化させるものがあった（例えば、特許文献１参照）。
【０００３】
【特許文献１】特開平１―２０５２２５号公報（第２，３頁、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した従来例装置の思想を、例えばプリンタとスキャナーとを有する複合装置に採用すると、所定のスキャナー監視手段によってスキャナーを監視し、スキャナーの暴走が検出されたとき、スキャナーを制御するマイクロプロセッサにリセット信号を送ってこれをリセットして初期化させることになるが、この場合、スキャナー全体がリセットによって初期化されることになるため、例えばスキャン処理中であった場合には、最初から同じ処理を繰り返すことになって煩わしく、またそれまでの処理過程が無駄になって、非効率的になるという問題があった。
【０００５】
本発明の目的は、これらの問題点を解消し、装置に異常が発生した場合にも、復旧後に同じ処理過程を繰り返すことなく効率的に処理することが可能な複合装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明による複合装置は、複数の機能ユニットを備えた複合装置であって、
前記複数の機能ユニットの各々の異常を検出する検出部と、前記各々の異常に対する復旧情報を生成する復旧情報生成部と、前記復旧情報を表示する表示部と、前記復旧情報に基づいた復旧指示を入力する入力部と、前記入力された復旧指示に従って、前記複数の機能ユニットのいずれかの復旧処理を行う復旧処理部とを備えたことを特徴とする。
【０００７】
本発明による別の複合装置は、複数の機能ユニットを備えた複合装置であって、
前記複数の機能ユニットの各々の異常を検出する検出部と、前記検出部により異常が検出されたら現在の処理が継続可能か否かを判断する判断部と、前記判断部によって処理の継続が可能と判断されたら、異常が検出された前記機能ユニットの復旧処理を行う復旧処理部とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、機能ユニットに異常が発生した場合にも、復旧後の機能ユニットによる処理が最初から行われることにより、非効率的になることを防止することができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本発明に基づく実施の形態１の複合装置の要部構成を示す要部ブロック図である。同図に示すように、複合装置１００は、ＭＦＰ（Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌｓ）と呼ばれる装置であって、スキャナー１０１とプリンタ１０２がＵＳＢ１０３によって接続された構成となっている。
【００１０】
先ずスキャナー１０１の構成について説明する。スキャナー１０１は、読取処理部１０４、メモリ部１０５、コマンド解析部１０６、パワーセーブ処理部１０７、ＡＤＦ原稿排出処理部１０８、状態管理部１０９、ＵＳＢインタフェース部（以下、ＵＳＢＩ／Ｆ部と称す）１１０、制御部１１１、及び共通バス１１２を備えている。
【００１１】
読取処理部１０４は、コマンド解析部１０６から制御指示を受けると、後述する所定の読取シーケンス（図１２参照）に則り、後述するＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ：原稿自動送り装置）や図示しないフラットベッド等の原稿読取手段を用いて原稿を読み取る機能を有する。原稿から写真、文字、絵などの画像情報を光電的に読み取ったデータは、デジタルデータに変換され、スキャンデータを一時的に記憶するためにメモリ部１０５を利用しながら、周知の各種画像処理が施された後、プリンタ１０２へ送られ、画像の印刷やデータの送信に供される。
【００１２】
図２は、この読取処理部１０４に属するＡＤＦ１５０の要部構成を示す要部構成図である。ＡＤＦ１５０は、ピックアップローラ１５１、スキャンローラ１５２、ドキュメント排出ローラ１５３、ドキュメントセンサ１５４、及びスキャンセンサ１５５から構成され、読取処理部１０４が後述するスキャン開始のためのコマンドを受けると以下のような読み取り動作を実行する。
【００１３】
ピックアップローラ１５１は、図示しない読み取り原稿がセットされ、ＡＤＦ１５０に原稿が挿入されたことを検知するドキュメントセンサ１５４がオンになると、この読み取り原稿をフィードするために図中の矢印方向に回転し、これによって搬送される読み取り原稿を監視するスキャンセンサ１５５が、読み取り原稿が監視位置を通過し終わったことを知らせるオフ状態になった時点でその回転を停止させる。
【００１４】
スキャンローラ１５２は、ドキュメントセンサ１５４がオンになった時点で原稿を読み取るために図中の矢印方向に回転し、ドキュメントセンサ１５４がオフになった後、指定パルス数だけ回転した後に停止するように構成されている。ドキュメント排出ローラ１５３は、スキャンセンサ１５５がオンになった時点で原稿を排出するために図中の矢印方向に回転し、スキャンセンサ１５５がオフになった後、指定パルス数だけ回転した後に停止するように構成されている。以上のようにして搬送される読み取り原稿は、スキャンセンサ１５５がオンになるとスキャンを開始する図示しないスキャン手段によって、スキャンライン１５６上でその画像情報が読み取られるように構成されている。
【００１５】
メモリ部１０５は、読取処理部１０４によって読み取られたスキャンデータを一時的に記憶するＲＡＭと、スキャナー１０１の制御プログラムを予め格納するＲＯＭを有する。コマンド解析部１０６は、状態管理部１０９が管理している現在の処理内容を参照し、ＵＳＢＩ／Ｆ部１１０で受け取ったスキャナー１０１に対する制御コマンドを解析する。そして、現在の処理内容とその解析結果に応じて、読取処理部１０４、ＡＤＦ原稿排出処理部１０８、或いはパワーセーブ処理部１０７へ制御指示を通知する機能を有する。パワーセーブ処理部１０７は、コマンド解析部１０６より制御指示を受けたら、スキャナー１０１をパワーセーブモードヘ移行させ、そしてワーセーブモードから復旧させる機能を有する。
【００１６】
ＡＤＦ原稿排出処理部１０８は、コマンド解析部１０６より制御指示を受けると、ＡＤＦ１５０（図２）に挿入されている原稿を、図示しない排出手段によって排出する機能を有する。前記したドキュメントセンサ１５４（図２）がオフで、ＡＤＦ１５０に原稿が挿入されていない場合には、何もしない。状態管理部１０９は、スキャナー１０１が動作中であるか、動作していないアイドル中であるかを制御部１１１の処理状況の通知により判断し、後述するＢｕｓｙ／Ｒｅａｄｙ状態と現在の処理内容を管理する。尚、「Ｂｕｓｙ」は動作中に対応する状態であり、「Ｒｅａｄｙ」はアイドル中に対応する状態である。
【００１７】
ＵＳＢＩ／Ｆ部１１０は、ＵＳＢ２．０準拠のインタフェースである。制御部１１１は、メモリ部１０５のＲＯＭに格納されている制御プログラムを実行することによってスキャナー１０１全体を制御するマイクロプロセッサである。また、現在の処理内容と、動作中か又はアイドル中かを状態管理部１０９に通知する機能と、状態管理部１０９からリセットの指示をうけたとき、状態をアイドル中にする機能を有する。共通バス１１２は、スキャナー１０１における上記各部分を接続する信号線である。
【００１８】
次に、プリンタ１０２の構成について説明する。プリンタ１０２は、通信部１１３、ＵＳＢＩ／Ｆ部１１４、メモリ部１１５、外部ユニット制御部１１６、コマンド生成部１１７、検出部１１８、タイマ設定部１１９、復旧情報生成部１２０、復旧処理部１２１、印刷部１２２、オペレーションパネル１２３、制御部１２４、及び共通バス１２５を備えている。
【００１９】
通信部１１３は、図示しない通信網を介してファクシミリデータの送受信を行う機能と、図示しないネットワークを介して、このネットワークに接続された外部機器との間で電子メール等を用いてデータの送受信を行う機能を有する。ＵＳＢＩ／Ｆ部１１４は、ＵＳＢ２．０準拠のインタフェースである。ここでスキャナー１０１より受信したスキャンデータは、制御部１２４の制御によってメモリ部１１５に一時記憶される。メモリ部１１５は、スキャナー１０１より受信したスキャンデータを一時格納するＲＡＭと、プリンタ１０２の制御プログラムを予め格納するＲＯＭを有する。
【００２０】
外部ユニット制御部１１６は、スキャナー１０１を制御するためのコマンドの生成を、コマンド生成部１１７に指示する機能と、そのタイミングに同期してタイマ設定部１１９へタイマのセット、リセットを指示する機能と、スキャナー１０１に対して指示した制御の情報を復旧情報生成部１２０へ通知する機能とを有する。コマンド生成部１１７は、外部ユニット制御部１１６の指示に基づいて、スキャナー１０１を制御するためのコマンドを生成する機能を有する。
【００２１】
検出部１１８は、タイマ設定部１１９で設定したタイマがタイムアウトしたことを検出する機能と、タイムアウトを検出したことを復旧情報生成部１２０へ通知する機能を有し、タイマ設定部１１９は、外部ユニット制御部１１６の指示により、タイマをセット・リセットする機能を有し、復旧情報生成部１２０は、検出部１１８より機能異常検出の通知を受けたら、外部ユニット制御部１１６より受けた外部ユニット指示情報を基に復旧情報を生成する機能を有する。
【００２２】
復旧処理部１２１は、オペレーションパネル１２３から復旧指示を受けると、復旧指示に応じた復旧処理を行う機能を有する。復旧処理としては、外部ユニット制御部１１６を一時停止させ、コマンド生成部１１７で後述するＩｎｉｔｉａｌｉｚｉｎｇコマンドを生成させ、そのコマンドのパラメータとして、
・復旧指示の範囲が一部である場合は、装置の一部を初期化するパラメータ値を設定し、
・復旧指示の範囲が全体である場合は、装置全体を初期化するパラメータ値を設定する。
復旧処理部１２１は、スキャナー１０１へ生成したＩｎｉｔｉａｌｉｚｉｎｇコマンドを送信後、外部ユニット制御部１１６を再び起動させ、印刷部１２２は、メモリ部１１５のＲＡＭに格納されているスキャンデータを印刷用データに変換して印刷する機能を有する。
【００２３】
オペレーションパネル１２３は、その外観が例えば図３に示すように構成され、外部ユニット制御部１１６に読み取り開始を指示するスタートボタン１６１、読み取りキャンセル指示をするストップボタン１６２、装置のメニューボタン１６３、オペレーション操作でカーソルを移動させるための十字ボタン１６４、及びスキャナー１０１とプリンタ１０２のエラーや処理の内容、メニュー内容等を表示するＬＣＤ１６５を備えている。制御部１２４は、メモリ部１１５のＲＯＭに格納されている制御プログラムを実行することによってプリンタ１０２全体を制御するマイクロプロセッサであり、共通バス１２５は、プリンタ１０２における上記各部分を接続する信号線である。
【００２４】
図４は、コマンド生成部１１７で生成されるコマンドの種類によって決まる３つのシーケンスパターンを示している。
【００２５】
同図（ａ）には、プリンタ１０２がスキャナー１０１へ、Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅを送信（Ｓｅｑ１０１）後、続いてＤａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅを送信し（Ｓｅｑ１０２）、スキャナー１０１からＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅが返ってくる（Ｓｅｑ１０３）パターンが示され、同図（ｂ）には、プリンタ１０２がスキャナー１０１へ、Ｃｏｍｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅを送信する（Ｓｅｑ１０４）と、スキャナー１０１から先ずＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅが返ってきて（Ｓｅｑ１０５）、スキャナー１０１でデータの準備ができると続いてＤａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅが返ってくる（Ｓｅｑ１０６）パターンが示され、同図（ｃ）には、プリンタ１０２がスキャナー１０１へ、Ｃｏｍｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅを送信する（Ｓｅｑ１０７）と、スキャナー１０１からＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅが返って来る（Ｓｅｑ１０８）パターンが示されている。
【００２６】
図５は、図４で示した各Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成について示しており、同図（ａ）は、Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成を、同図（ｂ）は、Ｒｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成を、そして同図（ｃ）は、Ｄａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成をそれぞれ示し、図６には、後述するように、スキャナー制御コマンドの一覧が示されている。尚、図５、図６については、後で更に説明する。
【００２７】
図７〜図１１は、以上の構成による、本実施の形態の複合装置１００が実行する動作の流れを示すフローチャートであり、図１２は、スキャナー１０１とプリンタ１０２との間で交信されるＣｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの一例を示すシーケンス図である。図１のブロック図及び１２のシーケンス図を参照しながら、図７〜図１１のフローチャートに基づいて、複合装置１００の動作例を以下に説明する。
【００２８】
複合装置１００は、オペレーションパネル１２３のスタートボタン１６１（図３）が押下されると、コピーを開始する設定になっており、このときのコピーの設定はデフォルト値とする。ここでは、ＡＤＦ１５０によって搬送される原稿１枚を読み取り中に暴走して、読取処理部１０４に対して復旧処理を行う場合の動作例を示している。
【００２９】
オペレーションパネル１２３のスタートボタン１６１が、オペレータにより押下されると（ステップＳ１０１）、プリンタ１０２の外部ユニット制御部１１６は、コマンド生成部１１７にＡＤＦ原稿有無チェックのためのコマンド生成を指示してＡＤＦ原稿有無チェックを行う（ステップＳ１０２）。
【００３０】
図８は、このＡＤＦ原稿有無チェック処理の流れを示すフローチャートであり、図１２（ａ）は、このフローによって行われるスキャナー１０１とプリンタ１０２との間の交信シーケンス例であり、前記した図４（ｂ）に示すシーケンスパターンに相当する。図８のフローチャートに示すように、コマンド生成部１１７は、ＡＤＦ原稿有無チェックのためのコマンド（ｃｈｅｃｋＰａｐｅｒ）を生成し（ステップＳ１０２−１）、制御部１２４の制御により、生成したコマンド（ｃｈｅｃｋＰａｐｅｒ）をＵＳＢＩ／Ｆ部１１４からスキャナー１０１のＵＳＢＩ／Ｆ部１１０へ送信する（ステップＳ１０２−２）。
【００３１】
尚、この時スキャナー１０１に送信されるｃｈｅｃｋＰａｐｅｒ  Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ａ）に示すように、４つのコード（０×０４、０×００、０×０４、０×００）によって構成されるが、図５（ａ）の一覧から３バイト目のコード「０×０４」がコマンドコードであり、図６（ａ）の一覧からＡＤＦ原稿有無チェックのためのコマンド（ｃｈｅｃｋＰａｐｅｒ）であることが理解される。
【００３２】
スキャナー１０１のコマンド解析部１０６は、ＵＳＢＩ／Ｆ部１１０で受信したコマンドを解析し（ステップＳ１０２−３）、ＵＳＢＩ／Ｆ部１１０からプリンタ１０２のＵＳＢＩ／Ｆ部１１４へ、そのコマンドに対するレスポンスを返す（ステップＳ１０２−４）。レスポンスがＳｕｃｃｅｓｓｆｕｌ（処理成功）の場合（ステップＳ１０２−５，Ｙｅｓ）には処理成功と判断してステップＳ１０３へ進み、レスポンスが失敗した場合（ステップＳ１０２−５，Ｎｏ）には後述するステップＳ１１９へ進んで終了する。
【００３３】
尚、この時プリンタ１０２に返信されるＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ａ）に示すように、４つのコード（０×０４、０×０２、０×００、０×００）によって構成されるが、図５（ｂ）の一覧から３バイト目のコード「０×００」がＳｕｃｃｅｓｓｆｕｌ（処理成功）を示すレスポンスコードであることが理解され、更に付随するＤａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅはここでは３つのコード（０×０００００００６、０×０１、０×０１）によって構成され、図５（ｃ）の一覧から最後のコード「０×０１」がデータであり、図６（ｂ）の一覧から「紙有り」を回答していることが理解される。
【００３４】
プリンタ１０２の外部ユニット制御部１１６は、ＡＤＦ原稿有無チェックのためコマンドのレスポンスをチェックし、「ＡＤＦ原稿有り」（ステップＳ１０３、Ｙｅｓ）の時はステップＳ１０４へ進んでスキャン設定処理を実行し、「ＡＤＦ原稿無し」（ステップＳ１０３、Ｎｏ）の時はＦｌａｔｂｅｄスキャン制御へ移行する。尚、ここでは、Ｆｌａｔｂｅｄスキャン制御については説明を省略する。
【００３５】
図９は、ステップＳ１０４で行うスキャン設定処理の流れを示すフローチャートであり、図１２（ｂ）は、このフローによって行われるスキャナー１０１とプリンタ１０２との間の交信シーケンス例であり、前記した図４（ａ）に示すシーケンスパターンに相当する。図９のフローチャートに示すように、コマンド生成部１１７は、外部ユニット制御部１１６の指示に基づいて、スキャン設定のためのコマンド（ｓｅｔＰｒｏｐｅｒｔｉｅｓ）を生成し（ステップＳ１０４−１）、制御部１２４の制御により、生成したコマンド（ｓｅｔＰｒｏｐｅｒｔｉｅｓ）をＵＳＢＩ／Ｆ部１１４からスキャナー１０１のＵＳＢＩ／Ｆ部１１０へ送信する（ステップＳ１０４−２）。
【００３６】
尚、この時スキャナー１０１に送信されるｓｅｔＰｒｏｐｅｒｔｉｅｓ  Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｂ）に示すように、４つのコード（０×０４、０×００、０×０３、０×００）によって構成されるが、図５（ａ）の一覧から３バイト目のコード「０×０３」がコマンドコードであり、図６（ａ）の一覧からスキャン設定のためのコマンド（ｓｅｔＰｒｏｐｅｒｔｉｅｓ）であることが理解される。更に付随するＤａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅはここでは３つのコード（０×０００００００６、０×０１、０×００、０×００、０×００、０×０００×００、０×０１）によって構成され、図５（ｃ）の一覧から後６つのコードがデータであり、図６（ｂ）の一覧からそれぞれ「モノクロ（色）／１ｉｎ１（Ｎ−ｕｐ）／片面印刷（印刷面）／３００ｄｐｉ（解像度）／Ｒａｗ（圧縮方式）／１枚（部数）」を設定することが理解される。
【００３７】
スキャナー１０１のコマンド解析部１０６は、ＵＳＢＩ／Ｆ部１１０で受信したコマンドを解析し（ステップＳ１０４−３）、ＵＳＢＩ／Ｆ部１１０からプリンタ１０２のＵＳＢＩ／Ｆ部１１４へ、そのコマンドに対するレスポンスを返す（ステップＳ１０４−４）。レスポンスがＳｕｃｃｅｓｓｆｕｌの場合（ステップＳ１０４−５，Ｙｅｓ）には処理成功と判断してステップＳ１０５へ進んでスキャン開始を指示し、レスポンスが失敗した場合（ステップＳ１０４−５，Ｎｏ）には後述するステップＳ１１９へ進んで終了する。
【００３８】
尚、この時プリンタ１０２に返信されるＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｂ）に示すように、４つのコード（０×０４、０×０２、０×００、０×００）によって構成され、前記したように３バイト目のコード「０×００」によってＳｕｃｃｅｓｓｆｕｌ（処理成功）となっている。
【００３９】
図１０は、ステップＳ１０５で行うスキャン開始指示の流れを示すフローチャートであり、図１２（ｃ）は、このフローによって行われるスキャナー１０１とプリンタ１０２との間の交信シーケンス例であり、前記した図４（ｃ）に示すシーケンスパターンに相当する。図１０のフローチャートに示すように、コマンド生成部１１７は、外部ユニット制御部１１６の指示に基づいて、スキャン開始のためのコマンド（ｓｔａｒｔＳｃａｎ）を生成し（ステップＳ１０５−１）、制御部１２４の制御により、生成したコマンド（ｓｔａｒｔＳｃａｎ）をＵＳＢＩ／Ｆ部１１４からスキャナー１０１のＵＳＢＩ／Ｆ部１１０へ送信する（ステップＳ１０５−２）。
【００４０】
尚、この時スキャナー１０１に送信されるｓｔａｒｔＳｃａｎ  Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｃ）に示すように、４つのコード（０×０４、０×００、０×０１、０×００）によって構成されるが、図５（ａ）の一覧から３バイト目のコード「０×０１」がコマンドコードであり、図６（ａ）の一覧からスキャン開始のためのコマンド（ｓｔａｒｔＳｃａｎ）であることが理解される。
【００４１】
スキャナー１０１のコマンド解析部１０６は、ＵＳＢＩ／Ｆ部１１０で受信したコマンドを解析し（ステップＳ１０５−３）、ＵＳＢＩ／Ｆ部１１０からプリンタ１０２のＵＳＢＩ／Ｆ部１１４へ、そのコマンドに対するレスポンスを返す（ステップＳ１０５−４）。レスポンスがＳｕｃｃｅｓｓｆｕｌの場合（ステップＳ１０５−５，Ｙｅｓ）には処理成功と判断してステップＳ１０６へ進み、レスポンスが失敗した場合（ステップＳ１０５−５，Ｎｏ）には後述するステップＳ１１９へ進んで終了する。スキャナー１０１の読取処理部１０４は、このコマンド（ｓｔａｒｔＳｃａｎ）を受けると、ＡＤＦ１５０を稼働して原稿の読み取り制御を開始し、読み取ったスキャンデータをメモリ部１０５のＲＡＭに一時的に保存する。
【００４２】
尚、この時プリンタ１０２に返信されるＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｃ）に示すように、４つのコード（０×０４、０×０２、０×００、０×００）によって構成され、前記したように３バイト目のコード「０×００」によってＳｕｃｃｅｓｓｆｕｌ（処理成功）となっている。
【００４３】
外部ユニット制御部１１６は、外部ユニットに対して原稿読取制御（スキャン開始）を指示したことを復旧情報生成部１２０へ通知し（ステップＳ１０６）、タイマ設定部１１９へタイマのセットを指示する。タイマ設定部１１９は、外部ユニット制御部１１６からの指示によってタイマをセットし（ステップＳ１０７）、制御部１２４はスキャンデータの読み込みを開始する（ステップＳ１０８）。
【００４４】
図１１は、ステップＳ１０８で行うスキャンデータの読み込み処理の流れを示すフローチャートであり、図１２（ｄ）は、このフローによって行われるスキャナー１０１とプリンタ１０２との間の交信シーケンス例であり、前記した図４（ｂ）に示すシーケンスパターンに相当する。図１１のフローチャートに示すように、コマンド生成部１１７は、外部ユニット制御部１１６の指示に基づいて、スキャンデータを読み込むためのコマンド（ｒｅａｄＤａｔａ）を生成し（ステップＳ１０８−１）、制御部１２４の制御により、生成したコマンド（ｒｅａｄＤａｔａ）をＵＳＢＩ／Ｆ部１１４からスキャナー１０１のＵＳＢＩ／Ｆ部１１０へ送信する（ステップＳ１０８−２）。
【００４５】
尚、この時スキャナー１０１に送信されるｒｅａｄＤａｔａ  Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｄ）に示すように、４つのコード（０×０４、０×００、０×０５、０×０１９０００）によって構成されるが、図５（ａ）の一覧から３バイト目のコード「０×０５」がコマンドコードであり、図６（ａ）の一覧からスキャンデータを読み込むためのコマンド（ｒｅａｄＤａｔａ）であることが理解され、更に図５（ａ）の一覧から最後のコード「０×０１９０００」がパラメータであり、図６（ｂ）の一覧から読み込み時のデータサイズとして１００ｋバイトを指定していることが理解される。
【００４６】
スキャナー１０１のコマンド解析部１０６は、ＵＳＢＩ／Ｆ部１１０で受信したコマンドを解析し（ステップＳ１０８−３）、ＵＳＢＩ／Ｆ部１１０からプリンタ１０２のＵＳＢＩ／Ｆ部１１４へ、そのコマンドに対するレスポンスを返す（ステップＳ１０８−４）。レスポンスがＳｕｃｃｅｓｓｆｕｌの場合（ステップＳ１０８−５，Ｙｅｓ）には処理成功と判断してステップＳ１０８−６へ進んでスキャンデータの読み込みを開始して読み込んだスキャンデータをメモリ部１１５に一時保存し、レスポンスが失敗した場合（ステップＳ１０８−５，Ｎｏ）には後述するステップＳ１１９へ進んで終了する。
【００４７】
尚、この時プリンタ１０２に返信される最初にＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは図１２（ｄ）に示すように、５つのコード（０×０４、０×０２、０×００、０×００、０×０１）によって構成されるが、図５（ｂ）の一覧から３バイト目のコード「０×００」がＳｕｃｃｅｓｓｆｕｌ（処理成功）を示すレスポンスコードであり、最後の２つのコード「０×００、０×０１」がパラメータであることが理解され、図６（ｂ）の一覧からこのパラメータが「ページの途中、Ｂｕｓｙ状態」を回答していることが理解される。更に付随するＤａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅによってスキャンした画像データがスキャナー１０１からプリンタ１０２に送られていることが理解される。
【００４８】
また、後述するように、ステップＳ１０８は繰り返し実行されるステップであるため、図１２（ｄ）には、これに応じて交信が繰り返し行われた際のシーケンスを示し、最後のレスポンス例では、Ｒｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  ＳｔｒｕｃｔｕｒｅによってＳｕｃｃｅｓｓｆｕｌ（処理成功）、「ページの終わり」及び「Ｒｅａｄｙ状態」のデータがスキャナー１０１からプリンタ１０２に送られる例を示している。
【００４９】
外部ユニット制御部１１６は、スキャンデータを読み込むためのコマンドに対するレスポンスをチェックし、今回送られるスキャンデータが一頁分の全データの途中のデータであることを示す「ページの途中」（図１２（ｄ）参照）の場合（ステップＳ１０９，Ｙｅｓ）、タイマ設定部１１９でセットしているタイマに対してリセット指示し、タイマ設定部１１９が現在セットしているタイマをリセットし（ステップＳ１１０）、ステップＳ１０７へ移行する。即ち、外部ユニット制御部１１６は、スキャナー１０１から送られるスキャンデータがまだ途中のデータである間、スキャンデータを読み込むためのコマンド（ｒｅａｄＤａｔａ）をスキャナー１０１に送信し、スキャナー１０１から送られてくるスキャンデータの読込みを続ける。
【００５０】
一方、外部ユニット制御部１１６は、スキャンデータを読み込むためのコマンドに対するレスポンスをチェックし、今回送られるスキャンデータが全データの最後のデータであることを示す「ページの終わり」（図１２（ｄ）参照）の場合（ステップＳ１０９，Ｎｏ）、更にレスポンスをチェックしてスキャナー１０１が「Ｂｕｓｙ」であるか「Ｒｅａｄｙ」であるかを判定する（ステップＳ１１１）。尚「Ｂｕｓｙ」はスキャナーが読み取り動作中であることを示し、「Ｒｅａｄｙ」は動作していない状態、即ち次の原稿読み取りが可能な状態を示す。
【００５１】
スキャナー１０１が「Ｒｅａｄｙ」であった場合（ステップＳ１１１，Ｎｏ）、ステップＳ１２０に進んで、前記したステップＳ１０２と同様のＡＤＦ有無原稿チェックを行い、「ＡＤＦ原稿有り」（ステップＳ１２１、Ｙｅｓ）の時はステップＳ１０５へ進んで、前記したスキャン開始を指示し、以後前記したスキャンデータ読取動作を繰り返し、「ＡＤＦ原稿無し」（ステップＳ１２１、Ｎｏ）の時には、印刷部１２２によって、メモリ部１１５に保存されたスキャンデータを印刷する。
【００５２】
一方、ステップＳ１１１でスキャナー１０１が「Ｂｕｓｙ」であった場合（ステップＳ１１１，Ｙｅｓ）、検出部１１８によってタイマ設定部１１９で設定したタイマがタイムアウトしたか否かを判定し（ステップＳ１１２）、タイムアウトが検出されない場合（ステップＳ１１２，Ｎｏ）、ステップＳ１１１に戻って、「Ｂｕｓｙ」状態を監視する。即ち、ステップＳ１１１とＳ１１２により、「Ｂｕｓｙ」の状態が所定時間を越える（タイムアウト発生）か、否かを監視する。
【００５３】
ステップＳ１１２でタイムアウトが検出された場合、検出部１１８は、このタイムアウト検出を復旧情報生成部１２０へ通知し（ステップＳ１１２，Ｙｅｓ）、復旧情報生成部１２０は、外部ユニット制御部１１６より受けた外部ユニット指示情報を基に復旧情報を生成する（ステップＳ１１３）。制御部１２４は、復旧情報生成部１２０が生成したこの復旧情報をオペレーションパネル１２３のＬＣＤ１６５（図３）に表示する（ステップＳ１１４）。図１３は、この時に表示される表示内容を示している。
【００５４】
図１３（ａ）は、装置の一部のリセットと、装置全体のリセットの何れかを選択して実施できる場合の表示の遷移を示し、図１３（ｂ）は、装置全体のリセットのみが実施可能な場合の表示の遷移を示している。
【００５５】
ここでは、装置の一部のリセット（Ｃｏｎｔｉｎｕｅ）と装置全体のリセット（Ｒｅｓｅｔ）とが選択可能であり、オペレータが、装置の一部のリセットを選択するケースについて説明する。この場合、先ず図１３（ａ）のＳｃａｎｎｅｒ  ｂｕｓｙ  Ｔｉｍｅｏｕｔ  Ｅｒｒｏｒが表示され、オペレータは、表示されるガイドに従ってオペレーションパネル１２３のスタートボタン１６１（図３）を押下することになる。
【００５６】
以上のようにして、スタートボタン１６１が押下されると、復旧情報生成部１２０で生成された復旧情報（装置の一部リセットが選択された旨の情報）に基づいた復旧を復旧処理部１２１に指示し（ステップＳ１１５）、復旧処理部１２１は、復旧指示に応じた復旧処理を行う（ステップＳ１１６）。
【００５７】
図１４は、このステップＳ１１６で行う復旧処理の流れを示すシーケンス図である。このシーケンス図に基づいて復旧処理について更に説明する。
【００５８】
同図に示すように、先ず、復旧処理部１２１は、外部ユニット制御部１１６を一時停止させ、コマンド生成部１１７で初期設定のためのコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）を生成させる。そしてそのコマンドのパラメータとして、復旧指示の範囲が一部である時は、装置の一部を初期化するパラメータ値を設定し、復旧指示の範囲が全体である時は、装置全体を初期化するパラメータ値を設定し、ＵＳＢＩ／Ｆ部１１４からスキャナー１０１のＵＳＢＩ／Ｆ部１１０へ送信する。
【００５９】
尚、この時スキャナー１０１に送信されるＩｎｉｔｉａｌｉｚｉｎｇ  Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅは、ここでは同図に示すように、４つのコード（０×０４、０×００、０×０６、０×０１）によって構成されるが、図５（ａ）の一覧から３バイト目のコード「０×０６」がコマンドコードであり、図６（ａ）の一覧から初期化（リセット）するためのコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）であることが理解され、更に図５（ａ）の一覧から最後のコード「０×０１」がパラメータであり、図６（ｂ）の一覧から「装置の一部を初期化」を指定していることが理解される。
【００６０】
スキャナー１０１のコマンド解析部１０６は、状態管理部１０９が管理している現在の処理内容を参照して受け取ったコマンドを解析し、読取処理部１０４に対して復旧処理を指示する。読取処理部１０４は、状態管理部１０９へ状態を「Ｒｅａｄｙ」にするように指示し、状態管理部１０９はこの指示を受けて制御部１１１にリセットを指示する。制御部１１１は、このリセット指示を受けてスキャナー１０１をアイドル中とし、処理実行の「ＯＫ」を状態管理部１０９に通知する。
【００６１】
この「ＯＫ」通知は、状態管理部１０９、読取処理部１０４を介してコマンド解析部１０６に至り、コマンド解析部１０６は、コマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）に対するレスポンスを返す。尚、同図に示すこの時のレスポンス例では、Ｒｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  ＳｔｒｕｃｔｕｒｅによってＳｕｃｃｅｓｓｆｕｌ（処理成功）（３バイト目のレスポンスコードが「０×００」であるため）のデータがスキャナー１０１からプリンタ１０２に送られる例を示している。プリンタ１０２の復旧処理部１２１は、このコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）のレスポンスがＳｕｃｃｅｓｓｆｕｌ（処理成功）ならば、一時停止させた外部ユニット制御部１１６を再起動させる。
【００６２】
ステップＳ１１６における以上の復旧処理が終了すると、復旧処理部１２１は、復旧処理が成功したか否かを判定し（ステップＳ１１７）、Ｓｕｃｃｅｓｓｆｕｌによって処理成功と判定した場合（ステップＳ１１７，Ｙｅｓ）には読み込み処理が継続される（ステップＳ１１８）。尚、このステップＳ１１８の段階では、スキャナー１０１から送られてくるＲｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅ（図１２（ｄ）参照）は、すでにアイドル中を示す「Ｒｅａｄｙ状態」のデータとなっているため読み込み処理を終了して、次のステップに進むことができる。
【００６３】
ここで、以上のステップＳ１１１〜ステップＳ１１７までの処理を要約して説明する。例えば、スキャンデータの読み込みが終了したにもかかわらず、スキャナー１０１に問題が発生してその一部が暴走すると、Ｒｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅ（図１２（ｄ）参照）によって動作中を示す「Ｂｕｓｙ状態」のデータが連続して送られ、タイムアウトとなる。スキャナー１０１が、暴走によって動作状態となっているため、プリンタ１０２は、コマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）をスキャナー１０１に送信し、スキャナー１０１の状態を強制的に動作中からアイドル中に変えるよう指示する。スキャナー１０１が正常にこのコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）を受け付け、状態を動作中からアイドル中に変えられれば、成功のレスポンスとしてＳｕｃｃｅｓｓｆｕｌ（処理成功）をプリンタ１０２に返すため、プリンタ１０２は読み込みシーケンスを再開してステップＳ１１８に進む。
【００６４】
処理の継続のため、その後前記したステップＳ１０７に移行し、ステップＳ１２１で読み取るＡＤＦ原稿が終了と判断されるまで読み込み処理を継続することになるが、この間、読み込んだページ数に同期して図１３（ａ）で表示されるページ数が変り、ステップＳ１２２での印刷処理が終了するのに同期して図１３（ａ）では「Ｃｏｐｙ  ＯＫ」が表示され、その２秒後に、初期画面に変わる。
【００６５】
一方、復旧処理部１２１は、ステップＳ１１７で復旧処理が失敗と判定した場合（ステップＳ１１７，Ｎｏ）、制御部１２４によってオペレーションパネル１２３のＬＣＤ１６５に適切なエラー表示をし（ステップＳ１１９）、終了する。
【００６６】
尚、ステップＳ１１４で表示される図１３の表示内容に応じて、オペレータが装置全体のリセットを実行すべく、ストップボタン１６２（図３）を押下した場合の詳細な説明は省略するが、図１３（ｂ）にその処理過程が示しされるように、コピー処理動作はキャンセルされてスキャナー１０１全体がリセットされた後、初期画面に変わる。従ってこの場合、コピーを再開するためには、初期画面で「Ｃｏｐｙ」を選択した後、スタートボタンを押下し、図７のフローを最初から再度実行することになる。
【００６７】
以上のように、本実施の形態の複合装置１００によれば、スキャナーが暴走して動作しなくなった際に、装置の一部をリセットすることによって、コピー処理を再度最初から始めることなく継続処理できるため、環境の再設定等の煩雑な操作の繰り返しが避けられ、更に時間的な無駄も避けることができる。
【００６８】
実施の形態２．
図１５は、本発明に基づく実施の形態２の複合装置の要部構成を示す要部ブロック図である。この複合装置２００が、前記した図１に示す実施の形態１の複合装置１００と主に異なる点は、プリンタ２０２の外部ユニット制御部２１６、判断部２２０、復旧処理部２２１、及び検出部２１８の内容である。従って、この複合装置２００が、前記した実施の形態１の複合装置１００（図１）と共通する部分には同符号を付して、或いは図面を省いて説明を省略し、異なる点を重点的に説明する。
【００６９】
同図に示すように、プリンタ２０２は、通信部１１３、ＵＳＢＩ／Ｆ部１１４、メモリ部１１５、外部ユニット制御部２１６、コマンド生成部１１７、検出部２１８、タイマ設定部１１９、判断部２２０、復旧処理部２２１、印刷部１２２、オペレーションパネル１２３、制御部１２４、及び共通バス１２５を備えている。
【００７０】
外部ユニット制御部２１６は、スキャナー１０１を制御するためのコマンドの生成を、コマンド生成部２１７に指示する機能と、そのタイミングに同期してタイマ設定部２１９へタイマのセット、リセットを指示する機能と、スキャナー１０１に対して指示した制御の情報を判断部２２０へ通知する機能と、判断部２２０へ読み込み処理の進捗を通知する機能を有する。検出部２１８は、タイマ設定部１１９で設定したタイマがタイムアウトしたことを検出する機能と、検出したことを判断部２２０へ通知する機能を有する。
【００７１】
判断部２２０は、処理毎に現在の処理状態を管理し、後述する図１６の状態遷移図に示すように、例えば読み込み処理時においては、タイムアウト発生時に「リセット処理」状態へ遷移できるかどうかを判断し、可能な場合は復旧処理部２２１へ復旧処理を指示する機能を有する。
【００７２】
図１６は、判断部２２０が、外部ユニット制御部２１６からスキャンデータ読み込み開始のコマンドが指示された通知を受け、種々のケースに応じて行う判断による状態遷移例を示す状態遷移図であり、以下この状態遷移図について説明する。
【００７３】
先ず初期状態において、外部ユニット制御部２１６から外部ユニット（ここではスキャナ１０１）に対する指示として、スキャンデータ読み込み開始の制御コマンドが送信されたことの通知を受けると、状態を「Ｐｒｏｃｅｓｓｉｎｇ」へ遷移させる。
【００７４】
次に「Ｐｒｏｃｅｓｓｉｎｇ」状態において、一頁分の全データの読み取りが終了した場合には状態を「Ｒｅａｄｙ状態待ち」へ遷移し、外部ユニットがＲｅａｄｙ状態になったら状態を「読取終了待ち」へ遷移し、エラーが発生したら状態を［エラー状態」へ遷移する。
【００７５】
「Ｐｒｏｃｅｓｓｉｎｇ」状態から「Ｒｅａｄｙ状態待ち」状態に遷移した場合、外部ユニットがＲｅａｄｙ状態になったら状態を「終了処理」へ遷移し、タイムアウトが発生したら、外部ユニット制御部２１６から通知された外部ユニット制御指示情報を参照し、処理の継続が可能なので「リセット処理」へ遷移し、エラーが発生したら状態を「エラー状態」へ遷移する。
【００７６】
「Ｐｒｏｃｅｓｓｉｎｇ」状態から「読取終了待ち」状態に遷移した場合、読み取りが終了したら状態を「終了処理」へ遷移し、タイムアウトが発生したら、処理の継続が不可能なので、状態を「エラー状態」へ遷移し、エラーが発生したら状態を「エラー状態」へ遷移する。
【００７７】
「Ｒｅａｄｙ状態待ち」状態から「リセット処理」へ遷移した場合、リセット処理が終了したら状態を「終了処理」へ遷移し、エラーが発生したら状態を「エラー状態」へ遷移する。
【００７８】
各状態から「終了処理」へ遷移した場合、読込処理が終了したら状態遷移は終了し、エラーが発生したら状態を「エラー状態」へ遷移する。
【００７９】
各状態から「エラー状態」へ遷移した場合、エラーが復旧したら状態遷移は終了する。
【００８０】
従って、判断部２２０は、例えば、「Ｒｅａｄｙ状態待ち」状態の時にタイムアウトが発生した場合は「リセット処理」状態へ遷移できるが、「読取終了待ち」状態の時にタイムアウトが発生した場合は「リセット処理」状態へ遷移できないことを示している。
【００８１】
復旧処理部２２１は、オペレーションパネル１２３から復旧指示を受けると、復旧指示に応じた復旧処理を行う機能を有する。復旧処理としては、外部ユニット制御部２１６を一時停止させ、コマンド生成部１１７でＩｎｉｔｉａｌｉｚｉｎｇコマンドを生成させ、そのコマンドのパラメータとして、
・復旧指示の範囲が一部である場合は、装置の一部を初期化するパラメータ値を設定し、
・復旧指示の範囲が全体である場合は、装置全体を初期化するパラメータ値を設定する。
更に、これ等の処理に加え、判断部２２０により復旧指示を受けたら復旧処理を実行する機能を有する。
【００８２】
プリンタ２０２の、通信部１１３、ＵＳＢＩ／Ｆ部１１４、メモリ部１１５、コマンド生成部１１７、タイマ設定部１１９、印刷部１２２、オペレーションパネル１２３、制御部１２４、及び共通バス１２５、それにスキャナー１０１は前記した実施の形態１同じであるため、ここでの説明は省略する。
【００８３】
図１７及び図１８は、以上の構成による、本実施の形態の複合装置２００が実行する動作の流を示すフローチャートである。図１５のブロック図及び図１６の状態遷移図を参照しながら図１７及び図１８のフローチャートに基づいて、複合装置２００の動作例を以下に説明する。
【００８４】
複合装置２００は、オペレーションパネル１２３のスタートボタン１６１が押下されると、コピーを開始する設定になっており、このときのコピーの設定はデフォルト値とする。ここでは、ＡＤＦ１５０によって搬送される原稿１枚を読み込み中に暴走して、読取処理部１０４に対して復旧処理を行う場合の動作例を示している。
【００８５】
オペレーションパネル１２３のスタートボタン１６１が、オペレータにより押下されるステップＳ２０１からスキャン開始が指示されるステップＳ２０５までの動作は、前記した実施の形態１で説明したステップＳ１０１からステップＳ１０５までの動作と同じなのでここでの説明は省略する。
【００８６】
その後、外部ユニット制御部２１６は、読み込みを開始したことを判断部２２０に通知して、判断部２２０が状態を「Ｐｒｏｃｅｓｓｉｎｇ（読み込み中）」（図１６参照）に遷移させ、また外部ユニット制御指示情報を判断部２２０へ通知する（ステップＳ２０６）。その後、外部ユニット制御部２１６は、タイマ設定部１１９でセットしているタイマに対してリセット指示し、タイマ設定部１１９が現在セットしているタイマをリセットし（ステップＳ２０７）、タイマ設定部１１９は、外部ユニット制御部１１６からの指示によってタイマをセットし（ステップＳ２０８）、制御部１２４はスキャンデータの読み込みを開始する（ステップＳ２０９）。
【００８７】
外部ユニット制御部２１６は、スキャンデータを読み込むためのコマンドに対するレスポンスをチェックし、今回送られるスキャンデータが全データの途中のデータであることを示す「ページの途中」（図１２（ｄ）参照）の場合（ステップＳ２１０，Ｙｅｓ）、読み込んだスキャンデータサイズをチェックし、サイズがゼロでない場合（ステップＳ２１１，Ｎｏ）、更にスキャンデータ読み込むためのコマンドレスポンスをチェックしてスキャナー１０１が「Ｂｕｓｙ」であるか「Ｒｅａｄｙ」であるかを判定し（ステップＳ２１３）、スキャナー１０１が「Ｂｕｓｙ」であった場合（ステップＳ２１３，Ｙｅｓ）、ステップＳ２０７に戻る。
尚「Ｂｕｓｙ」は、スキャナー１０１が読み取り動作中であることを示し、「Ｒｅａｄｙ」は、動作していない状態、即ち次の原稿読み取りが可能な状態を示す。
【００８８】
即ち、外部ユニット制御部１１６は、スキャナー１０１から送られるスキャンデータがまだ途中のデータであり、データサイズがゼロでなく、スキャナー１０１が「Ｂｕｓｙ」である間、スキャンデータを読み込むためのコマンド（ｒｅａｄＤａｔａ）をスキャナー１０１に送信し、スキャナー１０１から送られてくるスキャンデータの読込みを続ける。
【００８９】
外部ユニット制御部２１６は、このスキャンデータの読み込み過程のステップＳ２１０で、スキャンデータを読み込むためのコマンドに対するレスポンスが、今回送られるスキャンデータが全データの最後のデータであることを示す「ページの終わり」（図１２（ｄ）参照）であった場合（ステップＳ２１０，Ｎｏ）、読み込みが終了したことを判断部２２０へ通知して、判断部２２０の状態を「Ｒｅａｄｙ状態待ち」へ遷移させる（ステップＳ２１４）。外部ユニット制御部２１６は、更にレスポンスをチェックしてスキャナー１０１が「Ｂｕｓｙ」であるか「Ｒｅａｄｙ」であるかを判定する（ステップＳ２１５）。
【００９０】
スキャナー１０１が「Ｒｅａｄｙ」であった場合（ステップＳ２１５，Ｎｏ）、外部ユニット制御部２１６は、タイマ設定部２１９でセットしているタイマに対してリセットを指示し、タイマ設定部２１９が現在セットしているタイマをリセットし（ステップＳ２３３）、判断部２２０の状態を「終了処理」へ遷移させ（ステップＳ２３４）、制御部２２４は、現在の処理を終了させる。
【００９１】
その後、ステップＳ２３５に進んで、前記したステップＳ１０２（図７）と同様のＡＤＦ原稿有無チェックを行い、「ＡＤＦ原稿有り」（ステップＳ２３６、Ｙｅｓ）の時はステップＳ２０５へ進んで、前記したスキャン開始を指示し、以後前記したスキャンデータ読取動作を繰り返し、「ＡＤＦ原稿無し」（ステップＳ２３６、Ｎｏ）の時には、印刷部１２２によって、メモリ部１１５に保存されたスキャンデータを印刷する（ステップＳ２３７）。
【００９２】
一方、ステップＳ２１５でスキャナー１０１が「Ｂｕｓｙ」であった場合（ステップＳ２１５，Ｙｅｓ）、検出部１１８によってタイマ設定部１１９で設定したタイマがタイムアウトしたか否かを判定し（ステップＳ２１６）、タイムアウトが検出されない場合（ステップＳ２１６，Ｎｏ）、ステップＳ２１５に戻って、「Ｂｕｓｙ」状態を監視する。即ち、ステップＳ２１５とＳ２１６により、「Ｂｕｓｙ」の状態が所定時間を越えるか（タイムアウト発生）、否かを監視する。
【００９３】
ステップＳ２１６でタイムアウトが検出された場合にはタイムアウトを検出したことを判断部２２０に通知し（ステップＳ２１６，Ｙｅｓ）、ステップＳ２２４（図１８）に移る。
【００９４】
外部ユニット制御部２１６は、前記したステップＳ２０７〜ステップＳ２１３のスキャンデータの読み込み過程のステップＳ２１１で、チェックしたスキャンデータサイズがゼロの場合（ステップＳ２１１，Ｙｅｓ）、検出部１１８によってタイマ設定部１１９で設定したタイマがタイムアウトしたか否かを判定し（ステップＳ２１２）、タイムアウトが検出されない場合（ステップＳ２１２，Ｎｏ）、ステップＳ２０９に戻って、スキャンデータの読み込みを繰り返す。即ち、ステップＳ２１１とＳ２１２により、ステップＳ２０９〜ステップＳ２１３のスキャンデータの読み込み過程でスキャンデータサイズがゼロの状態が所定時間を越えるか（タイムアウト発生）、否かを監視する。ここでタイムアウトが発生した場合、ステップＳ２２４（図１８）に移る。
【００９５】
更に外部ユニット制御部２１６は、前記したステップＳ２０７〜ステップＳ２１３のスキャンデータの読み込み過程のステップＳ２１３で、チェックしたスキャンデータ読み込みのためのコマンドレスポンスにおいて、スキャナー１０１が「Ｒｅａｄｙ」であった場合（ステップＳ２１２，Ｙｅｓ）、判断部２２０は、状態を「読取終了待ち」とし、前記したステップＳ２０７〜ステップＳ２０９と同様の、タイマリセット（ステップＳ２１８）、タイマ設定（ステップＳ２１９）、及びスキャンデータの読み込み開始（ステップＳ２１９）を実行する。
【００９６】
外部ユニット制御部２１６は、スキャンデータを読み込むためのコマンドに対するレスポンスをチェックし、今回送られるスキャンデータが全データの途中のデータであることを示す「ページの途中」（図１２（ｄ）参照）の場合（ステップＳ２２１，Ｙｅｓ）、読み込んだスキャンデータサイズをチェックし、サイズがゼロでない場合（ステップＳ２２２，Ｎｏ）、ステップＳ２１８に戻る。
【００９７】
即ち、外部ユニット制御部１１６は、ここでスキャナー１０１から送られるスキャンデータがまだ途中のデータであり、データサイズがゼロでない間、スキャンデータを読み込むためのコマンド（ｒｅａｄＤａｔａ）をスキャナー１０１に送信し、スキャナー１０１から送られてくるスキャンデータの読込みを続ける。
【００９８】
外部ユニット制御部２１６は、このスキャンデータの読み込み過程のステップＳ２２１で、スキャンデータを読み込むためのコマンドに対するレスポンスが、今回送られるスキャンデータが全データの最後のデータであることを示す「ページの終わり」（図１２（ｄ）参照）であった場合（ステップＳ２２１，Ｎｏ）、読み込みが終了したことを判断部２２０へ通知して、ステップＳ２３３に移り、前記したステップＳ２３３〜ステップ２３７の処理を実行する。
【００９９】
外部ユニット制御部２１６は、前記したステップＳ２１８〜ステップＳ２２３のスキャンデータの読み込み過程のステップＳ２２３で、チェックしたスキャンデータサイズがゼロの場合（ステップＳ２２２，Ｙｅｓ）、検出部１１８によってタイマ設定部１１９で設定したタイマがタイムアウトしたか否かを判定し（ステップＳ２２３）、タイムアウトが検出されない場合（ステップＳ２２３，Ｎｏ）、ステップＳ２２０に戻って、スキャンデータの読み込みを繰り返す。即ち、ステップＳ２２２とＳ２２３により、ステップＳ２２０〜ステップＳ２２３のスキャンデータの読み込み過程でスキャンデータサイズがゼロの状態が所定時間を越えるか（タイムアウト発生）、否かを監視する。ここでタイムアウトが発生した場合、ステップＳ２２４（図１８）に移る。
【０１００】
ステップＳ２２４において、判断部２２０は、外部ユニット制御部２１６より受けた外部ユニット制御指示情報により、現在の処理が継続可能か否かを、図１６の状態遷移図の流れに沿って判断する。例えば、判断部２２０が、前記したステップＳ２１７で「読取終了待ち」状態とされ、所定時間以上、読み込んだデータサイズのゼロ状態が続いた場合、処理の継続が不可能と判断し、一方判断部２２０が、前記したステップＳ２１４で「Ｒｅａｄｙ待ち」状態とされ、所定時間以上、スキャナー１０１の「Ｂｕｓｙ」状態が続いた場合、図１６の状態遷移図に従って処理の継続が可能と判断する。
【０１０１】
ここで、ステップＳ２２４で処理の継続が不可能と判断された上記ケースについて更に説明する。ここでの例は、スキャナー１０１がＲｅａｄｙ状態となった読み取り動作が終了した状態で、プリンタ２０２が、スキャナー１０１のメモリ部１０５に格納されているスキャンデータをプリンタのメモリ部１１５に読み込んでいる際に、何らかの問題が生じて読み込んでいるデータのサイズがゼロの状態（データを読めていない状態）が続いてタイムアウトが発生したケースに相当する。この場合、スキャナー１０１は既にＲｅａｄｙ状態となっていて読み取り動作を終了し、コマンド（ｒｅａｄＤａｔａ）に対してレスポンスを返しているだけなので、一部のリセットを行うことができないため、処理の継続が不可能と判断する。
【０１０２】
判断部２２０は、上記したように、現在の処理が継続可能か否かを判断し、可能な場合には（ステップＳ２２４，Ｙｅｓ）、状態を「リセット処理」へ遷移させ、現在の処理を継続させるため、復旧処理部２２１へ復旧処理を指示し（ステップＳ２２５）、ステップＳ２２６へ移行して復旧処理を実行する。尚、このステップＳ２２６での復旧処理は、前記した実施の形態１で説明したステップＳ１１６での復旧処理と同じなのでここでの説明は省略する。
【０１０３】
ステップＳ２２６における前記した復旧処理が終了すると、復旧処理部２２１は、復旧処理が成功したか否かを判定し（ステップＳ２２７）、前記したステップＳ１１７の場合と同様に、Ｓｕｃｃｅｓｓｆｕｌによって処理成功と判定した場合（ステップＳ２２７，Ｙｅｓ）には、処理が継続される（ステップＳ２２８）。
【０１０４】
処理の継続のため、その後前記したステップＳ２０７に移行し、ステップＳ２３６で読み込むＡＤＦ原稿が終了と判断されるまで読み込み処理を継続することになるが、この間、読み込んだページ数に同期して図１３（ａ）で表示されるページ数が変り、ステップＳ２３７での印刷処理が終了するのに同期して図１３（ａ）では「Ｃｏｐｙ  ＯＫ」が表示され、その２秒後に、初期画面に変わる。
【０１０５】
復旧処理部２２１は、ステップＳ２２７で復旧処理が失敗と判定した場合（ステップＳ２２７，Ｎｏ）、制御部１２４によってオペレーションパネル１２３のＬＣＤ１６５（図２）に適切なエラー表示をする（ステップＳ２３２）。
【０１０６】
一方、判断部２２０は、ステップＳ２２４で現在の処理が継続不可能と判定した場合（ステップＳ２２４，Ｎｏ）には、オペレーションパネル１２３のＬＣＤ１６５にタイムアウトエラーを表示し（ステップＳ２２９）、オペレータによって、オペレーションパネル２２３のストップボタン１６２（図３）が押下されると（ステップＳ２３０）、復旧処理（ステップＳ２３１）が実行される。尚、ここでのタイムアウトエラー表示（ステップＳ２２９）は、前記した実施の形態１で説明したステップＳ１１４の動作と同じなのでここでの説明は省略する。
【０１０７】
ステップＳ２３１では以下の復旧処理が実行される。
１．復旧処理部２２１は、コマンド生成部１１７でコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）を生成させ、そのコマンドのパラメータとして、装置全体を初期化するパラメータを設定する。
２．復旧処理部２２１は、スキャナー１０１へコマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）を送信する。
３．コマンド解析部１０６は、コマンドを解析して、制御部１１１に対してリセットを指示する。
４．制御部１１１は、初期化を行う。
５．復旧処理部２２１は、コマンド（Ｉｎｉｔｉａｌｉｚｉｎｇ）のレスポンスがＳｕｃｃｅｓｓｆｕｌ（処理成功）ならば、制御部１２４に対して初期化を行う。
【０１０８】
尚、ステップＳ２２９で表示される図１３の表示内容に応じて、オペレータが装置全体のリセットを実行すべく、ストップボタン１６２（図３）を押下した場合、図１３（ｂ）にその処理過程が示しされるように、コピー処理動作はキャンセルされてスキャナー１０１全体がリセットされた後、初期画面に変わる。従ってこの場合、コピーを再開するためには、初期画面で「Ｃｏｐｙ」を選択した後、スタートボタンを押下し、図１７のフローを最初から再度実行することになる。
【０１０９】
以上のように、本実施の形態の複合装置２００によれば、前記した実施の形態１の場合と同様に、スキャナーが暴走して動作しなくなった際に、装置の一部をリセットすることによって、コピー処理を再度最初から始めることなく継続処理できるため、環境の再設定等の煩雑な操作の繰り返しが避けられ、更に時間的な無駄も避けることができる。更に、処理の継続が可能な場合には、装置自身によってリセットが実行されるため、オペレータによる継続のための操作を不要にできる。
【０１１０】
尚、本実施の形態では、ステップＳ２２４で現在の処理が継続可能と判断された場合、自動的に継続のためのリセット処理を実行するように設定したが、これに限定されるものではなく、前記した実施の形態１の場合と同様に、図１３（ａ）のタイムアウト時の表示を行って、オペレータが、処理の継続か或いは装置全体のリセットかを選択するように構成してもよいことは勿論である。
【産業上の利用可能性】
【０１１１】
前記した実施の形態では、プリンタとスキャナーを組み合わせた場合を例にして説明したが、本発明は、プリンタとそれに付随するフィニッシャー等のオプションの組み合わせ、更にはコンピュータ本体とキーボード等のその周辺機器の組み合せ等にも適用可能である。
【図面の簡単な説明】
【０１１２】
【図１】本発明に基づく実施の形態１の複合装置の要部構成を示す要部ブロック図である。
【図２】読取処理部に属するＡＤＦの要部構成を示す要部構成図である。
【図３】オペレーションパネルの外観図である。
【図４】（ａ）、（ｂ）、（ｃ）は、コマンド生成部で生成されるコマンドの種類によって決まる３つのシーケンスパターンを示すシーケンス図である。
【図５】（ａ）は、Ｃｏｍａｎｄ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成を、（ｂ）は、Ｒｅｓｐｏｎｓｅ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成を、そして（ｃ）は、Ｄａｔａ  Ｃｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの構成をそれぞれ示している。
【図６】（ａ）はスキャナー制御コマンドの一覧であり、（ｂ）は、パラメータ及びデータの内容の説明に供する図である。
【図７】実施の形態１の複合装置が実行する動作の流れを示すフローチャートである。
【図８】実施の形態１の複合装置が実行する動作の流れを示すフローチャートである。
【図９】実施の形態１の複合装置が実行する動作の流れを示すフローチャートである。
【図１０】実施の形態１の複合装置が実行する動作の流れを示すフローチャートである。
【図１１】実施の形態１の複合装置が実行する動作の流れを示すフローチャートである。
【図１２】実施の形態１の複合装置においてスキャナーとプリンタとの間で交信されるＣｏｎｔａｉｎｅｒ  Ｓｔｒｕｃｔｕｒｅの一例を示すシーケンス図である。
【図１３】（ａ）は、装置の一部のリセットと、装置全体のリセットの何れかを選択して実施できる場合の表示の遷移を示す図であり、（ｂ）は、装置全体のリセットのみが実施可能な場合の表示の遷移を示す図である。
【図１４】図７のフローチャートのステップＳ１１６で行う復旧処理の流れを示すシーケンス図である。
【図１５】本発明に基づく実施の形態２の複合装置の要部構成を示す要部ブロック図である。
【図１６】実施の形態２の複合装置の判断部が、外部ユニット制御部からスキャンデータ読み込み開始のコマンドが指示された通知を受け、種々のケースに応じて行う判断による状態遷移例を示す状態遷移図である。
【図１７】実施の形態２の複合装置が実行する動作の流れを示すフローチャートである。
【図１８】実施の形態２の複合装置が実行する動作の流れを示すフローチャートである。
【符号の説明】
【０１１３】
１００  複合装置、  １０１  スキャナー、  １０２  プリンタ、  １０３  ＵＳＢ、  １０４  読取処理部、  １０５  メモリ部、  １０６  コマンド解析部、  １０７  パワーセーブ処理部、  １０８  ＡＤＦ原稿排出処理部、  １０９  状態管理部、  １１０  ＵＳＢＩ／Ｆ部、  １１１  制御部、  １１２  共通バス、  １１３  通信部、  １１４  ＵＳＢＩ／Ｆ部、  １１５  メモリ部、  １１６  外部ユニット制御部、  １１７  コマンド生成部、  １１８  検出部、  １１９  タイマ設定部、  １２０  復旧情報生成部、  １２１  復旧処理部、  １２２  印刷部、  １２３  オペレーションパネル、  １２４  制御部、  １２５  共通バス、  １５０  ＡＤＦ、  １５１  ピックアップローラ、  １５２  スキャンローラ、  １５３  ドキュメント排出ローラ、  １５４  ドキュメントセンサ、  １５５  スキャンセンサ、  １５６  スキャンライン、  １６１  スタートボタン、  １６２  ストップボタン、  １６３  メニューボタン、  １６４  十字ボタン、  １６５  ＬＣＤ、  ２００  複合装置、  ２０２  プリンタ、  ２１６  外部ユニット制御部、  ２１８  検出部、  ２２０  判断部、  ２２１  復旧処理部。
【図１】
2009049619.tif 000003
【図２】
2009049619.tif 000004
【図３】
2009049619.tif 000005
【図４】
2009049619.tif 000006
【図５】
2009049619.tif 000007
【図６】
2009049619.tif 000008
【図７】
2009049619.tif 000009
【図８】
2009049619.tif 000010
【図９】
2009049619.tif 000011
【図１０】
2009049619.tif 000012
【図１１】
2009049619.tif 000013
【図１２】
2009049619.tif 000014
【図１３】
2009049619.tif 000015
【図１４】
2009049619.tif 000016
【図１５】
2009049619.tif 000017
【図１６】
2009049619.tif 000018
【図１７】
2009049619.tif 000019
【図１８】
2009049619.tif 000020