(57)【要約】  加工プログラム（１１）に基づいてサーボモータ（１６）を制御する数値制御装置（１０）において、サーボモータ（１６）により移動軸の方向に駆動される機械系に移動方向反転を発生させる命令と、命令より後に実行される命令とを含む加工プログラム（１１）に基づいて、移動方向反転に対して補正を実行するか否かを決定する。
2018066048.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムに基づいてサーボモータを制御する数値制御装置において、
前記サーボモータにより移動軸の方向に駆動される機械系に移動方向反転を発生させる命令と、前記命令より後に実行される命令とを含む前記加工プログラムに基づいて、前記移動方向反転に対して補正を実行するか否かを決定する
ことを特徴とする数値制御装置。
【請求項２】
前記加工プログラムに記述された経路情報に基づいて指令位置を生成する指令位置生成部と、
前記経路情報に基づいて前記命令の前記加工プログラムにおける記述箇所についての情報と、前記命令より後に実行される命令が示す経路情報と、を含んだ方向反転情報を生成する経路情報解析部と、
前記指令位置および前記方向反転情報に基づいて、前記補正を実行するか否かを決定する補正量決定部と、
前記補正により補正された前記指令位置に前記サーボモータのモータ位置が追従するようにサーボ制御を行うサーボ制御部と、
を備える
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記方向反転情報は、前記移動方向反転が発生する箇所に引き続く移動経路の予め定めた区間における前記移動方向反転が発生した前記移動軸に沿った前記機械系の移動量を含み、
前記補正量決定部は、前記移動量が予め定めた移動量閾値より小さい場合は、前記補正の補正量である反転時補正量を０にする
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記方向反転情報は、前記移動方向反転が発生する箇所での前記機械系の前記移動軸における座標値を含み、
前記補正量決定部は、前記座標値から予め定めた距離以内に他の前記移動方向反転が発生しない場合は、前記補正の補正量である反転時補正量を０にする
ことを特徴とする請求項２または３に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械といった産業用機械装置を制御する数値制御装置に関する。
【背景技術】
【０００２】
工作機械に代表される産業用途の機械においては、工具またはテーブルが指令値に追従するように駆動制御が実行される。特に、加工対象物であるワークに対する工具位置が指令された経路である指令軌跡に正確に追従するように機械を駆動する制御は軌跡制御または輪郭運動制御とよばれ、数値制御装置およびそれに付属するサーボ制御装置を用いて精密に行われる。制御対象となる機械は複数の移動軸を有し、それぞれの移動軸に沿った方向にサーボ制御装置により駆動される。【０００３】
数値制御装置は、サーボ制御装置を用いて機械の移動軸方向の位置制御を行う。基本的にはモータ端エンコーダまたは工具端の位置を測定するリニアスケールによって検出されるフィードバック位置が指令位置に追従するようにフィードバック制御が行われるが、フィードバック位置と工具端の位置との間の機械系にはバックラッシおよびロストモーションなどの誤差要因が存在するため、これらの誤差要因の影響で工具端の位置はフィードバック位置に対して誤差を有することになる。バックラッシとは、ボールねじ等のガタである。ロストモーションとは、案内面の摩擦によりボールねじに生じる弾性変形である。工具端の位置がフィードバック位置に対して誤差をもつということは、フィードバック制御のみでは工具端の位置に誤差が生じるということである。【０００４】
特に、送り軸である移動軸に沿った方向の反転時にはバックラッシまたはロストモーションの影響が工具位置の運動軌跡に顕著に影響する。典型的なものとしては、円弧軌跡を指令した場合に、円弧軌跡の象限切替り部分において段差状の軌跡誤差が生じるものがある。これは、機械系のバックラッシまたはロストモーションの影響により、正方向移動時には軌跡が負方向にずれて移動し、負方向移動時には軌跡が正方向にずれて移動することによって生じる。このような軌跡の追従誤差が発生すると、加工面に筋または傷が発生することになり、好ましくない。【０００５】
そのため、数値制御装置には、機械系に存在するバックラッシおよびロストモーションといった誤差要因の影響を抑制するために、フィードバック制御に加えて機械系の誤差要因により生じる軌跡の誤差を予測して、補正を行う機能が備わっている。特に、指令位置の方向が反転すなわち速度の正負の符号が反転する際に、指令位置に補正量の加算を行ってバックラッシおよびロストモーションの影響を低減する、いわゆるバックラッシ補正が行われている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−５４００１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の技術のように、送り軸の移動方向が反転する際、バックラッシまたはロストモーションによる工具端の追従誤差を補正するためにバックラッシ補正量を指令位置に印加する方式は、指令位置の移動方向反転時に補正量を印加する方式であるため、微小な方向反転でも補正を実行することになる。その結果、かえって精度を悪化させる場合がある。具体的には、円弧と直線との接続部においてＣＡＭ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｍａｎｕｆａｃｔｕｒｉｎｇ）の演算誤差により微小な移動指令が挿入され、バックラッシ幅以下の微小な反転が生じるような場合には、円弧の出口部分で不要なバックラッシ補正が行われる。さらに、隣接するパス同士で微小反転ブロックが入ったり入らなかったりすると、パスによって補正がかかったりかからなかったりして、加工傷の原因となる。不感帯を設けて回避することも考えられるが、その場合は指令形状が円弧の場合のように本来補正すべきケースで補正がかかるタイミングが遅くなってしまう。【０００８】
本発明は、上記に鑑みてなされたものであって、不要なバックラッシ補正を回避できる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、加工プログラムに基づいてサーボモータを制御する。そして、本発明は、サーボモータにより移動軸の方向に駆動される機械系に移動方向反転を発生させる命令と、命令より後に実行される命令とを含む加工プログラムに基づいて、移動方向反転に対して補正を実行するか否かを決定することを特徴とする。
【発明の効果】
【００１０】
本発明にかかる数値制御装置は、不要なバックラッシ補正を回避できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１にかかる数値制御装置の構成を示すブロック図
【図２】実施の形態１にかかる数値制御装置が制御の対象としているサーボモータおよび機械系の構造を示す図
【図３】実施の形態１にかかる加工プログラムの一例を示す図
【図４】実施の形態１にかかる一つの移動軸の移動方向が反転する様子を説明する図
【図５】実施の形態１にかかるサーボ制御部の構成を示すブロック図
【図６】実施の形態１にかかる走査線加工において並列している複数の走査線移動経路を示す図
【図７】実施の形態１にかかる走査線加工を行う加工プログラムの一例を示す図
【図８】実施の形態１にかかる数値制御装置の機能をコンピュータで実現する場合の構成を示す図
【発明を実施するための形態】
【００１２】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１にかかる数値制御装置１０の構成を示すブロック図である。図２は、実施の形態１にかかる数値制御装置１０が制御の対象としているサーボモータ１６および機械系６の構造を示す図である。機械系６は、工作機械といった産業用機械装置において移動軸方向に可動な部分の総称である。したがって、移動軸は、機械系６が移動できる方向を示す。図２の構造は移動軸毎に設けられており、１つ以上の移動軸に対応して、数値制御装置１０は、１つ以上の機械系６を制御の対象とする。
【００１４】
図１に示すように、数値制御装置１０は、入力された加工プログラム１１に基づいて、サーボモータ１６を制御する。加工プログラム１１には、加工に必要な工具の移動経路の情報である経路情報がいわゆるＧコードによって命令により記述されている。Ｇコードは、ＥＩＡ（米国電子工業会）コードとも呼ばれる。加工プログラム１１は、テキストデータで記述されており、基本的に一行が一命令に相当する。
【００１５】
図２に示すように、サーボモータ１６には位置検出器１７が取り付けられており、サーボモータ１６の位置を検出する。位置検出器１７としては、通常はロータリーエンコーダなどが用いられる。サーボモータ１６にはボールねじ６１を介して機械系６が接続されており、サーボモータ１６はボールねじ６１を回転駆動させる。ここで、機械系６は、ボールねじ６１の回転を移動軸の方向の直動運動に変換するナット６２およびナット６２に固定されているテーブル６３である。リニアガイド６４は、テーブル６３を支持しており、テーブル６３の運動方向を移動軸の方向に拘束している。したがって、サーボモータ１６は移動軸に沿って機械系６を駆動することができる。
【００１６】
なお、位置検出器１７において直接検出されるモータ位置は、サーボモータ１６の回転角度の値である。したがって、このモータ位置である角度の値にサーボモータ１６の１回転あたりのテーブル移動距離であるボールねじリードを乗じてサーボモータ１６の１回転あたりの角度２π（ｒａｄ）で除することで、テーブル６３の移動方向の長さに換算することができる。以降では、モータ位置は、テーブル６３の移動方向の長さに換算した値を用いることとする。
【００１７】
数値制御装置１０は、加工プログラム１１に記述された命令が示す経路情報に基づいて指令位置を算出する指令位置生成部１２と、加工プログラム１１に記述された命令が示す経路情報を解析する経路情報解析部１３と、移動方向反転に対して補正するか否かを決定して反転時補正量を決定する補正量決定部１４と、トルク指令を出力するサーボ制御部１５と、加算器１８と、を備える。
【００１８】
指令位置生成部１２は、加工プログラム１１の命令を先頭行から順番に読み込み、加工プログラム１１の先頭から順番に記述された命令が示す経路情報を逐次的に処理して補間および加減速の演算を行い、制御周期ごとの指令位置を算出して出力する。加工プログラム１１に記述される命令は定められた順番で実行されるので、加工プログラム１１に記述される命令が示す経路情報はその前に実行される命令が示す経路情報より時間的には後に処理されることになる。
【００１９】
経路情報解析部１３は、加工プログラム１１に記述された命令が示す経路情報を解析して、機械系６の移動軸に沿った移動の方向が反転する移動方向反転を発生させる命令の加工プログラム１１内での記述箇所を抽出して、方向反転情報として生成して出力する。
【００２０】
図３は、実施の形態１にかかる加工プログラム１１の一例を示す図である。加工プログラム１１は、移動軸としてＸ軸およびＹ軸の２つの移動軸を有する機械に対する加工プログラムであり、命令が指示する位置座標の単位は「ｍｍ」とする。加工プログラム１１の１行目および３行目の命令は位置座標を指示していないので説明を省く。２行目の命令“Ｇ０Ｘ０．Ｙ０．”は、原点である点（０，０）（以下同様に（Ｘ軸座標，Ｙ軸座標）と表記する）への位置決めを指示する。４行目の命令“Ｘ１０．”は、Ｙ軸座標は変更せずに、Ｘ軸座標が１０．０ｍｍの位置への移動を指示する。したがって、４行目の命令は、点（１０，０）への移動を指示している。５行目の命令“Ｙ１０．”は、Ｘ軸座標は変更せずに、Ｙ軸座標が１０．０ｍｍの位置への移動を指示する。したがって、５行目の命令は、点（１０，１０）への移動を指示している。以後は同様で、６行目の命令が指示する点（−１０，１０）、７行目の命令が指示する点（−１０，０）、８行目の命令が指示する点（０，０）を順に移動することが加工プログラム１１において命令されている。したがって、６行目および８行目の命令はＸ軸の移動方向の反転を指示する命令になっている。
【００２１】
図４は、実施の形態１にかかる一つの移動軸の移動方向が反転する様子を説明する図である。図４は、図３に示した加工プログラム１１において移動軸の一つであるＸ軸の移動方向が反転する様子を示している。Ｘ軸上の点４１において正方向への移動が負方向の移動へと移動方向が反転し、点４２において負方向への移動が正方向の移動へと移動方向が反転する。図２がＸ軸を移動軸とする機械系６を示しているとすると、図４の点４１および点４２において機械系６の移動方向反転が生ずる。
【００２２】
したがって、経路情報解析部１３が生成する方向反転情報は、少なくとも移動軸に沿って機械系６の移動方向反転を発生させる加工プログラム１１の命令の記述箇所についての情報を含む。加工プログラム１１内において機械系６の移動方向反転を発生させる命令の記述箇所についての情報の具体例は、加工プログラム１１において機械系６の移動方向反転を発生させる命令が記述されている行の先頭行から何行目かといった情報である。
【００２３】
図３に示した加工プログラム１１を例に説明すると、経路情報解析部１３は、１回目に位置座標を指示する命令を受け取ると当該命令が指示する移動先の座標を求めて記憶領域に保持しておく。そして、経路情報解析部１３は、２回目に位置座標を指示する命令を受け取ると当該命令が指示する移動先の座標を求めて記憶領域に保持するとともに、１回目の命令が指示した移動先の座標からの移動ベクトルに相当する情報を求める。経路情報解析部１３は、この移動ベクトルに基づいて軸毎の移動方向の符号を求めて記憶領域に保持する。なお、移動量が０になる軸については符号が求められないので、符号は保持されない。そして、経路情報解析部１３は、３回目に位置座標を指示する命令を受け取ると当該命令が指示する移動先の座標を求めて記憶領域に保持するとともに、２回目の命令が指示した移動先の座標からの移動ベクトルに相当する情報を求める。経路情報解析部１３は、この移動ベクトルに基づいて軸毎の移動方向の符号を求めて記憶領域に保持する。なお、移動量が０になる軸については符号が求められないので、符号は保持されない。経路情報解析部１３は、以下この作業を繰り返す。これにより、軸毎に０でない移動量が最後に発生したときの移動方向の符号が記憶領域に保持されることになるので、新たな命令により符号が反転した場合に、経路情報解析部１３は、移動方向の反転が生じたと判定することができる。
【００２４】
図３に示した加工プログラム１１の例においては、経路情報解析部１３が４行目の命令“Ｘ１０．”より求めたＸ軸についての符号である「＋」が、６行目の命令“Ｘ−１０．”により求めたＸ軸についての符号「−」へ反転している。したがって、経路情報解析部１３は、６行目の命令“Ｘ−１０．”により図４の点４１における移動方向の反転が生じると判定することができる。また、経路情報解析部１３が６行目の命令“Ｘ−１０．”により求めたＸ軸についての符号「−」が、８行目の命令“Ｘ０．”により求めたＸ軸についての符号「＋」へ反転している。したがって、経路情報解析部１３は、８行目の命令“Ｘ０．”により図４の点４２における移動方向の反転が生じると判定することができる。したがって、経路情報解析部１３が生成するＸ軸に関する方向反転情報には、Ｘ軸の移動方向の反転を発生させる命令の加工プログラム１１における行数である「６行目」および「８行目」が含まれる。
【００２５】
さらに、経路情報解析部１３は、指令位置生成部１２より加工プログラム１１を先読みするので、加工プログラム１１において機械系６の移動方向反転を発生させる命令より後に実行される命令が示す経路情報を方向反転情報に含ませることができる。経路情報解析部１３が指令位置生成部１２より加工プログラム１１を先読みするとは、指令位置生成部１２が指令位置を算出するために用いる経路情報を示す命令より後に実行される命令を読み込むことである。経路情報解析部１３は、生成した方向反転情報を補正量決定部１４に提供する。補正量決定部１４は、経路情報解析部１３が先読みした加工プログラム１１の命令から生成された方向反転情報に基づいて、移動経路上の移動方向反転箇所においてバックラッシ補正を実行するか否かの判断を行うことが可能となる。
【００２６】
経路情報解析部１３は、上記の先読みを実行することにより、移動方向反転箇所に引き続く移動経路の予め定めた区間において、移動方向反転が発生した移動軸に沿った移動方向反転箇所からの機械系６の移動量を求めることができる。経路情報解析部１３は、求めた機械系６の移動量を方向反転情報に含めて、補正量決定部１４に方向反転情報を提供してもよい。移動軸に沿った移動量の具体例は、テーブル６３の移動方向反転が発生した移動軸に沿った移動量である。
【００２７】
図３に示した加工プログラム１１の例においては、６行目の命令“Ｘ−１０．”によれば、点（１０，１０）から点（−１０，１０）へと移動方向反転箇所である点（１０，１０）からＸ軸方向に機械系６は２０ｍｍ移動する。したがって、方向反転情報は、移動方向反転箇所にかかる「６行目」と共に移動方向反転箇所からの移動量である「２０ｍｍ」を含んでもよい。また、８行目の命令“Ｘ０．”によれば、点（−１０，０）から点（０，０）へと移動方向反転箇所である点（−１０，０）からＸ軸方向に機械系６は１０ｍｍ移動する。したがって、方向反転情報は、移動方向反転箇所にかかる「８行目」と共に移動方向反転箇所からの移動量である「１０ｍｍ」を含んでもよい。
【００２８】
経路情報解析部１３は、上記の先読みを実行することにより、移動方向反転箇所での機械系６の移動軸における座標値を求めることができる。経路情報解析部１３は、移動方向反転箇所での機械系６の移動軸における座標値を方向反転情報にさらに含めて、補正量決定部１４に方向反転情報を提供してもよい。機械系６の移動軸における具体的な座標値は、テーブル６３の移動軸に相当する移動方向の座標値といった値である。機械系６の移動軸が複数ある場合は、移動方向反転箇所の機械系６の移動軸における座標値は、移動方向反転箇所における全ての移動軸における各座標値を含むものとする。
【００２９】
図３に示した加工プログラム１１の例においては、６行目の命令“Ｘ−１０．”による移動方向反転箇所の座標値は、上述したように（１０，１０）である。したがって、「６行目」を含む方向反転情報は、移動方向反転箇所の座標値として（１０，１０）を含んでもよい。また、８行目の命令“Ｘ０．”による移動方向反転箇所の座標値は、上述したように（−１０，０）である。したがって、「８行目」を含む方向反転情報は、移動方向反転箇所の座標値として（−１０，０）を含んでもよい。
【００３０】
補正量決定部１４は、方向反転情報および指令位置に基づいて、移動方向反転に対する補正の補正量である反転時補正量を決定して出力する。具体的には、反転時補正量を０にするか否かを決定し、反転時補正量を０としない場合、すなわちバックラッシ補正を実行する場合は、反転時補正量に０以外の値を持たせる。
【００３１】
補正量決定部１４が０以外の値の反転時補正量を出力してバックラッシ補正を実行する場合の反転時補正量は、バックラッシ補正のパラメータとして予め設定しておく。具体的には、機械系６の移動方向反転が発生した移動軸に沿った移動方向反転後の移動方向と同一の符号で、移動方向反転が発生した移動軸の機械系６に固有なバックラッシ量に相当する大きさの値を反転時補正量とする。
【００３２】
加算器１８において、指令位置と反転時補正量とが加算され、指令位置と反転時補正量とが加算された値が補正後の指令位置としてサーボ制御部１５に入力される。すなわち、反転時補正量により補正された指令位置がサーボ制御部１５に入力される。
【００３３】
サーボ制御部１５には、補正後の指令位置が入力されるとともに位置検出器１７で検出されたサーボモータ１６のモータ位置すなわち回転角度の値がフィードバック位置として入力される。そして、サーボ制御部１５においては、フィードバック位置が補正後の指令位置に追従するようにサーボ制御が行われる。具体的には、フィードバック位置および補正後の指令位置を用いたサーボ制御部１５による演算の結果のモータトルクがトルク指令として出力され、トルク指令に従ってサーボモータ１６が駆動される。
【００３４】
図５は、実施の形態１にかかるサーボ制御部１５の構成を示すブロック図である。
【００３５】
サーボ制御部１５は、位置制御処理を実行する位置制御部３１と、速度制御処理を実行する速度制御部３２と、微分演算を実行する微分演算部３３と、減算器３４，３５と、を備える。
【００３６】
減算器３４は、補正後の指令位置とフィードバック位置との差を位置偏差として求め、この位置偏差は位置制御部３１に入力される。位置制御部３１は、位置偏差に対して比例制御といった位置制御処理を実行して指令速度を演算して出力する。
【００３７】
微分演算部３３は、フィードバック位置を微分して微分値を出力する。なお、この微分処理は、離散時間系においては差分処理で実行される。すなわち、現在のフィードバック位置と１サンプル前のフィードバック位置との差を制御処理周期で除した値が、近似的な微分値として求められ、微分演算部３３から出力される。
【００３８】
減算器３５は、位置制御部３１が出力した指令速度と微分演算部３３が出力した微分値との差を求めて、速度制御部３２に入力する。
【００３９】
速度制御部３２は、減算器３５からの出力に対して比例積分制御といった速度制御処理を実行してトルク指令を求めて出力する。
【００４０】
通常、加工プログラム１１は、ＣＡＤ（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）形状からＣＡＭを用いて生成される。ＣＡＭでは、ＣＡＤで表現される形状情報を点群データにおきかえ、これらの点群を走査線および等高線といった経路でつないで加工の経路情報を生成し、この経路情報をＧコードの書式で記述したものが加工プログラム１１として出力される。もとのＣＡＤ形状が自由曲面形状である場合、出力される加工プログラム１１は、微小な線分を接続したものとなる。このような加工プログラム１１は、微小線分プログラムと呼ばれる。加工プログラム１１が微小線分プログラムである場合、移動軸の一方向に動いたあと、わずかに反転して停止するようなパターンが加工プログラム１１に含まれることがある。また、微小線分プログラムで走査線加工を行う場合、走査線加工において並列している複数の移動経路において、ある移動経路においてのみ機械系６の移動方向反転が発生し、当該移動経路と並列する他の移動経路においては機械系６の移動方向反転が発生しない場合も生じる。
【００４１】
図６は、実施の形態１にかかる走査線加工において並列している複数の走査線移動経路を示す図である。図７は、実施の形態１にかかる走査線加工を行う加工プログラム１１の一例を示す図である。図６は、Ｘ軸、Ｙ軸およびＺ軸の直交する３つの移動軸を有する機械において、並列している複数の走査線移動経路５１，５２，５３，５４，５５を接続した移動経路をＸ軸Ｙ軸平面に投影した図になっている。図６の紙面垂直方向がＺ軸である。図７は、Ｘ軸、Ｙ軸およびＺ軸の３つの移動軸を有する機械において図６に示した走査線加工の実行を指示する加工プログラム１１を示している。図７の加工プログラム１１における命令が指示する位置座標の単位は「ｍｍ」とする。なお、図７の加工プログラム１１の１行目および３行目の命令は位置座標を指示していない。
【００４２】
図７の加工プログラム１１には、図６において（Ｘ軸座標，Ｙ軸座標，Ｚ軸座標）で表記した各点への移動を指示する命令が記載されている。具体的には、図７の加工プログラム１１には、２行目の位置決め命令が指示する点である（０，０，０）を始点として、４行目の命令が指示する点（５，０，０）、５行目の命令が指示する点（１０，０，０）、６行目の命令が指示する点（１０，１，１）、７行目の命令が指示する点（５，１，１）、８行目の命令が指示する点（０，１，１）、９行目の命令が指示する点（０，２，２）、１０行目の命令が指示する点（５，２．００１，２）、１１行目の命令が指示する点（１０，２，２）、１２行目の命令が指示する点（１０，３，３）、１３行目の命令が指示する点（５，３，３）、１４行目の命令が指示する点（０，３，３）、１５行目の命令が指示する点（０，４，４）、１６行目の命令が指示する点（５，４，４）、１７行目の命令が指示する点（１０，４，４）を順に移動することが命令されている。
【００４３】
走査線移動経路５３を指示する命令は図７の加工プログラム１１の１０行目および１１行目であるが、１１行目の命令“Ｘ１０．Ｙ２．”によりＹ軸の移動方向の反転が生じる。すなわち、１１行目の命令による移動方向反転箇所の座標値は（５，２．００１，２）である。さらに、１１行目の命令におけるＹ軸方向の機械系６の移動量は、点（５，２．００１，２）から点（１０，２，２）までの移動であるので、ｄ＝０．００１ｍｍとなる。
【００４４】
また、１２行目の命令“Ｙ３．Ｚ３．”によってもＹ軸の移動方向の反転が生じる。１２行目の命令による移動方向反転箇所の座標値は（１０，２，２）である。さらに、１２行目の命令におけるＹ軸方向の機械系６の移動量は、点（１０，２，２）から点（１０，３，３）までの移動であるので、１ｍｍとなる。
【００４５】
ＣＡＭにおいては、演算誤差により、もとのＣＡＤ形状においては移動方向反転が発生していないにもかかわらず、微小な距離の移動方向反転が発生するような移動経路が加工プログラム１１に含まれる場合がある。ＣＡＤ形状における面と面の継ぎ目の本来直線的に接続されるべき移動経路において、このような移動方向反転がＣＡＭの演算誤差により発生する場合がある。
【００４６】
図６に具体的に示すように、走査線移動経路５３では、ＣＡＭの演算誤差により二つの微小な線分がわずかに折れ曲がって接続されていて接続点（５，２．００１，２）が移動反転箇所となり紙面上下方向の移動軸であるＹ軸において機械系６の移動方向反転が発生している。それにもかかわらず、走査線移動経路５３と並列する他の移動経路である走査線移動経路５１，５２，５４，５５においては折れ曲がっていない線分で移動経路が形成されていてＹ軸において機械系６の移動方向反転が発生していない。
【００４７】
そして、移動方向反転が発生してから反転した方向への移動が停止するまでの移動量が機械系６に固有のバックラッシ量よりも小さい場合、移動方向反転時に当該バックラッシ量に相当するバックラッシ補正を行ってしまうと、バックラッシ補正を本来実行する必要がない箇所にバックラッシ補正を行うことになり、加工面に筋が発生してしまう。すなわち、図６に示したような移動経路の場合、移動方向反転が発生する走査線移動経路５３の移動方向反転箇所においてＹ軸の方向にバックラッシ補正を実行してしまうと、走査線移動経路５３だけバックラッシ補正を行うことになり、走査線移動経路５３のバックラッシ補正を行った箇所において加工面に傷が発生してしまう。
【００４８】
そこで、補正量決定部１４は、移動経路を大域的に観てバックラッシ補正の要否を判断し、バックラッシ補正が不要であると判断した当該移動経路における移動方向反転箇所においては、バックラッシ補正を行わないようにする。このために、指令位置生成部１２が加工プログラム１１から経路情報を読み込む処理に先行して、経路情報解析部１３が加工プログラム１１を読み込んで方向反転情報を求めて出力する。移動経路を大域的に観てバックラッシ補正の要否を判断するとは、経路情報解析部１３が加工プログラム１１を指令位置生成部１２より先読みして得た方向反転情報に基づいて、補正量決定部１４がバックラッシ補正の要否を判断することである。
【００４９】
実施の形態１にかかる数値制御装置１０においては、加工プログラム１１を指令位置生成部１２が読み込んで指令位置を出力する前に、経路情報解析部１３が加工プログラム１１を指令位置生成部１２よりも先読みしておいて、方向反転情報を一定量求めて出力する。すなわち、加工プログラム１１の先頭から順に経路情報の読み込みを実行した指令位置生成部１２から出力された指令位置に対して、加工プログラム１１を先読みした経路情報解析部１３による方向反転情報に基づいて補正量決定部１４はバックラッシ補正を実行するか否かの判断を実行する。なお、指令位置生成部１２に先立って経路情報解析部１３が加工プログラム１１を読み込む量は、加工プログラム１１の行数または文字数として、予めパラメータとして設定しておくものとする。予めパラメータとして設定しておく経路情報解析部１３が先読みする加工プログラム１１の行数の具体例は１０００行、先読みする加工プログラム１１の文字数の具体例は１００００文字といった値である。
【００５０】
補正量決定部１４は、加工プログラム１１に記述された経路情報を読み込んだ指令位置生成部１２から出力された指令位置に対して、当該指令位置に対応する経路情報を示す命令より加工プログラム１１において後に実行される命令が示す経路情報を含んだ方向反転情報に基づいて、バックラッシ補正を実行するか否かの判断ができればよい。したがって、経路情報解析部１３が指令位置生成部１２よりも加工プログラム１１を先読みするということは、時間的により早く読み込むことを必ずしも意味しない。
【００５１】
上述したように、経路情報解析部１３が出力する方向反転情報は、加工プログラム１１内において機械系６の移動方向反転を発生させる命令の記述箇所についての情報を含んでいる。したがって、方向反転情報を受け取った補正量決定部１４は、加工プログラム１１内において機械系６の移動方向反転を発生させる命令の記述箇所についての情報を利用して、指令位置生成部１２が現在出力する指令位置が移動方向反転を伴う指令位置か否かを判定することができる。さらに、方向反転情報は、加工プログラム１１において機械系６の移動方向反転を発生させる命令より後に実行される命令が示す経路情報も含んでいる。したがって、補正量決定部１４は、加工プログラム１１において機械系６の移動方向反転を発生させる命令より後に実行される命令が示す経路情報を利用して、指令位置生成部１２が現在処理している加工プログラム１１の命令に対応した指令位置に対して、バックラッシ補正を実行する必要があるか否かを決定することができる。その結果、不要なバックラッシ補正を回避して、指令位置によって示される指令形状によらず適切なバックラッシ補正を行うことができる。
【００５２】
方向反転情報が、移動方向反転箇所に引き続く移動経路の予め定めた区間における移動方向反転が発生した移動軸に沿った機械系６の移動量を含んでいる場合は、指令位置生成部１２が現在出力する指令位置が移動方向反転を伴う指令位置である場合に、移動方向反転の後に移動方向反転が発生した移動軸に沿ってどれだけ機械系６が移動するかを補正量決定部１４は把握することができる。方向反転情報が、移動方向反転箇所に引き続く移動経路の予め定めた区間における移動方向反転が発生した移動軸に沿った機械系６の移動量を含むためには、指令位置生成部１２が現在出力する移動方向反転が発生している指令位置に対応する経路情報を示す命令よりも加工プログラム１１において後に実行される命令が示す経路情報に基づいて、経路情報解析部１３が上記移動量を求めて方向反転情報に含める必要がある。そして、移動量が予め定めた移動量閾値より大きい場合は、補正量決定部１４は反転時補正量を出力しバックラッシ補正を実行する。また、機械系６の移動量が移動量閾値より小さい場合は、ＣＡＭによって不要な移動方向反転が移動経路に挿入されていると考えられるので、補正量決定部１４は反転時補正量を０にしてバックラッシ補正を実行しない。移動量閾値は、パラメータとして予め設定しておく。移動量閾値には、移動方向反転が発生した移動軸における機械系６に固有なバックラッシ量に相当する大きさの値を設定しておく。
【００５３】
方向反転情報が、移動方向反転箇所での機械系６の移動軸における座標値を含んでいる場合は、指令位置生成部１２が現在出力する指令位置が機械系６の移動方向反転を伴う指令位置であるときに、当該移動方向反転が発生している移動方向反転箇所での機械系６の移動軸における座標値から予め定めた距離以内に他の移動方向反転箇所が存在するか否かを補正量決定部１４は判定することができる。なお、補正量決定部１４による上記判定のためには、指令位置生成部１２が現在出力する指令位置に対応する経路情報を示す命令よりも加工プログラム１１において後に実行される命令および前に実行される命令が示す経路情報に基づいて、上記移動方向反転が発生している移動方向反転箇所の機械系６の座標値から予め定めた距離以内に他の移動方向反転箇所が存在するか否かについての情報を経路情報解析部１３が求めて方向反転情報に含める必要がある。したがって、予め定めた距離は、経路情報解析部１３が加工プログラム１１から先読みした経路情報が示す移動経路の範囲に含まれる距離である必要がある。そして、当該移動方向反転が発生している移動方向反転箇所の機械系６の座標値から予め定めた距離以内に他の移動方向反転箇所が存在する場合は、補正量決定部１４は反転時補正量を出力しバックラッシ補正を実行する。また、当該移動方向反転が発生している移動方向反転箇所の機械系６の座標値から予め定めた距離以内に他の移動方向反転箇所が存在しない場合は、補正量決定部１４は反転時補正量を０にしてバックラッシ補正を実行しない。予め定めた距離は、パラメータとして予め設定しておく。予め定めた距離は、加工プログラム１１に指令された走査線加工において並列している移動経路の間隔であるピックフィードを設定してもよい。また、移動軸における機械系６の座標値に基づいた補正量決定部１４による上記処理は、先に説明した移動方向反転が発生した移動軸に沿った機械系６の移動量に基づいた処理と併用してもかまわない。
【００５４】
上述したように、図７の加工プログラム１１においては、１１行目および１２行目の命令がＹ軸の移動方向の反転を指示する命令になっている。したがって、経路情報解析部１３は、Ｙ軸の方向反転情報として、以下の２組の情報を生成する。
【００５５】
移動方向反転を発生させる命令の記述箇所：１１行目
移動方向反転箇所からの移動量：０．００１ｍｍ（＝ｄ）
移動方向反転箇所の座標値：（５，２．００１，２）
【００５６】
移動方向反転を発生させる命令の記述箇所：１２行目
移動方向反転箇所からの移動量：１ｍｍ
移動方向反転箇所の座標値：（１０，２，２）
【００５７】
ここで、上述した移動量閾値を５μｍ（＝０．００５ｍｍ）、移動方向反転箇所の傍に他の移動方向反転箇所が存在するか否かを判定するために予め定めた距離を１．５ｍｍであるとする。
【００５８】
図７に記載した加工プログラム１１の１１行目にかかる移動方向反転箇所についてみると、移動方向反転箇所からの移動量ｄは移動量閾値である５μｍよりも小さい。さらに、１２行目にかかる移動方向反転箇所の座標である（１０，２，２）は、１１行目にかかる移動方向反転箇所の座標である（５，２．００１，２）から予め定めた距離である１．５ｍｍより大きく離れている。
【００５９】
したがって、移動量ｄが移動量閾値よりも小さいことおよび移動方向反転箇所の座標間の距離が予め定めた距離より大きいことに基づいて、補正量決定部１４はバックラッシ補正を実行しないことにして、反転時補正量を０と決定する。これにより、図６の走査線移動経路５３における微小な線分の折れ曲がりの箇所である点（５，２．００１，２）において不要なバックラッシ補正を実行することがなくなり、加工面に傷が発生するのを防ぐことができる。なお、補正量決定部１４は、移動量ｄが移動量閾値よりも小さいことまたは移動方向反転箇所の座標間の距離が予め定めた距離より大きいことのいずれかに基づいて、バックラッシ補正を実行しないように決定してもかまわない。
【００６０】
図８は、実施の形態１にかかる数値制御装置１０の機能をコンピュータで実現する場合の構成を示す図である。この場合、数値制御装置１０の機能は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、メモリ１０２、インタフェース１０３および専用回路１０４により実現される。指令位置生成部１２、経路情報解析部１３、補正量決定部１４および加算器１８の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアはプログラムとして記述され、メモリ１０２に格納される。ＣＰＵ１０１は、メモリ１０２に記憶されたプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、数値制御装置１０は、その機能がコンピュータにより実行されるときに、指令位置生成部１２、経路情報解析部１３、補正量決定部１４および加算器１８の動作を実施するステップが結果的に実行されることになるプログラムを格納するためのメモリ１０２を備える。また、これらのプログラムは、指令位置生成部１２、経路情報解析部１３、補正量決定部１４および加算器１８の手順または方法をコンピュータに実行させるものであるともいえる。ここで、メモリ１０２は、経路情報解析部１３が利用する上述した記憶領域にもなっており、その具体例は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。インタフェース１０３は、加工プログラム１１を受け付ける機能を有している。専用回路１０４の具体例は、サーボ制御部１５のインバータ回路である。
【００６１】
また、指令位置生成部１２、経路情報解析部１３、補正量決定部１４、サーボ制御部１５および加算器１８の各機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。このように、数値制御装置１０は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現することができる。
【００６２】
以上説明したように、実施の形態１にかかる数値制御装置１０によれば、経路情報解析部１３が指令位置生成部１２よりも加工プログラム１１を先読みすることにより、経路情報解析部１３における方向反転情報の生成を指令位置生成部１２における指令位置演算に先行して実行できる。その結果、方向反転情報に基づいて補正量決定部１４が大域的な判断を行うことができ、バックラッシ補正を実行するか否かの判断を的確に行うことができる。
【００６３】
また、実施の形態１にかかる数値制御装置１０によれば、移動方向反転後の機械系６の移動量が移動量閾値より小さい場合には、補正量決定部１４が反転時補正量を０にして反転時補正量を出力しないようにするので、移動方向反転後の機械系６の移動量がバックラッシ量以下となるような場合に、不要なバックラッシ補正を実行しないようにすることができる。
【００６４】
さらに、実施の形態１にかかる数値制御装置１０によれば、現在の移動方向反転箇所の周辺に他の移動方向反転箇所が存在しない場合には、補正量決定部１４が反転時補正量を０にして反転時補正量を出力しないようにするので、走査線加工において特定の移動経路にだけ移動方向反転箇所が加工意図に反して発生してしまう場合に、不要なバックラッシ補正を実行しないようにすることができる。
【００６５】
このように、実施の形態１にかかる数値制御装置１０においては、指令位置生成部１２よりも加工プログラム１１を先読みする経路情報解析部１３が生成した方向反転情報に基づいて、補正量決定部１４がバックラッシ補正の有無を判定する。これにより、ＣＡＭによる演算誤差といった原因による加工意図に反する微小反転が生じる場合において、不要なバックラッシ補正を実行しないようにすることができる。その結果、不要なバックラッシ補正によって輪郭運動制御の精度が悪化することを回避できるので、加工面に筋または傷が発生することを防ぐことができる。
【００６６】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６７】
６  機械系、１０  数値制御装置、１１  加工プログラム、１２  指令位置生成部、１３  経路情報解析部、１４  補正量決定部、１５  サーボ制御部、１６  サーボモータ、１７  位置検出器、３１  位置制御部、３２  速度制御部、３３  微分演算部、４１，４２  点、５１，５２，５３，５４，５５  走査線移動経路、６１  ボールねじ、６２  ナット、６３  テーブル、６４  リニアガイド、１０１  ＣＰＵ、１０２  メモリ、１０３  インタフェース、１０４  専用回路。
【図１】
2018066048.tif 000003
【図２】
2018066048.tif 000004
【図３】
2018066048.tif 000005
【図４】
2018066048.tif 000006
【図５】
2018066048.tif 000007
【図６】
2018066048.tif 000008
【図７】
2018066048.tif 000009
【図８】
2018066048.tif 000010
【手続補正書】
【提出日】平成29年7月14日(2017.7.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
加工プログラムに基づいてサーボモータを制御する数値制御装置において、
前記加工プログラムに含まれる前記サーボモータにより移動軸の方向に駆動される機械系に移動方向反転を発生させる命令と、前記加工プログラムを先読みして得られる命令であって前記移動方向反転を発生させる命令より後に実行される命令とに基づいて、前記移動方向反転に対して補正を実行するか否かを決定する
ことを特徴とする数値制御装置。
【請求項２】
前記加工プログラムに記述された経路情報に基づいて指令位置を生成する指令位置生成部と、
前記経路情報に基づいて前記命令の前記加工プログラムにおける記述箇所についての情報と、前記加工プログラムを先読みして得られる命令であって前記移動方向反転を発生させる命令より後に実行される命令が示す経路情報と、を含んだ方向反転情報を生成する経路情報解析部と、
前記指令位置および前記方向反転情報に基づいて、前記補正を実行するか否かを決定する補正量決定部と、
前記補正により補正された前記指令位置に前記サーボモータのモータ位置が追従するようにサーボ制御を行うサーボ制御部と、
を備える
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
加工プログラムに基づいてサーボモータを制御する数値制御装置において、
前記加工プログラムに記述された経路情報に基づいて指令位置を生成する指令位置生成部と、
前記経路情報に基づいて、前記サーボモータにより移動軸の方向に駆動される機械系に移動方向反転を発生させる命令の前記加工プログラムにおける記述箇所についての情報と、前記移動方向反転を発生させる命令より後に実行される命令が示す経路情報と、前記移動方向反転が発生する箇所に引き続く移動経路の予め定めた区間における前記移動方向反転が発生した前記移動軸に沿った前記機械系の移動量と、を含んだ方向反転情報を生成する経路情報解析部と、
前記指令位置および前記方向反転情報に基づいて、前記移動方向反転に対して補正を実行するか否かを決定し、前記移動量が予め定めた移動量閾値より小さい場合は、前記補正の補正量である反転時補正量を０にする補正量決定部と、
前記補正により補正された前記指令位置に前記サーボモータのモータ位置が追従するようにサーボ制御を行うサーボ制御部と、
を備える
ことを特徴とする数値制御装置。
【請求項４】
加工プログラムに基づいてサーボモータを制御する数値制御装置において、
前記加工プログラムに記述された経路情報に基づいて指令位置を生成する指令位置生成部と、
前記経路情報に基づいて、前記サーボモータにより移動軸の方向に駆動される機械系に移動方向反転を発生させる命令の前記加工プログラムにおける記述箇所についての情報と、前記移動方向反転を発生させる命令より後に実行される命令が示す経路情報と、前記移動方向反転が発生する箇所での前記機械系の前記移動軸における座標値と、を含んだ方向反転情報を生成する経路情報解析部と、
前記指令位置および前記方向反転情報に基づいて、前記移動方向反転に対して補正を実行するか否かを決定し、前記座標値から予め定めた距離以内に他の前記移動方向反転が発生しない場合は、前記補正の補正量である反転時補正量を０にする補正量決定部と、
前記補正により補正された前記指令位置に前記サーボモータのモータ位置が追従するようにサーボ制御を行うサーボ制御部と、
を備える
ことを特徴とする数値制御装置。
【請求項５】
前記方向反転情報は、前記移動方向反転が発生する箇所での前記機械系の前記移動軸における座標値を含み、
前記補正量決定部は、前記座標値から予め定めた距離以内に他の前記移動方向反転が発生しない場合は、前記補正の補正量である反転時補正量を０にする
ことを特徴とする請求項３に記載の数値制御装置。
【国際調査報告】
2018066048.tif 000011
2018066048.tif 000012