(57)【要約】【課題】  プリンタドライバなどの機器制御アプリケーションにおいて、機器仕様に適合した制御スクリプトの生成を可能とする。【解決手段】  機器仕様情報を格納した周辺機器と、制御スクリプトの各種テンプレートを格納したスクリプトＤＢと、制御装置からなる周辺機器制御システムであって、制御装置は、周辺機器から取得した機器仕様情報と、スクリプトＤＢから取得したスクリプトデータに基づき、制御する機器に適合したスクリプトを生成する構成とする。【選択図】  図１
2007034702.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器を制御するための機器制御スクリプトのテンプレートを複数格納したデータベースと、
機器仕様情報を備えた周辺機器と、
前記データベースと前記周辺機器に接続し、前記周辺機器を制御する制御装置からなる周辺機器制御システムであって、
前記制御装置は、前記周辺機器から機器仕様情報を取得する取得手段と、
前記取得手段により取得した機器仕様情報に基づいて、前記データベースから前記周辺機器を制御するための機器制御スクリプトのテンプレートを抽出する抽出手段とを有し、
前記取得手段により取得した機器仕様情報と、前記抽出手段により抽出した機器制御スクリプトのテンプレートから、前記周辺機器の機器仕様に適合した機器制御スクリプトを生成することを特徴とする周辺機器制御システム。
【請求項２】
前記データベースは、ネットワーク上の所定のサーバに格納されていることを特徴とする請求項１に記載の周辺機器制御システム。
【請求項３】
前記データベースは、前記周辺機器内に格納されていることを特徴とする請求項１に記載の周辺機器制御システム。
【請求項４】
前記制御装置は、前記周辺機器外に配置され、前記周辺機器をリモートから制御することを特徴とする請求項１から請求項３のいずれかに記載の周辺機器制御システム。
【請求項５】
前記制御装置は、前記周辺機器内に配置され、前記周辺機器をローカルで制御することを特徴とする請求項１から請求項３のいずれかに記載の周辺機器制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺機器装置の制御システムに関し、特に、周辺機器の仕様に適合した制御を行うための制御装置、および、制御方法に関する。
【背景技術】
【０００２】
従来、周辺機器の機器制御システムにおいて、機器仕様に適合した制御を行うための方法として、以下のような方法が考案されている。
【０００３】
特開２０００−１３７５９３号公報では、周辺機器から取得した機器仕様情報に応じて、周辺機器を制御するための制御プログラムのユーザーインターフェースを自動構成するという方法が記載されている。
【０００４】
周辺機器を制御する制御プログラムの一例として、プリンタを制御するプリンタドライバに上述の方法を適用した場合、プリンタが有している機能に応じて、プリンタドライバのユーザーインターフェース上で選択できる機能を切り替えることができるので、プリンタドライバをプリンタの仕様に応じた構成にすることができる。
【０００５】
又、別の従来例としては、特許文献２をあげることが出来る。
【特許文献１】特開２０００-１３７５９３号公報
【特許文献２】特開２００１-２８２６６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の方法では、周辺機器を制御するための一連の制御手順自体は同じで、制御手順に含まれる制御コマンドのパラメータのみが機器や機器構成によって異なる場合は有効であるが、機器や機器の構成によって一連の制御手順（制御スクリプト）自体が大きく異なる場合は、これだけでは解決できない問題が生じていた。
【０００７】
例えば、制御手順（制御スクリプト）が大きく異なる複数のプリンタに対応したプリンタドライバを作成するような場合、一つのプリンタドライバの中に、対応する機種分の制御手順（制御スクリプト）を盛り込まなければならず、プリンタドライバのプログラムが膨大になってしまうという問題が生じていた。
【０００８】
また、プリンタ側の制御手順が変更された場合、プリンタドライバもこれに追従して更新しなければならなかった。
【０００９】
本発明は上述の問題点を解決するためになされたもので、本発明の目的の一つは、周辺機器の機器仕様に適合した制御スクリプトを生成することが可能な周辺機器制御システムを提供することである。
【００１０】
また本発明の他の目的は、複数の制御手順の異なる周辺機器を一つの制御装置で制御する際に、制御装置側の処理や資源を軽減することが可能な周辺機器制御システムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、請求項１に記載の周辺機器制御システムは、周辺機器を制御するための機器制御スクリプトのテンプレートを複数格納したデータベースと、機器仕様情報を備えた周辺機器と、前記データベースと前記周辺機器に接続し、前記周辺機器を制御する制御装置からなる周辺機器制御システムであって、前記制御装置は、前記周辺機器から機器仕様情報を取得する取得手段と、前記取得手段により取得した機器仕様情報に基づいて、前記データベースから前記周辺機器を制御するための機器制御スクリプトのテンプレートを抽出する抽出手段とを有し、前記取得手段により取得した機器仕様情報と、前記抽出手段により抽出した機器制御スクリプトのテンプレートから、前記周辺機器の機器仕様に適合した機器制御スクリプトを生成することを特徴とする。
【００１２】
請求項２に記載の周辺機器制御システムは、請求項１に記載の周辺機器制御システムにおいて、前記データベースは、ネットワーク上の所定のサーバに格納されていることを特徴とする。
【００１３】
請求項３に記載の周辺機器制御システムは、請求項１に記載の周辺機器制御システムにおいて、前記データベースは、前記周辺機器内に格納されていることを特徴とする。
【００１４】
請求項４に記載の周辺機器制御システムは、請求項１から請求項３のいずれかに記載の周辺機器制御システムにおいて、前記制御装置は、前記周辺機器外に配置され、前記周辺機器をリモートから制御することを特徴とする。
【００１５】
請求項５に記載の周辺機器制御システムは、請求項１から請求項３のいずれかに記載の周辺機器制御システムにおいて、前記制御装置は、前記周辺機器内に配置され、前記周辺機器をローカルで制御することを特徴とする。
【発明の効果】
【００１６】
以上説明したように、本実施形態における周辺機器制御システムでは、制御装置１において、制御対象の周辺機器から機器仕様情報を取得し、取得した機器仕様情報に基づいてスクリプトＤＢ３からスクリプトデータを取得してスクリプトを生成するようにしたので、周辺機器によって対応しているスクリプトがそれぞれ異なる場合でも、制御装置において必ず制御対象の周辺機器の仕様に適合したスクリプトを生成することができる。
【００１７】
また、制御装置において、予め周辺機器を制御するためのスクリプトを用意しておく必要が無いため、特に一つの制御装置で複数の周辺機器を制御するような場合に、制御装置側の資源を最小限に抑えることができる。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の詳細を実施例の記述に従って説明する。
【実施例１】
【００１９】
以下に、図面を参照して本発明を詳細に説明する。
【００２０】
[システム構成]
図１は、本発明が適用される周辺機器制御システムの構成例を示す図である。
図示するように、ネットワーク上に、制御装置１、周辺機器２、スクリプトデータベース（スクリプトＤＢ）が接続し、制御装置１は、ネットワークに接続する所定の周辺機器２を制御する。
【００２１】
スクリプトＤＢ３は、周辺機器２を制御するための制御スクリプトの各種テンプレートを収めたデータベースで、制御装置１は、スクリプトＤＢ３から取得したテンプレートを用いて周辺機器２を制御するための制御スクリプトを生成し、生成した制御スクリプトを周辺機器２に送信して周辺機器２を制御する。
【００２２】
周辺機器２は、プリンタやスキャナなどを示し、各機器は、機器の仕様情報を表す機器仕様情報を保持している。
【００２３】
[制御装置の構成]
図２は、本実施形態における制御装置１の機能構成を示すブロック図である。
【００２４】
図示するように、制御装置１は、周辺機器制御部１０、機器仕様情報取得部１１、スクリプト取得部１２、記憶部１３、ユーザーインターフェース部１４、スクリプト送信部１５からなる。また、周辺機器２は、機器内に機器仕様情報２０を保持している。
【００２５】
機器仕様情報部１１は、周辺機器２から機器仕様情報２０を取得し、取得した機器仕様情報２０を記憶部１３に格納する。
【００２６】
スクリプト取得部１２は、スクリプトＤＢ３から所定のスクリプトデータ３０を取得し記憶部１３に格納する。
【００２７】
ユーザーインターフェース部１４は、周辺機器２を制御するためのユーザからの指示を入力したり、指示を入力するための操作画面を表示したりする。
【００２８】
スクリプト送信部１５は、周辺機器制御部１０で生成されたスクリプトを周辺機器２に送信する。
【００２９】
周辺機器制御部１０は、例えばホストコンピュータ上で作成された文書を所定のスクリプトにしてプリンタに送信し印刷を行うプリンタドライバなど、周辺機器を制御するための制御部で、機器仕様情報取得部１１、スクリプト取得部１２、ユーザーインターフェース部１４、スクリプト送信部１５に接続し、これらを制御することによって、周辺機器２を制御する。
【００３０】
[機器仕様情報]
図３は、周辺機器に格納されている機器仕様情報２０の内容の一例を示す。
【００３１】
機器仕様情報２０は、各行が１つの情報単位（レコード）を表しており、複数のレコードの集合で構成されている。
【００３２】
各レコードは、属性名と属性値から構成されている。
【００３３】
「機器名」は、周辺機器２を特定する名称を示す。
【００３４】
「Version」は、周辺機器２のファームウェアのバージョンを示す。
【００３５】
「サポートしている機能タイプ」は、周辺機器２がサポートしている機能のタイプを示し、機能タイプとは、例えば、プリント機能、スキャン機能、コピー機能など、その周辺機器が実現可能な機能を示す。
【００３６】
「サポートしている設定」は、周辺機器２を制御する際に設定可能な設定項目のリストを示し、例えば、周辺機器２がプリント機能をサポートしている場合、「部数」「給紙口」「ソート」「ステイプル」「両面」など、プリント機能において設定可能な項目を示す。
【００３７】
なお、設定可能な項目は、同一の機種、同一のVersionであっても、例えば、プリンタの場合、プリンタに装着されているフィニッシャーの違いなど、機器構成の違いによって異なる場合もある。
【００３８】
「サポートしている部数」以下のレコードは、「サポートしている設定」で列挙した各設定項目について、それぞれの設定範囲を示すレコードである。
【００３９】
なお、各設定範囲についても、同一の機種、同一のVersionであっても、機器構成の違いによって異なる場合もある。
【００４０】
図8は、制御装置１において、周辺機器２から機器仕様情報２０を取得する際のフローを示す。
【００４１】
機器仕様情報取得部１１は、まず、情報を取得する周辺機器に接続する（ステップ８０１）。
【００４２】
続いて、接続した周辺機器に機器仕様情報２０の送信を要求する（ステップ８０２）。
【００４３】
周辺機器から機器仕様情報２０を受信すると、受信した機器仕様情報２０を記憶部１３に格納して（ステップ８０３）、一連の処理を終える。
【００４４】
なお、上述の機器仕様情報取得処理は、周辺機器制御部１０から機器仕様情報取得部１１に情報取得指示があった場合のみ実行するだけでなく、周辺機器側の機器構成の変化などにより機器仕様情報が更新された場合に、周辺機器側からその旨制御装置に通知し、この通知をトリガとして機器仕様情報取得部１１において機器仕様情報取得処理を実行するようにしても良い。
【００４５】
[スクリプトデータ]
図４は、スクリプトＤＢ３に格納されている機器毎のスクリプトデータの一例を示す。
【００４６】
スクリプトデータ３０は、周辺機器の所定の機能を制御するための制御スクリプトのテンプレートの集合体で、スクリプトＤＢ３には、これらのスクリプトデータ３０が、機器の種類やバージョン、機能タイプごとに複数格納されている。
スクリプトデータ３０は、スクリプトデータの集合体を識別するためのスクリプトデータ識別情報３０１と、スクリプトデータ本体３０２から構成される。
【００４７】
スクリプトデータ識別情報３０１には、「機器名」「Version」「機能タイプ」が格納されている。
【００４８】
スクリプトデータ本体３０２には、例えば「機能タイプ」が「Print」の場合、「Print Jobのメイン・スクリプト」「Print Jobのサブ・スクリプト」から格納されている。
【００４９】
図５に、スクリプトデータ本体３０２に格納されているスクリプトデータの例５０１、５０２を示す。「ScriptID1. プリントジョブを投入する」以下に記載されているスクリプトが「Print Jobのメイン・スクリプト」を示し、「ScriptID1-1. 部数を指定する」以下に記載されているスクリプトが、「Print Jobのサブ・スクリプト」を示す。
【００５０】
メイン・スクリプトは、所定の機能を実現するための一連の手順を示したスクリプトで、サブ・スクリプトは、各制御項目に値を設定するためのスクリプトの集合体である。
【００５１】
なお、スクリプトデータ５０１、５０２は、同じ制御を行うスクリプトであっても、周辺機器やバージョンによってスクリプトが異なる例を示していて、例えば、メイン・スクリプト(ScriptID1)を比較すると、スクリプトデータ５０２には、スクリプトデータ５０１には存在しないスクリプト（DocumentStart、SetDocument）が存在する。また、サブ・スクリプトを比較すると、給紙口を指定するスクリプト(ScriptID 1-2)で使用されているコマンドが、５０１ではSetJob、５０２ではSetDocument、といったように異なっている。
【００５２】
図９は、制御装置１において、スクリプトＤＢ３からスクリプトデータ３０を取得する際のフローを示す。
【００５３】
スクリプト取得部１２は、まず、スクリプトを取得するスクリプトＤＢ３に接続する（ステップ９０１）。
【００５４】
続いて、接続したスクリプトＤＢ３に、スクリプトデータを特定するための情報を送信し、スクリプトデータ３０の送信を要求する（ステップ９０２）。
【００５５】
ここで、スクリプトデータを特定するための情報とは、スクリプトＤＢ３に格納されている複数のスクリプトデータの中から、取得したい所望のスクリプトデータを特定するための情報で、例えば、スクリプトＤＢ３に格納されているスクリプトデータが図４に示す構成で格納されている場合、スクリプト識別情報３０１（機器名、Version、機能タイプ）がこれに相当する。スクリプトＤＢ３は、制御装置１から受信したスクリプト識別情報３０１に基づいて、制御装置１に送信するスクリプトデータを特定する。
【００５６】
再びフローに戻って説明する。
【００５７】
スクリプト取得部１２は、スクリプトＤＢ３からスクリプトデータを受信すると、受信したスクリプトデータ３０を記憶部１３に格納して（ステップ９０３）、一連の処理を終える。
【００５８】
[印刷制御システムへの適用]
次に、周辺機器２をプリンタ、制御装置１をホストコンピュータ、周辺機器制御部１０をプリンタドライバとして、本発明の制御システムを、ホストコンピュータ上で作成された文書をプリンタで印刷する印刷制御システムに適用した場合の例について説明する。
【００５９】
図７は、制御装置１のユーザーインターフェース部１４に表示される画面の例を示す。図１０、図１１は、制御装置１における処理の流れを示すフローチャートである。以下これらの図を用いて詳細に説明する。
【００６０】
制御装置１において印刷処理が起動されると、周辺機器制御部１０は、ユーザーインターフェース部１４に、印刷先のプリンタを選択するためのプリンタ選択画面７０１を表示して（ステップ１００１）、ユーザから指示が入力されるのを待機する（ステップ１００２）。
【００６１】
画面７０１でユーザがプリンタを選択し「ＯＫ」キーを押下すると、周辺機器制御部１０は、選択された印刷先のプリンタの機器仕様情報が記憶部１３に既に格納されているかどうかを確認する（ステップ１００３）。なお、「キャンセル」キーが押下された場合は、この時点で処理を終える。
【００６２】
ステップ１００３で、記憶部１３に該当する機器仕様情報が存在しなかった場合、周辺機器制御部１０は、機器仕様情報取得部１１に印刷先のプリンタの機器仕様情報を取得するように指示し、機器仕様情報取得部１１において、印刷先のプリンタから機器仕様情報を取得する（ステップ１００４）。なお、機器仕様情報取得処理は、前述の図８のフローチャートで説明したため説明を割愛する。
【００６３】
ステップ１００３で、記憶部に該当する機器仕様情報が存在した場合、また、ステップ１００４で印刷先のプリンタから機器仕様情報を取得し終えると、続いて、ユーザーインターフェース部１４に、プリント設定を入力するためのプリント設定画面７０２を表示して（ステップ１００５）、ユーザから指示が入力されるのを待機する。
【００６４】
ここで、プリント設定画面７０２には、印刷先のプリンタの機器仕様情報を基に、設定可能な設定項目一覧と、各項目の設定範囲一覧を表示する。
【００６５】
例えば、プリンタから取得した機器仕様情報が図３に示す情報であった場合、プリント設定画面には、該プリンタで設定可能な、部数、給紙口、ソート、ステイプル、両面といった設定項目およびそれぞれの設定範囲を表示する。
【００６６】
また、ユーザが設定したい項目を指定するためのチェックボックスと、設定値の入力欄を表示する。
【００６７】
画面７０２でユーザが設定項目を選択し、設定値を入力して「ＯＫ」キーを押下すると、入力された情報が周辺機器制御部１０に通知され、続いてスクリプト生成処理へと移行する。なお、画面７０２で「キャンセル」キーが押下された場合には、ステップ１００１に戻って再びプリンタ選択画面７０１を表示する。
【００６８】
図１１は、周辺機器制御部１０におけるスクリプト生成処理を示すフローチャートである。
【００６９】
スクリプト生成処理では、まず、周辺機器制御部１０は、印刷先のプリンタに該当するスクリプトデータが記憶部１３に既に格納されているかを確認する（ステップ１１０１）。
【００７０】
記憶部１３に該当するスクリプトデータが存在しなかった場合、周辺機器制御部１０は、スクリプト取得部１１にスクリプトデータを取得するように指示し、スクリプト取得部１１において、スクリプトＤＢ３から印刷先のプリンタの仕様に適合したスクリプトデータを取得する（ステップ１１０２）。なお、スクリプトデータ取得処理は、前述の図９のフローチャートで説明したため説明を割愛する。
【００７１】
ステップ１１０１で該当するスクリプトデータが存在した場合、また、ステップ１１０２でスクリプトデータを取得し終えると、続いてサブ・スクリプトの生成処理（ステップ１１０３）へと移行する。
【００７２】
サブ・スクリプトの生成処理では、画面７０２で選択された設定項目に対応するサブ・スクリプトを記憶部１３に格納されているスクリプトデータ３０から抽出し、抽出したサブ・スクリプトに画面７０２で入力された設定値をセットする。
【００７３】
例えば、画面７０２で「部数」＝「３」と設定されていた場合、部数を指定するサブ・スクリプト(ScriptID1-1)を抽出し、“SetJob Copies = <Value>”の<Value>に３をセットして"SetJob Copies = 3"というサブ・スクリプトを生成する。
【００７４】
このようにして画面７０２で選択された全ての設定項目に対応するサブ・スクリプトを生成する（ステップ１１０３〜ステップ１１０４）。
【００７５】
サブ・スクリプトの生成を終えると続いてメイン・スクリプトの生成処理（ステップ１１０５）へと移行する。
【００７６】
メイン・スクリプトの生成処理では、記憶部１３に格納されているスクリプトデータ３０からメイン・スクリプト（ScriptID1）を抽出し、抽出したメイン・スクリプトにステップ１１０３で生成したサブ・スクリプトを埋め込む。埋め込む位置は、サブ・スクリプトの先頭のコマンド（例えばSetJob）と、メイン・スクリプト中の該コマンドが一致する位置に埋め込む。
【００７７】
また、制御装置１内のアプリケーション（不図示）で生成された印字データを、メイン・スクリプト中の所定の位置"Send <Data Page1>"に埋め込む。
【００７８】
印刷先のプリンタに適合したスクリプトデータが、図５の５０１に示すスクリプトデータであった場合、また、プリント設定画面７０２で、「部数」＝「３」、「給紙口」＝「カセット１」が選択されていた場合、このスクリプト生成処理を終えると、図６に示すようなスクリプトが生成される。
【００７９】
このようにして、プリンタに送信するスクリプトを生成し終えると、再び図１０のフローに戻り、生成したスクリプトをプリンタに送信し（ステップ１００８）、一連の処理を終える。
【００８０】
なお、本実施例では、周辺機器２をプリンタ、制御装置１をホストコンピュータ、周辺機器制御部１０をプリンタドライバとして、本発明の制御システムを、ホストコンピュータ上で作成された文書をプリンタで印刷する印刷制御システムに適用した場合の例について説明したが、これに限定されるものではなく、例えば、周辺機器２をスキャナに、周辺機器制御部１０をスキャナドライバに置き換え、スキャン制御システムに適用する適用することも可能である。
【００８１】
さらにまた、本実施例では、スクリプトＤＢ３をネットワークに接続する所定のサーバ上に設ける構成としたが、図１２に示すように、スクリプトＤＢ３を周辺機器２内に設ける構成としても良い。この場合、制御装置１は、周辺機器２に接続するだけで、機器仕様情報とスクリプトデータの双方を取得することができるという効果が得られる。
【００８２】
さらにまた、本実施例では、制御装置１をネットワーク上に設け、周辺機器をリモートから制御する構成としたが、図１３に示すように、制御装置１を周辺機器２Ａ内に設け、制御装置１と周辺機器２Ｂ、スクリプトＤＢ３とをそれぞれローカルＩ／Ｆで接続し、周辺機器２Ｂをローカルで制御する構成としても良い。したがって、コピーやファクシミリのようにローカルＵＩから機器を制御するような制御システムにおいても、本発明を適用することができる。
【図面の簡単な説明】
【００８３】
【図１】本実施形態の周辺機器制御システムの構成例を示す図である。
【図２】本実施形態の周辺機器制御システムの機能構成を示すブロック図である。
【図３】機能仕様情報の内容の一例を示す図である。
【図４】スクリプトデータの一例を示す図である。
【図５】スクリプトのテンプレートの一例を示す図である。
【図６】制御装置１において生成されたスクリプトの一例を示す図である。
【図７】ユーザーインターフェース部に表示される画面の例を示す図である。
【図８】機器仕様情報取得時のフローチャートである。
【図９】スクリプトデータ取得時のフローチャートである。
【図１０】本発明の周辺機器制御システムを印刷制御システムに適用した場合の制御装置１における処理の流れを示すフローチャートである。
【図１１】図１０のフローチャートにおけるスクリプト生成処理を示すフローチャートである。
【図１２】本実施形態の周辺機器制御システムの第二の機能構成を示すブロック図である。
【図１３】本実施形態の周辺機器制御システムの第三の機能構成を示すブロック図である。
【符号の説明】
【００８４】
１  制御装置
２  周辺機器
３  スクリプトＤＢ
１０  周辺機器制御部
１１  機器仕様情報取得部
１２  スクリプト取得部
１３  記憶部
１４  ユーザーインターフェース部
１５  スクリプト送信部
２０  機器仕様情報
３０  スクリプトデータ
【図１】
2007034702.tif 000003
【図２】
2007034702.tif 000004
【図３】
2007034702.tif 000005
【図４】
2007034702.tif 000006
【図５】
2007034702.tif 000007
【図６】
2007034702.tif 000008
【図７】
2007034702.tif 000009
【図８】
2007034702.tif 000010
【図９】
2007034702.tif 000011
【図１０】
2007034702.tif 000012
【図１１】
2007034702.tif 000013
【図１２】
2007034702.tif 000014
【図１３】
2007034702.tif 000015