本発明の対基板作業装置の実施形態について図面を参照しながら以下に説明する。図1は対基板作業装置の一例である部品実装機10を含む対基板作業システム1の構成の概略を示す構成図、図2は基板搬送装置20および基板保持装置30の概略構成図、図3は基板保持装置30が基板Sを保持する様子を示す説明図、図4は制御装置70の電気的な接続関係を示す説明図である。図3(a)は基板保持装置30が基板Sを保持していない状態を示し、図3(b)は基板保持装置30が基板Sを保持している状態を示す。本実施形態において、上下方向(Z軸方向),左右方向(X軸方向)及び前後方向(Y軸方向)は、図1,2に示した通りとする。
対基板作業システム1は、図1に示すように、部品実装機10と、部品実装機10を管理する管理装置80と、を備える。対基板作業システム1は、部品Pを基板Sに実装する複数台の部品実装機10が基板Sの搬送方向(X軸方向)に沿って配置されている。図1では、説明の便宜のため部品実装機10を1台のみ示している。なお、対基板作業システム1は、部品実装機10と同じ実装ライン上にはんだ印刷機や検査機、リフロー炉などを備えるものとしてもよい。
部品実装機10は、図1に示すように、基台11と、筐体12と、部品供給装置15と、基板搬送装置20と、基板保持装置30と、XYロボット40と、実装ヘッド50と、マークカメラ55と、パーツカメラ58と、測距センサ60と、制御装置70(図4参照)とを備えている。部品供給装置15は基台11に対して着脱可能に配設されている。基板搬送装置20及び基板保持装置30は基台11上部に配置された支持台14上に配設されている。
部品供給装置15は、部品Pを部品供給位置まで供給する装置であり、本実施形態ではテープフィーダとして構成されている。部品供給装置15は、所定間隔毎に形成された収容部に部品Pが収容されたテープをリールから引き出してピッチ送りすることで、部品Pを部品供給位置に供給する。
基板搬送装置20は、基板Sを上流から下流に向けて(例えば左から右に向けて)搬送する装置である。基板搬送装置20は、図2に示すように、コンベアベルト24により基板Sを搬送するベルトコンベア装置として構成されている。基板搬送装置20は、Y軸方向に所定の間隔を隔てて配置された一対のサイドフレーム22と、一対のサイドフレーム22の各々に設けられたコンベアベルト24と、コンベアベルト24を周回駆動するベルト駆動装置26(図4参照)とを備える。基板Sは、コンベアベルト24に乗せられた状態で、ベルト駆動装置26がコンベアベルト24を周回駆動することによりX軸方向に搬送される。一対のサイドフレーム22の各々は、X軸方向に並ぶ2本の支持柱21により支持されている。一対のサイドフレーム22のうち一方(後側のサイドフレーム22)を支持する2本の支持柱21の各々の下端部には、スライダ28が取り付けられている。このスライダ28は、支持台14にY軸方向に沿って設けられたガイドレール27上を移動可能に構成されている。そのため、スライダ28により2本の支持柱21を移動させて一対のサイドフレーム22のY軸方向の間隔を調整することで、異なるサイズの基板Sを搬送できるようになっている。
基板保持装置30は、コンベアベルト24上に配置された基板Sを保持する装置であり、本実施形態では基板Sをクランプして保持するクランプ装置として構成されている。基板保持装置30は、一対の基板押さえプレート32と、一対のクランパ34と、支持プレート35と、昇降装置36とを備える。一対の基板押さえプレート32は、一対のサイドフレーム22の上端部に各々設けられている。一対のクランパ34は、一対の基板押さえプレート32の各々の下方に配置されている。一対のクランパ34の各々の下端面には、下方に突出する突出部34aが設けられている。支持プレート35は、一対のクランパ34の下方に配置された板状部材である。支持プレート35は昇降装置36によって昇降する。支持プレート35が上昇すると、支持プレート35の上面がクランパ34の突出部34aに当接して、クランパ34を押し上げる。支持プレート35には、基板Sがクランプされたときに基板Sの下面を支持するための複数(本実施形態では6本)の支持ピン35aが配設されている。昇降装置36は、支持台14と支持プレート35との間に配置され、支持プレート35を介して一対のクランパ34を昇降させる。基板Sがコンベアベルト24上に載せられている状態(図3(a))で、昇降装置36が一対のクランパ34を上昇させると、基板Sは一対のクランパ34に押し上げられて基板押さえプレート32の下面に押し付けられる(図3(b))。これにより、基板保持装置30は、基板Sの前後両端の縁部の各々を2つの部材(基板押さえプレート32及びクランパ34)で上下から挟んで保持する。
XYロボット40は、実装ヘッド50,マークカメラ55及び測距センサ60をXY方向に移動させる装置である。XYロボット40は、図1に示すように、前後方向(Y軸方向)に沿って設けられた左右一対のY軸ガイドレール43と、左右一対のY軸ガイドレール43に架け渡されY軸ガイドレール43に沿ってY軸方向に移動が可能なY軸スライダ44とを備える。また、XYロボット40は、Y軸スライダ44の側面に左右方向(X軸方向)に沿って設けられたX軸ガイドレール41と、X軸ガイドレール41に沿ってX軸方向に移動が可能なX軸スライダ42と、を備える。X軸スライダ42は、X軸モータ46(図4参照)の駆動によって移動可能であり、Y軸スライダ44は、Y軸モータ48(図4参照)の駆動によって移動可能である。X軸スライダ42には実装ヘッド50が取り付けられており、実装ヘッド50は、制御装置70によってXYロボット40(X軸モータ46およびY軸モータ48)が駆動制御されることにより、XY方向に移動する。XYロボット40は、X軸スライダ42のX軸方向の位置を検出するX軸位置センサ47(図4参照)と、Y軸スライダ44のY軸方向の位置を検出するY軸位置センサ49(図4参照)とを備えている。
実装ヘッド50は、基板Sに対して対基板作業を行う作業部の一例であり、部品供給装置15から供給された部品Pを吸着ノズル51で吸着(採取)して基板S上に実装する装置である。実装ヘッド50は、X軸スライダ42に取り外し可能に装着されており、XYロボット40によりXY方向へ移動する。実装ヘッド50は、吸着ノズル51と、Z軸モータ52と、Z軸位置センサ53(図4参照)とを備える。吸着ノズル51は、実装ヘッド50の下面に取り外し可能に装着されている。本実施形態では実装ヘッド50には1つの吸着ノズル51が取り付けられているが、複数の吸着ノズル51が取り付け可能であってもよい。吸着ノズル51は、負圧を利用して部品Pを採取する採取部材である。Z軸モータ52は、Z軸に沿って吸着ノズル51を昇降させる機構であり、これにより吸着ノズル51及び吸着ノズル51に吸着された部品Pの高さが調整される。Z軸位置センサ53は、吸着ノズル51のZ軸方向の位置を検出する。また、実装ヘッド50は、図示しない駆動モータによって吸着ノズル51を回転(自転)させる回転装置を備え、吸着ノズル51に保持(吸着)された部品Pの角度を調整可能となっている。
マークカメラ55は、基板Sに付された図示しない基準マークを上方から撮像するための装置である。マークカメラ55は実装ヘッド50の下面に配設されており、実装ヘッド50の移動に伴ってXY方向へ移動する。
パーツカメラ58は、基板搬送装置20の前方に配置されている。パーツカメラ58の撮像範囲は、パーツカメラ58の上方である。部品Pを吸着した吸着ノズル51がパーツカメラ58の上方を通過する際、パーツカメラ58は吸着ノズル51に吸着された部品Pを下方から撮像する。
測距センサ60は、基板Sの高さ(Z軸方向の位置)である基板高さを測定する装置である。基板高さは、基板Sの上面の高さである。測距センサ60は実装ヘッド50の下面に配設されており、実装ヘッド50の移動に伴ってXY方向へ移動する。測距センサ60は、本実施形態ではレーザー高さセンサとして構成されており、図1の吹き出し部に示すように、レーザー光を下方に照射する照射部61と、基板Sで反射された後のレーザー光を受光する検出部62とを備える。照射部61が下方に配置された基板Sに向かってレーザー光を斜め下方向に照射すると、レーザー光は基板Sの上面で反射し、反射したレーザー光が検出部62に入射する。このとき、図1の吹き出し部に実線及び破線で示したように、基板Sの上面の位置に応じて反射光の光路(矢印で図示)は変化する。検出部62は、この光路の違いによるレーザー光の入射位置の違いに基づいて測距センサ60と基板Sの上面とのZ軸方向の距離を検出し、検出した距離に基づいて基板高さを測定する。なお、基板高さは、測距センサ60と基板Sの上面とのZ軸方向の距離としてもよいし、この距離に基づいて導出される所定の高さを基準とした値としてもよい。
制御装置70は、部品実装機10全体を制御する装置である。制御装置70は、図4に示すように、CPU71と、ROM72と、HDD73と、RAM74と、入出力インタフェース75とを備える。これらはバス76を介して電気的に接続されている。制御装置70には、X軸位置センサ47及びY軸位置センサ49からの検出信号、Z軸位置センサ53からの検出信号、マークカメラ55及びパーツカメラ58からの画像信号、及び測距センサ60からの検出信号などが入出力インタフェース75を介して入力される。また、制御装置70からは、部品供給装置15への制御信号、基板搬送装置20及び基板保持装置30への制御信号、XYロボット40(X軸モータ46およびY軸モータ48)への駆動信号、実装ヘッド50への駆動信号、マークカメラ55及びパーツカメラ58への駆動信号、測距センサ60への駆動信号などが入出力インタフェース75を介して出力される。また、制御装置70は、管理装置80と双方向通信可能に接続されており、互いにデータや制御信号のやり取りを行っている。
管理装置80は、対基板作業システム1全体を管理する装置である。管理装置80は、CPUやROM,RAM,及びHDDなどを備えて構成され、キーボードやマウスなどの入力デバイス82と、LCDなどのディスプレイ83とを備える。管理装置80は、基板Sの生産プログラムなどを記憶している。基板Sの生産プログラムには、どの基板Sのどの位置にどの順序でどの部品Pを実装するかの情報、及びそのように実装した基板Sを何枚作製するかの情報などを含んでいる。また、生産プログラムには、部品Pの高さ(厚さ)に関する情報も含まれている。
次に、こうして構成された本実施形態の部品実装機10の動作、特に、基板高さの測定を伴って部品Pを基板Sに実装する処理について説明する。図5は、制御装置70のCPU71により実行される部品実装処理ルーチンの一例を示すフローチャートである。図6は、測距センサ60の走査ラインL1〜L3を示す説明図である。図7は、基板高さ仮データから基板高さデータを導出する様子を示す概念図である。図7(a)は取得された基板高さ仮データの概念図、図7(b)は立ち上がり部分のデータR及び立ち下がり部分のデータFを示す概念図、図7(c)は立ち上がり部分のデータR,立ち下がり部分のデータF及びその間の部分のデータを除外した様子を示す概念図、図7(d)はデータD1を除外した様子を示す概念図である。図5の部品実装処理ルーチンは例えばHDD73に記憶されている。部品実装処理は、例えば管理装置80から指令を受信するとCPU71により実行される。
部品実装処理を開始すると、CPU71は、まず、基板Sを搬入するよう基板搬送装置20を制御し、搬入された基板Sをクランプして固定するよう基板保持装置30を制御する(ステップS100)。図6は、クランプされた状態での基板Sの上面の一例を示している。図6では図示を省略しているが、基板Sの上面には、異物が存在する場合がある。異物の例としては、例えば基板Sをクランプしている部品実装機10(自装置)の上流の部品実装機10(他装置)が基板Sに実装した部品Pや、自装置の上流のはんだ印刷機で印刷された複数のはんだなどが挙げられる。
続いて、CPU71は、基板S上を走査して複数の基板高さ仮データを取得するよう測距センサ60を制御する(ステップS110)。ステップS110では、CPU71は、まず、マークカメラ55を基板S上に移動させて基板Sを撮像させ、得られた画像に基づいて基板Sの基準マークの位置を検出する。続いて、CPU71は、検出した基準マークの位置に基づいて基板Sの位置を認識する。そして、CPU71は、予め定められた走査ラインに沿って基板Sの上方を測距センサ60が移動するようXYロボット40を制御し、測距センサ60に基板Sの基板高さを複数回測定させる。この測定により、CPU71は複数の基板高さ仮データを取得して、例えばRAM74に記憶する。複数の基板高さ仮データは、後述する複数の基板高さデータの元となるデータである。本実施形態では、複数の基板高さ仮データの各々は、基板高さの値と測定位置(例えばXY座標)とが対応付けられたデータとした。基板S上の走査ラインの位置は、例えばCPU71が管理装置80から取得する生産プログラムに含まれていてもよいし、予めHDD73に記憶されていてもよい。本実施形態では、図6に示すように、CPU71は、所定方向(ここでは左右方向)に沿った走査を基板S上の位置を変えて複数回(ここでは走査ラインL1〜L3の3回)行うようXYロボット40及び測距センサ60を制御する。図6の走査ラインL1〜L3は、いずれも左右方向に平行な直線とした。走査ラインL2は、基板Sの前後方向の中央を通る直線とした。走査ラインL1,L3は、走査ラインL2を対称軸として前後対称な直線とした。また、図6に示すように、測距センサ60はジグザグに移動しながら基板S上を走査していくものとした。そのため、走査ラインL1,L3における走査方向は左方向であり、走査ラインL2における走査方向は右方向である。本実施形態では、CPU71は、測距センサ60が走査ラインL1〜L3上を停止することなく移動するようXYロボット40を制御して、移動中に前記複数の基板高さ仮データを連続的に取得するよう測距センサ60を制御する。また、測距センサ60が基板S上を走査する際の基板高さの測定の周期(例えば時間又は距離の周期)は、例えば後述するステップS120で基板上の突出した部分とみなせるデータを適切に除外するために必要な間隔として、予め定められている。本実施形態では、測距センサ60は2msecの測定周期で基板S上を走査していくものとした。
ステップS110を行うことで、本実施形態ではCPU71は走査ラインL1〜L3の各々について複数の基板高さ仮データを取得する。図7(a)は走査ラインL2上の走査で得られた基板高さ仮データの一例を示す概念図である。図7(a)では、横軸が測定位置(ここではX座標)を表しており、縦軸が測定された基板高さの値を表している。図7(a)では複数の基板高さ仮データを線(波形)で示しているが、この線は実際には複数の点(1つの基板高さ仮データ)の集合である。ここで、基板S上には上述したように部品Pやはんだなどの異物が存在する場合があり、走査ライン上に異物があると測距センサ60は異物の上面の高さを基板高さとして測定してしまう。この場合、図7(a)に示すように基板高さ仮データも基板S上の異物を反映した波形になる。また、図7(a)では基板Sが全体として上に凸の形状に反った場合の波形を示している。図7(a)では位置x1〜x2間の基板高さ仮データが存在しないが、これは例えば基板S上のスルーホールなどの貫通孔の部分を測定した場合の例である。貫通孔の存在する部分では照射部61からのレーザー光が検出部62に到達せず基板高さが測定不能又は異常な値となる場合があるが、このようなデータはCPU71が基板高さ仮データから除外しておけばよい。
ステップS110で複数の基板高さ仮データを取得すると、CPU71は、取得された複数の基板高さ仮データのうち基板S上の突出した部分とみなせるデータを除外して、除外後の複数の基板高さ仮データを複数の基板高さデータとして取得する処理を行う(ステップS120)。すなわち、このステップS120では、CPU71は、複数の基板高さ仮データのうち基板S上の突出した部分とみなせるデータを特定して、そのデータは異物上の高さを測定したデータである可能性が高いことから基板高さの測定値として採用しないように除外する。
ステップS120では、CPU71は例えば以下のステップS125〜S145を行う。以下では、図7(a)に示した走査ラインL2における複数の基板高さ仮データに対してステップS120を行う場合について主に説明する。まず、CPU71は、走査方向(ここでは右方向)に対する基板高さの傾きが所定の正の急峻範囲に含まれる立ち上がり部分のデータ(ここでは図7(b)のデータR1〜R7)を特定する(ステップS125)。正の急峻範囲は、例えば基板Sの反りに起因する基板高さの値の傾きや、後述するステップS190での実装高さの導出に影響しないような基板S上の微小な凹凸などに起因する基板高さの値の傾きよりも傾きが大きい範囲として定められている。また、正の急峻範囲は、基板S上の部品やはんだなどの異物に起因する基板高さの値の傾きを含むような範囲として定められている。このような正の急峻範囲は、予め実験などにより定めておくことができる。また、図7(a)の例では、走査方向は右方向であるから、右方向に進むほど基板高さが高くなるような傾きを正の傾きとする。そのため、図7(a)で左下から右上に向かい且つ傾きが急峻な部分のデータR1〜R7が、立ち上がり部分のデータとして特定される。データR1〜R7をデータRと総称する。ある基板高さ仮データについての基板高さの値の傾きは、例えばそのデータに隣接している基板高さ仮データとの間の傾きとして導出してもよいし、そのデータから所定数(例えば2個分、3個分など)だけ離れた基板高さ仮データとの間の傾きとして導出してもよい。
続いて、CPU71は、走査方向(ここでは右方向)に対する基板高さの傾きが所定の負の急峻範囲に含まれる立ち下がり部分のデータ(ここでは図7(b)のデータF1〜F7)を特定する(ステップS130)。これは、立ち上がり部分のデータRと同様の手法により、例えば図7(a)で左上から右下に向かい且つ傾きが急峻な部分のデータとして特定できる。負の急峻範囲は、上下限の絶対値が正の急峻範囲の上下限と同じであってもよいし、上下限の絶対値の少なくとも一方が正の急峻範囲の上下限と異なっていてもよい。データF1〜F7をデータFと総称する。
次に、CPU71は、特定した立ち上がり部分のデータと、立ち下がり部分のデータと、走査方向で立ち上がり部分のデータから立ち下がり部分のデータまでのデータ(以下、上端部データと称する)と、を、基板S上の突出した部分とみなして、これらのデータを除外する(ステップS135,図7(c))。上端部データとは、走査方向で立ち上がり部分のデータの下流側(図7では右側)且つ立ち下がり部分の上流側(図7では左側)に位置するデータである。この上端部データは、基板高さの値が立ち上がってから立ち下がるまでの部分すなわち基板Sから突出した部分の一部ではあるが、傾きは急峻でない部分のデータである。上端部データは、基本的には、立ち上がり部分のデータとそのデータの走査方向下流側に隣接する立ち下がり部分のデータとの間のデータである。例えば、CPU71は、図7(b)におけるデータR1,F1間、データR2,F2間、データR3,F3間、データR5,F4間、データR6,F6間、データR7,F7間のデータを、上端部データとしてステップS135で除外する。また、CPU71は、ステップS125において、立ち上がり部分の後に立ち下がり部分が現れず、立ち上がり部分のデータが連続している場合(例えば図7(b)のデータR4,R5)には、これら及びその間のデータをまとめて1つの立ち上がり部分のデータとみなしておいてもよい。同様に、CPU71は、ステップS130において、立ち下がり部分の後に立ち上がり部分が現れず、立ち下がり部分のデータが連続している場合(例えば図7(b)のデータF4,F5)には、これら及びその間のデータをまとめて1つの立ち下がり部分のデータとみなしておいてもよい。こうすれば、CPU71はステップS135で図7(b)のデータR4からデータF5までを全て除外することになる(図7(c))。このようにすることで、図7(b)のデータR4やデータF5のように、立ち上がり部分のデータとそのデータの走査方向下流側で隣接する立ち下がり部分のデータとの組み合わせが見つからないようなデータが存在しても、突出した部分を適切に除外しやすくなる。
その後、CPU71は、ステップS135の除外後の基板高さ仮データのうち周囲から突出した平坦部分がある場合には、その部分も除外する(ステップS140,図7(d))。例えば、図7(b)に示すデータD1は、立ち下がり部分のデータF6より走査方向下流側且つ立ち上がり部分のデータR7より走査方向上流側のデータであり、且つ傾きも急峻でないため、上述したステップS135では除外されずに残る(図7(c))。しかし、データD1が例えば部品の上面に存在する凹部を測定したデータであるなど、異物上の高さを測定したデータである場合もある。ステップS140では、このような、ステップS135では除外されなかったが基板Sのうち周囲から突出しているとみなせる部分を除外する(図7(d))。このステップS140の処理では、CPU71は、例えば上述したステップS125〜S135と同じ処理を行ってもよい。この場合、CPU71は、図7(c)の位置x3,x4間の傾きが急峻なためこの部分を立ち上がり部分として特定し、位置x5,x6間の傾きが急峻なためこの部分を立ち下がり部分として特定し、特定した部分とその間の部分(上端部データ)であるデータD1とを除外することになる。なお、ステップS140では、CPU71は、ステップS135の除外が行われた部分の両端のデータ同士の傾き(例えば図7(c)の位置x7,x8間の傾き,位置X9,X10間の傾きなど)のみを順次導出していき、その傾きに基づいて上端部データを特定して、特定した上端部データを除外してもよい。こうしても、CPU71は例えば図7(c)のデータD1を上端部データとして特定して除外することができる。なお、CPU71は、ステップS140の処理を行わなくてもよい。
次に、CPU71は、基板高さ仮データのうち上述した処理における除外後のデータ(除外されずに残ったデータ)を、基板高さデータとして取得しRAM74に記憶して(ステップS145)、ステップS120を終了する。例えば、CPU71は、図7(a)データのうち除外後のデータである図7(d)のデータを、基板高さデータとして取得する。CPU71は、走査ラインL1,L3上の走査の各々で得られた複数の基板高さ仮データについても、ステップS120において同様に基板高さ仮データに基づく基板高さデータを取得する。このように、ステップS120では、CPU71は、基板高さ仮データのうち基板S上の突出した部分とみなせるデータを除外した後のデータを、以降の処理に用いるデータであり基板Sの高さを表す基板高さデータとして取得するのである。そのため、基板S上の走査される部分に異物が存在しても、その異物上を測定したデータを除外した基板高さデータを取得することができる。したがって、取得された複数の基板高さデータは、基板Sの基板高さを精度良く測定したデータとなる。
複数の基板高さデータを取得すると、CPU71は、それらのデータに基づいて基板Sに異常があるか否かを判定する(ステップS150)。本実施形態では、CPU71は、基板Sの異常として基板Sに許容できない反り(異常な反り)があるか否かを判定する。例えば、CPU71は、走査ラインL1〜L3のうち1以上の走査により得られた複数の基板高さデータの各々の基板高さの値がいずれも所定の正常範囲に含まれる場合には、基板Sには異常がないと判定する。一方、CPU71は、複数の基板高さデータの1以上の基板高さの値が所定の正常範囲から外れている場合には、基板Sには許容できない反りがあり異常であると判定する。本実施形態では、CPU71は走査ラインL2の走査により得られた複数の基板高さデータ(例えば図7(d)のデータ)に基づいて判定を行うものとした。なお、CPU71は、走査ラインL1〜L3のうち1以上の走査により得られた複数の基板高さデータの各々の基板高さの値の最大値と最小値との差が所定の閾値を超えているか否かに基づいて、基板Sに異常な反りがあるか否かを判定してもよい。ステップS150で基板Sに異常があると判定すると、CPU71は、エラーを報知して(ステップS160)、本ルーチンを終了する。CPU71は、エラーの報知として例えば部品実装機10が備える図示しないディスプレイにエラー情報を表示してもよいし、管理装置80にエラー情報を出力してもよい。エラーが報知されると、作業者は例えば基板Sの異常の確認及び廃棄などを行う。
ステップS150で基板Sに異常がないと判定すると、CPU71は、生産プログラムに基づいて、次に実装すべき部品Pを吸着ノズル51に吸着させる(ステップS170)。CPU71は、実装ヘッド50を部品供給装置15の部品供給位置の上方に移動させ、Z軸モータ52により吸着ノズル51を下降させて、吸着ノズル51の先端(下端)に部品Pを吸着させる。続いて、CPU71は、吸着された部品Pが基板Sの実装予定位置の真上に位置するように実装ヘッド50を移動させる(ステップS180)。
次に、CPU71は、吸着された部品Pの実装高さを導出する(ステップS190)。実装高さとは、例えば部品Pの実装予定位置(例えばXY座標で表される位置)の基板高さである。CPU71は、ステップS120で取得した複数の基板高さデータに基づいて、実装高さを導出する。CPU71は、吸着された部品Pの実装予定位置が、複数の基板高さデータのいずれかの測定位置と同じである場合には、その測定位置で測定された基板高さの値をそのまま実装高さとして導出する。それ以外の場合には、CPU71は、ステップS120で取得した複数の基板高さデータに基づいて基板Sの上面の形状を公知の手法を用いた近似計算によって導出し、導出した形状に基づいて実装高さを導出する。例えば、CPU71は、複数の基板高さデータのうち、測定位置が実装予定位置を囲む三角形を描くような3つのデータを選択する。そして、CPU71は、選択した基板高さデータの3点の測定位置に囲まれる三角形の領域内の基板Sの表面形状をその3点を通る平面とみなした(近似した)場合の、吸着された部品Pの実装予定位置の実装高さを、3点の基板高さの値に基づいて導出する。
ステップS190のあと、CPU71は、導出した実装高さと、生産プログラムに含まれる吸着された部品Pの厚さ(高さ)と、に基づいて実装時に必要な吸着ノズル51の下降距離を導出し(ステップS200)、導出した下降距離だけ吸着ノズル51を下降させた後に吸着ノズル51による吸着を解除して部品Pを基板S上に実装する(ステップS210)。CPU71は、ステップS190,S200の処理をステップS210の前に行えばよく、例えばステップS180と並行して行ってもよい。
部品Pを実装すると、CPU71は、生産プログラムに含まれる未実装の部品Pが存在するか否かを判定し(ステップS220)、未実装の部品Pが存在する場合にはステップS170以降の処理を行う。すなわち、CPU71は、実装予定の部品Pを順次基板Sに実装していく。ステップS220で未実装の部品Pが存在しない場合、すなわち実装予定の部品Pの基板Sへの実装が全て完了した場合には、CPU71は基板搬送装置20により基板Sを搬出して(ステップS230)、本ルーチンを終了する。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の実装ヘッド50が本発明の作業部に相当し、測距センサ60が高さ測定部に相当し、制御装置70が制御部に相当する。またXYロボット40が測定移動部に相当する。
以上詳述した本実施形態の部品実装機10によれば、制御装置70のCPU71は、基板S上を走査して複数の基板高さ仮データを取得するよう測距センサ60を制御し、取得された複数の基板高さ仮データに基づいてそのデータのうち基板S上の突出した部分とみなせるデータを除外して、除外後の複数の基板高さ仮データを複数の基板高さデータとして取得する。このように、CPU71は、基板S上を走査して得られた複数のデータ(基板高さ仮データ,例えば図7(a)のデータ)をそのまま測定結果とするのではなく、基板高さ仮データのうち基板上の突出した部分とみなせるデータを除外した後のデータ(例えば図7(c)のデータ)を、測定結果(基板高さデータ)として取得する。そのため、例えば基板S上の走査される部分に異物が存在しても、その異物上を測定したデータを除外した基板高さデータを取得することができる。したがって、この部品実装機10は基板高さを精度良く測定できる。
また、CPU71は、複数の基板高さ仮データのうち、走査方向(例えば図6の走査ラインL2の場合は右方向)に対する基板高さの傾きが所定の正の急峻範囲に含まれる立ち上がり部分のデータと、走査方向に対する基板高さの傾きが所定の負の急峻範囲に含まれる立ち下がり部分のデータと、走査方向で立ち上がり部分のデータから立ち下がり部分のデータまでのデータと、を基板S上の突出した部分とみなす。これにより、異物などの基板S上の突出した部分を測定したデータを適切に除外できる。
さらに、CPU71は、取得された複数の基板高さデータに基づいて、基板Sに異常な反りがあるか否かを判定する。上述したように本実施形態の部品実装機10は基板高さを精度良く測定することができるから、測定された基板高さデータに基づいて行う基板Sの異常な反りの有無の判定についても精度良く行うことができる。例えば、CPU71が、ステップS110で取得した基板高さ仮データ(例えば図7(a)に示したデータ)をそのまま用いてステップS150の判定を行うと、部品Pなどの異物が存在する部分を測定したデータが正常範囲から外れることで基板Sに異常な反りがあると誤判定する場合がある。本実施形態の部品実装機10では、そのような誤判定を抑制できる。
さらにまた、実装ヘッド50は、部品Pを保持する吸着ノズル51と、吸着ノズル51を昇降させるZ軸モータ52とを有し、対基板作業として部品Pを基板Sに実装する作業を行う。そして、CPU71は、取得された複数の基板高さデータに基づいて、吸着ノズル51に保持された部品Pの基板S上の実装位置における基板高さである実装高さを導出し、導出した実装高さに基づいてZ軸モータ52を制御することにより、実装位置上で吸着ノズル51に保持された部品Pを下降させて部品Pを基板Sに実装する。上述したように本実施形態の部品実装機10は基板高さを精度良く測定することができるから、実装高さの導出についても精度良く行うことができる。そのため、CPU71は導出した実装高さに基づく部品Pの実装時のZ軸モータ52の制御も適切に行うことができる。これにより、例えば基板Sに部品Pが当接する前に吸着ノズル51が部品Pを離してしまうことや、吸着ノズル51が基板Sに部品Pを押圧しすぎて基板S又は部品Pが破損することなど、部品Pの実装時の不具合を抑制できる。
そしてまた、部品実装機10は、測距センサ60を移動させるXYロボット40を備えている。そして、CPU71は、測距センサ60が基板S上を移動するようXYロボット40を制御し、移動中に複数の基板高さ仮データを取得するよう測距センサ60を制御する。これにより、例えば測距センサ60が移動と測定位置での停止とを繰り返しながら複数の基板高さ仮データを取得する場合と比較して、短時間で複数の基板高さ仮データを取得できる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、CPU71は基板Sのうち複数の走査ラインL1〜L3上を走査するように測距センサ60を制御したが、走査箇所はこれに限られない。例えば、走査箇所は1ライン(例えば走査ラインL2)としてもよい。また、上述した実施形態では走査方向はX方向としたが、これに限らずY方向としてもよいし、基板Sの対角線に沿った方向などとしてもよい。また、CPU71は互いに走査方向が異なる複数回の走査(例えばX方向の走査とY方向の走査)を行うように測距センサ60を制御してもよい。また、上述した実施形態では走査ラインL1〜L3はそれぞれ直線状としたが、これに限らず折れ線状,曲線状などとしてもよい。また、走査ラインは円状や多角形状などの環状であってもよい。
上述した実施形態のステップS190では、CPU71は、ステップS120で取得した基板高さデータに基づいて実装高さを導出したが、基板Sの1以上の所定位置の各々における所定の基板高さも用いて実装高さを導出してもよい。例えば、部品実装機10では基板保持装置30にクランプされている部分(前後両端)の基板高さは常に同じ値(既知の値)となるから、CPU71はこの値を所定の基板高さとして実装高さの導出に用いることができる。これにより、ステップS190において、CPU71は、実装予定位置が基板Sの外縁付近に位置するなど、走査ラインL1〜L3上の基板高さデータのみでは実装予定位置を囲む三角形が描けない場合でも、実装高さを導出することができる。また、CPU71は、基板保持装置30にクランプされている部分の既知の基板高さの値を用いる場合、ステップS110における走査ラインを1つ(例えば走査ラインL2)としても、ステップS190の処理を行うことができる。
上述した実施形態のステップS190において、CPU71は、ステップS120で取得した基板高さデータと既知の基板高さの値との少なくとも一方に基づいて、仮想的な測定位置の基板高さを計算により導出し、導出した基板高さも用いて実装高さを導出してもよい。例えば、基板高さデータの測定位置及び既知の基板高さの位置のうち上面視で一直線上に並ぶ2点以上の位置の各々の基板高さに基づいて、その一直線上の他の位置に仮想的な測定位置を設定し、この位置の基板高さを直線近似又は曲線近似により導出してもよい。こうすることで、測定位置を仮想的に増やすことができ、例えば実装予定位置を囲む三角形が描けない場合などに仮想的な測定位置での基板高さを用いて実装高さを導出できる。CPU71は、上述したステップS150においても、このように導出した仮想的な測定位置の基板高さの値も用いて基板Sの異常の有無を判定してもよい。また、CPU71は、ステップS120で取得した基板高さデータ(除外後のデータ)のうち2以上(好ましくは全て)のデータに基づいて、例えば曲線近似を用いて、ステップS135,S140で除外した基板高さ仮データのうち1以上のデータと同じ測定位置の基板高さを導出してもよい。すなわち、CPU71は、基板高さデータに基づいて、除外した基板高さ仮データのうち1以上を補間するようにしてもよい。そして、CPU71はこの補間したデータも用いてステップS150とS190との少なくとも一方を行ってもよい。
上述した実施形態において、CPU71は、ステップS120で取得した基板高さデータ(走査データと称する)の他に、予めピンポイントで定められた測定位置(例えば基板S状に格子状に定められた9点の測定位置)の基板高さを、測定位置上で移動停止した状態の測距センサ60に測定させてもよい。これにより得られた基板高さデータを非走査データと称する。CPU71は、ステップS150,S190の処理の一方を、走査データではなくこの1以上の非走査データを用いて行ってもよい。
上述した実施形態において、対基板作業システム1のうち基板Sの搬送方向の上流側に位置する対基板作業装置が取得した走査データ及び/又は非走査データを、その装置の下流側に位置する他の対基板作業装置(例えば部品実装機10)が利用してもよい。例えば、CPU71は、まず、ステップS110,S120により1つの走査ライン(例えば走査ラインL2)上の走査データを取得すると共に、部品実装機10の上流の他の対基板作業装置が既に取得した同じ基板Sの同じ走査ライン(例えば走査ラインL2)上の走査データをその装置又は管理装置80から取得する。続いて、CPU71は、取得した2つの走査データを比較して同じデータ(波形)とみなせる(両者の波形の差が小さい)か否かを判定する。例えば、CPU71は、2つの走査データについて同じ測定位置での基板高さの差を測定位置毎に導出して、差が所定の閾値を超えるものがない場合に、両者を同じデータと判定する。そして、取得した2つの走査データを比較して同じデータとみなせる場合には、CPU71は、比較に用いた走査ライン以外の必要な走査データ及び/又は非走査データを自装置では測定せずに上流の対基板作業装置(又は管理装置80)から取得して利用してもよい。こうすることで、下流側の部品実装機10では基板高さの測定を一部省略することができる。例えば、上述した実施形態のように走査ラインL1〜L3上の走査データを取得する必要がある場合に、1つの走査ライン以外の走査(例えば走査ラインL1,L3の走査)を省略できる。同様に、CPU71が9点の非走査データと走査ラインL2上の走査データとを取得する必要がある場合には、9点の非走査データの測定を省略できる。一方、取得した2つの走査データを比較して同じデータとみなせなかった場合には、CPU71は、上流の対基板作業装置が取得したデータを用いることなく、比較に用いた走査データ以外に必要な残りの走査データ及び/又は非走査データを自装置で測定して取得する。なお、取得した2つの走査データを比較して同じデータとみなせる場合に、両者のわずかな差を用いて、上流の対基板作業装置(又は管理装置80)から取得したデータを補正した上で利用してもよい。
上述した実施形態では、基板保持装置30は基板Sをクランプすると共に複数の支持ピン35aが基板Sの下面を支持したが、これに限られない。例えば、基板保持装置30は支持ピン35aを備えなくてもよい。この場合、基板Sは図7で示したような上に凸の形状に反る以外に下に凸の形状に反る場合もある。基板Sが下に凸の形状に反る場合でも、上述した実施形態と同様にCPU71が複数の基板高さ仮データに基づいて複数の基板高さデータを取得することで、基板高さを精度良く測定できる。
上述した実施形態のステップS120では、CPU71は、複数の基板高さ仮データのうち立ち上がり部分のデータと立ち下がり部分のデータとを特定して、これらのデータとその間の上端部データとを、基板S上の突出した部分とみなせるデータとして除外したが、これに限られない。CPU71は他の手法で基板S上の突出した部分とみなせるデータを除外してもよい。例えば、複数の基板高さ仮データの基板高さの値の平均値を導出して、導出した平均値に所定の閾値を加えた値よりも基板高さの値が大きいデータを、基板S上の突出した部分とみなして除外してもよい。
上述した実施形態では、基板高さ仮データ及び基板高さデータは、基板高さの値と測定位置とが対応付けられたデータとしたが、これに限らず、例えば基板高さの値と測定順序とが対応付けられたデータとしてもよい。この場合でも、基板高さ仮データに基づいて基板S上の突出した部分とみなせるデータを特定して除外することはできる。
上述した実施形態において、基板Sは割り基板(複数の子基板に分割される多面取り基板)であってもよい。この場合、CPU71は、ステップS110において、基板Sに含まれる複数の子基板の各々を少なくとも1回は通過して基板S上を走査するよう測距センサ60を制御してもよい。すなわち、CPU71は、複数の子基板の各々について1以上の基板高さ仮データを取得するようにしてもよい。また、CPU71は、ステップS110において、基板Sのうち複数の子基板の境界に存在するスリットすなわち貫通孔の上を通過する走査を行わないように測距センサ60を制御してもよい。割り基板ではスリットを介して隣接する子基板同士の高さが大きく異なる場合があり、この場合にスリット上を通過する走査を行うと、スリット付近が突出した部分とみなされて不要に基板高さ仮データが除外されたり、上述した除外した基板高さ仮データの補間を行う際に誤差が大きくなったりする場合がある。スリット上を通過する走査を行わないようにすることで、それらの不具合を抑制できる。CPU71は、例えばステップS110において、1回の走査(例えば1つの走査ライン)の開始から終了までが1つの子基板上で行われるようにしてもよいし、スリットの長手方向と平行に走査するよう測距センサ60を制御してもよい。
上述した実施形態では、測距センサ60はレーザー光を用いたレーザー高さセンサとしたが、これに限らず基板高さを測定できればどのようなセンサを用いてもよい。例えば、超音波式の高さセンサを用いてもよい。
上述した実施形態では、XYロボット40が実装ヘッド50及び測距センサ60を共に移動させたが、これに限られない。例えば、部品実装機10は実装ヘッド50を移動させるヘッド移動部と測距センサ60を移動させる測定移動部とを別々に備えていてもよい。
上述した実施形態では、測距センサ60が基板S上を走査するにあたり、CPU71はXYロボット40による測距センサ60の移動中に基板高さの測定を行うように測距センサ60を制御したが、これに限られない。例えば、CPU71は、測距センサ60が移動と測定位置での停止とを繰り返しながら複数の基板高さ仮データを取得するようにXYロボット40を制御してもよい。
上述した実施形態では、実装ヘッド50は吸着ノズル51により部品Pを吸着して基板S上に実装したが、これに限られない。例えば、実装ヘッド50は、吸着ノズル51に代えて部品Pを挟持して保持するメカニカルチャックを有していてもよい。
上述した実施形態では、本発明の対基板作業装置を部品実装機10に具現化した例について説明したが、本発明は部品実装機10に限らず基板Sに対する作業を行う対基板作業装置に適用可能である。対基板作業装置の例としては、部品実装機10の他に、スキージを有する印刷ヘッドを備え基板S上に所定パターンのはんだを印刷するスクリーン印刷機や、粘性流体を基板に塗布する吐出ヘッドを備えた粘性流体塗布装置などが挙げられる。粘性流体としては、例えば接着剤,はんだ,ろう材などが挙げられる。