(57)【要約】【課題】条件分岐が含まれる加工プログラムやサブプログラムを呼び出す加工プログラムを実行するときの生産効率の低下を抑制すること。【解決手段】本開示の一態様に係る加工制御システムは、複数のブロックを含む１又は複数の加工プログラムを記憶するプログラム記憶部と、前記加工プログラムの一部の前記ブロックを一時的に記憶するキャッシュ部と、前記加工プログラムに従う順番で前記ブロックを前記キャッシュ部から読み出す読み出し制御部と、前記読み出し制御部が読み出した前記ブロックの記述に基づいて加工装置を制御する加工処理部と、前記複数のブロックの中から、記述位置が離れた前記ブロックに続いて実行される可能性がある移動先ブロックを特定する移動先特定部と、前記移動先ブロックを先頭とする１以上の前記ブロックを先行キャッシュとして前記プログラム記憶部から前記キャッシュ部に転送する転送制御部と、を備える。【選択図】図１
2020197830.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックを含む１又は複数の加工プログラムを記憶するプログラム記憶部と、
前記加工プログラムの一部の前記ブロックを一時的に記憶するキャッシュ部と、
前記加工プログラムに従う順番で前記ブロックを前記キャッシュ部から読み出す読み出し制御部と、
前記読み出し制御部が読み出した前記ブロックの記述に基づいて加工装置を制御する加工処理部と、
前記複数のブロックの中から、記述位置が離れた前記ブロックに続いて実行される可能性がある移動先ブロックを特定する移動先特定部と、
前記移動先ブロックを先頭とする１以上の前記ブロックを先行キャッシュとして前記プログラム記憶部から前記キャッシュ部に転送する転送制御部と、
を備える、加工制御システム。
【請求項２】
前記転送制御部は、実行された回数が多い前記移動先ブロックほど、前記先行キャッシュを構成する前記ブロックの数を大きくする、請求項１に記載の加工制御システム。
【請求項３】
前記転送制御部は、前記加工処理部において前記プログラム記憶部から前記キャッシュ部への転送待ちが生じた回数が多い前記移動先ブロックほど、前記先行キャッシュを構成する前記ブロックの数を大きくする、請求項１又は２に記載の加工制御システム。
【請求項４】
請求項１から３のいずれかに記載の加工制御システムと、
前記加工制御システムによって制御される加工装置と、
を備える、加工システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工制御システム及び加工システムに関する。
【背景技術】
【０００２】
マシニングセンタ等の加工装置の数値制御装置は、加工プログラムに基づいてツールやワークの位置を制御する。数値制御装置は、演算装置と記憶装置とを有するコンピュータ装置によって構成される。多種のワークを加工する場合や、複雑な加工を行う場合、そのために必要な加工プログラムのデータ量が大きくなるため、加工プログラムのすべてを数値制御装置の内部記憶装置に記憶させておくことが難しいことがある。
【０００３】
このため、例えばサーバ、外部記憶装置等、数値制御装置に接続される外部装置に必要な加工プログラムを記憶させておき、必要に応じて加工プログラム又は加工プログラムの一部を数値制御装置に転送する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−５３６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載のシステムは、ホストコンピュータに複数のプログラムを記憶し、スケジュールデータに従ってホストコンピュータから数値制御装置に順番にプログラムを転送する。また、特許文献１には、サイズが大きいプログラムをブロック単位に分割して順番に転送することが記載されている。
【０００６】
加工プログラムの中には、条件分岐を有し、記載順に実行されないものがある。このため、特許文献１に記載のシステムにおいて、ブロック単位でプログラムを転送する場合、加工プログラムに条件分岐が含まれていると、条件分岐後に実行すべきブロックが数値制御装置に転送されていない可能性がある。この場合、数値制御装置は、必要なブロックをホストコンピュータに要求し、そのブロックが転送されるまでの間、加工を停止して待機することが必要となる。
【０００７】
また、加工プログラムをメインプログラムとサブプログラムとに分けて記述し、メインプログラムからサブプログラムを呼び出す構成とされる場合もある。この場合も、サブプログラムを呼び出す際に、数値制御装置にサブプログラムが読み込まれていない可能性がある。このため、条件分岐が含まれる加工プログラムやサブプログラムを呼び出す加工プログラムを実行するときの生産効率の低下を抑制することができる技術が求められる。
【課題を解決するための手段】
【０００８】
本開示の一態様に係る加工制御システムは、複数のブロックを含む１又は複数の加工プログラムを記憶するプログラム記憶部と、前記加工プログラムの一部の前記ブロックを一時的に記憶するキャッシュ部と、前記加工プログラムに従う順番で前記ブロックを前記キャッシュ部から読み出す読み出し制御部と、前記読み出し制御部が読み出した前記ブロックの記述に基づいて加工装置を制御する加工処理部と、前記複数のブロックの中から、記述位置が離れた前記ブロックに続いて実行される可能性がある移動先ブロックを特定する移動先特定部と、前記移動先ブロックを先頭とする１以上の前記ブロックを先行キャッシュとして前記プログラム記憶部から前記キャッシュ部に転送する転送制御部と、を備える。
【発明の効果】
【０００９】
本開示に係る加工制御システムは、条件分岐もしくはサブプログラムの呼び出しが含まれる加工プログラムの実行時の生産効率の低下を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】本開示の一実施形態に係る加工システムの構成を示す模式図である。
【図２】図１の加工システムで使用する加工プロ部ラムのメインプログラムの一例を示す図である。
【図３】図２のメインプログラムから呼び出されるサブプログラムの一例を示す図である。
【図４】２のメインプログラムから呼び出される図３とは異なるサブプログラムの一例を示す図である。
【図５】図３のサブプログラムの先頭部分から構成される先行キャッシュを例示する図である。
【図６】図４のサブプログラムの先頭部分から構成される先行キャッシュを例示する図である。
【図７】図２のメインプログラムのＩＦ文が真である場合のブロックを先頭とする先行キャッシュを例示する図である。
【図８】図２のメインプログラムのＩＦ文が偽である場合のブロックを先頭とする先行キャッシュを例示する図である。
【図９】図４の先行キャッシュに重み付けを行った場合の先行キャッシュを例示する図である。
【発明を実施するための形態】
【００１１】
以下、本開示の実施形態について、図面を参照しながら説明する。図１は、本開示の一実施形態に係る加工システム１００の構成を示すブロック図である。
【００１２】
加工システム１００は、加工制御システム１と、加工制御システム１によって制御される加工装置２とを備える。加工制御システム１は、それ自体が本開示に係る加工制御システムの一実施形態である。
【００１３】
加工制御システム１は、プログラム記憶部１１と、キャッシュ部１２と、転送制御部１３と、読み出し制御部１４と、加工処理部１５と、移動先特定部１６と、重み付け制御部１７と、を備える。加工制御システム１において、転送制御部１３、読み出し制御部１４、加工処理部１５、移動先特定部１６、重み付け制御部１７は、ＣＰＵ等に適切な制御プログラムを実行させることによって実現される。これらの構成要素は、機能的に区別されるものであって、機械的構成及びプログラム構成において明確に区分できるものでなくてもよい。
【００１４】
本実施形態では、キャッシュ部１２、転送制御部１３、読み出し制御部１４、加工処理部１５、移動先特定部１６及び重み付け制御部１７は、加工装置２を制御する数値制御装置１Ａに設けられ、プログラム記憶部１１は、数値制御装置１Ａに接続される外部記憶装置１Ｂに設けられる。数値制御装置１Ａと外部記憶装置１Ｂとは、専用通信回線又はネットワークを介して接続されてもよい。数値制御装置１Ａと外部記憶装置１Ｂとを接続する専用通信回線としては、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ）等を挙げることができ専用無線通信回線であってもよい。また、数値制御装置１Ａと外部記憶装置１Ｂとを接続するネットワークとしては、例えばイーサネット等の有線ＬＡＮ、例えばＷｉｆｉ（登録商標）等の無線ＬＡＮなどを挙げることができる。
【００１５】
プログラム記憶部１１は、少なくとも１つの加工プログラム全体を記憶することができる容量を有する。なお、１つの加工プログラムは、メインプログラムと、１又は複数のサブプログラムとを含んでもよい。また、サブプログラムは、複数の加工プログラムの間で共用されてもよい。なお、加工プログラムは、例えばＧコード等のフォーマットで記述することができる。
【００１６】
プログラム記憶部１１は、比較的安価に大きな容量を確保するために、例えばフラッシュメモリ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ハードディスクドライブ、光ディスクドライブ等の不揮発性メモリによって構成されることが好ましい。
【００１７】
キャッシュ部１２は、加工プログラムの一部のブロックを一時的に記憶する。キャッシュ部１２は、プログラム記憶部１１と比べて速い転送速度と小さい容量とを有する。このようなキャッシュ部１２は、例えばＤＲＡＭ、ＳＲＡＭ等の揮発性メモリによって構成することが好ましい。また、キャッシュ部１２を構成するメモリは、数値制御装置１Ａの他の情報を記憶するためにも利用され得る。このため、キャッシュ部１２の容量は、動的に変化してもよい。
【００１８】
キャッシュ部１２は、プログラム記憶部１１から加工プログラムのブロックがその記載順に転送される主キャッシュ領域１２１と、後述する移動先特定部１６が特定する移動先ブロックを先頭とする１以上の連続して記述されたブロックがプログラム記憶部１１から転送される先行キャッシュ領域１２２と、を有する。主キャッシュ領域１２１及び先行キャッシュ領域１２２の容量は、予め設定された容量で固定されてもよく、適宜変更されてもよい。具体的には、後述する移動先特定部１６が特定した移動先ブロックの数及び重み付け制御部１７が決定したブロックの数に応じて先行キャッシュ領域１２２の容量を確保し、残りの利用可能な容量を主キャッシュ領域１２１としてもよい。
【００１９】
転送制御部１３は、プログラム記憶部１１からキャッシュ部１２への加工プログラムのブロックの転送を制御する。転送制御部１３は、主キャッシュ領域に記載順にブロックを転送する主キャッシュ制御部１３１と、先行キャッシュ領域１２２に移動先ブロックを先頭とする１以上のブロックを先行キャッシュとして転送する先行キャッシュ制御部１３２とを有する。
【００２０】
主キャッシュ制御部１３１は、後述するす読み出し制御部１４が読み出したブロックから加工プログラムの記載順において連続するブロックを主キャッシュ領域１２１に転送する。より詳しくは、主キャッシュ制御部１３１は、主キャッシュ領域１２１に空き容量が形成されると、加最後に転送したブロックの次のブロックを新たに主キャッシュ領域１２１に転送する。このとき、主キャッシュ制御部１３１は、先行キャッシュ領域１２２に記憶されているブロックは転送せず、加工プログラムにおいて先行キャッシュ領域１２２の記憶されているブロックに続けて記載されているブロックを転送するようにしてもよい。
【００２１】
先行キャッシュ制御部１３２は、移動先特定部１６が特定する移動先ブロックを先頭とし、初期設定された数、又は重み付け制御部１７が定める数の連続するブロックを先行キャッシュ領域１２２に転送する。先行キャッシュ制御部１３２は、重み付け制御部１７が定める数が減少した場合には、先行キャッシュ領域１２２から対応する先行キャッシュの末尾のブロックを削除する。
【００２２】
先行キャッシュ制御部１３２は、主キャッシュ制御部１３１が転送を行っていないときに、転送を行ってもよい。つまり、転送制御部１３は、主キャッシュ制御部１３１が優先的にプログラム記憶部１１にアクセスし、先行キャッシュ制御部１３２が空いた時間にプログラム記憶部１１にアクセスするよう構成されてもよい。
【００２３】
読み出し制御部１４は、加工プログラムに従う順番でブロックをキャッシュ部１２から読み出す。具体的には、読み出したブロック内に次に読み出すブロックを特定する記述がある場合にはそのブロックを読み出し、読み出したブロック内に次に読み出すブロックを特定する記述がない場合には次のブロックを読み出す。
【００２４】
次に読み出すブロックを特定する記述としては、条件分岐、サブプログラム呼び出し等がある。通常、条件分岐は、例えば「ＩＦ［（条件式）］  ＧＯＴＯ（行番号）」のような形式のＩＦ文として記述される。また、サブプログラム呼び出しは、例えば「ＣＡＬＬ  （サブプログラム名）＿（繰り返し回数）＿（変数）」のような形式で記述される。読み出し制御部１４は、読み出したブロック内にこれらの命令が含まれているか否かを確認し、次に読み出すブロックを決定する。
【００２５】
読み出し制御部１４は、キャッシュ部１２に次に読み出すべきブロックが存在しない場合、主キャッシュ制御部１３１に読み出すべきブロックをプログラム記憶部１１から主キャッシュ領域１２１に転送するよう指示する。これにより、主キャッシュ制御部１３１は、読み出し制御部１４から指示されたブロック及びそれに連続して記述されているブロックを順番に主キャッシュ制御部１３１に転送する。
【００２６】
読み出し制御部１４は、主キャッシュ領域１２１からブロックを読み出した場合には、読み出したブロックを主キャッシュ領域１２１から削除する。これにより、主キャッシュ領域１２１に空き領域が形成され、主キャッシュ制御部１３１が次のブロックを主キャッシュ領域１２１に転送可能となる。一方、読み出し制御部１４は、先行キャッシュ領域１２２からブロックを読み出した場合には、読み出したブロックを先行キャッシュ領域１２２から削除しない。
【００２７】
加工処理部１５は、読み出し制御部１４が読み出したブロックの記述に基づいて、加工装置２を制御する。具体的には、加工処理部１５は、読み出し制御部１４が読み出したブロックの内容を解析して、そのブロックの内容に沿って加工装置２を動作させるよう、加工装置２に対する指令信号を生成する。
【００２８】
移動先特定部１６は、加工プログラムを構成する複数のブロックの中から、記述位置が離れたブロックに続いて実行される可能性がある移動先ブロックを特定する。具体的には、移動先特定部１６は、読み出し制御部１４が読み出したブロックの中に条件分岐、サブプログラム呼び出し等の加工プログラムの記述順と異なるブロックを読み出す命令が含まれる場合、ブロック読み出し時の条件を考慮することなく、そのブロックに続いて読み出される可能性があるブロックを移動先ブロックとする。例えば上述のＩＦ文が含まれる場合、移動先特定部１６は、その時に条件式を満たす場合に読み出される「ＧＯＴＯ」で指定された行番号のブロックと、条件式を満たさない場合に読み出される次の行のブロックをそれぞれ移動先ブロックとする。また、サブプログラムが存在する場合、移動先特定部１６は、各サブプログラムの先頭行を移動先ブロックとする。なお、ＩＦ文の実行時に条件式を満たさない場合に実行される次の行のブロックは、主キャッシュ領域１２１に既に読み込まれていると考えられるため、移動先特定部１６は、ＩＦ文の次の行のブロックを移動先ブロックから除外するようにしてもよい。
【００２９】
移動先特定部１６は、特定した移動先ブロックのプログラム名及び行番号を先行キャッシュ制御部１３２に告知する。これにより、先行キャッシュ制御部１３２は、移動先ブロックを先頭とする先行キャッシュを先行キャッシュ領域１２２に転送する。
【００３０】
例として、図２乃至４に示す加工プログラムの場合について説明する。図２はメインプログラム「Ｏ１０００」を、図３はサブプログラム「Ｏ０１００」を、図４はサブプログラム「Ｏ０２００」をそれぞれ示す。この例では、メインプログラムＯ１０００の行番号「Ｎ４０」に、ＩＦ文が含まれている。
【００３１】
移動先特定部１６は、サブプログラム「Ｏ０１００」及び「Ｏ０２００」の先頭行をそれぞれ移動先ブロックとし、さらにＩＦ文の条件を満たす場合に指定された行番号「Ｎ６０」及びＩＦ文の条件を満たさない場合の行番号「Ｎ５０」をそれぞれ移動先ブロックとする。このため、先行キャッシュ制御部１３２は、これらの移動先ブロックを先頭とする図５乃至８に示すような内容の先行キャッシュを先行キャッシュ領域１２２に転送する。ここで、先行キャッシュは、ブロック数が初期設定である４つとされているが、図７の先行キャッシュは、メインプログラム「Ｏ１０００」がそこで終了しているためにブロック数が３つだけとなっている。
【００３２】
重み付け制御部１７は、実行された回数が多い移動先ブロックほど、先行キャッシュを構成するブロックの数を大きくすると共に、加工処理部１５においてプログラム記憶部１１からキャッシュ部１２への転送待ちが生じた回数が多い移動先ブロックほど、先行キャッシュを構成するブロックの数を大きくするよう、先行キャッシュ制御部１３２に指示する。
【００３３】
次の表１に、図２乃至４の加工プログラムを実行したときの条件分岐及びサブプログラム呼び出しの結果並びにその際の転送待ちの発生回数を例示する。
【００３４】
【表１】
2020197830.tif 000003
【００３５】
重み付け制御部１７が、実行回数が多いサブプログラム「Ｏ０２００」の先頭行を先頭とする先行キャッシュの行数を１行増やし、さらに転送待ちの発生回数が多いサブプログラム「Ｏ０２００」の先頭行を先頭とする先行キャッシュの行数を１行増やしたとすると、図６に示した先行キャッシュは、図９に示すように、初期設定よりも２行多い６行となる。
【００３６】
このように、読み出し頻度が高い先行キャッシュのブロック数を多くすることによって、加工処理部１５の処理の遅延を抑制することができる。特に転送待ちが発生した回数に応じて先行キャッシュのブロック数を定めることによって、より効果的に加工処理部１５の処理の遅延を抑制することができる。
【００３７】
加工装置２は、加工制御システム１によって制御され、ワークを加工する。加工装置としては、加工制御システム１によって制御できるものであれば特に限定されず、例えば旋盤、マシニングセンタ、レーザ加工機等とすることができる。
【００３８】
以上の加工システム１００は、加工装置２に指令を発する加工処理部１５の遅延を抑制できる加工制御システム１を備えるため、ワークを効率よく加工することができる。
【００３９】
以上、本開示に係る加工システム及び加工方法の実施形態について説明したが、本開示に係る加工システム及び加工方法は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本開示から生じる最も好適な効果を列挙したに過ぎず、本開示に係る加工システム及び加工方法による効果は、本実施形態に記載されたものに限定されるものではない。
【００４０】
本開示に係る加工制御システムにおいて、プログラム記憶部は、１又は複数の加工制御システムの数値制御装置と通信して、これらの加工制御システムを管理する管理サーバに設けられてもよい。したがって、プログラム記憶部は、複数の加工制御システムに共用されてもよい。
【００４１】
本開示に係る加工制御システムにおいて、重み付け制御部は任意の構成であって省略可能である。また、重み付け制御部は、実行された回数が多い移動先ブロック又は転送待ちが生じた回数が多い移動先ブロックを先頭とする先行キャッシュのブロックの数を変更しないよう構成されてもよい。
【符号の説明】
【００４２】
１００  加工システム
１  加工制御システム
２  加工装置
１１  プログラム記憶部
１２  キャッシュ部
１２１  主キャッシュ領域
１２２  先行キャッシュ領域
１３  転送制御部
１３１  主キャッシュ制御部
１３２  先行キャッシュ制御部
１４  読み出し制御部
１５  加工処理部
１６  移動先特定部
１７  重み付け制御部
【図１】
2020197830.tif 000004
【図２】
2020197830.tif 000005
【図３】
2020197830.tif 000006
【図４】
2020197830.tif 000007
【図５】
2020197830.tif 000008
【図６】
2020197830.tif 000009
【図７】
2020197830.tif 000010
【図８】
2020197830.tif 000011
【図９】
2020197830.tif 000012