以下、本発明の実施の形態について図面を用いて詳細に説明する。
図1は、本発明に係る部品実装システム10全体の構成を示す外観図である。この部品実装システム10は、上流から下流に向けて回路基板20を送りながら電子部品を実装していく生産ラインを構成する複数の部品実装機100、200と、生産の開始等にあたり、各種データベースに基づいて必要な電子部品の実装順序を最適化し、得られたNC(Numeric Control)データを部品実装機100、200にダウンロードして設定・制御する
最適化装置300とからなる。
部品実装機100は、同時かつ独立して、または、お互いが協調して(または、交互動作にて)部品実装を行う2つのサブ設備(前サブ設備110および後サブ設備120)を備える。各サブ設備110(120)は、直交ロボット型装着ステージであり、部品テープを収納する最大48個の部品カセット114の配列からなる2つの部品供給部115aおよび115bと、それら部品カセット114から最大10個の部品を吸着し基板20に装着することができる10個の吸着ノズル(以下、単に「ノズル」ともいう。)を有する装着ヘッド112(10ノズルヘッド)と、その装着ヘッド112を移動させるXYロボット113と、装着ヘッド112に吸着された部品の吸着状態を2次元または3次元的に検査するための部品認識カメラ116と、トレイ部品を供給するトレイ供給部117等を備える。
なお、「部品テープ」とは、現実は、同一部品種の複数の部品がテープ(キャリアテープ)上に並べられたものであり、リール(供給リール)等に巻かれた状態で供給される。主に、チップ部品と呼ばれる比較的小さいサイズの部品を部品実装機に供給するのに使用される。ただし、最適化処理においては、「部品テープ」とは、同一の部品種に属する部品の集合(それら複数個の部品が仮想的なテープ上に並べられたもの)を特定するデータであり、「部品分割」と呼ばれる処理によって、1つの部品種に属する部品群(1本の部品テープ)が複数本の部品テープに分割される場合がある。また、部品テープによって供給される部品をテーピング部品と呼ぶ。
この部品実装機100は、ほぼ全ての種類の電子部品(装着対象となる部品として、0.6mm×0.3mmのチップ抵抗から200mmのコネクタまで)を装着できるように設計されており、この部品実装機100を必要台数だけ並べることで、生産ラインを構成することができる。
図2は、図1に示された部品実装機100の主要な構成を示す平面図である。シャトルコンベヤ118は、トレイ供給部117から取り出された部品を載せて、装着ヘッド112による吸着可能な所定位置まで運搬するための移動テーブル(移動コンベア)である。ノズルステーション119は、各種形状の部品種に対応する交換用の吸着ノズルが置かれるテーブルである。
各サブ設備110(または120)を構成する2つの部品供給部115aおよび115bは、それぞれ、部品認識カメラ116を挟んで左右に配置されている。したがって、部品供給部115aまたは115bにおいて部品を吸着した装着ヘッド112は、部品認識カメラ116を通過した後に、基板20の実装点に移動し、吸着した全ての部品を順次装着していく動作を繰り返す。
なお、各サブ設備に向かって左側の部品供給部115aを「左ブロック」、右側の部品供給部115bを「右ブロック」とも呼ぶ。また、装着ヘッド112による部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の動作(吸着・移動・装着)、または、そのような1回分の動作によって実装される部品群)を「タスク」と呼ぶ。例えば、本部品実装機100が備える装着ヘッド112によれば、1個のタスクによって実装される部品の最大数は10となる。なお、ここでいう「吸着」には、ヘッドが部品を吸着し始めてから移動するまでの全ての吸着動作が含まれ、例えば、1回の吸着動作(装着ヘッド112の上下動作)で10個の部品を同時に吸着する場合だけでなく、複数回の吸着動作によって10個の部品を吸着する場合も含まれる。
図3(a)は、装着ヘッド112と部品カセット114の位置関係を示す模式図である。この装着ヘッド112は、「ギャングピックアップ方式」と呼ばれる作業ヘッドであり、独立して部品の吸着・装着を行う最大10個の吸着ノズル112a〜112b(向かって左端に装着された第1番目の吸着ノズル112aから右端に装着された第10番目の吸着ノズル112bまでの合計10個の吸着ノズル)が着脱可能であり、最大10個の部品カセット114それぞれから部品を同時に(1回の上下動作で)吸着することができる。つまり、装着ヘッド112は、部品供給部115aおよび115bに移動し、部品を吸着する。このとき、例えば、一度に10個の部品を同時に吸着できないときは、吸着位置を移動させながら複数回、吸着上下動作を行うことで、最大10個の部品を吸着することができる。
なお、装着ヘッド112に装着される10個の吸着ノズル112a〜112bの位置(ヘッド位置)を、部品供給部115aおよび115bから装着ヘッド112を見た場合の装着ヘッド112の左端より、ヘッド番号1(H1)、ヘッド番号2(H2)、…、ヘッド番号10(H10)と呼ぶ。また、本発明の部品実装順序最適化方法は、図3(a)に示されるような一列に吸着ノズルが並べられた一連式装着ヘッドだけに限られず、図3(b)に示されるような2列に吸着ノズルが並べられた2連式装着ヘッドにも適用することができる。
部品カセット114の種類には、「シングルカセット」と呼ばれるタイプと、「ダブルカセット」と呼ばれるタイプがある。「シングルカセット」と呼ばれる部品カセット114には1つの部品テープだけが装填され、「ダブルカセット」と呼ばれる部品カセット114には2つの部品テープ(ただし、送りピッチ(2mmまたは4mm)が同一の部品テープに限られる)が装填される。また、部品供給部115aおよび115bにおける部品カセット114(または、部品テープ)の位置を「Z軸上の値」または「Z軸上の位置」と呼び、部品供給部115aの最左端を「1」とする連続番号等が用いられる。したがって、テーピング部品の並びを決定することは、部品種(または、部品テープ、部品テープを収納した部品カセット114)の並び、つまり、Z配列を決定することに等しい。
図4は、装着ヘッド112に装着される吸着ノズル112a〜112bの例を示す外観図である。本図に示されるように、吸着ノズルの種類としては、吸着する部品のサイズや重量に応じて、複数のタイプ(S,M,Lなど)が用意されている。装着ヘッド112は、部品の吸着に必要なノズルが装着ヘッド112にないときには、その吸着ノズルが置かれたノズルステーション119へ移動し、そこでノズル交換を行ったうえで、部品カセット114へ移動し、部品を吸着する。
図5は、テーピング部品の例を示す図である。テーピング部品は、図5(a)、(b)、(c)、(d)に示される各種チップ形電子部品423a〜423dを図5(e)に示されるキャリアテープ424に一定間隔で複数個連続的に形成された収納凹部424aに収納し、この上面にカバーテープ425を貼付けて包装し、供給用リール426に所定の数量分を巻回したテーピング形態(部品テープ)でユーザに供給される。
図6は、本発明の実施の形態における最適化装置300a、つまり、図1に示された最適化装置の一構成例を示すブロック図である。この最適化装置300aは、生産ラインを構成する各設備の仕様等に基づく各種制約の下で、対象となる基板の部品実装におけるラインタクト(ラインを構成するサブ設備ごとのタクトのうち、最大のタクト)を最小化するように、部品実装用CAD装置等から与えられた全ての部品を対象として、各サブ設備で実装すべき部品および各サブ設備における部品の実装順序を決定し、最適なNCデータを生成するコンピュータ装置であり、演算制御部301、表示部302、入力部303、メモリ部304、最適化プログラム格納部305、通信I/F(インターフェース)部306およびデータベース部307等から構成される。
この最適化装置300aは、本発明に係る最適化プログラムをパーソナルコンピュータ等の汎用のコンピュータシステムが実行することによって実現され、部品実装機100と接続されていない状態で、スタンドアローンのシミュレータ(部品実装順序の最適化ツール)としても機能する。
演算制御部301は、CPU(Central Processing Unit)や数値プロセッサ等であり、ユーザからの指示等に従って、最適化プログラム格納部305からメモリ部304に必要なプログラムをロードして実行し、その実行結果に従って、各構成要素302〜307を制御する。
表示部302はCRT(Cathode-Ray Tube)やLCD(Liquid Crystal Display)等であり、入力部303はキーボードやマウス等であり、これらは、演算制御部301による制御の下で、本最適化装置300aと操作者とが対話する等のために用いられる。
通信I/F部306は、LAN(Local Area Network)アダプタ等であり、本最適化装置300aと部品実装機100、200との通信等に用いられる。メモリ部304は、演算制御部301による作業領域を提供するRAM(Random Access Memory)等である。
データベース部307は、この最適化装置300aによる最適化処理に用いられる入力データ(実装点データ307a、部品ライブラリ307bおよび実装装置情報307c等)や最適化によって生成された実装点データ等を記憶するハードディスク等である。
図7〜図9は、それぞれ、実装点データ307a、部品ライブラリ307bおよび実装装置情報307cの例を示す図である。
実装点データ307aは、実装の対象となる全ての部品の実装点を示す情報の集まりである。図7に示されるように、1つの実装点piは、部品種ci、X座標xi、Y座標yi、制御データφiからなる。ここで、「部品種」は、図8に示される部品ライブラリ307bにおける部品名に相当し、「X座標」および「Y座標」は、実装点の座標(基板上の特定位置を示す座標)であり、「制御データ」は、その部品の実装に関する制約情報(使用可能な吸着ノズルのタイプ、装着ヘッド112の最高移動速度等)である。なお、最終的に求めるべきNCデータとは、ラインタクトが最小となるような実装点の並びである。
部品ライブラリ307bは、部品実装機100、200が扱うことができる全ての部品種それぞれについての固有の情報を集めたライブラリであり、図8に示されるように、部品種ごとの部品サイズ、タクト(一定条件下における部品種に固有のタクト)、その他の制約情報(使用可能な吸着ノズルのタイプ、部品認識カメラ116による認識方式、装着ヘッド112の最高速度比等)からなる。なお、本図には、参考として、各部品種の部品の外観も併せて示されている。
実装装置情報307cは、生産ラインを構成する全てのサブ設備ごとの装置構成や上述の制約等を示す情報であり、図9に示されるように、装着ヘッドのタイプ等に関するヘッド情報、装着ヘッドに装着され得る吸着ノズルのタイプ等に関するノズル情報、部品カセット114の最大数等に関するカセット情報、トレイ供給部117が収納しているトレイの段数等に関するトレイ情報等からなる。これらの情報は、以下のように呼ばれるデータである。つまり、設備オプションデータ(サブ設備毎)、リソースデータ(設備毎で利用可能なカセット本数とノズル本数)、ノズルステーション配置データ(ノズルステーション付きのサブ設備毎)、初期ノズルパターンデータ(サブ設備毎)、Z軸配置データ(サブ設備毎)等である。
最適化プログラム格納部305は、本最適化装置300aの機能を実現する各種最適化プログラムを記憶しているハードディスク等である。最適化プログラムは、部品の実装順序を最適化するプログラムであり、機能的に(演算制御部301によって実行された場合に機能する処理部として)、ノズルセット決定部305a、ノズルパターン・Z配列決定部305bおよび実装順序最適化部305cから構成される。
ノズルセット決定部305aは、全ての部品を実装するのに使用する最適な1以上のノズルセットを決定する処理部である。ここで、ノズルセットとは、部品の実装のために装着ヘッド112に装着される吸着ノズルの組み合わせであり、10ノズルヘッドの場合、10個以下の吸着ノズルの種類および個数で特定される。たとえば、ノズルセットの一例として、2個のSタイプの吸着ノズルと8個のMタイプの吸着ノズルからなる組み合わせである。このとき、各吸着ノズルが装着される装着ヘッド112のヘッド位置は限定されない。このノズルセット決定部305aは、装着ヘッド112による吸着ノズルの交換回数(ノズル交換回数)および全部品を実装するのに必要なタスクの数(タスク数)の観点から、より短い時間で全部品の実装を終えることが可能なノズルセットを特定する。
ノズルパターン・Z配列決定部305bは、ノズルセット決定部305aによって決定されたノズルセットから、最適なノズルパターンおよびZ配列を決定する。このノズルパターン・Z配列決定部305bは、ノズルセット決定部305aで決定されたノズルセットについて、各ノズルセットを構成する各種吸着ノズルの位置(装着ヘッド112におけるヘッド位置)を決定する(吸着ノズルのタイプと装着ヘッド112のヘッド位置とを具体的に対応づける)とともに、ノズルセットの単位で並びを決定することで、ノズルパターンを決定する。また、ノズルパターン・Z配列決定部305bは、ノズルパターンを決定するのと同時にZ配列を決定する。
実装順序最適化部305cは、ノズルパターン・Z配列決定部305bで決定されたノズルパターンおよびZ配列の下で(ノズルパターンとZ配列を維持したまま)、実装順序を最適化し、最終的な成果としてのNCデータを生成する。ここでの実装順序の最適化とは、ノズルパターン、Z配列が固定された状況下で、基板上の各実装点を最適に順序付けすることである。なお、実装順序の最適化方法については、各種方法が提案されており、本願の主眼ではない。このため、その詳細な説明はここでは省略する。
このように、最適化プログラムは、ノズルセット決定部305aにより、ノズルセットを決定した後に、ノズルパターン・Z配列決定部305bにより、ノズルパターンおよびZ配列を決定し、実装順序最適化部305cにより、残る実装順序の最適化を行っている。よって、ノズルパターンおよびZ配列を同時に決定しているため、なるべく、1回の吸着動作で10個の部品を同時に吸着できるように、部品カセットの並びを決定することができる。このようにすることにより、装着ヘッド112の上下動作の回数(吸着回数)を減少させることができ、より最適な実装順序を探索することができる。
次に、以上のように構成された最適化装置300aの動作について説明する。
図10は、ノズルセット決定部305aによるノズルセットの決定手順を示すフローチャートである。ノズルセット決定部305aは、まず、実装の対象となる部品の総員数と装着ヘッド112のヘッド数(装着ヘッド112に装着されている吸着ノズルの個数、つまり、図3に示された装着ヘッドの場合であれば、10)から、理想的な最小タスク数Xminを算出する(S100)。たとえば、いま、実装の対象となる部品が、Sタイプの吸着ノズルで実装される部品(このような部品を単に「Sタイプの部品」ともいう。)が50個と、Mタイプの吸着ノズルで実装される部品(このような部品を単に「Mタイプの部品」ともいう。)が167個の合計217個とし、装着ヘッドのヘッド数が5とすると、
(50+167)/5=43.4
より、小数点以下を切り上げ、
Xmin=44
と、算出する。これは、可能な限り装着ヘッド112に部品を満載させた状態で部品を実装した場合であっても、全ての部品を実装するのに、最低、44回のタスクが必要となることを意味する。
次に、ノズルセット決定部305aは、ノズル交換回数Nを0から1ずつインクリメントしながら、各ノズル交換回数Nにおいて全部品を実装するのに必要なノズルセットとタスク数XNを特定する(S101〜S104)。
具体的には、まず、ノズル交換回数Nを0(ノズルセットの数を1)とし(S101)、その場合におけるノズルセットとタスク数XNを特定する(S102)。なお、ノズル交換回数Nとノズルセットの数(ノズルセットの種類)nとは、
n=N+1
の関係にある。たとえば、ノズルセット数が1の場合には、装着ヘッド112に最初に装着したノズルセットのまま全部品を実装するので、ノズル交換回数Nは0となる。また、ノズルセット数が2の場合には、実装の途中において、最初のノズルセットから第2番目のノズルセットに交換する必要があるので、ノズル交換回数Nは1となる。
また、このノズルセットとタスク数XNの特定(S102)については、後述するように、最小タスク数Xminから順に1ずつ増加させながら、全部品の実装が可能か否かの検討(可能解の検討)を行うので、より少ないタスク数で全部品を実装することが可能なノズルセット、および、そのようなタスク数が優先的に決定される。
続いて、後述する一定の終了条件が満たされたか否かを判断し(S103)、そうでない場合には(S103でNo)、ノズル交換回数Nを1だけ増加させ(S104)、今度は、ノズル交換回数Nが1回(ノズルセット数が2個)において全部品を実装するのに必要なノズルセットとタスク数XNとを特定する(S102)。
このようにして、ノズル交換回数Nを1ずつインクリメントしながら(N=0、1、…)、タスク数XNを特定するという処理を繰り返し(S102〜S104)、もし、終了条件が満たされた場合には(S103でYes)、このような探索を終了し、最後に、これまでの探索で特定されたノズル交換回数Nとタスク数XNとの組の中から、一定の評価関数を用いることで、最も少ない時間で部品の実装が完了する組を特定し、特定した組のノズルセットを最適なノズルセットと決定する(S105)。
なお、ステップS103における終了条件とは、特定したタスク数XNが最小タスク数Xminに一致した場合、ノズル交換回数Nを増加させてもタスク数XNが減少しない場合などである。つまり、ノズル交換回数Nを増加させても、後述する評価値が小さくなる可能性がないことが明らかとなった状態である。
図11は、図10におけるステップS105(最適なノズルセットを特定)の手順を説明する図である。ここでは、ノズル交換回数Nとタスク数XNとの組が3組(N=0,1,2)求められたケースの例が示されている。ノズルセット決定部305aは、3つの組について、ノズル交換回数Nとタスク数XNとを図示された評価関数に代入することで、評価値S0、S1、S2を算出し、それら評価値S0、S1、S2の中から最小のものを特定し、そのノズル交換回数Nに対応するノズルセットを最適なノズルセットと決定する。
なお、図示された評価関数は、ノズル交換に要する時間とタスクの実行に要する時間の合計値に相当する値を算出する関数である。なお、評価関数中のhは、1回のノズル交換に要する時間をタスク数に換算する係数であり、例えば、2などの定数である。
このようにして、ノズルセット決定部305aによって、ノズル交換に要する時間と全てのタスクの実行に要する時間の合計が最小となるようなノズルセットが決定される。
図12は、図10におけるステップS102(ノズルセットとタスク数XNの特定)の
詳細な手順、つまり、与えられたノズル交換回数Nの下で(図10のステップS101)、全ての部品を実装するのに必要なタスク数XNを特定する手順を示すフローチャートである。ノズルセット決定部305aは、まず、初期設定として、タスク数XNが最小タスク数Xminに等しいと仮定し(S110)、可能解か否かを検討する(S111)。つまり、与えられたノズル交換回数Nの下で、全ての部品をXmin回のタスクで実装することが可能か否かを検討する。
その結果、可能解でなければ(S111でNo)、タスク数XNを1だけ増加させ(S114)、再び、可能解か否かの検討を繰り返す(S111)。一方、可能解であれば、その時のタスク数XNを、与えられたノズル交換回数Nに対応するタスク数XNと決定し(S113)、終了する。
このように、ノズルセット決定部305aは、最小タスク数Xminから1ずつインクリメントしながら、与えられたノズル交換回数Nの下で、全部品の実装に必要となるタスク数XNを特定する。
図13は、図12におけるステップS111(可能解か否かの検討)の詳細な手順、つまり、ノズル交換回数Nとタスク数XNとが与えられた場合に、そのような条件を満たす実装が可能か否かを判定する手順を示すフローチャートである。ノズルセット決定部305aは、まず、対象となる全部品を吸着ノズルのタイプごとのグループ(例えば、Sタイプの部品が50個と、Mタイプの部品が167個の場合に、50個のSタイプ部品と167個のMタイプ部品の2つのグループ)に分割し、各グループをノズルセットテーブルに配置したものを初期状態として生成する(S120)。ここで、ノズルセットテーブルとは、後述するように、ヘッド位置(ヘッド番号)を桁とし、ノズルセット数(ノズルセット番号)を行とするメモリ上の表である。
次に、各グループを与えられたタスク数XNで分割し(S121)、分割によって得られた部品グループを、部品数の多い順に、左の欄および上の行が先に詰められていくように、ノズルセットテーブルに配置していく(S122)。
その結果、ノズルセットテーブルにおいて、与えられたノズルセット数nの行内に全ての部品グループが配置されたか否かを判定し(S123)、全ての部品グループが配置された場合には(S123でYes)、与えられたノズル交換回数Nに対してタスク数XNは可能解であると判断し(S124)、そうでない場合には(S123でNo)、与えられたノズル交換回数Nに対してタスク数XNは可能解でないと判断する(S125)。
図14は、ノズル交換回数Nが0の場合においてタスク数XNを特定する具体例を示す図である。いま、前提として、図14(a)に示されるように、実装の対象となる部品の総数が217個(うち、Sタイプの部品が50個、Mタイプの部品が167個)であり、装着ヘッドのヘッド数が5個とする。この条件下において、ノズル交換回数N=0の場合に(図10のステップS101)、タスク数XNの特定(図10のステップS102)は、以下のようにして行われる。
まず、図14(b)に示されるように、ノズルセット決定部305aは、ノズルセットテーブルの初期状態を生成する(図13のステップS120)。なお、図14(b)のノズルセットテーブルにおいて、左欄がノズルセットの番号であり、続く5つの欄(「1」〜「5」)がヘッド番号に対応する欄である。また、テーブル中の「S(50)」、「M(167)」は、それぞれ、Sタイプの部品が50個、Mタイプの部品が167個を意味する。したがって、図14(b)に示されたノズルセットテーブルは、ヘッド番号1および2の位置に、それぞれ、SタイプおよびMタイプの吸着ノズルを装着した装着ヘッドを用いて、Sタイプの部品50個とMタイプの部品167個を実装することを意味する。ちなみに、可能な限り同時吸着して実装することを前提としているので、このノズルセットテーブルでは、167回のタスクによって、全部品の実装が完了することになる。
次に、ノズルセット決定部305aは、初期状態で生成されたグループS(50)およびM(167)を最小タスク数Xmin「44」で分割し(図13のステップS121)、員数の多い部品グループの順に(同数の場合には、例えば、S()をM()に優先させて)、ノズルセットテーブルの上から下の行に、左から右の欄に向けて、図14(c)に示されるノズルセットテーブルのように配置していく(図13のステップS122)。
そして、ノズルセット決定部305aは、全ての部品グループが、与えられたノズルセット数n(ここでは、1)分の行内に配置されたか否かを判断する(図13のステップS123)。図14(c)では、2行にわたって部品グループが配置されているので、ノズルセット数「1」に対してタスク数「44」による実装は不可能と判断する(図13のステップS125、図12のステップS112)。そして、タスク数を1だけインクリメントし(図12のステップS114)、タスク数「45」とし、再び同様の検討を行う(図12のステップS111、図13のステップS120〜S125)。つまり、図14(d)に示されるノズルセットテーブルのように配置し直す。この場合にも、1行に配置されない部品S(5)が発生するので、タスク数「45」による実装は不可能と判断する。
以下、同様にして、タスク数を1ずつインクリメントしながらノズルセットテーブルへの部品配置を繰り返し、最終的に、タスク数「50」として部品を配置したときに、図14(e)に示されるように、ノズルセットテーブルの第1行に全ての部品が配置されるので、このタスク数「50」が最小の可能解と判断し(図13のS124)、ノズル交換回数0に対するタスク数を「50」と決定する(図12のステップS113)。
続いて、ノズルセット決定部305aは、ノズル交換回数を1だけ増加させ(図10のステップS104)、ノズル交換回数Nが「1」に対するタスク数X2を特定する(図10のステップS102)。
図15は、ノズル交換回数Nが1以上の場合におけるタスク数XNの特定(図10のステップS102)の詳細な手順を示すフローチャートである。基本的な流れは、図12および図13に示されたノズル交換回数Nが0の場合の手順と同様であるが、タスク数を増加させるだけでなく、減少させながら、より小さいタスク数の可能解を探索する手順が付加されている点が異なる。
まず、ノズルセット決定部305aは、初期タスク数と初期状態を特定する(S130)。ここで、初期タスク数は、最小タスク数Xminを、与えられた複数のノズルセットそれぞれに分配したものであり、ここでは、第1番目のノズルセットに(Xmin−N)個のタスクを割り当て、残る第2番目以降のノズルセットに対して1個のタスクを割り当てる。
次に、ノズルセット決定部305aは、初期タスク数が可能解か否かを検討する(S131)。つまり、与えられたノズル交換回数Nの下で、各ノズル交換回数Nに対応する具体的なノズルセットを特定しながら、全ての部品を初期タスク数で実装することができるか否かを検討する。
その結果、可能解であれば(S132でYes)、特定した2以上のノズルセットおよび初期タスク数をノズル交換回数Nに対する解として終了する。
一方、初期タスク数が可能解でなければ(S132でNo)、総タスク数XNを1だけ増加させ(S133)、再び、可能解か否かを検討する(S134)という処理を、可能解が得られるまで繰り返す(S135)。ここで、総タスク数を1だけ増加するときには、2以上のノズルセットのうち、「空打ち」(装着ヘッドに吸着ノズルが装着されているにも拘わらず部品が吸着されることなく、空き状態のヘッドのまま、タスクが実行される場合における空き状態のヘッドのこと)の最も少ないノズルセットのタスクを1だけ増加させ、そのノズルセットを更新する。これは、「空打ち」の少ないノズルセットのタスクを増加させる方が、より多くの部品を実装できる可能性が高い、つまり、与えられたノズルセット数に割り当てることができなかった部品群すべてを割り当てることができる可能性が高いからである。
このようにしてタスクの増加によって可能解が発見された後に、続いて、ノズルセット決定部305aは、これまでとは逆に、総タスク数XNを1だけ減少させ(S136)、再び、可能解か否かを検討する(S137)。ここで、総タスク数を1だけ減少させるときには、2以上のノズルセットのうち、「空打ち」の多いノズルセットを優先して、タスクを1だけ減少させ、そのノズルセットを更新する。これは、「空打ち」の多いノズルセットのタスクを減少させる方が、同一ノズルセット内でのヘッドごとの部品数を平準化できる可能性が高い、つまり、ノズルセット数を増加させることなく、タスク数を減少させることができる可能性が高いからである。
その結果、可能解でない場合には(S138でNo)、それ以上のタスクの減少は困難と判断とし、タスクを減少させる直前の状態における複数のノズルセットおよびそれらノズルセットから求まる合計タスク数XNをノズルセット数nに対する解とし、終了する。
一方、可能解である場合には(S138でYes)、続いて、総タスク数が最小タスク数Xminであるか否か判断し(S139)、最小タスク数Xminであるときには(S139でYes)、その状態における複数のノズルセットおよびそれらノズルセットから求まる合計タスク数XNをノズル交換回数Nに対する解として終了し、そうでないときには(S139でNo)、再び、総タスク数XNを1だけ減少させ(S136)、可能解か否かの検討を行う(S137)という処理を繰り返す。
このようにして、ノズル交換回数Nが1以上の場合には、総タスク数を最小タスク数Xminから1だけインクリメントしながら可能解を探索し、可能解が得られた場合に、続いて、総タスク数を1だけデクリメントしながら可能解を探索することで、最終的に、与えられたノズル交換回数Nに対して、最小のタスク数XNを特定する。
図16および図17は、ノズル交換回数Nが1の場合においてタスク数XNを特定する具体例を示す図である。いま、前提として、図16に示されるように、実装の対象となる部品の総数が217個(うち、Sタイプの部品が50個、Mタイプの部品が167個)であり、装着ヘッドのヘッド数が5個とする。最小タスク数Xminが44であるので、ノズルセット決定部305aは、2つのノズルセット(第1および第2番目のノズルセット)に対して、それぞれ、初期タスク数として、「43」と「1」を割り当てる(図15のステップS130)。つまり、ノズル交換回数Nにおけるj番目のノズルセットに割り当てるタスク数をXNjとすると、ノズル交換回数N「1」における第1番目のノズルセットに割り当てる初期タスク数X11は、ここでは、
X11=Xmin−N (j=1)
=44−1
=43
より、「43」とし、第2番目のノズルセットに割り当てる初期タスク数X12は、
X12=1 (j≧2)
より、「1」と割り当てる。
そして、ノズルセット決定部305aは、まず、図17(a)に示されるような2つの部品グループS(50)およびM(167)が配置されたノズルセットテーブルを初期状態として生成する(図15のステップS130)。
次に、ノズルセット決定部305aは、それら2つの部品グループを上記初期タスク数X11およびX12で分割して配置し直すことで、図17(b)に示されるノズルセットテーブルのように、部品グループを配置する(図15のステップS131)。具体的には、まず、2つの部品グループを第1番目のノズルセット用の初期タスク数X11(「43」)で分割し、員数の多い部品グループの順に(ここでは、S(43)、M(43)、M(43)、M(43)、M(38)の順に)、ノズルセットテーブルの第1行目に並べ、続いて、残る部品S(7)を第2番目のノズルセット用の初期タスク数X12(「1」)で分割し、員数の多い部品グループの順に(ここでは、S(1)、S(1)、S(1)、S(1)、S(1)の順に)、ノズルセットテーブルの第2行目に並べ、続いて、残る部品S(2)をノズルセットテーブルの第3行目に配置する。
ノズルセットテーブルの2行分に全ての部品グループを配置することができなかったことから、ノズルセット決定部305aは、タスク数(X11=43,X12=1)は可能解でないと判断し(図15のステップS132でNo)、タスク数の増加(図15のステップS133)と可能解の検討(図15のステップS134)を行う。つまり、「空打ち」の少ないノズルセットのタスク数X12を1だけインクリメントして「2」とし、ノズルセットテーブルの第2行目を配置し直す。具体的には、図17(c)に示されるように、ノズルセットテーブルの第1行目の配置を終えて残った部品S(7)をタスク数「2」で分割し、員数の多い部品グループの順に(ここでは、S(2)、S(2)、S(2)、S(1)の順に)、ノズルセットテーブルの第2行目に並べる。
その結果、全ての部品をノズルセットテーブルの2行分に配置することができたので、タスク数(X11=43,X12=2)は可能解であると判断し(図15のステップS135でYes)、続いて、タスク数の減少(図15のステップS136)と可能解の検討(図15のステップS137)を行う。つまり、「空打ち」の多いノズルセットのタスク数X11を1だけデクリメントして「42」とし、再び、ノズルセットテーブルの第1行目と第2行目を配置し直す。具体的には、図17(d)に示されるように、初期状態における2つの部品グループを新たなタスク数X11(「42」)で分割し、員数の多い部品グループの順に(ここでは、S(42)、M(42)、M(42)、M(42)、M(41)の順に)、ノズルセットテーブルの第1行目に並べ、続いて、残る部品S(8)をタスク数X12(「2」)で分割し、員数の多い部品グループの順に(ここでは、S(2)、S(2)、S(2)、S(2)の順に)、ノズルセットテーブルの第2行目に並べる。
その結果、全ての部品をノズルセットテーブルの2行分に配置することができたので、可能解であると判断し(図15のステップS138でYes)、続いて、総タスク数XN(=X11+X12=42+2=44)が最小タスク数Xmin(=44)に等しいか否かを判定する(図15のステップS139)。その結果、総タスク数XNが最小タスク数Xminに等しいので、タスク数の探索処理を終了する。つまり、図17(d)に示されるタスクセット(総タスク数X2=44)がノズルセット数「2」に対する解と特定する。
なお、以上の具体例、つまり、部品S(50)およびM(167)については、ノズル交換回数Nが1の場合に、探索されたタスク数XNが最小タスク数Xmin「44」に等しくなったので、ノズルセットの探索についての終了条件が満たされたこととなり(図10のステップS103)、続いて、ノズルセット決定部305aは、これまで探索されたノズル交換回数Nとタスク数XNとの組の中から、最適なものを選択する(図10のステップ
S105)。具体的には、これまで、探索された組は、図18の示される2つの組、つまり、(N=0、XN=50)と(N=1、XN=44)であるので、ノズルセット決定部305aは、これらの値NおよびXNを評価関数(ここでは、h=2とする)に代入することで、評価値S(「50」および「46」)を算出し、それら評価値の中から最小のもの、つまり、ノズル交換回数Nが1のときのノズルセットが最適なものと決定する。よって、ノズルセット決定部305aは、部品S(50)およびM(167)に対しては、図17(d)に示された2種類のノズルセットによって実装することが最適であると決定する。
なお、以上のノズルセットの決定手順では、各種吸着ノズルの個数(ノズルリソース)に制約がないものとして探索してきた。ところが、実際には、ノズルリソースに制約が存在する場合がある。この場合には、これまでの手順において可能解と判断されたノズルセットが可能解でなくなるケースが発生し得る。たとえば、図14(e)に示されたノズルセットS,M,M,M,Mは、ノズルリソースとして、1個のSタイプ吸着ノズルと4個のMタイプ吸着ノズルを同時に使用できることが前提とされ、もし、Sタイプ吸着ノズルが1個でMタイプ吸着ノズルが3個というノズルリソースの制約が存在する場合には、もはや、可能解ではなくなる。よって、これまで説明してきた手順は、そのままでは、ノズルリソースの制約が存在する場合に適用することができない。
そこで、ノズルリソースの制約が存在する場合には、これまで説明してきた制約のない手順に対して、以下の手順を付加する。
(1)部品をタスク数で分割して得られる部品グループの表現として、これまでのA(B)ではなく、A(B,C)とする。
ここで、「A」は、吸着ノズルのタイプであり、例えば、「S」,「M」等である。「B」は、部品の個数である。「C」は、ノズルリソース条件の範囲内か否かを示すフラグ(1:OK、0:NG)である。
なお、「C」については、ノズルセットテーブルに配置された部品グループについて、テーブルの上から下の行に、左から右の欄に向けて、先頭の部品グループからノズルリソースの範囲内にある部品グループに対して「1」を割り当て、残る部品グループに「0」を割り当てる。このようなフラグ付けは、ノズルリソースの制約が遵守されているか否かの検出を可能にするためのである。
(2)上記手順(1)を行った結果、もし、ノズルセットテーブルの対象となる行に、「C」の値が「0」である部品グループA(B,0)が存在した場合には、その部品グループを下の行にずらして配置する。つまり、ノズルリソースの制約を遵守するために、制約を超えた部品グループについては、次のノズルセットによる実装の対象とする。
以下、図19および図20を用いて、ノズルリソースの制約を考慮した具体的なノズルセットの決定手順を説明する。図19および図20は、ノズル交換回数Nが1の場合におけるタスク数XNの探索手順を示す具体例である。
いま、前提として、図19に示されるように、実装の対象となる部品は、Sタイプの部品が100個、Mタイプの部品が120個で構成され、ノズルリソースは、Sタイプの吸着ノズルが2個であり、Mタイプの吸着ノズルが2個であり、装着ヘッドのヘッド数は5個とする。
これらの前提から、最小タスク数Xminは、
Xmin=(100+120)/5
=44
となるので、図16に示されるケースと同様に、ノズルセット決定部305aは、2つのノズルセット(第1および第2番目のノズルセット)に対して、それぞれ、初期タスク数として、X11(=43)とX12(=1)を割り当てる。
そして、ノズルセット決定部305aは、まず、図20(a)に示されるような2つの部品グループS(100,1)およびM(120,1)が配置されたノズルセットテーブルを初期状態として生成する。
次に、ノズルセット決定部305aは、それら2つの部品グループを上記初期タスク数X11で分割して配置し直すことで、図20(b)に示されるノズルセットテーブルのように、部品グループを配置する。具体的には、まず、2つの部品グループを第1番目のノズルセット用の初期タスク数X11(「43」)で分割し、吸着ノズルのタイプごとに員数の多い部品グループの順に(ここでは、S(43,1)、S(43,1)、S(14,0)、M(43,1)、M(43,1)、M(34,0))の順に)、ノズルセットテーブルの第1および第2行目に並べる。なお、ノズルリソース条件のフラグCについては、Sタイプ吸着ノズルが2個というノズルリソースの制約から、最初の2つの部品グループS(43,C)およびS(43,C)のフラグCを1とし、残る部品グループS(14,C)のフラグCを0とし、同様に、Mタイプ吸着ノズルが2個というノズルリソースの制約からから、最初の2つの部品グループM(43,C)およびM(43,C)のフラグCを1とし、残る部品グループM(34,C)のフラグCを0としている。
そして、図20(c)に示されるように、いま着目している第1行目において、ノズルリソースの制約を超えている部品グループ、つまり、フラグCが0である部品グループM(34,0)およびS(14,0)を第2行目に移動させ、隙間をつめて配置し直す。
続いて、ノズルセット決定部305aは、第2行目に配置された2つの部品グループM(34,0)およびS(14,0)を初期タスク数X12で分割し、上述と同様にしてノズルリソースの制約に従ってフラグCを付与し、フラグCが0である部品グループが第3行目に位置するように配置し直すことで、図20(d)に示されるノズルセットテーブルのように、部品グループを配置する。具体的には、まず、2つの部品グループM(34,0)およびS(14,0)を第2番目のノズルセット用の初期タスク数X12(「1」)で分割し、員数の多い部品グループの順に並べた後にタイプSおよびMの最初の2つの部品グループのフラグCを1にセットするとともに残る部品グループのフラグCを0にセットすることで、第2行目から第3行目にかけて、M(1,1)、M(1,1)、S(1,1)、S(1,1)、M(32,0)、S(12,0)の順に、部品グループを並べる。
その結果、ノズルセットテーブルの2行分に全ての部品グループを配置することができなかったことから、ノズルセット決定部305aは、そのタスク数(X11=43,X12=1)は可能解でないと判断し、タスク数の増加と可能解の検討を繰り返す。つまり、「空打ち」の少ない(ここでは、第1および第2番目のノズルセットの「空打ち」が同数であることから、より番号の小さい第1番目の)ノズルセットのタスク数X11を1だけインクリメントし、タスク数(X11=44,X12=1)について同様の検討(図20(b)〜(d))を行うということを、可能解が探索されるまで、繰り返す。
いま、タスク数X11のインクリメントを繰り返し、タスク数(X11=59,X12=1)での検討に至ったとする。ノズルセット決定部305aは、2つの部品グループS(100,1)およびM(120,1)をタスク数X11で分割して配置し直すことで、図20(e)に示されるノズルセットテーブルのように、部品グループを配置する。具体的には、まず、2つの部品グループを第1番目のノズルセット用のタスク数X11(「59」)で分割し、吸着ノズルのタイプごとに員数の多い部品グループの順に(ここでは、S(59,1)、S(41,1)、M(59,1)、M(59,1)、M(2,0))の順に)、ノズルセットテーブルの第1行目に並べる。
そして、図20(f)に示されるように、いま着目している第1行目において、ノズルリソースの制約を超えている部品グループ、つまり、フラグCが0である部品グループM(2,0)を第2行目に移動させる。
続いて、ノズルセット決定部305aは、第2行目に配置された部品グループM(2,0)を初期タスク数X12で分割し、上述と同様にしてノズルリソースの制約に従ってフラグCを付与し、配置し直すことで、図20(g)に示されるノズルセットテーブルのように、部品グループを配置する。具体的には、まず、部品グループM(2,0)を第2番目のノズルセット用のタスク数X12(「1」)で分割し、員数の多い部品グループの順に並べた後にタイプMの最初の2つの部品グループのフラグCを1にセットすることで、第2行目に、M(1,1)、M(1,1)の順に、部品グループを並べる。
その結果、全ての部品をノズルセットテーブルの2行分に配置することができたので、タスク数(X11=59,X12=1)は可能解であると判断する。続いて、タスク数の減少と可能解の検討を行うが、これまでのタスク数の増加と基本的な処理手順は同様である。つまり、ノズルリソースの制約を考慮しない手順に対して、上記2つの手順(1)および(2)を付加することで、ノズルリソースの制約を考慮したノズルセットの決定が可能となる。
以上のようにして、ノズル交換回数Nが1におけるノズルリソースの制約を考慮したノズルセットおよび総タスク数の決定が可能となる。なお、ノズルリソースの制約が存在する場合にも、ノズル交換回数と総タスク数との組を特定し、それらの組の中から上述の評価関数に従って算出した評価値が最も小さいものを最適なノズルセットと決定する点は、ノズルリソースの制約がない場合と同様である。
次に、以上のようなノズルセット決定部305aによるノズルセットの決定アルゴリズムについて、各種基板(様々な部品セット)を対象として検証した結果を示す。
図21および図22は、各種基板(様々な部品セット)を対象として、IP(Integer Programming)ソルバーで得られたノズルセットテーブル(表の右に「厳密解」と示された段)と、本実施の形態のアルゴリズムで得られたノズルセットテーブル(表の右に「実施例」示された段)とを示す図である。なお、IPソルバーは、整数計画問題に定式化した最適化問題を時間をかけて解く汎用のプログラムである。
図21は、各種基板を対象として探索した最適解を示す図であり、(a)は、タイプ(吸着ノズルのタイプ)1、2の部品が、それぞれ、224個、2個からなる基板を対象とし、(b)は、タイプ1〜5の部品が、それぞれ、101個、32個、4個、18個、2個からなる基板を対象とし、(c)は、タイプ1、2の部品が、それぞれ、50個、167個からなる基板を対象とし、(d)は、タイプ1〜4の部品が、それぞれ、5個、34個、2個、2個からなる基板を対象とし、ノズルセット数nが1の場合について探索した解を示している。
図22は、タイプ1〜9の部品が、それぞれ、50個、10個、650個、50個、50個、200個、20個、215個、15個からなる基板を対象として探索した解を示す図であり、(a)〜(d)は、それぞれ、ノズルセット数nが1、2、3、4の場合の解を示している。
図21および図22から分かるように、本実施の形態におけるアルゴリズムによれば、厳密解と一致、あるいは、ほぼ一致した解が探索されている。ところが、計算時間については(図示されていないが)、汎用のパーソナルコンピュータを用いた場合に、IPソルバーによれば、10分以上もかかる基板があったが、本実施の形態のアルゴリズムによれば、いずれの基板についても、1秒以内で算出されている。これらのことから、本実施の形態のアルゴリズムによれば、極めて高速に、厳密解、または、厳密解にほぼ等しい最適な解が求められることが分かる。
なお、以上の実施の形態では、ノズル交換回数Nが1以上の場合におけるタスク数の探索方法として、「空打ち」の頻度を考慮しながら、最小タスク数Xminから1ずつインクリメントしたり、1ずつデクリメントしたりしながら探索したが、本発明は、このような探索方法に限定されるものではない。たとえば、タスク数の回数についての全ての組み合わせを探索し、その中から最小の総タスク数となる組み合わせを最適な解と決定する総当たり探索法を採用してもよい。ただし、明らかに探索が不要と判明している組み合わせや、可能解が発見されたために探索が不要になった組み合わせについては、探索の対象から除外する。
図23は、このような総当たり探索法によるタスク数の決定手順を示すフローチャートである。図24は、その具体例を示す図である。図24には、総部品数が60個(うち、タイプ1〜6の吸着ノズル用の部品が、それぞれ、11,11,11,10,9,8個)であり、装着ヘッドのヘッド数が10個であることを前提に、ノズル交換回数Nが1の場合に採り得るタスク数の全組み合わせ(X12,X11)が示されている。たとえば、組み合わせ(1,2)は、第1番目のノズルセットで2回のタスクを実行し、第2番目のノズルセットで1回のタスクを実行することを意味する。
この総当たり探索法では、まず、全ての組み合わせに対して、探索範囲を限定する(S150)。具体的には、まず、タスク数の対称性に基づく範囲限定をする。たとえば、組み合わせ(1,2)と(2,1)については、いずれかだけを探索すればよいことから、例えば、
X12≦X11 (条件1)
を満たす組み合わせ(X12,X11)だけを探索範囲とするように限定する。
続いて、限定された探索範囲に対して、最小タスク数に基づく範囲限定をする。この例では、最小タスク数は、60/10=6 より、総タスク数が6以上、つまり、
X11+X12≧6 (条件2)
を満たす組み合わせ(X12,X11)だけを探索範囲とするように限定する。
さらに、限定された探索範囲に対して、最大タスク数に基づく範囲限定をする。この例では、最大タスク数(ノズルセットとしてタイプ1,2,3,4,5,6の吸着ノズルを使用した場合のタスク数)が11であることから、総タスク数が11以下、つまり、
X11+X12≦11 (条件3)
を満たす組み合わせ(X12,X11)だけを探索範囲とするように限定する。以上の3つの条件1〜3を満たす探索範囲は、図24の実線で囲まれた領域となる。
次に、以上のステップで限定された探索範囲の組み合わせについて、上から下の行に、左から右の欄に向けて、順に、各組み合わせについて、可能解か否かの検討をする(S151)。具体的には、図24において、まず、組み合わせ(1,5)について、図17(c)に示されるように、部品分割と部品グループの配置を試みる。その結果、ノズルセットテーブルの2行に全ての部品が配置されなければ可能解でないと判断し、次に、組み合わせ(1,6)について、同様の検討を行うということを繰り返していく。
ここで、もし、上記探索範囲の全ての組み合わせに対する探索が完了した場合には(S152でNo)、最後に探索された可能解を探索結果(求めるべきノズルセット)として処理を終了する(S156)。
一方、探索範囲が残された状態で、かつ、可能解が発見された場合には(S153でYes)、総タスク数がより小さい探索範囲が残っているならば(S154でYes)、その探索範囲に限定して(S155)、探索を繰り返し(S151)、総タスク数がより小さい探索範囲が残っていないならば(S154でNo)、最後に探索された可能解を探索結果(求めるべきノズルセット)として処理を終了する(S156)。
たとえば、組み合わせ(1,8)が可能解であると判明した場合には、その総タスク数9よりも小さい総タスク数の組み合わせだけを探索範囲として限定する。その結果、次なる探索対象は、組み合わせ(1,9)ではなく、組み合わせ(2,4)、(2,5)、…となる。同様にして、組み合わせ(2,6)が可能解と判明した場合には、その総タスク数8よりも小さい総タスク数の組み合わせだけ、つまり、組み合わせ(3,3)、(3,4)を探索する。ここで、組み合わせ(3,4)が可能解と判明した場合には、もはや探索範囲が残されていないので、その解(3,4)が最終的な最適解、つまり、ノズル交換回数Nが1の場合の最適なノズルセット(総タスク数が7)と決定する。
このように、総当たり探索法によれば、図15のフローチャートに示された方法に比べ、探索の対象が増加する分だけ探索時間がわずかに増加するが、可能性のある全ての組み合わせについて漏れなく検討しているので、確実に最適な解(ノズルセットおよび総タスク数)が求まるという利点がある。
なお、上記図24は、ノズル交換回数Nが1、つまり、タスク数が2次元の場合の例であったが、ノズル交換回数Nが2以上の場合であっても、同様の手順で探索できるのは言うまでもない。つまり、タスク数の次元が増加し、探索領域の次元が増加する点だけが異なり、探索範囲の限定や探索手法については、2次元の場合と同様である。
また、ノズルセット決定部305aは、このような総当たり探索による手法および上述した最小タスク数から探索する手法のいずれかによって最適なノズルセットを決定するだけでなく、これら2つの探索手法のいずれかを選択的に実行してもよい。たとえば、探索時間を優先する場合には、最小タスク数から探索する手法を採用し、最適化の精度を優先する場合には、総当たり探索による手法を採用するという混在方式であってもよい。
次に、図6に示された最適化プログラム格納部305のノズルパターン・Z配列決定部305bの詳細な動作を説明する。
ノズルパターン・Z配列決定部305bは、ノズルセット決定部305aで決定された1以上のノズルセットについて、部品実装時における112の上下動作の回数(吸着回数)を少なくするように、各ノズルセットを構成する各種吸着ノズルのヘッド位置を決定するとともに、複数のノズルセットそれぞれの実行順序を決定することで、ノズルパターンを決定する。また、ノズルパターン・Z配列決定部305bは、ノズルパターンを決定するのと同時にZ配列を決定する。
図25は、ノズルパターン・Z配列決定部305bによるノズルパターンおよびZ配列の決定手順を示すフローチャートである。ノズルパターン・Z配列決定部305bは、まず、ノズルセット決定部305aで求められたノズルセットに基づいて、ノズルパターンおよびZ配列の初期解を生成する(S200)。初期解の生成方法については後述するが、1回の吸着動作でなるべく多くの部品を同時吸着できるように、ノズルパターンおよびZ配列の初期解が求められる。
次に、ノズルパターン・Z配列決定部305bは、生成された初期解に基づいて、ノズルパターンを構成する吸着ノズルのヘッド位置の一部またはZ配列を構成する部品カセットの並びの一部を変更しながら、吸着回数が最小となるように、ノズルパターンおよびZ配列の最適解を探索する(S201)。この最適解の探索処理については、後述する。
図26は、図25におけるS200(ノズルパターンおよびZ配列の初期解生成処理)の詳細な手順を示すフローチャートである。
ノズルパターン・Z配列決定部305bは、ノズルセット決定部305aで求められた、n個(nは自然数)のノズルセットの各々について、ヘッド番号1(H1)からヘッド番号10(H10)まで、タスク数が降順となるように吸着ノズルのヘッド位置を並び替えることにより、ノズルパターンを作成する(S210)。
図27は、ノズルセットテーブルの一例を示しており、(a)は、並び替え処理(S200)による並び替え前のノズルセットテーブルを示しており、(b)は、並び替え後のノズルセットテーブルを示している。上述したように、左欄がノズルセットの番号を示しており、続く10個の欄がヘッド番号に対応している。
図27(a)に示されるように、ノズルセットテーブルには、n個のノズルセットの組が記載されており、各ノズルセットには、吸着ノズルのタイプと当該吸着ノズルで吸着すべき部品の員数(すなわち、タスク数)とが記載されている。たとえば、1番目のノズルセットは、「X(14),X(11),Y(14),・・・,D(14)」で示される10個の吸着ノズルにより構成される。ここで、「X(14)」は、上述したように、吸着対象としてXタイプの部品が14個あることを示している。各ノズルセットにおいて、タスク数が降順となるように、 吸着ノズルのヘッド位置を並び替えると、図27(b)に示されるようなノズルセットテーブルが得られる。例えば、1番目のノズルセットについて着目すると、「X(14),D(14),Y(14),・・・,X(11)」のように、吸着対象とされる部品の員数(タスク数)が降順となるように、吸着ノズルのヘッド位置が並び替えられる。これを、1番目のノズルセットにおけるノズルパターンとする。
なお、ノズルセットを単位とする並びは、評価値V(i)の大きいもの順であるものとする。なお、評価値V(i)は以下の式により定義される。
V(i)=(i番目のノズルセットにおける同時吸着ノズル本数)
×(i番目のノズルセットにおける最低吸着回数)
ここで、「i番目のノズルセットにおける同時吸着ノズル本数」とは、i番目のノズルセットにおいて、部品供給部115a(115b)より部品を同時に吸着できる可能性のある吸着ノズルの本数を示している。また、「i番目のノズルセットにおける最低吸着回数」とは、上述の「i番目のノズルセットにおける同時吸着ノズル本数」の対象とされた吸着ノズルで吸着される部品の員数の最小値を示す。すなわち、評価値V(i)は、部品を同時吸着できる吸着ノズルを用いて実行できる最大の部品実装点数を示している。このため、ノズルセットを単位とする並びは、同時吸着可能な部品の個数の多いものの順である。
次に、ノズルパターン・Z配列決定部305bは、ノズルパターンの番号を示す変数mに1を代入する(S211)。その後、ノズルパターン・Z配列決定部305bは、m番目のノズルパターンに含まれる吸着ノズルと実装対象となっている部品を基板20上に装着する際に使用される吸着ノズルとを比較し、吸着ノズルの位置が一致するように、部品カセット114をZ軸上に配置する(S212)。ここで、同じ吸着ノズルを使用する部品カセット114が複数ある場合には、実装対象の員数が多い部品カセット114から順にZ軸上に配置を行なう。
例えば、図28は、実装対象となっている部品に関する情報を示した部品テーブルの一例を示す図である。部品テーブル400の左欄は部品名を示しており、中欄は、実装対象の部品の員数を示しており、右欄は、部品実装時に使用する吸着ノズルのタイプを示している。例えば、部品名「a」で特定される部品は、基板20上に「20個」実装され、かつその部品を吸着する際に使用される吸着ノズルのタイプは「Xタイプ」であることが示されている。
図29は、部品カセット114の配置処理(S212)の具体例を示す図である。(a)は、1番目(m=1)のノズルパターンを示しており、(b)は、部品カセット114の配置処理(S212)による配置結果を示している。ここでは、1番目のノズルパターンに一致するように、Z配列の1番目から10番目までの部品カセット114の配置位置が求められる。まず、ヘッド番号1の位置に配置されているXタイプの吸着ノズルで吸着可能な部品が部品テーブル400より抽出される。この条件に合致する部品は、部品名「a」および「g」の部品である。このうち、員数の多い部品名「a」の部品カセット114がZ配列の1番目に配置される。同様にして、ヘッド番号2の位置に配置されているDタイプの吸着ノズルで吸着可能な部品として、部品名「i」および「k」の部品が抽出される。このうち、員数の多い部品名「i」の部品カセット114がZ配列の2番目に配置される。同様の処理をヘッド番号3〜10の位置に配置されている吸着ノズルに対しても行なうことにより、Z軸上の各位置に部品カセット114が配置される。
なお、Z配列の6番目および9番目に部品カセット114が配置されていないのは、配置可能な部品カセット114がないことによる。すなわち、部品テーブル400より、Yタイプの吸着ノズルで吸着可能な部品は、部品名「h」、「c」および「b」の3種類のみであるが、これらの部品の部品カセット114は、Z配列の3番目、4番目および5番目にそれぞれ配置済みである。したがって、Yタイプの吸着ノズルで吸着可能な部品の部品カセット114をZ配列の6番目に配置することができないからである。Z配列の9番目に部品カセット114が配置されていないのも、同様の理由による。
次に、ノズルパターン・Z配列決定部305bは、Z配列上に部品カセット114の未配置部分があるか否かを調べる(S213)。図29(b)の例では、6番目および9番目の2箇所に部品カセット114が未配置である。
部品カセット114の未配置部分がある場合には(S213でYes)、未配置部分に以下の基準に従い、部品カセット114を配置する(S214)。すなわち、ノズルパターン・Z配列決定部305bは、未配置の部品カセット114のうち、実装対象となっている部品の員数が多いものから順にZ配列に配置していく。例えば、図29に示した例では、上述のようにZ配列の6番目および9番目に部品カセット114が配置されていない。また、Z配列に部品カセット114が未配置の部品の部品テーブル402が図30のように示される。したがって、図31に示すように、Z配列の6番目には、部品テーブル402の中から最も員数が大きい部品名「j」の部品を収納した部品カセット114が配置される。また、Z配列の9番目には、次に員数が大きい部品名「f」の部品を収納した部品カセット114が配置される。このように、部品の員数の多いものから順に部品カセット114を配置するようにしたのは、装着ヘッド112は、Z配列において番号の小さい方向から大きい方向へ移動する。このため、員数の大きい部品カセット114をなるべく番号の小さいZ位置に配置することにより、装着ヘッド112の移動距離を少なくすることができる。よって、部品の吸着に必要な時間を減少させることができ、部品の実装時間を減少させることができるからである。
部品カセット114の未配置部分がなければ(S213でNo)、未配置部分への部品カセット配置処理(S214)は実行されない。m番目のノズルパターンに基づいてZ配列への部品カセット114の配置が行なわれた後、ノズルパターン・Z配列決定部305bは、m番目のノズルパターンの各吸着ノズルが実行しなければならない残りのタスク数を計算する(S215)。すなわち、各吸着ノズルについて、当該吸着ノズルで吸着すべきタスク数から、当該吸着ノズルと対応するZ軸上の位置に配置された部品カセット114より吸着すべき部品の員数を引いた値を計算する。例えば、図32(a)に示すように、図29(a)に示した1番目のノズルパターンの1番目から10番目までのヘッド位置に配置された吸着ノズルのタスク数から、図31に示した1番目から10番目までのZ配列を部品の員数をそれぞれ減算すると、図32(a)に示すようなノズルパターンが得られる。例えば、1番目のヘッド位置(1番目のZ位置)に着目して見ると、Xタイプの吸着ノズルで吸着すべき部品の員数「14」から部品名「a」の部品の員数「20」を減算すると、「−6」となる。なお、減算の結果が負数となった場合には強制的に「0」にする。すなわち、結果の値は、着目している吸着ノズルを使用して吸着しなければならない部品の員数を示している。なお、6番目のヘッド位置(6番目のZ位置)のように、ヘッド位置に配置された吸着ノズルと部品カセット114に搭載された部品を吸着するための吸着ノズルとが一致しない場合には、「NA」という記号を付す。これにより、後述する評価値Vの算出の処理対象から当該吸着ノズルをはずすことにする。
タスク数計算処理(S215)において、吸着ノズルで吸着すべきタスク数から、当該吸着ノズルと対応するZ軸上の位置に配置された部品カセット114より吸着すべき部品の員数を引いた値を計算しているのは、以下のような理由による。1つのノズルパターンでそのZ配列から部品を吸着したときに、結果的に部品カセットの部品の員数が残るということは、そのノズルパターンでは、そのZ配列から部品を吸着しきれなかったことになる(基板20にその部品カセットの部品を実装しきれないことになる)。したがって、Z配列の部品残数が0になるかを求めるために、ノズルパターンの各ノズルのタスク数からZ部品配列の部品の員数の減算を行なっている。
次に、ノズルパターン・Z配列決定部305bは、タスク数計算処理(S215)での計算結果に対して、m番目のノズルパターンの評価値V(m)を、上述した評価式に基づいて算出する(S216)。例えば、図32(a)に示す1番目(m=1)のノズルパターンについて考えると、m番目のノズルパターンに対対応するZ軸上の位置に配置された部品カセット114より部品を吸着した後であっても、他のZ軸上の位置に配置された部品カセット114より部品を同時吸着できる可能性のある吸着ノズルは、タスク数が1以上である4番目、5番目、8番目および10番目のヘッド位置に配置された4つの吸着ノズルである。このため、「m番目のノズルセットにおける同時吸着ノズル本数」は「4」となる。また、これら4つの吸着ノズルのタスク数の最小値は、図32(a)中矢印で示した4番目のヘッド位置に配置されたYタイプの吸着ノズルのタスク数「1」である。このため、「m番目のノズルセットにおける最低吸着回数」は「1」となり、
V(m)=4×1=4
となる。
このように、タスク数計算処理(S215)で求められた減算値に基づき評価値V(m)の算出を行うというのは、以下のような意味がある。すなわち、当該減算値が0以上になるということは、そのノズルパターンでそのZ配列の実装に必要な部品をすべて実装できたことになり、評価値V(m)の値が大きくなる。しかし、マイナスになるということは、そのノズルパターンでは実装しきれないことを意味する。例えば、図29(a)のノズルパターンのヘッド1〜3では減算値がマイナスになっている。したがって、上記減算値(評価値V(m))がプラスになるということは、そのノズルパターンにより、他のZ配列から同時吸着できる余力があることになり、評価値V(m)を求めるということは、この余力がどの程度あるかを計算することに相当する。
次に、ノズルパターン・Z配列決定部305bは、(m+1)番目のノズルパターンの評価値V(m+1)を算出する(S217)。評価値V(m)の算出処理(S216)では、タスク計算処理(S215)で求められた減算値に基づいて評価値V(m)を求めているのに対して、ここでは、減算を行なう前のタスク数に基づいて評価値V(m+1)を算出する。例えば、図32(b)に示されるように、m=1としたときの(m+1)番目(2番目)のノズルパターンについて評価値V(m+1)を求めると、「(m+1)番目のノズルセットにおける同時吸着ノズル本数」は「10」であり、「(m+1)番目のノズルセットにおける最低吸着回数」は「1」である。このため、評価値V(m+1)は、
V(m+1)=10×1=10
となる。
ノズルパターン・Z配列決定部305bは、m番目のノズルパターンに対する評価値V(m)と(m+1)番目のノズルパターンに対する評価値V(m+1)とを比較する(S218)。すなわち、同時吸着を行った場合に、どちらのノズルパターンがより多くの部品を吸着可能かを調べる。評価値V(m+1)の方が評価値V(m)よりも大きい場合には、(m+1)番目のノズルパターンを採用して次のZ配列(例えば、1番目から10番目までのZ配列が求められている場合には、11番目から20番目までのZ配列)を求めた方が、同時吸着できる部品が多い可能性があり、それ以外の場合には、m番目のノズルパターンを採用して次のZ配列を求めた方が、同時吸着できる部品が多い可能性があることを示している。すなわち、評価値V(i)の大きいノズルパターンが、Z配列に対して同時吸着できる実装点数が多い最適なノズルパターンを示している。したがって、
V(m+1)>V(m)
なる関係を満たす場合には(S218でYes)、mを1つインクリメントする(S219)。それ以外の場合には(S218でNo)、インクリメント処理(S219)は、実行しない。
最後に、すべての実装対象となっている部品の部品カセット114をZ配列に配置したか否かを調べ(S220)、未配置の部品カセット114が存在する場合には(S220でNo)、未配置の部品カセット114を部品カセット114が未配置のZ軸上の位置に配置するために、部品カセットの配置処理(S212)以降の処理を実行する。例えば、1番目から10番目までのZ配列が求められており、部品名「d」および「k」の部品カセット114が未配置の場合には、mの値は2となっている。このため、S212の処理では、図27(b)に示される2番目のノズルパターン「Z(2),E(2),D(2),・・・,E(1)」に合致するように、Z配列が求められる。部品名「d」の部品カセット114はZタイプの吸着ノズルで吸着されるため、11番目のZ位置に配置される。また、部品名「k」の部品カセット114はDタイプの吸着ノズルで吸着されるため、13番目のZ位置に配置される。すなわち、12番目のZ位置には部品カセット114は配置されない(図52参照)。すべての部品カセット114を配置済みであれば(S220でYes)、ノズルパターンおよびZ配列の初期解生成処理(図25のS200)を終了する。
次に、初期解生成処理(図25のS200、図26)に基づいて求められたノズルパターンおよびZ配列の初期解に基づいて、吸着回数が最小となるようにノズルパターンおよびZ配列の最適解を探索する処理(図25のS201)について、詳細に説明する。
図33は、図25におけるS201(ノズルパターンおよびZ配列の最適解探索処理)の詳細な手順を示すフローチャートである。
ノズルパターン・Z配列決定部305bは、Z配列を固定させた上で、ノズルパターンを構成する吸着ノズルのヘッド位置を一部入れ替えながら、最も吸着回数が小さくなるようなノズルパターンの局所解を探索する(S230)。ノズルパターンの局所解探索処理(S230)については、後述する。
次に、ノズルパターン・Z配列決定部305bは、ノズルパターンを固定させた上で、Z配列を構成する部品カセットの並びを一部入れ替えながら、最も吸着回数が小さくなるようなZ配列の局所解を探索する(S231)。Z配列の局所解探索処理(S231)については、後述する。
ノズルパターン・Z配列決定部305bは、Z配列の局所解探索(S231)において吸着回数の減少が見られたか否かを調べる(S232)。吸着回数の減少が見られない場合には(S232でNo)、再度、ノズルパターンの局所解探索およびZ配列の局所解探索を行なったとしても、吸着回数の減少は見られない、すなわち、ノズルパターンおよびZ配列の局所解が求められたと判断し、ノズルパターンおよびZ配列の最適解探索処理(図25のS201)を終了する。
吸着回数の減少が見られた場合には(S232でYes)、ノズルパターン・Z配列決定部305bは、上述のノズルパターンの局所解探索処理(S230)と同様の処理を実行する(S233)。その後、ノズルパターン・Z配列決定部305bは、ノズルパターンの局所解探索処理(S233)において、吸着回数の減少が見られたか否かを調べる(S234)。吸着回数の減少が見られない場合には(S234でNo)、再度、Z配列の局所解探索およびノズルパターンの局所解探索を行なったとしても、吸着回数の減少は見られない、すなわち、ノズルパターンおよびZ配列の局所解が求められたと判断し、ノズルパターンおよびZ配列の最適解探索処理(図25のS201)を終了する。
吸着回数の減少が見られた場合には(S234でYes)、ノズルパターン・Z配列決定部305bは、上述のZ配列の局所解探索処理(S231)を再度実行する。以上のように、Z配列を固定させた状態でのノズルパターンの局所解探索(S230、S233)と、ノズルパターンを固定させた状態でのZ配列の局所解探索(S231)とを交互に繰り返し実行し、解が収束した時点で処理を終了させることにより、吸着回数を最小とするようなノズルパターンおよびZ配列の最適解を求めることができる。
図34〜図39は、図33に示したノズルパターンおよびZ配列最適解探索処理(図25のS201)の手順を概念的に示した図である。図34〜図39に示すグラフの縦軸は、装着ヘッド112の上下動作の回数(吸着回数)を示しており、横軸は、処理の反復回数(吸着ノズルのヘッド位置の入れ替え回数および部品カセットの並びの入れ替え回数)を示している。
図34に示すように、初期解生成処理(図25のS200、図26)に基づいて求められたノズルパターンおよびZ配列の初期解410に基づいて、Z配列を固定させた上で、ノズルパターンを構成する吸着ノズルのヘッド位置を入れ替えながら、ノズルパターンの局所解を探索する(図33のS230)。探索途中のノズルパターンの解412に基づいて、吸着ノズルのヘッド位置をどのように入れ替えたとしても、解412と比較して吸着回数の大きな解414しか求めることができなくなった場合には、図35に示すように、解412をノズルパターンの局所解412とする。
次に、図36に示すように、当該局所解412を初期解として、ノズルパターンを固定させた上で、Z配列を構成する部品カセットの並びを入れ替えながら、Z配列の局所解を探索する(図33のS231)。探索途中のZ配列の解416に基づいて、Z配列を構成する部品カセットの並びをどのように入れ替えたとしても、解416と比較して吸着回数の大きな解418しか求めることができなくなった場合には、図37に示すように、解416をZ配列の局所解416とする。
次に、図38に示すように、当該局所解416を初期解として、ノズルパターンおよび局所解探索(図33のS233)とZ配列の局所解探索(図33のS231)とを交互に繰り返し実行する。繰り返し実行の途中で求められた局所解420を初期解420として、吸着ノズルのヘッド位置または部品カセットの並びをどのように入れ替えたとしても、初期解420と比較して吸着回数の大きな解422しか求めることができなくなった場合には(図33のS232でNoまたはS234でNo)、図39に示すように、解420を吸着回数が最小となるノズルパターンおよびZ配列の最適解とする。
次に、ノズルパターンの局所解探索処理(図33のS230、S233)について詳細に説明する。図40は、図33におけるS230およびS233(ノズルパターンの局所解探索処理)の詳細な手順を示すフローチャートである。
ノズルパターン・Z配列決定部305bは、現在のノズルセットテーブルX、すなわち初期解のノズルセットテーブルXに含まれるノズルパターンに基づいて、Z配列に並んだ部品カセット114より部品を吸着した場合の吸着回数f(X)を計算する(S241)。次に、ノズルパターンに含まれる吸着ノズルを2つ選択し、それらのノズル位置を交換する(S244)。例えば、図41(a)に示すようなノズルパターンにおいて、3番目および7番目のノズル位置にそれぞれ位置するYタイプおよびZタイプの吸着ノズルが選択された場合には、図41(b)に示すように、YタイプおよびZタイプの吸着ノズルのノズル位置が交換され、3番目および7番目のノズル位置に、ZタイプおよびYタイプのノズルがそれぞれ位置するノズルパターンが生成される。
ノズルパターン・Z配列決定部305bは、吸着ノズルのノズル位置交換後のノズルセットテーブルYにおける吸着回数f(Y)を計算する(S245)。次に、ノズルパターン・Z配列決定部305bは、ノズル位置交換前の吸着回数f(X)とノズル位置交換後の吸着回数f(Y)との大小を比較する(S246)。吸着回数f(Y)が吸着回数f(X)よりも等しいか大きい場合には(S246でNo)、ノズル位置を交換しても吸着回数が小さくならない。このため、そのような状態が続く限り、すべてのノズル位置の組み合わせについて、ノズル位置の交換を行なう(ループB(S243〜S248)およびループA(S242〜S249))。ノズルセットテーブルXに含まれるすべてのノズルパターンについて、すべてのノズル位置の組み合わせについてノズル位置の交換を行なっても、吸着回数が小さくならない場合には、そのときのノズルセットテーブルXに含まれるノズルパターンを局所解として、ノズルパターンの局所解探索処理(図33のS230、S233)を終了する。
吸着回数f(Y)が吸着回数f(X)よりも小さい場合には(S246でYes)、ノズル位置を交換することにより吸着回数が小さくなっている。このため、ノズル位置交換後のノズルパターンテーブルYを新たにノズルパターンテーブルXとして、ノズルパターンの局所解探索処理(S242〜S249)を行なう。
以上のようにして、ノズルパターンの局所解が求められる。
次に、Z配列の局所解探索処理(図33のS231)について詳細に説明する。図42は、図33におけるS231(Z配列の局所解探索処理)の詳細な手順を示すフローチャートである。
ノズルパターン・Z配列決定部305bは、現在求められているノズルパターンを用いて、現在のZ配列X、すなわち初期解のZ配列Xに並べられた部品カセット114より部品を吸着した場合の吸着回数f(X)を計算する(S251)。次に、Z配列Xに含まれる部品カセット114を2つ選択し、それらの並びを交換する(S253)。例えば、図43(a)に示すようなZ配列において、2番目および5番目のZ位置にそれぞれ配置されている部品名「i」および部品名「b」の部品カセット114が選択された場合には、図43(b)に示すように、2つの部品カセット114の並びが入れ替えられ、3番目および5番目のZ位置に部品名「b」および部品名「i」の部品カセット114がそれぞれ配置されたZ配列が生成される。
ノズルパターン・Z配列決定部305bは、部品カセット114の並び入れ替え後のZ配列における吸着回数f(Y)を計算する(S254)。次に、ノズルパターン・Z配列決定部305bは、部品カセット114のZ位置入れ替え前の吸着回数f(X)とZ位置入れ替え後の吸着回数f(Y)との大小を比較する(S255)。吸着回数f(Y)が吸着回数f(X)よりも等しいか大きい場合には(S255でNo)、Z位置を入れ替えても吸着回数が小さくならない。このため、そのような状態が続く限り、すべての部品カセット114の組み合わせについて、Z位置の交換を行なう(ループA(S252〜S257))。Z配列Xに含まれるすべての部品カセット114の組み合わせについてZ位置の入れ替えを行なっても、吸着回数が小さくならない場合には、Z配列Xを局所解として、Z配列の局所解探索処理(図33のS231)を終了する。
吸着回数f(Y)が吸着回数f(X)よりも小さい場合には(S255でYes)、部品カセット114のZ位置を入れ替えることにより吸着回数が小さくなっている。このため、Z位置入れ替え後のZ配列Yを新たなZ配列Xとして、Z配列の局所解探索処理(S252〜S257)を行なう。
以上のようにして、Z配列の局所解が求められる。
本願の発明者は、上述の手法を用いて部品の実装順序の最適化を行った場合の部品の実装時間および最適化処理に要する時間を計測する実験を行なった。図44〜図48は、上述した部品実装順序最適化方法の実験結果を示す図である。ここでは、5種類の実験を行なった。図44は、1番目の実験結果を示す図であり、(a)は実験の前提条件を示しており、(b)は実験結果を示している。図44(a)に示すように基板20上に実装する部品の員数が「362」個であり、実装部品の種類が「20」種類であり、かつ吸着ノズルの種類が「3」種類であるという前提条件の下で実験を行なった。図44(b)は、上述した前提条件の下で実験を行なった結果を示しており、従来の最適化手法(特許文献1または特許文献2に記載の最適化手法)と、本発明の最適化手法とを比較している。同図に示すようにタスク数は40回から37回へと減少しているものの、ノズル交換回数は0回から4回に増加している。しかし、吸着回数は、133回から71回に大幅に減少している。これは、吸着回数が小さくなるような最適解の探索処理(図25のS201)を行なったからである。実装時間は、従来127.860秒でかかっていたものが109.475秒に減少しており、実装時間が約14.4%向上している。また、最適化処理に要する時間は、328秒から0.1秒以下に大幅に減少している。これは、初期解生成処理(図25のS200)において、なるべく部品を同時吸着できるようにノズルセットとZ配列とを決定しているからである。このため、最適解に近い初期解を生成することができ、その初期解から最適解を探索しているため、探索時間がかからないことによる。
図45は、2番目の実験結果を示す図であり、(a)は実験の前提条件を示しており、(b)は実験結果を示している。図45(a)に示すように基板20上に実装する部品の員数が「370」個であり、実装部品の種類が「20」種類であり、かつ吸着ノズルの種類が「4」種類であるという前提条件の下で実験を行なった。図45(b)は、上述した前提条件の下で実験を行なった結果を示しており、従来の最適化手法と本発明の最適化手法とを比較している。同図に示すように、タスク数は39回から38回へ、ノズル交換回数は11回から4回へ、吸着回数は135回から82回へそれぞれ減少している。また、実装時間は、141.142秒かかっていたものが114.280秒に減少しており、実装時間が約19.0%向上している。また、最適化処理に要する時間は、728秒から0.1秒以下に大幅に減少している。これは、図44に示した実験結果と同様の理由によるものである。
図46は、3番目の実験結果を示す図であり、(a)は実験の前提条件を示しており、(b)は実験結果を示している。図46(a)に示すように基板20上に実装する部品の員数が「440」個であり、実装部品の種類が「21」種類であり、かつ吸着ノズルの種類が「1」種類であるという前提条件の下で実験を行なった。図46(b)は、上述した前提条件の下で実験を行なった結果を示しており、従来の最適化手法と本発明の最適化手法とを比較している。同図に示すように、タスク数は両手法において44回と変化がなく、また、ノズル交換回数もノズルの種類が1種類しかないため0回と変化がない。しかし、吸着回数は61回から52回へ減少している。このため、実装時間が121.762秒から117.917秒に減少しており、実装時間が約3.2%向上している。また、最適化処理に要する時間は7秒から0.1秒以下に大幅に減少している。これは、図44に示した実験結果と同様の理由によるものである。
図47は、4番目の実験結果を示す図であり、(a)は実験の前提条件を示しており、(b)は実験結果を示している。図47(a)に示すように基板20上に実装する部品の員数が「456」個であり、実装部品の種類が「22」種類であり、かつ吸着ノズルの種類が「1」種類であるという前提条件の下で実験を行なった。図47(b)は、上述した前提条件の下で実験を行なった結果を示しており、従来の最適化手法と本発明の最適化手法とを比較している。同図に示すように、タスク数は両手法において46回と変化がなく、また、ノズル交換回数もノズルの種類が1種類しかないため0回と変化がない。しかし、吸着回数は59回から52回へ減少している。このため、実装時間が125.475秒から121.871秒に減少しており、実装時間が約2.9%向上している。また、最適化処理に要する時間は6秒から0.1秒以下に大幅に減少している。これは、図44に示した実験結果と同様の理由によるものである。
図48は、5番目の実験結果を示す図であり、(a)は実験の前提条件を示しており、(b)は実験結果を示している。図48(a)に示すように基板20上に実装する部品の員数が「478」個であり、実装部品の種類が「2」種類であり、かつ吸着ノズルの種類が「1」種類であるという前提条件の下で実験を行なった。図48(b)は、上述した前提条件の下で実験を行なった結果を示しており、従来の最適化手法と本発明の最適化手法とを比較している。同図に示すように、タスク数は両手法において48回と変化がなく、また、ノズル交換回数もノズルの種類が1種類しかないため0回と変化がない。しかし、吸着回数は65回から59回へ減少している。このため、実装時間が131.837秒から128.567秒に減少しており、実装時間が約2.5%向上している。また、最適化処理に要する時間は7秒から0.1秒以下に大幅に減少している。これは、図44に示した実験結果と同様の理由によるものである。
以上説明した実験結果によると、本発明の最適化手法では、従来の最適化手法と比べ、一部の実験においてノズル交換回数が増加しているものの、すべての実験において吸着回数が減少している。このため、結果的にはすべての実験において実装時間が減少している。また、上述したように、効果的に初期解の生成を行なっている。このため、最適化処理に要する時間が大幅に減少している。
以上説明したように、本実施の形態における部品実装順序最適化方法によれば、より多くの部品の同時吸着が可能な最適なノズルパターンおよび部品カセットの並び(Z配列)が決定され、これに伴い、部品の吸着回数および実装時間が短縮されるとともに、部品実装順序の最適化に要する時間が短縮される。
以上、本発明の実施の形態に係る部品実装順序最適化方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。
例えば、図26のS214(未配置部分への部品カセット114配置処理)では、未配置部分には実装対象となっている部品の員数の多い順に部品カセット114を配置するようにしているが、未配置部分に部品カセット114を配置せずに、空けたままにしておいてもよい。このようにしておくことにより、(m+1)番目以降のノズルパターンにおいて、部品を同時吸着できる可能性が増す。よって、(m+1)番目以降のノズルパターンにおいて部品を吸着するために吸着ヘッド112がZ配列を左右に移動する移動距離を少なくすることができる。よって、部品の吸着に必要な時間を減少させることができ、部品の実装時間を減少させることができる。
また、上述の実施の形態では、ノズルパターンの局所解探索処理(図33のS230、S233、図40)およびZ配列の局所解探索処理(図33のS231、図42)において、吸着回数、すなわち装着ヘッド112の上下動作の回数を評価関数として、当該評価関数の値が小さくなるように、最適解を探索した。しかし、吸着回数を小さくする代わりに、装着ヘッド112の移動量(以下、「ヘッド移動量」という。)または部品の吸着時間(吸着回数とヘッド移動量とを時間換算した値)が小さくなるように、最適解の探索をするようにしてもよい。以下に、その理由を説明する。
図49は、ヘッド移動量と吸着回数との関係を示すグラフであり、横軸は吸着回数を、縦軸はヘッド移動量を示している。このグラフには、1024点のサンプリング結果が示されている。このグラフからもわかるように、吸着回数とヘッド移動量との間には相関が見られ、吸着回数が減ると、ヘッド移動量が減ることがわかる。なぜならば、吸着回数が減るということは、1回に多くの部品を吸着できることを意味している。このため、ヘッド移動量は当然減少するからである。
図50は、3つの評価関数を、総吸着時間を尺度として比較したグラフである。ここで、手法Aは、上述の実施の形態で述べた吸着回数を評価関数として、最適解を求める方法である。手法Bは、ヘッド移動量を評価関数として、最適解を求める方法である。手法Cは、吸着時間を評価関数として最適解を求める方法である。図50に示されるように、手法Bまたは手法Cの方が手法Aに比べて、総吸着時間(すべての実装対象部品を吸着するのに必要な時間)がほぼ少ないことが分かる。
この理由について図51を参照して説明する。上述の実施の形態では、ノズルパターンおよびZ配列の初期解501は、吸着回数を小さくするように求められている。このため、手法Aのように、当該初期解を出発点として、さらに吸着回数を小さくしようとしても、初期解でほぼ解が収束しているため、ほとんど解の更新が行なわれない。解の更新を矢印で表すと、矢印502の方向に最適解を求めているのと等しくなる。
これに対し、手法BまたはCでは、上述の初期解を出発点として、ヘッド移動量が小さくなるように最適解を求めている。このように、最適解を求める際の評価関数を初期解を求める際に使用した評価関数と異なる評価関数としているため、解の更新が手法Aに比べて起こりやすくなるものと考えられる。解の更新を矢印で表すと、手法Bでは矢印503の方向に最適解を求めているのと等しくなる。よって、手法Aに比べ、手法Bまたは手法Cの方が解の更新が繰り返し行なわれることになる。このため、ヘッド移動量が大幅に減ることとなり、これに伴い、吸着回数も減少するので、総吸着時間が手法Aに比べて減少する。このような理由により、手法Bまたは手法Cの方が手法Aに比べて、総吸着時間が少なくなっているものと思われる。
以上のように、本発明により、ギャングピックアップ方式の部品実装機について、より高度な最適化レベルで、より高速に、部品の実装順序が最適化され、多種多様な携帯電話機等の基板が短納期で求められる今日において、本発明の実用的意義は極めて大きい。