(57)【要約】【課題】移動体の送り速度が移動先において上限速度を超えるか否かを判断できる工作機械を提供する。【解決手段】工作機械は、所定方向に延設されているボールねじと、ボールねじを回転駆動するためのモータと、モータによるボールねじの回転駆動に応じて所定方向に沿って移動する移動体と、移動体の制御プログラムに従ってモータを制御することで、移動体の送り速度を制御するための制御装置とを備える。制御装置は、制御プログラムに基づいて、移動体の移動先である目標位置と、移動体の現在の送り速度とを特定し、ボールねじに対する移動体の位置と、移動体の送り速度の上限速度との関係を規定した速度規定に基づいて、目標位置での上限速度を特定し、現在の送り速度が目標位置での上限速度よりも大きい場合に、予め定められた処理を実行する。【選択図】図３
2020113112.tif 000002
【特許請求の範囲】
【請求項１】
所定方向に延設されているボールねじと、
前記ボールねじを回転駆動するためのモータと、
前記モータによる前記ボールねじの回転駆動に応じて前記所定方向に沿って移動する移動体と、
前記移動体の制御プログラムに従って前記モータを制御することで、前記移動体の送り速度を制御するための制御装置とを備え、
前記制御装置は、
前記制御プログラムに基づいて、前記移動体の移動先である目標位置と、前記移動体の現在の送り速度とを特定し、
前記ボールねじに対する前記移動体の位置と、前記移動体の送り速度の上限速度との関係を規定した速度規定に基づいて、前記目標位置での上限速度を特定し、
前記現在の送り速度が前記目標位置での上限速度よりも大きい場合に、予め定められた処理を実行する、工作機械。
【請求項２】
前記予め定められた処理は、前記制御装置による前記移動体の制御を停止する処理を含む、請求項１に記載の工作機械。
【請求項３】
前記工作機械は、表示装置をさらに備え、
前記予め定められた処理は、前記制御装置による前記移動体の制御を継続するか否かについて選択を受け付ける選択画面を前記表示装置に表示する処理を含む、請求項１に記載の工作機械。
【請求項４】
前記制御装置は、前記制御プログラムに規定される送り速度にオーバーライド値を乗じた送り速度で前記移動体を制御し、
前記予め定められた処理は、前記移動体の送り速度が前記目標位置での前記上限速度よりも小さくなるように前記オーバーライド値を設定する処理を含む、請求項１に記載の工作機械。
【請求項５】
前記工作機械は、ワークを加工するための工具をさらに備え、
前記制御装置は、前記工具による前記ワークの加工が開始される前に前記予め定められた処理を実行する、請求項１〜４のいずれか１項に記載の工作機械。
【請求項６】
前記所定方向における前記移動体の移動区間を、前記ボールねじの中心位置に対応する位置を含む第１区間と、当該第１区間以外の第２区間とに区分する場合、前記第２区間内の各位置についての前記上限速度は、前記中心位置から離れるほど小さくなるように規定されている、請求項１〜４のいずれか１項に記載の工作機械。
【請求項７】
前記第１区間内の各位置についての前記上限速度は、一定であり、かつ、前記第２区間内の各位置についての前記上限速度よりも大きい、請求項６に記載の工作機械。
【請求項８】
工作機械の制御方法であって、
前記工作機械は、
所定方向に延設されたボールねじと、
前記ボールねじを回転駆動するためのモータと、
前記モータによる前記ボールねじの回転駆動に応じて前記所定方向に沿って移動する移動体とを備え、
前記制御方法は、
前記移動体の送り速度を制御する制御プログラムに基づいて、前記移動体の移動先である目標位置と、前記移動体の現在の送り速度とを特定するステップと、
前記ボールねじに対する前記移動体の位置と、前記移動体の送り速度の上限速度との関係を規定した速度規定に基づいて、前記目標位置での上限速度を特定するステップと、
前記現在の送り速度が前記目標位置での上限速度よりも大きい場合に、予め定められた処理を実行するステップとを備える、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ボールねじによって駆動される移動体の速度が上限速度を超えないように移動体の速度を制御するための技術に関する。
【背景技術】
【０００２】
駆動機構としてボールねじを有する工作機械が普及している。ボールねじは、ねじ軸と、当該ねじ軸に螺合するナットとで構成される。ナットとねじ軸との間には、複数のボールがねじ軸の溝に沿って設けられている。モータがねじ軸を回転運動することにより、ナットとねじ軸との間のボールが転動し、ナットは、ねじ軸に沿って直線的にスライドする。このように、ボールねじは、モータによる回転運動を直線運動に変える。ボールねじのナットには、移動体（たとえば、テーブルなど）が接続されている。工作機械は、ボールねじのねじ軸を回転駆動することで移動体上に載置されたワークを任意の位置に移動する。
【０００３】
移動体の送り速度がボールねじの端部において上限速度を超えると、ボールねじが振動する縄跳び現象が発生する。縄跳び現象が発生すると、ボールねじが破損する可能性があるため、縄跳び現象を抑制することが望まれている。
【０００４】
縄跳び現象を抑制するための技術に関し、特開２０１７−４９７６６号公報（特許文献１）は、「ボールねじに螺合するナットの位置に基づいて最大速度を制御する機能を備えた数値制御装置」を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−４９７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に開示される数値制御装置は、ボールねじに対するナットの現在位置に応じた危険速度を特定し、当該危険速度を超えないようにボールねじの送り速度を制御する。しかしながら、移動体の送り速度がワークの加工途中に変えられると、ワークの加工精度が低下する可能性がある。そのため、移動体の送り速度が移動先において上限速度を超えるか否かを判断することが求められている。
【０００７】
本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、移動体の送り速度が移動先において上限速度を超えるか否かを判断することができる工作機械を提供することである。他の局面における目的は、移動体の送り速度が移動先において上限速度を超えるか否かを判断することができる制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本開示の一例では、工作機械は、所定方向に延設されているボールねじと、上記ボールねじを回転駆動するためのモータと、上記モータによる上記ボールねじの回転駆動に応じて上記所定方向に沿って移動する移動体と、上記移動体の制御プログラムに従って上記モータを制御することで、上記移動体の送り速度を制御するための制御装置とを備える。上記制御装置は、上記制御プログラムに基づいて、上記移動体の移動先である目標位置と、上記移動体の現在の送り速度とを特定し、上記ボールねじに対する上記移動体の位置と、上記移動体の送り速度の上限速度との関係を規定した速度規定に基づいて、上記目標位置での上限速度を特定し、上記現在の送り速度が上記目標位置での上限速度よりも大きい場合に、予め定められた処理を実行する。
【０００９】
本開示の一例では、上記予め定められた処理は、上記制御装置による上記移動体の制御を停止する処理を含む。
【００１０】
本開示の一例では、上記工作機械は、表示装置をさらに備える。上記予め定められた処理は、上記制御装置による上記移動体の制御を継続するか否かについて選択を受け付ける選択画面を上記表示装置に表示する処理を含む。
【００１１】
本開示の一例では、上記制御装置は、上記制御プログラムに規定される送り速度にオーバーライド値を乗じた送り速度で上記移動体を制御する。上記予め定められた処理は、上記移動体の送り速度が上記目標位置での上記上限速度よりも小さくなるように上記オーバーライド値を設定する処理を含む。
【００１２】
本開示の一例では、上記工作機械は、ワークを加工するための工具をさらに備える。上記制御装置は、上記工具による上記ワークの加工が開始される前に上記予め定められた処理を実行する。
【００１３】
本開示の一例では、上記所定方向における上記移動体の移動区間を、上記ボールねじの中心位置に対応する位置を含む第１区間と、当該第１区間以外の第２区間とに区分する場合、上記第２区間内の各位置についての上記上限速度は、上記中心位置から離れるほど小さくなるように規定されている。
【００１４】
本開示の一例では、上記第１区間内の各位置についての上記上限速度は、一定であり、かつ、上記第２区間内の各位置についての上記上限速度よりも大きい。
【００１５】
本開示の他の例では、工作機械の制御方法が提供される。上記工作機械は、所定方向に延設されたボールねじと、上記ボールねじを回転駆動するためのモータと、上記モータによる上記ボールねじの回転駆動に応じて上記所定方向に沿って移動する移動体とを備える。上記制御方法は、上記移動体の送り速度を制御する制御プログラムに基づいて、上記移動体の移動先である目標位置と、上記移動体の現在の送り速度とを特定するステップと、上記ボールねじに対する上記移動体の位置と、上記移動体の送り速度の上限速度との関係を規定した速度規定に基づいて、上記目標位置での上限速度を特定するステップと、上記現在の送り速度が上記目標位置での上限速度よりも大きい場合に、予め定められた処理を実行するステップとを備える。
【発明の効果】
【００１６】
ある局面において、移動体の送り速度が移動先において上限速度を超えるか否かを判断することができる。
【００１７】
本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【００１８】
【図１】実施の形態に従う工作機械の一例を示す図である。
【図２】ボールねじに対するテーブルの位置と、テーブルの上限速度との関係を説明するための図である。
【図３】テーブルの送り速度が移動先において危険速度を超えない場合の例を示す図である。
【図４】テーブルの送り速度が移動先において危険速度を超える場合の例を示す図である。
【図５】ＰＬＣ（Programmable Logic Controller）およびＣＮＣ（Computerized Numerical Control）の協働関係を概略的に示す概念図である。
【図６】ＰＬＣの主要なハードウェア構成を示すブロック図である。
【図７】ＣＮＣの主要なハードウェア構成を示すブロック図である。
【図８】速度監視処理１の制御フローを示す図である。
【図９】速度監視処理２の制御フローを示す図である。
【図１０】速度監視処理３の制御フローを示す図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。
【００２０】
＜Ａ．工作機械１００の構成＞
図１を参照して、工作機械１００の構成について説明する。図１は、工作機械１００の一例を示す図である。
【００２１】
図１には、マシニングセンタとしての工作機械１００が示されている。以下では、マシニングセンタとしての工作機械１００について説明するが、工作機械１００は、マシニングセンタに限定されない。たとえば、工作機械１００は、旋盤であってもよいし、その他の切削機械や研削機械であってもよい。また、工作機械１００は、工具が鉛直方向に取り付けられる横形のマシニングセンタであってもよいし、工具が水平方向に取り付けられる立形のマシニングセンタであってもよい。
【００２２】
図１に示されるように、工作機械１００は、主軸頭２１を有する。主軸頭２１は、主軸２２と、ハウジング２３とで構成されている。主軸２２は、ハウジング２３の内部に配置されている。主軸２２には、被加工物であるワークを加工するための工具が装着される。図１の例では、エンドミルとしての工具３２が主軸２２に装着されている。
【００２３】
主軸頭２１は、ボールねじ２５に沿ってＺ軸方向に駆動可能に構成されている。ボールねじ２５にはサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ２５を駆動することで主軸頭２１を移動させ、Ｚ軸方向の任意の位置に主軸頭２１を移動する。
【００２４】
また、主軸２２にはサーボモータなどの駆動機構が接続される。当該駆動機構は、Ｚ軸方向（鉛直方向）に平行な中心軸ＡＸ１を中心に主軸２２を回転駆動する。その結果、主軸２２に装着された工具３２は、主軸２２の回転と連動して中心軸ＡＸ１を中心に回転する。なお、工作機械１００が旋盤である場合には、主軸２２には、ワークが装着される。この場合、主軸２２の回転に伴って、主軸２２に装着されたワークが回転する。
【００２５】
工作機械１００は、自動工具交換装置（ＡＴＣ：Automatic Tool Changer）３０をさらに有する。自動工具交換装置３０は、マガジン３１と、押出し機構３３と、アーム３６とで構成されている。マガジン３１は、ワークを加工するための種々の工具３２を収容するための装置である。マガジン３１は、複数の工具保持部３４と、スプロケット３５とで構成されている。
【００２６】
工具保持部３４は、種々の工具３２を保持可能なように構成されている。複数の工具保持部３４は、スプロケット３５の周囲に環状に配列されている。スプロケット３５は、モータ駆動により、Ｘ軸に平行な中心軸ＡＸ２を中心に回転可能に設けられている。スプロケット３５の回転に伴って、複数の工具保持部３４が中心軸ＡＸ２を中心に回転移動する。
【００２７】
自動工具交換装置３０は、工具の交換命令を受けたことに基づいて、マガジン３１から装着対象の工具３２を抜き取り、当該工具３２を主軸２２に装着する。より具体的には、自動工具交換装置３０は、目的の工具３２を保持する工具保持部３４を押出し機構３３の前に移動する。次に、押出し機構３３は、アーム３６による交換位置に向けて目的の工具３２を押し出す。その後、アーム３６は、目的の工具３２を工具保持部３４から抜き取るとともに、現在装着されている工具３２を主軸２２から抜き取る。その後、アーム３６は、これらの工具３２を保持した状態で半回転し、目的の工具３２を主軸２２に装着するとともに、元の工具３２を工具保持部３４に収容する。これにより、工具３２の交換が行われる。
【００２８】
工作機械１００は、加工対象のワークをＸＹ平面上で移動するための移動機構５０をさらに有する。移動機構５０は、ガイド５１，５３と、ボールねじ５２，５４と、ワークを保持するためのテーブル５５（移動体）とで構成されている。
【００２９】
ガイド５１は、Ｙ軸に対して平行に設置されている。ガイド５３は、ガイド５１上に設けられており、Ｘ軸に対して平行に設置されている。ガイド５３は、ガイド５１に沿って駆動可能に構成されている。テーブル５５は、ガイド５３上に設けられており、ガイド５３に沿って駆動可能に構成されている。
【００３０】
ボールねじ５２にはサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ５２を駆動することでガイド５３をガイド５１に沿って移動し、Ｙ軸方向の任意の位置にガイド５３を移動する。同様に、ボールねじ５４にもサーボモータなどの駆動機構が接続されている。当該駆動機構は、ボールねじ５４を駆動することでテーブル５５をガイド５３に沿って移動し、Ｘ軸方向の任意の位置にテーブル５５を移動する。すなわち、工作機械１００は、ボールねじ５２，５４のそれぞれに接続される駆動機構を協働して制御することで、ＸＹ平面上の任意の位置にテーブル５５を移動する。これにより、工作機械１００は、テーブル５５上で保持されるワークをＸＹ平面上で移動させながら加工を行うことができる。
【００３１】
＜Ｂ．ボールねじの制御処理＞
図２〜図４を参照して、上述のボールねじ５４（図１参照）の制御処理について説明する。図２は、ボールねじ５４に対するテーブル５５の位置と、テーブル５５の上限速度との関係を説明するための図である。
【００３２】
図２に示されるように、ボールねじ５４は、ねじ軸５４Ａと、ねじ軸５４Ａに螺合するナット５４Ｂとを含む。ねじ軸５４Ａとナット５４Ｂとの間には、複数のボール（図示しない）がねじ軸５４Ａの溝に沿って設けられている。
【００３３】
また、ボールねじ５４には、サーボモータ１１２Ａが接続されている。サーボモータ１１２Ａがボールねじ５４のねじ軸５４Ａを回転運動することにより、ナット５４Ｂとねじ軸５４Ａとの間のボールが転動し、ナット５４Ｂは、ねじ軸５４Ａに沿って直線的にスライドする。このように、ボールねじ５４は、サーボモータ１１２Ａによる回転運動を直線運動に変える。ボールねじ５４のナット５４Ｂには、テーブル５５が接続されている。
【００３４】
工作機械１００は、予め準備された加工プログラムに従ってボールねじ５４を制御することでＸ方向の任意の位置にワークＷを移動し、ボールねじ５２を制御することでＹ方向の任意の位置にワークＷを移動する。これにより、工作機械１００は、ＸＹ平面上の任意の位置にワークＷを移動させながらワークＷを加工することができる。
【００３５】
テーブル５５の送り速度が上限速度（以下、「危険速度」ともいう。）を超えると、ボールねじ５４が振動する縄跳び現象が発生する。縄跳び現象が発生すると、ボールねじ５４が破損する可能性がある。
【００３６】
危険速度は、ボールねじ５４に対するテーブル５５の位置に応じて異なる。典型的には、テーブル５５がねじ軸５４Ａの端部に近付くほど、危険速度は下がる。この理由は、ナット５４Ｂがねじ軸５４Ａの一端に近付くほど、ナット５４Ｂとねじ軸５４Ａの他端との間の距離が長くなり、ねじ軸５４Ａのたわみが大きくなるためである。
【００３７】
テーブル５５の送り速度が危険速度を超えないように、速度規定１２４が予め定められている。速度規定１２４は、ボールねじ５４に対するテーブル５５の位置（以下、「テーブル位置」ともいう。）と危険速度との関係を規定している。ここでいう「テーブル位置」とは、テーブル５５内の所定位置（たとえば、テーブル５５の中心位置）を指す。
【００３８】
より具体的には、Ｘ方向におけるテーブル５５の移動区間を、ボールねじ５４の中心位置ＣＥを含む区間１２４Ａ（第１区間）と、区間１２４Ａ以外の区間１２４Ｂ（第２区間）とに区分した場合、区間１２４Ｂ内の各テーブル位置についての上限速度は、中心位置ＣＥから離れるほど小さくなるように規定される。異なる言い方をすれば、区間１２４Ｂ内の各テーブル位置についての上限速度は、ボールねじ５４の端部に近付くほど小さくなるように規定される。区間１２４Ａ内の各テーブル位置の上限速度は、一定であり、かつ、区間１２４Ｂ内の上限速度よりも大きい。中心位置ＣＥは、Ｘ方向におけるねじ軸５４Ａの中心に相当する。
【００３９】
速度規定１２４は、たとえば、工作機械１００内の記憶装置に格納されている。速度規定１２４のデータ構造は、任意である。ある局面において、速度規定１２４は、テーブル位置を説明変数とし、テーブル５５の危険速度を目的変数とする算出式で規定される。他の局面において、速度規定１２４は、テーブル５５の危険速度をテーブル位置ごとに対応付けたテーブル形式で規定される。
【００４０】
工作機械１００は、速度規定１２４に基づいて、テーブル５５の送り速度が危険速度を超えないようにテーブル５５の送り速度を制御する。このとき、工作機械１００は、テーブル５５の送り速度が移動先において危険速度を超えるか否かを当該移動先への移動開始前に判断する。より具体的には、工作機械１００は、ボールねじ５４の制御プログラムに基づいて、テーブル５５の移動先である目標位置と、テーブル５５の現在の送り速度とを特定する。次に、工作機械１００は、速度規定１２４に基づいて、目標位置での上限速度を特定し、現在の送り速度が目標位置での上限速度よりも大きいか否かを判断する。工作機械１００は、現在の送り速度が目標位置での上限速度よりも大きいと判断した場合、縄跳び現象を抑制するための予め定められた処理を実行する。これにより、工作機械１００は、テーブル５５の送り速度が移動先において危険速度を超えるか否かを予め判断でき、ワークＷの加工前に何らかの処置を取ることができる。
【００４１】
縄跳び現象を抑制するための処理として、工作機械１００は、テーブル５５の駆動制御を停止する。あるいは、工作機械１００は、テーブル５５の移動先での危険速度を下回るようにテーブル５５の送り速度を制限する。あるいは、工作機械１００は、テーブル５５の駆動制御を継続するか否かについて選択を受け付ける選択画面を表示する。
【００４２】
図３および図４を参照して、テーブル５５の送り速度と移動先での危険速度との比較処理の具体例について説明する。図３は、テーブル５５の送り速度が移動先において危険速度を超えない場合の例を示す図である。図４は、テーブル５５の送り速度が移動先において危険速度を超える場合の例を示す図である。
【００４３】
テーブル５５は、たとえば、現在位置ｐ１から目標位置ｐｔに移動すると仮定する。この場合、工作機械１００は、速度規定１２４に基づいて、目標位置ｐｔでの危険速度Ｆｔｈを特定する。その後、工作機械１００は、現在の送り速度Ｆが目標位置ｐｔでの危険速度Ｆｔｈよりも大きい場合に、縄跳び現象を抑制するための予め定められた処理を実行する。図３の例では、現在の送り速度Ｆが目標位置ｐｔでの危険速度Ｆｔｈよりも小さいので、工作機械１００は、縄跳び現象を抑制するための処理を実行しない。図４の例では、現在の送り速度Ｆが目標位置ｐｔでの危険速度Ｆｔｈよりも大きいので、工作機械１００は、縄跳び現象を抑制するための処理を実行する。
【００４４】
なお、上述では、テーブル５５の送り速度が危険速度を超えるか否かについて説明を行ったが、危険速度を超えるか否かを判断する対象は、テーブル５５に限定されない。ボールねじによって駆動される種々の「移動体」が危険速度を超えるか否かを判断する対象になり得る。一例として、当該移動体は、テーブル５５であってもよいし、ナット５４Ｂであってもよいし、ワークＷであってもよい。
【００４５】
また、上述では、テーブル５５の移動先で送り速度が危険速度を超えるか否かをＸ方向において判断する例について説明を行ったが、この判断処理は、他の移動方向（たとえば、Ｙ方向やＺ方向）について行われてもよいし、複数の移動方向について行われてもよい。一例として、当該判断処理がＸ方向とＹ方向とについて行われる場合、工作機械１００は、Ｘ方向にテーブル５５を駆動するボールねじ５４と、Ｙ方向にテーブル５５を駆動するボールねじ５２とのそれぞれについて、テーブル５５の送り速度が移動先において危険速度を超えるか否かを予め判断する。この場合、速度規定１２４は、テーブル５５の移動方向ごとに準備される。
【００４６】
＜Ｃ．ＰＬＣとＣＮＣとの協働関係＞
工作機械１００は、たとえば、ＰＬＣと、ＣＮＣとで構成される。テーブル５５の送り速度が移動先で危険速度を超えるか否かについて判断する処理は、ＰＬＣおよびＣＮＣが協働することにより実現される。
【００４７】
図５は、ＰＬＣ２００およびＣＮＣ３００の協働関係を概略的に示す概念図である。図５に示されるように、工作機械１００は、ＰＬＣ２００と、ＣＮＣ３００とを含む。
【００４８】
ＰＬＣ２００およびＣＮＣ３００は、フィールドネットワークによって接続されている。フィールドネットワークには、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、当該フィールドネットワークには、たとえば、ＣＣ−Ｌｉｎｋ（登録商標）、ＥｔｈｅｒＣＡＴ（登録商標）、ＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）、ＣｏｍｐｏＮｅｔ（登録商標）などが知られている。
【００４９】
当該フィールドネットワークには、フレーム６０が伝送される。フレーム６０は、フィールドネットワーク上を予め定められた制御周期ΔＴごとに周回する。ＰＬＣ２００およびＣＮＣ３００は、フレーム６０を介して各種データを共有する。
【００５０】
フレーム６０は、たとえば、ＰＬＣ用のデータ領域６１Ａと、ＣＮＣ用のデータ領域６１Ｂとを含む。ＰＬＣ用のデータ領域６１Ａは、ＰＬＣ２００が各種データを書き込む領域である。ＰＬＣ２００によってデータ領域６１Ａに書き込まれた各種データは、ＣＮＣ３００によって参照される。ＣＮＣ用のデータ領域６１Ｂは、ＣＮＣ３００が各種データを書き込む領域である。ＣＮＣ３００によってデータ領域６１Ｂに書き込まれた各種データは、ＰＬＣ２００によって参照される。
【００５１】
ＰＬＣ２００は、予め設計された監視プログラム２２２に従って、サーボモータ１１２Ａ（図２参照）などの各種の駆動機器を制御し、テーブル５５の送り速度が危険速度を超えないようにテーブル５５の送り速度を監視する。監視プログラム２２２は、たとえば、ラダープログラムなどのサイクリック実行型のプログラムで記述されている。
【００５２】
ＣＮＣ３００は、予め設計された加工プログラム３２２に従って、サーボモータ１１２Ａ（図２参照）などの各種の駆動機器を制御し、ワークＷを加工する。加工プログラム３２２は、たとえば、ＮＣ（Numerical Control）プログラムなどの逐次実行型のプログラムで記述されている。
【００５３】
加工プログラム３２２は、ＰＬＣ２００と共有すべき各種データをフレーム６０のデータ領域６１Ｂに書き込む。一例として、データ領域６１Ｂに書き込まれるデータは、ワークＷの加工に関する各種データであり、テーブル５５の現在位置、テーブル５５の移動先までの残り移動量、テーブル５５の現在の送り速度などを含む。
【００５４】
ＰＬＣ２００は、フレーム６０のデータ領域６１Ｂを参照して、テーブル５５の移動先や送り速度などの情報を取得し、当該送り速度が当該移動先で危険速度を超えるか否かを判断する。ＰＬＣ２００は、当該送り速度が当該移動先で危険速度を超えると判断した場合、縄跳び現象を抑制するための予め定められた処理を実行する。
【００５５】
なお、監視プログラム２２２および加工プログラム３２２は、工作機械１００の「制御プログラム」の一例であり、監視プログラム２２２および加工プログラム３２２の実装態様は、特に限定されない。たとえば、監視プログラム２２２および加工プログラム３２２は、同一のプログラミング言語で一体的に実装されてもよい。また、監視プログラム２２２は、必ずしもラダープログラムで記述される必要はなく、加工プログラムは、必ずしもＮＣプログラムで記述される必要はない。監視プログラム２２２および加工プログラム３２２は、たとえば、命令リスト（ＩＬ：Instruction List）、構造化テキスト（ＳＴ：Structured Text）、および、シーケンシャルファンクションチャート（ＳＦＣ：Sequential Function Chart）のいずれか、あるいは、これらの組み合わせで記述されてもよい。あるいは、当該制御プログラムは、ＪａｖａＳｃｒｉｐｔ（登録商標）やＣ言語のような汎用的なプログラミング言語で記述されてもよい。
【００５６】
＜Ｄ．ＰＬＣ２００のハードウェア構成＞
図６を参照して、ＰＬＣ２００のハードウェア構成の一例について説明する。図６は、ＰＬＣ２００の主要なハードウェア構成を示すブロック図である。
【００５７】
ＰＬＣ２００は、制御装置２０１と、ＲＯＭ（Read  Only  Memory）２０２と、ＲＡＭ（Random Access Memory）２０３と、通信インターフェイス２０４と、フィールドバスコントローラ２０６と、記憶装置２２０とを含む。
【００５８】
制御装置２０１は、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ（Central  Processing  Unit）、少なくとも１つのＭＰＵ（Micro Processing Unit）、少なくとも１つのＡＳＩＣ（Application  Specific  Integrated  Circuit）、少なくとも１つのＦＰＧＡ（Field  Programmable  Gate  Array）またはそれらの組み合わせなどによって構成される。
【００５９】
制御装置２０１は、監視プログラム２２２など各種プログラムを実行することでＣＮＣ３００の動作を制御する。制御装置２０１は、監視プログラム２２２の実行命令を受け付けたことに基づいて、記憶装置２２０からＲＯＭ２０２に監視プログラム２２２を読み出す。ＲＡＭ２０３は、ワーキングメモリとして機能し、監視プログラム２２２の実行に必要な各種データを一時的に格納する。
【００６０】
通信インターフェイス２０４は、ＣＮＣ３００との通信を実現するためのインターフェイスである。ＰＬＣ２００は、通信インターフェイス２０４を介してＣＮＣ３００との間でデータをやり取りする。
【００６１】
フィールドバスコントローラ２０６は、ＰＬＣ２００とフィールドバスを通じて連結される各種の駆動機器とデータを遣り取りするインターフェイスである。このようなデバイスの一例として、サーボドライバ１１１Ａ〜１１１Ｄ（図７参照）などが接続される。
【００６２】
記憶装置２２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置２２０は、監視プログラム２２２などを格納する。監視プログラム２２２の格納場所は、記憶装置２２０に限定されず、制御装置２０１の記憶領域（たとえば、キャッシュ領域など）、ＲＯＭ２０２、ＲＡＭ２０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【００６３】
監視プログラム２２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う制御処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う監視プログラム２２２の趣旨を逸脱するものではない。さらに、監視プログラム２２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが監視プログラム２２２の処理の一部を実行する所謂クラウドサービスのような形態でＰＬＣ２００が構成されてもよい。
【００６４】
＜Ｅ．ＣＮＣ３００のハードウェア構成＞
図７を参照して、ＣＮＣ３００のハードウェア構成の一例について説明する。図７は、ＣＮＣ３００の主要なハードウェア構成を示すブロック図である。
【００６５】
ＣＮＣ３００は、制御装置３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、通信インターフェイス３０４と、表示インターフェイス３０５と、入力インターフェイス３０９と、記憶装置３２０とを含む。これらの機器は、バス（図示しない）を介して接続されている。
【００６６】
制御装置３０１は、少なくとも１つの集積回路によって構成される。集積回路は、たとえば、少なくとも１つのＣＰＵ、少なくとも１つのＭＰＵ、少なくとも１つのＡＳＩＣ、少なくとも１つのＦＰＧＡ、またはそれらの組み合わせなどによって構成される。
【００６７】
制御装置３０１は、加工プログラム３２２など各種プログラムを実行することでＣＮＣ３００の動作を制御する。制御装置３０１は、加工プログラム３２２の実行命令を受け付けたことに基づいて、記憶装置３２０からＲＯＭ３０２に加工プログラム３２２を読み出す。ＲＡＭ３０３は、ワーキングメモリとして機能し、加工プログラム３２２の実行に必要な各種データを一時的に格納する。
【００６８】
通信インターフェイス３０４は、ＣＮＣ３００との通信を実現するためのインターフェイスである。ＣＮＣ３００は、通信インターフェイス３０４を介してＣＮＣ３００との間でデータをやり取りする。
【００６９】
表示インターフェイス３０５は、ディスプレイ３３０などの表示機器と接続され、制御装置３０１などからの指令に従ってディスプレイ３３０に対して画像を表示するための画像信号を送出する。ディスプレイ３３０は、たとえば、液晶ディスプレイ、有機ＥＬディスプレイ、またはその他の表示機器である。
【００７０】
入力インターフェイス３０９は、入力デバイス３３１に接続され得る。入力デバイス３３１は、たとえば、マウス、キーボード、タッチパネル、またはユーザ操作を受け付けることが可能なその他の入力機器である。
【００７１】
ＣＮＣ３００は、加工プログラム３２２に従ってサーボドライバ１１１Ａを制御する。サーボドライバ１１１Ａは、制御装置３０１から目標回転数（または目標位置）の入力を逐次的に受け、サーボモータ１１２Ａが目標回転数で回転するようにサーボモータ１１２Ａを制御する。より具体的には、サーボドライバ１１１Ａは、エンコーダ１１３Ａのフィードバック信号からサーボモータ１１２Ａの実回転数（または実位置）を算出し、当該実回転数が目標回転数よりも小さい場合にはサーボモータ１１２Ａの回転数を上げ、当該実回転数が目標回転数よりも大きい場合にはサーボモータ１１２Ａの回転数を下げる。このように、サーボドライバ１１１Ａは、サーボモータ１１２Ａの回転数のフィードバックを逐次的に受けながらサーボモータ１１２Ａの回転数を目標回転数に近付ける。サーボドライバ１１１Ａは、ボールねじ５４に接続されるテーブル５５（図１参照）をＸ軸方向に沿って移動し、テーブル５５をＸ軸方向の任意の位置に移動する。
【００７２】
同様のモータ制御により、サーボドライバ１１１Ｂは、ボールねじ５２に接続されるガイド５３（図１参照）をＹ軸方向に沿って移動し、ガイド５３上のテーブル５５（図１参照）をＹ軸方向の任意の位置に移動する。同様のモータ制御を行うことにより、サーボドライバ１１１Ｃは、ボールねじ２５に接続される主軸頭２１（図１参照）をＺ軸方向の任意の位置に移動する。同様のモータ制御を行うことにより、サーボドライバ１１１Ｄは、主軸２２の回転速度を制御する。
【００７３】
記憶装置３２０は、たとえば、ハードディスクやフラッシュメモリなどの記憶媒体である。記憶装置３２０は、加工プログラム３２２や変数情報３２４などを格納する。変数情報３２４は、加工プログラム３２２で参照されるデータである。変数情報３２４は、テーブル５５などの制御対象の現在位置を示す変数、当該制御対象の移動先までの残りの移動量を示す変数、当該制御対象の目標位置を示す変数など各種変数を含む。加工プログラム３２２および変数情報３２４の格納場所は、記憶装置３２０に限定されず、制御装置３０１の記憶領域（たとえば、キャッシュ領域など）、ＲＯＭ３０２、ＲＡＭ３０３、外部機器（たとえば、サーバー）などに格納されていてもよい。
【００７４】
加工プログラム３２２は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、本実施の形態に従う制御処理は、任意のプログラムと協働して実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う加工プログラム３２２の趣旨を逸脱するものではない。さらに、加工プログラム３２２によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも１つのサーバーが加工プログラム３２２の処理の一部を実行する所謂クラウドサービスのような形態でＣＮＣ３００が構成されてもよい。
【００７５】
＜Ｆ．制御フロー＞
工作機械１００は、早送りでテーブル５５を駆動しているか、切削送りでテーブル５５を駆動しているかに応じて、テーブル５５の送り速度の監視方法を変える。
【００７６】
「早送り」とは、予め定められた最大速度でテーブル５５を駆動する制御を意味する。すなわち、テーブル５５の早送り時には、工作機械１００は、テーブル５５の送り速度を指定することができない。典型的には、加工プログラム３２２において「Ｇ００」のＧコードが実行された場合に、テーブル５５は、早送りで駆動される。早送り速度は、工作機械１００ごとに設定される。
【００７７】
「切削送り」とは、指定された送り速度でテーブル５５を駆動する制御を意味する。典型的には、切削送り時におけるテーブル５５の送り速度は、早送り時におけるテーブル５５の送り速度よりも遅い。切削送りの速度は、加工プログラム３２２上で指定される。一例として、加工プログラム３２２において「Ｇ０１」〜「Ｇ０３」のＧコードが実行された場合に、テーブル５５は、切削送りで駆動される。
【００７８】
切削送り時においては、工作機械１００は、加工プログラム３２２の動作モードに応じてテーブル５５の送り速度の監視方法をさらに変える。一例として、工作機械１００の動作モードは、加工プログラム３２２をデバッグするデバッグモードと、加工プログラム３２２に従って実際に加工を行う通常実行モードとを有する。デバッグモードは、制御対象を駆動せずに加工プログラム３２２を実行する段取りモードと、ユーザ操作に応じて１ブロックずつ加工プログラム３２２を実行するシングルブロックモードと、指定されたブロックで加工プログラム３２２の実行を停止することが可能なプログラムチェックモードとを含む。
【００７９】
このように、工作機械１００は、早送り時であるか、デバッグモードの切削送り時であるか、通常実行モードの切削送り時であるかに応じて、テーブル５５の送り速度の監視方法を変える。以下では、早送り時に実行される速度監視処理を「速度監視処理１」ともいう。デバッグモードの切削送り時に実行される速度監視処理を「速度監視処理２」ともいう。通常実行モードの切削送り時に実行される速度監視処理を「速度監視処理３」ともいう。
【００８０】
以下では、図８〜図１０を参照して、速度監視処理１〜３について順に説明する。図８〜図１０に示される処理は、たとえば、ＰＬＣ２００の制御装置２０１（図６参照）が監視プログラム２２２（図６参照）を実行することにより実現される。他の局面において、処理の一部または全部が、ＣＮＣ３００の制御装置３０１、回路素子またはその他のハードウェアによって実行されてもよい。
【００８１】
（Ｆ１．速度監視処理１）
まず、図８を参照して、速度監視処理１について説明する。図８は、速度監視処理１の制御フローを示す図である。
【００８２】
上述のように、テーブル５５の送り速度が危険速度を超えるとボールねじ５４が破損する可能性がある。したがって、工作機械１００は、早送り時においては、テーブル５５の現在位置に対して制御遅れ量を考慮した予想位置（移動先）での危険速度を算出し、テーブル５５の現在の送り速度が当該危険速度を超えている場合に、テーブル５５の送り速度を危険速度以下に調整する。これにより、工作機械１００は、テーブル５５の送り速度が移動先で危険速度を超えることを防止することができる。
【００８３】
より具体的には、ステップＳ１０８において、制御装置２０１は、タイマー（図示しない）をリセットする。当該タイマーは、たとえば、制御装置２０１に備えられる計時機能である。制御装置２０１は、タイマーのリセット後、タイマーのカウントを開始する。
【００８４】
ステップＳ１１０において、制御装置２０１は、制御周期ΔＴ（図５参照）が到来したか否かを判断する。制御装置２０１は、制御周期ΔＴが到来したと判断した場合（ステップＳ１１０においてＹＥＳ）、制御をステップＳ１１２に切り替える。そうでない場合には（ステップＳ１１０においてＮＯ）、制御装置２０１は、制御をステップＳ１４０に切り替える。
【００８５】
ステップＳ１１２において、制御装置２０１は、テーブル５５の現在位置ｐ１と、テーブル５５の現在の送り速度Ｆｍａｘとを取得する。送り速度Ｆｍａｘは、工作機械１００に設定されている早送り速度であり、予め定められている。現在位置ｐ１は、上述のＣＮＣ３００から取得される。より具体的には、現在位置ｐ１は、加工プログラム３２２に従って制御周期ΔＴごとにＣＮＣ３００によって更新されている。ＣＮＣ３００は、現在位置ｐ１を上述のフレーム６０（図５参照）に書き込み、当該フレーム６０を制御周期ΔＴごとにＰＬＣ２００に送信する。ＰＬＣ２００の制御装置２０１は、受信したフレーム６０から現在位置ｐ１を取得する。
【００８６】
ステップＳ１１４において、制御装置２０１は、制御遅れ量Δｍを算出する。監視プログラム２２２は、ラダープログラムで記述されているため、ステップＳ１１２で取得した現在位置ｐ１は、１制御周期分遅れている。そのため、制御装置２０１は、下記式（１）に基づいて、制御遅れ量Δｍを算出する。
【００８７】
Δｍ＝（Ｆｍａｘ／６００００）＊Ｖ＊ΔＴ＊ｐ・・・（１）
式（１）に示される「Ｆｍａｘ」は、ステップＳ１１２で取得した早送り速度を表す。「Ｆｍａｘ」の単位は、たとえば、「ｍｍ／ｍｉｎ」で表される。「Ｆｍａｘ／６００００」により、単位が「ｍｍ／ｍｉｎ」から「ｍｍ／ｍｓ」に変換される。「Ｖ」は、現在設定されているオーバーライド値を示す。オーバーライド値は、工作機械１００に設定されている早送り速度を基準（＝１００％）とした倍率を示す。ユーザは、工作機械１００の操作盤（図示しない）のダイヤルを調整することでオーバーライド値を手動で調整することができる。「ΔＴ」は、ラダープログラムの制御周期を示す。「ΔＴ」の単位は、たとえば、「ｍｓ」である。「ｐ」は、制御マージンを示す。「ｐ」は、予め定められた定数である。
【００８８】
ステップＳ１１６において、制御装置２０１は、ステップＳ１１２で取得した現在位置ｐ１と、ステップＳ１１４で算出した制御遅れ量Δｍとに基づいて、推定位置ｐ２を算出する。推定位置ｐ２は、制御遅れ量Δｍを考慮したテーブル５５の移動先を示す。より具体的には、下記式（２）に示されるように、制御装置２０１は、現在位置ｐ１に制御遅れ量Δｍを加算し、推定位置ｐ２を算出する。
【００８９】
ｐ２＝ｐ１＋Δｍ・・・（２）
ステップＳ１１８において、制御装置２０１は、上述の速度規定１２４（図２参照）を参照して、推定位置ｐ２に対応する危険速度Ｆｔｈを特定する。
【００９０】
ステップＳ１２０において、制御装置２０１は、ステップＳ１１２で取得した送り速度ＦｍａｘがステップＳ１１８で特定した危険速度Ｆｔｈを超えているか否かを判断する。制御装置２０１は、送り速度Ｆｍａｘが危険速度Ｆｔｈを超えていると判断した場合（ステップＳ１２０においてＹＥＳ）、制御をステップＳ１３０に切り替える。そうでない場合には（ステップＳ１２０においてＮＯ）、制御装置２０１は、制御をステップＳ１２２に切り替える。
【００９１】
ステップＳ１２２において、制御装置２０１は、タイマーをリセットする。制御装置２０１は、タイマーのリセット後、タイマーのカウントを開始する。
【００９２】
ステップＳ１３０において、制御装置２０１は、タイマーの計測時間が所定時間を超えたか否かを判断する。すなわち、制御装置２０１は、送り速度Ｆｍａｘが危険速度Ｆｔｈを超えている時間が所定時間を経過したか否かを判断する。制御装置２０１は、タイマーの計測時間が所定時間を超えたと判断した場合（ステップＳ１３０においてＹＥＳ）、制御をステップＳ１３２に切り替える。そうでない場合には（ステップＳ１３０においてＮＯ）、制御装置２０１は、制御をステップＳ１４０に切り替える。
【００９３】
ステップＳ１３２において、制御装置２０１は、テーブル５５の送り速度Ｆｍａｘを危険速度Ｆｔｈ以下に制限する。一例として、制御装置２０１は、オーバーライド値を調整することにより送り速度Ｆｍａｘを制限する。当該オーバーライド値は、たとえば、下記式（３）に基づいて、算出される。
【００９４】
Ｖ＝Ｆｔｈ／Ｆｍａｘ・・・（３）
制御装置２０１は、当該算出したオーバーライド値で現在設定されているオーバーライド値を更新する。これにより、テーブル５５の送り速度Ｆｍａｘが、危険速度Ｆｔｈ以下に制限される。
【００９５】
ステップＳ１４０において、制御装置２０１は、早送りが継続しているか否かを判断する。制御装置２０１は、早送りが継続していると判断した場合（ステップＳ１４０においてＹＥＳ）、制御をステップＳ１１０に戻す。そうでない場合には（ステップＳ１４０においてＮＯ）、制御装置２０１は、図８に示される速度監視処理１を終了する。
【００９６】
なお、上述では、ステップＳ１３２において、送り速度Ｆｍａｘが危険速度Ｆｔｈ以下に制限される例について説明を行ったが、縄跳び現象を抑制するための処理は、これに限定されない。一例として、ステップＳ１３２において、制御装置２０１は、エラーメッセージ「送り速度異常」をディスプレイ３３０（図７参照）に表示し、加工プログラム３２２を一時停止してもよい。
【００９７】
（Ｆ２．速度監視処理２）
次に、図９を参照して、速度監視処理２について説明する。図９は、速度監視処理２の制御フローを示す図である。
【００９８】
工作機械１００は、切削送り時においてはワークＷの加工中である可能性が高い。そのため、切削送り時に送り速度が変更された場合には、ワークＷの加工品質が低下する可能性がある。したがって、デバッグモードの切削送り時においては、工作機械１００は、テーブル５５の送り速度が危険速度を超えるか否かをワークＷの加工前に判断する。テーブル５５の送り速度が危険速度を超える場合、工作機械１００は、工具３２によるワークＷの加工が開始される前に縄跳び現象を抑制するための処理を実行する。
【００９９】
速度監視処理２の実行は、実行中の加工プログラム３２２の次ブロックが切削送りである場合に開始される。速度監視処理２が開始されると、ステップＳ２０８において、制御装置２０１は、加工プログラム３２２の実行をインターロックするための指令をＣＮＣ３００に送る。ＣＮＣ３００は、当該指令を受けたことに基づいて、加工プログラム３２２の実行を一時停止する。
【０１００】
ステップＳ２１０において、制御装置２０１は、制御周期ΔＴ（図５参照）が到来したか否かを判断する。制御装置２０１は、制御周期ΔＴが到来したと判断した場合（ステップＳ２１０においてＹＥＳ）、制御をステップＳ２１１に切り替える。そうでない場合には（ステップＳ２１０においてＮＯ）、制御装置２０１は、制御をステップＳ２５０に切り替える。
【０１０１】
ステップＳ２１１において、制御装置２０１は、テーブル５５の現在位置ｐ１と、テーブル５５の移動先までの残移動量Δｄと、テーブル５５の現在の送り速度ＦＰとを上述のＣＮＣ３００から取得する。より具体的には、現在位置ｐ１、残移動量Δｄ、および送り速度ＦＰは、加工プログラム３２２に従って制御周期ΔＴごとにＣＮＣ３００によって更新されている。ＣＮＣ３００は、現在位置ｐ１、残移動量Δｄ、および送り速度ＦＰを上述のフレーム６０（図５参照）に書き込み、当該フレーム６０を制御周期ΔＴごとにＰＬＣ２００に送信する。ＰＬＣ２００の制御装置２０１は、現在位置ｐ１、残移動量Δｄ、および送り速度ＦＰを受信したフレーム６０から取得する。
【０１０２】
ステップＳ２１２において、制御装置２０１は、下記式（４）に基づいて、テーブル５５の移動先である目標位置ｐｔを算出する。より具体的には、制御装置２０１は、テーブル５５の現在位置ｐ１に残移動量Δｄを加算することで、目標位置ｐｔを算出する。
【０１０３】
ｐｔ＝ｐ１＋Δｄ・・・（４）
ステップＳ２１４において、制御装置２０１は、上述の速度規定１２４（図２参照）を参照して、目標位置ｐｔにおける危険速度Ｆｔｈを特定する。
【０１０４】
ステップＳ２１２で取得した送り速度ＦＰは、ＸＹ平面上における移動速度を表すので、ステップＳ２１６において、制御装置２０１は、送り速度ＦＰから監視対象の軸の送り速度Ｆを算出する。一例として、監視対象の軸がＸ軸およびＹ軸である場合、制御装置２０１は、式（５）に基づいてＸ軸方向の送り速度Ｆｘを算出し、式（６）に基づいてＹ軸方向の送り速度ＦＹを算出する。
【０１０５】
ＦＸ＝ＦＰ＊ｘ／√（ｘ２＋ｙ２）・・・（５）
ＦＹ＝ＦＰ＊ｙ／√（ｘ２＋ｙ２）・・・（６）
式（５）に示される「ＦＸ」は、Ｘ軸方向におけるテーブル５５の送り速度を表す。「ＦＸ」の単位は、たとえば、モータの単位回転当たりの移動量「ｍｍ／ｒｅｖ」，「ｉｎｃｈ／ｒｅｖ」、または、単位時間当たりの移動量「ｍｍ／ｍｉｎ」で表される。「ＦＸ」の単位が「ｍｍ／ｒｅｖ」もしくは「ｉｎｃｈ／ｒｅｖ」である場合、制御装置２０１は、「ＦＸ」にモータ回転数「Ｎ」を乗算することで「ＦＸ」の単位を「ｍｍ／ｍｉｎ」に変換する。「ｘ」は、Ｘ軸方向における目標位置までの残り移動量を表す。「ｘ」の単位は、「ｍｍ」もしくは「ｉｎｃｈ」で表される。
【０１０６】
式（６）に示される「ＦＹ」は、Ｙ軸方向におけるテーブル５５の送り速度を表す。「ＦＹ」の単位は、たとえば、モータの単位回転当たりの移動量「ｍｍ／ｒｅｖ」，「ｉｎｃｈ／ｒｅｖ」、または、単位時間当たりの移動量「ｍｍ／ｍｉｎ」で表される。「ｙ」は、Ｙ軸方向における目標位置までの残り移動量を表す。「ＦＹ」の単位が「ｍｍ／ｒｅｖ」もしくは「ｉｎｃｈ／ｒｅｖ」である場合、制御装置２０１は、「ＦＹ」にモータ回転数「Ｎ」を乗算することで、「ＦＹ」の単位を「ｍｍ／ｍｉｎ」に変換する。
【０１０７】
以降のステップＳ２２０，Ｓ２２２，Ｓ２３０，Ｓ２３２，Ｓ２３４，Ｓ２４２の処理は、送り速度ＦＸ，ＦＹのそれぞれについて実行されるが、説明の便宜のために、送り速度ＦＸ，ＦＹの一方を送り速度Ｆと称し、送り速度Ｆについて以降の処理が実行されるものとして説明を行う。
【０１０８】
ステップＳ２２０において、制御装置２０１は、オーバーライド値「１００％」の送り速度ＦがステップＳ２１４で特定した危険速度Ｆｔｈを超えているか否かを判断する。制御装置２０１は、オーバーライド値「１００％」の送り速度Ｆが危険速度Ｆｔｈを超えていると判断した場合（ステップＳ２２０においてＹＥＳ）、制御をステップＳ２２２に切り替える。そうでない場合には（ステップＳ２２０においてＮＯ）、制御装置２０１は、制御をステップＳ２３０に切り替える。
【０１０９】
ステップＳ２２２において、制御装置２０１は、エラーメッセージ「オーバーライド値（ＯＶＲ）１００％では実行できません」をディスプレイ３３０（図７参照）に表示し、加工プログラム３２２を一時停止する。あるいは、制御装置２０１は、テーブル５５の送り速度が危険速度Ｆｔｈよりも小さくなるようにオーバーライド値を設定してもよい。オーバーライド値の設定方法については上述のステップＳ１３２で説明した通りであるので、その説明については繰り返さない。
【０１１０】
ステップＳ２３０において、制御装置２０１は、オーバーライド値「２００％」の送り速度Ｆが危険速度Ｆｔｈ以上であり、かつ、オーバーライド値「１００％」の送り速度Ｆが危険速度Ｆｔｈを下回っているか否かを判断する。制御装置２０１は、オーバーライド値「２００％」の送り速度Ｆが危険速度Ｆｔｈ以上であり、かつ、オーバーライド値「１００％」の送り速度Ｆが危険速度Ｆｔｈを下回っていると判断した場合（ステップＳ２３０においてＹＥＳ）、制御をステップＳ２３２に切り替える。そうでない場合には（ステップＳ２３０においてＮＯ）、制御装置２０１は、制御をステップＳ２４２に切り替える。
【０１１１】
ステップＳ２３２において、制御装置２０１は、警告メッセージ「オーバーライド値（ＯＶＲ）を１００％よりも大きくすることはできません」をディスプレイ３３０（図７参照）に表示し、テーブル５５の駆動制御を継続するか否かについて選択を受け付ける選択画面をディスプレイ３３０に表示する。
【０１１２】
ステップＳ２３４において、制御装置２０１は、ステップＳ２３２での選択結果に応じた処理を実行する。より具体的には、駆動制御の継続が選択された場合、制御装置２０１は、加工プログラム３２２の実行のインターロックを解除するための指令をＣＮＣ３００に送る。ＣＮＣ３００は、当該指令を受けたことに基づいて、加工プログラム３２２の実行を開始する。一方で、駆動制御の停止が選択された場合、制御装置２０１は、テーブル５５の駆動制御を停止する。
【０１１３】
ステップＳ２４２において、制御装置２０１は、オーバーライド値を２００％よりも大きくしない限り送り速度Ｆが危険速度Ｆｔｈを超えることがないため、加工プログラム３２２の実行のインターロックを解除するための指令をＣＮＣ３００に送る。ＣＮＣ３００は、当該指令を受けたことに基づいて、加工プログラム３２２の実行を開始する。
【０１１４】
なお、上述では、テーブル５５の現在の送り速度が移動先での危険速度を超えないか否かを判断する例について説明を行ったが、制御装置２０１は、さらに、テーブル５５の現在の送り速度がテーブル５５の現在位置での危険速度を超えないか否を判断してもよい。より具体的には、制御装置２０１は、テーブル５５の現在の送り速度が現在位置での危険速度と移動先での危険速度とのいずれかを超える場合、縄跳び現象を抑制するための予め定められた処理を実行する。これにより、工作機械１００は、縄跳び現象をより確実に抑制することができる。
【０１１５】
（Ｆ３．速度監視処理３）
次に、図１０を参照して、速度監視処理３について説明する。図１０は、速度監視処理３の制御フローを示す図である。
【０１１６】
典型的には、監視プログラム２２２は、デバッグモードでのデバッグ後に通常実行モードで実行される。そのため、通常実行モードで監視プログラム２２２が実行される場合には、監視プログラム２２２が正常である可能性が高い。そのため、工作機械１００は、通常実行モードの切削送り時においては、デバッグモードの切削送り時とは異なるようにテーブル５５の送り速度を監視する。一例として、工作機械１００は、通常実行モードの切削送り時においては、テーブル５５の現在位置に対して制御遅れ量を考慮した予想位置（移動先）での危険速度を算出し、テーブル５５の現在の送り速度が当該危険速度を超えている場合に、テーブル５５の駆動を停止する。
【０１１７】
より具体的には、ステップＳ３０８において、制御装置２０１は、タイマー（図示しない）をリセットする。当該タイマーは、たとえば、制御装置２０１に備えられる計時機能である。制御装置２０１は、タイマーのリセット後、タイマーのカウントを開始する。
【０１１８】
ステップＳ３１０において、制御装置２０１は、制御周期ΔＴ（図５参照）が到来したか否かを判断する。制御装置２０１は、制御周期ΔＴが到来したと判断した場合（ステップＳ３１０においてＹＥＳ）、制御をステップＳ３１２に切り替える。そうでない場合には（ステップＳ３１０においてＮＯ）、制御装置２０１は、制御をステップＳ３４０に切り替える。
【０１１９】
ステップＳ３１２において、制御装置２０１は、テーブル５５の現在位置ｐ１と、テーブル５５の現在の送り速度ＦＰとを取得する。現在位置ｐ１および送り速度ＦＰは、上述のＣＮＣ３００から取得される。より具体的には、現在位置ｐ１および送り速度ＦＰは、加工プログラム３２２に従って制御周期ΔＴごとに更新されている。ＣＮＣ３００は、現在位置ｐ１および送り速度ＦＰを上述のフレーム６０（図５参照）に書き込み、当該フレーム６０を制御周期ΔＴごとにＰＬＣ２００に送信する。ＰＬＣ２００の制御装置２０１は、受信したフレーム６０から現在位置ｐ１および送り速度ＦＰを取得する。
【０１２０】
ステップＳ３１３において、制御装置２０１は、送り速度ＦＰから監視対象の軸の送り速度Ｆを算出する。送り速度Ｆの算出方法については上述のステップＳ２１６で説明した通りであるので、その説明については繰り返さない。
【０１２１】
ステップＳ３１４において、制御装置２０１は、制御遅れ量Δｍを算出する。監視プログラム２２２は、ラダープログラムで記述されているため、ステップＳ３１２で取得した現在位置ｐ１は、１制御周期分遅れている。そのため、制御装置２０１は、下記式（７）に基づいて、制御遅れ量Δｍを算出する。
【０１２２】
Δｍ＝（Ｆ／６００００）＊Ｖ＊ΔＴ＊ｐ・・・（７）
式（７）に示される「Ｆ」は、ステップＳ３１３で算出された送り速度を表す。「Ｆ」の単位は、たとえば、「ｍｍ／ｍｉｎ」で表される。「Ｆ／６００００」により、単位が「ｍｍ／ｍｉｎ」から「ｍｍ／ｍｓ」に変換される。「Ｖ」は、現在設定されているオーバーライド値を示す。切削送り時におけるオーバーライド値は、加工プログラム３２２に規定されている送り速度を基準（＝１００％）とした倍率を示す。ユーザは、工作機械１００の操作盤（図示しない）のダイヤルを調整することでオーバーライド値を手動で調整することができる。「ΔＴ」は、ラダープログラムの制御周期を示す。「ΔＴ」の単位は、たとえば、「ｍｓ」である。「ｐ」は、制御マージンを示す。「ｐ」は、予め定められた定数である。
【０１２３】
ステップＳ３１６において、制御装置２０１は、ステップＳ３１２で取得した現在位置ｐ１と、ステップＳ３１４で算出した制御遅れ量Δｍとに基づいて、推定位置ｐ２を算出する。推定位置ｐ２は、制御遅れ量Δｍを考慮したテーブル５５の移動先を示す。より具体的には、制御装置２０１は、下記式（８）に示されるように、現在位置ｐ１に制御遅れ量Δｍを加算し、推定位置ｐ２を算出する。
【０１２４】
ｐ２＝ｐ１＋Δｍ・・・（８）
ステップＳ３１８において、制御装置２０１は、上述の速度規定１２４（図２参照）を参照して、推定位置ｐ２における危険速度Ｆｔｈを特定する。
【０１２５】
ステップＳ３２０において、制御装置２０１は、ステップＳ３１３で算出した送り速度ＦがステップＳ３１８で特定した危険速度Ｆｔｈを超えているか否かを判断する。制御装置２０１は、送り速度Ｆが危険速度Ｆｔｈを超えていると判断した場合（ステップＳ３２０においてＹＥＳ）、制御をステップＳ３３０に切り替える。そうでない場合には（ステップＳ３２０においてＮＯ）、制御装置２０１は、制御をステップＳ３２２に切り替える。
【０１２６】
ステップＳ３２２において、制御装置２０１は、タイマーをリセットする。制御装置２０１は、タイマーのリセット後、タイマーのカウントを開始する。
【０１２７】
ステップＳ３３０において、制御装置２０１は、タイマーの計測時間が所定時間を超えたか否かを判断する。すなわち、制御装置２０１は、送り速度Ｆが危険速度Ｆｔｈを超えている時間が所定時間を経過したか否かを判断する。制御装置２０１は、タイマーの計測時間が所定時間を超えたと判断した場合（ステップＳ３３０においてＹＥＳ）、制御をステップＳ３３２に切り替える。そうでない場合には（ステップＳ３３０においてＮＯ）、制御装置２０１は、制御をステップＳ３４０に切り替える。
【０１２８】
ステップＳ３３２において、制御装置２０１は、エラーメッセージ「送り速度異常」をディスプレイ３３０（図７参照）に表示し、加工プログラム３２２を一時停止する。
【０１２９】
ステップＳ３４０において、制御装置２０１は、切削送りが継続しているか否かを判断する。制御装置２０１は、切削送りが継続していると判断した場合（ステップＳ３４０においてＹＥＳ）、制御をステップＳ３１０に戻す。そうでない場合には（ステップＳ３４０においてＮＯ）、制御装置２０１は、図１０に示される速度監視処理３を終了する。
【０１３０】
＜Ｇ．まとめ＞
以上のようにして、工作機械１００は、ボールねじ５４の制御プログラムに基づいて、テーブル５５の移動先である目標位置と、テーブル５５の現在の送り速度とを特定する。次に、工作機械１００は、速度規定１２４に基づいて、目標位置での上限速度を特定し、現在の送り速度が目標位置での上限速度よりも大きいか否かを判断する。工作機械１００は、現在の送り速度が目標位置での上限速度よりも大きいと判断した場合、縄跳び現象を抑制するための予め定められた処理を実行する。これにより、工作機械１００は、テーブル５５の送り速度が移動先において危険速度を超えるか否かを予め判断でき、ワークＷの加工前に何らかの処置を取ることができる。
【０１３１】
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３２】
２１  主軸頭、２２  主軸、２３  ハウジング、２５，５２，５４  ボールねじ、３０  自動工具交換装置、３１  マガジン、３２  工具、３３  押出し機構、３４  工具保持部、３５  スプロケット、３６  アーム、５０  移動機構、５１，５３  ガイド、５４Ａ  ねじ軸、５４Ｂ  ナット、５５  テーブル、６０  フレーム、６１Ａ，６１Ｂ  データ領域、１００  工作機械、１１１Ａ，１１１Ｂ，１１１Ｃ，１１１Ｄ  サーボドライバ、１１２Ａ  サーボモータ、１１３Ａ  エンコーダ、１２４  速度規定、１２４Ａ，１２４Ｂ  区間、２００  ＰＬＣ、２０１，３０１  制御装置、２０２，３０２  ＲＯＭ、２０３，３０３  ＲＡＭ、２０４，３０４  通信インターフェイス、２０６  フィールドバスコントローラ、２２０，３２０  記憶装置、２２２  監視プログラム、３０５  表示インターフェイス、３０９  入力インターフェイス、３２２  加工プログラム、３２４  変数情報、３３０  ディスプレイ、３３１  入力デバイス。
【図１】
2020113112.tif 000003
【図２】
2020113112.tif 000004
【図３】
2020113112.tif 000005
【図４】
2020113112.tif 000006
【図５】
2020113112.tif 000007
【図６】
2020113112.tif 000008
【図７】
2020113112.tif 000009
【図８】
2020113112.tif 000010
【図９】
2020113112.tif 000011
【図１０】
2020113112.tif 000012