(57)【要約】【課題】個々のプログラムの巨大化を回避して、分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することのできるプログラム実行システムを得る。【解決手段】プログラム１０ａ、１０ｂを作成するためのプログラミングソフトウェア９と、コード化されたプログラム１０ａを保持するコード保持手段２と、プログラム１０ｂのコード化ファイル７ｂを格納する蓄積手段６と、実行対象となるプログラムが展開されるメモリ領域３と、プログラムを実行するためのプログラム実行手段４と、コード保持手段２、メモリ領域３およびプログラム実行手段４を搭載する検査装置１とを備え、プログラム実行手段４は、プログラムロード手段５を含む。プログラムロード手段５は、プログラム１０ａの動作中に、プログラム１０ｂに対する呼び出し命令に応答して蓄積手段６からメモリ領域３にプログラム１０ｂをロードする。【選択図】図１
2007004273.tif 000002
【特許請求の範囲】
【請求項１】
コード化された第１のプログラムを保持するコード保持手段と、
前記コード保持手段に保持されている第１のプログラムが展開されるメモリ領域と、
前記メモリ領域に展開された第１のプログラムを実行するプログラム実行手段と
を備えたプログラム実行システムにおいて、
コード化された第２のプログラムをコード化ファイルとして格納する蓄積手段をさらに備え、
前記プログラム実行手段は、前記蓄積手段にコード化ファイルとして格納されている前記第２のプログラムを前記メモリ領域にロードするためのプログラムロード手段を含み、
前記プログラム実行手段は、前記メモリ領域に展開された前記第１のプログラムを実行している動作中に、前記蓄積手段内の前記第２のプログラムに対する呼び出し命令に応答して、前記蓄積手段内の前記第２のプログラムを前記メモリ領域にロードして、前記第２のプログラムを実行することを特徴とするプログラム実行システム。
【請求項２】
前記蓄積手段は、ハードディスクまたはメモリカードにより構成されたことを特徴とする請求項１に記載のプログラム実行システム。
【請求項３】
前記蓄積手段は、前記第２のプログラムに加えて、前記第１のプログラムまたは第３のプログラムをコード化ファイルとして格納しており、
前記プログラム実行手段は、
前記メモリ領域に展開された前記第１のプログラムを実行している動作中に、前記コード保持手段内の前記第１のプログラムまたは前記蓄積手段内の前記第１または第３のプログラムに対する呼び出し命令に応答して、前記コード保持手段内の前記第１のプログラムまたは前記蓄積手段内の前記第１または第３のプログラムを前記メモリ領域にロードして、前記第２のプログラムを実行し、
前記第２のプログラムを実行している動作中に、前記蓄積手段内の前記第１または第３のプログラムに対する呼び出し命令に応答して、前記蓄積手段内の前記第１または第３のプログラムを前記メモリ領域にロードして、前記第１または第３のプログラムを実行することを特徴とする請求項１または請求項２に記載のプログラム実行システム。
【請求項４】
前記プログラム実行手段は、
前記メモリ領域に展開されたプログラムを実行している動作中に、前記蓄積手段にコード化ファイルとして格納されているプログラム中の該当する実行部分に対する呼び出し命令に応答して、前記蓄積手段に格納されたプログラムの中から前記該当する実行部分に対応するプログラム実行単位を前記メモリ領域にロードして、前記プログラム実行単位を実行することを特徴とする請求項１から請求項３までのいずれか１項に記載のプログラム実行システム。
【請求項５】
前記第２のプログラムは、前記プログラム実行システムに対する初期化情報を含み、
前記プログラムロード手段は、前記蓄積手段からの前記第２のプログラムのロード時に、前記初期化情報に基づいて、初期化を実行することを特徴とする請求項１から請求項４までのいずれか１項に記載のプログラム実行システム。
【請求項６】
前記プログラム実行手段は、
前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムが前記蓄積手段に存在するか否かを確認し、
呼び出し命令に応答する前記所定プログラムが前記蓄積手段内に存在しない場合には、エラー処理を実行することを特徴とする請求項１から請求項５までのいずれか１項に記載のプログラム実行システム。
【請求項７】
所定プログラムに対する呼び出し命令を用いたプログラムは、前記呼び出し命令に応答する前記所定プログラムが格納されている前記蓄積手段に関する読込先情報を含み、
前記プログラム実行手段は、前記読込先情報に応じて、前記所定プログラムの読込先を個別に変更することを特徴とする請求項１から請求項６までのいずれか１項に記載のプログラム実行システム。
【請求項８】
前記プログラム実行手段は、プログラムロード履歴保存手段を含み、
前記プログラムロード履歴保存手段は、前記蓄積手段内の所定プログラムに対する呼び出し命令に応答して、前記プログラム実行手段が前記蓄積手段内の前記所定プログラムを前記メモリ領域にロードして実行する際に、前記所定プログラムがロードされたことを履歴として保存することを特徴とする請求項１から請求項７までのいずれか１項に記載のプログラム実行システム。
【請求項９】
前記プログラム実行手段は、プログラムアップロード手段を含み、
前記プログラムアップロード手段は、前記プログラム実行手段が実行中のプログラムを、前記蓄積手段にアップロードすることを特徴とする請求項１から請求項８までのいずれか１項に記載のプログラム実行システム。
【請求項１０】
前記プログラム実行手段は、
前記プログラムアップロード手段による前記蓄積手段へのプログラムアップロード時に、前記蓄積手段にアップロードされる前記プログラムに対してアプリケーションバージョン情報を付加することを特徴とする請求項９に記載のプログラム実行システム。
【請求項１１】
前記蓄積手段に格納されているプログラムは、自身が動作するための動作コンフィグレーション情報を含み、
前記プログラム実行手段は、コンフィグレーション整合性チェック手段を含み、
前記コンフィグレーション整合性チェック手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作コンフィグレーション情報と、前記プログラム実行手段の動作している環境コンフィグレーション情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項１から請求項１０までのいずれか１項に記載のプログラム実行システム。
【請求項１２】
前記コンフィグレーション整合性チェック手段は、
前記動作コンフィグレーション情報と前記環境コンフィグレーション情報との整合性確認時に、前記環境コンフィグレーション情報が、前記所定プログラムが動作するために十分であるか否かを判定し、
前記環境コンフィグレーション情報が、前記所定プログラムが動作するために不十分である場合には、エラー処理を実行することを特徴とする請求項１１に記載のプログラム実行システム。
【請求項１３】
前記蓄積手段に格納されているプログラムは、自身が動作するための動作アプリケーションバージョン情報を含み、
前記プログラム実行手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作アプリケーションバージョン情報と前記プログラム実行手段の環境アプリケーションバージョン情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項１から請求項１２までのいずれか１項に記載のプログラム実行システム。
【請求項１４】
前記蓄積手段に格納されているプログラムは、自身が動作するための動作Ｆ／Ｗバージョン情報を含み、
前記プログラム実行手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作Ｆ／Ｗバージョン情報と、前記プログラム実行手段の動作している環境Ｆ／Ｗバージョン情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラー処理を実行することを特徴とする請求項１から請求項１３までのいずれか１項に記載のプログラム実行システム。
【請求項１５】
請求項１から請求項１４までのいずれか１項に記載のプログラム実行システムにより実行される少なくとも前記第２のプログラムを作成するためのプログラム作成手段を備えたプログラミングシステムであって、
前記プログラム生成手段は、コード化された前記第２のプログラムをコード化ファイルとして生成するコード化ファイル生成手段を含み、
前記第１のプログラムにおけるプログラムに対する呼び出し命令に応答して呼び出される前記第２のプログラムを、別途コード化して前記コード化ファイルとして生成することを特徴とするプログラミングシステム。
【請求項１６】
前記コード化ファイル生成手段は、
コンフィグレーション情報を外部へ書き出すエクスポート手段と、
外部へ書き出されたコンフィグレーション情報を読み込むインポート手段とを含み、
前記第１のプログラムからの呼び出し命令に応答して呼び出される前記第２のプログラムを作成する際に、前記第１のプログラムを作成した際のコンフィグレーション情報を、前記第２のプログラムを作成する際に流用することを特徴とする請求項１５に記載のプログラミングシステム。
【請求項１７】
前記コード化ファイル生成手段は、外部のコンフィグレーション情報を参照するリンク手段を含み、
前記第１のプログラムからの呼び出し命令に応答して呼び出される前記第２のプログラムを作成する際に、前記第１のプログラムを作成した際のコンフィグレーション情報を、第２のプログラムを作成する際に流用することを特徴とする請求項１５に記載のプログラミングシステム。
【請求項１８】
前記プログラム作成手段により作成されたプログラムまたはコード化ファイルを、１つ以上読み込んで解析するために、
呼び出し命令に応答して呼び出されるプログラムの呼び出し関係を解析するプログラム解析手段と、
前記プログラム解析手段により得られたプログラムの呼び出し関係の解析結果を表示する解析結果表示手段と
をさらに備えたことを特徴とする請求項１５から請求項１７までのいずれか１項に記載のプログラミングシステム。
【請求項１９】
前記プログラム作成手段により作成されたプログラムまたはコード化ファイルを、１つ以上管理するために、
前記プログラムまたは前記コード化ファイルをアプリケーションごとに登録して管理するプログラム管理手段と、
前記プログラム管理手段に登録されたプログラムまたはコード化ファイルの依存関係をアプリケーションごとに表示する依存関係表示手段と、
をさらに備えたことを特徴とする請求項１５から請求項１８までのいずれか１項に記載のプログラミングシステム。
【請求項２０】
前記アプリケーションごとに登録されているすべてのプログラムやコード化ファイルに対して、コンフィグレーション情報を一括して更新するためのコンフィグレーション一括更新手段をさらに備えたことを特徴とする請求項１９に記載のプログラミングシステム。
【請求項２１】
請求項１５から請求項１７までのいずれか１項に記載のプログラミングシステムにより作成されたプログラムまたはコード化ファイルを、１つ以上読み込んで解析するためのプログラム解析システムであって、
呼び出し命令に応答して呼び出されるプログラムの呼び出し関係を解析するプログラム解析手段と、
前記プログラム解析手段により得られた前記プログラムの呼び出し関係の解析結果を表示する解析結果表示手段と
を備えたことを特徴とするプログラム解析システム。
【請求項２２】
請求項１５から請求項１７までのいずれか１項に記載のプログラミングシステムにより作成されたプログラムまたはコード化ファイルを、１つ以上管理するプログラム管理システムであって、
前記プログラムまたは前記コード化ファイルをアプリケーションごとに登録して管理するプログラム管理手段と、
前記プログラム管理手段に登録されたプログラムまたはコード化ファイルの依存関係をアプリケーションごとに表示する依存関係表示手段と
を備えたことを特徴とするプログラム管理システム。
【請求項２３】
前記アプリケーションごとに登録されているすべてのプログラムやコード化ファイルに対して、コンフィグレーション情報を一括して更新するコンフィグレーション一括更新手段、
を備えたことを特徴とする請求項２２に記載のプログラム管理システム、
【請求項２４】
請求項１から請求項１４までのいずれか１項に記載のプログラム実行システムを備えたことを特徴とする検査装置。
【請求項２５】
請求項１５から請求項２０までのいずれか１項に記載のプログラミングシステムを備えた検査装置用プログラム作成システム。
【請求項２６】
請求項１から請求項１４までのいずれか１項に記載のプログラム実行システムと、請求項１５から請求項２０までのいずれか１項に記載のプログラミングシステムとにより構成されたことを特徴とする検査装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラム作成手段により作成されてコード化されたプログラムをメモリ領域に展開してプログラムを実行するプログラム実行システムに関し、特に、第１のプログラムの動作中に、第１のプログラムから第２のプログラムを呼び出し、第２のプログラムを蓄積手段からロードして実行するプログラム実行システムに関するものである。
【０００２】
また、この発明は、プログラム実行システムで動作するプログラムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システムに関するものである。
さらに、この発明は、プログラム実行システムを備えた検査装置（インテリジェント検査ユニット）や制御装置（シーケンサ、モーションコントローラ、数値制御装置、ロボットなどのＦＡ機器）、検査装置用プログラム作成システムおよび検査装置システムに関するものである。
【背景技術】
【０００３】
一般に、検査処理用のプログラムを検査装置（インテリジェント検査ユニット）にダウンロードして動作させるためには、あらかじめパソコン上のプログラミングソフトウェアでユーザがプログラムを作成し、プログラミングソフトウェアがインストールされているパソコンと検査装置とをケーブルなどで接続した後、プログラミングソフトウェアからのダウンロード命令により、ユーザが作成したプログラムをコード化し、コード化されたデータを検査装置にダウンロードしている。
【０００４】
従来の検査装置におけるプログラム実行システムおよびプログラミングシステムの一例として、インテリジェント検査ユニットにおけるプログラムダウンロード装置が提案されている（たとえば、非特許文献１参照）。
上記非特許文献１に記載の従来装置においては、プログラミングソフトウェア（プログラム：ＩＵ  Ｄｅｖｅｌｏｐｅｒ）を備えたパソコンにより、以下のようにプログラムロード処理が実行される。
【０００５】
まず、検査装置に対し、Ｅｔｈｅｒｎｅｔ（登録商標）／ＵＳＢ／ＲＳ２３２Ｃケーブルを介して、パソコン内のプログラミングソフトウェアを接続する。
続いて、プログラミングソフトウェアにより、通常の「実行メニュー」または「リビルド実行メニュー」を実行する。
【０００６】
このとき、「実行メニュー」においては、更新されたプログラムによって決定される項目のみをコード化して検査装置に転送し、検査装置内のフラッシュメモリにプログラムを書込む。また、「リビルド実行メニュー」においては、すべてのプログラムをコード化して検査装置に転送し、検査装置内のフラッシュメモリにプログラムを書込む。
検査装置内のフラッシュメモリに書込まれたプログラムは、検査装置の起動時にメモリ領域（ＲＡＭ）上に展開され、検査装置内のプログラム実行手段上で実行される。なお、プログラム実行手段は、表示／操作手段に接続されている。
【０００７】
このように、従来装置においては、パソコンにインストールされたプログラミングソフトウェアでプログラム（ＩＵ  Ｄｅｖｅｌｏｐｅｒ）を作成し、パソコンと検査装置（インテリジェント検査ユニット本体）とを接続した後、ソフトウェアの「実行」または「リビルド実行」のメニューにより、作成したプログラムをコード化して検査装置（インテリジェント検査ユニット本体）にダウンロードして動作させるようになっている。
【０００８】
しかしながら、上記従来装置では、プログラムが１つのファイルに統括されているので、検査対象となる機種の追加などが頻繁に発生すると、各機種に対応した固有のプログラムが必要となるため、作成すべきプログラムが巨大化してしまう。
また、機種別にプログラムを記述することができないので、分散開発や並列開発を実現することができない。たとえば、ＡプログラムにＢプログラムを追加するためには、Ａプログラムの後にＢプログラムを追記すればよいが、ＡプログラムとＢプログラムとを独立して開発した場合には、ＡプログラムおよびＢプログラムを新たに１つのプログラムに構築するため作業が必要となる。
【０００９】
また、上記技術的背景からメンテナンス性も悪くなるうえ、たとえば、Ａ機種を検査する検査装置に対してＢ機種の検査機能を追加するためには、ＡプログラムにＢプログラムを追加する必要がある。
また、機種別にプログラムを記述することができないことから、複数のユーザによる分散開発や並列開発が困難となるうえ、機種追加などを行う場合には、既に動作している既存部分に対する影響も十分に考慮しつつ新規プログラムを作成する必要があるので、実質的に機種追加時の開発が困難になる。
【００１０】
また、ユーザが作成するプログラムの容量が検査装置内のフラッシュメモリによって制限されており、フラッシュメモリの最大メモリ容量を超えるプログラムを作成することができないので、任意数の機種に対応することができない。
さらに、機種追加時に、必ずパソコンと検査装置とをケーブルなどで接続してから追加分を含めたすべてのプログラムを再度プログラミングソフトウェアよりダウンロードする必要がある。
【００１１】
【非特許文献１】ＩＵ２シリーズ「ＩＵ  Ｄｅｖｅｌｏｐｅｒ  オペレーションマニュアル」Ｂ−２０６頁
【発明の開示】
【発明が解決しようとする課題】
【００１２】
以上のように、従来のプログラム実行システムにおいては、プログラムが１つのファイルに統括されているので、機種追加などが頻繁に発生するとプログラムが巨大化してしまい、検査対象機種を容易に追加することができないという課題があった。
また、機種別にプログラムを記述することができないので、分散開発や並列開発を実現することができないうえ、メンテナンス性も悪いという課題があった。
【００１３】
また、機種別にプログラムを記述することができず、分散開発や並列開発が困難なことから、実質的に機種追加時の開発が困難になるという課題があった。
さらに、装置の最大メモリ容量を超えるプログラムの作成が困難なうえ、機種追加時には、パソコンと検査装置とを再接続して、追加分を含めたすべてのプログラムを再度プログラミングソフトウェアよりダウンロードする必要があるという課題があった。
【００１４】
この発明は、上記のような課題を解決するためになされたものであり、個々のプログラムの巨大化を回避して、分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することのできるプログラム実行システムを得ることを目的とする。
また、上記プログラム実行システムのためのプログラミングシステム、プログラム解析システムおよびプログラム管理システム、ならびに、プログラム実行システムを備えた検査装置、検査装置用プログラム作成システムおよび検査装置システムを得ることを目的とする。
【課題を解決するための手段】
【００１５】
この発明によるプログラム実行システムは、コード化された第１のプログラムを保持するコード保持手段と、コード保持手段に保持されている第１のプログラムが展開されるメモリ領域と、メモリ領域に展開された第１のプログラムを実行するプログラム実行手段とを備えたプログラム実行システムにおいて、コード化された第２のプログラムをコード化ファイルとして格納する蓄積手段をさらに備え、プログラム実行手段は、蓄積手段にコード化ファイルとして格納されている第２のプログラムをメモリ領域にロードするためのプログラムロード手段を含み、プログラム実行手段は、メモリ領域に展開された第１のプログラムを実行している動作中に、蓄積手段内の第２のプログラムに対する呼び出し命令に応答して、蓄積手段内の第２のプログラムをメモリ領域にロードして、第２のプログラムを実行するものである。
【発明の効果】
【００１６】
この発明によれば、あらかじめプログラミングソフトウェアで生成されたオブジェクトであるコード化ファイル（第２のプログラム）を蓄積手段から読み出してメモリ領域にロードし、動作中の第１のプログラムと入れ替えて動作させることにより、各プログラムの巨大化を回避して分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することができる。
【発明を実施するための最良の形態】
【００１７】
実施の形態１．
図１および図２はこの発明の実施の形態１に係るプログラム実行システムをプログラミングシステムとともに示すブロック図であり、前述と同様に検査装置１に適用した場合を示している。
図１および図２において、検査装置１は、インテリジェント検査ユニットを構成しており、ＣＰＵ、Ｉ／Ｆおよび各種メモリなどを含む。
【００１８】
検査装置１は、パソコン８内のプログラミングソフトウェア９（図１参照）またはプログラミングソフトウェア９ａ、９ｂ（図２参照）で、ユーザが作成した第１または第２のプログラム（以下、それぞれ、単に「プログラム」という）１０ａ、１０ｂにより動作する。
この場合、プログラム１０ａ、１０ｂは、検査処理プログラムからなる。
【００１９】
プログラミングソフトウェア９、９ａ、９ｂは、具体的には、プログラム１０ａ、１０ｂを作成する手段（開発環境など）である。
プログラム１０ａ、１０ｂは、具体的には、ユーザが作成したプログラムコード（ソースコードなど）からなる。
図１において、プログラム１０ａは、たとえば機種選択プログラム（後述する）からなり、プログラム１０ｂは、たとえばコード化ファイル「ｗｏｒｋ１．ｕｐ」の処理プログラムからなる。
【００２０】
なお、図２では、プログラム１０ａ、１０ｂを作成するためのプログラミングソフトウェアとして、１台のパソコン８内に複数のプログラミングソフトウェア９ａ、９ｂを示しているが、各プログラム１０ａ、１０ｂは、図１のように、同一のプログラミングソフトウェア９を用いて作成されてもよく、複数のパソコン（図示せず）内の個別のプログラミングソフトウェアを用いて作成されてもよい。
【００２１】
検査装置１は、必要に応じてパソコン８に接続されるコード保持手段２と、コード保持手段２に接続されたメモリ領域３と、メモリ領域３に接続されたプログラム実行手段４と、プログラム実行手段４内に設けられたプログラムロード手段５と、プログラム実行手段４に接続された表示／操作手段１２とを備えている。
【００２２】
コード保持手段２は、装置電源がＯＦＦされてもデータ保持が可能なメモリ（フラッシュＲＯＭなど）からなり、プログラミングソフトウェア９、９ａにより作成されたメイン動作プログラムとなるプログラム１０ａを格納する。
メモリ領域３は、通常のデータ保持手段（ＲＡＭメモリなど）により構成されている。
【００２３】
プログラム実行手段４には、ハードディスクまたはメモリカードなどの大容量デジタルデータ記録媒体により構成された蓄積手段６が接続される。
蓄積手段６には、プログラミングソフトウェア９、９ｂにより作成された対象機種ごとの検出処理用のプログラム１０ｂが必要に応じて格納されている。
プログラム１０ｂは、プログラミングソフトウェア９（図１参照）内のコード化ファイル生成手段１１、またはプログラミングソフトウェア９ｂ（図２参照）内のコード化ファイル生成手段１１ｂによりコード化される。
【００２４】
すなわち、ユーザが作成したプログラム１０ｂは、プログラミングソフトウェア９、９ｂ内の開発環境（コード化ファイル生成手段１１、１１ｂを含む）でコード化され、コード化ファイル７ｂとなって、パソコン８から蓄積手段６にあらかじめ記録される。
コード化ファイル７ｂは、具体的には、ユーザが作成したプログラム１０ｂを開発環境でコード化したファイルである。
【００２５】
なお、ここでは、便宜的に１つのコード化ファイル７ｂのみを示しているが、検査対象の機種数などに応じて、必要に応じた任意数のコード化ファイル７ｂが記録され得る。
また、個別化された複数のコード化ファイル７ｂ（プログラム１０ｂ）は、必要に応じて外部から追加または変更され得る。
さらに、蓄積手段６は、検査装置１に内蔵されてもよい。
【００２６】
検査装置１内において、プログラム実行手段４は、ＣＰＵ上で動作するプログラム（Ｆ／Ｗ：ファームウェア）からなり、ユーザが作成したプログラム１０ａまたは１０ｂを解釈して実行する。
プログラム実行手段４内のプログラムロード手段５は、必要に応じて、蓄積手段６からコード化ファイル７ｂを取得してメモリ領域３に展開する。
【００２７】
すなわち、プログラム実行手段４は、コード保持手段２内のプログラム１０ａをメモリ領域３にロードして動作させるとともに、プログラム実行手段４内のプログラムロード手段５は、プログラム１０ａ中の呼び出し命令に応答して、プログラム１０ａの動作中に、蓄積手段６からメモリ領域３にプログラム１０ｂをロードして動作させる。
表示／操作手段１２は、マン・マシンインターフェースを構成しており、具体的には、ＬＣＤおよびキーボードなどを有し、ユーザに対して画面表示やキー入力の受け付けなどを行う。
【００２８】
パソコン８内のプログラミングソフトウェア９、９ａ、９ｂは、ユーザの操作により動作して、検査装置１で動作するプログラム１０ａ、１０ｂを作成する。
パソコン８は、プログラム１０ａを読み込んで実行コードを生成するための開発環境を有しており、実行コードを検査装置１内のコード保持手段２に転送するようになっている。
【００２９】
ユーザが作成したプログラム１０ａのソースコードは、パソコン８内の開発環境により、検査装置１で実行可能な形式にコンパイルされ、コンパイルされたコードは、検査装置１に転送されて動作するようになっている。
なお、実行コードは、検査装置１に転送される直前に生成され、転送後には削除されるので、実行コードがユーザにより直接扱われることはない。
【００３０】
同様に、パソコン８内の開発環境は、プログラム１０ｂを読み込んで、実行コードを生成するが、プログラム１０ｂの実行コードは、コード化ファイル７ｂにより、ユーザが扱うことのできるコード化ファイル７ｂに変換される。
すなわち、コード化ファイル生成手段１１、１１ｂは、開発環境内のプログラム１０ｂをコード化ファイル７ｂに変換する。
【００３１】
次に、図２に示したこの発明の実施の形態１に係るパソコン８および検査装置１の概略的な動作について説明する。
まず、検査装置１にパソコン８をケーブル接続し、プログラミングソフトウェア９、９ａで作成したプログラム１０ａを、検査装置１内のコード保持手段２にダウンロードする。
一方、プログラミングソフトウェア９、９ｂで作成したプログラム１０ｂは、コード化ファイル生成手段１１、１１ｂによりコード化され、コード化ファイル７ｂとして蓄積手段６内にコピーされる。
【００３２】
検査装置１は、パソコン８でユーザが作成した検査処理動作に関連する複数のプログラム１０ａ、１０ｂをコード化してあらかじめ保持しており、使用時に検査装置１に接続される。
検査装置１内のプログラム実行手段４は、電源投入時にコード保持手段２内のプログラム１０ａをメモリ領域に展開して、プログラム１０ａの処理を実行する。
また、プログラム実行手段４内のプログラムロード手段５は、検査装置１上においてプログラム１０ａが実行されている間に、対象機種の検査処理に必要なプログラム１０ｂを蓄積手段６から検査装置１にロードし、メモリ領域３に展開して実行する。
【００３３】
このように、プログラム実行手段４は、１つのプログラム１０ａの実行中に、蓄積手段６内の別のプログラム１０ｂをロードして実行する。
すなわち、現在動作中のプログラム１０ａから、プログラム１０ｂのコード化ファイル７ｂに対する呼び出し命令が発行されると、蓄積手段６内の指定されたコード化ファイル７ｂが検査装置１内のメモリ領域３（ＲＡＭ）上に展開される。
この結果、検査装置１上で現在動作しているプログラム１０ａは、プログラム１０ｂに入れ替えられて、プログラム１０ｂの処理が実行されることになる。
【００３４】
図３はコード保持手段２に格納されるプログラム１０ａの具体例を図式的に示す説明図であり、機種選択プログラムの場合を一例として示している。
図３において、プログラム１０ａ（機種選択プログラム）は、「ＳＴＡＲＴ」からコードが始まり、選択ゲートで指定されるデバイス（メモリ）の値「ＤＳ０」によって、蓄積手段６からロードすべきコード化ファイルＤＳ０（「１」〜「４」、または「Ｄｅｆ（その他）」）を指定する。
【００３５】
ここでは、５機種に対応した５種類のコード化ファイル（「ｗｏｒｋ１．ｉｕｐ」〜「ｗｏｒｋ５．ｉｕｐ」）が蓄積手段６に記録されているものとする。
たとえば、指定デバイスが「ＤＳ０＝１」の場合には、プログラム実行手段４においてコマンド「ＩＵＰ  ＬＯＡＤ」が実行され、プログラムロード手段５により、ファイル名「ｗｏｒｋ１．ｉｕｐ」のコード化ファイルが蓄積手段６からロードされる。
【００３６】
また、指定デバイスが「ＤＳ０＝２」の場合には、プログラム実行手段４において、コマンド「ＩＵＰ  ＬＯＡＤ」が実行され、プログラムロード手段５により、ファイル名「ｗｏｒｋ２．ｉｕｐ」のコード化ファイルが蓄積手段６からロードされる。
さらに、指定デバイスが「ＤＳ０＝Ｄｅｆ」の場合には、プログラム実行手段４においてコマンド「ＩＵＰ  ＬＯＡＤ」が実行され、プログラムロード手段５により、ファイル名「ｗｏｒｋ５．ｉｕｐ」のコード化ファイルが蓄積手段６からロードされる。
【００３７】
次に、図４のフローチャートを参照しながら、この発明の実施の形態１に係る処理動作について具体的に説明する。
図４において、まず、プログラミングソフトウェア９、９ｂで生成したプログラム１０ｂのコード化ファイル７ｂ（１つまたは複数のファイル）を蓄積手段６に格納し、蓄積手段６を検査装置１に装着する（ステップＳ１）。
【００３８】
続いて、パソコン８を検査装置１に接続し、蓄積手段６内のコード化ファイル７ｂへの呼び出し命令を記述したプログラム１０ａに対して、プログラミングソフトウェア９、９ａからのダウンロード命令を与え、ダウンロード命令により、プログラム１０ａをコード化し、プログラム１０ａのコード化データをコード保持手段２にダウンロードする（ステップＳ２）。
【００３９】
次に、検査装置１の次回起動時に、プログラム実行手段４は、コード保持手段２に書き込まれたデータをメモリ領域３に展開し、ユーザによる表示／操作手段１２の操作に応答してプログラム１０ａの動作を開始する（ステップＳ３）。
続いて、動作中のプログラム１０ａからコード化ファイル７ｂへの呼び出し命令が発行したか否かを判定し（ステップＳ４）、呼び出し命令が発行していない（すなわち、ＮＯ）と判定されれば、続いて、動作中のプログラム１０ａから動作終了命令が発行したか否かを判定する（ステップＳ５）。
【００４０】
ステップＳ５において、動作終了命令が発行した（すなわち、ＹＥＳ）と判定されれば動作を終了し（ステップＳ７）、一方、動作終了命令が発行していない（すなわち、ＮＯ）と判定されれば、プログラム実行手段４は、動作中のプログラムから発行された命令を継続実行し（ステップＳ６）、ステップＳ４に戻る。
【００４１】
一方、ステップＳ４において、コード化ファイル７ｂへの呼び出し命令が発行している（すなわち、ＹＥＳ）と判定されれば、プログラムロード手段５は、蓄積手段６内のコード化ファイル７ｂをメモリ領域３に展開し、検査装置１上で現在動作しているプログラムと入れ替える（ステップＳ８）。
最後に、プログラム実行手段４は、検査装置１内の表示／操作手段１２の操作に応答して、入れ替え後のプログラム１０ｂの動作を開始する（ステップＳ９）。
なお、ロード入れ替え後のプログラム１０ｂは、自動的に起動するようになっていてもよい。
【００４２】
このように、この発明の実施の形態１に係るプログラム実行システムは、コード化されたプログラム１０ａを保持するコード保持手段２と、プログラム１０ａに関連したプログラム１０ｂをコード化ファイル７ｂとして格納する蓄積手段６と、実行対象となるプログラムが展開されるメモリ領域３と、プログラム１０ａ、１０ｂを実行するためのプログラム実行手段４と、必要に応じてプログラム１０ｂをメモリ領域３にロードするためのプログラムロード手段５を備え、プログラムロード手段５は、プログラム１０ａの動作中に、プログラム１０ｂに対する呼び出し命令に応答して、蓄積手段６からメモリ領域３にプログラム１０ｂをロードする。
【００４３】
これにより、プログラムを単一ファイルに統括せずに、たとえば機種別のコード化ファイル７ｂを複数生成した後に、それらを蓄積媒体６に格納しておき、必要なときに必要なコード化ファイル７ｂを自由に呼び出して動作させることができる。
したがって、プログラム１０ａの巨大化を回避し、プログラム１０ｂの分散開発および並列開発を可能にするとともに、各プログラム１０ａ、１０ｂの実行コードの独立性を高めることができる。
【００４４】
また、従来システムにおいて単一ファイルに統括していたことによるプログラムの巨大化を回避することができる。
さらに、検査装置１とは別のパソコン８上で機種別にプログラム１０ｂを記述することができるので、分散開発および並列開発が可能となり、プログラム１０ｂを機種別に独立記述することができ、既に動作している部分への影響も最小限に抑制することができる。
【００４５】
ここで、この発明の実施の形態１による効果について、具体的に補足説明する。
この発明の実施の形態１によれば、たとえば、製品Ａの検査項目が２００項目だった場合に、２人のユーザが１００項目ずつに分けてプログラムを開発することができる。
この場合、開発対象となるプログラムは、あらかじめ前半の１００項目と後半の１００項目とに分散され、前半１００項目の検査処理は、プログラム１０ａとしてコード保持手段２内に格納され、後半１００項目の検査処理は、プログラム１０ｂとして蓄積手段６に格納される。
【００４６】
この結果、前半１００項目の検査処理が終了した時点で、後半１００項目の検査処理を実行するプログラム１０ｂが実行され、トータル２００項目の検査処理を実行することができる。
また、コード保持手段２の容量が少ない場合であっても、２００項目のプログラムを、１００項目ずつの２つのプログラムに分割することによって、動作させることが可能となる。
【００４７】
また、必要なときに必要なコード化ファイル７ｂをその都度呼び出して、検査装置１内のメモリ領域３（ＲＡＭ）上に展開し、検査装置１上で現在動作中のプログラム１０ａと入れ替えて動作させることができるので、単一ファイルに統括するとコード保持手段２の最大メモリ容量を超える程度のプログラムであっても、たとえば機種別のコード化ファイル７ｂ（プログラム１０ｂ）に分割することにより、プログラムを検査装置１上で動作させることができる。
【００４８】
また、従来システムでは、たとえば製品Ａの検査プログラムに製品Ｂを検査する機能を追加する場合、製品Ａの検査プログラムに製品Ｂの検査プログラムを追加してコンパイルを行い、検査装置１に転送しているが、このとき、元々動作していた製品Ａのプログラムも、製品Ｂのプログラムを追加するための修正が追加されているので、動作確認を実行しなければならず、手間がかかっていた。
【００４９】
しかし、この発明の実施の形態１（図１、図２参照）によるプログラム実行システムによれば、コード化されたプログラム１０ａを保持するコード保持手段２と、コード保持手段２に保持されているプログラム１０ａが展開されるメモリ領域３と、メモリ領域３に展開されたプログラム１０ａを実行するプログラム実行手段４と、コード化されたプログラム１０ｂをコード化ファイル７ｂとして格納する蓄積手段６（ハードディスクまたはメモリカードなど）とを備え、プログラム実行手段４は、蓄積手段６にコード化ファイル７ｂとして格納されているプログラム１０ｂをメモリ領域３にロードするためのプログラムロード手段５を有している。
【００５０】
これにより、プログラム実行手段４は、メモリ領域３に展開されたプログラム１０ａを実行している動作中に、蓄積手段６内のプログラム１０ｂに対する呼び出し命令に応答して、蓄積手段６内のコード化ファイル７ｂ（プログラム１０ｂ）をメモリ領域３にロードして、プログラム１０ｂを実行することができる。
したがって、図３に示したように、どの機種の検査処理を実行するかを選択するための機種選択プログラムを記述しているので、利便性を高めることができる。
【００５１】
たとえば、検査装置１が製品Ａに対応していた場合には、コード保持手段２内に図３の機種選択プログラムが格納されており、蓄積手段６に製品Ａの検査プログラムが格納されている。この検査装置１に、製品Ｂの検査機能を追加する場合の変更操作は、図３の機種選択プログラムに製品Ｂの分岐を追加することと、蓄積手段６に製品Ｂの検査プログラムのコード化ファイル７ｂを格納することである。
したがって、以上の２つの変更操作のみで機種追加を実現することができるので、製品Ａの検査プログラムを修正する必要がなく、動作をチェックする必要もない。
【００５２】
実施の形態２．
なお、上記実施の形態１では、機種ごとに対応したプログラム１０ｂのコード化ファイル７ｂのみを蓄積手段６に格納したが、プログラム１０ｂの実行後に検査装置１を再起動しない限り、メイン処理用のプログラム１０ａに戻ることができない。
そこで、プログラム１０ａへの呼び出し命令をプログラム１０ｂに記述しておくとともに、プログラム１０ａのコード化ファイル７ａを蓄積手段６に追加格納してもよい。
【００５３】
図５はプログラム１０ａのコード化ファイル７ａを蓄積手段６に追加格納したこの発明の実施の形態２に係るプログラム実行システムを示すブロック図である。
図５において、前述（図１、図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ａ」を付して詳述を省略する。
【００５４】
この場合、パソコン８内のプログラミングソフトウェア９、９ａは、検査装置１Ａにダウンロードされるプログラム１０ａを、コード化ファイル生成手段１１、１１ａによりコード化し、プログラム１０ａのコード化ファイル７ａを蓄積手段６にあらかじめコピーする。
一方、プログラム１０ｂの最後には、プログラム１０ａのコード化ファイル７ａを蓄積手段６からロードするための呼び出し命令が記述されている。
【００５５】
次に、図６のフローチャートを参照しながら、図５に示したこの発明の実施の形態２による動作について説明する。
図６において、ステップＳ１Ａ、Ｓ２、Ｓ３Ａ〜Ｓ９は、前述（図４参照）のステップＳ１〜Ｓ９にそれぞれ対応している。
【００５６】
まず、プログラム１０ｂへの呼び出し命令を記述したプログラム１０ａのコード化ファイル７ａと、プログラム１０ａへの呼び出し命令を記述したプログラム１０ｂのコード化ファイル７ｂとを生成して蓄積手段６に格納し、蓄積手段６を検査装置１Ａに装着する（ステップＳ１Ａ）。
【００５７】
続いて、プログラム１０ａに対して、プログラミングソフトウェア９、９ａからのダウンロード命令を与え、ダウンロード命令により、プログラム１０ａをコード化したデータをコード保持手段２にダウンロードする（ステップＳ２）。
次に、検査装置１Ａの起動時に、コード保持手段２に書き込まれたデータ（プログラム１０ａ）をメモリ領域３に展開し、表示／操作手段１２の操作に応答して、プログラム１０ａの動作を開始する（ステップＳ３Ａ）。
【００５８】
以下、動作中のプログラム（最初はプログラム１０ａ）からコード化ファイル（最初はコード化ファイル７ｂ）の呼び出し命令が発行したか否かを判定し（ステップＳ４Ａ）、呼び出し命令が発行していない（すなわち、ＮＯ）と判定されれば、続いて、動作中のプログラムから動作終了命令が発行したか否かを判定する（ステップＳ５Ａ）。
【００５９】
ステップＳ５Ａにおいて、動作終了命令が発行した（すなわち、ＹＥＳ）と判定されれば、現在実行中のプログラムの動作を終了し（ステップＳ７Ａ）、動作終了命令が発行していない（すなわち、ＮＯ）と判定されれば、プログラム実行手段４Ａは、動作中のプログラムから発行された命令を継続実行し（ステップＳ６Ａ）、ステップＳ４Ａに戻る。
【００６０】
一方、ステップＳ４Ａにおいて、動作中のプログラム（最初はプログラム１０ａ）からコード化ファイル（最初はコード化ファイル７ｂ）の呼び出し命令が発行した（すなわち、ＹＥＳ）と判定されれば、プログラムロード手段５Ａは、蓄積手段６内のコード化ファイル７ｂ（プログラム１０ｂ）をメモリ領域３に展開し、検査装置１Ａ上で現在動作中のプログラム１０ａと入れ替える（ステップＳ８Ａ）。
【００６１】
また、検査装置１Ａ内の表示／操作手段１２の操作に応じて、入れ替え後のプログラム１０ｂの動作を開始し（ステップＳ９Ａ）、ステップＳ４Ａに戻る。
なお、プログラム１０ｂは、自動的に起動するように構成してもよい。
以下、入れ替え後のプログラム１０ｂの動作中に、前述と同様の処理（ステップＳ４Ａ〜Ｓ９Ａ）を実行する。
【００６２】
すなわち、動作中のプログラム１０ｂの最後でコード化ファイル７ａへの呼び出し命令が発行したか否かを判定し（ステップＳ４Ａ）、呼び出し命令が発行していれば、蓄積手段６からコード化ファイル７ａ（プログラム１０ａ）をロードし（ステップＳ８Ａ）、プログラム１０ａの処理動作を実行し（ステップＳ９Ａ）、ステップＳ４Ａに戻る。
【００６３】
このように、この発明の実施の形態２（図５、図６参照）によるプログラム実行手段４Ａは、各プログラム１０ａ、１０ｂの呼び出し関係を常に把握しており、プログラム１０ｂの動作中に、プログラム１０ｂ内の最後に記述されたプログラム１０ａに対する呼び出し命令に応答して、蓄積手段６からメモリ領域３にプログラム１０ａをロードする。
【００６４】
前述の実施の形態１（図１〜図４参照）では、コード保持手段２に保存されているプログラム１０ａから、蓄積手段６に保存されているコード化ファイル７ｂが呼び出されると、検査装置１を再起動させない限り、コード保持手段２に保存されているプログラム１０ａに戻ることができなかった。
【００６５】
しかし、この発明の実施の形態２による蓄積手段６は、プログラム１０ｂに加えて、プログラム１０ａ（または、その他のプログラム）をコード化ファイル７ａとして格納している。
したがって、プログラム実行手段４Ａは、メモリ領域３に展開されたプログラム１０ａを実行している動作中に、蓄積手段６内のプログラム１０ｂに対する呼び出し命令に応答して、蓄積手段６内のコード化ファイル７ｂ（プログラム１０ｂ）をメモリ領域３にロードして、プログラム１０ｂを実行し、プログラム１０ｂを実行している動作中に、蓄積手段６内のプログラム１０ａ（または、他のプログラム）に対する呼び出し命令に応答して、蓄積手段６内のコード化ファイル７ａ（プログラム１０ａ）をメモリ領域３にロードして、プログラム１０ａ（または、他のプログラム）を実行することができる。
【００６６】
この場合、プログラム実行手段４Ａは、プログラム１０ａ、１０ｂの呼び出し関係を常に把握しており、プログラム１０ａをコード保持手段２に保存するのみならず、コード化ファイル生成手段１１、１１ａにより変換されたコード化ファイル７ａを蓄積手段６に保存することにより、検査装置１Ａが起動してプログラム１０ａが動作し、さらにプログラム１０ｂが動作した後、元のプログラム１０ａを実行することができる。
【００６７】
すなわち、プログラム実行手段４Ａは、プログラム１０ｂの動作中に、プログラム１０ｂ内のプログラム１０ａに対する呼び出し命令に応答して、蓄積手段６からメモリ領域３にプログラム１０ａをロードする。
これにより、検査装置１Ａの起動後に、プログラム１０ａからプログラム１０ｂのコード化ファイル７ｂが呼び出されて、プログラム１０ｂが実行されている場合に、プログラム１０ｂの最後にプログラム１０ａのコード化ファイル７ｂへの呼び出し命令が記述されていれば、プログラム１０ｂの終了時に、自動的にプログラム１０ａに再復帰することができる。
【００６８】
たとえば、前述（図３参照）のように、プログラム１０ａを、機種選択（指定されたコード化ファイル７ｂの呼び出し）実行用のみのプログラムとすることにより、機種追加などを行うためにプログラム１０ｂを追加するような場合、追加分のプログラム１０ｂのコード化ファイル７ｂを生成して蓄積手段６に格納するとともに、プログラム１０ａの変更操作として追加分のコード化ファイル７ｂを指定可能な記述を追加することのみで、容易に機種を追加することができる。
【００６９】
また、プログラム１０ａが機種選択用の場合に、プログラム１０ａで記述されている機種選択（コード化ファイル７ｂの指定）がプログラム１０ａ中で直接指定されているのではなく、間接的に指定されているような場合には、機種追加時にプログラム１０ａを変更する必要が全くない。
したがって、機種追加ごとにパソコン８と検査装置１Ａとをケーブル接続してプログラミングソフトウェア９、９ａから再度プログラム１０ａを検査装置１Ａにダウンロードする必要がない。
【００７０】
また、プログラム１０ａが図３のように構成された場合、ＤＳ０デバイスの値（「１」〜「４」、「Ｄｅｆ」）に応じて処理が分岐し、あらかじめ指定されたファイル（「ｗｏｒｋ１．ｉｕｐ」〜「ｗｏｒｋ５．ｉｕｐ」）を起動するが、所望プログラムに応じて表示／操作手段１２からファイル名を入力し、対象ファイルをロードすることができる。
このようなプログラム記述を実行した場合、機種選択プログラムを修正する必要がなくなるので、より利便性が高くなる。
さらに、プログラム１０ａ、１０ｂの呼び出し関係を容易に取得することができ、ロード時間を短縮することができ、プログラム１０ａ、１０ｂの読み出し処理を確実に実行することができる。
【００７１】
上述の例において、プログラム１０ｂの最後には、プログラム１０ａのコード化ファイル７ａを蓄積手段６からロードするための呼び出し命令が記述されているものとする。
これにより、プログラム実行手段４Ａは、プログラム１０ｂの動作中に、プログラム１０ｂ内の最後に記述されたプログラム１０ａに対する呼び出し命令に応答して、蓄積手段６からメモリ領域３にプログラム１０ａをロードすることができる。
【００７２】
また、同様にして、プログラム１０ｂの最後に、プログラム１０ａをコード保持手段２からロードするための呼び出し命令が記述されていてもよい。
この場合、プログラム実行手段４Ａは、プログラム１０ｂの動作中に、プログラム１０ｂ内の最後に記述されたプログラム１０ａに対する呼び出し命令に応答して、コード保持手段２からメモリ領域３にプログラム１０ａをロードすることができる。
【００７３】
実施の形態３．
なお、上記実施の形態１、２では、コード化ファイル７ｂ（プログラム１０ｂ）のメモリ領域３へのロード処理を一括的に実行したが、コード化ファイル７ｂ内のメインフロー単位（プログラム実行単位）でロード処理を実行してもよい。
図７はメインフロー単位でロード処理を実行したこの発明の実施の形態３に係るプログラム実行システムの要部を示すブロック図である。
【００７４】
図７において、前述（図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｂ」を付して詳述を省略する。
この場合、プログラム実行手段４Ｂ内のプログラムロード手段５Ｂは、コード化ファイル７ｂ（プログラム１０ｂ）のロード処理を、コード化ファイル７ｂ内のプログラム実行単位１３（メインフロー単位）で行うようになっている。
【００７５】
プログラム実行単位１３は、コード化ファイル７ｂ（プログラム１０ｂ）に含まれる実行プログラム部であり、具体的には、ＩＵ  Ｄｅｖｅｌｏｐｅｒ内のフローチャートからなる。
ここでは、代表的に１つのプログラム実行単位１３を示しているが、１つのプログラム１０ｂには、複数の実行プログラム部（フローチャート）すなわちプログラム実行単位１３が含まれている。
【００７６】
次に、図８のフローチャートを参照しながら、図７に示したこの発明の実施の形態３による動作について説明する。
図８において、まず、プログラムロード手段５Ｂは、プログラムのロードを開始する（ステップＳ１０）。
このとき、ロード対象となるプログラム実行単位１３（指定フローチャート）のみの読み出しを指定する。
続いて、コード化ファイル７ｂ内の指定フローチャートのみを読み込みを行う（ステップＳ１１）。
【００７７】
このように、プログラムロード手段５Ｂは、プログラム１０ｂのロード処理時に、プログラム１０ｂのすべてを読み込むのではなく、プログラム１０ｂ内の実行したいプログラム実行単位１３（メインフロー単位）で読み込む。
これにより、読み込むデータ量が少なくなるため、検査機種の切替えに要する時間を短縮することができる。
【００７８】
すなわち、この発明の実施の形態３（図７、図８参照）によるプログラム実行手段４Ｂは、メモリ領域３に展開されたプログラムを実行している動作中に、蓄積手段６にコード化ファイル７ｂ（または、その他のコード化ファイル）として格納されているプログラム中のプログラム実行単位１３（該当する実行部分）に対する呼び出し命令に応答して、蓄積手段６に格納されたプログラムの中から該当する実行部分に対応するプログラム実行単位１３をメモリ領域３にロードして、プログラム実行単位１３を実行する。
したがって、プログラムの巨大化を回避して、分散開発および並列開発を可能にし、実行コードの独立性を高めるという前述の効果に加えて、ロード時間を短縮することができる。
【００７９】
実施の形態４．
なお、上記実施の形態１では、検査装置１内のデバイス（メモリ）に対する初期化情報について考慮しなかったが、プログラム１０ｂ中にデバイス初期化情報を含めることにより、プログラム１０ｂのロード時に、デバイス初期化情報に基づき、必要に応じて自動的にデバイスを初期化するように構成してもよい。
【００８０】
図９はコード化ファイル７ｂ（プログラム１０ｂ）内にデバイス初期化情報１４を設けたこの発明の実施の形態４に係るプログラム実行システムの要部を示すブロック図である。
図９において、前述（図１、図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｃ」を付して詳述を省略する。
【００８１】
この場合、コード化ファイル７ｂ（プログラム１０ｂ）は、検査装置１Ｃ内のデバイスに対する初期化の実行有無を示すデバイス初期化情報１４を含む。
なお、ここでは、代表的にデバイス初期化情報１４のみを示しているが、コード化ファイル７ｂは、デバイス以外の他の初期化情報を含んでいてもよい。
【００８２】
また、プログラムロード手段５Ｃは、プログラム１０ｂのロード時に、デバイス初期化情報１４に基づいて、必要に応じて初期化を実行する。
デバイス初期化情報１４には、コード化ファイル７ｂに付加された情報であり、コード化ファイル７ｂ（プログラム１０ｂ）のロード時に、検査装置１Ｃの初期化を実行するか否かの情報が設定されている。
【００８３】
次に、図１０のフローチャートを参照しながら、図９に示したこの発明の実施の形態４による動作について説明する。
図１０において、ステップＳ１０は、前述（図８参照）と同様のロード処理である。
まず、プログラムロード手段５Ｃは、プログラム１０ｂのロードを開始し（ステップＳ１０）、デバイス初期化情報１４に基づいて、検査装置１Ｃ内のデバイスの初期化を実行するか否かを判定する（ステップＳ１２）。
【００８４】
ステップＳ１２において、初期化を実行しない（すなわち、ＮＯ）と判定されれば、直ちに指定プログラムを読み込み（ステップＳ１３）、一方、初期化を実行する（すなわち、ＹＥＳ）と判定されれば、デバイスを初期化してから（ステップＳ１４）、指定プログラムを読み込む（ステップＳ１３）。
【００８５】
たとえば、プログラム実行手段４Ｃによりプログラム１０ａを実行している状態から、プログラム１０ｂをロードして実行する場合に、プログラム１０ａとプログラム１０ｂとの間でデータの受け渡しがない場合には、デバイス内容を保持する必要がないので、デバイス初期化情報１４に基づいて検査装置１Ｃ内のデバイスを初期化する。
【００８６】
一方、プログラム１０ａとプログラム１０ｂとの間にデータの受け渡しがある場合には、デバイス内容を保持する必要があるので、デバイスの初期化処理を実行しない。
これにより、前回の検査結果などを引き継いで、後工程で利用することができる。たとえば、プログラム１０ａでの「ＯＫ／ＮＧ」を示す判定数を、そのままプログラム１０ｂで引き継いで検査処理を続行することができる。
【００８７】
以上のように、この発明の実施の形態４（図９、図１０参照）によれば、プログラム１０ｂは、検査装置１Ｃ（プログラム実行システム）に対するデバイス初期化情報１４を含み、プログラムロード手段５Ｃは、蓄積手段６からのプログラム１０ｂのロード時に、デバイス初期化情報１４に基づいて、必要に応じて検査装置１Ｃ内のデバイスを初期化する。
したがって、プログラム１０ｂのロード時に、初期化処理の要否を選択することができ、必要に応じて初期化処理を自動的に実行することができる。
【００８８】
実施の形態５．
なお、上記実施の形態１〜４では、蓄積手段６内にコード化ファイル７ｂが存在することを前提にして説明したが、コード化ファイル７ｂのロード時にコード化ファイル７ｂの有無をチェックしてもよい。
以下、コード化ファイル７ｂの有無チェック機能を設けたこの発明の実施の形態５に係るプログラム実行システムについて説明する。
【００８９】
この場合、プログラム実行手段４およびプログラムロード手段５（たとえば、図１、図２参照）は、プログラム１０ｂ（またはプログラム１０ａ）のロード時に、プログラム１０ｂ（またはプログラム１０ａ）の有無をチェックし、呼び出し命令に応答するプログラムが存在しない場合にエラー処理を実行（エラーコードを出力）するようになっている。
【００９０】
以下、図１１のフローチャートを参照しながら、この発明の実施の形態５による動作について説明する。
図１１において、ステップＳ１０は前述（図８、図１０参照）と同様のロード処理である。ここでは、蓄積手段６内のプログラム１０ｂをロードする場合を例にとって説明する。
まず、プログラム１０ｂのロードを開始し（ステップＳ１０）、コード化ファイル７ｂが存在するか否かを判定する（ステップＳ１４）。
【００９１】
ステップＳ１４において、コード化ファイル７ｂが存在する（すなわち、ＹＥＳ）と判定されれば、コード化ファイル７ｂを読み込む（ステップＳ１５）。
一方、ステップＳ１４において、コード化ファイル７ｂが存在しない（すなわち、ＮＯ）と判定されれば、コード化ファイル７ｂが存在しないことを表示／操作手段１２の画面に表示する（ステップＳ１６）。
【００９２】
また、インタネットなどの通信により他の装置に通知し（ステップＳ１７）、検査装置１内のデバイスにエラーコードを出力して（ステップＳ１８）、動作を停止する（ステップＳ１９）。
なお、ステップＳ１６〜Ｓ１８については、すべての処理を実行する必要はなく、いずれか１つの処理のみを実行するか、または、いずれか２つの処理のみを実行してもよい。
【００９３】
このように、プログラム実行手段４は、プログラム１０ｂのロード時に、対象となるコード化ファイル７ｂが存在しなかった場合には、検査装置１の動作を停止するとともに、画面表示によるエラー報知、通信による通知、または、検査装置１内のデバイスにエラーコード書込みを行う。
なお、蓄積手段６からプログラム１０ａをロードする場合も同様である。
【００９４】
図１１に示した通り、この発明の実施の形態５によるプログラム実行手段は、プログラムロード手段による蓄積手段６からの所定プログラムのロード時に、所定プログラムが蓄積手段６に存在するか否かを確認し、呼び出し命令に応答する所定プログラムが蓄積手段６内に存在しない場合には、エラーコードを出力する。
これにより、前述の効果に加えて、プログラムロード時のエラー処理を実行することができ、ロード時に対応するプログラムが存在しない状態においては、不具合動作を回避するとともに、停止した原因を特定する利便性が向上するという効果がある。
【００９５】
実施の形態６．
なお、上記実施の形態１〜５では、プログラムロード時の対象となる蓄積手段６として、１種類の記録媒体（メモリカードなど）を想定して説明したが、複数の異なる記録媒体（たとえば、メモリカードおよびハードディスクなど）をプログラムロード時の対象としてもよい。
【００９６】
図１２は複数の蓄積手段６、６Ｄをプログラムロード時の対象としたこの発明の実施の形態６に係るプログラム実行システムの要部を示すブロック図である。
図１２において、前述（図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｄ」または「’」を付して詳述を省略する。
【００９７】
この場合、各プログラムに対応したコード化ファイル７ｂ、７ｂ’は、それぞれが格納された蓄積手段６、６Ｄに関する読込先情報を含む。
また、検査装置１Ｄ内のプログラム実行手段４Ｄおよびプログラムロード手段５Ｄは、ロード対象となるコード化ファイル７ｂ、７ｂ’内の読込先情報に応じて、各プログラムの読込先を個別に変更するようになっている。
【００９８】
次に、図１３のフローチャートを参照しながら、図１２に示したこの発明の実施の形態６による動作について説明する。
ここでは、代表的に、プログラム１０ｂに対応するコード化ファイル７ｂをロード対象とした場合について説明する。また、蓄積手段６はメモリカードであって、蓄積手段６’はハードディスク（ＨＤＤ）であるものとする。
【００９９】
図１３において、まず、ロード対象となるコード化ファイル７ｂ（プログラム１０ｂ）のロードを開始し（ステップＳ１０）、対象となるコード化ファイル７ｂ内の読込先情報を参照して、メモリカード（蓄積手段６）からロードする状態か否かを判定する（ステップＳ２０）。
【０１００】
ステップＳ２０において、メモリカードからロードする状態である（すなわち、ＹＥＳ）と判定されれば、読込先がメモリカード（蓄積手段６）であると認識して、メモリカードからコード化ファイルを読み込む（ステップＳ２１）。
一方、ステップＳ２０において、メモリカードからロードする状態ではない（すなわち、ＮＯ）と判定されれば、読込先がハードディスク（ＨＤＤ）であると認識して、ネットワーク上のＨＤＤからコード化ファイルを読み込む（ステップＳ２２）。
【０１０１】
なお、ここでは、２つの蓄積手段６、６Ｄのなかから読込先を指定する場合について説明したが、検査装置１Ｄに３つ以上の蓄積手段が接続されていてもよい。
このように、この発明の実施の形態６（図１２、図１３参照）において、所定プログラム（コード化ファイル７ｂまたは７ｂ’）に対する呼び出し命令を用いたプログラムは、呼び出し命令に応答する所定プログラムが格納されている蓄積手段６または６Ｄに関する読込先情報を含み、プログラム実行手段４Ｄは、読込先情報に応じて、所定プログラムの読込先を個別に変更する。
【０１０２】
これにより、読込先情報に基づいてロード先（読込先）の指定が可能なことから、対象となる蓄積手段６、６Ｄを自動的に切り替えることができる。
したがって、機種に応じたコード化ファイル７ｂ、７ｂ’の選択の幅が広がり、ネットワーク上のハードディスク（ＨＤＤ）などの蓄積手段６Ｄ内のコード化ファイル７ｂ’を指定することができる。
また、他の装置の設置現場に出向いて行ってコード化ファイルの入替操作などを行う必要がなく、プログラムの変更を実現することができる。
さらに、この発明の実施の形態６によれば、前述の効果に加えて、プログラム（コード化ファイル７ｂまたは７ｂ’）の読出処理を確実に実行することができる。
【０１０３】
実施の形態７．
なお、上記実施の形態１〜６では、特に言及しなかったが、プログラムのロード時にロード履歴情報を保存してもよい。
図１４はロード履歴情報を保存可能に構成したこの発明の実施の形態７に係るプログラム実行システムの要部を示すブロック図である。
【０１０４】
図１４において、前述（図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｅ」を付して詳述を省略する。
この場合、検査装置１Ｅ内のプログラム実行手段４Ｅは、プログラムロード履歴保存手段１５を備えている。
【０１０５】
プログラムロード履歴保存手段１５は、コード化ファイル７ｂ（プログラム１０ｂ）に関するロード履歴を取得して保存する。
たとえば、プログラムロード履歴保存手段１５には、動作したプロジェクト（プログラム１０ｂまたはコード化ファイル７ｂ）の履歴や、コード化ファイル７ｂ（プログラム１０ｂ）のロード時に変更したプログラム名などが時系列に保存される。
【０１０６】
なお、ここでは、代表的に、コード化ファイル７ｂ（プログラム１０ｂ）をロードする場合を示しているが、前述（図５参照）のコード化ファイル７ａ（プログラム１０ａ）をロードする場合にも適用可能である。
【０１０７】
次に、図１５のフローチャートを参照しながら、図１４に示したこの発明の実施の形態７による動作について説明する。
図１５において、まず、プログラムロード手段５Ｅがプログラム１０ｂのロードを開始すると（ステップＳ１０）、プログラムロード履歴保存手段１５は、プログラム１０ｂのロード履歴（具体的には、ロードした「ファイル名」）を保存する（ステップＳ２４）。
【０１０８】
続いて、次のプログラム１０ｂ’のロードが開始されると（ステップＳ１０Ａ）、同様に、プログラムロード履歴保存手段１５は、次のプログラム１０ｂ’のロード履歴を保存する（ステップＳ２４Ａ）。
以下、プログラム１０ｂのロードが開始されるごとに、同様のロード処理およびロード履歴保存処理が繰り返される。
【０１０９】
これにより、たとえば、プログラム１０ｂ、１０ｂ’、・・・がプログラムＡ→プログラムＢ→プログラムＣ、・・・のように順次ロードされた場合、プログラムロード履歴保存手段１５には、プログラムＡ、プログラムＢ、プログラムＣ、・・・と保存される。
【０１１０】
このように、この発明の実施の形態７（図１４、図１５参照）によるプログラム実行手段４Ｅは、プログラムロード履歴保存手段１５を含み、プログラムロード履歴保存手段１５は、蓄積手段６内の所定プログラム（たとえば、コード化ファイル７ｂ）に対する呼び出し命令に応答して、プログラム実行手段４Ｅが蓄積手段６内の所定プログラムをメモリ領域３にロードして実行する際に、所定プログラムがロードされたことをロード履歴として保存する。
【０１１１】
これにより、不具合発生時に、原因となったプログラムがどれなのかを調査するのに役立つうえ、エラーストップ発生時の次の起動時に、どのプログラムからスタートすればよいかを特定するのに役立つ。
また、ロード履歴を参照することによって、どのような機種を検査したかを認識することができる。
さらに、プログラムの呼び出し関係を容易に取得することができる。
【０１１２】
実施の形態８．
なお、上記実施の形態１〜７では、プログラム（プロジェクト）のロード処理のみについて説明したが、検査装置から蓄積手段にプログラム（プロジェクト）をアップロードしてもよい。
図１６はプログラム実行手段４Ｆにアップロード機能を設けたこの発明の実施の形態８に係るプログラム実行システムの要部を示すブロック図である。
【０１１３】
図１６において、前述（図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｆ」を付して詳述を省略する。
この場合、検査装置１Ｆ内のプログラム実行手段４Ｆは、プログラムアップロード手段５Ｆを備えている。
プログラムアップロード手段５Ｆは、メモリ領域３に展開されているプログラム１０ａまたは１０ｂを、コード化ファイル７ｃに変換して蓄積手段６にコピーする。
【０１１４】
なお、プログラムアップロード手段５Ｆは、前述のプログラムロード手段５〜５Ｅの機能に含まれてもよく、プログラムロード手段５〜５Ｅとは別に設けられてもよい。
また、蓄積手段６としては、異なる複数の記録媒体（ＰＣカード、ＨＤＤなど）が接続されてもよい
【０１１５】
次に、図１７のフローチャートを参照しながら、図１６に示したこの発明の実施の形態８による動作について説明する。
図１７において、まず、プログラムアップロード手段５Ｆは、メモリ領域３上に展開されて実行中のプログラムのアップロードを開始し（ステップＳ２５）、アップロード対象となるプログラムの保存先の指定がＰＣカードか否（ＨＤＤ）かを判定する（ステップＳ２６）。
【０１１６】
ステップＳ２６において、保存先の指定がＰＣカードである（すなわち、ＹＥＳ）と判定されれば、蓄積手段６となるＰＣカードにコード化ファイル７ｃ（プログラム）を保存する（ステップＳ２７）。
一方、ステップＳ２６において、保存先の指定がＰＣカードでない（すなわち、ＮＯ）と判定されれば、蓄積手段６となるＨＤＤにコード化ファイル７ｃ（プログラム）を保存する（ステップＳ２８）。
【０１１７】
このように、この発明の実施の形態８（図１６、図１７参照）によるプログラム実行手段４Ｆは、プログラムアップロード手段５Ｆを含み、プログラムアップロード手段５Ｆは、検査装置１Ｆ内でプログラム実行手段４Ｆが実行中のプログラムを、蓄積手段６にアップロードする。
【０１１８】
これにより、実行中のプログラムを蓄積手段６に保存することができるうえ、アップロード時の保存先として、ＰＣカードまたはＨＤＤに指定することができる。なお、ＨＤＤについては、ネットワークに接続されたＨＤＤであってもよい。
また、一般に、検査装置１Ｆが稼動している間に、規格値を調整した場合には、元データとの整合性が失われてしまうが、この発明の実施の形態８によれば、プログラムの元ファイルを更新して保存することができるので、元ファイルに対して規格値の調整を個別に反映させる必要がなくなるという利点もある。
【０１１９】
実施の形態９．
なお、上記実施の形態８では、プログラムのアップロードのみを実行したが、アップロードされるプログラムに、アプリケーションバージョン情報（以下、単に「バージョン情報」という）を付加してもよい。
アプリケーションとは、検査対象に応じて、ユーザによりプログラミングソフトウェア９（または、９ａ、９ｂ）で作成されるプログラムのことである。
図１８はこの発明の実施の形態９に係るプログラム実行システムによる動作を示すフローチャートである。
【０１２０】
図１８において、前述（図１７参照）と異なる点は、アップロードの開始（ステップＳ２５）に続いて、バージョン情報の付加処理（ステップＳ２５Ａ）が追加されたことのみである。
また、この発明の実施の形態９によるシステム構成は、図１６に示した通りであり、プログラムアップロード手段５Ｆが、アップロード時のバージョン情報管理機能およびバージョン情報付加機能を有している点のみが異なる。
【０１２１】
この場合、プログラムアップロード手段５Ｆ（図１６参照）は、蓄積手段６にアップロードされるプログラムに対して、バージョン情報を付加するようになっている。
次に、図１８を参照しながら、この発明の実施の形態９による動作について説明する。
まず、プログラムアップロード手段５Ｆは、プログラムのアップロードを開始し（ステップＳ２５）、アップロードするプログラムにバージョン情報を付加する（ステップＳ２５Ａ）。
以下、前述と同様に、プログラムの保存先の指定を判定し（ステップＳ２６）、ＰＣカードまたはＨＤＤにプログラムを保存する（ステップＳ２７、Ｓ２８）。
【０１２２】
このように、この発明の実施の形態９によるプログラム実行手段は、プログラムアップロード手段５Ｆ（図１６参照）による蓄積手段６へのプログラムアップロード時に、蓄積手段６にアップロードされるプログラム（実行中のプログラム）に対してバージョン情報を付加する。
【０１２３】
たとえば、前述（図１６、図１７参照）の実施の形態８では、プログラム（プロジェクト）のアップロード時に元ファイルが更新されるが、後から見たときに、変更前のファイルか変更後のファイルかを判別することができなくなる。
しかし、この発明の実施の形態９（図１８参照）によれば、ファイル更新時にバージョン情報が付加されるので、更新されたファイルであるか否かを判別することができ、管理し易くなるうえ、バージョン違いによる誤動作を防止することもできる。
【０１２４】
実施の形態１０．
なお、上記実施の形態１〜９では、特に言及しなかったが、蓄積手段６からのプログラムロード時にコンフィグレーション情報を比較して、ロードされるプログラムと検査装置との整合性をチェックしてもよい。
以下、図１９〜図２１を参照しながら、コンフィグレーション情報の整合性チェック機能を設けたこの発明の実施の形態１０に係るプログラム実行システムについて説明する。
【０１２５】
図１９は検査装置にコンフィグレーション情報のチェック機能を設けたこの発明の実施の形態１０に係るプログラム実行システムの要部を示すブロック図である。
図１９において、前述（図２参照）と同様のものについては、前述と同一符号を付して、または符号の後に「Ｇ」を付して詳述を省略する。
【０１２６】
この場合、プログラム実行手段４Ｇ内のプログラムロード手段５Ｇは、検査装置１Ｇおよびコード化ファイル７ｂの各コンフィグレーション情報を比較するコンフィグレーション整合性チェック手段１６を備えている。
また、蓄積手段６は、複数のコード化ファイル７ｂ、７ｂ’・・・を格納しているものとする。
【０１２７】
各コード化ファイル７ｂ、７ｂ’は、自身が動作するためのコンフィグレーション情報、すなわち、実際のプログラム処理動作に適合するための検査装置１ＧのＨ／Ｗ構成またはデバイス構成に対応した動作コンフィグレーション情報（以下、単に「コンフィグレーション情報」という）を有している。
【０１２８】
プログラム実行手段５Ｇ内のコンフィグレーション整合性チェック手段１６は、プログラムロード手段５Ｇによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境コンフィグレーション情報（以下、単に「コンフィグレーション情報」という）とを比較して両者の整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力する。
【０１２９】
このように、蓄積手段６内のコード化ファイル７ｂ、７ｂ’（プログラム１０ｂ、１０ｂ’）および検査装置１Ｇ内のプログラム実行手段４Ｇは、それぞれのコンフィグレーション情報を含み、プログラム実行手段４Ｇは、蓄積手段６からのプログラムロード時にコンフィグレーション情報の整合性をチェックするようになっている。
【０１３０】
また、プログラム実行手段４Ｇは、蓄積手段６内のプログラムロード時に、ロード対象となる所定プログラムたとえばコード化ファイル７ｂ（プログラム１０ｂ）のコンフィグレーション情報を読み込むことにより、所定プログラムに対応したコンフィグレーション情報を共有化してもよい。
【０１３１】
後述するように、コンフィグレーション整合性チェック手段１６は、検査装置１Ｇのコンフィグレーション情報（Ｈ／Ｗ構成またはデバイス構成）と、蓄積手段６から読み込まれた（または、これからロードされる）コード化ファイル７ｂ（または、他のコード化ファイル７ｂ’）のコンフィグレーション情報とを比較し、実際にプログラム動作が可能であるか否かを確認する。
【０１３２】
図２０はボードに関する検査装置１Ｇとコード化ファイル７ｂ、７ｂ’、７ｂ’’との各コンフィグレーション情報の関係を図式的に示すブロック図である。
図２０において、検査装置１Ｇは、コンフィグレーション情報として、増設ボード１８ａ、１８ｂを有しているものとする。
また、蓄積手段６内のコード化ファイル７ｂ、７ｂ’、７ｂ’’は、個別のコンフィグレーション情報１７ａ、１７ｂ、１７ｃを有しているものとする。
【０１３３】
コンフィグレーション情報１７ａ〜１７ｃは、具体的には、検査装置１ＧのＨ／Ｗ構成（使用している増設ボードの種類やスロット位置など）や検査装置１Ｇ内のデバイス（メモリ）設定が保存されたファイルである。
ここでは、コンフィグレーション情報１７ａは、増設ボード１８ａ、１８ｂに対応し、コンフィグレーション情報１７ｂは、増設ボード１８ａ、１８ｃに対応し、コンフィグレーション情報１７ｃは、増設ボード１８ａに対応しているものとする。
【０１３４】
次に、図２１のフローチャートを参照しながら、図１９および図２０に示したこの発明の実施の形態１０によるコンフィグレーション情報チェック動作について説明する。
図２１において、ステップＳ１０、Ｓ１５、Ｓ１７〜Ｓ１９は、前述（図１１参照）と同様の処理である。
【０１３５】
まず、プログラム実行手段４Ｇにおいて、蓄積手段６からプログラム１０ｂのロードを開始すると（ステップＳ１０）、プログラムロード手段５Ｇ内のコンフィグレーション整合性チェック手段１６は、コンフィグレーション情報１７ａ（または、１７ｂ、１７ｃ）が検査装置１Ｇのコンフィグレーション情報（Ｈ／Ｗ構成、デバイス構成）と完全に一致しているか否かを判定する（ステップＳ２９）。
【０１３６】
ステップＳ２９において、コンフィグレーション情報１７ａが検査装置１ＧのＨ／Ｗ構成と完全に一致する（すなわち、ＹＥＳ）と判定されれば、コード化ファイル７ｂ（図２０の例では、検査装置１ＧのＨ／Ｗ構成と完全に一致する）を読み込む（ステップＳ１５）。
【０１３７】
一方、ステップＳ２９において、たとえばコンフィグレーション情報１７ｂが検査装置１ＧのＨ／Ｗ構成と完全には一致しない（すなわち、ＮＯ）と判定されれば、コンフィグレーション情報１７ｂが検査装置１ＧのＨ／Ｗ構成と一致しないことを、表示／操作手段１２の画面上に表示する（ステップＳ３０）。
また、通信により他の装置に通知し（ステップＳ１７）、検査装置１Ｇ内のデバイスにエラーコードを出力し（ステップＳ１８）、検査装置１Ｇを停止させる（ステップＳ１９）。
【０１３８】
たとえば、図２０において、蓄積手段６内のコード化ファイル７ｂは、コンフィグレーション情報１７ａ（増設ボード１８ａ、１８ｂ）が検査装置１Ｇのボード構成（増設ボード１８ａ、１８ｂ）と完全に一致するので、コード化ファイル７ｂを検査装置１Ｇに読み込むことができる。
一方、蓄積手段６からコード化ファイル７ｂ’を読み込もうとすると、コンフィグレーション情報１７ｂ（増設ボード１８ａ、１８ｃ）が検査装置１Ｇのボード構成と一致しないので、エラーとなり、コード化ファイル７ｂ’を検査装置１Ｇに読み込むことはできない。
【０１３９】
以上のように、この発明の実施の形態１０（図１９〜図２１参照）によれば、蓄積手段６に格納されているプログラム（コード化ファイル７ｂ、７ｂ’・・・）は、自身が動作するためのコンフィグレーション情報１７ａ、１７ｂ・・・を含み、プログラム実行手段４Ｇは、コンフィグレーション整合性チェック手段１６を含み、コンフィグレーション整合性チェック手段１６は、プログラムロード手段５Ｇによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境のコンフィグレーション情報とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力する。
【０１４０】
これにより、前述の効果に加えて、コンフィグレーション情報１７ａ、１７ｂ・・・の整合性をチェックし、検査装置１Ｇで処理動作が不可能なプログラムのロードを回避することができる。
すなわち、蓄積手段６から所定プログラムがロードされて実行される際に、所定プログラムで扱うべき増設ボードが検査装置１Ｇに存在しなかった場合、または、違った増設ボードであった場合における不具合動作を未然に防ぐことができる。
【０１４１】
実施の形態１１．
なお、上記実施の形態１０では、プログラムおよび検査装置の各コンフィグレーション情報の完全な一致を確認したが、許容範囲を広げて、蓄積手段６からロードされる所定プログラムが動作するために十分であるか否かを確認してもよい。
図２２は許容範囲を広げたこの発明の実施の形態１１によるコンフィグレーション情報の確認動作を示すフローチャートである。
【０１４２】
この場合、コンフィグレーション整合性チェック手段１６（図１９参照）は、蓄積手段６からロードされる所定プログラムのコンフィグレーション情報と、プログラム実行手段４Ｇの動作環境（検査装置１Ｇ）のコンフィグレーション情報との整合性確認時に、検査装置１Ｇのコンフィグレーション情報が、所定プログラムが動作するために十分であるか否かを判定し、動作環境のコンフィグレーション情報が、所定プログラムが動作するために不十分である場合には、エラーコードを出力するようになっている。
【０１４３】
以下、前述の図１９および図２０とともに、図２２のフローチャートを参照しながら、この発明の実施の形態１１によるコンフィグレーション情報の整合性チェック処理動作について説明する。
図２２において、ステップＳ１０、Ｓ１５、Ｓ１７〜Ｓ１９、Ｓ２９は、前述（図２１参照）と同様の処理である。
【０１４４】
まず、プログラム実行手段４Ｇにおいて、蓄積手段６から所定プログラム（たとえば、コード化ファイル７ｂ）のロードを開始すると（ステップＳ１０）、コンフィグレーション整合性チェック手段１６は、コンフィグレーション情報１７ａ（または、１７ｂ、１７ｃ）が検査装置１Ｇのコンフィグレーション情報と完全に一致しているか否かを判定する（ステップＳ２９）。
【０１４５】
ステップＳ２９において、たとえばコンフィグレーション情報１７ａが検査装置１ＧのＨ／Ｗ構成と完全に一致する（すなわち、ＹＥＳ）と判定されれば、コード化ファイル７ｂを読み込む（ステップＳ１５）。
【０１４６】
一方、ステップＳ２９において、ロード対象プログラムのコンフィグレーション情報が検査装置１ＧのＨ／Ｗ構成と完全には一致しない（すなわち、ＮＯ）と判定されれば、続いて、コンフィグレーション情報１７ｂまたは１７ｃが、検査装置１ＧのＨ／Ｗ構成からいくつかの増設ボードを削除したものと一致しているか否かを判定する（ステップＳ２９Ａ）。
【０１４７】
ステップＳ２９Ａにおいて、たとえばコンフィグレーション情報１７ｃが、検査装置１ＧのＨ／Ｗ構成からいくつかの増設ボードを削除したものと一致する（すなわち、ＹＥＳ）と判定されれば、コンフィグレーション情報１７ｃに該当するコード化ファイル７ｂ’’を読み込む（ステップＳ１５）。
図２０の例では、コード化ファイル７ｂ’’のコンフィグレーション情報１７ｃ（増設ボード１８ａ）は、検査装置１ＧのＨ／Ｗ構成から増設ボード１８ｂを削除したものと一致する。
【０１４８】
一方、ステップＳ２９Ａにおいて、たとえばコンフィグレーション情報１７ｂが、検査装置１ＧのＨ／Ｗ構成からいくつかの増設ボードを削除したものとも一致しない（すなわち、ＮＯ）と判定されれば、コンフィグレーション情報１７ｂが検査装置１ＧのＨ／Ｗ構成と一致しないことを、表示／操作手段１２の画面上に表示する（ステップＳ３０Ａ）。
また、通信により他の装置に通知し（ステップＳ１７）、検査装置１Ｇ内のデバイスにエラーコードを出力し（ステップＳ１８）、検査装置１Ｇを停止させる（ステップＳ１９）。
【０１４９】
以上のように、蓄積手段６内のコード化ファイル７ｂ（図２０参照）は、コンフィグレーション情報１７ａが検査装置１Ｇのボード構成と完全に一致するので、コード化ファイル７ｂを検査装置１Ｇに読み込むことができる。
また、蓄積手段６内のコード化ファイル７ｂ’’は、コンフィグレーション情報１７ｃ（増設ボード１８ａ）が検査装置１Ｇのボード構成から増設ボード１８ｂを削除したものと一致するので、コード化ファイル７ｂ’’を検査装置１Ｇに読み込むことができる。
【０１５０】
前述の実施の形態１０では、コード化ファイル７ｃ（図２０参照）をロードすることはできなかったが、この発明の実施の形態１１では、コード化ファイル７ｃを検査装置１Ｇにロードすることができる。
一方、蓄積手段６内のコード化ファイル７ｂ’は、コンフィグレーション情報１７ｂ（増設ボード１８ａ、１８ｃ）が検査装置１Ｇのボード構成からいくつかの増設ボードを削除しても一致せず、許容範囲を広げてもエラーとなるので、コード化ファイル７ｂ’を検査装置１Ｇに読み込むことはできない。
【０１５１】
たとえば、工場などで稼動している検査装置において、新しい機種を検査するために、追加の増設ボードを使用した新規のプログラムを作成した場合、これまで稼動していた既存プログラムのコンフィグレーション情報が検査装置のコンフィグレーション情報とは異なったものとなってしまう。なぜなら、これまで稼動していた既存プログラムでは、追加の増設ボードについての記述がないからである。
【０１５２】
しかし、追加の増設ボードを使用した新規プログラムを作成した場合であっても、この発明の実施の形態１１によれば、新規プログラムのコンフィグレーション情報が検査装置のＨ／Ｗ構成と完全には一致しなかった場合に、さらに、検査装置のＨ／Ｗ構成からいくつかの増設ボードを削除した構成と一致するか否かのチェックを行うことにより、これまで稼動していた既存プログラムを変更することなく、新規に追加した増設ボードを使用したプログラム（プロジェクト）を作成することができる。
【０１５３】
このように、この発明の実施の形態１１によれば、コンフィグレーション整合性チェック手段１６は、ロード対象となる所定プログラムのコンフィグレーション情報と検査装置１Ｇのコンフィグレーション情報との整合性確認時に、検査装置１Ｇのコンフィグレーション情報が、所定プログラムが動作するために十分であるか否かを判定し、所定プログラムが動作するために不十分である場合のみにエラーコードを出力するので、前述の作用効果に加えて、ロード対象プログラムの許容範囲を広げることができる。
【０１５４】
実施の形態１２．
なお、上記実施の形態１〜１１では、蓄積手段６からロードされる所定プログラムのバージョン情報（アプリケーションバージョン情報）の整合性チェックについて考慮しなかったが、バージョン情報の整合性チェック機能を設けてもよい。
以下、図２３のフローチャートを参照しながら、バージョン情報の整合性チェック機能を設けたこの発明の実施の形態１２による処理動作について説明する。
図２３において、ステップＳ１０、Ｓ１５、Ｓ１７〜Ｓ１９は、前述（図２１、図２２参照）と同様の処理である。
【０１５５】
この場合、蓄積手段６に格納されているプログラムは、自身が動作するための動作アプリケーションバージョン情報（以下、単に「バージョン情報」という）を含み、検査装置内のプログラム実行手段は、プログラムロード手段による蓄積手段６からの所定プログラムのロード時に、所定プログラムのバージョン情報とプログラム実行手段の環境アプリケーションバージョン情報（以下、単に「バージョン情報」という）とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するようになっている。
【０１５６】
まず、蓄積手段６から所定プログラムのロードを開始し（ステップＳ１０）、ロードされるプログラムのバージョン情報とロード前の実行プログラムのバージョン情報とが一致するか否かを判定する（ステップＳ３１）。
つまり、プログラムロード前の実行プログラムとのバージョン情報が同じであるか否かを判定し、両者が一致する（すなわち、ＹＥＳ）と判定されれば、コード化ファイルを読み込む（ステップＳ１５）。
【０１５７】
一方、ステップＳ３１において、両者が一致しない（すなわち、ＮＯ）と判定されれば、バージョン情報が一致しないことを、表示／操作手段１２の画面上に表示する（ステップＳ３２）。
また、通信により他の装置に通知するとともに（ステップＳ１７）、検査装置内のデバイスにエラーコードを出力し（ステップＳ１８）、検査処理を停止する（ステップＳ１９）。
【０１５８】
なお、前述の通り、「アプリケーション」とは、プログラミングソフトウェア９（または、９ａ、９ｂ）で作成した「プログラム」のことであり、ユーザが作成するプログラムは、検査対象によって異なる。
したがって、検査対象を識別するために、個々の「プログラム」に、検査対象に応じたバージョン情報が付与されている。
【０１５９】
特に、この発明においては、複数のユーザがプログラムを分散して作成するので、分散して作成したプログラムが動作するかどうか、つまり、「機種選択プログラム（プログラム１０ａ）」と、この「機種選択プログラム」から呼び出される「Ｗｏｒｋ１．ｉｕｐ（プログラム１０ｂ）」（図１、図３参照）とが同じ目的で作成されたものかどうか、を判定することが重要になる。
【０１６０】
たとえば、或るユーザが、機種Ａ、Ｂ、Ｃを検査対象とした「プログラム」を、「機種選択プログラム」および「Ｗｏｒｋ１．ｉｕｐ」で作成し、別のユーザが、機種Ｄ、Ｅ、Ｆを検査対象とした「プログラム」を、「機種選択プログラム」および「Ｗｏｒｋ１．ｉｕｐ」で作成したとする。
この場合、「機種選択プログラム」において、「Ｗｏｒｋ１．ｉｕｐ」の取り扱いを間違えると、意図しない「Ｗｏｒｋ１．ｉｕｐ」が呼び出されてしまうことになる。
【０１６１】
したがって、プログラムのロードミスを未然に防ぐために、検査装置へのロード対象となるプログラムにバージョン情報を付与することが有効となる。
すなわち「機種選択プログラム」および「Ｗｏｒｋ１．ｉｕｐ」の両方に、同じバージョン情報を付与することにより、プログラム実行手段が意図する「Ｗｏｒｋ１．ｉｕｐ」を判別することができる。
【０１６２】
たとえば、或るユーザは、機種Ａ、Ｂ、Ｃを検査対象とした「プログラム」を「機種選択プログラム」および「Ｗｏｒｋ１．ｉｕｐ」で作成する際に、それぞれ「バージョン情報ＡＢＣ」を付与しておく。
一方、別のユーザは、機種Ｄ、Ｅ、Ｆを検査対象とした「プログラム」を「機種選択プログラム」および「Ｗｏｒｋ１．ｉｕｐ」で作成する際に、それぞれ「バージョン情報ＤＥＦ」を付与しておく。
【０１６３】
これにより、「Ｗｏｒｋ１．ｉｕｐ」の取り扱いを間違えても、「Ｗｏｒｋ１．ｉｕｐ」が呼び出される際に、「バージョン情報ＡＢＣ」の「機種選択プログラム」から「バージョン情報ＤＥＦ」の「Ｗｏｒｋ１．ｉｕｐ」が呼び出されることをチェックすることができる。
【０１６４】
このように、この発明の実施の形態１２によれば、蓄積手段６に格納されているプログラムは、自身が動作するためのバージョン情報（動作アプリケーションバージョン情報）を含み、検査装置内のプログラム実行手段は、プログラムロード手段による蓄積手段６からの所定プログラムのロード時に、所定プログラムのバージョン情報とプログラム実行手段のバージョン情報（環境アプリケーションバージョン情報）とを比較して、両者の整合性を確認し、確認結果が不整合を示す場合には、エラーコードを出力するので、バージョン情報が間違っていることをユーザに警報することができる。
【０１６５】
したがって、前述の作用効果に加えて、プログラムロード時のエラー処理を実行することにより、バージョン違いによる誤動作を防止することができる。
また、前述の実施の形態１０、１１ようにコンフィグレーション情報を比較するのではなく、プログラミング中にユーザが登録したアプリケーションバージョン情報（機種番号）が一致しているか否かに応じて、コンフィグレーション情報の判定を行うことも可能である。
【０１６６】
実施の形態１３．
なお、上記実施の形態１２では、蓄積手段６からのプログラムロード時に、検査対象ごとに異なるアプリケーションバージョン情報の整合性をチェックしたが、蓄積手段６からのプログラムロード時に、プログラム実行手段のＦ／Ｗバージョン情報（アップグレードに関するバージョン情報）に対する整合性をチェックしてもよい。
【０１６７】
以下、図面を参照しながら、Ｆ／Ｗバージョン情報の整合性チェック機能を設けたこの発明の実施の形態１３について説明する。
図２４はこの発明の実施の形態１３に係るプログラム実行システムの要部を示すブロック図である。
図２４において、前述と同様のものについては、前述と同一符号を付して、または符号の後に「Ｈ」を付して詳述を省略する。
【０１６８】
この場合、蓄積手段６内の格納されているプログラム（コード化ファイル７ｂ）は、自身が動作するための動作Ｆ／Ｗバージョン情報（以下、単に「Ｆ／Ｗバージョン情報」という）として、プログラム実行手段４Ｈの環境Ｆ／Ｗバージョン情報（以下、単に「Ｆ／Ｗバージョン情報」という）に対応したＦ／Ｗバージョン情報１９を有している。
コード化ファイル７ｂ内に付加されたＦ／Ｗバージョン情報１９は、自身のコードを実行するに十分なＦ／Ｗ（プログラム実行手段４Ｈ）のバージョン情報を保持している。
【０１６９】
また、検査装置１Ｈ内のプログラム実行手段４Ｈは、プログラムロード手段５Ｈによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのＦ／Ｗバージョン情報１９と、プログラム実行手段４Ｈの動作しているＦ／Ｗバージョン情報とを比較して、両者の整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するようになっている。
【０１７０】
次に、図２４とともに図２５のフローチャートを参照しながら、この発明の実施の形態１３によるロード対象プログラム（プロジェクト）とプログラム実行手段４Ｈ（Ｆ／Ｗ）とのＦ／Ｗバージョン情報の整合性チェック動作について説明する。
図２５において、ステップＳ１０、Ｓ１５、Ｓ１７〜Ｓ１９は、前述（図２１〜図２３参照）と同様の処理である。
【０１７１】
まず、プログラム実行手段４Ｈは、蓄積手段６からプログラムのロードを開始し（ステップＳ１０）、コード化ファイル７ｂのＦ／Ｗバージョン情報１９と検査装置１ＨのＦ／Ｗバージョン情報とを比較して、Ｆ／Ｗバージョン情報１９が検査装置１ＨのＦ／Ｗバージョン情報と同じか、またはそれ以下であるか否かを判定する（ステップＳ３３）。
【０１７２】
ステップＳ３３において、Ｆ／Ｗバージョン情報１９が検査装置１ＨのＦ／Ｗバージョン情報以下（すなわち、ＹＥＳ）と判定されれば、ロード対象プログラムのグレードがプログラム実行手段４Ｈのグレード以下であるため実行可能と見なし、コード化ファイル７ｂを読み込む（ステップＳ１３３）。
【０１７３】
一方、ステップＳ３３において、Ｆ／Ｗバージョン情報１９が検査装置１ＨのＦ／Ｗバージョン情報よりも大きい（すなわち、ＹＥＳ）と判定されれば、ロード対象プログラムのグレードがプログラム実行手段４Ｈのグレードよりも高いため実行不可能と見なして、検査装置１Ｈ内のプログラム実行手段４Ｈ（Ｆ／Ｗ）が対応していないことを、表示／操作手段１２の画面上に表示する（ステップＳ３４）。
また、通信により他の装置に通知し（ステップＳ１７）、検査装置１Ｇ内のデバイスにエラーコードを出力し（ステップＳ１８）、検査装置１Ｇを停止させる（ステップＳ１９）。
【０１７４】
なお、前述の通り、「Ｆ／Ｗ」とは、検査装置１Ｈ内のプログラム実行手段４Ｈのことであり、検査対象によって変わることはない。
一般に、検査装置１Ｈ（コントローラ）をアップグレードする場合、プログラム実行手段４Ｈ自体がアップグレードすることになるので、プログラム実行手段４自体にもＦ／Ｗバージョン情報が付与される（つまり、「Ｆ／Ｗ」にバージョン情報が付与される）ことが望ましい。
【０１７５】
すなわち、検査装置１Ｈには、プログラムを解釈して動作させるＦ／Ｗが実装されているが、プログラムロード時において新たに読み込むプログラムが、Ｆ／Ｗでサポートされていない機能を使用している可能性がある。
そこで、図２５のように、プログラムのロード開始時に、プログラムの対応するＦ／Ｗバージョン情報１９と検査装置１ＨのＦ／Ｗバージョン情報とを比較して、Ｆ／Ｗバージョン情報１９が、検査装置１ＨのＦ／Ｗバージョン情報以下の場合には、プログラムの読み込みを行い、Ｆ／Ｗバージョン情報１９が検査装置１ＨのＦ／Ｗバージョン情報よりも大きい場合にはエラー表示を行うことにより、プログラムで想定されている機能が使えなかった場合のプログラム不具合動作を未然に防ぐことができる。
【０１７６】
たとえば、最新バージョンのＦ／Ｗで動作するように作成したプログラムは、古いバージョンのＦ／Ｗで動作させようとしても正しく動作しない可能性がある。
しかし、図２４のように、プログラム実行手段４ＨにダウンロードされるプログラムがＦ／Ｗバージョン情報１９を有していれば、ダウンロード対象となるプログラムがどのバージョンのＦ／Ｗで動作するよう作成されたのかを、プログラム実行手段４Ｈで事前に確認することができる。
【０１７７】
このように、この発明の実施の形態１３によれば、蓄積手段６に格納されているプログラムは、自身が動作するためのＦ／Ｗバージョン情報（動作Ｆ／Ｗバージョン情報）１９を含み、プログラム実行手段４Ｈは、プログラムロード手段５Ｈによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのＦ／Ｗバージョン情報１９と、プログラム実行手段４Ｈの動作しているＦ／Ｗバージョン情報（環境Ｆ／Ｗバージョン情報）とを比較して整合性を確認し、確認結果が不整合を示す場合にはエラーコードを出力するので、Ｆ／Ｗバージョン情報１９が検査装置１Ｈで動作できないことをユーザに警報することができ、Ｆ／Ｗバージョン情報の違いによる誤動作を防止することができる。
【０１７８】
実施の形態１４．
なお、上記実施の形態１〜１３では、プログラミングソフトウェアでのプログラム作成時におけるコンフィグレーション情報の反映について言及しなかったが、プログラミング作成時に外部（たとえば、検査装置）との間でコンフィグレーション情報の授受を実行してもよい。
図２６はプログラミングソフトウェアにコンフィグレーション情報の授受機能を設けたこの発明の実施の形態１４に係るプログラム実行システムのプログラム作成部を示すブロック図である。
【０１７９】
図２６において、プログラミングソフトウェア９は、コンフィグレーション情報１７が設定されるプログラム１０と、外部に対してコンフィグレーション情報１７の授受を行うためのエクスポート手段２０およびインポート手段２１を備えている。
なお、ここでは、プログラミングソフトウェア９、プログラム１０、コンフィグレーション情報１７については、特に限定されない対象であることを示すために、総称的に数字のみを付している。
【０１８０】
また、たとえば検査装置内のプログラム実行手段（図示せず）は、プログラミングソフトウェア９からのエクスポート処理により、コンフィグレーション情報１７を保存し、検査装置内のメモリ領域にロードされるプログラム１０に対して、コンフィグレーション情報１７を反映させるようになっている。
【０１８１】
コンフィグレーション情報１７のエクスポート手段２０は、具体的には、プログラム１０に関連する検査装置のＨ／Ｗ構成やデバイスの設定を抽出する手段である。
また、コンフィグレーション情報１７のインポート手段２１は、具体的には、既に保存されたＨ／Ｗ構成やデバイスの設定をプログラム１０に反映させるための手段である。
【０１８２】
なお、ここでは図示を省略するが、この発明の実施の形態１４によるプログラミングシステムは、前述（図１〜図４参照）のように、プログラム実行システム４により実行されるプログラム１０（少なくとも、プログラム１０ｂを含む）を作成するためのプログラム作成部（パソコン８内のプログラミングソフトウェア９、９ａ、９ｂ）を備えている。
【０１８３】
また、プログラム生成手段は、コード化されたプログラム１０をコード化ファイルとして生成するコード化ファイル生成手段（１１または１１ｂ）を含み、プログラム１０におけるプログラム呼び出し命令に応答して呼び出される別のプログラムを、別途コード化してコード化ファイルとして生成する。
【０１８４】
また、プログラミングソフトウェア９内のコード化ファイル生成手段は、コンフィグレーション情報１７を外部へ書き出すエクスポート手段２０と、外部へ書き出されたコンフィグレーション情報１７を読み込むインポート手段２１とを含み、プログラム１０からの呼び出し命令に応答して呼び出される別のプログラムを作成する際に、プログラム１０を作成した際のコンフィグレーション情報を、別のプログラムを作成する際に流用するようになっている。
【０１８５】
図２７はプログラミングソフトウェア９から検査装置へのコンフィグレーション情報１７のエクスポート処理を示すフローチャートであり、図２８はプログラミングソフトウェア９へのコンフィグレーション情報１７のインポート処理を示すフローチャートである。
以下、図２６および図２７を参照しながら、この発明の実施の形態１４によるプログラミングソフトウェア９でのコンフィグレーション情報１７のエクスポート処理動作について説明する。
【０１８６】
図２７において、まず、プログラミングソフトウェア９上でプログラム１０を作成し（ステップＳ３５）、エクスポート手段２０を介して、プログラミングソフトウェア９上でコンフィグレーション情報１７のエクスポートを実行する（ステップＳ３６）。
最後に、コンフィグレーション情報１７をファイルとして保存し（ステップＳ３７）、図２７のエクスポート処理を終了する。
【０１８７】
次に、図２６および図２８を参照しながら、この発明の実施の形態１４によるコンフィグレーション情報１７のインポート処理動作について説明する。
図２８において、まず、プログラミングソフトウェア９上でプログラムを作成し（ステップＳ３５）、インポート手段２１を介して、プログラミングソフトウェア９上でコンフィグレーション情報１７のインポートを実行する（ステップＳ３８）。
【０１８８】
次に、既にコンフィグレーション情報１７を作成しているか否かを判定し（ステップＳ３９）、コンフィグレーション情報１７を作成していない（すなわち、ＮＯ）と判定されれば、コンフィグレーション情報１７をプログラム１０に反映させる（ステップＳ４０）  一方、ステップＳ３９において、既にコンフィグレーション情報１７を作成している（すなわち、ＹＥＳ）と判定されれば、続いて、コンフィグレーション情報１７を上書きするか否かを判定する（ステップＳ４１）。
【０１８９】
ステップＳ４１において、コンフィグレーション情報１７を上書きする（すなわち、ＹＥＳ）と判定されれば、コンフィグレーション情報１７を上書きしてプログラム１０に反映させる（ステップＳ４０）。
一方、ステップＳ４１において、コンフィグレーション情報１７を上書きしない（すなわち、ＮＯ）と判定されれば、コンフィグレーション情報１７の一部を選択して、エクスポート手段２０を介してエクスポートを実行した後（ステップＳ４２）、コンフィグレーション情報１７をプログラム１０に反映させる（ステップＳ４０）。
【０１９０】
一般に、増設ボードを使用するように記述されたプログラム１０においては、プログラム１０が動作する検査装置内に使用対象の増設ボードが挿入されていないと、プログラム１０が検査装置内で正常に動作することができない。
また、プログラム１０のロード時においても、ロードされたプログラム１０のコンフィグレーション情報と検査装置のコンフィグレーション情報とが異なる場合には、プログラム１０は正常に動作しない。
【０１９１】
したがって、１つのプログラムＡからプログラムロードを使用してロードされたプログラムＢには、プログラムＡと同じコンフィグレーション情報が設定される必要がある。
この発明の実施の形態１４によれば、コンフィグレーション情報１７のエクスポート／インポート処理により、コンフィグレーション情報１７を１元管理することができる。
また、コンフィグレーション情報１７の共有化が可能になるとともに、プログラミング時のミスを防止することもできる。
【０１９２】
次に、この発明の実施の形態１４による効果について、具体例をあげて補足説明する。
まず、検査装置の第１のＨ／Ｗ構成として、スロット「０」に「ＲＳ２３２Ｃボード」が挿入され、スロット「１」に「デジタル入出力ボード」が挿入されたものを考える。
また、検査装置の第２のＨ／Ｗ構成として、スロット「０」に「アナログ出力ボード」が挿入されたものを考える。
【０１９３】
上記各構成例に対し、第１のＨ／Ｗ構成で動作するプログラムＡと、第２のＨ／Ｗ構成で動作するプログラムＢとを作成する。
ここで、第１のＨ／Ｗ構成の検査装置において、プログラムＡからのプログラムロードにより、プログラムＢをロードして実行しようとした場合を想定する。
このとき、プログラムＢは、スロット「０」に「アナログボード」が挿入されていることを前提にプログラムされているにもかかわらず、検査装置のスロット「０」には、「ＲＳ２３２Ｃボード」が挿入されているので、プログラムＢが正常に動作することはできない。
【０１９４】
検査装置の増設ボードの構成を変更せずに、検査装置上でプログラムＡ、Ｂを動作させるためには、第３のＨ／Ｗ構成として、スロット「０」に「ＲＳ２３２Ｃボード」が挿入され、スロット「１」に「デジタル入出力ボード」が挿入され、スロット「３」に「アナログボード」が挿入されたものを考え、このコンフィグレーション情報によりプログラムＡ、Ｂが作成されていなければならない。
【０１９５】
この発明の実施の形態１４によれば、プログラムＡが動作している検査装置にプログラムＢを追加する場合に、上記第３のＨ／Ｗ構成のコンフィグレーション情報を作成することにより、プログラムＢを開発するときに既に作成されたコンフィグレーション情報を活用することができる。
これにより、前述の作用効果に加えて、コンフィグレーション情報を共有化して、コンフィグレーション情報を１元管理するとともに、プログラミング時のミスを防止することができる。
【０１９６】
実施の形態１５．
なお、上記実施の形態１４では、保存されたコンフィグレーション情報を必要に応じてプログラムに反映させたが、リンクによりコンフィグレーション情報を１元管理してもよい。
図２９はこの発明の実施の形態１５に係るプログラム実行システムのプログラム作成部を示すブロック図である。
【０１９７】
図２９において、プログラミングソフトウェア９Ａは、コンフィグレーション情報が設定されるプログラム１０Ａと、コンフィグレーション情報リンク手段２２とを備えている。
コンフィグレーション情報リンク手段２２は、具体的には、コンフィグレーション情報を参照するための参照先ファイルを設定する手段であり、参照先ファイルを設定して、コンフィグレーション情報を外部のプログラム１０Ｂとの間でリンクさせる。
【０１９８】
なお、この発明の実施の形態１５によるプログラミングシステムも、前述（図１〜図４参照）と同様の構成を有しており、プログラミングソフトウェア９Ａ内のコード化ファイル生成手段（１１または１１ｂ）は、外部のコンフィグレーション情報を参照するリンク手段２２を含む。
コード化ファイル生成手段は、プログラム１０Ａからの呼び出し命令に応答して呼び出されるプログラム１０Ｂを作成する際に、プログラム１０Ａを作成した際のコンフィグレーション情報を、プログラム１０Ｂを作成する際に流用するようになっている。
【０１９９】
次に、図２９とともに、図３０のフローチャートを参照しながら、この発明の実施の形態１５によるコンフィグレーション情報のリンク処理動作について説明する。
図３０において、ステップＳ３５は前述（図２７参照）と同様の処理である。
まず、プログラミングソフトウェア９Ａ上で、プログラム１０Ａを作成する（ステップＳ３５）。なお、この場合、ステップＳ３５において、コンフィグレーション情報を設定する必要はない。
続いて、プログラミングソフトウェア９Ａ上で、コンフィグレーション情報の参照先ファイルを設定する（ステップＳ４３）。
【０２００】
前述の実施の形態１４（図２６〜図２８参照）では、コンフィグレーション情報１７に変更があった場合、１つのプログラム１０を修正し、コンフィグレーション情報１７のエクスポート処理を実行し、そのコンフィグレーション情報１７をインポートしたプログラム１０のすべてに対して、再度、コンフィグレーション情報１７のインポート処理を実行しなければならなかった。
【０２０１】
しかし、この発明の実施の形態１５では、リンク先のプログラム１０Ｂのコンフィグレーション情報のみを変更することで、参照しているすべてのプログラム１０Ｂにコンフィグレーション情報の変更を適用することができる。
したがって、コンフィグレーション情報の変更を忘れることによる不具合を回避するとともに、リンクを用いた１元管理により、コンフィグレーション情報を変更することができ、利便性を高めることができる。
【０２０２】
次に、この発明の実施の形態１５による効果について、具体例をあげて補足説明する。
まず、プログラムＡのＨ／Ｗ構成として、スロット「０」に「ＲＳ２３２Ｃボード」が挿入され、スロット「１」に「デジタル入出力ボード」が挿入されているものとする。
また、プログラムＡにリンクされるプログラムＢのＨ／Ｗ構成として、スロット「２」に「アナログ出力ボード」が挿入されているものとする。
【０２０３】
この発明の実施の形態１５によれば、プログラムＡに対応する検査装置のＨ／Ｗ構成として、スロット「０」に「ＲＳ２３２Ｃボード」が挿入され、スロット「１」に「デジタル入出力ボード」が挿入されるとともに、スロット「２」に「アナログ出力ボード」が挿入される。
また、上記プログラムＡ、Ｂを作成する場合に、プログラムＡの第１のＨ／Ｗ構成には、使用しないスロット「２」の記述を入れておき、プログラムＢでは、特にＨ／Ｗ構成を記述せず、第１のＨ／Ｗ構成をリンクしておき、第１のＨ／Ｗ構成を使用したプログラムＢを作成していく。
以上のように、この発明の実施の形態１５によれば、リンクによりコンフィグレーション情報を１元管理することができる。
【０２０４】
実施の形態１６．
なお、上記実施の形態１４、１５では、特に言及しなかったが、プログラム（プロジェクト）の呼び出し関係を自動的に解析するように構成してもよい。
図３１はプログラム解析機能を設けたこの発明の実施の形態１６に係るプログラム作成部の要部を示すブロック図である。
【０２０５】
図３１において、たとえばプログラム作成部（前述のパソコン８、またはプログラミングソフトウェア９、９Ａ）は、プログラム解析手段２３を備えており、プログラム解析手段２３は、解析結果表示手段２４を有している。
プログラム解析手段２３には、コード化ファイル７またはプログラム１０が読み込まれる。
なお、ここでは、コード化ファイル７およびプログラム１０については、特に限定されない対象であることを示すために、総称的に数字のみを付している。
【０２０６】
プログラム解析手段２３は、具体的には、プログラム１０を解析してプログラムロードの呼び出し関係を取得する手段である。
解析結果表示手段２４は、具体的には、プログラム１０を解析して得られたプログラムロードの呼び出し関係を表示する手段である。
【０２０７】
すなわち、プログラム解析手段２３は、呼び出し命令に応答して呼び出されるプログラム１０の呼び出し関係を解析し、解析結果表示手段２４は、プログラム解析手段２３により得られたプログラムの呼び出し関係の解析結果を表示し、これにより、プログラム作成部により作成されたプログラム１０またはコード化ファイル７を、１つ以上読み込んで解析するようになっている。
【０２０８】
次に、図３１とともに、図３２のフローチャートを参照しながら、この発明の実施の形態１６によるプログラム１０の解析処理について説明する。
図３２において、まず、プログラム解析手段２３は、プログラム１０を解析し（ステップＳ４４）、続いて、解析結果表示手段２４は、解析しているプログラム１０から呼び出されているプログラム名を表示する（ステップＳ４５）。
なお、ここでは、説明を省略するが、コード化ファイル７の解析処理も同様の手順で実行される。
【０２０９】
たとえば、前述（図３参照）のプログラム（機種選択プログラム）１０ａにおいては、ＤＳ０デバイスの値により、「ｗｏｒｋ１．ｉｕｐ」、「ｗｏｒｋ２．ｉｕｐ」、「ｗｏｒｋ３．ｉｕｐ」、「ｗｏｒｋ４．ｉｕｐ」、「ｗｏｒｋ５．ｉｕｐ」を呼び出すことができるが、このままでは、選択内容（何が呼び出されているのか）をユーザが認識するためには、プログラム１０ａ中を具体的に読み出して見なければならない。
【０２１０】
つまり、上記のようなプログラム１０ａの呼び出し関係を確認するためには、たとえばプログラム１０ａをプログラミングソフトウェア９、９ａで開いて、内容を確認する必要がある。また、プログラミングソフトウェア９、９ａでは、コード化ファイルを開いて内容を確認することはできない。
したがって、作成したプログラム数が増加するにつれ、各プログラムの呼び出し関係を把握することは非常に困難となる。
【０２１１】
しかし、この発明の実施の形態１６によれば、図３の機種選択プログラム１０ａで呼び出されるプログラム（ｗｏｒｋ１．ｉｕｐ、ｗｏｒｋ２．ｉｕｐ、ｗｏｒｋ３．ｉｕｐ、ｗｏｒｋ４．ｉｕｐ、ｗｏｒｋ５．ｉｕｐ）が解析結果表示手段２４上に自動的に表示されるので、ユーザが解析結果を一覧することができる。
したがって、プログラム１０の依存関係の解析が容易となるとともに、コード化ファイル７からも依存関係を確認することができる。
以上のように、この発明の実施の形態１６によれば、前述の作用効果に加えて、プログラム１０の呼び出し関係を容易に取得することができる。
【０２１２】
実施の形態１７．
なお、上記実施の形態１４〜１６では、特に言及しなかったが、プログラム（プロジェクト）の依存関係を自動的に管理するように構成してもよい。
図３３はプログラム管理機能を設けたこの発明の実施の形態１７に係るプログラム作成部の要部を示すブロック図である。
【０２１３】
図３３において、プログラム作成部は、管理ツールとして、プログラム管理手段２５を備えており、プログラム管理手段２５は、依存関係表示手段２６を有している。
プログラム管理手段２５には、複数のプログラム１０（または、複数のコード化ファイル７）が読み込まれる。
【０２１４】
プログラム管理手段２５は、具体的には、複数のプログラム１０やコード化ファイル７を管理する手段である。
依存関係表示手段２６は、具体的には、プログラム管理手段２５に登録されたプログラム１０やコード化ファイル７の依存関係を表示する手段である。
【０２１５】
すなわち、プログラム管理手段２５は、プログラム１０またはコード化ファイル７をアプリケーションごとに登録して管理し、依存関係表示手段２６は、登録されたプログラム１０またはコード化ファイル７をアプリケーションごとに表示し、これにより、プログラム作成部により作成されたプログラム１０またはコード化ファイル７を１つ以上管理するようになっている。
【０２１６】
次に、図３３とともに、図３４のフローチャートを参照しながら、この発明の実施の形態１７によるプログラム（プロジェクト）の管理処理について説明する。
図３４において、まず、プログラム管理手段２５にプログラム１０およびコード化ファイル７を登録する（ステップＳ４６）。
このとき、プログラム管理手段２５には、複数のプログラム１０および複数のコード化ファイル７を登録してもよい。
続いて、依存関係表示手段２６上に、プログラム管理手段２５の呼び出し関係を表示するとともに（ステップＳ４７）、登録したプログラム１０およびコード化ファイル７に関する呼び出し関係を表示する（ステップＳ４８）。
【０２１７】
一般に、作成したプログラム１０の数が増加するにつれ、各プログラム１０の呼び出し関係を把握することは極めて困難となる。
前述の実施の形態１６においては、１つ１つのプログラム１０またはコード化ファイル７に対して、解析結果として呼び出し関係を表示したが、この発明の実施の形態１７によれば、最初に調べたい複数のプログラム１０およびコード化ファイル７を登録することにより、全体の依存関係が表示されるので全体の解析が容易となる。
これにより、検査装置内で動作しているプログラム１０のすべてについて、プログラム１０の呼び出し関係を容易に取得して調査することが容易となり、調査もれを防止することができる。
【０２１８】
実施の形態１８．
なお、上記実施の形態１７では、コンフィグレーション情報の変更について考慮しなかったが、プログラム管理手段２５（図３３参照）で管理されている場合に、コンフィグレーション情報の修正を行うと、すべての関連するプログラム１０が自動的にアップデートされるようにしてもよい。
【０２１９】
以下、図３３を参照しながら、自動的なプログラムアップデート機能を設けたこの発明の実施の形態１８について説明する。
この発明の実施の形態１８によるプログラム作成部は、コンフィグレーション一括更新手段（図示せず）をさらに備えており、アプリケーションごとに登録されているすべてのプログラム１０やコード化ファイル７に対して、コンフィグレーション情報を一括して更新するようになっている。
【０２２０】
ここでが、具体例として、プログラム１０のＨ／Ｗ構成が、第１の構成（スロット「０」に「ＲＳ２３２Ｃボード」が挿入され、スロット「１」に「デジタル入出力ボード」が挿入された状態）から、第２の構成（スロット「３」に「アナログボード」が挿入された状態）に追加された場合を考える。
【０２２１】
すなわち、既に工場などで稼動している検査装置において、新しい機種を検査するために、追加で増設ボードを使用したプログラムを作成した場合、これまで稼動していたプログラムＡのままでは、追加の増設ボードについての記述がないので、これまで稼動していたプログラムＡのコンフィグレーション情報が、追加で増設ボードを使用した検査装置のコンフィグレーション情報とは異なってしまう。
【０２２２】
しかし、この発明の実施の形態１８によれば、コンフィグレーション一括更新手段を設けたので、プログラム管理手段２５で管理されている場合に、コンフィグレーション情報の修正が行われると、すべての関連するプログラム１０が自動的にアップデートされることになり、プログラム１０の呼び出し関係を容易に取得することのみならず、容易にコンフィグレーション情報を共有化することができる。
【０２２３】
実施の形態１９．
なお、上記実施の形態１６（図３１参照）では、前述の実施の形態１４、１５のプログラム作成部にプログラム解析手段２３を設けた場合について説明したが、プログラム解析手段２３を備えたプログラム解析システムを構成してもよい。
【０２２４】
すなわち、この発明の実施の形態１９に係るプログラム解析システムは、プログラム作成部（プログラミングシステム）により作成されたプログラム１０またはコード化ファイル７（図３１参照）を１つ以上読み込んで解析するために、呼び出し命令に応答して呼び出されるプログラム１０の呼び出し関係を解析するプログラム解析手段２２と、プログラム解析手段２２により得られたプログラムの呼び出し関係の解析結果を表示する解析結果表示手段２４とを備えている。
これにより、上記実施の形態１６と同様の作用効果を奏するプログラム解析システムを実現することができる。
【０２２５】
実施の形態２０．
なお、上記実施の形態１７（図３３参照）では、前述の実施の形態１４〜１６のプログラム作成部にプログラム管理手段２５を設けた場合について説明したが、プログラム管理手段２５を備えたプログラム解析システムを構成してもよい。
【０２２６】
すなわち、この発明の実施の形態１９に係るプログラム解析システムは、プログラム作成部（プログラミングシステム）により作成されたプログラム１０またはコード化ファイル７（図３３参照）を１つ以上管理するために、プログラム１０またはコード化ファイル７をアプリケーションごとに登録して管理するプログラム管理手段２５と、登録されたプログラム１０またはコード化ファイル７の依存関係をアプリケーションごとに表示する依存関係表示手段２６とを備えている。
これにより、上記実施の形態１７と同様の作用効果を奏するプログラム解析システムを実現することができる。
【０２２７】
実施の形態２１．
また、上記実施の形態２０に係るプログラム解析システムに対して、さらにコンフィグレーション一括更新手段を設け、アプリケーションごとに登録されているすべてのプログラム１０やコード化ファイル７に対して、コンフィグレーション情報を一括して更新するようにしてもよい。
これにより、上記実施の形態１８と同様の作用効果を奏するプログラム解析システムを実現することができる。
【０２２８】
実施の形態２２．
なお、上記実施の形態１〜１３（図１〜図２５参照）では、蓄積手段６およびプログラム実行手段４（または、１Ａ〜１Ｈ）を備えたプログラム実行システムについて説明したが、上記実施の形態１〜１３に係るプログラム実行システムを備えた検査装置を構成してもよい。
これにより、上記実施の形態１〜１３と同様の作用効果を奏する検査装置を実現することができる。
【０２２９】
実施の形態２３．
また、上記実施の形態１４〜１８に係るプログラミングシステムを備えた検査装置用プログラム作成システムを構成してもよい。
これにより、上記実施の形態１４〜１８と同様の作用効果を奏する検査装置用プログラム作成システムを実現することができる。
【０２３０】
実施の形態２４．
さらに、上記実施の形態１〜１４に係るプログラム実行システムと、上記実施の形態１５〜１８に係るプログラミングシステムとを備えた検査装置用プログラム作成システムを構成してもよい。
これにより、上記実施の形態１〜１８と同様の作用効果を奏する検査装置システムを実現することができる。
【図面の簡単な説明】
【０２３１】
【図１】この発明の実施の形態１に係るプログラム実行システムを示すブロック図である。
【図２】この発明の実施の形態１に係るプログラム実行システムを示すブロック図である。
【図３】この発明の実施の形態１に係る機種選択プログラムを図式的に示す説明図である。
【図４】この発明の実施の形態１に係るプログラム処理動作を示すフローチャートである。
【図５】この発明の実施の形態２に係るプログラム実行システムを示すブロック図である。
【図６】この発明の実施の形態２に係るプログラム処理動作を示すフローチャートである。
【図７】この発明の実施の形態３に係るプログラム実行システムの要部を示すブロック図である。
【図８】この発明の実施の形態３に係るプログラム処理動作を示すフローチャートである。
【図９】この発明の実施の形態４に係るプログラム実行システムの要部を示すブロック図である。
【図１０】この発明の実施の形態４に係るプログラム処理動作を示すフローチャートである。
【図１１】この発明の実施の形態５に係るプログラム処理動作を示すフローチャートである。
【図１２】この発明の実施の形態６に係るプログラム実行システムの要部を示すブロック図である。
【図１３】この発明の実施の形態６に係るプログラム処理動作を示すフローチャートである。
【図１４】この発明の実施の形態７に係るプログラム実行システムの要部を示すブロック図である。
【図１５】この発明の実施の形態７に係るプログラム処理動作を示すフローチャートである。
【図１６】この発明の実施の形態８に係るプログラム実行システムの要部を示すブロック図である。
【図１７】この発明の実施の形態８に係るプログラム処理動作を示すフローチャートである。
【図１８】この発明の実施の形態９に係るプログラム処理動作を示すフローチャートである。
【図１９】この発明の実施の形態１０に係るプログラム実行システムを示すブロック図である。
【図２０】この発明の実施の形態１０に係るコンフィグレーション情報を図式的に示すブロック図である。
【図２１】この発明の実施の形態１０によるコンフィグレーション情報の整合性チェック処理動作を示すフローチャートである。
【図２２】この発明の実施の形態１１によるコンフィグレーション情報の整合性チェック処理動作を示すフローチャートである。
【図２３】この発明の実施の形態１２によるバージョン情報の整合性チェック処理動作を示すフローチャートである。
【図２４】この発明の実施の形態１３に係るプログラム実行システムを示すブロック図である。
【図２５】この発明の実施の形態１３によるＦ／Ｗバージョン情報の整合性チェック処理動作を示すフローチャートである。
【図２６】この発明の実施の形態１４に係るプログラム実行システムの要部を示すブロック図である。
【図２７】この発明の実施の形態１４に係るコンフィグレーション情報のエクスポート処理を示すフローチャートである。
【図２８】この発明の実施の形態１４に係るコンフィグレーション情報のインポート処理を示すフローチャートである。
【図２９】この発明の実施の形態１５に係るプログラム実行システムの要部を示すブロック図である。
【図３０】この発明の実施の形態１５に係るコンフィグレーション情報のリンク処理を示すフローチャートである。
【図３１】この発明の実施の形態１６に係るプログラム実行システムの要部を示すブロック図である。
【図３２】この発明の実施の形態１６に係るプログラム解析処理を示すフローチャートである。
【図３３】この発明の実施の形態１７に係るプログラム実行システムの要部を示すブロック図である。
【図３４】この発明の実施の形態１７に係るプログラム管理処理を示すフローチャートである。
【符号の説明】
【０２３２】
１、１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ、１Ｆ、１Ｇ、１Ｈ  検査装置、２  コード保持手段、３  メモリ領域、４、４Ａ、４Ｂ、４Ｃ、４Ｄ、４Ｅ、４Ｆ、４Ｇ、４Ｈ  プログラム実行手段、５、５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｇ、５Ｈ  プログラムロード手段、５Ｆ  プログラムアップロード手段、６、６Ｄ  蓄積手段、７、７ａ、７ｂ、７ｂ’、７Ｂ’’、７ｃ  コード化ファイル、９、９ａ、９ｂ、９Ａ  プログラミングソフトウエア、１０、１０ａ、１０ｂ、１０Ａ、１０Ｂ  プログラム、１２  表示／操作手段、１３  プログラム実行単位を、１４  デバイス初期化情報、１５  プログラムロード履歴保存手段、１６  コンフィグレーション整合性チェック手段、１７、１７ａ、１７ｂ、１７ｃ  コンフィグレーション情報、１９  Ｆ／Ｗバージョン情報、２０  エクスポート手段、２１  インポート手段、２２  リンク手段、２３  プログラム解析手段、２４  解析結果表示手段、２５  プログラム管理手段、２６  依存関係表示手段。
【図１】
2007004273.tif 000003
【図２】
2007004273.tif 000004
【図３】
2007004273.tif 000005
【図４】
2007004273.tif 000006
【図５】
2007004273.tif 000007
【図６】
2007004273.tif 000008
【図７】
2007004273.tif 000009
【図８】
2007004273.tif 000010
【図９】
2007004273.tif 000011
【図１０】
2007004273.tif 000012
【図１１】
2007004273.tif 000013
【図１２】
2007004273.tif 000014
【図１３】
2007004273.tif 000015
【図１４】
2007004273.tif 000016
【図１５】
2007004273.tif 000017
【図１６】
2007004273.tif 000018
【図１７】
2007004273.tif 000019
【図１８】
2007004273.tif 000020
【図１９】
2007004273.tif 000021
【図２０】
2007004273.tif 000022
【図２１】
2007004273.tif 000023
【図２２】
2007004273.tif 000024
【図２３】
2007004273.tif 000025
【図２４】
2007004273.tif 000026
【図２５】
2007004273.tif 000027
【図２６】
2007004273.tif 000028
【図２７】
2007004273.tif 000029
【図２８】
2007004273.tif 000030
【図２９】
2007004273.tif 000031
【図３０】
2007004273.tif 000032
【図３１】
2007004273.tif 000033
【図３２】
2007004273.tif 000034
【図３３】
2007004273.tif 000035
【図３４】
2007004273.tif 000036
【手続補正書】
【提出日】平成17年6月27日(2005.6.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０２１３
【補正方法】変更
【補正の内容】
【０２１３】
図３３において、プログラム作成部は、管理ツールとして、プログラム管理手段２５を備えており、プログラム管理手段２５は、依存関係表示手段２６を有している。
プログラム管理手段２５には、複数のプログラム１０（または、複数のコード化ファイル７）が登録される。
【手続補正書】
【提出日】平成17年8月2日(2005.8.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１１
【補正方法】変更
【補正の内容】
【請求項１１】
前記蓄積手段に格納されているプログラムは、自身が動作するための動作コンフィグレーション情報を含み、
前記プログラム実行手段は、コンフィグレーション整合性チェック手段を含み、
前記コンフィグレーション整合性チェック手段は、前記プログラムロード手段による前記蓄積手段からの所定プログラムのロード時に、前記所定プログラムの動作コンフィグレーション情報と、前記プログラム実行手段の動作している環境コンフィグレーション情報とが一致するか否かを確認し、確認結果が不一致を示す場合にはエラー処理を実行することを特徴とする請求項１から請求項１０までのいずれか１項に記載のプログラム実行システム。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１５
【補正方法】変更
【補正の内容】
【請求項１５】
請求項１から請求項１４までのいずれか１項に記載のプログラム実行システムにより実行される少なくとも前記第２のプログラムを作成するためのプログラム作成手段を備えたプログラミングシステムであって、
前記プログラム作成手段は、コード化された前記第２のプログラムをコード化ファイルとして生成するコード化ファイル生成手段を含み、
前記第１のプログラムにおけるプログラムに対する呼び出し命令に応答して呼び出される前記第２のプログラムを、別途コード化して前記コード化ファイルとして生成することを特徴とするプログラミングシステム。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１６
【補正方法】変更
【補正の内容】
【請求項１６】
コンフィグレーション情報を外部へ書き出すエクスポート手段と、
外部へ書き出されたコンフィグレーション情報を読み込むインポート手段とを備え、
前記第１のプログラムからの呼び出し命令に応答して呼び出される前記第２のプログラムを作成する際に、前記第１のプログラムを作成した際のコンフィグレーション情報を、前記第２のプログラムを作成する際に流用することを特徴とする請求項１５に記載のプログラミングシステム。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１７
【補正方法】変更
【補正の内容】
【請求項１７】
外部のコンフィグレーション情報を参照するコンフィグレーション情報リンク手段を備え、
前記第１のプログラムからの呼び出し命令に応答して呼び出される前記第２のプログラムを作成する際に、前記第１のプログラムを作成した際のコンフィグレーション情報を、第２のプログラムを作成する際に流用することを特徴とする請求項１５に記載のプログラミングシステム。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２６
【補正方法】変更
【補正の内容】
【請求項２６】
請求項２４に記載の検査装置と、請求項２５に記載の検査装置用プログラム作成システムとにより構成されたことを特徴とする検査装置システム。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
従来の検査装置におけるプログラム実行システムおよびプログラミングシステムの一例として、インテリジェント検査ユニットにおけるプログラムダウンロード装置が提案されている（たとえば、非特許文献１参照）。
上記非特許文献１に記載の従来装置においては、プログラミングソフトウェア（ＩＵ  Ｄｅｖｅｌｏｐｅｒ）を備えたパソコンにより、以下のようにプログラムロード処理が実行される。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
このように、従来装置においては、パソコンにインストールされたプログラミングソフトウェア（ＩＵ  Ｄｅｖｅｌｏｐｅｒ）でプログラムを作成し、パソコンと検査装置（インテリジェント検査ユニット本体）とを接続した後、プログラミングソフトウェアの「実行」または「リビルド実行」のメニューにより、作成したプログラムをコード化して検査装置（インテリジェント検査ユニット本体）にダウンロードして動作させるようになっている。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、上記技術的背景からメンテナンス性も悪くなるうえ、たとえば、Ａ機種を検査する検査装置に対してＢ機種の検査機能を追加するためには、ＡプログラムにＢプログラムを追加する必要がある。
また、機種別にプログラムを分離して記述することができないことから、複数のユーザによる分散開発や並列開発が困難となるうえ、機種追加などを行う場合には、既に動作している既存部分に対する影響も十分に考慮しつつ新規プログラムを作成する必要があるので、実質的に機種追加時の開発が困難になる。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
以上のように、従来のプログラム実行システムにおいては、プログラムが１つのファイルに統括されているので、機種追加などが頻繁に発生するとプログラムが巨大化してしまい、検査対象機種を容易に追加することができないという課題があった。
また、機種別にプログラムを分離して記述することができないので、分散開発や並列開発を実現することができないうえ、メンテナンス性も悪いという課題があった。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、機種別にプログラムを分離して記述することができず、分散開発や並列開発が困難なことから、実質的に機種追加時の開発が困難になるという課題があった。
さらに、装置の最大メモリ容量を超えるプログラムの作成が困難なうえ、機種追加時には、パソコンと検査装置とを再接続して、追加分を含めたすべてのプログラムを再度プログラミングソフトウェアよりダウンロードする必要があるという課題があった。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
この発明によれば、あらかじめプログラミングソフトウェアで生成されたコード化ファイル（第２のプログラム）を蓄積手段から読み出してメモリ領域にロードし、動作中の第１のプログラムと入れ替えて動作させることにより、各プログラムの巨大化を回避して分散開発および並列開発を可能にし、検査対象機種を効率的に且つ容易に追加することができる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
また、指定デバイスが「ＤＳ０＝２」の場合には、プログラム実行手段４において、コマンド「ＩＵＰ  ＬＯＡＤ」が実行され、プログラムロード手段５により、ファイル名「ｗｏｒｋ２．ｉｕｐ」のコード化ファイルが蓄積手段６からロードされる。
さらに、指定デバイスＤＳ０が「１」、「２」、「３」、「４」のいずれでもない場合には、プログラム実行手段４においてコマンド「ＩＵＰ  ＬＯＡＤ」が実行され、プログラムロード手段５により、ファイル名「ｗｏｒｋ５．ｉｕｐ」のコード化ファイルが蓄積手段６からロードされる。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
これにより、プログラムを単一ファイルに統括せずに、たとえば機種別のコード化ファイル７ｂを複数生成した後に、それらを蓄積手段６に格納しておき、必要なときに必要なコード化ファイル７ｂを自由に呼び出して動作させることができる。
したがって、プログラム１０ａの巨大化を回避し、プログラム１０ｂの分散開発および並列開発を可能にするとともに、各プログラム１０ａ、１０ｂの実行コードの独立性を高めることができる。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００５５
【補正方法】変更
【補正の内容】
【００５５】
次に、図６のフローチャートを参照しながら、図５に示したこの発明の実施の形態２による動作について説明する。
図６において、ステップＳ１Ａ、Ｓ２、Ｓ３Ａ〜Ｓ９Ａは、前述（図４参照）のステップＳ１〜Ｓ９にそれぞれ対応している。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
すなわち、プログラム実行手段４Ａは、プログラム１０ｂの動作中に、プログラム１０ｂ内のプログラム１０ａに対する呼び出し命令に応答して、蓄積手段６からメモリ領域３にプログラム１０ａをロードする。
これにより、検査装置１Ａの起動後に、プログラム１０ａからプログラム１０ｂのコード化ファイル７ｂが呼び出されて、プログラム１０ｂが実行されている場合に、プログラム１０ｂの最後にプログラム１０ａのコード化ファイル７ａへの呼び出し命令が記述されていれば、プログラム１０ｂの終了時に、自動的にプログラム１０ａに再復帰することができる。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
プログラム実行手段５Ｇ内のコンフィグレーション整合性チェック手段１６は、プログラムロード手段５Ｇによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境コンフィグレーション情報（以下、単に「コンフィグレーション情報」という）とを比較して両者が一致するか否かを確認し、確認結果が不一致を示す場合にはエラーコードを出力する。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１３９
【補正方法】変更
【補正の内容】
【０１３９】
以上のように、この発明の実施の形態１０（図１９〜図２１参照）によれば、蓄積手段６に格納されているプログラム（コード化ファイル７ｂ、７ｂ’・・・）は、自身が動作するためのコンフィグレーション情報１７ａ、１７ｂ・・・を含み、プログラム実行手段４Ｇは、コンフィグレーション整合性チェック手段１６を含み、コンフィグレーション整合性チェック手段１６は、プログラムロード手段５Ｇによる蓄積手段６からの所定プログラムのロード時に、所定プログラムのコンフィグレーション情報と、プログラム実行手段の動作している環境のコンフィグレーション情報とが一致するか否かを確認し、確認結果が不一致を示す場合にはエラーコードを出力する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１８３
【補正方法】変更
【補正の内容】
【０１８３】
また、プログラム作成手段は、コード化されたプログラム１０をコード化ファイルとして生成するコード化ファイル生成手段（１１または１１ｂ）を含み、プログラム１０におけるプログラム呼び出し命令に応答して呼び出される別のプログラムを、別途コード化してコード化ファイルとして生成する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１９８
【補正方法】変更
【補正の内容】
【０１９８】
なお、この発明の実施の形態１５によるプログラミングシステムも、前述（図１〜図４参照）と同様の構成を有しており、プログラミングソフトウェア９Ａ内のコード化ファイル生成手段（１１または１１ｂ）は、外部のコンフィグレーション情報を参照するコンフィグレーション情報リンク手段２２を含む。
コード化ファイル生成手段は、プログラム１０Ａからの呼び出し命令に応答して呼び出されるプログラム１０Ｂを作成する際に、プログラム１０Ａを作成した際のコンフィグレーション情報を、プログラム１０Ｂを作成する際に流用するようになっている。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０２３２
【補正方法】変更
【補正の内容】
【０２３２】
１、１Ａ、１Ｂ、１Ｃ、１Ｄ、１Ｅ、１Ｆ、１Ｇ、１Ｈ  検査装置、２  コード保持手段、３  メモリ領域、４、４Ａ、４Ｂ、４Ｃ、４Ｄ、４Ｅ、４Ｆ、４Ｇ、４Ｈ  プログラム実行手段、５、５Ａ、５Ｂ、５Ｃ、５Ｄ、５Ｅ、５Ｇ、５Ｈ  プログラムロード手段、５Ｆ  プログラムアップロード手段、６、６Ｄ  蓄積手段、７、７ａ、７ｂ、７ｂ’、７Ｂ’’、７ｃ  コード化ファイル、９、９ａ、９ｂ、９Ａ  プログラミングソフトウェア、１０、１０ａ、１０ｂ、１０Ａ、１０Ｂ  プログラム、１２  表示／操作手段、１３  プログラム実行単位を、１４  デバイス初期化情報、１５  プログラムロード履歴保存手段、１６  コンフィグレーション整合性チェック手段、１７、１７ａ、１７ｂ、１７ｃ  コンフィグレーション情報、１９  Ｆ／Ｗバージョン情報、２０  エクスポート手段、２１  インポート手段、２２  コンフィグレーション情報リンク手段、２３  プログラム解析手段、２４  解析結果表示手段、２５  プログラム管理手段、２６  依存関係表示手段。
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図２９
【補正方法】変更
【補正の内容】
【図２９】
2007004273.tif 000037