(57)【要約】【課題】機械の制御対象の進行方向に応じた最適な時定数を設定することが可能な数値制御装置を提供すること。【解決手段】本発明の数値制御装置１は、プログラムに含まれるブロックによる指令を先読みして解析し、指令データを出力する指令解析部１００と、指令毎に制御対象の進行方向を特定し、特定した進行方向に基づいて以下に示す数２式により時定数を計算する時定数計算部１１０と、直線形加減速処理を行う補間前加減速部１２０と、指令毎の時定数に基づいて、フィルタ処理用の時定数を設定する時定数設定部１３０と、フィルタ処理用の時定数に基づいて直線形加減速処理された指令データに対してフィルタ処理を実行するフィルタ処理部１４０と、フィルタ処理された指令データに基づいて補間周期ごとの各軸の移動量を算出する補間部１５０と、を備える。【選択図】図５
2018005304.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに基づいて機械が備える軸を制御して制御対象を移動させる数値制御装置において、
前記プログラムに含まれるブロックによる指令を先読みして解析し、指令データを出力する指令解析部と、
前記指令データに基づいて前記指令毎に前記制御対象の進行方向を特定し、特定した進行方向と設定値とに基づいて以下に示す数２式により時定数を計算する時定数計算部と、
前記指令データに対して直線形加減速処理を行う補間前加減速部と、
前記時定数計算部が計算した前記指令毎の時定数に基づいて、フィルタ処理用の時定数を設定する時定数設定部と、
前記時定数設定部が設定したフィルタ処理用の時定数に基づいて前記補間前加減速部が直線形加減速処理をした前記指令データに対してフィルタ処理を実行するフィルタ処理部と、
前記フィルタ処理部がフィルタ処理した前記指令データに基づいて補間周期ごとの各軸の移動量を算出する補間部と、
を備えたことを特徴とする数値制御装置。
【数２】
2018005304.tif 000005
【請求項２】
前記時定数設定部は、現在設定されているフィルタ処理用の時定数とは異なる時定数を新たなフィルタ処理用の時定数と設定する際に時定数の値が徐々に変更されるように設定する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記時定数設定部は、時定数の値が徐々に変更する際に、時定数が増加する場合には現在処理している指令から次に処理するべき指令へと処理対象が切り換わる前に時定数を増加させる、
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
時定数を徐々に変更する際に１補間周期で変更可能な時定数幅があらかじめ設定されており、
前記時定数設定部は、前記時定数幅を動的に調整する、
ことを特徴とする請求項２または３に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に加減速フィルタの時定数を動的に切り替える数値制御装置に関する。
【背景技術】
【０００２】
サーボモータの加減速を制御する方式として、直線形加減速制御方式が知られている。直線形加減速方式（図１５左）では、加速度が急速に変化するために、サーボ制御系やその負荷系にショックを与え、振動を起こしやすいという欠点がある。このような欠点を改善するために、従来より直線形加減速に時定数フィルタをかけることで、接線方向の加加速度（ジャーク）を抑えたベル形加減速方式（図１５右）が用いられてきた。ベル形加減速では、加加速度は以下に示す数１式の値になる。
【０００３】
【数１】
2018005304.tif 000003
【０００４】
数１式によれば、ベル形加減速において加加速度を所定の制限値以下に抑えるためには、時定数を大きな値とする必要があるが、時定数を大きくしてしまうと加加速度が下がる一方でサイクルタイムが増加するという問題が生じる。そのため、オペレータには機械に大きなショックが発生しない範囲で必要最小限の時定数を使用したいという要求がある。
【０００５】
なお、機械が備える軸の駆動時の速度や加速度、加加速度を制御する従来技術として、例えば特許文献１には、経路の区間ごとに接線方向の制限速度、制限加速度、制限加加速度を与え、制限速度が局所的な極小である区間から前後に加速する速度曲線を作成し、それを接続することで制限を満たす速度曲線を作成する技術が開示されている。
また、特許文献２には、複数の軸に対して個別に時定数が与えられた数値制御装置における加工プログラムの実行において、１軸のみの動作では該当軸の時定数を使用し、複数軸を同時に動作させる場合は該当軸の時定数の中で最大のものを使用して速度制御を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４６７３３７７号公報
【特許文献２】特開平０６−０９５７２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数軸で動作させる駆動系において、各軸に使用している部品の剛性が異なるなどの理由で軸ごとに加加速度と加速度の比が異なる場合がある。このような場合には、当該駆動系を動作させる各軸毎（進行方向毎）に必要最小限の時定数が異なるが、従来の数値制御装置では加工中に時定数を変更することができず、時定数フィルタをかける際には軸に関わらず時定数が常に一定となるようにしている。そのため、複数軸で動作させる駆動系を制御する場合には、制御される可能性のある全ての軸において計算された時定数の最大値を使用する必要があり、進行方向によっては必要最低限の時定数よりも大きな時定数を使用することとなるため、サイクルタイムが増加するという問題があった。
【０００８】
例えば、図１６に示すように、Ｘ軸Ｙ軸の２軸で動作する駆動系において、Ｘ軸Ｙ軸共に加速度制限は同じで、Ｙ軸の加加速度制限がＸ軸の加加速制限の２倍である場合を考える。このような場合、Ｘ軸方向に進む時の必要最小限の時定数はＹ軸に進む時と比べて２倍の数値となる。しかしながら、時定数は途中で変更できないので、Ｘ軸の加速度制限、加加速度制限に合わせた時定数（大きい方の時定数）に合わせることとなり、Ｙ軸方向に十分な加加速度が出ず、サイクルタイムが延びる結果となる。
【０００９】
このような問題を解決するために特許文献１に開示される技術を適用する場合、制限される範囲内で適切な値となるように加加速度を直接制御する必要があるが、その場合、制御対象を移動させる経路が複雑になると単位時間あたりに処理しなければならない演算の量が増加するため、高性能なＣＰＵ等が必要となり、コスト面での問題がある。
また、特許文献２に開示される技術を適用したとしても、特許文献２の技術では途中で時定数を切り換えることができないため、進行方向の変化に際して最適な時定数を使用し続けることができないという問題がある。
【００１０】
そこで本発明の目的は、機械の制御対象の進行方向に応じた最適な時定数を設定することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明の数値制御装置では、常に最適な時定数（必要最小限の時定数）を使用できるように、制御対象の進行方向に応じて時定数を変更する。
【００１２】
そして、本発明の請求項１に係る発明は、プログラムに基づいて機械が備える軸を制御して制御対象を移動させる数値制御装置において、前記プログラムに含まれるブロックによる指令を先読みして解析し、指令データを出力する指令解析部と、前記指令データに基づいて前記指令毎に前記制御対象の進行方向を特定し、特定した進行方向と設定値とに基づいて以下に示す数２式により時定数を計算する時定数計算部と、前記指令データに対して直線形加減速処理を行う補間前加減速部と、前記時定数計算部が計算した前記指令毎の時定数に基づいて、フィルタ処理用の時定数を設定する時定数設定部と、前記時定数設定部が設定したフィルタ処理用の時定数に基づいて前記補間前加減速部が直線形加減速処理をした前記指令データに対してフィルタ処理を実行するフィルタ処理部と、前記フィルタ処理部がフィルタ処理した前記指令データに基づいて補間周期ごとの各軸の移動量を算出する補間部と、を備えたことを特徴とする数値制御装置である。
【００１３】
本発明の請求項２に係る発明は、前記時定数設定部は、現在設定されているフィルタ処理用の時定数とは異なる時定数を新たなフィルタ処理用の時定数と設定する際に時定数の値が徐々に変更されるように設定する、ことを特徴とする請求項１に記載の数値制御装置である。
【００１４】
本発明の請求項３に係る発明は、前記時定数設定部は、時定数の値が徐々に変更する際に、時定数が増加する場合には現在処理している指令から次に処理するべき指令へと処理対象が切り換わる前に時定数を増加させる、ことを特徴とする請求項２に記載の数値制御装置である。
【００１５】
本発明の請求項４に係る発明は、時定数を徐々に変更する際に１補間周期で変更可能な時定数幅があらかじめ設定されており、前記時定数設定部は、前記時間幅を動的に調整する、ことを特徴とする請求項２または３に記載の数値制御装置である。
【発明の効果】
【００１６】
本発明によれば、従来技術と比較して時定数が減少するため、ショックを防ぎつつサイクルタイムが短縮される。
【図面の簡単な説明】
【００１７】
【図１】本発明の数値制御装置による制御対象の進行方向に応じた時定数の基本的な変更方法を説明する図である。
【図２】本発明の数値制御装置による進行方向に応じた時定数の第２の変更方法を説明する図である。
【図３】本発明の数値制御装置による進行方向に応じた時定数の第３の変更方法を説明する図である。
【図４】本発明の一実施形態による数値制御装置の要部を示すハードウェア構成図である。
【図５】本発明の一実施形態による数値制御装置の概略的な機能ブロック図である。
【図６】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（１）である。
【図７】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（２）である。
【図８】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（３）である。
【図９】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（４）である。
【図１０】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（５）である。
【図１１】本発明の一実施形態による数値制御装置が時定数を変更する場合のフィルタをかける前後の速度パルスを示す図（６）である。
【図１２】本発明の一実施形態による数値制御装置上で、図１で説明した制御対象の進行方向に応じた時定数の基本的な変更方法を実行する場合の概略的な処理を示すフローチャートである。
【図１３】本発明の一実施形態による数値制御装置上で、図２で説明した制御対象の進行方向に応じた時定数の第２の変更方法を実行する場合の概略的な処理を示すフローチャートである。
【図１４】本発明の一実施形態による数値制御装置上で、図３で説明した制御対象の進行方向に応じた時定数の第３の変更方法を実行する場合の概略的な処理を示すフローチャートである。
【図１５】直線形加減速とベル形加減速について説明する図である。
【図１６】従来技術による時定数の設定における問題点を説明する図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を図面と共に説明する。
図１は、本発明の数値制御装置による制御対象の進行方向に応じた時定数の基本的な変更方法を説明する図である。本発明の数値制御装置は、制御対象を各軸の方向に移動する場合にはそれぞれの軸の加速度制限、加加速度制限から決定される必要最小限の時定数を使用し、２軸以上を同時に動かして制御対象をこれら２軸以上の移動量を合成した方向へと移動させる場合には以下の数２式により求まる必要最小限の時定数を使用する。なお、数２式においてｉｘは軸を意味しており、数２式右辺の分子は進行方向加速度の各軸方向成分であり、分母は各軸の許容加加速度（加加速度制限）である。つまり、数２式は各軸について進行方向加速度の当該軸方向成分を当該軸の許容加加速度で割った値を計算し、計算した値の内の最大値を必要最小限の時定数とすることを意味している。
【００１９】
【数２】
2018005304.tif 000004
【００２０】
図２は、本発明の数値制御装置による進行方向に応じた時定数の第２の変更方法を説明する図である。一般に急激な時定数の変更はショックの原因となるため、本発明の数値制御装置は、制御対象の進行方向が変化した際に時定数を変更する際には、徐々に時定数を変更することでショックの発生を防ぐようにする。
図３は、本発明の数値制御装置による進行方向に応じた時定数の第３の変更方法を説明する図である。上記した背景技術でも説明したように、各軸において必要最小限の時定数よりも小さな時定数を使用するとショックが発生する。そこで、本発明の数値制御装置は、徐々に時定数を増加させる際には各軸の必要最小限の時定数よりも小さな時定数が使用されないように進行方向が変わる前に時定数が増加しきるようにする。
なお、本発明の数値制御装置は、徐々に時定数を変更する際には、１つの補間周期で変更できる時定数幅を予め定めておくようにしても良いし、過去に行った加工におけるショックの発生状況などに基づいて１つの補間周期で変更できる時定数幅を動的に変更できるようにしても良い。
【００２１】
以下では、本発明の数値制御装置の構成について説明する。
図４は、本発明の一実施形態による数値制御装置と該数値制御装置によって駆動制御される工作機械の要部を示すハードウェア構成図である。数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って数値制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴ／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００２２】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、数値制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれた後述する加工プログラムやＣＲＴ／ＭＤＩユニット７０を介して入力された加工プログラムが記憶されている。不揮発性メモリ１４には更に、加工プログラムを運転するために用いられる加工プログラム運転処理用プログラムや、軸制御処理用プログラム等が記憶されるが、これらプログラムは実行時にはＲＡＭ１３に展開される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理などを実行するための各種のシステム・プログラムがあらかじめ書き込まれている。本発明を実行する加工プログラム等の各種加工プログラムはインタフェース１５やＣＲＴ／ＭＤＩユニット７０を介して入力し、不揮発性メモリ１４に格納することができる。
【００２３】
インタフェース１５は、数値制御装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置１内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンス・プログラムで工作機械の周辺装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００２４】
ＣＲＴ／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８はＣＲＴ／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００２５】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図４のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には工作機械に備えられた軸の数だけ用意される。また、図４は、サーボモータ５０からの位置・速度のフィードバックについては省略している。
【００２６】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。
スピンドルモータ６２には歯車あるいはベルト等でポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００２７】
図５は、本発明により提供される制御対象の進行方向に応じて時定数を変更する機能を図４に示した数値制御装置１に対してシステム・プログラムにより実装した場合の一実施形態による概略的な機能ブロック図を示している。図５に示されている各機能手段は、図４に示したＣＰＵ１１がシステム・プログラムを実行して各機能を提供することにより実現される。本実施形態の数値制御装置１は、指令解析部１００、時定数計算部１１０、補間前加減速部１２０、時定数設定部１３０、フィルタ処理部１４０、補間部１５０、サーボモータ制御部１６０を備える。
【００２８】
指令解析部１００は、図示しないメモリに記憶されるプログラム等から制御対象となる機械の動作を指令するブロックを先読みして解析し、解析結果に基づいてサーボモータ５０により制御対象の移動を指令する指令データを作成し、作成した該指令データを時定数計算部１１０および補間前加減速部１２０へと出力する。指令解析部１００が作成する指令データは、プログラムから先読みしたブロックにより指令毎に１つの指令データを作成するようにしても良いし、プログラムから先読みしたブロックにより指令される移動経路を微小線分へと分割し、該分割した微小線分の経路毎に１つの指令データを作成するようにしても良く、それぞれの指令データにより指令される制御対象の進行方向が同一方向を向いていれば問題ない。
【００２９】
時定数計算部１１０は、指令解析部１００から出力された指令データにより指令される制御対象の進行方向を特定し、特定した進行方向と軸毎の設定値（速度制限、加速度制限、加加速度制限など）とに基づいて上記した数２式を用いて最適な時定数（必要最小限の時定数）を指令データ毎に計算し、計算した指令データ毎の時定数（以下、最適時定数）を時定数設定部１３０へと出力する。
補間前加減速部１２０は、指令解析部１００から出力された指令データに対して補間前直線形加減速処理を実行し、補間前直線形加減速処理後の指令データを時定数設定部１３０およびフィルタ処理部１４０へと出力する。
【００３０】
時定数設定部１３０は、時定数計算部１１０から出力された指令データ毎の最適時定数に基づいて、現在の補間周期（今処理をしている補間周期）における時定数を決定し、決定した時定数をフィルタ処理用の時定数としてフィルタ処理部１４０へと設定する。時定数設定部１３０は、単純にそれぞれの補間周期に処理している指令データの最適時定数を今補間周期の時定数としてフィルタ処理部１４０へと設定するようにしても良いし、指令データが変わる前後において時定数の変更を徐々に行うように、前後の指令データの最適時定数に基づいてそれぞれの補間周期の時定数を決定し、決定した時定数をフィルタ処理部１４０へ設定するようにしても良い。なお、指令データが変わる前において時定数の変更を徐々に行うようにする場合には、時定数の変化に必要な時間を見積もり、時定数変化を開始する補間周期を計算する。時定数の変化に必要な時間を見積もる際には、補間前加減速部１２０から出力された補間前直線形加減速処理後の指令データから、時定数を変更する補間周期などを決定するために必要な情報を取得する。
【００３１】
フィルタ処理部１４０は、補間前加減速部１２０から出力された補間前直線形加減速処理後の指令データに対して、時定数設定部１３０が設定したフィルタ用の時定数を用いてフィルタ処理を行い、フィルタされた指令データをサーボモータ制御部１６０へと出力する。
補間部１５０は、フィルタ処理部１４０から出力されたフィルタされた指令データに対して各軸の補間周期毎の点として補間データを生成し、生成した補間データをそれぞれのサーボモータ５０を制御するサーボモータ制御部１６０へと出力する。
【００３２】
そして、サーボモータ制御部１６０は、補間部１５０から出力された各軸の補間データに基づいて制御対象となる機械の軸を駆動するサーボモータ５０を制御する。
【００３３】
以下では、上記構成を備えた数値制御装置１による変更された時定数に基づくフィルタ処理の実施例を図６〜１１を用いて説明する。図６〜１１は、本実施形態の数値制御装置１が時定数を変更する場合のフィルタをかける前の速度パルス（入力パルス）と、フィルタをかけた後の速度パルス（出力パルス）を入れる出力配列とを補間周期毎に示した図である。なお、図６〜図１１における速度パルスは、補間周期毎の進行方向の移動量を意味している。それぞれの補間周期には、時定数設定部１３０によりその時点における時定数が設定されている。なお、図６〜１１では説明を簡単にするために、１補間周期を単位とした数値で時定数を示している。
【００３４】
図６は補間周期ｉのフィルタ処理開始時の状態を示している。図６に示すように、補間周期ｉに対して時定数設定部１３０が時定数を５に設定している場合、図７に示すように、フィルタ処理部１４０は補間周期ｉにおける入力パルスを時定数の数（補間周期ｉにおいては５）で等分し、補間周期ｉ〜補間周期（ｉ＋４）に対応する出力配列にそれぞれ積み上げ（積算）をする。
【００３５】
次に、補間周期（ｉ＋１）に対して時定数設定部１３０が時定数を５に設定している場合、図８に示すように、フィルタ処理部１４０は補間周期ｉにおける入力パルスを時定数の数（補間周期（ｉ＋１）においては５）で等分し、補間周期（ｉ＋１）〜補間周期（ｉ＋５）に対応する出力配列にそれぞれ積み上げ（積算）をする。
【００３６】
更に、補間周期（ｉ＋２）に対して時定数設定部１３０が時定数を６に設定している場合、図９に示すように、フィルタ処理部１４０は補間周期ｉにおける入力パルスを時定数の数（補間周期（ｉ＋２）においては６）で等分し、補間周期（ｉ＋２）〜補間周期（ｉ＋７）に対応する出力配列にそれぞれ積み上げ（積算）をする。補間周期（ｉ＋３）においても同様の処理を行う（図１０）。
以下、同様の処理を繰り返すことにより、図１１に示すように入力パルスに対してフィルタをかけられた出力パルスが出力配列に設定される。各出力配列に積み上げられた出力パルスは、補間部１５０に出力され、各軸の補間データが生成される。
【００３７】
図１２は、図１で説明した制御対象の進行方向に応じた時定数の基本的な変更方法を図５に示した数値制御装置１上で実行される処理の概略的なフローチャートである。図１２に示したフローチャートの処理は制御周期毎に実行される。
●［ステップＳＡ０１］指令解析部１００は、加工プログラムから制御対象となる機械の動作を指令するブロックを先読みして解析し、解析結果に基づいてサーボモータ５０により制御対象の移動を指令する指令データを作成する。
【００３８】
●［ステップＳＡ０２］時定数計算部１１０は、ステップＳＡ０１で作成された指令データにより指令される制御対象の進行方向を特定し、特定した進行方向と軸毎の設定値（速度制限、加速度制限、加加速度制限など）とに基づいて上記した数２式を用いて最適時定数を指令データ毎に計算する。
●［ステップＳＡ０３］補間前加減速部１２０は、ステップＳＡ０１で作成された指令データに対して補間前直線形加減速処理を実行し、補間前直線形加減速処理後の指令データを生成する。
【００３９】
●［ステップＳＡ０４］時定数設定部１３０は、ステップＳＡ０２で計算された指令データ毎の最適時定数に基づいて、現在の補間周期（今処理をしている補間周期）における最適時定数を特定し、特定した最適時定数をフィルタ処理用時定数としてフィルタ処理部１４０へと設定する。
●［ステップＳＡ０５］フィルタ処理部１４０は、ステップＳＡ０３で生成された補間前直線形加減速処理後の指令データに対して、ステップＳＡ０４で設定されたフィルタ処理用の時定数を用いてフィルタ処理を行い、フィルタされた指令データを生成する。
【００４０】
●［ステップＳＡ０６］補間部１５０は、ステップＳＡ０５でフィルタされた指令データに対して各軸の補間周期毎の点として補間データを生成する。
●［ステップＳＡ０７］サーボモータ制御部１６０は、ステップＳＡ０６で生成された各軸の補間データに基づいて制御対象となる機械の軸を駆動するサーボモータ５０を制御する。
【００４１】
図１３は、図２で説明した制御対象の進行方向に応じた時定数の第２の変更方法を図５に示した数値制御装置１上で実行される処理の概略的なフローチャートである。図１３に示したフローチャートの処理は制御周期毎に実行される。
●［ステップＳＢ０１］指令解析部１００は、加工プログラムから制御対象となる機械の動作を指令するブロックを先読みして解析し、解析結果に基づいてサーボモータ５０により制御対象の移動を指令する指令データを作成する。
【００４２】
●［ステップＳＢ０２］時定数計算部１１０は、ステップＳＢ０１で作成された指令データにより指令される制御対象の進行方向を特定し、特定した進行方向と軸毎の設定値（速度制限、加速度制限、加加速度制限など）とに基づいて上記した数２式を用いて最適時定数を指令データ毎に計算する。
●［ステップＳＢ０３］補間前加減速部１２０は、ステップＳＢ０１で作成された指令データに対して補間前直線形加減速処理を実行し、補間前直線形加減速処理後の指令データを生成する。
【００４３】
●［ステップＳＢ０４］時定数設定部１３０は、ステップＳＢ０２で計算された指令データ毎の最適時定数に基づいて、現在の補間周期（今処理をしている補間周期）における最適時定数を特定し、特定した現在の補間周期における最適時定数と、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数とを比較する。現在の補間周期における最適時定数の方が大きい場合にはステップＳＢ０５へ、等しい場合はステップＳＢ０６へ、小さい場合はステップＳＢ０７へ、それぞれ処理を移行する。
●［ステップＳＢ０５］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を、現在の補間周期における最適時定数を上限として予め設定されている１補間周期で変更可能な時定数幅内で増加させ、ステップＳＢ０８へと処理を移行する。
●［ステップＳＢ０６］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を変更せずに、ステップＳＢ０８へと処理を移行する。
●［ステップＳＢ０７］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を、現在の補間周期における最適時定数を下限として予め設定されている１補間周期で変更可能な時定数幅内で減少させ、ステップＳＢ０８へと処理を移行する。
【００４４】
●［ステップＳＢ０８］フィルタ処理部１４０は、ステップＳＢ０３で生成された補間前直線形加減速処理後の指令データに対して、ステップＳＢ０５〜ＳＢ０７で設定されたフィルタ処理用の時定数を用いてフィルタ処理を行い、フィルタされた指令データを生成する。
●［ステップＳＢ０９］補間部１５０は、ステップＳＢ０８でフィルタされた指令データに対して各軸の補間周期毎の点として補間データを生成する。
●［ステップＳＢ１０］サーボモータ制御部１６０は、ステップＳＢ０９で生成された各軸の補間データに基づいて制御対象となる機械の軸を駆動するサーボモータ５０を制御する。
【００４５】
図１４は、図３で説明した制御対象の進行方向に応じた時定数の第３の変更方法を図５に示した数値制御装置１上で実行される処理の概略的なフローチャートである。図１４に示したフローチャートの処理は制御周期毎に実行される。
●［ステップＳＣ０１］指令解析部１００は、加工プログラムから制御対象となる機械の動作を指令するブロックを先読みして解析し、解析結果に基づいてサーボモータ５０により制御対象の移動を指令する指令データを作成する。
【００４６】
●［ステップＳＣ０２］時定数計算部１１０は、ステップＳＣ０１で作成された指令データにより指令される制御対象の進行方向を特定し、特定した進行方向と軸毎の設定値（速度制限、加速度制限、加加速度制限など）とに基づいて上記した数２式を用いて最適時定数を指令データ毎に計算する。
●［ステップＳＣ０３］補間前加減速部１２０は、ステップＳＣ０１で作成された指令データに対して補間前直線形加減速処理を実行し、補間前直線形加減速処理後の指令データを生成する。
【００４７】
●［ステップＳＣ０４］時定数設定部１３０は、ステップＳＣ０２で計算された指令データ毎の最適時定数に基づいて、現在の補間周期で処理する指令データの最適時定数からみて次の指令データの最適時定数が増加するか否かを判定する。次の指令データの最適時定数が増加しない場合にはステップＳＣ０５へ処理を移行し、増加する場合にはステップＳＣ０６へ処理を移行する。
●［ステップＳＣ０５］時定数設定部１３０は、現在の補間周期で処理する指令データの最適時定数を現在の補間周期の目標時定数として採用し、ステップＳＣ０８へと処理を移行する。
●［ステップＳＣ０６］時定数設定部１３０は、予め設定された１補間周期で変更可能な時定数幅を考慮して時定数の増加開始位置（時定数の増加を開始する補間周期）を計算する。
●［ステップＳＣ０７］時定数設定部１３０は、現在の補間周期がステップＳＣ０６で計算した時定数の増加開始位置を越えている場合、次の指令データの最適時定数を現在の補間周期の目標時定数として採用する。
●［ステップＳＣ０８］時定数設定部１３０は、ステップＳＣ０４〜ステップＳＣ０７で採用された現在の補間周期における目標時定数と、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数とを比較する。現在の補間周期における目標時定数の方が大きい場合にはステップＳＣ０９へ、等しい場合はステップＳＣ１０へ、小さい場合はステップＳＣ１１へ、それぞれ処理を移行する。
●［ステップＳＣ０９］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を、現在の補間周期における目標時定数を上限として予め設定されている１補間周期で変更可能な時定数幅内で増加させ、ステップＳＣ１２へと処理を移行する。
●［ステップＳＣ１０］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を変更せずに、ステップＳＣ１２へと処理を移行する。
●［ステップＳＢ１１］時定数設定部１３０は、フィルタ処理部１４０に現在設定されているフィルタ処理用の時定数を、現在の補間周期における目標時定数を下限として予め設定されている１補間周期で変更可能な時定数幅内で減少させ、ステップＳＣ１２へと処理を移行する。
【００４８】
●［ステップＳＣ１２］フィルタ処理部１４０は、ステップＳＣ０３で生成された補間前直線形加減速処理後の指令データに対して、ステップＳＣ０９〜ＳＣ１１で設定されたフィルタ処理用の時定数を用いてフィルタ処理を行い、フィルタされた指令データを生成する。
●［ステップＳＣ１３］補間部１５０は、ステップＳＣ１２でフィルタされた指令データに対して各軸の補間周期毎の点として補間データを生成する。
●［ステップＳＣ１４］サーボモータ制御部１６０は、ステップＳＣ１３で生成された各軸の補間データに基づいて制御対象となる機械の軸を駆動するサーボモータ５０を制御する。
【００４９】
図１３、１４に示したフローチャートでは、１補間周期で変更可能な時定数幅は予め設定されている値をそのまま利用しているが、例えば時定数の変更を行う際に発生するショックの大きさを記録するようにしておき、発生したショックの大きさが予め設定されている許容最大値を超える場合には１補間周期で変更可能な時定数幅を小さくするように調整し、ショックの大きさが予め設定されている許容最小値よりも小さい場合には１補間周期で変更可能な時定数幅を大きくするように調整するようにしても良い。このような調整を行うことにより、１補間周期で変更可能な時定数幅を最適値に調整することが可能となる。
【００５０】
以上、ここまで本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００５１】
１  数値制御装置
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  インタフェース
１６  （プログラマブル・マシン・コントローラ）
１７  ユニット
１８  インタフェース
１９  インタフェース
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  ＣＲＴ／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  指令解析部
１１０  時定数計算部
１２０  補間前加減速部
１３０  時定数設定部
１４０  フィルタ処理部
１５０  補間部
１６０  サーボモータ制御部
【図１】
2018005304.tif 000006
【図２】
2018005304.tif 000007
【図３】
2018005304.tif 000008
【図４】
2018005304.tif 000009
【図５】
2018005304.tif 000010
【図６】
2018005304.tif 000011
【図７】
2018005304.tif 000012
【図８】
2018005304.tif 000013
【図９】
2018005304.tif 000014
【図１０】
2018005304.tif 000015
【図１１】
2018005304.tif 000016
【図１２】
2018005304.tif 000017
【図１３】
2018005304.tif 000018
【図１４】
2018005304.tif 000019
【図１５】
2018005304.tif 000020
【図１６】
2018005304.tif 000021