以下、図面を参照しながら本発明の実施の形態に係る部品実装システムについて説明する。
図1は、本実施の形態に係る部品実装システムの構成を示す外観図である。
部品実装システム10は、基板上への部品の実装順序を決定するとともに、決定された実装順序に従って、基板上に部品を実装するシステムであり、部品実装機1010と、部品実装機3100と、部品実装機2100と、部品実装機5100と、部品実装機4100と、部品実装機6100と、動作時間短縮装置300とを備えている。
部品実装機1010、3100、2100、5100、4100および6100は、基板上に部品を実装する装置である。
図2は、動作時間短縮装置300の構成を示す機能ブロック図である。
動作時間短縮装置300は、部品実装機による部品実装時間を短縮することにより、部品実装機の動作時間を短縮するコンピュータであり、演算制御部301、表示部302、入力部303、メモリ部304、最適化方法選択プログラム格納部305、最適化プログラム格納部308、データベース部307および通信I/F(インターフェース)部306等から構成される。
この動作時間短縮装置300は、最適化方法選択プログラム格納部305に格納された各種プログラムおよび最適化プログラム格納部308に格納された各種プログラムをパーソナルコンピュータ等の汎用のコンピュータが実行することにより実現される。
演算制御部301は、CPU(Central Processing Unit)や数値プロセッサ等であり、通信I/F部306を介して接続された部品実装機やユーザからの指示等に従って、最適化方法選択プログラム格納部305または最適化プログラム格納部308からメモリ部304にプログラムをロードして実行し、その実行結果に従って、各構成要素302〜308を制御する。
表示部302は、CRT(Cathode-Ray Tube)やLCD(Liquid Crystal Display)等であり、入力部303はキーボードやマウス等であり、これらは、演算制御部301による制御の下で、動作時間短縮装置300とオペレータとが対話する等のために用いられる。
通信I/F部306は、LAN(Local Area Network)アダプタ等であり、動作時間短縮装置300と、部品実装機との通信等に用いられる。メモリ部304は、演算制御部301による作業領域を提供するRAM(Random Access Memory)等である。
最適化方法選択プログラム格納部305および最適化プログラム格納部308は、動作時間短縮装置300の機能を実現する各種プログラムを記憶しているハードディスク等であり、最適化方法選択プログラム格納部305に格納されているプログラムが演算制御部301によって実行された場合には、当該プログラムは、動作ロス特定部305aおよび処理手順選択部305bとして機能する。また、最適化プログラム格納部308に格納されているプログラムが演算制御部301によって実行された場合には、第1部品実装順序決定部308a、第2部品実装順序決定部308b、第3部品実装順序決定部308c、第4部品実装順序決定部308d、第5部品実装順序決定部308eおよび第6部品実装順序決定部308fとして機能する。
動作ロス特定部305aは、部品実装機の解消すべき動作ロスを特定する処理部である。処理手順選択部305bは、動作ロス特定部305aにおいて特定された動作ロスに基づいて、部品実装機の動作時間を短縮する処理手順であるプログラムを最適化プログラム格納部308に格納されたプログラムの中から選択する処理部である。
第1部品実装順序決定部308a、第2部品実装順序決定部308b、第3部品実装順序決定部308c、第4部品実装順序決定部308d、第5部品実装順序決定部308eおよび第6部品実装順序決定部308fの実行する処理については後述する。
データベース部307は、動作時間短縮装置300による部品実装機の動作時間短縮処理に用いられる入力データや動作時間短縮処理によって生成された実装点データ等を記憶するハードディスク等である。
データベース部307に格納されている入力データには、実装点データ3307a(4307a,6241)、部品ライブラリ3307b(4307b)、実装装置情報3307c(4307c)、タスクタイム情報4307d、実装点情報配列1307a、変換テーブル1307b、実装点数情報3307d、部品データ6242および実装順データ6243等が含まれる。これらの入力データの詳細については後述する。
図3は、動作時間短縮装置300が実行する処理のフローチャートである。
動作ロス特定部305aは、通信I/F部306を介して、生産ロス等が生じているいずれかの部品実装機より、当該部品実装機のマシン名を取得する(S22)。動作ロス特定部305aは、取得したマシン名に基づいて、当該マシン名の部品実装機が、いわゆるモジュラー式の部品実装機であるか否かを判断する(S24)。ここで、「モジュラー式の部品実装機」とは、部品を保持した装着ヘッドが移動しながら基板上に部品を装着するタイプの部品実装機を指す。
モジュラー式の部品実装機でなければ(S24でNO)、ロータリー式の部品実装機であるため、処理手順選択部305bは、最適化プログラム格納部308より第1部品実装順序決定部308aを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第1部品実装順序決定部308aが、部品実装点を含む巡回路に基づいて部品実装順序を最適化する(S52)。その後、処理が終了する。ここで、「ロータリー式の部品実装機」とは、軸周りに回転しながら部品を吸着し基板上に前記部品を実装するロータリーヘッドを備える部品実装機のことである。なお、第1部品実装順序決定部308aの実行する処理については後述する。
モジュラー式の部品実装機であれば(S24でYES)、動作ロス特定部305aは、動作時間短縮の対象とされている部品実装機がいわゆる交互打ちの部品実装機であるか否かを判断する(S26)。ここで、「交互打ちの部品実装機」とは、複数の装着ヘッドが協調動作を行ないながら、1枚の基板上に部品を実装する部品実装機のことである。
モジュラー式かつ交互打ちの部品実装機であれば(S26でYES)、処理手順選択部305bは、最適化プログラム格納部308より第3部品実装順序決定部308cを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第3部品実装順序決定部308cが、モジュラー式かつ交互打ちの部品実装機に特有な最適化方法に従い部品実装順序を最適化する(S28)。すなわち、第3部品実装順序決定部308cは、いわゆる交互打ちのモジュラー式の部品実装機を対象とし、複数の装着ヘッドに割り当てられるタスク数が均等になるように実装順序を決定する。
その後、動作ロス特定部305aは、動作時間短縮の対象とされている部品実装機により基板に部品を実装する際に、部品と部品または部品と装着ヘッドとの衝突である干渉が生じているか否かの情報を当該部品実装機より取得し、干渉が生じている場合には(S30でYES)、処理手順選択部305bは、最適化プログラム格納部308より第6部品実装順序決定部308fを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第6部品実装順序決定部308fが、干渉を解消するように部品実装順序を最適化し(S32)、処理を終了する。すなわち、第6部品実装順序決定部308fは、モジュラー式の部品実装機を対象とし、部品装着時の干渉が起こらないように、部品の実装順序を決定する。
干渉が生じていなければ(S30でNO)、第6部品実装順序決定部308fによる部品実装順序の最適化処理を行なうことなく、処理を終了する。
モジュラー式の部品実装機ではあるが交互打ちではない場合には(S26でNO)、動作ロス特定部305aは、当該部品実装機に対して、基板搬入時間の取得のためのコマンドを送信する(S34)。ここで、「基板搬入時間」とは、基板に部品の実装が完了してから次の基板が部品実装機内の基板停止位置に搬入されるまでの時間である。
部品実装機より基板搬入時間を取得することができた場合には(S36でYES)、動作ロス特定部305aは、取得した基板搬入時間が予め定められた閾値Th_timeよりも大きいか否かを判断する(S38)。所定の閾値よりも大きい場合には(S38でYES)、処理手順選択部305bは、最適化プログラム格納部308より第4部品実装順序決定部308dを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第4部品実装順序決定部308dが、基板搬入によるロス時間を最小にするような部品実装順序の最適化処理(動作時間短縮処理)を行ない(S40)、その後、S30以降の処理が行なわれる。すなわち、第4部品実装順序決定部308dは、モジュラー式の部品実装機を対象とし、基板に部品の実装が完了したから次の基板が部品実装機内の基板停止位置に搬入されるまでの時間である基板搬入時間内に、部品の吸着を開始させるように部品の吸着タイミングを決定する。
基板搬入時間が取得できなかった場合(S36でNO)または基板搬入時間が閾値≦Th_timeの場合には(S38でNO)、動作ロス特定部305aは、部品実装機におけるタスクを取得するためのコマンドを当該部品実装機に対して送信する(S42)。ここで、「タスク」とは、装着ヘッドによる部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品群を指すものとする。
部品実装機よりタスクを取得することができた場合には(S44でYES)、動作ロス特定部305aは、各タスクについて、同一タスク内に異なる移動制限速度の部品が含まれるか否かを調べる(S46)。ここで、「移動制限速度」とは、部品を吸着している際の装着ヘッドの最高速度を示す。
同一タスク内に異なる移動制限速度の部品が含まれる場合には(S46でYES)、処理手順選択部305bは、最適化プログラム格納部308より第5部品実装順序決定部308eを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第5部品実装順序決定部308eが、移動制限速度に着目して部品実装時間を短縮するような部品実装順序の最適化処理を行ない(S48)。その後、S30以降の処理が行なわれる。すなわち、第5部品実装順序決定部308eは、モジュラー式の部品実装機を対象とし、部品に対応付けられた装着ヘッドの移動制限速度に基づいて、装着ヘッドが部品を吸着してから装着し終わるまでの時間が短くなるように部品実装順序を決定する。
タスクが取得できなかった場合(S44でNO)または同一タスク内の部品の制限速度がすべて等しい場合には(S46でNO)、処理手順選択部305bは、最適化プログラム格納部308より第2部品実装順序決定部308bを実現するためのプログラムを選択し、メモリ部304にロードする。演算制御部301がそのプログラムを実行することにより、第2部品実装順序決定部308bが、部品実装点を含む巡回路に基づいて部品実装順序を最適化する(S50)。その後、S30以降の処理が行なわれる。第2部品実装順序決定部308bが実行する処理については後述する。
以下、第1部品実装順序決定部308aおよび第2部品実装順序決定部308bが実行する処理について順次説明する。
[第1部品実装順序決定部308aについて]
部品実装機1010は、電子機器を構成するプリント基板上に複数種類の部品を高速に装着する実装装置であり、部品を吸着、搬送、装着するロータリーヘッド1100と、多種類の部品をロータリーヘッド1100に供給する部品供給部1011と、載置したプリント基板を水平面方向に移動させるXYテーブル1015とを備えている。
図4は、部品供給部とロータリーヘッドとの位置関係を示す概略図である。
ロータリーヘッド1100は、図4の上部に示すように、部品をプリント基板上に装着する装着手段としての装着ヘッド1103を18個備えている。またこの装着ヘッド1103は、高さ方向には移動することなく回転する回転基台1101に高さ方向に移動自在に取り付けられ、部品を真空吸着により保持することのできる吸着ノズル(図示せず)を6本備えている。
部品供給部1011は、図4の下部に示すように、同一部品を順次装着ヘッド1103に提供しうる部品カセット1111を横一列に並べて備えている。そして、部品供給部1011は、部品供給部1011をロータリーヘッド1100に対して図4中のZ軸方向に移動位置決めすることにより装着すべき部品を選択しうる機能を有している。
部品カセット1111は、図5に示すような同一部品を多数個保持する部品テープ1110が巻き付けられたリール1113と、当該部品テープ1110に保持された部品を順次供給するテープフィーダ1114とを備えており、部品供給部1011に対して着脱自在となっている。つまり、部品カセット1111は、1種類の部品を提供するものに相当し、部品供給部1011は、部品カセット1111の集合(または、さらにその集合を保持する収納部を含めたもの)に相当する。
図6は、ロータリーヘッド、基板および部品供給部の位置関係を模式的に示した図である。
同図に示すように、ロータリーヘッド1100の回転軸は移動せず、この回転軸の周りをその周囲に設けられた装着ヘッド1103が間欠回転することにより各位置に対応した作業を行う。簡単に説明すると、部品カセット1111がそれぞれ備える吸着開口部1112の上部(位置B)に位置した装着ヘッド1103が前記吸着開口部1112を通して部品を吸着し、これと対向する位置Eに装着ヘッド1103が位置したときにプリント基板Pに吸着した部品を装着する。
なお、部品の装着対象であるプリント基板Pは水平面方向に移動自在なXYテーブル(図示せず)上に載置されており、部品を装着すべき位置はプリント基板Pを移動させることにより決定される。
図7は、図6の位置Cに備えられた部品認識カメラの一例を示す図である。
部品認識カメラ1105は、装着ヘッド1103が吸着した部品1106を認識するためのカメラであり、鏡筒1105aと、小視野カメラ1105bと、大視野カメラ1105cとを備えている。鏡筒1105a内には、ミラー1107aおよび1107cと、ハーフミラー1107bとが設けられている。
小視野カメラ1105bは、視野サイズが6mmのカメラであり、ミラー1107aおよびハーフミラー1107bで反射された部品1106を撮像する。大視野カメラ1105cは、視野サイズが28mmのカメラであり、ミラー1107aおよび1107cで反射された部品1106を撮像する。
図8は、ロータリーヘッド1100に備えられる装着ヘッド1103の一つに着目した際の当該装着ヘッド1103の動作を示すフローチャートである。
吸着ノズルの選択位置(図6の位置A)に存在する装着ヘッド1103は、次に装着する部品に適合した吸着ノズルを選択する(S1401)。次に、回転基台1101を前記装着ヘッド1103が吸着部(図6の位置B)に位置するまで回転させる(S1402)。この位置において、装着ヘッド1103は吸着ノズルを用いて部品カセット1111の吸着開口部1112から部品を吸着保持する(S1403)。
次に、前記装着ヘッド1103が部品認識カメラ1105(図6の位置C)に位置するまで回転基台1101を回転させる(S1404)。そして、この位置に備えられた小視野カメラ1105bまたは大視野カメラ1105cにより吸着搬送された部品の映像を撮像し、画像処理することにより部品の吸着状態を認識する(S1405)。この吸着状態の認識では、部品の中心と吸着ノズルの中心との2次元的なずれ量や部品の回転ずれ量を検出し、さらには、部品の欠品や立ち吸着、認識エラー(認識処理ができない)の判断などを行なう。そして、部品の欠品など吸着状態に不具合があると判断されれば(S1406でYES)、吸着していた部品が廃棄される(S1410)。一方、不具合がないと判断されれば(S1406でNO)、図6に示す位置Dで先ほど検出された回転ずれ量に基づき部品をθ方向に補正する(S1407)。なお、2次元的なずれ量についてはXYテーブル1015によりプリント基板の位置を微調整して補正する。次に、装着ヘッド1103が装着部(図6の位置E)に位置するまで回転基台1101を回転させる(S1408)。そして、装着ヘッド1103を装着している部品の高さに対応して下方に移動させて部品をプリント基板Pに押し込み装着する(S1409)。
図9は、部品供給部1011の各種モードを説明するための図である。図9(a)は交換モードを示す図であり、同図に示すように、部品供給部1011は、左側部品供給部ZLと右側部品供給部ZRとで構成されている。交換モードでは、左側部品供給部ZLと右側部品供給部ZRとに同じ種類の部品をセットする。たとえば、左側部品供給部ZLを用いた基板を生産中に部品切れが発生した場合には、待機位置にある右側部品供給部ZRをロータリーヘッド1100による吸着位置まで移動させ、引き続き右側部品供給部ZRを用いて基板を生産する。その間に、部品切れした部品を左側部品供給部ZLに補充する。このように、右側部品供給部ZRと左側部品供給部ZLとで同じ部品構成とすることにより、部品実装機1010の長時間連続運転が可能となる。
図9(b)は準備モードを示す図であり、たとえば、左側部品供給部ZLを用いた基板の生産中に、右側部品供給部ZRに次に生産する基板の実装部品をセットしておくことにより、事前に生産基板の切り替えに対応させるモードである。このモードは、生産基板の切り替えが多い場合に最適なモードである。
図9(c)は接続モードを示す図であり、たとえば、右側部品供給部ZRおよび左側部品供給部ZLを両方使用して、基板を生産するモードである。このモードは、1枚の基板に使用される部品種類が多い生産に適している。
図10は、実装点情報配列1307aの一例を示す図である。
実装点情報配列1307aは、基板1020上の実装点の個数をn個とした場合、要素数がN(=n+2)個のデータからなる配列である。
ここでは、図11に示すように、基板1020には2個の基板マーク1402および1404が予め形成されており、その上に、5個の実装点(実装点1〜実装点5)設けられているものとする。5個の実装点は、部品実装機1010により部品が実装される点である。基板マーク1402および基板マーク1404は、基板1020の位置決めのために、ロータリーヘッド1100に設けられた基板認識カメラ(図示せず)により撮像され、その位置が認識される。なお、先に基板マーク1402の位置が認識され、次に基板マーク1404の位置が認識されるものとする。その他にも、ダミー点1406と呼ばれる仮想的な点が基板1020には設けられている。ダミー点1406は、図中基板マーク1404の近傍に設けているが、仮想的な点であるため基板1020上に設けられていなくてもよいし、基板マーク1404と同一の位置にあってもよい。なお、基板マーク1404または5個の実装点のうちの最初に部品が実装される実装点は、実装順序決定問題を閉回路モデル化する場合の閉回路の開始点となる。閉回路モデル化された実装順序決定問題は、後述するように、例えば巡回セールスマン問題に相当する。
再度図10を参照して、各配列要素には、実装点の位置等に関する情報(以下、「実装点情報」という。)、基板マークの位置に関する情報およびダミー点の位置に関する情報のうちのいずれかの情報が記憶されている。図10には、実装点情報配列1307a(Data)の2番目の要素Data[2]に記憶されている情報が示されている。要素Data[2]には、実装点2の実装点情報が記憶されており、実装点2の基板1020上での位置を示すX座標「45」およびY座標「18」と、実装点2に実装される部品が収納されている部品カセット1111の部品供給部1011におけるZ軸上の位置(Z番号)「24」と、装着ヘッド1103が部品を吸着してから装着するまでの速度(ヘッド速度)「6」と、XYテーブルの移動速度(XY速度レベル)「2」とが記憶されている。
ヘッド速度は、レベル「1」からレベル「8」までの8段階で示されており、レベル1が最も速いヘッド速度であり、レベル8が最も遅いヘッド速度である。すなわち、重い部品や大きい部品の場合は、速いヘッド速度で実装することができないため、ヘッド速度は遅くなる。なお、ヘッド速度は、ロータリーヘッド1100が間欠回転する速度である。なお、ロータリーヘッド1100は、図6の位置Bで部品を吸着(図8のS1403)してから、図6の位置Eで部品を装着(図8のS1409)するまでの間に回転軸を中心として半回転する。従って、ロータリーヘッド1100の回転速度は、図6の位置Bから位置Eまでの間に存在する複数の装着ヘッド1103に装着された部品のヘッド速度のうちの最も遅いヘッド速度に従って、厳密には決定される。しかし、ここでは、処理の簡単化のため、ロータリーヘッド1100が位置Bで部品を吸着してから位置Eで部品を装着するまでの間に存在する他の部品のヘッド速度は考慮せずに、部品ごとにヘッド速度が決定されているものとする。
XYテーブルの移動速度は、レベル「1」からレベル「8」までの8段階で示されており、レベル1が最も速いXYテーブル1015の移動速度であり、レベル8が最も遅いXYテーブル1015の移動速度である。すなわち、実装される部品が重い部品や大きい部品の場合には、XYテーブル1015の移動速度が速すぎると、実装された部品が基板1020より剥奪され飛んでしまう。このため、このような部品の場合には、XYテーブル1015の移動速度は、遅い移動速度レベルに設定される。
なお、基板マークの位置に関する情報およびダミー点の位置に関する情報にも実装点情報と同様の情報が含まれるものとする。
図12は、変換テーブル1307bの一例を示す図である。変換テーブル1307bは、ヘッド速度や、XYテーブル1015の移動速度等を時間に置き換えるためのテーブルである。1列目は、置き換え後の時間t(msec)を示している。2列目は、実装点iと実装点jとの間の距離Δxyを示している。3列目は、実装点iに実装する部品が収納された部品カセットと実装点jに実装する部品が収納された部品カセットとの間のZ軸上の距離(Z番号の差の絶対値)を示している。4列目は、部品jを実装する際のヘッド速度(すなわち、ロータリーヘッド1100が間欠回転する速度のレベル)を示している。5列目は、最初の実装点に対するXYテーブル1015の移動速度から実装点iに対するXYテーブル1015の移動速度のうちの最大値Wmax(0→i)を示している。なお、このように、XYテーブル1015の移動速度のうちの最大値Wmax(0→i)を用いているのは、基板1020に、一旦XYテーブル1015の移動速度が遅い部品が実装された場合には、それよりも速い移動速度でXYテーブル1015を移動させてしまうと、基板1020に実装された重たい部品や大きい部品が、基板1020より剥奪され飛んでしまったり、位置ずれを起こしたりするおそれがあるため、一旦XYテーブル1015の移動速度を遅くした場合には、それよりも大きな移動速度でXYテーブル1015を移動させないようにするためである。
たとえば、ヘッド速度、XY速度レベルが共に1の場合、実装点iから実装点jまでの距離Δxyが20である場合には、移動に必要な時間が120msecとして求められる。また、実装点jのヘッド速度、XY速度レベルが共に3の場合には、移動に必要な時間が140msecとして求められる。
なお、変換テーブル1307bに記載されていない値については、すでに求められている値から直線補間等を行なうことにより求められる。たとえば、距離Δxyが1103を超える場合には、次式(1)により、距離Δxyを移動するための時間txy(Δxy)が求められる。
txy(Δxy)=500+(Δxy−103)/0.356 (1)
なお、他のパラメータについても、同様の補間式を求めることにより、時間への置き換えが行なわれる。
図13は、第1部品実装順序決定部308aが実行する処理のフローチャートである。
第1部品実装順序決定部308aは、データベース部1307より、実装点情報配列1307aおよび変換テーブル1307bを読み込む(S1002)。図10に示した実装点情報配列1307aに従うと、図14に示す矢印の順序で部品の実装が行なわれることがわかる。
次に、第1部品実装順序決定部308aは、読み込んだ実装点情報配列1307aおよび変換テーブル1307bに基づいて、タクトテーブルを作成する(S1004)。タクトテーブルとは、実装点iに部品を実装してから実装点jに部品を実装するまでに要する時間をまとめた表である。
図15は、タクトテーブルの一例を示す図である。ここでは、基板マーク1404を実装点0とし、ダミー点1406を実装点6としている。タクトテーブルの各値である実装点iから実装点jまでの実装時間tijは、次式(2)に従い求められる。
tij=max{txy(Δxy),tz(Δz),
th(hj),tw(wmax(0→i))} (2)
ここで、上述した実装点iに関する実装点情報iを(xi,yi,zi,hi,wi)と表し、実装点jに関する実装点情報jを(xj,yj,zj,hj,wj)と表すものとした場合、
Δxy=max{|xi−xj|,|yi−yj|}
xyテーブル上での実装点iとjとの間の距離
txy(Δxy):Δxyを変換テーブル1307bに基づいて時間に置き換えた値
Δz=|zi−zj|
実装点iに実装する部品が収納された部品カセットと実装点jに実装する部品が収納された部品カセットとの間のz軸上の距離
tz(Δz):Δzを変換テーブル1307bに基づいて時間に置き換えた値(装着ヘッド1103への部品供給部1011からの部品供給に必要な時間)
hj:部品jのヘッド速度レベル(レベル1(速)〜8(遅))
th(hj):実装点iの実装から実装点jの実装への移行に関して、ロータリーヘッドの間欠回転に要する時間
wmax(0→i):最初の実装点に対するXYテーブル1015の移動速度から実装点iに対するXYテーブル1015の移動速度のうちの最大値(レベル1(速)〜8(遅))
tw(wmax(0→i)):wmax(0→i)を変換テーブル1307bに基づいて時間に置き換えた値
なお、各実装時間は、後述する巡回セールスマン問題における「コスト」に相当するものである。また、タクトテーブルの算出処理(S1004)においては、tij=tjiと仮定し、tjiの算出を行なわないようにしている。これにより、処理時間の短縮を図ることができる。なお、「コスト」としては、各実装時間のみならず、2つの実装点間の移動距離をコストと定義してもよい。
また、ダミー点から各実装点(実装点1〜実装点5)までの実装時間は、任意のどの実装点間の実装時間よりも大きい値(ここでは、10000000)であるものとする。また、基板マーク1404とダミー点1406との間の実装時間は、任意のどの実装点間の実装時間よりも小さい値(ここでは、1)であるものとする。なお、これらの値は例示であり、これらに限定されるものではない。
次に、第1部品実装順序決定部308aは、実装点情報配列1307aに基づいて初期巡回路を作成する(S1006)。図16は、初期巡回路の作成方法を説明するための図である。初期巡回路は、実装点情報配列1307aをXYテーブルの移動速度が速い順(レベル値が小さい順)に並べ替えることにより作成される。ここで、基板マーク1404(Data[0])のXY速度レベルは0とし、ダミー点1406(Data[6])のXY速度レベルは9とする。このようにすることにより、スタート点が基板マーク1404になり、終了点がダミー点1406になる。なお、処理の高速化のために、実装点情報配列1307aの要素の入れ替えを行なうのではなく、実装点情報配列1307aの要素番号を別途記憶する実装順配列pを使用するものとする。p[i]はi+1番目に実装される実装点の実装点情報配列1307aにおける要素番号を示している。すなわち、図16の実装順配列pによると、基板マーク1404、実装点4、実装点5、実装点1、実装点2、実装点3およびダミー点1406の順に部品の実装が行なわれることになる。この実装順序を図示した図が、図17である。すなわち、基板マーク1404をスタート点として、上述の順序により実装が行なわれた後、ダミー点1406に戻る閉ループが作成される。
次に、第1部品実装順序決定部308aは、求められた初期巡回路における総実装時間を求める(S1008)。すなわち、初期巡回路における総実装時間Tは次式(3)に従い求められる。
T=t04+t45+t51+t12+t23+t36+t60 (3)
ここで、一例として、総実装時間を図15に示したタクトテーブルに従い求めると以下のようになる。
T=200+380+400+400+300+10000000+1
=10002081(msec)
次に、第1部品実装順序決定部308aは以下に説明する処理(S1010〜S1018)に従い総実装時間が最小となるような巡回路を求める。
初期巡回路作成処理(S1006)で求められた初期巡回路を表す実装順配列pは、上述の説明によると、図16に示すように作成されるが、後の説明の簡単化のために、初期巡回路作成処理(S1006)で求められた初期巡回路を表す実装順配列pは、ここでは図18のように作成されたものとする。また、説明の簡単化のために、実装点0(基板マーク1404)のXY速度レベル0であり、実装点1から実装点5までのXY速度レベルはすべて1であり、実装点6(ダミー点1406)の速度レベルは9であるものとする。
まず、第1部品実装順序決定部308aは、ループカウンタiを0に設定する(S1010)。次に、第1部品実装順序決定部308aは、巡回路に対して巡回セールスマン問題の2−OPT法を適用させ、実装順序の入れ替えを試みる(S1012)。2−OPT法(S1012)の詳細については、後述する。2−OPT法により実装順序の入れ替えが行なわれた場合には(S1014でYES)、ループカウンタiを0にリセットする(S1016)。実装順序の入れ替えが行なわれなかった場合には(S1014でNO)、ループカウンタiを1つインクリメントする(S1018)。以上の処理(S1012〜S1018)を、ループカウンタiの値が7になるまで、すなわち(i=N=n+2)になるまで繰り返す(ループA)。ループカウンタiの値が7になった時点の巡回路が巡回セールスマン問題を用いて求められた総実装時間が最小となる巡回路である。すなわち、ループAの繰り返し処理を7回(N回)連続して行なっても実装順序の入れ替えが行なわれなければ、その時点で求められている巡回路が最適な巡回路であるとして、部品実装順序を決定する。
次に、2−OPT法(S1012)について詳細に説明する。図19は、2−OPT法の詳細な処理を示すフローチャートである。
第1部品実装順序決定部308aは、ループカウンタjにi+2を設定する(S1102)。なお、ループカウンタjの値が7を超えた場合には、ループカウンタjに((i+2) mod 7)を代入する。ここで、「x mod y」はxをyで割ったときの余りを示す。
次に、第1部品実装順序決定部308aは、実装順配列pの要素p[i+1]で示される実装点(以下、要素p[k]で示される実装点を実装点p[k]という。)と実装点p[j]とのXY速度が同一か否かを判断する(S1104)。
XY速度が同一であれば(S1104でYES)、実装点p[i+1]と実装点p[j]とを入れ替えた場合の巡回路の総実装時間を算出する(S1106)。
第1部品実装順序決定部308aは、算出された総実装時間が算出前の総実装時間よりも短くなっているか否かを判断する(S1108)。
たとえば、i=0でj=2の場合には、実装点p[1]とp[2]との実装順序を入れ替える前後で総実装時間を求めると、総実装時間の変化は起こらない。これは、以下のような理由による。すなわち、総実装時間の変化に影響する部分の実装順序について考えると、実装順序の入れ替え前のp[0]からp[1]への2点間の実装時間はタクトテーブルよりt01=200(msec)となる。また、p[2]からp[3]への2点間の実装時間はタクトテーブルよりt23=300(msec)となる。このため、p[0]からp[3]への実装時間は500(msec)となる。一方、実装順序入れ替え後のp[0]からp[2]への実装時間はタクトテーブルよりt02=300(msec)となり、p[1]からp[3]への実装時間はタクトテーブルよりt13=200(msec)となる。このため、p[0]からp[3]への実装時間は500(msec)となり、実装順序入れ替え前と同じである。このため、総実装時間も変化しない。
実装点p[i+1]と実装点p[j]とのXY速度が同一でないか(S1104でNO)または総実装時間が短くなっていなければ(S1108でNO)、ループカウンタjの値を1つインクリメントする(S1114)。その後、ループカウンタjの値が(i+n+1)よりも小さいという条件を満たす間、S1104以下の処理を繰り返す(ループB)。なお、jがNを超えた場合には、jの代わりに「j mod N」を用い、(i+n+1)がNを超えた場合には、(i+n+1)の代わりに「(i+n+1) mod N」を用いるものとする。ループBの処理が終了した時点で2−OPT法(図13のS1012)を終了する。
実装点入れ替え後の総実装時間が実装点入れ替え前の総実装時間よりも短くなっていれば(S1108でYES)、第1部品実装順序決定部308aは、総実装時間を実装点入れ替え後の総実装時間に更新する(S1110)。また、第1部品実装順序決定部308aは、実装順配列pの要素の入れ替えを行なうことにより、実装順序の入れ替えを行なう(S1112)。なお、図21を用いて後述するように、実装点の入れ替えは、閉ループのパスの入れ替えに相当する。パスの入れ替えを行なうと、入れ替えた後のパスの途中に存在するパスの向きを逆にしなければ、閉ループとならない。このため、実装順序の入れ替えを行なう際には、このようにパスの向きを逆にする処理も合わせて行なう。これにより、巡回セールスマン問題における2−OPT法(図13のS1012)を終了する。
たとえば、i=0,j=4とした場合、実装点p[1](ここでは実装点1)と実装点p[4](ここでは実装点4)との入れ替え前の各実装点間の実装時間は、図20(a)の下段の表に示すようになる。また、実装点1と実装点4との入れ替え後の各実装点間の実装時間は図20(b)の下段の表に示すようになる。図21(a)および図21(b)は、実装点の入れ替え前と入れ替え後との巡回路をそれぞれ示した図である。すなわち、実装点1と実装点4とを入れ替えるということは、実装点0から実装点1へのパスと、実装点4から実装点5へのパスとを入れ替えることに相当する。
総実装時間に影響する部分の実装時間のみを考えると、実装点入れ替え前の実装点0から実装点1への実装時間はタクトテーブルよりt01=200(msec)であり、実装点4から実装点5への実装時間はタクトテーブルよりt45=380(msec)である。このため、これらの合計実装時間は580(msec)である。一方、実装点入れ替え後の実装点0から実装点4への実装時間はタクトテーブルよりt04=200(msec)であり、実装点1から実装点5への実装時間はタクトテーブルよりt15=100(msec)である。このため、これらの合計実装時間は300(msec)であり、実装点入れ替え前よりも短くなっていることがわかる。なお、実装点p[1]と実装点p[4]との入れ替えに伴い、図20(b)に示すように、p[1]とp[4]との間に存在する要素p[2]、p[3]の値の入れ替えも行なわれる。すなわち、p[2]の値が2から3に変わり、p[3]の値が3から2に変わる。これは、図21に示すように、p[1]とp[4]とを入れ替えたことにより、その間に存在しているp[1]からp[2]へのパス、p[2]からp[3]へのパスおよびp[3]からp[4]へのパスの方向が逆向きになることに起因する。なお、パスの方向を逆向きにしたとしても、上述のタクトテーブルの算出処理(S1004)においてtij=tjiとしてタクトテーブルを求めている。このため、パスの方向が変化した部分に関して言えば、総実装時間の変化には影響しない。
なお、図21の説明をまとめると、図21(b)においては、パスの方向を逆にしたとしても、当該パスを構成する実装点間の実装時間は変わらないという事例を説明している。また、最終目標は、閉ループの総実装時間が短くすることである。したがって、この条件に当てはまるようであれば、図21(a)から図21(b)のような実装順序の変更を行なってもよい。さらに、図21(b)では、ある2点の実装点の入れ替えを行なった場合には、適宜閉ループとなるようにパスの方向の入れ替えを行なわなければならないことを示している。
図22は、上述した第1部品実装順序決定部308aによる実装順序決定処理の処理結果を表す図である。図22(a)は、実装順配列pと、実装点間の実装時間を示した図である。図22(b)は、実際の基板上での実装点の巡回路と実装点間の実装時間を示した図である。実装順配列pによると実装点0、4、2、3、1、5、6および0の順で巡回路が生成され、総実装時間は10001001であることが示されている。ここで、図21(b)に示した閉ループの総実装時間を計算すると10001251であり、図22(b)に示した閉ループの総実装時間のほうが短いことが分かる。
図23は、図22(a)に示した実装順配列pと実装点情報配列Dataと、実装順序との関係を示した図である。図23(a)に示す実装順配列pの各要素の値は、図23(b)に示す実装点情報配列Dataのインデックスを示しており、実装順配列pと実装点情報配列Dataとの間の矢印が、実装点配列pの各要素が示す実装点情報配列Dataの要素を示している。すなわち、p[0]の値0は、1番目に実装される実装点の実装点情報配列Dataの要素のインデックスを示している。このため、Data[0]を示していることになる。Data[0]には、基板マーク1404の位置に関する情報が記憶されている。また、p[1]の値4は、2番目に実装される実装点の実装点情報配列Dataの要素のインデックスを示している。このため、Data[4]を示していることになる。Data[4]には、実装点4の実装点情報が記憶されている。以上のようにして求められた巡回路から基板マーク1404とダミー点1406とを除き、実装順配列pの値に基づいて、実装点情報配列Dataの並べ替えを行なうと、図23(c)に示されるように、実装点4、2、3、1および5の順に実装される実装点情報配列Dataが生成される。
図24は、実装点情報配列Dataの他の作成方法を説明するための図である。図24(a)に示すような実装点配列pと、図24(b)に示すような実装点情報配列Dataとが与えられているものとする。これらによると、巡回路のスタート点はダミー点であることが示されている。このため、図25に示されるような巡回路が生成される。このため、このような場合には、図23で説明したのと同様の方法に従い、図24(c)に示すような実装点情報配列Dataを作成した後、実装点情報配列Dataにおける実装順序を入れ替える作業を行なう。その結果、図22(c)に示されるような巡回路が生成されることになる。このようにして実装点情報配列Dataを求めることにより、基板マーク1404に近い実装点から部品が実装されることになる。
図26は、従来の方法と本願にかかる方法との実験結果を示す表である。
この表には、第1列目にサンプル番号を示しており、第2列目に実装点数を示しており、第3列目に部品種類数を示しており、第4列目に従来方法(貪欲法)により求められた実装順序に従い部品を実装した場合の総実装時間を示しており、第5列目は本願の方法である巡回セールスマン問題を用いて求められた実装順序に従い部品を実装した場合の総実装時間を示しており、第6列目は、第5列目に示す総実装時間に対する第4列目に示す総実装時間の百分比を示しており、第7列目は、本願の方法による実装順序を求めるのにかかる処理時間を示している。なお、従来方法と、本願の方法とではZ軸の部品カセットの並びは同じにして、条件をそろえている。
第6列目に示す改善率によると、すべてのサンプルにおいて、100%を超えており、最大で18.2%の改善(サンプルE)が見られる。また、実装順序を求めるために必要な処理時間もすべて1秒未満である。
以上説明したように、第1部品実装順序決定部308aによる部品実装順序決定処理によると、現実的な時間内で最適な部品実装順序を決定することができる。
以上、第1部品実装順序決定部308aによる部品実装順序決定処理について説明したが、この処理は上述した処理に限定されるものではない。
例えば、図13に示した部品実装順序の決定方法においては、実装点情報配列1307aをXYテーブルの移動速度が速い順(レベル値が小さい順)に並べ替えることにより初期巡回路を求めるようにしているが(図13のS1006)、貪欲法により初期巡回路を求めるようにしてもよい。このようにすることにより、その後の巡回セールスマン問題による部品実装順序の決定処理を高速に行なうことが可能になる。
また、上述の部品実装順序決定処理では、基板マーク1404の近傍にダミー点1406を設けるようにしているが、必ずしも基板マーク1404の近傍にダミー点1406を設ける必要はなく、予め定められた最初に部品が実装される部品実装点の近傍にダミー点1406を設けるようにしてもよい。
また、ダミー点1406は、予め定められた最初に部品が実装される部品実装点と同一の位置にあってもよい。
また、図2の動作時間短縮装置300のように、部品実装順序決定処理を切り換えて実行するのではなく、第1部品実装順序決定部308aによる部品実装順序決定処理のみを専用に実行するような構成であっても良い。
図27は、そのような構成を有する部品実装システムの外観図である。
部品実装システムは、基板上への部品の実装順序を決定するとともに、決定された実装順序に従って、基板上に部品を実装するシステムであり、部品実装機1010と、部品実装順序決定装置1300とを備えている。
図28は、部品実装順序決定装置の構成を示す機能ブロック図である。
部品実装順序決定装置1300は、基板上の部品の実装順序を決定するコンピュータであり、演算制御部1301、表示部1302、入力部1303、メモリ部1304、部品実装順序決定プログラム格納部1305、通信I/F(インターフェース)部1306およびデータベース部1307等から構成される。
この部品実装順序決定装置1300は、部品実装順序決定プログラムをパーソナルコンピュータ等の汎用のコンピュータシステムが実行することにより実現され、部品実装機1010と接続されていない状態で、スタンドアローンのシミュレータ(部品実装順序の決定ツール)としても機能する。
演算制御部1301は、CPU(Central Processing Unit)や数値プロセッサ等であり、ユーザからの指示等に従って、部品実装順序決定プログラム格納部1305からメモリ部1304に必要なプログラムをロードして実行し、その実行結果に従って、各構成要素1302〜1307を制御する。
表示部1302はCRT(Cathode-Ray Tube)やLCD(Liquid Crystal Display)等であり、入力部1303はキーボードやマウス等であり、これらは、演算制御部1301による制御の下で、部品実装順序決定装置1300と操作者とが対話する等のために用いられる。
通信I/F部1306は、LAN(Local Area Network)アダプタ等であり、部品実装順序決定装置1300と部品実装機1010との通信等に用いられる。メモリ部1304は、演算制御部1301による作業領域を提供するRAM(Random Access Memory)等である。
データベース部1307は、この部品実装順序決定装置1300による部品実装順序決定処理に用いられる入力データ(実装点情報配列1307aおよび変換テーブル1307b等)や部品実装順序決定処理により決定された部品の実装順序等を記憶するハードディスク等である。
部品実装順序決定プログラム格納部1305に格納されているプログラムは、演算制御部1301で実行された際に、上述の第1部品実装順序決定部308aとして機能するプログラムである。このため、演算制御部1301において、当該プログラムを実行することにより上述の第1部品実装順序決定部308aと同様の処理を実行することができる。
なお、第1部品実装順序決定部308aは、ロータリー式の部品実装機1010を対象として部品実装順序の最適化処理を行なったが、第1部品実装順序決定部308aによる処理は、ラジアル部品送入機と呼ばれる部品実装機に適用することも可能である。
図29は、ラジアル部品挿入機と呼ばれる部品実装機の構成の一例を示す外観図である。この部品実装機1500は、いわゆるラジアル部品挿入機とよばれるものであって、ラジアル部品のリードを基板のスルーホールに挿入することで、そのラジアル部品を基板に実装する。
部品実装機1500は、部品供給部1510と、部品搬送部1520と、ヘッド1530と、搬送ローダ1540と、XYテーブル1550と、2つのICタグリーダ1611とを備えている。
図30は、部品実装機1500の主要構成を概念的に示す図である。
部品供給部1510は、複数のラジアル部品を蓄えておき、そのラジアル部品を部品搬送部1520に受け渡すものであって、部品収納部1511と、複数のガイド1512と、複数のカセット1513とを備えている。
部品収納部1511は、一群の同種のラジアル部品Cを包装する部品供給手段たるパック1511aを複数個収納している。一群の同種のラジアル部品Cは一列に並んで1本のテープに保持されている。即ち、上述のパック1511aは、このようなラジアル部品Cを保持するテープ(部品テープ)tを折り重ねた状態で包装している。
ガイド1512は、部品収納部1511のパック1511aから引き出される部品テープtをカセット1513に案内する。
カセット1513は、部品テープtを部品収納部1511のパック1511aから引き出して連続的な送り動作を行う。そして、カセット1513は、送り出される部品テープtを先端側から切断することにより、その部品テープtに保持されている複数のラジアル部品Cを順に分離して部品搬送部1520に供給する。
部品搬送部1520は、カセット1513から供給されるラジアル部品Cをヘッド1530に搬送するものであって、3つのプーリ1521と、コンベアベルト1522と、複数のチャック保持部1523と、プーリ1521を回転駆動させる駆動機構(図示せず)とを備えている。
コンベアベルト1522は、例えば合成樹脂性で環状に形成されており、3つのプーリ1521により略三角形状に張架されている。そしてコンベアベルト1522は、プーリ1521の回転駆動によって巡回する。
複数のチャック保持部1523は、それぞれ略等間隔に間を空けてコンベアベルト1522に取着されており、ラジアル部品Cを保持(把持)するように構成されている。
このような部品搬送部1520は、カセット1513から供給されるラジアル部品Cがコンベアベルト1522のチャック保持部1523に保持されることにより、ラジアル部品Cをカセット1513からヘッド1530へ順次搬送する。
搬送ローダ1540は、図29に示すように、基板BをXYテーブル1550まで搬入し、部品実装された基板Bを部品実装機1500の外部に搬出する。
XYテーブル1550は、基板Bを実装面に沿って2次元の方向に移動させる。
ヘッド1530は、部品搬送部1520により搬送されるラジアル部品Cを取得して保持し、XYテーブル1550上に設置された基板B上にそのラジアル部品Cを実装する。
2つのICタグリーダ1611は、部品収納部1511内に配設されており、各パック1511aに取り付けられているICタグ1511bから後述する部品情報を読み出す。また、各ICタグ1511bから出力される信号は、互いに異なる位置に配設された2つのICタグリーダ1611に取得されるため、その取得された信号に基づいて各ICタグ1511bの位置が特定される。つまり、各ICタグ1511bは、各パック1511aに取り付けられているため、各パック1511aの位置(Z番号「Z1,Z2,…」)が特定される。
また、第1部品実装順序決定部308aによる処理は、基板上にジャンパー部品を挿入するジャンパー挿入機や、アキシャル部品を挿入するアキシャル挿入機と呼ばれる部品実装機に適用することも可能である。
[第2部品実装順序決定部308bについて]
第2部品実装順序決定部308bが対象とする部品実装機は、図1に示したモジュラー式の部品実装機2100である。
図31は、本発明に係る部品実装機2100の主要な構成を示す平面図である。
シャトルコンベヤ2118は、トレイ供給部2117から取り出された部品を載せて、ヘッド2112による吸着可能な所定位置まで運搬するための移動テーブル(部品搬送コンベア)である。ノズルステーション2119は、各種形状の部品種に対応するための交換用ノズルが置かれるテーブルである。
各サブ設備2110(又は2120)を構成する2つの部品供給部2115a及び2115bは、それぞれ、部品認識カメラ2116を挟んで左右に配置されている。したがって、部品供給部2115a又は2115bにおいて部品を吸着したヘッド2112は、部品認識カメラ2116を通過した後に、基板2020の実装点に移動し、吸着した全ての部品を順次装着していく動作を繰り返す。「実装点」とは、部品を装着すべき基板2020上の座標点のことであり、同一部品種の部品が異なる実装点に装着される場合もある。同一の部品種に係る部品テープに並べられた部品(実装点)の個数の合計は、その部品種の部品数(装着すべき部品の総数)と一致する。
ここで、ヘッド2112による部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の動作(吸着・移動・装着)、又はそのような1回分の動作によって装着される部品群を「タスク」と呼ぶ。例えば、10ノズルヘッドによれば、1個のタスクによって装着される部品の最大数は10となる。なお、ここでいう「吸着」には、ヘッド2112が部品を吸着し始めてから移動するまでの全ての吸着動作が含まれ、例えば、1回の吸着動作(ヘッド2112の上下動作)で10個の部品を吸着する場合だけでなく、複数回の吸着動作によって10個の部品を吸着する場合も含まれる。
図32は、ヘッド2112と部品カセット2114の位置関係を示す模式図である。このヘッド2112は、「ギャングピックアップ方式」と呼ばれる作業ヘッドであり、最大10個の吸着ノズル2112aを取り付けることが可能であり、このときには、最大10個の部品カセット2114のそれぞれから部品を同時に(1回の上下動作で)吸着することができる。
なお、「シングルカセット」と呼ばれる部品カセット2114には1つの部品テープだけが装填され、「ダブルカセット」と呼ばれる部品カセット2114には2つの部品テープが装填される。また、部品供給部2115a及び2115bにおける部品カセット2114(又は、部品テープ)のセット位置を「Z軸上の値」又は「Z軸上の位置(Z番号)」と呼び、Z番号には、部品供給部2115aの最左端を「Z1」とする連続番号等が用いられる。「Z軸」とは、部品実装機(サブ設備を備える場合には、サブ設備)ごとにセットされる部品カセット2114の配列位置(セット位置)を特定する座標軸のことをいう。
以下、第2部品実装順序決定部308bの実行する部品実装順序決定処理について説明する。第2部品実装順序決定部308bの実行する部品実装順序決定処理と第1部品実装順序決定部308aの実行する部品実装順序決定処理とは、ほぼ同様であるが、基板上の実装点iから実装点jまでの実装時間tijを求める式が、上述の式(2)とは異なる。
すなわち、次式(4)に従い、実装時間tijを求める。
tij=txy(Δx’y’) (4)
Δx’y’=max{|x’i−x’j|,|y’i−y’j|}
:基板2020上での補正後の実装点iと補正後の実装点jとの間の距離
txy(Δx’y’):Δx’y’を変換テーブル1307bに基づいて時間に置き換えた値
図33(a)は、ヘッド2112を側面から見た図、図33(b)は、ヘッド2112を底面から見た図である。以下では、説明の簡単化のために吸着ノズル2112aの本数は4本であるものと仮定する。吸着ノズル2112aには、1から4までノズル番号が付されているものとする。また、4本の吸着ノズル2112aの中心をヘッド中心2502とする。図33(a)に示すように、1番目の吸着ノズル2112aは、ヘッド中心2502から左に30だけx座標がずれている。同様に、2番目の吸着ノズル2112aは、ヘッド中心2502から左に10だけx座標がずれている。また、3番目および4番目の吸着ノズル2112aは、ヘッド中心2502から右に10および30だけそれぞれx座標がずれている。
図34は、基板2020の一例を示す図である。基板2020には2個の基板マーク2402および2404が予め形成されており、その上に、4つの実装点(実装点1〜実装点4)設けられているものとする。4個の実装点は、部品実装機2010により部品が実装される点である。基板マーク2402および基板マーク2404は、基板2020の位置決めのために、ヘッド2112に設けられた基板認識カメラ(図示せず)により撮像され、その位置が認識される。なお、先に基板マーク2402の位置が認識され、次に基板マーク2404の位置が認識されるものとする。なお、4つの実装点の座標は図に示すとおりであるものとする。例えば、実装点1の座標は(x,y)=(100,100)である。
その他にも、ダミー点2406と呼ばれる仮想的な点が基板2020の外部に設けられている。具体的には、ダミー点2406は、図35に示すように、部品供給部2115a又は2115bに複数ある部品カセット2114の中央の部品カセットの部品供給口に設けられる。例えば、部品カセット2114が9つある場合には(Z軸の値が1から9)、Z軸の値が5の部品カセット2114の部品供給口にダミー点2406が設けられる。
なお、第2部品実装順序決定部308bによる処理では、ダミー点2406を部品実装順序決定問題を閉回路モデル化する際の開始点および終了点とし、閉回路における途中の点とする。なお、閉回路モデル化された実装順序決定問題は、例えば巡回セールスマン問題に相当する。
図36は、実装点情報配列1307aの一例を示す図である。この処理では、図10に示した実装点情報配列1307aと異なり、実装点情報配列1307aにおける開始点および終了点の両方をダミー点としていることである。また、実装点情報が図10に示したものと異なる。すなわち、実装点情報は、実装点の座標である「x座標」および「y座標」と、実装点に装着される部品を吸着する吸着ノズル2112aの番号である「吸着ノズル番号」と、吸着ノズル2112aの位置に基づいて「x座標」および「y座標」を補正した「x’座標」および「y’座標」とを含む。
図37は、「x’座標」および「y’座標」の算出方法について説明するための図である。同図に示すように実装点1、2、3および4に実装される部品をノズル番号2、1、4および3の吸着ノズル2112aが吸着するものとする。図33に示したようにノズル番号1の吸着ノズル2112aはヘッド中心2502から左に30だけずれている。このため、実装点2の座標は(x,y)=(150,150)ではあるが、実装点2の実装時におけるヘッド中心2502の座標(x’,y’)は、(180(=150+30),150)となる。このように、「x’座標」および「y’座標」は、部品実装時のヘッド中心2502の座標を示している。
図38は、第2部品実装順序決定部308bが実行する処理のフローチャートである。
最適化データ読み込み処理(S1002)は、第1部品実装順序決定部308aが実行する処理と同様である。第2部品実装順序決定部308bは、読み込んだ実装点情報配列1307aの実装点座標を上述のように変換して、x’座標およびy’座標を求める(2002)。
第2部品実装順序決定部308bは、求められた実装点のx’座標およびy’座標およびダミー点の座標に基づいて、図15に示したようなタクトテーブルを作成する(S2004)。その後の処理(S1006〜S1018)は、第1部品実装順序決定部308aが実行する処理と同様である。このため、その詳細な説明はここでは繰り返さない。
以上のような処理を行なうことにより、モジュラー式の部品実装機における最適な部品実装順序を決定することができる。これにより、部品実装機の動作時間を短縮することができる。
なお、上述の方法では、図37に示したように吸着ノズル2112aに保持される部品種は予め固定されている。以下の例では、吸着ノズル2112aに保持される部品種のパターンを2種類用意して、部品の実装時間が小さくなる方の部品種のパターンを採用する。
図39は、第2部品実装順序決定部308bが実行する処理のフローチャートである。
第2部品実装順序決定部308bは、1つのタスクを構成する部品群を決定する(S2102)。部品群の決定方法としては、実装部品の員数の多いものから順に1つずつ部品を選択するような方法が考えられる。例えば、図40(a)に示すような員数ヒストグラムを考えた場合に、員数の多い部品AからDまでを1つのタスクに含まれる部品群とする。
次に、第2部品実装順序決定部308bは、吸着優先で部品の吸着ノズル番号を決定する(S2104)。すなわち、部品吸着に時間がかからないような順番で部品を吸着するノズル番号を決定する。例えば、図40(b)に示すように、部品カセット2114が部品A、B、CおよびDの順で並んでいるとする。この場合、図40(c)に示すように、ノズル番号が1の吸着ノズル2112aに部品Aを吸着させ、ノズル番号が2の吸着ノズル2112aに部品Bを吸着させ、ノズル番号が3の吸着ノズル2112aに部品Cを吸着させ、ノズル番号が4の吸着ノズル2112aに部品Dを吸着させるのが部品吸着に時間がかからない。
次に、第2部品実装順序決定部308bは、S2104の処理で図40(c)のように求められた吸着優先の部品の吸着パターンに基づいて、部品実装順序の最適化処理を行なう(S2106)。最適化処理(S2106)は、図38に示した処理と同様であるため、説明は繰り返さない。
次に、第2部品実装順序決定部308bは、装着優先で部品の吸着ノズル番号を決定する(S2108)。すなわち、基板2020への部品装着に時間がかからないであろうと思われる順番で部品を吸着するノズル番号を決定する。ここでは、ノズル番号が小さい吸着ノズル2112aほど実装点のx座標の小さい部品が吸着されるように部品の吸着ノズル番号を決定する。このような決定方法にすることにより、補正後のx座標(x’座標)が基板2020の中央によることになり、ヘッド2112の装着時の移動距離を小さくすることができると考えられるためである。
例えば、図41(a)に示すような実装点の並びの場合には、図41(b)に示すように、ノズル番号が1の吸着ノズル2112aに部品Aを吸着させ、ノズル番号が2の吸着ノズル2112aに部品Dを吸着させ、ノズル番号が3の吸着ノズル2112aに部品Cを吸着させ、ノズル番号が4の吸着ノズル2112aに部品Bを吸着させる。
次に、第2部品実装順序決定部308bは、S2108の処理で図41(b)のように求められた装着優先の部品の吸着パターンに基づいて、部品実装順序の最適化処理を行なう(S2110)。最適化処理(S2110)は、図38に示した処理と同様であるため、説明は繰り返さない。
第2部品実装順序決定部308bは、吸着優先で決定された部品実装順序における総実装時間(以下、「吸着優先総実装時間」という。)と、装着優先で決定された部品実装順序における総実装時間(以下、「装着優先総実装時間」という。)とを比較する(S2112)。
吸着優先総実装時間のほうが装着優先総実装時間よりも小さい場合には(S2112でYES)、第2部品実装順序決定部308bは、吸着優先で決定された部品の吸着パターンと部品の実装順序を採用する(S2114)。一方、装着優先総実装時間が吸着優先総実装時間以下の場合には(S2112でNO)、第2部品実装順序決定部308bは、装着優先で決定された部品の吸着パターンと部品の実装順序を採用する(S2116)。
以上の処理により、各吸着ノズル2112aに保持される最適な部品種を決定することができる。
なお、第2部品実装順序決定部308bの実行する処理は、ロータリーヘッドが移動しながら基板上に部品を実装するモジュラー式の部品実装機にも適用することができる。
以下に、そのようなロータリーヘッドを2種類説明する。
図42は、ロータリーヘッドの斜視図である。
ロータリーヘッド2405は、並設された同一機能の第1ヘッドユニット2405aおよび第2ヘッドユニット2405bを備える。各ヘッドユニットは略同一機能のユニットであるため、以下では第1ヘッドユニット2405aの構造についてのみ説明する。
第1ヘッドユニット2405aは、固定台2410と、固定台2410上に配置された複数(図42においては6つ)のノズル昇降モータ2411と、部品を吸着保持する複数の吸着ノズル2412と、吸着ノズル2412を着脱自在に保持する吸着部2413と、複数のカム管2414と、A軸またはA’軸を中心として吸着ノズル2412を回転させるθモータ2415とを備える。
上記構造を有する第1ヘッドユニット2405aにおいて、θモータ2415による回転動により、複数の吸着ノズル2412は、相対位置を変化させることなく、A軸を中心として回転する。そして、ノズル昇降モータ2411の直下に移動した吸着ノズル2412は、直上のノズル昇降モータ2411による押圧により下方に移動する。また、吸着ノズル2412に吸着した部品の角度を補正する場合には、θモータ2415による回転動により、吸着ノズル2412は、A’軸を中心として回転する。
なお、ロータリーヘッドは、吸着ノズルの組が複数備えられ各組の吸着ノズルが同一方向を向いて回転する構造を有するとしたが、放射状に異なる方向を向いた吸着ノズルの組が回転する構造を有していてもよい。すなわち、ロータリーヘッドは、図43に示されるように、並設された同一機能の第1ヘッドユニット2460aおよび第2ヘッドユニット2460bを備え、第1ヘッドユニット2460aおよび第2ヘッドユニット2460bが、ユニット外枠2461と、回転自在にユニット外枠2461に取り付けられたサブヘッド2462と、サブヘッド2462を回転駆動するサブヘッド回転モータ2463と、部品を吸着保持する吸着ノズル2464と、サブヘッド2462の下端位置の吸着ノズル2464を下降動作させる押し下げ機構2465と、撮像部2466とをそれぞれ備える構造をしていてもよい。
なお、図43に示したロータリーヘッドのように、部品の吸着から装着までの間に撮像部2466(部品認識カメラ)を備える場合には、部品の吸着から装着までの間に、部品の認識が終了している。このため、このような場合には、吸着ノズルが部品を吸着してから装着位置に移動するまでの間に部品認識の動作が行なわれるため、部品認識時間を無視することができ、装着時間と吸着時間とが等しいとみなせるという特徴がある。
以下に、このようなロータリーヘッドを用いた部品実装順序の最適化処理について説明する。
図44は、図42に示したロータリーヘッド2405を備える部品実装機を上方から見たときの模式図である。
なお、ここでは、説明の簡単化のために、ヘッドユニットは1つであるものとし、吸着ノズル2412の本数は4本であるものとする。ロータリーヘッド2405は、上方から見た場合に、時計回りに回転をしながら部品を吸着する。ロータリーヘッド2405に吸着されるタスクが部品A、B、CおよびDからなり、部品供給部2115aに同図のように部品カセット2114が並んでいるものとする。この場合に、ロータリーヘッド2405が図中右側から左側へ移動しながら部品の吸着を行なう場合には、1番目の吸着ノズル2412に部品Dを吸着させ、2番目の吸着ノズル2412に部品Cを吸着させ、3番目の吸着ノズル2412に部品Bを吸着させ、4番目の吸着ノズル2412に部品Aを吸着させるのが吸着動作に時間がかからない。
一方、図45に示すようにロータリーヘッド2405が図中左側から右側へ移動しながら部品の吸着を行なう場合には、1番目の吸着ノズル2412に部品Aを吸着させ、2番目の吸着ノズル2412に部品Bを吸着させ、3番目の吸着ノズル2412に部品Cを吸着させ、4番目の吸着ノズル2412に部品Dを吸着させるのが吸着動作に時間がかからない。
このようにして求められた部品の吸着パターンに基づいて、図38に示したS2004以降の処理を行なうことにより、ロータリーヘッドを備えるモジュラー式の部品実装機における最適な部品実装順序を決定することができる。これにより、部品実装機の動作時間を短縮することができる。
また、図39に示したのと同様に、吸着ノズル2112aに保持される部品種のパターンを2種類用意して、部品の実装時間が小さくなる方の部品種のパターンを採用するようにしてもよい。
ここで、吸着優先の部品の吸着パターンは、図44または図45に示したいずれかの吸着パターンである。また、装着優先の部品の吸着パターンは、図46(a)に示すような実装点のならびの場合には、図46(b)に示すように、実装点のx座標に基づいて、1番目の吸着ノズル2412に部品Aを吸着させ、2番目の吸着ノズル2412に部品Dを吸着させ、3番目の吸着ノズル2412に部品Cを吸着させ、4番目の吸着ノズル2412に部品Bを吸着させるように決定される(S2108)。
以上のように決定された吸着優先の部品の吸着パターンおよび装着優先の装着パターンに基づいて、図39に示したのと同様の処理を行なうことにより、各吸着ノズル2112aに保持される最適な部品種を決定することができる。
なお、図2の動作時間短縮装置300のように、部品実装順序決定処理を切り換えて実行するのではなく、第2部品実装順序決定部308bによる部品実装順序決定処理のみを専用に実行するよう部品実装順序決定装置を動作時間短縮装置300の代わりに用いても良い。部品実装順序決定装置は、図28を参照して説明したものと同様である。
以上、本発明の実施の形態に係る部品実装システムについて説明したが、本発明は、この実施の形態に限定されるものではない。
例えば、上述の実施の形態では、動作時間短縮装置300の動作ロス特定部305aおよび処理手順選択部305bが最適化プログラム格納部308よりプログラムの選択を行なったが、ユーザが最適化プログラム格納部308よりプログラムを選択するようにしても良い。
図47は、ユーザが最適化プログラム格納部308よりプログラムを選択する際の動作時間短縮装置300が実行する処理のフローチャートである。
演算制御部301は、オペレータに対象となる部品実装機の種別を選択されるための画面を表示部302に出力する(S2)。例えば、図48に示されるような画面400が表示部302に出力される。ここでは、部品実装機を装着ヘッドが1つしかないモジュラー式(片方打ち)、装着ヘッドが複数あるモジュラー式(交互打ち)およびロータリー式の3種類に分類し、それぞれの部品実装機に対応するボタン402〜406を表示している。
オペレータが入力部303を操作してボタン402〜406のいずれかを押下すると(S4)、対応する部品実装機に適用可能な最適化方法の選択画面を演算制御部301が表示部302に出力する(S6)。図49および図50は、表示部302に表示される画面の一例を示す図である。
図49は、モジュラー式(片方打ち)の部品実装機に対応するボタン402を押下した際の画面410を示しており、モジュラー式(片方打ち)に適用可能な4つの最適化方法に対応するボタン412〜418を表示している。ボタン412、414、416および418は、第4部品実装順序決定部308dを実現するためのプログラム、第5部品実装順序決定部308eを実現するためのプログラム、第6部品実装順序決定部308fを実現するためのプログラムおよび第2部品実装順序決定部308bを実現するためのプログラムにそれぞれ対応する。
図50は、モジュラー式(交互打ち)の部品実装機に対応するボタン404を押下した際の画面420を示しており、モジュラー式(交互打ち)に適用可能な3つの最適化方法に対応するボタン422、416および418を表示している。ボタン422、416および418は、第3部品実装順序決定部308c、第6部品実装順序決定部308fおよび第2部品実装順序決定部308bを実現するためのプログラムにそれぞれ対応する。
オペレータが入力部303を操作して、画面410または画面420に表示されたボタン412〜418および422のいずれかを押下すると、処理手順選択部305bが欧化されたボタンに対応付けられた部品実装順序決定部を実現するためのプログラムを最適化プログラム格納部308より読み出し、メモリ部304にロードする(S8)。演算制御部301がメモリ部304にロードされたプログラムを実行することにより、いずれかの部品実装順序決定部が部品実装順序を最適化する(S10)。
例えば、オペレータが図49に示した画面410に表示されたボタン412を押下した場合には、処理手順選択部305bが、第4部品実装順序決定部308dを実現するためのプログラムを最適化プログラム格納部308よりメモリ部304にロードする(S8)。次に、演算制御部301がそのプログラムを実行することにより、第4部品実装順序決定部308dが、部品実装順序を最適化する(S10)。
なお、ロータリー式の部品実装機に適用可能なプログラムは、第1部品実装順序決定部308aを実現するためのプログラムのみである。このため、図48に示した画面400において、ロータリー式の部品実装機に対応するボタン406を押下した際には、図49または図50に示すような最適化方法を選択するための画面は表示されず、処理手順選択部305bが最適化プログラム格納部308より第1部品実装順序決定部308aを実現するためのプログラムをメモリ部304にロードし、演算制御部301がそのプログラムを実行する。これにより、第1部品実装順序決定部308aが、部品実装順序を最適化する。