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