(57)【要約】      （修正有）【課題】プリンタシミュレータシステムにおいて開発効率を向上させるための手段を提供する。【解決手段】インパクトプリンタの動作を模擬的に再現するソフトウェアを備える仮想プリンタ部を設けたサーバと、該サーバに通信回線を介して接続するクライアント端末とからなり、サーバは、クライアント端末から仮想プリンタ部を仮想的なＵＳＢデバイスとして接続する要求を受けたとき、ＵＳＢデバイス識別子をクライアント端末に送信し、クライアント端末は、操作者にＵＳＢデバイスの識別子を入力させ、入力された識別子とサーバから受信した識別子とが一致したときに、仮想プリンタ部をＵＳＢデバイスとして認識し、仮想プリンタ部にインパクトプリンタの動作を模擬的に再現させるための指示入力と印刷データの入力がなされたとき、その印刷データをサーバに送信することで、仮想プリンタ部が行ったシミュレーションの結果の情報をサーバから受信する。【選択図】図１
2012078919.tif 000002
【特許請求の範囲】
【請求項１】
インパクトプリンタの動作を模擬的に再現するソフトウェアを備える仮想プリンタ部を設けたサーバと、該サーバに通信回線を介して接続するクライアント端末とからなるプリンタシミュレータシステムであって、
前記サーバは、前記クライアント端末から前記仮想プリンタ部を仮想的なＵＳＢデバイスとして接続する要求を受けたとき、前記仮想プリンタ部のＵＳＢデバイスとしての識別子を前記クライアント端末に送信し、
前記クライアント端末は、操作者にＵＳＢデバイスの識別子を入力させ、入力された識別子と前記サーバから受信した識別子とが一致したときに、前記仮想プリンタ部をＵＳＢデバイスとして認識し、前記仮想プリンタ部にインパクトプリンタの動作を模擬的に再現させるための指示入力と印刷データの入力がなされたとき、その印刷データを前記サーバに送信することで、前記印刷データをもとに前記仮想プリンタ部が行ったシミュレーションの結果の情報を前記サーバから受信することを特徴とするプリンタシミュレータシステム。
【請求項２】
請求項１に記載のプリンタシミュレータシステムにおいて、
前記サーバは、前記仮想プリンタ部による印刷の経過を示すイメージデータを生成するイメージ生成部を備え、
前記サーバは、前記シミュレーションの結果の情報として前記イメージ生成部によって生成したイメージデータを前記クライアント端末に送信することを特徴とするプリンタシミュレータシステム。
【請求項３】
請求項１に記載のプリンタシミュレータシステムにおいて、
前記サーバは、前記仮想プリンタ部が模擬的に再現する対象のインパクトプリンタのＣＰＵと、ファームウェアと、ハードウェア機器の情報を含む仮想プリンタ情報、および該インパクトプリンタのデバイス情報を格納する記憶手段を有することを特徴とするプリンタシミュレータシステム。
【請求項４】
請求項３に記載のプリンタシミュレータシステムにおいて、
前記サーバは、前記記憶手段に格納した仮想プリンタ情報に基づき、シミュレーション開始から終了までの前記ハードウェア機器である印字ヘッドの挙動を示す情報を構成することを特徴とするプリンタシミュレータシステム。
【請求項５】
請求項３に記載のプリンタシミュレータシステムにおいて、
前記サーバは、動作を再現した際に前記ハードウェア機器である印字ヘッドに電流が流れる時間についての閾値を前記記憶手段に記憶し、
前記サーバは、インパクトプリンタの動作再現時に印字ヘッドに電流を流す時間が前記閾値を超えたときに印字ヘッドの引っ掛かりが発生したものと認識することを特徴とするプリンタシミュレータシステム。
【請求項６】
請求項３に記載のプリンタシミュレータシステムにおいて、
前記サーバは、プリンタ操作、温度、電圧の変化を任意に設定させるスクリプトファイルを備えたことを特徴とするプリンタシミュレータシステム。
【請求項７】
請求項２に記載のプリンタシミュレータシステムにおいて、
前記クライアント端末は、前記サーバから受信した前記イメージ生成部によるイメージデータに基づき、前記仮想プリンタ部が再現した印刷の経過を表示画面に表示することを特徴とするプリンタシミュレータシステム。
【請求項８】
請求項３に記載のプリンタシミュレータシステムにおいて、
前記サーバは、前記記憶手段に格納した仮想プリンタ情報に基づく、再現する対象のインパクトプリンタのハードウェア機器である印字ヘッドの制御の情報から、印刷の進行に伴う該印字ヘッドに流れる電流の変化を示す電流波形の情報を構成し、前記シミュレーションの結果の情報としてその電流波形の情報を前記クライアント端末に送信し、
前記クライアント端末は、受信した前記電流波形の情報に基づく電流波形を表示画面に表示することを特徴とするプリンタシミュレータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタシミュレータシステムに関し、特にインパクトプリンタをモデル化し、同等の動作をコンピュータ上で再現するための方法に関する。
【背景技術】
【０００２】
従来のプリンタシミュレータは、１つの端末にホストＣＰＵやシミュレーション本体を備え、シミュレーションを行うターゲット装置であるプリンタの動作を再現するための各種プログラムを格納しておき、ホストＣＰＵの制御によって対象となるプリンタと同等の動作をコンピュータ上で再現している（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−１８７４９４号公報（段落「０００６」、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の技術においては、端末ごとにシミュレータ本体を備える必要があるため、シミュレーションのプログラムを変更する場合、端末ごとにシミュレータ本体のプログラムを変更する必要があるため、各端末への変更処理に時間が掛かり、開発の効率が悪くなってしまう場合があるという問題がある。
本発明は、上記の問題点を解決するための手段を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上記課題を解決するために、インパクトプリンタの動作を模擬的に再現するソフトウェアを備える仮想プリンタ部を設けたサーバと、該サーバに通信回線を介して接続するクライアント端末とからなるプリンタシミュレータシステムであって、前記サーバは、前記クライアント端末から前記仮想プリンタ部を仮想的なＵＳＢデバイスとして接続する要求を受けたとき、前記仮想プリンタ部のＵＳＢデバイスとしての識別子を前記クライアント端末に送信し、前記クライアント端末は、操作者にＵＳＢデバイスの識別子を入力させ、入力された識別子と前記サーバから受信した識別子とが一致したときに、前記仮想プリンタ部をＵＳＢデバイスとして認識し、前記仮想プリンタ部にインパクトプリンタの動作を模擬的に再現させるための指示入力と印刷データの入力がなされたとき、その印刷データを前記サーバに送信することで、前記印刷データをもとに前記仮想プリンタ部が行ったシミュレーションの結果の情報を前記サーバから受信することを特徴とする。
【発明の効果】
【０００６】
これにより、本発明は、１台のサーバと複数台の端末を接続するだけで、端末ごとにインパクトプリンタのシミュレーションを行うことができるようになるので、シミュレーションのプログラムを変更する場合には、サーバの仮想プリンタ部の内容を変更すればよいため、インパクトプリンタのシミュレーションの開発効率を向上させることができるという効果が得られる。
【図面の簡単な説明】
【０００７】
【図１】実施例１のプリンタシミュレータシステムを示すブロック図
【図２】実施例１のプリンタシミュレータシステムの概略構成図
【図３】プリンタシミュレータの概略を示す説明図
【図４】実施例１のプリンタシミュレータシステムの接続処理を示すフローチャート
【図５】クライアント端末が受信したバスＩＤとデバイス情報の受渡しの様子を示す説明図
【図６】仮想プリンタ部からのバスＩＤの受け渡しを示す説明図
【図７】印刷状況画面を示す説明図
【図８】波形表示画面を示す説明図
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照して本発明によるプリンタシミュレータシステムの実施例について説明する。
【実施例１】
【０００９】
図１は実施例１のプリンタシミュレータシステムを示すブロック図、図２は実施例１のプリンタシミュレータシステムの概略構成図である。
図１において、１はプリンタシミュレータシステムであり、ウィンドウズＰＣとしてのクライアント端末１０と、シリアルインパクトドットマトリックス（以下、ＳＩＤＭ）プリンタのシミュレータとして機能するシミュレーションサーバ２０とをＬＡＮ接続して構成される。
【００１０】
本発明のプリンタシミュレータシステムは、図２に示すようにＬＡＮ接続されたクライアント端末１０とシミュレーションサーバを用い、クライアント端末１０がシミュレーションサーバ２０をＵＳＢデバイスとして認識させるものである。なおシミュレーションサーバ２０をＵＳＢデバイスと認識させるための処理については後述する。
【００１１】
図１において、クライアント端末１０は、ＬＣＤやＣＲＴ等の表示画面１０ａ、キーボードやマウス等の操作部１０ｂを備える。
１１は端末制御部であり、端末記憶部１２に格納された各種プログラムからなる制御プログラムに従って各部を制御すると共に、ＬＡＮケーブルによってシミュレーションサーバ２０と接続し、シミュレーションサーバ２０との間でＳＩＤＭプリンタの動作を模擬的に再現するシミュレーション処理を遂行する。
【００１２】
１２は端末記憶部であり、ＷｉｎｄｏｗｓとＬｉｎｕｘの２つのＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を格納し、またＯＳ毎に機能を管理している各種プログラムからなる制御プログラムを格納すると共に、端末制御部１１による処理結果を記憶する。
なお、Ｗｉｎｄｏｗｓでその機能が管理されるプログラムは、例えば、ＰｎＰ（Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）マネージャや、ＵＳＢデバイスであるＳＩＤＭプリンタを操作するためのデバイスドライバ、該デバイスドライバに仮想デバイスをＵＳＢデバイスとして認識させる仮想バスドライバ、Ｌｉｎｕｘに接続されたＵＳＢデバイスをＷｉｎｄｏｗｓで操作するための仮想バスという既存のアプリケーション等である。
【００１３】
さらに、Ｌｉｎｕｘで機能が管理されるプログラムは、仮想デバイスをＯＳ（Ｌｉｎｕｘ）に認識させるＵＲＢ（ＵＳＢ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋ）の生成及び展開を行いＯＳ（Ｌｉｎｕｘ）と情報のやり取りを行う仮想ＨＣＤという既存のデバイスドライバ等である。
また、端末記憶部１２は実際のＳＩＤＭプリンタを操作するようにシミュレーションサーバ２０の仮想プリンタ部２１を動作させるための操作画面（グラフィカルユーザインターフェース）を表示画面１０ａ上に表示させるの画面情報を記憶している。
【００１４】
２０はシミュレーションサーバであり、シミュレーションの対象となるＳＩＤＭプリンタのＣＰＵ、メモリ、ロジック等の電子回路やセンサ、モータ、印字ヘッド等の機構といったハードウェアの制御や動作を模擬的に再現するためのソフトウェアを備える仮想プリンタ部（仮想デバイス）２１と、仮想プリンタ部２１による印刷の状態を可視化してリアルタイムでの印刷状況の変化の様子を示す印刷状況イメージデータを生成するイメージ生成部２２等を備えている。
【００１５】
ここで、図３はプリンタシミュレータの概略を示す説明図であり、（ａ）は全体の概略図、（ｂ）は仮想プリンタ部のソフトウェアの概略を示し、（ｃ）はグラフィカルインターフェースの概略を示している。
プリンタシミュレータとは、図３に示すように操作者がクライアント端末１０を操作するユーザ操作によって表示画面１０ａに表示された図３（ｃ）に示すようなグラフィカルユーザインターフェースを通じて、実際のＳＩＤＭプリンタを操作するように印字の操作が行われると、その操作がスクリプトコマンドとしてシミュレーションサーバ２０の仮想プリンタ部２１に伝わる。
【００１６】
そして、図３（ｂ）に示すようなソフトウェアを備えた仮想プリンタ部２１がスクリプトコマンドを解析・実行することで、ユーザ操作をプリンタ動作という形で実現し、その動作結果をグラフィカルユーザインターフェースに表示させ、操作者に対してプリンタ動作およびユーザ操作の妥当性を確認、検証させるものである。
【００１７】
２３はサーバ制御部であり、サ−バ記憶部（記憶手段）２４に格納されたシミュレータの制御プログラムに従って各部を制御し、クライアント端末１０からの要求によってＳＩＤＭプリンタのシミュレーション処理を実行する。
２４はサ−バ記憶部であり、シミュレータの制御プログラムを格納し、サ−バ制御部２３による処理結果を記憶する他、仮想プリンタ部２１が模擬的に再現する対象のＳＩＤＭプリンタのＣＰＵやファームウェア、ダイナミックランダムアクセスメモリ、入出力回路、その他ハードウェア機器（印字ヘッド等）の仕様情報を含んだ仮想プリンタ部２１の仮想プリンタ情報および再現対象のＳＩＤＭプリンタのデバイス・ディスクリプタを示すデバイス情報等を格納している。
【００１８】
上記の仮想プリンタ情報を用いることによって、サーバ制御部２３は、仮想プリンタ部２１がＳＩＤＭプリンタの動作を再現した際の印字ヘッドの初期位置や、印字ヘッドピンが移動開始してから用紙に到達するまでの到達時間、印字ヘッドの移動速度等に基づき、移動する印字ヘッドの位置や、印刷動作のシミュレーション開始から終了までの印字ヘッドの挙動、印字ヘッドに流す電流等、印字ヘッドの動作に関する制御情報を構成することができる。
【００１９】
また、サーバ記憶部２４は上記と共通する仮想バスを格納しており、さらにこの仮想バスによって発行する仮想プリンタ部２１のデバイス情報の識別子としてのバスＩＤを記憶する。
２５は端末通信部であり、ＬＡＮケーブルを介して接続するクライアント端末１０と情報の授受を行い、この部位から送信した情報はクライアント端末１０の仮想ＨＣＤが受け取るようになっている。
【００２０】
上述した構成の作用について説明する。
クライアント端末１０にシミュレーションサーバ２０の仮想プリンタ部２１を接続させる接続処理について、図４に示す実施例１のプリンタシミュレータシステムの接続処理を示すフローチャートを用い、Ｓで示すステップに従って説明する。
本発明における接続処理は、仮想デバイスを実ＵＳＢデバイスとして認識させる技術と、サーバ上のＵＳＢデバイスをクライアント上のデバイスとして認識させる技術とを組み合わせて実現させるものである。
【００２１】
Ｓ１、端末制御部１１は、操作者がクライアント端末１０をシミュレーションサーバ２０の仮想プリンタ部２１に接続させるための入力操作を操作部１０ｂによって行ったとき、シミュレーション処理実行要求をシミュレーションサーバ２０に送信する。
Ｓ２、シミュレーションサーバ２０のサーバ制御部２３は、シミュレーション処理実行要求を受信すると、クライアント端末１０に対して仮想プリンタ部２１をＵＳＢデバイスと認識させるために、サーバ記憶部２４から仮想プリンタ情報に対するバスＩＤとデバイス情報を読み出し、そのバスＩＤとデバイス情報をクライアント端末１０に送信する。
【００２２】
ここで、図５はクライアント端末が受信したバスＩＤとデバイス情報の受渡しの様子を示す説明図である。
Ｓ３、端末制御部１１は、受信したバスＩＤとデバイス情報を端末記憶部１２に記憶する。そして端末制御部１１内の処理として図５に示すように該バスＩＤとデバイス情報をＬｉｎｕｘで管理する仮想ＨＣＤに送って、仮想ＨＣＤから仮想バスへと送る。
【００２３】
Ｓ４、端末制御部１１は、表示画面１０ａにバスＩＤの入力を促すバスＩＤ入力画面を表示しておき、操作者による仮想デバイスのバスＩＤの入力がなされると、そのバスＩＤを端末記憶部１２に記憶する。
なお、このとき操作者は予めシミュレーションサーバ２０側から送られてくるバスＩＤと同一のバスＩＤを認識しているものとする。
このとき端末記憶部１２が記憶したバスＩＤは、仮想バスに受け渡される。
【００２４】
Ｓ５、端末制御部１１は、入力されたバスＩＤと、シミュレーションサーバ２０から受信したバスＩＤとを比較し、両バスＩＤが一致していることを確認し、仮想プリンタ部２１をＵＳＢデバイスと認識する。
【００２５】
図６は仮想プリンタ部からのバスＩＤの受け渡しを示す説明図である。
仮想プリンタ部２１をＵＳＢデバイスと認識する際の具体的な端末制御部１１内の処理は、図６に示すように仮想バスによりシミュレーションサーバ２０から受信したバスＩＤと操作者の入力で受け付けたバスＩＤとを比較し、両バスＩＤの一致を確認すると、上述したバスＩＤと共に受け付けたデバイス情報をデバイスドライバとＰｎＰマネージャに通知し、それを受けてＷｉｎｄｏｗｓのＯＳが仮想プリンタ部２１をＵＳＢデバイスと認識する。
【００２６】
このようにして端末制御部１１は、仮想プリンタ部２１をＵＳＢデバイスであると認識し、クライアント端末１０にシミュレーションサーバ２０の仮想プリンタ部２１との接続が完了し、接続処理が終了する。
次に端末制御部１１は、操作者による印刷データの入力と、インパクトプリンタの動作を模擬的に再現させるための印刷開始の指示入力が行われると、その印刷データを付した印刷シミュレーション電文をシミュレーションサーバ２０に送信する。
【００２７】
シミュレーションサーバ２０のサーバ制御部２３は、受信した印刷データをもとに仮想プリンタ部２１によって印刷動作を再現すると共に、イメージ生成部２２によって印刷状況イメージデータをドットインパクト毎に生成し、その印刷状況イメージデータをクライアント端末１０に送っていく。
そのため、端末制御部１１は受け取った印刷状況イメージデータに基づく印刷状況画面を表示画面１０ａに表示していき、これによって印字の経過をリアルタイムで確認させていく。
【００２８】
ここで、図７は印刷状況画面を示す説明図、図８は波形表示画面を示す説明図である。
図７に示すように、印刷状況画面では、ＳＩＤＭプリンタが制御できる最小の解像度で用紙を表現した画像を表示し、印字ヘッドピンが着弾した箇所をドットで塗りつぶすことにより印字の様子を表現し、印字がなされた用紙全体を示す画像と共に、用紙全体の中から指定された一部分を拡大表示した画像が表示される。
【００２９】
また、印字ヘッドの位置を追跡して表示することも可能であり、操作者に対して印字した瞬間をリアルタイムで見せて、さらに印字ヘッドの水平移動の動作や用紙の送り方向の移動を確認させることができる。
さらに、仮想プリンタ部２１は、印字ヘッド制御の情報から印字ヘッドに流れる電流を示す印字ヘッド電流値を算出する。
【００３０】
サーバ制御部２３は、所定時間毎に印字ヘッド電流値をシミュレーションの結果としてクライアント端末１０に送信する。
クライアント端末１０の端末制御部１１は、受信した印字ヘッド電流値を基に後述の波形表示画面を構成する。
なお、印刷状況画面と同時に別ウィンドウで波形表示画面が表示されているものとし、そのため操作者が操作部１０ｂによって画面切り替え操作を行うことで、印刷状況画面から図８に示す波形表示画面へと切り替わる。
【００３１】
波形表示画面は、上記で算出された印字ヘッド電流値に基づく、印刷の進行に伴う印字ヘッドに流れる電流の変化の様子を示す印字ヘッド電流波形を配置した画面である。
ここで、印字ヘッド電流値を算出するために必要な１ピン当りの電流値を算出する計算式を以下に示す。
【００３２】
Ｉ＝（（Ｅ／Ｒ・α）＊（１−Ｅｘｐ（−ｔ／（Ｌ／Ｒ））））＋α）＊同時ピン数の係数＊β
Ｉは１ピンあたりの電流、Ｅは印字ヘッドの印加電圧、Ｒは印字ヘッドのコイル巻き線抵抗、Ｌは印字ヘッドのコイルインダクタンス、αは係数、βは印字ヘッド電流に対する電源電流比の係数、ｔはドライブ開始から経過した時間（マイクロ秒）とする。
印字ヘッド電流値を算出する場合、最初に計算時点における同時ピン数から同時ピン数の係数を定める（例えば１ピンの場合は１、２ピン場合は１．０８７等とする。）。
【００３３】
サーバ制御部２３は、動作開始から経過した時間ｔを基に、動作しているピン毎の電流値Ｉを算出し、全てのピンの電流値を加算して印字ヘッド電流値を算出し、このような処理を所定時間毎に行い動作開始からの経過時間毎の印字ヘッド電流値を算出する。
このように算出された経過時間毎の印字ヘッド電流値をもとに端末制御部１１は印字ヘッド電流波形を構成し、その印字ヘッド電流波形をもとに図８に示すような波形表示画面を表示する。
また、波形表示画面には、算出された印字ヘッド電流値と同時ピン数を同時に表示できるものとする。
【００３４】
なお、上式で使用されるＥ、Ｒ、Ｌ、α、βのハードウェア特性を示す各種パラメータ値はシミュレータサーバ２０側の設定によって自由に変更できるものとする。
このようにして、端末制御部１１は、仮想プリンタ部２１によるＳＩＤＭプリンタのシミュレーションの結果として印刷状況画面と波形表示画面とを表示画面１０ａに表示する。
【００３５】
以上説明したように、本実施例では、クライアント端末とＬＡＮ接続するシミュレーションサーバに仮想プリンタ部を設け、クライアント端末に仮想プリンタ部をＵＳＢデバイスと認識させて接続させるため、１つのシミュレーションサーバに対し複数台のクライアント端末が接続可能となってシミュレーションを実行するためのプログラムを変更する場合、シミュレーションサーバの仮想プリンタ部の設定を変えるだけでよいため、開発の効率が向上する。
【００３６】
また、１台のシミュレーションサーバで複数台のクライアント端末を利用できることから、実開発環境を代替できることとなり、開発コストの抑制を行いつつ、開発要素単位での並行開発が実現でき、開発の効率を向上させることができる。
【００３７】
加えて、印字ヘッドに電流を流す時間（ドライブ時間）の閾値をサーバ記憶部に記憶しておき、印字ヘッド電流値を算出する際のドライブ時間を計測すると共に、ドライブ時間が閾値を超えたことを検出することで、印字ヘッドが紙に引っ掛かっている、つまり印字ヘッドピンが紙に引っ掛かって折れているものと判定でき、このような問題発生を検出したときに警告画面をクライアント端末に表示させるようにしてもよい。
【００３８】
また、プリンタファームウェアでは外部要因（温度、電圧）によってドライブ時間の長さを変える制御をしているが、この外部要因を仮想プリンタ部上で任意に設定させるための機能（スクリプトファイル）をシミュレーションサーバが備えるようにしてもよく、これにより様々な条件で印字ヘッドピン引っかけを検証することも可能である。
更に、シミュレーションサーバにプリンタ操作や温度、電圧の変化を任意の時間に指示するためのスクリプトファイルを読み込み実行機能を持たせることにより、ドライブ時間が変化する外部要因の論理的な組み合わせを全て再現することも可能である。
【符号の説明】
【００３９】
１    プリンタシミュレータシステム
１０  クライアント端末
１０ａ  表示画面
１０ｂ  操作部
１１  端末制御部
２０  シミュレーションサーバ
２１  仮想プリンタ部
２２  イメージ生成部
２３  サーバ制御部
２４  サーバ記憶部
【図１】
2012078919.tif 000003
【図２】
2012078919.tif 000004
【図３】
2012078919.tif 000005
【図４】
2012078919.tif 000006
【図５】
2012078919.tif 000007
【図６】
2012078919.tif 000008
【図７】
2012078919.tif 000009
【図８】
2012078919.tif 000010