(57)【要約】【課題】複数の制御グループを独立に制御することが可能な数値制御装置を提供する。【解決手段】数値制御装置１００は、機械に複数の動作を同時に実行させることができる。数値制御装置１００は、プログラムを解析して複数の制御グループに対する指令を識別するプログラム解析部１１０と、複数の制御グループに対する指令を、制御グループごとに独立に実行するプログラム実行部１２０と、を有する。【選択図】図１
2018197989.tif 000002
【特許請求の範囲】
【請求項１】
機械に複数の動作を同時に実行させることのできる数値制御装置であって、
プログラムを解析して複数の制御グループに対する指令を識別するプログラム解析部と、
前記複数の制御グループに対する指令を、前記制御グループごとに独立に実行するプログラム実行部と、を有することを特徴とする
数値制御装置。
【請求項２】
前記プログラムは、１つのブロックにおいて、複数の制御グループに対する指令が、制御グループ区切り文字により分別されて記述されていることを特徴とする
請求項１記載の数値制御装置。
【請求項３】
前記プログラムは、複数のブロックにおいて、複数の制御グループに対する指令が、継続区切り文字により関連付けられて記述されていることを特徴とする
請求項１記載の数値制御装置。
【請求項４】
前記プログラム実行部は、前記複数の制御グループに対する指令を同時に実行することを特徴とする
請求項２又は３記載の数値制御装置。
【請求項５】
前記プログラムは、複数の制御グループに対する指令に対し、待ち合わせ区切り文字が関連付けられて記述されていることを特徴とする
請求項１記載の数値制御装置。
【請求項６】
前記プログラム実行部は、前記待ち合わせ区切り文字の有無に応じて、前記複数の制御グループに対する指令の実行完了を待ち合わせるか否かを制御することを特徴とする
請求項５記載の数値制御装置。
【請求項７】
前記制御グループは系統であることを特徴とする
請求項１記載の数値制御装置。
【請求項８】
前記制御グループは補間グループであることを特徴とする
請求項１記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値制御装置に関し、特に複数の制御グループを独立に制御することが可能な数値制御装置に関する。
【背景技術】
【０００２】
従来の数値制御装置は、同時に２組以上の機械動作を制御する必要がある場合、その用途に応じて、複数の加工系統やローダ系統を持つ多系統システムで軸制御を行っていた。多系統システムは、独立して軸制御を行うことができる系統を複数備えたシステムである。多系統システムでは、系統ごとに加工プログラム（ＮＣプログラム）を作成する必要がある。
【０００３】
また多系統システムでは、系統間で軸の動作を連係させたい場合、換言すれば軸制御を連動させたい場合には、待ち合わせ指令を使用して、各系統間でプログラム又はブロックの実行タイミングを合わせる必要がある。
【０００４】
また多系統システムでは、ある特定の軸を複数の系統から使用したい場合には、任意軸切換え機能を使用する必要がある。任意軸切換え機能とは、多系統システムにおいて、一方の系統のプログラムから、他方の系統に属する軸を制御することを可能とする特殊機能である。例えば系統１にＸ１，Ｙ１，Ｚ１の軸があり、系統２にＸ２，Ｙ２，Ｚ２の軸がある場合、任意軸切換え機能を使うことで系統１からＸ２を制御できるようになる。
【０００５】
関連する先行技術として特許文献１がある。特許文献１には、複数系統のプログラムの編集機能を有する数値制御装置が記載されている。当該数値制御装置は、各系統のプログラムを同一画面上に並列に表示するので、系統間の同期関係を比較的容易に認識することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−００３９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１は従来の多系統システムの取扱いを容易にするものの、従来の多系統システムが有する諸問題そのものを解決するものではない。すなわち、従来の多系統システムでは系統ごとに加工プログラムが必要である。そのため、軸制御の指令が複数のプログラムファイルに分散することとなり、各系統に属する軸の相対的な動きや位置関係を把握しにくいという問題がある。またプログラムファイルの管理が煩雑になり、プログラムメモリを逼迫することも問題である。
【０００８】
また従来の多系統システムでは、系統間で軸動作を連動させるために待ち合わせ指令を使用する必要がある。そのため、指令が複雑化してプログラムミスを誘発したり、デバッグに要する時間が多くなることがある。また、指令が増えることでサイクルタイムが延びること、待ち合わせにより非切削時間が延びることも問題となる。
【０００９】
この点、単系統システムを採用すればプログラミングは簡略化できるが、そうすると同時に異なる機械動作を行うことができなくなる。ＰＭＣ軸制御や周辺軸制御により複数の軸を並行動作させることは可能であるが、ＰＭＣ軸制御は通常、エンドユーザによる動作の変更などができず、指令の柔軟性がないという問題がある。周辺軸制御は指令の柔軟性はあるが、指令可能な対象軸が限られるため、軸の動作の連動性が制限されるという問題がある。
【００１０】
本発明はこのような問題点を解決するためになされたものであり、複数の制御グループを独立に制御することが可能な数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施の形態にかかる数値制御装置は、機械に複数の動作を同時に実行させることのできる数値制御装置であって、プログラムを解析して複数の制御グループに対する指令を識別するプログラム解析部と、前記複数の制御グループに対する指令を、前記制御グループごとに独立に実行するプログラム実行部と、を有することを特徴とする。
【００１２】
本発明の一実施の形態にかかる数値制御装置は、前記プログラムは、１つのブロックにおいて、複数の制御グループに対する指令が、制御グループ区切り文字により分別されて記述されていることを特徴とする。
【００１３】
本発明の一実施の形態にかかる数値制御装置は、前記プログラムは、複数のブロックにおいて、複数の制御グループに対する指令が、継続区切り文字により関連付けられて記述されていることを特徴とする。
【００１４】
本発明の一実施の形態にかかる数値制御装置は、前記プログラム実行部は、前記複数の制御グループに対する指令を同時に実行することを特徴とする。
【００１５】
本発明の一実施の形態にかかる数値制御装置は、前記プログラムは、複数の制御グループに対する指令に対し、待ち合わせ区切り文字が関連付けられて記述されていることを特徴とする。
【００１６】
本発明の一実施の形態にかかる数値制御装置は、前記制御グループは系統であることを特徴とする。
【００１７】
本発明の一実施の形態にかかる数値制御装置は、前記制御グループは補間グループであることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、複数の制御グループを独立に制御することが可能な数値制御装置を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態にかかる数値制御装置１００の構成を示すブロック図である。
【図２】本発明の実施の形態にかかる数値制御装置１００の構成を示すブロック図である。
【図３】実施例１の機械動作を説明する図である。
【図４】実施例２の機械動作を説明する図である。
【図５】実施例３の機械動作を説明する図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態を図面を用いて説明する。まず、図１のブロック図を用いて、本発明の実施の形態にかかる数値制御装置１００の構成について説明する。数値制御装置１００は、プログラム解析部１１０、プログラム実行部１２０を有する。
【００２１】
プログラム解析部１１０は、入力されたプログラムを解析する。ここで入力されるプログラムは、それぞれが独立に軸制御を行うことが可能な、複数の制御グループに対する指令を含む。
【００２２】
プログラム実行部１２０は、複数の制御グループごとに、上記プログラムに記述された指令に従って、制御グループごとに独立に軸動作を制御する。
【００２３】
ここで制御グループについて説明する。制御グループとは、独立した軸制御を行うための単位である。制御グループは例えば、従来の系統であって良い。この場合、本実施例では複数系統を制御するためのプログラムが１つのプログラムファイルにまとめて記述されることになる。あるいは制御グループは、多系統システムを構成する系統のひとつに含まれた、複数の補間グループ夫々を指すものであっても良い。補間グループとは、他の補間グループの影響を受けることなく補完処理を行うことが可能な、プログラムの実行単位である。補間グループは互いに独立に実行されるので、異なる補間グループに属する軸を並列に制御し、動作させることが可能である。
【００２４】
図２は、プログラム実行部１２０が、複数の補間グループを独立に制御する例を示すブロック図である。この例では、補間グループ１はＸＡ軸の切削（直線補間）を実行し、補間グループ２はＸＢ軸及びＺ軸の２軸の切削（円弧補間）を実行し、補間グループ３ではＹ軸の早送りを実行する。補間グループ１乃至３は原則として並列に実行される。
【００２５】
プログラム解析部１１０に入力されるプログラムについて説明する。本実施の形態におけるプログラムは、制御グループ区切り文字、継続文字、待ち合わせ区切り文字の３種の特殊文字を識別する。
【００２６】
制御グループ区切り文字は、複数の制御グループにかかる指令を、１ブロックで記載する際に用いられる。例えば以下に記載の指令（１）では、３つの制御グループに対する指令が、制御グループ区切り文字「＠」で区切られて１ブロックで記述されている。３つの制御グループに対する指令とはすなわち、制御グループ１に対する指令「Ｇ０１  ＸＡｘｘ  Ｆｘｘ」、制御グループ２に対する指令「Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙ」、制御グループ３に対する指令「Ｇ００  Ｙｚｚ  ・・・」である。
Ｇ０１  ＸＡｘｘ  Ｆｘｘ  ＠  Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙｙ  ＠  Ｇ００  Ｙｚｚ  ・・・；    ・・指令（１）
【００２７】
継続文字は、複数の制御グループにかかる指令を、複数のブロックで記載する際に用いられる。例えば以下に記載の指令（２）では、同じ継続文字「＠１」で終了する、３つの制御グループに対する指令が、複数のブロックにわたり記述されている。３つの制御グループに対する指令とはすなわち、制御グループ１に対する指令「Ｇ０１  ＸＡｘｘ  Ｆｘｘ」、制御グループ２に対する指令「Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙ」、制御グループ３に対する指令「Ｇ００  Ｙｚｚ  ・・・」である。
Ｇ０１  ＸＡｘｘ  Ｆｘｘ  ＠１；
Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙｙ  ＠１；
Ｇ００  Ｙｚｚ  ・・・＠１；              ・・・指令（２）
【００２８】
プログラム解析部１１０は、プログラム中に制御グループ区切り文字及び継続文字があるときは、上述のルールに基づいて指令を複数の制御グループに切り分ける。そしてプログラム実行部１２０は、制御グループごと並列に、当該制御グループにかかる指令を実行していく。なお、上述の制御グループ区切り文字又は継続区切り文字で連結された複数の制御グループに係る指令を実行する際は、プログラム実行部１２０は、それらの指令を同時に実行する。すなわち、指令（１）又は指令（２）で定義された、制御グループ１に対する指令「Ｇ０１  ＸＡｘｘ  Ｆｘｘ」、制御グループ２に対する指令「Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙ」、制御グループ３に対する指令「Ｇ００  Ｙｚｚ  ・・・」は、プログラム実行部１２０により、同時に実行が開始される。
【００２９】
待ち合わせ区切り文字は、上述の制御グループ区切り文字又は継続区切り文字で連結された複数の制御グループに係る指令を同時に実行した後、処理終了の待ち合わせを行うか否かを定義するために用いられる。例えば以下に記載の指令（３）では、ブロック内（この例ではブロック末尾）に待ち合わせ区切り文字「￥」が記述されている。
Ｇ０１  ＸＡｘｘ  Ｆｘｘ  ＠  Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙｙ  ＠  Ｇ００  Ｙｚｚ  ・・・￥；    ・・指令（３）
【００３０】
プログラム実行部１２０は、待ち合わせ区切り文字が記載されている場合は、上述の制御グループ区切り文字又は継続区切り文字で連結された複数の制御グループに係る指令の終了を待ち合わせることなく、各制御グループにかかる次の指令を実行する。すなわち指令（３）の場合、例えば制御グループ１に対する指令「Ｇ０１  ＸＡｘｘ  Ｆｘｘ」が最初に終了したならば、制御グループ２に対する指令「Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙ」、制御グループ３に対する指令「Ｇ００  Ｙｚｚ  ・・・」の終了を待つことなく、制御グループ１の次の指令の実行に移る。一方、待ち合わせ区切り文字が記載されている場合は、プログラム実行部１２０は、制御グループ区切り文字又は継続区切り文字で連結された複数の制御グループに係る指令の実行終了を待ち合わせる。すなわち待ち合わせ区切り文字が記載されていない指令（１）を例として説明すれば、例えば制御グループ１に対する指令「Ｇ０１  ＸＡｘｘ  Ｆｘｘ」が最初に終了し、制御グループ２に対する指令「Ｇ０２  ＸＢｙｙ  Ｚｘｘ  Ｆｙ」が次に終了したならば、プログラム実行部１２０は、制御グループ１及び２については次の指令に移ることなく、残る制御グループ３に対する指令「Ｇ００  Ｙｚｚ  ・・・」の終了を待つ。全ての制御グループの実行が終了したならば、プログラム実行部１２０は、各制御グループの次の指令を夫々実行する。
【００３１】
なお、上述の制御グループ区切り文字「＠」、継続区切り文字「＠１」、待ち合わせ区切り文字「￥」はいずれも例示であって、他の任意の文字を採用することができる。また、上述の例とは逆に、待ち合わせ区切り文字が記載されている場合は各制御グループの指令の実行終了を待ち合わせ、そうでない場合は待ち合わせないこととしても良い。また、上述の例では継続区切り文字、待ち合わせ区切り文字をブロックの末尾に記載したが、他の所定の場所に記載するよう取決めても構わない。また、上述の例では待ち合わせ区切り文字「￥」が全ての制御グループに対して有効としているが、各制御グループで指定できるようにしても良い。
【００３２】
本実施の形態によれば、全ての制御グループに属する軸指令を１つのプログラムに集約することができる。例えば、複数の系統に属する軸指令を、１つの系統のプログラム内に集約して記載することができる。なおこの場合、従来どおり各系統にプログラムを作成し、軸指令を行っても差し支えない。すなわち従来の手法と併用が可能である。これにより、機械全体（例えば全系統）を俯瞰した理解しやすいプログラミングを実現できる。
【００３３】
また、本実施の形態によれば、１ブロックで複数の指令を記載することが可能である。これにより、従来のように、待ち合わせ指令を用いて系統ごとに待ち合わせを行う必要がない。換言すれば、従来は待ち合わせの単位が系統であったが、本実施の形態によれば指令単位で待ち合わせを行うことが可能になる。これにより、異なる機械動作の同時実行をきめ細かく制御することが可能となり、サイクルタイムを短縮することができる。
【００３４】
また、本実施の形態によれば、任意の軸を任意の制御グループ内で指令することが可能である。これにより、従来の任意軸切換え機能は不要となる。
【００３５】
＜実施例１＞
図３を用いて、実施例１について説明する。実施例１は、本実施の形態にかかる数値制御装置１００を用いて、突切り加工と旋削加工とを同時にスタートさせる例である。そうすると、旋削加工のほうが先に終了し、その後、突切り加工が完了する。こうして、旋削加工済みのワークを突切り加工により切り落とすというフローを実現するものである。
【００３６】
従来の多系統システムでこのような加工を行うためには、以下のような２つの系統のためのプログラムＰａｔｈ１，Ｐａｔｈ２を作成する必要があった。
Ｐａｔｈ１
・・・
Ｍｘｘ  Ｐ１２；
Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ；
Ｐａｔｈ２
・・・
Ｍｘｘ  Ｐ１２；
Ｇ０１  Ｘ２ｘｘ  Ｆｘｘ；
【００３７】
ここで「Ｍｘｘ  Ｐ１２；」は待ち合わせ指令である。系統Ｐａｔｈ１及び系統Ｐａｔｈ２は、各々の系統がこの待ち合わせ指令に到達するまで待ち合わせを行い、それから、各系統独立に、旋削加工（Ｐａｔｈ１の指令「Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ；」）及び突切り加工（Ｐａｔｈ２の指令「Ｇ０１  Ｘ２ｘｘ  Ｆｘｘ；」）を実行する。この例では系統単位で待ち合わせを行うので、先に待ち合わせ指令に到達した系統においては当然ながら待ち時間が生じ、待ち時間中は他の指令を実行できない状態となる。
【００３８】
また、従来の単系統システムでこのような加工を行う際には、以下のようなプログラムを作成していた。このプログラムでは、旋削加工が終了した後、突切り加工が開始される。
Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ；
Ｇ０１  Ｘ２ｘｘ  Ｆｘｘ；
【００３９】
又は、単系統では以下のようなプログラムを用いることもできる。このプログラムでは、遅い軸のＦ指令に依存して加工が実行されることになる。
Ｇ０１  Ｚ１ｘｘ  Ｘ２ｘｘ  Ｆｘｘ；
【００４０】
一方、実施例１では、以下のようなプログラムを用いる。本実施の形態では、このような指令を用いることにより、複数の動作を指令単位で開始させることができる。これにより、従来の多系統システムでは余儀なくされていた無駄な待ち時間を短縮することができる。
Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ  ＠  Ｇ０１  Ｘ２ｘｘ  Ｆｘｘ；
【００４１】
＜実施例２＞
図４を用いて、実施例２について説明する。実施例２は、バランスカットすなわち複数の工具による同時旋削加工を実現するものである。
【００４２】
従来の多系統システムでこのような加工を行うためには、以下のような２つの系統のためのプログラムＰａｔｈ１，Ｐａｔｈ２を作成する必要があった。
Ｐａｔｈ１
Ｇ６８  Ｐ１２；
Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ；
Ｐａｔｈ２
Ｇ６８  Ｐ１２；
Ｇ０１  Ｚ２ｘｘ  Ｆｘｘ；
【００４３】
ここで「Ｇ６８  Ｐ１２；」は待ち合わせ指令である。系統Ｐａｔｈ１及び系統Ｐａｔｈ２は、各々の系統がこの待ち合わせ指令に到達するまで待ち合わせを行い、それから、各系統独立に、旋削加工（Ｐａｔｈ１の指令「Ｇ０１  Ｚ１ｘｘ  Ｆｘｘ；」）及び突切り加工（Ｐａｔｈ２の指令「Ｇ０１  Ｚ２ｘｘ  Ｆｘｘ；」）を実行する。
【００４４】
一方、実施例２では、以下のようなプログラムを用いる。この指令自体は、従来の多系統システムでも実行可能である。しかしながら、従来の多系統システムではこの指令を実行するために２系統が必要であった、しかしながら、本実施の形態ではこの指令を１系統で実行することができる。すなわち、１系統でＺ１軸及びＺ２軸を使用できる。そのためＺ１軸及びＺ２軸の直線補間でバランスカットを代替することが可能となる。
Ｇ０１  Ｚ１ｘｘ  Ｚ２ｘｘ  Ｆｘｘ；
【００４５】
＜実施例３＞
図５を用いて、実施例３について説明する。実施例３は、工具の逃げ動作と、加工後のワークの搬送動作とを時間的に重畳して実行するものである。実施例３では以下のようなプログラムを用いてこの動作を実現する。
Ｇ０１  Ｘ１ｘｘ  Ｆｘｘ；
Ｇ００  Ｘ１ｘｘ  Ｚ１ｘｘ  ＠  Ｇ００  Ｚ３ｘｘ  ￥；
・・・
・・・
Ｇ００  Ｚ３ｘｘ；
【００４６】
プログラムの２行目には、待ち合わせ区切り文字「￥」が記載されている。そこでプログラム実行部１２０は、２つの制御グループにかかる処理「Ｇ００  Ｘ１ｘｘ  Ｚ１ｘｘ」（逃げ動作）と「Ｇ００  Ｚ３ｘｘ」（ワーク搬送）とを同時に実行した後は、互いの処理の終了を待ち合わせることなく、各制御グループの次の指令の実行に移る。
プログラムの５行目に記述されている指令「Ｇ００  Ｚ３ｘｘ」は、２行目に記述されていた指令「Ｇ００  Ｚ３ｘｘ」と同じ軸への指令になる。このように同じ軸への指令間では、プログラム実行部１２０は従来通り、前の指令の終了を待ってから次の指令の実行を開始する。この例では、先に開始されたワーク搬送動作が完了したならば、次のワーク搬送動作を開始することになる。前の指令の完了は、次の指令を実行する前に、各軸からのフィードバックに基づいて、軸が移動中かを判断することにより実現できる。又は、前の指令の実行開始時の軸の位置を保存し、軸がその位置にいるか否かで判断しても良い。
【００４７】
このように、本実施の形態にかかる数値制御装置１００は、プログラムを解釈して複数の制御グループに対する指令に分別するプログラム解析部１１０と、複数の制御グループにかかる指令を独立すなわち並列に実行するプログラム実行部１２０を有する。この特徴により、１つのプログラムで複数の独立した動作を実現することができる。
また、本実施の形態によれば、指令単位で複数の動作を同時に開始すること、指令単位で複数の動作の完了を待ち合わせること（及び待ち合わせないこと）ができる。そのため、従来の多系統システムに比べ、サイクルタイムを大幅に短縮できる。また、複数の機能の同時実行をきめ細かく制御することが可能となるため、従来の多系統システムでは実現できなかったような連携動作を実現することもできる。
【００４８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【符号の説明】
【００４９】
１００  数値制御装置
１１０  プログラム解析部
１２０  プログラム実行部
【図１】
2018197989.tif 000003
【図２】
2018197989.tif 000004
【図３】
2018197989.tif 000005
【図４】
2018197989.tif 000006
【図５】
2018197989.tif 000007