(57)【要約】【課題】加工プログラム転送の際のバッファリング不足による予期せぬ又は切削加工中の減速又は停止を防止し、加工面品位の低下を抑制できるプログラム最適化システムを提供する。【解決手段】プログラム最適化システム１００は、加工プログラムを順次読み出して加工シミュレーションを行うＣＮＣシミュレータ１２１、ＣＮＣシミュレータ１２１に加工プログラムを逐次転送する加工プログラム記憶部１２２と、転送速度が予め定められた下限値となるよう制御する転送速度制御部１２３を有する。ＣＮＣシミュレータ１２１は、切削区間において、読み出すべき前記加工プログラムが不足するバッファリング不足を検出した場合に、加工プログラムを最適化し、バッファリング不足が発生しない最適化加工プログラムを作成する。【選択図】図１
2018063640.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムを順次読み出して加工シミュレーションを行うＣＮＣシミュレータと、
前記ＣＮＣシミュレータに前記加工プログラムを逐次転送する加工プログラム記憶部と、
前記加工プログラム記憶部と前記ＣＮＣシミュレータとの間の転送速度が予め定められた下限値となるよう制御する転送速度制御部と、を有し、
前記ＣＮＣシミュレータは、切削区間において、読み出すべき前記加工プログラムが不足するバッファリング不足を検出した場合に、前記加工プログラムを最適化し、前記バッファリング不足が発生しない最適化加工プログラムを作成することを特徴とする
プログラム最適化システム。
【請求項２】
前記ＣＮＣシミュレータは、前記切削区間内で繰り返し現れる指令集合をサブプログラム化することにより、前記最適化を行うことを特徴とする
請求項１記載のプログラム最適化システム。
【請求項３】
前記ＣＮＣシミュレータは、前記切削区間内の複数のブロックを１つに結合することにより、前記最適化を行うことを特徴とする
請求項１記載のプログラム最適化システム。
【請求項４】
前記ＣＮＣシミュレータは、前記切削区間内の切削送り速度を変更することにより、前記最適化を行うことを特徴とする
請求項１記載のプログラム最適化システム。
【請求項５】
前記ＣＮＣシミュレータは、前記切削区間内の切削送り速度を段階的に遅くすることにより、前記変更後の切削送り速度を特定することを特徴とする
請求項１記載のプログラム最適化システム。
【請求項６】
前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有する外部計算機と、
前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、
前記数値制御装置に前記最適化加工プログラムを逐次転送する外部記憶装置と、をさらに有し、
前記ＣＮＣシミュレータが、前記最適化加工プログラムを前記外部記憶装置に転送することを特徴とする
請求項１記載のプログラム最適化システム。
【請求項７】
前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有し、前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、
前記数値制御装置に前記最適化加工プログラムを逐次転送する外部記憶装置と、をさらに有することを特徴とする
請求項１記載のプログラム最適化システム。
【請求項８】
前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有する外部計算機と、
前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、をさらに有し、
前記ＣＮＣシミュレータが、前記最適化加工プログラムを前記数値制御装置に転送することを特徴とする
請求項１記載のプログラム最適化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム最適化システムに関し、特に数値制御装置に加工プログラムを転送する外部計算機において加工プログラムを最適化する技術に関する。
【背景技術】
【０００２】
工作機械等を制御する数値制御装置（ＣＮＣ）は、加工プログラムに基づいて加工を行う。この加工プログラムのサイズは、加工物の精度向上に伴い大容量化する傾向にある。例えば金型加工用の加工プログラム等においては、そのサイズがＣＮＣの内部記憶装置（ＤＲＡＭ等）の容量を超える場合も少なくない。このような問題に対応するための手法として、ＣＮＣは、通信可能に接続された外部記憶装置（ＣＦカード、ＳＤカード、ＵＳＢデバイス等）や外部計算機（サーバ等）等から加工プログラムの一部を逐次取得し、取得した分の加工プログラムを内部記憶装置へバッファリングする技術が知られている。この手法によれば、連続的なプログラム運転を実現できる。
【０００３】
ところで、外部記憶装置又は外部計算機からＣＮＣに加工プログラムを転送する場合、その転送速度は一定ではない。もし加工プログラムの転送が遅延しバッファリング不足に陥った場合、工作機械は加工プログラムがバッファリングされるまで加工を進めることができず、結果として予期せぬ減速又は停止が発生する。切削加工中に減速又は停止が発生すると、加工面にカッターマークが付くなどして加工面品位が低下するなどの問題が生じることがある。
【０００４】
なお、往復動作等を行う機械（例えばインクジェットプリンタ）等では、停止しても問題ない位置（例えば加工又は印刷範囲の端部）で、バッファリングが十分になされるまで印刷ヘッドや工具等を待機させることで、加工対象物や印刷物の品質を均一に保つことが可能である。ＣＮＣにおいても、非切削ブロックが存在すれば、そこで加工を一時停止することで、加工品位を保つことは可能である。しかしながら、加工プログラムは多様であり、切削ブロックの連続数についての制限も存在しないため、バッファリング不足が生じるタイミングで必ずしも都合よく非切削ブロックが存在するとは限らない。それに、ＣＮＣの内部記憶装置には容量の上限があることから、非切削ブロック間に含まれる切削ブロックを運転しきれるだけの加工プログラムを必ずしも全てバッファリングできるとも限らない。仮に内部記憶装置の容量に上限がないとしても、加工プログラムのバッファリング完了まで運転を一時停止する必要があるため、サイクルタイムが増加するという別の問題が生じ得る。
【０００５】
この点、特許文献１には、加工プログラム中にバッファリングポイントを指定するというアイディアが開示されている。ＣＮＣは、指定されたバッファリングポイントまで加工プログラムがバッファリングされていない場合は、加工を一時停止して、加工プログラムの転送が完了するまで待機する。これにより、ＣＮＣは加工プログラムの転送レートに左右されず加工を実行できる。
【０００６】
特許文献２には、バッファ（内部記憶装置に相当）内の加工プログラムが空になる前に切削送り速度を低下させること、及びバッファが空になった場合でも逃げ動作を行うことによりカッターマークや振動の発生を回避すること、を特徴とするＣＮＣが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−３１７２５号公報
【特許文献２】特開平７−２３９７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１記載の構成では、加工プログラムの転送待ちの間は運転が一時停止するためサイクルタイムが増加するという問題を解決できない。転送すべき加工プログラムが著しく多い（例えば数百万行）場合は、運転停止時間が長くなりすぎたり、バッファリングしきれなかったりすることもある。
【０００９】
また、特許文献２の構成では運転中に局所的な切削送り速度の低下が発生するため、これに起因する加工面品位の低下が生じ得るという問題がある。
【００１０】
本発明は、これらの問題点を解決するためになされたものであり、加工プログラム転送の際のバッファリング不足による予期せぬ又は切削加工中の減速又は停止を防止し、加工面品位の低下を抑制できるプログラム最適化システムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施の形態にかかるプログラム最適化システムは、加工プログラムを順次読み出して加工シミュレーションを行うＣＮＣシミュレータと、前記ＣＮＣシミュレータに前記加工プログラムを逐次転送する加工プログラム記憶部と、前記加工プログラム記憶部と前記ＣＮＣシミュレータとの間の転送速度が予め定められた下限値となるよう制御する転送速度制御部と、を有し、前記ＣＮＣシミュレータは、切削区間において、読み出すべき前記加工プログラムが不足するバッファリング不足を検出した場合に、前記加工プログラムを最適化し、前記バッファリング不足が発生しない最適化加工プログラムを作成することを特徴とする。
【００１２】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータは、前記切削区間内で繰り返し現れる指令集合をサブプログラム化することにより、前記最適化を行うことを特徴とする。
【００１３】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータは、前記切削区間内の複数のブロックを１つに結合することにより、前記最適化を行うことを特徴とする。
【００１４】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータは、前記切削区間内の切削送り速度を変更することにより、前記最適化を行うことを特徴とする。
【００１５】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータは、前記切削区間内の切削送り速度を段階的に遅くすることにより、前記変更後の切削送り速度を特定することを特徴とする。
【００１６】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有する外部計算機と、前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、前記数値制御装置に前記最適化加工プログラムを逐次転送する外部記憶装置と、をさらに有し、前記ＣＮＣシミュレータが、前記最適化加工プログラムを前記外部記憶装置に転送することを特徴とする。
【００１７】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有し、前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、前記数値制御装置に前記最適化加工プログラムを逐次転送する外部記憶装置と、をさらに有することを特徴とする。
【００１８】
他の実施の形態にかかるプログラム最適化システムでは、前記ＣＮＣシミュレータ、前記加工プログラム記憶部及び前記転送速度制御部を有する外部計算機と、前記最適化加工プログラムを順次読み出してプログラム運転を行う数値制御装置と、をさらに有し、前記ＣＮＣシミュレータが、前記最適化加工プログラムを前記数値制御装置に転送することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、加工プログラム転送の際のバッファリング不足による予期せぬ又は切削加工中の減速又は停止を防止し、加工面品位の低下を抑制できるプログラム最適化システムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態にかかるプログラム最適化システム１００の構成を示すブロック図である。
【図２】本発明の実施の形態にかかるプログラム最適化システム１００の動作を示すフローチャートである。
【図３】転送速度の下限値の測定方法の一例を示す図である。
【図４】本発明の実施の形態にかかるプログラム最適化システム１００の動作を示すフローチャートである。
【図５】プログラム最適化処理の一例を示す図である。
【図６】プログラム最適化処理の一例を示す図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態を図面と共に説明する。
図１のブロック図を用いて、本発明の実施の形態にかかるプログラム最適化システム１００の構成について説明する。プログラム最適化システム１００は、数値制御装置（ＣＮＣ）１１０、外部計算機１２０及び外部記憶装置１３０を有する。ＣＮＣ１１０、外部計算機１２０及び外部記憶装置１３０は、典型的には中央情報処理装置（ＣＰＵ）が記憶装置に格納されたプログラムに従って所定の処理を実行することにより後述の種々の処理部を論理的に実現する情報処理装置である。ＣＮＣ１１０、外部計算機１２０及び外部記憶装置１３０は、通信回線等を介して相互に通信可能に接続されている。
【００２２】
ＣＮＣ１１０は、加工プログラムに基づいて図示しない工作機械等を制御する。これをプログラム運転という。また、ＣＮＣ１１０は、外部記憶装置１３０から加工プログラムを逐次受信し、受信した加工プログラムを内蔵する転送バッファに一時的に蓄積してゆく。これをバッファリングと称する。そして、ＣＮＣ１１０は、蓄積された加工プログラムを転送バッファから順次読み出してプログラム運転を行う。通常、ＣＮＣ１１０は、プログラム運転に使用された分の加工プログラムを転送バッファから削除する。
【００２３】
外部計算機１２０は、加工プログラムのバッファリング及びプログラム運転のシミュレーションと、シミュレーション結果に基づく加工プログラムの最適化を実施する。外部計算機１２０は、ＣＮＣシミュレータ１２１、加工プログラム記憶部１２２及び転送速度制御部１２３を有する。
【００２４】
加工プログラム記憶部１２２は、外部記憶装置１３０から加工プログラムを取得して所定の記憶領域に格納する。
【００２５】
ＣＮＣシミュレータ１２１は、加工プログラム記憶部１２２に格納された加工プログラムを、転送速度制御部１２３を介して読み出す。そして、公知の手法によりバッファリング及びプログラム運転のシミュレーションを行う。これを加工シミュレーションと称する。ＣＮＣシミュレータ１２１は、加工シミュレーションの結果、ある時点において、プログラム運転により消費された加工プログラムの容量が、バッファリングにより蓄積された加工プログラムの容量に追いつき、加工プログラムの蓄積不足となる状態（バッファリング不足と称する）の発生を検出したならば、加工プログラムを最適化する処理を行う。すなわち、ＣＮＣシミュレータ１２１は、バッファリング不足が発生せず、かつ加工時間が最短となるよう加工プログラムを修正する。そしてＣＮＣシミュレータ１２１は、最適化された加工プログラムを外部計算機１２０に転送する。
【００２６】
転送速度制御部１２３は、加工シミュレーションのパラメータとして、外部記憶装置１３０からＣＮＣ１１０に加工プログラムを転送する際の転送速度の下限値を予め保持している。また、転送速度制御部１２３は、加工プログラム記憶部１２２からＣＮＣシミュレータ１２１への加工プログラムの転送速度が、この下限値となるように制御する。
【００２７】
外部記憶装置１３０は、所定の記憶領域に予め加工プログラムを格納しており、ＣＮＣ１１０に対して加工プログラムを順次送信する処理を行う。本実施の形態では、外部記憶装置１３０は、まず最適化前の加工プログラムを外部計算機１２０に送信し、外部計算機１２０から最適化された加工プログラムを受信する。そして外部記憶装置１３０は、この最適化された加工プログラムをＣＮＣ１１０に対して送信することになる。
【００２８】
続いて、図２のフローチャートを用いて、プログラム最適化システム１００の動作について説明する。
Ｓ１：
ＣＮＣ１１０は、外部記憶装置１３０とＣＮＣ１１０との間の転送速度を測定、算出又は仮定し、転送速度の下限値を特定する。転送速度の測定、算出は公知の手法により実施可能である。例えば、図３に示すように、外部記憶装置１３０とＣＮＣ１１０との間の転送速度を所定の時間にわたって実測し、その時間内に測定された転送速度の最低値を下限値として特定することができる。例えば、転送速度の実測値が２３Ｋｂｐｓ乃至１００Ｍｂｐｓの範囲内であるならば、下限値は２３Ｋｂｐｓと特定できる。なお、測定値のうち例外的な値を除外することで、突発的な要因による転送速度の落ち込みを考慮することなく、ある程度安定した転送がなされる中での下限値を求めることもできる。
【００２９】
あるいは、ＣＮＣ１００の内部ソフトウェアの処理構造から下限値を特定することも可能である。すなわち、ＣＮＣ１００の内部処理の構造上、ある時間ｔで最低Ｘバイトの転送が保証されている場合には、下限値ｒは、ｒ＝ｘ／ｔにより算出できる。
【００３０】
外部記憶装置１３０は、典型的には、一定の転送速度が保証されるバス等を介してＣＮＣ１１０に接続される。しかしながら、転送速度の下限値を測定、算出又は仮定できるのであれば、外部記憶装置１３０はネットワークを介してＣＮＣ１１０に接続されていても構わない。例えば、外部記憶装置１３０がサーバである場合等は後者にあたる。すなわち本実施の形態は、転送速度の下限値として０を超える値を特定可能であることを前提とするものであり、転送速度が０となる状況を想定するものではない。
【００３１】
図３に、下限値ｒの特定方法の一例を示す。
Ｓ２：
ＣＮＣ１１０は、Ｓ１で特定した下限値と、加工シミュレーションに必要な諸情報（例えば機械構成、ＣＮＣシステム構成、システムパラメータ等、バッファリング及びプログラム運転の速度に影響を及ぼし得る情報）を、外部計算機１２０に転送する。
【００３２】
Ｓ３：
外部記憶装置１３０は、加工プログラムを外部計算機１２０に転送する。ここで転送される加工プログラムは、最適化前の加工プログラムである。加工プログラム記憶部１２２は受信した加工プログラムを格納する。
【００３３】
Ｓ４：
外部計算機１２０のＣＮＣシミュレータ１２１は、Ｓ３で加工プログラム記憶部１２２に格納された加工プログラム、及びＳ２で取得した情報を用いて加工シミュレーションを実施する。加工シミュレーションは公知の手法により実施可能である。
【００３４】
Ｓ５：
転送速度制御部１２３は、加工シミュレーションの際、加工プログラム記憶部１２２からＣＮＣシミュレータ１２１へのデータ転送が、Ｓ１で特定された下限値で行われるよう速度制御する。
【００３５】
Ｓ６：
ＣＮＣシミュレータ１２１は、加工シミュレーションの間、転送バッファを監視し、バッファリング不足の発生を検出する。バッファリング不足が切削ブロックにおいて発生していた場合は、当該切削ブロックを記録する。
【００３６】
Ｓ７：
ＣＮＣシミュレータ１２１は、Ｓ６で記録した切削ブロックの前後の非切削ブロックを特定する。
【００３７】
Ｓ８：
ＣＮＣシミュレータ１２１は、Ｓ６で記録した切削ブロック及びＳ７で特定した非切削ブロックを含む切削区間を最適化する処理を行う。すなわち、加工プログラム記憶部１２２内の加工プログラムを修正して、Ｓ１で特定した下限値においてもバッファリング不足が発生せず、かつ予測される加工時間が最短となるような加工プログラムを作成する。最適化処理は、例えば以下のような方法により実現可能である。
【００３８】
（ａ）切削区間内で繰り返し現れる指令集合を特定し、当該指令集合をサブプログラムとしてまとめる。これにより、サブプログラムは、ＣＮＣ１１０（ＣＮＣシミュレータ１２１）において１回目に転送されたものが保存され、２回目以降の転送を行わずに済むようになる。したがって、加工プログラムの転送量を減らすことができる。
この場合、経路や速度の変更は発生しない。
【００３９】
（ｂ）切削区間内のブロックを複数個結合する。
例えば、複数の線分の加工指令を１つの線分にまとめることが可能である。具体的には、複数の線分で構成されていた折れ線や曲線を、１つの線分で近似することにより、加工プログラムの量自体を減らすことができる。
この場合、経路変更が発生することが一般的である。
【００４０】
（ｃ）切削区間内の切削送り速度を変更する。
ＣＮＣシミュレータ１２１は、切削区間内の切削送り速度を段階的に変更しつつ、加工シミュレーションを繰り返し実行する。その結果、バッファリング不足が発生しなくなる最も速い切削速度が特定できたならば、この切削区間の切削速度を、特定された最も早い切削速度に変更する。
この場合、速度変更が発生する。
【００４１】
Ｓ９：
ＣＮＣシミュレータ１２１は、Ｓ８で最適化された加工プログラムを、外部記憶装置１３０に転送する。外部記憶装置１３０は、最適化された加工プログラムを、ＣＮＣ１１０に転送する。これにより、ＣＮＣ１１０においては、プログラム運転中のバッファリング不足に起因する予期せぬ又は切削加工中の減速又は停止が抑制される。減速が発生するとしても、速度変更は非切削ブロックにおいて行われるので、加工品位の低下が生じない。
【００４２】
ここで図４のフローチャート及び図５を用いて、最適化手法（ｃ）を採用した場合のＣＮＣシミュレータ１２１の動作について、さらに具体的に説明する。
ＳＣ１：
ＣＮＣシミュレータ１２１は、下限値が設定されているかどうかを確認する。設定されている場合はＳＣ２へ、設定されていない場合はＳＣ９へ遷移する。
【００４３】
ＳＣ２：
ＣＮＣシミュレータ１２１は、設定された下限値を転送速度とする加工シミュレーションを開始する。加工プログラムの先頭ブロックを実行する。
【００４４】
ＳＣ３：
ＣＮＣシミュレータ１２１は、バッファリング不足の発生を監視する。実行したブロックが切削ブロックであって、バッファリング不足の発生を検出した場合はＳＣ４へ、その他の場合はＳＣ７へ遷移する。
【００４５】
ＳＣ４：
ＣＮＣシミュレータ１２１は、バッファリング不足を検出した切削ブロックと、その前後の非切削ブロックに挟まれた切削区間を特定する。
図５に切削区間の具体例を示す。元のプログラムにおいて、切削ブロックである「Ｎ１００」でバッファリング不足が検出されたものとする。この場合、図に示すように前後の非切削ブロックに挟まれた切削区間が特定される。
【００４６】
ＳＣ５：
ＣＮＣシミュレータ１２１は、ＳＣ４で特定した切削区間内に限り、切削速度を変更する。例えば、現在の切削速度のｎ％（ｎは１００未満）を新たな切削速度とする加工プログラムを作成する。
図５に修正処理の具体例を示す。元のプログラムにおいて、切削ブロックＮ１０１の切削速度の指令値は「Ｆ７００」であった。修正後のプログラムでは、指令値が元の指令値の９０％である「Ｆ６３０」に変更されている。
【００４７】
ＳＣ６：
ＣＮＣシミュレータ１２１は、ＳＣ５で修正されたプログラムを先頭ブロックから再実行する。
【００４８】
ＳＣ７：
実行したブロックが最終ブロックでないならばＳＣ８へ遷移する。最終ブロックであったならばＳＣ９に遷移する。
【００４９】
ＳＣ８：
次のブロックを実行する。
【００５０】
ＳＣ９：
ＳＣ５において切削送り速度の変更を実施した場合にはＳＣ１０へ遷移する。変更していない場合は処理を終了する。
【００５１】
ＳＣ１０：
ＳＣ５において切削送り速度の変更結果を反映した加工プログラムを作成し、外部記憶装置１３０に転送して処理を終了する。
【００５２】
本実施の形態にかかるプログラム最適化システム１００では、外部計算機１２０が、転送速度の下限値を考慮して加工シミュレーションを行うことでバッファリング不足の発生を事前に予測する。そして、バッファリング不足が発生しないよう加工プログラムを修正する。これにより、予期せぬ又は切削加工中の減速又は停止を防止し、加工面品位の低下を抑制できる。
また、外部計算機１２０は、バッファリング不足を解消できる最も早い切削速度を特定する。これにより、加工速度を可能な限り犠牲にせずにバッファリング不足を解消することができる。
【００５３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【００５４】
例えば、上述の実施の形態では、図２のＳ９において、ＣＮＣシミュレータ１２１は、最適化された加工プログラムを外部記憶装置１３０に転送した。ここでＣＮＣシミュレータ１２１は、最適化された加工プログラムを加工プログラム記憶部１２２に反映することとしても良い。これにより、外部計算機１２０は、例えば複数の最適化手法を繰返し適用して加工プログラムを最適化することが可能になる。
【００５５】
外部計算機１２０は、複数の最適化手法を組み合わせて加工プログラムを最適化することが可能である。例えば、上述の最適化手法を（ａ）＞（ｂ）＞（ｃ）の順に適用し、バッファリング不足を解消できた段階で最適化処理を終了することとすれば、加工への影響を極力抑制した最適化が可能である。また、複数の最適化手法を重畳して適用することにより、よりバッファリング不足への耐性の高い加工プログラムを得ることが可能である。
【００５６】
また、上述の実施の形態では、外部計算機１２０は、バッファリング不足が予測される場合にのみ最適化処理を実行したが、本発明はこれに限定されるものではない。外部計算機１２０は、バッファリング不足が発生するか否かにかかわらず、最適化処理を実行することとしても良い。これにより、最適化手法（ａ）及び（ｂ）を用いた場合には加工プログラムのサイズを削減することが可能となる。
【００５７】
また、最適化手法（ｃ）を応用し、バッファリング不足が予測されない場合に、バッファリング不足が発生しない範囲内で切削送り速度を段階的に引き上げ、切削送り速度の上限値を求めて、この上限値で加工プログラムを修正する処理を行うこととしても良い。これにより、例えば荒加工プログラムにおける切削送り速度を引き上げることができ、加工効率を向上させる効果を得ることもできる。図６に、この変形例による修正処理の具体例を示す。元のプログラムにおいて、切削ブロックＮ１００の切削速度の指令値は「Ｆ３０００」「Ｆ２０００」であった。修正後のプログラムでは、指令値が元の指令値の１１０％である「Ｆ３３００」「Ｆ２２００」に変更されている。
【００５８】
また、上述の実施の形態では、外部計算機１２０とＣＮＣ１１０とを独立した装置として説明した。しかしながら、ＣＮＣ１１０が、外部計算機１２０の構成要素すなわちＣＮＣシミュレータ１２１及び加工プログラム記憶部１２２等を備えることとしても良い。この場合、ＣＮＣ１１０は、外部記憶装置１３０から取得した加工プログラムをまず内部で仮想的にテスト運転し、その結果最適化された加工プログラムでプログラム運転を行うことが考えられる。
【００５９】
また、上述の実施の形態では、ＣＮＣシミュレータ１２１は、最適化された加工プログラムを外部記憶装置１３０に転送した。しかしながら、ＣＮＣシミュレータ１２１は、最適化された加工プログラムをＣＮＣ１１０に直接転送しても良い。この場合、転送速度制御部１２３は、転送速度の下限値として、外部記憶装置１３０とＣＮＣ１１０との間の転送速度の下限値ではなく、外部計算機１２０とＣＮＣ１１０との間の転送速度の下限値を用いるべきである。
【符号の説明】
【００６０】
１００  プログラム最適化システム
１１０  数値制御装置（ＣＮＣ）
１２０  外部計算機
１２１  ＣＮＣシミュレータ
１２２  加工プログラム記憶部
１２３  転送速度制御部
１３０  外部記憶装置
【図１】
2018063640.tif 000003
【図２】
2018063640.tif 000004
【図３】
2018063640.tif 000005
【図４】
2018063640.tif 000006
【図５】
2018063640.tif 000007
【図６】
2018063640.tif 000008