(57)【要約】【課題】テーブル形式データによる運転において、工具経路の修正を少なくして滑らかな加工面を得ることができるようするスムージング機能を得る。【解決手段】基準値と同期をとるＸ軸位置、Ｚ軸位置が指令データとしてテーブル形式データで記憶されている。テーブル形式データで指令された工具経路(破線)、の速度変化点を求める。速度変化点を中心に指令された半径の円と、工具経路との交点１、２のＸ軸、Ｚ軸座標値、基準値Ｌを求める。交点１から交点２までを多次元関数等による滑らかな曲線の工具経路を求める。テーブル形式データに対して、交点１、２のＸ軸、Ｚ軸座標値、基準値Ｌを用いて、交点１から交点２までを滑らかな曲線の工具経路の指令データに置き換える。滑らかな加工面が得られ、かつ、小さな補正範囲以外は基準値と各軸位置との同期が指令通りに保証される。【選択図】  図６
2015121966.tif 000002
【特許請求の範囲】
【請求項１】
時間、軸位置、あるいは主軸位置を基準値とし、該基準値に同期させる複数の軸の位置を基準値に対応させてテーブル形式データの指令データとしてメモリまたはネットワークで接続された記憶装置に格納しておき、テーブル形式データを順次読み出し、前記基準値と同期させる軸の位置を同期して制御する数値制御装置において、
同期させる複数の軸のテーブル形式データを並行して先読みするテーブル形式データ先読み手段と、
前記先読みしたテーブル形式データより工具経路を割出す工具経路割出し手段と、
前記工具経路において速度の変化点を検出する速度変化点検出手段と、
前記速度の変化点において補正を行う範囲を前記速度の変化点からの距離で指定する補正範囲指定手段と、
前記工具経路上における補正範囲内と補正範囲外との境界位置を速度の変化点の前後に２つ求める境界位置算出手段と、
速度の変化点の前後に求められた２つの境界位置間を滑らかな工具経路に置き換える工具経路補正手段と、
前記補正した工具経路に基づいてテーブル形式データを修正するテーブル形式データ修正手段と、
を有することを特徴とするテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【請求項２】
前記工具経路補正手段は、多次元関数または三角関数またはその組み合わせにより接続する事を特徴とする、請求項１に記載のテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【請求項３】
前記補正範囲指定手段は、パラメータ、入力信号、プログラム指令により、前記速度の変化点からの距離を指定する事を特徴とする、請求項１又は請求項２に記載のテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【請求項４】
前記境界位置算出手段は、前記工具経路と、工具経路が２次元平面上に存在する場合は指定された距離を半径とする速度の変化点を中心にする円との交点を、工具経路が３次元空間上に存在する場合は指定された距離を半径とする速度の変化点を中心にする球面との交点を境界位置として求める請求項１乃至３のいずれか１項に記載のテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【請求項５】
前記補正範囲指定手段により指定された前記補正を行う範囲と、その前後の前記補正を行う範囲が重複する場合に、前記補正を行う範囲を前記速度変化点間の距離の半分にする補正範囲調整手段を備える請求項１乃至４のいずれか１項に記載のテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【請求項６】
前記テーブル形式データ先読み手段は、順次、読み出された指令データのうち基準値が１番小さい軸の次の指令データを読み出す請求項１乃至６のいずれか１項に記載のテーブル形式データによる運転でのスムージング機能を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械や各種産業機械を制御する数値制御装置に関し、特に、テーブル形式データに基づいて工作機械等を制御する数値制御装置に関する。
【背景技術】
【０００２】
ＮＣプログラムの各ブロックからの指令ではなく、基準値に対応して該基準値に同期される送り軸の位置や主軸位置を指令データとしてテーブル状にメモリに記憶しておき、該メモリに記憶されたテーブル形式データに基づいて、送り軸位置や主軸の位置等を制御する工作機械の数値制御方式は、電子カム制御ともいわれ公知である。このテーブル形式データによる運転では、基準値の進行速度が変動しても基準値に対して同期させる軸の位置を正確に制御でき、従来の加工プログラムにとらわれない自由な工具の動作が可能となり、加工時間の短縮や加工の高精度を実現している。基準値としては、時間や送り軸位置あるいは主軸の位置等が用いられている(特許文献１参照)。さらに、このテーブル形式データで指令された位置間を２次関数、３次関数、さらには４次関数、５次関数で接続することによって、機械にショックや振動を発生させないように制御する方式も特許文献２、特許文献３で公知である。
【０００３】
また、基準値を、制御される各軸毎のテーブル形式データで共通とすることも、テーブル形式データ毎に基準値を用いることも特許文献４で公知である。さらに、この特許文献４には、テーブル形式データに基づいて工作機械を運転している際に、制御しようとする工作機械の動作が間に合わないとき、各制御軸等の待ち合わせを行って、制御される軸等を同期して制御する方法も記載され公知である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭５９−１７７６０４号公報
【特許文献２】特開２００３−３０３００５号公報
【特許文献３】特開２００７−３０４７１４号公報
【特許文献４】特開２０１２−２３４４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
テーブル形式データによる運転において、ＣＡＭで出力したテーブル形式データの精度が悪い場合等が原因となって、指令された各位置間で大きく速度変化して加工面を滑らかに加工することができない場合がある。  
図１は従来から知られているテーブル形式データに基づく運転のブロック図（特許文献２、３に開示）である。図１に示す例では、基準値に同期させる軸をＸ軸、Ｚ軸としているものである。テーブル形式データとして記憶された指令データに基づく運転を行う数値制御装置は、時間、主軸位置、送り軸位置等の基準値を形成する信号を計数する基準値カウンタ３、Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚ、Ｘ軸パステーブル補間処理部４ｘ、Ｚ軸パステーブル補間処理部４ｚ、送り軸のＸ軸用のサーボモータ５ｘ、送り軸のＺ軸用のサーボモータ５ｚを備えている。Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚは、数値制御装置内のメモリ又は数値制御装置にネットワークで接続された記憶装置内に設けられるもので、Ｘ軸パステーブルＴｘには、指令データとして基準値に対応させてＸ軸の位置が、Ｚ軸パステーブルＴｚには、基準値に対応させてＺ軸の位置がテーブル形式データとして設定記憶されている（以下、この各軸パステーブルに記憶されている指令データをパステーブルデータという）。Ｘ軸パステーブル補間処理部４ｘ、Ｚ軸パステーブル補間処理部４ｚは、入力された基準値カウンタ３の値である基準値に基づいて、Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚに記憶されたテーブル形式データを読み出し、補間処理をしてＸ軸用のサーボモータ５ｘ、Ｚ軸用のサーボモータ５ｚに出力してＸ軸、Ｚ軸の位置と基準値を同期させてＸ軸、Ｚ軸のモータ５ｘ、５ｚを駆動する。
【０００６】
例えば、Ｘ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚに図２に示すようなパステーブルデータが記憶されており、このパステーブルデータに基づいて数値制御装置によって工作機械を制御し被加工物を加工すると、工具経路は図３に示すような経路となる。  
基準値Ｌ＝０．０でＸ軸位置、Ｚ軸位置は原点の「０．０００」にあり、Ｘ軸は該原点位置から基準値Ｌが「１００．０」に達した時点で「０．２００」の位置に、Ｚ軸は原点位置から基準値Ｌが「１５０．０」に達した時点で「３．０００」の位置に到達するように駆動される。その結果、基準値Ｌが「１００．０」に到達した時点では、Ｘ軸は「０．２００」の位置に、Ｚ軸の位置は基準値Ｌが「１５０．０」で「３．０００」に到達するように移動する途中であり、「２．０００」の位置に到達している。すなわち、基準値Ｌ＝１００．０の位置Ｐ１(Ｘ，Ｚ)＝(０．２００，２．０００)の位置に到達している。該位置Ｐ１からＸ軸は、基準値Ｌ＝２００．０で「３．０００」の位置に到達するように駆動され、Ｚ軸が目標の「３．０００」の位置に到達する基準値Ｌ＝１５０．０の時点での位置Ｐ２では、Ｘ軸は、「１．６００」である。Ｚ軸はこの位置Ｐ２から基準値Ｌ＝２００．０で「０．０００」の位置に到達するように駆動され、基準値Ｌ＝２００．０では、Ｘ軸は「３．０００」、Ｚ軸は「０．０００」の位置Ｐ３に到達する。  
このような工具経路によって加工がなされるが、原点、位置Ｐ１、Ｐ２さらには位置Ｐ３で速度が急激に変化することから、ショックが生じ、被加工物のワークに加工跡が残る場合がある。
【０００７】
この問題点を改善するために、特許文献２，３には、指令された位置間を２〜５次関数の曲線で接続し、該曲線に沿って工具を移動させて、ショックの発生を防止して、滑らかな加工面を得るようにしている。しかし、この特許文献２，３に記載された方法は、指令された位置間全体を２〜５次関数の曲線で接続することによって、指令工具経路を修正するものであるから滑らかな加工面を得ることができるが、既存のパステーブルデータに対して適用するにはパステーブルデータをユーザが自ら修正する必要がある。
【０００８】
そこで、本発明は、工作機械のテーブル形式データ(パステーブルデータ)による運転において、既存のパステーブルデータをユーザが自ら修正することなく、工具経路の修正範囲を限定することで指令された工具経路を極力保持しつつも、滑らかな加工面を得ることができるようにするスムージング機能を備えた数値制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、時間、軸位置、あるいは主軸位置を基準値とし、該基準値に同期させる複数の軸の位置を基準値に対応させてテーブル形式データの指令データとしてメモリまたはネットワークで接続された記憶装置に格納しておき、テーブル形式データを順次読み出し、前記基準値と同期させる軸の位置を同期して制御する数値制御装置において、同期させる複数の軸のテーブル形式データを並行して先読みするテーブル形式データ先読み手段と、前記先読みしたテーブル形式データより工具経路を割出す工具経路割出し手段と、前記工具経路において速度の変化点を検出する速度変化点検出手段と、前記速度の変化点において補正を行う範囲を前記速度の変化点からの距離で指定する補正範囲指定手段と、前記工具経路上における補正範囲内と補正範囲外との境界位置を速度の変化点の前後に２つ求める境界位置算出手段と、速度の変化点の前後に求められた２つの境界位置間を、滑らかな工具経路に置き換える工具経路補正手段と、前記補正した工具経路に基づいてテーブル形式データを修正するテーブル形式データ修正手段とを有し、テーブル形式データによる運転でのスムージング機能を備えたものである。
【００１０】
請求項２に係る発明は、前記工具経路補正手段を、多次元関数または三角関数またはその組み合わせによって２つの境界位置間を滑らかな曲線の工具経路に置き換えるようにしたものである。  
請求項３に係る発明は、前記補正範囲指定手段を、パラメータ、入力信号、プログラム指令により、前記速度の変化点からの距離を指定するものとした。
【００１１】
又、請求項４に係る発明は、前記境界位置算出手段を、前記工具経路と、工具経路が２次元平面上に存在する場合は指定された距離を半径とする速度の変化点を中心にする円との交点を、工具経路が３次元空間上に存在する場合は指定された距離を半径とする速度の変化点を中心にする球面との交点を境界位置として求めるものとした。  
請求項５に係る発明は、前記補正範囲指定手段により指定された前記補正を行う範囲と、その前後の前記補正を行う範囲が重複する場合に、前記補正を行う範囲を前記速度の変化点間の距離の半分にする補正範囲調整手段を備えるものとした。  
請求項６に係る発明は、前記テーブル形式データ先読み手段を、順次、読み出された指令データのうち基準値が１番小さい軸の次の指令データを読み出すものとした。
【発明の効果】
【００１２】
テーブル形式データで指令された工具経路において、速度変化点近傍の小さな範囲を補正して、滑らかな工具経路に補正されるから、速度の急激な変更に伴うショックの発生を防止して、滑らかな加工面を得ることができると共に、工具経路を補正する範囲が小さく、小さな補正範囲以外は、補正前のテーブル形式データによる指令どおりに基準値と同期をとって、各軸が駆動されるので、基準値と各軸との同期は完全に保たれるものである。
ユーザが補正範囲を指定することで、数値制御装置により自動的にテーブル形式データの補正が行われるため、既存のテーブル形式データに対して適用することも容易である。
【図面の簡単な説明】
【００１３】
【図１】テーブル形式データに基づいて工作機械を運転するときの制御ブロック図である。
【図２】図１のブロック図におけるパステーブルに記憶された指令データの一例である。
【図３】図２に示すパステーブルに記憶された指令データに基づく工具経路の説明図である。
【図４】補正範囲の始点と終点を決める補正範囲の円と工具経路の交点の説明図である。
【図５】補正されたパステーブルの指令データの例を示す図である。
【図６】補正された工具経路の説明図である。
【図７】補正範囲の半径の値を調整する例を説明する説明図である。
【図８】３次元空間における工具経路と補正範囲の球面との交点の説明図である。
【図９】本発明の一実施形態のパステーブル運転を実行する数値制御装置の要部ブロック図である。
【図１０】本発明の実施形態におけるテーブル形式データの補正処理のアルゴリズムを示すフローチャートである。
【図１１】同テーブル形式データの補正処理における補正範囲の始点と終点を算出する処理のアルゴリズムを示すフローチャートである。
【発明を実施するための形態】
【００１４】
はじめに、本発明の動作制御の概要を説明する。本発明では、同期をとる工具経路に関係する全ての軸のパステーブルを並行して先読みし、工具経路の割出しを行い、速度変化点を検出し、該速度変化点の前後の所定範囲内の工具経路を補正する。テーブル形式データによる運転では、基準値と該基準値に同期させる軸の座標値との同期をとることが非常に重要であるため、補正後の同期が保たれることを保証する必要がある。そのため、工具経路の補正を行う範囲(補正範囲)を、速度変化点から一定の距離内に限定し、それ以外の補正を行わない箇所については、基準値と各軸の座標値の同期は完全に保たれるようにしている。
【００１５】
図１に示した従来例でのテーブル形式データに基づく運転において、図２に示すＸ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚに記憶されたパステーブルデータによる補正前の工具経路は前述したように図３に示すものとなる。この工具経路中において、工具経路に関係するＸ軸パステーブルＴｘ、Ｚ軸パステーブルＴｚのいずれかにおいて指令がある点(基準値Ｌ＝０．０、Ｌ１＝１００．０、Ｌ２＝１５０．０、Ｌ３＝２００．０)で、速度が変化する可能性がある。実際に速度変化があるか否かは、指令前後の速度成分を比較することによって判別できる。例えば図２、図３に示す例で、基準値が時間(ｍｓｅｃ)、Ｘ軸、Ｚ軸の位置指令の単位が「ｍｍ」とすると、基準値がＬ＝１００．０の前後における速度のＸ軸、Ｚ軸成分は次のようになる。なお、基準値が主軸位置等の他の軸の位置である場合も、同様に、この基準値に対応する速度として求められる。
Ｌ＝１００．０(位置Ｐ１)より前の速度
Ｘ軸成分＝０．２００(ｍｍ)／１００(ｍｓｅｃ)＝０．００２(ｍｍ／ｍｓｅｃ)
Ｚ軸成分はＬ１５０．０(ｍｓｅｃ)で３．０００(ｍｍ)に達するように移動している途中であるので
Ｚ軸成分＝３．０００(ｍｍ)／１５０．０(ｍｓｅｃ)＝０．０２０(ｍｍ／ｍｓｅｃ)
Ｌ＝１００．０より後の速度
Ｘ軸成分＝２．８００(ｍｍ)／１００(ｍｓｅｃ)＝０．０２８(ｍｍ／ｍｓｅｃ)
Ｚ軸成分は変化がないから
Ｚ軸成分＝３．０００(ｍｍ)／１５０．０(ｍｓｅｃ)＝０．０２０(ｍｍ／ｍｓｅｃ)
基準値Ｌ＝１００．０の前後では、Ｘ軸成分が異なることから、位置Ｐ１は速度変化点と判断できる。以上のように、指令前後の速度成分を比較することによって、速度変化点か否かの判別ができる。
【００１６】
次に、この速度変化点前後の工具経路の補正を行う、補正範囲を限定するために、速度変化点より一定の範囲内だけ補正するようにする。この補正範囲は、半径ｒを指定し該半径ｒの円と工具経路の交点を求め、交点間を補正範囲とする。すなわち、交点は、工具経路上における補正範囲内と補正範囲外との境界位置を示すもので、交点を求めることはこの境界位置を求めることを意味する。例えば、補正範囲（半径ｒ）を０．１００とし、Ｌ＝１００．０（速度変化点Ｐ１）では、図４に破線で示す円が補正範囲となる。
【００１７】
交点１は、速度変化点Ｐ０(Ｘ＝０．０００、Ｚ＝０．０００)と速度変化点Ｐ１(Ｘ＝０．２００、Ｚ＝２．０００)とを結ぶ直線と、速度変化点Ｐ１(Ｘ＝０．２００、Ｚ＝２．０００)を中心とした半径０．１００の円との交点として求められ、交点２は、速度変化点Ｐ１(Ｘ＝０．２００、Ｚ＝２．０００)と次の速度変化点である位置Ｐ２(Ｘ＝１．６００、Ｚ＝３．０００)を結ぶ直線と前記円との交点として求められる。
【００１８】
交点１の座標(Ｘ，Ｚ)＝(０．１９００４９６・・，１．９００４９６３・・)
交点１に到達する時点の基準値Ｌは、基準値Ｌ＝０．０からＬ＝１００．０になる間にＺ軸は０．０００から２．０００に比例して変化するので、Ｚ軸が交点１のＺ軸座標値１．９００４９６３・・に達する値として求められる。  
交点１の基準値Ｌ＝１．９００４９６３・・×１００／２．０００＝９５．０２４８１４０・・(ｍｍ)
同様に、
交点２の座標(Ｘ，Ｚ)＝(０．２８１３７３３・・，２．０５８１２３８・・)
交点２の基準値Ｌ＝２．０５８１２３８・・×５０／１．００＝１０２．９０６１９１０・・(ｍｍ)
次に、こうして求めた境界位置の交点１、交点２を工具経路の始点、終点とするＸ軸の工具経路をＸ軸パステーブルＴｘの指令データに追加して補正する。なお、以下、始点と終点が指令された工具経路をパスという。交点１は、速度変化点Ｐ０(Ｘ＝０．０００、Ｚ＝０．０００)と速度変化点Ｐ１(Ｘ＝０．２００、Ｚ＝２．０００)とを結ぶ線(パス)上に存在するものであるから、速度変化点Ｐ０(Ｌ＝０．０００、Ｘ＝０．０００)から交点１(Ｌ＝９５．０２４８１４０・・、Ｘ＝０．１９００４９６・・)までのパスのＸ軸速度はそれまでと同じ速度(０．００２ｍｍ／ｍｓｅｃ)で、交点１(Ｌ＝９５．０２４８１４０・・、Ｘ＝０．１９００４９６・・)から交点２(Ｌ＝１０２．９０６１９１０・・、Ｘ＝０．２８１３７３３・・)までのパスは、初速が交点１での直前のパスのＸ軸速度(０．００２ｍｍ／ｍｓｅｃ)で、終速は速度変化点Ｐ１から速度変化点Ｐ２までのパスのＸ軸速度(０．０２８ｍｍ／ｍｓｅｃ)となるような３次関数で接続する。また、交点２(Ｌ＝１０２．９０６１９１０・・、Ｘ＝０．２８１３７３３・・)から速度変化点Ｐ２(Ｌ＝１５０．０、Ｘ＝１．６００)までは、それまで速度変化点Ｐ１から速度変化点Ｐ２まで指令されていた速度(０．０２８ｍｍ／ｍｓｅｃ)とする。このように交点１から交点２までのパスを追加したＸ軸パステーブルの指令データは図５に示すものとなる(図５では、追加して修正した箇所のデータを示している)。
【００１９】
また、補正対象の速度変化点前後でＺ軸の速度に変化があれば、Ｚ軸パステーブルＴｚで指令データも同様に補正する。上述した例では、補正対象の速度変化点(Ｐ１)の前後でＺ軸の速度は０．０２０ｍｍ／ｍｓｅｃで変化がないためＺ軸パステーブルＴｚの指令データの補正は行わない。  
なお、テーブル形式データによる運転において、２点間を３次関数で接続する技術は、特許文献２に記載され公知であるのでその説明を省略する。また、２点間を４次関数や５次関数等のより複雑な関数を採用してもよく、これにより、２点間で加速度に変化がある場合に加速度を連続的に変化させることや、速度変化点を通るような工具経路に補正すこともできる。テーブル形式データによる運転において、このような４次関数や５次間数で接続する技術は、特許文献３に記載され公知である。さらに、同様な補正方法として、三角関数を用いることや、複数の関数の組合せを用いることもできる。
【００２０】
こうして補正されたパステーブルを用いてテーブル形式データによる運転が行われると、補正範囲の工具経路は、図６に示すように滑らかに補正され、補正対象外の工具経路については、従来通りの基準値Ｌと各軸の座標値との同期が完全に保たれる。
【００２１】
速度変化点Ｐ１(基準値Ｌ＝１００．０)での補正について説明したが、速度変化点については全て同様に補正するものである。また、補正範囲の半径ｒはパラメータで指定することにより、又は必要に応じてプログラム指令や入力信号等により指令するようにして、これにより補正範囲を動的に変更できるようにする。さらに、微小範囲内に速度変化点が連続している場合は、補正範囲が重なり合う場合が生じる。これを回避するために、補正範囲の半径ｒの値を調整するようにしている。例えば、以下のように補正範囲の半径を調整する。
指令された半径ｒ≦０．５×の速度変化点間の距離の場合
指定された半径ｒの値を使用
指令された半径ｒ＞０．５×の速度変化点間の距離の場合
使用する半径値を０．５×の速度変化点間の距離とする。
【００２２】
図７は、こうした補正範囲を調整したときの工具経路の説明図であり、補正範囲Ａ１、Ａ２、Ａ５は、速度変化点間の距離が長く、この距離がパラメータもしくはプログラムで指令された半径ｒの２倍以上あることから、指令された半径ｒを補正範囲の半径として使用しているが、補正範囲Ａ３、Ａ４では、速度変化点間の距離が指令された半径ｒの２倍以上ないため、速度変化点間の距離Ｄの１／２を補正範囲の半径ｒ’(＝０．５Ｄ)としている。
【００２３】
以上の説明では、速度変化点を移動方向の変わる点としているが、移動方向は変化しないが速度の絶対値(速さ)が変化する場合(速度のＸ成分とＺ軸成分が同比率で変化する場合で、ＸＺの合成速度が変化する場合)にも、速度変化点として、上述したような補正を行うことによって急激な速度変化によるショックの発生や加工面品質への悪影響を軽減させる。
【００２４】
また、本発明は、３次元空間にも適用できるもので、テーブル形式データによる運転による３次元加工にも適用できるものである。  
図８は、Ｘ軸、Ｙ軸、Ｚ軸の３次空間での工具経路における速度変化点の前後における工具経路の補正の説明図である。
【００２５】
補正対象の速度変化点のＸＹＺ座標を(Ｃｘ，Ｃｙ，Ｃｚ)、
該補正対象の速度変化点より１つ前の速度変化点からの速度ベクトルを(Ｖｘ，Ｖｙ，Ｖｚ)、
該補正対象の速度変化点より１つ後の速度変化点への速度ベクトルを(Ｖ’ｘ，Ｖ’ｙ，Ｖ’ｚ)、
とすると、前の速度変化点と補正対象の速度変化点を結ぶ直線は次の(１)式で表される。
(Ｘ，Ｙ，Ｚ)＝(Ｃｘ，Ｃｙ，Ｃｚ)＋ｔ(Ｖｘ，Ｖｙ，Ｖｚ)・・・・・(１)
したがって、該直線上の点の座標値(Ｘ，Ｙ，Ｚ)は次の(２)式のとおりである。
(Ｘ，Ｙ，Ｚ)＝(Ｃｘ＋ｔ・Ｖｘ，Ｃｙ＋ｔ・Ｖｙ，Ｃｚ＋ｔ・Ｖｚ)・・・・・  (２)
補正範囲を半径ｒの球面で指定し、補正対象の速度変化点(Ｃｘ，Ｃｙ，Ｃｚ)を中心とする球面の数式は次の(３)式で表される。
（Ｘ−Ｃｘ）２＋（Ｙ−Ｃｙ）２＋（Ｚ−Ｃｚ）２＝ｒ２・・・・・  (３)
(３)式に(２)式で示される直線上の点の座標値(Ｘ，Ｙ，Ｚ)を代入すると、(４)式に示されるように、該直線と球面の交点(境界位置)におけるｔの値が求められる。
ｔ＝±ｒ／[（√(Ｖｘ２＋Ｖｙ２＋Ｖｚ２)  ］・・・・・  (４)
（４）式の通り直線と球面の交点は２点求められるが、前の速度変化点から補正対象の速度変化点に向かう直線上にある交点１は速度変化点よりもベクトルの負方向に存在するため、交点１のｔの値は次の（５）式で表される。
ｔ＝−ｒ／[（√(Ｖｘ２＋Ｖｙ２＋Ｖｚ２)  ］・・・・・  (５)
従って、(５)式のｔを(２)式に代入して、交点１の座標値は次の（６）式となる。
【００２６】
【数６】
2015121966.tif 000003
【００２７】
同様に交点２におけるｔの値と座標値を求めると、交点２は、補正対象の速度変化点よりもベクトルの正方向に存在するために交点２のｔの値は次の(７)式となり、交点２の座標値は(８)式で表される。
ｔ＝ｒ／[（√(Ｖ’ｘ２＋Ｖ’ｙ２＋Ｖ’ｚ２)  ］・・・・・  (７)
【００２８】
【数８】
2015121966.tif 000004
【００２９】
また、交点１、交点２に到達する基準値Ｌの値は、補正対象の速度変化点の基準値にそれぞれのｔの値を加算した値として求まる。
【００３０】
このようにして、境界点である交点１、交点２におけるＸ軸、Ｙ軸、Ｚ軸のパステーブルの基準値と座標値が求められるため、２次元平面における補正と同様に、パステーブルにおける交点１と交点２の間を多次元関数又は三角関数、又はその組み合わせを用いて、滑らかに曲線で接続するように補正する。
【００３１】
速度変化点で、工具経路を補正するには、各パステーブルに記憶されている指令データを実行する前にパステーブルのデータを補正しておく必要があり、パステーブルを先行して読み出す必要がある。パステーブルの先読みは、各軸のパステーブルから基準値Ｌ＝０を読み出し、次からは、読み出した基準値の中で、一番小さい基準値を指令している軸の次の指令データを読み出し、一番小さい基準値が複数の軸に指令されていれば(同じ基準値が複数の軸に対して指令されている)、これを同時に読み出す。この方法で少なくとも３回先読みすれば、３つの基準値の指令データが読み出され、３つの基準値が読み出された軸は、最後に読み出した基準値より１つ前に読み出した基準値では速度変化点となる可能性がある。例えば３回の先読みで、ある１つの軸（例えばＸ軸）のパステーブルのみ基準値Ｌ０、Ｌ１、Ｌ２が読み出されたとき、基準値Ｌ０〜Ｌ１およびＬ１〜Ｌ２の工具経路（パス）がわかるから基準点Ｌ１は速度変化点かどうか判別できる。この場合は他の軸は、基準値Ｌ１では他の軸(例えばＹ軸、Ｚ軸)は移動中となるため、速度変化はない。また他の軸も２回目の先読みで基準値Ｌ１が読み出されていたとき(複数の軸に同じ基準Ｌ１が指令されている場合)は、その軸に対しても次の指令データが読み出されるから基準値Ｌ１の前後のパスがわかるので速度変化点かどうか判別できる。以後１回読み出す毎に基準値Ｌ２、Ｌ３・・・で速度変化があるか否かの判断ができる(なお、Ｌ０＜Ｌ１＜Ｌ２＜Ｌ３＜・・・である)。
【００３２】
ただし、図７に示すように速度変化点が近接しているか否かの判断を、１つの速度変化点の補正範囲と、前後の速度変化点の補正範囲と重ならないか判断する必要があるから、２つ以上の未補正の速度変化点を求め、基準値が一番小さい速度変化点の補正範囲を決定する。なお、先行して読み出した結果の中に速度変化のない指令が含まれていた場合、パスに影響しないためその指令を除去し、さらに先行して読み出しを継続する。以下次の速度変化点が読み込まれるごとに、次に小さい基準値の速度変化点に対して工具経路の補正が行われる。
【００３３】
図９は、本発明の一実施形態のパステーブル運転を実行する数値制御装置の要部ブロック図である。ＣＰＵ１１は数値制御装置１０を全体的に制御するプロセッサである。ＣＰＵ１１はＲＯＭ１２に格納されたシステムプログラムを、バス１９を介して読み出し、該システムプログラムに従って数値制御装置１０の全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及び表示器／ＭＤＩユニット２０を介してオペレータが入力した各種データが格納される。ＳＲＡＭ１４は図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶装置が保持される不揮発性メモリとして構成される。
【００３４】
ＳＲＡＭ１４中には、前述した各テーブル形式データ（パステーブル）が予め格納されている。なお、本発明において、パステーブルの格納場所は数値制御装置内の記憶装置ではなく、例えば、ネットワークで接続された外部の記憶装置に、パステーブルのデータを記憶させておき、ネットワークを介してパステーブルのデータを逐次読み出すようにしてもよい。
【００３５】
インタフェース１５は、数値制御装置１０と図示しない外部機器との接続を可能とするものである。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１０内に内蔵されたシーケンスプログラムで工作機械のアクチュエータ等の補助装置にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に設けられた操作盤の各種スイッチ等からの信号を受け、必要な信号処理を行った後、ＣＰＵ１１に渡す。表示器／ＭＤＩユニット２０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット２０のキーボードからの指令、データを受け入れてＣＰＵ１１に渡す。
【００３６】
各送り軸の軸制御回路３０、３１、３２はＣＰＵ１１からの各送り軸の移動指令を受けて、各送り軸の指令をサーボアンプ４０、４１、４２に出力する。サーボアンプ４０，４１，４２はこの指令を受けて、各送り軸のサーボモータ５０ｘ、５１ｙ、５２ｚを駆動する。各送り軸のサーボモータ５０ｘ、５１ｙ、５２ｚは図示しない位置・速度検出器を内蔵し、この位置・速度検出器からの位置、速度フィードバック信号を軸制御回路３０、３１、３２にフィードバックし、位置・速度のフィードバック制御を行う。なお、図９では、この位置・速度のフィードバックについて記載していない。
【００３７】
また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、スピンドルモータ（主軸モータ）６２を指令された回転速度で回転させる。ポジションコーダ６３は、スピンドルモータ（主軸モータ）６２の回転に同期して帰還パルス（基準パルス）及び１回転信号をスピンドル制御回路６０にフィードバックし、速度制御を行う。この帰還パルス（基準パルス）及び１回転信号は、スピンドル制御回路６０を介してＣＰＵ１１によって読み取られるが、基準値を主軸位置とした場合、帰還パルス（基準パルス）はＲＡＭ１３に設けられたカウンタ（図１の基準値カウンタに対応するカウンタ）で計数され、基準値として使用される。なお、主軸の指令パルスを計数して基準値としても利用できる。
【００３８】
また、基準値を時間とした場合は、ＲＡＭ１３に設けられたカウンタは、数値制御装置１０が有する計時機能から得られる時間信号のパルス数を計数して基準値として利用する。あるいは、送り軸の位置を基準値とした場合、送り軸(Ｘ軸又Ｚ軸)からのフィードバック信号から得られるパルス数を計数し、パステーブル運転を実行する際の基準値とする。あるいは、送り軸の指令パルスを計数して基準値としてもよい。
【００３９】
図１０、図１１は、パステーブルデータの補正処理のアルゴリズムを示すフローチャートである。  
まず、工具経路に関係する全てのパステーブルの先読みを並行して行う（ステップＳ１）、先読みしてパステーブルから読み取った各軸の速度を合成して工具経路を割出す（ステップＳ２）、工具経路の中に、２つ以上の未補正の速度変化点が存在するか、又は次がパステーブルの終点か判別する（ステップＳ３）。２つ以上の未補正の速度変化点がなければ、ステップＳ１に戻る。こうして先読みして、２つ以上の未補正の速度変化点が存在するようになると、その未補正の速度変化点の内、基準値の小さい方を補正対象の速度変化点に設定する（ステップＳ４）。次に、この設定された補正対象の速度変化点に対する補正範囲の始点と終点の算出処理を実行する（ステップＳ５）。補正範囲の始点と終点の算出処理は、図１１に示す処理であり、後述する。
【００４０】
補正範囲の始点と終点が求まると、補正対象の速度変化点において、補正範囲の始点と終点を多次元関数又は三角関数又はそれらの組合せにより、これら始点と終点を滑らかに接続するように各軸のパステーブルを修正する（ステップＳ６）。  
そして、パステーブルの終点まで読み込まれ、パステーブルの終点まで補正が完了したか否か判断され（ステップＳ７）、補正完了でなければ、ステップＳ１に戻り、ステップＳ１以下の処理を行う。そして、パステーブルの終点まで読み込まれ、パステーブルの終点まで補正が完了すれば、この処理は終了する。
【００４１】
ステップＳ５の補正範囲の始点と終点を算出する処理は図１１に示す処理であり、まず、補正範囲の半径ｒにパラメータまたはプログラムで指定された値を代入する（ステップＳＢ１）。
【００４２】
そして、この補正範囲の半径ｒが、補正対象の速度変化点と前の速度変化点間の距離Ｄの１／２より大きいか判断する（ステップＳＢ２）。すなわち当該設定しようとしている補正範囲と前の速度変化点の補正範囲と重複しないかを判断する。補正範囲の半径ｒが０．５Ｄ以下の場合には、ステップＳＢ４に進み、補正範囲の半径ｒが０．５Ｄより大きい場合には、補正範囲の半径ｒを０．５Ｄに変更する（ステップＳＢ３）。次に、補正範囲の半径ｒが補正対象の速度変化点と次の速度変化点間の距離Ｄ’の１／２より大きいか判断する（ステップＳＢ４）。これは当該設定しようとしている補正範囲と次の速度変化点の補正範囲と重複しないかを判断するものである。補正範囲の半径ｒが０．５Ｄ’以下の場合には、ステップＳＢ６に進み、補正範囲の半径ｒが０．５Ｄ’より大きい場合には、補正範囲の半径ｒを０．５Ｄ’に変更する（ステップＳＢ５）。
【００４３】
こうして求められた半径ｒの円(３次元空間では球面)の補正範囲と、前の速度変化点と補正対象の速度変化点間の直線との交点の座標値を求め、この座標値を補正範囲の始点とする。また、交点の座標値(補正範囲の始点)に到達する基準値Ｌを算出し、この求めた基準値が補正範囲の始点の基準値となる（ステップＳＢ６）。
【００４４】
求められた半径ｒの円(３次元空間では球面)の補正範囲と、補正対象の速度変化点間の直線と次の速度変化点との交点の座標値を求め、この座標値を補正範囲の終点とする。また、この交点の座標値(補正範囲の終点)に到達する基準値Ｌ(補正範囲の終点の基準値)を算出し（ステップＳＢ７）、図１０に示す処理（ステップＳ６）に復帰する。
【００４５】
なお、図１０、図１１でパステーブルの指令データの補正処理について説明したが、このパステーブルの指令データの補正処理が全て完了したあとにパステーブル運転を実行してもよく、また、この図１０、図１１でパステーブルの指令データを先読みしながら、この補正されたパステーブルの指令データを使用してパステーブル運転を実行してもよい。この場合、補正処理が実行処理に間に合わなければ、既に特許文献４等で公知になっている基準値のカウント停止や待ち合わせの技術を用いればよい。
【符号の説明】
【００４６】
３    基準値カウンタ
Ｔｘ  Ｘ軸パステーブル
Ｔｚ  Ｚ軸パステーブル
４ｘ  Ｘ軸パステーブル補間処理部
４ｚ  Ｚ軸パステーブル補間処理部
５ｘ  Ｘ軸のサーボモータ
５ｚ  Ｚ軸のサーボモータ
１０  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  ＳＲＡＭ
１５  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
１８  インタフェース
１９  バス
２０  表示機／ＭＤＩユニット
３０  軸制御回路
３１  軸制御回路
３２  軸制御回路
４０  サーボアンプ
４１  サーボアンプ
４２  サーボアンプ
５０ｘ，５０ｙ，５０ｚ  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
【図６】
2015121966.tif 000005
【図１】
2015121966.tif 000006
【図２】
2015121966.tif 000007
【図３】
2015121966.tif 000008
【図４】
2015121966.tif 000009
【図５】
2015121966.tif 000010
【図７】
2015121966.tif 000011
【図８】
2015121966.tif 000012
【図９】
2015121966.tif 000013
【図１０】
2015121966.tif 000014
【図１１】
2015121966.tif 000015