(57)【特許請求の範囲】
【請求項１】
ワイヤ放電加工機に対して複数のジョブを投入するためのスケジュールを示すスケジュールデータを作成するスケジューリング装置であって、
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて、前記スケジュールデータを作成するスケジュール作成部と、
前記ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期、および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて、前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期を算出する保守必要時期算出部と、
前記スケジュールデータおよび前記保守必要時期に基づいて、前記ジョブの実行中に前記保守によって前記ワイヤ放電加工機による加工が停止する時期である停止時期を算出する停止時期算出部と、
前記停止時期を外部装置に出力する出力部と、
を備えることを特徴とするスケジューリング装置。
【請求項２】
ワイヤ放電加工機に対して複数のジョブを投入するためのスケジュールを示すスケジュールデータを作成するスケジューリング装置であって、
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて、前記スケジュールデータを作成するスケジュール作成部と、
前記ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期、および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて、前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期を算出する保守必要時期算出部と、
前記スケジュールデータおよび前記保守必要時期に基づいて、前記ジョブの実行中に前記保守によって前記ワイヤ放電加工機による加工が停止する時期である停止時期を算出する停止時期算出部と、
前記停止時期が前記ジョブのうちの何れかのジョブの実行中になる場合には、前記スケジュールデータ、前記保守必要時期、および前記停止時期に基づいて、前記停止時期が前記ジョブの実行中とならないように前記スケジュールデータを修正するスケジュール修正部と、
を備えることを特徴とするスケジューリング装置。
【請求項３】
前記スケジュール作成部は、
前記ワイヤ放電加工機のそれぞれに対して前記スケジュールデータを作成し、
前記スケジュール修正部は、
前記停止時期に実行中となるジョブである実行中ジョブの代わりに、全ての前記ワイヤ放電加工機のジョブの中から、前記停止時期に実行中とならないジョブである代替ジョブを抽出できた場合は、前記代替ジョブと前記実行中ジョブとを入れ替えることで前記スケジュールデータを修正し、前記代替ジョブを抽出できなかった場合は、前記保守を前記実行中ジョブの前に設定し、前記保守の後に前記実行中ジョブを設定することで前記スケジュールデータを修正する、
ことを特徴とする請求項２に記載のスケジューリング装置。
【請求項４】
前記スケジュール修正部は、
全ての前記スケジュールデータの中で最後にジョブが終了する日時が早くなるように、前記スケジュールデータを修正する、
ことを特徴とする請求項３に記載のスケジューリング装置。
【請求項５】
前記スケジュール修正部は、
前記ジョブに設定された優先順位に基づいて前記スケジュールデータを修正する、
ことを特徴とする請求項２から４の何れか１つに記載のスケジューリング装置。
【請求項６】
前記スケジュール作成部は、
前記スケジュールデータに対応するスケジュールの実行中に、実行中の前記ジョブの前記加工見積時間をリアルタイムで更新し、
前記保守必要時期算出部は、
前記スケジュールデータに対応するスケジュールの実行中に、前記保守必要時期をリアルタイムで更新し、
前記スケジュール修正部は、
更新後の前記加工見積時間および更新後の前記保守必要時期に基づいて、前記スケジュールデータを修正する、
ことを特徴とする請求項２から５の何れか１つに記載のスケジューリング装置。
【請求項７】
前記スケジュール修正部は、
修正する前の前記スケジュールデータの中で最後にジョブが終了する日時である第１の日時と、修正後の前記スケジュールデータの中で最後にジョブが終了する日時である第２の日時とを比較することで、修正による前記スケジュールデータの改善度を算出し、
前記改善度は、外部装置に出力される、
ことを特徴とする請求項２から６の何れか１つに記載のスケジューリング装置。
【請求項８】
前記保守必要時期算出部は、消耗品毎に、加工中と非加工中とに分けて、前記保守必要時期を算出する、
ことを特徴とする請求項１から７の何れか１つに記載のスケジューリング装置。
【請求項９】
前記保守必要時期算出部は、加工が実施される場合には、全ての消耗品の寿命に基づいて前記保守必要時期を算出し、加工が実施されない場合には非加工中でも消耗される消耗品の寿命に基づいて前記保守必要時期を算出する、
ことを特徴とする請求項８に記載のスケジューリング装置。
【請求項１０】
前記スケジュール修正部は、
前記ワイヤ放電加工機のうちの第１のワイヤ放電加工機に対して作成した前記スケジュールデータから抽出した前記代替ジョブと、前記ワイヤ放電加工機のうちの第２のワイヤ放電加工機に対して作成した前記スケジュールデータから抽出した前記実行中ジョブとを入れ替えることで前記スケジュールデータを修正する、
ことを特徴とする請求項３に記載のスケジューリング装置。
【請求項１１】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、修正された前記スケジュールデータである修正スケジュールデータおよび前記保守必要時期に従って前記ワイヤ放電加工機が加工を実行した場合の実行結果を示すスケジュール運転実行結果データと、を含む学習用データを取得するデータ取得部と、
前記学習用データを用いて、前記スケジュールデータおよび前記保守必要時期から前記スケジュール運転実行結果データに対応する前記修正スケジュールデータを推論するための学習済モデルを生成するモデル生成部と、
を備え、
前記学習済モデルは、前記修正スケジュールデータにおける最後のジョブの実行が完了するまでの時間を早める前記修正スケジュールデータを推論するためのモデルである、
ことを特徴とする学習装置。
【請求項１２】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、を推論用データとして取得するデータ取得部と、
修正された前記スケジュールデータである修正スケジュールデータを推論するための学習済モデルを用いて、前記スケジュールデータおよび前記保守必要時期から前記修正スケジュールデータを推論する推論部と、
を備え、
前記学習済モデルは、前記修正スケジュールデータにおける最後のジョブの実行が完了するまでの時間を早める前記修正スケジュールデータを推論するためのモデルである、
ことを特徴とするスケジューリング装置。
【請求項１３】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、修正された前記スケジュールデータである修正スケジュールデータおよび前記保守必要時期に従って前記ワイヤ放電加工機が加工を実行した場合の実行結果を示すスケジュール運転実行結果データと、を含む学習用データを取得するデータ取得部と、
前記学習用データを用いて、前記スケジュールデータおよび前記保守必要時期から前記スケジュール運転実行結果データに対応する前記修正スケジュールデータを推論するための学習済モデルを生成するモデル生成部と、
を備え、
前記学習済モデルは、特定期間における全ての前記ワイヤ放電加工機の合計のジョブ実行時間の割合が大きくなる前記修正スケジュールデータを推論するモデルである、
ことを特徴とする学習装置。
【請求項１４】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、を推論用データとして取得するデータ取得部と、
修正された前記スケジュールデータである修正スケジュールデータを推論するための学習済モデルを用いて、前記スケジュールデータおよび前記保守必要時期から前記修正スケジュールデータを推論する推論部と、
前記学習済モデルは、特定期間における全ての前記ワイヤ放電加工機の合計のジョブ実行時間の割合が大きくなる前記修正スケジュールデータを推論するモデルである、
ことを特徴とするスケジューリング装置。
【請求項１５】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、修正された前記スケジュールデータである修正スケジュールデータおよび前記保守必要時期に従って前記ワイヤ放電加工機が加工を実行した場合の実行結果を示すスケジュール運転実行結果データと、を含む学習用データを取得するデータ取得部と、
前記学習用データを用いて、前記スケジュールデータおよび前記保守必要時期から前記スケジュール運転実行結果データに対応する前記修正スケジュールデータを推論するための学習済モデルを生成するモデル生成部と、
を備え、
前記学習済モデルは、各ジョブの納期を守りつつ、特定期間における全ての前記ワイヤ放電加工機の合計のジョブ実行数が多くなる前記修正スケジュールデータを推論するモデルである、
ことを特徴とする学習装置。
【請求項１６】
各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて作成されたスケジュールデータと、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期および前記ワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて算出された前記ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期と、を推論用データとして取得するデータ取得部と、
修正された前記スケジュールデータである修正スケジュールデータを推論するための学習済モデルを用いて、前記スケジュールデータおよび前記保守必要時期から前記修正スケジュールデータを推論する推論部と、
前記学習済モデルは、各ジョブの納期を守りつつ、特定期間における全ての前記ワイヤ放電加工機の合計のジョブ実行数が多くなる前記修正スケジュールデータを推論するモデルである、
ことを特徴とするスケジューリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、機械加工設備におけるジョブのスケジュールデータを作成するスケジューリング装置および学習装置に関する。
【背景技術】
【０００２】
近年、機械加工設備において効率良くジョブを実行するために、複数からなるジョブのトータルの実行時間を短くできるスケジュールデータを作成することが望まれている。【０００３】
特許文献１に記載の加工スケジューリングシステムは、機械加工設備が稼動中のワークの生産準備作業と、機械加工設備を停止した状態での生産準備作業と、を分けて加工のスケジューリングを行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５６２２４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、機械加工設備における保守作業を考慮せずにスケジューリングを行っているので、保守作業が必要な場合には、複数からなるジョブのトータルの実行時間を短くできない場合があった。【０００６】
本開示は、上記に鑑みてなされたものであって、複数からなるジョブのトータルの実行時間を短くすることができるスケジューリング装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示は、ワイヤ放電加工機に対して複数のジョブを投入するためのスケジュールを示すスケジュールデータを作成するスケジューリング装置であって、各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて、スケジュールデータを作成するスケジュール作成部を備える。また、本開示のスケジューリング装置は、ワイヤ放電加工機が用いる加工中に消耗する消耗品、および加工中と非加工中とに消耗する消耗品のそれぞれについて予測された寿命の時期である寿命予測時期、およびワイヤ放電加工機が有する部品のメンテナンスの時期であるメンテナンス時期に基づいて、ワイヤ放電加工機に対して保守が必要となる時期である保守必要時期を算出する保守必要時期算出部を備える。また、本開示のスケジューリング装置は、スケジュールデータおよび保守必要時期に基づいて、ジョブの実行中に保守によってワイヤ放電加工機による加工が停止する時期である停止時期を算出する停止時期算出部と、停止時期を外部装置に出力する出力部と、を備える。
【発明の効果】
【０００８】
本開示にかかるスケジューリング装置は、複数からなるジョブのトータルの実行時間を短くすることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかるスケジューリング装置の構成を示す図
【図２】実施の形態１にかかるスケジューリング装置が作成するスケジュールデータの構成を示す図
【図３】実施の形態１にかかるスケジューリング装置が作成する時期情報の構成を示す図
【図４】実施の形態１にかかるスケジューリング装置が算出する消耗品寿命予測時期を説明するための図
【図５】実施の形態１にかかるスケジューリング装置が算出する部品メンテナンス時期を説明するための図
【図６】実施の形態１にかかるスケジューリング装置が作成する保守必要時期データの構成を示す図
【図７】実施の形態１にかかるスケジューリング装置が設定する、加工が実施される場合の消耗品の保守必要時期を説明するための図
【図８】実施の形態１にかかるスケジューリング装置が設定する、加工が実施されない場合の消耗品の保守必要時期を説明するための図
【図９】実施の形態１にかかるスケジューリング装置が設定する、メンテナンスのための保守必要時期を説明するための図
【図１０】実施の形態１にかかるスケジューリング装置による保守必要時期の算出処理手順を示すフローチャート
【図１１】実施の形態１にかかるスケジューリング装置による停止時期の提示処理手順を示すフローチャート
【図１２】実施の形態１にかかるスケジューリング装置による停止時期の算出処理を説明するための図
【図１３】実施の形態１にかかるスケジューリング装置を実現するハードウェア構成例を示す図
【図１４】実施の形態２にかかるスケジューリング装置の構成を示す図
【図１５】実施の形態２にかかるスケジューリング装置によるスケジュールデータの修正処理手順を示すフローチャート
【図１６】実施の形態２にかかるスケジューリング装置によるスケジュールデータの修正処理と、比較例のスケジューリング装置によるスケジュールデータの修正処理とを説明するための図
【図１７】実施の形態３にかかる学習装置の構成を示す図
【図１８】実施の形態３にかかる学習装置による学習処理の処理手順を示すフローチャート
【図１９】実施の形態３にかかる推論装置の構成を示す図
【図２０】実施の形態３にかかる推論装置による推論処理の処理手順を示すフローチャート
【発明を実施するための形態】
【００１０】
以下に、本開示の実施の形態にかかるスケジューリング装置および学習装置を図面に基づいて詳細に説明する。
【００１１】
実施の形態１．
図１は、実施の形態１にかかるスケジューリング装置の構成を示す図である。スケジューリング装置１０Ａは、機械加工設備において実行されるジョブのスケジュールデータ４１を作成するとともに、スケジュールデータ４１に基づいて機械加工設備を停止させる時期を算出するコンピュータである。スケジューリング装置１０Ａは、スケジュールデータ４１の作成と機械加工設備を停止させる時期である停止時期の算出とを行うスケジューラを備えている。
【００１２】
スケジューリング装置１０Ａは、加工機８１および表示装置８３に接続されている。加工機８１は、機械加工設備に配置される装置であり、ワークの加工を実行する。加工機８１の例は、ワイヤ放電加工機等の工作機械である。以下の説明では、加工機８１がワイヤ放電加工機である場合について説明する。
【００１３】
加工機８１は、加工機８１を制御する制御装置８２を備えており、制御装置８２が、加工機８１の稼働履歴を示す稼働履歴情報をスケジューリング装置１０Ａに送る。稼働履歴情報には、例えば、ワイヤの走行時間、スラッジ除去フィルタである加工液フィルタの圧力変化、および加工液フィルタへの通水時間が含まれている。表示装置８３の例は、液晶モニタである。加工液フィルタは、加工屑除去フィルタとも呼ばれる。
【００１４】
スケジューリング装置１０Ａは、例えば、ＡＭＲ（Autonomous  Mobile  Robot，自律走行型協働搬送ロボット）、ＡＧＶ（Automatic  Guided  Vehicle，自動搬送台車）などを含んだ種々の装置のスケジュールを作成する統括スケジューラである。
【００１５】
スケジューリング装置１０Ａは、加工機８１が種々のワークを種々の加工プログラムで順番に加工していく際に用いるスケジュールデータ４１を作成する。
【００１６】
スケジューリング装置１０Ａは、スケジュール作成部１１と、時期情報作成部１２と、保守必要時期算出部１３と、停止時期算出部１４と、停止時期出力部１５とを備えている。
【００１７】
スケジュール作成部１１は、加工機８１が実行する加工の単位であるジョブの実行順序を登録したスケジュールデータ４１を作成する。具体的には、スケジュール作成部１１は、ユーザによって入力されるユーザ指定情報２０および対応時間情報２４に基づいて、複数からなるジョブの実行スケジュールを示すスケジュールデータ４１を作成する。ユーザ指定情報２０には、加工プログラムＩＤ（IDentification，識別）情報２３、ワークＩＤ情報２２、および加工指示情報２１が含まれている。
【００１８】
スケジュール作成部１１は、加工プログラムＩＤ情報２３と、ワークＩＤ情報２２と、加工指示情報２１とを含んだユーザ指定情報２０を受け付ける。スケジュール作成部１１は、複数のユーザ指定情報２０をユーザから受け付ける。１つのユーザ指定情報２０が、１つのジョブに対応している。
【００１９】
加工プログラムＩＤ情報２３は、ジョブの実行に用いられる加工プログラムを識別する情報である。加工プログラムは、ジョブ毎に作成されている。ワークＩＤ情報２２は、ワークを識別する情報である。加工指示情報２１は、加工機８１を識別する情報である加工機ＩＤ、ジョブの完了期限であるジョブの納期などを含んでいる。また、ユーザ指定情報２０には、ジョブを実行する優先順位の情報が含まれていてもよい。
【００２０】
対応時間情報２４は、加工プログラムＩＤ情報２３とワークＩＤ情報２２と加工機ＩＤとの組み合わせに対する加工の見積時間を示す情報である。対応時間情報２４では、加工プログラムＩＤ情報２３と、ワークＩＤ情報２２と、加工機ＩＤと、加工の見積時間とが対応付けされた情報が格納されている。
【００２１】
スケジューリング装置１０Ａは、予め対応時間情報２４を外部装置から取得してメモリ（図示せず）などに格納しておく。
【００２２】
スケジュール作成部１１は、ユーザ指定情報２０に含まれる加工プログラムＩＤ情報２３とワークＩＤ情報２２と加工機ＩＤとの組み合わせと、メモリなどに格納されている対応時間情報２４とに基づいて、ジョブに対応する加工の見積時間を算出する。
【００２３】
ここで、スケジュールデータ４１の構成について説明する。図２は、実施の形態１にかかるスケジューリング装置が作成するスケジュールデータの構成を示す図である。スケジュールデータ４１では、ジョブＩＤと、優先順位と、加工指示と、ワークＩＤと、加工プログラムＩＤと、見積時間とが対応付けされている。
【００２４】
ジョブＩＤは、ジョブを識別する情報である。ジョブＩＤは、スケジュール作成部１１によって設定される。スケジュール作成部１１は、ユーザから受け付けたユーザ指定情報２０に基づいて、スケジュールデータ４１にジョブＩＤ毎の優先順位を登録する。スケジュール作成部１１は、ユーザから受け付けた加工指示情報２１に基づいて、スケジュールデータ４１に加工指示の情報を登録する。スケジュールデータ４１の加工指示には、加工機ＩＤおよびジョブの納期が含まれている。
【００２５】
また、スケジュール作成部１１は、ユーザから受け付けたワークＩＤ情報２２に基づいて、スケジュールデータ４１にワークＩＤを登録する。また、スケジュール作成部１１は、ユーザから受け付けた加工プログラムＩＤ情報２３に基づいて、スケジュールデータ４１に加工プログラムＩＤを登録する。
【００２６】
また、スケジュール作成部１１は、対応時間情報２４に基づいて、スケジュールデータ４１に見積時間を登録する。スケジュールデータ４１の見積時間には、加工処理の見積時間と、加工前処理の見積時間と、加工後処理の見積時間とが含まれている。加工前処理の見積時間には、ワークの搬入時間およびワークの段取り時間が含まれている。ワークの段取りは、ワークの平行取付処理、ワークの水平取付処理、ワークの基準位置の測定処理などである。加工後処理の見積時間には、ワークの測定処理およびワークの搬出時間が含まれている。
【００２７】
スケジュール作成部１１は、例えば、納期が近いジョブから順番にジョブが実行されるようにスケジュールデータ４１を作成する。なお、スケジュール作成部１１は、優先順位が上位であるジョブから順番にジョブが実行されるようにスケジュールデータ４１を作成してもよい。スケジュール作成部１１は、作成したスケジュールデータ４１を、停止時期算出部１４に送る。
【００２８】
スケジュールデータ４１に従ったジョブは、ユーザ指示に従って実施されてもよいし、ワーク搬送装置または加工機８１などに自動で指示を出力する自動化システムによって実施されてもよい。
【００２９】
スケジュール作成部１１は、１台の加工機８１に対してスケジュールデータ４１を作成してもよいし、複数台の加工機８１に対してスケジュールデータ４１を作成してもよい。
【００３０】
スケジュール作成部１１は、優先順位に従って設定されたジョブの実行順を、納期の順番などに基づいて自動で並べ替えてもよい。また、スケジュール作成部１１は、納期の順番などに基づいて設定されたジョブの実行順を、優先順位に基づいて自動で並べ替えてもよい。
【００３１】
時期情報作成部１２は、加工機８１の制御装置８２から送られてくる稼働履歴情報を受け付ける。時期情報作成部１２は、稼働履歴情報に基づいて、各消耗品の寿命予測時期を示す消耗品寿命予測時期３１を算出する。また、時期情報作成部１２は、稼働履歴情報内から、各部品のメンテナンス時期を示す部品メンテナンス時期３２を抽出する。消耗品寿命予測時期３１および部品メンテナンス時期３２には、加工機ＩＤが含まれている。消耗品寿命予測時期３１は、消耗品の寿命までの時間であってもよいし、消耗品が寿命となる日時であってもよい。部品メンテナンス時期３２は、部品のメンテナンスを予定している日時である。
【００３２】
なお、時期情報作成部１２は、メンテナンス周期ではなく使用時間で管理される部品については消耗品の寿命と同様に扱うことができる。
【００３３】
ここで、消耗品寿命予測時期３１および部品メンテナンス時期３２を含んだ時期情報の構成について説明する。図３は、実施の形態１にかかるスケジューリング装置が作成する時期情報の構成を示す図である。時期情報４０では、加工機８１を識別する情報である加工機ＩＤと、消耗品寿命予測時期３１と、部品メンテナンス時期３２とが対応付けされている。
【００３４】
消耗品には、加工中にのみ消耗する消耗品と、非加工中でも消耗する消耗品とがある。したがって、時期情報作成部１２は、各消耗品の消耗態様に合わせて消耗品毎に消耗品寿命予測時期３１を算出する。
【００３５】
例えば、ワイヤ放電加工機の場合、ワイヤ（ワイヤ電極線）は、加工中にのみ消耗する消耗品である。このため、時期情報作成部１２は、加工中のワイヤ送り速度に基づいてワイヤの消耗量を示す消費量を算出し、消費量に基づいてワイヤの消耗品寿命予測時期３１を算出する。
【００３６】
また、加工液フィルタは、加工中にのみ消耗する消耗品である。このため、時期情報作成部１２は、加工液フィルタに通水する回路（以下、フィルタ通水回路という）の圧力変化、加工による加工屑の発生量、加工されるワークの材質などのデータに基づいて加工液フィルタの消耗品寿命予測時期３１を算出する。
【００３７】
また、加工液中のイオン交換樹脂であるイオン濃度調整樹脂は、非加工中もイオン交換樹脂に通水されるため、加工中と非加工中との両方で消耗する消耗品である。このため、時期情報作成部１２は、加工中と非加工中との両方を含めたイオン交換樹脂への通水量に基づいて消耗品寿命予測時期３１を算出する。
【００３８】
図３の時期情報４０では、加工中のみ消耗する消耗品を消耗品Ｂ１１で示し、加工中と非加工中との両方で消耗する消耗品を消耗品Ｂ１２で示している。
【００３９】
加工機８１に含まれる各部品に対しては、日常点検、1週間点検、１か月点検、半年点検等の各部品に必要なメンテナンス時期がある。したがって、時期情報作成部１２は、各部品に必要なメンテナンス時期を部品メンテナンス時期３２として時期情報４０に設定する。図３の時期情報４０では、直近の、すなわち１回目のメンテナンス時期をメンテナンスＣ１で示し、２回目のメンテナンス時期をメンテナンスＣ２で示している。時期情報作成部１２は、時期情報４０を保守必要時期算出部１３に送る。
【００４０】
なお、時期情報作成部１２は、消耗品寿命予測時期３１と、部品メンテナンス時期３２とを合成した時期情報４０を作成する場合に限らず、消耗品寿命予測時期３１と、部品メンテナンス時期３２とを別々のデータとして作成してもよい。
【００４１】
また、時期情報４０は、制御装置８２で作成されてもよい。この場合、制御装置８２が、時期情報作成部１２を備える。また、時期情報４０は、制御装置８２以外の外部のコンピュータなどで作成されてもよい。この場合、外部のコンピュータなどが、時期情報作成部１２を備える。
【００４２】
ここで、消耗品寿命予測時期３１および部品メンテナンス時期３２について説明する。図４は、実施の形態１にかかるスケジューリング装置が算出する消耗品寿命予測時期を説明するための図である。図５は、実施の形態１にかかるスケジューリング装置が算出する部品メンテナンス時期を説明するための図である。
【００４３】
図４の横軸は時間であり、縦軸はワイヤボビン径である。図５の横軸は時間であり、縦軸は加工液フィルタのフィルタ通水回路の圧力である。図４では、時間とともに変化するワイヤボビン径をワイヤボビン径Ｐ１として示し、図５では、時間とともに変化するフィルタ通水回路の圧力を圧力Ｐ２として示している。
【００４４】
ワイヤ放電加工機では、ワイヤが巻かれたワイヤボビンからワイヤが送り出され、送り出されたワイヤによってワークが加工され、加工に用いられたワイヤが回収される。このため、ワイヤが巻かれたワイヤボビンのワイヤボビン径Ｐ１は、図４に示すように、時間とともに小さくなる。時期情報作成部１２は、ワイヤボビン径Ｐ１が特定の径である閾値Ｑ１となる時間ｔ１をワイヤの消耗品寿命予測時期３１として算出する。
【００４５】
また、ワイヤ放電加工機では、加工が進むに従って加工屑が堆積するので、フィルタ通水回路の圧力Ｐ２は、図５に示すように時間とともに高くなる。時期情報作成部１２は、フィルタ通水回路の圧力が特定の圧力である閾値Ｑ２となる時間ｔ２を加工液フィルタの部品メンテナンス時期３２として算出する。
【００４６】
保守必要時期算出部１３は、消耗品寿命予測時期３１および部品メンテナンス時期３２を含んだ時期情報４０に基づいて、保守必要時期データ４２を算出する。保守必要時期データ４２は、消耗品の寿命または部品のメンテナンスのために、保守作業が必要となる時期を示すデータである。保守必要時期データ４２は、保守の開始時間、および保守の終了時間の情報を含んでいる。
【００４７】
保守必要時期データ４２は、各消耗品の寿命予測時期と、各部品のメンテナンス時期とのうち、最も早く消耗品の交換またはメンテナンスが必要となる時期、すなわち直近で保守作業が必要になる時期（以下、直近保守時期という場合がある）のデータを含んでいる。保守必要時期データ４２は、保守作業が必要になるまでの時間であってもよいし、保守作業が必要になる日時であってもよい。保守作業の際には、加工機８１は停止する。
【００４８】
スケジューリング装置１０Ａは、例えば、スケジュールデータ４１と合わせて、加工機８１の停止時期を提示するために、保守必要時期算出部１３が保守必要時期データ４２を算出する。消耗品は、加工中と非加工中といった運転状況に従って消耗具合が変化し、寿命予測時期も変化する。したがって、保守必要時期算出部１３は、消耗品毎に、加工中と非加工中とを分けて、寿命予測時期を算出する。
【００４９】
保守必要時期算出部１３は、例えば、保守必要時期データ４２の保守必要時期を、加工が実施される場合には、全ての消耗品の寿命に基づいて算出し、加工を実施しない場合には非加工中でも消耗される消耗品の寿命に基づいて算出する。すなわち、保守必要時期算出部１３は、加工が実施される期間と加工が実施されない期間とに分けて消耗の進行度を算出し、消耗の進行度に基づいて保守必要時期を算出する。保守必要時期算出部１３は、算出した保守必要時期を保守必要時期データ４２に登録する。
【００５０】
また、保守必要時期算出部１３は、加工機８１の運転状況にかかわらず、部品メンテナンス時期３２に対応する保守必要時期を保守必要時期データ４２に登録する。また、保守必要時期算出部１３は、加工が実施される期間と加工が実施されない期間とに分けて消耗の進行度を算出し、消耗の進行度および部品メンテナンス時期３２に基づいて直近保守時期を決定する。保守必要時期算出部１３は、直近保守時期を保守必要時期データ４２に登録する。
【００５１】
ここで、保守必要時期データ４２について説明する。図６は、実施の形態１にかかるスケジューリング装置が作成する保守必要時期データの構成を示す図である。保守必要時期データ４２では、加工機ＩＤと、保守必要時期と、消耗品寿命予測時期３１と、部品メンテナンス時期３２とが対応付けされている。換言すると、保守必要時期データ４２では、加工機ＩＤ毎に、保守必要時期、消耗品寿命予測時期３１、および部品メンテナンス時期３２が登録されている。また、保守必要時期データ４２では、各加工機ＩＤの直近保守時期が登録されている。
【００５２】
図６に示す消耗品寿命予測時期３１および部品メンテナンス時期３２は、図３に示した時期情報４０の消耗品寿命予測時期３１および部品メンテナンス時期３２に対応している。
【００５３】
保守必要時期算出部１３は、消耗品寿命予測時期３１および部品メンテナンス時期３２に基づいて、保守必要時期を算出する。保守必要時期には、直近保守までの加工時間と、加工時間＋非加工時間と、直近でメンテナンスが実行される予定の日時とが含まれている。保守必要時期は、保守が必要となる時期までの時間で示されてもよいし、保守が必要となる日時で示されてもよい。
【００５４】
加工中にのみ消耗する消耗品Ｂ１１が、加工中および非加工中に消耗する消耗品Ｂ１２よりも先に寿命になり、且つこの寿命が部品メンテナンス時期３２よりも近い場合、保守必要時期算出部１３は、加工中にのみ消耗する消耗品Ｂ１１の寿命のタイミングを直近保守時期に設定する。この場合、直近保守時期になると、加工中にのみ消耗する消耗品Ｂ１１の交換が行われる。
【００５５】
加工中および非加工中に消耗する消耗品Ｂ１２が、加工中にのみ消耗する消耗品Ｂ１１よりも先に寿命になり、且つこの寿命が部品メンテナンス時期３２よりも近い場合、保守必要時期算出部１３は、加工中および非加工中に消耗する消耗品Ｂ１２の寿命のタイミングを直近保守時期に設定する。この場合、直近保守時期になると、加工中および非加工中に消耗する消耗品Ｂ１２の交換が行われる。
【００５６】
部品メンテナンス時期３２が、消耗品Ｂ１１，Ｂ１２の寿命の時期よりも早い場合、保守必要時期算出部１３は、部品メンテナンス時期３２を直近保守時期に設定する。この場合、直近保守時期になると、部品のメンテナンスが行われる。
【００５７】
図６では、各加工機８１における直近保守時期を網掛けで示している。保守必要時期に含まれる加工時間＋非加工時間は、消耗品寿命予測時期３１において加工中および非加工中に消耗する消耗品の寿命と同じ時間となっている。また、保守必要時期に含まれるメンテナンスの時期は、部品メンテナンス時期３２における直近のメンテナンスの時期と同じである。また、保守必要時期に含まれる直近保守までの加工時間は、直近で保守が必要な時期までの時間以下の時間となる。
【００５８】
図７は、実施の形態１にかかるスケジューリング装置が設定する、加工が実施される場合の消耗品の保守必要時期を説明するための図である。図７では、加工中にのみ消耗する消耗品を消耗品Ｂ１１で示し、加工中および非加工中に消耗する消耗品を消耗品Ｂ１２，Ｂ１３で示している。
【００５９】
加工が実施される場合、すなわち加工中には、消耗品Ｂ１１〜Ｂ１３の全てが消耗する。したがって、保守必要時期算出部１３は、消耗品Ｂ１１〜Ｂ１３の中から最短で寿命となる消耗品の寿命のタイミングを、保守が必要な時期である保守必要時期ＴＭ１に設定する。ここでは、消耗品Ｂ１１の寿命が最も残り少ないので、保守必要時期算出部１３は、消耗品Ｂ１１の寿命のタイミングを保守必要時期ＴＭ１に設定する。
【００６０】
図８は、実施の形態１にかかるスケジューリング装置が設定する、加工が実施されない場合の消耗品の保守必要時期を説明するための図である。図８では、加工中にのみ消耗する消耗品を消耗品Ｂ１１で示し、加工中および非加工中に消耗する消耗品を消耗品Ｂ１２，Ｂ１３で示している。
【００６１】
加工が実施されない場合、すなわち非加工中には、消耗品Ｂ１２，Ｂ１３は消耗するが、消耗品Ｂ１１は消耗しない。したがって、保守必要時期算出部１３は、消耗品Ｂ１２，Ｂ１３の中から最短で寿命となる消耗品の寿命のタイミングを、保守が必要な時期である保守必要時期ＴＭ２に設定する。ここでは、消耗品Ｂ１３の寿命が最も残り少ないので、保守必要時期算出部１３は、消耗品Ｂ１３の寿命のタイミングを保守必要時期ＴＭ２に設定する。
【００６２】
図９は、実施の形態１にかかるスケジューリング装置が設定する、メンテナンスのための保守必要時期を説明するための図である。図９では、１つ目のメンテナンスをメンテナンスＣ１で示し、２つ目のメンテナンスをメンテナンスＣ２で示している。メンテナンスＣ１の時期は、５月３０日の９時であり、メンテナンスＣ２の時期は、９月２９日の９時である。
【００６３】
保守必要時期算出部１３は、メンテナンスＣ１，Ｃ２のうち直近のメンテナンスを、保守が必要な時期である保守必要時期ＴＭ３に設定する。ここでは、メンテナンスＣ１の時期が直近なので、保守必要時期算出部１３は、メンテナンスＣ１のタイミングを保守必要時期ＴＭ３に設定する。
【００６４】
保守必要時期算出部１３は、保守必要時期ＴＭ１〜ＴＭ３などを保守必要時期データ４２に登録する。保守必要時期ＴＭ１〜ＴＭ３のうち直近の保守必要時期が、直近保守時期である。保守必要時期算出部１３は、２つ目のメンテナンスＣ２の時期を保守必要時期データ４２に登録してもよい。保守必要時期算出部１３は、保守必要時期データ４２を停止時期算出部１４に送る。
【００６５】
停止時期算出部１４は、スケジュールデータ４１および保守必要時期データ４２に基づいて、スケジュールデータ４１に登録されているジョブが完了するまでに保守が必要であるか否かを判断する。停止時期算出部１４は、保守が必要になると判断した場合には、スケジュールデータ４１および保守必要時期データ４２に基づいて、保守が必要になる時期である停止時期を算出する。停止時期は、保守のために加工機８１を停止させる時期である。すなわち、停止時期は、特定の時期にスケジュールデータ４１に対応するスケジュールの実行を停止したうえで保守が必要になる時期である。停止時期の例は、直近保守時期である。
【００６６】
停止時期算出部１４は、算出した停止時期を、停止時期出力部１５に送る。また、停止時期算出部１４は、スケジュールデータ４１および保守必要時期データ４２を停止時期出力部１５に送る。
【００６７】
停止時期出力部１５は、停止時期、スケジュールデータ４１、および保守必要時期データ４２を表示装置８３に出力する。
【００６８】
これにより、表示装置８３は、停止時期、スケジュールデータ４１、および保守必要時期データ４２を表示する。なお、停止時期出力部１５は、停止時期、スケジュールデータ４１、および保守必要時期データ４２を、表示装置８３以外の外部装置に出力してもよい。この場合、停止時期出力部１５は、外部のコンピュータなどに、通信回線などを介して、停止時期、スケジュールデータ４１、および保守必要時期データ４２を送信する。
【００６９】
このように、スケジューリング装置１０Ａは、スケジュールデータ４１に登録されているジョブが完了するまでに保守が必要であると判断した場合には、停止時期を算出して提示する。
【００７０】
つぎに、保守必要時期の算出処理手順と、停止時期の提示処理手順について説明する。図１０は、実施の形態１にかかるスケジューリング装置による保守必要時期の算出処理手順を示すフローチャートである。
【００７１】
スケジューリング装置１０Ａの保守必要時期算出部１３は、各消耗品の消耗品寿命予測時期３１を、時期情報作成部１２から収集する（ステップＳ１０）。保守必要時期算出部１３は、消耗品寿命予測時期３１に基づいて、最短で寿命となる消耗品の寿命のタイミングを抽出する（ステップＳ２０）。
【００７２】
また、保守必要時期算出部１３は、各部品の部品メンテナンス時期３２を、時期情報作成部１２から収集する（ステップＳ３０）。保守必要時期算出部１３は、部品メンテナンス時期３２に基づいて、最短で必要になるメンテナンスの時期を抽出する（ステップＳ４０）。
【００７３】
なお、保守必要時期算出部１３は、ステップＳ１０の処理をステップＳ２０の処理よりも先に実行し、ステップＳ３０の処理をステップＳ４０の処理よりも先に実行することを条件に、ステップＳ１０からＳ４０の処理を何れの順番で実行してもよい。
【００７４】
保守必要時期算出部１３は、ステップＳ１０からＳ４０の処理を実行した後、保守必要時期を算出し、保守必要時期データ４２を作成する（ステップＳ５０）。具体的には、保守必要時期算出部１３は、消耗品寿命予測時期３１および部品メンテナンス時期３２に基づいて保守必要時期データ４２を作成する。
【００７５】
また、保守必要時期算出部１３は、最短で寿命となる消耗品の寿命のタイミングおよび最短で必要になるメンテナンスの時期に基づいて、直近保守時期を算出する（ステップＳ６０）。なお、保守必要時期算出部１３は、ステップＳ１０，Ｓ３０の後であれば、何れのタイミングでステップＳ５０の処理を実行してもよい。また、保守必要時期算出部１３は、ステップＳ２０，Ｓ４０の後であれば、何れのタイミングでステップＳ６０の処理を実行してもよい。
【００７６】
図１１は、実施の形態１にかかるスケジューリング装置による停止時期の提示処理手順を示すフローチャートである。スケジューリング装置１０Ａの停止時期算出部１４は、スケジュールデータ４１および保守必要時期データ４２を取得する（ステップＳ１１０）。
【００７７】
停止時期算出部１４は、スケジュールデータ４１から、Ｎ（Ｎは自然数）番目のジョブであるジョブ（Ｎ）の見積時間を抽出する（ステップＳ１２０）。１番目のジョブ（１）は、加工機８１が１番目に実行するジョブであり、Ｎ番目のジョブ（Ｎ）は、加工機８１がＮ番目に実行するジョブである。ここでの、停止時期算出部１４は、スケジュールデータ４１から、１番目のジョブであるジョブ（１）の見積時間を抽出する。停止時期算出部１４は、保守必要時期データ４２から、ジョブ（１）〜（Ｎ）が投入される加工機８１の保守必要時期を抽出する（ステップＳ１３０）。
【００７８】
停止時期算出部１４は、保守必要時期に基づいて、保守までの期間を算出する。停止時期算出部１４は、保守までの期間からジョブ（Ｎ）の見積時間を減算する。ここでの停止時期算出部１４は、保守までの期間からジョブ（１）の見積時間を減算する（ステップＳ１４０）。
【００７９】
停止時期算出部１４は、減算結果が０以下であるか否かを判断する（ステップＳ１５０）。すなわち、停止時期算出部１４は、保守までの期間が、ジョブ（１）の見積時間よりも長いか否かを判断する。
【００８０】
減算結果が０よりも大きい場合（ステップＳ１５０、Ｎｏ）、停止時期算出部１４は、減算結果を保守までの期間とする（ステップＳ１７０）。すなわち、停止時期算出部１４は、保守までの期間を減算結果の期間で更新する。
【００８１】
停止時期算出部１４は、全てのジョブに対して、保守までの期間から見積時間を減算したか否かを判断する（ステップＳ１８０）。
【００８２】
全てのジョブに対して、保守までの期間から見積時間を減算していない場合（ステップＳ１８０、Ｎｏ）、停止時期算出部１４は、ステップＳ１２０の処理に戻る。停止時期算出部１４は、ステップＳ１２０の処理として、次のジョブ（Ｎ）の見積時間を抽出する。ここでの、停止時期算出部１４は、スケジュールデータ４１から、２番目のジョブであるジョブ（２）の見積時間を抽出する。この後、停止時期算出部１４は、ステップＳ１３０からＳ１５０の処理を実行する。
【００８３】
停止時期算出部１４は、ステップＳ１５０の処理において減算結果が０よりも大きい場合、全てのジョブに対して、保守までの期間から見積時間を減算するまで、ステップＳ１２０からＳ１７０までの処理を繰り返す。全てのジョブに対して、保守までの期間から見積時間を減算した場合（ステップＳ１８０、Ｙｅｓ）、停止時期算出部１４は、停止時期の提示処理を終了する。すなわち、全てのジョブに対して、保守までの期間から見積時間を減算しても減算結果が０以下になることはない場合、全てのジョブが完了するまでの間に保守作業は不要であるため、加工機８１の停止は不要である。
【００８４】
また、ステップＳ１５０の処理において減算結果が０以下である場合（ステップＳ１５０、Ｙｅｓ）、停止時期算出部１４は、減算結果が０以下になったジョブの加工中に保守必要時期が来ると判断する。停止時期算出部１４は、減算結果が０以下になったジョブの加工中を停止時期として停止時期出力部１５に送る。
【００８５】
停止時期出力部１５は、停止時期を表示装置８３に出力する。これにより、表示装置８３が、停止時期を表示する。このように、スケジューリング装置１０Ａは、算出した停止時期をユーザに提示する（ステップＳ１６０）。
【００８６】
図１２は、実施の形態１にかかるスケジューリング装置による停止時期の算出処理を説明するための図である。ここでは、図７および図８で説明した消耗品Ｂ１１〜Ｂ１３に対して停止時期算出部１４が停止時期を算出する処理について説明する。
【００８７】
図７および図８で説明したように、加工が実施される場合、すなわち加工中の場合には、保守必要時期算出部１３は、消耗品Ｂ１１〜Ｂ１３の中から最短で寿命となる消耗品Ｂ１１の寿命のタイミングを、保守必要時期ＴＭ１に設定する。また、加工が実施されない場合、すなわち非加工中には、消耗品Ｂ１２，Ｂ１３の中から最短で寿命となる消耗品Ｂ１３の寿命のタイミングを、保守必要時期ＴＭ２に設定する。
【００８８】
停止時期算出部１４は、保守必要時期ＴＭ１，ＴＭ２のうち、直近の保守必要時期である直近保守時期を判定する。ここでの停止時期算出部１４は、保守必要時期ＴＭ１が直近保守時期であると判定する。停止時期算出部１４は、直近保守時期であると判定した保守必要時期ＴＭ１が、ジョブの実行中のタイミングであるか否かを判定する。
【００８９】
図１２では、スケジュールに登録されているジョブがジョブ（１），（２）である場合を示している。ジョブ（１）の完了するタイミングが完了タイミングＳＴ１であり、ジョブ（２）の完了するタイミングが完了タイミングＳＴ２である。
【００９０】
直近の保守必要時期ＴＭ１がジョブ（１）またはジョブ（２）の実行中のタイミングである場合、停止時期算出部１４は、図１１で説明した処理によって停止時期を算出する。例えば、保守必要時期ＴＭ１がジョブ（２）の実行中のタイミングとなっている場合、停止時期算出部１４は、ジョブ（２）の実行中が停止時期であると判断する。
【００９１】
停止時期算出部１４は、ジョブ（２）の実行前に保守必要時期ＴＭ１を変更することを提示した情報を作成する。具体的には、停止時期算出部１４は、ジョブ（１）が完了する完了タイミングＳＴ１を保守Ｍｘの開始タイミングに設定することを提示した情報を変更提示情報として作成する。停止時期算出部１４は、作成した変更提示情報を停止時期出力部１５に送る。
【００９２】
停止時期出力部１５は、変更提示情報を表示装置８３に出力する。これにより、表示装置８３が、変更提示情報を表示する。これにより、変更提示情報が表示装置８３に表示されるので、スケジューリング装置１０Ａは、ユーザに適切な停止時期を提示することが可能となる。
【００９３】
このように、スケジューリング装置１０Ａは、ジョブの実行中に保守が必要となる場合には、ジョブの実行中に保守が必要となることをユーザに通知できる。これにより、スケジューリング装置１０Ａは、ジョブの実行中に保守によって加工が停止することをユーザに認識させることができるので、ユーザは加工が停止するジョブの実行前に保守作業を実施するように計画を修正することができる。
【００９４】
これにより、保守によってジョブが途中で中断することを回避できる。各ジョブは、途中で停止されることなく連続して実行される方が、途中で停止されるよりも短時間で完了する。スケジューリング装置１０Ａは、保守によってジョブが途中で停止しない適切な停止時期をユーザに提示することができるので、ジョブの実行時間が長くなることを防止できる。
【００９５】
また、ユーザは、予めジョブの実行中に発生する加工機８１の保守待ちを認識できるので、保守作業者に、保守の予測時間に保守を実施するよう指示を与えることができる。これにより、保守作業者は、ジョブの途中で保守が必要となるジョブの実行前に保守を実行できる。したがって、スケジューリング装置１０Ａは、加工機８１が停止した後の、保守開始までの無駄な時間を削減することが可能となる。
【００９６】
ここで、スケジューリング装置１０Ａのハードウェア構成について説明する。図１３は、実施の形態１にかかるスケジューリング装置を実現するハードウェア構成例を示す図である。
【００９７】
スケジューリング装置１０Ａは、入力装置３００、プロセッサ１００、メモリ２００、および出力装置４００により実現することができる。プロセッサ１００の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ２００の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【００９８】
スケジューリング装置１０Ａは、プロセッサ１００が、メモリ２００で記憶されているスケジューリング装置１０Ａの動作を実行するための、コンピュータで実行可能な、スケジューリングプログラムであるスケジューラを読み出して実行することにより実現される。スケジューリング装置１０Ａの動作を実行するためのプログラムであるスケジューリングプログラムは、スケジューリング装置１０Ａの手順または方法をコンピュータに実行させるものであるともいえる。
【００９９】
スケジューリング装置１０Ａで実行されるスケジューリングプログラムは、スケジュール作成部１１と、時期情報作成部１２と、保守必要時期算出部１３と、停止時期算出部１４とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【０１００】
入力装置３００は、ユーザ指定情報２０および稼働履歴情報を受け付けてプロセッサ１００に送る。メモリ２００は、プロセッサ１００が各種処理を実行する際の一時メモリに使用される。メモリ２００は、スケジュールデータ４１、保守必要時期データ４２、停止時期、変更提示情報などを記憶する。出力装置４００は、スケジュールデータ４１、保守必要時期データ４２、停止時期、変更提示情報などを表示装置８３に出力する。
【０１０１】
スケジューリングプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、スケジューリングプログラムは、インターネットなどのネットワーク経由でスケジューリング装置１０Ａに提供されてもよい。なお、スケジューリング装置１０Ａの機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。また、実施の形態２以降で説明するスケジューリング装置１０Ｂ、学習装置５０、および推論装置６０についても、スケジューリング装置１０Ａと同様のハードウェア構成によって実現できる。
【０１０２】
なお、加工機８１は、ワイヤ放電加工機に限らず、マシニングセンタ、ＮＣ（Numerical  Control，数値制御）フライス、またはＮＣ旋盤であってもよい。これらのマシニングセンタ、ＮＣフライス、およびＮＣ旋盤も、消耗品としての工具を用いるので、工具交換のための保守作業が必要となる。また、これらのマシニングセンタ、ＮＣフライス、およびＮＣ旋盤も、加工を実行するためのＮＣプログラムを用いるので、ＮＣプログラムに設定された経路長さ、軸の送り速度、または回転数から工具の寿命を予測をすることが可能である。したがって、マシニングセンタ、ＮＣフライス、およびＮＣ旋盤に対しても、スケジューリング装置１０Ａを適用できる。
【０１０３】
このように実施の形態１では、スケジューリング装置１０Ａが、寿命予測時期およびメンテナンス時期に基づいて保守必要時期を算出し、スケジュールデータ４１および保守必要時期に基づいて、加工機８１の停止時期を算出している。これにより、加工機８１によるジョブの実行中に保守が行われることを防止できるので、複数からなるジョブのトータルの実行時間を短くすることができる。
【０１０４】
実施の形態２．
つぎに、図１４から図１６を用いて実施の形態２について説明する。実施の形態２では、スケジュールデータ４１に登録された順番でジョブを実行すると、ジョブの実行中が保守のタイミングとなる場合に、スケジューリング装置が、スケジュールデータ４１を修正する。
【０１０５】
図１４は、実施の形態２にかかるスケジューリング装置の構成を示す図である。図１４の各構成要素のうち図１に示すスケジューリング装置１０Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【０１０６】
スケジューリング装置１０Ｂは、スケジューリング装置１０Ａが備える構成要素に加えてスケジュール修正部１６を備えている。スケジュール修正部１６は、停止時期算出部１４に接続されている。
【０１０７】
実施の形態２では、保守必要時期算出部１３は、保守にかかる時間である保守時間を含んだ保守必要時期データ４２を算出する。すなわち、実施の形態２の保守必要時期データ４２は、保守の開始時間、保守の終了時間、保守に要する時間の情報を含んでいる。
【０１０８】
停止時期算出部１４は、スケジュールデータ４１および保守必要時期データ４２に基づいて、スケジュールデータ４１に登録されているジョブが保守によって途中で停止することなく実行可能か否かを判断する。スケジュールデータ４１に登録されているジョブが保守によって途中で停止する場合には、停止時期算出部１４は、スケジュールデータ４１および保守必要時期データ４２に基づいて、停止時期を算出する。この場合、停止時期算出部１４は、停止時期、スケジュールデータ４１、および保守必要時期データ４２を、スケジュール修正部１６に送る。
【０１０９】
スケジュール修正部１６は、停止時期、スケジュールデータ４１、および保守必要時期データ４２に基づいて、スケジュールデータ４１を修正する。スケジュール修正部１６は、スケジュールデータ４１に登録されているジョブが保守によって途中で停止されることがなくなるようにスケジュールデータ４１を修正する。このとき、スケジュール修正部１６は、スケジュールデータ４１内のジョブの実行順序を修正するとともに、保守の開始タイミングを修正する。
【０１１０】
スケジューリング装置１０Ｂは、ジョブの実行中にリアルタイムでスケジュールデータ４１を更新してもよい。この場合、スケジュール作成部１１は、ジョブの実行中にリアルタイムで、実行中のジョブの加工見積時間を更新する。また、保守必要時期算出部１３は、ジョブの実行中にリアルタイムで保守必要時期データ４２を更新する。そして、停止時期算出部１４は、ジョブの実行中にリアルタイムで停止時期を更新し、スケジュール修正部１６は、ジョブの実行中にリアルタイムでスケジュールデータ４１を修正して更新する。
【０１１１】
加工機８１が１台の場合、スケジュール修正部１６は、スケジュールデータ４１に登録された順番でジョブを実行すると、実行途中で保守のタイミングとなるジョブが存在するか否かを判断する。以下、実行途中で保守のタイミングとなるジョブを、途中保守ジョブという場合がある。途中保守ジョブは、加工機８１の停止時期に実行中となるジョブである。
【０１１２】
途中保守ジョブ（Ｍ）（Ｍは１からＮ−１の何れかの自然数）が存在する場合、スケジュール修正部１６は、このジョブ（Ｍ）の次のジョブであるジョブ（Ｍ＋１）をジョブ（Ｍ）よりも先に実行すると、ジョブ（Ｍ＋１）の実行途中で保守のタイミングとなるか否かを判断する。
【０１１３】
ジョブ（Ｍ＋１）の実行途中で保守のタイミングとならない場合、スケジュール修正部１６は、ジョブ（Ｍ）を飛ばしてジョブ（Ｍ＋１）を先に実行するようにスケジュールデータ４１を修正する。すなわち、スケジュール修正部１６は、ジョブ（Ｍ）とジョブ（Ｍ＋１）の順番を入れ替える。途中保守ジョブと入れ替えられるジョブが、代替ジョブである。
【０１１４】
ジョブ（Ｍ＋１）の実行途中で保守のタイミングとなる場合、スケジュール修正部１６は、このジョブ（Ｍ＋１）の次のジョブであるジョブ（Ｍ＋２）をジョブ（Ｍ）およびジョブ（Ｍ＋１）よりも先に実行すると、ジョブ（Ｍ＋２）の実行途中で保守のタイミングとなるか否かを判断する。
【０１１５】
ジョブ（Ｍ＋２）の実行途中で保守のタイミングとならない場合、スケジュール修正部１６は、ジョブ（Ｍ）およびジョブ（Ｍ＋１）を飛ばしてジョブ（Ｍ＋２）を先に実行するようにスケジュールデータ４１を修正する。すなわち、スケジュール修正部１６は、実行途中で保守のタイミングとならないジョブと、途中保守ジョブとを入れ替える。なお、スケジュール修正部１６は、実行途中で保守のタイミングとならないジョブを、最初に途中保守ジョブと判定されたジョブの前に移動させてもよい。
【０１１６】
このように、スケジュール修正部１６は、実行途中で保守のタイミングとならないジョブが見つかるまで、ジョブの探索を行う。スケジュール修正部１６は、ジョブ（Ｍ＋１）から最後のジョブ（Ｎ）まで順番に、実行途中で保守のタイミングとならないジョブの探索を行う。
【０１１７】
スケジュール修正部１６は、実行途中で保守のタイミングとならないジョブを、途中保守ジョブよりも先に実行するようにスケジュールデータ４１を修正する処理を繰り返す。
【０１１８】
スケジュール修正部１６は、修正が完了したスケジュールデータ４１を停止時期出力部１５に送る。これにより、停止時期出力部１５は、停止時期、保守必要時期データ４２、および修正が完了したスケジュールデータ４１を表示装置８３に出力する。
【０１１９】
なお、途中保守ジョブがある場合、停止時期出力部１５は、スケジュール修正部１６がスケジュールデータ４１を修正することなく停止時期を表示装置８３に出力してもよい。すなわち、スケジュール修正部１６は、停止時期をそのまま停止時期出力部１５に送ってもよい。この場合、停止時期出力部１５は、スケジュール修正部１６からの停止時期を表示装置８３に出力する。なお、停止時期出力部１５は、保守必要時期算出部１３から停止時期を受付けて表示装置８３に出力してもよい。
【０１２０】
スケジューリング装置１０Ｂは、途中保守ジョブがある場合、スケジュールデータ４１を修正することなく停止時期を表示装置８３に出力するか、ジョブの実行順序を変更するかを選択することができる。スケジュールデータ４１を修正するか否かは、予めユーザからの指示に従ってスケジューリング装置１０Ｂに設定しておく。
【０１２１】
加工機８１が複数台の場合、スケジュール修正部１６は、前述したように同一の加工機８１内でのジョブの実行順序を変更することに加え、ジョブの優先順位に従ってジョブを実行する加工機８１を変更してもよい。
【０１２２】
また、スケジュール修正部１６は、加工機８１が複数台の場合、各加工機８１の修正される前のスケジュールデータ４１の中で最後にジョブが終了する日時である第１の日時と、各加工機８１の修正された後のスケジュールデータ４１の中で最後にジョブが終了する日時である第２の日時とを比較してもよい。この場合、スケジュール修正部１６による比較の結果が、スケジュールデータ４１の改善度である。スケジュール修正部１６は、第１の日時と第２の日時との差分を算出することで、スケジュールデータ４１の改善度を算出することが可能となる。スケジュールデータ４１の改善度は、第１の日時と第２の日時との差分であってもよいし、差分を第１の日時で除した値であってもよい。
【０１２３】
スケジュール修正部１６は、算出した改善度を停止時期出力部１５に送り、停止時期出力部１５が改善度を表示装置８３に表示させる。これにより、ユーザはスケジュールデータ４１の改善度を認識することが可能となる。
【０１２４】
図１５は、実施の形態２にかかるスケジューリング装置によるスケジュールデータの修正処理手順を示すフローチャートである。スケジューリング装置１０Ｂのスケジュール修正部１６は、停止時期、スケジュールデータ４１、および保守必要時期データ４２を取得する（ステップＳ２１０）。
【０１２５】
スケジュール修正部１６は、途中保守ジョブがあるか否かを判断する（ステップＳ２２０）。途中保守ジョブがない場合（ステップＳ２２０、Ｎｏ）、スケジュール修正部１６は、スケジュールデータ４１の修正を行わず処理を終了する。
【０１２６】
途中保守ジョブがある場合（ステップＳ２２０、Ｙｅｓ）、スケジュール修正部１６は、スケジュールデータ４１を修正する設定となっているか否かを判断する（ステップＳ２３０）。
【０１２７】
スケジュールデータ４１を修正する設定となっていない場合（ステップＳ２３０、Ｎｏ）、スケジュール修正部１６は、取得した停止時期をそのまま停止時期出力部１５に出力し（ステップＳ２６０）、スケジュールデータ４１の修正処理を終了する。
【０１２８】
スケジュールデータ４１を修正する設定となっている場合（ステップＳ２３０、Ｙｅｓ）、スケジュール修正部１６は、同一の加工機８１でジョブの実行順序を変更するか否かを判断する（ステップＳ２４０）。加工機８１が１台の場合、スケジュール修正部１６は、同一の加工機８１でジョブの実行順序を変更すると判断する。また、同一の加工機８１でジョブの実行順序を変更することがユーザによってスケジューリング装置１０Ｂに設定されている場合、スケジュール修正部１６は、同一の加工機８１でジョブの実行順序を変更すると判断する。
【０１２９】
スケジュール修正部１６は、同一の加工機８１でジョブの実行順序を変更すると判断した場合（ステップＳ２４０、Ｙｅｓ）、次のジョブを先に実行した場合に次のジョブは途中保守ジョブになるか否かを判断する（ステップＳ２５０）。
【０１３０】
スケジュール修正部１６は、次のジョブを先に実行しても次のジョブが途中保守ジョブにならないと判断した場合（ステップＳ２５０、Ｎｏ）、途中保守ジョブにならないジョブである次のジョブと、途中保守ジョブとを入れ替える（ステップＳ２７０）。
【０１３１】
このように、スケジュール修正部１６は、全ての加工機８１に対して投入予定の各ジョブの中から保守必要時期に到達しないジョブを抽出できる場合、保守前にこのジョブが実行されるよう、保守必要時期に到達しないジョブ（次のジョブ）と、途中保守ジョブとを入れ替える。これにより、スケジュール修正部１６は、保守回数を削減することができるので、保守回数の削減によって加工機８１の稼働率を向上させ、消耗品を寿命間際まで使うことによるコスト削減を実現できる。スケジュール修正部１６は、ジョブを入れ替えたスケジュールデータ４１を停止時期出力部１５に出力し、スケジュールデータ４１の修正処理を終了する。
【０１３２】
スケジュール修正部１６は、次のジョブを先に実行すると次のジョブも途中保守ジョブになると判断した場合（ステップＳ２５０、Ｙｅｓ）、途中保守ジョブになる次のジョブが最後のジョブであるか否かを判断する（ステップＳ２８０）。すなわち、スケジュール修正部１６は、ステップＳ２５０で判断した次のジョブが、最後に実行されるジョブであるか否かを判断する。
【０１３３】
スケジュール修正部１６は、途中保守ジョブになる次のジョブが最後のジョブではないと判断すると（ステップＳ２８０、Ｎｏ）、ステップＳ２５０の処理に戻る。
【０１３４】
スケジュール修正部１６は、途中保守ジョブにならないジョブが見つかるまで、ジョブの実行順で順番に、途中保守ジョブにならないジョブを探索する。すなわち、スケジュール修正部１６は、ステップＳ２５０，Ｓ２８０の処理を繰り返す。
【０１３５】
スケジュール修正部１６は、途中保守ジョブになる次のジョブが最後のジョブであると判断すると（ステップＳ２８０、Ｙｅｓ）、取得した停止時期をそのまま停止時期出力部１５に出力し（ステップＳ２９０）、スケジュールデータ４１の修正処理を終了する。
【０１３６】
スケジュール修正部１６は、ステップＳ２４０の処理において、同一の加工機８１でジョブの実行順序を変更しないと判断した場合（ステップＳ２４０、Ｎｏ）、実行前のジョブの中に途中保守ジョブよりも優先順位が上位のジョブ（以下、優先上位ジョブという）があるか否かを判断する。すなわち、スケジュール修正部１６は、複数台の加工機８１でジョブの実行順序を変更すると判断した場合、実行前のジョブに優先上位ジョブがあるか否かを判断する（ステップＳ３００）。
【０１３７】
スケジュール修正部１６は、優先上位ジョブがあると判断した場合（ステップＳ３００、Ｙｅｓ）、優先上位ジョブを別の加工機８１で実行可能か否かを判断する（ステップＳ３１０）。
【０１３８】
スケジュール修正部１６は、優先上位ジョブを別の加工機８１で実行可能と判断した場合（ステップＳ３１０、Ｙｅｓ）、途中保守ジョブと優先上位ジョブとを入れ替える（ステップＳ３２０）。この場合において、スケジュール修正部１６は、優先上位ジョブのうち、現在の途中保守ジョブと入れ替えた場合に優先上位ジョブが新たな途中保守ジョブにならない優先上位ジョブを選択する。スケジュール修正部１６は、優先上位ジョブを現在の途中保守ジョブと入れ替えた場合に、優先上位ジョブが新たな途中保守ジョブになる場合には、現在の途中保守ジョブと優先上位ジョブとを入れ替えない。スケジュール修正部１６は、ジョブを入れ替えたスケジュールデータ４１を停止時期出力部１５に出力し、スケジュールデータ４１の修正処理を終了する。
【０１３９】
スケジュール修正部１６は、優先上位ジョブを別の加工機８１では実行できないと判断した場合（ステップＳ３１０、Ｎｏ）、優先上位ジョブを実行させるか否かを判断した別の加工機８１が、判断対象の加工機８１のうちの最後の判断対象の加工機８１であるか否かを判断する（ステップＳ３３０）。すなわち、スケジュール修正部１６は、優先上位ジョブを別の加工機８１では実行できないと判断した場合、この別の加工機８１以外にも優先上位ジョブを実行できるか否かを判断していない加工機８１が残っているか否かを判断する。
【０１４０】
スケジュール修正部１６は、優先上位ジョブを実行させるか否かを判断した別の加工機８１が、判断対象の加工機８１のうちの最後の判断対象の加工機８１ではないと判断した場合（ステップＳ３３０、Ｎｏ）、ステップＳ３１０の処理に戻る。最後の判断対象の加工機８１は、優先上位ジョブを実行させるか否かの判断対象となる別の加工機８１のうちの、優先上位ジョブを実行させるか否かが最後に判断される加工機８１である。
【０１４１】
スケジュール修正部１６は、優先上位ジョブを実行させることができる加工機８１が見つかるまで、優先上位ジョブを実行させる加工機８１を探索する。すなわち、スケジュール修正部１６は、ステップＳ３１０，Ｓ３３０の処理を繰り返す。
【０１４２】
スケジュール修正部１６は、優先上位ジョブを実行させるか否かを判断した別の加工機８１が、判断対象の加工機８１のうちの最後の判断対象の加工機８１であると判断した場合（ステップＳ３３０、Ｙｅｓ）、取得した停止時期をそのまま停止時期出力部１５に出力し（ステップＳ３４０）、スケジュールデータ４１の修正処理を終了する。
【０１４３】
スケジュール修正部１６は、ステップＳ３００の処理において、優先上位ジョブがないと判断した場合（ステップＳ３００、Ｎｏ）、取得した停止時期をそのまま停止時期出力部１５に出力し（ステップＳ３５０）、スケジュールデータ４１の修正処理を終了する。
【０１４４】
なお、ステップＳ２９０，Ｓ３４０，Ｓ３５０の処理では、取得した停止時期をそのまま停止時期出力部１５に出力する場合について説明したが、スケジュール修正部１６は、最初に途中保守ジョブと判断したジョブの実行前を停止時期に設定してもよい。この場合、スケジュール修正部１６は、最初に途中保守ジョブと判断したジョブと、このジョブの１つ前のジョブとの間のタイミングを停止時期に設定し、最初に途中保守ジョブと判断したジョブを、停止時期の終了後に設定する。この場合も、スケジュール修正部１６は、設定した停止時期を停止時期出力部１５に出力する。
【０１４５】
このように、スケジュール修正部１６は、停止時期に実行中となる実行中ジョブである途中保守ジョブの代わりに、全ての加工機８１のジョブの中から、停止時期に実行中とならないジョブである代替ジョブを抽出する。スケジュール修正部１６は、代替ジョブを抽出できた場合は、代替ジョブと途中保守ジョブとを入れ替えることでスケジュールデータ４１を修正する。また、スケジュール修正部１６は、代替ジョブを抽出できなかった場合は、保守となる停止時期を実行中ジョブの前に設定し、保守の後に実行中ジョブを設定することでスケジュールデータ４１を修正する。
【０１４６】
図１６は、実施の形態２にかかるスケジューリング装置によるスケジュールデータの修正処理と、比較例のスケジューリング装置によるスケジュールデータの修正処理とを説明するための図である。スケジューリング装置１０Ｂによるスケジュールデータ４１の修正処理では、加工機８１が複数台である場合に、スケジュール修正部１６が別の加工機８１との間でジョブを入れ替える処理について説明する。
【０１４７】
図１６の右側には、スケジューリング装置１０Ｂがスケジュールデータ４１を修正した場合の加工機８１へのジョブの実行の計画とジョブの実行の実績とが示されている。図１６の左側には、比較例のスケジューリング装置がスケジュールデータ４１を修正しない場合の加工機８１へのジョブの実行の計画とジョブの実行の実績とが示されている。
【０１４８】
比較例のスケジューリング装置およびスケジューリング装置１０Ｂが、１号機の加工機８１、および２号機の加工機８１を用いてジョブを実行する場合がある。この場合において、スケジュールデータ４１では、１号機でジョブ（１），（３）の順番でジョブを実行し、２号機でジョブ（２），（４）の順番でジョブを実行することが設定されているとする。
【０１４９】
図１６では、ジョブ（１）の完了予定日時が日時Ｔ１で示され、ジョブ（３）の完了予定日時が日時Ｔ３で示されている。また、ジョブ（２）の完了予定日時が日時Ｔ２で示され、ジョブ（４）の完了予定日時が日時Ｔ４で示されている。
【０１５０】
ジョブ（１），（３）の合計の実行時間が、ジョブ（２），（４）の合計の実行時間よりも長いとする。また、保守必要時期が保守必要時期ＴＭ２１で示されている。保守必要時期ＴＭ２１は、日時Ｔ１と日時Ｔ３との間であるとする。すなわち、ジョブ（３）の実行中に保守必要時期ＴＭ２１になるとする。保守必要時期ＴＭ２１は、例えばワイヤの交換タイミングである。
【０１５１】
比較例のスケジューリング装置は、スケジュールデータ４１を変更しない。この場合、１号機は、ジョブ（１）を実行し、その後、ジョブ（３）の実行を開始する。スケジュールデータ４１が変更されない場合、ジョブ（３）の実行中に保守必要時期ＴＭ２１になるので、保守必要時期ＴＭ２１になると、１号機は停止しジョブ（３）が中断する。そして、保守作業者に１号機への保守指令が通知される。１号機は停止した後、保守作業者による保守の開始を待つ。図１６では、保守の開始待ち状態を待ち状態Ｗｘで示している。待ち状態Ｗｘの後、保守作業者による保守が行われる。図１６では、保守を保守Ｍｘで示している。図１６では、比較例のスケジューリング装置が設定する保守Ｍｘの完了予定日時が日時Ｔ５で示されている。
【０１５２】
１号機は、待ち状態Ｗｘの時間および保守Ｍｘの時間が経過した後、ジョブ（３）を再開する。このように、比較例のスケジューリング装置は、スケジュールデータ４１を変更しないので、ジョブ（３）が保守Ｍｘによって中断する場合がある。また、待ち状態Ｗｘの間、保守Ｍｘを待つ必要がある。
【０１５３】
一方、スケジューリング装置１０Ｂは、必要に応じてスケジュールデータ４１を変更する。具体的には、スケジュール修正部１６が、ジョブの実行中に保守Ｍｘが必要となる場合に、特定のジョブが完了するタイミングを保守Ｍｘの開始タイミングとすることで、ジョブの実行中に保守Ｍｘが実行されないようにする。さらに、スケジュール修正部１６は、１号機および２号機の両方がジョブを完了する完了時間が、変更前のスケジュールデータ４１による完了時間よりも早くなるように、ジョブの実行順序を入れ替える。
【０１５４】
ここでのスケジュール修正部１６は、ジョブ（３）の実行中に保守必要時期ＴＭ２１になる保守Ｍｘを、ジョブ（１）の完了後に移動させる。図１６では、スケジューリング装置１０Ｂが設定する保守Ｍｘの完了予定日時が日時Ｔ６で示されている。
【０１５５】
また、スケジュール修正部１６は、１号機において保守必要時期ＴＭ２１に重なるジョブ（３）と、２号機において実行予定のジョブ（４）とを入れ替えることで、全体のジョブ（１）〜（４）の完了時間を短縮する。
【０１５６】
スケジュール修正部１６は、保守Ｍｘのタイミングを変更し、ジョブ（３）と、ジョブ（４）とを入れ替えた新たなスケジュールでスケジュールデータ４１を更新する。
【０１５７】
これにより、更新後のスケジュールデータ４１では、１号機に対し、ジョブ（１）、保守Ｍｘ、ジョブ（４）の順番で処理が実行されることが設定される。また、２号機に対し、ジョブ（２），（３）の順番で処理が実行されることが設定される。図１６では、スケジューリング装置１０Ｂが設定するジョブ（４）の完了予定日時が日時Ｔ７で示され、ジョブ（３）の完了予定日時が日時Ｔ８で示されている。
【０１５８】
更新後のスケジュールデータ４１が用いられた場合、１号機が、ジョブ（１）を実行した後、１号機の保守Ｍｘが行われ、その後、１号機がジョブ（４）を実行する。また、２号機は、ジョブ（２），（３）の順番でジョブを実行する。図１６では、比較例のスケジューリング装置がスケジュールデータ４１を修正せずにジョブ（１）から（４）が実行された場合の、計画からの遅れ時間を時間Ｄ１で示している。計画からの遅れ時間は、保守Ｍｘが無い場合の計画に保守Ｍｘが追加された場合の、保守Ｍｘが無い場合の計画からの遅れ時間である。また、図１６では、スケジューリング装置１０Ｂがスケジュールデータ４１を修正してジョブ（１）から（４）が実行された場合の、計画からの遅れ時間を時間Ｄ２で示している。
【０１５９】
このように、スケジュール修正部１６は、ジョブの実行中に保守Ｍｘによってジョブが停止することが予測される場合に、スケジュールデータ４１を、ジョブの実行中に保守Ｍｘによってジョブが停止しないスケジュールデータ４１に修正する。
【０１６０】
実施の形態１では、ジョブが停止することに対する対策を保守作業者が考えて実行する必要があった。実施の形態２では、スケジューリング装置１０Ｂが、ジョブが停止することに対する対策としてスケジュールデータ４１を修正するので、保守作業者はジョブが停止することに対する対策を考える必要がない。
【０１６１】
また、スケジューリング装置１０Ｂは、加工の実行状況をフィードバックして、スケジュールデータ４１を自動で更新することができるので、常に適切なスケジュールデータ４１を提供することができる。例えば、加工機８１の段取りをロボットが実行する等のスケジュールの実行を保守作業者がいなくても実行できるように構築した自動化システムにおいては、スケジューリング装置１０Ｂによるスケジュールデータ４１の自動更新の効果が大きい。
【０１６２】
また、比較例のスケジューリング装置は、スケジュール実行中の実績のフィードバックが無いので、段取りの情報を格納した段取り情報データベースと実績との間に乖離が起きた場合には、乖離を改善する手段がない。このため、比較例のスケジューリング装置を適用した場合、生産性は悪化する。一方、スケジューリング装置１０Ｂが適用された場合、実績のフィードバック、およびスケジュールの自動組替があるので、段取りと実績との間に乖離が起きた場合にも乖離を改善できる。これにより、スケジューリング装置１０Ｂは、生産性の悪化を防止できる。
【０１６３】
また、スケジューリング装置１０Ｂは、ジョブの実行順序を入れ替えることで１号機および２号機で実行するジョブのうちの最後のジョブが完了する完了時間を早めているので、比較例のスケジューリング装置が作成したスケジュールデータ４１よりも計画からの遅れを短くすることができる。また、スケジューリング装置１０Ｂは、保守Ｍｘのタイミングがジョブと重ならないよう保守Ｍｘのタイミングを移動させるのでジョブの中断を回避できる。
【０１６４】
加工機８１がワイヤ放電加工機の場合、消耗品には、ワイヤ、加工液フィルタ、イオン交換樹脂などがある。これらの消耗品は、特定のタイミングで寿命となるので、特定のタイミングで交換される。スケジュール修正部１６は、消耗品の残り寿命が特定期間よりも短い場合には、この消耗品の交換時期を保守Ｍｘが行われる期間に変更してもよい。この特定期間は、ユーザによって予めスケジューリング装置１０Ｂに設定される。これにより、保守Ｍｘの際に、残り寿命が少ない消耗品の交換が行われることとなる。例えば、保守Ｍｘが開始される日時Ｔ１の時点でのワイヤの残り寿命が特定期間よりも短い場合に、スケジュール修正部１６は、日時Ｔ１をワイヤの交換時期に設定してもよい。
【０１６５】
このように、実施の形態２では、スケジューリング装置１０Ｂが、停止時期がジョブの実行中となっている場合には、スケジュールデータ４１、保守必要時期、および停止時期に基づいて、停止時期がジョブの実行中とならないようにスケジュールデータ４１を修正している。これにより、加工機８１によるジョブの実行中に保守が行われることを防止できるので、複数からなるジョブのトータルの実行時間を短くすることができる。
【０１６６】
実施の形態３．
つぎに、図１７から図２０を用いて実施の形態３について説明する。実施の形態３では、学習装置が、ジョブの完了までの時間を短縮させるスケジュールデータ４１を学習し、推論装置が、ジョブの完了までの時間を短縮させるスケジュールデータ４１を推論する。
【０１６７】
＜学習フェーズ＞
図１７は、実施の形態３にかかる学習装置の構成を示す図である。学習装置５０は、全てのジョブが完了する完了時間が早められるようにジョブの投入スケジュールであるスケジュールデータ４１を学習するコンピュータである。学習装置５０は、スケジューリング装置１０Ａ内またはスケジューリング装置１０Ｂ内に配置されてもよいし、スケジューリング装置１０Ａ，１０Ｂの外部に配置されてもよい。
【０１６８】
学習装置５０は、データ取得部５１と、モデル生成部５２とを備えている。学習装置５０は、学習済モデル記憶部７０に接続されている。
【０１６９】
データ取得部５１は、加工機８１が有する各消耗品の寿命予測時期、または各部品のメンテナンス時期に基づいて算出された、加工機８１の保守必要時期データ４２を学習用データとして取得する。また、データ取得部５１は、各ジョブの加工の見積時間に基づいて作成されたスケジュールデータ４１を学習用データとして取得する。また、データ取得部５１は、保守必要時期データ４２およびスケジュールデータ４１に基づいて加工機８１によるジョブの実行および保守が実行された場合における、加工機８１の運転実績であるスケジュール運転実行結果データ４５を学習用データとして取得する。
【０１７０】
すなわち、データ取得部５１は、保守必要時期データ４２と、スケジュールデータ４１と、スケジュール運転実行結果データ４５とを学習用データとして取得する。データ取得部５１は、学習用データをモデル生成部５２に送る。
【０１７１】
モデル生成部５２は、学習用データに基づいて、全ての加工機８１のスケジュールデータ４１の中で最後にジョブが完了する完了日時が早められるようにスケジュールデータ４１を学習する。換言すると、モデル生成部５２は、保守必要時期データ４２と、スケジュールデータ４１と、スケジュール運転実行結果データ４５とを含む学習用データに基づいて、スケジュールデータ４１を学習する。すなわち、モデル生成部５２は、保守必要時期データ４２およびスケジュールデータ４１から、トータルのジョブの完了日時を短縮させることができるスケジュールデータ４１を推論するための学習済モデル７１を生成する。
【０１７２】
モデル生成部５２が用いる学習アルゴリズムは、教師あり学習、教師なし学習、強化学習等の公知のアルゴリズムを用いることができる。一例として、強化学習（Reinforcement  Learning）が適用された場合について説明する。強化学習では、ある環境内におけるエージェント（行動主体）が、現在の状態（環境のパラメータ）を観測し、取るべき行動を決定する。エージェントの行動により環境が動的に変化し、エージェントには環境の変化に応じて報酬が与えられる。エージェントはこれを繰り返し、一連の行動を通じて報酬が最も多く得られる行動方針を学習する。強化学習の代表的な手法として、Ｑ学習（Q-Learning）やＴＤ学習（TD-Learning）が知られている。例えば、Ｑ学習の場合、行動価値関数Ｑ（ｓ，ａ）の一般的な更新式は以下の式（１）で表される。
【０１７３】
【数１】
0006929484.tif 000002
【０１７４】
式（１）において、ｓtは時刻ｔにおける環境を表し、ａtは時刻ｔにおける行動を表す。行動ａtにより、状態（環境）はｓt+1に変わる。ｒt+1はその状態の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。なお、γは０＜γ≦１、αは０＜α≦１の範囲とする。スケジュール運転実行結果データ４５が行動ａtとなり、保守必要時期データ４２およびスケジュールデータ４１が状態ｓtとなり、学習装置５０は、時刻ｔの状態ｓtにおける最良の行動ａtを学習する。スケジュール運転実行結果データ４５は、修正後のスケジュールデータ４１に対応している。したがって、学習装置５０は、最良の修正後のスケジュールデータ４１を学習する。換言すると、学習装置５０は、ジョブのトータルの実行時間を短くすることができるように修正されたスケジュールデータ４１を学習する。
【０１７５】
式（１）で表される更新式は、時刻ｔ＋１における最もＱ値の高い行動ａの行動価値Ｑが、時刻ｔにおいて実行された行動ａの行動価値Ｑよりも大きければ、行動価値Ｑを大きくし、逆の場合は、行動価値Ｑを小さくする。換言すれば、学習装置５０は、時刻ｔにおける行動ａの行動価値Ｑを、時刻ｔ＋１における最良の行動価値Ｑに近づけるように、行動価値関数Ｑ（ｓ，ａ）を更新する。それにより、ある環境における最良の行動価値Ｑが、それ以前の環境における行動価値Ｑに順次伝播していくようになる。
【０１７６】
上記のように、モデル生成部５２が強化学習によって学習済モデル７１を生成する場合、モデル生成部５２は、報酬計算部５３と、関数更新部５４とを有している。
【０１７７】
報酬計算部５３は、スケジュール運転実行結果データ４５から算出される最後のジョブの完了日時に基づいて、報酬ｒを計算する。例えば、報酬計算部５３は、最後のジョブの完了日時が早い場合には報酬ｒを増大させ（例えば「１」の報酬を与える）、他方、最後のジョブの完了日時が遅い場合には報酬ｒを低減する（例えば「−１」の報酬を与える）。
【０１７８】
関数更新部５４は、報酬計算部５３によって計算される報酬に従って、スケジュール運転実行結果データ４５に対応する修正後のスケジュールデータ４１を決定するための関数を更新し、学習済モデル記憶部７０に出力する。例えばＱ学習の場合、関数更新部５４は、式（１）で表される行動価値関数Ｑ（ｓt，ａt）をスケジュールデータ４１を算出するための関数として用いる。
【０１７９】
学習装置５０は、以上のような学習を繰り返し実行する。学習済モデル記憶部７０は、関数更新部５４によって更新された行動価値関数Ｑ（ｓt，ａt）、すなわち、学習済モデル７１を記憶する。
【０１８０】
次に、図１８を用いて、学習装置５０によるスケジュールデータ４１の学習処理手順について説明する。図１８は、実施の形態３にかかる学習装置による学習処理の処理手順を示すフローチャートである。
【０１８１】
データ取得部５１は、保守必要時期データ４２と、スケジュールデータ４１と、スケジュール運転実行結果データ４５とを学習用データとして取得する（ステップＳ４１０）。
【０１８２】
モデル生成部５２は、保守必要時期データ４２、スケジュールデータ４１、およびスケジュール運転実行結果データ４５に基づいて報酬を計算する（ステップＳ４２０）。具体的には、報酬計算部５３は、保守必要時期データ４２、スケジュールデータ４１、およびスケジュール運転実行結果データ４５を取得し、予め定められた報酬基準である最後のジョブの完了日時に基づいて報酬を増加させるか、または報酬を減じるかを判断する。
【０１８３】
報酬計算部５３は、報酬を増大させると判断した場合に（ステップＳ４２０、報酬増大基準）、報酬を増やす（ステップＳ４３０）。一方、報酬計算部５３は、報酬を減少させると判断した場合に（ステップＳ４２０、報酬減少基準）、報酬を減らす（ステップＳ４４０）。
【０１８４】
関数更新部５４は、報酬計算部５３によって計算された報酬に基づいて、学習済モデル記憶部７０が記憶する式（１）で表される行動価値関数Ｑ（ｓt，ａt）を更新する（ステップＳ４５０）。
【０１８５】
学習装置５０は、以上のステップＳ４１０からＳ４５０までのステップを繰り返し実行し、生成された行動価値関数Ｑ（ｓt，ａt）を学習済モデル７１として学習済モデル記憶部７０に記憶させる。
【０１８６】
なお、実施の形態３に係る学習装置５０は、学習済モデル７１を学習装置５０の外部に設けられた学習済モデル記憶部７０に記憶させるものとしたが、学習済モデル記憶部７０は、学習装置５０の内部に配置されていてもよい。
【０１８７】
＜活用フェーズ＞
図１９は、実施の形態３にかかる推論装置の構成を示す図である。推論装置６０は、学習済モデル７１を用いて、保守必要時期データ４２およびスケジュールデータ４１から修正後のスケジュールデータ４１を推論するコンピュータである。
【０１８８】
推論装置６０は、最後のジョブが完了する完了時間が短縮された修正後のスケジュールデータ４１を推論する。推論装置６０は、スケジューリング装置１０Ａ内またはスケジューリング装置１０Ｂ内に配置されてもよいし、スケジューリング装置１０Ａ，１０Ｂの外部に配置されてもよい。実施の形態３では、推論装置６０がスケジューリング装置１０Ａ内に配置されている場合について説明する。
【０１８９】
推論装置６０は、データ取得部６１と、推論部６２とを備える。データ取得部６１は、保守必要時期データ４２およびスケジュールデータ４１を取得する。推論部６２は、学習済モデル７１を用いて、修正後のスケジュールデータである修正スケジュールデータ４１Ｘを推論し、修正スケジュールデータ４１Ｘを停止時期出力部１５に出力する。すなわち、推論部６２は、学習済モデル７１にデータ取得部６１が取得した保守必要時期データ４２およびスケジュールデータ４１を入力することで、最後のジョブが完了する完了時間が短縮された修正スケジュールデータ４１Ｘを推論することができる。停止時期出力部１５は、修正スケジュールデータ４１Ｘを表示装置８３に表示させる。
【０１９０】
なお、実施の形態３では、推論装置６０が、モデル生成部５２が学習した学習済モデル７１を用いて、修正スケジュールデータ４１Ｘを推論する場合について説明したが、推論装置６０は、学習装置５０以外の他の学習装置から学習済モデル７１を取得し、この学習済モデル７１に基づいて修正スケジュールデータ４１Ｘを推論してもよい。
【０１９１】
つぎに、図２０を用いて、推論装置６０が、修正スケジュールデータ４１Ｘを推論する処理の処理手順について説明する。図２０は、実施の形態３にかかる推論装置による推論処理の処理手順を示すフローチャートである。
【０１９２】
データ取得部６１は、保守必要時期データ４２およびスケジュールデータ４１を推論用データとして取得する（ステップＳ５１０）。推論部６２は、学習済モデル記憶部７０に記憶されている学習済モデル７１に、推論用データである保守必要時期データ４２およびスケジュールデータ４１を入力し（ステップＳ５２０）、修正スケジュールデータ４１Ｘを得る。推論部６２は、得られたデータである、修正スケジュールデータ４１Ｘを、停止時期出力部１５に出力する（ステップＳ５３０）。停止時期出力部１５は、修正スケジュールデータ４１Ｘを表示装置８３に表示させる。
【０１９３】
加工機８１の制御装置８２は、修正スケジュールデータ４１Ｘに従って、ジョブを実行する。また、保守作業者は、修正スケジュールデータ４１Ｘに従って、保守を実行する。これにより、推論装置６０は、全てのジョブを完了させるまでの時間を短縮させることが可能となる。
【０１９４】
なお、実施の形態３では、推論部６２が用いる学習アルゴリズムに強化学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、強化学習以外にも、教師あり学習、教師なし学習、又は半教師あり学習等を適用することも可能である。
【０１９５】
また、モデル生成部５２に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Deep  Learning）を用いることもでき、モデル生成部５２は、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【０１９６】
なお、学習装置５０および推論装置６０は、例えば、ネットワークを介してスケジューリング装置１０Ａに接続された、スケジューリング装置１０Ａとは別個の装置であってもよい。また、学習装置５０および推論装置６０は、クラウドサーバ上に存在していてもよい。
【０１９７】
また、モデル生成部５２は、複数の制御装置８２および複数のスケジューリング装置１０Ａから取得される学習用データを用いて、修正スケジュールデータ４１Ｘを学習してもよい。なお、モデル生成部５２は、同一のエリアで使用される複数の制御装置８２および複数のスケジューリング装置１０Ａから学習用データを取得してもよいし、異なるエリアで独立して動作する複数の制御装置８２および複数のスケジューリング装置１０Ａから収集される学習用データを利用して修正スケジュールデータ４１Ｘを学習してもよい。また、学習装置５０は、学習用データを収集する制御装置８２およびスケジューリング装置１０Ａを途中で対象に追加し、或いは、対象から除去することも可能である。さらに、ある制御装置８２およびスケジューリング装置１０Ａに関して修正スケジュールデータ４１Ｘを学習した学習装置５０が、この制御装置８２およびスケジューリング装置１０Ａとは別の制御装置８２およびスケジューリング装置１０Ａに適用され、当該別の制御装置８２およびスケジューリング装置１０Ａに対し、修正スケジュールデータ４１Ｘを再学習して学習済モデル７１を更新するようにしてもよい。
【０１９８】
また、学習装置５０は、ユーザに指定された指定期間内における全ての加工機８１の合計のジョブ実行時間の割合が大きくなる修正スケジュールデータ４１Ｘを推論するための学習済モデル７１を生成してもよい。換言すると、学習装置５０は、ユーザに指定された指定期間内における全ての加工機８１の保守時間の合計を短縮できる修正スケジュールデータ４１Ｘを推論するための学習済モデル７１を生成してもよい。
【０１９９】
この場合、推論装置６０は、学習装置５０が生成した学習済モデル７１を用いて、ユーザに指定された指定期間内における全ての加工機８１の合計のジョブ実行時間の割合が大きくなる修正スケジュールデータ４１Ｘを推論する。
【０２００】
学習済モデル７１が、ユーザに指定された指定期間内における全ての加工機８１の保守時間の合計を短縮できるモデルである場合、学習装置５０および推論装置６０は、ユーザに指定された指定期間内における加工機８１の全体の稼働率を高めることができる。
【０２０１】
また、学習装置５０は、各ジョブの納期を守りつつ、ユーザに指定された指定期間内における全ての加工機８１の合計のジョブ実行数が多くなる修正スケジュールデータ４１Ｘを推論するための学習済モデル７１を生成してもよい。これにより、学習装置５０は、ユーザに指定された指定期間内に実行されるジョブの数を増やすことができる。
【０２０２】
この場合、推論装置６０は、学習装置５０が生成した学習済モデル７１を用いて、ユーザに指定された指定期間内における全ての加工機８１の合計のジョブ実行数が多くなる修正スケジュールデータ４１Ｘを推論する。
【０２０３】
このように、実施の形態３によれば、学習済モデル７１が、修正スケジュールデータ４１Ｘにおける最後のジョブの実行が完了するまでの時間を早める修正スケジュールデータ４１Ｘを推論するので、最後のジョブの実行が完了するまでの時間を早めることができる。これにより、加工機８１は、ジョブのトータルの実行時間を短縮することが可能となる。
【０２０４】
また、学習済モデル７１が、特定期間における全ての加工機８１の合計のジョブ実行時間の割合が大きくなる修正スケジュールデータ４１Ｘを推論するので、特定期間における全ての加工機８１の合計のジョブ実行時間の割合を大きくすることができる。これにより、加工機８１は、ジョブを効率良く実行することが可能となる。
【０２０５】
また、学習済モデル７１が、各ジョブの納期を守りつつ、特定期間における全ての加工機８１の合計のジョブ実行数が多くなる修正スケジュールデータ４１Ｘを推論するので、特定期間における全ての加工機８１の合計のジョブ実行数を増やすことができる。これにより、加工機８１は、ジョブを効率良く実行することが可能となる。
【０２０６】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０２０７】
１０Ａ，１０Ｂ  スケジューリング装置、１１  スケジュール作成部、１２  時期情報作成部、１３  保守必要時期算出部、１４  停止時期算出部、１５  停止時期出力部、１６  スケジュール修正部、２０  ユーザ指定情報、２１  加工指示情報、２２  ワークＩＤ情報、２３  加工プログラムＩＤ情報、２４  対応時間情報、３１  消耗品寿命予測時期、３２  部品メンテナンス時期、４０  時期情報、４１  スケジュールデータ、４１Ｘ  修正スケジュールデータ、４２  保守必要時期データ、４５  スケジュール運転実行結果データ、５０  学習装置、５１，６１  データ取得部、５２  モデル生成部、５３  報酬計算部、５４  関数更新部、６０  推論装置、６２  推論部、７０  学習済モデル記憶部、７１  学習済モデル、８１  加工機、８２  制御装置、８３  表示装置、１００  プロセッサ、２００  メモリ、３００  入力装置、４００  出力装置。
【要約】
加工機（８１）に対して複数のジョブを投入するためのスケジュールデータ（４１）を作成するスケジューリング装置（１０Ａ）であって、各ジョブの加工に要する時間が見積もられた加工見積時間に基づいて、スケジュールデータ（４１）を作成するスケジュール作成部（１１）と、加工機（８１）が用いる消耗品の消耗品寿命予測時期（３１）、および加工機（８１）が有する部品の部品メンテナンス時期（３２）に基づいて、加工機（８１）に対して保守が必要となる時期である保守必要時期データ（４２）を算出する保守必要時期算出部（１３）と、スケジュールデータ（４１）および保守必要時期データ（４２）に基づいて、ジョブの実行中に保守によって加工機（８１）による加工が停止する時期である停止時期を算出する停止時期算出部（１４）と、停止時期を外部装置に出力する停止時期出力部（１５）と、を備える。【図１】
0006929484.tif 000003
【図２】
0006929484.tif 000004
【図３】
0006929484.tif 000005
【図４】
0006929484.tif 000006
【図５】
0006929484.tif 000007
【図６】
0006929484.tif 000008
【図７】
0006929484.tif 000009
【図８】
0006929484.tif 000010
【図９】
0006929484.tif 000011
【図１０】
0006929484.tif 000012
【図１１】
0006929484.tif 000013
【図１２】
0006929484.tif 000014
【図１３】
0006929484.tif 000015
【図１４】
0006929484.tif 000016
【図１５】
0006929484.tif 000017
【図１６】
0006929484.tif 000018
【図１７】
0006929484.tif 000019
【図１８】
0006929484.tif 000020
【図１９】
0006929484.tif 000021
【図２０】
0006929484.tif 000022