(57)【要約】  数値制御装置は、複数の工具が取り付けられるタレットを移動させるＸ軸と、前記タレットを回転させるＨ軸と、ワークを回転させるＣ軸とを有し、前記Ｘ軸に直交するＹ軸を有さない工作機械を制御する数値制御装置であって、プログラム座標系で記述された加工プログラム中のＸ−Ｙ軸移動指令をＸ−Ｈ−Ｃ軸からなる機械座標系での指令に変換し、変換した指令に従ってＸ軸、Ｈ軸およびＣ軸を連動駆動する仮想Ｙ軸制御モードを実行する仮想Ｙ軸制御部と、前記仮想Ｙ軸制御モード中に非常停止が発生した場合、非常停止が解除されたときの前記Ｘ軸、Ｃ軸およびＨ軸の現在の位置を取得する取得部と、前記取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する復元部とを備えている。
2012101790.tif 000002
【特許請求の範囲】
【請求項１】
複数の工具が取り付けられるタレットを移動させるＸ軸と、前記タレットを回転させるＨ軸と、ワークを回転させるＣ軸とを有し、前記Ｘ軸に直交するＹ軸を有さない工作機械を制御する数値制御装置であって、
プログラム座標系で記述された加工プログラム中のＸ−Ｙ軸移動指令をＸ−Ｈ−Ｃ軸からなる機械座標系での指令に変換し、変換した指令に従ってＸ軸、Ｈ軸およびＣ軸を連動駆動する仮想Ｙ軸制御モードを実行する仮想Ｙ軸制御部と、
前記仮想Ｙ軸制御モード中に非常停止が発生した場合、非常停止が解除されたときの前記Ｘ軸、Ｃ軸およびＨ軸の現在の位置を取得する取得部と、
前記取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する復元部と、
を備えたことを特徴とする数値制御装置。
【請求項２】
手動操作によるＸ軸の移動指令を発生させて前記タレットを移動させることにより工具をワークから引き抜くためのハンドルをさらに備え、
前記仮想Ｙ軸制御部は、前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置またはＹ軸座標位置と、前記ハンドルから発生されるＸ軸の移動指令とに基づき、前記現在のＸ軸座標位置またはＹ軸座標位置からワークに干渉せずに工具が引き抜かれるようＸ軸、Ｈ軸およびＣ軸を連動駆動する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記仮想Ｙ軸制御部は、
プログラム座標系で作成された加工プログラムの指令を、１ブロック毎に、Ｘ軸移動指令及びＹ軸移動指令の少なくとも一方を含む第１移動指令と、Ｈ軸単独移動指令及びＣ軸移動指令の少なくとも一方を含む第２移動指令とに分離する分離部と、
前記第１移動指令をＸ−Ｈ−Ｃ軸から成る機械座標系の指令に変換する座標変換部と、
前記変換されたＨ軸移動指令と前記分離されたＨ軸単独移動指令とを合成し、前記変換されたＣ軸移動指令と前記分離されたＣ軸単独移動指令とを合成する合成部と、
前記変換されたＸ軸移動指令、前記合成されたＨ軸移動指令およびＣ軸移動指令に従って前記Ｘ軸、Ｈ軸、Ｃ軸を駆動制御する駆動部と、
を備え、
非常停止される以前の前記第２移動指令による移動量を記憶する第１の記憶部をさらに備え、
前記復元部は、取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記第１の記憶部に記憶された移動量分の位置を分離し、この分離結果を用いて前記座標変換部による座標変換と逆方向の変換を行って前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項４】
非常停止される直前のプログラム座標系におけるＸ軸及びＹ軸の座標位置を記憶する第２の記憶部と、
前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置から前記第２の記憶部の記憶された座標位置へ前記タレット及び前記ワークを復帰移動させるようにＸ軸、Ｈ軸およびＣ軸を連動駆動する復帰移動部と、
をさらに備えた
ことを特徴とする請求項１に記載の数値制御装置。
【請求項５】
加工プログラムに含まれるＸ−Ｙ軸移動指令であって、前記非常停止される時点から最短時点で実行済みのＸ−Ｙ軸移動指令で記述された座標位置を記憶する第３の記憶部と、
前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置から前記第３の記憶部の記憶された座標位置へ前記タレット及び前記ワークを復帰移動させるようにＸ軸、Ｈ軸およびＣ軸を連動駆動する復帰移動部と、
をさらに備えた
ことを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関する。
【背景技術】
【０００２】
特許文献１には、Ｙ軸を持たないＮＣターレット旋盤が記載されている。ＮＣターレット旋盤は、ワークの送り動作を行うＺ軸と、ワークの回転を行うＣ軸と、Ｚ軸に垂直な軸であって工具ターレットの送り動作を行うＸ軸と、工具ターレットの回転を行うターレット回転軸とを有しているが、Ｚ軸及びＸ軸に垂直なＹ軸を有していない。このようなＮＣターレット旋盤において、Ｃ軸の回転とターレット回転軸の回転とを結合させて行い、工具のワークに対するＹ軸方向の送り動作を生起するものとされている。これにより、特許文献１によれば、Ｙ軸を持たないＮＣターレット旋盤を用いて、あたかもＹ軸を有しているかのように機械加工作用を実行できるとされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特公平３−３３４４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
あたかもＹ軸を有しているかのように機械加工を行うための制御、すなわち仮想Ｙ軸制御では、工作機械が工具でワークを加工している途中に、工作機械が非常停止された場合、仮想Ｙ軸制御がキャンセルされる。その後、工作機械の非常停止が解除されたとしても、工具がワーク内に入り込んだ状態になっている場合、仮想Ｙ軸制御がキャンセルされているため、Ｘ軸方向に工具を動かしながらそれに同期させてタレット及びワークを回転させることが困難である。すなわち、工作機械を非常停止前の状態に戻すために、工具をワークから引き抜くことが困難であり、無理やり工具をワークから引き抜こうとすると工具を破損させる可能性がある。【０００５】
また、工具がワーク内に入り込んだ状態になっていない場合でも、工作機械が非常停止されると、仮想Ｙ軸制御がキャンセルされるとともに、タレット及びワークの駆動がサーボオフ状態になるため、タレットやワークが自重で動いてしまう。これにより、工作機械の非常停止直前におけるタレットやワークの座標を把握することが困難になる。すなわち、工作機械を非常停止前の状態に戻すために、工作機械におけるタレットやワークを非常停止直前の位置に復帰させることが困難である。さらに、工作機械の非常停止時に実行していた加工を工作機械の非常停止が解除された後に再開させることも困難である。【０００６】
本発明は、上記に鑑みてなされたものであって、工作機械を非常停止前の状態に戻すことができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の１つの側面にかかる数値制御装置は、複数の工具が取り付けられるタレットを移動させるＸ軸と、前記タレットを回転させるＨ軸と、ワークを回転させるＣ軸とを有し、前記Ｘ軸に直交するＹ軸を有さない工作機械を制御する数値制御装置であって、プログラム座標系で記述された加工プログラム中のＸ−Ｙ軸移動指令をＸ−Ｈ−Ｃ軸からなる機械座標系での指令に変換し、変換した指令に従ってＸ軸、Ｈ軸およびＣ軸を連動駆動する仮想Ｙ軸制御モードを実行する仮想Ｙ軸制御部と、前記仮想Ｙ軸制御モード中に非常停止が発生した場合、非常停止が解除されたときの前記Ｘ軸、Ｃ軸およびＨ軸の現在の位置を取得する取得部と、前記取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する復元部とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プログラム座標系における現在のＸ軸及びＹ軸の座標位置を復元するので、プログラム座標系上で工作機械を非常停止前の状態に戻すように指令することができる。したがって、工作機械を非常停止前の状態に戻すことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１における工作機械の外観構成を示す図である。
【図２】図２は、実施の形態１にかかる数値制御装置の構成を示す図である。
【図３】図３は、実施の形態１にかかる数値制御装置の通常時の動作を示すフローチャートである。
【図４】図４は、実施の形態１における数値制御装置の非常停止時の動作を示すフローチャートである。
【図５】図５は、実施の形態１における工作機械の非常停止時の動作を示す図である。
【図６】図６は、実施の形態１における工作機械の非常停止時の動作を示す図である。
【図７】図７は、実施の形態１における運転モード信号を示す図である。
【図８】図８は、実施の形態１における工作機械の非常停止解除後の動作を示す図である。
【図９】図９は、実施の形態２にかかる数値制御装置の構成を示す図である。
【図１０】図１０は、実施の形態２における数値制御装置の非常停止時の動作を示すフローチャートである。
【図１１】図１１は、実施の形態２における工作機械の非常停止時の動作を示す図である。
【図１２】図１２は、実施の形態２における加工プログラムを示す図である。
【図１３】図１３は、比較例にかかる数値制御装置の構成を示す図である。
【図１４】図１４は、比較例における工作機械の非常停止時の動作を示す図である。
【図１５】図１５は、比較例における工作機械の非常停止時の動作を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる数値制御装置の実施の形態を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
実施の形態１にかかる数値制御装置１の概略構成について図１及び図２を用いて説明する。図１（ａ）及び図１（ｂ）は、それぞれ、数値制御装置１により制御される工作機械９００の外観構成を示す斜視図及び正面図である。図２は、数値制御装置１の構成を示すブロック図である。
【００１２】
工作機械９００は、図１（ａ）、（ｂ）に示すように、タレット９０５、及びワーク支持部９０６を有する。工作機械９００は、Ｘ軸、Ｚ軸、Ｈ軸、及びＣ軸を有する。Ｘ軸は、タレット９０５を移動させる移動軸である。Ｚ軸は、ワークＷを移動させる移動軸である。Ｈ軸は、タレット９０５を回転させることで、工具９０５１、９０５２を旋回させる回転軸である。Ｃ軸は、ワークＷを回転させる回転軸である。
【００１３】
なお、図１には、Ｘ軸、Ｚ軸に垂直なＹ軸を破線で図示している。Ｙ軸はユーザが作成する加工プログラム３４３中の仮想Ｙ軸制御モード内で使用される仮想的な移動軸である。ユーザは、仮想Ｙ軸制御モード内では、Ｘ軸、Ｙ軸、Ｈ軸およびＣ軸の座標位置を指定して所要の加工プログラム３４３を作成する。本実施形態では、仮想Ｙ軸制御モード中、Ｚ軸の指定はなされない。ユーザは、Ｈ軸、Ｃ軸の回転を考慮することなく、例えば、工具方向と仮想平面Ｘ軸が一致した状態を想定してＸ−Ｙ座標などを指定することによって加工プログラム３４３を作成する。加工プログラム３４３において、例えば、Ｘ軸指令は「Ｘ２０」、Ｙ軸指令は「Ｙ５０」、Ｃ軸指令は「Ｃ１８０」、Ｈ軸指令は「Ｔ１１１１」というように記述される（図１２参照）。
【００１４】
工作機械９００は、図２に示すように、さらに、Ｘ軸、Ｈ軸、Ｚ軸、Ｃ軸サーボモータ９０１、９０２、９０３、９０４を有する。Ｘ軸サーボモータ９０１、Ｈ軸サーボモータ９０２は、タレット９０５に対して、Ｘ軸の移動、Ｈ軸の回転を行う。Ｚ軸サーボモータ９０３、Ｃ軸サーボモータ９０４は、ワーク支持部９０６に対して、Ｚ軸の移動、Ｃ軸の回転を行う。
【００１５】
数値制御装置１は、表示部１０、入力操作部２０、制御演算部３０、及び駆動部９０を備える。例えば、ユーザによる加工プログラム３４３の自動起動ボタンの操作に応じて、加工プログラム３４３の自動起動の信号が制御演算部３０へ供給される。これに応じて、制御演算部３０は、加工プログラム３４３を起動して、加工プログラム３４３に従い、Ｘ軸の移動量指令、Ｈ軸の回転量指令、Ｚ軸の移動量指令、Ｃ軸の回転量指令を生成して駆動部９０へ供給する。駆動部９０は、Ｘ軸サーボ制御部９１、Ｈ軸サーボ制御部９２、Ｚ軸サーボ制御部９３、Ｃ軸サーボ制御部９４を有し、制御演算部３０から入力されたＸ軸の移動量指令、Ｈ軸の回転量指令、Ｚ軸の移動量指令、Ｃ軸の回転量指令に従い、Ｘ軸サーボモータ９０１、Ｈ軸サーボモータ９０２、Ｚ軸サーボモータ９０３、Ｃ軸サーボモータ９０４を駆動する。また、制御演算部３０は、Ｘ軸位置センサ９５、Ｈ軸位置センサ９６、Ｚ軸位置センサ９７、Ｃ軸位置センサ９８から、駆動部９０経由でフィードバック位置データ（ＦＢ位置データ：位置センサのデータから構築される機械座標系におけるＸ軸、Ｈ軸、Ｚ軸、Ｃ軸の座標位置）を受ける。
【００１６】
制御演算部３０は、ＰＬＣ３６、機械制御信号処理部３５、記憶部３４、解析処理部３７、補間処理部３８、仮想Ｙ軸制御切換処理部３９、スイッチ４４、加減速処理部４３、仮想Ｙ軸制御部４１、軸データ入出力部４２、入力制御部３２、画面処理部３１、及びデータ設定部３３を有する。
【００１７】
加工プログラム３４３の自動起動の信号は、ＰＬＣ３６経由で機械制御信号処理部３５に入力される。機械制御信号処理部３５は、記憶部３４経由で解析処理部３７に指示して加工プログラム３４３を起動させる。
【００１８】
記憶部３４は、記憶部３４ａ〜３４ｃを有する。記憶部３４ａ、記憶部３４ｂ、記憶部３４ｃは、それぞれ、非常停止時プログラム座標メモ３４６、Ｈ軸・Ｃ軸単独指令メモ３４８、加工プログラム３４３を記憶する。なお、非常停止時プログラム座標メモ３４６及びＨ軸・Ｃ軸単独指令メモ３４８のそれぞれ詳細は後述する。また、記憶部３４は、工具補正データ３４２、加工プログラム３４３、画面表示データ３４４を記憶するとともに、ワークスペースとしての共有エリア３４５を有している。
【００１９】
解析処理部３７は、加工プログラム３４３の起動指示に応じて、記憶部３４から加工プログラム３４３を読み出し、加工プログラム３４３の各ブロック（各行）について解析処理を行う。解析処理部３７は、解析したブロック（行）にＭコード（例えば、図１２に示すＭコード「Ｍ１１１」）が含まれていれば、その解析結果を記憶部３４、機械制御信号処理部３５経由でＰＬＣ３６へ渡す。解析処理部３７は、解析した行にＭコード以外のコード（例えば、図１２に示すＧコード「Ｇ０１」）が含まれていれば、その解析結果に記憶部３４の工具補正データ３４２から読み出された工具補正量（Ｔｘ、Ｔｙ）を加味して補間処理部３８へ渡す。
【００２０】
ＰＬＣ３６は、解析結果（例えば、図１２に示すＭコード「Ｍ１１１」）を受けた場合、仮想Ｙ軸制御モードＯＮのＭコードの通知を受けて仮想Ｙ軸制御モード信号をＯＮする。機械制御信号処理部３５内の仮想Ｙ軸制御モード信号処理部３５１は、仮想Ｙ軸制御モード信号をチェックして記憶部３４の共有エリア３４５に一時記憶させる。これにより、数値制御装置１では、仮想Ｙ軸制御モードが開始され、各部が共有エリア３４５の仮想Ｙ軸制御モード信号（ＯＮ状態）を参照することにより仮想Ｙ軸制御モード中であることを認識する。ＰＬＣ３６が仮想Ｙ軸制御モードＯＦＦのＭコード解析結果（例えば、図１２に示すＭコード「Ｍ１０１」）を受けた場合、機械制御信号処理部３５内の仮想Ｙ軸制御モード信号処理部３５１は、仮想Ｙ軸制御モード信号をＯＦＦ状態にして共有エリア３４５に一時記憶させる。これにより、数値制御装置１では、仮想Ｙ軸制御モードがキャンセルされ、仮想Ｙ軸制御モード以外の通常の制御モードになる。
【００２１】
補間処理部３８は、解析処理部３７から解析結果（位置指令）を受け取り、解析結果（位置指令）に対する補間処理を行い、補間処理の結果（移動量、回転量）を加減速処理部４３へ供給する。
【００２２】
加減速処理部４３は、補間処理部３８から供給された補間処理の結果に対して加減速処理を行う。加減速処理部４３は、Ｘ軸、Ｙ軸、Ｃ軸、Ｈ軸に関する加減速処理結果をスイッチ４４に出力し、Ｚ軸に関する加減速処理結果を軸データ入出力部軸データ入出力部４２に直接出力する。
【００２３】
スイッチ４４は、仮想Ｙ軸制御切換処理部３９からの切り替え信号に基づき加減速処理結果を仮想Ｙ軸制御部４１、軸データ入出力部４２の何れかに出力する。仮想Ｙ軸制御切換処理部３９は、共有エリア３４５の仮想Ｙ軸制御モード信号がＯＮになっている仮想Ｙ軸制御モードにおいて、加減速処理部４３と仮想Ｙ軸制御部４１とを接続するようにスイッチ４４を切り換え、共有エリア３４５の仮想Ｙ軸制御モード信号がＯＦＦになっている仮想Ｙ軸制御モード以外の制御モードにおいて、加減速処理部４３と軸データ入出力部４２とを接続するようにスイッチ４４を切り換える。
【００２４】
仮想Ｙ軸制御部４１は、仮想Ｙ軸制御モードでの制御処理を実行する。具体的には、加減速処理されたＸ軸、Ｙ軸、Ｃ軸、Ｈ軸指令をＸ軸、Ｃ軸、Ｈ軸指令に変換し、変換したＸ軸、Ｃ軸、Ｈ軸指令を軸データ入出力部４２に入力する。仮想Ｙ軸制御モードにおいては、通常は、Ｘ軸、Ｈ軸、Ｃ軸が連動して動作する。
【００２５】
仮想Ｙ軸制御部４１は、仮想Ｙ軸制御指令軸判定部４１４、仮想Ｙ軸制御処理部４１１、仮想Ｙ軸制御指令合成部４１２、非常停止時座標値記憶制御部４１５、Ｈ軸・Ｃ軸単独指令記憶制御部４１６、プログラム座標復元部４１７、及び仮想Ｙ軸制御復帰移動部４１８を有する。
【００２６】
仮想Ｙ軸制御指令軸判定部４１４は、仮想Ｙ軸制御モード下においては、記憶部３４ｃに記憶された加工プログラムを１ブロック（１行）毎に参照し、各ブロック（各行）の指令がＸ−Ｙ軸の移動量指令であるのか、それともＨ軸又はＣ軸の単独回転量指令であるのかを判定する。仮想Ｙ軸制御指令軸判定部４１４は、加工プログラム３４３による指令がＸ−Ｙ軸の移動量指令（例えば、図１２に示す「Ｇ００  Ｘ２０  Ｙ５０」による移動量指令）である場合、加減速処理部４３から入力されたＸ−Ｙ軸の移動量指令を仮想Ｙ軸制御処理部４１１へ供給し、Ｈ軸又はＣ軸の単独回転量指令（例えば、図１２に示す「Ｔ１１１１」や「Ｃ１８０」による単独回転量指令）である場合、加減速処理部４３から入力されたＨ軸又はＣ軸の単独回転量指令を仮想Ｙ軸制御指令合成部４１２へ供給する。別言すれば、仮想Ｙ軸制御指令軸判定部４１４は、プログラム座標系で作成された加工プログラムの指令を、１ブロック毎に、Ｘ−Ｙ軸の移動量指令を含む第１移動量指令と、Ｈ軸単独移動量指令及び／又はＣ軸単独移動量指令を含む第２移動量指令とに分離し、第１移動量指令は仮想Ｙ軸制御処理部４１１へ供給し、第２移動量指令は仮想Ｙ軸制御指令合成部４１２へ供給する。
【００２７】
仮想Ｙ軸制御処理部４１１は、仮想Ｙ軸制御モードにおいて、加減速処理部４３から入力されたＸ−Ｙ軸の移動量指令を移動位置指令（Ｘ１，Ｙ１）に変換し、変換した移動位置指令を、実座標系としての機械座標系の移動位置指令であるＸ軸の移動位置指令とＨ軸の回転位置指令とＣ軸の回転位置指令とに座標変換し、Ｘ軸、Ｈ軸、Ｃ軸の各移動目標位置（Ｘｒ１，Ｈｒ１,Ｃｒ１）を求める。
【００２８】
具体的には、仮想Ｙ軸制御処理部４１１は、前回計算したＸ−Ｙ移動位置と、加減速処理部４３から入力されたＸ−Ｙ軸の移動量指令とを用いて今回のＸ−Ｙ移動位置を計算する。そして、仮想Ｙ軸制御処理部４１１は、計算した今回のＸ−Ｙ移動位置（Ｘ１，Ｙ１）を下記の数式１〜３にしたがって座標変換して、機械座標系における移動位置（Ｘｒ１，Ｈｒ１，Ｃｒ１）を求める。
【００２９】
Ｘｒ１＝ｆ１（Ｘ１）＋ｆ２（Ｙ１）・・・数式１
【００３０】
Ｈｒ１＝ｆ１１（Ｘ１）＋ｆ１２（Ｙ１）・・・数式２
【００３１】
Ｃｒ１＝ｆ２１（Ｘ１）＋ｆ２２（Ｙ１）・・・数式３
【００３２】
さらに、仮想Ｙ軸制御処理部４１１は、機械座標系における前回移動位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と、今回の移動位置（Ｘｒ１，Ｈｒ１，Ｃｒ１）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ１＝Ｘｒ１−Ｘｒ０）とＨ軸回転量（ΔＨｒ１＝Ｈｒ１−Ｈｒ０）とＣ軸回転量（ΔＣｒ１＝Ｃｒ１−Ｃｒ０）とを計算する。
【００３３】
仮想Ｙ軸制御処理部４１１は、このような処理を補間点毎に繰り返す。仮想Ｙ軸制御処理部４１１は、Ｘ軸の移動量指令（ΔＸｒ１）を軸データ入出力部４２へ供給するとともに、Ｈ軸の回転量指令（ΔＨｒ１）とＣ軸の回転量指令（ΔＣｒ１）とを仮想Ｙ軸制御指令合成部４１２へ供給する。
【００３４】
なお、仮想Ｙ軸制御処理部４１１は、Ｘ−Ｙ軸の移動量指令を受けていない場合、回転量零の回転量指令、すなわちΔＨｒ１＝０とΔＣｒ１＝０とを仮想Ｙ軸制御指令合成部４１２へ供給し、ΔＸｒ１＝０を軸データ入出力部４２へ供給する。
【００３５】
仮想Ｙ軸制御指令合成部４１２は、加減速処理部４３から入力されたＨ軸及び／又はＣ軸の単独回転量指令（ΔＨ２及び／又はΔＣ２）と、仮想Ｙ軸制御処理部４１１から入力される座標変換後のＨ軸の回転量指令（ΔＨｒ１）とＣ軸の回転量指令（ΔＣｒ１）とをそれぞれ合成する。
【００３６】
仮想Ｙ軸制御指令合成部４１２は、下記の数式４に示すように、Ｈ軸の単独回転量指令ΔＨｒ２（＝ΔＨ２）を、仮想Ｙ軸制御処理部４１１により生成されたＨ軸の回転量指令ΔＨｒ１と合成し、Ｈ軸の回転量指令ΔＨｒを生成する。
【００３７】
ΔＨｒ＝ΔＨｒ１＋ΔＨｒ２・・・数式４
【００３８】
同様に、仮想Ｙ軸制御指令合成部４１２は、下記の数式５に示すように、Ｃ軸の単独回転量指令ΔＣｒ２（＝ΔＣ２）を、仮想Ｙ軸制御処理部４１１により生成されたＣ軸の回転量指令ΔＣｒ１と合成し、Ｃ軸の回転量指令ΔＣｒを生成する。
【００３９】
ΔＣｒ＝ΔＣｒ１＋ΔＣｒ２・・・数式５
【００４０】
仮想Ｙ軸制御指令合成部４１２は、合成したＨ軸の回転量指令ΔＨｒ及びＣ軸の回転量指令ΔＣｒを軸データ入出力部４２へ供給する。
【００４１】
非常停止時座標値記憶制御部４１５は、記憶部３４ａへの非常停止時プログラム座標メモ３４６の記憶を制御する。例えば、非常停止時座標値記憶制御部４１５は、定期的に、仮想Ｙ軸制御処理部４１１から、プログラム座標系におけるＸ軸、Ｙ軸の座標（Ｘ２，Ｙ２）を取得し、取得したＸ軸、Ｙ軸の座標（Ｘ２，Ｙ２）を非常停止時プログラム座標メモ３４６として記憶部３４ａに定期的に例えば上書き記憶する。
【００４２】
Ｈ軸・Ｃ軸単独指令記憶制御部４１６は、記憶部３４ｂへのＨ軸・Ｃ軸単独指令メモ３４８の記憶を制御する。例えば、Ｈ軸・Ｃ軸単独指令記憶制御部４１６は、Ｈ軸又はＣ軸の単独回転量指令が入るたびに、仮想Ｙ軸制御指令合成部４１２からＨ軸又はＣ軸の単独回転量指令による回転量を取得し、取得したＨ軸又はＣ軸の単独回転量指令による回転量を積算し、積算結果としてのＨ軸又はＣ軸の単独回転量指令による現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３，ΔＣ３）をＨ軸・Ｃ軸単独指令メモ３４８として記憶部３４ｂに例えば上書き記憶する。別言すれば、Ｈ軸・Ｃ軸単独指令記憶制御部４１６は、非常停止される以前における上記の第２移動量指令による移動量の積算値を、現在のＨ軸回転位置およびＣ軸回転位置を示す値として記憶部３４ｂに記憶する。
【００４３】
プログラム座標復元部４１７は、非常停止が解除された際に、プログラム座標系におけるＸ軸及びＹ軸の座標を復元する。具体的には、プログラム座標復元部４１７は、非常停止解除の指令を受けた場合に、軸データ入出力部４２経由でサーボモータ９０１、９０２、９０４の位置センサ９５、９６、９８から、機械座標系における現在のＸ軸、Ｈ軸、及びＣ軸の座標（Ｘｒ０，Ｈｒ０，Ｃｒ０）を取得する。プログラム座標復元部４１７は、下記の数式６及び７により、機械座標系における現在のＸ軸、Ｈ軸、及びＣ軸の座標（Ｘｒ０，Ｈｒ０，Ｃｒ０）からプログラム座標系における現在のＸ軸及びＹ軸の座標（Ｘ０、Ｙ０）を復元する。
【００４４】
Ｘ０＝ｆ’１１（Ｘｒ０）＋ｆ’１２（Ｈｒ０）＋ｆ’１３（Ｃｒ０）・・・数式６
【００４５】
Ｙ０＝ｆ’２１（Ｘｒ０）＋ｆ’２２（Ｈｒ０）＋ｆ’２３（Ｃｒ０）・・・数式７
【００４６】
すなわち、プログラム座標復元部４１７は、仮想Ｙ軸制御処理部４１１により行なわれる変換（プログラム座標から機械座標への変換）と逆方向の変換を行う。
【００４７】
仮想Ｙ軸制御復帰移動部４１８は、非常停止が解除された際に、非常停止される直前の位置へワークＷ及びタレット９０５を復帰移動させる。具体的には、仮想Ｙ軸制御復帰移動部４１８は、非常停止解除の指令を受けた場合に、記憶部３４ａから非常停止時プログラム座標メモ３４６を読み出して、プログラム座標系における非常停止される直前のＸ軸、Ｙ軸の座標（Ｘ４，Ｙ４）を取得する。仮想Ｙ軸制御復帰移動部４１８は、プログラム座標系における復元された現在の座標（Ｘ０，Ｙ０）から非常停止される直前のＸ軸、Ｙ軸の座標（Ｘ４，Ｙ４）へ移動させるための移動量指令に対して、補間処理、加減速処理を行う。
【００４８】
具体的には、仮想Ｙ軸制御復帰移動部４１８は、補間処理、加減速処理の結果としてのＸ−Ｙ軸の移動量指令と、復元された現在の座標（Ｘ０，Ｙ０）とを用いて今回のＸ−Ｙ移動位置を計算する。そして、仮想Ｙ軸制御復帰移動部４１８は、プログラム座標系における計算した今回のＸ−Ｙ移動位置（Ｘ４，Ｙ４）を上記の数式１〜３にしたがって座標変換して、機械座標系における移動位置（Ｘｒ４，Ｈｒ４，Ｃｒ４）を求める。
【００４９】
さらに、仮想Ｙ軸制御復帰移動部４１８は、機械座標系における位置センサ９５、９６、９８から取得された現在の位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と、今回の移動位置（Ｘｒ４，Ｈｒ４，Ｃｒ４）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ４＝Ｘｒ４−Ｘｒ０）とＨ軸回転量（ΔＨｒ４＝Ｈｒ４−Ｈｒ０）とＣ軸回転量（ΔＣｒ４＝Ｃｒ４−Ｃｒ０）とを計算する。
【００５０】
仮想Ｙ軸制御復帰移動部４１８は、このような処理を補間点毎に繰り返す。仮想Ｙ軸制御復帰移動部４１８は、Ｘ軸の移動量指令（ΔＸｒ４）、Ｈ軸の回転量指令（ΔＨｒ４）、及びＣ軸の回転量指令（ΔＣｒ４）を軸データ入出力部４２へ供給する。
【００５１】
軸データ入出力部４２は、Ｘ軸の移動量指令ΔＸｒ１、ΔＸｒ４を駆動部９０へ供給し、Ｈ軸の回転量指令ΔＨｒ、ΔＨｒ４及びＣ軸の回転量指令ΔＣｒ、ΔＣｒ４を駆動部９０へ供給する。
【００５２】
ハンドル５０は、ユーザによる手動操作によって例えばＸ軸の移動量指令を発生させる。ハンドル５０は、工具がワークＷに挿入された状態で非常停止が発生した場合に、非常停止解除後、ワークＷから工具を引き抜く際などに使用される。ハンドル５０は、ハンドルモードの際に使用可能となる。
【００５３】
次に、実施の形態１にかかる数値制御装置１の通常時の動作について図３を用いて説明する。図３は、実施の形態１にかかる数値制御装置の動作を示すフローチャートである。
【００５４】
ステップＳ１では、解析処理部３７が、工具補正量（Ｔｘ、Ｔｙ）を記憶部３４から読み出して、加工プログラム３４３の解析結果に工具補正量（Ｔｘ、Ｔｙ）を加味して補間処理部３８へ渡す。
【００５５】
ステップＳ２では、補間処理部３８が、解析処理部３７から解析結果（位置指令）を受け取り、解析結果（位置指令）に対する補間処理を行い、補間処理の結果を加減速処理部４３へ供給する。
【００５６】
ステップＳ３では、加減速処理部４３が、供給された補間処理の結果に対して加減速処理を行い、加減処理結果をスイッチ４４に供給する。
【００５７】
ステップＳ４では、仮想Ｙ軸制御切換処理部３９が、共有エリア３４５の仮想Ｙ軸制御モード信号に基づき仮想Ｙ軸制御判定処理を行うべきか否かを判断する。すなわち、仮想Ｙ軸制御切換処理部３９は、仮想Ｙ軸制御モードである場合（ステップＳ４で「Ｙｅｓ」）、処理をステップＳ１０へ進める。仮想Ｙ軸制御切換処理部３９は、仮想Ｙ軸制御モード以外の制御モードである場合（ステップＳ４で「Ｎｏ」）、処理をステップＳ１７へ進める。
【００５８】
ステップＳ１０では、仮想Ｙ軸制御部４１が、仮想Ｙ軸制御モードの処理を行う。具体的には、以下のステップＳ１１〜Ｓ１６の処理を行う。
【００５９】
ステップＳ１１では、仮想Ｙ軸制御指令軸判定部４１４は、記憶部３４に記憶された加工プログラム３４３を１ブロック毎に参照し、各ブロックの指令がＸ−Ｙ軸の移動量指令であるのか、それともＨ軸及び／又はＣ軸の単独回転量指令であるのかを判定する。仮想Ｙ軸制御指令軸判定部４１４は、加工プログラム３４３による指令がＸ−Ｙ軸の移動量指令（例えば、図１２に示す「Ｘ２０  Ｙ５０」への移動量指令）である場合、そのＸ−Ｙ軸の移動量指令を仮想Ｙ軸制御処理部４１１へ供給し、処理をステップＳ１２へ進める。仮想Ｙ軸制御指令軸判定部４１４は、加工プログラム３４３による指令がＨ軸及び／又はＣ軸の単独回転量指令（例えば、図１２に示す「Ｔ１１１１」や「Ｃ１８０」による単独回転量指令）である場合、そのＨ軸及び／又はＣ軸の単独回転量指令を仮想Ｙ軸制御指令合成部４１２へ供給し、処理をステップＳ１６へ進める。
【００６０】
ステップＳ１２では、仮想Ｙ軸制御処理部４１１が、プログラム座標位置計算処理を行う。すなわち、仮想Ｙ軸制御処理部４１１は、加減速処理部４３から入力されたＸ−Ｙ軸の移動量指令と、前回のＸ−Ｙ移動位置とを用いて今回の移動位置（Ｘ軸座標「Ｘ１」、Ｙ軸座標「Ｙ１」）を計算する。
【００６１】
ステップＳ１３では、仮想Ｙ軸制御処理部４１１が、座標変換処理（仮想Ｙ軸制御のプログラム座標→機械座標の変換処理）を行う。すなわち、仮想Ｙ軸制御処理部４１１は、プログラム座標系における今回の移動位置（Ｘ１，Ｙ１）を上記の数式１〜３により座標変換して、機械座標系における移動位置（Ｘｒ１，Ｈｒ１，Ｃｒ１）を求める。
【００６２】
ステップＳ１５では、仮想Ｙ軸制御処理部４１１が、機械座標系における前回位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と今回の移動位置（Ｘｒ１，Ｈｒ１，Ｃｒ１）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ１＝Ｘｒ１−Ｘｒ０）とＨ軸回転量（ΔＨｒ１＝Ｈｒ１−Ｈｒ０）とＣ軸回転量（ΔＣｒ１＝Ｃｒ１−Ｃｒ０）とを計算する。仮想Ｙ軸制御処理部４１１は、Ｘ軸の移動量指令（ΔＸｒ１）を軸データ入出力部４２へ供給して処理をステップＳ１７へ進めるとともに、Ｈ軸の回転量指令（ΔＨｒ１）とＣ軸の回転量指令（ΔＣｒ１）とを仮想Ｙ軸制御指令合成部４１２へ供給して処理をステップＳ１６へ進める。
【００６３】
ステップＳ１６では、仮想Ｙ軸制御指令合成部４１２が、上記の数式４に示すように、Ｈ軸の単独回転量指令ΔＨｒ２を、仮想Ｙ軸制御処理部４１１により生成されたＨ軸の回転量指令ΔＨｒ１と合成し、Ｈ軸の回転量指令ΔＨｒを生成する。同様に、仮想Ｙ軸制御指令合成部４１２は、上記の数式５に示すように、Ｃ軸の単独回転量指令ΔＣｒ２を、仮想Ｙ軸制御処理部４１１により生成されたＣ軸の回転量指令ΔＣｒ１と合成し、Ｃ軸の回転量指令ΔＣｒを生成する。仮想Ｙ軸制御指令合成部４１２は、合成したＨ軸の回転量指令ΔＨｒ及びＣ軸の回転量指令ΔＣｒを軸データ入出力部４２へ供給する。
【００６４】
ステップＳ１７では、軸データ入出力部４２が、軸データ出力処理を行う。すなわち、軸データ入出力部４２は、仮想Ｙ軸制御処理部４１１から供給されたＸ軸の移動量指令ΔＸｒ１を駆動部９０へ供給するとともに、仮想Ｙ軸制御指令合成部４１２から供給されたＨ軸の回転量指令ΔＨｒ及びＣ軸の回転量指令ΔＣｒを駆動部９０へ供給する。
【００６５】
次に、実施の形態１にかかる数値制御装置１を用いた工作機械９００の非常停止時の動作について、図４〜図８を用いて説明する。図４は、数値制御装置１を用いた工作機械９００の非常停止時の動作を示すフローチャートである。図５、６、８は、工作機械９００の非常停止時の動作を示す図である。図７は、運転モード信号のデータ構造を示す図である。
【００６６】
図４に示すステップＳ２１では、入力操作部２０内の非常停止ボタンがユーザにより押されると、非常停止の指令が各部に入力される。
【００６７】
駆動部９０は、非常停止の指令を受けた場合に、軸データ入出力部４２からの駆動制御データを受け付けないサーボオフ状態になる。これにより、例えば、タレット９０５やワーク支持部９０６（ワークＷ）が自重により動いてしまう（図５（ａ）、（ｂ）、図６（ａ）、（ｂ）参照）。あるいは、例えば、穴あけ加工用の工具９０５２がワークＷ内に入り込んだままの状態になる（図８（ａ）参照）。
【００６８】
ステップＳ２２では、運転モードをメモリ運転モードからハンドルモードへ切り替えるための操作がユーザにより行われると、ＰＬＣ３６は、機械制御信号処理部３５に対して運転モード信号をメモリ運転モードＯＮの状態（図７（ａ）に示すビットＭＭが「１」の状態）からハンドル運転モードＯＮの状態（図７（ｂ）に示すビットＨＭが「１」の状態）へ切り替えて共有エリア３４５に一時記憶させる。これにより、数値制御装置１では、各部が共有エリア３４５の運転モード信号（ハンドル運転モードＯＮの状態）を参照することによりハンドル運転モードであることを認識する。なお、共有エリア３４５の仮想Ｙ軸制御モード信号は、非常停止された後もＯＮ状態になっている。
【００６９】
ステップＳ２３では、入力操作部２０内の非常停止ボタンがユーザにより解除されると、非常停止解除の指令が各部に入力される。このとき、駆動部９０は、サーボオン状態になる。
【００７０】
ステップＳ２４では、プログラム座標復元部４１７は、軸データ入出力部４２経由でサーボモータ９０１、９０２、９０４の位置センサ９５、９６、９８から、非常停止が解除された際の機械座標系におけるＸ軸、Ｈ軸、及びＣ軸の現在の座標位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）を取得する。
【００７１】
ステップＳ２５では、非常停止される以前にＨ軸又はＣ軸の単独回転量指令があった場合、プログラム座標復元部４１７が、記憶部３４ｂからＨ軸・Ｃ軸単独指令メモ３４８を読み出して、Ｈ軸又はＣ軸の単独回転量指令による現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３，ΔＣ３）を取得する。
【００７２】
ステップＳ２６では、プログラム座標復元部４１７が、プログラム座標系における現在のＸ軸及びＹ軸の座標を復元する。
【００７３】
すなわち、非常停止される以前にＨ軸又はＣ軸の単独回転量指令がなかった場合、プログラム座標復元部４１７は、上記の数式６及び７により、機械座標系における現在のＸ軸、Ｈ軸、及びＣ軸の座標（Ｘｒ０，Ｈｒ０，Ｃｒ０）からプログラム座標系における現在のＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）を復元する。
【００７４】
あるいは、非常停止される以前にＨ軸又はＣ軸の単独回転量指令があった場合、プログラム座標復元部４１７は、機械座標系における現在のＸ軸、Ｈ軸、及びＣ軸の座標（Ｘｒ０，Ｈｒ０，Ｃｒ０）から現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３，ΔＣ３）を差し引いた座標（Ｘｒ０、Ｈｒ０−ΔＨ３、Ｃｒ０−ΔＣ３）を求め、その座標（Ｘｒ０、Ｈｒ０−ΔＨ３、Ｃｒ０−ΔＣ３）から上記の数式６及び７によりプログラム座標系における現在のＸ軸及びＹ軸の座標（Ｘ０’，Ｙ０’）を復元する。言い換えれば、プログラム座標復元部４１７は、プログラム座標系における復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）に対して、Ｈ軸又はＣ軸の単独回転量指令による現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３，ΔＣ３）をさらに反映させた座標（Ｘ０’，Ｙ０’，ΔＨ３，ΔＣ３）を求め、その求めた座標を、プログラム座標系における復元された現在の座標（Ｘ０’，Ｙ０’，ΔＨ３，ΔＣ３）とする。さらに別言すれば、プログラム座標復元部４１７は、取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から記憶部３４ｂに記憶された移動量分の位置を分離し、この分離結果を用いて仮想Ｙ軸制御処理部４１１による座標変換と逆方向の変換を行ってプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置（Ｘ０’，Ｙ０’）を復元する。
【００７５】
ステップＳ２７では、ユーザが、復帰移動すべきか否かを判断する。復帰移動する動作がユーザにより選択され、ユーザからスイッチ（図示せず）を介して復帰移動信号が数値制御装置１に入力された場合、ＰＬＣ３６は、復帰移動信号を検知する。ＰＬＣ３６は、復帰移動信号を検知した場合（Ｓ２７で「Ｙｅｓ」）、処理をステップＳ２８へ進め、復帰移動信号を検知しなかった場合（Ｓ２７で「Ｎｏ」）、処理をステップＳ３２へ進める。
【００７６】
ステップＳ２８では、仮想Ｙ軸制御復帰移動部４１８が、記憶部３４ａから非常停止時プログラム座標メモ３４６を読み出して、プログラム座標系における非常停止される直前のＸ軸、Ｙ軸の座標（Ｘ４，Ｙ４）を取得する。
【００７７】
ステップＳ２９では、仮想Ｙ軸制御復帰移動部４１８が、Ｘ−Ｙ目標位置（Ｘ４，Ｙ４）を上記の数式１〜３にしたがって座標変換して、機械座標系における移動位置（Ｘｒ４，Ｈｒ４，Ｃｒ４）を求める。さらに、仮想Ｙ軸制御復帰移動部４１８は、（Ｘ０，Ｙ０）から同様に座標変換された現在の位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と、今回の移動位置（Ｘｒ４，Ｈｒ４，Ｃｒ４）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ４＝Ｘｒ４−Ｘｒ０）とＨ軸回転量（ΔＨｒ４＝Ｈｒ４−Ｈｒ０）とＣ軸回転量（ΔＣｒ４＝Ｃｒ４−Ｃｒ０）とを計算する。仮想Ｙ軸制御復帰移動部４１８は、Ｘ軸の移動量指令（ΔＸｒ４）、Ｈ軸の回転量指令（ΔＨｒ４）、及びＣ軸の回転量指令（ΔＣｒ４）を軸データ入出力部４２へ供給する。
【００７８】
これにより、仮想Ｙ軸制御復帰移動部４１８は、プログラム座標系における復元された現在のＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）から記憶部３４ａに記憶されたＸ軸及びＹ軸の座標（Ｘ４，Ｙ４）へ移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行い、非常停止される直前の位置へタレット９０５及びワークＷを復帰移動させる（図５（ｃ）、図６（ｃ）参照）。
【００７９】
ステップＳ３２では、仮想Ｙ軸制御部４１が、ユーザによるハンドル５０の操作が行われたか否かを判断する。ユーザは、ワークＷに入り込んだ工具をプログラム座標上におけるＸ軸方向へ動かしてワークＷから引き抜くために、ハンドル５０を回転操作する。このとき、ハンドル５０は、手動送り指令（Ｘ軸の移動量指令）を発生させて補間処理部３８、加減速処理部４３経由で仮想Ｙ軸制御部４１へ供給する。仮想Ｙ軸制御部４１の仮想Ｙ軸制御処理部４１１は、ハンドルモード中に手動送り指令を受けた場合に、ユーザによるハンドル５０の操作が行われたと判断して、処理をステップＳ３０へ進め、ハンドルモードに移行後手動送り指令を所定時間内に受けなかった場合に、ユーザによるハンドル５０の操作が行われなかったと判断して、処理を終了する。
【００８０】
ステップＳ３０では、仮想Ｙ軸制御処理部４１１が、手動送り指令に基づいてプログラム座標系における手動送り量（Ｘ軸の移動量指令）を計算する。すなわち、仮想Ｙ軸制御処理部４１１は、プログラム座標系において、プログラム座標復元部４１７により復元された位置から、手動送り量（Ｘ軸の移動量指令）に従って移動させる今回の移動位置（Ｘ５）を計算する。そして、仮想Ｙ軸制御処理部４１１は、プログラム座標系における今回の移動位置（Ｘ５）を上記の数式１〜３により座標変換して、機械座標系における移動位置（Ｘｒ５，Ｈｒ５，Ｃｒ５）を求める。また、手動送り量がＹ軸であっても、同様に座標変換して求めることができる。
【００８１】
ステップＳ３１では、仮想Ｙ軸制御処理部４１１が、機械座標系における現在の位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と移動位置（Ｘｒ５，Ｈｒ５，Ｃｒ５）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ５＝Ｘｒ５−Ｘｒ０）とＨ軸回転量（ΔＨｒ５＝Ｈｒ５−Ｈｒ０）とＣ軸回転量（ΔＣｒ５＝Ｃｒ５−Ｃｒ０）とを計算する。すなわち、仮想Ｙ軸制御処理部４１１は、ハンドル５０により発生された手動送り指令をプログラム座標系におけるＸ軸の移動量指令とし、プログラム座標系におけるＸ軸の移動量指令から、機械座標系におけるＸ軸の移動量指令（Ｘ軸移動量ΔＸｒ５）とＨ軸の回転量指令（Ｈ軸回転量ΔＨｒ５）とＣ軸の回転量指令（Ｃ軸回転量ΔＣｒ５）とを生成する。仮想Ｙ軸制御処理部４１１は、Ｘ軸の移動量指令（ΔＸｒ５）を軸データ入出力部４２へ供給するとともに、Ｈ軸の回転量指令（ΔＨｒ５）とＣ軸の回転量指令（ΔＣｒ５）とを仮想Ｙ軸制御指令合成部４１２経由で軸データ入出力部４２へ供給する。
【００８２】
これにより、仮想Ｙ軸制御処理部４１１は、プログラム座標復元部４１７によって復元されたプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置と、ハンドル５０から発生されるＸ軸の移動指令とに基づき、現在のＸ軸座標位置およびＹ軸座標位置からワークＷに干渉せずに工具が引き抜かれるようＸ軸、Ｈ軸およびＣ軸を連動駆動する。すなわち、仮想Ｙ軸制御処理部４１１は、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行い、工具をワークＷから引き抜く（図８（ｂ）参照）。
【００８３】
なお、上記では、仮想Ｙ軸制御復帰移動部４１８が復帰移動処理（ステップＳ２８、Ｓ２９）をハンドルモードで行う例について説明したが、仮想Ｙ軸制御復帰移動部４１８は、メモリ運転モードで復帰移動処理（ステップＳ２８、Ｓ２９）を行ってもよい。その場合、例えば、ステップＳ２８において運転モードをハンドルモードからメモリ運転モードへ切り替えるための操作がユーザにより行われてもよい。
【００８４】
ここで、仮に、図１３に示すように、数値制御装置８００の制御演算部８３０において、仮想Ｙ軸制御部８４１がプログラム座標復元部４１７（図２参照）を有しない場合について考える。この場合、工作機械９００が工具９０５２でワークＷを加工している途中に、工作機械９００が非常停止された場合、仮想Ｙ軸制御がキャンセルされる。その後、工作機械９００の非常停止が解除されたとしても、図１５（ａ）に示すように、工具９０５２がワークＷ内に入り込んだ状態になっている場合、仮想Ｙ軸制御がキャンセルされているため、Ｘ軸方向に工具９０５２を動かしながらそれに連動させてタレット９０５及びワークＷを回転させることが困難である。すなわち、工作機械９００を非常停止前の状態に戻すために、工具９０５２をワークＷから引き抜くことが困難であり、無理やり工具９０５２をワークＷから引き抜こうとすると、図１５（ｂ）に示すように、工具９０５２を破損させる可能性がある。
【００８５】
それに対して、実施の形態１では、プログラム座標復元部４１７が、非常停止が解除された際に、機械座標系におけるＸ軸、Ｈ軸、及びＣ軸の座標からプログラム座標系におけるＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）を復元する。そして、仮想Ｙ軸制御処理部４１１は、プログラム座標系におけるプログラム座標復元部４１７により復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）からハンドル５０により受け付けられた手動送り指令（Ｘ軸の移動量指令）に従って移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行う。これにより、仮想Ｙ軸制御処理部４１１は、工具をワークＷから引き抜く。すなわち、工具９０５２をワークＷから引き抜くことが容易であり、工具９０５２を破損させにくい。したがって、仮想Ｙ軸制御中に工具９０５２がワークＷ内に入り込んだ状態で工作機械９００が非常停止された場合でも、工具９０５２をワークＷから引き抜いて、工作機械９００を非常停止前の状態に戻すことができる。
【００８６】
また、図１３に示すように、仮想Ｙ軸制御部８４１がプログラム座標復元部４１７を有しない場合、図１４（ａ）に示すように、工具９０５１がワークＷ内に入り込んだ状態になっていない場合でも、工作機械９００が非常停止されると、仮想Ｙ軸制御がキャンセルされるとともに、タレット９０５及びワークＷの駆動がサーボオフ状態になるため、図１４（ｂ）に示すように、タレット９０５やワークＷが自重で動いてしまう。これにより、プログラム座標系における工作機械９００の現在のＸ軸、Ｙ軸の座標位置を把握することが困難になるとともに、工作機械９００の非常停止直前の座標位置を把握することも困難になるので、プログラム座標系上で工作機械９００を非常停止前の状態に戻すように指令することができない。そこで、図１４（ｃ）に示すように、運転モードをハンドルモードにして、タレット９０５やワークＷを（非常停止前とは異なる）機械座標系の基準位置へ戻し、図１４（ｄ）に示すように、運転モードをメモリ運転モードに戻すことになる。すなわち、工作機械９００を非常停止前の状態に戻すために、工作機械９００におけるタレット９０５やワークＷを非常停止直前の位置に復帰させることが困難である。
【００８７】
それに対して、実施の形態１では、仮想Ｙ軸制御部４１がプログラム座標復元部４１７を有している。プログラム座標復元部４１７が、非常停止が解除された際に、機械座標系における現在のＸ軸、Ｈ軸、Ｃ軸の座標からプログラム座標系における現在のＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）を復元する。これにより、プログラム座標系における現在のＸ軸、Ｙ軸の座標位置を把握することができるので、プログラム座標系上で工作機械９００を非常停止前の状態に戻すように指令することができる。したがって、仮想Ｙ軸制御中に工具９０５１がワークＷ内に入り込んでいない状態で工作機械９００が非常停止された場合でも、工作機械９００を非常停止前の状態に戻すことが可能となる。
【００８８】
特に、仮想Ｙ軸制御復帰移動部４１８は、非常停止解除の指令を受けた際に、記憶部３４ａから非常停止時プログラム座標メモ３４６を読み出して、プログラム座標系における非常停止される直前のＸ軸、Ｙ軸の座標（Ｘ４，Ｙ４）を取得する。仮想Ｙ軸制御復帰移動部４１８は、プログラム座標系における復元された現在のＸ軸及びＹ軸の座標（Ｘ０、Ｙ０）から記憶部３４ａに記憶されたＸ軸及びＹ軸の座標（Ｘ４，Ｙ４）へ移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行い、非常停止される直前の位置へタレット９０５及びワークＷを復帰移動させる。したがって、工作機械９００を非常停止前の状態に戻すことができる。
【００８９】
また、実施の形態１では、非常停止される前にＨ軸又はＣ軸の単独回転量指令があった場合、プログラム座標復元部４１７は、記憶部３４ｂからＨ軸・Ｃ軸単独指令メモ３４８を読み出して、Ｈ軸又はＣ軸の単独回転量指令による現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３，ΔＣ３）を取得する。プログラム座標復元部４１７は、プログラム座標系における復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）に対して、Ｈ軸又はＣ軸の単独回転量指令による現在のＨ軸回転位置およびＣ軸回転位置（ΔＨ３,ΔＣ３）を反映させた座標（Ｘ０’，Ｙ０’，ΔＨ３，ΔＣ３）を求め、その求めた座標を、プログラム座標系における復元された現在の座標（Ｘ０’，Ｙ０’，ΔＨ３，ΔＣ３）とする。したがって、工作機械９００が非常停止される以前に仮想Ｙ軸制御中にＨ軸・Ｃ軸の単独回転量指令が行われた場合でも、プログラム座標系における現在の座標を復元することができるので、工作機械９００を非常停止前の状態に戻すようにプログラム座標系上で指令することができる。
【００９０】
実施の形態２．
次に、実施の形態２にかかる数値制御装置１ｉについて説明する。以下では、実施の形態１と異なる部分を中心に説明する。
【００９１】
実施の形態２にかかる数値制御装置１ｉは、復帰移動処理により復帰移動する先が、加工プログラムに含まれるＸ−Ｙ軸移動指令であって、非常停止される時点から最短時点で実行済みのＸ−Ｙ軸移動指令で記述された座標位置である点で実施の形態１と異なる。非常停止される時点から最短時点で実行済みのＸ−Ｙ軸移動指令で記述された座標位置は、例えば、加工プログラム上の前ブロックの記述にＸ−Ｙ軸移動指令が含まれている場合、非常停止時の実行ブロックの前ブロックの終了位置であり、例えば、加工プログラム上の前ブロックにはなく２つ前のブロックの記述にＸ−Ｙ軸移動指令が含まれている場合、非常停止時の実行ブロックの２つ前のブロックの終了位置である。以下では、復帰移動処理により復帰移動する先が非常停止時の実行ブロックの前ブロックの終了位置である場合について例示的に説明する。
【００９２】
具体的には、数値制御装置１ｉは、図９に示すように、制御演算部３０ｉを備える点で実施の形態１と異なる。図９は、実施の形態２にかかる数値制御装置１ｉの構成を示すブロック図である。制御演算部３０ｉは、記憶部３４ｉ及び仮想Ｙ軸制御部４１ｉを有する。
【００９３】
記憶部３４ｉは、記憶部３４ａ（図２参照）に代えて記憶部３４ｄｉを有する。記憶部３４ｄｉは、前ブロックプログラム座標メモ３４７ｉを記憶する。
【００９４】
仮想Ｙ軸制御部４１ｉは、非常停止時座標値記憶制御部４１５ｉ及び仮想Ｙ軸制御復帰移動部４１８ｉを有する。
【００９５】
非常停止時座標値記憶制御部４１５ｉは、記憶部３４ｄｉへの前ブロックプログラム座標メモ３４７ｉの記憶を制御する。
【００９６】
例えば、非常停止時座標値記憶制御部４１５ｉは、定期的に、仮想Ｙ軸制御処理部４１１から、プログラム座標系におけるブロックの終了位置のＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）を取得する。非常停止時座標値記憶制御部４１５ｉは、取得した座標（Ｘ６，Ｙ６）を前ブロックプログラム座標メモ３４７ｉとして記憶部３４ｄｉに定期的に例えば上書き記憶する。
【００９７】
仮想Ｙ軸制御復帰移動部４１８ｉは、非常停止解除の指令を受けた場合に、記憶部３４ｄｉから前ブロックプログラム座標メモ３４７ｉを読み出して、プログラム座標系における、非常停止される際に実行されていたブロックの前ブロックの終了位置のＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）を取得する。仮想Ｙ軸制御復帰移動部４１８ｉは、プログラム座標復元部４１７により復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）から、記憶部３４ｄｉに記憶されたＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）へ移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行う。これにより、仮想Ｙ軸制御復帰移動部４１８ｉは、プログラム座標系における非常停止される際に実行されていたブロックの前ブロックの終了位置へワークＷ及びタレット９０５を復帰移動させる。
【００９８】
また、数値制御装置１ｉを用いた工作機械９００の非常停止時の動作は、図１０〜図１２に示すように、次の点で実施の形態１と異なる。図１０は、実施の形態２にかかる数値制御装置１ｉを用いた工作機械９００の非常停止時の動作を示すフローチャートである。図１１は、工作機械９００の非常停止時の動作を示す図である。図１２は、実施の形態２にかかる数値制御装置１ｉの記憶部３４ｉに記憶された加工プログラム３４３における記述内容を示す図である。
【００９９】
ステップＳ２１では、駆動部９０が、非常停止の指令を受けた場合に、軸データ入出力部４２からの駆動制御データを受け付けないサーボオフ状態になる。これにより、例えば、タレット９０５やワーク支持部９０６（ワークＷ）が自重により動いてしまう（図１１（ｂ）、（ｃ）参照）。
【０１００】
ステップＳ２８ｉでは、仮想Ｙ軸制御復帰移動部４１８ｉが、記憶部３４ｄｉから前ブロックプログラム座標メモ３４７ｉを読み出して、プログラム座標系における、非常停止される直前に実行されていたブロックの前ブロックの終了位置のＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）を取得する。
【０１０１】
例えば、ステップＳ２１で非常停止される際に実行されていたブロックが、図１２に示す加工プログラム３４３における「Ｎ１０７  Ｇ０１  Ｘ２０  Ｙ−５０  Ｆ１０００」に対応したもの（「フライス加工」）であるとする（図１１（ｂ）参照）。この場合、非常停止される際に実行されていたブロックの前ブロックは、加工プログラム３４３における「Ｎ１０６  Ｇ００  Ｘ２０  Ｙ５０」に対応したもの（「加工開始位置に移動」）になる。このとき、実行されていたブロックの前ブロックの終了位置は、プログラム座標系における「Ｘ２０  Ｙ５０」になる（図１１（ａ）参照）。すなわち、前ブロックプログラム座標メモ３４７ｉは、プログラム座標系における「Ｘ２０  Ｙ５０」を終了位置として含んでいる。
【０１０２】
そして、仮想Ｙ軸制御復帰移動部４１８ｉは、プログラム座標系における復元された現在の座標（Ｘ０，Ｙ０）から非常停止時の実行ブロックの前ブロックの終了位置のＸ軸、Ｙ軸の座標（Ｘ６，Ｙ６）へ移動させるための移動量指令に対して、補間処理、加減速処理を行う。
【０１０３】
ステップＳ２９ｉでは、仮想Ｙ軸制御復帰移動部４１８ｉが、補間処理、加減速処理の結果としてのＸ−Ｙ軸の移動量指令と、復元された現在の座標（Ｘ０，Ｙ０）とを用いて今回のＸ−Ｙ移動位置を計算する。そして、仮想Ｙ軸制御復帰移動部４１８ｉが、Ｘ−Ｙ座標位置（Ｘ６，Ｙ６）を上記の数式１〜３にしたがって座標変換して、機械座標系における移動位置（Ｘｒ６，Ｈｒ６，Ｃｒ６）を求める。さらに、仮想Ｙ軸制御復帰移動部４１８ｉは、（Ｘ０，Ｙ０）から座標変換された現在の位置（Ｘｒ０，Ｈｒ０，Ｃｒ０）と、今回の移動位置（Ｘｒ６，Ｈｒ６，Ｃｒ６）との差分をとることにより、機械座標系におけるＸ軸移動量（ΔＸｒ６＝Ｘｒ６−Ｘｒ０）とＨ軸回転量（ΔＨｒ６＝Ｈｒ６−Ｈｒ０）とＣ軸回転量（ΔＣｒ６＝Ｃｒ６−Ｃｒ０）とを計算する。仮想Ｙ軸制御復帰移動部４１８ｉは、Ｘ軸の移動量指令（ΔＸｒ６）、Ｈ軸の回転量指令（ΔＨｒ６）、及びＣ軸の回転量指令（ΔＣｒ６）を軸データ入出力部４２へ供給する。
【０１０４】
これにより、仮想Ｙ軸制御復帰移動部４１８ｉが、プログラム座標系におけるプログラム座標復元部４１７により復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）から記憶部３４ｄｉに記憶されたＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）へ移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行い、非常停止される直前に実行されていたブロックの前ブロックの終了位置へタレット９０５及びワークＷを復帰移動させる（図１１（ｃ）、（ｄ）参照）。
【０１０５】
その後、数値制御装置１ｉは、入力操作部２０を介したユーザからの指示により、プログラム再開サーチ機能を使って、非常停止時に実行されていたブロックをサーチし、起動（サイクルスタート）することによって加工を再開（続行）させることができる。
【０１０６】
以上のように、実施の形態２では、仮想Ｙ軸制御復帰移動部４１８ｉが、非常停止解除の指令を受けた際に、記憶部３４ｄｉから前ブロックプログラム座標メモ３４７ｉを読み出して、プログラム座標系における、非常停止される際に実行されていたブロックの前ブロックの終了位置のＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）を取得する。仮想Ｙ軸制御復帰移動部４１８ｉは、プログラム座標系におけるプログラム座標復元部４１７により復元されたＸ軸及びＹ軸の座標（Ｘ０，Ｙ０）から記憶部３４ｄｉに記憶されたＸ軸及びＹ軸の座標（Ｘ６，Ｙ６）へ移動するように、機械座標系におけるＸ軸の移動とＨ軸の回転とＣ軸の回転とを同期させて行う。これにより、非常停止される際に実行されていたブロックの前ブロックの終了位置へタレット９０５及びワークＷを復帰移動させる。したがって、仮想Ｙ軸制御中に工作機械９００が非常停止された場合でも、工作機械９００の非常停止時に実行していた加工を工作機械９００の非常停止が解除された後に再開させることができる。
【産業上の利用可能性】
【０１０７】
以上のように、本発明にかかる数値制御装置は、仮想Ｙ軸制御によるワークの加工に適している。
【符号の説明】
【０１０８】
１、１ｉ  数値制御装置
１０  表示部
２０  入力操作部
３０、３０ｉ  制御演算部
３１  画面処理部
３２  入力制御部
３３  データ設定部
３４、３４ｉ  記憶部
３４ａ  記憶部
３４ｂ  記憶部
３４ｃ  記憶部
３４ｄｉ  記憶部
３５  機械制御信号処理部
３６  ＰＬＣ
３７  解析処理部
３８  補間処理部
３９  仮想Ｙ軸制御切換処理部
４１、４１ｉ  仮想Ｙ軸制御部
４２  軸データ入出力部
４３  加減速処理部
４４  スイッチ
５０  ハンドル
９０  駆動部
９１  Ｘ軸サーボ制御部
９２  Ｈ軸サーボ制御部
９３  Ｚ軸サーボ制御部
９４  Ｃ軸サーボ制御部
９５  位置センサ
９６  位置センサ
９７  位置センサ
９８  位置センサ
３４２  工具補正データ
３４３  加工プログラム
３４４  画面表示データ
３４５  共有エリア
３５１  仮想Ｙ軸制御モード信号処理部
４１１  仮想Ｙ軸制御処理部
４１２  仮想Ｙ軸制御指令合成部
４１４  仮想Ｙ軸制御指令軸判定部
４１５、４１５ｉ  非常停止時座標値記憶制御部
４１６  Ｈ軸・Ｃ軸単独指令記憶制御部
４１７  プログラム座標復元部
４１８、４１８ｉ  仮想Ｙ軸制御復帰移動部
８００  数値制御装置
８３０  制御演算部
８４１  仮想Ｙ軸制御部
９００  工作機械
９０１  サーボモータ
９０２  サーボモータ
９０３  サーボモータ
９０４  サーボモータ
９０５  タレット
９０６  ワーク支持部
９０５１  工具
９０５２  工具
Ｗ  ワーク
【図１】
2012101790.tif 000003
【図２】
2012101790.tif 000004
【図３】
2012101790.tif 000005
【図４】
2012101790.tif 000006
【図５】
2012101790.tif 000007
【図６】
2012101790.tif 000008
【図７】
2012101790.tif 000009
【図８】
2012101790.tif 000010
【図９】
2012101790.tif 000011
【図１０】
2012101790.tif 000012
【図１１】
2012101790.tif 000013
【図１２】
2012101790.tif 000014
【図１３】
2012101790.tif 000015
【図１４】
2012101790.tif 000016
【図１５】
2012101790.tif 000017
【手続補正書】
【提出日】平成23年11月18日(2011.11.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の工具が取り付けられるタレットを移動させるＸ軸と、前記タレットを回転させるＨ軸と、ワークを回転させるＣ軸とを有し、前記Ｘ軸に直交するＹ軸を有さない工作機械を制御する数値制御装置であって、
プログラム座標系で記述された加工プログラム中のＸ−Ｙ軸移動指令をＸ−Ｈ−Ｃ軸からなる機械座標系での指令に変換し、変換した指令に従ってＸ軸、Ｈ軸およびＣ軸を連動駆動する仮想Ｙ軸制御モードを実行する仮想Ｙ軸制御部と、
前記仮想Ｙ軸制御モード中に非常停止が発生した場合、非常停止が解除されたときの前記Ｘ軸、Ｃ軸およびＨ軸の現在の位置を取得する取得部と、
前記取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する復元部と、
手動操作によるＸ軸の移動指令を発生させて前記タレットを移動させることにより工具をワークから引き抜くためのハンドルと、
を備え、
前記仮想Ｙ軸制御部は、前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置またはＹ軸座標位置と、前記ハンドルから発生されるＸ軸の移動指令とに基づき、前記現在のＸ軸座標位置またはＹ軸座標位置からワークに干渉せずに工具が引き抜かれるようＸ軸、Ｈ軸およびＣ軸を連動駆動する
ことを特徴とする数値制御装置。
【請求項２】
複数の工具が取り付けられるタレットを移動させるＸ軸と、前記タレットを回転させるＨ軸と、ワークを回転させるＣ軸とを有し、前記Ｘ軸に直交するＹ軸を有さない工作機械を制御する数値制御装置であって、
プログラム座標系で記述された加工プログラム中のＸ−Ｙ軸移動指令をＸ−Ｈ−Ｃ軸からなる機械座標系での指令に変換し、変換した指令に従ってＸ軸、Ｈ軸およびＣ軸を連動駆動する仮想Ｙ軸制御モードを実行する仮想Ｙ軸制御部と、
前記仮想Ｙ軸制御モード中に非常停止が発生した場合、非常停止が解除されたときの前記Ｘ軸、Ｃ軸およびＨ軸の現在の位置を取得する取得部と、
前記取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する復元部と、
を備え、
前記仮想Ｙ軸制御部は、
プログラム座標系で作成された加工プログラムの指令を、１ブロック毎に、Ｘ軸移動指令及びＹ軸移動指令の少なくとも一方を含む第１移動指令と、Ｈ軸単独移動指令及びＣ軸移動指令の少なくとも一方を含む第２移動指令とに分離する分離部と、
前記第１移動指令をＸ−Ｈ−Ｃ軸から成る機械座標系の指令に変換する座標変換部と、
前記変換されたＨ軸移動指令と前記分離されたＨ軸単独移動指令とを合成し、前記変換されたＣ軸移動指令と前記分離されたＣ軸単独移動指令とを合成する合成部と、
前記変換されたＸ軸移動指令、前記合成されたＨ軸移動指令およびＣ軸移動指令に従って前記Ｘ軸、Ｈ軸、Ｃ軸を駆動制御する駆動部と、
を備え、
非常停止される以前の前記第２移動指令による移動量を記憶する第１の記憶部をさらに備え、
前記復元部は、取得したＸ軸、Ｃ軸およびＨ軸の現在の位置から前記第１の記憶部に記憶された移動量分の位置を分離し、この分離結果を用いて前記座標変換部による座標変換と逆方向の変換を行って前記プログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置を復元する
ことを特徴とする数値制御装置。
【請求項３】
非常停止される直前のプログラム座標系におけるＸ軸及びＹ軸の座標位置を記憶する第２の記憶部と、
前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置から前記第２の記憶部の記憶された座標位置へ前記タレット及び前記ワークを復帰移動させるようにＸ軸、Ｈ軸およびＣ軸を連動駆動する復帰移動部と、
をさらに備えた
ことを特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
加工プログラムに含まれるＸ−Ｙ軸移動指令であって、前記非常停止される時点から最短時点で実行済みのＸ−Ｙ軸移動指令で記述された座標位置を記憶する第３の記憶部と、
前記復元部によって復元されたプログラム座標系での現在のＸ軸座標位置およびＹ軸座標位置から前記第３の記憶部の記憶された座標位置へ前記タレット及び前記ワークを復帰移動させるようにＸ軸、Ｈ軸およびＣ軸を連動駆動する復帰移動部と、
をさらに備えた
ことを特徴とする請求項１又は２に記載の数値制御装置。
【国際調査報告】
2012101790.tif 000018
2012101790.tif 000019
2012101790.tif 000020
2012101790.tif 000021