(57)【要約】【課題】加工プログラムを用いた複数の制御対象の位置決めにおいて、複数の制御対象間の干渉を回避し、かつ最短時間での位置決めを可能とする数値制御装置を提供すること。【解決手段】本発明の数値制御装置は、加工プログラムに基づいて動作の優先度が指定された複数の機械制御軸を制御しており、加工プログラムを解析して複数の機械制御軸を制御する指令データを生成する指令解析部と、該指令データに基づいて、前記複数の機械制御軸の動作に干渉が発生するか判定し、干渉が発生すると判定された場合、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸の動作を開始するタイミングを、前記干渉が発生せず、且つ最短時間で位置決めが完了する時間に調整するブロック実行開始判定部とを備える。【選択図】図３
2016115074.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムに基づいて複数の機械制御軸を制御する数値制御装置において、
前記複数の機械制御軸には、それぞれ動作の優先度が指定されており、
前記加工プログラムを解析して前記複数の機械制御軸を制御する指令データを生成する指令解析部と、
前記指令データに基づいて、前記複数の機械制御軸の動作に干渉が発生するか判定し、干渉が発生すると判定された場合、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸の動作を制御する指令を開始するタイミングを、前記干渉が発生せず、且つ最短時間で位置決めが完了する時間に調整するブロック実行開始判定部と、
を備えた数値制御装置。
【請求項２】
前記ブロック実行開始判定部は、前記干渉を起こす前記複数の機械制御軸の移動経路に基づいて前記干渉を起こす前記複数の機械制御軸が干渉をする領域である干渉領域を求め、前記干渉を起こす前記複数の機械制御軸の内優先度の高い機械制御軸が前記干渉領域を出るタイミングと、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸が前記干渉領域に入るタイミングとに基づいて、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸の動作を制御する指令を開始するタイミングを調整する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記タイミングの調整を、前記複数の機械制御軸の動作時間を基準として算出する、
請求項１または２に記載された数値制御装置。
【請求項４】
前記タイミングの調整を、前記複数の機械制御軸の座標値を基準として算出する、
ことを特徴とする請求項１または２に記載された数値制御装置。
【請求項５】
前記数値制御装置の外部からの入力信号により優先度が低い機械制御軸の動作を制御する指令を開始するタイミングを指定する手段と、
を更に備えたことを特徴とする請求項１〜４のいずれか１つに記載された数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に複数の制御点の位置決めにおいて制御点指令に優先度を設定して優先度の低い指令の移動開始のタイミングを調整することで、干渉を回避する機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
従来、複数の制御点への位置決め指令は、干渉の可能性があれば、同一ブロックではなく別ブロックに分けて記述し実行していた（特許文献１など）。
例えば、図８に示すように、工作機械１においてローダ２をＬ軸、ドア３をＡ軸で制御する場合、ローダ２の後退動作、ドア３の閉鎖動作を同一ブロックに指令すると干渉するため、Ｌ軸とＡ軸は、別のブロックに分けて指令していた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−０７５９１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術のように、それぞれの制御点指令を別ブロックに分けて記述する方法では、前のブロックによる制御動作が終了するまでは次のブロックの制御動作が開始されないため、各制御対象が干渉することはないが、先に指令したブロックの動作が完了するまで次ブロックを開始できないため、先に指令した動作が進み干渉しない状態となった後の時間が無駄な待ち時間となっていた。
【０００５】
従来技術で発生する無駄な待ち時間について図９を用いて詳解する。
図９は、ローダによりワークを設置してローダを後退させた後、ドアを閉鎖して加工動作を開始する動作制御の流れを示す図である。図に示した工作機械１ではローダ２の位置決め制御をＬ軸、ドア３の開閉制御をＡ軸で行うものとし、図９（ａ）に示される加工プログラムに従ってローダ２とドア３の制御を行うものとする。
【０００６】
図９（ａ）の加工プログラムに従ってローダ２とドア３を制御すると、図９（ｂ）に示すように、ローダ２がワーク４の設置作業を終えて後退するとドア３が閉まり始め、閉まり切ると工具５によりワーク４の加工が開始される。従来技術では、プログラムＯ００００１のＮ１０のブロックでローダ２が後退するが、ローダ２が完全に後退し切るまではＮ２０のブロックの実行は開始されない。ローダ２の動作が遅いとドア３の閉鎖動作を開始するまでに無駄な待ち時間が生じることになる。
【０００７】
本発明と類似の既存機能としては、『スタート位置指定待合せ機能』があるが、この機能は多系統システムにおいて、他系統との待ち合わせを行う機能であり、同一系統内での待合わせには利用できない。また、待合わせを行う座標値は、加工プログラムで指令する必要があるが、移動距離と移動速度から干渉を回避できる座標値を的確に求めることは、容易ではない。
【０００８】
そこで本発明の目的は、加工プログラムを用いた複数の制御点の位置決めにおいて、同時に位置決めを開始すると干渉するが、別ブロックで指令すると完了までに時間がかかる場合に、制御点指令に優先度を設定し、優先度の低い指令の移動開始のタイミングを調整することで、干渉を回避し、かつ最短時間での位置決めを可能とする数値制御装置を提供することである。
【課題を解決するための手段】
【０００９】
本願の請求項１に係る発明は、加工プログラムに基づいて複数の機械制御軸を制御する数値制御装置において、前記複数の機械制御軸には、それぞれ動作の優先度が指定されており、前記加工プログラムを解析して前記複数の機械制御軸を制御する指令データを生成する指令解析部と、前記指令データに基づいて、前記複数の機械制御軸の動作に干渉が発生するか判定し、干渉が発生すると判定された場合、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸の動作を制御する指令を開始するタイミングを、前記干渉が発生せず、且つ最短時間で位置決めが完了する時間に調整するブロック実行開始判定部と、を備えた数値制御装置である。
【００１０】
本願の請求項２に係る発明は、前記ブロック実行開始判定部は、前記干渉を起こす前記複数の機械制御軸の移動経路に基づいて前記干渉を起こす前記複数の機械制御軸が干渉をする領域である干渉領域を求め、前記干渉を起こす前記複数の機械制御軸の内優先度の高い機械制御軸が前記干渉領域に出るタイミングと、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸が前記干渉領域に入るタイミングとに基づいて、前記干渉を起こす前記複数の機械制御軸の内優先度の低い機械制御軸の動作を制御する指令を開始するタイミングを調整する、ことを特徴とする請求項１に記載の数値制御装置である。
【００１１】
本願の請求項３に係る発明は、前記タイミングの調整を、前記複数の機械制御軸の動作時間を基準として算出する、請求項１または２に記載された数値制御装置である。
本願の請求項４に係る発明は、前記タイミングの調整を、前記複数の機械制御軸の座標値を基準として算出する、ことを特徴とする請求項１または２に記載された数値制御装置である。
【００１２】
本願の請求項５に係る発明は、前記数値制御装置の外部からの入力信号により優先度が低い機械制御軸の動作を制御する指令を開始するタイミングを指定する手段と、を更に備えたことを特徴とする請求項１〜４のいずれか１つに記載された数値制御装置である。
【発明の効果】
【００１３】
本発明により、干渉する複数の制御点の位置決め指令を同一ブロック、または別ブロックに指令した場合でも干渉することなく最短時間での位置決めが可能となるため、結果としてサイクルタイムの短縮が可能となる。
【図面の簡単な説明】
【００１４】
【図１】従来技術と本発明におけるローダ、ドア、加工動作の開始タイミングの違いを示すタイムチャートである。
【図２】本発明における制御対象の移動経路と緩衝領域とを説明する図である。
【図３】本発明の実施の形態における数値制御装置の機能ブロック図である。
【図４】本発明における加工プログラムの例を示す図である。
【図５】本発明における優先度の低い制御対象の動作開始タイミングの算出方法を説明する図である。
【図６】本発明により制御されるローダとドアの動作例を示す図である。
【図７】本発明の実施の形態におけるブロック実行開始判定処理の概略フローチャートである。
【図８】従来技術の数値制御装置により制御されるローダとドアの制御に係る課題を説明する図である。
【図９】従来技術の数値制御装置により制御されるローダとドアの動作例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面と共に説明する。
最初に本発明の基本的な技術的概要を説明する。本発明では、各制御点への指令に優先度を指定し、優先度の低い指令の移動開始のタイミングを数値制御装置が自動的に調整することで干渉を回避し、かつ最短時間での位置決めを可能とする。
【００１６】
本発明では、動作を開始するタイミングの調整方法として、優先度の高い指令と低い指令を、同一ブロックに記述しておきブロック内で移動開始のタイミングを調整する方法と、別ブロックとして記述しておき優先度の低い指令のブロック開始のタイミングを調整する方法を提案する。どちらの場合も、図１に示すように、各制御点が互いに干渉しなくなるタイミングで動作を開始する。このように制御することにより、従来技術と比較して無駄な時間を排除し、全体の作業時間を短縮することが可能となる。
【００１７】
本発明における干渉の判定は、ブロック実行開始のタイミングにおいて、各制御点が直線的に移動する前提で、制御点の始点→終点を表す線分を考え、ＸＹ平面、ＹＺ平面、ＺＸ平面の３平面において線分の交点の有無を判定する。各平面において交点があり、かつ交点の座標が各平面で一致すれば、移動のタイミングによって干渉する可能性がある。実際には、制御対象に形状があるため、あらかじめパラメータなどで各制御点に対する形状を指定しておき、図２に示すように、制御点の座標値に形状を加味した移動経路を求め、各移動経路が重なる干渉領域を考えて干渉の有無を判定する。
【００１８】
なお、形状を加味する際には、制御点の座標値を基準位置とした制御対象の正確な形状を予め記憶しておき、移動時に制御対象が通過する領域を移動経路として求めるようにしてもよいが、制御対象の形状を包含する簡易なポリゴン形状（例えば、Ｘ軸、Ｙ軸、Ｚ軸に平行な単なる直方体形状など）として表現しておけば、当該ポリゴン形状の各端点の移動経路を求めるだけで、簡単に当該制御対象の形状を加味した移動経路と、各移動経路が重なる干渉領域を求めることができる。
【００１９】
次に、干渉の可能性がある場合、制御対象の移動速度と干渉領域までの距離から、各制御対象が干渉領域に入るまでの時間（ＴＡin，ＴＢin）と出るまでの時間（ＴＡout，ＴＢout）を計算する。この時間が各制御対象で重複していると、２つの制御対象が同時に干渉領域に入るため干渉することになる。３平面で同様の判定を行い、最終的な干渉の有無を判定する。
【００２０】
そして、干渉すると判定された場合、優先度の高い制御対象が干渉領域を出るまでの間、優先度の低い制御対象が干渉領域に入らないように、優先度の低い制御対象の動作開始のタイミングを調整する。調整する時間は、例えば図２において、重複している時間に当たる、優先度の高い制御対象が干渉領域を出るまでの時間（ＴＡout）と優先度の低い制御対象が干渉領域に入るまでの時間（ＴＢin）の差分である。この調整により優先度の高い制御対象が干渉領域出るタイミングと、優先度の低い制御対象が干渉領域に入るタイミングが一致するようになり干渉が回避される。
【００２１】
なお、タイミングの調整方法としては、上記のような時間を基準とした調整の他に、座標値を基準とした調整も可能である。優先度の高い制御対象が動作を始めてからＴＡout−ＴＢinだけ経過した後の座標値は、次の数１式で計算可能である。
【００２２】
【数１】
2016115074.tif 000003
【００２３】
優先度の低い制御対象は、優先度の高い制御対象の座標値が上記の座標値を上回ったとき（移動方向によっては下回ったとき）に動作を開始することで干渉を回避できる。座標値を基準とした調整では、送り速度オーバライドなどで移動速度が変更された場合でも正確な判定が可能である。
時間、座標値のいずれを基準とした場合でも、優先度の低い制御点の動作が完了すれば、優先度の高い制御点が移動中であってもさらに次ブロックの実行を開始するため、最短時間での位置決めが可能となる。
【００２４】
以下では、本発明の技術的構成について図を用いて説明する。図３は、本発明の実施の形態における数値制御装置の要部ブロック図である。
本実施の形態の数値制御装置１０は、メモリ１１、指令解析部１２、ブロック実行開始判定部１３、補間処理部１４、座標更新部１５、加減速処理部１６を備えている。
【００２５】
メモリ１１はＲＡＭなどにより構成され、工作機械の駆動軸やローダ、ドアなど機械制御軸３０を制御するＮＣプログラムを記憶している。
指令解析部１２は、メモリ１１からＮＣプログラムを読み出して解析し、工作機械の駆動軸やローダやドアなどの機械制御軸３０の移動指令を示す指令データを生成する。
【００２６】
本発明の特徴的構成であるブロック実行開始判定部１３は、後述するブロック実行開始判定処理により、ローダやドアなどの機械制御軸３０を制御するブロックに基づく機械制御軸３０の動作開始のタイミングを算出し、算出したタイミングに基づいて指令解析部１２が出力した指令データを機械制御軸３０が干渉しないように調整する。
【００２７】
補間処理部１４は、ブロック実行開始判定部１３により調整された指令データに基づいて補間処理を実行し、補間データを生成する。座標更新部１５は、補間処理部１４が生成した補間データに基づいて機械制御軸３０の座標値を更新し、機械制御軸３０の機械座標値を求める。そして、加減速処理部１６は、座標更新部１５により更新された機械座標値に基づいて加減速処理を行い、各サーボモータ２０を通じて各機械制御軸３０を駆動制御する。
【００２８】
以下では、ブロック実行開始判定部１３により実行されるブロック実行開始判定処理について説明する。
図４に、本実施の形態におけるプログラムの記述例を示す。本実施の形態では、機械制御軸３０の動作の優先度を定義するためにアドレスＰを導入し、ワード「Ｐｎ」（ｎは整数）を指令乃至ブロックに記載することでｎの値が小さいほど当該指令乃至ブロックを優先して動作させることを意味するものとする。
【００２９】
図４において、プログラムＯ０００２は、本発明を同一ブロックに適用した場合であり、Ｐ１に続く指令が優先度の高い指令（ローダ軸の制御指令）、Ｐ２に続く指令が優先度の低い指令（ドア軸の制御指令）である。
また、プログラムＯ０００３は、別ブロックに適用した場合であり、Ｐ１が指令されているＮ１０のブロックが優先度の高いブロック、Ｐ２が指令されているＮ２０のブロックが優先度の低いブロックである。本実施の形態の数値制御装置１０では、このように別ブロックにワードＰｎを記載すると、指令解析部１２が、ワードＰｎが記載された異なる軸を制御する指令が記載されている隣接するブロックを全て読み込んで指令データを生成し、当該指令データに基づいてブロック実行開始判定部１３がブロック実施開始判定処理を実行する。
【００３０】
ブロック実行開始判定処理では、まず、上述した手法を用いて制御点の移動経路に形状を加味して干渉の有無を判定する。干渉の有無を判定した結果、それぞれの移動領域が交差している場合には各制御点の移動速度によっては干渉が発生することが分かる。
次に、優先度の高い制御対象が干渉領域を出るまでの時間（ＴＡout）と、優先度の低い制御対象が干渉領域に入るまでの時間（ＴＢin）を図５に示す式を用いて計算し、比較する。
【００３１】
そして、ＴＡout≦ＴＢinであれば、２つの制御点が同時に動作を開始しても、優先度の高い制御対象が干渉領域を通過したのち、優先度の低い制御対象が干渉領域に到達するため干渉しない。この場合、プログラムＯ０００２においては、ローダ軸の後退動作とドアの閉鎖動作は同時に開始され、Ｎ２０において優先度の低い制御対象（ドア）の動作が完了すれば、優先度の高い制御対象（ローダ）が動作中であっても次ブロックであるＮ３０を開始する。また、プログラムＯ０００３においては、Ｎ１０ブロックとＮ２０のブロックが連続して実行を開始する。Ｎ２０において優先度の低い制御対象（ドア）の動作が完了すれば、優先度の高い制御対象（ローダ）が動作中であっても次ブロックであるＮ３０を開始する。
【００３２】
ＴＡout＞ＴＢinであれば、２つの制御点が同時に動作を開始すると、優先度の高い制御対象が緩衝領域を出る前に、優先度の低い制御対象が先に干渉領域に到達するため、両者が干渉する。この場合、プログラムＯ０００２においては、ドアの閉鎖動作は、ローダ軸が後退を始めてからＴＡout−ＴＢinの時間経過後に開始されるように制御し、優先度の低いドアの閉鎖動作が完了すれば、次ブロックであるＮ３０のブロックの実行を開始する。また、プログラムＯ０００３においては、Ｎ１０ブロック開始後、ＴＡout−ＴＢinの時間経過後にＮ２０のブロックが実行を開始し、Ｎ２０の実行が完了すればＮ３０が開始される。
プログラムＯ０００２，Ｏ０００３のどちらの場合も、ローダ軸が干渉領域を出ると同時に、ドアが干渉領域に入るため、ローダ軸とドアが干渉することは無い。
【００３３】
図６は、本実施の形態の数値制御装置において、図４に示したプログラムを実行し、ローダ２を後退させつつドア３を閉鎖して加工動作を開始する動作制御の流れを示す図である。
図に示すように、ローダ２がワーク４の設置作業を終えて後退する。本発明では従来技術と異なり、ローダ２が完全に後退する前に、上述したブロック実行開始判定処理により決定されたタイミングでドア３が動作を開始する。ドア３の動作開始タイミングは、ドア３とローダ２とが干渉しないタイミングとして算出されているため、ローダ２が干渉領域を出ると同時にドア３が干渉領域に入るように制御され、両者が干渉することは無い。
【００３４】
そして、ドア３が閉まるとローダ２が移動中であっても工具５によるワーク４の加工が開始される。結果として、ローダ２の動作開始、ドア３の動作開始、加工動作の開始は、図１に示すタイミングで実行されるため、従来技術と比較して無駄な時間を排除し、全体の作業時間を短縮することが可能となる。
【００３５】
図７は、本実施の形態における数値制御装置１０の、ブロック実行開始判定部１３が実行するブロック実行開始判定処理の概略フローチャートである。
●［ステップＳＡ０１］各制御対象の制御点に形状を加味した移動経路を求め、各制御対象間で干渉が発生する可能性があるか否かを判定し、干渉が発生する可能性がある場合には、優先度の高い指令による制御対象が干渉領域を出るまでの時間ＴＡoutと、優先度の低い指令による制御対象が干渉領域に入るまでの時間ＴＢinを算出して比較し、実際に干渉が発生するか否かを判定する。
●［ステップＳＡ０２］ステップＳＡ０１で干渉が発生すると判定された場合、優先度の高い指令による制御対象が干渉領域を出るまでの時間ＴＡoutと、優先度の低い指令による制御対象が干渉領域に入るまでの時間ＴＢinに基づいて、優先度が低い制御対象を開始するタイミングを算出する。
【００３６】
●［ステップＳＡ０３］指令解析部１２から出力された指令データに基づいて、優先度の高い指令の動作を開始する。
●［ステップＳＡ０４］ステップＳＡ０２で算出したタイミングに基づいて、優先度の低い指令の動作を開始するタイミングを調整する。
●［ステップＳＡ０５］指令解析部１２から出力された指令データに基づいて、ステップＳＡ０４で調整したタイミングの後に優先度の低い指令の動作を開始する。
【００３７】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例に限定されることなく、適宜の変更を加えることにより、その他の態様で実施することができる。
例えば、上述した実施の形態では、制御対象としてローダとドアの例を示したが、制御対象はローダやドアに限られるものではなく、干渉する可能性がある制御対象であればどのようなものにも適用することができる。
【００３８】
また、上述した実施の形態では２つの制御対象に適用した例を示したが、３つ以上の制御対象について適用することも可能である。その場合には、それぞれの制御対象の組み合わせに対してブロック実行開始判定処理を実行し、干渉しないタイミングで各制御対象の動作を開始するようにすればよい。
【００３９】
更に、上述した実施の形態では、ブロック実行開始判定部１３が実行するブロック実行開始判定処理により、優先度が低い機械制御軸の動作を制御する指令を開始するタイミングを調整していたが、これに加えて数値制御装置の外部から入力される入力信号により優先度が低い機械制御軸の動作を制御する指令を開始するタイミングを指定する手段を設けるようにしてもよい。このように構成することにより、ブロック実行開始判定部１３が調整した優先度が低い機械制御軸の動作開始タイミングよりも早いタイミングで、オペレータが操作盤などを操作して優先度が低い機械制御軸の動作を開始させたり、工作機械や加工環境などに設けられたセンサなどから発生した信号や、ＰＭＣ等により実行されたラダープログラムから発生する信号などに基づいて、優先度が低い機械制御軸の動作を開始させることが可能となり、状況に応じたより柔軟な動作制御が可能となる。
【符号の説明】
【００４０】
１    工作機械
２    ローダ
３    ドア
４    ワーク
５    工具
１０    数値制御装置
１１    メモリ
１２    指令解析部
１３    ブロック実行開始判定部
１４    補間処理部
１５    座標更新部
１６    加減速処理部
２０    サーボモータ
３０    機械制御軸
【図１】
2016115074.tif 000004
【図３】
2016115074.tif 000005
【図４】
2016115074.tif 000006
【図６】
2016115074.tif 000007
【図７】
2016115074.tif 000008
【図８】
2016115074.tif 000009
【図９】
2016115074.tif 000010
【図２】
2016115074.tif 000011
【図５】
2016115074.tif 000012