(57)【要約】【課題】モータが加速又は減速しながら回転する時を適切に判定し、該時に工具の異常の検出を行わないようにできる数値制御装置、数値制御方法、及び数値制御プログラムを提供する。【解決手段】数値制御装置は、ＮＣプログラムの命令が速度制御か位置制御かを判定する（Ｓ４７）。数値制御装置は、位置制御と判定した時（Ｓ４７：ＹＥＳ）、加速度情報に基づいて、モータが加減速中か定速中かを判定する。数値制御装置は、速度制御と判定した時（Ｓ４７：ＮＯ）、速度情報と計測情報に基づいて、モータが加減速中か定速中かを判定する。数値制御装置は、モータに流れる電流を検出する（Ｓ５５）。数値制御装置は、モータが定速中であると判定した時、検出した電流に基づいて工具の異常発生の有無を判定する（Ｓ５７）。数値制御装置は、モータが加減速中であると判定した時、異常発生の有無を判定しない。【選択図】図８
2020013433.tif 000002
【特許請求の範囲】
【請求項１】
被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、ＮＣプログラムに含まれる速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御、及び、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御を実行可能な数値制御装置において、
前記ＮＣプログラムの命令が前記速度制御か前記位置制御かを判定する第一判定手段と、
前記第一判定手段により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出手段と、
前記算出手段により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定手段と、
前記第一判定手段により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定手段と、
前記第一判定手段により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶手段と、
前記速度記憶手段によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定手段と、
前記第三判定手段により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定手段により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定手段により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定手段により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定手段と、
前記モータに流れる電流を検出する検出手段と、
前記第二判定手段又は前記第五判定手段により、前記モータが定速中であると判定した時、前記検出手段により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定手段と、
を備え、
前記第六判定手段は、
前記第二判定手段又は前記第五判定手段により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする数値制御装置。
【請求項２】
前記機械装置は、
前記被削材に対して前記工具を相対的に回転させる為の第一モータ、及び、前記被削材に対して前記工具を相対的に移動させる為の第二モータを備え、
前記位置制御を行う時、前記第一モータは、前記第二モータに同期して回転し、
前記第一判定手段により前記位置制御と判定した時、
前記算出手段は、前記第二モータに対する前記位置指令を二階微分して前記加速度情報を算出し、
前記第二判定手段は、前記加速度情報と前記所定閾値との関係に基づいて、前記第一モータが加減速中か又は定速中か判定し、
前記第六判定手段は、前記第一モータの前記電流に基づき、前記工具の異常発生の有無を判定することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記機械装置は、
前記被削材に対して前記工具を相対的に回転させる為の第一モータ、及び、前記被削材に対して前記工具を相対的に移動させる為の第二モータを備え、
前記位置制御を行う時、前記第二モータは、前記第一モータに同期して回転し、
前記算出手段は、前記第一モータに対する前記位置指令を二階微分して前記加速度情報を算出し、
前記第二判定手段は、前記加速度情報と前記所定閾値との関係に基づいて、前記第二モータが加減速中か又は定速中か判定し、
前記第六判定手段は、前記第二モータの前記電流に基づき、前記工具の前記異常発生の有無を判定することを特徴とする請求項１に記載の数値制御装置。
【請求項４】
前記異常発生の有無を判定するか否かを示す情報を記憶する第一記憶部と、
前記第六判定手段による最初の判定の前に、前記異常発生の有無を判定しないことを示す判定停止情報を前記第一記憶部に記憶する第一記憶制御手段と、
前記第一記憶部に前記判定停止情報を記憶した状態で、前記第二判定手段又は前記第五判定手段により、前記モータが定速中と判定した時、前記異常発生の有無を判定することを示す判定中情報を前記第一記憶部に記憶する第二記憶制御手段と、
前記第一記憶部に前記判定中情報を記憶した状態で、前記第二判定手段又は前記第五判定手段により、前記モータが加減速中と判定した時、前記判定停止情報を前記第一記憶部に記憶する第三記憶制御手段と
を備え、
前記第六判定手段は、
前記第一記憶部が前記判定中情報を記憶している時、前記異常発生の有無を判定し、前記第一記憶部が前記判定停止情報を記憶している時、前記異常発生の有無を判定しないことを特徴とする請求項１から３の何れかに記載の数値制御装置。
【請求項５】
前記ＮＣプログラムは、前記異常発生の有無の判定を開始することを示す開始命令、及び、前記異常発生の有無の判定を終了することを示す終了命令を有し、
前記第六判定手段は、
前記開始命令を読み出してから、次に前記終了命令を読み出すまでの間、前記工具の前記異常発生の有無を判定し、
前記終了命令を読み出してから、次に前記開始命令を読み出すまでの間、前記工具の前記異常発生の有無を判定しないことを特徴とする請求項１から４の何れかに記載の数値制御装置。
【請求項６】
ＮＣプログラムに含まれ、被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御か、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御かを判定する第一判定工程と、
前記第一判定工程により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出工程と、
前記算出工程により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定工程と、
前記第一判定工程により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定工程と、
前記第一判定工程により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶工程と、
前記速度記憶工程によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定工程と、
前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定工程と、
前記モータに流れる電流を検出する検出工程と、
前記第二判定工程又は前記第五判定工程により、前記モータが定速中であると判定した時、前記検出工程により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定工程と、
を備え、
前記第六判定工程は、
前記第二判定工程又は前記第五判定工程により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする数値制御方法。
【請求項７】
ＮＣプログラムに含まれ、被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御か、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御かを判定する第一判定工程と、
前記第一判定工程により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出工程と、
前記算出工程により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定工程と、
前記第一判定工程により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定工程と、
前記第一判定工程により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶工程と、
前記速度記憶工程によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定工程と、
前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定工程と、
前記モータに流れる電流を検出する検出工程と、
前記第二判定工程又は前記第五判定工程により、前記モータが定速中であると判定した時、前記検出工程により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定工程と、
をコンピュータに実行させる為の数値制御プロプラムであって、
前記第六判定工程は、
前記第二判定工程又は前記第五判定工程により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする数値制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値制御装置、数値制御方法、及び数値制御プログラムに関する。
【背景技術】
【０００２】
工具を駆動するモータの電流値に基づいて工具の異常を検出する数値制御装置が公知である。特許文献１は、工具の刃こぼれの検知機能を有する数値制御装置を開示する。該数値制御装置は、主軸用サーボドライバから取得した電流値と、切削負荷の基準値を比較する。電流値は、主軸用サーボの負荷トルクを表す。故に、数値制御装置は電流値が基準値よりも大きい時、過剰な負荷トルクが主軸用サーボに作用したと判定する。該時、数値制御装置は工具の刃こぼれが発生したことを表す異常検知信号を出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３２６４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
モータが加速又は減速しながら回転する時、定速で回転する時と比べて、該電流値は、負荷トルク以外の要因で変動し易くなる。故に、数値制御装置は、モータの加速又は減速時に取得した電流値に基づき工具の異常を検出した時、誤検出の可能性が高くなる。従って数値制御装置は、モータが加速又は減速しながら回転する時に工具の異常を検出せず、モータが定速で回転するときに工具の異常を検することが好ましい。
【０００５】
本発明の目的は、モータが加速又は減速しながら回転する時を適切に判定し、該時に工具の異常の検出を行わないようにできる数値制御装置、数値制御方法、及び数値制御プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の第一態様に係る数値制御装置は、被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、ＮＣプログラムに含まれる速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御、及び、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御を実行可能な数値制御装置において、前記ＮＣプログラムの命令が前記速度制御か前記位置制御かを判定する第一判定手段と、前記第一判定手段により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出手段と、前記算出手段により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定手段と、前記第一判定手段により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定手段と、前記第一判定手段により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶手段と、前記速度記憶手段によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定手段と、前記第三判定手段により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定手段により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定手段により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定手段により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定手段と、前記モータに流れる電流を検出する検出手段と、前記第二判定手段又は前記第五判定手段により、前記モータが定速中であると判定した時、前記検出手段により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定手段と、を備え、前記第六判定手段は、前記第二判定手段又は前記第五判定手段により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする。
【０００７】
数値制御装置は、モータが定速中と判定した時に工具の異常発生の有無を判定し、モータが加減速中と判定した時に工具の異常発生の有無を判定しない。このため、モータが加減速中に工具の異常発生とは別の要因で電流が変動した場合に、工具の異常発生を誤って判定しない。数値制御装置は、位置制御によりモータを制御する時と、速度制御によりモータを制御する時とで、異なる判定方法に基づき、モータが加減速中か又は定速中かを判定する。従って、数値制御装置は、夫々の制御方式に応じた適切な判定方法により、モータが加減速中か定速中かを適切に判定できる。従って、数値制御装置は、工具の異常発生の精度を高めることができる。
【０００８】
第一態様において、前記機械装置は、前記被削材に対して前記工具を相対的に回転させる為の第一モータ、及び、前記被削材に対して前記工具を相対的に移動させる為の第二モータを備え、前記位置制御を行う時、前記第一モータは、前記第二モータに同期して回転し、前記第一判定手段により前記位置制御と判定した時、前記算出手段は、前記第二モータに対する前記位置指令を二階微分して前記加速度情報を算出し、前記第二判定手段は、前記加速度情報と前記所定閾値との関係に基づいて、前記第一モータが加減速中か又は定速中か判定し、前記第六判定手段は、前記第一モータの前記電流に基づき、前記工具の異常発生の有無を判定してもよい。数値制御装置は、位置制御を行う際に、第一モータが第二モータに同期することにより混入するノイズの影響を受けずに、第一モータが加減速中か定速中かを判定することができる。従って、数値制御装置は、加減速中か又は定速中かの判定を適切に実行できるので、異常発生の有無の判定の精度を向上できる。
【０００９】
第一態様において、前記機械装置は、前記被削材に対して前記工具を相対的に回転させる為の第一モータ、及び、前記被削材に対して前記工具を相対的に移動させる為の第二モータを備え、前記位置制御を行う時、前記第二モータは、前記第一モータに同期して回転し、前記算出手段は、前記第一モータに対する前記位置指令を二階微分して前記加速度情報を算出し、前記第二判定手段は、前記加速度情報と前記所定閾値との関係に基づいて、前記第二モータが加減速中か又は定速中か判定し、前記第六判定手段は、前記第二モータの前記電流に基づき、前記工具の前記異常発生の有無を判定してもよい。数値制御装置は、前記位置制御を行う際に、前記第二モータが前記第一モータに同期することにより混入するノイズの影響を受けずに、第二モータが加減速中か定速中かを判定することができる。従って、数値制御装置は、加減速中か又は定速中かの判定を適切に実行できるので、異常発生の有無の判定の精度を向上できる。
【００１０】
第一態様において、前記異常発生の有無を判定するか否かを示す情報を記憶する第一記憶部と、前記第六判定手段による最初の判定の前に、前記異常発生の有無を判定しないことを示す判定停止情報を前記第一記憶部に記憶する第一記憶制御手段と、前記第一記憶部に前記判定停止情報を記憶した状態で、前記第二判定手段又は前記第五判定手段により、前記モータが定速中と判定した時、前記異常発生の有無を判定することを示す判定中情報を前記第一記憶部に記憶する第二記憶制御手段と、前記第一記憶部に前記判定中情報を記憶した状態で、前記第二判定手段又は前記第五判定手段により、前記モータが加減速中と判定した時、前記判定停止情報を前記第一記憶部に記憶する第三記憶制御手段とを備え、前記第六判定手段は、前記第一記憶部が前記判定中情報を記憶している時、前記異常発生の有無を判定し、前記第一記憶部が前記判定停止情報を記憶している時、前記異常発生の有無を判定しなくてもよい。該時、モータが加減速中か又は定速中かに応じて異常発生の有無の判定を適切に実行できる。
【００１１】
第一態様において、前記ＮＣプログラムは、前記異常発生の有無の判定を開始することを示す開始命令、及び、前記異常発生の有無の判定を終了することを示す終了命令を有し、前記第六判定手段は、前記第二記憶部から前記開始命令を読み出してから、次に前記終了命令を読み出すまでの間、前記工具の異常発生の有無を判定し、前記第二記憶部から前記終了命令を読み出してから、次に前記開始命令を読み出すまでの間、前記工具の前記異常発生の有無を判定しなくてもよい。該時、数値制御装置は、モータの制御命令とともに第二記憶部に記憶した開始命令と終了命令とに基づき、異常発生の有無の判定期間を指定できる。
【００１２】
本発明の第二態様に係る数値制御方法は、ＮＣプログラムに含まれ、被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御か、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御かを判定する第一判定工程と、前記第一判定工程により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出工程と、前記算出工程により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定工程と、前記第一判定工程により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定工程と、前記第一判定工程により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶工程と、前記速度記憶工程によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定工程と、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定工程と、前記モータに流れる電流を検出する検出工程と、前記第二判定工程又は前記第五判定工程により、前記モータが定速中であると判定した時、前記検出工程により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定工程と、を備え、前記第六判定工程は、前記第二判定工程又は前記第五判定工程により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする。第二態様によれば、第一態様と同様の効果を奏することができる。
【００１３】
本発明の第三態様に係る数値制御プログラムは、ＮＣプログラムに含まれ、被削材を加工する工具と前記被削材とを相対的に回転及び移動させる為のモータ及び駆動回路を備えた機械装置に対して、速度命令に基づく速度指令を前記駆動回路に周期的に出力する速度制御か、位置命令に基づく位置指令を前記駆動回路に周期的に出力する位置制御かを判定する第一判定工程と、前記第一判定工程により前記位置制御と判定した時、前記位置命令に基づく前記位置指令を二階微分して加速度情報を算出する算出工程と、前記算出工程により算出した前記加速度情報の絶対値が所定閾値よりも大きい時、前記モータが加減速中であると判定し、前記加速度情報の絶対値が前記所定閾値以下の時、前記モータが定速中であると判定する第二判定工程と、前記第一判定工程により前記速度制御と判定した時、前記速度命令に基づく前記速度指令と、前記モータの回転速度を計測した計測情報とが同一か否か判定する第三判定工程と、前記第一判定工程により前記速度制御と判定した時、前記速度指令を記憶指令として記憶する速度記憶工程と、前記速度記憶工程によって前回記憶した前記記憶指令と、前記速度指令が同一か否か判定する第四判定工程と、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定してから、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定するまでの間、前記モータが定速中であると判定し、前記第四判定工程により、前記記憶指令と前記速度指令が同一でないと判定してから、前記第三判定工程により、前記速度指令と前記計測情報とが同一であると判定するまでの間、前記モータが加減速中であると判定する第五判定工程と、前記モータに流れる電流を検出する検出工程と、前記第二判定工程又は前記第五判定工程により、前記モータが定速中であると判定した時、前記検出工程により検出した前記電流に基づいて前記工具の異常発生の有無を判定する第六判定工程と、をコンピュータに実行させる為の数値制御プロプラムであって、前記第六判定工程は、前記第二判定工程又は前記第五判定工程により、前記モータが加減速中であると判定した時、前記異常発生の有無を判定しないことを特徴とする。第三態様によれば、第一態様と同様の効果を奏することができる。
【図面の簡単な説明】
【００１４】
【図１】工作機械１の斜視図。
【図２】工作機械１と数値制御装置３０の電気的構成を示すブロック図。
【図３】ＮＣプログラムの一例を示す図。
【図４】駆動回路５１Ａ、５２Ａの詳細を示す図。
【図５】位置制御の場合の位置情報、速度情報、加速度情報を示すグラフ。
【図６】速度制御の場合の速度情報、計測情報、速度情報／計測情報を示すグラフ。
【図７】メイン処理の流れ図。
【図８】異常判定処理の流れ図。
【図９】第一判定処理の流れ図。
【図１０】第二判定処理の流れ図。
【発明を実施するための形態】
【００１５】
＜工作機械１の概要＞
本発明の実施形態を説明する。以下説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は夫々工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。図１に示す工作機械１は主軸９に装着した工具４を回転し、且つ、被削材３を上面に保持したテーブル１３を移動する。工作機械１は工具４及び被削材３を相対的に回転又は移動し、工具４により被削材３に切削加工を施す。数値制御装置３０（図２参照）は工作機械１の動作を制御する。
【００１６】
図１を参照し、工作機械１の構造を説明する。工作機械１は、基台２、コラム５、主軸ヘッド７、主軸９、テーブル装置１０、工具交換装置２０、制御箱６、操作パネル１５（図２参照）等を備える。基台２は金属製の略直方体状の土台である。コラム５は基台２上部後方に立設する。主軸ヘッド７はコラム５前面に沿ってＺ軸方向に移動可能に設ける。主軸ヘッド７は内部に主軸９を回転可能に支持する。主軸９は主軸ヘッド７下部に装着穴（図示略）を有する。主軸９は該装着穴に工具４を装着し、主軸モータ５２（図２参照）の駆動で回転する。該時、工具４は被削材３に対して相対的に回転する。主軸モータ５２は主軸ヘッド７に設ける。主軸ヘッド７はコラム５前面に設けたＺ軸移動機構（図示略）でＺ軸方向に移動する。数値制御装置３０はＺ軸モータ５１の駆動を制御することで、主軸ヘッド７をＺ軸方向に移動制御する。
【００１７】
テーブル装置１０は、Ｙ軸移動機構（図示略）、Ｙ軸テーブル１２、Ｘ軸移動機構（図示略）、テーブル１３等を備える。Ｙ軸移動機構は基台２上面前側に設け、一対のＹ軸レール、Ｙ軸ボール螺子、Ｙ軸モータ５４（図２参照）等を備える。一対のＹ軸レールとＹ軸ボール螺子はＹ軸方向に延びる。一対のＹ軸レールは上面にＹ軸テーブル１２をＹ軸方向に案内する。Ｙ軸テーブル１２は略直方体状に形成し、底部外面にナット（図示略）を備える。該ナットはＹ軸ボール螺子に螺合する。Ｙ軸モータ５４がＹ軸ボール螺子を回転すると、Ｙ軸テーブル１２はナットと共に一対のＹ軸レールに沿って移動する。故にＹ軸移動機構はＹ軸テーブル１２をＹ軸方向に移動可能に支持する。
【００１８】
Ｘ軸移動機構はＹ軸テーブル１２上面に設け、一対のＸ軸レール（図示略）、Ｘ軸ボール螺子（図示略）、Ｘ軸モータ５３（図２参照）等を備える。Ｘ軸レールとＸ軸ボール螺子はＸ軸方向に延びる。テーブル１３は平面視矩形板状に形成し、Ｙ軸テーブル１２上面に設ける。テーブル１３は底部にナット（図示略）を備える。該ナットはＸ軸ボール螺子に螺合する。Ｘ軸モータ５３がＸ軸ボール螺子を回転すると、テーブル１３はナットと共に一対のＸ軸レールに沿って移動する。Ｘ軸移動機構はテーブル１３をＸ軸方向に移動可能に支持する。故にテーブル１３は、Ｙ軸移動機構、Ｙ軸テーブル１２、Ｘ軸移動機構により、基台２上をＸ軸方向とＹ軸方向に移動可能である。テーブル１３がＸ軸方向とＹ軸方向に移動する時、被削材３は工具４に対してＸ軸方向とＹ軸方向に相対的に移動する。
【００１９】
工具交換装置２０は主軸ヘッド７の前側に設け、円盤型の工具マガジン２１を備える。工具マガジン２１は外周に複数の工具（図示略）を放射状に保持し、工具交換命令が指示する工具を工具交換位置に位置決めする。工具交換命令はＮＣプログラムで命令する。工具交換位置は工具マガジン２１の最下部位置である。工具交換装置２０は主軸９に装着する工具４と工具マガジン２１に取り付けられた工具とを主軸ヘッド７の上昇、工具マガジン２１の回転、主軸ヘッド７の下降の一連の動作により入れ替え交換する。
【００２０】
制御箱６は数値制御装置３０(図２参照）を格納する。数値制御装置３０は、工作機械１に設けたＺ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４(図２参照）を夫々制御し、テーブル１３上に保持した被削材３と主軸９に装着した工具４を相対移動することで各種加工を被削材３に施す。各種加工とは、例えばドリル等を用いた穴空け加工、タップ等を用いた螺子穴加工、エンドミル、フライス等を用いた側面加工等である。
【００２１】
操作パネル１５は、例えば工作機械１を覆うカバー（図示略）の外壁に設ける。操作パネル１５は入力部１６と表示部１７(図２参照）を備える。入力部１６は各種情報、操作指示等の入力を受け付け、後述する数値制御装置３０に出力する。表示部１７は後述する数値制御装置３０からの命令に基づき、各種画面を表示する。
【００２２】
＜電気的構成＞
図２を参照し、数値制御装置３０と工作機械１の電気的構成を説明する。数値制御装置３０と工作機械１は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、記憶装置３４、入出力部３５、駆動回路５１Ａ〜５５Ａ等を備える。ＣＰＵ３１は数値制御装置３０を統括制御する。ＲＯＭ３２は、メインプログラム等を記憶する。ＣＰＵ３１は、メインプログラムを読み出して実行することで、メイン処理（図７参照）を実行する。メイン処理は、ＮＣプログラムの命令を一行ずつ読み出し、対応する各種動作を実行する。ＮＣプログラムは各種命令（速度命令、位置命令、有効命令、無効命令）を含む複数行で構成する。ＮＣプログラムは、工作機械１の各種動作を行単位で制御する。ＲＡＭ３３は、後述の第一フラグ情報、第二フラグ情報、比較速度情報を含む各種情報を一時的に記憶する。記憶装置３４は不揮発性であり、ＮＣプログラム、各種情報を記憶する。ＣＰＵ３１は作業者が操作パネル１５の入力部１６で入力したＮＣプログラムに加え、外部入力で読み出したＮＣプログラム等を記憶装置３４に記憶できる。
【００２３】
駆動回路５１ＡはＺ軸モータ５１、エンコーダ５１Ｂ、電流検出器５１Ｃ、速度検出器５１Ｄに接続する。駆動回路５２Ａは主軸モータ５２、エンコーダ５２Ｂ、電流検出器５２Ｃ、速度検出器５２Ｄに接続する。駆動回路５３ＡはＸ軸モータ５３、エンコーダ５３Ｂ、電流検出器５３Ｃに接続する。駆動回路５４ＡはＹ軸モータ５４、エンコーダ５４Ｂ、電流検出器５４Ｃに接続する。駆動回路５５Ａは工具マガジン２１を駆動するマガジンモータ５５、エンコーダ５５Ｂ、電流検出器５５Ｃに接続する。Ｚ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５は何れもサーボモータである。Ｚ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５を区別しない時、「モータ５０」と総称する。駆動回路５１Ａ〜５５Ａは、ＣＰＵ３１が周期的に出力する指令を受け、対応するモータ５０に駆動電流を出力する。エンコーダ５１Ｂ〜５５Ｂは、対応するモータ５０の回転角を検出する。エンコーダ５１Ｂ〜５５Ｂは、検出した回転角に応じたパルス信号を、対応する駆動回路５１Ａ〜５５Ａに出力する。駆動回路５１Ａ〜５５Ａはエンコーダ５１Ｂ〜５５Ｂが出力した信号を受け、ＣＰＵ３１に出力する。電流検出器５１Ｃ〜５５Ｃは対応するモータ５０に流れる電流を検出する。電流検出器５１Ｃ〜５５Ｃは、検出した電流を示す信号を、対応する駆動回路５１Ａ〜５５Ａに出力する。駆動回路５１Ａ〜５５Ａは電流検出器５１Ｃ〜５５Ｃが出力した信号を受け、ＣＰＵ３１に出力する。速度検出器５１Ｄ、５２Ｄは対応するモータ５０の回転速度を検出する。速度検出器５１Ｄ、５２Ｄは、検出した回転速度を示す信号を、対応する駆動回路５１Ａ、５２Ａに出力する。駆動回路５１Ａ〜５５Ａは速度検出器５１Ｄ〜５５Ｄが出力した信号を受け、ＣＰＵ３１に出力する。入出力部３５は操作パネル１５の入力部１６と表示部１７に夫々接続する。
【００２４】
＜異常判定処理の概要＞
数値制御装置３０のＣＰＵ３１は、工具４による被削材３の切削動作中に主軸モータ５２に流れる電流を、対応する電流検出器５２Ｃ及び駆動回路５２Ａを介して取得する。ＣＰＵ３１が取得した電流が所定の第二閾値を超えた時、工具４に過剰な負荷が作用している可能性がある。従って、ＣＰＵ３１は、取得した電流が第二閾値を超えた時、工具４に異常が発生したと判定する。
【００２５】
主軸モータ５２の回転速度が加速又は減速する時、工作機械１は振動し易い。該振動は、被削材３の切削動作中に取得する電流の誤差の要因となる可能性がある。従って、ＣＰＵ３１は、主軸モータ５２の回転速度が加速又は減速する時、電流に基づく工具４の異常発生の有無の判定を行わない。一方、ＣＰＵ３１は、主軸モータ５２が定速で回転する時、電流に基づく工具４の異常発生の有無の判定を行う。以下、該処理を「異常判定処理」と称す。主軸モータ５２の回転速度が加速又は減速する時を、「主軸モータ５２が加減速中」と言い換える。主軸モータ５２が定速で回転する時を、「主軸モータ５２が定速中」と言い換える。
【００２６】
＜ＮＣプログラムの具体例（位置制御と速度制御）＞
図３（ａ）は、記憶装置３４に記憶したＮＣプログラムの具体例を示す。ＮＣプログラムは、所定の順番に並ぶ複数の命令を含む。図３（ｂ）は、各命令の内容を示す。
【００２７】
「Ｎ０２」「Ｎ０６」は、切削動作に使用する工具４を交換する為の工具交換命令「Ｍ０６」を含む。工具交換命令は、交換後の工具４を規定する。ＣＰＵ３１は、工具交換命令を読み出した時、駆動回路５１Ａ及び駆動回路５５Ａを制御してＺ軸モータ５１及びマガジンモータ５５を駆動する。該時、工具交換装置２０は工具４を交換する。「Ｎ０３」「Ｎ０７」は、被削材３に対する工具４の位置決めを実行する為の命令「Ｇ００」を含む。該命令は、工具４のＸ軸方向、Ｙ軸方向、Ｚ軸方向の少なくとも何れかの位置情報を規定する。ＣＰＵ３１は、該命令を読み出した時、該命令に基づく位置指令を算出し、駆動回路５３Ａ、５４Ａ、５１Ａに対して周期的に出力する。該時、駆動回路５１Ａ、５３Ａ、５４Ａは各々、Ｘ軸モータ５３、Ｙ軸モータ５４、Ｚ軸モータ５１に駆動電流を出力し、Ｘ軸モータ５３、Ｙ軸モータ５４、Ｚ軸モータ５１を駆動する。該時、テーブル１３はＸ軸移動機構、Ｙ軸移動機構によりＸ軸方向、Ｙ軸方向に移動する。又、主軸ヘッド７はＺ軸方向に移動する。
【００２８】
「Ｎ０８」は、工具４としてタップを使用し、穴の内側にめねじを形成する切削動作（以下、「タップ切削」と称す。）を実行する為の命令「Ｇ８４」（以下、「タップ切削命令」と称す。）を含む。タップ切削命令は、工具４のＺ軸方向の位置情報「Ｚ−１０」、工具４のＺ軸方向の移動速度情報「Ｆ２００」、及び、主軸９の回転速度情報「Ｓ２００」を少なくとも規定する。ＣＰＵ３１は、タップ切削命令「Ｇ８４」を読み出した時、該命令に基づくＺ軸方向の位置指令（以下、「Ｚ軸位置指令」と称す。）を算出し、駆動回路５１ＡにＺ軸位置指令を周期的に出力する。駆動回路５１Ａは、Ｚ軸モータ５１を駆動する。該時、主軸ヘッド７はＺ軸移動機構により、「Ｚ−１０」（位置情報）まで「２００ｍｍ／ｍｉｎ」（移動速度情報）でＺ軸方向に移動する。同時に後述の補正用演算器３６Ｂ（図４参照）は、Ｚ軸位置指令に同期する主軸９の位置指令（以下、「主軸位置指令」と称す。）を算出し、駆動回路５２Ａに主軸位置指令を周期的に出力する。駆動回路５２Ａは、Ｚ軸モータ５１に同期して主軸モータ５２を駆動する。該時、主軸９は、主軸ヘッド７の移動に同期して、「２００ｒｐｍ」（回転速度情報）で回転する。以下、タップ切削を実行する為のＺ軸モータ５１及び主軸モータ５２の制御方式を、「位置制御」と称す。タップ切削命令「Ｇ８４」のうちＺ軸位置指令及び主軸位置指令算出する為の命令を、それぞれ「位置命令」と称す。
【００２９】
図４を参照し、タップ切削を実行する場合の位置制御を詳細に説明する。ＣＰＵ３１はＺ軸位置指令を演算器３６Ａに周期的に出力する。演算器３６Ａは入力したＺ軸位置指令を、偏差カウンタ３７Ｂに出力する。Ｚ軸モータ５１に設けたエンコーダ５１Ｂは、Ｚ軸モータ５１の回転角に応じたパルス信号を偏差カウンタ３７Ｂに出力する。偏差カウンタ３７Ｂは、入力したＺ軸位置指令とパルス信号との偏差を算出する。偏差カウンタ３７Ｂは、算出した偏差をサーボアンプ３８Ｂに出力する。速度検出器５１Ｄは、エンコーダ５１Ｂが出力したパルス信号に基づいてＺ軸モータ５１の回転速度を検出し、回転速度を示す信号をサーボアンプ３８Ｂに出力する。サーボアンプ３８Ｂは、速度検出器５１Ｄから入力した回転速度を示す信号をフィードバック信号として用い、偏差カウンタ３７Ｂから入力した偏差を補正する。サーボアンプ３８Ｂは補正した偏差に基づき、Ｚ軸モータ５１に駆動電流を出力する。Ｚ軸モータ５１は、現時点での回転速度に応じて補正したＺ軸位置指令に基づいて回転する。該時、主軸ヘッド７はＺ軸方向に移動する。
【００３０】
又、演算器３６Ａは入力したＺ軸位置指令を、補正用演算器３６Ｂに出力する。エンコーダ５１Ｂは、Ｚ軸モータ５１の回転角に応じたパルス信号を補正用演算器３６Ｂに出力する。補正用演算器３６Ｂは、エンコーダ５１Ｂから入力したパルス信号をフィードバック信号として用い、演算器３６Ａから入力したＺ軸位置指令を補正する。補正用演算器３６Ｂは、補正した指令より主軸位置指令を算出して偏差カウンタ３７Ａに出力する。主軸モータ５２に設けたエンコーダ５２Ｂは、主軸モータ５２の回転角に応じたパルス信号を偏差カウンタ３７Ａに出力する。偏差カウンタ３７Ａは、入力した主軸位置指令とパルス信号との偏差を算出する。偏差カウンタ３７Ａは、算出した偏差をサーボアンプ３８Ａに出力する。速度検出器５２Ｄは、エンコーダ５２Ｂが出力したパルス信号に基づいて主軸モータ５２の回転速度を検出し、回転速度を示す信号をサーボアンプ３８Ａに出力する。サーボアンプ３８Ａは、速度検出器５２Ｄから入力した回転速度を示す信号をフィードバック信号として用い、偏差カウンタ３７Ａから入力した偏差を補正する。サーボアンプ３８Ａは補正した偏差に基づき、主軸モータ５２に駆動電流を出力する。主軸モータ５２は、現時点での回転速度に応じて補正した主軸位置指令に基づいて回転する。該時、主軸ヘッド７は、Ｚ軸方向の移動に同期して回転する。故に、主軸位置指令はＺ軸位置指令に同期する。
【００３１】
尚、位置制御の場合において、図４の偏差カウンタ３７Ｂ、サーボアンプ３８Ｂは、図２の駆動回路５１Ａに対応する。位置制御の場合において、図４の偏差カウンタ３７Ａ、サーボアンプ３８Ａは、図２の駆動回路５２Ａに対応する。
【００３２】
「Ｎ０２」は主軸９を一定速度で正方向に回転させる為の命令「Ｍ０３」を含む。該命令は、主軸９の回転速度情報「Ｓ２０００」を少なくとも規定する。尚、「Ｎ０５」以降における主軸９の回転速度情報は、「Ｎ０５」の命令において「Ｓ１０００」に規定してある。補正用演算器３６Ｂ（図４参照）は、該命令に基づく主軸９の速度指令（以下、「主軸速度指令」と称す。）を算出し、駆動回路５２Ａに主軸速度指令を周期的に出力する。駆動回路５２Ａは主軸モータ５２を駆動する。該時、主軸９は、「２０００ｒｐｍ」で回転する。以下、命令「Ｍ０３」を実行する為の主軸モータ５２の制御方式を、「速度制御」と称す。命令「Ｍ０３」を、「速度命令」と称す。
【００３３】
「Ｎ０４」「Ｎ０５」は、タップ切削以外の通常の切削動作（以下、「通常切削」と称す。）を実行する為の命令「Ｇ０１」（以下、「通常切削命令」と称す。）を含む。該命令は、工具４のＺ軸方向の位置情報「Ｚ−１０／Ｚ−１５」、工具４のＺ軸方向の移動速度情報「Ｆ５００／Ｆ２５０」を少なくとも規定する。ＣＰＵ３１は、「Ｎ０４」の命令「Ｇ０１」を読み出した時、該命令に基づくＺ軸位置指令を算出し、駆動回路５１ＡにＺ軸位置指令を周期的に出力する。駆動回路５１Ａは、Ｚ軸モータ５１を駆動する。該時、主軸ヘッド７はＺ軸移動機構により、「Ｚ−１０」（位置情報）まで「５００ｍｍ／ｍｉｎ」（移動速度情報）でＺ軸方向に移動する。同時にＣＰＵ３１は、駆動回路５１Ａの制御とは非同期で、「Ｎ０２」の「速度命令」に基づく主軸速度指令を駆動回路５２Ａに周期的に出力する。駆動回路５２Ａは、駆動回路５１Ａの制御とは独立して主軸モータ５２を駆動する。該時、主軸９は、「２０００ｒｐｍ」（回転速度情報（「Ｎ０４」の場合））で回転する。
【００３４】
通常切削を実行する為の主軸モータ５２の制御方式は、「速度制御」に対応する。通常切削を実行する為のＺ軸モータ５１の制御方式は、「位置制御」に対応する。「Ｇ０１」のうちＺ軸位置指令を算出する為の命令は、「位置命令」に対応する。「Ｇ０１」のうち主軸速度指令を算出する為の命令は、「速度命令」に対応する。タップ切削を実行する為の命令（Ｎ０８）及び通常切削を実行する為の命令（Ｎ０４、Ｎ０５）を総称し、切削命令と称す。
【００３５】
図４を参照し、通常切削を行う場合の速度制御を詳細に説明する。タップ切削を行う場合の位置制御と相違する点は、タップ切削ではＺ軸位置指令に基づいて主軸位置指令が生成されるのに対して、通常切削では、ＣＰＵ３１が演算器３６Ａに主軸速度指令を出力し、且つ、演算器３６Ａは補正用演算器３６Ｂ及び偏差カウンタ３７Ａをバイパスしてサーボアンプ３８Ａに主軸速度指令を出力する点である。該時、主軸ヘッド７は、Ｚ軸方向の移動とは非同期で回転する。故に、主軸速度指令はＺ軸位置指令に同期しない。
【００３６】
「Ｎ０１」は、異常判定処理を開始することを示す為の命令（開始命令と称す。）「Ｍ９０１」を含む。ＣＰＵ３１は開始命令を読み出した時、次に後述の終了命令を読み出す迄、異常判定処理を実行可能とする。「Ｎ０９」は、異常判定処理を終了することを示す為の命令（終了命令と称す。）「Ｍ９０２」を含む。ＣＰＵ３１は終了命令を読み出した時、次に有効命令を読み出す迄、異常判定処理を実行不能とする。
【００３７】
＜加減速中／定速中の判断方法＞
図５は、ＣＰＵ３１が「Ｎ０８」（図３参照）のタップ切削命令「Ｇ８４」に応じて位置制御によりＺ軸モータ５１及び主軸モータ５２を制御する場合を示す。図５（ａ−１）に示すように、ＣＰＵ３１は、タップ切削命令の「Ｇ８４」の位置命令に応じ、時間ｔ１〜ｔ２の間、位置情報「Ｚ−１０」、移動速度情報「Ｆ２００」を用いて、時間ｔ１〜ｔ２におけるＺ軸位置指令ｐを算出し、駆動回路５１Ａに周期的に出力する。駆動回路５１Ａは、Ｚ軸位置指令ｐに基づきＺ軸モータ５１を駆動する。該時、Ｚ軸モータ５１の回転速度は時間ｔ１、ｔ２のタイミングで急加速又は急減速する為、該タイミングで加減速度は大きくなる。従って、ＣＰＵ３１は、時間ｔ１、ｔ２のタイミング近傍で、Ｚ軸モータ５１に流れる電流に基づく異常発生の判定を行わないことが好ましい。
【００３８】
本実施形態において、ＣＰＵ３１は、周期的に出力するＺ軸位置指令ｐの時間変化を微分し、図５（ａ−２）に示す速度情報を算出する。更にＣＰＵ３１は、算出した速度情報の時間変化を微分し、図５（ａ−３）に示す加速度情報を算出する。つまり、ＣＰＵ３１は、駆動回路５１Ａに周期的に出力するＺ軸位置指令ｐ（Ｚ−１０）の時間変化を二階微分し、加速度情報を算出する。ＣＰＵ３１は、算出した加速度情報の絶対値が所定の第一閾値Ｔｈ１よりも大きい期間ｄ２１、ｄ２２の間、Ｚ軸モータ５１が加減速中と判定する。更に上述のように、タップ切削時において、Ｚ軸位置指令ｐ及び回転速度情報「Ｓ２００」より主軸位置情報指令ｑが算出され、駆動回路５２Ａに周期的に出力される。この時、「ｑ＝ｐ×移動速度情報÷回転速度情報」の関係を満たす。即ち、主軸モータ５２はＺ軸モータ５１に同期して駆動する。故に、ＣＰＵ４１は、期間ｄ２１、ｄ２２の間、主軸モータ５２に流れる電流に基づく異常発生の判定を行わない。一方、ＣＰＵ３１は、算出した加速度情報の絶対値が第一閾値Ｔｈ１以下の期間ｄ１１、ｄ１２、ｄ１３の間、主軸モータ５２が定速中と判定する。該期間、ＣＰＵ３１は主軸モータ５２に流れる電流に基づく異常発生の判定を行う。
【００３９】
図６は、ＣＰＵ３１が「Ｎ０２」（図３参照）の速度命令「Ｍ０３」に応じて速度制御により主軸モータ５２を制御する場合を示す。図６（ｂ−１）に示すように、ＣＰＵ３１は、時間ｔ３〜ｔ４の間、速度情報「Ｓ２０００」を示す主軸速度指令ｖを駆動回路５２Ａに周期的に出力する。駆動回路５２Ａは、主軸速度指令ｖに基づき主軸モータ５２を駆動する。図６（ｂ−２）は、主軸モータ５２に接続する速度検出器５２Ｄにより計測した主軸モータ５２の回転速度を示す情報（以下、「計測情報」と称す。）の時間的変化を示す。主軸モータ５２の回転速度は、時間ｔ３のタイミングと同時に２０００ｒｐｍ（速度情報）まで上昇せず、時間ｔ３〜ｔ３１の期間ｄ４１で緩やかに上昇する。又、主軸モータ５２の回転速度は、時間ｔ４のタイミングと同時に０ｒｐｍまで下降せず、時間ｔ４〜ｔ４１の期間ｄ４２で緩やかに下降する。期間ｄ４１、ｄ４２の間、主軸モータ５２の回転速度の加減速度は大きくなる。従って、ＣＰＵ３１は、期間ｄ４１、ｄ４２の間、主軸モータ５２に流れる電流に基づく異常発生の判定を行わないことが好ましい。
【００４０】
図６（ｂ−３）に示すように、本実施形態においてＣＰＵ３１は、速度情報が０である期間ｄ３１、ｄ３３の間、主軸モータ５２に流れる電流に基づく異常発生の判定を行わない。ＣＰＵ３１は、第ｍ（ｍは１以上の整数）番目の速度指令が示す速度情報（以下、「第ｍ速度情報」と称す。）と、第ｍ＋１速度情報とが同一でないと判定してから、速度情報と計測情報とが同一であると判定するまでの期間ｄ４１の間、主軸モータ５２が加減速中と判定する。該期間、ＣＰＵ３１は主軸モータ５２に流れる電流に基づく異常発生の判定を行わない。ＣＰＵ３１は、速度情報と計測情報とが同一であると判定してから、第ｎ（ｎは１以上の整数）速度情報と第ｎ＋１速度情報とが同一でないと判定するまでの期間ｄ３２の間、主軸モータ５２が定速中と判定する。該期間、ＣＰＵ３１は主軸モータ５２に流れる電流に基づく異常発生の判定を行う。ＣＰＵ３１は、第ｎ速度情報と第ｎ＋１速度情報とが同一でないと判定してから、速度情報と計測情報とが同一であると判定するまでの期間ｄ４２の間、主軸モータ５２が加減速中と判定する。該期間、ＣＰＵ３１は主軸モータ５２に流れる電流に基づく異常発生の判定を行わない。
【００４１】
＜第一フラグ情報、第二フラグ情報＞
第一フラグ情報は、ＮＣプログラムの開始命令（「Ｍ９０１」、図３参照）と終了命令（「Ｍ９０２」、図３参照）に基づいて異常判定処理の実行の可否を切り替える為のフラグ情報である。ＣＰＵ３１は、ＮＣプログラムから開始命令を読み出した時、第一フラグ情報として開始フラグを記憶する（Ｓ１７（図７参照））。ＣＰＵ３１は、ＮＣプログラムから終了命令を読み込んだ時、第一フラグ情報として終了フラグを記憶する（Ｓ２１（図７参照））。従って、第一フラグ情報は、開始命令を読み出してから次に終了命令を読み出すまでの間、開始フラグとなる。第一フラグ情報は、終了命令を読み出してから次に開始命令を読み出すまでの間、終了フラグとなる。ＣＰＵ３１は、第一フラグ情報として開始フラグを記憶する間（Ｓ４５：ＹＥＳ（図８参照））、異常判定処理を実行可能とする。ＣＰＵ３１は、第一フラグ情報として終了フラグを記憶する間（Ｓ４５：ＮＯ（図８参照））、異常判定処理を実行不能とする。
【００４２】
第二フラグ情報は、異常判定処理においてモータ５０に流れる電流に基づく異常発生の有無の判定を行うか否かを切り替える為のフラグ情報である。ＣＰＵ３１は、主軸モータ５２が加減速中と判定した時、第二フラグ情報として判定停止フラグを記憶する（Ｓ８１（図９参照）、Ｓ１０３（図１０参照））。ＣＰＵ３１は、速度制御を実行する場合において速度情報が０の時、第二フラグ情報として判定停止フラグを記憶する（Ｓ９３（図１０参照））。判定停止フラグは、異常発生の有無を判定しないことを示す。ＣＰＵ３１は、主軸モータ５２が定速中と判定した時、第二フラグ情報として判定中フラグを記憶する（Ｓ７７（図９参照）、Ｓ９９（図１０参照））。判定中フラグは、異常発生の有無を判定することを示す。ＣＰＵ３１は、第二フラグ情報として判定中フラグを記憶する間（Ｓ５３：ＹＥＳ（図８参照））、主軸モータ５２に流れる電流に基づく工具４の異常判定を行う（Ｓ５７（図８参照））。
【００４３】
＜メイン処理＞
図７〜図１０を参照し、メイン処理を説明する。ＣＰＵ３１は、第一フラグ情報として終了フラグをＲＡＭ３３に記憶し、第二フラグ情報として判定停止フラグをＲＡＭ３３に記憶する（Ｓ１１）。ＣＰＵ３１は、記憶装置３４に記憶したＮＣプログラムの命令を順番に一つ読み出す（Ｓ１３）。ＣＰＵ３１は、読み出した命令が開始命令か判定する（Ｓ１５）。ＣＰＵ３１は、読み出した命令が開始命令であると判定した時（Ｓ１５：ＹＥＳ）、第一フラグ情報として開始フラグをＲＡＭ３３に記憶する（Ｓ１７）。ＣＰＵ３１は処理をＳ１３に戻す。ＣＰＵ３１は、読み出した命令が開始命令でないと判定した時（Ｓ１５：ＮＯ）、読み出した命令が終了命令か判定する（Ｓ１９）。ＣＰＵ３１は、読み出した命令が終了命令であると判定した時（Ｓ１９：ＹＥＳ）、第一フラグ情報として終了フラグをＲＡＭ３３に記憶する（Ｓ２１）。ＣＰＵ３１は処理をＳ１３に戻す。
【００４４】
ＣＰＵ３１は、読み出した命令が終了命令でないと判定した時（Ｓ１９：ＮＯ）、読み出した命令が切削命令（位置命令又は速度命令）か判定する（Ｓ２３）。ＣＰＵ３１は、読み出した命令が切削命令でないと判定した時（Ｓ２３：ＮＯ）、読み出した命令が、ＮＣプログラムの完了を示す完了命令か判定する（Ｓ２９）。ＣＰＵ３１は、読み出した命令が完了命令でないと判定した時（Ｓ２９：ＮＯ）、読み出した命令に基づき処理を実行する（Ｓ３１）。ＣＰＵ３１は、処理の終了後、処理をＳ１３に進める。ＣＰＵ３１は、ＮＣプログラムの次の命令を一つ読み出し（Ｓ１３）、Ｓ１５〜Ｓ３１の処理を繰り返す。
【００４５】
ＣＰＵ３１は、Ｓ１３で読み出した命令が切削命令であると判定した時（Ｓ２３：ＹＥＳ）、異常判定処理（図８参照）を実行する（Ｓ２５）。図８に示すように、ＣＰＵ３１は、ＲＡＭ３３に記憶した比較速度情報を初期化する（Ｓ４１）。ＣＰＵ３１は切削命令に応じた切削処理（通常切削又はタップ切削）を開始する（Ｓ４３）。ＣＰＵ３１は、第一フラグ情報として開始フラグを記憶しているか判定する（Ｓ４５）。ＣＰＵ３１は、第一フラグとして終了フラグを記憶していると判定した時（Ｓ４５：ＮＯ）、処理をＳ５９に進める。ＣＰＵ３１は、第一フラグ情報として開始フラグを記憶していると判定した時（Ｓ４５：ＹＥＳ）、処理をＳ４７に進める。
【００４６】
ＣＰＵ３１は、Ｓ１３（図７参照）で読み出した命令に応じて主軸モータ５２を制御する時の制御方式が位置制御か判定する（Ｓ４７）。ＣＰＵ３１は、タップ切削を実行する為のタップ切削命令を読み出した時、主軸モータ５２の制御方式が位置制御であると判定する（Ｓ４７：ＹＥＳ）。該時、ＣＰＵ３１は第一判定処理（図９参照）を実行する（Ｓ４９）。ＣＰＵ３１は、通常切削を実行する為の通常切削命令を読み出した時、主軸モータ５２の制御方式が速度制御であると判定する（Ｓ４７：ＮＯ）。該時、ＣＰＵ３１は第二判定処理（図１０参照）を実行する（Ｓ５１）。ＣＰＵ３１は、第一判定処理又は第二判定処理の終了後、処理をＳ５３に進める。
【００４７】
図９を参照し、第一判定処理を説明する。ＣＰＵ３１は、駆動回路５１Ａに周期的に出力するＺ軸位置指令の時間変化を二階微分し、加速度情報を算出する（Ｓ７１）。ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶しているか判定する（Ｓ７３）。ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶していると判定した時（Ｓ７３：ＹＥＳ）、加速度情報が所定の第一閾値以下か判定する（Ｓ７５）。ＣＰＵ３１は、加速度情報が第一閾値以下と判定した時（Ｓ７５：ＹＥＳ）、Ｚ軸モータ５１に同期して動作する主軸モータ５２が定速中と判定する。ＣＰＵ３１は、第二フラグ情報として判定中フラグをＲＡＭ３３に記憶する（Ｓ７７）。ＣＰＵ３１は第一判定処理を終了し、処理を異常判定処理（図８参照）に戻す。ＣＰＵ３１は、加速度情報が第一閾値よりも大きいと判定した時（Ｓ７５：ＮＯ）、Ｚ軸モータ５１に同期して動作する主軸モータ５２が加減速中と判定する。ＣＰＵ３１は第一判定処理を終了し、処理を異常判定処理（図８参照）に戻す。該時、第二フラグ情報として判定停止フラグを記憶した状態は継続する。
【００４８】
ＣＰＵ３１は、第二フラグ情報として判定中フラグを記憶していると判定した時（Ｓ７３：ＮＯ）、加速度情報が第一閾値よりも大きいか判定する（Ｓ７９）。ＣＰＵ３１は、加速度情報が第一閾値よりも大きいと判定した時（Ｓ７９：ＹＥＳ）、Ｚ軸モータ５１に同期して動作する主軸モータ５２が加減速中と判定する。ＣＰＵ３１は、第二フラグ情報として判定停止フラグをＲＡＭ３３に記憶する（Ｓ８１）。ＣＰＵ３１は第一判定処理を終了し、処理を異常判定処理（図８参照）に戻す。ＣＰＵ３１は、加速度情報が第一閾値以下と判定した時（Ｓ７９：ＮＯ）、Ｚ軸モータ５１に同期して動作する主軸モータ５２が定速中と判定する。ＣＰＵ３１は第一判定処理を終了し、処理を異常判定処理（図８参照）に戻す。該時、第二フラグ情報として判定中フラグを記憶した状態は継続する。
【００４９】
図１０を参照し、第二判定処理を説明する。ＣＰＵ３１は、駆動回路５２Ａに周期的に出力する主軸速度指令が示す速度情報を取得する。ＣＰＵ３１は、取得した速度情報が０かを判定する（Ｓ９１）。ＣＰＵ３１は、速度情報が０であると判定した時（Ｓ９１：ＹＥＳ）、第二フラグ情報として判定停止フラグを記憶する（Ｓ９３）。ＣＰＵ３１は処理をＳ１０５に進める。ＣＰＵ３１は、速度情報が０でないと判定した時（Ｓ９１：ＮＯ）、処理をＳ９５に進める。
【００５０】
ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶しているか判定する（Ｓ９５）。ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶していると判定した時（Ｓ９５：ＹＥＳ）、処理をＳ９７に進める。ＣＰＵ３１は、主軸モータ５２に接続した速度検出器５２Ｄが出力する信号に基づき、主軸モータ５２の回転速度を計測した計測情報を取得する。ＣＰＵ３１は、計測情報と速度情報とが同一か否か判定する（Ｓ９７）。ＣＰＵ３１は、計測情報と速度情報とが同一と判定した時（Ｓ９７：ＹＥＳ）、主軸モータ５２が定速中と判定する。ＣＰＵ３１は、第二フラグ情報として判定中フラグを記憶する（Ｓ９９）。ＣＰＵ３１は、処理をＳ１０５に進める。ＣＰＵ３１は、計測情報と速度情報とが同一でないと判定した時（Ｓ９７：ＮＯ）、処理をＳ１０５に進める。該時、第二フラグ情報として判定停止フラグを記憶した状態は継続する。
【００５１】
ＣＰＵ３１は、第二フラグ情報として判定中フラグを記憶していると判定した時（Ｓ９５：ＮＯ）、ＲＡＭ３３に記憶した比較速度情報と速度情報とが同一か否か判定する（Ｓ１０１）。これによりＣＰＵ３１は、駆動回路５２Ａが主軸モータ５２に連続して出力する二つの速度指令が示す二つの速度情報が同一か否かを判定する。ＣＰＵ３１は、比較速度情報と速度情報とが同一でないと判定した時（Ｓ１０１：ＮＯ）、主軸モータ５２が加減速中と判定する。ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶する（Ｓ１０３）。ＣＰＵ３１は、処理をＳ１０５に進める。ＣＰＵ３１は、比較速度情報と速度情報とが同一であると判定した時（Ｓ１０１：ＹＥＳ）、処理をＳ１０５に進める。該時、第二フラグ情報として判定中フラグを記憶した状態は継続する。
【００５２】
ＣＰＵ３１は、比較速度情報として速度情報を記憶し、比較速度情報を更新する（Ｓ１０５）。ＣＰＵ３１は、第二判定処理を終了し、処理を異常判定処理（図８参照）に戻す。
【００５３】
図８に示すように、ＣＰＵ３１は、第一判定処理（Ｓ４９）又は第二判定処理（Ｓ５１）の終了後、第二フラグ情報として判定中フラグを記憶しているか判定する（Ｓ５３）。ＣＰＵ３１は、第二フラグ情報として判定停止フラグを記憶していると判定した時（Ｓ５３：ＮＯ）、工具４の異常発生の有無を判定しない。該時、ＣＰＵ３１は処理をＳ５９に進める。ＣＰＵ３１は、第二フラグ情報として判定中フラグを記憶していると判定した時（Ｓ５３：ＹＥＳ）、以下の如く工具４の異常発生の有無を判定する。
【００５４】
ＣＰＵ３１は、電流検出器５２Ｃが検出する電流を、主軸モータ５２に流れる電流として駆動回路５２Ａから取得する（Ｓ５５）。ＣＰＵ３１は、検出した電流が所定の第二閾値以下か判定する（Ｓ５７）。ＣＰＵ３１は、検出した電流が第二閾値よりも大きいと判定した時（Ｓ５７：ＮＯ）、工具４に異常が発生したと判定する。ＣＰＵ３１は、表示部１７（図２参照）に警告を表示する（Ｓ６１）。ＣＰＵ３１は、異常判定処理を終了し、処理をメイン処理（図７参照）に戻す。ＣＰＵ３１は、検出した電流が第二閾値以下と判定した時（Ｓ５７：ＹＥＳ）、処理をＳ５９に進める。ＣＰＵ３１は、Ｓ１３（図７参照）で読み出した切削命令に応じた切削処理が完了したか判定する（Ｓ５９）。ＣＰＵ３１は、切削処理が完了していないと判定した時（Ｓ５９：ＮＯ）、処理をＳ４５に戻す。ＣＰＵ３１は、切削処理が完了したと判定した特（Ｓ５９：ＹＥＳ）、異常判定処理を終了し、処理をメイン処理（図７参照）に戻す。
【００５５】
図７に示すように、ＣＰＵ３１は、異常判定処理（Ｓ２５）の終了後、表示部１７に警告を表示したか判定する（Ｓ２７）。ＣＰＵ３１は、表示部１７に警告を表示した時（Ｓ２７：ＹＥＳ）、工具４に異常が発生している為、メイン処理を終了する。ＣＰＵ３１は、表示部１７に警告を表示していない時（Ｓ２７：ＮＯ）、処理をＳ１３に戻す。ＣＰＵ３１は、ＮＣプログラムの次の命令を一つ読み出し（Ｓ１３）、Ｓ１５〜Ｓ３１の処理を繰り返す。ＣＰＵ３１は、読み出した命令が完了命令であると判定した場合（Ｓ２９：ＹＥＳ）、メイン処理を終了する。
【００５６】
＜本実施形態の作用、効果＞
工作機械１は、Ｚ軸モータ５１、主軸モータ５２、及び、夫々を駆動する為の駆動回路５１Ａ、５２Ａを備える。数値制御装置３０は主軸モータ５２の速度制御を実行する場合において、速度命令に基づく主軸速度指令を、演算器３６Ａを介して駆動回路５２Ａ（偏差カウンタ３７Ａ及びサーボアンプ３８Ａ）に周期的に出力する。数値制御装置３０は主軸モータ５２及びＺ軸モータ５１の夫々の位置制御を実行する場合において、位置命令に基づくＺ軸位置指令を、演算器３６Ａを介して駆動回路５１Ａ（偏差カウンタ３７Ｂ及びサーボアンプ３８Ｂ）に周期的に出力し、且つ、主軸位置指令を、演算器３６Ａ及び補正用演算器３６Ｂを介して駆動回路５２Ａ（偏差カウンタ３７Ａ及びサーボアンプ３８Ａ）に周期的に出力する。数値制御装置３０は主軸モータ５２が定速中と判定した時（Ｓ５３：ＹＥＳ）、工具４の異常発生の有無を判定する。数値制御装置３０は、主軸モータ５２が加減速中と判定した時（Ｓ５３：ＮＯ）、工具４の異常発生の有無を判定しない。該為、主軸モータ５２が加減速中の時に工具４の異常発生とは別の要因で主軸モータ５２に流れる電流が変動した場合に、工具４の異常発生を誤って判定する可能性を軽減できる。数値制御装置３０は、位置制御により主軸モータ５２を制御する時（タップ切削時）と、速度制御により主軸モータ５２を制御する時（通常切削時）とで異なる判定方法に基づき、主軸モータ５２が加減速中か又は定速中かを判定する。該為、数値制御装置３０は、夫々の制御方式に応じた適切な判定方法により、主軸モータ５２が加減速中か又は定速中かを適切に判定できる。従って、数値制御装置３０は、工具４の異常発生の精度を高めることができる。
【００５７】
工作機械１は、被削材３に対して工具４を相対的に回転させる為の主軸モータ５２、及び、被削材３に対する工具４を相対的に移動させる為のＺ軸モータ５１を備える。数値制御装置３０がタップ切削を行う時、主軸モータ５２はＺ軸モータ５１に同期して回転する。この時、主軸モータ５２の制御方式は位置制御である。数値制御装置３０は、主軸モータ５２が位置制御と判定した時（図９参照）、Ｚ軸モータ５１に出力するＺ軸位置指令を二階微分して加速度情報を算出する（Ｓ７１）。数値制御装置３０は、加速度情報と第一閾値との関係に応じ、Ｚ軸モータ５１に同期して動作する主軸モータ５２が加減速中か定速中かを判定する。一方、数値制御装置３０が通常切削を行う時、主軸モータ５２はＺ軸モータ５１と非同期で回転する。この時、主軸モータ５２の制御方式は速度制御である。数値制御装置３０は、主軸モータ５２が速度制御と判定した時（図１０参照）、主軸モータ５２に出力する主軸速度指令が示す速度情報と、主軸モータ５２の回転速度を計測した計測情報とが同一か否かに応じ、主軸モータ５２が加減速中か定速中かを判定する（Ｓ９７）。数値制御装置３０は、速度制御と判定した時（図１０参照）、主軸モータ５２に連続して出力する二つの速度指令が示す二つの速度情報が同一か否かに応じ、主軸モータ５２が加減速中か定速中かを判定する（Ｓ１０１）。該時、数値制御装置３０は、主軸モータ５２が加減速中か又は定速中かの判定を適切に実行できるので、異常発生の有無の判定精度を向上できる。
【００５８】
ＲＡＭ３３は、異常発生の有無を判定するか否かを示す第二フラグ情報を記憶する。数値制御装置３０は、最初にモータ５０が加減速中か定速中かを最初に判断する（ＳＳ５７）前に、異常発生の有無を判定しないことを示す判定停止フラグを第二フラグ情報としてＲＡＭ３３に記憶する（Ｓ１１）。数値制御装置３０は、第二フラグ情報として判定停止フラグを記憶した状態で、主軸モータ５２が定速中と判定した時（Ｓ７５：ＹＥＳ、Ｓ９７：ＹＥＳ）、異常発生の有無を判定することを示す判定中フラグを第二フラグ情報としてＲＡＭ３３に記憶する（Ｓ７７、Ｓ９９）。数値制御装置３０は、第二フラグ情報として判定中フラグを記憶した状態で、主軸モータ５２が加減速中と判定した時（Ｓ７９：ＮＯ、Ｓ１０１：ＮＯ）、判定停止フラグを第二フラグ情報としてＲＡＭ３３に記憶する（Ｓ８１、Ｓ１０３）。数値制御装置３０は、第二フラグ情報として判定中フラグを記憶した状態の時（Ｓ５３：ＹＥＳ）、異常発生の有無を判定する（Ｓ５５，Ｓ５７）。数値制御装置３０は、第二フラグ情報として判定停止フラグを記憶した状態の時（Ｓ５３：ＮＯ）、異常発生の有無を判定しない。従って、数値制御装置３０は、異常発生の有無を判定するか否かを、主軸モータ５２の状態に応じて適切に判定できる。
【００５９】
記憶装置３４に記憶したＮＣプログラムは、異常発生の有無の判定を開始することを示す開始命令、及び、異常発生の有無の判定を終了することを示す終了命令を含む。数値制御装置３０は、開始命令を読み出してから（Ｓ１５：ＹＥＳ）、次に終了命令を読み出す（Ｓ１９：ＹＥＳ）までの間、第一フラグ情報として開始フラグを記憶する（Ｓ１７）。該時、数値制御装置３０は、工具４の異常発生の有無を判定する。数値制御装置３０は、終了命令を読み出してから（Ｓ１９：ＹＥＳ）、次に前記開始命令を読み出す（Ｓ１５：ＹＥＳ）までの間、第一フラグ情報として終了フラグを記憶する（Ｓ２１）。該時、数値制御装置３０は、工具４の異常発生の有無を判定しない。該時、数値制御装置３０は、ＮＣプログラムがモータ５０の制御命令とともに有する開始命令と終了命令とに基づき、異常発生の有無の判定機関を指定できる。
【００６０】
＜変形例＞
本発明は上記実施形態に限らない。ＣＰＵ３１は、Ｓ９７の処理を実行する時、速度情報と計測情報とが完全同一か否か判定しなくてもよい。例えばＣＰＵ３１は、速度情報に対して計測情報が所定の範囲内に含まれる時、速度情報と計測情報とが同一と判定してもよい。ＣＰＵ３１は、Ｓ１０１の処理を実行する時、比較速度情報と速度情報とが完全同一か否か判定しなくてもよい。例えばＣＰＵ３１は、比較速度情報に対して速度情報が所定の範囲内に含まれる時、比較速度情報と速度情報とが同一と判定してもよい。
【００６１】
工作機械１は、被削材３を保持するテーブル１３を回転する為のモータを備えてもよい。工作機械１は、該モータの回転により、工具４に対して被削材３を相対的に回転させて切削加工を実行してもよい。該時、ＣＰＵ３１は、速度制御と判定した時（図１０参照）、該モータに出力する速度指令が示す速度情報と、該モータの回転速度を計測した計測情報とが同一か否か判定してもよい。又、ＣＰＵ３１は、速度制御と判定した時、該モータに連続して出力する二つの速度指令が示す二つの速度情報が同一か否か判定してもよい。
【００６２】
ＣＰＵ３１は、タップ切削を行う際に、主軸位置指令を駆動回路５２Ａに周期的に出力してもよい。これにより、駆動回路５２Ａは主軸モータ５２を駆動してもよい。同時に、駆動回路５２Ａの制御に同期して、Ｚ軸位置指令を駆動回路５１Ａに周期的に出力してもよい。これにより、駆動回路５１Ａは、主軸モータ５２に同期してＺ軸モータ５１を駆動してもよい。ＣＰＵ３１は、主軸モータ５２の駆動回路５２Ａに周期的に出力する主軸位置指令を二階微分して、加速度情報を算出してもよい（Ｓ７１）。ＣＰＵ３１は、算出した加速度情報と第一閾値との関係に基づいて、主軸モータ５２に同期して動作するＺ軸モータ５１が加減速中か又は定速中か判定してもよい（Ｓ７５、Ｓ７９）。ＣＰＵ３１は、Ｚ軸モータ５１の電流に基づき、工具４の異常発生の有無を判定してもよい（Ｓ５７）。
【００６３】
ＣＰＵ３１は、タップ切削を行う際に、Ｚ軸モータ５１及び主軸モータ５２にそれぞれ出力する位置指令（Ｚ軸位置指令及び主軸位置指令）を二階微分し、それぞれの加速度情報を算出してもよい。ＣＰＵ３１は、算出した加速度情報と第一閾値との関係に基づいて、Ｚ軸モータ５１と主軸モータ５２との何れかが加減速中か又は定速中か判定してもよい（Ｓ７５、Ｓ７９）。ＣＰＵ３１は、Ｚ軸モータ５１と主軸モータ５２との何れかが定速中と判定した時、Ｚ軸モータ５１と主軸モータ５２との何れかに流れる電流に基づき、工具４の異常発生の有無を判定してもよい。
【００６４】
ＣＰＵ３１は、読み出した命令が通常切削命令時、主軸モータ５２の制御方式が速度制御であると判定した（Ｓ４７：ＹＥＳ）。ＣＰＵ３１は、読み出した命令がタップ切削命令の時、主軸モータ５２の制御方式が位置制御であると判定した（Ｓ４７：ＮＯ）。ＣＰＵ３１は、上記と異なる方法で、速度制御か位置制御かを判定してもよい。例えばＮＣプログラムは、速度制御か又は位置制御かを示すフラグ情報を含んでいてもよい。ＣＰＵ３１は、該フラグ情報に基づいて、速度制御か位置制御かを判定してもよい。ＮＣプログラムは、開始命令及び終了命令を含まなくてもよい。ＣＰＵ３１は、第一フラグ情報として記憶されたフラグに限らず、工具４の異常発生の有無を常に判定してもよい。
【００６５】
＜その他＞
工作機械１は本発明の「機械装置」の一例である。Ｓ４７の処理を行うＣＰＵ３１は本発明の「第一判定手段」の一例である。Ｓ７１の処理を行うＣＰＵ３１は本発明の「算出手段」の一例である。Ｓ７５、Ｓ７７、Ｓ７９、Ｓ８１の処理を行うＣＰＵ３１は本発明の「第二判定手段」の一例である。Ｓ９５の処理を行うＣＰＵ３１は本発明の「第三判定手段」の一例である。Ｓ１０５の処理を行うＣＰＵ３１は本発明の「速度記憶手段」の一例である。Ｓ１０１の処理を行うＣＰＵ３１は本発明の「第四判定手段」の一例である。Ｓ９９、Ｓ１０３の処理を行うＣＰＵ３１は本発明の「第五判定手段」の一例である。Ｓ５５の処理を行うＣＰＵ３１は本発明の「検出手段」の一例である。Ｓ５７、Ｓ６１の処理を行うＣＰＵ３１は、本発明の「第六判定手段」の一例である。主軸モータ５２は、本発明の「第一モータ」の一例である。Ｚ軸モータ５１は本発明の「第二モータ」の一例である。第二フラグ情報を記憶するＲＡＭ３３は、本発明の「第一記憶部」の一例である。Ｓ１１の処理を行うＣＰＵ３１は本発明の「第一記憶制御手段」の一例である。判定停止フラグは、本発明の「判定停止情報」の一例である。定中フラグは、本発明の「判定中情報」の一例である。Ｓ７７、Ｓ９９の処理を行うＣＰＵ３１は本発明の「第二記憶制御手段」の一例である。Ｓ８１、Ｓ１０３の処理を行うＣＰＵ３１は本発明の「第三記憶制御手段」の一例である。記憶装置３４は、本発明の「第二記憶部」の一例である。
【００６６】
Ｓ４７の処理は本発明の「第一判定工程」の一例である。Ｓ７１の処理は本発明の「算出工程」の一例である。Ｓ７５、Ｓ７７、Ｓ７９、Ｓ８１の処理は本発明の「第二判定工程」の一例である。Ｓ９５の処理は本発明の「第三判定工程」の一例である。Ｓ１０５の処理は本発明の「速度記憶工程」の一例である。Ｓ１０１の処理は本発明の「第四判定工程」の一例である。Ｓ９９、Ｓ１０３の処理は本発明の「第五判定工程」の一例である。Ｓ５５の処理は本発明の「検出工程」の一例である。Ｓ５７、Ｓ６１の処理は本発明の「第六判定工程」の一例である。
【符号の説明】
【００６７】
１        ：工作機械
４        ：工具
３０      ：数値制御装置
３１      ：ＣＰＵ
３４      ：記憶装置
５１      ：Ｚ軸モータ
５１Ａ    ：駆動回路
５１Ｂ    ：エンコーダ
５１Ｃ、５２Ｃ    ：電流検出器
５２      ：主軸モータ
５２Ａ    ：駆動回路
５２Ｂ    ：エンコーダ
ｐ、ｑ        ：位置指令
ｖ        ：速度指令
【図１】
2020013433.tif 000003
【図２】
2020013433.tif 000004
【図３】
2020013433.tif 000005
【図４】
2020013433.tif 000006
【図５】
2020013433.tif 000007
【図６】
2020013433.tif 000008
【図７】
2020013433.tif 000009
【図８】
2020013433.tif 000010
【図９】
2020013433.tif 000011
【図１０】
2020013433.tif 000012