JP3368370B2 - 負荷分散装置および方法 - Google Patents

負荷分散装置および方法

Info

Publication number
JP3368370B2
JP3368370B2 JP24751795A JP24751795A JP3368370B2 JP 3368370 B2 JP3368370 B2 JP 3368370B2 JP 24751795 A JP24751795 A JP 24751795A JP 24751795 A JP24751795 A JP 24751795A JP 3368370 B2 JP3368370 B2 JP 3368370B2
Authority
JP
Japan
Prior art keywords
processing
load
programmable controller
programmable
controller
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.)
Expired - Fee Related
Application number
JP24751795A
Other languages
English (en)
Other versions
JPH0991011A (ja
Inventor
仁 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP24751795A priority Critical patent/JP3368370B2/ja
Publication of JPH0991011A publication Critical patent/JPH0991011A/ja
Application granted granted Critical
Publication of JP3368370B2 publication Critical patent/JP3368370B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、高速ネットワー
クを介して複数台のプログラマブルコントローラを接続
して構成したプログラマブルコントローラシステムにお
ける負荷分散装置および方法に関し、特に、各プログラ
マブルコントローラ自体がその負荷を自動的に判断して
負荷を各プログラマブルコントローラ間で分散して処理
の高効率化を図った負荷分散装置および方法に関する。
【0002】
【従来の技術】最近、高速ネットワークを介して複数台
のプログラマブルコントローラを接続して構成したプロ
グラマブルコントローラシステムが提案されている。
【0003】すなわち、最近のFA(ファクトリオート
メーション)システムの多様化に対処するためには1台
のプログラマブルコントローラではその制御態様に限界
があるので、複数台のプログラマブルコントローラを高
速ネットワークを介して接続して、プログラマブルコン
トローラシステムを構築することにより、このプログラ
マブルコントローラシステムを利用して、効率の良いF
A(ファクトリオートメーション)システムを構築する
試みがなされている。
【0004】
【発明が解決しようとする課題】しかし、一般に、従来
のプログラマブルコントローラにおいては、このプログ
ラマブルコントローラ本体と、このプログラマブルコン
トローラ本体に係わるセンサ、アクチュエータといった
物理的なリソースとの関係は一義的に決定されているの
が普通であり、そのため、上記のように、高速ネットワ
ークを介して複数台のプログラマブルコントローラを接
続してプログラマブルコントローラシステムを構築した
場合でも、各プログラマブルコントローラ本体と、この
プログラマブルコントローラ本体に係わるセンサ、アク
チュエータといった物理的なリソースとの関係は一義的
に決定され、たとえ、複数台のプログラマブルコントロ
ーラの中で負荷に余裕のあるプログラマブルコントロー
ラ間で負荷分散を行うシステムは存在しなかった。
【0005】そこで、この発明は、各プログラマブルコ
ントローラの負荷状態に応じて各プログラマブルコント
ローラの負荷を自動的に分散制御できるようようにした
プログラマブルコントローラシステムにおける負荷分散
装置および方法を提供することを目的とする。
【0006】
【課題を解決するための手段】上記目的を達成するた
め、(1) この発明の負荷分散装置は、ネットワークを介し
て複数台のプログラマブルコントローラを接続して構成
したプログラマブルコントローラシステムにおける負荷
分散装置において、上記各プログラマブルコントローラ
は、自己の負荷をそれぞれ算出する負荷算出手段と、上
記負荷算出手段により算出された負荷に対応して自己の
処理の少なくとも一部を他のプログラマブルコントロー
ラに依頼する処理依頼手段と、を具備し、上記処理依頼
手段は、自己の処理の少なくとも一部を他のプログラマ
ブルコントローラに依頼するに際して該処理の依頼に係
わる入力および出力を記述するプログラムコードを書換
えるプログラムコード書換手段を具備することを特徴と
する。(2)この発明の他の負荷分散装置は、ネットワークを
介して複数台のプログラマブルコントローラを接続して
構成したプログラマブルコントローラシステムにおける
負荷分散装置において、上記各プログラマブルコントロ
ーラは、分割可能なラダープログラムを実行するととも
に、自己の負荷をそれぞれ算出する負荷算出手段と、上
記負荷算出手段により算出された負荷に対応して自己の
処理の少なくとも一部を他のプログラマブルコントロー
ラに依頼する処理依頼手段と、上記分割された処理単位
でのラダープログラムを管理するプログラム状態テーブ
ルと、を具備し、上記複数台のプログラマブルコントロ
ーラは、上記複数台のプログラマブルコントローラで共
有するデータを管理する共有デ ータテーブルを具備し、
上記処理依頼手段は、自己の処理の少なくとも一部を他
のプログラマブルコントローラに依頼するに際して分割
された上記ラダープログラムの一部の処理を他のプログ
ラマブルコントローラに依頼し、上記各プログラマブル
コントローラにおける実際の処理は上記プログラム状態
テーブルを参照して実行し、上記処理依頼手段における
処理の依頼は上記共有データテーブルを参照して実行す
ることを特徴とする。 (3)この発明の他の負荷分散装置は、ネットワークを
介して複数台のプログラマブルコントローラを接続して
構成したプログラマブルコントローラシステムにおける
負荷分散装置において、上記複数台のプログラマブルコ
ントローラで共有される共有記憶手段が設けられ、上記
共有記憶手段は、各プログラマブルコントローラの命令
実行時間、全てのプログラマブルコントローラの平均命
令実行時間、負荷が最小のプログラマブルコントローラ
を記憶し、上記各プログラマブルコントローラは、自己
の負荷をそれぞれ算出する負荷算出手段と、上記負荷算
出手段により算出された負荷に対応して自己の処理の少
なくとも一部を他のプログラマブルコントローラに依頼
する処理依頼手段と、を具備し、上記処理依頼手段は、
上記処理の依頼に際して上記共有記憶手段に記憶された
負荷が最小のプログラマブルコントローラを処理依頼先
プログラマブルコントローラとして選択することを特徴
とする。
【0007】(4)この発明の負荷分散方法は、ネット
ワークを介して複数台のプログラマブルコントローラを
接続して構成したプログラマブルコントローラシステム
における負荷分散方法において、上記各プログラマブル
コントローラは、自己の負荷を算出し、該算出した負荷
が大きい場合には、自己の処理の少なくとも一部を負荷
が小さい他のプログラマブルコントローラに依頼すると
ともに、この依頼に際してこの依頼に係わる入力および
出力を記述するプログラムコードを依頼先のプログラマ
ブルコントローラに送信することを特徴とする。 (5)この発明の他の負荷分散方法は、ネットワークを
介して複数台のプログラマブルコントローラを接続して
構成したプログラマブルコントローラシステムにおける
負荷分散方法において、上記複数台のプログラマブルコ
ントローラ間で、各プログラマブルコントローラの命令
実行時間、全てのプログラマブルコントローラの平均命
令実行時間、負荷が最小のプログラマブルコントローラ
を共有して記憶し、上記各プログラマブルコントローラ
は、分割可能なラダープログラムを実行するとともに、
自己の負荷をそれぞれ算出し、該算出した負荷に対応し
て自己の処理の少なくとも一部を他のプログラマブルコ
ントローラに依頼し、上記処理の依頼は、分割された上
記ラダープログラムの一部の処理を、上記共有して記憶
された負荷が最小のプログラマブルコントローラに依頼
することにより行われることを特徴とする。
【0008】
【0009】また、上記処理依頼手段は、上記ラダープ
ログラムの作成後で、かつシステムの非稼働時に上記処
理の依頼を行うこととしてもよい
【0010】また、上記処理依頼手段は、上記ラダープ
ログラムの作成後で、かつシステムの動作時に上記処理
の依頼を行うこととしてもよい
【0011】
【0012】また、上記処理依頼手段は、上記処理の依
頼に際して、上記共有記憶手段に記憶された各プログラ
マブルコントローラの命令実行時間を所定の順番で調
べ、最初に発見された上記平均命令実行時間より短い命
令実行時間のプログラマブルコントローラを処理依頼先
プログラマブルコントローラとして選択することとして
もよい
【0013】また、上記処理依頼手段は、上記処理の依
頼に際して、他の全てのプログラマブルコントローラに
対して処理依頼を行えるかどうかを問い合わせるメッセ
ージを発行し、処理依頼を行える旨のレスポンスが返送
されたプログラマブルコントローラを処理依頼先プログ
ラマブルコントローラとして選択することとしてもよ
【0014】また、上記処理依頼手段は、自己の処理の
少なくとも一部を他のプログラマブルコントローラに依
頼するに際して生じるオーバヘッドが最小になる処理を
選択して上記他のプログラマブルコントローラに依頼す
ることとしてもよい
【0015】また、上記処理依頼手段は、上記処理依頼
に際して上記プログラマブルコントローラで新たに共有
する必要が生じるデータが最小の処理を選択すること
してもよい
【0016】
【0017】
【0018】また、上記プログラム状態テーブルは、各
処理単位で各処理を識別するための識別情報、各処理単
位に対して、該処理単位が実行中であるか、該処理単位
が他のプログラマブルコントローラに対して依頼中であ
るか、該処理単位が他のプログラマブルコントローラか
ら依頼中であるかを示すステータス情報、各処理単位が
必要とする入力データを示す入力データ情報、各処理単
位が必要とする出力データを示す出力データ情報、各処
理単位における実際の処理の内容を記述するコード情
報、を格納することを特徴とする。
【0019】また、上記共有データテーブルは、上記複
数台のプログラマブルコントローラで共有するデータ、
上記共有するデータのアドレス、上記共有するデータを
利用している処理を識別するための識別情報を格納する
ことを特徴とする。
【0020】このような構成によると、ユーザが意識し
てプログラムを配置しなくても、各プログラマブルコン
トローラ(PLC)におけるプログラムの分散化が可能
になり、また、動作時には、各プログラマブルコントロ
ーラ(PLC)の負荷を考慮しながら分散化を反映して
いくことが可能になるので、効率のよいFA(ファクト
リオートメーション)システムを組むことが可能にな
る。
【0021】また、新たなプログラマブルコントローラ
(PLC)を1台追加し、それに対してプログラミング
しない場合でも、そのプログラマブルコントローラ(P
LC)が自動的に周囲のプログラマブルコントローラ
(PLC)の負荷を減少することができ、要した設備の
コストに見合うだけのシステムの性能アップを簡単に得
ることができる。
【0022】
【発明の実施の形態】以下、この発明に係わる負荷分散
装置および方法の実施例を図面に基づいて詳細に説明す
る。
【0023】図1は、この発明に係わる負荷分散装置お
よび方法を適用して構成したプログラマブルコントロー
ラシステムの一実施例の概略構成をブロック図で示した
ものである。
【0024】図1において、このプログラマブルコント
ローラシステムは、複数のプログラマブルコントローラ
(PLC)100−1〜100−nを高速ネットワーク
200に接続して構成される。また、このプログラマブ
ルコントローラシステムには、複数のプログラマブルコ
ントローラ(PLC)100−1〜100−nにより共
用して使用されるネットワーク内グローバルメモリ30
0が設けられ、このネットワーク内グローバルメモリ3
00も高速ネットワーク200に接続されている。
【0025】プログラマブルコントローラ(PLC)1
00−1〜100−nは、それぞれシステムプログラム
が格納されるリードオンリィメモリ(ROM)101、
プログラム状態テーブル102−1、共有データテーブ
ル102−2、処理依頼可能フラグ102−3が格納さ
れるランダムアクセスメモリ(RAM)102、入出力
メモリ(I/Oメモリ)103、中央演算処理装置(C
PU)104、ネットワークインターフェース(I/
F)105を具備しており、これらはプログラマブルコ
ントローラ(PLC)100−1〜100−n内の内部
バス106に接続されている。
【0026】ここで、リードオンリィメモリ(ROM)
101に格納されるシステムプログラムは、プログラマ
ブルコントローラ(PLC)100−1〜100−n本
体の動作制御を行うプログラムで、この発明に係わる
「処理の依頼方法」および「依頼後の処理」に関する記
述を含んでいる。この「処理の依頼方法」および「依頼
後の処理」については後に詳述する。
【0027】また、ランダムアクセスメモリ(RAM)
102に格納されるプログラム状態テーブル102−1
は、分割されたプログラム単位がどのような状態にあ
り、どのような入力や出力を持つかを記述する。また、
処理コードを指すポインタであるか、処理コード自体で
あるかにかかわらず、処理内容を示すデータを持つ。
【0028】また、ランダムアクセスメモリ(RAM)
102に格納される共有データテーブル102−2は、
ネットワーク200を介して自分のプログラマブルコン
トローラ(PLC)が他のプログラマブルコントローラ
(PLC)に依頼した処理に関係する入力および出力を
記述する。
【0029】また、ランダムアクセスメモリ(RAM)
102に格納される処理依頼可能フラグ102−3は、
自分のプログラマブルコントローラ(PLC)が他のプ
ログラマブルコントローラ(PLC)に処理を依頼可能
であるかを示すフラグで、この処理依頼可能フラグは、
プログラマブルコントローラ(PLC)の動作開始時に
はONになる。また、プログラマブルコントローラ(P
LC)の動作中に、内部で実行している処理単位がない
ことが判明したときには、この処理依頼可能フラグはO
FFにされる。
【0030】また、中央演算処理装置(CPU)104
は、ユーザプログラムの実行あるいは周辺処理を行う。
【0031】ネットワーク内グローバルメモリ300
は、 1)各PLCの命令実行負荷 2)ネットワーク内のPLCの平均命令実行負荷 3)ネットワーク内の最も負荷の少ないPLC 4)PLC間共有の入出力情報 を格納する。
【0032】ここで、「各PLCの命令実行負荷」は、
このプログラマブルコントローラシステムを構成するネ
ットワーク200内の複数のプログラマブルコントロー
ラ(PLC)100−1〜100−nのそれぞれの命令
実行負荷で、この命令実行負荷としては、各プログラマ
ブルコントローラ(PLC)100−1〜100−nの
「実行命令」の、例えば、1サイクルでの単純な命令実
行時間、1サイクル内の命令実行時間の割合等を用いる
ことができ、要は、各プログラマブルコントローラ(P
LC)100−1〜100−nの「実行命令」の負荷を
相対的に判断できる指標であればどのような値でも用い
ることが可能である。
【0033】また、「ネットワーク内のPLCの平均命
令実行負荷」は、ネットワーク200内の各プログラマ
ブルコントローラ(PLC)100−1〜100−nの
命令実行負荷の平均である。ここで、各プログラマブル
コントローラ(PLC)100−1〜100−nの命令
実行負荷の次元が実行時間であれば、相加平均をとり、
割合であれば相乗平均をとるのが適している。
【0034】また、「ネットワーク内の最も負荷の少な
いPLC」は、ネットワーク200内の各プログラマブ
ルコントローラ(PLC)100−1〜100−nのな
かで1番命令実行の負荷の軽いプログラマブルコントロ
ーラ(PLC)を示す変数である。この変数は、各プロ
グラマブルコントローラ(PLC)100−1〜100
−nを示すノードアドレスであっても、各プログラマブ
ルコントローラ(PLC)100−1〜100−nに固
有のID値であってもかまわない。
【0035】また、「PLC間共有の入出力情報」は、
処理を他のプログラマブルコントローラ(PLC)に依
頼することにより、プログラマブルコントローラ(PL
C)間で共有化する必要のある入出力情報の参照エリア
である。
【0036】さて、この実施例のプログラマブルコント
ローラシステムの詳細動作を説明する前に、この発明に
係わる負荷分散装置および方法の基本的概念について説
明する。
【0037】まず、図2に示すように、2台のプログラ
マブルコントローラ(PLC1およびPLC2)100
−1、100−2を高速ネットワーク(LAN)200
に接続した構成を考える。
【0038】ここで、プログラマブルコントローラ(P
LC1)100−1における処理がプログラマブルコン
トローラ(PLC2)100−2における処理に比較し
て非常に多いとする。この場合、この発明に係わる負荷
分散装置および方法においては、プログラマブルコント
ローラ(PLC1)100−1における処理の一部をプ
ログラマブルコントローラ(PLC2)100−2に依
頼し、システム全体の負荷の分散を図る。
【0039】ここで、プログラマブルコントローラ(P
LC1)100−1およびプログラマブルコントローラ
(PLC2)100−2のプログラムがラダープログラ
ムから構成されているとすると、このラダープログラム
は、図3に示すように小さい回路に分割することが可能
である。
【0040】図3においては、プログラマブルコントロ
ーラ(PLC1)100−1(プログラマブルコントロ
ーラ1)のラダープログラムの実行処理の負荷が非常に
大きく、プログラマブルコントローラ(PLC2)10
0−2(プログラマブルコントローラ2)のラダープロ
グラムの実行処理の負荷が非常に小さい場合を示してい
る。
【0041】この場合、プログラマブルコントローラ1
のラダープログラムを処理A〜Dに分割し、この分割し
た処理A〜Dの一部をプログラマブルコントローラ2に
依頼する。ここで、分割した処理A〜Dはその順序を変
更しても、このラダープログラム実行に関係する影響は
ない。
【0042】今、プログラマブルコントローラ1がラダ
ープログラムを実行する時間をT1とし、プログラマブ
ルコントローラ2がラダープログラムを実行する時間を
T2として、時間T1が時間T2よりも十分に大きく
て、プログラマブルコントローラ1からプログラマブル
コントローラ2にプログラムの実行を依頼する場合を考
える。
【0043】ここで、もしも処理Aの実行時間TAにつ
いて (T1−T2)<(TA+ΔTA) の関係が成立すれば、プログラマブルコントローラ1が
処理Aをプログラマブルコントローラ2に依頼すること
により、システム全体としてのプログラム実行時間は減
少する。ここで、ΔTAは、プログラマブルコントロー
ラ1が処理Aをプログラマブルコントローラ2に依頼す
るのに必要はオーバヘッドである。具体的には、このオ
ーバヘッドは、処理Aに関係する入力情報をプログラマ
ブルコントローラ2で利用可能にし、かつ、このプログ
ラマブルコントローラ2による処理Aの出力情報をプロ
グラマブルコントローラ1に反映するために必要な時間
である。
【0044】上記条件が成立すると、処理Aをプログラ
マブルコントローラ1からプログラマブルコントローラ
2に依頼することが可能になる。
【0045】図4は、処理Aをプログラマブルコントロ
ーラ1からプログラマブルコントローラ2に依頼した場
合のプログラマブルコントローラ1およびプログラマブ
ルコントローラ2による処理プログラムを示したもので
ある。すなわち、プログラマブルコントローラ1の処理
Aがプログラマブルコントローラ2に依頼されたので、
プログラマブルコントローラ1による処理は、処理B〜
Cになり、プログラマブルコントローラ2による処理
は、処理Aとなって、システム全体の負荷分散が図れ
る。
【0046】なお、上記説明では、プログラマブルコン
トローラ1の処理Aをプログラマブルコントローラ2に
依頼した場合を示したが、プログラマブルコントローラ
1の処理A以外の処理、すなわち処理B〜Cをプログラ
マブルコントローラ2に依頼するようにしてもよい。こ
こで、依頼可能な処理のうちどの処理を依頼するかは、
この処理の依頼により生じるオーバヘッドができるだけ
少ないものに決定される。すなわち、処理の依頼に際し
て、オーバヘッドができるだけ少ないもの、すなわち、
処理の依頼に際して新たにプログラマブルコントローラ
1とプログラマブルコントローラ2との間で共有しなけ
ればならない入出力情報が一番少ないものを選択するの
がシステムの資源の有効利用の観点から有効な方法であ
る。
【0047】また、プログラマブルコントローラ1から
処理Aをプログラマブルコントローラ2に依頼した後、
まだ、プログラマブルコントローラ2の負荷がプログラ
マブルコントローラ1に比較して小さい場合は、プログ
ラマブルコントローラ1から更に他の処理をプログラマ
ブルコントローラ2に依頼することも可能である。
【0048】この際においても、プログラマブルコント
ローラ1とプログラマブルコントローラ2との間で共有
する必要がある入出力情報が少ない処理を選択して、こ
の処理をプログラマブルコントローラ1からプログラマ
ブルコントローラ2に依頼する。すなわち、プログラマ
ブルコントローラ1からプログラマブルコントローラ2
に依頼可能な処理の中で、新たに情報交換の必要が少な
い処理を依頼することになる。例えば、処理Aで利用し
ている入出力情報を処理Cでも利用しているならば、新
たに情報交換が必要な情報量は処理Cを依頼することに
より少なくなる。
【0049】上記処理を繰り返すことにより、プログラ
マブルコントローラ1とプログラマブルコントローラ2
との間の負荷の均一化が図られ、システム全体の高効率
化が図れる。
【0050】ところで、上記説明においては、2台のプ
ログラマブルコントローラ(PLC1およびPLC2)
100−1、100−2を高速ネットワーク(LAN)
200に接続した構成を考えたが、一般にプログラマブ
ルコントローラシステムを構成する場合に、高速ネット
ワーク(LAN)200に接続されるプログラマブルコ
ントローラ(PLC)の数は、図2に示したような2台
には限らない。
【0051】そこで、次に、図5に示しように、高速ネ
ットワーク(LAN)200に対して2台を越える複数
台、すなわち4台のプログラマブルコントローラ(PL
C1〜PLC4)100−1〜100−4が接続された
場合を考える。
【0052】この場合のプログラムの負荷の分散を行う
タイミングは次に示す2つの場合が考えられる。 1)各プログラマブルコントローラ(PLC1〜PLC
4)100−1〜100−4のプログラム作成後で、シ
ステムの非稼働時の負荷分散(以下、これを静的な負荷
分散という)。 2)各プログラマブルコントローラ(PLC1〜PLC
4)100−1〜100−4のプログラム作成後で、シ
ステム動作時の負荷分散(以下、これを動的な負荷分散
という)。
【0053】ここで、上記1)の静的な負荷分散につい
ては、プログラミングツールなどにより、適宜、プログ
ラムを各プログラマブルコントローラ(PLC1〜PL
C4)100−1〜100−4に分散することができ
る。
【0054】また、上記2)の動的な負荷分散の場合
は、各プログラマブルコントローラ(PLC1〜PLC
4)100−1〜100−4が、システム動作時に、自
分のプログラマブルコントローラがシステム全体から見
て相対的にどれだけの負荷があるかを判断し、もし自分
のプログラマブルコントローラの負荷がシステム全体か
ら見て相対的に多い場合は、相対的に少ない他のプログ
ラマブルコントローラに処理を依頼する。
【0055】図6は、上記動的な負荷分散を可能にする
ための構成を示したものである。図6に示し構成におい
ては、このプログラマブルコントローラシステムを構成
する4台のプログラマブルコントローラ(PLC1〜P
LC4)100−1〜100−4の全てが共有するメモ
リ300を設け、このメモリ300のメモリエリアに 1)PLC1での命令実行時間 2)PLC2での命令実行時間 3)PLC3での命令実行時間 4)PLC4での命令実行時間 5)ネットワーク内全PLCの平均命令時間 6)ネットワーク内で一番負荷の少ないPLC番号 を格納し、各プログラマブルコントローラ(PLC1〜
PLC4)100−1〜100−4は、このメモリ30
0のメモリエリアに格納された上記情報を参照して自分
のプログラマブルコントローラのシステム全体から見た
相対的な負荷を判断する。
【0056】なお、上記メモリ300のメモリエリアに
格納される上記1)〜4)の各PLCでの命令実行時間
はそれぞれ対応するプログラマブルコントローラ(PL
C1〜PLC4)100−1〜100−4がメモリ30
0のメモリエリアに動的に書き込む。
【0057】すなわち、PLC1での命令実行時間は、
プログラマブルコントローラ(PLC1)100−1が
書き込み、同様に、PLC2での命令実行時間は、プロ
グラマブルコントローラ(PLC2)100−2が、P
LC3での命令実行時間は、プログラマブルコントロー
ラ(PLC3)100−3が、PLC4での命令実行時
間は、プログラマブルコントローラ(PLC4)100
−4がそれぞれメモリ300の対応するメモリエリアに
書き込む。
【0058】また、5)の「ネットワーク内全PLCの
平均命令時間」および6)の「ネットワーク内で一番負
荷の少ないPLC番号」は、ネットワーク内で一番負荷
の少ないと判断されたプログラマブルコントローラ(P
LC3)100−3が計算してメモリ300の対応する
メモリエリアに書き込む。
【0059】なお、5)の「ネットワーク内全PLCの
平均命令時間」および6)の「ネットワーク内で一番負
荷の少ないPLC番号」の計算およびメモリ300の対
応するメモリエリアへの書き込みは、ネットワーク内で
一番負荷の少ないと判断されたプログラマブルコントロ
ーラ(PLC3)100−3により行うように構成した
が、この処理を他のプログラマブルコントローラ(PL
C)が行うように構成してもよい。すなわち、この実施
例では、5)の「ネットワーク内全PLCの平均命令時
間」および6)の「ネットワーク内で一番負荷の少ない
PLC番号」の計算およびメモリ300の対応するメモ
リエリアへの書き込みも負荷分散の対象として処理され
ている。
【0060】メモリ300のメモリエリアに格納された
上記情報を参照して自分のプログラマブルコントローラ
のシステム全体から見た相対的な負荷が大であると判断
すると、このプログラマブルコントローラは処理の依頼
先となる他のプログラマブルコントローラを選択する。
【0061】この処理の依頼先となる他のプログラマブ
ルコントローラの選択は以下に示す方法により行われ
る。 1)メモリ300のメモリエリアに格納されたネットワ
ーク内で一番負荷の少ないPLC番号からそのPLC番
号に対応するプログラマブルコントローラを処理の依頼
先となる他のプログラマブルコントローラとして選択す
る。 2)メモリ300のメモリエリアに格納された各PLC
での命令実行時間をネットワーク内全PLCの平均命令
時間と、自分のプログラマブルコントローラの平均命令
時間を記憶したメモリエリアを起点として、順番に比較
していくことにより、一番最初に発見された平均命令処
理より短い命令実行時間のプログラマブルコントローラ
(PLC)を処理の依頼先となる他のプログラマブルコ
ントローラとして選択する。 3)自分以外の全ての他のプログラマブルコントローラ
(PLC)に対して処理依頼を行えるるか否かを問うメ
ッセージを発行し、その処理を依頼されることが可能な
プログラマブルコントローラ(PLC)からのレスポン
スに基づきこの処理の依頼先となる他のプログラマブル
コントローラを選択する。
【0062】なお、上記1)乃至3)の方法のいずれの
方法を採用するかはシステム構成上任意である。ただ
し、1)の方法は、特定のプログラマブルコントローラ
(PLC)が計算した上記メモリ300のメモリエリア
に格納された6)の「ネットワーク内で一番負荷の少な
いPLC番号」により簡単に求めることができるが、シ
ステム全体のプログラマブルコントローラ(PLC)の
数が多くなると、同時に複数のプログラマブルコントロ
ーラ(PLC)が同一のプログラマブルコントローラ
(PLC)を処理の依頼先として選択する可能性がある
ので、処理依頼の時間が多くなるという問題があり、ま
た、2)および3)の方法においては、同一のプログラ
マブルコントローラ(PLC)を処理の依頼先として選
択する可能性は低くなるが、処理依頼先のプログラマブ
ルコントローラ(PLC)の選択処理が複雑になるとい
う問題がある。
【0063】次に、処理依頼元のプログラマブルコント
ローラ(PLC)は依頼する処理を決定する。この依頼
する処理の決定は、この処理の依頼により生じるオーバ
ヘッドができるだけ小さくなる処理を選択する。
【0064】図7は、上記各プログラマブルコントロー
ラ(PLC)における処理依頼時の処理をフローチャー
トで示したものである。
【0065】まず、自PLCの相対的な負荷の大小を求
める(ステップ111)。この処理は前述したように、
メモリ300のメモリエリアに記憶された「ネットワー
ク内全PLCの平均命令時間」に基づき行われる。
【0066】自PLCの相対的な負荷が大と判断される
と、次に、処理依頼先PLCを求める(ステップ11
2)。この処理依頼先PLCは、上述した 1)メモリ300のメモリエリアに格納されたネットワ
ーク内で一番負荷の少ないPLC番号からそのPLC番
号に対応するプログラマブルコントローラを処理の依頼
先となる他のプログラマブルコントローラとして選択す
る。 2)メモリ300のメモリエリアに格納された各PLC
での命令実行時間をネットワーク内全PLCの平均命令
時間と、自分のプログラマブルコントローラの平均命令
時間を記憶したメモリエリアを起点として、順番に比較
していくことにより、一番最初に発見された平均命令処
理より短い命令実行時間のプログラマブルコントローラ
(PLC)を処理の依頼先となる他のプログラマブルコ
ントローラとして選択する。 3)自分以外の全ての他のプログラマブルコントローラ
(PLC)に対して処理依頼を行えるるか否かを問うメ
ッセージを発行し、その処理を依頼されることが可能な
プログラマブルコントローラ(PLC)からのレスポン
スに基づきこの処理の依頼先となる他のプログラマブル
コントローラを選択する。 のいづれかの方法により行われる。
【0067】次に、依頼する処理を選択する(ステップ
114)。この依頼する処理の選択は、上述したよう
に、処理の依頼により生じるオーバヘッドを考慮して選
択される。
【0068】そして、処理依頼先PLCおよび依頼する
処理が決定されると、その処理を依頼する処理の依頼処
理を行い(ステップ114)、この処理を終了する。
【0069】さて、上述したように、ラダープログラム
については、回路毎に分割が可能である。ここで、分割
された処理単位は、図8に示すように、入力121、処
理122、出力123を所持する。
【0070】ここで重要なことは、分割された処理単位
に対して必要な入力情報、出力情報が定義でき、それよ
って情報の共有によるオーバヘッドが計算できることで
ある。ラダープログラムでは、入力接点および出力接点
を必要な入力情報および出力情報として割り当てること
ができるので、上記入力情報、出力情報の定義およびそ
れよる情報の共有によるオーバヘッドは簡単に計算でき
る。
【0071】次に、一般的なプログラムについてのプロ
グラムの分割方法について説明する。
【0072】1)ST言語 ST言語は、FORTRANに似た言語であり、「逐次
実行」、「判断文」、「繰り返し文」などがある。これ
らについてどのように分割可能かを以下に示す。
【0073】a)「逐次実行」 「判断」および「繰り返し」を含まない「逐次実行」は
図9に示すように任意に分割可能である。すなわち、
「判断」および「繰り返し」を含まない「逐次実行」
は、どのように分割を行っても、この分割された処理を
どのプログラマブルコントローラ(PLC)が行っても
かまわない。すなわち、各処理にそれぞれ依存関係がな
ければ、その処理をどのように分割することもでき、ま
たそれをどのように分散してもよい。
【0074】また、このとき、各処理に含まれるのは、
ほとんど代入処理である。そこで、この処理は、図10
に示すように、代入文の入力141、処理142、代入
文における出力143で定義でき、これによって、処理
を分散するときのオーバヘッドを算出できる。
【0075】b)「判断文」 「判断文」は、図11に示すように、条件の判断15
1、処理152から構成されている。ここで、この「判
断文」は、一つの処理単位と考えることができる。この
とき、処理の入出力情報としては図12に示すように、
代入文への入力+条件161、処理162、代入文にお
ける出力163で定義でき、これによって、処理を分散
するときのオーバヘッドを算出できる。
【0076】c)「繰り返し文」 「繰り返し文」は、その処理に要する入出力情報はない
ので、これを1つの処理と考えたときに、追加される情
報はない。
【0077】2)SFC SFCにおいては、「STEP」および「TRANSI
TION」という枠組みがある。そして処理としては
「STEP」内の「ACTION」および「TRANS
ITION」の処理をそれぞれ一つ一つに分割すること
ができる。
【0078】「TRANSITION」の処理は、「S
TEP」の活性状態を入力として、それに対して、「S
TEP」の活性状態を出力するから、図13に示すよう
に、STEPの活性状態171、TRANSITION
処理172、STEPの活性状態173で定義でき、こ
れによって、処理を分散するときのオーバヘッドを算出
できる。
【0079】また、「STEP」内の「ACTION」
の処理の実行/非実行は、自STEPの活性状態から得
られるから、図14に示すように、STEPの活性状態
181、STEP内ACTION処理182で定義で
き、これによって、処理を分散するときのオーバヘッド
を算出できる。
【0080】上述したように、ST言語、あるいはSF
Cのような順序性が重要であるプログラムにおいても、
このプログラムを小さな処理単位に分割することが可能
であり、このプログラムの小さな処理単位への分割によ
り負荷分散することが可能になる。
【0081】また、上記のように分割されたプログラム
の処理を、図15に示すように、さらに細分化すること
も可能である。すなわち、入力A、処理190、出力B
で定義される処理は、入力A、処理190−1(処理
1)、出力(A+B+α)および入力(A+B+α)、
処理190−2(処理2)、出力Bに分割できる。この
場合は、一般的には、細分化した処理間での情報の交換
に“入力+出力+テンポラリ利用の変数”だけが必要に
なる。
【0082】図16は、図1に示したプログラマブルコ
ントローラシステムにおけるプログラム状態テーブル1
02−1の詳細を示したものである。プログラム状態テ
ーブル102−1は、分割した単位でのプログラムを管
理するテーブルで、このプログラム状態テーブル102
−1の構成要素は、 1)タグ番号 2)ステータス 3)入力データ 4)出力データ 5)処理するコード体系 から成っている。
【0083】ここで、「タグ番号」は、各「処理単位」
にユニークな番号である。
【0084】また、「ステータス」は、“実行中”、
“依頼中”、“被依頼中”の3種類のステータスからな
り、ここで、“実行中”は、この「処理単位」をこのプ
ログラマブルコントローラ(PLC)で実行中であるこ
とを示し、“依頼中”は、この「処理単位」を他のプロ
グラマブルコントローラ(依頼先プログラマブルコント
ローラ)に依頼中であることを示し、“被依頼中”は、
この「処理単位」が他のプログラマブルコントローラ
(依頼元プログラマブルコントローラ)から依頼されて
いることを示す。
【0085】なお、依頼先プログラマブルコントローラ
は依頼先ノードアドレスで指定され、依頼元プログラマ
ブルコントローラは依頼元ノードアドレスで指定され
る。
【0086】また、「入力データ」は、この「処理単
位」が必要とする入力データを示し、「出力データ」
は、この「処理単位」が必要とする出力データを示す。
【0087】また、「処理するコード体系」は、この
「処理単位」における実際の処理を記述している。
【0088】すなわち、図16に示したプログラム状態
テーブル102−1において、タグ番号「1」の「処理
単位」は、“実行中”であり、その「処理単位」の「入
力データ」は、「A」および「B」、「出力データ」
は、「C」であることを示している。
【0089】また、タグ番号「2」の「処理単位」は、
“依頼中”であり、その「処理単位」の依頼先ノードア
ドレスは「ノードZ」であり、「入力データ」は「A」
および「G」であることを示している。
【0090】また、タグ番号「3」の「処理単位」は、
“被依頼中”であり、その「処理単位」の依頼元ノード
アドレスは「ノードW」であることを示している。
【0091】また、タグ番号「4」の「処理単位」は、
“実行中”であり、その「処理単位」の「入力データ」
は、「A」であることを示している。
【0092】また、タグ番号「5」の「処理単位」は、
“依頼中”であり、その「処理単位」の依頼先ノードア
ドレスは「ノードL」であり、「出力データ」は「G」
および「V」であることを示している。
【0093】図17は、図1に示したプログラマブルコ
ントローラシステムにおける共有データテーブル102
−2の詳細を示したものである。
【0094】この共有データテーブル102−2は、プ
ログラマブルコントローラ間で共有する必要のあるデー
タを管理するテーブルである。この共有データテーブル
102−2の構成要素は、 1)データ 2)共有メモリ内アドレス 3)関連プログラムタグ番号 から成っている。
【0095】ここで、「データ」には共有するデータが
記述される。また、「共有メモリ内アドレス」には、共
有するデータの共有メモリにおけるアドレスが記述され
る。また、「関連プログラムタグ番号」にはこのデータ
を利用しているプログラムのタグ番号が記述される。
【0096】すなわち、図17に示す共有データテーブ
ル102−2は、図16に示したプログラム状態テーブ
ル102−1に関連して示したもので、図16に示した
プログラム状態テーブル102−1においては、タグ番
号「2」およびタグ番号「5」の「処理単位」が、“依
頼中”であるので、この“依頼中”の「処理単位」に関
連する入出力データおよびタグ番号が記述される。
【0097】具体的には、この“依頼中”の「処理単
位」に関連する入出力データは、図16に示したように
データ「A」、「G」、「V」であるので、このデータ
「A」、「G」、「V」に対応して、その「共有メモリ
内アドレス」および「関連プログラムタグ番号」が記述
される。
【0098】すなわち、図17に示す共有データテーブ
ル102−2には、データ「A」に対応して、その共有
メモリ内アドレス「0121」および関連プログラムタ
グ番号「2」が記述され、データ「G」に対応して、そ
の共有メモリ内アドレス「0200」および関連プログ
ラムタグ番号「2」および「5」が記述され、データ
「V」に対応して、その共有メモリ内アドレス「020
1」および関連プログラムタグ番号「5」が記述され
る。
【0099】なお、あるプログラマブルコントローラ
(PLC)から他のプログラマブルコントローラ(PL
C)に対して処理を依頼するときは、図16に示したプ
ログラム状態テーブル102−1の「処理するコード体
系」において書換えられる。
【0100】例えば、図16に示したプログラム状態テ
ーブル102−1において、タグ番号「1」の処理を他
のプログラマブルコントローラ(PLC)に依頼する場
合は、入力データ「A」および「B」と出力データ
「C」を示す部分が「処理するコード体系」の中で書換
えられる。
【0101】図18は、図1に示したプログラマブルコ
ントローラシステムにおける処理の依頼元のプログラマ
ブルコントローラ(PLC)の動作をフローチャートで
示したものである。
【0102】図18において、まず、図1に示したラン
ダムアクセスメモリ(RAM)102に格納されている
処理依頼可能フラグ102−3を調べる(ステップ40
1)。ここで、処理依頼可能フラグ102−3がonの
場合は、自PLCの命令実行時間からネットワーク内の
平均命令実行時間を減算した値を「負荷」として求める
(ステップ402)。
【0103】次に、ステップ402で求めた「負荷」が
大か否かの判断を行う(ステップ403)。この「負
荷」が大か否かの判断は、具体的には、ステップ402
で求めた「負荷」が正か負かを調べることにより行われ
る。
【0104】すなわち、ステップ402で求めた「負
荷」が正の場合は、「負荷」が大と判断し(ステップ4
03でyes)、負の場合は、「負荷」が大でないと判
断する(ステップ403でno)。
【0105】ここで、「負荷」が大でないと判断される
と(ステップ403でno)、このプログラマブルコン
トローラ(PLC)は処理を他のプログラマブルコント
ローラ(PLC)に依頼することなくこの処理を終了す
る。
【0106】また、ステップ403で「負荷」が大と判
断されると、まず「依頼する処理」を「なし」、「オー
バヘッド時間」を「最大」に設定する(ステップ40
4)。次に、プログラム状態テーブル102−1の「ス
テータス」を調べ、このプログラマブルコントローラ
(PLC)が「処理単位」の実行中か否かを調べる(ス
テップ405)。
【0107】ここで、このプログラマブルコントローラ
(PLC)が「処理単位」の実行中以外の場合は後述す
るステップ413に進む。
【0108】また、ステップ405で、このプログラマ
ブルコントローラ(PLC)が「処理単位」の実行中で
ある場合は、時間(time)を“0”にセットし(ス
テップ406)、データが共有データテーブル102−
2に登録されているか否かを調べる(ステップ40
7)。
【0109】ステップ407で、データが共有データテ
ーブル102−2に登録されていない場合は(ステップ
407でno)、共有データテーブル102−2に該当
データを登録し(ステップ408)、時間(time)
にΔtを加算した(ステップ409)後、ステップ41
0に進む。なお、ここで、Δtは1つのデータを共有す
るのにかかるオーバヘッドである。
【0110】また、ステップ407で、データが共有デ
ータテーブル102−2に登録されている場合は(ステ
ップ407でyes)、ステップ408、409の処理
を行うことなく、ステップ410に進む。
【0111】ステップ410では、全ての入出力データ
について繰り返すかを調べ(ステップ410)、全ての
入出力データについて繰り返す場合は(ステップ410
でyes)、ステップ407に戻り、全ての入出力デー
タについて繰り返さない場合は(ステップ410でn
o)、時間(time)とオーバヘッド時間を比較し、
time<オーバヘッド時間が成立するかを調べる(ス
テップ411)。
【0112】ステップ411で、time<オーバヘッ
ド時間が成立すると判断された場合は(ステップ411
でyes)、依頼する処理を該当処理に設定するととも
にオーバヘッド時間を時間(time)に設定し(ステ
ップ412)、ステップ413に進む。
【0113】なお、ステップ411で、time<オー
バヘッド時間が成立しないと判断された場合は(ステッ
プ411でno)、ステップ412の処理を行うことな
くステップ413に進む。
【0114】ステップ413では、処理単位分繰り返す
かを調べ、処理単位分繰り返す場合は(ステップ413
でyes)、ステップ405に戻り、処理単位分繰り返
さない場合は(ステップ413でno)、次に、依頼す
る処理が「なし」を調べる(ステップ414)。ここ
で、依頼する処理が「なし」の場合は(ステップ414
でyes)、処理可能フラグをoffにし(ステップ4
18)、この処理を終了する。
【0115】また、ステップ414で、依頼する処理が
「なし」でないと判断された場合は(ステップ414で
no)、依頼先PLCをネットワーク内で一番負荷の少
ないPLCに設定し(ステップ415)、処理コード本
体の中の入出力に対応するコードを、依頼先PLCに送
信する(ステップ416)。
【0116】そして、プログラム状態テーブル102−
1の「ステータス」を“依頼中”に設定し、この処理を
終了する。
【0117】図19は、図1に示したプログラマブルコ
ントローラシステムにおける処理の依頼先のプログラマ
ブルコントローラ(PLC)の動作をフローチャートで
示したものである。すなわち、処理の依頼先のプログラ
マブルコントローラ(PLC)においては、依頼された
処理をプログラム状態テーブル102−1に登録する
(ステップ421)だけでこの処理を終了する。
【0118】
【発明の効果】以上説明したようにこの発明によれば、
ネットワークを介して複数台のプログラマブルコントロ
ーラを接続して構成したプログラマブルコントローラシ
ステムにおける負荷分散方法において、各プログラマブ
ルコントローラは自己の負荷をそれぞれ算出し、該算出
した負荷に対応して自己の処理の少なくとも一部を他の
プログラマブルコントローラに依頼するように構成した
ので、各プログラマブルコントローラの負荷状態に応じ
て各プログラマブルコントローラの負荷を自動的に分散
制御できるようようにしたプログラマブルコントローラ
システムにおける負荷分散装置および方法を提供するこ
とができるという効果を奏する。
【図面の簡単な説明】
【図1】この発明に係わる負荷分散装置および方法を適
用して構成したプログラマブルコントローラシステムの
一実施例の概略構成を示すブロック図。
【図2】2台のプログラマブルコントローラを高速ネッ
トワークに接続したプログラマブルコントローラシステ
ムを示すブロック図。
【図3】図2に示したプログラマブルコントローラシス
テムにおいて、プログラマブルコントローラ1のラダー
プログラムの実行処理の負荷が非常に大きく、プログラ
マブルコントローラ2のラダープログラムの実行処理の
負荷が非常に小さい場合を示す図。
【図4】図3に示した状態において、処理Aをプログラ
マブルコントローラ1からプログラマブルコントローラ
2に依頼した場合のプログラマブルコントローラ1およ
びプログラマブルコントローラ2による処理プログラム
を示した図。
【図5】複数台のプログラマブルコントローラを高速ネ
ットワークに接続したプログラマブルコントローラシス
テムを示すブロック図。
【図6】この発明による複数台のプログラマブルコント
ローラを高速ネットワークに接続したプログラマブルコ
ントローラシステムにおける動的な負荷分散を可能にす
るための構成を示した図。
【図7】この発明による各プログラマブルコントローラ
(PLC)における処理依頼時の処理を示すフローチャ
ート。
【図8】ラダープログラムにおける分割された処理単位
を示す図。
【図9】ST言語における「逐次実行」の処理単位への
分割を説明する図。
【図10】ST言語における「逐次実行」の分割された
処理単位を示す図。
【図11】ST言語における「判断文」の処理を説明す
る図。
【図12】ST言語における「判断文」の分割された処
理単位を示す図。
【図13】SFCにおける「TRANSITION」の
処理の分割された処理単位を示す図。
【図14】SFCにおける「STEP」内の「ACTI
ON」の処理の分割された処理単位を示す図。
【図15】分割されたプログラムの処理をさらに細分化
する処理を示す図。
【図16】図1に示したプログラム状態テーブルの詳細
を示した図。
【図17】図1に示した共有データテーブルの詳細を示
した図。
【図18】図1に示したこの発明の一実施例おける処理
の依頼元のプログラマブルコントローラ(PLC)の動
作を説明するフローチャート。
【図19】図1に示したこの発明の一実施例おける処理
の依頼先のプログラマブルコントローラ(PLC)の動
作を説明するフローチャート。
【符号の説明】
100−1〜100−n プログラマブルコントロー
ラ(PLC) 101 リードオンリィメモリ(ROM) 102 ランダムアクセスメモリ(RAM) 102−1 プログラム状態テーブル 102−2 共有データテーブル 102−3 処理依頼可能フラグ 103 入出力メモリ(I/Oメモリ) 104 中央演算処理装置(CPU) 105 ネットワークインターフェース(I/F) 106 内部バス 200 ネットワーク 300 ネットワーク内グローバルメモリ
フロントページの続き (56)参考文献 特開 平5−304695(JP,A) 特開 平6−75929(JP,A) 特開 平5−101019(JP,A) 特開 平5−12228(JP,A) 特開 平6−243112(JP,A) 特開 平6−110850(JP,A) 特開 平5−210643(JP,A) 特開 平5−151177(JP,A) 特開 平1−206451(JP,A) (58)調査した分野(Int.Cl.7,DB名) G05B 19/04 - 19/05 G05B 15/02

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 ネットワークを介して複数台のプログラ
    マブルコントローラを接続して構成したプログラマブル
    コントローラシステムにおける負荷分散装置において、 上記各プログラマブルコントローラは、 自己の負荷をそれぞれ算出する負荷算出手段と、 上記負荷算出手段により算出された負荷に対応して自己
    の処理の少なくとも一部を他のプログラマブルコントロ
    ーラに依頼する処理依頼手段と、を具備し、 上記処理依頼手段は、 自己の処理の少なくとも一部を他のプログラマブルコン
    トローラに依頼するに際して該処理の依頼に係わる入力
    および出力を記述するプログラムコードを書換えるプロ
    グラムコード書換手段を 具備することを特徴とする負荷
    分散装置。
  2. 【請求項2】 ネットワークを介して複数台のプログラ
    マブルコントローラを接続して構成したプログラマブル
    コントローラシステムにおける負荷分散装置において、 上記各プログラマブルコントローラは、 分割可能なラダープログラムを実行するとともに、 自己の負荷をそれぞれ算出する負荷算出手段と、 上記負荷算出手段により算出された負荷に対応して自己
    の処理の少なくとも一部を他のプログラマブルコントロ
    ーラに依頼する処理依頼手段と、 上記分割された処理単位でのラダープログラムを管理す
    るプログラム状態テーブルと、 を具備し、 上記複数台のプログラマブルコントローラは、 上記複数台のプログラマブルコントローラで共有するデ
    ータを管理する共有データテーブルを具備し、 上記処理依頼手段は、 自己の処理の少なくとも一部を他のプログラマブルコン
    トローラに依頼するに際して分割された上記ラダープロ
    グラムの一部の処理を他のプログラマブルコントローラ
    に依頼し、 上記各プログラマブルコントローラにおける実際の処理
    は上記プログラム状態テーブルを参照して実行し、 上記処理依頼手段における処理の依頼は上記共有データ
    テーブルを参照して実行することを特徴とする負荷分散
    装置。
  3. 【請求項3】 上記プログラム状態テーブルは、 各処理単位で各処理を識別するための識別情報、 各処理単位に対して、該処理単位が実行中であるか、該
    処理単位が他のプログラマブルコントローラに対して依
    頼中であるか、該処理単位が他のプログラマブルコント
    ローラから依頼中であるかを示すステータス情報、 各処理単位が必要とする入力データを示す入力データ情
    報、 各処理単位が必要とする出力データを示す出力データ情
    報、 各処理単位における実際の処理の内容を記述するコード
    情報、 を格納することを特徴とする請求項2記載の負荷分散装
    置。
  4. 【請求項4】 上記共有データテーブルは、 上記複数台のプログラマブルコントローラで共有するデ
    ータ、 上記共有するデータのアドレス、 上記共有するデータを利用している処理を識別するため
    の識別情報を格納することを特徴とする請求項2記載の
    負荷分散装置。
  5. 【請求項5】 ネットワークを介して複数台のプログラ
    マブルコントローラを接続して構成したプログラマブル
    コントローラシステムにおける負荷分散装置において、 上記複数台のプログラマブルコントローラで共有される
    共有記憶手段が設けられ、 上記共有記憶手段は、 各プログラマブルコントローラの命令実行時間、 全てのプログラマブルコントローラの平均命令実行時
    間、 負荷が最小のプログラマブルコントローラを記憶し、 上記各プログラマブルコントローラは、 自己の負荷をそれぞれ算出する負荷算出手段と、 上記負荷算出手段により算出された負荷に対応して自己
    の処理の少なくとも一部を他のプログラマブルコントロ
    ーラに依頼する処理依頼手段と、 を具備し、 上記処理依頼手段は、 上記処理の依頼に際して上記共有記憶手段に記憶された
    負荷が最小のプログラマブルコントローラを処理依頼先
    プログラマブルコントローラとして選択することを特徴
    とする負荷分散装置。
  6. 【請求項6】 ネットワークを介して複数台のプログラ
    マブルコントローラを接続して構成したプログラマブル
    コントローラシステムにおける負荷分散方法において、 上記各プログラマブルコントローラは、 自己の負荷を算出し、 該算出した負荷が大きい場合には、自己の処理の少なく
    とも一部を負荷が小さい他のプログラマブルコントロー
    ラに依頼するとともに、この依頼に際してこの依頼に係
    わる入力および出力を記述するプログラムコードを依頼
    先のプログラマブルコントローラに送信することを特徴
    とする負荷分散方法。
  7. 【請求項7】 ネットワークを介して複数台のプログラ
    マブルコントローラを接続して構成したプログラマブル
    コントローラシステムにおける負荷分散方法において、 上記複数台のプログラマブルコントローラ間で、各プロ
    グラマブルコントローラの命令実行時間、全てのプログ
    ラマブルコントローラの平均命令実行時間、負荷が最小
    のプログラマブルコントローラを共有して記憶し、 上記各プログラマブルコントローラは、分割可能なラダ
    ープログラムを実行するとともに、自己の負荷をそれぞ
    れ算出し、該算出した負荷に対応して自己の処理の少な
    くとも一部を他のプログラマブルコントローラに依頼
    し、 上記処理の依頼は、分割された上記ラダープログラムの
    一部の処理を、上記共有して記憶された負荷が最小のプ
    ログラマブルコントローラに依頼することにより行われ
    ることを特徴とする負荷分散方法。
JP24751795A 1995-09-26 1995-09-26 負荷分散装置および方法 Expired - Fee Related JP3368370B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24751795A JP3368370B2 (ja) 1995-09-26 1995-09-26 負荷分散装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24751795A JP3368370B2 (ja) 1995-09-26 1995-09-26 負荷分散装置および方法

Publications (2)

Publication Number Publication Date
JPH0991011A JPH0991011A (ja) 1997-04-04
JP3368370B2 true JP3368370B2 (ja) 2003-01-20

Family

ID=17164669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24751795A Expired - Fee Related JP3368370B2 (ja) 1995-09-26 1995-09-26 負荷分散装置および方法

Country Status (1)

Country Link
JP (1) JP3368370B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1231526A4 (en) * 1999-10-15 2009-04-29 Omron Tateisi Electronics Co NETWORK DEVICE, CONTROL METHOD, CONTROL DEVICE, AND MULTIPLE PROCESSOR ARRANGEMENT
WO2007110953A1 (ja) * 2006-03-29 2007-10-04 Mitsubishi Denki Kabushiki Kaisha プログラム作成支援装置、プログラム作成支援方法とその方法をコンピュータに実行させるプログラムおよびそれを記録した記録媒体
JP2012118715A (ja) * 2010-11-30 2012-06-21 Fuji Electric Co Ltd Plcシステム、その開発支援装置、プログラム
JP5752087B2 (ja) * 2012-05-24 2015-07-22 三菱電機株式会社 制御装置、データ出力制御ユニット、データ入力制御ユニット、および制御ユニット
JP6517474B2 (ja) * 2014-05-12 2019-05-22 株式会社東芝 プログラマブルコントローラ、及び演算処理システム
JP6563187B2 (ja) * 2014-11-12 2019-08-21 株式会社東芝 分散制御システム、制御装置及び制御方法
WO2017141332A1 (ja) * 2016-02-15 2017-08-24 三菱電機株式会社 負荷分散装置

Also Published As

Publication number Publication date
JPH0991011A (ja) 1997-04-04

Similar Documents

Publication Publication Date Title
Müller et al. Cyber-physical production systems: enhancement with a self-organized reconfiguration management
RU2487388C2 (ru) Исполнительный механизм для систем hvac и способ его функционирования
US5032975A (en) Controller for automatic assembling apparatus
CN103593242B (zh) 基于Yarn框架的资源共享控制***
JP3737650B2 (ja) 統合コントローラ及び制御システム
US20040230322A1 (en) Control system and method for on-line editing of user program
WO2012124197A1 (ja) 制御装置およびシステムプログラムならびに記録媒体
JP3368370B2 (ja) 負荷分散装置および方法
CN106062649A (zh) 控制装置及控制***
JP6881256B2 (ja) 制御装置、制御方法、およびプログラム
CN117311990B (zh) 资源调整方法、装置、电子设备、存储介质及训练平台
EP0766156A1 (en) Programmable logic controller
WO2020075351A1 (ja) コントロール装置
US11740809B2 (en) Method for configuring a memory unit of a computing unit
CN111052010A (zh) 控制***、开发辅助装置和开发辅助程序
JPS63273101A (ja) プログラマブル・コントロ−ラ
JPH1139018A (ja) 制御システム
EP4036670A1 (en) Control device
CN101449221A (zh) 允许过程控制***中的非确定性执行的***和方法
Li et al. Improved net rewriting system-based approach to model reconfiguration of reconfigurable manufacturing systems
US20140222170A1 (en) PLC Functional Modules for Energy Management Functionalities
US7337028B2 (en) Method for the organization of a process having at least one processing device for carrying out a predefinable subprocess
WO2022049885A1 (ja) 制御装置
US20220299967A1 (en) Queue blocks for flexible automation engineering programs
EP1076275A2 (en) Distributed real-time operating system

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021002

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071115

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081115

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091115

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101115

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111115

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121115

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131115

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees