(57)【要約】【課題】メモリ容量を増大させることなく、かつ加工再開までの時間を短縮した加工再開機能を備える数値制御装置を提供する。【解決手段】加工中断時の数値制御装置の内部状態を復元するために実行する必要がなくスキップするサブプログラム等のプログラム部をその番号等で登録しておく。内部状態を復元する際、読み出したブロックがスキップするプログラム部でないときのみ、機械を動かさずに実行し、機械座標位置等の内部状態を更新記憶する(ｂ５)。又、ブロック位置を示すポインタを更新する(ｂ８)。ポインタが、加工中断時のポインタの値と等しくなり、中断ブロックに達したことが判別すると(ｂ７)、加工中断時に記憶していた補間情報等の内部状態を復元し(ｂ９)、加工を再開する(ｂ１０)。必要のないプログラムをスキップするから処理時間が短縮できる。又、必要なメモリ容量も少なくてすむ。【選択図】図３
2008134983.tif 000002
【特許請求の範囲】
【請求項１】
加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、
数値制御装置を加工中断時の内部状態に復元するために実行する必要のないプログラム部の情報が予め設定され記憶されているスキッププログラム部記憶手段と、
加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、
加工中断後の再開指令により、加工プログラムの先頭ブロックから、前記スキッププログラム部記憶手段に記憶されたプログラム部以外のブロックの指令のみを、加工プログラムのブロック位置を示すポインタで示される加工中断点まで機械を動かさずに実行するプログラム空実行手段と、
該プログラム空実行手段により加工中断点まで加工プログラムが実行されると前記補間情報記憶手段に記憶する補間情報を数値制御装置に復元して加工を再開させる手段とを備えたことを特徴とする加工再開機能を備えた数値制御装置。
【請求項２】
加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、
数値制御装置を加工中断時の内部状態に復元するために実行する必要のないプログラム部の情報が予め設定され記憶されているスキッププログラム部記憶手段と、
現在実行中のプログラム情報を記憶するプログラム情報記憶手段と、
加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、
加工プログラムより読み出したブロックが前記スキッププログラム部記憶手段に記憶されたプログラム部に該当するとスキップするブロックとするスキップブロック判別手段と、加工中断後の再開指令により、前記プログラム情報記憶手段で記憶したプログラムの先頭ブロックから読み出し、スキップブロック判別手段でスキップするブロックと判別されないブロックの指令のみ機械を動かさずに実行するプログラム空実行手段と、
前記プログラム情報記憶手段で記憶するブロック情報で示される加工中断ブロックまで前記プログラム空実行手段で加工プログラムが実行されたか判別する中断ブロック判別手段と、該中断ブロック判別手段で加工中断ブロックまで実行されたことが判別されると、前記補間情報記憶手段により記憶した補間情報を数値制御装置に復元する補間情報復元手段とを備え、
該補間情報復元手段で補間情報が復元された後、該ブロック位置及び復元された補間情報に基づいて加工を再開することを特徴とする加工再開機能を備えた数値制御装置。
【請求項３】
前記プログラム情報記憶手段で記憶するプログラム情報は、現在実行中のメインプログラム番号と、加工プログラムのブロック位置を示すポインタの値、前記スキップブロック判別手段で判別したスキップするプログラム部を除く実行ブロック数であることを特徴とする請求項２に記載の加工再開機能を備えた数値制御装置。
【請求項４】
前記スキッププログラム部記憶手段に記憶されるプログラム部の情報は、シーケンス番号、サブプログラム番号であることを特徴とする請求項１乃至３の内いずれか１項に記載の加工再開機能を備えた数値制御装置。
【請求項５】
加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、
現在実行中のプログラム情報を記憶するプログラム情報記憶手段と、
加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、
加工中断後の加工再開時に機械を動かさずにプログラムを実行する空運転モードを記憶する手段と、
空運転モード時にはスキップするプログラムを指定した加工プログラムと、
加工中断後の加工プログラム実行時、加工を中断したブロックまで実行したかを判別する中断ブロック判別手段と、
加工中断後の再開指令により前記プログラム情報記憶手段で記憶したプログラムの先頭ブロックから読み出し、前記中断ブロック判別手段で判別される加工中断ブロックまで、プログラムで指定したプログラム部をスキップしながら、前記空運転モードで加工プログラムを実行する空運転実行手段と、
前記空運転実行手段による加工中断ブロックの実行の完了で、前記補間情報記憶手段により記憶した補間情報を復元する補間情報復元手段と、
前記補間情報復元手段で補間情報が復元されたあと、空運転モードを通常の運転モードに切換て加工を再開する加工再開手段と、
を備えたことを特徴とする加工再開機能を備えた数値制御装置。
【請求項６】
前記プログラム情報記憶手段は、通常運転モードでの加工プログラム実行中、前記空運転モードにおいてスキップするプログラム部のブロック以外のブロックを実行するときのみ、そのブロックに対応するポインタの値を記憶し、前記中断ブロック判別手段は、ブロック位置を示すポインタにより加工を中断したブロックを判別する請求項５に記載の加工再開機能を備えた数値制御装置。
【請求項７】
前記プログラム情報記憶手段は、通常運転モードでの加工プログラム実行中、前記空運転モードにおいてスキップするプログラム部のブロック以外の実行したブロックの数を記憶し、前記中断ブロック判別手段は、前記プログラム情報記憶手段に記憶するブロック数と、空運転モードで空運転したブロック数とにより、加工を中断したブロックを判別する請求項５に記載の加工再開機能を備えた数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械を制御する数値制御装置に関する。特に、加工途中で加工を中断した際、その後、加工を再開するための加工再開機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
工作機械を制御する数値制御装置においては、一般に、加工中断後、加工再開を実現するためには、実行していたプログラムのブロック、機械位置、補間データ等、数値制御装置の内部状態を加工中断した時の状態に忠実に復元し、中断点から再開する加工再開機能が搭載されている。
【０００３】
この加工再開機能として、例えば、加工プログラムの実行中、実行完了ブロックの次の次のブロックを読み出す位置を示すポインタＰの値と、実行完了ブロックの次のブロック解析データ（プログラムのブロックを解析したデータ）ＢＤ、実行完了のブロックの指令データ（解析データに基づいて実行するための指令データ）ＣＤの内部状態を記憶手段に記憶しておき、加工中断が発生し、加工を再開する際には、この記憶手段に記憶したポインタＰの値を加工プログラムを解析する位置ポインタＰの値とし、プログラムを解析したデータとして記憶した解析データＢＤをセットし、かつ指令データＣＤをもセットして、中断時の内部状態に全て復元して加工を再開するようにしたものが知られている（特許文献１参照）。
【０００４】
又、加工を中断した時、中断時に実行中であったプログラム番号、シーケンス番号、ブロック番号、Ｇコード、Ｍコード、Ｓコード、Ｔコードを記憶しておき、加工再開時には、この記憶した加工中断時の情報を入力し、実行プログラム番号のプログラムのサーチを実行し、記憶した情報に基づいて加工を再開するようにしたものも知られている（特許文献２参照）。
【０００５】
【特許文献１】特開平７−１５２４１６号公報
【特許文献２】特開平２−１５１９０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
加工再開機能としては、数値制御装置にかかる負担が少なく、効率よく加工を再開できるようにすることが望ましい。特許文献１に記載された発明では、通常の加工運転の際に、加工プログラムのブロックを解析したとき、その都度その解析データを記憶し、さらに、この解析データに基づいて指令データを作成し、この指令データが作成される毎にこの指令データも記憶させておかねばならないものである。加工再開機能のために、余分に解析データや指令データを記憶させておかねばならず、その分、処理が複雑となり、処理時間を長くし、かつ、これらのデータを記憶するためのメモリ容量が増大するという問題がある。
【０００７】
一方、特許文献２に記載された発明は、加工が中断された時の内部状態を記憶するという処理が必要なものの、余分なメモリや通常の加工運転中に加工再開機能への対応も格別必要とせず、数値制御装置の加工中断時の内部状態を復元可能だが、プログラムの長さや、サブプログラム呼出しの実行回数により、再開までに多大な時間がかかるという欠点がある。
【０００８】
そこで、本発明の目的は、数値制御装置のメモリ容量を増大させることなく、かつ加工再開までの時間を短縮した加工再開機能を備える数値制御装置を提供することにある。
【課題を解決するための手段】
【０００９】
本願請求項１に係る発明は、加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、数値制御装置を加工中断時の内部状態に復元するために実行する必要のないプログラム部の情報が予め設定され記憶されているスキッププログラム部記憶手段と、加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、加工中断後の再開指令により、加工プログラムの先頭ブロックから、前記スキッププログラム部記憶手段に記憶されたプログラム部以外のブロックの指令のみを、加工プログラムのブロック位置を示すポインタで示される加工中断点まで機械を動かさずに実行するプログラム空実行手段と、該プログラム空実行手段により加工中断点まで加工プログラムが実行されると前記補間情報記憶手段に記憶する補間情報を数値制御装置に復元して加工を再開させる手段とを備え、メモリ容量を増加させることなく、かつ、加工再開を短時間で実行できるようにしたものである。
【００１０】
又、請求項２に係る発明は、加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、数値制御装置を加工中断時の内部状態に復元するために実行する必要のないプログラム部の情報が予め設定され記憶されているスキッププログラム部記憶手段と、現在実行中のプログラム情報を記憶するプログラム情報記憶手段と、加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、加工プログラムより読み出したブロックが前記スキッププログラム部記憶手段に記憶されたプログラム部に該当するとスキップするブロックとするスキップブロック判別手段と、加工中断後の再開指令により、前記プログラム情報記憶手段で記憶したプログラムの先頭ブロックから読み出し、スキップブロック判別手段でスキップするブロックと判別されないブロックの指令のみ機械を動かさずに実行するプログラム空実行手段と、前記プログラム情報記憶手段で記憶するブロック情報で示される加工中断ブロックまで前記プログラム空実行手段で加工プログラムが実行されたか判別する中断ブロック判別手段と、該中断ブロック判別手段で加工中断ブロックまで実行されたことが判別されると、前記補間情報記憶手段により記憶した補間情報を数値制御装置に復元する補間情報復元手段とを備え、該補間情報復元手段で補間情報が復元された後、該ブロック位置及び復元された補間情報に基づいて加工を再開することを特徴とするものである。
【００１１】
請求項３に係る発明は、請求項２に係る発明における前記プログラム情報記憶手段で記憶するプログラム情報を、現在実行中のメインプログラム番号と、加工プログラムのブロック位置を示すポインタの値、前記スキップブロック判別手段で判別したスキップするプログラム部を除く実行ブロック数としたものである。さらに、請求項４に係る発明は、前記スキッププログラム部記憶手段に記憶されるプログラム部の情報を、シーケンス番号、サブプログラム番号としたものである。
【００１２】
請求項５に係る発明は、加工を中断した位置から再開する、加工再開機能を備えた数値制御装置であって、現在実行中のプログラム情報を記憶するプログラム情報記憶手段と、加工プログラムにおける現在実行中のブロックの指令での補間情報を記憶する補間情報記憶手段と、加工中断後の加工再開時に機械を動かさずにプログラムを実行する空運転モードを記憶する手段と、空運転モード時にはスキップするプログラムを指定した加工プログラムと、加工中断後の加工プログラム実行時、加工を中断したブロックまで実行したかを判別する中断ブロック判別手段と、加工中断後の再開指令により前記プログラム情報記憶手段で記憶したプログラムの先頭ブロックから読み出し、前記中断ブロック判別手段で判別される加工中断ブロックまで、プログラムで指定したプログラム部をスキップしながら、前記空運転モードで加工プログラムを実行する空運転実行手段と、前記空運転実行手段による加工中断ブロックの実行の完了で、前記補間情報記憶手段により記憶した補間情報を復元する補間情報復元手段と、前記補間情報復元手段で補間情報が復元されたあと、空運転モードを通常の運転モードに切換て加工を再開する加工再開手段とを備えたことを特徴とするものである。
【００１３】
請求項６に係る発明は、請求項５に係る発明において、前記プログラム情報記憶手段に、通常運転モードでの加工プログラム実行中、前記空運転モードにおいてスキップするプログラム部のブロック以外のブロックを実行するときのみ、そのブロックに対応するポインタの値を記憶し、前記中断ブロック判別手段で、ブロック位置を示すポインタにより加工を中断したブロックを判別するようにしたものである。
【００１４】
また、請求項７に係る発明は、請求項５に係る発明において、前記プログラム情報記憶手段に、通常運転モードでの加工プログラム実行中、前記空運転モードにおいてスキップするプログラム部のブロック以外の実行したブロックの数を記憶し、前記中断ブロック判別手段で、前記プログラム情報記憶手段に記憶するブロック数と、空運転モードで空運転したブロック数とにより、加工を中断したブロックを判別するようにしたものである。
【発明の効果】
【００１５】
本発明は、加工再開機能のためにメモリ容量を格別大きなものにする必要がなく、かつ、加工再開が短時間で実現できる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明の実施形態の工作機械を制御する数値制御装置の概要図である。従来の工作機械を制御する数値制御装置の構成と同じであり、図１では、概略的に示している。従来の数値制御装置と相違する点は、メモリ（記憶手段）に記憶される加工プログラムの実行処理のソフトウェアが加工再開機能を実現するために一部相違し、又、後述する加工再開機能のソフトウェアが格納されている点で従来の数値制御装置と相違する。
【００１７】
数値制御装置１０は、プロセッサ（ＣＰＵ）１１とバス１８で接続されたメモリ（記憶手段）１２、インタフェース１３、表示器１４、機械操作盤１５、工作機械２０の各軸のサーボモータを制御する各軸制御手段１６、工作機械２０の主軸モータを制御する主軸制御手段１７を備えている。
【００１８】
メモリ１２は、ＲＯＭ、ＲＡＭ、不揮発性メモリ（ＲＡＭ）等で構成され、ＲＯＭには、全体を制御するシステムプログラムが格納され、不揮発性メモリには各種加工プログラムが格納されている。特に、本発明と関係し、不揮発性メモリには、加工再開時に解析実行しないプログラム部が予め設定記憶されている。インタフェース１３は、各種加工プログラム等を格納する外部記憶手段２１が接続され、この加工プログラムをプロセッサが読み出し可能になっている。
【００１９】
表示器１４は、機械操作盤１５に設けられたキーボード等からの指令に基づいて、加工プログラムの表示等を行うものである。又、各軸制御手段１６は、加工プログラムに基づいてプロセッサ１１が各軸へ指令した移動指令と図示していない、各サーボモータにそれぞれ取り付けられた位置・速度検出器からの位置、速度フィードバック信号に基づいて、位置、速度のフィードバック制御を行い、各軸のサーボモータを駆動し、その位置、速度を制御するものである。さらに、主軸制御手段１７はプロセッサ１１から指令された主軸速度指令に基づいて、主軸の速度を制御するものである。
【００２０】
まず、本発明の各実施形態においては、加工を再開するときには、機械を動かさずに加工プログラムを実行し、加工中断時の数値制御装置の内部状態に復元するものであるが、この内部状態の復元の際に、実行する必要のない無用なサブプログラムやブロックがある。
【００２１】
加工プログラムには、加工条件の設定や計測を行うサブプログラム、マクロプログラム、実際の加工に直接関係しない指令のプログラム等、被加工物を工具が加工する状態以外の動作、指令のプログラム部を有する。これらのプログラム部では、被加工物に対する工具位置は、このプログラム部の実行開始前の位置を加工再開時の位置として内部状態を復元すれば十分である。
【００２２】
例えば、加工メインプログラムから被加工物の計測を行うサブプログラムを読み出し、被加工物の計測を実行させる場合、被加工物に対する工具のサブプログラム開始前の位置とサブプログラム終了位置は同じであることから、加工再開処理時に、サブプログラムを解析実行することは無駄である。このように、加工に直接関係せず、加工中断時の数値制御装置の内部状態を復元するために実行する必要のないプログラムを解析実行させても、意味がない。又、加工中断点の数値制御装置の内部状態を復元することに対して無駄なプログラム部は、そのサブプログラムや指令の内容によって予め分かるものである。
【００２３】
そこで、本発明の第１の実施形態では、この内部状態の復元の際に、実行する必要のない無用なサブプログラムやブロックをスキップするプログラム部をパラメータ設定によって、もしくは、図示しない通信インタフェースを介して外部からの信号等によって、メモリ１２に設定しておく。サブプログラム番号、マクロプログラム番号、シーケンス番号、シーケンス番号で示す所定区間、さらには、加工に直接関係しないようなＧコード番号（準備機能コード番号）、Ｍコード番号（補助機能コード番号）等をスキップするプログラム部としてメモリ１２のスキッププログラム部記憶部に設定し記憶させておく。
【００２４】
図２は、本第１の実施形態における数値制御装置１０のプロセッサ（ＣＰＵ）１１が実行する通常運転モード時の加工プログラム実行処理のアルゴリズムのフローチャートである。加工再開機能に関係する部分を重点的に記載している。
【００２５】
まず、加工プログラムよりポインタの値に対応する１ブロックを読み出し解析し、実行データを作成する（ステップａ１）。なお、ポインタは、加工プログラムの実行処理開始時の初期設定で、「０」にリセットされている。又、読み出したブロックの指令がプログラム終了指令であると（ステップａ２）、このプログラム実行処理は終了する。プログラム終了でなければ、このブロックがメモリ１２に登録されている加工再開時においてスキップするプログラム部か判断し（ステップａ３）、スキップするプログラム部であればステップａ５に進む。
【００２６】
一方、当該ブロックがメモリに登録されたスキップするプログラム部ではないと判別されたときには、プログラム情報メモリ部にプログラム情報の記憶として、この実行中のメインプログラム番号と、実行ブロック数を１インクリメントして記憶する（ステップａ４）。なお、この実行ブロック数を記憶するメモリ部は、加工プログラム開始時の初期設定で、「０」にリセットされている。
【００２７】
次に、ステップａ１でプログラムブロックを解析して求めた実行データに基づいて当該プログラムブロックの実行を行う。すなわち、主軸速度指令は主軸制御手段１７に速度指令を出力し、被加工物に対する工具の移動指令は、実行データに基づいて補間処理を所定補間周期毎実行し、各軸への移動指令を各軸制御手段１６に出力し、各軸のサーボモータを駆動する（ステップａ５）。そして、補間処理が終了する毎に、補間情報メモリ部に補間情報として、現在の座標位置、当該ブロックで指令された移動量における残移動量、及び現在の加減速状態（直線形加減速、ベル型加減速、指数関数形加減速等の加減速制御のタイプ）を記憶する（ステップａ６）。何らかの理由で加工が中断されたか（ステップａ７）、当該ブロックで指令された処理を終了したか（ステップａ８）を判断し、加工が中断されることもなく、また、当該ブロックで指令された処理が終了してなければ、このステップａ５〜ａ８の処理を補間周期毎実行する。この補間実行処理中に、加工が中断することなく、当該ブロックの補間実行処理が終了すると、次に読み取るプログラムのブロック位置を示すポインタを更新し（ステップａ９）、ステップａ１に戻る。以下、プログラム終了までステップａ１〜ａ９の処理を実行し、数値制御装置は加工プログラムに基づいて工作機械を制御し、被加工物を加工する。
【００２８】
この加工途中で何らかの理由で工作機械の動作が停止し、加工が中断されると（ステップａ７）、プログラム情報メモリ部にはプログラム情報の記憶としてポインタの値を記憶する（ステップａ１０）。
【００２９】
プログラム情報メモリ部には、加工中断時における実行していたメインプログラム番号と、ポインタの値、及びスキップしない実行ブロック数が記憶され、補間情報メモリ部には、補間情報として、加工停止直前の補間周期で補間処理を実行、各軸を駆動したときの機械座標位置、その時の残移動量、加減速状態が記憶されていることになる。
【００３０】
図３は、この第１の実施形態において、加工中断後、加工を再開するときの加工再開処理のアルゴリズムを示すフローチャートであり、特に、数値制御装置の内部状態を、加工中断時の内部状態に復元する処理を主に記載している。
【００３１】
加工再開指令が入力されると数値制御装置１０のプロセッサ１１は、まず、図２のステップａ４でプログラム情報メモリ部に記憶されたメインプログラム番号のメインプログラムを不揮発性メモリ部からＲＡＭに読み出し（ステップｂ１）、該プログラムよりポインタの値で示されるブロックより読み出す（ステップｂ２）。なお、ポインタは加工再開処理の初期設定で、最初は「０」にリセットされている。読み出したブロックが予め登録されている再開時にスキップするプログラム部として登録されているか判断する（ステップｂ３）。スキップするものとして登録されていれば、ステップｂ７に進む。一方、スキップしないものであれば、該ブロックの解析を行い実行データを作成し（ステップｂ４）、機械を動かすことなく空運転を行う。すなわち、ブロック実行データに基づいて補間処理を行い、機械の座標位置、残移動量、加減速状態等の内部状態を更新する処理を行う（ステップｂ５）。いわゆるドライ（空）運転を行うもので、実際の補間処理を行い各軸移動量、機械の座標位置等を求めるが、この求めた各軸移動量の指令は、各軸制御手段１６には出力されず、各軸のサーボモータは駆動されないので、工作機械は停止した状態である。
【００３２】
当該ブロックの実行が終了すると、加工再開処理における実行ブロック数を記憶するレジスタに「１」を加算し、加工再開処理における実行ブロック数を１インクリメントし（ステップｂ６）、ステップｂ７に移行する。ステップｂ７では当該ブロックが中断ブロックか判断する。当該ブロックが中断ブロックでないときは、ポインタを更新し（ステップｂ８）、ステップｂ２に戻り、ステップｂ２以下の処理を実行する。
【００３３】
以下、読み出したブロックが記憶する中断ブロックに達するまで、ステップｂ２からステップｂ８の処理を繰り返し実行する。なお、この実施形態のステップｂ７での中断ブロックに達したかの判断は、図２のステップａ４、ａ９でプログラム情報メモリ部に記憶した実行ブロック数とプログラム情報のポインタの値と、ステップｂ６で求めた実行ブロック数とこの加工再開処理におけるポインタの値（ステップｂ８で更新された値）がそれぞれ共に一致するとき、加工中断ブロックに達したと判断する。ポインタの値が一致するだけで、又は、実行ブロック数の一致だけで、中断ブロックまで空（ドライ）運転によるプログラムの実行が進んだことを判断してもよいものであるが、この実施形態では、スキップしないブロック数（実行ブロック数の値）とプログラム開始からのブロックの数（ポインタの値）によって、加工中断ブロックに達したか否かの判断をしている。
【００３４】
加工を中断したブロックまで達すると、図２のステップａ６で補間情報メモリ部に記憶した補間情報の記載の座標位置、残移動量、加減速状態の内部状態を数値制御装置に復元し（ステップｂ９）、加工を再開させ（ステップｂ１０）、図２のステップａ５に戻り、以下、加工プログラムを実行し、加工を行う。
【００３５】
ステップｂ７で加工を中断したブロックに達したことが判断されたときには、ポインタの値は、加工中断が生じたブロックを示すものとなっている。そして、ステップｂ９で、補間情報メモリ部に記憶した補間情報を内部状態として復元させると、加工を中断したブロックの加工を中断した位置（補間処理周期の処理が完了しその周期の各軸移動量が各軸のサーボモータに出力された位置）が復元されることになるので、加工再開時には、この復元位置より補間処理を実行し、図２のステップａ５以下の処理を行い、この加工停止したブロックの補間処理が終了すると、ステップａ９でポインタの値が更新されて、ステップａ１以下の処理により次のブロックからその処理が開始されることになる。
【００３６】
なお、加工再開時の中断ブロックに達したかの判断をポインタの値のみで行う場合には、実行ブロック数をカウントする必要がないので、図２のステップａ３、ａ４の処理、図３のステップｂ６の処理は、なくしてもよいものである。そしてメインプログラム番号は、ステップａ１０でポインタの値と共にプログラム情報として記憶するようにすればよい。
【００３７】
この第１の実施形態では、加工中断後の加工再開時の内部状態を復元する処理において、プログラムのブロックを実行しないでスキップするプログラム部のサブプログラム番号やシーケンス番号等を予め設定するスキッププログラム部記憶部と、メインプログラム番号、ポインタの値、実行ブロック数のプログラム情報を記憶するプログラム情報メモリ部及び機械座標位置や残移動量、加減速状態を記憶する補間情報メモリ部を、加工再開機能のために設ければよいものであり、これらの記憶量は少なく、メモリ容量を格別大きくする必要はない。又、加工中断時の数値制御装置の内部状態を復元するために実行する必要のないプログラム部を解析、実行することなく、スキップして、加工中断時の数値制御装置の内部状態を復元したから、無駄な処理がなされず、短時間に加工中断時の数値制御装置の内部状態を復元できる。
【００３８】
次に、加工再開時に実行する必要のないプログラム部分を判別できるようにプログラム自体に組み込んでおき、加工再開時にはこの部分をスキップするようにした、本発明の第２、第３の実施形態について説明する。
【００３９】
上述した第１の実施形態は、加工を中断し、その後再開するとき、実行する必要のない無用なサブプログラムやブロックをスキップさせるために、そのスキップさせるサブプログラム番号やマクロプログラム番号、シーケンス番号、シーケンス番号で示す所定区間等を予めメモリに設定記憶させておくものであったが、この第２、第３の実施形態は、この加工再開時の実行する必要がないプログラム部分を、メモリに設定するのではなく、判別できるようにプログラム自体に組み込んでおき、加工再開時には、この部分をスキップするようにしたものである。
【００４０】
図４は、この第２、第３の実施形態で用いる加工プログラムの例の説明図である。  
この加工プログラムの例は、その実行途中でサブプログラムを読みだし実行し、かつ、繰り返しこのプログラムを実行する例である。  
図４において、「Ｏ１０００」はプログラム番号が「１０００」であることを示し、該プログラム番号「１０００」のメインプログラムから、「Ｍ９８」のコードでプログラム番号「９２００」のサブプログラムを読み出し実行し、メインプログラムの最後に記述された「Ｍ３０」（エンドオブプログラム＆リワインド）の指令によって、この加工プログラムを繰り返し実行するように指令されたものである。  
そして、このサブプログラム中に、加工中断後の加工再開時においては、実行する必要のないプログラム部分があり、この部分に対しては、加工再開時においてはスキップして実行しないように指令されている。この図４で示す例では、「ＩＦ［＃１００００ＥＱ１］ＧＯＴＯ９９９」がスキップ指令であり、マクロ変数「＃１００００」が「１」であるとき、シーケンス番号「９９９」の位置までスキップするように指令している。このスキップする区間が加工再開時において実行する必要のないプログラム部分である。
【００４１】
この第２、第３の実施形態では、数値制御装置が通常の加工を行うときのプログラム実行を行う通常運転モードの状態と、加工プログラムの途中で加工が中断し、その加工を中断点から再開するとき、機械を動かすことなく加工プログラムを実行するから運転モードの状態とを区別する情報を記憶するメモリ部を有している。この実施形態では、この状態の記憶としてマクロ変数で記憶する例を示している。  
図５（ａ）は、このモード状態を表す情報をマクロ変数「＃１００００」の設定例を示すもので、該マクロ変数「＃１００００」が「０」と設定されていれば、通常運転モードであり、「１」と設定されているときは、中断した加工を再開するときの空運転モードの状態を指定するものである。  
また、第２の実施形態では、通常の加工を行う通常運転モードでのプログラム実行時に、加工再開時の空運転モードでスキップするブロック以外のブロックに対してのみ、プログラム情報として、そのブロックのポインタの値、実行ブロック数等を記憶するようにしており、そのために、プログラム情報を記憶するか否かを、メモリに設定するものである。この実施形態はこれもマクロ変数によって設定するようにしている。図５（ｂ）は、このプログラム情報を記憶するか否かを指定するマクロ変数「＃１０００１」の設定例で、「０」と設定されていれば、プログラム情報を記憶し、「１」と設定されていれば、プログラム情報を記憶せずスキップすることを示している。
【００４２】
図６は、本発明の第２の実施形態の通常運転モード時の加工プログラム実行処理のアルゴリズムのフローチャートであり、図７は、この第２の実施形態の加工中断後、加工を再開するときの空運転モード時の処理のアルゴリズムを示すフローチャートである。  
通常の加工時においては、数値制御装置１０のプロセッサ（ＣＰＵ）１１は、図６の処理を実行する。  
まず、マクロ変数「＃１００００」に「０」を設定し、通常運転モードであることを記憶する（ステップｃ１）。加工プログラムの先頭から１ブロックを読みだし解析し（ステップｃ２）、該ブロックの指令がプログラム終了か判断する（ステップｃ３）。プログラム終了指令であれは、この処理を終了する。また、プログラム終了指令ではない場合は、マクロ変数「＃１０００１」に「１」が設定され、加工再開時の空運転モードにおいてスキップするブロックか否か判断する（ステップｃ４）。なお、このマクロ変数「＃１０００１」には、最初は「０」が設定されている。
【００４３】
マクロ変数「＃１０００１」が「１」に設定されていれば、ステップｃ６に進み、マクロ変数「＃１０００１」が「０」に設定されていると、プログラム情報メモリ部にプログラム情報として実行中のメインプログラムの番号、実行プログラムのポインタの値、実行ブロック数のカウント値を「１」インクリメントして記憶し（ステップｃ５）、ステップｃ６に進む。なお、実行ブロック数を記憶する必要があるのは、第３の実施形態のときであり、第２の実施形態では、この実行ブロック数を記憶する必要はない。よって、図６では「実行ブロック数＋１」をカッコ書きしている。
【００４４】
当該ブロックで指令されている処理を実行し（ステップｃ６）、移動指令であれば、補間処理を行い各軸制御手段１６に分配移動量を出力し各軸のサーボモータを駆動制御して加工を行う。そして、補間処理が終了する毎に、補間情報メモリ部に補間情報として、現在の座標位置、当該ブロックで指令された移動量における残移動量、及び現在の加減速状態を記憶する（ステップｃ７）。また、何らかの理由で加工が中断されたか（ステップｃ８）、当該ブロックで指令された処理を終了したか（ステップｃ９）判断し、加工が中断されることもなく、また、当該ブロックで指令された処理が終了してなければ、このステップｃ６〜ｃ９の処理を補間周期毎実行する。この補間実行処理中に、加工が中断することなく、当該ブロックの補間実行処理が終了すると、次に読み取るプログラムのブロック位置を示すポインタの値を更新し（ステップｃ１０）、ステップｃ２に戻る。以下、プログラム終了までステップｃ２〜ｃ１０の処理を実行し、数値制御装置１０は加工プログラムに基づいて工作機械を制御し、被加工物を加工する。
【００４５】
一方、この加工途中で何らかの理由で工作機械の動作が停止し、加工が中断されたことが、ステップｃ８で判別されると、この処理は終了するが、メモリ１２のプログラム情報メモリ部には、プログラム情報としては、この加工中断された時点で実行中のメインプログラムの番号、実行プログラムのブロックポインタの値、及び加工再開時の空運転モードではスキップせず実行する実行ブロック数のカウント値が記憶されている。さらに、メモリ１２の補間情報メモリ部には、補間情報として、加工停止したときの座標位置、残移動量及び加減速状態が記憶されている。
【００４６】
図４に示したプログラム例で、この図６に示す通常の加工におけるプログラム実行処理を説明すると、ステップｃ１でマクロ変数「＃１００００」が「０」に設定されているから、プログラム中の「ＩＦ［＃１００００ＥＱ１］ＧＯＴＯ９９９」のブロックを処理しても、シーケンス番号「９９９」にスキップすることなく、各ブロックの指令を実行するする。また、このスキップする間はマクロ変数「＃１０００１」が「１」に設定され、「０」にその設定が戻されるまでの間（スキップ区間）はステップｃ４からステップｃ６に進みステップｃ５の処理は行われず、この間のブロックにおけるプログラム情報は記憶されない。  
よって、プログラム情報は、加工再開時の空運転モードで実行するブロックの情報が記憶されるもので、実行ブロック数としては、加工再開時の空運転モードで実行するブロックを、この通常の加工時の通常運転モードにおいてカウントアップする。
【００４７】
一方、加工途中でその加工が中断され、加工を再開するとき、数値制御装置に加工再開指令が入力されると、この第２の実施形態では、図７の処理を開始する。  
まず、マクロ変数「＃１００００」を「１」に設定し、加工再開での空運転モードの状態であることを設定する（ステップｄ１）。次に、図６のステップｃ５でプログラム情報メモリ部に記憶されたメインプログラム番号のメインプログラムを不揮発性メモリ部からＲＡＭに読み出し（ステップｄ２）、該プログラムよりポインタの値で示されるブロックより読み出し解析する（ステップｄ３）。なお、ポインタは加工再開処理の初期設定で、最初は「０」にリセットされている。該ブロックの解析に基づいて実行データを作成し、機械を動かすことなく空運転を行い、内部状態を更新する（ステップｄ４）。すなわち、第１の実施形態と同様に、ブロック実行データに基づいて補間処理を行い、機械の座標位置、残移動量、加減速状態等の内部状態を更新する処理のみを行い、求めた各軸移動量の指令は、各軸制御手段１６には出力せず、各軸のサーボモータを駆動しないので、工作機械は停止した状態である。
【００４８】
次に、当該ブロックが中断ブロックか判断し（ステップｄ５）、当該ブロックが中断ブロックでないときは、ポインタの更新処理を行う。図７では、このブロックポインタの更新処理を詳細に記載している。すなわち、当該ブロックの指令が、図４の「ＩＦ［＃１００００ＥＱ１］ＧＯＴＯ９９９」のようなブロックをスキップさせるスキップ指令か判別し（ステップｄ６）、スキップ指令であれば、指令されたスキップ先のシーケンス番号をポインタに設定し、次に実行するブロックを指定する（ステップｄ７）。また、スキップ指令でなければ、ポインタを「１」だけインクリメントする（ステップｄ８）。このステップｄ６〜ｄ８がポインタの更新処理である。なお、第１の実施形態における図２に示すステップａ９及び図３のステップｂ８、さらに、この第２の実施形態における図６のステップｃ１０のポインタの更新処理は、このステップｄ６〜ｄ８の更新処理と同じである。
【００４９】
こうして、ポインタが更新され、ステップｄ３に戻り、該ポインタで示されるブロックが読み出され解析され、前述したステップｄ３〜ｄ８の処理が実行され、機械は動作させず空運転が順次実行され、ポインタの値が、プログラム情報として記憶されたポインタの値と一致し中断ブロックに達すると、ステップｄ５からステップｄ９に移行し、補間情報メモリ部に記憶した補間情報の記載の座標位置、残移動量、加減速状態の内部状態を数値制御装置に復元し、マクロ変数「＃１００００」を「０」に設定し、空運転モードから、加工を行う通常運転モードに切り換え（ステップｄ９）、加工を再開させ（ステップｄ１０）、図６のステップｃ６に戻り、以下、加工プログラムを実行し、加工を行う。
【００５０】
加工が中断されたとき、プログラム情報メモリ部には、その加工を中断したブロックを示すポインタの値、または、中断が、加工再開時の空運転モードでスキップするブロックであれば、そのブロックより前にプログラムされているスキップを指令するブロックを示すポインタの値が記憶されている。そして、補間情報メモリ部には、加工中断したときの補間情報の記載の座標位置、残移動量、加減速状態の補間情報が記憶されているから、加工再開時の空運転モードで機械を動作させない処理中に、ポインタがプログラム情報メモリ部に記憶するポインタの値となったときは、数値制御装置の内部状態を補間情報メモリ部に記憶する補間情報の座標位置、残移動量、加減速状態にすれば、加工を中断したときの内部状態になり、この状態で加工を再開すればよいことになる。
【００５１】
なお、通常運転モードにおいて、加工再開時の空運転モード中にスキップするブロックの実行中に加工が中断した場合は、プログラム情報メモリ部には、スキップを指令するブロックを示すポインタの値が記憶されているが、加工再開時にスキップするブロックは、前述したように、加工条件の設定や計測を行うサブプログラム、マクロプログラム、実際の加工に直接関係しない指令のプログラム等、被加工物を工具が加工する状態以外の動作、指令のプログラム部に対して設定されているものであるから、加工位置等を示す内部状態としては、スキップを指令するブロックでの内部状態と、処理は中断したときの内部状態と同じであるから、この内部状態の状態に戻せば、加工中断点の状態に戻されることになる。
【００５２】
例えば、図４のプログラム例において、「Ｇ３２Ｓ Ｐ Ｑ ；」のブロックで中断されたとすると、この第２の実施形態では、加工再開時の空運転モードでスキップを行う直前の「ＩＦ［＃１００００ＥＱ１］ＧＯＴＯ９９９」のブロックのポインタの値がプログラム情報として記憶されており、加工再開時の空運転モードは、この「ＩＦ［＃１００００ＥＱ１］ＧＯＴＯ９９９」のブロックを示すポインタの値になったとき、加工中断点と判別するようにしている。これは、スキップするプログラム部の区間中は、スキップする直前の数値制御装置の内部状態が変わらないことによるものである。
【００５３】
なお、上述した第２の実施形態では、加工再開処理において、実行ブロック数は、中断ブロックかの判定に利用していない。そのため、この第２の実施形態では、図６のステップｃ５でプログラム情報として実行ブロック数を記憶する必要がない。
【００５４】
次に、ポインタの値ではなく、実行ブロック数を用いて加工中断のブロックを判定する第３の実施形態について説明する。  
この第３の実施形態では、通常の加工での処理は図６に示した処理であり、ステップｃ５で、カッコ書きされた、実行ブロック数をカウントアップして記憶する処理を行う点で、第２の実施形態と相違するのみである。
【００５５】
図８は、第３の実施形態において、加工中断後、加工を再開するときの加工再開の空運転モードの処理のアルゴリズムを示すフローチャートである。  
この第３の実施形態での加工中断後の加工を再開するときの空運転モードの処理は、第２の実施形態と比較し、加工を中断したブロックかを判断するステップｅ５の判断処理が異なることと、この加工再開時の空運転モードの処理で空運転で実行するブロック数を計数するステップｅ６の処理が付加された点で相違するものである。
【００５６】
すなわち、ステップｅ１〜ステップｅ４までの処理は第２の実施形態の図７に示す処理のステップｄ１〜ｄ４の処理と同じである。そして、この第３の実施形態では、加工を中断したブロックに達したかをプログラム情報として記憶する実行ブロック数で判別する（ステップｅ５）。そして、実行したブロック数を計数し（ステップｅ６）、ポインタを更新処理し（ステップｅ７）、ステップｅ３に戻る。なお、このポインタの更新処理の詳細は、図７のステップｄ６〜ｄ８の処理である。中断ブロックが判別されると、ステップｅ３〜ステップｅ７のプログラムを機械を動かさずに、各ブロックの指令を解析し内部状態を更新する空運転モードの運転を停止し、第２の実施形態のステップｄ９、ｄ１０の処理と同じ、補間情報メモリ部に記憶した補間情報の記載の座標位置、残移動量、加減速状態の内部状態を数値制御装置に復元し、マクロ変数「＃１００００」を「０」に設定し、空運転モードから、加工を行う通常運転モードに切り換え（ステップｅ８）、加工を再開させ（ステップｅ９）、図６のステップｃ６に戻り、以下、加工プログラムを実行し、加工を行う。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態の工作機械を制御する数値制御装置の概要図である。
【図２】本発明の第１の実施形態における数値制御装置のプロセッサが実行する加工プログラム実行処理のアルゴリズムのフローチャートである。
【図３】同第１の実施形態における加工中断時の数値制御装置の内部状態を復元する処理のアルゴリズムを示すフローチャートである。
【図４】本発明の第２、第３の実施形態で用いる加工プログラムの例の説明図である。
【図５】同第２、第３の実施形態で使用されるマクロ変数の設定例の説明図である。
【図６】本発明の第２の実施形態の加工プログラム実行処理のアルゴリズムのフローチャートである。
【図７】本発明の第２の実施形態において、加工中断後、加工を再開するときの空運転モードでの処理のアルゴリズムを示すフローチャートである。
【図８】本発明の第３の実施形態において、加工中断後、加工を再開するときの空運転モードでの処理のアルゴリズムを示すフローチャートである。
【符号の説明】
【００５８】
１０  数値制御装置
【図１】
2008134983.tif 000003
【図２】
2008134983.tif 000004
【図３】
2008134983.tif 000005
【図４】
2008134983.tif 000006
【図５】
2008134983.tif 000007
【図６】
2008134983.tif 000008
【図７】
2008134983.tif 000009
【図８】
2008134983.tif 000010