(57)【要約】【課題】加工運転中に実行している加工プログラムの編集可能とし、該加工運転を中断することなく編集結果を加工プログラムに反映可能な加工プログラム編集装置を提供すること。【解決手段】本発明の加工プログラム編集装置１は、加工プログラムのブロック毎に、該ブロックによる指令に基づく加工時間を予測する加工時間予測部１１０と、該ブロックの実行中に先読みされているブロック数を算出する先読みブロック数算出部１２０と、加工プログラムのブロックにおける編集可能時間を算出する編集可能時間算出部１３０と、加工プログラムを表示してユーザからの編集を受け付け、その編集結果を前記制御に用いられている加工プログラムに書き込むプログラム編集部１４０と、編集中のブロックにおける編集可能時間を表示する編集可能時間表示部１５０と、を備える。【選択図】図２
2019168804.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムのブロックによる指令に基づいて機械を制御する加工プログラム編集装置において、
前記加工プログラムのブロック毎に、該ブロックによる指令に基づく加工時間を予測する加工時間予測部と、
前記加工プログラムのブロック毎に、該ブロックの実行中に先読みされているブロック数を算出する先読みブロック数算出部と、
前記加工プログラムのブロックにおける編集可能時間を算出する編集可能時間算出部と、
前記加工プログラムを表示してユーザからの編集を受け付け、その編集結果を前記制御に用いられている加工プログラムに書き込むプログラム編集部と、
編集中のブロックにおける編集可能時間を表示する編集可能時間表示部と、
を備え、
前記プログラム編集部は、前記加工プログラムに含まれる複数のブロックの内、前記編集可能時間が残っているブロックのみを編集可能とし、編集された箇所のみを局所的に前記制御に用いられている加工プログラムに書き込む、
加工プログラム編集装置。
【請求項２】
前記編集可能時間算出部は、現時点から指定ブロックが実行のために読み出されるまでに掛かる時間に、予め定めた所定の余裕時間だけ短くしたものである、
請求項１に記載の加工プログラム編集装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工プログラム編集装置に関し、特に現在実行中の加工プログラムの編集が可能な加工プログラム編集装置に関する。
【背景技術】
【０００２】
数値制御装置では、加工プログラムに基づいて数値制御処理を実行し、該処理結果に基づいて工作機械を制御し、ワークに指令通りの加工を行う。作業者は加工プログラムに基づくワークを加工する際に、加工後のワークが目的とする加工状態となるように加工プログラムの試し加工を行いながら、主軸回転数や送り速度等の加工条件を調整し、その結果を加工プログラムに反映していた。また、加工プログラムに基づく加工運転中に、加工プログラムに誤りを発見した場合には、該加工運転を中断し、加工プログラムを修正してから、加工プログラムの運転を再開する等の方法を取っていた（特許文献１等）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−３１１６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
加工運転中に該加工運転を中断することなく加工プログラムが編集できるようにし、編集結果を即時運転に反映させるようにすると、上記のような場合に加工運転の中断によるロスタイムが発生しないため、効率的に作業を行うことができるが、一般的な数値制御装置では、加工運転中に加工プログラムを編集することはできない。これは、加工プログラムに対して書き込みや削除等の編集をしている最中に、数値制御装置の制御部が該編集している部分の読み出しを行ってしまうと、加工プログラムを記憶しているメモリが不完全な状態で読み出しが行われることがあるため、チェックサム不正等のアラームが発生するためである。
【０００５】
また、一部の数値制御装置では加工運転中に加工プログラムを編集する機能を備えてはいるが、この機能は、加工運転に用いている加工プログラムを異なるメモリ空間へとコピーし、コピーした加工プログラムを編集できるようにしているものであり、編集した結果を加工運転に反映させるためには、現在行っている加工運転を中断して、編集した加工プログラムを元のメモリ空間へと書き戻し、加工運転を再開する、といった手順を取る必要があり、この様な方法では十分な効率化を実現できないという課題がある。
【０００６】
そこで本発明の目的は、加工運転中に実行している加工プログラムの編集可能とし、該加工運転を中断することなく編集結果を加工プログラムに反映可能な加工プログラム編集装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明では、加工プログラムのブロックが実行のために読み出されるまでの時間である編集可能時間を予測し、その時間内は該ブロックの編集を可能とすることにより、上記課題を解決する。
【０００８】
そして、本発明の一態様は、加工プログラムのブロックによる指令に基づいて機械を制御する加工プログラム編集装置において、前記加工プログラムのブロック毎に、該ブロックによる指令に基づく加工時間を予測する加工時間予測部と、前記加工プログラムのブロック毎に、該ブロックの実行中に先読みされているブロック数を算出する先読みブロック数算出部と、前記加工プログラムのブロックにおける編集可能時間を算出する編集可能時間算出部と、前記加工プログラムを表示してユーザからの編集を受け付け、その編集結果を前記制御に用いられている加工プログラムに書き込むプログラム編集部と、編集中のブロックにおける編集可能時間を表示する編集可能時間表示部と、を備え、前記プログラム編集部は、前記加工プログラムに含まれる複数のブロックの内、前記編集可能時間が残っているブロックのみを編集可能とし、編集された箇所のみを局所的に前記制御に用いられている加工プログラムに書き込む、加工プログラム編集装置である。
【発明の効果】
【０００９】
本発明により、制御装置による加工運転中に該加工運転を中断することなく加工プログラムが編集可能となり、編集結果を即運転に反映できるようになるため、加工運転の中断によるロスタイムが発生しないため、効率的に作業を行うことができるようになる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態による加工プログラム編集装置の概略的なハードウェア構成図である。
【図２】第１の実施形態による加工プログラム編集装置の概略的な機能ブロック図である。
【図３】ブロック情報テーブルを例示する図である。
【図４】加工プログラムの実行中ブロックと、指定ブロックと、編集可能時間の算出に用いるブロックの範囲との関係を例示する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面と共に説明する。
図１は本発明の一実施形態による加工プログラム編集装置の要部を示す概略的なハードウェア構成図である。加工プログラム編集装置１は、工作機械等の製造機械を制御する制御装置として実装することができる。
【００１２】
本実施形態による加工プログラム編集装置１が備えるＣＰＵ１１は、加工プログラム編集装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って加工プログラム編集装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００１３】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされるなどして、加工プログラム編集装置１の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ１４には、インタフェース１５を介して外部機器７２から読み込まれた加工プログラムや表示器／ＭＤＩユニット７０を介して入力された加工プログラム、加工プログラム編集装置１の各部や工作機械、センサ等から取得された各種データ（例えば、加工プログラムによる指令の実行状態、工作機械の動作状態を示す各種信号、サーボモータ５０やスピンドルモータ６２の位置，速度，電流・電圧値、加工条件、工具やワークの情報等）が記憶される。不揮発性メモリ１４に記憶された加工プログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、公知の解析プログラムなどの各種のシステム・プログラムがあらかじめ書き込まれている。
【００１４】
インタフェース１５は、加工プログラム編集装置１とアダプタ等の外部機器７２と接続するためのインタフェースである。外部機器７２側からはプログラムや各種パラメータ等が読み込まれる。また、加工プログラム編集装置１内で編集したプログラムや各種パラメータ等は、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、加工プログラム編集装置１に内蔵されたシーケンス・プログラムで工作機械及び該工作機械の周辺装置（例えば、工具交換用のロボットハンドといったアクチュエータ、工作機械に設置されたセンサ等）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチや周辺装置等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１５】
表示器／ＭＤＩユニット７０はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット７０のキーボードからの指令，データを受けてＣＰＵ１１に渡す。インタフェース１９は各軸を手動で駆動させる際に用いる手動パルス発生器等を備えた操作盤７１に接続されている。
【００１６】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる工作機械に備えられた軸の数だけ用意される。
【００１７】
スピンドル制御回路６０は、主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。スピンドルモータ６２にはポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００１８】
図２は、一実施形態による加工プログラム編集装置１の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した加工プログラム編集装置１が備えるＣＰＵ１１が、それぞれのシステム・プログラムを実行し、加工プログラム編集装置１の各部の動作を制御することにより実現される。
【００１９】
本実施形態の加工プログラム編集装置１は、加工プログラムに基づいて製造機械２を制御する制御部１００、加工プログラムのブロック毎の加工時間を予測する加工時間予測部１１０、加工プログラムのブロック毎に該ブロックの実行中に先読みされているブロック数を算出する先読みブロック数算出部１２０、加工プログラムのブロックにおける編集可能時間を算出する編集可能時間算出部１３０、加工プログラムを表示してユーザからの編集を受け付けるプログラム編集部１４０、編集中の加工プログラムのブロックにおける編集可能時間を表示する編集可能時間表示部１５０、を備える。
【００２０】
制御部１００は、不揮発性メモリ１４に記憶されている加工プログラム（又は、ＲＡＭ１３に展開されている加工プログラム）のブロックを読み出して、該ブロックによる指令に基づいて製造機械２を制御する機能手段である。制御部１００は、加工プログラムのブロックが製造機械２が備える軸の移動を指令する場合に当該軸を駆動するサーボモータ５０に対して制御周期毎に移動量を出力する、加工プログラムのブロックが製造機械２に備え付けられた図示しない周辺装置の動作を指令する場合に当該周辺装置に動作指令を出力する等のように、製造機械２の各部を制御するための一般的な機能を備える。制御部１００は、現在実行中の加工プログラムのブロックを一意に識別可能な情報を不揮発性メモリ１４に書き込むようにしても良い。
【００２１】
加工時間予測部１１０は、公知の加工プログラムのブロックの加工時間を予測する技術（例えば、特許文献４９８０４５８号公報，特開２０１７−２０７８２３号公報等）により、加工プログラムの各ブロックについて加工時間を予測し、予測したブロック毎の加工時間を不揮発性メモリ１４（または、ＲＡＭ１３）上に設けられたブロック情報テーブルするに書き込む。なお、加工プログラムのブロックの加工時間を予測する技術は既に十分に公知となっているので、本明細書による詳細な説明は省略する。
【００２２】
図３は、加工プログラム編集装置１のメモリ上に設けられたブロック情報テーブルの例を示す図である。ブロック情報テーブルは、加工プログラムの各ブロックに対して、少なくとも加工時間予測部１１０が予測する加工時間と、先読みブロック数算出支部１２０が算出した最大先読みブロック数を関連付けて記憶するテーブルである。ブロック情報テーブル上では、加工プログラムのブロックは、例えば当該ブロックのブロック番号等で一意に特定できるように管理される。また、ブロック情報テーブルは、加工プログラムの各ブロックについて、（例えば、ジャンプ指令等を事前に解析して）その実行順が把握できるように管理することが望ましく、その様にする場合、ブロック情報テーブルでは、実際に実行される順番でブロックに係る情報を記憶するようにしても良いし、各ブロックについて実行順序に係る情報を関連付けて管理しても良い。
【００２３】
先読みブロック数算出部１２０は、加工プログラムのブロック毎に、該ブロックの指令を実行中に先読みバッファに先読みされている最大のブロック数を算出し、算出したブロック毎の最大先読みブロック数を不揮発性メモリ１４（または、ＲＡＭ１３）上に設けられたブロック情報テーブルに書き込む。あるブロックにおける最大先読みブロック数は、そのブロックおよび、既に実行済みのブロックの指令によって決まる。
【００２４】
通常、先読みブロック数は数ブロックであるが、高速高精度加工を行うモードが指令されると先読みブロック数が大幅に増えるなど、指令によって先読みブロック数は変化する。また、先読みを抑制する指令があると、その指令のブロック以降は先読みが行われない。
【００２５】
実際の加工運転において、各ブロックを実行している時点で先読みされているブロック数を算出するには、プログラムの読出しにかかる時間やプログラムの解析にかかる時間といった時間的制約を考慮する必要があるが、先読みブロック数算出部１２０ではこの時間的制約は考慮せず、指令に基づく最大の先読みブロック数分が先読みされているとみなす。
【００２６】
先読みブロック数算出部１２０による加工プログラムの各ブロックの最大先読みブロック数の算出処理は、加工プログラムが選択された時点や選択された加工プログラムによる加工運転中の何れの時点において実行されても良いが、作業者がこれを意識しないようにバックグラウンドで実行することが望ましい。
【００２７】
編集可能時間算出部１３０は、加工プログラムの指定されたブロックにおける編集可能時間を、現在実行中のブロックとブロック情報テーブルとに基づいて算出する。編集可能時間算出部１３０が算出する指定ブロックにおける編集可能時間は、現時点から指定ブロックが実行のために読み出される（先読みされる）までに掛かる時間である。図４を用いて、編集可能時間算出部１３０による指定ブロックにおける編集可能時間の算出方法を説明する。
【００２８】
図４は、加工プログラムの実行中のブロックと、指定ブロックと、加工時間を合計するブロックの範囲との関係を例示する図である。
編集可能時間算出部１３０は、加工プログラムのブロックが指定されると、（手順１）ブロック情報テーブルに書き込まれた各ブロックの最大先読みブロック数を参照して、指定ブロックの１つ前のブロックが先読みバッファに先読みされた時点で実行されているであろうブロックを割り出す。図４の例の場合、指定ブロックをＮ８９０とすると、指定ブロックの１つ前のブロックであるＮ８８０が先読みバッファに先読みされるのは、（最大先読みブロック数が１０であることから）Ｎ７８０のブロックが実行されている間であることが割り出せる（この時、先読みバッファにバッファリングされているのは、Ｎ７９０〜Ｎ８８０である）。
【００２９】
指定ブロックの１つ前のブロックが先読みバッファに先読みされた時点で実行されているであろうブロックを割り出したら、編集可能時間算出部１３０は、（手順２）現在実行中のブロックから、割り出したブロックまでを、加工時間の合計を算出するブロックとし、加工時間の合計を指定ブロックにおける編集可能時間として算出する。図４の例の場合、Ｎ０６０〜Ｎ７８０までの加工時間の合計を、指定ブロックであるＮ８９０における編集可能時間として算出する。
【００３０】
なお、編集可能時間算出部１３０は、指定ブロックにおける編集可能時間を、現時点から指定ブロックが実行のために読み出される（先読みされる）までに掛かる時間ぎりぎりとせずに、余裕を持って編集を完了させるために、予め定めた余裕時間分だけ編集可能時間を短く算出するようにしても良い。
【００３１】
プログラム編集部１４０は、加工プログラムを表示してユーザからの編集を受け付ける機能手段である。プログラム編集部１４０は、表示器／ＭＤＩユニット７０に対して加工プログラムを表示する際に、編集可能時間算出部１３０に各ブロックを指定ブロックとして編集可能時間を算出させ、算出された各ブロックの編集可能時間に基づいて、編集可能時間が残っているブロックと編集可能時間が残っていないブロックとを色分けして表示しても良い。また、プログラム編集部１４０は、加工運転の進行に伴い所定の周期毎又はそれぞれのブロックの実行完了毎に各ブロックにおける編集可能時間を更新し、各ブロックの色分け表示を更新しても良い。
【００３２】
プログラム編集部１４０は、作業者による表示器／ＭＤＩユニット７０に対する編集操作に基づいて加工プログラムの編集を受け付ける。一般的な編集操作としては、カーソルの移動とカーソル位置の文字の編集が挙げられる。プログラム編集部１４０は、作業者の操作に基づいて編集された内容を不揮発性メモリ１４に記憶された（又は、ＲＡＭ１３に展開された）加工プログラムに対して反映させる。なお、プログラム編集部１４０は、加工運転に用いられている加工プログラムに対する編集内容の反映時には、加工プログラム全体を書き込むのではなく、作業者が編集した箇所（例えばブロック）のみを局所的に書き込む。
【００３３】
プログラム編集部１４０は、作業者によるブロックの編集中に当該ブロックの編集可能時間が無くなった（０以下になった）場合には、編集内容の書き込みは行わずに時間切れになった旨をメッセージとして表示するようにしても良い。この場合、加工運転は継続され、作業者が編集した内容は破棄される。一方、プログラム編集部１４０は、作業者によるブロックの編集中に当該ブロックの編集可能時間がなくなった場合に、加工運転を停止して編集内容を加工プログラムに反映させるようにしても良い。この場合、プログラム編集部１４０は、加工運転を停止して編集内容を加工プログラムに反映させるか否かを作業者に対して問い合わせ、作業者が許可した場合に加工運転を停止して編集内容を加工プログラムに反映させるようにしても良い。
【００３４】
編集可能時間表示部１５０は、編集中の加工プログラムのブロックにおける編集可能時間を表示する機能手段であり、典型的には、プログラム編集部１４０により編集されているブロック（カーソル位置のブロック）における編集可能時間を画面に表示する。編集可能時間表示部１５０は、加工プログラム編集装置１に内蔵される図示しないタイマの進行、もしくは加工運転の進行に伴い所定の周期毎に編集中の加工プログラムのブロックにおける編集可能時間の表示を更新しても良い。また、編集可能時間表示部１５０は、加工運転の進行に伴い、所定の周期毎、それぞれのブロックの実行完了毎、又は所定数ブロックの実行完了毎に、編集可能時間算出部１３０に指令して各ブロックにおける編集可能時間を更新させるようにしても良い。編集可能時間表示部１５０は、プログラム編集部１４０により編集されているブロック（カーソル位置のブロック）における編集可能時間が予め定めた所定時間よりも小さくなった場合に警告を表示するようにしても良い。
【００３５】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では加工プログラム編集装置を制御装置として実装した例を示したが、加工プログラム編集装置１は、例えば制御装置に併設されるパソコンや、制御装置に有線／無線ネットワークを介して接続されたセルコンピュータ、ホストコンピュータ等のコンピュータ上に実装しても良い。この様にする場合には、加工時間予測部１１０、先読みブロック数算出部１２０、編集可能時間算出部１３０、プログラム編集部１４０、編集可能時間表示部１５０をパソコンやコンピュータ上に実装すれば良く、これらの機能手段と、制御装置との間で通信等でデータをやり取りすることで上記処理を実行するようにすれば良い。なお、加工プログラム編集装置と制御装置とを別の装置として構成する場合には、加工プログラムの編集結果を実行中の加工プログラムに対して反映させるために通信等の時間が掛かるので、反映に掛かる時間を予め実験等で測定しておき、編集可能時間算出部１３０が算出する編集可能時間の余裕時間として設定しておくと良い。
【符号の説明】
【００３６】
１  加工プログラム編集装置
２  製造機械
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５  ，１８，１９  インタフェース
１７  Ｉ／Ｏユニット
２０  バス
３０  軸制御回路
３４  制御部
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  表示器／ＭＤＩユニット
７１  操作盤
７２  外部機器
８０  システム
８２  ネットワーク
１００  制御部
１１０  加工時間予測部
１２０  先読みブロック数算出部
１３０  編集可能時間算出部
１４０  プログラム編集部
１５０  編集可能時間表示部
【図１】
2019168804.tif 000003
【図２】
2019168804.tif 000004
【図３】
2019168804.tif 000005
【図４】
2019168804.tif 000006