(57)【要約】【課題】  Ｘ，Ｙ軸のピッチ誤差と直角度誤差を補正する機能のある数値制御装置において、非常停止中にモータを動かした場合にも、非常停止状態からの復帰時に制御上のＸ，Ｙ軸現在位置とＸ，Ｙ軸モータ位置を合致させることができる。【解決手段】  Ｘ軸を区分した複数の補正点のＸ軸ピッチ誤差補正量及びＹ軸直角度補正量と、Ｙ軸を区分した複数の補正点のＹ軸ピッチ誤差補正量及びＸ軸直角度補正量とを予め設定した補正量テーブルと、検出手段によってＸ，Ｙ軸モータがフリー状態からロック状態に変化したことを検出した際、Ｘ，Ｙ軸エンコーダで検出されるＸ，Ｙ軸絶対位置（ｘ’，ｙ’）と、前記補正量テーブルのピッチ誤差補正量と直角度補正量とに基づいて、被駆動体のＸ，Ｙ軸現在位置（ｘ，ｙ）を夫々求める現在位置決定手段とを設けた。【選択図】  図９
2010225034.tif 000002
【特許請求の範囲】
【請求項１】
被駆動体をＸ軸方向に移動駆動するＸ軸モータと，前記被駆動体を前記Ｘ軸方向と直交するＹ軸方向へ移動駆動するＹ軸モータと、前記Ｘ軸モータに設けられ該Ｘ軸モータの絶対位置を検出するＸ軸絶対位置検出手段と、前記Ｙ軸モータに設けられ該Ｙ軸モータの絶対位置を検出するＹ軸絶対位置検出手段と、前記Ｘ軸、Ｙ軸絶対位置検出手段の検出結果に基づいて前記被駆動体を位置制御する数値制御装置において、
前記Ｘ軸方向における前記被駆動体が移動可能な範囲を区分した複数の補正点のＸ軸ピッチ誤差補正量及び前記補正点におけるＹ軸方向のずれであるＹ軸直角度補正量と、Ｙ軸方向における前記被駆動体が移動可能な範囲を区分した複数の補正点のＹ軸ピッチ誤差補正量及び前記補正点におけるＸ軸方向のずれであるＸ軸直角度補正量とを予め設定した補正量テーブルと、
前記Ｘ軸モータ及び前記Ｙ軸モータが位置制御不可能なフリー状態から位置制御可能なロック状態に変化したことを検出する検出手段と、
前記検出手段によって前記Ｘ軸モータ及び前記Ｙ軸モータが前記フリー状態から前記ロック状態に変化したことを検出した際、前記Ｘ，Ｙ軸絶対位置検出手段で検出されるＸ，Ｙ軸絶対位置と、前記補正量テーブルのピッチ誤差補正量と直角度補正量とに基づいて、前記被駆動体のＸ，Ｙ軸現在位置を夫々求める現在位置決定手段と、
を備えたことを特徴とする数値制御装置。
【請求項２】
前記現在位置決定手段は、Ｘ，Ｙ軸を前記の複数の補正点で複数区分することで、被駆動体の移動領域に想定される複数行複数列の複数の補正エリアのうち、前記Ｘ，Ｙ軸絶対位置が対応する第１補正エリア内に、前記Ｘ，Ｙ軸現在位置が入るか否か判定する判定手段を備えたことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記現在位置決定手段は、前記判定手段が肯定判定した場合には、前記Ｘ，Ｙ軸現在位置を、請求項１で求めたＸ，Ｙ軸現在位置とすることを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記現在位置決定手段は、前記判定手段が否定判定した場合に、前記第１補正エリアの外側に隣接する８つの補正エリアから所定の選択則で順次選択される候補補正エリアに、前記Ｘ，Ｙ軸現在位置が対応すると仮定して、被駆動体のＸ，Ｙ軸現在位置を夫々求め、求めたＸ，Ｙ軸現在位置が前記候補補正エリア内に入る場合に限って、前記Ｘ，Ｙ軸現在位置を前記求めたＸ，Ｙ軸現在位置とすることを特徴とする請求項３に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御式工作機械を制御する数値制御装置に関し、特に非常停止した状態から復帰した際の被駆動体のＸ，Ｙ軸現在位置を求める現在位置決定手段を設けたものに関する。
【背景技術】
【０００２】
工作機械は、ワークを搭載するテーブルを備えている。テーブルは、支持台等に取付けられたガイドレールに沿って移動する。ＮＣ制御装置（数値制御装置）では、工作機械の製作誤差を補正する為に、各軸を例えば２０ｍｍ単位で区分した複数の補正点（補正点を区分したこの長さのことを、以後、補正間隔と呼ぶ）にピッチ誤差補正量のデータを予め設定してメモリに格納している。ＮＣ制御装置は、各軸の送り量をピッチ誤差補正量で補正する（特許文献１参照）。工作機械では、ガイドレールのうねりやガイドレールの取り付け誤差などに起因して、Ｘ軸方向の現在位置に応じてその軸と直角なＹ軸方向に位置誤差が発生するという問題があった。同様に、Ｙ軸方向の現在位置に応じてその軸と直角なＸ軸方向に位置誤差が発生するという問題があった。
【０００３】
この場合、特許文献２の位置誤差補正技術においては、Ｘ軸については、Ｘ軸ピッチ誤差補正量のデータと、Ｘ軸方向への移動に伴ってＹ軸方向に発生するＹ軸直角度補正量のデータとを予め設定しメモリに格納しておく。同様に、Ｙ軸については、Ｙ軸ピッチ誤差補正量のデータと、Ｙ軸方向への移動に伴ってＸ軸方向に発生するＸ軸直角度補正量のデータとを予め設定しメモリに格納しておく。そして、各軸の送り量をピッチ誤差補正量と対応する直角度補正量とで補正する。
【０００４】
ＮＣ制御装置においては、通常時はサーボモータをロック状態（ＮＣ制御装置からの指令パルスによって駆動される状態）にして制御する。ＮＣ制御装置は、停電時などに非常停止した場合などは安全のためにサーボモータをロック状態からフリー状態（外力によって自由にサーボモータが駆動される状態）に切換えている。
【０００５】
フリー状態のサーボモータは、ＮＣ制御装置を介さずに動くため、外力によってサーボモータの軸が動かされた場合、ＮＣ制御装置の内部で記憶している現在位置と、実際のサーボモータの位置とが合致しなくなるという問題があった。
【０００６】
前述した問題を解決する技術として、サーボモータをフリー状態からロック状態に切換える際に、現在位置をサーボモータ位置に合わせて更新するモータフォローアップ方式（以後、単にフォローアップと呼ぶ）が実用化されている。
【０００７】
例えば、特許文献３のＮＣ制御装置においては、電源遮断時に被駆動体の現在位置とサーボモータの回転状態を記憶し、サーボモータが回転中であった場合、次回電源投入時にサーボモータを停止させたまま、現在位置をモータの位置と合致するように更新している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第２７６１４２７号公報
【特許文献２】特開昭６０−２３９８０４号公報
【特許文献３】特開平５−３１３７２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献３の技術では、現在位置を更新する際、各軸の送り量に対するピッチ誤差補正量や直角度補正量については、何ら考慮されておらず、正確な現在位置を算出することはできなかった。
【００１０】
そのため、従来のピッチ誤差と直角度誤差を補正する機能のあるＮＣ制御装置においては、非常停止した状態から復帰した場合には、現在位置からＸ，Ｙ軸それぞれのピッチ誤差補正量と直角度補正量を求め、求めた補正量分だけＸ，Ｙ軸モータを動かすことで現在位置とモータ位置を合致させていた。そのため、補正量分だけモータが動いたときに工作機械の主軸とテーブル上の治具やワークが干渉する等の問題があった。
【００１１】
本発明の目的は、Ｘ，Ｙ軸のピッチ誤差と直角度誤差を補正する機能のあるＮＣ制御装置において、非常停止した状態から復帰した場合に、モータを動かすことなく、制御上のＸ，Ｙ軸現在位置とＸ，Ｙ軸モータ位置を合致させることである。
【課題を解決するための手段】
【００１２】
請求項１の数値制御装置は、被駆動体をＸ軸方向に移動駆動するＸ軸モータと，前記被駆動体を前記Ｘ軸方向と直交するＹ軸方向へ移動駆動するＹ軸モータと、前記Ｘ軸モータに設けられ該Ｘ軸モータの絶対位置を検出するＸ軸絶対位置検出手段と、前記Ｙ軸モータに設けられ該Ｙ軸モータの絶対位置を検出するＹ軸絶対位置検出手段と、前記Ｘ軸、Ｙ軸絶対位置検出手段の検出結果に基づいて前記被駆動体を位置制御する数値制御装置において、前記Ｘ軸方向における前記被駆動体が移動可能な範囲を区分した複数の補正点のＸ軸ピッチ誤差補正量及び前記補正点におけるＹ軸方向のずれであるＹ軸直角度補正量と、Ｙ軸方向における前記被駆動体が移動可能な範囲を区分した複数の補正点のＹ軸ピッチ誤差補正量及び前記補正点におけるＸ軸方向のずれであるＸ軸直角度補正量とを予め設定した補正量テーブルと、前記Ｘ軸モータ及び前記Ｙ軸モータが位置制御不可能なフリー状態から位置制御可能なロック状態に変化したことを検出する検出手段と、前記検出手段によって前記Ｘ軸モータ及び前記Ｙ軸モータが前記フリー状態から前記ロック状態に変化したことを検出した際、前記Ｘ，Ｙ軸絶対位置検出手段で検出されるＸ，Ｙ軸絶対位置と、前記補正量テーブルのピッチ誤差補正量と直角度補正量とに基づいて、前記被駆動体のＸ，Ｙ軸現在位置を夫々求める現在位置決定手段とを備えたことを特徴としている。
【００１３】
前記現在位置決定手段は、前記補正量テーブルに予め設定してあるＸ軸，Ｙ軸ピッチ誤差補正量とＸ軸，Ｙ軸直角度補正量と、前記Ｘ，Ｙ軸絶対位置検出手段で検出されるＸ，Ｙ軸絶対位置とに基づいて、被駆動体のＸ，Ｙ軸現在位置を夫々求める。
【００１４】
請求項２の数値制御装置は、請求項１の発明において、前記現在位置決定手段は、Ｘ，Ｙ軸を前記の複数の補正点で複数区分することで、被駆動体の移動領域に想定される複数行複数列の複数の補正エリアのうち、前記Ｘ，Ｙ軸絶対位置が対応する第１補正エリア内に、前記Ｘ，Ｙ軸現在位置が入るか否か判定する判定手段を備えたことを特徴としている。
【００１５】
請求項３の数値制御装置は、請求項２の発明において、前記現在位置決定手段は、前記判定手段が肯定判定した場合には、前記Ｘ，Ｙ軸現在位置を、請求項１で求めたＸ，Ｙ軸現在位置とすることを特徴としている。
【００１６】
請求項４の数値制御装置は、請求項３の発明において、前記現在位置決定手段は、前記判定手段が否定判定した場合に、前記第１補正エリアの外側に隣接する８つの補正エリアから所定の選択則で順次選択される候補補正エリアに、前記Ｘ，Ｙ軸現在位置が対応すると仮定して、被駆動体のＸ，Ｙ軸現在位置を夫々求め、求めたＸ，Ｙ軸現在位置が前記候補補正エリア内に入る場合に限って、前記Ｘ，Ｙ軸現在位置を前記求めたＸ，Ｙ軸現在位置とすることを特徴としている。
【発明の効果】
【００１７】
請求項１の数値制御装置によれば、検出手段によってＸ軸，Ｙ軸モータがフリー状態からロック状態に変化したことを検出した際、Ｘ，Ｙ軸絶対位置検出手段で検出されるＸ，Ｙ軸絶対位置と補正量テーブルのピッチ誤差補正量と直角度補正量とに基づいて、被駆動体のＸ，Ｙ軸現在位置を夫々求める現在位置決定手段とを設けたので、次の効果が得られる。
【００１８】
非常停止した状態から復帰した時にＸ，Ｙ軸モータを動かすことなく被駆動体のＸ，Ｙ軸現在位置を決定することができるため、工作機械の主軸とテーブル上の治具やワークが干渉するのを防止することができる。
【００１９】
請求項２の数値制御装置によれば、現在位置決定手段は、複数行複数列の複数の補正エリアのうち、Ｘ，Ｙ軸絶対位置が対応する第１補正エリア内に、Ｘ，Ｙ軸現在位置が入るか否か判定する判定手段を備えたため、この判定手段の判定に基づいてＸ，Ｙ軸現在位置が正しい現在位置か否か判定することができる。
【００２０】
請求項３の数値制御装置によれば、現在位置決定手段は、判定手段が肯定判定した場合には、Ｘ，Ｙ軸現在位置を請求項１で求めたＸ，Ｙ軸現在位置とするため、Ｘ，Ｙ軸現在位置を確実に判定することができる。
【００２１】
請求項４の数値制御装置によれば、現在位置決定手段は、判定手段が否定判定した場合に、第１補正エリアの外側に隣接する８つの補正エリアから所定の選択則で順次選択される候補補正エリアに、Ｘ，Ｙ軸現在位置が対応すると仮定して、被駆動体のＸ，Ｙ軸現在位置を夫々求め、求めたＸ，Ｙ軸現在位置が候補補正エリア内に入る場合に限って、Ｘ，Ｙ軸現在位置を求めたＸ，Ｙ軸現在位置とする。Ｘ，Ｙ軸現在位置が属する可能性の高い８つの補正エリアについてＸ，Ｙ軸現在位置を探索するため、Ｘ，Ｙ軸現在位置を求めるまでにかかる制御負荷を軽くすることができる。
【図面の簡単な説明】
【００２２】
【図１】マシニングセンタを制御する数値制御装置の構成を示すブロック図である。
【図２】被駆動体が移動するＸＹ平面を複数行複数列の複数の補正エリアに分割した状態を示す説明図である。
【図３】Ｘ軸のピッチ誤差補正量を説明する説明図である。
【図４】ピッチ誤差補正量の累積補正量の算出方法を説明する説明図である。
【図５】Ｘ，Ｙ軸モータのモータ位置（ｘ’，ｙ’）に対応する第１補正エリアの算出方法を説明する説明図である。
【図６】図５の第１補正エリアの外側に１エリア拡大した探索範囲の８つの補正エリアについて探索順位を説明する説明図である。
【図７】ピッチ誤差累積補正量の説明図である。
【図８】直角度累積補正量の説明図である。
【図９】現在位置（ｘ，ｙ）を決定するフォローアップ制御のフローチャートである。
【図１０】図９のフローチャートにおける現在位置探索処理のフローチャートである。
【図１１】フォローアップ制御前後の現在位置についての説明図である。
【発明を実施するための形態】
【００２３】
以下、本発明を実施するための形態について実施例に基づいて説明する。
【実施例】
【００２４】
本実施例は、マシニングセンタを制御する数値制御装置１に本発明を適用した場合の一例である。最初に、数値制御装置１を含むマシニングセンタの制御系について説明する。  図１に示すように、数値制御装置１は、入出力インタフェース１０と、ＣＰＵ１１と、ＲＯＭ１２と、ＲＡＭ１３と、プログラムメモリ１４と、不揮発性ＲＡＭ１５と、軸制御部２１〜２５と、サーボアンプ３１〜３４と、微分器４１〜４４などを備えている。
サーボアンプ３１〜３４は、夫々Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、主軸モータ５４に接続している。軸制御部２５は、マガジンモータ５５に接続している。
【００２５】
Ｘ軸モータ５１、Ｙ軸モータ５２は、ボールネジ機構を介して、テーブル２（被駆動体）を夫々Ｘ軸方向、Ｙ軸方向に移動させる為のモータである。マガジンモータ５５は、工具マガジンを回転させる為のモータである。主軸モータ５４は主軸を回転させる為のモータである。以下、Ｘ軸モータ５１、Ｙ軸モータ５２、Ｚ軸モータ５３、及び主軸モータ５４をモータ５１〜５４という。モータ５１〜５４は、夫々アブソリュート形のエンコーダ６１〜６４を備えている。
【００２６】
軸制御部２１〜２４は、ＣＰＵ１１からの移動指令量を受けて、電流指令（モータトルク指令値）を夫々サーボアンプ３１〜３４に出力する。サーボアンプ３１〜３４は、電流指令を受けて、夫々モータ５１〜５４に駆動電流を出力する。軸制御部２１〜２４は、夫々エンコーダ６１〜６４からの位置フィードバック信号を受けて、位置のフィードバック制御を行う。微分器４１〜４４は、夫々エンコーダ６１〜６４が出力した位置フィードバック信号を微分して速度フィードバック信号に変換し、軸制御部２１〜２４に速度フィードバック信号として出力する。
【００２７】
軸制御部２１〜２４は、夫々微分器４１〜４４が出力する速度フィードバック信号に基づいて、速度フィードバックの制御を行う。電流検出器７１〜７４は、夫々サーボアンプ３１〜３４がモータ５１〜５４に出力する駆動電流を検出する。電流検出器７１〜７４は、駆動電流の検出信号を夫々軸制御部２１〜２４にフィードバックする。軸制御部２１〜２４は、フィードバックを受けた駆動電流の検出信号に応じて、電流（トルク）制御を行う。
【００２８】
前記ＲＯＭ１２には、数値制御装置１が実行する種々の制御の制御プログラム、図９、図１０に示す後述のフォローアップ制御の制御プログラム等が格納されている。ＲＡＭ１３にはＣＰＵ１１が演算処理したデータ等を一次的に記憶する種々のワークメモリが設けられる。プログラムメモリ１４には、複数種類のワークに対応する複数の加工プログラムが格納される。これら加工プログラムは操作パネル４を介して格納される。不揮発性ＲＡＭ１５には、後述の表１に示すＸ軸補正量テーブルと、Ｙ軸補正量テーブル等が格納されると共に、テーブル２（被駆動体）の制御上の現在位置（ｘ，ｙ）及びエンコーダ６１，６２の検出信号から分かるモータ５１，５２の現在のモータ位置（ｘ’，ｙ’）が更新しつつ格納される。
【００２９】
モータ位置とは、テーブル２の実際の位置となる。サーボロック状態で、テーブル２を制御している場合は、制御上の現在位置（ｘ，ｙ）と、モータ位置（ｘ’，ｙ’）とは一致している。サーボフリー状態では、制御上の現在位置（ｘ，ｙ）は、更新されないが、モータ位置（ｘ’，ｙ’）は、テーブル２を外部の力で移動させると変化する。
【００３０】
入出力インタフェース１０には、ディスプレイ３を有する操作パネル４と非常停止ＳＷ５が接続されている。電源電圧異常を検出する電源電圧異常検出装置６からの信号はＣＰＵ１１のＩＮＴ端子に入力され、停電時等に電源電圧が低下する際に、ＣＰＵ１１が割り込み処理によりモータ５１〜５４を非常停止させる。非常停止ＳＷ６からの非常停止指令が入力された場合にも、ＣＰＵ１１が割り込み処理によりモータ５１〜５４を非常停止させる。尚、数値制御装置１のＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、プログラムメモリ１４、不揮発性ＲＡＭ１５等は、バックアップ用２次電池によりバックアップされている。
【００３１】
図２は、テーブル２の移動領域を複数行複数列の複数の補正エリアに分割した状態を示す図である。Ｘ軸を所定長さＬ（例えば、Ｌ＝２０ｍｍ）で複数区間に分割し、Ｘ軸上に複数の補正点Ｃｉ（ｉ＝１，２，・・）を設定する。同様に、Ｙ軸を所定長さＬ（例えば、Ｌ＝２０ｍｍ）で複数区間に分割し、Ｙ軸上に複数の補正点Ｄｊ（ｊ＝１，２，・・）を設定する。
【００３２】
【表１】
2010225034.tif 000003
【００３３】
表１に示す補正量テーブルの上半部分には、複数の補正点Ｃｉ（ｉ＝１，２，・・）にそれぞれ設定した、ピッチ誤差補正量ｐｘｉ（ｉ＝１，２，・・）と、直角度補正量ｒｘｉ（ｉ＝１，２，・・）が予め設定されている。
テーブル２を案内するガイドレールのうねりやガイドレールの取り付け誤差などに起因して、Ｘ軸方向の現在位置に応じてその軸と直角なＹ軸方向に位置誤差が発生し、同様に、Ｙ軸方向の現在位置に応じてその軸と直角なＸ軸方向に位置誤差が発生する。
【００３４】
前記直角度補正量ｒｘｉが、Ｘ軸方向の現在位置に応じてＹ軸方向に発生する位置誤差である「Ｘ軸直角度補正量」に相当するものである。
補正量テーブルの下半部分には、複数の補正点Ｄｉ（ｉ＝１，２，・・）にそれぞれ設定した、ピッチ誤差補正量ｐｙｉ（ｉ＝１，２，・・）と、直角度補正量ｒｙｉ（ｉ＝１，２，・・）が予め設定されている。前記直角度補正量ｒｙｉが、Ｙ軸方向の現在位置に応じてＸ軸方向に発生する位置誤差である「Ｙ軸直角度補正量」に相当するものである。
【００３５】
前記ピッチ誤差補正量ｐｘｉ，ｐｙｉと、直角度補正量ｒｘｉ，ｒｙｉは、マシニングセンタの製作後の試運転時に、Ｘ軸ボールネジ機構とＹ軸ボールネジ機構の製作・組み立て誤差を精密に測定し、その誤差を解消する為の補正量として予め設定される。
【００３６】
図３は、補正点Ｃ１〜Ｃ４についてのピッチ誤差補正量ｐｘ１〜ｐｘ４を説明する図であり、例えば、補正点Ｃ４に対するピッチ誤差補正量は、ｐｘ１〜ｐｘ４の合計（累積補正量）となる。図４は、補正点Ｃｎ−１，Ｃｎの間の点Ａに対するピッチ誤差補正量の累積補正量が、補正点Ｃｎ−１までのピッチ誤差補正量ｐｘ１〜ｐｘｎ−１の和と、ピッチ誤差補正量ｐｘｎを比例配分した比例配分補正量ｐｘｎ×［ｘ−Ｌ×（ｎ−１）］／Ｌとの合計であることを説明する説明図である。Ｙ軸方向のピッチ誤差補正量、Ｘ軸方向の直角度補正量、Ｙ軸方向の直角度補正量についても同様である。
【００３７】
図１１に示すように、実際のモータ位置は、フォローアップ後の現在位置に対してピッチ誤差補正量ｐｘｉ，ｐｙｉや直角度補正量ｒｘｉ，ｒｙｉを含んだ位置になる。点Ａ’( xa, xa ) はフォローアップ前の現在位置、点Ｂ( xb, yb ) は実際のモータ位置、点Ａ( xc, yc ) はフォローアップ後の現在位置である。図中のα＝（点ＡにおけるＸ軸ピッチ誤差累積補正量＋点ＡにおけるＹ軸直角度累積補正量）、β＝（点ＡにおけるＹ軸ピッチ誤差累積補正量＋点ＡにおけるＸ軸直角度累積補正量）である。
【００３８】
図５は、テーブル２を駆動するＸ，Ｙ軸モータ５１，５２のモータ位置をＰ（ｘ’，ｙ’）としたとき、モータ位置Ｐが入っている補正エリア（これを、第１補正エリアとする）に、テーブル２の制御上の現在位置（ｘ，ｙ）が属していると仮定した場合、モータ位置Ｐ（ｘ’，ｙ’）は、次の（１）式と（２）式で表すことができる。
【００３９】
【数１】
2010225034.tif 000004
【数２】
2010225034.tif 000005
【００４０】
次に、数値制御装置１のＲＯＭ１２に格納されているフォローアップ制御のフローチャートについて、図５以降の図面に基づいて説明する。尚、図９、図１０中のＳｉ（ｉ＝１，２，・・）は各ステップを示す。図９のフローチャートのＳ１においては、非常停止か否か判定し、 その判定がＮｏの間はＳ１を繰り返し、その判定がＹｅｓになるとＳ２へ移行する。電源電圧異常検出装置６が停電を検出すると、或いは非常停止ＳＷ５がオンされると、数値制御装置１のＣＰＵ１１は割り込み処理にてモータ５１〜５５を非常停止させてフリー状態に切換える。すると、Ｓ１における判定がＹｅｓとなる。
【００４１】
非常停止中にはＣＰＵ１１は非常停止が解除されたか否か常時監視し（Ｓ２）、非常停止が解除された場合にはＳ３へ移行する。Ｓ３では、Ｘ，Ｙ軸モータ５１，５２を通常の制御状態であるロック状態に切換える。これにより、モータ５１，５２は数値制御装置１からの指令パルスで駆動される状態になる。
【００４２】
ここで、非常停止中はモータ５１，５２がフリー状態であるため、この時点では実際のモータ５１，５２の位置（ｘ’，ｙ’）と、制御上で保持する現在位置（ｘ，ｙ）の整合がとれなくなっているおそれがある。そこで、Ｓ４以降のステップにより、現在位置（ｘ，ｙ）を実際のモータ位置（ｘ’，ｙ’）に合わせて更新するフォローアップ処理を行う。
【００４３】
まず、Ｓ４において、実際のモータ５１，５２の位置（ｘ’，ｙ’）が、図５に図示のどの補正エリアにあるかを特定する。この場合、ｘ’／Ｌ（但し、Ｌは補正間隔で、例えばＬ＝２０ｍｍ）の値から、モータ５１が補正点Ｃｎ−１とＣｎの間に存在することを知ることができる。このときのｎの値が、モータ５１が存在する補正エリアの補正点番号となる。また、ｙ’／Ｌの値から、モータ５２が補正点Ｄｍ−１とＤｍの間に存在することを知ることができる。このときのｍの値が、モータ５２が存在する補正エリアの補正点番号となる。
【００４４】
一般的に、ピッチ誤差補正量と直角度補正量は数μｍ程度の値であるため、現在位置（ｘ，ｙ）と、モータ位置（ｘ’，ｙ’）は互いに近くに位置している可能性が高い。そこで、Ｓ５では、現在位置（ｘ，ｙ）が実際のモータ位置（ｘ’，ｙ’）と同じ補正エリア（第１補正エリア）にあると仮定して、前記式（１），（２）に、前記求めた補正点番号（ｎ，ｍ）と、補正量テーブルから読み込んだ、ピッチ誤差補正量ｐｘｉ及び直角度補正量ｒｘｉと、ピッチ誤差補正量ｐｙｉ及び直角度補正量ｒｙｉとを適用し、（ｘ，ｙ）を未知数とする連立１次方程式を解いて、現在位置（ｘ，ｙ）を求める。
【００４５】
次に、Ｓ６においては正しい現在位置（ｘ，ｙ）が得られたか否か判定する。Ｓ５で求めた現在位置（ｘ，ｙ）が点Ｐで示すモータ位置（ｘ’，ｙ’）と同じ第１補正エリアにある場合には、正しい現在位置（ｘ，ｙ）が得られたと判断してＳ７へ移行する。Ｓ５で求めた現在位置（ｘ，ｙ）がモータ位置（ｘ’，ｙ’）と同じ第１補正エリアにない場合には、正しい現在位置（ｘ，ｙ）が得られなかったと判断してＳ８へ移行する。
Ｓ７では、不揮発性メモリ１５に格納している現在位置（ｘ，ｙ）のデータを、Ｓ５で求めた現在位置（ｘ，ｙ）のデータでもって更新し、モータ５１，５２をロック状態に切換え、その後リターンする。
【００４６】
次に、現在位置（ｘ，ｙ）が属する補正エリアを求めるＳ８の現在位置探索処理について、図１０のフローチャート、図６〜図８に基づいて説明する。
Ｓ２０においては、現在位置（ｘ，ｙ）を探索する限界探索範囲（前記第１補正エリアの外側何個分の補正エリアまで探索するかを示す探索範囲の限界値）を演算する。これは、実際のモータ位置（ｘ’，ｙ’）から最大累積補正量を超える範囲については探索する必要がないためである。ここで、最大累積補正量とは、Ｘ軸補正量データの最大累積値とＹ軸補正量データの最大累積値のうち大きい方の値を指す。
【００４７】
不揮発性メモリ１５の補正量テーブルのデータから、Ｘ軸、Ｙ軸それぞれについてのピッチ誤差最大累積補正量と直角度最大累積補正量を求める。
図７は、Ｘ軸ピッチ誤差補正量ｐｘｉを累積したＸ軸のピッチ誤差最大累積補正量を示し、図８はＹ軸直角度補正量ｒｙｉを累積したＹ軸直角度最大累積補正量を示す。
【００４８】
Ｘ軸の最大累積補正量Ｅmax(x)は、Ｘ軸ピッチ誤差最大累積補正量Ｐmax(x)と、Ｙ軸直角度最大累積補正量Ｒmax(x)の和である。Ｙ軸についても上記と同様に、Ｙ軸の最大累積補正量Ｅmax(y)を求め、Ｅmax(x)とＥmax(y)の大きい方を最大累積補正量Ｅmax とする。Ｘ，Ｙ軸モータ５１，５２とＸ，Ｙ軸現在位置がＥmaxの値より離れて位置することはないため、図５に点Ｐで示すモータ位置（ｘ’，ｙ’）から最大累積補正量Ｅmax だけ離れた位置より内側の全ての補正エリアを探索すれば、現在位置（ｘ，ｙ）が存在し得る全ての補正エリアを探索したことになる。そして、補正間隔をＬとすると、探索範囲は最大累積補正量Ｅmax ÷Ｌとして求めることができる。尚、ピッチ誤差、直角度それぞれの最大累積補正量が負の値になる場合には、その絶対値を用いるものとする。
【００４９】
次に、Ｓ２１においては、前回の探索範囲より外側に１エリア拡大した複数の補正エリアに探索範囲を拡大する。最初は、図６に示すように、第１補正エリアから外側に１エリア拡大した８つの補正エリアを探索範囲とする。Ｓ２２においては、探索順位に従って探索範囲内の補正エリアで現在位置（ｘ，ｙ）を演算する。
【００５０】
このとき、第１補正エリアの外側に隣接する８つの補正エリアから所定の選択則で順次選択される候補補正エリアに、Ｘ，Ｙ軸現在位置（ｘ，ｙ）が対応すると仮定して、テーブル２のＸ，Ｙ軸現在位置（ｘ，ｙ）を夫々求め、求めたＸ，Ｙ軸現在位置（ｘ，ｙ）が前記候補補正エリア内に入る場合に限って、Ｘ，Ｙ軸現在位置（ｘ，ｙ）を前記求めたＸ，Ｙ軸現在位置とする。但し、モータ位置（ｘ’，ｙ’）は不変であり、図５の点Ｐの位置である。
【００５１】
図６において、１，２，３・・は探索する順位を示し、前記所定の選択則は、Ｘ軸，Ｙ軸ともに補正点番号が最も小さい補正エリアを順位１とし、その補正エリアから反時計回りに隣接する補正エリアの順に探索するものとする。
【００５２】
Ｓ２３においては、正しい現在位置（ｘ，ｙ）が得られたか否か判定する。この場合、求めた現在位置（ｘ，ｙ）が、属していると仮定した補正エリアに入っている場合には、正しい現在位置（ｘ，ｙ）が得られたとしてＳ２４へ移行し、Ｓ２４において探索成功とし、その後図９のＳ９へ移行し、Ｓ９の判定がＹｅｓとなるため、Ｓ７へ移行する。
【００５３】
Ｓ２３の判定がＮｏの場合、Ｓ２５において探索範囲内の全ての補正エリアで現在位置（ｘ，ｙ）を演算したか否か判定し、その判定がＮｏの場合Ｓ２２へ戻って残りの補正エリアについて探索を実行する。Ｓ２１で拡大した探索範囲の全ての補正エリアについて現在位置（ｘ，ｙ）の探索が終了した場合には、Ｓ２５の判定がＹｅｓとなり、Ｓ２６において限界探索範囲内の全てのエリアで現在位置（ｘ，ｙ）を演算したか否か判定する。
【００５４】
Ｓ２６においてその判定がＮｏの場合Ｓ２１へ戻って前回の探索範囲より外側に１エリア拡大した複数の補正エリアに探索範囲を拡大する。例えば、図６に示す８つの補正エリアの全てについての探索が終了した場合には、順位１〜８の補正エリアの外側に１エリア拡大した１６個の補正エリアに探索範囲を拡大する。この場合も、図６に示した順位と同様に順位付けするものとする。その１６個の補正エリアの全てについての探索が終了した場合には、その１６個の補正エリアの外側に１エリア拡大した複数の補正エリアに探索範囲を拡大する。以下、同様である。
【００５５】
Ｓ２０で求めた限界探索範囲の全ての補正エリアについて現在位置（ｘ，ｙ）の探索が終了した場合には、Ｓ２６の判定がＹｅｓとなり、Ｓ２７において探索失敗とされ、図９のＳ９における判定がＮｏとなってＳ１０へ移行し、Ｓ１０においてブザーを鳴らしたり、赤色ランプを点灯させる等のエラー報知が実行され、マシニングセンタの全ての操作が禁止され、その後制御が終了する。
【００５６】
尚、エンコーダ６１，６２が「Ｘ，Ｙ軸絶対位置検出手段」に相当する。図９、図１０のフローチャートが「現在位置決定手段」に相当する。フローチャート中のＳ２が「検出手段」に相当する。フローチャート中のＳ６が「判定手段」に相当する。
【００５７】
以上説明した数値制御装置１の作用、効果について説明する。
非常停止した状態から復帰した時にＸ，Ｙ軸モータ５１，５２を動かすことなく被駆動体のＸ，Ｙ軸現在位置（ｘ，ｙ）を決定することができるため、工作機械の主軸とテーブル上の治具やワークが干渉するのを防止することができる。
【００５８】
複数行複数列の複数の補正エリアのうち、前記Ｘ，Ｙ軸絶対位置（ｘ’，ｙ’）が対応する第１補正エリア内に、前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）が入るか否か判定するように構成したため、この判定に基づいて前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）が正しい現在位置か否か判定することができる。前記判定の結果、第１補正エリア内に前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）が入る場合には、前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）を非常停止した状態から復帰した時のＸ，Ｙ軸現在位置とするため、Ｘ，Ｙ軸現在位置（ｘ，ｙ）を確実に判定することができる。
【００５９】
前記判定の結果、第１補正エリア内に前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）が入らない場合、前記第１補正エリアの外側に隣接する８つの補正エリアから所定の選択則で順次選択される候補補正エリアに、前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）が対応すると仮定して、被駆動体のＸ，Ｙ軸現在位置（ｘ，ｙ）を夫々求め、求めたＸ，Ｙ軸現在位置（ｘ，ｙ）が前記候補補正エリア内に入る場合に限って、前記Ｘ，Ｙ軸現在位置（ｘ，ｙ）を前記求めたＸ，Ｙ軸現在位置とする。そのため、Ｘ，Ｙ軸現在位置（ｘ，ｙ）が属する可能性の高い８つの補正エリアについてＸ，Ｙ軸現在位置を探索するため、Ｘ，Ｙ軸現在位置を求めるまでにかかる制御負荷を軽くすることができる。
【００６０】
前記実施例を部分的に変更する例について説明する。
１］前記実施例では、エンコーダ６１，６２がアブソリュート形のエンコーダであるとして説明したが、エンコーダ６１，６２としてインクリメント形のエンコーダを採用すると共に、モータ５１，５２の原点位置を検出する原点位置検出スイッチを設け、これらエンコーダと原点位置検出スイッチからの信号からモータ５１，５２の絶対位置を知ることができる。
２］図６に示す８つの補正エリアを探索する探索順位の決定の仕方は一例に過ぎず、この探索順位の決定の仕方と異なる方法で探索順位を決定してもよい。
【産業上の利用可能性】
【００６１】
数値制御式工作機械が停電等によって非常停止した場合に、ＮＣ制御装置において被駆動体の制御上の現在位置をモータを動かすことなく決定することができるため、非常停止した状態から復帰した時に工作機械の主軸とテーブル上の治具やワークが干渉するのを防止することができ、数値制御式工作機械を使用するときの安全性を高めることができる。
【符号の説明】
【００６２】
１        数値制御装置
２        テーブル（被駆動体）
１１      ＣＰＵ
１２      ＲＯＭ
１３      ＲＡＭ
１５      不揮発性メモリ
６１，６２      エンコーダ
【図１】
2010225034.tif 000006
【図２】
2010225034.tif 000007
【図３】
2010225034.tif 000008
【図４】
2010225034.tif 000009
【図５】
2010225034.tif 000010
【図６】
2010225034.tif 000011
【図７】
2010225034.tif 000012
【図８】
2010225034.tif 000013
【図９】
2010225034.tif 000014
【図１０】
2010225034.tif 000015
【図１１】
2010225034.tif 000016