(57)【特許請求の範囲】
【請求項１】
ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために移送する複数の移送装置と、前記ワークの加工時における前記移送対象物の通常の移送とは別に当該移送対象物の速度変化を伴う動作を指示するための特別指令を外部から入力するための指令入力装置とを備え、前記各移送装置は、前記移送対象物を支持するための支持体と、その支持体を特定の移送軸方向に移送することにより前記移送対象物を移送する移送部とをそれぞれ有する工作機械に設けられ、前記各移送部に特定周期毎の指令パルスを出力することにより前記各移送装置の数値制御を行う数値制御装置であって、
前記工具が前記ワークの加工時に通るべき軌跡が前記ワーク上に固定されたワーク座標系における前記工具の位置座標とその工具の軌跡に沿った積算長である媒介変数との関数として表されたツールパスを含む加工プログラムを記憶する記憶部と、
前記記憶部に記憶された前記加工プログラムから前記ツールパスを求めるツールパス導出部と、
前記ツールパス導出部によって求められた前記ツールパスに含まれる複数の指令点の中で前記ツールパスの前記媒介変数による一次微分値の変化が連続でかつ前記ツールパスの前記媒介変数による二次微分値の変化が不連続になっている指令点と前記ツールパスの前記媒介変数による一次微分値の変化が不連続になっている指令点とのうち少なくとも一方の指令点を補間対象点とし、前記ツールパスのうち前記補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、
前記移送対象物の加減速条件と前記パス局部フィルタによって局部補間された後のツールパスである局部補間後ツールパスとに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、
前記工作機械の起動後、前記指令入力装置に前記特別指令が入力されない場合には前記特定周期と等しい基準単位時間毎に進行する基準時刻を導出し、前記指令入力装置に前記移送対象物の減速を指示する前記特別指令が入力された場合にはその特別指令が指示する減速に応じた度合いで前記基準単位時間が短くなるように調整した基準時刻を導出し、前記指令入力装置に前記移送対象物の増速を指示する前記特別指令が入力された場合にはその特別指令が指示する増速に応じた度合いで前記基準単位時間が長くなるように調整した基準時刻を導出し、前記媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点での媒介変数に対応する前記ワーク座標系での前記局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から前記各移送部に対応する前記各移送軸における位置座標を求め、その求めた前記各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の前記各移送軸方向への前記支持体の移送量を求めてその基準単位時間毎の移送量を前記特定周期毎の前記指令パルスとするパルス補間部と、
前記パルス補間部によって求められた前記特定周期毎の前記指令パルスに応じて前記各移送部に対応する前記支持体を移送させる制御部とを備える、数値制御装置。
【請求項２】
前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して繋がるように前記ツールパスの前記補間区間を局部補間する、請求項１に記載の数値制御装置。
【請求項３】
前記パス局部フィルタは、前記局部補間後ツールパスが当該局部補間後ツールパスの前記媒介変数による一次微分が前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間する、請求項２に記載の数値制御装置。
【請求項４】
前記パス局部フィルタは、前記局部補間後ツールパスが当該局部補間後ツールパスの前記媒介変数による二次微分が前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間する、請求項３に記載の数値制御装置。
【請求項５】
前記パス局部フィルタは、前記補間区間を前後に特定の区間幅ずつ拡大した区間を調整区間として設定し、前記ツールパスのうち隣り合う前記指令点間の部位を補間ブロックとしてそのツールパスから前記調整区間に少なくとも一部が含まれる複数の補間ブロックを選択し、その選択した複数の補間ブロックのそれぞれについて補間処理を行うことによってその補間処理後の各補間ブロックを示す補間後関数を求め、その求めた各補間ブロックの補間後関数を積算することによって補間後積算関数を求め、その補間後積算関数のうち前記補間区間に相当する区間を抜き出すことによって、前記補間区間内の前記補間対象点において不連続となっている微分の変化が連続的な変化となるように補間した誤差付き補間パスを求める局部補間部と、その局部補間部によって求められた前記誤差付き補間パスの前記補間区間の始点に対応する値が局部補間していない前記ツールパスの前記補間区間の始点の値と一致し、かつ、その誤差付き補間パスの前記補間区間の終点に対応する値が局部補間していない前記ツールパスの前記補間区間の終点の値に一致するように当該誤差付き補間パスを補正し、その補正後の補間パスを前記ツールパスの前記補間区間と置換する誤差補正部とを含み、
前記局部補間部は、前記補間ブロック内の前記媒介変数が異なる各第１位置を中央とし且つ特定の区間幅を有する積分区間を設定し、その設定した積分区間内の前記媒介変数が異なる各第２位置での前記ツールパスの前記媒介変数による一次微分を求め、その各第２位置での一次微分を対応する第２位置を中央とし且つ前記積分区間と等しい区間幅を有する分配区間内に特定の分配関数に基づいて分配した場合に得られる分配後微分関数を前記積分区間にわたって積分し、それによって前記補間後関数を求める、請求項２〜４のいずれか１項に記載の数値制御装置。
【請求項６】
前記パス局部フィルタは、前記ツールパスに前記補間対象点が複数存在し、隣り合う前記補間対象点の前記補間区間同士が重複している場合には、それら重複する補間区間のうち最も前記ツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを１つの補間区間として、その補間区間内の前記ツールパスを局部補間する、請求項１〜５のいずれか１項に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関するものである。
【背景技術】
【０００２】
従来、各種工作機械では、ワークやそのワークを加工するための工具を移送する移送装置を加工プログラム（ＮＣプログラム）に従って数値制御することによりワークの加工が行われている。下記特許文献１には、そのような移送装置の数値制御を行う数値制御装置が開示されている。
【０００３】
特許文献１に示された数値制御装置では、加工プログラムからワーク上に固定された座標系における工具の位置座標の変化を媒介変数の関数として表すツールパスを求めるとともに、そのツールパスから移送装置の各移送軸毎の移送軸パスを求め、その求めた各移送軸毎の移送軸パスに基づいて基準単位時間毎の各移送軸における移送量を求め、その求めた移送量のデータを指令パルスとして各移送軸に対応する移送装置のサーボモータへ出力することにより各移送装置の制御を行っている。そして、この数値制御装置では、移送軸パスに対してブロック滑らか補間とコーナー滑らか補間とを行い、それらの滑らか補間後の移送軸パスからパルス補間により基準単位時間毎の各移送軸における移送量を求めている。なお、前記ブロック滑らか補間は、多数の指令点を直線で結んだ形状の移送軸パスを各指令点を通る滑らかな曲線に補間し、前記コーナー滑らか補間は、所定の指令点においてその前後で位置座標の変化量が急変しているような移送軸パスのコーナー部が滑らかなコーナーとなるようにそのコーナー部を補間するものである。
【０００４】
しかし、この特許文献１に記載の技術では、位置座標の変化量が短い間隔で繰り返し急変しているような思わぬ異常データ（ノイズ等）が移送軸パスに含まれている場合には、その異常データの部分を滑らかに補間することは困難である。そして、移送軸パスにそのような異常データが含まれており、その移送軸パスに従って移送装置が制御された場合には、移送装置の動作が当該異常データに対応する部分で急変し、加工機械に機械ショックが発生する。このため、この機械ショックの要因となる移送軸パス中の異常データを補正することが重要な課題となる。
【０００５】
そこで、下記特許文献２には、このような課題を解決することが可能な数値制御装置が示されている。
【０００６】
この特許文献２の数値制御装置では、補間後加減速技術を用いている。この補間後加減速は、各移送軸パスから補間演算（パルス補間）によって得られた、各移送軸用のサーボモータへの駆動指令に対して加減速処理を行うものである。この補間後加減速によれば、パルス補間によって得られた駆動指令に前記異常データが含まれていても、その後の加減速処理によってその異常データを補正することができ、機械ショックの発生を抑制することが可能である。しかし、その反面、この補間後加減速では、ワークの加工形状の誤差が発生するという欠点がある。具体的には、この特許文献２における補間後加減速では、移送軸パスのうち加減速処理を適用する部分を限定していないため、当該加減速処理が駆動指令の異常データ部分以外の部分にも適用され得る。このため、例えば駆動指令のうち加工プログラムにおいて実際に加速が指示されている部分に当該加減速処理が適用されてその加速率を緩和するような処理が行われた場合や、加工プログラムにおいて実際に減速が指示されている部分に当該加減速処理が適用されて減速率を緩和するような処理が行われた場合には、加工プログラムが指示する加工形状に対して形状誤差が発生する。
【０００７】
そこで、下記特許文献３には、さらに進化した補間後加減速処理を行う数値制御装置が示されている。この数値制御装置は、パルス補間後の指令パルスに残っている異常データ部分を検出して、その検出した異常データ部分の近傍のみを局部的に加減速処理する局部加減速フィルタを備えている。この数値制御装置によれば、異常データに起因する速度の急変は加減速処理により緩和されて機械ショックが抑制されるとともに、その異常データの近傍以外には加減速処理が行われないため加工形状の誤差の発生は抑制される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２２５８２５号公報
【特許文献２】特開２０１０−１４０３１２号公報
【特許文献３】特開２０１０−１８２１５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、工作機械では、一般的に、移送対象物（ワーク及び工具）の加減速や緊急停止、再始動を指示する特別指令を入力するための指令入力装置が設けられている。オペレータ等がこの指令入力装置により特別指令を入力することで加工プログラムに従った移送対象物の通常の移送とは別にその移送対象物の加減速や緊急停止、再始動が実施可能となっている。このような指令装置に特別指令が入力された場合には、例えば、上記特許文献３の数値制御装置において、移送軸パスを特別指令の内容に応じて変更することで、その特別指令に応じた移送対象物の加減速や緊急停止、再始動を移送装置に実施させる。
【００１０】
しかし、この場合には、指令入力装置に特別指令が入力されてから実際にその特別指令に対応する移送対象物の加減速、緊急停止又は再始動が行われるまでの応答性が悪化する虞がある。具体的には、指令入力装置に特別指令が入力されて移送軸パスが変更されると、前記パルス補間の処理と、そのパルス補間後の局部加減速処理とをやり直すことになるため、それらの処理のための再演算に時間が掛かり、その結果、特別指令が入力されてから実際にその特別指令に対応した加減速、緊急停止又は再始動が行われるまでの応答性が悪化する。
【００１１】
本発明は、上記の課題を解決するためになされたものであり、その目的は、工作機械において、ワークの加工時の移送対象物の通常の移送とは別に特別指令装置に入力された特別指令に応じて移送対象物の速度変化を伴う動作を実施する場合に、その特別指令の入力時点からそれに応じた動作が実行されるまでの応答性を向上しつつ、加工形状の誤差を抑制することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本願発明者は、パルス補間後の局部加減速処理により異常データ部分を局部的に加減速処理したパルス列について、そのパルス列の単位時間の長さを指令入力装置に入力された特別指令の内容に応じて変更し、その後、変更後の単位時間毎の移動量を表すパルス列を求める２回目のパルス補間を行うことによって各移送軸用のサーボモータへ出力するパルス列を導出する技術を思いついた。
【００１３】
この技術では、特別指令の内容に応じて各移送軸に共通の単位時間の長さを変更し、その変更した単位時間毎の移動量を２回目のパルス補間で求めることによって各移送軸用のサーボモータを駆動制御するためのパルス列を求めるため、各移送軸間の相対的な位置関係が維持された状態で特別指令の内容に応じた移送対象物の速度変化を伴う動作が実施される。このため、特別指令に応じた移送対象物の速度変化を伴う動作が実施されても、加工形状の誤差が発生するのを抑制することができる。さらに、この技術では、局部加減速処理後のパルス列の単位時間の長さを変更することで特別指令に対応する各移送軸用のサーボモータの駆動制御を実行するため、特別指令が入力されたことに応じて煩雑な局部加減速処理をやり直す必要がない。このため、特別指令の入力からそれに応じた動作が実際に実施されるまでの応答性を改善することができる。
【００１４】
しかしながら、この技術では、局部加減速処理前の１回目のパルス補間に加えて、特別指令に応じた単位時間の変更処理後に２回目のパルス補間を行う必要がある。このため、演算処理の簡略化という点において課題が残る。そこで、本願発明者は、このような課題を解決するために以下の数値制御装置を発明した。
【００１５】
この発明による数値制御装置は、ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために移送する複数の移送装置と、前記ワークの加工時における前記移送対象物の通常の移送とは別に当該移送対象物の速度変化を伴う動作を指示するための特別指令を外部から入力するための指令入力装置とを備え、前記各移送装置は、前記移送対象物を支持するための支持体と、その支持体を特定の移送軸方向に移送することにより前記移送対象物を移送する移送部とをそれぞれ有する工作機械に設けられ、前記各移送部に特定周期毎の指令パルスを出力することにより前記各移送装置の数値制御を行う数値制御装置であって、前記工具が前記ワークの加工時に通るべき軌跡が前記ワーク上に固定されたワーク座標系における前記工具の位置座標とその工具の軌跡に沿った積算長である媒介変数との関数として表されたツールパスを含む加工プログラムを記憶する記憶部と、前記記憶部に記憶された前記加工プログラムから前記ツールパスを求めるツールパス導出部と、前記ツールパス導出部によって求められた前記ツールパスに含まれる複数の指令点の中で前記ツールパスの前記媒介変数による一次微分値の変化が連続でかつ前記ツールパスの前記媒介変数による二次微分値の変化が不連続になっている指令点と前記ツールパスの前記媒介変数による一次微分値の変化が不連続になっている指令点とのうち少なくとも一方の指令点を補間対象点とし、前記ツールパスのうち前記補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、前記移送対象物の加減速条件と前記パス局部フィルタによって局部補間された後のツールパスである局部補間後ツールパスとに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、前記工作機械の起動後、前記指令入力装置に前記特別指令が入力されない場合には前記特定周期と等しい基準単位時間毎に進行する基準時刻を導出し、前記指令入力装置に前記移送対象物の減速を指示する前記特別指令が入力された場合にはその特別指令が指示する減速に応じた度合いで前記基準単位時間が短くなるように調整した基準時刻を導出し、前記指令入力装置に前記移送対象物の増速を指示する前記特別指令が入力された場合にはその特別指令が指示する増速に応じた度合いで前記基準単位時間が長くなるように調整した基準時刻を導出し、前記媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点での媒介変数に対応する前記ワーク座標系での前記局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から前記各移送部に対応する前記各移送軸における位置座標を求め、その求めた前記各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の前記各移送軸方向への前記支持体の移送量を求めてその基準単位時間毎の移送量を前記特定周期毎の前記指令パルスとするパルス補間部と、前記パルス補間部によって求められた前記特定周期毎の前記指令パルスに応じて前記各移送部に対応する前記支持体を移送させる制御部とを備える。
【００１６】
この数値制御装置では、１回のパルス補間で各移送部による支持体の移送を制御するための特定周期毎の指令パルスを求めることができ、演算処理を簡略化することができる。具体的には、この数値制御装置では、補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間を局部補間する処理と、特別指令の入力があった場合に基準単位時間の長さをその特別指令によって指示される移送対象物の速度変化に応じた長さに調整した基準時刻を導出する処理を、各移送部による支持体の移送を制御するための指令パルスを求めるパルス補間処理の前に行うため、ツールパスの局部補間処理及び基準時刻の導出処理の後、１回のパルス補間で各移送部による支持体の移送を制御するための指令パルスを求めることができる。その結果、この数値制御装置では、演算処理を簡略化することができる。
【００１７】
また、この数値制御装置では、パス局部フィルタにより補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間が局部補間されるため、補間対象点の前後において一次微分値の変化が不連続となっている場合にはその一次微分値の変化が連続的な変化となるように補間され、補間対象点の前後において二次微分値の変化が不連続となっている場合にはその二次微分値の変化が連続的な変化となるように補間される。補間対象点の前後において一次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の速度変化が不連続になるため、本発明の数値制御装置では、そのような補間対象点の前後における移送対象物の不連続な速度変化を連続的な速度変化に変えることができる。また、補間対象点の前後において二次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の加速度変化が不連続になるため、この数値制御装置では、そのような補間対象点の前後における移送対象物の不連続な加速度変化を連続的な加速度変化に変えることができる。従って、本発明の数値制御装置では、ツールパスに含まれていた移送対象物の急激な速度変化や加速度変化を引き起こす異常データ部分を補間してその補間対象点に対応する時点における移送対象物の速度変化及び加速度変化を緩やかにすることができ、その結果、ツールパス中の異常データに起因する機械ショックの発生を抑制することができる。
【００１８】
なお、この数値制御装置では、特別指令に応じて基準単位時間の長さを調整した基準時刻を導出し、その導出した基準時刻の基準単位時間毎の前記支持体の前記各移送軸についての移送量を求めてその移送量を特定周期毎の指令パルスとするため、その指令パルスに従って各移送部が支持体を移送することにより実施される移送対象物の移動では、元々のツールパスにおけるワーク座標系の各座標軸間の相対的な位置関係が維持される。このため、特別指令に伴う加工形状の誤差の発生を抑制することができる。また、この数値制御装置では、パス局部フィルタによりツールパスの補間区間のみが局部補間されるため、ツールパス全体について補間処理を行う場合と異なり、補間区間以外の区間において加工形状の誤差が生じるのを抑制することができる。
【００１９】
上記数値制御装置において、前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して繋がるように前記ツールパスの前記補間区間を局部補間することが好ましい。
【００２０】
この構成によれば、補間区間の始点の前後及び終点の前後がそれぞれ連続して繋がっている局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点及び終点において移送対象物を急激に動かすような各移送部の動作の急変が生じるのを防ぐことができる。
【００２１】
この場合において、前記パス局部フィルタは、前記局部補間後ツールパスが当該局部補間後ツールパスの前記媒介変数による一次微分が前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間することが好ましい。
【００２２】
この構成によれば、補間区間の始点の前後及び終点の前後で一次微分が連続して変化する局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度が連続して変化するように各移送部による対応する支持体の移送を制御することができる。
【００２３】
さらにこの場合において、前記パス局部フィルタは、前記局部補間後ツールパスが当該局部補間後ツールパスの前記媒介変数による二次微分が前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間してもよい。
【００２４】
この構成によれば、補間区間の始点の前後及び終点の前後でそれぞれ二次微分が連続して変化する局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の加速度が連続して変化するように各移送部による対応する支持体の移送を制御することができる。
【００２５】
上記パス局部フィルタが局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間を局部補間する構成において、前記パス局部フィルタは、前記補間区間を前後に特定の区間幅ずつ拡大した区間を調整区間として設定し、前記ツールパスのうち隣り合う前記指令点間の部位を補間ブロックとしてそのツールパスから前記調整区間に少なくとも一部が含まれる複数の補間ブロックを選択し、その選択した複数の補間ブロックのそれぞれについて補間処理を行うことによってその補間処理後の各補間ブロックを示す補間後関数を求め、その求めた各補間ブロックの補間後関数を積算することによって補間後積算関数を求め、その補間後積算関数のうち前記補間区間に相当する区間を抜き出すことによって、前記補間区間内の前記補間対象点において不連続となっている微分の変化が連続的な変化となるように補間した誤差付き補間パスを求める局部補間部と、その局部補間部によって求められた前記誤差付き補間パスの前記補間区間の始点に対応する値が局部補間していない前記ツールパスの前記補間区間の始点の値と一致し、かつ、その誤差付き補間パスの前記補間区間の終点に対応する値が局部補間していない前記ツールパスの前記補間区間の終点の値に一致するように当該誤差付き補間パスを補正し、その補正後の補間パスを前記ツールパスの前記補間区間と置換する誤差補正部とを含み、前記局部補間部は、前記補間ブロック内の前記媒介変数が異なる各第１位置を中央とし且つ特定の区間幅を有する積分区間を設定し、その設定した積分区間内の前記媒介変数が異なる各第２位置での前記ツールパスの前記媒介変数による一次微分を求め、その各第２位置での一次微分を対応する第２位置を中央とし且つ前記積分区間と等しい区間幅を有する分配区間内に特定の分配関数に基づいて分配した場合に得られる分配後微分関数を前記積分区間にわたって積分し、それによって前記補間後関数を求めることが好ましい。
【００２６】
この構成では、ツールパスの補間区間内の補間対象点において不連続となっている微分の変化が連続的な変化となるように、かつ、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間を局部補間するパス局部フィルタを具体的に構成することができる。
【００２７】
上記数値制御装置において、前記パス局部フィルタは、前記ツールパスに前記補間対象点が複数存在し、隣り合う前記補間対象点の前記補間区間同士が重複している場合には、それら重複する補間区間のうち最も前記ツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを１つの補間区間として、その補間区間内の前記ツールパスを局部補間することが好ましい。
【００２８】
この構成によれば、複数の補間対象点が近接している振動のような異常データがツールパスに含まれている場合でも、それらの複数の補間対象点付近のツールパスを一度に局部補間して滑らかな曲線を示すように補間することができる。
【発明の効果】
【００２９】
以上説明したように、本発明によれば、工作機械においてワークの加工時の移送対象物の通常の移送とは別に特別指令装置に入力された特別指令に応じて移送対象物の速度変化を伴う動作を実施する場合に、その特別指令の入力時点からそれに応じた動作が実行されるまでの応答性を向上しつつ、加工形状の誤差を抑制し、さらにツールパスの補間のための演算処理を簡略化することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態による数値制御装置が適用される工作機械の概略的な側面図である。
【図２】本発明の一実施形態による数値制御装置及び指令入力装置の機能ブロック図である。
【図３】本発明の一実施形態の数値制御装置による数値制御プロセスを示すフローチャートである。
【図４】図３に示した数値制御プロセスのうちの局部補間の詳細なプロセスを示すフローチャートである。
【図５】図３に示した数値制御プロセスのうちの基準時刻の導出、パルス補間及び移送部へのパルス出力の前半の詳細なプロセスを示すフローチャートである。
【図６】図５に示したプロセスに繋がる基準時刻の導出、パルス補間及び移送部へのパルス出力の後半の詳細なプロセスを示すフローチャートである。
【図７】分配区間幅の算出方法の一例を説明するための図である。
【図８】ツールパスのうち局部補間の対象となるコーナー部を示す模式図である。
【図９】ツールパスのうち局部補間の対象となる異常データ部を示す模式図である。
【図１０】補間ブロックの区間幅が補間区間幅よりも大きい場合を示す図である。
【図１１】補間ブロックの区間幅が補間区間幅よりも小さい場合を示す図である。
【図１２】補間ブロックの区間幅が補間区間幅よりも小さい場合を示す図である。
【図１３】媒介変数時間関数を導出するための階段状速度曲線と加減速曲線を示す図である。
【図１４】目標点に達する前に速度が速度上限値に達する場合の速度曲線の一例を示す図である。
【図１５】目標点に達する前に速度が速度上限値に達する場合の速度曲線の別の例を示す図である。
【図１６】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の一例を示す図である。
【図１７】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の別の例を示す図である。
【図１８】許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線のさらに別の例を示す図である。
【図１９】目標点に対応する媒介変数に達しても速度が速度上限値まで上昇しない場合の速度曲線の一例を示す図である。
【図２０】目標点に達するまでに速度が速度上限値を超えてしまう場合の速度曲線の一例を示す図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施形態を図面を参照して説明する。
【００３２】
まず、図１及び図２を参照して、本発明の一実施形態による数値制御装置２が適用される工作機械の構成について説明する。
【００３３】
この工作機械は、被加工物であるワーク１００を切削加工するためのものであり、ワーク移送装置１０２と、コラム１０４と、工具１０５と、工具鉛直移送装置１０６と、工具第１水平移送装置１０８と、工具第２水平移送装置１１０と、主軸ヘッド１１２と、制御盤１１４とを備えている。なお、ワーク移送装置１０２、工具鉛直移送装置１０６、工具第１水平移送装置１０８及び工具第２水平移送装置１１０は、それぞれ本発明の移送装置の概念に含まれるものである。
【００３４】
ワーク移送装置１０２は、ワーク１００を図１の紙面に垂直な方向であるＸ軸方向に移送するための装置である。このワーク移送装置１０２は、所定の設置場所上に固設されるベース１０２ａと、そのベース１０２ａ上にＸ軸方向に移動可能に設けられるワーク支持体１０２ｂと、そのワーク支持体１０２ｂをＸ軸方向に移送するワーク支持体移送部１０２ｃ（図２参照）とを有する。ワーク支持体１０２ｂは、ワーク１００を支持するものである。ワーク１００は、このワーク支持体１０２ｂ上に垂直に立った状態で設置される。ワーク支持体移送部１０２ｃは、駆動源としてのサーボモータを有する。なお、前記Ｘ軸は、本発明の移送軸の概念に含まれるものであり、ワーク支持体１０２ｂは、本発明の支持体の概念に含まれるものであり、ワーク支持体移送部１０２ｃは、本発明の移送部の概念に含まれるものである。
【００３５】
コラム１０４は、前記ベース１０２ａの設置場所から水平方向でかつ前記Ｘ軸と直交する方向に離間した設置場所に立設されており、鉛直方向に延びている。
【００３６】
工具鉛直移送装置１０６は、コラム１０４に設けられており、ワーク１００を切削加工するための工具１０５を鉛直方向に延びるＹ軸方向に移送するための装置である。この工具鉛直移送装置１０６は、Ｙ軸方向に移動可能にコラム１０４に取り付けられる鉛直支持体１０６ａと、コラム１０４に設けられ、鉛直支持体１０６ａをコラム１０４に沿ってＹ軸方向に移送する鉛直支持体移送部１０６ｂ（図２参照）とを有する。鉛直支持体１０６ａは、工具第１水平移送装置１０８を支持しており、この工具第１水平移送装置１０８は、後述するように工具第２水平移送装置１１０及び主軸ヘッド１１２を介して工具１０５を支持するため、鉛直支持体１０６ａは間接的に工具１０５を支持する。鉛直支持体移送部１０６ｂは、駆動源としてのサーボモータを有する。なお、前記Ｙ軸方向は、本発明の移送軸の概念に含まれるものであり、鉛直支持体１０６ａは、本発明の支持体の概念に含まれるものであり、鉛直支持体移送部１０６ｂは、本発明の移送部の概念に含まれるものである。
【００３７】
工具第１水平移送装置１０８は、鉛直支持体１０６ａに設けられており、工具１０５を前記Ｘ軸と前記Ｙ軸の両方に対して垂直に延びるＷ軸方向に移送するための装置である。この工具第１水平移送装置１０８は、Ｗ軸方向に移動可能に鉛直支持体１０６ａに設けられる第１水平支持体１０８ａと、鉛直支持体１０６ａに設けられ、第１水平支持体１０８ａをＷ軸方向に進退するように移送する第１水平支持体移送部１０８ｂ（図２参照）とを有する。第１水平支持体１０８ａは、工具第２水平移送装置１１０を支持しており、この工具第２水平移送装置１１０は、後述するように主軸ヘッド１１２を介して工具１０５を支持するため、第１水平支持体１０８ａ間接的に工具１０５を支持する。第１水平支持体移送部１０８ｂは、駆動源としてのサーボモータを有する。なお、前記Ｗ軸は、本発明の移送軸の概念に含まれるものであり、第１水平支持体１０８ａは、本発明の支持体の概念に含まれるものであり、第１水平支持体移送部１０８ｂは、本発明の移送部の概念に含まれるものである。
【００３８】
工具第２水平移送装置１１０は、第１水平支持体１０８ａに設けられており、工具１０５を前記Ｗ軸と平行なＺ軸方向に移送するための装置である。この工具第２水平移送装置１１０は、Ｚ軸方向に移動可能に第１水平支持体１０８ａに設けられる第２水平支持体１１０ａと、第１水平支持体１０８ａに設けられ、第２水平支持体１１０ａをＺ軸方向に進退するように移送する第２水平支持体移送部１１０ｂとを有する。第２水平支持体１１０ａは、主軸ヘッド１１２を支持しており、その主軸ヘッド１１２を介して工具１０５を支持する。第２水平支持体移送部１１０ｂは、駆動源としてのサーボモータを有する。なお、前記Ｚ軸は、本発明の移送軸の概念に含まれるものであり、第２水平支持体１１０ａは、本発明の支持体の概念に含まれるものであり、第２水平支持体移送部１１０ｂは、本発明の移送部の概念に含まれるものである。
【００３９】
主軸ヘッド１１２は、その回転軸が前記Ｗ軸及び前記Ｚ軸と平行となるように第２水平支持体１１０ａに設けられている。この主軸ヘッド１１２は、工具１０５を保持してその軸回りに工具１０５を回転させる。工具１０５は、主軸ヘッド１１２によって回転させられた状態でワーク１００に接触させられることによりワーク１００を切削加工する。
【００４０】
制御盤１１４は、前記各移送装置１０２，１０６，１０８，１１０の移送部１０２ｃ，１０６ｂ，１０８ｂ、１１０ｂの動作の制御や、主軸ヘッド１１２の動作の制御、その他、工作機械の各部の制御を行うための機能を有する。この制御盤１１４は、前記各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂ及び主軸ヘッド１１２の駆動源と電気的に接続されている。
【００４１】
また、制御盤１１４は、指令入力装置１２２（図２参照）を備えている。この指令入力装置１２２は、ワーク１００の加工時のワーク１００及び工具１０５の通常の移送とは別に、ワーク１００及び工具１０５の加速又は減速を伴う動作を指示するための特別指令を外部から入力するための装置である。以下、移送装置１０２，１０６，１０８，１１０が移送する対象物であるワーク１００又は工具１０５を移送対象物という。
【００４２】
指令入力装置１２２は、停止指令入力装置１２４と、再始動指令入力装置１２６と、オーバーライド装置１２８とを含む。
【００４３】
停止指令入力装置１２４は、移送対象物の移動を緊急に減速させて停止させるための緊急停止指令を入力するための装置である。前記緊急停止指令は、本発明の特別指令の概念に含まれる。この停止指令入力装置１２４は、制御盤１１４の外面に設けられた緊急停止ボタン１２４ａと、その緊急停止ボタン１２４ａが押されることに応じて緊急停止信号を後述の監視部１０へ発信する停止信号発信部１２４ｂとを有する。なお、本実施形態では、緊急停止ボタン１２４ａを押すことが緊急停止指令の入力に相当する。
【００４４】
再始動指令入力装置１２６は、移動停止した移送対象物の移動を再開させて加速させるための再始動指令を入力するための装置である。前記再始動指令は、本発明の特別指令の概念に含まれる。この再始動指令入力装置１２６は、制御盤１１４の外面に設けられた再始動ボタン１２６ａと、その再始動ボタン１２６ａが押されることに応じて再始動信号を後述の監視部１０へ発信する再始動信号発信部１２６ｂとを有する。なお、本実施形態では、再始動ボタン１２６ａを押すことが再始動指令の入力に相当する。
【００４５】
オーバーライド装置１２８は、移送対象物の移動速度を上昇させる指示とその移動速度の上昇率である加速率の情報とを含む加速指令又は移送対象物の移動速度を低下させる指示とその移動速度の低下率である減速率の情報とを含む減速指令を入力するための装置である。前記加速指令及び前記減速指令は、本発明の特別指令の概念に含まれる。
【００４６】
このオーバーライド装置１２８は、制御盤１１４の外面に設けられたオーバーライドダイヤル１２８ａと、そのオーバーライドダイヤル１２８ａの操作方向及び操作量に応じた速度変更信号を後述の監視部１０へ発信する速度変更信号発信部１２８ｂとを有する。
【００４７】
オーバーライドダイヤル１２８ａは、オペレータ等が加速指令又は減速指令を入力するときに操作する操作部である。このオーバーライドダイヤル１２８ａは、その軸回りに回動可能に制御盤１１４に設けられている。このオーバーライドダイヤル１２８ａをいずれかの方向に回動させることによって、オーバーライド装置１２８に加速指令又は減速指令を入力することが可能である。本実施形態では、オーバーライドダイヤル１２８ａを一方側へ回動させる操作が加速指令の入力に相当し、オーバーライドダイヤル１２８ａを前記一方側に対して反対側である他方側へ回動させる操作が減速指令の入力に相当する。また、オーバーライドダイヤル１２８ａの前記一方側への回動量が移送対象物の加速率と対応しており、オーバーライドダイヤル１２８ａの前記他方側への回動量が移送対象物の減速率に対応している。
【００４８】
速度変更信号発信部１２８ｂは、オーバーライドダイヤル１２８ａが前記一方側（加速側）へ回動されたことに応じて、その一方側へのオーバーライドダイヤル１２８ａの回動量に対応するオーバーライド係数の情報を含む速度変更信号を監視部１０へ発信し、オーバーライドダイヤル１２８ａが前記他方側（減速側）へ回動されたことに応じて、その他方側へのオーバーライドダイヤル１２８ａの回動量に対応するオーバーライド係数の情報を含む速度変更信号を監視部１０へ発信する。オーバーライド係数は、１を基準としてオーバーライドダイヤル１２８ａが加速側へ回動されることに応じて１から増加し、オーバーライドダイヤル１２８ａが減速側へ回動されることに応じて１から減少する。
【００４９】
本実施形態の数値制御装置２は、制御盤１１４の中に組み込まれており、前記各移送装置１０２，１０６，１０８，１１０の移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂに特定周期毎の指令パルスを出力することにより各移送装置１０２，１０６，１０８，１１０の数値制御を行う。次に、本実施形態の数値制御装置２の構成について詳細に説明する。
【００５０】
数値制御装置２は、図２に示すように、記憶部４と、メモリ５と、演算処理部６とを有する。
【００５１】
記憶部４は、ワーク１００の加工指令である加工プログラム（ＮＣプログラム）を記憶している。この加工プログラムには、ツールパスが含まれる。このツールパスは、工具１０５がワーク１００の加工時に通るべき軌跡がワーク１００上に固定されたワーク座標系における工具１０５の位置座標とその工具１０５の軌跡に沿った積算長である媒介変数との関数として表されたものである。このツールパスには、ワーク１００の加工時に工具１０５が通るべき多数の指令点が含まれており、当該ツールパスは、それらの指令点の隣り合うもの同士を繋いだ形状に構成されている。また、記憶部４は、ワーク１００の加工時の移送対象物の加減速条件やその他の設定値を記憶している。なお、加減速条件には、例えば、各移送装置１０２，１０６，１０８，１１０が移送対象物を移送する各移送軸毎（各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂが対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａを移送する各移送軸毎）に設定される許容速度、許容加速度、許容ジャークや、ワーク１００に対する工具１０５の合成移動速度が含まれる。
【００５２】
メモリ５は、指令入力装置１２２に特別指令が入力される直前の時点でのオーバーライド係数や、前記速度変更信号に含まれるオーバーライド係数等の情報を記憶する。
【００５３】
演算処理部６は、各種演算処理を行うものであり、機能ブロックとして、監視部１０と、ツールパス導出部１２と、ブロック滑らか補間部１４と、パス局部フィルタ１６と、媒介変数時間関数導出部１８と、パルス補間部２２と、制御部２４とを有する。
【００５４】
監視部１０は、指令入力装置１２２に特別指令が入力されたか否かを監視している。具体的には、監視部１０は、停止指令入力装置１２４に緊急停止指令が入力されたか否か、すなわち停止指令入力装置１２４の緊急停止ボタン１２４ａが押されたか否かを停止信号発信部１２４ｂからの緊急停止信号の発信の有無を監視することによって判断している。監視部１０は、停止信号発信部１２４ｂから緊急停止信号が発信された場合には、緊急停止ボタン１２４ａが押されたと判断し、停止要求をパルス補間部２２へ出力する。一方、監視部１０は、停止信号発信部１２４ｂから緊急停止信号が発信されていない場合には、緊急停止ボタン１２４ａが押されていないと判断し、停止要求を出力しない。
【００５５】
また、監視部１０は、再始動指令入力装置１２６に再始動指令が入力されたか否か、すなわち再始動指令入力装置１２６の再始動ボタン１２６ａが押されたか否かを再始動信号発信部１２６ｂからの再始動信号の発信の有無を監視することによって判断している。監視部１０は、再始動信号発信部１２６ｂから再始動信号が発信された場合には、再始動ボタン１２６ａが押されたと判断し、再始動信号発信部１２６ｂから再始動信号が発信されていない場合には、再始動ボタン１２６ａが押されていないと判断する。そして、監視部１０は、停止信号発信部１２４ｂから緊急停止信号が発信された後に再始動信号発信部１２６ｂから再始動信号が発信されたことに応じて再始動要求をパルス補間部２２へ出力する。
【００５６】
また、監視部１０は、オーバーライド装置１２８に加速指令又は減速指令が入力されたか否か、すなわちオーバーライドダイヤル１２８ａが回動されたか否かを速度変更信号発信部１２８ｂからの速度変更信号の発信の有無を監視することによって判断している。詳しくは、監視部１０は、速度変更信号発信部１２８ｂから速度変更信号が発信された場合には、オーバーライドダイヤル１２８ａが回動されたと判断し、速度変更信号発信部１２８ｂから速度変更信号が発信されていない場合には、オーバーライドダイヤル１２８ａが回動されていないと判断する。そして、監視部１０は、速度変更信号発信部１２８ｂから発信される速度変更信号を受けてその速度変更信号に含まれるオーバーライド係数の情報を含む速度変更要求をパルス補間部２２へ出力する。
【００５７】
ツールパス導出部１２は、記憶部４に記憶されている加工プログラムを読み取り、その読み取った加工プログラムからツールパスを求める。
【００５８】
滑らか補間部１４は、ツールパス導出部１２によって求められたツールパスのうち解析的に可能な範囲で指令点を通る滑らかな曲線となるように補間できる部分について、その補間を行う。この滑らか補間部１４が行う補間は、いわゆるブロック滑らか補間であり、ツールパスのうちの隣り合う指令点間の区間を指令ブロックとしてその指令ブロックと隣接する指令ブロックとがそれらの境界の指令点において滑らかに繋がるように補間するものである。具体的には、滑らか補間部１４は、隣接する指令ブロックがそれらの境界の指令点の前後において一次微分と二次微分が連続変化し、かつ、その指令点を通るようにツールパスを補間する。ただし、ツールパスには、媒介変数の変化に対するツールパスの軌跡の変化が急激で、このようなブロック滑らか補間によってはその軌跡の指令点を通る滑らかな曲線となるように補間できない部位が含まれる場合がある。このような部位としては、微小単位で増減を繰り返す異常データの部分や、加工プログラムにおいて意図して指示されるコーナー部がある。滑らか補間部１４は、ツールパスのうちこのような部位については補間せずに元のツールパスのまま残し、上記のように指令点を通り、その指令点の前後で一次微分と二次微分とが連続変化するような曲線に補間できる部分を滑らか補間する。
【００５９】
パス局部フィルタ１６は、ツールパスのうち滑らか補間部１４によって補間されなかった部位を対象として補間を行う。具体的には、パス局部フィルタ１６は、ツールパスのうち媒介変数による一次微分の変化が連続でかつ媒介変数による二次微分の変化が不連続になっている指令点と媒介変数による一次微分の変化が不連続になっている指令点とを補間対象点とする。そして、パス局部フィルタ１６は、ツールパスのうち補間対象点の前後に亘り、後述する補間区間幅を有し、かつ、その補間区間幅の中央に当該補間対象点が位置する補間区間のみを当該補間対象点において不連続となっている微分の変化が連続的な変化となるように局部補間する。
【００６０】
パス局部フィルタ１６は、ツールパスのうちこのパス局部フィルタ１６によって局部補間される部分は、例えば、図８に示すようなコーナー部や図９に示すような異常データ部である。これらのコーナー部の頂点に位置する指令点（図８のｔ［３］）や異常データ部の各頂点に位置する各指令点（図９のｔ［２］〜ｔ［６］）では、媒介変数による一次微分値の変化が不連続になっており、これらの指令点は補間対象点となる。また、パス局部フィルタ１６は、ツールパスに補間対象点が複数存在し、隣り合う補間対象点の補間区間同士が重複している場合（図９のような場合）には、それら重複している補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最もツールパスの終点寄りに位置する補間区間の終点までを１つの補間区間として、その補間区間内のツールパスを局部補間する。なお、このパス局部フィルタ１６によって全ての補間区間が局部補間された後のツールパスを、以下、局部補間後ツールパスという。また、パス局部フィルタ１６は、局部補間後ツールパスが各補間区間（隣り合う補間区間同士が重複している場合はそれらを結合した補間区間）の始点の前後及び終点の前後でそれぞれ連続して繋がるようにその補間区間を局部補間する。
【００６１】
パス局部フィルタ１６の具体的な構成として、当該パス局部フィルタ１６は、局部補間部１６ａ及び誤差補正部１６ｂを機能ブロックとして有している。
【００６２】
局部補間部１６ａは、補間区間を前後に拡大した調整区間にかかる複数の補間ブロックのそれぞれについて補間処理を行うことによって各補間ブロックの補間後関数を求めるとともに、それらの補間後関数を積算して補間後積算関数を求め、その求めた補間後積算関数から補間区間に相当する区間を抜き出すことによって、補間区間内の補間対象点において不連続となっている微分の変化が連続的な変化となるように補間した誤差付き補間パスを求める。また、誤差補正部１６ｂは、局部補間部１６ａによって求められた誤差付き補間パスの補間区間の始点に対応する値が局部補間していないツールパスの補間区間の始点の値と一致し、かつ、その誤差付き補間パスの補間区間の終点に対応する値が局部補間していないツールパスの補間区間の終点の値に一致するように誤差付き補間パスを補正し、その補正後の補間パスをツールパスの補間区間と置換する。このパス局部フィルタ１６の局部補間部１６ａと誤差補正部１６ｂとによる局部補間の詳細なプロセスについては、後述する。
【００６３】
媒介変数時間関数導出部１８は、記憶部４に記憶された加減速条件と、局部補間後ツールパスとに基づいて、特定の基準時刻の経過に対する媒介変数の変化を表す媒介変数時間関数（媒介変数の速度曲線）を求める。具体的には、媒介変数時間関数導出部１８は、前記加減速条件に含まれる許容加速度の範囲内で局部補間後ツールパスに従って移送対象物を移動させ得る最大の加速度を示すような媒介変数時間関数を導出する。
【００６４】
パルス補間部２２は、局部補間後ツールパスをパルス補間して前記特定周期毎の指令パルスを求めるものである。このパルス補間部２２は、指令入力装置１２２への特別指令の入力状況に応じた基準時刻の導出、その導出した基準時刻に対応する媒介変数の導出、その導出した媒介変数に応じた局部補間後ツールパス上の位置座標の導出、及び、実時刻の単位時間当たりの各移送軸の位置座標の変化量を示す指令パルスの導出を行う。なお、実時刻とは、前記特定周期に等しい単位時間毎に進行する時刻のことである。
【００６５】
具体的には、パルス補間部２２は、工作機械の起動後、指令入力装置１２２に特別指令が入力されない場合には、前記実時刻の単位時間（前記特定周期）と等しい基準単位時間毎に進行する基準時刻を導出する。また、パルス補間部２２は、停止指令入力装置１２４に緊急停止指令が入力された場合には、基準単位時間が短くなっていき最終的に０になるように調整した基準時刻を導出する。また、パルス補間部２２は、停止指令入力装置１２４に緊急停止指令が入力された後に再始動指令入力装置１２６に再始動指令が入力された場合には、基準単位時間が０から長くなって最終的に緊急停止前の基準単位時間に等しくなるように調整した基準時刻を導出する。また、パルス補間部２２は、オーバーライド装置１２８に加速指令が入力された場合には、基準単位時間がオーバーライド装置１２８への加速指令の入力直前における長さから加速指令に含まれる加速率（オーバーライド係数）に応じた長さまで増加するように調整した基準時刻を導出する。また、パルス補間部２２は、オーバーライド装置１２８に減速指令が入力された場合には、基準単位時間がオーバーライド装置１２８への減速指令の入力直前の状態における長さから減速指令に含まれる減速率（オーバーライド係数）に応じた長さまで減少するように調整した基準時刻を導出する。
【００６６】
また、パルス補間部２２は、上記のように導出した基準時刻の基準単位時間毎の各時点に対応する媒介変数を前記媒介変数時間関数導出部１８によって導出された媒介変数時間関数から求める。また、パルス補間部２２は、その求めた各時点での媒介変数に対応するワーク座標系での局部補間後ツールパス上の位置座標を求めるとともに、その求めた各時点での位置座標から上記のように導出した基準時刻の基準単位時間毎のワーク座標系における工具１０５の移動量を求める。そして、パルス補間部２２は、その求めた工具１０５の移動量から各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの各移送軸について支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの基準単位時間毎の移送量を求めてその基準単位時間毎の移送量を実時刻の単位時間毎（前記特定周期毎）の指令パルスとする。このようにして、パルス補間部２２は、局部補間後ツールパスをパルス補間する。
【００６７】
制御部２４は、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作を制御するものであり、パルス補間部２２によって求められた特定周期毎の指令パルスに応じて各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂに対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａを移送させる。具体的には、制御部２４は、パルス補間部２２によって求められた各移送軸についての前記特定周期毎の指令パルスを移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂのうち対応するもののサーボモータへそれぞれ出力する。これにより、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂは、対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａを対応する移送軸方向へ制御部２４から送られてくる指令パルスが示す移送量ずつ特定周期毎（実時刻の単位時間毎）に移送する。その結果、移送対象物が移送され、工具１０５は、ワーク座標系における局部補間後ツールパスに沿って移送される。
【００６８】
次に、図３〜図５のフローチャートを参照して、本実施形態の数値制御装置２による数値制御プロセスについて説明する。
【００６９】
まず、ツールパス導出部１２が記憶部４に記憶された加工プログラム（ＮＣプログラム）を読み取り（図３のステップＳ１）、その読み取った加工プログラムからツールパスを導出する（ステップＳ３）。
【００７０】
次に、滑らか補間部１４が、ツールパス導出部１２によって求められたツールパスについてブロック滑らか補間を行う（ステップＳ３）。具体的には、滑らか補間部１４は、ツールパスのうちの隣接する指令ブロック同士がそれらの境界の指令点の前後において一次微分と二次微分が連続変化し、かつ、その指令点をツールパスが通るようにツールパスを補間する。この際、滑らか補間部１４は、ツールパスのうちこのような補間が解析的に可能な部分についてのみブロック滑らか補間を行い、このような補間が解析的に不可能な部分については補間せずに元のツールパスのまま残す。具体的には、滑らか補間部１４は、指令点におけるツールパスの折れ曲がりの角度が予め設定された一定角度よりも大きい部分、及び、補間前のツールパスに対してブロック滑らか補間を行った後のツールパスの誤差が予め設定された許容誤差よりも大きくなる部分については、補間せずに元のツールパスのまま残す。
【００７１】
次に、パス局部フィルタ１６が、ブロック滑らか補間後のツールパスについて局部補間を行う（ステップＳ４）。具体的には、パス局部フィルタ１６は、ツールパスのうち媒介変数ｓによる一次微分の変化が連続でかつ媒介変数ｓによる二次微分の変化が不連続となっている指令点と媒介変数ｓによる一次微分の変化が不連続になっている指令点とを補間対象点とし、ツールパスのうちその補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを局部補間する。これにより、ツールパスのうち前記ブロック滑らか補間が行われなかった指令点付近が局部補間され、その指令点において不連続であった微分値の変化が連続的な変化となるように補間される。このパス局部フィルタ１６によって行われる局部補間の詳細なプロセスが図４に示されている。
【００７２】
この局部補間では、まず、パス局部フィルタ１６の局部補間部１６ａが、補間区間の区間幅である補間区間幅をまだ算出していない補間対象点がツールパスに存在するか否かを判断する（ステップＳ１２）。局部補間部１６ａは、そのような補間対象点が存在すると判断した場合には、その補間区間幅をまだ算出していない補間対象点について分配区間幅及び補間区間幅の算出を行う（ステップＳ１４）。なお、分配区間幅は、後述するツールパスの媒介変数による一次微分を分配関数に基づいて分配する区間幅のことである。
【００７３】
具体的には、局部補間部１６ａは、まず、分配区間幅を算出し、補間区間幅をその算出した分配区間幅以上の区間幅として求める。なお、本実施形態では、補間区間幅を分配区間幅と等しい大きさの区間幅とする。局部補間部１６ａは、補間対象点の前後でツールパスの媒介変数ｓによる一次微分値が異なる場合には、その前後の一次微分値の差が最大となるワーク座標系の座標軸について、局部補間前のツールパスと局部補間後のツールパスとの補間対象点における位置誤差がその座標軸における許容誤差に等しくなるという条件を満たすように分配区間幅が求められる。より詳しくは、例えば、次のようにして分配区間幅Ａが算出される。
【００７４】
分配区間幅の算出式は、後述のツールパスの一次微分の分配を行うために用いる分配関数によって異なるが、ここでは、後述のツールパスの一次微分の分配に直線型の分配関数を用いるものとして、分配区間幅を算出する。
【００７５】
ワーク座標系の各座標軸のうちｘ軸において、ツールパスの媒介変数ｓによる一次微分の補間対象点直前の値ｂ１と補間対象点直後の値ｂ２との差が最大となるとする。ここで、このｘ軸におけるツールパスの位置座標ｘの媒介変数ｓによる一次微分関数ｘ’（ｓ）は、次式（１）で表せる。なお、この一次微分関数ｘ’（ｓ）は、図７に太線で示されている。
【００７６】
ｘ’（ｓ）＝ｄｘ／ｄｓ＝αｓ＋ｂ１・・・（１）
局部補間前のツールパスに対する局部補間後のツールパスの補間対象点での位置誤差は、図７中のハッチングを付した領域の面積に相当する。従って、この位置誤差をｅとすると、当該位置誤差ｅは、次式（２）で求められる。
【００７７】
ｅ＝Ａ×（ｂ２−ｂ１）／８・・・（２）
ここで、ｘ軸における許容誤差をτとすると、前記誤差ｅが許容誤差τに等しいという条件を満たす分配区間幅Ａは、上記式（２）から次式（３）のように求められる。
【００７８】
Ａ＝８τ／（ｂ２−ｂ１）・・・（３）
なお、上記式（３）で求められる分配区間幅の値が予め設定された上限パラメータを超える場合には、その上限パラメータの値を分配区間幅Ａとする。そして、本実施形態では、以上のようにして算出された分配区間幅Ａに等しい区間幅を補間区間幅とする。
【００７９】
次に、局部補間部１６ａは、現在対象としている補間対象点についての補間区間が他の補間対象点の補間区間と重なるか否かを判断する（ステップＳ１６）。ここで、局部補間部１６ａは、補間区間が重ならないと判断した場合には、上記ステップＳ１２に戻り、以降のプロセスを繰り返し行う。一方、局部補間部１６ａは、補間区間が重なると判断した場合には、重なった補間区間同士を結合して１つの補間区間とする（ステップＳ１８）。具体的には、局部補間部１６ａは、重なった各補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最もツールパスの終点寄りに位置する補間区間の終点までの区間を１つの補間区間とする。なお、この場合、結合した１つの補間区間について後述の分配の際に用いる分配区間幅としては、各補間区間に対応する分配区間幅のうち最も小さい分配区間幅が採用される。この後、上記ステップＳ１２に戻り、以降のプロセスが繰り返し行われる。
【００８０】
そして、ステップＳ１２において、局部補間部１６ａがツールパスに補間区間幅を算出していない補間対象点がもう存在しないと判断した場合には、局部補間部１６ａは、次に、以降の局部補間処理を行う１つの補間区間を抽出する（ステップＳ２０）。ここで、ツールパスに局部補間処理を行っていない複数の補間区間が存在する場合には、局部補間部１６ａは、それらの補間区間のうち最もツールパスの始点寄りに位置する補間区間を抽出する。なお、上記ステップＳ１８で結合された補間区間は、１つの補間区間として扱われる。
【００８１】
その後、局部補間部１６ａは、抽出した補間区間について調整区間を求める（ステップＳ２２）。この調整区間（図８及び図９参照）は、補間区間の前後に分配区間幅Ａの半分の区間幅ａをそれぞれ加えた区間であり、後述する補間後関数の算出対象となる補間ブロックを判断する基準となる。その後、局部補間部１６ａは、メモリ５に記憶されている補間後積算関数を０に初期セットする（ステップＳ２４）。
【００８２】
次に、局部補間部１６ａは、後述の補間後関数を求める補間処理を実施するための指令ブロックである補間ブロックを抽出する（ステップＳ２６）。具体的には、局部補間部１６ａは、上記ステップＳ２２で求めた調整区間内に少なくとも区間の一部が含まれる複数の指令ブロック（図８では指令ブロックｐ０（ｓ）〜ｐ５（ｓ）、図９ではｐ０（ｓ）〜ｐ７（ｓ））を選択するとともに、それらの指令ブロックのうち後述の補間後関数を求める補間処理が終わっていないブロックでかつ最もツールパスの始点寄りに位置するブロックを補間ブロックとして抽出する。
【００８３】
次に、局部補間部１６ａは、抽出した補間ブロックの補間後関数を求める（ステップＳ２８）。本実施形態では、局部補間部１６ａは、直線型の分配関数ｆ（ｓ）を用いて補間後関数を求める。直線型の分配関数ｆ（ｓ）は、次式（４）で表される。
【００８４】
ｆ（ｓ）＝１／Ａ  （−Ａ／２≦ｓ≦Ａ／２）・・・（４）
なお、分配区間−Ａ／２≦ｓ≦Ａ／２の外側では、ｆ（ｓ）＝０である。
【００８５】
局部補間部１６ａは、補間後関数の算出に当たって、まず、上記抽出した補間ブロック内の媒介変数が異なる各第１位置ｓを中央とし且つ分配区間幅Ａと等しい区間幅を有する積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］を設定する。そして、局部補間部１６ａは、その設定した積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］内の媒介変数が異なる各第２位置Ｓでのツールパスの媒介変数による一次微分ｐｉ’（Ｓ）を求め、その各第２位置Ｓでの一次微分ｐｉ’（Ｓ）を対応する第２位置Ｓを中央とし且つ前記分配区間幅Ａを有する分配区間内に分配関数ｆ（ｓ）に基づいて分配した場合に得られる分配後微分関数ｐｉ’（Ｓ）・ｆ（ｓ−Ｓ）を積分区間［ｓ−Ａ／２，ｓ＋Ａ／２］にわたって積分し、それによって補間後関数ｑｉ’（ｓ）を求める。換言すれば、局部補間部１６ａは、次式（５）によって当該補間ブロックｐｉ（ｓ）の補間後関数ｑｉ’（ｓ）を求める。
【００８６】
【数１】
0005417392.tif 000002
【００８７】
このようにして得られた補間後関数ｑｉ’（ｓ）は、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａよりも大きい場合と小さい場合とで異なった形で表される。その各場合における補間後関数ｑｉ’（ｓ）は、以下の通りである。
【００８８】
補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａ（＝２ａ）よりも大きい場合（図１０参照）には、その補間ブロックｐｉ（ｓ）の両端を規定する２つの指令点のうちツールパスの始点寄りの指令点をｔ［ｉ］、ツールパスの終点寄りの指令点をｔ［ｉ＋１］とし、補間区間幅Ａの半分の区間幅をａとすると、当該補間ブロックｐｉ（ｓ）に対応する区間はｔ［ｉ］＜ｓ＜ｔ［ｉ＋１］で表され、ｔ［ｉ］−ａ＜ｔ［ｉ］＋ａ＜ｔ［ｉ＋１］−ａ＜ｔ［ｉ＋１］＋ａの関係が成り立つ。そして、補間ブロックｐｉ（ｓ）の媒介変数ｓによる一次微分ｐｉ’（ｓ）は、図１０中の太線で表される。
【００８９】
この場合において、上記補間処理によって得られる補間後関数ｑｉ’（ｓ）は、下記のｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ１１’（ｓ）と、ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ１２’（ｓ）と、ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ１３’（ｓ）とに細分化される。
【００９０】
ｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ１１’（ｓ）は、次式（６）で表される。
【００９１】
【数２】
0005417392.tif 000003
【００９２】
ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ１２’（ｓ）は、次式（７）で表される。
【００９３】
【数３】
0005417392.tif 000004
【００９４】
ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ１３’（ｓ）は、次式（８）で表される。
【００９５】
【数４】
0005417392.tif 000005
【００９６】
次に、補間ブロックｐｉ（ｓ）の区間幅が補間区間幅Ａ＝２ａよりも小さい場合（図１１及び図１２参照）には、その補間ブロックｐｉ（ｓ）の両端を規定する２つの指令点のうちツールパスの始点寄りの指令点をｔ［ｉ］、ツールパスの終点寄りの指令点をｔ［ｉ＋１］とし、補間区間幅Ａの半分の区間幅をａとすると、当該補間ブロックｐｉ（ｓ）に対応する区間はｔ［ｉ］＜ｓ＜ｔ［ｉ＋１］で表され、ｔ［ｉ］−ａ＜ｔ［ｉ＋１］−ａ＜ｔ［ｉ］＋ａ＜ｔ［ｉ＋１］＋ａの関係が成り立つ。この補間ブロックｐｉ（ｓ）の媒介変数ｓによる一次微分関数ｐｉ’（ｓ）は、図１１及び図１２中の太線で表される。
【００９７】
この場合において、上記補間処理によって得られる補間後関数ｑｉ’（ｓ）は、下記のｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ２１’（ｓ）と、ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ２２’（ｓ）と、ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ２３’（ｓ）とに細分化される。
【００９８】
ｔ［ｉ］−ａ＜ｓ＜ｔ［ｉ＋１］−ａの区間の関数ｑｉ２１’（ｓ）は、次式（９）で表される。
【００９９】
【数５】
0005417392.tif 000006
【０１００】
ｔ［ｉ＋１］−ａ＜ｓ＜ｔ［ｉ］＋ａの区間の関数ｑｉ２２’（ｓ）は、次式（１０）で表される。
【０１０１】
【数６】
0005417392.tif 000007
【０１０２】
ｔ［ｉ］＋ａ＜ｓ＜ｔ［ｉ＋１］＋ａの区間の関数ｑｉ２３’（ｓ）は、次式（１１）で表される。
【０１０３】
【数７】
0005417392.tif 000008
【０１０４】
次に、局部補間部１６ａは、求めた補間後関数をメモリ５に記憶されている補間後積算関数に加算する（ステップＳ３０）。ここでは、ステップＳ４２で０にリセットされた補間後積算関数に補間後関数が加算されるので、加算後の補間後積算関数は、上記ステップＳ２８で求められた補間後関数に等しくなる。
【０１０５】
次に、局部補間部１６ａは、調整区間に少なくとも区間の一部が含まれる全ての補間ブロックについて補間後関数を求めてその補間後関数を補間後積算関数に加算する補間処理を行ったか否かを判断する（ステップＳ３２）。ここで、局部補間部１６ａは、まだ全ての補間ブロックの補間処理を終了していないと判断した場合には、上記ステップＳ２６に戻り、次に補間処理を行う補間ブロックを抽出する。この際に抽出される補間ブロックは、調整区間に少なくとも区間の一部が含まれる指令ブロックのうち先に補間処理された補間ブロックに対してツールパスの終点側に隣り合う指令ブロックとなる。その後、局部補間部１６ａは、その抽出した補間ブロックについてステップＳ２８の補間後関数の算出を行い、それによって得られた補間後関数を補間後積算関数に加算する。局部補間部１６ａは、このようなステップＳ２６〜Ｓ３０のプロセスを、ステップＳ３２において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理（分配、積分、加算）を終了したと判断するまで繰り返し行う。
【０１０６】
そして、局部補間部１６ａは、ステップＳ３２において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理を終了したと判断した場合には、次に、誤差付き補間パスを求める（ステップＳ３４）。具体的には、局部補間部１６ａは、上記補間後関数の加算によって得られた補間後積算関数から上記ステップＳ２０で抽出した補間区間に相当する区間を抜き出すことによって誤差付き補間パスを求める。
【０１０７】
次に、パス局部フィルタ１６の誤差補正部１６ｂが、誤差付き補間パスのうち補間区間の始点に対応する点と終点に対応する点とにおけるツールパスとの誤差を補正するための誤差補正パスを求める（ステップＳ３６）。具体的には、誤差補正部１６ｂは、補間区間の始点における誤差補正パスの値が当該始点における誤差付き補間パスの値から当該始点におけるツールパスの値を減じて得た値に等しく、かつ、補間区間の終点における誤差補正パスの値が当該終点における誤差付き補間パスの値から当該終点におけるツールパスの値を減じて得た値に等しいという条件を満たす誤差補正パスを求める。より具体的には、誤差補正部１６ｂは、誤差補正パスをＥ（ｓ）とし、誤差付き補間パスをｒ（ｓ）とし、ツールパスをｐ（ｓ）とし、補間区間の始点をＳｓとし、補間区間の終点をＳｅとすると、以下の式（１２），（１３）を満たす誤差補正パスＥ（ｓ）を求める。本実施形態では、誤差補正部１６ｂは、この条件を満たす誤差補正パスＥ（ｓ）の一例として、Ｅ（Ｓｓ）とＥ（Ｓｅ）を直線で繋いだ誤差補正パスを求める。
【０１０８】
Ｅ（Ｓｓ）＝ｒ（Ｓｓ）−ｐ（Ｓｓ）・・・（１２）
Ｅ（Ｓｅ）＝ｒ（Ｓｅ）−ｐ（Ｓｅ）・・・（１３）
次に、誤差補正部１６ｂは、誤差付き補間パスをステップＳ３６で求めた誤差補正パスによって補正し、その補正後の補間パスをツールパスの補間区間と置換して局部補間後の補間区間のツールパスとする（ステップＳ３８）。具体的には、誤差補正部１６ｂは、誤差付き補間パスから誤差補正パスを差し引くことによって誤差付き補間パスを補正し、当該補正により、補間区間の始点でのツールパスに対する誤差付き補間パスの誤差と、補間区間の終点でのツールパスに対する誤差付き補間パスの誤差とを除去する。このため、補正後の補間パスは、補間区間の始点においてツールパスと連続して繋がり、補間区間の終点においてツールパスと連続して繋がるパスとなる。以上のプロセスにより、ツールパスのうちの１つの補間区間が、当該補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間される。
【０１０９】
この後、局部補間部１６ａは、ツールパスの全ての補間区間の局部補間が終了したか否かを判断する（ステップＳ４０）。ここで、局部補間部１６ａは、まだ局部補間が終了していない補間区間が存在すると判断した場合には、上記ステップＳ２０以降のプロセスが繰り返し行われる。具体的には、局部補間部１６ａは、局部補間が終了していない補間区間のうち最もツールパスの始点寄りに位置する補間区間を抽出し、その抽出した補間区間について補間後関数の算出、補間後積算関数への加算、誤差付き補間パスの導出、誤差補正パスの導出及び誤差付き補間パスの補正等が行われる。
【０１１０】
一方、局部補間部１６ａがツールパスの全ての補間区間の局部補間が終了したと判断した場合には、パス局部フィルタ１６による局部補間処理のプロセスが終了し、次に、媒介変数時間関数導出部１８により基準時刻Ｔの経過に対する媒介変数の変化を表す媒介変数時間関数が求められる（図３のステップＳ５）。
【０１１１】
具体的には、媒介変数時間関数導出部１８は、記憶部４に記憶されている加減速条件と全ての補間区間が局部補間された後のツールパスである局部補間後ツールパスとに基づいて、媒介変数時間関数（媒介変数の速度曲線）を求める。より具体的には、媒介変数時間関数導出部１８は、ワーク座標系における工具１０５の位置を局部補間後ツールパスに従って移動させることができ、かつ、移送対象物の各移送軸毎の加速度が加減速条件に含まれたその移送軸についての許容加速度を超えないという条件を満たすような媒介変数時間関数を求める。詳しくは、媒介変数時間関数導出部１８は、以下のようにして媒介変数時間関数を求める。
【０１１２】
媒介変数時間関数導出部１８は、まず、図１３中の階段状速度曲線で表される媒介変数速度上限関数を求める。媒介変数速度上限関数は、各移送軸パスの各指令点間のブロック毎の媒介変数ｓの速度ｄｓ／ｄＴの上限値を表す関数である。図１３中の階段状速度曲線のうち水平になっている各部分がブロックを表し、当該部分の速度ｄｓ／ｄＴがそのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値に相当する。なお、各ブロックは、それぞれについての媒介変数ｓの増分が等しくなるように元々設定されているが、その各ブロックの媒介変数ｓの増分に相当する距離を進むのに要する時間は様々であり、図１３では、媒介変数ｓの増加を時間ｔの進行に換算して横軸に表している。そして、媒介変数時間関数導出部１８は、以下のようにして各ブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値を求めることによって媒介変数速度上限関数を求める。
【０１１３】
媒介変数時間関数導出部１８は、局部補間後ツールパスに基づいて、対象とするブロック内の所定の媒介変数ｓａの点とその点の近傍の前後２点ずつの合計５点（ｓａ−２ｅ，ｓａ−ｅ，ｓａ，ｓａ＋ｅ，ｓａ＋２ｅ）における各移送軸の移送軸座標ｋｐ［ｉ］［］（ｉ＝０，１，２，３，４）を求める。なお、前記ｅは、媒介変数における微小距離を示すパラメータである。また、ｉ＝０は点（ｓａ−２ｅ）に、ｉ＝１は点（ｓａ−ｅ）に、ｉ＝２は点ｓａに、ｉ＝３は点（ｓａ＋ｅ）に、ｉ＝４は点（ｓａ＋２ｅ）にそれぞれ対応している。また、［］は、各移送軸それぞれについての値であることを意味する。そして、媒介変数時間関数導出部１８は、下記式（１４）によって点（ｓａ−ｅ）における移送軸パスの媒介変数による一次微分の近似値ｄｓ１［ａｘ］を求め、下記式（１５）によって点（ｓａ＋ｅ）における移送軸パスの媒介変数による一次微分の近似値ｄｓ２［ａｘ］を求め、この求めた２つの近似値ｄｓ１［ａｘ］，ｄｓ２［ａｘ］と下記式（１６）を用いて前記媒介変数ｓａに対応する点における移送軸パスの媒介変数による二次微分の近似値ｄｄｓｓ［ａｘ］を求める。なお、ａｘは、各移送軸を表すインデックスである。
【０１１４】
ｄｓ１［ａｘ］＝（ｋｐ［２］［ａｘ］−ｋｐ［０］［ａｘ］）／２ｅ・・・（１４）
ｄｓ２［ａｘ］＝（ｋｐ［４］［ａｘ］−ｋｐ［２］［ａｘ］）２ｅ・・・（１５）
ｄｄｓｓ［ａｘ］＝（ｄｓ２［ａｘ］−ｄｓ１［ａｘ］）／２ｅ・・・（１６）
仮に、媒介変数ｓａの点を等速度ｖで通過するとした場合には、各移送軸毎の加速度ａ［］は、ｖ２×ｄｄｓｓ［］で近似できることから、記憶部４に記憶されている加減速条件中の各移送軸毎の許容加速度をＡ［］とすると、媒介変数時間関数導出部１８は、対象とするブロックの速度上限値ｖｍを次式（１７）によって求める。
【０１１５】
ｖｍ＝（Ａ［ａｘ］／ｄｄｓｓ［ａｘ］）１／２・・・（１７）
そして、媒介変数時間関数導出部１８は、このようにして求めた各移送軸毎の対応するブロックの速度上限値ｖｍと加工プログラムに含まれる速度指令のうちそのブロックに対応する速度との中で最も低い値をそのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値とする。媒介変数時間関数導出部１８は、全てのブロックの媒介変数ｓの速度ｄｓ／ｄＴの上限値を以上のような方法でそれぞれ求め、その求めた各ブロックの上限値を繋いで媒介変数速度上限関数を求める。
【０１１６】
次に、媒介変数時間関数導出部１８は、記憶部４に記憶された加減速条件に含まれる媒介変数ｓの許容速度、許容加速度及び許容ジャークに基づいて、媒介変数速度上限関数が表す階段状速度曲線を超えないように連続変化する加減速曲線ｄｓ（Ｔ）／ｄTを求め、その求めた加減速曲線ｄｓ（Ｔ）／ｄＴを基準時刻Ｔで積分することにより媒介変数時間関数ｓ（Ｔ）を算出する。
【０１１７】
具体的には、媒介変数時間関数導出部１８は、まず、加減速曲線ｄｓ（Ｔ）／ｄＴのうちの加速領域の速度曲線（速度関数）を始点側から終点側へ向かって所定の時刻区間毎にその時刻区間の時刻区間幅ｔｓとともに順次求めてメモリ５に登録していく。この時、媒介変数時間関数導出部１８は、それまでにメモリ５に登録した速度曲線の最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）として設定したブロックの終点へ到達する過程でその最終点における速度ｆ１がそのブロックの速度ｄｓ／ｄＴの上限値（速度上限値ｆ２）まで上昇し得るような速度曲線を各時刻区間毎にその区間の時刻区間幅ｔｓとともに求める。なお、このとき求められる速度曲線の形態は、前記最終点と目標点との媒介変数の差（ｓ２−ｓ１）、前記最終点における速度ｆ１、速度上限値ｆ２、前記最終点における加速度ａ１、許容加速度及び許容ジャーク等の条件によって異なる。その各条件に応じた速度曲線の求め方が図１４〜図２０に示されている。
【０１１８】
図１４及び図１５には、最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）に達する前に速度が速度上限値ｆ２に達する場合が示されている。なお、ｔ２は、ｓ２に到達したときの時刻である。具体的には、図１４は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から許容加速度まで増加するように速度をｆ１から上昇させ（時刻区間ｔｓ１）、その後、許容加速度に等しい加速度で速度が上昇し（時刻区間ｔｓ２）、その後、速度が速度上限値ｆ２を超えないように許容ジャークに従って加速度を低下させて速度が速度上限値ｆ２に達し（時刻区間ｔｓ３）、その後、速度上限値ｆ２に等しい速度で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ４）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ１〜ｔｓ４とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図１５は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から増加するように速度をｆ１から上昇させる（時刻区間ｔｓ５）が、速度上限値ｆ２が近いため、速度が許容加速度に達する前に許容ジャークに従って加速度を低下させて速度上限値ｆ２に達し（時刻区間ｔｓ６）、その後、速度上限値ｆ２に等しい速度で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ７）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ５〜ｔｓ７とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。
【０１１９】
また、図１６〜図１８には、許容ジャークに従って加速度が低下している途中に目標点（ｓ２，ｆ２）に達する場合が示されている。具体的には、図１６は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から増加するように速度をｆ１から上昇させる（時刻区間ｔｓ８）が、最終点から目標点（ｓ２，ｆ２）までの距離（ｓ２−ｓ１）が小さいため、速度が許容加速度に達する前に、許容ジャークに従って加速度を低下させて速度が速度上限値ｆ２に達するとともに目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ９）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ８，ｔｓ９とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図１７は、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度がａ１から許容加速度まで増加するように速度をｆ１から上昇させ（時刻区間ｔｓ１０）、その後、許容加速度に等しい加速度で速度が上昇し（時刻区間ｔｓ１１）、その後、速度が速度上限値ｆ２を超えないように許容ジャークに従って加速度を低下させている途中で目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ１２）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って各時刻区間毎の速度曲線（速度関数）をその各区間の時刻区間幅ｔｓ１０〜ｔｓ１２とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ５に登録する。また、図１８は、最終点（ｓ１，ｆ１，ｔ１）から目標点（ｓ２，ｆ２）までが非常に近いとともにその最終点における速度ｆ１と速度上限値ｆ２とが非常に近く、且つ、最終点における加速度ａ１が大きいため、その最終点から許容ジャークに従って加速度をａ１から低下させながら速度がｆ１から上昇して速度上限値ｆ２に達するとともに目標点（ｓ２，ｆ２）に到達する（時刻区間ｔｓ１３）という形態の速度曲線を示しており、媒介変数時間関数導出部１８は、このような条件に従って時刻区間幅ｔｓ１３とともにその区間の速度曲線（速度関数）を算出し、その算出した速度曲線を時刻区間ｔｓ１３とともにメモリ５に登録する。
【０１２０】
また、図１９には、媒介変数ｓが目標点に対応する値ｓ２に達しても速度上限値ｆ２まで速度を上げることができない場合が示されている。媒介変数時間関数導出部１８は、速度曲線を算出していてこのような場合に該当する場合には、その算出した速度曲線をメモリ５に登録しない。
【０１２１】
また、図２０には、最終点（ｓ１，ｆ１，ｔ１）における速度ｆ１と速度上限値ｆ２が非常に接近しているとともにその最終点における加速度ａ１が比較的大きいため、最終点（ｓ１，ｆ１，ｔ１）から許容ジャークに従って加速度を低下させても速度が速度上限値ｆ２を超えてしまう場合が示されている。媒介変数時間関数導出部１８は、速度曲線の算出に際してこのような場合に該当する場合には、１つ前にメモリ５に登録された速度曲線のデータを取り消すとともに、さらにその１つ前にメモリ５に登録された速度曲線の最終点から今回の目標点に至り、且つ、速度が今回の目標点に対応する速度上限値に達し得るような速度曲線を求めるための再計算を行う。この場合の再計算の方法は、上記各場合と同様である。
【０１２２】
そして、媒介変数時間関数導出部１８は、上記のような速度曲線の算出と登録を順次行う。媒介変数時間関数導出部１８は、求めた速度曲線をメモリ５に登録する際、併せて、目標点に到達時の時刻ｔ２及び加速度ａ２をメモリ５に登録しておき、次の目標点を設定して速度曲線を算出するときには、その登録した時刻ｔ２を最終点における時刻ｔ１として用いるとともにその登録した加速度ａ２を最終点における加速度ａ１として用いて次の速度曲線を算出する。このように最終点における速度に対して次の目標点に対応する速度上限値が小さくなるまで求めた速度曲線によって、加減速曲線のうち加速領域の速度曲線が得られる。
【０１２３】
次に、媒介変数時間関数導出部１８は、加減速曲線のうちの減速領域についてパスの終点側から始点側へ向かって上記と同様の速度曲線の算出と登録を順次行い、それによってその減速領域の速度曲線を求める。そして、媒介変数時間関数導出部１８は、求めた加速領域の速度曲線の終点と減速領域の速度曲線の始点を繋ぎ合わせることによって加減速曲線ｄｓ（Ｔ）／ｄTを求める。そして、媒介変数時間関数導出部１８は、その求めた加減速曲線ｄｓ（Ｔ）／ｄＴを基準時刻Ｔで積分することにより媒介変数時間関数ｓ（Ｔ）を算出する。
【０１２４】
次に、パルス補間部２２による基準時刻Ｔの導出及びパルス補間と、制御部２４による各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂへのパルス出力が行われる（ステップＳ６）。
【０１２５】
このステップＳ６の詳細なプロセスは、図５及び図６のフローチャートに示されている。このプロセスでは、まず、パルス補間部２２は、基準時刻Ｔが上記ステップＳ５で求められた媒介変数時間関数の始点となる時刻に合うように当該基準時刻Ｔを初期セットするとともに、実時刻の単位時間に対する基準時刻の単位時間（基準単位時間）の割合の変化を示す加減速関数ｇ（ｔ）を１．０（定数）に設定し、同時に、後述する所要時間ｔｉｍｅを−１にセットする（図５のステップＳ５２）。
【０１２６】
次に、パルス補間部２２は、初期セットした基準時刻Ｔに対応する局部補間後ツールパス上のワーク座標系における位置を求める（ステップＳ５４）。具体的には、パルス補間部２２は、初期セットした基準時刻Ｔに対応する媒介変数ｓを上記媒介変数時間関数ｓ（Ｔ）から求め、その求めた媒介変数ｓと局部補間後ツールパスからその媒介変数ｓに対応する局部補間後ツールパス上のワーク座標系における位置を求める。
【０１２７】
次に、パルス補間部２２は、求めた局部補間後ツールパス上のワーク座標系における位置に対応する各移送軸毎の位置座標ｎｅｗｐ［］を求める（ステップＳ５６）。
【０１２８】
次に、パルス補間部２２は、実時刻の単位時間の経過数をカウントするカウンタ（以後、実時刻カウンタという）のカウント数ｔを０に初期セットし（ステップＳ５８）、前記ステップＳ５６で求めた各移送軸毎の位置座標ｎｅｗｐ［］を旧座標ｏｌｄｐ［］とする（ステップＳ６０）。
【０１２９】
次に、パルス補間部２２は、このときの実時刻カウンタのカウント数ｔに対応する加減速関数ｇ（ｔ）の値を基準単位時間ｄＴとして導出するとともに、このときの加減速関数ｇ（ｔ）のｔによる一次微分値を基準単位時間ｄＴの変化率ｄＧとして導出する（ステップＳ６２）。
【０１３０】
次に、パルス補間部２２は、上記ステップＳ５２で初期セットした基準時刻ＴにステップＳ６２で得た基準単位時間ｄＴを加算して新たな基準時刻Ｔを求める（ステップＳ６４）。
【０１３１】
次に、パルス補間部２２は、新たな基準時刻Ｔに対応する局部補間後ツールパス上の位置を上記ステップＳ５４と同様にして求める（ステップＳ６６）。
【０１３２】
次に、パルス補間部２２は、求めた局部補間後ツールパス上の位置に対応する各移送軸毎の位置座標ｎｅｗｐ［］を求める（ステップＳ６８）。
【０１３３】
その後、パルス補間部２２は、指令パルスを算出する（ステップＳ７０）。具体的には、パルス補間部２２は、ステップＳ６８で求めた各移送軸毎の位置座標ｎｅｗｐ［］から上記ステップＳ６０で設定された各移送軸毎の旧座標ｏｌｄｐ［］の対応するものを差し引くことによって、基準単位時間ｄＴ当たりの各移送軸における位置座標の変化量、すなわち各移送軸に対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの基準単位時間ｄＴ当たりの移送量を求め、その求めた移送量を実時刻の単位時間毎（前記特定周期毎）の指令パルスとする。
【０１３４】
その後、制御部２４が、パルス補間部２２によって求められた前記特定周期当たりの指令パルスを各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂのサーボモータへ出力する（ステップＳ７２）。これにより、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂは、対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａを対応する移送軸方向へ制御部２４から送られてくる指令パルスが示す移送量だけ特定周期当たりに移送する。
【０１３５】
次に、パルス補間部２２は、停止要求があるか判断する（図６のステップＳ７４）。具体的には、監視部１０は、停止信号発信部１２４ｂからの緊急停止信号の発信の有無を監視しており、停止信号発信部１２４ｂから緊急停止信号が発信された場合には、停止要求を出力し、停止信号発信部１２４ｂから緊急停止信号が発信されていない場合には、停止要求を出力しない。パルス補間部２２は、この監視部１０からの停止要求があるかないかを判断する。
【０１３６】
ここで、パルス補間部２２は、停止要求がないと判断した場合には、次に、速度変更要求があるか判断する（ステップＳ７６）。具体的には、監視部１０は、速度変更信号発信部１２８ｂからの速度変更信号の発信の有無を監視しており、速度変更信号発信部１２８ｂから速度変更信号が発信された場合には、速度変更要求を出力し、速度変更信号発信部１２８ｂから速度変更信号が発信されていない場合には、速度変更要求を出力しない。パルス補間部２２は、この監視部１０からの速度変更要求があるかないかを判断する。
【０１３７】
ここで、パルス補間部２２は、速度変更要求がないと判断した場合には、次に、現在の実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅ以下であるか否かを判断する（ステップＳ７８）。パルス補間部２２は、現在の実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅ以下であると判断した場合には、次に、現在の実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅに等しいか否かを判断する（ステップＳ８０）。ここで、パルス補間部２２は、現在の実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅに等しいと判断した場合には、現在のオーバーライド係数、すなわち基準単位時間ｄＴが目標のオーバーライド係数ｋａに到達したものとし、次に、その到達した目標オーバーライド係数ｋａが０よりも大きいか否かを判断する（ステップＳ８２）。パルス補間部２２は、到達した目標オーバーライド係数ｋａが０よりも大きいと判断した場合には、加減速関数ｇ（ｔ）をその到達した目標オーバーライド係数ｋａに等しい値（一定値）に設定するとともに、所要時間ｔｉｍｅを−１にセットし（ステップＳ８４）、その後、実時刻カウンタのカウント数ｔを＋１だけカウントアップする（ステップＳ８６）。
【０１３８】
次に、パルス補間部２２は、シャットダウンの処理を行うか否かを判断する（ステップＳ８８）。ここで、パルス補間部２２がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了し、パルス補間部２２がシャットダウンを行わないと判断した場合には、上記ステップＳ６０以降の処理が繰り返し行われる。
【０１３９】
なお、上記ステップＳ７８において、パルス補間部２２は、実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅよりも大きいと判断した場合には、次に、ステップＳ８８のシャットダウンの判断を行う。工作機械の起動後、指令入力装置１２２に特別指令が入力されていない場合には、上記ステップＳ５２でセットされた所要時間ｔｉｍｅ＝−１が維持されているため、上記ステップＳ７８の判断では、パルス補間部２２は、現在の実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅよりも大きいと判断する。従って、この場合、パルス補間部２２は、ステップＳ７８の次に、上記ステップＳ８８のシャットダウンの判断を行う。また、上記ステップＳ８０において、パルス補間部２２は、実時刻カウンタのカウント数ｔが所要時間ｔｉｍｅに等しくないと判断した場合には、次に、ステップＳ８６の実時刻カウンタのカウント数ｔのカウントアップを行い、その後、ステップＳ８８のシャットダウンの判断を行う。
【０１４０】
上記ステップＳ８８の後、再度行われるステップＳ６０では、パルス補間部２２は、上記ステップＳ６８で求めた各移送軸毎の位置座標ｎｅｗｐ［］を旧座標ｏｌｄｐ［］に設定し、その後のステップＳ６２では、その時点での実時刻カウンタのカウント数ｔに対応する加減速関数ｇ（ｔ）の値を基準単位時間ｄＴとして導出するとともに、その時点での加減速関数ｇ（ｔ）のｔによる一次微分値を基準単位時間ｄＴの変化率ｄＧとして導出する。
【０１４１】
一方、上記ステップＳ７４の判断において、パルス補間部２２は、停止要求があると判断した場合には、その時点における基準単位時間ｄＴを再始動オーバーライド係数ｋφとしてメモリ５に記憶させるとともに、目標オーバーライド係数ｋａを０にセットする（ステップＳ９０）。その後、パルス補間部２２は、現在の基準単位時間ｄＴを目標オーバーライド係数ｋａに等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間ｄＴの変化率ｄＧが０に変化するまでの加減速関数ｇ（ｔ）と、そのｄＴ及びｄＧの変化に要する所要時間ｔｉｍｅとを算出する（ステップＳ９２）。ここでは、目標オーバーライド係数ｋａが０にセットされているので、パルス補間部２２は、現在の基準単位時間ｄＴを０に低下させるまでの加減速関数ｇ（ｔ）とその基準単位時間ｄＴを０に低下させるまでに要する所要時間ｔｉｍｅとを求める。その後、パルス補間部２２は、実時刻カウンタのカウント数ｔを０にリセットし（ステップＳ５８）、続いて、ステップＳ６０〜Ｓ８８の処理が繰り返し行われる。このときのステップＳ６２では、パルス補間部２２は、基準単位時間ｄＴをステップＳ９２で求めた加減速関数ｇ（ｔ）から求める。このようにして、基準単位時間ｄＴがステップＳ９２で求められた加減速関数ｇ（ｔ）及び所要時間ｔｉｍｅに応じて０まで変化し、それに伴って、指令パルスが指示する各移送軸毎の移送量が０まで変化する。その結果、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送の緊急停止（移送対象物の緊急停止）が実行される。
【０１４２】
また、上記ステップＳ７６の判断において、パルス補間部２２は、監視部１０からの速度変更要求があると判断した場合には、目標オーバーライド係数ｋａを速度変更要求に含まれる要求オーバーライド係数ｋｒと等しい値にセットする（ステップＳ９４）。その後、パルス補間部２２は、現在の基準単位時間ｄＴを目標オーバーライド係数ｋａ（要求オーバーライド係数ｋｒ）に等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間ｄＴの変化率ｄＧが０に変化するまでの加減速関数ｇ（ｔ）と、そのｄＴ及びｄＧの変化に要する所要時間ｔｉｍｅとを求める（ステップＳ９２）。その後、パルス補間部２２は、実時刻カウンタのカウント数ｔを０にリセットし（ステップＳ５８）、続いて、ステップＳ６０〜Ｓ８８の処理が繰り返し行われる。このときのステップＳ６２では、パルス補間部２２は、基準単位時間ｄＴを、ステップＳ９２で求めた、基準単位時間ｄＴを要求オーバーライド係数ｋｒに等しい単位時間に変化させる加減速関数ｇ（ｔ）から求める。このようにして、基準単位時間ｄＴが加減速関数ｇ（ｔ）及び所要時間ｔｉｍｅに応じて要求オーバーライド係数ｋｒに等しい単位時間まで変化し、それに応じて、指令パルスが指示する各移送軸毎の移送量が変化する。その結果、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送速度の変更（移送対象物の移動速度の変更）が実行される。
【０１４３】
また、上記ステップＳ８２において、パルス補間部２２は、到達した目標オーバーライド係数ｋａが０よりも大きくない、すなわち到達した目標オーバーライド係数ｋａが０であると判断した場合には、次に、シャットダウンの処理を行うか否かを判断する（ステップＳ９６）。なお、到達した目標オーバーライド係数ｋａが０である状態とは、基準単位時間ｄＴが０となり、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂのサーボモータが駆動停止して移送対象物が移動停止している状態である。ここで、パルス補間部２２がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了する。一方、パルス補間部２２がシャットダウン処理は行わないと判断した場合には、次に、パルス補間部２２は、再始動要求があるか判断する（ステップＳ９８）。具体的には、監視部１０は、再始動信号発信部１２６ｂからの再始動信号の発信の有無を監視しており、再始動信号発信部１２６ｂから再始動信号が発信された場合には、再始動要求を出力し、再始動信号発信部１２６ｂから再始動信号が発信されていない場合には、再始動要求を出力しない。パルス補間部２２は、この監視部１０からの再始動要求があるかないかを判断する。
【０１４４】
ここで、パルス補間部２２は、再始動要求がないと判断した場合には、次に、上記ステップＳ９６のシャットダウンの判断を行い、再始動要求があると判断した場合には、目標オーバーライド係数ｋａをメモリ５に記憶されている再始動オーバーライド係数ｋφと等しい値にセットする（ステップＳ１００）。その後、パルス補間部２２は、現在の基準単位時間ｄＴを目標オーバーライド係数ｋａ（再始動オーバーライド係数ｋφ）に等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間ｄＴの変化率ｄＧが０に変化するまでの加減速関数ｇ（ｔ）と、そのｄＴ及びｄＧの変化に要する所要時間ｔｉｍｅとを求める（ステップＳ９２）。その後、パルス補間部２２は、実時刻カウンタのカウント数ｔを０にリセットし（ステップＳ５８）、続いて、ステップＳ６０〜Ｓ８８の処理が繰り返し行われる。このときのステップＳ６２では、パルス補間部２２は、基準単位時間ｄＴを、ステップＳ９２で求めた、基準単位時間ｄＴを再始動オーバーライド係数ｋφに等しい単位時間に変化させる加減速関数ｇ（ｔ）から求める。このようにして、基準単位時間ｄＴが加減速関数ｇ（ｔ）及び所要時間ｔｉｍｅに応じて０から再始動オーバーライド係数ｋφに等しい単位時間まで変化し、それに応じて、指令パルスが指示する各移送軸毎の移送量が変化する。その結果、各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送が再開され、移送対象物が再始動する。
【０１４５】
以上のようにして、本実施形態の数値制御装置２による制御プロセスが行われる。
【０１４６】
以上説明したように、本実施形態では、１回のパルス補間で各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作を制御するための特定周期毎の指令パルスを求めることができ、演算処理を簡略化することができる。
【０１４７】
具体的には、本実施形態では、補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間を局部補間する処理と、移送対象物の加速又は減速を伴う動作を指示するための特別指令の入力があった場合に基準単位時間ｄＴの長さをその特別指令によって指示される移送対象物の速度変化に応じた長さに調整した新たな基準時刻Ｔを求める処理を、移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送を制御するための指令パルスを求めるパルス補間処理の前に行うため、ツールパスの局部補間処理及び新たな基準時刻Ｔの導出処理の後、１回のパルス補間で前記指令パルスを求めることができる。その結果、本実施形態では、演算処理を簡略化することができる。
【０１４８】
また、本実施形態では、パス局部フィルタ１６により、補間対象点の前後において一次微分の変化が不連続である場合には一次微分が連続的な変化となるように、また、補間対象点の前後において一次微分の変化が連続で二次微分の変化が不連続である場合には二次微分の変化が連続的な変化となるようにツールパスの補間区間が局部補間される。補間対象点の前後において一次微分の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の速度変化が不連続になるが、本実施形態では、そのような補間対象点の前後における移送対象物の不連続な速度変化を連続的な速度変化に変えることができる。また、補間対象点の前後において二次微分の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の加速度変化が不連続になるが、本実施形態では、そのような補間対象点の前後における移送対象物の不連続な加速度変化を連続的な加速度変化に変えることができる。従って、本実施形態では、ツールパスに含まれていた補間対象点としての異常データを補間してその異常データに起因する移送対象物の急激な速度変化及び急激な加速度変化を緩やかにすることができ、その結果、ツールパス中の異常データに起因する機械ショックの発生を抑制することができる。
【０１４９】
また、本実施形態では、前記特別指令に応じて各移送軸に共通の基準単位時間ｄＴの長さを調整して新たな基準時刻Ｔを求め、その新たな基準時刻Ｔに基づいて各移送軸毎の特定周期当たりの移送量を示す指令パルスを求め、その指令パルスに従って移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂに支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａを移送させる。このため、その移送によって実施される移送対象物の移動では、元々のツールパスにおけるワーク座標系の各座標軸間の相対的な位置関係が維持される。このため、前記特別指令の入力に伴う加工形状の誤差の発生を抑制することができる。また、本実施形態では、パス局部フィルタ１６によりツールパスの補間区間のみが局部補間されるため、ツールパス全体について補間処理を行う場合と異なり、補間区間以外の区間において補間処理に起因する加工形状の誤差が生じるのを防ぐことができる。
【０１５０】
また、本実施形態では、パス局部フィルタ１６により、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間が局部補間されるため、局部補間後ツールパスに基づいたその後の各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作の制御では、補間区間の始点及び終点において移送対象物を急激に動かすような各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作の急変が生じるのを防ぐことができる。
【０１５１】
また、本実施形態では、パス局部フィルタ１６が、ツールパスにおいて隣り合う補間対象点の補間区間同士が重複している場合には、それら重複する補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを１つの補間区間として、その補間区間内のツールパスを局部補間する。このため、複数の補間対象点が近接している振動のような異常データがツールパスに含まれている場合でも、それらの複数の補間対象点付近のツールパスを一度に局部補間して滑らかな曲線を示すように補間することができる。
【０１５２】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれる。
【０１５３】
例えば、本発明による数値制御装置は、上記実施形態で示したような工作機械以外の種類の工作機械にも適用することが可能である。例えば、５軸工作機械や、パラレルメカニズムを有する工作機械や、旋盤、その他の各種工作機械に本発明による数値制御装置を適用することができる。
【０１５４】
また、パス局部フィルタ１６は、媒介変数による一次微分値の変化が連続でかつ媒介変数による二次微分値の変化が不連続になっている指令点と媒介変数による一次微分値の変化が不連続になっている指令点とのうちいずれか一方のみを補間対象点としてもよい。
【０１５５】
また、パス局部フィルタ１６による分配区間幅及び補間区間幅の導出方法は、上記した方法に限定されるものではなく、上記方法以外の種々の導出方法により分配区間幅及び補間区間幅を求めてもよい。また、上記実施形態では、補間区間幅を分配区間幅に等しい大きさの区間幅としたが、補間区間幅はこのような区間幅に限定されない。すなわち、補間区間幅は、分配区間幅よりも大きい区間幅であってもよい。
【０１５６】
また、パス局部フィルタ１６は、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がることに加えて、局部補間後ツールパスが当該局部補間後ツールパスの媒介変数による一次微分が補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるようにツールパスの補間区間を局部補間してもよい。この場合には、パス局部フィルタ１６の誤差補正部１６ｂは、誤差補正パスを求める際、補間区間の始点における誤差補正パスの値が当該始点における誤差付き補間パスの値から当該始点におけるツールパスの値を減じて得た値に等しく、かつ、補間区間の終点における誤差補正パスの値が当該終点における誤差付き補間パスの値から当該終点におけるツールパスの値を減じて得た値に等しいという条件に加えて、その補間区間の始点における誤差付き補間パスの一次微分値から当該始点におけるツールパスの一次微分値を減じて得た値に当該始点における誤差補正パスの一次微分値が等しく、かつ、補間区間の終点における誤差付き補間パスの一次微分値から当該終点におけるツールパスの一次微分値を減じて得た値に当該終点における誤差補正パスの一次微分値が等しいという条件を満たす誤差補正パスを求める。
【０１５７】
そして、誤差補正部１６ｂがこのような誤差補正パスを誤差付き補間パスから差し引くことによって求めたパスをツールパスの補間区間に置換して得た局部補間後ツールパスでは、補間区間の始点の前後及び終点の前後で一次微分が連続して変化するようなパスとなる。その結果、その局部補間後ツールパスに基づいたその後の各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度が連続して変化するように各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送を制御することができる。
【０１５８】
また、パス局部フィルタ１６は、局部補間後ツールパスが補間区間の始点及び終点それぞれの前後で連続して繋がるとともに、その局部補間後ツールパスの媒介変数による一次微分が補間区間の始点及び終点のそれぞれの前後で連続して変化することに加えて、さらに、局部補間後ツールパスが当該局部補間後ツールパスの媒介変数による二次微分値が補間区間の始点の前後及び終点の前後でそれぞれ連続して変化するパスとなるようにツールパスの補間区間を局部補間してもよい。この場合には、パス局部フィルタ１６の誤差補正部１６ｂは、上記２つの条件に加えて、補間区間の始点における誤差付き補間パスの二次微分値から当該始点におけるツールパスの二次微分値を減じて得た値に当該始点における誤差補正パスの二次微分値が等しく、かつ、補間区間の終点における誤差付き補間パスの二次微分値から当該終点におけるツールパスの二次微分値を減じて得た値に当該終点における誤差補正パスの二次微分値が等しいという条件を満たす誤差補正パスを求める。
【０１５９】
そして、誤差補正部１６ｂがこのような誤差補正パスを誤差付き補間パスから差し引くことによって求めたパスをツールパスの補間区間に置換して得た局部補間後ツールパスでは、補間区間の始点の前後及び終点の前後で媒介変数による一次微分と二次微分がそれぞれ連続して変化するようなパスとなる。その結果、その局部補間後ツールパスに基づいたその後の各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂの動作の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度と加速度が共に連続して変化するように各移送部１０２ｃ，１０６ｂ，１０８ｂ，１１０ｂによる対応する支持体１０２ｂ，１０６ａ，１０８ａ，１１０ａの移送を制御することができる。
【０１６０】
また、上記実施形態では、直線型の分配関数を用いてツールパスの一次微分を分配区間へ分配したが、その分配方式に限定されるものではない。すなわち、ツールパスの一次微分の分配に用いる分配関数は、上記した分配関数以外の種々の分配関数を用いてもよい。
【０１６１】
なお、この分配に用いる分配関数は、区間［−Ａ／２，Ａ／２］における積分が１となり、かつ、その区間の中央に対して左右対称の形状を示す関数が望ましい。このような分配関数の一例として、次式で表されるベル型の分配関数ｆ（ｓ）が挙げられる。
【０１６２】
【数８】
0005417392.tif 000009
【０１６３】
なお、分配区間−Ａ／２≦ｓ≦Ａ／２の外側では、ｆ（ｓ）＝０である。
【０１６４】
このベル型の分配関数を用いた場合には、上記直線型の分配関数を用いた場合よりも補間区間をより滑らかな曲線となるように補間することができる。
【符号の説明】
【０１６５】
２  数値制御装置
４  記憶部
１２  ツールパス導出部
１６  パス局部フィルタ
１６ａ  局部補間部
１６ｂ  誤差補正部
１８  媒介変数時間関数導出部
２２  パルス補間部
２４  制御部
１０２  ワーク移送装置（移送装置）
１０２ｂ  ワーク支持体（支持体）
１０２ｃ  ワーク支持体移送部（移送部）
１０５  工具
１０６  鉛直移送装置（移送装置）
１０６ａ  鉛直支持体（支持体）
１０６ｂ  鉛直支持体移送部（移送部）
１０８  工具第１水平移送装置（移送装置）
１０８ａ  第１水平支持体（支持体）
１０８ｂ  第１水平支持体移送部（移送部）
１１０  工具第２水平移送装置（移送装置）
１１０ａ  第２水平支持体（支持体）
１１０ｂ  第２水平支持体移送部（移送部）
１２２  指令入力装置
１００  ワーク
【図１】
0005417392.tif 000010
【図２】
0005417392.tif 000011
【図３】
0005417392.tif 000012
【図４】
0005417392.tif 000013
【図５】
0005417392.tif 000014
【図６】
0005417392.tif 000015
【図７】
0005417392.tif 000016
【図８】
0005417392.tif 000017
【図９】
0005417392.tif 000018
【図１０】
0005417392.tif 000019
【図１１】
0005417392.tif 000020
【図１２】
0005417392.tif 000021
【図１３】
0005417392.tif 000022
【図１４】
0005417392.tif 000023
【図１５】
0005417392.tif 000024
【図１６】
0005417392.tif 000025
【図１７】
0005417392.tif 000026
【図１８】
0005417392.tif 000027
【図１９】
0005417392.tif 000028
【図２０】
0005417392.tif 000029