JP3582655B6 - 部品実装順序最適化方法、その装置及び部品実装機 - Google Patents

部品実装順序最適化方法、その装置及び部品実装機 Download PDF

Info

Publication number
JP3582655B6
JP3582655B6 JP2003313513A JP2003313513A JP3582655B6 JP 3582655 B6 JP3582655 B6 JP 3582655B6 JP 2003313513 A JP2003313513 A JP 2003313513A JP 2003313513 A JP2003313513 A JP 2003313513A JP 3582655 B6 JP3582655 B6 JP 3582655B6
Authority
JP
Japan
Prior art keywords
component
task
mounting
equipment
tape
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2003313513A
Other languages
English (en)
Other versions
JP3582655B2 (ja
JP2004031984A (ja
Inventor
康宏 前西
幾生 吉田
正通 森本
敏樹 金道
武彦 志田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003313513A priority Critical patent/JP3582655B6/ja
Publication of JP2004031984A publication Critical patent/JP2004031984A/ja
Publication of JP3582655B2 publication Critical patent/JP3582655B2/ja
Application granted granted Critical
Publication of JP3582655B6 publication Critical patent/JP3582655B6/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

本発明は、部品実装機によって電子部品をプリント配線基板等の基板に実装するときの最適な順序を決定する方法等に関し、特に、複数の部品を吸着して基板に装着する作業ヘッドを備える部品実装機を対象とする部品実装順序の最適化に関する。
電子部品をプリント配線基板等の基板に実装する部品実装機では、より短いタクト(実装時間)を実現するために、対象部品の実装順序について、最適化が行われる。具体的には、実装順序の最適化の一つとして、例えば、部品実装機が装備する部品カセット群における各部品カセットの配列順序を最適化しておく必要がある。
そのための従来の技術として、例えば、特許文献1に開示された部品装着順序最適化方法がある。この方法では、(1)部品カセット群を、その部品に適用される装着スピ−ドによってグル−プ分けし、同一グループ内の部品カセットを、2個ずつ組み合わせたときの装着点数の和が均等化されるように、同一基板に対する装着点数の多いものと少ないものを適宜組み合わせてペア群を構成し、(2)このカセットグル−プを装着スピード順に配置し、かつ、同一グル−プ内においては前記ペア毎に並べることによって、カセットの配列順序を決定し、(3)その後に、部品の装着順序のみをパラメータとして最適化処理を行う。
これによって、カセット配列順序と部品の装着順序という2つのパラメータによる複雑な最適化が回避され、単一のパラメータによる短時間での最適化が実現される、というものである。
特開平05−104364号公報
しかしながら、このような従来の最適化方法は、作業ヘッドが部品カセットから1個の部品だけを吸着して基板に装着することを前提にしているために、複数(例えば、10個)の部品を吸着して基板に装着していく高機能な作業ヘッド(マルチ装着ヘッド)を備える部品実装機に適用することができないという問題がある。
特に、最近の携帯電話機やノートパソコン等の電子機器の急激な需要の増大に伴い、複数の部品を吸着して基板に装着していく生産性の高いマルチ装着ヘッドを備える部品実装機が開発されており、そのような高機能な部品実装機に対応した新たな部品実装順序の最適化方法が望まれている。
そこで、本発明は、生産性の高い部品実装機に対応した部品実装順序の最適化、つまり、より高い生産性を可能にする部品実装順序の最適化方法、その装置及びその方法によって最適化された順序で部品を実装する部品実装機等を提供することを目的とする。
具体的には、例えば、複数の部品を吸着して基板に装着するマルチ装着ヘッドを備える部品実装機に対応した部品実装順序の最適化方法等を提供することを目的とする。
上記目的を達成するために、本発明は、部品を収納した部品カセットの並びから、最大n(≧2)個の部品を吸着することが可能な装着ヘッドで部品群を吸着し、XYロボットにより前記装着ヘッドを移動させ基板に実装していく部品実装機であって、前記装着ヘッドにより部品群を吸着し移動した後前記部品群を基板に装着するという1回分の一連動作によって実装される部品群をタスクとした場合に、前記装着ヘッドは、一のタスクに属する全ての部品を基板に装着し終えると、未実装のタスクのうち、部品を吸着するために移動する距離が最小となるタスクを次に実装することを特徴とする。
つまり、本発明に係る部品実装順序最適化方法は、同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、そのタスクグループに属する任意の1つの第1タスクを選択し、その第1タスクの最終実装点を特定し、その第1タスクを除く全てのタスクのうち、タスクの吸着位置が前記第1タスクの最終実装点から最も近い位置にある第2タスクを特定し、以下同様にして、第2タスクの最終実装点を特定し、第3タスクを特定することを、前記第1タスクが再び特定されるまで、繰り返し、前記第1タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含むことを特徴とする。
ここで、前記部品実装順序最適化方法はさらに、ある最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに装着ヘッドが移動すべき距離が最短となるように、各最短巡回部分経路における最初のタスク及びそれら最短巡回部分経路の順序を決定し、決定されたタスクの並びとなるように、前記タスクの順序を入れ替えるステップを含んでもよい。
また、上記目的を達成するために、本発明に係る部品実装順序最適化方法は、同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループを生成するタスクグループ生成ステップと、生成されたタスクグループそれぞれについて、タスクグループを構成する全ての部品の実装に要する時間が最小となるように、タスクグループ内でタスクの順序を入れ替え、得られたタスク順序に対応する部品の実装順序を最適化されたものとするタスク入替ステップとを含み、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、前記タスク入替ステップでは、そのタスクグループに属する任意の1つの第1タスクを選択し、その第1タスクの最終実装点を特定し、その第1タスクを除く全てのタスクのうち、タスクの吸着位置が前記第1タスクの最終実装点から最も近い位置にある第2タスクを特定し、以下同様にして、第2タスクの最終実装点を特定し、第3タスクを特定することを、前記第1タスクが再び特定されるまで、繰り返し、前記第1タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含むことを特徴とする。
さらに、本発明は、上記最適化方法のステップを機能手段として備える最適化装置として実現したり、上記最適化方法のステップによって最適化された実装順序で部品を実装する部品実装機として実現したり、上記最適化方法のステップをコンピュータに実行させるプログラム及びそのようなプログラムを格納したコンピュータ読み取り可能な記録媒体として実現することもできる。
本発明により、装着ヘッドが1つのタスクにおける部品の装着を終えて次のタスクの実装のために戻るときの移動距離が短縮されるので、タスクグループ全体における総実装時間が短縮される。
つまり、部品を収納した部品カセットの並びから、最大n(≧2)個の部品を吸着することが可能な装着ヘッドで部品群を吸着し、XYロボットにより前記装着ヘッドを移動させ基板に実装していく部品実装機において、装着ヘッドは、一のタスクに属する全ての部品を基板に装着し終えると、部品を吸着するために移動する距離が最小となるタスクを次に実装するので、マルチ装着ヘッドを備える部品実装機のように生産性の高い部品実装機に対応した部品実装順序の最適化が実現される。
本発明の実施の形態について、以下の目次に従って、図面を用いて詳細に説明する。なお、ここで用いられる主な技術用語の意味は、本文中及び「5 用語の説明」に記載されている。
1 部品実装システム
1.1 部品実装機の構成
1.2 部品実装機における制約
1.2.1 マルチ装着ヘッド
1.2.2 部品認識カメラ
1.2.3 部品供給部
1.2.4 部品カセット
1.2.5 その他の制約
1.3 最適化装置
1.3.1 最適化装置のハードウェア構成
1.3.2 最適化装置のソフトウェア構成
2 最適化装置の動作(概要編)
2.1 部品グループの作成
2.2 ラインバランス処理
2.3 小部品に対する最適化
2.4 タスクグループ生成法
2.5 刈り上げ法
2.6 ランダム選択法(「貪欲法」)
2.7 交差解消法
2.8 戻り最適化法
2.9 汎用部品に対する最適化
3 最適化装置の動作(詳細編)
3.1 「刈り上げ法」
3.1.1 「タスクグループ生成法」の概要
3.1.2 「タスクグループ生成法」の課題
3.1.3 「刈り上げ法」
3.1.4 「刈り上げ法」による小部品の最適化
3.1.5 関連する個別処理
3.2 「交差解消法」
3.2.1 「貪欲法」の概要
3.2.2 「貪欲法」の課題
3.2.3 「交差解消法」
3.2.4 関連する個別処理
3.3 「戻り最適化法」
3.3.1 部品実装動作の検討
3.3.2 「戻り」行程の最適化の必要性
3.3.3 「戻り最適化法」
3.3.4 関連する個別処理
3.4 配列固定処理
3.4.1 概要
3.4.2 関連する個別処理
3.5 LLサイズ基板への対応
3.5.1 概要
3.5.2 Z軸上の部品テープの入れ替え
3.5.3 吸着方法の変更
3.5.4 関連する個別処理
3.6 XLサイズ基板への対応
3.6.1 概要
3.6.2 関連する個別処理
3.7 負荷バランス処理
3.7.1 概要
3.7.2 バランス調整方法のレベル
3.7.3 関連する個別処理
3.8 ラインバランス処理
3.8.1 概要
3.8.2 バランス調整方法のレベル
3.8.3 関連する個別処理
3.9. 最適化装置による個別処理の詳細
3.9.1 「刈り上げ法」
3.9.2 平行四辺形によるカセット分割
3.9.3 長方形によるカセット分割
3.9.4 与えられたカセット本数でのコア処理方法
3.9.5 小部品のタスク生成処理
3.9.6 「交差解消法」
3.9.7 「戻り最適化法」
3.9.8 全体の流れ(ヒストグラムからスタート)
3.9.9 カセットブロック内の固定部品と「山」の配置関係
3.9.10 配列固定:固定先の使用可否判断
3.9.11 ダブルカセットの配列固定について
3.9.12 LL制約:吸着方法の変更(1)
3.9.13 LL制約:吸着方法の変更(2)
3.9.14 LL制約:Z軸上の部品テープの入れ替え(1)
3.9.15 LL制約:Z軸上の部品テープの入れ替え(2)
3.9.16 XLサイズ基板への対応(XL制約)
3.9.17 負荷レベルバランス調整処理(「山」単位)
3.9.18 負荷レベルバランス調整処理(部品テープ単位)
3.9.19 前サブ設備から後サブ設備へ山を移動する処理
3.9.20 前サブ設備から後サブ設備へ部品テープを移動する処理
3.9.21 前サブ設備から後サブ設備へ実装点を移動する処理
3.9.22 ラインバランス処理でのスワップ処理
3.9.23 ダブルカセットの「刈り上げ法」
3.9.24 ノズル交換のアルゴリズム
3.10 画面表示例
3.10.1 メイン画面
3.10.2 開く画面
3.10.3 最適化詳細情報画面
3.10.4 カセット個数設定画面
3.10.5 部品分割数設定画面
3.10.6 ノズル本数設定画面
3.10.7 ノズルステーション選択画面
3.10.8 オプション設定画面
3.10.9 Z軸情報画面
3.10.10 ノズルステーション情報画面
4 最適化装置の動作(応用編)
4.1 小部品の最適化
4.1.1 部品分割しないZ配列の最適化
4.1.2 左右ブロックへの振り分け処理における最適化
4.1.3 ダブルカセットの使用本数の見積もり
4.1.4 ダブルカセットのペア固定
4.1.5 NGヘッドを考慮した最適化アルゴリズム
4.2 複数NCデータの同時最適化
4.3 汎用部品の最適化(ルールベースの導入)
4.3.1 横取り法
4.3.2 タスク分割
4.3.3 タスク融合
4.3.4 タスク入替
4.4 ノズル制約を考慮した最適化
4.4.1 ノズルステーション上のノズル配置を固定した場合への対応
4.4.2 使用ノズルが10本未満の場合の小部品の最適化
5 用語の説明
以上の目次に示された各項目の説明は以下の通りである。
1 部品実装システム
図1は、本発明に係る部品実装システム10全体の構成を示す外観図である。この部品実装システム10は、上流から下流に向けて回路基板20を送りながら電子部品を実装していく生産ラインを構成する複数の部品実装機100、200と、生産の開始等にあたり、各種データベースに基づいて必要な電子部品の実装順序を最適化し、得られたNCデータを部品実装機100、200にダウンロードして設定・制御する最適化装置300とからなる。
部品実装機100は、同時かつ独立して、又は、お互いが協調して(又は、交互動作にて)部品実装を行う2つのサブ設備(前サブ設備110及び後サブ設備120)を備える。各サブ設備110(120)は、直交ロボット型装着ステージであり、部品テープを収納する最大48個の部品カセット114の配列からなる2つの部品供給部115a及びbと、それら部品カセット114から最大10個の部品を吸着し基板20に装着することができる10個の吸着ノズル(以下、単に「ノズル」ともいう。)を有するマルチ装着ヘッド112(10ノズルヘッド)と、そのマルチ装着ヘッド112を移動させるXYロボット113と、マルチ装着ヘッド112に吸着された部品の吸着状態を2次元又は3次元的に検査するための部品認識カメラ116と、トレイ部品を供給するトレイ供給部117等を備える。
なお、「部品テープ」とは、現実は、同一部品種の複数の部品がテープ(キャリアテープ)上に並べられたものであり、リール(供給リール)等に巻かれた状態で供給される。主に、チップ部品と呼ばれる比較的小さいサイズの部品を部品実装機に供給するのに使用される。ただし、最適化処理においては、「部品テープ」とは、同一の部品種に属する部品の集合(それら複数個の部品が仮想的なテープ上に並べられたもの)を特定するデータであり、「部品分割」と呼ばれる処理によって、1つの部品種に属する部品群(1本の部品テープ)が複数本の部品テープに分割される場合がある。
また、部品テープによって供給される部品をテーピング部品と呼ぶ。
この部品実装機100は、具体的には、高速装着機と呼ばれる部品実装機と多機能装着機と呼ばれる部品実装機それぞれの機能を併せもつ実装機である。高速装着機とは、主として□10mm以下の電子部品を1点あたり0.1秒程度のスピードで装着する高い生産性を特徴とする設備であり、多機能装着機とは、□10mm以上の大型電子部品やスイッチ・コネクタ等の異形部品、QFP・BGA等のIC部品を装着する設備である。
つまり、この部品実装機100は、ほぼ全ての種類の電子部品(装着対象となる部品として、0.6mm×0.3mmのチップ抵抗から200mmのコネクタまで)を装着できるように設計されており、この部品実装機100を必要台数だけ並べることで、生産ラインを構成することができる。
1.1 部品実装機の構成
図2は、本発明に係る部品実装順序最適化の対象となる部品実装機100の主要な構成を示す平面図である。
シャトルコンベヤ118は、トレイ供給部117から取り出された部品を載せて、マルチ装着ヘッド112による吸着可能な所定位置まで運搬するための移動テーブル(回収コンベア)である。ノズルステーション119は、各種形状の部品種に対応するための交換用ノズルが置かれるテーブルである。
各サブ設備110(又は120)を構成する2つの部品供給部115a及びbは、それぞれ、部品認識カメラ116を挟んで左右に配置されている。したがって、部品供給部115a又は115bにおいて部品を吸着したマルチ装着ヘッド112は、部品認識カメラ116を通過した後に、基板20の実装点に移動し、吸着した全ての部品を順次装着していく動作を繰り返す。
ここで、マルチ装着ヘッド112による部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の動作(吸着・移動・装着)、又は、そのような1回分の動作によって実装される部品群)を「タスク」と呼ぶ。例えば、10ノズルヘッド112によれば、1個のタスクによって実装される部品の最大数は10となる。なお、ここでいう「吸着」には、ヘッドが部品を吸着し始めてから移動するまでの全ての吸着動作が含まれ、例えば、1回の吸着動作(マルチ装着ヘッド112の上下動作)で10個の部品を吸着する場合だけでなく、複数回の吸着動作によって10個の部品を吸着する場合も含まれる。
図3は、マルチ装着ヘッド112と部品カセット114の位置関係を示す模式図である。このマルチ装着ヘッド112は、「ギャングピックアップ方式」と呼ばれる作業ヘッドであり、最大10個の吸着ノズル112a〜112bを装着することが可能であり、このときには、最大10個の部品カセット114それぞれから部品を同時に(1回の上下動作で)吸着することができる。
なお、「シングルカセット」と呼ばれる部品カセット114には1つの部品テープだけが装填され、「ダブルカセット」と呼ばれる部品カセット114には2つの部品テープ(ただし、送りピッチ(2mm又は4mm)が同一の部品テープに限られる)が装填される。また、部品供給部115a及びbにおける部品カセット114(又は、部品テープ)の位置を「Z軸上の値」又は「Z軸上の位置」と呼び、部品供給部115aの最左端を「1」とする連続番号等が用いられる。したがって、テーピング部品についての実装順序を決定することは、部品種(又は、部品テープ、又は、その部品テープを収納した部品カセット114)の並び(Z軸上の位置)を決定することに等しい。
図4(a)は、サブ設備110及び120それぞれの部品供給部115a、b及び215a、bの具体的な構成例を示し、図4(b)は、その構成における各種部品カセット114の搭載本数及びZ軸上の位置を示す表である。
図4(a)に示されるように、各部品供給部115a、115b、215a、215bは、それぞれ、最大48個の部品テープを搭載することができる(それぞれの位置は、Z1〜Z48、Z49〜Z96、Z97〜Z144、Z145〜Z192)。具体的には、図4(b)に示されるように、テープ幅が8mmの部品テープを2つ収納したダブルカセットを用いることで、各部品供給部(Aブロック〜Dブロック)に最大48種類の部品を搭載することができる。テープ幅の大きい部品(部品カセット)ほど、1つのブロックに搭載できるカセット本数は減少する。
なお、各サブ設備に向かって左側の部品供給部115a、215a(Aブロック、Cブロック)を「左ブロック」、各サブ設備に向かって右側の部品供給部115b、215b(Bブロック、Dブロック)を「右ブロック」とも呼ぶ。
図5(a)及び(b)は、10ノズルヘッドが吸着可能な部品供給部の位置(Z軸)の例を示す図及び表である。なお、図中のH1〜10は、10ノズルヘッドに搭載されたノズル(の位置)を指す。
ここでは、10ノズルヘッドの各ノズルの間隔は、1つのダブルカセットの幅(21.5mm)に相当するので、1回の上下動により吸着される部品のZ番号は、1つおき(奇数のみ又は偶数のみ)となる。また、10ノズルヘッドのZ軸方向における移動制約により、図5(b)に示されるように、各部品供給部の一端を構成する部品(Z軸)に対しては、吸着することができないノズル(図中の「−」)が存在する。
次に、図6〜図8を用いて、部品カセット114の詳細な構造を説明する。
図6(a)、(b)、(c)、(d)に示すような各種チップ形電子部品423a〜423dを図7に示すキャリアテープ424に一定間隔で複数個連続的に形成された収納凹部424aに収納し、この上面にカバーテープ425を貼付けて包装し、供給用リール426に所定の数量分を巻回したテーピング形態(部品テープ)でユーザに供給されている。
このようなテーピング電子部品423dは図8に示すような部品カセット114に装着されて使用されるものであり、図8において供給用リール426は本体フレーム427に結合されたリール側板428に回転自在に取り付けられている。この供給用リール426より引き出されたキャリアテープ424は送りローラ429に案内され、この電子部品供給装置が搭載された電子部品自動装着装置(図示せず)の動作に連動し、同装置に設けられたフィードレバー(同じく図示せず)により電子部品供給装置の送りレバー430が図中の矢印Y1方向に移動し、送りレバー430に取り付けられているリンク431を介してラチェット432を定角度回転させる。そしてラチェット432に連動した前記送りローラ429を定ピッチ(たとえば、2mm又は4mmの送りピッチ)だけ動かす。
また、キャリアテープ424は送りローラ429の手前(供給用リール426側)のカバーテープ剥離部433でカバーテープ425を引き剥がし、引き剥がしたカバーテープ425はカバーテープ巻取りリール434に巻取られ、カバーテープ425を引き剥がされたキャリアテープ424は電子部品取り出し部435に搬送され、前記送りローラ429がキャリアテープ424を搬送するのと同時に前記ラチェット432に連動して開口する電子部品取り出し部435より真空吸着ヘッド(図示せず)により収納凹部424aに収納されたチップ形電子部品423dを吸着して取り出す。その後、送りレバー430は上記フィードレバーによる押し力を解除されて引張りバネ436の付勢力でもって同Y2方向に、すなわち元の位置にもどる。
上記一連の動作が繰り返されると使用済のキャリアテープ424は電子部品供給装置の外部へ排出され、上記電子部品自動供給装置の動作と連動しているカッター(図示せず)で細かく切断して廃棄されるように構成されている。
なお、部品カセット114は、2つのキャリアテープ424を収納するダブルカセットのタイプである場合には、収納している2つのキャリアテープ424を同一の送りピッチでのみ供給していくことができるものとする。
この部品実装機100の動作上の特徴をまとめると、以下の通りである。
(1)ノズル交換
次の装着動作に必要なノズルがマルチ装着ヘッド112にないとき、マルチ装着ヘッド112は、ノズルステーション119へ移動し、ノズル交換を実施する。ノズルの種類としては、吸着できる部品のサイズに応じて、例えば、タイプS、M、L等がある。
(2)部品吸着
マルチ装着ヘッド112が部品供給部115a及びbに移動し、電子部品を吸着する。一度に10個の部品を同時に吸着できないときは、吸着位置を移動させながら複数回、吸着上下動作を行うことで、最大10個の部品を吸着することができる。
(3)認識スキャン
マルチ装着ヘッド112が部品認識カメラ116上を一定速度で移動し、マルチ装着ヘッド112に吸着された全ての電子部品の画像を取り込み、部品の吸着位置を正確に検出する。
(4)部品装着
基板20に、順次電子部品を装着する。
上記(1)から(4)の動作を繰り返し行うことで、全ての電子部品を基板20に搭載する。上記(2)から(4)の動作は、この部品実装機100による部品の実装における基本動作であり、「タスク」に相当する。つまり、1つのタスクで、最大10個の電子部品を基板に装着することができる。
1.2 部品実装機における制約
部品の実装順序を最適化する目的は、部品実装機100による単位時間当たりの基板の生産枚数を最大化することである。したがって、好ましい最適化方法(最適化アルゴリズム)とは、この部品実装機100が有する上述の機能上及び動作上の特徴から分かるように、基板上に効率よく装着できる10個の電子部品を選び、それらを同時に部品供給部から吸着し、最短経路で順次装着するようなアルゴリズムである。このような最適化アルゴリズムで決定された部品実装順序は、理想的には、1本のノズルだけによる部品実装の場合と比較し、約10倍の生産性を向上することができる。
ところが、いかなる部品実装機であっても、機構上、コスト上、運用上などの面から、部品の実装順序の決定に対する制約要因を持っている。したがって、現実的には、部品の実装順序の最適化とは、様々な制約を遵守したうえで、単位時間当たりの基板の生産枚数を可能な限り最大化することである。
以下、この部品実装機100における主な制約を列挙する。なお、制約の詳細については、個々の最適化アルゴリズムを説明している箇所においても説明している。
1.2.1 マルチ装着ヘッド
マルチ装着ヘッド112は、独立して吸着・装着動作をする10個の装着ヘッドが一列に並べられたものであり、最大10本の吸着ノズルが着脱可能であり、それら一連の吸着ノズルによって、1回の吸着上下動作で最大10個の部品を同時に吸着することができる。
なお、マルチ装着ヘッドを構成している個々の作業ヘッド(1個の部品を吸着する作業ヘッド)」を指す場合には、単に「装着ヘッド(又は、「ヘッド」)」と呼ぶ。
マルチ装着ヘッド112を構成する10本の装着ヘッドが直線状に並ぶという構造上、部品吸着時と部品装着時のマルチ装着ヘッド112の可動範囲に関して制約がある。具体的には、図5(b)に示されるように、部品供給部の両端(左ブロック115aの左端付近及び右ブロック115bの右端付近))で電子部品を吸着するときには、アクセスできる装着ヘッドが制限される。
また、電子部品を基板に装着する時にも、マルチ装着ヘッド112の可動範囲は制限を受ける。後述する「LLサイズ基板」や「XLサイズ基板」と呼ばれる通常よりも縦又は横方向に大きいサイズの基板に対して、部品を実装する場合に生じる制約である。
1.2.2 部品認識カメラ
この部品実装機100には、部品認識カメラ116として、2次元画像を撮像する2Dカメラと、高さ情報も検出できる3Dカメラが搭載されている。2Dカメラには、撮像できる視野の大きさによって、2DSカメラと2DLカメラがある。2DSカメラは視野は小さいが高速撮像が可能で、2DSカメラは最大60×220mmまでの大きな視野を特徴としている。3Dカメラは、IC部品の全てのリードが曲がっていないかどうかを3次元的に検査するために用いられる。
電子部品を撮像する際の認識スキャン速度は、カメラによって異なる。2DSカメラを使用する部品と3Dカメラを使用する部品が同じタスクに存在する場合には、認識スキャンはそれぞれの速度で2度実施する必要がある。
1.2.3 部品供給部
電子部品のパッケージの状態には、電子部品をテープ状に収納するテーピングと呼ばれる方式と、部品の大きさに合わせて間仕切りをつけたプレートに収納するトレイと呼ばれる方式がある。
テーピングによる部品の供給は、部品供給部115a及びbにより行われ、トレイによる供給は、トレイ供給部117により行われる。
電子部品のテーピングは規格化されており、部品の大きさに応じて、8mm幅から72mmまでのテーピング規格が存在する。このようなテープ状の部品(部品テープ)をテープ幅に応じた部品カセット(テープ・フィーダ・ユニット)にセットすることで、電子部品を安定した状態で連続的に取り出すことが可能となる。
部品カセットをセットする部品供給部は、12mm幅までの部品テープを21.5mmピッチで隙間なく搭載できるように設計されている。テープ幅が16mm以上になると、テープ幅に応じて必要分だけ隙間をあけてセットすることになる。複数の電子部品を同時に(1回の上下動作で)吸着するためには、装着ヘッドと部品カセットそれぞれの並びにおけるピッチが一致すればよい。テープ幅が12mmまでの部品に対しては、10点同時吸着が可能である。
なお、部品供給部を構成する2つの部品供給部(左ブロック115a、右ブロック115b)それぞれには、12mm幅までの部品テープを最大48個搭載することができる。
1.2.4 部品カセット
部品カセットには、1つの部品テープだけを収納するシングルカセットと、最大2つの部品テープを収納することができるダブルカセットとがある。ダブルカセットに収納する2つの部品テープは、送りピッチ(2mm又は4mm)が同一の部品テープに限られる。
1.2.5 その他の制約
部品実装機100における制約には、以上のような部品実装機100の構造から生じる制約だけでなく、部品実装機100が使用される生産現場における事情から生じる以下のような運用面での制約もある。
(1)配列固定
例えば、人手による部品テープの交換作業を削減するために、特定の部品テープ(又は、それを収納した部品カセット)については、セットする部品供給部での位置(Z軸上の位置)が固定される場合がある。
(2)リソース上の制約
同一部品種について準備できる部品テープの本数、部品テープを収納する部品カセットの数、ダブルカセットの数、吸着ノズルの数(タイプごとの数)等が、一定数に制限される場合がある。
1.3 最適化装置
最適化装置300は、生産の対象(基板及びその上に実装すべき部品)と生産の道具(限られたリソースを備えた部品実装機、サブ設備)が与えられた場合に、可能な限り短い時間で基板を製造する(単位時間あたりに製造できる基板の枚数を多くする)ための部品実装順序を決定する装置である。
具体的には、基板あたりの実装時間を最小化するためには、どの部品実装機(サブ設備)のどの位置(Z軸)にいかなる部品テープを収めた部品カセットを配置しておき、各部品実装機(サブ設備)のマルチ装着ヘッドがいかなる順序で部品カセットから可能な限り多くの部品を同時に吸着し、吸着した複数の部品を基板上のどの位置(実装点)にどのような順序で装着すればよいかをコンピュータ上で決定する(最適解を探索する)装置である。
このときに、対象の部品実装機(サブ設備)が有する上述の制約を厳守することが要求される。
1.3.1 最適化装置のハードウェア構成
最適化装置300は、本発明に係る最適化プログラムをパーソナルコンピュータ等の汎用のコンピュータシステムが実行することによって実現され、現実の部品実装機100と接続されていない状態で、スタンドアロンのシミュレータ(部品実装順序の最適化ツール)としても機能する。
図9は、図1に示された最適化装置300のハードウェア構成を示すブロック図である。この最適化装置300は、生産ラインを構成する各設備の仕様等に基づく各種制約の下で、対象となる基板の部品実装におけるラインタクト(ラインを構成するサブ設備ごとのタクトのうち、最大のタクト)を最小化するように、部品実装用CAD装置等から与えられた全ての部品を対象として、各サブ設備で実装すべき部品及び各サブ設備における部品の実装順序を決定し、最適なNCデータを生成するコンピュータ装置であり、演算制御部301、表示部302、入力部303、メモリ部304、最適化プログラム格納部305、通信I/F(インターフェース)部306及びデータベース部307等から構成される。
なお、「タクト」とは、対象の部品を実装するのに要する総時間である。
演算制御部301は、CPUや数値プロセッサ等であり、ユーザからの指示等に従って、最適化プログラム格納部305からメモリ部304に必要なプログラムをロードして実行し、その実行結果に従って、各構成要素302〜307を制御する。
表示部302はCRTやLCD等であり、入力部303はキーボードやマウス等であり、これらは、演算制御部301による制御の下で、本最適化装置300と操作者とが対話する等のために用いられる。具体的なユーザインターフェースは、後述の画面表示例で説明している通りである。
通信I/F部306は、LANアダプタ等であり、本最適化装置300と部品実装機100、200との通信等に用いられる。
メモリ部304は、演算制御部301による作業領域を提供するRAM等である。最適化プログラム格納部305は、本最適化装置300の機能を実現する各種最適化プログラムを記憶しているハードディスク等である。
データベース部307は、この最適化装置300による最適化処理に用いられる入力データ(実装点データ307a、部品ライブラリ307b及び実装装置情報307c)や最適化によって生成された実装点データ等を記憶するハードディスク等である。
図10〜図12は、それぞれ、実装点データ307a、部品ライブラリ307b及び実装装置情報307cの例を示す。
実装点データ307aは、実装の対象となる全ての部品の実装点を示す情報の集まりである。図10に示されるように、1つの実装点piは、部品種ci、X座標xi、Y座標yi、制御データφiからなる。ここで、「部品種」は、図11に示される部品ライブラリ307bにおける部品名に相当し、「X座標」及び「Y座標」は、実装点の座標(基板上の特定位置を示す座標)であり、「制御データ」は、その部品の実装に関する制約情報(使用可能な吸着ノズルのタイプ、マルチ装着ヘッド112の最高移動速度等)である。なお、最終的に求めるべきNCデータとは、ラインタクトが最小となるような実装点の並びである。
部品ライブラリ307bは、部品実装機100、200が扱うことができる全ての部品種それぞれについての固有の情報を集めたライブラリであり、図11に示されるように、部品種ごとの部品サイズ、タクト(一定条件下における部品種に固有のタクト)、その他の制約情報(使用可能な吸着ノズルのタイプ、部品認識カメラ116による認識方式、マルチ装着ヘッド112の最高速度比等)からなる。なお、本図には、参考として、各部品種の部品の外観も併せて示されている。
実装装置情報307cは、生産ラインを構成する全てのサブ設備ごとの装置構成や上述の制約等を示す情報であり、図12に示されるように、マルチ装着ヘッドのタイプ等に関するヘッド情報、マルチ装着ヘッドに装着され得る吸着ノズルのタイプ等に関するノズル情報、部品カセット114の最大数等に関するカセット情報、トレイ供給部117が収納しているトレイの段数等に関するトレイ情報等からなる。
これらの情報は、以下のように呼ばれるデータである。つまり、設備オプションデータ(サブ設備毎)、リソースデータ(設備毎で利用可能なカセット本数とノズル本数)、ノズルステーション配置データ(ノズルステーション付きのサブ設備毎)、初期ノズルパターンデータ(サブ設備毎)、Z軸配置データ(サブ設備毎)等である。また、リソースに関して、SX,SA,S等の各タイプのノズル本数は10本以上とする。
1.3.2 最適化装置のソフトウェア構成
最適化プログラム格納部305に格納された最適化プログラムの特徴の1つは、電子部品を「小部品」と「汎用部品」に大別し、それぞれに異なった最適化アルゴリズムを適用した点である。
基板に搭載する電子部品の数は、例えば、多い場合で1000点程度になるが、その90パーセントは部品サイズが□3.3mm以下のチップ部品である(以下、このような小さいサイズの部品を「小部品」と呼ぶ。)。小部品は抵抗やコンデンサ等の部品で、部品サイズもいくつかのパターンに限定できる。テーピングは、すべて8mm幅で、10点同時吸着可能な部品である。小部品の満たすべき条件は、例えば、以下の通りである。
・部品サイズが□3.3mm以下である。
・部品高さが4.0mm以下である。
・部品認識カメラが2DSである。
・部品テープ幅が8mmである。
一方、残りの10%の部品は、コネクタやIC等の異形部品である(以下、小部品の条件を満たさない大きいサイズの部品を「汎用部品」と呼ぶ。)。部品によっては、トレイで供給されたり、特殊なノズルが必要であったりするために、最適化時に考慮すべきパラメータが多い。
そこで、小部品に対しては、10点同時吸着タスクが最大限に生成でき、高速に最適化処理が実行できるアルゴリズムを目標としている。一方、汎用部品に対しては、タスク単位での装着時間を評価関数として、状態(とり得る実装順序の1つ)を変化させながら最適な実装順序を導き出す、柔軟性に富んだアルゴリズムで最適化レベルを高めることを目標としている。
図13は、図9に示された最適化プログラム格納部305に格納されている最適化プログラムの機能ブロック図である。最適化プログラムは、大きく分けて、部品グループ生成部314、ラインバランス最適化部315及び状態最適化部316から構成される。なお、図示されていないが、最適化プログラムには、ユーザと対話するためのGUI(グラフィカル・ユーザ・インターフェース)の機能も含まれている。
部品グループ生成部314は、データベース部307に格納された実装点データ307aによって特定される全ての実装部品を、部品厚みの点から、例えば、9つの部品グループに分類する。具体的には、実装点データ307aが示す全ての部品種を参照することで、同一部品種ごとの部品数を示す部品表を作成し、部品ライブラリ307bにおける部品サイズを参照することで、全ての部品種それぞれを複数の部品グループのいずれかに対応づける。そして、その分類結果(各部品グループに属する部品種及び部品数等)をラインバランス最適化部315に通知する。
ラインバランス最適化部315は、部品グループ生成部314から通知された部品グループの情報に基づいて、部品厚みの薄い部品グループから順に実装することを遵守しつつ、ラインタクトが最小となるように、ラインバランスを最適化(サブ設備ごとのタクトを平準化)する。そのために、状態最適化部316と連携しながら動作する3つの機能モジュール(第1LBM部315a、第2LBM部315b及び第3LBM部315c)を有する。
なお、部品厚みの薄い部品グループを優先して実装することとしているのは、基板に部品を装着する際のマルチ装着ヘッド112の移動を円滑にさせ、実装の品質を高めるためである。
第1LBM部315aは、部品グループ生成部314から通知された複数の部品グループをタスクグループの単位で各サブ設備でのタクトがほぼ等しくなるようにラフに振り分ける。つまり、粗い調整によるラインバランスの最適化を行う。ここで、「タスクグループ」とは、タスクの集まりをいい、最適化のために部品の実装順序を入れ替えることが可能な部品群の範囲と一致する。
第2LBM部315bは、第1LBM部315aによってラフに振り分けられた各サブ設備ごとのタスクグループをサブ設備間で移動させることによりラインタクトを最小化する。つまり、細かい調整によるラインバランスの最適化を行う。
第3LBM部315cは、第2LBM部315bにより最適化された状態(タスクグループの振り分け)に対して、部品種(部品テープ)を単位として、第2LBM部315bと同様の手順でラインバランスの最適化を行う。
状態最適化部316は、部品グループ生成部314で生成された複数の部品グループそれぞれについて、各部品グループを構成するタスクグループを決定したり、決定したタスクグループごとの最適状態(各部品テープのZ軸上の値、各部品テープにおける部品(実装点)の実装順序)を決定するものであり、小部品(例えば、9個の部品グループのうちの5つに属する部品)を対象として最適化を行う小部品最適化部316aと、汎用部品(例えば、9個の部品グループのうちの残る4つに属する部品)を対象として最適化を行う汎用部品最適化部316bと、それら小部品最適化部316aおよび汎用部品最適化部316bにおける最適化に共通する計算処理を実行する最適化エンジン部316cとから構成される。なお、「状態」とは、対象となっている部品又は部品種(部品テープ)がとり得る個々の実装順序をいう。
なお、小部品最適化部316aは、簡易で高速処理に向いたアルゴリズムを用いてタスクグループを決定したり状態の最適化を行い、一方、汎用部品最適化部316bは、緻密でインテリジェントなアルゴリズムを用いて状態の最適化を行う。これは、一般に、携帯電話機等の基板に実装される小部品の総数は、上述したように、汎用部品に比べて極めて多い(例えば、9:1の比率)ことが分かっているので、それぞれに対応したアルゴリズムを用いて最適化を行うことで、トータルとして、より短時間で、より最適な解を求めるためである。
最適化エンジン部316cは、小部品最適化部316a及び汎用部品最適化部316bから与えられたパラメータに基づいて、ヒューリスティックであるが確定的なアルゴリズム(山登り法)に基づく最適化計算と、確率的ではあるがグローバルに最適解を探索するアルゴリズム(マルチカノニカル法)に基づく最適化計算を実行する。
図14は、図9に示された最適化プログラム格納部305に格納されている最適化プログラムが演算制御部301によって実行されたときの概略フロー図である。つまり、本図は、図13に示された各機能ブロックによる代表的な処理の流れであり、最適化装置300による主な処理に対応するフローチャートに相当する。
ここでは、基本的に、上方のステップ(矩形の枠内の処理)から下方に向けて順に実行される。ネスティング表示された箇所は、親のステップが、ネストして配置された子供のステップ(又は、その繰り返し)によって実現されることを示している。
本図に示されるように、最適化処理全体S310は、以下の6つの大きなステップS311〜S316からなる。
(1)実装点データの読込み(S311)
最初に、データベース部307から全ての実装点データ307aをメモリ部304等へ読み込む。必要に応じて、関連するデータ(部品ライブラリ307b、実装装置情報307c)も読み込んでおく。
(2)部品リストの作成(S312)
各実装点データ307aには、装着する部品の情報(部品ライブラリ307b)がリンクされているので、全ての実装点データ307aを読み込めば、どのような部品を何点装着するかを記した部品リストを作成することができる。
(3)部品グループの生成(S313)
次に、部品リストから部品グループを生成する。「部品グループ」とは、部品リストを部品の大きさによってグループ化したもので、大きくは小部品と汎用部品の分類である。小部品は、例えば、大きさによって、さらに以下のような3つの部品グループに細分化される。
G1:0.6mm×0.3mmサイズの部品
G2:1.0mm×0.5mmサイズの部品
G3:1.6mm×0.8mmサイズ以上の部品
(4)前後サブ設備への初期振り分け(S314)
電子部品ごとに標準装着時間を決定しておき、各設備に振り分けられた部品に対する標準装着時間の累算値がほぼ同じになるように、前後サブ設備110、120に部品種(部品テープ)を振り分ける。なお、前後サブ設備110、120に部品を振り分けた後、部品グループ等を単位として、さらに、左右ブロックのいずれかに部品テープを振り分ける。
(5)ラインバランス処理(S315)
小部品の最適化処理と汎用部品の最適化処理を、順次実行する(S320、S321)。そして、配列固定を考慮したうえで、部品テープを部品供給部115a及びbに配置する(S322)。続いて、装着時間を前後サブ設備110、120ごとに計算し、その結果、前後のバランスが悪ければ、前後サブ設備110、120間で部品を移動させ(S323)、再び、小部品と汎用部品の最適化処理を実施する。また、実装点(基板上の部品の装着位置)を考慮した最適化、つまり、後述する交差解消法による最適化(S324)や、戻り最適化法による最適化(S325)を施す。
なお、図14のフローチャートには、小部品に対する最適化については(S320)、複数の手法の中から選択された代表的なもの(「刈り上げ法」)が採用された場合の処理手順が示されている。
(6)最適化結果の出力(S316)
上記全ての処理を終えると以下のデータを出力する。
・電子部品の実装順序とタスク構成
・部品供給部115a及びbのレイアウト(部品テープの並び)
・フィーダ、ノズル等のリソース利用状況
・前後サブ設備110、120ごとの実装予測時間
これらのステップと図13に示された各機能ブロックとの対応は、次の通りである。つまり、ステップS311〜S313、主に部品グループ生成部314による処理であり、ステップS314は、主にラインバランス最適化部315の第1LBM部315a及び第2LBM部315bによる処理であり、ステップS315は、主にラインバランス最適化部315の第3LBM部315c及び状態最適化部316による処理であり、ステップS316は、主にラインバランス最適化部315及び図示されていないユーザ・インターフェース部による処理である。
これらステップの詳細は、後述の「最適化装置の動作(概要編)」、「最適化装置の動作(詳細編)」及び「最適化装置の動作(応用編)」で説明している通りである。
なお、図中の「HC法」は、山登り法を意味し、ヒューリスティックであるが確定的に最適解を求めるアルゴリズムであり、「MC法」は、マルチカノニカル法を意味し、確率的ではあるがグローバルに最適解を探索するアルゴリズムである。
より詳しくは、部品実装順序の最適化とは、有限個数のとり得る実装順序の中から、一定条件(上述の制約等)を満たし、かつ、実装時間が最短となる実装順序を探し出す処理であり、数学的には、最適化問題において一定条件下で解(最適解)を求める処理に相当する。
「山登り法(HC法)」は、局所的探索法と呼ばれる解法の1つであり、まずとにかく条件を満たす解を1つ選び、以降、その解に、一定順序に従った変形(ここでは、実装順序の変更)を加え、条件を満たしながら結果(ここでは、実装時間)が改善されるならばそれに移ることを繰り返し、変形を加えても結果が改善されなくなったら終わりにする手法である。
また、「マルチカノニカル法(MC法)」は、大局的探索法と呼ばれる解法の1つであり、まず条件を満たす解を1つ選び、そして、その解に、偏りのない様々な変形を加え、条件を満たしながら結果が改善される(エントロピーが低くなる)確率を変形の種類ごとに評価し、それらの変形の中から最も高い確率で結果を改善するものを採用するという処理を繰り返し、変形を加えても結果が改善されなくなったら終わりにする手法である。
なお、これら「山登り法」及び「マルチカノニカル法」は、いずれも、直前の解に対して貪欲的に変形を加えることを試み、結果が改善され、かつ、一定条件を満たすならばその解を採用するという点で共通し、「貪欲法」と呼ばれるアプローチの1つに属する。
また、最適化装置300は、専用のプログラムに基づくコンピュータ上での情報処理によって部品の実装順序を最適化する装置であるので、この明細書においては、最適化装置が物(部品、タスク、タスクグループ、部品カセット、部品テープ等)を「移動する」とは、「メモリやハードディスク等の記憶装置に保持されているデータ(部品の実装順序を特定するデータ等)を書き換える」ことを意味する。
2 最適化装置の動作(概要編)
次に、以上のように構成された部品実装システム10における最適化装置300の基本的な動作を説明する。
2.1 部品グループの作成
部品グループ生成部314は、データベース部307に格納された実装点データ307aによって特定される全ての実装部品を、部品厚みの点から、図15(a)に示されるような9つの部品グループG[1]〜G[9]に分類する。この処理は、図14のステップS313に相当する。
具体的には、実装点データ307aが示す全ての部品種を参照することで、図15(b)に示されるような、同一部品種ごとの部品数を示す部品表を作成し、部品ライブラリ307bにおける部品サイズを参照することで、全ての部品種それぞれを9つの部品グループG[1]〜G[9]のいずれかに対応づける。そして、その分類結果(各部品グループに属する部品種及び部品数等)をラインバランス最適化部315に通知する。
2.2 ラインバランス処理
図16は、ラインバランス最適化部315の第1LBM部315aによるタスクグループのサブ設備への振り分け処理の様子を示す図である。この処理は、図14のステップS314aに相当する。
第1LBM部315aは、部品厚みの薄い部品グループが先となるように全てのタスクグループを一列に並べ、その並びに対して、先頭から順に、サブ設備ごとのタクトが以下の式で示される値θに近くなるように、各タスクグループを上流のサブ設備から順に振り分けていく。
θ=(全部品グループを対象とした総タクト)/サブ設備の総数N
なお、「全部品グループを対象とした総タクト」は、実装点データ307a及び部品ライブラリ307bを参照することにより特定され、「サブ設備の総数N」は、実装装置情報307cを参照することにより特定される。
図17は、第2LBM部315bによるラインバランスの最適化(タスクグループの移動)の様子を示す図であり、グラフ405aは、最適化前におけるタクト分布(各サブ設備へのタスクグループの振り分け状態)を示し、グラフ405bは、最適化によるタスクグループの移動の様子を示し、グラフ405cは、最適化後におけるタクト分布を示す。この処理は、図14のステップS314bに相当する。
ここで、本図に示されるタクト分布において、縦軸は、タクトの大きさを示し、横軸は、生産ラインを構成する全てのサブ設備(ここでは6台)の並び(上流から下流に向けた並び)を示し、タスクグループは、そのタクトを高さとするブロック「TGn−m」として示されている。nは、そのタスクグループが属する部品グループの番号1〜9を示し、mは、同一の部品グループに属するタスクグループを区別する番号である。
なお、各サブ設備は、振り分けられた複数のタスクグループに対して、部品厚みの薄い部品グループに属するものを先に実装する。ただし、同一の部品グループに属する複数のタスクグループに対しては、その順序の制約を受けないものとする。例えば、サブ設備[3]は、TG3−3→TG3−1→TG3−2の順で実装してもよい。
図18は、図17に示された第2LBM部315bによるラインバランスの最適化手順を示すフローチャートである。
第2LBM部315bは、まず、第1LBM部315aが生成した図17のグラフ405aに示される初期状態(タスクグループの振り分け)に対して、サブ設備ごとのタクトが最大であるサブ設備[Smax]と最小であるサブ設備[Smin]を特定する(S500)。例えば、Smax=5、Smin=2と特定する。
そして、サブ設備[Smax]のタクトをラインタクトLTとして記憶する(S501)。例えば、LT=サブ設備[5]として記憶する。
次に、サブ設備[Smin]からサブ設備[Smax−1]までのサブ設備[i]について順に、隣接する2つのサブ設備間で、移動可能なタスクグループを移動させていく(S502〜S507)。
つまり、サブ設備[i+1]からサブ設備[i]に、一つタスクグループを仮移動し(S503)、それでもなお、サブ設備[i]のタクトがラインタクトLTよりも小さいか否かを確認する(S504)。
その結果、小さいことを確認できた場合にだけ、そのタスクグループを実際に移動させる(S505)。つまり、サブ設備[i]及びサブ設備[i+1]のタクトを更新する。例えば、タスクグループTG3−1をサブ設備[3]からサブ設備[2]に移動させる。なお、移動させる候補となるタスクグループは、部品厚みの薄い部品グループに属するものを優先して選択するものとする。
このようなタスクグループの移動を、サブ設備[Smin]からサブ設備[Smax−1]について順に繰り返し終えると(S502〜S506)、最後に、サブ設備[Smax]のタクトが減少したか否か、つまり、サブ設備[Smax]からサブ設備[Smax−1]に1つ以上のタスクグループが移動されたか否かを判断する(S507)。
その結果、減少している場合には、まだ最適化の余地が残されていると判断し、再び、同様の最適化(S500〜S507)を繰り返し、そうでない場合には、これ以上の最適化は困難であると判断し、終了する(S507)。
なお、移動可能なタスクグループが複数個存在する場合には、移動対象の選択について自由度があるので、計算時間の許される範囲で、移動させるタスクグループの組合せを各種試みることとする。
このようにして、最小タクトのサブ設備と最大タクトのサブ設備間において、タスクグループの移動を順次試みることで、最大タクト(ラインタクト)の減少化、つまり、ラインバランスの最適化が実現される。
以上の最適化が完了すると、次に、第3LBM部315cは、第2LBM部315bにより最適化された状態(タスクグループの振り分け)に対して、部品種(部品テープ)を単位として、第2LBM部315bと同様の手順でラインバランスの最適化を行う。
つまり、第2LBM部315bは、タスクグループを単位として、隣接するサブ設備間を移動させたが(S503、S505)、第3LBM部315cは、タスクグループに代えて、各タスクグループを構成する部品種(部品テープ)を単位として、サブ設備間を移動させる。したがって、2つのサブ設備間でのタクトの増減の刻みは、第2LBM部315bによる場合よりも小さくなり、よりきめ細かい最適化が行われる。これによって、ラインタクトLTがさらに減少され得る。
2.3 小部品に対する最適化
図19は、状態最適化部316の小部品最適化部316aによる小部品の実装順序最適化の概略手順を示すフローチャートであり、2つの大きなステップからなる。
小部品最適化部316aは、まず、全ての実装部品を対象として、吸着パターンを生成する(S520)。これは、部品種(部品テープ)を単位とした配列、即ち、部品カセット114の並び(Z軸)を決定することに相当する。
ここで、「吸着パターン」とは、図20に示されるような2次元のダイヤグラムであり、縦軸をマルチ装着ヘッド112による部品の吸着順とし、横軸を部品カセット114(部品テープ)の配列(Z軸)とした場合における、マルチ装着ヘッド112が同時に吸着する1組以上の部品群を示す。吸着の対象となる個々の部品(実装点)は単位矩形(正方形又は長方形)で示される。
なお、この図20には、説明の便宜のため、4ノズルヘッドを対象とした吸着パターンが示されており、最大4個の単位矩形が横に繋がったものが実装(吸着・移動・装着)の1回分(つまり、タスク)に相当し、丸で囲まれた一繋がりのタスクの集合がタスクグループに相当する。したがって、本図には、合計3つの独立したタスクグループが示されている。
このような吸着パターンの生成は、マルチ装着ヘッドができるだけ多くの部品を同時吸着することができるように、部品テープの相対的な配列を決定する作業にに相当し、言い換えると、全ての部品テープを、互いに独立した複数の配列グループ(タスクグループ)に分割することに相当する。
次に、小部品最適化部316aは、図19に示されるように、上記ステップS520で決定されたタスクグループ(配列が固定された部品テープ群)ごとに、その総タクトが小さくなるように、各部品テープを構成する部品の装着順序を決定する(S521)。これは、同一の部品カセット114から取り出した(吸着した)部品であっても、どの実装点に装着するかによって、同一タスクにおける直前の実装点からの距離が異なるので、装着時におけるマルチ装着ヘッド112の移動距離(実装時間)を短縮化することに相当する。
2.4 タスクグループ生成法
図19における吸着パターンの生成(S520)のための第1の具体的なアルゴリズムが「タスクグループ生成法」である。
この方法は、一定範囲内(吸着ノズル数の2倍以下)の個数の部品種(部品テープ)の並びからなるタスクグループの生成を繰り返していく手法であり、基本的には、以下の2つの大きなステップ(第1及び第2ステップ)からなる。なお、図21は、これら第1及び第2ステップを説明するための図であり、部品ヒストグラム406aは、対象となる部品を部品数の多い部品テープの順に並べた(ソートした)部品ヒストグラムであり、ダイヤグラム406bは、これら第1及び第2ステップによって生成される吸着パターンである。
[第1ステップ]
このステップでは、1つのタスクグループを生成する前半処理、つまり、部品数の多い部品テープの順に右方向(Z軸方向)に部品ヒストグラムを並べる。具体的には、
(i)まだ配置されていない部品テープの中で部品数が最大の部品テープ(1部品テープ)をZ軸上に置く。
(ii)その右隣に2番目の部品数の部品テープ(2部品テープ)を置く。
(iii)2部品テープの右隣に3番目の部品数の部品テープ(3部品テープ)を置く。
(iv)以下、これをマルチ装着ヘッド112の吸着ノズル数L(ここでは「4」)まで繰り返す。
この結果、部品ヒストグラム406aから4つの部品テープ400が取り出され、ダイヤグラム406bに示される箇所400に配置される。
[第2ステップ]
このステップでは、前半処理で生成されたダイヤグラムに対して、同時吸着数がLに満たないタスクの同時吸着数がLとなるように、左方向に部品ヒストグラムを配置していく。具体的には、
(i)1部品テープの部品数からL部品テープの部品数を引く。
(ii)得られた部品数差以下であって、その部品数差に最も近い部品数を持つ部品テープ(L+1部品テープ)を1部品テープの左隣に置く。
(iii)2部品テープから(L−1)部品テープの部品数を引く。
(iv)その部品数差以下であって、その部品数に最も近い部品数を持つ部品テープを(L+1)部品テープの左隣に置く。
(v)以下、これを(L−1)回繰り返す。
この結果、部品ヒストグラム406aにおける2つの部品テープ401a及び401bが取り出され、ダイヤグラム406bに示される箇所401に配置される。これによって、部品テープ400及び部品テープ401からなる1つの吸着パターンが完成する。これによって、これら6種の部品テープからなるタスクグループについて、相対的なZ軸が決定されたことになる。
以上の第1及び第2ステップによるタスクグループの生成を、対象の部品テープが無くなるまで繰り返す。
ここで、もし、上記第2ステップの条件を満たす未配置の部品テープが無くなってしまった場合には、上記第1及び第2ステップに代えて、以下の3つのステップ(第3〜第5ステップ)を実行する。図22は、これら第3〜第5ステップを説明するための図であり、部品ヒストグラム415aは、全体の部品ヒストグラムのうち未配置の部分(実線で囲まれた部分)を示し、ダイヤグラム415bは、これら第3〜第5ステップによって生成される吸着パターンを示す。
[第3ステップ]
このステップでは、未配置の部品ヒストグラムを整形して部分ヒストグラムを生成する。具体的には、
(i)まだ配置されていない部品テープの部品数の最小値を求める。
(ii)まだ配置されていない部品テープそれぞれの部品数から(最小値−1)を引く。
このような減算処理の結果、未配置の部品ヒストグラムにおける部品数は、太い実線で囲まれた部品ヒストグラム415aとなり、以下、この部品ヒストグラム415aにおける部品数を用いて、以下の第4及び第5ステップを進める。
[第4ステップ]
このステップは、上述の第1ステップに相当する。具体的には、
(i)まだ配置されていない部品テープの中で部品数最大の部品テープ(1部品テープ)をZ軸上に置く。
(ii)その右隣に2番目の部品数の部品テープ(2部品テープ)を置く。
(iii)2部品テープの右隣に3番目の部品数の部品テープ(3部品テープ)を置く。
(iv)以下、これをマルチ装着ヘッド112の吸着ノズル数L(ここでは「3」)まで繰り返す。
この結果、部品ヒストグラム415aから3つの部品テープ410が取り出され、ダイヤグラム415bに示される箇所410に配置される。
[第5ステップ]
このステップは、上述の第2ステップに相当する。具体的には、
(i)1部品テープの部品数から、(L部品テープの部品数−1)の値を引く。
(ii)その部品数差以下であって、その部品数差に最も近い部品数を持つ部品テープ(L+1部品テープ)を1部品テープの左隣に置く。
(iii)(L+1)部品テープからL部品テープの部品数を引く。
(iv)その部品数差以下であって、その部品数差に最も近い部品テープを(L+1)部品テープの左隣に置く。
(v)以下、これをL回繰り返す。
この結果、部品ヒストグラム415aにおける3つの部品テープ411が取り出され、ダイヤグラム415bに示される箇所411に配置される。これによって、部品テープ410及び部品テープ411からなる1つの吸着パターンが完成する。これによって、上記第1及び第2ステップで取り残された部品テープ、つまり、部品数の差が小さい部品テープについても、同時吸着が可能なタスクの集まりからなるタスクグループが生成され、それらの部品テープについて相対的なZ軸が決定されたことになる。
2.5 刈り上げ法
図19における吸着パターンの生成(S520)のための第2の具体的なアルゴリズムが「刈り上げ法」である。この処理は、図14のステップS320a〜dに相当する。
この方法は、部品数の多い部品テープの順に並べた部品ヒストグラムをそのままZ軸に配置することを基本とし、最大個数(L個)の部品を同時吸着することができない箇所についてだけ、上述の吸着パターン生成法を適用する手法であり、以下の2つの大きなステップ(第1及び第2ステップ)からなる。
[第1ステップ]
このステップでは、部品ヒストグラムから、L個の部品並びからなるタスクを取り出することを繰り返す(刈り上げていく)。
図23及び図24は、刈り上げ法における第1ステップを説明するための図であり、図23は、実装の対象となる全ての部品を部品数の多い部品テープの順に並べた部品ヒストグラム450であり、図24は、図23の部品ヒストグラム450から、L個(ここでは、10個)の部品並び(最大個数の部品を同時吸着した場合のタスク)の単位で部品を取っていく(刈り上げていく)様子を示す図である。これらの図23及び図24は、それぞれ、図14のステップS320a、bに相当する。
刈り上げにおいては、部品数の少ない部品テープが先に無くなるように、つまり、部品ヒストグラムにおける右端の部品テープから部品が無くなっていくように、L個の部品並び(〇、△及び×のいずれかを含む10個の矩形並び)を取り除いていく。これを、L個の部品並びの単位で取る除くことができなくなるまで繰り返す。
[第2ステップ]
このステップでは、上述の刈り上げ後における残り部品からなる部品ヒストグラムに対して、上述のタスクグループ生成法に準じたダイヤグラムを生成する。
図25及び図26は、刈り上げ法における第2ステップを説明するための図であり、図25は、第1ステップでの刈り上げ後に残された部品を対象として、部品数の多い順に再構築された部品ヒストグラム451であり、図26は、再構築された部品ヒストグラム451に対して、上述のタスクグループ生成法に準じたダイヤグラムの生成を行っている様子を示す図である。これらの図25及び図26は、図14のステップS320dに相当する。
なお、再構築された部品ヒストグラム451の幅(部品テープの数)は、上記第1ステップの処理内容より、必ず、(L−1)以下となる。
この第2ステップでは、具体的には、以下の処理を行う。
(i)刈り上げ後に残った部品について、図25に示された部品ヒストグラム451を生成するとともに、合計部品数(ここでは、100個)を算出する。
(ii)算出した合計部品数をL(ここでは、10)で割り、得られた値(ここでは、10)をタスク数とする吸着パターンの作成を目指す。
(iii)そのために、図26に示されるように、得られたタスク数(10)よりも大きな部品数を持つ部品テープについて、その超過分451aの部品(又は、超過部分の部品を分割したもの)だけ切り取り、部品ヒストグラム451の左側に補完して置いていく。
図27は、以上の第1及び第2ステップによる刈り上げ法によってZ軸が決定された部品テープについての吸着パターン452である。この図に示されるように、全ての部品は、最大個数(10個)の部品が同時吸着されるタスクだけから構成され、最大の同時吸着率で効率よく実装され得る。
図28は、図27に示された吸着パターン452に対応する(Z軸を変化させない再構築した)部品ヒストグラム453である。
このヒストグラム453から分かるように、刈り上げ法によれば、部品数の多い部品テープが左位置に配列されるという傾向が維持される。このことは、刈り上げ法が、マルチ装着ヘッド112の移動軌跡(右ブロック115bに対しては、部品を吸着した後に、必ず、右ブロック115bの左端に置かれた2次元カメラの前を通過すること)を考慮した(総移動距離を小さくする、即ち、総タクトを小さくする)部品配置の決定方法であることを意味する。
なお、左ブロック115aに対しては、上述の処理において、Z軸方向に対称な処理を施せばよい。つまり、部品数の小さい順に部品テープを並べた後に、同様の手順でタスクを刈り上げていくことで、ダイヤグラムを生成すればよい。
2.6 ランダム選択法(「貪欲法」)
図19における装着順序の最適化(S521)のための第1の具体的なアルゴリズムがランダム選択法である。この処理は、図14のステップS320eに相当する。
この方法は、1つのタスクグループにおいて、ランダムに選択した2つの実装点を入れ替えた場合の総タクトが小さくなるならば、それら2つの実装点を入れ替える、という処理を繰り返す貪欲的な手法である。
図29は、ランダム選択法による部品の装着順序の最適化の手順を示すフローチャートであり、図30は、ランダム選択法によって2つの実装点が入れ替えられる様子を示すである。
まず、小部品最適化部316aは、初期状態での総タクトを算出する(S530)。なお、ここでの状態は、1つのタスクグループを構成する全ての部品(実装点)について実装順序が一定のパターンに定められた状態である。したがって、一つの状態に対する総タクトは、データベース部307に記憶された情報307a〜cから一義的に決定される。
次に、それら全ての実装点の中からランダムに2つを選択し(S531)、選択した2つの実装点の順序を入れ替えた場合の総タクト(仮タクト)を算出する(S532)。図30には、実装点B2とB4とが入れ替えられた場合の状態例が示されている。
そして、いま算出された仮タクトが、直前の状態におけるタクトよりも小さいか否か判断する(S533)。
その結果、小さい場合には、それら2つの実装点の入れ替えを実施する(S534)。つまり、現在の状態と総タクトについて、それら実装点を入れ替えた場合のものに更新して記憶する。そして、その時点での終了条件(その状態でのタクトが操作者によって予め指定された目標タクトよりも小さいか、又は、一定の処理時間に達した等)を満たすか否か判断し(S535)、満たす場合に処理を終了する。
一方、2つの実装点の入れ替えによってもタクトが小さくならない場合(S533でNo)、及び、終了条件を満たさない場合(S535でNo)には、終了条件が満たされるまで、再び、同様の処理を繰り返す(S531〜S533〜S535)。このようにして、ランダム選択法により、費やした実行時間に応じて、タスクグループごとのタクトが小さくなり、部品実装順序が最適化され。
2.7 交差解消法
図19における装着順序の最適化(S521)のための第2の具体的なアルゴリズムが交差解消法である。この処理は、図14のステップS324に相当する。
この方法は、入れ替える2つの実装点をランダムに選択するのではなく、一定の基準、即ち、タスクごとの実装点を直線で接続して得られる折れ線(パス)どうしの交差があればそれを解消するという基準を満たす実装点を選択して入れ替える手法である。
図31は、5個の実装点からなる3つのタスク455a〜cについて、交差解消法により部品の装着順序を最適化する様子を示す図であり、ダイヤグラム457は、折れ線の交差が解消される前の装着順序(タスクごとの折れ線の分布)を示し、ダイヤグラム458は、折れ線の交差が解消された後の装着順序を示す。なお、同一部品種(部品テープ)の実装点は、同一模様の丸印で示されている。
まず、小部品最適化部316aは、データベース部307の実装点データ307a等を参照することによって、初期状態における全ての交差を特定する。ただし、ここでの交差は、同一タスクに属する連続して装着する2つの実装点を結ぶ線分と、他のタスクに属する同様の線分との交差であって、それら線分の両端の実装点に用いられる部品の部品種(部品テープ)がそれら線分同士で同一であるものに限られる。
次に、特定した全ての交差について、順次、交差を解消するように線分の接続を変更する。なお、解消の前後において、各線分の両端に位置する部品の部品種は変更されないので、この線分の接続変更は一義的に定まり、かつ、その接続変更によって各タスクを構成する部品種の並びが変化することはない。
このような交差解消法によって、タスク間におけるマルチ装着ヘッド112の無駄な移動が解消される。つまり、一つの部品を装着した後に移動すべき実装点は、マルチ装着ヘッド112の移動に伴う無駄なタクトの増加が抑えられた部品の実装順序が決定される。
2.8 戻り最適化法
図19における装着順序の最適化(S521)のための第3の具体的なアルゴリズムが戻り最適化法である。この処理は、図14のステップS325に相当する。
この方法は、1つのタスクグループにおいて、1つのタスクの部品装着を完了した後に、次のタスクの部品を吸着するために移動するマルチ装着ヘッド112の戻り軌跡に着目し、そのタスクグループを構成するタスクの並び(タスク単位での順序)を最適化する手法である。
図32は、戻り最適化法によりタスクの順序を最適化する手順を説明するための図である。ここには、Z軸における部品供給部115a及びbそれぞれに10個のタスクが配置されている場合における基板と部品供給部間を行き来するマルチ装着ヘッド112の移動軌跡(実装経路)が矢印線で示されている。
ここで、丸印は、マルチ装着ヘッド112の代表的な位置を示す。つまり、基板上の丸印は、1つのタスクにおいて最後の部品を装着し終えた直後のマルチ装着ヘッド112の位置(最終実装点)を示し、Z軸における丸印は、20個のタスクそれぞれにおいて最初に部品を吸着するときのマルチ装着ヘッド112の位置(以下、「吸着位置」という。)を示す。なお、丸印に付された数値は、各吸着位置(タスク)を区別する番号である。
[第1ステップ]
このステップでは、以下のルールに従って、実装経路を描く。
(i)各タスクの最終実装点から最短距離にある吸着位置に戻る、つまり、戻り軌跡を最小にする。
(ii)1番吸着位置を始点にして実装経路を順次描いていく。なお、1つの吸着位置は1つのタスクに相当するので、その吸着位置に対応する最終実装点は一義的に特定される。図32では、1→5→14→2→8→3→17→12→16→1の順で吸着位置と最終実装点とを接続する実装経路が描かれる。
(iii)最初の吸着位置(1番吸着位置)に戻ったら、それを最短巡回部分経路1とする。
(iv)次に、これまで見つかった最短巡回部分経路に含まれない吸着位置を探す。図32では、4番吸着位置が見つけられる。
(v)上記(ii)に戻り、未だ使用されていない吸着位置が無くなるまで、繰り返す。図32では、5つの最短巡回部分経路が描かれている。
このような第1ステップにより、特定の吸着位置から開始した場合における、マルチ装着ヘッド112の戻り軌跡が最短となるような吸着位置の順序、即ち、タスクの順序が決定されたことになる。
[第2ステップ]
次に、第1ステップで描かれた全ての最短巡回部分経路それぞれにおいて、どの吸着位置から開始すればよいかを特定する。具体的には、1つの最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに移動させるマルチ装着ヘッド112の戻り軌跡が最短となるように、各最短巡回部分経路における最初の吸着位置及びそれら最短巡回部分経路の順序を決定する。
これによって、1つのタスクグループを構成する全てのタスクを対象として、タスク間におけるマルチ装着ヘッド112の戻り軌跡が短くなるように、タスクの実行順序が決定されたことになる。
なお、図32は、20個の吸着位置が異なる位置となるタスクグループにおける実装経路であったが、図33に示されるように、同一位置の複数の吸着位置が含まれるタスクグループについても同様の最適化をすることができる。このときには、同一位置の吸着位置に対応する最終実装点の選択において自由度があるので、複数の選択パターンに対応するタスクグループの総タクトを算出し、それらの中からタクトが最小となる最終実装点を選択し、最短巡回部分経路を作成すればよい。
以上のように、ランダム選択法及び交差解消法によって、タスクの形を変えずに、(i)タスク内の実装順序の最適化、及び、(ii)全タスクを考慮した実装順序の最適化が行われ、一方、戻り最適化法によって、全てのタスクがフィックスされた後に(つまり、各タスクのメンバが決まった状態で)、タスクの順序についての最適化が行われる。
2.9 汎用部品に対する最適化
汎用部品は、部品の大きさ、ノズル、部品認識カメラ、供給形態(テープ、トレイ)がバラエティに富んでおり、タスクを生成するときに、いろいろな部品の組み合わせが可能である。ここでは、タスクの状態を効率的に変化させながら、最適な状態を探索するという手法を採用している。この処理は、図14のステップS321に相当する。
最適化を行うための評価指標は装着時間であり、このため、部品実装機100の動作時間を正確にシミュレートする装着時間シミュレートを搭載している。汎用部品に最適化アルゴリズムは以下の通りである。
(1)ループ回数の設定
現実問題として、全ての組み合わせを評価することはできないので、予め終了条件を設定しておく。所定のループ回数処理を続けても装着時間が減少しない場合、最適化処理を終了することにしている。
(2)初期状態の生成
まず、全ての汎用部品を対象として初期状態を生成する。初期状態は、汎用部品の全ての実装点をタスク単位でまとめたものであり、部品実装機100の制約条件の全てを満たしていれば、どのような状態でもかまわない。
(3)状態の変化
タスクの状態を変化させながら最適なタスクの状態を探索する。状態を変化させるための手続としては、
・別々のタスクに存在する2つの実装点を入れ替える、
・同一タスク内の2つの実装点の実装順序を入れ替える、
・2つの部品テープを入れ替える、
等がある。ここでは、タスクの状態を柔軟に変化させるために、空の実装点との入替えも可能にしている。たとえば、あるタスクの実装点を余裕があるタスクへ移動する処理は、前者の実装点と後者の実装点との入替えになる。この処理を繰り返すと、タスク数を減らすことができる。
変化後の状態を採用するかどうかは、装着時間が減少するかどうかで判断するが、常に装着時間減少する状態を採用していると、ローカル・ミニマムに捕まってしまう。そこで、ある確率で装着時間が増加する状態を採用するようにしている。
以下、汎用部品に対する最適化の具体的な内容を説明する。
図34(a)は、汎用部品最適化部316bによる汎用部品の実装順序を最適化する際の手順を示すフローチャートであり、図34(b)は、その最適化による最適解の探索アプローチを説明するための図(とり得る全ての状態それぞれのタクトを示す図)である。
図34(a)に示されるように、汎用部品最適化部316bは、部品グループG[6]〜G[9]に属する全ての部品(汎用部品)を対象として、初期状態Xを生成した後に(S550)、初期状態Xに対して、山登り法による最適化を最適化エンジン部316cに実行させることによって、最適状態Xoptを求めた後に(S551)、初期状態Xに対して、マルチカノニカル法による最適化を最適化エンジン部316cに実行させることによって、上記ステップS551で求められた最適状態Xoptを更新し(S552)、最後に、更新された最適状態Xoptに対して、再び、山登り法による最適化を最適化エンジン部316cに実行させることによって、上記ステップS552で得られた最適状態Xoptを更新する(S553)。
このように、局所的な最適解を確実に求める山登り法による最適化(S551、S553)の途中過程に、グローバルな始点で最適解を探索するマルチカノニカル法による最適化(S552)が挿入されているので、局所的には最適状態であるがグローバル的には最適状態でない状態(図34(b)に示される状態1)等)の探索で終わってしまうことが回避され、グローバルな最適状態(図34(b)に示される状態5))が求められる。
図35は、図34(a)に示された山登り法による最適化(S551、S553)の詳細な手順を示すフローチャートである。つまり、初期状態Xや終了条件等についての通知を受けた最適化エンジン部316cは、その初期状態Xを生成した後に(S560)、外部ループ終了条件が満たされるまで(S561)、内部ループを繰り返す(S562〜S568)。ここで、外部ループ終了条件とは、それ以上の最適解が存在しないことを確認するための条件であり、例えば、状態変化を起こす全ての種類のパラメータを変化させた(探索した)こと等であり、内部ループ終了条件とは、1つの種類のパラメータについて、一定範囲の変化をさせた(探索した)こと等である。
内部ループにおいて、最適化エンジン部316cは、まず、後述する9種類の状態変更から汎用部品最適化部316bが選択した1つを用いて、状態候補Xtmpを生成し(S563、S564)、その候補状態Xtmpが、後述するフィージビリティ(実現可能性)を有し(S565)、かつ、その候補状態Xtmpのタクトが直前の状態のタクトよりも小さい場合に(S566、S567)、それら状態とタクトを更新する(S568)。
これによって、局所的に最適な状態が確定的に得られる。
図36は、図34(a)に示されたマルチカノニカル法による最適化(S552)の詳細な手順を示すフローチャートである。本図において、ビン番号は、例えば、図34(b)に示された横軸(とり得る状態の全て)をN個に均等分割して得られる各区間(ビン)を示す番号であり、ヒストグラムH[i]は、ビン番号iのビンに属する候補状態Xtmpが選択され(S576、S577)、その候補状態Xtmpが実現可能性を有し(S578)、かつ、エントロピーを減少させる状態であると判断された(S579〜S581)総回数を記憶する変数である。

本図に示されたフローチャートと図35に示された山登り法によるものとを比較して分かるように、状態Xをベースに状態候補Xtmpを生成し、それを受理するかどうかを決定するという一連の処理を繰り返す点で、これらの処理は共通する。異なる点は、受理決定の方法であり、図35に示された山登り法では、状態候補Xtmpのタクトの方が状態Xよりも小さい場合に(確定的に)受理しているのに対し、図36に示されたマルチカノニカル法では、タクトにおけるエントロピーを参照して状態候補Xtmpを確率的に受理していることである(S580〜S582)。
ここで、図35及び図36に示されたフローチャートにおける9種類の状態変更と実現可能性の詳細を説明するために、まず、汎用部品最適化部316bが用いている中間表現について説明する。汎用部品最適化部316bは、最適化を容易にするために、Z軸配列の中間表現として以下の3種類を導入し、それらの表現を用いて状態を記憶したり、最適化エンジン部316cに指示したりする。
(i)Gorder[i](i=1,...,L)
入力されたL個の部品グループ(タスクグループTG[i](i=1,...,L)をZ軸に配置する際の優先順序を指定する変数であり、優先順序番号1〜Lを値にとる。i!=jの場合、Gorder[i]!=Gorder[j]となる。
(ii)block[i](i=1,...,L)
タスクグループTG[i](i=1,...,L)を左・右のZブロック(部品供給部115a及びb)のどちらに配置するかを指定する変数であり、"左"又は"右"のシンボル値をとる。
(iii)Corder[i][j](i=1,...,L, j=1,...,M[i])
タスクグループTG[i](i=1,...,L)に属する部品テープj(=1,...,M[i])のZ軸における配置順序を指定する数であり、順序番号1〜M[i]を値にとる。j!=kの場合、Corder[i][j]!=Corder[i][k]である。なお、Corder[i][j]<Corder[i][k]の場合、「部品テープjのZ番号<部品テープkのZ番号」なる関係を持っている。
図37は、汎用部品最適化部316bが用いる中間表現の例を示す。テーブル460は、汎用部品最適化部316bが用いている中間表現の具体例を示し、テーブル461〜464は、テーブル460に示された中間表現の意味(Z軸配列への変換)を示す。テーブル460に示された中間表現が示すZ軸配列は、具体的には、以下の変換を経ることによって特定される。
まず、Gorder[i]=1、つまり、Z軸配列決定において最優先するタスクグループTG[2]を配置する(テーブル461)。このTG[2]は、block[2]="右"であるため、右ブロックの部品認識カメラ116寄り左詰で配置される。その際、TG[2]に属している計M[i=2]=6つの部品テープj(i=1,...,6)を収納している部品カセット114は、Corder[i=2][j]の若いものが左になるように、右ブロックの部品認識カメラ寄り左詰で配置される。
次に、Gorder[i]=2であるTG[4]を配置する(テーブル462)。block[4]="左"であるため、左ブロックの部品認識カメラ寄り右詰で配置される。その際、計M[i=4]=3つの部品テープj(i=1,...,3)を収納している部品カセット114は、Corder[i=2][j]の若いものが左になるように、部品認識カメラ寄り右詰で配置される。
同様に、Gorder[i]=3であるTG[3]、Gorder[i]=4であるTG[1]の順で配置すればよい(テーブル463、464)。
次に、汎用部品最適化部316bによる選択(図35におけるステップS564、図36におけるステップS577)の対象となる9種類の状態変更を示す。以下の通りである。
(1)同一汎用部品グループの2実装点をランダムに選択し、それらのタスク番号とヘッド番号(マルチ装着ヘッド112における吸着ノズル112a〜112bの位置)をスワップする。
(2)同一タスク内の2実装点をランダムに選択し、それらの実装順序をスワップする。
(3)2タスクグループ(2汎用部品グループ)をランダムに選択し、それらのGorderをスワップする。
(4)1タスクグループ(1汎用部品グループ)をランダムに選択し、そのblockの値("左"又は"右")を変更する。
(5)同一タスクグループの2部品テープをランダムに選択し、それらのCorderをスワップする。
(6)同一タスクグループにおいて、連続したCorder部分区間をランダムに選択し、シフトする。
(7)同一タスクグループにおいて、連続したCorder部分区間をランダムに選択し、対応する部品テープが実装点の平均X座標値に従ってZ軸に配置されるようにCorderを変更する。
(8)1タスクをランダムに選択し、当該タスクの実装点のZ番号に基づいてヘッド番号を変更する。
(9)シャトル運用可能なトレイ部品の運用モード(ダイレクトモード、シャトルモード)をランダムに変更する。
ここで、「トレイ部品の運用モード」とは、トレイ供給部117が内蔵するエレベータ(複数の段を持つ)を用いてトレイ部品を供給する(マルチ装着ヘッド112が吸着できる位置まで移動させて置く)ときの方式であり、「ダイレクトモード」は、部品が載せられた1つのトレイごと直接差し出す方式であり、「シャトルモード」は、シャトルコンベヤ118を用いた往復移動によって複数のトレイから取り出して集めた複数の部品を1列に並べて差し出す方式である。これらの運用モードについての各種情報は、実装装置情報307cに含まれており、必要な部品を所定位置に移動させるのに要する時間等に影響を与える。
また、汎用部品最適化部316bによる実現可能性のチェック(図35におけるステップS565、図36におけるステップS578)については、以下の5つのチェック項目が同時に満たされている場合にのみ、状態Xtmpが可能解とみなされる。
(1)各タスクにおいて、ダイレクトモードの実装点のZ番号が同じ段であること。つまり、ダイレクトモードでは、一つの段に置かれたトレイ部品だけが同時に供給され得ることを考慮する。
(2)各タスクにおいて、吸着時の部品点間に干渉がないこと。つまり、隣接して吸着される2つの部品の形状によっては、部品どうしが接触してしまうので、それを回避することを考慮する。
(3)各タスクにおいて、実装点が吸着可能であること(実装点のヘッド番号とZ番号との組が適切であること)。つまり、マルチ装着ヘッド112に装着された吸着ノズルのいずれもが、96個の部品カセット114のいずれの位置にも移動できる(部品を吸着できる)とは限らないことを考慮する。
(4)各タスクにおいて、実装点が装着可能であること(実装点のヘッド番号と座標値との組が適切であること)。マルチ装着ヘッド112を構成する全ての吸着ノズルが基板上のあらゆる箇所に移動できるとは限らないことを考慮する。
(5)全タスクグループの全タスクの吸着ノズルパターンが実現可能なようにノズルステーション119における吸着ノズルの配列を決定できること。つまり、ノズルステーション119に配置しておくことができる交換用の吸着ノズルの配置位置や数等に制限があることを考慮する。
(6)マルチ装着ヘッド112とZ軸上の部品とが同一ピッチで並んでいること。つまり、マルチ装着ヘッド112が同時吸着できるような部品(又は、部品カセット)がZ軸に配置されていることを確認する。
以上のように、汎用部品最適化部316bは、ローカルな(局所的な)最適化だけでなく、確率的な探索を混ぜた最適化を行っているので(図34(a)におけるステップS550〜S553)、ローカルミニマムが最適解として算出されてしまう不具合が回避される。
3 最適化装置の動作(詳細編)
次に、以上のような最適化装置300の動作について、さらに詳細な説明をする。つまり、これまで説明してきた個々の最適化アルゴリズムの詳細な内容や、様々な制約下における最適化装置300の動作について説明する。
3.1 「刈り上げ法」
「刈り上げ法」は、上述の「タスクグループ生成法」の欠点を補うアルゴリズムである(図14のステップS320a〜d)。以下、「刈り上げ法」の詳細について、「タスクグループ生成法」における課題を明らかにしながら、説明する。
3.1.1 「タスクグループ生成法」の概要
「タスクグループ生成法」における小部品用最適化アルゴリズムの基本的な考え方は、図38に示される通りであり、ヘッドの上のノズル数をnとして、対象の全ての実装部品に対して、「部品数が同じ部品テープをn本集め、それらn本の部品テープから1点ずつ同時に吸着し、n点同時吸着タスクを作る」というものである。本実施の形態における対象の部品実装機では、nは10(又は、4)である。
図38は、タスクグループ生成法を説明するための部品ヒストグラムであり、横軸はZ軸(部品カセット、部品種)を示し、縦軸は、その部品種に属する部品の総数を示す。
ところが、上述のアルゴリズムでは、実際には部品数が同じ部品テープばかりではないので、部品分割によって、部品数が同じ部品テープを作り出すようにしている。
そのようにしても、集められたn本の部品テープの部品数が不揃いになる場合には(図38における部品A〜J)、そのばらつきを埋め合わせる部品テープを作り、そのn本の部品テープに追加する。追加する部品テープは、最大で(n-1)本である(図38における左部分506)。
このようにしてできたn〜n+(n-1)本の部品テープの集合を「タスクグループ」としている(それらの部品テープから部品を吸着してタスクを生成するので、生成されるタスクの集合に着目した命名になっている)。
通常、複数個のタスクグループが生成される。タスクグループ数は部品種の総数に依存する。タスクグループが1つだけの場合もある。
Z軸上へのカセットの配置は、タスクグループの単位で行う。
3.1.2 「タスクグループ生成法」の課題
「タスクグループ生成法」のアルゴリズムでは、次のような課題がある。
(1)タスクグループ単位でZ軸に配置するので、Z軸の空きが最小でも10以上でないと、タスクグループを配置することができない。そのため、Z軸に未使用の部分が生じることがある。
(2)タスクグループの配置の自由度が低く、前サブ設備110と後サブ設備120との間での部品種(部品テープ、カセット)を移動しにくいため、前サブ設備110と後サブ設備120の実装時間のバランスを調整しにくくなっていた。
(3)タスクグループ毎に部品分割を行い、部品分割により生じた部品テープを収めるカセットを使用するので、全タスクグループを考えると、部品分割のために使用するカセットが多く必要となる傾向がある。
このような課題は、タスクグループを構成する部品テープの本数(10ノズルヘッドであれば、10〜19本)と、Z軸上に配置できる部品テープの本数(シングルカセットで最大48本、ダブルカセットで最大96本)が同程度のオーダーになっていることに起因する。
そのため、タスクグループをZ軸に配置する際の自由度が低くなっている。たとえば、Z軸上に配置できる部品テープの最大本数が、タスクグループを構成する部品テープ本数の10倍程度であれば、自由度の低さは低減されると考えられる。
3.1.3 「刈り上げ法」
「刈り上げ法」は、「部品ヒストグラム作成処理」(図14のステップS320a)、「刈り上げ処理」(図14のステップS320c)、「コア処理」(図14のステップS320d)の3つの処理から構成されている。これらの処理は、「タスクグループ生成法」における課題を踏まえて、考案したものである。以下の説明では、ヘッドの上のノズル数をnとする。
(1)部品ヒストグラム作成処理(図14のステップS320a)
部品ヒストグラム作成処理は、部品テープを部品数の大きい順に並べたヒスグラム(部品ヒストグラム)を作成する処理であり、部品ヒストグラムは「刈り上げ処理」の前提となる。
「タスクグループ生成法」では、部品テープは、タスクグループという複数のグループに分かれるの対して、「刈り上げ法」では、部品テープは、部品ヒストグラムという1つのグループになっている点が異なる。
部品ヒストグラムを部品テープ単位で分割し、分割されたものを前サブ設備110と後サブ設備120に配置することができるので、「タスクグループ生成法」と比較して、小さな単位での部品移動が可能となっている。
(2)刈り上げ処理(図14のステップS320c)
刈り上げ処理は、部品ヒストグラムから吸着パターンを生成する処理であり、部品ヒストグラムの部品数の残数の少ない側からn本の部品テープについて、各1個ずつ実装点を吸着し、n点同時吸着の吸着パターンを生成することを基本とする。
刈り上げ処理の結果、吸着されない実装点が残っている部品テープが存在する。この部品テープを「コア部品テープ」と呼ぶ。また、コア部品テープが収められている部品カセットを「コアカセット」と呼ぶ。
コア部品テープの本数は、初期の部品ヒストグラムを構成する部品テープ数が何本であっても、必ず(n-1)本以下になる。
刈り上げ処理の利点は、「部品ヒストグラムを構成する全部品テープに対して、部品分割を行い、n点同時吸着タスクを生成するという問題」を、「コア部品テープだけに対して、部品分割を行い、n点同時吸着タスクを生成するという問題」に縮小できることである。
部品ヒストグラムのコア部品テープ以外の部分については、既にn点同時吸着が実現されているので、コア部品テープについてのみ、n点同時吸着の吸着パターンが実現できるように、部品分割を行えばよく、この処理を「コア処理」と呼ぶ。
(3)コア処理(図14のステップS320d)
「コア処理」は、「タスクグループ生成法」において「n点同時吸着を実現するために、実装点の不足分を補完する部品テープを作る」というアイデアを発展させたものである。
コア部品テープは1〜(n-1)本であるから、実装点の不足分を補完する部品テープ(補完部品テープ)の本数は、(n-1)〜1本となる。
「タスクグループ生成法」では、タスクグループ毎に補完部品テープが必要である。一方、「刈り上げ法」では、部品テープのグループは1つしかなく、さらに、それに対して最大(n-1)本の補完部品テープしか必要としないので、「タスクグループ生成法」よりも使用するカセット本数が少なくてすむ。
「タスクグループ生成法」では、各部品テープを最大分割数で部品分割した際に、最も部品数が多くなる部品テープを求め、その部品数と同数のn点同時吸着の吸着パターンを生成する。
それに対して、「コア処理」では、コア部品テープの部品数の合計を求め、それをnで割り算した値から、n点同時吸着の吸着パターンの個数を見積もる。
3.1.4 「刈り上げ法」による小部品の最適化
次に、以上のような利点をもつ「刈り上げ法」を用いた典型的な小部品の最適化処理を説明する。
図39は、「刈り上げ法」による小部品の最適化処理(図14のステップS320に相当)のフロー図である。小部品を最適化するための指標の一つは、部品吸着時におけるマルチ装着ヘッド112の吸着上下動作の回数(以下、「吸着上下回数」と呼ぶ。)を最小化することと、部品装着時のヘッド移動距離を最小にすることである。すなわち、10点同時吸着を最大にする部品吸着パターンの決定(S331)と、マルチ装着ヘッド112の移動距離を最小にする実装点データの割当て(S335)である。
(1)部品吸着パターンの決定(図39のS331)
部品吸着パターンを決定することは、部品テープの並びとマルチ装着ヘッド112による吸着順序とを決定すること、即ち、対象となる部品テープをどのような順序で部品供給部115a及びbに並べてセットしておけばよいか、さらに、セットされた部品テープ群に対してどのような順序でマルチ装着ヘッド112が吸着すればよいかを決定することである。
(i)部品ヒストグラムの作成(図39のS332)
各電子部品を部品数でソーティングし、部品ヒストグラムを作成する。横軸は部品テープの並び(「Z配列」)であり、このヒストグラムは部品が部品供給部115a及びbにセットされたイメージを表している。小部品は、全て8mmテーピングなので、10点同時吸着が可能である。したがって、部品ヒストグラムのZ軸方向のつながりを見れば、同時吸着が可能かどうかを簡単に判断することができる。図40(a)は、部品テープが21、最小部品数が1、最大部品数が15の部品ヒストグラム500を示している。
(ii)刈り上げ処理(図39のS333)
図40(a)に示された部品ヒストグラム500において、部品数の少ない右端からZ軸方向に10個連続で部品が並んでいる部品を探し出す。この処理は、部品ヒストグラム500を、部品10個単位で、下から順に刈り上げていく処理に相当するので、ここでは「刈り上げ処理」と呼んでいる。その結果、図40(b)に示されるように、4つの10点同時吸着タスク500a〜dが生成される。
(iii)コア処理(図39のS334)
図40(b)に示された部品ヒストグラム500から、刈り上げられた10点同時吸着タスク500a〜dを取り除くと、図41に示されるように、裾の狭い部品ヒストグラム501が残る。この残された部品ヒストグラム501を「コア」と呼ぶ。コア501のZ軸方向の広がりは10未満であるので、そのままでは、コア501から10点同時吸着タスクを生成することができない。そこで、コア501を切り崩して10点同時吸着タスクを生成する「コア処理」を行う。
まず、コア501を構成する部品の個数をカウントし、目標を設定する。図41に示された部品ヒストグラム501には、合計36の装着点があるので、3つの10点同時吸着タスクと1つの6点同時吸着タスクを作ることにする。
図41に示されたコア501に対して、部品10個単位で刈り上げようとすると、コア501の一番下の段で3種類の部品が不足し、下から2番目の段では、5種類の部品が、下から3段目の段では6種類の部品が、それぞれ不足する。刈り上げた部品数が36になるまでコア501を刈り上げると、図41に示されるパターン501bが完成する。このパターン501bに部品を割り当てれば、目標のタスクが生成できることになる。このパターン501bに含まれる部品の個数は、部品ヒストグラムの5段目から上に存在するパターン501aの部品の数に等しい。したがって、パターン501aの部品を部品テープ類ごとに切り出して、パターン501bに縦方向に埋めてやればよい。
図41に示されるように、部品1は、パターン501aに11点の部品を残しているので、4+4+2+1の小さな縦棒に分割して、パターン501bに順に埋め込む。部品2、部品3は、分割せずにそのままパターン501bに埋め込めばコア処理は完成する。
このような刈り上げ処理とコア処理の結果を併せると、部品ヒストグラムは図42の部品ヒストグラム504のようになる。この部品ヒストグラム504は、刈り上げ処理で生成されたタスク群503とコア処理で生成されたタスク群502とを併せたものである。この部品ヒストグラム504は、理想的な部品吸着パターンであり、7回の10点同時吸着と1回の6点同時吸着で、全ての部品が効率よく吸着され得る。
(2)実装点データの割当て(図39のS335)
実装点データの割当ては、部品数の少ない部品を含むタスクから始める。図42に示された部品ヒストグラム504では、部品数が1の部品21を含むタスクから実装点を割り当てる。タスク1では、部品15から部品21までの7つの部品の部品数が1であるので、実装点データは存在しているデータをそのまま割り当てればよい。部品14は部品数が2であるので、2つのうちのどちらの実装点データを選ぶかという問題が発生する。この場合は、既に決定している部品15の実装点装着後、マルチ装着ヘッド112の移動が最も小さくなる実装点データを選ぶ。
ただし、部品15を装着ヘッドH4で、部品14を装着ヘッドH3で装着するので、装着ヘッドH4とH3のオフセットを考慮して実装点を選択しなければならない。部品13の実装点選択に関しても、同じ考え方で行う。例えば、部品14aと部品14bのうち、部品14aが実装点データに選ばれたなら、部品14aからの距離を計算して、部品13の実装点を選択する。以降同様にして、部品12の実装点が選択され、タスク1の全ての実装点が決定する。
3.1.5 関連する個別処理
「刈り上げ法」は、小部品に分類される部品グループの部品種から、タスク(正確には吸着パターン)を生成するための処理である。
詳細については、下記の個別処理で説明している通りである。
・「刈り上げ法」
・「小部品のタスク生成処理」
3.2 「交差解消法」
「交差解消法」は、「貪欲法」の欠点を補うアルゴリズムである。この処理は、図14のステップS324に相当する。
以下、「交差解消法」の詳細について、「貪欲法」における課題を明らかにしながら、説明する。
3.2.1 「貪欲法」の概要
タスクに実装点を割り当てる際、各ノズルが実装する実装点の間の距離が最小となるように部品種の中から実装点を選んでいる。距離を計算する際には、ノズル間のピッチを考慮している。
この実装点選択方法は、「貪欲(greedy)法」に分類される方法である。この処理は、図14のステップS320eに相当する。
「貪欲法」では、あるタスクについては実装点間の距離が最小になったとしても、他のタスクの実装点間の距離を考慮して実装点を選択しているわけではないので、全タスクについて考えると、必ずしも最適にはなっていない。
3.2.2 「貪欲法」の課題
「貪欲法」により吸着パターンに実装点を割り当てる場合、特に、図43の上側の実装経路図(タスクごとに、対応する基板位置に配置された実装点を装着順に線分で接続した図)に示されるような実装経路の場合が問題となる。
この図43では、実装点数が5のタスクが3個ある場合を示している。図43において、丸印は実装点を示し、矢印は実装経路(順序)を示す。実装点の添え字は部品種を示す。例えば、A1、A2、A3は、部品種Aに属する3つの実装点である。また、同じ色の矢印で結ばれている実装点が1つのタスクを構成する。
まず、図43の上側の「交差解消前」の状態では、部品種A1が存在する実装点から最も近い実装点として、部品種B1が存在する実装点が選択され、部品種B1に最も近い実装点として、部品種C1ではなく、部品種C2が存在する実装点が選択されている。これは、「貪欲法」では、最も距離の近い実装点を次に実装するべき実装点として選択するためである。
さらに、「貪欲法」を繰り返し適用して実装点を選択していくと、結果として、図43の上側の「交差解消前」の状態のように、部品種B3が存在する実装点と、部品種C1が存在する実装点を結ぶ経路が他の実装点間を結ぶ経路と交差してしまう。
3.2.3 「交差解消法」
もしも、人間が実装順路を決めるのであれば、おそらく、図43の下側の「交差解消後」のように、実装経路が交差しないタスクをつくるはずである。
そこで、「貪欲法」による実装点の選択の後で、経路が交差している個所を見つけ、それを解消する処理を行えばよい。この処理が「交差解消法」である。
その結果、図43の下側の「交差解消後」のようになり、交差を解消する前と比較して、経路の距離の合計が小さくなることが期待できる。
具体的に、この図43の例では、部品種B1〜B3の中から、2つを選んで入れ替えることにより、実装経路を組み換え、それを繰り返すことで、実装経路が短くなるタスクを作り出すことができる。
なお、実際には、ノズル間の間隔を考慮する必要があるが、ここでは考え方を示すことが目的なので、省略した。「交差解消法」の詳細は、後述の個別処理で説明している通りである。
3.2.4 関連する個別処理
「交差解消法」は、「貪欲法」による実装点の選択の後で、実装経路が交差している個所を見つけ、それを解消する処理である。その結果、実装経路の交差を解消する前と比較して、実装経路の距離の合計が小さくなることが期待できる。
詳細については、下記の個別処理で説明している通りである。
・「交差解消法」
3.3 「戻り最適化法」
以下、「戻り最適化法」の詳細について、その着想プロセスを明らかにしながら、説明する。なお、この処理は、図14のステップS325に相当する。
3.3.1 部品実装動作の検討
部品を実装する動作は、図44に示されるように、マクロな視点からは、次の3つの行程に分解される。
(1)部品吸着 → 部品認識カメラ
(2)認識 → 部品装着
(3)部品装着 → 次の部品吸着 ・・・「戻り」
3.3.2 「戻り」行程の最適化の必要性
まず上記工程(1)については、部品数の多い部品テープが部品認識カメラに近いZ軸上に配置されるようにすることにより、最適化される。
次に上記(2)については、ほぼ一定の距離と考え、最適化の対象としていない。なぜなら、部品認識カメラと基板の位置は固定であり、装着時のヘッドの基板上での移動量は、Z軸の長さと比較して、かなり小さく、すべての実装点が基板の中心に存在すると考えられるからである。
しかし、上記(3)については、「戻り」の行程は、上記(2)の距離と同程度であり、最適化が可能である。つまり、この工程に対して最適化を行うことで、実装時間の短縮が期待できる。
3.3.3 「戻り最適化法」
上記(3)の「戻り」の行程についての最適化アルゴリズムを考案した。
この最適化アルゴリズムの基本的な考え方は、「あるタスクの最終実装点の座標から、最短距離で戻ることのできるZ軸上の位置にある、未実装のタスクを探し、それを次に実装するタスクとする」ということである。たとえば、図において、最終実装点からの距離を調べると、タスクAよりもタスクBが短いので、次に実装するべきタスクはタスクBとなる。
3.3.4 関連する個別処理
部品を実装する動作は、マクロな視点からは、次の3つの行程に分解される。(1)部品吸着 → 部品認識カメラ
(2)認識 → 部品装着
(3)部品装着 → 次の部品吸着 ・・・「戻り」
「戻り最適化法」は、(3)についてのヘッドの移動距離を最適化するものであり、実装時間の短縮が期待できる。
詳細については、下記の個別処理で説明している通りである。
・「戻り最適化法」
3.4 配列固定処理
3.4.1 概要
ユーザにより、複数の部品種について、それを配置するZ番号が指定されている場合がある。これはZ軸上での部品種の配列を指定するものであり、「配列固定」と呼ばれている。
一方、最適化アルゴリズムでは、Z軸上の部品テープの配列も最適化対象となるので、ユーザによる配列固定を考慮した最適化アルゴリズムを実現する必要がある。
しかし、ユーザによる配列固定のバリエーションは非常に多くなると考えられる。
もしも、アルゴリズム設計段階で幾つかの配列固定のバリエーションを想定し、それらに対応した最適化アルゴリズムを考案できたとしても、想定外の配列固定のバリエーションに対応できるとは限らない。なぜなら想定した配列固定のバリエーションに特化したアルゴリズムになってしまう傾向があり、想定外の配列固定には効果がない危険性があるからである。
更に、そのアルゴリズムを想定外の配列固定のバリエーションに対応させるように改造することができても、それは例外処理的なアルゴリズムの追加となるため、プログラムの可読性が低下し、メンテナンス上で問題となりうる。
そこで、最も確実で安全な方法として、図45に示されるように、次のような方法を採用した。図45は、配列固定の制約下における最適化の概要を示す部品ヒストグラムである。
(1)仮のZ軸(仮Z軸)を用意し、配列固定を考慮せずに仮Z軸上で部品種の配列を最適化する。つまり、理想的な部品テープの配列を作成する(同時吸着を優先した部品ヒストグラムを作成する)。
(2)仮Z軸から実際のZ軸(実Z軸)へ部品テープを移動する。このとき、配列固定を考慮し、配列固定の対象となっている部品テープを先に配置する。
(3)次に、配列固定の対象でない部品テープを仮Z軸から実Z軸へ移動する。このとき、配列固定された部品テープの隙間に配列固定の対象でない部品テープを配置していく。
最後に、実Z軸上の部品テープから、刈り上げ処理により、吸着パターンを生成する。
この方法によれば、ユーザによって、どのような配列固定がなされても、1つのアルゴリズムで対応できる。
また、今回考案した配列固定のアルゴリズムでは、配列固定がない条件下でアルゴリズムが生成した理想的な部品テープの配列を崩す形で、ユーザが指定した配列固定に対応している。
そのため、理想的な部品テープ配列を使用する場合と、配列固定がある部品テープ配列を使用する場合との実装時間の比較を行うことができる。
これは、配列固定が持つ、機種切り替えの容易さという運用上の利点と、配列固定がない場合の実装時間の短さを比較し、それらのトレードオフについて再検討するための情報をユーザに提供するものである。
3.4.2 関連する個別処理
「配列固定」では、ユーザにより、複数の部品テープについて、それを配置するZ番号が指定されている。そのために、最適化アルゴリズムでは、Z軸上の部品テープの配列も最適化対象となるので、ユーザによる配列固定を考慮した最適化アルゴリズムを実現する必要がある。
今回考案した配列固定のアルゴリズムでは、配列固定がない条件下でアルゴリズムが生成した理想的な部品テープの配列を崩す形で、ユーザが指定した配列固定に対応している。
詳細については、下記の個別処理で説明している通りである。
・「全体の流れ(ヒストグラムからスタート)」
・「カセットブロック内の固定部品と「山」の配置関係」
・「配列固定:固定先の使用可否判断」
・「ダブルカセットの配列固定について」
・「ダブルカセットの配列固定(補足)」
3.5 LLサイズ基板への対応
3.5.1 概要
LLサイズ基板は、実装領域の制約がない通常の基板よりも搬送方向にサイズが大きい基板である。そのために、図46に示されるように、LLサイズ基板には、特定のヘッド(ノズル)でしか部品を装着できない実装領域(LL制約領域)が存在する。
また、それらのヘッドは、ある範囲のZ番号に配置された部品テープ(カセット)からは、部品を吸着できない。
そこで、図47に示されるように、下記の2つの方法により、LL制約を回避する。
(1)Z軸上の部品テープの入れ替え
(2)吸着方法の変更
上記(1)の処理は、LL制約領域の実装点を実装できるヘッドで吸着できるZ軸の範囲に、LL制約領域の実装点を含む部品テープを配置する処理である。Z軸上の全てのZ番号に部品テープが配置されている場合、部品テープの入れ替えを行う。
上記(2)の処理では、まず、LL制約領域に存在する実装点を含んだ部品ヒストグラムを仮想的に次の2つの部品ヒストグラムに分割する。
・LL制約領域に存在する実装点から構成される部品ヒストグラム
・LL制約領域に存在しない実装点から構成される部品ヒストグラム
そして、吸着時には、それぞれの部品ヒストグラムを実装可能なヘッドで刈り上げて、その刈り上げた結果を合成して、1つのタスクとする。
3.5.2 Z軸上の部品テープの入れ替え
(1)ヘッド1〜6は、LL制約領域には、部品を装着できない。
(2)ヘッド7〜10は、LL制約領域にも、部品を装着できる。
(3)機構上の制約により、各ヘッド毎に吸着できるZの範囲が制限されている。
(4)Z=1〜11にLL制約領域の実装点を持つ部品テープが存在すれば、その部品テープを、Z=12〜に存在し、かつ、LL制約領域の実装点を持たない部品テープと入れ替える。
3.5.3 吸着方法の変更
(1)各Zにある実装点を「LL制約領域にある実装点」と「LL制約領域にない実装点」に分ける。処理の上で扱いを分けるだけであり、部品分割はしない。
(2)ヘッド1〜6とヘッド7〜10に分割し、仮想的に6ヘッドと4ヘッドの2つを考える。
(3)LL制約領域にない実装点については、6ヘッドで刈り上げを行い、6点タスクを作る。
(4)LL制約領域にある実装点については、4ヘッドで刈り上げを行い、4点タスクを作る。
(5)6点タスクと4点タスクを組み合わせて、10点タスクとする。
3.5.4 関連する個別処理
LLサイズ基板に対応するためには、吸着方法の変更とZ軸上の部品テープの入れ替えが必要であり、それらについて、2案ずつのアルゴリズムを作成した。
詳細については、下記の個別処理で説明している通りである。
・「LL制約:吸着方法の変更(1)」
LLサイズ基板に対応するため、実装点をLL制約領域に存在するものと存在しないものにわけ、LL制約領域に存在する実装点をヘッド7〜10で吸着し、LL制約領域に存在しない実装点をヘッド1〜6で吸着する。
「山」のすそ野側にある部品テープから順次、部品を吸着するが、左ブロックであれば、ヘッド1〜6で吸着したZ範囲よりも、Z番号が大きいZから、つまりカメラに近づく方向に進みながら、ヘッド1〜4で吸着するようにしたものである。右ブロックでも同様である。
・「LL制約:吸着方法の変更(2)」
LL制約領域に存在しない実装点を、「山」のすそ野側にある部品テープから順次、ヘッド1〜6で吸着した後、同様にLL制約領域に存在する実装点を、実装点を、「山」のすそ野側にある部品テープから順次、ヘッド1〜6で吸着する。
つまり、上記「LL制約:吸着方法の変更(1)」とは異なり、必ずしも、カメラ方向に近づく方向に進みながら吸着を行うわけではない。
・「LL制約:Z軸上の部品テープの入れ替え(1)」
Z番号が1〜11の部品テープについて、X座標が400mmよりも大きい実装点を含む部品テープを探し、それをX座標が400mmよりも大きい実装点を含まない部品テープを入れ替える。
・「LL制約:Z軸上の部品テープの入れ替え(2)」
上記「LL制約:Z軸上の部品テープの入れ替え(1)」よりも、実装点のX座標の扱いを細かくしたものである。
3.6 XLサイズ基板への対応
3.6.1 概要
XLサイズ基板は、実装領域の制約がない通常の基板よりも搬送方向と直交する方向にサイズが大きい基板である。そのために、図46に示されるように、XLサイズ基板には、特定の設備(前サブ設備110又は後サブ設備120)でしか部品を装着できない実装領域が存在する。図46は、特殊なサイズ(XL,LL)の基板における基板上の制約領域(ヘッドが移動できないために実装できない領域)を示す図である。
XLサイズ基板は、次の3つの実装領域から構成されている。
・前サブ設備110でしか部品を装着できない領域
・後サブ設備120でしか部品を装着できない領域
・前サブ設備110と後サブ設備120の両方で部品を装着できる領域
更にLLサイズ基板と同様に特定のヘッド(ノズル)でしか部品を装着できない領域が存在する。
図46に示された制約を踏まえて、XLサイズ基板への対応を次に示す。
(1)実装点座標による前サブ設備110/後サブ設備120への割り当て
(2)実装点座標による部品分割
(3)前サブ設備110と後サブ設備120の両方で実装できる領域を利用した初期振り分け
(4)LL制約の回避
詳細は、後述の個別処理で説明している通りである。
3.6.2 関連する個別処理
XLサイズ基板への対応を、実装点毎に実装可能なサブ設備が前サブ設備110と後サブ設備120のどちらであるかを判断し、前サブ設備110と後サブ設備120に実装点を振りわけることで、実現した。
なお、XLサイズ基板が持っている制約は、LLサイズ基板が持っている制約を含んでいるので、XLサイズ基板に対応する処理には、LLサイズ基板に対応する処理が含まれる。
詳細については、下記の個別処理で説明している通りである。
・「XL制約」
3.7 負荷バランス処理
3.7.1 概要
負荷バランス処理は、初期振り分け処理において、負荷レベルを指標として、前サブ設備110と後サブ設備120のバランスを調整する処理である。この処理は、図14のステップS314bに相当する。
3.7.2 バランス調整方法のレベル
バランスを調整する方法として、前サブ設備110と後サブ設備120との間での部品の移動を行う。部品の移動については、次の2つのレベルがある。
(1)「山」単位
(2)部品テープ単位
上記の「山」とは、最適化の結果、作成される部品テープのグループ、つまり、一定順序で並べられた部品テープ群又はその部品テープ群に対応する部品ヒストグラムを意味する。上述のタスクグループの概念に近い。
負荷バランス処理とラインバランス処理では、実行する部品移動のレベルが異なる。
負荷バランス処理:「山」、部品テープ
ラインバランス処理:「山」、部品テープ、実装点
現在、負荷バランス処理で使用している負荷レベル計算は、汎用部品から構成されるタスクに対する負荷レベルの値の精度が悪い。そのため、負荷バランス処理では、部品移動の単位を細かくしても効果が薄いと判断して、実装点単位の部品移動は行っていない。
詳細は、後述の個別処理で説明している通りである。
3.7.3 関連する個別処理
「負荷バランス処理」は、前サブ設備110と後サブ設備120の負荷レベルのバランスを調整する処理である。部品テープを前サブ設備110と後サブ設備120に振り分ける際に必要となる。
まず、前サブ設備110から順に部品テープを詰めて配置し、前サブ設備110に配置できなかった部品テープを後サブ設備120に配置する。
これを初期状態として、前サブ設備110と後サブ設備120の負荷バランスを計算し、その負荷バランスの差がOKになるまで、前サブ設備110に配置された部品テープを順番に後サブ設備120に移動する。
なお、各サブ設備の負荷バランスの計算方法は、「最適化装置の動作(概要編)」での説明の通りである。
詳細については、下記の個別処理で説明している通りである。
・「負荷レベルバランス調整(「山」単位)」
・「負荷レベルバランス調整(部品テープ単位)」
3.8 ラインバランス処理
3.8.1 概要
ラインバランス処理は、タスクが生成された後、実装時間を指標として、前サブ設備110と後サブ設備120のバランスを調整する処理である。この処理は、図14のステップS323に相当する。ラインバランス処理と負荷バランス処理と違いは、バランスの指標が異なるだけであり、互いに類似した処理である。
3.8.2 バランス調整方法のレベル
バランスを調整する方法として、前サブ設備110と後サブ設備120との間での部品の移動を行う。部品の移動については、次の3つのレベルがある。
(1)「山」単位
(2)部品テープ単位
(3)実装点単位
ラインバランス処理では、実装点単位の部品移動を行う点が、負荷バランス処理と異なる。
3.8.3 関連する個別処理
「ラインバランス処理」は、前サブ設備110と後サブ設備120の実装時間のバランスを調整する処理である。前サブ設備110と後サブ設備120のタスクを生成した後、各サブ設備の実装時間をタクトシミュレータで計算し、実装時間の長いサブ設備から、実装時間の短いサブ設備へ、部品を移動することにより、前サブ設備110と後サブ設備120の実装時間のバランスを調整する。バランスの指標などに違いがあるが、前述の負荷バランス処理と類似の処理である。
詳細については、下記の個別処理で説明している通りである。
・「前サブ設備110から後サブ設備120へ山を移動する処理」
・「前サブ設備110から後サブ設備120へ部品テープを移動する処理」
・「前サブ設備110から後サブ設備120へ実装点を移動する処理」
・「ラインバランス処理でのスワップ処理」
3.9. 最適化装置による個別処理の詳細
3.9.1 「刈り上げ法」
以下の手順により、タスクを生成する。
(1)部品ヒストグラム510を作成する(図48)。
(2)部品ヒストグラム510に対して、刈り上げ、コア部分を残す(図49)。
本図において、四角形で囲まれた枠は、10点同時吸着の吸着パターンである。
(3)刈り上げた部分511a(図50(a))と、コア部分511b(図50(b))とを分離する。
(4)コア部分511bにテンプレート512を割り当てる(図51)。
本図において、四角枠で囲まれた黒色の四角形(実装点)は、テンプレートでカバーできなかった実装点を示し、これらをテンプレートの左側513(「*」で示される箇所)を補完するために使用する。
(5)テンプレートの左側を補完する実装点514を決める(図52)。
(6)テンプレートの左側513を補完する(図53)。
本図において、白抜きの四角形は、補完に用いられた実装点を示し、四角枠で囲まれた黒色の四角形は、補完に用いられなかった実装点を示し、四角枠で囲まれた「*」は、補完できなかった実装点を示す。
(7)コア部分とテンプレートにより補完された部分について、「山」515を作り直す(図54)。
(8)上記(2)において刈り上げにより作られたタスク511aも「山」516の形に作り直す(図55)。
(9)刈り上げによる「山」516とコア部分の「山」515とを合成し、「山」517を得る(図56)。
(10)「山」517全体を刈り上げ、吸着パターン518を得る(図57)。
本図において、第24のタスク(タスク24)は、吸着時のヘッドの上下回数(吸着上下回数)が3回となることが示されている。
(11)制約が全くない場合は、そのままZ軸に配置する(図58)。
なお、制約を考慮した場合については、以下((12)以降)の通りである。
(12)「刈り上げ法」によりタスク(四角枠で囲まれた部品群)を生成する(図59)。
ここでは、コア部分の処理を行う。ただし、この段階では、最大分割数、カセットリソース、使用可能なZ番号の個数は考慮しない。
この例では、カセット番号1〜6が分割されるので、
カセット番号=1:部品A
カセット番号=2:部品B
カセット番号=3:部品C
カセット番号=4:部品D
カセット番号=5:部品E
カセット番号=6:部品F
とし、分割の様子を、例えば、部品Aは5分割されるので、それぞれ
A1,A2,A3,A4,A5
と表現する。部品B,C,D,E,Fについても同様である。また、その他の部品については黒色の四角形で表現している。
(13)最大分割数を考慮し、カセット分割数を適正化する(図60)。
ここでは、部品Aの最大カセット分割数が4であるとして、部品Aについて、カセット分割数を適正化している。
部品Aは、5分割されているので、A2〜A5のうちの1つをA1〜A5に統合する。このとき、A2〜A5の中で部品数が最小のものを選択すれば、この統合の影響を受けるタスクの個数が最小になる。
この場合、A5の部品数が最小(3個)であるので、A5を選び、それらA5をA1〜A4に分散させる。その結果、A5があった位置が空くので、A5の左側にあるF2,E2,D2を右に1つ分移動する。
(14)このような適正化後におけるカセット配列は、図61に示される吸着パターン518b通りである。
ここで、タスク21〜22は、吸着上下回数が2回となっている。
(15)続いて、ダイヤグラム518cのように、カセット使用数を適正化する(図62)。
ここでは、カセット使用数がカセットリソースよりも1本だけ多いとする。
部品A2〜4,B2,C2,D2,E2,F2の中で部品数が最小のものを選び、それを統合する。具体的には、部品数が最小(1個)のF2を選び、これをF1に統合する。
(16)このような適正化後におけるカセット配列は、図63に示される吸着パターン518dの通りである。
カセット数が1本減っていることが分かる。
(17)続いて、ダイヤグラム518eのように、Z軸占有数を適正化、つまり、使用可能なZ軸の範囲を考慮する(図64)。
ここでは、Z軸使用数がZ軸の空よりも1本だけ多いとする。
部品A2〜4,B2,C2,D2,E2の中で部品数が最小のものを選び、それを統合する。具体的には、部品数が最小(2個)のE2を選び、これをE1に統合する。
(18)このような適正化後におけるカセット配列は、図65に示される吸着パターン518fの通りである。
ここで、タスク24は、吸着上下回数が4回のまま変っていないが、タスク23は、吸着上下回数が3回となる。
(19)Z軸に配置する。
ここでは、ダイヤグラム518gに示されるように、B1は、本来Z番号=15に固定する部品であると仮定する(図66)。
(20)最初に固定カセット519をZ軸に配置する(図67)。
(21)非固定カセットをZ軸に配置する。その結果は、吸着パターン520となる(図68)。
このとき、非固定カセットは、上記(19)で決まったカセット配列の順序で、固定カセットを避けるようにしてZ軸に配置する。
(22)「山」521の形に戻す(図69)。
(23)再度、「刈り上げ法」によりタスクを生成し、吸着パターン522を得る(図70)。
ただし、コア部分の処理は行わない。ここで、タスク24は、吸着上下回数が3回に、タスク22〜23は、吸着上下回数が2回に、タスク17〜19は、吸着上下回数が2回となる。
3.9.2 平行四辺形によるカセット分割
コア部品に対する平行四辺形のテンプレートを用いたカセット分割の方法は、以下の通りである。
(1)ここでは、対象のコア部品525の合計部品数が30とする(図71の上段)。つまり、10点吸着のタスクを3個つくることにする。
(2)まず、カセット数が9なので、それに対応する平行四辺形(テンプレート)523を作る(図71の中段の右)。なお、平行四辺形526の各段の右端は、10点カット×9本の場合に、この平行四辺形526へ部品を割り当てた場合の部品の種類を示す文字(A〜I)となっている。
(3)対象部品525の1段目(最下段)525aに着目し、その右端が「I」なので、これを、右端が同一文字(「I」)である平行四辺形526の段(ここでは、平行四辺形526の最下段)に配置する(図71の下段)。
(4)同様に、対象部品525の2段目525bに着目し、その右端が「F」なので、これを、右端が同一文字(「F」)である平行四辺形526の段(ここでは、平行四辺形526の4段目)に配置する(図72の上段)。
(5)同様に、対象部品525の3段目525cに着目し、その右端が「C」なので、これを、右端が同一文字(「C」)である平行四辺形526の段(ここでは、平行四辺形526の7段目)に配置する(図72の中段)。
(6)これ以上、右端の文字が一致する段が存在しないので、残った部品525cを配置済みの各段(1,4,7段目)の空き位置(「X」)に配置する(図72の下段)。
(7)そのとき、残り部品数の多い部品525e、525fから割り当てていく(図73の上段、中段)。
(8)もし、残り部品数が同数の場合は、部品の文字の順序で部品525gを割り当てる(図73の下段)。
(9)以上の規則に従って、残る全ての部品525h〜kをテンプレート526に置く(図74、図75の上段)。
(10)全ての部品をテンプレート526に置き終えた結果、テンプレート526の1,4,7段目は部品で埋まるので(図75の中段)、最後に、それら1,4,7段目の隙間を詰めることで、カセット分割が完了する(図75の下段)。
3.9.3 長方形によるカセット分割
コア部品に対する長方形のテンプレートを用いたカセット分割の方法は、以下の通りである。
(1)30個の対象のコア部品527の下部に、長方形のテンプレート(ここでは、幅10×高さ3のテンプレート)528を当てる(図76の上段)。
(2)補完すべき領域(白抜き四角形)528aを、補完できた領域の左側に配置する(図76の中段)。
(3)残り部品数の多い部品527a、527bから、テンプレートの補完領域528aに置いていく(図76の下段、図77の上段)。
(4)もし、残り部品数が同数の場合は、部品の文字の順序で部品527cを割り当てる(図77の中段)。
(5)以上の規則に従って、残る全ての部品527d〜gをテンプレート528aに置く(図77の下段、図78、図79)。配置を完了した時点で、カセット分割が終了する。
3.9.4 与えられたカセット本数でのコア処理方法
基本のコア処理を行って、理想の「山」の形を作ってから、補完カセットを圧縮し、与えられたカセットリソース内に納める。
コア処理を行う際、与えられたカセット本数分だけ補完カセットができるように、補完カセットへ部品数を割り当てる処理を行って、最後にコア部分に残っている、本来、部品分割に使う部品種(部品テープ)の部品数を同一部品種に均等に配分する方法も可能と考えられる。
ダブルカセットについては、奇数Z番号上にコアが残るので、シングルカセットのコア処理と同様にして、補完カセットをつくることができる。この場合、補完カセットは、ダブルカセットの奇数側(奇数Z番号の分)のみを使用する。また、カセットを圧縮する処理も、シングルカセットと同様に行えばよい。
具体的には、
(1)コア部分に対してコア処理を行い、理想の「山」を作る。
この時、補完カセットが作られる。
(2)補完カセットの本数Nを求める。
(3)補完カセット数Nと与えられたカセット本数Mを比較する。
(4)N≦Mであれば、終了する。
戻り値はNとする。
コア処理では、与えられたカセット本数を全部使わなくてもよい場合があるので、Nを戻り値とした。
補完カセットは最大で9本なので、10本以上のカセットを与えても意味がない。
戻り値Nでカセットリソースの管理を行う。
(5)N>Mであれば、カセットを1本分だけ圧縮する。
(5.1)「山」の中から部品数が最も小さいカセットCを探す。
(5.2)カセットCと同じ部品テープを持つカセットDを「山」の中から探す。
カセットDは複数存在する場合がある。
カセットCは、カセットDに含めない。
(5.3)カセットCの部品数をカセットDへ均等に配分する。
均等に配分できない場合には、「山」のコア側に行くほどカセットの部品数が多くなるようにする。
たとえば、カセットCの部品数が5で、カセットDが3本あれば、2、2、1というように分割し、「山」のコア側のカセットから順に、2、2、1と分配する。
(6)補完カセット数Nから1を引く。
(7)(3)へ戻る。
3.9.5 小部品のタスク生成処理
ノズル番号とZ番号の対応を決定し、各タスクの吸着パターンを生成する処理を行う。
ノズルと実装点の対応は、「貪欲法」により決定される。
「山」の「すそ野」側からスキャンして吸着パターンを生成する。そのため、「すそ野」がZ番号の小さい側に存在する左ブロックと、「すそ野」がZ番号の大きい側に存在する右ブロックとでは、ヘッドとZ軸のスキャン方向が反対になるが、基本的には同じ処理となる。
ダブルカセットの場合、偶数Z番号側にある部品テープの全ての部品数を吸着パターンに割り当ててから、奇数Z番号側にある部品テープの部品数を吸着パターンに割り当てる。偶数Z番号側に存在する部品テープから作られる最後のタスクの吸着点数が10未満の場合、10に満たない分を奇数Z番号に存在する部品テープから吸着する。
・プログラミングにおけるポイント
以下に説明する処理では、実Z軸上に配置された部品テープが吸着すべき部品テープか否かを判定するため、その部品テープが処理対象となる「山」に属するものかどうかを判定している。そこで、部品テープの属性として、「山」番号などの「山」を識別するための情報を用意し、事前に設定しておくと便利である。1つの部品グループから2以上の「山」が作り出されることがあるので、部品グループ番号は「山」の識別に使わないほうがよい。
左ブロックの場合(シングルカセットの「山」)
(8)タスク番号tに1を設定する。
(9)この「山」を構成する部品テープに属する実装点の個数の合計を求め、実装点数合計とする。
(9.1)実装点数合計がゼロの場合、以下の処理を行う。
(9.1.1)(15)へ進む。
全く実装点が無い「山」は存在しないので、エラーとする。
(10)タスク番号tのタスクが持つノズルのうち、Z番号が対応付けられていないノズルの中から、ノズル番号が最小のものを見つけ、そのノズル番号をNvacとする。
ノズル番号は1〜10とする。
Z番号が対応付けられているノズルが全く無い場合、Nvacは1となる。
(10.1)すべてのノズルにZ番号が対応付けられている場合、以下の処理を行う。
(10.1.1)(13)へ進む。
次のタスクの吸着パターンの生成へ進むことになる。
このタスクの吸着点数は10点になる。
(11)「山」を構成する部品テープが存在するZ番号について、ノズル番号Nvacのノズルで吸着できるZ番号の中から最小のZ番号を求め、Zvacとする。
Z番号は、前サブ設備110であれば、「1〜 48の範囲にある奇数」である。
Z番号は、後サブ設備120であれば、「97〜144の範囲にある奇数」である。
(11.1)そのようなZ番号が見つからない場合、以下の処理を行う
(11.1.1)(13)へ進む。
次のタスクの吸着パターンの生成へ進むことになり、このタスクは吸着点数が10未満となる。
たとえば、Z=1だけに部品テープが存在する場合、ノズル1でしか吸着できず、ノズル2〜10が吸着できる部品テープが存在しないため、Zvacが決まらない。
(12)実装点数合計が正であり、かつ、 Nvacが10以下である場合、以下の処理を行う。
(12.1)ノズル番号がNvacであるノズルにZ番号が対応付けられておらず、かつ、Zvacに存在する部品テープがこの「山」に属する場合、以下の処理を行う。
(12.1.1)ノズル番号がNvacであるノズルにZvacを対応付ける。
(12.1.2)Zvacに存在する部品テープの実装点の個数から1を減算する。
(12.1.3)実装点数合計から1を減算する。
たとえば、1回目の吸着で「歯抜け」状に吸着した場合、2回目の吸着では、すぐ隣のノズルが空いているとは限らないので、この条件判定(前半部分)を入れた。
また、「山」の途中に、この「山」に無関係な部品テープ(固定カセットの部品テープなど)が存在する可能性があるので、この条件判定(後半部分)を入れた。
(12.2)Nvacに1を加算する。
(12.3)Zvacに2を加算する。
(12.4)(12)に戻る。
(13)タスク番号に1を加算する。
(14)(10)へ戻る。
(15)吸着パターン生成処理を終了する。
右ブロック の場合(シングルカセットの「山」)
(16)タスク番号tに1を設定する。
(17)この「山」を構成する部品テープに属する実装点の個数の合計を求め、実装点数合計とする。
(17.1)実装点数合計がゼロの場合、以下の処理を行う。
(17.1.1)(23)へ進む。
全く実装点が無い「山」は存在しないので、エラーとする。
(18)タスク番号tのタスクが持つノズルのうち、Z番号が対応付けられていないノズルの中から、 ノズル番号が最大のもの を見つけ、そのノズル番号をNvacとする。
ノズル番号は1〜10とする。
Z番号が対応付けられているノズルが全く無い場合、 Nvacは10 となる。
(18.1)すべてのノズルにZ番号が対応付けられている場合、以下の処理を行う。
(18.1.1)(21)へ進む。
次のタスクの吸着パターンの生成へ進むことになる。
このタスクの吸着点数は10点になる。
(19)「山」を構成する部品テープが存在するZ番号について、ノズル番号Nvacのノズルで吸着できるZ番号の中から最大のZ番号を求め、Zvacとする。
Z番号は、前サブ設備110であれば、「49〜 96の範囲にある奇数」である。
Z番号は、後サブ設備120であれば、「145〜192の範囲にある奇数」である。
(19.1)そのようなZ番号が見つからない場合、以下の処理を行う
(19.1.1)(21)へ進む。
次のタスクの吸着パターンの生成へ進むことになり、このタスクは吸着点数が10未満となる。
たとえば、Z=1だけに部品テープが存在する場合、ノズル1でしか吸着できず、ノズル2〜10が吸着できる部品テープが存在しないため、Zvacが決まらない。
(20)実装点数合計が正であり、かつ、Nvacが1以上である場合、以下の処理を行う。
(20.1)ノズル番号がNvacであるノズルにZ番号が対応付けられておらず、かつ、Zvacに存在する部品テープがこの「山」に属する場合、以下の処理を行う。
(20.1.1)ノズル番号がNvacであるノズルにZvacを対応付ける。
(20.1.2)Zvacに存在する部品テープの実装点の個数から1を減算する。
(20.1.3)実装点数合計から1を減算する。
たとえば、1回目の吸着で「歯抜け」状に吸着した場合、2回目の吸着では、すぐ隣のノズルが空いているとは限らないので、この条件判定(前半部分)を入れた。
また、「山」の途中に、この「山」に無関係な部品テープ(固定カセットの部品テープなど)が存在する可能性があるので、この条件判定(後半部分)を入れた。
(20.2)Nvacから1を減算する。
(20.3)Zvacから2を減算する。
(20.4)(20)に戻る。
(21)タスク番号に1を加算する。
(22)(18)へ戻る。
(23)吸着パターン生成処理を終了する。
左ブロック(ダブルカセットの「山」)
(24)ダブルカセットの偶数Z番号側について、前述の左ブロックの場合(シングルカセットの「山」)」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
(25)ダブルカセットの偶数Z番号側から吸着したタスクの中の最後のタスクが10点未満のタスクであれば、そのタスクをダブルカセットの奇数Z番号側を吸着する際のタスクの初期値とする。
その最後のタスクは、ノズル1から順に吸着していて、ノズル番号の大きい側が空きになっている。これをそのまま奇数Z番号側を吸着する際のタスクの初期値としてしまうと、たとえば、Z=1付近からの吸着ができない。そこで、ノズル番号の小さいノズルが空きになるように、既に吸着している実装点をノズル番号の大きいノズルのほうへ移動しておく。
(26)ダブルカセットの奇数Z番号側について、前述の「右ブロックの場合(シングルカセットの「山」)」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
ダブルカセットの偶数側のZ番号を吸着した結果、その最後のタスクの吸着点数が10点未満の場合、ダブルカセットの奇数Z番号側の吸着の最初のタスクが初期値を持っている点が異なる。
右ブロック(ダブルカセットの「山」)
(27)ダブルカセットの偶数Z番号側について、前述の「右ブロックの場合(シングルカセットの「山」)」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
(28)ダブルカセットの偶数Z番号側から吸着したタスクの中の最後のタスクが10点未満のタスクであれば、そのタスクをダブルカセットの奇数Z番号側を吸着する際のタスクの初期値とする。
その最後のタスクは、ノズル10から順に吸着していて、ノズル番号の小さい側が空きになっている。これをそのまま奇数Z番号側を吸着する際のタスクの初期値としてしまうと、たとえば、Z=96付近からの吸着ができない。そこで、ノズル番号の大きいノズルが空きになるように、既に吸着している実装点をノズル番号の小さいノズルのほうへ移動しておく。
(29)ダブルカセットの奇数Z番号側について、前述の「右ブロックの場合(シングルカセットの「山」)」と同様にして、吸着を行う。
ただし、奇数Z番号からではなく、偶数Z番号からの吸着動作になる点のみが異なる。
ダブルカセットの偶数側のZ番号を吸着した結果、その最後のタスクの吸着点数が10点未満の場合、ダブルカセットの奇数Z番号側の吸着の最初のタスクが初期値を持っている点が異なる。
3.9.6 「交差解消法」
「交差解消法」は、全ての吸着パターンが決まり、各吸着パターンに「貪欲法」(+HC法)などで実装点の割振りが行われ仮のタスクが決まった後に、実装点の割振りの最適化を行うアルゴリズムの一つである。
図80(a)は、交差解消法を適用する前の実装経路図(貪欲法により決定した実装経路図)530aを示し、図80(b)は、交差解消法を適用した後の実装経路図530bを示す。本図に示されるように、このアルゴリズムは、ヘッドの移動軌跡が無駄にクロスする箇所を減少させるものである。
なお、処理対象となるタスクの実装点が、LL基板、XL基板におけるヘッド制限に引っかかる場合は、「組替えの対象となる部分タスクの全ての実装点が、ヘッド番号がhead1=head2を満たしている」場合のみ、交差解消アルゴリズムの対象としてよい。その他の場合に、「交差解消法」を強行すると、極めて高い確率でヘッドが実装点に届かない場合が発生する。
図81(a)は、交差解消法のアルゴリズムを説明する実装経路図であり、図81(b)は、4つの実装点による1つの交差(線Aと線Bによる交差)の例を示す図である。具体的なアルゴリズムは、以下の通りである。
(0)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和を求める
(1)実装点の組替えを行うZ座標、切断点(cutpoint)に1を代入する
(2)組替えを行うタスク1に1を代入する(task1=1)
(3)組替えを行うタスク2に(task1+1)を代入する(task2=task1+1)。(4)cutpointに対応するヘッド番号(head1,head2)をそれぞれのタスクについて求める
(5)2つのヘッド番号がともに適正か?
(5.1)適正でない場合(指定したZ座標に対応する実装点がない)、(13)へ
(5.2)適正である場合、(6)へ
(6)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和(olength)を求める
(7)cutpointより左側の部分タスクの組替えを行う
(8)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和(nlengthL)を求める
(9)cutpointより右側の部分タスクの組替えを行う
(10)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、その和(nlengthR)を求める
(11)3つの移動量、olength,nlengthL、nlengthRを比較し、最小のものを求める(12)最小の移動量を与えるタスクを新しいタスクとしてを採用する
(13)タスク2をインクリメントする(task2=task2+1)
(14)タスク2(task2)とタスク数を比較する
(14.1)タスク2がタスク数を超えていない場合、(4)へ戻る
(14.2)その他の場合、(15)へ
(15)タスク1をインクリメントする(task1=task1+1)
(16)タスク1(task1)とタスク数を比較する
(16.1)タスク1がタスク数を超えていない場合、(3)へ戻る
(16.2)その他の場合、(17)へ
(17)切断点をインクリメントする(coutpoint=cutpoint+1)
(18)切断点と最大Z座標を比較する
(18.1)切断点が最大Z座標を超えていない場合、(2)へ
(18.2)その他の場合、(19)へ
(19)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(20)ヘッド移動量の総和が減少しているか否かを調べる
(20.1)減少している場合、(0)へ
(20.2)その他の場合、終了
図82は、このようなアルゴリズムによる交差解消法の適用例を示す実装経路図であり、図82(a)は、適用前の実装経路図(貪欲法による実装経路図)531aを示し、図82(b)は、適用後の実装経路図531bを示す。実装経路がクロスしている箇所の数が減少し、総実装経路が短縮化されているのがわかる。
3.9.7 「戻り最適化法」
「戻り最適化法」は、全てのタスクへの実装点の割振りが決まった後に、タスクの実装順序の最適化を行うアルゴリズムである。
その詳細は、以下の通りである。
(1)各タスクの最終実装点のX座標を求める
(2)最終実装点のX座標の大きい順に従って並べたタスク番号リスト(up[])を作る
(3)各タスクの部品テープの最大Z座標を求める(吸着時にヘッド10番が取るZ座標の最大値)
(4)最大Z座標の大きい順に並べたタスク番号リスト(point[].task)を作る
(5)実装順序1番に、最終実装点のX座標が最大のタスクを割り当てる
(6)その次に実装するタスクとして、残っているタスクの内最も大きな最大Z座標を持つタスクを割り当てる
(7)実装順序が決まっていないタスクが残っているか?
(7.1)残っている場合、(8)へ
(7.2)その他の場合、(10)へ
(8)残っているタスクのうち最終実装点のX座標が最大のものを、その次に実装するタスクとして割り当てる
(9)実装順序が決まっていないタスクが残っているか?
(9.1)残っている場合、(6)へ
(9.2)その他の場合、(9)へ
(10)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(11)実装順序の入替えを行うタスク1に1を代入する(task1=1)
(12)実装順序の入替えを行うタスク2に(task1+1)を代入する(task2=task1+1)
(13)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和(olength)を求める
(14)タスク1の次に実装するタスクをタスク2の次に実装し、タスク2の次に実装するタスクをタスク1の次に実装する新しいタスクの実装順序を求める
(15)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対する総和(nlength)を求める
(16)2つの移動量、olength,nlengthを比較し、最小のものを求める
(17)最小の移動量を与える実装順序を新しい実装順序としてを採用する
(18)タスク2をインクリメントする(task2=task2+1)
(19)タスク2(task2)とタスク数を比較する
(19.1)タスク2がタスク数を超えていない場合、(11)へ戻る
(19.2)その他の場合、(19)へ
(20)タスク1をインクリメントする(task1=task1+1)
(21)タスク1(task1)とタスク数を比較する
(21.1)タスク1がタスク数を超えていない場合、(10)へ戻る
(21.2)その他の場合、(21)へ
(22)それぞれのタスクの実装点を打つ際のヘッドの移動量を計算し、全タスクに対するヘッド移動量の総和を求める
(23)ヘッド移動量の総和が減少しているか否かを調べる
(23.1)減少している場合、(0)へ
(23.2)その他の場合、終了
以上のように、このアルゴリズムは、大きく、以下の2つのパートからなる。(パート1)
(i)図83に示されるように、各タスクの最終実装点から最短距離にある吸着位置(タスク)を見つける(図中の実線矢印)。図83は、図44における「戻り」動作を示す図であり、基板上の最終実装点(四角形内の丸印)と次に吸着すべき部品カセットのZ軸上の位置(横一列に並んだ丸印1〜19)を示す。
(ii)1番吸着位置を始点にして実装経路を順次書いていく(図中の点線矢印)。
(iii)経路が1番吸着位置に戻ったら、それを最短巡回部分経路1とする。
(iv)これまで見つかった最短巡回部分経路に含まれない吸着位置を探す(図83に示された例では、「4」となる)。
(v)上記(ii)に戻る。
その結果、図83に示された例では、最短巡回経路は5つとなる。
(パート2)
どの吸着位置から実装を始めれば、複数の最短巡回経路を実装順序が最適化できるかを求める。これは、右から順に実装するので問題ない。戻ることがなければよいからである。
図84(a)は、同一の部品カセットに複数の実装点がある場合における「戻り」動作を示す図であり、図84(b)は、この「戻り最適化法」を適用した場合のヘッドの戻り軌跡を示すシミュレーション結果であり、適用前の移動軌跡532aにおける無駄なクロス(左図)が適用後の移動軌跡532bのように減少しているのがわかる。
3.9.8 全体の流れ(ヒストグラムからスタート)
(1)実装点データから、部品グループを作成する。
(2)小部品の各部品グループについて、「山」を作る。
(2.1)使用するカセットによって、部品テープを次の3つに分類する。
1.シングルカセットを使う部品テープ
2.ダブルカセットを使う部品テープ(送りピッチ2mm)
3.ダブルカセットを使う部品テープ(送りピッチ4mm)
(2.2)シングルカセットを使う部品テープについて、仮Z軸上に「山」を作る。
(2.2.1)仮Z軸上に部品ヒストグラムを作成する。
部品数の多い順に部品テープを並べる。
最も部品数の多い部品テープをZ=1に配置する。
(2.2.2)部品ヒストグラムを構成する部品テープの個数をNとする。
(2.2.3)仮Z軸から実Z軸へ変換する。
仮Z軸上のZ=1からNまでの部品テープを、その順番で、実Z軸上のZ=1〜2Nの範囲の奇数Z番号に配置する。
(2.3)送りピッチが2mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る。
(2.3.1)仮Z軸上に部品ヒストグラムを作成する。
部品数の多い順に部品テープを並べる。
最も部品数の多い部品テープをZ=1に配置する。
(2.3.2)部品ヒストグラムを構成する部品テープの個数をNとする。
(2.3.3)Nを2で割った値(小数点以下切り上げ)をMとする。
(2.3.4)ダブルカセットをM本用意する。
(2.3.5)第2仮Z軸を用意する。
(2.3.6)M本のダブルカセットを第2仮Z軸上のZ=1からNまで、間を詰めて配置する。
(2.3.7)仮Z軸のZ=1からMまでの部品テープを第2仮Z軸のZ=1、3、5、…、N−1の奇数Z番号に配置する。
ダブルカセットの奇数側に配置することになる。
(2.3.8)仮Z軸のZ=(M+1)からNまでの部品テープを、第2仮Z軸のZ=2、4、6、…、Nの偶数Z番号に配置する。
ダブルカセットの偶数側に配置することになる。
Nが奇数の場合は、第2仮Z軸上のZ=(N−1,N)に配置されるダブルカセットは、偶数側が空きになるが、そのままとする。
(2.3.9)第2仮Z軸を改めて仮Z軸とする。
(2.4)送りピッチが4mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作成する。
送りピッチの違いを除いて、前述の「送りピッチが2mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る」処理と同じである。
(2.5)送りピッチが2mmと4mmのダブルカセットの部品ヒストグラムを融合する。
(2.5.1)送りピッチが2mmのダブルカセットの「山」と、送りピッチが4mmのダブルカセットの「山」を同じ仮Z軸上に配置する。
送りピッチが2mmのダブルカセットの「山」をZ=1から配置し、それに続けて、送りピッチが4mmのダブルカセットの「山」を配置する。
次の処理でカセットの並べ替えをするので、配置順序は逆でもかまわない。
(2.5.2)仮Z軸上のダブルカセットを、その奇数Z番号側の部品テープの部品数の大きい順に並べ替える。
部品数が最も大きい部品テープを持つダブルカセットをZ=1に配置する。
ダブルカセットのペアは崩さない。
送りピッチが2mmと4mmのダブルカセットが混在した「山」ができる。
奇数Z番号の部品テープの部品数を見ると、単調減少するヒストグラムになる。
偶数Z番号の部品テープの部品数を見ると、単調減少するヒストグラムになっていない場合がある。
(3)実Z軸上にすべての「山」を[強制的に]配置する。
「山」を前サブ設備110から詰めて配置していき、すべての「山」が実Z軸上に載り切るかどうかを調べる。
部品グループの順に「山」単位で配置する。
前後サブ設備120にまたがる「山」は分割し、前後サブ設備120へ振り分ける。
小部品は、1つの部品グループが「シングルカセットを使用する山」と「ダブルカセットを使用する山」に分かれる。どちらか一方の「山」しかない部品グループもある。
小部品で1つの部品グループが「シングルカセットを使用する山」と「ダブルカセットを使用する山」に分かれた場合、それぞれを独立した「山」として扱う。
汎用部品は、部品グループ単位で「山」になっているとする。
汎用部品は、ユーザの指定通りに分割されているものとする。
・配置ルール
小部品については、シングルカセットとダブルカセットがあるので、次のような順序で配置する。隣接条件を考慮して、シングルカセットとダブルカセットが隣接しにくくなるような、配置順序とした。
1) 前サブ設備110にダブルカセットを配置する。
(i)AブロックのZ番号=(47,48)から、Z番号の小さいほうへ順に空きを探して配置する。
(ii)Aブロックに空きがなくなったら、BブロックのZ番号=(95,96)へ移動し、Z番号の小さいほうへ順に空きを探して配置する。
2) 前サブ設備110にシングルカセットを配置する。
(i)BブロックのZ番号=49から、Z番号の大きいほうへ順に空きを探して配置する。
(ii)Bブロックに空きがなくなったら,AブロックのZ番号=1へ移動し,Z番号の大きい方へ順に空きを探して配置する。
3) 後サブ設備120にダブルカセットを配置する。
(i)CブロックのZ番号=(143,144)から、Z番号の小さいほうへ順に空きを探して配置する。
(ii)Cブロックに空きがなくなったら、DブロックのZ番号=(191,192)へ移動し、Z番号の小さいほうへ順に空きを探して配置する。
4) 後サブ設備120にシングルカセットを配置する。
(i)DブロックのZ番号=145から、Z番号の大きいほうへ順に空きを探して配置する。
(ii)Dブロックに空きがなくなったら、CブロックのZ番号=97へ移動し,Z番号の大きいほうへ順に空きを探して配置する。
配列固定の対象である部品テープが存在する場合、それらの部品テープを固定先のZ番号へ配置した後、配列固定の対象でない部品テープを配置する。
ダブルカセットの配列固定については、「ダブルカセットの配列固定について」で詳述する。
(3.1)部品グループ番号をnで表し、n = 0とする。
(3.2)nが部品グループ番号の最大値よりも大きい場合、(3.7)へ進む。
(3.3)部品グループnに属するシングルカセットの「山」が存在する場合、以下の処理を行う。
(3.3.1)前サブ設備110に配置する。
(3.3.2)その結果、前サブ設備110に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備110に載りきらない部品テープを後サブ設備120に配置する。
(3.3.3)その結果、後サブ設備120に載りきらないのであれば、エラーとする。
小部品の「山」を配置する場合は上記の配置ルールに従う。
(3.4)部品グループnに属するダブルカセットの「山」が存在する場合、以下の処理を行う。
(3.4.1)前サブ設備110に配置する。
(3.4.2)その結果、前サブ設備110に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備110に載りきらない部品テープを後サブ設備120に配置する。
(3.4.3)その結果、後サブ設備120に載りきらないのであれば、エラーとする。
小部品の「山」を配置する場合は上記の配置ルールに従う。
(3.5)nに1を加算する。
(3.6)(3.2)へ戻る。
(3.7)前サブ設備110と後サブ設備120の「山」の状態を記憶する。
最も詰め込んだ状態で、すべての「山」を配置できたことになる。
(4)前サブ設備110から順に「山」を詰めて配置する。
負荷レベルを尺度とした前サブ設備110と後サブ設備120のバランス調整を行う際の「山」の配置の初期状態を作る。
前サブ設備110→後サブ設備120の順に、前サブ設備110から詰めて、部品グループの小さい「山」から順に配置し、「山」の配置の初期状態とする。
配列固定の対象である部品テープが存在する場合、配列固定の対象である部品テープを固定先のZ番号へ配置した後、配列固定の対象でない部品テープを配置する。
配列固定の対象である部品テープと、それが属している「山」が同じブロックに配置された場合、配列固定の対象である部品テープを「山」に含めて、1つの「山」とし、その「山」に「刈り上げ法」を適用する。
配列固定の対象である部品テープと、それが属している「山」が異なるブロックに配置された場合、別々の「山」とし、それぞれの「山」に「刈り上げ法」を適用する。
(4.1)部品グループ番号をnで表し、n = 0とする。
(4.2)nが部品グループ番号の最大値よりも大きい場合、(4.8)へ進む。
(4.3)部品グループnに属するシングルカセットの「山」が存在する場合、以下の処理を行う。
(4.3.1)前サブ設備110に配置する。
(4.3.2)その結果、前サブ設備110に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備110に載りきらない部品テープを後サブ設備120に配置する。
(4.3.3)その結果、後サブ設備120に載りきらないのであれば、エラーとする。
左右ブロックのうち、Zの空きが多いほうに「山」を配置する。
左右ブロックのZの空きが同じ場合には、右ブロックに配置する。
左ブロックのZに空きがあるが、「山」が収まりきらない場合には、「山」を部品テープ単位に2分割して、左右のブロックへ配置する。
(4.4)部品グループnに属するダブルカセットの「山」が存在する場合、以下の処理を行う。
(4.4.1)前サブ設備110に配置する。
(4.4.2)その結果、前サブ設備110に載りきらないのであれば、「山」を部品テープ単位で分割し、前サブ設備110に載りきらない部品テープを後サブ設備120に配置する。
(4.4.3)その結果、後サブ設備120に載りきらないのであれば、エラーとする。
左右ブロックのうち、Zの空きが多いほうに「山」を配置する。
左右ブロックのZの空きが同じ場合には、右ブロックに配置する。
左ブロックのZに空きがあるが、「山」が収まりきらない場合には、「山」を部品テープ単位に2分割して、左右のブロックへ配置する。
(4.5)前サブ設備110と後サブ設備120の「山」を負荷レベルを使って再配置する。
各ブロック毎に、負荷レベルの大きい「山」がカメラ(センサ)に近くなるように、負荷レベル順で「山」を並べ替える。
(4.6)nに1を加算する。
(4.7)(4.2)へ戻る。
(4.8)前サブ設備110と後サブ設備120の「山」の状態を記憶する。
(5)「負荷レベル」を使って前後バランスをとる。
(5.1)「負荷レベルバランス調整処理(「山」単位移動)」を行う。
詳細は、後述の「負荷レベルバランス調整処理(「山」単位)」で説明している通りである。
「負荷レベルバランス調整処理(「山」単位)」の中で、最終的には、実装点単位の負荷レベルバランス調整を行う。
(6)小部品に対して「刈り上げ法」を適用する。
現在の商品版における、カセット分割処理の流れと合わせた。
(6.1)各「山」について刈り上げ処理を行い、コア部分を残す。
(6.1.1)シングルカセットの「山」の場合
奇数Z番号(Z=大→小)の順に刈り上げを行う。
10点同時吸着ができなくなったら、刈り上げ処理を終了する。
(6.1.2)ダブルカセットの「山」の場合
偶数Z番号(Z=大→小)→奇数Z番号(Z=大→小)の順に刈り上げを行う。
偶数側Z番号に1点でも部品数が残っていれば、それを起点して刈り上げ処理を行う。
たとえば、偶数Z番号側で1点しか吸着できなければ、奇数Z番号側で残りの9点を吸着する。
奇数Z番号側で、10点同時吸着ができなくなったら、刈り上げ処理を終了する。
奇数Z番号側にコア部分が残る。
(6.2)「山」にフラグを設ける。
フラグの初期値をTRUEとする。
(6.3)前サブ設備110と後サブ設備120の「山」の状態を記憶しておく。
(6.4)カセットリソースの状態を記憶しておく。
(6.5)フラグがTRUEである「山」の中から、コア部分の高さが最も高い「山」Mを探す。
(6.5.1)「山」Mが見つからなければ、(7)へ進む。
つまり、すべての「山」に対するコア処理が終了したことになる。
(6.6)「山」Mが使用するカセット種Kと同種のカセット1本がリソースに残っているかを調べる。
(6.7)残っていれば、以下の処理を行う。
(6.7.1)「山」Mが使用するカセット数にカセット種Kを1本だけ追加して、コア処理を行う。
別紙「与えられたカセット本数でのコア処理方法」を参照。
(6.7.2)コアの高さが変化しなければ、(6.6)へ戻る。
(6.7.3)コアの高さが低くなれば、(6.9)へ進む。
(6.8)残っていなければ、以下の処理を行う。
(6.8.1)前サブ設備110と後サブ設備120の「山」の状態を1つの前の状態に戻す。
(6.8.2)カセットリソースの状態を1つ前の状態に戻す。
(6.8.3)「山」MのフラグをFLASEにする。
(6.8.4)(6.3)へ戻る。
コア部分の高さが次に高い「山」を探すため、
(6.9)すべての「山」を実Z軸上に配置する。
(6.10)配置できれば、(6.1)へ戻る。
(6.11)配置できなければ、以下の処理を行う。
(6.11.1)前サブ設備110と後サブ設備120の「山」の状態を1つの前の状態に戻す。
(6.11.2)カセットリソースの状態を1つ前の状態に戻す。
(6.11.3)「山」MのフラグをFLASEにする。
(6.11.4)(6.3)へ戻る。
(7)小部品のタスクを生成する。
(7.1)「小部品のタスク生成処理」を行う。
詳細は、後述の「小部品のタスク生成処理」で説明している通りである。
(8)汎用部品に対して最適化を行う。
(9)実装時間を使って前後バランスを取る。
(9.1)「前サブ設備110から後サブ設備120への山を移動する処理」を行う。
詳細は、後述の「前サブ設備110から後サブ設備120への山を移動する処理」で説明している通りである。
3.9.9 カセットブロック内の固定部品と「山」の配置関係
仮Z軸上の「山」は、配列固定の対象となっている部品テープと、配列固定の対象となっていない部品テープから構成されている。
配列固定の対象となっている部品テープを「固定部品テープ」と呼ぶ。
配列固定の対象なっていない部品テープを「非固定部品テープ」と呼ぶ。
カセットブロックを単に「ブロック」と呼ぶことがある。
左カセットブロックを「左ブロック」と呼び、右カセットブロックを「右ブロック」と呼ぶ。
固定部品テープを固定するZ番号を「固定先」と呼ぶ。
ある部品テープ(ある部品種の部品群)から部品分割により複数の部品テープが作られ、それら部品テープが「カセット」に収められて、そのカセットがZ軸に配置される…というように考える。
ある部品テープ(ある部品種の部品群)に対して部品分割を行わない場合は、分割数を1と考え、その部品テープ(その部品種の部品群)から部品テープが1本作られた…というように考える。
(10)右ブロックに存在する固定先の個数を数え、NRとする。
この「山」に属する固定部品テープに関係する固定先のみを数える。
この「山」に属する固定部品テープが複数存在する場合がある。
1つの部品テープの固定先が複数存在する場合がある。
(11)左ブロックに存在する固定先の個数を数え、NLとする。
右ブロックの場合と同様にして、数える。
(12)NR>NLの場合、以下の処理を行う。
右ブロックの固定先が多い場合である。
(12.1)その「山」を右ブロックに配置する。
「山」をブロックに配置する処理については、下記を参照。
詳細は、後述の「配列固定:固定先の使用可否判断」で説明している通りである。
(12.2)右ブロックに配置できない場合は、左ブロックに配置する。
右ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、右ブロックに固定部品テープが存在し、左ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。右ブロックに存在する固定部品テープと、左ブロックに存在する「山」は、別々の「山」として扱う。
(12.2.1)左ブロックに配置できない場合は、「山」を部品テープ単位で2つに分割して、左右ブロックに配置する。
「山」を2分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で1つの「山」(ヒストグラム)として扱う。
(13)NR=NLの場合、以下の処理を行う。
左右ブロックの固定先が同数である場合である。
(13.1)左右ブロックのZの空きが大きいほうに、その「山」を配置する。
(13.2)左右ブロックのZの空きが同数である場合、その「山」を右ブロックに配置する。
(13.3)右ブロックに配置できない場合は、左ブロックに配置する。
右ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、右ブロックに固定部品テープが存在し、左ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。右ブロックに存在する固定部品テープと、左ブロックに存在する「山」は、別々の「山」として扱う。
(13.3.1)左ブロックに配置できない場合は、「山」を部品テープ単位で2つに分割して、左右ブロックに配置する。
「山」を2分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で1つの「山」(ヒストグラム)として扱う。
(14)NR<NLの場合、以下の処理を行う。
左ブロックの固定先が多い場合である。
(14.1)その「山」を左ブロックへ配置する。
(14.2)左ブロックに配置できない場合は、右ブロックに配置する。
左ブロックには、既に他の「山」が配置されており、この「山」を配置できるだけのZの空きが存在しないような場合である。
この結果、左ブロックに固定部品テープが存在し、右ブロックに「山」が存在することなるが、左右ブロックをまたいだ吸着動作は行わない。左ブロックに存在する固定部品テープと、右ブロックに存在する「山」は、別々の「山」として扱う。
(14.2.1)左ブロックに配置できない場合は、「山」を部品テープ単位で2つに分割して、左右ブロックに配置する。
「山」を2分割するので、固定部品テープと同じブロックに存在する「山」と、固定部品テープと異なるブロックに存在する「山」ができる。
固定部品テープと同じブロックに存在する「山」は、「刈り上げ法」において、仮Z軸上で1つの「山」(ヒストグラム)として扱う。
3.9.10 配列固定:固定先の使用可否判断
固定部品テープの元になる部品テープの最大分割可能数をNDとする。
その部品テープから「刈り上げ法」(コア処理)により作り出された部品テープの本数をNTとする。必ずNT≦NDである。
その部品テープに関係するブロック内の固定先の個数をNZとする。
具体的には、
(1)「山」を構成する部品テープについて、「山」の一端から順に、以下の処理を行う。
(1.1)部品テープを1つ選択する。
(1.2)その部品テープについてNT≦(ND−NZ)である場合、以下の処理を行う。
(1.2.1)その部品テープに関係する固定先を全く使用しないで、「山」を構成する部品テープ(NT本)をZ軸上に配置する。
「山」の形に沿って、部品テープを配置する。
結果的に、部品テープが固定先に配置されることがあるが、それでもかまわない。
(1.2.2)固定先には、その部品種の部品テープを配置する。
最適化対象となっている基板については、この固定先から部品を吸着することはないが、他の基板で吸着すると考えて、ユーザの指定通りに配置しておく。
(1.3)その部品テープについてNT>(ND−NZ)である場合、以下の処理を行う。
(1.3.1)その部品テープから作られ、「山」を構成する部品テープのうち、部品数の少ないほうから{NT−(ND−NZ)}本の部品テープを固定先に配置する。
固定先として、実Z軸上で「山」に近い固定先を選ぶ。
(1.3.2)残りの部品テープを、その部品テープに関係する固定先を全く使用しないで、Z軸上に配置する。
結果的に、部品テープが固定先に配置されることがあるが、それもでかまわない。
(1.4)(1.1)へ戻る。
3.9.11 ダブルカセットの配列固定について
ダブルカセットを対象とした配列固定の制約に対する最適化は以下の通りである。
(1)送りピッチが2mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(図85)。つまり、部品数の多い順に並べた部品ヒストグラム535を中間点(折り返し位置)で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成し、部品ヒストグラム536を得る(折り返すことでペアを作成する)。
(2)同様にして、送りピッチが4mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(図86)。つまり、部品数の多い順に並べた部品ヒストグラム537を中間点(折り返し位置)で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成し、部品ヒストグラム538を得る(折り返すことでペアを作成する)。
(3)送りピッチが2mmと4mmのダブルカセットの部品ヒストグラム536、538を融合し、部品ヒストグラム539を得る(図87)。つまり、ダブルカットのペアを維持したまま、奇数Z番号側の部品テープの部品数が多い順に並べ替える。
(4)奇数Z番号とヒストグラム539a(図88(a))と偶数Z番号のヒストグラム539b(図88(b))に分離する。
(5)配列固定の制約がない場合には、それらヒストグラム539a、539bを、そのまま実Z軸に配置すればよい(図89(a)、(b))。
(6)配列固定の制約がある場合には(図90(a)に示される奇数Z番号の部品A〜C及び図90(b)に示される偶数Z番号の部品D、Eが配列固定の対象部品とする)、以下の通りとなる。
(7)配列固定の対象となっている部品を、奇数Z番号及び偶数Z番号それぞれについて、それを収めたダブルカセット単位で抜き取り、右端に置く(図91(a)、(b))。
(8)奇数側だけについて、非固定の部品テープ540を実Z軸上に戻す(図92(a))。偶数側はそのまま(図92(b))。
(9)「山」の隙間を詰め、奇数側及び偶数側それぞれの部品ヒストグラム541a、541bを得る(図93(a)、(b))。
このとき、奇数側の「山」については、ダブルカセットの単位で隙間を詰めることができるが(図93(a))、偶数側の「山」については、奇数側の「山」541aに合わせて詰めることとするため、隙間は残ることがある(図93(b))。
(10)偶数側の部品テープを送りピッチ毎に並べ直し、部品ヒストグラム541cを得る(図94(b))。奇数側はそのまま(図94(a))。
具体的には、偶数側において、送りピッチが2mmの部品テープについて、実Z軸上に存在する部品テープと、配列固定対象の部品テープと一緒に抜かれた配列固定対象でない部品テープとを合わせて、部品数の大きい順に並べ直し、送りピッチが2mmのダブルカセットの偶数側に収める。
偶数側の送りピッチが4mmの部品テープについても、送りピッチが2mmの部品テープと同様に処理を行う。
その結果、ダブルカセット(43,44)、(45,46)、(47,48)が不要となる。
3.9.12 LL制約:吸着方法の変更(1)
(2)Z(Z番号)と同数のフラグを設け、Zとフラグを1対1に対応させる。
(3)左ブロック内の実装点について下記の処理を行う。
(3.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(3.2)LL制約領域に含まれない実装点の個数を数え、Nfとする( fはfreeの意味)。
(3.3)LL制約領域に含まれる実装点の個数を数え、Nrとする( rはrestrictedの意味)。
(3.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(3.4.1)NfとNrの両方がゼロでない場合
(i) LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最大のZ番号をZmaxとする。
(ii) PfをNfから引く。
(iii)Zmaxよりも大きいZに存在し、かつ、LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
(iv)PrをNrから引く。
(3.4.2)Nfがゼロでなく、Nrがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(3.4.3)Nfがゼロであり、Nrがゼロでない場合
(ii)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
ヘッド1〜6には、吸着しない。
(ii)吸着した実装点数PrをNrから引く。
(3.4.4)NfとNrがゼロである場合
左ブロックに対する処理を終了する。
(4)右ブロック内の実装点について下記の処理を行う。
(4.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(4.2)LL制約領域に含まれない実装点の個数を数え、Nfとする( fはfreeの意味)
(4.3)LL制約領域に含まれる実装点の個数を数え、Nrとする( rはrestrictedの意味)。
(4.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(4.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最大のZ番号をZminとする。
(ii)PrをNrから引く。
(iii)Zminよりも小さいZに存在し、かつ、LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
(iv)PfをNfから引く。
(4.4.2)Nfがゼロでなく、Nrがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(4.4.3)Nfがゼロであり、Nrがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
ヘッド1〜6には、吸着しない。
(ii)吸着した実装点数PrをNrから引く。
(4.4.4)NfとNrがゼロである場合
右ブロックに対する処理を終了する。
(5)終了
3.9.13 LL制約:吸着方法の変更(2)
(1)Z(Z番号)と同数のフラグを設け、Zとフラグを1対1に対応させる。
(2)左ブロック内の実装点について下記の処理を行う。
(2.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(2.2)LL制約領域に含まれない実装点の個数を数え、Nfとする( fはfreeの意味)。
(2.3)LL制約領域に含まれる実装点の個数を数え、Nrとする( rはrestrictedの意味)。
(2.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(2.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZfとする。
(ii)PfをNfから引く。
(iii)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZrとする。
(iv)PrをNrから引く。
(v)Zf ≦ Zrであれば、ヘッド1〜6、ヘッド7〜10の順にNCデータを並べる。
ヘッド1〜6、ヘッド7〜10の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(vi)Zf > Zrであれば、ヘッド7〜10、ヘッド1〜6の順にNCデータを並べる。
ヘッド7〜10、ヘッド1〜6の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(2.4.2)Nfがゼロでなく、Nrがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(2.4.3)Nfがゼロであり、Nrがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
4点吸着タスクが多数できてしまう場合がある。
(ii)吸着した実装点数PrをNrから引く。
(2.4.4)NfとNrがゼロである場合
左ブロックに対する処理を終了する。
(3)右ブロック内の実装点について下記の処理を行う。
(3.1)Zに配置された部品テープについて、以下の処理を行う。
・Zに部品テープが配置されていない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持たない場合、フラグをFALSEとする。
・LL制約領域に含まれる実装点を持つ場合、フラグをTRUEにする。
(3.2)LL制約領域に含まれない実装点の個数を数え、Nfとする( fはfreeの意味)
(3.3)LL制約領域に含まれる実装点の個数を数え、Nrとする( rはrestrictedの意味)。
(3.4)NfとNrのどちらかがゼロでない場合、以下の処理を繰り返す。
(3.4.1)NfとNrの両方がゼロでない場合
(i)LL制約領域に含まれる実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZrとする。
(ii)PrをNrから引く。
(iii)LL制約領域に含まれない実装点を対象として、6点吸着の刈り上げを行い、Z番号の順にヘッド1〜6に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜6に満載できるように、複数回、吸着を行う。
吸着した実装点が存在したZ番号のうち、最小のZ番号をZfとする。
(iv)PfをNfから引く。
(v)Zf ≦ Zrであれば、ヘッド7〜10、ヘッド1〜6の順にNCデータを並べる。
ヘッド7〜10、ヘッド1〜6の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(vi)Zf > Zrであれば、ヘッド1〜6、ヘッド7〜10の順にNCデータを並べる。
ヘッド1〜6、ヘッド7〜10の順に吸着する。
吸着順序は実装順序と一致し、実装順序は、NCデータの順序である。
(3.4.2)Nfがゼロでなく、Nrがゼロである場合
(i)すべての実装点を対象として、10点吸着の刈り上げを行い、Z番号の順にヘッド1〜10に割り当てる。
吸着した実装点の数をPfとする。
ヘッド1〜10に満載できるように、複数回、吸着を行う。
(ii)吸着した実装点数PfをNfから引く。
(3.4.3)Nfがゼロであり、Nrがゼロでない場合
(i)すべての実装点を対象として、4点吸着の刈り上げを行い、Z番号の順にヘッド7〜10に割り当てる。
吸着した実装点の数をPrとする。
ヘッド7〜10に満載できるように、複数回、吸着を行う。
4点吸着タスクが多数できてしまう場合がある。
(ii)吸着した実装点数PrをNrから引く。
(3.4.4)NfとNrがゼロである場合
右ブロックに対する処理を終了する。
(4)終了
3.9.14 LL制約:Z軸上の部品テープの入れ替え(1)
(1)この段階までに、「刈り上げ法」により、すべての山が確定しているものとする。
(2)Aブロックについて、位置Z = 1〜11について、以下の処理を行う。
(2.1)位置Zに存在する部品テープを部品テープKとし、部品テープKに属する実装点のX座標の最大値Xmaxを求める。
位置Zに部品テープが存在しなければ、Xmax = 0とする。
(2.2)Xmax ≦ 400.0[mm]である場合
(部品テープKがLL制約領域に存在する実装点を持たない場合)
(2.2.1)何もしない。
ノズル1で実装できる実装点のX座標の最大値が400.0[mm]である。
(2.3)Xmax > 400.0[mm]である場合
(部品テープKがLL制約領域に存在する実装点を持つ場合)
(2.3.1)部品テープKを含む山Mを構成し、かつ、Z = 12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品テープKと部品数が近い部品テープを見つけ、それと部品テープKを入れ替える。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.2)見つからない場合、Aブロックに存在し、かつ、山Mではない山を構成し、かつ、Z = 12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.3)見つからない場合、Bブロックに存在する山を構成する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
1つのタスクについて、AブロックとBブロックの両方から吸着する場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(2.3.4)見つからない場合、実装不可能とする。
(3)終了する。
3.9.15 LL制約:Z軸上の部品テープの入れ替え(2)
(1)この段階までに、「刈り上げ法」により、すべての山が確定しているものとする。
(2)タスクを生成する。
(3)各タスクのヘッド番号と位置Zの対応を調べて、位置Zのそれぞれについて、そこから実装点を吸着するヘッド番号の最小値を求める。
(4)Aブロックについて、位置Z = 1〜11について、以下の処理を行う。
(4.1)位置Zに存在する部品テープを部品テープKとし、部品テープKに属する実装点のX座標の最大値Xmaxを求める。
位置Zに部品テープが存在しなければ、Xmax = 0とする。
(4.2)位置Zから実装点を吸着する、最小のヘッド番号で装着できるX座標の最大値をXhとする。
(4.3)Xmax ≦ Xhである場合
(部品テープKがLL制約領域に存在する実装点を持たない場合)
(4.3.1)何もしない。
(4.4)Xmax > Xhである場合
(部品テープKがLL制約領域に存在する実装点を持つ場合)
(4.4.1)部品テープKを含む山Mを構成し、かつ、Z = 12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品テープKと部品数が近い部品テープを見つけ、それと部品テープKを入れ替える。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.2)見つからない場合、Aブロックに存在し、かつ、山Mではない山を構成し、かつ、Z = 12以降に存在する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとの入れ替えとなる場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.3)見つからない場合、Bブロックに存在する山を構成する部品テープの中から、LL制約領域に実装点を持たず、かつ、部品数が最小の部品テープを見つけ、それと入れ替える。
異なる部品グループの部品テープとのm入れ替えとなる場合がある。
1つのタスクについて、AブロックとBブロックの両方から吸着する場合がある。
ダブルカセットを使用する部品テープの場合は、送りピッチが一致することも必要である。
(4.4.4)見つからない場合、実装不可能とする。
(5)終了する。
3.9.16 XLサイズ基板への対応(XL制約)
下記の方法により、XL制約を回避する。
(1)実装点座標による前サブ設備110/後サブ設備120への割り当て
(2)実装点座標による部品分割
(3)前サブ設備110と後サブ設備120の両方で実装できる領域を利用した初期振り分け
(4)LL制約の回避
具体的には、以下の通りである。
(1)実装点座標による前サブ設備110/後サブ設備120への割り当て
いま、実装点座標による前サブ設備110/後サブ設備120への割り当ては、図46に示されるテーブルとする。
(2)実装点座標による部品分割
(2.1)部品テープが持つ実装点座標によって、次の3通りがある。
(i)部品テープを前サブ設備110へ割り当てる。
(ii)部品テープを後サブ設備120へ割り当てる。
(iii)部品テープを前サブ設備110と後サブ設備120の分割して割り当てる。
(2.2)上記(3)の場合、部品分割が必要となる。部品数を前サブ設備110/後サブ設備120へ配分するのではなく、実装点そのものを前サブ設備110/後サブ設備120へ配分する。
(3)前サブ設備110と後サブ設備120の両方で実装できる領域を利用した初期振り分け
(3.1)図46に示された領域1)2)に対応する部品テープを前サブ設備110に振り分ける。
(3.1.1)領域1)2)に対応する部品テープ毎に負荷レベルを計算し、その合計を前サブ設備110の負荷レベルとする。
(3.2)領域6)7)に対応する部品テープを後サブ設備120に振り分ける。
(3.2.1)領域6)7)に対応する部品テープ毎に負荷レベルを計算し、その合計を前サブ設備110の負荷レベルとする。
(3.3)領域4)5)6)に対応する部品テープを、部品グループの順に、部品数の多い順に、置けるだけ、前サブ設備110のZに配置する。
(3.3.1)置いた部品テープの負荷レベルを計算し、前サブ設備110の負荷レベルに加算する。
(3.4)領域4)5)6)に対応する部品テープの中で、前サブ設備110に配置できなかった部品テープは、後サブ設備120のZに配置する。
(3.4.1)置いた部品テープの負荷レベルを計算し、後サブ設備120の負荷レベルに加算する。
もしも、後サブ設備120に置ききれなかったら、エラーとする。
(3.5)(前サブ設備110の負荷レベル)<(後サブ設備120の負荷レベル)である場合
(3.5.1)これ以上、バランスは良くならないので、終了する。
(3.6)(前サブ設備110の負荷レベル)>(後サブ設備120の負荷レベル)である場合、以下の処理を繰り返す。
(3.6.1)前サブ設備110にある領域4)5)6)に対応する部品テープの中で、最大の部品グループ番号であり、かつ、部品数が最小の部品テープを後サブ設備120へ送る。
もしも、後サブ設備120に送れなくなったら(=後サブ設備120のZの空きがなくなったら)、これ以上、バランスは良くならないので、終了とする。
(3.6.2)前サブ設備110の負荷レベルと後サブ設備120の負荷レベルを再計算する。
(4)LL制約の回避
(4.1)前サブ設備110における領域2)5)は、LL制約領域なので、LL制約に対応した処理を行う。
(4.2)後サブ設備120における領域3)6)は、LL制約領域なので、LL制約に対応した処理を行う。
3.9.17 負荷レベルバランス調整処理(「山」単位)
特徴は以下の通りである。
(i)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも高い状態を初期状態として、前サブ設備110から後サブ設備120へ「山」種単位で移動することにより、負荷レベルバランスを調整する。
(ii)バランス点上に存在する「山」について、部品テープ単位で負荷レベルバランス調整を行う。詳細は、後述の「負荷レベルバランス調整処理(部品テープ単位)(A)」で説明している通りである。
具体的な手順は以下の通りである。
(1)すべての山にフラグを設ける。
フラグの初期値はTRUEとする。
(2)前サブ設備110に配置された、すべての山のフラグがFALSEである場合、以下の処理を行う。
(2.1)(15)へ進む。
前サブ設備110に配置されていたすべての山が後サブ設備120に移動された場合になる(これはありえないはず)。
(3)現在の前サブ設備110と後サブ設備120の山の配置状態を記憶する。
(4)移動対象となる山Mを選ぶ処理を以下のように行う。
(4.1)前サブ設備110に配置された山を構成する部品テープについて、その部品グループ番号の最大値を求め、PGmaxとする。
(4.2)部品グループ番号がPGmaxである部品テープを収めたシングルカセットまたはダブルカセットから構成された山について、すべての山のフラグがFALSEである場合、以下の処理を行う。
(4.2.1)前サブ設備110から後サブ設備120への山を移動する処理を終了する。
移動対象となる山が残っていないので、前サブ設備110から後サブ設備120への山を移動する処理を終了する。
ラインバランスが取れているとは限らない。
(4.3)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と、「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」の両方が存在する場合
(4.3.1)シングルカセットから構成される山を山Mとする。
(4.4)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」のどちらか一方だけが存在する場合
(4.4.1)その山を山Mとする。
(5)前サブ設備110に配置されている山の中から山Mを取り除き、残りの山を再配置する。(6)後サブ設備120に配置されている山に山Mを加えて、それらの山を再配置する。
(7)前サブ設備110あるいは後サブ設備120において、ノズル関係の制約を満足できない場合、以下の処理を行う。
(7.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(7.2)山MのフラグをFALSEに設定する。
この山Mは、これ以降、移動の対象にならない。
(7.3)(14)へ進む。
(8)前サブ設備110あるいは後サブ設備120において、山をZ軸に置ききれない場合、以下の処理を行う。
(8.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(8.2)(15)へ進む。
移動できる山は、山Mしかないので、山Mを部品テープ単位に分割し、前サブ設備110と後サブ設備120へ振り分けることで、ラインバランスを改善することを試みる。
この山Mはラインバランス点上にあるとは限らないので、ラインバランスを改善できても、ラインバランスを完全にすることはできない可能性がある。
(9)前サブ設備110の負荷レベルを計算する。
(9.1)小部品について負荷レベルを計算する。
(9.2)汎用部品について負荷レベルを計算する。
(9.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、前サブ設備110の負荷レベルとる。
(10)後サブ設備120の負荷レベルを計算する。
(10.1)小部品について負荷レベルを計算する。
(10.2)汎用部品について負荷レベルを計算する。
(10.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、後サブ設備120の負荷レベルとする。
(11)前サブ設備110の実装時間と後サブ設備120の負荷レベルが一致した場合、以下の処理を行う。
(11.1)(15)へ進む。
前サブ設備110と後サブ設備120の負荷レベルのバランスが完全に取れたことになる
(12)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも小さい場合、以下の処理を行う。
(12.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(12.2)山Mに対して「負荷レベルバランス調整処理(部品テープ単位)」を行う。
バランス点上に存在する「山」について、部品テープ単位で負荷レベルバランス調整を行う。詳細は、後述の「負荷レベルバランス調整処理(部品テープ単位)(A)」で説明している通りである。
(12.3)(15)へ進む。
山Mがラインバランス点上にあることになる。
山Mが前サブ設備110に配置された状態に戻す。
これ以降、山Mを部品テープ単位に分割し、前サブ設備110と後サブ設備120へ振り分けることで、ラインバランスを改善することを試みる。
(13)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも長い場合、以下の処理を行う。
(13.1)山MのフラグをFALSEに設定する。
山Mは移動済みとする。
(13.2)(14)へ進む。
更に山単位での移動を行う。
(14)上記(2)へ戻る。
(15)「負荷レベルバランス調整処理(「山」単位)」を終了する。
3.9.18 負荷レベルバランス調整処理(部品テープ単位)
特徴は以下の通りである。
(i)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも高い状態を初期状態として、前サブ設備110から後サブ設備120へ部品テープ単位で移動することにより、負荷レベルバランスを調整する。
(ii)負荷レベルの精度が良くないので、実装点単位の負荷レベルバランス調整は行わない。
具体的な手順は以下の通りである。
(1)山Mを構成する部品テープにフラグを設ける。
フラグの初期値はTRUEとする。
(2)山Mの部品(種)リストを作成する。
(3)部品リストにある、すべての部品テープのフラグがFALSEである場合、以下の処理を行う。
(3.1)(13)へ進む。
「負荷レベルバランス調整処理(部品テープ単位)」を終了する。
(4)前サブ設備110と後サブ設備120の山の配置状態を記憶する。
(5)部品リストにある、フラグがTRUEである部品テープの中から、部品数が最小の部品テープKを選ぶ。
(6)部品テープKを後サブ設備120に割り当てる。
(7)部品リストに残っている、フラグがTRUEであり、かつ、前サブ設備110にも後サブ設備120にも割り当てられていない部品テープを前サブ設備110に割り当てる。
山M以外の山は、前サブ設備110あるいは後サブ設備120に割り当てられている。
(8)前サブ設備110について、負荷レベルを計算する。
(8.1)小部品の負荷レベルを計算する。
(8.2)汎用部品の負荷レベルを計算する。
(8.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、前サブ設備110の負荷レベルとする。
(9)後サブ設備120について、負荷レベルを計算する。
(9.1)小部品の負荷レベルを計算する。
(9.2)汎用部品の負荷レベルを計算する。
(9.3)小部品の負荷レベルと汎用部品の負荷レベルを加算し、後サブ設備120の負荷レベルとする。
(10)前サブ設備110の負荷レベルと後サブ設備120の負荷レベルが同じ場合、以下の処理を行う。
(10.1)(13)へ進む。
前サブ設備110と後サブ設備120の負荷レベルのバランスが完全に取れたことになる。
(11)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも低い場合、以下の処理を行う。
(11.1)部品テープKのフラグをFALSEに設定する。
部品テープKは移動済みとする。
(11.2)(13)へ進む。
部品テープKを前サブ設備110から後サブ設備120へ移動したことにより、前サブ設備110よりも後サブ設備120の負荷レベルが高くなったので、部品テープ単位の移動による、負荷レベルバランス調整を終了する。
(12)前サブ設備110の負荷レベルが後サブ設備120の負荷レベルよりも高い場合、以下の処理を行う。
(12.1)部品テープKのフラグをFALSEに設定する。
部品テープKは移動済みとする。
(12.2)(3)に戻る。
更に部品テープ単位での移動を行う。
(13)「負荷レベルバランス調整処理(部品テープ単位)」を終了する。
3.9.19 前サブ設備から後サブ設備へ山を移動する処理
(1)すべての山にフラグを設ける。
フラグの初期値はTRUEとする。
(2)前サブ設備110に配置された、すべての山のフラグがFALSEである場合、以下の処理を行う。
(2.1)(16)へ進む。
前サブ設備110に配置されていたすべての山が後サブ設備120に移動された場合になる(これはありえないはず)。
(3)現在の前サブ設備110と後サブ設備120の山の配置状態を記憶する。
(4)移動対象となる山Mを選ぶ処理を以下のように行う。
(4.1)前サブ設備110に配置された山を構成する部品テープについて、その部品グループ番号の最大値を求め、PGmaxとする。
(4.2)部品グループ番号がPGmaxである部品テープを収めたシングルカセットまたはダブルカセットから構成された山について、すべての山のフラグがFALSEである場合、以下の処理を行う。
(4.2.1)前サブ設備110から後サブ設備120への山を移動する処理を終了する。
移動対象となる山が残っていないので、前サブ設備110から後サブ設備120への山を移動する処理を終了する。
ラインバランスが取れているとは限らない。
(4.3)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と、「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」の両方が存在する場合
(4.3.1)シングルカセットから構成される山を山Mとする。
(4.4)「部品番号がPGmaxである部品テープを収めたシングルカセットから構成される山」と「部品番号がPGmaxである部品テープを収めたダブルカセットから構成される山」のどちらか一方だけが存在する場合
(4.4.1)その山を山Mとする。
(5)前サブ設備110に配置されている山の中から山Mを取り除き、残りの山を再配置する。(6)後サブ設備120に配置されている山に山Mを加えて、それらの山を再配置する。
(7)前サブ設備110あるいは後サブ設備120において、ノズル関係の制約を満足できない場合、以下の処理を行う。
(7.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(7.2)山MのフラグをFALSEに設定する。
この山Mは、これ以降、移動の対象にならない。
(7.3)(15)へ進む。
(8)前サブ設備110あるいは後サブ設備120において、山をZ軸に置ききれない場合、以下の処理を行う。
(8.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(8.2)(16)へ進む。
移動できる山は、山Mしかないので、山Mを部品テープ単位に分割し、前サブ設備110と後サブ設備120へ振り分けることで、ラインバランスを改善することを試みる。
この山Mはラインバランス点上にあるとは限らないので、ラインバランスを改善できても、ラインバランスを完全にすることはできない可能性がある。
(9)前サブ設備110について、タスクを生成する。
(9.1)小部品についてタスクを生成する。
(9.2)汎用部品についてタスクを生成する。
(10)後サブ設備120について、タスクを生成する。
(10.1)小部品についてタスクを生成する。
(10.2)汎用部品についてタスクを生成する。
(11)前サブ設備110と後サブ設備120について、実装時間を計算する。
前サブ設備110と後サブ設備120の両方で山が配置できている場合である。
(12)前サブ設備110の実装時間と後サブ設備120の実装時間が一致した場合、以下の処理を行う。
(12.1)(16)へ進む。
前サブ設備110と後サブ設備120のバランスが完全に取れたことになる
(13)前サブ設備110の実装時間が後サブ設備120の実装時間よりも短い場合、以下の処理を行う。
(13.1)前サブ設備110と後サブ設備120の山の配置状態を記憶しておいた状態へ戻す。
(13.2)山Mに対して「前サブ設備110から後サブ設備120へ部品テープを移動する処理」を行う。
(13.3)(16)へ進む。
山Mがラインバランス点上にあることになる。
山Mは、前サブ設備110に配置された状態に戻す。
これ以降、山Mを部品テープ単位に分割し、前サブ設備110と後サブ設備120へ振り分けることで、ラインバランスを改善することを試みる。
(14)前サブ設備110の実装時間が後サブ設備120の実装時間よりも長い場合、以下の処理を行う。
(14.1)山MのフラグをFALSEに設定する。
(14.2)(15)へ進む。
前サブ設備110から後サブ設備120へ更に山を移動する必要がある場合である。
(15)上記(2)へ戻る。
(16)「前サブ設備110から後サブ設備120への山を移動する処理」を終了する。
3.9.20 前サブ設備から後サブ設備へ部品テープを移動する処理
特徴は以下の通りである。
(i)前サブ設備110の実装時間が後サブ設備120の実装時間よりも長い状態を初期状態として、前サブ設備110から後サブ設備120へ部品テープ単位で移動することにより、実装時間のバランスを調整する。
(ii)移動する部品テープの個数は少ないとはいえない。後サブ設備120に移動する部品テープが多い。
部品テープを前サブ設備110と後サブ設備120に配置することがある。部品分割を行う。
(iii)バランスは良い。
具体的な手順は以下の通りである。
(1)山Mを構成する部品テープにフラグを設ける。
フラグの初期値はTRUEとする。
(2)山Mの部品(種)リストを作成する。
(3)部品リストにある、すべての部品テープのフラグがFALSEである場合、以下の処理を行う。
(3.1)(14)へ進む。
「前サブ設備110から後サブ設備120へ部品テープを移動する処理」を終了する。
(4)前サブ設備110と後サブ設備120の山の配置状態を記憶する。
(5)部品リストにある、フラグがTRUEである部品テープの中から、部品数が最小の部品テープKを選ぶ。
(6)部品テープKを後サブ設備120に割り当てる。
(7)部品リストに残っている、フラグがTRUEであり、かつ、前サブ設備110にも後サブ設備120にも割り当てられていない部品テープを前サブ設備110に割り当てる。
山M以外の山は、前サブ設備110あるいは後サブ設備120に割り当てられている。
(8)前サブ設備110について、タスクを生成する。
(8.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(8.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(9)後サブ設備120について、タスクを生成する。
(9.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(9.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(10)前サブ設備110の実装時間と後サブ設備120の実装時間を計算する。
(11)前サブ設備110の実装時間と後サブ設備120の実装時間が同じ場合、以下の処理を行う。
(11.1)(14)へ進む。
前サブ設備110と後サブ設備120のバランスが完全に取れたことになる。
(12)前サブ設備110の実装時間が後サブ設備120の実装時間よりも短い場合、以下の処理を行う。
(12.1)部品テープKのフラグをFALSEに設定する。
部品テープKは、移動済みとする。
(12.2)部品テープKに対して「前サブ設備110から後サブ設備120へ実装点を移動する処理」を行う。
部品テープKを前サブ設備110から後サブ設備120へ移動したことにより、前サブ設備110よりも後サブ設備120の実装時間が長くなったので、部品テープKを分割し、前サブ設備110と後サブ設備120に振り分けて、ラインバランスを改善する。
(12.3)(14)へ進む。
(13)前サブ設備110の実装時間が後サブ設備120の実装時間よりも長い場合、以下の処理を行う。
(13.1)部品テープKのフラグをFALSEに設定する。
部品テープKは、移動済みとする。
(13.2)(3)に戻る。
更に部品テープ単位での移動を行う。
(14)「前サブ設備110から後サブ設備120へ部品テープを移動する処理」を終了する。
3.9.21 前サブ設備から後サブ設備へ実装点を移動する処理
部品テープKを実装点単位で分割し、前サブ設備110と後サブ設備120に振り分ける処理を以下のように行う。
(1)実装点をy座標の小さい順に並べる。
(1.1)y座標が同じ場合はx座標の小さい順に並べる。
これを実装点リストを呼ぶ。
部品テープKを実装点単位で分割し、前サブ設備110と後サブ設備120に振り分けた場合、前サブ設備110または後サブ設備120に、部品テープKが1つだけ配置される可能性がある。そのような場合、実装点の近い実装点が集まっていたほうが有利と考えられるので、ここでは実装点をその座標で並べ替えた。
もしも「貪欲法」において、前サブ設備110と後サブ設備120に在る同じ部品テープについて、共通に適用されるのであれば、この並べ替えは不要である。前サブ設備110と後サブ設備120とで独立に「貪欲法」を適用するのであれば、この並べ替えが有効である。
(2)前サブ設備110に割り当てる実装点の個数を示す値nに1を設定する。
(3)nが部品テープKの実装点数よりも大きい場合、以下の処理を行う。
(3.1)(12)へ進む。
「前サブ設備110から後サブ設備120へ実装点を移動する処理」を終了する。
(4)実装点リストの先頭からn番目までの実装点を前サブ設備110へ割り当てる。
(5)実装点リストの(n+1)番目から最後までの実装点を後サブ設備120へ割り当てる。
(6)前サブ設備110について、タスクを生成する。
(6.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(6.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(7)後サブ設備120について、タスクを生成する。
(7.1)小部品のタスクを生成する。
コア処理により部品分割が行われる。
(7.2)汎用部品のタスクを生成する。
ユーザの指定通りに部品分割を行う。
(8)前サブ設備110の実装時間と後サブ設備120の実装時間を計算する。
(9)前サブ設備110の実装時間と後サブ設備120の実装時間が同じ場合、以下の処理を行う。
(9.1)(12)へ進む。
「前サブ設備110から後サブ設備120へ実装点を移動する処理」を終了する。
前サブ設備110と後サブ設備120のバランスが完全に取れたことになる。
(10)前サブ設備110の実装時間が後サブ設備120の実装時間よりも短い場合、以下の処理を行う。
(10.1)(12)へ進む。
「前サブ設備110から後サブ設備120へ実装点を移動する処理」を終了する。
前サブ設備110と後サブ設備120のバランスは、かなり良くなっているが、完全ではない。
(11)前サブ設備110の実装時間が後サブ設備120の実装時間よりも長い場合、以下の処理を行う。
(11.1)nに1を加算する。
(11.2)(3)に戻る。
前サブ設備110から後サブ設備120へ更に実装点を移動する。
(12)「前サブ設備110から後サブ設備120へ実装点を移動する処理」を終了する。
3.9.22 ラインバランス処理でのスワップ処理
次に、移動先のZ軸に空きがない場合におけるラインバランス処理(スワップ処理)について、Z軸に空きがある場合と比較しながら説明する。
図95(a),(b)は、Z軸に空きがある場合における前サブ設備110と後サブ設備120の実装時間の例、及び、そのときのラインバランス処理を示す説明図であり、図95(c),(d)は、Z軸に空きがない場合における前サブ設備110と後サブ設備120の実装時間の例、及び、そのときのラインバランス処理(スワップ処理)を示す説明図である。
Z軸に空きがある場合は、図95(a),(b)に示されるように、上述(3.9.19〜3.9.21)の移動処理の通りであり、この例では、両実装時間の差を解消するために、7.5秒分の部品545を前サブ設備110から後サブ設備120に移動することによってバランスをとる。
一方、Z軸に空きがない場合は、図95(c),(d)に示されるように、前サブ設備110に振り分けられている部品数の多い部品547と、後サブ設備120に振り分けられている部品数の少ない部品546とを、部品カセット(部品テープ)の単位で、スワップする。これによって、それら部品数の差に相当する実装時間が前サブ設備110から後サブ設備120に移動することとなり、実装時間が平準化される。
3.9.23 ダブルカセットの「刈り上げ法」
ダブルカセットを対象とした「刈り上げ法」は以下の通りである。
(1)送りピッチが2mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(図96)。つまり、部品数の多い順に並べた部品ヒストグラム550を中間点(折り返し位置)で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成する(折り返すことでペアを作成する)ことで、部品ヒストグラム551を得る。
(2)同様にして、送りピッチが4mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(図97))。つまり、部品数の多い順に並べた部品ヒストグラム552を中間点(折り返し位置)で切断して折り返し、それら前半部及び後半部の各部品が交互に入れ違いとなるように合成する(折り返すことでペアを作成する)ことで、部品ヒストグラム553を得る。
(3)送りピッチが2mmと4mmのダブルカセットの部品ヒストグラム551、553を融合し、部品ヒストグラム554を得る(図98)。つまり、ダブルカットのペアを維持したまま、奇数Z番号側の部品テープの部品数が多い順に並べ替える。
(4)奇数Z番号のヒストグラム554a(図99(a))と、偶数Z番号のヒストグラム554b(図99(b))に分離する。
(5)各ヒストグラム554a、554bにおいて、部品数の小さい部品テープから刈り上げていくことで、10点同時吸着の吸着パターンを作っていく(図100(a)、(b))。その結果、それぞれのヒストグラムにおいて、コア部分555a、555bが残る。
(6)奇数側のコア部分555a及び偶数側のコア部分555bそれぞれについて、補完パターン556a、556bを作る(図101(a)、(b))。つまり、コア部分の実装点数は、奇数側が92点、偶数側が12点であり、合計で104点となっているので、10点タスクを10個作る(4点タスクが1つ残す)。
ここでは、偶数側のコア555bの部品数は最大で3なので、偶数側に10点タスクを3個作り、残りのタスクは奇数側に作る。
(7)奇数側及び偶数側の補完部品テープ557a、557bを並べる(図102(a)、(b))。本図において、補完部品テープは、奇数側では、「*」で示され、偶数側では、「#」で示されている。
なお、本図のように、奇数側と偶数側の補完部品テープの本数が一致しない場合がある。
(8)奇数側の補完部品テープ557aに偶数側の補完部品テープ557bを重ねることで、1つの補完部品テープ5558にする(図103(a)、(b))。
(9)合成された補完部品テープ558に実装点を割り当てる(図104(a)、(b))。
このとき、奇数側と偶数側で合成した補完部品テープは、1つの部品テープだけで構成されている。したがって、合成を解除(分割)して、奇数側と偶数側の補完テープを作ると、それらは送りピッチが必ず一致するので、ペアとしてダブルカセットに収めることができる。
(10)合成された補完部品テープを奇数側558aと偶数側558bに分割する(図105(a)、(b))。
(11)奇数側及び偶数側のヒストグラムに対して、それぞれ、吸着パターン559a、559bを作る(図106(a)、(b))。
このようなカセット配列とすることで、2つの部品テープがダブルカセットに収納される際には同一の送りピッチの部品テープだけが収納されなければならないという制約が満たされ、かつ、少ない吸着パターン(同時吸着できる頻度が高い)で実装される。
3.9.24 ノズル交換のアルゴリズム
図11に示されるように、部品の種類によって、吸着可能なノズルのタイプが限定される。従って、マルチ装着ヘッド112は、部品を吸着するに際し、予め、吸着しようとする部品テープに対応したタイプのノズルを装着しておく(ノズルステーションにおいてノズル交換しておく)必要がある。
よって、最適化においては、ノズル交換の頻度を抑制するように、部品テープの配列を決定しておく処理が必要となる。そのためのアルゴリズム(「ノズル交換のアルゴリズム」)は以下の通りである。
図107は、ノズル交換のアルゴリズムを説明するための図であり、図107(a)は、対象の部品の種類(使用可能なノズルの番号)と部品数を示す表であり、図107(b)は、処理過程を示す部品ヒストグラムである。ここで、図107(b)の部品に付された数値はノズル番号を示し、矢印は部品分割による吸着パターンの作成処理を示し、円で囲まれた数値は吸着パターンを指す。ここでは、「刈り上げ法」の応用で対応している。具体的には、
1)まず、大型部品であるために「隣接の条件」で10個単位にできないものは対象から除外する。ここで、「隣接の条件」とは、部品がヘッドによって吸着・移動・装着される際に確保すべき空間的なクリアランスであり、実装時における部品どうしの接触等を避けるために確保すべき空間的なマージンである。
2)ノズル単位で部品数順に並べる。
ここでは、部品の種類(使用可能なノズルの番号)と部品数は図107(a)に示される通りであるので、図107(b)における左の5列分の部品並びとなる。
3)トータル部品数からタスク数の枠を作成する。
この例では、合計部品数が67個であるので、70個の枠を作成する。
4)10ノズルを満たすように、部品数の多い部品から山を崩す。
具体的なルールは以下の通りである。
・部品数の多いものから(ここでは、部品番号5から)枠に入るように上部からつめる。
・この時、最大分割制約と同様に、手持ちノズル本数とする。つまり、この制約の中で分割を実施する。
5)最終的に、枠を決めた中に収めるようにする。
これにより、タスク数は最小のタスクの中に収まることとなる。
6)上記の手順は、あくまでノズル構成を考慮した最適化であるので、次に、ノズルの配置及びタスクの順番について、大型部品を含めて構成を見直す。
具体的には、大型部品については、上記で決定されたタスク構成の中で、間に入れるなどの処理をする。
7)この例では、タスクの順番を見直すことにより、ノズルチェンジは1回のみ(6)→7)の間でのみ)ノズル交換が発生する。
3.10 画面表示例
次に、本最適化装置300が有するユーザインターフェースの機能を説明する。つまり、最適化プログラム格納部305に格納された最適化プログラムに基づいて、最適化装置300がユーザと対話するために、演算制御部301が表示部302に表示する画面表示例や入力部303を介してユーザから取得するパラメータを中心に説明する。
3.10.1 メイン画面
この画面では、図108に示されるように、最適化装置300は、最適化の状態及び品種プログラムの情報を表示する。各表示項目(以下、[]で囲まれた項目)及びその表示項目を選択したときに表示されるポップアップメニューから選択することができる項目(以下、*が添付された項目)の意味(最適化装置300の処理)は、以下の通りである。
1) メニュー
[ファイル]
*開く
ユーザから品種プログラム(最適化の対象となる実装点データ307aなど)や各種ライブラリ(部品ライブラリ307bなど)の選択を取得し、選択された品種プログラムを読込む。読込み結果(品種プログラム名、実装点数、部品種類、設備情報、最適化情報)をメイン画面に表示する。
*上書き保存
上書き確認メッセージで「はい」が押下された場合、最適化された品種プログラムを上書き保存する。
*名前を付けて保存
名前を付けて保存画面を表示し、最適化された品種プログラムを入力された保存ファイル名で保存する。
*閉じる
選択中の品種プログラムを閉じる。
*最適化の終了
アプリケーションを終了する。
[最適化]
*最適化
読込んだ品種プログラム情報を最適化し、その最適化結果のシミュレーションを実行して、結果をメイン画面に表示する。最適化を行う前に、各種リソース及び最適化条件の設定を可能とするためである。
*停止
最適化を停止する。
*最適化詳細情報
最適化詳細情報画面を表示する。
[設定]
最適化リソースの設定と最適化条件の設定を行う。
・リソース
*カセット個数設定
カセット個数設定画面を表示する。これに対し、ユーザは、本設備で使用可能なカセット個数を入力することができる。
*部品分割数設定
部品分割数設定画面を表示する。これに対し、ユーザは、同時吸着するための部品分割数を指定することができる。
*ノズル本数設定
ノズル本数設定画面を表示する。これに対し、ユーザは、本設備で使用可能なノズル本数を入力することができる。
*ノズルステーション選択
ノズルステーション選択画面を表示する。これに対し、ユーザは、本設備で使用可能なノズルステーションのプレートIDを入力することができる。
・最適化条件
*オプション設定
オプション設定画面を表示する。これに対し、ユーザは、本設備のオプション仕様及び最適化条件を設定することができる。
*Z軸情報
Z軸情報画面を表示する。各Z軸に配置された部品の特性を表示する。
*ノズルステーション情報
ノズルステーション情報画面を表示する。本設備のノズルステーション情報を表示する。
[印刷]
最適化情報、リソース情報等を最適化装置300が備えるプリンター等に印刷する。
*最適化詳細情報
最適化詳細情報の印刷を実行する。
*Z軸情報
Z軸情報の印刷を実行する。
*ノズルステーション情報
ノズルステーション情報の印刷を実行する。
*カセット個数情報
カセット個数情報の印刷を実行する。
*部品分割数情報
部品分割数情報の印刷を実行する。
*ノズル本数情報
ノズル本数情報の印刷を実行する。
*ノズルステーション選択情報
ノズルステーション選択情報の印刷を実行する。
[ヘルプ]
画面のバージョン、ヘルプの管理を行う。
*ヘルプ
ヘルプを起動する。
*バージョン情報
バージョン情報を表示する。
2) 最適化情報
最適化前/後の情報をサブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に表示する。
*実装時間(秒)
最適化前/後のシミュレーションした結果を表示する。
*最適化率(%)
最適化前/後の実装時間を比率(%)で表示する。
<計算式> (最適化後実装時間/最適化前実装時間)*100
*CPH(点)
1時間あたりの実装点数を表示する。
<計算式> (実装点数/実装時間)*3600(秒)
*タスク数
タスク数を表示する。
3) 設備情報
設備の情報をサブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に表示する。
*ヘッドタイプ
前/後サブ設備のヘッドタイプを表示する。(10ヘッド)
*カメラ
前/後サブ設備のカメラ状態を表示する。(2Dセンサ、2D+3Dセンサ)
*トレイ
前/後サブ設備のトレイ状態を表示する。(手置きトレイ、エレベータトレイ)
*実装点数
品種プログラム内の前/後サブ設備の実装点数を表示する。
*部品種類
品種プログラム内の前/後サブ設備の部品種類数を表示する。
4) 品種プログラム情報
現在選択中品種プログラムの情報を表示する。
*品種プログラム名
現在選択中の品種プログラム名を表示する。
*実装点数
品種プログラム内の実装点数を表示する。
*部品種類
品種プログラム内の部品種類数を表示する。
5) 最適化ボタン
読込んだ品種プログラム情報を最適化し、その最適化結果のシミュレーションを実行して、結果をメイン画面に表示する。ただし、最適化を行う前に、各種リソース及び最適化条件の設定をする必要がある。
6) 最適化詳細情報ボタン
最適化詳細情報画面を表示する。
7) 終了ボタン
アプリケーションを終了する。
3.10.2 開く画面
この画面では、図109に示されるように、最適化装置300は、品種プログラムと各種ライブラリを指定して品種プログラムを開くことができる。
1) 品種プログラム一覧
品種プログラム(ファイル名、作成日時、更新日時、容量)の一覧を表示する。
2) 品種プログラム検索
品種プログラム(先頭のPを除く)の入力後、検索ボタンを押下することにより品種プログラムの検索を行うことができる。なお、入力された文字に対して前方一致検索を行うので、プログラム名を全て入力する必要はない。
3) ライブラリ選択
登録されている各種ライブラリを表示する。
*部品ライブラリ
登録されている部品ライブラリ名を表示する。なお、頭文字は"L"から始まる。この部品ライブラリは、図9に示された部品ライブラリ307bに相当する。
*供給ライブラリ
登録されている供給ライブラリ名を表示する。なお、頭文字は"Y"から始まる。この供給ライブラリは、図9に示された実装装置情報307cを構成する情報の1つであり、部品供給部115a及びb、部品カセット、トレイ供給部117及びトレイ等の仕様に関する情報を保持している。
*マークライブラリ
登録されているマークライブラリ名を表示する。なお、頭文字は"B"から始まる。このマークライブラリは、図9に示された実装装置情報307cを構成する情報の1つであり、基板に対するマルチ装着ヘッド112の位置決め等のために使用される基板上に印刷された認識マークの形状等に関する情報を保持している。
*ノズルライブラリ
登録されているノズルライブラリ名を表示する。なお、頭文字は"V"から始まる。このノズルライブラリは、図9に示された実装装置情報307cを構成する情報の1つであり、各種吸着ノズルの形状等に関する情報を保持している。
4) 開くボタン
指定した品種プログラムを、選択したライブラリで開く。なお、品種プログラム一覧上でダブルクリックされた場合には、開くボタンと同様の処理を実行する。
5) キャンセルボタン
メイン画面に戻る。
3.10.3 最適化詳細情報画面
この画面では、図110に示されるように、最適化装置300は、サブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に、最適化詳細情報を表示する。
1) 品種プログラム情報
現在選択中品種プログラムの情報を表示する。
*品種プログラム名
現在選択中の品種プログラム名を表示する。
*実装点数
品種プログラム内の実装点数を表示する。
*部品種類
品種プログラム内の部品種類数を表示する。
2) 最適化詳細情報
最適化前/後の情報をサブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に表示する。
*実装時間(秒)
最適化前/後のシミュレーションした結果を表示する。
*最適化率(%)
最適化前/後の実装時間を比率(%)で表示する。
<計算式> (最適化後実装時間/最適化前実装時間)*100
*CPH(点)
1時間あたりの実装点数を表示する。
<計算式> (実装点数/実装時間)*3600(秒)
*タスク数
タスク数を表示する。
*ノズル交換回数
ノズル交換を行う回数を表示する。
*ノズル交換時間
ノズル交換にかかるトータルの時間を表示する。
*吸着回数
吸着を行う回数を表示する。
*吸着時間
吸着にかかるトータルの時間を表示する。
*スキャン回数
スキャンを行う回数を表示する。
*スキャン時間
スキャンにかかるトータルの時間を表示する。
3) 吸着数情報
最適化前/後の1〜10点吸着している回数を、サブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に表示する。
4) 設備情報
設備の情報をサブ設備(図中の「1st ステージ」、「2nd ステージ」)毎に表示する。
*ヘッドタイプ
前/後サブ設備のヘッドタイプを表示する。(10ヘッド)
*カメラ
前/後サブ設備のカメラ状態を表示する。(2Dセンサ、2D+3Dセンサ)
*トレイ
前/後サブ設備のトレイ状態を表示する。(手置きトレイ、エレベータトレイ)
*実装点数
品種プログラム内の前/後サブ設備の実装点数を表示する。
*部品種類
品種プログラム内の前/後サブ設備の部品種類数を表示する。
5) 印刷ボタン
最適化詳細情報の印刷を実行する。
6) キャンセルボタン
最適化詳細情報画面を終了し、メイン画面に戻る。
3.10.4 カセット個数設定画面
この画面では、図111に示されるように、最適化装置300は、ユーザの指示に従って、カセット個数情報の表示/最大個数の設定を行う。
1) カセット個数情報
カセット個数情報を表示する。カセットの隣接条件確認のため、ユーザは、部品ライブラリの供給コードを設定する。
*供給コード
カセットの供給コードを表示する。
例)
1 文字目 :種類(E:エンボス P:紙)
2、3文字目 :カセット幅(08:8mm幅)
4,5文字目 :送りピッチ(04:4mmピッチ)
6 文字目 :駆動方式(C:シリンダ)
7 文字目 :カセットタイプ(W:Wカセット)
*現在個数
現在使用しているカセット個数を表示する。
*最大個数
本設備で使用可能なカセットの最大個数を表示する。
2) 印刷ボタン
カセット個数情報の印刷を実行する。
3) OKボタン
現在表示されている最大個数を保存して、カセット個数設定画面を終了する。4) キャンセルボタン
カセット個数設定画面を終了し、メイン画面に戻る。ただし、最大個数の保存は行わない。
5) 最大個数入力エリア
ユーザは、最大個数のエリアをダブルクリックすることにより最大個数の入力を行うことができる。
3.10.5 部品分割数設定画面
この画面では、図112に示されるように、最適化装置300は、ユーザの指示に従って、部品分割情報の表示/最大分割数の設定を行う。
1) 部品分割数情報
部品分割数情報を表示する。
*部品名称
品種プログラム内で使用される部品名称を表示する。ユーザは、部品分割を効率的に行うために、品種プログラムの部品名称を入力することができる。
*実装点数
部品毎の実装点数を表示する。
*現在分割数
部品毎の現在の分割数を表示する。
*最大分割数
部品毎の最大分割数を表示する。なお、起動時のデフォルトでは、現在分割数を表示する。
2) 印刷ボタン
部品分割数情報の印刷を実行する。
3) OKボタン
現在表示されている最大分割数を保存して、部品分割数設定画面を終了する。4) キャンセルボタン
部品分割数設定画面を終了し、メイン画面に戻る。ただし、最大分割数の保存は行わない。
5) 最大分割数入力エリア
ユーザは、最大分割数のエリアをダブルクリックすることにより最大分割数の入力を行うことができる。なお、最大分割数は、アプリケーションが起動している間のみ有効となる。次回の起動時には、現在分割数が最大分割数のデフォルト表示になる。
ソート表示
*部品名称又は、実装点数のタイトルがクリックされると、ソート表示する。
3.10.6 ノズル本数設定画面
この画面では、図113に示されるように、最適化装置300は、ユーザの指示に従って、ノズル本数情報の表示/最大本数の設定を行う。
1) ノズル本数情報
ノズル本数情報を表示する。
*ノズル形状コード
ノズルライブラリ内の全ノズル形状コードを表示する。
*ノズルタイプ
ノズルライブラリ番号(1〜99)を表示する。
*現在本数
現在使用されている本数を表示する。
*最大本数
使用できる最大本数を表示する。
2) 印刷ボタン
ノズル本数情報の印刷を実行する。
3) OKボタン
現在表示されている最大本数を保存して、ノズル本数設定画面を終了する。
4) キャンセルボタン
ノズル本数設定画面を終了し、メイン画面に戻る。ただし、最大本数の保存は行わない。
5) 最大本数入力エリア
ユーザは、最大本数のエリアをダブルクリックすることにより最大本数の入力を行うことができる。
3.10.7 ノズルステーション選択画面
この画面では、図114に示されるように、最適化装置300は、ユーザの指示に従って、ノズルステーション選択情報の表示/ノズルステーション選択を行う。
1) ノズルプレートID
サブ設備(図中の「1st ステージ」、「2nd ステージ」)毎のノズルプレートIDの有効/無効を設定することができる。グレー表示以外のIDは、複数選択可能である。
カーソルを移動すると、カーソル上のIDのノズルステーション図の表示に切り替えることができる。なお、チェックボックスが選択されていない場合でも、表示は切り替わる。
2) ノズルステーション図
カーソル上のノズルステーション図を表示する。
3) 印刷ボタン
ノズルステーション選択情報の印刷を実行する。
4) OKボタン
選択されているノズルプレートIDを保存して、ノズルステーション選択画面を終了する。
5) キャンセルボタン
ノズルステーション選択画面を終了し、メイン画面に戻る。ただし、ノズルプレートIDの保存は行わない。
3.10.8 オプション設定画面
この画面では、図115に示されるように、最適化装置300は、ユーザの指示に従って、設備オプション/最適化レベルの設定を行う。
1) 設備設定
設備オプションを設定することができる。
・XL制約
XL制約を設定することができる。(有効or無効)
・Z軸速度TA
Z軸TAの速度を設定することができる。(通常or低速)
・Z軸速度TB
Z軸TBの速度を設定することができる。(通常or低速)
・後部カセット部品180°回転
後部カセット部品180°回転を設定することができる。(無効or有効)
・後部トレイ部品180°回転
後部トレイ部品180°回転を設定することができる。(無効or有効)
・後部手置きトレイ部品180°回転
後部手置きトレイ部品180°回転を設定することができる。(無効or有効)
・先行シャトル制御
先行シャトル制御を設定することができる。(無効or有効)
・先行吸着制御
先行吸着制御を設定することができる。(無効or有効)
・基板ストッパー位置(前)
前サブ設備110の基板ストッパー位置を設定することができる。(左下or左上or右下or右上)
・基板ストッパー位置(後)
後サブ設備120の基板ストッパー位置を設定することができる。(左下or左上or右下or右上)
・手置きトレイ(前)
前サブ設備110の手置きトレイを設定することができる。(無効or有効)
・手置きトレイ(後)
後サブ設備120の手置きトレイを設定することができる。(無効or有効)
2) 前後振り分け禁止
この項目をチェックすることにより、前後振り分けを禁止することができる。
・Front
前サブ設備110のみ最適化を行なう。
・Rear
後サブ設備120のみ最適化を行なう。
・Both
前後サブ設備120で最適化を行なう。なお、前後振り分けを禁止すると、Z軸情報画面でF/R固定の設定が行えるようになる。
3) 最適化レベル設定
最適化の実行レベルを1〜5(簡易〜詳細)の範囲で設定することができる(デフォルトレベルは4)。
4) 回収コンベア設定
1st、2ndステージの回収コンベアの設定を行うことができる。
設定しない :無
回収コンベア(小)を使用する :小
回収コンベア(大)を使用する :大
5) OKボタン
現在設定されているオプション(設備オプション、最適化レベル、前後振り分け禁止、回収コンベア)を保存し、オプション設定画面を終了する。
6) キャンセルボタン
オプション設定画面を終了し、メイン画面に戻る。ただし、設備オプション、最適化レベル、前後振り分け禁止、回収コンベアついては保存しない。
7) アルゴリズム設定
最適化のアルゴリズムを設定することができる。(1or2)
・アルゴリズム1
小部品のアルゴリズムで最適化する。
・アルゴリズム2
小部品を汎用部品のアルゴリズムで最適化する。
8) 設備情報
設備情報を表示する。
・設備方向
設備方向を表示する。(正流れor逆流れ)
・搬送基準
搬送基準を表示する。(手前or奥)
・搬送速度
搬送速度を表示する。
3.10.9 Z軸情報画面
この画面では、図116に示されるように、最適化装置300は、ユーザの指示に従って、Z軸に設定されている部品の情報を表示する。
1) Z軸情報
Z軸情報を表示する。
*部品名称
ZNo上に設定されている部品名称を表示する。
*部品点数
ZNo上に設定されている部品点数(実装点)を表示する。
*形状コード
ZNo上に設定されている部品形状コードを表示する。
*ノズル
ZNo上に設定されている部品の使用ノズル番号(ノズル本数設定画面のノズルタイプと同一)を表示する。
*カメラ
ZNo上に設定されている部品の部品認識カメラ(2DS、2DL、3DS、3DL)を表示する。
*スピード
ZNo上に設定されている部品のヘッド速度XY(1〜8)を表示する。
*供給コード
ZNo上に設定されている部品の供給コードを表示する。
*W指定
部品名称毎にS(シングル)かW(ダブル)の指定をする必要がある。
*シャトル不可
ZNo上に設定されている部品がトレイ部品でシャトル供給が可能である場合に、不可(行わない)を設定できる。なお、トレイ部品であってもシャトル供給できない部品には、チェックボックスは表示されない。
*F/R固定
ZNo上に設定されている部品が最適化によって、サブ設備間を移動しないように設定を行う。なお、オプション設定画面の前後振り分け禁止がチェックされている場合のみ、使用可能になる。ZNo以降にデータが表示されない場合は、そのZ軸に部品が設定されていないことを表する。
2) 最適化前/後切替
Z軸情報を最適化前/後で切り替える。ただし、最適化を実施しない場合、最適化後の表示はできない。
3) 印刷ボタン
Z軸情報の印刷を実行する。
4) OKボタン
Z軸情報(W指定、シャトル不可)を保存し、Z軸情報画面を終了する。ただし、最適化後のZ軸情報は編集できない。OKボタンがグレー表示になっている。
5) キャンセルボタン
Z軸情報画面を終了し、メイン画面に戻る。ただし、Z軸情報は保存されない。
3.10.10 ノズルステーション情報画面
この画面では、図117に示されるように、最適化装置300は、ユーザの指示に従って、本設備のノズルステーション情報を表示する。
1) ノズルプレートID
サブ設備(図中の「1st ステージ」、「2nd ステージ」)毎のノズルプレートIDを表示する。
2) ノズルステーション情報
ノズルステーション情報を表示する。
*No
ステーションNoを表示する。
*ノズル形状コード
ノズルステーション上のノズル形状コードを表示する。
3) 最適化前/後切替
ノズルステーション情報を最適化前/後で切り替える。ただし、最適化を実施しない場合、最適化後の表示はできない。
4) 印刷ボタン
ノズルステーション情報の印刷を実行する。
5) キャンセルボタン
ノズルステーション情報画面を終了し、メイン画面に戻る。
4 最適化装置の動作(応用編)
次に、以上のような最適化装置300の応用的な動作について説明する。つまり、これまで説明してきた最適化アルゴリズムに対して、改良が施され、機能が拡張されている部分について説明する。
4.1 小部品の最適化
4.1.1 部品分割しないZ配列の最適化
図42に示された吸着パターン504は、生産性を最大にする最適化吸着パターンであるが、部品テープをいくつにでも分割できることが条件となる。例えば、部品1のテープ(黒い四角マークの部品テープ)は5本も準備しなければならない。このことは、出庫部品が増える結果となり、ユーザによっては、許容されない場合がある。つまり、1種類の部品につき1つの部品テープだけしか使用(準備)できないという状況においては、適用することができない。
そこで、部品分割ができない場合に適用できる吸着パターンの決定アルゴリズムが必要とされる。以下、そのアルゴリズムを説明する。
図118は、部品分割することなく効率的な吸着パターン(Z配列)を決定するアルゴリズムの処理手順を示すフローチャートである。
まず、対象となる全ての部品テープを部品数の多い順にソートし、多いものから順に番号(i=1〜N)を付与する(S600)。そして、その並びから、部品数の多い順に、部品テープを取り出し、以下のように並び替える(S601〜S607)。
まず、番号1の部品テープを取り出してZ軸上に置く(S601)。次に、番号2以降(i=2〜N)の部品テープについては、Z軸上の右端又は左端のいずれかに配置するという処理を繰り返す(S602〜S607)。つまり、番号2〜15の部品テープについては(S605でYes)、右端、右端、左端、という順序でZ軸上に並べていき(S604〜S606)、番号16以降の部品テープについては(S603でNo)、右端に配置することを繰り返す(S606)。
このような並び替えによって得られたZ配列が目的とする吸着パターン、即ち、吸着上下回数の少ない吸着パターンである。
図119は、図118に示されたフローチャートの処理手順を説明するための部品テープの並びを示す。つまり、上図は、対象となる全ての部品テープを部品数の多い順に仮Z軸上にソートした後の部品テープの並び600を示し、下図は、その部品テープの並び600から部品数の多い順に部品テープを取り出し、Z軸上に並び替えた後の部品テープの並び601を示す。番号2〜15の部品テープについては、右端、左端、右端、右端、左端、・・・、と並べていき、番号16以降の部品テープについては、右端に配置することを繰り返す。
図120〜図123は、この最適化アルゴリズムによる最適化のレベルを説明するための図である。つまり、図120は、単に部品数の多い順に(右から左方向に)部品テープが並べられた部品ヒストグラム605、図121は、その部品ヒストグラム605を刈り上げた場合の吸着上下回数パターン606を示す。一方、図122は、図118に示された手順で並び替えられた部品ヒストグラム607を示し、図123は、その部品ヒストグラム607を刈り上げた場合の吸着上下回数パターン608を示す。
なお、図121及び図123において、横軸は、部品テープの並び(仮Z軸、Z軸)、左縦軸は、吸着上下回数、右縦軸は、タスク数を示し、四角枠で囲まれた部品群は、1つのタスク(同時に吸着される部品群)を示している。
これら図121及び図123に示された吸着上下回数パターンを比較して分かるように、本最適化アルゴリズムによる並び替えによって、タスク数については、変化していないが(13個)、吸着上下回数については、31回から25回に減少している。これは、図118に示された手順による部品テープの並び替えにより、図120に示された部品ヒストグラム605の一部(部品テープ番号3、6、9、12、15の部品テープ)が、図122に示される部品ヒストグラム607aに移動されたからである。
つまり、図122に示された部品ヒストグラム607は、2つの傾斜(一方が他方よりも急勾配)を持つ三角形の形状を有している。この形状は、コア処理による最適化が施された後の理想的な形状(例えば、図42に示された部品ヒストグラム504における空間を下方に詰めて整理したヒストグラム)に近い。したがって、図120に示された部品ヒストグラム605に比べ、最適化レベルの高い部品テープの並びと言える。
4.1.2 左右ブロックへの振り分け処理における最適化
初期振り分け処理では、前サブ設備110と後サブ設備120に部品テープを振り分けた後、各サブ設備内で、各部品テープが属する部品グループに基づいて、部品供給部の左ブロック115a及び右ブロック115bのいずれかに部品テープを振り分ける。
このとき、これまでの手法では、左右ブロック115a及びbへの振り分け状態によっては、一方のブロックに隙間なく部品カセットを配置してしまうために、他のブロックに空きが残されているにも拘わらず、部品テープの分割が行われない、つまり、部品ヒストグラムに対するコア処理が全く実行されないという不具合を生じ得る。そのために、吸着上下回数が増加し、タクトタイムが長くなってしまう。
例えば、左ブロック115aには空きが充分にあるにもかかわらず、右ブロック115bに隙間なく部品カセットを配置してしまい、その結果、右ブロック115bでは全く部品テープの分割が行われないという状況が発生する。特に、左右ブロック115a及びbにまたがるような、部品テープ数の多いヒストグラムの場合に生じ得る。
そこで、このような場合には、空きのないブロックに振り分けられている山の中から最も優先度の低い山を見つけ、その山の部品カセットを空きのある他方のブロックに移動させることで、新たなに空きを確保し、これによって、不可能だった山に対するコア処理を可能にしている。
図124は、左右ブロック115a及びbへの山の振り分け処理の手順を示すフローチャートである。いま、ある山について、その山が置かれているブロックにおいて、充分な部品カセットの空きがないために、コア処理ができない状態(以下、この状態を「ブロックあふれ」と呼ぶ。)が生じているとする。
このときに、まず、左右ブロック115a及びbに振り分けられた全ての山の中から、優先度の低い山として、左右ブロック115a及びbに分割して(またがって)振り分けられている山、又は、コア部分の高さ(部品数)が最低の山を特定する(S620)。
そして、いま特定した山を構成する部品テープのうち、「ブロックあふれ」が生じているブロックに置かれた部品テープを、部品数の少ないものから順に他方のブロックに移動させた場合に、そのブロックに振り分けられていた山に対するコア処理が可能になるか否か検討する(S621)。
その結果、可能になると判断された場合にだけ、必要分だけ部品テープを移動した後に(S622)、コア処理が可能な全ての山に対して、刈り上げ処理とコア処理を実行する(S623)。
最後に、部品テープを移動した山について、未だ移動していない部品テープが残され、かつ、それら部品テープを他方のブロックに移動できるか否か検討する(S624)。その結果、移動可能と判断された場合には、それら残りの部品テープも他方のブロックに移動させる(S625)。
図125は、図124に示されたフローチャートによる処理の様子、つまり、山をブロック間で移動するときの様子を示している。ここでは、左右に分割して振り分けられた山620、621、622a及び622bを移動対象とした場合の様子が示されている。
なお、山620、621、622a及び622bは、部品ヒストグラムの外形として表現されている。また、左ブロック115aと右ブロック115bで挟まれた中央部側に山620、621、622a及び622bが高くなっているのは、その中央部付近には部品認識カメラ116が置かれ、部品を吸着したマルチ装着ヘッド112はその部品認識カメラ116の上を通過する必要があるので、マルチ装着ヘッド112のトータル移動距離を少なくするために、部品数の多い部品テープが中央部寄りに配置されるためである。
図125(a)は、あるサブ設備に振り分けられた3つの山620、621、622a及び622bの左右ブロック115a及びbへの初期割当て状態を示している。右ブロック115bは、「ブロックあふれ」となっているブロックであり、ここには、山620と、左右ブロック115a及びbに分割して割り当てられた山の一部622bが配置されている。一方、左ブロック115aは、「ブロックあふれ」にはなっていないブロックであり、ここには、山621と、分割して割り当てられた山の残る一部622aが配置されている。
図125(b)は、山620のコア処理を可能とするだけの空きを確保するために、山622bの一部622cを右ブロック115bから左ブロック115aに移動させたときの様子を示している。
図125(c)は、山620と山621それぞれに対して刈り上げ処理とコア処理とを実行したときの様子を示している。山620と山621の形状が、急な傾斜と緩やかな傾斜とを持つ三角形に変化している。
図125(d)は、分割移動した山について残る部分622dも右ブロック115bから左ブロック115aに移動させたときの様子を示している。
図126は、図124に示されたフローチャートによる他のケースにおける処理の様子、つまり、コア部分が最低の山を移動対象とした場合の様子を示している。移動対象の山(の状態)が異なる点を除いて、図125で示された山の移動と同じ様子を示している。つまり、対象となる3つの山625、626、627(図126(a))のうち、コア部分が最低の山627の一部627aを右ブロック115bから左ブロック115aに移動させた後に(図126(b))、山625と山626について刈り上げ処理とコア処理を行い(図126(c))、最後に、分割移動した山の残る部分627bも右ブロック115bから左ブロック115aに移動させて山627aと合体させている(図126(d))。
以上のように、Z番号の空きがないブロックから、空きがあるブロックへ部品カセット(部品テープ)を移動させることで、Z番号の空きを作り、その空きを使ってコア処理を行うことで、それまで、断念していた部品分割が可能となる。つまり、ブロックを超えた部品テープの移動を検討することで、断念していたコア処理が可能となり、理想的な吸着パターンが生成され、吸着上下回数が減少され得る。
4.1.3 ダブルカセットの使用本数の見積もり
実装の対象となる1つの部品グループ(部品テープ群「山」)が与えられ、これに対するコア処置が終了すると、各部品テープをZ軸(部品カセットの並び)に割り当てることになる。このことは、2つの部品テープを同時に収納できる部品カセット(ダブルカセット)を使用する場合についても同様であるが、ダブルカセットを使用する場合には、全ての部品テープをペアにして1つのダブルカセットに収納することができるとは限らず、また、ペアにすべき部品テープが固定されている場合等があり、割当てに際して、何本のダブルカセットが必要とされるのかが問題となる。
そこで、ダブルカセットを対象として、与えられた「山」を構成する全ての部品テープをZ軸に割り当てる場合に、必要とされるダブルカセットの本数をNCデータ等に基づいて事前に算出する(見積もる)方法を考案した。
図127は、ダブルカセットの使用本数を見積もるアルゴリズムの処理手順を示すフローチャートである。
まず、対象となっている部品テープの総本数Nを特定する(S640)。
次に、固定の対象となっている全ての部品テープを図128に示される4種類のグループA〜Dに分類したときの各グループに属する部品テープ数Na、Nb、Nc、Ndを特定する(S641〜S644)。つまり、
(i)グループAに属する部品テープ数Na:
同じ部品グループの部品テープとペアになるものの本数Na(必ず、偶数となる)、
(ii)グループBに属する部品テープ数Nb:
異なる部品グループの部品テープとペアになり、かつ、この山の部品テープの部品グループ番号(各部品グループを識別するために付与された一連の番号)が、その異なる部品グループの部品グループ番号よりも小さいものの本数Nb、
(iii)グループCに属する部品テープ数Nc:
異なる部品グループの部品テープとペアになり、かつ、この山の部品テープの部品グループ番号が、その異なる部品グループの部品グループ番号よりも大きいものの本数Nc、
(iv)グループDに属する部品テープ数Nd:
ペアになる部品テープがないものの本数Nd、
を計数する。
最後に、以下の算出式に従って、求めるべき必要なダブルカセットの本数Nwを算出する(S645)。
Nw=Na/2+Nb+Nd+ceil((N-Na-Nb-Nc-2Nd)/2)
ただし、ceil(x)は、実数x以上の最小の整数値を意味する。
この算出式の根拠は以下の通りである。
算出式の右辺は、固定対象の部品テープの収納に必要なダブルカセットの本数(第1〜第3項)と、非固定対象の部品テープの収納に必要なダブルカセッの本数(第4項)との合計からなっている。
右辺第1項Na/2は、グループAの部品テープを収納するのに必要なダブルカセットの本数である。
右辺第2項Nbは、グループBの部品テープと、これら部品テープとペアになる異なる(グループ番号の大きい)部品グループの部品テープとを収納するのに必要なダブルカセットの本数である。このように、異なる部品グループの2つの部品テープを1つのダブルカセットに収納する場合には、グループ番号の小さい部品グループに対してダブルカセットが必要になると計算しているので、上記グループCの部品テープの収納に必要なダブルカセットの本数Ncは計上されないことになる(算出式の右辺に加算されない)。
右辺第3項Ndは、グループDの部品テープ(及び、これら部品テープとペアになる非固定対象の部品テープ)を収納するのに必要なダブルカセットの本数である。
右辺第4項ceil((N-Na-Nb-Nc-2Nd)/2)は、非固定対象の部品テープの一部(Nd本)がグループDの部品テープとペアにして収納される場合における、非固定対象の部品テープを収納するのに必要なダブルカセットの本数である。なお、非固定対象の部品テープの一部(Nd本)がグループDの部品テープとペアにして収納されない場合には、その本数は、ceil((N-Na-Nb-Nc-Nd)/2)となる。
以上より、必要なダブルカセットの本数は、上記算出式の右辺第1〜第4項の合計となる。
図129は、必要なダブルカセットの本数の計算例を示す。図129(a)は、対象となる部品テープの並びa〜zを示し、図129(b)は、それら部品テープの内訳を示し、図129(c)は、各部品テープがダブルカセットに収納される様子を示し、図129(d)は、必要なダブルカセット本数の計算式を示す。
この図129から分かるように、上記算出式によって、あらゆる部品テープの並びに対しても、必要なダブルカセットの本数が算出され得る。
なお、上記式は、整理することにより、以下のように簡単化することもできる。
Nw =Na/2+Nb+Nd+ceil((N-Na-Nb-Nc-2Nd)/2)
=ceil(Na/2+Nb+Nd+(N-Na-Nb-Nc-2Nd)/2)
=ceil((N+Nb-Nc)/2)
4.1.4 ダブルカセットのペア固定
ダブルカセットは、テープ幅8mmの部品テープを2つ収納することができるが、同じ送りピッチ(例えば、2mm又は4mm)で2つの部品テープを同時に送り出すために、異なる送りピッチ用の部品テープを混在させて収納することができない。そのために、ダブルカセットを対象として、小部品を最適化する場合には、送りピッチ毎に作成した部品ヒストグラムをその部品テープ総数の半分で折り返すことでペアを作った後に、対応する送りピッチのダブルカセットに収めることとしている。
ところが、生産現場の事情等により、自由な組み合わせで2つの部品テープをダブルカセットに収めることができない状況、即ち、ペアとなる部品テープが固定される場合がある。したがって、ペア固定の対象となる部品テープを含み、かつ、送りピッチが異なる部品テープを含む部品テープ群が与えられたときに、どのような並びでダブルカセットに収めるべきかが問題となる。
そこで、ダブルカセットを対象とし、ペアリングの制約を考慮した最適化、即ち、刈り上げ処理に適した部品テープのZ配列を決定するアルゴリズムを考案した。
図130は、ダブルカセットのペア固定を考慮したZ配列の最適化アルゴリズムの処理手順を示すフローチャートである。ここでは、送りピッチが2mmと4mmのダブルカセットを使用する部品テープが含まれるとする。
まず、ペア固定となる部品テープを分離する(S660)。具体的には、同一の送りピッチの部品テープ群ごとに、ペア固定の対象でない部品テープと、ペア固定の対象である部品テープに分ける。
そして、送りピッチが2mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(S661)。具体的には、ペア固定の対象でない部品テープについては、これまでのアルゴリズム(上述の折り返しによる方法)と同様にしてペアを作り、ペア固定の対象となる部品テープについては、そのままペアにする。
同様に、送りピッチが4mmのダブルカセットを使う部品テープについて、仮Z軸上に「山」を作る(S662)。具体的には、ペア固定の対象でない部品テープについては、これまでのアルゴリズムと同様にしてペアを作り、ペア固定の対象となる部品テープについては、そのままペアにする。
最後に、送りピッチが2mmと4mmのダブルカセットの部品ヒストグラムを融合する(S663)。このとき、ペア固定のダブルカセットも含める。具体的には、上記ステップS661及びS662で作られたダブルカセットをひとまとめにして、ダブルカセットの奇数側の部品数が大きい順にダブルカセットを並べ替える。
図131〜図134は、図130の各ステップS660〜S663における処理の具体例を示す。
図131は、図130のステップS660での処理を示している。ここで、図131(a)は、送りピッチが2mmの部品テープ群を、ペア固定の対象でない部品テープの部品ヒストグラム660と、ペア固定の対象である部品テープ661a、661bとに分けた様子を示している。同様に、図131(b)は、送りピッチが4mmの部品テープ群を、ペア固定の対象でない部品テープの部品ヒストグラム665と、ペア固定の対象である部品テープ666a、666bとに分けた様子を示している。
図132は、図130のステップS661での処理を示している。ここで、図132(a)の部品ヒストグラム660には折り返し位置(点線)661cが示されている。図132(b)は、その折り返し位置で部品ヒストグラム660が折り返された後の部品ヒストグラム662を示している。なお、ここでの「折り返し」とは、折り返し位置で分離された前半部と後半部とを、それぞれの並び順序を維持したまま、各部品テープが交互に並ぶように、合成することである。
図133は、図130のステップS662での処理を示している。図133(a)の部品ヒストグラム665には折り返し位置(点線)665cが示されている。図133(b)は、その折り返し位置で部品ヒストグラム665が折り返された後の部品ヒストグラム667を示している。
図134は、図130のステップS663での処理を示している。ここで、図134(a)は、図130のステップS662及びS663で得られた各部品テープを一列(仮Z軸上)に並べた状態を示し、ペア固定の対象ではない送りピッチが2mmの部品ヒストグラム662と、ペア固定の対象である送りピッチが2mmの部品ヒストグラム661a及び661bと、ペア固定の対象ではない送りピッチが4mmの部品ヒストグラム667と、ペア固定の対象である送りピッチが4mmの部品ヒストグラム666a及び666bとが仮Z軸上に並べられた状態を示している。図134(b)は、図134(a)に示された並びにおけるダブルカセットのペアを維持したまま、奇数Z番号側の部品テープの部品数が多い順(図中の点線)に並び替えた状態を示している。このZ配列が最終的に求める部品テープの並びである。
図134(b)に示されたZ配列から分かるように、この部品テープの並びは、ダブルカセットのペア固定が維持され、かつ、刈り上げ処理に適した配列となっている。つまり、マルチ装着ヘッド112が1回の吸着上下動作で吸着される奇数のZ番号だけ(あるいは、偶数のZ番号だけ)に位置する部品テープだけに着目すると、それら部品テープは、部品数の多い順に並べられている。
4.1.5 NGヘッドを考慮した最適化アルゴリズム
部品実装機100の運用中に、NGヘッドが生じた場合には、そのNGヘッドの影響を最小限に止めたうえで、部品の実装を継続することが必要とされる。ここで、「NGヘッド」とは、もはや部品を吸着することができない状態となった装着ヘッドのことである。
そこで、以下の前提条件の下で、つまり、
(i)運用中にNGヘッドが発生しても、Z軸上の部品カセット(部品テープ)の配列は変化させない、
(ii)NGヘッドを使わずに吸着するので、吸着パターンが変化する、
(iii)NGヘッドとなったヘッド番号の装着ヘッドでしか吸着できない実装点は、実装しない、
という条件の下で、NGヘッドを除く他の正常な装着ヘッドだけによる吸着パターンの生成方法を考案した。なお、「ヘッド番号」とは、マルチ装着ヘッド112を構成する個々の装着ヘッドを識別する番号(左から1〜10)である。
具体的には、NGヘッドがないものとして作成された部品テープの配列(「山」)に対して、NGヘッドの位置に対応する部品テープから部品を吸着しないことにして、その「山」に対して刈り上げ処理を行い、吸着パターンを生成することにより、NGヘッドに対応することとした。
この時、1タスク当たりの吸着上下回数が2回以上になったとしても、1タスク当たりの部品数を最大化させることを優先した。つまり、マルチ装着ヘッド112に部品が満載された状態(全ての正常な装着ヘッドに部品が吸着された状態)になるまで、吸着上下動作をして部品を吸着した後に、基板に部品を装着することとした。
図135は、NGヘッドを考慮した最適化アルゴリズムの処理手順を示すフローチャートである。
まず、与えられた部品ヒストグラムに対して、NGヘッドを除く正常な装着ヘッドだけを用いて、1回の吸着上下動作により、可能な限り多くの部品を吸着する(S680)。その結果、マルチ装着ヘッド112が満載状態ではなく、かつ、吸着対象の部品が残されている場合には(S681でNo)、満載状態になるか、又は、吸着対象の部品が無くなるまで、マルチ装着ヘッド112を移動させて再度の吸着上下動作をすることにより(S680)、空いた装着ヘッドに部品を吸着させることを繰り返す(S680、S681)。
もし、マルチ装着ヘッド112が満載状態になるか、又は、全ての部品を吸着し終えた場合には(S681でYes)、1つのタスクでの吸着を終え、基板20に移動して部品を装着することにする(S682)。
以上の処理(S680〜S682)を、対象の部品が無くなるまで繰り返す(S683)。これによって、NGヘッドが発生した状況においても、マルチ装着ヘッド112の満載状態を優先した部品の吸着パターンが完成される。つまり、少ないタスク数で部品の実装を終えることができる。
図136〜図138は、NGヘッドが無い場合とNGヘッドがある場合それぞれの吸着パターンを比較して説明するための図である。図136は、対象となる部品ヒストグラム680を示す。
図137は、NGヘッドが無い場合の図136に示された部品ヒストグラム680に対する吸着パターン(刈り上げ処理とコア処理による)681を示す。一方、図138は、ヘッド番号2の装着ヘッドH2がNGヘッドである場合の図136に示された部品ヒストグラム680に対する吸着パターン685を示す。
なお、図137及び図138に示された吸着パターン681、685は、図136に示された部品ヒストグラム680に対してコア処理に伴う部品テープA、B、Cの分割が行われたときのパターンである。また、左縦軸は、吸着上下回数(積算値)を示し、右縦軸は、タスク数を示している。四角枠で囲まれた部品群は、1つのタスクを示している。ただし、図138において、第2及び第9タスクは、それぞれ、2つの四角枠687a及び687bと688a及び688bとに分離して示されている。
図138において、例えば、第2タスクは、1回目の吸着上下動作687aによって、装着ヘッドH1とH10に合計2個の部品が吸着され、2回目の吸着上下動作687bによって、装着ヘッドH3〜H9に合計7個の部品が吸着され、その結果、装着ヘッドH2を除く9個の装着ヘッドに合計9個の部品が吸着され満載状態となっている。
図137と図138とを比較して分かるように、NGヘッドを考慮した場合には、そうでない正常な場合に比べ、吸着上下回数については、16から24へと大きく増加しているが、タスク数については、13から14へとわずかな増加で済んでいる。これによって、NGヘッドを考慮した最適化が実現されたことになる。
なお、基板サイズがLLサイズ以上の基板の場合、ヘッド7〜10でしか実装できない領域があるため、このような基板を対象としたNGヘッドの最適化が問題となる。これまでのアルゴリズムでは、ヘッド1〜10をヘッド1〜6とヘッド7〜10の2つのヘッド群に分け、ヘッド群毎に別個に吸着パターンを生成している。この場合においても、ヘッド群毎にNGヘッドを使わずに吸着することで、同様に対応することができる。ただし、特定の装着ヘッドしか吸着できないZ番号があるので、部品カセットの入れ替えが必要となる。
4.2 複数NCデータの同時最適化
部品実装機100を使用するユーザによっては、部品実装機100にセットした部品カセット群の位置や並びを変更することなく、そのままの状態で、複数の基板を短い時間で生産したいと希望する場合がある。そのために、複数の基板の実装に共通して使用でき、かつ、それら複数の基板の全てを実装し終えるのに要するトータル時間が少なくなるような最適な部品カセットの並び等を決定する必要がある。つまり、複数のNCデータを対象とした部品実装順序の最適化アルゴリズムが求められる。以下、その最適化アルゴリズムを説明する。
その最適化アルゴリズムの基本原理は、次の通りである。つまり、刈り上げ処理が期待通りに動作する条件は、部品カセットの並びが各部品テープの部品数の順番に並んでいることである。そこで、基板ごとに、部品数順と部品カセット配列との相関係数を計算し、これを最大化する部品カセット配列を求め、それ以降については、これまで説明したアルゴリズムによる最適化を行うこととする。
図139は、複数のNCデータを同時に最適化するときの全体の処理手順を示すフローチャートである。まず、与えられた複数のNCデータについて(S700)、一定の類似性を有するNCデータが存在するか否か検討し(S701)、類似性がある場合には、それらNCデータの実装点を合わせたものを新たなNCデータとする(S702)という処理を、全てのNCデータについて繰り返す(S700〜S703)。
ここで、類似性の判定は、部品種ごとの部品数を成分とするベクトル(部品種を成分要素とし、各部品種の部品数を各成分要素の大きさとするベクトル)で各NCデータを表現し、2つのベクトル間の方向余弦(cosθ)が予め定めたしきい値よりも大きい場合に類似性があるとする。つまり、
cosθ>しきい値 なら、2つのNCデータは類似性があるとする。
なお、方向余弦は、2つのNCデータに含まれる部品種がどの程度共通しているかを示す指標になると考えられる。
そして、このような合成処理が施された後の1以上のNCデータについて、基板の生産枚数が多い順に、NCデータごとにZ配列を最適化していくことを繰り返す(S704)。このとき、最適化するNCデータに、既にZ配列が決定された部品テープが含まれている場合には、その部品テープを除いた上で、刈り上げ処理等の通常の手法で部品テープのZ配列を決定する。
このように、NCデータに含まれる部品種の多くが共通する場合には、それら複数のNCデータを1つのNCデータとして最適化し、そうでない場合には、個別にNCデータを最適化する。
次に、複数のNCデータを1つのNCデータとして最適化する具体的なアルゴリズム、即ち、複数NCデータの同時最適化アルゴリズムを説明する。
なお、ここでの最適化の対象は、Z配列としている。これは、最適化の主な対象としては、(i)Z配列、(ii)タスク内の実装経路、(iii)タスクの順序、の3つであるが、複数のNCデータを同時に最適化する場合には、部品のZ配列を共通にする必要があるので、Z配列を最適化することが最も重要となるからである。他の2つ(ii)、(iii)は、決められたZ配列に対する刈り上げ処理で生成されるタスクに対する最適化で処理可能である。
ところで、個々のNCデータの最適化を行う刈り上げ処理で期待されるZ配列は、コア処理をさておけば、「部品数の多い順に部品テープが並ぶZ配列」である。したがって、ここでの最適化アルゴリズムは、個々のNCデータに対してこのような条件がもっともよく満たされる共通のZ配列を決定するアルゴリズムである。
図140は、複数NCデータのZ配列を同時に最適化する処理手順を示すフローチャートである。まず、「順位法」、「総員数法」及び「生産数法」と呼ぶ3つの手法のいずれかを用いて、初期Z配列を決定する(S710)。
ここで、「順位法」とは、各部品テープの部品数における順位の平均値が大きい順に部品テープを配列する方法であり、「総員数法」とは、各部品テープの部品数の総和が大きい順に部品テープを配列する方法であり、「生産数法」とは、最も部品数の多いNCデータを優先して部品テープを配列し、他のNCデータについては「総員数法」により部品テープを配列する方法である。なお、これら3つの方法のいずれを採用するかは、シミュレーションによって判明している予め定められた基準、例えば、NCデータの数が5未満であれば「生産数法」を採用する等の基準によって決定する。
そして、初期Z配列を決定した後に、確率的探索による最適化を行う(S711)。つまり、Z配列をランダムに変更し、もし、平均同時吸着数(タスク当たりの同時吸着される部品数の平均値)が増加するならば採用し、そうでないならば採用しない(変更を元に戻す)という処理を繰り返す。例えば、(i)Z配列における1つの部品テープを引き抜き、(ii)引き抜きによって生成された空きを左詰によって埋めた後に、(iii)引き抜いた部品テープを別に位置に挿入する、という状態遷移を試み、最適化レベルが向上するならば採用する。このような状態遷移と評価とを繰り返すことによって、最適化レベルが徐々に向上され得る。
図141は、初期Z配列の決定に用いる3種類の方法を説明する具体例を示す図である。ここでは、説明の便宜上、5種類の部品テープA〜E(又はその一部)を使用する3つのNCデータ1〜3を対象として初期Z配列を決定する場合の例が示されている。
図141(a)は、それら3つのNCデータ1〜3について、NCデータで使用されている部品テープごとの部品数(数値)と、部品数の多い順に部品テープを並べた場合の順位(括弧内の数値)と、そのNCデータを用いて生産される基板の生産枚数と、各部品テープごとの平均順位と総部品数とを示している。
図141(b)は、図141(a)に示された3つのNCデータ1〜3に対して、「順位法」、「総員数法」及び「生産枚数法」それぞれにより決定される初期Z配列の結果を示している。
「順位法」によれば、(i)NCデータごとに、各部品テープの順位を決定し、(ii)各部品テープの順位の平均値を求め、(iii)求めた平均値の大きい順に部品テープを並べたものを初期Z配列とする。したがって、図141(a)に示されたの「平均順位」の値に基づき、図141(b)に示されるように、順位「CABED」が決定される。
また、「総員数法」によれば、(i)部品テープごとに、部品数の総和を求め、(ii)求めた総和の大きい順に部品テープを並べたものを初期Z配列とする。したがって、図141(a)に示された「総部品数」の値に基づき、図141(b)に示されるように、順位「ACBDE」が決定される。
また、「生産数法」によれば、(i)生産枚数の最も多いNCデータを特定し、(ii)特定したNCデータで使われている部品テープを最適化することによってZ軸上に部品テープを配置して固定し、(ii)他の部品テープについては、「総部品数」により、空いたZ軸上に配置して得られる部品テープの並びを初期Z配列とする。しがって、ここでは、図141(a)に示された「生産枚数」の値に基づいて、まず、NCデータ2の順に従って順位「ABC」が決定され、続いて、総部品数の順に従って順位「DE」が決定される。
以上の複数NCデータに対する同時最適化アルゴリズムについて、シミュレーションにより評価した結果について説明する。
なお、シミュレーションにおいては、部品分布として、小さい部品は部品数が多く、部品サイズが大きくなるとともに部品数は漸減するという、NCデータの一般の性質を考慮した以下のような分布を採用した。
部品partの使われる平均部品数n(part)を、
n(part) = C/part
とし(partは一連の部品テープ番号、Cは定数)、
各NCデータAにおいては、これにノイズを加えたもの
n(part,A) = (C/partの幅の乱数) ± ((C/3)/partの幅の乱数)
とした。
また、NCデータ数は、1から20までの乱数で与えた。
シミュレーションの方法としては、
(i)乱数で最適化するNCデータ数を決める。
(ii)各NCデータの部品数を決める
(iii)上述の3つの方法で初期Z配列を求める
(iv)上述の状態遷移則で、吸着回数を最小となる最適なZ配列を確率的に探索する、という手順である。
このような条件でのシミュレーションの結果、判明したことは、以下の通りである。
(i)初期Z配列に関する3つの手法のいずれであっっても、NCデータ数が増加するにつれて、同時吸着できる部品の数が次第に減ってゆく。
(ii)NCデータ数が少ない場合には、「生産数法」による初期Z配列のほうが同時吸着数が多く、NCデータ数が増えるにしたがって、「総員数法」によるほうが同時吸着数が多くなっていく。
(iii)上述の状態遷移を1000回実施し、最適化を図った結果、10%強の吸着数の改善(吸着回数の10%減少)が見られた。
以上のシミュレーション結果から、NCデータの数が5未満であれば、「生産数法」がもっとも良く、NCデータが5以上になると、「総員数法」がもっとも良くなると考えられる。
4.3 汎用部品の最適化(ルールベースの導入)
これまで、汎用部品に対する最適化アルゴリズムは、上記2.9「汎用部品に対する最適化」で述べたように、確率的探索をベースとしたアルゴリズムである。つまり、汎用部品は、吸着可能なノズルの種類が特定される等の様々な制約を受けることから、Z軸上の部品テープの配置、タスクの編成等をパラメータ化したものを「状態」と考え、その状態の良し悪しを実装時間で評価し、状態を確率的に変化させて、実装時間がより短くなる状態を探索した。
しかしながら、このような確率的探索による最適化は、最適化処理に与える初期状態が悪いと、最適化に必要な時間が極めて長くなる傾向にある。事実、これまでのアルゴリズムでは、初期状態として生成されるタスクは、吸着動作の点からは好ましい初期状態とは言えない。例えば、Z軸方向に部品テープが連続して置かれ、10点の部品を1回で吸着できるにも拘わらず、10回の吸着上下動作を行って、同一のZ番号に配置された部品テープから10点の部品を吸着するような実装順序を初期状態としていた。
そこで、汎用部品の最適化処理を高速化させるために、ノズルの制約を考慮し、一定のルールに基づいて、最適な初期状態を生成したり、ノズルの交換動作を最適化させるアルゴリズムを考案した。以下、そのアルゴリズムについて、4種類の手法(「横取り法」、「タスク分割」、「タスク融合」、「タスク入替」)を説明する。
4.3.1 横取り法
「横取り法」は、確率的探索による最適化手法に与える初期タスク(初期状態に対応するタスク列)を生成するアルゴリズムである。名前の通り、Z軸方向に吸着可能な部品を探す方法であり、小部品の最適化アルゴリズムとして開発した上述の刈り上げ処理と似ている。
図142は、「横取り法」による初期タスクの生成アルゴリズムの処理手順を示すフローチャートである。大きく分けて、部品テープをZ軸に配置する前半の処理(S720〜S722)と、タスクの生成を繰り返す後半の処理(S723〜S726)とからなる。
具体的には、前半の処理においては、まず、対象の汎用部品に対して、部品グループごとに、部品数の多い順に部品テープを並べた部品ヒストグラムを作成する(S720)。
次に、作成した各部品ヒストグラムをノズルタイプごとの部品ヒストグラムに分割する(S721)。つまり、部品グループごとに作成された部品ヒストグラムから、同一タイプのノズルで吸着される全ての部品テープを取り出し、部品数の多い順に並べるという処理を、その部品ヒストグラムに含まれる全てのノズルタイプについて繰り返す。
そして、得られたノズルタイプごとの部品ヒストグラムを、左右ブロック115a及びbの内側から部品テープを1つずつ詰めるだけ詰めてZ軸に配置していく(S722)。
後半の処理においては、前半の処理で得られた部品ヒストグラムに対して、部品グループごとに(S723〜S726)、Z軸方向にスキャンしながら部品を取り出して(横取りして)タスクを生成するという処理(S724)を、各部品ヒストグラムの底辺から上方に向けて、部品がなくなるまで繰り返す(S725)。得られたタスク列が、目的とする初期タスクとなる。
なお、スキャンする部品ヒストグラムの順番として、ノズルリソース数が小さいものを優先する。また、異なるタイプのノズルが混在してでも、各タスクを構成する部品の個数を最大化させることを優先する。例えば、マルチ装着ヘッド112に、タイプMのノズルが2個と、タイプSのノズルが8個装着されている場合には、ノズルタイプMの部品ヒストグラムから2個の部品を取り出した後に、ノズルタイプSの部品ヒストグラムから8個の部品を取り出して1個のタスクを完成させる。
図143は、図142に示されたフローチャートにおける前半処理(S720〜S722)の具体例を示す図である。
図143(a)は、図142のステップS720において生成される部品グループ単位での部品ヒストグラムを示している。ここでは、2つの部品ヒストグラム720、721が示されている。
図143(b)は、図142のステップS721において生成されるノズルタイプ毎の部品ヒストグラムを示している。ここでは、部品ヒストグラム720が部品ヒストグラム720aと720bに分割され、部品ヒストグラム721が部品ヒストグラム721aと721bに分割されている。
図143(c)は、図142のステップS722においてZ軸上に配置された部品ヒストグラムを示している。ここでは、右ブロック115bに部品ヒストグラム720aと721aが配置され、左ブロック115aに部品ヒストグラム720bと721bが配置されている。
図144は、図142に示されたフローチャートにおける後半処理(S723〜S726)の具体例を示す図である。
図144(a)は、図142のステップS724におけるスキャンの方向とスキャンの順番(数値1〜13)を示している。ここでは、対象となる2つの部品ヒストグラム、即ち、ノズルタイプSの部品ヒストグラム725とノズルタイプMの部品ヒストグラム726とが示されている。なお、いずれのタイプのノズルについても、ノズルリソース数の制約がないものとしている。
図144(b)は、図142のステップS724におけるタスク生成の様子を示している。ここでは、部品ヒストグラム725の最下段に位置する8個の部品と最下段から2番目の段に位置する2個の部品によって1つのタスクが生成される様子が示されている。
図144(c)は、図142の後半処理(S723〜S726)において繰り返し生成されるタスク(吸着パターン1〜5)を示している。つまり、各部品ヒストグラム725、756の部品中に記された数値は、タスクの番号(順番)である。ここで、タスク番号3のタスク3は、部品ヒストグラム725に属する部品と部品ヒストグラム726に属する部品とが混在する、つまり、異なるタイプのノズルが使用されるタスクとなっている。
図144(d)は、図142の後半処理(S723〜S726)において生成されるタスク列727、即ち、最終的に生成される初期タスク727を示している。なお、部品ヒストグラム725に属する部品は細い線で囲まれ、部品ヒストグラム726に属する部品は太い線で囲まれている。また、タスク列における先頭(実装順序の早いもの)は、最下段に置かれたタスク1である。
図144(e)は、図144(d)に示された初期タスク727のノズルパターンである。ここで、「ノズルパターン」とは、対象となるタスク列について、使用するノズルのタイプを装着ヘッドの位置(マルチ装着ヘッド112上の装着位置)に対応づけて示したパターンである。ここでは、3番目のタスクにおいて、タイプSとタイプMが混在している様子が示されている。
図145は、このような「横取り法」による効果を示す図である。ここでは、説明の便宜上、1つの部品ヒストグラム730を対象とし、これまでのアルゴリズムによって生成される初期タスク731と、この「横取り法」によって生成される初期タスク732について、吸着上下回数が比較されている。
なお、太線で囲まれた部品は、同一タスクに属することを意味し、部品中の数値は、その部品を吸着する装着ヘッド番号を示す。
従来手法によれば、図145の上段に示されるように、部品ヒストグラム730は、4つのタスク731、732a及びb、733a及びb、734から構成されるので、合計40回の吸着上下回数を必要とする。一方、「横取り法」によれば、図145の下段に示されるように、部品ヒストグラム730は、4つのタスク735〜738から構成されるので、合計140回の吸着上下回数を必要とするだけである。
4.3.2 タスク分割
ノズル交換を最適化することによって、汎用部品の実装時間は大きく短縮化され得る。ところが、NCデータを使って、ノズル交換を直接に制御できるわけではなく、NCデータに記述された部品種に応じて、部品実装機100本体が自動的にノズル交換を行う。そのため、ノズル交換中の交換動作を最適化するためには、タスクに含める部品種を変化させて、間接的に最適化することになり、タスクの最適化とノズル交換動作の最適化を同時に行う必要があり、これは、現実的ではない。
そこで、ノズル交換そのものが少なくなるようなタスク編成を作り出して、実装時間全体の短縮を目指すこととした。
そのタスク編成の1つの方法が「タスク分割」である。具体的には、初期タスクの中の各タスクが使用するノズルパターンを調べ、その前後のタスクでノズル交換が行われるタスクに着目し、ノズル交換をする前のノズルパターンで吸着できる部品種から構成されるタスクと、ノズル交換をした後のノズルパターンで吸着できる部品種から構成されるタスクに分割し、無駄なノズル交換が行われないようなタスクに再構成する。
図146は、「タスク分割」によるノズル交換動作の最適化アルゴリズムの処理手順を示すフローチャートである。まず、最適化の対象となるタスク列(あるいは、初期タスク)について、ノズルパターンを調べることによって、2種類以上のノズルを用いるタスクが存在するか否か判断する(S740)。
その結果、そのようなタスクが存在しない場合には(S740でNo)、「タスク分割」は不要と判断し、終了する。
一方、そのようなタスクが存在する場合には(S740でYes)、それらタスクを、ノズルの種類が1つとなるように、分離する(S741)。そして、分離によって得られたタスクの一方(直前のタスクと異なるノズルを用いるタスク)を、ノズルが同じ一連のタスク(以下、同一タイプのノズルを用いる一連のタスクを「タスクセット」と呼ぶ。)の最後に移動させる(S742)。
これによって、異なるタイプのノズルが混在したタスクは消滅し、全てのタスクは、同一タイプのノズルを用いる部品だけで編成されることとなる。
図147は、図146に示されたフローチャートにおける処理の具体例を示す図である。ここでは、「横取り法」によって生成された初期タスクに対して「タスク分割」を行っていく場合の例が示されている。
図147(a)は、「タスク分割」の対象となるタスク列740を示し、ここでは、図144(d)に示されたタスク列727に等しい。ここで、タスク列740を構成するタスク3には、2種類のノズルが混在している。そのために、このタスク3の前後においてノズル交換が必要とされる状態となっている。つまり、タスク2を終えてタスク3を実行するときと、タスク3を終えてタスク4を実行するときにおいて、タイプSからMへのノズル交換が必要とされる。
図147(b)は、図146のステップS741におけるタスクの分離の様子を示している。ここでは、タスク3が、ノズルタイプSだけを含むタスク741とノズルタイプMだけを含むタスク742とに分割されている。
図147(c)は、図146のステップS742におけるタスクの移動の様子を示している。ここでは、分離生成されたタスク742が、タスクセット743の最後尾に移動されている。
図147(d)は、図147(c)のタスク列に対応するノズルパターンである。異なるタイプのノズルを含むタスクは消滅し、元の初期タスクは、タイプSのノズルだけを含む3つのタスクと、タイプMのノズルだけを含む3つのタスクとから編成されることとなった。
このような「タスク分割」後のノズルパターンから分かるように、このタスク列は、タスク3を終えてタスク4を実行する際にノズル交換(タイプSからM)を必要としているだけであり、2回必要とされたノズル交換が1回に減少されている。
4.3.3 タスク融合
上述の「タスク分割」によれば、ノズル交換回数は減少するものの、タスクの数が増えている。そのために、トータルとして、最適化のレベルが充分とは言えない場合も起こり得る。
そこで、増えたタスクを他のタスクと融合することによって全体のタスク数の増加を抑える「タスク融合」を行うこととしている。
図148は、「タスク融合」による最適化アルゴリズムの処理手順を示すフローチャートである。まず、最適化の対象となるタスク列について、タスクセットごとに、融合可能なタスクの組が存在するか否か、即ち、装着ヘッドの位置が重複しないタスクの組が存在するか否か判断する(S750)。具体的には、装着ヘッド毎に(マルチ装着ヘッド112上の同一位置について)、ノズル装着のAND(ノズル装着が必要な場合に「1」、不要な場合に「0」とした論理積)をとった時に全ノズルの値が0となるようなタスクの組を探す。
その結果、そのようなタスクの組が存在しない場合には(S750でNo)、「タスク融合」は不可能と判断し、終了する。
一方、そのようなタスクの組が存在する場合には(S750でYes)、それらタスクを融合する(S751)。具体的には、それらタスクを、ノズルの位置を維持したまま連結することで、1つのタスクに合成する。
図149は、図148に示されたフローチャートにおける処理の具体例を示す図である。ここでは、図147に示された「タスク分割」により生成されたタスク列に対して「タスク融合」を行っていく場合の例が示されている。
図149(a)は、「タスク融合」の対象となるタスク列を示し、ここでは、図147(c)に示されたものに等しい。ここで、タスク5とタスク742は、同一のタスクセットに属し、かつ、マルチ装着ヘッド112上の異なる位置で吸着される部品だけを含んでいるので、これらタスク5及び742は、融合可能と判断される。
図149(b)は、図148のステップS751におけるタスクの融合の様子を示している。ここでは、タスク5とタスク742とが部品の位置を維持したまま融合されている様子が示されている。
図149(c)は、図149(b)のタスク列に対応するノズルパターンである。図147(d)に示されたノズルパターンと比較して分かるように、図149(c)に示されたノズルパターンでは、タイプMのノズルを含むタスクが1つ減少している。これによって、ノズル交換回数を増やすことなく、全体のタスク数が減少され、最適化レベルがさらに向上され得る。具体的には、ノズルの交換回数が2回から1回に減少している。
4.3.4 タスク入替
上述の「タスク分割」と「タスク融合」によって、ノズル交換動作は最適化されたが、その最適化は、対象となった1つのタスク列(多くの場合、1つの部品グループ)内での最適化に止まる。つまり、その前後に位置するタスク列との関係では、無駄なノズル交換が生じている可能性がある。
図150は、その具体例を示す。ここでは、「タスク分割」や「タスク融合」等によって部品グループの単位でノズル交換動作が最適化された2つの部品グループ1及び2のノズルパターン760及び761が示されている。部品グループ1のノズルパターン760は、タイプSのタスクセット760aとタイプMのタスクセット760bがこの順に並んで構成され、続く、部品グループ2のノズルパターン761は、タイプMのタスクセット761aとタイプSのタスクセット761bがこの順に並んで構成されているとする。
本図に示されたノズルパターンから分かるように、部品グループ間において無駄なノズル交換が生じている。例えば、タイプSのノズルに着目すると、タスクセット760aを実行するためにマルチ装着ヘッド112に装着され、続くタスクセット760bを実行するためにマルチ装着ヘッド112から取り外されるが、最後にタスクセット761aを実行するために再びマルチ装着ヘッド112に装着されなければならないという無駄が生じている。つまり、ノズルタイプが、S→M→S→Mと変化しているので、合計3回のノズル交換が必要とされている。
そこで、部品グループ間における無駄なノズル交換を解消するために、各部品グループに属するタスクセットを部品グループ内で入れ替える「タスク入替」を行うこととしている。
図151は、「タスク入替」による最適化アルゴリズムの処理手順を示すフローチャートである。ここでは、いわゆる総当り法により、最適なタスクセットの並びを決定している。
具体的には、まず、最適化の対象となる複数の部品グループ全体について、とり得る全てのタスクセットの順列を特定する(S760)。このとき、部品グループ単位での並びを変えないように、各タスクセットは、部品グループ内でのみ移動可能とする。
そして、各順列について(S761〜S763)、そのノズルパターンにおけるノズル交換回数を算出し(S762)、最も小さいノズル交換回数となるノズルパターン(タスクセットの順列)を求める最適解とする(S764)。
図152は、「タスク入替」による最適化によって得られたノズルパターンの例を示す。このノズルパターンは、図150に示されたノズルパターンに対する「タスク入替」によって得られたものであり、部品グループ1を構成する2つのタスクセット760a及び760bの順序が入れ替えられている。
本図に示されるノズルパターンによれば、ノズルタイプが、M→S→Mと変化するだけなので、合計2回のノズル交換で済む。つまり、「タスク入替」によって、3回のノズル交換が2回に削減されている。
4.4 ノズル制約を考慮した最適化
ここでは、ノズルステーション119に置かれるノズルの位置が固定されている場合への対応方法と、ノズルの本数が10本に満たない場合における小部品の最適化について説明する。
4.4.1 ノズルステーション上のノズル配置を固定した場合への対応
複数のNCデータを同時に最適化する場合等においては、NCデータごとにノズルステーション119上のノズル配置を異なるものにしておくことが許されない等の原因により、「ノズルステーション119上のノズル配置」が固定され、最適化における制約条件の1つとなってくる場合がある。
ノズルステーション119上のノズル配置を固定した場合には、部品実装機100の機構上の制約(ノズルステーション119上及び部品供給部115a及びb上でのマルチ装着ヘッド112の可動範囲)から、指定されたノズルで指定された部品を吸着することができないということが生じ得る。
そこで、ノズルステーション119上のノズル配置が与えられた場合に、可能解チェック(可能な部品実装順序が存在し得るか否かの判定)を行うこととしている。つまり、ノズルステーション119上のノズル配置と部品テープのZ配列とが与えられた場合に、対象とする全ての部品が対応するノズルで吸着され得るか否かを判断する。
図153は、その前提としての制約を説明するための図であり、ノズルステーション119上でのマルチ装着ヘッド112の可動範囲に基づくノズル交換の制約を示す図である。こここには、マルチ装着ヘッド112が最右端に位置するときのマルチ装着ヘッド112とノズルステーション119との相対的な位置関係(マルチ装着ヘッド112及びノズルステーション119の正面図)、ノズルステーション119の平面図、及び、ノズル配置と交換可能(装着可能)な装着ヘッドとの関係(○印が交換可能を意味する)を示すテーブル770が示されている。
なお、左方向については、マルチ装着ヘッド112は、ノズルステーション119の位置を超えて移動することができ、ノズル交換上の制約はない。
本図から分かるように、ノズルステーション119上の最左端から数えて第1〜第4列に置かれたノズルn1〜n4を装着できる装着ヘッドは、装着ヘッドH1〜H10であり、制約は存在しない。しかし、他のノズルn5〜n10については、制約が存在する。つまり、第5列に置かれたノズルn5を装着できる装着ヘッドは装着ヘッドH2〜H10に限られ、第6列に置かれたノズルn6を装着できる装着ヘッドは装着ヘッドH3〜H10に限られ、・・・、第10列に置かれたノズルn10を装着できる装着ヘッドは装着ヘッドH7〜H10に限られる。
図154は、もう1つの制約を説明するための図であり、部品供給部115a及びb上でのマルチ装着ヘッド112の可動範囲に基づく部品吸着の制約を示す図である(図5に対応するが、図5の内容と細部において異なる例である)。
図154(a)は、マルチ装着ヘッド112が最左端に位置するときのマルチ装着ヘッド112と部品供給部115aとの相対的な位置関係を示している。ここで、部品供給部115aに記された一連の数値は、Z番号である。図154(b)は、マルチ装着ヘッド112が最右端に位置するときのマルチ装着ヘッド112と部品供給部115bとの相対的な位置関係を示している。図154(c)は、Z番号ごとにアクセス可能な装着ヘッド(○印)と不可能な装着ヘッド(×印)とを示す表である。
本図から分かるように、Z番号1〜17、86〜96の部品テープについては、全ての装着ヘッドがアクセスできるわけではない。つまり、Z番号1の部品テープにアクセスできる装着ヘッドは、装着ヘッドH1だけであり、Z番号2の部品テープにアクセスできる装着ヘッドは、装着ヘッドH1、H2であり、・・・、Z番号17の部品テープにアクセスできる装着ヘッドは、装着ヘッドH1〜H9であり、Z番号86の部品テープにアクセスできる装着ヘッドは、装着ヘッドH2〜H10であり、・・・、Z番号96の部品テープにアクセスできる装着ヘッドは、装着ヘッドH7〜H10である。
なお、Z軸の左右両端近辺で、このようなアクセスの制約が生じるのは、部品実装機100の設計上の都合である。つまり、このような制約が生じないことよりも、部品供給部115a及びbにセットできる部品テープの数を多くすることを優先したためである。
以上の図153と図154とから分かるように、ノズルステーション119上のノズル配置が与えられた場合の可能解チェックは、Z軸の左端付近に配置された部品に対して装着ノズルがアクセスできるか否かを検討すればよいことになる。Z軸の左端付近にアクセス可能な装着ヘッドは、ヘッド番号の低い装着ヘッドに限られ(図154(c))、しかも、ヘッド番号の低い装着ヘッドは、ノズルステーション119上の全てのノズルを吸着できるとは限らない(図153(c))からである。
一方、Z軸の右端付近については、そのような検討は要らない。少なくとも、装着ヘッドH10は、ノズルステーション119上の全てのノズルを吸着することができ(図153(c))、最大のZ番号96の位置にアクセスすることができるので(図154(c))、ノズルステーション119上のノズル配置による制約は生じないからである。
図155は、ノズルステーション上のノズル配置が与えられた場合の可能解チェックをするときの処理手順を示すフローチャートである。
まず、与えられた部品テープのZ配列から、ノズルタイプNtype毎の最小のZ番号PZmin(Ntype,Z配列)を特定する(S780)。例えば、タイプSのノズルを用いる部品テープのうち、最左端に置かれる部品テープのZ番号を特定する。
次に、与えられたノズルステーション119上のノズル配置NPから、ノズルタイプNtypeごとに、以下の処理を繰り返す(S781〜S785)。
まず、そのノズルタイプNtypeのノズルを吸着することが可能な最小のヘッド番号Hmin(Ntype,NP)を特定する(S782)。例えば、タイプSのノズルは、ノズルステーション119上の最左列から数えて第6列に置かれている場合には、図153(c)に示された表を参照することで、このタイプSのノズルを吸着可能な装着ヘッドの最小番号は「3」と特定できる。
続いて、いま特定したヘッド番号Hmin(Ntype,NP)から、ノズルタイプNtypeのノズルが到達できる最小のZ座標NZmin(Ntype,NP)を特定する(S783)。例えば、ヘッド番号Hmin(Ntype,NP)が「3」である場合には、図154(c)に示された表を参照することで、このノズルが到達できる最小のZ座標NZmin(Ntype,NP)は「4」と特定することができる。
次に、いま特定したZ座標NZmin(Ntype,NP)が、そのノズルタイプNtypeについて上記ステップS780で特定したZ番号PZmin(Ntype,Z配列)以下であるか否かを判定する(S784)。つまり、当該Ntypeについて、
NZmin(Ntype,P)≦ PZmin(Ntype,Z配列)
が成立するか否か判定する。
これは、このノズルタイプNtypeのノズルについて、ノズルステーション119上のノズル配置によって定まるアクセス可能な最小のZ座標NZmin(Ntype,NP)が、与えられたZ配列から定まる最小のZ番号PZmin(Ntype,Z配列)以下であること、即ち、マルチ装着ヘッド112の左方向への移動に関して、そのノズルが、吸着すべき全ての部品を吸着することができるか否かを判定する。
その結果、全てのノズルタイプNtypeについて、ステップS784での判定が成立した場合には、与えられたノズル配置とZ配列に対して可能解が存在すると判断し(S786)、そうでない場合には、可能解が存在しないと判断する(S787)。
このような可能解チェックを初期タスクの構成時や状態更新時等に行うことで、ノズルステーション上のノズル配置を固定した影響を取り込んだ最適化が可能となる。
4.4.2 使用ノズルが10本未満の場合の小部品の最適化
マルチ装着ヘッド112は最大10個の部品を同時に吸着できるが、そのような効率的な部品吸着が可能となるのは、マルチ装着ヘッド112に10本のノズルが装着されていることが前提となる。ところが、生産現場においては、ある部品実装機100で使用できるノズルの本数が10本に満たないという状況が発生する。このような状況であっても、マルチ装着ヘッド112は、ノズルステーション119上でノズル交換を行うことで、装着するノズルの位置をずらす等の変更をすることができるので、理論的には、必要なタイプのノズルが少なくとも1本用意されていれば、Z軸上のいずれの位置に置かれた部品であっても吸着し、全ての部品に対する実装を完了することができる。
しかしながら、ノズル交換は時間を要する動作であるので、特に実装点数の多い小部品については、ノズル交換を最小に抑える実装順序が求められる。
そこで、使用ノズルが10本未満の場合における小部品の最適化として、刈り上げ処理等のこれまでの小部品用アルゴリズムをベースとし、ノズル交換が最小となるように、以下のような最適化を行うこととしている。
いま、使用ノズル本数がn(<10)本とすると、ノズルパターンについては、次の2つのノズルパターンを用意し、これら2つのノズルパターンだけ(場合によっては、いずれかのノズルパターンのみ)を用いて全ての小部品を実装することとする。
(i)ノズルパターン1
ヘッド番号1〜nにノズルを装着したパターン
(ii)ノズルパターン2
ヘッド番号(10−n+1)〜10にノズルを装着したパターン
図156は、使用ノズル本数が6本の場合に用意する2つのノズルパターンの例を示す。ノズルパターン1は、ヘッド番号1〜6の6個の装着ヘッドにだけノズルが装着された状態であり、ノズルパターン2は、ヘッド番号5〜10の6個の装着ヘッドにだけノズルが装着された状態である。
図157は、ノズル交換のタイミングを説明するフローチャートである。ここでは、与えられた部品テープのZ配列における位置(左右ブロック、Z番号)に応じて、2種類のノズルパターン1及び2のいずれを用いるか、及び、どのようなタイミングでノズルパターンを交換するかが示されている。
左ブロックに配置された部品テープについては(S800で左)、Z番号1〜17の位置に1つでも部品テープが配置されている場合には(S801でYes)、ノズルパターン1を用いてZ番号1から48の方向に部品を吸着していき(S802)、Z番号1〜17の位置に吸着すべき部品が無くなった時点で(S801でNo)、マルチ装着ヘッド112のノズルパターンを1から2に変え、残る部品をZ番号18から48の方向に吸着していく(S803)。
一方、左ブロックのZ番号1〜17の位置に1つも部品テープが配置されていない場合には(S801でNo)、最初からノズルパターン2を用いてZ番号18から48の方向に部品を吸着していく(S803)。
また、右ブロックに配置された部品テープについては(S800で右)、全ての部品に対して、最初からノズルパターン2で吸着していく(S804)。
このようなノズル交換のタイミングとしているのは、次の理由による。つまり、図154(c)に示されたZ番号ごとのアクセス可能な装着ヘッドのヘッド番号から分かるように、ヘッド番号10の装着ヘッドH10は、Z番号が18〜96の位置にアクセスできる。したがって、使用ノズルの本数nが1以上である限り、ノズルパターン2によってZ番号18〜96の部品テープは必ず吸着され得る。一方、Z番号1〜17の部品テープについては、少なくともヘッド番号1の装着ヘッドH1がそれら部品テープにアクセスできるので、使用ノズルの本数nが1以上である限り、ノズルパターン1によってZ番号1〜17の部品テープは必ず吸着され得る。そして、多くのZ番号にアクセスできるノズルパターン2を優先して使用する。これによって、わずか2種類のノズルパターンだけを用い、かつ、少ないノズル交換回数で、いかなる種類のZ配列についても適用することができる。
なお、吸着パターンの生成については、与えられた部品ヒストグラムに対して、これまでの10点単位に代えてn点単位で刈り上げ処理等を行うことで、吸着パターンを生成すればよい。
以上、本発明に係る部品実装順序の最適化について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されない。
例えば、最適化装置300は、具体的な構成を備える部品実装機100、200それぞれにダウンロードするための最適なNCデータを生成するために用いられたが、このような用途だけでなく、生産性に関する要求仕様を満たすために必要とされる生産ラインの構成を決定するために用いることができるのは言うまでもない。生産対象となる基板の実装点データとモデリングした仮想的な電子部品実装システムの実装装置情報等とを最適化装置300に与え、得られた最適状態(ラインタクト)が要求仕様を満たすか否か判断すればよい。
具体的には、この最適化装置300を、(i)実装装置の設計として、例えば、マルチ装着ヘッド112のノズル数を4ノズルヘッド→10ノズルヘッド→8ノズルヘッドを変えてみたり、ノズルピッチを21.5mm→22mと変えてみたり、部品カセットのピッチ(Z軸ピッチ)を変えてみたり、部品認識カメラの位置を変えてみたりすることで、最も効率のよい(生産性の高い)ヘッド等を決定するのに用いたり、(ii)複数の生産ラインのうち、どの生産ライン(又は、実装装置)で対象の基板を生産すべきかの決定に用いたり、(iii)実装装置の販売や営業用のツールとして、いかなるオプション(部品カセットやノズルの本数や種類)を装備すれば、いかなる生産性(時間あたり何枚の基板を生産することができるか)が確保されるかの計算に用いたりすることができる。
また、最適化装置300は、部品実装機100、200とは別個独立した装置であったが、これら部品実装機100、200に内蔵されていてもよい。
また、状態最適化部316は、部品グループG[1]〜G[5]に属する小部品と部品グループG[6]〜G[9]に属する汎用部品それぞれに対して、異なる探索アプローチによる最適化を行ったが、本発明は、このような分類やアプローチに限られない。
また、上記交差解消法では、2つのタスクそれぞれの部品の実装点を接続する折れ線(パス)どうしの交差を解消するように実装順序を入れ替えてみてタクトが小さくなるか否かで実装順序の最適化を行ったが、交差していないパスどうしを入れ替えてみてもよい。交差していないタスクのパスを入れ替えることでタクトが短縮化されることもあり得るからである。
なお、産業上の利用可能性として、本発明に係る部品実装順序最適化方法は、電子部品をプリント基板に実装する部品実装機による部品の実装順序を最適化する最適化装置に利用することができる。生産ラインに設置されて使用される部品実装機のコントローラとしてだけでなく、生産ラインを構築する前の段階で、導入予定の部品実装機の構成・仕様と部品実装時間との関係を見積もる等のために使用するシミュレーション・評価ツールとして利用することもできる。
5 用語の説明
本実施の形態で用いられている主な用語の意味を以下に列挙する。
部品実装システム:
最適化装置と部品実装機とを含むシステムのこと。
最適化装置:
部品の実装順序を最適化する装置のこと。具体的には、短いタクト(実装時間)で基板を生産するために、部品実装機における最適な部品カセットの配列(どの部品テープを収めた部品カセットを部品実装機のどの位置(Z軸)に配置するか)、マルチ装着ヘッドによる部品の吸着及び装着の順序(どの部品カセットから部品を吸着し、基板上のどの実装点に装着するか)等を決定する。
部品実装機:
最適化後のNCデータに従って、マルチ装着ヘッドを用いて部品カセットから部品を吸着し、基板に装着していく生産ロボットのこと。複数のサブ設備を備えるタイプもある。
サブ設備:
1つのマルチ装着ヘッドと複数の部品カセットを備え、他のサブ設備とは独立して(並行して)、基板への部品実装を実行する装置(実装ユニット)。
シングルカセット:
部品カセットの一種で、1つの部品テープだけが装填される。
ダブルカセット:
部品カセットの一種で、最大2個の部品テープが装填され得る。ただし、同一送りピッチの部品テープに限定される。
Z軸:
部品実装機(サブ設備を備える場合には、サブ設備)ごとに装着される部品カセットの配列位置を特定する座標軸(又は、その座標値)のこと。
部品種:
抵抗、コンデンサ等の電子部品の種類のこと。各部品種には、部品の情報(電気的特性、形状、部品数、最大分割数、カセット種別等)が対応づけられている。
部品テープ:
同一部品種の複数の部品をテープ上に並べたもの。最適化処理においては、同一の部品種に属する部品の集合(それら複数個の部品が仮想的なテープ上に並べられたもの)を特定するデータをいう。「部品分割」と呼ばれる処理によって、1つの部品種に属する部品群(又は、1本の部品テープ)が複数本の部品テープに分割される場合がある。分割後のテープ本数が分割数と呼ばれる。
実装点:
部品を装着すべき基板上の座標点のこと。同一部品種の部品が異なる実装点に装着される場合もある。同一の部品種に係る部品テープに並べられた部品(実装点)の個数の合計は、その部品種の部品数(実装すべき部品の総数)と一致する。
部品ヒストグラム:
部品テープ(部品種)を横軸、部品数を縦軸とする座標に描かれた柱状グラフのこと。最適化によって、最終的に、部品カセットの配列にマッピングされる。
コア:
部品数の多い順に部品テープを並べた部品ヒストグラムに対して、「刈り上げ法」により、n点同時吸着の吸着パターンで刈り上げていった結果、残った部品を「コア部品」といい、それらコア部品を収めた部品テープ、部品カセットそれぞれを「コア部品テープ」、「コアカセット」と呼ぶ。
刈り上げ:
部品数の多い順に部品テープを並べた部品ヒストグラムに対して、部品数の小さい部品から、n点同時吸着の吸着パターンを取り除いていく処理のこと。
タスク:
マルチ装着ヘッドによる部品の吸着・移動・基板上への装着という一連の実装動作の繰り返しにおける1回分の実装動作(吸着・移動・装着)のこと。
吸着パターン:
1以上のタスクについて、マルチ装着ヘッドが(同時)吸着する部品をタスク単位で示した図、又は、それらの部品群のこと。
タスクグループ:
部品の同時吸着という観点から関連したタスクの集まりのこと。部品数が同じ部品テープをn本集め、それらn本の部品テープから1点ずつn個の部品を同時に吸着できるように、n点同時吸着できるタスクを集めることを目指してタスクグループを作ることによって部品カセットの並びを決定する最適化手法を「タスクグループ生成法」と呼ぶ。
山:
最適化によって並びが決定された部品テープの集まり、又は、それら部品テープの並びに対応する部品ヒストグラムのこと。「刈り上げ法」による最適化が施された後の部品ヒストグラムは、緩やかな斜面と急な斜面を有する「山」の形状を有する。生成された「山」に対して更に最適化が施される場合もある。
ラインバランス:
部品実装機(サブ設備を備える場合には、サブ設備)ごとのタクトの分布における平準化の程度のこと。タクト分布を平準化するように部品実装順序を決定する処理を「ラインバランス処理」と呼ぶ。
本発明は、電子部品をプリント配線基板等の基板に実装する部品実装機を対象として最適な部品の実装順序を決定する部品実装順序最適化装置として、また、部品実装順序を決定するコントローラを備える部品実装機あるいは部品実装システムとして、さらに、部品実装機と接続されていない状態で部品の実装順序を決定し評価するスタンドアローンのシミュレータ(部品実装順序の最適化ツール)等として、利用することができる。
本発明に係る部品実装システム全体の構成を示す外観図である。 同部品実装システムにおける部品実装機の主要な構成を示す平面図である。 同部品実装機の作業ヘッドと部品カセットの位置関係を示す模式図である。 (a)は、同部品実装機が備える2つの実装ユニットそれぞれが有する合計4つの部品供給部の構成例を示し、(b)は、その構成における各種部品カセットの搭載本数及びZ軸上の位置を示す表である。 10ノズルヘッドが吸着可能な部品供給部の位置(Z軸)の例を示す図及び表である。 実装の対象となる各種チップ形電子部品の例を示す図である。 部品を収めたキャリアテープ及びその供給用リールの例を示す図である。 テーピング電子部品が装着された部品カセットの例を示す図である。 最適化装置のハードウェア構成を示すブロック図である。 図9に示された実装点データの内容例を示す図である。 図9に示された部品ライブラリの内容例を示す図である。 図9に示された実装装置情報の内容例を示す図である。 最適化装置の構成を示す機能ブロック図である。 図9に示された最適化プログラムの機能構成を示すモジュール構成図である。 (a)は、部品グループ生成部が生成する部品グループを説明するための図であり、(b)は、部品グループ生成部による部品グループの生成過程で作成される部品表の例を示す図である。 ラインバランス最適化部の第1LBM部によるタスクグループのサブ設備への振り分け処理の様子を示す図である。 ラインバランス最適化部の第2LBM部によるラインバランスの最適化前におけるタクト分布、最適化によるタスクグループの移動の様子、最適化後におけるタクト分布を示す。 ラインバランス最適化部の第2LBM部によるラインバランスの最適化手順を示すフローチャートである。 状態最適化部の小部品最適化部による小部品の実装順序最適化の概略手順を示すフローチャートである。 吸着パターンを説明するための図である。 タスクグループ生成法による吸着パターンの生成の対象となる部品の部品ヒストグラム、その部品ヒストグラムから生成される吸着パターンを示す。 部品ヒストグラムにおける未配置部分、その部品ヒストグラムの未配置部分から生成される吸着パターンを示す。 刈り上げ法による吸着パターンの生成の対象となる部品の部品ヒストグラムである。 図23に示された部品ヒストグラムから、10個の部品並びの単位で部品を取っていく(刈り上げていく)様子を示す図である。 図24に示された刈り上げ後に残された部品を対象とする部品ヒストグラムである。 図25に示された部品ヒストグラムに対して、タスクグループ生成法に準じたダイヤグラムの生成を行っている様子を示す図である。 刈り上げ法によってZ軸が決定された部品種についての吸着パターンである。 図27に示された吸着パターンに対応する(Z軸を変化させない再構築した)部品ヒストグラムである。 ランダム選択法による部品の装着順序の最適化の手順を示すフローチャートである。 ランダム選択法によって2つの実装点が入れ替えられる様子を示すである。 交差解消法により部品の装着順序を最適化する様子を示す図である。 戻り軌跡法によりタスクの順序を最適化する際に生成される作業ヘッドの移動軌跡(実装経路)を示す図である。 同一位置の複数の吸着パターンが含まれる場合における戻り軌跡法で生成される作業ヘッドの移動軌跡を示す図である。 (a)は、汎用部品最適化部による汎用部品の実装順序を最適化する際の手順を示すフローチャートであり、(b)は、その最適化による最適解の探索アプローチを説明するための状態vsタクトの関係を示す図である。 図34(a)に示された山登り法による最適化(ステップS551、S553)の詳細な手順を示すフローチャートである。 図34(a)に示されたマルチカノニカル法による最適化(ステップS552)の詳細な手順を示すフローチャートである。 (a)は、汎用部品最適化部が用いている中間表現の具体例を示し、(b)〜(e)は、に示された中間表現の意味(Z軸配列への変換)を示す図である。 「タスクグループ法」による最適化の概念を説明するための部品ヒストグラムである。 小部品に対する最適化処理のフロー図である。 刈り上げ処理の様子を示す部品ヒストグラムである。 コア処理の様子を示す部品ヒストグラムである。 刈り上げ処理とコア処理が施された後の部品ヒストグラムである。 「交差解消法」による最適化の概念を説明するための実装経路図である。 「戻り最適化」の概念を説明するための作業ヘッドの動きを示す図である。 配列固定の制約下における最適化の概要を示す部品ヒストグラムである。 LLサイズ基板及びXLサイズ基板において作業ヘッドが部品を装着する際に移動できる範囲の限界に基づく制約領域を示す図である。 LLサイズ基板を対象とした最適化の概念を説明するための部品ヒストグラムである。 「刈り上げ法」による最適化のステップ(1)を説明するための部品ヒストグラムである。 同ステップ(2)を説明するための部品ヒストグラムである。 同ステップ(3)を説明するための部品ヒストグラムである。 同ステップ(4)を説明するための部品ヒストグラムである。 同ステップ(5)を説明するための部品ヒストグラムである。 同ステップ(6)を説明するための部品ヒストグラムである。 同ステップ(7)を説明するための部品ヒストグラムである。 同ステップ(8)を説明するための部品ヒストグラムである。 同ステップ(9)を説明するための部品ヒストグラムである。 同ステップ(10)を説明するための部品ヒストグラムである。 同ステップ(11)を説明するための部品ヒストグラムである。 同ステップ(12)を説明するための部品ヒストグラムである。 同ステップ(13)を説明するための部品ヒストグラムである。 同ステップ(14)を説明するための部品ヒストグラムである。 同ステップ(15)を説明するための部品ヒストグラムである。 同ステップ(16)を説明するための部品ヒストグラムである。 同ステップ(17)を説明するための部品ヒストグラムである。 同ステップ(18)を説明するための部品ヒストグラムである。 同ステップ(19)を説明するための部品ヒストグラムである。 同ステップ(20)を説明するための部品ヒストグラムである。 同ステップ(21)を説明するための部品ヒストグラムである。 同ステップ(22)を説明するための部品ヒストグラムである。 同ステップ(23)を説明するための部品ヒストグラムである。 平行四辺形のテンプレートを用いたカセット分割による最適化のステップ(1)〜(3)を説明するための部品ヒストグラムである。 同ステップ(4)〜(6)を説明するための部品ヒストグラムである。 同ステップ(7)〜(8)を説明するための部品ヒストグラムである。 同ステップ(9)の一部を説明するための部品ヒストグラムである。 同ステップ(9)の残るステップ(10)を説明するための部品ヒストグラムである。 長方形のテンプレートを用いたカセット分割による最適化のステップ(1)〜(3)を説明するための部品ヒストグラムである。 同ステップ(3)〜(5)を説明するための部品ヒストグラムである。 同ステップ(5)の一部を説明するための部品ヒストグラムである。 同ステップ(5)の残る一部を説明するための部品ヒストグラムである。 「交差解消法」による最適化の概念を示す実装経路図である。 「交差解消法」のアルゴリズムを説明するための実装経路図である。 「交差解消法」による最適化の適用例を示す実装経路図である。 「戻り最適化法」による最適化の概念を示す作業ヘッドの移動軌跡図である。 (a)は、同一の部品カセットに複数の実装点がある場合における「戻り」動作を示す図であり、(b)は、「戻り最適化法」を適用した場合のヘッドの戻り軌跡を示すシミュレーション結果図である。 ダブルカセットを対象とした配列固定の制約下における最適化のステップ(1)を説明するための部品ヒストグラムである。 同ステップ(2)を説明するための部品ヒストグラムである。 同ステップ(3)を説明するための部品ヒストグラムである。 同ステップ(4)を説明するための部品ヒストグラムである。 同ステップ(5)を説明するための部品ヒストグラムである。 同ステップ(6)を説明するための部品ヒストグラムである。 同ステップ(7)を説明するための部品ヒストグラムである。 同ステップ(8)を説明するための部品ヒストグラムである。 同ステップ(9)を説明するための部品ヒストグラムである。 同ステップ(10)を説明するための部品ヒストグラムである。 (a)及び(b)は、Z軸に空きがある場合における前サブ設備と後サブ設備の実装時間の例、及び、そのときのラインバランス処理を示す説明図であり、(c)及び(d)は、Z軸に空きがない場合における前サブ設備と後サブ設備の実装時間の例、及び、そのときのラインバランス処理(スワップ処理)を示す説明図である。 ダブルカセットを対象とした「刈り上げ法」による最適化のステップ(1)を説明するための部品ヒストグラムである。 同ステップ(2)を説明するための部品ヒストグラムである。 同ステップ(3)を説明するための部品ヒストグラムである。 同ステップ(4)を説明するための部品ヒストグラムである。 同ステップ(5)を説明するための部品ヒストグラムである。 同ステップ(6)を説明するための部品ヒストグラムである。 同ステップ(7)を説明するための部品ヒストグラムである。 同ステップ(8)を説明するための部品ヒストグラムである。 同ステップ(9)を説明するための部品ヒストグラムである。 同ステップ(10)を説明するための部品ヒストグラムである。 同ステップ(11)を説明するための部品ヒストグラムである。 ノズル交換のアルゴリズムを説明するための図であり、(a)は、対象の部品の種類(使用可能なノズルの番号)と員数を示す表であり、(b)は、処理過程を示す部品ヒストグラムである。 「メイン画面」の表示例を示す図である。 「」の表示例を示す図である。 「開く画面」の表示例を示す図である。 「カセット個数設定画面」の表示例を示す図である。 「部品分割設定画面」の表示例を示す図である。 「ノズル本数設定画面」の表示例を示す図である。 「ノズルステーション選択画面」の表示例を示す図である。 「オプション設定画面」の表示例を示す図である。 「Z軸情報画面」の表示例を示す図である。 「ノズルステーション情報画面」の表示例を示す図である。 部品分割することなく効率的な吸着パターン(Z配列)を決定するアルゴリズムの処理手順を示すフローチャートである。 図118に示されたフローチャートの処理手順を説明するための部品テープの並びを示す。 図118に示された最適化アルゴリズムによる最適化のレベルを説明するための図であり、単に員数の多い順に(右から左方向に)部品テープが並べられた部品ヒストグラムを示す。 図120に示された部品ヒストグラムを刈り上げた場合の吸着上下回数パターンを示す。 図118に示された手順で並び替えられた部品ヒストグラムを示す。 図122に示された部品ヒストグラムを刈り上げた場合の吸着上下回数パターンを示す。 左右ブロックへの山の振り分け処理の手順を示すフローチャートである。 図124に示されたフローチャートによる処理の様子を示す。 図124に示されたフローチャートによる他のケースにおける処理の様子を示す。 ダブルカセットの使用本数を見積もるアルゴリズムの処理手順を示すフローチャートである。 ある部品グループに属する部品テープの内訳を示す。 必要なダブルカセットの本数の計算例を示す。 ダブルカセットのペア固定を考慮したZ配列の最適化アルゴリズムの処理手順を示すフローチャートである。 図130におけるステップS660での処理の様子を示している。 図130におけるステップS661での処理の様子を示している。 図130におけるステップS662での処理の様子を示している。 図130におけるステップS664での処理の様子を示している。 NGヘッドを考慮した最適化アルゴリズムの処理手順を示すフローチャートである。 NGヘッドが無い場合とNGヘッドがある場合それぞれの吸着パターンを比較して説明するための図であり、対象となる部品ヒストグラムを示す。 NGヘッドが無い場合の図136に示された部品ヒストグラムに対する吸着パターン(刈り上げ処理とコア処理による)を示す。 ヘッド番号2の装着ヘッドがNGヘッドである場合の図136に示された部品ヒストグラムに対する吸着パターンを示す。 複数のNCデータを同時に最適化するときの全体の処理手順を示すフローチャートである。 複数NCデータのZ配列を同時に最適化する処理手順を示すフローチャートである。 初期Z配列の決定に用いる3種類の方法を説明する具体例を示す図である。 「横取り法」による初期タスクの生成アルゴリズムの処理手順を示すフローチャートである。 図142に示されたフローチャートにおける前半処理(S720〜S722)の具体例を示す図である。 図142に示されたフローチャートにおける後半処理(S723〜S726)の具体例を示す図である。 「横取り法」による最適化の効果を示す図である。 「タスク分割」によるノズル交換動作の最適化アルゴリズムの処理手順を示すフローチャートである。 図146に示されたフローチャートにおける処理の具体例を示す図である。 「タスク融合」による最適化アルゴリズムの処理手順を示すフローチャートである。 図148に示されたフローチャートにおける処理の具体例を示す図である。 「タスク入替」による最適化を行う前のノズルパターンの例を示す。 「タスク入替」による最適化アルゴリズムの処理手順を示すフローチャートである。 「タスク入替」による最適化によって得られたノズルパターンの例を示す。 ノズルステーション上でのマルチ装着ヘッドの可動範囲に基づくノズル交換の制約を示す図である。 フィーダ供給部上でのマルチ装着ヘッドの可動範囲に基づく部品吸着の制約を示す図である。 ノズルステーション上のノズル配置が与えられた場合の可能解チェックをするときの処理手順を示すフローチャートである。 使用ノズル本数が6本の場合に用意する2つのノズルパターンの例を示す。 図156に示されたノズルパターンを用いて部品を吸着する場合のノズル交換のタイミングを説明するフローチャートである。
符号の説明
10 部品実装システム
20 回路基板
100 部品実装機
110 実装ユニット
112 作業ヘッド
112a〜112b 吸着ノズル
113 XYロボット
114 部品カセット
115a、b、225a、b 部品供給部
116 認識カメラ
117 トレイ供給部
118 シャトルコンベア
119 ノズルステーション
120 実装ユニット
300 最適化装置
301 演算制御部
302 表示部
303 入力部
304 メモリ部
305 最適化プログラム格納部
306 通信I/F部
307 データベース部
307a 実装点データ
307b 部品ライブラリ
307c 実装装置情報
314 部品グループ生成部
315 ラインバランス最適化部
315a 第1LBM部
315b 第2LBM部
315c 第3LBM部
316 状態最適化部
316a 小部品最適化部
316b 汎用部品最適化部
316c 最適化エンジン部
316c 最適化エンジン部

Claims (7)

  1. 同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、
    前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
    そのタスクグループに属する任意の1つの第1タスクを選択し、その第1タスクの最終実装点を特定し、その第1タスクを除く全てのタスクのうち、タスクの吸着位置が前記第1タスクの最終実装点から最も近い位置にある第2タスクを特定し、以下同様にして、第2タスクの最終実装点を特定し、第3タスクを特定することを、前記第1タスクが再び特定されるまで、繰り返し、前記第1タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、
    そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、
    前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含む
    ことを特徴とする部品実装順序最適化方法。
  2. 前記部品実装順序最適化方法はさらに、ある最短巡回部分経路に属する全ての部品の実装を終えてから次の最短巡回部分経路を開始するのに装着ヘッドが移動すべき距離が最短となるように、各最短巡回部分経路における最初のタスク及びそれら最短巡回部分経路の順序を決定し、決定されたタスクの並びとなるように、前記タスクの順序を入れ替えるステップを含む
    ことを特徴とする請求項1記載の部品実装順序最適化方法。
  3. 同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する方法であって、
    前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループを生成するタスクグループ生成ステップと、
    生成されたタスクグループそれぞれについて、タスクグループを構成する全ての部品の実装に要する時間が最小となるように、タスクグループ内でタスクの順序を入れ替え、得られたタスク順序に対応する部品の実装順序を最適化されたものとするタスク入替ステップとを含み、
    あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
    前記タスク入替ステップでは、
    そのタスクグループに属する任意の1つの第1タスクを選択し、その第1タスクの最終実装点を特定し、その第1タスクを除く全てのタスクのうち、タスクの吸着位置が前記第1タスクの最終実装点から最も近い位置にある第2タスクを特定し、以下同様にして、第2タスクの最終実装点を特定し、第3タスクを特定することを、前記第1タスクが再び特定されるまで、繰り返し、前記第1タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定ステップと、
    そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定ステップを繰り返す繰り返しステップと、
    前記繰り返しステップでの繰り返しによって特定された最短巡回部分経路を並べる配列ステップとを含む
    ことを特徴とする部品実装順序最適化方法。
  4. 同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化する実装順序最適化装置であって、
    前記装着ヘッドにより、部品の吸着・移動・装着という一連の動作の繰り返しにおける1回分の一連動作によって実装される部品をタスクとする複数のタスクの並びからなるタスクグループにおいて、あるタスクに属する全ての部品を基板に装着し終えた直後の装着ヘッドの位置をそのタスクの最終実装点とし、あるタスクに属する部品を吸着するときの装着ヘッドの位置をそのタスクの吸着位置とした場合に、
    そのタスクグループに属する任意の1つの第1タスクを選択し、その第1タスクの最終実装点を特定し、その第1タスクを除く全てのタスクのうち、タスクの吸着位置が前記第1タスクの最終実装点から最も近い位置にある第2タスクを特定し、以下同様にして、第2タスクの最終実装点を特定し、第3タスクを特定することを、前記第1タスクが再び特定されるまで、繰り返し、前記第1タスクが再び特定された場合に、それらタスクの集まりを最短巡回部分経路として特定する最短巡回部分経路特定手段と、
    そのタスクグループに属する全てのタスクが特定されるまで、前記最短巡回部分経路特定手段による処理を繰り返す繰り返し手段と、
    前記繰り返し手段での繰り返しによって特定された最短巡回部分経路を並べる配列手段とを備える
    ことを特徴とする部品実装順序最適化装置。
  5. 同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機を対象とし、コンピュータの実行により部品の実装順序を最適化するためのプログラムであって、
    請求項1〜3のいずれか1項に記載の部品実装順序最適化方法に含まれるステップをコンピュータに実行させる
    ことを特徴とするプログラム。
  6. 請求項5記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
  7. 同一種類の部品の集まりを1つの部品テープとする部品テープを収納した部品カセットの並びと、その並びから、部品を吸着し、基板に実装していく装着ヘッドとを備える部品実装機であって、
    請求項1〜3のいずれか1項に記載の部品実装順序最適化方法によって最適化された部品実装順序で部品を実装していく
    ことを特徴とする部品実装機。
JP2003313513A 2001-05-17 2003-09-05 部品実装順序最適化方法、その装置及び部品実装機 Expired - Lifetime JP3582655B6 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003313513A JP3582655B6 (ja) 2001-05-17 2003-09-05 部品実装順序最適化方法、その装置及び部品実装機

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001147566 2001-05-17
JP2001147566 2001-05-17
JP2003313513A JP3582655B6 (ja) 2001-05-17 2003-09-05 部品実装順序最適化方法、その装置及び部品実装機

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002161042A Division JP3582653B2 (ja) 2001-05-17 2002-06-03 部品実装順序最適化方法、その装置及び部品実装機

Publications (3)

Publication Number Publication Date
JP2004031984A JP2004031984A (ja) 2004-01-29
JP3582655B2 JP3582655B2 (ja) 2004-10-27
JP3582655B6 true JP3582655B6 (ja) 2005-05-25

Family

ID=

Similar Documents

Publication Publication Date Title
EP1350419B1 (en) Method for optimization of an order of component mounting, apparatus using the same, and mounter
EP1827073A1 (en) Action time shortening method, action time shortening device, program, and parts mounting machine
US7603193B2 (en) Method for optimization of an order for component mounting and apparatus for optimization of an order for component mounting
JP3466141B2 (ja) 部品実装順序最適化方法、その装置及び部品実装装置
JP3516600B2 (ja) 配列データ最適化方法、最適化装置、部品実装機、及び配列データ最適化プログラムを記録した、コンピュータ読み取り可能な記録媒体
JP3582653B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3418188B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3480732B2 (ja) 部品実装順序最適化方法及びその装置
JP3470897B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3582655B6 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3582656B6 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3466153B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3531930B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3582655B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3582656B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3480731B2 (ja) 部品実装順序最適化方法及びその装置
JP3447008B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3476191B2 (ja) 部品実装順序最適化方法
JP3531929B2 (ja) 部品実装順序最適化方法、その装置及び部品実装機
JP3470896B2 (ja) 部品実装順序最適化方法及びその装置
JP2005101574A (ja) 部品実装順序最適化方法および部品実装順序最適化装置
JP2006093349A (ja) 回路基板の生産方法
JP2005332955A (ja) 部品カセット並び決定方法