(57)【特許請求の範囲】
【請求項１】
複数の通信ノードが固有の通信サイクルを有するシリアルバスで結ばれており、
シリアルバスには、
送信要求を発した全ての通信ノードに対して、固有の通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を、送信要求を発する通信ノードがなくなったときに当該フェーズを終了させる調停機能が作動する定時通信フェーズと、
固有の通信サイクル内における定時通信フェーズに続く残り期間において、送信データ量の最大値を保証しつつ送信要求を発した各通信ノードに対して、順次に送信機会を与えるための調停機能が作動する非同期通信フェーズとが具備されており、
複数の通信ノードの少なくとも一つは管理局に、又他の通信ノードは通常局に、割り当てられており、
管理局に割り当てられた通信ノードは、定時通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガ符号を周期的に送信すると共に、
通常局に割り当てられた通信ノードは、定時通信フェーズにおいて、管理局に割り当てられた通信ノードから送信されるサイクリックトリガ符号を検知するのに応答して、非同期通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局である通信ノードから送信されたデータを受信し、
それにより、サイクリックトリガ符号の送信サイクルをデータ通信サイクルとして、通信ノード間で非同期通信フェーズを利用しつつ、固有の通信サイクルの複数に跨って、サイクリックにデータ通信を可能としたサイクリックデータ通信システム。
【請求項２】
複数の通信ノードがＩＥＥＥ１３９４バスで結ばれており、
ＩＥＥＥ１３９４バスには、
送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与え、送信要求を発する通信ノードがなくなったときに当該フェーズを終了させる調停機能が作動するアイソクロナス通信フェーズと、
送信要求を発した通信ノードに対して、アイソクロナスサイクル内におけるアイソクロナス通信フェーズ完了後の残り期間において、送信データ量の最大値を保証しつつ送信要求を発した各通信ノードに対して、順次に送信機会を与えるための調停機能が作動するアシンクロナス通信フェーズとが具備されており、
複数の通信ノードの少なくとも一つは管理局に、又他の通信ノードは通常局に、割り当てられており、
管理局に割り当てられた通信ノードは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信すると共に、
通常局に割り当てられた通信ノードは、アイソクロナス通信フェーズにおいて、管理局に割り当てられた通信ノードから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局である通信ノードから送信されたデータを受信し、
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、通信ノード間でアシンクロナス通信フェーズを利用しつつ、複数のアイソクロナス通信サイクルに跨って、サイクリックにデータ通信を可能としたサイクリックデータ通信システム。
【請求項３】
サイクリックトリガパケットの送信タイミングは、予定される１通信サイクル当たりの送信データ総量に基づいて計算により求められたものである、請求項１又は２に記載のサイクリックデータ通信システム。
【請求項４】
サイクリックトリガパケットの送信タイミングは、アシンクロナスフェーズにおける送信データの途切れにより決定される、請求項１又は２に記載のサイクリックデータ通信システム。
【請求項５】
複数のＰＬＣがＩＥＥＥ１３９４バスで結ばれており、
ＩＥＥＥ１３９４バスには、
送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与え、送信要求を発する通信ノードがなくなったときに当該フェーズを終了させる調停機能が作動するアイソクロナス通信フェーズと、
送信要求を発した通信ノードに対して、アイソクロナス通信サイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値を保証しつつ送信要求を発した各通信ノードに対して、順次に送信機会を与えるための調停機能を有するアシンクロナス通信フェーズとが具備されており、
複数のＰＬＣの少なくとも一つは管理局に、又他のＰＬＣは通常局に、割り当てられており、
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信すると共に、
通常局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局であるＰＬＣから送信されたデータを受信し、
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣ間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、相互に制御データをリンクさせるようにしたＰＬＣシステム。
【請求項６】
１台のＰＬＣと複数台の入出力デバイスとがＩＥＥＥ１３９４バスで結ばれており、
ＩＥＥＥ１３９４バスには、
送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与え、送信要求を発する通信ノードがなくなったときに当該フェーズを終了させる調停機能が作動するアイソクロナス通信フェーズと、
送信要求を発した通信ノードに対して、アイソクロナス通信サイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値を保証しつつ送信要求を発した各通信ノードに対して、順次に送信機会を与えるための調停機能を有するアシンクロナス通信フェーズとが具備されており、
ＰＬＣは管理局に、又入出力デバイスは通常局に、割り当てられており、
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信すると共に、
通常局に割り当てられた入出力デバイスは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは管理局であるＰＬＣから送信されたデータを受信し、
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣと各入出力デバイスとの間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、それらの間でＩ／ＯデータをリンクさせるようにしたＰＬＣのリモートＩ／Ｏシステム。
【請求項７】
サイクリックトリガパケットの送信タイミングは、予定される１通信サイクル当たりの送信データ総量に基づいて計算により求められたものである、請求項５又は６に記載のシステム。
【請求項８】
サイクリックトリガパケットの送信タイミングは、アシンクロナス通信フェーズにおける送信データの途切れにより決定される、請求項５又は６に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばＰＬＣシステムにおけるデータリンク等の用途に好適なサイクリックデータ通信システムに係り、特に、ＩＥＥＥ１３９４バス等の定時通信フェーズ（例えば、アイソクロナス通信フェーズ）と非同期通信フェーズ（例えば、アシンクロナス通信フェーズ）とを併有するシリアルバスの使用を前提としつつも、送信タイミングの定時性並びに各通信ノードの最大伝送量が保証された高速サイクリックデータ通信を可能とした新規なサイクリックデータ通信システムに関する。
【０００２】
【従来の技術】
データリンク機能の組み込まれたＰＬＣシステムは従来よりよく知られている。このようなＰＬＣシステムでは、複数台のプログラマブル・ロジック・コントローラ（以下、ＰＬＣと言う）をシリアルバスにて結び、定期的にＩ／Ｏデータ等を相互に交換しつつ、システム全体でＩ／Ｏデータ等の共有を実現している。
【０００３】
すなわち、この種のＰＬＣシステムでは、各ＰＬＣのメモリ内には、自機のＩ／Ｏデータ領域にみならず、他機のＩ／Ｏデータ領域が設けられる。各ＰＬＣの演算ユニット（通称ＣＰＵユニット）では、常時、Ｉ／Ｏリフレッシュ処理、命令実行処理、周辺サービス処理をサイクリックに実行している。周辺サービス処理では、各ＰＬＣのそれぞれは、自機のＩ／Ｏデータ領域の内容を他機へと例えば一斉同報送信する一方、他機のそれぞれでは一斉同報されたＩ／Ｏデータを受信し、自機の該当する他機用のＩ／Ｏデータ領域に格納する。各ＰＬＣが順次に同様に動作することで、各ＰＬＣ内のメモリ内における他機のＩ／Ｏデータ領域の内容は定期的に更新され、結果として、各機のメモリ内におけるＩ／Ｏデータは相互に自動的にリンクされる。
【０００４】
昨今、ＰＬＣが取り扱う制御点数は飛躍的に増大している。そのため、データリンク機能の実現に必要とされるシリアルバスには高速大容量伝送の可能なものが要求されている。
【０００５】
また、市場の自由化、国際化の流れの中にあって、昨今、制御システムの構成機器は様々なメーカーのものが混在する傾向にある。そのため、データリンク機能の実現に必要とされるシリアルバスには、従前の各メーカー固有の仕様のものではなく、オープン規格のものが要求されている。
【０００６】
【発明が解決しようとする課題】
高速大容量伝送が可能なオープン規格化されたシリアルバスとしては、例えば、ＩＥＥＥ１３９４バスが知られている。このＩＥＥＥ１３９４バスには、アイソクロナス通信フェーズとアシンクロナス通信フェーズとが用意されている。
【０００７】
アイソクロナス通信フェーズでは、送信要求を発した全ての通信ノードに対して、アイソクロナスサイクル（１２５μｓ）内における毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【０００８】
アシンクロナス通信フェースでは、送信要求を発した通信ノードに対して、アイソクロナスサイクル内におけるアイソクロナスフェーズ完了後の残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【０００９】
しかし、ＩＥＥＥ１３９４バスは、主として、デジタルビデオデータのリアルタイム伝送等をその用途とするものであるから、定時送信可能な１通信ノード当たりのデータ量が比較的に少ないために、ＰＬＣシステムにおけるデータリンク機能実現のためのデータ転送に適用した場合、送信データが細切れとなり、データ伝送速度を十分に高速化することができないと言う問題点がある。
【００１０】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、例えばＩＥＥＥ１３９４バスのように、定時通信フェーズ（アイソクロナス通信フェーズに相当）と非同期通信フェーズ（アシンクロナス通信フェーズに相当）とを併有する規格化されたシリアルバスの使用を前提として、各通信ノードの最大送信データ量を保証しつつ、定時制を有するサイクリックデータ伝送を可能とすることにある。
【００１１】
また、この発明の他の目的とするところは、比較的に大量のＩ／Ｏデータ等を各ＰＬＣ間で高速に伝送しつつデータリンク機能を実現できるようにしたＰＬＣシステムを提供することにある。
【００１２】
また、この発明の他の目的とするところは、比較的に大量のＩ／Ｏデータ等をマスタとなるＰＬＣとスレーブとなる複数の入出力デバイスとの間で高速に伝送しつつ高応答の制御を可能としたＰＬＣのリモートＩ／Ｏシステムを提供することにある。
【００１３】
さらに、この発明の他の目的並びに作用効果については、以下の明細書中の記述を参照することにより、当業者であれば容易に理解されるであろう。
【００１４】
【課題を解決するための手段】
本発明のサイクリックデータ伝送システムは、複数の通信ノードを固有の通信サイクルを有するシリアルバスで結んで構成される。
【００１５】
シリアルバスには、定時通信フェーズと非同期通信フェーズとが具備されている。
【００１６】
定時通信フェーズでは、送信要求を発した全ての通信ノードに対して、固有の通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【００１７】
非同期通信フェーズでは、送信要求を発した通信ノードに対して、固有の通信サイクル内における定時通信フェーズを除く残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【００１８】
複数の通信ノードの少なくとも一つは管理局に、又他の通信ノードは通常局に、割り当てられる。
【００１９】
管理局に割り当てられた通信ノードは、定時通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガ符号を周期的に送信する。
【００２０】
通常局に割り当てられた通信ノードは、定時通信フェーズにおいて、管理局に割り当てられた通信ノードから送信されるサイクリックトリガ符号を検知するのに応答して、非同期通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局である通信ノードから送信されたデータを受信する。
【００２１】
それにより、サイクリックトリガ符号の送信サイクルをデータ通信サイクルとして、固有の通信サイクルの複数に跨って、通信ノード間で非同期通信フェーズを利用しつつ、サイクリックにデータ通信が行われる。
【００２２】
このような構成によれば、例えばＩＥＥＥ１３９４バスのように、定時通信フェーズ（アイソクロナス通信フェーズに相当）と非同期通信フェーズ（アシンクロナス通信フェーズに相当）とを併有する規格化されたシリアルバスの使用を前提として、各通信ノードの最大送信データ量を保証しつつ、定時性を有するサイクリックデータ伝送が可能となる。
【００２３】
本発明のより好ましい実施の形態におけるサイクリックデータ伝送システムとしては、複数の通信ノードをＩＥＥＥ１３９４バスで結んで構成してもよい。
【００２４】
ＩＥＥＥ１３９４バスには、アイソクロナス通信フェーズとアシンクロナス通信フェーズとが具備されている。
【００２５】
アイソクロナス通信フェーズでは、送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクル（例えば、１２５μｓ）に対する毎回送信を保証しつつ、各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【００２６】
アシンクロナス通信フェーズでは、送信要求を発した通信ノードに対して、アイソクロナスサイクル内におけるアイソクロナスフェーズ完了後の残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【００２７】
複数の通信ノードの少なくとも一つは管理局に、又他の通信ノードは通常局に、割り当てられる。
【００２８】
管理局に割り当てられた通信ノードは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信する。
【００２９】
通常局に割り当てられた通信ノードは、アイソクロナス通信フェーズにおいて、管理局に割り当てられた通信ノードから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局である通信ノードから送信されたデータを受信する。
【００３０】
なお、管理局は管理に専念してもよいし、サイクリックトリガパケットを送信したのちに、自局データを送信するようにしてもよい。
【００３１】
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、複数のアイソクロナス通信サイクルに跨って、通信ノード間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信が行われる。
【００３２】
このような構成によれば、アイソクロナス通信フェーズとアシンクロナス通信フェーズとを併有するＩＥＥＥ１３９４バスの使用を前提として、各通信ノードの１回当たりの最大送信データ量（例えば、最大６２μｓ分）を保証しつつ、定時性を有するサイクリックデータ伝送を行わせることが可能となる。
【００３３】
なお、６２μｓ分の送信データとは、因みに、１００Ｍｂｐｓの場合には５１２ｙｔｅ、２００Ｍｂｐｓの場合には１０２４Ｂｙｔｅ、４００Ｍｂｐｓの場合には２０４８Ｍｂｙｔｅに相当する。
【００３４】
本発明の好ましい実施の形態においては、サイクリックトリガパケットの送信タイミングは、予定される１通信サイクル当たりの送信データ総量に基づいて計算により求めてもよい。
【００３５】
このような構成によれば、送信要求が予定される全ての通信ノードに対して、送信機会並びに送信データ量を確実に保証しつつ、最短サイクルタイムによるサイクリックデータ通信が可能となる。
【００３６】
本発明の好ましい実施の形態においては、サイクリックトリガパケットの送信タイミングは、アシンクロナス通信フェーズにおける送信データの途切れにより決定するようにしてもよい。
【００３７】
このような構成によれば、アプリケーションの実行状況等により、送信要求を発する通信ノードの数がその都度に変動するような場合にも、常に、全ての通信ノードに対して毎回の通信機会を保証しつつ、サイクリックデータ通信が可能となる。
【００３８】
本発明のＰＬＣシステムは、複数のＰＬＣがＩＥＥＥ１３９４バスで結ばれて構成されている。
【００３９】
ＩＥＥＥ１３９４バスには、アイソクロナス通信フェーズとアシンクロナス通信フェーズとが具備されている。
【００４０】
アイソクロナス通信フェーズでは、送信要求を発した全ての通信ノードに対して、アイソクロナスサイクル（例えば、１２５μｓ）に対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるように調停機能が作用する。
【００４１】
アシンクロナス通信フェーズでは、送信要求を発した通信ノードに対して、アイソクロナスサイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値（例えば、６２μｓ分）を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作用する。
【００４２】
複数のＰＬＣの少なくとも一つは管理局に、又他のＰＬＣは通常局に、割り当てられる。
【００４３】
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信する。
【００４４】
通常局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは他局であるＰＬＣから送信されたデータを受信する。
【００４５】
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣ間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、相互に制御データをリンクさせる。ここで、制御データには、被制御対象のリレー、スイッチ、センサ等の入力データ、アクチュエータ等の出力データを含んでもよい。これらはオンオフの二値データの場合が多い。二値データ以外でもよく、例えば制御対象のアナログ入力数値、アナログ入力数値であったり、生産情報（生産数量、稼働時間、エラー回数等）でもデータリンクは可能である。
【００４６】
このような構成によれば、大量のＩ／Ｏデータ等を各ＰＬＣ間で高応答かつ緊密にリンクさせたＰＬＣシステムを実現することができる。
【００４７】
この発明のＰＬＣのリモートＩ／Ｏシステムは、１台のＰＬＣと複数台の入出力デバイスとがＩＥＥＥ１３９４バスで結ばれて構成される。
【００４８】
ＩＥＥＥ１３９４バスには、アイソクロナス通信フェーズとアシンクロナス通信フェーズとが具備されている。
【００４９】
アイソクロナス通信フェーズでは、送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクル（例えば、１２５μｓ）に対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作用する。
【００５０】
アシンクロナス通信フェーズでは、送信要求を発した通信ノードに対して、アイソクロナス通信サイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値（例えば、６２μｓ分）を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作用する。
【００５１】
ＰＬＣは管理局に、又複数の入出力デバイスのそれぞれは通常局に、割り当てられる。
【００５２】
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信する。
【００５３】
通常局に割り当てられた入出力デバイスは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ないときは管理局であるＰＬＣから送信されたデータを受信する。
【００５４】
なお、この例では、管理局がＰＬＣ、通常局が入出力デバイスとされているが、プロトコル上は誰が管理局であっても差し支えない。管理局と言っても、なにかを管理しているのではなく、定期的にトリガパケットを送信する役割を担っているものに過ぎない。
【００５５】
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣと各入出力デバイスとの間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、それらの間でＩ／Ｏデータをリンクさせる。
【００５６】
このような構成によれば、一台のＰＬＣにより複数のリモート入出力デバイスを介して、多数の被制御対象機器を高応答に制御することができる。
【００５７】
上記の各システムにおける好ましい実施の形態においては、サイクリックトリガパケットの送信タイミングとしては、予定される１通信サイクル当たりの送信データ総量に基づいて計算により求めてもよい。
【００５８】
上記の各システムにおける好ましい実施の形態においては、サイクリックトリガパケットの送信タイミングは、アシンクロナスフェーズにおける送信データの途切れにより決定されるようにしてもよい。
【００５９】
【発明の実施の形態】
以下に、この発明の好適な実施の一形態を添付図面を参照しつつ詳細に説明する。
【００６０】
先ず、本発明の理解を容易とするために、オープン規格のシリアルバスであるＩＥＥＥ１３９４に関する基本的な事項について説明する。ＩＥＥＥ１３９４の標準的な送信手順を示すタイムチャートが図１に示されている。
【００６１】
ＩＥＥＥ１３９４のデータ転送では全てのノードが対等に動作する。各ノードの転送動作には、特定のノードＩＤを指定して転送を行う場合と、全てのノードを対象として転送を行う場合（ブロードキャスト）とが存在する。
【００６２】
いずれの場合も、複数のノードが同時にバスにデータを送信すると衝突が起こるので、あらかじめアービトレーション（調停：Arbitration）を行って使用権を獲得したノードだけがバスを使用する。ただし、使用できる時間は比較的短時間に限られており、すぐに次の伝送に交代する。一つのノードの伝送が長時間にわたりバスを占有することを防ぎ、ほかの伝送の帯域幅を保証することにより、複数のリアルタイム・データを同時に転送可能とするためである。
【００６３】
バスにはルート（根）のノードがただ一つ定められており、ルートから全てのノードまでツリーを辿ることができる。各ノードに対して上流側のノードは親ノードであり、親ノードを順次辿ってルートに到達することができる。バスの使用権を要求するノードは親ノードに要求を出し、その要求がルートに集められる。ルートは各ノードが公平になるように使用権を与える。
【００６４】
ＩＥＥＥ１３９４の転送方式には、帯域幅が保証されるアイソクロナス（Isochronous）転送フェーズと、帯域幅が保証されないアシンクロナス（Asynchronous）転送フェーズとの二つのフェーズが存在する。いずれのフェーズにおいても、転送の最初にはこのようなアービトレーションが行われる。アイソクロナス転送フェーズの場合、アービトレーションで後回しにされたとしても、少なくとも１２５μｓｅｃ毎に１回はデータ転送ができることが保証される。これに対して、アシンクロナス転送フェーズの場合、アービトレーションの結果によっては長く待たされる場合もある。
【００６５】
ＩＥＥＥ１３９４のデータ転送は、１２５μｓｅｃ毎に転送サイクルが反復され、それぞれのサイクルの中で各ノードに少しずつ転送時間が割り当てられる。サイクルの前半は、アイソクロナス転送のチャネルが割り当てられる。サイクルの後半の余った時間に、アシンクロナス転送が割り当てられる。
【００６６】
サイクルの開始について詳述する。ノードのうちの一つ（一般にルート）がサイクルマスタとなって、サイクルの実行を管理する。サイクルマスタは１２５μｓｅｃ毎にサイクルスタートパケットをブロードキャストで送信し、各ノードはそれによってサイクルの開始タイミングを知ることとなる。
【００６７】
アイソクロナス転送について詳述する。データの衝突を防ぐため、サイクルスタートパケットの後に一定時間の間隔をおいて、アイソクロナス転送を要求するノードがチャネル使用権の要求を出す。この間隔はアイソクロナスギャップと呼ばれる。アービトレーションによってチャネル使用権を獲得したノードは、引き続いてアイソクロナスパケットとしてデータを転送する。一つのチャネルの終了後、アイソクロナスギャップをおいて次のチャネルのアービトレーションが行われ、チャネル使用権を獲得したノードがアイソクロナスパケットとしてデータを転送する。チャネル使用権を要求するノードがなくなるまで、これが順次に繰り返される。
【００６８】
アシンクロナス転送について詳述する。アイソクロナス転送の最後のチャネルが終了すると、チャネル使用権を要求するノードがなくなるため、バスに空き時間が生ずる。アシンクロナス転送を要求するノードは、バスの空き時間がアイソクロナスギャップよりも長い一定時間に達したことを検出したら、アシンクロナス転送の要求を出すことが許される。この時間はサブアクションギャップと呼ばれる。アービトレーションによってバス使用権を獲得したノードは、引き続いてデータパケットを転送する。一つのデータパケットの終了後、サブアクションギャップをおいて次の転送のアービトレーションが行われ、バス使用権を獲得したノードがデータパケットを転送する。バス使用権を要求するノードがなくなるか、サイクル時間が１２５μｓｅｃに達するまで、これが繰り返される。
【００６９】
サイクルの終了について説明する。サイクル時間が１２５μｓｅｃになるよりも先にバス使用権を要求するノードがなくなれば、サイクルの残り時間は空き時間となる。一方、データパケットの転送中にサイクル時間が１２５μｓｅｃになった場合には、サイクルマスタはそのパケットが最後まで転送されるまで待って次のサイクルを開始する。このとき、開始が遅れた分だけ次のサイクルの時間を短縮して、サイクルの平均時間を１２５μｓｅｃに維持する。次のサイクルの時間が短くなりすぎるのを防ぐため、アシンクロナス転送のパケットは最大６２μｓｅｃに制限される。
【００７０】
上述したように、ＩＥＥＥ１３９４には、同期メッセージの送信のためにアイソクロナスパケット（Isochronous Packet）が、又非同期メッセージの送信のためにアシンクロナスパケット（Asynchronous Packet）又はアシンクロナスストリームパケット（Asynchronous Stream Packet）が用意されている。アイソクロナスパケットとアシンクロナスパケットのパケット構成は同じである。
【００７１】
アイソクロナスパケットは同期パケットであり、各ノードが定期的に送信することができる。アイソクロナスパケットはチャネルＩＤ（タグ）を指定して送信される。各局にはチャネルＩＤのフィルタが具備されており、フィルタにより受信が許可されているチャネルＩＤのパケットのみが受信される。
【００７２】
アシンクロナスパケット、アシンクロナスストリームパケットの送信タイミングはＩＥＥＥ１３９４では規定されておらず、その決定はアプリケーション側に委ねられている。アシンクロナスパケットは、ＩＥＥＥ１３９４のＰｈｙ＿ＩＤ（物理ＩＤ／物理層アドレス）を直接指定して送信され、Ｐｈｙ＿ＩＤが該当するノードにより受信される。
【００７３】
ＩＥＥＥ１３９４では、アイソクロナスサイクルで送信要求のあったすべてのチャネルのデータを送信する。アイソクロナス通信では、サイクルスタートパケットをトリガとして、送信要求のあったすべての局がアイソクロナスデータを送信する。サイクルスタートパケットは１２５μｓ毎に定期的に送信される。これによって、サイクリック通信を行うことができる。また、全局がアイソクロナスデータを送信できることを保証するために、ＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥという残帯域を示すレジスタを持ち、これでアイソクロナスフェースの時間と送信データ量を制限している。また、一つのアイソクロナスサイクル内で同一のチャネルの送信は一つのみであり、同じチャネルを２つの局が送信することができない。このことは、必要なデータが確実に送信できるよう保証していることを意味している。
【００７４】
ところで、ＩＥＥＥ１３９４で定期的なデータ転送（サイクリック通信）を行うには、ＩＥＥＥ１３９４で規定されているアイソクロナス通信を利用することがよいことは明らかである。
【００７５】
ところが、上述したように、１２５μｓ以内の全チャネル・全アイソクロナスデータ送信を保証しているために、ひとつのアイソクロナスサイクル内に送信できるアイソクロナスデータは、図２に示されるように、１００Ｍｂｐｓ時に最大１５３６バイトに制限されてしまう。この１５３６バイトを６３局で各局が一つずつのチャネルを占有して送信を行うと１ノード当たり２４バイトになる。これでは用途が極端に限定されてしまう。
【００７６】
たとえば、データリンク機能を有するＰＬＣシステムのようなアプリケーションでは、複数のＰＬＣが各局のデータを共有している。このとき、各局は自局データを一斉同報し、他局の一斉同報データを受信することでＰＬＣ同士のデータ共有を行っている。このようなシステムでは数キロバイトのデータを共有することが多くあり、１局当たり２４バイト程度の伝送能力ではデータ容量がまったく足りない。
【００７７】
もし、２４バイトのデータを組み立てて大きなデータを送信するようにしても、送信データに含まれるヘッダ・テイラなどアプリケーションでは利用しないデータの割合が大きくなり、実質的な伝送効率が低下し、高速な伝送路を利用するメリットが低減してしまう。
【００７８】
加えて、データリンク機能を有するＰＬＣシステムではデータの定時性も重要である。つまり、あるデータが転送されるときの伝送遅延時間を保証する必要がある。
【００７９】
ＩＥＥＥ１３９４でもアシンクロナスパケットを利用ればデータ容量の問題は解決可能であるが、その場合には、定時性を保証できない。各局を平等にデータ送信させる仕組みが存在しないのである。
【００８０】
そこで、本発明では、非同期メッセージでサイクリックデータを送信することでデータ量の問題を解決し、その送信タイミングを同期メッセージで送ることで定時性の問題を解決しようとするものである。
【００８１】
このようにすることにより、サイクリックデータの送信タイミングを適当に調節することにより、データ量が１５３６バイトに制限されることもなく、定時性を保ちサイクリック通信を行うことができる。
【００８２】
すなわち、サイクリックデータ送信には、非同期メッセージであるアシンクロナスストリームパケットを利用すればよい。アシンクロナスストリームパケットはアイソクロナスパケットと同じようにチャネルを送受信の相手先指定に利用しており、受信側はチャネルを指定するだけで良く、また、パケットヘッダも小さいため、全局にデータを送信するのによい。もちろん、アシンクロナスパケットを一斉同報アドレスに送信しても良い。一方、サイクリックデータの送信タイミングを知らせるのには、アイソクロナスパケットを利用すればよい。これにより、確実にサイクリックデータの送信トリガを与えることができる。
【００８３】
より具体的には、ＩＥＥＥ１３９４に接続された管理局と通常局とは以下の手順で動作すればよい。
【００８４】
すなわち、管理局はサイクリックデータ送信のトリガとなるアイソクロナスパケット（サイクリックトリガパケット）を送信する。
【００８５】
サイクリックトリガパケットを送信するタイミングを決定する方法としてはいくつかのものが考えられる。一つの方法としては、サイクリックデータの量を予め決めておき、そのデータ量から逆に送信に必要な期間を算出する。その値を元にサイクリックトリガパケットの送信タイミングを決定する。他の一つの方法としては、サイクリックデータは一斉同報されているので、そのパケットを常に監視しておき、一定の間、サイクリックトリガデータの受信がなかったとき、全局のサイクリックデータ送信が終わったとして、次のサイクリックトリガパケットを送信する。つまり、サイクリックデータの送信が一定時間途絶えたときに、サイクリックトリガバケットの送信タイミングが到来したと決定する。
【００８６】
管理局の決定方法としては、いくつかのものが考えられる。一つの方法としては、予め管理局となるノードを決めておくものである。他の一つの方法としては、Ｐｈｙ＿ＩＤの最も大きいもの、もしくは、もっとも小さいものが管理局となるものである。さらに、他の一つの方法としては、アイソクロナスリソースマネジャー（前述のＢＡＮＤＷＩＤＴＨ＿ＡＶＡＬＡＢＬＥ等のレジスタを持つノード）が管理局となるものである。
【００８７】
一方、通常局はサイクリックトリガパケットの受信を監視している。サイクリックトリガパケットを受信すると直ちに自局のサイクリックデータを送信する。また、他局のサイクリックデータを受信する。管理局からのサイクリックトリガパケットを監視し、一定時間受信できなかったときには、異常が発生したとして、管理局の再決定処理を行う。
【００８８】
次に、本発明が適用されたサイクリックデータ通信システムの具体的な一例を図３〜図９を参照しつつ詳細に説明する。
【００８９】
シリアルバス（この例では、ＩＥＥＥ１３９４）と各通信ノードとの関係を示す説明図が図３に示されている。同図に示されるように、このサイクリックデータ通信システムは、Ｎ台（複数台）の通信ノードＮｏｄｅ１〜ＮｏｄｅＮをＩＥＥＥ１３９４規定のバスＢｕｓにて結んで構成されている。結線の方法は、ディジチェーン状やツリー状のほか、それらの混在した形態等が採用可能である。バスを構成する信号線としては例えばツイストペア線等を使用することができる。特に、この例では、Ｎｏｄｅ１が管理局に、またＮｏｄｅ２〜ＮｏｄｅＮが通常局に割り当てられている。
【００９０】
各通信ノードＮｏｄｅ１〜ＮｏｄｅＮのハードウェア構成を概略的に示すブロック図が図４に示されている。同図に示されるように、各通信ノードを構成する回路装置（一般には通信ボード等として具現化される）４００は、シリアルバスＢｕｓを構成する信号線との間でデータ送受信機能を実現するための通信コントローラ４０１と、回路装置全体を統括制御するＣＰＵ４０２と、ＣＰＵ４０２を構成するマイクロプロセッサの動作プログラム等を格納するＲＯＭ４０３と、ＣＰＵ４０２における動作のワークエリア等として機能するＲＡＭ４０４と、送受信データの一時記憶領域として機能する送受信バッファ４０５と、アイソクロナスリソースレジスタ（BANDWIDTH_AVAILABLE等を含む）４０６とを含んでいる。
【００９１】
管理局側の処理を示すフローチャートが図５に、通常局側の処理を示すフローチャートが図６にそれぞれ示されている。以下、これらのフローチャート並びに図７〜図９のタイムチャートを参照しつつ、本発明のサイクリックデータ通信システムの動作を系統的に説明する。
【００９２】
先ず、図５のフローチャートに示されるように、管理局となる通信ノードＮｏｄｅ１では、所定のタイマがタイムアップすることを待機する状態となる（ステップ５０１ＮＯ）。このタイマは、サイククックトリガパケットの送信周期を規定する。タイマ時間の決定方法としては、先に説明したように、サイクリックデータの量を予め決めておき、そのデータ量から逆に送信に必要な期間を算出する。その値を元にサイクリックトリガパケットの送信タイミングを決定する。
【００９３】
タイマがタイムアップしたときには（ステップ５０１ＹＥＳ）、予め用意されたサイクリックトリガパケットの送信処理を実行する（ステップ５０２）。これにより、シリアルバスＢｕｓ上には例えば他の全ての通信ノードへとサイクリックトリガパケットがアイソクロナス通信パケットとして送信される（図３の説明図参照）。このアイソクロナス通信パケットとして行われるサイクリックトリガパケットの送信は、例えば同報一斉送信又は全チャネル指定により実現することができる。なお、先に説明したように、このサイクリックトリガパケットは、アプリケーションが目的とするサイクリックデータ通信における各通信サイクルの開始時点を通常局である他の通信ノードＮｏｄｅ２〜ノードＮｏｄｅＮに対して知らせるためのものである。
【００９４】
サイクリックトリガパケットの送信に続いて、管理局となる通信ノードＮｏｄｅ１の側では、自局からの送信データ要求が存在するか否かの判定を行い、送信要求が自局からもある場合には、その自局サイクリックデータバケットの送信処理を実行する（ステップ５０３）。これにより、シリアルバスＢｕｓ上には、管理局からのサイクリックデータパケットが決められた相手局に宛ててアシンクロナス通信パケットとして送信される。なお、自局からのサイクリックデータ送信要求が存在しなければ、この自局からのデータ送信処理（ステップ５０３）はスキップされる。
【００９５】
サイクリックトリガパケットを送信した後（自局サイクリックデータパケットの送信要求が存在しないとき）、又は自局サイクリックデータを送信した後（自局サイクリックデータバケットの送信要求が存在するとき）、サイクリックトリガパケット送信タイマの起動処理（ステップ５０４）が実行され、以後、サイクリックトリガパケット送信タイマがタイムアップする毎に、以上一連の処理（ステップ５０２，５０３，５０４）が繰り返し実行される。これにより、管理局に割り当てられた通信ノードＮｏｄｅ１からは、サイクリックトリガパケットが一定周期でシリアルバス上に他の全ての通信ノードＮｏｄｅＺ〜ＮｏｄｅＮに宛てて送信されることとなる。このサイクリックトリガパケットはアイソクロナス通信パケットとして送信されるため、ＩＥＥＥ１３９４定時送信仕様により、必ず、１２５μｓｅｃ毎に１回はサイクリックトリガパケットの送信機会を得ることができ、サイクリックデータ通信の定時性を満足させることができる。加えて、自局サイクリックデータパケットの送信は、アシンクロナス通信パケットとして送信されるため、１回の送信当たり例えば最大６２μｓｅｃ分のデータ送信容量を確保することができる。
【００９６】
一方、図６のフローチャートに示されるように、通常局となる他の通信ノードＮｏｄｅ２〜ＮｏｄｅＮの側では、アイソクロナス通信パケットとしてサイクリックトリガパケットが送信されてくるのを待機している（ステップ６０１ＮＯ、６０２ＮＯ）。
【００９７】
この状態において、アイソクロナス通信パケットとしてサイクリックトリガパケットの受信が確認されると（ステップ６０１ＹＥＳ）、これに応答して、自局サイクリックデータバケットの送信処理を実行する（ステップ６０３）。先に述べたように、この自局サイクリックデータパケットの送信は、アシンクロナス通信パケットとして送信されるため、最大６２μｓｅｃ分のデータ送信容量を確保することができる。より具体的に説明すると、各通常局ではそれぞれアシンクロナス通信パケットの送信要求を発する。すると、システム規定のアービトレーションが作用することで、送信要求を発した通常局の一つに対して送信権が付与される。送信権の付与された通常局では、自局サイクリックデータの送信処理（ステップ６０３）が実行され、シリアルバスＢｕｓ上にはアシンクロナス通信パケットとして自局サイクリックデータパケットが所定の相手先に宛てて送信されることとなる。一つの通常局にて、アシンクロナス通信バケットとしてのサイクリックデータパケットの送信が完了すると、続いて、残りの全ての通常局から再び送信要求が発せられ、アービトレーションが作用して、それらの通常局の一つに対して送信権が付与され、これに応答してサイクリックデータパケットの送信処理が実行され、以後、送信要求を発する通常局がなくなるまで、以上の動作が繰り返される（図３の説明図参照）。
【００９８】
一方、自局サイクリックデータパケットの送信処理が完了した通常局では、続いて、サイクリックトリガパケット待ちタイマを起動する（ステップ６０４）。このタイマは、なんらかの原因（通信エラー等）でサイクリックトリガパケットの送信が途絶えたことを判定するためのものである。
【００９９】
その後、通常局の側では、サイクリックトリガパケット受信待ちタイマのタイムアウトを監視しながら（ステップ６０２ＮＯ）、サイクリックトリガパケット受信を待機する状態となる（ステップ６０１ＮＯ）。
【０１００】
そして、サイクリックトリガパケットの受信が確認される毎に（ステップ６０１ＹＥＳ）、先ほど説明した自局サイクリックデータ送信処理（ステップ６０３）並びにサイクリックトリガパケット受信待ちタイマの起動処理（ステップ６０４）を順次実行する。これに対して、サイクリックトリガパケット受信待ちタイマのタイムアウトが確認された場合には（ステップ６０２ＹＥＳ）、公知の管理局再決定処理（ステップ６０５）を実行する。これにより、何らかの通信中にエラーが発生して、サイクリックトリガパケットの受信待ちタイマがタイムアウトした場合には（ステップ６０２ＹＥＳ）、管理局再決定処理（ステップ６０５）の実行により、管理局の再決定が行われてバスはイニシャライズされ、以後以上説明した動作が繰り返し実行される。
【０１０１】
図５及び図６のフローチャートに示される処理が実行されたときのサイクリックデータの送信タイミングを示すタイムチャートが図７に示されている。
【０１０２】
同図に示されるように、サイクリック通信サイクルが開始されると、まず管理局からはサイクリックトリガパケットがアイソクロナスパケットとして送信される。すると各通常局においては、アシンクロナスパケットの送信要求を管理局側へと行う。この管理局への送信要求により公知のアービトレーションが実行され、複数の通常局の１つに対して、送信権が付与される。送信権の付与された通常局は、自己のサイクリックデータをアシンクロナスパケットとしてバス上に送り出す。１つの通常局によるサイクリックデータの送信が完了すると、次々とアービトレーションが実行されて、次の通常局のサイクリックデータの送信が繰り返される。
【０１０３】
このようにしてバス上に送り出された通常局からのデータが、このタイムチャートでは、『ノードＡサイクリックメッセージ』、『ノードＢサイクリックメッセージ』、…『ノードｎサイクリックメッセージ』と記されている。こうして最後の通常局がサイクリックデータを送り出すと、次のサイクリックトリガパケットが管理局から送られてくるまで、待ち時間となる。管理局は、トリガパケット送信を、最後のサイクリックデータパケットを受信してから一定期間をおいて次のトリガパケットを送信する。
【０１０４】
このように管理局は定期的にトリガパケットを送信する。通常局はトリガパケットを受信すると自局分のデータパケットを送信する。各局は他の局が送信したデータパケットを受信する。トリガパケットを送信するタイミングは予め設定した間隔、全データパケット量に応じた間隔、全ノードのデータパケット送信終了後など幾つかの例が考えられる。図７のタイムチャートは、全ノードがデータパケットを送信した後、一定時間待ってから次のトリガパケットを送信する例である。
【０１０５】
サイクリックデータ転送はサイクリックトリガパケットの受信をトリガとして各局の自局データの送信を開始する。サイクリックトリガパケットはアイソクロナスパケットで送信する。各局は１回のサイクリックトリガパケット受信で１回のサイクリックデータを送信する。サイクリックトリガパケットは管理局が送信する。
【０１０６】
送信されるデータのサイズはＩＥＥＥ１３９４の仕様により、１パケット当たり最大５１２バイトとすることができる。送信要求されたパケットが５１２バイトよりも大きかったとき、このＩＥＥＥ１３９４の仕様に合わせて、分割／組立が行われる。分割されたパケットは複数の通信サイクルに跨って送信しても良いし、１つの通信サイクルの中で連続したパケットとして送信することもできる。
【０１０７】
図７のタイムチャートに示される例においては、送信要求されたパケットが５１２バイトよりも大きかったとき、送信されるデータの５１２バイトを超える部分については、次のサイクリック通信サイクルへ回される。
【０１０８】
これに対して、図８のタイムチャートに示される例にあっては、送信要求されたパケットが５１２バイトより大きかったとき、この送信されようとするパケットは複数のフラグメント（フラグメント１〜３）に分割され、同一のサイクリック通信サイクル内においてギャップを挟んで連続的に送信される。即ち、ノードＡのサイクリックメッセージに続いて、ノードＢに関する３個のサイクリックメッセージがギャップを挟んで連続的に送信される。尚、言うまでもないが、それらのサイクリックメッセージは何れもアシンクロナス通信パケットとして送信される。
【０１０９】
以上説明したサイクリック通信サイクル内における各通信ノードの送信タイミングが図９のタイムチャートにまとめて示されている。
【０１１０】
同図に示されるように、この例にあっては、３つのアイソクロナスサイクル（第１サイクル、第２サイクル、第３サイクル）によってサイクリック通信サイクルが構成されている。各アイソクロナスサイクルの開始は、サイクルスタートパケットにより指示される。
【０１１１】
アイソクロナスサイクルの第１サイクルでは、サイクルスタートパケットに続いて、トリガパケットの送信が行われる。このトリガパケットの送信は、アイソクロナスパケットとして行われる。トリガパケットの送信に続いて、ノード２，ノード３，ノード４のデータパケットの送信が順に行われる。これらのデータパケットの送信は、アシンクロナス通信パケットにより行われる。ノード４の送信が完了すると、各通常局においては第２サイクルの到来まで待ち状態となる。
【０１１２】
第２サイクルにおいては、サイクルスタートパケットの送信に続いて、ノード５及びノード６のデータパケット送信が順に実行される。ノード６のデータパケットの送信が終了すると、各通常局においては第３サイクルが到来するまで待ち時間となる。
【０１１３】
第３サイクルが到来すると、サイクルスタートパケットは到来するが、その後第４サイクルが開始するまで全期間待ち時間となる。
【０１１４】
以上の動作が繰り返されることにより、アイソクロナスサイクルの３サイクル分に跨って、サイクリック通信サイクルが実現され、各ノードが十分なデータ送信容量を確保した状態において、アイソクロナスサイクルで規定される定時性を満足しつつ、相互にデータ転送を高速に実行することができる。
【０１１５】
尚、言うまでもないが、ノード１〜６の何れか１つが送信中は、他のノードにおいては送信されたデータを受信する。
【０１１６】
このように、本発明のサイクリックデータ通信システムによれば、サイクリック通信サイクルの開始を示すトリガパケットについては、定時性が保証されたアイソクロナスパケットとして送信する一方、目的とする送信データについては、１送信当たり最大５１２バイトが保証されたアシンクロナス通信パケットとしているため、広く普及した汎用バスであるＩＥＥＥ１３９４を採用してはいるものの、その固有サイクルである１２５μｓｅｃに制約を受けることなく、任意のサイクル長を有するサイクリックデータ通信を実現することができる。
【０１１７】
特に、トリガパケットを送信するタイミングについては、予め設定した間隔、全データパケット量に応じた間隔、全ノードのデータパケット送信終了後などの様々なタイミングを自由に決定することができるため、ユーザ側の設計自由度も向上する。
【０１１８】
次に、本発明が適用されたデータリンク機能を有するＰＬＣシステムの構成図が図１０に示されている。この例では、４台のプログラマブル・ロジック・コントローラ（ＰＬＣ１〜ＰＬＣ４）が、オープン規格のシリアルバスＢＵＳにより結ばれている。このようなシリアルバスＢＵＳとしては、ＩＥＥＥ１３９４などを採用することができる。
【０１１９】
各プログラマブル・ロジック・コントローラＰＬＣ１〜ＰＬＣ４には、４個の記憶エリア（ＰＬＣ１エリア、ＰＬＣ２エリア、ＰＬＣ３エリア、ＰＬＣ４エリア）が設けられている。それらの記憶エリアには、該当するＰＬＣに関するＩ／Ｏデータ等が格納される。即ち、このシステムにおいては、全てのＰＬＣにおけるＩ／Ｏデータ等を各ＰＬＣにおいて互いに共有している。
【０１２０】
より具体的には、ＰＬＣ１は自局エリアＡ１１を一斉同報すると共に、ＰＬＣ２〜４のエリアデータを受信する。ＰＬＣ２〜４も同様に自局エリアを一斉同報し、他局エリアを受信する。これにより、ＰＬＣ１〜ＰＬＣ４が同じデータを共有することができる。
【０１２１】
よく知られているように、ＰＬＣにおいては、入出力更新処理と命令実行処理を実行しつつ、一定期間が到来するたびにシステムサービス処理を実行し、このシステムサービス処理において、データリンクのためのデータ転送処理を実行する。
【０１２２】
この実施例においては、このデータリンクのためのデータ転送処理に、先に説明した本発明のサイクリックデータ通信方式を採用する。
【０１２３】
即ち、４台のＰＬＣ（ＰＬＣ１〜ＰＬＣ４）を互いに結ぶＩＥＥＥ１３９４バスＢｕｓには、送信要求を発した全てのＰＬＣに対して、アイソクロナス通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作動するアイソクロナス通信フェーズと、送信要求を発したＰＬＣに対して、アイソクロナス通信サイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能を有するアシンクロナス通信フェーズとが具備されている。
【０１２４】
複数のＰＬＣの少なくとも１つは管理局に、また他のＰＬＣは通常局に、割り当てられる。
【０１２５】
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信する。
【０１２６】
一方、通常局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送信されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、または送信機会を得ない時は他局であるＰＬＣから送信されたデータを受信する。
【０１２７】
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣ間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、相互にＩ／Ｏデータ等の制御データをリンクさせるようにしている。
【０１２８】
次に、本発明が適用されたデータリンク機能を有するＰＬＣのリモートＩ／Ｏシステムの構成図が図１１に示されている。
【０１２９】
この例にあっては、マスタ局として機能する１台のＰＬＣと、スレーブ局として機能する４台の入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）とがＩＥＥＥ１３９４バスＢｕｓにて結ばれている。
【０１３０】
このＩＥＥＥ１３９４バスには、送信要求を発した全ての通信ノードに対して、アイソクロナス通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作動するアイソクロナス通信フェーズと、送信要求を発した通信ノードに対して、アイソクロナス通信サイクル内におけるアイソクロナス通信フェーズ終了後の残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能を有するアシンクロナス通信フェーズとが具備されている。
【０１３１】
ＰＬＣは管理局に、また入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）は通常局に割り当てられている。
【０１３２】
管理局に割り当てられたＰＬＣは、アイソクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、通信サイクルの開始を示すサイクリックトリガパケットを周期的に送信する。
【０１３３】
一方、通常局に割り当てられた入出力デバイスは、アイソクロナス通信フェーズにおいて、管理局であるＰＬＣから送品されるサイクリックトリガパケットを検知するのに応答して、アシンクロナス通信フェーズにおいて、送信要求を発して送信機会を得ることにより、目的とするデータを送信し、又は送信機会を得ない時は管理局であるＰＬＣから送信されたデータを受信する。
【０１３４】
それにより、サイクリックトリガパケットの送信サイクルをデータ通信サイクルとして、ＰＬＣと各入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）との間でアシンクロナス通信フェーズを利用しつつサイクリックにデータ通信を行うことにより、それらの間でＩ／Ｏデータをリンクさせるようにしている。
【０１３５】
最後に、本発明が適用されたデータリンク機能を有し、かつリモートＩ／Ｏシステムを有するＰＬＣシステムの構成図が図１２に示されている。
【０１３６】
このシステムは、４台のプログラマブル・ロジック・コントローラＰＬＣ１〜ＰＬＣ４と、４台の入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）とを含んでいる。
【０１３７】
それら４台のＰＬＣと４台の入出力デバイスはオープン規格のシリアルバスＢｕｓにて結ばれている。このようなバスとしては、ＩＥＥＥ１３９４等を採用することができる。
【０１３８】
ＰＬＣ１〜ＰＬＣ４は図１０を参照して説明したようにデータリンク機能を実現している。一方、ＰＬＣ１と入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）との間は図１１を参照して説明したデータリンク機能を実現している。
【０１３９】
そのため、このシステムによれば、４台のプログラマブル・ロジック・コントローラＰＬＣ１〜ＰＬＣ４の間でデータリンク機能を実現しつつ、マスタとして機能する１台のＰＬＣとリモート設置された４台の入出力デバイス（ＩＤ１，ＯＤ１，ＩＤ２，ＯＤ２）との間でデータリンクを実現することによって、高い応答性を維持しつつ極めて高機能な制御システムを実現することが可能となる。
【０１４０】
尚、以上説明した各実施の形態においては、本発明が適用されるシリアルバスとしてＩＥＥＥ１３９４を挙げたが、本発明の適用はこれに限定されるものではない。要するに、本発明のサイクリックデータ通信システムは、送信要求を発した全ての通信ノードに対して、固有の通信サイクルに対する毎回送信を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作動する定時通信フェーズと、送信要求を発した通信ノードに対して、固有の通信サイクル内における定時通信フェーズを除く残り期間において、送信データ量の最大値を保証しつつ各通信ノードに対して順次に送信機会を与えるための調停機能が作動する非同期通信フェーズとが具備された規格されたシリアルバスに広く応用が可能である。
【０１４１】
【発明の効果】
以上の説明で明らかなように、この発明によれば、例えばＩＥＥＥ１３９４バスのように、定時通信フェーズ（アイソクロナス通信フェーズに相当）と非同期通信フェーズ（アシンクロナス通信フェーズに相当）とを併有するオープン規格化されたシリアルバスの仕様を前提として、各通信ノードの最大送信データ量を保証しつつ、定時性を有するサイクリックデータ転送を実現可能となる。
【図面の簡単な説明】
【図１】ＩＥＥＥ１３９４バスの標準的な送信手順を示すタイムチャートである。
【図２】アイソクロナスサイクルを全てアイソクロナスフェーズとして使用したデータ通信を示すタイムチャートである。
【図３】シリアルバスと各通信ノードとの関係を示す説明図である。
【図４】各通信ノードのハードウェア構成を概略的に示すブロック図である。
【図５】管理局側の処理を示すフローチャートである。
【図６】通常局側の処理を示すフローチャートである。
【図７】サイクリックデータの送信タイミングを示すタイムチャートである。
【図８】分割データの送信タイミングの一例を示す説明図である。
【図９】サイクリック通信サイクル内における各通信ノードの送信タイミングを示すタイムチャートである。
【図１０】データリンク機能を有するＰＬＣシステムの構成図である。
【図１１】データリンク機能を有するＰＬＣのリモートＩ／Ｏシステムの構成図である。
【図１２】データリンク機能を有し、かつリモートＩ／Ｏシステムを有するＰＬＣシステムの構成図である。
【符号の説明】
Ｂｕｓ  シリアルバス
４００  回路装置
４０１  通信コントローラ
４０２  ＣＰＵ
４０３  ＲＯＭ
４０４  ＲＡＭ
４０５  送受信バッファ
４０６  アイソクロナスリソースレジスタ
Ａ１１〜Ａ４４  ＰＬＣのＩ／Ｏデータ等の記憶エリア
ＩＤ１，ＩＤ２  入力デバイス
ＯＤ１，ＯＤ２  出力デバイス
【図１】
0003646672.tif 000002
【図２】
0003646672.tif 000003
【図３】
0003646672.tif 000004
【図４】
0003646672.tif 000005
【図５】
0003646672.tif 000006
【図６】
0003646672.tif 000007
【図７】
0003646672.tif 000008
【図８】
0003646672.tif 000009
【図９】
0003646672.tif 000010
【図１０】
0003646672.tif 000011
【図１１】
0003646672.tif 000012
【図１２】
0003646672.tif 000013