以下に、本発明の実施の形態にかかる数値制御装置、数値制御方法、および機械学習装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかる数値制御装置の構成例を示す図である。図2は、実施の形態1にかかる工作機械の構成例を示す図である。図2では、紙面の横方向がZ軸方向であり、紙面の縦方向がX軸方向である。
数値制御(NC:Numerical Control)装置1Xは、旋盤加工を行う工作機械110に対して、工具66Aを振動させながらの加工である低周波振動切削(LFV:Low Frequency Vibration-cutting)の制御を実行するコンピュータである。以下の説明では低周波振動を単に振動という場合がある。
数値制御装置1Xは、加工ワーク70へのコーナ加工時の許容誤差であるトレランス値に基づいて、工具66Aがトレランス値に対応する特定点(後述の特定通過点)を通過するよう移動経路を生成する。
数値制御装置1Xは、2軸以上の駆動軸によって、工具66Aと加工対象物である加工ワーク70とを相対的に移動させながら、加工ワーク70の加工を制御する。すなわち、数値制御装置1Xは、工具66Aまたは加工ワーク70を移動させるZ軸方向の駆動軸と、工具66Aを移動させるX軸方向の駆動軸とを有した工作機械110に対し、工具66Aによって加工ワーク70を振動切削させる。
実施の形態1では、数値制御装置1Xが、加工ワーク70の回転軸である1つの主軸60と、工具66Aを移動させる2つの駆動軸を備えた工作機械110を制御する場合について説明する。加工ワーク70は、工作機械110によって加工される被加工物である。なお、図2では、主軸60として主軸60の中心線を図示している。
数値制御装置1Xは、制御演算部2Xと、入力操作部3と、表示部4と、PLC(Programmable Logic Controller:プログラマブルロジックコントローラ)36を操作するための機械操作盤などのPLC操作部5とを有する。図1には、工作機械110の構成要素である駆動部90が示されている。
駆動部90は、工作機械110が備える刃物台65Aなどを駆動させる。駆動部90は、加工ワーク70を回転させながら、工具66Aを駆動する駆動機構である。実施の形態1では、工具66Aの駆動方向が、X軸方向に平行な方向とZ軸方向に平行な方向との2方向である。駆動部90は、X軸方向およびZ軸方向に沿って、工具66Aを移動および振動させる。すなわち、駆動部90が、X軸方向およびZ軸方向の駆動を制御することによって、X−Z平面内を刃物台65Aが移動する。なお、軸方向は装置構成によるので、軸方向は、上記方向に限定されない。図2における右向きの矢印が、実施の形態1で工具66Aが加工ワーク70を加工する加工方向を示す。
駆動部90は、数値制御装置1X上で規定された各軸方向に工具66Aを移動させるサーボモータ901,902と、サーボモータ901,902の位置および速度を検出する検出器97,98とを備えている。また、駆動部90は、数値制御装置1Xからの指令に基づいて、サーボモータ901,902を制御する各軸方向のサーボ制御部を備えている。各軸方向のサーボ制御部は、検出器97,98からの位置および速度に基づいて、サーボモータ901,902へのフィードバック制御を行う。
サーボ制御部のうちの、X軸サーボ制御部91は、サーボモータ901を制御することによって工具66AのX軸方向の動作を制御し、Z軸サーボ制御部92は、サーボモータ902を制御することによって工具66AのZ軸方向の動作を制御する。なお、工作機械110が2つ以上の刃物台を備えていてもよい。この場合、駆動部90は、1つの刃物台毎に、1組のX軸サーボ制御部91と、Z軸サーボ制御部92と、サーボモータ901,902と、検出器97,98とを備える。
また、駆動部90は、加工ワーク70を回転させるための主軸60を回転させる主軸モータ911と、主軸モータ911の位置および回転数を検出する検出器211とを備えている。検出器211が検出する回転数は、主軸モータ911の回転数に対応している。
また、駆動部90は、数値制御装置1Xからの指令に基づいて、主軸モータ911を制御する主軸サーボ制御部200を備えている。主軸サーボ制御部200は、検出器211からの位置および速度に基づいて、主軸モータ911へのフィードバック制御を行う。
なお、工作機械110が2つの加工ワーク70を同時に加工する場合には、駆動部90は、主軸モータ911と、検出器211と、主軸サーボ制御部200とを2組備える。この場合、工作機械110は、2つ以上の刃物台を備えている。
入力操作部3は、制御演算部2Xに情報を入力する手段である。入力操作部3は、キーボード、ボタンまたはマウスなどの入力手段によって構成され、ユーザによる数値制御装置1Xに対するコマンドなどの入力、または加工プログラムもしくはパラメータなどを受付けて制御演算部2Xに入力する。表示部4は、液晶表示装置などの表示手段によって構成され、制御演算部2Xによって処理された情報を表示画面に表示する。PLC操作部5は、ユーザによる操作を受付けて、操作に対応する指示をPLC36に送る。
制御部である制御演算部2Xは、入力制御部32と、データ設定部33と、記憶部34と、画面処理部31と、解析処理部37と、制御信号処理部35と、PLC36と、補間処理部38Xと、加減速処理部39と、軸データ出力部40と、を有する。なお、PLC36は、制御演算部2Xの外部に配置されてもよい。
記憶部34は、パラメータ記憶エリア341、加工プログラム記憶エリア343、表示データ記憶エリア344、および共有エリア345を有している。パラメータ記憶エリア341内には、制御演算部2Xの処理で使用されるパラメータ等が格納される。具体的には、パラメータ記憶エリア341内には、数値制御装置1Xを動作させるための制御パラメータ、サーボパラメータおよび工具データが格納される。加工プログラム記憶エリア343内には、加工ワーク70の加工に用いられる加工プログラム(後述する加工プログラム101等)が格納される。実施の形態1の加工プログラムは、工具66Aを振動させる指令である振動指令と、工具66Aを移動させる指令である移動指令とを含んでいる。
表示データ記憶エリア344内には、表示部4で表示される画面表示データが格納される。画面表示データは、表示部4に情報を表示するためのデータである。また、記憶部34には、一時的に使用されるデータを記憶する共有エリア345が設けられている。
画面処理部31は、表示データ記憶エリア344に格納された画面表示データを表示部4に表示させる制御を行う。入力制御部32は、入力操作部3から入力される情報を受付ける。データ設定部33は、入力制御部32で受付けられた情報を記憶部34に記憶させる。すなわち、入力操作部3が受付けた入力情報は、入力制御部32およびデータ設定部33を介して記憶部34に書き込まれる。
制御信号処理部35は、PLC36に接続されており、PLC36から、工作機械110を動作させるリレーなどの信号情報を受付ける。制御信号処理部35は、受付けた信号情報を、記憶部34の共有エリア345に書き込む。これらの信号情報は、加工運転時に補間処理部38Xが参照する。また、制御信号処理部35は、解析処理部37によって共有エリア345に補助指令が出力されると、この補助指令を共有エリア345から読み出してPLC36に送る。補助指令は、数値制御軸である駆動軸を動作させる指令以外の指令である。補助指令の例は、MコードまたはTコードである。
PLC36は、PLC操作部5に対して操作が行われると、この操作に応じた動作を実行する。PLC36は、PLC36が実行する機械動作が記述されたラダープログラムを格納している。PLC36は、補助指令であるTコードまたはMコードを受付けると、ラダープログラムに従って補助指令に対応する処理を工作機械110に実行する。PLC36は、補助指令に対応する処理を実行した後、加工プログラムの次のブロックを実行させるために、機械制御が完了したことを示す完了信号を制御信号処理部35に送る。
制御演算部2Xでは、制御信号処理部35と、解析処理部37と、補間処理部38Xとが、記憶部34を介して接続されており、記憶部34を介して情報の書き込み、および読み出しを行う。以下の説明では、制御信号処理部35と、解析処理部37と、補間処理部38Xとの間の情報の書き込み、および読み出しを説明する際に記憶部34が介されていることを省略する場合がある。
加工プログラムの選択は、ユーザが入力操作部3で加工プログラム番号を入力することによって行われる。この加工プログラム番号は、入力制御部32およびデータ設定部33を介して共有エリア345に書き込まれる。機械操作盤等のサイクルスタートをトリガとして、解析処理部37は、共有エリア345内の選択された加工プログラム番号に対応する加工ワーク70を指定したワーク指定情報を共有エリア345から受付けると、ワーク指定情報に対応する加工プログラムを加工プログラム記憶エリア343内から読み出して、加工プログラムの各ブロック(各行)に対して解析処理を行う。解析処理部37は、例えば、Gコード(軸移動等に関する指令)、Tコード(工具交換指令など)、Sコード(主軸モータ回転数指令)、およびMコード(機械動作指令)を解析する。
解析処理部37は、解析した行にMコードまたはTコードが含まれている場合には、解析結果を共有エリア345および制御信号処理部35を介してPLC36に送る。また、解析処理部37は、解析した行にMコードが含まれている場合には、Mコードを、制御信号処理部35を介してPLC36に送る。PLC36はMコードに対応する機械制御を実行する。実行が完了した場合、制御信号処理部35を介してMコードの完了を示す結果が記憶部34に書き込まれる。補間処理部38Xは記憶部34に書き込まれた実行結果を参照する。
また、解析処理部37は、Gコードが含まれている場合には、共有エリア345を介して解析結果を補間処理部38Xに送る。具体的には、解析処理部37は、Gコードに対応する移動条件を生成して補間処理部38Xに送る。また、解析処理部37は、Sコードで指定された主軸回転数を補間処理部38Xに送る。主軸回転数は、単位時間あたりの主軸60の回転の回数である。移動条件は、工具66Aが加工位置を移動させていくための工具送りの条件であり、刃物台65Aを移動させる速度、刃物台65Aを移動させる位置などで示される。例えば、工具66Aの工具送りは、工具66AをX軸方向(+X方向)およびZ軸方向(+Z方向)に進ませる。
また、解析処理部37は、振動指令解析部11と、移動指令解析部12とを有している。振動指令解析部11は、X軸方向およびZ軸方向への振動指令を解析する手段である。振動指令解析部11は、加工プログラム(後述の加工プログラム101など)に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を、共有エリア345を介して補間処理部38Xに送る。
振動条件は、振動切削を実行する際の振動の条件である。振動条件の例は、振動切削の際の振動回数である。X軸方向の振動回数は、主軸60が1回転する間の刃物台65AのX軸方向の振動回数であり、Z軸方向の振動回数は、主軸60が1回転する間の刃物台65AのZ軸方向の振動回数である。刃物台65Aの振動回数は、主軸60が1回転する時間を基準とした振動の周波数に対応している。
移動指令解析部12は、加工プログラムに含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を、共有エリア345を介して補間処理部38Xに送る。加工プログラムでは、切屑を細かく分断することができるよう、主軸回転数、振動指令および移動指令が設定されている。移動指令解析部12は、Gコードに対応する移動条件を生成して補間処理部38Xに送る。移動条件の例は、刃物台65Aの移動速度、刃物台65Aを移動させる位置などである。
X軸方向の振動指令は、刃物台65AをX軸方向に振動させる指令であり、Z軸方向の振動指令は、刃物台65AをZ軸方向に振動させる指令である。X軸方向の移動指令は、刃物台65AをX軸方向に移動させる指令であり、Z軸方向の移動指令は、刃物台65AをZ軸方向に移動させる指令である。
補間処理部38Xは、指令移動量算出部21と、振動移動量算出部22と、トレランス値設定部23と、波形生成部24と、振動補正部25とを備えている。補間処理部38Xは、主軸回転数、刃物台65AのX軸方向およびZ軸方向の振動回数を、共有エリア345から読み出す。
指令移動量算出部21は、解析処理部37から解析結果である移動条件を受け取り、移動条件に対する補間処理を行い、補間処理の結果に対応する単位時間当たりの指令移動量を算出する。具体的には、指令移動量算出部21は、解析処理部37が解析したX軸方向の移動条件に基づいて、刃物台65Aを単位時間でX軸方向に移動させる指令移動量を算出して波形生成部24に送る。また、指令移動量算出部21は、解析処理部37が解析したZ軸方向の移動条件に基づいて、刃物台65Aを単位時間でZ軸方向に移動させる指令移動量を算出して波形生成部24に送る。
トレランス値設定部23は、コーナ加工時のトレランス値を設定する。具体的には、トレランス値設定部23は、加工プログラム、ラダープログラム、またはパラメータによってトレランス値が指定されているか否かをチェックし、何れの場所で規定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス値を設定する。トレランス値設定部23は、設定したトレランス値を波形生成部24に送る。優先情報は、記憶部34内に格納されている。
実施の形態1では、切削方向は図2におけるX軸方向およびZ軸方向である。工具66Aの移動は、振動切削のための移動と、加工ワーク70に対して加工を進める方向(切削方向)への移動と、を足し合わせたものである。したがって、波形生成部24は、振動切削のための振動移動量と、加工ワーク70に対して加工を進めるための切削方向への移動量とを足し合わせる。振動移動量は、例えば、波形で示される。
具体的には、波形生成部24は、指令移動量算出部21から送られてきたX軸方向の指令移動量と、振動移動量算出部22から送られてきたX軸方向の振動移動量とを合成することによってX軸方向の合成移動量を生成する。また、波形生成部24は、指令移動量算出部21から送られてきたZ軸方向の指令移動量と、振動移動量算出部22から送られてきたZ軸方向の振動移動量とを合成することによってZ軸方向の合成移動量を生成する。
X軸方向の合成移動量は、横軸を時間、縦軸をX軸方向の位置としたグラフ上での波形で示され、Z軸方向の合成移動量は、横軸を時間、縦軸をZ軸方向の位置としたグラフ上での波形で示される。波形生成部24は、補間処理の結果であるX軸方向およびZ軸方向の合成移動量を示す移動経路の波形を振動補正部25に送る。以下、振動切削の際の工具66Aの移動経路を示す波形を、振動波形という。
振動補正部25は、X軸方向の振動波形および加工の目標位置(X座標)に基づいて、X軸方向の振動波形が終了する際のX軸方向の振動波形を補正する。また、振動補正部25は、Z軸方向の振動波形および加工の目標位置(Z座標)に基づいて、Z軸方向の振動波形が開始する際および終了する際のZ軸方向の振動波形を補正する。
また、振動補正部25は、トレランス値に基づいて、移動経路が通過する座標を算出し、算出した座標を移動経路が通過するよう、Z軸方向の移動を開始するタイミングを調整する。このとき、振動補正部25は、算出した座標と、X軸方向の振動波形と、Z軸方向の振動波形と、に基づいて、Z軸方向の振動波形(移動および振動)を開始するタイミングを調整する。振動補正部25は、補正したX軸方向の振動波形および補正したZ軸方向の振動波形を加減速処理部39に送る。
加減速処理部39は、補間処理部38Xから供給された補間処理の結果に対して、加速度をなめらかに変化させるための加減速処理を行う。加減速処理部39は、移動の開始および停止の際の加減速処理を行う。具体的には、加減速処理部39は、X軸方向の合成移動量に基づいて、X軸方向への移動指令を生成し、Z軸方向の合成移動量に基づいて、Z軸方向への移動指令を生成する。加減速処理部39が処理する位置指令は、単位時間あたりの速度指令である。
加減速処理部39は、加減速処理の処理結果である速度指令を軸データ出力部40に送る。なお、加減速処理部39は、主軸回転数に対しては加減速処理を行わない。加減速処理部39は、主軸回転数に対応する回転数指令を軸データ出力部40に送る。加減速処理部39が生成する回転数指令は、ステップ指令である。
軸データ出力部40は、速度指令を駆動部90に出力する。具体的には、軸データ出力部40は、X軸への速度指令をX軸サーボ制御部91に出力し、Z軸への速度指令をZ軸サーボ制御部92に出力する。また、軸データ出力部40は、主軸60への回転数指令を主軸サーボ制御部200に出力する。これにより、X軸サーボ制御部91、Z軸サーボ制御部92、主軸サーボ制御部200は、工具66AのX軸方向およびZ軸方向の動作と、主軸60の回転動作とを制御する。
ここで、数値制御装置1Xによる加工制御の動作手順の概略について説明する。工作機械110による加工が開始される際には、PLC36が制御信号処理部35へサイクルスタート信号を出力し、制御信号処理部35が、サイクルスタート信号を補間処理部38Xに出力する。これにより、補間処理部38Xが、解析処理部37を起動する。
この後、解析処理部37が加工プログラムを1ブロック毎に読み込んで解析し、解析結果である振動条件、移動条件および主軸回転数を共有エリア345に格納する。そして、補間処理部38Xが、解析処理部37の解析結果に基づいて、X軸方向の単位時間あたりの合成移動量およびZ軸方向の単位時間あたりの合成移動量を算出して加減速処理部39に送る。
これにより、加減速処理部39は、X軸方向の合成移動量に基づいて、加減速処理されたX軸方向への移動指令を生成し、Z軸方向の合成移動量に基づいて、加減速処理されたZ軸方向への移動指令を生成する。これらの移動指令は、軸データ出力部40から駆動部90に出力され、駆動部90が移動指令に従ってX軸およびZ軸の動作を制御する。
実施の形態1にかかる工作機械110は、刃物台65Aに駆動軸がある1スピンドル1刃物台の旋盤である。1スピンドル1刃物台の旋盤は、1つの主軸と1つの刃物台を具備した旋盤である。刃物台65Aは、タレットともよばれる。工作機械110の一例は、タレット旋盤である。なお、工作機械110では、刃物台65AがZ軸方向に移動および振動する代わりに加工ワーク70がZ軸方向に移動および振動してもよい。
工作機械110は、第1スピンドル75を備えた主軸台を有している。第1スピンドル75は、加工ワーク70が取り付けられた状態で回転し、これにより加工ワーク70を回転させる。第1スピンドル75による加工ワーク70の回転軸が、主軸台に設けられた主軸60である。
工作機械110は、刃物台65Aを備えており、刃物台65AにX軸方向の駆動軸61XおよびZ軸方向の駆動軸61Zが設けられている。刃物台65Aは、X軸方向およびZ軸方向に移動可能となっている。工作機械110では、X軸方向が第1の方向であり、X軸方向の駆動軸61Xが第1の駆動軸である。また、工作機械110では、Z軸方向が第2の方向であり、Z軸方向の駆動軸61Zが第2の駆動軸である。図2では、駆動軸61Xとして駆動軸61Xの中心線を図示し、駆動軸61Zとして駆動軸61Zの中心線を図示している。数値制御装置1Xは、主軸60と、駆動軸61Xと、駆動軸61Zとを制御することによって、工具66Aと加工ワーク70の動作を制御する。
刃物台65Aは、旋回式の刃物台である。刃物台65Aは、複数の工具66Aを取り付け可能となっており、工具66Aを旋回させることで使用する工具66Aを切り替える。
刃物台65Aは、X軸方向およびZ軸方向に振動することによって、工具66Aが加工ワーク70の振動切削加工を行う。すなわち、刃物台65Aは、X軸方向およびZ軸方向を足し合わせた方向に振動する。つまり、刃物台65Aは、刃物台65Aの加工方向に平行な方向に振動する。なお、実施の形態1では、説明の便宜上、刃物台65Aの振動を工具66Aの振動として説明する場合がある。
図3は、実施の形態1にかかる数値制御装置が用いる加工プログラムを示す図である。図4は、実施の形態1にかかる数値制御装置が生成する移動経路を示す図である。実施の形態1では、数値制御装置1Xが、図3の加工プログラムから図4の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
加工プログラム101は、数値制御装置1Xが工作機械110を制御する際に用いられる。加工プログラム101は、加工時間を短縮するために、トレランス値=mとした場合の加工プログラム例である。図4に示す移動経路の図では、横軸がZ軸方向の位置であるZ軸位置を示し、縦軸がX軸方向の位置であるX軸位置を示している。図4の移動経路では、X=0.0、Z=0.0が移動の開始位置であり、X=10.0、Z=10.0が移動の終了位置(目標位置)である。
工具66Aが図2に示した工作機械110のように加工ワーク70の上側に載置されている場合、図4の移動経路の左側に工具66Aがあり、右側が加工ワーク70である。
工具66Aが穴あけドリルであり、Z軸方向に沿って加工ワーク70の右側から左側に向かって穴あけ加工を行う場合、図4の移動経路の右側に工具66Aがあり、左側が加工ワーク70である。この場合、Z軸が主軸60と同じ軸となる。また、X軸方向が、穴の径方向となり、Z軸方向が穴の深さ方向となる。以下の説明では、工具66Aが図2に示した工作機械110のように加工ワーク70の上側に載置されている場合について説明する。
トレランス値は、加工ワーク70へのコーナ加工時の許容誤差を示す値であり、Kアドレスで指定される。トレランス値は、値が大きいほど許容誤差が大きくなる。トレランス値は、値が小さいほど加工精度が良くなり、値が大きいほど加工時間が短くなる。トレランス値が0の場合、工具66Aは、Z=0.0、X=10.0を通過する。すなわち、トレランス値が0の場合、加工ワーク70は、Z=0.0、X=10.0の箇所で直角に加工される。以下の説明では、トレランス値が0の場合のZ=0.0、X=10.0の座標(コーナ部分)を直角位置という場合がある。
トレランス値がmの場合、工具66Aの移動経路と、直角位置との最短距離が距離mとなるよう、工具66Aは、直角位置から距離mだけ離れた位置を通過する。以下の説明では、Z=0.0かつX=0.0の位置を開始点といい、Z=10.0かつX=10.0の位置を終了点という場合がある。また、工具66Aの移動経路と直角位置との最短距離が距離mとなる座標を特定通過点という場合がある。
第1ブロックであるN01のG0は位置決め指令であり、第2ブロックであるN02のG165は低周波振動指令であり、第3ブロックであるN03のG95は毎回点送り(同期送り)の指令である。
位置決め指令は、特定の位置へ移動させる指令である。ここでの位置決め指令では、X座標が0.0であり、Z座標が0.0である。低周波振動指令は、低周波振動を実行させる指令である。低周波振動指令では、トレランス値が指定される。ここでのトレランス値は、mである。毎回点送りの指令は、主軸60の1回転当たりの送り速度Fを指定する指令である。
G0、G165、G95は、特定のGコードが指令されるまで有効な指令(モーダル指令)である。G95である毎回点送りが指令されると、この指令のブロックから主軸60の1回転当たりの送り速度Fで工具66Aが工具送りされる。ここでの送り速度Fは、0.05である。
また、ここでの毎回点送りの指令では、工具66Aを移動させるX座標(X=10.0)が指定されている。このため、指定されたX座標まで送り速度Fで工具66Aが工具送りされる。また、第4ブロックであるN04では、工具66Aを移動させるZ座標(Z=10.0)が指定されている。このため、指定されたZ座標まで送り速度Fで工具66Aが工具送りされる。
実施の形態1では、工具66Aが指定されたX座標(X=10.0)まで移動する途中で、指定されたZ座標(Z=10.0)への工具66Aの移動を開始する。すなわち、数値制御装置1Xは、工具66Aが、開始点である原点から第1の特定位置までは、X軸方向へ移動し、第1の特定位置から第2の特定位置まではX軸方向とZ軸方向との両方向に移動し、第2の特定位置から終了点まではZ軸方向へ移動するよう、Z軸方向の移動を開始するタイミングを調整する。この場合において、数値制御装置1Xは、第1の特定位置から第2の特定位置までの移動経路において、X軸方向の振動波形とZ軸方向の振動波形とが同時に特定通過点を通過するよう、Z軸方向の移動を開始するタイミングを調整する。すなわち、数値制御装置1Xは、X軸方向の移動とZ軸方向の移動との重ね合わせ量である移動位置が、特定通過点を通過するようZ軸方向の振動波形の開始タイミングを補正する。第5ブロックであるN05では、G165の指令が終了される。
以上のように、加工プログラム101が実行されると、工具66Aは、X座標=0.0、Z座標=0.0まで移動する。さらに、工具66Aは、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらX=10.0かつZ=10.0まで移動する。
工具66Aが穴あけドリルであり、Z軸方向に沿って加工ワーク70の右側から左側に向かって穴あけ加工を行う場合、工具66Aは、X座標=10.0、Z座標=10.0まで移動する。さらに、工具66Aは、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらZ=0.0まで移動し、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらX=0.0まで移動する。
なお、加工プログラム101には、図3に示した指令の他に、主軸回転数指令などが含まれている。主軸回転数指令は、主軸60を1分間あたりに特定の回転数だけ回転させる指令である。また、G165には、工具66の振動の振幅、主軸60が1回転する間の振動回数などが含まれている。
図5は、実施の形態1にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図5では、移動経路が特定通過点を通過する場合の移動経路の設定処理について説明する。
数値制御装置1Xの解析処理部37では、移動指令解析部12が、加工プログラム101に含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を、共有エリア345を介して補間処理部38Xに送る。
また、振動指令解析部11は、加工プログラム101に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を、共有エリア345を介して補間処理部38Xに送る。振動指令解析部11が生成する振動条件には、振動の周波数、振幅、およびトレランス値などが含まれている。
トレランス値設定部23は、0よりも大きいトレランス値が設定されているか否か(トレランス値>0が設定されているか否か)を判定する(ステップS10)。トレランス値は、ラダープログラム、加工プログラム、パラメータ等に設定されている。トレランス値設定部23は、上記ラダープログラム、加工プログラム、パラメータ等の何れに設定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス制御に用いるトレランス値を設定し、設定したトレランス値が0よりも大きいか否かを判定する。
例えば、優先順位の高い順番がラダープログラム、加工プログラム、パラメータの順であるとする。この場合、トレランス値設定部23は、ラダープログラムにてトレランス値が指定されている場合には、ラダープログラムのトレランス値をトレランス制御に用いるトレランス値に設定する。また、トレランス値設定部23は、ラダープログラムにてトレランス値が指定されていない場合には、加工プログラムのトレランス値をトレランス制御に用いるトレランス値に設定する。また、トレランス値設定部23は、ラダープログラムおよび加工プログラムの両方にてトレランス値が指定されていない場合には、パラメータのトレランス値をトレランス制御に用いるトレランス値に設定する。なお、トレランス値の優先情報は、ユーザによる操作によって切替え可能である。
0よりも大きいトレランス値が設定されていない場合(ステップS10、No)、数値制御装置1Xは、実施の形態1で説明する移動経路の設定処理は実行しない。
0よりも大きいトレランス値が設定されている場合(ステップS10、Yes)、トレランス値設定部23は、トレランス値に基づいて、工具66Aが通過する位置である特定通過点(X座標およびZ座標)を算出する(ステップS20)。
図6は、実施の形態1にかかる数値制御装置が設定する特定通過点を説明するための図である。図6では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。特定通過点P0は、X座標=X1、Z座標=Z1で示されている。特定通過点P0は、Z=0.0、X=10.0の位置から距離mだけ離れた位置である。特定通過点P0は、工具66Aの移動経路上の位置のうちZ=0.0、X=10.0の位置との距離が最短となる位置である。
波形生成部24は、指令移動量算出部21から送られてきたX軸方向の指令移動量と、振動移動量算出部22から送られてきたX軸方向の振動移動量とを合成することによってX軸方向の合成移動量を示す移動経路の振動波形を生成する。
また、波形生成部24は、指令移動量算出部21から送られてきたZ軸方向の指令移動量と、振動移動量算出部22から送られてきたZ軸方向の振動移動量とを合成することによってZ軸方向の合成移動量を示す振動波形を生成する。
波形生成部24は、移動経路の振動波形を生成する際には、移動経路に振動条件の振幅を加算した振動前進位置と、振幅を減算した振動後進位置とを求める。振動前進位置は、移動経路の振動波形の極大点であり、振動後進位置は、移動経路の振動波形の極小点である。波形生成部24は、振動前進位置および振動後進位置に基づいて、X軸方向およびZ軸方向の移動経路の振動波形を生成する。
振動補正部25は、移動経路を示す振動波形に基づいて、移動経路のうちの第1移動経路および第2移動経路の振動波形を補正する。補正前の第1移動経路は、X軸方向の移動経路であり、振幅が一定値であり、X座標がX=0.0からX=10.0までの移動経路である。補正前の第2移動経路は、Z軸方向の移動経路であり、振幅が一定値であり、Z座標がZ=0.0からZ=10.0までの移動経路である。
振動補正部25は、指定されたトレランス値=mに合わせて、第1移動経路が終わる際の振動波形と、第2移動経路が始まる際の振動波形を補正する。
図7は、実施の形態1にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形と、Z軸方向の振動波形とを含んでいる。図7では、X軸方向の移動経路に対応する振動波形51Xと、Z軸方向の移動経路に対応する振動波形51Zとを示している。図7の横軸は時間であり、振動波形51Xの縦軸はX軸方向の位置(軸位置)であり、振動波形51Zの縦軸はZ軸方向の位置(軸位置)である。実施の形態1では、振動波形51Xが第1の振動波形であり、振動波形51Zが第2の振動波形である。
波形生成部24が生成する振動波形は、X軸方向の振動波形(移動経路)およびZ軸方向の振動波形(移動経路)である。波形生成部24は、X軸方向の加工が完了した後のタイミングでZ軸方向の加工を開始することを示す振動波形を生成する。この生成した振動波形に対し、振動補正部25は、移動経路の切り替え前後で振動を補正する(ステップS30)。すなわち、振動補正部25は、X軸方向の振動波形が開始する際の振動波形と、X軸方向の振動波形が終了する際の振動波形と、Z軸方向の振動波形が開始する際の振動波形と、Z軸方向の振動波形が終了する際の振動波形と、を補正する。
具体的には、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動を開始する際の工具66Aの位置座標がX=0.0よりも小さくならないよう振幅を制限し、振幅を少しずつ増加させる。すなわち、振動補正部25は、X軸方向の移動が開始する位置での振幅を0としつつ、X軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
また、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動が終了する際の工具66Aの位置座標がX=10.0より大きくならないよう振幅を0に収束させて停止させる。すなわち、振動補正部25は、X軸方向の振動波形で示される位置が目標位置に到達する際に目標位置を超えて振動せず、X軸方向の移動が終了する目標位置での振幅が0になるよう、X軸方向の振幅を少しずつ減らして停止させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形51Xである。
また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、Z軸方向の移動を開始する際の工具66Aの位置座標がZ=0.0よりも小さくならないよう振幅を制限し、振幅を少しずつ増加させる。すなわち、振動補正部25は、Z軸方向の移動の開始位置での振幅を0としつつ、Z軸方向の振動波形で示される位置が振動波形の開始位置を超えてZ軸の−方向へ振動しないよう、Z軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、X軸方向の収束と同様に、Z軸方向の移動が終了する際の工具66Aの位置座標がZ=10.0より大きくならないよう振幅を0に収束させて停止させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形51Zである。
続いて、振動補正部25は、工具66Aが特定通過点P0を通過するよう、振動波形51Zを開始するタイミング(時間T1)を調整する。換言すると、振動補正部25は、Z軸方向の移動振動の開始時間を補正する(ステップS40)。移動振動は、振動を伴う工具66Aの移動である。図7では、Z軸方向の移動振動の開始時間を早めた振動波形51Zを図示している。
振動補正部25は、振動波形51Xが、X=X1の位置を通過する時間T2で、振動波形51ZがZ=Z1の位置を通過するよう時間T1を調整する。すなわち、振動補正部25は、振動波形51Xおよび振動波形51Zが、時間T2で、特定通過点P0であるX=X1、Z=Z1の位置を通過するよう時間T1を調整する。このように、振動補正部25は、振動波形51X,51Zの振動波形に特定通過点P0を通過させるため、振動波形51XがX=X1に到達した時点で振動波形51ZがZ=Z1に到達するよう、振動波形51Zによる移動振動の開始時間を早める。
制御演算部2Xは、加工プログラム101および振動波形51X,51Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図7に示す振動波形51X,51Zの移動振動を実行することにより、図6に示した移動経路の加工が実現される。
なお、振動補正部25は、振動波形51Xによる移動振動の開始時間を補正してもよい。例えば、振動補正部25は、振動前進位置と振動後進位置との中間位置が特定通過点P0を通過するよう振動波形51Xを補正する。さらに、振動補正部25は、振動波形51Xの移動振動の開始時間の補正と合わせて、振動前進位置と振動後進位置との中間位置が特定通過点P0を通過するよう振動波形51Zの開始時間を補正してもよい。すなわち、振動波形51Xの振動開始時間と振動波形51Zの振動開始時間とを相対的に調整することにより、図6に示される移動経路の加工が実現されればよい。
また、振動波形51Xが、特定通過点P0を複数回通過する場合、振動補正部25は、何れの通過タイミングを時間T2に設定してもよい。また、振動波形51Zが、特定通過点P0を複数回通過可能な場合、振動補正部25は、何れの通過タイミングを時間T2に設定してもよい。振動補正部25は、例えば、時間T2が最も短くなるタイミング、すなわち最も早く特定通過点P0を通過するタイミングを時間T2に設定し、時間T1が最も短くなるタイミングを時間T1に設定することもできる。これにより、振動波形51Xおよび振動波形51Zによって工具66Aが加工を実行する時間を短くすることができる。あるいは、振動補正部25は、振動波形51Xと振動波形51Zの両波形において、振動前進位置と振動後進位置との中間位置に最も近い点が特定通過点P0を通過するタイミングを時間T2に設定してもよい。
このように数値制御装置1Xは、トレランス値に基づいて、特定通過点P0を通過するよう振動波形51Zによる移動振動の開始時間である時間T1を調整するので、トレランス値に対応する振動切削を実現することができる。トレランス値を大きくした場合は加工時間を短縮でき、トレランス値を小さくした場合はコーナ部分における加工精度を向上させることができるので、低周波振動切削におけるコーナ加工時の加工時間および加工精度をコントロールすることができる。
また、トレランス値は、加工プログラムで指定できるので、ユーザは、ユーザの判断で低周波振動切削時におけるコーナ加工時の精度を指定することができる。また、トレランス値は、ラダープログラムで指定できるので、ユーザは、ユーザの判断で低周波振動切削時におけるコーナ加工時の精度を指定することができる。また、トレランス値は、パラメータで指定できるので、トレランス値を加工プログラムまたはラダープログラムから指定しなくても、予めコーナ加工時の精度をパラメータで指定することができる。
このように実施の形態1では、トレランス値が0よりも大きい場合に、数値制御装置1Xが、トレランス値に対応する特定通過点P0を算出し、特定通過点P0を通過する移動経路(X軸およびZ軸の振動波形)を生成する。したがって、所望の加工精度でコーナ加工を行うことが可能となる。また、所望の加工時間でコーナ加工を行うことが可能となる。
実施の形態2.
つぎに、図8から図13を用いてこの発明の実施の形態2について説明する。実施の形態2では、数値制御装置1Xが、加工形状の特定角度が所定角度以下であればトレランス値=0である場合の移動経路を設定する。
図8は、実施の形態2にかかる数値制御装置が用いる加工プログラムを示す図である。図9は、実施の形態2にかかる数値制御装置が生成する移動経路を示す図である。実施の形態2では、数値制御装置1Xが、図8の加工プログラムから図9の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
加工プログラム102は、数値制御装置1Xが工作機械110を制御する際に用いられる。加工プログラム102は、加工精度を向上させるために、トレランス値=0(図8では、トレランス値を「0.0」と記載)とした場合の加工プログラム例である。図9の移動経路を示す図では、横軸がZ軸方向の位置を示し、縦軸がX軸方向の位置を示している。
トレランス値が0の場合、工具66Aの移動経路が直角位置を通過する。換言すると、トレランス値=0では、直角位置が特定通過点P0である。
実施の形態2では、工具66Aが指定されたX座標(X=10.0)まで移動した後、指定されたZ座標(Z=10.0)への移動を開始する。すなわち、数値制御装置1Xは、工具66Aを、開始点から直角位置までX軸方向へ移動させ、直角位置から終了点までZ軸方向へ移動させる。
なお、加工プログラム102には、図8に示した指令の他に、主軸回転数指令などが含まれている。また、加工プログラム102のG165には、加工プログラム101と同様に、工具66Aの振動の振幅、主軸60が1回転する間の振動回数などが含まれている。
図10は、実施の形態2にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図10では、移動経路が直角位置を通過する場合の移動経路の設定処理について説明する。なお、実施の形態1の図5で説明した処理と同様の処理については重複する説明を省略する。
移動指令解析部12は、加工プログラム102に含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を補間処理部38Xに送る。また、振動指令解析部11は、加工プログラム102に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を補間処理部38Xに送る。
トレランス値設定部23は、加工プログラムまたはラダープログラム等の何れに設定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス制御に用いるトレランス値を設定する。トレランス値設定部23は、トレランス制御に用いるトレランス値が0に設定(トレランス値=0が設定)されているか否かを判定する(ステップS110)。
トレランス値が0に設定されていない場合(ステップS110、No)、トレランス値設定部23は、加工ワーク70の加工形状が特定角度(例えば、60°)以下であればトレランス値を0にすることが設定されているか否かを判定する(ステップS120)。
加工形状が特定角度以下であればトレランス値を0にすることが設定されている場合(ステップS120、Yes)、トレランス値設定部23は、加工ワーク70の加工形状が特定角度以下であるか否かを判定する(ステップS130)。ここでは、特定角度が60°である場合について説明するが、特定角度は90°未満であれば何れの角度であってもよい。加工ワーク70が60°に加工される場合、工具66Aの移動経路は120°であり、加工ワーク70が300°に加工される場合、工具66Aの移動経路は60°である。
図11は、加工ワークのコーナ角度が60°であり、移動経路の角度が120°である場合の加工ワークの形状を示す図であり、図12は、加工ワークのコーナ角度が300°であり、移動経路の角度が60°である場合の加工ワークの形状を示す図であり、いずれの加工ワークも特定角度は60°である。すなわち、特定角度は、工具66Aの移動経路の角度の180°未満の角度を示す。
トレランス値設定部23は、加工プログラムに基づいて、加工ワーク70が指定された特定角度以下に加工されるか否かを判定する。例えば、加工プログラムによって、第1の座標(a,b)から第2の座標(c,d)への移動経路が設定されている場合、座標の情報のみでは、移動経路が60°のコーナであるか300°のコーナであるかを判定できない。そこで、トレランス値設定部23は、加工プログラムに含まれるノーズRの指令に基づいて、移動経路のコーナが60°であるか300°であるかを判定する。ノーズRは、工具66Aの右側で加工ワーク70を加工するか、工具66Aの左側で加工ワーク70を加工するかの情報を含んでいる。例えば、図11に示すように、工具66Aの右側で加工ワーク70を加工する場合、加工プログラムではG42のGコードが用いられる。また、図12に示すように、工具66Aの左側で加工ワーク70を加工する場合、加工プログラムではG41のGコードが用いられる。
トレランス値設定部23は、第1および第2の座標の情報と上述のGコードとから移動経路のコーナの角度を判定する。すなわち、図11、図12においては、加工プログラムにG42が含まれている場合には、加工ワーク70が60°に加工されると判断し、加工プログラムにG41が含まれている場合には、加工ワーク70が120°に加工されると判断する。
加工ワーク70の加工形状が特定角度以下である場合(ステップS130、Yes)、加工精度が重要となるので、トレランス値設定部23は、トレランス値を0に設定する(ステップS140)。
このように、ラダープログラム等でトレランス値が0に設定されていない場合であっても、移動経路が特定角度以下(例えば、60°以下)となるような場合には、トレランス値が自動で0となるようにパラメータ設定しておくことも可能である。
加工形状が特定角度以下であればトレランス値を0にすることが設定されていない場合(ステップS120、No)、数値制御装置1Xは、実施の形態2で説明する移動経路の設定処理は実行しない。
また、加工ワーク70の加工形状が特定角度よりも大きい場合(ステップS130、No)、数値制御装置1Xは、実施の形態2で説明する移動経路の設定処理は実行しない。
ラダープログラム等でトレランス値=0に設定されている場合(ステップS110、Yes)、またはトレランス値設定部23がトレランス値=0に設定した場合(ステップS140)、トレランス値設定部23は、トレランス値=0を波形生成部24に送る。波形生成部24は、X軸方向の移動経路およびZ軸方向の移動経路を生成する。
振動補正部25は、移動経路を示す振動波形に基づいて、X軸方向の移動経路である第1移動経路の振動波形、およびZ軸方向の移動経路である第2移動経路の振動波形を補正する。
振動補正部25は、指定されたトレランス値=0に合わせて、第1移動経路が終わる際の振動波形と、第2移動経路が始まる際の振動波形を補正する。
図13は、実施の形態2にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形およびZ軸方向の振動波形を含んでいる。図13では、X軸方向の振動波形52Xと、Z軸方向の振動波形52Zとを示している。図13の横軸は時間であり、振動波形52Xの縦軸はX軸方向の位置(軸位置)であり、振動波形52Zの縦軸はZ軸方向の位置(軸位置)である。実施の形態2では、振動波形52Xが第1の振動波形であり、振動波形52Zが第2の振動波形である。
波形生成部24が生成する振動波形は、X軸方向の振動波形およびZ軸方向の振動波形である。波形生成部24は、X軸方向の加工が完了した後のタイミングで、Z軸方向の加工を開始する振動波形を生成する。これにより、トレランス値0でのコーナ加工が可能となる。
波形生成部24は、X軸方向の振動波形が、X=10.0の位置に到達する時間T3にZ軸方向の加工が開始される振動波形を生成する。Z軸方向の振動波形が、Z=10.0の位置に到達する時間は時間T4である。なお、振動波形の到達時間は、図13で示されるように、振動波形の振動後進位置を結ぶ直線が終点位置に到達する時点とする。
振動補正部25は、指定されたトレランス値=0に合わせて、移動経路の切り替え前後で振動を補正する。このとき、振動補正部25は、実施の形態1で説明した処理と同様の処理によって、第1移動経路(X軸方向の移動経路)から第2移動経路(Z軸方向の移動経路)への切り替え前後で振動を補正する(ステップS150)。
具体的には、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の振動を開始する際の工具66Aの位置座標がX=0.0よりも小さなX軸方向の位置に移動しないよう振幅を少しずつ増加させる。すなわち、振動補正部25は、X軸方向の移動が開始する位置での振幅を0としつつ、X軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
また、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動が終了する際の工具66Aの位置座標がX=10.0より大きくならないよう振幅を収束させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形52Xである。
また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、Z軸方向の振動を開始する際の工具66Aの位置座標がZ=0.0よりも小さなZ軸方向の位置に移動しないよう振幅を少しずつ増加させる。すなわち、振動補正部25は、Z軸方向の移動が開始する位置での振幅を0としつつ、Z軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、X軸方向の収束と同様に、Z軸方向の移動が終了する際の工具66Aの位置座標がZ=10.0より大きくならないよう振幅を0に収束させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形52Zである。
本実施の形態では、図13に示すように、振動補正部25が、各振動波形の振動前進位置を結ぶ線が直線となるように、また振動後進位置を結ぶ線が直線となるように、各振動波形の振幅を補正する。これにより、コーナ部において加工ワークを削りすぎず、さらにコーナ角度の精度が良い加工が実現できる。
制御演算部2Xは、加工プログラム102および振動波形52X,52Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図13に示す振動波形52X,52Zの移動振動を実行することにより、図9に示した移動経路の加工が実現される。
このように実施の形態2によれば、トレランス値が0の場合には、数値制御装置1Xが、X軸方向の移動が終了した後にZ軸方向の移動を開始させるので、移動経路の切り替え前後で第1移動経路の振動波形と第2移動経路の振動波形とが合成されることはない。したがって、加工精度の良い振動切削を実現することができる。
また、振動波形の振幅が各軸の終点に向かって収束していくため、X軸方向の移動が終了した時点でX軸方向の移動を停止させることを加工プログラム内で規定する必要がないので、加工プログラムを容易に作成することが可能となる。
実施の形態3.
つぎに、図14から図17を用いてこの発明の実施の形態3について説明する。実施の形態3では、実施の形態1とは異なる方法でトレランス制御を実現する方法について説明する。実施の形態3では、トレランス値=mの場合に、X軸方向およびZ軸方向と異なる第3の方向の移動経路を用いた移動経路を設定する。実施の形態3では、X−Z平面内でX軸、Z軸とは異なる方向を第3の方向とし、第3の方向をX軸の基準ベクトルとZ軸の基準ベクトルを合成した方向とする。実施の形態3でも、実施の形態1と同様に加工プログラム101が用いられる。
図14は、実施の形態3にかかる数値制御装置が生成する移動経路を示す図である。実施の形態3では、数値制御装置1Xが、図3の加工プログラムから図14の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路R11,R1,R12とを含んでいる。
図14に示す移動経路の図では、横軸がZ軸方向の位置(Z軸位置)を示し、縦軸がX軸方向の位置(X軸位置)を示している。図14では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。また、図14では、工具66Aが通過するX軸上の位置を位置P1で示し、工具66Aが通過するZ軸上の位置を位置P2で示している。
位置P1と位置P2とを結ぶ経路は、工具66Aの移動経路R1である。位置P1,P2は、特定通過点P0が位置P1と位置P2とを結ぶ移動経路R1上となるよう設定される。図14では、位置P1のX座標はX2で示され、位置P2のZ座標はZ2で示されている。数値制御装置1Xは、開始点からスタートして、位置P1、特定通過点P0、位置P2を順番に通過して終了点まで到達するよう移動経路を設定する。具体的には、数値制御装置1Xは、開始点から位置P1までの移動経路R11と、位置P1から位置P2までの移動経路R1と、位置P2から終了点までの移動経路R12とを設定する。
ここで、移動経路R11,R1,R12の設定処理について説明する。図15は、実施の形態3にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図15では、第3の方向の移動経路を用いた移動経路を設定する処理について説明する。なお、実施の形態1の図5で説明した処理または実施の形態2の図10で説明した処理と同様の処理については重複する説明を省略する。
トレランス値設定部23は、0よりも大きいトレランス値が設定されているか否か(指定されたトレランス値>0であるか否か)を判定する(ステップS210)。0よりも大きいトレランス値が設定されていない場合(ステップS210、No)、数値制御装置1Xは、実施の形態3で説明する移動経路の設定処理は実行しない。
0よりも大きいトレランス値が設定されている場合(ステップS210、Yes)、トレランス値設定部23は、トレランス値を波形生成部24に送る。波形生成部24は、X軸方向の移動経路である第1移動経路、およびZ軸方向の移動経路である第2移動経路を生成する。波形生成部24が生成する第1移動経路は、X=0.0からX=10.0までを結ぶ移動経路である。波形生成部24が生成する第2移動経路は、Z=0.0からZ=10.0までを結ぶ移動経路である。
波形生成部24は、トレランス値に基づいて、第1移動経路上の位置P1および第2移動経路上の位置P2を算出する。波形生成部24は、第1移動経路上の位置P1と第2移動経路上の位置P2とを結ぶ第3の方向の移動経路R1を生成する(ステップS220)。第3の方向の移動経路R1は、位置P1から位置P2までを結ぶ経路であり、X軸方向の移動経路とZ軸方向の移動経路とが合成されることによって生成される。波形生成部24は、位置P1、特定通過点P0、位置P2を通過するよう、移動経路R1を生成する。なお、移動経路R1は、直線でもよいし曲線でもよい。
さらに、波形生成部24は、第1移動経路から工具66Aが通過しない移動経路R2を削除し、第2移動経路から工具66Aが通過しない移動経路R3を削除する。すなわち、波形生成部24は、第3の方向の移動経路R1と各軸との交点に基づいて、第1移動経路および第2移動経路から不要な移動経路を削除する(ステップS230)。第3の方向の移動経路R1とX軸との交点が位置P1であり、第3の方向の移動経路R1とZ軸との交点が位置P2である。波形生成部24は、第1移動経路から移動経路R2を削除した移動経路R11を生成し、第2移動経路から移動経路R3を削除した移動経路R12を生成する。移動経路R11は、X軸上のX=0.0からX=X2までを結ぶ移動経路であり、移動経路R12は、Z軸上のZ=Z2からZ=10.0までを結ぶ移動経路である。
波形生成部24は、移動経路R1,R11,R12に振動条件の振幅を加算した振動前進位置と、振幅を減算した振動後進位置とを求める。波形生成部24は、振動前進位置および振動後進位置に基づいて移動経路R1,R11,R12の振動波形を生成する。移動経路R11の振動波形は、X軸方向の移動経路の波振動形であり、移動経路R12の振動波形は、Z軸方向の移動経路の振動波形である。移動経路R1の振動波形は、X軸方向の移動経路とZ軸方向の移動経路とが合成された移動経路の振動波形である。
振動補正部25は、移動経路R1,R11,R12を示す振動波形に基づいて、移動経路R1,R11,R12の振動波形を補正する。
図16は、実施の形態3にかかる数値制御装置が移動振動の開始時間を補正する前の振動波形を説明するための図である。図16および後述の図17に示す振動波形は、X軸方向の振動波形と、Z軸方向の振動波形と、X軸方向およびZ軸方向を合成した第3の方向の振動波形と、を含んでいる。図16では、移動経路の切り替え前後で振動が補正された場合の振動波形を示している。
振動補正部25は、実施の形態1で説明した処理と同様の処理によって、移動経路の切り替え前後で振動を補正する(ステップS240)。具体的には、振動補正部25は、波形生成部24が生成したX軸方向の移動経路R11に対し、X軸方向の移動が開始する際の工具66AのX座標がX=0.0より小さくならないよう少しずつ振幅を増加させる。
また、振動補正部25は、波形生成部24が生成したX軸方向の移動経路R11に対し、X軸方向の移動が終了する際の工具66AのX座標がX=X2より大きくならないよう振幅を0に収束させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53Xである。
また、振動補正部25は、波形生成部24が生成した第3の方向の移動経路R1に対し、第3の方向の移動が開始する際の工具66AのZ座標がZ=0.0よりも小さくならず、且つ工具66AのX座標がX=X2よりも小さくならないよう少しずつ振幅を増加させる。
また、振動補正部25は、波形生成部24が生成した第3の方向の移動経路R1に対し、第3の方向の移動が終了する際の工具66AのX座標がX=10.0より大きくならず、且つ工具66AのZ座標がZ=Z2よりも大きくならないよう振幅を0に収束させる。第3の方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53XZである。
また、振動補正部25は、波形生成部24が生成したZ軸方向の移動経路R12に対し、Z軸方向の移動が開始する際の工具66AのZ座標がZ=Z2よりも小さくならないよう少しずつ振幅を増加させる。
また、振動補正部25は、波形生成部24が生成したZ軸方向の移動経路R12に対し、Z軸方向の移動が終了する際の工具66AのZ座標がZ=10.0よりも大きくならないよう振幅を0に収束させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53Zである。
図16では、振動波形53Xによる加工が完了し、振動波形53XZによる加工が開始する時間を時間T5で示し、振動波形53XZによる加工が完了し、振動波形53Zによる加工が開始する時間を時間T6で示している。
振動補正部25は、移動振動の開始時間である時間T5,T6を補正する(ステップS250)。図17は、実施の形態3にかかる数値制御装置が移動振動の開始時間を補正した後の振動波形を説明するための図である。
図17では、X軸方向の振動波形54Xと、第3の方向の移動振動の開始時間を補正した振動波形54XZと、Z軸方向の移動振動の開始時間を補正した振動波形54Zとを図示している。実施の形態3では、振動波形54Xが第1の振動波形であり、振動波形54Zが第2の振動波形であり、振動波形54XZが第3の振動波形である。
振動波形54Xは、図16に示した振動波形53Xと同様の振動波形である。振動波形54XZは、図16に示した振動波形53XZの開始時間を補正した振動波形であり、振動波形54Zは、図16に示した振動波形53Zの開始時間を補正した振動波形である。
振動補正部25は、振動波形54XZが特定通過点P0を通過し、且つX=X2の位置に最初に到達する時間T7で第3の方向の加工が開始されるよう振動波形54XZの開始時間を調整する。すなわち、振動補正部25は、振動波形54XZの開始時間を時間T7に変更する。このように、振動補正部25は、振動波形54Xが、X=X2の位置に到達するタイミングと、振動波形54XZを開始するタイミングが同じになるよう、振動波形54XZの開始時間を早める。これにより、工具66Aの振動を停止させることなく移動方向の切り替えを行うことができるので、滑らかな振動波形を実現することができる。
また、振動補正部25は、振動波形54XZが、Z=Z2、X=10.0の位置に最初に到達する時間T8で、振動波形54Zによる加工が開始されるよう振動波形54Zの開始時間を調整する。ここで、振動波形が所定の位置に最初に到達する時間とは、当該振動波形の極大点を結ぶ直線が所定の位置に到達する時間を言う。すなわち、振動補正部25は、振動波形54Zの開始時間を時間T8に変更する。このように、振動補正部25は、振動波形54XZが、Z=Z2、X=10.0の位置に最初に到達するタイミングと、振動波形54Zを開始するタイミングが同じになるよう、振動波形54Zの開始時間を早める。これにより、工具66Aの振動を停止させることなく移動方向の切り替えを行うことができるので、滑らかな振動波形を実現することができる。
制御演算部2Xは、加工プログラム101および振動波形54X,54XZ,54Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図17に示す振動波形54X,54XZ,54Zの移動振動を実行することにより、図14に示した移動経路の加工が実現される。
なお、振動波形54XZを開始させるタイミングは、振動波形54Xが、X=X2に最初に到達したタイミングから振動波形54Xの振幅が0となるまでの間であれば、何れのタイミングであってもよい。また、振動波形54Zを開始させるタイミングは、振動波形54XZが、Z=Z2に最初に到達したタイミングから振動波形54XZの振幅が0となるまでの間であれば、何れのタイミングであってもよい。
このように実施の形態3では、実施の形態1と同様に、トレランス値が0よりも大きい場合に、数値制御装置1Xが、トレランス値に基づいて、トレランス値に対応する特定通過点P0を工具66Aが通過する移動経路を生成する。したがって、トレランス値に対応する移動経路を設定することが可能となる。
実施の形態4.
つぎに、図18から図21を用いてこの発明の実施の形態4について説明する。実施の形態1から3では、移動経路の切り替え前後で振動を補正する処理を行ったが、実施の形態4では、工具66Aの刃先が加工ワーク70に干渉(接触)しない場合には、移動経路の切り替え前後で振動を補正する処理を行わない。
実施の形態4の処理を実施の形態1から3の何れかに適用する場合、何れに適用する場合も同様の処理が行われるので、実施の形態4では、実施の形態1で説明した移動経路の設定処理の際に移動経路の切り替え前後で振動を補正する処理を行わない場合について説明する。
図18は、実施の形態4にかかる数値制御装置が生成する移動経路を示す図である。実施の形態4では、数値制御装置1Xが、図3の加工プログラムから図18の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
図18に示す移動経路の図では、横軸がZ軸方向の位置(Z軸位置)を示し、縦軸がX軸方向の位置(X軸位置)を示している。図18では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。図18では、特定通過点P0のX座標をX3で示し、Z座標をZ3で示している。また、図18では、工具66Aが通過するX軸上の位置を位置P3で示し、工具66Aが通過するZ軸上の位置を位置P4で示している。
位置P3と位置P4とを結ぶ経路は、工具66Aの移動経路である。位置P3,P4は、特定通過点P0が位置P3と位置P4とを結ぶ移動経路上となるよう設定される。数値制御装置1Xは、開始点からスタートして、位置P3、特定通過点P0、位置P4を順番に通過して終了点まで到達するよう移動経路を設定する。
図19は、実施の形態4にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。ステップS310,S320の処理は、実施の形態1の図5で説明したステップS10,S20の処理と同様であるので、その説明を省略する。
波形生成部24は、実施の形態1で説明した処理と同様の処理によって、振動波形を生成する。すなわち、波形生成部24は、X軸方向の指令移動量および振動移動量を合成することによってX軸方向の移動経路に対応する振動波形を生成する。また、波形生成部24は、Z軸方向の指令移動量および振動移動量を合成することによってZ軸方向の移動経路に対応する振動波形を生成する。
振動補正部25は、加工ワーク70と工具66Aの位置関係を取得する(ステップS330)。具体的には、振動補正部25は、解析処理部37が解析することによって得られたノーズRの指令に基づいて、加工ワーク70が、工具66Aの移動経路が形成するコーナの内側にあるのか外側にあるのかの情報を得る。尚、コーナの内側とは180°未満の角度である側を言い、コーナの外側とは180°を超える角度である側を言う。
図11に示したように、加工ワーク70のコーナ形状における角度が、180°未満である場合、すなわち、加工ワーク70が、移動経路が形成するコーナの内側にある場合、移動方向の切り替え時に工具66Aの移動経路を補正しなくても、工具66Aと加工ワーク70とが干渉しない。この場合、振動補正部25は、直角位置の外側に工具66Aがはみ出しても良いと判断する。換言すると、図18に示した移動経路のコーナの内側に加工ワーク70がある場合、工具66Aが開始位置座標から終点位置座標までの範囲を超えても、加工後の加工ワーク70の形状に影響を与えない。そのため、振動補正部25は、移動方向の切り替え時に工具66Aの移動経路を補正しなくても、工具66Aと加工ワーク70とが干渉しないと判断する。
一方、図12に示したように、加工ワーク70が、工具66Aの移動経路のコーナの外側にある場合、移動方向の切り替え時に工具66Aの移動経路を補正しなければ、工具66Aと加工ワーク70とが干渉する。この場合、振動補正部25は、直角位置の外側に工具66Aがはみ出してはいけないと判断する。
図20は、実施の形態4にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形と、Z軸方向の振動波形とを含んでいる。図20では、X軸方向の移動経路に対応する振動波形55Xと、Z軸方向の移動経路に対応する振動波形55Zとを示している。図20の横軸は時間であり、振動波形55Xの縦軸はX軸方向の位置(軸位置)であり、振動波形55Zの縦軸はZ軸方向の位置(軸位置)である。
波形生成部24が生成する移動経路は、X軸方向の移動経路およびZ軸方向の移動経路である。波形生成部24は、X軸方向の加工が完了したタイミングで、Z軸方向の加工を開始する移動経路を生成する。
振動補正部25は、加工ワーク70と工具66Aの位置関係に基づいて、第1移動経路の振動前進位置または第2移動経路の振動後進位置が加工ワーク70に干渉するか否かを判定する(ステップS340)。すなわち、振動補正部25は、振動波形で示される位置が目標位置に到達する際に振動波形で示される位置が加工ワーク70に干渉するか否かを判定する。
第1移動経路の振動前進位置または第2移動経路の振動後進位置が加工ワーク70に干渉する場合(ステップS340、Yes)、振動補正部25は、実施の形態1と同様に、移動経路の切り替え前後で振動を補正する(ステップS350)。すなわち、第1移動経路の振動前進位置が加工ワーク70に干渉する場合には、振動補正部25は、X軸方向の振動波形に対し、振動前進位置が加工ワーク70に干渉しないよう、開始および終了の際の振幅を補正する。また、第2移動経路の振動後進位置が加工ワーク70に干渉する場合には、振動補正部25は、Z軸方向の振動波形に対し、振動後進位置が加工ワーク70に干渉しないよう開始および終了の際の振幅を補正する。
第1移動経路の振動前進位置および第2移動経路の振動後進位置が加工ワーク70に干渉しない場合(ステップS340、No)、振動補正部25は、移動経路の切り替え前後で振動を補正しない。
すなわち、振動補正部25は、第1移動経路の移動振動が終わる際に工具66Aが加工ワーク70に干渉しない場合には、第1移動経路の移動振動が終わる際のX軸方向の振動波形の振幅を収束させる補正を行わない。また、振動補正部25は、第2移動経路の移動振動が始まる際に工具66Aが加工ワーク70に干渉しない場合には、第2移動経路が始まる際のZ軸方向の振動波形の振幅を少しずつ増加させる補正を行わない。
ステップS340でNoの場合、またはステップS350の処理の後、振動補正部25は、実施の形態1と同様に、工具66Aが特定通過点P0を通過するよう、振動波形55Zを開始するタイミング(時間T9)を調整する。換言すると、振動補正部25は、Z軸方向の移動振動の開始時間を補正する(ステップS360)。
制御演算部2Xは、加工プログラム101および振動波形55X,55Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図20に示す振動波形55X,55Zの移動振動を実行することにより、図18に示した移動経路の加工が実現される。
このように、工具66Aが加工ワーク70に干渉しない場合、工具66Aが位置P3,P4からはみ出すデメリットは無い。工具66Aが加工ワーク70に干渉しない場合には、振動波形の振幅を補正しないことにより、工具66Aの振動を継続させることができるので、加工時間を短縮することができる。
なお、トレランス値は、ユーザ(オペレータ)によって指定されてもよい。この場合、ユーザが、加工プログラムまたはラダープログラムにトレランス値を格納することによってトレランス値が指定される。また、ユーザによって指定されるトレランス値は、トレランス値が直接指定される場合に限らず、段階指定されてもよい。段階設定されたトレランス値は、トレランス段階情報として、数値制御装置1Xの記憶部34に格納される。
図21は、実施の形態4にかかる数値制御装置で用いられるトレランス段階情報を説明するための図である。トレランス段階情報71は、加工精度に応じたトレランス値が段階的に設定された情報である。トレランス段階情報71では、トレランス値と、加工精度(加工時間)の段階とが対応付けされた情報である。例えば、トレランス段階情報71では、第1段階が0μmのトレランス値であり、第2段階が10μmのトレランス値である。また、トレランス段階情報71では、第4段階が30μmのトレランス値であり、第5段階が40μmのトレランス値である。
トレランス段階情報71では、段階が低いほど加工精度が優先されており、段階が高いほど加工時間が優先されている。すなわち、第1段階のトレランス値で加工した場合に最も加工精度が良くなり、第5段階のトレランス値で加工した場合に最も加工時間が短くなる。数値制御装置1Xのトレランス値設定部23は、ユーザに指定された段階と、トレランス段階情報71とに基づいて、トレランス値を設定する。
なお、トレランス段階情報71の段階の代わりにトレランス値の識別情報が用いられてもよい。すなわち、トレランス段階情報71は、トレランス値と、識別情報とが対応付けされた情報であってもよい。
また、トレランス段階情報71は、ユーザからの操作によってカスタマイズが可能となっている。また、トレランス段階情報71内の段階が加工プログラムなどで指定されてもよい。この場合、数値制御装置1Xのトレランス値設定部23は、加工プログラムなどで指定されている段階と、トレランス段階情報71とに基づいて、トレランス値を設定する。実施の形態1から3でもトレランス値設定部23は、トレランス段階情報71に基づいて、トレランス値を設定してもよい。
このように実施の形態4によれば、数値制御装置1Xは、工具66Aの刃先が加工ワーク70に干渉しない場合には、移動経路の切り替え前後で振動を補正しないので、振動波形の振幅を保ったままコーナ加工を行うことができる。これにより、振動波形の振幅の増加または減少に伴う加工時間の遅延を発生させることがないので、加工時間が長くなることを防止できる。
実施の形態5.
つぎに、図22を用いてこの発明の実施の形態5について説明する。実施の形態5では、所望の移動経路で加工を行うためのトレランス値を機械学習によって学習する。
図22は、実施の形態5にかかる数値制御装置の構成例を示す図である。数値制御装置1Yは、実施の形態1から4で説明した数値制御装置1Xと同様に、工作機械110に対して低周波振動切削の制御を実行する。数値制御装置1Yは、機械学習装置400を備えており、機械学習装置400が、トレランス制御の精度を上げるため、トレランス制御で用いられるトレランス値を学習し、トレランス制御の行動を決定する。
数値制御装置1Yは、数値制御装置1Xと比較して、制御演算部2Xの代わりに制御演算部2Yを備えている。制御演算部2Yは、制御演算部2Xと比較して、補間処理部38Xの代わりに補間処理部38Yを備え、軸データ出力部40の代わりに、軸データ入出力部46を備えている。また、制御演算部2Yは、機械学習装置400を備えている。
補間処理部38Yは、補間処理部38Xが有する構成要素に加えて、トレランス検出部26を備えている。トレランス検出部26は、トレランス値設定部23が決定したトレランス値(m)を取得して機械学習装置400に送る。
軸データ入出力部46は、実施の形態1で説明した軸データ出力部40の機能に加え、X軸サーボ制御部91およびZ軸サーボ制御部92から送られてくるフィードバック(FB:Feed-Back)位置(j)を受け付けて機械学習装置400に入力する機能を備えている。FB位置(j)は、トレランス値(m)を用いてトレランス制御した場合の実際の特定通過点の位置(座標)である。軸データ入出力部46は、X軸サーボ制御部91からはFB位置(j)のうちのX軸方向の位置を受け付け、Z軸サーボ制御部92からはFB位置(j)のうちZ軸方向の位置を受け付ける。
機械学習装置400は、学習部45と、状態観測部41とを備えている。状態観測部41は、FB位置(j)およびトレランス値(m)を状態変数(i)として観測する。学習部45は、FB位置(j)およびトレランス値(m)の状態変数(i)に基づいて作成される訓練データセットに従って、行動(n)、すなわち次回に決定するトレランス値(m)を学習する。
学習部45が用いる学習アルゴリズムはどのようなものを用いてもよい。一例として、強化学習(Reinforcement Learning)を適用した場合について説明する。強化学習は、ある環境内におけるエージェント(行動主体)が、現在の状態を観測し、取るべき行動(n)を決定する、というものである。エージェントは行動(n)を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q−learning)やTD学習(TD−learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式(行動価値テーブル)は式(1)で表される。
式(1)において、stは時刻tにおける環境を表し、atは時刻tにおける行動を表す。行動atにより、環境はst+1に変わる。rt+1はその環境の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。Q学習を適用した場合、次回のトレランス値が行動atとなる。
式(1)で表される更新式は、時刻t+1における最良の行動aの行動価値が、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
学習部45は、報酬計算部42と、関数更新部43とを備えている。報酬計算部42は、状態変数(i)である、トレランス値(m)およびFB位置(j)に基づいて、報酬(k)を計算する。報酬計算部42は、例えば、トレランス値(m)に対応する特定通過点P0の位置と、実際の特定通過点P0であるFB位置(j)との差が小さい場合には報酬(k)を増大させる(例えば「1」の報酬を与える)。他方、報酬計算部42は、トレランス値(m)とFB位置(j)との差が大きい場合には報酬(k)を低減する(例えば「−1」の報酬を与える)。報酬計算部42は、トレランス値(m)とFB位置(j)との差が小さいほど大きな報酬を与え、差が大きいほど小さな報酬を与えてもよい。トレランス値(m)およびFB位置(j)は、公知の方法に従って抽出される。トレランス値(m)とFB位置(j)との差が「0」のときは、最大報酬とする。
関数更新部43は、報酬計算部42によって計算される報酬に従って、行動(n)(次回のトレランス値)を決定するための関数を更新する。例えばQ学習の場合、関数更新部43は、式(1)で表される行動価値関数Q(st,at)を、次回のトレランス値(m)を決定するための関数として用いる。例えば、学習部45は、報酬が最大となる、トレランス値(m)とFB位置(j)との差が「0」となる次回のトレランス値(m)を決定する。
以上から次回のトレランス値(m)が決定され、報酬が最大となる次回のトレランス値(m)となるよう判定条件を変更するのみで、他の制御方法は実施の形態1から4と同じでよい。
なお、機械学習装置400は、制御演算部2Yの外部に配置されてもよい。また、実施の形態5では、強化学習を利用して機械学習する場合について説明したが、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
このように実施の形態5によれば、機械学習装置400が、現状のトレランス値(m)およびFB位置(j)に基づいて、適切なトレランス値(m)を学習するので、低周波振動切削のトレランス加工時の加工精度を向上させることができる。
ここで、数値制御装置1X,1Yが備える制御演算部2X,2Yのハードウェア構成について説明する。図23は、実施の形態1から5にかかる制御演算部のハードウェア構成例を示す図である。なお、制御演算部2X,2Yは、同様のハードウェア構成を有しているので、ここでは制御演算部2Yのハードウェア構成について説明する。
制御演算部2Yは、図23に示したすなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)またはROM(Read Only Memory)などである。
制御演算部2Yは、プロセッサ301が、メモリ302で記憶されている、制御演算部2Yの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部2Yの手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
また、制御演算部2Yを専用のハードウェアで実現してもよい。また、制御演算部2Yの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。