特許第6747916号(P6747916)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許6747916干渉を回避する工具退避機能を備えた数値制御装置
<>
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000002
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000003
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000004
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000005
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000006
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000007
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000008
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000009
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000010
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000011
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000012
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000013
  • 特許6747916-干渉を回避する工具退避機能を備えた数値制御装置 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6747916
(24)【登録日】2020年8月11日
(45)【発行日】2020年8月26日
(54)【発明の名称】干渉を回避する工具退避機能を備えた数値制御装置
(51)【国際特許分類】
   B23Q 15/00 20060101AFI20200817BHJP
   B23Q 15/007 20060101ALI20200817BHJP
   G05B 19/4155 20060101ALI20200817BHJP
【FI】
   B23Q15/00 D
   B23Q15/007
   G05B19/4155 U
【請求項の数】6
【全頁数】18
(21)【出願番号】特願2016-169323(P2016-169323)
(22)【出願日】2016年8月31日
(65)【公開番号】特開2018-34254(P2018-34254A)
(43)【公開日】2018年3月8日
【審査請求日】2017年9月19日
【審判番号】不服2019-11669(P2019-11669/J1)
【審判請求日】2019年9月5日
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】110001151
【氏名又は名称】あいわ特許業務法人
(72)【発明者】
【氏名】福本 明伸
【合議体】
【審判長】 栗田 雅弘
【審判官】 見目 省二
【審判官】 松原 陽介
(56)【参考文献】
【文献】 特開平3−167606(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B23Q 15/00
B05B 19/4155
(57)【特許請求の範囲】
【請求項1】
工作機械を制御する数値制御装置において、
加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、
加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、
前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読み取る手段と、
前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、
前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、
工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データを実行して工具を退避させる工具退避手段と、を備え
前記退避ブロック判定条件設定手段は、加工プログラムの各ブロックが有する情報の内、退避ブロックとして指定しうる複数の情報を退避ブロックの選定条件として設定し、前記判定手段は解読したブロックの情報が設定された選定条件をすべて満たすものかを判別し、退避ブロックか否かを判定し、
前記選定条件は、少なくとも、位置決め指令と該位置決め指令されている軸及び移動距離を含む、
干渉を回避する工具退避機能を備えた数値制御装置。
【請求項2】
工作機械を制御する数値制御装置において、
加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、
加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、
前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読み取る手段と、
前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、
前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、
工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データを実行して工具を退避させる工具退避手段と、を備え、
前記退避ブロック判定条件設定手段は、工具径補正指令前の直近の位置決め指令のブロック、工具径補正指令後の位置決め指令のブロック、若しくは、複合形固定サイクル指令等の加工モード切替コードが付されたブロックの直前の位置決め指令のブロックを退避ブロックとして選択する条件として設定し、前記判定手段は、解読されたブロックの情報が前記退避ブロック判定条件設定手段で設定された条件を満たすものか判別し、退避ブロックか否かを判定する、
干渉を回避する工具退避機能を備えた数値制御装置。
【請求項3】
工作機械を制御する数値制御装置において、
加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、
加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、
前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読み取る手段と、
前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、
前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、
工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データを実行して工具を退避させる工具退避手段と、を備え、
前記判定手段は退避ブロックを判別選択する方法を複数備え、前記退避ブロック判定条件設定手段は、退避ブロックを判別選択する方法、判定条件を設定し、前記判定手段は、選択設定された方法で、退避ブロックか否かを判定する、
干渉を回避する工具退避機能を備えた数値制御装置。
【請求項4】
前記メモリ手段に複数の退避ブロックの実行可能形式データ及び終点座標位置が記憶可能で、工具退避手段は、前記メモリ手段に記憶した退避ブロック情報を記憶とは逆の順序で読み出し、工具退避指令が入力された時の工具位置より読み出した退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データを実行し、次に読み出した退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データの実行を繰り返し行い、最後に読み出した退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データを実行するまで行い、工具を退避させる請求項1〜3の何れか1つに記載の数値制御装置。
【請求項5】
前記退避ブロック判定条件設定手段は、退避ブロックとして選択するブロックの加工プログラムのシーケンス番号若しくはブロックの行数を設定し、前記判定手段は設定されたシーケンス番号若しくは加工プログラムの行数によって退避ブロックか否かを判定する請求項1〜3の何れか1つに記載の数値制御装置。
【請求項6】
前記退避ブロック判定条件設定手段の代りに、加工プログラム中のブロックに対して予め決められたコードを付して退避ブロックを指定し、前記判定手段は、予め決められたコードが付されたブロックを退避ブロックとして判定する請求項1〜3の何れか1つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、工作機械を制御する数値制御装置に関し、特に、加工途中で工具を他のものと干渉させないで退避させる機能を備えた数値制御装置に関する。
【背景技術】
【0002】
数値制御工作機械において、加工プグラムを実行して加工中、何らかの理由、原因によって、加工を中断したとき、その中断の理由や原因の解明ために及び復旧対策のために、工具を作業に安全な位置に退避させる必要がある。この退避動作は、退避動作途中で工具と被加工物のワークが干渉しないように工具を退避させる必要がある。
例えば、図12に示すように、ワークWに穴3の加工を行っている途中で、加工を中断して、主軸2に取り付けられた工具1を退避させる場合、単純な一軸方向のみに工具1を退避させるのでは、工具1とワークWが干渉して、ワークWや工具1が破損してしまう恐れがある。そのため干渉の発生を回避させながら工具1を退避させる方法が必要となる。
【0003】
特許文献1には、この干渉の発生を回避して工具を退避させる方法として、加工プログラムを実行しながら、実行されるプログラムと逆方向の工具退避プログラムを常時計算して保存しておき、加工中断時には、その時点での工具移動ベクトルに対して垂直な方向に一定距離だけ工具を移動させた後、それまで保存していた工具退避プログラムを実行して、加工経路とは逆方向に工具を移動させて工具を基準位置まで退避させることにより、工具をワークと干渉することなく退避させる方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007−188170号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
数値制御工作機械において、加工途中で何らかの理由で加工を中断して工具を退避させる必要が生じたとき、工具が他のものと干渉しないように工具を退避させる必要がある。
特許文献1に記載された方法おいては、実行される加工プログラムとは移動方向が逆方向の工具退避プログラムを常時求め、保存しておく必要がある。そのため、この工具退避プログラムを記憶保存する記憶手段を必要とし、NC加工プログラムが大きくなれば、この記憶手段として大容量のものが必要となる。もし、この記憶手段の記憶領域が不足した場合には、工具退避プログラムを格納しきれず、所望の位置まで退避できないという問題が生じる。
【0006】
また、加工プログラムの内容によっては、加工時の加工経路に沿って逆方向に移動すること(加工プログラムを逆方向に実行すること)が、必ずしも適切でない場合がある。例えば、ねじ穴の加工の場合、加工を停止した工具の回転位置(位相)及び送り位置が正確に把握できないことから、加工プログラムを逆方向に実行して、加工経路を逆方向に移動させると加工済みのねじ部を破損させる恐れがある。
【0007】
また、特許文献1に記載された、工具移動ベクトルに対して垂直な方向に一定距離だけ工具を移動させた後、加工経路とは逆方向に工具を移動させて工具を基準位置まで退避させる方法でも、干渉を回避できない場合がある。
例えば、図13に示すような、加工プログラムで指令された加工経路Lで穴加工を行う場合、その加工途中の点Q1で加工を停止し、工具1を退避させる場合、特許文献1に記載されたように工具移動ベクトルに対して垂直な方向に一定距離だけ工具1を移動させシフトさせた後、加工プログラムとは移動方向が逆方向の工具退避プログラムで工具を移動させる退避動作の経路RLで工具1を移動させると、点Q2で工具1とワークWの干渉が発生することになり、干渉を回避して工具を退避させることができないという問題が発生する。
【0008】
そこで、本発明の目的は、加工途中からの工具の退避を、干渉を発生させることなく容易にできる工具退避機能を備えた数値制御装置を提供することにある。
【課題を解決するための手段】
【0009】
本願請求項1に係る発明は、工作機械を制御する数値制御装置において、加工途中で加工を中断し工具を退避させる際に、指令移動経路を逆方向に移動させる加工プログラムのブロックを退避ブロックとして選択する条件を設定する退避ブロック判定条件設定手段と、加工プログラムを実行し加工を実行する際に、解読した加工プログラムのブロックが前記退避ブロック判定条件設定手段で設定された条件を満たした退避ブロックか否か判定する判定手段と、前記判定手段で退避ブロックと判定されたブロックの解読結果の実行可能形式データを読取る手段と、前記判定手段で退避ブロックと判定されたブロックによる終点座標位置を読み取る手段と、前記読み取った実行可能形式データ及び終点座標位置を記憶するメモリ手段と、工具退避指令が入力されたとき、その時の工具位置より前記メモリ手段に記憶された退避ブロックの終点座標位置まで工具を移動させた後、前記メモリに記憶された退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行して工具を退避させる工具退避手段とを備えることによって、加工を中断した位置から工具を他のものと干渉させずに退避させることができるようにしたものである。
【0010】
請求項2に係る発明は、前記メモリ手段に複数の退避ブロックの実行可能形式データ及び終点座標位置を記憶可能とし、前記工具退避手段は、前記メモリ手段に記憶した退避ブロック情報を記憶とは逆の順序で読み出し、工具退避指令が入力された時の工具位置より読みした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行し、次に読みした退避ブロックの終点座標位置まで工具を移動させた後、この退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行を繰り返し行い、最後に読み出した退避ブロックの実行可能形式データの移動方向を逆にして実行可能形式データ実行するまで行い、工具を退避させるようにした。
【0011】
請求項3に係る発明は、前記退避ブロック判定条件設定手段で、退避ブロックとして選択するブロックの加工プログラムのシーケンス番号若しくはブロックの行数を設定し、前記判定手段で、設定されたシーケンス番号若しくは加工プログラムの行数によって退避ブロックか否かを判定するようにした。
【0012】
請求項4に係る発明は、前記退避ブロック判定条件設定手段で、加工プログラムの各ブロックが有する情報の内、退避ブロックとして指定しうる複数の情報を退避ブロックの選定条件として設定し、前記判定手段で、解読したブロックの情報が設定された選定条件をすべて満たすものかを判別し、退避ブロックか否かを判定するようにした。また、請求項5に係る発明は、請求項4に係る発明において、前記選定条件は、少なくとも、位置決め指令と該位置決め指令されている軸及び移動距離を含むものとした。
【0013】
請求項6に係る発明は、前記退避ブロック判定条件設定手段の代りに、加工プログラム中のブロックに対して予め決められたコードを付して退避ブロックを指定し、前記判定手段で、予め決められたコードが付されたブロックを退避ブロックとして判定するようにした。
【0014】
請求項7に係る発明は、前記退避ブロック判定条件設定手段で、工具径補正指令前の直近の位置決め指令のブロック、工具径補正指令後の位置決め指令のブロック、若しくは、複合形固定サイクル指令等の加工モード切替コードが付されたブロックの直前の位置決め指令のブロックを退避ブロックとして選択する条件として設定し、前記判定手段で、解読されたブロックの情報が前記退避ブロック判定条件設定手段で設定された条件を満たすものか判別し、退避ブロックか否かを判定するようにした。
【0015】
請求項8に係る発明は、前記判定手段に退避ブロックを判別選択する方法を複数備え、前記退避ブロック判定条件設定手段で、退避ブロックを判別選択する方法、判定条件を設定し、前記判定手段により、選択設定された方法で、退避ブロックか否かを判定するようにした。
【発明の効果】
【0016】
本発明は、加工途中で工具を退避させるとき、工具を他のものと干渉させずに退避させることが容易に実施でき、加工経路を逆方向に退避させると不都合な部分を含む加工プログラムにおいても、退避動作を干渉を起こすことなく実施できる。また、ブロック数の多い加工プログラムでも確実に所望の位置まで工具を退避させることが可能になる。
【図面の簡単な説明】
【0017】
図1】本発明の動作原理を穴加工の例をとって説明する説明図である。
図2】本発明の一実施形態の数値制御装置の機能ブロック図である。
図3】本発明において指定される退避ブロックと工具径補正指令との関係を説明する一例の説明図である。
図4】本発明において指定される退避ブロックと複合形固定サイクル指令との関係を説明する一例の説明図である。
図5】退避ブロックがシーケンス番号等で指定されたときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
図6】退避ブロックを各種条件で選択するときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
図7】加工プログラムに退避ブロックを示すコードが付されているときの本発明の一実施形態の退避ブロック判定処理のアルゴリズムを示すフローチャートである。
図8】位置決め指令と、工具径補正指令若しくは複合形固定サイクル指令の組み合わせによって退避ブロックを判別する本発明の一実施形態の処理のアルゴリズムを示すフローチャートである。
図9】本発明の一実施形態における退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。
図10】本発明の一実施形態における退避ブロックの終点座標位置を読み取る処理のアルゴリズムを示すフローチャートである。
図11】本発明の一実施形態における工具退避処理のアルゴリズムを示すフローチャートである。
図12】加工を中断して工具を退避させるとき工具とワークと干渉する説明図である。
図13】工具を所定量シフトさせ、加工経路とは逆方向に工具を移動させる場合において工具とワークの干渉が発生する例の説明図である。
【発明を実施するための形態】
【0018】
本発明は、工具を安全に(干渉を発生させることなく)退避させるのに適した位置を指令位置(一般的には切削を開始する前の位置)としたブロック(加工プログラムの指令単位)を予め設定しておき、加工途中で加工を中断し、工具を退避させる際、加工中断位置より予め設定したブロックの終点座標位置まで加工プログラムの経路を無視して移動させ、それ以降は指令したブロック(退避ブロック)の経路に沿って逆方向に移動させることにより、工具と他のものとの干渉を回避して工具を退避させるものである。
【0019】
図1は、穴加工の例をとって本発明の動作原理を説明する説明図である。実線の矢印で示す経路は加工プログラムで指令された工具経路を示し、破線の矢印で示す経路は、工具を退避させるときの経路を表わす。
加工プログラムのブロックN1で、工具1を点P1まで位置決め動作で移動させ、その後は切削動作と送り動作を行いながらワークWを切削する加工の例である。本発明は、工具1を退避させるのに適した位置を指令位置とした加工プログラムのブロックN1を退避ブロックとして設定しておくものであるが、位置決め指令のブロックN1は、切削なしに工具1を移動させる指令のブロックであるから、このブロックの終点座標位置P1まで工具を移動させれば後は安全に工具を退避させることができる。この位置決めブロックN1を退避ブロックとして設定して、該ブロックの解読結果の実行可能形式データと終点座標位置(P1)を記憶しておく。そして、その後の切削加工中に、加工を停止して工具1を退避させる必要が生じたとき、例えば、ブロックN11の指令を実行中に位置P2で加工を中断し、工具1を退避させるとすると、加工中断の位置P2から、設定記憶されている退避ブロックN1の終点座標位置P1へ工具1を移動させ(図1中破線で示す移動で、この移動を退避動作1という)、その後は、設定記憶されている退避ブロックN1の実行可能形式データに基づいて移動方向を逆にして移動させる(図1中破線で示す移動で、この移動を退避動作2という)。
以上のような退避動作を行うことによって、工具1をワークW等に干渉することなく、安全に退避させることができる。
【0020】
図2は、本発明の一実施形態の数値制御装置の機能ブロック図である。符号100は数値制御装置、符号200は、加工プログラムであり、符号300は、工作機械の各送り軸を駆動するサーボモータを表わす。なお、主軸モータ、該モータの制御手段等の本発明と直接関係のない部分は省略している。
数値制御装置100は、従来と同様に、解読手段11、パルス分配手段12、サーボ制御手段13、座標更新手段14を備える。解読手段11は、加工プログラム200の各ブロックの指令を順次読取り、解読して実行可能形式データに変換しレジスタに記憶する。なお、解読手段11は、ブロックで指令された指令が実行する前に複数ブロック先行して読み込まれ、複数のブロックの実行可能形式データがレジスタ(以下このレジスタを先読みレジスタという)に順次記憶される。パルス分配手段12は解読手段11で解読し先読みレジスタに格納された実行可能形式データを先入れ先出し方式で読み出し、該データに基づいて各送り軸へパルス分配を行い、サーボ制御手段13は、パルス分配を受けて各送り軸のサーボモータを制御する。また、座標更新手段14は、パルス分配手段12からの各送り軸へのパルス分配に基づいて各送り軸の座標位置(工具の座標位置)を更新する。
【0021】
上述した、解読手段11、パルス分配手段12、サーボ制御手段13、座標更新手段14の構成、作用は数値制御装置100が従来から備える手段、作用であるが、本実施形態では、さらに、退避ブロック条件設定手段15、退避ブロック判定手段16、退避ブロック情報読取り手段17、ブロック終点位置読取り手段18、退避ブロック情報記憶メモリ19、工具退避手段20、退避指令手段21を備える。この追加した手段によって、加工途中で工具を退避させるとき、工具を他のものと干渉させずに退避させることを可能としているものである。
【0022】
本発明は、退避ブロックになる条件を決め、この条件を満たすブロックを退避ブロックと判定し、設定するものであるが、この退避ブロックの設定、判定方法しては、次のA〜Dの方法がある。
A.加工プログラムのシーケンス番号やブロックの位置(行数)を退避ブロック判定条件として設定し、この設定条件を満たすブロックを退避ブロックとして設定する方法。
B.退避ブロックに指定できる各種条件(例えば、指令されている軸(Z軸、平面に垂直な軸)の位置決め指令と、その移動方向、さらには付加的にその移動距離、又は終点座標値(始点でもよい)等)を指定し、この条件をすべて有するブロックを退避ブロックとして設定する方法。
C.NC加工プログラム中に退避ブロックであることを示すコード(例えば、GコードやMコード)でブロックを指定して、このコードがブロックに付加されていることを退避ブロック決定条件として退避ブロックを設定する方法。
D.加工プログラムの特定の内容を条件として、退避ブロックを選別して設定する方法で、
D1.工具径補正オン前の直近のZ軸(=工具径補正方向を含む平面に垂直な軸(以下、基本軸という))の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
D2.工具径補正オン後のZ軸(=基本軸)の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
D3.複合形固定サイクルの指令の直前の位置決め指令であることを条件として該位置決め指令のブロックを退避ブロックとする方法。
等の方法がある。
なお、退避ブロックとして指定する方法として、上述したD1、D2、D3以外にも、ねじ切り加工等の加工モード切替コードが付されたブロックの直前に指令された位置決め指令のブロックを退避ブロックとして指定することも可能である。
【0023】
図3は、上記D1、D2の方法で決定したブロックが、退避動作2を行う退避ブロックとして適していることを説明する図である。工具径補正する前又は後の基本軸の位置決め指令のブロックは、このブロックの指令で工具をワーク等と干渉を発生させることなく移動させ位置決めできるから、同じ経路を逆方向に移動させても干渉を発生させることなく移動できるので、退避動作2を行うブロックとして適している。
【0024】
上記D1の設定方法が有効な図3に示す穴3の加工を行う加工プログラムは、次の加工プログラム例1のようなものとなる。
加工プログラム例1
G00X0Y0
Z-50.0
G42G01X-30.0D1F1000
G02I-30.0
Z-3.0
G02I-30.0
・・・
・・・
【0025】
上記設定方法D1で退避ブロックを指定すれば、工具径補正指令の「G42」が指令されたブロックの直前のZ軸の位置決め指令の「Z-50.0」が退避ブロックとして指定されることになる。なお、「G00X0Y0」は位置決め指令、「G42」は工具径補正−右の指令、「G01X-30.0」は直線補間指令、「D1」は工具径補正の補正番号1を指令する指令、「F1000」は送り速度の指令、「G02」は時計方向の円弧補間の指令、「I-30.0」は、X軸をI軸として該I軸−30.0を円弧中心とする指令である。
【0026】
また、上記設定方法D2が有効な図3に示す穴3の加工を行う加工プログラムは、次の加工プログラム例2のようなものとなる。
加工プログラム例2
G42X0Y0D1
G00Z-50.0
G01X-30.0F1000
G02I-30.0
Z-3.0
G02I-30.0
・・・
・・・
【0027】
工具径補正指令の「G42」が指令されたブロックの直後のZ軸の位置決め指令の「G00Z-50.0」が退避ブロックとして指定されることになる。
【0028】
図4は旋盤系の複合形固定サイクルを使用した内径加工で平面第1軸(Z軸)の位置決め指令後のサイクル指令で加工を行う例の説明図であり、この加工を行うNC加工プログラムは次の加工プログラム例3のようなものとなる。
加工プログラム例3
G00Z1.0
G71U_R_
G71P1Q9U_W_F_S_T_
N1G00X40.0Z0
N2G01Z−7.0
N3X35.0
・・・
・・・
【0029】
上記設定方法D3で退避ブロックを設定すれば、上記複合形固定サイクルを使用した上記NC加工プログラム において、固定サイクル指令の「G71」が指令される直前の位置決め指令「G00Z1.0」のブロックが、退避動作2を行うブロックとして指定されることになる。なお、「G71U_R_」の指令は、G71で固定サイクル指令を、Uで切り込み量を、Rで逃げ量を指令するものであり、「G71P1Q9U_W_F_S_T_」の指令は、G71で固定サイクルを指令し、P1Q9で輪郭形状を指令するものでシーケンス番号N1〜N9のその形状を指令するものである。またU(X方向)、W(Z軸方向)は仕上げ代、Fは送り、Sは主軸速度、Tは工具を指令するコードである。
【0030】
上述した退避ブロックの設定方法A、Bの場合、数値制御装置100が有する表示装置とキーボート等の入力手段を退避ブロック条件設定手段15として用いて、数値制御装置のパラメータ等によって退避ブロックを決定する条件を設定する。また、上記設定方法Cでは、退避ブロック条件設定手段15から退避ブロックを示すコードを入力するのではなく、加工プログラム中に退避ブロックであることを指定するコードを付加するものであるから、退避ブロック判定手段として格納された設定方法Cのプログラムに予め退避ブロックを示すコードを有するブロックを退避ブロックとして選択するようにプログラムしておけばよい。また、上記D1〜D3の退避ブロック設定方法においても、退避ブロック判定手段16で、この設定条件D1〜D3を満足するか判定して退避ブロックを決定するようにすればよいものであるから、特別に退避ブロック条件設定手段15を設ける必要はない。
【0031】
しかし、本実施形態では、種々の加工プログラムに応じて、上述したA〜Dの退避ブロックの設定方法を選択できるようにしているもので、数値制御装置の表示装置とキーボード等の入力手段で構成される退避ブロック条件設定手段15で、A〜Dの設定方法を選択して退避ブロックを設定できるようにしている。
【0032】
退避ブロック判定手段16は、退避ブロック条件設定手段15で設定された設定方法で、解読手段11で読み込まれたブロックが設定条件を満たしているか否かを判定するもので、設定方法Aがセットされていれば、シーケンス番号若しくはプログラムの位置(行数)によって、退避ブロックを特定する。設定方法Bが有効にセットされていれば、解読手段11から出力されるブロック情報データが、この設定方法Bに対して設定されている各設定条件を満たしているものか否かで判別する。設定方法Cが有効にセットされていれば、解読手段11出力されるブロック情報データに基づいて退避ブロックを指定するコード(GコードやMコード)があるか否かによって退避ブロックか否かを判定する。
【0033】
設定方法Dが有効にセットされていれば、工具径補正指令のブロックと基本軸の位置決め指令のブロックの組み合わせ、又は複合形固定サイクルの指令のブロックと位置決め指令のブロックの組み合わせによって、退避ブロックを判定する。
【0034】
退避ブロック情報読取り手段17は、退避ブロック判定手段16が退避ブロックと判定したとき、解読手段11で解読されたブロックの実行可能形式データを読取り、退避ブロック情報記憶メモリ19に記憶させる。また、ブロック終点位置読取り手段18は、退避ブロック判定手段16が退避ブロックと判定したとき、座標更新手段14より座標位置を読取り、退避ブロック情報記憶メモリ19に記憶させる。その結果、退避ブロック情報記憶メモリ19には退避ブロックの実行可能形式データとその終点座標位置が記憶されることになる。
【0035】
加工途中において、数値制御装置100の操作盤、ソフトキー、手動入力手段等で構成された退避指令手段21より退避指令が入力されると、工具退避手段20は、退避ブロック情報記憶メモリ19に記憶された実行可能形式データ及び終点座標位置を読み出し、加工を中断した座標位置より、読み出した退避ブロックの終点座標位置に工具を移動させる指令をパルス分配手段12に出力して「退避動作1」を実行させる。その後は、読みだした実行可能形式データの移動方向を逆にして、実行可能形式データをパルス分配手段12に出力し、「退避動作2」を実行させる。
【0036】
図5は、退避ブロック条件設定手段15で退避ブロックの判定方法Aが入力設定され、その判定条件として、シーケンス番号又はブロックの行数が入力設定されているとき、退避ブロック判定手段16として、数値制御装置100のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを1ブロック読み取る毎に、この図5に示す処理を実行する。
【0037】
まず、当該ブロックのシーケンス番号若しくはブロックの行数を読取り(ステップa1)、該読み取ったシーケンス番号若しくはブロックの行数が設定されているシーケンス番号若しくはブロックの行数と一致しているか判別し(ステップa2)、一致していれば、当該ブロックを解読手段11で解読して得られ、先読みレジスタに格納されている実行可能形式データと共に設けられている退避ブロックを示すフラグFを「1」にセットし(ステップa3)、また、シーケンス番号若しくはブロックの行数が設定されたものと一致しなければフラグFは「0」にセットし(ステップa4)、当該ブロックを解読する際に実施される退避判定処理は終了する。こうして、退避ブロックと決定されたブロックの実行可能形式データと共にフラグF=1のデータがレジスタに記憶されることになる。
【0038】
図6は、退避ブロック条件設定手段15で退避ブロックの判定方法Bが入力設定され、その判定条件として各種条件(所定の軸の位置決め指令、移動方向、移動距離、終点座標値等)が入力設定されているとき、退避ブロック判定手段16として、数値制御装置100のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、解読手段11で加工プログラムを1ブロック読み取る毎に、この図6に示す処理を実行する。
【0039】
まず、解読手段11で解読されたブロック情報を読取り(ステップb1)、退避ブロックを判定するために設定された条件を特定する指標iを「1」にセットし(ステップb2)、読み取ったブロック情報はi番目の設定条件を満たしているか判別し(ステップb3)、満たしていれば、指標iが設定されている条件の数N以上か判別し(ステップb4)、条件の数Nに達していなければ、指標iを「1」インクリメントし(ステップb5)、ステップb3に戻る。以下、ステップb3〜b5を繰り返し実行し、指標iが設定条件の数Nに達し、設定されている退避ブロックの判定条件の全てを満たしていれば、先読みレジスタに格納された実行可能形式データに設けられている退避ブロックを示すフラグFを「1」とする(ステップb6)。また、ステップb3〜b5を繰り返し実行中、1つでも設定条件を満たさず成立しなければ、ステップb3からステップb7に移行し、フラグFを「0」とする。こうして各ブロックの実行可能形式データと共に退避ブロックを示すフラグFを、退避ブロックであれば「1」に、退避ブロックでなければ「0」にセットされ、当該ブロックの退避ブロック判定処理は終了する。
【0040】
図7は、退避ブロック条件設定手段15で退避ブロックの判定方法Cが入力設定され、その判定条件として、退避ブロックを示すコード(Gコード又はMコード)が設定されているとき(なお、この判定方法が採用されるときは、加工プログラムには、退避ブロックとして選ばれるブロックに、退避ブロックを示すコード(Gコード又はMコード)が設定されている。)、退避ブロック判定手段16として、数値制御装置100のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを1ブロック読み取る毎に、この図7に示す処理を実行する。
【0041】
解読手段11で解読されたブロック情報を読取り(ステップc1)、読み取ったブロック情報の中に設定されている退避ブロックを指定するコード(Gコード又はMコード)が含まれているか判別し(ステップc2)、含まれていれば、実行可能形式データと共に記憶する退避ブロックを示すフラグFを「1」に(ステップc3)、含まれていなければ該フラグFを「0」にセットし(ステップc4)、当該ブロックの退避ブロック判定処理は終了する。
【0042】
図8は、退避ブロック条件設定手段15で退避ブロックの判定方法Dが入力設定されたとき、退避ブロック判定手段16として、数値制御装置100のプロセッサが実施する退避ブロック判定処理のアルゴリズムを示すフローチャートである。プロセッサは、加工プログラムを1ブロック読み取る毎に、この図8に示す処理を実行する。
【0043】
解読手段11で解読されたブロック情報を読取り(ステップd1)、当該ブロックが位置決め指令のブロックか否か判別し(ステップd2)、位置決め指令のブロックでなければ、工具径補正指令のブロックか判別し(ステップd3)、工具径補正指令のブロックでなければ、複合形固定サイクルの指令のブロックか判定し(ステップd4)、複合形固定サイクル指令でもなければ、カウンタの値が「0」か判別し(ステップd13)、「0」と判別されれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「0」にセットし(ステップd8)、当該処理を終了する。以下、位置決め指令のブロック、工具径補正指令のブロック、複合形固定サイクル指令のブロックが読み込まれない限り、このステップd1、d2、d3、d4、d13、d8の処理をブロックを解読する毎に実行する。
【0044】
ステップd3で、読み出したブロックが工具径補正の指令であると判別されたときには、工具径補正のブロックが読み込まれていることを示すフラグFrを「1」にセットし(ステップd6)、又、ステップd4で、読みだしたブロックが複合形固定サイクル指令である判別されたときには、複合形固定サイクル指令のブロックが読み込まれていることを示すフラグFcを「1」にセットする(ステップd5)。なお、フラグFr、Fc、カウンタは、加工プログラムを実行する初期設定で「0」に設定されている。
次に、カウンタの値が「0」か否か判別し(ステップd7)、「0」ならば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「0」にセットし(ステップd8)、当該処理を終了する。
【0045】
次に、ステップd2で、読みだしたブロックが位置決め指令である判別されると、該位置決め指令の軸が基本軸か否か判別し(ステップd9)、基本軸ならば、工具径補正のブロックが読み込まれていることを示すフラグFrが「1」にセットされているか判別し(ステップd10)、「1」にセットされていれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「1」にセットし(ステップd15)、フラグFr、Fcを「0」にリセットし(ステップd16)、当該処理を終了する。また、位置決め指令が基本軸に対する位置決め指令ではないときは(ステップd9)、複合形固定サイクル指令のブロックが読み込まれていることを示すフラグFcが「1」にセットされているか判別し(ステップd11)、フラグFcが「1」であれば、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「1」にセットし(ステップd15)、フラグFr、Fcを「0」にリセットし(ステップd16)、当該処理を終了する。すなわち、位置決め指令が基本軸の位置決めであれば、工具径補正指令ブロックが既に読み込まれフラグFrが「1」にセットされていれば、当該位置決め指令のブロックは退避ブロックとして指定され、フラグFが「1」にセットされる。また、位置決め指令が基本軸でなくても、複合形固定サイクル指令のブロックが既に読み込まれフラグFcが「1」にセットされていれば、当該位置決め指令のブロックは退避ブロックとして指定され、フラグFが「1」にセットされるものである。
【0046】
一方、ステップd10、d11でフラグFc、Frが「1」にセットされていないと判別されたときには(工具径補正の指令や複合形固定サイクルの指令のブロックよりも先に位置決め指令のブロックが読み込まれたとき)、カウンタを「1」にセットし(ステップd12)、ステップd8に進み、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「0」にセットし、当該処理を終了する。
【0047】
工具径補正指令や複合形固定サイクル指令のブロックが読み込まれる前に位置指令のブロックが読み込まれ、カウンタが「1」にセットされた後は、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれるまで、ステップd1、d2、d3、d4、d13、d14、d8の処理がブロックを解読する毎に実行され、カウンタはブロックを解読される毎に1カウントアップされる(ステップd14)。また、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれるより前に、再び位置指令のブロックが読み込まれた場合には、d1、d2、d9、d10又はd11、d12の処理が実行されて、カウンタがカウントアップ中でも、該カウンタはステップd12の処理で「1」にセットされる。
【0048】
そこで、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれる(ステップd3〜d6の処理を経て、ステップd7で、カウンタのカウント値が「0」か判別され、カウント値が「0」でなければ(位置決め指令のブロックがすでに読み込まれていることを示す)、当該ブロックの実行可能形式データと共に記憶される退避ブロックを示すフラグFを「0」にセットすると共に、先読みレジスタに記憶されているブロックをカウント値で示される数だけさかのぼり、そのブロックのデータを読み出し、該ブロック(位置決め指令のブロック)の実行可能形式データと共に記憶される退避ブロックを示すフラグFを「1」にセットする(ステップd17)。そして、カウンタを「0」にセットし(ステップd18)、当該処理を終了する。すなわち、先に示したプログラム例1、プログラム例3のように、位置決め指令のブロックが先に読み込まれ、その後、工具径補正の指令や複合形固定サイクルの指令のブロックが読み込まれたときは、先に読み込まれた位置決め指令のブロックの実行可能形式データと共に記憶されるフラグFを「1」にセットして、該位置決め指令のブロックを退避ブロックと指定するものである。
【0049】
なお、ステップd17では、先読みレジスタのブロックをカウント値で示される数だけさかのぼったブロック(位置決め指令のブロック)のフラグFを「1」にセットするが、カウント値で示される数だけさかのぼった点にブロックデータがない場合(すでに実行されブロックの実行可能形式データが除去されている場合)、フラグFを「1」にセットできず無視されることになる。すなわち、工具径補正の指令が、位置決め指令後早い段階で指令されたときのみ、退避ブロックを指定することになる。また、ステップd17でフラグFを「1」にセットして退避ブロックを指定しても、工具径補正指令や複合形固定サイクル指令のブロックが読み込まれたことを示すフラグFr、Fcは、「1」にセットされたままで、「0」にリセットされることはない。そのため、次に位置決め指令のブロックが読み込まれたときは、ステップd1、d2、d9、d10若しくはd11、d15と処理され、この位置決め指令のブロックのフラグFが「1」にセットされ、退避ブロックとして指定されることになる。そして、後述するように(図9の処理参照)、退避ブロック情報記憶メモリ19には、フラグFが「1」にセットされているブロックの情報が上書き保存されることから、退避ブロック情報記憶メモリ19には、その時点で一番新しく指定された退避ブロックの情報が記憶されることになる。すなわち、工具径補正指令よりも後に指令された位置決め指令のブロックが優先して退避ブロックとして指定されることになる。
【0050】
退避ブロック条件設定手段15で退避ブロックを判定する方法A〜Dのいずれかを選択指定し、退避ブロック判定手段16で、読み込んだブロックが退避ブロックであるか否か判定して、判定されたブロックの実行可能形式データにはフラグFが「1」にセットされるので、このフラグF=1によって退避ブロックが特定されている。
【0051】
図9は、退避ブロック情報読取り手段17として、数値制御装置100のプロセッサが実施する退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。プロセッサは、パルス分配を開始する直前のタイミングで、この図9に示す処理を実行する。
先入れ先出し方式により、先読みレジスタに記憶するブロックの情報(実行可能形式データ)の中で一番先に記憶した情報を読み出し(ステップe1)、その情報の中のフラグFが「1」にセットされているか判別し(ステップe2)、フラグFが「1」にセットされていなければ、当該処理を終了し、「1」にセットされていれば、このブロックは退避ブロックとして指定されているものであるから、読み出したこのブロックの実行可能形式データを退避ブロック情報記憶メモリ19に上書きで記憶し(ステップe3)、当該処理を終了する。こうして指定された退避ブロックの実行可能形式データが退避ブロック情報記憶メモリ19に格納される。
【0052】
図10は、ブロック終点位置読取り手段18として、数値制御装置100のプロセッサが実施する退避ブロック情報読取り処理のアルゴリズムを示すフローチャートである。プロセッサは、パルス分配時に、この図10に示す処理を実行する。
パルス分配中のブロックはフラグFが「1」にセットされているか判別し(ステップf1)、フラグFが「1」でなければ、この処理を終了する。フラグFが「1」にセットされていれば、当該ブロックの指令のパルス分配が終了し、ブロック指令の終点に達しているか判別し(ステップf2)、ブロック指令の終点に達していなければ、この処理を終了する。一方、ブロック指令の終点に達していれば、座標更新手段14で更新されている座標位置を退避ブロック情報記憶メモリ19に先に記憶した退避ブロックの実行可能形式データと共に記憶し(ステップf3)、この処理を終了する。
【0053】
こうして、退避ブロック情報記憶メモリ19には、指定された退避ブロックの実行可能形式データと該ブロック指令での終点座標位置が記憶されることになる。
【0054】
図11は、工具退避手段20として、数値制御装置100のプロセッサが実施する工具退避処理のアルゴリズムを示すフローチャートである。
数値制御装置100が加工プログラムを実行し、工作機械が加工を実施しているとき、何らかの原因、理由で、その加工を中断したとき、図11に示す処理を開始し、プロセッサは、操作盤、ソフトキー、MDI等で構成される工具退避指令手段21より、工具退避要求が入力されたか監視し(ステップg1)、工具退避要求が入力されると、退避ブロック情報記憶メモリ19に記憶する退避ブロックで指令された終点の座標位置と、ブロック終点位置読取り手段18を介して読み出された、現在の座標位置より、現在の位置より退避ブロックの指令での終点座標位置までの移動させるデータ(各軸移動量)を求める。すなわち、現在位置より、退避ブロックの終点座標位置へ移動させる「退避動作1」の各軸移動量を求め(ステップg2)、予め設定されている退避速度で求めた移動量だけ移動させる「退避動作1」を実行させる(ステップg3)。次に、退避ブロック情報記憶メモリ19に記憶する退避ブロックの実行可能形式データを一時的なバッファに格納し、この実行可能形式データより退避ブロックで指令された経路を遡る「退避動作2」のデータを求める(ステップg4)。すなわち、退避ブロックの実行可能形式データには、軸の移動量、移動方向、速度等を含むが、このうち、移動方向を反転させ、速度を予め設定された安全を配慮した退避速度に変更し、退避ブロックで指令された経路を逆にたどる「退避動作2」のデータを求める。そして、求めた「退避動作2」を実行してパルス分配手段12でパルス分配を実施し、工具を退避ブロックで指令された経路で逆行させ、工具を退避させる。
【0055】
上述した実施形態では、図1に示されるような、退避ブロックが1つ指定され、工具を退避させるとき、現在座標位置よりこの退避ブロックの終点座標位置までの移動の「退避動作1」と、退避ブロックで指令された移動経路を逆方向に移動させる「退避動作2」で構成された退避動作をさせるものであるが、退避ブロックを複数個設定し、退避させるときは、現在位置より、設定された複数の退避ブロックを経由する退避動作を実施させるようにしてもよい。この場合、複数の位置決めブロックが退避ブロックとして設定されることから、退避ブロック情報記憶メモリには、退避ブロックの情報(実行可能形式データ)が、上書きされることなく、それぞれ記憶する。またその退避ブロックの実行でえられる終点座標位置も、記憶した退避ブロックの情報(実行可能形式データ)と共に記憶するようにする。そして、工具退避要求が入力されたとき、その時の座標位置より、退避ブロック情報記憶メモリに記憶する退避ブロックの実行可能形式データ及び終点座標位置を記憶の新しい順に(後入れ先出し方式で)、読み出し、退避動作を実行させる。
【0056】
例えば、退避ブロックとしてブロックB1、次にブロックB2、その次にブロックB3の情報がこの順で退避ブロック情報記憶メモリに格納されている状態で、工具退避要求が入力されると、その時の座標位置より、ブロックB3での終点座標位置への移動(第1の退避動作1)、ブロックB3で指令された経路を逆方向への移動(第1の退避動作2)、次にブロックB2での終点座標位置への移動(第2の退避動作1)、ブロックB2で指令された経路を逆方向への移動(第2の退避動作2)、さらに、ブロックB1での終点座標位置への移動(第3の退避動作1)、ブロックB1で指令された経路を逆方向への移動(第3の退避動作2)を実行し工具を退避させるようにする。
【0057】
また、この退避ブロックを複数設定する場合は、退避ブロックの判定方法A、Cでは、複数ブロックを指定しておけばよい。退避ブロックの判定方法Bでは、条件に合致するものが1以上選ばれることになる。また、退避ブロックの判定方法Dで退避ブロックを複数個判定し設定する場合は、図8の処理においてフラグFr、Fcを「0」にリセットするステップd16の処理をなくし、「1」にセットされたフラグFr、Fcは、そのまま「1」に保持させることによって、位置決め指令のブロックが読まれる毎に退避ブロックに指定するようにする。
なお、上述した実施形態では加工を停止した位置から退避ブロックの終点座標位置まで、移動させる退避動作1を、加工を停止した位置を始点、退避ブロックの終点座標位置を終点とした直線移動で構成したが、各軸の移動速度をそれぞれの規定速度(たとえば最高速度)として、加工を停止した位置から退避ブロックの終点座標位置までの移動経路がジグザグであってもよい。また、あらかじめ移動軸の順序指定しておき、1軸ごと加工を停止した座標位置から退避ブロックの終点座標位置まで移動させるようにしてもよい。
【符号の説明】
【0058】
1 工具
2 主軸
3 穴
100 数値制御装置
W ワーク(被加工物)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13