(57)【要約】【課題】  障害発生時にサブプログラムによって確実にメインプログラムの代替動作を行なえるようにする。【解決手段】  第１記憶部３１は、印刷機構１０に印刷を行わせるメインプログラムを記億している。第２記憶部３２は、印刷機構１０に印刷を行わせる、メインプログラムとは別のプログラムであるサブプログラムを記憶している。制御部２０は、メインプログラムまたはサブプログラムのいずれかに従って印刷機構１０による印刷を制御する。制御部２０は、第２記憶部３２に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断し、メンテナンスが必要であるときに所定のメンテナンスを実行する。【選択図】  図３
2020144744.tif 000002
【特許請求の範囲】
【請求項１】
媒体に印刷を行う印刷機構と、
前記印刷機構に印刷を行わせるメインプログラムを記億する第１記憶部と、
前記印刷機構に印刷を行わせる、前記メインプログラムとは別のプログラムであるサブプログラムを記憶する第２記憶部と、
前記メインプログラムまたは前記サブプログラムのいずれかに従って前記印刷機構による印刷を制御する制御部とを備え、
前記制御部は、
前記メインプログラムに従って前記印刷機構による印刷を制御し、所定の場合に前記メインプログラムから前記サブプログラムに切り替えて前記印刷機構による印刷を制御し、
前記第２記憶部に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断し、メンテナンスが必要であるときに所定のメンテナンスを実行することを特徴とする印刷装置。
【請求項２】
請求項１に記載の印刷装置であって、
前記所定のメンテナンスは、プログラムのアップデートを含み、
前記制御部は、通信を介して前記メインプログラムまたは前記サブプログラムを取得可能であり、所定の場合に前記第２記憶部に記憶された前記サブプログラムのアップデートを実施することを特徴とする印刷装置。
【請求項３】
請求項２に記載の印刷装置であって、
前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、前記通信を介して取得可能な前記サブプログラムのバージョンが新しい場合に、前記第２記憶部に記憶された前記サブプログラムのアップデートを実施することを特徴とする印刷装置。
【請求項４】
請求項２に記載の印刷装置であって、
前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、前記通信を介して取得可能な前記サブプログラムのバージョンが新しい場合に、所定期間が経過してから前記第２記憶部に記憶された前記サブプログラムのアップデートを実施することを特徴とする印刷装置。
【請求項５】
請求項２に記載の印刷装置であって、
前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、バージョンの差が所定の世代数を超えている場合に、前記第２記憶部に記憶された前記サブプログラムのアップデートを実施することを特徴とする印刷装置。
【請求項６】
請求項１〜請求項５のいずれかに記載の印刷装置であって、
前記所定のメンテナンスはプログラムの修復を含み、
前記制御部は、前記第２記憶部に記憶された前記サブプログラムの破損の有無を判断可能であり、破損していると判断したときに前記第２記憶部に記憶された前記サブプログラムの修復を実施可能であることを特徴とする印刷装置。
【請求項７】
請求項１〜請求項６のいずれかに記載の印刷装置であって、
前記制御部は、前記第１記憶部に記憶された前記メインプログラムの起動時に、メンテナンスの必要性の有無を判断することを特徴とする印刷装置。
【請求項８】
第１記憶部にはメインプログラムが記憶され、第２記憶部にはサブプログラムが記憶され、制御部はいずれかのプログラムに従って所定の印刷機構を制御して所定の媒体に印刷を行い、前記制御部は所定の場合に前記メインプログラムから前記サブプログラムに切り替えて前記印刷機構による印刷を制御する印刷装置の制御方法であって、
前記第２記憶部に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断する工程と、
メンテナンスが必要であるときに所定のメンテナンスを実行する工程とを実施することを特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置及び印刷装置の制御方法に関する。
【背景技術】
【０００２】
制御プログラムの誤りなどに対処する技術として、特許文献１に開示された発明が知られている。
特許文献１には、データ処理装置において、通常運用ファームウェアに加えて、障害時縮退運用ファームウェアを記憶領域に記憶してあり、通常運用ファームウェアに障害が発生した場合、障害時縮退運用ファームウェアの実行に切り替えることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１６７４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
障害発生時に備えて、メインプログラムに加えてサブプログラムを用意しておき、メインプログラムに不具合が生じた際にサブプログラムの実行に切り替えることが知られている。しかし、記憶しているサブプログラムに不備がないとは限らず、サブプログラムによるメインプログラムの代替動作を満足に実行できない恐れがあった。
本発明は、障害発生時にサブプログラムによって確実にメインプログラムの代替動作を行なえるようにする。
【課題を解決するための手段】
【０００５】
本発明の印刷装置は、媒体に印刷を行う印刷機構と、前記印刷機構に印刷を行わせるメインプログラムを記億する第１記憶部と、前記印刷機構に印刷を行わせる、前記メインプログラムとは別のプログラムであるサブプログラムを記憶する第２記憶部と、前記メインプログラムまたは前記サブプログラムのいずれかに従って前記印刷機構による印刷を制御する制御部とを備え、前記制御部は、前記メインプログラムに従って前記印刷機構による印刷を制御し、所定の場合に前記メインプログラムから前記サブプログラムに切り替えて前記印刷機構による印刷を制御し、前記第２記憶部に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断し、メンテナンスが必要であるときに所定のメンテナンスを実行する構成としてある。
【図面の簡単な説明】
【０００６】
【図１】印刷装置のブロック図である。
【図２】記憶領域のマッピングを示す図である。
【図３】アップデートの処理のフローチャートである。
【図４】修復の処理のフローチャートである。
【図５】アップデートの処理の変形例のフローチャートである。
【図６】アップデートの処理の変形例のフローチャートである。
【発明を実施するための形態】
【０００７】
以下、図面に基づいて本発明の実施形態を説明する。
図１は、本発明の一実施形態にかかる印刷装置をブロック図により示している。
同図で示す印刷機構１０は、媒体に印刷を行う機構である。本実施形態における印刷機構１０は大形の印刷機構であり、独立した制御部２０によって制御されている。印刷機構１０は、起動時に各種の初期化処理が必要である。このため、制御部２０が起動時に実施する自身の初期化と平行して、印刷機構１０自身の初期化が行われることになる。
【０００８】
制御部２０は記憶領域３０と接続されており、同記憶領域３０はフラッシュＲＯＭなどで構成された不揮発性であって、再書き込みが可能な記憶媒体である。記憶領域３０には、起動時に実施するブートプログラムの他、起動後に印刷機構１０を制御するための制御プログラムが記録されている。記憶領域３０は、所定の容量の記憶領域があり、この領域の一部が第１記憶部３１であり、他の一部が第２記憶部３２である。
【０００９】
図２は、記憶領域のマッピングを示す図である。
記憶領域３０は、低番地のアドレスの領域にブートプログラムが記録され、他の領域にメインプログラムが記録された第１記憶部３１があり、さらに他の領域にサブプログラムが記録された第２記憶部３２がある。メインプログラムとは、定常的に印刷機構１０を稼働させるための制御プログラムを指しており、サブプログラムとは、メインプログラムによる印刷機構１０の稼働に障害が発生しているとき実施する障害発生時対策用の制御プログラムを指している。
【００１０】
このように、第１記憶部３１は、印刷機構１０に印刷を行わせるメインプログラムを記億している。また、第２記憶部３２は、印刷機構１０に印刷を行わせる、メインプログラムとは別のプログラムであるサブプログラムを記憶している。そして、制御部２０は、メインプログラムまたはサブプログラムのいずれかに従って印刷機構１０による印刷を制御する。
【００１１】
制御部２０は、メインプログラムに従って印刷機構１０による印刷を制御する。メインプログラムに障害が発生するなどした場合には、制御部２０は第１記憶部３１のメインプログラムを実施する代わりに、第２記憶部３２のサブプログラムに切り替えて印刷機構１０による印刷を制御する。
第１記憶部３１には、メインプログラムだけでなく、メインプログラムが判定に用いるための上書き許可文字列記憶領域３１ａを設けてある。メインプログラムは、所定の判定を行うときに同上書き許可文字列記憶領域３１ａに記録されている文字列を読み出し、その内容によって分岐処理での分岐判断を実施する。
【００１２】
本実施形態においては、定常的に実施させる制御プログラムと、障害時に実施させる制御プログラムとを記憶しているが、必ずしもこのような組み合わせに限られるものではなく、実施目的の異なる第１の制御プログラム及び第２の制御プログラムを記録しておくようにしても良い。
【００１３】
制御部２０は、通信部４０を介して広域ネットワーク５０に接続可能であり、この広域ネットワーク５０に接続されているプログラムサーバー６０と通信可能となっている。プログラムサーバー６０は、印刷機構１０の制御プログラムを提供するサーバーであり、制御部２０は所定のプロトコールを使用して同プログラムサーバー６０から制御プログラムをダウンロード可能である。
【００１４】
プログラムサーバー６０が提供する制御プログラムは、バージョン情報を含み、また、提供開始日時の情報も含んでいる。また、プログラムサーバー６０は、メインプログラムとサブプログラムを提供する。制御部２０は、プログラムサーバー６０から提供可能な制御プログラムの情報を取得し、同情報に基づいて所定のメンテナンスを実施する。
【００１５】
制御部２０は、第２記憶部３２に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断し、メンテナンスが必要であるときに所定のメンテナンスを実行する。
制御プログラムに対する所定のメンテナンスは、各種の処理を含み、一例としてプログラムのアップデートの処理を含む。
【００１６】
図３は、アップデートの処理のフローチャートである。
本印刷装置の電源がオンとされると、印刷機構１０は自分自身の初期化処理を開始し、これとともに制御部２０も起動して記憶領域３０に記録されている制御プログラムを読み込んで実施する。
印刷機構１０の初期化処理が終了する前に、制御部２０はステップＳ１０２以下の処理を開始する。
ステップＳ１０２では、電源オンにより制御部２０がブートプログラムによって起動する。ブートプログラムでは、通常、ＲＡＭ領域の初期化であったり、ＣＰＵ内部のレジスタの初期化などを実施し、さらに、インターフェイスを介して外部機器の初期化を指示する。
【００１７】
ステップＳ１０４では、制御部はメインプログラムのチェックを行う。制御部２０は、メインプログラムが破損しているか否かをチェックするため、チェックサムやハッシュ値の確認を行なう。メインプログラムが破損していなければ、プログラムコードに所定の演算を実施したチェックサムは予め記憶されているチェックサムと一致する。しかし、プログラムコードに破損が生じていれば、プログラムコードに所定の演算をして得られたチェックサムと、予め記憶されているチェックサムとは一致しない。この一致の有無に基づいて、制御部２０はメインプログラムの破損の有無をチェックすることができる。
【００１８】
なお、加算演算を実施してその合計値の下位数桁の値を使う処理をチェックサムと呼び、所定の演算、すなわちハッシュ関数を実施して得られるハッシュ値を使う処理を単にハッシュ値を確認するという。むろん、これらはプログラムの破損のチェックの一例に過ぎず、他の手法も採用可能である。
制御部２０は、チェックした結果に基づいて、ステップＳ１０６にてメインプログラムが正常であると判断したら、ステップＳ１０８にて、メインプログラムで自身を起動する。一方、メインプログラムに破損が生じて正常でないと判断されると、制御部２０は、ステップＳ１１０にてサブプログラムで自身を起動する。本実施形態では、第１記憶部３１に記憶されているメインプログラムに破損が生じている場合が、サブプログラムを起動する条件となっている。むろん、メインプログラムに破損が生じている場合以外に、メインプログラムによる制御の実施にバグが発見されているような場合に、その情報を記録しておいてサブプログラムの起動に切り替えるようにしておいてもよい。
【００１９】
メインプログラムで起動後、制御部２０は、ステップＳ１１２にて、サブプログラムのリリースを確認する。すなわち、制御部２０は、通信部４０を使用して広域ネットワーク５０を介してプログラムサーバー６０と通信し、同プログラムサーバー６０が提供しているプログラムの情報を取得する。そして、提供されているサブプログラムのバージョン情報と第２記憶部３２に記憶されているサブプログラムの最新のバージョンとを対比して、一致しない場合は新しいサブプログラムがリリースされているものと判断する。
【００２０】
このとき、制御部２０は、第１記憶部３１における上書き許可文字列記憶領域３１ａの文字列を読み込み、許可を示す文字列であるか判断する。
本印刷装置を利用するユーザーは、制御プログラムの更新を希望するか否かを選択することができ、図示しない管理プログラムを操作することにより、更新を希望する場合は、上書き許可文字列記憶領域３１ａに、同管理プログラムが許可を示す文字列を書き込んでいる。
【００２１】
制御部２０は、ステップＳ１１４にて上書き許可文字列記憶領域３１ａの文字列を読み込み、ステップＳ１１６にて、読み込んだ文字列に基づいて上書き許可されているか判断する。
上書き許可されている場合、制御部２０は、ステップＳ１１８にて、プログラムサーバー６０から、リリースされた最新バージョンのサブプログラムを取得し、ステップＳ１２０にて、印刷機構１０の停止時にサブプログラムを第２記憶部３２に上書きする。現在のバージョンよりも新しいサブプログラムを第２記憶部３２に上書きする処理は、いわゆるアップデートに相当する。本印刷装置のように、印刷機構１０が大型の機構のものである時には、稼働時に発生するノイズが大きいため、フラッシュロムにサブプログラムを書き込む際に同ノイズによる不具合が発生する可能性がある。このため、本実施形態では、サブプログラムを第２記憶部３２に上書きする処理は、印刷機構１０の停止時に行っている。
【００２２】
本実施形態によれば、障害発生時に備えてサブプログラムを用意している印刷装置において、起動のたびに、サブプログラムとして最新のものがリリースされていないか判定し、最新のサブプログラムがリリースされていれば、障害発生時のためのサブプログラムをアップデートしておくという、メンテナンスを実施している。
サブプログラムは、メインプログラムに障害が発生していることが分かったときに実施することになる。しかし、そのサブプログラムのメンテナンスが滞っている場合は、サブプログラムを実施できなかったり、サブプログラムに含まれているバグが更新されているにもかかわらずに放置されていることにもなる。メインプログラムを実施できない上に、サブプログラムの実施にも障害が発生しているので、印刷機構１０を停止せざるを得ない自体になってしまう。
【００２３】
印刷機構１０が大型であると、ランニングタイムが減ることによる損失が非常に大きくなる。このような印刷機構１０については、メインプログラムに障害が発生したら、サブプログラムによって確実に印刷を実行できるようにしておかなければならない。
本実施形態によれば、起動のたびに、サブプログラムを最新のものにしておくというメンテナンスをしているので、障害発生時にも印刷機構１０を確実に実施させることが可能となる。
【００２４】
所定のメンテナンスは、サブプログラムを最新のものに保つ処理には限られず、例えば、サブプログラムの修復の処理を含む。
図４は、修復の処理のフローチャートである。
ステップＳ１０２〜Ｓ１１０の処理は、図３に示す処理と同じである。
図３に示す処理では、ステップＳ１１２にてサブプログラムのリリースを確認したが、本実施形態では、ステップＳ１３０にて、サブプログラムの破損の確認を行う。すなわち、制御部２０は第２記憶部３２に記憶されているサブプログラムのコードを読み出し、チェックサムあるいはハッシュ値を参照して、サブプログラムの破損の有無を確認する。
【００２５】
記憶領域３０の第１記憶部３１及び第２記憶部３２は、ノイズの影響などを受けてデータが書き換えられてしまう可能性を含んでいる。従って、一度書き込まれた制御プログラムの内容が変化し、実施不可能となったり、適正な制御を実施できなくなる可能性を含んでいる。
制御部２０は、チェックサムやハッシュ値に基づいてサブプログラムに破損が確認されれば、サブプログラムが正常でないと判断する。制御部２０は、サブプログラムが正常でないと判断した場合は、ステップＳ１３２の分岐処理を経て、ステップＳ１３４にてサブプログラムを取得する。すなわち、制御部２０は、プログラムサーバー６０から、破損していないサブプログラムを取得する。そして、ステップＳ１３６にて、印刷機構１０の停止時にサブプログラムを第２記憶部３２に上書きする。破損しているサブプログラムを破損していないサブプログラムで上書きする処理は、修復の処理であり、メンテナンスの処理の一種である。このような上書きによる修復に限らず、例えば、チェックサムに基づいてプログラムのコードのうち破損しているデータを特定し、かつ、複数のチェックサムに基づいて同コードを修復するという処理も可能である。
【００２６】
本実施形態によれば、起動のたびに、サブプログラムの破損の有無を確認し、破損が確認されれば破損していないサブプログラムで上書きしたり、コードを修復するというメンテナンスをしているので、障害発生時にも印刷機構１０を実施させることが可能となる。
障害時の対策は、メインプログラムに障害が生じたとしても、印刷機構１０を利用できるようにする要となる。メインプログラムと比べてサブプログラムによる制御は、何らかの機能制限を含むものであったとしても、サブプログラムを用いることで、印刷機構１０を商用利用できる状態でメインプログラムの障害の対処をすることができるため、損失を最小限に抑えることが可能となる。
【００２７】
ところで、制御プログラムなどのリリースは、一般的には十分な信頼性を確保した状態でなされる。しかし、十分な配慮をした場合でも、リリース直後にバグが発見される可能性は残っている。この場合、早急にバグを解消したバージョンのものがリリースされることが多い。言い換えると、リリースされた後で所定の期間を経過しても新しいバージョンのものがリリースされていない場合は、その制御プログラムにはバグが含まれていない可能性が高い。商用利用を前提とすると、安定したバージョンの制御プログラムを利用することが望ましい。
【００２８】
図５は、アップデートの処理の変形例のフローチャートである。
ステップＳ１０２〜Ｓ１１０の処理は、図３に示す処理と同じである。
図３に示す処理では、ステップＳ１１２にてサブプログラムのリリースを確認し、ステップＳ１１８にて最新のバージョンのサブプログラムを取得している。
本実施形態では、サブプログラムがリリースされた後で、所定の期間を経過しても新しいバージョンのものがリリースされていない場合に限って、サブプログラムをアップデートする。
【００２９】
制御部２０は、メインプログラムで起動後、ステップＳ１４０にて、プログラムサーバー６０と通信し、サブプログラムのリリースの有無を確認する。プログラムサーバー６０が、各印刷装置を判別して最新バージョンの情報を提供するようにしても良いし、プログラムサーバー６０は提供可能なサブプログラムの情報を提供し、制御部２０が記憶領域３０のサブプログラムのバージョンと対比してリリースの有無を判断しても良い。
制御部２０は、ステップＳ１４２にて上書き許可文字列記憶領域３１ａの文字列を読み込み、読み込んだ文字列に基づいてステップＳ１４４にて上書き許可されているか判断する。
【００３０】
上書き許可されている場合、制御部２０は、ステップＳ１４６にて、リリースされた最新バージョンのサブプログラムに関する情報をプログラムサーバー６０から取得し、現在の日時との差に基づいて、最新バージョンのリリースからの経過時間を演算して取得する。そして、制御部２０は、ステップＳ１４８にて、経過時間が予め決められた所定の経過時間を超えているか否かを判断し、超えている場合のみ、ステップＳ１５０にて、リリースされた最新バージョンのサブプログラムを取得するとともに、ステップＳ１５２にて、印刷機構１０の停止時にサブプログラムを上書き、すなわちアップデートする。
【００３１】
本実施形態によれば、最新バージョンのサブプログラムがリリースされた場合でも、すぐにはサブプログラムをバージョンアップしない。リリースされてからの経過時間が予め決められた所定の経過時間を超えている場合のみ、サブプログラムをアップデートするため、バグが発見されなくなって安定した状況と見込まれるようになったら、サブプログラムはアップデートされる。これにより、障害が発生してメインプログラムからサブプログラムに切り替えたときに、このサブプログラムにバグが含まれていて、印刷機構１０を商用利用することができなくなる事態を回避することができる。
【００３２】
リリースされてからの経過時間に基づいてサブプログラムの安定度合いを判定する手法に加え、バージョン情報に基づいて同様の判定を行うことも可能である。
図６は、アップデートの処理の変形例のフローチャートである。
ステップＳ１０２〜Ｓ１１０の処理は、図３に示す処理と同じである。
図５に示す処理では、ステップＳ１４６にて最新バージョンのリリースからの経過時間を演算して取得し、ステップＳ１４８にて経過時間が予め決められた所定の経過時間を超えているか否かを判断している。本実施形態では、サブプログラムのバージョン情報が所定の世代数を超えている場合に限ってサブプログラムをアップデートする。
【００３３】
制御部２０は、メインプログラムで起動後、ステップＳ１６０にて、プログラムサーバー６０と通信し、サブプログラムのリリースの有無を確認する。
制御部２０は、ステップＳ１６２にて上書き許可文字列記憶領域３１ａの文字列を読み込み、読み込んだ文字列に基づいてステップＳ１６４にて上書き許可されているか判断する。
上書き許可されている場合、制御部２０は、ステップＳ１６６にて現在のサブプログラムのバージョンを取得した後、ステップＳ１６８にて、リリースされた最新バージョンのサブプログラムのバージョンをプログラムサーバー６０から取得し、ステップＳ１７０にてリリースされたサブプログラムのバージョンと現在のサブプログラムのバージョンとを対比する。そして、制御部２０は、ステップＳ１７２にて、バージョンの変化が所定の世代数を超えているか否かを判断し、超えている場合のみ、ステップＳ１７４にて、リリースされた最新バージョンのサブプログラムを取得するとともに、ステップＳ１７６にて、印刷機構１０の停止時にサブプログラムを上書き、すなわちアップデートする。
【００３４】
バージョンの変更の基準は一定ではないが、所定の世代数を設定しておくことで、マイナーな原因でリリースされている期間はアップデートの対象とせず、リリースが一区切りした後にリリースされたサブプログラムをアップデートの対象とすることが可能となる。
バージョン情報は、ｘ．ｙ．ｚというように、数値の間にピリオドを入れることで、大きなバージョンアップ、中程度のバージョンアップ、マイナーなバージョンアップということを表すことが多い。従って、この例であれば、ｙの位置のバージョンの世代数を指定しておくことで、ｚの位置のマイナーなバージョンアップの場合には、アップデートの対象としないという運用が可能となる。
【００３５】
図３〜図６に示すフローチャートに示すように、制御部２０は、電源がオンにされたときには、ステップＳ１０８にてメインプログラムで自身を起動した後、サブプログラムのメンテナンスを実施している。
従来は、このようなサブプログラムのメンテナンスを、起動毎に行うということをしていなかった。ユーザーが自発的にこのようなサブプログラムの定期的なメンテナンスを行なうとは限らず、実際にメインプログラムを実施しているときに障害が発生してからサブプログラムに切り替えた時点で、サブプログラムが古すぎたり、壊れていたり、最新ではあるもののバグの消去が未完成であったりすることが判明する場合があった。この結果、高価な印刷機構１０を商用利用できず、損失が大きくならざるを得なかった。
【００３６】
上述した各実施形態においては、印刷装置の起動毎にサブプログラムのメンテナンスを実行しているため、高価な印刷機構１０を商用利用できずに損失が大きくなってしまう事態を可能な限り回避することができるようになった。
以上の処理において、ステップＳ１１８，Ｓ１３０，Ｓ１４６，Ｓ１７０などの処理は、第２記憶部３２に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断する工程に相当する。また、この判断の後のステップＳ１２０，Ｓ１３６，Ｓ１５２，Ｓ１７６などの処理は、メンテナンスが必要であるときに所定のメンテナンスを実行する工程に相当する。
【００３７】
本発明の要旨についてまとめると、制御部２０は、サブプログラムに対してメンテナンスが必要か否かを判断する判断動作を実行可能であり、判断動作においてメンテナンスが必要であると判断した場合に、サブプログラムに対してメンテナンスを行うメンテナンス動作を実行すると言える。ここでの「メンテナンス」とは、上記の実施例で述べたように、サブプログラムのアップデート、及びサブプログラムの修復を含むものである。
本発明は、サブプログラムに対し、日頃からアップデートや破損修復をしておくことで、いつサブプログラムが使われても良いように準備しておくものである、と言える。本発明によれば、障害発生時に、サブプログラムによって確実にメインプログラムの代替動作を行なえるようにすることができる。
【００３８】
一般的には、メインプログラムとサブプログラムは、個別に開発されており、それぞれの機能は異なっている。一方、障害の一例として、メインプログラムの更新後に発見されたバグによってメインプログラムによる制御が機能しなくなることが考えられる。このような場合、メインプログラムのバージョンを、障害が発生する前のバージョンに戻す対策を講じることがある。従って、サブプログラムとして、更新前のバージョンのメインプログラムを保存させておくことも可能である。
この場合も、サブプログラムが以前のバージョンのメインプログラムというだけであり、本発明を適用可能である。
【００３９】
ここで、上記で述べた本発明についてまとめると、以下のようになる。
本発明に係る印刷装置は、媒体に印刷を行う印刷機構と、前記印刷機構に印刷を行わせるメインプログラムを記億する第１記憶部と、前記印刷機構に印刷を行わせる、前記メインプログラムとは別のプログラムであるサブプログラムを記憶する第２記憶部と、前記メインプログラムまたは前記サブプログラムのいずれかに従って前記印刷機構による印刷を制御する制御部とを備えている。前記制御部は、前記メインプログラムに従って前記印刷機構による印刷を制御し、所定の場合に前記メインプログラムから前記サブプログラムに切り替えて前記印刷機構による印刷を制御する。また、前記制御部は、前記第２記憶部に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断し、メンテナンスが必要であるときに所定のメンテナンスを実行する。
これにより、障害発生時に、サブプログラムによって確実にメインプログラムの代替動作を行なえるようにすることができる。
【００４０】
また、本発明に係る印刷装置において、前記所定のメンテナンスは、プログラムのアップデートを含み、前記制御部は、通信を介して前記メインプログラムまたは前記サブプログラムを取得可能であり、所定の場合に前記第２記憶部に記憶された前記サブプログラムのアップデートを実施してもよい。
【００４１】
また、本発明に係る印刷装置において、前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、前記通信を介して取得可能な前記サブプログラムのバージョンが新しい場合に、前記第２記憶部に記憶された前記サブプログラムのアップデートを実施してもよい。
【００４２】
また、本発明に係る印刷装置において、前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、前記通信を介して取得可能な前記サブプログラムのバージョンが新しい場合に、所定期間が経過してから前記第２記憶部に記憶された前記サブプログラムのアップデートを実施してもよい。
【００４３】
また、本発明に係る印刷装置において、前記制御部は、前記通信を介して取得可能な前記サブプログラムのバージョンと、前記第２記憶部に記憶された前記サブプログラムのバージョンとを対比し、バージョンの差が所定の世代数を超えている場合に、前記第２記憶部に記憶された前記サブプログラムのアップデートを実施してもよい。
【００４４】
また、本発明に係る印刷装置において、前記所定のメンテナンスはプログラムの修復を含み、前記制御部は、前記第２記憶部に記憶された前記サブプログラムの破損の有無を判断可能であり、破損していると判断したときに前記第２記憶部に記憶された前記サブプログラムの修復を実施可能であってもよい。
【００４５】
また、本発明に係る印刷装置において、前記制御部は、前記第１記憶部に記憶された前記メインプログラムの起動時に、メンテナンスの必要性の有無を判断してもよい。
【００４６】
また、本発明に係る印刷装置の制御方法は、第１記憶部にはメインプログラムが記憶され、第２記憶部にはサブプログラムが記憶され、制御部はいずれかのプログラムに従って所定の印刷機構を制御して所定の媒体に印刷を行い、前記制御部は所定の場合に前記メインプログラムから前記サブプログラムに切り替えて前記印刷機構による印刷を制御する印刷装置の制御方法である。この制御方法では、前記第２記憶部に記憶されるサブプログラムに対して予め定めた処理に従ってメンテナンスの必要性の有無を判断する工程と、メンテナンスが必要であるときに所定のメンテナンスを実行する工程とを実施する。
これにより、障害発生時に、サブプログラムによって確実にメインプログラムの代替動作を行なえるようにすることができる。
【００４７】
なお、本発明は前記実施形態に限られるものでないことは言うまでもない。例えば、
・前記実施形態の中で開示した相互に置換可能な部材及び構成等を適宜その組み合わせを変更して適用すること
・前記実施形態の中で開示されていないが、公知技術であって前記実施形態の中で開示した部材及び構成等と相互に置換可能な部材及び構成等を適宜置換し、またその組み合わせを変更して適用すること
・前記実施形態の中で開示されていないが、公知技術等に基づいて当業者が前記実施形態の中で開示した部材及び構成等の代用として想定し得る部材及び構成等と適宜置換し、またその組み合わせを変更して適用すること
は本発明の一実施形態として開示されるものである。
【符号の説明】
【００４８】
１０…印刷機構、２０…制御部、３０…記憶領域、３１…第１記憶部、３１ａ…上書き許可文字列記憶領域、３２…第２記憶部、４０…通信部、５０…広域ネットワーク、６０…プログラムサーバー。
【図１】
2020144744.tif 000003
【図２】
2020144744.tif 000004
【図３】
2020144744.tif 000005
【図４】
2020144744.tif 000006
【図５】
2020144744.tif 000007
【図６】
2020144744.tif 000008