以下、本発明を具体化した一実施形態を、図1〜図14に従って説明する。図1は、外装ケースを取り外したインクジェット式プリンタの斜視図を示す。また、図2は、プリンタの要部側断面図を示す。
図1に示す電子機器システムとしてのプリンタシステム100は、例えば大判の用紙に記録を実行することができる大型のインクジェットプリンタであるプリンタ10と、プリンタ10による印刷が施されたロール紙Rを巻き取るための巻取り装置30及びプリンタ10によりロール紙Rに印刷されたカラーパッチの色を測定する測色装置40とにより構成される。ターゲット(記録媒体)である用紙としては、ロール紙Rだけでなく単票紙も用いられる。
プリンタ10は、図1に示すように、スタンド11に支持されたプリンタ本体12の後部寄り上部には、ロール紙Rを保持可能なスピンドルと、一対のフランジ状のロール紙押さえとによって構成されているロール紙ホルダ13が設けられている。また、プリンタ本体12の前面の一例として左端寄りの部分には各色のインクカートリッジ14を個別に収容する複数のカートリッジスロットを備えたカートリッジホルダ15が設けられている。
また、プリンタ本体12には約60°の前下がり傾斜姿勢で搬送案内板16が設けられており、この搬送案内板16はロール紙ホルダ13によって保持されているロール紙Rを搬送方向Aとなる前部下方に向けて案内している。また、ロール紙Rの搬送経路の途中位置には、キャリッジ17がプリンタ本体12の幅方向に沿って延びるように架設されたガイド部材18に案内されて主走査方向Bに往復移動可能な状態で設けられている。
図2に示すように、キャリッジ17には記録ヘッド19が保持されており、記録ヘッド19の斜め下方にギャップを隔てて対向する位置にはプラテン20が設けられている。記録ヘッド19とプラテン20との間を通るロール紙Rは、その搬送方向上流に位置する一対のニップローラにより構成される搬送ローラ21と、下流側に位置する一対のニップローラにより構成される排紙ローラ22とが回転駆動されることにより紙送りされるようになっている。カートリッジホルダ15に収容された各色のインクカートリッジ14から供給されたインクがキャリッジ17と共に主走査方向Bに移動中の記録ヘッド19のノズルから吐出されることにより、ロール紙Rのプラテン20上に位置する部分に印刷が施される。そして、ロール紙Rの紙送り動作と、記録ヘッド19による記録動作とが略交互(但し両動作が一部同時に行われる場合も含む。)に行われてロール紙Rへの印刷が施される。なお、単票紙への印刷も、図示しない給紙部から一枚ずつ給送された単票紙に対して記録ヘッド19からインク滴を吐出することで同様に行われる。以下の説明においては、用紙がロール紙Rの場合を例にして説明する。
図1に示すように、プリンタ10においてキャリッジ17より搬送方向A下流側の位置に測色装置40が設けられ、この測色装置40よりさらに下流側の位置には巻取り装置30が設けられている。巻取り装置30は、巻取り用回転軸(図示省略)と、該巻取り用回転軸に一体回転可能に取り付け可能な一対のフランジ状のロール紙押さえ31と、巻取り用回転軸を回転駆動させるための巻取り用モータ32とによって構成されている。印刷後のロール紙Rは巻取り装置30の巻取り用回転軸と共に回転する管材(図示せず)に巻き取られるようになっている。
次に、測色装置40について図面に基づいて具体的に説明する。図3は測色装置の主要な構造を示す斜視図である。
この測色装置40は、測色器41を保持する測色器ホルダ42と、キャリッジ往復動手段43と、押さえ部材44と、回動シフト手段45と、キャリブレーション手段46を構成するホワイトタイル47及びタイルホルダ48とを一体のユニットとして備えることによって基本的に構成されている。
測色器41は、ロール紙Rに記録された測色用パターン(以下、「カラーパッチCP」という)に対して光を照射し、カラーパッチCPに反射した光に基づいて色情報を測定して色校正用の補正値等を得るための測定機器であり、図3に示すような角箱状の外観形状を有している。なお、測色器41には、コネクタ配線49を接続するためのソケット50が設けられている。本実施形態では、コネクタ配線49及びソケット50として、USB(Universal Serial Bus)ケーブル及びUSBコネクタが採用されている。これはUSB通信が有するプラグアンドプレイ機能により、プリンタシステム100の電源オン中のいつでも測色器41を電気的に接続して測色を行うことを可能とするためである。
なお、上記色情報としては、ホワイトバランス、色度、明度(L*)によってカラー値を定義するLabカラーモードに基づく色情報が一例として使用できる。また、モニタ側ではRGBカラーモードが、プリンタ10側ではCMYKカラーモードがそれぞれ使用されるから、測色器41によって測定したLabカラーモードに基づく色情報をそれぞれRGBカラーモードまたはCMYKカラーモードに変換してモニタ側ないしプリンタ10側の補正値を算出して適用することができる。
測色器41をワンタッチで取り付け・取り外しが可能に構成された測色器ホルダ42は、追従機構51と4本(図3では2本のみ図示)のリンク52を有する平行リンク機構53を介して回動自在に連結されている。このため、測色器ホルダ42が平行リンク機構53を介して回動することにより、測色器ホルダ42に保持された測色器41の姿勢の変更が可能に構成されている。また、測色器ホルダ42の下面には、一例としてベアリングによって構成されている4個の走行車輪54が遊転自在に取り付けられている。
なお、上記走行車輪54は、押さえ部材44における押さえ板55に対して長手方向に、すなわち後述する測色パターンの作る列方向C(主走査方向Bに同じ)に延びるように形成されている長穴状の長孔56を跨ぐようにして、押さえ板55の表面(上面)の一部に当接して転がり接触する。
キャリッジ往復動手段43は、測色器ホルダ42によって保持されている測色器41をカラーパッチCPの作る列方向Cに往復移動させる手段である。具体的には、キャリッジ往復動手段43は、追従機構51を介して測色器ホルダ42に連結されて測色器41と共に往復移動する測色用キャリッジ57と、この測色用キャリッジ57を案内する主軸58と副軸59とによって構成されている2本のガイド軸と、測色用キャリッジ57を往復移動させる際の駆動源となるリターンポジション側に配置される測色用キャリッジモータ60とを備えている。さらに測色用キャリッジモータ60の出力軸に取り付けられているピニオンギヤ61と、該ピニオンギヤ61と噛み合う伝達ギヤ62と、伝達ギヤ62と一体の駆動プーリ63と、ホームポジション側に設けられる従動プーリ64と、駆動プーリ63と従動プーリ64との間に巻回され、その一部が測色用キャリッジ57に係止されている無端帯状のタイミングベルト65とを備えている。
追従機構51は、測色器ホルダ42の下面に設けられている走行車輪54が押さえ板55上に常に接地して走行できるようにするための機構で、キャリブレーション手段46を構成するタイルホルダ48と、押さえ板55間の移動を円滑にする役割も有している。具体的には、前述の平行リンク機構53と、加圧用の捩りコイルバネとによって追従機構51は構成されている。
押さえ部材44は、測色時にカラーパッチCPが記録されたロール紙Rの表面を押さえる押圧姿勢(図3の実線位置)をとり、非測色時に上方に跳ね上がってロール紙Rの搬送を可能にする退避姿勢(図3の二点鎖線位置)をとるように回動する部材である。具体的には、一体に設けられる回動軸67を中心にして約90°の範囲に亘って回動する回動レバー68と、この回動レバー68の回動自由端に対して回動ピン69を介して回動自在に接続される上述の押さえ板55と、上記回動レバー68と押さえ板55との間に設けられる押さえ板支持バネと、押さえ板加圧バネ(いずれも図示せず)とを備えることによって押さえ部材44は構成されている。なお、押さえ板支持バネと、押さえ板加圧バネの作用によって、押さえ板55の下面の全面をロール紙Rの表面にしっかり密着させ、この時、押さえ板55には押さえ板加圧バネが元の形状に戻ろうとする反力が作用するからロール紙Rの表面は強い押圧力によって確実に保持されるようになっている。
回動レバー68は、測色パターンの作る列方向Cに長い、湾曲した板状のレバーで、回動基端側に左右外方に突出するように回動軸67が一体に形成されている。また、左右の回動軸67には、約90°の範囲に亘って歯が形成されている扇形ギヤ70が設けられている。押さえ板55は、カラーパッチCPの作る列方向Cに長い平板状の部材で、押さえ板55の上面中央にはカラーパッチCPの作る列方向Cに延びる上述した長孔56が押さえ板55の押圧面(下面)にかけて貫通するように形成されている。
なお、押さえ板55の下面には、長孔56の周囲と、押さえ板55の周囲のみを下方に突出させたにリブが設けられており、リブが複数のカラーパッチCPの互いの離間部である空白部に当たることで、プロファイル作成用の各列のカラーパッチCPに当接することなく、ロール紙Rの表面を押圧することが可能になる。
回動シフト手段45は、押さえ部材44の押圧姿勢と退避姿勢とを切り替えるための手段である。具体的には、駆動源である紙押さえ用モータ71と、この紙押さえ用モータ71の回転を扇形ギヤ70に伝達するためのギヤ輪列72とを備えることによって回動シフト手段45は構成されている。
キャリブレーション手段46は、ホワイトタイル47を保持したタイルホルダ48で構成されている。ホワイトタイル47は非測色時に測色器41のキャリブレーションを実行するためのセラミックス製のタイルである。そして、ホワイトタイル47は着脱可能な状態でタイルホルダ48によって保持されている。また、ホワイトタイル47を保持したタイルホルダ48はカラーパッチCPが記録されたロール紙Rが通る搬送経路側方のキャリッジ往復動手段43のホームポジション領域に設けられている。そして、測色用キャリッジ57がホームポジションに位置する非測色時には、測色器41によってホワイトタイル47の上面を被覆してホワイトタイル47の上面への埃等の付着を防止している。
図4は、このようなプリンタシステム100を備える印刷システムにおける通信に係る電気的構成を示すブロック図である。
印刷システム200は、プリンタシステム100と、プリンタシステム100と通信可能な状態に接続されるホスト装置150とを備える。ホスト装置150は例えばパーソナルコンピュータ等により構成される。ホスト装置150は、例えばプリンタドライバ用のソフトウェアがインストールされて構築された第1プリンタドライバ151を内蔵する。ホスト装置150の通信部152と、プリンタシステム100を構成するプリンタ10の通信部74とが通信ケーブル75介して接続されている。両通信部152,74間の通信には、例えばIEEE1284.4(以下、「D4」と略記する)通信又はUSB通信が採用されている。
プリンタ10は、巻取り装置30及び測色装置40と通信可能に接続されている。ここで、本実施形態の測色装置40は、制御系がそれぞれ異なる測色器41と測色駆動装置80とから構成される。測色駆動装置80は、押さえ部材44の駆動系である回動シフト手段45と、測色用キャリッジ57の駆動系であるキャリッジ往復動手段43とにより構成され、制御対象として測色用キャリッジモータ60と紙押さえ用モータ71とを備える。なお、本実施形態では、プリンタ10が第一機器を構成し、巻取り装置30及び測色駆動装置80が第二機器をそれぞれ構成している。
プリンタ10はUSB通信でホストとして機能するUSBホストコントローラ(以下、「USBホスト81A」という)を有するホスト通信部81を備えている。また、巻取り装置30、測色器41及び測色駆動装置80は、USB通信でデバイスとして機能するUSBデバイスコントローラ(以下、「USBデバイス82A〜84A」という)をそれぞれ有するデバイス通信部82〜84をそれぞれ備えている。プリンタ10のホスト通信部81にはハブ85が接続され、ハブ85にはUSBケーブル86〜88を介して巻取り装置30のデバイス通信部82、測色器41のデバイス通信部83及び測色駆動装置80のデバイス通信部84がそれぞれ接続されている。USB通信において、USBホスト81Aは、USBデバイス82A〜84Aに対してそのデバイスが属する機器クラス(デバイスクラス)を要求する。これに対してUSBデバイス82A〜84Aは機器クラスを応答する。なお、本実施形態では、巻取り装置30及び測色装置40はプリンタ10のオプション機器(付属機器)であり、必要なときにUSBケーブル86〜88を介してプリンタ10に接続する構成となっている。
例えば印刷を所望するユーザがホスト装置150のモニタ150aに表示された画像や文字の印刷を行うべく入力装置162(図5参照)を操作することにより、ホスト装置150がその印刷指示を受け付けると、その印刷対象の画像データや文字データ等は第1プリンタドライバ151に送られる。第1プリンタドライバ151は印刷対象の画像データや文字データ等に基づいてプリンタ10が解析可能な印刷コマンドを用いたデータ形式(印刷コマンド形式)の印刷データ(第一制御データ)を生成し、その印刷データを通信部152,74間の通信を介してプリンタ10に送信する。このとき、ホスト装置150の通信部152は、プリンタ10側の通信部74とのポーリングにより、相手側の機器クラスを要求し、印刷データ(印刷コマンド)を解析可能な「プリンタクラス」(特定クラス)である旨の応答を受信したことを条件に通信を確立する。
例えばホスト装置150とプリンタ10間の通信がUSB通信であるとすると、ホスト装置150側の通信部152であるUSBホストはプリンタ10側の通信部74であるUSBデバイスに対して機器クラスを確認するための情報を要求する。そして、通信部74がプリンタ10に設定されている「プリンタクラス」の旨を応答するので、USBホストはUSBデバイスとの間の通信を確立する。このため、ホスト装置150内の第1プリンタドライバ151が生成した印刷データ(第一制御データ)をプリンタ10に送信することが可能である。
ところで、図4に示すように、本実施形態のプリンタ10は、第2プリンタドライバ89を備え、巻取り装置30及び測色駆動装置80の制御を、印刷コマンドを含む印刷データを用いて行う構成としている。第2プリンタドライバ89は、第1プリンタドライバ151からコマンド生成機能や印刷データ生成機能など必要な一部の機能を転用しこれに必要な他の機能を組み込んで構築された簡易プリンタドライバの構成をとる。本実施形態では、第1プリンタドライバ151及び第2プリンタドライバ89が用いる印刷コマンドとして、例えばシリアルプリンタの標準コマンドであるESC/P(Epson Standard Code for Printer)を採用している。もちろん、他の印刷コマンドを採用してもよい。なお、第2プリンタドライバ89に画像データ処理部161と同様の画像データ処理部を備え、プリンタ10にメモリカード等の記憶媒体を差し込んで入力されたRGB表色系などの画像データを印刷画像データに変換でき、ホスト装置150に接続しなくても印刷が可能な所謂スタンドアロン型プリンタとして構成することもできる。
そして、巻取り装置30及び測色駆動装置80の制御は、第2プリンタドライバ89がESC/Pを用いて行う。そのため、プリンタ10のUSBホスト81Aが巻取り装置30及び測色駆動装置80の各USBデバイス82A,84Aとの通信を確立するためには、USBデバイス82A,84AがUSBホスト81Aからの機器クラスの要求に対して「プリンタクラス」である旨を応答する必要がある。そこで、本実施形態では、図4に示すように、巻取り装置30と測色駆動装置80には機器クラスとして「プリンタクラス」が設定されている。
詳しくは、デバイスIDとして、プリンタの一機種を示す機種番号(例えばプリンタ10の機種番号でもよいし他のプリンタの機種番号でもよい。)が設定されている。USBホスト81AからのデバイスIDの要求に対してその機種番号を応答することで、USBホスト81A側ではその機種番号(デバイスID)から「プリンタクラス」であることが認識される。このため、第2プリンタドライバ89が生成した印刷データ(第二制御データ)を、USBホスト81A、USBデバイス82A,84A間で確立された通信により、巻取り装置30及び測色駆動装置80にそれぞれ転送することが可能となる。
これに対して、印刷データで制御されない測色器41には、図4に示すように、機器クラスとして「HID(ヒューマンインターフェイスデバイス)クラス」が設定されている。なお、本実施形態では、測色器メーカで製造・販売される測色器41内に印刷データを解析できるコマンド解析部を組み込むことが不可能なため、測色器41については印刷データを用いて制御していない。もちろん、測色器41についても印刷コマンド(ESC/P)を解析可能なコマンド解析部を組み込んで、第二機器として構成することも可能である。
図6は、プリンタ10と測色駆動装置80及び巻取り装置30との間で行われる通信に採用された通信プロトコルの階層構造(プロトコルスタック)を示すブロック図である。なお、測色駆動装置80と巻取り装置30とで、プリンタ10との間で行われる通信の通信プロトコルは同じであるので、以下の説明では、第二機器が測色駆動装置80である場合を例にして説明する。
プリンタ10のホスト通信部81は、その下位層から上位層へ向かう順に、USBホストインターフェイス(以下、「USBホストI/F90」という)、USBシステムソフトウェア91、USBプリンタクラスドライバ92、D4(「IEEE1284.4」の略記)パケット処理部93を備え、このホスト通信部81の上位層に第2プリンタドライバ89が位置している。一方、測色駆動装置80のデバイス通信部84(82)は、その下位層から上位層へ向かう順に、USBデバイスインターフェイス(以下、「USBデバイスI/F95」という)、USB論理デバイス96、USBプリンタクラスドライバ97、D4パケット処理部98を備え、このデバイス通信部84(82)の上位層にESC/P解析部124(131)(図5にも示す)が位置している。
なお、この図からも理解できるように、USBプリンタクラスドライバ92,97は、いわゆる「D4パケット」(IEEE1284.4に即したパケット構造)を利用してデータ転送を行う。この理由は、標準的なUSBのデバイスクラスのうちで、プリンタクラスではD4パケットが上位プロトコルとして採用されているからである。
ここで、D4パケットを用いない通信制御スタック(アプリケーション層から物理層に至るまでのアーキテクチャ)が、ホスト装置150やプリンタ10のOS(Operating System)の標準であり、プリンタ10とオプション機器(第二機器)との通信をプリンタクラス以外のデバイスクラスで通信制御スタックを構築しようとすると新規に作る必要がある。これに対し、本実施形態では、ホスト装置150の第1プリンタドライバ151とプリンタ10間の通信用として採用されているD4パケットを用いた既存の通信制御スタックを、プリンタ10とオプション機器間の通信にも利用している。
D4パケットを用いた通信制御スタックは、印刷データを転送することを前提として構築されているため、USBホスト81AがUSBデバイス82A,84Aとの通信を確立する際に、相手側の機器クラスが「プリンタクラス」である必要がある。USBホスト81Aは、相手側の機器にデバイスIDを要求し、そのデバイスIDの内容から機器クラスが「プリンタクラス」であると判断されれば通信を確立する。そのため、測色駆動装置80と巻取り装置30には、前述のように、プリンタの機種を示すデバイスIDが設定されている。なお、各機器を個別に識別するための機器固有のIDも別途設定されている。
図6に示すように、まずUSBホストI/F90とUSBデバイスI/F95間の物理的な通信はUSBケーブル88(86)の接続で行われる。次のレベルではホスト(プリンタ10)のシステムソフトウェア(OSのデバイスドライバレベル)での通信で、ホストとデバイス間には「デフォルトパイプ」という通信の論理接続が確立される。そして、このデフォルトパイプを使ったコントロール転送(双方向通信)により、システム設定の初期化、USBケーブルが接続された時に各種の設定制御のための通信、つまりコンフィギュレーション(設定)を行い、デバイスの使い方の設定情報をホストとデバイス間でやりとりする。これで使用するパイプの本数や、転送モード(バルク転送やインタラプト転送等)などの設定情報をホストがデバイスに要求し、デバイスからの応答で得た設定情報に基づいてホストがデバイスの使用条件を設定する。本実施形態では、「プリンタクラス」の場合はバルク転送が設定され、「HIDクラス」の場合はインタラプト転送が設定される。
次のレベルはアプリケーションのレベルで、USBプリンタクラスドライバ92,97間の論理的な通信線である「パイプ」を、必要に応じて複数本接続する。このパイプは論理的な通信線であり、実際の通信は1本のUSBケーブル88(86)上で時分割で行われる。
さらに次のレベルはD4のアプリケーションのレベルで、D4パケット処理部93,98間の論理的な通信線が確立されると、D4パケット処理部93,98間でD4用通信プロトコルに基づくパケット転送が行われる。
図5は、印刷システムの電気的構成を示すブロック図である。ホスト装置150は、第1プリンタドライバ151、測色ドライバ153、画像表示用のアプリケーション154などを備えている。これらの第1プリンタドライバ151及び測色ドライバ153は、ホスト装置150にプログラムをインストールすることにより構築されている。例えば第1プリンタドライバ151はプリンタメーカにより提供され、測色ドライバ153は測色器メーカにより提供される。第1プリンタドライバ151は、印刷データを生成する印刷データ生成部155、ホスト制御部156及びデータ格納部157を備えている。さらに印刷データ生成部155は、論理座標計算部159、コマンド生成部160及び画像データ処理部161を備えている。また、ホスト装置150には、入力装置162が接続されている。入力装置162は、例えばキーボードやマウス等により構成される。
測色ドライバ153は、測色設定用の設定画面を表示する設定画面表示機能と、カラーパッチパターン設定機能と、カラーパッチ印刷位置設定機能とを有している。アプリケーション154で表示された画像を含む用紙範囲が設定画面上に表示でき、その用紙範囲内の所望エリアにカラーパッチを設定できる機能を有している。
図9は測色ドライバ153がホスト装置150のモニタ150aに表示する測色用の設定画面を模式的に示したものである。この設定画面140は、ホスト装置150の入力装置162を操作して測色ドライバ153を起動させることで表示される。ユーザは入力装置162を操作して設定画面140上に印刷画像IG(イメージ画像)を表示しつつカラーパッチCPの色パターンの選択及び位置の設定を行うことが可能となっている。例えばカラーパッチ選択ウインドウから所望のパターン、色数、色、カラーパッチ列数などを選択するとともに、選択したカラーパッチCPの印刷位置を例えばマウスで指定することで、印刷画像IGのない余白領域など所望位置に設定する。この指定されたカラーパッチの印刷位置は、用紙エリアの基準点に対する相対座標で表される論理座標として、ホスト装置150内の測色ドライバ153に取得される。詳しくは、論理座標は、用紙エリア(1ページに相当する全範囲)の図9における左上コーナーを原点(0,0)とし、紙幅方向(主走査方向B)(図9における右方向)にX座標、反搬送方向(図9における下方向)にY座標をとる相対座標で表される。例えば図9に示すように、印刷画像IGは左上コーナーが座標(Xps,Yps)、右下コーナーが座標(Xpe,Yp e)で表される。
また、カラーパッチCPは、複数の単位パッチDが配列されて構成されるパッチ列PRと、パッチ列PRの列方向両側に所定の間隔を隔てて配置された開始位置マークMSと終了位置マークMEとを備えている。図9に示す二列のカラーパッチCPが配置された例では、各カラーパッチCPはY座標がそれぞれY1,Y2で、パッチ列PRを構成するN個の単位パッチDのX座標が、測色用キャリッジ57(図3参照)のホームポジション側(図9における左側)から順に、(X1,X2,…,Xn-1,Xn)の値で示される。これらのカラーパッチCPに係る論理座標値は、測色用キャリッジ57と一緒に移動する測色器41が各単位パッチDを測色する際の測色点を決めるために用いられる。そのため、単位パッチDの座標は例えばその中心点を示している。
例えばカラーパッチCPのY座標値はロール紙Rを測色位置に位置決めする紙送りの際の目標位置として用いられる。また、カラーパッチCPを構成する各単位パッチDのX座標値は、測色器41の測色点を各単位パッチの中心点に一致させるべく測色用キャリッジ57をパッチ列方向Cに位置決めする際の目標位置として用いられる。
また、パッチ列PRの列方向Cの長さ(以下、「パッチ列長L」という)と、パッチ列PRを構成する単位パッチDの個数(以下、「パッチ数N」という)が分かれば、単位パッチDのピッチ(=L/N)を計算でき、これに加えて先頭の単位パッチDのX座標「X1」が分かれば、他の単位パッチDの測色点は計算できる。そのため、カラーパッチCPに関するデータとして、パッチ列長Lとパッチ数Nの情報が含まれる。そして、測色ドライバ153から第1プリンタドライバ151に、印刷画像IG及びカラーパッチCPの画像データと各論理座標、並びにカラーパッチCPのパッチ列長Lとパッチ数Nの情報が渡される。なお、図9において用紙エリアの搬送方向Aの終端(同図では下端)を示すY座標「Yc」は、例えばロール紙Rを図示しないカッタで切断する際のカット位置を決めるために用いられる。また、測色ドライバ153は、測色器41を制御する測色コマンドを生成し、これを第1プリンタドライバ151に渡す。ここで、入力装置162を用いてホスト装置150に入力するデータが入力値に相当する。
図5に示す第1プリンタドライバ151は、アプリケーション154がモニタ150aに表示した画像及び測色ドライバ153で設定したカラーパッチCPの画像データ及び論理座標データ等に基づき、印刷コマンドを含む印刷データを生成する処理を行う。但し、本実施形態では、プリンタ10の印刷制御だけでなく、巻取り装置30、測色器41及び測色駆動装置80の制御のための指示も印刷データを用いて行う。そのために第1プリンタドライバ151は、印刷データを生成するために前述の論理座標計算部159、コマンド生成部160及び画像データ処理部161を備えている。
コマンド生成部160は、プリンタ記述言語(プリンタ制御コード)を用いてコマンドを生成する。本実施形態では、前述のように、シリアルプリンタ用のプリンタ記述言語としてESC/Pコマンドを採用する。もちろん、プリンタ10がページプリンタであればプリンタ記述言語としてESC/Pageを採用できる。なお、コマンド生成部160が行う処理の詳細については後述する。
論理座標計算部159は、測色用の設定画面140でユーザが入力装置162を操作して入力指定した印刷画像IGやカラーパッチCPなどの印刷エリアを規定する論理座標や、カラーパッチCPの測色点の論理座標などの論理座標情報に基づいて、コマンド生成部160が作成するコマンドに格納すべき値を計算する。計算される値としては、印刷画像やカラーパッチCPの印刷位置までの紙送り量や、測色器41がカラーパッチCPを測色可能な測色位置までの紙送り量、測色用キャリッジ57の測色時の目標位置である動作位置(パッチ列方向Cの測色位置)等が挙げられ、これらが例えば制御対象であるモータの駆動量や目標位置などの値として計算される。
画像データ処理部161は、表示用の画像データから印刷用の画像データへの変換処理を行う。具体的な処理としては、表示用解像度からプリンタ用解像度に変換する解像度変換処理、画像データを例えばRGB表色系からプリンタ10が表現可能なCMYK表色系(ここではシアン、マゼンタ、イエロー、ブラックの各色)に変換する色変換処理、画像データの階調値をプリンタで表現可能な階調値に変えるためのハーフトーン処理や、記録ヘッド19へのデータの出力順序を印刷モード等に応じて決まるインク滴吐出順序に合わせて並び替えるデータ出力順序調整処理(例えばマイクロウィーブ処理等)などが挙げられる。ここで、色変換処理は、色変換テーブルを用いて行われる。ハーフトーン処理としては、いわゆる誤差拡散法やディザ法などの周知の方法を適用できる。上記各処理の内容は周知であるため、これ以上の詳細な説明は省略する。なお、これらの印刷用の画像処理が施された画像データを印刷画像データと呼ぶものとする。
第1プリンタドライバ151は、印刷条件を入力設定するための設定画面をホスト装置150のモニタ150aに表示する機能も有している。ユーザが設定画面において、入力装置162を操作することで印刷条件を設定することができる。印刷条件としては、用紙種、用紙サイズ、カラー/モノクロ、レイアウト(余白設定・縁なし印刷設定等)、印刷モード(例えば高品質印刷モード、高速印刷モード等)などが挙げられる。そして、解像度変換処理、色変換処理、ハーフトーン処理、データ出力順序調整処理などの画像処理は、この印刷条件に基づいた内容で行われる。
第1プリンタドライバ151は、コマンド生成部160が生成した各種コマンドと画像データ処理部161が生成した印刷画像データとを含む印刷データ(ESC/P制御データ)を生成する。ここで、第1プリンタドライバ151が生成する印刷データの構造について説明する。図7は、第1プリンタドライバ151が生成する印刷データPDの構造を示す。なお、以下の説明において、コマンドを示す記号は、実際の印刷コマンドに整合している訳ではなく、説明の便宜上、簡略な記号を使用している。図7に示すように、印刷データPDはヘッダHDとボディBDとからなる。ヘッダHDには、ボディBDのデータサイズ等のヘッダ情報が記述されている。また、ボディBDには、ESC/P制御データSDが格納されている。
図7に示すように、ESC/P制御データSDは、ジョブ開始コード(図7において「JS」で示す)と、ジョブ終了コード(図7において「JE」で示す)の間に、各種制御コマンドや制御コード、印刷画像データ等を格納している。なお、図7では、データとして格納されうるほぼ全ての種類のコマンドやデータを格納した状態で描いているが、実際は、これらのうち一部のコマンドやデータが格納されて印刷データは構成される。
図7に示すように、ESC/P制御データSDには、印刷制御コマンドPCC、印刷画像データPGD、紙送り制御コマンドPFC、巻取制御コマンドWCC、測色駆動制御コマンドCMDC、測色制御コマンドCMCが含まれているが、通常はこのうち一部のコマンドやデータが格納された印刷データのパケットが複数回転送される。その場合、1つのジョブで最初に転送される印刷データ中にジョブ開始コード「JS」が格納され、そのジョブで最後に転送される印刷データ中にジョブ終了コード「JE」が格納される。ESC/P制御データSDは、複数のモード毎に制御コマンドや印刷画像データなどが区分されて格納されている。モードとしては、キャラクタモード、グラフィックモード、リモートモードが用意されている。ESC/P制御データSD中には、これら各モードに移行する制御コードであるキャラクタモード移行コード「MC」、グラフィックモード移行コード「MG」、リモートモード移行コード「MR」がそれぞれ組み込まれている。各モード移行コードに続いて、そのモードで解析対象とされるコマンドが格納されている。
すなわち、キャラクタモード移行コード「MC」に続いて印刷制御コマンドPCCが格納され、グラフィックモード移行コード「MC」に続いて印刷画像データPGD(ヘッド制御データ)が格納されている。印刷制御コマンドPCCには、例えば、ロール紙Rに対する印刷の開始位置/終了位置を指定するページ情報や、記録ヘッド19のノズル数等に応じたロール紙Rの紙送り量を指定する搬送方向位置情報等が含まれる。また、印刷画像データPGD(ラスタデータ)は、記録ヘッド19を駆動制御してインク滴吐出を行わせるためのデータである。このように印刷制御コマンドPCC及び印刷画像データPGDは、プリンタ10の印刷制御のためのデータである。
さらに、リモートモード移行コード「MR」に続いてリモートコマンドRCが格納されている。リモートコマンドRCは、プリンタ10に印刷制御以外の制御を行わせるためにESC/P制御データ中に組み込むことが可能となっている。リモートコマンドRCは、元々、例えばプリンタ10において記録ヘッド19のノズルをクリーニングするためにメンテナンス装置(図示省略)を駆動させたり、印刷動作中に例えば定期的にノズルの目詰まりを防止すべく空吐出(フラッシング)を行わせたりするメンテナンス系の駆動制御を行うために設けられたものである。
本実施形態では、このリモートコマンドRCの機能を利用して、測色装置40及び巻取り装置30の制御を行うコマンドをリモートコマンドRCとして格納させている。すなわち、図7に示すように、リモートモード移行コード「MR」に続いて、紙送り制御コマンドPFC、巻取制御コマンドWCC、測色駆動制御コマンドCMDC、測色制御コマンドCMCなどが格納される。その他にも、前述のクリーニングコマンド、フラッシングコマンド(図示省略)なども格納される。
ここで、紙送り制御コマンドPFCは、測色を行うに当たりロール紙Rを、カラーパッチCPが搬送方向Aにおいて測色器41の測色スポットの位置に一致する測色位置まで搬送させるための紙送りコマンドである。
また、巻取制御コマンドWCCは、巻取り装置30の巻取り用モータ32を制御するためのコマンドである。本実施形態では、測色終了後に、ロール紙Rを次の印刷開始位置に戻しておくため、ロール紙Rをバックフィードさせる際の搬送ローラ21及び排紙ローラ22の逆転駆動に同期させて巻取り装置30を逆転駆動させる際に用いられる。
また、測色装置40を制御するための測色系コマンドは、リモートコマンドRC中において測色モードに移行するための測色モード移行コード「CM」に続いて格納され、図9に示すように、測色モード移行コード「CM」に続いて測色駆動制御コマンドCMDCと測色制御コマンドCMCが格納されている。測色モードでは、測色駆動制御コマンドCMDCと測色制御コマンドCMCが解析対象とされる。
測色駆動制御コマンドCMDCは、測色装置40の紙押さえ用モータ71及び測色用キャリッジモータ60を制御するためのコマンドである。また、測色制御コマンドCMCは、測色器41を制御するためのコマンドであり、例えば測色器メーカで使用されている制御コードで記述されており、測色ドライバ153から渡されるものである。なお、図7では省略しているが、モード毎のコマンドの最後にモードエンドコード(図示省略)が格納されている。
ホスト制御部156は、第1プリンタドライバ151における制御を司り、各部159〜161への印刷データ生成のための指示や、印刷条件設定画面の表示制御、印刷データをプリンタ10へ送信するための通信制御(送信指示)、測色器41からの測色データに基づいて色条件の適切性の判定及び色補正値の設定などを行う。データ格納部157は、生成された印刷データなどを送信前に一時格納したり、測色器41から受信した測色データを判定や演算処理等を行う前に一時格納したりするデータ格納領域である。第1プリンタドライバ151が生成した印刷データは、ホスト制御部156の指示によりホスト装置150の通信部152から通信部74を経てプリンタ10へ順次転送される。
図5に戻って、次にプリンタシステム100の電気的構成について説明する。プリンタシステム100は、前述のようにプリンタ10、巻取り装置30、測色装置40を備え、測色装置40はさらに測色駆動装置80と測色器41とから構成されている。図4で説明したように、プリンタ10のホスト通信部81はハブ85及び3本のUSBケーブル86〜88を通じて3つの装置30,41,80のデバイス通信部82〜84に接続されている。
図5に示すように、プリンタ10は、ESC/P解析部101、第2プリンタドライバ89(制御ドライバ)、メモリ102(イメージバッファ)、制御部103、各駆動回路104〜106、記録ヘッド19、CRモータ107、PFモータ108、及びエンコーダ109、紙検出センサ110、紙幅センサ111及びリニアエンコーダ112を備える。また、制御部103は、ヘッド制御部113、キャリッジ制御部114及び紙送り制御部115を備える。
ここで、第2プリンタドライバ89は、簡易プリンタドライバであり、第1プリンタドライバ151と同様にESC/Pの印刷データを生成する機能を有している。第2プリンタドライバ89は、既存の第1プリンタドライバ151を利用してその一部の機能を有するものとして作成されたものであり、リモートコマンド解析部116、コマンド生成部117及び座標計算部118を備えている。但し、第2プリンタドライバ89が生成する印刷データは印刷に使用するものではなく、測色動作及び巻取り動作の制御に使用するものである。
なお、ESC/P解析部101、第2プリンタドライバ89及び制御部103は、例えばCPU、ASIC(Application Specific IC(特定用途向けIC))、ROM、RAM等により構成されている。本例では、ESC/P解析部101がASICによりハードウェアで構成され、第2プリンタドライバ89及び制御部103は、CPUがROMに記憶されたプログラムを実行して実現されるソフトウェアにより構成されている。もちろん、これらの全てがソフトウェアにより構成されていてもよいし、集積回路(例えばASIC等のカスタムIC)等のハードウェアにより構成されてもよいし、さらにはソフトウェアとハードウェアとの協働(この場合、任意の組み合わせを選択可能。)により構成されていてもよい。
ESC/P解析部101は、印刷データ(ESC/P制御データ)を解析するためのものであり、印刷データ中にモード移行コードを検出すると、そのコードで指定されたモードに移行する(つまりモードに応じた解析モジュールを起動する)。モードには、キャラクタモード、グラフィックモード、リモートモードの3つがある。モード毎に解析対象とされるコマンドが決められており、そのモード毎に設定された解析対象のコマンドを解析してそのときのモードに応じた転送先に送る。例えばキャラクタモードであれば印刷制御コマンドPCCを解析して制御部103に送る。また、グラフィックモードであれば印刷画像データPGDを解析してメモリ102に送る。さらにリモートモードであればリモートコマンドを解析して第2プリンタドライバ89に送るようになっている。この場合、各モードで解析対象以外のコマンドは読み捨てられる。
以下、ESC/P解析部101の解析処理内容を詳細に説明する。ESC/P解析部101は、図7に示す印刷データPD(ESC/P制御データ)を解析する。ESC/P解析部101は、印刷データPDのボディBD中のESC/P制御データSD中にモード移行コードがあると、そのコードで指定されたモードに移行する。モード毎に解析対象とすべきコマンドが切り換えられ、そのモードで扱うことのできるコマンドのみ解析し、そのモードで扱わないコマンドやデータは読み捨てる。すなわち、キャラクタモード移行コード「MC」があるとキャラクタモードへ移行し、印刷制御コマンドPCCのみ解析してそれを制御部103に送り、それ以外のデータ(コマンド等)は読み捨てる。また、グラフィックモード移行コード「MC」があるとグラフィックモードへ移行し、印刷画像データPGDのみ解析してそれをメモリ102に転送し、それ以外のデータは読み捨てる。さらに、リモートモード移行コード「MR」があるとリモートモードへ移行し、リモートコマンドRCのみ解析してそれを第2プリンタドライバ89に送り、それ以外のデータは読み捨てる。
詳しくは、ESC/P解析部101は、キャラクタモータ移行コードMCがあると、キャラクタモードに移行し、印刷制御コマンドPCC(図7参照)を解析する。解析の結果、印刷制御コマンドPCC(例えばアスキーコード等のキャラクタコードを含む)があれば制御部103に送る。制御部103は、キャラクタジェネレータ(図示省略)でキャラクタコードをイメージデータに変換した後、メモリ102に格納する。ヘッド制御部113はメモリ102から1パス分(キャリッジ17の主走査方向Bへの1回の駆動分)ずつ読み込んだイメージデータ(ラスタデータ)に基づきインク吐出タイミング信号に同期させて記録ヘッド19を駆動させ、キャリッジ17の主走査方向Bへの移動途中の所定のタイミングで記録ヘッド19のノズルからインク滴を吐出させる。また、制御部103は、キャリッジ制御部114にキャリッジ駆動コマンド(以下、「CR駆動コマンド」という)を送るとともに、紙送り制御部115に紙送りコマンドを送る。
一方、ESC/P解析部101は、グラフィックモード移行コードMGがあると、グラフィックモードに移行し、印刷画像データPGD(図7参照)を解析する。解析の結果、印刷画像データPGDがあればメモリ102に送る。制御部103は、メモリ102から1パス分ずつ読み込んだ印刷画像データPGDに基づきキャリッジ17のその1パスにおける始動位置・停止位置を算出し、次のパスのキャリッジ起動時期になると、キャリッジ制御部114にCR駆動コマンドを送り、キャリッジ17の起動を指示する。また、制御部103は、前回のパスの印字が終了後、紙送り開始時期になると、紙送り制御部115に紙送りコマンドを送り、紙送り動作を指示する。なお、ここでいう紙送りとは、給紙、印刷動作中の紙送り(狭義)、排紙を含む。
そして、紙送り制御部115は紙送りコマンドに基づいて駆動回路106を介してPFモータ108を駆動させ、指示された送り量だけロール紙Rの紙送りを行う。ロール紙Rが次の印刷位置に送られると、キャリッジ制御部114がCR駆動コマンドに基づいて駆動回路105を介してCRモータ107を駆動させ、記録ヘッド19を主走査方向Bに1パス動作させる。この1パスの過程で、ヘッド制御部113は、印刷画像データPGDに基づいて駆動回路104を介して記録ヘッド19を駆動し、記録ヘッド19のノズルからインク滴が吐出されることで、印刷画像データPGDに基づく1ラスタライン分の印字(記録)が行われる。
なお、記録ヘッド19には、一ノズルにつき1個ずつ吐出駆動素子が内蔵され、吐出駆動素子が所定波形の印加電圧により駆動されることによりノズルからインク滴が吐出される。吐出駆動素子としては、圧電振動素子、静電駆動素子を採用できる他、インクを膜沸騰させてノズルに連通するインク流路内に発生した泡(バブル)の膨張によりノズルからインク滴を吐出する方式で使用されるインク加熱用のヒータを採用することもできる。
一方、ESC/P解析部101はリモートモード移行コマンドMRがあると、リモートモードに移行し、リモートコマンドRCを解析対象として解析を行うとともに、解析したリモートコマンドRCを第2プリンタドライバ89に送る。すなわち、ESC/P解析部101は、リモートモードにおいてリモートコマンドRCを解析し、紙送り制御コマンドPFC、巻取制御コマンドWCCを第2プリンタドライバ89に送る。また、ESC/P解析部101はリモートコマンドRCを解析し、測色モード移行コード「CM」があると、測色モードに移行して、測色駆動制御コマンドCMDCと測色制御コマンドCMCを第2プリンタドライバ89へ送る。
第2プリンタドライバ89は、リモートコマンドに基づき新たなコマンドを生成し、この新たなコマンドを印刷データの形式で送信することで、測色器41、測色駆動装置80及び巻取り装置30を制御する。ここで、第1プリンタドライバ151で生成されたリモートコマンドは、その値が論理座標系で指定されている。例えば紙送りコマンド「PF(Y)」の値「Y」は、論理座標計算部159により計算された用紙上の論理座標系の値として指定されている。そこで、ロール紙Rがプリンタ10上の基準位置からずれても、ロール紙R上の論理座標で示された対応位置で正確に記録や測色を行うことができるように、第2プリンタドライバ89は、論理座標系から実座標系に変換した値で指定したコマンドを生成する。
ここで、論理座標とは、ロール紙Rが搬送方向Aにも紙幅方向にもずれないことを前提とする設定上の座標系であり、ロール紙Rの所定位置(本例では各ページの左上コーナー)を原点(0,0)(図9参照)として、カラーパッチCPの記録位置や測色位置などを座標で表現する座標系である。
これに対し、実座標系とは、実際のロール紙Rの位置は搬送方向Aにも紙幅方向にも多少ずれることが前提で、ロール紙Rとは別の位置(基準位置)に原点をおき、カラーパッチCPの記録位置や測色位置などを表現する座標系である。よって、実座標系では、ロール紙Rのずれ量が考慮された座標値になるので、実座標系の値を指定したコマンドを生成すれば、ロール紙Rの位置ずれに関係なく、実際の記録位置や測色位置に精度よく一致するように制御対象(例えばロール紙Rや測色用キャリッジ57、測色器41等)の位置制御が可能になる。本実施形態では、実座標系の原点としては、搬送方向Aには図10(a)に示すようにロール紙Rの先端が記録ヘッド19の設定基準位置(例えば最上流ノズル位置)に達したときの位置が原点「0」に採用され、一方、主走査方向B(紙幅方向)には測色用キャリッジ57(又は測色器41)のホーム位置(図11参照)が原点に採用されている。
論理座標系の値から実座標系の値への変換は、ロール紙Rの搬送方向Aにおける位置の計測値、及びロール紙Rの主走査方向B(紙幅方向)における位置の計測値を用いて行われる。そのため、本実施形態のプリンタ10では、ロール紙Rの搬送方向Aの位置及び主走査方向B(紙幅方向)の位置などの用紙位置情報を計測するようにしている。
次に第2プリンタドライバ89でコマンドを生成する際に使用するロール紙Rの位置情報の取得方法について説明する。本実施形態では、ロール紙Rの位置情報として、ロール紙Rの搬送方向Aの位置と、主走査方向Bの位置(ずれ量)と、主走査方向Bの用紙位置に対してその検出位置よりも搬送方向下流側に配置された測色器41の位置における用紙位置のロール紙Rの斜行に起因する主走査方向Bのずれ量とを計測している。
まず、ロール紙Rの搬送方向Aの位置の計測は、紙検出センサ110とエンコーダ109と紙送り制御部115内のカウンタ115Aとを用いて行われる。図5に示すエンコーダ109は、PFモータ108の回転を検出してその回転量に比例した数のパルスを有するエンコーダ信号を出力する。エンコーダ109は例えばPFモータ108の動力伝達経路上のギヤ輪列の回転軸の回転を検出することで間接的にPFモータ108の回転を検出する。紙検出センサ110は、ロール紙Rの搬送経路上の所定位置に位置し、ロール紙Rが給送される過程でその先端を検出する。
図10は、ロール紙Rの搬送方向Aの位置の計測方法を説明する模式側面図である。図10に示すように、紙検出センサ110は、ロール紙Rの搬送経路上において搬送ローラ21よりも少し搬送方向上流側位置(図10では右側位置)に配置され、給送されたロール紙Rの先端を検出する。紙検出センサ110がロール紙Rの先端を検知すると、紙送り制御部115はカウンタ115Aをリセットし、エンコーダ109からのエンコーダ信号のパルス数を計数する。その計数値からロール紙Rの先端が図10(a)に示す記録ヘッド19の設定基準位置(例えば最上流ノズル位置)に達すると、カウンタ115Aをリセットし、ロール紙Rの原点を設定する。以後、この位置を原点としてエンコーダ109からのエンコーダ信号のパルス数を計数する。このとき、PFモータ108の正転駆動時に計数値をインクリメントし、逆転駆動時に計数値をデクリメントすることで、カウンタ115Aの計数値からロール紙Rの搬送方向Aにおける実位置を把握できる。つまり、カウンタ115Aの計数値は、ロール紙Rの先端を「0」としたときの設定基準位置(例えば最上流ノズル位置)におけるy座標の値を示すものとなる。
例えば測色用印刷画像を1ページ分すべて印刷終了した際に図10(b)に実線で示す位置にロール紙Rが配置されていると、このときのロール紙Rの実位置yは、カウンタ115Aの計数値から、y=ypとなる。カラーパッチCPを印刷した際のロール紙Rの実位置は、カラーパッチ印刷時のカウンタ115Aの計数値をメモリ102の所定記憶領域に記憶することで保存されている。例えば印刷データ中のカラーパッチCPである旨の識別子からカラーパッチCPの印刷であることを把握したり、印刷画像データの画像解析によりカラーパッチを識別してその印刷時のカウンタ115Aの計数値から位置を取得したりする。そして、測色器41の搬送方向Aにおける位置は予め設定されていて既知であるので、この測色器41の位置と設定基準位置との距離のカウンタ計数値相当の値Lは既知である。よって、この値Lから、現在の用紙位置ypとカラーパッチCPの位置ycpの差(yp−ycp)を差し引けば、ロール紙Rを印刷終了位置(図10(b)における実線位置)から、カラーパッチCPが測色器41により測色されうる測色位置(図10(b)における二点鎖線)まで搬送する際に必要な紙送り量Δy(=L−yp+ycp)が求められる。
次にロール紙Rの主走査方向B(紙幅方向)の位置、及びロール紙Rの斜行による測色位置(X方向)の紙幅方向のずれ量の計測方法について説明する。ロール紙Rの紙幅方向の位置やずれ量の計測は、紙幅センサ111とリニアエンコーダ112とキャリッジ制御部114内のカウンタ114Aを用いて行われる。
図5に示す紙幅センサ111はキャリッジ17に取着され、キャリッジ17と一緒に主走査方向Bに移動してロール紙Rの紙幅方向両端位置を検出する。一方、リニアエンコーダ112は、キャリッジ17の主走査方向Bへの移動量に比例する数のパルスを有するエンコーダ信号を出力する。キャリッジ制御部114は、キャリッジ17がホーム位置に配置されたときにリセットしたカウンタ114Aの計数値を、キャリッジ17の往動時にインクリメントし、復動時にデクリメントすることで、カウンタ114Aの計数値からキャリッジ17の主走査方向Bの位置(実座標系の位置)を把握する。そして、制御部103は、キャリッジ制御部114に指示してキャリッジ17を印刷中に定期的に主走査方向Bに移動させることで、紙幅センサ111によりロール紙Rの紙幅方向両端位置を検出する。紙幅センサ111がロール紙Rの紙幅方向両端位置を検出したときのカウンタ114Aの計数値からロール紙Rの紙幅方向の位置、つまり紙幅方向の基準位置からのずれ量を把握する。例えばロール紙Rの紙幅方向(主走査方向B)の基準位置からのずれ量Δx1を用いて、ロール紙R上の各ページ内の相対位置(論理座標)で示された所定位置Xo(例えばパッチ記録位置)を、そのずれ量Δx1が加味された実座標系の位置xo(=Xo+Δx1)として座標変換する計算を行うことが可能となる。
また、印刷中に定期的に紙幅センサ111がロール紙Rの両端を検出したときの位置を、ロール紙Rの搬送方向に異なる二位置間で比較計算することで、ロール紙Rの斜行度合いを計測する。例えばロール紙Rの両端検出位置座標がxrとxlであれば、この平均を計算して、ロール紙Rの幅中心のx座標が求まる。そして、例えばロール紙Rの位置y1と位置y2のときのロール紙Rの幅中心のx座標x1,x2を用いて、斜行度合いScは、Sc=(x2−x1)/(y2−y1)により求められる。そして、紙幅センサ111と測色器41のy方向の距離をYLとすると、ロール紙Rの幅方向検出位置に対する測色器41の位置におけるロール紙Rの斜行に起因する位置の紙幅方向のずれ量Δx2は、Δx2=YL・Scにより求められる。そして、ロール紙Rの紙幅方向の基準位置からのずれ量Δx1とこのずれ量Δx2とを加えたずれ量Δx3(=Δx1+Δx2)が、測色器41の位置におけるロール紙Rの紙幅方向のずれ量となる。例えばずれ量Δx3を用いて、ロール紙R上の各ページ内の相対位置(論理座標)で示された所定位置Xo(例えば測色位置)を、そのずれ量Δx3が加味された実座標系の位置xo(=Xo+Δx3)に座標変換する計算を行うことが可能となる。これらの計測値Δx1,Δx3は、第2プリンタドライバ89で座標計算する際に使用される。
次に図5に示す第2プリンタドライバ89が行う処理を詳細に説明する。第2プリンタドライバ89は、ESC/P解析部101からリモートコマンドRCを受け付ける。リモートコマンド解析部116は、リモートコマンドRCが論理座標系から実座標系への値の変換が必要なコマンドであるかどうかを解析する。本例では、リモートコマンド解析部116による解析の結果、紙送り制御コマンドPFC、巻取制御コマンドWCC、測色駆動制御コマンドCMDC等が、論理座標系から実座標系への変換が必要なコマンドであると解析される。
コマンド生成部117は、リモートコマンド解析部116で座標変換が必要と解析された論理座標系の値が格納されたコマンドから、ロール紙Rのプリンタ10に対する位置ずれ量分が加味された実座標系の値が格納されたコマンドを生成する。このコマンド生成に当たり、座標計算部118は、論理座標系の値を実座標系の値へ変換する計算を行う。つまり、前述した座標変換の計算を行う。コマンド生成部117は、第1プリンタドライバ151のコマンド生成部160と基本構成は同様であり、座標計算部118で算出された実座標系の値(測色位置や駆動量等)をコマンドの値として組み込んで、測色系及び巻取り系の制御コマンドを生成する。
座標計算部118は、用紙位置座標計算部118A及びキャリッジ位置座標計算部118Bを備えている。用紙位置座標計算部118Aは、紙送り制御コマンドや巻取制御コマンドのような用紙搬送系のコマンドで指定された論理座標系の値を、実座標系の値に変換する計算を行う。例えば用紙の測色位置までの紙送りを指示する紙送り制御コマンドで値として指定された搬送方向Aの測色位置(測色を行う際の搬送方向Aにおける用紙の位置)から、搬送方向Aにおける実座標系の測色位置を計算する。
例えば紙送り制御コマンド「PF(Yo)」において論理座標系の値Yoを変換する場合、カウンタ115Aの計数値で表現される実座標系の現在値ypreに対し、搬送方向Aへの順送りであれば加算し、反搬送方向への逆送りであれば減算する計算を行って、論理座標系の値Yoを実座標系の値yo(=ypre±Yo)に変換する。この場合、コマンド生成部117により実座標系の紙送り制御コマンドは「PF(yo)」として生成される。そして、紙送りを行ってカウンタ115Aの計数値がyoに達した位置で停止すれば、ロール紙Rは、論理座標で指定された値Yoの位置に配置される。また、巻取制御コマンド「PWpre(Yo)」の論理座標系の値を実座標系の値へ変換する場合も同様であり、実座標系の巻取制御コマンド「PWpre(yo)」として生成される。この場合、巻取制御は逆送りだけなので、実座標系の値yoは、yo=ypre−Yoとなる。
また、キャリッジ位置座標計算部118Bは、測色用キャリッジ57のX方向(パッチ列方向C)における測色位置(パッチ位置)までの動作を指示するコマンドでその動作位置(目標位置)を指定する論理座標系の値を、実座標系の値に変換する計算を行う。つまり、コマンドにおいて論理座標系で指定されたパッチ列方向Cの測色位置(測色を行うべき測色用キャリッジのX方向における位置)から、実座標系の測色位置を計算する。
例えば測色駆動制御コマンド「CCR(Xo)」において論理座標系の値Xoを変換する場合、メモリ102の所定領域に記憶された前述のずれ量Δx3(=紙幅方向のずれ量Δx1と斜行起因のずれ量Δx2の総和)を用いて、実座標系の値xo(=Xo+Δx3)を計算する。ここでΔx3は、X方向へずれているときにプラス、反X方向へずれているときにマイナスの値をとる。この場合、コマンド生成部117により実座標系の測色駆動制御コマンドは「CCR(xo)」として生成される。そして、測色動作のために測色用キャリッジ57を駆動しその位置を計測する後述のカウンタ125Aの計数値が、値xoに達したときに停止させることで、測色用キャリッジ57の動作位置を、X方向において測色器41の測色光スポットが測色対象の単位パッチDの中心部と一致するように位置決めすることができる。
また、本例の場合、印刷画像やカラーパッチCPの印刷位置を決める際にも、ヘッド制御部113が、紙幅センサ111の検出結果に基づき得られたロール紙Rの紙幅方向のずれ量Δx1を加味して、主走査方向Bにおける印刷位置の位置補正を行っている。よって、ロール紙Rが紙幅方向に位置ずれしても、ロール紙R上の相対位置で設定された論理座標どおりの位置に印刷画像やカラーパッチCPを印刷することができる。そして、この位置補正されたカラーパッチCPの印刷位置に合わせて、測色用キャリッジ57のX方向における測色位置が、測色駆動制御コマンド「CCR(Xo)」の論理座標系から実座標系への値の変換により補正されるので、印刷位置が調整された各単位パッチDを測色する測色位置の位置精度を上げることができる。なお、紙幅センサ111と測色器41との間の搬送方向Aにおける距離が比較的短く斜行の影響を無視できる場合は、ずれ量Δx3に替えて、ずれ量Δx1を採用することもできる。
ここで、論理座標系から実座標系への変換前後での値の次元は異なってもよい。つまり、「位置→位置」、「駆動量→駆動量」、「搬送量→搬送量」のような同次元の変換でもよいし、「位置→駆動量」、「位置→駆動量」、「位置→搬送量」、これらの逆の変換などのような異なる次元への変換でもよい。
このように構成されたプリンタ10のホスト通信部81には、前述のようにハブ85を介して測色器41、測色駆動装置80、巻取り装置30の各デバイス通信部82〜84がUSBケーブル86〜88を介して接続されている。
測色器41は、デバイス通信部83の他、コマンド解析部121、測色制御部122及び測色部123を備えている。なお、測色部123は、測色光を発光する発光部と、測色光がカラーパッチCPの各パッチDで反射した反射光を受光する受光部とを有する。測色部123が取得した測色データ(測色結果)は、測色制御部122からUSB通信によりプリンタ10に送られ、さらにホスト装置150の第1プリンタドライバ151に送信されるようになっている。
また、測色駆動装置80は、デバイス通信部84の他、ESC/P解析部124、測色駆動制御部125、駆動回路126,127、紙押さえ用モータ71、測色用キャリッジモータ60及びエンコーダ130を備えている。測色駆動制御部125は制御コマンドに基づいて駆動回路126を介して紙押さえ用モータ71を駆動制御して、押さえ部材44による、ロール紙Rの保持/保持開放のための回動動作を行わせる。また、測色駆動制御部125は測色用キャリッジ57の位置をエンコーダ130からのパルス数を計数するカウンタ125Aの計数値から把握している。測色駆動制御部125は、ロール紙Rが測色位置に搬送された後、制御コマンドに基づいて駆動回路127を介して測色用キャリッジモータ60を駆動して測色用キャリッジ57を測色のための動作位置に移動させる。
巻取り装置30は、デバイス通信部82の他、ESC/P解析部131、巻取り制御部132、センサ133、駆動回路134及び巻取り用モータ32を備えている。巻取り制御部132は、センサ133からロール紙Rの弛みを検知した信号を入力すると、駆動回路134を介して巻取り用モータ32を正転駆動させるとともに、弛みが検知されなくなると巻取り用モータ32の駆動を停止させる。これにより巻取り装置30によるロール紙Rの巻き取りが行われる。また、巻取り制御部132は第2プリンタドライバ89からの巻取制御コマンドに基づいて駆動回路134を介して巻取り用モータ32を指定された駆動量だけ逆転駆動させる。これにより、巻取り装置30は、PFモータ108が逆転駆動されることにより搬送ローラ21及び排紙ローラ22の逆転を介して行われるロール紙Rのバックフィード(逆送)動作に同期してロール紙Rを繰り出す。
図11は、測色時の測色装置を示す模式平面図である。図11に示すように、押さえ部材44の長孔56の下方に測色対象とされるカラーパッチCPは配置される。カラーパッチCPは、複数の単位パッチDが配列されて構成されるパッチ列PRと、パッチ列PRの列方向両側に所定の距離を隔てて配置された開始位置マークMSと終了位置マークMEとを備えている。測色器41がキャリブレーション手段46のホワイトタイル47の直上に位置する状態が、測色用キャリッジ57のホーム位置となっている。測色時にはホーム位置を原点とする紙幅方向(主走査方向B)の座標(x座標)として各単位パッチDの位置、すなわち移動体としての測色用キャリッジ57の測色動作のための動作位置が計算される。このとき、第2プリンタドライバ89は、カラーパッチCPを構成する各単位パッチDの紙幅センサ111の位置における紙幅方向のずれ量Δx1だけでなく、記録位置に対する測色位置のロール紙Rの斜行に起因する紙幅方向のずれ量Δx2も考慮して、測色時における測色用キャリッジ57の動作位置を計算する。
図12は、測色用キャリッジ57による測色器41の測色動作を説明する説明図である。測色方法には、図12(a)に示す走査測色と、図12(b)に示すスポット測色とがある。図12(a)に示す走査測色は、測色器41を同図に矢印に示すように一定速度で移動させ、その移動中の測色器41が測色点に達する度に測色データを取得する。この走査測色のときは、原則、各マークMS,MEが記録されるので、開始位置マークMSを検出した時の位置を起点とし、パッチ列長Lとパッチ数Nとから決まるパッチピッチ(=L/N)分移動する度に得られる測色データをその時々の測色位置と対応付けてバッファに格納する。
一方、図12(b)に示すスポット測色は、測色器41を同図に矢印で示す方向に移動させて測色部123が単位パッチDの中心部と対応する位置に達する度に停止させつつ、その停止の度に測色器41の測色データを取得する。このスポット測色では、測色部123が各単位パッチDの中心部を測色できる位置に測色器41を停止させうる測色用キャリッジ57の動作位置を計算する。この例では、測色用キャリッジ57の動作位置は、ロール紙Rの紙幅方向のずれ量Δx分が加味された実座標系の値として、ホーム位置(原点「0」)側から順に、x1,x2,…,xnとして算出される。もちろん、走査測色において、ホーム位置を原点とする各単位パッチDの実座標系の位置を、ロール紙Rの紙幅方向のずれ量Δxが加味された値として算出し、算出した各位置に測色器41が達する度に測色データを取得する構成も採用できる。
次に図5に示す第2プリンタドライバ89が備えるリモートコマンド解析部116、コマンド生成部117及び座標計算部118の処理について詳細に説明する。
図5に示すリモートコマンド解析部116は、ESC/P解析部101から送られたリモートコマンドを解析する。ここでの解析は、コマンド生成部117がコマンドを作り直す必要があるか否かの解析であり、作り直す必要があれば、論理座標系の値をもつコマンドを実座標系の値をもつコマンドに変換するために必要となる論理座標系の値など必要な情報の取得なども行う。
座標計算部118は、用紙位置座標計算部118Aとキャリッジ位置座標計算部118Bとを備えている。用紙位置座標計算部118Aは、リモートコマンドRC中に用紙上の論理座標系で示された値から、測色器41がカラーパッチCPを測色できる搬送方向Aにおけるロール紙Rの位置である測色位置、又は巻取り装置30のバックフィード時の搬送量で示される用紙の実座標系の値に変換する計算を行う。例えば測色駆動制御コマンドCMDCに含まれる紙送りコマンド中に論理座標で示されたカラーパッチCPの搬送方向Aの位置の値を、実座標系の値に変換し、搬送方向Aに印刷終了時の終端位置にあるロール紙Rが、その実座標系の値で特定されるカラーパッチCPの位置が測色器41に測色されうる測色位置に達するのに必要な搬送量を計算する。また、巻取制御コマンドWCC中に指定された次ページの印刷開始位置を示す論理座標系の値を、実座標系で示された値に変換し、その実座標系の値(印刷開始位置)が、記録ヘッド19のノズルに対応する位置に達するまでに必要な搬送量を計算する。
また、キャリッジ位置座標計算部118Bは、測色用キャリッジ57が測色器41の測色部123が単位パッチDの中心部に対向する位置となるまで該測色用キャリッジ57を動作させる動作位置(停止位置)のパッチ列方向Cにおける論理座標系で示された値を、実座標系の値に変換する計算を行う。
ここで、紙送り制御部115内のカウンタ115Aには、ロール紙Rの先端が設定基準位置に達したときを原点(図10における「0」の位置)とする紙送り量の累積値が計数されている。用紙位置座標計算部118Aは1ページ内の相対位置で示された搬送方向Aの論理座標系の値を、ロール紙Rの先端を起点として複数ページに渡って累積された絶対位置(累積値)で表される実座標系の値に変換する。
図8は、第2プリンタドライバによるコマンドの生成方法を示す説明図である。第2プリンタドライバ89は、リモートコマンドRCを構成する紙送り制御コマンドPFC、巻取制御コマンドWCC、測色駆動制御コマンドCMDC、測色制御コマンドCMCを、各コマンドで指定された値を論理座標系から実座標系へ変換する処理を伴って新規なコマンドを生成する。図8(a)は紙送り制御コマンドの生成、同図(b)は巻取制御コマンドの生成、同図(c)は測色駆動制御コマンドの生成、同図(d)は測色制御コマンドの生成をそれぞれ示す。
図8(a)に示すように、第2プリンタドライバ89が受け付ける論理座標系の紙送り制御コマンドPFCtは、論理座標系の値「Y」が指定されて、例えば「PF(Y)」で示されるとする。第2プリンタドライバ89は、論理座標系の値「Y」を座標変換して得た実座標系の値「y」を格納して、「PF(y)」で示される実座標系の紙送り制御コマンドPFCrを生成する。この紙送り制御コマンドPFCr「PF(y)」は、ロール紙Rを測色位置まで搬送する際のコマンドとして、第2プリンタドライバ89から紙送り制御部115に送られる。
また、図8(b)に示すように、第2プリンタドライバ89が受け付ける論理座標系の巻取制御コマンドWCCtは、対象機器が巻取り装置30であることを示す機器コード「WD」と、論理座標系の値「Y」が指定されて、例えば「PWrev(Y)」で示される巻取制御コマンドとから構成される。この巻取制御コマンドWCCは、ロール紙Rをバックフィード(逆送)させるときに搬送ローラ21の逆転駆動に同期させて巻取り装置30を逆転駆動させるために用いられるコマンドである。用紙位置座標計算部118Aが論理座標系の値「Y」を実座標系の値「y」に座標変換する計算を行う。コマンド生成部117が、この算出された実座標系の値「y」を格納することで、「PWrev(y)」で示される実座標系の巻取制御コマンドを生成する。そして、これに機器コード「WD」と、巻取り装置30との通信の確立を指令するコマンド「ComWD」とを前に付して、巻取制御コマンドWCCrを生成する。そして、第2プリンタドライバ89は、生成した巻取制御コマンドWCCrがリモート移行コード「MR」の次に格納されたESC/P制御データを生成し、これをUSB通信を介して巻取り装置30に転送する。
図8(c)に示すように、測色モード移行コード「MC」に続いて位置する論理座標系の測色駆動制御コマンドCMDCtには、対象機器が測色駆動装置80であることを示す機器コード「CMD」、紙押さえコマンド「CPH」、測色用キャリッジ駆動コマンド「CCR(X1),CCR(X2),…,CCR(Xn)」が格納されている。そして、キャリッジ位置座標計算部118Bは、測色用キャリッジ駆動コマンドで指定されている論理座標系の値「X」を実座標系の値「x」へ座標変換する計算を行って、その実座標系の値「x」を用いて、実座標系の測色用キャリッジ駆動コマンド「CCR(x1),CCR(x2),…,CCR(xn)」を生成する。さらに、これに機器コード「CMD」と、測色駆動装置80との通信の確立を指令するコマンド「ComCMD」とを前に付して、実座標系の測色駆動制御コマンドCMDCrを生成する。そして、第2プリンタドライバ89は、生成した測色駆動制御コマンドCMDCrがリモート移行コード「MR」の次に格納されたESC/P制御データを生成し、USB通信を介してこれを測色駆動装置80に転送する。
さらに、図8(d)に示すように、測色モード移行コード「MC」の後に位置する論理座標系の測色制御コマンドCMCtには、対象機器が測色器41であることを示す機器コード「CM」、測色制御コマンド「CM(L,N)」が格納されている。そして、コマンド生成部117は、測色器41との通信の確立を指令するコマンド「ComCM」を付して、測色器41へ転送すべき実座標系の測色制御コマンドCMCrを生成する。そして、第2プリンタドライバ89は、測色制御コマンドCMCrが格納されたリモートコマンドRCを含むESC/P制御データを測色器41に送信する。
ここで、測色駆動装置80と巻取り装置30の各ESC/P解析部124,131は、プリンタ10内のESC/P解析部101と基本的に同じ構成のものであり、本実施形態では、プリンタ10内のESC/P解析部101で使用されている回路基板(ボード)と同じものを、測色駆動装置80及び巻取り装置30にも実装している。
測色駆動装置80内のESC/P解析部124は、受信したESC/P制御データ(印刷データ)を解析し、測色駆動制御コマンドがあれば測色駆動制御部125に転送する。測色駆動制御部125は測色駆動コマンド中の紙押さえコマンドに基づき駆動回路126を介して紙押さえ用モータ71を駆動制御し、一方、測色駆動制御コマンド中の測色用キャリッジ駆動コマンド(以下、「測色用CR駆動コマンド」という)に基づき駆動回路127を介して測色用キャリッジモータ60を駆動制御する。
次に、図13のフローチャートに基づいてESC/P解析部101及び第2プリンタドライバ89の処理を説明する。なお、このフローチャートは、ソフトウェアによる処理に限らず、ハードウェアによる処理を含んでもよい。
プリンタ10はホスト装置150から印刷データPD(ESC/P制御データ)を取得すると、本処理を実行する。なお、印刷データPDは、ホスト装置150からのものに限定されず、例えばプリンタ10がスタンドアロン型プリンタである場合には、メモリカード等の外部記憶媒体から読み込んだ画像データ(例えばRGB画像データやJPEG画像データ)に基づいて内部で解像度変換処理(JPEG等の圧縮系画像の場合は解凍処理も含む)、色変換処理、ハーフトーン処理などを行って印刷データPDを取得しても構わない。
まず、ステップS10では、ESC/P解析部101がESC/P制御データについてESC/P解析(コマンド解析)を行う。このとき、ESC/P制御データSD中の制御コードを順番に解析していきモード移行コードがあれば、そのコードで指定されたモードに移行する(つまり、モードに応じた解析モジュールを起動する)。そして、その移行先のモードで解析対象とされているコマンドの解析をする。例えばキャラクタモードに移行した場合、印刷制御コマンドPCCを解析し、グラフィックモードに移行した場合は印刷画像データPGDを解析し、さらにリモートモードに移行したときはリモートコマンドRCの解析を行う。このとき、移行先のモードで解析対象とされていないコマンドは読み捨てる。
ステップS20では、コマンド解析時のモードを判定する。モードがキャラクタモードであればステップS30に進んで、印刷制御コマンドPCCを制御部103へ転送する。一方、グラフィックモードであればステップS40に進んで、印刷画像データPGDをメモリ102(イメージバッファ)へ転送する。さらにリモートモードであればステップS50に進んで、第2プリンタドライバ89へリモートコマンドRCを転送する。
印刷制御コマンドPCCや印刷画像データPGDが制御部103やメモリ102へ転送された場合は、ロール紙Rに印刷が施される。例えばユーザが入力装置162を操作して測色用の印刷画像及びカラーパッチをロール紙Rに印刷する指示を行った場合は、まずロール紙Rに印刷画像とカラーパッチの印刷が施される。このとき、まずロール紙Rを印刷開始位置へ頭出しすると、印刷の実行に先立ってキャリッジ17が主走査方向に移動して紙幅センサ111によりロール紙Rの紙幅両端位置が検出された時のカウンタ114Aの計数値に基づき、ロール紙Rの紙幅方向のずれ量が検出される。ヘッド制御部113は、ロール紙R上においてこのずれ量分だけ紙幅方向に位置補正した位置に印刷画像IGやカラーパッチCPを印刷する。この結果、ロール紙Rが紙幅方向にずれていても、ロール紙Rには論理座標上の位置に印刷画像やカラーパッチの印刷が位置精度よく施される。印刷制御コマンド又は印刷画像データの受信後、測色制御用のリモートモード移行コード「MR」及びリモートコマンドRCが第2プリンタドライバ89へ送られてくる。
ステップS60では、測色モードかつ測色器であるか否かを判断する。図7に示すように、先のESC/P解析部101における解析では、リモートモードに移行後、リモートコマンドRC中に測色モード移行コード「CM」があれば測色モードに移行する。そのときの測色モードにおけるコマンドの対象機器が「測色器」であれば、このステップS60の判断結果は肯定判定となり、ステップS120に進むことなる。一方、測色モードでなく対象機器が測色器でもなければ、ステップS70に進むことになる。例えば、測色モードかつ対象機器が測色駆動装置80である場合(リモートコマンドRCが測色駆動制御コマンドCMDCの場合)と、測色モードではない場合(リモートコマンドRCが紙送り制御制御コマンドPFC、巻取制御コマンドWCCの場合)はステップS70に進む。
ステップS70では、座標計算部118による座標計算を行う。座標計算部118は、コマンド内で指定された論理座標系の値を、実座標系の値に変換する計算処理を行う。例えば図9に示す設定画面において、ユーザは入力装置162を操作して印刷画像IGの選択及びレイアウトを行うとともに、カラーパッチCPの選択及びレイアウトを行う。第1プリンタドライバ151は、入力装置162で指定された印刷画像IGやカラーパッチCPの位置座標(印刷位置座標)を、図9において用紙エリアの左上コーナを原点とする論理座標で取得し、論理座標系で示された位置や量を値とする制御コマンドを生成する。
例えば走査測色(図12(a))時と、スポット測色(図12(b))時との測色制御コマンドには、図8(d)に示すようにカラーパッチCPのパッチ数Nとパッチ列長Lとが値として格納されている。
キャリッジ位置座標計算部118Bは、スポット測色の場合、N個の単位パッチのパッチ列方向Cにおける論理座標で示された測色位置の値(X1,X2,…,Xn)から、測色用キャリッジ57を停止させるべき実座標系の測色位置(x1,x2,…,xn)を計算する。このとき、キャリッジ制御部114が印刷処理中に定期的に紙幅センサ111によりロール紙Rの紙幅方向両端を検出させた検出結果に基づいて算出してメモリ102の所定記憶領域に格納しているロール紙Rの紙幅方向のずれ量Δxを読み出す。本実施形態の場合、そのずれ量Δxは、搬送方向Aにキャリッジ17(詳しくは紙幅センサ111)の位置におけるロール紙Rの紙幅方向のずれ量Δx1と、キャリッジ17より搬送方向下流側に配置されている測色器41の測色部123の位置において前記ずれ量Δx1で規定されるロール紙Rの紙幅方向の位置に対するロール紙Rの斜行に起因する紙幅方向のずれ量Δx2との総和として記憶されている。そして、実座標系の主走査方向Bの測色位置(x1,x2,…,xn)を、(x1,x2,…,xn)=(X1+Δx,X2+Δx,…,Xn+Δx)と算出する。なお、ずれ量Δxは、論理座標系の値Xと実座標系の値xが等しくなるときのロール紙Rの紙幅方向の位置(基準位置)をずれ量Δx=0として表される値であって、この基準位置に対して反ホーム位置側にずれているときにΔx>0の値をとり、ホーム位置側にずれているときにΔx<0の値をとる。
また、用紙位置座標計算部118Aは、ロール紙Rの測色時の目標搬送位置である論理座標系の測色位置(Y1,Y2,…,Ym)から、実座標系の測色位置(y1,y2,…,ym)を計算する。例えば搬送方向AにM列(図9の例で2列)のパッチ列があって、各パッチ列の搬送方向Aにおける論理座標系の測色位置を(Y1,Y2,…,Ym)とする。ここで、本例の場合、測色位置(Y1,Y2,…,Ym)は、各測色位置へ搬送する直前の用紙位置からの搬送量に相当する値で示されている。また、ロール紙Rの搬送方向Aにおける実位置は、紙送り制御部115内のカウンタ115Aの計数値で示される。測色位置へ搬送する直前の用紙位置の計数値をycntとすると、搬送方向Aにおける実座標系の測色位置yは、y=ycnt+Yとして計算される。
ステップS80では、実座標系の値を用いてリモートコマンドを生成する。例えばロール紙Rを測色位置まで搬送する場合、図8(a)に示す論理座標系の紙送り制御コマンドPFCtの論理座標「Y」を座標変換して得た実座標系の「y」を用いて、「PF(y)」で示される実座標系の紙送り制御コマンドPFCrを生成する。
また、測色用キャリッジ57を駆動させて測色器41による例えばスポット測色を行うときには、キャリッジ位置座標計算部118Bが、図8(c)に示す論理座標系の測色駆動制御コマンドCMDCに格納されている測色用CR駆動コマンド「CCR(X1),CCR(X2),…,CCR(Xn)」中の論理座標系の値(X1,X2,…,Xn)から、座標変換の計算を行って実座標系の値(x1,x2,…,xn)を取得する。そして、コマンド生成部117は、この実座標系の値(x1,x2,…,xn)を格納するこで、実座標系の測色用キャリッジ駆動コマンド「CCR(x1),CCR(x2),…,CCR(xn)」で示される論理座標系の測色用CR駆動コマンドを生成する。
さらに、測色終了後にロール紙Rをバックフィードに同期させて巻取り装置30を逆転駆動させる場合、コマンド生成部117は、用紙位置座標計算部118Aが図8(b)に示す巻取制御コマンドWCCt中の論理座標系の値Yを座標変換して得た実座標系の値yを格納することで「PWrev(y)」で示される巻取制御コマンドWCCrを生成する。
ステップS90では、紙送りコマンドであるか否かを判断する。紙送りコマンドであれば、ステップS100に進んで紙送り制御部115へコマンドを転送する。一方、紙送りコマンドでなかった場合は、ステップS110に進む。
ステップS110では、ESC/P制御データを生成する。コマンド生成部117は、コマンド生成(S80)後、巻取り装置30及び測色駆動装置80へ転送すべきコマンド(巻取制御コマンドと測色駆動制御コマンド)については、ESC/P制御データの形式とする。
例えば図8(b)に示す巻取制御コマンドWCCrの場合、ジョブ開始コマンド「JS」とジョブ終了コマンド「JE」間に配置されたリモートモード移行コード「RM」とリモートモード終了コマンド「RME」間に、巻取制御コマンドWCCrを格納することで、ESC/P制御データ(印刷データ)を生成する。
また、図8(c)に示す測色駆動制御コマンドCMDCrの場合、ジョブ開始コマンド「JS」とジョブ終了コマンド「JE」間に配置されたリモートモード移行コード「RM」とリモートモード終了コード「RME」間に、さらに測色モード移行コード「MC」と測色モード終了コード「MCE」が配置され、その間に測色駆動制御コマンドCMDCrを格納することで、ESC/P制御データを生成する。
一方、S60の判断で、測色モードかつ測色器であった場合(つまり機器コードが測色器である場合)は、ステップS120で、測色コマンドを生成する。図8(d)に示すように、測色器41との通信の確立を指令するコマンド「ComCM」を付して、測色制御コマンドCMCrを生成する。
そして、ステップS130では、対象装置(対象機器)を判断する。すなわち、ESC/P制御データ中の機器コードから対象装置を判断する。対象装置が測色駆動装置80であれば、ステップS140に進んで、測色駆動装置80との通信を確立してESC/P制御データを測色駆動装置80に転送する。また、対象装置が測色器41であれば、ステップS150に進んで、測色器41との通信を確立して測色制御コマンドCMCrを測色器41に転送する。さらに、対象装置が巻取り装置30であれば、ステップS160に進んで、巻取り装置30との通信を確立してESC/P制御データを巻取り装置30に転送する。
このとき、対象装置との通信の確立は、第2プリンタドライバ89からの指示に従ってホスト通信部81が行う。測色駆動装置80と巻取り装置30との通信を確立する際は、USBホスト81Aからの機器クラス(例えばデバイスID)の要求に対して、測色駆動装置80と巻取り装置30のUSBデバイス82A,84Aは「プリンタクラス」である旨(プリンタのデバイスID)の応答をする。この結果、USBの論理チャネルが接続される。このため、通信相手がプリンタであることを前提に作られている既存のプリンタドライバの少なくとも一部を利用してオプション機器を制御するための第2プリンタドライバ89を構成した本実施形態において、プリンタ10からUSB通信を介してオプション機器へESC/P制御データを転送することができる。なお、本例では、測色用CR駆動コマンドCCR(x1),…,CCR(xn)が、動作位置決定手段が決定する動作位置に相当する。また、測色用CR駆動コマンドCCR(x1),…,CCR(xn)を生成するコマンド生成部117が動作位置決定手段に相当する。
次に測色処理の一連の流れを、図14のトランザクション図に従って説明する。
まずホスト装置150(つまり第1プリンタドライバ151)からプリンタ10に対して印刷データが送られて印刷が指示される。例えばイメージ画像とカラーパッチを印刷するための印刷データが送信される。プリンタ10は印刷データに基づいてロール紙Rに印刷画像IGとカラーパッチCPの印刷を行う。
次にホスト装置150は測色指示を行う。プリンタ10はホスト装置150から受信した測色指示データを、測色器41へ転送する。その結果、測色器41では初期化処理や測色条件等の設定が行われる。続いてプリンタ10はPF駆動(PFモータ108の駆動)によりロール紙Rを搬送方向Aにおける測色位置に位置合わせする。そして、プリンタ10は測色駆動装置80に紙押さえを指示するとともに続いて測色用キャリッジ57の列方向C(主走査方向B)への位置合わせを指示する。
このときプリンタ10からはUSB通信で実座標系の値が格納された測色用CR駆動コマンドCCR(x1),…,CCR(xn)で指示されるので、例えばスポット測色時には、ロール紙Rの紙幅方向のずれ量Δx分が補正された動作位置に測色用キャリッジ57が位置制御されるので、測色器41の測色部123が用紙上の論理座標どおりの位置に記録された各単位パッチDの中心部に対向する位置に測色用キャリッジ57を停止させることができる。
そして、測色用キャリッジ57が各動作位置に停止する度に測色器41が測色を実行する。このとき、第2プリンタドライバ89は測色駆動装置80のエンコーダ130の出力信号に基づきカウンタ125Aに計数されている測色用キャリッジ57の位置情報を測色駆動装置80から逐次受信し、測色用キャリッジ57の動作位置と測色器41の測色位置とが同期するように制御を行う。1列のカラーパッチCPの測色を終了する度に測色用キャリッジ57はホーム位置に戻り、押さえ部材44の押さえを解除し、次に測色すべきカラーパッチCPがあれば、次の測色位置までロール紙Rを搬送する。以下、全てのカラーパッチCPの測色を終えるまで同様の処理動作を繰り返す。
その間、ホスト装置150からの測色進捗要求を逐次受け付けており、プリンタ10は測色駆動装置80の終了を監視して終了の応答を受け付けると、ホスト装置150に測色終了の旨を通知する。測色終了の通知を受け付けたホスト装置150は、プリンタ10に測色結果を要求する。すると、プリンタ10は測色器41に対して測色結果要求を送る。測色結果要求を受け付けた測色器41は測色結果(測色データ)を、プリンタ10を経由してホスト装置150に送る。ホスト装置150は測色結果を受け付けると、用紙位置合わせ指示をプリンタに送り、プリンタ10はその指示に従ってPF逆転(PFモータ108の逆転駆動)させて用紙位置合わせ(バックフィード)を行うとともに、これに同期させて逆転指示を巻取り装置30に送る。その結果、巻取り装置30はPF逆転に同期して逆転駆動されるので、ロール紙Rが所定位置まで逆送りされる。例えば、ロール紙Rは次ページの印刷開始位置に配置される。なお、ホスト装置150では、測色結果に基づいて印刷された色の適切性を判定し、例えば印刷時の色条件が決められる。
以上、詳述したように本実施形態によれば、次の効果が得られる。
(1)紙幅センサ111の検出結果に基づきロール紙Rの紙幅方向の基準位置からのずれ量Δx3を取得してメモリ102に記憶した。そして、このずれ量Δx3を用いて、論理座標系の値から、ロール紙Rの紙幅方向のずれ量分が加味された実座標系の値に変換し、その実座標系の値で指定したコマンドを含む第二制御データに基づいて第二機器である測色装置40の測色用キャリッジ57(移動体)の動作位置を制御した。よって、ロール紙Rが紙幅方向にずれても、そのロール紙R上の論理座標どおりの位置に記録されたカラーパッチCPの各単位パッチDを正確に測色することができる。
(2)ロール紙Rの紙幅方向のずれ量Δx1と、ロール紙Rの斜行に起因する紙幅方向のずれ量Δx2との総和からなるずれ量Δx3を用いて、このずれ量Δx3が加味された実座標系の値として測色装置40の測色用キャリッジ57の動作位置を決める値を指定した第二制御データを生成した。よって、紙幅センサ111と測色用キャリッジ57とが搬送方向に異なる位置に配置されていても、測色用キャリッジ57の動作位置を単位パッチDに位置精度よく制御でき、測色装置40による測色精度を高めることができる。
(3)プリンタ10のオプション機器である測色駆動装置80と巻取り装置30にプリンタクラスを設定したので、印刷コマンドであるESC/P制御データをプリンタ10からオプション機器へ送信する際にUSB通信を確立できる。よって、ESC/P制御データのリモートコマンドを利用してオプション機器を駆動制御することができる。
(4)ESC/P制御データを用いてオプション機器を駆動制御できるので、第2プリンタドライバ89を、既存の第1プリンタドライバ151を利用して構築でき、しかも、オプション機器内のESC/P解析部を、既存のESC/P解析部を利用して構築することができる。例えば既存のESC/P解析部用の回路基板を、オプション機器に実装するだけでESC/P解析部を構築でき、専用の解析部を新規に開発・製造する必要がないので、プリンタシステム100を短期間で開発・製造することができる。
(5)巻取り装置30をバックフィードに同期させて逆回転駆動させるので、測色終了後に測色位置から次ページの印刷開始位置にロール紙Rを戻すことができる。よって、オプション機器として巻取り装置30を装備した場合でも、ESC/P制御データを利用して巻取り装置30を逆転駆動させることで、簡単な構成で巻取り装置30の制御を行うことができる。
(6)従来、プリンタ側で得られるロール紙Rの位置ずれ情報に基づきコマンドを生成し直すためには、その位置ずれ情報を、ホスト装置のプリンタドライバに一旦送信し、プリンタドライバで位置ずれ情報を用いて実座標系のコマンドを生成してから、それをプリンタ10が受信する構成をとる必要があった。これに対し、本実施形態では、プリンタ10がプリンタドライバ機能を有する第2プリンタドライバ89を内蔵するので、プリンタ10側で得られた位置ずれ情報をホスト装置150に送ることなく、プリンタ内部で実座標系のコマンドを生成することができる。そして、コマンドを生成するだけでなく、その生成したコマンドを第二機器である測色駆動装置80に送信する場合に、そのコマンドをリモートコマンドRCとして組み込まれた印刷データ(ESC/P制御データ)を生成し、プリンタドライバ機能(通信機能)を利用して印刷データとして測色駆動装置80に送信する。この場合、コマンドの値の座標系を変換する構成なので、印刷用のコマンド(リモートコマンド)をそのまま利用できる。よって、ホスト装置150へ位置ずれ情報を送信するデータのやり取りに起因する第二機器の動作遅れが発生しにくいうえ、プリンタドライバ機能と、印刷用のESC/P解析部とをそれぞれプリンタ10と測色駆動装置80(第二機器)に組み込むだけの簡単な構成で、プリンタシステム100(電子機器システム)を構成することができる。
なお、実施の形態は、上記に限定されるものではなく、以下のように変更してもよい。
(変形例1)前記実施形態では、ずれ量Δxをメモリ102に記憶しておき、ずれ量Δxを用いて座標変換計算を行ったが、これに限定されない。例えばオブジェクトとしてのカラーパッチCPを構成する各単位パッチDの記録位置を記憶しておき、記憶した単位パッチの記録位置に合わせるように移動体として測色用キャリッジ57の動作位置を決定する構成でもよい。この場合、単位パッチDの記録位置は、単位パッチ印刷時におけるキャリッジ17の位置を示すカウンタ114Aの計数値に基づき算出される記録位置を記憶すればよい。記録ヘッド19のインク吐出時の位置からインク滴がターゲット(ロール紙R)上に着弾した位置を、キャリッジ速度と、インク飛翔速度(記憶済み実験値)と、記録ヘッド19とターゲット間の距離とを用いて計算する。この単位パッチの記録位置は、検出手段としての紙幅センサ111の検出結果に基づいてロール紙Rの紙幅方向のずれ量が補正された用紙上の位置になっている。そして、第2プリンタドライバ89のキャリッジ位置座標計算部118B(動作位置決定手段)は、記憶手段としてのメモリ102から単位パッチDの位置(詳しくは中心位置)が測色部123に一致する位置を測色用キャリッジ57の動作位置として計算する。
(変形例2)前記実施形態では測色器は記録ヘッドよりも搬送方向下流側に配置されていたが、第二機器の配置位置はこれに限定されない。例えば第二機器が記録ヘッドに対し搬送方向上流側に配置されていても構わない。この場合、ターゲットの斜行の方向に対する紙幅方向の位置のずれる方向が前記実施形態と逆になる。
(変形例3)前記実施形態では、ターゲットの搬送方向と交差する第一方向(一例として主走査方向B(紙幅方向))の位置ずれと、ターゲットの斜行による第一方向の位置ずれとを含む位置を検出する構成としたが、いずれか一方の位置ずれのみを含む位置を検出する構成でもよい。
(変形例4)第二機器は、測色装置に限定されない。オブジェクトの色以外の測定内容を測定する測定装置でもよい。例えば明度でもよい。また、ドットずれなど印刷結果の良否を判定するために用いられる測定内容でもよい。さらに測定対象は印刷済みオブジェクトに限定されない。
(変形例5)第一機器は、前記ターゲットに施す処理として記録(印刷)を行うプリンタに限定されない。第一機器がターゲットに施す処理は、例えばターゲットとしての基板にエッチングやレーザー加工により施す加工処理でもよい。この場合は、第二機器が施す処理は、第一機器による加工位置に重なる位置あるいは所定位置関係を満たす位置に施す第二加工、あるいは第一機器による加工の測定(加工精度の測定等)などが挙げられる。また、第一機器がターゲット上で第二機器が処理を施すのに適切な位置を検出する処理を行い、第二機器が第一機器により検出された位置に処理を施す構成でもよい。
(変形例6)前記実施形態では、検出手段は第一機器であるプリンタ側に設けられていたが、第二機器側に検出手段が設けられていてもよい。この場合、検出手段の検出結果は第二機器から第一機器へ送信され、第一機器の制御データ生成手段は、その受信した検出結果に基づいて第一座標系から第二座標系へ変換した値で指定する第二制御データを生成する構成とする。
(変形例7)プリンタ10から測色駆動装置80へのコマンドの送信は、印刷データ(ESC/P制御データ)を利用する方法に限定されない。他の通信プロトコルを用いた通信により第二機器を動作位置に制御するコマンドを第一機器から第二機器に送信してもよい。
(変形例8)プリンタ10はホスト装置と接続されることに限定されない。例えばプリンタが内部に画像データ(例えばRGB系画像データ)から印刷データを生成するプリンタドライバを内蔵し、第一制御データをプリンタ内蔵のプリンタドライバにより生成して取得する構成でもよい。また、プリンタの操作パネルから入力された測色条件に基づいてプリンタ内部の測色ドライバが測色制御コマンドを生成する構成とする。この場合も、オプション機器がプリンタクラスである旨を宣言(応答)するように設定しておくことで、プリンタ10側のUSBホスト81Aが測色駆動装置80及び巻取り装置30の各USBデバイス82A,84Aと通信を確立でき、第2プリンタドライバ89が生成した印刷データをプリンタからオプション機器である測色駆動装置80及び巻取り装置30に送信できることから、印刷用コマンドを用いて、測色駆動装置80及び巻取り装置30を制御できる。このため、既存のプリンタドライバが有する本来プリンタ用のモータ制御機能を利用して、測色駆動装置80及び巻取り装置30の駆動のための専用ドライバを別途開発する手間を省くことができる。従って、ドライバ開発コスト及びドライバ開発に要する期間を短縮できる。
(変形例9)ロール紙Rのずれ量を求めるために設けていたセンサ(前記実施形態では紙幅センサ111)は無くしてもよい。例えば紙幅方向のずれ量をプリンタ10の入力操作部から入力してもよい。
(変形例10)サブ機器は、巻取り装置30のみでも、測色装置40のみでもよい。
(変形例11)サブ機器は、巻取り装置30や測色装置40などのオプション機器に限定されない。サブ機器(オプション機器)は、例えば印刷結果をカメラで撮像しその撮像した画像の画像処理を行うことで印刷結果の良し悪しを判定する判定装置(印刷画像検査装置)や、記録ヘッド19のノズルの目詰まりを検査するノズル検査装置や、ターゲットにおける印刷後のインクを乾燥する乾燥装置であってもよい。
(変形例12)特定コマンドは印刷コマンドに限定されない。例えば第一機器がプリンタ以外の機器である場合は、その第一機器の機器で標準として使用されている標準コマンドでもよい。
(変形例13)前記実施形態では、第一機器としてのプリンタとして、インクジェット記録方式のシリアルプリンタに適用したが、インクジェット記録方式のラインプリンタに適用してもよい。
(変形例14)前記実施形態では、第一機器として、流体吐出装置としてのインクジェット式のプリンタ10に具体化したが、この限りではなく、インク以外の他の流体(液体や、機能材料の粒子が液体に分散又は混合されてなる液状体、ゲルのような流状体、流体として流して吐出できる固体を含む)を吐出したりする流体吐出装置に具体化することもできる。例えば、液晶ディスプレイ、EL(エレクトロルミネッセンス)ディスプレイ及び面発光ディスプレイの製造などに用いられる電極材や色材(画素材料)などの材料を分散または溶解のかたちで含む液状体を吐出する液状体吐出装置、バイオチップ製造に用いられる生体有機物を吐出する液体吐出装置、精密ピペットとして用いられ試料となる液体を吐出する液体吐出装置であってもよい。さらに、時計やカメラ等の精密機械にピンポイントで潤滑油を吐出する液体吐出装置、光通信素子等に用いられる微小半球レンズ(光学レンズ)などを形成するために紫外線硬化樹脂等の透明樹脂液を基板上に吐出する液体吐出装置、基板などをエッチングするために酸又はアルカリ等のエッチング液を吐出する液体吐出装置、ゲル(例えば物理ゲル)などの流状体を吐出する流状体吐出装置、トナーなどの粉体(粉粒体)を例とする固体を吐出する粉粒体吐出装置(例えばトナージェット式記録装置)であってもよい。そして、これらのうちいずれか一種の流体吐出装置に本発明を適用することができる。なお、本明細書において「流体」とは、気体のみからなる流体を含まない概念であり、流体には、例えば液体(無機溶剤、有機溶剤、溶液、液状樹脂、液状金属(金属融液)等を含む)、液状体、流状体、粉粒体(粒体、粉体を含む)などが含まれる。また、上記基板や精密機械等がターゲットとなる。
10…第一機器としてのプリンタ、17…処理手段を構成するキャリッジ、19…処理手段を構成するとともに記録手段としての記録ヘッド、21…処理手段を構成するとともに搬送手段を構成する搬送ローラ、22…処理手段を構成するとともに搬送手段を構成する排紙ローラ、30…第二機器としての巻取り装置、32…巻取り用モータ、40…測色装置、41…測色器、157…データ格納部、44…押さえ部材、57…移動体としての測色用キャリッジ、60…駆動手段としての測色用キャリッジモータ、71…紙押さえ用モータ、74…制御データ取得手段を構成する通信部、80…第二機器としての測色駆動装置、81…第一通信手段としてのホスト通信部、81A…USBホスト、82…第二通信手段としてのデバイス通信部、84…デバイス通信部、82A,84A…USBデバイス、89…制御データ生成手段としての第2プリンタドライバ、100…電子機器システムを構成するプリンタシステム、101…ESC/P解析部、102…記憶手段としてのメモリ、103…処理手段を構成する制御部、108…搬送手段を構成するPFモータ、110…紙検出センサ、111…検出手段を構成する紙幅センサ、112…検出手段を構成するリニアエンコーダ、113…記録位置補正手段としてのヘッド制御部、114…キャリッジ制御部、114A…検出手段を構成するカウンタ、115…紙送り制御部、115A…カウンタ、116…リモートコマンド解析部、117…コマンド生成手段としてのコマンド生成部、118…座標計算部、118A…用紙位置座標計算部、118B…キャリッジ位置座標計算部、124…解析部としてのESC/P解析部、125…制御手段としての測色駆動制御部、125A…カウンタ、131…ESC/P解析部、150…ホスト装置、151…第1プリンタドライバ、152…通信部、153…測色ドライバ、155…印刷データ生成部、156…ホスト制御部、159…論理座標計算部、160…コマンド生成部、161…画像データ処理部、162…入力操作手段としての入力装置、200…印刷システム、R…ターゲット(記録媒体)としてのロール紙。