(57)【要約】【課題】工作機械毎に設ける数値制御装置で行う処理をできるだけ少なくし、より性能が低い装置を数値制御装置として用いることができるようにすることを目的とする。【解決手段】数値制御装置は、加工プログラムに基づく工作機械の駆動部を駆動するための補間データを、実行順に順次受信する受信手段と、前記受信手段で受信された補間データが所定量一時記憶される記憶部と、前記受信手段による前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段とを備え、前記補間データは、加減速処理が予め行われた補間データである。【選択図】図１
2016051290.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムに基づく工作機械の駆動部を駆動するための補間データを、実行順に順次受信する受信手段と、
前記受信手段で受信された補間データが所定量一時記憶される記憶部と、
前記受信手段による前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段とを備え、
前記補間データは、加減速処理が予め行われた補間データである
ことを特徴とする数値制御装置。
【請求項２】
前記補間データは、前記工作機械の移動速度を示すデータを含み、
割込みを検出する割込検出手段と、
前記割込検出手段で検出された割込みが示す指示に応じて、前記移動速度の時系列の変化を表す係数を作成する係数作成手段とを、更に備え、
前記補間データ出力手段は、前記係数に応じた移動量に相当する補間データを前記記憶部から読み出し、読み出した補間データに基づいた前記実行データを前記駆動部に出力する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記係数作成手段は、前記割込検出手段が前記移動速度の変更を指示する割込みを検出した場合、割込みを検出したときの移動速度から、指示された変更後の移動速度まで、徐々に速度が変化するような前記係数を作成する
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記係数作成手段は、前記割込検出手段が前記工作機械の停止を指示する割込みを検出した場合、割込みを検出したときの移動速度から、移動速度がゼロとなるまで、徐々に速度が減少するような前記係数を作成する
ことを特徴とする請求項２又は３に記載の数値制御装置。
【請求項５】
前記係数作成手段は、前記割込検出手段が検出した停止を指示する割込みが、前記記憶手段に記憶されている補間データの量が予め定められている所定の閾値を下回ったことを示す割込みである場合、割込みを検出したときの移動速度から、移動速度がゼロとなるまで、徐々に速度が減少するような前記係数を作成し、
前記補間データ出力手段は、前記記憶部から読み出す補間データが所定の閾値より少なくなったときは、前記記憶部に記憶されていた補間データに基づいた前記実行データを前記駆動部に出力する
ことを特徴とする請求項２乃至４のいずれか一項に記載の数値制御装置。
【請求項６】
補間データ生成装置と１以上の数値制御装置とを有する工作機械制御システムであって、
前記補間データ生成装置は、
加工プログラムを解析し、工作機械の駆動部を駆動する補間データであって、加減速処理を行った補間データを生成する補間データ生成部と、
前記数値制御装置に、前記補間データを順次送信するデータ送信手段とを備え、
前記数値制御装置は、
前記補間データを順次受信する受信手段と、
前記受信手段で受信された補間データが一時記憶される記憶部と、
前記受信手段による前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段とを備える
ことを特徴とする工作機械制御システム。
【請求項７】
加工プログラムに基づく工作機械の駆動部を駆動するための補間データが所定量一時記憶される記憶部を備える数値制御装置で用いられる数値制御方法であって、
前記補間データを、実行順に順次受信する受信ステップと、
前記受信ステップにおける前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力ステップとを備え、
前記補間データは、加減速処理が予め行われた補間データである
ことを特徴とする数値制御方法。
【請求項８】
加工プログラムに基づく工作機械の駆動部を駆動するための補間データが所定量一時記憶される記憶部を備える数値制御装置で用いられる数値制御プログラムであって、
前記補間データを、実行順に順次受信する受信手段と、
前記受信手段での前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段としてコンピュータを機能させ、
前記補間データは、加減速処理が予め行われた補間データである
ことを特徴とする数値制御プログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械用の数値制御装置に関する。
【背景技術】
【０００２】
従来から、工作機械の数値制御方式の１つに、ＮＣプログラムを使用するＮＣ制御方式がある。ユーザは、目的とする加工工程を工作機械に指令するために、ＮＣプログラムを作成する。ＮＣプログラムは、主軸や刃物台等に対する移動指令を表すＧコード、使用する工具の呼出指令を表すＴコード、補助機能指令を表すＭコードなどのコード体系を持つプログラムである。工作機械の数値制御装置（ＮＣ装置）が、ＮＣプログラムを１ブロックずつ読み込み、その指令（ＮＣコード）を解釈しながら、複数の指令を順次実行していく。
【０００３】
このような数値制御装置は、工作機械毎に専用のハードウェアが作成されており、仕様変更やバージョンアップに対応するためには、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ボードやソフトウェアの作り直しが発生する場合がある。
【０００４】
そこで、例えば、周辺機器接続ボード以外は汎用品を用いる技術が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−３４５２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、汎用品を用いて数値制御装置を作成したとしても、工作機械毎に、ＮＣプログラムを解釈して工作機械を制御する数値制御装置を設けることに変わりはない。
【０００７】
本発明は、工作機械毎に設ける数値制御装置で行う処理をできるだけ少なくし、より性能が低い装置を数値制御装置として用いることができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかる一態様の数値制御装置は、加工プログラムに基づく工作機械の駆動部を駆動するための補間データを、実行順に順次受信する受信手段と、前記受信手段で受信された補間データが所定量一時記憶される記憶部と、前記受信手段による前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段とを備え、前記補間データは、加減速処理が予め行われた補間データであることを特徴とする。
【０００９】
また、他の一態様の数値制御方法は、加工プログラムに基づく工作機械の駆動部を駆動するための補間データが所定量一時記憶される記憶部を備える数値制御装置で用いられる数値制御方法であって、前記補間データを、実行順に順次受信する受信ステップと、前記受信ステップにおける前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力ステップとを備え、前記補間データは、加減速処理が予め行われた補間データであることを特徴とする。
【００１０】
また、他の一態様の数値制御プログラムは、加工プログラムに基づく工作機械の駆動部を駆動するための補間データが所定量一時記憶される記憶部を備える数値制御装置で用いられる数値制御プログラムであって、前記補間データを、実行順に順次受信する受信手段と、前記受信手段での前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段としてコンピュータを機能させ、前記補間データは、加減速処理が予め行われた補間データであることを特徴とする。
【００１１】
この構成によれば、数値制御装置は加減速処理が予め行われている補間データを受信するので、ＮＣプログラムの解析や加減速処理等を行う必要がない。従って、行うべき処理が従来の数値制御処理に比べて少ないので、より性能が低いＣＰＵを用いることが可能となる。従来のように、工作機械毎に専用のハードウェアを配置する必要が無く、予め加減速処理を施した補間データを作成しておき、工作機械毎に、性能が低く安価な上記数値制御装置を配置すればよい。つまり、従来は１台の専用のハードウェアで行っていた処理が、加減速処理を施した補間データを作成する補間データ生成装置と、工作機械に配置される上記数値制御装置とに分散されたことになる。そして、分散されたことにより、数値制御装置をＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等で補間データ生成装置と接続して補間データを受信できるようにさえすれば、補間データ生成装置の配置位置に縛られずに、数値制御装置の配置位置を自由に決定することが可能となる。従って、上記数値制御装置を用いることで、適材適所且つ効率的なシステムを構築することが可能となる。
【００１２】
また、上述の数値制御装置において、前記補間データは、前記工作機械の移動速度を示すデータを含み、割込みを検出する割込検出手段と、前記割込検出手段で検出された割込みが示す指示に応じて、前記移動速度の時系列の変化を表す係数を作成する係数作成手段とを、更に備え、前記補間データ出力手段は、前記係数に応じた移動量に相当する補間データを前記記憶部から読み出し、読み出した補間データに基づいた前記実行データを前記駆動部に出力することが好ましい。
【００１３】
この構成によれば、割込みを検出して、その割込みが示す指示に応じて工作機械の移動速度を変更することができるので、数値制御装置毎に変更が可能となる。
【００１４】
また、上述の数値制御装置において、前記係数作成手段は、前記割込検出手段が前記移動速度の変更を指示する割込みを検出した場合、割込みを検出したときの移動速度から、指示された変更後の移動速度まで、徐々に速度が変化するような前記係数を作成することが好ましい。
【００１５】
この構成によれば、移動速度を変更する指示の割込みを検出した場合、移動速度を徐々に変更して、指示された速度にするので、機械に振動を与えること無くスムーズに速度変更を行うことが可能となる。
【００１６】
また、上述の数値制御装置において、前記係数作成手段は、前記割込検出手段が前記工作機械の停止を指示する割込みを検出した場合、割込みを検出したときの移動速度から、移動速度がゼロとなるまで、徐々に速度が減少するような前記係数を作成することが好ましい。
【００１７】
この構成によれば、停止を指示する割込みを検出した場合、移動速度を徐々に落として行って停止するので、機械に振動を与えること無くスムーズに停止することが可能となる。
【００１８】
また、上述の数値制御装置において、前記係数作成手段は、前記割込検出手段が検出した停止を指示する割込みが、前記記憶手段に記憶されている補間データの量が予め定められている所定の閾値を下回ったことを示す割込みである場合、割込みを検出したときの移動速度から、移動速度がゼロとなるまで、徐々に速度が減少するような前記係数を作成し、前記補間データ出力手段は、前記記憶部から読み出す補間データが所定の閾値より少なくなったときは、前記記憶部に記憶されていた補間データに基づいた前記実行データを前記駆動部に出力することが好ましい。
【００１９】
この構成によれば、記憶されている補間データの量が閾値より少なくなったという警告の割込みを検出した場合、記憶されていた補間データを利用して、移動速度を徐々に落として停止するので、機械に振動を与えること無くスムーズに停止することが可能となる。
【００２０】
本発明にかかる他の一態様の工作機械制御システムは、補間データ生成装置と１以上の数値制御装置とを有する工作機械制御システムであって、前記補間データ生成装置は、加工プログラムを解析し、工作機械の駆動部を駆動する補間データであって、加減速処理を行った補間データを生成する補間データ生成部と、前記数値制御装置に、前記補間データを順次送信するデータ送信手段とを備え、前記数値制御装置は、前記補間データを順次受信する受信手段と、前記受信手段で受信された補間データが一時記憶される記憶部と、前記受信手段による前記補間データの受信と並行して、前記記憶部から補間データを実行順に順次読み出して、読み出した補間データに基づく実行データを前記駆動部に出力する補間データ出力手段とを備えることを特徴とする。
【００２１】
この構成によれば、補間データ生成装置が加減速処理を行った補間データを作成するので、数値制御装置は従来の数値制御処理に比べて性能が低いＣＰＵを用いることが可能となる。つまり、１台の高性能の補間データ作成装置を用意すれば、複数の数値制御装置に補間データを提供することが可能となる。また、数値制御装置は、例えば、社内ネットワーク等から補間データを受信できるので、数値制御装置の配置を自由に行うことが可能となる。
【発明の効果】
【００２２】
本発明にかかる数値制御装置及び工作機械制御システムを用いた工作機械のＮＣ制御方法では、工作機械ごとに設ける数値制御装置として、より性能が低い装置を用いることができる。
【図面の簡単な説明】
【００２３】
【図１】実施形態にかかる工作機械制御システムの機能ブロック図である。
【図２】図１に示す数値制御装置のオーバライド処理を説明するための図である。
【図３】図１に示す数値制御装置の停止処理を説明するための図である。
【図４】図１に示す数値制御装置の補間データが不足した場合の停止処理を説明するための図である。
【図５】指令パスが円弧の場合に、補間データの不足による停止を説明するための図である。
【図６】図１に示す数値制御装置の実行データ出力処理のフローチャートである。
【図７】補間データの読出しを説明するための図である。
【図８】従来の数値制御装置の機能ブロックの例を示す図である。
【図９】従来の補間データの例を示す図である。
【発明を実施するための形態】
【００２４】
＜実施形態＞
以下、本発明にかかる実施の一形態を図面に基づいて説明する。
【００２５】
実施形態の工作機械制御システム１００は、図１で示すように、補間データ作成装置１と、補間データ作成装置１とネットワーク２を介して接続される数値制御装置３とを備える。実施形態では、補間データ作成装置１は、１つであり、数値制御装置３は、複数在る工作機械ごとに設置されているものとする。
【００２６】
ここで、図８を用いて、従来の数値制御装置の例を説明する。破線で囲んだ部分が、従来の数値制御装置が有する機能である。ＮＣプログラムを１ブロック読み込み、プログラム解析部においてプログラムを解釈し、補間処理部において、補間データを作成する。例えば、ＮＣプログラムが指示する工作機械の指令パスが円弧である場合は、円弧の半径、指令速度、円弧の中心に対する工具の現在位置等を基に、円弧補間データを作成する。補間データとは、工具の軌跡を示すＸＹＺ座標（ベクトル）の集まりである。各軸の速度の急激な変化により機械に発生するショックを軽減させるために、補間後加減速処理部において、補間データはショックを抑制するための処理が行われる。また、必要に応じて、補間前加減速処理部においても、補間データは加工形状誤差を抑制するための処理が行われる。数値制御装置は、補間データに基づいて、サーボ制御部に指示を出すと、ＮＣプログラムの次の１ブロックを読み込み、処理を繰り返す。
【００２７】
このように、従来の数値制御装置では、ＮＣプログラムを、いわば、逐次実行している。
【００２８】
本実施形態の工作機械制御システム１００では、上述の補間後加減速処理、及び、補間前加減速処理（以下、「加減速処理」という。）を、予め施した補間データを作成し、工作機械の数値制御装置それぞれは、加減速処理が施された補間データを読み込んで実行する。工作機械制御システム１００では、処理量が多くシーケンシャルな処理、つまり、ＮＣプログラムの解釈処理や加減速処理を、処理能力の高い１台の補間データ作成装置を用いて行い、加減速処理が施された補間データを作成する。そして、各工作機械に設置された数値制御装置は、予め加減速処理がなされた補間データを実行する。つまり、数値制御装置は、処理量の多い処理を行う必要がないため、比較的低い性能のＣＰＵを用いることが可能となる。
【００２９】
また、工作機械制御システム１００の数値制御装置３では、ユーザからの指示によるオーバライド処理（手動による速度制御）や、緊急停止処理などに対応するためのリアルタイム制御に工夫がなされている。従来の数値制御装置では、このようなユーザからの指示や緊急停止等に対処する場合は、例えば、補間後加減速処理部（図８参照）においてユーザの指示等を実現するように、補間処理部が作成した補間データに対して、最終段の処理として加減速処理を行っている。しかし、予め加減速処理が施された補間データを実行する本実施形態の数値制御装置３では、特別の工夫が必要となるからである。
【００３０】
以下、実施形態にかかる工作機械制御システムについて説明する。
【００３１】
＜構成＞
図１は、工作機械制御システム１００の補間データ作成装置１及び数値制御装置３の機能ブロック図である。
【００３２】
補間データ作成装置１は、ＮＣプログラム記憶部１１、プログラム解析部１２、補間データ作成部１３、補間データ記憶部１４、及び、補間データ送信部１５を備える。
【００３３】
ＮＣプログラム記憶部１１は、工作機械に加工工程を指令するためのＮＣプログラムを記憶する。
【００３４】
プログラム解析部１２は、ＮＣプログラム記憶部１１に記憶されているＮＣプログラムを解析し、実行形式のデータに変換する。
【００３５】
補間データ作成部１３は、加減速処理部１３１、補間処理部１３２を有し、プログラム解析部１２が作成した実行形式のデータを基に、補間データを作成し、作成した補間データを補間データ記憶部１４に記憶させる。
【００３６】
加減速処理部１３１は、必要に応じて、いわゆる補間前加減速処理、及び、補間後加減速処理を行う。加減速処理とは、工作機械の各軸の速度の急激な変化を抑制するために行う処理であり、軸を第１の位置から第２の位置に移動させる場合に、第１の位置における速度から、所定の期間内（時定数）で、第２の位置において目標の速度となるように、軸の送り速度を徐々に減速又は加速させる処理をいう。例えば、補間前加減速処理として、コーナ部での各軸の速度の急激な変化を抑制するために、各軸の速度変化量があらかじめ設定した許容速度差以下になるようなコーナ部速度が算出される。そして、補間前加減速処理では、コーナ部での速度が、算出されたコーナ部速度になるようにコーナ部手前から送り速度を減速させ、コーナ部到達後に送り速度を加速させるように速度制御が行われる。更に機械に発生するショックを抑制するため、補間後加減速処理として、補間前加減速処理及び補間処理により決定した各軸の速度を時間基準で平均化されるように制御等が行われる。
【００３７】
補間処理部１３２は、加減速処理部１３１により補間前加減速処理が施された実行形式のデータから、補間データを作成する機能を有する。実施形態では、加減速処理部１３１と補間処理部１３２を別の機能部として記載しているが、協働して補間データを作成することとしてもよい。
【００３８】
ここで、補間データは、工作機械の工具の経路上の複数の座標値を含み、座標値は、所定の単位期間ごとの工具の座標値を示す。つまり、単位期間が経過した場合に存在すべき位置を、順に示している。補間データには、単位期間の移動距離（移動量）、言い換えれば、移動速度が含まれていることになる。
【００３９】
補間データ記憶部１４は、補間データ作成部１３が作成した補間データを記憶する。
【００４０】
補間データ送信部１５は、所定の周期で、予め定められた量の補間データを補間データ記憶部１４から実行順に読み出し、ネットワーク２を介して数値制御装置３に送信する。
【００４１】
次に、数値制御装置３は、補間データ受信部３１、補間データ書込部３２、補間データバッファ３３（記憶部）、補間データ読出部３４、実行データ出力部３５（補間データ出力部）、割込検出部３６、及び、係数作成部３７を備える。
【００４２】
補間データ受信部３１は、補間データ作成装置１から送信される補間データを、ネットワーク２を介して受信する。尚、ネットワーク２は、有線、無線のいずれでも良く、補間データ作成装置１から補間データを受信できればよい。
【００４３】
実施形態では、補間データは、いわゆるＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）方式で管理される。従って、補間データバッファ３３は、補間データを一時的に記憶しておく機能を有し、補間データ書込部３２は、補間データ受信部３１が受信した補間データを、受信した順に補間データバッファ３３に書き込む。そして、補間データ読出部３４は、補間データ書込部３２によって書き込まれた順に、つまり、古く格納された補間データから順に補間データバッファ３３から読み出す。補間データバッファ３３に記憶される補間データの量は、実施形態では、サーボモータ制御部５に対し、約１０秒間の間、駆動の指示ができる量であるものとする。尚、このデータ量は、数値制御装置３のＣＰＵ性能や、サーボモータ制御部５の性能等を勘案して決定される。このように、工作機械システム１００では、言うなれば、ストリーミング方式で補間データの送信及び実行がなされていると言える。
【００４４】
補間データ読出部３４は、後述の係数作成部３７が作成する移動速度を表す係数に応じた、単位時間あたりの移動量に相当する補間データを読み出し、実行データ出力部３５に渡す。係数に応じた移動量については、＜係数＞の項で説明する。
【００４５】
実行データ出力部３５は、補間データ読出部３４が補間データバッファ３３から読み出した補間データから、実行データを作成し、作成した実行データをサーボモータ制御部５に出力する。サーボモータ制御部５は、数値制御装置３が対応付けて設置されている工作機械６の軸等を駆動するサーボモータを制御する機能部である。
【００４６】
割込検出部３６は、外部からの割込み、及び、内部からの割込みを検出する。外部からの割込みとは、数値制御装置３に対するユーザの指示である。この指示は、例えば、数値制御装置３の操作盤等である操作部４がユーザにより操作されることで行われる。例えば、工作機械の移動速度の変更、停止等である。また、内部からの割込みとは、数値制御装置３の機械的な異常を検知した場合の緊急停止指示や、補間データバッファ３３に記憶されている補間データが無くなった場合、又は、予め定められた閾値を下回った場合の停止指示等である。尚、これら３種類以外の割込みを検出することとしてもよい。
【００４７】
係数作成部３７は、オーバライド処理部３７１、停止処理部３７２、データ不足処理部３７３を有し、割込検出部３６が検出した割込みの種類に応じて、係数を算出する。係数は、所定期間毎の値であっても、関数であってもよい。この係数は、補間データ読出部３４が補間データを読み出す際に用いられる。
【００４８】
実施形態では、係数作成部３７は、３種類の割込みを検出するものとする。オーバライド割込み、停止割込み、データ不足割込みである。オーバライド割込みは、ユーザにより操作部４のオーバライドスイッチが操作され、速度の変更指示が成されたことを示す割込みである。停止割込みは、ユーザにより操作部４を介して停止指示が成されたこと、又は、数値制御装置３に異常が発生したことを示す割込みである。データ不足割込みは、補間データバッファ３３に記憶されている補間データの量が、閾値を下回っていることを示す割込みである。例えば、補間データバッファ３３が空になる場合とは、ネットワーク２等の通信異常等の原因が考えられる。このデータ不足割込みは、補間データ読出部３４が、補間データバッファ３３から補間データを読み出す際に検知して割込検出部３６に通知する。
【００４９】
オーバライド処理部３７１は、割込検出部３６がオーバライド割込みを検出した場合に、係数を作成する。
【００５０】
停止処理部３７２は、割込検出部３６が停止割込みを検出した場合に、係数を作成する。
【００５１】
データ不足処理部３７３は、割込検出部３６がデータ不足割込みを検出した場合に、係数を作成する。
【００５２】
尚、補間データ作成装置１、数値制御装置３は、例えば、コンピュータを用いて構成可能であり、ハードディスク等の記憶部（不図示）に格納されているＮＣプログラム解析等をプログラムしたソフトウェアを、ＣＰＵにより実行することによって上述のプログラム解析部１２等がコンピュータに機能的に構成される。また、数値制御装置３は、シーケンサーでもよく、各機能部を実現できるハードウェア資源を備える装置であればよい。
【００５３】
＜係数（内部オーバライド値）＞
ここで、係数作成部３７が作成する係数について、図２〜５を用いて説明する。
【００５４】
図２は、係数作成部３７のオーバライド処理部３７１が作成する係数を説明するためのタイムチャートである。図２には、４つのグラフが記載され、全てのグラフの横軸が示す時刻は同じである。
【００５５】
１番上のグラフは、補間データバッファ３３に記憶されている補間データの例を示す。横軸が時間を示し、縦軸がパルス数を示す。１つの矩形の横幅が、単位期間を示す。矩形の縦幅が長いほど、つまり、パルス数が大きい程、サーボモータ制御部５がモータに供給する電力が大きくなる。つまり、パルス数が大きい程、工具の移動速度が速い（移動量が大きい）ことを示す。図２では、加速処理及び減速処理は、同じ時定数を用いて行われている。つまり、単位期間が４つ経過時に、目標となる速度とする。ここで示す補間データは、補間データ作成装置１で作成された補間データであるので加減速処理がなされている。加減速処理を行っていない補間データを、図９に示す。
【００５６】
２番目のグラフは、ユーザにより設定されたオーバライドスイッチの設定値を示す。横軸が時間を示し、縦軸が設定値を示す。図２では、最初の設定値が１００％であり、矢印１０が示すタイミングで、ユーザが設定値を５０％にしたことを示す。１００％とは、補間データ通りの移動速度を示す。
【００５７】
３番目のグラフは、係数作成部３７のオーバライド処理部３７１が生成する係数を示す。横軸が時間を示し、縦軸が係数値を示す。オーバライド処理部３７１は、最初のオーバライド設定値、詳細には、ユーザが手動でオーバライド値を変更する直前の値（１００％）から、ユーザが設定したオーバライド設定値（５０％）になるまで、徐々に減速するような係数を算出する（矢印１１参照）。係数は、数値制御装置３が割込み処理に対処するために作成する内部のオーバライド値と言えるものである。実施形態では、括弧書きで示すように、設定値１００％の係数「１．０」とし、設定値５０％の係数を「０．５」として、矢印１１が示す部分の係数を算出するものとする。また、矢印１１が示す部分の減速処理は、補間データで用いられている時定数を用いて行うものとする。従って、割込みが発生する前、つまり、通常時、係数は「１．０」であり、割込み発生後の矢印１１が示す部分の係数は、単位期間ごとに「０．８７」、「０．７５」、「０．６３」、「０．５」…となる。
【００５８】
４番目のグラフは、補間データ読出部３４が読み出した補間データに基づいて実行データ出力部３５が出力する実行データを示す。横軸が時間を示し、縦軸がパルス数を示す。補間データ読出部３４は、係数に応じた補間データを補間データバッファ３３から読み出す。詳細には、補間データ読出部３４は、係数に応じた移動量（パルス数）に相当する分の補間データを読み出す。
【００５９】
補間データ読出部３４が読み出す単位期間あたりの補間データ、つまり、パルス数Ｐは、ｋが係数を示し、ｐがオーバライド設定値１００％当たりのパルス数（補間データ）を示すとすると、
Ｐ＝ｐ×ｋ      ・・・（１）
となる。
【００６０】
例えば、係数が「０．５」であり、オーバライド設定値１００％当たりのパルス数が「１００」パルスである場合は、０．５×１００＝５０パルスが、１単位期間のパルス数として読み出され、５０パルスは補間データバッファ３３に残ることになる。従って、係数「０．５」で、「１００」パルスの補間データ３つを読み出す場合には、単位期間６回分で読み出されることになる。
【００６１】
尚、ここでは、説明の便宜上、補間データが「１００」パルスであり、係数「０．５」としているが、実際には、割り切れない場合が発生する。例えば、係数が「０．５４３」である場合には、読出し回数に応じた係数の積算値を求め、単位期間あたりのパルス数を決定する。この例を図７に示す。１番上のグラフは、補間データバッファ３３に記憶されている補間データの例を示す。横軸が時間を示し、縦軸がパルス数を示す。１つの矩形の横幅が、単位期間を示す。２番目のグラフは、補間データ読出部３４が読み出した補間データに基づいて実行データ出力部３５が出力する実行データを示す。横軸が時間を示し、縦軸がパルス数を示す。矩形内の数値は、読み出し回数を示す。この例は、オーバライド割込みにより速度が５４．３％にまで落とされた場合に、３単位期間分の補間データを、補間データ読出部３４がどのように読み出すかを示すものである。
【００６２】
図７の場合、補間データ読出部３４は、３単位期間分の補間データを、６回で読み出すことになる。読出し回数が１回目の係数積算値は、「０．５４３」であるので、単位期間あたりのパルス数は、以下の式で求められる５４．３を四捨五入した「５４」パルスとなる。
１００×０．５４３＝５４．３
従って、補間データ読出部３４は、「５４」パルス分の補間データを読み出す。
【００６３】
２回目の係数積算値は、「１．０８６」であるので、次の単位期間あたりのパルス数は、以下の式で求められる５４．６を四捨五入した「５５」パルスとなる。
１００＋（１００×０．０８６）−５４＝５４．６
「５４」は１回目に読み出したパルス数である。従って、補間データ読出部３４は、１つ目の補間データの残りである「４６」パルス分のデータと、２つ目の補間データの「９」パルス分のデータを読み出す。
【００６４】
３回目の係数積算値は、「１．６２９」であるので、次の単位期間あたりのパルス数は、以下の式で求められる５３．９を四捨五入した「５４」パルスとなる。
１００＋（１００×０．６２９）−（５４＋５５）＝５３．９
「５４」は１回目に読み出したパルス数であり、「５５」は２回目に読み出したパルス数である。補間データ読出部３４は、２つ目の補間データの残りである「９１」パルス分のデータから「５４」パルス分のデータを読み出す。
【００６５】
同様に、４回目の係数積算値は、「２．１７２」であるので、次の単位期間あたりのパルス数は、以下の式で求められる５４．２を四捨五入した「５４」パルスとなる。
１００＋１００＋（１００×０．１７２）−（５４＋５５＋５４）＝５４．２
５回目の係数積算値は、「２．７１５」であるので、次の単位期間あたりのパルス数は、以下の式で求められる５４．５を四捨五入した「５５」パルスとなる。
１００＋１００＋（１００×０．７１５）−（５４＋５５＋５４＋５４）＝５４．５
６回目の係数積算値は、「３．２５８」であり、３つ分の補間データを示す係数積算値３．０を越えているので、４つ目の補間データを「０」パルスとし、次の単位期間あたりのパルス数は、以下の式で求められる「２８」パルスとなる。
１００＋１００＋１００＋（０×０．２５８）−（５４＋５５＋５４＋５４＋５５）＝２８
７回目の係数積算値は、「３．８０１」であり、次の単位期間あたりのパルス数が、以下の式のように「０」となる。補間データ読出部３４は、次の単位期間あたりのパルス数が「０」となると、補間データが無くなったと判断する。
１００＋１００＋１００＋（０×０．８０１）−（５４＋５５＋５４＋５４＋５５＋２８）＝０
このように、補間データ読出部３４は、係数を積算して係数積算値を求め、次の単位期間当たりのパルス数を算出し、算出したパルス数分の補間データを読み出すので、トータルのパルス数（移動量）を変えることなく、オーバ―ライド処理を行うことができる。詳細には、係数積算値は、補間データの積算量、つまり、どこまで補間データを読み出すべきかを示しているといえる。従って、補間データ読出部３４は、係数積算値の整数部が、読み出すべき補間データの個数を示し、小数部が、その次の補間データから読み出すべきデータの比率を示すものとして、補間データの積算量を算出し、算出した積算量から今までに読み出したデータ量を引くことで、次に読み出すべきデータ量を求める。
【００６６】
尚、図７では、補間データ全てのパルス数が「１００」として説明しているので、係数積算値から補間データの積算量を求める際に「１００」を用いているが、各補間データのパルス数が異なる場合は、それぞれのパルス数が用いられる。例えば、１つ目の単位期間の補間データが１００パルスであり、２つ目の単位期間の補間データが９０パルスであり、３つ目の補間データが８０パルスであるとする。この場合、２回目の係数積算値「１．０８６」のときには、単位期間あたりのパルス数は、以下の式で求められる５３．７４を四捨五入した「５４」パルスとなる。
１００＋（９０×０．０８６）−５４＝５３．７４
また、３回目の係数積算値「１．６２９」のときには、単位期間あたりのパルス数は、以下の式で求められる４８．６１を四捨五入した「４９」パルスとなる。
１００＋（９０×０．６２９）−（５４＋５４）＝４８．６１
また、４回目の係数積算値「２．１７２」のときには、単位期間あたりのパルス数は、以下の式で求められる４６．７６を四捨五入した「４７」パルスとなる。
１００＋９０＋（８０×０．１７２）−（５４＋５４＋４９）＝４６．７６
図２の矢印１３に示すように、停止時にも、上述のように係数を積算して単位期間あたりのパルス数を算出することで、元のまま減速が行われる。この場合、時定数は変化することになる。
【００６７】
割込み発生後は、図２の矢印１２が示す部分のように、通常の時定数を用いた係数により、単位期間ごとのパルス数が「８７」、「７５」、「６３」、「５０」…と、徐々に減りながら目標とするパルス数となるので、機械が滑らかに動作することになる。
【００６８】
尚、図２では、移動速度を減少させる指示がなされた場合を説明したが、速度を増加させる指示がなされた場合も、速度が徐々に増加するような係数を作成する。この場合の係数は、指示があったときを「１．０」とし、例えば、「１．２５」、「１．５０」のように増加することになるが、各軸の速度がそれぞれの軸に許容される最高速度を超えないように、係数を自動的にクランプする（抑制する）処理を行う必要がある。
【００６９】
次に、図３は、係数作成部３７の停止処理部３７２が作成する係数を説明するためのタイムチャートである。図３には、４つのグラフが記載され、１番上のグラフ、及び、４番目のグラフは、図２の各グラフと同様である。つまり、１番上のグラフは、補間データバッファ３３に記憶されている補間データの例を示し、４番目のグラフは、実行データ出力部３５が出力する実行データを示す。
【００７０】
２番目のグラフは、停止信号を示す。横軸が時間を示し、縦軸が停止信号の値を示し、信号値が「０」から「１」となった時に、停止指示が発生したとする。図３では、矢印２０が示すタイミングで、停止指示が発生したことを示す。
【００７１】
３番目のグラフは、係数作成部３７の停止処理部３７２が生成する係数を示す。停止処理部３７２は、通常時の係数「１．０」（オーバライド設定値１００％）から、停止を示す係数「０．０」（オーバライド設定値０％）になるまで、徐々に減速するような係数を算出する（矢印２１参照）。矢印２１が示す部分の減速処理は、補間データで用いられている時定数を用いて行うものとする。時定数が４の場合、係数は「０．７５」、「０．５０」、「０．２５」、「０．０」である。
【００７２】
尚、図３では、通常時の係数「１．０」（オーバライド設定値１００％）である時に、停止信号が「１」になった場合であるので、係数は、「０．７５」、「０．５０」、「０．２５」となるが、オーバライド設定値が５０％である時に停止信号が「１」となった場合には、係数は、「０．３８」、「０．２５」、「０．１３」等となる。
【００７３】
４番目のグラフは、補間データ読出部３４が読み出した補間データに基づいて実行データ出力部３５が出力する実行データを示す。補間データ読出部３４は、上述したように、停止処理部３７２が作成した係数に応じた補間データを読み出す。補間データ読出部３４が、単位期間当たりの係数に応じて読み出した補間データの移動速度は、矢印２２が示す部分のように、パルス数が「７５」、「５０」、「２５」、「０」…と、徐々に減るので、機械が滑らかに停止することになる。停止した後、停止要因の解除を確認したら、停止信号を「０」とし、係数を「１．０」に戻す。
【００７４】
次に、図４は、係数作成部３７のデータ不足処理部３７３が作成する係数を説明するためのタイムチャートである。図４は、４つのグラフが記載され、１番上のグラフ、及び、４番目のグラフは、図２、３の各グラフと同様である。つまり、１番上のグラフは、補間データバッファ３３に記憶されている補間データの例を示し、４番目のグラフは、実行データ出力部３５が出力する実行データを示す。
【００７５】
１番目のグラフは、補間データバッファ３３に記憶されている補間データを示し、白抜きの矩形が示す補間データが記憶されているものとする。補間データ読出部３４は、補間データバッファ３３から補間データを読み出した際に、残りの補間データが所定の個数（閾値）に満たない場合、バッファ空アラーム信号を発生させる（割込検出部３６に通知する）。実施形態では、閾値は「２」とする。つまり、残りの補間データの個数が１つ（矢印３０参照）である場合には、バッファ空アラーム信号を発生させる。また、矢印３１が示すハッチングの引かれた矩形は、補間データバッファ３３に記憶されている最後の補間データ（矢印３０参照）のコピー（複製）を示す。
【００７６】
２番目のグラフは、バッファ空アラーム信号を示す。横軸が時間を示し、縦軸がアラーム信号の値を示し、信号値が「０」から「１」となった時に、アラームが発生したとする。図４では、矢印３３が示すタイミングで、バッファ空アラーム信号が発生したことを示す。
【００７７】
３番目のグラフは、係数作成部３７のデータ不足処理部３７３が生成する係数を示す。データ不足処理部３７３は、通常時の係数「１．０」（オーバライド設定値１００％）から、停止を示す係数「０．０」（オーバライド設定値０％）になるまで、徐々に減速するような係数を算出する（矢印３４参照）。矢印３４が示す部分の減速処理は、補間データで用いられている時定数を用いて行うものとする。時定数が４の場合、係数は「０．７５」、「０．５０」、「０．２５」、「０．０」である。
【００７８】
尚、図４では、通常時の係数「１．０」（オーバライド設定値１００％）である時に、停止信号が「１」になった場合であるので、係数は、「０．７５」、「０．５０」、「０．２５」となる。
【００７９】
４番目のグラフは、補間データ読出部３４が読み出した補間データに基づいて実行データ出力部３５が出力する実行データを示す。補間データ読出部３４は、上述したように、データ不足処理部３７３が作成した係数に応じた補間データを読み出す。補間データ読出部３４が、単位期間ごとの係数に応じて読み出した補間データの移動速度は、矢印３２が示す部分のように、パルス数が「７５」、「５０」、「２５」、「０」…と、徐々に減るので、機械が滑らかに停止することになる。このハッチングが引かれた矩形は、１段目のグラフで示したコピーされた補間データ（矢印３１参照）を用いた実行データである。右から２つ目の実行データのハッチングが引かれていない部分は、補間データ読出部３４が右から３つ目の実行データ用の補間データ（「７５」）を読み出した際の残りの補間データ（「２５」）に相当する。停止した後は、停止要因の解除を確認したら、停止信号を「０」とし、係数を「１．０」に戻す。
【００８０】
データ不足割込みが発生した場合は、補間データバッファ３３に記憶されている補間データが無くなりかけていることを示す。従って、補間データバッファ３３に記憶されている最後の補間データをコピーして補間データを補い、機械を滑らかに停止させる。つまり、補間データバッファ３３に記憶されていた補間データの複製を補間データバッファ３３に記憶させ、前記係数に応じた移動量に相当する補間データを補間データバッファ３３から読み出し、読み出した補間データに基づいた実行データをサーボモータ制御部５に出力する。
【００８１】
但し、このようにコピーした補間データを用いる場合、補間データはＮＣプログラムから作成した補間データとは異なるので、ＸＹＺ軸の合成経路（パス）は本来の指令経路とは異なる経路をたどる場合がある。経路が異なる場合の例を、図５に示す。図５は、指令経路が円弧の場合を示す。指令経路が、開始点４０から終了点４１までの円弧の経路（破線５０参照）である場合を考える。工具が、経路５１を経由して位置４２まで移動したときに、バッファ空アラームが発生したとする。そして、その時、補間データバッファ３３には、位置４３までの補間データが記憶されているものとする。割込みが発生した位置４２の時点で、上述したように、係数を算出し、徐々に減速を行いながら経路５２を経由して位置４３まで移動する。その後は、補間データをコピーして用いるため、位置４３からは直線移動となり、本来の経路５０からずれた経路５３を経由して、位置４４で停止することになる。指令経路と異なる経路を移動することになるが、バッファ空アラームが発生する場合は異常事態であるので、工具を速やかに且つ滑らかに停止させることが重要となる。ここでは、補間データバッファ３３に記憶されていた最後の補間データを繰り返し用いることとしているが、記憶されていた補間データを用いればよく、例えば、複数の補間データから軌跡を推測して補間データを作成してもよい。
【００８２】
尚、上述の加減速処理は、軸単位の演算ではなく、全軸に共通であるオーバライドの値を用いるものとする。従って、ＸＹＺ軸の合成経路（パス）の演算誤差は生じないことになる。但し、上述したように、数値制御装置側で補った補間データを使用する部分では、パスが異なる場合がある。
【００８３】
＜動作＞
次に、図６を用いて、工作機械制御システム１００の数値制御装置３の実行データを出力する処理について説明する。図６は、数値制御装置３の実行データ出力処理のフローチャートである。
【００８４】
補間データ作成装置１は、予め、ＮＣプログラム記憶部１１に記憶されているＮＣプログラムから、加減速処理を施した補間データを作成し、補間データ記憶部１４に記憶しているものとする。尚、ＮＣプログラムからの補間データの作成と、数値制御装置３への送信を並行して行ってもよい。
【００８５】
ユーザは、補間データ作成装置１のユーザインタフェース部（不図示）を介して、補間データ作成装置１に、補間データの送信開始の指示を入力する。送信開始の指示が入力されたことを検知した補間データ作成装置１は、補間データ送信部１５に、補間データの送信を依頼する。依頼された補間データ送信部１５は、所定の周期で、予め定められた量の補間データを補間データ記憶部１４から実行順に読み出し、ネットワーク２を介して数値制御装置３に対して送信を開始する。
【００８６】
数値制御装置３の補間データ受信部３１は、補間データ作成装置１から送信された補間データを受信すると、受信した補間データを補間データ書込部３２に渡して、記憶を依頼する。依頼を受けた補間データ書込部３２は、渡された補間データを補間データバッファ３３に記憶させる。補間データ受信部３１及び補間データ書込部３２は、補間データを受信し補間データバッファ３３に記憶させる処理を繰り返す。
【００８７】
数値制御装置３は、補間データバッファ３３に補間データが書き込まれると、係数として、補間データ通りの移動速度で動作することを示す初期値「１．０」を設定し（ステップＳ１０）、補間データ読出部３４、実行データ出力部３５、割込検出部３６、及び、係数作成部３７に、処理の開始を指示する。
【００８８】
割込検出部３６が割込みを検出していない場合には（ステップＳ１１：Ｎｏ、ステップＳ１２：Ｎｏ、ステップＳ１３：Ｎｏ）、係数作成部３７は、係数として初期設定された「１．０」を補間データ読出部３４に出力する。補間データ読出部３４は、上述したように、係数作成部３７から渡された係数に応じた移動量の補間データを補間データバッファ３３から読み出し、実行データ出力部３５に出力する（ステップＳ１４）。
【００８９】
補間データ読出部３４から補間データを渡された実行データ出力部３５は、補間データに基づいた移動速度の実行データを作成し、サーボモータ制御部５に出力する（ステップＳ１５）。そして、数値制御装置３は、ステップＳ１１からの処理を繰り返す。また、割込検出部３６は、割り込みを検出した場合は、検出した割込みに応じた信号を生成する。具体的には、データ不足割込みを検出した場合は、バッファ空アラーム信号を「１」とし（図４参照）、停止割込みを検出した場合は、停止信号を「１」とする（図３参照）。
【００９０】
ステップＳ１１において、割込検出部３７がデータ不足割込みを検出した場合（バッファ空アラーム信号が「１」の時）は（ステップＳ１１：Ｙｅｓ）、係数作成部３７に通知し、係数の作成を依頼する。
【００９１】
依頼を受けた係数作成部３７は、データ不足処理部３７３に係数を算出するよう指示する。指示を受けたデータ不足処理部３７３は、＜係数＞の項で説明したように係数を算出する（ステップＳ１６）。係数作成部３７は、算出された係数を補間データ読出部３４に出力する。
【００９２】
補間データ読出部３４は、最後に記憶されている補間データをコピーし（ステップＳ１７）、＜係数＞の項で説明したように、係数作成部３７から受けとった係数に応じた補間データを読み出し、実行データ出力部３５に出力する（ステップＳ１４）。補間データ読出部３４から補間データを渡された実行データ出力部３５は、補間データに基づいた移動速度の実行データを作成し、作成した実行データをサーボモータ制御部５に出力する（ステップＳ１５）。
【００９３】
ステップＳ１２において、割込検出部３７が停止割込みを検出した場合（停止信号が「１」の時）は（ステップＳ１２：Ｙｅｓ）、係数作成部３７に通知し、係数の作成を依頼する。
【００９４】
依頼を受けた係数作成部３７は、停止処理部３７２に係数を算出するよう指示する。指示を受けた停止処理部３７２は、〈係数〉の項で説明したように係数を算出する（ステップＳ１８）。係数作成部３７は、算出された係数を補間データ読出部３４に出力する。
【００９５】
補間データ読出部３４は、〈係数〉の項で説明したように、係数作成部３７から受けとった係数に応じた補間データを読み出し、実行データ出力部３５に出力する（ステップＳ１４）。補間データ読出部３４から補間データを渡された実行データ出力部３５は、補間データに基づいた移動速度の実行データを作成し、作成した実行データをサーボモータ制御部５に出力する（ステップＳ１５）。
【００９６】
ステップＳ１３において、割込検出部３６がオーバライド割込みを検出した場合は（ステップＳ１３：Ｙｅｓ）、係数作成部３７に通知し、係数の作成を依頼する。
【００９７】
依頼を受けた係数作成部３７は、オーバライド処理部３７１に係数を算出するよう指示する。指示を受けたオーバライド処理部３７１は、＜係数＞の項で説明したように係数を算出する（ステップＳ１９）。係数作成部３７は、算出された係数を補間データ読出部３４に出力する。
【００９８】
補間データ読出部３４は、〈係数〉の項で説明したように、係数作成部３７から受けとった係数に応じた補間データを読み出し、実行データ出力部３５に出力する（ステップＳ１４）。補間データ読出部３４から補間データを渡された実行データ出力部３５は、補間データに基づいた移動速度の実行データを作成し、作成した実行データをサーボモータ制御部５に出力する（ステップＳ１５）。
【００９９】
このように、数値制御装置３では、オーバライドスイッチの変更や、緊急停止処理や、通信障害等による補間データの未達に容易に対応することができる。
【０１００】
尚、実施形態では、補間データ読出部３４は、補間データバッファ３３から係数に応じた量の補間データを読み出すこととしている。これは、補間データバッファ３３から直接係数に応じた量の補間データを読み出すだけでなく、例えば、補間データバッファ３３から１レコード分の補間データを順次作業メモリに読み込み、作業メモリにおいて１レコードを係数に応じて小分けして読み出すことであってもよく、結果的に、補間データバッファ３３から係数に応じた量の補間データを読み出すことになればよい。また、実施形態では、割り込み検出部３７が、データ不足割込みを検出した場合に、補間データ読出部３４は、補間データバッファ３３に記憶されていた最後の補間データを補間データバッファ３３にコピーすることとしているが、例えば最後に読み込んだ補間データを、次に読み込んだ補間データであると仮定して繰り返し用いることとしてもよい。この作業メモリは、補間データバッファ３３内のメモリであっても、補間データ読出部３４専用のメモリであってもよく、数値制御装置３内のメモリであればよい。
【０１０１】
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更及び／または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。
【符号の説明】
【０１０２】
１  補間データ作成装置
２  ネットワーク
３  数値制御装置
５  サーボモータ制御部
６  工作機械
１１  ＮＣプログラム記憶部
１２  プログラム解析部
１３  補間データ作成部
１５  補間データ送信部
３１  補間データ受信部
３３  補間データバッファ（記憶部）
３４  補間データ読出部（補間データ出力手段）
３５  実行データ出力部（補間データ出力手段）
３６  割込検出部
３７  係数作成部
３７１  オーバライド処理部
３７２  停止処理部
３７３  データ不足処理部
【図１】
2016051290.tif 000003
【図２】
2016051290.tif 000004
【図３】
2016051290.tif 000005
【図４】
2016051290.tif 000006
【図５】
2016051290.tif 000007
【図６】
2016051290.tif 000008
【図７】
2016051290.tif 000009
【図８】
2016051290.tif 000010
【図９】
2016051290.tif 000011