(57)【特許請求の範囲】
【請求項１】
プログラムの各ブロックの指令を順次読み出し該指令を解析して、該解析の結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果に基づいて先読みしたブロックの指令を実行して機械を制御する数値制御装置であって、プログラムから先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる機能を備えた数値制御装置において、
前記先読みを停止させるコードで指令される先読みの再開条件を満足したか否かを判定する再開条件判定部と、
前記再開条件判定部で前記再開条件を満足したと判定された場合、前記先読み処理を再開させる先読み先行再開部と、
を備え、
前記再開条件は、前記機械の状態に係る条件である、
ことを特長とする数値制御装置。
【請求項２】
前記再開条件は、前記機械が備える軸の残移動量、前記機械が備える軸の座標値、前記機械が備える軸を駆動するサーボモータの偏差量、前記機械が備える軸を駆動するトルク、前記機械の周辺装置に係る信号入力の少なくともいずれかを含む、
ことを特徴とする請求項１に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置に関し、特に条件指定による加工プログラム先読み開始機能を備えた数値制御装置に関する。
【背景技術】
【０００２】
数値制御装置の機種によっては、プログラムを実行する時点よりも前の段階で予めプログラム内のブロックを数値制御装置のメモリ上に読み出して解析を始める、いわゆる先読み機能を備えているものがある。このような先読み機能は、加工を行う際にプログラムの解析の遅れが加工に与える影響を最小限に抑えることができるという利点がある一方で、直前のブロックによる加工動作が完了するまでは解析してはいけないブロックが有る場合にはさまざまな問題を起こす場合がある。
【０００３】
例えば、図７に示すプログラムＯ０００１は、工具がワークから所定の距離以内にある場合に１となるカスタムマクロ変数＃１００を用いたマクロ文「ＩＦ［＃１００ＥＱ１］ＧＯＴＯ  １００」を含んでおり、当該マクロ文はＺ軸の移動完了地点における工具とワークとの距離を確認することを意図してプログラム内に記述されている。このようなプログラムＯ０００１を運転する際に、移動指令「Ｇ００  Ｚ１００．０」によってＺ軸が０．０から１００．０へ移動完了する前にマクロ文「ＩＦ［＃１００ＥＱ１］ＧＯＴＯ  １００」が先読みされた場合、マクロ文は軸移動指令とは異なり先読み・解析処理と共に実行されてしまうため、正しい位置で工具とワークとの距離を確認することができないままＩＦ文の判定とＧＯＴＯ文のジャンプ（分岐）が行われてしまうという問題がある。このような問題を回避するために、従来は先読み抑制指令（図７のプログラムでは「Ｍ１００」）を用いて先読みを抑制し、移動指令「Ｇ００  Ｚ１００．０」によるＺ軸の移動が完了してからマクロ文が読み込まれるようにしていた。また、特許文献１などの従来技術では、先読み抑制が行われた後の先読みの再開をブロック単位で指定できるようにする技術が開示されている。
【０００４】
一方で、通常の先読み抑制指令の他に高速な先読み抑制指令も提案されている（特許文献２など）。高速な先読み抑制指令は、プログラムを先読みして解析する処理部において、先読み停止コードの判別、先読み・解析処理の中断、直前のブロックの実行終了による先読み・解析処理の再開を行うことで先読み抑制指令を高速に実行することを可能としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０４０５４２号公報
【特許文献２】特許第４２７１２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示される技術ではブロック単位で先読みの再開を指定しており、具体的な軸位置や主軸の回転速度などの値により先読みを再開する制御を行うことが困難であるという課題があった。例えば、図７に示したプログラムＯ０００１において、先読み抑制指令後に、Ｚ軸が任意の位置に来た時、例えばブロック終点の１ｍｍ手前に達した時にマクロ文の先読みを実行したくとも、それを実現する手段がない。このような課題は、特許文献２に開示されるような高速な先読み抑制指令においても同様に発生する。
【０００７】
そこで本発明の目的は、プログラムの先読み抑制後の先読みの再開条件を細やかに指定することが可能な数値制御装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明では、先読み抑制指令と共に指定された先読みの再開条件に従い、次のブロック以降の先読みを再開する機能を数値制御装置に設けることで上記課題を解決する。先読みを再開する条件としては、従来技術のようにブロック数で指定するのではなく、軸の残移動量や座標値、サーボモータの偏差量、トルク、周辺装置に係る信号入力などを指定することができるようにし、先読みを停止するコードによりこれら再開条件を指令できるようにする。
【０００９】
そして本発明の請求項１に係る発明は、プログラムの各ブロックの指令を順次読み出し該指令を解析して、該解析の結果をバッファに保存する先読み処理を実行し、該バッファに保存された解析結果に基づいて先読みしたブロックの指令を実行して機械を制御する数値制御装置であって、プログラムから先読みを停止させるコードが挿入されたブロックが読み出されると前記先読み処理を停止させる機能を備えた数値制御装置において、前記先読みを停止させるコードで指令される先読みの再開条件を満足したか否かを判定する再開条件判定部と、前記再開条件判定部で前記再開条件を満足したと判定された場合、前記先読み処理を再開させる先読み先行再開部と、を備え、前記再開条件は、前記機械の状態に係る条件である、ことを特長とする数値制御装置である。
【００１０】
そして本発明の請求項２に係る発明は、前記再開条件は、前記機械が備える軸の残移動量、前記機械が備える軸の座標値、前記機械が備える軸を駆動するサーボモータの偏差量、前記機械が備える軸を駆動するトルク、前記機械の周辺装置に係る信号入力の少なくともいずれかを含む、ことを特徴とする請求項１に記載の数値制御装置である。
【発明の効果】
【００１１】
本発明によれば、先読み抑制指令の次ブロック以降のマクロ文の実行タイミングをより高度に制御可能となる。また先読み再開のタイミングを早めることで、サイクルタイムを短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による数値制御装置の要部を示すハードウェア構成図である。
【図２】本発明の一実施形態による数値制御装置の概略的な機能ブロック図である。
【図３】先読みを停止させるコードで指令可能な先読みの再開条件の例を示す図である。
【図４】図２の数値制御装置で用いられる加工プログラムの例を示す図である。
【図５】本発明の一実施形態による数値制御装置の概略的な機能ブロック図である。
【図６】図５の数値制御装置で用いられる加工プログラムの例を示す図である。
【図７】従来技術による先読み抑制指令が記述された加工プログラムの例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図面と共に説明する。
図１は、本発明の一実施形態による数値制御装置と該数値制御装置によって駆動制御される工作機械の要部を示すハードウェア構成図である。数値制御装置１が備えるＣＰＵ１１は、数値制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って数値制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ及びＣＲＴ／ＭＤＩユニット７０を介してオペレータが入力した各種データ等が格納される。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、数値制御装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して読み込まれた後述する加工プログラムやＣＲＴ／ＭＤＩユニット７０を介して入力された加工プログラムが記憶されている。不揮発性メモリ１４には更に、加工プログラムを運転するために用いられる加工プログラム運転処理用プログラム等が記憶されるが、これらプログラムは実行時にはＲＡＭ１３に展開される。また、ＲＯＭ１２には、加工プログラムの作成及び編集のために必要とされる編集モードの処理などを実行するための各種のシステム・プログラムがあらかじめ書き込まれている。本発明を実行する加工プログラム等の各種加工プログラムはインタフェース１５やＣＲＴ／ＭＤＩユニット７０を介して入力し、不揮発性メモリ１４に格納することができる。
【００１５】
インタフェース１５は、数値制御装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置１内で編集した加工プログラムは、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、数値制御装置１に内蔵されたシーケンス・プログラムで工作機械の周辺装置（例えば、工具交換用のロボットハンドといったアクチュエータ）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１６】
ＣＲＴ／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８はＣＲＴ／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は手動パルス発生器等を備えた操作盤７１に接続されている。
【００１７】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には工作機械に備えられた軸の数だけ用意される。また、図１は、サーボモータ５０からの位置・速度のフィードバックについては省略している。
【００１８】
スピンドル制御回路６０は、工作機械への主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。
スピンドルモータ６２には歯車あるいはベルト等でポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００１９】
図２は、本発明の拡張された先読み機能を図１に示した数値制御装置１に対してシステム・プログラムとして実装した場合の一実施形態による概略的な機能ブロック図を示している。図２に示されている各機能手段は、図１に示したＣＰＵ１１がシステム・プログラムを実行して各機能を提供することにより実現される。本実施形態の数値制御装置１は、先読み・解析部１００、プログラム実行部１１０、先読み抑制部１２０を備える。また、先読み・解析部１００は、コード解析部１０１、再開条件解析部１０２、実行データ作成部１０３を、プログラム実行部１１０は、先読み抑制確認部１１１、再開条件判定部１１２、先読み先行再開部１１３を備える。
【００２０】
先読み・解析部１００は、不揮発性メモリ１４（図示せず）に記憶される加工プログラム２００から制御対象となる工作機械の動作を指令するブロックを逐次先読みして解析し、解析結果に基づいて当該ブロックの内容に応じた実行データを作成して実行データ記憶部２１０へと記憶する。プログラム実行部１１０は、実行データ記憶部２１０から実行データを読み出して、該実行データに基づいて機械が備えるサーボモータ５０、スピンドルモータ６２、周辺装置などに対して実際の動作指令を行うことで、加工プログラム２００に記述された通りに機械が動作するように制御する。また、プログラム実行部１１０は、実行が完了した実行データを実行データ記憶部２１０から削除する。
【００２１】
コード解析部１０１は、加工プログラム２００から先読みされたブロックに含まれている各コードを解析し、それぞれのコードの種類に応じた処理をするように実行データ作成部１０３へと指令する。実行データ作成部１０３は、コード解析部１０１からの指令を受けると、コード解析部１０１が解析したコードに応じた実行データを作成する。
一方で、コード解析部１０１は、解析したコードに先読みを停止させるコードが含まれている場合には、当該コードを含むブロックを処理するように再開条件解析部１０２へと指令する。
【００２２】
再開条件解析部１０２は、コード解析部１０１から指令を受けると、先読みを停止させるコードを解析し、解析結果に基づいて先読み抑制部１２０に対して先読みの抑制を開始するように指令すると共に、当該コードにより指令される再開条件データを作成して再開条件データ記憶部２２０へ登録する。先読みを停止させるコードに指令可能な先読みの再開条件は、例えば図３に示すように、軸の残移動量や座標値、サーボモータの偏差量、トルク、信号入力の値を指定する形式で記述することができる。なお、図３に示したものは一例であり、再開条件としてどのような条件を指令できるようにしても良いし、また、その記述方法についても、複数の再開条件を登録できるようにしたり、直接論理式を記述できるようにしたりする等、設計的な範囲で適宜定めても良い。
【００２３】
一方で、先読み抑制確認部１１１は、現在の処理周期において先読みが停止されているか否かを先読み抑制部１２０、再開条件データ記憶部２２０などに基づいて確認し、先読みが停止されている場合には再開条件判定部１１２に対して再開条件のチェックをするように指令する。
【００２４】
再開条件判定部１１２は、先読み抑制確認部１１１からの指令を受けると、再開条件データ記憶部２２０に登録されている再開条件データを参照すると共に、該再開条件データで判定の対象としている値（軸の残移動量、座標値など）を数値制御装置１の各部から取得し、該取得した値が再開条件データで設定される再開条件を満足するか否かを判定する。そして、取得した値が再開条件データで設定される再開条件を満足する場合に、先読み先行再開部１１３に対して先読みの再開処理を実行するように指令する。なお、再開条件データ記憶部２２０に複数の再開条件が登録されている場合には、再開条件判定部１１２は、それぞれの再開条件データで設定される再開条件について判定を行い、すべての再開条件を満足する場合に先読み先行再開部１１３に対して先読みの再開処理を実行するように指令するようにしてもよい。
【００２５】
先読み先行再開部１１３は、再開条件判定部１１２からの指令を受けると、先読み抑制部１２０に対して先読みの抑制を停止（先読みを再開）するように指令すると共に、再開条件データ記憶部２２０に記憶された再開条件データを削除する。
【００２６】
以下では、図２で説明した数値制御装置１で研削盤の制御を行う場合の動作例を示す。研削盤では、砥石のドレッシングを行う際に次のような順番で動作する。
●動作１：Ｚ軸を−方向または＋方向に移動させる。
●動作２：Ｚ軸の終点において、タッチセンサをチェックする。
●動作３−１：タッチセンサが砥石とドレッサーの接触を検知していない場合はＸ軸を移動させて、砥石とドレッサーを近づけ、動作１に戻る。
●動作３−２：タッチセンサが砥石とドレッサーの接触を検知した場合はその場所で一定時間停止してドレッシングを行い、動作１に戻る。
【００２７】
ここで、Ｚ軸の移動中は誤検出の可能性があるためタッチセンサによる位置到達チェックを行うことができないが、Ｚ軸がインポジション幅程度まで終点に近づけば正しく検出できるものとする。本動作例の場合、手順２はマクロ文によってタッチセンサをチェックしているため、Ｚ軸の移動とマクロ文の間には先読み抑制指令（Ｇ５３Ｐ１、Ｇ０４．１など）が必要となる。しかし、先読み抑制指令を指令すると、Ｚ軸が停止するまで、マクロ文は実行できない。このとき、Ｚ軸が終点にある程度近づいたところでタッチセンサをチェックできれば、タッチセンサのチェック以降のブロック（Ｘ軸の移動指令）を先読みでき、サイクルタイムを短縮することができる。
【００２８】
図４は、本動作例におけるプログラム例を示す図である。図２に示した数値制御装置１により図４に示したプログラムＯ００１０を用いて研削盤の制御を行った場合、先読みの停止及び先読みの再開に係る概略的な処理手順は以下のようになる。
●手順Ａ１：先読み・解析部１００は、Ｍ１００Ｚ５．０のブロックをプログラムから先読みする。
●手順Ａ２：コード解析部１０１は、Ｍ１００Ｚ５．０のブロックを解析し、当該ブロックに先読みを停止するコード（Ｍ１００）が含まれていると判断する。
●手順Ａ３：再開条件解析部１０２は、Ｍ１００Ｚ５．０のブロックから再開の条件Ｚ５．０（残移動量５．０ｍｍで再開）を抽出し、抽出した条件に基づいて再開条件データを作成して再開条件データ記憶部２２０に登録する。
●手順Ａ４：先読み抑制部１２０が、以降の先読みを抑制する。
【００２９】
●手順Ａ５：プログラム実行部１１０は、実行データ記憶部２１０に記憶されたＧ００Ｚ１００．０ブロックの実行データに基づいて実行処理を開始する。
●手順Ａ６：先読み抑制確認部１１１は、先読み抑制部１２０や再開条件データ記憶部２２０に基づいて先読みが抑制されていることを確認する。
●手順Ａ７：先読みが抑制されている場合、再開条件判定部１１２は、Ｚ軸が再開条件を満たしているかどうか判断する。Ｚ軸が再開条件を満たした場合（Ｚ軸の残移動量が５．０ｍｍ以下となった場合）、再開条件判定部１１２は、先読み先行再開部１１３に指令して先読みの再開処理を実行させる。
●手順Ａ８：先読み先行再開部１１３は、先読み抑制部１２０に先読みの抑制を停止するように指令する。
●手順Ａ９：先読み抑制部１２０は、先読みの抑制を停止する。これにより、先読み・解析部１００はプログラムの先読みを再開する。
【００３０】
上記各手順が実行されることで、Ｚ軸の移動が完了する前にタッチセンサのチェックが可能となる。このように、上記した構成を備えた数値制御装置を用いることで、「Ｚ軸の終点近傍でタッチセンサをチェック（マクロ文を実行）する」という動作が実現可能となり、従来技術を用いた場合と比べてサイクルタイムを短縮することができる。
【００３１】
図５は、本発明の拡張された先読み機能を図１に示した数値制御装置１に対してシステム・プログラムとして実装した場合の他の実施形態による概略的な機能ブロック図を示している。図５に示した数値制御装置１は、高速な先読み抑制指令（例えば、Ｇ０４．１）に対応した数値制御装置であり、図２で説明した数値制御装置が備える各機能手段に加えて、先読み・解析一時中断部１０４、先読み・解析再開判定部１０５、先読み・解析再開部１０６を備えている。
【００３２】
本実施形態の先読み・解析部１００、コード解析部１０１、実行データ作成部１０３の全体的な動作は図２で説明した数値制御装置と同様である。
再開条件解析部１０２は、コード解析部１０１から指令を受けると、先読みを停止させるコードを解析し、解析結果に基づいて先読み・解析一時中断部１０４に対して先読みの抑制を開始するように指令すると共に、当該コードにより指令される再開条件データを作成して再開条件データ記憶部２２０へ登録する。
【００３３】
先読み・解析一時中断部１０４は、再開条件解析部１０２から指令を受けると加工プログラム２００からの先読みを中断する。
先読み・解析再開判定部１０５は、先読み先行再開部１１３からの指令に基づいて先読みを再開して良いか否かを判定する。
先読み・解析再開部１０６は、先読み・解析再開判定部１０５の判定結果に基づいて、加工プログラム２００からの先読みを再開する。
【００３４】
一方で、本実施形態のプログラム実行部１１０、先読み抑制確認部１１１、再開条件判定部１１２の全体的な動作は図２で説明した数値制御装置と同様である。
本実施形態の先読み先行再開部１１３は、再開条件判定部１１２からの指令を受けると、先読み・解析再開判定部１０５に対して先読みの再開が可能であることを通知すると共に、再開条件データ記憶部２２０に記憶された再開条件データを削除する。
【００３５】
以下では、図５で説明した数値制御装置１で研削盤の制御を行う場合の動作例を示す。
図６は、本動作例におけるプログラム例を示す図である。図５に示した数値制御装置１により図６に示したプログラムＯ００２０を用いて研削盤の制御を行った場合、先読みの停止及び先読みの再開に係る概略的な処理手順は以下のようになる。
●手順Ｂ１：先読み・解析部１００は、Ｇ０４．１Ｚ５．０のブロックをプログラムから先読みする。
●手順Ｂ２：コード解析部１０１は、Ｇ０４．１Ｚ５．０のブロックを解析し、当該ブロックに先読みを停止するコード（Ｇ０４．１）が含まれていると判断する。
●手順Ｂ３：再開条件解析部１０２は、Ｇ０４．１Ｚ５．０のブロックから再開の条件Ｚ５．０（残移動量５．０ｍｍで再開）を抽出し、抽出した条件に基づいて再開条件データを作成して再開条件データ記憶部２２０に登録する。
●手順Ｂ４：先読み・解析一時中断部１０４が、以降の先読みを一時中断する。
【００３６】
●手順Ｂ５：プログラム実行部１１０は、実行データ記憶部２１０に記憶されたＧ００Ｚ１００．０ブロックの実行データに基づいて実行処理を開始する。
●手順Ｂ６：先読み抑制確認部１１１は、再開条件データ記憶部２２０などに基づいて先読みが抑制されていることを確認する。
●手順Ｂ７：先読みが抑制されている場合、再開条件判定部１１２は、Ｚ軸が再開条件を満たしているかどうか判断する。Ｚ軸が再開条件を満たした場合（Ｚ軸の残移動量が５．０ｍｍ以下となった場合）、再開条件判定部１１２は、先読み先行再開部１１３に指令して先読みの再開処理を実行させる。
●手順Ｂ８：先読み先行再開部１１３は、先読み・解析再開判定部１０５に先読みの再開が可能であることを通知する。
●手順Ｂ９：先読み・解析再開判定部１０５は、先読みの再開が可能であると判定し、先読み・解析再開部１０６に対して先読みの再開をするように指令する。
●手順Ｂ１０：先読み・解析再開部１０６は、先読みの再開処理を実行する。これにより、先読み・解析部１００はプログラムの先読みを再開する。
【００３７】
上記各手順が実行されることで、Ｚ軸の移動が完了する前にタッチセンサのチェックが可能となる。このように、上記した構成を備えた数値制御装置を用いることで、高速な先読み抑制指令（例えば、Ｇ０４．１）を実行する場合においても「Ｚ軸の終点近傍でタッチセンサをチェック（マクロ文を実行）する」という動作が実現可能となり、従来技術を用いた場合と比べてサイクルタイムを短縮することができる。
【００３８】
以上、ここまで本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００３９】
１  数値制御装置
２  工作機械
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５，１８，１９  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  ＣＲＴ／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  先読み・解析部
１０１  コード解析部
１０２  再開条件解析部
１０３  実行データ作成部
１０４  先読み・解析一時中断部
１０５  先読み・解析再開判定部
１０６  先読み・解析再開部
１１０  プログラム実行部
１１１  先読み抑制確認部
１１２  再開条件判定部
１１３  先読み先行再開部
１２０  先読み抑制部
２００  加工プログラム
２１０  実行データ記憶部
２２０  再開条件データ記憶部
【図１】
0006444938.tif 000002
【図２】
0006444938.tif 000003
【図３】
0006444938.tif 000004
【図４】
0006444938.tif 000005
【図５】
0006444938.tif 000006
【図６】
0006444938.tif 000007
【図７】
0006444938.tif 000008