(57)【要約】  加工時間算出装置（１）は、互いに独立して制御可能な系統（１０１，１０２，１０３）を複数有する工作機械（１００）における各系統（１０１，１０２，１０３）の運転時刻を示す運転スケジュール情報（ＳＩ）を算出する。加工時間算出装置（１）は、系統サイクルタイム算出部（１４）を備える。系統サイクルタイム算出部（１４）は、工作機械（１００）の加工プログラム（ＰＧ）に記述された複数の系統（１０１，１０２，１０３）間の待ち合わせ指令に基づき、複数の系統（１０１，１０２，１０３）間の待ち合わせのタイミングを維持したまま各系統（１０１，１０２，１０３）の加工プログラム（ＰＧ）のブロックの運転開始時刻を調整した運転スケジュール情報（ＳＩ）を算出する。
2017221309.tif 000002
【特許請求の範囲】
【請求項１】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置であって、
前記工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の前記加工プログラムのブロックの運転開始時刻を調整した運転スケジュール情報を算出する系統サイクルタイム算出部を備える
ことを特徴とする加工時間算出装置。
【請求項２】
前記系統サイクルタイム算出部は、
各系統の複数のブロック間の前記運転開始時刻の時間差が短くなるように前記ブロックの運転開始時刻を調整する
ことを特徴とする請求項１に記載の加工時間算出装置。
【請求項３】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置であって、
前記工作機械の加工プログラムに基づいて前記加工プログラムの各ブロックの実行時間を算出するブロック実行時間算出部と、
前記加工プログラムに記述された複数の系統間の待ち合わせ指令を解析して、前記待ち合わせ指令が関連付ける複数の系統間のブロックを示す待ち合わせ指令情報を出力する待ち合わせ指令解析部と、
前記実行時間と前記待ち合わせ指令情報とに基づいて、各系統の各ブロックの運転時刻を示すブロック運転時間情報と待ち合わせ時間とを算出し、前記待ち合わせ時間に応じて各ブロックのブロック運転時間情報を調整して、前記運転スケジュール情報を算出する系統サイクルタイム算出部と
を備えることを特徴とする加工時間算出装置。
【請求項４】
前記系統サイクルタイム算出部は、
各系統の前記待ち合わせ時間が短くなるように各ブロックの前記ブロック運転時間情報を調整する
ことを特徴とする請求項３に記載の加工時間算出装置。
【請求項５】
前記運転スケジュール情報とは、
各系統の運転開始時刻とサイクルタイム、各系統の運転開始時刻と運転終了時刻、及び各系統の運転終了時刻とサイクルタイムのうち、いずれか一つである
ことを特徴とする請求項３に記載の加工時間算出装置。
【請求項６】
前記ブロック運転時間情報とは、
前記加工プログラムの運転開始からの各ブロックの運転開始時刻、前記加工プログラムの運転開始からの各ブロックの運転終了時刻、及び前記加工プログラムの運転開始からの各ブロックの運転開始時刻までの累積時間のうち、いずれか一つである
ことを特徴とする請求項３に記載の加工時間算出装置。
【請求項７】
前記ブロック運転時間情報と前記運転スケジュール情報に基づいて作成されたタイムチャートを表示する表示部を有する
ことを特徴とする請求項３に記載の加工時間算出装置。
【請求項８】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出方法であって、
前記工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の前記加工プログラムのブロックの運転開始時刻を、各系統の複数のブロック間の前記運転開始時刻の時間差が短くなるように調整する
ことを特徴とする加工時間算出方法。
【請求項９】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出方法であって、
前記工作機械の加工プログラムに基づいて前記加工プログラムの各ブロックの実行時間を算出するブロック実行時間算出ステップと、
前記加工プログラムに記述された複数の系統間の待ち合わせ指令を解析して、前記待ち合わせ指令が関連付ける複数の系統間のブロックを示す待ち合わせ指令情報を出力する待ち合わせ指令解析ステップと、
前記実行時間と前記待ち合わせ指令情報とに基づいて、各系統の各ブロックの運転時刻を示すブロック運転時間情報と待ち合わせ時間とを算出し、待ち合わせ時間が短くなるようにブロック運転時間情報を調整して、前記運転スケジュール情報を算出する系統サイクルタイム算出ステップと
を備えることを特徴とする加工時間算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御工作機械における加工時間を算出する加工時間算出装置及び加工時間算出方法に関する。
【背景技術】
【０００２】
一般に、生産現場では効率的に生産を行うために、生産計画を立てている。生産計画は設備及び人員の生産能力、納期、及び在庫に基づいて立案される。機械加工の生産計画を立案する際に、生産計画の立案者は、設備の生産能力を加工物毎の加工時間によって表現する。そのため、生産計画を立案する際に、生産計画の立案者は、各加工物の加工時間を事前に把握しておく必要がある。また、生産計画の立案者は、正確な生産計画を立案するために、正確な加工時間を把握することが重要である。【０００３】
数値制御工作機械の加工時間をＮＣプログラムに基づいて算出する発明としては、特許文献１に開示されたものがある。特許文献１に開示された発明は、加工プログラムの１行（以下、ブロックと呼ぶ）毎に加工時間を把握する。特許文献１に開示された発明は、ブロックが軸移動指令を定める場合、移動量と移動速度とからブロックの実行時間を算出する。また、特許文献１に開示された発明は、ブロックが補助機能指令を定める場合、あらかじめ設定されている動作時間をブロックの実行時間とする。特許文献１に開示された発明は、各ブロックの実行時間を算出した後、ブロックの実行順に従って各ブロックの実行時間を加算することにより加工時間を算出している。【０００４】
独立して制御可能な系統を複数有する数値制御工作機械は、系統毎に独立してプログラムサーチ及びサイクルスタートを行うことが可能である。また、数値制御工作機械は、異なる系統の複数のブロックを同時に実行するために、待ち合わせ指令を用いた制御が行われている。数値制御工作機械は、同時に開始する複数のブロックに待ち合わせ指令を設定した場合、待ち合わせ指令を設定したブロック以前のブロックの実行が先に終了した系統が後に終了する系統の終了を待ち、各ブロックの実行開始のタイミングを合わせるように制御される。待ち合わせ指令により他の系統を待つ系統は、待ち合わせ時間が生じる。数値制御工作機械は、各系統の加工時間を算出するために、待ち合わせ時間を算出する必要がある。待ち合わせ時間を含む加工時間を算出する方法として、特許文献２に示された方法が開示されている。特許文献２に開示された方法は、待合せブロックが有る場合に、他の系統の同じ待合せブロックまでの経過時間を調べ、最も経過時間が長いものを待合せの次のブロックの開始時間として、次のブロックまでの経過時間を計算する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】実開平５−６３７４９号公報
【特許文献２】特許第４７３８５８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の加工時間算出方法は、複数の系統を有する数値制御工作機械においても、全ての系統で同時にサイクルスタートが行われ、かつ実行順にブロックの実行時間を加算して、加工時間を算出していた。そのため、従来の加工時間算出方法は、二つ以上の系統間で同時に実行開始されるブロックが存在すると、多くの場合、算出した加工時間に待ち合わせ時間を含んでいた。待ち合わせ時間は、同時に実行開始されるブロックの直前のブロックの実行を先に終了した一つの系統が、他の系統とともに同時に実行開始されるブロックを実行開始するまで待ち合わせする時間である。数値制御工作機械は、待ち合わせを行っている系統が加工を行うことができないため、待ち合わせ時間が長いと生産効率が低下する。そのため、従来の加工時間算出方法が算出した加工時間をもとに立てた生産計画は、生産効率が低下するという問題があった。【０００７】
本発明は、生産効率の高い生産計画を立案するために必要な工作機械の加工時間を算出することができる加工時間算出装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置である。加工時間算出装置は、系統サイクルタイム算出部を備える。系統サイクルタイム算出部は、工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の加工プログラムのブロックの運転開始時刻を調整した運転スケジュール情報を算出する。
【発明の効果】
【０００９】
本発明に係る加工時間算出方法は、生産効率の高い生産計画を立案するために必要な工作機械の加工時間を算出することができる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る加工時間算出装置の構成を示す機能ブロック図
【図２】図１に示された加工時間算出装置のプログラム記憶部に記憶された加工プログラムの一例を示す図
【図３】図１に示された加工時間算出装置のブロック実行時間算出部が生成したブロック実行時間テーブルを示す図
【図４】図１に示された加工時間算出装置の待ち合わせ指令解析部が出力した待ち合わせ指令情報を示す図
【図５】図１に示された加工時間算出装置の系統サイクルタイム算出部が算出した運転スケジュール情報を示す図
【図６】図１に示された加工時間算出装置のブロック実行時間算出部のブロック実行時間テーブルを生成する処理の流れを示すフローチャート
【図７】図１に示された加工時間算出装置の待ち合わせ指令解析部の待ち合わせ指令情報テーブルを出力する処理の流れを示すフローチャート
【図８】図１に示された加工時間算出装置の系統サイクルタイム算出部の運転スケジュール情報を算出する処理の流れを示すフローチャート
【図９】図８のステップＳ４２において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１０】図８のステップＳ４３において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１１】図８のステップＳ４６において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１２】図８のステップＳ４６を次の待ち合わせ指令に対して実行した後に算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１３】図８のステップＳ４６を更に次の待ち合わせ指令に対して実行した後に算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１４】図８のステップＳ４８において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１５】図８のステップＳ４９において遅延ブロックを決定する過程の一部の結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１６】図８のステップＳ４９において遅延ブロックが決定された結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１７】図８のステップＳ５１において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１８】図８のステップＳ４９において遅延ブロックが次に決定された結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図
【図１９】図８のステップＳ５３を実行した後のタイムチャートの一例を示す図
【図２０】実施の形態２に係る加工時間算出装置の構成を示す機能ブロック図
【図２１】各実施の形態に係る加工時間算出装置のハードウェア構成を示す図
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態に係る加工時間算出装置及び加工時間算出方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、実施の形態１に係る加工時間算出装置の構成を示す機能ブロック図である。図２は、図１に示された加工時間算出装置のプログラム記憶部に記憶された加工プログラムの一例を示す図である。図３は、図１に示された加工時間算出装置のブロック実行時間算出部が生成したブロック実行時間テーブルを示す図である。図４は、図１に示された加工時間算出装置の待ち合わせ指令解析部が出力した待ち合わせ指令情報を示す図である。図５は、図１に示された加工時間算出装置の系統サイクルタイム算出部が算出した運転スケジュール情報を示す図である。
【００１３】
実施の形態１に係る加工時間算出装置１及び加工時間算出方法は、互いに独立して制御可能な系統１０１，１０２，１０３を複数有する工作機械１００における各系統１０１，１０２，１０３の運転時刻を示す運転スケジュール情報ＳＩを算出する。なお、時刻は、基準からの時の流れの一点を示し、時間は、基準を設けることなく時間的に一定の長さを有するものを示している。
【００１４】
工作機械１００は、金属、木材、石材、又は樹脂に機械加工を施す装置である。工作機械１００は、数値制御（Numerical  Control）によって機械加工が自動化された数値制御工作機械である。工作機械１００は、工作機械１００によりワークを加工するための工具の動かし方について一連のフォーマット（例えば、Ｇコード）で記述された加工プログラムＰＧを実行する数値制御装置２００により制御される。数値制御装置２００は、ＣＰＵ（Central  Processing  Unit）と、ＲＡＭ（Random  Access  Memory）と、ＲＯＭ（Read  Only  Memory）、ハードディスクドライブ、ストレージデバイス又はこれらを組み合わせた加工プログラムＰＧを保持する記憶装置と、を備えるコンピュータにより構成される。
【００１５】
また、工作機械１００の系統１０１，１０２，１０３は、制御可能な軸を少なくとも１軸有しており、加工プログラムＰＧを実行する数値制御装置２００により互いに独立して制御可能である。なお、実施の形態１において、工作機械１００は、系統１０１，１０２，１０３を３つ備えるが、工作機械１００が備える系統１０１，１０２，１０３の数が３つに限定されない。本明細書は、工作機械１００が備える３つの系統同士を区別する際に、第１の系統１０１、第２の系統１０２、及び第３の系統１０３と記載し、区別しない際に、単に系統１０１，１０２，１０３と記載する。
【００１６】
加工時間算出装置１は、図１に示すように、工作機械１００を駆動して工作機械１００によりワークを加工するための工具の動かし方について記述した加工プログラムＰＧを記憶するプログラム記憶部１１と、加工プログラムＰＧを解析してブロック実行時間テーブルＴＢ１を生成するブロック実行時間算出部１２とを備える。なお、加工プログラムＰＧは、プログラム記憶部１１に記憶されることに加え、数値制御装置２００に記憶される。このために、図１は、プログラム記憶部１１に記憶された加工プログラムＰＧと数値制御装置２００に記憶された加工プログラムＰＧとを両矢印で関連付けて示している。加工時間算出装置１は、加工プログラムＰＧを解析して待ち合わせ指令情報である待ち合わせ指令情報テーブルＴＢ２を出力する待ち合わせ指令解析部１３と、ブロック実行時間テーブルＴＢ１と待ち合わせ指令情報テーブルＴＢ２とに基づいて運転スケジュール情報ＳＩを算出する系統サイクルタイム算出部１４と、算出された運転スケジュール情報ＳＩを表示する表示部１５とを備える。
【００１７】
プログラム記憶部１１が記憶した加工プログラムＰＧは、工作機械１００によりワークを加工するための工具の動かし方について一連のフォーマット（例えば、Ｇコード）で記述されたプログラムである。加工プログラムＰＧは、第１の系統１０１に対応する第一系統の加工プログラムＰＧ１と、第２の系統１０２に対応する第二系統の加工プログラムＰＧ２と、第３の系統１０３に対応する第三系統の加工プログラムＰＧ３とを備える。第一系統の加工プログラムＰＧ１、第二系統の加工プログラムＰＧ２、及び第三系統の加工プログラムＰＧ３は、指令コードが記述されたブロックＢを少なくとも一つ備える。実施の形態１において、ブロックＢは、各行の先頭から末尾の「；」までをブロックと呼び、１つのブロックＢは、いくつかのワードによって構成される。
【００１８】
ブロックＢは、軸移動指令、又は補助機能指令を定める。軸移動指令は、工具を動かす経路と経路に沿った速度とを定めている。補助機能指令は、工具を指定するＴコード、主軸の回転速度を定めるＳコード、主軸の回転開始、主軸の回転開始又は終了、クーラントの開始又は停止などを定めるＭコード、又は、待ち合わせ指令ＭＩである。待ち合わせ指令ＭＩは、系統１０１，１０２，１０３のうちの複数の動作を同時に開始するための指令である。系統１０１，１０２，１０３のうちの複数を同時に開始する動作は、同時に機械加工を行う同時加工、又は、複数の系統１０１，１０２，１０３間でワークを受け渡す受け渡し動作である。
【００１９】
加工プログラムＰＧは、図２に示すように、第１の系統１０１に対応しかつ第１の系統１０１を制御する第一系統の加工プログラムＰＧ１と、第２の系統１０２に対応しかつ第２の系統１０２を制御する第二系統の加工プログラムＰＧ２と、第３の系統１０３に対応しかつ第３の系統１０３を制御する第三系統の加工プログラムＰＧ３とを備える。
【００２０】
第一系統の加工プログラムＰＧ１は、ブロックＢとして、第１のブロックＢ１１と、第２のブロックＢ１２Ｌ１と、第３のブロックＢ１３と、第４のブロックＢ１４Ｌ３と、第５のブロックＢ１５とを備える。第一系統の加工プログラムＰＧ１は、第１のブロックＢ１１、第２のブロックＢ１２Ｌ１、第３のブロックＢ１３、第４のブロックＢ１４Ｌ３、及び第５のブロックＢ１５に定められる動作を順に第１の系統１０１に実行させる。
【００２１】
第二系統の加工プログラムＰＧ２は、ブロックＢとして、第１のブロックＢ２１と、第２のブロックＢ２２Ｌ１と、第３のブロックＢ２３と、第４のブロックＢ２４Ｌ２と、第５のブロックＢ２５とを備える。第二系統の加工プログラムＰＧ２は、第１のブロックＢ２１、第２のブロックＢ２２Ｌ１、第３のブロックＢ２３、第４のブロックＢ２４Ｌ２、及び第５のブロックＢ２５に定められる動作を順に第２の系統１０２に実行させる。
【００２２】
第三系統の加工プログラムＰＧ３は、ブロックＢとして、第１のブロックＢ３１と、第２のブロックＢ３２Ｌ２と、第３のブロックＢ３３と、第４のブロックＢ３４Ｌ３と、第５のブロックＢ３５とを備える。第三系統の加工プログラムＰＧ３は、第１のブロックＢ３１、第２のブロックＢ３２Ｌ２、第３のブロックＢ３３、第４のブロックＢ３４Ｌ３、及び第５のブロックＢ３５に定められる動作を順に第３の系統１０３に実行させる。
【００２３】
なお、本明細書は、ブロックＢ同士を区別する際には、ブロックＢを符号Ｂ１１，Ｂ１２Ｌ１，Ｂ１３，Ｂ１４Ｌ３，Ｂ１５，Ｂ２１，Ｂ２２Ｌ１，Ｂ２３，Ｂ２４Ｌ２，Ｂ２５，Ｂ３１，Ｂ３２Ｌ２，Ｂ３３，Ｂ３４Ｌ３，Ｂ３５で示し、ブロックＢ同士を区別しない際には、ブロックＢを符号Ｂで示す。
【００２４】
第１のブロックＢ１１，Ｂ２１，Ｂ３１、第３のブロックＢ１３，Ｂ２３，Ｂ３３、及び第５のブロックＢ１５，Ｂ２５，Ｂ３５は、軸移動指令又は待ち合わせ指令ＭＩを除く補助機能指令を定めている。第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１，Ｂ３２Ｌ２、及び第４のブロックＢ１４Ｌ３，Ｂ２４Ｌ２，Ｂ３４Ｌ３は、補助機能指令の待ち合わせ指令ＭＩを定めている。
【００２５】
第一系統の加工プログラムＰＧ１の最初の待ち合わせ指令ＭＩを定める第２のブロックＢ１２Ｌ１と、第二系統の加工プログラムＰＧ２の最初の待ち合わせ指令ＭＩを定める第２のブロックＢ２２Ｌ１とは、関連付けられている。第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１は、第一系統の加工プログラムＰＧ１の第３のブロックＢ１３と第二系統の加工プログラムＰＧ２の第３のブロックＢ２３とに定められる動作を同時に開始させるためのものである。第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１のＬアドレスを用いて指定される待ち合わせ指令識別番号は、「Ｌ１」である。
【００２６】
第二系統の加工プログラムＰＧ２の二番目の待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２と第三系統の加工プログラムＰＧ３の最初の待ち合わせ指令ＭＩを定める第２のブロックＢ３２Ｌ２とは、関連付けられている。第４のブロックＢ２４Ｌ２及び第２のブロックＢ３２Ｌ２は、第二系統の加工プログラムＰＧ２の第５のブロックＢ２５と第三系統の加工プログラムＰＧ３の第３のブロックＢ３３とに定められる動作を同時に開始させるためのものである。第４のブロックＢ２４Ｌ２及び第２のブロックＢ３２Ｌ２の待ち合わせ指令識別番号は、「Ｌ２」である。
【００２７】
第一系統の加工プログラムＰＧ１の二番目の待ち合わせ指令ＭＩを定める第４のブロックＢ１４Ｌ３と、第三系統の加工プログラムＰＧ３の二番目の待ち合わせ指令ＭＩを定める第４のブロックＢ３４Ｌ３とは、関連付けられている。第４のブロックＢ１４Ｌ３，Ｂ３４Ｌ３は、第一系統の加工プログラムＰＧ１の第５のブロックＢ１５と第三系統の加工プログラムＰＧ３の第５のブロックＢ３５とに定められる動作を同時に開始させるためのものである。第４のブロックＢ１４Ｌ３，Ｂ３４Ｌ３の待ち合わせ指令識別番号は、「Ｌ３」である。実施の形態１において、第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１，Ｂ３２Ｌ２、及び第４のブロックＢ１４Ｌ３，Ｂ２４Ｌ２，Ｂ３４Ｌ３の待ち合わせ指令識別番号は、Ｌアドレスを用いて指定しているが、本発明では、待ち合わせ指令識別番号は、Ｌアドレス以外で指定することができる。また、実施の形態１において、各加工プログラムＰＧ１，ＰＧ２，ＰＧ３の待ち合わせ指令ＭＩを定めるブロックＢ間の軸移動指令又は待ち合わせ指令ＭＩを除く補助機能指令を定めるブロックＢの数が１つであるが、本発明は、待ち合わせ指令ＭＩを定めるブロックＢ間の軸移動指令又は待ち合わせ指令ＭＩを除く補助機能指令を定めるブロックＢが複数でも可能である。
【００２８】
ブロック実行時間テーブルＴＢ１は、図３に示すように、各ブロックＢに定められた動作を各系統１０１，１０２，１０３が実行するためにかかる所要時間である実行時間を示すものである。待ち合わせ指令情報テーブルＴＢ２は、図４に示すように、待ち合わせ指令ＭＩが関連付ける複数の系統１０１，１０２，１０３間のブロックＢを示すものである。実施の形態１において、待ち合わせ指令情報テーブルＴＢ２は、待ち合わせ指令識別番号と、各系統１０１，１０２，１０３の番号と、各ブロックＢの番号との対応関係を示すものである。
【００２９】
運転スケジュール情報ＳＩは、待ち合わせ時間が短縮するように各系統１０１，１０２，１０３の運転開始時刻が調整された最も効率の良い運転スケジュール情報ＳＩであって、図５に示すように、各系統１０１，１０２，１０３の運転時刻を示すものである。実施の形態１において、運転スケジュール情報ＳＩは、各系統１０１，１０２，１０３の運転開始時刻、運転終了時刻、及び運転にかかる所要時間であるサイクルタイムを示す。実施の形態１において、運転スケジュール情報ＳＩは、各系統１０１，１０２，１０３の運転開始時刻、運転終了時刻、運転にかかる所要時間を示すサイクルタイムを示すが、各系統１０１，１０２，１０３の運転開始時刻とサイクルタイム、各系統１０１，１０２，１０３の運転開始時刻と運転終了時刻、及び各系統１０１，１０２，１０３の運転終了時刻とサイクルタイムのうち、いずれか一つであれば良い。
【００３０】
次に、加工時間算出装置１のブロック実行時間算出部１２が、ブロック実行時間テーブルＴＢ１を生成する過程を説明する。図６は、図１に示された加工時間算出装置のブロック実行時間算出部のブロック実行時間テーブルを生成する処理の流れを示すフローチャートである。
【００３１】
ブロック実行時間算出部１２は、加工プログラムＰＧに基づいて、加工プログラムＰＧの各ブロックＢの実行時間であるブロック実行時間を算出し、図３に示すブロック実行時間テーブルＴＢ１を生成する。ブロック実行時間算出部１２は、プログラム記憶部１１に記憶された加工プログラムＰＧのブロックＢのうち一つを読み込む（ステップＳ１）。ブロック実行時間算出部１２は、第一系統の加工プログラムＰＧ１の第１のブロックＢ１１から第５のブロックＢ１５の順に一つを読み込み、第二系統の加工プログラムＰＧ２の第１のブロックＢ２１から第５のブロックＢ２５の順に一つを読み込み、第三系統の加工プログラムＰＧ３の第１のブロックＢ３１から第５のブロックＢ３５の順に一つを読み込む。
【００３２】
ブロック実行時間算出部１２は、読み込んだブロックＢが待ち合わせ指令ＭＩを定めているか否かを判定し（ステップＳ２）、待ち合わせ指令ＭＩを定めていると判定する（ステップＳ２：Ｙｅｓ）とブロック実行時間を０とする（ステップＳ３）。ブロック実行時間算出部１２は、読み込んだブロックＢが待ち合わせ指令ＭＩを定めていないと判定する（ステップＳ２：Ｎｏ）と、読み込んだブロックＢが軸移動指令を定めているか否かを判定する（ステップＳ４）。ブロック実行時間算出部１２は、軸移動指令を定めていると判定する（ステップＳ４：Ｙｅｓ）と、軸移動指令が定めた移動距離と送り速度とから軸移動時間を算出する（ステップＳ５）。ブロック実行時間算出部１２は、軸移動指令を定めていないと判定する（ステップＳ４：Ｎｏ）と、軸移動時間を０とする（ステップＳ６）。
【００３３】
ブロック実行時間算出部１２は、読み込んだブロックＢが補助機能指令を定めているか否かを判定する（ステップＳ７）。ブロック実行時間算出部１２は、補助機能指令を定めていると判定する（ステップＳ７：Ｙｅｓ）と、あらかじめ設定された時間を補助機能実行時間として算出する（ステップＳ８）。ブロック実行時間算出部１２は、補助機能指令を定めていないと判定する（ステップＳ７：Ｎｏ）と、補助機能実行時間を０とする（ステップＳ９）。ブロック実行時間算出部１２は、算出した軸移動時間と補助機能実行時間とを加算して、読み込んだブロックＢのブロック実行時間を算出する（ステップＳ１０）。
【００３４】
ブロック実行時間算出部１２は、読み込んだブロックＢのブロック実行時間を、図３に示すように、系統１０１，１０２，１０３の番号、ブロックＢの番号とともに記録し、ブロック実行時間テーブルＴＢ１を生成する（ステップＳ１１）。ブロック実行時間算出部１２は、読み込んだブロックＢが最終ブロックであるか否か、即ち実施の形態１では第一系統の加工プログラムＰＧ１の第５のブロックＢ１５であるか否かを判定する（ステップＳ１２）。ブロック実行時間算出部１２は、読み込んだブロックＢが最終ブロックではないと判定する（ステップＳ１２：Ｎｏ）と、ステップＳ１に戻り、読み込んだブロックＢが最終ブロックであると判定する（ステップＳ１２：Ｙｅｓ）と、第一系統の加工プログラムＰＧ１のブロック実行時間の算出を終了する。次に、ブロック実行時間算出部１２は、第一系統の加工プログラムＰＧ１と同様に、図６に示すフローチャートにしたがって、第二系統の加工プログラムＰＧ２のブロック実行時間を算出する。ブロック実行時間算出部１２は、第二系統の加工プログラムＰＧ２のブロック実行時間の算出を終了すると、図６に示すフローチャートにしたがって、第三系統の加工プログラムＰＧ３のブロック実行時間を算出する。なお、図６のステップＳ１からステップＳ１２は、工作機械１００の加工プログラムＰＧに基づいて、各系統１０１，１０２，１０３の各ブロックＢの実行時間であるブロック実行時間を算出するブロック実行時間算出ステップに相当する。
【００３５】
次に、加工時間算出装置１の待ち合わせ指令解析部１３が、図４に示す待ち合わせ指令情報テーブルＴＢ２を出力する過程を説明する。図７は、図１に示された加工時間算出装置の待ち合わせ指令解析部の待ち合わせ指令情報テーブルを出力する処理の流れを示すフローチャートである。
【００３６】
待ち合わせ指令解析部１３は、加工プログラムＰＧに記述された複数の系統１０１，１０２，１０３間の待ち合わせ指令ＭＩを解析して、待ち合わせ指令情報である待ち合わせ指令情報テーブルＴＢ２を出力する。待ち合わせ指令解析部１３は、プログラム記憶部１１に記憶された加工プログラムＰＧのブロックＢのうち一つを読み込む（ステップＳ２１）。待ち合わせ指令解析部１３は、第一系統の加工プログラムＰＧ１の第１のブロックＢ１１から第５のブロックＢ１５の順に一つを読み込み、第二系統の加工プログラムＰＧ２の第１のブロックＢ２１から第５のブロックＢ２５の順に一つを読み込み、第三系統の加工プログラムＰＧ３の第１のブロックＢ３１から第５のブロックＢ３５の順に一つを読み込む。
【００３７】
待ち合わせ指令解析部１３は、読み込んだブロックＢが待ち合わせ指令ＭＩを定めているか否かを判定し（ステップＳ２２）、待ち合わせ指令ＭＩを定めていないと判定する（ステップＳ２２：Ｎｏ）とステップＳ２１に戻る。待ち合わせ指令解析部１３は、ステップＳ２１において、ブロックＢのうちの次の一つを読み込む。待ち合わせ指令解析部１３は、読み込んだブロックＢが待ち合わせ指令ＭＩを定めていると判定する（ステップＳ２２：Ｙｅｓ）と、読み込んだブロックＢが定める待ち合わせ指令ＭＩの解析を行う（ステップＳ２３）。
【００３８】
待ち合わせ指令解析部１３は、ステップＳ２３において、待ち合わせ指令ＭＩを定めているブロックＢの系統１０１，１０２，１０３の番号、待ち合わせ指令ＭＩを定めているブロックＢの系統１０１，１０２，１０３内のブロックＢ１２Ｌ１，Ｂ１４Ｌ３，Ｂ２２Ｌ１，Ｂ２４Ｌ２，Ｂ３２Ｌ２，Ｂ３４Ｌ３の番号を抽出する。待ち合わせ指令解析部１３は、読み込んだブロックＢと関連付けられているブロックＢを有する系統１０１，１０２，１０３の番号、及び読み込んだブロックＢと関連付けられているブロックＢ１２Ｌ１，Ｂ１４Ｌ３，Ｂ２２Ｌ１，Ｂ２４Ｌ２，Ｂ３２Ｌ２，Ｂ３４Ｌ３の番号を抽出する。
【００３９】
待ち合わせ指令解析部１３は、待ち合わせ指令ＭＩを定めている読み込んだブロックＢに待ち合わせ指令識別番号が指定されているか否かを判定する（ステップＳ２４）。待ち合わせ指令解析部１３は、待ち合わせ指令識別番号が指定されていない場合（ステップＳ２４：Ｎｏ）、待ち合わせ指令識別番号を０とする（ステップＳ２６）。待ち合わせ指令解析部１３は、待ち合わせ指令識別番号が指定されている場合（ステップＳ２４：Ｙｅｓ）、指定された待ち合わせ指令識別番号を取得する（ステップＳ２５）。待ち合わせ指令解析部１３は、解析した結果に基づいて、図４に示すように、待ち合わせ指令情報テーブルＴＢ２を作成する（ステップＳ２７）。
【００４０】
待ち合わせ指令解析部１３は、読み込んだブロックＢが最終ブロックであるか否か、即ち実施の形態１では第一系統の加工プログラムＰＧ１の第５のブロックＢ１５であるか否かを判定する（ステップＳ２８）。待ち合わせ指令解析部１３は、読み込んだブロックＢが最終ブロックではないと判定する（ステップＳ２８：Ｎｏ）と、ステップＳ２１に戻り、読み込んだブロックＢが最終ブロックであると判定する（ステップＳ２８：Ｙｅｓ）と、第一系統の加工プログラムＰＧ１の待ち合わせ指令ＭＩの解析を終了する。次に、待ち合わせ指令解析部１３は、第一系統の加工プログラムＰＧ１と同様に、図７に示すフローチャートにしたがって、第二系統の加工プログラムＰＧ２の待ち合わせ指令ＭＩを解析する。待ち合わせ指令解析部１３は、第二系統の加工プログラムＰＧ２の待ち合わせ指令ＭＩの解析を終了すると、図７に示すフローチャートにしたがって、第三系統の加工プログラムＰＧ３の待ち合わせ指令ＭＩを解析する。なお、図７のステップＳ２１からステップＳ２８は、加工プログラムＰＧに記述された複数の系統１０１，１０２，１０３間の待ち合わせ指令ＭＩを解析して、待ち合わせ指令情報テーブルＴＢ２を出力する待ち合わせ指令解析ステップに相当する。
【００４１】
次に、加工時間算出装置１の系統サイクルタイム算出部１４が、運転スケジュール情報ＳＩを出力する過程を説明する。図８は、図１に示された加工時間算出装置の系統サイクルタイム算出部の運転スケジュール情報を算出する処理の流れを示すフローチャートである。図９は、図８のステップＳ４２において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１０は、図８のステップＳ４３において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１１は、図８のステップＳ４６において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１２は、図８のステップＳ４６を次の待ち合わせ指令に対して実行した後に算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１３は、図８のステップＳ４６を更に次の待ち合わせ指令に対して実行した後に算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。
【００４２】
図１４は、図８のステップＳ４８において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１５は、図８のステップＳ４９において遅延ブロックを決定する過程の一部の結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１６は、図８のステップＳ４９において遅延ブロックが決定された結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１７は、図８のステップＳ５１において算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１８は、図８のステップＳ４９において遅延ブロックが次に決定された結果から算出されるブロックの運転開始時刻及び運転終了時刻から作成したタイムチャートの一例を示す図である。図１９は、図８のステップＳ５３を実行した後のタイムチャートの一例を示す図である。
【００４３】
系統サイクルタイム算出部１４は、ブロック実行時間テーブルＴＢ１に示されるブロック実行時間と待ち合わせ指令情報テーブルＴＢ２とに基づいて、各ブロックＢのブロック運転時間情報と待ち合わせ時間とを算出し、待ち合わせ時間に応じて各ブロックＢのブロック運転時間情報を調整して、運転スケジュール情報ＳＩを算出する。実施の形態１において、ブロック運転時間情報は、加工プログラムＰＧの運転開始からの各ブロックＢの運転開始時刻である。即ち、実施の形態１において、ブロック運転時間情報は、加工プログラムＰＧの運転開始時を０としたときの加工プログラムＰＧの運転開始からの各ブロックＢの運転開始時刻である。実施の形態１に係る加工時間算出装置１及び加工時間算出方法は、ブロック運転時間情報は、加工プログラムＰＧの運転開始からの各ブロックＢの運転終了時刻でも良く、加工プログラムＰＧの運転開始からの各ブロックＢの運転開始時刻までの累積時間でも良い。
【００４４】
系統サイクルタイム算出部１４は、ブロック実行時間算出部１２が作成したブロック実行時間テーブルＴＢ１を読み込む（ステップＳ４１）。系統サイクルタイム算出部１４は、第一系統の加工プログラムＰＧ１、第二系統の加工プログラムＰＧ２、及び第三系統の加工プログラムＰＧ３において、加工プログラムＰＧの運転開始の時刻を０として、ブロック実行時間テーブルＴＢ１に記録されたブロック実行時間をブロックＢの実行順に加算することによって、図９に示すように、系統１０１，１０２，１０３毎に各ブロックＢの運転開始時刻及び運転終了時刻を算出する（ステップＳ４２）。
【００４５】
系統サイクルタイム算出部１４は、待ち合わせ指令解析部１３が作成した待ち合わせ指令情報テーブルＴＢ２を読み込む（ステップＳ４３）。系統サイクルタイム算出部１４は、ステップＳ４３において、待ち合わせ指令情報テーブルＴＢ２に基づいて、図１０に示すように、同一の待ち合わせ指令識別番号の待ち合わせ指令ＭＩを定めるブロックＢを特定する。系統サイクルタイム算出部１４は、待ち合わせ指令識別番号が「Ｌ１」である第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１を特定し、待ち合わせ指令識別番号が「Ｌ２」である第４のブロックＢ２４Ｌ２及び第２のブロックＢ３２Ｌ２を特定し、待ち合わせ指令識別番号が「Ｌ３」である第４のブロックＢ１４Ｌ３，Ｂ３４Ｌ３を特定する。
【００４６】
系統サイクルタイム算出部１４は、同一の待ち合わせ指令識別番号の待ち合わせ指令ＭＩを定める複数のブロックＢについて、ブロックＢの運転開始時刻を比較する。系統サイクルタイム算出部１４は、比較した運転開始時刻の中で最も遅い運転開始時刻の待ち合わせ指令ＭＩを定める複数のブロックＢを、全ての運転開始時刻とする（ステップＳ４４）。なお、系統サイクルタイム算出部１４は、ステップＳ４４において、ブロックＢの運転終了時刻を比較しても良い。系統サイクルタイム算出部１４は、ステップＳ４４において、決定された待ち合わせ指令ＭＩを定めるブロックＢの運転開始時刻と、待ち合わせ指令ＭＩを定める各ブロックＢの直前のブロックＢの運転終了時刻との差を待ち合わせ時間として系統１０１，１０２，１０３毎に算出する（ステップＳ４５）。
【００４７】
系統サイクルタイム算出部１４は、ステップＳ４５において、算出された待ち合わせ時間を待ち合わせ指令情報テーブルＴＢ２に追加して記録する。系統サイクルタイム算出部１４は、待ち合わせ指令ＭＩを定めるブロックＢ以降に実行される全てのブロックＢに対して、運転開始時刻及び運転終了時刻に待ち合わせ時間を加算して、待ち合わせ時間を含む各ブロックＢの運転開始時刻及び運転終了時刻を再計算する（ステップＳ４６）。系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩを定めるブロックＢに対して、ステップＳ４４からステップＳ４６の処理を行ったか否かを判定する（ステップＳ４７）。系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩを定めるブロックＢに対して、ステップＳ４４からステップＳ４６の処理を行っていないと判定する（ステップＳ４７：Ｎｏ）とステップＳ４４に戻り、次の待ち合わせ指令ＭＩを定めるブロックＢに対して、ステップＳ４４からステップＳ４６の処理を行う。
【００４８】
系統サイクルタイム算出部１４は、ステップＳ４４において、待ち合わせ指令識別番号が「Ｌ１」である待ち合わせ指令ＭＩを定める第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１の運転開始時刻のうち遅い運転開始時刻である第１の系統１０１の第２のブロックＢ１２Ｌ１の運転開始時刻を、図１１に示すように、第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１の運転開始時刻とする。系統サイクルタイム算出部１４は、ステップＳ４５において、第２の系統１０２の第２のブロックＢ２２Ｌ１の待ち合わせ時間を算出する。系統サイクルタイム算出部１４は、ステップＳ４６において、第２の系統１０２の第３のブロックＢ２３、第４のブロックＢ２４Ｌ２及び第５のブロックＢ２５の運転開始時刻及び運転終了時刻を算出する。
【００４９】
また、系統サイクルタイム算出部１４は、ステップＳ４４において、待ち合わせ指令識別番号が「Ｌ２」である待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２の運転開始時刻と第２のブロックＢ３２Ｌ２の運転開始時刻のうち遅い運転開始時刻である第２のブロックＢ３２Ｌ２の運転開始時刻を、図１２に示すように、第４のブロックＢ２４Ｌ２及び第２のブロックＢ３２Ｌ２の運転開始時刻とする。系統サイクルタイム算出部１４は、ステップＳ４５において、第２の系統１０２の第４のブロックＢ２４Ｌ２の待ち合わせ時間を算出する。系統サイクルタイム算出部１４は、ステップＳ４６において、第２の系統１０２の第４のブロックＢ２４Ｌ２及び第５のブロックＢ２５の運転開始時刻及び運転終了時刻を算出する。
【００５０】
系統サイクルタイム算出部１４は、ステップＳ４４において、待ち合わせ指令識別番号が「Ｌ３」である待ち合わせ指令ＭＩを定める第４のブロックＢ１４Ｌ３，Ｂ３４Ｌ３の運転開始時刻のうち遅い運転開始時刻である第３の系統１０３の第４のブロックＢ３４Ｌ３の運転開始時刻を、図１３に示すように、第４のブロックＢ１４Ｌ３，Ｂ３４Ｌ３の運転開始時刻とする。系統サイクルタイム算出部１４は、ステップＳ４５において、第１の系統１０１の第４のブロックＢ１４Ｌ３の待ち合わせ時間を算出する。系統サイクルタイム算出部１４は、ステップＳ４６において、第１の系統１０１の第５のブロックＢ１５の運転開始時刻及び運転終了時刻を算出する。
【００５１】
系統サイクルタイム算出部１４が、ステップＳ４７までの処理を完了すると、加工プログラムＰＧのタイムチャートは、図１３に示すように、第２の系統１０２の第１のブロックＢ２１と第２のブロックＢ２２Ｌ１との間と、第２の系統１０２の第３のブロックＢ２３と第４のブロックＢ２４Ｌ２との間と、第１の系統１０１の第３のブロックＢ１３と第４のブロックＢ１４Ｌ３との間とに待ち合わせ時間が生じる。実施の形態１において、第１の系統１０１の第１のブロックＢ１１のブロック実行時間が３０秒、第３のブロックＢ１３のブロック実行時間が５０秒、第５のブロックＢ１５のブロック実行時間が５０秒である。また、実施の形態１において、第２の系統１０２の第１のブロックＢ２１のブロック実行時間が１５秒、第３のブロックＢ２３のブロック実行時間が３０秒、第５のブロックＢ２５のブロック実行時間が４０秒である。また、実施の形態１において、第３の系統１０３の第１のブロックＢ３１のブロック実行時間が９０秒、第３のブロックＢ３３のブロック実行時間が３０秒、第５のブロックＢ３５のブロック実行時間が２０秒である。また、実施の形態１において、第２の系統１０２の第１のブロックＢ２１と第２のブロックＢ２２Ｌ１との間の待ち合わせ時間は、１５秒となる。また、第２の系統１０２の第３のブロックＢ２３と第４のブロックＢ２４Ｌ２との間の待ち合わせ時間は、３０秒となる。第１の系統１０１の第３のブロックＢ１３と第４のブロックＢ１４Ｌ３との間の待ち合わせ時間は、４０秒となる。図１３に示したタイムチャートは、各系統１０１，１０２，１０３の運転開始時刻が一致している。
【００５２】
系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩを定めるブロックＢに対して、ステップＳ４４からステップＳ４６の処理を行ったと判定する（ステップＳ４７：Ｙｅｓ）と、ステップＳ４６において算出されたブロックＢの運転開始時刻と待ち合わせ指令情報テーブルＴＢ２とに基づいて、待ち合わせ時間が生じている待ち合わせ指令ＭＩを定めるブロックＢのうち、後述するステップＳ４９、ステップＳ５０の処理を行っておらず、かつ運転開始時刻が最も遅い待ち合わせ指令ＭＩを定めるブロックＢを検索する（ステップＳ４８）。
【００５３】
系統サイクルタイム算出部１４は、ステップＳ４８において、ステップＳ４９、ステップＳ５０の処理を行っておらず、かつ運転開始時刻が最も遅い待ち合わせ指令ＭＩを定めるブロックＢとして、図１４に示すように、待ち合わせ指令識別番号が「Ｌ３」である待ち合わせ指令ＭＩを定める第１の系統１０１の第４のブロックＢ１４Ｌ３を検索する。
【００５４】
系統サイクルタイム算出部１４は、ステップＳ４８において検索された待ち合わせ指令ＭＩを定めるブロックＢを有する系統１０１，１０２，１０３において、検索された待ち合わせ指令ＭＩを定めるブロックＢ以前に実行されるブロックＢを、待ち合わせ時間に応じて遅延する対象となる遅延ブロックとする。次に、系統サイクルタイム算出部１４は、検索された待ち合わせ指令ＭＩを定めるブロックＢを有する系統１０１，１０２，１０３の検索された待ち合わせ指令ＭＩを定めるブロックＢ以前に行われている待ち合わせ指令ＭＩを定めるブロックＢのうち、実行順が最も遅い待ち合わせ指令ＭＩを定めるブロックＢを検索する。系統サイクルタイム算出部１４は、実行順が最も遅い待ち合わせ指令ＭＩを定めるブロックＢが存在しない場合には、処理を終了する。系統サイクルタイム算出部１４は、待ち合わせ指令情報テーブルＴＢ２に基づいて、検索された実行順が最も遅い待ち合わせ指令ＭＩを定めるブロックＢと待ち合わせ指令ＭＩにより関連付けられたブロックＢを有する系統１０１，１０２，１０３を特定する。系統サイクルタイム算出部１４は、特定した系統１０１，１０２，１０３内の検索された実行順が最も遅い待ち合わせ指令ＭＩを定めるブロックＢと待ち合わせ指令ＭＩにより関連付けられたブロックＢを特定する。系統サイクルタイム算出部１４は、特定した系統１０１，１０２，１０３内において、関連付けられたブロックＢ以降の待ち合わせ指令ＭＩが定められかつ待ち合わせ時間を生じているブロックＢを検索する。系統サイクルタイム算出部１４は、関連付けられたブロックＢ以降の待ち合わせ指令ＭＩが定められかつ待ち合わせ時間を生じているブロックＢ以前に実行されるブロックＢを遅延ブロックと決定する（ステップＳ４９）。
【００５５】
ステップＳ４９において、系統サイクルタイム算出部１４は、ステップＳ４８において検索された待ち合わせ指令識別番号が「Ｌ３」である待ち合わせ指令ＭＩを定める第４のブロックＢ１４Ｌ３を有する第１の系統１０１において、図１５に四角で囲むように、第４のブロックＢ１４Ｌ３以前に実行される第１のブロックＢ１１、第２のブロックＢ１２Ｌ１及び第３のブロックＢ１３を、遅延ブロックとする。系統サイクルタイム算出部１４は、第１の系統１０１の待ち合わせ指令識別番号が「Ｌ１」の待ち合わせ指令ＭＩを定める第２のブロックＢ１２Ｌ１を検索する。系統サイクルタイム算出部１４は、第１の系統１０１の待ち合わせ指令識別番号が「Ｌ１」の待ち合わせ指令ＭＩを定める第２のブロックＢ１２Ｌ１と待ち合わせ指令ＭＩにより関連付けられた第２のブロックＢ２２Ｌ１を有する第２の系統１０２において、待ち合わせ指令識別番号が「Ｌ１」以降の待ち合わせ時間が生じている待ち合わせ指令ＭＩが定められたブロックＢを検索する。系統サイクルタイム算出部１４は、第２の系統１０２の待ち合わせ指令識別番号が「Ｌ２」の待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２が第１の系統１０１と待ち合わせを行っていないので、図１６に四角で囲むように、第２の系統１０２の待ち合わせ指令識別番号が「Ｌ２」の待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２以前のブロックＢも遅延ブロックと決定する。
【００５６】
系統サイクルタイム算出部１４は、ステップＳ４９で決定された遅延ブロックに対する遅延時間を決定する（ステップＳ５０）。系統サイクルタイム算出部１４は、ステップＳ５０において、ステップＳ４８で検索されたブロックＢの待ち合わせ時間を遅延時間とする。系統サイクルタイム算出部１４は、ステップＳ４９と同じ手順で、待ち合わせ時間を取得する。系統サイクルタイム算出部１４は、取得した待ち合わせ時間の短い方の待ち合わせ時間を遅延時間と決定する。
【００５７】
系統サイクルタイム算出部１４は、ステップＳ５０において、第１の系統１０１における待ち合わせ指令識別番号が「Ｌ３」の待ち合わせ指令ＭＩを定める第４のブロックＢ１４Ｌ３の待ち合わせ時間と、第２の系統１０２における待ち合わせ指令識別番号が「Ｌ２」の待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２の待ち合わせ時間とを比較して、短い方の第２の系統１０２の第４のブロックＢ２４Ｌ２の待ち合わせ時間を遅延時間と決定する。
【００５８】
系統サイクルタイム算出部１４は、ステップＳ５０で決定した遅延時間を、ステップＳ４９で決定した遅延ブロックの各ブロックＢの運転開始時刻及び運転終了時刻に加算して、再計算する（ステップＳ５１）。系統サイクルタイム算出部１４は、ステップＳ５１において、図１７に示すように、遅延時間とした第２の系統１０２の第４のブロックＢ２４Ｌ２の待ち合わせ時間を、ステップＳ４９で決定した遅延ブロックのブロックＢ１１，Ｂ１２Ｌ１，Ｂ１３，Ｂ２１，Ｂ２２Ｌ１，Ｂ２３の運転開始時刻及び運転終了時刻に加算する。
【００５９】
系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩに対してステップＳ４８からステップＳ５１の処理を行ったかを判定する（ステップＳ５２）。系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩに対してステップＳ４８からステップＳ５１の処理を行っていないと判定する（ステップＳ５２：Ｎｏ）と、ステップＳ４８に戻る。
【００６０】
系統サイクルタイム算出部１４は、待ち合わせ指令識別番号が「Ｌ３」の次に、待ち合わせ指令識別番号が「Ｌ２」の待ち合わせ指令ＭＩを定める第４のブロックＢ２４Ｌ２及び第２のブロックＢ３２Ｌ２に待ち合わせ時間が生じていないので、図１８に四角で囲むように、待ち合わせ指令識別番号が「Ｌ１」の待ち合わせ指令ＭＩを定める第２のブロックＢ１２Ｌ１，Ｂ２２Ｌ１を有する第１の系統１０１と第２の系統１０２とのうちの第２の系統１０２の第１のブロックＢ２１を遅延ブロックに決定する。系統サイクルタイム算出部１４は、第２の系統１０２の第２のブロックＢ２２Ｌ１の待ち合わせ時間を遅延時間として、第２の系統１０２の第１のブロックＢ２１の運転開始時刻及び運転終了時刻を算出する。
【００６１】
系統サイクルタイム算出部１４は、全ての待ち合わせ指令ＭＩに対してステップＳ４８からステップＳ５１の処理を行ったと判定する（ステップＳ５２：Ｙｅｓ）と、ステップＳ５１で算出された各ブロックＢの運転開始時刻及び運転終了時刻から、図１９に示すように、各系統１０１，１０２，１０３の運転開始時刻とサイクルタイムを算出する（ステップＳ５３）。系統サイクルタイム算出部１４は、各系統１０１，１０２，１０３の最初に実行されるブロックＢのうち、最も運転開始時刻が早いブロックＢの運転開始時刻が０となるように、全てのブロックＢの運転開始時刻及び運転終了時刻をオフセットする。系統サイクルタイム算出部１４は、オフセット後の各系統１０１，１０２，１０３の最初に実行されるブロックＢの運転開始時刻を各系統１０１，１０２，１０３の運転開始時刻とする。系統サイクルタイム算出部１４は、各系統１０１，１０２，１０３の運転開始時刻と最後に実行されるブロックＢの運転終了時刻から各系統１０１，１０２，１０３のサイクルタイムを算出する。系統サイクルタイム算出部１４は、図５に示すように、各系統１０１，１０２，１０３の運転開始時刻、サイクルタイム、ブロックＢの運転開始時刻及び運転終了時刻を記録した運転スケジュール情報ＳＩを作成する。
【００６２】
なお、図８のステップＳ４１からステップＳ５３は、ブロック実行時間と待ち合わせ指令情報テーブルＴＢ２とに基づいて、各系統１０１，１０２，１０３の各ブロックＢのブロック運転時間情報と待ち合わせ時間とを算出し、待ち合わせ時間が短くなるようにブロック運転時間情報を調整して、運転スケジュール情報ＳＩを算出する系統サイクルタイム算出ステップに相当する。また、系統サイクルタイム算出ステップにおいて、系統サイクルタイム算出部１４は、加工プログラムＰＧに記述された複数の系統１０１，１０２，１０３間の待ち合わせ指令ＭＩに基づき、複数の系統１０１，１０２，１０３間の待ち合わせのタイミングを維持したまま各系統１０１，１０２，１０３のブロックＢの運転開始時刻を調整した運転スケジュール情報ＳＩを算出するとともに、各系統１０１，１０２，１０３の複数のブロックＢ間の運転開始時刻の時間差が短くなるようにブロックＢの運転開始時刻を調整する。
【００６３】
また、系統サイクルタイム算出部１４は、運転スケジュール情報ＳＩに基づいて、図１９に示すタイムチャートＴＣを作成し、作成したタイムチャートＴＣを表示部１５に出力する。表示部１５は、図１９に示すタイムチャートＴＣを表示する。実施の形態１において、タイムチャートＴＣは、例えば１秒である単位時間を所定の長さとし、各ブロックＢの実行時間を四角形として、縦軸に系統番号、横軸を時間とする。実施の形態１において、タイムチャートＴＣは、待ち合わせ時間を空白として表示する。
【００６４】
実施の形態１において、図１９に示す第１の系統１０１の第４のブロックＢ１４Ｌ３の待ち合わせ時間は、図１３に示す待ち合わせ時間の４０秒から１０秒に短縮されており、第１の系統１０１の運転開始時刻は、３０秒となっている。また、実施の形態１において、図１９に示す第２の系統１０２の第２のブロックＢ１２Ｌ１及び第４のブロックＢ２４Ｌ２の待ち合わせ時間は、ともに０秒に短縮されている。実施の形態１において、第２の系統１０２の運転開始時刻は、４５秒となっている。その結果、実施の形態１に係る図５に示す運転スケジュール情報ＳＩは、全ての系統１０１，１０２，１０３の合計で７５秒を加工プログラムＰＧによる機械加工以外の機械加工に用いることができる。
【００６５】
実施の形態１に係る加工時間算出装置１及び加工時間算出方法は、待ち合わせのタイミングを維持したままブロックＢの運転開始時刻を、運転開始時刻の時間差が短くなるように調整する。また、実施の形態１に係る加工時間算出装置１及び加工時間算出方法によれば、各ブロックＢの実行時間を示すブロック実行時間テーブルＴＢ１と待ち合わせ指令情報テーブルＴＢ２とに基づいて、待ち合わせ時間を算出し、待ち合わせ時間が短くなるようにブロック運転時間情報を調整する。このために、加工時間算出装置１及び加工時間算出方法によれば、各系統１０１，１０２，１０３の待ち合わせ時間を短縮でき、独立して制御可能な複数の系統１０１，１０２，１０３を有する工作機械１００において、生産効率の高い生産計画を立案するために必要な加工時間を算出することができる。
【００６６】
実施の形態２．
次に、本発明の実施の形態２に係る加工時間算出装置１−２及び加工時間算出方法を図面に基づいて説明する。図２０は、実施の形態２に係る加工時間算出装置の構成を示す機能ブロック図である。図２０において、実施の形態１と同一部分には、同一符号を付して説明を省略する。
【００６７】
実施の形態２に係る加工時間算出装置１−２は、図２０に示すように、数値制御装置２００を構成する以外、実施の形態１と同一である。数値制御装置２００は、加工時間算出装置１−２のプログラム記憶部１１に記憶された加工プログラムＰＧと、加工時間算出装置１−２の系統サイクルタイム算出部１４が算出した運転スケジュール情報ＳＩとに基づいて、工作機械１００に機械加工を行わせる制御部１６を備える。
【００６８】
実施の形態２に係る加工時間算出装置１−２は、実施の形態１と同様に、待ち合わせ時間を短縮することができ、独立して制御可能な複数の系統１０１，１０２，１０３を有する工作機械１００において、生産効率の高い生産計画を立案するために必要な加工時間を算出することができる。また、実施の形態２に係る加工時間算出装置１−２は、数値制御装置２００を構成し、数値制御装置２００の制御部１６が運転スケジュール情報ＳＩに従って加工プログラムＰＧを実行するので、工作機械１００の生産効率を向上することができる。
【００６９】
次に、図２１を用いて実施の形態１に係る加工時間算出装置１及び実施の形態２に係る加工時間算出装置１−２を説明する。図２１は、各実施の形態に係る加工時間算出装置のハードウェア構成を示す図である。各実施の形態に係る加工時間算出装置１，１−２は、ＯＳ（Operating System）６０上でコンピュータプログラムを実行するコンピュータであって、図２１に示すように、入力装置６１と、表示装置６２と、記憶装置６３と、ＣＰＵ（Central  Processing  Unit）６４と、ＲＡＭ（Random  Access  Memory）６５と、ＲＯＭ（Read  Only  Memory）６６と、通信インタフェース６７と、を備える。ＣＰＵ６４、ＲＡＭ６５、ＲＯＭ６６、記憶装置６３、入力装置６１、表示装置６２及び通信インタフェース６７は、バスＢを介して接続されている。
【００７０】
ブロック実行時間算出部１２、待ち合わせ指令解析部１３、及び系統サイクルタイム算出部１４の機能は、ＣＰＵ６４がＲＡＭ６５を作業領域として使用しながら、ＲＯＭ６６及び記憶装置６３に記憶されているプログラムを実行することにより実現される。プログラムは、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。実施の形態１及び実施の形態２において、記憶装置６３は、ＳＳＤ（Solid  State  Drive）又はＨＤＤ（Hard  Disk  Drive）であるが、記憶装置６３は、ＳＳＤ又はＨＤＤに限定されない。プログラム記憶部１１の機能は、ＲＯＭ６６及び記憶装置６３により実現される。
【００７１】
入力装置６１は、ユーザからの操作入力を受け付ける。実施の形態１及び実施の形態２において、入力装置６１は、キーボード又はマウスであるが、入力装置６１は、キーボード又はマウスに限定されない。表示部１５の機能は、表示装置６２により実現される。表示装置６２は、文字及び画像を表示する。実施の形態１及び実施の形態２において、表示装置６２は、液晶表示装置が例示される。通信インタフェース６７は、実施の形態２において、工作機械１００と通信を行う。
【００７２】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００７３】
１，１−２  加工時間算出装置、１２  ブロック実行時間算出部、１３  待ち合わせ指令解析部、１４  系統サイクルタイム算出部、１５  表示部、１００  工作機械、１０１，１０２，１０３  系統、Ｂ，Ｂ１１，Ｂ１２Ｌ１，Ｂ１３，Ｂ１４Ｌ３，Ｂ１５，Ｂ２１，Ｂ２２Ｌ１，Ｂ２３，Ｂ２４Ｌ２，Ｂ２５，Ｂ３１，Ｂ３２Ｌ２，Ｂ３３，Ｂ３４Ｌ３，Ｂ３５  ブロック、ＰＧ  加工プログラム、ＭＩ  待ち合わせ指令、ＴＢ２  待ち合わせ指令情報テーブル（待ち合わせ指令情報）、ＴＣ  タイムチャート、Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ８，Ｓ９，Ｓ１０，Ｓ１１，Ｓ１２  ブロック実行時間算出ステップ、Ｓ２１，Ｓ２２，Ｓ２３，Ｓ２４，Ｓ２５，Ｓ２６，Ｓ２７，Ｓ２８  待ち合わせ指令解析ステップ、Ｓ４１，Ｓ４２，Ｓ４３，Ｓ４４，Ｓ４５，Ｓ４６，Ｓ４７，Ｓ４８，Ｓ４９，Ｓ５０，Ｓ５１，Ｓ５２，Ｓ５３  系統サイクルタイム算出ステップ、ＳＩ  運転スケジュール情報。
【図１】
2017221309.tif 000003
【図２】
2017221309.tif 000004
【図３】
2017221309.tif 000005
【図４】
2017221309.tif 000006
【図５】
2017221309.tif 000007
【図６】
2017221309.tif 000008
【図７】
2017221309.tif 000009
【図８】
2017221309.tif 000010
【図９】
2017221309.tif 000011
【図１０】
2017221309.tif 000012
【図１１】
2017221309.tif 000013
【図１２】
2017221309.tif 000014
【図１３】
2017221309.tif 000015
【図１４】
2017221309.tif 000016
【図１５】
2017221309.tif 000017
【図１６】
2017221309.tif 000018
【図１７】
2017221309.tif 000019
【図１８】
2017221309.tif 000020
【図１９】
2017221309.tif 000021
【図２０】
2017221309.tif 000022
【図２１】
2017221309.tif 000023
【手続補正書】
【提出日】平成29年2月6日(2017.2.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置であって、
前記工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の前記加工プログラムのブロックの運転開始時刻を調整した運転スケジュール情報を算出する系統サイクルタイム算出部を備え、
前記系統サイクルタイム算出部は、
各系統の複数のブロック間の前記運転開始時刻の時間差が短くなるように前記ブロックの運転開始時刻を調整する
ことを特徴とする加工時間算出装置。
【請求項２】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置であって、
前記工作機械の加工プログラムに基づいて前記加工プログラムの各ブロックの実行時間を算出するブロック実行時間算出部と、
前記加工プログラムに記述された複数の系統間の待ち合わせ指令を解析して、前記待ち合わせ指令が関連付ける複数の系統間のブロックを示す待ち合わせ指令情報を出力する待ち合わせ指令解析部と、
前記実行時間と前記待ち合わせ指令情報とに基づいて、各系統の各ブロックの運転時刻を示すブロック運転時間情報と待ち合わせ時間とを算出し、前記待ち合わせ時間に応じて各ブロックのブロック運転時間情報を調整して、前記運転スケジュール情報を算出する系統サイクルタイム算出部とを備え、
前記系統サイクルタイム算出部は、
各系統の前記待ち合わせ時間が短くなるように各ブロックの前記ブロック運転時間情報を調整する
ことを特徴とする加工時間算出装置。
【請求項３】
前記運転スケジュール情報とは、
各系統の運転開始時刻とサイクルタイム、各系統の運転開始時刻と運転終了時刻、及び各系統の運転終了時刻とサイクルタイムのうち、いずれか一つである
ことを特徴とする請求項２に記載の加工時間算出装置。
【請求項４】
前記ブロック運転時間情報とは、
前記加工プログラムの運転開始からの各ブロックの運転開始時刻、前記加工プログラムの運転開始からの各ブロックの運転終了時刻、及び前記加工プログラムの運転開始からの各ブロックの運転開始時刻までの累積時間のうち、いずれか一つである
ことを特徴とする請求項２に記載の加工時間算出装置。
【請求項５】
前記ブロック運転時間情報と前記運転スケジュール情報に基づいて作成されたタイムチャートを表示する表示部を有する
ことを特徴とする請求項２に記載の加工時間算出装置。
【請求項６】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出方法であって、
前記工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の前記加工プログラムのブロックの運転開始時刻を、各系統の複数のブロック間の前記運転開始時刻の時間差が短くなるように調整する
ことを特徴とする加工時間算出方法。
【請求項７】
互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出方法であって、
前記工作機械の加工プログラムに基づいて前記加工プログラムの各ブロックの実行時間を算出するブロック実行時間算出ステップと、
前記加工プログラムに記述された複数の系統間の待ち合わせ指令を解析して、前記待ち合わせ指令が関連付ける複数の系統間のブロックを示す待ち合わせ指令情報を出力する待ち合わせ指令解析ステップと、
前記実行時間と前記待ち合わせ指令情報とに基づいて、各系統の各ブロックの運転時刻を示すブロック運転時間情報と待ち合わせ時間とを算出し、待ち合わせ時間が短くなるようにブロック運転時間情報を調整して、前記運転スケジュール情報を算出する系統サイクルタイム算出ステップと
を備えることを特徴とする加工時間算出方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、互いに独立して制御可能な系統を複数有する工作機械における各系統の運転時刻を示す運転スケジュール情報を算出する加工時間算出装置である。加工時間算出装置は、系統サイクルタイム算出部を備える。系統サイクルタイム算出部は、工作機械の加工プログラムに記述された複数の系統間の待ち合わせ指令に基づき、複数の系統間の待ち合わせのタイミングを維持したまま各系統の加工プログラムのブロックの運転開始時刻を調整した運転スケジュール情報を算出する。系統サイクルタイム算出部は、各系統の複数のブロック間の運転開始時刻の時間差が短くなるようにブロックの運転開始時刻を調整する。
【国際調査報告】
2017221309.tif 000024
2017221309.tif 000025