(57)【要約】【課題】検査工程の処理の流れと、個々の検査対象に対する検査の内容をわかりやすく表現し、容易に実行及び編集することが可能な検査装置のプログラム実行方式及びプログラミング環境を提供する。【解決手段】検査プログラムを、検査工程の処理の流れを記述するフローチャートと、検査内容を記述する表形式プログラムにより記述し、検査プログラムの実行はフローチャートに従って進め、表形式プログラムが記述されているステップに到達した時点でそのステップの内部に記述されている表形式プログラムを実行する。【選択図】      図２
2005078130.tif 000002
【特許請求の範囲】
【請求項１】
生産ラインの検査工程に使用されるプログラマブルな検査装置であって、
検査工程の処理の流れを記述するフローチャートと、当該フローチャートの中の検査内容を記述する表形式プログラムから構成される検査プログラムを保持するプログラム保持手段と、
上記検査プログラムのうちフローチャートを読み出し、当該フローチャートを実行するフローチャート実行手段と、
上記検査プログラムのうち表形式プログラムを読み出し、当該表形式プログラムを実行する表形式プログラム実行手段と、
検査対象からの信号を入出力する入出力手段とを備え、
上記フローチャート実行手段は、上記フローチャートに従って検査プログラムの実行を行うとともに、実行するステップに表形式プログラムが記述されているかを判断して、表形式プログラムが記述されている場合は、表形式プログラム実行手段を起動することを特徴とする検査装置。
【請求項２】
上記表形式プログラムは、少なくとも１つのステップを含み、各々のステップに対して、検査対象に設定する条件を記述する計測条件設定部と、検査対象の計測する対象及び計測値を指定する計測対象設定部と、判定基準値を設定する判定基準設定部を備え、
計測対象設定部で指定した対象の計測値と判定基準設定部で設定した判定基準値を比較し、合否判定を実行することを特徴とする請求項１に記載の検査装置。
【請求項３】
上記表形式プログラムは、さらに、上記合否判定結果に基づいて実行される処理を記述した判定後処理設定部を備えたことを特徴とする請求項２に記載の検査装置。
【請求項４】
上記表形式プログラムのステップ中に、指定行にジャンプする命令を記述することができ、当該命令が記述されている場合は、指定された行へ移行し、該当する行から実行を継続することを特徴とする請求項２又は請求項３に記載の検査装置。
【請求項５】
上記表形式プログラムのステップ中に、ソフトウェアオブジェクトを呼び出す命令を記述することができ、当該命令が記述されている場合は、指定されたソフトウェアオブジェクトを起動することを特徴とする請求項２から請求項４のいずれか１項に記載の検査装置。
【請求項６】
上記表形式プログラムのステップ中に、関数又はスクリプトを記述することができ、当該関数又はスクリプトが記述されている場合は、当該関数又はスクリプトを解釈して実行することを特徴とする請求項２から請求項５のいずれか１項に記載の検査装置。
【請求項７】
上記表形式プログラムを２つ以上有し、実行する表形式プログラムをフローチャートで選択することを特徴とする請求項１から請求項６のいずれか１項に記載の検査装置。
【請求項８】
上記表形式プログラムをファンクションブロック内に記述し、上記表形式プログラムの処理結果に応じて出力先を変更することを特徴とする請求項２から請求項６のいずれか１項に記載の検査装置。
【請求項９】
検査の合否判定結果をステップ番号と共に一覧表の形で表示し、ステップ番号を指定することで検査結果の詳細な情報である検査時の測定値と判定基準値とを並べて表の形式で表示することを特徴とする請求項１から請求項８のいずれか１項に記載の検査装置。
【請求項１０】
上記検査装置は、検査装置が持つデバイスに対してタグを付与してタグテーブルに保持するタグ編集手段と、上記タグを入力しながらプログラムを編集するプログラム編集手段と、プログラムを実行プログラムに変換するコード生成手段を備え、上記コード生成手段において、タグが存在する場合には、タグテーブルを参照して、タグに対応するデバイスを取得して、デバイスへ置き換えて、実行プログラムを検査装置へ送ることを特徴とする請求項１から請求項９のいずれか１項に記載の検査装置。
【請求項１１】
上記検査装置は、検査装置が持つデバイスに対してタグを付与してタグテーブルに保持するタグ編集手段と、上記タグを入力しながらプログラムを編集するプログラム編集手段と、上記プログラムを実行プログラムに変換するコード生成手段と、上記実行プログラムを実行するプログラム実行手段を備え、
上記コード生成手段において、プログラムを実行プログラムに変換する際、上記タグが存在する場合でも、そのままタグとして実行プログラムに残し、実行プログラムおよび前記タグテーブルを検査装置へ送り、
上記プログラム実行手段において、実行プログラムを実行する際、上記タグが存在する場合には、その都度、タグテーブルを参照し、タグに対応するデバイスを取得して、そのデバイスへアクセスすることを特徴とする請求項１から請求項９のいずれか１項に記載の検査装置。
【請求項１２】
上記タグ編集手段は、タグテーブルの情報を参照して、プログラム入力の候補となるべきタグの一覧を呈示し、プログラマは、呈示されたタグの一覧から、所望のタグを選択することで、表形式プログラムを作成することを特徴とする請求項１０または請求項１１のいずれか１項に記載の検査装置。
【請求項１３】
生産ラインの検査工程におけるプログラマブルな検査装置であって、検査プログラムのうちフローチャートを読み出し、当該フローチャートを実行するフローチャート実行手段と、検査プログラムのうち表形式プログラムを読み出し、当該表形式プログラムを実行する表形式プログラム実行手段と、検査対象からの信号を入出力する入出力手段とを備え、上記フローチャート実行手段は、上記フローチャートに従って検査プログラムの実行を行うとともに、実行するステップに表形式プログラムが記述されているかを判断して、表形式プログラムが記述されている場合は、表形式プログラム実行手段を起動する検査装置の、上記フローチャートと上記表形式プログラムを作成するプログラミングツールであって、上記フローチャートの各ステップと表形式プログラムの繋がりを記述することを特徴とするプログラミングツール。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、生産ラインの検査工程におけるプログラマブルな検査装置に係り、特にそのプログラム作成及び実行方法の改良に関するものである。
【背景技術】
【０００２】
検査装置で実行する検査用のプログラムは、検査における製品の合否判定基準をコンピュータの汎用プログラム言語によって記述されるか、あるいは検査の合否判定基準となる値を表の形にまとめた検査専用のプログラム言語によって記述されている。
【０００３】
また、処理の流れを表の形式で記述する方法として、全体の処理の流れを順序制御記述部に記述し、各状態における条件とその動作を条件制御記述部に記述するプログラム実行方式が記載されている。（例えば、特許文献１）
【０００４】
【特許文献１】特公平６−７９２４５号公報（問題を解決するための手段）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
検査の合否判定基準をコンピュータの汎用プログラム言語によって記述する場合、合否判定基準となる値をプログラム言語でプログラム中に書き込んでいるため、合否判定基準を変更する際にはプログラムの流れを理解し、該当する合否判定基準の値がプログラム中のどの部分に記述されているかを調べてから変更する必要があった。
【０００６】
また、合否判定基準を表形式で記述する場合、個々の製品の合否判定に用いる検査基準が表の形式で表現されているため、基準値の変更は行い易いものの、検査対象を搬送系を使って運び入れ、治具を固定して検査を開始する、といった検査工程を表現することは難しい。
【０００７】
一方、処理の流れを表の形式で記述するために、順序制御記述部と条件制御記述部に分けて記述するプログラム実行方式が提案されている。この方式では、全体の処理の流れを記述できるものの、処理の流れがグラフィカルに表現されていないため、処理の流れを把握するには表を順に追っていく必要がある。
【０００８】
また、多品種の検査を行う場合、品種に応じて検査の内容が異なるため、検査処理の流れに分岐が発生する。処理の流れを表の形式で表現する方法では、分岐を含んだ処理の流れの全体像を把握しにくいという問題があった。
【０００９】
この発明の目的は、検査装置全体の処理の流れと、個々の検査対象に対する検査の内容をわかりやすく表現し、容易に実行及び編集することが可能な検査装置のプログラム実行方式及びプログラミング環境を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、この発明は、検査プログラムを、検査工程の処理の流れを記述するフローチャートと、検査内容を記述する表形式プログラムにより記述し、検査プログラムの実行はフローチャートに従って進め、表形式プログラムが記述されているステップに到達した時点でそのステップの内部に記述されている表形式プログラムを実行するようにする。
【００１１】
すなわち、この発明は、生産ラインの検査工程に使用されるプログラマブルな検査装置であって、検査工程の処理の流れを記述するフローチャートと、当該フローチャートの中の検査内容を記述する表形式プログラムから構成される検査プログラムを保持するプログラム保持手段と、上記検査プログラムのうちフローチャートを読み出し、当該フローチャートを実行するフローチャート実行手段と、上記検査プログラムのうち表形式プログラムを読み出し、当該表形式プログラムを実行する表形式プログラム実行手段と、検査対象からの信号を入出力する入出力手段とを備え、フローチャート実行手段は、上記フローチャートに従って検査プログラムの実行を行うとともに、実行するステップに表形式プログラムが記述されているかを判断して、表形式プログラムが記述されている場合は、表形式プログラム実行手段を起動することを特徴とする。
【発明の効果】
【００１２】
この発明によれば、検査工程のドキュメントとしてそのまま利用できるフローチャートと、合否判定の判定基準値を表の形にまとめ、検査の規格表のドキュメントとしてそのまま利用することができる表形式プログラムによって検査プログラムを記述するようにしたので、検査工程の流れをグラフィカルに記述することができ、可読性に優れ、検査処理の流れを理解しやすくなる。また、汎用性、拡張性に優れたプログラムとして検査工程を記述できるため、プログラムの保守性を向上できるとともに、これらのプログラムを検査工程のドキュメントとして活用できる効果がある。
【発明を実施するための最良の形態】
【００１３】
実施の形態１．
以下、この発明を実施するための最良の形態を図面を参照して説明する。図１はこの発明の実施の形態による検査装置のハードウェア構成を示すブロック図である。
【００１４】
本実施の形態の検査装置４００は、ハードウェア資源として、中央演算処理部（ＣＰＵ）１００と、読出専用メモリ（ＲＯＭ）１０１と、読出・書出可能メモリ（ＲＡＭ）１０２と、表示装置１０３と、入力装置１０４と、入出力インターフェース（Ｉ／Ｏ）１０５と、デジタルアナログ変換器（Ｄ／Ａ）１０６と、アナログデジタル変換器（Ａ／Ｄ）１０７とを備えて構成される。更に、これらの構成要素はバス１０８を介して接続されている。
【００１５】
読出専用メモリ（ＲＯＭ）１０１には、例えばオペレーティングシステムや検査装置４００の動作を制御するプログラムが格納されている。読出・書出可能メモリ（ＲＡＭ）１０２には、ユーザが作成する検査プログラムや、検査時に入出力するデータが格納される。
【００１６】
表示装置１０３は例えばＬＣＤから構成され、検査プログラムの進捗状況を表示することができる。また、表示装置１０３は、検査の合否判定の基準値や、計測した値を表示するとともに、合否判定結果を表示することができる。入力装置１０４は例えばキーボードや表示装置１０３としてのＬＣＤに貼られたタッチパネルから構成され、検査プログラムの実行開始を指示することができる。また、入力装置１０４は、検査の合否判定の基準値を変更することができる。
【００１７】
図２はこの発明の実施の形態による検査装置の機能を説明するためのブロック図である。中央演算処理部（ＣＰＵ）１００は、ＲＯＭ１０１に格納されている検査装置４００の動作を制御するプログラムによって、各種機能を実行する。まず、ＣＰＵ１００は、表示装置１０３と共に表示手段２１０として機能する。また、ＣＰＵ１００は、入力装置１０４と共に操作手段２０９として機能する。更に、ＣＰＵ１００は、ＲＯＭ１０１とＲＡＭ１０２と共にフローチャート実行手段２０２、表形式プログラム実行手段２０３、ファンクションブロック実行手段２０４、並びにラダー実行手段２０５として機能する。また、ＣＰＵ１００は、ＲＡＭ１０２と共にプログラム保持手段２０１、データ保持手段２０６、並びに検査履歴保持手段として機能する。また、ＣＰＵ１００は、Ｉ／Ｏ１０５とＡ／Ｄ１０７と共に入力手段２０７として機能する。更に、ＣＰＵ１００は、Ｉ／Ｏ１０５とＤ／Ａ１０６と共に出力手段２０８として機能する。
【００１８】
次に、ＣＰＵ１００が実行する各種機能について、図２を参照してして詳しく説明する。なお、図２のブロックのうちフローチャート実行手段２０２、表形式プログラム実行手段２０３、ファンクションブロック実行手段２０４、ラダー実行手段２０５、表示手段２１０はＣＰＵ１００が主体となって実行する手段である。
【００１９】
フローチャート実行手段２０２は、プログラム保持手段２０１から検査プログラムのうち、フローチャートの部分を読み出して処理を行う。フローチャート実行手段２０２では、プログラム保持手段２０１から読み出したフローチャートに基づいて、入力手段２０７からデータ保持手段２０６へ入力されたデータを処理し、データ保持手段２０６に書き込む。データ保持手段２０６に書き込まれたデータは、出力手段２０８によって出力される。フローチャート実行手段２０２は、フローチャートの中に後述する表形式プログラム３００が記述されている場合は、表形式プログラム実行手段２０３を起動し、また、フローチャートの中にファンクションブロックが記述されている場合は、ファンクションブロック実行手段２０４を起動し、また、フローチャートの中にラダーが記述されている場合は、ラダー実行手段２０５を起動する。更に、フローチャート実行手段２０２において、ユーザからの指示は、操作手段２０９からの操作信号として受け取る。また、フローチャート実行手段２０２は、フローチャート実行手段２０２で処理を進めている状況を表示手段２１０に表示し、また、検査結果を検査履歴保持手段２１１に記録する。
【００２０】
表形式プログラム実行手段２０３は、プログラム保持手段２０１から検査プログラムのうち、表形式プログラム３００（後述）の部分を読み出して処理を行う。表形式プログラム実行手段２０３では、入力手段２０７によってデータ保持手段２０６に入力されたデータを、表形式プログラム３００に記述された合否判定基準に基づいて合否判定する。また、表形式プログラム実行手段２０３は、表形式プログラム３００に記述されている内容に応じて、データ保持手段２０６にデータを書き込んだり、合否判定結果に応じて、実行する処理を切り換える。また、ユーザからの指示は、操作手段２０９からの操作信号として受け取る。また、表形式プログラム実行手段２０３で処理を進めている状況を表示手段２１０に表示する。また、検査結果を検査履歴保持手段２１１に記録する。
【００２１】
ファンクションブロック実行手段２０４は、プログラム保持手段２０１から検査プログラムのうち、ファンクションブロックの部分を読み出して処理を行う。ファンクションブロック実行手段２０４では、入力手段２０７によってデータ保持手段２０６に入力されたデータを、ファンクションブロックに記述された内容に応じて処理を行い、データ保持手段２０６に書き込む。
【００２２】
ラダー実行手段２０５は、プログラム保持手段２０１から検査プログラムのうち、ラダーの部分を読み出して処理を行う。ラダー実行手段２０５では、入力手段２０７によってデータ保持手段２０６に入力されたデータを、ラダーに記述された内容に応じて処理を行い、データ保持手段２０６に書き込む。
【００２３】
入力手段２０７および出力手段２０８は、周期的に起動し、外部接続機器との間でデータ保持手段２０６の内容を読み書きする。
【００２４】
プログラム作成手段２００は、検査装置４００が実行する検査プログラムを作成する。検査プログラムには、検査工程の処理の流れを記述するフローチャート、検査内容を記述する表形式プログラム３００、ファンクションブロック、ラダーがあるが、これらのプログラミングをプログラム作成手段２００で行う。これらのプログラム言語は、そのままでは各言語の実行手段で実行できないため、プログラム作成手段２００は、これらの各言語を各々の言語の実行手段で直接実行できる形式に変換し、プログラム保持手段２０１に保存する。
【００２５】
図３はこの発明の実施の形態に使用される表形式プログラム３００の例を示す図である。表形式プログラム３００は、ステップ番号３０１、コメント３０２、計測条件設定部３１４、計測対象設定部３１５、判定基準設定部３１６、判定後処理設定部３１７から構成される。表形式プログラム３００の実行時は、実行中のステップのステップ番号３０１とコメント３０２を、表示装置１０３の表示画面に表示することができる。
【００２６】
計測条件設定部３１４には、計測時に検査対象４０１に設定する条件を記述する。図３の例では、検査対象４０１が、スイッチとしてＳＷ−１３０３とＳＷ−２３０４の２つを持ち、電圧を入力するチャンネルＣＨ−１３０５を持っている場合を示している。ＳＷ−１３０３、ＳＷ−２３０４、ＣＨ−１３０５は、すべてタグ（検査装置が有する入出力デバイスに対してユーザ等が任意に付与する名称）であり、実際にはデータ保持手段２０６の入出力データに対応するデバイスが存在する。図３の例では、ステップ１で、ＳＷ−１３０３をＯＮに、ＳＷ−２３０４をＯＦＦにし、ＣＨ−１３０５に０．０Ｖを印加している。
【００２７】
計測条件設定部３１４には、任意の数のデバイスを設定することができる。ウエイト欄３０６には、計測条件を設定してから、検査対象４０１の値を取得するまでの待ち時間を指定する。検査対象４０１によって異なる時定数の違いをウエイト欄３０６に待ち時間を指定して調整する。ウエイト欄３０６に設定する時間の単位には、秒やミリ秒などが挙げられる。ウエイト欄３０６で指定した時間が経過した後、計測対象設定部３１５で指定した検査対象４０１から計測を行う。
【００２８】
計測対象設定部３１５の対象欄３０７には、検査対象４０１の値を計測するチャンネルの番号を指定する。図３のステップ１の例では、Ａ／Ｄ１−ＣＨ３を対象として指定している。これは、検査対象４０１が接続されている検査装置４００の１番目のＡ／Ｄボード上のチャンネル３の値を計測することを示している。計測したデータは、データ型欄３０８で指定したデータ型で保持され、後の合否判定も指定したデータ型で行われる。
【００２９】
計測対象設定部３１５の対象欄３０７で指定し、計測した対象の値は、判定基準設定部３１６で設定された値と比較し、合否判定基準を満たしているかを判定する。判定基準設定部３１６には、最小値欄３０９、最大値欄３１０、一致比較欄３１１がある。最小値欄３０９には、合否判定基準の最小値を記述し、最大値欄３１０には、合否判定基準の最大値を記述する。計測した値が最小値欄３０９の最小値と最大値欄３１０の最大値の範囲に入っていれば、合格（ＯＫ）の判定を行う。計測した値が上記範囲に入っていなければ、不合格（ＮＧ）の判定を行う。最小値欄３０９、最大値欄３１０に値の記述が無く、一致比較欄３１１にのみ数値が記述されている場合には、計測した値と、一致比較欄３１１に記述された数値が一致しているかを判定する。一致している場合は、合格（ＯＫ）の判定を行う。一致していなければ不合格（ＮＧ）の判定を行う。
【００３０】
計測対象設定部３１５で指定したデバイスから計測された値と、判定基準設定部３１６にて設定された値を比較し、合否判定された判定結果に基づいて、判定後処理設定部３１７に記述された処理を実行する。判定後処理設定部３１７は、ＯＫ欄３１２とＮＧ欄３１３の２つの欄からなる。ＯＫ欄３１２には、判定結果が合格（ＯＫ）の場合に実行する処理を記述する。ＮＧ欄３１３には、判定結果が不合格（ＮＧ）の場合に実行する処理を記述する。例えば、図３のステップ４の判定後処理設定部３１７のＯＫ欄３１２では、検査装置４００上に存在する他のソフトウェアオブジェクトである「Ｆｕｎｋ１」を呼び出す処理を指定している。ステップ４の判定結果がＯＫとなった場合、この「Ｆｕｎｃ１」が表形式プログラム実行手段２０３から呼び出されて実行される。
【００３１】
判定後処理設定部３１７に記述した処理を終えると、表形式プログラム実行手段２０３は、同じ表形式プログラム３００の次のステップ（行）へ進み、ステップ番号３０１とコメント３０２を読み出す。これらを表示画面に表示した後、計測条件設定部３１４に記述されたデータを出力し、この行の残りの処理を進める。この様に１行のデータの処理を終えると次の行に進む。そして表プログラム全体の処理を終えると、その表形式プログラム３００の終了となる。
【００３２】
図４に対象とする搬入機４０２、検査ステーション４０３、搬出機４０４と、これらを制御する検査装置４００を示し、検査を実施することを考える。検査装置４００は、搬入機４０２を制御して検査対象４０１を検査ステーション４０３へ搬入する。検査ステーション４０３では、検査対象４０１に対して治具を取り付けるなど、検査対象４０１と検査装置４００を電気的に接続し、表形式プログラム３００で記述された検査項目の検査を実施する。検査を終えた検査対象４０１は、搬出機４０４によって検査ステーション４０３から搬出される。検査の進行状況は検査装置４００の表示画面上で確認することができる。表形式プログラム３００の合否判定の判定基準値は、その一覧を検査装置４００の表示画面上に表示することができ、目的とする箇所にカーソルを移動し、所定の位置の判定基準値をキーボードから変更することができる。
【００３３】
ここで検査装置４００で実行するプログラムの作成について説明する。まず、プログラミングツール５００について図５を参照して説明する。検査装置のプログラミングツール５００は、図２のプログラム作成手段２００に相当し、検査装置４００が実行可能な各言語を編集するエディタを持っている。検査装置のプログラミングツール５００が持つエディタとして、フローチャートを編集するフローチャートエディタ５０１、表形式プログラム３００を編集する表形式プログラムエディタ５０２、ラダーを編集するラダーエディタ、ファンクションブロックを編集するファンクションブロックエディタ、Ｃ言語やＢＡＳＩＣ言語を記述する汎用プログラム言語エディタがある。
【００３４】
検査装置４００で実行するプログラムは、検査工程の全体の流れをフローチャートで記述し、個々の検査の内容を表形式プログラム３００で記述する。また、機器の制御やデータ処理が必要な場合はラダーやファンクションブロックで記述する。さらにＣ言語やＢＡＳＩＣ言語などの汎用プログラム言語で記述することもできる。プログラミングツール５００は、これらの言語で記述されたプログラムを、各言語の実行手段が実行可能な実行形式の実行プログラム２１０１へ変換する。また、検査装置４００の中に入っているプログラムを、各言語の実行手段が実行可能な実行形式の実行プログラム２１０１から、ユーザが作成したプログラムへ逆変換し、プログラミングツール５００上の各エディタに表示することができる。
【００３５】
次に、プログラムの作成の流れについて説明する。ユーザは最初に検査装置のプログラミングツール５００上で、フローチャートエディタ５０１を用いてフローチャートによって検査工程の全体の流れを記述する。図４の例をプログラミングする場合を図５に示す。図４の例では、検査工程の流れを、検査対象４０１を検査ステーション４０３へ搬入する搬入処理、検査ステーション４０３に搬入された検査対象４０１を検査する検査処理、検査を終えた検査対象４０１を搬出する搬出処理の３つに分けることができる。そこで、フローチャートエディタ５０１上で、開始ステップに続き、検査対象４０１を搬入するための搬入処理を記述するステップを記述する。搬入を終えた後は検査を行うので、検査処理を記述するステップを記述する。そして、検査を終えた検査対象４０１を搬出するための搬出処理ステップ７０２を記述する。次に、各ステップの内容を記述する。各ステップは処理の内容に応じて最も適したプログラム言語を選択して記述することができる。
【００３６】
各言語に対応したステップをプログラミングする方法としては、次の２つの方法が考えられる。最初の方法は、フローチャートの各ステップに、組み込むプログラムの種類を指定する属性を持たせ、表形式プログラムステップ５０５、ラダーステップ５０３、ファンクションブロックステップというように、個々の言語に対応したステップをメニューとして用意し、ユーザが記入する言語に応じて適切なステップを選択して、メニューからマウスのドラッグアンドドロップ操作などによりフローチャートを作成する方法である。
【００３７】
また、別の方法としては、プログラムの種類の属性が設定されていないステップをマウス等で並べ、ステップの中のプログラムを記述する際に、ステップに記述するプログラムの種類を設定する方法がある。
【００３８】
いずれの方法であっても、フローチャートで記述したステップの中に、表形式プログラム３００などのプログラムを記述する場合は、対象となるステップをマウスカーソル５０５等で選択し、例えばダブルクリックするなどの決定を示す操作によって、そのステップが属性として持つプログラム言語を編集するエディタが新たなウインドウとして開き、表示される。この様子を図５に示す。
【００３９】
図５において、検査装置のプログラミング環境上にフローチャートのプログラミングを行うフローチャートエディタ５０１が起動している。フローチャートエディタ５０１上では、検査工程の流れをフローチャートによって記述している。ラダーステップ５０３では、搬送系やインタロックなど制御に関する処理を記述する。次に表ステップ５０４では、搬入した検査対象４０１に対する検査処理を記述する。ここで、フローチャートエディタ５０１上の表ステップ５０４をマウスカーソル５０５等で選択し、ダブルクリック等の決定を示す操作を行うと、プログラミングツール５００上に表形式プログラムエディタ５０２が起動する。ユーザは、画面上に現れた表形式プログラムエディタ５０２を用いて、検査対象４０１に対して実施する検査の内容を表形式プログラム３００として記述する。
【００４０】
フローチャートエディタ５０１と表形式プログラムエディタ５０２は、図５に示すように検査装置のプログラミングツール５００上に実現されていることもあるし、図６に示すように個々に独立したアプリケーションとして実現されており、フローチャートエディタ５０１上で表ステップ５０４をマウスカーソル５０５等で選択し、ダブルクリックすることで、表形式プログラムエディタ５０２を起動することも出来る。
【００４１】
また、表形式プログラム３００は、フローチャートの表形式プログラムステップの内部に保持されることもあるし、表形式プログラムステップの内部には、表形式プログラム３００へのリンク情報のみを格納し、対応する表形式プログラム３００は、別の場所に存在することもある。
【００４２】
検査装置のプログラミングツール５００は、フローチャートと、フローチャートの１つのステップの中に組み込まれる表形式プログラム３００とのリンク情報を保持しているため、フローチャートの中で、内容を確認したいステップを選択すると、その内容を新たなウインドウを開いて表示する。
【００４３】
フローチャート上で、表形式プログラム３００が組み込まれているステップを選択した場合は、表形式プログラム３００の編集画面が新たなウインドウ上に表示される。検査工程を示すプログラムが階層化されているため、フローチャートでは検査工程の全体の処理の流れを確認することができる。また、各工程での検査内容及び検査後の処理の詳細については、フローチャートの一つのステップ内に記述されている表形式プログラム３００によって、その内容を確認することができる。
【００４４】
プログラミングツール５００は、フローチャートと表形式プログラム３００のリンク情報だけではなく、フローチャートのステップの中に記述できるラダーやファンクションブロックもリンク情報を管理することができる。プログラミングツール５００上で、ラダーやファンクションブロックが組み込まれたステップを選択した場合、ラダーであればラダーを編集するウインドウを、ファンクションブロックであればファンクションブロックを編集するウインドウを開いて表示する。
【００４５】
このように検査対象４０１を検査する際の処理の流れをフローチャートによってグラフィカルに表現し、個々の検査対象４０１に対する合否判定基準と合否判定後の処理の内容を表形式プログラム３００によって分かりやすく表現することで、検査工程の処理を、可読性が高く、メンテナンス性に優れたプログラムとして表現することができる。
【００４６】
また、検査工程の流れがフローチャートでグラフィカルに表現されているため、そのまま検査工程の流れを示すドキュメントとして利用することができる。また、合否判定の判定基準値が表形式プログラム３００で表現されているため、表形式プログラム３００をそのまま検査の規格表として利用することができる。また、検査装置のプログラミングツール５００上では、フローチャートと表形式プログラム３００のリンク情報が保持されており、フローチャート上で表形式プログラム３００が記述されているステップを選択すると、該当ステップに記述されている表形式プログラム３００を参照できるため、フローチャートと表形式プログラム３００の組合せを、検査工程のドキュメントとしてそのまま利用することができる。
【００４７】
次に、この発明の実施の形態による検査プログラムの実行について説明する。プログラムの実行は、図７の搬入処理ステップ７００から始まる。搬入処理ステップ７００では、搬入動作を記述したラダーを実行する。検査対象４０１の検査ステーション４０３への搬入処理が終了すると、搬入処理が終了したことを示すフラグを立てて、次のステップへ移行する。
【００４８】
検査処理ステップ７０１では、表形式プログラム３００を実行する。実行する表形式プログラム３００を指定して、表形式プログラム実行手段２０３を起動し、検査を実施する。指定した表形式プログラム３００の処理をすべて終えると、検査処理ステップ７０１を終了したことを示すフラグを立てて、次のステップへ移行する。
【００４９】
搬出処理ステップ７０２では、搬出動作を記述したラダーを実行する。検査対象４０１を検査ステーション４０３から搬出し終えると、搬出処理が終了したことを示すフラグを立て、終了する。
【００５０】
これまでは、一つの検査対象４０１について、検査装置４００の処理の流れを順に述べたが、フローチャート実行手段２０２と表形式プログラム実行手段２０３とラダー実行手段２０５は、それぞれオペレーティングシステム上で並列に動作するタスクとして実装することで、並列に処理を進めることができる。搬入処理をしながら、同時に検査を実施し、さらに検査を終えた検査対象４０１の搬出処理を同時に行うことができる。
【００５１】
上記動作を図８のフローチャートを用いてさらに詳しく説明する。フローチャート実行手段２０２は、実行を開始するとプログラム保持手段２０１から検査プログラムを読み出し、そのフローチャートの先頭から１ステップ読み出す（ステップ８００）。そのステップが分岐を示すステップかを判断する（ステップ８０１）。分岐を示すステップである場合は、分岐先のステップへ移行し（ステップ８０２）、処理の先頭へ戻る。分岐を示すステップではない場合は、ステップの内容が表形式プログラム３００かを判断する（ステップ８０３）。
【００５２】
ステップの内容が表形式プログラム３００の場合は、実行する表形式プログラム３００を指定して、表形式プログラム実行手段２０３を起動する（ステップ８０４）。表形式プログラム３００の実行を終えると、処理の先頭へ戻る。表形式プログラム３００ではない場合は、ステップの内容がラダーかを判断する（ステップ８０５）。ラダーの場合は、ラダー実行手段２０５を起動する（ステップ８０６）。ラダーではない場合は、ステップの内容がファンクションブロックかを判断する（ステップ８０７）。ファンクションブロックの場合は、ファンクションブロック実行手段２０４を起動する（ステップ８０８）。フローチャート終了の場合は、処理を終了する（ステップ８０９）。
【００５３】
表形式プログラム実行手段２０３の動作を図９を用いて説明する。表形式プログラム実行手段２０３は、フローチャート実行手段２０２が指定した表形式プログラム３００をプログラム保持手段２０１から読み出すことから開始し、表形式プログラム３００から１行読み出す（ステップ９００）。表形式プログラム実行手段２０３は、読み出した１行をさらに１データずつに分割し、１データずつ順に処理を進める。
【００５４】
そして、まず、データが計測条件であるかを判定し（ステップ９０１）、データが計測条件である場合は、データ保持手段２０６にその値を出力する（ステップ９０２）。このとき、データがウエイト（待ち）であるかを判定し、データがウエイトである場合は、指定された待ち時間だけ、処理を停止し、ＣＰＵリソースを他のタスクに回す。指定時間が経過すると、次のデータへ進む。
【００５５】
次に、データが計測対象であるかを判定し（ステップ９０３）、データが計測対象である場合は、対象となる値をデータ保持手段２０６から読み出す（ステップ９０４）。
【００５６】
次に、データが判定基準であるかを判定し（ステップ９０５）、データが判定基準の場合は、データ保持手段２０６から読み出した値と判定基準値を比較する（ステップ９０６）。比較するステップでは、データ保持手段２０６から読み出した値と最小値を示すデータを比較し、データ保持手段２０６から読み出した値が最小値を示すデータより大きい場合は、続けて最大値を示すデータと比較する。その結果、データ保持手段２０６から読み出した値が最小値と最大値の間に入っている場合は、合否判定結果を合格（ＯＫ）とする。一方、データ保持手段２０６から読み出した値が最小値を下回っていたり、最小値より大きいものの、最大値をも超えている場合は、不合格（ＮＧ）と判定する。また、最小値欄３０９、最大値欄３１０にデータの記述がなく、一致比較にのみデータが記述されている場合は、データ保持手段２０６から読み出した値と一致比較欄３１１の値と一致するかを確認し、一致する場合は、合格（ＯＫ）と判定し、一致しない場合は、不合格（ＮＧ）と判定する。
【００５７】
次に、上記判定結果が合格（ＯＫ）であるかを判定し（ステップ９０７）、判定結果が合格（ＯＫ）の場合は、ＯＫ欄３１２に記述されている処理を行い（ステップ９０８）、ＮＧ欄３１３に記述されている処理は行わず、次の行を１行読み出す。また、判定結果が不合格（ＮＧ）であるかを判定し（ステップ９０９）、判定結果が不合格（ＮＧ）の場合は、ＯＫ欄３１２に記述されている処理は行わず、ＮＧ欄３１３に記述されている処理を行う（ステップ９１０）。ＮＧ欄３１３の記述内容を処理した後は、次の行を１行読み出す。表形式プログラム３００の最後の行の判定後処理の実行を終えた時点で、表形式プログラム３００の実行を終了し（ステップ９１２）、表形式ステップから抜け、フローチャートの次のステップへ移行する。
【００５８】
実施の形態２．
図１０は、検査の流れを記述するフローチャートに分岐が含まれる場合の実施の形態である。検査対象４０１として製品Ａと製品Ｂの２種類存在し、それぞれ、表形式プログラムＡと表形式プログラムＢで検査する場合を示している。検査対象４０１が製品Ａであるかの判定を、図１０に示した分岐の判定を行うステップで判定する（ステップ１０００）。検査対象４０１が製品Ａの場合は、表形式プログラムＡが含まれるステップへ移行し、表形式プログラムＡを起動して、検査を実施する（ステップ１００１）。また、検査対象４０１が製品Ａではない場合は、表形式プログラムＢが含まれるステップへ移行し、表形式プログラムＢを起動して、検査を実施する（ステップ１００２）。その後、搬出処理を実施する（ステップ７０２）。
【００５９】
すなわち、検査の上位工程をフローチャートで記述し、フローチャートの中で検査を実施するステップの内部を表形式プログラム３００で記述している。
【００６０】
表形式プログラム３００だけでは、表現可能な動作に制約があるため、多品種への対応が困難である。また、検査対象４０１の品種に応じて表形式プログラム３００内で分岐やジャンプを記述すると、検査内容がわかりやすい表形式プログラム３００として記述した検査プログラムの可読性が悪くなる。そこで、実施の形態２で示すように、検査対象４０１の品種による検査内容の切り換えを、検査工程の流れを示すフローチャートで記述することで、可読性に優れ、検査工程のドキュメントとしてそのまま利用できる検査プログラムを記述することができる。また、検査対象４０１の品種毎に合否判定基準の値を並べた表形式プログラム３００を記述することで、表形式プログラム３００を検査対象毎の合否判定の判定基準値をまとめた規格表のドキュメントとしてそのまま利用することが出来る。
【００６１】
また、検査装置のプログラミングツール５００上では、フローチャートと表形式プログラム３００のリンク情報が保持されており、フローチャート上で表形式プログラム３００が記述されているステップを選択すると、該当ステップに記述されている表形式プログラム３００を参照できるため、フローチャートと表形式プログラム３００の組合せを、検査工程のドキュメントとしてそのまま利用することができる。
【００６２】
実施の形態３．
図１１は、検査対象４０１として製品Ａと製品Ｂの２種類存在し、それぞれ、表形式プログラムＡと表形式プログラムＢで検査するが、その後、共通する処理を表形式プログラムＣで実施する例である。検査対象４０１が製品Ａであるかの判定を、図１１に示した分岐の判定を行うステップで判定する（ステップ１０００）。検査対象４０１が製品Ａの場合は、表形式プログラムＡが含まれるステップへ移行し、表形式プログラムＡを起動して、検査を実施する（ステップ１００１）。また、検査対象４０１が製品Ａではない場合は、表形式プログラムＢが含まれるステップへ移行し、表形式プログラムＢを起動して、検査を実施する（ステップ１００２）。その後、共通の検査項目である表形式プログラムＣを起動して検査を実施する（ステップ１１００）。そして、搬出処理を実施する（ステップ７０２）。
【００６３】
すなわち、検査の上位工程をフローチャートで記述し、検査の上位工程では、検査対象４０１の品種を特定し、対象に応じた検査プログラムを実行すると共に、品種に関わらず実施する共通の検査に関しては、実行するプログラムを検査の上位工程で１つに集約して記述している。
【００６４】
実施の形態３に示したように、検査の品種による検査内容の切り換えと、複数の品種で共通する処理をまとめて１つの工程として扱う検査工程の流れをフローチャートで記述することで、可読性に優れ、検査工程のドキュメントとしてそのまま利用できる検査プログラムを記述することができる。また、検査対象４０１の品種毎に合否判定基準の値を並べた表形式プログラム３００を記述し、また、共通する項目の合否判定基準を並べた表形式プログラム３００を記述することで、表形式プログラム３００を検査対象毎の合否判定の判定基準値をまとめた規格表のドキュメントとしてそのまま利用することが出来る。
【００６５】
また、検査装置のプログラミングツール５００上では、フローチャートと表形式プログラム３００のリンク情報が保持されており、フローチャート上で表形式プログラム３００が記述されているステップを選択すると、該当ステップに記述されている表形式プログラム３００を参照できるため、フローチャートと表形式プログラム３００の組合せを、検査工程のドキュメントとしてそのまま利用することができる。
【００６６】
実施の形態４．
図１２は、表形式プログラム３００の記述例である。表形式プログラム３００にはＯＫ欄３１２、ＮＧ欄３１３があり、表形式プログラム３００の該当ステップの合否判定結果に応じて、ＯＫ欄３１２、ＮＧ欄３１３に記述された処理を実行する。ＯＫ欄３１２、ＮＧ欄３１３には、指定ステップへのジャンプ命令１２００や、ソフトウェアオブジェクトを呼び出す命令１２０１を記述して、表形式プログラム３００をはじめとした他のプログラム言語で作成したソフトウェアオブジェクトを呼び出すことができる。
【００６７】
計測するための条件を設定するだけで、基準値との比較をしないので合否判定結果が無いステップでは、ＯＫ欄３１２に記述されている処理を実行する。またＯＫ欄３１２、ＮＧ欄３１３の他に未判定欄を設け、合否判定結果が無い場合は、この未判定欄に記述されている処理を実行することもできる。
【００６８】
実施の形態５．
図１３は、表形式プログラム３００の判定基準設定部３１６に関数やスクリプトを記述し、また、判定後処理設定部３１７にスクリプトを記述した例である。最小値欄３０９や最大値欄３１０や一致比較欄３１１からなる判定基準設定部３１６では、関数を使用することができる。使用できる関数には、ＡとＢの２つの変数の中で小さい方の値をとるＭＩＮ（Ａ、Ｂ）１３００や、条件Ｃが有効な場合に変数Ａを判定基準値とし、無効な場合に変数Ｂを判定基準値とする関数１３０１などがあり、スクリプトによる記述１３０２では、四則演算などを用いて、定数に変数Ａをオフセットとして加えることができる。温度、湿度、圧力などのセンサ入力に対して、オフセットを加えて補正した値を判定基準値とする場合に使用することができる。
【００６９】
判定後処理設定部３１７では、スクリプトを記述するこができる。例えば、判定結果がＮＧの場合に、特定の変数の値を操作するスクリプト１３０３など、判定結果に応じて変数の値を調整する場合に使用することができる。
【００７０】
実施の形態６．
図１４は、ファンクションブロックの中に表形式プログラム３００を記述する例である。表形式ファンクションブロック１４００は、表形式プログラム３００の処理結果に応じて、出力先を変更することができる。
【００７１】
表形式プログラム３００で記述された検査プログラムを実行した結果に応じて表形式プログラム３００を実行する表形式ファンクションブロック１４００の出力を設定できる。つまりファンクションブロックの内部処理をストラクチャード・テキストやインストラクション・リストのみならず、検査プログラムの記述に最適な表形式でプログラミングすることが可能となる。
【００７２】
図１５は、表形式プログラム３００の判定後処理欄に、表形式ファンクションブロック１４００から出力するピンを指定する例を示している。ステップ１において、判定結果が１であれば、ピン番号Ｐ１１５００の出力先に１を出力する。
【００７３】
実施の形態７．
図１６は、検査した結果１６０２を、ロット番号１６０１とともに一覧にした履歴表示画面１６００の例である。
【００７４】
検査装置４００は、操作手段２０９からの操作で、この表を表示手段２１０によって表示することができる。検査の結果、ＮＧと判定された部分１６０２は、太字や赤色で表示することで、他の部分に比べ目立つように表示することもできる。
【００７５】
また、この画面上でカーソルを移動してロット番号１６０１を選択することで、図１７に示すように、その検査を行った際の表形式プログラム３００の各ステップでの判定基準値及び計測した値１７０２を、詳細履歴表示画面１７００として一覧表の形で表示することができる。また、結果がＮＧと判定されたステップ１７０１の表示は、太字や赤色で表示することで、他の部分に比べ目立つように表示することもできる。
【００７６】
実施の形態８．
表形式プログラム３００中の各項目においては、タグを記述することができる。タグとは、検査装置４００が持つデバイスに対して付与する任意の名称である。タグを用いてプログラミングすることで、入出力デバイスをプログラムで記述する際に、検査装置４００が持つ入出力デバイスの名前そのままではなく、ユーザ独自の分かりやすい名称に置き換えてプログラミングすることができ、プログラムを可読性良くすることができる。また、一旦記述したプログラムを変更することなく、タグの対応先のデバイスを変更するだけで、異なる検査装置４００において同じプログラムを再利用することが可能になり、プログラムの再利用性が向上する。
【００７７】
さらに、実行プログラム２１０１を実行する際にその都度タグからデバイスを取得する実行形態の場合には、タグの対応先のデバイスを変更する作業をコード生成手段ではなく、検査装置４００上で行うことができるため、いちいちプログラムを検査装置４００に送り直す手間を省くことができる。表形式プログラム３００を作成する際の手順を図１８に示す。プログラマは先ず、タグ編集手段１８００を用いて、検査装置４００が持つデバイスに対してタグを付与し、例えばタグテーブル１８０１の形態で、保持される。次に、プログラマが表形式プログラムエディタ５０２を用いて表形式プログラム３００を作成する際に、検査装置４００が持つデバイスの名前を入力する代わりに、先に付与しておいたタグを入力する。
【００７８】
表形式プログラム３００を作成する際の、さらに別の手順を図１９に示す。プログラマは先ず、タグ編集手段１８００を用いて、検査装置４００が持つデバイスに対してタグを付与し、例えばタグテーブル１８０１の形態で、保持される。次に、プログラマが表形式プログラムエディタ５０２を用いて表形式プログラム３００を作成する際に、表形式プログラムエディタ５０２は、タグテーブル１８０１の情報を参照して、プログラム入力の候補となるべきタグの一覧２０００を呈示する。この様子を図２０に示す。プログラマは、呈示されたタグの一覧２０００から、所望のタグを選択することで、表形式プログラム３００を作成してゆく。
【００７９】
作成した表形式プログラム３００を、検査装置４００で実行するまでの手順を図２１に示す。作成した表形式プログラム３００を、コード生成手段２１００を用いて実行プログラム２１０１へ変換する際に、プログラムに記述されているタグは、タグテーブル１８０１の情報に基づいて、デバイスへ置き換えられる。すなわち、プログラム上のタグは、実行プログラム２１０１ではデバイスに置き換わっている。次に、検査装置４００へ、実行プログラム２１０１が送られる。その後、検査装置４００は、実行プログラム２１０１を実行する。
【００８０】
作成した表形式プログラム３００を、検査装置４００で実行するまでの、さらに別の手順を図２２に示す。作成した表形式プログラム３００を、コード生成手段２１００を用いて実行プログラム２１０１へ変換する際に、プログラムに記述されているタグは、そのままタグとして実行プログラム２１０１に残る。次に、検査装置４００へは、実行プログラム２１０１と一緒にタグテーブル１８０１も送られる。そして、検査装置４００が実行プログラム２１０１を実行する際に、タグがあった場合には、その都度、タグテーブル１８０１を参照し、タグに対応するデバイスを取得して、そのデバイスへアクセスする。
【図面の簡単な説明】
【００８１】
【図１】この発明の実施の形態１による検査装置のハードウェア構成を示すブロック図である。
【図２】この発明の実施の形態１による検査装置の機能を説明するためのブロック図である。
【図３】この発明の実施の形態１による検査装置に使用される表形式プログラムの例を示す図である。
【図４】この発明の実施の形態１による検査装置の適用例を示す概要図である。
【図５】この発明の実施の形態１による検査プログラムのプログラミングツールの例を示す図である。
【図６】この発明の実施の形態１による検査プログラムのプログラミングツールの他の例を示す図である。
【図７】この発明の実施の形態１による検査プログラムの実行を説明するための図である。
【図８】この発明の実施の形態１によるフローチャート実行手段（図２）の動作を説明するフローチャートである。
【図９】この発明の実施の形態１による表形式プログラム実行手段（図２）の動作を説明するフローチャートである。
【図１０】この発明の実施の形態２による分岐を有する検査プログラムを示すフローチャートである。
【図１１】この発明の実施の形態３による分岐と合流を有する検査プログラムを示すフローチャートである。
【図１２】この発明の実施の形態４による表形式プログラムを示す図である。
【図１３】この発明の実施の形態５による表形式プログラムを示す図である。
【図１４】この発明の実施の形態６によるフローチャートの代わりにファンクションブロックを用いた場合の検査プログラムを示す図である。
【図１５】この発明の実施の形態６によるファンクションブロックの出力を記述した表形式プログラムを示す図である。
【図１６】この発明の実施の形態７による履歴表示画面の例を示す図である。
【図１７】この発明の実施の形態７による詳細な履歴表示画面の例を示す図である。
【図１８】この発明の実施の形態８による表形式プログラム作成の手順を示す図である。
【図１９】この発明の実施の形態８による表形式プログラムを作成する他の手順を示す図である。
【図２０】この発明の実施の形態８による表形式プログラム作成時に入力の候補となるタグ一覧を呈示する図である。
【図２１】この発明の実施の形態８により作成した表形式プログラムを検査装置で実行する手順を示す図である。
【図２２】この発明の実施の形態８により作成した表形式プログラムを検査装置で実行する他の手順を示す図である。
【符号の説明】
【００８２】
２００  プログラム作成手段
２０１  プログラム保持手段
２０２  フローチャート実行手段
２０３  表形式プログラム実行手段
２０４  ファンクションブロック実行手段
２０５  ラダー実行手段
２０６  データ保持手段
２０７  入力手段
２０８  出力手段
２０９  操作手段
２１０  表示手段
２１１  検査履歴保持手段
３００  表形式プログラム
３１４  計測条件設定部
３１５  計測対象設定部
３１６  判定基準設定部
３１７  判定後処理設定部
４００  検査装置
４０１  検査対象
５００  プログラミングツール
５０１  フローチャートエディタ
５０２  表形式プログラムエディタ
１４００  表形式ファンクションブロック
１８００  タグ編集手段
１８０１  タグテーブル
２１００  コード生成手段
２１０１  実行プログラム
【図１】
2005078130.tif 000003
【図２】
2005078130.tif 000004
【図３】
2005078130.tif 000005
【図４】
2005078130.tif 000006
【図５】
2005078130.tif 000007
【図６】
2005078130.tif 000008
【図７】
2005078130.tif 000009
【図８】
2005078130.tif 000010
【図９】
2005078130.tif 000011
【図１０】
2005078130.tif 000012
【図１１】
2005078130.tif 000013
【図１２】
2005078130.tif 000014
【図１３】
2005078130.tif 000015
【図１４】
2005078130.tif 000016
【図１５】
2005078130.tif 000017
【図１６】
2005078130.tif 000018
【図１７】
2005078130.tif 000019
【図１８】
2005078130.tif 000020
【図１９】
2005078130.tif 000021
【図２０】
2005078130.tif 000022
【図２１】
2005078130.tif 000023
【図２２】
2005078130.tif 000024