(58)【調査した分野】(Int.Cl.,DB名)
複数のブロックから構成され、軸の加減速を制御するための加工プログラムを実行することにより、前記軸を有する工作機械を制御する複数台の数値制御装置がネットワークを介して互いに接続されている数値制御システムであって、
前記数値制御装置は、
制御部と記憶部とを備え、
前記制御部は、
前記加工プログラムを実行するプログラム実行部と、
前記加工プログラムの実行と並列して、前記加工プログラムを先読みする第1プログラム先読み部及び第2プログラム先読み部を含むプログラム先読み部と、
前記記憶部に少なくとも第1領域及び第2領域を区画し、前記第1プログラム先読み部に対して、前記第1領域に先読みブロックを蓄積する先読みを指示し、前記第2プログラム先読み部に対して、他の数値制御装置の加工プログラムを先読みし、前記第2領域に先読みブロックを蓄積する先読みを指示する先読み振り分け部とを備える、数値制御装置。
1つの前記数値制御装置が、自身の加工プログラム中の前記代替先読み範囲の先読みを実行する際には、他の前記数値制御装置が、自身の加工プログラム中の前記代替先読み範囲の先読みを実行しないように、前記複数の数値制御装置間で加工のタイミングを調整する調整装置を更に備える、請求項1又は2に記載の数値制御システム。
【背景技術】
【0002】
昨今の製造業では、IT部品等の小型化・精密化が進み、高速・高精度加工に対する関心が高まっている。高速・高精度加工におけるワークの加工プログラムは、さらなる高品位での加工を実現するため、より小さなオーダーでの許容誤差(トレランス)で作成されることが増加している傾向にある。
【0003】
従来は、PC処理能力の観点から現実的ではなかった小さいトレランスの加工プログラムは、近年ではPC性能とCAM(Computer Aided Manufacturing)性能の向上から、十分に作成可能となってきており、その勢いは今後も加速すると考えられている。
【0004】
また、トレランス以外にも高品位加工における重要な要素として微小直線を均一化することが挙げられており、各軸の加減速を一定化することで振動を低減することにより、加工面の品位を向上させるため、均一な微小直線を適用した高品位加工プログラムは増加傾向にある。
これらのことから、近年では、加工プログラムにおいてブロック数が増加している。
【0005】
従来技術では、数値制御装置によってプログラムを先読みし、先読みブロック数だけ事前に貯蓄したプログラムから、FIFO(先入れ先出し)によって、次に動作するブロックのプログラムを読み出して処理することにより、加減速動作を決定して、軸制御を行っている。
【0006】
しかしながら、これらの高品位加工プログラムにおいて、以下のような課題があった。すなわち、微小直線長さが短く、指令速度が高速なため、プログラムの実行にかかる処理時間が、先読みの処理にかかる時間よりも短い場合、加減速動作の決定に使用する先読みブロック数を確保できない結果、プログラムの挙動を考慮した加減速が定まらず、速度変化が一定ではなくなり、高品位な加工面が得られないことがあった。
【0007】
図11は、速度変化が不安定となった際の、加減速の経時変化を示すグラフである。
図11に示すように、当初の速度は指令速度6000mm/minで安定的に推移していたものの、2000mm/minとなった段階で、プログラムの実行にかかる処理時間が短すぎて、加減速動作の決定に使用する先読みブロック数を確保できなくなったため、
図11内の矢印に示すように不安定化し、微細動する現象が発生する。とくにこれらの現象は、5軸加工等、軸数が増加して数値制御装置による処理能力が低下すると顕著なものとなる。逆に言えば、数値制御装置の先読みを実行したり加工プログラムを実行したりする処理能力を向上させることにより、これらの現象を解決できるものの、更にプログラムの微細化や機械の改良による指令速度が向上した場合には、また同様の問題が発生する。
【0008】
この点、特許文献1に係る発明は、数値制御装置において、NCデータを解析した解析データを加減速補間手段に使用されるまで、FIFOで保持するバッファ内のデータ数の過不足を監視する技術であって、とりわけ、バッファ内に存在することが予測されるデータ数が下限となる閾値を下回る場合に、データ不足と判断する技術を開示している。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について
図1〜
図10を参照することにより説明する。
〔1 発明の構成〕
図1は、本発明に係る数値制御システム10を示すブロック図である。数値制御システム10は、
図1に示すように、n台の数値制御装置100、n台の工作機械200、及び、調整装置300を備えている。
【0021】
数値制御装置100は、後述の機能を備えることにより、工作機械200に対して動作指令を出力し、工作機械200を数値制御する装置である。数値制御装置100の構成及び機能の詳細については後述する。
【0022】
工作機械200は、切削加工等の所定の機械加工を行う装置である。工作機械200は、ワークを加工するために駆動するモータや、このモータに取り付けられた主軸や送り軸や、これら各軸に対応する治具や工具等を備える。そして、工作機械200は、数値制御装置100から出力される動作指令に基づいてモータを駆動させることにより所定の機械加工を行う。ここで、所定の機械加工の内容に特に限定はなく、切削加工以外にも、例えば研削加工、研磨加工、圧延加工、あるいは鍛造加工といった他の加工であってもよい。
【0023】
調整装置300は、工作機械200による加工のタイミング、すなわち数値制御装置100による加工プログラムの実行及び先読みのタイミングを調整する装置である。これらのタイミングの調整の詳細については、後述する。
【0024】
ここで数値制御装置100と工作機械200とは1対1の組とされて、通信可能に接続されている。これら数値制御装置100と工作機械200との組は、例えば同じ工場に複数組配置されていてもよく、それぞれ異なる工場に配置されていてもよい。
【0025】
また、数値制御装置100と、調整装置300とは、相互に通信可能に接続されている。なお、数値制御装置100と、工作機械200と、調整装置300とは、接続インタフェースを介して直接接続されても、ネットワーク400を介して接続されてもよい。ネットワーク400は、例えば、工場内に構築されたLAN(Local Area Network)や、インターネット、公衆電話網、あるいは、これらの組み合わせである。ネットワーク400における具体的な通信方式や、有線接続及び無線接続のいずれであるか等については、特に限定されない。
【0026】
図2は、本発明の実施形態に係る数値制御装置100の構成例である。数値制御装置100は、主として、CPU11と、ROM12と、RAM13と、CMOS14と、インタフェース15、18、19と、PMC(プログラマブル・マシン・コントローラ)16と、I/Oユニット17と、軸制御回路30〜34と、サーボアンプ40〜44と、スピンドル制御回路60と、スピンドルアンプ61とを備える。
【0027】
CPU11は数値制御装置100を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステムプログラムを、バス25を介して読み出し、該システムプログラムに従って数値制御装置100の全体を制御する。
【0028】
RAM13には、一時的な計算データや表示データ、及び表示器/MDIユニット70を介してオペレータが入力した各種データが格納される。
【0029】
CMOSメモリ14は、図示しないバッテリでバックアップされ、数値制御装置100の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。CMOSメモリ14中には、インタフェース15を介して読み込まれた加工プログラムや、表示器/MDIユニット70を介して入力された加工プログラム等が記憶される。
【0030】
ROM12には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムが、予め書き込まれている。
【0031】
本発明を実行する加工プログラム等の各種加工プログラムは、インタフェース15や表示器/MDIユニット70を介して入力し、CMOSメモリ14に格納することができる。
【0032】
インタフェース15は、数値制御装置100とアダプタ等の外部機器72との接続を可能とするものである。外部機器72側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置100内で編集した加工プログラムは、外部機器72を介して外部記憶手段に記憶させることができる。
【0033】
PMC(プログラマブル・マシン・コントローラ)16は、数値制御装置100に内蔵されたシーケンスプログラムで、工作機械の補助装置(例えば、工具交換用のロボットハンドといったアクチュエータ)にI/Oユニット17を介して信号を出力して制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、信号をCPU11に渡す。
【0034】
表示器/MDIユニット70は、ディスプレイやキーボード等を備えた手動データ入力装置である。インタフェース18は、表示器/MDIユニット70のキーボードからの指令やデータを受けて、これらをCPU11に渡す。インタフェース19は、手動パルス発生器等を備えた操作盤71に接続されている。
【0035】
各軸の軸制御回路30〜34は、CPU11からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ40〜44に出力する。
【0036】
サーボアンプ40〜44は、この指令を受けて、各軸のサーボモータ50〜54を駆動する。各軸のサーボモータ50〜54は、位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路30〜34にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
【0037】
スピンドル制御回路60は、工作機械への主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61は、このスピンドル速度信号を受けて、工作機械のスピンドルモータ62を指令された回転速度で回転させ、工具を駆動する。
【0038】
スピンドルモータ62には、歯車あるいはベルト等でパルスエンコーダ63が結合されている。パルスエンコーダ63は、主軸の回転に同期して帰還パルスを出力する。その帰還パルスは、バス25を経由してCPU11によって読み取られる。
【0039】
なお、
図2に示す数値制御装置100の構成例では、軸制御回路30〜34の5つの軸制御回路と、サーボモータ50〜54の5つのサーボモータが示されている。しかし、本発明は、これには限定されず、任意の個数の軸制御回路及びサーボモータを備えることが可能である。
【0040】
図3は、上記のCPU11が、ROM12に格納されたシステムプログラム及びアプリケーションプログラムを、バス25を介して読み出し、該システムプログラム及びアプリケーションプログラムに従って実現する機能を示す機能ブロック図である。CPU11は、プログラム実行部111と、プログラム先読み部112と、先読みブロック数算出部113と、プログラム分割部114と、先読み振り分け部115とを備える。
【0041】
プログラム実行部111は、加工プログラムを実行する。とりわけ本実施形態において、プログラム実行部111は、加工プログラムのシミュレーションを実行する。なお、このシミュレーションの際には、単に加工プログラムを空運転するだけではなく、例えば工作機械200にワークを設置した上で、実際に工作機械200を動作させることが好ましい。工作機械200の動作環境や軸構成によって、後述の先読みブロック数の経時変化の態様が異なってくるためである。
【0042】
プログラム先読み部112は、プログラム実行部111による加工プログラムのシミュレーションと並列に、当該シミュレーションに先んじて加工プログラムを先読みする。
【0043】
図4は、プログラム先読み部112の構成例である。プログラム先読み部112は、第1プログラム先読み部112a、第2プログラム先読み部112b、・・・第nプログラム先読み部112nを備える。
【0044】
先読みブロック数は、プログラム先読み部112によって先読みされるブロックの位置や、プログラム実行部111によって実行されるブロックの位置が、加工プログラムの終わりとなる箇所では0となる。しかし、通常、先読みブロック数は、0に向かって一様に減少していくわけではなく、加工経路の曲率の変化や軸構成によってブロック毎の処理時間が変化することで、先読みブロック数の減少率は変化する。
【0045】
とりわけ、加工プログラム内で微小直線が連続する箇所では、プログラム実行部111による加工プログラムの実行スピードが速くなり、1ブロック当たりの処理時間が短くなると、先読みブロック数の減少率が高くなる。この場合、加減速動作の決定に使用する先読みブロック数を確保できず、速度変化が一定ではなくなるような速度制御の異常が発生する。
【0046】
図5は、先読みブロック数の経時変化の例を示すグラフである。
荒加工時には、必要とされる先読みブロック数、例えば300ブロックよりもかなり多いブロック数である、最大先読みブロック数分の1000ブロックが維持される。その後、工具交換が必要となったり、キャンセルコードが入ったりすることによる先読み機能停止区間において、先読みブロック数が減少し、やがて0となる。その後、加工プログラム中の仕上げ加工に対応するブロックの処理に移行するが、先読みブロック数が300までしか増加しない状態で仕上げ加工が開始されるため、先読みブロック数はやがて枯渇し、速度制御は不安定となる。
【0047】
そこで本実施形態では、
図4に示されるように、プログラム先読み部112は、第1プログラム先読み部112a、第2プログラム先読み部112b、・・・第nプログラム先読み部112nの複数のプログラム先読み部を備える。更に、加工プログラム内で、先読みブロック数に余裕がある範囲では、第1プログラム先読み部112aがこの領域の先頭から先読みを実行するのと並行して、第2プログラム先読み部112b、・・・第nプログラム先読み部112nが、各々に対応する他の数値制御装置100によって実行される加工プログラム中の、先読みブロック数に余裕がない範囲の先読みを実行すると共に、先読みしたブロックを、自数値制御装置100のメモリに蓄積しておく。更に、他の数値制御装置100が、当該先読みブロック数に余裕がない範囲のブロックを実行する際には、第2プログラム先読み部112b、・・・第nプログラム先読み部112nによって前もって先読みされ、自数値制御装置100のメモリに蓄積されているブロックを実行し、消費する。
【0048】
なお、ここでは、上記の「先読みブロック数に余裕がある範囲」を、
図5に示すように「余剰先読み範囲」と呼称する。また、上記の「先読みブロック数に余裕がない範囲」を、
図5に示すように「代替先読み範囲」と呼称する。
【0049】
また、以降では説明の簡略化のため、プログラム先読み部112が、2つのプログラム先読み部である第1プログラム先読み部112a及び第2プログラム先読み部112bを備えるケースについて説明するが、これには限定されない。
【0050】
先読みブロック数算出部113は、プログラム実行部111によって実行中のブロックのシーケンス番号と、当該ブロックを実行している時点で、プログラム先読み部112によって先読みされるブロックのシーケンス番号との差分である先読みブロック数を算出する。
【0051】
とりわけ、本実施形態においては、プログラム実行部111による加工プログラムの1度目のシミュレーション時に、実行中のブロックの第1シーケンス番号と、第1プログラム先読み部112aによって先読みされるブロックの第2シーケンス番号との差分である先読みブロック数を算出する。
【0052】
プログラム分割部114は、加工プログラムを、前記先読みブロック数が所定値以上である余剰先読み範囲と、前記先読みブロック数が所定値未満である代替先読み範囲とに分割する。
なお、
図5の例に示されるように、プログラム分割部114は、先読みブロック数が所定値以上の値を所定期間維持する範囲を、余剰先読み範囲としてもよい。また、プログラム分割部114は、先読みブロック数が枯渇して以降、所定値を超えるまでの範囲を、代替先読み範囲としてもよい。
【0053】
先読み振り分け部115は、プログラム先読み部112によって先読みされるブロックを貯蓄するためのメモリ(例えば、上記のRAM13)を、第1プログラム先読み部112aによって用いられる第1領域と、第2プログラム先読み部112bによって用いられる第2領域とに分割する。
【0054】
更に、プログラム先読み部112が余剰先読み範囲を先読みする場合に、先読み振り分け部115は、第1プログラム先読み部112aに対して余剰先読み範囲の先読みを指示し、これと並列に、第2プログラム先読み部112bに対して、他の数値制御装置の加工プログラム中の代替先読み範囲の先読みを指示する。
【0055】
これにより、プログラム先読み部112が余剰先読み範囲を先読みする場合に、第1プログラム先読み部112aは、余剰先読み範囲を先読みしながら、第1領域に先読みブロックを蓄積し、第2プログラム先読み部112bは、他の数値制御装置の加工プログラム中の代替先読み範囲を先読みしながら、第2領域に先読みブロックを蓄積する。プログラム実行部111は、第1領域に蓄積されたブロックを実行し、消費する。
【0056】
また、プログラム先読み部112が代替先読み範囲を先読みする場合に、先読み振り分け部115は、他の数値制御装置100に対して、当該代替先読み範囲の先読みを依頼し、これと並列に、第1プログラム先読み部112aに対して、代替先読み範囲の先読みを指示する。
【0057】
また、プログラム先読み部112が代替先読み範囲を先読みする場合に、第1プログラム先読み部112aは、他の数値制御装置100のメモリに蓄積されたブロック以降のブロックを先読みする。プログラム実行部111は、他の数値制御装置100のメモリに蓄積されたブロックを実行し、消費した後、第1プログラム先読み部112aによって先読みされ第1領域に蓄積されたブロックを実行し、消費する。
【0058】
なお、先読みの依頼を受けた数値制御装置100において、第1プログラム先読み部112aが先読みしているのが余剰先読み範囲であれば、先読み振り分け部115は、第2プログラム先読み部112bに対して、先読みの依頼元である他の数値制御装置の加工プログラム中の代替先読み範囲の先読みを指示する。
【0059】
図6は、先読み振り分け部115による先読みの振り分け例を示す。
図6に記載の加工プログラムにおいて、“M198P0001(ROUGH)”は荒加工の指示であり、“M198P0002(FINISH)”は仕上げ加工の指示である。
【0060】
先読み振り分け部115は、メモリの上限である1000ブロック分を、第1プログラム先読み部112aが用いる300ブロックと、第2プログラム先読み部112bが用いる700ブロックに分割し、前者を第1領域、後者を第2領域とする。また、先読み振り分け部115は、第1プログラム先読み部112aに対して、余剰先読み範囲を先読みしながら、第1領域に先読みブロックを蓄積する先読みを指示し、第2プログラム先読み部112bに対して、第1プログラム先読み部112aによる先読みと並行して、他の数値制御装置100の加工プログラム中の代替先読み範囲を先読みしながら、第2領域に先読みブロックを蓄積する先読みを指示する。
【0061】
本実施形態に係る数値制御装置100は、上記の構成を有することにより、先読みブロック数に余裕がある箇所では、自身の加工プログラムの先読みと並列に、他の数値制御装置の加工プログラムの先読みを実行し、先読みブロック数に余裕がなく、速度制御異常が発生する可能性が高い箇所では、自身の加工プログラムの先読みと並列に、他の数値制御装置に自身の加工プログラムの先読みを依頼することが可能となる。
【0062】
なお、説明の便宜上、
図6に記載のメモリは第1領域と第2領域の2つの領域に分割されているが、これは一例であって、これには限定されない。例えば、プログラム先読み部112を構成する第1プログラム先読み部112a、第2プログラム先読み部112b、・・・第nプログラム先読み部112nの個数に対応して、先読み振り分け部115は、メモリを任意の個数の領域に分割されても良い。
【0063】
図7は、各工作機械200を制御する各数値制御装置100での先読みブロックの経時変化を示すグラフである。
図7において、「No.1」〜「No.3」の各々の工作機械は、荒加工、仕上げ加工、段取り時間のループを繰り返す。また、荒加工及び仕上げ加工における先読みブロック数は、
図5に示されるのと同様の経時変化を示す。
【0064】
更に、調整装置300は、「No.2」の工作機械200を制御する数値制御装置100による先読みのタイミングを、「No.1」の工作機械200を制御する数値制御装置100による先読みのタイミングに比較してT1だけ遅らせる。同様に、「No.3」の工作機械200を制御する数値制御装置100による先読みのタイミングを、「No.1」の工作機械200を制御する数値制御装置100による先読みのタイミングに比較してT2だけ遅らせる。
【0065】
これにより、「No.1」〜「No.3」の工作機械200間で、荒加工と仕上げ加工とが同時に実行されることが避けられる。
ただし、調整装置300によって、各数値制御装置100による先読みのタイミングをずらしただけでは、
図5に示されるのと同様に、各数値制御装置100において、仕上げ加工時の先読みブロック数には余裕はない。そこで、先読み振り分け部115は、先読みブロックを、各工作機械200を制御する複数の数値制御装置100間で振り分ける。
【0066】
図8は、各数値制御装置100の先読み振り分け部115が先読みブロックを振り分けた後の、各数値制御装置100での先読みブロックの経時変化を示すグラフである。
より詳細には、例えば、
図8の(a)において、「No.2」の先読みブロックを使用して、「No.1」の先読みブロック数に700ブロック数が加算される。
図8の(b)において、「No.1」の先読みブロック数のうち700ブロック数が「No.3」の先読みブロック数に使用される。
図8の(c)において、「No.2」の先読みブロック数のうち700ブロック数が「No.1」の先読みブロック数に使用される。
図8の(d)において、「No.3」の先読みブロックを使用して、「No.2」の先読みブロック数に700ブロック数が加算される。
図8の(e)において、「No.3」の先読みブロック数のうち700ブロック数が「No.2」の先読みブロック数に使用される。
図8の(f)において、「No.1」の先読みブロックを使用して、「No.3」の先読みブロック数に700ブロック数が加算される。
【0067】
これにより、「No.1」〜「No.3」の工作機械200の全てにおいて、仕上げ加工時の先読みブロック数に余裕が発生する。
【0068】
なお、
図7及び
図8において、「No.1」〜「No.3」は同一の製品Aを加工することを前提としているが、これは一例であって、これには限定されない。
【0069】
〔2 発明の動作〕
以下、
図9及び
図10を参照することにより、本発明の第1実施形態に係る数値制御装置100の動作を説明する。
【0070】
〔2.1 加工プログラム分割時の動作〕
図9は、加工プログラム分割時の動作を示すフローチャートである。
ステップS11において、プログラム実行部111は、加工プログラムのシミュレーションを実行する。
【0071】
ステップS12において、プログラム先読み部112(第1プログラム先読み部112a)は、プログラム実行部111による加工プログラムのシミュレーションと並列に、当該シミュレーションに先んじて加工プログラムを先読みする。
【0072】
ステップS13において、先読みブロック数算出部113は、先読みブロック数を算出する。
【0073】
ステップS14において、プログラム分割部114は、加工プログラムを、先読みブロック数が所定値以上である余剰先読み範囲と、先読みブロック数が所定値未満である代替先読み範囲とに分割する。
【0074】
〔2.2 先読み振り分け時の動作〕
図10は、先読み振り分け時の動作を示すフローチャートである。
図10は、とりわけ先読み振り分け部115の動作を示す。
【0075】
ステップS21において、これから先読みする箇所が余剰先読み範囲である場合(S21:YES)には、処理はステップS22に移行する。これから先読みする箇所が余剰先読み範囲でない場合(S21:NO)には、処理はステップS24に移行する。
【0076】
ステップS22において、先読み振り分け部115は、第1プログラム先読み部112aに対し、余剰先読み範囲の先読みを指示する。
【0077】
ステップS23において、先読み振り分け部115は、第2プログラム先読み部112bに対し、他の数値制御装置の加工プログラム中の代替先読み範囲の先読みを指示する。
【0078】
ステップS24において、これから先読みする箇所が代替先読み範囲である場合(S24:YES)には、処理はステップS25に移行する。これから先読みする箇所が代替先読み範囲でない場合(S24:NO)には、処理はステップS21に移行する(リターン)。
【0079】
ステップS25において、先読み振り分け部115は、他の数値制御装置100に対し、自数値制御装置100の加工プログラム中の代替先読み範囲の先読みを指示する。
【0080】
ステップS26において、先読み振り分け部115は、第1プログラム先読み部112aに対し、代替先読み範囲の先読みを指示する。その後、処理はステップS21に移行する(リターン)。
【0081】
〔3 実施形態の効果〕
本発明の第1実施形態に係る数値制御システム10を構成する複数の数値制御装置100の各々は、加工プログラムの実行と並列して、加工プログラムを先読みする第1プログラム先読み部112a及び第2プログラム先読み部112bを含むプログラム先読み部112と、記憶部に少なくとも第1領域及び第2領域を区画し、第1プログラム先読み部112aに対して、第1領域に先読みブロックを蓄積する先読みを指示し、第2プログラム先読み部に対して、他の数値制御装置の加工プログラムを先読みし、第2領域に先読みブロックを蓄積する先読みを指示する先読み振り分け部115とを備える。
【0082】
これにより、送り速度や切削速度等の安定化のため、数値制御システムを構成する各数値制御装置において、先読みブロック数に余裕がなく、速度制御異常が発生する可能性が高い箇所では、自身の加工プログラムの先読みと並列に、他の数値制御装置に自身の加工プログラムの先読みを依頼することが可能となる。
【0083】
また、数値制御装置100は、先読みブロック数に基づいて、加工プログラムを、先読みブロック数が所定値以上である余剰先読み範囲と、先読みブロック数が所定値未満である代替先読み範囲とに分割するプログラム分割部114を備える。更に、数値制御装置100は先読み振り分け部115を備え、先読み振り分け部115は、プログラム先読み部112によって余剰先読み範囲が先読みされる際、第1プログラム先読み部112aに対して余剰先読み範囲の先読みを指示すると共に、第2プログラム先読み部112bに対して、他の数値制御装置100の加工プログラム中の代替先読み範囲の先読みを指示する。また、先読み振り分け部115は、プログラム先読み部112によって、代替先読み範囲が先読みされる際、他の数値制御装置100に対して代替先読み範囲の先読みを依頼すると共に、第1プログラム先読み部112aに対して代替先読み範囲の先読みを指示する。
【0084】
これにより、数値制御装置100は、加工プログラムにおいて先読みブロック数に余裕がない範囲の先読みを他の数値制御装置に依頼することが可能となる。
【0085】
また、調整装置300は、1つの数値制御装置100が、自身の加工プログラム中の代替先読み範囲の先読みを実行する際には、他の前記数値制御装置100が、自身の加工プログラム中の代替先読み範囲の先読みを実行しないように、複数の数値制御装置100間で加工のタイミングを調整する。
【0086】
これにより、数値制御装置100間でスムーズに先読みブロック数を融通し合うことが可能となる。
【0087】
また、複数の数値制御装置100は同一の加工プログラムを実行する。
【0088】
これにより、数値制御装置100間でスムーズに先読みブロック数を融通し合うことが可能となると共に、当該先読みブロック数の融通を単純なループとすることが可能となる。
【0089】
〔4.変形例〕
〔4.1 変形例1〕
上記の実施形態では、プログラム分割部114は、先読みブロック数に基づいて加工プログラムを余剰先読み範囲と代替先読み範囲に分割するとしたが、これには限られない。例えば、プログラム分割部114は、先読みブロック数の減少率と規定値との比較結果に基づいて、加工プログラムを複数の領域に分割してもよい。
【0090】
〔4.2 変形例2〕
上記の実施形態において、加工プログラム分割時の動作は、プログラム実行部111による加工プログラムのシミュレーションを実行する際の動作としたが、これには限られない。例えば、数値制御装置100が工作機械200を制御することによる実加工中に、同様の動作を実行してもよい。
【0091】
〔4.3 変形例3〕
上記の実施形態において、数値制御システム10は調整装置300を備え、調整装置300が、工作機械200による加工のタイミング、すなわち数値制御装置100による加工プログラムの実行及び先読みのタイミングを調整するとしたが、これには限られない。例えば、数値制御システム10は調整装置300を備えず、複数の数値制御装置100が互いに通信することにより、自律的に上記のタイミングを調整してもよい。
【0092】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【0093】
数値制御装置100又は100Aによる制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(数値制御装置100又は100A)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。更に、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータ(数値制御装置100又は100A)に提供されてもよい。