(57)【要約】【課題】稀な異常が発生しても、異常の再現し得る動作状態を維持しつつ、確実かつ迅速に異常の再現を判断して原因を調査できる部品実装機のコントローラを提供する。【解決手段】基板に電子部品を実装する部品実装機に装備された制御対象を制御するコントローラ１であって、指令値を演算して制御対象に指令するとともに、演算に使用した内部データの一部を解析用データとして送出する制御実行装置（ＣＰＵ２およびホストメモリ３）と、受け取った解析用データに基づいて制御実行装置の動作の異常を解析する解析処理を、制御実行装置の動作に影響を及ぼすことなく独立して実施する独立解析装置（フィールドプログラマブルゲートアレイ６）と、を備えた。【選択図】図３
2015185586.tif 000002
【特許請求の範囲】
【請求項１】
基板に電子部品を実装する部品実装機に装備された制御対象を制御するコントローラであって、
指令値を演算して前記制御対象に指令するとともに、演算に使用した内部データの一部を解析用データとして送出する制御実行装置と、
受け取った前記解析用データに基づいて前記制御実行装置の動作の異常を解析する解析処理を、前記制御実行装置の動作に影響を及ぼすことなく独立して実施する独立解析装置と、
を備えた部品実装機のコントローラ。
【請求項２】
前記独立解析装置は、前記解析処理を実施するための解析プログラムを内蔵しており、かつ前記解析プログラムの全体の更新および一部の変更の少なくとも一方が可能とされている請求項１に記載の部品実装機のコントローラ。
【請求項３】
前記独立解析装置は、前記異常の発生または前記異常の発生の予測、および前記異常に関連する可能性のある制御実行装置の内部データの範囲の少なくとも一方を解析結果データとして前記制御実行装置に通知する請求項１または２に記載の部品実装機のコントローラ。
【請求項４】
前記制御実行装置は、前記異常の発生または前記異常の発生の予測が前記解析結果データによって通知されたときに、前記指令値の演算方法を正常時から変更する請求項３に記載の部品実装機のコントローラ。
【請求項５】
前記制御実行装置は、前記異常の発生または前記異常の発生の予測が前記解析結果データによって通知されたときに、前記制御対象を停止する指令値を指令する請求項４に記載の部品実装機のコントローラ。
【請求項６】
前記独立解析装置は、前記異常に関連する可能性のある制御実行装置の内部データの範囲を前記解析結果データとして前記制御実行装置に通知し、
前記制御実行装置は、前記独立解析装置から通知された範囲の内部データを記憶部に記憶する請求項３〜５のいずれか一項に記載の部品実装機のコントローラ。
【請求項７】
前記制御実行装置はＣＰＵを含んで構成され、前記独立解析装置はフィールドプログラマブルゲートアレイを含んで構成されている請求項１〜６のいずれか一項に記載の部品実装機のコントローラ。
【請求項８】
前記制御対象は、前記基板上の指定された位置に前記電子部品を装着する装着ノズル、ならびに単数または複数の前記装着ノズルを保持する実装ヘッドの少なくとも一方を駆動する単数または複数のサーボモータである請求項１〜７のいずれか一項に記載の部品実装機のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、基板に電子部品を実装する部品実装機の技術分野に関する。より詳細には、部品実装機に装備されたサーボモータなどの制御対象を制御するコントローラの異常監視に関する。
【背景技術】
【０００２】
多数の電子部品が実装された基板を生産する機器として、半田印刷機、部品実装機、リフロー炉、基板検査機などがある。これらの機器を連結して基板生産ラインを構築する場合が多い。このうち部品実装機に設けられる部品移載装置は、一般的に装着ノズル、実装ヘッド、およびＸ−Ｙ軸駆動機構を備えている。さらに、実装ヘッドは、保持している装着ノズルを昇降駆動したり回転駆動したりするノズル駆動機構を有している。
【０００３】
上記したＸ−Ｙ軸駆動機構やノズル駆動機構は、駆動源としてのサーボモータと、サーボモータを制御するコントローラとを備える場合が多い。コントローラは、中央処理部（ＣＰＵ）を備えてソフトウェアで動作するコンピュータ装置である。コントローラによるサーボモータの制御では、稀に制御動作の異常が発生し得る。稀な異常は、毎回の制御動作でいつも発生するのでなく、例えば、或るレアなタイミングに異常発生条件が成立したときにのみ発生する。このため、稀に発生する異常の原因を調査して特定することは、非常に難しい。この種のソフトウェアを用いた制御に関する技術例が特許文献１および特許文献２に開示されている。
【０００４】
特許文献１に開示された異常検出装置は、ソフトウェア実行部、記憶部、分割部、解析部、および異常検出部を具備している。分割部は、ソフトウェアの実行時に記憶部が記憶したメモリステータスを所定の容量の複数のブロックに分割する。解析部は、前記のブロック毎にメモリステータスの時間変化を解析する。異常検出部は、解析部の解析の結果に基づいて異常を検出する。さらに、実施形態の説明によれば、ＣＰＵは、ソフトウェアを実行してから所定時間が経過した場合に、解析用プログラムを実行し解析部として機能する。つまり、ソフトウェア実行部および解析部は、１個のＣＰＵの時分割された機能により実現されている。これによれば、より高精度に異常を検出することができる、とされている。
【０００５】
また、特許文献２の請求項６に開示されたロボット装置は、メモリに格納される動作プログラムに基づいて作動し、通信ネットワークを介して外部サーバ装置からメモリに動作プログラムを獲得する。さらに、実施形態の説明によれば、ロボット装置は、メモリおよびプログラマブルデバイス（フィールドプログラマブルゲートアレイ）を備え、メモリ内の動作プログラムに応じてプログラマブルデバイスの内部論理演算回路が構成されるようになっている。これによれば、例えば企業ホームページ上からユーザーの端末装置に希望する動作プログラムを簡単に取り込むことができ、また、ユーザーサイドでロボット装置の動作として表現できる、とされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−２８７１１号公報
【特許文献２】特開２００２−３１２２７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、部品実装機のコントローラに稀な異常が発生したときに、原因の調査機能を付加した調査用ソフトウェアを使用する場合がある。例えば、特定の内部データの変化を追跡するトレース処理や、特定箇所で制御を一旦停止させるトラップ処理などが本来のソフトウェアに追加されて調査用ソフトウェアが作成される。ところが、本来のソフトウェアに代え調査用ソフトウェアを用いてコントローラを動作させても、異常が再現しなくなって調査の滞るケースがある。異常が再現しない原因として、追加した処理の影響で異常発生条件が成立しなくなることが考えられる。
【０００８】
稀な異常が調査用ソフトウェアで再現しない現象は、特許文献１および特許文献２の技術を組み合わせても生じ得るものである。詳述すると、稀な異常の様相に応じて特許文献１の解析用プログラムに処理を追加、または処理を改変した調査用プログラムを作成し、特許文献２の技術を応用してこの調査用プログラムを特許文献１の解析部に取り込むことができる。しかしながら、特許文献１のＣＰＵは、ソフトウェアおよび調査用プログラムを時分割して実行するので、ソフトウェア実行時に制御タイミングのずれなどが生じて異常発生条件が成立しなくなる可能性は解消されない。
【０００９】
仮に、本来のソフトウェアを調査用ソフトウェアに入れ替えて異常が再現しなくなっても、対策を実施した訳ではないので、稀な異常が再現する潜在的なリスクは残っている。やはり、異常の原因を確実に究明し、ソフトウェアに恒久対策を実施して、コントローラおよび部品実装機の動作品質を高めることが必要である。
【００１０】
本発明は、上記背景技術の問題点に鑑みてなされたものであり、稀な異常が発生しても、異常の再現し得る動作状態を維持しつつ、確実かつ迅速に異常の再現を判断して原因を調査できる部品実装機のコントローラを提供することを解決すべき課題とする。
【課題を解決するための手段】
【００１１】
上記課題を解決する請求項１に係る部品実装機のコントローラの発明は、基板に電子部品を実装する部品実装機に装備された制御対象を制御するコントローラであって、指令値を演算して前記制御対象に指令するとともに、演算に使用した内部データの一部を解析用データとして送出する制御実行装置と、受け取った前記解析用データに基づいて前記制御実行装置の動作の異常を解析する解析処理を、前記制御実行装置の動作に影響を及ぼすことなく独立して実施する独立解析装置と、を備えた。
【００１２】
これによれば、制御実行装置は、指令値を演算して制御対象に指令する制御動作とともに、演算に使用した内部データの一部を解析用データとして送出する動作を定常的に行い続ける。一方、独立解析装置は、受け取った解析用データに基づいて解析処理を実施し、制御実行装置の動作に影響を及ぼさない。したがって、仮に稀な異常が発生したときに、制御実行装置では異常の再現し得る動作状態が維持され、独立解析装置は、解析により異常の再現を確実かつ迅速に判断して、異常の原因の調査に寄与できる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態のコントローラが装備された部品実装機の構成を示す斜視図である。
【図２】第１実施形態の部品実装機のコントローラおよびその制御対象であるＹ軸サーボモータを示した全体構成図である。
【図３】第１実施形態のコントローラの内部構成を示したブロック図である。
【図４】制御実行装置に相当するＣＰＵおよびホストメモリの動作を説明するフローチャートの図である。
【図５】独立解析装置に相当するフィールドプログラマブルゲートアレイの動作を説明するフローチャートの図である。
【図６】異音の異常が発生した場合に、独立解析装置に相当するフィールドプログラマブルゲートアレイが実行する解析処理プログラムを説明するフローチャートの図である。
【図７】第２実施形態の部品実装機のコントローラおよびその制御対象である２個のサーボモータを示した全体構成図である。
【発明を実施するための形態】
【００１４】
本発明の第１実施形態の部品実装機のコントローラ１について、図１〜図６を参考にして説明する。図１は、第１実施形態のコントローラ１が装備された部品実装機９の構成を示す斜視図である。部品実装機９は、基板搬送装置９２、部品供給装置９３、部品移載装置９４、および部品カメラ９５などが機台９１に組み付けられて構成されている。さらに、各装置９２〜９５の動作を制御するために、図略の制御部が設けられている。
【００１５】
基板搬送装置９２は、基板Ｋを搬入し、位置決めし、搬出する。基板搬送装置９２は、平行配置された第１および第２ガイドレール９２１、９２２、図略の一対のコンベアベルト、および図略のクランプ装置などで構成されている。一対のコンベアベルトは、第１および第２ガイドレール９２１、９２２の内側に平行に配設されており、輪転することでコンベア搬送面に戴置した基板Ｋを搬送する。クランプ装置は、コンベアベルトの下方に配設されており、基板Ｋを押し上げ水平姿勢でクランプして位置決めする。
【００１６】
部品供給装置９３は、複数の部品種の電子部品を供給する。部品供給装置９３は、フィーダ方式の装置であり、部品実装機９の長手方向の前部（図１の左前側）に設けられている。部品供給装置９３は、着脱可能な多数のカセット式フィーダ９３１を有している。各カセット式フィーダ９３１は、本体９３２と、本体９３２の後部に設けられた供給リール９３３と、本体９３２の先端に設けられた部品取出部９３４とを備えている。供給リール９３３は、多数の電子部品が所定ピッチで収納された細長いテープを巻回して保持している。カセット式フィーダ９３１は、このテープを所定ピッチで引き出して部品取出部９３４に順次送り込むことにより電子部品を供給する。
【００１７】
部品移載装置９４は、部品供給装置９３の部品取出部９３４から電子部品を吸着採取し、位置決めされた基板Ｋまで搬送して装着する。部品移載装置９４は、Ｘ軸方向およびＹ軸方向に水平移動可能なＸＹロボットタイプの装置である。部品移載装置９４は、一対のＹ軸レール９４１、９４２、Ｙ軸ねじ送り機構９４３、Ｙ軸サーボモータ８、Ｙ軸スライダ９４４、実装ヘッド９４５、および装着ノズル９４６などで構成されている。
【００１８】
一対のＹ軸レール９４１、９４２は、機台９の長手方向（Ｙ軸方向）に延在して配設されている。Ｙ軸レール９４１、９４２上に、Ｙ軸スライダ９４４がＹ軸方向に移動可能に装架されている。一対のＹ軸レール９４１、９４２の間に、Ｙ軸ねじ送り機構９４３が配設されている。Ｙ軸ねじ送り機構９４３は、Ｙ軸サーボモータ８によって駆動され、Ｙ軸スライダ９４４をＹ軸方向に駆動する。Ｙ軸スライダ９４４には、実装ヘッド９４５がＸ軸方向に移動可能に装架されている。実装ヘッド９４５は、図略のＸ軸ねじ送り機構およびＸ軸サーボモータによってＸ軸方向に駆動される。
【００１９】
実装ヘッド９４５は、その下側に装着ノズル９４６を１本保持している。実装ヘッド９４５は、装着ノズル９４６を垂直Ｚ軸方向に駆動するＺ軸サーボモータ、および装着ノズル９４６を回転駆動するθ軸サーボモータを有している。なお、複数本の装着ノズルを円周上に等間隔に保持するマルチノズルタイプの実装ヘッドもある。マルチノズルタイプの実装ヘッドは、Ｚ軸サーボモータおよびθ軸サーボモータに加えて、複数本の装着ノズルを円周上で回転駆動するＲ軸サーボモータを有している。
【００２０】
部品カメラ９５は、基板搬送装置９２と部品供給装置９３との間の機台９１の上面に、上向きに設けられている。部品カメラ９５は、実装ヘッド９４５が部品供給装置９３から基板Ｋ上に移動する途中で、装着ノズル９４６に吸着採取されている電子部品の状態を撮像して検出する。部品カメラ９５が電子部品の吸着位置の誤差や回転角のずれなどを検出すると、必要に応じて部品装着動作が微調整され、装着が困難な電子部品は廃棄される。
【００２１】
第１実施形態の部品実装機のコントローラ１は、部品移載装置９４のＹ軸サーボモータ８、Ｘ軸サーボモータ、Ｚ軸サーボモータ、θ軸サーボモータ、およびＲ軸サーボモータの少なくとも１個を制御対象とする。コントローラ１は、サーボモータごとに別々に設けられてもよいし、協調制御が必要とされる複数個のサーボモータに共通に設けられてもよい。第１実施形態では、Ｙ軸サーボモータ８を制御対象とするコントローラ１を例にして説明する。図２は、第１実施形態の部品実装機のコントローラ１およびその制御対象であるＹ軸サーボモータ８を示した全体構成図である。
【００２２】
Ｙ軸サーボモータ８は、モータ本体８１、エンコーダ８２、サーボアンプ８３、動力線８４、およびエンコーダ線８５などで構成されている。モータ本体８１は、サーボアンプ８３から動力線８４を経由して電力Ｐが供給される。これにより、モータ本体８１は、電磁誘導作用で回転動作して、Ｙ軸ねじ送り機構９４３を駆動する。エンコーダ８２は、モータ本体８１の回転量を検出して検出信号Ｓｄを得る。検出信号Ｓｄは、エンコーダ線８５を経由してサーボアンプ８３に伝送される。
【００２３】
サーボアンプ８３は、サーボネットワーク８６によって、コントローラ１に通信接続されている。サーボネットワーク８６として、ＭＥＣＨＡＴＲＯＬＩＮＫ、Ｅｔｈｅｒｃａｔ、ＳＳＣＮＥＴ（３件とも登録商標）などを例示できる。サーボアンプ８３には、モータ本体８１を駆動するための駆動電源（図略）が接続されている。サーボアンプ８３は、コントローラ１からサーボネットワーク８６を経由して指令された指令トルク値Ｔｑに基づき、駆動電源を変成して適正な電力Ｐを生成し、この電力Ｐをモータ本体８１に供給する。また、サーボアンプ８３は、エンコーダ８２から受け取った検出信号Ｓｄに所定の信号処理を施してエンコーダ値Ｅｎを演算し、このエンコーダ値Ｅｎをコントローラ１に通信伝送する。エンコーダ値Ｅｎは、Ｙ軸スライダ９４４のＹ軸方向の実位置に相当する値である。
【００２４】
コントローラ１は、サーボアンプ８３以外に、部品実装機９の制御部にも通信接続されている。コントローラ１は、制御部からＹ軸スライダ９４４のＹ軸方向の目標位置Ｅｔを受け取り、サーボアンプ８３からエンコーダ値Ｅｎ（実位置に相当）を受け取る。コントローラ１は、目標位置Ｅｔおよびエンコーダ値Ｅｎに基づいて指令トルク値Ｔｑを演算し、この指令トルク値Ｔｑをサーボアンプ８３に指令する。また、コントローラ１は、Ｙ軸サーボモータ８を制御することでＹ軸スライダ９４４が目標位置Ｅｔに到達する到達予定時期Ｍを推定演算する。
【００２５】
図３は、第１実施形態のコントローラ１の内部構成を示したブロック図である。コントローラ１は、ＣＰＵ２およびフィールドプログラマブルゲートアレイ６（以降ではＦＰＧＡ６と略記）を含んで構成されている。ＣＰＵ２は、高速でのアクセスが可能で揮発性のホストメモリ３を使用する。ＣＰＵ２とＦＰＧＡ６との間は、チップセット４およびバス５を介して電気的に接続されている。公知のように、バス５は、データバスおよびアドレスバスからなる。バス５には、不揮発性の記憶部７や、通信インターフェースなども接続されている。
【００２６】
ＣＰＵ２は、前述した指令トルク値Ｔｑを演算する際に、演算に使用する内部データをホストメモリ３に保存する。さらに、ＣＰＵ２は、演算に使用した内部データの一部を解析用データとしてＦＰＧＡ６に送出する。解析用データとして、不定期に送出されてＣＰＵ２の動作履歴を表すログデータや、定期的に送出される特定内部データなどを例示できる。解析用データの内容は、実際に異常が発生するか否かに関係なく予め定めておく必要がある。第１実施形態では、特定内部データである目標位置Ｅｔ、指令トルク値Ｔｑ、エンコーダ値Ｅｎ、および到達予定時期Ｍを解析用データとする。ＣＰＵ２およびホストメモリ３は、本発明の制御実行装置を構成する。
【００２７】
ＦＰＧＡ６は、受け取った解析用データに基づいてＣＰＵ２およびホストメモリ３の動作の異常を解析する解析処理を行う。解析処理の具体的な事例については、後で詳述する。ＦＰＧＡ６は、論理演算内容を変更できる複数の論理回路からなる集積回路であり、受動的にバス５から解析用データを受け取る。ＦＰＧＡ６は、ＣＰＵ２に能動的に働きかけることをしないので、常時はＣＰＵ２およびホストメモリ３の動作に影響を及ぼすことなく独立して解析処理を実施できる。ＦＰＧＡ６は、本発明の独立解析装置に相当する。
【００２８】
ＦＰＧＡ６は、複数の論理回路の論理演算内容を解析プログラムの形態で内蔵している。解析プログラムは、全体の更新および一部の変更が可能であり、現場での入れ替えが容易とされている。このため、仮にコントローラ１に何らかの異常が発生した場合に、解析プログラムを自由に更新したり、自由に一部を変更したりできる。また、ＦＰＧＡ６の解析プログラムが更新または一部変更されても、ＣＰＵ２およびホストメモリ３では異常の再現し得る動作状態が維持される。
【００２９】
ＦＰＧＡ６は、解析処理によって異常の発生を判断した場合に、異常発生情報を解析結果データとしてＣＰＵ２に通知する。異常発生情報の通知方法として、例えば、ＭＳＩ割り込み（Ｍｅｓｓａｇｅ  Ｓｉｇｎａｌｅｄ  Ｉｎｔｅｒｒｕｐｔ）を使用でき、これに限定されない。なお、ＦＰＧＡ６は、現時点で異常が発生していなくとも、異常の予兆が明らかで近い将来に異常の発生を予測できるときに、異常発生情報をＣＰＵ２に通知するようにしてもよい。
【００３０】
さらに、ＦＰＧＡ６は、異常に関連する可能性のあるホストメモリ３の内部データの範囲を解析結果データとしてＣＰＵ２に通知する。内部データの範囲は、ホストメモリ３の内部データのデータ数およびアドレス範囲を指定することで通知できる。通知方法として、例えば、ＦＰＧＡ６上のメモリにデータ数およびアドレス範囲を格納する方法を用いる。この方法では、異常の発生またはその予測の通知を受けたＣＰＵ２は、ＦＰＧＡ６上のメモリに格納されたデータ数およびアドレス範囲を参照して、次に実行する異常時アクションを決定できる。
【００３１】
ＣＰＵ２は、異常発生情報の通知を受けたときに、異常時アクションを実行する。異常時アクションは、正常時に指令トルク値Ｔｑを演算および指令する処理とは異なる。異常時アクションの内容は、ホストメモリ３内に予め登録されている。異常時アクションとして、非常停止アクションや、データ保存アクションなどを例示できる。
【００３２】
ＣＰＵ２は、非常停止アクションでＹ軸サーボモータ８を非常停止させる。この場合、ＣＰＵ２は、Ｙ軸サーボモータ８に逆転方向の指令トルク値Ｔｑを指令して、Ｙ軸サーボモータ８を迅速に停止させる。非常停止アクションにより異常発生時の不適切な制御が即座に停止されるので、Ｙ軸サーボモータ８や部品移載装置９４の故障が防止される。また、ＣＰＵ２は、データ保存アクションで、通知されたデータ数およびアドレス範囲に基づいてホストメモリ３の内部データを不揮発性の記憶部７に転送して記憶する。データ保存アクションにより、異常の原因の調査に重要な内部データが確実に保存される。
【００３３】
異常時アクションは、上記に限定されない。例えば、ＣＰＵ２は、異常時アクションで指令トルク値Ｔｑを制限して、Ｙ軸スライダ９４４の移動速度を正常時よりも遅く制御するようにしてもよい。また、ＣＰＵ２は、発生した異常の様相に対応して、複数の異常時アクションのいずれかを選択的に実行することもできる。
【００３４】
次に、ＣＰＵ２およびホストメモリ３の動作について説明する。図４は、制御実行装置に相当するＣＰＵ２およびホストメモリ３の動作を説明するフローチャートの図である。図４のステップＳ１で、動作を開始したＣＰＵ２は、ホストメモリ３を使用して指令トルク値Ｔｑを演算し、指令する。次のステップＳ２で、ＣＰＵ２は、ログデータおよび特定内部データを解析用データとしてＦＰＧＡ６に送出する。次のステップＳ３で、ＣＰＵ２は、ＦＰＧＡ６からの異常発生情報の通知が有るか無いかを調査する。
【００３５】
ステップＳ３で異常発生情報の通知が無い場合、ＣＰＵ２は、ステップＳ１に戻る。異常発生情報の通知が無い正常時の間、ＣＰＵ２は、ステップＳ１からステップＳ３までを繰り返して実行する。ステップＳ３で異常発生情報の通知が有る場合、ＣＰＵ２は、ステップＳ４に進んで、異常時アクション（例えば、非常停止アクションおよびデータ保存アクション）を実行する。ＣＰＵ２は、非常停止アクションを実行した場合に、Ｙ軸サーボモータ８の制御を終了する。ＣＰＵ２は、非常停止アクションと異なる異常時アクションを実行した場合には、動作し続けることも有り得る。
【００３６】
次に、ＦＰＧＡ６の動作について説明する。図５は、独立解析装置に相当するフィールドプログラマブルゲートアレイ６（ＦＰＧＡ６）の動作を説明するフローチャートの図である。図５のステップＳ１１で、動作を開始したＦＰＧＡ６は、ＣＰＵ２からログデータおよび特定内部データを受け取る。次のステップＳ１２で、ＦＰＧＡ６は、異常の解析処理を実行し、異常の発生を判断した場合には異常発生情報を設定する。次のステップＳ１３で、ＦＰＧＡ６は、解析結果による異常発生情報の有無を判断する。
【００３７】
ステップＳ１３で異常発生情報が無い場合、ＦＰＧＡ６は、ステップＳ１１に戻る。そして、異常が発生していない正常時に、ＦＰＧＡ６は、ステップＳ１１からステップＳ１３までを繰り返して実行する。ステップＳ１３で異常発生情報が有る場合、ＦＰＧＡ６は、ステップＳ１４に進む。ステップＳ１４で、ＦＰＧＡ６は、ＣＰＵ２に異常発生情報を通知し、データ保存アクションのためのデータ数およびアドレス範囲を通知する。ＦＰＧＡ６は、ＣＰＵ２が非常停止アクションを実行して制御を終了すると、ログデータおよび特定内部データを受け取れなくなって解析処理を終了する。ＦＰＧＡ６は、ＣＰＵ２の非常停止アクション以外の異常時アクションでは、動作し続けることも有り得る。
【００３８】
次に、第１実施形態の部品実装機のコントローラ１の異常について、２つの事例を例示説明する。第１事例で、Ｙ軸スライダ９４４が振動して異音が発生した異常を想定する。仮に、異音の異常が発生した場合、技術者は、ＦＰＧＡ６が実行する解析プログラムにＦＦＴ処理を追加する。図６は、異音の異常が発生した場合に、独立解析装置に相当するフィールドプログラマブルゲートアレイ６（ＦＰＧＡ６）が実行する解析処理プログラムを説明するフローチャートの図である。
【００３９】
図５のステップＳ１１で、ＦＰＧＡ６は、時系列的に並んだ複数個のエンコーダ値Ｅｎを既に受け取っている。次に、図６のステップＳ２１で、ＦＰＧＡ６は、複数個のエンコーダ値Ｅｎに対してＦＦＴ処理（高速フーリエ変換処理）を実施する。これにより、Ｙ軸スライダ９４４の振動、換言すれば異音の周波数ｆおよび振幅値Ｗ１を演算できる。次のステップＳ２２で、ＦＰＧＡ６は、周波数帯ｆＢを定めて演算された振幅値Ｗ１と予め設定した閾値Ｗ２とを大小比較して、異音の有無を判断する。
【００４０】
周波数帯ｆＢおよび閾値Ｗ２は、異音の異常が再現しているか否かを判定する指標である。周波数帯ｆＢとして１０〜２０ｋＨｚ、閾値Ｗ２として４０ｄＢをそれぞれ例示でき、この値に限定されない。また、複数の周波数帯ｆＢのそれぞれで閾値Ｗ２を設定し、複数の判定を行って判定精度を向上することも可能である。この場合、複数の周波数帯ｆＢのそれぞれで、閾値Ｗ２は異なっていてもよい。
【００４１】
ステップＳ２２で、１つの周波数帯ｆＢまたは複数の周波数帯ｆＢの全てにおいて振幅値Ｗ１が閾値Ｗ２よりも小さいとき、ＦＰＧＡ６は、異常が発生していないと判断する。そして、ＦＰＧＡ６は、今回の解析処理を終了して図５のステップＳ１３に戻る。一方、振幅値Ｗ１が閾値Ｗ２以上のとき、ＦＰＧＡ６は、異音の異常が再現していると判断して、ステップＳ２３に進む。ステップＳ２３で、ＦＰＧＡ６は、異常発生情報を設定する。さらに、次のステップＳ２４で、ＦＰＧＡ６は、データ保存アクションに必要とされるデータ数およびアドレス範囲を指定する。ステップＳ２４の後、ＦＰＧＡ６は、今回の解析処理を終了して図５のステップＳ１３に戻る。
【００４２】
ここで、ＣＰＵ２は、指令トルク値Ｔｑを演算する都度、時系列的に並んだエンコーダ値Ｅｎを１階微分してＹ軸スライダ９４４の移動速度を演算し、さらに、エンコーダ値Ｅｎを２階微分してＹ軸スライダ９４４の加速度を演算している。そして、ＣＰＵ２は、移動速度および加速度のデータ列を内部データとしてホストメモリ３に保存している。この移動速度および加速度のデータ列を含むように、ＦＰＧＡ６は、データ数およびアドレス範囲を指定する。したがって、ＣＰＵ２は、異常発生情報が通知されると、Ｙ軸サーボモータ８を非常停止し、さらに、Ｙ軸スライダ９４４の移動速度および加速度のデータ列を記憶部７に記憶する。
【００４３】
このように、異音の異常が再現したときに、Ｙ軸スライダ９４４の移動速度および加速度のデータ列は、記憶部７に記憶されて、後で技術者による調査が行えるようになる。したがって、技術者は、確実かつ迅速に異音の異常の原因を調査でき、確実な恒久対策を迅速に検討できる。
【００４４】
次に、第２事例で、Ｙ軸スライダ９４４の目標位置Ｅｔでの停止精度が低下した異常を想定する。仮に、停止精度低下の異常が発生した場合、技術者は、ＦＰＧＡ６が実行する解析プログラムに停止精度を確認する処理を追加する。図５のステップＳ１１で、ＦＰＧＡ６は、目標位置Ｅｔ、エンコーダ値Ｅｎ、および到達予定時期Ｍを既に受け取っている。ステップＳ１２で、ＦＰＧＡ６は、到達予定時期Ｍを過ぎた時間帯に停止精度確認の処理を実施する。
【００４５】
具体的に、ＦＰＧＡ６は、エンコーダ値Ｅｎから目標位置Ｅｔを減算して位置誤差を求める。ＦＰＧＡ６は、位置誤差が予め設定した閾値よりも小さいときに正常と判断し、位置誤差が閾値以上のときに停止精度低下の異常が再現していると判断する。異常が再現しているとき、ＦＰＧＡ６は、第１事例と同様に異常発生情報を通知し、かつ、データ保存アクションに必要とされるデータ数およびアドレス範囲を通知する。
【００４６】
第１実施形態の部品実装機のコントローラ１は、基板Ｋに電子部品を実装する部品実装機９に装備されたＹ軸サーボモータ８を制御するコントローラであって、トルク指令値Ｔｑを演算してＹ軸サーボモータ８のサーボアンプ８３に指令するとともに、演算に使用したホストメモリ３の内部データのうちの目標位置Ｅｔ、指令トルク値Ｔｑ、エンコーダ値Ｅｎ、および到達予定時期Ｍを解析用データとして送出するＣＰＵ２（制御実行装置）と、受け取った解析用データに基づいてＣＰＵ２およびホストメモリ３（制御実行装置）の動作の異常を解析する解析処理を、ＣＰＵ２の動作に影響を及ぼすことなく独立して実施するＦＰＧＡ６（独立解析装置）と、を備えた。
【００４７】
これによれば、ＣＰＵ２は、トルク指令値Ｔｑを演算してＹ軸サーボモータ８に指令する制御動作とともに、目標位置Ｅｔ、指令トルク値Ｔｑ、エンコーダ値Ｅｎ、および到達予定時期Ｍを解析用データとして送出する動作を定常的に行い続ける。一方、ＦＰＧＡ６は、受け取った解析用データに基づいて解析処理を実施し、ＣＰＵ２の動作に影響を及ぼさない。したがって、仮に異音の発生や停止精度の低下などの稀な異常が発生したときに、ＣＰＵ２では異常の再現し得る動作状態が維持される。また、ＦＰＧＡ６は、解析により異常の再現を確実かつ迅速に判断して、異常の原因の調査に寄与できる。
【００４８】
さらに、第１実施形態の部品実装機のコントローラ１で、ＦＰＧＡ６は、解析処理を実施するための解析プログラムを内蔵しており、かつ解析プログラムの全体の更新および一部の変更が可能とされている。
【００４９】
これによれば、予想できない異常が稀に発生しても、異常の様相に応じて原因の調査を効率的に行えるように、ＦＰＧＡ６の解析プログラムを自由に変更できる。加えて、異常発生後すぐに解析プログラムを容易に入れ替えでき、異常の再現にも影響しない。したがって、ＦＰＧＡ６は、異常の解析を極めて精緻に実施できる。
【００５０】
さらに、第１実施形態の部品実装機のコントローラ１で、ＦＰＧＡ６は、異常の発生または異常の発生の予測、および異常に関連する可能性のあるホストメモリ３の内部データの範囲の少なくとも一方を解析結果データとしてＣＰＵ２に通知する。
【００５１】
これによれば、異常が再現したときに、その旨がＦＰＧＡ６からＣＰＵ２へ通知される。したがって、ＣＰＵ２は、予め登録された異常時アクションを実施して、異常の発生に対応できる。
【００５２】
さらに、第１実施形態の部品実装機のコントローラ１で、ＣＰＵ２は、異常の発生または異常の発生の予測が解析結果データによって通知されたときに、トルク指令値Ｔｑの演算方法を正常時から変更する。加えて、ＣＰＵ２は、異常の発生または異常の発生の予測が解析結果データによって通知されたときに、Ｙ軸サーボモータ８を非常停止する逆転方向の指令トルク値Ｔｑを指令して、Ｙ軸サーボモータ８を迅速に停止させる。
【００５３】
これによれば、コントローラ１は、異常が再現したときに不適切な制御が即座に停止されるので、Ｙ軸サーボモータ８や部品移載装置９４の故障が防止される。
【００５４】
さらに、第１実施形態の部品実装機のコントローラ１で、ＦＰＧＡ６は、異常に関連する可能性のあるホストメモリ３の内部データの範囲を解析結果データとしてＣＰＵ２に通知し、ＣＰＵ２は、ＦＰＧＡ６から通知された範囲の内部データを記憶部７に記憶する。
【００５５】
これによれば、コントローラ１は、異常の原因の調査に極めて重要なホストメモリ３の内部データの一部を選択して、不揮発性の記憶部７に転送して記憶する。技術者は、転送および記憶された内部データを分析することで確実かつ迅速に異常の原因を調査でき、確実な恒久対策を迅速に検討できる。
【００５６】
次に、第２実施形態の部品実装機のコントローラ１０について、第１実施形態と異なる点を主に説明する。第２実施形態のコントローラ１０が装備される部品実装機９の構成は、第１実施形態と同じである。第２実施形態のコントローラ１０は、部品移載装置９４のＹ軸サーボモータ８、Ｘ軸サーボモータ、Ｚ軸サーボモータ、θ軸サーボモータ、およびＲ軸サーボモータのうちで協調制御が必要とされる複数個を制御対象とする。以降の説明では、２個のサーボモータ８Ａ、８Ｂを制御対象とするコントローラ１０を例にして説明する。図７は、第２実施形態の部品実装機のコントローラ１０およびその制御対象である２個のサーボモータ８Ａ、８Ｂを示した全体構成図である。
【００５７】
図７で、２個のサーボモータ８Ａ、８Ｂの構成は、第１実施形態のＹ軸サーボモータ８と同様である。第２実施形態のコントローラ１０は、図３を用いて説明した第１実施形態のコントローラ１に類似し、ＣＰＵ２およびＦＰＧＡ６を含んで構成されている。コントローラ１０は、制御部から２個のサーボモータ８Ａ、８Ｂに関する目標位置ＥｔＡ、ＥｔＢを受け取り、各サーボモータ８Ａ、８Ｂからそれぞれエンコーダ値ＥｎＡ、ＥｎＢ（実位置に相当）を受け取る。
【００５８】
コントローラ１０は、２個のサーボモータ８Ａ、８Ｂを時分割方式で交互に制御する。つまり、コントローラ１０のＣＰＵ２は、第１占有時間帯にサーボモータ８Ａの制御用途に占有され、指令トルク値ＴｑＡを演算してサーボモータ８Ａに指令する。ＣＰＵ２は、その後の第２占有時間帯にサーボモータ８Ｂの制御用途に占有され、指令トルク値ＴｑＢを演算してサーボモータ８Ｂに指令する。以下、ＣＰＵ２では、第１占有時間帯と第２占有時間帯とが交互に発生する。ＣＰＵ２は、第１占有時間帯の開始時刻Ｔ１ｓおよび終了時刻Ｔ１ｅ、ならびに第２占有時間帯の開始時刻Ｔ２ｓおよび終了時刻Ｔ２ｅの合計４個からなるログデータの１組または複数組を解析用データとしてＦＰＧＡ６に送出する。
【００５９】
次に、第３事例で、第２実施形態の部品実装機のコントローラ１０のＣＰＵ２の過負荷の異常を想定する。仮に、ＣＰＵ２の演算負荷が増大して過負荷に陥った場合、第１占有時間帯および第２占有時間帯の少なくとも一方が長引く。この場合に、技術者は、ＦＰＧＡ６が実行する解析プログラムにＣＰＵ２の占有率を確認する処理を追加する。
【００６０】
ＣＰＵ２の占有率を確認する処理の詳細は、次のとおりである。ＦＰＧＡ６は、まず、受け取ったログデータに基づいて次式により、第１占有時間帯および第２占有時間帯の長さをそれぞれ演算する。
第１占有時間帯＝Ｔ１ｅ−Ｔ１ｓ
第２占有時間帯＝Ｔ２ｅ−Ｔ２ｓ
ＦＰＧＡ６は、次に、第１占有時間帯および第２占有時間帯がそれぞれ全動作時間に占める比率、すなわち第１占有率および第２占有率を演算する。
【００６１】
ＦＰＧＡ６は、三番目に、第１占有率および第２占有率を予め設定した占有率閾値と比較する。ＦＰＧＡ６は、最終的に、第１占有率および第２占有率が占有率閾値よりも小さいときに正常と判断し、第１占有率および第２占有率の一方が占有率閾値以上のときにＣＰＵ２の過負荷の異常が再現していると判断する。異常が再現しているとき、ＦＰＧＡ６は、第１および第２事例と同様に異常発生情報を通知し、かつ、データ保存アクションに必要とされるデータ数およびアドレス範囲を通知する。
【００６２】
第２実施形態の部品実装機のコントローラ１０は、基板Ｋに電子部品を実装する部品実装機９に装備された２個のサーボモータ８Ａ、８Ｂを制御するコントローラであって、トルク指令値ＴｑＡ、ＴｑＢを演算してサーボモータ８Ａ、８Ｂに指令するとともに、演算に使用したホストメモリ３の内部データのうちの第１占有時間帯の開始時刻Ｔ１ｓおよび終了時刻Ｔ１ｅ、ならびに第２占有時間帯の開始時刻Ｔ２ｓおよび終了時刻Ｔ２ｅの合計４個からなるログデータを解析用データとして送出するＣＰＵ２（制御実行装置）と、受け取った解析用データに基づいてＣＰＵ２およびホストメモリ３（制御実行装置）の動作の異常を解析する解析処理を、ＣＰＵ２の動作に影響を及ぼすことなく独立して実施するＦＰＧＡ６（独立解析装置）と、を備えた。
【００６３】
これによれば、ＣＰＵ２は、トルク指令値ＴｑＡ、ＴｑＢを演算してサーボモータ８Ａ、８Ｂに指令する制御動作とともに、合計４個からなるログデータを解析用データとして送出する動作を定常的に行い続ける。一方、ＦＰＧＡ６は、受け取った解析用データに基づいて解析処理を実施し、ＣＰＵ２の動作に影響を及ぼさない。したがって、仮にＣＰＵ２の過負荷などの稀な異常が発生したときに、ＣＰＵ２では異常の再現し得る動作状態が維持される。また、ＦＰＧＡ６は、解析により異常の再現を確実かつ迅速に判断して、異常の原因の調査に寄与できる。
【００６４】
第２実施形態の部品実装機のコントローラ１０では、その他にも第１実施形態と同様の効果が発生し、重複する説明は省略する。
【００６５】
なお、第１〜第３事例で例示説明した以外の異常が発生した場合には、異常の様相に応じてＦＰＧＡ６の解析プログラムを適宜変更することになる。加えて、異常の原因の調査が難しい場合には、解析プログラムの変更を何度でも実施できる。また、独立解析装置は、ＦＰＧＡ６である必要は無く、コントローラ１の内部に配置される必要も無い。例えば、独立解析装置は、コントローラ１の外部に配設されてＣＰＵ２に従属的に通信接続される別のＣＰＵであってもよい。さらに、制御対象は、サーボモータ８、８Ａ、８Ｂに限定されず、例えば、Ｘ−Ｙ軸駆動機構に組み込まれたリニアモータであってもよい。本発明は、その他にも様々な変形や応用が可能である。
【符号の説明】
【００６６】
１、１０：部品実装機のコントローラ
２：ＣＰＵ（制御実行装置）    ３：ホストメモリ（制御実行装置）
４：チップセット    ５：バス
６：フィールドプログラマブルゲートアレイ（独立解析装置）
７：記憶部
８：Ｙ軸サーボモータ
８１：モータ本体    ８２：エンコーダ    ８３：サーボアンプ    ８４：動力線
８５：エンコーダ線    ８６：サーボネットワーク
８Ａ、８Ｂ：サーボモータ
９：部品実装機    ９４：部品移載装置    ９４３：Ｙ軸ねじ送り機構
９４４：Ｙ軸スライダ
【図１】
2015185586.tif 000003
【図２】
2015185586.tif 000004
【図３】
2015185586.tif 000005
【図４】
2015185586.tif 000006
【図５】
2015185586.tif 000007
【図６】
2015185586.tif 000008
【図７】
2015185586.tif 000009