JPWO2017141332A1 - 負荷分散装置 - Google Patents
負荷分散装置 Download PDFInfo
- Publication number
- JPWO2017141332A1 JPWO2017141332A1 JP2016574030A JP2016574030A JPWO2017141332A1 JP WO2017141332 A1 JPWO2017141332 A1 JP WO2017141332A1 JP 2016574030 A JP2016574030 A JP 2016574030A JP 2016574030 A JP2016574030 A JP 2016574030A JP WO2017141332 A1 JPWO2017141332 A1 JP WO2017141332A1
- Authority
- JP
- Japan
- Prior art keywords
- program
- execution
- programs
- time
- combination
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B21/00—Systems involving sampling of the variable controlled
- G05B21/02—Systems involving sampling of the variable controlled electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/12—Plc mp multi processor system
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
Abstract
負荷分散装置である情報端末装置4は、複数の実行対象のプログラムの各々が複数の制御装置である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段93と、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段94と、作成された複数の組み合わせのなかから全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段96とを有する。
Description
本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置に関する。
ひとつの制御装置が複数の実行対象のプログラムを実行する場合、ひとつの制御装置の処理の負担は大きい。そのため、複数の実行対象のプログラムを複数の制御装置に実行させる技術が提案されている(例えば、特許文献1、2及び3参照)。その技術によれば、複数の実行対象のプログラムを実行する際の処理の負担は複数の制御装置に分散され、各制御装置における処理の負担は小さくなる。
複数の実行対象のプログラムが複数の制御装置に分散して割り当てられると、複数の実行対象のプログラムが配信されてから、複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間は短くなる。つまり、複数の制御装置が複数の実行対象のプログラムを分担して実行する場合の全プログラム終了時間は、ひとつの制御装置が複数の実行対象のプログラムを実行する場合の全プログラム終了時間よりも短くなる。
しかしながら、従来の技術を用いて複数の制御装置が複数の実行対象のプログラムを分担して実行する場合であっても、特定の制御装置の処理の負荷が大きい場合があり、その場合、全プログラム終了時間はまだ長いという課題がある。
本発明は、上記に鑑みてなされたものであって、全プログラム終了時間をより短くする負荷分散装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備えることを特徴とする。
本発明にかかる負荷分散装置は、全プログラム終了時間をより短くすることができるという効果を奏する。
以下に、本発明の実施の形態にかかる負荷分散装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、実施の形態1にかかる負荷分散装置を含む負荷分散システム20の構成図である。実施の形態1にかかる負荷分散装置は、複数の実行対象のプログラムの実行を複数の制御装置に分担させる装置である。実施の形態1では、負荷分散装置は情報端末装置4であり、制御装置はプログラマブルロジックコントローラである。以下では、プログラマブルロジックコントローラを「PLC」と記載する。PLCは、Programmable Logic Controllerの略語である。しかしながら、負荷分散装置及び制御装置は通常のパーソナルコンピュータであってもよい。以下では、パーソナルコンピュータを「PC」と記載する。PCは、Personal Computerの略語である。
図1は、実施の形態1にかかる負荷分散装置を含む負荷分散システム20の構成図である。実施の形態1にかかる負荷分散装置は、複数の実行対象のプログラムの実行を複数の制御装置に分担させる装置である。実施の形態1では、負荷分散装置は情報端末装置4であり、制御装置はプログラマブルロジックコントローラである。以下では、プログラマブルロジックコントローラを「PLC」と記載する。PLCは、Programmable Logic Controllerの略語である。しかしながら、負荷分散装置及び制御装置は通常のパーソナルコンピュータであってもよい。以下では、パーソナルコンピュータを「PC」と記載する。PCは、Personal Computerの略語である。
図1に示す通り、負荷分散システム20は、第1のPLC1と、制御ネットワーク2と、情報ネットワーク3と、情報端末装置4と、保守端末装置5と、第2のPLC6と、第3のPLC7とを有する。第1のPLC1には、外部機器8が接続される。外部機器8の一例は、センサ、ポンプ又はバルブである。センサの一例は、流量計又は圧力計である。
第1のPLC1は、メモリ10を有する。保守端末装置5は、ユーザプログラムを記憶している設計ツール51を有する。第1のPLC1のメモリ10には、保守端末装置5の設計ツール51からのユーザプログラムが格納される。第1のPLC1は、メモリ10に格納されたユーザプログラムを用いて、外部機器8のセンサによって測定された値を取得し、外部機器8に制御信号を出力する。第1のPLC1は、メモリ10以外の構成要素も有する。第1のPLC1が有するメモリ10以外の構成要素の説明は、図2を用いて後に行う。
制御ネットワーク2は、第1のPLC1、第2のPLC6及び第3のPLC7を相互に接続する通信ネットワークである。制御ネットワーク2を介して、複数のPLCの各々は相互に接続される。第1のPLC1、第2のPLC6及び第3のPLC7は、制御ネットワーク2における共有メモリを用いることにより、リアルタイムに相互にデータを交換することができる。共有メモリの一例は、サイクリックメモリである。説明を簡単に行うために、図1には、共有メモリは示されていない。
情報ネットワーク3は、情報端末装置4、第1のPLC1、第2のPLC6及び第3のPLC7を相互に接続する通信ネットワークである。情報ネットワーク3は、ローカルエリアネットワークであってもよいし、インターネットであってもよい。
情報端末装置4は、PCによって構成されている。情報端末装置4は、汎用のPCではない専用の装置であってもよい。情報端末装置4は、通信プロトコルにしたがって、情報ネットワーク3を介して第1のPLC1、第2のPLC6及び第3のPLC7の各々と通信する。通信プロトコルの一例は、TCP/IP(Transmission Control Protocol/Internet Protocol)である。
情報端末装置4は、データベース41とメモリ42とを含む記憶装置40を有する。メモリ42には、MES及びERPが格納されている。MESは、Manufacturing Execution Systemの略語であって、生産の最大化を図るための情報である。ERPは、Enterprise Resource Planningの略語であって、利益の最大化を図るための情報である。情報端末装置4は、第1のPLC1が有するデータを監視し、第1のPLC1が有するデータをデータベース41に保存し、第1のPLC1を制御するための信号を第1のPLC1に送信する。情報端末装置4は、記憶装置40以外の構成要素も有する。情報端末装置4が有する記憶装置40以外の構成要素の説明は、図2及び図10を用いて後に行う。
図2は、図1の負荷分散システム20を構成する第1のPLC1及び情報端末装置4の詳細を示す図である。図2には、保守端末装置5及び第2のPLC6も示されている。図2には、第1のPLC1、情報端末装置4及び第2のPLC6の各々と通信することができる外部データベース90も示されている。
第1のPLC1は、メモリ10と、プログラム共通実行手段11と、実行実績記録手段12と、記憶手段13とを有する。記憶手段13は、実行対象のプログラムに関連するプログラムコード14と実行スケジュール15とを記憶する。プログラムコード14は、情報端末装置4が有する記憶装置40のメモリ42に格納されているMES及びERPと連携するプログラムに関するコードである。プログラム共通実行手段11は、プログラムコード14に関連する実行対象のプログラムを実行する手段である。実行実績記録手段12は、プログラムコード14に関連するプログラムの実行時間をプログラムコード14の識別情報と共に時系列に記録する手段である。
情報端末装置4は、記憶装置40と、プログラム情報記憶手段43と、信号定義情報記憶手段44と、実行時間予測手段45と、PLC選択手段46と、プログラム配信手段47と、プログラム共通実行手段48と、負荷分散処理手段49とを有する。プログラム情報記憶手段43は、第1のPLC1によって実行されるプログラムに関連するプログラムコード14の値を格納したプログラム情報を記憶する。信号定義情報記憶手段44は、第1のPLC1によって扱われる信号の名称と信号の値を取得する接続先とを含む信号定義情報を記憶する。
実行時間予測手段45は、プログラム情報記憶手段43によって記憶されているプログラム情報をもとに、次にプログラムが実行されるときにそのプログラムの実行に必要な時間を予測する。PLC選択手段46は、実行時間予測手段45によって予測された実行時間をもとにプログラムを実行するPLCを選択する。プログラム配信手段47は、PLC選択手段46によって選択されたPLCにプログラムを配信する。プログラム共通実行手段48は、PLC選択手段46によって選択されたPLCとは異なるPLCでもプログラムが実行されることを可能にする処理を実行する。
実行時間予測手段45、PLC選択手段46及びプログラム配信手段47は、情報端末装置4に設けられなくてもよい。実行時間予測手段45、PLC選択手段46及びプログラム配信手段47の各機能は、クラウド上で実現されてもよいし、情報端末装置4と接続されるひとつ又は複数のPLCによって実現されてもよい。負荷分散処理手段49の説明は、図10を用いて後に行う。
次に、実施の形態1の負荷分散システム20の動作を説明する。負荷分散システム20の動作は、PLCで実行されるプログラムを登録する手順と、複数のPLCのなかから最適なPLCを選択してプログラムを実行させる手順とを含む。
(手順1:プログラムの登録)
図3のフローチャートにしたがって、プログラムの登録の手順を説明する。図3は、実施の形態1におけるプログラムの登録の手順を示すフローチャートである。ステップS1において、情報端末装置4の信号定義情報記憶手段44は、実行対象のプログラムが扱う信号を定義する。第1のPLC1、第2のPLC6及び第3のPLC7の各々では、情報端末装置4からの信号はメモリに格納される。
図3のフローチャートにしたがって、プログラムの登録の手順を説明する。図3は、実施の形態1におけるプログラムの登録の手順を示すフローチャートである。ステップS1において、情報端末装置4の信号定義情報記憶手段44は、実行対象のプログラムが扱う信号を定義する。第1のPLC1、第2のPLC6及び第3のPLC7の各々では、情報端末装置4からの信号はメモリに格納される。
以下の式(1)は、実施の形態1におけるプログラムコードの例を示す式である。
DB1.INSERT(TB1,ID=1234,COUNT=TAG300);・・・(1)
式(1)は、ある設備が生産した商品の識別番号を示すIDが「1234」であり、その商品の個数が「TAG300」であって、その個数をデータベースDB1のテーブルTB1に生産実績として格納することを意味している。テーブルTB1には、2つのフィールドが設けられており、一つ目のフィールドは商品の識別番号を示すIDのフィールドであり、二つ目のフィールドは商品の生産個数を示すCOUNTのフィールドである。式(1)のプログラムコードでは、データベースに関する信号はDB1及びTB1であり、センサに関する信号はTAG300である。
DB1.INSERT(TB1,ID=1234,COUNT=TAG300);・・・(1)
式(1)は、ある設備が生産した商品の識別番号を示すIDが「1234」であり、その商品の個数が「TAG300」であって、その個数をデータベースDB1のテーブルTB1に生産実績として格納することを意味している。テーブルTB1には、2つのフィールドが設けられており、一つ目のフィールドは商品の識別番号を示すIDのフィールドであり、二つ目のフィールドは商品の生産個数を示すCOUNTのフィールドである。式(1)のプログラムコードでは、データベースに関する信号はDB1及びTB1であり、センサに関する信号はTAG300である。
ステップS2において、情報端末装置4の信号定義情報記憶手段44は、信号を取得する先を登録する。信号を取得する先は接続先であり、接続先の一例はセンサ又はデータベースである。つまり、接続先は、PLC又は外部データベース90のテーブルのフィールドである。例えば、設備Xに設けられた生産台数を計測するためのリミットセンサが第1のPLC1に接続されており、リミットセンサの計測値である個数の値がアドレスD3000に格納されている場合、接続先は、図4に示す通り第1のPLC1である。
図4は、実施の形態1における信号登録情報の格納例を示す図である。図4では、信号の意味を示す信号名称と、信号を識別するためのIDと、信号に割りあてられているアドレスと、信号の値の取得先である接続先とが属性として定義されている。上記のアドレスは、データベースではフィールドに置き換えられる。図4は、上記のリミットセンサについては、信号名称は「設備X 生産台数」であり、信号をシステム内で識別するためのIDは「TAG300」であり、その値は第1のPLC1のアドレスD3000を参照することによって得られるということを示している。
IDが「TAG200」である信号は、設備Xが故障したことを示す信号であって、第2のPLC6のアドレスD2000を読み出すことによってIDが「TAG200」である信号の内容を取得することができる。図4は、IDが「TAG400」である信号については、その信号が工程1の運転時間を示す信号であって、その信号の内容は外部のデータベースDB1のテーブルTB1のRunTimeというフィールドに格納されていることを示している。
図3のステップS3において、情報端末装置4の信号定義情報記憶手段44は、保守端末装置5の設計ツール51を使ってプログラムコード14の内容をプログラム情報記憶手段43に記述する。この場合、信号登録情報に登録された信号IDが使用される。
ステップS4において、保守端末装置5の設計ツール51は、プログラムコード14をプログラム情報記憶手段43に登録する。この場合、設計ツール51は、どのプログラムがどの信号をどのように操作するのかを示す関連情報をプログラム情報記憶手段43に登録する。操作の一例は、抽出又は挿入である。実施の形態1では、抽出はSELECTと表現され、挿入はINSERTと表現される。プログラム情報記憶手段43に登録されるプログラム情報は、プログラムの属性を示している。プログラム名又はプログラムの識別情報を指定することで、プログラムがどのPLCのメモリアドレスで使用されるのかということ、又は、プログラムがどのデータベースのテーブルのフィールドをどのように操作するのかということがわかる。
図5は、実施の形態1におけるプログラム情報の格納例を示す図である。図5は、例えば、プログラムJOBαが信号TAG007の値をデータベースから読み出して信号TAG300に書き込むことを示している。図4に示す通り、信号TAG007は生産指示であり、信号TAG007の値は、データベースDB1のテーブルTB1のフィールドのOrderの部分を読み出すことによって得られる。書き込み先の信号は信号TAG300であって、図4に示す通り信号TAG300は設備Xの生産台数を示しているので、信号TAG007の値は第1のPLC1のアドレスD3000に書き込まれる。
図3のステップS5において、すべてのプログラムについて登録が完了した場合(ステップS5でYes)、プログラムの登録は終了する。すべてのプログラムについて登録が完了していない場合(ステップS5でNo)、処理はステップS3に移行する。
(手順2:PLCを選択してプログラムを実行)
図6は、複数のPLCのなかからいずれかひとつのPLCを選択してプログラムの実行を指示する手順を示すフローチャートである。ステップS101において、情報端末装置4の実行時間予測手段45は、プログラム情報記憶手段43から登録されているプログラムを読み出す。
図6は、複数のPLCのなかからいずれかひとつのPLCを選択してプログラムの実行を指示する手順を示すフローチャートである。ステップS101において、情報端末装置4の実行時間予測手段45は、プログラム情報記憶手段43から登録されているプログラムを読み出す。
ステップS102において、情報端末装置4の実行時間予測手段45は現在実行されているプログラムの実行終了までにかかる予測時間を取得し、予測時間が0である場合、PLC選択手段46は情報端末装置4に現在接続されているPLCの実行スケジュール15から実行終了予定時刻の一番早いPLCを選択する。予測時間が0でない場合、PLC選択手段46は、PLCの実行終了予定時刻に予測時間を加えて一番小さくなるPLCを選択する。例えば、予測時間が40秒であって、第1のPLC1において現在実行されているプログラムが20秒後に終了する予定であり、第2のPLC6において現在実行されているプログラムが10秒後に終了する予定であり、第3のPLC7において現在実行されているプログラムが80秒後に終了する予定である場合、PLC選択手段46は、第2のPLC6を選択し、実行スケジュール15に40を加えて実行終了予定時刻を更新する。
ステップS103において、情報端末装置4のプログラム配信手段47は、PLC選択手段46が選択したPLCにプログラムを配信する。配信は、汎用プロトコルにしたがって行われる。汎用プロトコルの一例は、HTTP/FTP(Hypertext Transfer Protocol/ File Transfer Protocol)である。
配信されたプログラムは、情報端末装置4のプログラム共通実行手段48によって、どのPLCにおいても実行されるように制御される。配信されたプログラムがどのPLCにおいても実行されることを、図7を用いて詳しく説明する。図7は、実施の形態1におけるプログラムの同期を説明するための図である。第1のセンサ17と第2のセンサ18とを取り扱うためのプログラムは、第1のPLC1、第2のPLC6及び第3のPLC7において実行される。第1のセンサ17からの信号は第1のPLC1に設けられたI/O端子ユニット16の2番目の端子に入力され、第2のセンサ18からの信号はI/O端子ユニット16の5番目の端子に入力される。第1のPLC1に入力された信号の値は、第1のPLC1のCPUにより第1のPLC1のローカルメモリ21の1番目のアドレスと5番目のアドレスとに書き込まれる。
第2のPLC6のローカルメモリのアドレスの構成は第1のPLC1のローカルメモリのアドレスの構成と同じであるが、第2のPLC6はI/O端子ユニット16を有していないので、第2のPLC6のローカルメモリには、第1のセンサ17及び第2のセンサ18によって計測された値は書き込まれない。しかしながら、第1のPLC1、第2のPLC6及び第3のPLC7はサイクリックメモリを制御ネットワーク2において有する。サイクリックメモリは、第1のPLC1、第2のPLC6及び第3のPLC7の共通メモリである。
サイクリックメモリは、第1のPLC1、第2のPLC6及び第3のPLC7の各々のエリアを有する。つまり、第1のPLC1に対応する第1のサイクリックメモリ19と、第2のPLC6に対応する第2のサイクリックメモリ61と、第3のPLC7に対応する第3のサイクリックメモリ71とが存在する。データが第1のサイクリックメモリ19の第1のPLC1の領域に書き込まれると、そのデータは第2のサイクリックメモリ61の第1のPLC1の領域にコピーされる。同様に、そのデータは第3のサイクリックメモリ71の第1のPLC1の領域にコピーされる。
第1のセンサ17の計測値が第1のPLC1のメモリ10に書き込まれている場合、その値を第1のサイクリックメモリ19のいずれかのアドレスに書き込む処理と、その値を第2のPLC6の第2のサイクリックメモリ61のいずれかのアドレスから第2のPLC6のメモリに書き込む処理とが実行される。第1のPLC1、第2のPLC6及び第3のPLC7がサイクリックメモリを共有しているので、プログラムでは値は第1のPLC1のメモリ10に書き込まれることになっていても、どのPLCにおいてもプログラムは実行可能になる。情報端末装置4のプログラム共通実行手段48は、上述の処理を実行させるので、プログラムが第1のPLC1に配信されても、配信されたプログラムは第2のPLC6及び第3のPLC7において実行可能となる。
図6のステップS104において、第1のPLC1はプログラムを実行する。第1のPLC1は、プログラムを実行する前にプログラムを識別するプログラムIDとプログラムの実行開始時刻とを実行実績記録手段12に記憶する。第1のPLC1は、プログラムの実行終了後にプログラムIDのエントリを検出し、図8に示すように、実行スケジュール15に実行終了時刻を記憶すると共に経過時間を記録する。図8は、実施の形態1におけるプログラム実行記録の格納例を示す図である。図8は、プログラムJOBαの実行が2015年6月30日11時30分30.5秒に開始し、2015年6月30日11時30分35.0秒に終了したことを示している。経過時間は、4.5秒である。
図6のステップS105において、実行時間予測手段45は、プログラムの実行時間の実績とプログラム情報に含まれるプログラムの属性との因果関係を分析して実行時間を予測する。図9は、実施の形態1におけるプログラム実行時間予測処理に関する図である。図9に示すように、プログラム実行時間は、接続しているデータベースの個数、レコードの個数及びフィールドの個数に比例する。
実行時間予測手段45は、外的因子と実行時関との関係を統計的に分析する。例えば、実行時間予測手段45は、特定のPLCのメモリからのデータの読み出しにかかる時間を分析する。実行時間予測手段45は、分析の結果から導かれる因果関係をもとに予測時間の定式化を行う。定式化は、言い換えるとモデル化である。モデル化には、広く知られている方法が用いられる。広く知られている方法の一例は、最小二乗法である。
例えば、プログラムの実行時間Tiが下記の式(2)のようにモデル化されたと仮定する。
Ti=1.5×(通信するデータベース数)×1000+2.2×(テーブルの列数)・・・(2)
データベース数が2でテーブルの列数が1000である場合、式(2)を用いることにより、プログラム実行時間が5200msであると予測することができる。このとき、実行スケジュール15の実行終了時刻のフィールドには、現在時刻にTiを加えた値が記録される。経過時間のフィールドには0が記録され、それにより、予測時間と実績との区別を行うことができる。すべてのプログラムの実行が終了していれば処理は終了し(S106でYes)、すべてのプログラムの実行が終了していなければ(S106でNo)、処理はステップS101に移行する。
Ti=1.5×(通信するデータベース数)×1000+2.2×(テーブルの列数)・・・(2)
データベース数が2でテーブルの列数が1000である場合、式(2)を用いることにより、プログラム実行時間が5200msであると予測することができる。このとき、実行スケジュール15の実行終了時刻のフィールドには、現在時刻にTiを加えた値が記録される。経過時間のフィールドには0が記録され、それにより、予測時間と実績との区別を行うことができる。すべてのプログラムの実行が終了していれば処理は終了し(S106でYes)、すべてのプログラムの実行が終了していなければ(S106でNo)、処理はステップS101に移行する。
次に、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置の詳細について説明する。図10は、実施の形態1の負荷分散装置を説明するための図である。上述の通り、実施の形態1では、負荷分散装置は情報端末装置4である。図10では、説明を簡単に行うために、情報端末装置4が有する複数の構成要素のうちの負荷分散処理手段49のみが示されている。実施の形態1では、上述の通り、制御装置はPLCである。すなわち、実施の形態1では、複数の制御装置は、第1のPLC1、第2のPLC6及び第3のPLC7である。
実施の形態1では、複数の実行対象のプログラム及び実行時間について、以下の状況を想定する。すなわち、複数の実行対象のプログラムは、プログラムA1、プログラムA2、プログラムA3、プログラムB1、プログラムB2、プログラムB3、プログラムC1、プログラムC2及びプログラムC3の9個のプログラムである。プログラムA1、プログラムA2及びプログラムA3は、種類Aのプログラムである。プログラムB1、プログラムB2及びプログラムB3は、種類Bのプログラムである。プログラムC1、プログラムC2及びプログラムC3は、種類Cのプログラムである。例えば、種類Aのプログラムは切削に関するプログラムであり、種類Bのプログラムは加工に関するプログラムであり、種類Cのプログラムは組み立てに関するプログラムである。
実施の形態1では、種類Aのプログラムの実行時間は、実行時間aである。つまり、プログラムA1、プログラムA2及びプログラムA3のいずれの実行時間も実行時間aである。種類Bのプログラムの実行時間は、実行時間bである。つまり、プログラムB1、プログラムB2及びプログラムB3のいずれの実行時間も実行時間bである。実行時間bは、実行時間aより短い。種類Cのプログラムの実行時間は、実行時間cである。つまり、プログラムC1、プログラムC2及びプログラムC3のいずれの実行時間も実行時間cである。実行時間cは、実行時間aより長い。実行時間aと実行時間bとの合計は実行時間cと同じである。
図10に示す通り、情報端末装置4の負荷分散処理手段49は、特定手段91と、取得手段92と、組み合わせ手段93と、予測手段94と、算出手段95と、選択手段96と、制御手段97と、負荷検出手段98と、判断手段99と、時間検出手段79と、記憶手段78とを有する。
特定手段91は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する。具体的には、特定手段91は、複数の実行対象のプログラムのうちのプログラムA1、プログラムA2及びプログラムA3は種類Aのプログラムであると特定する。特定手段91は、複数の実行対象のプログラムのうちのプログラムB1、プログラムB2及びプログラムB3は種類Bのプログラムであると特定する。特定手段91は、複数の実行対象のプログラムのうちのプログラムC1、プログラムC2及びプログラムC3は種類Cのプログラムであると特定する。
取得手段92は、複数の種類のプログラムの各々の実行時間の情報を取得する。具体的には、取得手段92は、種類Aのプログラムの実行時間は実行時間aであり、種類Bのプログラムの実行時間は実行時間aより短い実行時間bであって、種類Cのプログラムの実行時間は実行時間aより長い実行時間cであることを示す情報を取得する。上述の通り、実施の形態1では、実行時間aと実行時間bとの合計は実行時間cと同じであるので、取得手段92は、実行時間aと実行時間bとの合計は実行時間cと同じであることを示す情報も取得する。
組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。組み合わせ手段93は、第1のPLC1、第2のPLC6及び第3のPLC7のいずれかひとつに、又は第1のPLC1、第2のPLC6及び第3のPLC7のうちの任意の二つにもしくは全部に、実行時間が異なる少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
図11を用いて、組み合わせ手段93が作成する複数の組み合わせを説明する。図11は、図10の組み合わせ手段93が作成する組み合わせの例を示す図である。組み合わせ手段93は、図11(A)から図11(E)に示す5個の組み合わせを含む複数の組み合わせを作成する。具体的には、組み合わせ手段93は、図11(A)に示す通り、プログラムA1、プログラムB1及びプログラムC1が第1のPLC1に割り当てられ、プログラムA2、プログラムB2及びプログラムC2が第2のPLC6に割り当てられ、プログラムA3、プログラムB3及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。図11では、「1−PLC」は第1のPLC1を意味し、「2−PLC」は第2のPLC6を意味し、「3−PLC」は第3のPLC7を意味している。
加えて、組み合わせ手段93は、図11(B)に示す通り、プログラムA1、プログラムB2及びプログラムC2が第1のPLC1に割り当てられ、プログラムB1、プログラムA2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1、プログラムB3及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
さらに、組み合わせ手段93は、図11(C)に示す通り、プログラムA1、プログラムA2及びプログラムC3が第1のPLC1に割り当てられ、プログラムB1、プログラムC2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1、プログラムB2及びプログラムB3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
さらにまた、組み合わせ手段93は、図11(D)に示す通り、プログラムA1、プログラムB2、プログラムA2及びプログラムB3が第1のPLC1に割り当てられ、プログラムB1、プログラムC2及びプログラムA3が第2のPLC6に割り当てられ、プログラムC1及びプログラムC3が第3のPLC7に割り当てられるというひとつの組み合わせを作成する。
さらにまた、組み合わせ手段93は、図11(E)に示す通り、プログラムA1、プログラムB1、プログラムC1、プログラムC2及びプログラムC3が第1のPLC1に割り当てられ、プログラムA2、プログラムA3、プログラムB2及びプログラムB3が第2のPLC6に割り当てられるというひとつの組み合わせを作成する。
予測手段94は、組み合わせ手段93によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。具体的には、予測手段94は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段91によって得られた情報と取得手段92によって取得された情報とを用い、組み合わせ手段93によって作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。特定手段91によって得られた情報は、複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する情報である。取得手段92によって取得された情報は、複数の種類のプログラムの各々の実行時間の情報である。
図11を用いて予測手段94の機能を更に説明する。図11は、上述の通り図10の組み合わせ手段93が作成する組み合わせの例を示す図であるが、組み合わせ手段93によって作成された複数の組み合わせの各々の全プログラム終了時間の予測結果を示す図でもある。全プログラム終了時間は、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間を意味する。
図11(A)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の時間であって、実行時間a、実行時間b及び実行時間cの合計の時間である。第2のPLC6がプログラムA2、プログラムB2及びプログラムC2を実行する場合の実行時間も、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の実行時間と同じである。第3のPLC7がプログラムA3、プログラムB3及びプログラムC3を実行する場合の実行時間も、第1のPLC1がプログラムA1、プログラムB1及びプログラムC1を実行する場合の実行時間と同じである。
図11(B)の組み合わせでは、全プログラム終了時間は、第3のPLC7がプログラムC1、プログラムB3及びプログラムC3を実行する場合の時間であって、実行時間bと実行時間cの2倍との合計の時間である。図11(C)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムA2及びプログラムC3を実行する場合の時間であって、実行時間aの2倍と実行時間cとの合計の時間である。
図11(D)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB2、プログラムA2及びプログラムB3を実行する場合の時間であって、実行時間aの2倍と実行時間bの2倍との合計の時間である。上述の通り、実行時間aと実行時間bとの合計は実行時間cと同じなので、図11(D)の組み合わせでは、全プログラム終了時間は、第2のPLC6がプログラムB1、プログラムC2及びプログラムA3を実行する場合の時間であって、実行時間b、実行時間c及び実行時間aの合計の時間でもある。図11(D)の組み合わせでは、全プログラム終了時間は、第3のPLC7がプログラムC1及びプログラムC3を実行する場合の時間であって、実行時間cの2倍の時間でもある。更に言うと、図11(D)の組み合わせでの全プログラム終了時間は、図11(A)の組み合わせでの全プログラム終了時間と同一である。
図11(E)の組み合わせでは、全プログラム終了時間は、第1のPLC1がプログラムA1、プログラムB1、プログラムC1、プログラムC2及びプログラムC3を実行する場合の時間であって、実行時間aと、実行時間bと、実行時間cの3倍との合計の時間である。
算出手段95は、組み合わせ手段93によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である基準時間を算出する。具体的には、算出手段95は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、特定手段91によって得られた情報と取得手段92によって取得された情報とを用い、複数の実行対象のプログラムのうちの同一の種類のプログラムを複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のうちの同一のPLCに割り当てると共に複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のうちの互いに異なるPLCの各々に割り当てた場合に複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。
図11を用いて算出手段95の機能を更に説明する。図11は、上述の通り図10の組み合わせ手段93が作成する組み合わせの例を示す図であるが、算出手段95によって算出される基準時間を示す図でもある。図11(F)に示す通り、第1のPLC1がプログラムA1、プログラムA2及びプログラムA3を実行し、第2のPLC6がプログラムB1、プログラムB2及びプログラムB3を実行し、第3のPLC7がプログラムC1、プログラムC2及びプログラムC3を実行する場合を想定する。算出手段95は、図11(F)に示される組み合わせにおいて、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である基準時間を算出する。算出手段95によって算出する基準時間は、図11(F)から理解できる通り、実行時間cの3倍の時間である。
図11(G)は、第1のPLC1に、プログラムA1、プログラムB1、プログラムC1、プログラムA2、プログラムB2、プログラムC2、プログラムA3、プログラムB3及びプログラムC3の9個のプログラムが割り当てられる組み合わせを示している。
選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。上述の通り、基準時間は、組み合わせ手段93によって作成された複数の組み合わせのなかからひとつの組み合わせを選択する際の判断基準である。例えば、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が最も短い組み合わせを選択する。図11の例では、図11(A)又は図11(D)の組み合わせでの全プログラム終了時間が最も短いので、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、図11(A)又は図11(D)の組み合わせを選択する。
選択手段96が、いずれかひとつのPLCに同じ種類の複数のプログラムが割り当てられている組み合わせを選択しないという規則を有している場合、図11(A)の組み合わせでの全プログラム終了時間と図11(D)の組み合わせでの全プログラム終了時間とは等しいが、選択手段96は、図11(A)の組み合わせを選択する。なぜなら、図11(D)の組み合わせでは、第3のPLC7にプログラムC1及びプログラムC3という同じ種類の複数のプログラムが割り当てられているからである。
上述の通り、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間である組み合わせのひとつを選択する。図11(B)の組み合わせの全プログラム終了時間も図11(C)の組み合わせの全プログラム終了時間も、基準時間より短い。そのため、選択手段96は、図11(B)の組み合わせ又は図11(C)の組み合わせを選択してもよい。いずれにしても、選択手段96は、複数の組み合わせのなかから、全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する。したがって、負荷分散装置である情報端末装置4を用いれば、複数の実行対象のプログラムを複数の制御装置に実行させる場合、全プログラム終了時間をより短くすることができるという効果が得られる。
制御手段97は、選択手段96によって選択された組み合わせにしたがって、複数の実行対象のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てて、複数の実行対象のプログラムを第1のPLC1、第2のPLC6及び第3のPLC7に実行させる。例えば、選択手段96によって選択された組み合わせが図11(A)の組み合わせである場合、制御手段97は、プログラムA1、プログラムB1及びプログラムC1を第1のPLC1に割り当てて実行させ、プログラムA2、プログラムB2及びプログラムC2を第2のPLC6に割り当てて実行させ、プログラムA3、プログラムB3及びプログラムC3を第3のPLC7に割り当てて実行させる。
負荷検出手段98は、第1のPLC1の負荷を検出する。第1のPLC1は、複数の制御装置のうちの特定の制御装置の一例である。判断手段99は、負荷検出手段98によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する。負荷検出手段98によって検出された負荷が上記の閾値以上であると判断手段99によって判断された場合、特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96及び制御手段97は、各々が有する機能を実行する。なお、特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96及び制御手段97は、負荷検出手段98によって検出された負荷が上記の閾値以上であると判断手段99によって判断された場合以外の場合においても、各々が有する機能を実行してもよい。
時間検出手段79は、複数の実行対象のプログラムの各々の実際の実行時間を検出する。記憶手段78は、時間検出手段79によって得られた情報を記憶する。取得手段92は、記憶手段78から複数の種類のプログラムの各々の実行時間の情報を取得してもよい。
具体的には、記憶手段78は過去に実行された複数の実行対象のプログラムの各々の実際の実行時間を記憶している。取得手段92は、同一の種類のプログラムについての実行時間は過去の実行時間と同一であると推定し、記憶手段78に記憶されている情報から、複数の種類のプログラムの各々の実行時間の情報を取得する。更に詳細には、記憶手段78が種類Aのプログラムの過去の実行時間を記憶している場合を想定する。取得手段92は、未来に実行される種類Aのプログラムの実行時間は記憶手段78に記憶されている種類Aのプログラムの過去の実行時間と同一であると判断し、種類AのプログラムであるプログラムA1、プログラムA2及びプログラムA3の各々の実行時間の情報として記憶手段78に記憶されている種類Aのプログラムの過去の実行時間の情報を取得してもよい。
上述の通り、実施の形態1の情報端末装置4は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。情報端末装置4は、作成された複数の組み合わせの各々について、複数の実行対象のプログラムが配信されてから複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する。そして、情報端末装置4は、作成された複数の組み合わせのなかから、予測された全プログラム終了時間が算出手段95によって算出された基準時間より短い時間であるひとつの組み合わせを選択する。これにより、情報端末装置4は、全プログラム終了時間をより短くすることができる。情報端末装置4の選択手段96が作成された複数の組み合わせのなかから全プログラム終了時間が最も短い組み合わせを選択する場合、情報端末装置4は、全プログラム終了時間を最も短くすることができる。
なお、上述の実施の形態1では、組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。言い換えると、組み合わせ手段93は、複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する。
実行時間が相反する二つの実行対象のプログラムは、複数の実行対象のプログラムの各々を実行時間が長い順に並べた場合、複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと、第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである。第1の順位は最上位より下位の順位であり、第2の順位は最下位より上位の順位である。
図11(F)の組み合わせでは、第1のPLC1に種類Aのプログラムのみが割り当てられており、第2のPLC6に種類Bのプログラムのみが割り当てられており、第3のPLC7に種類Cのプログラムのみが割り当てられている。つまり、図11(F)の組み合わせでは、第1のPLC1、第2のPLC6及び第3のPLC7のいずれにおいても、実行時間が相反する二つの実行対象のプログラムは割り当てられていない。そのため、複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに、実行時間が相反する少なくとも二つの実行対象のプログラムを割り当てることによってひとつの組み合わせを作成するという規則が設けられている場合、組み合わせ手段93は、図11(F)の組み合わせを作成しない。
実行時間が相反する二つの実行対象のプログラムの一例は、複数の実行対象のプログラムのうちの、実行時間が最も長いプログラムのひとつと実行時間が最も短いプログラムのひとつとである。実施の形態1では、実行時間が相反する二つの実行対象のプログラムの一例は、種類Bのプログラムのひとつと種類Cのプログラムのひとつとである。
上述した実施の形態1では、基準時間は算出手段95によって算出される。しかしながら、基準時間は、算出手段95によって算出されず、あらかじめ決められたものであってもよい。基準時間があらかじめ決められたものである場合、選択手段96は、組み合わせ手段93によって作成された複数の組み合わせのなかから、予測手段94によって予測された全プログラム終了時間があらかじめ決められた基準時間より短い時間であるひとつの組み合わせを選択する。基準時間を適切に設定すれば、情報端末装置4は全プログラム終了時間をより短くすることができる。
上述の実施の形態1では、組み合わせ手段93は、複数の実行対象のプログラムの各々が複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てられる場合の複数の組み合わせを作成する。しかしながら、組み合わせ手段93は、複数の実行対象のプログラムのうちの実行時間が相反する少なくとも二つの実行対象のプログラムが複数の制御装置の一例である第1のPLC1、第2のPLC6及び第3のPLC7の少なくともひとつに割り当てられるひとつの組み合わせだけを作成してもよい。その場合、制御手段97は、組み合わせ手段93によって作成された組み合わせにしたがって、複数の実行対象のプログラムの各々を第1のPLC1、第2のPLC6及び第3のPLC7のいずれかに割り当てて、複数の実行対象のプログラムを第1のPLC1、第2のPLC6及び第3のPLC7に実行させる。この場合でも、全プログラム終了時間がより短くなる。実行時間が相反する二つの実行対象のプログラムについては、上述したのでここでの説明は省略する。
上述した実施の形態1では、複数の制御装置の一例は、第1のPLC1、第2のPLC6及び第3のPLC7である。しかしながら、複数の制御装置は、第1のPLC1、第2のPLC6及び第3のPLC7の3個のPLCに限定されない。複数の制御装置は、第1のPLC1及び第2のPLC6の2個のPLCであってもよいし、4個以上のPLCであってもよい。複数の制御装置の個数は、例えば複数個のPLCがある製品を生産する状況において使用される場合の生産コストによって決められる。
情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の機能の一部又は全部は、処理回路77によって実現されてもよい。図12は、図10の情報端末装置4を構成する少なくとも一部の手段が処理回路77であることを示す図である。処理回路77は、専用のハードウェアである。すなわち、処理回路77は、例えば、単一回路、複合回路、プログラム化されたプロセッサ、並列プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又はこれらを組み合わせたものである。情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の一部は、残部とは別個の専用のハードウェアであってもよい。
情報端末装置4を構成する特定手段91、取得手段92、組み合わせ手段93、予測手段94、算出手段95、選択手段96、制御手段97、負荷検出手段98、判断手段99及び時間検出手段79の一部又は全部は、メモリ76に格納されるプログラムを実行するプロセッサ75であってもよい。図13は、図10の情報端末装置4を構成する少なくとも一部の手段がプロセッサ75であることを示す図である。プロセッサ75は、CPU(Central Processing Unit)、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、又はDSP(Digital Signal Processor)である。
情報端末装置4を構成する少なくとも一部の手段がプロセッサ75である場合、情報端末装置4を構成する少なくとも一部の手段の機能は、プロセッサ75と、ソフトウェア、ファームウェア、又はソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェア又はファームウェアはプログラムとして記述され、メモリ76に格納される。プロセッサ75は、メモリ76に記憶されたプログラムを読み出して実行することにより、情報端末装置4を構成する一部の手段の機能を実現する。
すなわち、情報端末装置4を構成する一部の手段がプロセッサ75である場合、情報端末装置4は、情報端末装置4を構成する一部の手段によって実行されるステップが結果的に実行されることになるプログラムを格納するためのメモリ76を有する。メモリ76に格納されるプログラムは、情報端末装置4を構成する一部の手段の手順又は方法をコンピュータに実行させるものであるともいえる。メモリ76は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の、不揮発性又は揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク又はDVD等である。
情報端末装置4を構成する複数の手段の機能について、一部を専用のハードウェアで実現し、残部をソフトウェア又はファームウェアで実現してもよい。このように、情報端末装置4を構成する複数の手段は、ハードウェア、ソフトウェア、ファームウェア、又はこれらの組み合わせによって、情報端末装置4を構成する複数の手段の機能を実現することができる。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略又は変更することも可能である。
1 第1のPLC、4 情報端末装置、6 第2のPLC、7 第3のPLC、49 負荷分散処理手段、78 記憶手段、79 時間検出手段、91 特定手段、92 取得手段、93 組み合わせ手段、94 予測手段、95 算出手段、96 選択手段、97 制御手段、98 負荷検出手段、99 判断手段。
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムであって前記制御装置の外部のデータベースを用いるプログラムを前記複数の制御装置に実行させる制御手段とを備えることを特徴とする。
上述した課題を解決し、目的を達成するために、本発明は、複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段と、を備え、前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択することを特徴とする。
Claims (17)
- 複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々が前記複数の制御装置のいずれかに割り当てられる場合の複数の組み合わせを作成する組み合わせ手段と、
同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記組み合わせ手段によって作成された前記複数の組み合わせの各々について、前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である全プログラム終了時間を予測する予測手段と、
前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が基準時間より短い時間であるひとつの組み合わせを選択する選択手段と、
前記選択手段によって選択された前記ひとつの組み合わせにしたがって前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段と
を備えることを特徴とする負荷分散装置。 - 同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用い、前記複数の実行対象のプログラムのうちの同一の種類のプログラムを前記複数の制御装置のうちの同一の制御装置に割り当てると共に前記複数の実行対象のプログラムのうちの互いに異なる種類のプログラムの各々を前記複数の制御装置のうちの互いに異なる制御装置の各々に割り当てた場合に前記複数の実行対象のプログラムが配信されてから前記複数の実行対象のプログラムの実行の結果が配信元に返送されるまでの遅延時間である前記基準時間を算出する算出手段を更に備え、
前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が前記算出手段によって算出された前記基準時間より短い時間である前記ひとつの組み合わせを選択する
ことを特徴とする請求項1に記載の負荷分散装置。 - 前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が異なる二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成する
ことを特徴とする請求項1又は2に記載の負荷分散装置。 - 前記組み合わせ手段は、前記複数の制御装置の少なくともひとつに前記実行時間が相反する二つの前記実行対象のプログラムを割り当てることによってひとつの組み合わせを作成し、
前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと、前記第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項1又は2に記載の負荷分散装置。 - 前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項4に記載の負荷分散装置。 - 前記複数の制御装置のうちの特定の制御装置の負荷を検出する負荷検出手段と、
前記負荷検出手段によって検出された負荷が負荷を分散する処理を実行するための閾値以上であるか否かを判断する判断手段とを更に備え、
前記負荷検出手段によって検出された負荷が前記閾値以上であると前記判断手段によって判断された場合、前記特定手段、前記取得手段、前記組み合わせ手段、前記予測手段、前記選択手段及び前記制御手段は、各々が有する機能を実行する
ことを特徴とする請求項1から5のいずれか1項に記載の負荷分散装置。 - 前記複数の実行対象のプログラムの各々の実際の実行時間を検出する時間検出手段と、
前記時間検出手段によって得られた情報を記憶する記憶手段とを更に備え、
前記取得手段は、前記記憶手段から前記複数の種類のプログラムの各々の実行時間の情報を取得する
ことを特徴とする請求項1から6のいずれか1項に記載の負荷分散装置。 - 前記選択手段は、前記組み合わせ手段によって作成された前記複数の組み合わせのなかから、前記予測手段によって予測された前記全プログラム終了時間が最も短い組み合わせを選択する
ことを特徴とする請求項1から7のいずれか1項に記載の負荷分散装置。 - 複数の実行対象のプログラムを複数の制御装置に実行させる負荷分散装置において、
前記複数の実行対象のプログラムの各々が複数の種類のプログラムのいずれであるのかを特定する特定手段と、
前記複数の種類のプログラムの各々の実行時間の情報を取得する取得手段と、
前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てる場合のひとつの組み合わせであって、前記複数の実行対象のプログラムのうちの前記実行時間が相反する二つの前記実行対象のプログラムが前記複数の制御装置の少なくともひとつに割り当てられる前記ひとつの組み合わせを作成する組み合わせ手段と、
前記組み合わせ手段によって作成された前記ひとつの組み合わせにしたがって、前記複数の実行対象のプログラムの各々を前記複数の制御装置のいずれかに割り当てて、前記複数の実行対象のプログラムを前記複数の制御装置に実行させる制御手段とを備え、
前記組み合わせ手段は、同一の種類のプログラムが実行される場合の実行時間は同一であると推定し、前記特定手段によって得られた情報と前記取得手段によって取得された情報とを用いて前記ひとつの組み合わせを作成する
ことを特徴とする負荷分散装置。 - 前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムの各々を前記実行時間が長い順に並べた場合、前記複数の実行対象のプログラムのうちの、最上位からあらかじめ設定された第1の順位までの複数のプログラムのうちのひとつと前記第1の順位より下位の順位であってあらかじめ設定された第2の順位から最下位までの複数のプログラムのうちのひとつとである
ことを特徴とする請求項9に記載の負荷分散装置。 - 前記実行時間が相反する二つの前記実行対象のプログラムは、前記複数の実行対象のプログラムのうちの、前記実行時間が最も長いプログラムのひとつと前記実行時間が最も短いプログラムのひとつとである
ことを特徴とする請求項10に記載の負荷分散装置。 - プログラムを実行する複数の制御装置を管理する負荷分散装置において、
前記制御装置で実行する複数のプログラムの実行時間をプログラム毎に算出する実行時間算出部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示する
ことを特徴とする負荷分散装置。 - 前記実行時間算定部は、複数のプログラムの実行時間をプログラム毎に記録することにより行い、
前記実行時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする請求項12に記載の負荷分散装置。 - 前記プログラムの実行は、制御装置に記録されたプログラムを前記プログラム実行指示部からの指示に基づいて実行することを特徴とする請求項12又は13に記載の負荷分散装置。
- 前記プログラムの実行は、前記プログラム実行指示部から前記制御装置に配信されたプログラムを実行することで行われることを特徴とする請求項12又は13に記載の負荷分散装置。
- 前記制御装置におけるプログラムの実行負荷が増大したことを検出した後、前記プログラム実行指示部が機能することを特徴とする請求項12から15のいずれか1項に記載の負荷分散装置。
- プログラムを実行する複数の制御装置を管理する負荷分散装置おいて、
制御装置で実行する複数のプログラムの実行予想時間をプログラム毎に記録する実行予想時間記録部と、
前記プログラムを前記制御装置に実行指示させるプログラム実行指示部と、
を備え、
前記プログラム実行指示部は、複数の制御装置にプログラムを実行指示させた後、各制御装置で実行指示したプログラムの実行予想時間の長さと相反する長さのプログラムを、前記各制御装置に追加で実行指示し、
前記実行予想時間は、前記プログラムの実行処理の全プログラム終了時間を含む
ことを特徴とする負荷分散装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/054338 WO2017141332A1 (ja) | 2016-02-15 | 2016-02-15 | 負荷分散装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6150956B1 JP6150956B1 (ja) | 2017-06-21 |
JPWO2017141332A1 true JPWO2017141332A1 (ja) | 2018-02-22 |
Family
ID=59082062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016574030A Expired - Fee Related JP6150956B1 (ja) | 2016-02-15 | 2016-02-15 | 負荷分散装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180095441A1 (ja) |
JP (1) | JP6150956B1 (ja) |
WO (1) | WO2017141332A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3458918B1 (en) * | 2016-05-20 | 2024-06-26 | Georgia Tech Research Corporation | Systems and methods for detecting anomalous software on a programmable logic controller |
EP3252549B1 (de) * | 2016-05-31 | 2020-06-24 | Siemens Aktiengesellschaft | Verfahren zum betreiben einer automatisierungseinrichtung sowie automatisierungseinrichtung |
JP6356736B2 (ja) * | 2016-06-29 | 2018-07-11 | ファナック株式会社 | コントローラシステムおよび制御方法 |
CN113614696A (zh) | 2019-03-22 | 2021-11-05 | 三菱电机株式会社 | 信息处理装置、计算机、计算机系统、信息处理方法及信息处理程序 |
US11696528B2 (en) * | 2019-10-11 | 2023-07-11 | Deere & Company | Settings propagation and synchronization across mobile work machines |
US11899564B2 (en) * | 2022-05-19 | 2024-02-13 | Renesas Electronics Corporation | Debug apparatus and recording medium |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3368370B2 (ja) * | 1995-09-26 | 2003-01-20 | オムロン株式会社 | 負荷分散装置および方法 |
KR100451315B1 (ko) * | 1998-04-27 | 2004-10-11 | 가부시끼가이샤 디지탈 | 제어시스템, 표시장치 및 제어용 호스트 컴퓨터 및 데이터전송방법 |
JP2003337793A (ja) * | 2002-03-15 | 2003-11-28 | Omron Corp | ネットワークシステム及びネットワークシステムの通信方法 |
JP5655448B2 (ja) * | 2010-09-09 | 2015-01-21 | 富士電機株式会社 | Plcシステム、その開発支援装置 |
JP4877423B1 (ja) * | 2011-03-15 | 2012-02-15 | オムロン株式会社 | Plcのcpuユニット、plc用システムプログラムおよびplc用システムプログラムを格納した記録媒体 |
US9389606B2 (en) * | 2011-11-11 | 2016-07-12 | Rockwell Automation Technologies, Inc. | Agile control model system and method |
JP6375666B2 (ja) * | 2014-03-31 | 2018-08-22 | 株式会社ジェイテクト | Plcおよびplc用のプログラミングツール |
WO2015162792A1 (ja) * | 2014-04-25 | 2015-10-29 | 三菱電機株式会社 | 機能ユニット、アナログ入力ユニット、プログラマブルコントローラシステム |
-
2016
- 2016-02-15 WO PCT/JP2016/054338 patent/WO2017141332A1/ja active Application Filing
- 2016-02-15 US US15/532,354 patent/US20180095441A1/en not_active Abandoned
- 2016-02-15 JP JP2016574030A patent/JP6150956B1/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20180095441A1 (en) | 2018-04-05 |
WO2017141332A1 (ja) | 2017-08-24 |
JP6150956B1 (ja) | 2017-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6150956B1 (ja) | 負荷分散装置 | |
Glock et al. | Decision support models for production ramp-up: a systematic literature review | |
JP6263284B2 (ja) | 出荷オーダ割付装置 | |
US9990597B2 (en) | System and method for forecast driven replenishment of merchandise | |
JP5401176B2 (ja) | 動的保守計画装置 | |
JP6622592B2 (ja) | 生産計画立案支援システムおよび支援方法 | |
WO2018079367A1 (ja) | 商品需要予測システム、商品需要予測方法および商品需要予測プログラム | |
JPWO2010064281A1 (ja) | 生産計画作成システムおよび生産計画作成方法 | |
JP5779537B2 (ja) | 生産シミュレーション装置、生産シミュレーション方法及び、生産シミュレーションプログラム | |
JP5973380B2 (ja) | 生産指標抽出装置及びプログラム | |
JP5551806B2 (ja) | 統合需要予測装置、統合需要予測方法、及び統合需要予測プログラム | |
JP5478545B2 (ja) | 作業者配置支援装置 | |
JP4753590B2 (ja) | 在庫補充モデルの選定方法及びシステム | |
JP6737063B2 (ja) | ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム | |
JP7348051B2 (ja) | 作業指示システムおよび作業指示方法 | |
JP6151435B2 (ja) | 倉庫収益シミュレーション装置 | |
KR100780103B1 (ko) | 자재 소요량 및 생산 계획 소요량 산출 방법 및 이를구현하기 위한 프로그램이 기록된 기록매체 | |
Olender et al. | Practical approach of flexible job shop scheduling using costs and finishing times of operations | |
JP6907720B2 (ja) | 優先順位付け方法 | |
CN110637263B (zh) | 监视辅助装置、监视辅助方法及记录介质 | |
JP2009126621A (ja) | 適正在庫量決定システム及び適正在庫量決定方法 | |
KR101757882B1 (ko) | 태스크 분할 할당 방법 | |
US10635568B2 (en) | Method and a system for monitoring batch processing of applications executed in IT infrastructure | |
CN108111573A (zh) | 控制服务器 | |
Kogan et al. | Supply chain with inventory review and dependent demand distributions: Dynamic inventory outsourcing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170412 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170425 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6150956 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |