(57)【要約】【課題】  フローチャートを作成する際に、処理ユニットの未結線や処理ユニット間の誤結線が生じるのを抑制することができるプログラム作成装置を提供する。【解決手段】  処理ユニット記憶部２０１内の処理ユニットをユニット一覧として表示するユニット一覧表示部２０２と、実行フロー上の処理ユニットによって構成されたフローチャート４７を表示するフローチャート表示部２０６と、ユニット一覧上で選択された処理ユニットを操作入力によって指示された実行フロー上の位置に挿入する処理ユニット挿入部２１１と、フローチャートに基づいて画像処理コントローラの制御プログラムを生成するプログラム生成部２０７と、制御プログラムを画像処理コントローラ１１へ転送する転送部２０８により構成される。処理ユニット挿入部２１１は、バイパスユニットをフローチャート４７内に挿入する場合に、分岐ユニット６２ａ及び合流ユニット６２ｂを対にして挿入する。【選択図】  図５
2009116381.tif 000002
【特許請求の範囲】
【請求項１】
被写体を撮影して得られるカメラ画像に基づいて判定信号を出力する画像処理コントローラの制御プログラムを作成するプログラム作成装置において、
パラメータが変更可能な画像処理を示す２以上の画像処理ユニット、並びに、実行フローを２つの枝フローに分岐させる分岐ユニット及びこの分岐ユニットによって分岐された枝フローを合流させる合流ユニットからなるバイパスユニットを処理ユニットとして保持する処理ユニット記憶手段と、
上記処理ユニット記憶手段に保持されている処理ユニットをユニット一覧として表示するユニット一覧表示手段と、
スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上の上記処理ユニットによって構成されたフローチャートを表示するフローチャート表示手段と、
上記ユニット一覧上で選択された処理ユニットを操作入力によって指示された上記フローチャート内の実行フロー上の位置に挿入し、フローチャートを書き換える処理ユニット挿入手段と、
上記フローチャートに基づいて、画像処理コントローラの制御プログラムを生成するプログラム生成手段と、
上記制御プログラムを画像処理コントローラへ転送する転送手段とを備え、
上記処理ユニット挿入手段が、上記バイパスユニットをフローチャート内に挿入する場合に、上記分岐ユニット及び上記合流ユニットを対にして挿入することを特徴とする画像処理コントローラ用のプログラム作成装置。
【請求項２】
操作入力に基づいて上記枝フローを追加し、同一のバイパスユニットを構成する分岐ユニット及び合流ユニット間の枝フローを増加させる枝フロー追加手段を備えたことを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項３】
上記処理ユニット記憶手段が、実行フローを繰り返す際の始点を示す繰返し開始ユニット及び終点を示す繰返し終了ユニットからなる繰返しユニットを処理ユニットとして保持し、
上記処理ユニット挿入手段が、上記繰返しユニットをフローチャート内に挿入する場合に、上記繰返し開始ユニット及び上記繰返し終了ユニットを対にして挿入することを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項４】
上記フローチャート上で選択された処理ユニットを実行フロー上で移動させ、フローチャートを書き換える処理ユニット移動手段を備え、
上記処理ユニット移動手段が、上記バイパスユニットを移動させる場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時に移動させることを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項５】
上記フローチャート上で選択された処理ユニットを操作入力によって指示された当該フローチャート内の実行フロー上の位置にコピーし、フローチャートを書き換える処理ユニットコピー手段を備え、
上記処理ユニットコピー手段が、上記バイパスユニットをコピーする場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時にコピーすることを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【請求項６】
処理ユニット間の実行フローを折り畳んで表示させるための折畳みアイコンを上記分岐ユニットに隣接させて上記フローチャート内に表示し、上記折畳みアイコンの操作に基づいて分岐ユニット及び合流ユニット間の実行フローを省略してフローチャートを表示させる実行フロー折畳み手段を備えたことを特徴とする請求項１に記載の画像処理コントローラ用のプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理コントローラ用のプログラム作成装置に係り、さらに詳しくは、被写体を撮影して得られるカメラ画像に基づいて判定信号を出力する画像処理コントローラの制御プログラムを作成するプログラム作成装置の改良に関する。
【背景技術】
【０００２】
検査対象物を撮影して得られるカメラ画像を画像処理し、検査対象物の形状、位置、カメラ画像に基づく判定結果を示す判定信号などを処理結果として出力する画像処理コントローラには、一連の処理手順を変更可能なものが知られている（例えば、特許文献１）。通常、一連の処理手順をこの様な画像処理コントローラに実行させるための制御プログラムは、パーソナルコンピュータなどの情報処理端末上で動作するエディタ（ソフトウェア）を用いて作成される。ユーザは、作成した制御プログラムを画像処理コントローラに転送することにより、検査対象物に対して所望の検査を行うことができる。
【０００３】
エディタを用いて画像処理コントローラの制御プログラムを作成する場合、まず、所定の画像処理を示す複数の処理ブロックを画面上で配列させることによってフローチャートが生成される。そして、このフローチャートを実行形式に変換させることによって制御プログラムが作成される。画面上で処理ブロックを配列させる際は、ユーザが処理ブロック間を結線することにより、所望の実行フローが形成される。この様な従来のプログラム作成装置では、ユーザが処理ブロック間を結線することによってフローチャートが作成されるので、結線し忘れたり、誤結線した場合に、正常に動作しない制御プログラムが作成されてしまうという問題があった。例えば、実行フローを複数の枝フローに分岐させる分岐ブロックを配置した際に、枝フローを他の処理ブロックに結線し忘れることが考えられる。或いは、実行フロー上の処理ブロックを誤って削除してしまい、実行フローが切れてしまうことが考えられる。
【特許文献１】特開平９−２８８５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述した通り、従来の画像処理コントローラ用のプログラム作成装置では、ユーザが処理ブロック間を結線することによってフローチャートが作成されるので、結線し忘れたり、誤結線した場合に、正常に動作しない制御プログラムが作成されてしまうという問題があった。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、画像処理コントローラの制御プログラムを作成する場合に、正常に動作しない制御プログラムが作成されるのを抑制することができる画像処理コントローラ用のプログラム作成装置を提供することを目的とする。特に、複数の処理ユニットを実行フロー上に配置することによってフローチャートを作成する際に、処理ユニットの未結線や処理ユニット間の誤結線が生じるのを抑制することができるプログラム作成装置を提供することを目的とする。
【０００６】
また、複数の処理ユニットを実行フロー上に配置することによって生成されたフローチャートを編集する際の操作性を向上させたプログラム作成装置を提供することを目的とする。特に、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャートを編集することができるプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
第１の本発明による画像処理コントローラ用のプログラム作成装置は、被写体を撮影して得られるカメラ画像に基づいて判定信号を出力する画像処理コントローラの制御プログラムを作成するプログラム作成装置であって、パラメータが変更可能な画像処理を示す２以上の画像処理ユニット、並びに、実行フローを２つの枝フローに分岐させる分岐ユニット及びこの分岐ユニットによって分岐された枝フローを合流させる合流ユニットからなるバイパスユニットを処理ユニットとして保持する処理ユニット記憶手段と、上記処理ユニット記憶手段に保持されている処理ユニットをユニット一覧として表示するユニット一覧表示手段と、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上の上記処理ユニットによって構成されたフローチャートを表示するフローチャート表示手段と、上記ユニット一覧上で選択された処理ユニットを操作入力によって指示された上記フローチャート内の実行フロー上の位置に挿入し、フローチャートを書き換える処理ユニット挿入手段と、上記フローチャートに基づいて、画像処理コントローラの制御プログラムを生成するプログラム生成手段と、上記制御プログラムを画像処理コントローラへ転送する転送手段とを備え、上記処理ユニット挿入手段が、上記バイパスユニットをフローチャート内に挿入する場合に、上記分岐ユニット及び上記合流ユニットを対にして挿入するように構成される。
【０００８】
このプログラム作成装置では、ユニット一覧上で選択された処理ユニットを操作入力によって指示されたフローチャート内の実行フロー上の位置に挿入することによって、フローチャートが書き換えられる。その際、バイパスユニットをフローチャート内に挿入する場合には、分岐ユニット及び合流ユニットが対にして挿入される。この様な構成によれば、バイパスユニットをフローチャート内に挿入する場合に、分岐ユニットと、分岐ユニットによって分岐された枝フローを合流させる合流ユニットとを対にして実行フロー上に挿入されるので、枝フローを他の処理ユニットに結線し忘れたり、誤結線するのを防止することができる。
【０００９】
第２の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、操作入力に基づいて上記枝フローを追加し、同一のバイパスユニットを構成する分岐ユニット及び合流ユニット間の枝フローを増加させる枝フロー追加手段を備えて構成される。この様な構成によれば、操作入力によって枝フローを追加することができるので、バイパスユニットの枝フローを必要に応じて増やすことができる。
【００１０】
第３の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、上記処理ユニット記憶手段が、実行フローを繰り返す際の始点を示す繰返し開始ユニット及び終点を示す繰返し終了ユニットからなる繰返しユニットを処理ユニットとして保持し、上記処理ユニット挿入手段が、上記繰返しユニットをフローチャート内に挿入する場合に、上記繰返し開始ユニット及び上記繰返し終了ユニットを対にして挿入するように構成される。この様な構成によれば、実行フローを繰り返させる繰返しユニットをフローチャート内に挿入する場合に、開始ユニット及び終了ユニットを対にして実行フロー上に挿入されるので、開始ユニットや終了ユニットを配置し忘れるのを防止することができる。
【００１１】
第４の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、上記フローチャート上で選択された処理ユニットを実行フロー上で移動させ、フローチャートを書き換える処理ユニット移動手段を備え、上記処理ユニット移動手段が、上記バイパスユニットを移動させる場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時に移動させるように構成される。この様な構成によれば、バイパスユニットを移動させる場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時に移動されるので、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャートを編集することができる。
【００１２】
第５の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、上記フローチャート上で選択された処理ユニットを操作入力によって指示された当該フローチャート内の実行フロー上の位置にコピーし、フローチャートを書き換える処理ユニットコピー手段を備え、上記処理ユニットコピー手段が、上記バイパスユニットをコピーする場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時にコピーするように構成される。この様な構成によれば、バイパスユニットをコピーする場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時にコピーされるので、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャートを編集することができる。
【００１３】
第６の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、処理ユニット間の実行フローを折り畳んで表示させるための折畳みアイコンを上記分岐ユニットに隣接させて上記フローチャート内に表示し、上記折畳みアイコンの操作に基づいて分岐ユニット及び合流ユニット間の実行フローを省略してフローチャートを表示させる実行フロー折畳み手段を備えて構成される。この様な構成によれば、折畳みアイコンを操作することによって分岐ユニット及び合流ユニット間の実行フローを省略してフローチャートが表示されるので、フローチャートを編集する際のフローチャートの見易さを向上させることができる。
【発明の効果】
【００１４】
本発明による画像処理コントローラ用のプログラム作成装置によれば、バイパスユニットをフローチャート内に挿入する場合に、分岐ユニットと、分岐ユニットによって分岐された枝フローを合流させる合流ユニットとを対にして実行フロー上に挿入されるので、枝フローを他の処理ユニットに結線し忘れたり、誤結線するのを防止することができる。従って、複数の処理ユニットを実行フロー上に配置することによってフローチャートを作成する際に、処理ユニットの未結線や処理ユニット間の誤結線が生じるのを抑制することができるので、画像処理コントローラの制御プログラムを作成する場合に、正常に動作しない制御プログラムが作成されるのを抑制することができる。
【００１５】
また、バイパスユニットを移動させる場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時に移動されるので、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャートを編集することができる。また、バイパスユニットをコピーする場合に、分岐ユニット及び合流ユニット間の他の処理ユニットも同時にコピーされるので、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャートを編集することができる。従って、複数の処理ユニットを実行フロー上に配置することによって生成されたフローチャートを編集する際の操作性を向上させることができる。
【発明を実施するための最良の形態】
【００１６】
<検査システム>
図１は、本発明の実施の形態によるプログラム作成装置を含む検査システムの一構成例を示した斜視図である。この検査システムは、検査対象物の搬送ライン上に配置される画像処理装置１と、この画像処理装置１の制御プログラムを生成するＰＣ（パーソナルコンピュータ）２とからなる。
【００１７】
画像処理装置１は、画像処理コントローラ１１、カメラ１２、ディスプレイ１３ａ及び操作ユニット１３ｂからなり、検査対象物から得られたカメラ画像に基づいて判定信号を出力するセンサー装置である。この判定信号は、図示しないＰＬＣ（Programmable Logic Controller：プログラマブルコントローラ）などへ入力され、画像処理装置１は、ＦＡ（Factory Automation）センサーとして使用される。
【００１８】
カメラ１２は、被写体を撮影して画像データを生成し、カメラ画像として出力する撮像装置であり、画像処理コントローラ１１に着脱可能に接続される。カメラ１２は、例えば、検査対象物が搬送される搬送ライン上に配置される。
【００１９】
ディスプレイ１３ａは、検査対象物を撮影して得られたカメラ画像やカメラ画像に基づく画像処理結果を表示するための出力装置である。操作ユニット１３ｂは、ディスプレイ１３ａ上でフォーカス位置を移動させたり、メニュー項目を選択するための入力装置である。
【００２０】
画像処理コントローラ１１は、カメラ１２からのカメラ画像を取り込んで処理し、カメラ画像に基づいて行った判定結果を示す判定信号を処理結果として出力する画像処理装置１の本体ユニットである。
【００２１】
この画像処理コントローラ１１には、最大で４台のカメラ１２が接続され、これらのカメラ１２から取得したカメラ画像に基づいて画像処理が行われる。画像処理コントローラ１１から出力される判定信号は、製品の良否などの判定結果を示す信号として生成される。
【００２２】
また、画像処理コントローラ１１には、ディスプレイ１３ａ及び操作ユニット１３ｂが接続されており、ＰＣ２を接続しなくても、操作ユニット１３ｂを入力装置とし、ディスプレイ１３ａを出力装置として動作させることができる。
【００２３】
ＰＣ２は、画像処理コントローラ１１の制御プログラムを作成するプログラム作成装置であり、ＰＣ２上で動作するエディタ（ソフトウェア）によって制御プログラムが生成される。画像処理コントローラ１１の制御プログラムを作成する際、ＰＣ２上でシミュレーションして動作確認することができる。
【００２４】
ＰＣ２と画像処理装置１の画像処理コントローラ１１とは、イーサネット（Ethernet：登録商標）などの通信ネットワークを介して接続される。ＰＣ２には、複数の画像処理コントローラ１１が着脱可能に接続される。ＰＣ２上で作成した制御プログラムを画像処理コントローラ１１に転送することにより、画像処理コントローラ１１内の制御プログラムを書き換えることができる。また、画像処理コントローラ１１内の制御プログラムを取り込んでＰＣ２上で編集することもできる。
【００２５】
<システム構成>
図２は、図１の検査システムのシステム構成の一例を示したブロック図である。この検査システム１００は、１台のＰＣ２と、通信ネットワーク３を介してＰＣ２に接続された複数の画像処理装置１により構成される。ＰＣ２上で作成された制御プログラムは、検査設定データ２２としてメモリ２１内に格納される。
【００２６】
ＰＣ２上で作成された検査設定データ２２は、通信ネットワーク３を介して画像処理コントローラ１１に転送される。このとき、転送先を指定して検査設定データ２２を転送することにより、所望の画像処理コントローラ１１について、メモリ１４内の検査設定データ１５を更新し、或いは、メモリ１４内に新たな検査設定データを追加することができる。
【００２７】
この画像処理コントローラ１１では、フラッシュメモリなどのメモリ１４内に複数の検査設定データ１５が保持されている。各検査設定データ１５は、処理手順や検査内容が異なる制御プログラムであり、ユーザ操作に基づいて実行対象とする実行対象とする検査設定データ１５を変更することができる。
【００２８】
ＰＣ２では、通信ネットワーク３によって接続されている画像処理コントローラ１１から検査設定データ１５を取得して編集する動作が行われる。
【００２９】
<エディタ画面>
図３は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、検査設定データ２２を作成するためのエディタ画面４０が示されている。エディタ画面４０は、ＰＣ２上で検査設定データを新たに作成し、或いは、画像処理コントローラ１１から取得した検査設定データを編集するための編集画面であり、ＰＣ２上に表示される。
【００３０】
このエディタ画面４０は、それぞれ表示位置や表示範囲が変更可能な複数のウィンドウ画面からなる。具体的には、システムビューウィンドウ４１、パーツリストウィンドウ４２、ユニットプロパティウィンドウ４３、ビジョンビューウィンドウ４４及びリザルトビューウィンドウ４５からなる。
【００３１】
システムビューウィンドウ４１は、システム構成や編集対象とする検査設定データを一覧表示するためのウィンドウ画面であり、コントローラ一覧画面４１ａ及びワークスペース一覧画面４１ｂからなる。
【００３２】
コントローラ一覧画面４１ａは、ＰＣ２に接続されている画像処理コントローラ１１を一覧表示するための画面であり、画像処理コントローラ１１を示すアイコンや、画像処理コントローラ１１内に保持されている検査設定データ１５を示すアイコンが表示されている。
【００３３】
画像処理コントローラ１１や検査設定データ１５を示す各アイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ１１を上階層とし、この画像処理コントローラ１１内に保持されている検査設定データ１５を下階層として、検査設定データ１５がどの画像処理コントローラ１１に保持されているのかが識別可能なように表示されている。
【００３４】
ワークスペース一覧画面４１ｂは、編集対象とする検査設定データを一覧表示するための画面であり、画像処理コントローラ１１ごとに設けられるメモリ２１上の作業領域を示すアイコンや、検査設定データを示すアイコンが表示されている。画像処理コントローラ１１ごとに設けられるメモリ２１上の作業領域は、該当する画像処理コントローラ１１に関連付けられており、ワークスペースとして表示されている。つまり、ＰＣ２上には、検査設定データが画像処理コントローラ１１ごとに保持され、画像処理コントローラ１１ごとのワークスペースにおいて編集が行われる。
【００３５】
この様な作業領域を示すアイコンや検査設定データを示すアイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ１１に対応するワークスペースを上階層とし、このワークスペース内の検査設定データを下階層として、検査設定データがどのワークスペースに存在するのかが識別可能なように表示されている。
【００３６】
コントローラ一覧画面４１ａの見出し欄に配置されている更新ボタン（アイコン）を操作すれば、画像処理コントローラ１１から新たに検査設定データが取得され、ＰＣ２上に保持されている検査設定データやシステム構成が最新のものに更新される。また、登録ボタンを操作すれば、ＰＣ２上で作成された検査設定データが画像処理コントローラ１１に転送される。
【００３７】
ワークスペース一覧画面４１ｂの見出し欄に配置されている更新ボタン（アイコン）を操作すれば、画像処理コントローラ１１から取得された検査設定データによって、編集対象とする検査設定データが更新される。また、追加ボタンを操作すれば、新たな作業領域が設けられ、検査設定データを示すアイコンが追加される。
【００３８】
パーツリストウィンドウ４２は、検査設定データを作成する際に選択可能な処理ユニットをユニット一覧として表示するためのウィンドウ画面である。処理ユニットは、パラメータが変更可能な処理を示すシンボルであり、画像処理を示す画像処理ユニット、撮像処理を示す撮像ユニット、フロー制御処理を示す制御ユニット、及び、出力処理を示す出力ユニットがある。この様な処理ユニットを後述するフロービューウィンドウ内のフローチャート上に配置することによって、所望のフローシーケンスからなる検査設定データが作成される。
【００３９】
パーツリストウィンドウ４２内には、複数の処理ユニットが表示される。この例では、処理の種類によって処理ユニットが８つのカテゴリーに区分され、各カテゴリーを示すアイコンが表示されている。具体的には、「画像入力」、「計測」、「制御」、「演算」、「タイミング」、「表示」、「出力」及び「コマンド出力」のカテゴリーに区分されている。
【００４０】
「画像入力」は、撮像に関する処理ユニットが属するカテゴリーであり、カメラ画像を取り込む撮像ユニットが属している。撮像ユニットには、シャッタースピード、カメラ感度、フラッシュ遅延時間、フラッシュオン時間、撮像対象カメラ、フラッシュ端子及びトリガ端子を指定するためのパラメータがプロパティとして関連付けられている。
【００４１】
「計測」は、計測に関する処理ユニットが属するカテゴリーであり、パターンサーチユニット、エッジ位置検出ユニット、ブロブ検出ユニット、色検査ユニットなどの画像処理ユニットが属している。
【００４２】
パターンサーチは、カメラ画像上のサーチ領域内を走査して予め登録されたパターン画像と一致する位置を検出する処理である。エッジ位置検出は、カメラ画像上の計測領域について、検出方向に垂直な方向の平均濃度を求め、検出方向の濃度変化からエッジの位置を検出する処理である。
【００４３】
ブロブ検出は、カメラ画像を２値化し、同一濃度を有する画素の塊をブロブとして抽出して、計測領域内に存在するブロブの数、面積、重心位置を検出する処理である。色検査は、検査領域内の色を測定する処理であり、色に対応する数値が計測結果として抽出される。
【００４４】
「制御」は、制御に関する処理ユニットが属するカテゴリーであり、繰返しユニット、バイパスユニット、エンドシンボルなどの制御ユニットが属している。繰返しユニットは、実行フローを繰り返す際の始点を示す繰返し開始ユニットと、終点を示す繰返し終了ユニットとからなる処理ユニットであり、所定の条件が満たされるまで開始ユニット及び終了ユニット間の実行フローを繰り返させる処理を示す。
【００４５】
バイパスユニットは、実行フローを２つの枝フローに分岐させる分岐ユニットと、この分岐ユニットによって分岐された枝フローを合流させる合流ユニットとからなる処理ユニットであり、所定の条件で実行フローを分岐させる処理を示す。エンドシンボルは、１回のフローシーケンスを終了させるための表示オブジェクトである。
【００４６】
「演算」は、演算に関する処理ユニットが属するカテゴリーであり、数値演算ユニットなどの画像処理ユニットが属している。「タイミング」は、フロー遷移の停止動作に関する処理ユニットが属するカテゴリーであり、ウェイトユニット、イベント待ちユニットなどの制御ユニットが属している。ウェイトユニットは、所定時間だけフロー遷移を停止させる処理を示す。イベント待ちユニットは、端子入力や変数値が所定の状態となるまでフロー遷移を停止させる処理を示す。
【００４７】
「表示」は、表示に関する処理ユニットが属するカテゴリーであり、グラフィック表示ユニットなどの画像処理ユニットが属している。グラフィック表示ユニットは、変数を参照してグラフィックを描画する処理を示す。
【００４８】
「出力」は、出力に関する処理ユニットが属するカテゴリーであり、端子出力ユニット、結果出力ユニット、画像出力ユニットなどの出力ユニットが属している。端子出力ユニットには、参照先ユニット、判定結果及び判定結果の出力先端子を指定するためのパラメータがプロパティとして関連付けられている。結果出力ユニットには、参照先ユニット、処理結果を示す数値データ、数値データを出力する際のデータ形式（テキスト形式又はバイナリ形式）、及び、数値データの出力先を指定するためのパラメータがプロパティとして関連付けられている。画像出力ユニットには、参照先ユニット、カメラ画像、画像データを出力する際のデータ形式、及び、画像データの出力先を指定するためのパラメータがプロパティとして関連付けられている。
【００４９】
「コマンド出力」は、コマンド出力に関する処理ユニットが属するカテゴリーであり、コマンド発行ユニットなどの出力ユニットが属している。
【００５０】
ユニットプロパティウィンドウ４３は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットのプロパティを表示するためのウィンドウ画面である。
【００５１】
ビジョンビューウィンドウ４４は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットに関連付けられているカメラ画像を表示するためのウィンドウ画面である。
【００５２】
リザルトビューウィンドウ４５は、コントローラ一覧画面４１ａ、ワークスペース一覧画面４１ｂ又はフロービューウィンドウ上で選択された処理ユニットのパラメータと、シミュレーション結果とを表示するためのウィンドウ画面である。
【００５３】
このエディタ画面４０では、システムビューウィンドウ４１の下部に配置されているフロービューボタン４１ｃを操作すれば、上述したシステムビューウィンドウ４１に代えて、フロービューウィンドウを表示させることができる。フロービューウィンドウは、画像処理コントローラ１１に実行させる処理手順をフローチャートとして表示するウィンドウ画面であり、ワークスペース一覧画面４１ｂ上で選択された検査設定データが表示される。
【００５４】
また、リザルトビューウィンドウ４５の下部に配置されている抽出一覧ボタン４５ａを操作すれば、リザルトビューウィンドウ４５に代えて、抽出一覧ウィンドウを表示させることができる。抽出一覧ウィンドウは、リザルトビューウィンドウ４５上で選択されたパラメータ及び処理結果を抽出して処理ユニットごとの抽出結果を一覧表示するためのウィンドウ画面である。
【００５５】
<フロービューウィンドウ>
図４は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６が表示されたエディタ画面４０が示されている。フロービューウィンドウ４６は、検査設定データを新たに作成し、或いは、画像処理コントローラ１１から取得した検査設定データを編集するために、処理手順を示すフローチャート４７を表示するウィンドウ画面である。
【００５６】
フロービューウィンドウ４６には、複数の処理ユニット４８を配列することによって構成されたフローチャート４７が表示されている。フローチャート４７には、スタートシンボル「Ｓ」において開始し、エンドシンボル「Ｅ」において終了する実行フロー上で時系列に実行される処理ユニットが表されている。ユーザは、この様な実行フロー上に処理ユニット４８を配置することによって所望の検査設定データを構成することができる。
【００５７】
フロービューウィンドウ４６の下部に配置されているシステムビューボタン４６ａを操作すれば、このフロービューウィンドウ４６に代えて、システムビューウィンドウ４１を表示させることができる。
【００５８】
フロービューウィンドウ４６上で選択されている処理ユニットは、フォーカス表示され、ユニットプロパティウィンドウ４３内にそのプロパティが表示される。ユニットプロパティウィンドウ４３内には、編集ボタン４３ａが配置され、編集ボタン４３ａを操作すれば、処理ユニットのプロパティを編集するための編集ダイアログが表示される。プロパティの編集ダイアログは、ユーザ操作に基づいて処理ユニットのパラメータを指定し、或いは、既に指定されているパラメータを変更するためのダイアログ画面である。
【００５９】
<フローチャート>
図５は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６内のフローチャート４７の一例が示されている。このフローチャート４７は、スタートシンボル６１ａで開始し、エンドシンボル６１ｂで終了する実行フロー上に複数の処理ユニットが配置されている。
【００６０】
フロービューウィンドウ４６上でフローチャート４７を作成編集する場合、パーツリストウィンドウ４２を用いて作業が行われる。例えば、フローチャート４７内に処理ユニットを挿入する際には、パーツリストウィンドウ４２上で所望の処理ユニットを選択し、マウスポインタなどで実行フロー上の位置を指定することによって挿入される。
【００６１】
この例では、フローチャート４７が、分岐ユニット６２ａ、撮像ユニット、色検査ユニット、数値演算ユニット、合流ユニット６２ｂ、ブロブ検出ユニット、繰返し開始ユニット６５ａ、エッジ位置検出ユニット、パターンサーチユニット、繰返し終了ユニット６５ｂ及びグラフィック表示ユニットをこの順序で実行フロー上に配置することによって構成されている。
【００６２】
分岐ユニット６２ａ及び合流ユニット６２ｂは、バイパスユニットを構成する制御ユニットであり、実行フロー上にバイパスユニットを挿入する際には、常に分岐ユニット６２ａ及び合流ユニット６２ｂを対にして挿入される。
【００６３】
この例では、スタートシンボル６１ａからの実行フローが分岐ユニット６２ａにより２つの枝フロー６３に分岐され、この分岐ユニット６２ａで分岐された枝フローが合流ユニット６２ｂにおいて合流されている。その際、一方の枝フロー６３は、撮像ユニット、色検査ユニット及び数値演算ユニットを経て合流ユニット６２ｂに達しているのに対して、他方の枝フロー６３は、撮像ユニットを経て合流ユニット６２ｂに達するバイパス経路（迂回路）となっている。
【００６４】
繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂは、繰返しユニットを構成する制御ユニットであり、実行フロー上に繰返しユニットを挿入する際にも、繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂを対にして挿入される。
【００６５】
この例では、繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂ間にエッジ位置検出ユニット及びパターンサーチユニットが配置されており、実行時にはエッジ位置検出ユニット及びパターンサーチユニットの処理が繰り返される。
【００６６】
フローチャート４７内の分岐ユニット６２ａ及び繰返し開始ユニット６５ａには、折畳みアイコン６４ａが配置されている。この折畳みアイコン６４ａは、制御ユニット間の実行フローを折り畳ませるためのアイコンであり、処理ユニットに隣接させて表示される。例えば、分岐ユニット６２ａに隣接表示されている折畳みアイコン６４ａをマウスポインタなどで操作すれば、分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを省略してフローチャート４７を表示させることができる。
【００６７】
また、フローチャート４７上で選択されている処理ユニットは、フォーカス表示６７され、ユニットプロパティウィンドウ４３内に当該処理ユニットのプロパティを表示させ、或いは、編集対象として当該処理ユニットのプロパティを変更することができる。
【００６８】
<バイパスユニットの挿入>
図６は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、図５のフローチャート４７内にバイパスユニットを挿入した場合が示されている。フローチャート４７内の実行フロー上にバイパスユニットを挿入する場合、分岐ユニット６２ａと合流ユニット６２ｂとを対にして挿入される。すなわち、１回の挿入操作によって、分岐ユニット６２ａ及び合流ユニット６２ｂが同時に配置され、枝フローが自動的に生成される。
【００６９】
この例では、繰返し終了ユニットとグラフィック表示ユニットとの間にバイパスユニットが挿入され、分岐ユニット６２ａによって分岐された２つの枝フロー６３が形成されている。
【００７０】
この様に、バイパスユニットをフローチャート４７内に挿入する場合、分岐ユニットや合流ユニットを単独では挿入することはできず、必ず分岐ユニットと合流ユニットとが同時に挿入される。なお、繰返しユニットをフローチャート４７内に挿入する場合も、バイパスユニットを挿入する場合と同様にして行われ、必ず繰返し開始ユニット６５ａと繰返し終了ユニット６５ｂとが同時に挿入される。
【００７１】
<バイパスユニットの移動>
図７及び図８は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、図５のフローチャート４７内のバイパスユニットを移動させる場合が示されている。図７には、移動対象６８として選択された複数の処理ユニットが示されている。バイパスユニットを構成する分岐ユニット６２ａ又は合流ユニット６２ｂのいずれかを選択すると、分岐ユニット６２ａ及び合流ユニット６２ｂ間の他の処理ユニットも同時に選択される。
【００７２】
具体的には、分岐ユニット６２ａ又は合流ユニット６２ｂのいずれかを移動対象として選択すれば、これらの処理ユニットと、これらの処理ユニット間に配置されている他の処理ユニット、すなわち、一方の枝フロー上の撮像ユニット、色検査ユニット及び数値演算ユニット、並びに、他方の枝フロー上の撮像ユニットとが移動対象６８として同時に選択される。
【００７３】
図８には、図７の移動対象６８として選択された処理ユニットを実行フロー上で移動させた場合が示されている。この例では、移動対象６８として選択された処理ユニットが、エッジ位置検出ユニットとパターンサーチユニットとの間の実行フロー上に移動されている。
【００７４】
移動対象として選択された処理ユニットの移動は、まず、実行フロー上から移動対象の処理ユニットを切り取り、そして、切り取った処理ユニットをマウスポインタなどによって指示された実行フロー上の位置に挿入することにより行われる。
【００７５】
この様に、バイパスユニットをフローチャート４７内で移動させる場合、分岐ユニット６２ａ及び合流ユニット６２ｂ間に配置されている他の処理ユニットも移動対象として同時に選択され、これらの処理ユニットが一体的に移動される。
【００７６】
なお、バイパスユニットを実行フロー上の他の位置にコピーする場合も、移動の場合と同様にして行われる。また、バイパスユニットをフローチャート４７内から削除する場合、分岐ユニット６２ａや合流ユニット６２ｂを単独では削除することはできず、常に分岐ユニット６２ａと合流ユニット６２ｂとが同時に削除される。その際、分岐ユニット６２ａ及び合流ユニット６２ｂ間に他の処理ユニットが存在すれば、これらの処理ユニットも同時に削除される。
【００７７】
<枝フローの追加>
図９は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フローチャート４７内におけるバイパスユニットの枝フローを増加させた場合が示されている。同一のバイパスユニットを構成する分岐ユニット６２ａと合流ユニット６２ｂとの間の枝フローは、必要に応じて増やすことができる。
【００７８】
分岐ユニット６２ａ及び合流ユニット６２ｂ間の枝フローは、例えば、フローチャート４７上で分岐ユニット６２ａを操作することによって追加される。この例では、分岐ユニット６２ａから色検査ユニットへの枝フローと、パターンサーチユニットへの枝フローとは別個の新たな枝フロー６９が形成されている。
【００７９】
この様に、分岐ユニット６２ａは、実行フローを３以上の枝フローに分岐させることもできる。同一の分岐ユニット６２ａによって分岐された全ての枝フローは、当該分岐ユニットと同一のバイパスユニットを構成する合流ユニット６２ｂによって合流される。
【００８０】
図１０は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フローチャート４７内における枝フロー中にエンドシンボル６１ｂを挿入させた場合が示されている。分岐ユニット６２ａによって分岐された枝フロー中に、エンドシンボル６１ｂを挿入した場合、当該エンドシンボル６１ｂよりも下流側の枝フローが実線表示から破線表示７０に変更される。
【００８１】
この例では、分岐ユニット６２ａからエッジ位置検出ユニットを経て合流ユニット６２ｂに達する枝フロー中におけるエッジ位置検出ユニットと合流ユニット６２ｂとの間に、エンドシンボル６１ｂが挿入されている。この様に、エンドシンボル６１ｂ以降の枝フローを破線表示７０することによって、フローシーケンスが切断されていることを視覚的に認識することができる。
【００８２】
<実行フローの折畳み表示>
図１１は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、図５のフローチャート４７内の折畳みアイコン６４ａを操作して分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを折り畳ませた場合が示されている。分岐ユニット６２ａに隣接表示されている折畳みアイコン６４ａを操作すると、分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを省略してフローチャート４７が表示される。
【００８３】
この例では、分岐ユニット６２ａよりも下流側の撮像ユニットから合流ユニット６２ｂまでの処理ユニットが非表示とされ、その間の実行フローが省略されている。すなわち、分岐ユニット６２ａの次にブロブ検出ユニットが表示されている。
【００８４】
この様に、折り畳ませた分岐ユニット６２ａには、展開アイコン６４ｂが配置されている。この展開アイコン６４ｂは、制御ユニット間の実行フローを展開させるためのアイコンであり、処理ユニットに隣接させて表示される。分岐ユニット６２ａに隣接表示されている展開アイコン６４ｂをマウスポインタなどで操作すれば、処理ユニットの非表示が解除され、分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを省略せずに表示させることができる。
【００８５】
<実行フローのグループ化>
図１２は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フローチャート４７内の実行フローをグループ化した場合が示されている。フローチャート４７内の実行フローは、編集対象として一体的に扱うために、必要に応じてグループ化することができる。このグループ化は、実行フロー上で範囲を指定することによって行われ、連続する複数の処理ユニットを同一のグループに属するものとして表示させることができる。
【００８６】
同一グループに属している複数の処理ユニットは、実行フロー上で一体的に移動させ、コピーし、或いは、削除することができる。
【００８７】
この例では、エッジ位置検出ユニット、パターンサーチユニット及び色検出ユニットを含む範囲が指定され、これらの処理ユニットがグループ化されている。先頭の処理ユニット、すなわち、エッジ位置検出ユニットには、グループの識別情報を表示するためのグループ化シンボル７１が当該処理ユニットに隣接して配置されている。また、グループ化シンボル７１から末尾の処理ユニット、すなわち、色検査ユニットにかけて同一グループを示す引き出し線７３が表示されている。
【００８８】
また、グループ化シンボル７１には、グループ内の実行フローを折り畳ませるための折畳みアイコン７２ａが隣接表示されている。この折畳みアイコン７２ａをマウスポインタなどで操作すれば、同一グループに属している処理ユニットを非表示とし、グループ内の実行フローを省略してフローチャート４７を表示させることができる。
【００８９】
また、グループ内の処理ユニットには、アクセントカラーの表示領域７４が設けられ、表示領域７４の色によって同一グループに属する処理ユニットを視覚的に識別することができる。
【００９０】
図１３は、図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、実行フローを重複させてグループ化した場合が示されている。実行フローの一部を重複させてグループ化する場合、重複させる数が増えると、引き出し線７３の数が増大して識別しづらくなることが考えられる。
【００９１】
本実施の形態では、グループ化の際に重複させる数が所定数を越えると、複数のグループ化シンボル７１について引き出し線７３の共通化が行われる。例えば、エッジ位置検出ユニット、パターンサーチユニット及び色検出ユニットを含む同一の範囲を指定して、６つのグループが形成された場合、第１のグループから第５のグループまでは、別個の引き出し線７３が形成されているのに対して、第６のグループは、第５のグループと引き出し線７３が共通化されている。
【００９２】
<エディタの機能構成>
図１４は、図２の検査システム１００におけるＰＣ２の構成例を示したブロック図であり、画像処理コントローラ１１の制御プログラムを作成するエディタの機能構成の一例が示されている。このＰＣ２は、処理ユニット記憶部２０１、ユニット一覧表示部２０２、操作入力部２０３、フローチャート編集部２０４、フローチャート記憶部２０５、フローチャート表示部２０６、プログラム生成部２０７、メモリ２１、転送部２０８及び実行フロー折畳み部２０９により構成される。
【００９３】
ユニット一覧表示部２０２は、処理ユニット記憶部２０１に保持されている処理ユニットをユニット一覧としてパーツリストウィンドウ４２内に表示する動作を行っている。操作入力部２０３は、ユーザ操作に基づいて入力信号を生成し、フローチャート編集部２０４へ出力する動作を行っている。
【００９４】
フローチャート表示部２０６は、フローチャート記憶部２０５に保持されているフローチャートをフロービューウィンドウ４６内に表示する動作を行っている。
【００９５】
プログラム生成部２０７は、フローチャート記憶部２０５に保持されているフローチャートを実行形式に変換することにより、画像処理コントローラ１１の制御プログラム、すなわち、検査設定データを生成する動作を行っている。メモリ２１には、プログラム生成部２０７により生成された検査設定データや画像処理コントローラ１１から取得した検査設定データが保持される。転送部２０８は、メモリ２１内の検査設定データ２２を画像処理コントローラ１１へ転送する動作を行っている。
【００９６】
フローチャート編集部２０４は、処理ユニット挿入部２１１、枝フロー追加部２１２、処理ユニット移動部２１３及び処理ユニットコピー部２１４からなり、フローチャート記憶部２０５に保持されているフローチャートをユーザ操作に基づいて編集する動作を行っている。
【００９７】
処理ユニット挿入部２１１は、ユニット一覧上で選択された処理ユニットをユーザが指示したフローチャート４７内の実行フロー上の位置に挿入し、フローチャート記憶部２０５内のフローチャートを書き換える動作を行っている。この処理ユニット挿入部２１１では、バイパスユニットをフローチャート４７内に挿入する場合に、分岐ユニット６２ａ及び合流ユニット６２ｂを対にして挿入させる。また、繰返しユニットをフローチャート４７内に挿入する場合には、繰返し開始ユニット６５ａ及び繰返し終了ユニット６５ｂを対にして挿入させる。
【００９８】
枝フロー追加部２１２は、ユーザ操作に基づいて枝フロー６３を追加し、同一のバイパスユニットを構成する分岐ユニット６２ａ及び合流ユニット６２ｂ間の枝フロー６３を増加させる動作を行っている。
【００９９】
処理ユニット移動部２１３は、フローチャート４７上で選択された処理ユニットを実行フロー上で移動させ、フローチャート記憶部２０５内のフローチャートを書き換える動作を行っている。この処理ユニット移動部２１３では、バイパスユニットを移動させる場合に、分岐ユニット６２ａ及び合流ユニット６２ｂ間の他の処理ユニットも同時に移動させる。
【０１００】
処理ユニットコピー部２１４は、フローチャート４７上で選択された処理ユニットをユーザが指示した当該フローチャート４７内の実行フロー上の位置にコピーし、フローチャート記憶部２０５内のフローチャートを書き換える動作を行っている。この処理ユニットコピー部２１４では、バイパスユニットをコピーする場合に、分岐ユニット６２ａ及び合流ユニット６２ｂ間の他の処理ユニットも同時にコピーさせる。
【０１０１】
実行フロー折畳み部２０９は、処理ユニット間の実行フローを折り畳んで表示させるための折畳みアイコン６４ａを分岐ユニット６２ａに隣接させてフローチャート４７内に表示し、折畳みアイコン６４ａの操作に基づいて分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを省略してフローチャート４７を表示させる動作を行っている。
【０１０２】
本実施の形態によれば、バイパスユニットをフローチャート４７内に挿入する場合に、分岐ユニット６２ａと、分岐ユニット６２ａによって分岐された枝フロー６３を合流させる合流ユニット６２ｂとを対にして実行フロー上に挿入されるので、枝フローを他の処理ユニットに結線し忘れたり、誤結線するのを防止することができる。
【０１０３】
また、バイパスユニットを移動させる場合に、分岐ユニット６２ａ及び合流ユニット６２ｂ間の他の処理ユニットも同時に移動されるので、処理ユニットの未結線や処理ユニット間の誤結線を生じさせることなく、フローチャート４７を編集することができる。折畳みアイコン６４ａを操作することによって分岐ユニット６２ａ及び合流ユニット６２ｂ間の実行フローを省略してフローチャート４７が表示されるので、フローチャート４７を編集する際のフローチャートの見易さを向上させることができる。
【図面の簡単な説明】
【０１０４】
【図１】本発明の実施の形態によるプログラム作成装置を含む検査システムの一構成例を示した斜視図である。
【図２】図１の検査システムのシステム構成の一例を示したブロック図である。
【図３】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、検査設定データ２２を作成するためのエディタ画面４０が示されている。
【図４】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６が表示されたエディタ画面４０が示されている。
【図５】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フロービューウィンドウ４６内のフローチャート４７の一例が示されている。
【図６】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、図５のフローチャート４７内にバイパスユニットを挿入した場合が示されている。
【図７】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、移動対象６８として選択された複数の処理ユニットが示されている。
【図８】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、移動対象６８の処理ユニットを実行フロー上で移動させた場合が示されている。
【図９】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、バイパスユニットの枝フローを増加させた場合が示されている。
【図１０】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、枝フロー中にエンドシンボル６１ｂを挿入させた場合が示されている。
【図１１】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、実行フローを折り畳ませた場合が示されている。
【図１２】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、フローチャート４７内の実行フローをグループ化した場合が示されている。
【図１３】図２の検査システム１００におけるＰＣ２の動作の一例を示した図であり、実行フローを重複させてグループ化した場合が示されている。
【図１４】図２の検査システム１００におけるＰＣ２の構成例を示したブロック図であり、エディタの機能構成の一例が示されている。
【符号の説明】
【０１０５】
１  画像処理装置
２  ＰＣ
３  通信ネットワーク
１１  画像処理コントローラ
１２  カメラ
１３ａ  ディスプレイ
１３ｂ  操作ユニット
１４，２１  メモリ
１５，２２  検査設定データ
４０  エディタ画面
４７  フローチャート
４８  処理ユニット
１００  検査システム
２０１  処理ユニット記憶部
２０２  ユニット一覧表示部
２０３  操作入力部
２０４  フローチャート編集部
２０５  フローチャート記憶部
２０６  フローチャート表示部
２０７  プログラム生成部
２０８  転送部
２０９  実行フロー折畳み部
【図１】
2009116381.tif 000003
【図２】
2009116381.tif 000004
【図９】
2009116381.tif 000005
【図１０】
2009116381.tif 000006
【図１１】
2009116381.tif 000007
【図１２】
2009116381.tif 000008
【図１３】
2009116381.tif 000009
【図１４】
2009116381.tif 000010
【図３】
2009116381.tif 000011
【図４】
2009116381.tif 000012
【図５】
2009116381.tif 000013
【図６】
2009116381.tif 000014
【図７】
2009116381.tif 000015
【図８】
2009116381.tif 000016