以下、本発明の実施形態を図面を参照して説明する。
まず、図1及び図2を参照して、本発明の一実施形態による数値制御装置2が適用される工作機械の構成について説明する。
本実施形態による数値制御装置2(図2参照)が設けられる工作機械は、被加工物であるワーク100を切削加工するためのものであり、ワーク移送装置102と、コラム104と、工具105と、工具鉛直移送装置106と、工具第1水平移送装置108と、工具第2水平移送装置110と、主軸ヘッド112と、制御盤114とを備えている。なお、ワーク移送装置102、工具鉛直移送装置106、工具第1水平移送装置108及び工具第2水平移送装置110は、それぞれ本発明の移送装置の概念に含まれるものである。
ワーク移送装置102は、ワーク100を図1の紙面に垂直な方向であるX軸方向に移送するための装置である。このワーク移送装置102は、所定の設置場所上に固設されるベース102aと、そのベース102a上にX軸方向に移動可能となるように設けられるワーク支持体102bと、そのワーク支持体102bをX軸方向に移送するワーク移送部102c(図2参照)とを有する。ワーク支持体102bは、ワーク100を支持するものであり、当該ワーク100は、このワーク支持体102b上に垂直に立った状態で設置される。ワーク移送部102cは、駆動源としてのサーボモータを有しており、そのサーボモータが発する動力によって作動し、ワーク支持体102bを移送する。なお、前記X軸方向は、本発明の機械軸方向の概念に含まれるものであり、ワーク支持体102bは、本発明の支持体の概念に含まれるものであり、ワーク移送部102cは、本発明の移送部の概念に含まれるものである。
コラム104は、前記ベース102aの設置場所から水平方向でかつ前記X軸と直交する方向に離間した位置に立設されており、鉛直方向に延びている。
工具鉛直移送装置106は、コラム104に設けられており、ワーク100を切削加工するための工具105を鉛直方向に延びるY軸方向に移送するための装置である。この工具鉛直移送装置106は、Y軸方向に移動可能となるようにコラム104に取り付けられる鉛直支持体106aと、コラム104に設けられ、鉛直支持体106aをコラム104に沿ってY軸方向に移送する鉛直移送部106b(図2参照)とを有する。鉛直支持体106aは、工具第1水平移送装置108を支持しており、この工具第1水平移送装置108は、後述するように工具第2水平移送装置110及び主軸ヘッド112を介して工具105を支持するため、鉛直支持体106aは間接的に工具105を支持する。鉛直移送部106bは、駆動源としてのサーボモータを有しており、そのサーボモータが発する動力によって作動し、鉛直支持体106aを移送する。なお、前記Y軸方向は、本発明の機械軸方向の概念に含まれるものであり、鉛直支持体106aは、本発明の支持体の概念に含まれるものであり、鉛直移送部106bは、本発明の移送部の概念に含まれるものである。
工具第1水平移送装置108は、鉛直支持体106aに設けられており、工具105を前記X軸と前記Y軸の両方に対して垂直に延びるW軸方向に移送するための装置である。この工具第1水平移送装置108は、W軸方向に移動可能となるように鉛直支持体106aに設けられる第1水平支持体108aと、鉛直支持体106aに設けられ、第1水平支持体108aをW軸方向に移送する第1水平移送部108b(図2参照)とを有する。第1水平支持体108aは、工具第2水平移送装置110を支持しており、この工具第2水平移送装置110は、後述するように主軸ヘッド112を介して工具105を支持するため、第1水平支持体108aは間接的に工具105を支持する。第1水平移送部108bは、駆動源としてのサーボモータを有しており、そのサーボモータが発する動力によって作動し、第1水平支持体108aを移送する。なお、前記W軸方向は、本発明の機械軸方向の概念に含まれるものであり、第1水平支持体108aは、本発明の支持体の概念に含まれるものであり、第1水平移送部108bは、本発明の移送部の概念に含まれるものである。
工具第2水平移送装置110は、第1水平支持体108aに設けられており、工具105を前記W軸と平行なZ軸方向に移送するための装置である。この工具第2水平移送装置110は、Z軸方向に移動可能となるように第1水平支持体108aに設けられる第2水平支持体110aと、第1水平支持体108aに設けられ、第2水平支持体110aをZ軸方向に移送する第2水平移送部110b(図2参照)とを有する。第2水平支持体110aは、主軸ヘッド112を支持しており、その主軸ヘッド112を介して工具105を支持する。第2水平移送部110bは、駆動源としてのサーボモータを有しており、そのサーボモータが発する動力によって作動し、第2水平支持体110aを移送する。なお、前記Z軸方向は、本発明の機械軸方向の概念に含まれるものであり、第2水平支持体110aは、本発明の支持体の概念に含まれるものであり、第2水平移送部110bは、本発明の移送部の概念に含まれるものである。
主軸ヘッド112は、その回転軸が前記W軸及び前記Z軸と平行となるように第2水平支持体110aに設けられている。この主軸ヘッド112は、工具105を保持してその軸回りに工具105を回転させる。工具105は、主軸ヘッド112によって回転させられた状態でワーク100に接触させられることによりそのワーク100を切削加工する。
制御盤114は、前記各移送部102c,106b,108b,110bの駆動制御や、主軸ヘッド112の駆動制御、その他、工作機械の各部の制御を行うための機能を有する。この制御盤114は、前記各移送部102c,106b,108b,110b及び主軸ヘッド112の駆動源と電気的に接続されている。
また、制御盤114は、特別指令入力装置122(図2参照)を備えている。この特別指令入力装置122は、ワーク100の加工時におけるワーク100及び工具105の通常の移送とは別にそれらのワーク100及び工具105の速度変化(加速又は減速)を伴う動作を指示するための特別指令を外部から入力するための装置である。なお、以下、移送装置102,106,108,110による移送の対象であるワーク100又は工具105を対象物という。
特別指令入力装置122は、停止指令入力装置124と、再始動指令入力装置126と、オーバーライド装置128とを含む。
停止指令入力装置124は、対象物の移動を緊急に減速させて停止させるための緊急停止指令を入力するためのものである。緊急停止指令は、本発明の特別指令の概念に含まれる。この停止指令入力装置124は、制御盤114に設けられた緊急停止ボタン124aと、その緊急停止ボタン124aが押されることに応じて緊急停止信号を後述の加減速要求監視部10へ発信する停止信号発信部124bとを有する。なお、本実施形態では、緊急停止ボタン124aを押すことが緊急停止指令の入力に相当する。
再始動指令入力装置126は、移動停止した移動対象物の移動を再開させて加速させるための再始動指令を入力するためのものである。再始動指令は、本発明の特別指令の概念に含まれる。この再始動指令入力装置126は、制御盤114に設けられた再始動ボタン126aと、その再始動ボタン126aが押されることに応じて再始動信号を後述の加減速要求監視部10へ発信する再始動信号発信部126bとを有する。なお、本実施形態では、再始動ボタン126aを押すことが再始動指令の入力に相当する。
オーバーライド装置128は、対象物の移動速度を上昇させる指示とその移動速度の上昇率である加速率の情報を含む加速指令又は対象物の移動速度を低下させる指示とその移動速度の低下率である減速率の情報を含む減速指令を入力するためのものである。なお、加速指令及び減速指令は、本発明の特別指令の概念に含まれる。
オーバーライド装置128は、制御盤114に設けられたオーバーライドダイヤル128aと、そのオーバーライドダイヤル128aの操作方向及び操作量に応じた速度変更信号を後述の加減速要求監視部10へ発信する速度変更信号発信部128bとを有する。
オーバーライドダイヤル128aは、加速指令又は減速指令を入力するときに操作される操作部である。オーバーライドダイヤル128aは、その軸回りに回動可能となるように制御盤114に設けられている。オーバーライドダイヤル128aをいずれかの方向に回動させることによって、オーバーライド装置128に加速指令又は減速指令を入力することが可能である。本実施形態では、オーバーライドダイヤル128aを一方側へ回動させる操作が加速指令の入力に相当し、オーバーライドダイヤル128aを前記一方側に対して反対側である他方側へ回動させる操作が減速指令の入力に相当する。また、オーバーライドダイヤル128aの前記一方側への回動量が移動対象物の加速率と対応しており、オーバーライドダイヤル128aの前記他方側への回動量が移動対象物の減速率に対応している。
速度変更信号発信部128bは、オーバーライドダイヤル128aが前記一方側(加速側)へ回動されたことに応じて、その一方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数の情報を含む速度変更信号を加減速要求監視部10へ発信し、オーバーライドダイヤル128aが前記他方側(減速側)へ回動されたことに応じて、その他方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数の情報を含む速度変更信号を加減速要求監視部10へ発信する。前記一方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数が加速率に相当し、前記他方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数が減速率に相当する。オーバーライド係数は、1を基準としてオーバーライドダイヤル128aが加速側へ回動されることに応じて1から増加し、オーバーライドダイヤル128aが減速側へ回動されることに応じて1から減少する。
本実施形態による数値制御装置2は、以上のような構成を有する工作機械に設けられており、前記各移送装置102,106,108,110の数値制御を行う。次に、図1〜図3を参照して本実施形態の数値制御装置2の構成について具体的に説明する。
数値制御装置2は、図2に示すように、記憶部4と、メモリ5と、演算処理装置6とを有する。
記憶部4は、加工指令としてのNCプログラムを記憶している。NCプログラムは、ワーク100の加工時における工具105の移動軌跡及び移送速度を表す加工パスを示すものである。
メモリ5は、特別指令入力装置122に特別指令が入力される直前の時点でのオーバーライド係数や、前記速度変更信号に含まれるオーバーライド係数、また、後述する加工パス、指令パス及び各種機械軸パス等の情報を記憶する。
演算処理装置6は、記憶部4に記憶されたNCプログラムから加工パスを求めるとともに、その加工パスに基づく所定の設定サイクルタイム当たりの各支持体102b,106a,108a,110aの移送量の演算や、各移送部102c,106b,108b,110bの移送制御、特別指令入力装置122への特別指令の入力の監視等の各種処理を行う。この演算処理装置6は、機能ブロックとして、加減速要求監視部10と、演算部12と、移送制御部14とを有する。
加減速要求監視部10は、特別指令入力装置122に前記特別指令が入力されたか否かを監視する。
具体的には、加減速要求監視部10は、停止指令入力装置124に減速停止指令が入力されたか否か、すなわち停止指令入力装置124の緊急停止ボタン124aが押されたか否かを停止信号発信部124bから発信される緊急停止信号を検出することによって監視している。加減速要求監視部10は、停止指令入力装置124に減速停止指令が入力されたこと、すなわち停止信号発信部124bから緊急停止信号が発信されたことに応じて緊急停止要求を演算部12の後述する移送量導出部22へ出力する。
また、加減速要求監視部10は、再始動指令入力装置126に再始動指令が入力されたか否か、すなわち再始動指令入力装置126の再始動ボタン126aが押されたか否かを再始動信号発信部126bから発信される再始動信号を検出することによって監視している。加減速要求監視部10は、停止指令入力装置124に緊急停止指令が入力された後に再始動指令入力装置126に再始動指令が入力されたこと、すなわち停止信号発信部124bから緊急停止信号が発信された後に再始動信号発信部126bから再始動信号が発信されたことに応じて再始動要求を後述する移送量導出部22へ出力する。
また、加減速要求監視部10は、オーバーライド装置128に加速指令又は減速指令が入力されたか否か、すなわちオーバーライドダイヤル128aが回動されたか否かを速度変更信号発信部128bから発信される速度変更信号を検出することによって監視している。加減速要求監視部10は、速度変更信号発信部128bから発信される速度変更信号を受けてその速度変更信号に含まれるオーバーライド係数の情報を含む速度変更要求を後述する移送量導出部22へ出力する。
演算部12は、記憶部4に記憶されたNCプログラムに基づく加工パスの導出、基準機械軸パスの導出、基準機械軸パスの変換処理、変換後の機械軸パスの加減速処理、特別指令入力装置122への特別指令の入力の有無及びその特別指令の種類に応じた設定サイクルタイム当たりの各支持体102b,106a,108a,110aの対応する機械軸方向(X軸方向、Y軸方向、W軸方向、Z軸方向)への移送量の算出等を実行する。演算部12は、機能ブロックとして、処理後機械軸パス導出部20と、移送量導出部22とを有する。
処理後機械軸パス導出部20は、記憶部4に記憶されたNCプログラムに基づいて各種演算処理を行うことにより処理後機械軸パスを求める。この処理後機械軸パス導出部20は、図3に示すように、機能ブロックとして、基準機械軸パス導出部24と、パス変換部26と、加減速フィルタ28とを有する。
基準機械軸パス導出部24は、NCプログラムに基づいて、各支持体102b,106a,108a,110aを移送すべき各機械軸方向の位置を設定時刻tの関数として表す基準機械軸パスを導出するものである。この基準機械軸パス導出部24は、機能ブロックとして、プログラム読取部30と、曲面補間部32と、指令パス演算部34と、加減速演算部36と、時刻調整部38とを有している。
プログラム読取部30は、記憶部4に記憶されたNCプログラムから加工パス(ツールパス)を読み取る。加工パスは、ワーク100の加工時に工具105が移動する軌跡及びその工具105の速度を表すものである。プログラム読取部30によって読み取られた加工パスは、メモリ5に記憶される。
曲面補間部32は、加工パスを必要に応じて滑らかなパスとなるように補間演算を行う。この曲面補間部32によって加工パスの補間演算が行われた場合には、その補間演算後の加工パスがメモリ5に記憶される。
指令パス演算部34は、メモリ5に記憶された加工パスから各機械軸方向毎の移動成分である指令パスを算出する。この算出された各機械軸方向毎の指令パスは、メモリ5に記憶される。
加減速演算部36は、メモリ5に記憶された各機械軸方向毎の指令パスについて各機械軸方向毎の加減速条件、すなわち各機械軸方向毎の許容加速度や許容ジャークに従った加減速計算を行い、前記設定時刻tの関数として各機械軸方向毎の機械軸パスを算出する。この算出された各機械軸方向毎の機械軸パスは、調整前機械軸パスとしてメモリ5に記憶される。
時刻調整部38は、メモリ5に記憶された調整前機械軸パスについて時刻調整のための演算を行い、基準機械軸パスを算出する。この算出された基準機械軸パスは、メモリ5に記憶される。
パス変換部26は、基準機械軸パス導出部24の加減速演算部36によって算出された各機械軸方向についての基準機械軸パスに特定の変換処理を行うことによって各機械軸方向についての変換後機械軸パスを導出する。このパス変換部26が行う前記特定の変換処理には、加減速フィルタ28による後述の加減速処理によって生じる誤差を予め補正しておくための演算処理が含まれる。この誤差補正のための演算処理としては、各機械軸方向についての基準機械軸パスの後述するブロックの各終点のうち変換後機械軸パスとの誤差が補正境界値以下である点については、基準機械軸パスに対して加減速フィルタ28による後述の加減速処理と同じ処理である変換部加減速処理を行った場合に得られる機械軸パスと基準機械軸パスとの誤差に相当する補正量を各機械軸方向毎に算出し、その算出した各機械軸方向毎の補正量で前記誤差を相殺する方向(打ち消す方向)に各機械軸方向についての基準機械軸パスを補正する演算処理が行われる。また、前記誤差補正のための演算処理として、パス変換部26が行う前記特定の変換処理には、各機械軸方向についての基準機械軸パスの後述するブロックの各終点のうち変換後機械軸パスとの誤差が補正境界値を超えている点については、その点の前後の直近の2つの指令点についての補正量から比例配分によって当該点についての補正量を算出し、その算出した補正量で上記と同様に基準機械軸パスを補正する演算処理が行われる。
基準機械軸パスから得られる工具105の軌跡が、例えば、図4に示すようなXY平面上の円を示すものである場合において、仮に、後述の加減速処理と同じ変換部加減速処理をこの基準機械軸パスに対して行った場合には、その処理後の機械軸パスによって示される工具105の軌跡は、図5に示すように基準機械軸パスによって示される軌跡の径方向内側にずれる。パス変換部26は、このようなずれを発生させる処理後の機械軸パスと基準機械軸パスとの誤差に相当する補正量を各機械軸方向(X軸、Y軸)毎に算出してその算出した各機械軸方向毎の補正量で当該誤差を相殺する方向に各機械軸方向(X軸、Y軸)についての基準機械軸パスをそれぞれ補正する。これにより、パス変換部26は、例えば図5に示すような工具105の軌跡が得られる変換後機械軸パスを算出する。すなわち、図5に示す形態では、変換後機械軸パスから得られる工具105の軌跡は、結果的に、基準機械軸パスから得られる工具105の軌跡を径方向外側に補正した軌跡となる。
加減速フィルタ28は、パス変換部26によって導出された各機械軸方向についての変換後機械軸パスに対して、当該変換後機械軸パスから得られる各支持体102b,106a,108a,110aの移送速度の変化を緩和するための加減速処理を行うものである。当該加減速フィルタ28による具体的な加減速処理の内容は後述する。
移送量導出部22は、加減速フィルタ28によって加減速処理された後の機械軸パス(以下、場合によって処理後機械軸パスという)から各機械軸方向における所定の設定サイクルタイム当たりの各支持体102b,106a,108a,110aの移送量を導出する。前記設定サイクルタイムは、基準時刻が基準サイクルタイムだけ進む間に、前記設定時刻が進む時間長さとして設定されるものである。なお、基準サイクルタイムは、移送量導出部22が移送量を導出する際の補間計算周期に相当する時間長さである。そして、移送量導出部22は、前記移送量を算出する際、特別指令入力装置122への特別指令の入力の有無及びその特別指令の種類に応じた設定サイクルタイム当たりの各支持体102b,106a,108a,110aの移送量を処理後機械軸パスから算出する。具体的には、移送量導出部22は、特別指令入力装置122に特別指令の入力がない場合には、処理後機械軸パスからその時の設定サイクルタイム当たりの各支持体102b,106a,108a,110aの対応する機械軸方向への移送量を算出する一方、特別指令入力装置122に特別指令が入力された場合には、それに応じて、設定サイクルタイムの長さをその特別指令入力装置122への特別指令の入力直前の状態における長さからその特別指令が指示する対象物の速度変化に応じた長さに変化させ、その変化させた後の設定サイクルタイム当たりの各支持体102b,106a,108a,110aの対応する機械軸方向への移送量を前記処理後機械軸パスから算出する。
移送制御部14は、移送量導出部22によって導出された各支持体102b,106a,108a,110aの移送量に応じて各移送部102c,106b,108b,110bに対応する支持体102b,106a,108a,110aを対応する機械軸方向において移送させる。具体的には、移送制御部14は、移送量導出部22によって導出された各機械軸方向毎の移送量を指示するサーボ指令パルスを作成し、その作成した各機械軸方向毎のサーボ指令パルスを対応する移送部102c,106b,108b,110bへ送ることによって、各移送部102c,106b,108b,110bに、送ったサーボ指令パルスが示す設定サイクルタイム当たりの移送量の分、基準サイクルタイム当たりに対応する支持体102b,106a,108a,110aを移送させる制御を行う。
次に、本実施形態の数値制御装置2による数値制御のプロセスについて説明する。なお、以降の説明を簡単にするために、前記設定時刻及び前記設定サイクルタイムの1単位を、前記基準サイクルタイムの時間長さに等しいものとして説明する。
まず、演算部12の処理後機械軸パス導出部20が、記憶部4に記憶されているNCプログラムに基づいて、処理後機械軸パスを導出する(図6のステップS2)。この導出の具体的なプロセスは、図7のフローチャートに示されている。
この処理後機械軸パスの導出の際、まず、プログラム読取部30が記憶部4に記憶されているNCプログラムを読み取り、その読み取ったNCプログラムから加工パスを導出する(図7のステップS22)。この導出された加工パスは、メモリ5に記憶される。
次に、曲面補間部32が、メモリ5に記憶された加工パスが示す軌跡を滑らかにする必要がある場合には、当該加工パスの曲面補間を行う(ステップS24)。曲面補間部32は、曲面補間した後の加工パスをメモリ5に記憶させる。
次に、指令パス演算部34が、メモリ5に記憶されている加工パスを逆運動学関係式を用いて各機械軸方向毎の移動成分に変換することにより、その各機械軸方向毎の移動成分を表す指令パスを算出する(ステップS26)。指令パス演算部34は、算出した各機械軸方向毎の指令パスをメモリ5に記憶させる。
次に、加減速演算部36が、メモリ5に記憶されている指令パスについて各機械軸方向毎の許容加速度や許容ジャークに従った加減速演算を行い、それによって、各機械軸方向についての調整前機械軸パスを算出する(ステップS28)。加減速演算部36は、算出した各機械軸方向についての調整前機械軸パスをメモリ5に記憶させる。
この後、時刻調整部38が、メモリ5に記憶されている各機械軸方向についての調整前機械軸パスを時刻調整して各機械軸方向についての基準機械軸パスを算出する(ステップS29)。具体的には、仮に、調整前機械軸パスのうち対象物の移送開始直後の加速期間に対応する部分及び対象物の移送停止直前の減速期間に対応する部分についてそのまま後述の変換部加減速処理を行った場合には、それらの部分における設定時刻にずれが生じる。このため、時刻調整部38は、この設定時刻のずれを解消するための時刻調整を後述の変換部加減速処理の前に予め行って基準機械軸パスを導出する。本実施形態では、変換部加減速処理において後述のように直線型の分配関数f(T)を用いるため、時刻調整部38は、この直線型の分配関数f(T)に応じた次式を用いて調整前機械軸パスの時刻調整を行う。なお、次式は、時刻調整に用いる関数の一般式を直線型の分配形式に対応する形で表したものである。
この式において、tは、時刻調整前の設定時刻であり、tj(t)は、時刻調整後の時刻であり、Tjは、時刻調整を行う対象の調整前機械軸パスに対応する機械軸方向の時定数である。また、t=0が、対象物が移送開始される始点の時刻であり、t=teが、対象物が移送停止される終点の時刻である。
詳しくは、時刻調整部38は、当該時刻調整の際、設定時刻t=0からt=teに亘る調整前機械軸パスを、所定の1分割ブロック所要時間を越えない時間単位の時刻配列tt[i]≦t≦tt[i+1] (i=0,1,2,・・・,n−1,tt[0]=0,tt[n]=te)に応じて細分割し、各時刻tt[i]における機械軸位置PAiを求め、前記時刻配列を時刻調整関数t[i]=tj(tt[i])に従って調整する。そして、時刻調整部38は、時刻調整後の各時刻t[i]における基準機械軸パスの位置が前記機械軸位置PAiとなる複数の直線のブロックPAi(t) (t[i]≦t≦t[i+1]) (i=0,1,2,・・・,n−1,t[0]=Tj/2,t[n]=te−Tj/2)を求める。この複数の直線のブロックPAi(t)が、基準機械軸パスPA(t)を構成するものである。すなわち、時刻調整部38は、時刻調整処理において、調整前機械軸パスを時刻調整するとともに細分割した複数の直線ブロックを求めることによって、その複数の直線ブロックからなる基準機械軸パスを求める。時刻調整部38は、以上のようにして求めた各機械軸方向についての複数のブロックPAi(t)からなる基準機械軸パスPA(t)をメモリ5に記憶させる。
次に、パス変換部26が、メモリ5に記憶された各機械軸方向についての基準機械軸パスに変換処理を行うことによって各機械軸方向についての変換後機械軸パスを導出する(ステップS30)。具体的には、パス変換部26は、変換処理として、図8に示すフローチャートに沿った演算処理を行う。以下、この演算処理について具体的に説明する。
まず、パス変換部26は、以下のような変換部加減速処理を、上記のように導出されてメモリ5に記憶された各機械軸方向についての基準機械軸パスに対してそれぞれ行う(ステップS42)。なお、説明を簡略にするために、以下、1つの機械軸方向の基準機械軸パスの変換部加減速処理に絞って説明するが、他の全ての機械軸方向の基準機械軸パスについてもその各機械軸方向毎に同様の変換部加減速処理が行われる。
パス変換部26は、基準機械軸パスのブロックPAi(t)毎に加減速処理を行う。詳しくは、パス変換部26は、基準機械軸パスの所定のブロックPAi(t)内におけるある設定時刻をtとし、変換部加減速処理を行う対象の基準機械軸パスの機械軸方向について設定された時定数Tjの半分の値をaとし、次式(4)を満たす分配関数をf(T)とし、前記所定のブロックPAi(t)に対応する変換部加減速処理後の機械軸パスのブロックをQAi(t)とし、t−aからt+aに亘る分配対象区間内の各設定時刻Tにおける前記所定のブロックPAi(t)の速度関数をPAi’(T)とした場合に、変換部加減速処理後のブロックQAi(t)の設定時刻tによる一次微分関数である速度関数QAi’(t)を次式(5)に基づいて算出する。
この変換部加減速処理では、上記数式(4),(5)に示されているように、設定時刻tの前後に亘る分配対象区間[t−a,t+a]内の各設定時刻Tにおける速度関数PAi’(T)をT−aからT+aに亘る区間内に分配関数f(T)に従って分配したときの設定時刻tへの分配値PAi’(T)・f(t−T)を、t−aからt+aまでの区間に亘って積分している。
なお、上記の演算処理においてパス変換部26が用いる分配関数f(T)は、加減速フィルタ28が加減速処理を行うときに用いる分配関数と同じものであり、本実施形態では、パス変換部26及び加減速フィルタ28が共に直線型の分配形式(速度関数を分配区間内全体に亘って均等に分配する形式)で分配を行うため、この分配形式に対応する分配関数f(T)は、次式で表される直線型の分配関数である。
上記式(5)によって求められる速度関数QAi’(t)は、その速度関数に対応するブロックPAi(t)の区間幅t[i+1]−t[i]が時定数Tj=2aよりも大きい場合と小さい場合とで異なった形で表される。その各場合における速度関数QAi’(t)は、以下の通りである。
ブロックPAi(t)の区間幅t[i+1]−t[i]が時定数Tj=2aよりも大きい場合には、t[i]−a<t[i]<t[i]+a<t[i+1]−a<t[i+1]<t[i+1]+aの関係が成り立つ(図9参照)。この場合におけるブロックPAi(t)の速度関数PAi’(T)は、図9中の太線で表される。この場合において、算出される速度関数QAi’(t)は、下記のt[i]−aからt[i]+aまでの区間の速度関数qAi11’(t)と、t[i]+aからt[i+1]−aまでの区間の速度関数qAi12’(t)と、t[i+1]−aからt[i+1]+aまでの区間の速度関数qAi13’(t)とに細分化される。
t[i]−aからt[i]+aまでの区間の速度関数qAi11’(t)は、次式(7)で表される。
t[i]+aからt[i+1]−aまでの区間の速度関数qAi12’(t)は、次式(8)で表される。
t[i+1]−aからt[i+1]+aまでの区間の関数qAi13’(t)は、次式(9)で表される。
次に、ブロックPAi(t)の区間幅t[i+1]−t[i]が時定数Tj=2aよりも小さい場合には、その区間幅t[i+1]−t[i]が時定数Tj=2aよりも小さく且つ時定数Tjの半分の値aよりも大きい場合と、区間幅t[i+1]−t[i]が時定数Tjの半分の値aよりも小さい場合とに分類される。図10は、ブロックPAi(t)の区間幅t[i+1]−t[i]が時定数Tj=2aよりも小さく且つ時定数Tjの半分の値aよりも大きい場合を示しており、この場合には、t[i]−a<t[i]<t[i+1]−a<t[i]+a<t[i+1]<t[i+1]+aの関係が成り立つ。また、図11は、ブロックPAi(t)の区間幅t[i+1]−t[i]が時定数Tj=2aの半分の値aよりも小さい場合を示しており、この場合には、t[i]−a<t[i+1]−a<t[i]<t[i+1]<t[i]+a<t[i+1]+aの関係が成り立つ。これらの場合におけるブロックPAi(t)の速度関数PAi’(T)は、図10及び図11中の太線で表される。そして、これらの場合において、算出される速度関数QAi’(t)は、下記のt[i]−aからt[i+1]−aまでの区間の速度関数qAi21’(t)と、t[i+1]−aからt[i]+aまでの区間の速度関数qAi22’(t)と、t[i]+aからt[i+1]+aまでの区間の速度関数qAi23’(t)とに細分化される。
t[i]−aからt[i+1]−aまでの区間の関数qAi21’(t)は、次式(10)で表される。
t[i+1]−aからt[i]+aまでの区間の関数qAi22’(t)は、次式(11)で表される。
t[i]+aからt[i+1]+aまでの区間の関数qAi23’(t)は、次式(12)で表される。
そして、パス変換部26は、以上のように算出した各ブロック毎の速度関数QAi’(t)を積算することによって全体の速度関数QA’(t)を算出し、その算出した全体の速度関数QA’(t)を積分することによって変換部加減速処理後の機械軸パスQA(t)を算出する。
その後、パス変換部26は、算出した各機械軸方向についての変換部加減速処理後の機械軸パスQA(t)から対応する機械軸方向についての基準機械軸パスPA(t)を減じることによって、各機械軸方向についての変換部加減速処理後の機械軸パスQA(t)と時刻調整後の基準機械軸パスとの誤差である基準誤差を算出する(ステップS44)。このとき、パス変換部26は、変換部加減速処理後の機械軸パスQA(t)の各ブロックQAi(t)の終点毎にその終点の値から対応する時刻調整後の基準機械軸パスのブロックPAi(t)の終点の値を減算することによって基準誤差を算出する。具体的には、パス変換部26は、各ブロックQAi(t)の終点毎の基準誤差e[i]を次式(13)によって算出する。
e[i]=QA(tt[i])−PA(t[i])・・・(13)
パス変換部26は、以上のように前記各ブロックQAi(t)の終点毎の基準誤差e[i]を算出した後、各ブロックQAi(t)の各終点を補正境界値に基づいて第1補正対象点と第2補正対象点とに分類する(ステップS46)。第2補正対象点としては、コーナー部(例えば、機械軸パスが示す軌跡が多角形状の軌跡を示すものである場合には、その多角形の頂点)、機械軸パスの最初の始点直後の特定区間(移送開始直後の一定区間)に含まれるブロックの終点、機械軸パスの最後の終点の直前の特定区間(移送停止直前の一定区間)に含まれるブロックの終点、速度変化が急激で和らげる必要のある特定区間に含まれるブロックの終点などがある。また、第1補正対象点は、第2補正対象点以外の終点であり、機械軸パスのうち滑らかな移送を指示する区間に含まれるブロックの終点である。補正境界値は、メモリ5に設定値として記憶されており、パス変換部26は、各ブロックQAi(t)の終点のうち、基準誤差e[i]が当該補正境界値以下である点を第1補正対象点とし、基準誤差e[i]が当該補正境界値を超えている点を第2補正対象点とする。
そして、パス変換部26は、第1補正対象点と第2補正対象点とについてそれぞれ補正量を算出する(ステップS48)。具体的には、パス変換部26は、第1補正対象点については、その点の基準誤差e[i]に等しい値を当該第1補正対象点についての補正量h1[i]とする。また、パス変換部26は、第2補正対象点については、その第2補正対象点とその第2補正対象点の前の直近の第1補正対象点との間の距離Lbと、その第2補正対象点とその第2補正対象点の後の直近の第1補正対象点との間の距離Laとを求め、次式(14)により比例配分することによって当該第2補正対象点についての補正量h2[i]を求める。なお、次式(14)において、eb[i]は、前記第2補正対象点の前の直近の第1補正対象点についての基準誤差であり、ea[i]は、前記第2補正対象点の後の直近の第1補正対象点についての基準誤差である。
h2[i]=(eb[i]×La+ea[i]×Lb)/(Lb+La)・・・(14)
そして、パス変換部26は、上記のように求めた各ブロックQAi(t)の終点毎の補正量h1[i],h2[i]をメモリ5に記憶させる。
この後、パス変換部26は、メモリ5に記憶させた各ブロックQAi(t)の終点毎の補正量h1[i],h2[i]で基準機械軸パスPA(t)を補正して変換後機械軸パスPB(t)を算出する。具体的には、パス変換部26は、基準機械軸パスPA(t)の各ブロックPAi(t)の終点のうち第1補正対象点については補正量h1[i]で補正し、各ブロックPAi(t)の終点のうち第2補正対象点については補正量h2[i]で補正する(ステップS50)。詳しくは、パス変換部26は、第1補正対象点については対応する基準機械軸パスのブロックPAi(t)の終点の値からその点について設定された補正量h1[i]を減じることによって当該第1補正対象点の補正後の値を求め、第2補正対象点については対応する基準機械軸パスのブロックPAi(t)の終点の値からその点について設定された補正量h2[i]を減じることによって当該第2補正対象点の補正後の値を求める。パス変換部26は、このように補正して得た各ブロックからなる機械軸パスを変換後機械軸パスとしてメモリ5に記憶させる。具体的には、パス変換部26は、補正して得た各ブロックPBi(t) (t[i]≦t≦t[i+1]) (i=0,1,2,・・・,n−1)からなる変換後機械軸パスPB(t)をメモリ5に記憶させる。
次に、加減速フィルタ28が、メモリ5に記憶された変換後機械軸パスを加減速処理することによって処理後機械軸パスを導出する(図7のステップS32)。この加減速フィルタ28による加減速処理は、パス変換部26による加減速処理と全く同じである。すなわち、加減速フィルタ28は、上記式(5)のうちの速度関数PAi’(T)を変換後機械軸パスPB(t)の各ブロックPBi(t)の速度関数PBi’(t)に置き換えた式を用いて処理後機械軸パスQB(t)の各ブロックQBi(t)の速度関数QBi’(t)を算出し、その算出した各ブロックの速度関数QBi’(t)を上記と同様に積算して全体の速度関数QB’(t)を算出し、その算出した全体の速度関数QB’(t)を積分することによって処理後機械軸パスQB(t)を求める。具体的には、加減速フィルタ28は、分配関数f(T)としては、上記式(4)を満たすものを用い、速度関数QBi’(t)を次式(15)に基づいて算出する。
この加減速フィルタ28による加減速処理が行われることによって、変換後機械軸パスが示す各支持体102b,106a,108a,110aの移送速度の変化を緩和するような処理後機械軸パスが導出される。ところで、この加減速処理により、処理後機械軸パスは、変換後機械軸パスから変化してその変換後機械軸パスに対して誤差を生じるが、上記のパス変換部26による変換処理によって、変換後機械軸パスは、当該加減速処理によって生じる誤差を予め相殺する方向に補正されているため、当該処理後機械軸パスは、基準機械軸パスに対して誤差を生じない。加減速フィルタ28によって算出された処理後機械軸パスはメモリ5に記憶される。
この加減速フィルタ28による加減速処理は、機械ショックの要因となる異常データの部分をその部分が示す移送速度の変化が緩和するように補正し得る従来のパルス補間後の加減速処理(補間後加減速処理)と実質的に同等の処理を変換後機械軸パスに対して行うものである。
具体的には、従来のパルス補間後の加減速処理では、機械軸パスをp(t)とし、サイクルタイムをΔt秒とし、時定数をτ=n・Δt(秒)とし、起動後の最初の0番目のサイクル、すなわち時刻0から時刻Δtまでの間のサイクルをサイクル(0)とし、第i番目のサイクル、すなわち時刻i・Δtから時刻(i+1)・Δtまでのサイクルをサイクル(i)とすると、サイクル(i)における移送量を示す移送パルスΔp(i)は、次式(16)で表せる。
Δp(i)=p((i+1)・Δt)−p(i・Δt)・・・(16)
直線型の分配関数を用いた補間後加減速処理では、サイクル(i)の移送パルスΔp(i)をサイクル(i)からサイクル(i+n−1)までの間の時定数τに等しい長さを有する分配区間内の各サイクルに(p((i+1)・Δt)−p(i・Δt))/nずつ均等に分配するという分配方法に従って全てのサイクルの移送パルスを分配し、その後、各サイクル毎に移送パルスの分配値を積算することによって、補間後加減速処理後の移送パルスを算出する。このことから、補間後加減速処理後の第j番目のサイクル(j)の移送パルスΔq[j]は、サイクル(j−n+1)からサイクル(j)までの各サイクルの移送パルスΔp[i](i=j−n+1,j−n+2,・・・・,j−2,j−1,j)を1/n倍した各分配値を積算することによって求められる。具体的には、次式(17)によって補間後加減速処理後の移送パルスΔq[j]を算出する。
ところで、この補間後加減速処理後の移送パルスΔq[j]は、サイクル(j)におけるサイクルタイムΔt秒の間の移送量に相当するため、上記式(17)の両辺をΔtで除することによって、サイクル(j)における平均速度が求められる。すなわち、次式(18)によってサイクル(j)における平均速度が求められる。
ここで、時定数τ=n・Δtであることから1/n=1/(τ・Δt)と表すことができ、j・Δtを時刻t、i・Δtを時刻Tとすると、上記式(18)を式変形して次式(19)のように表せる。
この数式(19)は、サイクル(i)における平均速度(p(T+Δt)−p(T))/Δtをτ・Δtの区間幅を有する分配区間内に均等に分配したときの分配値を、i=j−n+1のサイクルからi=jのサイクルまでの各サイクルの分、積算することを意味している。そして、サイクル(j)における平均速度は、時刻tにおける平均速度Δq(t)/Δtに等しいので、次式(20)が成り立つ。
ここで、nを無限大にすると、Δtはdtと表すことができ、Δq(t)/Δtはq’(t)と表すことができ、(p(T+Δt)−p(T))/Δtはp’(T)と表すことができる。また、上記したようにj・Δt=tであり、(j−n+1)・Δt=j・Δt−n・Δt+Δt=t−τ+Δtとなる。nを無限大にするときには、Δtは0に近似されるので、t−τ+Δtは、t−τとなる。これらのことから、上記式(20)に基づいて次式(21)を導くことができる。
上記実施形態では、時定数の半分の値をaと規定しているため、上記式(20)における時定数τを2aに置き換えるとともに、直線型の分配関数f(T)=1/2aであることから、上記式(21)は、以下の式(22)のように表される。
この式(22)から、変換後機械軸パスを従来の補間後加減速処理に直接的に対応するように加減速処理しようとすれば、加減速処理後の所定のブロックQAi(t)の速度関数Q A i’(t)を次式(23)に従って求めることが考えられる。
また、従来の補間後加減速処理では、各サイクルの移送パルスをそのサイクルの終点に対応する時刻以降で時定数に等しい区間幅を有する分配区間内に分配するため、そのような分配方式に直接的に対応する分配関数f(T)は、以下の式(24)を満たすものとなる。
これらの式(24),(23)によって表される加減速処理の内容は、分配区間及び速度関数の分配値の積分範囲が上記加減速フィルタ28による加減速処理における分配区間及び積分範囲に対して時定数の半分の値aだけずれているだけで、上記加減速フィルタ28による加減速処理の内容と実質的に同じである。従って、上記加減速フィルタ28による加減速処理は、従来の補間後加減速処理と実質的に同等の効果、すなわち、異常データ部分の移送速度の変化を緩和するという効果をもたらす。
次に、移送量導出部22が、所定の設定時刻Tsを0に初期セットするとともに、所定の設定サイクルタイムΔTを1に初期セットする(図6のステップS6)。
次に、移送量導出部22は、設定時刻Tsを基準時刻tに対する関数として表した設定時刻関数T(t)を基準時刻tで微分して得られる値g(t)をさらに基準時刻tで微分した値dgを0に初期セットする(ステップS8)。
次に、移送量導出部22は、メモリ5に記憶されている各機械軸方向毎の前記処理後機械軸パスQB(t)のデータに基づいて、設定サイクルタイムΔT当たりの各機械軸方向毎の移送量dP[axis]を次式(25)によってそれぞれ算出する(ステップS10)。
dP[axis]=QB(T+ΔT)[axis]−QB(T)[axis]・・・(25)
次に、移送量導出部22は、上記のように算出した各機械軸方向毎の移送量dP[axis]から各機械軸方向の合成方向における対象物の現在の移送速度V(以下、合成速度Vという)を次式(26)によって算出する(ステップS11)。
V=|dP[ ]|・・・(26)
なお、この式(26)において、|dP[ ]|は、設定サイクルタイムΔT当たりの各機械軸方向毎の移送量を合成した合成移送量であり、移送量導出部22が前記各機械軸方向毎の移送量dP[axis]を合成することによって求める。
次に、移送制御部14が、移送量導出部22によって導出された各機械軸方向毎の移送量dP[axis]に応じて各移送部102c,106b,108b,110bを駆動する(ステップS12)。この際、移送制御部14は、基準サイクルタイム(本実施形態では1mmsec)当たりに各支持体102b,106a,108a,110aを前記移送量dP[axis]だけ移送することを指示するためのサーボ指令パルスを各機械軸方向毎に作成し、その作成した各機械軸方向毎のサーボ指令パルスを各移送部102c,106b,108b,110bの対応するものへ出力する。これにより、各移送部102c,106b,108b,110bのサーボモータは、移送制御部14からのサーボ指令パルスに従って、基準サイクルタイム当たりに前記移送量dP[axis]だけ支持体102b,106a,108a,110aの対応するものを対応する機械軸方向に移送する。
次に、移送量導出部22は、メモリ5に記憶された処理後機械軸パスQB(t)の全期間の処理が終了したか否かを判断する(ステップS14)。具体的には、メモリ5に記憶された処理後機械軸パスQB(t)のデータは、上記のように設定サイクルタイムΔT毎に順番に移送量dP[axis]を求めるための演算処理が行われるため、当該ステップS14では、その演算処理がメモリ5に記憶された処理後機械軸パスQB(t)の全期間について終了したかが判断される。ここで、移送量導出部22がメモリ5に記憶された処理後機械軸パスQB(t)の全期間の処理を終了したと判断した場合には、数値制御装置2による数値制御のプロセスが終了する。
なお、上記のような演算処理と並行して、加減速要求監視部10は、図12に示すようなプロセスで特別指令入力装置122に特別指令が入力されたか否かの監視を行っている。
具体的には、加減速要求監視部10は、まず、工作機械が連続運転中であるか否かを判断する(ステップS122)。ここで、加減速要求監視部10は、工作機械が連続運転中であると判断した場合には、次に、緊急停止ボタン124aが押されたか否かを判断する(ステップS124)。
そして、加減速要求監視部10は、停止信号発信部124bから発信される緊急停止信号を検知して緊急停止ボタン124aが押されたと判断した場合には、緊急停止要求を発行し(ステップS126)、その後、前記ステップS122の処理を再度行う。一方、加減速要求監視部10は、緊急停止ボタン124aが押されていないと判断した場合には、次に、オーバーライドダイヤル128aが回動されたか否かを判断する(ステップS128)。
ここで、加減速要求監視部10は、速度変更信号発信部128bから発信される速度変更信号を検知してオーバーライドダイヤル128aが回動されたと判断した場合には、そのオーバーライドダイヤル128aの回動方向及び回動量に応じたオーバーライド係数kの情報を含む速度変更要求を発行し(ステップS130)、その後、前記ステップS122の処理を再度行う。また、加減速要求監視部10は、オーバーライドダイヤル128aが回動されていないと判断した場合には、速度変更要求を発行することなく、前記ステップS122の処理を再度行う。
また、加減速要求監視部10は、前記ステップS122の判断において工作機械が連続運転中ではないと判断した場合には、前記緊急停止要求により各移送部102c,106b,108b,110bによる各支持体102b,106a,108a,110aの移送が停止中であるか否かを判断する(ステップS132)。
加減速要求監視部10は、各支持体102b,106a,108a,110aの移送が停止中であると判断した場合には、次に、再始動ボタン126aが押されたか否かを判断する(ステップS134)。この際、加減速要求監視部10は、再始動信号発信部126bから発信される再始動信号を検知して再始動ボタン126aが押されたと判断した場合には、再始動要求を発行し(ステップS136)、その後、前記ステップS122の処理を再度行う。また、加減速要求監視部10は、再始動ボタン126aが押されていないと判断した場合には、再始動要求を発行することなく、前記ステップS122の処理を再度行う。
一方、移送量導出部22は、前記ステップS14の判断において、メモリ5に記憶された処理後機械軸パスQB(t)の全期間の処理が終了していないと判断した場合には、次に、緊急停止要求が加減速要求監視部10から出されているか否かを判断する(図6のステップS16)。ここで、移送量導出部22は、緊急停止要求が出されていると判断した場合には、図13に示す緊急停止プロセスを実行する。
具体的には、移送量導出部22は、まず、現時点での対象物の合成速度Vの値を一時的にメモリ5に記憶させ(ステップS52)、その後、減速停止期間timeと停止時サイクルタイム変動関数g(t)を算出する(ステップS54)。ここで、移送量導出部22は、減速停止期間timeの始期における停止時サイクルタイム変動関数g(t)の値gsが設定サイクルタイムΔTに等しく、減速停止期間timeの終期における停止時サイクルタイム変動関数g(t)の値geが0であり、減速停止期間timeの始期における合成速度が前記Vであるという条件を満たすような減速停止期間time及び停止時サイクルタイム変動関数g(t)を算出する。この減速停止期間time及び停止時サイクルタイム変動関数g(t)の算出プロセスは、図16に示されている。なお、この図16は、後述する再始動プロセスにおける再始動加速期間time及び再始動時サイクルタイム変動関数g(t)の算出と速度変更プロセスにおける速度変更期間time及び速度変更時サイクルタイム変動関数g(t)の算出にも共通して適用可能なプロセスを示している。すなわち、移送量導出部22は、特別指令入力装置122への特別指令の入力に伴って実施される対象物の速度変化を伴う動作において共通の算出プロセスでその速度変化を伴う動作に要する期間timeとその期間time内でのサイクルタイムの変動を表すサイクルタイム変動関数g(t)を算出する。
停止時サイクルタイム変動関数g(t)は、減速停止期間timeの始期(移送量導出部22が緊急停止要求を受けた時点)において対象物が一定速度で移動している場合には、例えば図17に示すような曲線で表され、減速停止期間timeの始期において対象物が加速中である場合には、例えば図18に示すような曲線で表され、減速停止期間timeの始期において対象物が減速中である場合には、例えば図19に示すような曲線で表される。
移送量導出部22は、減速停止期間time及び停止時サイクルタイム変動関数g(t)の算出にあたって、まず、停止時サイクルタイム変動関数g(t)の二次微分値jと、停止時サイクルタイム変動関数g(t)の一次微分の傾きαを求める(図16のステップS142)。この際、前記二次微分値jは、次式(27)で求められ、前記一次微分の傾きαは、次式(28)で求められる。
j=J/V・・・(27)
α=A/V・・・(28)
なお、Jは対象物の合成移動方向における許容ジャークであり、Aは対象物の合成移動方向における許容加速度である。これらJ及びAの値は、本実施形態のtime及びg(t)の算出プロセスのために設定されるパラメータであり、工作機械の機械特性に基づいて規定される加減速条件としての許容ジャーク及び許容加速度の半分程度の値に設定される。
次に、移送量導出部22は、停止時サイクルタイム変動関数g(t)の基準時刻tによる一次微分値dgのt=0の点での値が0以上であるか否かを判断する(ステップS144)。ここで、移送量導出部22は、このdgの値が0以上であると判断した場合には、停止時サイクルタイム変動関数g(t)で表される二次曲線の前半部の二次微分値j1を−jに設定する(ステップS146)。一方、移送量導出部22は、このdgの値が0よりも小さいと判断した場合には、前記二次微分値j1をjに設定する(ステップS148)。
次に、移送量導出部22は、減速停止期間timeにおける停止時サイクルタイム変動関数g(t)の始点に対する当該停止時サイクルタイム変動関数g(t)の二次曲線の前半部の頂点の相対位置(t0,E0)を以下の式(29)及び(30)によって仮算出するとともに、その二次曲線の前半部の頂点から当該二次曲線の後半部の終点までの範囲における停止時サイクルタイム変動関数g(t)の値の変化量Eを以下の式(31)によって仮算出する(ステップS150)。
t0=−dg/j1・・・(29)
E0=(dg/2)×t0・・・(30)
E=ge−gs−E0・・・(31)
次に、移送量導出部22は、前記停止時サイクルタイム変動関数g(t)の値の変化量Eが0以上であるか否かを判断する(ステップS152)。ここで、移送量導出部22は、前記変化量Eが0以上であると判断した場合には、停止時サイクルタイム変動関数g(t)の二次曲線の前半部の二次微分値j1をjに設定するとともに、停止時サイクルタイム変動関数g(t)の二次曲線の後半部の二次微分値j2を−jに設定する(ステップS154)。一方、移送量導出部22は、前記変化量Eが0よりも小さいと判断した場合には、前記二次曲線の前半部の二次微分値j1を−jに設定するとともに、前記二次曲線の後半部の二次微分値j2をjに設定し、さらに、前記g(t)の一次微分の傾きαを正負逆に設定する(ステップS156)。
次に、移送量導出部22は、停止時サイクルタイム変動関数g(t)の二次曲線の始点に対する当該二次曲線の前半部の頂点の相対位置(t0,E0)を上記式(29),(30)によって再算出するとともに、その二次曲線の前半部の頂点から後半部の終点までのg(t)の変化量Eを上記式(22)によって再算出する(ステップS158)。
次に、移送量導出部22は、停止時サイクルタイム変動関数g(t)の二次曲線の前半部の頂点のg(t)の値guと、当該二次曲線の始点から変曲点までにかかる時間t1と、当該二次曲線の変曲点から終点までにかかる時間t2と、当該二次曲線の始点から変曲点までの範囲におけるg(t)の変化量G1と、当該二次曲線の変曲点から終点までの範囲におけるg(t)の変化量G2と、当該二次曲線の始点から終点までの範囲におけるg(t)の変化量Gとをそれぞれ算出する(ステップS160)。この際、移送量導出部22は、前記guを以下の式(32)によって算出し、前記t1を以下の式(33)によって算出し、前記t2を以下の式(34)によって算出する。また、移送量導出部22は、前記G1を以下の式(35)によって算出し、前記G2を以下の式(36)によって算出し、前記Gを以下の式(37)によって算出する。
gu=gs+E0・・・(32)
t1=α/j1・・・(33)
t2=−α/j2・・・(34)
G1=(α/2)×t1・・・(35)
G2=(α/2)×t2・・・(36)
G=G1+G2・・・(37)
次に、移送量導出部22は、前記二次曲線の前半部の頂点から後半部の終点までの範囲におけるg(t)の変化量の絶対値|E|が前記二次曲線の始点から終点までの範囲におけるg(t)の変化量の絶対値|G|以上であるか否かを判断する(ステップS162)。ここで、前記|E|が前記|G|以上である場合は、図20に示すように前記二次曲線の前半の曲線部と後半の曲線部との間に直線部が介在している場合に相当するため、移送量導出部22は、その前半の曲線部の区間0≦t≦T1、直線部の区間T1<t<T2及び後半の曲線部の区間T2≦t≦timeの3つの区間のそれぞれにおける停止時サイクルタイム変動関数g(t)を個別に求める(ステップS164)。
具体的には、移送量導出部22は、0≦t≦T1の区間の停止時サイクルタイム変動関数g(t)を次式(38)で求める。
g(t)=gu+(j1/2)×(t−t0)2・・・(38)
また、移送量導出部22は、T1<t<T2の区間の停止時サイクルタイム変動関数g(t)を次式(39)で求める。
g(t)=gu+G1+α×(t−T1)・・・(39)
また、移送量導出部22は、T2≦t≦timeの区間の停止時サイクルタイム変動関数g(t)を次式(40)で求める。
g(t)=ge+(j2/2)×(t−time)2・・・(40)
なお、この場合において、前記T1は、前記二次曲線の始点から第1の変曲点(前半の曲線部の終点)までにかかる時間であり、以下の式(41)によって求められ、前記T2は、前記二次曲線の始点から第2の変曲点(直線部の終点)までにかかる時間であり、以下の式(42)によって求められる。また、減速停止期間timeは、前記二次曲線の始点から終点までにかかる時間であるため、以下の式(43)によって求められる。
T1=t0+t1・・・(41)
T2=T1+(E−G)/α・・・(42)
time=T2+t2・・・(43)
一方、前記|E|が前記|G|よりも小さい場合は、前記二次曲線の前半の曲線部と後半の曲線部との間に直線部が介在せず、それら両曲線部が連続している場合に相当するため、移送量導出部22は、その前半の曲線部の区間0≦t≦T1及び後半の曲線部の区間T1<t≦timeの2つの区間のそれぞれにおける停止時サイクルタイム変動関数g(t)を個別に求める(ステップS165)。
具体的には、移送量導出部22は、0≦t≦T1の区間の停止時サイクルタイム変動関数g(t)を次式(44)で求める。
g(t)=gu+(j1/2)×(t−t0)2・・・(44)
また、移送量導出部22は、T1<t≦timeの区間の停止時サイクルタイム変動関数g(t)を次式(45)で求める。
g(t)=ge+(j2/2)×(t−time)2・・・(45)
なお、この場合において、減速停止期間timeは、次式(46)によって求められる。
time=T1+t2・・・(46)
ここで、T1は、前記二次曲線の始点から変曲点(前半の曲線部の終点)までにかかる時間であり、次式(47)によって求められる。
T1=t0+t1・・・(47)
また、t1は、以下の式(48)によって求められ、t2は、以下の式(49)によって求められる。
t1=[2×E×j2/{j1×(j2−j1)}]1/2・・・(48)
t2=−j1/j2×t1・・・(49)
以上のようにして、停止時サイクルタイム変動関数g(t)と減速停止期間timeが求められる。
次に、移送量導出部22は、基準時刻tを0に初期セットする(図13のステップS56)。
その後、移送量導出部22は、基準時刻tを1だけカウントアップし(ステップS58)、続いて、この緊急停止プロセス(減速停止期間time)における設定時刻Tsのサイクルタイムである減速時設定サイクルタイムdT2を上記のように求めた停止時サイクルタイム変動関数g(t)に基づいて算出する(ステップS60)。この際、算出される減速時設定サイクルタイムdT2の長さは、緊急停止要求が加減速要求監視部10から出される直前の状態、すなわち停止指令入力装置124の緊急停止ボタン124aが押される直前の状態における設定サイクルタイムΔTの長さから減少した長さとなる。移送量導出部22は、前記ステップS58でカウントアップした基準時刻tを停止時サイクルタイム変動関数g(t)に代入することによって減速時設定サイクルタイムdT2を算出する。
次に、移送量導出部22は、減速時設定サイクルタイムdT2当たりの各機械軸方向毎の移送量dP[axis]、すなわち設定時刻TsからT+dT2までの各機械軸方向毎の移送量dP[axis]を次式(50)によって算出する(ステップS62)。
dP[axis]=QB(T+dT2)[axis]−QB(T)[axis]・・・(50)
このように求められた減速時設定サイクルタイムdT2当たりの各機械軸方向毎の移送量dP[axis]は、緊急停止要求が加減速要求監視部10から出される直前の状態における設定サイクルタイムΔT当たりの各機械軸方向毎の移送量よりも小さくなる。
その後、前記ステップS12と同様に、移送制御部14が、移送量導出部22によって算出された減速時設定サイクルタイムdT2当たりの各機械軸方向毎の移送量dP[axis]に応じて各移送部102c,106b,108b,110bを駆動してそれら移送部102c,106b,108b,110bに対応する支持体102b,106a,108a,110aを基準サイクルタイム当たりに対応する各機械軸方向の移送量dP[axis]だけ移送させる(ステップS64)。
次に、移送量導出部22は、設定時刻Tsに前記ステップS60で算出した減速時設定サイクルタイムdT2を加算して設定時刻Tsを更新する(ステップS66)。
その後、移送量導出部22は、基準時刻tが減速停止期間time以上になったか否かを判断する(ステップS68)。ここで、移送量導出部22が基準時刻tは減速停止期間time以上になっていると判断した場合には、対象物の移送が停止していることになり、移送量導出部22は、次に、メモリ5に記憶されている合成速度Vの値を読み込む(ステップS70)。この後、再始動指令入力装置126に再始動指令が入力された場合には、対象物の移送を再開させる再始動プロセス(図14参照)が行われる。一方、移送量導出部22は、前記ステップS68において、基準時刻tが減速停止期間timeを経過していないと判断した場合には、前記ステップS58以降の処理を再度行う。
次に、対象物の再始動プロセスについて説明する。この再始動プロセスでは、移送量導出部22が加減速要求監視部10から再始動要求が出力されているか否かを判断する(ステップS72)。ここで、移送量導出部22は、加減速要求監視部10から再始動要求が出されていないと判断した場合には、当該ステップS72の判断を繰り返し行う。一方、移送量導出部22は、加減速要求監視部10から再始動要求が出されていると判断した場合には、次に、再始動加速期間timeと再始動時サイクルタイム変動関数g(t)を算出する(ステップS74)。この際、移送量導出部22は、再始動加速期間timeの始期における再始動時サイクルタイム変動関数g(t)の値gsが0であり、再始動加速期間timeの終期における再始動時サイクルタイム変動関数g(t)の値geが現時点でのオーバーライド係数kに等しくなり、再始動加速期間timeの終期における合成速度が前記Vになるという条件を満たす再始動加速期間time及び再始動時サイクルタイム変動関数g(t)を算出する。この再始動加速期間time及び再始動時サイクルタイム変動関数g(t)の算出プロセスは、上記した減速停止期間time及び停止時サイクルタイム変動関数g(t)の算出プロセス(図16のステップS142〜S165)と同様である。また、この算出プロセスでは、前記t0及び前記E0は共に0となり、前記dgは0である。
再始動時サイクルタイム変動関数g(t)は、その関数によって表される前半の二次曲線の頂点から後半の二次曲線の終点までの区間におけるg(t)の変化量の絶対値|E|が再始動加速期間timeにおけるg(t)の変化量の絶対値|G|以上である場合には、図21に示すような前半の曲線部と後半の曲線部との間に直線部が介在するような曲線で表され、前記|E|が前記|G|よりも小さい場合には、図22に示すような前半の曲線部と後半の曲線部とが直線部を介することなく連続している曲線で表される。
そして、移送量導出部22は、再始動加速期間time及び再始動時サイクルタイム変動関数g(t)を算出した後、図14のステップS76〜S88のプロセスを上記図13のステップS56〜S68のプロセスと同様に行う。この際、移送量導出部22は、ステップS80において、ステップS74で算出した再始動時サイクルタイム変動関数g(t)に基づいて加速時設定サイクルタイムdT2を算出し、ステップS82において、その算出した加速時設定サイクルタイムdT2当たりの各機械軸方向毎の移送量dP[axis]を算出する。以上のような再始動プロセスが行われることによって、停止していた対象物は、移動を再開し、現時点でのオーバーライド係数kに応じた速度まで加速する。
そして、移送量導出部22がステップS88の判断において基準時刻tが再始動加速期間time以上になっていると判断した場合には、移送量導出部22は、図6のステップS8以降の処理を再度行う。
ところで、移送量導出部22が前記ステップS16において加減速要求監視部10から緊急停止要求が出されていないと判断した場合には、その後、加減速要求監視部10から速度変更要求が出されているか否かを判断する(ステップS18)。
ここで、移送量導出部22は、加減速要求監視部10から速度変更要求が出されていると判断した場合には、図15に示す対象物の速度変更プロセスを実施する。
具体的には、移送量導出部22は、まず、速度変更期間timeと速度変更時サイクルタイム変動関数g(t)を算出する(ステップS90)。この際、移送量導出部22は、速度変更期間timeの始期における速度変更時サイクルタイム変動関数g(t)の値gsが設定サイクルタイムΔTに等しくなり、速度変更期間timeの終期における速度変更時サイクルタイム変動関数g(t)の値geが速度変更後のオーバーライド係数kに等しくなり、速度変更期間timeの始期における合成速度が前記Vになるという条件を満たす速度変更期間time及び速度変更時サイクルタイム変動関数g(t)を算出する。
対象物の加速動作を行う場合の速度変更時サイクルタイム変動関数g(t)は、速度変更期間timeの始期(移送量導出部22が速度変更要求を受けた時点)において対象物が一定速度で移動している場合には、例えば図23に示すような曲線で表される。一方、速度変更期間timeの始期において対象物が加速中である場合に、さらにその対象物の加速動作が実行される場合の速度変更時サイクルタイム変動関数g(t)は、図24に示すような曲線で表され、速度変更期間timeの始期において対象物が減速中である場合にその対象物の減速動作が実行される場合の速度変更時サイクルタイム変動関数g(t)は、図25に示すような曲線で表される。
また、対象物の減速動作を行う場合の速度変更時サイクルタイム変動関数g(t)は、速度変更期間timeの始期(移送量導出部22が速度変更要求を受けた時点)において対象物が一定速度で移動している場合には、例えば図26に示すような曲線で表される。一方、速度変更期間timeの始期において対象物が加速中である場合にその対象物の減速動作が実行される場合の速度変更時サイクルタイム変動関数g(t)は、図27に示すような曲線で表され、速度変更期間timeの始期において対象物が減速中である場合にさらにその対象物の減速動作が実行される場合の速度変更時サイクルタイム変動関数g(t)は、図28に示すような曲線で表される。
なお、前記図23〜図28は、いずれも、速度変更時サイクルタイム変動関数g(t)によって表される前半の二次曲線の頂点から後半の二次曲線の終点までの区間におけるg(t)の変化量の絶対値|E|が速度変更期間timeにおけるg(t)の変化量の絶対値|G|よりも小さい場合に対応しており、これらの場合には、速度変更時サイクルタイム変動関数g(t)は、前半の曲線部と後半の曲線部とが直線部を介することなく連続した形状の曲線によって表される。一方、前記|E|が前記|G|以上である場合には、これら各図の前半の曲線部と後半の曲線部とが直線部を介して繋げられた形状の曲線によって速度変更時サイクルタイム変動関数g(t)が表される。
そして、移送量導出部22は、速度変更期間time及び速度変更時サイクルタイム変動関数g(t)を算出した後、基準時刻tを0にセットし(ステップS92)、その後、基準時刻tを1だけカウントアップする(ステップS94)。
次に、移送量導出部22は、ステップS90で算出した速度変更時サイクルタイム変動関数g(t)に基づいて設定サイクルタイムΔTを算出する(ステップS96)。この設定サイクルタイムΔTは、前記ステップS94でカウントアップした基準時刻tを速度変更時サイクルタイム変動関数g(t)に代入することによって求められる。
次に、移送量導出部22は、この算出した設定サイクルタイムΔT当たりの各機械軸方向毎の移送量dP[axis]を前記ステップS10と同様にして算出する(ステップS98)。
次に、移送量導出部22は、前記ステップS98で算出した各機械軸方向毎の移送量dP[axis]から現時点での対象物の合成速度Vを算出する(ステップS100)。この合成速度Vの算出方法は、前記ステップS11における合成速度Vの算出方法と同様である。
その後、移送制御部14が、前記ステップS98で算出した移送量dP[axis]に応じて前記ステップS12と同様に各移送部102c,106b,108b,110bを駆動する(ステップS102)。その後、移送量導出部22は、設定時刻Tsに前記ステップS96で算出した設定サイクルタイムΔTを加算してその設定時刻Tsを更新する(ステップS104)。
次に、移送量導出部22は、前記ステップS90で求めた速度変更時サイクルタイム変動関数g(t)を基準時刻tで微分することにより前記dgを算出する(ステップS106)。
その後、移送量導出部22は、基準時刻tが速度変更期間time以上であるか否かを判断し(ステップS108)、基準時刻tが速度変更期間time以上であると判断した場合には、前記ステップS8以降の処理を再度行う一方、基準時刻tが速度変更期間timeを経過していないと判断した場合には、次に、加減速要求監視部10から緊急停止要求が出されているか否かを前記ステップS16と同様に判断する(ステップS110)。
ここで、移送量導出部22が加減速要求監視部10から緊急停止要求が出されていると判断した場合には、前記ステップS52〜S68の緊急停止プロセスが実施され、加減速要求監視部10から緊急停止要求が出されていないと判断した場合には、移送量導出部22は、次に、加減速要求監視部10から速度変更要求が出されているか否かを前記ステップS18と同様に判断する(ステップS112)。移送量導出部22が加減速要求監視部10から速度変更要求が出されていると判断した場合には、前記ステップS90以降の速度変更プロセスが再度実施される。一方、移送量導出部22が加減速要求監視部10から速度変更要求が出されていないと判断した場合には、前記ステップS94以降のプロセスが再度行われる。
ところで、移送量導出部22が上記ステップS18の判断において加減速要求監視部10から速度変更要求が出されていないと判断した場合には、次に、移送量導出部22は、設定時刻Tsに設定サイクルタイムΔTを加算して設定時刻Tsを更新する(図6のステップS20)。その後、前記ステップS10以降のプロセスが再度行われる。
以上のようにして、本実施形態の数値制御装置2による数値制御プロセスが実施される。
本実施形態では、加減速フィルタ28が、パス変換部26によって算出された各機械軸方向についての変換後機械軸パスに対して当該変換後機械軸パスから得られる各支持体102b,106a,108a,110aの移送速度の変化を緩和するための加減速処理を行うため、基準機械軸パスに機械ショックの要因となる異常データが含まれていても、その異常データを当該加減速処理により機械ショックを引き起こさない緩やかな速度変化を示すように修正することができる。
さらに、本実施形態では、パス変換部26が、基準機械軸パスに対して加減速フィルタ28による加減速処理と同じ処理である変換部加減速処理を行った場合に得られる機械軸パスと基準機械軸パスとの誤差に相当する補正量を各機械軸方向毎に算出し、その算出した各機械軸方向毎の補正量で前記誤差を相殺する方向に各機械軸方向についての基準機械軸パスを補正して変換後機械軸パスを算出するため、変換後機械軸パスは、加減速フィルタ28による加減速処理によって生じる各機械軸方向毎の誤差を予め見込んでその誤差を相殺する方向に補正した機械軸パスとなる。このため、加減速フィルタ28が変換後機械軸パスに対して加減速処理を行ったときには、その加減速処理によって生じる全ての機械軸方向についての誤差を抑制することができ、その結果、当該加減速処理によって生じるワークの加工形状の誤差を抑制することができる。
また、本実施形態では、加減速フィルタ28が加減速処理を行うときに、t−aからt+aに亘る区間内の各設定時刻Tにおける速度関数PB’(T)をその各設定時刻Tを中心として前後に均等に広がるT−aからT+aまでの分配区間内にそれぞれ分配するため、各設定時刻における速度関数をその各設定時刻以降の分配区間内にそれぞれ分配するような場合と異なり、等速での対象物の移送を指示する区間において速度関数の分配形式に起因する設定時刻の遅れが生じない。このため、加減速フィルタ28が前記分配区間内に分配した速度関数PB’(T)の分配値PB’(T)・f(t−T)を積分して速度関数QB’(t)を算出し、その算出した速度関数QB’(t)をさらに積分することによって算出した処理後機械軸パスQB(t)では、等速での対象物の移送を指示する区間において速度関数の分配形式に起因した時刻の遅れが生じるのを防ぐことができる。
また、本実施形態では、パス変換部26が変換部加減速処理後の機械軸パスと基準機械軸パスとの誤差に相当する補正量を算出するときに、変換部加減速処理後の機械軸パスと基準機械軸パスとの間で互いに減算する点同士の時刻の対応付けを簡略化しつつ、変換部加減速処理における速度関数の分配形式に起因して生じる位相誤差の要素を補正量から低減することができる。具体的には、仮に、パス変換部26が、変換部加減速処理において、基準機械軸パスのある区間中の各設定時刻における速度をその時刻以降の時定数に相当する区間幅を有する分配区間内にそれぞれ分配し、その分配した各分配値を積分して速度関数を算出し、その算出した速度関数をさらに積分するような算出式に従って、当該処理後の機械軸パスを算出する場合には、当該処理後の機械軸パスにおける設定時刻は基準機械軸パスにおける設定時刻に対して遅れるため、この設定時刻の遅れを考慮せずに処理後の機械軸パスから基準機械軸パスを減算してそれら両機械軸パス間の誤差に相当する補正量を求めると、その補正量の中に位相誤差が含まれることになる。このような場合に、補正量から位相誤差の要素を排除しようとすると、上記の速度関数の分配形式に起因して生じる前記処理後の機械軸パスと基準機械軸パスとの間の設定時刻の遅れを解消するための対応付け(時刻調整)を行った上で、前記処理後の機械軸パスと基準機械軸パスとの誤差を求める必要があり、その対応付けの処理が煩雑である。これに対して、本実施形態では、パス変換部26は、変換部加減速処理において、基準機械軸パスの各設定時刻Tにおける速度関数PAi’(T)をその各設定時刻Tを中心として前後に均等に広がるT−aからT+aまでの分配区間内にそれぞれ分配するため、等速での対象物の移送を指示する区間において速度関数PAi’(T)の分配形式に起因した設定時刻の遅れが生じるのを防ぐことができる。このため、変換部加減速処理後の機械軸パスQA(t)では、等速での対象物の移送を指示する区間において基準機械軸パスとの間で同一時刻tでの座標値が一致する。このため、変換部加減速処理後の機械軸パスQA(t)と基準機械軸パスとの誤差に相当する補正量を算出するときに、それら両機械軸パス間で互いに減算する点同士の設定時刻の対応付けを簡略化しつつ、補正量から基準機械軸パスの速度関数の分配形式に起因する位相誤差の要素を低減することができる。
また、本実施形態では、加減速フィルタ28が加減速処理を行うときに、t−aからt+aに亘る区間内の各時刻Tにおける速度関数PBi’(T)をその各時刻Tを中心として前後に均等に広がるT−aからT+aまでの分配区間内にそれぞれ分配するため、各時刻における速度関数をその各時刻以降の分配区間内にそれぞれ分配するような場合と異なり、当該速度関数の分配形式に起因する時刻の遅れが生じない。このため、加減速フィルタ28による加減速処理後の機械軸パスQB(t)において、速度関数の分配形式に起因した時刻の遅れが生じるのを防ぐことができる。
また、本実施形態では、時刻調整部38が、各機械軸方向についての調整前機械軸パスについて対象物の移送開始直後の加速期間(0≦t<Tj)に対応する部分及び対象物の移送停止直前の減速期間(te−Tj<t≦te)に対応する部分について時刻調整を行うため、パス変換部26が変換部加減速処理を行う前に、予めその変換部加減速処理によって生じる前記加速期間及び前記減速期間に対応する各部分の設定時刻のずれを相殺する方向に補正した基準機械軸パスを求めることができる。このため、パス変換部26が変換部加減速処理を行った後の機械軸パスの前記加速期間及び前記減速期間に対応する各部分において、設定時刻のずれが生じるのを防ぐことができ、それらの各部分について適切な補正量を算出することができる。
また、本実施形態では、特別指令入力装置122に特別指令を入力して工作機械に対象物の速度変化を伴うイレギュラーな動作を実施させる際、各機械軸方向に共通の設定サイクルタイムの長さが特別指令の入力直前の状態における長さからその特別指令が指示する速度変化に応じた長さに変化させられるとともに、処理後機械軸パスから算出されたその変化後の設定サイクルタイム当たりの各支持体102b,106a,108a,110aの対応する機械軸方向への移送量に応じて各支持体102b,106a,108a,110aが移送される。このため、ワークの加工時における対象物の通常の移送とは別にその対象物のイレギュラーな速度変化を伴う動作を実行させる場合に、対象物が処理後機械軸パスによって示される軌跡からずれるのを防ぐことができる。具体的には、本実施形態のように特別指令に応じて各機械軸方向に共通の設定サイクルタイムの長さを変化させる場合には、処理後機械軸パスからその設定サイクルタイム当たりに算出される各機械軸方向への支持体102b,106a,108a,110aの移送量が各機械軸方向についての処理後機械軸パスによって規定される各機械軸方向同士の間の相対的な位置関係が維持された状態で算出される。このため、その算出された設定サイクルタイム当たりの各機械軸方向への移送量に応じて各支持体102b,106a,108a,110aが各移送部102c,106b,108b,110bによって移送されると、各機械軸方向についての処理後機械軸パスによって規定される各機械軸方向同士の間の相対的な位置関係が維持された状態で対象物の速度変化を伴う動作が実施される。その結果、対象物の速度変化を伴うイレギュラーな動作が実施されたとしても、対象物が各機械軸方向についての処理後機械軸パスによって示される軌跡からずれるのを防ぐことができる。
さらに、本実施形態では、加減速処理による異常データに起因する機械ショックの抑制効果を得つつ、特別指令に応じて対象物が速度変化を伴う動作を行うときに元の加工パスによって示される軌跡から外れるのを防ぐことができる。具体的には、仮に、異常データに起因する機械ショックを抑制するために従来のパルス補間後の加減速処理を行う場合には、その補間後加減速処理が行われた後の移送パルスが示す対象物の移動軌跡は、補間後加減速処理によって生じる誤差により元の加工パスによって示される移動軌跡からずれることになる。この場合に、特別指令に応じた対象物の速度変化を伴う動作が補間後加減速処理後の移送パルスに従って行われると、当該対象物は、元の加工パスによって示される軌跡から外れて移動することになる。これに対して、本実施形態では、上記のように加減速フィルタ28による加減速処理によって異常データに起因する機械ショックの抑制効果を得つつ、その加減速処理後の機械軸パスでは、加減速処理前のパス変換部26の変換処理による誤差補正の効果により、当該加減速処理後の機械軸パスが示す軌跡が加工パスが示す軌跡からずれるのを抑制することができ、その結果、特別指令に応じて対象物が速度変化を伴う動作を加減速処理後の機械軸パスに従って行うときに元の加工パスが示す軌跡から外れるのを防ぐことができる。
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれる。
本発明による数値制御装置は、図1に示したような工作機械に適用が限定されるものではない。例えば、いわゆる門型フレームを備えた工作機械や、パラレルメカニズムを有する工作機械、旋盤、その他の各種工作機械にも、本発明による数値制御装置を適用することが可能である。
また、上記実施形態では、パス変換部26による変換部加減速処理及び加減速フィルタ28による加減速処理において直線型の分配関数を用いたが、これらの加減速処理に用いる分配関数は、このような直線型の分配関数以外の種類の分配関数であってもよい。例えば、いわゆるベル型の分配関数をこれらの加減速処理に用いてもよい。このようなベル型の分配関数f(t)は、例えば、次式で表される。
なお、分配区間−a≦t≦aの外側では、f(t)=0である。
また、ベル型の分配関数を用いて変換部加減速処理を行う場合には、図8のステップS41において、次式を用いて、基準機械軸パスのうち移送開始直後の加速期間の部分及び移送停止直前の減速期間の部分における変換部加減速処理後の時刻のずれを解消するための時刻調整を行うことが好ましい。
また、基準機械軸パス導出部は、加減速演算部によって導出された基準機械軸パスのうち工作機械に機械ショックが発生し得る急激な加減速を指示する部分のみを局部的に滑らかになるように補間する局部加減速フィルタを備えていてもよい。この場合には、局部加減速フィルタによって局部的に補間された後の基準機械軸パスについて、パス変換部が変換処理を行えばよい。
また、上記実施形態では、工作機械が特別指令入力装置を備えており、その特別指令入力装置に特別指令が入力された場合に設定サイクルタイムの長さを変化させて各支持体の対応する機械軸方向への移送量を算出したが、本発明による数値制御装置は、このような特別指令入力装置を備えていない工作機械に適用してもよい。また、工作機械が特別指令入力装置を備えていても、その特別指令入力装置に特別指令が入力された場合に、特別指令の内容に応じて長さを変化させた設定サイクルタイムに対応する移送量を各機械軸方向についての機械軸パスから導出し、その導出した移送量に従って各支持体の移送速度を変化させるような方法以外の方法で対象物の動作を特別指令に応じて制御するような工作機械に本発明による数値制御装置を適用してもよい。これらの場合には、図6のフローチャートによって示される数値制御のプロセスにおいて、ステップS16及びS18の処理を省略し、ステップS14において移送量導出部がメモリに記憶された処理後機械軸パスの全期間の処理をまだ終了していないと判断した場合には、次に、ステップS20の処理を行うようにすればよい。
また、基準機械軸パス導出部は、必ずしも、曲面補間部や加減速演算部を備えてなくてもよい。すなわち、基準機械軸パス導出部のプログラム読取部がNCプログラムから加工パスを導出し、補間演算や加減速演算を行うことなく、その加工パスを各機械軸方向についての移動成分に変換することによって各機械軸方向毎の基準機械軸パスを導出してもよい。
また、本発明の数値制御装置による移送装置の制御は、必ずしも、対象物の緊急停止時の減速、再始動時の加速及びオーバーライド装置による加減速の全てに適用されなくてもよい。例えば、対象物の緊急停止時の減速にのみ本発明の数値制御装置による移送装置の制御が適用されてもよく、対象物の再始動時の加速にのみ本発明の数値制御装置による移送装置の制御が適用されてもよく、オーバーライド装置による対象物の加減速にのみ本発明の数値制御装置による移送装置の制御が適用されてもよい。また、対象物の緊急停止時の減速、再始動時の加速及びオーバーライド装置による加減速のうちいずれか2つに対して本発明の数値制御装置による移送装置の制御が適用されてもよい。
また、パス変換部による変換部加減速処理において、以下の式(51),(52)に従って、変換部加減速処理後の所定のブロックQAi(t)の速度関数QAi’(t)を求めればよい。
ただし、この場合には、変換部加減速処理後の機械軸パスにおける時刻が基準機械軸パスにおける時刻から遅れるため、パス変換部が変換部加減速処理後の機械軸パスと基準機械軸パスとの誤差に相当する補正量を算出するに際して、変換部加減速処理後の機械軸パスと基準機械軸パスとの互いに減算する点同士の時刻の対応付け(時刻調整)を行った上でそれらの点同士の減算を行って誤差を算出する必要がある。
また、上記加減速フィルタによる処理を繰り返し行うようにしてもよい。この場合には、基準機械軸パスに対してより誤差の少ない処理後機械軸パスを求めることができる。
また、上記実施形態では、時刻調整部38が、対象物の移送開始直後の加速期間及び対象物の移送停止直後の減速期間について時刻調整を行ったが、必ずしもこのような時刻調整を行う必要はない。すなわち、基準機械軸パス導出部が時刻調整部を備えておらず、加減速演算部が算出した機械軸パスを基準機械軸パスとして、パス変換部が、その時刻調整を行っていない基準機械軸パスに対して変換部加減速処理を行ってもよい。