(57)【特許請求の範囲】
【請求項１】
実行形式の一又は複数の第１プログラムであって、ハードウェアを動作させるプログラムを呼び出すラッパ関数を有する一又は複数の第１プログラムをコンピュータ（１０）が表示し、ユーザによって選択された第１プログラムと、
ユーザが入力した情報に基づいてコンピュータ（１０）が生成する設定ファイルであって、選択された前記第１プログラムが実行される際に使用される設定ファイルと、
ユーザが作成したインタプリタ形式の第２プログラムであって、選択された前記第１プログラムが実行される際に使用される第２プログラムと、
に基づいて、コンピュータ（１０）がプログラムを生成する方法。
【請求項２】
前記第２プログラムは、前記第１プログラムが前記設定ファイルを使用する際に実行されるプログラムか、又は、前記第１プログラムが前記設定ファイルを使用することなく実行されるプログラムである請求項１に記載の方法。
【請求項３】
ユーザによって選択された前記第１プログラムと、
前記設定ファイルと、
前記第２プログラムと、
をパッケージとしてコンピュータ（１０）が記憶する請求項１又は２に記載の方法。
【請求項４】
前記第１プログラムをコンピュータ（１０）が表示する時に、前記パッケージをコンピュータ（１０）が表示する請求項３に記載の方法。
【請求項５】
実行形式の一又は複数の第１プログラムであって、ハードウェアを動作させるプログラムを呼び出すラッパ関数を有する一又は複数の第１プログラムを記憶する記憶部（１２）と、
前記記憶部（１２）から読み出だされて表示され、ユーザによって選択された前記第１プログラムと、
ユーザが入力した情報に基づいて生成される設定ファイルであって、選択された前記第１プログラムが実行される際に使用される設定ファイルと、
ユーザが作成したインタプリタ形式の第２プログラムであって、選択された前記第１プログラムが実行される際に使用される第２プログラムと、
に基づいて、プログラムを生成する演算部（１６）と、
を備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム生成を支援する方法及びプログラム生成を支援する装置に関する。
【背景技術】
【０００２】
従来、プログラム生成を支援する装置が提案されている。プログラム生成を支援する装置は、ユーザのプログラム設計作業を支援して、ユーザの作業量を低減する。
【０００３】
例えば、新たなプログラムを作成する場合には、メインプログラム、メインプログラムが呼び出すサブルーチンプログラム又はメインプログラム等で使用されるパラメータ設定ファイル等を、一から作成することがある。
【０００４】
また、メインプログラム又はサブルーチンプログラムに関しては、メインプログラム又はサブルーチンプログラムを一から作成するのではなく、頻繁に使用される処理として用意されているライブラリプログラムを利用することもある。
【０００５】
このようなプログラムを作成するユーザの作業を低減するために、プログラム生成を支援する装置が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１２３３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のプログラム生成を支援する装置では、パラメータ設定ファイルのパラメータを変更することは可能なものの、メインプログラム及びサブルーチンプログラムに関しては、あらかじめ用意されているライブラリプログラムの中からしか選択することができない。また、新たにパラメータ設定ファイルを追加することもできない。
【０００８】
従って、あらかじめ用意されているライブラリプログラムに含まれるメインプログラム又はサブルーチンプログラムの処理が、ユーザの所望する処理とは異なる部分を有していても、ユーザがメインプログラム又はサブルーチンプログラムの処理を変更することはできなかった。
【０００９】
本明細書では、ユーザの所望する処理を実行できるプログラムの生成を支援する方法を提供することを目的とする。
【００１０】
また、本明細書では、ユーザの所望する処理を実行できるプログラムの生成を支援する装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本明細書に開示する方法によれば、実行形式の一又は複数の第１プログラムであって、ハードウェアを動作させるプログラムを呼び出すラッパ関数を有する一又は複数の第１プログラムをコンピュータ（１０）が表示し、ユーザによって選択された第１プログラムと、ユーザが入力した情報に基づいてコンピュータ（１０）が生成する設定ファイルであって、選択された上記第１プログラムが実行される際に使用される設定ファイルと、ユーザが作成したインタプリタ形式の第２プログラムであって、選択された上記第１プログラムが実行される際に使用される第２プログラムと、に基づいて、コンピュータ（１０）がプログラムを生成する。
【００１２】
また、本明細書に開示する装置によれば、実行形式の一又は複数の第１プログラムであって、ハードウェアを動作させるプログラムを呼び出すラッパ関数を有する一又は複数の第１プログラムを記憶する記憶部（１２）と、上記記憶部（１２）から読み出だされて表示され、ユーザによって選択された上記第１プログラムと、ユーザが入力した情報に基づいて生成される設定ファイルであって、選択された上記第１プログラムが実行される際に使用される設定ファイルと、ユーザが作成したインタプリタ形式の第２プログラムであって、選択された上記第１プログラムが実行される際に使用される第２プログラムと、に基づいて、プログラムを生成する演算部（１６）と、を備える。
【００１３】
なお、上記各手段に付した括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示す一例である。
【図面の簡単な説明】
【００１４】
【図１】本明細書に開示するプログラム生成を支援する装置の一実施形態を示す図である。
【図２】検査装置及び制御コンピュータを示す図である。
【図３】検査プログラムの構造を示す図である。
【図４】検査ウィンドウの設定を説明する図である。
【図５】検査プログラムが有するラッパ関数を説明する図である。
【図６】プログラム生成を支援する装置の動作の一例を示すフローチャートである。
【図７】プログラム生成を支援する装置の表示部の画面を示す図（その１）である。
【図８】プログラム生成を支援する装置の表示部の画面を示す図（その２）である。
【図９】プログラム生成を支援する装置の表示部の画面を示す図（その３）である。を示す図である。
【図１０】プログラム生成を支援する装置の表示部の画面を示す図（その４）である。
【発明を実施するための形態】
【００１５】
以下、本明細書で開示するプログラム生成を支援する装置の好ましい一実施形態を、図を参照して説明する。但し、本発明の技術範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００１６】
図１は、本明細書に開示するプログラム生成を支援する装置の一実施形態を示す図である。図２は、プログラム生成を支援する装置により生成されたプログラムが使用される検査装置及び制御コンピュータを示す図である。
【００１７】
本実施形態のプログラム生成を支援する装置１０（以下、単に装置１０ともいう）は、ユーザが検査プログラムを作成することを支援する。この検査プログラムは、検査装置５０の制御を行う制御コンピュータ５１が、検査装置５０の制御を行う時に実行するプログラムである。検査装置５０は、製品の画像を撮影し、撮影した画像を用いて製品を検査する装置である。検査装置５０の動作は、制御コンピュータ５１によって制御される。制御コンピュータ５１は、検査プログラムを実行することにより、検査装置５０で撮影された画像の画像処理を行って製品の検査を行う。なお、装置１０が、検査プログラムの生成を支援することは一例であり、装置１０は、他の種類のプログラムの生成を支援し得る。
【００１８】
図１に示すように、装置１０は、所定のプログラムを記憶する記憶部１２と、記憶部１２に記憶された所定のプログラムを実行する演算部１１と、液晶ディスプレイ等を有する表示部１３と、キーボード又はマウス等を有する入力部１４と、プリンタ等を有する出力部１５と、外部のネットワーク等との間で通信する通信部１６とを備える。装置１０の各処理は、演算部１１が、記憶部１２に記憶した所定のプログラムを実行することにより実現される。
【００１９】
装置１０は、例えば、サーバ又はパーソナルコンピュータ等のコンピュータ、若しくはステートマシン等を用いて構成され得る。
【００２０】
次に、装置１０によって生成される検査プログラムの構造を、図３を参照して、以下に説明する。
【００２１】
検査プログラムは、以下に説明する検査カーネルプログラム、カメラ設定ファイル、通信設定ファイル、検査ウィンドウ設定ファイル、計測マクロプログラム、検査マクロプログラム及び判定マクロプログラムを有し、装置１０によって一つのパッケージにまとめられて生成される。
【００２２】
検査カーネルプログラムは、検査プログラムのメインプログラムである。検査カーネルプログラムは、後述する各設定ファイル又はインタプリタ形式のプログラムを使用して、検査の処理を実行する。検査カーネルプログラムは、コンピュータが直接実行可能な実行形式のプログラムである。一又は複数の検査カーネルプログラムが、装置１０の記憶部１２に記憶されている。複数の検査カーネルプログラムが記憶部１２に記憶されている場合には、ユーザによって選択された検査カーネルプログラムが、検査プログラムのメインプログラムとして使用される。
【００２３】
カメラ設定ファイルには、検査装置で撮影に用いられるカメラの数及び種類と、カメラのコマンド又は引数等の形式がパラメータとして設定される。カメラ設定ファイルは、検査カーネルプログラムが実行される際に使用される。カメラの種類としては、例えば、ＵＳＢカメラ、ギガビットイーサネット（登録商標）カメラ等が挙げられる。また、装置１０の記憶部１２には、検査装置が撮影に用いるカメラそれぞれを駆動するプログラムであるドライバが記憶されている。本実施形態では、カメラ設定ファイルはテキスト形式のファイルである。
【００２４】
通信設定ファイルには、検査装置５０と制御コンピュータ５１との間の通信に使用される通信の種類がパラメータとして設定される。通信設定ファイルは、検査カーネルプログラムが実行される際に使用される。通信の種類としては、例えば、シリアル通信、ソケット通信、パラレル通信等が挙げられる。また、検査装置５０がＩＯインターフェースを用いて、制御コンピュータ５１と通信を行う場合には、通信の種類として、検査装置５０が有するＩＯが通信設定ファイルに設定される。本実施形態では、通信設定ファイルはテキスト形式のファイルである。
【００２５】
検査ウィンドウ設定ファイルには、検査装置５０で撮影された画像を処理する際の検査ウィンドウの数、位置及び形状が設定される。検査ウィンドウ設定ファイルは、検査カーネルプログラムが実行される際に使用される。検査装置５０のカメラによって複数の画像が撮影される場合には、検査ウィンドウ設定ファイルは、それぞれの画像に対して生成される。
【００２６】
検査ウィンドウ設定ファイルの説明を、図４を参照して、以下に説明する。
【００２７】
図４は、装置１０の表示部１３に表示される検査ウィンドウ設定ボックス２０を示す。検査ウィンドウ設定ボックス２０には、検査装置５０で撮影された画像の一例が示されている。この画像は、検査される製品の領域Ｒ１及びＲ２を示している。
【００２８】
検査ウィンドウ設定ボックス２０には、検査ウィンドウ２１、検査ウィンドウ２２及び検査ウィンドウ２３が設定されている。各検査ウィンドウは、装置１０が画像処理を行う領域を規定する。検査ウィンドウ２１は、領域Ｒ１の一方のエッジを含むように設定されている。検査ウィンドウ２２は、領域Ｒ１の他方のエッジを含むように設定されている。検査ウィンドウ２３は、領域Ｒ２を含むように設定されている。各検査ウィンドウの位置及び形状は、ユーザが、入力部１４のマウス又はキーボード等を用いて、装置１０に入力する。装置１０は、ユーザが入力した各検査ウィンドウの位置及び形状等の情報に基づいて検査ウィンドウ設定ファイルを生成する。本実施形態では、検査ウィンドウ設定ファイルはテキスト形式のファイルである。
【００２９】
計測マクロプログラムは、検査カーネルプログラムが検査ウィンドウ設定ファイルを使用する際に実行される間接型のサブルーチンプログラムである。計測マクロプログラムは、検査カーネルプログラムが検査ウィンドウ設定ファイルを使用することなく、検査カーネルプログラムによって直接使用されることはない。
【００３０】
計測マクロプログラムは、ユーザが作成したインタプリタ形式のプログラムである。計測マクロプログラムは、マクロ言語によって記述されたプログラムである。本実施形態では、計測マクロプログラムはテキスト形式のファイルである。
【００３１】
装置１０は、３つの計測マクロプログラムを有する。
【００３２】
一つ目の計測マクロプログラム１は、検査ウィンドウ２１と関連づけられている。計測マクロプログラム１は、領域Ｒ１の一方のエッジの位置を計測する。計測マクロプログラム１は、例えば、領域Ｒ１の一方のエッジの位置を計測する際に用いる二値化処理の閾値をパラメータとして有する。
【００３３】
二つ目の計測マクロプログラム２は、検査ウィンドウ２２と関連づけられている。計測マクロプログラム２は、領域Ｒ１の他方のエッジの位置を計測する。計測マクロプログラム２は、例えば、領域Ｒ１の他方のエッジの位置を計測する際に用いる二値化処理の閾値をパラメータとして有する。
【００３４】
三つ目の計測マクロプログラム３は、検査ウィンドウ２３と関連づけられている。計測マクロプログラム３は、領域Ｒ２の面積、重心及び半径を計測する。計測マクロプログラム３は、例えば、領域Ｒ２の面積、重心及び半径を計測する際に用いる二値化処理の閾値をパラメータとして有する。
【００３５】
このように、検査プログラムでは、計測マクロプログラムが検査ウィンドウ設定ファイルに関連付けられることにより、プログラムの構造化を図って、サブルーチンプログラムと設定ファイルとの関係が明確にされる。
【００３６】
検査マクロプログラムは、計測マクロプログラムが実行した結果を用いて実行されるプログラムである。検査マクロプログラムは、検査カーネルプログラムが検査ウィンドウ設定ファイルを使用することなく、検査カーネルプログラムによって直接使用される直接型のサブルーチンプログラムである。検査マクロプログラムは、ユーザが作成したインタプリタ形式のプログラムである。検査マクロプログラムは、マクロ言語によって記述されたプログラムである。本実施形態では、検査マクロプログラムはテキスト形式のファイルである。
【００３７】
装置１０の検査マクロプログラムは、計測マクロプログラム１が実行されて得られた領域Ｒ１の一方のエッジの位置及び計測マクロプログラム２が実行されて得られた領域Ｒ１の他方のエッジの位置に基づいて、領域Ｒ１の幅を計算する。
【００３８】
判定マクロプログラムは、上述した計測マクロプログラム又は検査マクロプログラムが実行した結果を用いて実行されるプログラムである。判定マクロプログラムは、検査カーネルプログラムが検査ウィンドウ設定ファイルを使用することなく、検査カーネルプログラムによって直接使用される直接型のサブルーチンプログラムである。判定マクロプログラムは、ユーザが作成したインタプリタ形式のプログラムである。判定マクロプログラムは、マクロ言語によって記述されたプログラムである。本実施形態では、判定マクロプログラムはテキスト形式のファイルである。
【００３９】
装置１０は、２つの判定マクロプログラムを有する。
【００４０】
一つ目の判定マクロプログラム１は、検査マクロプログラムの結果の判定処理を行う。判定マクロプログラム１は、検査マクロプログラムが計算した領域Ｒ１の幅の値に基づいて、領域Ｒ１が正常であるか又は異常であるかを判定する。
【００４１】
二つ目の判定マクロプログラム２は、計測マクロプログラム３の結果の判定処理を行う。判定マクロプログラム２は、計測マクロプログラム３が求めた領域Ｒ２の面積、重心及び半径の値に基づいて、領域Ｒ２が正常であるか又は異常であるかを判定する。
【００４２】
検査カーネルプログラムは、判定マクロプログラム１、２の結果を用いて、検査の処理を実行する。
【００４３】
このように、検査プログラムでは、検査マクロプログラム及び判定マクロプログラムを計測マクロプログラムとは分離することにより、プログラムのデバッグ時に、不具合箇所の特定が容易になるようされている。
【００４４】
装置１０は、上述した、ユーザによって選択された検査カーネルプログラムと、カメラ設定ファイルと、通信設定ファイルと、検査ウィンドウ設定ファイルと、計測マクロプログラム１〜３と、検査マクロプログラムと、判定マクロプログラム１、２とを有する検査プログラムを１つのパッケージＰとして記憶部１２に記憶する。
【００４５】
検査カーネルプログラムは、検査装置５０が有するハードウェアとしての複数のカメラを、それぞれのドライバを介して駆動する。異なるカメラのドライバは、コマンド又は引数が同じとは限らないので、検査プログラムがカメラのドライバを呼び出す際には、各ドライバに対応したコマンド又は引数を用いる必要がある。
【００４６】
そこで、検査カーネルプログラムは、カメラを動作させるドライバを呼び出すラッパ関数を有している。
【００４７】
検査カーネルプログラムは、カメラを動作させる処理に関して、ラッパ関数を用いることにより、同一の処理で記載することが可能となる。
【００４８】
図５に示す例では、検査装置５０は、カメラＡ、カメラＢ及びカメラＣを有しており、それぞれのカメラを動作させるドライバがある。
【００４９】
例えば、検査カーネルプログラムが、カメラＡを動作させる場合には、ラッパ関数は、カメラ設定ファイルを参照して、動作させるカメラの種類がカメラＡであることを読み出して、カメラＡのドライバＡに対応したコマンド又は引数を読み出す。
【００５０】
そして、ラッパ関数は、カメラＡに対応したコマンド又は引数を用いて、ドライバを呼び出すことにより、カメラＡを動作させる。カメラＢ又はカメラＣについても、同様に動作させることができる。
【００５１】
このように、ラッパ関数が各カメラに対応したコマンド又は引数の違いを吸収するので、検査カーネルプログラムのカメラを動作させる処理は、カメラの違いを考慮することなく同じ処理で記載することができる。
【００５２】
次に、装置１０の動作の一例を、図６を参照して、以下に説明する。装置１０の動作は、演算部１１が記憶部１２に記憶した所定のプログラムを実行することにより実現する。
【００５３】
まず、ステップＳ１０において、装置１０は、ユーザに対して、新規に生成される検査プログラムの名称として、パッケージ名を入力することを求める。図７は、表示部１３の画面３０を示している。ユーザは、入力部１４のキーボード等を用いて、画面３０のパッケージ名入力ボックス３１に新たなパッケージ名「パッケージ２」と入力する。パッケージ名入力ボックス３１にパッケージ名が入力された画面を図８に示す。
【００５４】
次に、ステップＳ１２において、装置１０は、ユーザに対して、パッケージのリストを表示すると共に、検査カーネルプログラム及びカメラ及び通信のリストを表示する。
【００５５】
図７に示すように、画面３０は、パッケージ表示ボックス３３と、検査カーネルプログラム表示ボックス３４と、カメラ表示ボックス３５と、通信表示ボックス３６とを有する。
【００５６】
パッケージ表示ボックス３３は、パッケージのリストを表示する。パッケージ表示ボックス３３には、デフォルトとして、パッケージ１が表示されている。演算部１１は、記憶部１２に記憶されているパッケージの種類を読み出して、表示部１３に表示する。
【００５７】
検査カーネルプログラム表示ボックス３４は、検査カーネルプログラムのリストを表示する。検査カーネルプログラム表示ボックス３４には、検査カーネルプログラム１及び検査カーネルプログラム２が表示されている。演算部１１は、記憶部１２に記憶されている検査カーネルプログラムの種類を読み出して、表示部１３に表示する。
【００５８】
カメラ表示ボックス３５は、カメラのリストを表示する。カメラ表示ボックス３５には、カメラＡ、カメラＢ及びカメラＣが表示されている。演算部１１は、記憶部１２に記憶されているカメラの種類を読み出して、表示部１３に表示する。
【００５９】
通信表示ボックス３６は、通信のリストを表示する。通信表示ボックス３６には、パラレル通信、ソケット通信及びパラレルＩＯが表示されている。演算部１１は、記憶部１２に記憶されている通信の種類を読み出して、表示部１３に表示する。
【００６０】
次に、ステップＳ１４において、図８に示すように、装置１０は、ユーザによって選択されたパッケージを画面３０に表示する。ユーザがパッケージ表示ボックス３３に表示されたデフォルトのパッケージ１を選択することにより、選択パッケージ表示ボックス３２には、パッケージ１が表示される。初回には、デフォルトのパッケージ１を選択して、新たな検査プログラムが作成される。次回以降には、既に登録された複数のパッケージの内の一つを選択することが可能となる。
【００６１】
また、選択パッケージ表示ボックス３２には、パッケージ１と共に、パッケージ１が有する検査カーネルプログラム１、パッケージ１が有するカメラ設定ファイルに設定されたカメラＡ及びパッケージ１が有する通信設定ファイルに設定されたパラレル通信が表示される。ここで、検査カーネルプログラム１、カメラＡ、パラレル通信は、デフォルトとしてパッケージ１に設定されているが、他のものがデフォルトとしてパッケージ１に設定されていても良い。
【００６２】
次に、ステップＳ１６において、装置１０は、ユーザによって選択された検査カーネルプログラムを表示する。
【００６３】
図９に示すように、装置１０は、ユーザが検査カーネルプログラム表示ボックス３４に表示された検査カーネルプログラム２を選択したことにより、選択パッケージ表示ボックス３２に検査カーネルプログラム２を表示する。
【００６４】
次に、ステップＳ１８において、装置１０は、ユーザによって選択されたカメラを表示する。
【００６５】
図９に示すように、装置１０は、ユーザがカメラ表示ボックス３５に表示されたカメラＣを選択したことにより、選択パッケージ表示ボックス３２にカメラＣを表示する。また、装置１０は、選択されたカメラＣをカメラ設定ファイルに設定する。なお、図９に示す例では、１つのカメラＣが選択されているが、複数のカメラが選択されても良い。
【００６６】
次に、ステップＳ２０において、装置１０は、ユーザによって選択された通信を表示する。
【００６７】
図９に示すように、装置１０は、ユーザが通信表示ボックス３６に表示されたソケット通信を選択したことにより、選択パッケージ表示ボックス３２にソケット通信を表示する。また、装置１０は、選択されたソケット通信を通信設定ファイルに設定する。
【００６８】
次に、ステップＳ２２において、装置１０は、ユーザが入力した検査ウィンドウの設定パラメータ等に基づいて、検査ウィンドウ設定ファイルを生成する。
【００６９】
パッケージ１はデフォルトなので、検査ウィンドウ設定ファイルを有していない。そのため、図８に示すように、パッケージ１が選択された時点では、画面３０の検査ウィンドウ設定ボックス３７には、検査ウィンドウは表示されていない。
【００７０】
ユーザは、検査ウィンドウの位置及び形状等の情報を検査ウィンドウ設定ボックス３７に入力する。図９に示す例では、検査ウィンドウ設定ボックス３７には、図４で説明したのと同様に３つの検査ウィンドウ２１〜２３が入力されている。装置１０は、ユーザが入力した検査ウィンドウ２１〜２３の設定パラメータ等に基づいて、検査ウィンドウ設定ファイルを生成する。
【００７１】
次に、ステップＳ２４において、装置１０は、ユーザが作成した計測マクロプログラムを入力して、検査ウィンドウに関連づける。
【００７２】
ユーザは、例えば、検査ウィンドウ設定ボックス３７の検査ウィンドウ２１内でマウスをクリックし、計測マクロプログラムの編集モードを起動して、計測マクロプログラム１を作成し、作成した計測マクロプログラム１を保存して、編集モードを終了する。このようにして、装置１０は、ユーザが作成した計測マクロプログラム１を入力して、検査ウィンドウ２１に関連付ける。
【００７３】
同様にして、装置１０は、ユーザが作成した計測マクロプログラム２を入力して、検査ウィンドウ２２に関連付ける。また、装置１０は、ユーザが作成した計測マクロプログラム３を入力して、検査ウィンドウ２３に関連付ける。
【００７４】
なお、計測マクロプログラムを入力する方法は、他の方法であっても良い。
【００７５】
次に、ステップＳ２６において、装置１０は、ユーザが作成した検査マクロプログラムを入力する。
【００７６】
ユーザは、例えば、検査ウィンドウ設定ボックス３７内でマウスをクリックし、検査マクロプログラムの編集モードを起動して、検査マクロプログラムを作成し、作成した検査マクロプログラムを保存して、編集モードを終了する。
【００７７】
なお、検査マクロプログラムを入力する方法は、他の方法であっても良い。
【００７８】
次に、ステップＳ２８において、装置１０は、ユーザが作成した判定マクロプログラムを入力する。
【００７９】
ユーザは、例えば、検査ウィンドウ設定ボックス３７内でマウスをクリックし、判定マクロプログラムの編集モードを起動して、判定マクロプログラム１を作成し、作成した判定マクロプログラム１を保存して、編集モードを終了する。
【００８０】
同様にして、装置１０は、ユーザが作成した判定マクロプログラム２を入力する。
【００８１】
なお、判定マクロプログラムを入力する方法は、他の方法であっても良い。
【００８２】
次に、ステップＳ３０において、装置１０は、新規の検査プログラムとしてパッケージを生成する。
【００８３】
装置１０は、例えば、ユーザがボタン３８をマウスでクリックすることにより、「パッケージ２」という名称の新たな検査プログラムを生成する。新たな検査プログラムは、選択された検査カーネルプログラム２と、カメラＣが設定されたカメラ設定ファイルと、ソケット通信が設定された通信設定ファイルと、検査ウィンドウ設定ファイルと、計測マクロプログラム１〜３と、検査マクロプログラムと、判定マクロプログラム１，２とに基づいて、装置１０により生成される。
【００８４】
具体的には、装置１０は、例えば、「パッケージ２」という名称のフォルダを作成し、このフォルダ内に実行形式の検査カーネルプログラム２、テキスト形式のカメラ設定ファイル及通信設定ファイル及検査ウィンドウ設定ファイル及計測マクロプログラム１〜３及検査マクロプログラム及び判定マクロプログラム１，２をコピーする。
【００８５】
次に、ステップＳ３２において、装置１０は、生成したパッケージを、記憶部１２に記憶する。このように生成された検査プログラムのパッケージは、制御コンピュータ５１で実行される。
【００８６】
記憶部１２に新たに記憶されたパッケージは、次回から、パッケージのリストとして、パッケージ表示ボックス３３に表示される。図１０は、「パッケージ２」が、パッケージ表示ボックス３３においてパッケージ１と共に表示されている様子を示している。装置１０は、検査カーネルプログラム１及び検査カーネルプログラム２等を画面３０に表示する時に、パッケージ１及びパッケージ２をパッケージ表示ボックス３３に表示する。
【００８７】
ここで、新たな検査プログラムが生成される際にパッケージ２が選択された場合には、画面３０の検査ウィンドウ設定ボックス３７には、パッケージ２の検査ウィンドウ設定ファイルに設定された検査ウィンドウが表示される。ユーザが、検査ウィンドウ設定ボックス３７に表示された検査ウィンドウを変更することにより、新たな検査ウィンドウ設定ファイルが生成される。
【００８８】
また、検査ウィンドウ設定ファイルに関連づけられる計測マクロプログラムも、ユーザによって新たに作成される。ユーザは、パッケージ２の検査ウィンドウ設定ファイルに関連づけられていた計測マクロプログラムを利用して、新たな計測マクロプログラムを作成しても良い。
【００８９】
同様に、検査マクロプログラム及び判定プログラムがユーザによって新たに作成される。
【００９０】
このように、新たな検査プログラムを作成する際に、既存の検査プログラムを利用するならば、パッケージ２を利用することにより、検査ウィンドウ設定ファイル、計測マクロプログラム、検査マクロプログラム又は判定プログラムを作成する作業を低減することができる。
【００９１】
一方、新たな検査プログラムを作成する際に、既存の検査プログラムを利用しないならば、デフォルトのパッケージ１を利用して、検査プログラムを生成しても良い。
【００９２】
上述した本実施形態の装置１０によれば、ユーザが選択した実行形式の検査カーネルプログラムと、ユーザが入力した情報に基づいて生成された検査ウィンドウ設定ファイルと、ユーザが作成したインタプリタ形式の計測マクロプログラム及び検査マクロプログラム及び判定マクロプログラムに基づいて、プログラムが生成されるので、ユーザの所望する処理を実行できる検査プログラムが得られる。また、検査カーネルプログラムは、カメラを動作させるプログラムを呼び出すラッパ関数を有するので、同じプログラムを用いて異なるカメラにも対応することができる。
【００９３】
また、上述した本実施形態の装置１０によれば、検査プログラムの内、実行形式の検査カーネルプログラムは既存のプログラムを選択して用いるので、ユーザが新たに作成するプログラムは、計測マクロプログラム、検査マクロプログラム又は判定マクロプログラムである。従って、検査プログラムを作成する際のユーザの負担が大きく低減される。
【００９４】
なお、検査プログラムによっては、計測マクロプログラム、検査マクロプログラム及び判定マクロプログラムの全てを作成する必要はなく、必要なマクロプログラムを作成すれば良い。
【００９５】
また、上述した本実施形態の装置１０によれば、ユーザが作成する計測マクロプログラム、検査マクロプログラム及び判定マクロプログラムはインタプリタ形式なので、コンパイルが不要である。従って、装置１０は、コンパイルを必要とするプログラムの開発環境を必要としない。
【００９６】
本発明では、上述した実施形態のプログラム生成を支援する方法及びプログラム生成を支援する装置は、本発明の趣旨を逸脱しない限り適宜変更が可能である。
【００９７】
例えば、上述した実施形態では、ラッパ関数は、カメラを動作させるドライバを呼び出していたが、ラッパ関数は、プリンタ等の他のハードウェアを動作させるものであっても良い。
【００９８】
また、上述した実施形態では、ユーザが入力した情報に基づいてコンピュータが生成する設定ファイルであって、選択された検査カーネルプログラムが実行される際に使用される設定ファイルとしては、装置１０は検査ウィンドウ設定ファイルを有していた。しかし、装置１０は、ユーザが入力した情報に基づいてコンピュータが生成する他の設定ファイルを有していても良い。
【符号の説明】
【００９９】
１０    プログラム生成を支援する装置
１１    演算部
１２    記憶部
１３    表示部
１４    入力部
１５    出力部
１６    通信部
５０    検査装置
５１    制御コンピュータ
【図１】
0005733269.tif 000002
【図２】
0005733269.tif 000003
【図３】
0005733269.tif 000004
【図４】
0005733269.tif 000005
【図５】
0005733269.tif 000006
【図６】
0005733269.tif 000007
【図７】
0005733269.tif 000008
【図８】
0005733269.tif 000009
【図９】
0005733269.tif 000010
【図１０】
0005733269.tif 000011