説明

画像処理コントローラ用のプログラム作成装置

【課題】 作成した制御プログラムを動作確認する際の操作性を向上させた画像処理コントローラ用のプログラム作成装置を提供する。
【解決手段】 画像処理コントローラ11の制御プログラムとして、撮像トリガ信号に基づいてカメラ12からカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムを生成するプログラム生成部25と、制御プログラムを実行するシミュレーション手段と、制御プログラムを画像処理コントローラ11へ転送する通信部26により構成される。シミュレーション手段は、登録画像として予め保持されているカメラ画像から計測結果を抽出するオフラインシミュレーション部31と、制御プログラムの実行時に画像処理コントローラ11を介してカメラ12からカメラ画像を取得し、取得したカメラ画像から計測結果を抽出するオンラインシミュレーション部32とからなる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理コントローラ用のプログラム作成装置に係り、さらに詳しくは、検査対象物を撮影して得られるカメラ画像に基づいて判定信号を出力する画像処理コントローラの制御プログラムを作成するプログラム作成装置の改良に関する。
【背景技術】
【0002】
検査対象物を撮影して得られるカメラ画像を画像処理し、検査対象物の形状、位置、カメラ画像に基づく判定結果を示す判定信号などを処理結果として出力する画像処理コントローラには、一連の処理手順を変更可能なものが知られている(例えば、特許文献1)。通常、一連の処理手順をこの様な画像処理コントローラに実行させるための制御プログラムは、PC(パーソナルコンピュータ)などの情報処理端末上で動作するエディタ(ソフトウェア)を用いて作成される。ユーザは、作成した制御プログラムを画像処理コントローラに転送することにより、検査対象物に対して所望の検査を行うことができる。
【0003】
上述した様な従来のプログラム作成装置では、撮像条件や計測条件を示すパラメータを変更した場合に、パラメータの変更後の制御プログラムが所望の動作をするか否かを確かめるには、作成した制御プログラムを画像処理コントローラへ転送して画像処理コントローラ上で実行させる必要があった。このため、制御プログラムを動作確認しようとするごとに、制御プログラムを転送して画像処理コントローラ上で実行させなければならず、操作性が良くないという問題があった。
【0004】
一般に、PC上で動作するシミュレータと呼ばれるソフトウェアを用いれば、制御プログラムの動作確認をPC上で行うことができる。しかしながら、この様なシミュレータでは、登録画像として予め保持されているカメラ画像を使用して画像処理のシミュレーションが行われる。このため、制御プログラムの実行時にカメラからカメラ画像を取り込んで動作確認を行うというような運用はできず、パラメータの高精度な設定ができないという問題があった。
【特許文献1】特開平9−288568号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上述した通り、従来の画像処理コントローラ用のプログラム作成装置では、作成した制御プログラムを動作確認しようとするごとに、制御プログラムを転送して画像処理コントローラ上で実行させなければならず、操作性が良くないという問題があった。また、登録画像として予め保持されているカメラ画像を使用して画像処理のシミュレーションが行われるので、パラメータの高精度な設定ができないという問題があった。
【0006】
本発明は、上記の事情に鑑みてなされたものであり、作成した制御プログラムを動作確認する際の操作性を向上させた画像処理コントローラ用のプログラム作成装置を提供することを目的とする。特に、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができるプログラム作成装置を提供することを目的とする。また、制御プログラムの実行時にカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
第1の本発明による画像処理コントローラ用のプログラム作成装置は、検査対象物を撮影してカメラ画像を生成するカメラと、上記カメラからカメラ画像を取得して当該カメラ画像から計測結果を抽出し、この計測結果に基づいて上記検査対象物の良否を判定して判定信号を出力する画像処理コントローラとからなる画像処理装置に用いられる上記画像処理コントローラの制御プログラムを作成するプログラム作成装置であって、上記画像処理コントローラの制御プログラムとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムを生成するプログラム生成手段と、上記制御プログラムを実行するシミュレーション手段と、上記制御プログラムを上記画像処理コントローラへ転送する転送手段とを備え、上記シミュレーション手段は、登録画像として予め保持されているカメラ画像から上記計測結果を抽出するオフラインシミュレーション手段と、上記制御プログラムの実行時に上記画像処理コントローラを介して上記カメラからカメラ画像を取得し、取得したカメラ画像から上記計測結果を抽出するオンラインシミュレーション手段とからなるように構成される。
【0008】
このプログラム作成装置では、制御プログラムを実行するシミュレーション手段が、登録画像として予め保持されているカメラ画像を用いるオフラインシミュレーション手段と、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うオンラインシミュレーション手段とからなる。この様な構成によれば、プログラム作成装置上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することもできる。
【0009】
第2の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得された一連のカメラ画像を保持するカメラ画像記憶手段と、上記一連のカメラ画像の中から上記登録画像として保持させるカメラ画像を抽出するカメラ画像抽出手段とを備えて構成される。この様な構成によれば、オンラインシミュレーション時に得られた一連のカメラ画像をオフラインシミュレーション用の登録画像として使用することができるので、撮像条件や計測条件などのパラメータの高精度な設定をすることができる。
【0010】
第3の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、パラメータが変更可能な処理を示す処理ユニットとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得する撮像ユニット、及び、上記撮像ユニットによって取得された上記カメラ画像から計測結果を抽出する2以上の計測ユニットを保持する処理ユニット記憶手段と、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に上記処理ユニットを配置することによって生成されたフローチャートを表示するフローチャート表示手段と、上記フローチャート上で選択された上記撮像ユニットの上記パラメータとして、複数のカメラの中からカメラ画像の取得対象とするカメラを決定する撮像条件決定手段とを備え、上記プログラム生成手段が、上記フローチャートに基づいて上記制御プログラムを生成し、上記フローチャート上には、複数の上記撮像ユニットを配置することができ、これらの撮像ユニットごとにカメラ画像の取得対象とするカメラを選択することができるように構成される。この様な構成によれば、フローチャート上に複数の撮像ユニットが配置された制御プログラムをオンラインシミュレーションした場合に、制御プログラムの実行中にカメラから取得された撮像ユニットごとのカメラ画像をシミュレーション結果として得ることができる。
【0011】
第4の本発明による画像処理コントローラ用のプログラム作成装置は、上記構成に加え、制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得されたカメラ画像を上記撮像ユニットに関連付けて保持するカメラ画像記憶手段を備え、上記フローチャート上に複数の上記撮像ユニットが配置された制御プログラムが上記オフラインシミュレーション手段によって実行される場合に、当該フローチャート上の各撮像ユニットについて、上記カメラ画像記憶手段に保持されているカメラ画像の中から上記登録画像として保持させるカメラ画像が自動抽出されるように構成される。この様な構成によれば、オンラインシミュレーション時に得られたカメラ画像がオフラインシミュレーション用の登録画像として自動抽出されるので、オフラインシミュレーション用に登録画像を指定する際の操作性を向上させることができる。
【発明の効果】
【0012】
本発明による画像処理コントローラ用のプログラム作成装置によれば、プログラム作成装置上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラへ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラを介してカメラからカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することができる。
【発明を実施するための最良の形態】
【0013】
<検査支援システム>
図1は、本発明の実施の形態による検査支援システムの一構成例を示した斜視図である。この検査支援システムは、検査対象物の搬送ライン上に配置される画像処理装置1と、この画像処理装置1の制御プログラムを生成するPC(パーソナルコンピュータ)2とからなる。
【0014】
画像処理装置1は、画像処理コントローラ11、カメラ12、ディスプレイ13a及び操作ユニット13bからなり、検査対象物から得られたカメラ画像に基づいて判定信号を出力するセンサー装置である。この判定信号は、図示しないPLC(Programmable Logic Controller:プログラマブルコントローラ)などへ入力され、画像処理装置1は、FA(Factory Automation)センサーとして使用される。
【0015】
カメラ12は、被写体を撮影して画像データを生成し、カメラ画像として出力する撮像装置であり、画像処理コントローラ11に着脱可能に接続される。カメラ12は、検査対象物が搬送される搬送ライン上に配置され、検査対象物を被写体として撮影が行われる。
【0016】
ディスプレイ13aは、検査対象物を撮影して得られたカメラ画像やカメラ画像に基づく画像処理結果を表示するための出力装置である。このディスプレイ13aは、画像処理コントローラ11によって表示制御され、通常、画像処理コントローラ11の近傍に配置される。つまり、このディスプレイ13aは、画像処理コントローラ11が運転中である場合に、画像処理コントローラ11の動作状態をユーザに確認させるための表示装置となっている。操作ユニット13bは、ディスプレイ13a上でフォーカス位置を移動させたり、メニュー項目を選択するための入力装置である。
【0017】
画像処理コントローラ11は、カメラ12からのカメラ画像を取り込んで処理し、カメラ画像に基づいて行った判定結果を示す判定信号を処理結果として出力する画像処理装置1の本体ユニットである。カメラ画像の取得動作は、例えば、PLCなどの外部機器から入力される制御信号であって、カメラ画像を取り込むタイミングを規定する撮像トリガ信号に基づいて行われる。
【0018】
この画像処理コントローラ11には、最大で4台のカメラ12が接続され、これらのカメラ12から取得したカメラ画像に基づいて画像処理が行われる。画像処理コントローラ11から出力される判定信号は、製品の良否などの判定結果を示す信号として生成される。
【0019】
また、画像処理コントローラ11には、ディスプレイ13a及び操作ユニット13bが接続されており、PC2を接続しなくても、操作ユニット13bを入力装置とし、ディスプレイ13aを出力装置として動作させることができる。
【0020】
PC2は、画像処理コントローラ11の制御プログラムを作成するプログラム作成装置であり、PC2上で動作するエディタ(ソフトウェア)によって制御プログラムが生成される。画像処理コントローラ11の制御プログラムを作成する際、PC2上でシミュレーションして動作確認することができる。
【0021】
PC2では、画像処理コントローラ11によるディスプレイ13a上の表示態様を規定するレイアウト情報が作成される。このレイアウト情報もエディタによってPC2における編集画面上で作成され、制御プログラム及びレイアウト情報からなる検査設定データが生成される。
【0022】
PC2と画像処理装置1の画像処理コントローラ11とは、イーサネット(Ethernet:登録商標)などの通信ネットワークを介して接続される。PC2には、複数の画像処理コントローラ11が着脱可能に接続される。PC2上で作成した検査設定データを画像処理コントローラ11に転送することにより、画像処理コントローラ11内の検査設定データを書き換えることができる。また、画像処理コントローラ11内の検査設定データを取り込んでPC2上で編集することもできる。このPC2は、通常、画像処理装置1のメンテナンス時に画像処理コントローラ11が接続される。
【0023】
<システム構成>
図2は、図1の検査支援システムのシステム構成の一例を示したブロック図である。この検査支援システム100は、1台のPC2と、通信ネットワーク3を介してPC2に接続された複数の画像処理装置1により構成される。PC2上で作成された制御プログラムは、検査設定データ22としてメモリ21内に格納される。
【0024】
PC2上で作成された検査設定データ22は、通信ネットワーク3を介して画像処理コントローラ11に転送される。このとき、転送先を指定して検査設定データ22を転送することにより、所望の画像処理コントローラ11について、メモリ14内の検査設定データ15を更新し、或いは、メモリ14内に新たな検査設定データを追加することができる。
【0025】
この画像処理コントローラ11では、フラッシュメモリなどのメモリ14内に複数の検査設定データ15が保持されている。各検査設定データ15は、処理手順や検査内容が異なる制御プログラムからなり、ユーザ操作に基づいて実行対象とする検査設定データ15を変更することができる。
【0026】
PC2では、通信ネットワーク3によって接続されている画像処理コントローラ11から検査設定データ15を取得して編集する動作が行われる。
【0027】
<エディタ画面>
図3は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、検査設定データ22を作成するためのエディタ画面40が示されている。エディタ画面40は、PC2上で検査設定データを新たに作成し、或いは、画像処理コントローラ11から取得した検査設定データを編集するための編集画面であり、PC2上に表示される。
【0028】
このエディタ画面40は、それぞれ表示位置や表示範囲が変更可能な複数のウィンドウ画面からなる。具体的には、システムビューウィンドウ41、パーツリストウィンドウ42、ユニットプロパティウィンドウ43、ビジョンビューウィンドウ44及びリザルトビューウィンドウ45からなる。
【0029】
システムビューウィンドウ41は、システム構成や編集対象とする検査設定データを一覧表示するためのウィンドウ画面であり、コントローラ一覧画面41a及びワークスペース一覧画面41bからなる。
【0030】
コントローラ一覧画面41aは、PC2に接続されている画像処理コントローラ11を一覧表示するための画面であり、画像処理コントローラ11を示すアイコンや、画像処理コントローラ11内に保持されている検査設定データ15を示すアイコンが表示されている。
【0031】
画像処理コントローラ11や検査設定データ15を示す各アイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ11を上階層とし、この画像処理コントローラ11内に保持されている検査設定データ15を下階層として、検査設定データ15がどの画像処理コントローラ11に保持されているのかが識別可能なように表示されている。
【0032】
ワークスペース一覧画面41bは、編集対象とする検査設定データを一覧表示するための画面であり、画像処理コントローラ11ごとに設けられるメモリ21上の作業領域を示すアイコンや、検査設定データを示すアイコンが表示されている。画像処理コントローラ11ごとに設けられるメモリ21上の作業領域は、該当する画像処理コントローラ11に関連付けられており、ワークスペースとして表示されている。つまり、PC2上には、検査設定データが画像処理コントローラ11ごとに保持され、画像処理コントローラ11ごとのワークスペースにおいて編集が行われる。
【0033】
この様な作業領域を示すアイコンや検査設定データを示すアイコンは、ツリー形式で表示されている。すなわち、画像処理コントローラ11に対応するワークスペースを上階層とし、このワークスペース内の検査設定データを下階層として、検査設定データがどのワークスペースに存在するのかが識別可能なように表示されている。
【0034】
コントローラ一覧画面41aの見出し欄に配置されている更新ボタン(アイコン)を操作すれば、画像処理コントローラ11から新たに検査設定データが取得され、PC2上に保持されている検査設定データやシステム構成が最新のものに更新される。また、登録ボタンを操作すれば、PC2上で作成された検査設定データが画像処理コントローラ11に転送される。
【0035】
ワークスペース一覧画面41bの見出し欄に配置されている更新ボタン(アイコン)を操作すれば、画像処理コントローラ11から取得された検査設定データによって、編集対象とする検査設定データが更新される。また、追加ボタンを操作すれば、新たな作業領域が設けられ、検査設定データを示すアイコンが追加される。
【0036】
パーツリストウィンドウ42は、検査設定データを作成する際に選択可能な処理ユニットをユニット一覧として表示するためのウィンドウ画面である。処理ユニットは、パラメータが変更可能な処理を示すシンボルであり、画像処理を示す画像処理ユニット、撮像処理を示す撮像ユニット、フロー制御処理を示す制御ユニット、及び、出力処理を示す出力ユニットなどが処理ユニットとして設けられている。この様な処理ユニットを後述するフロービューウィンドウ内のフローチャート上に配置することによって、所望のフローシーケンスからなる制御プログラムが作成される。
【0037】
パーツリストウィンドウ42内には、複数の処理ユニットが表示される。この例では、処理の種類によって処理ユニットが8つのカテゴリーに区分され、各カテゴリーを示すアイコンが表示されている。具体的には、「画像入力」、「計測」、「制御」、「演算」、「タイミング」、「表示」、「出力」及び「コマンド出力」のカテゴリーに区分されている。
【0038】
「画像入力」は、撮像に関する処理ユニットが属するカテゴリーであり、カメラ画像を取り込む撮像ユニットが属している。撮像ユニットは、撮像トリガ信号に基づいて、画像処理用のカメラ画像を取得する処理ユニットである。撮像トリガ信号には、PLCなどの外部機器から撮像トリガ入力端子を介して入力される入力信号、及び、画像処理コントローラ11内で生成される内部トリガ信号を用いることができる。この様な撮像ユニットには、シャッタースピード、カメラ感度、フラッシュ遅延時間、フラッシュオン時間、撮像対象カメラ、フラッシュ端子及びトリガ端子を指定するためのパラメータがプロパティとして関連付けられている。
【0039】
「計測」は、計測に関する処理ユニットが属するカテゴリーであり、カメラ画像から計測結果を抽出し、この計測結果に基づいて検査対象物の良否を判定する計測ユニットが属している。この様な計測ユニットには、パターンサーチユニット、エッジ位置検出ユニット、ブロブ検出ユニット、色検査ユニットなどの画像処理ユニットがある。
【0040】
パターンサーチは、カメラ画像上のサーチ領域内を走査して予め登録されたパターン画像と一致する位置を検出する処理である。エッジ位置検出は、カメラ画像上の計測領域について、検出方向に垂直な方向の平均濃度を求め、検出方向の濃度変化からエッジの位置を検出する処理である。
【0041】
ブロブ検出は、カメラ画像を2値化し、同一濃度を有する画素の塊をブロブとして抽出して、計測領域内に存在するブロブの数、面積、重心位置を検出する処理である。色検査は、検査領域内の色を測定する処理であり、色に対応する数値が計測結果として抽出される。
【0042】
この様な計測に関する画像処理では、検査対象物の形状、サイズ、カメラ画像内における位置などが検知され、その計測値が画像処理結果として出力される。また、計測値と、ユーザが予め指定したパラメータとを比較し、この比較結果に基づいて検査対象物の良否、例えば、不具合や異常の有無を判定し、その判定結果が画像処理結果として出力される。また、計測領域や、検知された検査対象物の位置などをグラフィカルに示すシンボルを埋め込んだカメラ画像が生成され、画像処理結果として出力される。
【0043】
「制御」は、制御に関する処理ユニットが属するカテゴリーであり、繰返しユニット、バイパスユニット、エンドシンボルなどの制御ユニットが属している。繰返しユニットは、実行フローを繰り返す際の始点を示す繰返し開始ユニットと、終点を示す繰返し終了ユニットとからなる処理ユニットであり、所定の条件が満たされるまで開始ユニット及び終了ユニット間の実行フローを繰り返させる処理を示す。
【0044】
バイパスユニットは、実行フローを2以上の枝フローに分岐させる分岐ユニットと、この分岐ユニットによって分岐された枝フローを合流させる合流ユニットとからなる処理ユニットであり、所定の条件で実行フローを分岐させる処理を示す。エンドシンボルは、1回のフローシーケンスを終了させるための表示オブジェクトである。
【0045】
「演算」は、演算に関する処理ユニットが属するカテゴリーであり、数値演算ユニット及び位置補正ユニットの画像処理ユニットが属している。「タイミング」は、フロー遷移の停止動作に関する処理ユニットが属するカテゴリーであり、ウェイトユニット、イベント待ちユニットなどの制御ユニットが属している。ウェイトユニットは、所定時間だけフロー遷移を停止させる処理を示す。イベント待ちユニットは、端子入力や変数値が所定の状態となるまでフロー遷移を停止させる処理を示す。
【0046】
「表示」は、表示に関する処理ユニットが属するカテゴリーであり、グラフィック表示ユニットなどの画像処理ユニットが属している。グラフィック表示ユニットは、他の処理ユニットを参照し、当該処理ユニットの処理結果をグラフィカルに表示する処理を示す。
【0047】
「出力」は、出力に関する処理ユニットが属するカテゴリーであり、端子出力ユニット、結果出力ユニット、画像出力ユニットなどの出力ユニットが属している。端子出力ユニットには、参照先ユニット、判定結果及び判定結果の出力先端子を指定するためのパラメータがプロパティとして関連付けられている。結果出力ユニットには、参照先ユニット、処理結果を示す数値データ、数値データを出力する際のデータ形式(テキスト形式又はバイナリ形式)、及び、数値データの出力先を指定するためのパラメータがプロパティとして関連付けられている。画像出力ユニットには、参照先ユニット、カメラ画像、画像データを出力する際のデータ形式、及び、画像データの出力先を指定するためのパラメータがプロパティとして関連付けられている。
【0048】
「コマンド出力」は、コマンド出力に関する処理ユニットが属するカテゴリーであり、コマンド発行ユニット、表示パターン切替ユニット及びダイアログ表示ユニットの出力ユニットが属している。コマンド発行ユニットは、画像登録、検査設定の切替え、リセットなどのコマンドを発行する処理を示す。
【0049】
ユニットプロパティウィンドウ43は、コントローラ一覧画面41a、ワークスペース一覧画面41b又はフロービューウィンドウ上で選択された処理ユニットのプロパティを表示するためのウィンドウ画面である。
【0050】
ビジョンビューウィンドウ44は、コントローラ一覧画面41a、ワークスペース一覧画面41b又はフロービューウィンドウ上で選択された処理ユニットに関連付けられているカメラ画像を表示するためのウィンドウ画面である。
【0051】
リザルトビューウィンドウ45は、コントローラ一覧画面41a、ワークスペース一覧画面41b又はフロービューウィンドウ上で選択された処理ユニットのパラメータと、シミュレーション結果とを表示するためのウィンドウ画面である。
【0052】
このエディタ画面40では、システムビューウィンドウ41の下部に配置されているフロービューボタン41cを操作すれば、上述したシステムビューウィンドウ41に代えて、フロービューウィンドウを表示させることができる。フロービューウィンドウは、画像処理コントローラ11に実行させる処理手順をフローチャートとして表示するウィンドウ画面であり、ワークスペース一覧画面41b上で選択された検査設定データが表示される。
【0053】
また、リザルトビューウィンドウ45の下部に配置されている抽出一覧ボタン45aを操作すれば、リザルトビューウィンドウ45に代えて、抽出一覧ウィンドウを表示させることができる。抽出一覧ウィンドウは、リザルトビューウィンドウ45上で選択されたパラメータ及び処理結果を抽出して処理ユニットごとの抽出結果を一覧表示するためのウィンドウ画面である。
【0054】
<フロービューウィンドウ>
図4は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、フロービューウィンドウ46が表示されたエディタ画面40が示されている。フロービューウィンドウ46は、検査設定データの制御プログラムを新たに作成し、或いは、画像処理コントローラ11から取得した制御プログラムを編集するために、処理手順を示すフローチャート47を表示するウィンドウ画面である。
【0055】
フロービューウィンドウ46には、複数の処理ユニット48を配列することによって構成されたフローチャート47が表示されている。フローチャート47には、スタートシンボル「S」において開始し、エンドシンボル「E」において終了する実行フロー上で時系列に実行される処理ユニットが表されている。ユーザは、この様な実行フロー上に処理ユニット48を配置することによって所望の制御プログラムを構成することができる。
【0056】
つまり、画像処理コントローラ11に行わせる一連の画像処理は、処理ユニットとしてブロック化されており、ユーザは、処理ユニットをフロービューウィンドウ46内の実行フロー上に配置するだけで、当該処理ユニットが直前の処理ユニットの処理結果に基づいて所定の処理を行うフローシーケンスを作成することができる。
【0057】
フロービューウィンドウ46の下部に配置されているシステムビューボタン46aを操作すれば、このフロービューウィンドウ46に代えて、システムビューウィンドウ41を表示させることができる。
【0058】
フロービューウィンドウ46上で選択されている処理ユニットは、フォーカス表示され、ユニットプロパティウィンドウ43内にそのプロパティが表示される。ユニットプロパティウィンドウ43内には、編集ボタン43aが配置され、編集ボタン43aを操作すれば、処理ユニットのプロパティを編集するためのプロパティ編集画面が表示される。プロパティ編集画面は、ユーザ操作に基づいて処理ユニットのパラメータを指定し、或いは、既に指定されているパラメータを変更するための編集画面である。
【0059】
<フローチャート>
図5は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、フロービューウィンドウ46内のフローチャート47の一例が示されている。このフローチャート47は、スタートシンボル61aで開始し、エンドシンボル61bで終了する実行フロー上に複数の処理ユニットが配置されている。
【0060】
フロービューウィンドウ46上でフローチャート47を作成編集する場合、パーツリストウィンドウ42を用いて作業が行われる。例えば、フローチャート47内に処理ユニットを挿入する際には、パーツリストウィンドウ42上で所望の処理ユニットを選択し、マウスポインタなどで実行フロー上の位置を指定することによって挿入される。
【0061】
この例では、フローチャート47が、分岐ユニット62a、撮像ユニット、色検査ユニット、数値演算ユニット、合流ユニット62b、ブロブ検出ユニット、繰返し開始ユニット65a、エッジ位置検出ユニット、パターンサーチユニット、繰返し終了ユニット65b及びグラフィック表示ユニットをこの順序で実行フロー上に配置することによって構成されている。
【0062】
分岐ユニット62a及び合流ユニット62bは、バイパスユニットを構成する制御ユニットであり、実行フロー上にバイパスユニットを挿入する際には、常に分岐ユニット62a及び合流ユニット62bを対にして挿入される。分岐ユニット62aでは、直前の処理ユニットの計測結果や判定結果に基づいて、分岐後の枝フローを択一的に選択する処理が行われる。分岐後の枝フローのいずれを選択するかという条件は、分岐ユニット62aのパラメータとして、ユーザが指定する。
【0063】
この例では、スタートシンボル61aからの実行フローが分岐ユニット62aにより2つの枝フロー63に分岐され、この分岐ユニット62aで分岐された枝フローが合流ユニット62bにおいて合流されている。その際、一方の枝フロー63は、撮像ユニット、色検査ユニット及び数値演算ユニットを経て合流ユニット62bに達しているのに対して、他方の枝フロー63は、撮像ユニットを経て合流ユニット62bに達するバイパス経路(迂回路)となっている。
【0064】
繰返し開始ユニット65a及び繰返し終了ユニット65bは、繰返しユニットを構成する制御ユニットであり、実行フロー上に繰返しユニットを挿入する際にも、繰返し開始ユニット65a及び繰返し終了ユニット65bを対にして挿入される。
【0065】
この例では、繰返し開始ユニット65a及び繰返し終了ユニット65b間にエッジ位置検出ユニット及びパターンサーチユニットが配置されており、実行時にはエッジ位置検出ユニット及びパターンサーチユニットの処理が繰り返される。
【0066】
フローチャート47内の分岐ユニット62a及び繰返し開始ユニット65aには、折畳みアイコン64aが配置されている。この折畳みアイコン64aは、制御ユニット間の実行フローを省略してフローチャート47を表示させるためのアイコンであり、処理ユニットに隣接させて表示される。
【0067】
また、フローチャート47上で選択されている処理ユニットは、フォーカス表示され、ユニットプロパティウィンドウ43内に当該処理ユニットのプロパティを表示させ、或いは、編集対象として当該処理ユニットのプロパティを変更することができる。
【0068】
本実施の形態では、この様に、フローチャート47内の実行フロー上に分岐ユニット62aが配置され、さらに、異なる2つの枝フロー63上にそれぞれ撮像ユニットが配置されている場合に、これらの撮像ユニットについて、枝フローごとにカメラ画像の撮像条件を編集することができる。
【0069】
<撮像ユニットのプロパティ編集画面>
図6は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、撮像ユニットのプロパティを編集するためのプロパティ編集画面70の一例が示されている。プロパティ編集画面70は、カメラ画像の撮像に関するパラメータの入力画面であり、ユニットプロパティウィンドウ43内の編集ボタン43aを操作することによって、エディタ画面40上に表示される。
【0070】
プロパティ編集画面70では、撮像に関する様々なパラメータを選択し、或いは、指定することができる。このプロパティ編集画面70には、編集可能なプロパティとして、撮像設定71、カメラ設定72、トリガ設定73、フラッシュ設定74などの項目が設けられている。
【0071】
ここでは、撮像設定71の項目が選択されており、カメラ選択欄81、シャッタースピードの入力欄82、カメラ感度の入力欄83及びゲイン調整選択欄が配置されている。カメラ選択欄81は、撮像対象とするカメラ12を選択するための入力欄であり、「カメラ1」から「カメラ4」までのいずれかを指定することができる。
【0072】
シャッタースピードの入力欄82は、カメラ12のシャッタースピードを入力するための入力欄であり、直接に数値を指定し、或いは、複数の規定値から選択することができる。カメラ感度の入力欄83は、カメラ12の感度レベルを入力するための入力欄である。ゲイン調整選択欄は、カメラ12から取得した画像データについて、ゲイン調整を行うか否かを選択するための入力欄である。
【0073】
トリガ設定73では、画像処理用のカメラ画像を取得する際の取得条件や撮像トリガに関する設定を行うことができる。取得条件としては、トリガ同期モード又はトリガ非同期モードのいずれかを選択することができる。トリガ同期モードは、撮像トリガ信号に同期して撮影させたカメラ画像を画像処理用として取り込む撮影モードである。一方、トリガ非同期モードは、繰返し撮影させて得られるカメラ画像から撮像トリガ信号に基づいて画像処理用のカメラ画像を抽出する撮影モードである。
【0074】
また、撮像トリガに関する設定では、カメラ画像を取得する際に使用する撮像トリガを選択することができる。例えば、「カメラ1」から「カメラ4」のカメラごとに撮像トリガの入力端子、通信インターフェース、或いは、内部トリガを選択することができる。
【0075】
この様に、フローチャート47上で選択された撮像ユニットごとに、カメラ画像の撮像に関する設定を行うことができる。
【0076】
<ワークスペース設定画面>
図7は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、オフラインシミュレーション時のエディタ画面40が示されている。このエディタ画面40は、登録画像として予め保持されているカメラ画像を使用して画像処理をシミュレーションするオフラインシミュレーション時の編集画面である。
【0077】
このエディタ画面40には、シミュレーションモードの選択欄91及びシミュレーション実行ボタン92が配置され、ワークスペース一覧画面41b上で選択されたワークスペースの設定画面90が表示されている。
【0078】
シミュレーションモードの選択欄91は、シミュレーションモードを選択するための入力欄であり、オフラインシミュレーションモード又はオンラインシミュレーションモードのいずれかを選択することができる。
【0079】
オンラインシミュレーションとは、制御プログラムの実行時に画像処理コントローラ11を介してカメラ12からカメラ画像を取得し、取得したカメラ画像を使用して画像処理をシミュレーションすることである。この様なシミュレーションの対象となる制御プログラムは、ワークスペース一覧画面41b上で編集対象として選択されたワークスペース(検査設定データ)である。
【0080】
シミュレーション実行ボタン92は、画像処理のシミュレーションを実行させるための操作用アイコンである。このシミュレーション実行ボタン92を操作することにより、ワークスペース一覧画面41b上で選択された検査設定データ(制御プログラム)を実行させることができる。
【0081】
ここでは、シミュレーション実行ボタン92の操作によって、1計測周期分だけ制御プログラムが実行されるものとする。具体的には、スタートシンボルで開始し、エンドシンボルで終了するフローシーケンスを計測周期として、この様な1計測周期分のフローシーケンスが1回だけ実行され、実行後にシミュレーションが自動停止する。この様な画像処理のシミュレーションによって得られるシミュレーション結果(計測値や判定値)は、例えば、リザルトビューウィンドウ45内に表示される。
【0082】
設定画面90は、ワークスペース一覧画面41b上で選択されたワークスペース(検査設定データ)のプロパティを編集するための入力画面である。この設定画面90には、ワークスペース名の入力欄、接続先の選択欄、仮想ドライブの設定欄、シミュレーション画像の格納先の入力欄などが設けられている。このシミュレーション画像の格納先の入力欄は、オフラインシミュレーション時に使用する登録画像を指定し、或いは、既に指定されている登録画像を変更するための入力欄である。
【0083】
<撮像ファイル設定画面>
図8は、図2の検査支援システム100におけるPC2の動作の一例を示した図であり、オンラインシミュレーション時のエディタ画面40が示されている。このエディタ画面40は、オンラインシミュレーション時の編集画面であり、シミュレーションモードの選択欄91、シミュレーション実行ボタン92〜94及び録画ボタン95が配置され、撮像ファイル設定画面96が表示されている。
【0084】
シミュレーション実行ボタン93は、画像処理のシミュレーションを実行させるための操作用アイコンであり、このシミュレーション実行ボタン93を操作することにより、スタートシンボルからエンドシンボルまでのフローシーケンスを1計測周期分だけ実行させることができる。
【0085】
シミュレーション実行ボタン94は、画像処理のシミュレーションを連続実行させるための操作用アイコンであり、このシミュレーション実行ボタン94を操作することにより、制御プログラムを繰返し実行させることができる。
【0086】
録画ボタン95は、オンラインシミュレーション時にカメラ12から取得されたカメラ画像を撮像ファイルとして保持させるための操作用アイコンである。この録画ボタン95を操作することにより、録画モードとなり、録画モード中にシミュレーション実行ボタン92〜94を操作すれば、制御プログラムの実行時に取得されたカメラ画像を撮像ファイルとして保持させることができる。
【0087】
カメラ画像の取得は、エディタのリモートキャプチャ機能を利用して行われる。このリモートキャプチャ機能は、画像処理コントローラ11を遠隔制御し、画像処理コントローラ11を介してカメラ12からカメラ画像を取得する機能である。
【0088】
具体的には、撮像条件などのパラメータと共に撮像要求(コマンド)がPC2から画像処理コントローラ11へ送信される。そして、撮像要求を受信した画像処理コントローラ11では、運転を停止し、リモートキャプチャモードとなる。このリモートキャプチャモードでは、操作ユニット13bによる操作が制限され、PC2からの撮像要求に基づいて取得したカメラ画像をPC2へ転送する動作が行われる。
【0089】
撮像ファイル設定画面96は、撮像ファイルのプロパティを編集するためのウィンドウ画面であり、オンラインシミュレーションによって計測周期ごとに得られたカメラ画像が撮像ユニットに対応付けて表示されている。
【0090】
この例では、カメラ画像の取得対象として「カメラ1」が選択された撮像ユニットによって撮像ファイルに取り込まれた計測周期ごとのカメラ画像A〜Aが表示欄97に時系列に表示されている。カメラ画像Aは、計測1回目に取得されたカメラ画像であり、カメラ画像Aは、計測2回目に取得されたカメラ画像であり、カメラ画像Aは、計測3回目に取得されたカメラ画像である。これらのカメラ画像A〜Aは、撮像ユニットを実行するタイミングで取得される。
【0091】
撮像ファイルとして保持されているカメラ画像は、オフラインシミュレーション用の登録画像として使用することができる。
【0092】
<エディタの機能構成>
図9は、図2の検査支援システム100におけるPC2の構成例を示したブロック図であり、画像処理コントローラ11の制御プログラムを作成するエディタの機能構成の一例が示されている。このPC2は、メモリ21、処理ユニット記憶部23、フローチャート表示部24、プログラム生成部25、通信部26、操作入力部27、ユニットプロパティ編集部28、撮像条件決定部29、登録画像記憶部30、オフラインシミュレーション部31、オンラインシミュレーション部32、シミュレーション結果記憶部33、カメラ画像抽出部34及びシミュレーション結果表示部35により構成される。
【0093】
処理ユニット記憶部23には、撮像ユニット、計測ユニットなどの処理ユニットが保持されている。撮像ユニットは、撮像トリガ信号に基づいて、カメラ12からカメラ画像を取得する処理を示す処理ユニットである。計測ユニットは、撮像ユニットによって取得されたカメラ画像から計測結果を抽出する処理を示す処理ユニットである。
【0094】
フローチャート表示部24は、スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に処理ユニットを配置することによって生成されたフローチャート47をエディタ画面40のフロービューウィンドウ46上に表示する動作を行っている。
【0095】
プログラム生成部25は、ユーザがフロービューウィンドウ46上で作成したフローチャート47を実行形式に変換することにより、画像処理コントローラ11の制御プログラムを生成する動作を行っている。具体的には、撮像ユニットや計測ユニットを実行フロー上に配置することによって、撮像トリガ入力端子からの入力信号に基づいてカメラ12からカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムが生成される。
【0096】
メモリ21には、プログラム生成部25により生成された制御プログラムが検査設定データ22として保持される。通信部26は、メモリ21内の検査設定データ22を画像処理コントローラ11へ転送する動作を行っている。
【0097】
ユニットプロパティ編集部28は、フローチャート47上で選択された処理ユニットのプロパティを編集する動作を行っている。具体的には、ユーザが編集対象として選択した処理ユニットについて、プロパティ編集画面を表示し、当該処理ユニットのパラメータをユーザ操作に基づいて指定し、或いは、既に指定されているパラメータを変更する動作が行われる。
【0098】
撮像条件決定部29は、フローチャート47上で選択された撮像ユニットのパラメータとして、複数のカメラ12の中からカメラ画像の取得対象とするカメラを決定する動作を行っている。
【0099】
フローチャート47上に分岐ユニットが配置され、さらに、分岐ユニットによって分岐された複数の枝フロー上にそれぞれ撮像ユニットが配置されている場合には、これらの撮像ユニットごとにカメラ画像の取得対象を選択することができる。
【0100】
登録画像記憶部30には、オフラインシミュレーション用の登録画像が保持されている。オフラインシミュレーション部31は、メモリ21に検査設定データ22として保持されている制御プログラムを実行するシミュレーション手段であり、登録画像記憶部30に登録画像として予め保持されているカメラ画像から計測結果を抽出する動作を行っている。
【0101】
オンラインシミュレーション部32は、メモリ21に検査設定データ22として保持されている制御プログラムを実行するシミュレーション手段であり、制御プログラムの実行時にカメラ画像を取得して計測結果を抽出する動作を行っている。具体的には、制御プログラムの実行時に、撮像ユニットを実行するタイミングで通信部26を介して画像処理コントローラ11へ撮像要求を送信し、この画像処理コントローラ11を介してカメラ12からカメラ画像が取得される。そして、取得したカメラ画像から計測結果を抽出する動作が行われる。
【0102】
シミュレーション結果記憶部33は、制御プログラムを実行することによって得られたシミュレーション結果(計測値や判定値)と共に、オンラインシミュレーション部32によって取得されたカメラ画像33aを保持するカメラ画像の記憶手段となっている。
【0103】
このシミュレーション結果記憶部33には、制御プログラムを繰返し実行させた際に、オンラインシミュレーション部32によって取得された一連のカメラ画像33aが保持されている。各カメラ画像33aは、撮像ユニットに関連付けて保持されている。例えば、カメラ画像33aに対応付けて、処理ユニットの識別情報33bが保持される。
【0104】
シミュレーション結果表示部35は、シミュレーション結果をエディタ画面40上に表示する動作を行っている。例えば、フロービューウィンドウ46内のフローチャート47上で選択されている処理ユニットについて、シミュレーション結果がリザルトビューウィンドウ45内に表示される。
【0105】
カメラ画像抽出部34は、シミュレーション結果記憶部33に保持されている一連のカメラ画像33aの中から登録画像として保持させるカメラ画像を抽出する動作を行っている。この様な構成によれば、オンラインシミュレーション時に得られた一連のカメラ画像33aをオフラインシミュレーション用の登録画像として使用することができるので、撮像条件や計測条件などのパラメータの高精度な設定をすることができる。すなわち、オンラインシミュレーションによって得られた計測値や判定値を参考にしてパラメータを調整する。次に、オンラインシミュレーション時に得られた撮像ファイル上のカメラ画像を使ってオフラインシミュレーションを実行するというような運用を行うことにより、パラメータを精度良く決定することができる。
【0106】
このカメラ画像抽出部34では、フローチャート47上に複数の撮像ユニットが配置された制御プログラムがオフラインシミュレーション部31によって実行される場合に、当該フローチャート47上の各撮像ユニットについて、シミュレーション結果記憶部33に保持されているカメラ画像33aの中から登録画像として保持させるカメラ画像を自動抽出する動作が行われる。この様な構成によれば、オンラインシミュレーション時に得られたカメラ画像33aがオフラインシミュレーション用の登録画像として自動抽出されるので、オフラインシミュレーション用に登録画像を指定する際の操作性を向上させることができる。すなわち、撮像ユニットごとにカメラ画像を指定する手間を省くことができる。
【0107】
本実施の形態によれば、PC2上で画像処理のシミュレーションを行うことができるので、作成した制御プログラムを画像処理コントローラ11へ転送することなく動作確認することができる。従って、作成した制御プログラムを動作確認する際の操作性を向上させることができる。また、制御プログラムの実行時に画像処理コントローラ11を介してカメラ12からカメラ画像を取得して画像処理のシミュレーションを行うことができるので、この様なシミュレーション結果を利用することによって、撮像条件や計測条件などのパラメータを高精度に設定することもできる。
【図面の簡単な説明】
【0108】
【図1】本発明の実施の形態による検査支援システムの一構成例を示した斜視図である。
【図2】図1の検査支援システムのシステム構成の一例を示したブロック図である。
【図3】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、検査設定データ22を作成するためのエディタ画面40が示されている。
【図4】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、フロービューウィンドウ46が表示されたエディタ画面40が示されている。
【図5】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、フロービューウィンドウ46内のフローチャート47の一例が示されている。
【図6】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、撮像ユニットのプロパティ編集画面70の一例が示されている。
【図7】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、オフラインシミュレーション時のエディタ画面40が示されている。
【図8】図2の検査支援システム100におけるPC2の動作の一例を示した図であり、オンラインシミュレーション時のエディタ画面40が示されている。
【図9】図2の検査支援システム100におけるPC2の構成例を示したブロック図であり、エディタの機能構成の一例が示されている。
【符号の説明】
【0109】
1 画像処理装置
2 PC
3 通信ネットワーク
11 画像処理コントローラ
12 カメラ
13a ディスプレイ
13b 操作ユニット
14,21 メモリ
15,22 検査設定データ
23 処理ユニット記憶部
24 フローチャート表示部
25 プログラム生成部
26 通信部
27 操作入力部
28 ユニットプロパティ編集部
29 撮像条件決定部
30 登録画像記憶部
31 オフラインシミュレーション部
32 オンラインシミュレーション部
33 シミュレーション結果記憶部
34 カメラ画像抽出部
35 シミュレーション結果表示部
40 エディタ画面
41 システムビューウィンドウ
46 フロービューウィンドウ
47 フローチャート
48 処理ユニット
100 検査支援システム

【特許請求の範囲】
【請求項1】
検査対象物を撮影してカメラ画像を生成するカメラと、上記カメラからカメラ画像を取得して当該カメラ画像から計測結果を抽出し、この計測結果に基づいて上記検査対象物の良否を判定して判定信号を出力する画像処理コントローラとからなる画像処理装置に用いられる上記画像処理コントローラの制御プログラムを作成するプログラム作成装置において、
上記画像処理コントローラの制御プログラムとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得し、取得したカメラ画像から計測結果を抽出する制御プログラムを生成するプログラム生成手段と、
上記制御プログラムを実行するシミュレーション手段と、
上記制御プログラムを上記画像処理コントローラへ転送する転送手段とを備え、
上記シミュレーション手段は、登録画像として予め保持されているカメラ画像から上記計測結果を抽出するオフラインシミュレーション手段と、
上記制御プログラムの実行時に上記画像処理コントローラを介して上記カメラからカメラ画像を取得し、取得したカメラ画像から上記計測結果を抽出するオンラインシミュレーション手段とからなることを特徴とする画像処理コントローラ用のプログラム作成装置。
【請求項2】
制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得された一連のカメラ画像を保持するカメラ画像記憶手段と、
上記一連のカメラ画像の中から上記登録画像として保持させるカメラ画像を抽出するカメラ画像抽出手段とを備えたことを特徴とする請求項1に記載の画像処理コントローラ用のプログラム作成装置。
【請求項3】
パラメータが変更可能な処理を示す処理ユニットとして、撮像トリガ信号に基づいて上記カメラからカメラ画像を取得する撮像ユニット、及び、上記撮像ユニットによって取得された上記カメラ画像から計測結果を抽出する2以上の計測ユニットを保持する処理ユニット記憶手段と、
スタートシンボルにおいて開始し、エンドシンボルにおいて終了する実行フロー上に上記処理ユニットを配置することによって生成されたフローチャートを表示するフローチャート表示手段と、
上記フローチャート上で選択された上記撮像ユニットの上記パラメータとして、複数のカメラの中からカメラ画像の取得対象とするカメラを決定する撮像条件決定手段とを備え、
上記プログラム生成手段が、上記フローチャートに基づいて上記制御プログラムを生成し、
上記フローチャート上には、複数の上記撮像ユニットを配置することができ、これらの撮像ユニットごとにカメラ画像の取得対象とするカメラを選択することができることを特徴とする請求項1に記載の画像処理コントローラ用のプログラム作成装置。
【請求項4】
制御プログラムを繰返し実行させた際に、上記オンラインシミュレーション手段によって取得されたカメラ画像を上記撮像ユニットに関連付けて保持するカメラ画像記憶手段を備え、
上記フローチャート上に複数の上記撮像ユニットが配置された制御プログラムが上記オフラインシミュレーション手段によって実行される場合に、当該フローチャート上の各撮像ユニットについて、上記カメラ画像記憶手段に保持されているカメラ画像の中から上記登録画像として保持させるカメラ画像が自動抽出されることを特徴とする請求項3に記載の画像処理コントローラ用のプログラム作成装置。

【図1】
image rotate

【図2】
image rotate

【図9】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2009−123069(P2009−123069A)
【公開日】平成21年6月4日(2009.6.4)
【国際特許分類】
【出願番号】特願2007−298030(P2007−298030)
【出願日】平成19年11月16日(2007.11.16)
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】