回転軸を備えた工作機械を制御する数値制御装置では、一般に、回転軸に対する回転指令がないときに、クランプ機構をクランプ動作させ、回転軸に対する回転指令が含まれているときのみ、クランプ機構をアンクランプ動作させるという制御を行っている。
図13は、この種の制御を行う従来の数値制御装置を示すブロック図である。この数値制御装置100では、加工プログラム格納部1に加工プログラムPRが格納されている。加工プログラム解釈部2は、加工プログラムPRを解釈し、ブロックごとの解釈結果であるブロックデータBDを、加工プログラム実行部4が必要とする数だけ生成し、ブロックデータ格納部3に格納する。
加工プログラム実行部4は、ブロックポインタ5からブロックインデックスBIを取得し、ブロックインデックスBIが指示するブロックデータBDをブロックデータ格納部3から読み出し、このブロックデータBDに従ってサーボモータ制御部6とクランプ制御部7を制御する。クランプ制御部7は、加工プログラム実行部4からクランプ指令Ccを受け取ったときに、クランプ機構をクランプ動作させて、回転軸を回転不能な状態に保持し、アンクランプ指令Cuを受け取ったときに、クランプ機構をアンクランプ動作させ、回転軸を回転可能な状態に解放する。
図14は、加工プログラム実行部4の具体的な処理を示すフローチャートである。加工プログラム実行部4は、まず、ブロックポインタ5からブロックインデックスBIを取得し(S101)、ブロックインデックスBIが指示するブロックデータBDを読み出す(S102)。次に、ブロックデータBD中に回転軸に対する回転指令が含まれているかどうかを確認し(S103)、含まれている場合に、クランプ制御部7にアンクランプ指令Cuを出力し(S104)、含まれていない場合は、クランプ制御部7にクランプ指令Ccを出力する(S105)。続いて、ブロックデータBDに基づいて関数発生を行い、補間点CONを生成してサーボモータ制御部6に出力する(S106)。そして、1つのブロックの処理が完了すると(S107)、ブロックポインタ5のブロックインデックスBIを1つ進める(S108)。その後、後続のブロックデータBDに関し、同様の処理を順次繰り返し、すべてのブロックの処理を終了する(S109)。
以上のような制御によれば、回転軸のクランプ/アンクランプを自動で切り替え、クランプ状態で、サーボモータを停止し、回転軸を所定の角度位置に固定し、ワークを高精度に切削でき、アンクランプ状態で、サーボモータを駆動し、回転軸を任意の角度位置に割り出すことができる。このため、クランプ状態で、回転軸を自身のサーボモータで自己保持させる必要がなくなり、特に、重切削時におけるサーボモータの過熱を防止できる。また、回転軸を所定の角度位置に割り出した状態で、複数の軸移動を制御して切削を繰り返すような加工、例えば、五面加工などに有利に適用できる。
特許文献1には、ワークテーブルの回転軸にクランプ機構を装備した工作機械において、回転軸のクランプ/アンクランプ制御と並行し、回転軸以外の複数の軸移動を制御する数値制御装置が記載されている。特許文献2には、工作機械の自動運転モードで回転軸をクランプし、手動運転モードで回転軸をアンクランプする数値制御装置が記載されている。
ところで、クランプ機構の制御にあたっては、クランプ制御部7がアンクランプ指令Cuを受け取ってから、回転軸が実際に回転可能な状態となるまでに、クランプ機構の機械的な動作に一定の時間を必要とする。しかし、従来の数値制御装置100は、回転軸に対する回転指令を検出したとき(S103)、その回転指令を含むブロックデータBDを実行する直前(補間処理を開始する時刻)に、アンクランプ指令をクランプ制御部7に出力していたので(S104)、クランプ機構がクランプ状態からアンクランプ状態に切り替わるまでの間、加工を一旦停止する必要があった。
五面加工のように、回転軸を割出軸として使用する場合は、割出し開始時に工具が一瞬停止するだけであり、加工中に停止するわけではないから、工具の停止時間が問題となることはない。しかし、タービンブレードのような自由曲面の加工では、加工プログラムにX,Y,Z軸等の直線移動指令のみを含むブロックと、A,C軸等の回転指令を含むブロックとが混在しているため、直線移動指令のみを含むブロックを実行した後に回転指令を含むブロックを実行しようとするときに、工具による加工を一旦停止する必要があった。
例えば、図5に示すように、エンドミルtで自由曲面Sを加工する場合、切削区間Aでは、エンドミルtの傾きが一定であり、直線軸に対する移動指令のみが連続するため、クランプ機構は回転軸をクランプし固定する。切削区間Bでは、エンドミルtの傾きが変化し、回転軸に対する回転指令が連続するので、クランプ機構は回転軸をアンクランプし回転可能とする。そして、切削区間Aから切削区間Bに移るとき、つまり、加工点P5を指定するブロックデータから回転指令を検出したときに、加工点P4でクランプ機構がクランプ状態からアンクランプ状態に切り替わる。この切替期間中、従来の数値制御装置100は、エンドミルtによる切削を停止するため、加工時間が長くなるばかりでなく、エンドミルtの停止に伴い、ワークの加工面にカッターマークがつき、加工精度、品質に悪影響が及ぶという問題点があった。
そこで、本発明の目的は、自由曲面等の加工にあたり、加工を停止することなく、クランプ機構のアンクランプ動作を完了し、加工時間を短縮でき、加工精度、品質を高めることができる数値制御装置を提供することにある。
上記課題を解決するために、本発明の数値制御装置は、回転軸に対する回転指令を含むブロックデータを実行するときに、回転軸のクランプ機構をクランプ状態からアンクランプ状態に切り替えるクランプ制御部を備え、さらに、クランプ機構をクランプ状態からアンクランプ状態に切り替えるために必要なアンクランプ時間を予め設定するアンクランプ時間設定部と、回転指令を含むブロックデータの実行開始時刻よりもアンクランプ時間だけ早い時刻と該時刻を含むブロックデータの実行開始時刻との間の時間中に、クランプ制御部にアンクランプ指令を出力するアンクランプ指令出力部とを備えたことを特徴とする。
本発明の好ましい実施形態では、アンクランプ指令出力部が、回転指令を含むブロックデータの実行開始時刻よりもアンクランプ時間だけ早い時刻を含むブロックデータの実行開始時刻にアンクランプ指令をクランプ制御部へ出力し、クランプ制御部が、回転指令を含むブロックデータの実行開始時刻よりも前にクランプ機構をアンクランプ状態とする制御を行う。
本発明の別の好ましい実施形態では、アンクランプ指令出力部が、回転指令を含むブロックデータの実行開始時刻よりもアンクランプ時間だけ早い時刻にアンクランプ指令をクランプ制御部へ出力し、クランプ制御部が、回転指令を含むブロックデータの実行開始時刻にクランプ機構をアンクランプ状態とする制御を行う。
本発明の数値制御装置は、回転指令を含むブロックデータの実行開始時刻までに、クランプ機構がアンクランプ状態となるような制御を行うので、工具で自由曲面を切削するなどの加工において、切削を停止することなく、クランプ機構のアンクランプ動作を完了し、加工時間を短縮できるとともに、切削面からカッターマークをなくし、高精度、高品質の加工を行うことができるという効果がある。
本発明の好ましい実施形態では、数値制御装置が、回転指令を含むブロックデータの実行開始時刻よりも前に、クランプ機構がアンクランプ状態となるような制御を行うので、クランプ機構の機械的動作に時間的な余裕を与え、この余裕を安全マージとして利用し、クランプ機構の動作時間に予期せぬ変動が生じた場合に、これを機械運転中に吸収できるという効果がある。
本発明の別の好ましい実施形態では、数値制御装置が、回転指令を含むブロックデータの実行開始時刻きっかりに、クランプ機構がアンクランプ状態となるような制御を行うので、回転軸を自身の駆動モータで自己保持させる時間をなくし、モータの過熱を防止できるという効果がある。
以下、本発明の実施形態を2つの実施例に従って説明する。実施例1の数値制御装置10(図1参照)では、アンクランプ時間設定部11に、クランプ機構(図示略)のアンクランプ時間Tuc(図6参照)が設定されている。アンクランプ判定部15は、アンクランプ指令出力部としての機能を備え、回転軸に対する回転指令を含むブロックデータBD5の実行開始時刻よりもアンクランプ時間Tucだけ早い時刻を含むブロックデータBD3の実行開始時刻に、アンクランプ指令Cuをクランプ制御部7へ出力する。そして、クランプ制御部7が、回転指令を含むブロックデータBD5の実行開始時刻よりも前にクランプ機構をアンクランプ状態とする制御を行っている。
実施例2の数値制御装置20(図8参照)では、加工プログラム実行部4が、アンクランプ指令出力部としての機能を備え、回転指令を含むブロックデータBD5(図12参照)の実行開始時刻よりもアンクランプ時間Tucだけ早い時刻に、アンクランプ指令Cuをクランプ制御部7へ出力する。そして、クランプ制御部7が、回転指令を含むブロックデータBD5の実行開始時刻きっかりに、クランプ機構をアンクランプ状態とする制御を行っている。以下に、数値制御装置10,20の構成と制御を図面に基づいて詳細に説明する。なお、図1、図8において、従来と同一または類似する機能部については、図13と同一の符号が付されている。
図1に示すように、実施例1の数値制御装置10は、加工プログラムPRを格納する加工プログラム格納部1と、加工プログラムPRを解釈する加工プログラム解釈部2と、ブロックごとに解釈された一連のブロックデータBDを格納するブロックデータ格納部3と、ブロックデータBDに基づいて関数を発生し、補間点CONをサーボモータ制御部6に出力する加工プログラム実行部4と、加工プログラム実行部4にブロックインデックスBIを提供するブロックポインタ5と、工作機械のクランプ機構をクランプ状態とアンクランプ状態とに切り替えるための制御を行うクランプ制御部7とを備えている。
さらに、この数値制御装置10には、クランプ機構をクランプ状態からアンクランプ状態に切り替えるために必要なアンクランプ時間Tucがオペレータの入力によって予め設定されるアンクランプ時間設定部11と、未だ実行していないブロックデータBDをブロックデータ格納部3から順次読み出すブロックデータ先読み部12と、ブロックデータ先読み部12に先読みインデックスRIを提供する先読みポインタ13と、ブロックデータの実行時間を積算する実行時間カウンタ14と、クランプ制御部7にクランプ指令Ccおよびアンクランプ指令Cuを出力するアンクランプ判定部15とが設けられている。
図2に示すように、加工プログラム実行部4は、まず、ブロックポインタ5からブロックインデックスBIを取得し(S1)、ブロックインデックスBIが指示するブロックデータBDをブロックデータ格納部3から読み出す(S2)。次に、読み出したブロックデータBDを解釈し、自由曲面S(図5参照)を加工中であるかどうかを確認し(S3)、加工中であるときに、制御C1をブロックデータ先読み部12に渡し(S4)、制御C3がアンクランプ判定部15から戻るのを待つ(S5)。自由曲面Sを加工していないときには、ブロックデータBDに基づいて関数を発生し、補間点CONを生成してサーボモータ制御部6に送る(S6)。そして、従来と同様、一つのブロックデータBDの処理を完了したのち(S7)、ブロックインデックスBIを1つずつ進め(S8)、すべてのブロックデータBDの処理を終了する(S9)。
図3に示すように、ブロックデータ先読み部12は、加工プログラム実行部4から制御C1が移るのを待ち(S11)、制御C1が移ると、まず、実行時間カウンタ14を初期化する(S12)。次に、ブロックポインタ5からブロックインデックスBIを取得し(S13)、このインデックスBIを先読みインデックスRIに変更する(S14)。続いて、先読みインデックスRIを1つ進め(S15)、進めた先読みインデックスRIを先読みポインタ13に格納し(S16)、このインデックスRIが指示する先読みブロックデータBDと、それよりも1つ前のブロックデータBDとを読み出す(S17、S18)。
次に、2つのブロックデータBDに指定された指令位置から移動距離を求め、先読みブロックデータBDから指令速度を取得し、移動距離と指令速度から先読みブロックの実行時間Teを求め(S19)、このブロック実行時間Teを実行時間カウンタ14の実行積算時間Tsumに加算する(S20)。そして、実行積算時間Tsumが予め設定したアンクランプ時間Tucに達したかどうかを確認し(S21)、達していない場合は、先読みインデックスRIを1つ進める処理(S15)に戻り、達した時点で、アンクランプ判定部15へ制御C2を移す(S22)。
図4に示すように、アンクランプ判定部15は、まず、ブロックデータ先読み部12から制御C2が移るのを待ち(S31)、制御C2が移ると、ブロックポインタ5からブロックインデックスBIを取得し(S32)、先読みポインタ13から先読みインデックスRIを取得する(S33)。次に、取得したインデックスBI,RIに対応するブロックデータBDをブロックデータ格納部3から読み出し(S34)、これらのブロックデータBD中に回転軸に対する回転指令が含まれているかどうかを判断する(S35)。そして、回転指令が含まれている場合は、クランプ制御部7にアンクランプ指令Cuを出力し(S36)、回転指令が含まれていない場合は、クランプ制御部7にクランプ指令Ccを出力し(S37)、その後、加工プログラム実行部4へ制御C3を移す(S38)。
図5は、自由曲面Sをエンドミルtで加工するときの制御例を示す。エンドミルtの工具軌跡を表す曲線上の点P1〜P15は、ブロックデータBDの移動指令により指定された加工点を示す。工作機械のクランプ機構は、前述したように、切削区間Aと切削区間Cで、ワークに対するエンドミルtの角度を一定に保つために回転軸をクランプし、切削区間Bで、エンドミルtの角度を変化させるために回転軸をアンクランプする。
図6は、加工点P1〜P5と、ブロックデータBD1〜BD5と、ブロックごとの実行時間T1〜T5と、アンクランプ時間Tucとの関係を示す。図7は、自由曲面Sを加工するための加工データの一部を示す。図7において、ブロックデータBD1は、エンドミルtを位置決め点P0(図6参照)から自由曲面Sの加工開始点P1まで移動させる指令と、自由曲面Sの加工開始指令「P」を含み、ブロックデータBD2以降の移動指令によって自由曲面Sが加工される。回転軸に対する最初の回転指令「Bb5」は、エンドミルtを加工点P4からP5まで移動させるブロックデータBD5に含まれている。
自由曲面Sの加工にあたり、加工プログラム実行部4は、加工点P1を指令するブロックデータBD1をブロックデータ格納部3から読み出し(図2:S2)、このブロックデータBD1に含まれる加工開始指令「P」を確認し(S3)、次のブロックデータBD2以降が自由曲面Sであることを記憶し、制御C1をブロックデータ先読み部12に渡す(S4)。
ブロックデータ先読み部12は、加工点P2を指定する先読みブロックデータBD2と、加工点P1を指定するブロックデータBD1を読み出し(図3:S17,18)、エンドミルtの移動距離(P1→P2)と指令速度とからブロックデータBD2の実行時間T2(図6参照)を求め、その値を実行時間カウンタ14の実行積算時間Tsumに加算する(S20)。この段階では、実行積算時間Tsum(0+T2)<アンクランプ時間Tucであるため、先読みインデックスRIを1つ進め(S15)、次のブロックデータBD3の実行時間T3を求め、実行積算時間Tsumに加算する。そして、実行積算時間Tsum(T2+T3)≧アンクランプ時間Tucであることを確認し(S21)、制御C2をアンクランプ判定部15に移す(S22)。
アンクランプ判定部15は、ブロックデータBD2,BD3をブロックデータ格納部3から読み出し(図4:S34)、ブロックデータBD2,BD3に回転指令が含まれているかどうかを検査する(S35)。この段階では、ブロックデータBD2,BD3に回転指令が含まれていないので、クランプ制御部7にクランプ指令Ccを出力し(S37)、制御C3を加工プログラム実行部4へ移す(S38)。そして、加工プログラム実行部4が、ブロックデータBD1に基づいて自由曲面Sの加工開始点P1までの補間処理を行う(S6)。
ブロックデータBD1が完了すると、加工プログラム実行部4は、次のブロックデータBD2を読み出し、自由曲面Sの加工中であることを確認し、制御C1をブロックデータ先読み部12に渡す。ブロックデータ先読み部12は、積算時間Tsum(T3+T4)≧アンクランプ時間Tucであることを確認し、制御C2をアンクランプ判定部15に移す。アンクランプ判定部15は、ブロックデータBD3,BD4に回転指令が含まれていないことを確認し、クランプ指令Ccを出力し、制御C3を加工プログラム実行部4に移し、加工プログラム実行部4が加工点P2までの補間処理を実行する。
ブロックデータBD2が完了すると、上記と同様の手順により、次のブロックデータBD3が処理されるが、このブロックデータBD3の処理過程で、アンクランプ判定部15が、ブロックデータBD5に含まれている回転指令「Bb5」を検出する。そして、ブロックデータBD3を開始する時点で、アンクランプ判定部15がアンクランプ指令Cuをクランプ制御部7に出力し、クランプ制御部7がクランプ機構を機械的に動作させ、クランプ機構が回転軸を解放するためのアンクランプ動作を開始する。その後、アンクランプ動作と並行し、加工プログラム実行部4が加工点P3までの補間処理を実行し、回転軸がアンクランプされた状態で、ブロックデータBD4以降の処理が繰り返される。
要するに、図5〜図7に示す制御例では、ブロックデータBD1,BD2に対する補間処理を行っている時間中は、クランプ機構が回転軸をクランプしている。ブロックデータBD3に対する補間処理を開始する時刻(エンドミルtが加工点P2に到達している状態)に、クランプ機構がアンクランプ動作を開始する。そして、ブロックデータBD5に対する補間処理を開始する時刻よりも少し前に、クランプ機構がアンクランプ動作を完了する。
したがって、実施例1の数値制御装置10によれば、回転軸が動作を開始する時刻、つまり、回転指令を含むブロックデータBD5の実行開始時刻までに、クランプ機構をクランプ状態からアンクランプ状態に切り替えておくことができる。このため、エンドミルtによる切削を停止することなく、自由曲面Sを連続的に加工でき、加工時間を短縮し、加工面からカッターマークをなくし、加工精度を高めることができる。また、アンクランプ指令をブロックデータBD3の実行開始時刻に出力することで、ブロックデータBD5の実行開始時刻よりも少し前にアンクランプ動作を完了させ、これで生じる余裕時間Ts(図6参照)を安全マージとして利用し、クランプ機構の機械的動作時間に予期せぬ変動が生じた場合に、これを機械運転中に吸収できるという利点もある。
次に、本発明の実施例2を図8〜図12に従って説明する。図8に示すように、実施例2の数値制御装置20は、実施例1の数値制御装置10の構成要素に加え、回転指令開始時間格納部21を備えている。ブロックデータ先読み部12は、一連のブロックデータBDを読み出し、そのうちから回転指令を含むブロックデータBDを検索するとともに、自由曲面Sの加工開始時刻から回転指令を含むブロックデータBDの実行開始時刻までの時間を回転指令開始時間Trsとして求め、回転指令開始時間格納部21に記憶する。以下に、各部の詳細な処理を図5に示す自由曲面Sの制御例と併せて説明する。なお、実施例1と同一または類似する機能部については、図8に図1と同一の符号が付されている。
図9に示すように、加工プログラム実行部4は、まず、ブロックポインタ5からブロックインデックスBIを取得し(S41)、ブロックインデックスBIが指示するブロックデータBDをブロックデータ格納部3から読み出す(S42)。次に、読み出したブロックデータBDを解釈し、ここに自由曲面Sの加工開始指令「P」(図7参照)が含まれているかどうかを確認する(S43)。
自由曲面Sを加工しないときは、ブロックデータBDに基づいて補間処理を実行し(S44)、一つのブロックデータBDの処理を完了したのち(S45)、ブロックインデックスBIを1つずつ進め(S46)、全ブロックデータBDの処理を終了する(S47)。自由曲面Sを加工するときには、実行時間カウンタ14を初期化し(S48)、回転指令開始時間格納部21を初期化し(S49)、回転指令の有無を示す回転指令フラグをOFFし(S50)、ブロックインデックスBIを先読みポインタ13に格納する(S51)。そして、回転指令開始時間Trsを求めるために、制御Cをブロックデータ先読み部12へ渡し(S52)、その制御Cがブロックデータ先読み部12から戻るのを待つ(S53)。
ブロックデータ先読み部12から制御Cが戻ると、図10に示すように、加工プログラム実行部4は、まず、回転指令開始時間格納部21から回転指令開始時間Trsを読み出し、アンクランプ開始時間Tucs(Tucs=回転指令開始時間Trs−アンクランプ時間Tuc:図12参照)を求める(S54)。次に、実行時間カウンタ14の実行積算時間Tsumがアンクランプ開始時間Tucsに達したかどうかを判定する(S55)。実行積算時間Tsumがアンクランプ開始時間Tucsに達した場合は、回転指令フラグがOFFであることを確認し(S56)、クランプ制御部7にアンクランプ指令Cuを出力する(S57)。そして、回転指令フラグをONにセットしたのち(S58)、補間処理(S59)に進む。
実行積算時間Tsumがアンクランプ開始時間Tucsに達していない場合、および、アンクランプ指令Cuを既に出力していた場合(S56:No)は、今回のブロックデータBDに対して関数発生を行い、補間点を1つ生成してサーボモータ制御部6に出力するという1周期分の補間処理を行い(S59)、1周期の時間である関数発生周期時間Tc(図8参照)を実行時間カウンタ14の実行積算時間Tsumに加算する(S60)。そして、所要数の補間点を出力したかどうかを確認し、そうでない場合(S61:No)に、ステップS55〜S61の処理を繰り返し、補間処理を周期的に実行し、実行積算時間Tsumを漸増させ、一つのブロックデータBDの処理を完了する(S61:Yes)。その後、ブロックインデックスBIを1つ進め(S62)、ブロックポインタ5からブロックインデックスBIを取得し(S63)、次のブロックデータBDを読み出す(S64)。
続いて、自由曲面Sの加工中であるか否かを確認し(S65)、自由曲面Sの加工中でなければ、クランプ制御部7にクランプ指令を出力し(S66)、今回のブロックデータBDに対する補間処理を行う(図9:S44)。自由曲面Sの加工中であるときは、実行積算時間Tsumが回転指令開始時間Trsを超え、かつ、今回のブロックデータBDに回転指令が含まれていないこと、即ち、自由曲面Sの加工途中に回転指令のあるブロックから回転指令のないブロックへ移ったかどうかを確認する(S67)。そして、回転指令のないブロックに移った場合は、クランプ指令をクランプ制御部7に出力する(S68)。その後、全ブロックデータBDが終了していないことを確認し(S69)、加工開始点P1からのアンクランプ開始時間Tucsを判定する処理(S55)に復帰する。
図11に示すように、ブロックデータ先読み部12は、加工プログラム実行部4から制御Cが移るのを待ち(S71)、制御C1が移ると、まず、先読みポインタ13から先読みインデックスRIを取得し(S72)、先読みインデックスRIに対応するブロックデータBDを読み出し(S73)、この先読みブロックデータBDに回転指令があるかどうかを判断する(S74)。回転指令がない場合は、先読みインデックスRIの1つ前のインデックスに対応するブロックデータBDを読み出し(S75)、このブロックデータBDおよび先読みブロックデータBDの2つの指令位置から移動距離を求める。次に、先読みブロックデータBDから指令速度を取得し、移動距離と指令速度から先読みブロックデータBDの実行時間Teを求め(S76)、このブロック実行時間Teを回転指令開始時間格納部21に記憶する(S77)。
続いて、先読みインデックスRIを1つ進め(S78)、全ブロックを終了していないことを確認し(S79)、次の先読みインデックスRIを取得する処理(S72)に戻り、後続のブロックデータBDの実行時間Teを回転指令開始時間格納部21の既存値に順次加算して記憶する(S77)。そして、回転指令を検出したときに(S74:Yes)、制御Cを加工プログラム実行部4へ移し(S80)、処理を終了する。この一連の処理により、ブロックデータ先読み部12は、自由曲面Sの加工開始時刻から回転指令を含むブロックデータBDの実行開始時刻までの回転指令開始時間Trsを格納部21に残し、加工プログラム実行部4に提供することができる。
図12に示す制御例では、加工プログラム実行部4がブロックデータBD1の加工開始指令「P」を確認し、次のブロックデータBD2以降が自由曲面Sであることを記憶し、制御Cをブロックデータ先読み部12に移す。ブロックデータ先読み部12は、ブロックデータBD2〜BD4を順次読み出し、ブロック実行時間T2〜T4を加算し、次のブロックデータBD5から回転指令「Bb5」を検出した時点で、T2〜T4の加算値を回転指令開始時間Trsとして確定する。そして、加工プログラム実行部4は、ブロックデータBD2,BD3の補間処理を行い、ブロックデータBD3の補間処理の途中において、実行時間カウンタ14の積算時間Tsumがアンクランプ開始時間Tucsに達した時刻に、アンクランプ指令Cuをクランプ制御部7に出力した後、ブロックデータBD3以降の補間処理を繰り返す。
このため、実施例2の数値制御装置20では、クランプ機構がブロックデータBD3の補間処理の途中でアンクランプ動作を開始し、ブロックデータBD5の実行開始時刻にアンクランプ動作を完了する。したがって、実施例1と同様、エンドミルtによる切削を停止することなく、自由曲面Sを連続加工し、加工時間を短縮でき、加工面からカッターマークをなくすことができる。また、回転軸が動作を開始する時刻きっかりに、クランプ機構がアンクランプ状態となるので、回転軸を自身のサーボモータで自己保持させる時間をなくし、サーボモータの過熱を未然に防止できるという利点もある。
本発明は上記実施例1,2に限定されるものではなく、以下に例示するように、発明の趣旨を逸脱しない範囲で、数値制御装置の処理内容を適宜に変更して実施することも可能である。
(A)実施例1の数値制御装置10において、加工プログラム実行部4が自由曲面Sの加工開始指令「P」を検出したときに、ブロックインデックスBIをブロックデータ先読み部12に渡し、ブロックデータ先読み部12が補間処理を継承するような制御も可能である。この場合は、ブロックデータ先読み部12が補間処理と並行し、一連のブロックデータBDの先読みを行い、続いて、アンクランプ判定部14が回転指令の有無を判定し、クランプ指令Ccまたはアンクランプ指令Cuをクランプ制御部7に出力する。
(B)実施例1,2の数値制御装置10,20では、ブロックデータBDを逐次読み出して、回転指令を検出しているが、加工開始点から加工終了点までのブロックデータを予め全て読み出して、回転指令を検出し、その回転指令を含むブロックデータの実行開始時刻までに、クランプ機構をアンクランプ状態とする制御を行うこともできる。
(C)実施例1,2の数値制御装置10,20において、クランプ機構のアンクランプ時間Tucは、オペレータの入力によらず、測定によってアンクランプ時間設定部11に設定することも可能である。具体的には、クランプ機構を実際にアンクランプ動作させ、クランプ状態からアンクランプ状態に切り替わるまでの時間を測定し、この測定時間をアンクランプ時間Tucとしてアンクランプ時間設定部11に設定する。こうすれば、工作機械の機種に応じてアンクランプ時間Tucが異なっていたとしても、オペレータの入力に要する手間を省いて、正確なアンクランプ時間を自動的に設定することができる。
(D)実施例1,2の数値制御装置10,20において、ブロック実行時間Teを求めるときに使用する指令速度に、オペレータが操作パネルで設定した速度オーバーライドをかけた値を用いることも可能である。こうすれば、オペレータが送り速度オーバーライドを操作し、送り速度を上げることで、ブロック実行時間Teが短くなったとしても、その分だけブロックデータBDがさらに先読みされるので、送り速度オーバーライドに合わせて、アンクランプ動作の完了時刻を調整でき、オペレータにオーバーライド操作を禁止することなく、加工面からカッターマークを解消できる。
(E)実施例2の数値制御装置20では、ブロック実行時間Teを自由曲面Sの加工開始点P1で求めているが、これ以外に、例えば、工具交換後早送りでワークに位置決めするスタート点や早送り位置決め点など、加工プログラムに指令された任意の指令点でブロック実行時間Teを求めることも可能である。
(F)実施例2の数値制御装置20において、クランプ機構の安全マージンをアンクランプ時間設定部11のアンクランプ時間Tucに加算し、クランプ機構の機械的動作時間の経年変化に備えることもできる。