(57)【要約】【課題】ＰＬＣの親局がネットワーク上の複数子局と授受する入出力データを子局別に格納する親局メモリを持ち、伝送時間Ｔ２毎に各子局と順番に交信し、バスを介し親局と交信するＰＬＣのＣＰＵが、演算周期Ｔ１毎に次回受信子局番号Ｑｉで前回指定した親局メモリ内の子局ブロックの入力データを受信してシーケンス演算を行い、この演算結果で得られ出力送信先子局番号Ｐｏで指定する子局ブロックの出力データを親局メモリ内の当該領域に送信格納させる制御システムにて、ＣＰＵが親局を介し常時、子局から最新入力データを得てシーケンス演算を行い、その演算結果の出力データを遅滞なく子局に送るようにする。【解決手段】ＣＰＵが各演算周期Ｔ１毎に親局から交信中子局番号Ｐを受信して、親局との交信順番が番号Ｐの子局より早い直近の子局を含む子局ブロックを推定し番号Ｑｉで、親局との交信順番が番号Ｐの子局より遅い直近の子局を含む子局ブロックを推定し番号Ｐｏで指定する。【選択図】        図１
2006221342.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワーク上に配置されて、それぞれ制御対象機器側とオンオフ情報からなる入力データおよび出力データを授受する複数台の通信端末（以下子局という）と、
前記子局ごとの入力データおよび出力データを格納すべき記憶手段としての親局メモリを持ち、前記通信ネットワークを介し前記子局と交信するネットワーク通信部（以下親局という）、及び同じく前記子局ごとの少なくとも入力データを格納すべき記憶手段としてのＣＰＵメモリを持ち、内部バスを介し前記親局と交信しながらこのシステムのシーケンス制御を行うＣＰＵからなるプログラマブルコントローラとを備えたネットワーク伝送型シーケンス制御システムであって、
前記親局が、子局単位伝送時間ごとに前記子局を所定の順番で１台ずつ指定し、当該子局が制御対象機器側から得た前記入力データを受信して前記親局メモリの当該子局の領域に格納すると共に、前記親局メモリの当該子局の領域に格納されている出力データを当該子局が制御対象機器側へ与えるべき前記出力データとして当該子局へ送信することを全子局について繰り返し、さらにこの全子局との交信動作を所定のネットワーク伝送周期ごとに繰り返し、
前記ＣＰＵが、所定のシーケンス演算周期ごとに前記親局から、前記の全子局を前記の順番で１または所定の複数台ずつの子局群に分割してなる子局ブロックのうち、第１の指定番号で特定される子局ブロックについての前記親局メモリの当該子局ブロックの領域に格納された入力データを受信して前記ＣＰＵメモリの当該子局ブロックの領域に格納し、
この格納後のＣＰＵメモリ内の全子局の入力データを基に所定のシーケンス演算を行い、第２の指定番号で特定される子局ブロックについての、該シーケンス演算の結果として得られる出力データを前記親局に送信して前記親局メモリの当該子局ブロックの領域に格納させるようなネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが前記シーケンス演算周期ごとに、前記親局から現に親局が交信中である相手の子局の番号としての交信中子局番号を受信し、前記親局との交信の順番が前記交信中子局番号の子局より早く且つ該子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第１の指定番号とし、
同じく前記親局との交信の順番が前記交信中子局番号の子局より遅く且つ該子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第２の指定番号とし、この推定した第１、第２の指定番号を前記親局に送信することを特徴とするネットワーク伝送型シーケンス制御システム。
【請求項２】
請求項１に記載のネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが、前記の交信中子局番号、子局ブロックを構成する子局の数を少なくとも用いた所定の演算により、前記第１の指定番号を推定することを特徴とするネットワーク伝送型シーケンス制御システム。
【請求項３】
請求項１または２に記載のネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが、前記の交信中子局番号、子局ブロックを構成する子局の数、シーケンス演算周期、子局単位伝送時間を用いた所定の演算により、前記第２の指定番号を推定することを特徴とするネットワーク伝送型シーケンス制御システム。
【請求項４】
前記シーケンス演算周期が、前記子局単位伝送時間と前記子局ブロックを構成する子局の数との積の時間以下であるようにしたことを特徴とする請求項１ないし３のいずれかに記載のネットワーク伝送型シーケンス制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルコントローラ（以下ＰＬＣという）に設けられた親局としてのネットワーク通信部が、通信ネットワーク上に配置された、それぞれ制御対象機器側とオンオフ情報からなる入力データおよび出力データを授受する複数台の子局としての通信端末と子局単位伝送時間ごとに通信ネットワークを介し１台ずつ順番に交信し、そのつど当該子局から上記入力データを受信して、自身が持つ親局メモリに格納すると共に、親局メモリ内の当該子局宛ての出力データを制御対象機器側への上記出力データとして当該子局へ送信し、
ＰＬＣのＣＰＵが、シーケンス演算周期ごとに内部バスを介し親局から親局メモリ内の指定した子局ブロックの入力データを受信してシーケンス演算を行い、この演算結果として得られる出力データのうち、指定した子局ブロックの出力データを親局に送信して親局メモリに格納させることを繰り返し、このシステムを制御するネットワーク伝送型シーケンス制御システムであって、
特に、子局からの入力データがＣＰＵのシーケンス演算に反映するまでの遅れ時間や、ＣＰＵのシーケンス演算結果としての出力データが子局の制御対象機器側への出力に反映するまでの遅れ時間の、子局相互間でのバラツキや遅れ時間自体を極力縮小することができる機能を備えたネットワーク伝送型シーケンス制御システムに関する。
【０００２】
なお、以下各図において同一の符号は同一もしくは相当部分を示す。
【背景技術】
【０００３】
プログラマブルコントローラ（ＰＬＣ）は、シーケンスプログラムを演算実行してＰＬＣに接続される制御対象機器の自動シーケンス制御を行う装置として知られている。そして、制御対象機器が遠隔にあって、制御対象機器と直接、制御用の入出力データを授受するデータ入出力端をＰＬＣから離れた場所に多数設ける必要がある場合、各データ入出力端を通信ネットワークで結び、ＰＬＣがこのネットワーク上の伝送によって遠隔の制御対象機器のシーケンス制御を行うことも一般化している。
図６はこの種の通信ネットワークを用いたシーケンス制御システムの要部の構成例を示す。同図において、０１はＰＬＣ、１はＰＬＣ０１内に設けられ、図６のシステムの制御の主体となるＣＰＵ、２は同じくＰＬＣ０１内に設けられ、ＣＰＵ１と内部バスとしてのＰＬＣバス６で結合されると共に、通信ネットワーク７を介し遠隔地点に散在する子局としての各通信端末３（なお以下、個々の通信端末を区別するときは子局＃１，＃２，・・・，＃ｎと呼ぶ）と結合されたネットワーク通信部（以下、親局ともいう）である。
【０００４】
なお、このネットワーク通信部２はネットワークの各種の通信方式（例えば、ＲＳ２３２Ｃ、ＲＳ４８５、Ｅｔｈｅｒｎｅｔ（登録商標）等）に対応して設けられている。
４は各通信端末３と対で設けられ、図外の制御対象機器側から直接、ＣＰＵ１へ送るべき、センサ，スイッチ等のオン／オフ情報としての入力データ４ｉを取り込んだり、ＣＰＵ１から送られた、マグネット，リレー等をオン／オフすべき情報としての出力データ４ｏを制御対象機器側へ直接、送出したりするＩ／Ｏ機器（なお以下、個々のＩ／Ｏ機器を区別するときはＩ／Ｏ＃１，＃２，・・・，＃ｎと呼ぶ）である。
ネットワーク通信部２は親局として、子局となる各通信端末３の１局ずつと順番にネットワーク伝送によって交信し、そのつど当該の通信端末（子局）３から、対応するＩ／Ｏ機器４が取り込んだ入力データ４ｉを収集受信すると共に、ＣＰＵ１から受信した当該のＩ／Ｏ機器４へ出力させる出力データ４ｏを、当該の通信端末（子局）３へ送信配布することを繰り返す。
【０００５】
ＣＰＵ１は、ＰＬＣバス６を介し親局２が子局３から収集した入力データ４ｉを受信してシーケンス演算を行い、その演算結果である出力データ４ｏをＰＬＣバス６を介し親局２へ送信して通信端末（子局）３へ配布させる。
子局３の数や各子局３と親局２との間で送受信されるデータが多い場合、ＣＰＵ１と親局２との受渡しデータも増えて、全ての子局３と授受すべき入出力データをＣＰＵ１が親局２と一括しては受渡しできなくなるので、全子局を所定台数の子局からなる子局ブロックに分け、ＣＰＵ１と親局２が全子局分の入出力データをこの子局ブロックずつの分割データに分けて授受する方法が取られる。
ところで、親局２が各子局３と１局ずつ順番に交信して各当該の子局３と入出力データの授受を済ます１子局分の伝送時間としての子局単位伝送時間Ｔ２や、全子局分の伝送時間としてのネットワーク伝送周期ＴＮは、ネットワーク伝送のプロトコルに大きく依存している。このため、子局単位伝送時間Ｔ２と、親局が後述の親局メモリに保持する子局との入出力データをＰＬＣのＣＰＵ１が親局２と授受するたびに実行するシーケンス演算の周期Ｔ１とは、異なるのが一般である。
【０００６】
ＣＰＵ１と親局２が、それぞれシーケンス演算周期Ｔ１と子局単位伝送時間Ｔ２で、それぞれの処理を実行するために、ＣＰＵ１と親局２はそれぞれ、各自にとって最新の子局３との入出力データを記憶するＣＰＵメモリＭ１とネットワーク通信部メモリ（親局メモリとも呼ぶ）Ｍ２を持つようにしている。
図７は、ＣＰＵメモリＭ１とネットワーク通信部メモリ（親局メモリ）Ｍ２の内容、およびＣＰＵ１と親局２が受け渡すデータについての説明図である。同図に示すようにＣＰＵメモリＭ１および親局メモリＭ２には、それぞれ各子局２である子局＃１〜＃ｎからの入力データ４ｉを記憶するＣＰＵ入力メモリＭ１ｉおよび親局入力メモリＭ２ｉの領域と、各子局＃１〜＃ｎ宛ての出力データ４ｏを記憶するＣＰＵ出力メモリＭ１ｏおよび親局出力メモリＭ２ｏの領域が設けられ、さらに、ＣＰＵ出力メモリＭ１ｏおよび親局出力メモリＭ２ｏにはそれぞれ次回受信子局番号Ｑｉと出力送信先子局番号Ｐｏの格納領域が付加されている。
【０００７】
ここで、次回受信子局番号ＱｉはＣＰＵ１が次回のシーケンス演算周期Ｔ１において親局２から受信しようとする分割データの入力データ４ｉに関わる子局ブロックの先頭子局の番号であり、出力送信先子局番号ＰｏはＣＰＵ１が今回のシーケンス演算周期Ｔ１において親局２ヘ送信する分割データの出力データ４ｏに関わる子局ブロックの先頭子局の番号である。
図８は図６のシーケンス制御システムにおけるＰＬＣ０１の従来の交信動作の一例を示すタイムチャートで、同図ａ）は、親局２がネットワーク伝送周期ＴＮ（ＴＮ０，ＴＮ１，ＴＮ２，・・・）毎に、通信ネットワーク７を介し＃１〜＃ｎの各子局３との間で入力データ４ｉおよび出力データ４ｏを授受する流れの例を示し、同図のｂ）は、同図ａ）の親局２のネットワーク伝送と並行し、ＣＰＵ１がシーケンス演算周期Ｔ１（Ｔ１１，Ｔ１２，・・・，Ｔ１（ｎ／２））毎に、ＰＬＣバス６を介し親局２との間で分割データの入力データ４ｉおよび出力データ４ｏ授受しながらシーケンス演算を繰り返す流れの例を示す。
【０００８】
本例では子局３は＃１から＃ｎまでの偶数ｎ台からなるものとし、このｎ台の子局を（＃１と＃２）、（＃２と＃３）、・・・、（＃ｎ−１と＃ｎ）というように２台ずつの子局ブロックに分け、ＣＰＵ１は親局２との間でこの子局ブロック分ずつの入力データ４ｉおよび出力データ４ｏを分割データとして授受するものとする。
図７を参照しつつ図８を説明すると、ネットワーク通信部（親局）２は、通信端末３としての子局＃１，＃２，・・・，＃ｎを順番に指定し、この指定のつど、子局単位伝送時間Ｔ２１，Ｔ２２，・・・，Ｔ２ｎにおいて、それぞれ指定した子局＃１，＃２，・・・，＃ｎと出力データ４ｏおよび入力データ４ｉの授受を行い、こうして全子局＃１〜＃ｎと交信を行う動作を、ネットワーク伝送周期ＴＮごとに繰り返す。
このときの親局２と指定子局３との交信においては、親局は親局出力メモリＭ２ｏ内の当該子局の領域のデータを読み出し、出力データ４ｏとして当該子局へ送信すると共に、当該子局からその入力データ４ｉを受信して親局入力メモリＭ２ｉ内の当該子局の入力データの領域に格納する。
【０００９】
また、親局２は次に述べるＣＰＵ１のシーケンス演算周期Ｔ１ごとの、ＣＰＵ１との交信において、前回の交信でＣＰＵ１から次回受信子局番号Ｑｉによって先頭子局番号を指定されている子局ブロックの入力データ４ｉを親局入力メモリＭ２ｉから取り出してＣＰＵ１へ転送し、ＣＰＵ１から出力送信先子局番号Ｐｏと共に送信される子局ブロック分の出力データ４ｏを、親局出力メモリＭ２ｏの先頭子局番号をＰｏとする子局ブロックの領域に格納する。
他方、ＣＰＵ１は、シーケンス演算周期Ｔ１ごとに親局２から、前回のシーケンス演算周期において次回受信子局番号Ｑｉによって先頭子局番号を指定した子局ブロックの入力データ４ｉを受信してＣＰＵ入力メモリＭ１ｉの該当領域に書き込み、ＣＰＵ入力メモリＭ１ｉの入力データを更新する。
【００１０】
そして、更新後のＣＰＵ入力メモリＭ１ｉ内の全子局＃１〜＃ｎの入力データを基にシーケンスプログラムを演算し、その演算結果として得られる全子局＃１〜＃ｎの出力データをそれぞれＣＰＵ出力メモリＭ１ｏ内の該当する子局の領域に格納してＣＰＵ出力メモリＭ１ｏを更新する。
そしてこの更新と共に、再び次回受信子局番号Ｑｉ、出力送信先子局番号Ｐｏ、およびＣＰＵ出力メモリＭ１ｏ内の子局番号Ｐｏを先頭子局番号とする子局ブロックの出力データ４ｏを親局２へ送信する。
ここで、ＣＰＵ１はシーケンス演算周期Ｔ１毎に、次回受信子局番号Ｑｉおよび出力送信先子局番号Ｐｏを予め定められた順番に指定する。即ち、本例では次回受信子局番号Ｑｉとしての子局ブロックの先頭子局番号を子局＃１，＃３，・・・，＃ｎ−１の順番に指定することを繰り返し、当該のシーケンス演算周期Ｔ１における出力送信先子局番号Ｐｏをその前回のシーケンス演算周期Ｔ１で指定した次回受信子局番号Ｑｉと等しく指定する。
【００１１】
例えば、シーケンス演算周期Ｔ１１においては、ＣＰＵ１は、その前回のシーケンス演算周期Ｔ１（図外）で次回受信子局番号Ｑｉを子局＃１に指定することにより、親局２から子局＃１と＃２の子局ブロックの入力データ４ｉを受信してＣＰＵ入力メモリＭ１ｉを更新し、更新後のＣＰＵ入力メモリＭ１ｉ内の全子局＃１〜＃ｎの入力データを用いてシーケンス演算を行う。
そして、この演算結果である全子局＃１〜＃ｎの出力データでＣＰＵ出力メモリＭ１ｏを更新し、更新したＣＰＵ出力メモリＭ１ｏ内のデータのうち、子局＃１と＃２の子局ブロックの出力データ４ｏと子局＃１を指定する出力送信先子局番号Ｐｏを、子局＃３を指定する次回受信子局番号Ｑｉと共に親局２へ送信する。
次のシーケンス演算周期Ｔ１２においては、ＣＰＵ１と親局２が入出力データ４ｉ，４ｏを授受する子局ブロックは子局＃３と＃４からなる子局ブロックとなり、出力送信先子局番号Ｐｏは＃３、次回受信子局番号Ｑｉは＃５となる。
【００１２】
以下同様にして、シーケンス演算周期Ｔ１（ｎ／２）においては、ＣＰＵ１と親局２が入出力データ４ｉ，４ｏを授受する子局ブロックは子局＃ｎ−１と＃ｎからなる子局ブロックとなり、出力送信先子局番号Ｐｏは＃ｎ−１、次回受信子局番号Ｑｉは＃１となる。
なお、特許文献１には、制御対象機器の状態を示すデータを制御対象機器から取得し、その取得したデータに基づいて制御対象機器の制御を行う上位階層監視制御装置、下位階層監視制御装置の群および末端制御装置と、これら監視制御装置群および末端制御装置を監視制御内容に応じた階層構成により接続する多重系の通信路を用いた通信ネットワークとから構築された監視制御システムにおいて、各監視制御装置および各末端制御装置とデータの送受信を行う通信手段と、データを分割し通信手段を介して全送信路に送信すると共に、分割して送信されたデータを通信手段を介して受信し再生、認識する通信制御手段とを備えて通信路の通信負荷を削減し、応答性を向上させる監視制御システムが開示されている。
【特許文献１】特開２００２―２４７０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、図８の例えばシーケンス演算周期Ｔ１１に着目すると、ＣＰＵ１はネットワーク伝送周期ＴＮ０において親局２が子局＃１と＃２から受信した入力データ４ｉを親局２から受け取って自身が持つＣＰＵ入力メモリＭ１ｉの入力データを更新し、この更新後のメモリＭ１ｉの全入力データを用いたシーケンス演算結果から得られる子局＃１と＃２への出力データ４ｏを親局２へ送ることで、この出力データ４ｏはシーケンス演算周期Ｔ１１に直ちに続く子局単位伝送時間Ｔ２１、Ｔ２２において、親局２からそれぞれ子局＃１と＃２に送信される（実線矢印イ参照）。
次に図８の例えばシーケンス演算周期Ｔ１４に着目すると、ＣＰＵ１は同じくネットワーク伝送周期ＴＮ０において親局２が子局＃７と＃８から受信した入力データ４ｉを親局２から受け取ってＣＰＵ入力メモリＭ１ｉの入力データを更新し、この更新後のメモリＭ１ｉの全入力データを用いたシーケンス演算結果から得られる子局＃７と＃８への出力データ４ｏを親局２へ送るが、この出力データ４ｏはシーケンス演算周期Ｔ１４から子局単位伝送時間Ｔ２６を置いた子局単位伝送時間Ｔ２７、Ｔ２８において、親局２からそれぞれ子局＃７と＃８に送信される（実線矢印ロ参照）。
【００１４】
図示していないが同様に、親局２が子局３から受信した入力データ４ｉが、ＣＰＵ１に送信されてＣＰＵ入力メモリＭ１ｉの入力データの更新に、つまりＣＰＵ１のシーケンス演算に反映されるまでの時間についても、子局毎に、また時間の経過に応じて変化があることが推定できる。
この種のシーケンス制御システムの場合、子局が親局側へ入力データ４ｉを送信したのち、この入力データ４ｉがＣＰＵのシーケンス演算に反映して得られる出力データ４ｏを親局側から受信するまでの時間は、ほぼネットワーク伝送周期ＴＮに固定されており、またシーケンス演算周期Ｔ１と、ネットワーク伝送周期ＴＮ、従って子局単位伝送時間Ｔ２との大きさや位相の間には、本来、一定の関係（例えば図８の例では、シーケンス演算周期Ｔ１が子局単位伝送時間Ｔ２の２倍に等しく、且つ演算周期Ｔ１と（伝送時間Ｔ２）×２が同期するというような関係）は存在しない。
【００１５】
このため、上記の説明から分かるように従来のシーケンス制御システムには次のような問題があり、これがシステムの制御のバラツキや応答速度の低下に結びついている。
（ａ）子局が親局側へ送信した入力データ４ｉがＣＰＵのシーケンス演算に、従って少なくとも他の子局の出力データの算出に反映してシステムの制御に役立つまでの遅れ時間の子局相互間でのバラツキが大きく、且つこのバラツキが時間によって変化する。
（ｂ）ＣＰＵのシーケンス演算後、その結果として得られる子局への出力データが親局を経て当該子局に送信されシステムの制御に役立つまでの遅れ時間の子局相互間でのバラツキが大きく、且つこのバラツキが時間によって変化する。
本発明はこの問題を解消し、本来は同期性のない子局単位伝送時間Ｔ２、従ってネットワーク伝送周期ＴＮとシーケンス演算周期Ｔ１とを持つシーケンス制御システムでありながら、子局からの入力データがＣＰＵのシーケンス演算に反映するまでの遅れ時間や、ＣＰＵのシーケンス演算結果として得られる出力データが子局から制御対象機器側への出力に反映するまでの遅れ時間の子局相互間でのバラツキを少なく、且つこの遅れ時間を極力短縮してシーケンス制御システムの制御のバラツキを無くし且つ応答速度を向上することができるネットワーク伝送型シーケンス制御システムを提供することを課題とする。
【課題を解決するための手段】
【００１６】
前記の課題を解決するために請求項１のネットワーク伝送型シーケンス制御システムでは、
通信ネットワーク（７）上に配置されて、それぞれ（Ｉ／Ｏ機器４を介し）制御対象機器側とオンオフ情報からなる入力データ（４ｉ）および出力データ（４ｏ）を授受する複数台の通信端末（３、以下子局という）と、
前記子局ごとの入力データおよび出力データを格納すべき記憶手段としての親局メモリ（Ｍ２）を持ち、前記通信ネットワークを介し前記子局と交信するネットワーク通信部（２、以下親局という）、及び
同じく前記子局ごとの少なくとも入力データを格納すべき記憶手段としてのＣＰＵメモリ（Ｍ１）を持ち、内部バス（ＰＬＣバス６）を介し前記親局と交信しながらこのシステムのシーケンス制御を行うＣＰＵ（１）からなるプログラマブルコントローラ（０１）とを備えたネットワーク伝送型シーケンス制御システムであって、
前記親局が、子局単位伝送時間（Ｔ２）ごとに前記子局を（＃１，＃２，・・・，＃ｎのような）所定の順番で１台ずつ指定し、当該子局が制御対象機器側から得た前記入力データを受信して前記親局メモリの（入力データ領域Ｍ２ｉなどの）当該子局の領域に格納すると共に、前記親局メモリの（出力データ領域Ｍ２ｏなどの）当該子局の領域に格納されている出力データを当該子局が制御対象機器側へ与えるべき前記出力データとして当該子局へ送信することを全子局について繰り返し、さらにこの全子局との交信動作を所定のネットワーク伝送周期（ＴＮ）ごとに繰り返し、
前記ＣＰＵが、所定のシーケンス演算周期（Ｔ１）ごとに前記親局から、前記の全子局を前記の順番で１または所定の複数台（としての分割データ子局数β）ずつの子局群に分割してなる子局ブロックのうち、第１の指定番号（次回受信子局番号Ｑｉなど）で特定される子局ブロックについての前記親局メモリの当該子局ブロックの領域に格納された入力データを受信して前記ＣＰＵメモリの（入力データ領域Ｍ１ｉなどの）当該子局ブロックの領域に格納し、
この格納後のＣＰＵメモリ内の全子局の入力データを基に所定のシーケンス演算を行い、第２の指定番号（出力送信先子局番号Ｐｏなど）で特定される子局ブロックについての、該シーケンス演算の結果として得られる出力データを前記親局に送信して前記親局メモリの当該子局ブロックの領域に格納させるようなネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが前記シーケンス演算周期ごとに、前記親局から現に親局が交信中である相手の子局の番号としての交信中子局番号（Ｐ）を受信し、前記親局との交信の順番が前記交信中子局番号の子局より早く且つ該子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第１の指定番号とし、
同じく前記親局との交信の順番が前記交信中子局番号の子局より遅く且つ該子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第２の指定番号とし、この推定した第１、第２の指定番号を前記親局に送信するようにする。
【００１７】
また、請求項２のネットワーク伝送型シーケンス制御システムでは、請求項１に記載のネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが、前記の交信中子局番号、子局ブロックを構成する子局の数を少なくとも用いた所定の演算により、前記第１の指定番号を推定するようにする。
また、請求項３のネットワーク伝送型シーケンス制御システムでは、請求項１または２に記載のネットワーク伝送型シーケンス制御システムにおいて、
前記ＣＰＵが、前記の交信中子局番号、子局ブロックを構成する子局の数、シーケンス演算周期、子局単位伝送時間を用いた所定の演算により、前記第２の指定番号を推定するようにする。
また、請求項４のネットワーク伝送型シーケンス制御システムでは、請求項１ないし３のいずれかに記載のネットワーク伝送型シーケンス制御システムにおいて、
前記シーケンス演算周期が、前記子局単位伝送時間と前記子局ブロックを構成する子局の数との積の時間以下であるようにする。
【００１８】
本発明の作用は、ＰＬＣ内の親局２が、通信ネットワーク７上に配置された複数の子局３を経て制御対象機器側と交わすオンオフ情報からなる入出力データを子局別に格納する親局メモリＭ２を持ち、子局単位伝送時間Ｔ２ごとに子局１台ずつと順番に交信してこの入出力データを授受し、ＰＬＣ内のＣＰＵ１が、全子局からの入力データを格納するＣＰＵメモリを持ち、シーケンス演算周期Ｔ１ごとに第１の指定番号で特定される親局メモリＭ２内の子局ブロックの入力データを親局２から受信してＣＰＵメモリＭ１内の入力データを更新し、この更新入力データを用いたシーケンス演算の結果として得られる出力データのうち、第２の指定番号で特定される子局ブロック宛ての出力データを親局２へ送信して親局メモリＭ２内の当該子局ブロックの領域に格納させることを繰り返してシステムを制御するシーケンス制御システムにおいて、
ＣＰＵ１が、各シーケンス演算周期Ｔ１ごとに親局２から、現に親局が交信中の子局の番号Ｐを受信して、親局との交信の順番がこの子局番号Ｐの子局より早く且つこの子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第１の指定番号とし、親局との交信の順番がこの子局番号Ｐの子局より遅く且つこの子局の順番に極力近い順番の子局を含む子局ブロックを特定する番号を推定して前記第２の指定番号とし、この第１、第２の指定番号を親局へ送信するようにして、ＣＰＵ１が常時、親局を通じ、親局が子局から受信した最新の入力データを入手してシーケンス演算を行い、その演算結果としての出力データを遅滞なく親局から子局に送信させるようにしたものである。
【００１９】
なお、子局ブロックを特定する前記第１および第２の指定番号は、本例では当該子局ブロックの先頭子局の番号を示す次回受信子局番号Ｑｉおよび出力送信先子局番号Ｐｏに相当し、交信中子局番号Ｐの値、分割データ子局数β、あるいはさらにシーケンス演算周期Ｔ１、子局単位伝送時間Ｔ２を用いて推定される。
【発明の効果】
【００２０】
本発明によれば、ＰＬＣ内の親局が、通信ネットワーク上に配置された複数の子局を経て制御対象機器側と交わすオンオフ情報からなる入出力データを子局別に格納する親局メモリを持ち、子局単位伝送時間ごとに子局１台ずつと順番に交信してこの入出力データを授受し、
ＰＬＣ内のＣＰＵがＰＬＣバスを介し親局との間で、シーケンス演算周期ごとに親局メモリ内のそれぞれ指定した子局ブロックの入力データおよび出力データを受信および送信しながらシーケンス演算を繰り返してシステムを制御するネットワーク伝送型シーケンス制御システムにおいて、
ＣＰＵが、シーケンス演算周期ごとに、親局が現に交信中の相手子局の番号としての交信中子局番号を親局から受信することにより、親局が子局側から受信して親局メモリに直近に入力データを格納した子局ブロックを推定し、当該入力データを親局から受信してシーケンス演算を行い、この演算結果として得られる出力データのうち、当該のシーケンス演算後に直近に親局が子局側へ出力データを送信できる子局ブロックを推定して当該出力データを親局へ送信し、親局メモリの当該子局ブロック領域に格納させるようにしたので、
ＣＰＵ１が常時、親局を通じ、親局が子局側から受信した新鮮な入力データを入手してシーケンス演算を行い、その演算結果として得られる出力データを遅滞なく子局側に送信させることができる。
【００２１】
こうして、子局からの入力データがＣＰＵのシーケンス演算に反映するまでの遅れ時間や、ＣＰＵのシーケンス演算結果としての出力データが子局の制御対象機器側への出力に反映するまでの遅れ時間の、子局相互間でのバラツキや遅れ時間自体を極力縮小することができ、これにより、制御のバラツキや制御応答の遅れを減ずることができると同時に通信ネットワークを利用するシーケンス制御システムの構築が容易となり、通信ネットワーク適用の分野も広がる。
【発明を実施するための最良の形態】
【００２２】
以下、図１ないし図５を使って本発明を説明する。なお、本発明においても図６のＰＬＣ０１を中心とするシーケンス制御システムの構成は同様にあてはまる。
図３は、本発明の一実施例としてのＣＰＵメモリＭ１およびネットワーク通信部メモリ（親局メモリ）Ｍ２の内容およびＣＰＵ１と親局２とが授受するデータについての説明図で、図７に対応するものである。
図３の図７との相違は、ネットワーク通信部（親局）入力メモリＭ２ｉおよびＣＰＵ入力メモリＭ１ｉ内にそれぞれ親局２が現在交信中である子局の番号としての交信中子局番号Ｐの格納領域を新設し、ＣＰＵ１が各シーケンス演算周期Ｔ１において親局２からこの交信中子局番号Ｐを受信して、（本例ではアプリケーション処理の際に行う）図４と図５で述べる処理＃１と＃２により、それぞれ次回受信子局番号Ｑｉと出力送信先子局番号Ｐｏを決定し、親局２に指示するようにした点である。
【００２３】
ここで、親局２は交信対象の子局が切り換わる子局単位伝送時間Ｔ２毎に、親局入力メモリＭ２ｉ内のこの情報Ｐを更新すると共に、従来同様、当該交信対象の子局から受信した入力データ４ｉを親局入力メモリＭ２ｉに格納する。
一方、ＣＰＵ１はシーケンス演算周期Ｔ１毎に、親局２から先ず交信中子局番号Ｐを受信し、ＣＰＵ入力メモリＭ１ｉ内の該当領域に格納して、アプリケーションのシーケンス演算処理にて参照可能にする。そして、さらに親局入力メモリＭ２ｉ内の入力データ４ｉのうち、前回のシーケンス演算周期Ｔ１において親局２に指示した次回受信子局番号Ｑｉを先頭番号とする子局ブロック（本例では２子局からなる）の入力データ４ｉを分割データとして親局２から受信し、ＣＰＵ入力メモリＭ１ｉ内の該当する子局ブロック領域の入力データ４ｉを更新する。
【００２４】
次に、ＣＰＵ１は更新後のＣＰＵ入力メモリＭ１ｉ内の全入力データ４ｉを用いてアプリケーションのシーケンス演算を行うと共に、処理＃１と＃２によって次回受信子局番号Ｑｉと出力送信先子局番号Ｐｏを求め、シーケンス演算結果で得られる全出力データ４ｏ、および処理＃１と＃２で求めた子局番号ＱｉとＰｏによってＣＰＵ出力メモリＭ１ｏ内の該当領域を更新する。
そして、ＣＰＵ１は親局２に対し、こうして求めた次回受信子局番号Ｑｉと出力送信先子局番号Ｐｏと共に、シーケンス演算結果で得た全出力データ４ｏのうち出力送信先子局番号Ｐｏを先頭番号とする子局ブロック分（本例では２子局分）の出力データ４ｏを送信して親局出力メモリＭ２ｏ内のそれぞれ該当する領域のデータを更新させる。
図４は処理＃１、つまりＣＰＵ１が、親局２から受信した交信中子局番号Ｐをもとに、次回のシーケンス演算周期Ｔ１において親局２から受信しようとする分割の入力データ４ｉに関わる子局ブロック（本例では２子局）の先頭子局番号としての次回受信子局番号Ｑｉを決定する計算処理の基本部分の実施例を示すフローチャートで、Ｓ１１〜Ｓ１４はそのステップ番号である。
【００２５】
なお、本実施例でも＃１から＃ｎ（但しｎは偶数とする）までの全ｎ台の子局を（＃１と＃２）、（＃３と＃４）、・・・、（＃ｎ−３と＃ｎ−２）、（＃ｎ−１と＃ｎ）というように、２台ずつ（ｎ／２）組の子局ブロックに分け、ＣＰＵ１と親局２が、一度にはこの子局ブロック分の入力データ４ｉまたは出力データ４ｏずつを分割データとして授受するものとする。
なおまた、本発明は下式（１）が成立する条件下において当てはまる。いま、前記の子局ブロックを構成する子局の数（本例では２台）を分割データ子局数βとし、シーケンス演算周期Ｔ１を（子局単位伝送時間Ｔ２）×（分割データ子局数β）で割った比率を演算・伝送周期比率と呼ぶものとすると、式（１）は次のように表される。
演算・伝送周期比率＝（シーケンス演算周期Ｔ１）
／〔（子局単位伝送時間Ｔ２）×（分割データ子局数β）〕≦１
・・・（１）
図４を説明すると、先ずステップＳ１１では、ＣＰＵ入力メモリＭ１ｉに格納されている交信中子局番号Ｐを分割データ子局数βで割り、その商と余りを求める。
【００２６】
次にステップＳ１２でこの余りが０か否かを判定し、余りが無い（余り＝０）の場合は（分岐ＹＥＳ）、次回受信子局番号Ｑｉを下式（２）で求める（ステップＳ１３）。
Ｑｉ＝（商−１）×（分割データ子局数β）＋１              ・・・（２）
他方、この余りが有る（余り≠０）場合は（ステップＳ１２、分岐ＮＯ）、次回受信子局番号Ｑｉを下式（３）で求める（ステップＳ１４）。
Ｑｉ＝商×（分割データ子局数β）＋１                      ・・・（３）
但し、交信中子局番号Ｐが前回のシーケンス演算周期から変化し、且つ今回の交信中子局番号Ｐが子局ブロックの先頭子局の番号であるときは、式（２）、（３）の値からそれぞれ分割データ子局数βを引いた値を、改めて次回受信子局番号Ｑｉとする。
また、このようにして求めた子局番号Ｑｉの値が全子局の数ｎを越えたときは、そのＱｉの値からｎを引いた値を改めて次回受信子局番号Ｑｉとする。
【００２７】
図５は処理＃２、つまりＣＰＵ１が親局２から受信した交信中子局番号Ｐをもとに、今回のシーケンス演算周期Ｔ１において親局２へ送信する分割の出力データ４ｏに関わる子局ブロック（本例では２子局）の先頭子局番号としての出力送信先子局番号Ｐｏを決定する計算処理の基本部分の実施例を示すフローチャートで、Ｓ２１〜Ｓ２４はそのステップ番号である。
図５を説明すると、先ずステップＳ２１では、ＣＰＵ入力メモリＭ１ｉに格納されている交信中子局番号Ｐに、以下に述べる固定値Ｋを加算する。
この固定値Ｋは、子局単位伝送時間Ｔ２およびシーケンス演算周期Ｔ１を考慮し、ＣＰＵによる今回のシーケンス演算の結果としての出力データ４ｏを実際に極力短い遅れ時間でしかも確実に親局を介して送信できる子局を求めるために加算される値で、下式（４）の値の端数を切り上げた整数値として決定される。
【００２８】
（シーケンス演算周期Ｔ１）×２÷（子局単位伝送時間Ｔ２）        ・・・（４）
そして、上記加算値である（交信中子局番号Ｐ）＋（固定値Ｋ）の値を分割データ子局数β（本例では２台）で割り、その商と余りを求める。
次にステップＳ２２でこの余りが０か否かを判定し、余りが無い（余り＝０）の場合は（分岐ＹＥＳ）、出力送信先子局番号Ｐｏを下式（５）で求める（ステップＳ２３）。
Ｐｏ＝（商−１）×（分割データ子局数β）＋１              ・・・（５）
他方、この余りが有る（余り≠０）場合は（ステップＳ２２、分岐ＮＯ）、出力送信先子局番号Ｐｏを下式（６）で求める（ステップＳ２４）。
Ｐｏ＝商×（分割データ子局数β）＋１                      ・・・（６）
但し、このようにして求めた子局番号Ｐｏの値が全子局の数ｎを越えたときは、そのＰｏの値からｎを引いた値を改めて出力送信先子局番号Ｐｏとする。
【００２９】
図１は図６のシーケンス制御システムにおけるＰＬＣ０１の、本発明の第１の実施例としての交信動作を示すタイムチャートである。この実施例はシーケンス演算周期Ｔ１を子局単位伝送時間Ｔ２より小さくし、前記した演算・伝送周期比率＝Ｔ１／（Ｔ２×β）（なお、ここでは分割データ子局数β＝２）を１より充分小さくした場合を示している。この場合は、出力送信先子局番号Ｐｏを求める処理＃２における固定値Ｋは２となる。
ここで、図１のａ）とｂ）はそれぞれネットワーク通信部（親局）２とＣＰＵ１の入出力の時間的推移を示し、図８のａ）とｂ）に対応している。また、図１のｃ）は同図ｂ）のシーケンス演算周期Ｔ１１，Ｔ１２，・・・毎の交信中子局番号Ｐと、この各子局番号Ｐに応じ上述した処理＃１及び＃２によってそれぞれ決定される次回受信子局番号Ｑｉ及び出力送信先子局番号Ｐｏ、並びに比較のための今回受信子局番号Ｐｉとの関係を示す。
【００３０】
なお、今回受信子局番号Ｐｉは当該のシーケンス演算周期においてＣＰＵが親局から受信する入力データ４ｉに関わる子局ブロックの先頭子局の番号であり、前回のシーケンス演算周期における次回受信子局番号Ｑｉに等しい。また、子局番号Ｑｉ，Ｐｏ，Ｐｉにおける括弧内の子局番号は当該の子局ブロックの非先頭子局の番号である。
図１の例では交信中子局番号Ｐはシーケンス演算周期Ｔ１の切換わり順に、時々重複しながら順番に変化して行く。この間、ＣＰＵ１は、親局２から交信中子局番号Ｐに関わる子局ブロック（便宜上、対向子局ブロックという）の前方側（図左側）に隣接する子局ブロック、または対向子局ブロックの分割入力データ４ｉを取りこぼしなく受信入力すると共に、親局２へ対向子局ブロックの後方側（図右側）に隣接する子局ブロック宛ての分割出力データ４ｏを送信出力して行くことが分かる。
【００３１】
このようにして、ＣＰＵ１は極力短い遅れ時間で子局ブロックからの分割データ分の入力データ４ｉを受信しつつ、ＣＰＵ入力メモリＭ１ｉを更新してシーケンス演算を行い、この最新のシーケンス演算結果からなる分割データ分の出力データ４ｏを極力短い遅れ時間で送信可能な子局ブロック宛に送信して行く。
図２は図６のシーケンス制御システムにおけるＰＬＣ０１の、本発明の第２の実施例としての交信動作を示すタイムチャートである。この実施例は前記した演算・伝送周期比率＝Ｔ１／（Ｔ２×β）を１に近づけた場合を示し、この場合は、出力送信先子局番号Ｐｏを求める処理＃２における固定値Ｋは４となる。図の構成方法は図１と同様である。
図２の例では交信中子局番号Ｐはシーケンス演算周期Ｔ１の切換わり順に、重複なく、逆に時々１局分飛び越しながら順番に変化して行く。この間、ＣＰＵ１は、親局２から対向子局ブロックの前方側（図左側）の１子局ブロックを置いた隣接子局ブロック、または隣接子局ブロックの分割入力データ４ｉを受信入力すると共に、親局２へ対向子局ブロックの後方側（図右側）の１子局ブロックを置いた隣接子局ブロック宛ての分割出力データ４ｏを送信出力して行く。
【００３２】
ＣＰＵ１が親局２側と授受する入出力データに関わる子局ブロックの範囲が、図１の場合より広がるのは、図１の場合は、シーケンス演算周期Ｔ１が子局単位伝送時間Ｔ２の２区間に跨がる場合が有るのみであるのに対し、図２の場合は、子局単位伝送時間Ｔ２の３区間に跨がる場合が有るためである。
このようにして、ＣＰＵ１は極力短い遅れ時間で子局ブロックからの分割データ分の入力データ４ｉを受信しつつシーケンス演算を行い、分割データ分の出力データ４ｏを極力短い遅れ時間で確実に送信可能な子局ブロック宛に送信して行く。
なお、上述した実施例ではＣＰＵ１がシーケンス演算後に（子局ブロック宛ての出力データ４ｏと共に）次回受信子局番号Ｑｉを親局２へ送信するものとしたが、これに代わりＣＰＵ１と親局２との交信の回数が増える欠点はあるが、ＣＰＵ１がシーケンス演算周期Ｔ１の始めに親局２から交信中子局番号Ｐを受信し、処理＃１とは別の処理によって今回受信子局番号Ｐｉを求め親局２へ送信して、親局２に対しＣＰＵ１へ該当する子局ブロックの入力データ４ｉを送信させることも可能である。
【００３３】
また、分割データ子局数βは１であっても本発明が適用できることは明らかである。
【図面の簡単な説明】
【００３４】
【図１】本発明における第１の実施例としての交信動作を示すタイムチャート
【図２】同じく第２の実施例としての交信動作を示すタイムチャート
【図３】本発明における一実施例としてのＣＰＵメモリとネットワーク通信部メモリ（親局メモリ）の内容、およびＣＰＵと親局とが授受するデータについての説明図
【図４】本発明におけるＣＰＵの処理＃１の基本手順を示すフローチャート
【図５】本発明におけるＣＰＵの処理＃２の基本手順を示すフローチャート
【図６】本発明および従来のネットワーク伝送型シーケンス制御システムの構成例を示す図
【図７】従来の制御システムにおける図３に対応する説明図
【図８】従来の制御システムにおける交信動作の一例を示すタイムチャート
【符号の説明】
【００３５】
０１                プログラマブルコントローラ（ＰＬＣ）
１                  ＣＰＵ
２                  ネットワーク通信部（親局）
３                  通信端末（子局）
４                  Ｉ／Ｏ機器
４ｉ                入力データ
４ｏ                出力データ
６                  ＰＬＣバス
７                  通信ネットワーク
Ｍ１                ＣＰＵメモリ
Ｍ１ｉ              ＣＰＵ入力メモリ
Ｍ１ｏ              ＣＰＵ出力メモリ
Ｍ２                ネットワーク通信部メモリ（親局メモリ）
Ｍ２ｉ              親局入力メモリ
Ｍ２ｏ              親局出力メモリ
Ｐ                  交信中子局番号
Ｐｉ                今回受信子局番号
Ｐｏ                出力送信先子局番号
Ｑｉ                次回受信子局番号
Ｔ１（Ｔ１１，〜，Ｔ１６）        シーケンス演算周期
Ｔ２（Ｔ２１，〜，Ｔ２ｎ）        子局単位伝送時間
ＴＮ（ＴＮ０，ＴＮ１，ＴＮ２）    ネットワーク伝送周期
【図１】
2006221342.tif 000003
【図２】
2006221342.tif 000004
【図３】
2006221342.tif 000005
【図４】
2006221342.tif 000006
【図５】
2006221342.tif 000007
【図６】
2006221342.tif 000008
【図７】
2006221342.tif 000009
【図８】
2006221342.tif 000010