以下、本発明の実施形態を図面に基づいて説明する。
(第1実施形態)
まず、図1〜図10を参照して、本発明の第1実施形態による表面実装機100の構造について説明する。
図1に示すように、第1実施形態による表面実装機100は、テープフィーダ60から供給される部品をプリント基板110に実装する装置である。なお、テープフィーダ60は、本発明の「部品供給装置」の一例である。また、プリント基板110は、本発明の「基板」の一例である。図1に示すように、表面実装機100は、X方向に延びる一対の基板搬送コンベア10と、一対の基板搬送コンベア10の上方をXY方向に移動可能なヘッドユニット20とを備えている。ヘッドユニット20は、テープフィーダ60から部品を取得するとともに、基板搬送コンベア10上のプリント基板110に部品を実装する機能を有する。基板搬送コンベア10およびヘッドユニット20は、基台1上に設置されている。以下、表面実装機100の具体的な構造を説明する。
一対の基板搬送コンベア10は、プリント基板110をX方向に搬送するとともに、所定の実装作業位置でプリント基板110を停止させ、保持させることが可能なように構成されている。
また、図1に示すように、ヘッドユニット20は、X方向に延びるヘッドユニット支持部30に沿ってX方向に移動可能に構成されている。具体的には、ヘッドユニット支持部30は、ボールネジ軸31とボールネジ軸31を回転させるサーボモータ32とX方向のガイドレール(図示せず)とを有しているとともに、ヘッドユニット20は、ボールネジ軸31が螺合されるボールナット21を有している。ヘッドユニット20は、サーボモータ32によりボールネジ軸31が回転されることにより、ヘッドユニット支持部30に対してX方向に移動するように構成されている。また、ヘッドユニット支持部30は、基台1上に設けられたY方向に延びる一対の固定レール部40に沿ってY方向に移動可能に構成されている。具体的には、固定レール部40は、ヘッドユニット支持部30の両端部をY方向に移動可能に支持するガイドレール41と、Y方向に延びるボールネジ軸42と、ボールネジ軸42を回転させるサーボモータ43とを有しているとともに、ヘッドユニット支持部30には、ボールネジ軸42が螺合されるボールナット33が設けられている。ヘッドユニット支持部30は、サーボモータ43によりボールネジ軸42が回転されることによって、ガイドレール41に沿ってY方向に移動するように構成されている。このような構成により、ヘッドユニット20は、基台1上をXY方向に移動することが可能なように構成されている。
また、ヘッドユニット20には、X方向に列状に配置された6本の吸着ノズル22が下方に突出するように設けられている。また、各々の吸着ノズル22は、負圧発生機(図示せず)によってその先端に負圧状態を発生させることが可能に構成されている。吸着ノズル22は、この負圧によって、テープフィーダ60から供給される部品を先端に吸着および保持することが可能である。
また、各々の吸着ノズル22は、図示しない機構(サーボモータなど)によって、ヘッドユニット20に対して上下方向に移動可能に構成されている。表面実装機100は、吸着ノズル22が上昇位置に位置した状態で部品の搬送や部品撮像装置11による撮像などを行うとともに、吸着ノズル22が下降位置に位置した状態で部品のテープフィーダ60からの吸着およびプリント基板110への実装を行うように構成されている。また、吸着ノズル22は、吸着ノズル22自体がその軸を中心として回転可能に構成されている。これにより、表面実装機100では、部品を搬送する途中に吸着ノズル22を回転させることにより、ノズルの先端に保持された部品の姿勢(水平面内の向き)を調整することが可能である。
また、表面実装機100の動作は、図2に示すコントローラ50によって制御されている。コントローラ50は、主としてCPU51と、メモリ52と、記憶装置53と、読出装置54とを含むコンピュータから構成されている(図3参照)。また、コントローラ50は、表面実装機100の図示しないコネクタに接続された後述する中継装置71を介して各テープフィーダ60のフィーダ制御部61と電気的に接続されている。そして、コントローラ50は、CPU51からフィーダ制御部61に制御信号を送ることによりテープフィーダ60の駆動制御を行う。これにより、表面実装機100による部品吸着動作と、各テープフィーダ60による部品供給動作とを連携させるように構成されている。なお、コントローラ50は、本発明の「制御部」の一例である。
CPU51は、論理演算を実行し、記憶装置53に記憶されているプログラムに従って、部品撮像装置11による撮像の制御や、各サーボモータ(ヘッドユニット支持部30をY方向に移動するためのサーボモータ43(図1参照)、ヘッドユニット20をX方向に移動するためのサーボモータ32(図1参照)、吸着ノズル22を上下方向に移動させるためのサーボモータ(図示せず)などの駆動制御を行うように構成されている。また、CPU51は、各テープフィーダ60に中継装置71を介して更新プログラム200のデータを送信することにより、各テープフィーダ60の制御プログラムを更新させるように構成されている。
ここで、表面実装機100の各テープフィーダ60には、仕様の相違などにより、複数の種類が存在する。このため、各テープフィーダ60の制御プログラムも、それぞれ異なる複数種類の制御プログラムが用いられる。具体的には、図3に示すように、表面実装機100のテープフィーダ60は、仕様の互いに異なるテープフィーダ60a(テープフィーダA)、60b(テープフィーダB)および60c(テープフィーダC)をそれぞれ複数含んでいる。テープフィーダ60a、60bおよび60cの各々は、対応する更新プログラム200a(更新プログラムA)、200b(更新プログラムB)および200c(更新プログラムC)により制御プログラムが更新されるように構成されている。なお、テープフィーダ60a、60bおよび60cは、それぞれ、本発明の「部品供給装置」の一例である。
これらの更新プログラム200(200a、200bおよび200c)は、更新プログラムA、BおよびCで互いに共通する共通プログラム201(共通プログラム1)と、更新プログラムAおよびBで互いに共通する共通プログラム202(共通プログラム2)と、各々の更新プログラム200a、200bおよび200cに固有の個別プログラム203a(個別プログラムA)、203b(個別プログラムB)および203c(個別プログラムC)とから構成されている。すなわち、更新プログラム200aは、共通プログラム201と、共通プログラム202と、個別プログラム203aとから構成されている。また、更新プログラム200bは、共通プログラム201と、共通プログラム202と、個別プログラム203bとから構成されている。また、更新プログラム200cは、共通プログラム201と、個別プログラム203cとから構成されている。なお、共通プログラム201および202は、それぞれ、本発明の「共通プログラム部分」の一例である。また、個別プログラム203(203a、203bおよび203c)は、それぞれ、本発明の「個別プログラム部分」の一例である。
また、各テープフィーダ60(60a、60bおよび60c)の制御プログラムの更新時には、CPU51は、各テープフィーダ60(60a、60bおよび60c)の更新プログラム200(200a、200bおよび200c)のうち、共通プログラム201を各テープフィーダ60a、60bおよび60cの各々に並行して送信するように構成されている。また、共通プログラム202を、テープフィーダ60a、60bにそれぞれ並行して送信するように構成されている。なお、このテープフィーダ60の制御プログラムの更新については、後に詳細に説明する。
図2に示すように、メモリ52は、CPU51を制御するプログラムを記憶するROM(Read Only Memory)および撮像された画像や、テープフィーダ60の更新プログラム200の一部などを書き換え可能に記憶するRAM(Random Access Memory)から構成されている。また、メモリ52は、CPU51による表面実装機100の制御や、テープフィーダ60の制御プログラムの更新時の一時データをRAMに格納することにより、CPU51の作業領域として機能する。
記憶装置53は、コントローラ50にインストールされるプログラムのデータや、表面実装機100による部品実装の手順を規定した実装プログラム、および、各テープフィーダ60により供給され、実装される部品の部品データなどが記憶されている。また、記憶装置53には、図3に示すように、読出装置54から読み出された各テープフィーダ60の更新プログラム200が記憶されている。各テープフィーダ60の制御プログラム更新時には、CPU51により更新プログラム200が読み出され、プログラム更新対象のテープフィーダ60に送信されるように構成されている。
また、読出装置54は、CD−ROMドライブ、またはDVD−ROMドライブなどによって構成されており、記録媒体120(図3参照)に記録されたコンピュータプログラムまたはデータを読み出す機能を有する。記録媒体120には、コントローラ50を制御するためのプログラムおよび各テープフィーダ60の更新用の制御プログラム(更新プログラム200)が格納されている。読出装置54は、記録媒体120からプログラムを読み出し、読み出したプログラムはCPU51により記憶装置53に記憶することが可能である。
また、テープフィーダ60は、図1に示すように、基台1のY1方向側およびY2方向側の両側に互いに向かい合うようにして、X方向に並べて配置されている。これらのテープフィーダ60は、Y1方向側およびY2方向側にそれぞれ2台ずつ配置された4台の台車70に保持された状態で配置されている。このテープフィーダ60は、複数の部品を所定の間隔を隔てて保持したテープ(図示せず)が巻き回されたリール(図示せず)を保持している。このテープフィーダ60は、テープをリールから巻き取るようにして所定のピッチで間欠的に送り出すとともに、テープに保持された部品をテープフィーダ60の先端に設けられた部品取出部(図示せず)まで搬送することにより、部品を供給するように構成されている。供給される部品は、この部品取出部からヘッドユニット20により取り出され、プリント基板110まで搬送される。なお、部品は、IC、トランジスタ、コンデンサ、抵抗などの電子部品である。
また、台車70に保持された個々のテープフィーダ60は、内部に設けられたモータ(図示せず)を駆動させてテープを送り出す電動式のテープフィーダであり、図2に示すように、このモータの動作を制御し、表面実装機100による部品取得動作に連携してテープ送り動作を実行するためのフィーダ制御部61を含んでいる。
また、テープフィーダ60のフィーダ制御部61は、図示しないコネクタを介して台車70の中継装置71と接続され、この中継装置71を介して表面実装機100のコントローラ50と電気的に接続されている。フィーダ制御部61は、CPU62と、メモリ63と、フラッシュメモリ64とを含む。なお、フラッシュメモリ64は、本発明の「記憶部」の一例である。また、テープフィーダ60a、60bおよび60cの各々の主たる構成は全て同様であるので、以下では、特に断らない限り、同一の構成を有するとして説明する。
CPU62は、論理演算を実行し、表面実装機100の制御信号に基づいて、テープフィーダ60を表面実装機100による部品吸着動作と連携して動作するように制御する機能を有する。このテープフィーダ60の動作制御は、フラッシュメモリ64に格納された制御プログラムに基づいて、行われるように構成されている。また、CPU62は、制御プログラムの更新時には、表面実装機100のコントローラ50から所定のプログラム単位(128バイト)に分割されて送信された更新プログラム200のデータを、順次フラッシュメモリ64に書き込むように構成されている。
メモリ63はRAMから構成され、表面実装機100による部品実装時に、表面実装機100のコントローラ50から出力される制御信号などの一時データをRAMに格納することにより、CPU62の作業領域として機能する。
フラッシュメモリ64は、テープフィーダ60の制御プログラムを書き換え可能に格納する不揮発性メモリである。制御プログラムは、このフラッシュメモリ64からCPU62によって読み出され、テープフィーダ60の動作制御が行われる。また、図2および図3に示すように、制御プログラムの更新時には、中継装置71を介して各テープフィーダ60(60a、60bおよび60c)に送信された更新プログラム200(200a、200bおよび200c)が、CPU62によって書き込まれるように構成されている。
また、図4に示すように、第1実施形態では、各テープフィーダ60(60a、60bおよび60c)のフラッシュメモリ64には、共通プログラム201、202および個別プログラム203a、203bおよび203cの他に、初期化処理用のプログラムや、個々のテープフィーダ60に固有のデータなどが格納されている。この初期化処理用プログラムは、各テープフィーダ60(60a、60bおよび60c)に応じてそれぞれ異なる場合や、各テープフィーダ60の一部または全てに共通する場合があるが、第1実施形態では、テープフィーダ60の全てに共通する場合について説明する。図4に示した一例では、初期化処理用プログラムは、各テープフィーダ60(60a、60bおよび60c)のそれぞれのフラッシュメモリ64(64a、64bおよび64c)のアドレス0000番地から4000番地の格納領域に格納されている。この初期化処理用プログラムには、電源投入時に読み出され、制御プログラムへと処理を遷移させるためのプログラムや、更新プログラム200の更新処理のためのプログラムなどが格納されている。また、各フラッシュメモリ64(64a、64bおよび64c)のアドレス6000番地以降の格納領域には、図4に示したように、個々のテープフィーダ60の固有のフィーダIDや、テープ送りのためのモータに組み付けられたギア(図示せず)の偏心量などの補正、調整のためのデータ、テープフィーダ60のメンテナンス履歴のデータなどが格納されている。これらの初期化処理用プログラムと、個々のテープフィーダ60毎のデータなどは、制御プログラムの更新時に書き換えられることはない。一方、各テープフィーダ60の制御プログラム(更新プログラム200)は、フラッシュメモリ64の4000番地から6000番地までのアドレスに格納されるように構成されている。したがって、制御プログラムの更新時には、フラッシュメモリ64の4000番地から6000番地までのアドレスのデータが書き換えられることにより、更新プログラム200が格納されるように構成されている。なお、フラッシュメモリ64a、64bおよび64cは、それぞれ、本発明の「記憶部」の一例である。
第1実施形態では、各テープフィーダ60のフラッシュメモリ64には、共通プログラム201および202用の格納領域642と、個別プログラム用203(203a、203bおよび203c)の格納領域641とが区分けされ、対応するプログラムがそれぞれ格納されるように構成されている。具体的には、各フラッシュメモリ64(64a、64bおよび64c)の各々の4000番地〜4300番地までのアドレスは、個別プログラム203(203a、203bおよび203c)の格納領域641であり、それぞれ対応する個別プログラム203(203a、203bおよび203c)が格納されるように構成されている。したがって、フラッシュメモリ64aの格納領域641には、個別プログラム203aが格納されるように構成されている。同様に、フラッシュメモリ64bの格納領域641には、個別プログラム203bが格納され、フラッシュメモリ64cの格納領域641には、個別プログラム203cが格納されるように構成されている。このように、全てのテープフィーダ60のフラッシュメモリ64の格納領域641には、各々のテープフィーダ60の個別プログラム203が格納されるように構成されている。なお、格納領域642は、本発明の「第1格納領域」の一例である。また、格納領域641は、本発明の「第2格納領域」の一例である。
また、各フラッシュメモリ64(64a、64bおよび64c)の各々の4300番地〜6000番地までのアドレスは、共通プログラム201および202の格納領域642であり、フラッシュメモリ64a、64bおよび64cに共通の共通プログラム201と、フラッシュメモリ64aおよび64bに共通の共通プログラム202とが格納されるように構成されている。したがって、フラッシュメモリ64aの格納領域642には、共通プログラム201および202が格納されるように構成されている。同様に、フラッシュメモリ64bの格納領域642には、共通プログラム201および202が格納され、フラッシュメモリ64cの格納領域642には、共通プログラム201が格納されるように構成されている。このように、テープフィーダ60のフラッシュメモリ64の格納領域642には、各々のテープフィーダ60の共通プログラム201と、テープフィーダ60aおよび60bに共通する共通プログラム202とが格納されるように構成されている。また、共通プログラム201は、各テープフィーダ60のフラッシュメモリ64において、4300番地から4600番地までのアドレスに格納されるように構成されている。また、共通プログラム202は、テープフィーダ60aのフラッシュメモリ64aおよびテープフィーダ60bのフラッシュメモリ64bにおいて、4600番地から4900番地までのアドレスに格納されるように構成されている。このように、各テープフィーダ60のフラッシュメモリ64において、共通プログラム201および202が格納されるアドレスを共通にすることにより、共通プログラム201(202)が格納される全てのフラッシュメモリ64の同一のアドレスを指定して、同一のデータ(共通プログラム201、202)を送信することが可能である。
また、図1に示すように、テープフィーダ60を保持する台車70は、基台1のY1方向およびY2方向の両側に、それぞれ2台ずつ、合計4台配置されている。これら台車70は、それぞれ、複数のテープフィーダ60を保持可能に構成されているとともに、台車70が表面実装機100の基台1に接続された際に、台車70に保持されているテープフィーダ60を図示しないテープフィーダ装着部に容易に装着することが可能なように構成されている。また、各台車70には、中継装置71がそれぞれ内蔵されている。複数のテープフィーダ60が台車70にセットされると、図示しないコネクタを介して中継装置71と接続されることにより、各テープフィーダ60のフィーダ制御部61が中継装置71と電気的に接続されるように構成されている。
台車70の中継装置71は、台車70が基台1のテープフィーダ装着部に接続されることにより、図示しないコネクタを介して表面実装機100のコントローラ50と電気的に接続されるように構成されている。これにより、中継装置71は、表面実装機100のコントローラ50と、台車70にセットされた複数のテープフィーダ60の各々とを電気的に接続させるとともに、コントローラ50と各テープフィーダ60のフィーダ制御部61との間の制御信号およびデータの送受信を中継する機能を有する。この中継装置71は、CPU71aと、メモリ71bと、コントローラ50との通信用IC71cと、中継装置71に接続された各テープフィーダ60(60a〜60c)との通信用IC71d、71eおよび71fとから構成されている。このテープフィーダ60との通信用IC71d〜71fは、中継装置71に接続可能なテープフィーダ60の数だけ設けられることにより、個別に通信を行うことが可能なように構成されている。中継装置71に接続されたテープフィーダ60は、通信用IC71d〜71fに応じて番号が割り当てられるように構成されている。この番号を指定することにより、中継装置71に接続された1つまたは複数の任意のテープフィーダ60に対して選択的にデータが送信されるように構成されている。これにより、コントローラ50から送信された更新プログラム200は、中継装置71を介して更新対象のテープフィーダ60に選択的に送信可能に構成されている。
このため、表面実装機100のコントローラ50は、中継装置71を介することによって、表面実装機100にセットされた全てのテープフィーダ60a、60bおよび60cに共通プログラム201を並行して送信可能であるとともに、個別プログラム203aを更新対象のテープフィーダ60aのみに送信することが可能である。同様に、この中継装置71を介して、共通プログラム202がテープフィーダ60aおよび60bに選択的に送信され、個別プログラム203bと203cとが、それぞれテープフィーダ60bと60cとに選択的に送信されるように構成されている。一方、コントローラ50から1つの通信用IC71cを介して送信されたデータが、それぞれ通信用IC71d〜71fを介して各テープフィーダ60に送信されるため、各テープフィーダ60に1度に送信可能なデータは1種類のみに限られる。また、共通プログラム201を各テープフィーダ60に送信する際にも、テープフィーダ60aと60bと60cとに対して、同一のアドレスを指定して送信する必要がある。
また、更新プログラム200(200a、200bおよび200c)は、たとえば、図5に示すようなフォーマットのデータ形式でコントローラ50の記憶装置53に格納されている。このフォーマットのデータ形式は、16進数の2文字で1バイトのデータを表す。先頭のスタートマーク「S」に続く1〜9までの値によりレコードの種類を示し、「S0」タイプのレコードには、コメントなどが記載される。「S1」および「S2」タイプのレコードには、送信されるデータが含まれる。たとえば、「S1」タイプのレコードでは、1バイトのデータ長、2バイトのアドレス、16バイトのデータ、および、1バイトのチェックサム(誤り検出符号)からなる。データ長(13)は、アドレス、データおよびチェックサムまでのバイト数を示し、19バイト(アドレス2バイト+データ16バイト+チェックサム1バイト)であることが示される。アドレス(0000)には、後に続く16バイトのデータの先頭部分のアドレスが記載される。16バイトのデータには、テープフィーダ60のフラッシュメモリ64に書き込まれるデータが格納されている。そして、後端のチェックサムは、データ長からデータの後端までの値を加算した結果の1の補数であり、伝送エラーの確認に用いられる。また、「S2」タイプのレコードは、アドレスが3バイトで示されている点以外はS1タイプと同様である。この結果、データ長(14)は、1バイト分大きい。図6に示すように、更新プログラム200は、16バイトのデータを格納したレコード列から構成されている。なお、図6には、更新プログラム200の一部のみを示している。
表面実装機100のコントローラ50からの更新プログラム200の送信時には、128バイトのデータをプログラム単位として送信されるように構成されている。つまり、図6に示す文字列の8行分(16バイト×8行=128バイト)を単位として送信される。この128バイトのデータは、フィーダ制御部61のフラッシュメモリ64への書き込み単位でもある。128バイトのデータがフィーダ制御部61により受信されると、CPU62により、フラッシュメモリ64の指定されたアドレスに128バイト単位で書き込みが行われる。CPU62による書き込みの終了後、次の128バイトのデータがコントローラ50から送信される。この128バイト単位のデータ送信と書き込みとが繰り返されることにより、更新プログラム200がフラッシュメモリ64の所定の格納領域641または642に書き込まれるように構成されている。したがって、コントローラ50が各テープフィーダ60に対して1度に送信可能なデータ量の大きさが、128バイトのプログラム単位となるように構成されている。なお、更新プログラム200を構成する共通プログラム201および202のデータと個別プログラム203のデータとは、この128バイトのプログラム単位の複数の集合から構成されている。
なお、中継装置71を介して各テープフィーダ60に宛てて更新プログラム200が送信される際には、中継装置71に宛てた送信先のテープフィーダ60の情報と、送信されるプログラムのデータ長、テープフィーダ60のフラッシュメモリ64への書込アドレスおよび128バイトのプログラム単位データを含む更新プログラム送信用のフォーマットに変換され、複数の伝文として送信されるように構成されている。
次に、図7を参照して、第1実施形態による表面実装機100のテープフィーダ60の制御プログラム更新時の処理を説明する。
まず、図7のステップS1において、表面実装機100のコントローラ50から、表面実装機100に接続された各テープフィーダ60に対して、中継装置71に接続されることにより割り振られるテープフィーダ60の番号と、各テープフィーダ60のフラッシュメモリ64に格納されている制御プログラムのバージョン情報とを問い合わせるための信号が出力される。この信号は、まず、中継装置71により受信される。
ステップS11において、問い合わせ信号を受信した中継装置71により、接続された各テープフィーダ60に対して、受信された信号が転送される。一方、問い合わせ信号を受信したテープフィーダ60により、ステップS21において、フラッシュメモリ64から現在の制御プログラムのバージョン情報が読み込まれ、取得したバージョン情報とフィーダ番号とが中継装置71により送信される。
各テープフィーダ60からバージョン情報と各テープフィーダ60の番号とが中継装置71により受信されると、ステップS12において、中継装置71により、これらの各テープフィーダ60から受信したそれぞれのバージョン情報とテープフィーダ60の番号とが、表面実装機100のコントローラ50に送信される。これにより、コントローラ50のCPU51により、各テープフィーダ60の各々の制御プログラムのバージョン情報が取得される。
コントローラ50のCPU51により各テープフィーダ60の制御プログラムのバージョン情報が取得されると、ステップS2において、各々のテープフィーダ60について、制御プログラムの更新が必要か否かが判断される。具体的には、CPU51により記憶装置53から各更新プログラム200a、200bおよび200cのバージョン情報が読み出されるとともに、各テープフィーダ60から取得された現在の制御プログラムのバージョン情報と比較される。なお、この際、各テープフィーダ60(60a、60bおよび60c)に格納されている制御プログラムに対応する更新プログラム200の種類(更新プログラム200a、200bおよび200c)も特定される。記憶装置53に格納された更新プログラム200a、200bおよび200cのバージョンが、各テープフィーダ60(60a、60bおよび60c)の現在の制御プログラムのバージョンよりも新しい場合には、制御プログラムの更新が必要と判断されステップS3に移行して、制御プログラムの更新処理が行われる。一方、記憶装置53に格納された更新プログラム200a、200bおよび200cのバージョンが、現在の制御プログラムのバージョンと一致するか、古い場合には、最新のバージョンの制御プログラムがテープフィーダ60に適用されていると判断され、更新を行うことなく終了される。なお、ステップS2における更新が必要か否かの判断は、表面実装機100に取り付けられたテープフィーダ60毎に行われる。
そして、ステップS3、ステップS13およびステップS22において、制御プログラムの更新が必要と判断されたテープフィーダ60とコントローラ50とにより、中継装置71を介して制御プログラムの更新処理が行われる。更新処理では、コントローラ50から更新対象のテープフィーダ60に宛てて更新プログラム200(200a、200bおよび200c)のデータが128バイトのプログラム単位毎に送信される。これに応じて、ステップS13では、中継装置71により、送信された更新プログラム200(200a、200bおよび200c)のデータの宛て先が読み取られるとともに、それぞれの更新対象のテープフィーダ60(60a、60bおよび60c)に対してデータが転送される。そして、更新プログラム200(200a、200bおよび200c)のデータが各テープフィーダ60(60a、60bおよび60c)により受信されると、ステップS22において、取得されたプログラム単位の書込アドレスの情報に従って、フィーダ制御部61のCPU62により、フラッシュメモリ64へ更新プログラム200のプログラム単位を書き込む制御プログラム更新処理が行われる。なお、この制御プログラムの更新処理については、後述する。
そして、ステップS3、S13およびS22の制御プログラム更新処理によって更新対象のテープフィーダ60の全てについて制御プログラムが更新プログラム200に更新されることにより、表面実装機100による各テープフィーダ60の制御プログラムの更新が終了する。
次に、図4、図7および図8を参照して、第1実施形態による表面実装機100のテープフィーダ60の制御プログラム更新処理を説明する。
制御プログラム更新処理は、図7のステップS3およびS22において行われる処理である。ここでは、テープフィーダ60a、60bおよび60cのそれぞれに対して、更新プログラム200a、200bおよび200cの更新を行う場合について説明する。なお、図7において説明したように、表面実装機100のコントローラ50から各テープフィーダ60へのデータの送受信は、中継装置71を介して行われるが、以下では、説明の便宜のため、中継装置71に関する説明は原則として省略する。
まず、図8に示すように、ステップS31において、表面実装機100のコントローラ50により、更新対象のテープフィーダ60a、60bおよび60cの各々に対して、制御プログラムの更新処理の開始通知が出力される。各テープフィーダ60a、60bおよび60cの各々のフィーダ制御部61a、61bおよび61cでは、CPU62(62a、62bおよび62c)により、フラッシュメモリ64(64a、64bおよび64c)に格納された初期化処理用プログラム(0000番地から4000番地)から、制御プログラムの更新処理のためのプログラムが読み出され、フラッシュメモリ64(64a、64bおよび64c)の格納領域641および642を書き換え可能な制御プログラム更新用のモードへと遷移する。
ステップS51、S61およびS71では、ステップS31におけるコントローラ50からの更新処理開始通知に基づき、更新対象のテープフィーダ60(60a、60bおよび60c)により更新準備完了通知がコントローラ50に送信される。
一方、ステップS32において、コントローラ50により、更新対象の各テープフィーダ60(60a、60bおよび60c)から更新準備完了通知を受信したか否かが判断される。更新準備完了通知がコントローラ50により受信されたと判断された場合には、ステップS33に進む。更新対象のテープフィーダ60(60a、60bおよび60c)からの更新準備完了通知が受信されない場合には、ステップS32の判断を繰り返し、更新対象(データ送信対象)のテープフィーダ60(60a、60bおよび60c)の更新準備が完了するまで待機する。
その後、ステップS33において、コントローラ50により、記憶装置53に格納された各更新プログラム200a、200bおよび200cが読み出され、共通プログラム201(共通プログラム1)のデータ送信が行われる。この共通プログラム201は、図4に示すように、テープフィーダ60a、60bおよび60cの全てに共通するため、テープフィーダ60a、60bおよび60cのそれぞれに並行して送信される。この際、共通プログラム201のデータは、更新プログラム送信用のフォーマットに従い分割および整形され、複数の伝文として送信される。なお、分割される単位は、各テープフィーダ60(60a、60bおよび60c)のフラッシュメモリ64(64a、64bおよび64c)の書き込み単位(128バイトのプログラム単位)に一致する。プログラム単位毎に分割され、伝文として送信された共通プログラム201のデータは、ステップS52、S62およびS72のそれぞれにおける書込処理によって、各テープフィーダ60a、60bおよび60cのフラッシュメモリ64a、64bおよび64cの各々の4300番地から4600番地までのアドレスに順次書き込まれる。そして、1つの伝文(プログラム単位)として受け取った共通プログラム201のデータの書込処理が終了すると、各テープフィーダ60a、60bおよび60cの各々から、書き込み終了がコントローラ50に中継装置71を介して通知される。
ステップS34では、更新対象のテープフィーダ60a、60bおよび60cの各々に対し、共通プログラム201の全体の書き込みが終了したか否かが判断される。ステップS52、S62およびS72のそれぞれにおける書込処理の終了に伴い、分割された伝文(プログラム単位)に対する書き込み終了の通知が更新対象の各テープフィーダ60a、60bおよび60cから送信された場合には、コントローラ50によりこれらの通知が受信される。そして、コントローラ50は、分割した共通プログラム201の転送が全て終了したか否かを判断し、共通プログラム201の転送が全て終了したと判断した場合には、ステップS35へ進む。一方、分割した共通プログラム201のうち、未転送のデータが存在する場合には、ステップS33に戻り、更新対象の各テープフィーダ60(60a、60bおよび60c)に対して、次のデータ送信が行われる。
ステップS35では、コントローラ50により、共通プログラム202(共通プログラム2)のデータ送信が行われる。この共通プログラム202は、テープフィーダ60aおよび60bに共通するため、テープフィーダ60aおよび60bに並行して送信される。プログラム単位毎に分割され、伝文として送信された共通プログラム202のデータは、ステップS53およびS63における書込処理によって、テープフィーダ60aおよび60bのフラッシュメモリ64aおよび64bの各々の4600番地から4900番地までのアドレスに順次書き込まれる。そして、1つの伝文(プログラム単位)として受け取った共通プログラム202のデータの書込処理が終了すると、各テープフィーダ60aおよび60bから、コントローラ50に中継装置71を介して書き込み終了が通知される。
ステップS36では、更新対象のテープフィーダ60aおよび60bに対し、共通プログラム202の全体の書き込みが終了したか否かが判断される。ステップS53およびS63における書込処理の終了に伴い、分割された伝文(プログラム単位)に対する書き込み終了の通知が更新対象の各テープフィーダ60aおよび60bから送信された場合には、コントローラ50によりこれらの通知が受信される。そして、コントローラ50は、分割した共通プログラム202の転送が全て終了したか否かを判断し、共通プログラム202の転送が全て終了したと判断した場合には、ステップS37へ進む。一方、分割した共通プログラム202のうち、未転送のデータが存在する場合には、ステップS35に戻り、更新対象の各テープフィーダ60aおよび60bに対して、次のデータ送信が行われる。
ステップS37では、コントローラ50により、個別プログラム203a(個別プログラムA)のデータ送信が行われる。この個別プログラム203aは、更新プログラム200aの更新対象であるテープフィーダ60aに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム203aのデータは、ステップS54における書込処理によって、テープフィーダ60aのフラッシュメモリ64aの4000番地から4300番地までのアドレスに順次書き込まれる。そして、1つの伝文(プログラム単位)として受け取った個別プログラム203aのデータの書込処理が終了すると、各テープフィーダ60aから、コントローラ50に中継装置71を介して書き込み終了が通知される。
ステップS38では、更新対象のテープフィーダ60aに対し、個別プログラム203aの全体の書き込みが終了したか否かが判断される。ステップS54における書込処理の終了に伴い、分割された伝文(プログラム単位)に対する書き込み終了の通知が更新対象のテープフィーダ60aから送信された場合には、コントローラ50によりこれらの通知が受信される。そして、コントローラ50は、分割した個別プログラム203aの転送が全て終了したか否かを判断し、個別プログラム203aの転送が全て終了したと判断した場合には、ステップS39へ進む。一方、分割した個別プログラム203aのうち、未転送のデータが存在する場合には、ステップS37に戻り、更新対象のテープフィーダ60aに対して、次のデータ送信が行われる。なお、この個別プログラム203aの書き込みの終了により、テープフィーダ60a(フラッシュメモリ64a)への更新プログラム200aの書き込みが完了する。
ステップS39では、コントローラ50により、個別プログラム203b(個別プログラムB)のデータ送信が行われる。この個別プログラム203bは、更新プログラム200bの更新対象であるテープフィーダ60bに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム203bのデータは、ステップS64における書込処理によって、テープフィーダ60bのフラッシュメモリ64bの4000番地から4300番地までのアドレスに順次書き込まれる。そして、1つの伝文(プログラム単位)として受け取った個別プログラム203bのデータの書込処理が終了すると、テープフィーダ60bから、コントローラ50に中継装置71を介して書き込み終了が通知される。
ステップS40では、更新対象のテープフィーダ60bに対し、個別プログラム203bの全体の書き込みが終了したか否かが判断される。ステップS64における書込処理の終了に伴い、分割された伝文(プログラム単位)に対する書き込み終了の通知が更新対象のテープフィーダ60bから送信された場合には、コントローラ50によりこれらの通知が受信される。そして、コントローラ50は、分割した個別プログラム203bの転送が全て終了したか否かを判断し、個別プログラム203bの転送が全て終了したと判断した場合には、ステップS41へ進む。一方、分割した個別プログラム203bのうち、未転送のデータが存在する場合には、ステップS39に戻り、更新対象のテープフィーダ60bに対して、次のデータ送信が行われる。なお、この個別プログラム203bの書き込みの終了により、テープフィーダ60b(フラッシュメモリ64b)への更新プログラム200bの書き込みが完了する。
ステップS41では、コントローラ50により、個別プログラム203c(個別プログラムC)のデータ送信が行われる。この個別プログラム203cは、更新プログラム200cの更新対象であるテープフィーダ60cに送信される。プログラム単位毎に分割され、伝文として送信された個別プログラム203cのデータは、ステップS73における書込処理によって、テープフィーダ60cのフラッシュメモリ64cの4000番地から4300番地までのアドレスに順次書き込まれる。そして、1つの伝文(プログラム単位)として受け取った個別プログラム203cのデータの書込処理が終了すると、各テープフィーダ60cから、コントローラ50に中継装置71を介して書き込み終了が通知される。
ステップS42では、更新対象のテープフィーダ60cに対し、個別プログラム203cの全体の書き込みが終了したか否かが判断される。ステップS73における書込処理の終了に伴い、分割された伝文(プログラム単位)に対する書き込み終了の通知が更新対象のテープフィーダ60cから送信された場合には、コントローラ50によりこれらの通知が受信される。そして、コントローラ50は、分割した個別プログラム203cの転送が全て終了したか否かを判断し、個別プログラム203cの転送が全て終了したと判断した場合には、ステップS43へ進む。一方、分割した個別プログラム203cのうち、未転送のデータが存在する場合には、ステップS41に戻り、更新対象のテープフィーダ60cに対して、次のデータ送信が行われる。なお、この個別プログラム203cの書き込みの終了により、テープフィーダ60c(フラッシュメモリ64c)への更新プログラム200cの書き込みが完了する。
ステップS42において、コントローラ50により個別プログラム203cの書き込みが終了したと判断されると、全ての更新プログラム200(200a、200bおよび200c)の更新が終了する。これにより、ステップS43において、コントローラ50により、更新対象の各テープフィーダ60(60a、60bおよび60c)に対して、制御プログラムの更新処理の終了通知が出力される。
ステップS43における更新処理の終了通知が各テープフィーダ60a、60bおよび60cにより受信されると、ステップS55、S65およびS74において、各々のフィーダ制御部61a、61bおよび61cにより、それぞれ更新終了処理が行われる。CPU62(62a、62bおよび62c)により、フラッシュメモリ64(64a、64bおよび64c)に格納された初期化処理用プログラム(0000番地から4000番地)から、更新された制御プログラムへ遷移するためのプログラムが読み出され、更新された制御プログラムに基づいた各テープフィーダ60(60a、60bおよび60c)の制御を行う。これにより、更新された制御プログラムによる表面実装機100への部品供給動作を行うことが可能となる。
次に、図8および図9を参照して、第1実施形態による表面実装機100のテープフィーダ60への制御プログラムデータのデータ送信処理およびテープフィーダ60によるデータの書込処理を説明する。
図9の制御プログラムデータのデータ送信処理は、図8のステップS33、S35、S37、S39およびS41において行われる処理である。それぞれのデータ送信処理は、送信される更新プログラム200(200a、200bおよび200c)のデータの内容(共通プログラム201、202または個別プログラム203)と、データの送信先(テープフィーダ60a、60bおよび60c)とが異なるが、原則として共通の処理である。
また、図9のデータの書込処理は、図8のステップS52〜S54、S62〜S64、S72およびS73において行われる処理である。また、ステップS52〜S54は、テープフィーダ60aによる書込処理であり、ステップS62〜S64は、テープフィーダ60bによる書込処理であり、ステップS72およびS73は、テープフィーダ60cによる書込処理である。これらの書込処理も、上記データ送信処理と同様に、書き込まれるデータの内容(共通プログラム201、202または個別プログラム203)と、書込処理を実行するテープフィーダ60(60a、60bおよび60c)とが異なるが、原則として同一の処理が行われる。
データ送信処理と書込処理とは、表面実装機100のコントローラ50による128バイトのプログラム単位のデータ送信と、データを受信したテープフィーダ60(60a、60bおよび60c)によるデータ書込および書き込み終了通知の送信との繰り返しにより行われる相互的な処理である。以下では、このデータ送信処理と書込処理とを並行して説明する。
図9に示すように、ステップS81では、更新対象のテープフィーダ60(60a、60bおよび60c)に対して、中継装置71に宛てた送信先のテープフィーダ60(60a、60bおよび60c)の情報と、送信されるプログラムのデータ長、テープフィーダ60のフラッシュメモリ64への書込アドレスおよび128バイトのプログラム単位データが送信される。これにより、更新対象(データ送信対象)のテープフィーダ60(60a、60bおよび60c)に更新プログラム200の一部が送信される。この際、たとえば、図8のステップS33におけるデータ送信処理の場合には、共通プログラム201のプログラム単位データがテープフィーダ60a、60bおよび60cのそれぞれに並行して送信される。また、たとえば、図8のステップS37におけるデータ送信処理の場合には、個別プログラム203aのプログラム単位データがテープフィーダ60aに送信される。
コントローラ50から更新プログラム200のプログラム単位データが送信されると、ステップS91において、テープフィーダ60のCPU62により、フラッシュメモリ64の指定されたアドレスに128バイトのプログラム単位のデータ書き込みが行われる。データの書き込みは、送信されたプログラムのデータ長、テープフィーダ60のフラッシュメモリ64への書込アドレスおよび128バイトのプログラム単位データに基づいて行われる。これにより、共通プログラム201のプログラム単位データは、フラッシュメモリ64の格納領域642(4300番地〜4600番地)に格納される。
128バイトのプログラム単位のデータ書き込みが終了すると、ステップS92において、書き込みが終了したテープフィーダ60(60a、60bおよび60c)から、コントローラ50に書き込み終了通知が送信される。
一方、表面実装機100では、ステップS81におけるデータ送信後、ステップS82において、コントローラ50により、データ送信を行ったテープフィーダ60(60a、60bおよび60c)からの書き込み終了通知が受信されたか否かが判断される。ステップS92におけるテープフィーダ60からの書き込み終了通知が受信された場合には、ステップS83に進む。一方、書き込み終了通知が受信されない場合には、ステップS82の判断を繰り返し、テープフィーダ60からの書き込み終了通知を待ち受ける。
ステップS83では、コントローラ50により、全てのデータ送信が完了したか否かが判断される。具体的には、たとえば、図8のステップS33におけるデータ送信処理の場合には、共通プログラム201を構成する全てのプログラム単位データがテープフィーダ60a、60bおよび60cのそれぞれに送信されたか否かが判断される。全データの送信が完了していない場合には、ステップS81へ戻り、次のプログラム単位のデータが送信され、テープフィーダ60により、再度書き込みが行われる。また、テープフィーダ60からの最終のプログラム単位の書き込み終了通知を受信した場合には、全データの送信が完了したと判断され、図8の処理へと戻る。なお、図8のステップS34、S36、S38、S40およびS42における各プログラムの送信が終了したか否かの判断は、図9のステップS92における、最終のプログラム単位のデータの書き込み終了通知に基づくものである。
以上により、表面実装機100のコントローラ50による、プログラム単位毎のデータ送信処理と、テープフィーダ60による書込処理とが行われる。
次に、図10を参照して、共通プログラムを個別に送信する比較例との対比で第1実施形態の更新プログラムの送信時間について説明する。
比較例では、各更新プログラム200a、200bおよび200cが、共通プログラム201および202を含んでいても、更新プログラム200(200a、200bおよび200c)毎にテープフィーダ60に送信する。このため、実際には、共通プログラム201を各更新プログラム200(200a、200bおよび200c)の送信の際に合計3回送信し、共通プログラム202を更新プログラム200aおよび200bの送信の際に合計2回送信していることになる。
これに対し、第1実施形態では、共通プログラム201を、1回分の送信時間で、テープフィーダ60a、60bおよび60cのそれぞれに並行して送信し、共通プログラム202を1回分の送信時間で、テープフィーダ60aおよび60bに並行して送信することができる。これにより、第1実施形態では、比較例に対して、共通プログラム201の2回分の送信時間、および、共通プログラム202の1回分の送信時間が短縮されている。このように、第1実施形態では、各更新プログラム200(200a、200bおよび200c)の少なくとも一部に共通する共通プログラム201および202を、更新対象のテープフィーダ60(60a、60bおよび60c)に並行して送信することにより、共通プログラム201および202を並行して送信した分(図10の短縮時間)だけデータ送信に要する時間を短縮することが可能である。
第1実施形態では、上記のように、表面実装機100を、更新プログラム200(200a、200bおよび200c)の共通プログラム201および202を、複数のテープフィーダ60(60a、60bおよび60c)に並行して送信可能に構成することによって、複数のテープフィーダ60(60a、60bおよび60c)の制御プログラムがそれぞれ異なる場合にも、互いに一致する共通プログラム201および202を各テープフィーダ60(60a、60bおよび60c)に並行して送信することができる。これにより、共通プログラム201および202を含めた更新プログラム200の全部を各テープフィーダ60(60a、60bおよび60c)に個別に送信する場合と比較して、複数のテープフィーダ60(60a、60bおよび60c)に並行して送信できる分だけデータ転送に要する時間を短くすることができる。その結果、制御プログラムの更新に要する時間を短くすることができる。
また、第1実施形態では、テープフィーダ60(60a、60bおよび60c)の各々のフラッシュメモリ64(64a、64bおよび64c)において、共通プログラム201および202のデータは、格納領域642に格納され、個別プログラム203のデータは、格納領域642とは異なる格納領域641に格納されるように構成することによって、各テープフィーダ60(60a、60bおよび60c)の個々の更新プログラム200(200a、200bおよび200c)において、それぞれのテープフィーダ60(60a、60bおよび60c)の個別プログラム203(203a、203bおよび203c)が互いに異なる場合にも、予め共通プログラム201および202のデータと個別プログラム203(203a、203bおよび203c)のデータとをそれぞれ格納領域642と格納領域641とに格納されるようにしておくことにより、各テープフィーダ60(60a、60bおよび60c)に同一の共通プログラム201および202のデータのみを抽出して各々のテープフィーダ60(60a、60bおよび60c)に格納領域642を指定して送信することができる。これにより、容易に、共通プログラム201(202)を個別プログラム203(203a、203bおよび203c)とは別個に各々のテープフィーダ60(60a、60bおよび60c)に並行して送信することができる。
また、第1実施形態では、テープフィーダ60(60a、60bおよび60c)の各々のフラッシュメモリ64(64a、64bおよび64c)の格納領域642を、共通プログラム201のデータを同一のアドレス(4300番地〜4600番地)に格納し、共通プログラム202のデータを、同一のアドレス(4600番地〜4900番地)に格納するように構成することによって、各テープフィーダ60(60a、60bおよび60c)に共通プログラム201および202のデータを送信する際に、予め同一のアドレスを指定して送信することができる。これにより、構成の異なる制御プログラムがそれぞれフラッシュメモリ64(64a、64bおよび64c)に格納されるテープフィーダ60(60a、60bおよび60c)に対しても、容易に、共通プログラム201および202を並行して送信することができる。
また、第1実施形態では、中継装置71を、複数のテープフィーダ60(60a、60bおよび60c)のうちの一部の、共通プログラム202を含む更新プログラム200(200aおよび200b)が格納されるテープフィーダ60(60aおよび60b)に対して共通プログラム202を選択的に送信可能に構成することによって、複数のテープフィーダ60(60a、60bおよび60c)の各々のフラッシュメモリ64(64a、64bおよび64c)に格納される各更新プログラム200(200a、200bおよび200c)のうちの一部の更新プログラム200(200aおよび200b)にのみ、共通プログラム202が存在する場合にも、該当する複数のテープフィーダ60(60aおよび60b)に選択的に、共通プログラム202を並行して送信することができる。
また、第1実施形態では、共通プログラム201および202を、複数のプログラム単位から構成するとともに、プログラム単位のデータの大きさを、個々のテープフィーダ60(60a、60bおよび60c)に対して1度に送信可能な単位データ量の大きさ(128バイト)となるように構成することによって、各テープフィーダ60(60a、60bおよび60c)への更新プログラム200のデータが単位データ量(128バイト)毎に送信される場合において、共通プログラム201(202)を構成するプログラム単位の数だけ、各テープフィーダ60(60a、60bおよび60c)に並行して送信することにより共通プログラム201(202)のデータを送信することができる。すなわち、共通プログラム201(202)を構成するプログラム単位のデータの大きさを、送信可能な単位データ量の大きさ(128バイト)とすることによって、共通プログラム201(202)のデータの全てを、個別プログラム203(203a、203bおよび203c)とは別個に各テープフィーダ60(60a、60bおよび60c)に並行して送信することができる。
(第2実施形態)
次に、図6および図11を参照して、本発明の第2実施形態による表面実装機について説明する。この第2実施形態では、各テープフィーダ60のフラッシュメモリ64において、共通プログラム201および202を格納領域642のそれぞれ同一のアドレスに格納するように構成した上記第1実施形態と異なり、表面実装機100のコントローラ50により各更新プログラム300から共通プログラム301(302)を判別するとともに、各更新プログラム300における共通プログラム301(302)のアドレスのずれ量(オフセット量)を指定するように構成した例について説明する。なお、共通プログラム301および302は、それぞれ、本発明の「共通プログラム部分」の一例である。
第2実施形態では、図11に示すように、各テープフィーダ60(60a、60bおよび60c)の更新プログラム300(300a、300bおよび300c)がそれぞれ異なる構成を有している。具体的には、各更新プログラム300において、個別プログラム303a、303bおよび303cのデータの大きさがそれぞれ異なる。すなわち、テープフィーダ60aのフラッシュメモリ64aにおいて、個別プログラム303aが4000番地〜4300番地、共通プログラム301が4300番地から4600番地、共通プログラム302が4600番地〜4900番地のアドレスに格納されるように構成されている。フラッシュメモリ64aの4000番地〜4300番地までのアドレスは、個別プログラム303aの格納領域643aであり、フラッシュメモリ64aの4300番地〜6000番地までは、共通プログラム301および302の格納領域644aである。なお、個別プログラム303a、303bおよび303cは、それぞれ、本発明の「個別プログラム部分」の一例である。また、格納領域643aおよび644aは、それぞれ、本発明の「第2格納領域」および「第1格納領域」の一例である。
また、テープフィーダ60bのフラッシュメモリ64bにおいて、個別プログラム303bが4000番地〜5000番地、共通プログラム301が5000番地〜5300番地、共通プログラム302が5300番地〜5600番地のアドレスに格納されるように構成されている。フラッシュメモリ64bの4000番地〜5000番地までのアドレスは、個別プログラム303bの格納領域643bであり、フラッシュメモリ64bの5000番地〜6000番地までは、共通プログラム301および302の格納領域644bである。なお、格納領域643bおよび644bは、それぞれ、本発明の「第2格納領域」および「第1格納領域」の一例である。
また、テープフィーダ60cのフラッシュメモリ64cにおいて、個別プログラム303cが4000番地〜5500番地、共通プログラム301が5500番地〜5800番地のアドレスに格納されるように構成されている。フラッシュメモリ64cの4000番地〜5500番地までのアドレスは、個別プログラム303cの格納領域643cであり、フラッシュメモリ64cの5500番地〜6000番地までは、共通プログラム301の格納領域644cである。なお、格納領域643cおよび644cは、それぞれ、本発明の「第2格納領域」および「第1格納領域」の一例である。
このように、第2実施形態では、各更新プログラム300(300a、300bおよび300c)の個別プログラム303(303a、303bおよび303c)のデータの大きさがそれぞれ異なるため、各共通プログラム301および302について、各フラッシュメモリ64(64a、64bおよび64c)における一致したアドレスを指定して格納することができない。このため、第2実施形態では、各共通プログラム301および302を、予め関連付けられた、それぞれ異なるアドレスに格納するように構成されている。なお、共通プログラム301および302は、各更新プログラム300において同一の内容および大きさを有する。なお、個別プログラム303は、本発明の「個別プログラム部分」の一例である。
具体的には、各共通プログラム301(302)のデータは、テープフィーダ60a(テープフィーダA)のフラッシュメモリ64aにおけるアドレスを基準として、テープフィーダ60b(テープフィーダB)およびテープフィーダ60c(テープフィーダC)の各々に応じたアドレスのずれ量(オフセット量)を予め指定して格納されるように構成されている。すなわち、テープフィーダ60bについては、共通プログラム301は、テープフィーダ60aにおけるアドレス4300番地に対して、700番地ずれた5000番地に格納される。同様に、共通プログラム302も、テープフィーダ60aにおけるアドレス4600番地に対して、700番地ずれた5300番地に格納される。このアドレスのずれ量(オフセット量)700番地を、予め指定しておくことにより、テープフィーダ60aを基準とした、4300番地(4600番地)のアドレスに書き込むように指定された共通プログラム301(302)が送信された場合に、テープフィーダ60bでは、オフセット量700番地を加えたアドレスに書き込むように構成されている。
同様に、テープフィーダ60cについては、共通プログラム301が、テープフィーダ60aにおけるアドレス4300番地に対して、1200番地ずれた5500番地に格納される。このアドレスのずれ量(オフセット量)1200番地を、予め指定しておくことにより、テープフィーダ60aを基準とした、4300番地のアドレスに書き込むように指定された共通プログラム301が送信された場合に、テープフィーダ60cでは、オフセット量1200番地を加えたアドレスに書き込むように構成されている。これにより、同一アドレス(4300番地)を指定した共通プログラム301のデータを各テープフィーダ60(60a、60bおよび60c)に対して並行して送信した場合にも、各テープフィーダ60(60a、60bおよび60c)において関連付けられた異なるアドレスに共通プログラム301が格納されるように構成されている。
また、第2実施形態では、これらの各更新プログラム300(300a、300bおよび300c)における共通プログラム301(302)の判別が、表面実装機100のコントローラ50(CPU51)により行われるように構成されている。コントローラ50は、各更新プログラム300(300a、300bおよび300c)の各々のデータ(図6参照)をプログラム単位毎に照合し、16バイト×8行=128バイトのデータが一致する部分を特定し、指定されたアドレスを取得するように構成されている。これによりコントローラ50(CPU51)は、各更新プログラム300(300a、300bおよび300c)において共通する共通プログラム301(302)を特定するとともに、テープフィーダ60a(テープフィーダA)のフラッシュメモリ64aにおけるアドレスを基準としたオフセット量を、更新プログラム300毎に生成するように構成されている。
なお、この他の構成は第1実施形態と同様であるので、説明を省略する。
次に、図6および図12を参照して、第2実施形態による表面実装機100のコントローラ50による、共通プログラム301(302)の判別処理を説明する。
共通プログラム301(302)の判別処理は、各テープフィーダ60(60a、60bおよび60c)の制御プログラムの更新処理を行う前段階として行うことにより、各更新プログラム300(300a、300bおよび300c)における共通プログラム301(302)を判別するとともに、オフセット量データを生成する処理である。
まず、ステップS101において、コントローラ50のCPU51により、記憶装置53から各更新プログラム300(300a、300bおよび300c)のデータが読み出されるとともに、メモリ52に展開される。図6に示すように、各更新プログラム300(300a、300bおよび300c)は、図5に示す所定のフォーマットで格納されており、これらがコントローラ50のメモリ52上に全て展開される。
次に、ステップS102において、CPU51により、メモリ52に展開された各更新プログラム300(300a、300bおよび300c)のデータが128バイトのプログラム単位毎に照合され、各更新プログラム300(300a、300bおよび300c)に含まれる、共通プログラム301(302)が特定される。すなわち、図6に示すプログラムの文字列中、1行16バイトのデータが8行単位で照合され、各更新プログラム300(300a、300bおよび300c)における、128バイトの文字列(プログラム単位)が完全に一致する部分が特定される。これにより、全更新プログラム300(300a、300bおよび300c)に共通する共通プログラム301と、更新プログラム300aおよび300bに共通する共通プログラム302が判別される。また、このとき、各共通プログラム301(302)について指定されたアドレスも特定される。
そして、ステップS103において、コントローラ50のCPU51により、特定された共通プログラム301(302)の各更新プログラム300(300a、300bおよび300c)におけるアドレス(格納領域644aのアドレス)に基づいて、更新プログラム300a(更新プログラムA)に対する更新プログラム300b(更新プログラムB)および更新プログラム300c(更新プログラムC)のそれぞれの格納領域644bおよび644cのオフセット量が生成される。
以上により、各更新プログラム300(300a、300bおよび300c)に共通する共通プログラム301(302)の判別が行われるとともに、各共通プログラム301(302)の更新プログラム300aに対するオフセット量が、各更新プログラム300bおよび300cについて生成される。
次に、図12および図13を参照して、本発明の第2実施形態による表面実装機100のテープフィーダ60への制御プログラムデータのデータ送信処理およびテープフィーダ60によるデータの書込処理を説明する。
第2実施形態によるデータ送信処理と書込処理とは後述するステップS111およびステップS121の処理が異なる以外は上記第1実施形態と同様である。以下では、第1実施形態と重複する部分には同一の符号を付す。
第2実施形態のデータ送信処理および書込処理では、まず、ステップS111において、図12に示した共通プログラム判別処理により生成されたオフセット量データが、更新プログラム300bおよび300cに応じて、更新対象のテープフィーダ60bおよび60cにそれぞれ個別に送信される。この際、中継装置71に接続されたテープフィーダ60の番号と、制御プログラムのバージョン情報とに基づいて更新プログラム300b(更新プログラムB)が格納されるテープフィーダ60bと、更新プログラム300c(更新プログラムC)が格納されるテープフィーダ60cとが特定され、オフセット量データがそれぞれ送信される。また、オフセット量データは、更新プログラム300b(更新プログラムB)が格納されるテープフィーダ60bに対しては、テープフィーダ60aにおける格納領域644aのアドレス4300番地に対して、700番地ずれたアドレス(格納領域644bのアドレス)に書き込むように指定される。同様に、オフセット量データは、更新プログラム300c(更新プログラムC)が格納されるテープフィーダ60cに対しては、テープフィーダ60aにおける格納領域644aのアドレス4300番地に対して、1200番地ずれたアドレス(格納領域644cのアドレス)に書き込むように指定される。なお、このオフセット量データの送信は、共通プログラム301のデータ送信時にテープフィーダ60bおよび60cに対して個別に行われ、共通プログラム302のデータ送信時には、テープフィーダ60bに対して行われる。また、これ以外の個別プログラム303(303a、303bおよび303c)のデータ送信時には、オフセット量データは送信されない。
その後、ステップS81において、更新対象のテープフィーダ60(60a、60bおよび60c)に対して、送信されるプログラムのデータ長、テープフィーダ60のフラッシュメモリ64への書込アドレスおよび128バイトのプログラム単位データが送信される。この際、共通プログラム301のデータ送信時には、更新プログラム300a(テープフィーダ60a)における書込アドレス(4300番地)が指定される。また、共通プログラム302のデータ送信時には、更新プログラム300a(テープフィーダ60a)における書込アドレス(4600番地)が指定される。つまり、第1実施形態と同様のデータ送信処理が行われる。
コントローラ50から更新プログラム300のプログラム単位データが送信されると、ステップS121において、テープフィーダ60(60a、60bおよび60c)のCPU62(62a、62bおよび62c)により、フラッシュメモリ64(64a、64bおよび64c)の指定されたアドレスに128バイトのプログラム単位のデータ書き込みが行われる。共通プログラム301のプログラム単位データは、テープフィーダ60aについては、フラッシュメモリ64aの4300番地のアドレスに格納される。テープフィーダ60bの場合には、共通プログラム301のプログラム単位データ書込の際、指定された4300番地のアドレスに、ステップS111において送信されたオフセット量データ(700番地)を加えることにより、5000番地に書込が行われる。また、共通プログラム302のプログラム単位データ書込の際にも、指定された4600番地のアドレスに、ステップS111において送信されたオフセット量データ(700番地)を加えることにより、5300番地に書込が行われる。同様に、テープフィーダ60cの場合には、共通プログラム301のプログラム単位データ書込の際、指定された4300番地のアドレスに、ステップS111において送信されたオフセット量データ(1200番地)を加えることにより、5500番地に書込が行われる。これにより、同一のアドレス(4300番地および4600番地)を指定した共通プログラム301および302を更新対象のテープフィーダ60(60a、60bおよび60c)に対して並行して送信するだけで、予め関連付けられた互いに異なるアドレスに格納することができる。これにより、仕様などの相違により互いに異なるアドレスに共通プログラム301(302)を格納する必要がある場合でも、共通プログラム301(302)のデータを個別に送信することなく、並行して送信することが可能である。
その後、128バイトのプログラム単位のデータ書き込みが終了すると、ステップS92において、書き込みが終了したテープフィーダ60(60a、60bおよび60c)から、コントローラ50に書き込み終了通知が送信される。そして、ステップS82において、コントローラ50により、データ送信を行ったテープフィーダ60(60a、60bおよび60c)からの書き込み終了通知が受信されたか否かが判断され、ステップS83において、コントローラ50により、全てのデータ送信が完了したか否かが判断される。全データの送信が完了していない場合には、ステップS81へ戻り、次のプログラム単位のデータが送信され、テープフィーダ60により、再度書き込みが行われる。また、テープフィーダ60からの最終のプログラム単位の書き込み終了通知を受信した場合には、全データの送信が完了したと判断され、以降の処理へと戻る。
以上により、第2実施形態による表面実装機100のコントローラ50による、プログラム単位毎のデータ送信処理と、テープフィーダ60による書込処理とが行われる。
第2実施形態では、上記のように、テープフィーダ60(60a、60bおよび60c)の各々のフラッシュメモリ64(64a、64bおよび64c)において、共通プログラム301(302)のデータを、予め関連付けられた、それぞれ異なるアドレスに格納されるように構成することによって、各テープフィーダ60(60a、60bおよび60c)の種類の相違に起因して、共通プログラム301(302)をテープフィーダ60(60a、60bおよび60c)毎に異なるアドレスに格納する必要がある場合にも、各テープフィーダ60(60a、60bおよび60c)の予め指定したアドレスと関連付けることによって、他のテープフィーダ60(60a、60bおよび60c)と同じアドレスを指定して共通プログラム301(302)のデータを送信することができる。これにより、各テープフィーダ60(60a、60bおよび60c)の種類の相違に起因して、構成の異なる制御プログラムがそれぞれフラッシュメモリ64(64a、64bおよび64c)に格納されるテープフィーダ60(60a、60bおよび60c)に対しても、容易に、共通プログラム301(302)を並行して送信することができる。
また、第2実施形態では、共通プログラム301および302のデータを、テープフィーダ60(60a、60bおよび60c)の各々のフラッシュメモリ64(64a、64bおよび64c)に格納する際に、テープフィーダ60aのフラッシュメモリ64aにおける格納領域644aのアドレス(4300番地および4600番地)を基準として、テープフィーダ60bおよび60cに応じて予め指定されたオフセット量(格納位置ずれ量)だけずれたアドレスに格納領域644bおよび644cのアドレスが設定されることにより、共通プログラム301(302)の格納領域644a、644bおよび644cに異なるアドレスが互いに関連付けられるように構成することによって、制御プログラムの構成上、共通プログラム301(302)をテープフィーダ60毎に異なるアドレスに格納する必要がある場合に、同一の共通プログラム301(302)のデータを、それぞれのテープフィーダ60(60a、60bおよび60c)のフラッシュメモリ64(64a、64bおよび64c)において、設定されたオフセット量(位置ずれ量)だけずれた、異なるアドレスに関連付けて格納することができる。
また、第2実施形態では、表面実装機100のコントローラ50を、複数のテープフィーダ60(60a、60bおよび60c)の各々の更新プログラム300(300a、300bおよび300c)から、共通プログラム301(302)を判別するように構成することによって、更新プログラム300(300a、300bおよび300c)の作成時点で予め共通プログラム301(302)を他の部分と区別しない場合にも、コントローラ50により、各テープフィーダ60(60a、60bおよび60c)の更新プログラム300(300a、300bおよび300c)から、共通プログラム301(302)を判別することができる。
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
たとえば、上記第1実施形態では、コントローラ50と各テープフィーダ60(60a、60bおよび60c)とを、中継装置71を介して接続するように構成した例を示したが、本発明はこれに限らず、図14に示す変形例のように、中継装置を用いることなく、いわゆるバス接続により表面実装機のコントローラと各テープフィーダとを接続してもよい。
図14に示す変形例では、コントローラ50からの1つの通信路(バス)に複数のテープフィーダ60(60a、60bおよび60c)が接続されている。この変形例においては、コントローラ50から送信される更新プログラム200は全てのテープフィーダ60(60a、60bおよび60c)で受信可能となる。そして、送信先のテープフィーダ60の情報(宛て先)に基づき、テープフィーダ60(60a、60bおよび60c)のそれぞれのCPU(図示せず)が、送信された更新プログラム200を受信するか否かを判断するように構成されている。このように構成しても、本発明の効果を第1実施形態と同様に得ることができる。
また、上記第1実施形態では、中継装置71を、各テープフィーダ60を保持する台車70に内蔵した例を示したが、本発明はこれに限らず、中継装置を表面実装機に内蔵してもよい。すなわち、各テープフィーダが表面実装機に内蔵された中継装置に直接接続されるように構成してもよい。
また、上記第1実施形態では、更新プログラム200を、記録媒体120からコントローラ50の読出装置54を介して読み出し、記憶装置53に記憶する例を示したが、本発明はこれに限らず、更新プログラムを、たとえばネットワークを介して接続されたホストサーバなどから表面実装機のコントローラに送信するとともに、コントローラの記憶装置に記憶してもよい。また、読出装置についても、第1実施形態において示したCD―ROMドライブ、DVD−ROMドライブ以外の他の読出装置により構成してもよい。
また、上記第2実施形態では、表面実装機100のコントローラ50により、共通プログラム301(302)のテープフィーダ60bおよび60cに応じたオフセット量データを生成するように構成した例を示したが、本発明はこれに限らず、オフセット量データが予め設定してあってもよい。そして、コントローラ50は、予め設定されたオフセット量データを更新対象のテープフィーダに送信するように構成してもよい。また、共通プログラムも、コントローラによる判別を行うことなく、第1実施形態と同様に予め指定されていてもよい。
また、上記第2実施形態では、共通プログラム301(302)の送信(プログラム単位)に先立って、コントローラ50によりオフセット量データを送信対象のテープフィーダ60bおよび60cに送信するように構成した例を示したが、本発明はこれに限らず、プログラム単位の送信に先立ってオフセット量データを送ることなく、送信される共通プログラムにオフセットデータを含めるようにしてもよい。そして、各テープフィーダのCPUが、共通プログラムに含まれるオフセットデータに基づいて書込アドレスをずらすようにしてもよい。
また、上記第1実施形態および上記第2実施形態では、共通プログラム201(301)、202(302)および個別プログラム203(303)を、それぞれテープフィーダ60のフラッシュメモリ64において、たとえば4300番地〜4600番地のアドレスに連続して格納する例を示したが、本発明はこれに限られない。すなわち、共通プログラムおよび個別プログラムを、それぞれ連続的なアドレスに格納する必要はなく、非連続的なアドレスに格納されるように構成してもよい。
また、上記第1実施形態では、共通プログラムを先に送信し、個別プログラムを後に送信する例を示したが、本発明はこれに限らず、個別プログラムを共通プログラムよりも先に送信するようにしてもよい。送信の順序は任意である。
また、上記第1実施形態では、更新プログラム200を、テープフィーダ60のフラッシュメモリ64に格納する例を示したが、本発明はこれに限らず、テープフィーダの記憶部は、フラッシュメモリである必要はなく、更新プログラムを格納可能な不揮発性のメモリであればよい。たとえば、記憶部は、ハードディスクドライブなどにより構成してもよい。
また、上記第1実施形態では、更新プログラムは、128バイトのプログラム単位毎に送信され、書き込まれるように構成した例を示したが、本発明はこれに限らず、プログラム単位は128バイトよりも小さいデータ量、または128バイトよりも大きいデータ量でもよい。また、フラッシュメモリへの書き込みも、128バイトよりも小さいか、または、128バイトよりも大きいプログラム単位毎に行われるように構成してもよい。
また、上記第1実施形態では、コントローラ50から各テープフィーダ60(60a、60bおよび60c)への共通プログラム201(202)のデータ送信に通信用IC71c、71d、71eおよび71fを用いる例を示したが、本発明はこれに限らず、共通プログラム部分を電気的に並行して同時または実質的に同時に送信可能な他の通信手段を用いてもよい。
また、上記第1実施形態および上記第2実施形態では、各テープフィーダ60(60a、60bおよび60c)への共通プログラム201(202)のデータ送信を、表面実装機100のコントローラ50によって行う例を示したが、本発明はこれに限らず、表面実装機のコントローラとは異なる汎用のPC(パーソナルコンピュータ)や、複数の部品供給装置にデータ送信を行う専用の送信装置などの送信処理部により、更新プログラムの共通プログラム部分のデータを複数の部品供給装置に並行して送信するように構成してもよい。このように構成した場合、PCまたはデータ送信装置などの送信処理部により、本発明の、部品供給装置のデータ送信システムが構成される。このように構成した場合にも、送信処理部を用いて共通プログラム部分を各部品供給装置に並行して送信することによりデータ転送に要する時間を短くすることができ、その結果、制御プログラムの更新に要する時間を短くすることができるという本発明の効果を得ることが可能である。なお、この場合、部品供給装置のデータ送信システムは、複数のPCまたは送信装置などから構成されていてもよい。また、部品供給装置のデータ送信システムは、複数の部品供給装置にデータ送信を行うための中継装置などを含んでいてもよい。