(57)【要約】【課題】  加工プログラムのチェックを効率よく行う。【解決手段】  加工プログラムを実行し各軸を駆動して加工を行う処理のバックグランドで、加工プログラムのチェック処理を高速で行う。設定されたコーナＲ、面取りブロック挿入条件に合致したときのみ、コーナＲ、面取りブロックをブロックの継ぎ目に挿入する(203,204)。先のブロックと挿入ブロックを最高送り速度、最大加速度で実行し、フォーマットチェック、ストロークリミットチェック、干渉チェックを行う(205)。異常ならば、アラームフラグを「１」とし、プログラム修正後に「０」とする(207〜210)。所望プログラム位置まで戻りこのチェック作業を行う(211〜213,201)。フォアグランドでの実際での加工処理では、アラームフラグを「１」であればシングルブロック停止し、再開指令で再実行する。実加工とプログラムチェックが並行して同時に行われるから効率がよい。【選択図】          図３
2005108205.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに従って制御対象物を駆動制御する数値制御装置において、
前記プログラムを実行し、前記制御対象物への駆動指令を出力するフォアグランドプログラム実行手段と、
前記制御対象物を駆動制御処理に並行して制御対象物への駆動指令を出力することなく、前記プログラムを実行すると共に、プログラム異常をチェックするプログラムチェック手段を備えたバックグランドプログラム実行手段と、
前記バックグランドプログラム実行手段にてプログラム異常が検出されたとき、その異常が検出されたブロックに対応して異常を記憶する手段と、
前記フォアグランドプログラム実行手段によるプログラム実行時にプログラム異常が記憶された前のブロック終点で停止させる手段と、
を備えたことを特徴とする数値制御装置。
【請求項２】
前記バックグランドプログラム実行手段は、最大送り速度、最大加減時定数にてプログラムを実行することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記プログラムチェック手段は、加工プログラムのフォーマットチェック、進入禁止領域への進入チェック、干渉チェックのプログラム異常のチェックを行うことを特徴とする請求項１又は請求項２に記載の数値制御装置。
【請求項４】
前記バックグランドプログラム実行手段は、ブロックとブロックの間にコーナＲ及び面取りブロックを挿入して実行し、前記プログラムチェック手段は該実行に基づいてプログラムのチェックを行うことを特徴とする請求項１乃至３の内いずれか１項に記載の数値制御装置。
【請求項５】
フォアグランド処理で実行される前記制御対象物を駆動制御するプログラムの実行時には、挿入されたコーナＲ及び面取りブロックをも実行することを特徴とする請求項４に記載の数値制御装置。
【請求項６】
前記プログラムチェック手段でプログラム異常が検出されたとき、前記プログラムの編集を可能とする編集手段を備え、該編集手段でプログラムの修正が完了としたとき記憶手段に記憶したプログラム異常を消去する手段を備えることを特徴とする請求項１乃至５の内いずれか１項に記載の数値制御装置。
【請求項７】
前記プログラムの任意のブロックを指定する指定手段を有し、前記編集手段でのプログラム修正後、前記指定手段で指定されたブロックから前記バックグランドプログラム実行手段でプログラムを実行し、プログラムチェックを再開することを特徴とする請求項６に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に、プログラムチェックを行う数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置で制御される工作機械によって実際に加工を行う場合、加工プログラムのフォーマットチェック、ストロークリミットチェック（進入禁止領域への進入チェック）、工具や機械構造物などとの干渉チェックを行い加工プログラムが正しく実行できるか確認し、正しく実行できることが確認された後、加工プログラムを実行し、実加工を行っている。  
数値制御装置におけるこのプログラムチェックについては、上述したプログラムチェック以外に、本願発明に関連するような発明が記載された公知文献は発見できなかった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来から行われている加工プログラムに対してフォーマットチェック、ストロークリミットチェック、干渉チェックのプログラムチェックを行った後に、実際の加工を行う方法では、加工プログラムの確認が終了するまで実際の加工を始めることができず、作業効率が悪い。  
そこで、本発明の目的は、プログラムのチェックと実際の加工を効率よく実行できる数値制御装置を提供することにある。
【課題を解決するための手段】
【０００４】
本願請求項１に係る発明は、プログラムに従って制御対象物を駆動制御する数値制御装置において、前記プログラムを実行し、前記制御対象物への駆動指令を出力するフォアグランドプログラム実行手段と、前記制御対象物を駆動制御処理に並行して制御対象物への駆動指令を出力することなく、前記プログラムを実行すると共に、プログラム異常をチェックするプログラムチェック手段を備えたバックグランドプログラム実行手段と、前記バックグランドプログラム実行手段にてプログラム異常が検出されたとき、その異常が検出されたブロックに対応して異常を記憶する手段と、前記フォアグランドプログラム実行手段によるプログラム実行時にプログラム異常が記憶された前のブロック終点で停止させる手段とを設け、プログラムチェックをバックグランド処理で高速に行うようにした。  
請求項２に係る発明は、さらに、前記バックグランドプログラム実行手段によるプログラム実行を、最大送り速度、最大加減時定数にて行うものとした。又、請求項３に係る発明は、前記プログラムチェック手段により実施されるチェックを、加工プログラムのフォーマットチェック、進入禁止領域への進入チェック、干渉チェックのプログラム異常のチェックとした。
【０００５】
又、請求項４に係る発明は、前記バックグランドプログラム実行手段により、ブロックとブロックの間にコーナＲ及び面取りブロックを挿入して実行し、前記プログラムチェック手段は該実行に基づいてプログラムのチェックを行うものとした。請求項５に係る発明は、フォアグランド処理で実行される前記制御対象物を駆動制御するプログラムの実行時に挿入されたコーナＲ及び面取りブロックをも実行するものとした。請求項６に係る発明は、前記プログラムチェック手段でプログラム異常が検出されたとき、前記プログラムの編集を可能とする編集手段を備え、該編集手段でプログラムの修正が完了としたとき記憶手段に記憶したプログラム異常を消去する手段を備えるものとした。更に、請求項７に係る発明は、前記プログラムの任意のブロックを指定する指定手段を設け、前記編集手段でのプログラム修正後、前記指定手段で指定されたブロックから前記バックグランドプログラム実行手段でプログラムを実行し、プログラムチェックを再開するようにした。
【発明の効果】
【０００６】
加工プログラムのチェック、確認と実際の加工を同時並行して行うことができるから、従来加工プログラムのチェック、確認のみに要していた時間が短縮され、作業効率を向上させることができる。また、プログラム異常でアラームが発生した場合でも、プログラム編集手段によってプログラムを修正することによって、実際の加工に影響なく、若しくは、実際の加工が停止しても、プログラム修正後、続行させることができるので、作業を容易に効率的に進めることができる。
【発明を実施するための最良の形態】
【０００７】
図１は本発明の一実施形態の数値制御装置１０の要部ブロック図である。ＣＰＵ１１は数値制御装置１０を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステムプログラムを、バス１９を介して読み出し、該システムプログラムに従って数値制御装置全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴや液晶等で構成される表示器とキーボート等で構成される手動入力手段とからなる表示器／手動入力手段ユニット２０を介してオペレータが入力した各種データが格納される。ＣＭＯＳメモリ１４は図示しないバッテリでバックアップされ、数値制御装置１０の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。ＣＭＯＳメモリ１４中には、インターフェイス１５を介して読み込まれた加工プログラムや表示器／手動入力手段ユニット２０を介して入力された加工プログラム等が記憶される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集機能や後述するフォアグランド処理、バックグランド処理を実施するための各種システムプログラムが予め格納されている。
【０００８】
インターフェイス１５は、数値制御装置１０と外部機器との接続を可能とするものである。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１０に内蔵されたシーケンスプログラムで制御対象物の工作機械の補助装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、数値制御装置で制御される制御対象物である工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。    各軸の軸制御回路３０〜３２はＣＰＵ１１からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ４０〜４２に出力する。サーボアンプ４０〜４２はこの指令を受けて、機械（制御対象物）の各軸のサーボモータ５０〜５２を駆動する。各軸のサーボモータ５０〜５２は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０〜３２にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１では、位置・速度のフィードバックについては省略している。
【０００９】
また、スピンドル制御回路６０は主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はスピンドル速度信号を受けて、主軸モータ６２を指令された回転速度で回転させる。ポジションコーダ６３は、主軸モータ６２の回転に同期して帰還パルスをスピンドル制御回路６０にフィードバックし、速度制御を行う。
【００１０】
上述した数値制御装置の構成は、従来の数値制御装置の構成と同一であり、相違する点は、後述するように、フォアグランド処理で通常の加工プログラムの実行処理を行い各軸制御回路３０〜３２に移動指令を分配し各軸サーボモータ５０〜５２を駆動すると共にバックグランド処理で、各軸への移動指令の出力は行わず数値処理のみ行う加工プログラムの実行処理を高速で行うようにした点である。
【００１１】
図２は、フォアグランドで実行する処理のフローチャートであり、図３は、フォアグランド処理と並行して同時に実行されるバックグランド処理のフローチャートである。図２に示すフォアグランド処理は通常の加工プログラムの処理と同様である。バックグランドの処理は、この数値制御装置１０で制御される機械の最高送り速度、最大加速度で加工プログラムを実行し、かつ、加工プログラムを実行して得られる各軸への移動指令は出力されず、数値処理のみが行われ、プログラムチェックがなされるものである。
【００１２】
数値制御装置１０に加工プログラム実行開始指令が入力されると、ＣＰＵ１１はフォアグランドで図２に示す処理を開始し、バックグランドで図３に示す処理を開始する。まず、バックグランド処理について説明する。なお、各軸のストロークリミットは工作機械に応じて予め設定されており、干渉チェックについては、例えば工具や機械構造物等の干渉領域をパラメータで設定しておく。更に、後述するようにコーナＲ、面取りブロックの挿入条件もパラメータ設定しておく。
【００１３】
このバックグランド処理は高速で処理されるもので、加工プログラムの最初のブロックを読み出しレジスタＲｅ１に格納し（ステップ２００）、該レジスタＲｅ１の記憶内容をレジスタＲｅ２に格納し（ステップ２０１）、加工プログラムから次のブロックを読み出しレジスタＲｅ１に格納する（ステップ２０２）。次に、このレジスタＲｅ１，Ｒｅ２に格納された指令内容から、予めパラメータ設定されているコーナＲ、面取りブロックの挿入条件に合致しているか否か判断する（ステップ２０３）。例えば、従来から行われているように、直線移動指令と直線移動指令のブロックの間にコーナＲ、面取りブロックを挿入するような場合など、コーナＲ、面取りブロックを挿入する条件をパラメータで設定しておく。
【００１４】
そして、このパラメータで設定された条件に合致するか否か判断し、合致している場合には、このレジスタＲｅ１とＲｅ２に格納されたブロック間にコーナＲ、面取りブロックを挿入し（ステップ２０４）、レジスタＲｅ２に格納されたブロックの指令を実行すると共に、挿入したコーナＲ、面取りブロックをも実行し、加工プログラムのフォーマットチェック、ストロークリミットチェック、干渉チェックを行う（ステップ２０５）。また、ステップ２０３でパラメータで設定された条件に合致するか否か判断された場合には、コーナＲ、面取りブロックを挿入することなくステップ２０５に移行し、レジスタＲｅ２に格納されたブロックの指令を実行しプログラムチェックを行う。このステップ２０５におけるプログラムの実行においては、指令された送り速度を無視して最高送り速度でかつ最大加速度で加工プログラムを実行する。この実行によって加工プログラムのフォーマットが異なりプログラム異常ではないか、プログラム実行により求められた各軸移動位置がそのストロークリミットを越えていないかのアラーム発生を判別し（ステップ２０６）、フォーマットの異常はなく、各軸移動位置がストロークリミットも越えていなければ、アラーム発生なしとして、ステップ２１４に移行する。又、アラームが発生している場合には、当該ブロック（レジスタＲｅ２に記憶されたブロック）に対応してメモリにアラームフラグを「１」にセットしプログラム異常を記憶する（ステップ２０７）。そして、オペレータによるプログラム編集を可能にする（ステップ２０８）。オペレータが表示器／手動入力手段ユニット２０を介してプログラム異常を修正し、プログラム修正完了指令が入力されると（ステップ２０９）、記憶していたアラームフラグをリセットし「０」とする（ステップ２１０）。そしてオペレータは、所望する加工プログラムチェック位置まで戻し、プログラムチェックの再スタート指令を入力すると（ステップ２１１，２１２）、ＣＰＵ１１は、この戻されたプログラムチェック位置の最初のブロックをレジスタＲｅ１に格納し（ステップ２１３）、プログラム終了か判断し（ステップ２１４）、終了してなければステップ２０１に戻り、前述したステップ２０１以下の処理を実行する。  
以上のように、バックグランドの処理では加工プログラムが、最高送り速度、最大加速度で、かつ各軸への移動指令への分配は行わず、高速で処理されてプログラムチェックがなされ、プログラム異常があれば、アラームフラグが「１」にセットされ、プログラム修正が完了するとこのアラームフラグが「０」にリセットされる処理が実行される。
【００１５】
一方、フォアグランドでは、図２に示すように、従来と同様な加工プログラムの実行処理を行う。ブロックを読み（ステップ１００）、該ブロックに対してアラームフラグが「１」にセットされていないか判断し（ステップ１０１）、「１」にセットされていなければ、当該ブロックを実行し、各軸制御回路３０〜３２に移動指令を分配し、各軸のサーボモータ５０〜５２を駆動する（ステップ１０２）。そして、プログラム終了か判断し（ステップ１０３）、終了でなければステップ１００に戻る。ステップ１０１でアラームフラグが「１」であることが検出された場合は、ステップ１００で読み出したブロックを実行することなくシングルブロック停止を行う（ステップ１０４）。以下、再開の起動指令が入力されるまで、この停止状態を保持する。  
なお、バックグランド処理で挿入されたコーナＲ、面取りブロックもこのフォアグランドでは、加工プログラムのブロックとして実施される。この場合、ブロック間での減速を少なくすることができ、実加工の時間の短縮を図ることができる。
【００１６】
以上のように、アラームフラグが「１」にセットされていると、そのブロックは実行されず、シングルブロック停止がなされる。そのため、プログラム異常のブロックについては、実際の加工はなされないことになる。そしてオペレータがプログラム修正処理をするとアラームフラグが「０」にリセットとされるので（ステップ２０８〜２１０）、オペレータはプログラム修正して、再開の起動指令を入力すると、フォアグランド処理では、停止していたプログラム位置から、ステップ１００以下の処理が開始される。又バックグランドの処理は高速で実施されるため、アラームが発生し、該アラームによる実際の加工の停止前に、プログラムの修正が完了することが多く、完了していれば、アラームフラグは「０」にリセットされるものであるから、加工停止することなく続行されることになる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の要部ブロック図である。
【図２】同実施形態におけるフォアグランドでの処理のフローチャートである。
【図３】同実施形態におけるバックグランドでの処理のフローチャートである。
【符号の説明】
【００１８】
１０  数値制御装置
５０、５１，５２  サーボモータ
６２  主軸モータ
６３  ポジションコーダ
【図１】
2005108205.tif 000003
【図２】
2005108205.tif 000004
【図３】
2005108205.tif 000005