(57)【特許請求の範囲】
【請求項１】
少なくとも１つの駆動軸を制御して加工領域に設置されたワークを加工する機械を少なくとも１つのブロックからなるプログラムに基づいて制御する数値制御装置において、
前記加工領域を分割した場合の複数のエリアに係る情報である分割情報を設定する分割設定部と、
前記分割情報に基づいて前記複数のエリアにおける仮想的座標系を設定するエリア座標系設定部と、
前記分割情報に基づいて演算精度を設定する演算精度設定部と、
前記分割情報に基づいて前記プログラムを分割した分割プログラムを前記仮想的座標系と前記演算精度とに従って解析し、解析した結果に基づいて前記機械の動作を指令する指令データを出力する指令解析部と、
前記指令データに基づいて、補間周期毎の移動経路上の前記駆動軸の位置を示す補間データを前記仮想的座標系と前記演算精度とに従って算出する補間部と、
前記補間データに対して補間周期毎の前記駆動軸の速度を前記仮想的座標系と前記演算精度とに従って調整する加減速部と、
を備えたことを特徴とする数値制御装置。
【請求項２】
前記プログラムと、前記分割情報とに基づいて、それぞれの前記エリアにおける加工制御に用いられる分割プログラムを生成するプログラム分割部と、
を備えたことを特徴とする請求項１に記載された数値制御装置。
【請求項３】
前記プログラム分割部は、前記プログラムに含まれる複数のブロックの内で、前記駆動軸を移動を指令するブロックについて、当該移動が前記複数のエリアの内の２以上のエリアにまたがる場合には、当該移動の経路を前記２以上のエリア上の複数の経路へと分割して当該分割した複数の経路の移動を指令する複数のブロックを生成し、前記複数のブロックのそれぞれを前記２以上のエリアのそれぞれにおける加工制御に用いられるそれぞれのプログラムへと挿入する、ことにより分割プログラムを生成する、
ことを特徴とする請求項２に記載された数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特にプログラム指令の解析桁数を増やすことを可能とする数値制御装置に関する。
【背景技術】
【０００２】
一般的に数値制御装置の内部演算では、プログラム指令における軸指令（Ｘ１２３．４５６７８９など）の解釈においては、あらかじめ小数点以下何桁までを解釈するかを設定しておく（例えば、特許文献１〜５）。以下では、この設定値を最小設定単位と呼ぶ。
プログラムフォーマットとしては小数点以下の桁数は、最小設定単位よりも細かく記述をすることが可能である（Ｘ１２３．４５６７８９１２など）。そのため、数値制御装置では、プログラム指令を小数点以下何桁指令されても、最小設定単位で丸めて扱っていた。
【０００３】
最小設定単位は、以下に示す数値制御装置の外部的な要因及び内部的な要因に基づいて決定される。
●［外部的要因１：画面上への表示領域、入力領域による制限］
数値制御装置において、例えばより細かい桁の座標位置を解釈できるようにするために最小設定単位で設定される小数点以下の桁数を増やすと、１つ１つの値での指令桁数が多くなる。指令桁数が多くなりすぎると、プログラム表示や位置表示などの桁数が多くなり過ぎて取扱いが煩雑になる。また、パラメータやオフセットデータなども、最小設定単位と連動していることが多いので、これらも必要以上に桁数が多くなってしまう。
【０００４】
●［外部的要因２：機械のストローク長、設定単位毎に可能なストローク長による制限］
機械では、加工領域の大きさに応じたストローク長が必要となる。ストローク長を維持したまま最小設定単位で設定される小数点以下の桁数を増やすと、内部演算において１つの値に必要となるデータ長（ビット数）を大きくせざるを得なくなり、一方で、内部処理における１つの値のデータ長を固定したまま最小設定単位で設定される小数点以下の桁数を増やそうとするとストローク長を小さくしなければならなくなる。
【０００５】
●［外部的要因３：検出器の分解能による制限］
加工領域内におけるワークの位置や工具の位置を検出する位置検出器の分解能よりも細かい桁数が解釈できるように最小設定単位で設定される小数点以下の桁数を増やした場合、仮にプログラム中で細かい桁の座標位置を指令したとしても、指令された座標位置の最小桁を検出器が検出できないため、指令された細かい桁の座標位置に正確に位置決めすることができない。一方で、検出器の分解能よりも最小設定単位で設定される小数点以下の桁数が多い場合には、検出器の分解能の範囲内で最小設定単位で設定される小数点以下の桁数を増やすことで精度向上が見込める。
【０００６】
●［内部的要因１：数値制御装置の演算レジスタのレジスタ長による制限］
演算レジスタのレジスタ長が３２ビットである場合、１つの値を表現するために符号付き単精度整数型を用いると−２１４７４８３６４８〜＋２１４７４８３６４７の範囲を表現することができる。ここで、３２ビットレジスタ長の数値制御装置の内部演算において、ｍｍ単位の１つの値を符号付き単精度整数型で最小設定単位を小数点以下６桁として表現した場合、−２１４７．４８３６４８ｍｍ〜＋２１４７．４８３６４７ｍｍの範囲の座標位置を表現できるようになる。また、最小設定単位を小数点以下７桁として表現した場合には、−２１４．７４８３６４８〜＋２１４．７４８３６４７の範囲の座標位置を表現できるようになる。このような数値制御装置において、制御対象となる機械のストロークの範囲を変えずに最小設定単位で設定される小数点以下の桁数を増やそうとする場合は、符号付き単精度整数型に代えて符号付き倍精度整数型などを用いる必要がある。
【０００７】
●［内部的要因２：リソース（処理時間やメモリ消費量）による制限］
内部的要因１で示したように、制御対象となる機械のストローク長を変えずに最小設定単位で設定される小数点以下の桁数を増やす場合には、内部演算においてより多くのデータを取り扱う必要が出てくるため、必然的に演算の処理時間やメモリの消費量が増加する。しかしながら、数値制御装置が備えるＣＰＵの演算速度やデータの転送速度には限界があるため、安易に演算桁数を増やすと機械を制御するためのデータを生成する処理が制御動作の周期内で終了しなくなる可能性がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特許第３０２３６４８号公報
【特許文献２】特公平０８−０３０９７４号公報
【特許文献３】特開平０５−１８１５２２号公報
【特許文献４】特開平０５−２８２０２２号公報
【特許文献５】特開平１１−１７５２２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
数値制御装置においては、上記した各要因を総合的に検討し、最小設定単位で設定する小数点以下の桁数を現実的な範囲で定めている。例えば、数値制御装置の内部演算を３２ビットの符号付き単精度整数値で行うものとすると、上記したように最小設定単位を小数点以下６桁とした場合には−２１４７．４８３６４８ｍｍ〜＋２１４７．４８３６４７ｍｍ（図９に示すように、ストローク±２ｍ程度）の範囲の座標位置を表現できるようになる。そして、制御対象となる機械のストロークが±２ｍ以内に収まるのであれば、当該機械を制御する上で問題は生じないため、最小設定単位で設定する小数点以下の桁数は６桁に設定される。
【００１０】
ところで、上記のように設定されている数値制御装置が制御する機械の検出器の分解能が０．０００００１ｍｍ以下である場合、指令をもっと細かい桁まで解釈し、演算を行い、最終的なパルスの分配も細かい桁まで行わせることで精度向上が望める。しかしながら、単純に最小設定単位で設定する小数点以下の桁数を７桁とすると、上記したように数値制御装置で扱えるストロークは−２１４．７４８３６４８〜＋２１４．７４８３６４７（ストローク±０．２ｍ程度）となる。そのため、機械のストローク長として±２ｍを確保したい場合でも、数値制御装置側の制限でストロークが最大±０．２ｍになってしまい、加工を行う機械として成り立たなくなってしまう。すなわち、高精度な検出器を備えた高精度な機械を制御対象とした場合であっても数値制御装置がこれに対応できなければ精度の高い加工を行うことができない。一方で、多くのリソースを備え、内部演算で高精度な値の解釈及び演算を行える数値制御装置は高価であり導入にコストがかかるという問題がある。
【００１１】
そこで本発明の目的は、数値制御装置のリソースの増加を抑えた上で、最小設定単位より下位の桁まで解釈することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【００１２】
本願の請求項１に係る発明は、少なくとも１つの駆動軸を制御して加工領域に設置されたワークを加工する機械を少なくとも１つのブロックからなるプログラムに基づいて制御する数値制御装置において、前記加工領域を分割した場合の複数のエリアに係る情報である分割情報を設定する分割設定部と、前記分割情報に基づいて前記複数のエリアにおける仮想的座標系を設定するエリア座標系設定部と、前記分割情報に基づいて演算精度を設定する演算精度設定部と、前記分割情報に基づいて前記プログラムを分割した分割プログラムを前記仮想的座標系と前記演算精度とに従って解析し、解析した結果に基づいて前記機械の動作を指令する指令データを出力する指令解析部と、前記指令データに基づいて、補間周期毎の移動経路上の前記駆動軸の位置を示す補間データを前記仮想的座標系と前記演算精度とに従って算出する補間部と、前記補間データに対して補間周期毎の前記駆動軸の速度を前記仮想的座標系と前記演算精度とに従って調整する加減速部と、を備えたことを特徴とする数値制御装置である。
【００１３】
本願の請求項２に係る発明は、前記プログラムと、前記分割情報とに基づいて、それぞれの前記エリアにおける加工制御に用いられる分割プログラムを生成するプログラム分割部と、を備えたことを特徴とする請求項１に記載された数値制御装置である。
【００１４】
本願の請求項３に係る発明は、前記プログラム分割部は、前記プログラムに含まれる複数のブロックの内で、前記駆動軸を移動を指令するブロックについて、当該移動が前記複数のエリアの内の２以上のエリアにまたがる場合には、当該移動の経路を前記２以上のエリア上の複数の経路へと分割して当該分割した複数の経路の移動を指令する複数のブロックを生成し、前記複数のブロックのそれぞれを前記２以上のエリアのそれぞれにおける加工制御に用いられるそれぞれのプログラムへと挿入する、ことにより分割プログラムを生成する、ことを特徴とする請求項２に記載された数値制御装置。
【発明の効果】
【００１５】
本発明により、処理速度やメモリの増大を抑えた上で、プログラムの移動指令の解釈を行う桁数を増やすことができる。そしてその結果として、設定単位より検出器の分解能の方が小さい場合は、より細かく正確なパルス分配が可能となり、加工物の精度向上が望める。また、設定単位としては従来のままなので、位置表示などの取扱いは、従来どおりとすることも可能であり、また桁数を増やして扱うことも可能である。
【図面の簡単な説明】
【００１６】
【図１】本発明の数値制御装置の内部演算処理における解析桁数を増やす方法の概要を説明する図である。
【図２】本発明の数値制御装置によりワークを加工する工作機械を示す図である。
【図３】本発明の加工領域のエリア分割方法の例を示す図である。
【図４】本発明のプログラムに含まれる直線補間を指令するブロックの分割方法について説明する図である。
【図５】本発明のプログラムに含まれる円弧補間を指令するブロックの分割方法について説明する図である。
【図６】本発明のプログラム分割方法により図４のプログラムを分割した分割プログラムの例を示す図である。
【図７】本発明の一実施形態による数値制御装置の要部構成図である。
【図８】本発明の一実施形態による数値制御装置の概略的な機能ブロック図である。
【図９】従来技術の数値制御装置によりワークを加工する工作機械を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。
本発明の数値制御装置は、図１に示すように加工領域を複数のエリアへと分割し、分割した加工範囲毎に加工を行うための分割されたプログラムを元のプログラムに基づいて生成する。そして、本発明の数値制御装置は分割されたプログラムに基づいて機械を制御してワークを加工する。それぞれの分割されたプログラムに基づいて加工されるエリアは加工領域全体よりも小さくなるため、数値制御装置の内部演算処理に用いるレジスタ長などを変更することなく、分割されたプログラムを実行する際にストローク長を狭めて最小設定単位により設定される小数点以下の桁数を増加させた仮想的な座標系を用いた加工を行うことができる。
【００１８】
例えば、Ｘ軸方向Ｙ軸方向共に±２ｍの範囲の加工領域を持つ機械を制御する際に、それぞれの座標軸方向で１０分割した場合、各エリアのサイズは加工領域と比較して１辺で１／１０となるので、分割されたプログラムを実行する際には、数値制御装置内では単精度整数型を用いたままで、加工する領域の座標値の最大桁数を１桁減らし、最小設定単位により設定される小数点以下の桁数を１桁増加させた仮想的な座標系で加工を行うことができる。このようにすることで、図２に示すように１つの分割されたプログラムで加工できる範囲は狭くなるものの（ストローク長が４００．０ｍｍ）、当該分割されたプログラムの実行時に座標値の解釈や演算を小数点以下の桁数を増加させた精度で行うことができるため加工精度が向上し、また、すべての分割されたプログラムを実行することにより、元のプログラムを実行した場合と同じ加工範囲のワークを加工することができる。
【００１９】
図３は、ＸＹ座標系で表される加工領域の分割例を示す図である。図３の例では、Ｘ座標値がＸmin〜Ｘmax、Ｙ座標値がＹmin〜Ｙmaxであって中心位置が原点（０，０）となる加工領域をＸ軸方向にｎ個、Ｙ軸方向にｍ個に等割することにより、当該加工領域をｎ×ｍ個のエリアへとエリア分割している。この時、分割されたエリアのＸ軸方向の幅ＬxおよびＹ軸方向の幅Ｌyは以下の数１式で表される。
【００２０】
【数１】
0006363643.tif 000002
【００２１】
また、図３に示すように、分割された各エリアをＸ軸，Ｙ軸の負方向から正方向に向けてそれぞれエリア（１，１）、エリア（２，１）、…、エリア（ｉ，ｊ）、…、エリア（ｎ，ｍ）とした場合、加工領域上の現実の座標値（ｘr，ｙr）で表される点は以下の数２式の判定式を満足する（ｉ，ｊ）の組に対応するエリア（ｉ，ｊ）に属する。
【００２２】
【数２】
0006363643.tif 000003
【００２３】
そして、エリア（ｉ，ｊ）において当該エリアの中心を原点（０，０）とする仮想的な座標空間を設ける場合、当該仮想的な座標空間における座標値（ｘvi，ｙvj）と、加工領域上の現実の座標値（ｘr，ｙr）との関係は以下の数３式で表すことができる。
【００２４】
【数３】
0006363643.tif 000004
【００２５】
以下では、上記した各式を用いてプログラムを各エリアの加工制御に用いるプログラムへと分割するプログラム分割方法について説明する。プログラムの分割は、当該プログラムに含まれる工具の移動を指令する各ブロックで指令される工具の移動経路がいずれのエリアに属するのかを判定することで行われる。
各ブロックがいずれのエリアに属するのかを判定する際には、例えば対象とするブロックが直線補間を指令するブロックである場合、当該指令による工具の移動経路の始点および終点がそれぞれいずれのエリアに属するのかを判定する。ここで、判定対象となるブロックの指令による工具の移動経路の始点および終点が共に同じエリアに属する場合には、そのブロックは始点および終点が属するエリアのみを加工するものなので、当該エリアにおける加工制御に用いるプログラムに含める（座標値が絶対値指定されている場合には、数３式を用いて座標値を変換する）。また、判定対象となるブロックの指令による移動経路の始点および終点が異なるエリアに属する場合には、当該ブロックの指令による工具の移動経路をそれぞれのエリアにおける移動経路へと分割し、分割した移動経路を指令するブロックをそれぞれのエリアにおける加工制御に用いるプログラムへ含める（座標値が絶対値指定されている場合には、数３式を用いて座標値を変換する）。
また、対象とするブロックが円弧補間を指令するブロックである場合においても、円弧状の移動経路全体が１つのエリア内に属する場合は当該ブロックを当該エリアにおける加工制御に用いるプログラムに含め（座標値が絶対値指定されている場合には、数３式を用いて座標値を変換する）、また、円弧状の移動経路が異なるエリアにまたがっている場合には、当該ブロックの指令による工具の円弧経路をそれぞれのエリアにおける円弧状の移動経路へと分割し、分割した円弧状の移動経路を指令するブロックをそれぞれのエリアにおける加工制御に用いるプログラムへ含める（座標値が絶対値指定されている場合には、数３式を用いて座標値を変換する）。
なお、工具の移動を指令するブロック以外のブロックについては、すべてのエリアにおける加工制御に用いるプログラムへ含めるようにすればよい。
【００２６】
例えば、図３に示した分割例において、Ｘ軸方向、Ｙ軸方向共に座標値が±２０００．０［ｍｍ］を取り得る（Ｘmin＝Ｙmin＝−２０００．０［ｍｍ］、Ｘmax＝Ｙmax＝＋２０００．０［ｍｍ］）加工領域をＸ軸方向、Ｙ軸方向共に１０等分（ｎ＝ｍ＝１０）してエリア分割した場合において、図４に示すプログラムを各エリアにおける加工制御に用いるプログラムへと分割する例を考える。Ｎ０３ブロック，Ｎ０４ブロックにより指令される工具の移動経路の始点および終了はいずれもエリア（６，６）に属しているため、Ｎ０３ブロック，Ｎ０４ブロックはエリア（６，６）における加工制御に用いるプログラムへと含める。また、Ｎ０６ブロック，Ｎ０７ブロック，Ｎ０８ブロックにより指令される工具の移動経路の始点および終了はいずれもエリア（７，６）に属しているため、Ｎ０６ブロック，Ｎ０７ブロック、Ｎ０８ブロックはエリア（７，６）における加工制御に用いるプログラムへと含める。一方で、Ｎ０５ブロックにより指令される工具の移動経路は、始点がエリア（６，６）、終点がエリア（７，６）にそれぞれ属しているので、Ｎ０５ブロックにより指令される工具の移動経路が通過するエリアであるエリア（６，６）とエリア（６，６）の境界位置（図４下のＮ０５ブロックにより指令される工具の移動経路上の△点）で当該移動経路を分割し、分割したそれぞれの移動経路を指令するブロックを生成し、エリア（６，６）を加工するプログラムおよびエリア（７，６）を加工するプログラムへとそれぞれのブロックを含める。Ｎ０９ブロック、Ｎ１０ブロック、Ｎ１１ブロックについても同様である。
また、例えば、図５に示すように円弧補間のブロックがプログラムに含まれている場合には、円弧補間指令による工具の移動経路が各エリアの境界線と交差するか否かを判定し、交差する場合にはその交差位置（図５のＮ１２ブロックにより指令される工具の移動経路上の△点）で当該移動経路を分割し、分割したそれぞれの移動経路を指令するブロックを生成し、エリア（６，６）を加工するプログラムおよびエリア（７，６）を加工するプログラムへとそれぞれのブロックを含める。
【００２７】
このような手順をプログラムに含まれる各ブロックに対して実行することで、図４のプログラムは図６に示すそれぞれのエリアの加工制御に用いるプログラムへと分割される。
なお、上記した移動経路の分割や、数３式を用いた現実の座標値からエリアごとの仮想的な座標値への変換には倍精度整数型での演算処理を用いることで、プログラムに記載される座標値の桁数の精度を保つようにする。倍精度整数型の値を用いた演算処理には単精度整数型の値を用いた演算処理よりも多くのリソースを消費するが、移動経路の分割処理や座標値の変換処理は、加工制御において行われる移動経路の補間処理や加減速処理と比較するとはるかに演算量が少ないため、全体の処理速度に大きな影響となることはない。
【００２８】
以下では、上記したプログラム分割処理を実行し、分割されたプログラムに基づく加工制御を行う数値制御装置の構成について説明する。
図７は、本発明の一実施形態による数値制御装置の要部を示すハードウェア構成図である。数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムをバス２０を介して読み出し、該システムプログラムに従って数値制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００２９】
ＳＲＡＭ１４は図示しないバッテリでバックアップされ、数値制御装置１の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＳＲＡＭ１４中には、インタフェース１５を介して読み込まれた後述する加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラム等が記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や上記したプログラム分割処理を実行するための各種のシステムプログラムがあらかじめ書き込まれている。本発明を実行する加工プログラム等の各種加工プログラムはインタフェース１５や表示器／ＭＤＩユニット７０を介して入力し、ＳＲＡＭ１４に格納することができる。
【００３０】
インタフェース１５は、数値制御装置１とアダプタ等の外部機器７２との接続するためのインタフェースである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置１内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンスプログラムで工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００３１】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００３２】
各軸の軸制御回路３０〜３２はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４２に出力する。サーボアンプ４０〜４２はこの指令を受けて、各軸のサーボモータ５０〜５２を駆動する。各軸のサーボモータ５０〜５２は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３２にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
【００３３】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械の主軸モータ６２を指令された回転速度で回転させ、工具を駆動する。
主軸モータ６２には歯車あるいはベルト等でポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００３４】
図８は、上記したプログラムの分割方法および分割されたプログラムの実行方法を図７に示した数値制御装置１に対してシステムプログラムとして実装した場合の概略的な機能ブロック図を示している。数値制御装置１は、分割設定部１００、プログラム分割部１１０、エリア座標系設定部１２０、演算精度設定部１３０、エリア位置決め部１４０、指令解析部１５０、補間部１６０、加減速部１７０、サーボ制御部１８０を備える。
分割設定部１００は、加工領域のエリア分割に必要となるパラメータの入力を受け付けてＳＲＡＭ１４などのメモリ上に記憶する。エリア分割に必要となるパラメータは、エリアの分割方法によって異なるが、図２で説明した分割方法を用いる場合には、加工領域の範囲（Ｘmin〜Ｘmax、Ｙmin〜Ｙmax）や、原点位置（加工領域、エリア共に中心が原点、端が原点、など）、Ｘ軸方向、Ｙ軸方向の分割数（ｎ，ｍ）などを受け付けるようにすればよい。
【００３５】
プログラム分割部１１０は、分割設定部１００により設定されたパラメータに基づいて加工領域を仮想的に分割し、例えば図２〜図４で説明した方法により、分割したエリアごとの加工制御に用いるプログラムをプログラム２００に基づいて生成する。分割されたプログラム２１０はＲＡＭ１３等のメモリ上に設けられた領域に記憶する。
【００３６】
エリア座標系設定部１２０は、後述する指令解析部１５０が分割されたプログラム２１０を実行する際に、分割設定部１００により設定されたパラメータに基づいてエリアごとの仮想的な座標系を指令解析部１５０に対して設定する。
【００３７】
また、演算精度設定部１３０は、後述する指令解析部１５０が分割されたプログラム２１０を実行する際に、分割設定部１００により設定されたパラメータに基づいて指令解析部１５０、補間部１６０、加減速部１７０での内部演算処理において設定可能な最小設定単位を設定する。ここで言うところの「設定可能な最小設定単位」とは、上記した数値制御装置の外部的要因、内部的要因を考慮しつつ、分割設定部１００により分割された各エリアのストローク長に基づいて適宜定めることが可能である。一例として、図２のようにエリア分割した場合には、最小設定単位により設定される小数点以下の桁数を１増加させることができる。
【００３８】
エリア位置決め部１４０は、後述する指令解析部１５０が分割されたプログラム２１０の実行を開始する際に、実行を開始する分割されたプログラムの加工開始位置へと位置決めする指令を指令解析部１５０へと出力する。各エリアの加工開始位置は、元のプログラムにおいて当該エリアへと工具が侵入した点（図４，５における△点）の座標値を数３式により当該エリアにおける仮想的な座標値へと変換した位置となる。
【００３９】
指令解析部１５０は、メモリに記憶される分割されたプログラム２１０からブロックを順次読み出して解析し、解析結果に基づいて各軸の移動を指令する指令データを作成し、作成した該指令データを補間部１６０へと出力する。指令解析部１５０は、解析処理を行う際に上記したエリア座標系設定部１２０が設定した仮想的な座標系を用い、また、上記した演算精度設定部１３０が設定した最小設定単位で解析を行う。指令解析部１５０が、どのような順序で複数の分割されたプログラム２１０の読み出しを行うのかについては特に制約する必要はないが、近いエリアの加工を行うプログラムを順番に読み出した方が工具の移動距離が短くなるため加工のサイクルタイムを短縮することができる。
【００４０】
補間部１６０は、指令解析部１５０が出力した指令データに基づいて、該指令データにより指令される指令経路上の点を補間周期で補間計算した補間データを生成し、生成した補間データを加減速部１７０へと出力する。補間部１６０が補間処理を実行する際には、エリア座標系設定部１２０が設定した仮想的な座標系を用い、また、上記した演算精度設定部１３０が設定した最小設定単位で解析を行う。
【００４１】
加減速部１７０は、補間部１６０が出力した補間データに対して補間周期毎の各駆動軸の速度を調整する加減速処理を行い、加減速の調整が為された補間データをサーボ制御部１８０へ出力する。加減速部１７０が加減速処理を実行する際には、エリア座標系設定部１２０が設定した仮想的な座標系を用い、また、上記した演算精度設定部１３０が設定した最小設定単位で解析を行う。
そして、サーボ制御部１８０は、加減速部１７０の出力に基づいて制御対象となる機械の各軸の駆動部（サーボモータ５０〜５２）を制御する。
【００４２】
このような構成を備えた数値制御装置では、加工領域を複数のエリアへと分割し、分割されたエリアに合わせて予めプログラム２００から複数の分割されたプログラム２１０を生成する。分割されたプログラム２１０では工具の移動範囲であるストローク長が加工領域よりも狭くなるため、演算処理にリソースを割くことなく指令の解析処理や補間処理、加減速処理における最小設定単位により設定される小数点以下の桁数を増加させ、加工精度を向上させることができる。
【００４３】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００４４】
例えば、上記した実施の形態では、Ｘ軸方向、Ｙ軸方向の２次元平面をエリア分割し、分割したエリアのワークを加工するためのプログラムを生成する例を示したが、これにＺ軸を加えた３次元空間をエリア分割するようにしても良い。その場合、単純に数１〜３式にＺ軸の式を追加し、これら式を用いてプログラムの分割を行うようにすればよい。
【００４５】
また、上記した実施の形態では、加工領域を等割したエリアへと分割しているが、これに限られることはなく、エリアの大きさはそれぞれ異なるようにしても良く、その場合には、各エリアの境界や大きさを個別に分割設定部１００で設定できるようにしても良い。そして、そのように設定された情報に基づいて、プログラム分割部１１０、エリア座標系設定部１２０、演算精度設定部１３０を動作させることにより、異なる大きさのエリアに対応できるようになる。このようにすることで、例えば加工領域の一部を更に細分したエリアへと分割し、その個所において更に精密な加工を行うようにすることも可能となる。
【００４６】
更に、上述した実施の形態の例では、プログラムの分割を数値制御装置で行っているが、これを数値制御装置上では行うのではなく、外部のプログラム作成装置（ＣＡＤ装置など）で予め各領域に分割したプログラムを作成し、それを実行するようにしてもよい。このようにする場合、数値制御装置にはプログラム分割部１１０を設ける必要はなく、同様の構成をプログラム作成装置上に設けるようにすればよい。
【符号の説明】
【００４７】
１  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＳＲＡＭ
１５  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
１８  インタフェース
１９  インタフェース
２０  バス
３０，３１，３２  軸制御回路
４０，４１，４２  サーボアンプ
５０，５１，５２  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  主軸モータ
６３  ポジションコーダ
７０  表示器／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  分割設定部
１１０  プログラム分割部
１２０  エリア座標系設定部
１３０  演算精度設定部
１４０  エリア位置決め部
１５０  指令解析部
１６０  補間部
１７０  加減速部
１８０  サーボ制御部
２００  プログラム
２１０  分割されたプログラム
【図１】
0006363643.tif 000005
【図２】
0006363643.tif 000006
【図３】
0006363643.tif 000007
【図４】
0006363643.tif 000008
【図５】
0006363643.tif 000009
【図６】
0006363643.tif 000010
【図７】
0006363643.tif 000011
【図８】
0006363643.tif 000012
【図９】
0006363643.tif 000013