(57)【要約】      （修正有）【課題】通常ＮＣと同様の操作性にて電子カム制御時の工具刃先位置補正を可能にした工作機械の数値制御装置を提供する。【解決手段】工具刃先位置補正量を補正量記憶手段から読み出すと共に、電子カム制御中に該制御に重畳し前記工具刃先位置補正量とＮＣプログラムとに基づき電子カムプログラムへの変換を行うトランスフォーマ手段と、該手段による変換を行う指令が行われた後で、ＮＣプログラムと工具刃先位置補正量とから電子カムデータテーブルへの変換が前記トランスフォーマ手段において完了したことを検出する変換終了検出手段と、該手段による検出が行われた時に、少なくとも前記電子カムデータテーブルにおけるデータを再変換後のデータと置換する置換手段とを備える。【選択図】    図５
2004326618.tif 000002
【特許請求の範囲】
【請求項１】
素材を所望の形状に加工するために作成されたＮＣプログラムを記憶するＮＣプログラム記憶部と、
該ＮＣプログラムの内容と機械に設定されたパラメータとを解析し、それによって指定されている動作が最適に行われるように前記ＮＣプログラムを変換する最適化処理を行うトランスフォーマ手段と、
該手段によって作成された最適化メインプログラムと最適化データとを備える最適化プログラムと、
該プログラムに基いた工作機械の稼動時に使用するための最適化データを記憶保持するための第１の最適化データ記憶部と、
前記最適化プログラムに基づいた工作機械の稼働時に使用するための最適化データを記憶保持する第２の最適化データ記憶部と、
前記最適化プログラムに基づいて工作機械が稼動している最中に、前記トランスフォーマ手段は、前記第１又は第２の最適化データ記憶部に記憶される最適化データの内の一方の最適化データにより工作機械に稼動を行わせている最適化プログラムの変換元になるＮＣプログラムに基づいて、新たに最適化データを作成可能とされていると共に、前記第１又は第２の最適化データ記憶部の内の他方の最適化データ記憶部に変換後データを書き込むようにしていることを特徴とする工作機械の数値制御装置。
【請求項２】
前記トランスフォーマ手段は、工作機械を稼動させている最適化データにおけるデータのうち、いずれのデータが使用されているかを検出する現在実行中データ検出手段と、
該手段が検出した現在実行中のデータよりも前の既に加工に使用済みであるデータを、これに相当する変換後のデータに置換する第１のデータ置換手段と、
前記現在実行中データ検出手段が検出した現在実行中のデータによる加工終了を判定する加工終了判定手段と
該手段により加工終了が判定された時に現在実行中のデータを、これに相当する変換後データに置換する第２のデータ置換手段と、
全てのデータ置換が終了したか否かを判定するデータ置換判定終了手段とを更に備えることを特徴とする請求項１に記載の工作機械の数値制御装置。
【請求項３】
前記トランスフォーマ手段は、最適化データにより工作機械を稼動させている最中に再変換された最適化データを得るべく再変換を実行すると共に、再変換が終了したことを判定する再変換終了判定手段と、
該手段の終了判定がされた後に稼働中の工作機械を制御軸の制御動作のみが停止されるワンサイクル停止状態に移行させるワンサイクル停止手段と、
ワンサイクル停止後に工作機械の制御軸の制御動作を復帰させる運転再開手段とを備え、
前記第１の最適化データ記憶部と第２最適化データ記憶部との間でのデータ転送をワンサイクル停止中に行うようにしたことを特徴とする請求項１に記載の工作機械の数値制御装置。
【請求項４】
前記トランスフォーマ手段は、最適化データにより工作機械を稼動させている最中に再変換された最適化データを得るべく再変換を実行すると共に、再変換が終了したことを判定する再変換終了判定手段と、
該手段の終了判定がされた後に稼働中の工作機械を制御軸の制御動作のみが停止されるワンサイクル停止状態に移行させるワンサイクル停止手段と、
ワンサイクル停止後に工作機械の制御軸の制御動作を復帰させる運転再開手段と、
前記ワンサイクル停止中に最適化メインプログラムが最適化データを参照しに行く為に設定される最適化データ記憶部番号を、変換された最適化データが記憶される最適化データ記憶部番号に書き換える最適化データ記憶部番号書き換え手段とを更に備えるようにしたことを特徴とする請求項１に記載の工作機械の数値制御装置。
【請求項５】
基準とする軸の位置に対応して制御軸の指令位置となるデータを加工するワークに対応して記憶保持するべく備えられる電子カムデータテーブルと、
検出された前記基準軸の値に対応する前記データを読み出して対象制御軸の移動制御を行う電子カムプログラムを実行する電子カム制御手段と、
工具の刃先位置の補正量を入力するための工具刃先位置補正量入力手段と、
前記補正量を記憶保持するための補正量記憶手段と、
を備える工作機械の数値制御装置において、
前記電子カムプログラムへ変換されるＮＣプログラムを記憶保持するためのＮＣプログラム記憶部と、
前記工具刃先位置補正量を前記補正量記憶手段から読み出すと共に、電子カム制御実行中に該制御に並行して前記工具刃先位置補正量と前記ＮＣプログラムとに基づいて電子カムプログラムへの変換を行うトランスフォーマ手段と、
該手段の実行を数値制御装置に対して指令入力する変換指令手段と、
該手段による変換指令が行われた後で、ＮＣプログラムと工具刃先位置補正量とから少なくとも前記電子カムデータテーブルへの変換が前記トランスフォーマ手段において完了したことを検出する再変換終了検出手段と、
該手段による検出が行われた時に、少なくとも前記電子カムデータテーブルにおけるデータを再変換後のデータと置換する置換手段と、
を備えることを特徴とする工作機械の数値制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工作機械の数値制御装置に関するものである。特に、工具の刃先位置の補正に関する。
【従来の技術】
現在、工作機械に備えられる数値制御装置に記憶される加工のためのプログラムのタイプとしては、Ｇ，Ｍ，Ｔコード等のコード体系を持つ所謂ＮＣプログラムのような逐次計算型、このインタープリタとして解釈実行されるべきプログラムを予め電子カムデータ等の形に変換する事前変換型が知られている。（電子カムデータとは、制御軸に供給される位置指令の元となるデータを基準軸位置に対応させてテーブルの形態にて、数値制御装置に記憶されるデータのことである。）逐次計算型では、１行毎読み込んで内容を解釈し、数値制御装置がサーボモータへ指令する機械座標値を計算し、逐次前記サーボモータへ指令するというものである。逐次計算型では、ＮＣコードを一行一行読み込んで解釈し制御対象への指令を実行するということが考え方の基本になっているので、このタイプの加工プログラムを利用した数値制御の場合、加工速度を上げていくためには、加工プログラムにおけるブロックの先読み等の種々の工夫が必要になる。事前変換型は、最初に全てのＮＣプログラムを読み込んで内容を解釈し事前変換を行った上で、事前変換を行った加工プログラムを作成し記憶する。電子カム制御の例で言えば、前記電子カムデータを記憶する。ある基準軸位置における前記サーボモータへ指令するデータを電子カムデータテーブルに参照し、データの読み出しを実行する。数値制御装置は、電子カム制御による工作機械の運転時に、ある基準軸位置に対応したデータに基づいて、位置指令を対象制御軸へ指令をするというものである。
【０００２】
運転時に、逐次計算型は１行を解釈する時間が必要なのに対して、事前変換型は１行を解釈する時間が不要になる等、結果として加工時間を短縮する等の最適化を加工プログラムに予め施すことが可能である。しかしながら、事前変換型のものでは、所謂ＮＣプログラムを作成した後に、上述のように電子カムデータ等のデータ及びこれを読み出すメインプログラムを予め作成するための時間と作業が必要である。このように作成された電子カムデータ、メインプログラムを使用して加工を行うようにしているものとして、特許文献１に記載されている工作機械が既に公知になっている。
ところが、いずれの型の加工プログラムを採ったとしても、例えば、加工を行っていく過程で、工具の摩耗が進行し、作業の最初と最後の方とでは、工具の刃先位置がずれてくるために、工具の刃先位置の補正を随時可能にすることが必要である。つまり、機械固有情報に基づき設定された情報が経時変化し、これを補正するための情報を加工プログラムに反映させることが必要になる。
【０００３】
上述のような、工具の刃先位置の補正が必要になる場合に、事前変換型にあっては、数値制御装置に対して必要な補正量を数値制御装置に入力し、改めて工具の移動軌跡を計算し直すことによって、工具の刃先位置などの補正量が反映された形での工具の移動軌跡となり、ワークを適正に加工することが可能になると言うものである。
【０００４】
【特許文献１】
特開２００３−５８２１１号公報
【発明が解決しようとする課題】
しかしながら、上記従来技術によれば、まず、事前変換型のプログラムにおいて、工具の移動軌跡の補正を行うためには、工作機械の運転を一旦停止させる必要がある。工作機械の運転中に、工具の移動軌跡の補正を行うことが想定されていない為である。（事前変換型の加工プログラムデータは、補間済みのデータであり、加工中これに補正量を加えることは困難。）
【０００５】
これに対して、Ｇ，Ｍ，Ｔ等のコード体系を利用した所謂ＮＣプログラムを使用してワークを加工する時には、逐次、補間が計算されるため、加工中に工具の刃先位置の補正が可能で、場合によっては、その補正入力が即ワークの加工に対して反映され、この点においては、逐次計算型のＮＣプログラムを用いているものの方が使い勝手等の利便性が高いものになっている。
【０００６】
つまり、逐次計算型と比較すると、事前変換型は、工具の刃先位置の補正をするために、工作機械の運転を一旦止める必要があった為にトータルでの加工時間が延びてしまう問題、又、刃先位置の補正の都度、工作機械の運転を停止したり、起動したりするなどの煩雑な作業が伴ってしまう問題、結果として、ＮＣプログラムを用いての加工と比較すると、使用感が全く異なったものとなってしまい、使用性が悪くなる等の種々の問題を、従来の技術は内包していた。
【０００７】
本発明は斯かる実情に鑑み、電子カム制御が実行されるようにした工作機械にあっても、ウエアオフセットの変更を、所謂ＮＣ制御を行うものと同様に簡単な操作で可能にした工作機械の制御装置を提供しようとするものである。
【０００８】
【課題を解決するための手段】
本発明の工作機械の制御装置は、素材を所望の形状に加工するために作成されたＮＣプログラムを記憶するＮＣプログラム記憶部と、該ＮＣプログラムの内容と機械に設定されたパラメータとを解析し、それによって指定されている動作が最適に行われるように前記ＮＣプログラムを変換する最適化処理を行うトランスフォーマ手段と、該手段によって作成された最適化メインプログラムと最適化データとを備える最適化プログラムと、該プログラムに基いた工作機械の稼動時に使用するための最適化データを記憶保持するための第１の最適化データ記憶部と、前記最適化プログラムに基づいた工作機械の稼働時に使用するための最適化データを記憶保持する第２の最適化データ記憶部と、前記最適化プログラムに基づいて工作機械が稼動している最中に、前記トランスフォーマ手段は、前記第１又は第２の最適化データ記憶部に記憶される最適化データの内の一方の最適化データにより工作機械に稼動を行わせている最適化プログラムの変換元になるＮＣプログラムに基づいて、新たに最適化データを作成可能とされていると共に、前記第１又は第２の最適化データ記憶部の内の他方の最適化データ記憶部に変換後データを書き込むようにしていることを特徴とする。
第２の手段によれば、前記トランスフォーマ手段は、工作機械を稼動させている最適化データにおけるデータのうち、いずれのデータが使用されているかを検出する現在実行中データ検出手段と、該手段が検出した現在実行中のデータよりも前の既に加工に使用済みであるデータを、これに相当する変換後のデータに置換する第１のデータ置換手段と、前記現在実行中データ検出手段が検出した現在実行中のデータによる加工終了を判定する加工終了判定手段と、該手段により加工終了が判定された時に現在実行中のデータを、これに相当する変換後データに置換する第２のデータ置換手段と、全てのデータ置換が終了したか否かを判定するデータ置換判定終了手段とを更に備えることを特徴とする。
第３の手段によれば、前記トランスフォーマ手段は、最適化データにより工作機械を稼動させている最中に再変換された最適化データを得るべく再変換を実行すると共に、再変換が終了したことを判定する再変換終了判定手段と、該手段の終了判定がされた後に稼働中の工作機械を制御軸の制御動作のみが停止されるワンサイクル停止状態に移行させるワンサイクル停止手段と、ワンサイクル停止後に工作機械の制御軸の制御動作を復帰させる運転再開手段とを備え、前記第１の最適化データ記憶部と第２最適化データ記憶部との間でのデータ転送をワンサイクル停止中に行うようにしたことを特徴とする。
第４の手段によれば、前記トランスフォーマ手段は、最適化データにより工作機械を稼動させている最中に再変換された最適化データを得るべく再変換を実行すると共に、再変換が終了したことを判定する再変換終了判定手段と、該手段の終了判定がされた後に稼働中の工作機械を制御軸の制御動作のみが停止されるワンサイクル停止状態に移行させるワンサイクル停止手段と、ワンサイクル停止後に工作機械の制御軸の制御動作を復帰させる運転再開手段と、前記ワンサイクル停止中に最適化メインプログラムが最適化データを参照しに行く為に設定される最適化データ記憶部番号を、変換された最適化データが記憶される最適化データ記憶部番号に書き換える最適化データ記憶部番号書き換え手段とを更に備えるようにしたことを特徴とする。
又、第５の手段によれば、本発明の工作機械の制御装置は、基準とする軸の位置に対応して制御軸の指令位置となるデータを加工するワークに対応して記憶保持するべく備えられる電子カムデータテーブルと、検出された前記基準軸の値に対応する前記データを読み出して対象制御軸の移動制御を行う電子カムプログラムを実行する電子カム制御手段と、工具の刃先位置の補正量を入力するための工具刃先位置補正量入力手段と、前記補正量を記憶保持するための補正量記憶手段と、を備える工作機械の数値制御装置において、前記電子カムプログラムへ変換されるＮＣプログラムを記憶保持するためのＮＣプログラム記憶部と、前記工具刃先位置補正量を前記補正量記憶手段から読み出すと共に、電子カム制御実行中に該制御に並行して前記工具刃先位置補正量と前記ＮＣプログラムとに基づいて電子カムプログラムへの変換を行うトランスフォーマ手段と、該手段の実行を数値制御装置に対して指令入力する変換指令手段と、該手段による変換指令が行われた後で、ＮＣプログラムと工具刃先位置補正量とから少なくとも前記電子カムデータテーブルへの変換が前記トランスフォーマ手段において完了したことを検出する再変換終了検出手段と、該手段による検出が行われた時に、少なくとも前記電子カムデータテーブルにおけるデータを再変換後のデータと置換する置換手段と、を備えることを特徴とするものである。
【０００９】
【発明の実施の形態】
以下、図面を参照しながら本発明による工作機械の数値制御装置の好適な実施形態について詳細に説明する。
これより、まず第１の実施形態について説明を行う。
【００１０】
図１は、本発明の実施形態に係る数値制御工作機械の構成を示すブロック図である。図１において、工作機械１は、主軸回転用モータ１１、工具移動用モータ２１、被加工物移動用モータ３１、工具回転用モータ４１及び各モータ１１，２１，３１，４１の駆動を制御するための制御ユニット部５１を有している。
【００１１】
主軸回転用モータ１１は、被加工物が保持可能に構成された主軸（図示せず）を回転駆動させるためのもので、駆動回路１２及び主軸回転制御回路１３等を介して制御ユニット部５１に接続されている。また、主軸回転用モータ１１には、主軸回転用モータ１１の回転を検知するためのパルスエンコーダ１４が設けられている。このパルスエンコーダ１４の出力は制御ユニット部５１及び速度信号生成回路１５に接続されており、パルスエンコーダ１４から出力される回転検出信号が制御ユニット部５１及び速度信号生成回路１５に入力される。パルスエンコーダ１４は、主軸回転用モータ１１（主軸）の回転に同期して回転検出信号を発生し、制御ユニット部５１及び速度信号生成回路１５に出力する。速度信号生成回路１５は、パルスエンコーダ１４から出力される回転検出信号を主軸回転用モータ１１（主軸）の回転速度をあらわす主軸回転速度信号に変換する。速度信号生成回路１５の出力は主軸回転制御回路１３に接続されており、変換された主軸回転速度信号が主軸回転制御回路１３に入力される。
【００１２】
主軸回転制御回路１３は、後述するクロック信号発生回路にて発生して出力されたクロック信号を基準にして所望の回転速度となるように被加工物（主軸）の回転を制御するためのものであり、制御ユニット部５１からＩ／Ｆ部５２を介して出力される主軸回転速度指令信号と、速度信号生成回路１５から出力される主軸回転速度信号とを比較して、その差に応じた制御信号をクロック信号を基準にして生成する。主軸回転制御回路１３にて生成された制御信号は、駆動回路１２に出力される。
【００１３】
駆動回路１２は、主軸回転制御回路１３から出力された制御信号に基づいて、主軸回転用モータ１１（主軸）の回転速度が後述する主軸回転速度指令値となるように主軸回転用モータ１１への供給電力を制御する。これら駆動回路１２、主軸回転制御回路１３、及び、速度信号生成回路１５は、主軸回転用モータ１１（主軸）の回転速度のフィードバック制御系を構成している。
【００１４】
次に、工具移動用モータ２１は、被加工物を加工するための工具（旋削加工用バイト等、回転工具（ドリル、タップ等））を、たとえば主軸回転用モータ１１（主軸）の回転中心軸に対して直交する方向（Ｘ軸方向、Ｙ軸方向）や軸方向（Ｚ軸方向）に移動させるためのものである。駆動回路２２、工具送り制御回路２３及びＩ／Ｆ部５２を介して制御ユニット部５１に接続されている。また、工具移動用モータ２１には、工具移動用モータ２１の回転を検出するパルスエンコーダ２４が設けられている。このパルスエンコーダ２４の出力は工具送り制御回路２３に接続されており、パルスエンコーダ２４の回転検出信号が工具送り制御回路２３に入力される。パルスエンコーダ２４は、工具移動用モータ２１の所定回転角度毎に回転位置信号を発生して、工具送り制御回路２３に出力する。
【００１５】
工具送り制御回路２３は、パルスエンコーダ２４から出力された回転位置信号に基づいて実際の工具の移動位置を認識すると共に、認識した実際の工具の移動位置と後述する制御ユニット部５１からＩ／Ｆ部５２を介して出力される工具位置指令信号とを比較して、この比較結果に基づいて工具駆動信号を生成する。工具送り制御回路２３にて生成された工具駆動信号は、駆動回路２２に出力される。駆動回路２２は、工具送り制御回路２３から出力された工具駆動信号に基づいて工具移動用モータ２１への供給電力を制御する。これら、駆動回路２２及び工具送り制御回路２３は、工具の移動位置のフィードバック制御系を構成している。
【００１６】
被加工物移動用モータ３１は、被加工物を、たとえば主軸回転用モータ１１（主軸）の回転中心軸に対して平行な方向（Ｚ軸方向）に移動させるためのもので、駆動回路３２、被加工物送り制御回路３３及びＩ／Ｆ部５２を介して制御ユニット部５１に接続されている。また、被加工物移動用モータ３１には、被加工物移動用モータ３１の回転を検出するパルスエンコーダ３４が設けられている。このパルスエンコーダ３４の出力は被加工物送り制御回路３３に接続されており、パルスエンコーダ３４の回転検出信号が被加工物送り制御回路３３に入力される。パルスエンコーダ３４は、被加工物移動用モータ３１の所定回転角度毎に回転検出信号を発生して、被加工物送り制御回路３３に出力する。
【００１７】
被加工物送り制御回路３３は、パルスエンコーダ３４から出力された回転検出信号に基づいて実際の被加工物の移動位置を認識すると共に、認識した実際の被加工物の移動位置と制御ユニット部５１からＩ／Ｆ部５２を介して出力される被加工物位置指令信号とを比較して、この比較結果に基づいて被加工物駆動信号を生成する。所定回転角度毎に生成された被加工物駆動信号は、駆動回路３２に出力される。駆動回路３２は、所定回転角度毎に出力された被加工物駆動信号に基づいて被加工物移動用モータ３１への供給電力を制御する。これら、駆動回路３２及び被加工物送り制御回路３３は、被加工物の移動位置のフィードバック制御系を構成している。
【００１８】
前記工具に備えられた回転工具などを回転させる工具回転用モータ４１は、回転工具であるドリルや、タップ、フライスカッターなどを回転駆動させるためのもので、駆動回路４２及び工具回転制御回路４３等を介して制御ユニット部５１に接続されている。また、工具回転用モータ４１には、該モータ４１の回転を検知するためのパルスエンコーダ４４が設けられている。このパルスエンコーダ４４の出力は制御ユニット部５１にＩ／Ｆ部５２を介して接続されており、パルスエンコーダ４４から出力される回転検出信号が制御ユニット部５１に入力される。パルスエンコーダ４４は、工具回転用モータ４１の回転に同期して回転検出信号を発生し、制御ユニット部５１に出力する。
【００１９】
工具回転制御回路４３は、パルスエンコーダ４４からの信号を基準にして所望の回転速度となるように回転工具の回転を制御するためのものであり、制御ユニット部５１から出力される工具回転速度指令信号と、パルスエンコーダ４４から出力される信号とを比較して、その差に応じた制御信号をクロック信号を基準にして生成する。工具回転制御回路４３にて生成された制御信号は、駆動回路４２に出力される。
【００２０】
駆動回路４２は、工具回転制御回路４３から出力された制御信号に基づいて、工具回転用モータ４１の回転速度が工具回転速度指令値となるように工具回転用モータ４１への供給電力を制御する。これら駆動回路４２、工具回転制御回路４３、及び、パルスエンコーダ４４により工具回転用モータ４１の回転速度のフィードバック制御系を構成している。
【００２１】
制御ユニット部５１は、図１に示されるように、ＣＰＵ５３、分割カウンタ／タイマー部５４、ＲＯＭ６４、カウント部５５等を有している。ＣＰＵ５３は、制御ユニット部５１全体の信号処理等をつかさどる演算部である。カウント部５５は、Ｉ／Ｆ部５２に接続されており、パルスエンコーダ１４又はパルスエンコーダ４４から出力された回転検出信号がＩ／Ｆ部５２を介して入力され、この入力された回転検出信号の発生回数をカウントするように構成されている。また、カウント部５５は、ＣＰＵ５３にも接続されており、パルスエンコーダ１４又はパルスエンコーダ４４から出力された回転検出信号の発生回数をカウントした結果をＣＰＵ５３に出力するようにも構成されている。分割カウンタ／タイマー部５４は、所定の周期、たとえば４ミリ秒周期のタイミング信号を生成して出力するように構成されており、分割カウンタ／タイマー部５４にて生成された４ミリ秒周期のタイミング信号はＣＰＵ５３に出力される。なお、タイミング信号の周期は上述した４ミリ秒に限られることなく、ＣＰＵ５３の処理能力、パルスエンコーダ１４の分解能、各モータ１１，２１、３１，４１の性能等を考慮して適宜設定可能である。
【００２２】
制御ユニット部５１には、更に、ＲＡＭ５６が備えられている。ＲＡＭ５６には、ＮＣプログラム記憶部５７，運転プログラム記憶部５８，機械固有情報記憶部５９，最適化メインプログラム記憶部６０，第１最適化データ記憶部６１，第２最適化データ記憶部６２，最適化用ＮＣプログラム記憶部６３とが設けられている。又、ＲＡＭ５６は、ＣＰＵ５３における各種演算の結果を書き込み読み出し可能として、一時的に記憶するように構成されている。
【００２３】
ＮＣプログラム記憶部５７は、複数種類のワークの加工に対応できるように、それぞれのワークの加工用ＮＣプログラムが、複数記憶される領域である。この記憶領域に対して操作入力装置６６を操作しアクセスすることによって、所望の加工用ＮＣプログラムを選択可能となるようにしている。
【００２４】
運転プログラム記憶部５８は、工作機械１を実際に稼働させるためのＮＣプログラム又は、最適化処理がされて得られた最適化メインプログラムと最適化データとよりなる最適化プログラムのうちの最適化メインプログラムのみを記憶させる領域となっている。つまり、工作機械１をＮＣプログラムで稼動させるときには、ＮＣプログラム記憶部５７に記憶されているＮＣプログラムのいずれかが選択されて、運転プログラム記憶部５８にロードされ、あるいは、ＮＣ操作盤（不図示）に備えられたモニター上で作成されたＮＣプログラムがそのままこの領域にロードされる。一方、最適化プログラムで稼動させる時には、最適化メインプログラムのみが、運転プログラム記憶部５８に、ロードされる。
【００２５】
機械固有情報記憶部５９は、工具のオフセット値、製品長、その他のパラメータ等を記憶する為に設けられている領域である。
最適化メインプログラム記憶部６０は、ＲＯＭ６４に記憶されるプログラムであるトランスフォーマ６５によって、変換作成された最適化メインプログラムと最適化データのうち、最適化メインプログラムを最初に記憶する場所である。最適化メインプログラムは、一旦、最適化メインプログラム記憶部６０に記憶された後、そのまま運転プログラム記憶部５８にロードされる。尚、ここでは、最適化メインプログラム記憶部６０をＲＡＭ５６上に領域として設定しているが、ＨＤＤ等の外部記憶装置に領域が設定される方がより好ましい。バックアップとして保存しておくことで、そのまま運転プログラム記憶部５８にロード出来るからである。
【００２６】
第１最適化データ記憶部６１は、上述したようにＮＣプログラムをトランスフォーマ６５によって変換した際に、作成された最適化データを記憶する領域である。又、この例においては、運転プログラム記憶部５８にロードされているのが最適化メインプログラムであった場合には、この第１最適化データ記憶部６１に記憶される最適化データを参照するようになっている。最適化データの具体例としては、電子カムデータを一例として挙げることが出来る。その場合は、最適化メインプログラムに電子カム制御を実行するコマンドが含まれており、このコマンドが参照するデータが記憶される領域となっている。尚、電子カム制御とは、基準軸に対して位置のデータを対応させたデータテーブルを備えて、基準軸（この場合は、主軸の累積回転数、回転角、あるいは時間軸）変化に応じてＣＰＵ５３が、位置のデータをテーブルより読み出して、指令位置として確定して各制御軸に対して位置指令として出力することで位置制御を行うようにしたものである。最適化プログラムの他の例については、後述する。
【００２７】
又、第２最適化データ記憶部６２は、この例においては、現在工作機械１を稼動させている最適化プログラムを、再変換した際に得られる最適化データを記憶させるための領域になっている。つまり、現在稼働中の最適化プログラムから新しく最適化用ＮＣプログラム記憶部６３に記憶されたＮＣプログラムと更新された機械固有情報記憶部５９のデータとに基づき変換したプログラムへの切替を行う場合に、変換と稼動をＣＰＵ５３により同時に実行した際には、変換後の最適化データを記憶しておく領域が確保できていなかった。つまり、工作機械１が稼動するための最適化データを一旦記憶部から削除した上で、新しく変換した最適化データをロードすることになり、その間工作機械１が稼動するための最適化データが一瞬存在しないことになる。これへ対策するために、第２最適化データ記憶部６２は設定されるものである。
【００２８】
最適化用ＮＣプログラム記憶部６３は、変換を既に行ったＮＣプログラムを再変換が必要になったときに備えて記憶しておくために設定される領域である。トランスフォーマ６５によって最適化メインプログラム及び最適化データを変換作成する際に、トランスフォーマ６５は、最適化メインプログラム及び最適化データを用いて、再変換することは出来ない為、変換を既に一回以上行ったＮＣプログラムを記憶しているのである。
【００２９】
ＲＯＭ６４は、各種処理プログラムを記憶する記憶部であって、その一部に、トランスフォーマ６５が記憶されている。又、電子カム制御を行うコマンドもこれに記憶されている。
【００３０】
Ｉ／Ｆ部５２は、後述するようにＣＰＵ５３にて確定された被加工物の移動位置をあらわすことになる被加工物位置指令信号を被加工物送り制御回路３３に出力する。同じくＣＰＵ５３にて確定された工具の移動位置をあらわすことになる工具位置指令信号を工具送り制御回路２３に出力する。ＣＰＵ５３にて演算されて確定される主軸の回転速度をあらわすことになる主軸回転速度指令信号を主軸回転制御回路１２に出力する。各パルスエンコーダ１４，２４，３４，４４から出力された回転検出信号をＣＰＵ５３、カウント部５５に入力するための信号入出力部である。
【００３１】
次に、図２のフローチャートを参照しながら制御ユニット５１において実行される処理を説明する。
工作機械１は、プログラムにより運転される自動運転モード、数値制御操作盤（不図示）上の各種ボタンを利用して機械の運転を行う手動運転モード、あるいはＮＣプログラム等の編集を行う編集モードなどを備えている。
【００３２】
まず、Ｓ２０１のプログラムの選択判定が行われる。この段階でのプログラム選択は、ＮＣプログラム記憶部５７に記憶されるＮＣプログラムのどれを使用して加工を実行するかという点から、その為のプログラム選択が完了しているかの判定をするものである。次に、Ｓ２０２では、選択されたＮＣプログラムを最適化変換する要求が数値制御操作盤上からあったか否かの判定が行われる。ここでの判定がＹＥＳであった場合，Ｓ２０２において変換要求されたことに基づき、変換が実行される。ＹＥＳ判定に基づき、Ｓ２０３に進み変換が終了したか否かの判定が行われる。変換が終了しない場合には、Ｓ２０３の処理が繰り返される。Ｓ２０２での判定がＮＯ又は、Ｓ２０３での判定がＹＥＳであった場合には、Ｓ２０４に進み、数値制御操作盤上から、プログラムによる運転の実行入力があったか否かの判定が行われる。実行入力がされない場合には、Ｓ２０４の処理が繰り返される。入力された場合には、Ｓ２０５に進み、プログラム運転処理が実行される。このプログラム運転処理の詳細については、後述する。
【００３３】
次に、Ｓ２０６では、プログラムの実行がワンサイクル停止位置まで進んでいるか否かを判定する。ワンサイクル停止とは、Ｍ２０等で示されるＮＣコードが記述される箇所までＮＣプログラムの処理が進み、工作機械１としては、主軸回転、切削油、潤滑油供給、回転工具の回転状態等は保持された状態で、次のブロックのＮＣプログラムを読み込み実行する処理が停止する状態のことである。具体的には、例えば刃物台を移動制御する軸の動作が停止される。ただし、このＳ２０６のＭ２０が判定されただけでは、工作機械１としては、ワンサイクル停止の状態にはならず、次にＳ２０７にて、ワンサイクル停止信号ＯＮが判定されることによって、工作機械１は、初めてワンサイクル停止状態に移行する。このワンサイクル停止信号は、数値制御操作盤上から設定操作によって設定される、プログラム運転時のプログラムの属性を表すためのパラメータになっており、所定の操作を数値制御操作盤から行うことによって、ＯＮ、ＯＦＦ出来るスイッチである。尚、本発明では、ＮＣプログラムの変換処理が実行された際に、これと連動してスイッチがＯＮになるものとされているが、この点については後述する。
【００３４】
先のＳ２０６、２０７において、それぞれ、ワンサイクル停止指令がされていないあるいは、ワンサイクル停止信号がＯＦＦであった場合には、Ｓ２１０にて、数値制御操作盤上からフィードホールド動作をさせるためのボタン操作が行われているか否かを判定する為、「停止指令ＯＮ？」のように判定を行う。ここでの判定もＮＯであった時には、再びＳ２０５からの処理を繰り返すものとされる。フィードホールドとは、軸の移動を停止する命令である。これによれば、例えば刃物台の移動のみ停止するものである。
【００３５】
又、Ｓ２０６，２０７における判定がＹＥＳであった時には、Ｓ２０８の処理を実行する。工作機械１を、上述したワンサイクル停止状態に移行させる。
次に、運転再開信号がＳ２０９において、判定された場合には、ＹＥＳの判定となって、再びＳ２０５からの処理が実行される。又、ここでの判定がＮＯとなった時には、更に運転終了が要求される操作が数値制御操作盤からされたか否かを判定し、運転終了が要求される信号入力があった場合には、プログラム運転を終了させる処理を行い、信号が入力されない場合には、Ｓ２０９の判定を再度行うものになっている。
【００３６】
ここで、上述したＳ２０５のプログラム運転処理について、図３、図４を用いて、更に詳述する。
Ｓ２０５のプログラム運転処理としてサブルーチンに処理が移行すると、Ｓ３０１にて、まず、図４に、００１０，００Ｎ０，００Ｍ０，００Ｋ０で示される如きブロックに記述されるＮＣコード又は、最適化データ実行指令として記述されるメインプログラムを１行読み込む処理を行う。この処理が実行されて数値制御装置内で、これらコードの内容を解釈し、結果に応じた処理が行われる。
【００３７】
次に、Ｓ３０２において、読み込まれたコードが最適化データ実行指令であるか否かの判定を行う。
ここでの判定がＹＥＳであった場合には、Ｓ３０３に進み、図４に示されるように、最適化データ実行指令に付随した処理として発生する最適化データＭ呼び出し指令等に対応して設定記憶される最適化データＭの読込と解釈が行われる。
【００３８】
Ｓ３０３での解釈に基づき最適化データＭの実行処理がＳ３０４にて行われる。この処理が行われることで、具体的に、刃物台に備えられた刃物（バイト、回転工具等）の刃先位置が最適化プログラムにて指定される所望の位置へ移動させられたり、あるいは、ワークのＺ軸方向位置がプログラムに指定される所望の位置に移動させられる。
尚、Ｓ３０２における判定がＮＯであった時には、通常のＮＣ装置と同様のＮＣ文が実行される。最適化データ呼出指令は、複数の最適化データを順次呼び出すように指令する形態のものとすることも可能である。
【００３９】
次に、本発明の特徴部分に関連するプログラムの変換処理について説明をする。
まず、工作機械１は、プログラム運転が実行されて、ツール、ワーク等の移動制御を行って動作をさせるべく数値制御処理を制御ユニット５１に行わせる一方で、制御ユニット５１のＣＰＵ５３は、ＮＣプログラムを最適化メインプログラム及び最適化データへと変換を行うことが可能になる時分割処理を行うものとなっている。このようにＣＰＵ５３の余剰能力を使用して、工作機械１のプログラム運転中のプログラム変換を可能にしている。尚、当然ながらプログラム運転中でない状態においても、プログラム変換を実行することは可能である。
【００４０】
プログラムの変換が如何様に実行されるかにつき、図５を使用して説明する。
まず、Ｓ５０１において、工作機械１がプログラム運転中であるか否かの判定を行う。ここでの判定がＹＥＳであった場合には、次にＳ５０２に進み、上述した最適化プログラムによる運転中であるのかを更に判定する。最適化プログラムによる運転中ではないＮＯ判定の場合には、そのままリターンする。又、ＹＥＳの判定であった場合には、Ｓ５０３に進み、操作入力装置６６から現在実行中の最適化プログラムの再変換を要求する変換要求入力が為されたか否かを判定する。ＮＯ判定の場合には、そのままリターンする。ＹＥＳ判定の場合には、Ｓ５０４に処理が進み、現在実行中の最適化プログラムの元になったＮＣプログラムを最適化用ＮＣプログラム記憶部６３から、再び読み出して最適化の処理を行う。この処理については、後述する。この処理の後にＳ５０５に進み、最適化処理による変換が終了したか否かについての判定を行う。変換が終了しない限りは、Ｓ５０５から次に処理が移行しないように処理がループされる。又、変換が終了しているならば、処理がＳ５０６に進み、上述したワンサイクル停止信号をＯＮにする処理を行う。このようにワンサイクル停止信号をＯＮにしたことによって、上述の様に刃物台の動作が停止される以外には、機械の稼動状態が維持された状態とされるものである。この処理の後、Ｓ５０７に進み、工作機械１がワンサイクル停止中となっているか否かの判定を行い、ここでも又、ＮＯの判定であった場合には、次の処理に進まないようにＳ５０７にて処理がループされるものとされる。Ｓ５０７の判定がＹＥＳであった場合には、Ｓ５０８に処理が進み、最適化データを第２最適化データ記憶部６２から第１最適化データ記憶部６１へ転送する処理を行う。この処理を行ったならば、次にＳ５０９に進みワンサイクル停止信号をＯＦＦにする処理を行う。この処理を行った後には、Ｓ５１０に進み運転再開信号をＯＮして工作機械１の稼動を再開させる。
【００４１】
次にＳ５０１における判定がＮＯであった時には、Ｓ５１１に進み最適化を行うＮＣプログラムの選択がされたか否かの判定を行う。選択がされていないＮＯ判定の状態では、そのままリターンされる。選択がされたＹＥＳ判定の場合には、Ｓ５１２に進み、数値制御装置操作盤上から変換要求入力がされたか否かの判定が行われる。ここでの判定がＮＯ判定であった場合には、そのままリターンする。ここでの判定がＹＥＳ判定であった場合には、Ｓ５１３に進み、選択されたＮＣプログラムを最適化用ＮＣプログラム記憶部６３へ転送する。この後Ｓ５１４に進み最適化処理を実行する。最適化処理については、後述する。最適化が終了すると、Ｓ５１５に処理が進み、最適化メインプログラム記憶部６０に記憶されている最適化メインプログラムを運転プログラム記憶部５８へ転送する。この後、Ｓ５１６に進み、最適化データを第２最適化データ記憶部６２から第１最適化データ記憶部６１へ転送する処理を行う。
【００４２】
ここで最適化処理の具体内容について、図６を用いて詳述する。
この最適化処理自体は、トランスフォーマ５６がＲＯＭ６４からＲＡＭ５６に対して読み込まれてトランスフォーマが実行される際に行われる処理である。まず、Ｓ６０１にて、ＮＣプログラムを最適化用ＮＣプログラム記憶部６３から読み込む。ＲＡＭ５６上に設定される作業領域にロードされたトランスフォーマによって確保された領域に、ＮＣプログラムは読み込まれる。ＲＡＭ５６上にロードされた状態のＮＣプログラムのデータに対してトランスフォーマは、所定の処理を実行する。Ｓ６０２に処理が移行すると、機械設定パラメータを機械固有情報記憶部５９から読み込む。このデータに関しても、トランスフォーマにより割り当てられた領域に読み込まれるものである。Ｓ６０３では、Ｓ６０１，Ｓ６０２において読み込まれたデータに基づきトランスフォーマは最適化データの作成を行う。最適化データとは、この例では、電子カムコマンドが参照するためにワークとツールの移動位置を基準軸に対応させるようにして得られたテーブルになっている。この最適化データ作成によって得られたテーブルが、Ｓ６０４の処理で、最適化データとして、第２最適化データ記憶部６２へ保存される。次にＳ６０５の処理では、この最適化データが作成されたＮＣプログラムが、既に一回変換されたものであるか否かを判定するために、新しくＮＣプログラムが選択されたものであるか否かを判定する。この判定がＮＯで有る時には、そのままリターンして最適化処理は終了する。この判定がＹＥＳであった場合には、更にＳ６０６に処理が進み、図４示の如き、最適化データを参照使用する最適化メインプログラムが作成される。Ｓ６０７に処理が進むとＳ６０６にて作成された最適化メインプログラムが最適化メインプログラム記憶部６０に記憶される。この処理が終了後に最適化処理は終了する。
【００４３】
ここで、図５，６によって達成される作用についての説明を行う。
工作機械１のプログラム運転中に、数値制御装置操作盤上から、Ｓ５０３において判定される再変換要求入力が行われることによって、現在稼働中の最適化プログラムの再変換が行われることになる。
【００４４】
ここで最適化処理が、行われることによって、ＮＣプログラムと機械パラメータ（オフセット）から、最適化メインプログラムと最適化データが作成される。この最適化データとしては、電子カムデータテーブルが具体的には作成される。この作成された電子カムデータテーブルにおける制御軸の位置指令となる個々のデータは、Ｓ６０２にて機械固有情報として得られている工具の刃先位置補正量が反映された工具の移動軌跡を示す点のデータとして計算され得られている。
【００４５】
最適化処理には、多くの計算が伴い、元のＮＣプログラムから最適化メインプログラムと最適化データとが作成されるまでには、それなりの時間が必要になるものであるが、この例では、最適化データを一旦第２最適化データ記憶部６２へ記憶させるものとして、工作機械１のプログラム運転に影響しないものとされている。工作機械１のプログラム運転では、運転プログラム記憶部５８，及び第１最適化データ記憶部６１のデータを数値制御装置のファームウエアが参照するものとしているため、それ以外の記憶領域のデータが書き変わっても影響はないものになっている。
【００４６】
このように、最適化処理が行われて、最適化データの書き換えが行われる。これらの変換が終了したか否かが、Ｓ５０５にて判定されて、変換終了であれば、更に、Ｓ５０６において、工作機械１の稼動を一時停止するために、ワンサイクル停止信号をＯＮにする。このワンサイクル停止信号をＯＮにすることは、最適化処理を一連の加工プロセスの中で行うべく、プログラム最適化ルーチンの一つのプロセスとして設定されるものである。最適化処理を行った結果を、第２最適化データ記憶部６２から第１最適化データ記憶部６１に、データ転送する際に、工作機械１の稼動状態が異常とならないようにするためである。工作機械１は、第１最適化データ記憶部６１を参照して稼動を行うために、稼働中にはこの第１最適化データ記憶部６１にデータが正常に設定されている必要がある。つまり、第１最適化データ記憶部６１にデータ転送を行うためには、第１最適化データ記憶部６１へのアクセスを中止させる必要がある。その為、工作機械１の稼動を一時的に停止させる必要があり、そのために、プログラム最適化ルーチンの中の一プロセスとして、工作機械１の稼動を自動的に停止させ、そのタイミングで、第１最適化データ記憶部６１の最適化データを書き換える必要があるのである。
【００４７】
一方、上述のように、最適化処理には、一定の時間が必要になるものであり、その点からは、工作機械１の稼動を停止した上で、変換処理を実行し、第１最適化データ記憶部６１の書き換えを行うと、稼動を停止した上で更に変換処理などに時間を要し、稼動率が下がり好ましくないが、上述のように、工作機械１の稼働中に、ＣＰＵ５３がバックグラウンドで、余剰能力を使用して時分割処理を行うようにしていることによって、最適化処理が終了した段階で、工作機械１を停止させて第１最適化データ記憶部６１のデータを書き換えることが出来るようになっているので、最適化処理の為にオペレータが待つ時間を大きく減少させることが出来る。これは逆に工作機械１の稼働率を向上させることにもなっている。
【００４８】
更に、第１最適化データ記憶部６１のデータの書き換えが終了した段階では、プログラム最適化ルーチンのプロセスの中で、Ｓ５０６にて自動的にＯＮにされたワンサイクル停止信号が、今度は、Ｓ５０９に示されるように、ワンサイクル停止信号が自動的にＯＦＦになるように処理が設定されている。このＯＦＦに連動して工作機械１の運転再開信号がＳ５１０に示されるようにＯＮになって、書き換え終了後に自動的に工作機械１は、稼動を開始するものとしている。このように、工作機械１で使用される工具の刃先位置の補正量が数値制御装置操作盤上から入力された結果、機械固有情報として蓄積された後に、工作機械１の稼働中に最適化処理が行われた場合には、あたかも通常のＮＣ制御を行っている時と同様に、その工具補正量が設定されるようになり、通常ＮＣ制御のものと同様の使用性が確保される。この制御態様に於いては、工具補正量の設定とその反映のための最適化処理のために、工作機械１の一時停止は必要であるが、停止時間は最短化され、又、最適化処理を待つ待ち時間も最短化されている。工作機械１によるワークの加工の為に必要となるトータルの時間が最適化処理実行の為に延長される時間も最小限とすることが出来る。この実施例のように、ワンサイクル停止信号をＯＮにするタイミングが変換終了の後になるようにしているものでは、現在加工している状況から見て、あと、何サイクルか加工した後になるとワークが加工公差に対してＮＧになることが推測される場合に、そのＮＧとなるタイミングに至るまでの期間を利用し、変換を行う為に生じる工作機械１の稼動の停止を最小限にすることが出来るためである。
【００４９】
ここで、本実施例の変形例を説明する。
ワンサイクル停止信号をＯＮにするタイミングとしては、他に、変換開始の前に設定することも考えることが出来る。現在加工中のワークが既に加工公差から外れている場合には、即座に工作機械１の工具に対して工具補正量を新たに設定し、ワークが加工公差内に収まるようにしたいという要求もある。その場合に対応して、前記したＳ５０３において、変換要求の入力をする際に、変換よりも先に工作機械１の稼動を停止するか後に停止させるようにするかの入力も要求し、工作機械１の停止タイミングが設定されるようにすることも出来る。変換よりも先にワンサイクル停止信号がＯＮになるようにすることによって、加工公差がＮＧとなってしまう意味のない加工が変換に必要となる間継続されることが、このようにすることで防止できる。
【００５０】
更に、他の変形例を説明する。
まず、図５におけるＳ５０６は、Ｓ５０６’として、そのまま用い、以降の変更した部分に関し、図７（Ａ）を用いて説明する。
Ｓ５０６’については、図５と同様に、制御ユニット５１に設けられているワンサイクル停止用のスイッチをＯＮにするために、ワンサイクル停止信号をＣＰＵ５３がＩ／Ｆ５２を介して出力する信号処理を実行する。Ｓ５０７’においては、Ｓ５０６’における信号処理によって工作機械１がワンサイクル停止中になったか否かの判定を行う。ここでの判定がＮＯである限りは、Ｓ５０７’の処理が繰り返し実行される。ここでの判定がＹＥＳとなったら、Ｓ５０８’に進み、最適化メインプログラムが最適化データを参照しに行く記憶領域に設定されるデータの格納先として、最適化メインプログラムが工作機械１の稼働中に参照しに行く先のデータとして格納される最適化データ記憶部番号が第１最適化データ記憶部６１となっているか否かの判定を行う。ここでの判定がＹＥＳの時には、Ｓ５０９’に進み、最適化データ記憶部番号を第２最適化データ記憶部６２とし、最適化メインプログラムが最適化データを参照しに行く先として設定する。又、Ｓ５０８’における判定がＮＯである時には、Ｓ５１０に進み、最適化データ記憶部番号を第１最適化データ記憶部６１とし、、最適化メインプログラムが最適化データを参照しに行く先として設定する。以降は、図５におけるＳ５０９のワンサイクル停止信号をＯＦＦにする処理以降を続けて実行する。
【００５１】
又、この変形例に合わせて、図６において変更が必要となる箇所についても、図７（Ｂ）を用い説明する。図６におけるＳ６０３にて最適化処理が終了したら、次にＳ６０４’に示される最適化データ記憶部番号が第１最適化データ記憶部６１であるか否かを判定する。ここでの判定がＹＥＳとなったら、最適化データを第２最適化データ記憶部６２に保存する処理を行う。又、Ｓ６０４’における判定がＮＯであった時には、Ｓ６０６に進み最適化データを第１最適化データ記憶部６１に保存する処理を行う。これらの最適化データの記憶処理が終了したら、Ｓ６０７’に進み、図６のＳ６０５と同様に新しいプログラム選択が行われたか否かの判定を行う。これ以降の処理は、図６同様であるので、説明は省略する。
【００５２】
これらの変形例の構成では、最適化データ記憶部番号に基づき、最適化メインプログラムが最適化データを参照する構成としている。最適化メインプログラムは、最適化データ記憶部番号を記憶するＲＡＭ５６の領域に、最適化データ記憶部番号を参照し、それによって指定されるＲＡＭのアドレスデータを参照するのみで、最適化メインプログラムは最適化データを参照することが可能になる。先の例のように、第１最適化データ記憶部６１に対して第２最適化データ記憶部６２から変換した最適化データの転送が不要になり、最適化を行った場合に必要となるデータ転送時間が節約されることになる。（参照先のデータである最適化データ記憶部番号の方が、最適化データよりもデータサイズが遙かに小さいためである。）その分、最適化処理に必要となるトータルでの変換時間を短縮できる効果がある。
【００５３】
これより更に、本発明の第２実施例を説明する。
この実施例は、先の実施例では最適化処理後の最適化メインプログラム及び最適化データをワンサイクル停止中に書き換えを行うようにしているものであったのを、ワンサイクル停止のように、機械の稼動を一時停止することなく最適化データの書き換えを可能にするものである。
【００５４】
以下、図８を使用して詳細に説明する。
図８のＳ８１９からＳ８２４については、図５のＳ５１１からＳ５１６に相当するものであるので、説明は省略する。
まず、プログラムの変換が如何様に実行されるかにつき、説明する。尚、この例は、最適化データの置換のみを行う最適化処理の場合に適用されるものである。
【００５５】
まず、Ｓ８０１において、工作機械１がプログラム運転中であるか否かの判定を行う。ここでの判定がＹＥＳであった場合には、次にＳ８０２に進み、工作機械１が最適化プログラムにより運転中であるか否かを判定する。ＮＯ判定の場合には、そのままリターンされる。Ｓ８０２での判定がＹＥＳになって、Ｓ８０３に処理が進むと、数値制御装置操作盤上から変換要求入力がされたか否かの判定が行われる。変換要求入力がされないＮＯ判定の場合には、そのままリターンされる。Ｓ８０３の判定がＹＥＳとなる変換要求入力がされた場合には、Ｓ８０４に進んで最適化用ＮＣプログラム記憶部６３から対象のＮＣプログラムをＲＡＭ５６の所定の領域に記憶し、ＲＡＭ５６上で実行されるトランスフォーマにより最適化の処理を行う。この処理については、既に説明済みなので説明は省略する。この処理の後にＳ８０５に進み、変換終了したか否かについての判定を行う。変換が終了しない限りは、Ｓ８０５から次に処理が移行しないように処理がループされるものとされる。又、変換が終了しているならば、処理がＳ８０６に進み、現在工作機械１において実行中の加工に使用している最適化データのデータ番号Ｎを取得する。（ここでのデータ番号とは、ＮＣプログラムにおけるブロックナンバーのように、行毎に割り当てられる番号である。）Ｓ８０７では、取得したデータ番号Ｎより前の既に一個のワークに対して加工を行う為に使用された部分の最適化データを、Ｓ８０４において、今回新しく変換して得られた最適化データのうちのＮより前の部分のデータと置換する処理を行う。この処理が済んだなら、Ｓ８０８において、カウンターｉを設定すると共に、ｉに０を代入する。Ｓ８０９では、更に、最適化データ番号Ｎ＋ｉ（データを未置換のもの）によるワークの加工が終了したか否かを判定する。ここでの判定がＮＯ判定である間は、Ｓ８０９における処理が繰り返され、判定がＹＥＳになったら、次のＳ８１０では、Ｓ８０５の処理実行の結果、再変換して得られた最適化データの個数ＮＥＷと現在加工に使用している最適化データの個数ＯＬＤとの個数の比較を行う。ここでの判定がＹＥＳ、つまり、現在加工に使われている最適化データＯＬＤの個数の方が、再変換により得られた最適化データＮＥＷよりも多いという判定がされた場合である。この場合には、Ｓ８１１において、更に、再変換された最適化データが、最適化メインプログラムの参照先に指定される最適化データ記憶部に書き込まれた現在の加工に使用されている最適化データに対して置換されたか否かの判定を行う。ここでの判定がＹＥＳとなる変換後データが全て書き込まれている場合に、Ｓ８１４に進み、変換前データの個数ＯＬＤと変換後データの個数ＮＥＷとの差分の個数だけ、変換される前の最適化データが最適化データ記憶部に置換されずに記憶された状態になるため、置換されずに残った最適化データを最適化データ記憶部からクリアーする。Ｓ８１１における判定がＮＯである場合には、Ｓ８１２に進み、現在加工に使用しているうちの最適化データ番号Ｎ＋ｉを変換後の最適化データ番号Ｎ＋ｉのデータと置換する。続いて、Ｓ８１３に進みｉに１を加える処理を行い改めてＳ８０９からの処理を繰り返すものとしている。
【００５６】
又、Ｓ８１０における、再変換して得られた最適化データの個数ＮＥＷと現在加工に使用している最適化データの個数ＯＬＤとの個数の比較の結果がＮＯとなる、最適化データの個数ＮＥＷの方が多い場合には、Ｓ８１５に進み最適化データ番号Ｎｅｎｄによる加工が終了したか否かを判定する。ここでの判定がＹＥＳとなった場合には、Ｓ８１８に進みＮｅｎｄ以降の変換後データを最適化データ記憶部に対して一括書き込みを行う。つまり、最適化データＮｅｎｄによる加工が終了した時点では、変換後データは、Ｎｅｎｄに相当する個数分だけのデータは置換されるが、置換されず変換後データが残ると言うことである。これらの置換されずに残った変換後データを、最適化データＮｅｎｄによる加工が終了したことにより問題なく書き込める為、ここで一括して書き込みを行うものとしている。その後リターンする。
Ｓ８１５における判定がＮＯとなった場合には、Ｓ８１６，Ｓ８１７の処理をＳ８１２、Ｓ８１３と同様に行う。
【００５７】
ここで、図８に示される構成により達成される作用を説明する。図８の構成では、Ｓ８０５迄の段階では、第１の実施例と同じ作用を達成する。Ｓ８０６以降Ｓ８１２の間で達成される作用は、工作機械１において、現在実行中又は未実行の為に未置換の最適化データを、その最適化データに基づく加工が終了する毎に新しく変換された最適化データに置換されるようにしていることである。つまり、変換の要求がＳ８０３で行われ、その後に変換が終了すると、現在工作機械１が実行している最適化データの番号Ｎを取得して、番号Ｎよりも前の部分のテーブルのデータを書き換えても工作機械１の加工に対しては影響しないので、まずは、その部分の置換を最初に行う。ここで、影響しないということの意味を簡単に説明しておく。加工している最中に１セットになっているデータを途中で置換した場合には、置換した部分と、そうでない部分同士の間でのデータの不連続性が問題になる可能性がある。ここでは、既に、加工が終了している部分の最適化データを書き換えるようにしているので、書き換えた部分については、次のサイクルで新しいワークを加工するためのデータになり、現在加工しているワークに対しては、影響しないと言う意味である。このような考え方の元に、加工が済んだ順からデータ番号Ｎ＋ｉのデータを置換するようにしているので、工作機械１の稼動に対して何らの悪影響を及ぼすことなく、又、稼動の停止などを何ら要することなく最適化データの置換を行うことが出来るものである。
【００５８】
最初に、最適化データの置換の場合にのみ本例は使われうるというように記載したが、上述のことから理解されるように、同じワークを加工する前提でない場合には、最適化データのデータ量同士が概略一致しなくなるので、このように書き換えること自体が不可能になってしまう。従って、異なったワーク同士の間では、この例のような最適化処理は成立しない。
【００５９】
これまでの中で記述した実施例には、最適化について、トランスフォーマにより電子カムデータ（時刻と座標のテーブル）を作成する例しか示していない。最適化を行う対象として他の例を説明する。
他の例の一番目としては、ＮＣプログラム自体をＮＣプログラムにより書き換える例を説明する。例えば、ＮＣ指令の中には、一指令で複数の動作を行う指令（サイクル指令）がある。これは、現在の状態を判断し、次の動作を行う。そのため、現在の状態を判断する第１の時間と、次の動作を決定する第２の時間とが必要になる。又、ブロックを実行する時のＮＣの状態と無関係の命令は、先読み処理を行うことにより、次に動くべき座標を決定する事が出来、実行前に加減速等をあらかじめ計算することが可能である。しかし、サイクル指令では先読み処理を行えない。
【００６０】
全てのＮＣコードを読込、内容を解析し（トランスフォーマと同様）、サイクル指令到達時の状態を計算により求める。その時の状態を元に、サイクルを複数の動作に分解できる。そのため、ＮＣのようにサイクル指令到達時に初めて複数動作への展開処理を行うのではなく、予め展開した動作をＮＣプログラムに記述し直すことが出来る。
【００６１】
このように、サイクル指令をＮＣプログラムに書き直す処理も、最適化と呼ぶことが出来る。工具交換動作を、この例として簡単に説明すると、まず、現在のＸ座標を調べる。次に、Ｘ＞工具交換位置の時には、Ｘの移動はなし。Ｘ＜工具交換位置の時には、Ｘを工具交換位置へ移動する。Ｙ軸を選択工具の位置へ移動するというような形である。又、この他の例として、指令位置の変更による動作の高速化の点からの最適化処理を挙げることが出来る。この場合には、ＮＣコードの指令位置を本来指令した位置よりも早めたり、遅くしたりする等の処理である。更に、この他の例として、ＮＣプログラムの記述が適切でないために、処理が遅くなっている場合等において、記述の仕方を他に変えることによって高速化を図れるという観点からの最適化というものが考えられる。例えば、最適化前のＮＣプログラムでは、工具の軌跡が直角に曲がる形態としていたが、そのコーナーを円弧にすることにより、時間の短縮を図ると共に、滑らかな動作としたことによって、機械振動を減らすことが出来るというものである。尚、これらの様に変更を加えた場合に、最適化したデータは、サブプログラムとし、メインプログラムがサブプログラムを呼び出す形態とする。
【００６２】
尚、本発明のプログラムの最適化は、上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【発明の効果】
以上、説明したように本発明の請求項１記載の工作機械の数値制御装置によれば、工具の刃先位置の補正をするために、工作機械の運転を一旦止める為に生じていたトータルでの加工時間の増加を最小化出来、又、いちいち工作機械の運転を停止したり、起動したりするなどの煩雑な作業を不要化出来、結果として、ＮＣプログラムを用いての加工を行うのと同等の使用感が確保され、使用性の顕著な改善図ることが出来るという優れた効果を奏し得る。
【図面の簡単な説明】
【図１】本発明の実施形態に係る工作機械の装置構成を示すブロック図である。
【図２】本発明の実施形態に係る工作機械の数値制御装置における、プログラム運転時の動作態様を示すフローチャートである。
【図３】本発明の実施形態に係る工作機械の数値制御装置における、プログラム運転時の動作態様を示すフローチャートである。
【図４】本発明の実施形態に係る工作機械の数値制御装置において使用される最適化メインプログラム及び最適化データの概要を示す図である。
【図５】本発明の実施形態に係る工作機械の数値制御装置において実行される、プログラム選択と最適化の具体的な処理の態様を示すフローチャートである。
【図６】本発明の実施形態に係る工作機械の数値制御装置において実行される、プログラム選択と最適化の処理の中において実行される最適化処理を具体的に説明するフローチャートである。
【図７】本発明の実施形態に係る工作機械の数値制御装置において実行される、プログラム選択と最適化の具体的な処理の態様を示すフローチャートの一部変形例を示すフローチャートである。。
【図８】本発明の実施形態に係る工作機械の数値制御装置において実行される、プログラム選択と最適化の具体的な処理の態様についての第２の実施例を示すフローチャートである。
【符号の説明】
５７・・・ＮＣプログラム記憶部、５９・・・機械固有情報記憶部、６１・・・第１最適化データ記憶部、６２・・・第２最適化データ記憶部、６５・・・トランスフォーマ、６６・・・操作入力装置、
【図１】
2004326618.tif 000003
【図２】
2004326618.tif 000004
【図３】
2004326618.tif 000005
【図４】
2004326618.tif 000006
【図５】
2004326618.tif 000007
【図６】
2004326618.tif 000008
【図７】
2004326618.tif 000009
【図８】
2004326618.tif 000010