(57)【要約】【課題】ブロックごとの加工時間の予測結果を容易に視認できる加工時間予測装置を提供する。【解決手段】加工時間予測装置１は、ＮＣ指令によって指定された工具経路を移動するのに要する時間をブロック毎に算出する装置であって、前記ＮＣ指令をブロックに分割するＮＣ指令解読部１０と、前記工具経路をセグメントに分割するセグメントデータ生成部３０と、前記セグメント毎にセグメント移動時間を算出するセグメント移動時間計算部５０と、前記ブロックと前記セグメントとの対応関係を保持する記憶部７０と、前記セグメントを前記ブロック毎に積算してブロック移動時間を算出し、前記ＮＣ指令の編集画面において、前記ブロックと前記ブロック移動時間とを対応付けて表示するブロック移動時間計算部８０と、を有する。【選択図】図２
2020038571.tif 000002
【特許請求の範囲】
【請求項１】
ＮＣ指令によって指定された工具経路を移動するのに要する時間をブロック毎に算出する装置であって、
前記ＮＣ指令をブロックに分割するＮＣ指令解読部と、
前記工具経路をセグメントに分割するセグメントデータ生成部と、
前記セグメント毎にセグメント移動時間を算出するセグメント移動時間計算部と、
前記ブロックと前記セグメントとの対応関係を保持する記憶部と、
前記セグメントを前記ブロック毎に積算してブロック移動時間を算出し、前記ＮＣ指令の編集画面において、前記ブロックと前記ブロック移動時間とを対応付けて表示するブロック移動時間計算部と、を有することを特徴とする
加工時間予測装置。
【請求項２】
前記ブロック移動時間計算部は、前記ＮＣ指令の編集画面において、前記ブロックのプログラムテキストの行頭に前記ブロック移動時間を表示することを特徴とする
請求項１記載の加工時間予測装置。
【請求項３】
前記ブロック移動時間計算部は、前記ＮＣ指令の編集画面において、前記ブロックに対応する位置のスクロールバーの背景色を、前記ブロック移動時間に応じた表示色で表示することを特徴とする
請求項１記載の加工時間予測装置。
【請求項４】
前記ブロック移動時間計算部は、前記ブロックと前記ブロック移動時間とを対応付けたリストを表示し、前記リストから前記ブロックのいずれかが選択された場合に、選択された前記ブロックの編集画面に遷移することを特徴とする
請求項１記載の加工時間予測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工時間予測装置に関し、特にブロックごとの加工時間の予測結果を容易に視認できる加工時間予測装置に関する。
【背景技術】
【０００２】
ＮＣプログラムを作成及び修正する際に、そのＮＣプログラムによる加工時間を確認したい場合がある。特に、ＮＣプログラム内のどの部分にどれだけ時間が掛かるのかの内訳を確認したいという要求がある。
【０００３】
従来、ＮＣプログラムの加工時間を確認する手法の１つとして、工作機械を含む産業用機械（以下、単に機械という）を実際に稼働させてＮＣプログラムを運転することがある。他の手法として、ＮＣプログラムの加工時間を予測するソフトウェアを使用することがある。
【０００４】
後者の手法の一例として、特許文献１乃至４に記載の手法がある。特許文献１には、諸条件に基づいて工具の移動速度を算出し、工具の移動速度に基づいて加工時間を予測する装置が開示されている。特許文献２には、ＮＣプログラムを複数の区間（ブロックのかたまり）に分割しておき、プログラムテキストの修正が行われた区間のみ加工時間を再予測することで、修正プロセスに要する時間を短縮できる装置が開示されている。特許文献３には、必要なブロック単位で加工時間を予測する装置が開示されている。特許文献４には、セグメント単位で加工時間を予測する装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４９８０４５８号
【特許文献２】特許第６３３３６５６号
【特許文献３】特開２０１７−１３８８２７号公報
【特許文献４】特開２０１７−１４６８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
オペレータは、「ＮＣプログラムの作成、修正」と「そのＮＣプログラムによる加工時間の確認」との２つの作業を繰り返し、ＮＣプログラムを最適化するのが一般的である。具体的には、作成又は修正したプログラムテキストのどの部分にどれだけの処理時間を要しているのかを視覚的に確認し、必要に応じ再修正する作業を繰り返す。そのため、プログラムテキストと処理時間との対応関係を容易に視認できれば、作業を効率化できる。
【０００７】
しかしながら、特許文献１乃至４に記載の手法では、ＮＣプログラムの修正前後の総加工時間を比較することはできても、どの部分にどれだけ時間が掛かるのかを視認するのは困難である。そのため、例えばＮＣプログラム内で多くの処理時間がかかっている部分を探すための作業負担が増加する。
【０００８】
また、特許文献１乃至４に記載の手法では、加工時間の確認とＮＣプログラムの編集とをそれぞれ別の画面で行うことになるため、操作の流れが途切れてしまい、操作性が低下する。
【０００９】
本発明はこのような課題を解決するためのものであり、ブロックごとの加工時間の予測結果を容易に視認できる加工時間予測装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施形態にかかる加工時間予測装置は、ＮＣ指令によって指定された工具経路を移動するのに要する時間をブロック毎に算出する装置であって、前記ＮＣ指令をブロックに分割するＮＣ指令解読部と、前記工具経路をセグメントに分割するセグメントデータ生成部と、前記セグメント毎にセグメント移動時間を算出するセグメント移動時間計算部と、前記ブロックと前記セグメントとの対応関係を保持する記憶部と、前記セグメントを前記ブロック毎に積算してブロック移動時間を算出し、前記ＮＣ指令の編集画面において、前記ブロックと前記ブロック移動時間とを対応付けて表示するブロック移動時間計算部と、を有することを特徴とする。
本発明の一実施形態にかかる加工時間予測装置は、前記ブロック移動時間計算部は、前記ＮＣ指令の編集画面において、前記ブロックのプログラムテキストの行頭に前記ブロック移動時間を表示することを特徴とする。
本発明の一実施形態にかかる加工時間予測装置は、前記ブロック移動時間計算部は、前記ＮＣ指令の編集画面において、前記ブロックに対応する位置のスクロールバーの背景色を、前記ブロック移動時間に応じた表示色で表示することを特徴とする。
本発明の一実施形態にかかる加工時間予測装置は、前記ブロック移動時間計算部は、前記ブロックと前記ブロック移動時間とを対応付けたリストを表示し、前記リストから前記ブロックのいずれかが選択された場合に、選択された前記ブロックの編集画面に遷移することを特徴とする。
【発明の効果】
【００１１】
本発明により、ブロックごとの加工時間の予測結果を容易に視認できる加工時間予測装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】加工時間予測装置１のハードウェア構成例を示す図である。
【図２】加工時間予測装置１の機能構成例を示す図である。
【図３】ブロック移動時間記憶部９０の内容の一例を示す図である。
【図４】加工時間予測装置１によるブロック移動時間の表示例を示す図である。
【発明を実施するための形態】
【００１３】
本実施の形態にかかる加工時間予測装置１は、特許文献１記載の加工時間予測装置と同様の構成により加工時間を予測する。すなわち加工時間予測装置１は、工具経路をセグメントと称される微小な切片に分割し、セグメントの始点から終点にかけて接線方向の速度の変化を表す速度カーブを求め、工具が求めた速度カーブに従って動くとしてセグメントを移動するのに要する時間を算出する。全工具経路を移動するのに要する時間は、セグメント毎の移動時間の総和で与えられる。隣り合うセグメントの間の速度差、加速度の差、加加速度の差、工具経路の曲率、速度算出に用いるセグメントデータの数によって決まる速度に対する制約を取り入れて速度カーブを決めることにより、算出した加工時間の精度を向上させる。工具の動作を各軸の動作に分解せず、接線方向の速度を扱う１次元の問題として処理できるので、処理時間を短縮する。更に、セグメントへの分割間隔を可変にすることにより、移動時間の予測値と予測値の精度の調整を可能にする。
【００１４】
加えて、加工時間予測装置１は、ブロックごとの加工時間を予測する手段、及びブロックごとの予測加工時間をオペレータが容易に視認できるように表示するための手段を新たに提供する。
【００１５】
図１は、本実施の形態にかかる加工時間予測装置１の要部を示す概略的なハードウェア構成図である。加工時間予測装置１は、例えば機械の制御を行う数値制御装置である。又は、ＮＣプログラムの作成、修正又は加工時間予測を行うために使用されるＰＣ（パーソナルコンピュータ）等の情報処理装置であっても良い。
【００１６】
加工時間予測装置１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、不揮発性メモリ１０４、バス１０５、インタフェース１０６を有する。インタフェース１０６には、入出力装置１０７が接続される。
【００１７】
ＣＰＵ１０１は、加工時間予測装置１を全体的に制御するプロセッサである。ＣＰＵ１０１は、ＲＯＭ１０２に格納されたシステム・プログラムをバス１０５を介して読み出し、システム・プログラムに従って加工時間予測装置１全体を制御する。
【００１８】
ＲＯＭ１０２は、システム・プログラムを予め格納している。
【００１９】
ＲＡＭ１０３は、一時的な計算データや表示データ、入出力装置１０７を介してオペレータが入力したデータやプログラム等を一時的に格納する。
【００２０】
不揮発性メモリ１０４は、例えば図示しないバッテリでバックアップされており、加工時間予測装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１０４は、入出力装置１０７から入力されるデータやプログラム等を格納する。不揮発性メモリ１０４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１０３に展開されても良い。
【００２１】
入出力装置１０７は、表示装置や入力装置を備えたデータ入出力装置であり、典型的にはＭＤＩ、操作盤、タッチパネル、ディスプレイ、キーボード、マウス等を含む。入出力装置１０７は、インタフェース１０６を介してＣＰＵ１０１から受けた情報を表示装置に表示する。入出力装置１０７は、入力装置から入力された指令やデータ等をインタフェース１０６を介してＣＰＵ１０１に渡す。
【００２２】
図２は、加工時間予測装置１の概略的な機能構成を示すブロック図である。加工時間予測装置１は、ＮＣ指令解読部１０、速度制約処理部２０、セグメントデータ生成部３０、中間メモリ（バッファ）４０、セグメント移動時間計算部５０、全移動時間計算部６０を含む。加えて、加工時間予測装置１は、ブロックＩＤ−セグメントＩＤ記憶部７０、ブロック移動時間計算部８０、ブロック移動時間記憶部９０を有する。
【００２３】
ＮＣ指令解読部１０は、ＮＣ指令（加工プログラム）２を入力として受け取り、その内容を解読してＮＣ指令（加工プログラム）２に記述されるブロック毎の指令データに分割してブロックデータを生成する。入力されるＮＣ指令２は、ＣＮＣ（数値制御装置）に入力されるものと同じであり、テキストファイルやＣＮＣのプログラムメモリに記憶されたバイナリデータなど、その形式は問わない。
【００２４】
ブロックデータは元のＮＣ指令（加工プログラム）２を構成する各ブロックの指令内容を表したもので、ブロックの始点と終点の位置の情報、始点から終点までの経路の種類（直線、円弧など）と経路を決める情報（円弧の場合の中心位置など）、ブロックを移動する時の工具の速度情報が含まれる。
【００２５】
速度制約処理部２０は、大域速度制約処理部２１、局所速度制約処理部２２、および、データ量依存速度制約処理部２３を含む。
【００２６】
大域速度制約処理部２１は、ＮＣ指令（加工プログラム）２において指令される指令速度Ｖｃと工具経路の曲率に応じて予め決められた速度Ｖｉａを比較し、小さい方の値を上限速度Ｖｌｉｍとする。指令速度Ｖｃのデータと工具経路の曲率のデータはＮＣ指令解読部１０で生成されるブロックデータに基づく。工具経路の曲率に応じて予め決められた速度Ｖｉａのデータは図示しないメモリに記憶しておく。速度オーバライドがかかった状態での工具の移動時間を算出する場合は、指令速度Ｖｃの代わりに指令速度Ｖｃにオーバライドの比率を乗じた速度を用いる。局所速度制約処理部２２とデータ量依存速度制約処理部２３は、セグメントデータを利用するので、後述する。
【００２７】
セグメントデータ生成部３０はＮＣ指令解読部１０で生成されたブロックデータを受け取り、各ブロックの始点から終点までの工具経路をセグメントへ分割する。この分割方法は、指令速度Ｖｃに所定の係数ｋまたは工具経路の曲率に基づいて決めた係数を乗じて分割速度Ｖｄを決め、分割速度Ｖｄに所定の時間τを乗じて得られる距離Ｖｄ・τを分割間隔として、ブロック始点から順次セグメントを切り出して行く。このようにして生成された個々のセグメントは工具経路の微小な切片である。セグメントの長さをＬとすると、Ｌ＝Ｖｄ・τで表すことができる。所定の時間τは補間周期ないしそれより長い時間とする。
【００２８】
切り出された微小な切片は、セグメントデータとして中間メモリ（バッファ）４０に蓄積（格納）される。中間メモリ４０に蓄積（格納）されるセグメントデータは、セグメントの長さＬ、セグメントの方向（始点から終点に向かうベクトル）、前記上限速度と局所速度制約処理部２２で求めたコーナ速度Ｖｒを含む。
【００２９】
局所速度制約処理部２２は、セグメントデータ生成部３０によって生成されたセグメントについて、隣り合うセグメントの間の速度差、加速度差、および、加加速度がそれぞれ予め設定された許容値以下に収まる速度の中で最大の速度を求め、その速度を隣り合うセグメントの接続点におけるコーナ速度Ｖｒとする。なお、工具経路の曲率を大域速度制約処理部２１で考慮する代わりに、局所速度制約処理部２２で考慮してもよい。このようにして値が設定されたセグメントデータは、中間メモリ（バッファ）４０に蓄積（格納）される。
【００３０】
データ量依存速度制約処理部２３は、セグメントデータの数によって決まる工具の移動速度に対する制約を取り入れて、算出した加工時間の精度を向上させるための手段である。これは、先読み処理によって読み込まれたデータ数によって速度に対する制約が決まることを、加工時間の予測装置において再現するために備わった処理部である。
【００３１】
データ量依存速度制約処理部２３は、中間メモリ（バッファ）４０に蓄積された末尾のセグメント（最も後に生成されたセグメント）の終点で所定の速度Ｕａになるとして、中間メモリ（バッファ）４０の先頭のセグメントへ向かって減速曲線と呼ぶ速度の変化を表す速度カーブＵ（ｔ）を形成する。工具は速度カーブＵ（ｔ）以上の速度では移動することはできないので、該Ｕ（ｔ）を許容速度と称する。通常、所定の速度Ｕａは０とするが、有限の値でもよい。
【００３２】
セグメント移動時間計算部５０は、中間メモリ（バッファ）４０の先頭からセグメントデータを１つ取り出し、そのセグメントの移動に要する時間を計算する。セグメントの長さをＬとし、セグメントの始点の時刻を０、時刻ｔにおける工具の移動速度である速度カーブをＶ（ｔ）とすると、任意の１つのセグメントの移動に要する時間Ｔは数１式を満たす。速度カーブＶ（ｔ）は工具経路に沿って測った距離ｓ（ｔ）の時間微分を表す。
【００３３】
【数１】
2020038571.tif 000003
【００３４】
全移動時間計算部６０は、各区間の移動時間を積算した値を全移動時間とする。
【００３５】
なお、本実施の形態では、ＮＣ指令解読部１０は、ブロックを一意に識別可能なブロックＩＤをブロックＩＤ−セグメントＩＤ記憶部７０に記憶するものとする。また、セグメントデータ生成部３０は、セグメントを一意に識別可能なセグメントＩＤを、当該セグメントの分割元のブロックＩＤと対応付けてブロックＩＤ−セグメントＩＤ記憶部７０に記憶するものとする。また、セグメント移動時間計算部５０は、算出したセグメント移動時間を、セグメントＩＤとともにブロック移動時間計算部８０に対して出力する。
【００３６】
ブロック移動時間計算部８０は、セグメント移動時間計算部５０が出力するセグメント移動時間及びセグメントＩＤを順次、取得する。ブロック移動時間計算部８０は、ブロックＩＤ−セグメントＩＤ記憶部７０を参照し、セグメントＩＤに対応するブロックＩＤを特定して、セグメント移動時間をブロックＩＤ単位で積算する。この積算値をブロック移動時間という。ブロック移動時間計算部８０は、ブロック移動時間とブロックＩＤとを対応付けてブロック移動時間記憶部９０に記憶する。また、ブロック移動時間計算部８０は、ＮＣ指令２に含まれる総ブロック数Ｎ、及びブロック移動時間の最大値（ブロック移動時間計算部８０が算出したＮ個のブロック移動時間のうち最大のもの）を、それぞれブロック移動時間記憶部９０に記憶する。
【００３７】
図３は、ブロック移動時間記憶部９０の記憶内容の一例を示す図である。ブロック移動時間記憶部９０は、ブロックＩＤとブロック移動時間との対応テーブルを含む。このテーブルは、ＮＣ指令２に含まれる全てのブロックＩＤをキーとし、各ブロックＩＤに対応するブロック移動時間が格納されている。さらに、ブロック移動時間記憶部９０は、総ブロック数Ｎ及びブロック移動時間の最大値を格納している。
【００３８】
図４に示すように、ブロック移動時間計算部８０は、ＮＣプログラムの編集画面に、編集中のＮＣプログラムの加工時間を算出するためのボタン（加工時間予測ボタン）を表示させる。又は、ソフトキーに編集中のＮＣプログラムの加工時間を算出する機能を割り当てても良い。ブロック移動時間計算部８０は、当該ボタン又はソフトキーが選択されたことを検出すると、上述の一連の処理により全移動時間及びブロック毎のブロック移動時間を算出する。ブロック移動時間計算部８０は、算出した全移動時間をＮＣプログラムの編集画面の任意の位置に表示する。また、ブロック移動時間記憶部９０にブロック毎のブロック移動時間を記憶する。
【００３９】
ブロック移動時間計算部８０は、ブロック移動時間記憶部９０にブロック毎のブロック移動時間が記憶されている場合、ＮＣプログラムの編集画面にブロック移動時間を表示する。例えば、図４に示すように、各ブロックＩＤに該当するブロックの行頭などに、そのブロックのブロック移動時間を数値で表示することができる。なお、数値の表示位置は一例であり、ブロックとブロック移動時間との対応関係が明確に視認できる形態であればどのような位置に表示しても構わない。
【００４０】
ブロック移動時間計算部８０は、図４に示すように、各ブロックＩＤに該当するブロックに対応する位置のスクロールバーの背景色を変化させることにより、そのブロックのブロック移動時間を表現しても良い。例えば以下の手順により、１０段階の背景色によって各ブロックのブロック移動時間の多寡を表現することができる。
（１）スクロールバー全体の高さを総ブロック数Ｎで割り、ブロックに対応するピクセル行の座標を求める。
（２）ブロック移動時間の最大値ＹＹＹＹＹを１０（表示段階数）で割り、加工時間を１０の範囲に分ける。
（３）ブロック毎に、ブロック移動時間がどの範囲に含まれるかを求める。各範囲に表示色を割り当て、そのブロックがどの表示色にあたるかを決定する。
（４）求めた表示色で、そのブロックに対応するピクセル行を描画する。
【００４１】
なお、スクロールバーを色分け表示する手法は一例であり、本発明はこれに限定されるものではない。ブロック移動時間計算部８０は、例えば以下のような方法でもＮＣプログラム内のどの部分にどれだけ時間がかかるのかを表示することができる。
（ア）スクロールバーではなく、ブロック行頭のブロック移動時間（数値）、ブロックそのもの（プログラムテキスト）、あるいはそれらの背景色を色分けして表示する。
（イ）色ではなく、輝度を分けて表示する。
（ウ）ブロック移動時間の大きい順にブロックをソートした一覧を表示する。一覧では、例えばブロックＩＤをリスト項目として表示しても良いし、プログラムテキストの一部をリスト項目として表示しても良い。リスト項目が選択されると、該当ブロックのＮＣプログラム編集画面に遷移する。
（エ）予測加工時間が閾値以下の場合は、そのブロックについてはブロック移動時間（数値）やブロック移動時間を示す背景色を表示しない。又は、（ウ）の一覧にそのブロックを表示しない。
【００４２】
本実施の形態によれば、加工時間予測装置１は、ブロック毎に予測加工時間（ブロック移動時間）を算出し、ＮＣプログラムの編集画面内にブロック移動時間を表示できる。これにより、ＮＣプログラムのどの部分にどれだけ時間がかかるのかを直感的に識別できるので、視認性を向上できる。
【００４３】
また、本実施の形態によれば、加工時間予測装置１はブロックとブロック移動時間とを直接的に対応付け、ＮＣプログラム行頭の数値、スクロールバー等の表示色、リスト等によりブロック移動時間を表示するので、ＮＣプログラムのうち処理時間が多くかかる箇所をすぐに発見し、当該箇所に素早く移動して編集を行うことができる。これにより処理時間がかかる箇所を探して修正を行う作業における手間を抑制し、作業者の負担を軽減することができる。
【００４４】
また、本実施の形態によれば、１つの画面で「ＮＣプログラムの作成・修正」と「そのＮＣプログラムによる加工時間の確認」が行える。これにより、操作の流れが途切れることがなくなり、操作性を向上させられる。
【符号の説明】
【００４５】
１  加工時間予測装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１０５  バス
１０６  インタフェース
１０７  入出力装置
１０  ＮＣ指令解読部
２０  速度制約処理部
３０  セグメントデータ生成部
４０  中間メモリ（バッファ）
５０  セグメント移動時間計算部
６０  全移動時間計算部
７０  ブロックＩＤ−セグメントＩＤ記憶部
８０  ブロック移動時間計算部
９０  ブロック移動時間記憶部
【図１】
2020038571.tif 000004
【図２】
2020038571.tif 000005
【図３】
2020038571.tif 000006
【図４】
2020038571.tif 000007