(57)【要約】      （修正有）【課題】プログラムにより制御される装置において、エラーの原因やプログラムのエラーへの関与等の解析を、より容易にするプリンターを提供する。【解決手段】プリンター３は、所定の順序で実行される複数のプログラムモジュールを含んで構成される制御プログラム３１１を実行するＣＰＵ、印刷媒体に印刷する印刷ヘッド４３、印刷媒体を搬送する搬送モーター４２、搬送モーター４２の搬送量を検出する駆動部４１を備える。ＣＰＵが構成するプログラム実行部３００は、エラーを検出した場合に、エラー検出時にＣＰＵが実行していたプログラムモジュールを特定する情報、検出されたエラーを示すエラーコード、及び、搬送量検出手段により検出された搬送量を、ともに出力する。【選択図】図２
2014188791.tif 000002
【特許請求の範囲】
【請求項１】
所定の順序で実行される複数のプログラムモジュールを含んで構成されるプログラムを実行するプログラム実行手段と、
印刷媒体に印刷する印刷手段と、
エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力する出力手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記プログラム実行手段は、前記プログラムを記憶した記憶手段から前記プログラムを読み出して実行し、
前記記憶手段に記憶される前記プログラムは、各々の前記プログラムモジュールを特定可能な識別情報を含むことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記印刷媒体を搬送する搬送手段と、前記搬送手段の搬送量を検出する搬送量検出手段とを備え、
前記出力手段は、エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードとともに、前記搬送量検出手段により検出された搬送量を出力することを特徴とする請求項１または２記載の印刷装置。
【請求項４】
前記出力手段は、前記エラーを検出した場合であって前記印刷手段が動作可能な場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、前記エラーコード、及び、前記搬送量検出手段により検出された搬送量を、前記エラーへの対応に係るメッセージとともに前記印刷手段により印刷すること、
を特徴とする請求項３記載の印刷装置。
【請求項５】
前記プログラム実行手段は、前記印刷手段及び前記搬送手段を制御する制御プログラムを実行する第１ＣＰＵと、前記第１ＣＰＵにおけるプログラムの実行状態を監視する監視プログラムを実行する第２ＣＰＵとを備え、
前記第２ＣＰＵは前記監視プログラムを実行することにより、前記エラーを検出した場合にエラー検出時に前記第１ＣＰＵが実行していた前記プログラムモジュールを特定し、特定した前記プログラムモジュールを示す情報と前記エラーコードと前記搬送量検出手段により検出された搬送量とを前記出力手段によって出力させること、
を特徴とする請求項３記載の印刷装置。
【請求項６】
印刷装置と制御装置とを接続して構成される印刷システムにおいて、
前記印刷装置は、
所定の順序で実行される複数のプログラムモジュールを含んで構成されるプログラムを実行するプログラム実行手段と、
印刷媒体に印刷する印刷手段と、
エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力する出力手段と、を備え、
前記制御装置は、前記出力手段により出力された情報を表示すること、
を特徴とする印刷システム。
【請求項７】
前記制御装置は、前記出力手段により出力された前記エラーコードとともに前記エラーへの対応に係るメッセージを表示することを特徴とする請求項５記載の印刷システム。
【請求項８】
印刷媒体に印刷する印刷装置を、プログラムを実行することにより制御する印刷装置の制御方法であって、
所定の順序で実行される複数のプログラムモジュールを含んで構成される前記プログラムを実行し、
前記印刷装置のエラーを検出した場合に、エラー検出時に実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力すること、
を特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置から送信されたデータに基づいて印刷を行う印刷装置、印刷システム、及び、印刷装置の制御方法に関する。
【背景技術】
【０００２】
従来、プログラムにより制御される装置において、異常が検出された場合に異常の原因の特定を図ったものが知られている（例えば、特許文献１参照）。特許文献１記載の装置は、プリンターに接続されるデータ処理装置であり、接続されたプリンターでエラーが発生した場合に、エラー検出時に実行していた処理の種別を記憶する。より具体的には、特許文献１記載のデータ処理装置は、各種の業務処理プログラムを実行するよう構成され、エラー検出時に実行していたプログラムを特定することによって、実行中であった処理の種別を特定する。このようにエラー検出時に実行していた処理の種別を特定することで、エラー原因とエラー検出時に実行していた処理との因果関係の解析を容易にし、例えばエラーの原因がプログラムの不具合であるのか機械的なエラーかの判断に寄与することが期待されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−３０１２０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、プログラムは処理の開始から最後までの一連の処理を含むように作成され、実装される。このため、各種のプログラムを実行する装置において実行中のプログラムを特定しても、そのプログラムが多くの処理を含んでいることが珍しくない。そして、一つのプログラムに含まれる複数の処理のうち、どの処理を実行していたのかを特定することは容易ではない。従って、プログラムを実行する装置が、実行中の処理を詳細に特定することは困難であった。
本発明は、上述した事情に鑑みてなされたものであり、プログラムにより制御される装置において、エラーの原因やプログラムのエラーへの関与等の解析を、より容易にすることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、所定の順序で実行される複数のプログラムモジュールを含んで構成されるプログラムを実行するプログラム実行手段と、印刷媒体に印刷する印刷手段と、エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力する出力手段と、を備えることを特徴とする。
本発明によれば、複数のプログラムモジュールを含んで構成されるプログラムの実行中に印刷装置においてエラーが検出された場合に、エラーが検出された際に実行されていたプログラムモジュールを特定する情報が、エラーコードとともに出力される。これにより、エラー検出時におけるプログラムの実行状態を詳細に知ることが可能になるので、エラーの原因及びエラー発生に関するプログラムの関与について、より容易に、かつ詳細な解析を行うことが可能となる。
【０００６】
上記構成において、前記プログラム実行手段は、前記プログラムを記憶した記憶手段から前記プログラムを読み出して実行し、前記記憶手段に記憶される前記プログラムは、各々の前記プログラムモジュールを特定可能な識別情報を含むものとしてもよい。
この場合、プログラムに含まれるプログラムモジュールのうち、エラーに関係するプログラムモジュールを容易に特定できる。
【０００７】
また、上記構成において、前記印刷媒体を搬送する搬送手段と、前記搬送手段の搬送量を検出する搬送量検出手段とを備え、前記出力手段は、エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードとともに、前記搬送量検出手段により検出された搬送量を出力してもよい。
この場合、プログラムの実行中に印刷装置においてエラーが検出された場合に、搬送量検出手段により検出された搬送量が出力される。このため、エラー検出時におけるプログラムの実行状態を詳細に知ることが可能になる上に、エラー検出時の印刷媒体の搬送状態も知ることが可能になる。従って、エラーの原因及びエラー発生に関するプログラムの関与について、より容易に、かつ詳細な解析を行うことが可能となる。
【０００８】
また、上記構成において、前記出力手段は、前記エラーを検出した場合であって前記印刷手段が動作可能な場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、前記エラーコード、及び、前記搬送量検出手段により検出された搬送量を、前記エラーへの対応に係るメッセージとともに前記印刷手段により印刷する構成としてもよい。
この場合、エラー検出時に実行されていたプログラムモジュール、エラーコード、及びメッセージが印刷出力されるので、印刷装置を操作するオペレーターに対してエラーへの対処を案内することが可能である。また、一般ユーザーであるオペレーターが対処できないエラーであっても、専門家によるエラー発生後の解析と対処が容易になる。
【０００９】
また、上記構成において、前記プログラム実行手段は、前記印刷手段及び前記搬送手段を制御する制御プログラムを実行する第１ＣＰＵと、前記第１ＣＰＵにおけるプログラムの実行状態を監視する監視プログラムを実行する第２ＣＰＵとを備え、前記第２ＣＰＵは前記監視プログラムを実行することにより、前記エラーを検出した場合にエラー検出時に前記第１ＣＰＵが実行していた前記プログラムモジュールを特定し、特定した前記プログラムモジュールを示す情報と前記エラーコードと前記搬送量検出手段により検出された搬送量とを前記出力手段によって出力させる構成としてもよい。
この場合、制御プログラムの実行に支障を来すエラーが発生した場合であっても、別のＣＰＵが実行する監視プログラムによって、エラー検出時に実行されていたプログラムモジュールを特定できる。
【００１０】
また、上記目的を達成するために、本発明は、印刷装置と制御装置とを接続して構成される印刷システムにおいて、前記印刷装置は、所定の順序で実行される複数のプログラムモジュールを含んで構成されるプログラムを実行するプログラム実行手段と、印刷媒体に印刷する印刷手段と、エラーを検出した場合に、エラー検出時に前記プログラム実行手段が実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力する出力手段と、を備え、前記制御装置は、前記出力手段により出力された情報を表示すること、を特徴とする。
本発明によれば、複数のプログラムモジュールを含んで構成されるプログラムの実行中に印刷装置においてエラーが検出された場合に、エラーが検出された際に実行されていたプログラムモジュールを特定する情報出力される。これにより、エラー検出時におけるプログラムの実行状態を詳細に知ることが可能になる。そして、エラー検出時に実行されていたプログラムモジュール、及びエラーコードが表示されるので、印刷装置を操作するオペレーターに対してエラーへの対処を案内することが可能である。また、一般ユーザーであるオペレーターが対処できないエラーであっても、専門家によるエラー発生後の解析と対処が容易になる。
【００１１】
上記構成において、前記制御装置は、前記出力手段により出力された前記エラーコードとともに前記エラーへの対応に係るメッセージを表示する構成としてもよい。
この場合、メッセージを表示することにより一般ユーザーであるオペレーターに対しても適切な処置を案内でき、利便性の向上を図ることができる。
【００１２】
また、上記目的を達成するために、本発明は、印刷媒体に印刷する印刷装置を、プログラムを実行することにより制御する印刷装置の制御方法であって、所定の順序で実行される複数のプログラムモジュールを含む前記プログラムを実行し、前記印刷装置のエラーを検出した場合に、エラー検出時に実行していた前記プログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力すること、を特徴とする。
本発明によれば、複数のプログラムモジュールを含んで構成されるプログラムの実行中に印刷装置においてエラーが検出された場合に、エラーが検出された際に実行されていたプログラムモジュールを特定する情報が、エラーコードとともに出力される。これにより、エラー検出時におけるプログラムの実行状態を詳細に知ることが可能になる。このため、エラーの原因及びエラー発生に関するプログラムの関与について、より容易に、かつ詳細な解析を行うことが可能となる。
【発明の効果】
【００１３】
本発明によれば、複数のプログラムモジュールを含んで構成されるプログラムの実行中に印刷装置において、エラーの原因及びエラー発生に関するプログラムの関与について、より容易に、かつ詳細な解析を行うことが可能となる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る印刷システムの構成を示すブロック図である。
【図２】印刷システムの機能的構成を示す図である。
【図３】制御プログラムの構成の模式図である。
【図４】表示制御部が情報を表示する態様の一例を示す図である。
【図５】エラー発生時におけるプリンターの動作を示すフローチャートである。
【図６】第２の実施形態に係る印刷システムの構成を示すブロック図である。
【図７】第２の実施形態に係る印刷システムの機能的構成を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。
［第１の実施形態］
図１は、本発明を適用した実施形態にかかる印刷システム１の構成を示すブロック図である。
印刷システム１は、印刷媒体に文字や画像を印刷（記録）するプリンター３（印刷装置）と、プリンター３を制御して記録を実行させるホストコンピューター２（制御装置）とを、通信線１０を介して通信可能に接続したシステムである。本実施形態では、ホストコンピューター２とプリンター３とを一対一で接続した印刷システム１を例示するが、ホストコンピューター２とプリンター３の接続形態に制限はない。例えば、一台のホストコンピューター２に複数のプリンター３を接続してもよい。また、複数のホストコンピューター２に１台のプリンター３を接続してもよい。
通信線１０は、ホストコンピューター２とプリンター３とを一対一で接続する通信ケーブルや無線通信回線が挙げられる。また、通信線１０は、一台のホストコンピューター２に複数のプリンター３を接続可能な有線ＬＡＮまたは無線ＬＡＮであってもよい。また、通信線１０は、公衆回線網を介した広域通信ネットワークであってもよい。
プリンター３が印刷する印刷媒体は、紙や合成樹脂のシート、またはこれらのシートにコーティング等の処理を施した媒体が挙げられる。具体的には、普通紙、サーマル紙、インクジェット用コーティング紙が挙げられる。また、印刷媒体のサイズも制限はなく、各種サイズのカット紙、連続紙、ロール紙等を用いることができる。プリンター３の印刷方式も制限はない。本実施形態では、プリンター３が、ヘッドに搭載されたノズルからインクを普通紙に吐出して印刷するインクジェット式プリンターである場合を例として、説明する。
【００１６】
図１に示すように、ホストコンピューター２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、入力部２４、表示部２５、記憶部２６、及び通信Ｉ／Ｆ（インターフェイス）２７の各部を備える。これらの各部はバス２８を介して相互に通信可能に接続されている。ＣＰＵ２１は、ＲＯＭ２２や記憶部２６に記憶されたプログラムを実行して、ホストコンピューター２の各部を制御する。ＲＯＭ２２は不揮発性の記憶装置であって、ＣＰＵ２１が実行する基本制御プログラムや、このプログラムで処理されるデータを記憶する。ＲＡＭ２３は揮発性メモリーであって、ＣＰＵ２１が実行するプログラムや処理対象のデータを一時的に記憶する。入力部２４は、キーボード等の入力デバイスに接続されている。入力部２４は、入力デバイスの操作により入力されたデータをＣＰＵ２１に出力する。表示部２５は、ディスプレイ等の表示デバイスに接続され、ＣＰＵ２１の制御に従って表示デバイスに表示を行わせる。
記憶部２６は、磁気的、光学的記憶装置または半導体記憶装置を備え、プログラムやデータを記憶する。記憶部２６は、ＣＰＵ２１が実行するプログラムとして、オペレーティングシステム２６Ａ、アプリケーションプログラム２６Ｂ、及びプリンタードライバー２６Ｃを記憶する。また、記憶部２６は、ＣＰＵ２１が処理するデータである設定データ２６Ｄを記憶する。通信Ｉ／Ｆ２７は、通信線１０が接続されるコネクターやインターフェイス回路を有し、ＣＰＵ２１の制御に従って通信線１０を介してデータを送受信する。
【００１７】
ＣＰＵ２１は、ＲＯＭ２２に記憶された基本制御プログラムを実行してホストコンピューター２の各部を制御する。また、ＣＰＵ２１は、記憶部２６に記憶されたオペレーティングシステム２６Ａ、アプリケーションプログラム２６Ｂ、プリンタードライバー２６Ｃを実行する。ＣＰＵ２１がオペレーティングシステム２６Ａを実行すると、オペレーティングシステム２６Ａ及び基本制御プログラムの機能によって、ホストコンピューター２の基本的な機能が実現される。また、ＣＰＵ２１がアプリケーションプログラム２６Ｂを実行すると、文書作成、表計算、画像描画、画像処理等のホストコンピューター２のアプリケーション機能が実現される。また、プリンタードライバー２６Ｃはプリンター３を制御して印刷を実行させるための制御プログラムである。ＣＰＵ２１は、プリンタードライバー２６Ｃを実行することで、通信線１０を介してプリンター３を制御し、印刷を実行させることができる。
【００１８】
プリンター３は、ＣＰＵ３０、フラッシュＲＯＭ３３、ＲＡＭ３４、駆動部４１、搬送モーター４２、印刷ヘッド４３、検出器４４、表示部４５、及び通信Ｉ／Ｆ（インターフェイス）４６の各部を備える。これらの各部はバス３７を介して相互に通信可能に接続されている。ＣＰＵ３０（プログラム実行手段）は、フラッシュＲＯＭ３３に記憶されたプログラムを実行して、プリンター３の各部を制御する制御する。フラッシュＲＯＭ３３は、フラッシュメモリー素子にプログラムやデータを不揮発的に記憶する記憶装置である。ＲＡＭ３４は揮発性メモリーであって、ＣＰＵ３０が実行するプログラムや処理対象のデータを一時的に記憶する。駆動部４１は、搬送モーター４２及び印刷ヘッド４３に接続されている。搬送モーター４２（搬送手段）は、印刷媒体を搬送する搬送ローラーに駆動力を与えるモーターであり、例えばステッピングモーターである。印刷ヘッド４３（印刷手段）は、上述したようにインクを吐出するノズル、インクを加圧する加圧機構、インクタンクに接続されたインク管等を搭載している。駆動部４１は、プリンター３が印刷を実行する際に、ＣＰＵ３０の制御に従って搬送モーター４２に駆動パルスと駆動電流とを供給し、搬送モーター４２を正／逆両方向に適宜回転させる。また、駆動部４１は、プリンター３が印刷を実行する際に、ＣＰＵ３０の制御に従って印刷ヘッド４３のインク加圧機構に駆動電流を供給し、ノズルからインクを吐出させて印刷媒体に文字や画像を形成させる。
さらに、駆動部４１（搬送量検出手段）は、搬送モーター４２の回転状態を検出するロータリーエンコーダー（図示略）を備え、回転状態の検出値をＣＰＵ３０に出力する機能を有する。これにより、ＣＰＵ３０は、搬送モーター４２の過負荷を検出できる。また、駆動部４１は、印刷ヘッド４３のインク加圧機構の動作状態を検出して、ＣＰＵ３０に出力する機能を有するので、ＣＰＵ３０は印刷ヘッド４３におけるインク加圧不良を検出できる。なお、プリンター３が、印刷ヘッド４３を印刷媒体上で走査するキャリッジを備える場合、駆動部４１がキャリッジ駆動モーターを駆動する構成としてもよい。また、駆動部４１は、印刷ヘッド４３に搭載されるサーミスター等の温度検出器に接続され、印刷ヘッド４３の温度を検出して検出値をＣＰＵ３０に出力してもよい。
【００１９】
検出器４４は、プリンター３の搬送路（図示略）上における印刷媒体の有無を検出するセンサーであり、検出値をＣＰＵ３０に出力する。表示部４５は、複数のＬＥＤを備えたインジケーターまたはディスプレイ等の表示デバイスに接続され、ＣＰＵ３０の制御に従って表示デバイスに表示を行わせる。通信Ｉ／Ｆ４６は、通信線１０が接続されるコネクターやインターフェイス回路を有し、ＣＰＵ３０の制御に従って通信線１０を介してデータを送受信する。
【００２０】
このように構成される印刷システム１において、ホストコンピューター２は、プリンター３に対して印刷コマンド及び印刷する文字や画像のデータを含む印刷データを出力する。プリンター３は、ＣＰＵ３０の制御によってホストコンピューター２が送信した印刷データを受信し、印刷データに含まれる印刷コマンドに従って搬送モーター４２を駆動して印刷媒体を搬送し、印刷ヘッド４３によって文字や画像を印刷する。
また、プリンター３は、搬送モーター４２の過負荷、印刷ヘッド４３のインク加圧機構の加圧不良等のエラーを検出した場合に、検出したエラーに関する情報をホストコンピューター２に送信する。ここでプリンター３が送信する情報は、エラーの内容を示すエラーコード、エラー発生時または検出時における搬送モーター４２の搬送量、及び、エラー発生時または検出時にＣＰＵ３０が実行していたプログラムモジュールを示す情報である。これらの情報の詳細については後述する。
【００２１】
図２は、印刷システム１の機能的構成を示す図である。
図２には、ホストコンピューター２の機能ブロックとして、アプリケーション実行部２０１、プリンタードライバー実行部２０２、表示制御部２０３、及び通信部２０４を図示する。これらの機能ブロックは、ＣＰＵ２１（図１参照）が記憶部２６（図１）に記憶された各種プログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。
プリンター３は、プログラム実行部３００（出力手段）及び記憶部３１０（記憶手段）を有する。プログラム実行部３００は印刷制御部３０１、エラー検出部３０２、情報取得部３０３、エラー出力部３０４、及び通信部３０５を備える。プログラム実行部３００は、ＣＰＵ３０（図１）によりフラッシュＲＯＭ３３（図１）に記憶されたプログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。プログラム実行部３００を実現するプログラムは、後述する制御プログラム３１１とは別の、プリンター３の基本制御プログラムである。
記憶部３１０は、ＣＰＵ３０が実行する制御プログラム３１１（プログラム）を記憶する。制御プログラム３１１は、プログラム実行部３００が駆動部４１を制御して印刷動作を実行するためのプログラムである。記憶部３１０は、フラッシュＲＯＭ３３の記憶領域に相当する。
【００２２】
アプリケーション実行部２０１は、アプリケーションプログラム２６Ｂの機能により文書作成や画像処理等を実行する。アプリケーション実行部２０１は、入力部２４（図１）の操作によって作成された文書や画像の印刷が指示されると、指示に従って印刷用のテキストデータや画像データを生成して出力する。
プリンタードライバー実行部２０２は、プリンタードライバー２６Ｃの機能により、プリンター３に適合した印刷データを生成する。プリンタードライバー２６Ｃはプリンター３の機種に適合したデバイスドライバープログラムである。プリンタードライバー実行部２０２は、アプリケーション実行部２０１が出力したデータを印刷するための印刷コマンドを生成し、アプリケーション実行部２０１が出力したデータを印刷用のデータに変換することで、印刷データを生成する。通信部２０４は、プリンタードライバー実行部２０２が生成した印刷データを、通信線１０を介してプリンター３に送信する。
【００２３】
また、通信部２０４は、プリンター３からエラーの発生を通知する情報が送信された場合に、この情報を受信する。表示制御部２０３は、通信部２０４が受信した情報、すなわちエラーコード、搬送量、及び、エラー時に実行していたプログラムモジュールを示す情報を、表示デバイスに表示させる。ここで、表示制御部２０３は、上記の各情報とともに、ホストコンピューター２を操作するオペレーターに対する案内メッセージを表示してもよい。
【００２４】
また、プログラム実行部３００が有する印刷制御部３０１は、ホストコンピューター２から送信された印刷データに従って、駆動部４１を制御し、搬送モーター４２及び印刷ヘッド４３を動作させて印刷を実行する。エラー検出部３０２は、印刷制御部３０１の制御により印刷を行っている間、及び、印刷待機中に、プリンター３で発生するエラーを検出する。エラー検出部３０２が検出するエラーは、例えば、モーター過負荷エラー、モーター停止不検出、モーター駆動エラー、内部処理エラーが挙げられる。
モーター過負荷エラーは、搬送モーター４２が過負荷となった場合に、駆動部４１が搬送モーター４２への供給電流等に基づいてエラーを検出する。モーター過負荷エラーの要因としては、印刷媒体の詰まり（ジャム）、搬送ローラーやギヤ等の搬送機構または他の可動部における異物の噛みこみが挙げられる。また、プリンター３の本体を構成するフレームのひずみや歪み、印刷媒体の重送、複数枚が固着した印刷媒体など不良な印刷媒体の搬送に伴う搬送不良等も要因となる。モーター停止不検出エラーは、駆動部４１が備えるロータリーエンコーダーの出力値の異常、または、インク加圧機構の加圧不良が検出されるエラーである。モーター駆動エラーは、駆動部４１を構成するＩＣ（集積回路）の熱破損等により搬送モーター４２を駆動できない場合に検出されるエラーである。内部処理エラーは、印刷データの処理において発生するエラーであり、例えば、ホストコンピューター２から受信した印刷データに異常がある場合や、プリンター３における設定値の中に異常な値が含まれる場合に検出される。より具体的には、印刷データに未定義のコマンドが含まれる、パラメーターの値が範囲外である、プリンター３に設定された用紙サイズ等の設定値が範囲外である等の原因が挙げられる。また、エラー検出部３０２がプリンター３におけるエラーを検出し、かつ、検出されたエラーが未知のエラーである場合に、エラー検出部３０２は未知のエラーとして検出する。未知のエラーは、例えば、ＣＰＵ３０が実行する制御プログラム３１１の不備に起因するエラー等である。
【００２５】
情報取得部３０３は、エラー検出部３０２がエラーを検出した場合に、エラー検出部３０２が検出したエラーの内容に対応するエラーコードを取得する。さらに、情報取得部３０３は、エラー検出時にＣＰＵ３０（図１）が実行していた制御プログラム３１１の実行位置を検出する。
図３は、制御プログラム３１１の構成の模式図である。この図３に示すように、制御プログラム３１１は、複数のプログラムモジュール３１２を含んで構成される。各プログラムモジュール３１２は、プログラム３１１を構成する単位ということができ、プログラムブロックまたはプログラムルーチンと呼ぶこともできる。１つのプログラムモジュール３１２はプリンター３の１または複数の機能を実行させるためのプログラムとなっていて、制御プログラム３１１は複数のプログラムモジュール３１２の集合として構成されている。図３の例では、制御プログラム３１１に、Ａ〜Ｄの４つのプログラムモジュール３１２が含まれている。また、制御プログラム３１１では、各プログラムモジュールの実行順序が決められている。図３の例では、Ａ〜Ｄの４つのプログラムモジュール３１２は、実行順に並べられている。すなわち、制御プログラム３１１の各プログラムモジュール３１２は、ＣＰＵ３０によってＡ〜Ｄの順に実行される。
プログラムモジュール３１２には、そのプログラムモジュールを特定することが可能な識別情報３１４が付加されている。識別情報３１４は、各プログラムモジュール３１２のプログラムコードの先頭に記述されていてもよいし、プログラムモジュール３１２とプログラムモジュール３１２の間に記述されていてもよい。また、記憶部３１０において制御プログラム３１１が格納されているアドレスを識別情報３１４として利用することもできる。つまり、各プログラムモジュール３１２の先頭アドレスを、識別情報３１４としてもよい。識別情報３１４は、全てのプログラムモジュール３１２に付与されていることが好ましいが、一部のプログラムモジュール３１２に付与されてもよい。識別情報３１４は、少なくとも、一つの制御プログラム３１１に含まれるプログラムモジュール３１２を他のプログラムモジュール３１２と区別し、特定できる情報である。他の制御プログラム３１１に含まれる他のプログラムモジュール３１２と区別できる情報でなくてもよい。
【００２６】
また、情報取得部３０３は、エラー検出部３０２がエラーを検出した時点における印刷媒体の搬送量を取得する。具体的には、搬送モーター４２に設けられたロータリーエンコーダーの検出値を、駆動部４１によって取得し、この検出値に基づいて情報取得部３０３が搬送量を算出する。この搬送量は、ホストコンピューター２が送信した一つの印刷データに基づく印刷を開始してからの搬送量である。例えば、ホストコンピューター２がカット紙の１０ページ分の印刷データを送信した場合、情報取得部３０３は、この１０ページの印刷を開始してからエラー検出時までの搬送量を取得する。或いは、情報取得部３０３は、プリンター３の電源がオンにされてからの搬送量を取得してもよいし、エラー検出時に印刷していたページの印刷を開始してからの搬送量を取得してもよい。
情報取得部３０３が取得する識別情報３１４及び搬送量は、エラー検出部３０２がエラーを検出した時点を基準とする。エラーの発生時を特定することが容易な場合には、エラーの発生時に実行中のプログラムモジュール３１２の識別情報３１４及びエラー発生時における搬送量を取得してもよい。
【００２７】
エラー出力部３０４は、情報取得部３０３が取得したエラーコード、識別情報３１４及び搬送量を出力する。これらの情報の出力方法としては、表示部４５による表示、及び、ホストコンピューター２への送信が挙げられる。表示部４５が液晶ディスプレイ等の表示画面を有する場合、エラー出力部３０４は、エラーコード、識別情報３１４及び搬送量を同時に、または順次切り替えて表示させる。この場合、エラー出力部３０４は、プリンター３を操作するオペレーターに対するメッセージを表示してもよい。このメッセージは、例えば、オペレーターに対してエラーへの対処方法を案内するメッセージである。エラーを解消するためのプリンター３の操作方法を案内するメッセージであってもよいし、取扱説明書において操作方法が記載されたページや操作方法を知ることができるウェブサイトのＵＲＬを案内するメッセージであってもよい。また、メンテナンスサービスを依頼することを促すメッセージや、メンテナンスサービスの依頼用の連絡先（電話番号、メールアドレスなど）を含んでいてもよい。
エラー出力部３０４は、情報取得部３０３が取得したエラーコード、識別情報３１４及び搬送量をホストコンピューター２に送信する場合、送信用のデータを生成して、通信部３０５に出力する。
通信部３０５は、エラー出力部３０４が生成した送信用のデータを、通信線１０を介してホストコンピューター２に送信する。
【００２８】
なお、エラー出力部３０４は、エラーコード、識別情報３１４及び搬送量を、上記メッセージとともに印刷出力させてもよい。エラー検出部３０２が検出したエラーが、搬送モーター４２及び印刷ヘッド４３が動作可能な種類のエラーである場合には、情報を印刷出力できる。エラー出力部３０４は、情報取得部３０３が取得したエラーコードに基づき、印刷可能であるか否かを判別し、印刷可能な場合は上記情報を印刷媒体に印刷してもよい。
【００２９】
ホストコンピューター２の表示制御部２０３は、プリンター３が、エラーコード、識別情報３１４及び搬送量を含むデータを送信した場合に、このデータを受信して、表示部２５によって表示させる。
図４は、表示制御部２０３が情報を表示する態様の一例を示す図である。
図４の例は、表示制御部２０３が表示部２５を制御し、表示デバイスの表示画面２９に情報を表示する場合の例である。図４に示すように、表示制御部２０３は、プリンター３が送信したエラーコード２１１と、識別情報３１４及び搬送量を含む詳細情報２１２とを同時に表示する。詳細情報２１２には、実行中のプログラムモジュールの識別情報３１４であること、及び、エラー検出時の搬送量であることを示す説明文を、識別情報３１４及び搬送量とともに表示してもよい。上記のように、プリンター３は未知のエラーを含むエラーコードを有するので、どのようなエラーが発生した場合であってもエラーコードは必ず出力される。また、エラーコード２１１及び詳細情報２１２とともに、メッセージ２１３が表示画面２９に表示される。このメッセージ２１３は、エラー出力部３０４が出力するメッセージと同様にオペレーターに対するメッセージである。例えば、エラーを解消するためのプリンター３の操作方法を案内するメッセージ、取扱説明書のページやウェブサイトのＵＲＬを案内するメッセージ、メンテナンスサービスの依頼を促すメッセージ、メンテナンスサービスの依頼用の連絡先等を含む。
【００３０】
プリンター３がメッセージを表示部４５により表示させる場合、エラー出力部３０４がメッセージを生成し、或いは、記憶部３１０に記憶したメッセージを読み出す。ホストコンピューター２が表示画面２９にメッセージを表示する場合には、プリンター３がエラーコード、識別情報３１４、及び搬送量を送信し、表示制御部２０３が、エラーコードに基づいてメッセージを生成すればよい。この場合、記憶部２６（図１）に、エラーコードに対応するメッセージが予め記憶され、表示制御部２０３が、エラーコードに対応するメッセージを読み出して表示させればよい。
【００３１】
図５は、エラー発生時におけるプリンター３の動作を示すフローチャートである。
プログラム実行部３００の印刷制御部３０１が印刷動作を実行中、または印刷待機中に、エラー検出部３０２は、エラーの検出動作を実行する（ステップＳ１１）。エラー検出部３０２は、エラーが検出されない間は（ステップＳ１１；Ｎｏ）、エラーが検出されるまで待機する。エラーを検出した場合（ステップＳ１１；Ｙｅｓ）、エラー検出部３０２は、印刷制御部３０１による印刷動作を停止させて、エラー報知モードに移行する（ステップＳ１２）。エラー報知モード中は、搬送モーター４２及び印刷ヘッド４３を含む各機構は停止される。
エラー検出部３０２は、エラー発生を示すエラー通知を生成して出力し、通信部３０５が、エラー検出部３０２により生成されたエラー通知をホストコンピューター２に送信する（ステップＳ１３）。このエラー通知はエラーの発生を通知するコマンド等である。
続いて、情報取得部３０３が、エラー検出部３０２により検出されたエラーの内容を判別する（ステップＳ１４）。エラーの内容が判別可能な場合（ステップＳ１５；Ｙｅｓ）、情報取得部３０３は、判別したエラーの内容に該当するエラーコードを取得する（ステップＳ１６）。エラーの内容が判別可能な場合とは、検出されたエラーに対応づけて、エラー名やエラーコードが予めフラッシュＲＯＭ３３に記憶されている場合である。検出されたエラーに対応するエラー名やエラーコードがフラッシュＲＯＭ３３に記憶されていない場合、情報取得部３０３はエラー内容を判別できない（ステップＳ１５；Ｎｏ）。この場合、情報取得部３０３は、未知のエラーを含むエラーコードをフラッシュＲＯＭ３３から取得する（ステップＳ１７）。
【００３２】
その後、情報取得部３０３は、駆動部４１により搬送量を取得する（ステップＳ１８）。さらに、情報取得部３０３は、ＣＰＵ３０が実行していた制御プログラム３１１のプログラムモジュールの識別情報３１４を取得する（ステップＳ１９）。
情報取得部３０３は、ステップＳ１６またはステップＳ１７で取得したエラーコードと、ステップＳ１８で取得した搬送量と、ステップＳ１９で取得した識別情報３１４とを出力する。エラー出力部３０４は、情報取得部３０３が出力した情報を、表示部４５によって表示し、或いは通信部３０５の機能によりホストコンピューター２に送信する（ステップＳ２０）。
【００３３】
以上説明したように、印刷システム１のプリンター３は、所定の順序で実行される複数のプログラムモジュールを含んで構成される制御プログラム３１１を実行するＣＰＵ３０、及び、印刷ヘッド４３を備える。そして、プログラム実行部３００は、エラーを検出した場合に、エラー検出時にＣＰＵ３０が実行していたプログラムモジュールを特定する情報、及び、検出されたエラーを示すエラーコードを出力する。これにより、エラーが検出された際に実行されていたプログラムモジュールを特定する情報が、エラーコードとともに出力される。このため、エラー検出時における制御プログラム３１１の実行状態を詳細に知ることが可能になる。
さらに、ホストコンピューター２が、情報取得部３０３により取得された情報を表示することにより、印刷装置を操作するオペレーターに対してエラーへの対処を案内することが可能である。また、一般ユーザーであるオペレーターが対処できないエラーであっても、専門家によるエラー発生後の解析と対処が容易になる。従って、エラーの原因及びエラー発生に関するプログラムの関与について、より容易に、かつ詳細な解析を行うことが可能となる。
また、記憶部３１０に記憶された制御プログラム３１１は、各々のプログラムモジュール３１２を特定可能な識別情報３１４を含むので、プログラムに含まれるプログラムモジュールを容易に特定できる。
【００３４】
また、プリンター３は、搬送モーター４２、及び、搬送モーター４２の搬送量を検出する駆動部４１を備える。そして、プログラム実行部３００は、エラーを検出した場合に、エラー検出時にＣＰＵ３０が実行していたプログラムモジュールを特定する情報と、検出されたエラーを示すエラーコードとともに、搬送量検出手段により検出された搬送量を、ともに出力する。この構成により、プログラムの実行中にエラーが検出された場合に、エラー検出時の印刷媒体の搬送量が出力されるので、エラー検出時におけるプログラムの実行状態を詳細に知ることが可能になる上に、エラー検出時の印刷媒体の搬送状態も知ることが可能になる。
【００３５】
また、エラー出力部３０４が、エラー検出時にＣＰＵ３０が実行していたプログラムモジュールの識別情報３１４とエラーコードと搬送量とを、メッセージとともに印刷させてもよい。この場合、表示画面等を用いることなく、印刷装置を操作するオペレーターに対してエラーへの対処を案内することが可能である。さらに、エラーコード、搬送量、識別情報３１４等の情報を保存することが可能となるので、専門家によるエラー発生後の解析と対処が容易になる。
【００３６】
［第２の実施形態］
図６は、本発明を適用した第２の実施形態に係る印刷システム１Ａの構成を示す図である。
この印刷システム１Ａは、印刷システム１（図１）が備えるプリンター３の代わりに、プリンター３Ａを備えている。なお、第２の実施形態の説明では、印刷システム１Ａにおいて印刷システム１と同様に構成される各部には同符号を付して、説明を省略する。
【００３７】
プリンター３Ａは、プリンター３が備えるＣＰＵ３０の代わりに、第１ＣＰＵ３１及び第２ＣＰＵ３２を備えている。第１ＣＰＵ３１及び第２ＣＰＵ３２は、それぞれ独立してプログラムを実行可能である。第１ＣＰＵ３１はフラッシュＲＯＭ３３に記憶されたプログラムを読み出して、ＲＡＭ３４において第１ＣＰＵ３１用に設けられたワークエリアに展開して実行する。また、第２ＣＰＵ３２は、フラッシュＲＯＭ３３に記憶されたプログラムを、第１ＣＰＵ３１とは別に読み出して、ＲＡＭ３４において第２ＣＰＵ３２用に設けられたワークエリアに展開して実行する。
【００３８】
図７には、印刷システム１Ａの機能的構成を示す。
プリンター３Ａは、第１プログラム実行部３２０（出力手段）、第２プログラム実行部３３０（出力手段）及び記憶部３４０（記憶手段）を有する。第１プログラム実行部３２０は、印刷制御部３０１、エラー検出部３０２、情報取得部３０３、エラー出力部３０４、及び通信部３０５を備える。第１プログラム実行部３２０は、第１ＣＰＵ３１（図６）がフラッシュＲＯＭ３３（図６）に記憶されたプログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。第１プログラム実行部３２０を実現するプログラムは、制御プログラム３１１とは別の、プリンター３Ａの基本制御プログラムである。
記憶部３４０は、制御プログラム３１１（プログラム）及び監視プログラム３４１を記憶する。記憶部３４０は、フラッシュＲＯＭ３３の記憶領域に相当する。
【００３９】
印刷制御部３０１、エラー検出部３０２、情報取得部３０３、エラー出力部３０４、及び通信部３０５の各部は、上記実施形態と同様に動作する。
【００４０】
第２プログラム実行部３３０は、エラー検出部３３１、情報取得部３３２、エラー出力部３３３を備える。第２プログラム実行部３３０は、第２ＣＰＵ３２（図６）によりフラッシュＲＯＭ３３（図６）に記憶されたプログラムを実行することにより、ソフトウェアとハードウェアとの協働により実現される。第２プログラム実行部３３０を実現するプログラムは、記憶部３４０に記憶された監視プログラム３４１である。監視プログラム３４１は、第１ＣＰＵ３１が実行するプログラムとは別の基本制御プログラムであり、制御プログラム３１１とも異なる。
【００４１】
第１プログラム実行部３２０は、第１の実施形態で説明したプログラム実行部３００と同様の動作を実行する。第１プログラム実行部３２０は、ホストコンピューター２が送信した印刷データに基づいて印刷を実行する。第１プログラム実行部３２０は、モーター過負荷エラー、モーター停止不検出、モーター駆動エラー、内部処理エラー等のエラーを検出する。そして、検出したエラーに対応するエラーコードと、実行中の制御プログラム３１１のプログラムモジュールの識別情報３１４と、搬送量とを出力する。
【００４２】
第２プログラム実行部３３０が有するエラー検出部３３１は、第１プログラム実行部３２０のソフトウェアエラーを検出する。すなわち、エラー検出部３３１は、第１プログラム実行部３２０が動作不能となるエラーの発生を検出する。
第１プログラム実行部３２０は第１ＣＰＵ３１がプログラムを実行して実現されるものである。このため、第１ＣＰＵ３１が実行するプログラムそのものに起因してエラーが発生した場合、或いは、第１ＣＰＵ３１が処理するデータの異常値に起因してエラーが発生した場合、第１ＣＰＵ３１がエラーを検出可能な状態でない可能性がある。
そこで、プリンター３Ａでは、第２ＣＰＵ３２が第１ＣＰＵ３１とは独立して監視プログラム３４１を実行し、第１ＣＰＵ３１の動作を監視する。
【００４３】
エラー検出部３３１は、第１プログラム実行部３２０におけるエラー、すなわち第１ＣＰＵ３１のソフトウェアエラーを検出する。エラー検出部３３１は、エラー検出部３０２と同様にモーター過負荷エラー、モーター停止不検出、モーター駆動エラー、内部処理エラー等を検出する構成としてもよいが、本実施形態では第１プログラム実行部３２０のエラーのみを検出する。
情報取得部３３２は、エラー検出部３３１が第１ＣＰＵ３１のエラーを検出した場合に、検出されたエラーの内容に対応するエラーコードを取得する。さらに、情報取得部３３２は、エラー検出時に第１ＣＰＵ３１が実行していた制御プログラム３１１のプログラムモジュールの識別情報３１４を取得する。
情報取得部３３２は、エラー検出部３３１がエラーを検出した時点における印刷媒体の搬送量を取得する。情報取得部３３２が取得する識別情報３１４及び搬送量は、エラー検出部３３１がエラーを検出した時点を基準とする。エラーの発生時を特定することが容易な場合には、エラーの発生時に実行中のプログラムモジュール３１２の識別情報３１４及びエラー発生時における搬送量を取得してもよい。
【００４４】
エラー出力部３３３は、情報取得部３３２が取得したエラーコード、識別情報３１４及び搬送量を出力する。これらの情報の出力方法は、上記のように、表示部４５による表示、印刷ヘッド４３による印刷、及び、ホストコンピューター２への送信が挙げられる。また、出力方法としては、表示部４５または印刷ヘッド４３を用いる場合には、エラーコード、識別情報３１４及び搬送量とともにメッセージを出力する。また、エラー出力部３３３は、情報取得部３３２が取得したエラーコード、識別情報３１４及び搬送量をホストコンピューター２に送信する場合、送信用のデータを生成して、通信部３３４に出力する。
通信部３３４は、エラー出力部３３３が生成した送信用のデータを、通信線１０を介してホストコンピューター２に送信する。
【００４５】
この第２の実施形態では、プリンター３Ａが、印刷ヘッド４３及び搬送モーター４２を制御する制御プログラムを実行する第１ＣＰＵと、第１ＣＰＵにおけるプログラムの実行状態を監視する監視プログラムを実行する第２ＣＰＵとを備える。第２ＣＰＵは監視プログラム３４１を実行することにより、第２プログラム実行部３３０として機能する。第２プログラム実行部３３０は、第１ＣＰＵ３１のソフトウェアエラーを検出した場合に、第１ＣＰＵが実行していた制御プログラム３１１のプログラムモジュール３１２を示す識別情報３１４と、エラーコードと、搬送量とを出力する。
これにより、第１ＣＰＵ３１において制御プログラム３１１の実行に支障を来すエラーが発生した場合であっても、別のＣＰＵである第２ＣＰＵ３２が実行する監視プログラム３４１により、エラー検出時に実行されていたプログラムモジュール３１２を特定できる。従って、プリンター３Ａでは、第１ＣＰＵ３１が実行するプログラムに起因するエラーをも正確に検出できる。
【００４６】
なお、上記各実施形態は本発明を適用した一具体例を示すものであり、本発明はこれに限定されるものではない。例えば、プリンター３がインクジェット式プリンターである場合を例に挙げて説明したが、本発明を適用可能な印刷装置は、文字や画像を記録できる装置であれば特に制限されない。例えば、ドットインパクトプリンター、サーマルプリンター、レーザープリンター等にも本発明を適用可能であり、他の装置に組み込まれるプリンターにも本発明を適用可能である。また、プリンター３がオートカッターユニット等の機構を備えていてもよく、これらの機構におけるエラーを検出した場合に図５の動作を実行してもよい。
また、上記各実施形態では、ホストコンピューター２のＣＰＵ２１が記憶部２６に記憶されたプログラムを実行し、プリンター３のＣＰＵ３０、第１ＣＰＵ３１、及び第２ＣＰＵ３２がフラッシュＲＯＭ３３に記憶されたプログラムを実行する例を説明した。これらの各種プログラムは、他の記憶装置、記憶媒体や外部装置の記憶媒体に記憶させてもよい。さらに、これらのプログラムを、ホストコンピューター２またはプリンター３が通信ネットワークを介して接続された他の装置からダウンロードして実行しても良い。
【符号の説明】
【００４７】
１、１Ａ…印刷システム、２…ホストコンピューター（制御装置）、３、３Ａ…プリンター（印刷装置）、１０…通信線、２１…ＣＰＵ、２６…記憶部、２９…表示画面、３０…ＣＰＵ（プログラム実行手段）、３１…第１ＣＰＵ（プログラム実行手段）、３２…第２ＣＰＵ（プログラム実行手段）、４１…駆動部（搬送量検出手段）、４２…搬送モーター（搬送手段）、４３…印刷ヘッド（印刷手段）、４４…検出器、４５…表示部、３００…プログラム実行部、３０１…印刷制御部、３０２…エラー検出部、３０３…情報取得部、３０４…エラー出力部、３０５…通信部、３１０、３４０…記憶部（記憶手段）、３１１…制御プログラム（プログラム）、３１２…プログラムモジュール、３１４…識別情報、３２０…第１プログラム実行部、３３０…第２プログラム実行部、３３１…エラー検出部、３３２…情報取得部、３３３…エラー出力部、３３４…通信部、３４１…監視プログラム。
【図１】
2014188791.tif 000003
【図２】
2014188791.tif 000004
【図３】
2014188791.tif 000005
【図４】
2014188791.tif 000006
【図５】
2014188791.tif 000007
【図６】
2014188791.tif 000008
【図７】
2014188791.tif 000009