(57)【要約】  データ交換制御部３１は、第１帯域において相互にデータ交換する為に任意のデータを送信する際に、メッセージ送信要求がある場合には該送信データに付加する。メッセージ許可判定部３２は、第１帯域中の相互のデータ交換によって得られる上記メッセージ送信要求に基づいて、自装置のメッセージ送信可否を判定する。メッセージ送信制御部３３は、自装置のメッセージ送信可と判定された場合には、第２帯域内の所定のタイミングでメッセージを送信する。
2018025491.tif 000002
【特許請求の範囲】
【請求項１】
第１帯域と該第１帯域より後の第２帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムであって、
前記複数のノード装置がそれぞれ、
メッセージ送信要求がある場合には前記第１帯域においてメッセージ送信要求を送信するデータ交換制御手段と、
前記第１帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段と、
自ノード装置がメッセージ送信可と判定された場合には、前記第２帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段とを有する、
ことを特徴とする制御ネットワークシステム。
【請求項２】
前記ネットワークシステムは、スター型トポロジの全二重回線のネットワークシステムであることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項３】
前記所定のタイミングは、前記第２帯域の開始時点であることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項４】
前記各ノード装置は、前記メッセージを前記第２帯域の開始時点で同時に送信を開始することを特徴とする請求項３記載の制御ネットワークシステム。
【請求項５】
前記データ交換制御手段は、自ノード装置のメッセージ送信要求数を前記メッセージ送信要求に付加し、
前記メッセージ許可判定手段は、前記第１帯域で得られた前記メッセージ送信要求数と、前記第２帯域内にシステム全体で送信可能な最大メッセージ数である上限値と、各ノード装置の優先順位に基づいて、前記各ノード装置のメッセージ送信許可数を決定することで自ノード装置のメッセージ送信許可数を決定することを特徴とする請求項１から４のいずれか１項に記載の制御ネットワークシステム。
【請求項６】
前記上限値は、下記の算出式（１）によって算出する、
上限値＝｛単位時間−（中継装置段数×中継装置遅延）−（（中継装置段数＋１）×フレーム伝送遅延）｝÷｛（１フレームサイズ／伝送性能）＋α｝・・・（１）式
ことを特徴とする請求項５記載の制御ネットワークシステム。
【請求項７】
前記上限値は、
前記各ノード装置間の通信に掛かる時間である遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求めて、
該最長経路遅延時間実測値を用いる所定の算出式によって算出することを特徴とする請求項５記載の制御ネットワークシステム。
【請求項８】
前記上限値は、下記の算出式（２）によって算出する、
上限値  ＝  ｛（単位時間−（最長経路遅延時間実測値 − （１フレームサイズ／伝送性能）））｝／（１フレームサイズ／伝送性能）  ・・・（２）式
ことを特徴とする請求項７記載の制御ネットワークシステム。
【請求項９】
１台以上の前記ノード装置が、前記上限値を算出する上限値算出手段を更に有する請求項５記載の制御ネットワークシステム。
【請求項１０】
第１帯域と該第１帯域より後の第２帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムにおける前記各ノード装置であって、
メッセージ送信要求がある場合には前記第１帯域においてメッセージ送信要求を送信するデータ交換制御手段と、
前記第１帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段と、
自ノード装置がメッセージ送信可と判定された場合には、前記第２帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段とを有する、
ことを特徴とするノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スター型トポロジの全二重ネットワークにおいて、ネットワーク全体の伝送量の大容量化を実現するためのネットワーク伝送方式に関する。
【背景技術】
【０００２】
プラント制御用伝送システムにおいては、システムを構成する各機器が定期的に相互に行う、リアルタイム性を保証したデータ通信（データ交換）と、各機器に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に一方向アクセスを行うデータ通信（メッセージ通信）の２種類のデータ通信がある。【０００３】
通信サイクルを、リアルタイム性を保証したデータ通信を行う帯域（コモンメモリ伝送帯域；ＴＳ帯域）と、イベント的に一方向アクセスを行うデータ通信を行う帯域（メッセージ伝送帯域；ＭＳＧ帯域）とに分けて、上記２種類のデータ通信を実現する場合もある。尚、“リアルタイム性を保証する”とは、例えば、定周期の各期間（ＴＳ帯域）内に、データ交換が必要な全ての機器間のデータ交換を完了することを意味する。【０００４】
上記データ交換を実現する為のネットワーク上での効率的な同報通信(ブロードキャスト通信)手法については、既に様々な手法が提案されているが、一例として特許文献１、２の従来技術がある。【０００５】
特許文献１では、各ノードの内蔵タイマによる時分割多重アクセス方式と、マスタノードからの同期化フレームによるスレーブノードの内蔵タイマ補正とを併用することで、各ノードからの送信タイミング重複を防ぎつつ効率の高い伝送を実現している。【０００６】
あるいは、例えば、特許文献２にも、特許文献１と同類の従来技術が、開示されている。【０００７】
メッセージ通信のようなイベント的に一方向アクセスを行うデータ通信は、ネットワークに参加している局の「単位時間当たりのメッセージ送信要求数」に“ばらつき”があり、「単位時間当たりのメッセージ送信要求数」が「伝送可能なメッセージ送信数」を上回ることがある。このため、「単位時間当たりの（通信サイクル毎の）送信可能数」に上限を設け、この上限以下でメッセージ通信を行う必要がある。そこで、ある単位時間内で送信できる局数を管理し、送信権を割り当てられた局がデータ通信を行うことで、「単位時間当たりの送信可能数上限」内でのデータ通信を実現している。【０００８】
上記データ通信を実現するためのメッセージ通信手法についてはすでにさまざまな手法が提案されているが、ここでは一例としてトークン方式がある。トークン方式では、マスタ局が各局からのメッセージ送信要求を受け付け、送信要求を通知した一部の局に対してトークンにて送信権を付与する。送信権を付与された局のみがメッセージ通信を行うことができ、送信権を付与された局はメッセージフレームをネットワーク回線上に送信する。「単位時間当たりの送信可能数上限」内で送信権を付与することで、単位時間当たりの送信可能数を超えずに、イベント的に一方向アクセスを行うデータ通信を実現している。
【特許文献１】特開２００５−１５９７５４号公報
【特許文献２】国際公開番号WO2013/121568号
【発明の開示】
【０００９】
上記特許文献１，２等の従来手法では、物理層をバスあるいはシリアルケーブルのカスケードとしているので、ブロードキャストにより一度に全ての他局へデータ送信することができる。ブロードキャスト送信されたデータの受信タイミングは、各ノード同時あるいはほぼ無視できる時間差であることが想定できる。
【００１０】
ここで、IEEE802.3u(100BASE-TX)やIEEE802.3ab(1000BASE-T)などによるスター型トポロジが知られている。
【００１１】
前述のトークン方式によるメッセージ通信手法を、Ethernetを物理層としたスター型トポロジの全二重回線へ適用しようとした場合、以下の課題がある。
【００１２】
100BASE-TXや1000BASE-TなどのEthernet を伝送路とした全二重回線である場合で、かつトポロジとしてスター型を採用した場合、メッセージ通信に際しては、ある局が送信したフレームデータをスイッチングハブなどの中継装置にて中継することを前提とした伝送を行う構成となる。一般的にスイッチングハブなどの中継装置にて中継する場合、一定の中継遅延が発生するため、１局のフレームデータを全局に同報通信する場合、最大で、最大の中継経路に配置された中継装置の台数分の伝送遅延及び伝送時間が必要となる。
【００１３】
この前提でトークン方式によるメッセージ通信を行った場合、送信権を通知するためのトークンフレーム伝送状態と、フレームを中継するため中継待ち状態であるため、伝送帯域の大半が未使用状態もしくはメッセージ通信以外の伝送状態となる。この為、ネットワーク全体の伝送効率が下がり大容量化を実現することができないという課題がある。
【００１４】
本発明の課題は、スター型トポロジの全二重回線のネットワークシステムにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができる制御ネットワークシステム、そのノード装置等を提供することである。
【００１５】
本発明の制御ネットワークシステムは、第１帯域と該第１帯域より後の第２帯域を有する通信サイクル毎に、複数のノード装置が中継装置を介して相互にデータ交換するネットワークシステムであって、下記の構成を有する。
【００１６】
前記複数のノード装置がそれぞれ、下記の各手段を有する。
・メッセージ送信要求がある場合には前記第１帯域においてメッセージ送信要求を送信するデータ交換制御手段；
・前記第１帯域中に得られる前記メッセージ送信要求に基づいて、自ノード装置のメッセージ送信可否を判定するメッセージ許可判定手段；
自ノード装置がメッセージ送信可と判定された場合には、前記第２帯域内の所定のタイミングでメッセージを送信するメッセージ送信制御手段。
【図面の簡単な説明】
【００１７】
【図１】（ａ）、（ｂ）は、本例の制御ネットワークシステムの全体構成図である。
【図２】（ａ）、（ｂ）は、ノードのドライバの処理を示すフローチャート図である。
【図３】本例のデータ送受信動作の一例を示す図である。
【図４】ノードの処理部の処理を示すフローチャート図である。
【図５】中継装置段数が１段のＭＳＧ帯域におけるメッセージ送受信動作例（その１）である。
【図６】中継装置段数が１段のＭＳＧ帯域におけるメッセージ送受信動作例（その２）である。
【図７】中継装置段数が２段の場合のネットワーク構成例である。
【図８】中継装置段数が２段のＭＳＧ帯域におけるメッセージ送受信動作例（その１）である。
【図９】中継装置段数が２段のＭＳＧ帯域におけるメッセージ送受信動作例（その２）である。
【図１０】中継装置段数が３段の場合のネットワーク構成例である。
【図１１】最長経路遅延時間の実測の為の動作例である。
【図１２】図１０のネットワーク構成例における最長経路を示す図である。
【図１３】上限値の算出式について説明する為の図である。
【図１４】本例の制御ネットワークシステムの機能構成図である。
【図１５】上限値を求める処理方法を示すフローチャート図である。
【図１６】上限値を求める具体例の処理フローチャート図である。
【図１７】スター型トポロジにおける通信動作の具体例を示す図である。
【図１８】従来手法を適用した場合の各局における処理部の処理例を示すフローチャート図を示す。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。
図１（ａ）、（ｂ）は、本例の制御ネットワークシステムの全体構成図である。【００１９】
図１（ａ）には、本例の制御ネットワークシステムの概略構成を示す。
本例の制御ネットワークシステムは、複数台のノード１０が、１台以上の中継装置２０を介して、スター型トポロジにて全二重の通信回線によって接続される構成である。そして、上記ＴＳ帯域と上記ＭＳＧ帯域を有する通信サイクル毎に、ＴＳ帯域において各ノード１０が中継装置２０を介して相互にデータ交換するネットワークシステムである。【００２０】
また、特に説明しないが、例えば上記特許文献１，２等の先願の同期手法によって、全てのノード１０の通信サイクルが同期しており、以ってＭＳＧ帯域の開始タイミングも同一となっていることを前提としている。尚、通信サイクルを同期させる方法は、先願の同期手法に限るものではなく、何等かの既存の手法によって同期させればよい。【００２１】
このような制御ネットワークシステムにおいて、本手法では、ＴＳ帯域において各ノード１０が、上記相互にデータ交換する際にメッセージ送信要求がある場合にはその旨を示す情報（コマンドや要求数など）を当該データに付加する。ＴＳ帯域におけるデータ交換完了後、各ノード１０がそれぞれ全ノード１０のメッセージ送信要求の有無と要求数とに基づいて同一のアルゴリズムによって許可局と許可数を判定する。これより、ＭＳＧ帯域の開始時から（トークン無しで）許可局全てがメッセージ送信を開始できる。【００２２】
トークンによる許可通知（送信権付与）が必要なくなるため、ＭＳＧ帯域をメッセージ伝送のためだけに効率良く使用でき、以って従来よりも多くのメッセージを送信可能となる。つまり、ネットワーク全体の単位時間当たりのメッセージ伝送量の向上（増大させる）を実現することができる。【００２３】
また、上記許可局・許可数の判定には所定の上限値を用いる。この上限値は、ＭＳＧ帯域内に送信される全メッセージが、中継装置の伝送可能帯域の上限内（ＭＳＧ帯域内）で伝送されるように決定されている。これより、ＭＳＧ帯域内に全てのメッセージ送受信が確実に完了するができることになる。【００２４】
図１の構成例の説明に戻る。
上記の通り本例の制御ネットワークシステムは、スター型トポロジで全二重回線の構成であり、図示の例では、システムを構成する各機器（ノード１０）が、それぞれ、全二重回線（通信線１，２）を介してＨＵＢ（スイッチングハブ）等の中継装置２０に接続している。尚、図示の例では、ノード１０は、図示の局１、局２、局３、局４の４台があるものとする。【００２５】
そして、各ノード１０は、中継装置２０を介して、他のノード１０と通信可能である。ここでは、通信線１がノード１０から中継装置２０へのデータ送信用（上り回線）、通信線２が中継装置２０からノード１０へのデータ送信用（下り回線）であるものとする。【００２６】
中継装置２０は、一般的な既存のスイッチングハブ等であってよく、従ってその構成・動作については特に図示・説明はしないが、当然、データフレーム等を中継する機能等を有する。これは例えば、受信したデータフレームを一時的に記憶するＲＡＭ等の記憶部２２を備え、当該一時的に記憶したデータフレームを宛先のノードに転送する処理部２３（ＣＰＵ等）等を備える。処理部２３の内蔵メモリには予め所定のプログラムが記憶されており、処理部２３のＣＰＵがこのプログラムを実行することで、中継装置２０のパケット中継機能が実現される。中継装置２０のパケット中継機能は、一般的なものであり、ここでは特に詳細には説明しない。【００２７】
中継装置２０は、上記各通信線１，２が接続される各ポート（不図示）を有しており、任意のポートを介して受信したデータフレームを、当該データフレームの宛先局に対応するポートを介して送信することで、中継・転送を行っている。【００２８】
例えば、図１の構成で局１から局４へデータ送信する場合、局１から通信線１を介して中継装置２０へデータフレームが伝送されて、このデータフレームが、中継装置２０で一時的に記憶された後、中継装置２０から通信線２を介して局４へ転送されることになる。【００２９】
なお、本説明では中継装置２０は、例えば、ノンブロッキングタイプのスイッチングハブ等を想定としているが、勿論、この例に限らない。中継装置２０の転送制御部２１は、送信数の総和が各ポートの送信性能上限（例えば１G（ギガ）bit／sec）内であれば、送信可能である。それ故、例えば後述する算出式（１）によって上限値を決定することが望ましいが、この例に限らない。算出式（１）による上限値の算出に関しては後に詳細に説明するものとする。【００３０】
従来技術では、上述したように、トークンによる送信権付与の為の通信でメッセージ帯域を消費しており、実質的にメッセージ伝送を行っていない状態が少なくない。この為、全体としてのメッセージ伝送効率が悪いことになる。【００３１】
これに対して、本手法では、メッセージ伝送に関してはマスタ／スレーブを無くし、以ってマスタがトークンによって許可を与えることもなく、効率良いメッセージ伝送を実現することができる。尚、上記の通り、マスタ／スレーブを無くすのはメッセージ伝送に係わることであり、特定の局（マスタ）がメッセージ伝送に係わるトークンの管理を行うようなものではないという意味である。従って、メッセージ伝送に係わること以外についてはマスタ／スレーブがあっても構わない。【００３２】
本例の制御ネットワークシステムは、例えば100BASE-TXや1000BASE-TなどのEthernet を伝送路とした全二重回線であって、かつトポロジとしてスター型を採用したものである（例えばＬＡＮなど）。従って１台以上の中継装置２０を有する構成であるが、図では簡単のため中継装置２０は１台のみ示すが、この例に限らない。【００３３】
また、本例の制御ネットワークシステムは、従来技術と同様に、システムを構成する各機器（ノード１０；局）が、自局が備えるタイマによって、データ交換周期（通信サイクル）を生成すると共に、通信サイクル内にＴＣ帯域やデータ交換に使用するＴＳ帯域を生成するが、更にイベント的に一方向アクセスを行うデータ通信（メッセージ通信など）を行う帯域（メッセージ帯域；ＭＳＧ帯域）も生成する。尚、ＴＣ帯域やＴＳ帯域については、ここでは特に説明しない。【００３４】
イベント的に一方向アクセスを行う通信（メッセージ通信等）に関しては、ネットワークに参加している局の単位時間当たりのメッセージ送信要求数に“ばらつき”があり、要求数の同一単位時間当たりの合計が、「伝送可能なメッセージ送信数」を上回ることがある。そのため、「単位時間当たりの全体のメッセージ送信数」に上限値を設け、上限値以内で通信を行う必要がある。そこで、ある単位時間内で送信できる局数を管理し、許可された局のみがメッセージ通信を行うことで、「単位時間当たりの全体のメッセージ送信数」が上限値以内となるようにしている。【００３５】
本例の制御ネットワークシステムは、一例としては、システムを構成する各機器（ノード１０）が、上記ＴＳ帯域において相互にデータ交換を行う必要がある。一例としては、例えば上記通信サイクル内のＴＳ帯域内に全ノード１０間のデータ交換を完了させる必要がある。つまり、一例としては、各通信サイクル毎にそのＴＳ帯域内に、全ノード１０が、それぞれ、自局の任意のデータを、他の全てのノード１０に渡す必要がある。交換するデータは、例えば自局の制御対象機器に係わる何等かのデータ（センサ測定値など）であるが、この例に限らない。尚、各ノード１０は、例えば何等かの制御対象機器（不図示）を制御するコントローラ等であるが、この例に限らない。【００３６】
一方で、上記メッセージ伝送帯域（ＭＳＧ帯域）におけるメッセージ送受信は、１回の通信サイクル内のＭＳＧ帯域内に、その時点で発生したメッセージ全てを送受信しなければならないわけではない。しかしながら、伝送効率を高めて、１回の通信サイクルで出来るだけ多くのメッセージを送受信出来るようになることが望ましい。その一方で、上記の通り、ＭＳＧ帯域の長さは予め決められているので、メッセージ送受信処理が完了する前にＭＳＧ帯域が終了するという事態が起こることは、避けなければならない。【００３７】
本手法は、上記メッセージ伝送帯域（ＭＳＧ帯域）におけるメッセージ送受信の伝送効率を高めるものである。【００３８】
その為に、まず、上記ＴＳ帯域におけるデータ交換を利用する。つまり、メッセージ送信要求があるノード１０は、ＴＳ帯域の送信データ（コモンメモリフレームと呼ぶ）に、メッセージ送信要求（要求数等）を付加する。上記のように、ＴＳ帯域内に、全てのノード１０が、それぞれ、自局のデータを、他の全てのノード１０に渡すので、メッセージ送信要求を他の全ノードが受信することになる。【００３９】
これより、各ノード１０がそれぞれ、同一のアルゴリズムによってメッセージ送信権の割当てを決定することで、全てのノード１０で同一の送信権割当結果が得られることになる。そして、各ノード１０は、それぞれ、自局で決定した送信権割当結果から、自局のメッセージ送信可否や許可数などを認識することができる。【００４０】
上記のように、本手法では、各ノード１０が、それぞれ独自に、他局からのメッセージ送信要求（要求数等）に基づいて、自局のメッセージ送信可否や許可数等を判断することができる。これより、メッセージ伝送帯域において、トークンを送受信する必要なく、自局が許可局であると認識したノード１０は全て、直ちにメッセージ送信を行うことができる。例えば、全てのメッセージ送信許可局が、ＭＳＧ帯域になったら直ちに同時にメッセージの送信を中継装置２０に対して行うように構成する。これより、ＭＳＧ帯域におけるネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量（スループット）の向上を図ることができる。【００４１】
また、上記同一のアルゴリズムによってメッセージ送信権の割当てを決定する処理に関して、全体の許可数が、所定の上限値を越えないようにすることで、ＭＳＧ帯域内に全てのメッセージの送受信が完了するように図ることができる。これに関して、本手法によれば、上記上限値として適切な値を算出することができる。これは例えば後述する算出式（１）等を用いて算出するものであり、詳しくは後述する。また、上限値の算出機能を任意の１台以上のノード１０に搭載することで、運用中にネットワーク構成が変わった場合などでも、新たな構成に応じた適切な上限値を算出することもできる。【００４２】
図１（ｂ）に、図１（ａ）の制御ネットワークシステムの詳細構成例を示す。
図示の例では、各ノード１０は、ドライバ１１、処理部１２、サイクルタイマ１３、センドタイマ１４、メッセージ用センドタイマ１５等を有している。サイクルタイマ１３は、ここでの詳細な説明は省略するが、上記通信サイクルを生成する為のタイマであり、且つ、全ノード１０で同期されている。センドタイマ１４も、ここでの詳細な説明は省略するが、ＴＳ帯域における自局のデータ送信タイミングを決定するタイマである。【００４３】
メッセージ用センドタイマ１５は、各ノード１０において、ＭＳＧ帯域における自局のデータ送信タイミングを決定するものである。尚、従来の不図示のメッセージ用センドタイマは、マスタ局のみが備えていれば良く、そのタイムアウトによりマスタ局からトークンが送信されるものであった。【００４４】
メッセージ用センドタイマ１５は、本例では、全てのノード１０で同一タイミングでタイムアウトするように設定されている。つまり、全てのノード１０において、そのメッセージ用センドタイマ１５のタイムアウトが、ＭＳＧ帯域の開始タイミングとなるように、設定されている。例えば、全てのノード１０のメッセージ用センドタイマ１５に同一の設定値が設定されており、且つ、サイクルタイマ１３のタイムアウトの時に起動するようにしている。【００４５】
尚、メッセージ用センドタイマ１５は必ずしも設ける必要はなく、センドタイマ１４を、ＭＳＧ帯域の開始タイミングでタイムアウトするように再起動するようにしても良い。【００４６】
処理部１２は、ノード１０のメインの処理を実行するものであり、例えば不図示の制御対象機器の制御、その状態を示す計測データ等の収集、サイクルタイマ１３、センドタイマ１４、メッセージ用センドタイマ１５等の設定・起動の管理、送信データフレーム（パケット）の生成など、様々な処理を行う。生成したパケットはドライバ１１に渡す。【００４７】
ドライバ１１は、例えば、上記処理部１２からの要求に応じて上記送信データフレームを他ノードへ送信したり、他ノードからの送信データフレームを受信するとこれを処理部１２に渡す等、通信回線１、２を介した通信処理を行う処理部（通信専用プロセッサ等）である。【００４８】
上記通信線１，２は、ドライバ１１に接続している。また、上記の通り、通信線１，２は中継装置２０に接続している。ドライバ１１は、上記送信データフレームを他ノードへ送信する場合、当該他ノード宛のパケットを通信線１を介して中継装置２０に伝送する。また、他ノードからの送信パケットを中継装置２０が通信線を介して転送してくると、これを処理部１２に渡す。【００４９】
中継装置２０は、図示の転送制御部２１を有しており、転送制御部２１が上記パケットの中継・転送を実行する。【００５０】
図２（ａ）、（ｂ）は、ノード１０のドライバ１１の処理を示すフローチャート図である。尚、ドライバ１１内蔵の不図示の演算プロセッサが、内蔵の不図示のメモリに予め記憶されているアプリケーションプログラムを実行することで、図２（ａ）、（ｂ）の処理が実現される。【００５１】
図２（ａ）は、自局データ送信の際のドライバ１１の処理を示す。
ノード１０が有する上記処理部１２（ＣＰＵ／ＭＰＵ等）は、所定のソフトウェア（プログラム）等を実行することで、所定の制御処理等を実行している。そして、この処理の１つとして自局のデータを送信するイベントが発生した場合（一例がセンドタイマ１４のタイマアップ）、このデータと送信要求をドライバ１１に渡す。【００５２】
ドライバ１１は、上記データと送信要求を受けると（ステップＳ１１）、このデータフレームを送信する（ステップＳ１２）。これは、上記の通り、通信線１を介して中継装置２０へ送信して中継させる。【００５３】
また、他局の送信データ（パケット）を受信する場合もある。この場合は、上記の通り、中継装置２０が通信線２を介して転送してくる。【００５４】
図２（ｂ）は、データ受信の際のドライバ１１の処理を示す。
ドライバ１１は、上記通信線２を介して任意のパケットを受信すると、図２（ｂ）の処理を実行する。まず、受信パケットの送信元をチェックして、送信元が自局である場合には（ステップＳ２１，ＮＯ）、このパケットを破棄する（ステップＳ２３）。あるいは、同じパケットを既に受信済みである場合にも（ステップＳ２４，ＹＥＳ）、このパケットを破棄する（ステップＳ２６）。これらは何れも正常な状態では有り得ないことであり、何等かの異常があったと見做せるので、受信パケットを破棄する。【００５５】
ステップＳ２４がＮＯの場合、すなわち異常が無く正常受信と見做せる場合には、受信パケットのデータを処理部１２に渡す（ステップＳ２５）。処理部１２は、このデータを用いて何等かの処理を行うことになる。【００５６】
尚、上述した図２（ａ）、（ｂ）の処理におけるパケットは、上記ＴＳ帯域で送受信するデータパケット（コモンメモリフレーム）、上記ＭＳＧ帯域で送受信するメッセージのパケットのどちらであってもよい。【００５７】
尚、言うまでもないが、各パケット（データフレーム）には、送信元ノードや宛先ノードの識別番号（局ＩＤなど）が付与されている。【００５８】
図３は、本例のデータ送受信動作に一例を示す図である。
本例では、従来技術と同様、サイクルタイマ１３によって図３に示す通信サイクルが生成される。サイクルタイマ１３は、起動→タイマアップ→起動→タイマアップ→起動・・・を繰り返し実行し、定周期の図示の通信サイクルを生成する。【００５９】
１つの通信サイクルは、図示のＴＣ帯域とＴＳ帯域とＭＳＧ帯域とに分割される。
ＴＣ帯域、ＴＳ帯域については特に詳細には説明しないが、ＴＳ帯域は、各ノード１０が相互にデータ交換する為の帯域である。ここでは“相互にデータ交換”とは、全てのノード１０が、他の全てのノード１０に、自局のデータを渡すことを意味する。ＴＳ帯域において各ノード１０が自局のデータを送信するタイミングは、そのノード１０のセンドタイマ１４によって決定される。全てのセンドタイマ１４は、サイクルタイマ１３のタイマアップ時に起動される。【００６０】
リアルタイム性の保証が必要なコモンメモリ伝送を、コモンメモリ伝送帯域（ＴＳ帯域）にて実施する。イベント的に一方向アクセスを行うメッセージ伝送は、別途、メッセージ帯域（ＭＳＧ帯域）を設け、実施している。【００６１】
ＴＳ帯域における各ノードのデータ送信動作は、詳しい説明は省略するが、簡単に説明する。まず、各ノード１０のセンドタイマ１４は、予め相互に異なる値が設定されており、以って相互に異なるタイミングでタイマアップする。各ノード１０は、自局のセンドタイマ１４のタイマアップによって、自局のデータを送信する。このデータの宛先は他のノード１０全てであり（ブロードキャスト）、中継装置２０に渡すと、中継装置２０が他のノード１０全てに対して当該データを転送する。【００６２】
尚、ここでは、図３における中継装置２０の“受信”“送信”動作における“送信”動作は、そのパケットの宛先全て（上記の通り本例では送信元以外の全ノード１０）に送信することを意味するものとする。例えばＴＳ帯域に関して図上に「局２」で示す矩形は、局２からの送信パケットを意味する（“局２パケット”等と記すものとする）。中継装置２０は、図示のようにこの“局２パケット”を受信完了すると直ちに送信（転送）開始し、送信先は送信元（局２）以外の全局である。これより、図示のように、この“局２パケット”は、局１、局３、局４で“受信”されているが、局２では受信されていない。【００６３】
上記動作は更に詳しくは、中継装置２０は、局２に対応するポートを介して上記“局２パケット”を受信開始すると、これを内蔵メモリ（ＲＡＭ等）に記憶していく。そして、“局２パケット”の全データを内蔵メモリに記憶完了したら（受信完了したら）、この“局２パケット”を、局１に対応するポートと局３に対応するポートと局４に対応するポートとから一斉に送信する。【００６４】
ＴＳ帯域における各ノード１０の送信パケット数は、予め決まっており、例えば図示の例では局１は常に１つのパケットのみであるが、局２は常に３つのパケットを送信することになる。各ノード１０のセンドタイマ１４の設定値は、上記各ノード１０の送信パケット数に応じて予め決められている。【００６５】
以上は先願のＴＳ帯域に係わる動作であるが、本手法では、ＴＳ帯域に係わり更に下記の動作を行う。【００６６】
すなわち、本手法では、各ノード１０は、メッセージを送信する必要がある場合、上記ＴＳ帯域で送信するコモンメモリフレームの一部にメッセージ送信要求を示す情報（本例では要求数等）を付与することで、他のノード１０全てに対して、メッセージ送信要求がある旨と要求数を通知している。【００６７】
各ノード１０は、上記送信要求数が付与されたコモンメモリフレームを受信した場合、送信元のノード１０の識別情報と共にメッセージ送信要求数を一時的に記憶する。そして、各ノード１０は、それぞれ、後に、上記一時的に記憶したデータに基づいて、メッセージの送信許可局と許可数を決定する。この決定処理として全てのノード１０が同一のアルゴリズムを用いることで、正常であれば全てのノード１０で同じ決定結果が得られるはずとなる。【００６８】
例えば、各ノード１０が、それぞれ、ラウンドロビン等の同一の優先順づけ判定を行い、送信権割り当て局を判断する。この時、全コモンメモリフレームが全てのノード１０に正しく伝送できれば、全てのノード１０において上記の通り同一の判断アルゴリズム（送信権割り当て局の判断アルゴリズムと呼ぶ）を適用することで、全てのノード１０において同一の送信権割り当て結果（許可局と許可数）が得られることになる。【００６９】
各ノード１０は、上記送信権割り当て局の判断結果を元に、自局のメッセージ送信可否を判断し（送信可である場合には更に送信許可数を認識して）、送信可能である場合に、ＭＳＧ帯域の開始時点からメッセージフレームの送信を開始する。これは、本例ではメッセージ送信許可された全てのノード１０がＭＳＧ帯域開始と同時にメッセージ送信開始することになるが、この例に限らない。【００７０】
メッセージ送信数の総和が中継装置２０の各ポートの送信性能上限内であれば、送信可能である。それ故、例えば後述する算出式（１）によって上限値を決定することが望ましいが、この例に限らない。算出式（１）による上限値の算出に関しては後に詳細に説明するものとする。【００７１】
上記のように、本手法では、ＴＳ帯域におけるデータ交換を利用して、メッセージ送信要求があるノード１０は、自局が送信するデータフレームにメッセージ送信要求（要求数等）を付加することで、送信要求の有無や要求数等を他のノード１０全てに通知することができる。【００７２】
そして、ＴＳ帯域の最後には、全てのノード１０が、それぞれ、自局を含む全局のメッセージ送信要求の有無や要求数を知ることができるので、各ノード１０が各々上記送信権割り当て局を判断する処理を実行し（後述するステップＳ４４など）、上記の通り同一の判断結果が得られることになる。これは、例えば、上記全局のメッセージ送信要求の有無や要求数と、予め決定されている上限値と、現在の各局の優先順位などに基づいて、メッセージ送信の許可局や許可数を決定する。【００７３】
図３に示す例の場合、局１と局２と局３にはメッセージ送信要求があり、局４にはメッセージ送信要求が無い。また、局１は要求数が‘３’、局２は要求数が‘１’、局３は要求数が‘４’である。【００７４】
また、ここでは、仮にシステム全体でＭＳＧ帯域中に３通のメッセージフレームを伝送可能であるものとし（上限値＝３とする；尚、上限値の算出方法は後述する）、且つ、優先順位は仮に局２、局３、局４、局１の順で優先度付けが行われたとする。この場合、局２→局３→局４→局１の順で許可を割り当てていく。まず、局２は、ＭＳＧ帯域内で送信可能な３通のメッセージフレームに対して、メッセージ送信要求が１であるので、すべてのメッセージフレームを送信可能となり、許可数＝‘１’となる。続いて、局３は、ＭＳＧ帯域内で送信可能な残りの２通のメッセージフレームに対して、メッセージ送信要求が４であるので、許可数は‘２’となる。これで許可数の合計が上限値に達したので、局１は許可されない（局４は要求を出していない）。【００７５】
そして、各ノード１０は、上記判断処理（ステップＳ４４など）により各要求ノードの許可／不許可と許可数を得ることで、自局の許可／不許可と許可数を認識することになる（後述するステップＳ４５）。【００７６】
上記一例では上記判断処理の結果、全てのノード１０がそれぞれ「許可局は局２と局３であり、局２の許可数は‘１’、局３の許可数は‘２’である」と判断することになる。これより、局２は、自局のメッセージ送信が許可され、許可数が‘１’であるものと認識し、局３は、自局のメッセージ送信が許可され、許可数が‘２’であると認識する。一方、局１は、自局のメッセージ送信が今回は不許可であったと認識する。【００７７】
これより、図示のように、局２と局３は、それぞれ、ＭＳＧ帯域になったら、トークンを受信する必要なく、直ちに自局のメッセージ送信を開始する。これは、上記の通り、局２は１通のメッセージを送信し、局３は２通のメッセージを送信する。【００７８】
このように、トークンに係わる通信動作が必要ないため、ＭＳＧ帯域開始時点から全許可局がメッセージ送信開始できるので、従来技術と比較して、メッセージ伝送効率が向上して、より多くのメッセージ伝送を行うことが可能となることが分かる。【００７９】
尚、図３のＭＳＧ帯域の動作に関して、例えば図示の「局３−１ＭＳＧ」の矩形は、局３からの送信メッセージを意味する。また、図示の中継装置２０の“受信”動作において、同タイミングで「局３−１ＭＳＧ」と「局２ＭＳＧ」が重なっているのは、この２つのメッセージの受信処理を同時並行的に行っていることを意味している。そして、その後、局３からの２通目のメッセージである「局３−２ＭＳＧ」を受信している。【００８０】
そして、本例では、仮に、上記３つのメッセージ全てが、宛先が全局であるものとしており、これより図示の中継動作となっている。つまり、中継装置２０は、まず上記「局２ＭＳＧ」を送信元（局２）以外の全てのノード１０に転送し、これより図示のように局１、局３、局４が「局２ＭＳＧ」を受信している。これは、「局３−１ＭＳＧ」等の他のメッセージについても同様の動作であり、その説明は省略する。【００８１】
尚、上記優先順位は、例えば所定のカウンタ（不図示）の現在のカウント値に基づいて決定される。このカウンタは図示していないがステップＳ３４がＹＥＳとなる毎にカウントアップされる（＋１インクリメント）。また、このカウンタは、本例では、１→２→３→４→１→２→３→４→１・・・というように、１〜４の間をサイクリックにカウントする。そして、その局番がカウント値と同一であるノード１０が、最も優先順位が高いものとする。例えばカウンタのカウンタ値が‘３’であるときには、局３が最も優先順位が高くなり、この例では優先順位が高い順に、局３→局４→局１→局２となる。【００８２】
後述するステップＳ４４の処理は、例えば上記のような一例の場合には、所定のアルゴリズム（後述する算出式（１））と、データ交換によって得られた各ノード１０のメッセージ送信要求の有無と要求数と、上限値と、現在の優先順位とに基づいて、各ノードのメッセージ送信可否と許可数を決定する処理と言うことができる。【００８３】
図４は、ノード１０の処理部１２の処理を示すフローチャート図である。
尚、処理部１２は、不図示のＣＰＵ／ＭＰＵ等の演算プロセッサや不図示のメモリ等の記憶部を有しており、記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、例えば図４や図１５に示す処理が実行され、図１４に示す各種処理機能が実現される。【００８４】
メッセージ送信に関しては、従来ではマスタ局で送信権割り当て局判定を行っていたが、本例では全ノード１０でそれぞれ図４の処理を行うことで各々で送信権（送信許可数）割当て判定を行う。この判定に伴って自局のメッセージ送信可否と割当数が判定される。【００８５】
このように、本例では、トークンフレームによる送信権の付与を行わず、各局が能動的にメッセージ送信可否や割当数などを判断する。そして、自局がメッセージ送信可能である場合には、メッセージ伝送帯域になったらトークンを待つことなく自局のメッセージを送信する。よって、本例では、マスタ局、スレーブ局の区別は必要ない。【００８６】
図４の処理は、随時実行されるものであり、基本的には何等かのイベント待ち状態であり（ステップＳ３１）、何等かのイベントが発生する毎に（ステップＳ３２，ＹＥＳ）、発生したイベントの内容を判定して（ステップＳ３３）それに応じた処理を実行する。【００８７】
すなわち、発生したイベントが、サイクルタイマ１３のタイムアウト（サイクルＴ．Ｏ．）である場合には（ステップＳ３４，ＹＥＳ）、ステップＳ３５〜Ｓ３８の処理を実行する。【００８８】
つまり、基本的には、センドタイマ１４に所定の設定値をセットして（ステップＳ３５）センドタイマ１４を起動する（ステップＳ３８）が、この起動前に、自局のメッセージ送信要求の有無を確認して、ある場合には（ステップＳ３６，ＹＥＳ）、メッセージ送信要求数（単に要求数という場合もあるものとする）をセット＆エントリーする（ステップＳ３７）。そして、センドタイマを起動する（ステップＳ３８）。尚、セットとはコモンメモリフレーム中に格納することであり、エントリーするとは不図示の“送信権管理を行うためのエントリーテーブル”（以下、エントリーテーブルと記す）に記憶することである。【００８９】
これによって後述するステップＳ４０の処理によって上記要求数が付加されたコモンメモリフレームが送信されると、上述した中継装置２０の中継処理によって、他の全てのノード１０にコモンメモリフレームが渡されることで、他の全てのノード１０にメッセージ送信要求数が渡されることになる。渡されたメッセージ送信要求数は、各ノード１０の上記“エントリーテーブル”に記憶される。そして、各ノード１０毎に、それぞれ、自局の上記“エントリーテーブル”に記憶された各局のメッセージ送信要求数等に基づいて、後述するステップＳ４４の処理を実行することになる。【００９０】
ここで、上述したことから、本例では、上記ステップＳ３５でセンドタイマ１４にセットする設定値は、先願と同様、全てのノード１０で相互に異なる設定値となるようにし、以って全てのノード１０で相互に異なるタイミングでコモンメモリフレームが送信されるようにするが、この例に限らない。本手法は、メッセージ送信に関するものであり、コモンメモリフレームの送信方法については何でも良い。【００９１】
また、発生したイベントが、センドタイマ１４のタイムアウト（センドＴ．Ｏ．）である場合には（ステップＳ３９，ＹＥＳ）、自局のデータ（コモンメモリフレーム）を送信させる（ステップＳ４０）。これは、上記自局のデータ（場合によってはメッセージ送信要求が付加されている）を、ドライバ１１に渡すものである。これより、上記の通り、ドライバ１１は、上記ステップＳ１１のデータ＆送信要求を受けることになり、上記ステップＳ１２によりこのデータを送信することになる。宛先は全局（ブロードキャスト）であり、自局が接続している中継装置２０に送信して、中継装置２０で中継・転送してもらうことになる。【００９２】
更に、メッセージ用センドタイマ１５に所定の設定値をセットして（ステップＳ４１）起動する（ステップＳ４２）。これは、上記ステップＳ３５，Ｓ３８の処理の際に一緒に、ステップＳ４１，Ｓ４２の処理を行うようにしてもよい。全てのノード１０で同時にメッセージ用センドタイマ１５がタイマアップするように構成するのであれば、その実現方法は何でも良い。特に、上記先願の同期化方法により、全てのノード１０のサイクルタイマは同期しているので、これを基準にして全ノード１０のＭＳＧ帯域開始タイミングを同一とすることは、容易に実現できる。【００９３】
尚、上記の起動後、メッセージ用センドタイマ１５がタイムアウトするイベントが発生したときに、後述するステップＳ４３の判定がＹＥＳとなることになる。上記のように、全てのノード１０で同一タイミングでＭＳＧ帯域となり、送信許可されたノード１０は直ちに１通目のメッセージを送信する。勿論、複数送信許可されたノードは、続いて、２通目以降のメッセージ送信も行うことになる。【００９４】
尚、上記ステップＳ３８で起動したセンドタイマ１４が、タイマアップするイベントが発生したときに、上記ステップＳ３９がＹＥＳとなることになる。【００９５】
また、発生したイベントが、メッセージ用センドタイマ１５のタイムアウト（センドＴ．Ｏ．）である場合には（ステップＳ４３，ＹＥＳ）、ステップＳ４４〜Ｓ４７の処理を実行する。【００９６】
すなわち、まず、メッセージ送信許可局判定を行う（ステップＳ４４）。この処理は、各ノード１０のメッセージ送信許可数を決定する処理でもあり、それによって自局のメッセージ送信可否とメッセージ送信許可数が決定される（ステップＳ４５）。【００９７】
そして、上記ステップＳ４５の決定に基づいて、自局のメッセージ送信要求があり且つ送信が許可された場合には（ステップＳ４６，ＹＥＳ）、自局のメッセージ送信許可数の分だけ、メッセージフレームを送信する（ステップＳ４７）。【００９８】
一方、そもそも自局のメッセージ送信要求がない場合あるいはメッセージ送信が許可されなかった場合などには（ステップＳ４６，ＮＯ）、メッセージ送信は行われない。【００９９】
また、発生したイベントが、コモンメモリフレーム受信である場合には（ステップＳ４８，ＹＥＳ）、このコモンメモリフレームのデータを、不図示のコモンメモリの該当領域に格納する（ステップＳ４９）。尚、ここでは、上記ステップＳ４０の処理で送信されるフレームを、コモンメモリフレームと呼ぶものとする。上記図２（ｂ）等の処理により、任意の他局が上記ステップＳ４０の処理により送信したコモンメモリフレームをドライバ１１が受信し、これをドライバ１１が上記ステップＳ２５により処理部１２に渡すと、上記ステップＳ４８の判定がＹＥＳとなることになる。【０１００】
また、受信したコモンメモリフレーム中にその送信元ノード１０で上記ステップＳ３７により格納されたメッセージ送信要求数が含まれている場合には、メッセージ送信要求があったものと見做して当該要求数を送信元ノード１０のＩＤなどと共に上記“エントリーテーブル”に追加記憶しておく（ステップＳ５０）。このエントリーテーブル”は、後に上記ステップＳ４４の処理の際に参照される。尚、各フレームには、当然、送信元ノードのＩＤ（識別情報）等が含まれている。【０１０１】
尚、特に図示していないが、メッセージフレームを受信した場合、ドライバ１１が受信したメッセージを処理部１２に渡し、処理部１２は、当該メッセージフレームの宛先が自局である場合には当該メッセージフレームを取込み、宛先が自局ではない場合には当該メッセージフレームを破棄するようにしてもよい。【０１０２】
上記のように本例では、コモンメモリフレームを受信した各ノード１０（各局）は、それぞれが、送信元局のメッセージ送信要求を受け付ける。つまり、ネットワークに参加する各局（ノード１０）からのメッセージ送信要求（要求数）を、各局がそれぞれ受け付け、各局がそれぞれ独自に、メッセージの送信許可局と割当数（送信許可数）を判定する（ステップＳ４４）。各々が独自に判定しても、判定アルゴリズムは同一であるので、同一のデータが与えられれば同じ判定結果が得られることになる。つまり、各局からの全コモンメモリフレームが全て正しく伝送できれば、全ての局で、同一の割当て結果（判定結果）が得られることになる。各局は、自局におけるメッセージ送信権割当て判定結果を元に、自局のメッセージ送信可否と割当数を判定する。そして、メッセージ送信可能である場合には、メッセージフレームの送信を、全局が同期したメッセージ用センドタイマ１５を元に同時に行っている。【０１０３】
ステップＳ４４のメッセージの送信許可局と割当数（送信許可数）の判定方法は、既存の任意の方法であってよく、例えば均等割当てや、あるいは“重み付けラウンドロビン”等の優先順付け割当てを行ってもよいし、あるいはこれらの組み合わせであってもよいし、他の任意の既存手法を用いても良い。何れにしても、この判定方法自体は、特に制限はなく、既存の何等かの手法や、当該既存手法の組み合わせなど、何でもよい。【０１０４】
ステップＳ４４のメッセージの送信許可局と割当数（送信許可数）の判定処理は、従来ではマスタ局のみが行っていた処理を、全てのノード１０で各々実行するようにしたものと見做してもよく、従ってこれ以上詳細には説明しないが、割当数（送信許可数）の合計値が、所定の上限値を越えないようにする必要がある。【０１０５】
ここで、上記のように、ＭＳＧ帯域におけるシステム全体でのメッセージ送信数には上限がある。この上限値を越える数のメッセージが送信された場合、ＭＳＧ帯域内に全てのメッセージの送受信が終わらないことになる。この上限値は固定的には決まらず、システムの構成・性能等に応じたものとなる。【０１０６】
この様な上限値の算出方法について、以下、説明する。
本例では、上限値（単位時間当たりのメッセージ送信可能数）は、例えば下記の算出式（１）により算出する。
上限値＝｛単位時間−（中継装置段数×中継装置遅延）−（（中継装置段数＋１）×フレーム伝送遅延）｝÷｛（１フレームサイズ／伝送性能）＋α｝・・・（１）式【０１０７】
上限値は、上記算出式（１）で得られる値を、小数点以下切捨てしたものである。【０１０８】
これによって求められる上限値は、単位時間（ＭＳＧ帯域の長さ）から、中継装置２０を経由した際の伝送遅延時間や伝送に係わる遅延時間等を差し引いた時間内で、メッセージ送達完了することができる最大メッセージ数（システム全体で送信可能なメッセージ数）であると言える。1つの局のみが上限値のメッセージ数のメッセージを送信した場合が、“メッセージ送達完了するまでに掛かる時間”が最も多くなると考えられる（但し、中継装置２０が１段の場合は例外）。【０１０９】
また、中継装置段数が増えると、中継装置遅延とフレーム伝送遅延が増加するため、伝送可能なフレーム数は減少する。上記算出式（１）によれば、中継装置段数が増えるほど、上限値が減少することになる。【０１１０】
上記算出式（１）における各項目について、図５に示す一例を参照しながら、以下に説明する。尚、図５は、中継装置段数が１段の場合（図１の場合など）におけるＭＳＧ帯域におけるメッセージ送受信動作例である。【０１１１】
・単位時間；ＭＳＧ伝送帯域の長さ
・中継装置段数；中継装置２０の台数【０１１２】
・中継装置遅延；中継装置２０における中継処理に掛かる時間。ここでは一例として、中継装置２０がストア&フォワード方式である場合に応じて、中継装置２０が１フレームを受信完了するのに掛かる時間とするが（図５）、この例に限らない。例えば、中継装置２０がカットスルー方式である場合には、１フレームを受信完了しなくても途中で転送開始できるので、それに応じた中継装置遅延の値（図５の例より短くなる）を設定すればよい。何れにしても開発者等が適宜判断して設定すればよいが、最悪なケースに応じて（最も遅延時間が長い中継装置２０に合わせて）設定値を考えることが望ましい。【０１１３】
・フレーム伝送遅延；ノード１０−中継装置２０間のデータ伝送に掛かる時間；図５に示すように、例えば局１のフレーム送信開始時から中継装置２０のフレーム受信開始時までに一定の遅延が生じる。尚、各ノード１０−中継装置２０間の伝送路の長さにバラツキがある等で実際のフレーム伝送遅延にバラツキがある場合、最悪値（最も長いもの）を予め開発者等が固定値として設定しておく。【０１１４】
・伝送性能；ノード１０−中継装置２０間の伝送路上の伝送性能；本例では例えば１Gbit／sec等とするが、この例に限らない。【０１１５】
・α；フレーム間ギャップ。例えば図５に示すような、１つのメッセージフレーム送信完了時から次のメッセージフレーム送信開始出来るまでに掛かる時間。【０１１６】
上記算出式（１）において、上記（１フレームサイズ／伝送性能）は、図５に示すように、１フレームの伝送時間を意味する。また、上記αは、図５に示すように、１フレーム送信終了から次のフレーム送信開始までに掛かる時間である。つまり、実質的に、１フレーム送信に掛かる時間βは、“（１フレームサイズ／伝送性能）＋α”と見做せることになる。【０１１７】
上記算出式（１）は、『中継装置２０が最初のメッセージフレームを転送開始するまでに掛かる時間（中継装置段数が１段の場合、図５における“局1-1MSG”に係わる「フレーム伝送遅延＋中継装置遅延」）、及び、中継装置２０が転送する“局1-1MSG”に係わるフレーム伝送遅延』を、単位時間から差し引いた時間を、上記時間βで除算することを意味する。【０１１８】
例えば、開発者等が予め上記算出式（１）を用いて上限値を算出して、この上限値を全てのノード１０に設定・記憶するようにしてもよい。但し、その後、運用中に中継装置２０の数が変わる（中継装置段数が変わる；多くの場合、増設される）場合がある。これより、任意の１台以上のノード１０に予め上記算出式（１）と上記各項目の値（ユーザが任意に決めて設定しておく）を記憶しておく。そして、上記各項目のうち“中継装置段数”に関しては、運用中に中継装置２０の数が変わったときにユーザ等が新たな中継装置段数を全てのノード１０に設定する。これより、上記任意のノード１０は、“中継装置段数”以外の上記各項目の値と、新たな“中継装置段数”の値と、算出式（１）を用いて、新たな上限値を算出して記憶する。また、この新たな上限値を他のノード１０に通知して記憶させる。【０１１９】
その後は、各ノード１０は、上記新たな上限値を用いて、メッセージ送信許可局と許可数を決定する処理を行うことになる。【０１２０】
このように、各ノード１０がそれぞれ運用中の任意のときに上限値を算出できる上限値算出機能を有する形態であっても構わない。【０１２１】
図５に示す例では、上限値は‘４’であるものとする。
ここで、図５、図６は、例えば図１に示すような中継が１段（中継装置２０が１台）のネットワーク構成の場合のメッセージ送受信動作を示す。また、この例では、全てのメッセージが、宛先を他の全てのノード１０とした場合を示している。尚、図５、図６は、ＭＳＧ帯域の動作のみを示し、ＴＳ帯域等の他の帯域については省略している。これは後述する図８、図９についても同様である。【０１２２】
そして、図５では、１台のノード１０が上限値一杯のメッセージ（つまり、４通のメッセージ）を、全て他のノード１０全てを宛先として（ブロードキャストで）送信する場合の動作を示しており、図示の通り、ＭＳＧ帯域内で４通のメッセージ全ての送受信が完了している。【０１２３】
図６では、図５と同じネットワーク構成において、４台のノード全てがそれぞれ１通ずつメッセージを送信すると共に、全て他のノード１０全てを宛先として（ブロードキャストで）送信する場合の動作を示している。【０１２４】
この場合も、図示の通り、ＭＳＧ帯域内で４通のメッセージ全ての送受信が完了している。【０１２５】
中継装置段数が１段の場合には、４台のノード１０が４通のメッセージ全て送信する場合も、４台のノード１０それぞれが１通ずつメッセージ送信する場合も、全体として掛かる時間は同じとなる。【０１２６】
一方、中継装置段数が２段の場合には、両者で全体として掛かる時間は異なるものとなる。これについて、以下、図７、図８、図９を参照して説明する。【０１２７】
まず、図７には、中継装置段数が２段の場合のネットワーク構成例を示す。
この例では、相互に接続された２台の中継装置２０（ＨＵＢ−Ａ、ＨＵＢ−Ｂ）があり、ＨＵＢ−Ａには局１、局２、局３の３台のノード１０が接続され、ＨＵＢ−Ｂには局４のみが接続されている。【０１２８】
図８、図９には、上記図７の２段のネットワーク構成におけるメッセージ送受信動作例を示す。【０１２９】
２段の場合も、上記１段の場合と同様、上記上限値が‘４’であり且つ全メッセージが他の全ノード宛であるものとして、１つの局（ここでは局１）が４通のメッセージを送信する場合（図８）と、各局が１通ずつで計４通のメッセージを送信する場合（図９）とを示す。図８と図９とを比較すれば分かるように、１つの局が４通全てを送信する場合の方が、全メッセージ送受信完了までに掛かる時間が長くなる。【０１３０】
図８に示すように、局１が４通のメッセージを順次送信し、ＨＵＢ−Ａがこの４通のメッセージを受信しつつ、受信完了したメッセージから順次転送を開始する。メッセージの宛先は送信元以外の全ノード（局２、局３、局４）であるので、転送先は、局２、局３と、局４に係わる中継装置であるＨＵＢ−Ｂとなり、図示のようにまず最初のメッセージ“局1-1MSG”が、局２と局３とＨＵＢ−Ｂとに転送される。この最初のメッセージ“局1-1MSG”は、ＨＵＢ−Ｂにおいて局４に転送される。【０１３１】
上記のことから、図示のように、局２、局３に関しては、ＭＳＧ帯域開始から最初のメッセージ“局1-1MSG”を受信開始するまでに掛かる時間は、「中継装置遅延＋局１からＨＵＢ−Ａまでのフレーム伝送遅延＋ＨＵＢ−Ａから局２、局３までのフレーム伝送遅延」＝「中継装置遅延＋（２×フレーム伝送遅延）」となる。【０１３２】
一方、局４に関しては、ＭＳＧ帯域開始から最初のメッセージ“局1-1MSG”を局４が受信開始するまでに掛かる時間は、「中継装置遅延＋局１からＨＵＢ−Ａまでのフレーム伝送遅延＋ＨＵＢ−ＡからＨＵＢ−Ｂまでのフレーム伝送遅延＋ＨＵＢ−Ｂから局４までのフレーム伝送遅延」＝「中継装置遅延＋（３×フレーム伝送遅延）」となる。【０１３３】
これに対して、中継装置段数が２段の場合の上記算出式（１）における「受信開始から受信終了までに掛かる時間以外の時間は、「中継装置遅延＋（３×フレーム伝送遅延）」となる。従って、本例において最も時間が掛かる局４に関しても、ＭＳＧ帯域内に全てのメッセージを受信完了できることになる。【０１３４】
一方、図９に示す例の場合、ＭＳＧ帯域開始と同時に全ての局（局１、局２、局３、局４）がメッセージを送信する。これより、ＨＵＢ−Ａは局１、局２、局３からのメッセージ（計３通）を受信し、ＨＵＢ−Ｂは局４からのメッセージを受信する。【０１３５】
上記メッセージを受信完了すると、ＨＵＢ−Ａは３通のメッセージのうち例えば局１からのメッセージ“局１ＭＳＧ”を転送する。宛先は送信元局以外の全局であるので、図示の通り、局２、局３と、ＨＵＢ−Ｂに転送されることになる。同じタイミングで、ＨＵＢ−Ｂは、局４からのメッセージをＨＵＢ−Ａに転送することになる。【０１３６】
これより、ＨＵＢ−Ａは、上記“局１ＭＳＧ”を転送完了したら、続いて、上記受信済みの局２、局３、局４からのメッセージも順次転送する。これは、局２、局３からのメッセージは（局４に転送する為に）ＨＵＢ−Ｂに転送するが、局４からのメッセージは送信元には転送しないのでＨＵＢ−Ｂには転送しない。【０１３７】
図９の例では、局４は、ＭＳＧ帯域開始時点から最初のメッセージ受信開始までに掛かる時間は、図８と同様であるが、３通のメッセージを受信完了すれば済むので（自局の送信メッセージ“局４ＭＳＧ”を受信する必要はない）、図８に比べて１メッセージ分だけ早く、メッセージ送受信が完了することになる。【０１３８】
ここで、上述した算出式（１）を用いた上限値（単位時間当たりのメッセージ送信可能数）の算出方法は、一例を示したものであり、この例に限らない。以下、算出方法の他の例について説明する。尚、ここでは、算出式（１）を用いた上限値の算出方法を“上限値算出方法（その１）”と呼び、以下に説明する後述する算出式（２）を用いる上限値の算出方法を“上限値算出方法（その２）”と呼ぶものとする。  また、以下の説明では、システムを構成する複数のノード１０の中で、予め任意に決められた１つのノード１０をマスタ局と呼び、それ以外のノード１０は全てスレーブ局と呼ぶものとする。但し、このマスタ局は、例えばメッセージ送信権の管理等を行うマスタ局とは、異なるものである。上記の通り、本手法では、メッセージ送信権の管理等を行うマスタ局は、必要ない。本説明におけるマスタ局は、単に、後述する各ノード１０間の通信時間（遅延時間）を実測する処理を主導する局と見做すこともできる。【０１３９】
“上限値算出方法（その１）”では、上記算出式（１）で説明したように、予め設定される“中継装置段数”等を用いる必要がある。また、”中継装置段数”等を用いて計算した上記“単位時間当たりのメッセージ送信可能数”等のパラメータを、ネットワークに参加する全局に設定する必要がある。【０１４０】
上記”中継装置段数”は、システム構成によって様々であり、プラント設備の拡張や縮小に伴って段数が変化する。この為、システム構成が変化した場合、当然ながら、新たな”中継装置段数”等を設定し直して上記算出式（１）で“単位時間当たりのメッセージ送信可能数”等のパラメータを再度求めて、当該パラメータをネットワークに参加する全局に対して再設定することが必要となる。その際に、設定のためのエンジニアリングコスト発生や、設定ミスによるシステムの異常停止発生など、プラント運用コスト増となる可能性がある。【０１４１】
これに対して、“上限値算出方法（その２）”では、自動的に、各ノード１０間の通信時間（遅延時間）を実測して、当該実測値に基づいて上記“上限値”を算出するので、設定コストや設定ミスが生じることはない。以って、プラント運用コスト増となることを防止できる。【０１４２】
“上限値算出方法（その２）”では、まず、マスタ局が、自局と全てのスレーブ局との間の通信時間（遅延時間）をそれぞれ実測して、この実測結果からマスタ局からの経路（遅延時間）が最長となるスレーブ局を特定する。【０１４３】
マスタ局は、続いて、上記特定したスレーブ局（自局からの経路が最長の局）に対して、他局との遅延時間測定を依頼する要求（最長遅延時間測定要求）を通知する。【０１４４】
この最長遅延時間測定要求を受信した上記特定したスレーブ局は、自局と全ての他のスレーブ局との間の通信時間（遅延時間）をそれぞれ実測して、全ての遅延時間実測値の中で最長の遅延時間を、システム全体の“最長経路遅延時間の実測値”としてマスタ局に通知する。尚、全ての遅延時間実測値にはマスタ局と上記特定したスレーブ局との間の遅延時間も含まれる。【０１４５】
ここで、上記マスタ局、上記“特定したスレーブ局”は、どちらも、自局と他局との遅延時間の実測は、既存の任意の方法によって実現してよく、例えば一例としてはWO2013/121568に記載の方法を用いるが、この例に限らない。WO2013/121568に記載の遅延時間実測方法は、マスタ局による実測を例にすると、マスタ局は遅延時間実測用の特定のパケットを任意のスレーブ局に送信し、任意のスレーブ局は、受信したパケットが上記特定のパケットである場合には直ちに返信用パケットを返信する。【０１４６】
マスタ局は、この返信用パケットを受信することで、上記特定のパケットの送信時から返信用パケットの受信時までの経過時間を計測できる。この計測時間は、マスタ局と任意のスレーブ局との間のパケットの往復に掛かる時間を計測したことになり、つまり、この２つの局間の往復の通信時間の実測値である。よって、この計測値を２で除算することで（この計測値の半分の時間が）、マスタ局と任意のスレーブ局との間の通信時間（遅延時間）となる。【０１４７】
マスタ局は、上記通知された“最長経路遅延時間の実測値”を受信すると、以下の算出式（２）を用いて、上記上限値（単位時間当たりのメッセージ送信可能数）を算出する。
上限値  ＝  ｛（単位時間−（最長経路遅延時間実測値 − （１フレームサイズ／伝送性能）））｝／（１フレームサイズ／伝送性能）  ・・・（２）式【０１４８】
マスタ局は、上記算出式（２）によって算出した上限値を、全てのスレーブ局へ通知する。【０１４９】
各スレーブ局は、通知された上限値を保持する。そして、その後は、この上限値を用いて、上述した運用（メッセージ許可局や許可数の判定）を行うことになる。これは、勿論、マスタ局も同様である。【０１５０】
任意の局の脱落や復旧が発生する毎に、上述した一例の手順で新たな上限値（単位時間当たりのメッセージ送信可能数）を算出して、この新たな上限値を用いてメッセージフレームの送受信を行う。【０１５１】
上述したように、“上限値算出方法（その２）”によれば、システム構成の変化に対して、設定変更を行うことなく自動的に・動的に上限値（単位時間当たりのメッセージ送信可能数）を新たに算出することができる。以って、新たなシステム構成に応じた適切なメッセージ送信可能上限数で、メッセージ通信を行うことが可能となる。【０１５２】
以下、上記“上限値算出方法（その２）”について、具体例を用いて、更に詳細に説明する。【０１５３】
ここでは、ネットワーク構成が、図１（ａ）や図７に示す中継装置段数が１段や２段の構成から、図１０に示すような中継装置段数が３段の構成に変更された場合を例にして説明するものとする。【０１５４】
図１０に示す構成では、局１、局２、局３、局４の４台のノード１０を有し、これらのうち局３がマスタ局、それ以外がスレーブ局となっている。尚、既に述べた通り、本例におけるマスタ局は、“上限値算出方法（その２）”に係わる処理を主導する局であり、メッセージ送信権を管理するマスタ局とは、異なるものである。【０１５５】
また、３台の中継装置２０（ＨＵＢ−Ａ、ＨＵＢ−Ｂ、ＨＵＢ−Ｃ）を有している。ＨＵＢ−Ｂには、ＨＵＢ−Ａ、ＨＵＢ−Ｃと、局３が、接続されている。ＨＵＢ−Ａには局１と局２が接続されている。ＨＵＢ−Ｃには局４が接続されている。【０１５６】
尚、ノード１０自体の構成・機能、中継装置２０自体の構成・機能は、基本的には上述した図１（ａ）（ｂ）や図７に示すものと同じであってよく、それ故、同一符号を付してある。但し、ここでの各ノード１０は、“上限値算出方法（その２）”による上限値算出を実現する為の処理を、行うものである。【０１５７】
図１０に示す構成では、局１−局４間の通信には、３台の中継装置２０（ＨＵＢ−Ａ、ＨＵＢ−Ｂ、ＨＵＢ−Ｃ）全てによって中継する必要がある為、局１−局４間が最長経路となる。【０１５８】
図１０に示す構成において上述した“上限値算出方法（その２）”の処理を実行する場合、まず、マスタ局である局３が、上述したように、自局と他の全てのスレーブ局との通信時間（遅延時間）を実測して、マスタ局から最も離れた（遅延時間が最長となる）スレーブ局を特定する。ここでは、仮に、局１が最長となるものとする（図示の点線矢印で示す経路が、最長であったものとする）。つまり、局１が上記特定局となるものとする。これより、局３は局１に対して上記最長遅延時間測定要求を通知する。【０１５９】
この通知を受けた局１は、上述した自局と全ての他のスレーブ局との間の通信時間（遅延時間）をそれぞれ実測する処理を実行する。【０１６０】
図１１に、このような具体例の局１、局３の動作例を示す。
図１１には、局３（マスタ局）が、上記特定局を局１とした後の動作例を示す。【０１６１】
図１１に示すように、上記具体例の場合には、まず、局３（マスタ局）が、コモンメモリ伝送帯域において、自局のデータを含むコモンメモリフレーム４１に、上記最長遅延時間測定要求を示すコードと局１の局番とを付与して、ブロードキャストで送信する。【０１６２】
このコモンメモリフレーム４１は、各中継装置２０で中継されて、各スレーブ局１，２，４に渡される。尚、これは２段の中継が行われるが（例えば局４に対してはＨＵＢ−ＢとＨＵＢ−Ｃとによる２段の中継が行われる）、図１１では省略しており、１段であるかのように示している。この為、図１１では、中継装置２０による中継遅延時間は、実際とは異なる（実際には２段の中継に応じた中継遅延時間が掛かる）。【０１６３】
各スレーブ局１，２，４は、受信したコモンメモリフレーム４１に付与される局番と最長遅延時間測定要求を示すコードを参照し、これが自局宛の最長遅延時間測定要求であるか否かを判定する。【０１６４】
自局宛の最長遅延時間測定要求であると判定したスレーブ局（ここでは局１）のみが、自局と全ての他のスレーブ局との間の通信時間（遅延時間）を実測する。この実測処理は、メッセージ伝送帯域において実行する。【０１６５】
スレーブ局は、一方で、受信したコモンメモリフレーム４１に、最長遅延時間測定要求を示すコードが付与され、かつ局番≠自局番であった場合には、他局宛の測定要求があったと判断する。そして、この場合には、一時的にメッセージ伝送は停止し、遅延時間測定に対応するモードとなる。このモードでは、メッセージ伝送帯域において自局宛のパケットを受信したら直ちに返信する処理を行う。また、このモード中には上記の通り、通常のメッセージ伝送処理は行わない。【０１６６】
尚、マスタ局も、上記コモンメモリフレーム４１（最長遅延時間測定要求を含む）を送信したら、一時的にメッセージ伝送を停止するようにしてもよい。こうすることによって遅延時間測定とメッセージ伝送がかち合うことによる測定誤差を防止する。【０１６７】
尚、図１１では、この実測の為の動作の一部のみを示す。つまり、図１１では局１−局２間の遅延時間の実測動作のみを示すが、局１−局４間についても後の通信サイクルのメッセージ帯域において、同様の動作により遅延時間を実測する。【０１６８】
図１１の例では、局１は、メッセージ帯域において、局２の局番が付与された遅延時間測定用パケット４４を、ブロードキャスト送信する。このパケット４４は、中継装置２０で中継されて全てのノード１０で受信されるが、局２のみが当該パケット４４を受信したら直ちに返信用パケット４６を返信する。【０１６９】
この返信用パケット４６は、各中継装置２０で中継されて、各局１，３，４に渡されるが、局１以外は受信パケットを破棄する。局１は、上記遅延時間測定用パケット４４の送信時点から返信用パケット４６受信時までの経過時間を計測している。この計測時間の半分の時間が、局１−局２間の遅延時間の実測値となる。【０１７０】
そして、図１１には示していないが、その後、次の通信サイクルにおけるメッセージ伝送帯域で、局１は、今度は局４の局番が付与された遅延時間測定用パケット４４を、ブロードキャスト送信する。局４は、当該パケット４４を受信したら直ちに返信用パケット４６を返信する。これより、局１は、局１−局４間の遅延時間を実測することになる。そして、この例では、この時点で、局１は、全ての他のスレーブ局との遅延時間の実測処理を、完了したものと判定して、取得した各遅延時間の中から、最も大きい遅延時間を抽出する。【０１７１】
ここでは、一例として、上記“取得した各遅延時間”には、マスタ局−局１間の遅延時間も含まれるものとする。その為には、勿論、マスタ局からの上記コモンメモリフレーム４１には、マスタ局−局１間の遅延時間も含まれている必要がある。この例の場合には上記抽出された“最も大きい遅延時間”が、最長経路遅延時間実測値となる。【０１７２】
但し、この例に限らず、例えば上記“取得した各遅延時間”にはマスタ局−局１間の遅延時間は含まれない場合には、上記抽出された“最も大きい遅延時間”をマスタ局に通知して、マスタ局において“最も大きい遅延時間”とマスタ局−局１間の遅延時間の何れか大きい方を、最長経路遅延時間実測値とする。【０１７３】
但し、本説明では、“最も大きい遅延時間”が最長経路遅延時間実測値となる例を用いて説明する。従って、局１において最長経路遅延時間実測値が得られることになり、その後、局１は、得られた最長経路遅延時間実測値を、例えば後述するようにしてマスタ局に通知する。【０１７４】
尚、上記遅延時間の実測処理中も、各通信サイクルにおいて、全て局は、コモンメモリ伝送帯域におけるコモンメモリ伝送フレームの送受信は、行っている（中断しているのは、通常のメッセージ送受信処理である）。【０１７５】
上述した処理によって、システム構成全体における最も通信に時間を要する経路を特定し、その遅延時間（最長経路遅延時間実測値）を得ることができる。【０１７６】
上記図１０のシステム構成例の場合、上記“システム構成全体における最も通信に時間を要する経路（最長経路）”は、図１２に点線矢印で示す局１−局４間の経路となり、局１−局４間の遅延時間の実測値が、全ての遅延時間実測値の中で最も大きいものとなる。【０１７７】
その後、次の通信サイクルにおけるコモンメモリ伝送帯域で、局１は、上記最長経路遅延時間実測値と“測定完了を示すコード”を、自局のコモンメモリ伝送フレームに含めて送信することで、マスタ局（局３）に通知する。【０１７８】
マスタ局（局３）は、コモンメモリ伝送帯域で受信する各コモンメモリ伝送フレームをチェックして、特定局（局１）からのコモンメモリ伝送フレーム上の“測定完了を示すコード”の有無をチェックし、測定完了を示すコードがある場合は、この伝送フレームに含まれる上記最長経路遅延時間実測値を取得する。【０１７９】
そして、取得した最長経路遅延時間実測値を用いて上記算出式（２）により、上記上限値（単位時間におけるメッセージ送信可能数上限）を求めて、全局に通知する。この通知は、例えばコモンメモリ伝送帯域におおいて自局のコモンメモリ伝送フレーム上に上限値を含めて送信することで実現するが、この例に限らない。各局は、上記通知された上限値により、自局が保持する上限値を更新する。【０１８０】
マスタ局（局３）は、上記のように上限値の算出と各局への通知を行った後、自局のコモンメモリ伝送フレーム上の“最長遅延時間測定要求を示すコード”を削除する。【０１８１】
これより、各スレーブ局は、マスタ局からのコモンメモリ伝送フレーム上に“最長遅延時間測定要求を示すコード”無しと判断したら、メッセージ送信の中止を解除して、メッセージ送信可能な状態に戻る。当然、その後は、上記通知された上限値を用いて、メッセージ通信を行うことになる。【０１８２】
尚、上述した一例ではマスタ局が一元管理して上限値を算出して各局に通知したが、この例に限らない。例えば、特定局（局１）が、最長経路遅延時間実測値を全ての局に通知し、全局それぞれで最長経路遅延時間実測値と算出式（２）を用いて上限値を算出する構成でもよい。【０１８３】
ここで、以下、上記算出式（１）（２）について更に説明する。
上記の通り、算出式（１）は下記の内容となる。
上限値＝｛単位時間−（中継装置段数×中継装置遅延）−（（中継装置段数＋１）×フレーム伝送遅延）｝÷｛（１フレームサイズ／伝送性能）＋α｝・・・（１）式【０１８４】
上記の通り、算出式（２）は下記の内容となる。
上限値  ＝  ｛（単位時間−（最長経路遅延時間実測値 − （１フレームサイズ／伝送性能）））｝／（１フレームサイズ／伝送性能）  ・・・（２）式【０１８５】
これら算出式（１）（２）に共通の考え方は、下記の算出式（３）で表わすことができる。
上限値  ＝  （（単位時間−（最長経路遅延時間））／（１フレームサイズ／伝送性能）  ・・・  （３）式【０１８６】
上記算出式（１）における“（中継装置段数×中継装置遅延）＋（（中継装置段数＋１）×フレーム伝送遅延）”が、上記算出式（３）における“最長経路遅延時間”に相当する。【０１８７】
上記算出式（２）における“（最長経路遅延時間実測値 − （１フレームサイズ／伝送性能）”が、上記算出式（３）における“最長経路遅延時間”に相当する。【０１８８】
図１３は、上記算出式（特に算出式（２））について説明する為の図である。【０１８９】
図１３には、上記図１０のシステム構成において、任意の通信サイクルのメッセージ伝送帯域において局１のみがメッセージを送信し、且つ、４通のメッセージを送信した場合のメッセージ送受信の様子を示す。尚、メッセージ伝送帯域の長さが単位時間となる。【０１９０】
図では、メッセージを矩形で示し、４通のメッセージを区別する為に、それぞれ、矩形内に「局1-1 ＭＳＧ」、「局1-2 ＭＳＧ」、「局1-3 ＭＳＧ」、「局1-4 ＭＳＧ」と記す。図示のように、局１は、まず最初にメッセージ「局1-1 ＭＳＧ」を送信し、続けて、メッセージ「局1-2 ＭＳＧ」、「局1-3 ＭＳＧ」、「局1-4 ＭＳＧ」の順に送信している。【０１９１】
また、上記の通り、図１０のシステム構成例では、局１−局４間が最長経路となる。
上記算出式（３）における“最長経路遅延時間”は、最長経路となる局間で送信側局のメッセージ送信開始から受信側局のメッセージ受信開始までに掛かる時間に相当する。【０１９２】
“最長経路遅延時間”は、図１３の例の場合、図示の太線点線で示す時間、すなわち局１におけるメッセージ「局1-1 ＭＳＧ」送信開始時から、局４がこのメッセージ「局1-1 ＭＳＧ」を受信開始する時点までの時間となる。【０１９３】
図１３に示す例では、図示のように、単位時間から“最長経路遅延時間”を差し引いた残りの時間が、局４が上記４通のメッセージ全てを受信開始から受信完了するまでに必要な時間、すなわち「（１フレームサイズ／伝送性能）×４」となっている。つまり、この例では、上記算出式（３）による上限値が‘４’となる。【０１９４】
一方、図１３の例では、上記算出式（２）における“最長経路遅延時間実測値”は、図示の一点鎖線で示す時間となる。つまり、局１におけるメッセージ「局1-1 ＭＳＧ」送信開始時から、局４におけるメッセージ「局1-1 ＭＳＧ」受信完了時までの時間となる。これは、遅延時間の実測では、受信側局は、パケットを受信完了してから返信を行うためである。つまり、上記算出式（２）における“最長経路遅延時間実測値”は、上記算出式（３）における“最長経路遅延時間”よりも、受信側局が１メッセージを受信開始から受信完了するのに掛かる時間（図上、２点鎖線で示す）の分だけ、長くなる。この為、算出式（２）ではこの分を差し引くことで、つまり“（最長経路遅延時間実測値 −（１フレームサイズ／伝送性能）”によって、上記算出式（３）における“最長経路遅延時間”に相当する時間を求めている。【０１９５】
マスタ局は、システム構成が変化したことを検出する毎に（例えば任意の局の脱落や復旧が発生する毎に）、上述した新たな上限値の決定・設定の処理を実行開始する。例えばマスタ局は、一定期間フレームを受信できない局を脱落と判断した場合や、これまで存在しなかった局番からのフレームを受信し新規加入または復旧と判断した場合に、上述した新たな上限値の決定・設定の処理を開始する。【０１９６】
上述した“上限値算出方法（その２）”によれば、システム構成の変化に対して、ユーザが設定変更を行うことなく自動的に、新たなシステム構成に応じた最適な上限値（単位時間におけるメッセージ送信可能数上限）を決定・設定できる。新たなシステム構成に応じた最適なメッセージ送信可能数上限でメッセージ通信を行うことが可能となる。【０１９７】
図１４は、本例の制御ネットワークシステムの機能構成図である。
本例の制御ネットワークシステムは、第１帯域と第２帯域を有する通信サイクル毎に、第１帯域において複数のノード１０が１台以上の中継装置２０を介して相互にデータ交換するネットワークシステムである。上記第１帯域の一例が上記ＴＳ帯域であり、上記第２帯域の一例が上記ＭＳＧ帯域である。【０１９８】
尚、処理部１２は、不図示のＣＰＵ／ＭＰＵ等の演算プロセッサや不図示のメモリ等の記憶部を有しており、記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサがこのアプリケーションプログラムを実行することで、例えば図１４に示すノード１０の各種処理機能が実現される。【０１９９】
図示の例は、ノード１０は、データ交換制御部３１、メッセージ許可判定部３２、メッセージ送信制御部３３、上限値算出部３４を有する。【０２００】
データ交換制御部３１は、上記第１帯域において上記相互にデータ交換する為に任意のデータを送信する際に、メッセージ送信要求がある場合には該送信データに付加する。【０２０１】
メッセージ許可判定部３２は、上記第１帯域中に上記相互のデータ交換によって得られる上記メッセージ送信要求に基づいて、自装置のメッセージ送信可否を判定する。【０２０２】
メッセージ送信制御部３３は、自装置のメッセージ送信可と判定された場合には、上記第２帯域内の所定のタイミングでメッセージを送信する。【０２０３】
上記所定のタイミングは、例えば、上記第２帯域の開始時点である。
上記メッセージ許可判定部３２は、例えば、各ノード１０のメッセージ送信可否を判定することで、上記自装置のメッセージ送信可否を判定する。【０２０４】
例えば、上記各ノード１０の各メッセージ許可判定部３２が同一のアルゴリズムを用いることで、上記各ノード１０のメッセージ送信可否の判定結果が同一となる。これより、各ノード１０がそれぞれ独立して個々に判定を行って自局の判定結果に従ってメッセージ送信しても、システム全体としてメッセージ送受信動作に何等問題が生じることはない。【０２０５】
また、例えば、上記データ交換制御部１１は、自装置のメッセージ送信要求数を上記相互交換の為の上記送信データに付加する。【０２０６】
この場合、例えば、上記メッセージ許可判定部３２は、上記相互のデータ交換によって得られる上記メッセージ送信要求数と、上記第２帯域内にシステム全体で送信可能な最大メッセージ数である上限値とに基づいて、上記各ノード１０のメッセージ送信許可数を決定することで、自装置のメッセージ送信許可数を決定する。【０２０７】
また、例えば、上記メッセージ許可判定部３２は、全てのメッセージ送信許可数の合計値が上記上限値以下となるように、各ノード１０のメッセージ送信許可数を決定する。【０２０８】
また、例えば、上記メッセージ許可判定部３２は、上記メッセージ送信要求数と上記上限値と、現在の各ノード装置の優先順位とに基づいて、各ノード１０のメッセージ送信許可数を決定する。【０２０９】
また、上記上限値算出部３４は、上記上限値を算出する。これは、例えば上記算出式（１）を用いて、上限値を算出する。あるいは、“上限値算出方法（その２）”によって上限値を算出する。【０２１０】
“上限値算出方法（その２）”によって上限値を算出する手法の場合には、例えば図１５に示すように、まず、各ノード１０間の遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求める（ステップＳ６１）。そして、この最長経路遅延時間実測値を用いる所定の算出式によって、上限値を算出する（ステップＳ６２）。所定の算出式は、例えば一例が上記算出式（２）であるが、この例に限らない。【０２１１】
上記最長経路遅延時間の実測方法は、例えば一例としては図１６に示す方法であるが、この例に限らない。【０２１２】
図１６に示す処理例では、まず、マスタ局の上限値算出部３４が、自局と各スレーブ局との通信時間（遅延時間）を実測し（ステップＳ７１）、遅延時間が（換言すれば、マスタ局からの経路が）最大となるスレーブ局を特定し（ステップＳ７２）、この特定した局（特定局）に対して遅延時間実測を依頼する（ステップＳ７３）。【０２１３】
上記特定局の上限値算出部３４は、自局と各スレーブ局との遅延時間を実測することで（ステップＳ８１）、実測した各遅延時間のなかで最大のものを上記最長経路遅延時間の実測値とする（ステップＳ８２）。尚、例えば一例としては、上記“実測した各遅延時間”には、マスタ局−特定局間の遅延時間も含まれている。この例の場合、マスタ局は、ステップＳ７３の依頼の際に、マスタ局−特定局間の遅延時間を特定局へ通知する。【０２１４】
特定局は、例えば、上記最長経路遅延時間実測値を、マスタ局へ通知する（ステップＳ８３）。この通知を受信したマスタ局は、通知された最長経路遅延時間実測値を用いて所定の算出式によって上記上限値を算出する（ステップＳ７４）。所定の算出式は、例えば一例が上記算出式（２）であるが、この例に限らない。【０２１５】
そして、算出した上限値を、各スレーブ局に通知する（ステップＳ７５）。
マスタ局、各スレーブ局は、これ以降は、算出された新たな上限値を用いて、上述したメッセージ送信管理を行うことになる。【０２１６】
尚、上記最長経路遅延時間の実測値を用いた算出式（２）による上限値の算出処理は、上記のようにマスタ局の上限値算出部３４が行っても良いが、この例に限らず、任意のスレーブ局の上限値算出部３４で行っても良い。何れの場合でも、算出した上限値は全ての他局に通知する。あるいは、上限値の算出処理は各局の上限値算出部３４でそれぞれ行ってよく、この場合には他局に上限値を通知する必要はないが、特定局は最長経路遅延時間実測値を全ての他局に通知する必要がある。何れにしても、上限値の算出処理を行う局に対して、上記最長経路遅延時間実測値を渡す必要はある。【０２１７】
あるいは、上記最長経路遅延時間の実測値の求め方は、上記の例に限らず、例えば全てのノード１０が、それぞれ、自局と全ての多局との遅延時間を実測して、全てのノード１０の全ての遅延時間実測値を任意のノード１０に集めて、任意のノード１０で上記最長経路遅延時間の実測値の求めるようにしてもよい。この様に、上記最長経路遅延時間の実測値の求め方は、様々な方法であってよく、要するに「各ノード１０間の通信に掛かる時間である遅延時間を実測して最も長い遅延時間である最長経路遅延時間実測値を求める」ものであれば、何でも良い。【０２１８】
尚、上記マスタ局は、メッセージ送信権管理に係わるマスタ装置を意味するものではない。本手法では、メッセージ送信権管理に係わるマスタ装置は、必要ない。上記マスタ局は、単に、新たな上限値算出の為の処理を開始する局であると見做しても構わない。【０２１９】
上記上限値算出部３４による上記算出式（２）を用いた上限値の算出処理は、例えば、任意の局の脱落や加入、復旧の発生を検知する毎に、実行される。これより、システム構成の変化（局の脱落／加入や復旧など）が生じても、自動的に、変化後のシステム構成に応じた適切なメッセージフレーム送信可能数上限に調節しながら、メッセージフレームの伝送を行うことができる。【０２２０】
尚、上記データ交換制御部３１、メッセージ許可判定部３２、メッセージ送信制御部３３、上限値算出部３４の各処理機能は、例えば、処理部１２によって実行され、あるいは処理部１２とドライバ１１とにより実行される。処理部１２やドライバ１１は、内蔵する不図示のＣＰＵ／ＭＰＵ等が、内蔵する不図示のメモリに予め記憶されているプログラムを実行することで、上記データ交換制御部３１、メッセージ許可判定部３２、メッセージ送信制御部３３、上限値算出部３４の各処理機能を実現させる。【０２２１】
本発明によれば、スター型トポロジの全二重ネットワークにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができ、単位時間当たりに、従来より多くのメッセージを送ることができるようになる。【０２２２】
最後に、上記本発明との比較の為に、従来手法をスター型トポロジのネットワークに適用した場合について、図１７、図１８に示し、以下、説明するものとする。【０２２３】
図１７に、上記スター型トポロジのネットワークシステムにおける通信動作の具体例を示す。【０２２４】
尚、ここでは上記スター型トポロジのネットワークシステムの構成は特に示さないが、図１７に示すように、４台のノード１００（局１、局２、局３、局４）と、１台の中継装置（ＨＵＢ）１１０を有する構成であるものとする。図示しないが、各ノード１００は、それぞれ、中継装置１１０と通信線により接続しており、中継装置１１０を介して他のノード１００とデータ送受信を行う。中継装置１１０は、任意のノード１００から送信された任意のデータフレームを受信すると、これを内蔵メモリに一時的に記憶した後、宛先のノード１００へ中継・転送する。【０２２５】
中継装置１１０は、上記各通信線に接続する各ポートを有しており、どのポートにどのノード１００の通信線が接続されているのか認識しており、宛先のノード１００に対応するポートから、上記一時的に記憶したデータフレームを送信することで、上記中継・転送を行うことになる。【０２２６】
図１７に示す例では、通信サイクルを複数の帯域に時分割しており、ここでは図示のコモンメモリ伝送帯域（ＴＳ帯域）、メッセージ伝送帯域（ＭＳＧ帯域）等に時分割している。【０２２７】
ＴＳ帯域は、上記リアルタイム性を保証したデータ通信（データ交換）を行う帯域であり、全ての各ノード１００がそれぞれ自装置のデータを他の全てのノード１００に渡す必要がある。【０２２８】
ＴＳ帯域におけるデータ送受信動作は、図示の例では上記先願（特許文献１，２）等と同様であり、ここでは特に詳細には説明しないが、全ノード１００が相互に異なるタイミングで自装置のデータを送信している。このデータの宛先は全てブロードキャスト（自局以外の全局）であり、送信先は中継装置１１０となる。これより、中継装置１１０は、受信したデータを、その送信元以外の全局に転送する。この様にして、全ての各局が、全ての他局に自ノードのデータを渡すことができる。【０２２９】
ここで、図示の例では、局３がマスタ局であり、それ以外の局は全てスレーブ局であるものとする。そして、メッセージ送信要求がある局は、上記ＴＳ帯域において自局のデータを送信する際に、この送信データにメッセージ送信要求を付加する。上記の通り、この送信データは全局に渡されるので、マスタ局である局３にも渡され、以って局３に上記メッセージ送信要求が渡されることになる。【０２３０】
図示の例では、局１、局２、局３が（つまり局４以外は）、上記メッセージ送信要求を付加して送信している。尚、複数のデータフレームを送信する局は、例えば最初のデータフレームにのみメッセージ送信要求を付加して送信する。【０２３１】
そして、マスタ局である局３が、これらメッセージ送信要求に基づいて、何等かの既存の許可局判定方法（例えばラウンドロビン等の優先順付けにより判定する）、許可局を決定する。そして、トークンフレームにて送信権割り当て局情報(割り当て局の局番等)を各局に通知する。図示の例では、局２をメッセージ送信許可局としたものとする。これより、局３は、ＭＳＧ帯域になると、局２を許可するトークン１０１を送信する。これは図示の例では全局宛（ブロードキャスト）でトークン送信し、これより中継装置１１０はこのトークン１０１を送信元以外の全局（局１、局２、局４）へ転送する。【０２３２】
そして、上記各局は、受信したトークン１０１より自局のメッセージ送信可否を判断し、送信可能である場合に、メッセージの送信を行う。ここでは上記の通り、局２に送信権が割り当てられているので、局２は、上記トークン１０１を受信すると、自局のメッセージフレーム１０２（図示の“局２MSG”）を送信する。【０２３３】
尚、図示の例では、このメッセージ１０２は全局宛（ブロードキャスト）であり、これより中継装置１１０はこのメッセージ１０２を送信元以外の全局（局１、局３、局４）へ転送する。【０２３４】
尚、図には示していないが、マスタ局（局３）は、複数局に許可を与える場合には、続いて更に別の局を許可するトークンフレームを送信し、上記と同様に、許可された局がこのトークンフレームを受信すると、自局のデータを送信開始することになる。【０２３５】
図１８に、従来手法を適用した場合の各局における処理部の処理例を示すフローチャート図を示す。【０２３６】
処理部は、特許文献２等の既存の局同期方法によってマスタ局のタイマと同期されたサイクルタイマと、コモンメモリおよびメッセージの伝送を行うためのセンドタイマを用いて、各タイマのタイムアウトイベントや各種フレームの受信イベントごとに特定の処理を行う。【０２３７】
図１８の処理は、随時実行されるものであり、基本的には何等かのイベント待ち状態であり（ステップＳ１０１）、何等かのイベントが発生する毎に（ステップＳ１０２，ＹＥＳ）、発生したイベントの内容を判定して（ステップＳ１０３）それに応じた処理を実行する。【０２３８】
すなわち、発生したイベントが、サイクルタイマのタイムアウト（サイクルＴ．Ｏ．）である場合には（ステップＳ１０４，ＹＥＳ）、ステップＳ１０５〜Ｓ１１０の処理を実行する。【０２３９】
つまり、基本的には、コモンメモリ用センドタイマに所定の設定値をセットして（ステップＳ１０５）当該コモンメモリ用センドタイマを起動する（ステップＳ１１０）が、この起動前に、ステップＳ１０６〜Ｓ１０９の処理を実行する。【０２４０】
すなわち、まず、自局のメッセージ送信要求の有無を確認して、ある場合には（ステップＳ１０６，ＹＥＳ）、メッセージ送信要求をセットする（ステップＳ１０７）。尚、セットするとは、コモンメモリフレーム中に格納することである。これによって後述するステップＳ１１２の処理によってコモンメモリフレームが送信されると、ＨＵＢ等の中継装置による中継処理によって、全ての局で当該コモンメモリフレームを受信することになる。これより、当然、マスタ局もコモンメモリフレームを受信することになり、以ってメッセージ送信要求を認識することになる。【０２４１】
更に、自局がマスタ局である場合には（ステップＳ１０８，ＹＥＳ）、上記自局のメッセージ送信要求をエントリーする（ステップＳ１０９）。尚、エントリーするとは、例えば不図示の「“送信権管理を行うためのエントリーテーブル”に記憶する」ことである。尚、後述するステップＳ１２２のように他局のメッセージ送信要求もエントリーする。そして、後述するステップＳ１１７では、エントリーされたメッセージ送信要求に基づいて、許可局判定を行うことになる。【０２４２】
また、発生したイベントが、コモンメモリ用センドタイマのタイムアウト（コモンメモリ用センドＴ．Ｏ．）である場合には（ステップＳ１１１，ＹＥＳ）、つまりＴＳ帯域における自局のデータ送信タイミングとなった場合には、自局のデータ（コモンメモリフレーム）を送信する（ステップＳ１１２）。これは、自局のデータ（コモンメモリフレーム）を、場合によってはメッセージ送信要求を付加して、不図示のドライバを介して送信するものである。【０２４３】
上記ステップＳ１１２に続いて、更に、メッセージ用センドタイマをセットして（ステップＳ１１３）、当該メッセージ用センドタイマを起動する（ステップＳ１１４）。尚、この起動後、メッセージ用センドタイマがタイムアウトしたときに、後述するステップＳ１１５の判定がＹＥＳとなることになる。尚、ステップＳ１１３，Ｓ１１４の処理は、マスタ局のみが行うようにしてもよい。【０２４４】
また、発生したイベントが、メッセージ用センドタイマのタイムアウト（メッセージ用センドＴ．Ｏ．）である場合には（ステップＳ１１５，ＹＥＳ）、自局がマスタ局である場合には（ステップＳ１１６，ＹＥＳ）、上記“送信権管理を行うためのエントリーテーブル”の記憶内容に基づいて、メッセージ送信許可局判定を行って、判定結果に応じたトークンフレームを生成して（ステップＳ１１７）、当該トークンフレームを送信する（ステップＳ１１８）。【０２４５】
尚、ステップＳ１１７のメッセージ送信許可局判定処理は、既存の任意の方法を用いればよく、特に説明しないが、例えば一例としては、均等割当てや、あるいは“重み付けラウンドロビン”等の優先順付け割当てを行ってもよいし、あるいはこれらの組み合わせであってもよいし、他の任意の既存手法を用いても良い。何れにしても、この判定方法自体は、特に制限はなく、既存の何等かの手法や、当該既存手法の組み合わせなど、何でもよい。【０２４６】
また、発生したイベントが、コモンメモリフレーム受信である場合には（ステップＳ１１９，ＹＥＳ）、このコモンメモリフレームの受信処理を行う（例えば不図示のコモンメモリの該当領域に格納する）（ステップＳ１２０）。【０２４７】
更に、自局がマスタ局である場合には（ステップＳ１２１，ＹＥＳ）、受信したコモンメモリフレームにメッセージ送信要求が付加されている場合には、この他局のメッセージ送信要求をエントリーする（ステップＳ１２２）。【０２４８】
そして、発生したイベントが、上記ステップＳ１１８でマスタ局から送信されたトークンフレームの受信である場合には（ステップＳ１２３，ＹＥＳ）、このトークンフレームには許可局の局番等が含まれているので、これを参照することで自局が許可局であるか否かを判定し（ステップＳ１２４）、自局が許可局である場合には（自局に送信権を与えられた場合には）（ステップＳ１２５，ＹＥＳ）、自局のメッセージフレームを送信する（ステップＳ１２６）。【０２４９】
上記のように、従来手法をスター型トポロジのネットワークシステムに適用した場合、主にトークンの送受信に係わる時間の分、効率が悪くなり、ＭＳＧ帯域内に送受信可能なメッセージ数が少なくなる。【０２５０】
これに対して、上述した本手法によれば、上記のようにこの様な問題を解決できる。
本発明の制御ネットワークシステム、そのノード装置等によれば、スター型トポロジの全二重回線のネットワークシステムにおいて、ネットワーク全体のメッセージ伝送効率を向上させ、以ってネットワーク全体の単位時間当たりのメッセージ伝送量の向上を図ることができる。
【図１】
2018025491.tif 000003
【図２】
2018025491.tif 000004
【図３】
2018025491.tif 000005
【図４】
2018025491.tif 000006
【図５】
2018025491.tif 000007
【図６】
2018025491.tif 000008
【図７】
2018025491.tif 000009
【図８】
2018025491.tif 000010
【図９】
2018025491.tif 000011
【図１０】
2018025491.tif 000012
【図１１】
2018025491.tif 000013
【図１２】
2018025491.tif 000014
【図１３】
2018025491.tif 000015
【図１４】
2018025491.tif 000016
【図１５】
2018025491.tif 000017
【図１６】
2018025491.tif 000018
【図１７】
2018025491.tif 000019
【図１８】
2018025491.tif 000020
【国際調査報告】
2018025491.tif 000021
2018025491.tif 000022