(57)【特許請求の範囲】
【請求項１】
実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を、コンピュータにより支援する開発支援方法であって、
前記制御プログラムは、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記駆動部の状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表に基づいて生成され、且つ前記駆動部の状態が遷移する毎に、前記駆動部の駆動状態を示す統計情報をログファイルに出力するものであり、
前記状態遷移表に定義されている前記駆動部の状態は、複数のグループのいずれかに分類され、
該開発支援方法は、
前記実装基板製造装置に組み込まれた前記制御プログラムによって出力される前記統計情報を、前記ログファイルから読み出す統計情報取得ステップと、
前記統計情報取得ステップで取得された前記駆動部の状態毎の統計情報を、前記グループ毎に集計する統計情報集計ステップと、
前記統計情報集計ステップで集計された前記グループ毎の統計情報を出力する統計情報出力ステップとを含む
開発支援方法。
【請求項２】
前記複数のグループは、さらに、複数の上位グループのいずれかに分類され、
前記統計情報集計ステップでは、さらに、前記統計情報取得ステップで取得された前記状態毎の統計情報を、前記上位グループ毎に集計し、
前記統計情報出力ステップでは、さらに、前記統計情報集計ステップで集計された前記上位グループ毎の統計情報を出力する
請求項１に記載の開発支援方法。
【請求項３】
前記状態毎の統計情報は、当該状態における前記駆動部の動作時間、又は当該状態における前記駆動部の消費電力量を示す情報である
請求項１又は２に記載の開発支援方法。
【請求項４】
請求項１〜３のいずれか１項に記載の開発支援方法を、コンピュータに実行させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、開発支援方法、特に、実装基板製造装置の駆動部の動作を制御する制御プログラムの開発を支援する方法に関するものである。
【背景技術】
【０００２】
ソフトウェアの開発効率向上のため、特に、モレ、ヌケを事前に見出すための状態遷移表設計手法に基づくソフトウェア設計ツールは、状態遷移表から自動的にソースコードを生成する機能を備えている。また、このようなソフトウェア設計ツールの中には、さらにシミュレーションテスト機能まで備えたものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１０２２０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上述のソフトウェア設計ツールにおいて、実際にシミュレーションテストを実施しようとすると、別の開発ツールで別途テスト用モジュールを作成しなければならない。すなわち、各テスト用モジュールをカスタム作成しなければならず、開発ツールとして利用されにくいという課題がある。
【０００５】
本発明は、上記の課題に鑑みてなされたものであり、制御プログラムの開発を効率的に行なうことができる開発支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一形態に係る開発支援方法は、実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を、コンピュータにより支援する方法である。前記制御プログラムは、前記駆動部の状態と、前記制御プログラムの外部で実行される処理の結果として生じるイベントと、前記駆動部の状態及び前記イベントの組み合わせのそれぞれに対して、前記駆動部が実行する動作及び前記駆動部の次の状態とが定義されている状態遷移表に基づいて生成され、且つ前記駆動部の状態が遷移する毎に、前記駆動部の駆動状態を示す統計情報をログファイルに出力するものである。また、前記状態遷移表に定義されている前記駆動部の状態は、複数のグループのいずれかに分類されている。そして、該開発支援方法は、前記実装基板製造装置に組み込まれた前記制御プログラムによって出力される前記統計情報を、前記ログファイルから読み出す統計情報取得ステップと、前記統計情報取得ステップで取得された前記駆動部の状態毎の統計情報を、前記グループ毎に集計する統計情報集計ステップと、前記統計情報集計ステップで集計された前記グループ毎の統計情報を出力する統計情報出力ステップとを含む。
【０００７】
このように、統計情報をグループ毎に集計して表示することにより、例えば、処理時間が著しく長いグループが存在する場合に、当該箇所が一連の処理の中でボトルネックになっていると判断することができる。このような解析結果を踏まえて制御プログラムを修正することにより、実装基板製造装置の処理速度を向上させることができる。同様に、消費電力量が著しく長いグループの処理を中心に制御プログラム修正することにより、実装基板製造装置の電力消費量を抑えることができる。
【０００８】
さらに、前記複数のグループは、複数の上位グループのいずれかに分類されていてもよい。前記統計情報集計ステップでは、さらに、前記統計情報取得ステップで取得された前記状態毎の統計情報を、前記上位グループ毎に集計してもよい。そして、前記統計情報出力ステップでは、さらに、前記統計情報集計ステップで集計された前記上位グループ毎の統計情報を出力してもよい。
【０００９】
このように、グループを階層化することにより、より柔軟に制御プログラムの性能を評価することが可能となる。
【００１０】
例えば、前記状態毎の統計情報は、当該状態における前記駆動部の動作時間、又は当該状態における前記駆動部の消費電力量を示す情報であってもよい。但し、統計情報はこれらに限定されず、他の情報であってもよい。
【００１１】
本発明の一形態に係るプログラムは、上記記載の開発支援方法を、コンピュータに実行させる。
【発明の効果】
【００１２】
本発明によれば、状態遷移表に基づいて制御プログラムの生成し、状態遷移表に定義されている状態をグループ化して、グループ毎に集計した統計情報を出力する。そして、プログラム作成者は、出力された統計情報に基づいて制御プログラムを修正することができる。すなわち、この開発支援方法によれば、制御プログラムの開発を効率的に行なうことができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態における部品実装システムの外観図である。
【図２】図２は、部品実装機の内部の主要な機械的構成を示す構成図である。
【図３】図３は、ヘッドと部品カセットとの位置関係を示す模式図である。
【図４】図４は、部品を収めた部品テープ及びリールの例を示す図である。
【図５】図５は、本実施の形態における部品実装機の機能ブロック図である。
【図６】図６は、ＮＣデータの一例を示す図である。
【図７】図７は、部品ライブラリの一例を示す図である。
【図８】図８は、実装条件データの一例を示す図である。
【図９】図９は、開発支援プログラムを実行するコンピュータのハードウェア構成を示す図である。
【図１０】図１０は、状態遷移表の例を示す図である。
【図１１】図１１は、図１０の状態遷移表から生成されるソースコードの例を示す図である。
【図１２】図１２は、開発支援プログラムの動作を示すフローチャートである。
【図１３】図１３は、ログファイルに書き込まれたログの一例を示す図である。
【図１４】図１４は、ヘッドの各状態のグループ化の例を示す図である。
【図１５】図１５は、開発支援プログラムによる統計情報の出力例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施の形態における部品実装システムの外観図である。
【００１５】
本実施の形態における部品実装システム１０００は、部品実装機１００と、部品実装機１００を制御する制御装置２００とを備えている。なお、図１では、制御装置２００を部品実装機１００とは別体として図示しているが、部品実装機１００内に制御装置２００を設けてもよい。
【００１６】
部品実装機１００は、上流から基板（回路基板）２０を受け取り、その基板２０に対して部品を実装し、その部品が実装された基板２０を下流側に送り出す。なお、部品実装機１００によって部品が実装された基板２０を、以下、実装基板という。
【００１７】
具体的には、部品実装機１００は、複数種の部品を供給する２つの部品供給部１１５ａ、１１５ｂと、基板２０を部品実装機１００の内部に搬入する搬入口１３０とを備える。部品実装機１００は、搬入口１３０から搬入された基板２０を、所定位置で停止させる。そして、部品実装機１００は、部品供給部１１５ａ、１１５ｂから供給される部品を順次取り出し、所定位置で停止している基板２０に対して、取り出した部品を実装する。
【００１８】
また、部品実装機１００は、部品供給部１１５ａ、１１５ｂから供給された部品、当該部品を実装する前の基板２０、及び基板２０に実装された後の部品の状態等を、撮像装置等を用いて認識する。
【００１９】
制御装置２００は、部品実装機１００による部品の実装条件などを決定して、その実装条件に沿って実装が行われるように部品実装機１００を制御する。
【００２０】
図２は、部品実装機１００の内部の主要な機械的構成を示す構成図である。
【００２１】
部品実装機１００は、基板２０に対して部品を実装する２つの実装ユニット１１０ａ、１１０ｂと、基板２０を搬送するための一対の基板搬送レール１２２ａ、１２２ｂと、一対のビーム駆動ロボット１４０とを備えている。２つの実装ユニット１１０ａ、１１０ｂは、協調して基板搬送レール１２２ａ、１２２ｂ上にある基板２０に対して部品を実装する。
【００２２】
実装ユニット１１０ａ及び実装ユニット１１０ｂは、それぞれ同様の構成を有している。つまり、実装ユニット１１０ａは、部品供給部１１５ａ、部品検査部１１６ａ、ヘッド１１２ａ、及びビーム１２１ａを備えている。同様に、実装ユニット１１０ｂは、部品供給部１１５ｂ、部品検査部１１６ｂ、ヘッド１１２ｂ、及びビーム１２１ｂを備えている。
【００２３】
ここで、実装ユニット１１０ａの詳細な構成について説明する。なお、実装ユニット１１０ｂの詳細な構成については、実装ユニット１１０ａと同様であるため省略する。
【００２４】
部品供給部１１５ａは、部品テープを収納する複数の部品カセット（フィーダ）１１４の配列からなる。また、部品供給部１１５ａの各部品カセット１１４は、基板２０の搬送方向（Ｘ軸方向）に沿って配列している。なお、部品テープとは、例えば、同一部品種の複数の部品がテープ（キャリアテープ）上に並べられたものであり、リール等に巻かれた状態で供給される。また、部品テープに並べられる（収納される）部品は、例えばチップ部品であって、具体的には０４０２チップ部品や１００５チップ部品などである。
【００２５】
ヘッド１１２ａは、例えばマルチ装着ヘッドと呼ばれるヘッドであって、複数の吸着ノズル（以下、単にノズルという）を備えることができる。例えば、部品供給部１１５ａから１０個の部品を吸着して基板２０に装着することができる。このようなヘッド１１２ａは、軸状に構成されたビーム１２１ａに対してスライド自在に取り付けられている。ヘッド１１２ａは、例えば、モータなどのアクチュエータの駆動により、ビーム１２１ａに沿って移動する。また、ヘッド１１２ａには、部品を実装する前の基板２０の状態、及び基板２０に実装された後の部品の状態等を検査する部品検査部１１６ａ、１１６ｂが設けられている。
【００２６】
ビーム１２１ａは、基板２０の搬送方向（Ｘ軸方向）と垂直な方向（Ｙ軸方向）に沿って互いに平行に配置された一対のビーム駆動ロボット１４０上に、Ｙ軸方向にスライド自在に取り付けられている。したがって、ビーム１２１ａは、例えばモータなどのアクチュエータの駆動により、一対のビーム駆動ロボット１４０上をＹ軸方向に沿って移動する。すなわち、ヘッド１１２ａは、ビーム駆動ロボット１４０およびビーム１２１ａによってＸ軸方向およびＹ軸方向に移動する。
【００２７】
基板搬送レール１２２ａ、１２２ｂは、それぞれＸ軸方向に対して平行となるように配置されている。ここで、基板搬送レール１２２ａは、部品供給部１１５ａ側に寄せて固定されている。一方、基板搬送レール１２２ｂは、搬送される基板２０のサイズ（幅）に応じてＹ軸方向に移動する。部品実装機１００の搬入口１３０から搬入された基板２０は、一対の基板搬送レール１２２ａ、１２２ｂ上に沿って搬送されてストッパーなどにより所定位置で停止される。
【００２８】
部品検査部１１６ａは、ヘッド１１２ａに吸着された部品の形状や吸着状態を２次元又は３次元的に検査するために用いられる。また、部品検査部１１６ａは、部品供給部１１５ａにおけるＸ軸方向に沿った中央付近に配置されている。
【００２９】
このように構成された部品実装機１００において、ヘッド１１２ａは、部品供給部１１５ａから供給される部品を吸着して基板２０上に移動し、吸着している部品をその基板２０の各実装点に装着し、部品供給部１１５ａ上に移動するという一連の動作を繰り返し実行する。ヘッド１１２ｂも同様に、部品供給部１１５ｂから供給される部品を吸着して基板２０上に移動し、吸着している部品をその基板２０の各実装点に装着し、部品供給部１１５ｂ上ａに移動するという一連の動作を繰り返し実行する。
【００３０】
このように実行される一連の動作、または１回あたりの一連の動作でヘッドに吸着される部品群を、以下、タスクという。また、実装点とは、基板２０上の部品が実装されるべき位置である。
【００３１】
ヘッド１１２ａによる１つのタスクの例を具体的に説明する。まず、ヘッド１１２ａは、Ｘ軸方向およびＹ軸方向に移動しながら、部品供給部１１５ａの各部品カセット１１４から供給される１タスク分の部品を吸着する。その後、ヘッド１１２ａは、部品検査部１１６ａ上を一定速度で移動する、或いは一時停止することにより、吸着している部品を部品検査部１１６ａに撮像させ、基板２０の実装領域上に入る前のポイントである突入ポイントに到達する。そして、ヘッド１１２ａは、その突入ポイントから所定のタイミングで移動を開始して基板２０の実装領域上に入る。なお、突入ポイントは複数点あってもよい。
【００３２】
なお、実装領域とは、基板２０の実装点が存在する領域であって、基板２０の一部の領域や全ての領域であってもよい。実装領域上に入ったヘッド１１２ａは、Ｘ軸方向およびＹ軸方向に移動しながら、吸着している部品をそれぞれ各実装点に装着する。１タスク分の全ての部品の装着が完了すると、ヘッド１１２ａは、基板２０の実装領域上から出て部品供給部１１５ａ上に移動する。
【００３３】
一方、ヘッド１１２ｂも上述のヘッド１１２ａの動作と同様の動作を行うが、ヘッド１１２ａ、１１２ｂは、それぞれが干渉することがないように、つまり、それぞれが同時に基板２０の実装領域上の干渉する領域に入ることがないように、互いに協調して動作する。
【００３４】
図３は、ヘッド１１２ａと部品カセット１１４との位置関係を示す模式図である。
【００３５】
上述のように、ヘッド１１２ａには、例えば最大１０個のノズルｎｚをＸ軸方向に配列させて取り付けることが可能である。１０個のノズルｎｚが取り付けられたヘッド１１２ａは、例えば、最大１０個の部品カセット１１４のそれぞれから部品を順次、或いは同時に（１回の上下動作で）吸着することができる。同様に、ヘッド１１２ｂも例えば最大１０個のノズルｎｚを取り付けることができる。なお、本発明では、ヘッド１１２ａ，１１２ｂに取り付けられるノズルｎｚの数は１０個以外でもよく、Ｘ軸方向に沿うノズルｎｚの列を、Ｙ軸方向に複数列取り付けてもよい。
【００３６】
図４は、部品を収めた部品テープ及びリールの例を示す図である。
【００３７】
チップ形電子部品などの部品４２３ｄは、図４に示すキャリアテープ４２４に保持されている。キャリアテープ４２４には、一定間隔で連続的に形成された複数の収納凹部４２４ａが設けられている。部品は、この収納凹部４２４ａに収納されている。さらに、キャリアテープ４２４の上面（部品を取り出す側）には、カバーテープ４２５が貼付けられている。カバーテープ４２５が貼り付けられたキャリアテープ４２４は、リール４２６に所定の数量分だけ巻回されたテーピング形態でユーザに供給される。このようなキャリアテープ４２４およびカバーテープ４２５によって部品テープが構成される。なお、部品テープの構成は、図４に示す構成以外の他の構成であってもよい。
【００３８】
本実施の形態における部品実装機１００では、上述のようにヘッド１１２ａ，１１２ｂがそれぞれ同時に基板２０の実装領域上の干渉する領域に入ることがないように互いに強調して動作する。その結果、この部品実装機１００は、いわゆる交互打ちと非交互打ちとを実行する。交互打ちとは、ヘッド１１２ａによる１タスク分の部品の装着と、ヘッド１１２ｂによる１タスク分の部品の装着とが交互に行われる動作である。一方、非交互打ちとは、ヘッド１１２ａまたはヘッド１１２ｂによる１タスク分の部品の装着が繰り返し連続して同じヘッドで行われる動作である。
【００３９】
図５は、本実施の形態における部品実装機１００の制御系の機能構成を示すブロック図である。
【００４０】
本実施の形態における部品実装機１００は、入力部１５１、表示部１５２、ヘッド制御部１５３、制御部１５４、通信部１５５、および格納部１５６を備えている。
【００４１】
入力部１５１は、例えばキーボードやマウスなどで構成されており、オペレータ（ユーザ）からの操作を受け付けて、その操作結果をヘッド制御部１５３や制御部１５４などに通知する。
【００４２】
表示部１５２は、例えば液晶ディスプレイなどで構成されており、ヘッド制御部１５３などの動作状態を表示したり、格納部１５６などに格納されているデータを表示したりする。
【００４３】
制御部１５４は、入力部１５１に受け付けられた操作や、通信部１５５で受信されたデータに応じて、部品検査部１１６ａ、１１６ｂ、表示部１５２、及びヘッド制御部１５３などを制御する。また、制御部１５４は、基板２０を搬送するためのモータなどを制御して、基板２０を適切な位置に搬送する。
【００４４】
通信部１５５は、制御装置２００と通信する。例えば、通信部１５５は、基板２０の各実装点に関する情報などを示すＮＣデータ１５６ａと、各部品に関する情報を示す部品ライブラリ１５６ｂと、部品カセット１１４の配列や部品の実装順序などの実装条件を示す実装条件データ１５６ｃとを制御装置２００から取得して、それらを格納部１５６に格納する。なお、図５では、制御装置２００と制御部１５４とを別体として構成する例を示しているが、制御装置２００を制御部１５４内に設けて、部品実装機１００の制御系内の構成としてもよい。また、制御装置２００、ヘッド制御部１５３、及び制御部１５４をまとめて制御部として構成するものであってもよい。
【００４５】
格納部１５６は、通信部１５５により取得されたＮＣデータ１５６ａ、部品ライブラリ１５６ｂ、及び実装条件データ１５６ｃ等を格納している。
【００４６】
図６は、ＮＣデータ１５６ａの一例を示す図である。
【００４７】
ＮＣデータ１５６ａは、基板２０において装着の対象となる全ての部品の実装点に関する情報を示す。１つの実装点ｐｉは、部品種ｃｉ、Ｘ座標ｘｉ、Ｙ座標ｙｉ、制御データφｉ、および実装角度θｉからなる。ここで、部品種は、部品ライブラリ１５６ｂにおける部品名に相当する（図７参照）。Ｘ座標およびＹ座標は実装点の座標である。制御データφｉは、その部品の装着に関する制約情報、例えば、使用可能なノズルｎｚのタイプや、ヘッド１１２ａ、１１２ｂの最高移動加速度等を示す。実装角度θｉは、部品種ｃｉの部品を吸着したノズルｎｚが回転すべき角度を示す。
【００４８】
図７は、部品ライブラリ１５６ｂの一例を示す図である。
【００４９】
部品ライブラリ１５６ｂは、部品実装機１００が扱うことができる全ての部品種のそれぞれについての固有の情報を集めたライブラリである。この部品ライブラリ１５６ｂは、図７に示すように、部品種（部品名）ごとの部品サイズ（幅、奥行き、厚さ等）、その部品種におけるタクト、および制約情報などからなる。
【００５０】
なお、この部品ライブラリ１５６ｂの示すタクトは、一定条件下において部品を基板２０に装着するのに要する部品種固有の時間である。制約情報は、例えば、使用可能なノズルｎｚのタイプ（ＳＸや、ＳＡなど）、部品検査部１１６ａ、１１６ｂによる認識方式（反射など）、及びヘッド１１２ａ、１１２ｂの最高加速度比などである。また、図７には、参考として、各部品種の部品の外観も併せて示されている。部品ライブラリ１５６ｂには、その他に、部品の色や形状などの情報が含まれていてもよい。
【００５１】
図８は、実装条件データ１５６ｃの一例を示す図である。
【００５２】
実装条件データ１５６ｃは、部品供給部１１５ａ、１１５ｂにおける部品カセット１１４の配列（部品配列）、及びヘッド１１２ａ、１１２ｂのそれぞれのタスクごとの実装順序などを示す。例えば、実装条件データ１５６ｃは、部品配列として、部品供給部１１５ａのＸ軸方向の一方からＡ１番目に部品種ｃ１があり、Ａ２番目に部品種ｃ２があることを示す。同様に、部品供給部１１５ｂのＸ軸方向の一方からＢ１番目に部品種ｃ１があり、Ｂ２番目に部品種ｃ２があることを示す。
【００５３】
また、実装条件データ１５６ｃは、ヘッド１１２ａの実装順序として、部品種ｃ１〜ｃ４の部品を含むタスク番号Ｔａ１のタスクが実行され、次に、部品種ｃ９〜ｃ１２の部品を含むタスク番号Ｔａ２のタスクが実行され、さらにその後、部品種ｃ１７〜ｃ２０の部品を含むタスク番号Ｔａ３のタスクが実行されることを示す。同様に、実装条件データ１５６ｃは、ヘッド１１２ｂの実装順序として、部品種ｃ５〜ｃ８の部品を含むタスク番号Ｔｂ１のタスクが実行され、次に、部品種ｃ１３〜ｃ１６の部品を含むタスク番号Ｔｂ２のタスクが実行され、さらにその後、部品種ｃ２１〜ｃ２４の部品を含むタスク番号Ｔｂ３のタスクが実行されることを示す。なお、実装条件データ１５６ｃは、タスクに含まれる部品ごとに、その部品の実装点も示している。
【００５４】
ヘッド制御部１５３は、格納部１５６に格納されているデータに基づいてモータなどを制御することにより、ヘッド１１２ａ、１１２ｂを移動させたり、そのヘッド１１２ａ、１１２ｂに部品を吸着させたり、部品を吸着したヘッド１１２ａ、１１２ｂを部品検査部１１６ａ、１１６ｂに移動させたり、部品を基板２０上の実装点に装着させたりする。そして、ヘッド制御部１５３の動作は、後述する開発支援方法によって開発された制御プログラムによって制御される。
【００５５】
例えば、ヘッド制御部１５３は、上述の実装条件データ１５６ｃを読み出し、ヘッド１１２ａ、１１２ｂが実装すべきタスクをタスク番号に従って特定するとともに、そのタスクの部品が供給される場所を部品配列に基づいて特定する。そして、ヘッド制御部１５３は、特定した場所にヘッド１１２ａ、１１２ｂを移動させ、それらのヘッド１１２ａ、１１２ｂに部品を吸着させて、その部品に対応する実装点に装着させる。
【００５６】
また、ヘッド制御部１５３は、ヘッド１１２ａを他方のヘッド１１２ｂの動きに応じて制御する。同様に、ヘッド１１２ｂを他方のヘッド１１２ａの動きに応じて制御する。つまり、ヘッド制御部１５３は、制御対象となるヘッド（以下、対象ヘッドという）を、他方のヘッド（以下、相手ヘッドという）の動きに応じて制御する。
【００５７】
ヘッド制御部１５３は、相手ヘッドが基板２０の実装領域上にあるときに、対象ヘッドが突入ポイントに到達すると、対象ヘッドを突入ポイントに待機させておく。そして、相手ヘッドが実装領域上の互いのヘッドが干渉する領域である干渉領域から出ると、対象ヘッドを実装領域上に突入させる。また、ヘッド制御部１５３は、相手ヘッドが基板２０の実装領域上にないときに、対象ヘッドが突入ポイントに到達すると、基本的に、その対象ヘッドを突入ポイントで待機させることなく実装領域上に突入させる。
【００５８】
但し、本実施の形態におけるヘッド制御部１５３は、対象ヘッドが突入ポイントに到達したタイミングでその対象ヘッドを基板２０の実装領域上に突入させることによって、非交互打ちが実行されそうな場合には、その非交互打ちを避けて強制的に交互打ちを実行させるべきか否かを判別する。非交互打ちを避けるべきと判別すると、ヘッド制御部１５３は、相手ヘッドが実装領域上になくても、相手ヘッドが実装領域上に入って１タスク分の部品を装着してその実装領域上から出るまで、対象ヘッドを突入ポイントに待機させておく。その結果、強制的な交互打ちが実現される。
【００５９】
なお、交互打ちとは、上述のように、基板２０へのヘッド１１２ａによる１タスク分の部品の装着と、ヘッド１１２ｂによる１タスク分の部品の装着とが交互に行われる動作であって、例えば、「ヘッド１１２ａ→ヘッド１１２ｂ→ヘッド１１２ａ→ヘッド１１２ｂ→・・・」の順で基板２０への部品の装着が行われる動作である。また、非交互打ちとは、上述のように、ヘッド１１２ａまたはヘッド１１２ｂによる１タスク分の部品の装着が繰り返し連続して行われる動作であって、例えば、「ヘッド１１２ａ→ヘッド１１２ｂ→ヘッド１１２ｂ→ヘッド１１２ａ→・・・」の順で同じヘッドによる部品の装着が連続して行われる動作である。
【００６０】
次に、上記構成のヘッド制御部１５３の動作を制御するためのプログラムの開発を支援する開発支援方法について説明する。なお、本発明の開発支援方法は、典型的には、コンピュータが実行するプログラム（開発支援プログラム）の形態で提供される。
【００６１】
図９は、本実施の形態に係る開発支援プログラムを実行するコンピュータ１０のハードウェア構成を示す図である。コンピュータ１０は、図９に示されるように、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、入力部１４と、表示部１５とを主に備える。
【００６２】
ＣＰＵ１１は、ＲＯＭ１２又はＲＡＭ１３に記憶されているプログラムを実行する。ＲＯＭ１２は、例えば、コンピュータ１０の起動時に必要となるプログラム（ＢＩＯＳ等）を記憶している。ＲＡＭ１３は、例えば、各種プログラムを記憶すると共に、ＣＰＵ１１による演算結果の一時記憶領域等としても利用される。本実施の形態に係る開発支援プログラムもＲＡＭ１３に記憶されている。
【００６３】
なお、ＲＡＭ１３の具体的な構成は特に限定されないが、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、フラッシュメモリ、又は強誘電体メモリ等のデータを記録可能な手段であればどのようなものを利用しても構わない。
【００６４】
入力部１４は、ユーザからの入力を受け付けるインタフェースであって、例えば、キーボードやマウス等である。表示部１５は、各種情報をユーザに表示するディスプレイである。ディスプレイの具体的な構成は特に限定されないが、例えば、液晶ディスプレイ、プラズマディスプレイ、又は有機ＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ等を採用することができる。
【００６５】
本実施の形態に係る開発支援プログラムは、部品実装機１００の駆動部（この例ではヘッド１１２ａ、１１２ｂ）の動作を制御するためのプログラム（以下、「制御プログラム」）の開発を支援するものである。
【００６６】
図１０及び図１１を参照して、本実施の形態に係る開発支援プログラムによって生成されるプログラムの例を説明する。図１０は、状態遷移表の例を示す図である。図１１は、生成されたソースコードの一例を示す図である。但し、図１１では、以降の説明で取り上げられる部分を中心に記述し、それ以外の部分の記述を省略している。
【００６７】
まず、図１０に示されるような状態遷移表がユーザによって設計される。具体的には、開発支援プログラムは、入力画面を表示部１５に表示し、ユーザからの入力を入力部１４を介して受け付ける。
【００６８】
なお、状態遷移表とは、例えば、図１０に示されるように、行及び列で構成されるマトリクス状の表である。この状態遷移表の第１行（一番上の行）には、例えば、ヘッド１１２ａ、１１２ｂ等の状態が定義される。また、第１列には、制御プログラムの外部で実行される処理の結果として生じるイベントが定義される。なお、第１列に状態を定義し、第１行にイベントを定義してもよい。さらに、第１行及び第１列以外の各セルには、状態及びイベントの組み合わせに対して、ヘッド１１２ａ、１１２ｂが実行する動作及びヘッド１１２ａ、１１２ｂの次の状態が定義される。
【００６９】
ここで、「制御プログラムの外部で実行される処理の結果として生じるイベント」とは、例えば、上位システムからの通信コマンドの結果として生じるイベント、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）又は操作スイッチ等のユーザ操作の結果として生じるイベント、駆動部（この例では、ヘッド１１２ａ、１１２ｂ）の動作の結果として生じるイベント、制御プログラムの外部で実行される処理の結果として生じるイベントを擬似的に発生させるプログラムを制御プログラムの内部に予め組み込んでおき、当該プログラムを実行することにより生じるイベント等が該当する。
【００７０】
なお、ヘッド１１２ａ、１１２ｂの状態とは、例えば図１０に示されるように、「停止中」、「部品フィーダ移動中」、「部品吸着中」、「部品吸着認識位置移動中」、「部品認識中」、「部品実装位置移動中」、「部品実装中」、及び「エラー発生中」等である。また、制御プログラムの外部で実行される処理の結果として生じるイベントとは、例えば図１２に示されるように、「部品吸着開始」、「部品フィーダ位置移動完了」、「部品吸着完了」、「部品吸着認識位置移動完了」、「部品認識完了」、「部品実装位置移動完了」、「部品実装完了」、「エラー」、及び「エラー復帰」等である。
【００７１】
さらに、状態及びイベントに対応するヘッド１１２ａ、１１２ｂが実行する動作及びヘッド１１２ａ、１１２ｂの次の状態とは、第１行の任意のセルから下向きに、第１列の任意のセルから右向きに移動した交点のセルに定義される。
【００７２】
例えば、第１行の「部品フィーダ位置移動中」及び第１列の「部品フィーダ位置移動完了」に対応する動作は「部品吸着」であり、次の状態は「部品吸着中」である（図１０の「（イベントＩＤ，状態ＩＤ）＝（１，１）」のセル）。すなわち、この状態遷移表では、ヘッド１１２ａ、１１２ｂの状態が「部品フィーダ位置移動中」で、且つ「部品フィーダ位置移動完了」イベントが発生すると、ヘッド１１２ａ、１１２ｂは、部品吸着処理を実行する。そして、部品吸着処理の結果として、ヘッド１１２ａ、１１２ｂの状態が「部品吸着中」に遷移する。なお、ヘッド１１２ａ、１１２ｂは、上述の交互打ち又は非交互打ちが選択されている場合は、状態及びイベントのタイミングはヘッド１１２ａ、１１２ｂ間で異なる。
【００７３】
次に、開発支援プログラムは、図１０に示される状態遷移表から対象モジュールの図１１に示されるようなソースコードを生成する。さらに、開発支援プログラムは、生成されたソースコードをコンパイルして、対象モジュールのオブジェクト（以下、「部品実装処理オブジェクト」）を生成する。
【００７４】
なお、図１１において、大域変数（グローバル変数）のｓｔａｔｅは、ヘッド１１２ａ、１１２ｂの状態を特定する状態ＩＤ（０〜７）を設定する変数である。また、大域変数（グローバル変数）のｅｖｅｎｔは、イベントを特定するイベントＩＤ（０〜８）を設定する変数である。また、大域変数（グローバル変数）のｃｎｔは、１タスクで実装する部品の個数を設定する変数である。さらに、ローカル変数のｒｅｓｕｌｔは、例えば、部品実装処理ＳｔｍＣａｌｌ（）内で呼び出される外部関数の戻り値等を設定する変数である。
【００７５】
また、図１１において、部品フィーダ移動（）は、ヘッド１１２ａ、１１２ｂを部品供給部（部品フィーダ）１１５ａ、１１５ｂの所定位置に移動させるための外部関数である。部品吸着（）は、ヘッド１１２ａ、１１２ｂに部品フィーダ上の実装部品を吸着させるための外部関数である。部品吸着認識（）は、ヘッド１１２ａ、１１２ｂに吸着されている部品の状態を部品検査部１１６ａ、１１６ｂに検査させるための外部関数である。ログ出力（）は、指定されたログファイルにログを出力させるための外部関数である。また、例えば、停止（）、エラー内容表示（）、原点復帰（）等は、部品実装処理でエラーが発生した場合の処理を行なう外部関数である。
【００７６】
さらに、図１１において、開発支援プログラムによって生成された制御プログラムは、ヘッド１１２ａ、１１２ｂの状態が遷移する毎に、外部関数であるログ出力（）を呼び出している。すなわち、制御プログラムは、ヘッド１１２ａ、１１２ｂの状態が遷移する毎に、ヘッド１１２ａ、１１２ｂの駆動状態を示す統計情報をログファイルに出力する。ログファイルは、ユーザによって任意に指定される。
【００７７】
さらに、開発支援プログラムは、自らが生成した制御プログラムが出力するログを分析する機能を有する。図１２〜図１５を参照して、開発支援プログラムの動作を説明する。図１２は、開発支援プログラムの動作を示すフローチャートである。
【００７８】
まず、開発支援プログラムは、自らが生成した制御プログラムが出力したログファイルから統計情報を取得する（Ｓ１１）。なお、本実施の形態における統計情報とは、例えば、状態遷移表における実装基板製造装置の駆動部の各状態におけるヘッド１１２ａ、１１２ｂの動作時間、および各状態におけるヘッド１１２ａ、１１２ｂの消費電力量であるが、これに限定されない。
【００７９】
具体的には、制御プログラムをヘッド制御部１５３に組み込み、部品実装機１００のヘッド１１２ａ、１１２ｂを動作させる。これにより、制御プログラムは、ユーザが指定したログファイルに、ヘッド１１２ａ、１１２ｂの状態毎の統計情報を含むログを出力する。図１３は、ログファイルに書き込まれたログの一例を示す図である。
【００８０】
制御プログラムが出力するログの内容は特に限定されないが、例えば、図１３に示されるように、「ログＮｏ」、「ログ出力時刻」、「状態ＩＤ」、「イベントＩＤ」、「処理」、「結果」、「処理時間」、及び「消費電力量」等を出力すればよい。
【００８１】
ログＮｏは、ログファイル内で各ログを識別するための情報（識別子）である。ログ出力時刻は、当該ログを出力した時刻である。状態ＩＤは、ログ出力時におけるヘッド１１２ａ、１１２ｂの動作によって状態遷移した遷移先の状態を特定する状態情報である。イベントＩＤは、ログ出力の直前に発生したイベントを示す情報である。処理は、ログ出力の直前に実行した処理の内容を示す情報であり、この例では呼び出した外部関数名である。結果（駆動部の動作の結果）は、呼び出した外部関数の処理が正常終了（ＯＫ）したか、異常終了（ＮＧ）したかを示す。
【００８２】
処理時間は、呼び出した外部関数による処理に要した時間を示す。すなわち、部品実装処理（）が外部関数をｃａｌｌしてから、当該外部関数が戻り値を返すまでの時間を示す。消費電力量は、呼び出した外部関数による処理に要した消費電力量を示す。すなわち、当該外部関数による制御に従ってヘッド１１２ａ、１１２ｂが動作するために必要な電力量を示す。
【００８３】
次に、開発支援プログラムは、ログファイルから取得した状態遷移表における状態毎の統計情報を、グループ毎、及び／又は、さらにその上位グループ毎に集計する（Ｓ１２）。なお、状態遷移表における各状態を動作工程の区切り等の扱いやすい区分でいくつかのグループに分類する。また、分類されたグループをさらにまとめて上位グループを構成してもよい。図１４は、ヘッド１１２ａ、１１２ｂの各状態のグループ化の例を示す図である。
【００８４】
図１４には、３つのグループ（グループ１、２、３）が定義されている。そして、図１０に示される状態遷移表に定義されている各状態は、３つのグループのいずれかに分類されている。具体的には、「部品フィーダ移動中」と「部品吸着中」とがグループ１に分類され、「部品吸着認識位置移動中」と「部品認識中」とがグループ２に分類され、「部品実装位置移動中」と「部品実装中」とがグループ３に分類されている。
【００８５】
さらに、上記のグループ１、２、３は、２つの上位グループのいずれかに分類されている。具体的には、グループ１が上位グループ１に分類され、グループ２、３が上位グループ２に分類されている。
【００８６】
このように、グループとは、状態遷移表における１以上の状態を要素として含む集合を指す。また、上位グループとは、１以上のグループを要素として含む集合を指す。なお、グループ及び上位グループの分類は、典型的には、ユーザによって行なわれる。どのように分類されるかは特に限定されないが、例えば、互いに関連する状態を１つのグループに分類する等すればよい。また、グループ及び上位グループの数及びグループの階層数は、図１４の例に限定されない。
【００８７】
そして、開発支援プログラムは、ステップＳ１１で取得した状態遷移表における状態毎の統計情報を、図１４に示されるグループ毎、及び／又は、上位グループ毎に集計する。すなわち、各状態の処理時間及び消費電力量を、グループ単位で加算する。このとき、１つの部品を実装するのに必要な処理の単位で統計情報を集計してもよいし、１タスク（すなわち、複数の部品）を実装するのに必要な処理の単位で統計情報を集計してもよい。
【００８８】
次に、開発支援プログラムは、ステップＳ１２で集計したグループ毎、及び／又は、上位グループ毎の統計情報を、コンピュータ１０の表示部１５に表示する（Ｓ１３）。図１５は、開発支援プログラムによる統計情報の出力例を示す図である。
【００８９】
図１５に示される出力例では、グループ毎の処理時間及び消費電力量を統計情報として棒グラフで表している。但し、表示形式はこれに限定されず、折れ線グラフや円グラフ等を用いてもよいし、数値を表示するだけでもよい。
【００９０】
また、グループ毎又は階層毎に処理時間や消費電力量等の統計情報の閾値を設定しておき、閾値を超える統計情報をハイライト表示する等してもよい。このように、統計情報が閾値を超えるグループをユーザに対して積極的に報知することにより、当該グループに関する処理の改善を促すことができる。
【００９１】
このように、処理時間や消費電力量等の統計情報をグループ毎に集計して表示することにより、例えば、処理時間が著しく長いグループが存在する場合に、当該箇所が一連の処理の中でボトルネックになっていると判断することができる。このような解析結果を踏まえて制御プログラムを修正することにより、部品実装機１００の処理速度を向上させることができる。同様に、消費電力量が著しく長いグループの処理を中心に制御プログラム修正することにより、部品実装機１００の電力消費量を抑えることができる。
【００９２】
なお、上記の実施の形態においては、駆動部としてヘッド１１２ａ、１１２ｂの例を説明したが、これに限ることなく、部品実装機１００の他の駆動部にも適用することができる。
【００９３】
また、上記の実施の形態においては、実装基板製造装置として部品実装機１００の例を説明したが、これに限ることなく、本発明は、印刷機や印刷検査機等の実装基板の製造に用いられるあらゆる装置に適用することができる。
【００９４】
（その他の実施形態）
コンピュータ１０は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、コンピュータ１０は、その機能を達成する。
【００９５】
ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。なお、各装置は、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどの全てを含むコンピュータシステムには限らず、これらの一部から構成されているコンピュータシステムであってもよい。
【００９６】
上記のコンピュータ１０を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されていてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。ＲＡＭには、コンピュータプログラムが記録されている。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。また、上記のコンピュータ１０を構成する構成要素の各部は、個別に１チップ化されていてもよいし、一部又は全てを含むように１チップ化されてもよい。また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
【００９７】
本発明は、上記に示す方法であってもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであってもよいし、コンピュータプログラムからなるデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものであってもよい。また、これらの記録媒体に記録されているデジタル信号であってもよい。また、本発明は、コンピュータプログラムまたはデジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものであってもよい。また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、メモリは、上記コンピュータプログラムを記録しており、マイクロプロセッサは、コンピュータプログラムにしたがって動作するものであってもよい。また、プログラムまたはデジタル信号を記録媒体に記録して移送することにより、またはプログラムまたはデジタル信号をネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施してもよい。
【００９８】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【産業上の利用可能性】
【００９９】
本発明は、実装基板製造装置の駆動部の動作を制御するための制御プログラムの開発を支援する開発支援方法に有利に利用される。
【符号の説明】
【０１００】
１０  コンピュータ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  入力部
１５  表示部
２０  基板
１００  部品実装機
１１０ａ，１１０ｂ  実装ユニット
１１２ａ，１１２ｂ  ヘッド
１１４  部品カセット
１１５ａ，１１５ｂ  部品供給部
１１６ａ，１１６ｂ  部品検査部
１２１ａ，１２１ｂ  ビーム
１２２ａ，１２２ｂ  基板搬送レール
１３０  搬入口
１４０  ビーム駆動ロボット
１５１  入力部
１５２  表示部
１５３  ヘッド制御部
１５４，５４０  制御部
１５５  通信部
１５６  格納部
１５６ａ  ＮＣデータ
１５６ｂ  部品ライブラリ
１５６ｃ  実装条件データ
２００  制御装置
４２４  キャリアテープ
４２４ａ  収納凹部
４２５  カバーテープ
４２６  リール
１０００  部品実装システム
【図１】
0005427841.tif 000002
【図２】
0005427841.tif 000003
【図３】
0005427841.tif 000004
【図４】
0005427841.tif 000005
【図５】
0005427841.tif 000006
【図６】
0005427841.tif 000007
【図７】
0005427841.tif 000008
【図８】
0005427841.tif 000009
【図９】
0005427841.tif 000010
【図１０】
0005427841.tif 000011
【図１１】
0005427841.tif 000012
【図１２】
0005427841.tif 000013
【図１３】
0005427841.tif 000014
【図１４】
0005427841.tif 000015
【図１５】
0005427841.tif 000016