(57)【要約】      （修正有）【課題】工作機械に異常が発生した場合でもＡＴＣを駆動し続けることが可能な技術を提供する。【解決手段】工作機械は、第１，第２の工具を交換する工具交換機構とを備える。工具交換機構は、第１，第２の工具を把持するアームを含む。工作機械は、異常を検知する異常検知部２５２、３５２と、アームに係る所定の動作設定に従って、第１，第２の工具の交換処理を実行する駆動制御部３５３とを備える。交換処理は、予め定められた位置で待機しているアームを駆動し、第１，第２の工具を交換する処理と、第１，第２の工具の交換が完了したことに基づいて、予め定められた位置にアームを戻す処理と、異常検知部によって異常が検知された後の所定のタイミングにおいて、動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、当該変更後における、アームの駆動工程の一部または全部において、動作設定を第２の設定に維持する処理とを含む。【選択図】図６
2020175481.tif 000002
【特許請求の範囲】
【請求項１】
工作機械であって、
複数の工具を保持するためのマガジンと、
前記複数の工具の内の一の工具が装着され得る主軸と、
前記主軸に装着されている第１の工具と、前記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備え、前記工具交換機構は、前記第１の工具および前記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含み、さらに、
前記工作機械に発生する異常を検知するための異常検知部と、
前記アームに係る所定の動作設定に従って、前記第１の工具および前記第２の工具の交換処理を実行するための駆動制御部とを備え、
前記交換処理は、
予め定められた位置で待機している前記アームを駆動し、前記第１の工具および前記第２の工具を交換する処理と、
前記第１の工具および前記第２の工具の交換が完了したことに基づいて、前記予め定められた位置に前記アームを戻す処理と、
前記異常検知部によって異常が検知された後の所定のタイミングにおいて、前記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、当該変更後における、前記アームの駆動工程の一部または全部において、前記動作設定を前記第２の設定に維持する処理とを含む、工作機械。
【請求項２】
前記所定のタイミングは、前記アームが前記予め定められた位置にあるときのいずれかのタイミングであり、
前記駆動制御部は、前記所定のタイミングにおいて前記動作設定を前記第１の設定から前記第２の設定に変更した後には、前記アームの駆動工程の全部において、前記動作設定を前記第２の設定に維持する、請求項１に記載の工作機械。
【請求項３】
前記駆動制御部は、前記アームの一の駆動工程において前記異常検知部によって異常が検知された場合には、当該異常の検知後における前記一の駆動工程において前記動作設定を前記第２の設定に維持し、前記一の駆動工程とは異なる他の駆動工程において前記動作設定を前記第１の設定に維持する、請求項１に記載の工作機械。
【請求項４】
前記第２の設定による前記アームの移動速度は、前記第１の設定による前記アームの移動速度よりも遅い、請求項１〜３のいずれか１項に記載の工作機械。
【請求項５】
前記第２の設定による前記アームの軌道は、前記第１の設定による前記アームの軌道とは異なる、請求項１〜４のいずれか１項に記載の工作機械。
【請求項６】
前記異常検知部は、前記アームの現在位置と、前記アームの移動先である目標位置との差が所定値以上になったことに基づいて、前記異常を検知する、請求項１〜５のいずれか１項に記載の工作機械。
【請求項７】
前記異常検知部は、前記工作機械に発生する複数種類の異常を検知可能に構成されており、
前記交換処理は、さらに、前記工作機械に発生し得る異常の種類に対応付けられている予め定められた複数種類の動作設定の中から、前記異常検知部によって検知された異常の種類に対応する動作設定を特定し、当該特定した動作設定を前記第２の設定として決定する処理を含む、請求項１〜６のいずれか１項に記載の工作機械。
【請求項８】
工作機械の制御方法であって、
前記工作機械は、
複数の工具を保持するためのマガジンと、
前記複数の工具の内の一の工具が装着され得る主軸と、
前記主軸に装着されている第１の工具と、前記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備え、前記工具交換機構は、前記第１の工具および前記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含み、
前記制御方法は、
前記工作機械に発生する異常を検知するステップと、
前記アームに係る所定の動作設定に従って、前記第１の工具および前記第２の工具の交換処理を実行するステップを備え、
前記交換処理は、
予め定められた位置で待機している前記アームを駆動し、前記第１の工具および前記第２の工具を交換するステップと、
前記第１の工具および前記第２の工具の交換が完了したことに基づいて、前記予め定められた位置に前記アームを戻すステップと、
前記検知するステップで前記異常が検知された後の所定のタイミングにおいて、前記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、前記動作設定の変更後における前記アームの駆動工程の一部または全部において前記第２の設定を維持するステップとを含む、制御方法。
【請求項９】
工作機械の制御プログラムであって、
前記工作機械は、
複数の工具を保持するためのマガジンと、
前記複数の工具の内の一の工具が装着され得る主軸と、
前記主軸に装着されている第１の工具と、前記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備え、前記工具交換機構は、前記第１の工具および前記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含み、
前記制御プログラムは、前記工作機械に、
前記工作機械に発生する異常を検知するステップと、
前記アームに係る所定の動作設定に従って、前記第１の工具および前記第２の工具の交換処理を実行するステップとを実行させ、
前記交換処理は、
予め定められた位置で待機している前記アームを駆動し、前記第１の工具および前記第２の工具を交換するステップと、
前記第１の工具および前記第２の工具の交換が完了したことに基づいて、前記予め定められた位置に前記アームを戻すステップと、
前記検知するステップで前記異常が検知された後の所定のタイミングにおいて、前記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、前記動作設定の変更後における前記アームの駆動工程の一部または全部において前記第２の設定を維持するステップとを含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工作機械に備えられるＡＴＣ（Automatic Tool Changer）を制御するための技術に関する。
【背景技術】
【０００２】
近年、自動工具交換装置（ＡＴＣ）を備えた工作機械が普及している。工作機械には、複数の工具を収納するためのマガジンが設けられている。ＡＴＣは、マガジンに収納されている工具の中から加工工程に応じた一の工具を選択し、主軸に装着されている工具（以下、「使用済工具」ともいう。）と、マガジンから選択された一の工具（以下、「次使用工具」ともいう。）とを自動で交換する。工具の交換は、たとえば、使用済工具と次使用工具とを同時に把持することができるアームを用いて行われる。
【０００３】
より具体的には、ＡＴＣは、工具の交換指示を受けるまでは所定の原点位置にアームを待機させておく。そして、ＡＴＣは、工具の交換指示を受けたことに基づいて、主軸に装着されている使用済工具をアームの第１把持部に把持させ、マガジンから選択された次使用工具をアームの第２把持部に把持させる。次に、ＡＴＣは、使用済工具を主軸から引き抜き、次使用工具をマガジンから引き抜く。その後、ＡＴＣは、アームを半回転する。継いて、ＡＴＣは、第２把持部に把持されている次使用工具を主軸に装着するとともに、第１把持部に把持されている使用済工具をマガジンに収納する。それが完了すると、ＡＴＣは、上記原点位置にアームを戻す。これらの一連の工程が繰り返されることで、工具が加工工程に応じて順次変えられる。
【０００４】
このようなＡＴＣに関し、特開２０１７−０６４８４２号公報（特許文献１）は、異常の発生により正規の動作経路から外れた位置に停止したアームを自動的に原点位置に復帰させることができる工具交換装置を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−０６４８４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
異常が発生した場合に、アームが原点位置に自動的に戻されたとしても、根本的な原因が解決されていなければ、ＡＴＣは、再稼働後に再び停止してしまう可能性がある。
【０００７】
また、工作機械内のＡＴＣが停止すると、その影響が生産ライン全体に及ぶ。これにより、生産性が低下してしまうため、生産ラインは、可能な限り停止させないことが求められている。
【０００８】
異常の発生原因によっては、ＡＴＣが駆動している間に解決するものがある。一例として、異常の発生原因が工具の引っかかりに起因する場合、駆動過程で引っかかりが解消することがある。このような場合には、ＡＴＣを駆動し続けることで、異常発生の根本的な原因が解決し、さらには、生産ラインを停止させずに済む。したがって、工作機械に異常が発生した場合でも可能な限りＡＴＣを駆動し続けることが望まれている。
【課題を解決するための手段】
【０００９】
本開示の一例では、工作機械は、複数の工具を保持するためのマガジンと、上記複数の工具の内の一の工具が装着され得る主軸と、上記主軸に装着されている第１の工具と、上記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備える。上記工具交換機構は、上記第１の工具および上記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含む。上記工作機械は、さらに、上記工作機械に発生する異常を検知するための異常検知部と、上記アームに係る所定の動作設定に従って、上記第１の工具および上記第２の工具の交換処理を実行するための駆動制御部とを備える。上記交換処理は、予め定められた位置で待機している上記アームを駆動し、上記第１の工具および上記第２の工具を交換する処理と、上記第１の工具および上記第２の工具の交換が完了したことに基づいて、上記予め定められた位置に上記アームを戻す処理と、上記異常検知部によって異常が検知された後の所定のタイミングにおいて、上記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、当該変更後における、上記アームの駆動工程の一部または全部において、上記動作設定を上記第２の設定に維持する処理とを含む。
【００１０】
本開示の一例では、上記所定のタイミングは、上記アームが上記予め定められた位置にあるときのいずれかのタイミングである。上記駆動制御部は、上記所定のタイミングにおいて上記動作設定を上記第１の設定から上記第２の設定に変更した後には、上記アームの駆動工程の全部において、上記動作設定を上記第２の設定に維持する。
【００１１】
本開示の一例では、上記駆動制御部は、上記アームの一の駆動工程において上記異常検知部によって異常が検知された場合には、当該異常の検知後における上記一の駆動工程において上記動作設定を上記第２の設定に維持し、上記一の駆動工程とは異なる他の駆動工程において上記動作設定を上記第１の設定に維持する。
【００１２】
本開示の一例では、上記第２の設定による上記アームの移動速度は、上記第１の設定による上記アームの移動速度よりも遅い。
【００１３】
本開示の一例では、上記第２の設定による上記アームの軌道は、上記第１の設定による上記アームの軌道とは異なる。
【００１４】
本開示の一例では、上記異常検知部は、上記アームの現在位置と、上記アームの移動先である目標位置との差が所定値以上になったことに基づいて、上記異常を検知する。
【００１５】
本開示の一例では、上記異常検知部は、上記工作機械に発生する複数種類の異常を検知可能に構成されている。上記交換処理は、さらに、上記工作機械に発生し得る異常の種類に対応付けられている予め定められた複数種類の動作設定の中から、上記異常検知部によって検知された異常の種類に対応する動作設定を特定し、当該特定した動作設定を上記第２の設定として決定する処理を含む。
【００１６】
本開示の他の例では、工作機械の制御方法が提供される。上記工作機械は、複数の工具を保持するためのマガジンと、上記複数の工具の内の一の工具が装着され得る主軸と、上記主軸に装着されている第１の工具と、上記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備える。上記工具交換機構は、上記第１の工具および上記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含む。上記制御方法は、上記工作機械に発生する異常を検知するステップと、上記アームに係る所定の動作設定に従って、上記第１の工具および上記第２の工具の交換処理を実行するステップを備える。上記交換処理は、予め定められた位置で待機している上記アームを駆動し、上記第１の工具および上記第２の工具を交換するステップと、上記第１の工具および上記第２の工具の交換が完了したことに基づいて、上記予め定められた位置に上記アームを戻すステップと、上記検知するステップで上記異常が検知された後の所定のタイミングにおいて、上記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、上記動作設定の変更後における上記アームの駆動工程の一部または全部において上記第２の設定を維持するステップとを含む。
【００１７】
本開示の他の例では、工作機械の制御プログラムが提供される。上記工作機械は、複数の工具を保持するためのマガジンと、上記複数の工具の内の一の工具が装着され得る主軸と、上記主軸に装着されている第１の工具と、上記複数の工具から選択された第２の工具とを交換するための工具交換機構とを備える。上記工具交換機構は、上記第１の工具および上記第２の工具の交換時に当該第１の工具および当該第２の工具を把持するためのアームを含む。上記制御プログラムは、上記工作機械に、上記工作機械に発生する異常を検知するステップと、上記アームに係る所定の動作設定に従って、上記第１の工具および上記第２の工具の交換処理を実行するステップとを実行させる。上記交換処理は、予め定められた位置で待機している上記アームを駆動し、上記第１の工具および上記第２の工具を交換するステップと、上記第１の工具および上記第２の工具の交換が完了したことに基づいて、上記予め定められた位置に上記アームを戻すステップと、上記検知するステップで上記異常が検知された後の所定のタイミングにおいて、上記動作設定を現在の第１の設定から異常動作時用の第２の設定に変更し、上記動作設定の変更後における上記アームの駆動工程の一部または全部において上記第２の設定を維持するステップとを含む。
【００１８】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】実施の形態に従う工作機械の内部構造の一例を示す図である。
【図２】実施の形態に従う工作機械の制御機構の一例を示す図である。
【図３】工具の交換処理過程における、アームの進退位置の時間的変化と、アームの旋回角度の時間的変化とを示す図である。
【図４】工具の交換処理過程におけるアームの各駆動工程をＹ方向およびＺ方向のそれぞれから時系列に示す図である。
【図５】工具の交換処理過程におけるアームの各駆動工程をＹ方向およびＺ方向のそれぞれから時系列に示す図である。
【図６】アーム動作設定の変更処理を実現するための機能構成の一例を示す図である。
【図７】アーム動作設定の変更方法の具体例１を示す図である。
【図８】アーム動作設定の変更方法の具体例２を示す図である。
【図９】正常動作設定および異常動作設定のそれぞれによるアームの駆動態様の具体例１を示す図である。
【図１０】正常動作設定および異常動作設定のそれぞれによるアームの駆動態様の具体例２を示す図である。
【図１１】ＡＴＣ制御ユニットの主要なハードウェア構成を示すブロック図である。
【図１２】工具交換処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００２１】
＜Ａ．工作機械１００の構成＞
図１を参照して、工作機械１００の構成について説明する。図１は、工作機械１００の内部構造の一例を示す図である。
【００２２】
図１には、マシニングセンタとしての工作機械１００が示されている。以下では、マシニングセンタとしての工作機械１００について説明するが、工作機械１００は、マシニングセンタに限定されない。たとえば、工作機械１００は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。また、工作機械１００は、工具が鉛直方向に取り付けられる縦形のマシニングセンタであってもよいし、工具が水平方向に取り付けられる横形のマシニングセンタであってもよい。
【００２３】
工作機械１００は、主軸頭２１を有する。主軸頭２１は、主軸２２と、ハウジング２３とで構成されている。主軸２２は、ハウジング２３の内部に配置されている。主軸２２には、被加工物であるワークを加工するための工具が装着される。図２の例では、エンドミルとしての工具３２が主軸２２に装着されている。
【００２４】
主軸頭２１は、ボールねじ２５に沿ってＺ軸方向に駆動可能に構成されている。ボールねじ２５にはサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ２５を駆動することで主軸頭２１を移動させ、Ｚ軸方向の任意の位置に主軸頭２１を移動する。
【００２５】
また、主軸２２にはサーボモータなどの駆動機構が接続される。当該駆動機構は、Ｚ軸方向（鉛直方向）に平行な中心軸ＡＸ１を中心に主軸２２を回転駆動する。その結果、主軸２２に装着された工具３２は、主軸２２の回転に伴って中心軸ＡＸ１を中心に回転する。なお、工作機械１００が旋盤である場合には、主軸２２には、ワークが装着される。この場合、主軸２２の回転に伴って、主軸２２に装着されたワークが回転する。
【００２６】
工作機械１００は、さらに、ＡＴＣ３０を有する。ＡＴＣ３０は、マガジン３１と、押出し機構３３と、アーム３６とで構成されている。マガジン３１は、ワークを加工するための種々の工具３２を収容するための装置である。マガジン３１は、複数の工具保持部３４と、スプロケット３５とで構成されている。
【００２７】
工具保持部３４は、種々の工具３２を保持可能なように構成されている。複数の工具保持部３４は、スプロケット３５の周囲に環状に配列されている。スプロケット３５は、モータ駆動により、Ｘ軸に平行な中心軸ＡＸ２を中心に回転可能に設けられている。スプロケット３５の回転に伴って、複数の工具保持部３４が中心軸ＡＸ２を中心に回転移動する。
【００２８】
ＡＴＣ３０は、工具の交換命令を受けたことに基づいて、マガジン３１から装着対象の工具３２を抜き取り、当該工具３２を主軸２２に装着する。より具体的には、ＡＴＣ３０は、目的の工具３２を保持する工具保持部３４を押出し機構３３の前に移動する。次に、押出し機構３３は、アーム３６による交換位置に向けて目的の工具３２を押し出す。その後、アーム３６は、次に使用される工具３２を工具保持部３４から抜き取るとともに、使用済の工具３２を主軸２２から抜き取る。その後、アーム３６は、これらの工具３２を保持した状態で半回転し、次に使用される工具３２を主軸２２に装着するとともに、使用済の工具３２を工具保持部３４に収容する。これにより、工具３２の交換が行われる。
【００２９】
工作機械１００は、加工対象のワークをＸＹ平面上で移動するための移動機構５０をさらに有する。移動機構５０は、ガイド５１，５３と、ボールねじ５２，５４と、ワークを保持するためのテーブル５５（ワーク保持部）とで構成されている。
【００３０】
ガイド５１は、Ｙ軸に対して平行に設置されている。ガイド５３は、ガイド５１上に設けられており、Ｘ軸に対して平行に設置されている。ガイド５３は、ガイド５１に沿って駆動可能に構成されている。テーブル５５は、ガイド５３上に設けられており、ガイド５３に沿って駆動可能に構成されている。
【００３１】
ボールねじ５２にはサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ５２を駆動することでガイド５３をガイド５１に沿って移動し、Ｙ軸方向の任意の位置にガイド５３を移動する。同様に、ボールねじ５４にもサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ５４を駆動することでテーブル５５をガイド５３に沿って移動し、Ｘ軸方向の任意の位置にテーブル５５を移動する。すなわち、工作機械１００は、ボールねじ５２，５４のそれぞれに接続される駆動機構を協働して制御することで、ＸＹ平面上の任意の位置にテーブル５５を移動する。これにより、工作機械１００は、テーブル５５上で保持されるワークをＸＹ平面上で移動させながら加工を行うことができる。
【００３２】
主軸頭２１には、圧力センサ１１０が設けられている。圧力センサ１１０は、主軸２２や工具３２にかかる負荷を検知する。
【００３３】
＜Ｂ．工作機械１００の制御機構＞
図２は、工作機械１００の制御機構の一例を示す図である。図２を参照して、工作機械１００の制御機構の一例について説明する。
【００３４】
図２に示されるように、工作機械１００は、ＰＬＣ（Programmable Logic Controller）２０と、ＡＴＣ３０と、センシング部４０とを含む。
【００３５】
ＰＬＣ２０およびＡＴＣ３０は、ネットワークＮＷに接続される。ネットワークＮＷには、データの到達時間が保証される、定周期通信を行うフィールドネットワークを採用することが好ましい。このような定周期通信を行うフィールドネットワークとして、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣＣ−Ｌｉｎｋ（登録商標）、またはＣｏｍｐｏＮｅｔ（登録商標）などが採用される。
【００３６】
ＡＴＣ３０は、アーム３６と、ＡＴＣ制御ユニット３００と、２軸アンプ３５０と、サーボモータ３６０Ａ，３６０Ｂとを含む。ＡＴＣ制御ユニット３００は、２軸アンプ３５０と通信可能に構成される。ＡＴＣ制御ユニット３００および２軸アンプ３５０は、有線で通信接続されてもよいし、無線で通信接続されてもよい。サーボモータ３６０Ａは、進退方向ＤＡにアーム３６を駆動する。サーボモータ３６０Ｂは、回転方向ＤＢにアーム３６を駆動する。
【００３７】
ＡＴＣ制御ユニット３００は、ＰＬＣ２０から受信した制御指令に基づいて、２軸アンプ３５０に指令値を送る。ＰＬＣ２０がＡＴＣ制御ユニット３００に出力する制御指令は、たとえば、アーム３６の前進または後退を示す指令や、アーム３６の正転または逆転を示す指令や、アーム３６の駆動速度（たとえば、高速または低速など）を示す指令などを含む。
【００３８】
ＡＴＣ制御ユニット３００は、このような大まかな制御指令をＰＬＣ２０から受けて、より細かな動作指令を生成し、生成した動作指令を２軸アンプ３５０に出力する。これにより、ＡＴＣ制御ユニット３００は、進退方向ＤＡにおけるアーム３６の位置（以下、「進退位置」ともいう。）と、回転方向ＤＢにおけるアーム３６の角度（以下、「旋回角度」ともいう。）とを任意に調整する。
【００３９】
より具体的には、ＡＴＣ制御ユニット３００は、ＰＬＣ２０から受けた制御指令に基づいて、進退方向ＤＡにおけるアーム３６の軌道と、回転方向ＤＢにおけるアーム３６の軌道とを生成する。進退方向ＤＡにおける軌道とは、所定時間ごとのアーム３６の目標進退位置を意味する。回転方向ＤＢにおける軌道とは、所定時間ごとのアーム３６の目標回転角度を意味する。ＡＴＣ制御ユニット３００は、アーム３６の進退位置を現在の目標進退位置に近付けるための進退動作指令を生成するとともに、アーム３６の旋回角度を現在の目標旋回角度に近付けるための回転動作指令を生成する。進退動作指令および回転動作指令は、一定周期ごとに生成され、２軸アンプ３５０に順次出力される。
【００４０】
２軸アンプ３５０は、ＡＴＣ制御ユニット３００から受けた進退動作指令に応じて電気信号を生成し、当該電気信号を進退用のサーボモータ３６０Ａに出力する。これにより、サーボモータ３６０Ａは、目標進退位置に向けてアーム３６を駆動する。サーボモータ３６０Ａには、エンコーダ（図示しない）が取り付けられており、２軸アンプ３５０は、当該エンコーダのフィードバック信号からアーム３６の実進退位置を算出する。算出した実進退位置は、ＡＴＣ制御ユニット３００にフィードバックされる。ＡＴＣ制御ユニット３００は、当該実進退位置を目標進退位置に近付けるための進退動作指令を生成し、当該進退動作指令を２軸アンプ３５０に再び出力する。このように、ＡＴＣ制御ユニット３００は、アーム３６の実進退位置のフィードバックを逐次的に受けながらアーム３６の進退位置を任意の目標進退位置に近付ける。
【００４１】
２軸アンプ３５０は、ＡＴＣ制御ユニット３００から受けた回転動作指令に応じて電気信号を生成し、当該電気信号を回転用のサーボモータ３６０Ｂに出力する。これにより、サーボモータ３６０Ｂは、目標旋回角度に向けてアーム３６を駆動する。サーボモータ３６０Ｂには、エンコーダ（図示しない）が取り付けられており、２軸アンプ３５０は、当該エンコーダのフィードバック信号からアーム３６の実旋回角度を算出する。算出した実旋回角度は、ＡＴＣ制御ユニット３００にフィードバックされる。ＡＴＣ制御ユニット３００は、当該実旋回角度を目標旋回角度に近付けるための回転動作指令を生成し、当該回転動作指令を２軸アンプ３５０に再び出力する。このように、ＡＴＣ制御ユニット３００は、アーム３６の実旋回角度のフィードバックを逐次的に受けながらアーム３６の旋回角度を任意の目標旋回角度に近付ける。
【００４２】
センシング部４０は、リモートＩ／Ｏユニット４１と、各種センサ４２とを含む。各種センサ４２は、工作機械１００内の異常を検知するために設けられる。各種センサ４２の具体例については後述する。リモートＩ／Ｏユニット４１は、工作機械１００内の各種センサ４２と、ＰＬＣ２０との間のデータのやり取りを仲介する。各種センサ４２の検出値は、リモートＩ／Ｏユニット４１介してＰＬＣ２０に一定周期ごとに送られる。
【００４３】
＜Ｃ．アーム３６の駆動工程＞
図３〜図５を参照して、工具の交換処理時におけるアーム３６の駆動工程について説明する。図３は、工具の交換処理過程における、アーム３６の進退位置の時間的変化と、アーム３６の旋回角度の時間的変化とを示す図である。図４および図５は、工具の交換処理過程におけるアーム３６の各駆動工程をＹ方向およびＺ方向のそれぞれから時系列に示す図である。
【００４４】
以下では、説明の便宜のために、現在の加工工程において加工が完了した工具であって、主軸２２に装着されている工具を「使用済工具」ともいう。また、次の加工工程おいて使用するためにマガジン３１から選択された一の工具を「次使用工具」ともいう。
【００４５】
ＡＴＣ３０は、図３〜図５に示されるステップＳ１〜Ｓ７の駆動工程を順に実行することにより、使用済工具３２Ａと次使用工具３２Ｂとの交換処理を実現する。
【００４６】
より具体的には、時刻Ｔ０において、アーム３６は、予め定められた原点位置に待機している。当該初期位置は、ＡＴＣ３０の制御プログラムに規定されていてもよいし、当該制御プログラムによって読み込まれる設定ファイルに規定されていてもよい。一例として、当該原点位置は、アーム３６の旋回角度と、アーム３６の進退位置とで定義される。図３の例では、旋回角度「０度」および進退位置「ｚ０」がアーム３６の原点位置として示されている。
【００４７】
時刻Ｔ０において、ＡＴＣ３０は、使用済工具３２Ａと次使用工具３２Ｂと交換するための指示をＰＬＣ２０から受けたとする。このことに基づいて、ＡＴＣ３０は、ステップＳ１の処理の実行を開始する。
【００４８】
時刻Ｔ０から時刻Ｔ１までのステップＳ１において、ＡＴＣ３０は、アーム３６の目標旋回角度を「９０度」に設定し、Ｚ方向の軸ＡＸを中心にアーム３６を回転駆動する。これにより、アーム３６の旋回角度は、「０度」から「９０度」に変化する。
【００４９】
時刻Ｔ１から時刻Ｔ２までのステップＳ２において、ＡＴＣ３０は、アーム３６の第１把持部３６Ａに使用済工具３２Ａを把持させ、アーム３６の第２把持部３６Ｂに次使用工具３２Ｂを把持させる。各工具の把持が完了したか否かは、第１把持部３６Ａ用の第１把持完了フラグと、第２把持部３６Ｂ用の第１把持完了フラグとに基づいて判断される。各工具の把持が完了した場合には、第１，第２把持完了フラグの値がＰＬＣ２０によって更新される。第１，第２把持完了フラグは、ＡＴＣ３０の制御プログラムによって参照される。ＡＴＣ３０は、使用済工具３２Ａおよび次使用工具３２Ｂの把持が完了したことを第１，第２把持完了フラグが示す場合には、駆動工程をステップＳ３に進める。
【００５０】
時刻Ｔ２から時刻Ｔ３までのステップＳ３において、ＡＴＣ３０は、アーム３６の目標進退位置を「ｚ１」に設定し、アーム３６をＺ方向に駆動する。これにより、アーム３６の進退位置は、「ｚ０」から「ｚ１」に変化する。これにより、使用済工具３２Ａが主軸２２から取り外され、かつ、次使用工具３２Ｂがマガジン３１の工具保持部３４から取り外される。
【００５１】
時刻Ｔ３から時刻Ｔ４までのステップＳ４において、ＡＴＣ３０は、アーム３６の目標旋回角度を「２７０度」に設定し、Ｚ方向の軸ＡＸを中心にアーム３６を回転駆動する。これにより、アーム３６の旋回角度は、「９０度」から「２７０度」に変化する。結果として、アーム３６は、半回転する。アーム３６が半回転することで、使用済工具３２Ａの位置と次使用工具３２Ｂの位置とが入れ替わる。
【００５２】
時刻Ｔ４から時刻Ｔ５までのステップＳ５において、ＡＴＣ３０は、アーム３６の目標進退位置を「ｚ０」に設定し、アーム３６をＺ方向に駆動させる。これにより、アーム３６の進退位置は、「ｚ１」から「ｚ０」に後退する。
【００５３】
時刻Ｔ５から時刻Ｔ６までのステップＳ６において、ＡＴＣ３０は、アーム３６の第１把持部３６Ａによる使用済工具３２Ａの把持を解除し、使用済工具３２Ａをマガジン３１に収納する。並行して、ＡＴＣ３０は、アーム３６の第２把持部３６Ｂによる次使用工具３２Ｂの把持を解除し、次使用工具３２Ｂを主軸２２に装着する。使用済工具３２Ａの収納が完了したか否か、および、次使用工具３２Ｂの装着が完了したか否かは、上述の第１，第２把持完了フラグによって判断される。ＡＴＣ３０は、使用済工具３２Ａの収納と、次使用工具３２Ｂの装着とが完了したことに基づいて、駆動工程をステップＳ６に進める。
【００５４】
時刻Ｔ６から時刻Ｔ７までのステップＳ７において、ＡＴＣ３０は、アーム３６の目標旋回角度を「１８０度」に設定し、Ｚ方向の軸ＡＸを中心にアーム３６を回転駆動する。これにより、アーム３６の旋回角度は、「２７０度」から「１８０度」に変化する。
【００５５】
以上のようなステップＳ１〜Ｓ７の駆動工程により、使用済工具３２Ａと次使用工具３２Ｂとの交換処理が実現される。
【００５６】
なお、ステップＳ７の駆動工程が完了した時点では、アーム３６は、原点位置と比較して、半回転した状態（すなわち、旋回角度が１８０度となっている状態）になっている。そのため、ＡＴＣ３０は、ステップＳ７の駆動工程が完了した時点のアーム３６の旋回角度を新たな原点位置として認識し、その上で次の工具の交換指示を受ける。すなわち、ＡＴＣ３０は、ステップＳ７の駆動工程が完了した時点の旋回角度を次の新たな交換過程では原点位置（すなわち、０度）として認識する。その上で、ステップＳ１〜Ｓ７の一連の駆動工程が繰り返されることで、工具の交換処理が連続的に実現される。
【００５７】
＜Ｄ．工作機械１００の機能構成＞
通常、何らかの異常が工作機械１００に発生した場合、工作機械１００は、ＡＴＣ３０の駆動を停止する。しかしながら、ＡＴＣ３０を停止させると、その影響が生産ライン全体に及んでしまい、生産性が低下してしまう。したがって、生産ラインは、可能な限り停止させないことが求められている。
【００５８】
異常が発生したとしても、警告程度の異常である場合には、工作機械１００（ＡＴＣ３０）を駆動し続けても問題ない場合がある。また、異常の発生原因によっては、ＡＴＣ３０が駆動している間に解決するものがある。一例として、異常の発生原因が工具の引っかかりに起因する場合、ＡＴＣ３０を駆動し続けることで工具の引っかかりが解消することがある。
【００５９】
そこで、本実施の形態に従う工作機械１００は、アーム３６の駆動に係る動作設定（以下、「アーム動作設定」ともいう。）を複数保持しておく。保持するアーム動作設定は、正常動作時用のアーム動作設定（以下、「正常動作設定」ともいう。）と、異常発生時用のアーム動作設定（以下、「異常動作設定」ともいう。）とを少なくとも含む。ＡＴＣ制御ユニット３００は、工作機械１００に異常が発生した場合には、異常が検知された後の所定のタイミングにおいて、アーム動作設定を正常動作設定（第１の設定）から異常動作設定（第２の設定）に変更する。このとき、ＡＴＣ制御ユニット３００は、アーム３６の駆動工程の全部について異常動作設定を適用してもよいし、アーム３６の駆動工程の一部について異常動作設定を適用してもよい。そして、ＡＴＣ制御ユニット３００は、アーム動作設定の変更後においては、アーム３６の駆動工程の一部または全部において、アーム動作設定を異常動作設定に維持する。
【００６０】
これにより、ＡＴＣ制御ユニット３００は、工作機械１００の異常発生時において、正常動作設定よりも安全な異常動作設定でアーム３６を駆動し続けることができる。アーム３６を駆動し続けると、工具の引っかかりが解消することがある。また、ＡＴＣ制御ユニット３００は、ＡＴＣ３０を停止させないので、生産ラインを停止させずに済む。結果として、ＡＴＣ制御ユニット３００は、安全性と生産性とを両立することができる。
【００６１】
以下では、図６を参照して、アーム動作設定の変更処理を実現するための機能構成について説明する。図６は、アーム動作設定の変更処理を実現するための機能構成の一例を示す図である。
【００６２】
図６に示されるように、工作機械１００は、制御機構として、ＰＬＣ２０と、ＡＴＣ制御ユニット３００とを含む。ＰＬＣ２０は、異常検知部２５２を含む。ＡＴＣ制御ユニット３００は、異常検知部３５２と、駆動制御部３５３とを含む。駆動制御部３５３は、動作設定部３５４と、指令出力部３５６とを含む。
【００６３】
以下では、異常検知部２５２，３５２、動作設定部３５４、および指令出力部３５６の機能について順に説明する。
【００６４】
（Ｄ１．異常検知部２５２，３５２）
工作機械１００は、工作機械１００内で発生する種々の異常を検知することができる。そのための機能構成の一例として、工作機械１００は、異常検知部２５２と、異常検知部３５２とを含む。
【００６５】
異常検知部２５２は、ＰＬＣ２０に発生する異常を検知する。ある局面において、異常検知部２５２は、停電を検知する。より具体的には、工作機械１００には、停電検知回路が搭載されている。当該停電検知回路は、上述の各種センサ４２（図２参照）の一例である。ＰＬＣ２０は、上述のリモートＩ／Ｏユニット４１（図２参照）を介して停電検知回路の出力信号を一定周期ごとに受ける。ＰＬＣ２０の異常検知部２５２は、停電が発生したことを示す出力信号を停電検知回路から受けた場合、停電発生を示す異常をＡＴＣ制御ユニット３００に出力する。
【００６６】
他の局面において、異常検知部２５２は、地震を検知する。より具体的には、工作機械１００には、工作機械１００の揺れを検知するための地震検知センサ（たとえば、加速度センサなど）が搭載されている。当該地震検知センサは、上述の各種センサ４２の一例である。ＰＬＣ２０は、上述のリモートＩ／Ｏユニット４１を介して地震検知センサの出力信号を一定周期ごとに受ける。ＰＬＣ２０の異常検知部２５２は、地震が発生したことを示す出力信号を地震検知センサから受けた場合、地震発生を示す異常をＡＴＣ制御ユニット３００に出力する。
【００６７】
他の局面において、異常検知部２５２は、工具にかかる負荷異常を検知する。より具体的には、工作機械１００には、主軸２２と工具との装着部分や、アーム３６と工具との装着部分に設けられている圧力センサが搭載されている。当該圧力センサは、上述の各種センサ４２の一例である。圧力センサは、工具にかかる負荷を示す圧力値を出力する。ＰＬＣ２０は、上述のリモートＩ／Ｏユニット４１を介して圧力センサの出力信号を一定周期ごとに受ける。ＰＬＣ２０の異常検知部２５２は、圧力センサによって検知される圧力値が所定値以上である場合に、過負荷を示す異常をＡＴＣ制御ユニット３００に出力する。
【００６８】
異常検知部３５２は、ＡＴＣ３０に発生する異常を検知する。一例として、異常検知部３５２は、ＡＴＣ３０に発生している引っかかりを検知する。検知可能な引っかかりは、たとえば、アーム３６に対する工具の引っかかりや、アーム３６の駆動部分における引っかかりなどを含む。
【００６９】
ある局面において、異常検知部３５２は、アーム３６の目標進退位置を指令出力部３５６から定期的に受けるとともに、アーム３６の実進退位置を２軸アンプ３５０から定期的に受ける。目標進退位置および実進退位置については図２で説明した通りであるので、それらの説明については繰り返さない。油の固着などに起因する何らかの引っかかりがＡＴＣ３０に発生している場合には、目標進退位置と実進退位置との差が徐々に大きくなる。この点に着目して、異常検知部３５２は、目標進退位置と実進退位置との差が所定値以上になったことに基づいて、引っかかり示す異常を検知する。検知された異常は、動作設定部３５４に出力される。
【００７０】
他の局面において、異常検知部３５２は、アーム３６の目標回転角度を指令出力部３５６から定期的に受けるとともに、アーム３６の実回転角度を２軸アンプ３５０から定期的に受ける。目標回転角度および実回転角度については図２で説明した通りであるので、それらの説明については繰り返さない。油の固着などに起因する何らかの引っかかりがＡＴＣ３０に発生している場合には、目標回転角度と実回転角度との差が徐々に大きくなる。この点に着目して、異常検知部３５２は、目標回転角度と実回転角度との差が所定値以上になったことに基づいて、引っかかり示す異常を検知する。検知された異常は、動作設定部３５４に出力される。
【００７１】
（Ｄ２．動作設定部３５４）
次に、図６に示される動作設定部３５４の機能について説明する。
【００７２】
動作設定部３５４は、工作機械１００に発生した異常の種類に応じて、アーム３６の動作設定を切り替える。アーム動作設定の切り替えは、たとえば、状態別動作設定３２４を参照することで行われる。状態別動作設定３２４は、工作機械１００の正常状態時における正常動作設定と、異常の種別に対応付けられている異常動作設定とを含む。正常動作設定および異常動作設定は、アーム３６の駆動に係る各種の制御パラメータを規定する。当該各種の制御パラメータは、たとえば、アーム３６の移動速度や、アーム３６の回転速度や、アーム３６の目標進退位置や、アーム３６の目標旋回角度などを含む。
【００７３】
工作機械１００が正常に動作している場合には、動作設定部３５４は、状態別動作設定３２４を参照して、状態「正常」に対応付けられている正常動作設定「Ｘ」を現動作設定３２６に設定する。一方で、工作機械１００に異常が発生した場合には、動作設定部３５４は、状態別動作設定３２４に規定されている複数種類のアーム動作設定の中から、異常検知部２５２，３５２によって検知された異常の種類に対応する異常動作設定を特定し、当該異常動作設定を現動作設定３２６に設定する。
【００７４】
（Ｄ３．指令出力部３５６）
次に、図６に示される指令出力部３５６の機能について説明する。
【００７５】
指令出力部３５６は、現動作設定３２６に基づいて、アーム３６を駆動するための動作指令を生成し、当該動作指令を２軸アンプ３５０に出力する。一例として、指令出力部３５６は、アーム３６の実進退位置を目標進退位置に近付けるための進退動作指令と、アーム３６の実旋回角度を目標旋回角度に近付けるための回転動作指令とを生成し、これらの動作指令を２軸アンプ３５０に出力する。目標進退位置、目標旋回角度、実進退位置、および実旋回角度については図２で説明した通りであるので、その説明については繰り返さない。
【００７６】
また、指令出力部３５６は、目標進退位置および目標旋回角度を一定周期ごとに異常検知部３５２に出力する。
【００７７】
＜Ｅ．アーム動作設定の変更方法＞
上述のように、ＡＴＣ制御ユニット３００の駆動制御部３５３は、工作機械１００に以上が発生したことに基づいて、アーム動作設定を正常動作設定から異常動作設定に変更する。このとき、異常動作設定は、アーム３６の駆動工程の全部において適用されてもよいし、アーム３６の駆動工程の一部において適用されてもよい。
【００７８】
以下では、図７および図８を参照して、アーム３６の駆動工程の全部において異常動作設定を適用する例と、アーム３６の駆動工程の一部において異常動作設定を適用する例について説明する。
【００７９】
（Ｅ１．アーム動作設定の変更方法の具体例１）
まず、図７を参照して、アーム３６の駆動工程の全部において異常動作設定を適用する例について説明する。図７は、アーム動作設定の変更方法の具体例１を示す図である。
【００８０】
上述の図３〜図５で説明したように、駆動制御部３５３は、ステップＳ１〜Ｓ７の駆動工程を実行することで、工具の交換処理を実現する。以下では、ｎ回目の工具交換処理のステップＳ４の駆動工程において、アーム３６の引っかかりを示す異常「β」が発生した前提で説明を行う。
【００８１】
アーム動作設定がアーム３６の駆動途中に変えられると、予期しない不具合が発生する可能性があるため、駆動制御部３５３は、アーム３６が原点位置（図３参照）にあるときのいずれかのタイミング（所定のタイミング）においてアーム動作設定を変更する。図７の例では、ｎ回目の工具交換処理が完了してから、ｎ＋１回目の工具交換処理が開始されるまでの間に、アーム動作設定が変更されている。アーム３６が停止中であり、かつ、アーム３６が工具を保持していないときに、アーム動作設定が変更されることで、アーム動作設定が安全に変更される。
【００８２】
アーム動作設定の変更時において、駆動制御部３５３は、上述の状態別動作設定３２４（図６参照）に規定されている複数種類のアーム動作設定の中から、発生した異常「β」に対応する異常動作設定「Ｙ２」を特定する。本具体例においては、駆動制御部３５３は、ステップＳ１〜Ｓ７の全部の駆動工程について異常動作設定「Ｙ２」を適用する。すなわち、駆動制御部３５３は、異常「β」の発生後には、ステップＳ１〜Ｓ７の全ての駆動工程において、アーム動作設定を異常動作設定「Ｙ２」に維持する。
【００８３】
（Ｅ２．アーム動作設定の変更方法の具体例２）
次に、図８を参照して、アーム３６の駆動工程の一部において異常動作設定を適用する例について説明する。図８は、アーム動作設定の変更方法の具体例２を示す図である。
【００８４】
本具体例においても、ｎ回目の工具交換処理のステップＳ４の駆動工程において、工作機械１００に異常「β」が発生したとする。
【００８５】
異常「β」が発生した場合、駆動制御部３５３は、アーム３６が原点位置（図３参照）にあるときのいずれかのタイミング（所定のタイミング）において、アーム動作設定を変更する。図８の例では、ｎ回目の工具交換処理が完了してから、ｎ＋１回目の工具交換処理が開始されるまでの間に、アーム動作設定が変更されている。
【００８６】
このとき、本具体例においては、駆動制御部３５３は、アーム３６の駆動工程の一部について異常動作設定を適用する。より具体的には、駆動制御部３５３は、上述の状態別動作設定３２４（図６参照）に規定されている複数種類のアーム動作設定の中から、発生した異常「β」に対応する異常動作設定「Ｙ２」を特定する。本具体例においては、異常「β」が発生したステップＳ４の駆動工程において、異常動作設定「Ｙ２」が適用される。すなわち、一方で、その他のステップＳ１〜Ｓ３，Ｓ５〜Ｓ７の駆動工程においては、正常動作設定「Ｘ」が維持される。このように、駆動制御部３５３は、ある駆動工程において異常が検知された場合には、異常が発生した駆動工程についてのみ対応する異常動作設定を適用し、その他の駆動工程については正常動作設定を維持する。
【００８７】
＜Ｆ．アーム３６の駆動態様＞
次に、正常動作設定および異常動作設定のそれぞれによるアーム３６の駆動態様の具体例１〜３について説明する。
【００８８】
（Ｆ１．アーム３６の駆動態様の具体例１）
図９は、正常動作設定および異常動作設定のそれぞれによるアーム３６の駆動態様の具体例１を示す図である。
【００８９】
図９には、正常動作設定時におけるアーム３６の旋回角度の時間的変化が駆動態様ＸＡとして示されている。また、異常動作設定時におけるアーム３６の旋回角度の時間的変化が駆動態様ＹＡとして示されている。また、正常動作設定時におけるアーム３６の進退位置の時間的変化が駆動態様ＸＢとして示されている。また、異常動作設定時におけるアーム３６の進退位置の時間的変化が駆動態様ＹＢとして示されている。
【００９０】
本具体例では、アーム３６の駆動制御部３５３は、異常動作設定時には、正常動作設定時と比較して、アーム３６の移動速度を遅くする。すなわち、異常動作設定によるアーム３６の移動速度は、正常動作設定によるアーム３６の移動速度よりも遅い。図９の例では、異常動作設定時と正常動作設定時と間で、アーム３６の移動速度のみが異なり、アーム３６の軌道は同じである。このように、アーム３６の移動速度が異常発生時において下げられることで、駆動制御部３５３は、アーム３６を安全に駆動することができ、かつ、生産ラインを停止させずに済む。
【００９１】
一例として、駆動制御部３５３は、正常動作設定時におけるアーム３６の駆動速度に所定係数ｗ１（０＜ｗ１＜１）を掛けることで、アーム３６の駆動速度を正常時よりも遅くする。所定係数ｗ１は、アーム３６の駆動工程の全部に対して適用されてもよいし、アーム３６の駆動工程の一部のみに対して適用されてもよい。また、所定係数ｗ１は、進退方向ＤＡ（図２参照）の移動速度に係る動作パラメータと、回転方向ＤＢ（図２参照）の回転速度に係る動作パラメータとの両方に掛けられても良いし、いずれか一方の動作パラメータのみに掛けられても良い。
【００９２】
（Ｆ２．アーム３６の駆動態様の具体例２）
図１０は、正常動作設定および異常動作設定のそれぞれによるアーム３６の駆動態様の具体例２を示す図である。
【００９３】
図１０には、正常動作設定時におけるアーム３６の駆動態様が駆動態様ＸＣとして示されている。また、異常動作設定時におけるアーム３６の駆動態様が駆動態様ＹＣとして示されている。
【００９４】
本具体例では、アーム３６の駆動制御部３５３は、正常動作設定時と異常動作設定時とで、アーム３６の軌道を異ならせる。図１０の例では、異常動作設定時と正常動作設定時と間で、進退位置が異ならされている。
【００９５】
より具体的には、駆動制御部３５３は、正常動作設定時においては、ステップＳ３の駆動工程において、アーム３６の目標進退位置を「ｚ１」としている。これに対して、駆動制御部３５３は、異常動作設定時においては、ステップＳ３の駆動工程において、アーム３６の目標進退位置を「ｚ２」としている。「ｚ２」は、「ｚ１」よりも大きい。これにより、駆動制御部３５３は、異常動作設定時には、正常動作設定時と比較して、アーム３６をより大きく動かすこととなる。
【００９６】
一例として、駆動制御部３５３は、正常動作設定時におけるアーム３６の目標進退位置に所定係数ｗ２（１＜ｗ２）を掛けることで、アーム３６の目標進退位置をより大きくする。所定係数ｗ２は、制御プログラムに規定されるアーム３６の目標進退位置の全部に適用されてもよいし、当該目標進退位置の一部のみに適用されてもよい。
【００９７】
なお、上述では、異常動作設定時において進退位置をより大きくする例について説明を行ったが、駆動制御部３５３は、異常動作設定時において進退位置をより小さくしてもよい。
【００９８】
また、上述では、異常動作設定時において目標進退位置を変えることでアーム３６の軌道を変える例について説明を行ったが、駆動制御部３５３は、異常動作設定時において目標旋回角度を変えることでアーム３６の軌道を変えてもよい。また、駆動制御部３５３は、異常動作設定時において目標進退位置および目標旋回角度の両方を変えることでアーム３６の軌道を変えてもよい。
【００９９】
（Ｆ３．アーム３６の駆動態様の具体例３）
上述の具体例１，２では、異常動作設定時において、アーム３６の速度やアーム３６の軌道が変えられる例について説明を行ったが、その他の制御パラメータが変えられてもよい。
【０１００】
一例として、異常動作設定時においては、アーム３６の各駆動工程の間に待ち時間が設けられてもよい。各駆動工程に待ち時間が設けられることで、駆動制御部３５３は、旋回角度と進退位置とを同時に制御することを防止することができ、各駆動工程を確実に実施することが可能になる。
【０１０１】
＜Ｇ．ＡＴＣ制御ユニット３００のハードウェア構成＞
図１１を参照して、ＡＴＣ制御ユニット３００のハードウェア構成の一例について説明する。図１１は、ＡＴＣ制御ユニット３００の主要なハードウェア構成を示すブロック図である。
【０１０２】
ＡＴＣ制御ユニット３００は、プロセッサ３０１と、ＲＯＭ（Read  Only  Memory）３０２と、ＲＡＭ（Random Access Memory）３０３と、通信インターフェイス３０４，３０５と、記憶装置３２０とを含む。
【０１０３】
プロセッサ３０１は、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ（Central  Processing  Unit）、少なくとも１つのＧＰＵ（Graphics Processing Unit）、少なくとも１つのＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）、またはそれらの組み合わせなどによって構成され得る。
【０１０４】
プロセッサ３０１は、制御プログラム３２２など各種プログラムを実行することでアーム３６の駆動を制御する。プロセッサ３０１は、制御プログラム３２２の実行命令を受け付けたことに基づいて、記憶装置３２０からＲＯＭ３０２に制御プログラム３２２を読み出す。ＲＡＭ３０３は、ワーキングメモリとして機能し、制御プログラム３２２の実行に必要な各種データを一時的に格納する。
【０１０５】
通信インターフェイス３０４は、フィールドネットワークに接続するためのインターフェイスである。ＡＴＣ制御ユニット３００は、通信インターフェイス３０４をＰＬＣ２０とデータをやり取りする。
【０１０６】
通信インターフェイス３０５は、２軸アンプ３５０との通信を実現するためのインターフェイスである。ＡＴＣ制御ユニット３００および２軸アンプ３５０は、有線で通信接続されてもよいし、無線で通信接続されてもよい。
【０１０７】
記憶装置３２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置３２０は、制御プログラム３２２、上述の状態別動作設定３２４、現動作設定３２６などを格納する。記憶装置３２０に記憶される各種データの格納場所は、記憶装置３２０に限定されず、プロセッサ３０１の記憶領域（たとえば、キャッシュ領域など）、ＲＯＭ３０２、ＲＡＭ３０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【０１０８】
制御プログラム３２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う制御処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う制御プログラム３２２の趣旨を逸脱するものではない。さらに、制御プログラム３２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが制御プログラム３２２の処理の一部を実行する所謂クラウドサービスのような形態でＡＴＣ制御ユニット３００が構成されてもよい。
【０１０９】
＜Ｈ．工具交換処理のフローチャート＞
図１２を参照して、ＡＴＣ３０による工具交換処理のフローについて説明する。図１２は、工具交換処理の流れを示すフローチャートである。
【０１１０】
図１２に示される処理は、ＡＴＣ制御ユニット３００のプロセッサ３０１（図１１参照）が上述の制御プログラム３２２（図１１参照）を実行することにより実現される。他の局面において、処理の一部または全部が、回路素子またはその他のハードウェアによって実行されてもよい。
【０１１１】
ステップＳ１１０において、プロセッサ３０１は、工具の交換指示をＰＬＣ２０から受け付けたか否かを判断する。プロセッサ３０１は、工具の交換指示をＰＬＣ２０から受け付けたと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、プロセッサ３０１は、制御をステップＳ１２０に切り替える。
【０１１２】
ステップＳ１１２において、プロセッサ３０１は、上述の駆動制御部３５３（図６参照）として機能し、現動作設定３２６（図６参照）に基づいて、上述のステップＳ１〜Ｓ７（図３〜図５参照）の駆動工程を実行する。これにより、使用済工具３２Ａと次使用工具３２Ｂとの交換処理が実現される。
【０１１３】
ステップＳ１２０において、プロセッサ３０１は、工作機械１００に異常が発生しているか否かを判断する。各種の異常は、たとえば、上述の異常検知部２５２，３５２（図６参照）によって検知される。異常監視処理は、たとえば、図１２に示される各ステップの処理と並行して行われ、異常が発生した場合には、異常フラグの値が更新される。異常フラグは、異常の種別に規定され、ＰＬＣ２０やＡＴＣ制御ユニット３００によって更新される。プロセッサ３０１は、当該異常フラグを参照して、工作機械１００内に異常が発生しているか否かを判断する。プロセッサ３０１は、工作機械１００に異常が発生していると判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１２２に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、プロセッサ３０１は、制御をステップＳ１３２に切り替える。
【０１１４】
ステップＳ１２２において、プロセッサ３０１は、上述の駆動制御部３５３として機能し、上述の状態別動作設定３２４（図６参照）を参照して、検知された異常に対応付けられているアーム動作設定（すなわち、異常動作設定）を特定する。
【０１１５】
ステップＳ１２４において、プロセッサ３０１は、上述の駆動制御部３５３として機能し、ステップＳ１２２で特定したアーム動作設定を現動作設定３２６（図６参照）に設定する。図１２に示されるように、アーム動作設定の変更は、ステップＳ１１２における工具の交換処理が開始される前、または、ステップＳ１１２における工具の交換処理が完了した後に実行される。すなわち、アーム動作設定は、アーム３６が原点位置にあるときのいずれかのタイミングで変更される。
【０１１６】
ステップＳ１３２において、プロセッサ３０１は、上述の駆動制御部３５３として機能し、上述の状態別動作設定３２４（図６参照）を参照して、正常状態に対応付けられているアーム動作設定（すなわち、正常動作設定）を特定する。
【０１１７】
ステップＳ１３４において、プロセッサ３０１は、上述の駆動制御部３５３として機能し、ステップＳ１３２で特定したアーム動作設定を現動作設定３２６（図６参照）に設定する。図１２に示されるように、アーム動作設定の変更は、ステップＳ１１２における工具の交換処理が開始される前、または、ステップＳ１１２における工具の交換処理が完了した後に実行される。すなわち、アーム動作設定は、アーム３６が原点位置にあるときのいずれかのタイミングで変更される。
【０１１８】
＜Ｉ．まとめ＞
以上のようにして、ＡＴＣ制御ユニット３００は、正常動作設定と異常動作設定とを含む複数のアーム動作設定を保持する。ＡＴＣ制御ユニット３００は、工作機械１００に異常が発生した場合には、異常が検知された後の所定のタイミングにおいて、アーム３６の駆動工程の全部または一部について、アーム動作設定を正常動作設定から異常動作設定に変更する。そして、ＡＴＣ制御ユニット３００は、アーム動作設定の変更後においては、アーム３６の駆動工程の一部または全部において、異常動作設定を維持する。
【０１１９】
これにより、ＡＴＣ制御ユニット３００は、工作機械１００の異常発生時において、正常動作設定よりも安全な異常動作設定でアーム３６を駆動し続けることができる。アーム３６を駆動し続けると、工具の引っかかりが解消することがある。また、ＡＴＣ制御ユニット３００は、ＡＴＣ３０を停止させないので、生産ラインを停止させずに済む。結果として、ＡＴＣ制御ユニット３００は、安全性と生産性とを両立することができる。
【０１２０】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１２１】
２０  ＰＬＣ、２１  主軸頭、２２  主軸、２３  ハウジング、２５，５２，５４  ボールねじ、３０  ＡＴＣ、３１  マガジン、３２  工具、３２Ａ  使用済工具、３２Ｂ  次使用工具、３３  押出し機構、３４  工具保持部、３５  スプロケット、３６  アーム、３６Ａ  第１把持部、３６Ｂ  第２把持部、４０  センシング部、４１  リモートＩ／Ｏユニット、４２  各種センサ、５０  移動機構、５１，５３  ガイド、５５  テーブル、１００  工作機械、１１０  圧力センサ、２５２，３５２  異常検知部、３００  ＡＴＣ制御ユニット、３０１  プロセッサ、３０２  ＲＯＭ、３０３  ＲＡＭ、３０４，３０５  通信インターフェイス、３２０  記憶装置、３２２  制御プログラム、３２４  状態別動作設定、３２６  現動作設定、３５０  ２軸アンプ、３５３  駆動制御部、３５４  動作設定部、３５６  指令出力部、３６０Ａ，３６０Ｂ  サーボモータ。
【図１】
2020175481.tif 000003
【図２】
2020175481.tif 000004
【図３】
2020175481.tif 000005
【図４】
2020175481.tif 000006
【図５】
2020175481.tif 000007
【図６】
2020175481.tif 000008
【図７】
2020175481.tif 000009
【図８】
2020175481.tif 000010
【図９】
2020175481.tif 000011
【図１０】
2020175481.tif 000012
【図１１】
2020175481.tif 000013
【図１２】
2020175481.tif 000014