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