(57)【要約】【課題】  シーケンスなどが異なる複数の被制御装置に合わせて、制御装置を個別に設計する必要がなく、１つの制御装置でシーケンスなどが異なる複数の被制御装置を制御することが可能であり、制御装置の設計コストを大幅に低減することが可能な制御システム及び制御プログラムを提供することを課題とする。【解決手段】  被制御装置を制御するためのシーケンスを作成して、前記被制御装置を制御する制御システムにおいて、前記被制御装置を制御するシーケンスを作成するためのデータベースを読み込む読込手段と、前記読込手段によって読み込まれたデータベースに基づいて、制御コマンドの配列を決定してシーケンスを作成するシーケンス作成手段と、前記シーケンス作成手段によって作成されたシーケンスに基づいて、前記被制御装置を制御する制御手段とを備えるように構成して課題を解決した。【選択図】  図１
2005084818.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置を制御するためのシーケンスを作成して、前記被制御装置を制御する制御システムにおいて、
前記被制御装置を制御するシーケンスを作成するためのデータベースを読み込む読込手段と、
前記読込手段によって読み込まれたデータベースに基づいて、制御コマンドの配列を決定してシーケンスを作成するシーケンス作成手段と、
前記シーケンス作成手段によって作成されたシーケンスに基づいて、前記被制御装置を制御する制御手段とを備えたことを特徴とする制御システム。
【請求項２】
前記データベースは、シーケンスそのものを指定することを特徴とする請求項１に記載の制御システム。
【請求項３】
前記データベースは、シーケンスの入れ替え、繰り返し、削除、分岐の少なくともいずれか１つを指定することを特徴とする請求項１に記載の制御システム。
【請求項４】
前記データベースの読み込みは、ファイルの読み込みによって行うことを特徴とする請求項１に記載の制御システム。
【請求項５】
前記シーケンス決定手段は、制御装置自身が実行する制御シーケンスを決定することを特徴とする請求項１に記載の制御システム。
【請求項６】
前記シーケンス決定手段は、被制御装置と通信するための通信シーケンスを決定することを特徴とする請求項１に記載の制御システム。
【請求項７】
制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置を制御するためのシーケンスを作成して、前記被制御装置を制御する制御システムに用いる被制御装置において、前記被制御装置は、シーケンスを決定するためのデータベースと、当該データベースを制御装置に送信するための送信手段を備えていることを特徴とする制御システムに用いる被制御装置。
【請求項８】
前記制御装置は、コントローラからなり、前記被制御装置は、プリンタからなることを特徴とする請求項１に記載の制御システム。
【請求項９】
制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置に関する情報を自動的に更新する制御システムにおいて、
前記被制御装置に関する情報を読み込む読込手段と、
前記読込手段によって読み込まれた情報に基づいて、被制御装置に関する情報を更新乃至一部変更する情報更新手段と、
前記情報更新手段によって更新された情報に基づいて、前記被制御装置の情報を外部に通知する制御手段とを備えたことを特徴とする制御システム。
【請求項１０】
制御装置によって被制御装置を制御するために、当該被制御装置を制御するシーケンスを作成して、前記被制御装置を制御する制御プログラムにおいて、
前記制御装置のコンピュータに、前記被制御装置を制御するシーケンスを作成するためのデータベースを読み込む手順と、
前記読込手段によって読み込まれたデータベースに基づいて、制御コマンドの配列を決定してシーケンスを作成する手順と、
前記シーケンス作成手段によって作成されたシーケンスに基づいて、前記被制御装置を制御する手順を実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子写真方式やインクジェットプリント方式などを適用したプリンタ、複写機、ファクシミリ、あるいはこれらの機能を兼ね備えた複合機等の画像形成装置などの機器において、コントローラ等の制御装置と、当該制御装置によって制御されるプリンタ等の被制御装置とを備えた制御システム及び制御プログラムに関するものである。
【背景技術】
【０００２】
【特許文献１】特開２００２−９１７２４号公報
【０００３】
従来、この種の電子写真方式やインクジェットプリント方式などを適用したプリンタ、複写機、ファクシミリ、あるいはこれらの機能を兼ね備えた複合機等の画像形成装置などの機器においては、画像形成を行う所謂”エンジン部分”と呼ばれる画像出力装置（ＩＯＴ：Image   Output  Terminal）に合わせて、当該画像出力装置（ＩＯＴ）を制御する制御部分としてのコントローラを設計するのが一般的である。そのため、上記画像出力装置（ＩＯＴ）の特性、例えば、カラー画像形成装置の場合、所謂”エンジン部分”としての画像出力装置（ＩＯＴ）が４サイクル方式か、タンデム方式かによって、画像出力装置（ＩＯＴ）の制御方法、つまり利用される制御コマンドのセットや制御シーケンスが変わってくる。例えば、給紙タイミングとイメージデータの出力タイミングのいずれを優先するかという順序の違いは、シーケンスには影響を及ぼすが、コマンドセットや生成されるイメージ自体には、影響を及ぼさない。
【０００４】
このため、画像出力装置（ＩＯＴ）の仕様が変わる毎に、コマンドセットや生成されるイメージ自体に影響を及ぼさないにも関わらず、給紙タイミングやイメージデータの出力の順序などが異なると、プリンタや複合機等の画像出力装置（ＩＯＴ）の制御部やプリンタドライバを更新しなければならず、画像出力装置（ＩＯＴ）の制御部やプリンタドライバの設計が煩雑となり、設計コストの上昇等を招くという問題点を有していた。
【０００５】
また、画像出力装置（ＩＯＴ）が変更されると、当該画像出力装置（ＩＯＴ）を制御する制御部の状態を表示するＭＩＢ（Management  Infomation  Base）の情報も変更されることがある。
【０００６】
上記画像出力装置（ＩＯＴ）を含むプリンタシステムでは、図２１に示すように、ＳＮＭＰ（Simple  Network   Management  Protocol）などを用いて、外部から当該プリンタシステムに接続されたフィニッシャー等の外部装置のＭＩＢについて問い合わせがあると、外部装置についての情報をあらかじめ用意していないと、問い合わせに答えることができないか、或いはプリンタの内部で外部装置についての情報をあらかじめ用意してあれば、それに答える形で対応してきてきる。そのため、上記プリンタシステムでは、外部機器が接続されたときに自動的に外部機器の情報を取得することができず、外部機器の情報をあらかじめ用意しておく必要があるとともに、外部機器を変える度にプリンタ内部の情報を更新する必要があり、情報更新の作業が煩雑であるという問題点を有していた。
【０００７】
そこで、画像出力装置（ＩＯＴ）が変更された場合であっても、当該画像出力装置（ＩＯＴ）を制御する上位装置の制御プログラムを変更することなく、または１種類の制御プログラムで、異なる制御コマンドを有する下位装置を制御できるようにすることを目的とした技術としては、例えば、特開２００２−９１７２４号公報に開示されたものが既に提案されている。
【０００８】
上記特開２００２−９１７２４号公報に係る情報処理システムは、上位装置と下位装置とを双方向に通信可能に接続した情報処理装置であって、前記下位装置は当該下位装置の制御コマンド情報を記憶し、前記上位装置からの指示により前記制御コマンド情報を前記上位装置に送信し、前記上位装置は、前記制御コマンド情報を使用して前記下位装置を制御するように構成したものである。
【０００９】
このように、特開２００２−９１７２４号公報に係る情報処理システムでは、プリンタの目的に即した種々のモード設定やプリント制御を行わせるための制御コマンド列を定義している制御コマンド情報を用いて、下位装置の制御を変更するようになっている。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記従来技術の場合には、次のような問題点を有している。すなわち、上記特開２００２−９１７２４号公報に係る情報処理システムの場合には、上位装置が、制御コマンド情報を使用して下位装置を制御するように構成したものであるが、制御コマンドのセットが同じであっても、シーケンスが異なる画像出力装置（ＩＯＴ）等の下位装置には、対応することができないという問題点を有していた。
【００１１】
更に説明すると、上記特開２００２−９１７２４号公報に係る情報処理システムの場合には、上位装置が下位装置から送信された制御コマンド情報を使用して、下位装置を制御するものであるが、当該下位装置が複数機種あって、機種毎に給紙を優先させたりイメージデータの送信を優先させるなど、シーケンスが異なる場合には、対応することができないという問題点を有していた。
【００１２】
そこで、この発明は、上記従来技術の問題点を解決するためになされたものであり、その目的とするところは、シーケンスなどが異なる複数の被制御装置に合わせて、制御装置を個別に設計する必要がなく、１つの制御装置でシーケンスなどが異なる複数の被制御装置を制御することが可能であり、制御装置の設計コストを大幅に低減することが可能な制御システム及び制御プログラムを提供することにある。
【００１３】
また、この発明の他の目的とするところは、制御装置に新たに外部の被制御装置が接続されたり、外部の被制御装置の仕様が変更されたりした場合であっても、当該被制御装置の情報を自動的に取得することができ、被制御装置の情報をその都度更新する作業が不要となり、操作性に優れた制御システム及び制御プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記の課題を解決するため、請求項１に記載された発明は、制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置を制御するためのシーケンスを作成して、前記被制御装置を制御する制御システムにおいて、前記被制御装置を制御するシーケンスを作成するためのデータベースを読み込む読込手段と、前記読込手段によって読み込まれたデータベースに基づいて、制御コマンドの配列を決定してシーケンスを作成するシーケンス作成手段と、前記シーケンス作成手段によって作成されたシーケンスに基づいて、前記被制御装置を制御する制御手段とを備えたことを特徴とする制御システムである。
【００１５】
この発明においては、例えば、機種ごとの被制御装置の仕様情報がデータベース化されており、制御装置がデータベースにアクセス可能に構成される。制御装置は、データベースに基づいて、被制御装置を制御するためのシーケンスを生成し、当該シーケンスに基づいて被制御装置を制御する。また、ＭＩＢ（Management  Infomation  Base）として外部に公開する情報についても、必要に応じて仕様情報から生成する。
【００１６】
上記データベースは、被制御装置に設けられた不揮発性メモリか、独立したファイルのどちらか一方、若しくは両方に格納される。そして、上記制御装置は、データベースを被制御装置との通信、または外部のファイルを直接読み込むことによりデータベースにアクセスすることができる。
【００１７】
上記制御装置は、例えば、データベースを利用して、ＭＩＢ（Management  Infomation  Base）として外部ネットワークに情報を提供したり、サポートするコマンドの情報を入手したり、制御シーケンスを作成したりする。
【００１８】
また、請求項２に記載された発明は、前記データベースが、シーケンスそのものを指定することを特徴とする請求項１に記載の制御システムである。
【００１９】
さらに、請求項３に記載された発明は、前記データベースが、シーケンスの入れ替え、繰り返し、削除、分岐の少なくともいずれか１つを指定することを特徴とする請求項１に記載の制御システムである。
【００２０】
又、請求項４に記載された発明は、前記データベースの読み込みは、ファイルの読み込みによって行うことを特徴とする請求項１に記載の制御システムである。
【００２１】
更に、請求項５に記載された発明は、前記シーケンス決定手段は、制御装置自身が実行する制御シーケンスを決定することを特徴とする請求項１に記載の制御システムである。
【００２２】
また、請求項６に記載された発明は、前記シーケンス決定手段は、被制御装置と通信するための通信シーケンスを決定することを特徴とする請求項１に記載の制御システムである。
【００２３】
さらに、請求項７に記載された発明は、制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置を制御するためのシーケンスを作成して、前記被制御装置を制御する制御システムに用いる被制御装置において、前記被制御装置は、シーケンスを決定するためのデータベースと、当該データベースを制御装置に送信するための送信手段を備えていることを特徴とする制御システムに用いる被制御装置である。
【００２４】
又、請求項８に記載された発明は、前記制御装置が、コントローラからなり、前記被制御装置は、プリンタからなることを特徴とする請求項１に記載の制御システムである。
【００２５】
更に、請求項９に記載された発明は、制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置に関する情報を自動的に更新する制御システムにおいて、前記被制御装置に関する情報を読み込む読込手段と、前記読込手段によって読み込まれた情報に基づいて、被制御装置に関する情報を更新乃至一部変更する情報更新手段と、前記情報更新手段によって更新された情報に基づいて、前記被制御装置の情報を外部に通知する制御手段とを備えたことを特徴とする制御システムである。
【００２６】
また、請求項１０に記載された発明は、制御装置によって被制御装置を制御するために、当該被制御装置を制御するシーケンスを作成して、前記被制御装置を制御する制御プログラムにおいて、前記制御装置のコンピュータに、前記被制御装置を制御するシーケンスを作成するためのデータベースを読み込む手順と、前記読込手段によって読み込まれたデータベースに基づいて、制御コマンドの配列を決定してシーケンスを作成する手順と、前記シーケンス作成手段によって作成されたシーケンスに基づいて、前記被制御装置を制御する手順を実行させるための制御プログラムである。
【００２７】
この発明の作用は、次の通りである。
【００２８】
制御装置は、データベースに基づいて、被制御装置を制御するシーケンスを作成するので、被制御装置の仕様が変更された場合であっても、データベースに基づいて、被制御装置を制御するシーケンスを新たに作成することができ、被制御装置の仕様が変更されるごとに、制御装置を新たに製造する必要がなく、１つの制御装置でシーケンスが異なる複数の被制御装置を制御することができ、制御装置の設計コストを大幅に低減することができる。
【００２９】
また、この発明では、ＭＩＢ（Management  Infomation  Base）に関するソフトウエアは、変更することが不要である。
【００３０】
さらに、この発明では、被制御装置の仕様が形式化されているので、仕様の解釈が一定となる。
【００３１】
また、この発明は、被制御装置自体も制御装置を選ばず、被制御装置に接続された制御装置によって、当該被制御装置に合致した制御が可能となる。さらに、被制御装置は、同一構成であっても、当該被制御装置のデータベースの設定を変えるだけで、複数のバリエーションを作成することが可能となる。
【発明の効果】
【００３２】
この発明によれば、シーケンスなどが異なる複数の被制御装置に合わせて、制御装置を個別に設計する必要がなく、１つの制御装置でシーケンスなどが異なる複数の被制御装置を制御することが可能であり、制御装置の設計コストを大幅に低減することが可能な制御システム及び制御プログラムを提供することができる。
【００３３】
また、この発明によれば、制御装置に新たに外部の被制御装置が接続されたり、外部の被制御装置の仕様が変更されたりした場合であっても、当該被制御装置の情報を自動的に取得することができ、被制御装置の情報をその都度更新する作業が不要となり、操作性に優れた制御システム及び制御プログラムを提供することができる。
【発明を実施するための最良の形態】
【００３４】
以下に、この発明の実施の形態について図面を参照して説明する。
【００３５】
実施の形態１
図１はこの発明の実施の形態１に係る制御システム及び制御プログラムを適用した画像形成装置としてのプリンタを示す概念図である。
【００３６】
この実施の形態に係るプリンタ１は、図１に示すように、制御装置としてのコントローラ２と、被制御装置としての画像出力装置３とから構成されており、プリンタ２と画像出力装置３とは、通信線４を介して互いに通信可能に接続されている。上記画像出力装置３は、コントローラ２によって制御され、図示しないパーソナルコンピュータやＬＡＮあるいは電話回線等を介して送られてくる画像データに基づいて、プリント動作を実行するようになっている。ここで、コントローラ２は、プリンタ１のコントローラとして独自に製造されたものであっても良いし、パーソナルコンピュータ等をそのままコントローラとして使用しても良い。
【００３７】
上記画像出力装置３は、機種毎に応じて、給紙タイミングとイメージデータの出力タイミングのいずれを優先するか、ジャムが発生したときに動作を停止した後、最初からコマンドのやり取りを行うか、必要最低限度のコマンド、例えばジャムが発生したページからやり直すか等の仕様が、種々異なる。また、この画像出力装置３は、同じ機種であっても、モデルチェンジ等がされた際に、給紙タイミングとイメージデータの出力タイミングのいずれを優先するか等の仕様が変更される場合がある。
【００３８】
上記画像出力装置３の仕様は、図１に示すように、当該画像出力装置３を設計したり、モデルチェンジをする際などに、仕様書５としてまとめられ、この仕様書５に基づいてデータベースとしての仕様データベース６が作成される。この仕様データベース６は、画像出力装置３の動作を制御するシーケンス等を作成するために使用されるものであり、画像出力装置３の不揮発性メモリ７に格納データとして予め記憶されるとともに、外部の形式ファイル８としてＣＤ−ＲＯＭ等に記憶された状態で配布されるか、あるいはいずれか一方に記憶される。また、上記仕様データベース６は、必要に応じて、最新のものがサーバー等に記憶され、インターネット等を通して、画像出力装置３のハードディスクにダウンロード可能に構成しても良い。
【００３９】
コントローラ２は、画像出力装置３の不揮発性メモリ７に記憶された情報の読み込み、又は形式ファイル８を直接読み込むことによって、これら不揮発性メモリ７や形式ファイル８に記憶されたデータベースにアクセスすることができるようになっている。
【００４０】
そして、コントローラ２は、データベースの情報を元にして、画像出力装置３を制御するシーケンスを作成したり、サポートするコマンドの情報を入手し、当該シーケンスに従って画像出力装置３を制御する。また、コントローラ２は、必要に応じて、ＭＩＢ（Management  Infomation  Base）として外部に公開する情報についても、データベースの情報を元にして作成する。
【００４１】
上記コントローラ２は、図２に示すように、プリンタ１の画像出力装置３を制御するＣＰＵ１０と、このＣＰＵ１０が実行する制御プログラム等の命令が記憶されたＲＯＭ１１と、ＣＰＵ１０がプログラムを実行するときに作業領域として使用されるＲＡＭ１２と、データベースファイル１３が記憶されたハードディスクや不揮発性メモリ等からなる外部記憶装置１４と、プリンタ１の画像出力装置３にイメージデータを出力するためのイメージ出力インターフェース１５と、プリンタ１の画像出力装置３と通信線４を介して通信するための通信装置１６と、これらＣＰＵ１０やＲＯＭ１１等を接続するデータバス１７とを備えるように構成されている。なお、プリンタ１の画像出力装置３に出力するイメージデータを展開保持するために利用されるフレームバッファは、通常、ＲＡＭ１２の内部にとられる。
【００４２】
また、図２においては、コントローラ１がデータベースのファイル１３を記憶した外部記憶装置１４を備えるように構成されているが、このデータベースのファイルは、図１に示すように、プリンタ１の画像出力装置２に設けられた不揮発メモリ７に記憶するように構成しても勿論よい。
【００４３】
上記ＣＰＵ１０は、ＲＯＭ１１に記憶された制御プログラムに基づいて、基本的に、次に示すような動作を繰り返す。まず、ＣＰＵ１０は、図３に示すように、通信装置１６を介して、図示しないパーソナルコンピュータ等から送られてくるＰＤＬ（Page  Description   Language）などの言語で既述されたプリントデータを受け付け（ステップ１０１）、当該ＰＤＬで記述されたプリントデータを解釈して（ステップ１０２）、ＲＡＭ１２内のフレームバッファ上に出力イメージを生成する（ステップ１０３）。その後、ＣＰＵ１０は、通信装置１６及び通信線４を介してプリンタ１の画像出力装置３を制御するとともに、イメージ出力インターフェース１５を介してフレームバッファ上のイメージデータをプリンタ１の画像出力装置３に出力する動作を行なう（ステップ１０４）。
【００４４】
また、上記通信装置１６は、プリンタ１に接続されたパーソナルコンピュータ等のホスト装置からなる外部の装置からプリントデータを受け付けたり、プリンタ１の画像出力装置３を制御するために、当該画像出力装置３と通信を行なうものである。この通信装置１６は、通常、ＬＡＮやパラレル若しくはシリアルインターフェース、またはその双方によって構成される。
【００４５】
さらに、上記外部記憶装置１４は、データバス１７を介してＣＰＵ１０に接続されており、本実施の形態で使用するデータベースのファイル１３が、当該外部記憶装置１４に格納されている。そして、ＣＰＵ１０は、外部記憶装置１４からデータベースファイル１３を読み込み、当該データベースに含まれる情報を元にして、画像出力装置３の動作を制御するシーケンスを自ら作成して、効率良く画像出力装置３の制御を行なうものである。
【００４６】
図４は外部記憶装置１４に記憶されたデータベースのファイル１３を示す構成例である。
【００４７】
このデータベースは、当該データベースを参照する場合の主キーをＫＥＹ、インデックスにより参照される値をＶＡＬＵＥとすると、＜ＫＥＹ＞    ＶＡＬＵＥ    ＜／ＫＥＹ＞でひとつのデータが表現される。このとき、＜ＫＥＹ＞とＶＡＬＵＥ及びＶＡＬＵＥと＜／ＫＥＹ＞の間の空間（スペースや改行）は、無視されるものとする。また、＜！・・・＞で囲まれて記述されている部分は、コメントの部分であり、データベースには何の影響をも及ぼすものではない。
【００４８】
上記データベースは、図４に示すように、＜ＷａｉｔＳｔａｔｉｏｎ＞      Ｅｘｉｓｔ    ＜／ＷａｉｔＳｔａｔｉｏｎ＞というデータと、＜ＦｅｅｄＩｍａｇｅＯｄｅｒ＞    ＦｅｅｄＦｉｒｓｔ    ＜／ＦｅｅｄＩｍａｇｅＯｄｅｒ＞というデータと、＜ＲｃｏｖｅｒｙＭｅｔｈｏｄ＞    Ｒｅｃｏｎｓｔｒｕｃａｔｉｏｎ    ＜／ＲｃｏｖｅｒｙＭｅｔｈｏｄ＞というデータと、＜ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒ＞    Ｊａｍ    ＜／ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒ＞というデータから構成されている。
【００４９】
このデータベースは、一例であり、画像出力装置３の動作に応じて、適宜所定のものが、外部記憶装置１４に複数記憶されたり、形式ファイル８としてＣＤ−ＲＯＭに記憶されたりして配布され、所望のものが適宜選択して使用される。また、上記複数のデータベースの中から適宜所定のものを選択することによって、画像出力装置３の仕様が変更された場合に、その仕様に合わせて、当該画像出力装置３の動作を制御するシーケンスを容易に変更することが可能となっている。
【００５０】
また、上記データベースを参照するために使用される関数としては、例えば、図５に示すものが挙げられる。
【００５１】
図５において、ｇｅｔＤａｔａ関数は、引数として指定されたＫＥＹを与えると、Ｋｅｙに対応するデータの値を返すための関数である。例えば、ｇｅｔＤａｔａ関数は、パラメータとしてＦｅｅｄＩｍａｇｅＯｒｄｅｒを渡すと、図４に示すデータベースを参照して、ＦｅｅｄＩｍａｇｅＯｒｄｅｒに対応する値であるＦｅｅｄＦｉｒｓｔを代入して返すようになっている。
【００５２】
データベースの値としては、図６（ａ）に示すように、ＦｅｅｄＦｉｒｓｔ以外に、Ｅｘｉｓｔ、ＩｍａｇｅＦｉｒｓｔ、Ｒｅｃｏｎｓｔｒｕｃｔ、Ｒｅｓｔａｒｔ、Ｓｔｏｐ、Ｊａｍ、Ｃｏｎｔｉｎｕｅ等が挙げられる。
【００５３】
また、ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）は、図５に示すように、ベースにしたシーケンスの交換可能なシーケンスの一部を変更するための関数であり、引数にＰａｒｔｓＳｅｑｕｅｎｃｅから派生したシーケンス生成のオブジェクトを渡すものである。
【００５４】
ＰａｒｔｓＳｅｑｕｅｎｃｅとしては、図６（ｃ）に示すように、Ｒｅｃｏｎｓｔｒｕｃｔ、Ｒｅｓｔａｒｔ、ＳｔｏｐＢｅｈａｖｉｏｒ、ＳｙｓｔｅｍＤｅｐｅｎｄＢｅｈａｖｉｏｒが挙げられる。
【００５５】
さらに、ｓｅｔＳｅｌｅｃｔＴｙｐｅ（）は、図５に示すように、オブジェクトがベースとなるシーケンスのどの部分に対してのシーケンスに該当するのかを知らせる関数である。この実施の形態では、ＰａｒｔｓＴｙｐｅとしては、図６（ｂ）に示すように、ＲｅｃｏｎｓｔｒｕｃｔとＲｅｓｔａｒｔが、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄＳｅｑを返し、ＳｔｏｐＢｅｈａｖｉｏｒとＳｙｓｔｅｍＤｅｐｅｎｄＢｅｈａｖｉｏｒがＭｅｄｉａＭｉｓｍａｔｃｈＳｅｑを返すようになっている。
【００５６】
図７は、図５に示す関数を用いてデータベースを参照し、画像出力装置３を制御するためのシーケンスを生成する本実施の形態に係る制御プログラムを示すものである。この制御プログラムは、例えば、ＲＯＭ１１に予め記憶されている。
【００５７】
この制御プログラムでは、まず、図７に示すように、ｇｅｔＤａｔａ関数を用い、ＷａｉｔＳｔａｔｉｏｎをＫＥＹとして、データベースを参照し、当該データベースのデータが、Ｅｘｉｓｔか否かを判定する（プログラム１０１）。そして、ＷａｉｔＳｔａｔｉｏｎをＫＥＹとして、データベースを参照したデータが、Ｅｘｉｓｔであれば、新しいシーケンスのベースシーケンスは、ＷａｉｔＳｔａｔｉｏｎのシーケンスであると決定する（プログラム１０２）。
【００５８】
また、この制御プログラムでは、ＷａｉｔＳｔａｔｉｏｎをＫＥＹとして、データベースを参照したデータが、Ｅｘｉｓｔ以外であれば、ｇｅｔＤａｔａ関数を用い、ＦｅｅｄＩｍａｇｅＯｒｄｅｒをＫＥＹとして、データベースを参照し、データベースを参照したデータが、ＩｍａｇｅＦｉｒｓｔか否かを判別する（プログラム１０３）。そして、データベースを参照したデータが、ＩｍａｇｅＦｉｒｓｔであれば、新しいシーケンスのベースシーケンスは、ＩｍａｇｅＦｉｒｓｔのシーケンスであると決定し（プログラム１０４）、ＩｍａｇｅＦｉｒｓｔ以外であれば、新しいシーケンスのベースシーケンスは、ＧｅｎｅｒａｌＳｅｑｕｅｎｃｅ、つまり汎用のシーケンスであると決定する（プログラム１０５）。
【００５９】
次に、この制御プログラムでは、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄをＫＥＹとして、データベースを参照したデータが、Ｒｅｃｏｎｓｔｒｕｃｔか否かを判定する（プログラム１０６）。そして、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄをＫＥＹとして、データベースを参照したデータが、Ｒｅｃｏｎｓｔｒｕｃｔであれば、ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）関数を用いて、ベースにしたシーケンスの交換可能なシーケンスの一部を、Ｒｅｃｏｎｓｔｒｕｃｔに設定する（プログラム１０７）。
【００６０】
また、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄをＫＥＹとして、データベースを参照したデータが、Ｒｅｃｏｎｓｔｒｕｃｔ以外であれば、ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）関数を用いて、ベースにしたシーケンスの交換可能なシーケンスの一部を、Ｒｅｓｔａｒｔに設定する（プログラム１０８）。
【００６１】
次に、この制御プログラムでは、ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒをＫＥＹとして、データベースを参照したデータが、Ｓｔｏｐか否かを判定する（プログラム１０９）。そして、ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒをＫＥＹとして、データベースを参照したデータが、Ｓｔｏｐであれば、ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）関数を用いて、ベースにしたシーケンスの交換可能なシーケンスの一部を、ＳｔｏｐＢｅｈａｖｉｏｒに設定する（プログラム１１０）。
【００６２】
また、ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒをＫＥＹとして、データベースを参照したデータが、Ｃｏｎｔｉｎｕｅであれば（プログラム１１１）、ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）関数を用いて、ベースにしたシーケンスの交換可能なシーケンスの一部を、ＳｙｓｔｅｍＤｅｐｅｎｄＢｅｈａｖｉｏｒに設定する（プログラム１１２）。
【００６３】
なお、図８はデータベースのデータによって選択されるシーケンスをまとめた表である。
【００６４】
以上の構成において、この実施の形態に係るプリンタでは、次のようにして、シーケンスが異なる複数の被制御装置に合わせて、制御装置を個別に設計する必要がなく、１つの制御装置でシーケンスが異なる複数の被制御装置を制御することができ、制御装置の設計コストを大幅に低減することが可能となっている。
【００６５】
すなわち、この実施の形態では、次のようにして、コントローラ２によって、外部記憶装置１４に予め記憶されたデータベースファイル１３を参照して、画像出力装置３を制御するためのシーケンスが決定される。
【００６６】
コントローラ２は、図２に示すように、接続されているプリンタ１の画像出力装置３が変更されたことを検出した場合、もしくはコントローラ２及び／又は画像出力装置３の電源の投入時など、プリンタ１の画像出力装置３が変更された可能性がある場合に、外部記憶装置１４に記憶されたデータベースファイル１３を参照して、当該データベースファイル１３に基づいてシーケンスを作成し、画像出力装置３を制御する。なお、画像出力装置３が変更されていない場合は、作成されたシーケンスをＲＡＭ等に記憶し、当該ＲＡＭ等に記憶されたシーケンスに基づいて、画像出力装置３が制御される。
【００６７】
上記コントローラ２は、図３に示すように、ＰＤＬを受け取って出力イメージデータを生成した後は、作成されたシーケンスに基づいてプリンタ１の画像出力装置３やコントローラ２自体の制御を行う。
【００６８】
上記画像出力装置３のシーケンスの決定は、図７に示すようなプログラムを用いて行われる。このプログラムの動作をアクティビティ図に置き換えたものが図９である。
【００６９】
まず始めに、ＣＰＵ１０は、図９に示すように、図７に示すプログラムに従って、ベースとなるシーケンスを決定する。ＣＰＵ１０は、外部記憶装置１４に記憶されたデータベースのファイル１３を、「ＷａｉｔＳｔａｔｉｏｎ」及び「ＦｅｅｄＩｍａｇｅＯｒｄｅｒ」をキーとして、ｇｅｔＤａｔａ関数を用いて読み出し、ベースシーケンスを決定する。
【００７０】
なお、「ＷａｉｔＳｔａｔｉｏｎ」及び「ＦｅｅｄＩｍａｇｅＯｒｄｅｒ」によってデータベースにアクセスして、最終的に選択されるベースシーケンスは、図８に示すように、ＳｅｑｕｅｎｃｅＦｏｒＷａｉｔＳｔａｔｉｏｎと、ＳｅｑｕｅｎｃｅＦｏｒＩｍａｇｅＦｉｒｓｔと、ＧｅｎｅｒａｌＳｅｑｕｅｎｃｅの３通りのうちの何れか１つである。
【００７１】
この実施の形態では、コントローラ１のＣＰＵ１０が、外部記憶装置１４に記憶されたデータベース１３を参照して、ｇｅｔＤａｔａ関数を用いてデータベースを読み出すと、当該データベースからは、図４に示すように、関数データＥｘｉｓｔが読み出される。すると、ベースシーケンスは、図１０に示すように、ＳｅｑｕｅｎｃｅＦｏｒＷａｉｔＳｔａｔｉｏｎとなる。
【００７２】
また、読み出された関数データがＥｘｉｓｔ以外である場合には、ＣＰＵ１０は、更に判定する必要があるため、ＦｅｅｄＩｍａｇｅＯｒｄｅｒをＫｅｙとして関数ｇｅｔＤａｔａ（）を呼び出す。そして、取り出されたデータがＩｍａｇｅＦｉｒｓｔであるならば、ベースシーケンスは、図１１に示すように、ＳｅｑｕｅｎｃｅＦｏｒＩｍａｇｅＦｉｒｓｔとなる。また、取り出されたデータがそれ以外（ＦｅｅｄＦｉｒｓｔ）の場合には、ベースシーケンスは、図１２に示すように、ＧｅｎｅｒａｌＳｅｑｕｅｎｃｅとなる。
【００７３】
ここまでの処理によって、作成すべきシーケンスのベースとなるシーケンスが決定されたことになる。いずれにしても、ＣＰＵ１０は、ベースシーケンスを決定した後に、オブジェクトを生成する。
【００７４】
続いて、ＣＰＵ１０は、ベースシーケンスに基づいてカスタマイズを行い、最終的なシーケンスを決定する。具体的には、ＣＰＵ１０は、ｎｅｗコマンドを用いてベースシーケンスに実装するオブジェクトを生成することになる。
【００７５】
ＣＰＵ１０は、図４に示すように、ベースシーケンスを決定したときと同様に、関数ｇｅｔＤａｔａ（）を用い、今度は、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄをＫｅｙとしてデータベースを参照し、データを取り出す。ＣＰＵ１０は、図７に示すように、取り出されたデータが「Ｒｅｃｏｎｓｔｒｕｃｔ」かそうでないかを判別して（ステップ１０６）、適切なシーケンスを選択する。
【００７６】
ＣＰＵ１０は、図４に示すように、取り出されたデータが「Ｒｅｃｏｎｓｔｒｕｃｔ」であると、エラー後、出力されていない用紙の出力を再度要求するシーケンスを選択する。つまり、ＣＰＵ１０は、取り出されたデータが「Ｒｅｃｏｎｓｔｒｕｃｔ」であると、選択したシーケンスを実装するオブジェクトをｎｅｗで生成して、ベースシーケンスのオブジェクトに、関数ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）を利用してベースシーケンスに設定する。
【００７７】
また、ＣＰＵ１０は、図７に示すように、取り出されたデータが「Ｒｅｃｏｎｓｔｒｕｃｔ」以外である場合には、エラー後、出力されていない用紙については何もしないシーケンスを選択する。
【００７８】
最後に、ＣＰＵ１０は、図４に示すように、関数ｇｅｔＤａｔａ（）を用い、今度は、「ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒ」をキーにしてデータを取得する。取得したデータがＳｔｏｐならばプリンタエンジン停止用の制御を行うシーケンスを実装するオブジェクトであるＳｔｏｐＢｅｈａｖｉｏｒを生成する。
【００７９】
また、取得したデータがＣｏｎｔｉｎｕｅならばＭｅｄｉａＭｉｓｍａｔｃｈ後の動作を決定づけるのはコントローラ側であり、これはシステム仕様で決定される。
【００８０】
いま、ＣＰＵ１０は、関数ｇｅｔＤａｔａ（）を用い、「ＭｅｄｉａＭｉｓｍａｔｃｈＢｅｈａｖｉｏｒ」をキーにしてデータとしてＳｔｏｐを取得すると、続いて、ＣＰＵ１０は、関数ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）を用いて、引数として渡されたオブジェクトから置き換えるサブシーケンスのタイプを得て、それに対応するサブシーケンスにオブジェクトを配置する。
【００８１】
つまり、関数ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）の動作は、図１３に示すように、関数ｓｅｔＳｅｌｅｃｔＴｙｐｅ（）を利用して、ＰａｒｔｓＴｙｐｅを取得し、ＰａｒｔｓＴｙｐｅ型のデータの対応した格納場所にオブジェクトを配置する。
【００８２】
この実施の形態では、ＰａｒｔｓＴｙｐｅとしては、ＲｅｃｏｎｓｔｒｕｃｔとＲｅｓｔａｒｔが、ＲｅｃｏｖｅｒｙＭｅｔｈｏｄＳｅｑを返し、ＳｔｏｐＢｅｈａｖｉｏｒとＳｙｓｔｅｍＤｅｐｅｎｄＢｅｈａｖｉｏｒがＭｅｄｉａＭｉｓｍａｔｃｈＳｅｑを返すように設定されている。
【００８３】
ところで、この実施の形態では、ＳｔｏｐＢｅｈａｖｉｏｒであるため、ＭｅｄｉａＭｉｓｍａｔｃｈＳｅｑが選択され、プリンタエンジン停止用の制御を行うシーケンスが実装される。
【００８４】
一方、取得したデータがＣｏｎｔｉｎｕｅならばＭｅｄｉａＭｉｓｍａｔｃｈ後の動作を決定づけるのはコントローラ側であり、これはシステム仕様で決定される。このシステム依存のシーケンスを実装したオブジェクトを生成して関数ｓｅｔＳｅｌｅｃｔＳｅｑｕｅｎｃｅ（）を利用してシーケンスを設定する。
【００８５】
また、取得したデータがＪａｍならばプリンタエンジンは、ＭｅｄｉａＭｉｓｍａｔｃｈを検出した時点で停止する。このため、コマンドのやり取りは通常の紙詰まりで停止した場合と同じ処理となるため、シーケンスの変更は行わない。
【００８６】
以上の動作で、ＣＰＵ１０によって画像出力装置３を制御するためのシーケンスの決定が終了し、新しいシーケンスが生成される。新しく生成されたシーケンスは、ＲＡＭ１２等に記憶され、画像出力装置３の制御に使用される。
【００８７】
この実施の形態では、図１０に示すように、ＷａｉｔＳｔａｔｉｏｎ用の基本ステーションが選択される。
【００８８】
図１０はＷａｉｔＳｔａｔｉｏｎつまり用紙をイメージを出力するまで待たすことが可能なプリンタ１の画像出力装置３のために、先に給紙要求を出すことができるものである。そのため、給紙開始から実際に印刷可能となるまでに時間が掛かるため、先に給紙できると生産性の向上に寄与することになる。プリンタ１の画像出力装置３は、給紙されてから、出力イメージが出力されるまで印刷される直前の位置で用紙を停止させながら待つ。
【００８９】
また、図１４はエラー解消後再びコントローラがプリント処理を要求する場合のシーケンスである。即ち、ジャム等のエラーが発生したときに動作を停止し、その後、リカバリのため給紙要求等の最初からコマンドのやり取りを行い、エラーが解消された場合に、正常に画像が形成されずに排出されていない用紙に対しては、新たに給紙要求の始めから処理をやり直すように構成されている。つまり給紙要求から処理を再度繰り返すことになる。これに対して、後述する図１６に示すシーケンスでは、ジャムが発生したときに動作を停止した後、必要最低限度のコマンド、例えばジャムが発生したページからやり直すように指示するコマンドを送信することで、当該ページの給紙を直ちに開始するように構成したものである。
【００９０】
図１５はメデイアミスマッチを検出したときプリンタエンジンが停止する場合のシーケンスである。このシーケンスでは、用紙をそのまま排出するようになっている。
【００９１】
また、ベースシーケンスとして、Ｉｍａｇｅ  Ｆｉｒｓｔが選択された場合は、図１１に示すように動作する。
【００９２】
図１１は用紙の出力より先にイメージの出力を行うシーケンスである。イメージは、一時的にプリンタエンジン内で形成される。通常、イメージは、中間転写体と呼ばれるものにトナーなどで最終的なイメージが作成されるが、単にＲＡＭ上に展開される処理でもよい。その後、給紙、プリント、排出がされる。
【００９３】
さらに、ベースシーケンスとして、Ｇｅｎｅｒａｌ  Ｓｅｑｕｅｎｃｅが選択された場合は、図１２に示すように動作する。
【００９４】
図１２は汎用のシーケンスであり、給紙されたあと出力イメージを出力するタイミングについては、完全にプリンタエンジンに任してしまうため、先に出力イメージを生成しておく。無事プリントがされ出力されたら、出力イメージは必要なくなるので、コントローラはこれを破棄する。
【００９５】
図１６はエラー解消後そのまま実行可能なプリンタエンジンの場合のシーケンスである。エラーで途中中断するが、エラーが解消されると中断されたプリント処理がそのまま実行される。
【００９６】
図１７はメデイアミスマッチを検出したときの動作をシステム定義とした場合のシーケンスである。このシーケンスは、システム（コントローラ）は通常どおりプリントを終了することを選択する場合の例である。
【００９７】
なお、データベースは、必ずしも外部記憶装置に存在する必要はなく、ネットワークを通してサーバにアクセスして取得しても構わないし、拡張ＲＯＭの形式で供給されても構わない。
【００９８】
また、データベース自体も実施例として説明を容易にするためテキスト形式を例に挙げたが、バイナリ形式であってももちろん構わない。
【００９９】
実施の形態２
図１８はこの発明の実施の形態２を示すものであり、前記実施の形態と同一の部分には同一の符号を付して説明すると、この実施の形態２では、制御装置と、当該制御装置によって制御される被制御装置とを備え、前記被制御装置に関する情報を自動的に更新する制御システムにおいて、前記被制御装置に関する情報を読み込む読込手段と、前記読込手段によって読み込まれた情報に基づいて、被制御装置に関する情報を更新乃至一部変更する情報変更手段と、前記情報変更手段によって変更された情報に基づいて、前記被制御装置の情報を外部に通知する制御手段とを備えるように構成されている。
【０１００】
図１８において、プリンタシステム２０は、通常のネットワークプリンタのシステムであり、前記実施の形態１でのコントローラ２とプリンタエンジン３がこれに相当する。
【０１０１】
上記プリンタシステム２０には、外部装置としてフィニッシャ２１が接続されており、このフィニッシャ２１は、出力後の用紙に穴あけやステープル止めなどを行う後処理用の装置である。上記フィニッシャ２１は、実行する穴あけやステープル止めなどの後処理用の種類に応じて、様々な動作仕様に関する情報を有している。
【０１０２】
上記フィニッシャ２１は、コントローラ２とプリンタエンジン３と同様に、通信線２２で接続されている。プリンタシステム２０からは、フィニッシャ２１に通信線２２を介してデータベース２３にアクセスすることが可能となっている。
【０１０３】
フィニッシャ２１は、ＲＯＭ内に格納されている図１９に示すようなデータベース２３を持ち、プリンタシステム２０から通信線２２によりデータを要求されると、データベース２３からバージョン情報などを読み取りコントローラ２に返すようになっている。
【０１０４】
このため、フィニッシャ２１を変更しても、正しくプリンタシステム２０が他からの問い合わせに答えられるようになっている。
【０１０５】
更に説明すると、外部からフィニッシャ２１のバージョンに関する問い合わせがあると、プリンタシステム２０は、通信線２２を利用してフィニッシャ２１に問い合わせを行う。問い合わせは、図２０に示すようなメッセージを用いて行われる。プリンタシステム２０は、メッセージと共にアクセスしたいデータのキー、つまりフィニッシャ２１のバージョンを読み出すキーをフィニッシャ２１に送る。
【０１０６】
すると、フィンニッシャ２１は、図１９で記述されるデータベース２３から、キーに対応したデータである１．２．２を読み取る。読み取ったデータは、ｒｅｓｐｏｎｓｅ  Ｄａｔａメッセージを利用してプリンタシステム２０に返される。プリンタシステム２０は、ｒｅｓｐｏｎｓｅ  Ｄａｔａメッセージメッセージの内容である１．２．２を外部へ送信して終了するようになっている。
【０１０７】
そのため、この実施の形態２によれば、プリンタシステム２０に新たに外部のフィンニッシャ２１が接続されたり、外部のフィンニッシャ２１の仕様が変更されたりした場合であっても、当該フィンニッシャ２１のバージョン情報などを自動的に取得することができ、フィンニッシャ２１のバージョン情報などをその都度更新する作業が不要となり、操作性に優れた制御システム及び制御プログラムを提供することができる。
【図面の簡単な説明】
【０１０８】
【図１】図１はこの発明の実施の形態１に係る制御システム及び制御プログラムを適用した画像形成装置としてのプリンタを示す概念図である。
【図２】図２はこの発明の実施の形態１に係る制御システム及び制御プログラムを適用した画像形成装置としてのプリンタのコントローラを示すブロック図である。
【図３】図３はコントローラの基本的な動作を示すフローチャートである。
【図４】図４はデータベースのファイルを示す図である。
【図５】図５は使用される関数を示す説明図である。
【図６】図６はこの発明の実施の形態１に係る制御システムで使用されるクラスを示すクラス図である。
【図７】図７はこの発明の実施の形態１に係る制御プログラムを示す図である。
【図８】図８はデータベースによって選択されるシーケンスを示す図表である。
【図９】図９はこの発明の実施の形態１に係る制御プログラムの動作を説明するアクテイビイ図である。
【図１０】図１０はシーケンスを示すフローチャートである。
【図１１】図１１はシーケンスを示すフローチャートである。
【図１２】図１２はシーケンスを示すフローチャートである。
【図１３】図１３は関数の動作を示すフローチャートである。
【図１４】図１４はシーケンスを示すフローチャートである。
【図１５】図１５はシーケンスを示すフローチャートである。
【図１６】図１６はシーケンスを示すフローチャートである。
【図１７】図１７はシーケンスを示すフローチャートである。
【図１８】図１８はこの発明の実施の形態２に係る制御システム及び制御プログラムを適用した画像形成装置としてのプリンタシステムを示す概念図である。
【図１９】図１９はデータベースを示す図である。
【図２０】図２０はデータベースにアクセスするためのメッセージフォーマットを示す図である。
【図２１】図１２は従来のプリンタシステムを示す概念図である。
【符号の説明】
【０１０９】
１：プリンタ、２：コントローラ、３：画像出力装置、４：通信線、６：仕様データベース。
【図１】
2005084818.tif 000003
【図２】
2005084818.tif 000004
【図３】
2005084818.tif 000005
【図４】
2005084818.tif 000006
【図５】
2005084818.tif 000007
【図６】
2005084818.tif 000008
【図７】
2005084818.tif 000009
【図８】
2005084818.tif 000010
【図９】
2005084818.tif 000011
【図１０】
2005084818.tif 000012
【図１１】
2005084818.tif 000013
【図１２】
2005084818.tif 000014
【図１３】
2005084818.tif 000015
【図１４】
2005084818.tif 000016
【図１５】
2005084818.tif 000017
【図１６】
2005084818.tif 000018
【図１７】
2005084818.tif 000019
【図１８】
2005084818.tif 000020
【図１９】
2005084818.tif 000021
【図２０】
2005084818.tif 000022
【図２１】
2005084818.tif 000023