(57)【要約】  負荷分散装置である情報端末装置４は、複数の実行対象のプログラムの各々が複数の制御装置である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段９３と、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段９４と、作成された複数の組み合わせのなかから全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段９６とを有する。
2017141332.tif 000002
【特許請求の範囲】
【請求項１】
複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、
前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、
前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と
を備えることを特徴とする負荷分散装置。
【請求項２】
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段を更に備え、
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択する
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が異なる二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する
ことを特徴とする請求項１又は２に記載の負荷分散装置。
【請求項４】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が相反する二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成し、
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと、前記第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項１又は２に記載の負荷分散装置。
【請求項５】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項４に記載の負荷分散装置。
【請求項６】
前記複数の制御装置のうちの特定の制御装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する判断手段とを更に備え、
前記負荷検出手段によって検出された負荷が前記閾値以上であると前記判断手段によって判断された場合、前記特定手段、前記取得手段、前記組み合わせ手段、前記予測手段、前記選択手段及び前記制御手段は、各々が有する機能を実行する
ことを特徴とする請求項１から５のいずれか１項に記載の負荷分散装置。
【請求項７】
前記複数の実行対象のプログラムの各々の実際の実行時間を検出する時間検出手段と、
前記時間検出手段によって得られた情報を記憶する記憶手段とを更に備え、
前記取得手段は、前記記憶手段から前記複数の種類のプログラムの各々の実行時間の情報を取得する
ことを特徴とする請求項１から６のいずれか１項に記載の負荷分散装置。
【請求項８】
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が最も短い組み合わせを選択する
ことを特徴とする請求項１から７のいずれか１項に記載の負荷分散装置。
【請求項９】
複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てる場合のひとつの組み合わせであって、前記複数の実行対象のプログラムのうちの前記実行時間が相反する二つの前記実行対象のプログラムが前記複数の制御装置の少なくともひとつに割り当てられる前記ひとつの組み合わせを作成する組み合わせ手段と、
前記組み合わせ手段によって作成された前記ひとつの組み合わせにしたがって、前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備え、
前記組み合わせ手段は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用いて前記ひとつの組み合わせを作成する
ことを特徴とする負荷分散装置。
【請求項１０】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと前記第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項９に記載の負荷分散装置。
【請求項１１】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項１０に記載の負荷分散装置。
【請求項１２】
プログラムを実行する複数の制御装置を管理する負荷分散装置において、
前記制御装置で実行する複数のプログラムの実行時間をプログラム毎に算出する実行時間算出部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示する
ことを特徴とする負荷分散装置。
【請求項１３】
前記実行時間算定部は、複数のプログラムの実行時間をプログラム毎に記録することにより行い、
前記実行時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする請求項１２に記載の負荷分散装置。
【請求項１４】
前記プログラムの実行は、制御装置に記録されたプログラムを前記プログラム実行指示部からの指示に基づいて実行することを特徴とする請求項１２又は１３に記載の負荷分散装置。
【請求項１５】
前記プログラムの実行は、前記プログラム実行指示部から前記制御装置に配信されたプログラムを実行することで行われることを特徴とする請求項１２又は１３に記載の負荷分散装置。
【請求項１６】
前記制御装置におけるプログラムの実行負荷が増大したことを検出した後、前記プログラム実行指示部が機能することを特徴とする請求項１２から１５のいずれか１項に記載の負荷分散装置。
【請求項１７】
プログラムを実行する複数の制御装置を管理する負荷分散装置おいて、
制御装置で実行する複数のプログラムの実行予想時間をプログラム毎に記録する実行予想時間記録部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
前記プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示し、
前記実行予想時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする負荷分散装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置に関する。
【背景技術】
【０００２】
ひとつの制御装置が複数の実行対象のプログラムを実行する場合、ひとつの制御装置の処理の負担は大きい。そのため、複数の実行対象のプログラムを複数の制御装置に実行させる技術が提案されている（例えば、特許文献１、２及び３参照）。その技術によれば、複数の実行対象のプログラムを実行する際の処理の負担は複数の制御装置に分散され、各制御装置における処理の負担は小さくなる。【０００３】
複数の実行対象のプログラムが複数の制御装置に分散して割り当てられると、複数の実行対象のプログラムが配信されてから、複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間は短くなる。つまり、複数の制御装置が複数の実行対象のプログラムを分担して実行する場合の全プログラム終了時間は、ひとつの制御装置が複数の実行対象のプログラムを実行する場合の全プログラム終了時間よりも短くなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−９１０１１号公報
【特許文献２】特開平９−１６０８９０号公報
【特許文献３】特開２００２−１４０３１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術を用いて複数の制御装置が複数の実行対象のプログラムを分担して実行する場合であっても、特定の制御装置の処理の負荷が大きい場合があり、その場合、全プログラム終了時間はまだ長いという課題がある。【０００６】
本発明は、上記に鑑みてなされたものであって、全プログラム終了時間をより短くする負荷分散装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明にかかる負荷分散装置は、全プログラム終了時間をより短くすることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる負荷分散装置を含む負荷分散システムの構成図
【図２】図１の負荷分散システムを構成する第１のＰＬＣ及び情報端末装置の詳細を示す図
【図３】実施の形態１におけるプログラムの登録の手順を示すフローチャート
【図４】実施の形態１における信号登録情報の格納例を示す図
【図５】実施の形態１におけるプログラム情報の格納例を示す図
【図６】複数のプログラマブルロジックコントローラのなかからいずれかひとつのプログラマブルロジックコントローラを選択してプログラムの実行を指示する手順を示すフローチャート
【図７】実施の形態１におけるプログラムの同期を説明するための図
【図８】実施の形態１におけるプログラム実行記録の格納例を示す図
【図９】実施の形態１におけるプログラム実行時間予測処理に関する図
【図１０】実施の形態１の負荷分散装置を説明するための図
【図１１】図１０の組み合わせ手段が作成する組み合わせの例を示す図
【図１２】図１０の情報端末装置を構成する一部の手段が処理回路であることを示す図
【図１３】図１０の情報端末装置を構成する一部の手段がプロセッサであることを示す図
【発明を実施するための形態】
【００１０】
以下に、本発明の実施の形態にかかる負荷分散装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１１】
実施の形態１．
図１は、実施の形態１にかかる負荷分散装置を含む負荷分散システム２０の構成図である。実施の形態１にかかる負荷分散装置は、複数の実行対象のプログラムの実行を複数の制御装置に分担させる装置である。実施の形態１では、負荷分散装置は情報端末装置４であり、制御装置はプログラマブルロジックコントローラである。以下では、プログラマブルロジックコントローラを「ＰＬＣ」と記載する。ＰＬＣは、Programmable  Logic  Controllerの略語である。しかしながら、負荷分散装置及び制御装置は通常のパーソナルコンピュータであってもよい。以下では、パーソナルコンピュータを「ＰＣ」と記載する。ＰＣは、Personal  Computerの略語である。
【００１２】
図１に示す通り、負荷分散システム２０は、第１のＰＬＣ１と、制御ネットワーク２と、情報ネットワーク３と、情報端末装置４と、保守端末装置５と、第２のＰＬＣ６と、第３のＰＬＣ７とを有する。第１のＰＬＣ１には、外部機器８が接続される。外部機器８の一例は、センサ、ポンプ又はバルブである。センサの一例は、流量計又は圧力計である。
【００１３】
第１のＰＬＣ１は、メモリ１０を有する。保守端末装置５は、ユーザプログラムを記憶している設計ツール５１を有する。第１のＰＬＣ１のメモリ１０には、保守端末装置５の設計ツール５１からのユーザプログラムが格納される。第１のＰＬＣ１は、メモリ１０に格納されたユーザプログラムを用いて、外部機器８のセンサによって測定された値を取得し、外部機器８に制御信号を出力する。第１のＰＬＣ１は、メモリ１０以外の構成要素も有する。第１のＰＬＣ１が有するメモリ１０以外の構成要素の説明は、図２を用いて後に行う。
【００１４】
制御ネットワーク２は、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７を相互に接続する通信ネットワークである。制御ネットワーク２を介して、複数のＰＬＣの各々は相互に接続される。第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７は、制御ネットワーク２における共有メモリを用いることにより、リアルタイムに相互にデータを交換することができる。共有メモリの一例は、サイクリックメモリである。説明を簡単に行うために、図１には、共有メモリは示されていない。
【００１５】
情報ネットワーク３は、情報端末装置４、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７を相互に接続する通信ネットワークである。情報ネットワーク３は、ローカルエリアネットワークであってもよいし、インターネットであってもよい。
【００１６】
情報端末装置４は、ＰＣによって構成されている。情報端末装置４は、汎用のＰＣではない専用の装置であってもよい。情報端末装置４は、通信プロトコルにしたがって、情報ネットワーク３を介して第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の各々と通信する。通信プロトコルの一例は、ＴＣＰ／ＩＰ(Transmission  Control  Protocol/Internet  Protocol)である。
【００１７】
情報端末装置４は、データベース４１とメモリ４２とを含む記憶装置４０を有する。メモリ４２には、ＭＥＳ及びＥＲＰが格納されている。ＭＥＳは、Manufacturing  Execution  Systemの略語であって、生産の最大化を図るための情報である。ＥＲＰは、Enterprise  Resource  Planningの略語であって、利益の最大化を図るための情報である。情報端末装置４は、第１のＰＬＣ１が有するデータを監視し、第１のＰＬＣ１が有するデータをデータベース４１に保存し、第１のＰＬＣ１を制御するための信号を第１のＰＬＣ１に送信する。情報端末装置４は、記憶装置４０以外の構成要素も有する。情報端末装置４が有する記憶装置４０以外の構成要素の説明は、図２及び図１０を用いて後に行う。
【００１８】
図２は、図１の負荷分散システム２０を構成する第１のＰＬＣ１及び情報端末装置４の詳細を示す図である。図２には、保守端末装置５及び第２のＰＬＣ６も示されている。図２には、第１のＰＬＣ１、情報端末装置４及び第２のＰＬＣ６の各々と通信することができる外部データベース９０も示されている。
【００１９】
第１のＰＬＣ１は、メモリ１０と、プログラム共通実行手段１１と、実行実績記録手段１２と、記憶手段１３とを有する。記憶手段１３は、実行対象のプログラムに関連するプログラムコード１４と実行スケジュール１５とを記憶する。プログラムコード１４は、情報端末装置４が有する記憶装置４０のメモリ４２に格納されているＭＥＳ及びＥＲＰと連携するプログラムに関するコードである。プログラム共通実行手段１１は、プログラムコード１４に関連する実行対象のプログラムを実行する手段である。実行実績記録手段１２は、プログラムコード１４に関連するプログラムの実行時間をプログラムコード１４の識別情報と共に時系列に記録する手段である。
【００２０】
情報端末装置４は、記憶装置４０と、プログラム情報記憶手段４３と、信号定義情報記憶手段４４と、実行時間予測手段４５と、ＰＬＣ選択手段４６と、プログラム配信手段４７と、プログラム共通実行手段４８と、負荷分散処理手段４９とを有する。プログラム情報記憶手段４３は、第１のＰＬＣ１によって実行されるプログラムに関連するプログラムコード１４の値を格納したプログラム情報を記憶する。信号定義情報記憶手段４４は、第１のＰＬＣ１によって扱われる信号の名称と信号の値を取得する接続先とを含む信号定義情報を記憶する。
【００２１】
実行時間予測手段４５は、プログラム情報記憶手段４３によって記憶されているプログラム情報をもとに、次にプログラムが実行されるときにそのプログラムの実行に必要な時間を予測する。ＰＬＣ選択手段４６は、実行時間予測手段４５によって予測された実行時間をもとにプログラムを実行するＰＬＣを選択する。プログラム配信手段４７は、ＰＬＣ選択手段４６によって選択されたＰＬＣにプログラムを配信する。プログラム共通実行手段４８は、ＰＬＣ選択手段４６によって選択されたＰＬＣとは異なるＰＬＣでもプログラムが実行されることを可能にする処理を実行する。
【００２２】
実行時間予測手段４５、ＰＬＣ選択手段４６及びプログラム配信手段４７は、情報端末装置４に設けられなくてもよい。実行時間予測手段４５、ＰＬＣ選択手段４６及びプログラム配信手段４７の各機能は、クラウド上で実現されてもよいし、情報端末装置４と接続されるひとつ又は複数のＰＬＣによって実現されてもよい。負荷分散処理手段４９の説明は、図１０を用いて後に行う。
【００２３】
次に、実施の形態１の負荷分散システム２０の動作を説明する。負荷分散システム２０の動作は、ＰＬＣで実行されるプログラムを登録する手順と、複数のＰＬＣのなかから最適なＰＬＣを選択してプログラムを実行させる手順とを含む。
【００２４】
（手順１：プログラムの登録）
図３のフローチャートにしたがって、プログラムの登録の手順を説明する。図３は、実施の形態１におけるプログラムの登録の手順を示すフローチャートである。ステップＳ１において、情報端末装置４の信号定義情報記憶手段４４は、実行対象のプログラムが扱う信号を定義する。第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の各々では、情報端末装置４からの信号はメモリに格納される。
【００２５】
以下の式（１）は、実施の形態１におけるプログラムコードの例を示す式である。
DB1.INSERT(TB1,ID=1234,COUNT=TAG300);・・・（１）
式（１）は、ある設備が生産した商品の識別番号を示すＩＤが「１２３４」であり、その商品の個数が「ＴＡＧ３００」であって、その個数をデータベースＤＢ１のテーブルＴＢ１に生産実績として格納することを意味している。テーブルＴＢ１には、２つのフィールドが設けられており、一つ目のフィールドは商品の識別番号を示すＩＤのフィールドであり、二つ目のフィールドは商品の生産個数を示すＣＯＵＮＴのフィールドである。式（１）のプログラムコードでは、データベースに関する信号はＤＢ１及びＴＢ１であり、センサに関する信号はＴＡＧ３００である。
【００２６】
ステップＳ２において、情報端末装置４の信号定義情報記憶手段４４は、信号を取得する先を登録する。信号を取得する先は接続先であり、接続先の一例はセンサ又はデータベースである。つまり、接続先は、ＰＬＣ又は外部データベース９０のテーブルのフィールドである。例えば、設備Ｘに設けられた生産台数を計測するためのリミットセンサが第１のＰＬＣ１に接続されており、リミットセンサの計測値である個数の値がアドレスＤ３０００に格納されている場合、接続先は、図４に示す通り第１のＰＬＣ１である。
【００２７】
図４は、実施の形態１における信号登録情報の格納例を示す図である。図４では、信号の意味を示す信号名称と、信号を識別するためのＩＤと、信号に割りあてられているアドレスと、信号の値の取得先である接続先とが属性として定義されている。上記のアドレスは、データベースではフィールドに置き換えられる。図４は、上記のリミットセンサについては、信号名称は「設備Ｘ  生産台数」であり、信号をシステム内で識別するためのＩＤは「ＴＡＧ３００」であり、その値は第１のＰＬＣ１のアドレスＤ３０００を参照することによって得られるということを示している。
【００２８】
ＩＤが「ＴＡＧ２００」である信号は、設備Ｘが故障したことを示す信号であって、第２のＰＬＣ６のアドレスＤ２０００を読み出すことによってＩＤが「ＴＡＧ２００」である信号の内容を取得することができる。図４は、ＩＤが「ＴＡＧ４００」である信号については、その信号が工程１の運転時間を示す信号であって、その信号の内容は外部のデータベースＤＢ１のテーブルＴＢ１のRunTimeというフィールドに格納されていることを示している。
【００２９】
図３のステップＳ３において、情報端末装置４の信号定義情報記憶手段４４は、保守端末装置５の設計ツール５１を使ってプログラムコード１４の内容をプログラム情報記憶手段４３に記述する。この場合、信号登録情報に登録された信号ＩＤが使用される。
【００３０】
ステップＳ４において、保守端末装置５の設計ツール５１は、プログラムコード１４をプログラム情報記憶手段４３に登録する。この場合、設計ツール５１は、どのプログラムがどの信号をどのように操作するのかを示す関連情報をプログラム情報記憶手段４３に登録する。操作の一例は、抽出又は挿入である。実施の形態１では、抽出はSELECTと表現され、挿入はINSERTと表現される。プログラム情報記憶手段４３に登録されるプログラム情報は、プログラムの属性を示している。プログラム名又はプログラムの識別情報を指定することで、プログラムがどのＰＬＣのメモリアドレスで使用されるのかということ、又は、プログラムがどのデータベースのテーブルのフィールドをどのように操作するのかということがわかる。
【００３１】
図５は、実施の形態１におけるプログラム情報の格納例を示す図である。図５は、例えば、プログラムＪＯＢαが信号ＴＡＧ００７の値をデータベースから読み出して信号ＴＡＧ３００に書き込むことを示している。図４に示す通り、信号ＴＡＧ００７は生産指示であり、信号ＴＡＧ００７の値は、データベースＤＢ１のテーブルＴＢ１のフィールドのOrderの部分を読み出すことによって得られる。書き込み先の信号は信号ＴＡＧ３００であって、図４に示す通り信号ＴＡＧ３００は設備Ｘの生産台数を示しているので、信号ＴＡＧ００７の値は第１のＰＬＣ１のアドレスＤ３０００に書き込まれる。
【００３２】
図３のステップＳ５において、すべてのプログラムについて登録が完了した場合（ステップＳ５でＹｅｓ）、プログラムの登録は終了する。すべてのプログラムについて登録が完了していない場合（ステップＳ５でＮｏ）、処理はステップＳ３に移行する。
【００３３】
(手順２：ＰＬＣを選択してプログラムを実行）
図６は、複数のＰＬＣのなかからいずれかひとつのＰＬＣを選択してプログラムの実行を指示する手順を示すフローチャートである。ステップＳ１０１において、情報端末装置４の実行時間予測手段４５は、プログラム情報記憶手段４３から登録されているプログラムを読み出す。
【００３４】
ステップＳ１０２において、情報端末装置４の実行時間予測手段４５は現在実行されているプログラムの実行終了までにかかる予測時間を取得し、予測時間が０である場合、ＰＬＣ選択手段４６は情報端末装置４に現在接続されているＰＬＣの実行スケジュール１５から実行終了予定時刻の一番早いＰＬＣを選択する。予測時間が０でない場合、ＰＬＣ選択手段４６は、ＰＬＣの実行終了予定時刻に予測時間を加えて一番小さくなるＰＬＣを選択する。例えば、予測時間が４０秒であって、第１のＰＬＣ１において現在実行されているプログラムが２０秒後に終了する予定であり、第２のＰＬＣ６において現在実行されているプログラムが１０秒後に終了する予定であり、第３のＰＬＣ７において現在実行されているプログラムが８０秒後に終了する予定である場合、ＰＬＣ選択手段４６は、第２のＰＬＣ６を選択し、実行スケジュール１５に４０を加えて実行終了予定時刻を更新する。
【００３５】
ステップＳ１０３において、情報端末装置４のプログラム配信手段４７は、ＰＬＣ選択手段４６が選択したＰＬＣにプログラムを配信する。配信は、汎用プロトコルにしたがって行われる。汎用プロトコルの一例は、ＨＴＴＰ／ＦＴＰ(Hypertext  Transfer  Protocol/  File  Transfer  Protocol)である。
【００３６】
配信されたプログラムは、情報端末装置４のプログラム共通実行手段４８によって、どのＰＬＣにおいても実行されるように制御される。配信されたプログラムがどのＰＬＣにおいても実行されることを、図７を用いて詳しく説明する。図７は、実施の形態１におけるプログラムの同期を説明するための図である。第１のセンサ１７と第２のセンサ１８とを取り扱うためのプログラムは、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７において実行される。第１のセンサ１７からの信号は第１のＰＬＣ１に設けられたＩ／Ｏ端子ユニット１６の２番目の端子に入力され、第２のセンサ１８からの信号はＩ／Ｏ端子ユニット１６の５番目の端子に入力される。第１のＰＬＣ１に入力された信号の値は、第１のＰＬＣ１のＣＰＵにより第１のＰＬＣ１のローカルメモリ２１の１番目のアドレスと５番目のアドレスとに書き込まれる。
【００３７】
第２のＰＬＣ６のローカルメモリのアドレスの構成は第１のＰＬＣ１のローカルメモリのアドレスの構成と同じであるが、第２のＰＬＣ６はＩ／Ｏ端子ユニット１６を有していないので、第２のＰＬＣ６のローカルメモリには、第１のセンサ１７及び第２のセンサ１８によって計測された値は書き込まれない。しかしながら、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７はサイクリックメモリを制御ネットワーク２において有する。サイクリックメモリは、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の共通メモリである。
【００３８】
サイクリックメモリは、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の各々のエリアを有する。つまり、第１のＰＬＣ１に対応する第１のサイクリックメモリ１９と、第２のＰＬＣ６に対応する第２のサイクリックメモリ６１と、第３のＰＬＣ７に対応する第３のサイクリックメモリ７１とが存在する。データが第１のサイクリックメモリ１９の第１のＰＬＣ１の領域に書き込まれると、そのデータは第２のサイクリックメモリ６１の第１のＰＬＣ１の領域にコピーされる。同様に、そのデータは第３のサイクリックメモリ７１の第１のＰＬＣ１の領域にコピーされる。
【００３９】
第１のセンサ１７の計測値が第１のＰＬＣ１のメモリ１０に書き込まれている場合、その値を第１のサイクリックメモリ１９のいずれかのアドレスに書き込む処理と、その値を第２のＰＬＣ６の第２のサイクリックメモリ６１のいずれかのアドレスから第２のＰＬＣ６のメモリに書き込む処理とが実行される。第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７がサイクリックメモリを共有しているので、プログラムでは値は第１のＰＬＣ１のメモリ１０に書き込まれることになっていても、どのＰＬＣにおいてもプログラムは実行可能になる。情報端末装置４のプログラム共通実行手段４８は、上述の処理を実行させるので、プログラムが第１のＰＬＣ１に配信されても、配信されたプログラムは第２のＰＬＣ６及び第３のＰＬＣ７において実行可能となる。
【００４０】
図６のステップＳ１０４において、第１のＰＬＣ１はプログラムを実行する。第１のＰＬＣ１は、プログラムを実行する前にプログラムを識別するプログラムＩＤとプログラムの実行開始時刻とを実行実績記録手段１２に記憶する。第１のＰＬＣ１は、プログラムの実行終了後にプログラムＩＤのエントリを検出し、図８に示すように、実行スケジュール１５に実行終了時刻を記憶すると共に経過時間を記録する。図８は、実施の形態１におけるプログラム実行記録の格納例を示す図である。図８は、プログラムＪＯＢαの実行が２０１５年６月３０日１１時３０分３０．５秒に開始し、２０１５年６月３０日１１時３０分３５．０秒に終了したことを示している。経過時間は、４．５秒である。
【００４１】
図６のステップＳ１０５において、実行時間予測手段４５は、プログラムの実行時間の実績とプログラム情報に含まれるプログラムの属性との因果関係を分析して実行時間を予測する。図９は、実施の形態１におけるプログラム実行時間予測処理に関する図である。図９に示すように、プログラム実行時間は、接続しているデータベースの個数、レコードの個数及びフィールドの個数に比例する。
【００４２】
実行時間予測手段４５は、外的因子と実行時関との関係を統計的に分析する。例えば、実行時間予測手段４５は、特定のＰＬＣのメモリからのデータの読み出しにかかる時間を分析する。実行時間予測手段４５は、分析の結果から導かれる因果関係をもとに予測時間の定式化を行う。定式化は、言い換えるとモデル化である。モデル化には、広く知られている方法が用いられる。広く知られている方法の一例は、最小二乗法である。
【００４３】
例えば、プログラムの実行時間Ｔｉが下記の式（２）のようにモデル化されたと仮定する。
Ｔｉ＝１．５×（通信するデータベース数）×１０００＋２．２×（テーブルの列数）・・・（２）
データベース数が２でテーブルの列数が１０００である場合、式（２）を用いることにより、プログラム実行時間が５２００ｍｓであると予測することができる。このとき、実行スケジュール１５の実行終了時刻のフィールドには、現在時刻にＴｉを加えた値が記録される。経過時間のフィールドには０が記録され、それにより、予測時間と実績との区別を行うことができる。すべてのプログラムの実行が終了していれば処理は終了し（Ｓ１０６でＹｅｓ）、すべてのプログラムの実行が終了していなければ（Ｓ１０６でＮｏ）、処理はステップＳ１０１に移行する。
【００４４】
次に、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置の詳細について説明する。図１０は、実施の形態１の負荷分散装置を説明するための図である。上述の通り、実施の形態１では、負荷分散装置は情報端末装置４である。図１０では、説明を簡単に行うために、情報端末装置４が有する複数の構成要素のうちの負荷分散処理手段４９のみが示されている。実施の形態１では、上述の通り、制御装置はＰＬＣである。すなわち、実施の形態１では、複数の制御装置は、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７である。
【００４５】
実施の形態１では、複数の実行対象のプログラム及び実行時間について、以下の状況を想定する。すなわち、複数の実行対象のプログラムは、プログラムＡ１、プログラムＡ２、プログラムＡ３、プログラムＢ１、プログラムＢ２、プログラムＢ３、プログラムＣ１、プログラムＣ２及びプログラムＣ３の９個のプログラムである。プログラムＡ１、プログラムＡ２及びプログラムＡ３は、種類Ａのプログラムである。プログラムＢ１、プログラムＢ２及びプログラムＢ３は、種類Ｂのプログラムである。プログラムＣ１、プログラムＣ２及びプログラムＣ３は、種類Ｃのプログラムである。例えば、種類Ａのプログラムは切削に関するプログラムであり、種類Ｂのプログラムは加工に関するプログラムであり、種類Ｃのプログラムは組み立てに関するプログラムである。
【００４６】
実施の形態１では、種類Ａのプログラムの実行時間は、実行時間ａである。つまり、プログラムＡ１、プログラムＡ２及びプログラムＡ３のいずれの実行時間も実行時間ａである。種類Ｂのプログラムの実行時間は、実行時間ｂである。つまり、プログラムＢ１、プログラムＢ２及びプログラムＢ３のいずれの実行時間も実行時間ｂである。実行時間ｂは、実行時間ａより短い。種類Ｃのプログラムの実行時間は、実行時間ｃである。つまり、プログラムＣ１、プログラムＣ２及びプログラムＣ３のいずれの実行時間も実行時間ｃである。実行時間ｃは、実行時間ａより長い。実行時間ａと実行時間ｂとの合計は実行時間ｃと同じである。
【００４７】
図１０に示す通り、情報端末装置４の負荷分散処理手段４９は、特定手段９１と、取得手段９２と、組み合わせ手段９３と、予測手段９４と、算出手段９５と、選択手段９６と、制御手段９７と、負荷検出手段９８と、判断手段９９と、時間検出手段７９と、記憶手段７８とを有する。
【００４８】
特定手段９１は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する。具体的には、特定手段９１は、複数の実行対象のプログラムのうちのプログラムＡ１、プログラムＡ２及びプログラムＡ３は種類Ａのプログラムであると特定する。特定手段９１は、複数の実行対象のプログラムのうちのプログラムＢ１、プログラムＢ２及びプログラムＢ３は種類Ｂのプログラムであると特定する。特定手段９１は、複数の実行対象のプログラムのうちのプログラムＣ１、プログラムＣ２及びプログラムＣ３は種類Ｃのプログラムであると特定する。
【００４９】
取得手段９２は、複数の種類のプログラムの各々の実行時間の情報を取得する。具体的には、取得手段９２は、種類Ａのプログラムの実行時間は実行時間ａであり、種類Ｂのプログラムの実行時間は実行時間ａより短い実行時間ｂであって、種類Ｃのプログラムの実行時間は実行時間ａより長い実行時間ｃであることを示す情報を取得する。上述の通り、実施の形態１では、実行時間ａと実行時間ｂとの合計は実行時間ｃと同じであるので、取得手段９２は、実行時間ａと実行時間ｂとの合計は実行時間ｃと同じであることを示す情報も取得する。
【００５０】
組み合わせ手段９３は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てられる場合の複数の組み合わせを作成する。組み合わせ手段９３は、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかひとつに、又は第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のうちの任意の二つにもしくは全部に、実行時間が異なる少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
【００５１】
図１１を用いて、組み合わせ手段９３が作成する複数の組み合わせを説明する。図１１は、図１０の組み合わせ手段９３が作成する組み合わせの例を示す図である。組み合わせ手段９３は、図１１（Ａ）から図１１（Ｅ）に示す５個の組み合わせを含む複数の組み合わせを作成する。具体的には、組み合わせ手段９３は、図１１（Ａ）に示す通り、プログラムＡ１、プログラムＢ１及びプログラムＣ１が第１のＰＬＣ１に割り当てられ、プログラムＡ２、プログラムＢ２及びプログラムＣ２が第２のＰＬＣ６に割り当てられ、プログラムＡ３、プログラムＢ３及びプログラムＣ３が第３のＰＬＣ７に割り当てられるというひとつの組み合わせを作成する。図１１では、「１−ＰＬＣ」は第１のＰＬＣ１を意味し、「２−ＰＬＣ」は第２のＰＬＣ６を意味し、「３−ＰＬＣ」は第３のＰＬＣ７を意味している。
【００５２】
加えて、組み合わせ手段９３は、図１１（Ｂ）に示す通り、プログラムＡ１、プログラムＢ２及びプログラムＣ２が第１のＰＬＣ１に割り当てられ、プログラムＢ１、プログラムＡ２及びプログラムＡ３が第２のＰＬＣ６に割り当てられ、プログラムＣ１、プログラムＢ３及びプログラムＣ３が第３のＰＬＣ７に割り当てられるというひとつの組み合わせを作成する。
【００５３】
さらに、組み合わせ手段９３は、図１１（Ｃ）に示す通り、プログラムＡ１、プログラムＡ２及びプログラムＣ３が第１のＰＬＣ１に割り当てられ、プログラムＢ１、プログラムＣ２及びプログラムＡ３が第２のＰＬＣ６に割り当てられ、プログラムＣ１、プログラムＢ２及びプログラムＢ３が第３のＰＬＣ７に割り当てられるというひとつの組み合わせを作成する。
【００５４】
さらにまた、組み合わせ手段９３は、図１１（Ｄ）に示す通り、プログラムＡ１、プログラムＢ２、プログラムＡ２及びプログラムＢ３が第１のＰＬＣ１に割り当てられ、プログラムＢ１、プログラムＣ２及びプログラムＡ３が第２のＰＬＣ６に割り当てられ、プログラムＣ１及びプログラムＣ３が第３のＰＬＣ７に割り当てられるというひとつの組み合わせを作成する。
【００５５】
さらにまた、組み合わせ手段９３は、図１１（Ｅ）に示す通り、プログラムＡ１、プログラムＢ１、プログラムＣ１、プログラムＣ２及びプログラムＣ３が第１のＰＬＣ１に割り当てられ、プログラムＡ２、プログラムＡ３、プログラムＢ２及びプログラムＢ３が第２のＰＬＣ６に割り当てられるというひとつの組み合わせを作成する。
【００５６】
予測手段９４は、組み合わせ手段９３によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。具体的には、予測手段９４は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段９１によって得られた情報と取得手段９２によって取得された情報とを用い、組み合わせ手段９３によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。特定手段９１によって得られた情報は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する情報である。取得手段９２によって取得された情報は、複数の種類のプログラムの各々の実行時間の情報である。
【００５７】
図１１を用いて予測手段９４の機能を更に説明する。図１１は、上述の通り図１０の組み合わせ手段９３が作成する組み合わせの例を示す図であるが、組み合わせ手段９３によって作成された複数の組み合わせの各々の全プログラム終了時間の予測結果を示す図でもある。全プログラム終了時間は、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間を意味する。
【００５８】
図１１（Ａ）の組み合わせでは、全プログラム終了時間は、第１のＰＬＣ１がプログラムＡ１、プログラムＢ１及びプログラムＣ１を実行する場合の時間であって、実行時間ａ、実行時間ｂ及び実行時間ｃの合計の時間である。第２のＰＬＣ６がプログラムＡ２、プログラムＢ２及びプログラムＣ２を実行する場合の実行時間も、第１のＰＬＣ１がプログラムＡ１、プログラムＢ１及びプログラムＣ１を実行する場合の実行時間と同じである。第３のＰＬＣ７がプログラムＡ３、プログラムＢ３及びプログラムＣ３を実行する場合の実行時間も、第１のＰＬＣ１がプログラムＡ１、プログラムＢ１及びプログラムＣ１を実行する場合の実行時間と同じである。
【００５９】
図１１（Ｂ）の組み合わせでは、全プログラム終了時間は、第３のＰＬＣ７がプログラムＣ１、プログラムＢ３及びプログラムＣ３を実行する場合の時間であって、実行時間ｂと実行時間ｃの２倍との合計の時間である。図１１（Ｃ）の組み合わせでは、全プログラム終了時間は、第１のＰＬＣ１がプログラムＡ１、プログラムＡ２及びプログラムＣ３を実行する場合の時間であって、実行時間ａの２倍と実行時間ｃとの合計の時間である。
【００６０】
図１１（Ｄ）の組み合わせでは、全プログラム終了時間は、第１のＰＬＣ１がプログラムＡ１、プログラムＢ２、プログラムＡ２及びプログラムＢ３を実行する場合の時間であって、実行時間ａの２倍と実行時間ｂの２倍との合計の時間である。上述の通り、実行時間ａと実行時間ｂとの合計は実行時間ｃと同じなので、図１１（Ｄ）の組み合わせでは、全プログラム終了時間は、第２のＰＬＣ６がプログラムＢ１、プログラムＣ２及びプログラムＡ３を実行する場合の時間であって、実行時間ｂ、実行時間ｃ及び実行時間ａの合計の時間でもある。図１１（Ｄ）の組み合わせでは、全プログラム終了時間は、第３のＰＬＣ７がプログラムＣ１及びプログラムＣ３を実行する場合の時間であって、実行時間ｃの２倍の時間でもある。更に言うと、図１１（Ｄ）の組み合わせでの全プログラム終了時間は、図１１（Ａ）の組み合わせでの全プログラム終了時間と同一である。
【００６１】
図１１（Ｅ）の組み合わせでは、全プログラム終了時間は、第１のＰＬＣ１がプログラムＡ１、プログラムＢ１、プログラムＣ１、プログラムＣ２及びプログラムＣ３を実行する場合の時間であって、実行時間ａと、実行時間ｂと、実行時間ｃの３倍との合計の時間である。
【００６２】
算出手段９５は、組み合わせ手段９３によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である基準時間を算出する。具体的には、算出手段９５は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段９１によって得られた情報と取得手段９２によって取得された情報とを用い、複数の実行対象のプログラムのうちの同一の種類のプログラムを複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のうちの同一のＰＬＣに割り当てると共に複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のうちの互いに異なるＰＬＣの各々に割り当てた場合に複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。
【００６３】
図１１を用いて算出手段９５の機能を更に説明する。図１１は、上述の通り図１０の組み合わせ手段９３が作成する組み合わせの例を示す図であるが、算出手段９５によって算出される基準時間を示す図でもある。図１１（Ｆ）に示す通り、第１のＰＬＣ１がプログラムＡ１、プログラムＡ２及びプログラムＡ３を実行し、第２のＰＬＣ６がプログラムＢ１、プログラムＢ２及びプログラムＢ３を実行し、第３のＰＬＣ７がプログラムＣ１、プログラムＣ２及びプログラムＣ３を実行する場合を想定する。算出手段９５は、図１１（Ｆ）に示される組み合わせにおいて、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。算出手段９５によって算出する基準時間は、図１１（Ｆ）から理解できる通り、実行時間ｃの３倍の時間である。
【００６４】
図１１（Ｇ）は、第１のＰＬＣ１に、プログラムＡ１、プログラムＢ１、プログラムＣ１、プログラムＡ２、プログラムＢ２、プログラムＣ２、プログラムＡ３、プログラムＢ３及びプログラムＣ３の９個のプログラムが割り当てられる組み合わせを示している。
【００６５】
選択手段９６は、組み合わせ手段９３によって作成された複数の組み合わせのなかから、予測手段９４によって予測された全プログラム終了時間が算出手段９５によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。上述の通り、基準時間は、組み合わせ手段９３によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である。例えば、選択手段９６は、組み合わせ手段９３によって作成された複数の組み合わせのなかから、予測手段９４によって予測された全プログラム終了時間が最も短い組み合わせを選択する。図１１の例では、図１１（Ａ）又は図１１（Ｄ）の組み合わせでの全プログラム終了時間が最も短いので、選択手段９６は、組み合わせ手段９３によって作成された複数の組み合わせのなかから、図１１（Ａ）又は図１１（Ｄ）の組み合わせを選択する。
【００６６】
選択手段９６が、いずれかひとつのＰＬＣに同じ種類の複数のプログラムが割り当てられている組み合わせを選択しないという規則を有している場合、図１１（Ａ）の組み合わせでの全プログラム終了時間と図１１（Ｄ）の組み合わせでの全プログラム終了時間とは等しいが、選択手段９６は、図１１（Ａ）の組み合わせを選択する。なぜなら、図１１（Ｄ）の組み合わせでは、第３のＰＬＣ７にプログラムＣ１及びプログラムＣ３という同じ種類の複数のプログラムが割り当てられているからである。
【００６７】
上述の通り、選択手段９６は、組み合わせ手段９３によって作成された複数の組み合わせのなかから、予測手段９４によって予測された全プログラム終了時間が算出手段９５によって算出された基準時間より短い時間である組み合わせのひとつを選択する。図１１（Ｂ）の組み合わせの全プログラム終了時間も図１１（Ｃ）の組み合わせの全プログラム終了時間も、基準時間より短い。そのため、選択手段９６は、図１１（Ｂ）の組み合わせ又は図１１（Ｃ）の組み合わせを選択してもよい。いずれにしても、選択手段９６は、複数の組み合わせのなかから、全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する。したがって、負荷分散装置である情報端末装置４を用いれば、複数の実行対象のプログラムを複数の制御装置に実行させる場合、全プログラム終了時間をより短くすることができるという効果が得られる。
【００６８】
制御手段９７は、選択手段９６によって選択された組み合わせにしたがって、複数の実行対象のプログラムの各々を第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てて、複数の実行対象のプログラムを第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７に実行させる。例えば、選択手段９６によって選択された組み合わせが図１１（Ａ）の組み合わせである場合、制御手段９７は、プログラムＡ１、プログラムＢ１及びプログラムＣ１を第１のＰＬＣ１に割り当てて実行させ、プログラムＡ２、プログラムＢ２及びプログラムＣ２を第２のＰＬＣ６に割り当てて実行させ、プログラムＡ３、プログラムＢ３及びプログラムＣ３を第３のＰＬＣ７に割り当てて実行させる。
【００６９】
負荷検出手段９８は、第１のＰＬＣ１の負荷を検出する。第１のＰＬＣ１は、複数の制御装置のうちの特定の制御装置の一例である。判断手段９９は、負荷検出手段９８によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する。負荷検出手段９８によって検出された負荷が上記の閾値以上であると判断手段９９によって判断された場合、特定手段９１、取得手段９２、組み合わせ手段９３、予測手段９４、算出手段９５、選択手段９６及び制御手段９７は、各々が有する機能を実行する。なお、特定手段９１、取得手段９２、組み合わせ手段９３、予測手段９４、算出手段９５、選択手段９６及び制御手段９７は、負荷検出手段９８によって検出された負荷が上記の閾値以上であると判断手段９９によって判断された場合以外の場合においても、各々が有する機能を実行してもよい。
【００７０】
時間検出手段７９は、複数の実行対象のプログラムの各々の実際の実行時間を検出する。記憶手段７８は、時間検出手段７９によって得られた情報を記憶する。取得手段９２は、記憶手段７８から複数の種類のプログラムの各々の実行時間の情報を取得してもよい。
【００７１】
具体的には、記憶手段７８は過去に実行された複数の実行対象のプログラムの各々の実際の実行時間を記憶している。取得手段９２は、同一の種類のプログラムについての実行時間は過去の実行時間と同一であると推定し、記憶手段７８に記憶されている情報から、複数の種類のプログラムの各々の実行時間の情報を取得する。更に詳細には、記憶手段７８が種類Ａのプログラムの過去の実行時間を記憶している場合を想定する。取得手段９２は、未来に実行される種類Ａのプログラムの実行時間は記憶手段７８に記憶されている種類Ａのプログラムの過去の実行時間と同一であると判断し、種類ＡのプログラムであるプログラムＡ１、プログラムＡ２及びプログラムＡ３の各々の実行時間の情報として記憶手段７８に記憶されている種類Ａのプログラムの過去の実行時間の情報を取得してもよい。
【００７２】
上述の通り、実施の形態１の情報端末装置４は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てられる場合の複数の組み合わせを作成する。情報端末装置４は、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。そして、情報端末装置４は、作成された複数の組み合わせのなかから、予測された全プログラム終了時間が算出手段９５によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。これにより、情報端末装置４は、全プログラム終了時間をより短くすることができる。情報端末装置４の選択手段９６が作成された複数の組み合わせのなかから全プログラム終了時間が最も短い組み合わせを選択する場合、情報端末装置４は、全プログラム終了時間を最も短くすることができる。
【００７３】
なお、上述の実施の形態１では、組み合わせ手段９３は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てられる場合の複数の組み合わせを作成する。言い換えると、組み合わせ手段９３は、複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
【００７４】
実行時間が相反する二つの実行対象のプログラムは、複数の実行対象のプログラムの各々を実行時間が長い順に並べた場合、複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと、第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである。第１の順位は最上位より下位の順位であり、第２の順位は最下位より上位の順位である。
【００７５】
図１１（Ｆ）の組み合わせでは、第１のＰＬＣ１に種類Ａのプログラムのみが割り当てられており、第２のＰＬＣ６に種類Ｂのプログラムのみが割り当てられており、第３のＰＬＣ７に種類Ｃのプログラムのみが割り当てられている。つまり、図１１（Ｆ）の組み合わせでは、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれにおいても、実行時間が相反する二つの実行対象のプログラムは割り当てられていない。そのため、複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成するという規則が設けられている場合、組み合わせ手段９３は、図１１（Ｆ）の組み合わせを作成しない。
【００７６】
実行時間が相反する二つの実行対象のプログラムの一例は、複数の実行対象のプログラムのうちの、実行時間が最も長いプログラムのひとつと実行時間が最も短いプログラムのひとつとである。実施の形態１では、実行時間が相反する二つの実行対象のプログラムの一例は、種類Ｂのプログラムのひとつと種類Ｃのプログラムのひとつとである。
【００７７】
上述した実施の形態１では、基準時間は算出手段９５によって算出される。しかしながら、基準時間は、算出手段９５によって算出されず、あらかじめ決められたものであってもよい。基準時間があらかじめ決められたものである場合、選択手段９６は、組み合わせ手段９３によって作成された複数の組み合わせのなかから、予測手段９４によって予測された全プログラム終了時間があらかじめ決められた基準時間より短い時間であるひとつの組み合わせを選択する。基準時間を適切に設定すれば、情報端末装置４は全プログラム終了時間をより短くすることができる。
【００７８】
上述の実施の形態１では、組み合わせ手段９３は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てられる場合の複数の組み合わせを作成する。しかしながら、組み合わせ手段９３は、複数の実行対象のプログラムのうちの実行時間が相反する少なくとも二つの実行対象のプログラムが複数の制御装置の一例である第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の少なくともひとつに割り当てられるひとつの組み合わせだけを作成してもよい。その場合、制御手段９７は、組み合わせ手段９３によって作成された組み合わせにしたがって、複数の実行対象のプログラムの各々を第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７のいずれかに割り当てて、複数の実行対象のプログラムを第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７に実行させる。この場合でも、全プログラム終了時間がより短くなる。実行時間が相反する二つの実行対象のプログラムについては、上述したのでここでの説明は省略する。
【００７９】
上述した実施の形態１では、複数の制御装置の一例は、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７である。しかしながら、複数の制御装置は、第１のＰＬＣ１、第２のＰＬＣ６及び第３のＰＬＣ７の３個のＰＬＣに限定されない。複数の制御装置は、第１のＰＬＣ１及び第２のＰＬＣ６の２個のＰＬＣであってもよいし、４個以上のＰＬＣであってもよい。複数の制御装置の個数は、例えば複数個のＰＬＣがある製品を生産する状況において使用される場合の生産コストによって決められる。
【００８０】
情報端末装置４を構成する特定手段９１、取得手段９２、組み合わせ手段９３、予測手段９４、算出手段９５、選択手段９６、制御手段９７、負荷検出手段９８、判断手段９９及び時間検出手段７９の機能の一部又は全部は、処理回路７７によって実現されてもよい。図１２は、図１０の情報端末装置４を構成する少なくとも一部の手段が処理回路７７であることを示す図である。処理回路７７は、専用のハードウェアである。すなわち、処理回路７７は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ＡＳＩＣ(Application  Specific  Integrated  Circuit)、ＦＰＧＡ(Field-Programmable  Gate  Array)、又はこれらを組み合わせたものである。情報端末装置４を構成する特定手段９１、取得手段９２、組み合わせ手段９３、予測手段９４、算出手段９５、選択手段９６、制御手段９７、負荷検出手段９８、判断手段９９及び時間検出手段７９の一部は、残部とは別個の専用のハードウェアであってもよい。
【００８１】
情報端末装置４を構成する特定手段９１、取得手段９２、組み合わせ手段９３、予測手段９４、算出手段９５、選択手段９６、制御手段９７、負荷検出手段９８、判断手段９９及び時間検出手段７９の一部又は全部は、メモリ７６に格納されるプログラムを実行するプロセッサ７５であってもよい。図１３は、図１０の情報端末装置４を構成する少なくとも一部の手段がプロセッサ７５であることを示す図である。プロセッサ７５は、ＣＰＵ（Central  Processing  Unit）、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はＤＳＰ(Digital  Signal  Processor)である。
【００８２】
情報端末装置４を構成する少なくとも一部の手段がプロセッサ７５である場合、情報端末装置４を構成する少なくとも一部の手段の機能は、プロセッサ７５と、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ７６に格納される。プロセッサ７５は、メモリ７６に記憶されたプログラムを読み出して実行することにより、情報端末装置４を構成する一部の手段の機能を実現する。
【００８３】
すなわち、情報端末装置４を構成する一部の手段がプロセッサ７５である場合、情報端末装置４は、情報端末装置４を構成する一部の手段によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ７６を有する。メモリ７６に格納されるプログラムは、情報端末装置４を構成する一部の手段の手順又は方法をコンピュータに実行させるものであるともいえる。メモリ７６は、例えば、ＲＡＭ(Random  Access  Memory)、ＲＯＭ(Read  Only  Memory)、フラッシュメモリ、ＥＰＲＯＭ(Erasable  Programmable  Read  Only  Memory)、ＥＥＰＲＯＭ(Electrically  Erasable  Programmable  Read-Only  Memory)等の、不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はＤＶＤ等である。
【００８４】
情報端末装置４を構成する複数の手段の機能について、一部を専用のハードウェアで実現し、残部をソフトウェア又はファームウェアで実現してもよい。このように、情報端末装置４を構成する複数の手段は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、情報端末装置４を構成する複数の手段の機能を実現することができる。
【００８５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
【符号の説明】
【００８６】
１  第１のＰＬＣ、４  情報端末装置、６  第２のＰＬＣ、７  第３のＰＬＣ、４９  負荷分散処理手段、７８  記憶手段、７９  時間検出手段、９１  特定手段、９２  取得手段、９３  組み合わせ手段、９４  予測手段、９５  算出手段、９６  選択手段、９７  制御手段、９８  負荷検出手段、９９  判断手段。
【図１】
2017141332.tif 000003
【図２】
2017141332.tif 000004
【図３】
2017141332.tif 000005
【図４】
2017141332.tif 000006
【図５】
2017141332.tif 000007
【図６】
2017141332.tif 000008
【図７】
2017141332.tif 000009
【図８】
2017141332.tif 000010
【図９】
2017141332.tif 000011
【図１０】
2017141332.tif 000012
【図１１】
2017141332.tif 000013
【図１２】
2017141332.tif 000014
【図１３】
2017141332.tif 000015
【手続補正書】
【提出日】平成28年12月16日(2016.12.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、
前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、
前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムであって前記制御装置の外部のデータベースを用いるプログラムを前記複数の制御装置に実行させる制御手段と
を備えることを特徴とする負荷分散装置。
【請求項２】
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段を更に備え、
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択する
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が異なる二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する
ことを特徴とする請求項１又は２に記載の負荷分散装置。
【請求項４】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が相反する二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成し、
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと、前記第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項１又は２に記載の負荷分散装置。
【請求項５】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項４に記載の負荷分散装置。
【請求項６】
前記複数の制御装置のうちの特定の制御装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する判断手段とを更に備え、
前記負荷検出手段によって検出された負荷が前記閾値以上であると前記判断手段によって判断された場合、前記特定手段、前記取得手段、前記組み合わせ手段、前記予測手段、前記選択手段及び前記制御手段は、各々が有する機能を実行する
ことを特徴とする請求項１から５のいずれか１項に記載の負荷分散装置。
【請求項７】
前記複数の実行対象のプログラムの各々の実際の実行時間を検出する時間検出手段と、
前記時間検出手段によって得られた情報を記憶する記憶手段とを更に備え、
前記取得手段は、前記記憶手段から前記複数の種類のプログラムの各々の実行時間の情報を取得する
ことを特徴とする請求項１から６のいずれか１項に記載の負荷分散装置。
【請求項８】
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が最も短い組み合わせを選択する
ことを特徴とする請求項１から７のいずれか１項に記載の負荷分散装置。
【請求項９】
複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てる場合のひとつの組み合わせであって、前記複数の実行対象のプログラムのうちの前記実行時間が相反する二つの前記実行対象のプログラムが前記複数の制御装置の少なくともひとつに割り当てられる前記ひとつの組み合わせを作成する組み合わせ手段と、
前記組み合わせ手段によって作成された前記ひとつの組み合わせにしたがって、前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムであって前記制御装置の外部のデータベースを用いるプログラムを前記複数の制御装置に実行させる制御手段とを備え、
前記組み合わせ手段は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用いて前記ひとつの組み合わせを作成する
ことを特徴とする負荷分散装置。
【請求項１０】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと前記第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項９に記載の負荷分散装置。
【請求項１１】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項１０に記載の負荷分散装置。
【請求項１２】
プログラムを実行する複数の制御装置を管理する負荷分散装置において、
前記制御装置で実行する複数のプログラムの実行時間をプログラム毎に算出する実行時間算出部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムであって前記制御装置の外部のデータベースを用いるプログラムを、前記各制御装置に追加で実行指示する
ことを特徴とする負荷分散装置。
【請求項１３】
前記実行時間算定部は、複数のプログラムの実行時間をプログラム毎に記録することにより行い、
前記実行時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする請求項１２に記載の負荷分散装置。
【請求項１４】
前記プログラムの実行は、制御装置に記録されたプログラムを前記プログラム実行指示部からの指示に基づいて実行することを特徴とする請求項１２又は１３に記載の負荷分散装置。
【請求項１５】
前記プログラムの実行は、前記プログラム実行指示部から前記制御装置に配信されたプログラムを実行することで行われることを特徴とする請求項１２又は１３に記載の負荷分散装置。
【請求項１６】
前記制御装置におけるプログラムの実行負荷が増大したことを検出した後、前記プログラム実行指示部が機能することを特徴とする請求項１２から１５のいずれか１項に記載の負荷分散装置。
【請求項１７】
プログラムを実行する複数の制御装置を管理する負荷分散装置において、
制御装置で実行する複数のプログラムの実行予想時間をプログラム毎に記録する実行予想時間記録部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
前記プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムであって前記制御装置の外部のデータベースを用いるプログラムを、前記各制御装置に追加で実行指示し、
前記実行予想時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする負荷分散装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムであって前記制御装置の外部のデータベースを用いるプログラムを前記複数の制御装置に実行させる制御手段とを備えることを特徴とする。
【手続補正書】
【提出日】平成29年4月12日(2017.4.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、
前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、
前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と、
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段と、
を備え、
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択することを特徴とする負荷分散装置。
【請求項２】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が異なる二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項３】
前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が相反する二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成し、
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第１の順位までの複数のプログラムのうちのひとつと、前記第１の順位より下位の順位であってあらかじめ設定された第２の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項１に記載の負荷分散装置。
【請求項４】
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項３に記載の負荷分散装置。
【請求項５】
前記複数の制御装置のうちの特定の制御装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する判断手段とを更に備え、
前記負荷検出手段によって検出された負荷が前記閾値以上であると前記判断手段によって判断された場合、前記特定手段、前記取得手段、前記組み合わせ手段、前記予測手段、前記選択手段及び前記制御手段は、各々が有する機能を実行する
ことを特徴とする請求項１から４のいずれか１項に記載の負荷分散装置。
【請求項６】
前記複数の実行対象のプログラムの各々の実際の実行時間を検出する時間検出手段と、
前記時間検出手段によって得られた情報を記憶する記憶手段とを更に備え、
前記取得手段は、前記記憶手段から前記複数の種類のプログラムの各々の実行時間の情報を取得する
ことを特徴とする請求項１から５のいずれか１項に記載の負荷分散装置。
【請求項７】
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が最も短い組み合わせを選択する
ことを特徴とする請求項１から６のいずれか１項に記載の負荷分散装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段と、を備え、前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択することを特徴とする。
【国際調査報告】
2017141332.tif 000016
2017141332.tif 000017