(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-11-24
(45)【発行日】2023-12-04
(54)【発明の名称】情報処理装置および制御プログラム
(51)【国際特許分類】
G05B 19/4069 20060101AFI20231127BHJP
G05B 19/4155 20060101ALI20231127BHJP
B23Q 15/00 20060101ALI20231127BHJP
【FI】
G05B19/4069
G05B19/4155 V
B23Q15/00 B
(21)【出願番号】P 2023018318
(22)【出願日】2023-02-09
【審査請求日】2023-05-10
【早期審査対象出願】
(73)【特許権者】
【識別番号】000146847
【氏名又は名称】DMG森精機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】佐々木 優斗
【審査官】中川 康文
(56)【参考文献】
【文献】特開2003-175439(JP,A)
【文献】特開2017-138827(JP,A)
【文献】特開2020-201982(JP,A)
【文献】特開2016-031605(JP,A)
【文献】特開平05-143145(JP,A)
【文献】実開平05-063749(JP,U)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18-19/416
B23Q 15/00-15/28
(57)【特許請求の範囲】
【請求項1】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置であって、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間とを含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出する算出部を備え
、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記算出部は、前記軸移動の指令点および速度を含む第1パラメータに基づいて算出された各前記第1指令ブロックに対応した実行予測時間と、各前記第1指令ブロックを実行した際の実際の実行に要する実行時間との間の誤差に関する誤差データに基づいて、前記NCプログラムの実行時間を算出する、情報処理装置。
【請求項2】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置であって、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間とを含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出する算出部を備え、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記算出部は、前記軸移動の指令の種類毎に作成され、前記軸移動の指令点および速度を含む第2パラメータと、各前記第1指令ブロックを実行した際の実際の実行に要する実行時間との対応を示す実行時間データに基づいて、前記NCプログラムの実行時間を算出する
、情報処理装置。
【請求項3】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置であって、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間とを含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出する算出部を備え、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記算出部は、前記軸移動の指令の種類毎に作成され、前記軸移動の指令点および速度を含む第3パラメータを入力とし、各前記第1指令ブロックに対応した実行時間を出力とする学習済みの実行時間推定モデルに基づいて、前記NCプログラムの実行時間を算出する
、情報処理装置。
【請求項4】
前記複数の第1指令ブロックは、前記算出部により実行時間が算出される特定ブロックと、前記特定ブロックの前後で実行される複数の前後ブロックとを含み、
前記第3パラメータは、前記特定ブロックで規定される前記軸移動の指令点と、前記複数の前後ブロックで規定される前記軸移動の指令点とを含む、請求項
3に記載の情報処理装置。
【請求項5】
前記第3パラメータは、ワークオフセット値および工具長の少なくともいずれか一方をさらに含む、請求項
3または4に記載の情報処理装置。
【請求項6】
前記工作機械から、前記工作機械で各前記第1指令ブロックを実行した際の実際の実行に要する実行時間を含む情報を受信する通信部と、
前記情報に基づいて、前記第3パラメータと、各前記第1指令ブロックに対応した実行時間との相関関係を再学習し、前記実行時間推定モデルを更新する機械学習部とをさらに備える、請求項
3または4に記載の情報処理装置。
【請求項7】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置の制御プログラムであって、
前記制御プログラムは、前記情報処理装置に、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間との入力を受け付けるステップと、
前記第1実行時間および前記第2実行時間を含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出するステップとを実行させ
、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記NCプログラムの実行時間を算出するステップは、前記軸移動の指令点および速度を含む第1パラメータに基づいて算出された各前記第1指令ブロックに対応した実行予測時間と、各前記第1指令ブロックを実行した際の実際の実行に要する実行時間との間の誤差に関する誤差データに基づいて、前記NCプログラムの実行時間を算出するステップを含む、制御プログラム。
【請求項8】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置の制御プログラムであって、
前記制御プログラムは、前記情報処理装置に、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間との入力を受け付けるステップと、
前記第1実行時間および前記第2実行時間を含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出するステップとを実行させ、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記NCプログラムの実行時間を算出するステップは、前記軸移動の指令の種類毎に作成され、前記軸移動の指令点および速度を含む第2パラメータと、各前記第1指令ブロックを実行した際の実際の実行に要する実行時間との対応を示す実行時間データに基づいて、前記NCプログラムの実行時間を算出するステップを含む、制御プログラム。
【請求項9】
複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置の制御プログラムであって、
前記制御プログラムは、前記情報処理装置に、
(i)前記複数のブロックの中の第1ブロックに対して工作機械で前記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)前記複数のブロックの中の第2ブロックに対して前記工作機械で前記第2ブロックを実行した際の実際の実行に要する第2実行時間との入力を受け付けるステップと、
前記第1実行時間および前記第2実行時間を含む前記複数のブロックに対応した実行時間に基づいて、前記NCプログラムの実行時間を算出するステップとを実行させ、
前記複数のブロックは、軸移動を指令し、前記第1ブロックおよび前記第2ブロックが含まれる複数の第1指令ブロックを含み、
前記NCプログラムの実行時間を算出するステップは、前記軸移動の指令の種類毎に作成され、前記軸移動の指令点および速度を含む第3パラメータを入力とし、各前記第1指令ブロックに対応した実行時間を出力とする学習済みの実行時間推定モデルに基づいて、前記NCプログラムの実行時間を算出するステップを含む、制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報処理装置および制御プログラムに関する。
【背景技術】
【0002】
特開2003-305624号公報(特許文献1)には、生産ラインを構成する生産設備の制御に用いられるプログラムまたはパラメータに基づいて、生産設備がワークの加工に要すると予測される時間を算出するサイクルタイム算出装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の特許文献1に開示されるように、コンピュータによる数値制御により各種動作が自動化されたNC(Numerical Control)工作機械において、NCプログラムに基づいて、そのNCプログラムの実行に要する時間(実行時間)を算出するための情報処理装置が知られている。このような情報処理装置においては、正確な実行時間を算出することが難しい場合がある。
【0005】
たとえば、NCプログラムが主軸または刃物台等の移動体の軸移動を指令する場面において、滑らかな軸移動を実現するためのスムージング機能が工作機械に備わる場合がある。スムージング機能は、各NCメーカーが独自に作成した非公開のアルゴリズムにより、NCプログラムで規定された指令点間の経路に適当な補間点を設定するため、かかるスムージング機能を加味した実行時間を算出することは困難である。
【0006】
そこでこの発明の目的は、上記の課題を解決することであり、NCプログラムの実行時間を正確に算出することが可能な情報処理装置と、そのような情報処理装置の制御プログラムとを提供することである。
【課題を解決するための手段】
【0007】
[1]複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置であって、(i)上記複数のブロックの中の第1ブロックに対して工作機械で上記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)上記複数のブロックの中の第2ブロックに対して上記工作機械で上記第2ブロックを実行した際の実際の実行に要する第2実行時間とを含む上記複数のブロックに対応した実行時間に基づいて、上記NCプログラムの実行時間を算出する算出部を備える、情報処理装置。
【0008】
このように構成された情報処理装置によれば、NCプログラムの実行時間の算出に、工作機械でNCプログラムの第1ブロックおよび第2ブロックをそれぞれ実行した際の実際の実行に要する第1実行時間および第2実行時間が反映されるため、NCプログラムの実行時間を正確に算出することができる。
【0009】
[2]上記複数のブロックは、軸移動を指令し、上記第1ブロックおよび上記第2ブロックが含まれる複数の第1指令ブロックを含み、上記算出部は、上記軸移動の指令点および速度を含む第1パラメータに基づいて算出された各上記第1指令ブロックに対応した実行予測時間と、各上記第1指令ブロックを実行した際の実際の実行に要する実行時間との間の誤差に関する誤差データに基づいて、上記NCプログラムの実行時間を算出する、[1]に記載の情報処理装置。
【0010】
このように構成された情報処理装置によれば、軸移動の指令点および速度を含む第1パラメータに基づいて算出された各第1指令ブロックに対応した実行予測時間と、各第1指令ブロックを実行した際の実際の実行に要する実行時間との間の誤差に関する誤差データを利用して、NCプログラムの実行時間を正確に算出することができる。
【0011】
[3]上記算出部は、上記軸移動の速度の範囲毎に作成された上記誤差データに基づいて、上記NCプログラムの実行時間を算出する、[2]に記載の情報処理装置。
【0012】
このように構成された情報処理装置によれば、軸移動の速度は、軸移動の経路に対して影響を与える可能性があるため、NCプログラムの実行時間をより正確に算出することができる。
【0013】
[4]上記第1パラメータは、上記軸移動の加速度をさらに含む、[2]または[3]に記載の情報処理装置。
【0014】
このように構成された情報処理装置によれば、軸移動の加速度は、軸移動の実行時間に対して影響を与えるため、各第1指令ブロックの実行予測時間をより正確に算出することができる。
【0015】
[5]上記工作機械から、上記工作機械で各上記第1指令ブロックを実行した際の実際の実行に要する実行時間を含む情報を受信する通信部と、上記情報に基づいて上記誤差データを更新する誤差データ更新部とをさらに備える、[2」から[4]のいずれかに記載の情報処理装置。
【0016】
このように構成された情報処理装置によれば、工作機械からの情報に基づき誤差データを更新することによって、NCプログラムの実行時間をより正確に算出することができる。
【0017】
[6]上記複数のブロックは、軸移動を指令し、上記第1ブロックおよび上記第2ブロックが含まれる複数の第1指令ブロックを含み、上記算出部は、上記軸移動の指令の種類毎に作成され、上記軸移動の指令点および速度を含む第2パラメータと、各上記第1指令ブロックを実行した際の実際の実行に要する実行時間との対応を示す実行時間データに基づいて、上記NCプログラムの実行時間を算出する、[1]に記載の情報処理装置。
【0018】
このように構成された情報処理装置によれば、軸移動の指令点および速度を含む第2パラメータと、各第1指令ブロックを実行した際の実際の実行に要する実行時間との対応を示す実行時間データを利用して、NCプログラムの実行時間を正確に算出することができる。
【0019】
[7]上記実行時間データにおいて、上記第2パラメータの各要素に対して規定される所定範囲と、上記第2パラメータの各要素が上記所定範囲を満たす場合の各上記第1指令ブロックを実行した際の実際の実行に要する実行時間の平均値とが対応付けられる、[6]に記載の情報処理装置。
【0020】
このように構成された情報処理装置によれば、準備すべき実行時間データの量が少なくなるため、NCプログラムの実行時間をより簡易に算出することができる。
【0021】
[8]上記複数の第1指令ブロックは、上記算出部により実行時間が算出される特定ブロックと、上記特定ブロックの前後で実行される複数の前後ブロックとを含み、上記第2パラメータは、上記特定ブロックで規定される上記軸移動の指令点と、上記複数の前後ブロックで規定される上記軸移動の指令点とを含む、[6]または[7]に記載の情報処理装置。
【0022】
このように構成された情報処理装置によれば、複数の前後ブロックで規定される軸移動の指令点は、軸移動の経路に対して影響を与える可能性があるため、NCプログラムの実行時間をより正確に算出することができる。
【0023】
[9]上記第2パラメータは、ワークオフセット値および工具長の少なくともいずれか一方をさらに含む、[6]から[8]のいずれかに記載の情報処理装置。
【0024】
このように構成された情報処理装置によれば、ワークオフセット値および工具長は、軸移動の経路に対して影響を与える可能性があるため、NCプログラムの実行時間をより正確に算出することができる。
【0025】
[10]上記工作機械から、上記工作機械で各上記第1指令ブロックを実行した際の実際の実行に要する実行時間を含む情報を受信する通信部と、上記情報に基づいて上記実行時間データを更新する実行時間データ更新部とをさらに備える、[6]から[9]のいずれかに記載の情報処理装置。
【0026】
このように構成された情報処理装置によれば、工作機械からの情報に基づき実行時間データを更新することによって、NCプログラムの実行時間をより正確に算出することができる。
【0027】
[11]上記複数のブロックは、軸移動を指令し、上記第1ブロックおよび上記第2ブロックが含まれる複数の第1指令ブロックを含み、上記算出部は、上記軸移動の指令の種類毎に作成され、上記軸移動の指令点および速度を含む第3パラメータを入力とし、各上記第1指令ブロックに対応した実行時間を出力とする学習済みの実行時間推定モデルに基づいて、上記NCプログラムの実行時間を算出する、[1]に記載の情報処理装置。
【0028】
このように構成された情報処理装置によれば、軸移動の指令点および速度を含む第3パラメータを入力とし、各第1指令ブロックに対応した実行時間を出力とする学習済みの実行時間推定モデルを用いることによって、NCプログラムの実行時間を正確に算出することができる。
【0029】
[12]上記複数の第1指令ブロックは、上記算出部により実行時間が算出される特定ブロックと、上記特定ブロックの前後で実行される複数の前後ブロックとを含み、上記第3パラメータは、上記特定ブロックで規定される上記軸移動の指令点と、上記複数の前後ブロックで規定される上記軸移動の指令点とを含む、[11]に記載の情報処理装置。
【0030】
このように構成された情報処理装置によれば、複数の前後ブロックで規定される上記軸移動の指令点は、軸移動の経路に対して影響を与える可能性があるため、NCプログラムの実行時間をより正確に算出することができる。
【0031】
[13]上記第3パラメータは、ワークオフセット値および工具長の少なくともいずれか一方をさらに含む、[11]または[12]に記載の情報処理装置。
【0032】
このように構成された情報処理装置によれば、ワークオフセット値および工具長は、軸移動の経路に対して影響を与える可能性があるため、NCプログラムの実行時間をより正確に算出することができる。
【0033】
[14]上記工作機械から、上記工作機械で各上記第1指令ブロックを実行した際の実際の実行に要する実行時間を含む情報を受信する通信部と、上記情報に基づいて、上記第3パラメータと、各上記第1指令ブロックに対応した実行時間との相関関係を再学習し、上記実行時間推定モデルを更新する機械学習部とをさらに備える、[11]から[13]のいずれかに記載の情報処理装置。
【0034】
このように構成された情報処理装置によれば、工作機械からの情報に基づき実行時間推定モデルを更新することによって、NCプログラムの実行時間をより正確に算出することができる。
【0035】
[15]複数のブロックを含むNCプログラムの実行時間を算出する情報処理装置の制御プログラムであって、上記制御プログラムは、上記情報処理装置に、(i)上記複数のブロックの中の第1ブロックに対して工作機械で上記第1ブロックを実行した際の実際の実行に要する第1実行時間と、(ii)上記複数のブロックの中の第2ブロックに対して上記工作機械で上記第2ブロックを実行した際の実際の実行に要する第2実行時間との入力を受け付けるステップと、上記第1実行時間および上記第2実行時間を含む上記複数のブロックに対応した実行時間に基づいて、上記NCプログラムの実行時間を算出するステップとを実行させる、制御プログラム。
【0036】
このように構成された制御プログラムによれば、情報処理装置において、NCプログラムの実行時間をより正確に算出することができる。
【発明の効果】
【0037】
以上に説明したように、この発明に従えば、NCプログラムの実行時間を正確に算出することが可能な情報処理装置と、そのような情報処理装置の制御プログラムとを提供することができる。
【図面の簡単な説明】
【0038】
【
図1】情報処理装置と、その情報処理装置によりNCプログラムの実行時間が算出される工作機械との関係を模式的に示す図である。
【
図3】この発明の実施の形態1における情報処理装置を示す機能ブロック図である。
【
図4】
図1中の工作機械を示す機能ブロック図である。
【
図6】
図1中の工作機械における軸移動の経路において、スムージング機能が発動された場合の変化を示す図である。
【
図7】この発明の実施の形態2における情報処理装置を示す機能ブロック図である。
【
図8】
図1中の工作機械における軸移動の経路を示す図である。
【
図9】実行時間の算出に用いられる第2パラメータおよび第3パラメータを示す図である。
【
図10】実行時間データのイメージを示す図である。
【
図11】この発明の実施の形態3における情報処理装置を示す機能ブロック図である。
【
図12】学習済み時間推定モデルを学習させるための処理を示す概略図である。
【発明を実施するための形態】
【0039】
この発明の実施の形態について、図面を参照して説明する。なお、以下で参照する図面では、同一またはそれに相当する部材には、同じ番号が付されている。
【0040】
(実施の形態1)
図1は、情報処理装置と、その情報処理装置によりNCプログラムの実行時間が算出される工作機械との関係を模式的に示す図である。
【0041】
図1を参照して、工作機械200は、コンピュータによる数値制御によって、ワーク加工のための各種動作が自動化されたNC(Numerical Control)工作機械である。
【0042】
工作機械200は、ワークの除去加工(SM(Subtractive Manufacturing))を行なう旋盤またはマシニングセンタである。工作機械200は、旋削機能と、ミーリング機能とを有する複合加工機であってもよいし、研削機械であってもよい。工作機械200は、ワークの除去加工と、ワークの付加加工(AM(Additive Manufacturing))とが可能なAM/SMハイブリッド加工機であってもよい。
【0043】
工作機械200は、操作盤240を有する。操作盤240は、加工に関する各種情報を表示するための表示部241と、工作機械200に対する各種操作を受け付ける操作部242とを有する。
【0044】
情報処理装置100は、工作機械200においてNCプログラムの実行に要する時間(実行時間)を算出する機能を有する。より特定的には、情報処理装置100は、コンピュータ支援設計(CAD)から取得されるCADデータより、工作機械200で使用されるNCプログラムを作成するプログラム作成機能と、かかるプログラム作成機能によるNCプログラムの作成に続いて、NCプログラムの実行時間を算出する実行時間算出機能とを有する。
【0045】
情報処理装置100により工作機械200におけるNCプログラムの実行時間を算出する流れについて簡単に説明する。
【0046】
ステップS1において、工作機械200は、各種のNCプログラムに従って動作するとともに、NCプログラムに含まれる各ブロックを実行した際の実際の実行に要する実行時間(以下、「実行実時間」ともいう)を計測する。工作機械200は、少なくとも実行実時間を含む情報を情報処理装置100に出力する。
【0047】
ステップS2において、情報処理装置100は、工作機械200より入力された情報を用いて、参照データDaを作成または更新する。参照データDaは、誤差データDa1(実施の形態1)、実行時間データDa2(後出の実施の形態2)、または、実行時間推定モデルDa3(後出の実施の形態3)に対応している。参照データDaは、典型的には、情報処理装置100の記憶部150内に格納される。
【0048】
ステップS3において、情報処理装置100は、参照データDaに基づいてNCプログラムの実行時間を算出する。より特定的には、情報処理装置100は、プログラム作成機能により作成されたNCプログラムの実行時間を、参照データDaに基づいて算出する。算出された実行時間は、典型的には、情報処理装置100の表示部130に表示される。
【0049】
なお、参照データDaが誤差データDa1である場合、ステップS2において、情報処理装置100は、工作機械200より入力された情報に加えて、ステップS3の過程で算出される実行予測時間を用いて、誤差データDa1を作成または更新する。この点については、後で詳細に説明する。
【0050】
上記のステップS1およびステップS2は、情報処理装置100のメーカーが、各種のNCプログラムをランニングプログラムとして作成し、かかるNCプログラムを用いて工作機械200を動作させることによって実行される。ランニングプログラムから作成された参照データDaは、販売される前の情報処理装置100の記憶部150内に初期データとして格納される。参照データDaは、個別の工作機械200に対応して作成されてもよいし、同種の工作機械200に対応して(工作機械200の機種毎に)作成されてもよい。
【0051】
さらに上記のステップS1およびステップS2は、ユーザが各種のNCプログラムを用いて工作機械200を動作させる場合に自動的に実行される。これにより、情報処理装置100の記憶部150内に格納された参照データDaが更新される。
【0052】
図2は、NCプログラムの一例を示す図である。
図2を参照して、情報処理装置100により実行時間が算出されるNCプログラムについて説明する。
【0053】
NCプログラムは、複数のブロックBLを含む。各ブロックBLは、NCプログラムの行の始まりから終わりまでの記載に対応し、工作機械200に対して各種の指令を行なっている。
【0054】
複数のブロックBLは、複数の第1指令ブロックBLaを含む。第1指令ブロックBLaは、工作機械200における工具主軸、ワーク主軸、刃物台またはテーブル等の移動体の軸移動を制御対象としており、たとえば、直線移動または円弧補間を指令する。第1指令ブロックBLaは、G01(直線切削送り)、G02(曲線切削送り/時計回り)およびG03(曲線切削送り/反時計回り)等のGコードを用いて記載されている。
図2中では、第1指令ブロックBLaが、軸移動の指令点(X軸、Y軸およびZ軸の座標値)と、速度(F値)とから構成されるパラメータを含む。
【0055】
複数のブロックBLは、複数の第2指令ブロックBLbをさらに含む。第2指令ブロックBLbは、工作機械200における主軸の回転、自動工具交換装置(ATC)による工具交換またはクーラントのON/OFF等の入出力を制御対象としている。第2指令ブロックBLbは、MコードまたはTコードを用いて記載されている。
【0056】
続いて、本実施の形態における情報処理装置100の構成について説明する。
図3は、この発明の実施の形態1における情報処理装置を示す機能ブロック図である。
図4は、
図1中の工作機械を示す機能ブロック図である。
図5は、誤差データのイメージを示す図である。
【0057】
図1から
図5を参照して、情報処理装置100の各構成要素は、CPU(Central Processing Unit)および各種コンピュータプロセッサなどの演算器、メモリおよびストレージなどの記憶装置、ならびに、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアとによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、または、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。
【0058】
図3に示されるように、情報処理装置100は、プログラム作成部110を有する。プログラム作成部110は、工作機械200で使用されるNCプログラムPを作成する。
【0059】
プログラム作成部110は、メインプロセッサ部111と、ポストプロセッサ部112とを有する。メインプロセッサ部111は、CAD装置より取得したCADデータに基づいて、工具位置データ(Cutter Location Data:以下、「CLデータ」という)を生成する。ポストプロセッサ部112は、メインプロセッサ部111で生成されたCLデータに基づいて、NCプログラムPを生成する。ポストプロセッサ部112は、生成したNCプログラムPを、後出の送信部161およびプログラム解析部121に出力する。
【0060】
情報処理装置100は、通信部160をさらに有する。通信部160は、情報処理装置100および工作機械200の間で通信可能に構成されている。通信部160における通信手段は、無線であってもよいし、有線であってもよい。一例として、工作機械200および情報処理装置100の通信規格には、EtherNET(登録商標)が採用される。
【0061】
通信部160は、送信部161と、受信部162とを有する。送信部161は、ポストプロセッサ部112により生成されたNCプログラムPを工作機械200に送信する。受信部162は、後出の工作機械200のモニタリング部246により計測された実行実時間を含む情報Inf1を受信する。
【0062】
なお、本実施の形態における情報処理装置100は、上記のプログラム作成機能を備えない構成であってもよい。この場合に、情報処理装置100および工作機械200は、CAM装置で作成されたNCプログラムを外部から取得してもよいし、手動または対話方式で作成されたNCプログラムを外部から取得してもよい。本発明が適用されるNCプログラムの作成方法は、特に限定されない。
【0063】
図4に示されるように、工作機械200は、数値制御装置210と、機械制御装置220と、各種の機械要素230とをさらに有する。
【0064】
数値制御装置210は、工作機械200の動作を数値制御する。数値制御装置210は、NCプログラムを解釈するNCインタプリタ211と、工作機械200の制御指令を機械制御装置220に出力する指令出力部212とを有する。機械制御装置220は、指令出力部212からの制御指令に基づいて、機械要素230を制御する。機械要素230としては、たとえば、工具またはワークを回転させるための回転用モータ、または、工具主軸、ワーク主軸、刃物台もしくはテーブル等の移動体を移動させるための送り用モータが挙げられる。
【0065】
操作盤240は、モニタリング部246を有する。モニタリング部246は、指令出力部212と通信して、NCプログラムPの進行をモニタリングする。モニタリング部246は、NCプログラムPの進行を表示部241に表示する。モニタリング部246は、NCプログラムPの進行をモニタリングする間、NCプログラムPにおける各第1指令ブロックBLaを実行した際の実際の実行に要する時間(実行実時間)を計測する。工作機械200は、NCプログラムPと、上記の各第1指令ブロックBLaの実行実時間とを対応付けた情報Inf1を、情報処理装置100に送信する。
【0066】
なお、各第1指令ブロックBLaの実行実時間の計測手段は、特に限定されない。たとえば、NCプログラムのブロック毎に特定の指令を書き込むことによって、ブロック間の時間を計測する機能が利用されてもよい。
【0067】
図3に示されるように、情報処理装置100は、算出部120と、表示部130と、記憶部150とをさらに有する。算出部120は、ポストプロセッサ部112より入力されたNCプログラムPの実行時間を算出する。表示部130は、液晶ディスプレイ、有機ELディスプレイ、または、その他の表示機器から構成されている。表示部130は、算出部120により算出されたNCプログラムPの実行時間を表示する。
【0068】
記憶部150は、後出の誤差データDa1およびタイムテーブルTを記憶している。記憶部150は、情報処理装置100の制御プログラムをさらに記憶している。制御プログラムは、情報処理装置100にNCプログラムPの実行時間を算出させるためのプログラムである。
【0069】
算出部120は、プログラム解析部121と、実行時間予測部122と、実行時間補正部123と、実行時間算出部124と、実行時間積算部126とを有する。
【0070】
プログラム解析部121は、ポストプロセッサ部112より入力されたNCプログラムPを解析する。プログラム解析部121は、NCプログラムPに含まれる複数のブロックBLのうちの第1指令ブロックBLaを実行時間予測部122に出力し、NCプログラムPに含まれる複数のブロックBLのうちの第2指令ブロックBLbを実行時間算出部124に出力する。
【0071】
実行時間予測部122は、NCプログラムPに含まれる複数のブロックBLのうちの各第1指令ブロックBLaの実行時間(以下、「実行予測時間」ともいう)を算出する。第1指令ブロックBLaは、軸移動を指令するプログラムであって、Gコードを用いて記載されている。実行時間予測部122は、軸移動の指令点と、速度(送り速度)とを含む第1パラメータに基づいて、各第1指令ブロックBLaの実行予測時間を算出する。軸移動の指令点は、移動前後の指令点(実行時間を算出する第1指令ブロックBLaの1つ手前の第1指令ブロックBLaに規定される指令点、および、実行時間を算出する第1指令ブロックBLaに規定される指令点)に対応している。第1パラメータは、軸移動の加速度をさらに含んでもよい。実行時間予測部122は、算出した各第1指令ブロックBLaの実行予測時間を、実行時間補正部123と、後出の誤差データ更新部140とに出力する。
【0072】
実行時間補正部123は、記憶部150に記憶された誤差データDa1に基づいて、実行時間予測部122で算出された実行予測時間を補正する。
【0073】
図5に示されるように、誤差データDa1は、工作機械200におけるモニタリング部246で計測された各第1指令ブロックBLaの実行実時間と、実行時間予測部122で算出された各第1指令ブロックBLaの実行予測時間との間の誤差(((実行予測時間/実行実時間)-1)×100)%に関する。
【0074】
誤差データDa1は、軸移動の速度の範囲毎に作成されている。一例として、誤差データDa1は、0を越え600mm/min以下の範囲、600mm/minを越え1200mm/min以下の範囲、および、1200mm/minを越え2400mm/min以下の速度範囲毎に作成されている。
【0075】
誤差データDa1では、軸移動の速度の各範囲において、第1指令ブロックBLaの実行実時間と、第1指令ブロックBLaの実行予測時間との間の誤差の平均値が算出されている。ここで算出された誤差の平均値は、工作機械200がNCプログラムPに含まれる各種の第1指令ブロックBLaに従って動作した場合に、実行時間予測部122で算出される実行予測時間と、実際の実行に要する実行実時間との間で生じる差の傾向を表わしている。
【0076】
実行時間補正部123は、誤差データDa1における誤差の平均値を用いて、実行時間予測部122で算出された実行予測時間を補正する。たとえば、誤差データDa1に示される誤差の平均値が-5%である場合、第1指令ブロックBLaの実行予測時間は、実行予測時間/0.95の計算式により補正される。
【0077】
なお、誤差データDa1は、さらに、G01(直線切削送り)、G02(曲線切削送り/時計回り)およびG03(曲線切削送り/反時計回り)等のGコードの種類毎に作成されてもよい。軸移動の速度および指令の種類は、実行時間予測部122で算出される実行予測時間と、実際の実行に要する実行実時間との間で生じる差の傾向に影響を与える可能性があるため、各第1指令ブロックBLaの実行予測時間の補正をより正確に実行することができる。
【0078】
図3に示されるように、実行時間補正部123は、補正した各第1指令ブロックBLaの実行時間を実行時間積算部126に出力する。
【0079】
実行時間算出部124は、NCプログラムPに含まれる複数のブロックBLのうちの各第2指令ブロックBLbの実行時間を算出する。第2指令ブロックBLbは、MコードまたはTコードを用いて記載されるNCプログラムである。
【0080】
実行時間算出部124は、記憶部150に記憶されたタイムテーブルTに基づいて、各第2指令ブロックBLbの実行時間を算出する。より具体的には、実行時間算出部124は、記憶部150からタイムテーブルTを読み出し、タイムテーブルTに各第2指令ブロックBLbに規定される指令を照らし合わせることによって、各第2指令ブロックBLbの実行時間の出力を得る。
【0081】
タイムテーブルTは、第2指令ブロックBLbで規定される指令毎に第2指令ブロックBLbの実行時間(たとえば、M06で指令される工具交換の実行に要する時間)を示している。NCプログラムがMコードおよびTコードを用いて記載される第2指令ブロックBLbは、一定の時間で実行される。このため、情報処理装置100のメーカーが、各種の指令を規定した第2指令ブロックBLbをランニングプログラムとして作成し、そのランニングプログラムを用いて工作機械200を実行させることによって、各第2指令ブロックBLbの実行時間を計測する。かかる計測に基づいて作成されたタイムテーブルTが、予め記憶部150に格納されている。
【0082】
実行時間算出部124は、算出した各第2指令ブロックBLbの実行時間を実行時間積算部126に出力する。
【0083】
実行時間積算部126は、実行時間補正部123より入力された各第1指令ブロックBLaの実行時間と、実行時間算出部124より入力された各第2指令ブロックBLbの実行時間とを積算することによって、NCプログラムPの実行時間を算出する。算出されるNCプログラムPの実行時間は、ワーク加工の一工程であってもよいし、ワーク加工の全工程であってもよい。実行時間積算部126は、算出したNCプログラムの実行時間を表示部130に出力する。
【0084】
情報処理装置100は、誤差データ更新部140をさらに有する。誤差データ更新部140は、工作機械200におけるモニタリング部246で計測された各第1指令ブロックBLaの実行実時間と、実行時間予測部122で算出された各第1指令ブロックBLaの実行予測時間とが新たに入力されることによって、誤差の平均値を更新する。
【0085】
初期データとしての誤差データDa1を作成する場面においては、ランニングプログラムを用いて工作機械200を実行させることにより、ランニングプログラムに含まれる各第2指令ブロックBLbの実行実時間のデータが収集され、かかるランニングプログラムを実行時間予測部122に入力することにより、ランニングプログラムに含まれる各第1指令ブロックBLaの実行予測時間のデータが収集される。誤差データ更新部140は、これらデータに基づいて、誤差データDa1を作成する。
【0086】
なお、誤差データDa1およびタイムテーブルTを記憶する記憶部150の機能は、サーバー等の外部機器により実現されてもよい。また、誤差データ更新部140の機能は、情報処理装置100とは別のCPUにより実行されてもよい。
【0087】
図6は、
図1中の工作機械における軸移動の経路において、スムージング機能が発動された場合の変化を示す図である。
【0088】
図6を参照して、指令点は、プログラム作成部110において算出される軸移動の座標値であり、この座標値は、NCプログラムの第1指令ブロックBLaに記載されている。複数の第1指令ブロックBLaは、指令点0→指令点1→指令点2→指令点3を順に移動する軸移動を指令している。この場合に、指令点間に適切な補間点を設けることによって、滑らかな軸移動を実現するスムージング機能が工作機械200に備わっている。スムージング機能は、NCプログラムに特定のGコードを記載することにより発動可能である。スムージング機能を発動させることによって、ワークの表面性状が改善され、特に自由曲線などを円滑にすることができる。
【0089】
一方、スムージング機能は、軸移動の経路に影響を与えるため、NCプログラムの実行時間にも影響を与える。しかしながら、スムージング機能は、各NCメーカーが独自に作成した非公開のアルゴリズムによるため、スムージング機能により設定された補間点を加味して、NCプログラムの実行時間を算出することは困難である。
【0090】
これに対して、本実施の形態における情報処理装置100においては、軸移動の指令点と、速度とを含む第1パラメータに基づいて算出された各第1指令ブロックBLaの実行予測時間を、各第1指令ブロックBLaの実行実時間を含む誤差データDa1に基づいて補正している。このように算出された第1指令ブロックBLaの実行時間は、軸移動の実際の経路を加味しているため、NCプログラムPの実行時間を正確に算出することができる。
【0091】
以上に説明した、この発明の実施の形態1における情報処理装置100の構成をまとめると、本実施の形態における情報処理装置100は、複数のブロックBLを含むNCプログラムPの実行時間を算出する。情報処理装置100は、複数のブロックBLの中の第1ブロック(第1指令ブロックBLaに対応)に対して工作機械200で第1ブロックを実行した際の実際の実行に要する第1実行時間(実行実時間)と、複数のブロックBLの中の第2ブロック(第1ブロックとは別の第1指令ブロックBLaに対応)に対して工作機械200で第2ブロックを実行した際の実際の実行に要する第2実行時間(実行実時間)とを含む複数のブロックBLに対応した実行時間に基づいて、NCプログラムPの実行時間を算出する算出部120を備える。
【0092】
複数のブロックBLは、軸移動を指令し、第1ブロックおよび第2ブロックが含まれる複数の第1指令ブロックBLaを含む。算出部120は、軸移動の指令点および速度を含む第1パラメータに基づいて算出された各第1指令ブロックBLaに対応した実行予測時間と、各第1指令ブロックBLaを実行した際の実際の実行に要する実行時間(実行実時間)との間の誤差に関する誤差データDa1に基づいて、NCプログラムPの実行時間を算出する。
【0093】
また、本実施の形態における情報処理装置100の制御プログラムは、複数のブロックBLを含むNCプログラムPの実行時間を算出する。制御プログラムは、情報処理装置100に、(i)複数のブロックBLの中の第1ブロック(第1指令ブロックBLaに対応)に対して工作機械200で第1ブロックを実行した際の実際の実行に要する第1実行時間(実行実時間)と、(ii)複数のブロックBLの中の第2ブロック(第1ブロックとは別の第1指令ブロックBLaに対応)に対して工作機械200で第2ブロックを実行した際の実際の実行に要する第2実行時間(実行実時間)との入力を受け付けるステップと、第1実行時間および第2実行時間を含む複数のブロックBLに対応した実行時間に基づいて、NCプログラムの実行時間を算出するステップとを実行させる。
【0094】
このように構成された、この発明の実施の形態1における情報処理装置100およびその制御プログラムによれば、NCプログラムPの実行時間の算出において、工作機械200でNCプログラムPの各第1指令ブロックBLaを実行した際の実際の実行に要する実行時間(実行実時間)を加味するため、NCプログラムPの実行時間を正確に算出することができる。
【0095】
(実施の形態2)
図7は、この発明の実施の形態2における情報処理装置を示す機能ブロック図である。
図8は、
図1中の工作機械における軸移動の経路を示す図である。
図9は、実行時間の算出に用いられる第2パラメータおよび第3パラメータを示す図である。
図10は、実行時間データのイメージを示す図である。
【0096】
本実施の形態における情報処理装置は、実施の形態1における情報処理装置100と比較して、基本的には、同様の構成を備える。以下、重複する構成については、その説明を繰り返さない。
【0097】
図7から
図10を参照して、本実施の形態では、工作機械200が、NCプログラムPおよびNCプログラムPの実行時の各種設定値(ワークオフセット値および工具長)と、モニタリング部246により計測された実行実時間とを対応付けた情報Inf2を、情報処理装置100に出力する。
【0098】
算出部120は、プログラム解析部121と、実行時間算出部127と、実行時間算出部124と、実行時間積算部126とを有する。
【0099】
プログラム解析部121は、NCプログラムPに含まれる複数のブロックBLのうちの第1指令ブロックBLaを実行時間算出部127に出力し、NCプログラムPに含まれる複数のブロックBLのうちの第2指令ブロックBLbを実行時間算出部124に出力する。
【0100】
実行時間算出部127は、記憶部150に記憶された実行時間データDa2に基づいて、各第1指令ブロックBLaの実行時間を算出する。より具体的には、実行時間算出部127は、記憶部150から実行時間データDa2を読み出し、実行時間データDa2に各第1指令ブロックBLaに対応する後出の第2パラメータを入力することで、各第1指令ブロックBLaの実行時間の出力を得る。
【0101】
実行時間算出部127は、算出した各第1指令ブロックBLaの実行時間を実行時間積算部126に出力する。実行時間算出部124は、記憶部150に記憶されたタイムテーブルTに基づいて、各第2指令ブロックBLbの実行時間を算出する。実行時間算出部124は、算出した各第2指令ブロックBLbの実行時間を実行時間積算部126に出力する。
【0102】
実行時間積算部126は、実行時間算出部127より入力された各第1指令ブロックBLaの実行時間と、実行時間算出部124より入力された各第2指令ブロックBLbの実行時間とを積算することによって、NCプログラムPの実行時間を算出する。
【0103】
図8に示されるように、第1指令ブロックBLaであるNCブロックd0、NCブロックd1、NCブロックd2、NCブロックd3、NCブロックd4、NCブロックd5…は、G01のコードにより、指令点0→指令点1→指令点2→指令点3→指令点4→指令点5…を順に移動する軸移動を指令している。
【0104】
ここで、NCブロックd3の実行時間を算出する場合を想定すると、NCブロックd3が、実行時間を算出する対象である特定ブロックに対応し、NCブロックd0、NCブロックd1、NCブロックd2、NCブロックd4およびNCブロックd5が、特定ブロックの前後に実行される複数の前後ブロックに対応している。
【0105】
実行時間データDa2は、工作機械200からの情報Inf2に基づいて作成されている。実行時間データDa2は、軸移動の指令の種類毎に作成されている。軸移動の指令の種類は、各第1指令ブロックBLaに記載されているGコードの種類(G01、G02またはG03)に対応している。実行時間データDa2においては、軸移動の指令の種類(Gコード)毎に、第2パラメータと、各第1指令ブロックBLaの実行実時間(T)とが対応付けられている。
【0106】
第2パラメータは、軸移動の指令点(x,y,z,i,j,k)と、軸移動の速度(F)とを含む。ここで、(x,y,z)は、指令点におけるX軸、Y軸およびZ軸の座標値を表わし、(i,j,k)は、工具姿勢(工具の回転軸の方向ベクトル)を表わしている。
図8および
図9中のNCブロックd3の実行時間、すなわち、指令点2から指令点3までの軸移動に要する時間を算出する場合において、第2パラメータに対応する軸移動の指令点は、NCブロックd2およびNCブロックd3に規定され、軸移動の速度は、NCブロックd3に規定されている。
【0107】
なお、軸移動の指令の種類が、円弧補間を指令するG02またはG03である場合、軸移動の指令点は、上記の(x,y,z)の座標値と、円弧中心の座標値との組合わせによって表わされる。
【0108】
本実施の形態では、第2パラメータが、特定ブロックに規定される指令点と、複数の前後ブロックに規定される指令点とを含む。指令点の追加によって定まる軸移動の経路は、実行時間を算出する軸移動の経路の前後で同じ数であることが好ましい。より具体的には、
図8および
図9中のNCブロックd3の実行時間を算出する場合において、NCブロックd0、NCブロックd1、NCブロックd4およびNCブロックd5に規定される指令点が追加されている。NCブロックd0およびNCブロックd1に規定される指令点が追加されることによって、指令点0から指令点1までの軸移動の経路と、指令点1から指令点2までの軸移動の経路との2つの経路が定まり、NCブロックd4およびNCブロックd5に規定される指令点が追加されることによって、指令点3から指令点4までの軸移動の経路と、指令点4から指令点5までの軸移動の経路との2つの経路が定まっている。
【0109】
このような構成によれば、スムージング機能においては、実行時間を算出する経路の前後の軸移動の経路が、実行時間を算出する経路に影響を与える。このため、第2パラメータに、特定ブロックに規定される指令点と、複数の前後ブロックに規定される指令点とを含めることによって、各第1指令ブロックBLaの実行時間をより正確に算出することができる。
【0110】
第2パラメータは、ワークオフセット値(cx,cy,cz,ca,cc)および工具長(h)の少なくともいずれか一方をさらに含んでもよい。ここで、(ca,cc)は、それぞれ、X軸およびZ軸の回転軸のオフセット値を表わしている。
【0111】
工具先端点制御では、ユーザは、F値を指令したときにワークに対する工具の速度を期待する。しかしながら、回転テーブルに搭載されたワークを主軸に保持された工具で加工する場合を想定すると、ワークの回転中心から近い位置でワークを加工する時のワークおよび工具の相対的な回転速度が、ワークの回転中心から遠い位置でワークを加工する時のワークおよび工具の相対的な回転速度よりも大きくなる。このため、
図4中の数値制御装置210が、自動的に主軸の速度を制限する制御を行なう場合がある。そこで、第2パラメータにワークオフセット値を含めることによって、ワークおよび主軸の位置関係を把握可能とし、軸移動の実行時間の算出に上記制御を加味することができる。
【0112】
また、工具の回転軸に直交する平面内で旋回可能な主軸を想定した場合に、主軸に保持される工具の長さが大きいと、工具先端点が大きく旋回移動することになる。このため、このため、
図4中の数値制御装置210が、自動的に主軸の旋回速度を制限する制御を行なう場合がある。そこで、第2パラメータに工具長を含めることによって、主軸に保持される工具長さを把握可能とし、軸移動の実行時間の算出に上記制御を加味することができる。
【0113】
図10に示されるように、実行時間データDa2においては、上記の第2パラメータの各要素に対して規定される所定範囲と、第2パラメータの各要素がその所定範囲を満たす場合の各第1指令ブロックBLaの実行実時間の平均値とが対応付けられている。
【0114】
図10中では、
図8および
図9中のNCブロックd3の実行時間を算出する場合が想定されている。RangeSetAでは、NCブロックd0に規定される指令点0の座標x0が、x
0A<x
0Bの関係を満たすx
0Aに対応し、NCブロックd0に規定される指令点0の座標y0が、y
0B<y
0C<y
0Dの関係を満たすy
0Cに対応し、NCブロックd0に規定される指令点0の座標z0が、z
0A<z
0B<z
0Cの関係を満たすz
0Bに対応し、NCブロックd0に規定される指令点0における工具姿勢のベクトル座標i0が、i
0A<i
0Bの関係を満たすi
0Aに対応し、NCブロックd0に規定される指令点0における工具姿勢のベクトル座標j0が、j
0B<j
0C<j
0Dの関係を満たすj
0Cに対応し、NCブロックd0に規定される指令点0における工具姿勢のベクトル座標k0が、k
0A<k
0B<k
0Cの関係を満たすk
0Bに対応し、NCブロックd5に規定される指令点5の座標z5が、z
0A<z
0Bの関係を満たすz
0Aに対応し、NCブロックd3に規定される速度Fが、F
A<F
Bの関係を満たすF
Aに対応する第2パラメータが分類されている(説明を省略しているが、上記以外の第2パラメータについても、同様に範囲が規定されている)。この場合に、RangeSetAに規定された第2パラメータの範囲を満たす第1指令ブロックBLaの実行実時間の平均値が、RangeSetAにおける第1指令ブロックBLaの実行実時間TAとして算出されている。
【0115】
また、RangeSetBでは、RangeSetAとは異なる範囲の組み合わせが規定されている。このように互いに異なる範囲が規定された複数のRangeSetが準備されており、各RangeSetにおいて第1指令ブロックBLaの実行実時間の平均値が算出されている。
【0116】
実行時間算出部127は、各第1指令ブロックBLaに対応する第2パラメータを、
図10中のRangeSetのテーブルに照らし合わせ、その第2パラメータが範囲を満たすRangeSetを特定することによって、各第1指令ブロックBLaの実行実時間Tを得る。
【0117】
図7に示されるように、本実施の形態における情報処理装置は、実施の形態1における誤差データ更新部140に替えて、実行時間データ更新部146を有する。実行時間データ更新部146は、工作機械200におけるモニタリング部246で計測された各第1指令ブロックBLaの実行実時間と、各第1指令ブロックBLaに対応する第2パラメータとが新たに入力されることによって、RangeSetにおける第1指令ブロックBLaの実行実時間の平均値を更新する。
【0118】
なお、初期データとしての実行時間データDa2を作成する場面においては、ランニングプログラムを用いて工作機械200を実行させることにより、ランニングプログラムに含まれる各第1指令ブロックBLaの実行実時間と、各第1指令ブロックBLaに対応する第2パラメータとを対応付けたデータが収集される。実行時間データ更新部146は、これらデータに基づいて、実行時間データDa2を作成する。
【0119】
以上に説明した、この発明の実施の形態2における情報処理装置の構成をまとめると、本実施の形態では、NCプログラムの複数のブロックBLが、軸移動を指令する複数の第1指令ブロックBLaを含む。算出部120は、軸移動の指令の種類毎に作成され、軸移動の指令点および速度を含む第2パラメータと、各第1指令ブロックBLaを実行した際の実際の実行に要する実行時間(実行実時間)との対応を示す実行時間データDa2に基づいて、NCプログラムPの実行時間を算出する。
【0120】
以上に説明した、この発明の実施の形態2における情報処理装置によれば、実施の形態1における情報処理装置100と同様の効果を奏することができる。
【0121】
(実施の形態3)
図11は、この発明の実施の形態3における情報処理装置を示す機能ブロック図である。
図12は、時間推定モデルを学習させるための処理を示す概略図である。
【0122】
本実施の形態における情報処理装置は、実施の形態1における情報処理装置100と比較して、基本的には、同様の構成を備える。以下、重複する構成については、その説明を繰り返さない。
【0123】
図11および
図12を参照して、本実施の形態では、工作機械200が、NCプログラムPおよびNCプログラムPの実行時の各種設定値(ワークオフセット値および工具長)と、モニタリング部246により計測された実行実時間とを対応付けた情報Inf3を、情報処理装置100に出力する。
【0124】
算出部120は、プログラム解析部121と、実行時間算出部128と、実行時間算出部124と、実行時間積算部126とを有する。
【0125】
プログラム解析部121は、NCプログラムPに含まれる複数のブロックBLのうちの第1指令ブロックBLaを実行時間算出部128に出力し、NCプログラムPに含まれる複数のブロックBLのうちの第2指令ブロックBLbを実行時間算出部124に出力する。
【0126】
実行時間算出部128は、学習済みの実行時間推定モデルDa3に基づいて、各第1指令ブロックBLaの実行時間を算出する。実行時間算出部128は、算出した各第1指令ブロックBLaの実行時間を実行時間積算部126に出力する。実行時間算出部124は、記憶部150に記憶されたタイムテーブルTに基づいて、各第2指令ブロックBLbの実行時間を算出する。実行時間算出部124は、算出した各第2指令ブロックBLbの実行時間を実行時間積算部126に出力する。
【0127】
実行時間積算部126は、実行時間算出部127より入力された各第1指令ブロックBLaの実行時間と、実行時間算出部124より入力された各第2指令ブロックBLbの実行時間とを積算することによって、NCプログラムPの実行時間を算出する。
【0128】
図9および
図12に示されるように、実行時間推定モデルDa3は、各第1指令ブロックBLaに対応する第3パラメータを入力とし、各第1指令ブロックBLaの実行時間を出力とする人工知能モデルである。実行時間算出部128は、記憶部150から実行時間推定モデルDa3を読み出し、実行時間推定モデルDa3に第3パラメータを入力することによって、各第1指令ブロックBLaの実行時間の出力を得る。
【0129】
実行時間推定モデルDa3は、ニューラルネットワークを含む。実行時間推定モデルDa3は、たとえば、畳み込みニューラルネットワーク(CNN)などのディープニューラルネットワークを含む。
【0130】
実行時間推定モデルDa3は、軸移動の指令の種類(Gコード)毎に作成されている。第3パラメータは、実施の形態2における第2パラメータに対応している。より具体的には、第3パラメータは、軸移動の指令点および速度を1次データとして含む。さらに、第3パラメータに、ワークオフセット値もしくは工具長といった特徴量、または、軸移動の加速度が、2次データとして追加されてもよく、この場合、実行時間推定モデルDa3を用いた実行時間の予測精度を高めることができる。
【0131】
本実施の形態における情報処理装置は、実施の形態1における誤差データ更新部140に替えて、機械学習部147を有する。機械学習部147は、工作機械200からの情報Inf3に基づいて、上記の第3パラメータと、第1指令ブロックBLaの実行時間との相関関係を機械学習する。
【0132】
以下において、機械学習部147により実行時間推定モデルDa3を学習させるための処理について説明する。
【0133】
まず、工作機械200を動作させるためのNCプログラグをランニングプログラムとして作成する。ランニングプログラムは、第3パラメータの各要素を様々に変更させた複数の第1指令ブロックBLaを含む。作成したランニングプログラムを工作機械200に入力する。
【0134】
次に、工作機械200をランニングプログラムに従って動作させるととともに、各第1指令ブロックBLaの実行実時間を計測する。各第1指令ブロックBLaに対応する第3パラメータと、計測した各第1指令ブロックBLaの実行実時間とを対応付けた学習用データセットを作成する。機械学習部147は、工作機械200から学習用データセットを取得する。
【0135】
機械学習部147は、記憶部150から実行時間推定モデルDa3を読み出す。実行時間推定モデルDa3は、
図12に示されるニューラルネットワークを含む。ニューラルネットワークは、入力層と、中間層と、出力層とを含む。入力層、中間層および出力層の各層は、1または複数のニューロンを有する。各層のニューロンの数は、適宜設定され得る。互いに隣接する層のニューロン同士は、結合されており、各結合には重み(結合荷重)が設定されている。ニューロンの結合数は、適宜設定され得る。各ニューロンには、閾値が設定されており、各ニューロンへの入力値と重みとの積の和が閾値を超えているか否かによって、各ニューロンの出力値が決定される。
【0136】
機械学習部147は、工作機械200から取得した各第1指令ブロックBLaに対応する第3パラメータを入力層に入力し、出力層から各第1指令ブロックBLaの実行時間を出力する。たとえば、機械学習部147は、第3パラメータを入力層の入力として用いて、ニューラルネットワークの順方向の演算処理を行なう。これにより、機械学習部147は、ニューラルネットワークの出力層から出力される出力値として、各第1指令ブロックBLaの実行時間を推定した値を得る。
【0137】
機械学習部147は、工作機械200から取得した各第1指令ブロックBLaの実行実時間(真値)に対する各第1指令ブロックBLaの実行時間の推定値の誤差を算出する。機械学習部147は、かかる誤差の算出を通じて、同じ第3パラメータが入力されたならば真値により近い出力値が得られるように、各ニューロン間の結合の重み、および、各ニューロンの閾値などの実行時間推定モデルDa3のパラメータを設定する。
【0138】
機械学習部147は、最終的には、出力する第1指令ブロックBLaの実行時間の推定値が工作機械200から取得する各第1指令ブロックBLaの実行実時間と一致するまで上記の機械学習のステップを繰り返す。これにより、学習済みの実行時間推定モデルDa3が作成される。
【0139】
なお、上記では、学習済みの実行時間推定モデルDa3の作成時のステップを説明したが、実行時間推定モデルDa3の更新時にも同様のステップが実行される。ユーザによる工作機械200の使用に伴って、機械学習部147は、工作機械200から新たな情報Inf3を取得する。機械学習部147は、情報Inf3に基づいて、第3パラメータと、各第1指令ブロックに対応した実行時間との相関関係を再学習し、実行時間推定モデルDa3を更新する。
【0140】
以上に説明した、この発明の実施の形態3における情報処理装置の構成をまとめると、本実施の形態では、複数のブロックBLは、軸移動を指令する複数の第1指令ブロックBLaを含む。算出部120は、軸移動の指令の種類毎に作成され、軸移動の指令点および速度を含む第3パラメータを入力とし、各第1指令ブロックBLaに対応した実行時間を出力とする学習済みの実行時間推定モデルDa3に基づいて、NCプログラムPの実行時間を算出する。
【0141】
以上に説明した、この発明の実施の形態3における情報処理装置によれば、実施の形態1における情報処理装置100と同様の効果を奏することができる。
【0142】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0143】
100 情報処理装置、110 プログラム作成部、111 メインプロセッサ部、112 ポストプロセッサ部、120 算出部、121 プログラム解析部、122 実行時間予測部、123 実行時間補正部、124,127,128 実行時間算出部、126 実行時間積算部、130,241 表示部、140 誤差データ更新部、146 実行時間データ更新部、147 機械学習部、150 記憶部、160 通信部、161 送信部、162 受信部、200 工作機械、210 数値制御装置、211 インタプリタ、212 指令出力部、220 機械制御装置、230 機械要素、240 操作盤、242 操作部、246 モニタリング部、BL ブロック、BLa 第1指令ブロック、BLb 第2指令ブロック、Da 参照データ、Da1 誤差データ、Da2 実行時間データ、Da3 実行時間推定モデル、Inf1,Inf2,Inf3 情報、P プログラム、T タイムテーブル。
【要約】
【課題】NCプログラムの実行時間を正確に算出することが可能な情報処理装置と、そのような情報処理装置の制御プログラムと、を提供する。
【解決手段】情報処理装置100は、複数のブロックを含むNCプログラムの実行時間を算出する。情報処理装置100は、複数のブロックの中の第1ブロックに対して工作機械で第1ブロックを実行した際の実際の実行に要する第1実行時間と、複数のブロックの中の第2ブロックに対して工作機械で第2ブロックを実行した際の実際の実行に要する第2実行時間とを含む複数のブロックに対応した実行時間に基づいて、NCプログラムの実行時間を算出する算出部120を備える。
【選択図】
図3