(57)【要約】【課題】  対象装置用のプログラムの動作の確認を利用者に従来より効率良く行わせることができる動作確認システムを提供する。【解決手段】  開発システムは、複合機と、複合機用のプログラムの動作の確認を行うための開発用ＰＣとを備えており、開発用ＰＣは、動作の確認において複合機に実際に実行させる実機動作の機器固有命令を複合機に送信する制御部を備えており、複合機は、開発用ＰＣの制御部によって送信された機器固有命令を記憶する（ステップＳ７１）記憶部と、記憶部によって記憶された機器固有命令に基づいて実機動作を実行する（ステップＳ７４）制御部と、制御部による実機動作の実行を開始するために利用者によって操作される（ステップＳ７２）パネル上操作部とを備えていることを特徴とする。【選択図】  図６
2011065213.tif 000002
【特許請求の範囲】
【請求項１】
対象装置と、前記対象装置用のプログラムの動作の確認を行うための動作確認装置とを備えており、
前記動作確認装置は、前記動作の確認において前記対象装置に実際に実行させる実機動作の指示情報を前記対象装置に送信する指示情報送信手段を備えており、
前記対象装置は、前記指示情報送信手段によって送信された前記指示情報を記憶する指示情報記憶手段と、前記指示情報記憶手段によって記憶された前記指示情報に基づいて前記実機動作を実行する実機動作実行手段と、前記実機動作実行手段による前記実機動作の実行を開始するために利用者によって操作される操作手段とを備えていることを特徴とする動作確認システム。
【請求項２】
前記動作確認装置は、前記動作の確認において前記動作が前記実機動作と、前記対象装置に実際に実行させる代わりに前記動作確認装置自体で実行する模擬動作との何れであるかを判断する動作種類判断手段と、前記動作が前記模擬動作であると前記動作種類判断手段によって判断されたときに前記模擬動作を実行する模擬動作実行手段とを備えており、
前記指示情報送信手段は、前記動作が前記実機動作であると前記動作種類判断手段によって判断されたときに前記指示情報を前記対象装置に送信することを特徴とする請求項１に記載の動作確認システム。
【請求項３】
前記動作確認装置は、前記プログラムの開発装置であることを特徴とする請求項１または請求項２に記載の動作確認システム。
【請求項４】
前記対象装置は、画像形成装置であることを特徴とする請求項１から請求項３までの何れかに記載の動作確認システム。
【請求項５】
対象装置用のプログラムの動作の確認を行うための動作確認装置から、前記動作の確認において前記対象装置に実際に実行させる実機動作の指示情報を受信する前記対象装置であって、
前記動作確認装置から受信した前記指示情報を記憶する指示情報記憶手段と、前記指示情報記憶手段によって記憶された前記指示情報に基づいて前記実機動作を実行する実機動作実行手段と、前記実機動作実行手段による前記実機動作の実行を開始するために利用者によって操作される操作手段とを備えていることを特徴とする対象装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象装置用のプログラムの動作の確認を行うための動作確認システムに関する。
【背景技術】
【０００２】
従来、対象装置にインストールされて対象装置によって実行される対象装置用のプログラムは、通常、対象装置上ではなく、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの開発装置上で開発された後、直接またはネットワーク経由で対象装置に導入される。対象装置用のプログラムが開発されるときに、対象装置上でプログラムが正常に動作するか否かの動作確認が開発装置上で行われると便利であるので、開発装置上で動作するシミュレータが開発されている（例えば、特許文献１、２参照。）。
【０００３】
しかしながら、対象装置と開発装置とでハードウェアの構成が異なる場合には、対象装置上でのプログラムの動作の全てを開発装置上のシミュレータで確認することは、技術的に困難である。したがって、対象装置上でのプログラムの動作の全てを開発装置上のシミュレータで確認するようにすると、処理能力が非常に高い開発装置が必要になる。また、対象装置上でのプログラムの動作の全てを開発装置上のシミュレータで確認するようにすると、シミュレータが特定の対象装置の専用のものとなって汎用性に欠けてしまうので、対象装置の種類毎にシミュレータを開発しなければならず、時間的にもコスト的にも現実的ではない。
【０００４】
したがって、開発装置上に設けられた汎用性の高いシミュレータで対象装置上でのプログラムの動作確認を簡易的に行い、シミュレータによる動作確認においてプログラムの開発が成功していることが判明したときに、プログラムを対象装置に実際にインストールして対象装置上で最終的な動作確認を行う、というプログラムの開発方法が採用されることが多い。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−４３５１号公報
【特許文献２】特開２０００−２０３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のプログラムの開発方法では、最終的な動作確認においてプログラムの開発が成功したことが判明するまで、プログラムが何度も修正されて、その度にプログラムが対象装置に実際にインストールされて対象装置上で動作確認される必要がある。このようにプログラムを何度も対象装置にインストールして動作確認する作業は、プログラムの開発の効率を低下させている。
【０００７】
そこで、本発明は、対象装置用のプログラムの動作の確認を利用者に従来より効率良く行わせることができる動作確認システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の動作確認システムは、対象装置と、前記対象装置用のプログラムの動作の確認を行うための動作確認装置とを備えており、前記動作確認装置は、前記動作の確認において前記対象装置に実際に実行させる実機動作の指示情報を前記対象装置に送信する指示情報送信手段を備えており、前記対象装置は、前記指示情報送信手段によって送信された前記指示情報を記憶する指示情報記憶手段と、前記指示情報記憶手段によって記憶された前記指示情報に基づいて前記実機動作を実行する実機動作実行手段と、前記実機動作実行手段による前記実機動作の実行を開始するために利用者によって操作される操作手段とを備えていることを特徴とする。
【０００９】
この構成により、本発明の動作確認システムは、対象装置用のプログラムの動作の確認において、プログラムが対象装置に実際にインストールされなくても、対象装置で実際に実行する必要がある動作を対象装置に実行させることができる。したがって、本発明の動作確認システムは、対象装置用のプログラムの動作の確認を利用者に従来より効率良く行わせることができる。
【００１０】
また、本発明の動作確認システムの前記動作確認装置は、前記動作の確認において前記動作が前記実機動作と、前記対象装置に実際に実行させる代わりに前記動作確認装置自体で実行する模擬動作との何れであるかを判断する動作種類判断手段と、前記動作が前記模擬動作であると前記動作種類判断手段によって判断されたときに前記模擬動作を実行する模擬動作実行手段とを備えており、前記指示情報送信手段は、前記動作が前記実機動作であると前記動作種類判断手段によって判断されたときに前記指示情報を前記対象装置に送信することが好ましい。
【００１１】
この構成により、本発明の動作確認システムは、対象装置用のプログラムの動作の確認において、対象装置に実際に実行させる代わりに動作確認装置自体で実行することができる動作を動作確認装置に実行させることができる。したがって、本発明の動作確認システムは、対象装置用のプログラムの動作の確認を利用者に更に効率良く行わせることができる。
【００１２】
また、本発明の動作確認システムの前記動作確認装置は、前記プログラムの開発装置であることが好ましい。
【００１３】
この構成により、本発明の動作確認システムは、プログラムの開発と動作の確認を同一の装置において実現することができるので、対象装置用のプログラムの動作の確認を利用者に更に効率良く行わせることができる。
【００１４】
また、本発明の動作確認システムの前記対象装置は、画像形成装置であることが好ましい。
【００１５】
本発明の対象装置は、対象装置用のプログラムの動作の確認を行うための動作確認装置から、前記動作の確認において前記対象装置に実際に実行させる実機動作の指示情報を受信する前記対象装置であって、前記動作確認装置から受信した前記指示情報を記憶する指示情報記憶手段と、前記指示情報記憶手段によって記憶された前記指示情報に基づいて前記実機動作を実行する実機動作実行手段と、前記実機動作実行手段による前記実機動作の実行を開始するために利用者によって操作される操作手段とを備えていることを特徴とする。
【００１６】
この構成により、本発明の対象装置は、対象装置用のプログラムの動作の確認において、プログラムが対象装置に実際にインストールされなくても、対象装置で実際に実行する必要がある動作を対象装置に実行させることができる。したがって、本発明の対象装置は、対象装置用のプログラムの動作の確認を利用者に従来より効率良く行わせることができる。
【発明の効果】
【００１７】
本発明の動作確認システムは、対象装置用のプログラムの動作の確認を利用者に従来より効率良く行わせることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施の形態に係る開発システムのシステム構成を示すブロック図である。
【図２】図１に示す複合機の構成を示すブロック図である。
【図３】図１に示す開発用ＰＣの構成を示すブロック図である。
【図４】図３に示す開発用ＰＣの動作のフローチャートであって、ソースコードの動作確認用のコンパイル時の図である。
【図５】図３に示す開発用ＰＣの動作のフローチャートであって、動作確認用オブジェクトコードの実行時の図である。
【図６】図２に示す複合機の動作のフローチャートであって、開発用ＰＣから機器固有命令を受信したときの図である。
【図７】図３に示す開発用ＰＣの動作のフローチャートであって、ソースコードのインストール用のコンパイル時の図である。
【図８】図２に示す複合機の動作のフローチャートであって、インストールされたプログラムの実行時の図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施の形態について、図面を用いて説明する。
【００２０】
まず、本実施の形態に係る動作確認システムとしての開発システムの構成について説明する。
【００２１】
図１は、本実施の形態に係る開発システム１０のシステム構成を示すブロック図である。
【００２２】
図１に示すように、開発システム１０は、本発明の対象装置としての複合機２０と、複合機２０用のプログラムの動作の確認を行うための本発明の動作確認装置としての開発用ＰＣ３０とを備えている。複合機２０および開発用ＰＣ３０は、互いに通信可能な状態でネットワーク１１に接続されている。
【００２３】
開発システム１０は、複合機２０の他にも複合機を備えていても良い。開発システム１０は、複数種類の複合機を備えることによって、複数種類の複合機用のプログラムの開発および動作の確認が行われることができる。
【００２４】
また、開発システム１０は、開発用ＰＣ３０の他にも開発用ＰＣを備えていても良い。開発システム１０は、複数台の開発用ＰＣを備えることによって、複数の利用者によって同時に複合機用のプログラムの開発および動作の確認が行われることができる。
【００２５】
図２は、複合機２０の構成を示すブロック図である。
【００２６】
図２に示すように、複合機２０は、装置全体を制御する制御部２１と、種々の情報を記憶する記憶部２２と、利用者によって種々の操作が入力される操作パネル上の操作部（以下「パネル上操作部」という。）２３と、種々の情報を表示する操作パネル上のモニタ（以下「パネル上モニタ」という。）２４と、ネットワーク１１（図１参照。）を介して開発用ＰＣ３０（図１参照。）と通信を行うための通信部２５と、画像を読み取るスキャナ２６と、画像を印刷するプリンタ２７とを備えている。制御部２１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などから構成されている。記憶部２２は、例えばハードディスクなどから構成されている。パネル上操作部２３は、パネル上モニタ２４とともにタッチパネルを形成する操作部や、操作パネル上のボタンなどから構成されている。パネル上モニタ２４は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などから構成されている。
【００２７】
記憶部２２は、複合機２０の固有の命令である機器固有命令を処理するための機器固有命令処理プログラム２２ａと、機器固有命令に対応付けられた機器制御ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）２２ｂとを記憶しており、機器固有命令処理プログラム２２ａによって処理される機器固有命令２２ｃと、開発用ＰＣ３０によって開発されるプログラム２２ｄとが記憶されるようになっている。
【００２８】
機器固有命令としては、スキャナ２６によるスキャンやプリンタ２７による印刷などの開発用ＰＣ３０にはない機能の命令や、記憶部２２への入出力などの開発用ＰＣ３０に同等の機能があるが実行手順が異なるなどの何らかの違いがある機能の命令などがある。例えば、機器固有命令としては、ジョブの送信、ジョブ情報の取得、ジョブの削除等の制御、パネル上モニタ２４による表示、スキャナ２６によるスキャン、プリンタ２７による印刷などの命令がある。どのような命令を機器固有命令とするかは、設定次第である。
【００２９】
図３は、開発用ＰＣ３０の構成を示すブロック図である。
【００３０】
図３に示すように、開発用ＰＣ３０は、装置全体を制御する制御部３１と、種々の情報を記憶する記憶部３２と、利用者によって種々の操作が入力される操作部３３と、種々の情報を表示するモニタ３４と、ネットワーク１１（図１参照。）を介して複合機２０（図１参照。）と通信を行うための通信部３５とを備えており、複合機２０用のプログラムの開発装置である。制御部３１は、例えばＣＰＵなどから構成されている。記憶部３２は、例えばハードディスクなどから構成されている。操作部３３は、例えばキーボードやマウスなどから構成されている。モニタ３４は、例えばＬＣＤなどから構成されている。
【００３１】
記憶部３２は、プログラミング言語で記述されたプログラムを複合機２０のインストールのために複合機２０の制御部２１（図２参照。）によって直接実行されることが可能な機械語のプログラムに変換するためのプログラムであるインストール用コンパイラ３２ａと、プログラミング言語で記述されたプログラムを動作確認のために制御部３１によって直接実行されることが可能な機械語のプログラムに変換するためのプログラムである動作確認用コンパイラ３２ｂと、複合機２０の動作を複合機２０の代わりに開発用ＰＣ３０で実行するためのプログラムであるシミュレータ３２ｃとを記憶しており、インストール用コンパイラ３２ａおよび動作確認用コンパイラ３２ｂでコンパイルされる前のプログラムであってプログラミング言語によって記述されたソースコード３２ｄと、ソースコード３２ｄがインストール用コンパイラ３２ａでコンパイルされた後のプログラムであって機械語で記述されたインストール用オブジェクトコード３２ｅと、ソースコード３２ｄが動作確認用コンパイラ３２ｂでコンパイルされた後のプログラムであって機械語で記述された動作確認用オブジェクトコード３２ｆと、シミュレータ３２ｃによって処理される機器固有命令３２ｇとが記憶されるようになっている。
【００３２】
シミュレータ３２ｃは、機器固有命令を含む予め設定された命令を処理するようになっている。シミュレータ３２ｃがどのような命令を処理するかは、設定次第である。なお、本実施の形態においては、開発用ＰＣ３０は、シミュレータ３２ｃを備えているが、シミュレータ３２ｃに代えてシミュレータ３２ｃと同様な機能を実現することができるエミュレータを備えていても良い。
【００３３】
次に、開発システム１０（図１参照。）の動作について説明する。
【００３４】
開発用ＰＣ３０（図１参照。）の利用者は、開発用ＰＣ３０のモニタ３４（図３参照。）の画面を確認しながら操作部３３（図３参照。）から開発用ＰＣ３０に操作内容を入力することによって、複合機２０（図１参照。）用のプログラムのソースコード３２ｄ（図３参照。）を作成する。作成されたソースコード３２ｄは、開発用ＰＣ３０の記憶部３２（図３参照。）に記憶される。
【００３５】
説明を簡単にするため、以下においては、ソースコード３２ｄは、次のように記載されているとする。
1. Input A
2. Add A , 1
3. Display A
4. Print A
【００３６】
ここで、ソースコード３２ｄの１行目の「Input A」という命令は、パネル上操作部２３（図２参照。）から入力されたデータを記憶部２２（図２参照。）のデータ領域Ａに記憶することを意味している。２行目の「Add A , 1」という命令は、データ領域Ａに記憶されたデータに１を加えることを意味している。３行目の「Display A」という命令は、データ領域Ａに記憶されたデータをパネル上モニタ２４（図２参照。）に表示することを意味している。４行目の「Print A」という命令は、データ領域Ａに記憶されたデータをプリンタ２７（図２参照。）で印刷することを意味している。すなわち、ソースコード３２ｄは、複合機２０においてパネル上操作部２３から入力されたデータに１を加えたデータをパネル上モニタ２４に表示させてプリンタ２７に印刷させるように設計されたプログラムである。
【００３７】
図４は、開発用ＰＣ３０（図３参照。）の動作のフローチャートであって、ソースコード３２ｄ（図３参照。）の動作確認用のコンパイル時の図である。
【００３８】
開発用ＰＣ３０の利用者が操作部３３（図３参照。）を用いてソースコード３２ｄの動作確認用のコンパイルを開発用ＰＣ３０に指示すると、開発用ＰＣ３０の制御部３１（図３参照。）は、記憶部３２（図３参照。）に記憶されている動作確認用コンパイラ３２ｂ（図３参照。）を起動して、図４に示す処理を実行する。
【００３９】
図４に示すように、制御部３１は、ソースコード３２ｄから命令を１つ取り出し（ステップＳ４１）、ステップＳ４１において取り出した命令と同名の呼出し点がシミュレータ３２ｃ（図３参照。）にあるか否かを判断する（ステップＳ４２）。
【００４０】
制御部３１は、ステップＳ４１において取り出した命令と同名の呼出し点がシミュレータ３２ｃにないとステップＳ４２において判断すると、ステップＳ４１において取り出した命令をプログラミング言語から機械語に変換し（ステップＳ４３）、ソースコード３２ｄの全ての命令を機械語に変換したか否かを判断する（ステップＳ４４）。
【００４１】
制御部３１は、ステップＳ４１において取り出した命令と同名の呼出し点がシミュレータ３２ｃにあるとステップＳ４２において判断すると、ステップＳ４１において取り出した命令についてシミュレータ３２ｃの呼出し点が呼出されるようにプログラミング言語から機械語に変換し（ステップＳ４５）、ソースコード３２ｄの全ての命令を機械語に変換したか否かを判断する（ステップＳ４４）。
【００４２】
制御部３１は、ソースコード３２ｄの全ての命令を機械語に変換していないとステップＳ４４において判断すると、再びステップＳ４１の処理を実行する。一方、制御部３１は、ソースコード３２ｄの全ての命令を機械語に変換したとステップＳ４４において判断すると、図４に示す処理を終了する。
【００４３】
したがって、シミュレータ３２ｃに「Input」および「Add」という呼出し点がなく「Display」および「Print」という呼出し点がある場合、上述したソースコード３２ｄは、図４に示す処理によって、１行目の「Input A」という命令と、２行目の「Add A , 1」という命令とがプログラミング言語から機械語に変換され（ステップＳ４３）、３行目の「Display A」という命令と、４行目の「Print A」という命令とがシミュレータ３２ｃの呼出し点が呼出されるようにプログラミング言語から機械語に変換される（ステップＳ４５）。
【００４４】
このようにして生成された動作確認用オブジェクトコード３２ｆ（図３参照。）は、開発用ＰＣ３０の記憶部３２に記憶される。
【００４５】
次に、動作確認用オブジェクトコード３２ｆが実行されるときの動作について説明する。図５は、開発用ＰＣ３０（図３参照。）の動作のフローチャートであって、動作確認用オブジェクトコード３２ｆ（図３参照。）の実行時の図である。
【００４６】
開発用ＰＣ３０の利用者が操作部３３（図３参照。）を用いて動作確認用オブジェクトコード３２ｆの実行を開発用ＰＣ３０に指示すると、開発用ＰＣ３０の制御部３１（図３参照。）は、図５に示す処理を実行する。
【００４７】
図５に示すように、制御部３１は、動作確認用オブジェクトコード３２ｆから命令を１つ取り出し（ステップＳ５１）、ステップＳ５１において取り出した命令にシミュレータ３２ｃ（図３参照。）の呼出しがあるか否かを判断する（ステップＳ５２）。
【００４８】
制御部３１は、ステップＳ５１において取り出した命令にシミュレータ３２ｃの呼出しがないとステップＳ５２において判断すると、ステップＳ５１において取り出した命令をシミュレータ３２ｃを呼出さずに実行し（ステップＳ５３）、動作確認用オブジェクトコード３２ｆの全ての命令を処理したか否かを判断する（ステップＳ５４）。
【００４９】
制御部３１は、ステップＳ５１において取り出した命令にシミュレータ３２ｃの呼出しがあるとステップＳ５２において判断すると、シミュレータ３２ｃを呼出し（ステップＳ５５）、ステップＳ５１において取り出した命令が機器固有命令であるか否かをシミュレータ３２ｃによって判断する（ステップＳ５６）。
【００５０】
制御部３１は、ステップＳ５１において取り出した命令が機器固有命令ではないとシミュレータ３２ｃによってステップＳ５６において判断すると、ステップＳ５１において取り出した命令をシミュレータ３２ｃによって実行し（ステップＳ５７）、動作確認用オブジェクトコード３２ｆの全ての命令を処理したか否かを判断する（ステップＳ５４）。
【００５１】
制御部３１は、ステップＳ５１において取り出した命令が機器固有命令であるとシミュレータ３２ｃによってステップＳ５６において判断すると、ステップＳ５１において取り出した命令を機器固有命令３２ｇ（図３参照。）としてシミュレータ３２ｃによって記憶部３２に記憶し（ステップＳ５８）、動作確認用オブジェクトコード３２ｆの全ての命令を処理したか否かを判断する（ステップＳ５４）。
【００５２】
制御部３１は、動作確認用オブジェクトコード３２ｆの全ての命令を処理していないとステップＳ５４において判断すると、再びステップＳ５１の処理を実行する。一方、制御部３１は、動作確認用オブジェクトコード３２ｆの全ての命令を処理したとステップＳ５４において判断すると、記憶部３２に機器固有命令３２ｇが記憶されているか否かを判断する（ステップＳ５９）。
【００５３】
制御部３１は、記憶部３２に機器固有命令３２ｇが記憶されていないとステップＳ５９において判断すると、図５に示す処理を終了する。一方、制御部３１は、記憶部３２に機器固有命令３２ｇが記憶されているとステップＳ５９において判断すると、記憶部３２に記憶されている機器固有命令３２ｇを例えばＸＭＬ形式に変換して通信部３５（図３参照。）を介して複合機２０（図１参照。）に送信し（ステップＳ６０）、記憶部３２に記憶されている機器固有命令３２ｇを削除して（ステップＳ６１）、図５に示す処理を終了する。
【００５４】
なお、制御部３１は、ステップＳ６０の処理をシミュレータ３２ｃによって実行する。
【００５５】
続いて、ステップＳ６０において開発用ＰＣ３０から送信された機器固有命令を複合機２０が受信したときの複合機２０の動作について説明する。図６は、複合機２０（図２参照。）の動作のフローチャートであって、開発用ＰＣ３０（図３参照。）から機器固有命令を受信したときの図である。
【００５６】
開発用ＰＣ３０から送信された機器固有命令を通信部２５（図２参照。）を介して複合機２０が受信すると、複合機２０の制御部２１（図２参照。）は、図６に示す処理を実行する。
【００５７】
図６に示すように、制御部２１は、通信部２５を介して受信した機器固有命令を機器固有命令２２ｃ（図２参照。）として記憶部２２（図２参照。）に記憶した後（ステップＳ７１）、パネル上操作部２３（図２参照。）から機器固有命令２２ｃの実行が指示されたか否かを判断する（ステップＳ７２）。
【００５８】
利用者がパネル上操作部２３を用いて機器固有命令２２ｃの実行を複合機２０に指示しない限り、制御部２１は、パネル上操作部２３から機器固有命令２２ｃの実行が指示されていないとステップＳ７２において判断するので、ステップＳ７２の処理を継続し続ける。利用者がパネル上操作部２３を用いて機器固有命令２２ｃの実行を複合機２０に指示すると、制御部２１は、パネル上操作部２３から機器固有命令２２ｃの実行が指示されたとステップＳ７２において判断し、記憶部２２に記憶された機器固有命令２２ｃから命令を１つ取り出し（ステップＳ７３）、ステップＳ７３において取り出した命令を機器固有命令処理プログラム２２ａ（図２参照。）によって実行する（ステップＳ７４）。すなわち、制御部２１は、ステップＳ７３において取り出した命令に対する機器制御ＡＰＩ２２ｂを呼出すことによって、命令を実行する。
【００５９】
次いで、制御部２１は、記憶部２２に記憶された機器固有命令２２ｃの全てを処理したか否かを判断する（ステップＳ７５）。
【００６０】
制御部２１は、記憶部２２に記憶された機器固有命令２２ｃの全てを処理していないとステップＳ７５において判断すると、再びステップＳ７３の処理を実行する。一方、制御部２１は、記憶部２２に記憶された機器固有命令２２ｃの全てを処理したとステップＳ７５において判断すると、記憶部２２に記憶されている機器固有命令２２ｃを削除し（ステップＳ７６）、図６に示す処理を終了する。
【００６１】
したがって、開発用ＰＣ３０の操作部３３（図３参照。）に例えば“９９”が入力されるとき、図５および図６に示す処理が次のように実行される。
【００６２】
まず、上述した動作確認用オブジェクトコード３２ｆ（図３参照。）の１行目の「Input A」という命令は、シミュレータ３２ｃ（図３参照。）の呼出し点が呼出されないようにコンパイル時に記述されているので、開発用ＰＣ３０の制御部３１（図３参照。）によってシミュレータ３２ｃが呼出されずに実行される（ステップＳ５３）。すなわち、制御部３１は、操作部３３から入力されたデータ“９９”を開発用ＰＣ３０の記憶部３２（図３参照。）のデータ領域Ａに記憶する。
【００６３】
次いで、動作確認用オブジェクトコード３２ｆの２行目の「Add A , 1」という命令も、シミュレータ３２ｃの呼出し点が呼出されないようにコンパイル時に記述されているので、制御部３１によってシミュレータ３２ｃが呼出されずに実行される（ステップＳ５３）。すなわち、制御部３１は、記憶部３２のデータ領域Ａに記憶されたデータ“９９”に１を加えて“１００”とする。
【００６４】
次いで、動作確認用オブジェクトコード３２ｆの３行目の「Display A」という命令は、上述したようにシミュレータ３２ｃの呼出し点が呼出されるようにコンパイル時に記述されているので、制御部３１によってシミュレータ３２ｃが呼出される（ステップＳ５５）。そして、「Display」という命令は、機器固有命令であるとシミュレータ３２ｃによって判断されて（ステップＳ５６）、シミュレータ３２ｃによって記憶部３２に記憶させられる（ステップＳ５８）。すなわち、制御部３１は、記憶部３２のデータ領域Ａに記憶されたデータが“１００”になっているので、シミュレータ３２ｃによって記憶部３２に「Display 100」という機器固有命令を記憶する。
【００６５】
次いで、動作確認用オブジェクトコード３２ｆの４行目の「Print A」という命令も、上述したようにシミュレータ３２ｃの呼出し点が呼出されるようにコンパイル時に記述されているので、制御部３１によってシミュレータ３２ｃが呼出される（ステップＳ５５）。そして、「Print」という命令は、機器固有命令であるとシミュレータ３２ｃによって判断されて（ステップＳ５６）、シミュレータ３２ｃによって記憶部３２に記憶させられる（ステップＳ５８）。すなわち、制御部３１は、記憶部３２のデータ領域Ａに記憶されたデータが“１００”になっているので、シミュレータ３２ｃによって記憶部３２に「Print 100」という機器固有命令を記憶する。
【００６６】
この時点で、記憶部３２には、次の２行の機器固有命令３２ｇ（図３参照。）が記憶されている。
1. Display 100
2. Print 100
【００６７】
そして、制御部３１は、記憶部３２に記憶されている機器固有命令３２ｇをシミュレータ３２ｃによって例えばＸＭＬ形式に変換して複合機２０（図１参照。）に送信する（ステップＳ６０）。複合機２０の制御部２１（図２参照。）は、開発用ＰＣ３０から受信した機器固有命令を機器固有命令２２ｃ（図２参照。）として記憶部２２（図２参照。）に記憶する（ステップＳ７１）。
【００６８】
次いで、利用者がパネル上操作部２３を用いて機器固有命令２２ｃの実行を複合機２０に指示すると（ステップＳ７２）、記憶部２２に記憶されている機器固有命令２２ｃの１行目の「Display 100」という命令は、制御部２１によって機器固有命令処理プログラム２２ａ（図２参照。）で実行される（ステップＳ７４）。すなわち、制御部２１は、データ“１００”をパネル上モニタ２４（図２参照。）に表示させる。
【００６９】
次いで、記憶部２２に記憶されている機器固有命令２２ｃの２行目の「Print 100」という命令も、制御部２１によって機器固有命令処理プログラム２２ａで実行される（ステップＳ７４）。すなわち、制御部２１は、データ“１００”をプリンタ２７（図２参照。）に印刷させる。
【００７０】
以上に説明したように、動作確認用オブジェクトコード３２ｆは、開発用ＰＣ３０の操作部３３から入力されたデータに１を加えたデータを複合機２０のパネル上モニタ２４に表示させて複合機２０のプリンタ２７に印刷させるプログラムである。開発用ＰＣ３０の利用者は、複合機２０のパネル上モニタ２４による表示結果と、複合機２０のプリンタ２７による印刷結果とを確認することによって、プログラムの開発が成功したか否かを認識することができる。
【００７１】
なお、以上においては、「Display」という命令が機器固有命令であるとシミュレータ３２ｃによって判断される場合について説明したが、開発用ＰＣ３０にも複合機２０のパネル上モニタ２４と同様に表示機能を有するモニタ３４が備えられているので、シミュレータ３２ｃが「Display」という命令を機器固有命令であると判断しないように設定されていても良い。このように設定されている場合、動作確認用オブジェクトコード３２ｆの３行目の「Display A」という命令は、機器固有命令であるとシミュレータ３２ｃによって判断されずに（ステップＳ５６）、シミュレータ３２ｃによって実行される（ステップＳ５７）。すなわち、制御部３１は、記憶部３２のデータ領域Ａに記憶されたデータ“１００”をモニタ３４に表示させる。したがって、動作確認用オブジェクトコード３２ｆは、開発用ＰＣ３０の操作部３３から入力されたデータに１を加えたデータを開発用ＰＣ３０のモニタ３４に表示させて複合機２０のプリンタ２７に印刷させるプログラムとなる。開発用ＰＣ３０の利用者は、開発用ＰＣ３０のモニタ３４による表示結果と、複合機２０のプリンタ２７による印刷結果とを確認することによって、プログラムの開発が成功したか否かを認識することができる。
【００７２】
以上に説明したように、複合機２０用のプログラムの動作の確認における動作には、複合機２０に実際に実行させる実機動作（ステップＳ７４）と、複合機２０に実際に実行させる代わりに開発用ＰＣ３０自体で実行する模擬動作（ステップＳ５３およびステップＳ５７）とがある。開発用ＰＣ３０の制御部３１は、ステップＳ５２およびステップＳ５６によって複合機２０用のプログラムの動作の確認において動作が実機動作および模擬動作の何れであるかを判断するようになっており、本発明の動作種類判断手段を構成している。また、制御部３１は、複合機２０用のプログラムの動作の確認において動作が模擬動作であると判断したときに模擬動作を実行する（ステップＳ５３およびステップＳ５７）ようになっており、本発明の模擬動作実行手段を構成している。また、制御部３１は、複合機２０用のプログラムの動作の確認において動作が実機動作であると判断したときに機器固有命令３２ｇを複合機２０に送信する（ステップＳ６０）ようになっている。
【００７３】
また、複合機２０の記憶部２２に記憶される機器固有命令２２ｃや開発用ＰＣ３０の記憶部３２に記憶される機器固有命令３２ｇは、複合機２０用のプログラムの動作の確認において実機動作の指示情報である。開発用ＰＣ３０の制御部３１は、機器固有命令３２ｇを複合機２０に送信する（ステップＳ６０）ようになっており、本発明の指示情報送信手段を構成している。複合機２０の記憶部２２は、開発用ＰＣ３０の制御部３１によって送信された機器固有命令３２ｇを機器固有命令２２ｃとして記憶する（ステップＳ７１）ようになっており、本発明の指示情報記憶手段を構成している。複合機２０の制御部２１は、記憶部２２に記憶された機器固有命令２２ｃに基づいて実機動作を実行する（ステップＳ７４）ようになっており、本発明の実機動作実行手段を構成している。複合機２０のパネル上操作部２３は、制御部２１による実機動作の実行を開始するために利用者によって操作される（ステップＳ７２）ようになっており、本発明の操作手段を構成している。
【００７４】
上述した動作確認によってプログラムの開発が成功したことが判明した場合、プログラムを複合機２０にインストールするためのコンパイルが行われる。一方、動作確認によってプログラムの開発が失敗していることが判明した場合には、プログラムの開発が成功したことが判明するまで、開発用ＰＣ３０でソースコード３２ｄ（図３参照。）を修正し、動作確認用のコンパイルを行い、動作確認を行うという上述した一連の処理を繰り返す。
【００７５】
次に、プログラムを複合機２０にインストールするためのコンパイル時の動作について説明する。なお、図７は、開発用ＰＣ３０（図３参照。）の動作のフローチャートであって、ソースコード３２ｄ（図３参照。）のインストール用のコンパイル時の図である。
【００７６】
開発用ＰＣ３０の利用者が操作部３３（図３参照。）を用いてソースコード３２ｄのインストール用のコンパイルを開発用ＰＣ３０に指示すると、開発用ＰＣ３０の制御部３１（図３参照。）は、記憶部３２（図３参照。）に記憶されているインストール用コンパイラ３２ａ（図３参照。）を起動して、図７に示す処理を実行する。
【００７７】
図７に示すように、制御部３１は、ソースコード３２ｄから命令を１つ取り出し（ステップＳ８１）、ステップＳ８１において取り出した命令をプログラミング言語から機械語に変換し（ステップＳ８２）、ソースコード３２ｄの全ての命令を機械語に変換したか否かを判断する（ステップＳ８３）。
【００７８】
制御部３１は、ソースコード３２ｄの全ての命令を機械語に変換していないとステップＳ８３において判断すると、再びステップＳ８１の処理を実行する。一方、制御部３１は、ソースコード３２ｄの全ての命令を機械語に変換したとステップＳ８３において判断すると、図７に示す処理を終了する。
【００７９】
したがって、上述したソースコード３２ｄは、図７に示す処理によって、１行目の「Input A」という命令と、２行目の「Add A , 1」という命令と、３行目の「Display A」という命令と、４行目の「Print A」という命令との全てがプログラミング言語から機械語に変換される（ステップＳ８２）。
【００８０】
このようにして生成されたインストール用オブジェクトコード３２ｅ（図３参照。）は、例えばネットワーク１１（図１参照。）を介して複合機２０（図１参照。）に送信されて複合機２０にインストールされ、複合機２０の記憶部２２（図２参照。）にプログラム２２ｄ（図２参照。）として記憶される。
【００８１】
次に、複合機２０にインストールされたプログラム２２ｄが実行されるときの動作について説明する。図８は、複合機２０（図２参照。）の動作のフローチャートであって、インストールされたプログラム２２ｄ（図２参照。）の実行時の図である。
【００８２】
複合機２０の利用者がパネル上操作部２３（図２参照。）を用いてプログラム２２ｄの実行を複合機２０に指示すると、複合機２０の制御部２１（図２参照。）は、図８に示す処理を実行する。
【００８３】
図８に示すように、制御部２１は、プログラム２２ｄから命令を１つ取り出し（ステップＳ９１）、ステップＳ９１において取り出した命令を実行し（ステップＳ９２）、プログラム２２ｄの全ての命令を処理したか否かを判断する（ステップＳ９３）。
【００８４】
制御部２１は、プログラム２２ｄの全ての命令を処理していないとステップＳ９３において判断すると、再びステップＳ９１の処理を実行する。一方、制御部２１は、プログラム２２ｄの全ての命令を処理したとステップＳ９３において判断すると、図８に示す処理を終了する。
【００８５】
したがって、複合機２０のパネル上操作部２３に例えば“９９”が入力されるとき、図８に示す処理が次のように実行される。
【００８６】
まず、上述したプログラム２２ｄの１行目の「Input A」という命令によって、制御部２１は、パネル上操作部２３から入力されたデータ“９９”を記憶部２２（図２参照。）のデータ領域Ａに記憶する（ステップＳ９２）。
【００８７】
次いで、プログラム２２ｄの２行目の「Add A , 1」という命令によって、制御部２１は、記憶部２２のデータ領域Ａに記憶されたデータ“９９”に１を加えて“１００”とする（ステップＳ９２）。
【００８８】
次いで、プログラム２２ｄの３行目の「Display A」という命令によって、制御部２１は、記憶部２２のデータ領域Ａに記憶されたデータ“１００”をパネル上モニタ２４（図２参照。）に表示させる（ステップＳ９２）。
【００８９】
最後に、プログラム２２ｄの４行目の「Print A」という命令によって、制御部２１は、記憶部２２のデータ領域Ａに記憶されたデータ“１００”をプリンタ２７（図２参照。）に印刷させる（ステップＳ９２）。
【００９０】
すなわち、プログラム２２ｄは、開発時の設計通り、複合機２０においてパネル上操作部２３から入力されたデータに１を加えたデータをパネル上モニタ２４に表示させてプリンタ２７に印刷させるプログラムである。
【００９１】
以上に説明したように、開発システム１０は、複合機２０用のプログラム２２ｄの動作の確認において、プログラム２２ｄが複合機２０に実際にインストールされなくても、複合機２０で実際に実行する必要がある動作を複合機２０に実行させることができる。したがって、開発システム１０は、複合機２０用のプログラム２２ｄの動作の確認を利用者に従来より効率良く行わせることができる。
【００９２】
複合機２０用のプログラム２２ｄの動作の確認において、仮に実機動作が利用者のパネル上操作部２３による指示を待たずに自動的に行われるとすると、複合機２０と、開発用ＰＣ３０とが離れて設置されている場合には、利用者が実際に複合機２０の前に駆け付けたときに既に実機動作が終了していて利用者が実機動作を確認できない可能性がある。これに対して、開発システム１０は、利用者がパネル上操作部２３を用いて機器固有命令２２ｃの実行を複合機２０に指示してから実機動作を開始するので、利用者が実際に複合機２０の前に立って実機動作を確認できるタイミングで実機動作を行わせることができる。この利点は、例えば大規模な開発組織などのように、複合機２０と、開発用ＰＣ３０とが離れて設置されているほど、大きい。
【００９３】
また、開発システム１０は、複合機２０用のプログラム２２ｄの動作の確認において、複合機２０に実際に実行させる代わりに開発用ＰＣ３０自体で実行することができる動作を開発用ＰＣ３０に実行させることができる。したがって、開発システム１０は、複合機２０用のプログラム２２ｄの動作の確認を利用者に更に効率良く行わせることができる。
【００９４】
なお、開発システム１０は、本発明の動作確認装置としてプログラムの開発装置が採用されており、複合機２０用のプログラムの開発と、その動作の確認とを同一の装置において実現することができるので、複合機２０用のプログラムの動作の確認を利用者に更に効率良く行わせることができる。もちろん、開発システム１０は、プログラムの開発装置とは別に動作確認装置が設けられていても良い。
【００９５】
また、本発明の対象装置は、本実施の形態において複合機について説明しているが、コピー機、プリンタ、ファクシミリ機などの複合機以外の画像形成装置であっても良いし、プログラムをインストールできる装置であれば画像形成装置以外の装置であっても良い。
【符号の説明】
【００９６】
１０  開発システム（動作確認システム）
２０  複合機（対象装置）
２１  制御部（実機動作実行手段）
２２ｃ  機器固有命令（指示情報）
２２ｄ  プログラム（対象装置用のプログラム）
２３  パネル上操作部（操作手段）
３０  開発用ＰＣ（動作確認装置、開発装置）
３１  制御部（指示情報送信手段、動作種類判断手段、模擬動作実行手段）
３２ｇ  機器固有命令（指示情報）
【図１】
2011065213.tif 000003
【図２】
2011065213.tif 000004
【図３】
2011065213.tif 000005
【図４】
2011065213.tif 000006
【図５】
2011065213.tif 000007
【図６】
2011065213.tif 000008
【図７】
2011065213.tif 000009
【図８】
2011065213.tif 000010