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