(57)【要約】【課題】複数の部品供給装置の制御プログラムの更新に要する時間を短くすることが可能な表面実装機を提供する。【解決手段】この表面実装機１００は、所定の制御プログラムに基づいて動作する複数のテープフィーダ６０から部品を取り出し、部品のプリント基板１１０への装着を行うヘッドユニット２０を備え、複数のテープフィーダ６０の制御プログラムを更新するための個々の更新プログラム２００のうちの少なくとも一部の更新プログラム２００は、互いに一致する共通プログラム２０１（２０２）を含み、更新プログラム２００の共通プログラム２０１（２０２）を、複数のテープフィーダ６０に並行して送信可能に構成されている。【選択図】図３
2010182768.tif 000002
【特許請求の範囲】
【請求項１】
所定の制御プログラムに基づいて動作する複数の部品供給装置から部品を取り出し、前記部品の基板への装着を行うヘッドユニットを備え、
前記複数の部品供給装置の前記制御プログラムを更新するための個々の更新プログラムのうちの少なくとも一部の前記更新プログラムは、互いに一致する共通プログラム部分を含み、
前記更新プログラムの共通プログラム部分を、前記複数の部品供給装置に並行して送信可能に構成されている、表面実装機。
【請求項２】
前記複数の部品供給装置の個々の前記更新プログラムは、互いに相違する個別プログラム部分をさらに含み、
前記部品供給装置の各々の記憶部において、前記共通プログラム部分のデータは、第１格納領域に格納され、前記個別プログラム部分のデータは、前記第１格納領域とは異なる第２格納領域に格納されるように構成されている、請求項１に記載の表面実装機。
【請求項３】
前記部品供給装置の各々の前記記憶部の第１格納領域は、同一のアドレスの格納領域であるか、または、予め関連付けられた異なるアドレスの格納領域である、請求項２に記載の表面実装機。
【請求項４】
前記第１格納領域が予め関連付けられた異なるアドレスの格納領域である場合に、
前記異なるアドレスの格納領域は、所定の前記部品供給装置の記憶部における前記第１格納領域のアドレスを基準として、前記所定の部品供給装置以外の前記部品供給装置の前記第１格納領域のアドレスを所定の格納位置ずれ量だけずれたアドレスに設定することにより、前記異なるアドレスが互いに関連付けられるように構成されている、請求項３に記載の表面実装機。
【請求項５】
前記複数の部品供給装置の各々に対して前記制御プログラムを更新する時に、更新プログラムのデータを送信可能な制御部をさらに備え、
前記制御部は、前記複数の部品供給装置の各々の前記更新プログラムから、前記共通プログラム部分を判別するように構成されている、請求項１〜４のいずれか１項に記載の表面実装機。
【請求項６】
前記複数の部品供給装置の各々と接続された中継装置をさらに備え、
前記中継装置は、前記複数の部品供給装置のうちの前記共通プログラム部分を含む前記更新プログラムが格納される前記部品供給装置に対して前記共通プログラム部分を選択的に送信可能に構成されている、請求項１〜５のいずれか１項に記載の表面実装機。
【請求項７】
前記共通プログラム部分は、少なくとも１つのプログラム単位から構成され、
前記プログラム単位のデータの大きさは、個々の前記部品供給装置に対して１度に送信可能な単位データ量の大きさの整数倍となるように構成されている、請求項１〜６のいずれか１項に記載の表面実装機。
【請求項８】
部品の基板への装着を行う表面実装機に前記部品を供給し、所定の制御プログラムに基づいて動作する複数の部品供給装置の各々に対してデータを送信可能な送信処理部を備え、
前記複数の部品供給装置の前記制御プログラムを更新するための個々の更新プログラムのうちの少なくとも一部の前記更新プログラムは、互いに一致する共通プログラム部分を含み、
前記送信処理部は、前記更新プログラムの共通プログラム部分を、前記複数の部品供給装置に並行して送信可能に構成されている、部品供給装置のデータ送信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、表面実装機および部品供給装置のデータ送信システムに関し、特に、複数の部品供給装置から部品を取り出し、その部品の基板への装着を行うヘッドユニットを備えた表面実装機および部品供給装置のデータ送信システムに関する。
【背景技術】
【０００２】
従来、複数の部品供給装置から部品を取り出し、その部品の基板への装着を行うヘッドユニットを備えた表面実装機が知られている。（たとえば、特許文献１参照）。
【０００３】
上記特許文献１では、複数の電動式フィーダ（部品供給装置）から部品を取り出す実装ヘッドと、各電動式フィーダと電気的に接続され、データを送信可能な制御部とを備えた部品実装機（表面実装機）が開示されている。この電動式フィーダは、制御回路と記憶部とを含み、部品実装機の制御部から送信された部品搭載スケジュールを記憶部に書き込むように構成されている。そして、電動式フィーダの制御回路は、記憶部に書き込まれた部品搭載スケジュールに基づいて、電動式フィーダを駆動させるように構成されている。この部品搭載スケジュールは、部品の実装を開始する前に、部品実装機の制御部から複数の電動式フィーダの各々に転送されるように構成されている。
【０００４】
また、上記特許文献１には開示されていないが、電動式フィーダを用いる部品実装機では、各電動式フィーダを部品搭載スケジュールに従って動作させるための制御プログラムを、各電動式フィーダのそれぞれの記憶部にそれらを出荷する前に予め記憶させておく。この制御プログラムは、仕様変更などに応じて修正され、更新される必要がある。制御プログラムの更新時には、部品実装機の制御部から各電動式フィーダにそれぞれ更新版の制御プログラムが転送され、各電動式フィーダの記憶部に記憶される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−９８３５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、部品実装機に用いられる複数の電動式フィーダは、全て同一種類とは限らず、異なる種類の電動式フィーダが混在する場合もある。この場合には、更新される制御プログラムも電動式フィーダの種類に応じてそれぞれ異なる場合があるので、制御プログラムの更新時には、部品実装機からの制御プログラムのデータ転送を、電動式フィーダ（部品供給装置）の種類毎に順次、個別に行っている。このため、従来の部品実装機では、制御プログラムの更新に要する時間が長くなってしまうので、制御プログラムの更新に要する時間を短くすることが困難であるという問題点がある。
【０００７】
この発明は、上記のような課題を解決するためになされたものであり、この発明の１つの目的は、複数の部品供給装置の制御プログラムの更新に要する時間を短くすることが可能な表面実装機および部品供給装置のデータ送信システムを提供することである。
【課題を解決するための手段および発明の効果】
【０００８】
上記目的を達成するために、この発明の第１の局面による表面実装機は、所定の制御プログラムに基づいて動作する複数の部品供給装置から部品を取り出し、部品の基板への装着を行うヘッドユニットを備え、複数の部品供給装置の制御プログラムを更新するための個々の更新プログラムのうちの少なくとも一部の更新プログラムは、互いに一致する共通プログラム部分を含み、更新プログラムの共通プログラム部分を、複数の部品供給装置に並行して送信可能に構成されている。ここで、本発明における「並行して送信」とは、完全に同時に送信する場合のみならず、電気的に実質的に同時に送信する場合も含む広い概念である。
【０００９】
この第１の局面による表面実装機では、上記のように、更新プログラムの共通プログラム部分を、複数の部品供給装置に並行して送信可能に構成することによって、複数の部品供給装置の制御プログラムがそれぞれ異なる場合にも、互いに一致する共通プログラム部分を各部品供給装置に並行して送信することができる。これにより、共通プログラム部分を含めた更新プログラムの全部を各部品供給装置に個別に送信する場合と比較して、複数の部品供給装置に並行して送信できる分だけデータ転送に要する時間を短くすることができる。その結果、制御プログラムの更新に要する時間を短くすることができる。
【００１０】
上記第１の局面による表面実装機において、好ましくは、複数の部品供給装置の個々の更新プログラムは、互いに相違する個別プログラム部分をさらに含み、部品供給装置の各々の記憶部において、共通プログラム部分のデータは、第１格納領域に格納され、個別プログラム部分のデータは、第１格納領域とは異なる第２格納領域に格納されるように構成されている。このように構成すれば、各部品供給装置の個々の更新プログラムにおいて、それぞれの部品供給装置の個別プログラム部分が互いに異なる場合にも、各部品供給装置に同一の共通プログラム部分のデータのみを抽出して各々の部品供給装置に第１格納領域を指定して送信することができる。これにより、容易に、共通プログラム部分を個別プログラム部分とは別個に各々の部品供給装置に並行して送信することができる。
【００１１】
この場合において、好ましくは、部品供給装置の各々の記憶部の第１格納領域は、同一のアドレスの格納領域であるか、または、予め関連付けられた異なるアドレスの格納領域である。このように構成すれば、各部品供給装置に共通プログラム部分のデータを送信する際に、予め同一のアドレスを指定して送信することができる。また、各部品供給装置の種類の相違に起因して、共通プログラム部分を各部品供給装置で互いに異なるアドレスに格納する必要がある場合にも、各部品供給装置の第１格納領域のアドレスを関連付けることによって、各部品供給装置に共通プログラム部分のデータを並行して送信し、互いに関連付けられた第１格納領域のアドレスに共通プログラム部分のデータを格納することができる。これにより、各部品供給装置の種類の相違に起因して、構成の異なる制御プログラムがそれぞれ記憶部に格納された部品供給装置に対しても、容易に、共通プログラム部分を並行して送信することができる。
【００１２】
上記第１格納領域が、同一のアドレスの格納領域であるか、または、予め関連付けられた異なるアドレスの格納領域である構成において、好ましくは、第１格納領域が予め関連付けられた異なるアドレスの格納領域である場合に、異なるアドレスの格納領域は、所定の部品供給装置の記憶部における第１格納領域のアドレスを基準として、所定の部品供給装置以外の部品供給装置の第１格納領域のアドレスを所定の格納位置ずれ量だけずれたアドレスに設定することにより、異なるアドレスが互いに関連付けられるように構成されている。このように構成すれば、制御プログラムの構成上、共通プログラム部分を他の部品供給装置とは異なるアドレスに格納する必要がある場合に、所定の部品供給装置の記憶部における第１格納領域のアドレスに対する格納位置ずれ量を制御プログラムの構成に応じて設定しておくことにより、同一の共通プログラム部分のデータを、それぞれの部品供給装置の記憶部において、指定された格納位置ずれ量だけずれた、異なるアドレスに関連付けて格納することができる。
【００１３】
上記第１の局面による表面実装機において、好ましくは、表面実装機は、複数の部品供給装置の各々に対して制御プログラムを更新する時に、更新プログラムのデータを送信可能な制御部をさらに備え、制御部は、複数の部品供給装置の各々の更新プログラムから、共通プログラム部分を判別するように構成されている。このように構成すれば、更新プログラムの作成時点で予め共通プログラム部分を他の部分と区別しない場合にも、制御部により、各部品供給装置の更新プログラムから、共通プログラム部分を判別することができる。
【００１４】
上記第１の局面による表面実装機において、好ましくは、複数の部品供給装置の各々と接続された中継装置をさらに備え、中継装置は、複数の部品供給装置のうちの共通プログラム部分を含む更新プログラムが格納される部品供給装置に対して共通プログラム部分を選択的に送信可能に構成されている。このように構成すれば、複数の部品供給装置の各々に格納される各更新プログラムのうちの一部の更新プログラムにのみ、共通プログラム部分が存在する場合にも、該当する複数の部品供給装置に対して共通プログラム部分を選択的に並行して送信することができる。
【００１５】
上記第１の局面による表面実装機において、好ましくは、共通プログラム部分は、少なくとも１つのプログラム単位から構成され、プログラム単位のデータの大きさは、個々の部品供給装置に対して１度に送信可能な単位データ量の大きさの整数倍となるように構成されている。このように構成すれば、各部品供給装置への更新プログラムのデータが単位データ量毎に送信される場合において、共通プログラム部分を少なくとも１つのプログラム単位から構成することにより、共通プログラム部分のデータ量の大きさを１度に送信可能な単位データ量の大きさの整数倍とすることができる。すなわち、１度に送信される単位データ量の中に共通プログラム部分と個別プログラム部分とが混在する場合には、各部品供給装置に対してその共通プログラム部分のデータを個別に送信しなければならないので、共通プログラム部分の一部を各部品供給装置に対して並行して送信することができなくなるが、共通プログラム部分を構成するプログラム単位のデータの大きさを送信可能な単位データ量の大きさの整数倍とすることによって、共通プログラム部分のデータの全てを、個別プログラムとは別個に各部品供給装置に並行して送信することができる。
【００１６】
この発明の第２の局面による部品供給装置のデータ送信システムは、部品の基板への装着を行う表面実装機に部品を供給し、所定の制御プログラムに基づいて動作する複数の部品供給装置の各々に対してデータを送信可能な送信処理部を備え、複数の部品供給装置の制御プログラムを更新するための個々の更新プログラムのうちの少なくとも一部の更新プログラムは、互いに一致する共通プログラム部分を含み、送信処理部は、更新プログラムの共通プログラム部分を、複数の部品供給装置に並行して送信可能に構成されている。
【００１７】
この第２の局面による部品供給装置のデータ送信システムでは、上記のように、複数の部品供給装置の各々に対してデータを送信可能な送信処理部を、更新プログラムの共通プログラム部分を複数の部品供給装置に並行して送信可能に構成することによって、複数の部品供給装置の制御プログラムがそれぞれ異なる場合にも、互いに一致する共通プログラム部分を各部品供給装置に並行して送信することができる。これにより、共通プログラム部分を含めた更新プログラムの全部を各部品供給装置に個別に送信する場合と比較して、複数の部品供給装置に並行して送信できる分だけデータ転送に要する時間を短くすることができる。その結果、制御プログラムの更新に要する時間を短くすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態による表面実装機の全体構成を示す平面図である。
【図２】本発明の第１実施形態による表面実装機およびテープフィーダの制御に関する構造を示すブロック図である。
【図３】本発明の第１実施形態による表面実装機とテープフィーダとの更新プログラムの送受信を説明するための模式図である。
【図４】本発明の第１実施形態による表面実装機に用いられるテープフィーダのフラッシュメモリの格納領域の構成を説明するための図である。
【図５】本発明の第１実施形態による表面実装機に用いられるテープフィーダの更新プログラムを説明するための図である。
【図６】本発明の第１実施形態による表面実装機に用いられるテープフィーダの更新プログラムを説明するための図である。
【図７】本発明の第１実施形態による表面実装機の制御プログラムの更新時の処理を説明するためのフローチャートである。
【図８】本発明の第１実施形態による表面実装機の制御プログラム更新処理を説明するためのフローチャートである。
【図９】本発明の第１実施形態による表面実装機のデータ送信処理およびテープフィーダの書込処理を説明するためのフローチャートである。
【図１０】本発明の第１実施形態による表面実装機の効果を説明するための図である。
【図１１】本発明の第２実施形態による表面実装機に用いられるテープフィーダのフラッシュメモリの格納領域の構成を説明するための図である。
【図１２】本発明の第２実施形態による表面実装機の共通プログラム判別処理を説明するためのフローチャートである。
【図１３】本発明の第２実施形態による表面実装機のデータ送信処理およびテープフィーダの書込処理を説明するためのフローチャートである。
【図１４】本発明の変形例による表面実装機およびテープフィーダの制御に関する構造を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面に基づいて説明する。
【００２０】
（第１実施形態）
まず、図１〜図１０を参照して、本発明の第１実施形態による表面実装機１００の構造について説明する。
【００２１】
図１に示すように、第１実施形態による表面実装機１００は、テープフィーダ６０から供給される部品をプリント基板１１０に実装する装置である。なお、テープフィーダ６０は、本発明の「部品供給装置」の一例である。また、プリント基板１１０は、本発明の「基板」の一例である。図１に示すように、表面実装機１００は、Ｘ方向に延びる一対の基板搬送コンベア１０と、一対の基板搬送コンベア１０の上方をＸＹ方向に移動可能なヘッドユニット２０とを備えている。ヘッドユニット２０は、テープフィーダ６０から部品を取得するとともに、基板搬送コンベア１０上のプリント基板１１０に部品を実装する機能を有する。基板搬送コンベア１０およびヘッドユニット２０は、基台１上に設置されている。以下、表面実装機１００の具体的な構造を説明する。
【００２２】
一対の基板搬送コンベア１０は、プリント基板１１０をＸ方向に搬送するとともに、所定の実装作業位置でプリント基板１１０を停止させ、保持させることが可能なように構成されている。
【００２３】
また、図１に示すように、ヘッドユニット２０は、Ｘ方向に延びるヘッドユニット支持部３０に沿ってＸ方向に移動可能に構成されている。具体的には、ヘッドユニット支持部３０は、ボールネジ軸３１とボールネジ軸３１を回転させるサーボモータ３２とＸ方向のガイドレール（図示せず）とを有しているとともに、ヘッドユニット２０は、ボールネジ軸３１が螺合されるボールナット２１を有している。ヘッドユニット２０は、サーボモータ３２によりボールネジ軸３１が回転されることにより、ヘッドユニット支持部３０に対してＸ方向に移動するように構成されている。また、ヘッドユニット支持部３０は、基台１上に設けられたＹ方向に延びる一対の固定レール部４０に沿ってＹ方向に移動可能に構成されている。具体的には、固定レール部４０は、ヘッドユニット支持部３０の両端部をＹ方向に移動可能に支持するガイドレール４１と、Ｙ方向に延びるボールネジ軸４２と、ボールネジ軸４２を回転させるサーボモータ４３とを有しているとともに、ヘッドユニット支持部３０には、ボールネジ軸４２が螺合されるボールナット３３が設けられている。ヘッドユニット支持部３０は、サーボモータ４３によりボールネジ軸４２が回転されることによって、ガイドレール４１に沿ってＹ方向に移動するように構成されている。このような構成により、ヘッドユニット２０は、基台１上をＸＹ方向に移動することが可能なように構成されている。
【００２４】
また、ヘッドユニット２０には、Ｘ方向に列状に配置された６本の吸着ノズル２２が下方に突出するように設けられている。また、各々の吸着ノズル２２は、負圧発生機（図示せず）によってその先端に負圧状態を発生させることが可能に構成されている。吸着ノズル２２は、この負圧によって、テープフィーダ６０から供給される部品を先端に吸着および保持することが可能である。
【００２５】
また、各々の吸着ノズル２２は、図示しない機構（サーボモータなど）によって、ヘッドユニット２０に対して上下方向に移動可能に構成されている。表面実装機１００は、吸着ノズル２２が上昇位置に位置した状態で部品の搬送や部品撮像装置１１による撮像などを行うとともに、吸着ノズル２２が下降位置に位置した状態で部品のテープフィーダ６０からの吸着およびプリント基板１１０への実装を行うように構成されている。また、吸着ノズル２２は、吸着ノズル２２自体がその軸を中心として回転可能に構成されている。これにより、表面実装機１００では、部品を搬送する途中に吸着ノズル２２を回転させることにより、ノズルの先端に保持された部品の姿勢（水平面内の向き）を調整することが可能である。
【００２６】
また、表面実装機１００の動作は、図２に示すコントローラ５０によって制御されている。コントローラ５０は、主としてＣＰＵ５１と、メモリ５２と、記憶装置５３と、読出装置５４とを含むコンピュータから構成されている（図３参照）。また、コントローラ５０は、表面実装機１００の図示しないコネクタに接続された後述する中継装置７１を介して各テープフィーダ６０のフィーダ制御部６１と電気的に接続されている。そして、コントローラ５０は、ＣＰＵ５１からフィーダ制御部６１に制御信号を送ることによりテープフィーダ６０の駆動制御を行う。これにより、表面実装機１００による部品吸着動作と、各テープフィーダ６０による部品供給動作とを連携させるように構成されている。なお、コントローラ５０は、本発明の「制御部」の一例である。
【００２７】
ＣＰＵ５１は、論理演算を実行し、記憶装置５３に記憶されているプログラムに従って、部品撮像装置１１による撮像の制御や、各サーボモータ（ヘッドユニット支持部３０をＹ方向に移動するためのサーボモータ４３（図１参照）、ヘッドユニット２０をＸ方向に移動するためのサーボモータ３２（図１参照）、吸着ノズル２２を上下方向に移動させるためのサーボモータ（図示せず）などの駆動制御を行うように構成されている。また、ＣＰＵ５１は、各テープフィーダ６０に中継装置７１を介して更新プログラム２００のデータを送信することにより、各テープフィーダ６０の制御プログラムを更新させるように構成されている。
【００２８】
ここで、表面実装機１００の各テープフィーダ６０には、仕様の相違などにより、複数の種類が存在する。このため、各テープフィーダ６０の制御プログラムも、それぞれ異なる複数種類の制御プログラムが用いられる。具体的には、図３に示すように、表面実装機１００のテープフィーダ６０は、仕様の互いに異なるテープフィーダ６０ａ（テープフィーダＡ）、６０ｂ（テープフィーダＢ）および６０ｃ（テープフィーダＣ）をそれぞれ複数含んでいる。テープフィーダ６０ａ、６０ｂおよび６０ｃの各々は、対応する更新プログラム２００ａ（更新プログラムＡ）、２００ｂ（更新プログラムＢ）および２００ｃ（更新プログラムＣ）により制御プログラムが更新されるように構成されている。なお、テープフィーダ６０ａ、６０ｂおよび６０ｃは、それぞれ、本発明の「部品供給装置」の一例である。
【００２９】
これらの更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）は、更新プログラムＡ、ＢおよびＣで互いに共通する共通プログラム２０１（共通プログラム１）と、更新プログラムＡおよびＢで互いに共通する共通プログラム２０２（共通プログラム２）と、各々の更新プログラム２００ａ、２００ｂおよび２００ｃに固有の個別プログラム２０３ａ（個別プログラムＡ）、２０３ｂ（個別プログラムＢ）および２０３ｃ（個別プログラムＣ）とから構成されている。すなわち、更新プログラム２００ａは、共通プログラム２０１と、共通プログラム２０２と、個別プログラム２０３ａとから構成されている。また、更新プログラム２００ｂは、共通プログラム２０１と、共通プログラム２０２と、個別プログラム２０３ｂとから構成されている。また、更新プログラム２００ｃは、共通プログラム２０１と、個別プログラム２０３ｃとから構成されている。なお、共通プログラム２０１および２０２は、それぞれ、本発明の「共通プログラム部分」の一例である。また、個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）は、それぞれ、本発明の「個別プログラム部分」の一例である。
【００３０】
また、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の制御プログラムの更新時には、ＣＰＵ５１は、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のうち、共通プログラム２０１を各テープフィーダ６０ａ、６０ｂおよび６０ｃの各々に並行して送信するように構成されている。また、共通プログラム２０２を、テープフィーダ６０ａ、６０ｂにそれぞれ並行して送信するように構成されている。なお、このテープフィーダ６０の制御プログラムの更新については、後に詳細に説明する。
【００３１】
図２に示すように、メモリ５２は、ＣＰＵ５１を制御するプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）および撮像された画像や、テープフィーダ６０の更新プログラム２００の一部などを書き換え可能に記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から構成されている。また、メモリ５２は、ＣＰＵ５１による表面実装機１００の制御や、テープフィーダ６０の制御プログラムの更新時の一時データをＲＡＭに格納することにより、ＣＰＵ５１の作業領域として機能する。
【００３２】
記憶装置５３は、コントローラ５０にインストールされるプログラムのデータや、表面実装機１００による部品実装の手順を規定した実装プログラム、および、各テープフィーダ６０により供給され、実装される部品の部品データなどが記憶されている。また、記憶装置５３には、図３に示すように、読出装置５４から読み出された各テープフィーダ６０の更新プログラム２００が記憶されている。各テープフィーダ６０の制御プログラム更新時には、ＣＰＵ５１により更新プログラム２００が読み出され、プログラム更新対象のテープフィーダ６０に送信されるように構成されている。
【００３３】
また、読出装置５４は、ＣＤ−ＲＯＭドライブ、またはＤＶＤ−ＲＯＭドライブなどによって構成されており、記録媒体１２０（図３参照）に記録されたコンピュータプログラムまたはデータを読み出す機能を有する。記録媒体１２０には、コントローラ５０を制御するためのプログラムおよび各テープフィーダ６０の更新用の制御プログラム（更新プログラム２００）が格納されている。読出装置５４は、記録媒体１２０からプログラムを読み出し、読み出したプログラムはＣＰＵ５１により記憶装置５３に記憶することが可能である。
【００３４】
また、テープフィーダ６０は、図１に示すように、基台１のＹ１方向側およびＹ２方向側の両側に互いに向かい合うようにして、Ｘ方向に並べて配置されている。これらのテープフィーダ６０は、Ｙ１方向側およびＹ２方向側にそれぞれ２台ずつ配置された４台の台車７０に保持された状態で配置されている。このテープフィーダ６０は、複数の部品を所定の間隔を隔てて保持したテープ（図示せず）が巻き回されたリール（図示せず）を保持している。このテープフィーダ６０は、テープをリールから巻き取るようにして所定のピッチで間欠的に送り出すとともに、テープに保持された部品をテープフィーダ６０の先端に設けられた部品取出部（図示せず）まで搬送することにより、部品を供給するように構成されている。供給される部品は、この部品取出部からヘッドユニット２０により取り出され、プリント基板１１０まで搬送される。なお、部品は、ＩＣ、トランジスタ、コンデンサ、抵抗などの電子部品である。
【００３５】
また、台車７０に保持された個々のテープフィーダ６０は、内部に設けられたモータ（図示せず）を駆動させてテープを送り出す電動式のテープフィーダであり、図２に示すように、このモータの動作を制御し、表面実装機１００による部品取得動作に連携してテープ送り動作を実行するためのフィーダ制御部６１を含んでいる。
【００３６】
また、テープフィーダ６０のフィーダ制御部６１は、図示しないコネクタを介して台車７０の中継装置７１と接続され、この中継装置７１を介して表面実装機１００のコントローラ５０と電気的に接続されている。フィーダ制御部６１は、ＣＰＵ６２と、メモリ６３と、フラッシュメモリ６４とを含む。なお、フラッシュメモリ６４は、本発明の「記憶部」の一例である。また、テープフィーダ６０ａ、６０ｂおよび６０ｃの各々の主たる構成は全て同様であるので、以下では、特に断らない限り、同一の構成を有するとして説明する。
【００３７】
ＣＰＵ６２は、論理演算を実行し、表面実装機１００の制御信号に基づいて、テープフィーダ６０を表面実装機１００による部品吸着動作と連携して動作するように制御する機能を有する。このテープフィーダ６０の動作制御は、フラッシュメモリ６４に格納された制御プログラムに基づいて、行われるように構成されている。また、ＣＰＵ６２は、制御プログラムの更新時には、表面実装機１００のコントローラ５０から所定のプログラム単位（１２８バイト）に分割されて送信された更新プログラム２００のデータを、順次フラッシュメモリ６４に書き込むように構成されている。
【００３８】
メモリ６３はＲＡＭから構成され、表面実装機１００による部品実装時に、表面実装機１００のコントローラ５０から出力される制御信号などの一時データをＲＡＭに格納することにより、ＣＰＵ６２の作業領域として機能する。
【００３９】
フラッシュメモリ６４は、テープフィーダ６０の制御プログラムを書き換え可能に格納する不揮発性メモリである。制御プログラムは、このフラッシュメモリ６４からＣＰＵ６２によって読み出され、テープフィーダ６０の動作制御が行われる。また、図２および図３に示すように、制御プログラムの更新時には、中継装置７１を介して各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に送信された更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）が、ＣＰＵ６２によって書き込まれるように構成されている。
【００４０】
また、図４に示すように、第１実施形態では、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のフラッシュメモリ６４には、共通プログラム２０１、２０２および個別プログラム２０３ａ、２０３ｂおよび２０３ｃの他に、初期化処理用のプログラムや、個々のテープフィーダ６０に固有のデータなどが格納されている。この初期化処理用プログラムは、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に応じてそれぞれ異なる場合や、各テープフィーダ６０の一部または全てに共通する場合があるが、第１実施形態では、テープフィーダ６０の全てに共通する場合について説明する。図４に示した一例では、初期化処理用プログラムは、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のそれぞれのフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）のアドレス００００番地から４０００番地の格納領域に格納されている。この初期化処理用プログラムには、電源投入時に読み出され、制御プログラムへと処理を遷移させるためのプログラムや、更新プログラム２００の更新処理のためのプログラムなどが格納されている。また、各フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）のアドレス６０００番地以降の格納領域には、図４に示したように、個々のテープフィーダ６０の固有のフィーダＩＤや、テープ送りのためのモータに組み付けられたギア（図示せず）の偏心量などの補正、調整のためのデータ、テープフィーダ６０のメンテナンス履歴のデータなどが格納されている。これらの初期化処理用プログラムと、個々のテープフィーダ６０毎のデータなどは、制御プログラムの更新時に書き換えられることはない。一方、各テープフィーダ６０の制御プログラム（更新プログラム２００）は、フラッシュメモリ６４の４０００番地から６０００番地までのアドレスに格納されるように構成されている。したがって、制御プログラムの更新時には、フラッシュメモリ６４の４０００番地から６０００番地までのアドレスのデータが書き換えられることにより、更新プログラム２００が格納されるように構成されている。なお、フラッシュメモリ６４ａ、６４ｂおよび６４ｃは、それぞれ、本発明の「記憶部」の一例である。
【００４１】
第１実施形態では、各テープフィーダ６０のフラッシュメモリ６４には、共通プログラム２０１および２０２用の格納領域６４２と、個別プログラム用２０３（２０３ａ、２０３ｂおよび２０３ｃ）の格納領域６４１とが区分けされ、対応するプログラムがそれぞれ格納されるように構成されている。具体的には、各フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の各々の４０００番地〜４３００番地までのアドレスは、個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）の格納領域６４１であり、それぞれ対応する個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）が格納されるように構成されている。したがって、フラッシュメモリ６４ａの格納領域６４１には、個別プログラム２０３ａが格納されるように構成されている。同様に、フラッシュメモリ６４ｂの格納領域６４１には、個別プログラム２０３ｂが格納され、フラッシュメモリ６４ｃの格納領域６４１には、個別プログラム２０３ｃが格納されるように構成されている。このように、全てのテープフィーダ６０のフラッシュメモリ６４の格納領域６４１には、各々のテープフィーダ６０の個別プログラム２０３が格納されるように構成されている。なお、格納領域６４２は、本発明の「第１格納領域」の一例である。また、格納領域６４１は、本発明の「第２格納領域」の一例である。
【００４２】
また、各フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の各々の４３００番地〜６０００番地までのアドレスは、共通プログラム２０１および２０２の格納領域６４２であり、フラッシュメモリ６４ａ、６４ｂおよび６４ｃに共通の共通プログラム２０１と、フラッシュメモリ６４ａおよび６４ｂに共通の共通プログラム２０２とが格納されるように構成されている。したがって、フラッシュメモリ６４ａの格納領域６４２には、共通プログラム２０１および２０２が格納されるように構成されている。同様に、フラッシュメモリ６４ｂの格納領域６４２には、共通プログラム２０１および２０２が格納され、フラッシュメモリ６４ｃの格納領域６４２には、共通プログラム２０１が格納されるように構成されている。このように、テープフィーダ６０のフラッシュメモリ６４の格納領域６４２には、各々のテープフィーダ６０の共通プログラム２０１と、テープフィーダ６０ａおよび６０ｂに共通する共通プログラム２０２とが格納されるように構成されている。また、共通プログラム２０１は、各テープフィーダ６０のフラッシュメモリ６４において、４３００番地から４６００番地までのアドレスに格納されるように構成されている。また、共通プログラム２０２は、テープフィーダ６０ａのフラッシュメモリ６４ａおよびテープフィーダ６０ｂのフラッシュメモリ６４ｂにおいて、４６００番地から４９００番地までのアドレスに格納されるように構成されている。このように、各テープフィーダ６０のフラッシュメモリ６４において、共通プログラム２０１および２０２が格納されるアドレスを共通にすることにより、共通プログラム２０１（２０２）が格納される全てのフラッシュメモリ６４の同一のアドレスを指定して、同一のデータ（共通プログラム２０１、２０２）を送信することが可能である。
【００４３】
また、図１に示すように、テープフィーダ６０を保持する台車７０は、基台１のＹ１方向およびＹ２方向の両側に、それぞれ２台ずつ、合計４台配置されている。これら台車７０は、それぞれ、複数のテープフィーダ６０を保持可能に構成されているとともに、台車７０が表面実装機１００の基台１に接続された際に、台車７０に保持されているテープフィーダ６０を図示しないテープフィーダ装着部に容易に装着することが可能なように構成されている。また、各台車７０には、中継装置７１がそれぞれ内蔵されている。複数のテープフィーダ６０が台車７０にセットされると、図示しないコネクタを介して中継装置７１と接続されることにより、各テープフィーダ６０のフィーダ制御部６１が中継装置７１と電気的に接続されるように構成されている。
【００４４】
台車７０の中継装置７１は、台車７０が基台１のテープフィーダ装着部に接続されることにより、図示しないコネクタを介して表面実装機１００のコントローラ５０と電気的に接続されるように構成されている。これにより、中継装置７１は、表面実装機１００のコントローラ５０と、台車７０にセットされた複数のテープフィーダ６０の各々とを電気的に接続させるとともに、コントローラ５０と各テープフィーダ６０のフィーダ制御部６１との間の制御信号およびデータの送受信を中継する機能を有する。この中継装置７１は、ＣＰＵ７１ａと、メモリ７１ｂと、コントローラ５０との通信用ＩＣ７１ｃと、中継装置７１に接続された各テープフィーダ６０（６０ａ〜６０ｃ）との通信用ＩＣ７１ｄ、７１ｅおよび７１ｆとから構成されている。このテープフィーダ６０との通信用ＩＣ７１ｄ〜７１ｆは、中継装置７１に接続可能なテープフィーダ６０の数だけ設けられることにより、個別に通信を行うことが可能なように構成されている。中継装置７１に接続されたテープフィーダ６０は、通信用ＩＣ７１ｄ〜７１ｆに応じて番号が割り当てられるように構成されている。この番号を指定することにより、中継装置７１に接続された１つまたは複数の任意のテープフィーダ６０に対して選択的にデータが送信されるように構成されている。これにより、コントローラ５０から送信された更新プログラム２００は、中継装置７１を介して更新対象のテープフィーダ６０に選択的に送信可能に構成されている。
【００４５】
このため、表面実装機１００のコントローラ５０は、中継装置７１を介することによって、表面実装機１００にセットされた全てのテープフィーダ６０ａ、６０ｂおよび６０ｃに共通プログラム２０１を並行して送信可能であるとともに、個別プログラム２０３ａを更新対象のテープフィーダ６０ａのみに送信することが可能である。同様に、この中継装置７１を介して、共通プログラム２０２がテープフィーダ６０ａおよび６０ｂに選択的に送信され、個別プログラム２０３ｂと２０３ｃとが、それぞれテープフィーダ６０ｂと６０ｃとに選択的に送信されるように構成されている。一方、コントローラ５０から１つの通信用ＩＣ７１ｃを介して送信されたデータが、それぞれ通信用ＩＣ７１ｄ〜７１ｆを介して各テープフィーダ６０に送信されるため、各テープフィーダ６０に１度に送信可能なデータは１種類のみに限られる。また、共通プログラム２０１を各テープフィーダ６０に送信する際にも、テープフィーダ６０ａと６０ｂと６０ｃとに対して、同一のアドレスを指定して送信する必要がある。
【００４６】
また、更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）は、たとえば、図５に示すようなフォーマットのデータ形式でコントローラ５０の記憶装置５３に格納されている。このフォーマットのデータ形式は、１６進数の２文字で１バイトのデータを表す。先頭のスタートマーク「Ｓ」に続く１〜９までの値によりレコードの種類を示し、「Ｓ０」タイプのレコードには、コメントなどが記載される。「Ｓ１」および「Ｓ２」タイプのレコードには、送信されるデータが含まれる。たとえば、「Ｓ１」タイプのレコードでは、１バイトのデータ長、２バイトのアドレス、１６バイトのデータ、および、１バイトのチェックサム（誤り検出符号）からなる。データ長（１３）は、アドレス、データおよびチェックサムまでのバイト数を示し、１９バイト（アドレス２バイト＋データ１６バイト＋チェックサム１バイト）であることが示される。アドレス（００００）には、後に続く１６バイトのデータの先頭部分のアドレスが記載される。１６バイトのデータには、テープフィーダ６０のフラッシュメモリ６４に書き込まれるデータが格納されている。そして、後端のチェックサムは、データ長からデータの後端までの値を加算した結果の１の補数であり、伝送エラーの確認に用いられる。また、「Ｓ２」タイプのレコードは、アドレスが３バイトで示されている点以外はＳ１タイプと同様である。この結果、データ長（１４）は、１バイト分大きい。図６に示すように、更新プログラム２００は、１６バイトのデータを格納したレコード列から構成されている。なお、図６には、更新プログラム２００の一部のみを示している。
【００４７】
表面実装機１００のコントローラ５０からの更新プログラム２００の送信時には、１２８バイトのデータをプログラム単位として送信されるように構成されている。つまり、図６に示す文字列の８行分（１６バイト×８行＝１２８バイト）を単位として送信される。この１２８バイトのデータは、フィーダ制御部６１のフラッシュメモリ６４への書き込み単位でもある。１２８バイトのデータがフィーダ制御部６１により受信されると、ＣＰＵ６２により、フラッシュメモリ６４の指定されたアドレスに１２８バイト単位で書き込みが行われる。ＣＰＵ６２による書き込みの終了後、次の１２８バイトのデータがコントローラ５０から送信される。この１２８バイト単位のデータ送信と書き込みとが繰り返されることにより、更新プログラム２００がフラッシュメモリ６４の所定の格納領域６４１または６４２に書き込まれるように構成されている。したがって、コントローラ５０が各テープフィーダ６０に対して１度に送信可能なデータ量の大きさが、１２８バイトのプログラム単位となるように構成されている。なお、更新プログラム２００を構成する共通プログラム２０１および２０２のデータと個別プログラム２０３のデータとは、この１２８バイトのプログラム単位の複数の集合から構成されている。
【００４８】
なお、中継装置７１を介して各テープフィーダ６０に宛てて更新プログラム２００が送信される際には、中継装置７１に宛てた送信先のテープフィーダ６０の情報と、送信されるプログラムのデータ長、テープフィーダ６０のフラッシュメモリ６４への書込アドレスおよび１２８バイトのプログラム単位データを含む更新プログラム送信用のフォーマットに変換され、複数の伝文として送信されるように構成されている。
【００４９】
次に、図７を参照して、第１実施形態による表面実装機１００のテープフィーダ６０の制御プログラム更新時の処理を説明する。
【００５０】
まず、図７のステップＳ１において、表面実装機１００のコントローラ５０から、表面実装機１００に接続された各テープフィーダ６０に対して、中継装置７１に接続されることにより割り振られるテープフィーダ６０の番号と、各テープフィーダ６０のフラッシュメモリ６４に格納されている制御プログラムのバージョン情報とを問い合わせるための信号が出力される。この信号は、まず、中継装置７１により受信される。
【００５１】
ステップＳ１１において、問い合わせ信号を受信した中継装置７１により、接続された各テープフィーダ６０に対して、受信された信号が転送される。一方、問い合わせ信号を受信したテープフィーダ６０により、ステップＳ２１において、フラッシュメモリ６４から現在の制御プログラムのバージョン情報が読み込まれ、取得したバージョン情報とフィーダ番号とが中継装置７１により送信される。
【００５２】
各テープフィーダ６０からバージョン情報と各テープフィーダ６０の番号とが中継装置７１により受信されると、ステップＳ１２において、中継装置７１により、これらの各テープフィーダ６０から受信したそれぞれのバージョン情報とテープフィーダ６０の番号とが、表面実装機１００のコントローラ５０に送信される。これにより、コントローラ５０のＣＰＵ５１により、各テープフィーダ６０の各々の制御プログラムのバージョン情報が取得される。
【００５３】
コントローラ５０のＣＰＵ５１により各テープフィーダ６０の制御プログラムのバージョン情報が取得されると、ステップＳ２において、各々のテープフィーダ６０について、制御プログラムの更新が必要か否かが判断される。具体的には、ＣＰＵ５１により記憶装置５３から各更新プログラム２００ａ、２００ｂおよび２００ｃのバージョン情報が読み出されるとともに、各テープフィーダ６０から取得された現在の制御プログラムのバージョン情報と比較される。なお、この際、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に格納されている制御プログラムに対応する更新プログラム２００の種類（更新プログラム２００ａ、２００ｂおよび２００ｃ）も特定される。記憶装置５３に格納された更新プログラム２００ａ、２００ｂおよび２００ｃのバージョンが、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の現在の制御プログラムのバージョンよりも新しい場合には、制御プログラムの更新が必要と判断されステップＳ３に移行して、制御プログラムの更新処理が行われる。一方、記憶装置５３に格納された更新プログラム２００ａ、２００ｂおよび２００ｃのバージョンが、現在の制御プログラムのバージョンと一致するか、古い場合には、最新のバージョンの制御プログラムがテープフィーダ６０に適用されていると判断され、更新を行うことなく終了される。なお、ステップＳ２における更新が必要か否かの判断は、表面実装機１００に取り付けられたテープフィーダ６０毎に行われる。
【００５４】
そして、ステップＳ３、ステップＳ１３およびステップＳ２２において、制御プログラムの更新が必要と判断されたテープフィーダ６０とコントローラ５０とにより、中継装置７１を介して制御プログラムの更新処理が行われる。更新処理では、コントローラ５０から更新対象のテープフィーダ６０に宛てて更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のデータが１２８バイトのプログラム単位毎に送信される。これに応じて、ステップＳ１３では、中継装置７１により、送信された更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のデータの宛て先が読み取られるとともに、それぞれの更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対してデータが転送される。そして、更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のデータが各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）により受信されると、ステップＳ２２において、取得されたプログラム単位の書込アドレスの情報に従って、フィーダ制御部６１のＣＰＵ６２により、フラッシュメモリ６４へ更新プログラム２００のプログラム単位を書き込む制御プログラム更新処理が行われる。なお、この制御プログラムの更新処理については、後述する。
【００５５】
そして、ステップＳ３、Ｓ１３およびＳ２２の制御プログラム更新処理によって更新対象のテープフィーダ６０の全てについて制御プログラムが更新プログラム２００に更新されることにより、表面実装機１００による各テープフィーダ６０の制御プログラムの更新が終了する。
【００５６】
次に、図４、図７および図８を参照して、第１実施形態による表面実装機１００のテープフィーダ６０の制御プログラム更新処理を説明する。
【００５７】
制御プログラム更新処理は、図７のステップＳ３およびＳ２２において行われる処理である。ここでは、テープフィーダ６０ａ、６０ｂおよび６０ｃのそれぞれに対して、更新プログラム２００ａ、２００ｂおよび２００ｃの更新を行う場合について説明する。なお、図７において説明したように、表面実装機１００のコントローラ５０から各テープフィーダ６０へのデータの送受信は、中継装置７１を介して行われるが、以下では、説明の便宜のため、中継装置７１に関する説明は原則として省略する。
【００５８】
まず、図８に示すように、ステップＳ３１において、表面実装機１００のコントローラ５０により、更新対象のテープフィーダ６０ａ、６０ｂおよび６０ｃの各々に対して、制御プログラムの更新処理の開始通知が出力される。各テープフィーダ６０ａ、６０ｂおよび６０ｃの各々のフィーダ制御部６１ａ、６１ｂおよび６１ｃでは、ＣＰＵ６２（６２ａ、６２ｂおよび６２ｃ）により、フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納された初期化処理用プログラム（００００番地から４０００番地）から、制御プログラムの更新処理のためのプログラムが読み出され、フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の格納領域６４１および６４２を書き換え可能な制御プログラム更新用のモードへと遷移する。
【００５９】
ステップＳ５１、Ｓ６１およびＳ７１では、ステップＳ３１におけるコントローラ５０からの更新処理開始通知に基づき、更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）により更新準備完了通知がコントローラ５０に送信される。
【００６０】
一方、ステップＳ３２において、コントローラ５０により、更新対象の各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）から更新準備完了通知を受信したか否かが判断される。更新準備完了通知がコントローラ５０により受信されたと判断された場合には、ステップＳ３３に進む。更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）からの更新準備完了通知が受信されない場合には、ステップＳ３２の判断を繰り返し、更新対象（データ送信対象）のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の更新準備が完了するまで待機する。
【００６１】
その後、ステップＳ３３において、コントローラ５０により、記憶装置５３に格納された各更新プログラム２００ａ、２００ｂおよび２００ｃが読み出され、共通プログラム２０１（共通プログラム１）のデータ送信が行われる。この共通プログラム２０１は、図４に示すように、テープフィーダ６０ａ、６０ｂおよび６０ｃの全てに共通するため、テープフィーダ６０ａ、６０ｂおよび６０ｃのそれぞれに並行して送信される。この際、共通プログラム２０１のデータは、更新プログラム送信用のフォーマットに従い分割および整形され、複数の伝文として送信される。なお、分割される単位は、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の書き込み単位（１２８バイトのプログラム単位）に一致する。プログラム単位毎に分割され、伝文として送信された共通プログラム２０１のデータは、ステップＳ５２、Ｓ６２およびＳ７２のそれぞれにおける書込処理によって、各テープフィーダ６０ａ、６０ｂおよび６０ｃのフラッシュメモリ６４ａ、６４ｂおよび６４ｃの各々の４３００番地から４６００番地までのアドレスに順次書き込まれる。そして、１つの伝文（プログラム単位）として受け取った共通プログラム２０１のデータの書込処理が終了すると、各テープフィーダ６０ａ、６０ｂおよび６０ｃの各々から、書き込み終了がコントローラ５０に中継装置７１を介して通知される。
【００６２】
ステップＳ３４では、更新対象のテープフィーダ６０ａ、６０ｂおよび６０ｃの各々に対し、共通プログラム２０１の全体の書き込みが終了したか否かが判断される。ステップＳ５２、Ｓ６２およびＳ７２のそれぞれにおける書込処理の終了に伴い、分割された伝文（プログラム単位）に対する書き込み終了の通知が更新対象の各テープフィーダ６０ａ、６０ｂおよび６０ｃから送信された場合には、コントローラ５０によりこれらの通知が受信される。そして、コントローラ５０は、分割した共通プログラム２０１の転送が全て終了したか否かを判断し、共通プログラム２０１の転送が全て終了したと判断した場合には、ステップＳ３５へ進む。一方、分割した共通プログラム２０１のうち、未転送のデータが存在する場合には、ステップＳ３３に戻り、更新対象の各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して、次のデータ送信が行われる。
【００６３】
ステップＳ３５では、コントローラ５０により、共通プログラム２０２（共通プログラム２）のデータ送信が行われる。この共通プログラム２０２は、テープフィーダ６０ａおよび６０ｂに共通するため、テープフィーダ６０ａおよび６０ｂに並行して送信される。プログラム単位毎に分割され、伝文として送信された共通プログラム２０２のデータは、ステップＳ５３およびＳ６３における書込処理によって、テープフィーダ６０ａおよび６０ｂのフラッシュメモリ６４ａおよび６４ｂの各々の４６００番地から４９００番地までのアドレスに順次書き込まれる。そして、１つの伝文（プログラム単位）として受け取った共通プログラム２０２のデータの書込処理が終了すると、各テープフィーダ６０ａおよび６０ｂから、コントローラ５０に中継装置７１を介して書き込み終了が通知される。
【００６４】
ステップＳ３６では、更新対象のテープフィーダ６０ａおよび６０ｂに対し、共通プログラム２０２の全体の書き込みが終了したか否かが判断される。ステップＳ５３およびＳ６３における書込処理の終了に伴い、分割された伝文（プログラム単位）に対する書き込み終了の通知が更新対象の各テープフィーダ６０ａおよび６０ｂから送信された場合には、コントローラ５０によりこれらの通知が受信される。そして、コントローラ５０は、分割した共通プログラム２０２の転送が全て終了したか否かを判断し、共通プログラム２０２の転送が全て終了したと判断した場合には、ステップＳ３７へ進む。一方、分割した共通プログラム２０２のうち、未転送のデータが存在する場合には、ステップＳ３５に戻り、更新対象の各テープフィーダ６０ａおよび６０ｂに対して、次のデータ送信が行われる。
【００６５】
ステップＳ３７では、コントローラ５０により、個別プログラム２０３ａ（個別プログラムＡ）のデータ送信が行われる。この個別プログラム２０３ａは、更新プログラム２００ａの更新対象であるテープフィーダ６０ａに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム２０３ａのデータは、ステップＳ５４における書込処理によって、テープフィーダ６０ａのフラッシュメモリ６４ａの４０００番地から４３００番地までのアドレスに順次書き込まれる。そして、１つの伝文（プログラム単位）として受け取った個別プログラム２０３ａのデータの書込処理が終了すると、各テープフィーダ６０ａから、コントローラ５０に中継装置７１を介して書き込み終了が通知される。
【００６６】
ステップＳ３８では、更新対象のテープフィーダ６０ａに対し、個別プログラム２０３ａの全体の書き込みが終了したか否かが判断される。ステップＳ５４における書込処理の終了に伴い、分割された伝文（プログラム単位）に対する書き込み終了の通知が更新対象のテープフィーダ６０ａから送信された場合には、コントローラ５０によりこれらの通知が受信される。そして、コントローラ５０は、分割した個別プログラム２０３ａの転送が全て終了したか否かを判断し、個別プログラム２０３ａの転送が全て終了したと判断した場合には、ステップＳ３９へ進む。一方、分割した個別プログラム２０３ａのうち、未転送のデータが存在する場合には、ステップＳ３７に戻り、更新対象のテープフィーダ６０ａに対して、次のデータ送信が行われる。なお、この個別プログラム２０３ａの書き込みの終了により、テープフィーダ６０ａ（フラッシュメモリ６４ａ）への更新プログラム２００ａの書き込みが完了する。
【００６７】
ステップＳ３９では、コントローラ５０により、個別プログラム２０３ｂ（個別プログラムＢ）のデータ送信が行われる。この個別プログラム２０３ｂは、更新プログラム２００ｂの更新対象であるテープフィーダ６０ｂに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム２０３ｂのデータは、ステップＳ６４における書込処理によって、テープフィーダ６０ｂのフラッシュメモリ６４ｂの４０００番地から４３００番地までのアドレスに順次書き込まれる。そして、１つの伝文（プログラム単位）として受け取った個別プログラム２０３ｂのデータの書込処理が終了すると、テープフィーダ６０ｂから、コントローラ５０に中継装置７１を介して書き込み終了が通知される。
【００６８】
ステップＳ４０では、更新対象のテープフィーダ６０ｂに対し、個別プログラム２０３ｂの全体の書き込みが終了したか否かが判断される。ステップＳ６４における書込処理の終了に伴い、分割された伝文（プログラム単位）に対する書き込み終了の通知が更新対象のテープフィーダ６０ｂから送信された場合には、コントローラ５０によりこれらの通知が受信される。そして、コントローラ５０は、分割した個別プログラム２０３ｂの転送が全て終了したか否かを判断し、個別プログラム２０３ｂの転送が全て終了したと判断した場合には、ステップＳ４１へ進む。一方、分割した個別プログラム２０３ｂのうち、未転送のデータが存在する場合には、ステップＳ３９に戻り、更新対象のテープフィーダ６０ｂに対して、次のデータ送信が行われる。なお、この個別プログラム２０３ｂの書き込みの終了により、テープフィーダ６０ｂ（フラッシュメモリ６４ｂ）への更新プログラム２００ｂの書き込みが完了する。
【００６９】
ステップＳ４１では、コントローラ５０により、個別プログラム２０３ｃ（個別プログラムＣ）のデータ送信が行われる。この個別プログラム２０３ｃは、更新プログラム２００ｃの更新対象であるテープフィーダ６０ｃに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム２０３ｃのデータは、ステップＳ７３における書込処理によって、テープフィーダ６０ｃのフラッシュメモリ６４ｃの４０００番地から４３００番地までのアドレスに順次書き込まれる。そして、１つの伝文（プログラム単位）として受け取った個別プログラム２０３ｃのデータの書込処理が終了すると、各テープフィーダ６０ｃから、コントローラ５０に中継装置７１を介して書き込み終了が通知される。
【００７０】
ステップＳ４２では、更新対象のテープフィーダ６０ｃに対し、個別プログラム２０３ｃの全体の書き込みが終了したか否かが判断される。ステップＳ７３における書込処理の終了に伴い、分割された伝文（プログラム単位）に対する書き込み終了の通知が更新対象のテープフィーダ６０ｃから送信された場合には、コントローラ５０によりこれらの通知が受信される。そして、コントローラ５０は、分割した個別プログラム２０３ｃの転送が全て終了したか否かを判断し、個別プログラム２０３ｃの転送が全て終了したと判断した場合には、ステップＳ４３へ進む。一方、分割した個別プログラム２０３ｃのうち、未転送のデータが存在する場合には、ステップＳ４１に戻り、更新対象のテープフィーダ６０ｃに対して、次のデータ送信が行われる。なお、この個別プログラム２０３ｃの書き込みの終了により、テープフィーダ６０ｃ（フラッシュメモリ６４ｃ）への更新プログラム２００ｃの書き込みが完了する。
【００７１】
ステップＳ４２において、コントローラ５０により個別プログラム２０３ｃの書き込みが終了したと判断されると、全ての更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）の更新が終了する。これにより、ステップＳ４３において、コントローラ５０により、更新対象の各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して、制御プログラムの更新処理の終了通知が出力される。
【００７２】
ステップＳ４３における更新処理の終了通知が各テープフィーダ６０ａ、６０ｂおよび６０ｃにより受信されると、ステップＳ５５、Ｓ６５およびＳ７４において、各々のフィーダ制御部６１ａ、６１ｂおよび６１ｃにより、それぞれ更新終了処理が行われる。ＣＰＵ６２（６２ａ、６２ｂおよび６２ｃ）により、フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納された初期化処理用プログラム（００００番地から４０００番地）から、更新された制御プログラムへ遷移するためのプログラムが読み出され、更新された制御プログラムに基づいた各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の制御を行う。これにより、更新された制御プログラムによる表面実装機１００への部品供給動作を行うことが可能となる。
【００７３】
次に、図８および図９を参照して、第１実施形態による表面実装機１００のテープフィーダ６０への制御プログラムデータのデータ送信処理およびテープフィーダ６０によるデータの書込処理を説明する。
【００７４】
図９の制御プログラムデータのデータ送信処理は、図８のステップＳ３３、Ｓ３５、Ｓ３７、Ｓ３９およびＳ４１において行われる処理である。それぞれのデータ送信処理は、送信される更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のデータの内容（共通プログラム２０１、２０２または個別プログラム２０３）と、データの送信先（テープフィーダ６０ａ、６０ｂおよび６０ｃ）とが異なるが、原則として共通の処理である。
【００７５】
また、図９のデータの書込処理は、図８のステップＳ５２〜Ｓ５４、Ｓ６２〜Ｓ６４、Ｓ７２およびＳ７３において行われる処理である。また、ステップＳ５２〜Ｓ５４は、テープフィーダ６０ａによる書込処理であり、ステップＳ６２〜Ｓ６４は、テープフィーダ６０ｂによる書込処理であり、ステップＳ７２およびＳ７３は、テープフィーダ６０ｃによる書込処理である。これらの書込処理も、上記データ送信処理と同様に、書き込まれるデータの内容（共通プログラム２０１、２０２または個別プログラム２０３）と、書込処理を実行するテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）とが異なるが、原則として同一の処理が行われる。
【００７６】
データ送信処理と書込処理とは、表面実装機１００のコントローラ５０による１２８バイトのプログラム単位のデータ送信と、データを受信したテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）によるデータ書込および書き込み終了通知の送信との繰り返しにより行われる相互的な処理である。以下では、このデータ送信処理と書込処理とを並行して説明する。
【００７７】
図９に示すように、ステップＳ８１では、更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して、中継装置７１に宛てた送信先のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の情報と、送信されるプログラムのデータ長、テープフィーダ６０のフラッシュメモリ６４への書込アドレスおよび１２８バイトのプログラム単位データが送信される。これにより、更新対象（データ送信対象）のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に更新プログラム２００の一部が送信される。この際、たとえば、図８のステップＳ３３におけるデータ送信処理の場合には、共通プログラム２０１のプログラム単位データがテープフィーダ６０ａ、６０ｂおよび６０ｃのそれぞれに並行して送信される。また、たとえば、図８のステップＳ３７におけるデータ送信処理の場合には、個別プログラム２０３ａのプログラム単位データがテープフィーダ６０ａに送信される。
【００７８】
コントローラ５０から更新プログラム２００のプログラム単位データが送信されると、ステップＳ９１において、テープフィーダ６０のＣＰＵ６２により、フラッシュメモリ６４の指定されたアドレスに１２８バイトのプログラム単位のデータ書き込みが行われる。データの書き込みは、送信されたプログラムのデータ長、テープフィーダ６０のフラッシュメモリ６４への書込アドレスおよび１２８バイトのプログラム単位データに基づいて行われる。これにより、共通プログラム２０１のプログラム単位データは、フラッシュメモリ６４の格納領域６４２（４３００番地〜４６００番地）に格納される。
【００７９】
１２８バイトのプログラム単位のデータ書き込みが終了すると、ステップＳ９２において、書き込みが終了したテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）から、コントローラ５０に書き込み終了通知が送信される。
【００８０】
一方、表面実装機１００では、ステップＳ８１におけるデータ送信後、ステップＳ８２において、コントローラ５０により、データ送信を行ったテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）からの書き込み終了通知が受信されたか否かが判断される。ステップＳ９２におけるテープフィーダ６０からの書き込み終了通知が受信された場合には、ステップＳ８３に進む。一方、書き込み終了通知が受信されない場合には、ステップＳ８２の判断を繰り返し、テープフィーダ６０からの書き込み終了通知を待ち受ける。
【００８１】
ステップＳ８３では、コントローラ５０により、全てのデータ送信が完了したか否かが判断される。具体的には、たとえば、図８のステップＳ３３におけるデータ送信処理の場合には、共通プログラム２０１を構成する全てのプログラム単位データがテープフィーダ６０ａ、６０ｂおよび６０ｃのそれぞれに送信されたか否かが判断される。全データの送信が完了していない場合には、ステップＳ８１へ戻り、次のプログラム単位のデータが送信され、テープフィーダ６０により、再度書き込みが行われる。また、テープフィーダ６０からの最終のプログラム単位の書き込み終了通知を受信した場合には、全データの送信が完了したと判断され、図８の処理へと戻る。なお、図８のステップＳ３４、Ｓ３６、Ｓ３８、Ｓ４０およびＳ４２における各プログラムの送信が終了したか否かの判断は、図９のステップＳ９２における、最終のプログラム単位のデータの書き込み終了通知に基づくものである。
【００８２】
以上により、表面実装機１００のコントローラ５０による、プログラム単位毎のデータ送信処理と、テープフィーダ６０による書込処理とが行われる。
【００８３】
次に、図１０を参照して、共通プログラムを個別に送信する比較例との対比で第１実施形態の更新プログラムの送信時間について説明する。
【００８４】
比較例では、各更新プログラム２００ａ、２００ｂおよび２００ｃが、共通プログラム２０１および２０２を含んでいても、更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）毎にテープフィーダ６０に送信する。このため、実際には、共通プログラム２０１を各更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）の送信の際に合計３回送信し、共通プログラム２０２を更新プログラム２００ａおよび２００ｂの送信の際に合計２回送信していることになる。
【００８５】
これに対し、第１実施形態では、共通プログラム２０１を、１回分の送信時間で、テープフィーダ６０ａ、６０ｂおよび６０ｃのそれぞれに並行して送信し、共通プログラム２０２を１回分の送信時間で、テープフィーダ６０ａおよび６０ｂに並行して送信することができる。これにより、第１実施形態では、比較例に対して、共通プログラム２０１の２回分の送信時間、および、共通プログラム２０２の１回分の送信時間が短縮されている。このように、第１実施形態では、各更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）の少なくとも一部に共通する共通プログラム２０１および２０２を、更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信することにより、共通プログラム２０１および２０２を並行して送信した分（図１０の短縮時間）だけデータ送信に要する時間を短縮することが可能である。
【００８６】
第１実施形態では、上記のように、表面実装機１００を、更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）の共通プログラム２０１および２０２を、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信可能に構成することによって、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の制御プログラムがそれぞれ異なる場合にも、互いに一致する共通プログラム２０１および２０２を各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信することができる。これにより、共通プログラム２０１および２０２を含めた更新プログラム２００の全部を各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に個別に送信する場合と比較して、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信できる分だけデータ転送に要する時間を短くすることができる。その結果、制御プログラムの更新に要する時間を短くすることができる。
【００８７】
また、第１実施形態では、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）において、共通プログラム２０１および２０２のデータは、格納領域６４２に格納され、個別プログラム２０３のデータは、格納領域６４２とは異なる格納領域６４１に格納されるように構成することによって、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の個々の更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）において、それぞれのテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）が互いに異なる場合にも、予め共通プログラム２０１および２０２のデータと個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）のデータとをそれぞれ格納領域６４２と格納領域６４１とに格納されるようにしておくことにより、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に同一の共通プログラム２０１および２０２のデータのみを抽出して各々のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に格納領域６４２を指定して送信することができる。これにより、容易に、共通プログラム２０１（２０２）を個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）とは別個に各々のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信することができる。
【００８８】
また、第１実施形態では、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の格納領域６４２を、共通プログラム２０１のデータを同一のアドレス（４３００番地〜４６００番地）に格納し、共通プログラム２０２のデータを、同一のアドレス（４６００番地〜４９００番地）に格納するように構成することによって、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に共通プログラム２０１および２０２のデータを送信する際に、予め同一のアドレスを指定して送信することができる。これにより、構成の異なる制御プログラムがそれぞれフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納されるテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対しても、容易に、共通プログラム２０１および２０２を並行して送信することができる。
【００８９】
また、第１実施形態では、中継装置７１を、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のうちの一部の、共通プログラム２０２を含む更新プログラム２００（２００ａおよび２００ｂ）が格納されるテープフィーダ６０（６０ａおよび６０ｂ）に対して共通プログラム２０２を選択的に送信可能に構成することによって、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納される各更新プログラム２００（２００ａ、２００ｂおよび２００ｃ）のうちの一部の更新プログラム２００（２００ａおよび２００ｂ）にのみ、共通プログラム２０２が存在する場合にも、該当する複数のテープフィーダ６０（６０ａおよび６０ｂ）に選択的に、共通プログラム２０２を並行して送信することができる。
【００９０】
また、第１実施形態では、共通プログラム２０１および２０２を、複数のプログラム単位から構成するとともに、プログラム単位のデータの大きさを、個々のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して１度に送信可能な単位データ量の大きさ（１２８バイト）となるように構成することによって、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）への更新プログラム２００のデータが単位データ量（１２８バイト）毎に送信される場合において、共通プログラム２０１（２０２）を構成するプログラム単位の数だけ、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信することにより共通プログラム２０１（２０２）のデータを送信することができる。すなわち、共通プログラム２０１（２０２）を構成するプログラム単位のデータの大きさを、送信可能な単位データ量の大きさ（１２８バイト）とすることによって、共通プログラム２０１（２０２）のデータの全てを、個別プログラム２０３（２０３ａ、２０３ｂおよび２０３ｃ）とは別個に各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に並行して送信することができる。
【００９１】
（第２実施形態）
次に、図６および図１１を参照して、本発明の第２実施形態による表面実装機について説明する。この第２実施形態では、各テープフィーダ６０のフラッシュメモリ６４において、共通プログラム２０１および２０２を格納領域６４２のそれぞれ同一のアドレスに格納するように構成した上記第１実施形態と異なり、表面実装機１００のコントローラ５０により各更新プログラム３００から共通プログラム３０１（３０２）を判別するとともに、各更新プログラム３００における共通プログラム３０１（３０２）のアドレスのずれ量（オフセット量）を指定するように構成した例について説明する。なお、共通プログラム３０１および３０２は、それぞれ、本発明の「共通プログラム部分」の一例である。
【００９２】
第２実施形態では、図１１に示すように、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）がそれぞれ異なる構成を有している。具体的には、各更新プログラム３００において、個別プログラム３０３ａ、３０３ｂおよび３０３ｃのデータの大きさがそれぞれ異なる。すなわち、テープフィーダ６０ａのフラッシュメモリ６４ａにおいて、個別プログラム３０３ａが４０００番地〜４３００番地、共通プログラム３０１が４３００番地から４６００番地、共通プログラム３０２が４６００番地〜４９００番地のアドレスに格納されるように構成されている。フラッシュメモリ６４ａの４０００番地〜４３００番地までのアドレスは、個別プログラム３０３ａの格納領域６４３ａであり、フラッシュメモリ６４ａの４３００番地〜６０００番地までは、共通プログラム３０１および３０２の格納領域６４４ａである。なお、個別プログラム３０３ａ、３０３ｂおよび３０３ｃは、それぞれ、本発明の「個別プログラム部分」の一例である。また、格納領域６４３ａおよび６４４ａは、それぞれ、本発明の「第２格納領域」および「第１格納領域」の一例である。
【００９３】
また、テープフィーダ６０ｂのフラッシュメモリ６４ｂにおいて、個別プログラム３０３ｂが４０００番地〜５０００番地、共通プログラム３０１が５０００番地〜５３００番地、共通プログラム３０２が５３００番地〜５６００番地のアドレスに格納されるように構成されている。フラッシュメモリ６４ｂの４０００番地〜５０００番地までのアドレスは、個別プログラム３０３ｂの格納領域６４３ｂであり、フラッシュメモリ６４ｂの５０００番地〜６０００番地までは、共通プログラム３０１および３０２の格納領域６４４ｂである。なお、格納領域６４３ｂおよび６４４ｂは、それぞれ、本発明の「第２格納領域」および「第１格納領域」の一例である。
【００９４】
また、テープフィーダ６０ｃのフラッシュメモリ６４ｃにおいて、個別プログラム３０３ｃが４０００番地〜５５００番地、共通プログラム３０１が５５００番地〜５８００番地のアドレスに格納されるように構成されている。フラッシュメモリ６４ｃの４０００番地〜５５００番地までのアドレスは、個別プログラム３０３ｃの格納領域６４３ｃであり、フラッシュメモリ６４ｃの５５００番地〜６０００番地までは、共通プログラム３０１の格納領域６４４ｃである。なお、格納領域６４３ｃおよび６４４ｃは、それぞれ、本発明の「第２格納領域」および「第１格納領域」の一例である。
【００９５】
このように、第２実施形態では、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）の個別プログラム３０３（３０３ａ、３０３ｂおよび３０３ｃ）のデータの大きさがそれぞれ異なるため、各共通プログラム３０１および３０２について、各フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）における一致したアドレスを指定して格納することができない。このため、第２実施形態では、各共通プログラム３０１および３０２を、予め関連付けられた、それぞれ異なるアドレスに格納するように構成されている。なお、共通プログラム３０１および３０２は、各更新プログラム３００において同一の内容および大きさを有する。なお、個別プログラム３０３は、本発明の「個別プログラム部分」の一例である。
【００９６】
具体的には、各共通プログラム３０１（３０２）のデータは、テープフィーダ６０ａ（テープフィーダＡ）のフラッシュメモリ６４ａにおけるアドレスを基準として、テープフィーダ６０ｂ（テープフィーダＢ）およびテープフィーダ６０ｃ（テープフィーダＣ）の各々に応じたアドレスのずれ量（オフセット量）を予め指定して格納されるように構成されている。すなわち、テープフィーダ６０ｂについては、共通プログラム３０１は、テープフィーダ６０ａにおけるアドレス４３００番地に対して、７００番地ずれた５０００番地に格納される。同様に、共通プログラム３０２も、テープフィーダ６０ａにおけるアドレス４６００番地に対して、７００番地ずれた５３００番地に格納される。このアドレスのずれ量（オフセット量）７００番地を、予め指定しておくことにより、テープフィーダ６０ａを基準とした、４３００番地（４６００番地）のアドレスに書き込むように指定された共通プログラム３０１（３０２）が送信された場合に、テープフィーダ６０ｂでは、オフセット量７００番地を加えたアドレスに書き込むように構成されている。
【００９７】
同様に、テープフィーダ６０ｃについては、共通プログラム３０１が、テープフィーダ６０ａにおけるアドレス４３００番地に対して、１２００番地ずれた５５００番地に格納される。このアドレスのずれ量（オフセット量）１２００番地を、予め指定しておくことにより、テープフィーダ６０ａを基準とした、４３００番地のアドレスに書き込むように指定された共通プログラム３０１が送信された場合に、テープフィーダ６０ｃでは、オフセット量１２００番地を加えたアドレスに書き込むように構成されている。これにより、同一アドレス（４３００番地）を指定した共通プログラム３０１のデータを各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して並行して送信した場合にも、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）において関連付けられた異なるアドレスに共通プログラム３０１が格納されるように構成されている。
【００９８】
また、第２実施形態では、これらの各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）における共通プログラム３０１（３０２）の判別が、表面実装機１００のコントローラ５０（ＣＰＵ５１）により行われるように構成されている。コントローラ５０は、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）の各々のデータ（図６参照）をプログラム単位毎に照合し、１６バイト×８行＝１２８バイトのデータが一致する部分を特定し、指定されたアドレスを取得するように構成されている。これによりコントローラ５０（ＣＰＵ５１）は、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）において共通する共通プログラム３０１（３０２）を特定するとともに、テープフィーダ６０ａ（テープフィーダＡ）のフラッシュメモリ６４ａにおけるアドレスを基準としたオフセット量を、更新プログラム３００毎に生成するように構成されている。
【００９９】
なお、この他の構成は第１実施形態と同様であるので、説明を省略する。
【０１００】
次に、図６および図１２を参照して、第２実施形態による表面実装機１００のコントローラ５０による、共通プログラム３０１（３０２）の判別処理を説明する。
【０１０１】
共通プログラム３０１（３０２）の判別処理は、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の制御プログラムの更新処理を行う前段階として行うことにより、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）における共通プログラム３０１（３０２）を判別するとともに、オフセット量データを生成する処理である。
【０１０２】
まず、ステップＳ１０１において、コントローラ５０のＣＰＵ５１により、記憶装置５３から各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）のデータが読み出されるとともに、メモリ５２に展開される。図６に示すように、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）は、図５に示す所定のフォーマットで格納されており、これらがコントローラ５０のメモリ５２上に全て展開される。
【０１０３】
次に、ステップＳ１０２において、ＣＰＵ５１により、メモリ５２に展開された各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）のデータが１２８バイトのプログラム単位毎に照合され、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）に含まれる、共通プログラム３０１（３０２）が特定される。すなわち、図６に示すプログラムの文字列中、１行１６バイトのデータが８行単位で照合され、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）における、１２８バイトの文字列（プログラム単位）が完全に一致する部分が特定される。これにより、全更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）に共通する共通プログラム３０１と、更新プログラム３００ａおよび３００ｂに共通する共通プログラム３０２が判別される。また、このとき、各共通プログラム３０１（３０２）について指定されたアドレスも特定される。
【０１０４】
そして、ステップＳ１０３において、コントローラ５０のＣＰＵ５１により、特定された共通プログラム３０１（３０２）の各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）におけるアドレス（格納領域６４４ａのアドレス）に基づいて、更新プログラム３００ａ（更新プログラムＡ）に対する更新プログラム３００ｂ（更新プログラムＢ）および更新プログラム３００ｃ（更新プログラムＣ）のそれぞれの格納領域６４４ｂおよび６４４ｃのオフセット量が生成される。
【０１０５】
以上により、各更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）に共通する共通プログラム３０１（３０２）の判別が行われるとともに、各共通プログラム３０１（３０２）の更新プログラム３００ａに対するオフセット量が、各更新プログラム３００ｂおよび３００ｃについて生成される。
【０１０６】
次に、図１２および図１３を参照して、本発明の第２実施形態による表面実装機１００のテープフィーダ６０への制御プログラムデータのデータ送信処理およびテープフィーダ６０によるデータの書込処理を説明する。
【０１０７】
第２実施形態によるデータ送信処理と書込処理とは後述するステップＳ１１１およびステップＳ１２１の処理が異なる以外は上記第１実施形態と同様である。以下では、第１実施形態と重複する部分には同一の符号を付す。
【０１０８】
第２実施形態のデータ送信処理および書込処理では、まず、ステップＳ１１１において、図１２に示した共通プログラム判別処理により生成されたオフセット量データが、更新プログラム３００ｂおよび３００ｃに応じて、更新対象のテープフィーダ６０ｂおよび６０ｃにそれぞれ個別に送信される。この際、中継装置７１に接続されたテープフィーダ６０の番号と、制御プログラムのバージョン情報とに基づいて更新プログラム３００ｂ（更新プログラムＢ）が格納されるテープフィーダ６０ｂと、更新プログラム３００ｃ（更新プログラムＣ）が格納されるテープフィーダ６０ｃとが特定され、オフセット量データがそれぞれ送信される。また、オフセット量データは、更新プログラム３００ｂ（更新プログラムＢ）が格納されるテープフィーダ６０ｂに対しては、テープフィーダ６０ａにおける格納領域６４４ａのアドレス４３００番地に対して、７００番地ずれたアドレス（格納領域６４４ｂのアドレス）に書き込むように指定される。同様に、オフセット量データは、更新プログラム３００ｃ（更新プログラムＣ）が格納されるテープフィーダ６０ｃに対しては、テープフィーダ６０ａにおける格納領域６４４ａのアドレス４３００番地に対して、１２００番地ずれたアドレス（格納領域６４４ｃのアドレス）に書き込むように指定される。なお、このオフセット量データの送信は、共通プログラム３０１のデータ送信時にテープフィーダ６０ｂおよび６０ｃに対して個別に行われ、共通プログラム３０２のデータ送信時には、テープフィーダ６０ｂに対して行われる。また、これ以外の個別プログラム３０３（３０３ａ、３０３ｂおよび３０３ｃ）のデータ送信時には、オフセット量データは送信されない。
【０１０９】
その後、ステップＳ８１において、更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して、送信されるプログラムのデータ長、テープフィーダ６０のフラッシュメモリ６４への書込アドレスおよび１２８バイトのプログラム単位データが送信される。この際、共通プログラム３０１のデータ送信時には、更新プログラム３００ａ（テープフィーダ６０ａ）における書込アドレス（４３００番地）が指定される。また、共通プログラム３０２のデータ送信時には、更新プログラム３００ａ（テープフィーダ６０ａ）における書込アドレス（４６００番地）が指定される。つまり、第１実施形態と同様のデータ送信処理が行われる。
【０１１０】
コントローラ５０から更新プログラム３００のプログラム単位データが送信されると、ステップＳ１２１において、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のＣＰＵ６２（６２ａ、６２ｂおよび６２ｃ）により、フラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）の指定されたアドレスに１２８バイトのプログラム単位のデータ書き込みが行われる。共通プログラム３０１のプログラム単位データは、テープフィーダ６０ａについては、フラッシュメモリ６４ａの４３００番地のアドレスに格納される。テープフィーダ６０ｂの場合には、共通プログラム３０１のプログラム単位データ書込の際、指定された４３００番地のアドレスに、ステップＳ１１１において送信されたオフセット量データ（７００番地）を加えることにより、５０００番地に書込が行われる。また、共通プログラム３０２のプログラム単位データ書込の際にも、指定された４６００番地のアドレスに、ステップＳ１１１において送信されたオフセット量データ（７００番地）を加えることにより、５３００番地に書込が行われる。同様に、テープフィーダ６０ｃの場合には、共通プログラム３０１のプログラム単位データ書込の際、指定された４３００番地のアドレスに、ステップＳ１１１において送信されたオフセット量データ（１２００番地）を加えることにより、５５００番地に書込が行われる。これにより、同一のアドレス（４３００番地および４６００番地）を指定した共通プログラム３０１および３０２を更新対象のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対して並行して送信するだけで、予め関連付けられた互いに異なるアドレスに格納することができる。これにより、仕様などの相違により互いに異なるアドレスに共通プログラム３０１（３０２）を格納する必要がある場合でも、共通プログラム３０１（３０２）のデータを個別に送信することなく、並行して送信することが可能である。
【０１１１】
その後、１２８バイトのプログラム単位のデータ書き込みが終了すると、ステップＳ９２において、書き込みが終了したテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）から、コントローラ５０に書き込み終了通知が送信される。そして、ステップＳ８２において、コントローラ５０により、データ送信を行ったテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）からの書き込み終了通知が受信されたか否かが判断され、ステップＳ８３において、コントローラ５０により、全てのデータ送信が完了したか否かが判断される。全データの送信が完了していない場合には、ステップＳ８１へ戻り、次のプログラム単位のデータが送信され、テープフィーダ６０により、再度書き込みが行われる。また、テープフィーダ６０からの最終のプログラム単位の書き込み終了通知を受信した場合には、全データの送信が完了したと判断され、以降の処理へと戻る。
【０１１２】
以上により、第２実施形態による表面実装機１００のコントローラ５０による、プログラム単位毎のデータ送信処理と、テープフィーダ６０による書込処理とが行われる。
【０１１３】
第２実施形態では、上記のように、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）において、共通プログラム３０１（３０２）のデータを、予め関連付けられた、それぞれ異なるアドレスに格納されるように構成することによって、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の種類の相違に起因して、共通プログラム３０１（３０２）をテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）毎に異なるアドレスに格納する必要がある場合にも、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の予め指定したアドレスと関連付けることによって、他のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）と同じアドレスを指定して共通プログラム３０１（３０２）のデータを送信することができる。これにより、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の種類の相違に起因して、構成の異なる制御プログラムがそれぞれフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納されるテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）に対しても、容易に、共通プログラム３０１（３０２）を並行して送信することができる。
【０１１４】
また、第２実施形態では、共通プログラム３０１および３０２のデータを、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）に格納する際に、テープフィーダ６０ａのフラッシュメモリ６４ａにおける格納領域６４４ａのアドレス（４３００番地および４６００番地）を基準として、テープフィーダ６０ｂおよび６０ｃに応じて予め指定されたオフセット量（格納位置ずれ量）だけずれたアドレスに格納領域６４４ｂおよび６４４ｃのアドレスが設定されることにより、共通プログラム３０１（３０２）の格納領域６４４ａ、６４４ｂおよび６４４ｃに異なるアドレスが互いに関連付けられるように構成することによって、制御プログラムの構成上、共通プログラム３０１（３０２）をテープフィーダ６０毎に異なるアドレスに格納する必要がある場合に、同一の共通プログラム３０１（３０２）のデータを、それぞれのテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のフラッシュメモリ６４（６４ａ、６４ｂおよび６４ｃ）において、設定されたオフセット量（位置ずれ量）だけずれた、異なるアドレスに関連付けて格納することができる。
【０１１５】
また、第２実施形態では、表面実装機１００のコントローラ５０を、複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の各々の更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）から、共通プログラム３０１（３０２）を判別するように構成することによって、更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）の作成時点で予め共通プログラム３０１（３０２）を他の部分と区別しない場合にも、コントローラ５０により、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）の更新プログラム３００（３００ａ、３００ｂおよび３００ｃ）から、共通プログラム３０１（３０２）を判別することができる。
【０１１６】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【０１１７】
たとえば、上記第１実施形態では、コントローラ５０と各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）とを、中継装置７１を介して接続するように構成した例を示したが、本発明はこれに限らず、図１４に示す変形例のように、中継装置を用いることなく、いわゆるバス接続により表面実装機のコントローラと各テープフィーダとを接続してもよい。
【０１１８】
図１４に示す変形例では、コントローラ５０からの１つの通信路（バス）に複数のテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）が接続されている。この変形例においては、コントローラ５０から送信される更新プログラム２００は全てのテープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）で受信可能となる。そして、送信先のテープフィーダ６０の情報（宛て先）に基づき、テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）のそれぞれのＣＰＵ（図示せず）が、送信された更新プログラム２００を受信するか否かを判断するように構成されている。このように構成しても、本発明の効果を第１実施形態と同様に得ることができる。
【０１１９】
また、上記第１実施形態では、中継装置７１を、各テープフィーダ６０を保持する台車７０に内蔵した例を示したが、本発明はこれに限らず、中継装置を表面実装機に内蔵してもよい。すなわち、各テープフィーダが表面実装機に内蔵された中継装置に直接接続されるように構成してもよい。
【０１２０】
また、上記第１実施形態では、更新プログラム２００を、記録媒体１２０からコントローラ５０の読出装置５４を介して読み出し、記憶装置５３に記憶する例を示したが、本発明はこれに限らず、更新プログラムを、たとえばネットワークを介して接続されたホストサーバなどから表面実装機のコントローラに送信するとともに、コントローラの記憶装置に記憶してもよい。また、読出装置についても、第１実施形態において示したＣＤ―ＲＯＭドライブ、ＤＶＤ−ＲＯＭドライブ以外の他の読出装置により構成してもよい。
【０１２１】
また、上記第２実施形態では、表面実装機１００のコントローラ５０により、共通プログラム３０１（３０２）のテープフィーダ６０ｂおよび６０ｃに応じたオフセット量データを生成するように構成した例を示したが、本発明はこれに限らず、オフセット量データが予め設定してあってもよい。そして、コントローラ５０は、予め設定されたオフセット量データを更新対象のテープフィーダに送信するように構成してもよい。また、共通プログラムも、コントローラによる判別を行うことなく、第１実施形態と同様に予め指定されていてもよい。
【０１２２】
また、上記第２実施形態では、共通プログラム３０１（３０２）の送信（プログラム単位）に先立って、コントローラ５０によりオフセット量データを送信対象のテープフィーダ６０ｂおよび６０ｃに送信するように構成した例を示したが、本発明はこれに限らず、プログラム単位の送信に先立ってオフセット量データを送ることなく、送信される共通プログラムにオフセットデータを含めるようにしてもよい。そして、各テープフィーダのＣＰＵが、共通プログラムに含まれるオフセットデータに基づいて書込アドレスをずらすようにしてもよい。
【０１２３】
また、上記第１実施形態および上記第２実施形態では、共通プログラム２０１（３０１）、２０２（３０２）および個別プログラム２０３（３０３）を、それぞれテープフィーダ６０のフラッシュメモリ６４において、たとえば４３００番地〜４６００番地のアドレスに連続して格納する例を示したが、本発明はこれに限られない。すなわち、共通プログラムおよび個別プログラムを、それぞれ連続的なアドレスに格納する必要はなく、非連続的なアドレスに格納されるように構成してもよい。
【０１２４】
また、上記第１実施形態では、共通プログラムを先に送信し、個別プログラムを後に送信する例を示したが、本発明はこれに限らず、個別プログラムを共通プログラムよりも先に送信するようにしてもよい。送信の順序は任意である。
【０１２５】
また、上記第１実施形態では、更新プログラム２００を、テープフィーダ６０のフラッシュメモリ６４に格納する例を示したが、本発明はこれに限らず、テープフィーダの記憶部は、フラッシュメモリである必要はなく、更新プログラムを格納可能な不揮発性のメモリであればよい。たとえば、記憶部は、ハードディスクドライブなどにより構成してもよい。
【０１２６】
また、上記第１実施形態では、更新プログラムは、１２８バイトのプログラム単位毎に送信され、書き込まれるように構成した例を示したが、本発明はこれに限らず、プログラム単位は１２８バイトよりも小さいデータ量、または１２８バイトよりも大きいデータ量でもよい。また、フラッシュメモリへの書き込みも、１２８バイトよりも小さいか、または、１２８バイトよりも大きいプログラム単位毎に行われるように構成してもよい。
【０１２７】
また、上記第１実施形態では、コントローラ５０から各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）への共通プログラム２０１（２０２）のデータ送信に通信用ＩＣ７１ｃ、７１ｄ、７１ｅおよび７１ｆを用いる例を示したが、本発明はこれに限らず、共通プログラム部分を電気的に並行して同時または実質的に同時に送信可能な他の通信手段を用いてもよい。
【０１２８】
また、上記第１実施形態および上記第２実施形態では、各テープフィーダ６０（６０ａ、６０ｂおよび６０ｃ）への共通プログラム２０１（２０２）のデータ送信を、表面実装機１００のコントローラ５０によって行う例を示したが、本発明はこれに限らず、表面実装機のコントローラとは異なる汎用のＰＣ（パーソナルコンピュータ）や、複数の部品供給装置にデータ送信を行う専用の送信装置などの送信処理部により、更新プログラムの共通プログラム部分のデータを複数の部品供給装置に並行して送信するように構成してもよい。このように構成した場合、ＰＣまたはデータ送信装置などの送信処理部により、本発明の、部品供給装置のデータ送信システムが構成される。このように構成した場合にも、送信処理部を用いて共通プログラム部分を各部品供給装置に並行して送信することによりデータ転送に要する時間を短くすることができ、その結果、制御プログラムの更新に要する時間を短くすることができるという本発明の効果を得ることが可能である。なお、この場合、部品供給装置のデータ送信システムは、複数のＰＣまたは送信装置などから構成されていてもよい。また、部品供給装置のデータ送信システムは、複数の部品供給装置にデータ送信を行うための中継装置などを含んでいてもよい。
【符号の説明】
【０１２９】
２０  ヘッドユニット
５０  コントローラ（制御部）
６０、６０ａ、６０ｂ、６０ｃ  テープフィーダ（部品供給装置）
６４、６４ａ、６４ｂ、６４ｃ  フラッシュメモリ（記憶部）
７１  中継装置
１００  表面実装機
１１０  プリント基板（基板）
２００、２００ａ、２００ｂ、２００ｃ、３００、３００ａ、３００ｂ、３００ｃ  更新プログラム
２０１、２０２、３０１、３０２  共通プログラム（共通プログラム部分）
２０３、２０３ａ、２０３ｂ、２０３ｃ、３０３、３０３ａ、３０３ｂ、３０３ｃ  個別プログラム（個別プログラム部分）
６４１、６４３ａ、６４３ｂ、６４３ｃ  格納領域（第２格納領域）
６４２、６４４ａ、６４４ｂ、６４４ｃ  格納領域（第１格納領域）
【図１】
2010182768.tif 000003
【図２】
2010182768.tif 000004
【図３】
2010182768.tif 000005
【図４】
2010182768.tif 000006
【図５】
2010182768.tif 000007
【図６】
2010182768.tif 000008
【図７】
2010182768.tif 000009
【図８】
2010182768.tif 000010
【図９】
2010182768.tif 000011
【図１０】
2010182768.tif 000012
【図１１】
2010182768.tif 000013
【図１２】
2010182768.tif 000014
【図１３】
2010182768.tif 000015
【図１４】
2010182768.tif 000016