(57)【特許請求の範囲】
【請求項１】
複数のノード装置が相互にデータ交換する制御ネットワークシステムにおいて、
前記各ノード装置は、
所定のデータ交換周期毎に、該データ交換周期の開始から所定時間経過した所定のタイミングで、自ノード装置のデータを隣接ノード装置へ送信するデータ送信手段と、
任意の隣接ノード装置からの送信データを受信した場合、該送信データを取得すると共に別の隣接ノード装置へ中継するが、前記受信したデータの送信元が下流側の隣接ノード装置であった場合には、前記中継を行わずに、前記受信したデータを破棄する中継手段と、
前記所定のタイミングを生成する第１タイマとを有し、
全てのノード装置の前記第１タイマが同一タイミングで起動し且つ同一時間後にタイマアップすることによって、前記全てのノード装置の前記所定のタイミングを同一タイミングとすることを特徴とする制御ネットワークシステム。
【請求項２】
前記データ交換周期内に、全ての前記ノード装置の送信データが、それぞれ、前記中継が繰り返されることによって全ての他のノード装置に受信されることで、全てのノード装置間の相互のデータ交換が完了することを特徴とする請求項１記載の制御ネットワークシステム。
【請求項３】
前記中継手段は、前記受信したデータの送信元が自ノード装置であった場合には、前記中継を行わずに、該受信データを破棄することを特徴とする請求項１記載の制御ネットワークシステム。
【請求項４】
前記各ノード装置は、第２タイマを更に有し、
該第２タイマによって前記データ交換周期が生成され、
全てのノード装置の第２タイマは同期されていることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項５】
全てのノード装置の前記第１タイマの設定値を同一とすることで、前記全てのノード装置の前記第１タイマによる前記所定のタイミングを同一タイミングとすることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項６】
任意の前記ノード装置に係わる前記隣接ノード装置は、前記任意のノード装置と通信線によって接続され且つ前記任意のノード装置と直接通信可能である他のノード装置であることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項７】
前記制御ネットワークシステムは、複数の前記ノード装置と複数の通信線から成り、各通信線が任意の２つのノード装置間を接続しており、各ノード装置が前記通信線によって接続されている他のノード装置である前記隣接ノード装置と通信可能であり、通信線によって接続されていないノード装置間の通信は他の１以上のノード装置が中継することで実現するネットワークであることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項８】
前記制御ネットワークシステムは、リング型またはライン型のネットワークであることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項９】
前記制御ネットワークシステムは、リング型またはライン型のトポロジにて全二重の通信回線によって前記各ノード装置が接続されたネットワークであり、
前記データ送信手段は、該全二重の両系に前記自ノード装置のデータを送信することを特徴とする請求項１記載の制御ネットワークシステム。
【請求項１０】
前記制御ネットワークシステムは、複数の前記ノード装置が同時にデータ送信しても、通信干渉が起きない制御ネットワークシステムであることを特徴とする請求項１記載の制御ネットワークシステム。
【請求項１１】
複数のノード装置が相互にデータ交換する制御ネットワークシステムにおける前記各ノード装置であって、
所定のデータ交換周期毎に、該データ交換周期の開始から所定時間経過した所定のタイミングで、自ノード装置のデータを隣接ノード装置へ送信するデータ送信手段と、
任意の隣接ノード装置からの送信データを受信した場合、該送信データを取得すると共に別の隣接ノード装置へ中継するが、前記受信したデータの送信元が下流側の隣接ノード装置であった場合には、前記中継を行わずに、前記受信したデータを破棄する中継手段と、
前記所定のタイミングを生成する第１タイマとを有し、
前記第１タイマが他の全てのノード装置における前記第１タイマと同一タイミングで起動し且つ同一時間後にタイマアップすることによって、前記所定のタイミングが前記他の全てのノード装置における前記所定のタイミングと同一タイミングであることを特徴とする制御ネットワークシステムにおけるノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード装置が通信線で接続され、所定の周期毎にデータ交換を行う制御用ネットワークシステムに関する。
【背景技術】
【０００２】
制御用ネットワークシステム（プラント制御用伝送システム等）においては、システムを構成する各機器（ノード）が相互に大容量データ交換を、リアルタイム性を保証したうえで行う必要がある。リアルタイム性を保証するとは、例えば、定周期の各期間内に、データ交換が必要な全ての機器間のデータ交換を完了することを意味する。各機器は、例えば定周期で、その時点の当該機器の状態等を示すデータを収集して、これを他の全機器へ渡す必要がある。逆に言えば、各機器は、例えば定周期で、他の全ての機器それぞれの状態データ等を取得することになり、この取得データを用いて何等かの所定の処理を実行することになる。【０００３】
尚、上記各機器（ノード）は、何等かの制御対象機器を管理する装置等であり、例えば制御管理機器の現状を示すデータ（温度、圧力、回転数等）を、随時、収集している。そして、各機器（ノード）の収集データを、全ての機器（ノード）で共有する必要があるものとする。【０００４】
各機器（ノード）に搭載されるアプリケーションによるアクセス要求の発生に応じてイベント的に相互アクセスを行うような伝送方式を採用していると、ネットワーク負荷がアプリケーションに依存してしまい、リアルタイム性を保証することができない。そこで、各機器に仮想的な共有メモリ（コモンメモリ）を設けて、各機器が通信サイクル（スキャン時間）毎に、時分割多重方式で（相互に異なるタイミングで）ネットワーク上の全ノードへ自ノードデータの送信を行うようにする伝送方式によって、リアルタイム性を保証したデータ交換方式を実現している。尚、各ノードは、受信したデータによって上記コモンメモリの該当領域のデータを更新し、これよりアプリケーションがコモンメモリにアクセスして他ノードの最新データを取得して、この最新データを用いた何等かの処理を実行することになる。【０００５】
上記データ交換を実現する為のネットワーク上での効率的な同報通信(ブロードキャスト通信)手法については、既に様々な手法が提案されているが、ここではその一例として特許文献１の発明がある。【０００６】
特許文献１の発明は、各ノードの内蔵タイマによる時分割多重アクセス方式と、マスタノードからの同期化フレームによるスレーブノードの内蔵タイマ補正とを併用することで、各ノードからの送信タイミング重複を防ぎつつ効率の高い伝送を実現している。【０００７】
あるいは、例えば、特許文献２にも、特許文献１と略同様の従来技術が、開示されている。
図１４に、上記特許文献１、２等の従来手法によるデータ交換の具体例を示す。【０００８】
この従来手法では、各局（ノード）は、サイクルタイマとセンドタイマの２種類のタイマを備える。サイクルタイマは、データ交換周期（スキャン時間）を生成する為のタイマであり、全ての局で同一の時間が設定されている。従来手法では、同期フレームによって全ての局のサイクルタイマの同期化を図るが、これについては特に説明しない。【０００９】
センドタイマは、各局のデータ送信タイミングを生成する為のタイマであり、全ての局で相互に異なる値が設定される。センドタイマは、サイクルタイマのタイマアップ時に起動され、上記設定値に応じたタイミングでタイマアップするので、全ての局で相互に異なるタイミングでタイマアップすることになる。これより、例えば図１４に示すように、全ての局のデータ送信タイミングが、相互に異なることになる。【００１０】
図１４の具体例について説明する。
上記サイクルタイマによって、図示のように、データ交換周期（通信サイクル）であるスキャン時間101が生成される。スキャン時間101は、時刻合わせに使用する図示のＴＣ帯域102及びデータ交換に使用する図示のＴＳ帯域103で構成される。尚、ＴＣ帯域、ＴＳ帯域については、例えば特許文献２に記載の通りであり、ここでは特に説明しない。【００１１】
例えば、ＴＣ帯域では、特許文献２等に記載のノード同期方法等によって、時刻同期を行うための同期フレーム104がマスタノードによって伝送路上に送信され、これによって各スレーブノードのサイクルタイマを同期化する。そして、ＴＳ帯域では、各ノードが、自局に割当てられた送信タイミングで、自局のデータを通信経路上にブロードキャスト送信する。各ノード毎に、自局のサイクルタイマを元に、各通信サイクルの開始タイミングで自局のセンドタイマを起動して、センドタイマがタイムアップしたタイミングが、上記送信タイミングとなる。【００１２】
これより、図１４に示すように、全ての局で相互に異なるタイミングでセンドタイマがタイマアップし、以って相互に異なるタイミングでフレームデータ(107,110等)が、不図示の通信経路上にブロードキャスト送信されることになる。換言すれば、スキャン時間101に対して時分割で相互に異なる送信タイムスロット（105,108等）が、各局に割当てられることになる。【００１３】
特許文献１の発明においては、伝送路をバスないしシリアルケーブルで接続されたネットワークとして構成しているが、最近では産業用ネットワークにおいてもEthernetの適用が進んでおり、情報系機器との連携も考慮してコントローラレベルネットワークにおいてはこれが主流となりつつある。
【特許文献１】特開２００５−１５９７５４号公報
【特許文献２】国際公開番号WO2013/121568号
【発明の開示】
【００１４】
上記特許文献１，２等の従来手法では、物理層をバスあるいはシリアルケーブルのカスケードとしているので、ブロードキャストにより一度に全ての他局へデータ送信することができる。ブロードキャスト送信されたデータの受信タイミングは、各ノード同時あるいはほぼ無視できる時間差であることが想定できる。
【００１５】
一方、例えば100BASE-TXや1000BASE-TなどのEthernetを伝送路とした全二重回線等であって、且つ、トポロジとしてリング型またはライン型を採用した場合、各局（ノード）は、隣接局以外の局と通信する為には、自局と通信相手局との間にある１以上の局によって中継することを前提とした伝送を行う構成となる。つまり、この構成の場合、各局が直接的に通信可能となるのは、隣接局のみとなる。あるノードは、隣接局から送信されたフレームデータが、自局宛ではない場合、これを別の隣接局へ中継する。この中継が繰り返されることで、最終的に、フレームデータは宛先局に到達することになる。
【００１６】
尚、上記隣接局とは、自局と直接、通信線によって接続された他局である。また、全二重回線であるので、通信線は、上りと下りの２つが設けられる。つまり、自局から隣接局へのデータ送信用の通信線と、隣接局から送られるデータの受信用の通信線とが、設けられる。
【００１７】
一般的にＦＷまたはＬＳＩ等によってフレームデータを隣接ノードへ中継する場合、一定の中継遅延が発生するため、任意のノードのフレームデータを全ノードに同報通信する場合、最大で「“構成ノード数−１”×中継遅延時間＋伝送時間」の時間が必要となる。
【００１８】
図１５は、リング型トポロジの全二重回線による制御用ネットワークシステムの具体例である。
図示の例では、４台のノード（局１、局２、局３、局４）が、それぞれ、上記上りと下りの２本の通信線によって、図示のようにリング型に接続されており、ネットワーク全体で右回り（時計回り）の通信経路を回線Ａ、左回り（反時計回り）の通信経路を回線Ｂとする。回線Ａの場合、例えば局１からの送信データは、局１→局３→局２→局４→局１というように、局３、局２、局４によって順次中継されて、局１に戻ってくる。同様に、回線Ｂの場合、例えば局１からの送信データは、局１→局４→局２→局３→局１というように、局４、局２、局３によって順次中継されて、局１に戻ってくる。
【００１９】
図１６に、図１５のシステムにおける従来の通信方式による制御用ネットワークシステムの動作の一例を示す。尚、図１６は、上記回線Ａの動作例であるが、回線Ｂについても略同様である。
【００２０】
上述したように、制御用ネットワークシステムにおいて、定周期の各スキャン時間内に、全ての局が、自局のデータを他の全ての局に渡す必要がある。これを例えば図１５に示すようなリング型トポロジの構成において実現する場合の動作例を、図１６に示している。
【００２１】
図１６の例は、トークン方式であり、トークン（送信権）を獲得した局が、自局のデータを送信できるものであり、それ以外の局は、このデータの受信と中継を行うことになる。
【００２２】
図示の例では、まず、局１がトークンを獲得し、これより、自局のデータを下流の隣接局へ送信する。下流の隣接局は、図１５の構成で回線Ａの場合には局３となる。図１５の構成で回線Ａの場合には、局１の上流の隣接局は局４ということになる。尚、図１６において、矩形は送受信データフレーム（パケット）を示し、各局毎に、上側が受信、下側が送信を示す。また、横軸は時間である。矩形の中の数字は送信元の局を示し、例えば‘１’であれば送信元は局１となり、パケット’局１’と記すものとする。上記トークンを獲得した局１は、局３に対してパケット’局１’を送信することになる。尚、矩形の中が‘Ｔ’であるのはトークンを意味する。
【００２３】
局３は、上記パケット’局１’を受信すると、これを取得すると共に下流の隣接局（局２）へ中継する。このパケット’局１’を受信した局２も、同様にして、これを取得すると共に下流の隣接局（局４）へ中継する。このパケット’局１’を受信した局４も、同様にしてこれを取得すると共に下流の隣接局（局１）へ中継する。
【００２４】
これより、局１は、自局の送信データフレームを受信することになり、以ってトークンをリリースする。ここでは、トークンには権限局情報が含まれ、リリースの際に権限局が更新されるものとする。ここでは仮に権限局は‘１’→‘２’→‘３’→‘４’→‘１’→‘２’→等のように、リリースの度に更新されるものとする。ここでは、上記局１のトークンリリースの際に、権限局が‘２’に更新されているものとする。
【００２５】
これより、局１の下流の隣接局である局３が、トークンを受信するが、権限局が自局ではないので、そのまま自局の下流の隣接局である局２へ中継する。局２は、トークンを受信すると、権限局が自局であるので、送信権を獲得したものとして、自局のデータ（パケット’局２’）を送信することになる。これは、当然、自局の下流の隣接局である局４へ、送信することになる。このパケット’局２’も、上記パケット’局１’と略同様に、局２→局４→局１→局３の順で順次、受信・中継されていき、最後は局２が自局の送信データを受信することになり、以ってトークンをリリースする。
【００２６】
その後、局３、局４も、トークンを獲得して送信権を得ると、自局のデータを送信することになり、データは他の局によって順次中継されて自局に戻ってくる。
このようにして、全ての局１，２，３，４が、自局のデータを送信することになり、他局全てがそのデータを受信・取得することになる。つまり、全ての局が、自局のデータを他の全ての局に渡したことになる。
【００２７】
制御ネットワークシステムにおいては、例えば定周期で、例えばサイクルタイマの起動からタイムアップまでの時間（スキャン時間）内に、データ交換が必要とされる全ての局（ノード）同士の相互のデータ交換を完了する必要がある。つまり、全ての局が、それぞれ、自局のデータを他の全ての局に渡す必要がある。これを、リング型トポロジのネットワークで実現しようとした場合、例えばトークン方式で行う場合には、上述した図１６に示す動作となる。つまり、各局毎に送信パケットが一巡するのに（自局に戻ってくるまでに）掛かる時間をＴａ、局の台数をＭ台とした場合、最低でも“Ｔａ×Ｍ”の時間が掛かることになる。つまり、非常に時間が掛かることになり、以って上記スキャン時間を非常に長く設定する必要が生じてしまう。換言すれば、データ交換周期が長くなってしまうという問題が生じる。
【００２８】
本発明の課題は、ネットワークに接続される全ノード装置が相互にデータ交換する制御ネットワークシステムにおいて、伝送効率を高め従来よりも短時間でデータ交換を完了させることができる制御ネットワークシステム、そのノード装置等を提供することである。
【００２９】
本発明の制御ネットワークシステムは、複数のノード装置が相互にデータ交換する制御ネットワークシステムにおいて、前記各ノード装置は、下記の各構成を有する。
・所定のデータ交換周期毎に、該データ交換周期の開始から所定時間経過した所定のタイミングで、自ノード装置のデータを隣接ノード装置へ送信するデータ送信手段；
・任意の隣接ノード装置からの送信データを受信した場合、該送信データを取得すると共に別の隣接ノード装置へ中継するが、前記受信したデータの送信元が下流側の隣接ノード装置であった場合には、前記中継を行わずに、前記受信したデータを破棄する中継手段；及び
・前記所定のタイミングを生成する第１タイマ。
そして、全てのノード装置の前記第１タイマが同一タイミングで起動し且つ同一時間後にタイマアップすることによって、前記全てのノード装置の前記所定のタイミングを同一タイミングとする。
【図面の簡単な説明】
【００３０】
【図１】（ａ）、（ｂ）は、本例の制御ネットワークシステムの全体構成図である。
【図２】（ａ）、（ｂ）は、ノードのドライバの処理を示すフローチャート図（その１）である。
【図３】ノードのドライバの処理を示すフローチャート図（その２）である。
【図４】ノードのドライバの処理を示すフローチャート図（その３）である。
【図５】ノードの処理部の処理を示すフローチャート図である。
【図６】本手法によるネットワークシステムの自局データ送信に係わる動作を示す図である。
【図７】本手法によるシステム全体のデータ送受信動作を示す図（その１）である。
【図８】本手法によるシステム全体のデータ送受信動作を示す図（その２）である。
【図９】（ａ）、（ｂ）は、ステップＳ２１，Ｓ２３．Ｓ２４．Ｓ２６の処理イメージである。
【図１０】本例の制御ネットワークシステムのトポロジの他の例である。
【図１１】本例の制御ネットワークシステムの機能ブロック図である。
【図１２】ライン型の全二重回線の制御ネットワークシステムの構成例である。
【図１３】リング型の一回線の制御ネットワークシステムの構成例である。
【図１４】従来手法によるデータ交換の具体例を示す図である。
【図１５】リング型トポロジの全二重回線による制御用ネットワークシステムの具体例である。
【図１６】図１５のシステムにおける従来の通信方式による制御用ネットワークシステムの動作の一例を示す図である。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して、本発明の実施の形態について説明する。
図１（ａ）、（ｂ）は、本例の制御ネットワークシステムの全体構成図である。
尚、図１には、全二重回線等であり且つトポロジとしてリング型であるネットワークシステムを例にしているが、本例の制御ネットワークシステムの構成は、この例に限らない。例えば、リング型ではなく、ライン型であってもよいし、後に図示する他の型であってもよい。また、全二重回線に限るものでもなく、例えばその２倍の回線数（全四重回線と呼ぶ）等であっても構わないし、１回線であっても構わない。また、図１には、構成ノードが４つである例を示すが、勿論、この例に限らない。【００３２】
また、本例の制御ネットワークシステムも、上述したように、システムを構成する各機器（ノード）が、相互にデータ交換を行う必要があり、これをリアルタイム性を保証したうえで行う必要がある。その為、例えば上記サイクルタイマで規定されるデータ交換周期の時間内に（スキャン時間内に）全ノード間のデータ交換を完了させる必要がある。つまり、スキャン時間内に、全ノードが、自ノードのデータを、他の全てのノードに渡す必要があることを前提とする。換言すれば、上記のように、システムを構成する各機器（局；ノード）が相互にデータ交換を、リアルタイム性を保証したうえで行う必要があることを前提とする。【００３３】
図１（ａ）に示す例の制御ネットワークシステムは、上記図１５と同様に、図示の４台のノード１０（局１、局２、局３、局４）が、全二重の通信回線１２，１３によって接続されており、ネットワーク全体で右回り（時計回り）の通信経路を回線Ａ、左回り（反時計回り）の通信経路を回線Ｂとする。図１５で説明したように、通信回線１２，１３は例えば上りと下りの通信線であり、例えば局１と局２との間の通信は、通信回線１２によって局１が局２へデータ送信し、通信回線１３によって局２が局１へデータ送信する。【００３４】
更に詳しくは、図１（ｂ）に示すように、各ノード１０は例えばドライバ１１を有しており、上記回線Ａに係わる通信回線１２（１２ａ，１２ｂ，１２ｃ，１２ｄ），上記回線Ｂに係わる通信回線１３（１３ａ，１３ｂ，１３ｃ，１３ｄ）が、それぞれ、図示のように各ノード１０のドライバ１１に接続している。【００３５】
ここで、通信回線１２，１３は、それぞれが、１本の通信線（シリアル線など）ではなく、複数の通信線（シリアル線など）から成る。つまり、例えば通信回線１２は、図示の通信線１２ａ、１２ｂ、１２ｃ、１２ｄから成る。各通信線は、任意の２つのノード１０間を接続している。図示の例では、通信線１２ａは局１−局２間、通信線１２ｂは局２−局３間、通信線１２ｃは局３−局４間、通信線１２ｄは局４−局１間を、それぞれ接続している。【００３６】
通信回線１３についても同様である。すなわち、通信回線１３は、図示の通信線１３ａ、１３ｂ、１３ｃ、１３ｄから成る。各通信線は、任意の２つのノード１０間を接続している。図示の例では、通信線１３ａは局１−局２間、通信線１３ｂは局２−局３間、通信線１３ｃは局３−局４間、通信線１３ｄは局４−局１間を、それぞれ接続している。【００３７】
そして、例えば局１−局２間の通信に関しては、局１は通信線１２ａにより局２へデータフレーム（パケット）を送信し、局２は通信線１３ａにより局１へデータフレーム（パケット）を送信する。よって、局１と局２が相互に同時にパケット送信しても、使用する通信線が異なるので、パケット衝突が起こることはない。これは他の局間の通信についても同様であり、ネットワークシステム全体として、全局が同時にパケット送信しても、各々がパケット送信に使用する通信線が異なるので、パケット衝突が起こることはない。【００３８】
また、各ノード１０は、上記ドライバ１１以外に、処理部１４、サイクルタイマ１５、センドタイマ１６も有している。サイクルタイマ１５、センドタイマ１６については、上記特許文献１，２で説明されており、ここでの説明は省略する。処理部１４は、ノード１０のメインの処理を実行するものであり、例えば不図示の制御対象機器の制御、その状態を示すデータ等の収集、サイクルタイマ１５、センドタイマ１６の設定・起動の管理、送信データフレーム（パケット）の生成など、様々な処理を行う。【００３９】
ドライバ１１は、例えば、上記処理部１４からの要求に応じて上記送信データフレームを他ノードへ送信したり、他ノードからの送信データフレームを受信するとこれを処理部１４に渡す等、通信回線１２，１３を介した通信処理を行う処理部（通信専用プロセッサ等）である。【００４０】
ドライバ１１は、通信回線１２、１３の何れについても、上流側から送られてくるパケットを受信すると、これを中継するものと判定した場合には、下流側へ送出する。例えば、局１を例にすると、回線Ａに関しては局４が上流側、局２が下流側となり、回線Ｂに関しては局４が下流側、局２が上流側となる。【００４１】
これより、局１のドライバ１１は、通信線１２ｄを介して局４からの送信パケット（データフレーム）を受信すると、これを中継する場合には、通信線１２ａを介して局２へ転送する。尚、中継する際には、データフレームの内容（データ）は取得して、必要に応じて処理部１４へ渡す。同様に、通信線１３ａを介して局２からのパケットを受信すると、これを中継する場合には、通信線１３ｄを介して局４へ送信する。また、局１が自局のデータを送信する場合には、局１のドライバ１１は、このデータフレームを、回線Ａ、回線Ｂの両系へ送出する。つまり、このデータフレームを、通信線１２ａを介して局２へ送信すると共に通信線１３ｄを介して局４へ送信する。【００４２】
図２（ａ）、（ｂ）は、ノード１０の処理を示すフローチャート図である。
図２（ａ）は、自局データ送信の際のドライバ１１の処理を示す。
ノード１０が有する上記処理部１４（ＣＰＵ／ＭＰＵ等）は、所定のソフトウェア（プログラム）等を実行することで、所定の制御処理等を実行している。そして、この処理の１つとして自局のデータを送信するイベントが発生した場合、このデータと送信要求をドライバ１１に渡す。【００４３】
ドライバ１１は、上記データと送信要求を受けると（ステップＳ１１）、このデータフレームを上記回線Ａ、回線Ｂの両系に送信する（ステップＳ１２）。これは、上記の通り、両方とも下流側へ送信する。従って、局１の場合、回線Ａについては通信回線１２ａを介して局２へ送信し、回線Ｂについては通信回線１３ｄを介して局４へ送信する。【００４４】
上記送信した自局データ（パケット）は、正常であれば、ネットワークを一巡して自局に戻ってくる。また、他局の送信データ（パケット）を受信する場合もある。
図２（ｂ）は、データ受信の際のドライバ１１の処理を示す。【００４５】
ドライバ１１は、上記回線Ａ，Ｂの何れかを介して任意のパケットを受信すると、図２（ｂ）の処理を実行する。まず、受信パケットの送信元をチェックして、送信元が自局である場合には（ステップＳ２１，ＮＯ）、このパケットを破棄する（ステップＳ２３）。この場合は、自局が上記ステップＳ１２で送信したパケットが、ネットワークを一巡して、戻ってきたものであるはずだからである。【００４６】
一方、受信パケットの送信元が他局（自局以外）である場合には（ステップＳ２１，ＹＥＳ）、受信パケットを中継する（ステップＳ２２）。つまり、受信パケットを下流の隣接局へ転送する。勿論、回線Ａで受信した場合は回線Ａにおける下流へ、回線Ｂで受信した場合は回線Ｂにおける下流へ、中継することになる。また、中継する場合でも、受信パケットは不図示のバッファ等に残しておき、後述するステップＳ２４，Ｓ２５の処理の際に利用する。【００４７】
ステップＳ２２の処理を行った場合には、更に、この受信パケットが、既に受信済みのパケットと同一であるか否かを判定する（ステップＳ２４）。本例では送信元ノードは上記ステップＳ１２で回線Ａ、回線Ｂの両系にパケット送信するので、正常であれば、他局は、この２つのパケットを受信することになる。よって、後から受信したパケットは必要ないことになる。これより、既に受信済みのパケットと同じパケットを受信した場合には（ステップＳ２４，ＹＥＳ）、受信パケットを破棄する（ステップＳ２６）。【００４８】
尚、例えば、送信元ノードは、上記ステップＳ１２の際に、送信する２つのパケット（データフレーム）に同一フレーム番号を付与している。通常、データフレーム送信毎に、フレーム番号を付与して送信する。フレーム番号は、送信毎に、更新（例えば＋１インクリメント）される。これより、ステップＳ２４の処理では、例えば、受信パケットと、既に受信済みのパケットとが、送信元ノードが同一で且つフレーム番号が同一である場合に、両者が同一であるものと判定する。但し、これは一例であり、この例に限らない。【００４９】
一方、受信パケットが、上記２つのパケットのうちのどちらか一方を先に受信したものである場合には（ステップＳ２４，ＮＯ）、この受信パケットのデータを処理部１４に渡す（ステップＳ２５）。処理部１４は、このデータを用いて何等かの処理を行うことになるが、これについては特に関係ないので、説明は省略する。【００５０】
ここで、データ受信の際のドライバ１１の処理は、上記図２（ｂ）の処理例に限るものではなく、例えば図３や、図４に示す処理であってもよい。
図３は、データ受信の際のドライバ１１の処理フローチャート図（その２）である。【００５１】
図４は、データ受信の際のドライバ１１の処理フローチャート図（その３）である。
以下、まず、図３について説明する。
ドライバ１１は、上記回線Ａ，Ｂの何れかを介して任意のパケットを受信すると、図３の処理を実行する。まず、受信パケットの送信元をチェックして、送信元が自局である場合には（ステップＳ３１，ＮＯ）、このパケットを破棄する（ステップＳ３５）。尚、ステップＳ３１、Ｓ３５の処理は、上記ステップＳ２１，Ｓ２３の処理と同じであってよい。【００５２】
一方、受信パケットの送信元が他局である場合には（ステップＳ３１，ＹＥＳ）、続いて、受信パケットが、既に受信済みのパケットと同一であるか否かを判定する（ステップＳ３２）。この処理は、上記ステップＳ２４と同じであってよく、ここでは特に説明しない。そして、既に受信済みのパケットと同じパケットを受信した場合には（ステップＳ３２，ＹＥＳ）、受信パケットを破棄する（ステップＳ３５）。ステップＳ３５は、上記ステップＳ２６と同じであってよく、更にステップＳ２６はステップＳ２３と同じであってよい。これより、図３では、“破棄”処理は１つにまとめて示してある。【００５３】
一方、受信パケットが、ステップＳ２４で説明した２つのパケットのうちのどちらか一方を先に受信したものである場合には（ステップＳ３２，ＮＯ）、この受信パケット（先着パケット）を中継すると共に（ステップＳ３３）、そのデータを処理部１４に渡す（ステップＳ３４）。【００５４】
ステップＳ３３、Ｓ３４は、上記ステップＳ２２，Ｓ２５と同じであってよい。
上記図３の処理が図２（ｂ）の処理と異なる点は、受信パケットの送信元が他局であり、且つ、最初のパケットを受信した場合に、このパケットの中継処理を行っている点である。【００５５】
つまり、図３の処理では、受信パケットの送信元が他局であっても、既に受信済みのパケットと同じパケットを受信した場合には、このパケットの中継は行わない。一方、図２（ｂ）の処理では、この様なケースであっても、パケットの中継を行う。図３の処理では、図２（ｂ）の処理よりも、システム全体としての中継回数を減らすことができる。図３の処理は、例えば任意のノード１０が回線Ａ、回線Ｂの両系に送信したデータのうち、自局に最初に到達したデータ（先着パケット）は中継するが、その後に自局に到達したデータ（後着パケット）は中継しないものと見做してよい。【００５６】
これについて、例えば局１が両系に送信したパケットに関して局３が図３の処理を行う場合であって、仮に、局１→局２→局３のルートのパケットが先に局３に到達し、その後に、局１→局４→局３のルートのパケットが局３に到達したものとする。この場合、図３の処理では、後から到達したパケットは局２に中継されないことになる。しかし、局２は、上記局１→局２→局３のルートで既にパケット受信済みであるので、問題ないことになる。【００５７】
次に、図４の処理について説明する。
尚、図４の処理が図２の処理と異なる点は、ステップＳ２１の代わりにステップＳ４１の処理を実行する点であり、他の処理（ステップＳ４２，Ｓ４３，Ｓ４４，Ｓ４５）は、図２のステップＳ２２，Ｓ２４、Ｓ２５、Ｓ２３（またはＳ２６）と同じであってよく、ここでは特に説明しない。【００５８】
ステップＳ４１の処理は、受信パケットの送信元をチェックして、送信元が自局の下流の隣接局が送信したフレームであるか否かを判定する処理である。そして、送信元が自局の下流の隣接局が送信したフレームである場合には（ステップＳ４１，ＹＥＳ）この受信パケットを破棄し、そうでない場合には（ステップＳ４１，ＮＯ）ステップＳ４２へ移行する。【００５９】
尚、言うまでもないが、各パケット（データフレーム）には、送信元ノードの識別番号（局ＩＤなど）が付与されている。また、例えば、各ノード１０は、予め、ネットワーク構成情報を記憶している。ネットワーク構成情報は、各ノード１０毎に、自ノードの上流側と下流側の隣接局の上記局ＩＤ等の情報が含まれている。ネットワーク構成情報は、例えば開発者等が予め任意に作成して、各ノード１０に記憶させるが、この例に限らない。例えば、送信元ノード以外は破棄することを許さず必ず中継させると共に中継時に中継局の上記局ＩＤ等を付与させることが決められている特殊なパケットを予め用意しておく。任意のノード１０が特性のときに（たとえば空き帯域に）上記特殊パケットを送信し、これが一巡して送信元ノードに戻ってくると、送信元ノードでは上記付与されている局ＩＤに基づいて、上流側、下流側の隣接局を判別することが可能となる。【００６０】
図２（ｂ）や図３の場合、自局がステップＳ１２で送信したフレームが、リング型ネットワークを一周して戻ってきたら、破棄するものであった。しかし、この例に限らず、自局の１つ手前の他局で破棄させるようにしてもよく、この様な例に応じたものが図４の処理である。【００６１】
尚、図４の例に限らず、例えば図３の処理において、ステップＳ３１の代わりにステップＳ４１の処理を行うようにしてもよい。
以上、図２、図３、図４の処理を纏めると、例えば下記のようになる。【００６２】
・パケットは、リング型ネットワークの各ノード１０を一巡したら、すなわちデータ交換が必要とされる全ノード１０が受信したら、破棄する。破棄を行うのは、パケット送信元のノード１０であってもよいし、その１つ手前のノード１０（送信元ノードにパケットを中継するノード１０）であっても構わない。【００６３】
・送信元ノードは、上記パケットを、回線Ａ、回線Ｂの両系に送信する。他の各ノード１０は、両系からパケットを受信する。他の各ノード１０のドライバ１１は、最初に受信したパケットは処理部１４に渡すが（実質的に受け取るが）、２番目に受信したパケットは処理部１４に渡さない（実質的に受け取らない）。【００６４】
・上記他の各ノードは、上記２番目に受信したパケットは、中継してもよいし、中継しなくてもよい。
図５は、ノード１０の処理部１４の処理を示すフローチャート図である。【００６５】
図５の処理は、随時実行されるものであり、基本的には何等かのイベント待ち状態であり（ステップＳ５１）、何等かのイベントが発生する毎に（ステップＳ５２，ＹＥＳ）、発生したイベントの内容に応じた処理を実行する。【００６６】
発生したイベントが、サイクルタイマ１５のタイムアウト（サイクルＴ．Ｏ．）である場合には（ステップＳ５３，ＹＥＳ）、センドタイマ１６に所定の設定値をセットして（ステップＳ５４）、センドタイマ１６を起動する（ステップＳ５５）。【００６７】
発生したイベントが、センドタイマ１６のタイムアウト（センドＴ．Ｏ．）である場合には（ステップＳ５６，ＹＥＳ）、自局のデータを送信させる（ステップＳ５７）。これは、上記自局のデータと送信要求を、ドライバ１１に渡すものである。これより、上記の通り、ドライバ１１は、上記ステップＳ１１のデータ＆送信要求を受けることになり、このデータを上記回線Ａ、回線Ｂの両系に送信することになる（ステップＳ１２）。【００６８】
尚、基本的には、上記ステップＳ５５で起動したセンドタイマ１６が、タイマアップした場合に、上記ステップＳ５６がＹＥＳとなることになる。
また、発生したイベントが、コモンメモリフレーム受信である場合には（ステップＳ５８，ＹＥＳ）、このコモンメモリフレームのデータを、不図示のコモンメモリの該当領域に格納する（ステップＳ５９）。尚、ここでは、上記ステップＳ５７の処理に応じて送信されるフレームを、コモンメモリフレームと呼ぶものとする。上記図２（ｂ）等の処理により、任意の他局が上記ステップＳ５７の処理により送信したコモンメモリフレームをドライバ１１が受信し、これをドライバ１１が上記ステップＳ２５により処理部１４に渡すと、上記ステップＳ５８の判定がＹＥＳとなることになる。【００６９】
また、受信フレームが、コモンメモリフレームではなく、例えば同期化フレームである場合には、以下に説明する処理が実行される。
すなわち、マスタノードは、上記コモンメモリフレームだけでなく、別タイミングで、サイクルタイマ１５の同期化の為の同期化フレームを送信する場合がある。これは、任意の宛先ノードに対して送信するものである。宛先ノード以外の各ノード１０は、この同期化フレームを受信すると、これを中継する。宛先ノードは、この同期化フレームを受信すると、中継せずに、同期応答フレームを送信元ノード（マスタノード）へ返信する。この処理が、図５に示すステップＳ６０．Ｓ６１の処理である。【００７０】
すなわち、発生したイベントが、自局宛の同期化フレームの受信である場合には（ステップＳ６０，ＹＥＳ）、上記同期応答フレームをドライバ１１に渡して、送信元ノード（マスタノード）へ送信させる（ステップＳ６１）。【００７１】
尚、システムを構成する複数のノード１０のうちの何れか１つの局（一例では、局１、局２、局３、局４の何れか）が、上記マスタノードとして動作するように予め設定されているか、もしくは、局番やMACアドレス等の昇順または降順等で優先度判定を行い、上記マスタノードとして動作する。マスタノード以外のノード１０は、基本的には全て、スレーブノードとして動作することになる。そして、マスタノードは、上記同期化フレーム等によって、全てのスレーブノードのサイクルタイマ１５を、自ノードのサイクルタイマ１５に同期させる。これについては、従来技術文献等に記載されており、ここではこれ以上詳細には説明しない。【００７２】
また、尚、一例としては例えば、上記マスタノードは、上記同期化フレームを送信する際に、例えば図２（ａ）のステップＳ１２の処理により回線Ａ、回線Ｂの両系に送信する。これより、宛先のスレーブノードは、先着した同期化フレームを受信すると、例えば図３、図５の処理の場合には、ドライバ１１がステップＳ３４の処理によって同期化フレームを処理部１４に渡し、これより処理部１４は上記ステップＳ６０がＹＥＳになりステップＳ６１の処理を行うことになる。これより、ドライバ１１は、上記ステップＳ１２の処理により、上記同期応答フレームを両系に送信することになる。そして、マスタノードにおいて、先着した同期応答フレームが、ステップＳ３４の処理により処理部１４に渡されることになる。尚、マスタノード、宛先スレーブノードの両方とも、後着したフレームや自局の送信フレームは破棄される（ステップＳ３５）。【００７３】
以上の処理によれば、結果的に、マスタノード−宛先スレーブノード間を、フレームが最短ルートで往復することになる。
そして、この最短ルートでのフレーム往復に要する時間が、マスタノードで計測され、この計測時間の半分の時間が、マスタノード−宛先スレーブノード間の通信時間（通信遅延時間）として算出されることになる。この通信遅延時間を用いてサイクルタイマ１５の同期化を図る処理については、従来技術であり、ここでは特に説明しない。【００７４】
尚、発生したイベントが、上述した各種イベントの何れでも無い場合には（ステップＳ６０，ＮＯ）、発生したイベントに応じた処理を実行するが、これについては特に図示・説明はしないものとする。【００７５】
ここで、図１４で説明したように、従来技術ではセンドタイマの設定値は、全ての局で相互に異なる値が設定されるものであった。これに対して本手法では、一例としては、全ての局で同一の設定値がセットされるものとする（完全に同一に限らず、ほぼ同一であってもよいものとする。つまり、多少は異なってもよいものとする）。【００７６】
換言すれば、従来技術の場合、ステップＳ５４のセンドタイマ設定値は、各ノード毎に、一例としては下記の算出式によって決定されていた。
設定値＝ＴＣ帯域時間＋（スロット単位時間×自局の割当スロット番号）
スロット単位時間は、上記送信タイムスロット（105,108等）の長さであり、一例としては、スロット単位時間＝ＴＳ帯域時間÷局数、等とする。また、割当スロット番号は「‘０’と自然数」であり、例えば局数＝Ｎ台とした場合、０、１，２，・・・、Ｎ−１の何れかが、各局に重複しないように割当てられるものである。【００７７】
一方、本手法の場合、一例としては全てのノードに同じセンドタイマ設定値が、予め設定されている。その一例を下記に示す。
設定値＝ＴＣ帯域時間＋α（α；０または任意の正の値）。【００７８】
図６は、本手法によるネットワークシステムの自局データ送信に係わる動作を示す図である。
図示のように、各ノード１０毎に、サイクルタイマ１５によって生成されるスキャン時間２１（データ交換周期）毎に、上記ステップＳ５４，Ｓ５５の処理が実行されて、センドタイマ１６が動作開始する。上記の通り、全てのノード１０のセンドタイマ１６には、任意の同一の値が設定されるので、図６に示すように全てのセンドタイマ１６が同一タイミングでタイマアップする。これより、全てのノード１０で同時に上記ステップＳ５７の処理（自局データフレーム２６の送信）が行われることになる。【００７９】
但し、これは、一例であり、この例に限らない。基本的には、全てのノード１０で同時に上記ステップＳ５７の処理（自局データフレーム２６の送信）が行われるようにすることが出来れば、どの様な手法であっても構わない。尚、この場合の“同時に”は、完全に同時である場合に限らず、多少のズレがあっても構わない。【００８０】
上記自局データを同時に送信する為に、例えば上記のように全てのセンドタイマ１６が同一タイミングでタイマアップするように構成するものであり、これを実現する為の一例として、サイクルタイマ１５の同期化を図ったうえで、全てのノード１０のセンドタイマ１６に同一の値が設定されるようにしているが、この例に限らない。【００８１】
例えば一例としては、センドタイマ１６の起動からタイマアップまでの時間（カウント数等）が同一となればよいのであり、これを実現する方法の一例が上記の通り設定値を同一とするものであるが、この例に限らない。例えば、各センドタイマ１６の初期値（起動時の値）が異なっていれば、当然、設定値も異なることになる。例えば上記カウント数を‘1000’とした場合であって、例えば局１のセンドタイマ１６の初期値は‘０’、局２のセンドタイマ１６の初期値は‘1000’、局３のセンドタイマ１６の初期値は‘2000’、局４のセンドタイマ１６の初期値は‘3000’であるものとする。この場合、各センドタイマ１６の上記ステップＳ５４でセットする設定値を、局１が‘1000’、局２が‘2000’、局３が‘3000’、局４が‘4000’とすると、全てのノード１０においてセンドタイマ１６のタイマアップまでのカウント数が‘1000’となる。これより、全てのセンドタイマ１６が同一タイミングでタイマアップすることになる。【００８２】
上述したように、本手法では、一例としては、全てのセンドタイマ１６が同一タイミングでタイマアップするように構成すればよく、その為の方法は何でもよい。例えば、全てのノード１０のセンドタイマ１６が、同一タイミングで起動し且つ同一時間後にタイマアップすることによって、全てのセンドタイマ１６が同一タイミングでタイマアップするように構成するものであれば、何でも良い。また、この例に限るものでもない。【００８３】
更に、本手法では、必ずしも全てのセンドタイマ１６が同一タイミングでタイマアップするように構成しなくてもよく、結果的に全てのノード１０の自局データ送信タイミングが同一となるものであれば、何でも良い。【００８４】
そして、上記“同一タイミング”とは、完全に同一のタイミングに限らず、多少のズレがあっても構わないものとする。
尚、図示の例では、ノード１０は５台あるものとし、図示の第１センドタイマ〜第５センドタイマは、当該５台のノード１０それぞれのセンドタイマ１６を意味する。【００８５】
尚、上記同一タイミングでデータ送信が行われるためには、全てのノードのサイクルタイマが同期していることが前提となるが、これは上記特許文献１，２等の従来技術で実現されているので、ここでは特に詳細には説明しないが、以下、簡単に説明する。【００８６】
まず、上記サイクルタイマ同期の為に、従来技術では、マスタノードと各スレーブノード間の伝送遅延時間を求めていた。これは、特定のパケットがマスタノード−スレーブノード間を往復するのに掛かる時間を実測して、該実測値の半分を伝送遅延時間としていた。各スレーブノードは、上記特定パケットを受信すると、これを直ちにマスタノードへ返信していた。本手法でも、基本的にはこれと同様の処理を行って伝送遅延時間を求める。つまり、特定パケットの場合には、リング型ネットワークを一巡させるのではなく、各スレーブノードを順次宛先として、宛先のスレーブノードまで特定パケットを中継させる。そして、宛先のスレーブノードは、特定パケットを受信すると、直ちにこれをマスタノードへ返信する。【００８７】
但し、本例の場合、マスタノードは、回線Ａ、回線Ｂの両系に上記特定パケットを送信し、宛先スレーブノードは特定パケットを２つの通信経路によって２回受信することになる。宛先スレーブノードは、最初に受信した特定パケットに対してのみ上記返信処理を行い、２回目に受信した特定パケットは破棄する。つまり、マスタノード−各スレーブノード間の最短ルートの伝送遅延時間を、求めることになる。【００８８】
尚、本説明では特にマスタノード、スレーブノードの区別なく説明しているが、ここでは仮に図１の局１がマスタノードであるものとする。そして、局１が例えば宛先を局２とする特定パケットを回線Ａ、回線Ｂの両系に送信した場合、局２は、まず、通信線１２ａを介して特定パケットを受信することになり、直ちにこれを通信線１３ａを介して局１へ返信する。その後、局２は、回線Ｂにより局４、局３によって中継された特定パケットを、通信線１３ｂを介して受信することになるが、この特定パケットは破棄する。【００８９】
このようにして、マスタノード（局１）−局２間の伝送遅延時間、すなわち最短ルートでの局１−局２間の通信に掛かる時間が、求められることになる。局１−局３間、局１−局４間の伝送遅延時間も、同様にして求められることになる。【００９０】
図６に示すように、データ交換周期であるスキャン時間２１は、時刻合わせに使用するＴＣ帯域２２とデータ交換に使用するＴＳ帯域２３とから構成される。ＴＣ帯域２２では、例えば特許文献２のノード同期方法等によって、時刻同期を行うための同期フレーム２４が、マスタノードによって伝送路上に送信される。各スレーブノードはこの同期フレーム２４の受信タイミングと上記伝送遅延時間に基づいて、自局のサイクルタイマ１５をマスタノードのサイクルタイマ１５に同期化する。この処理が、図５に示すステップＳ６２．Ｓ６３の処理である。すなわち、発生したイベントが、同期フレームの受信である場合に（ステップＳ６２，ＹＥＳ）、サイクルタイマを同期化する（ステップＳ６３）。【００９１】
尚、上述した同期化フレームが上記特定パケットの一例であるが、同期化フレームは同期フレーム２４とは異なるものである。
尚、図６においてはサイクルタイマ１５の動作を１つのみ示しているが、各ノード１０は、それぞれ、自局のサイクルタイマ１５に基づいて動作する。上記の通り、全てのサイクルタイマ１５が同期している前提から、１つのみ示しているものである。【００９２】
図７に、本手法によるシステム全体のデータ送受信動作を示す。
尚、図７は、図１に示す局１と局４の間に更に局５が設けられ、全体として５台のノード１０から成る構成における動作を示すものとする。【００９３】
尚、図７は、図１６と同様、図示の矩形は送受信データ（パケット）を示し、各局毎に、上側が受信、下側が送信を示す。また、横軸は時間である。また、矩形内には送信元の局を記述してある。また、図７には、上記センドタイマ１６がタイマアップした時点から示している。これより、図上左端に示すように、各局は同時に自局のデータを送信している。例えば、局１は、図示の矩形内が“局１”のデータを送信している。【００９４】
ＴＳ帯域にて全ノード１０間の相互のデータ交換を行う。各ノード１０は、上記図６に示す送信タイミングにて回線Ａ及び回線Ｂに同一のフレーム(自局データ)を送信する。各ノード１０は、上流の隣接ノード（隣接局）から渡されたフレームを受信した場合、送信元が自局である場合以外は、受信したフレームを下流の隣接ノードに対して中継する。【００９５】
尚、上記のように、回線Ａと回線Ｂの両系にデータ送信するものであり、これより、図７には回線Ａ，回線Ｂそれぞれについてデータ送受信動作を示すが、ここでは簡単化の為に回線Ａについてのみ説明するが、回線Ｂについても回線Ａと同様であると見做して構わない。【００９６】
ここでは、回線Ａに関しては、仮に局１を基準にして考えるならば、局１→局２→局３→局４→局５→局１の順にパケットが巡回するものとする。
つまり、回線Ａに関しては、局１から見れば、下流側の隣接局は局２であり、上流側の隣接局は局５であることになる。これより、図７に示す回線Ａに係わる動作の場合、局１の送信データ（その中が“局１”である矩形）は、局２が受信することになる。また、局１は、この“局１”データ送信中に、図示のように、“局５”データを受信開始することになる。“局１”データと“局５”データの送信タイミングは同じであるが、通信路による遅延等によって、受信タイミングが多少遅れる。【００９７】
上記局１に関する動作は、他局についても同様であり、例えば局３は、自局データを局４へ送信し、このデータ送信中に図示のように“局２”データを受信開始することになる。【００９８】
そして、例えば局１は、上記“局５”データを受信完了すると、直ちに、この“局５”データを局２へ転送する。つまり、“局５”データを中継する。尚、受信データを全て受信し終わるまでは、この受信データを転送することは出来ない。そして、局１は、当該“局５”データの転送処理中に、図示のように今度は局５から転送されてくる“局４”データを、受信開始することになる。そして、受信完了したら、直ちに“局４”データを転送開始することになる。【００９９】
その後も、局１は、図示のように、“局３”データ、“局２”データを順次、中継する（受信し転送する）ことになり、更にその後に図示のように“局１”データを受信することになる。つまり、自局データが回線Ａを一巡して戻ってきたことになる。この場合、局１では、上記ステップＳ２１の判定がＮＯとなり、以って上記ステップＳ２３の処理を行う（受信した“局１”データを破棄する）。【０１００】
他の局についても、上記局１の動作と略同様の動作を行うことになり、最後は自局の送信データを受信することになり、これを破棄することになる。勿論、これは図２（ｂ）に示す一例の場合であり、上記の通り、この例に限らない。【０１０１】
このようにして、図７に示すように、全てのノード１０が、殆ど空き時間なく、送受信処理を実行することになり、上記図１６に示した従来手法に比べて、短時間で全ノード間のデータ交換が完了することは明らかである。そして、これより従来に比べて、データ量を増やしてもよいし、あるいは、サイクルタイマ１５の設定値を小さくして、スキャン時間を短くしてもよい。【０１０２】
従来技術のように各ノード間の通信帯域が未使用状態とならないため、全ノード間で相互にデータ交換するために必要な時間が短縮され、残った帯域時間において更なるデータ交換が可能となり、ネットワーク上のデータ量を増やすことができる。また、この残った帯域時間を次スキャン時間として使用することで、データ交換周期の高速化を実現することができる。【０１０３】
また、ここでは上記のように回線Ａの動作について説明したが、回線Ｂについても同様にしてパケットがリング型ネットワークを一巡することになる。そして、正常であれば上記の通り、各ノード１０は、同じパケットを回線Ａと回線Ｂの両方から受け取ることになる。そして、後から受け取ったパケットは、上記ステップＳ２６の処理が実行されることになり破棄されることになる。【０１０４】
例えば局１は、上記回線Ａに関しては“局５”データを、局５→局１によって受信することになり、早い段階で受信することになる。一方、回線Ｂに関しては“局５”データを、局５→局４→局３→局２→局１によって受信することになり、終盤で受信することになる。つまり、局１は“局５”データを、１回目は回線Ａから受信し、２回目に回線Ｂから受信することになり、１回目はステップＳ２５の処理を行うが、２回目はステップＳ２６の処理を行うことになる。但し、これは一例であり、この例に限らず、例えば、１回目はステップＳ２６の処理を行うが、２回目はステップＳ２５の処理を行うようにしてもよい。このように、同一のフレームを２つ受信した場合には、先着優先または後着優先で一方を破棄し他方を受け取る。【０１０５】
また、図７に示す例は、全てのノード１０の送信データ量が同じである場合を示しているが、本手法は、送信データ量が各局で異なる場合であっても、上記効果が得られるものである。これについて、図８に具体例を示して説明する。【０１０６】
尚、ここでは１つのパケットで送信できるデータ量に上限があるものとし、以って送信データ量が多い場合には複数のパケットに分けて送信するものとする。そして、図８に示す例では、局１と局４は１つのパケットのみ送信し、局２は３つのパケットを送信し、局３は２つのパケットを送信するものとする。つまり、局２が最も送信データ量が多く、次に多いのが局４ということになる。【０１０７】
また、図８では、図７とは異なり、図１に示す構成における動作を示すものとする。よって、ノード１０の数は４台（局１、局２、局３、局４）である。そして、ここでは、回線Ａに係わる動作のみを示し、回線Ｂについては省略している。回線Ａでは、例えば、局１→局２→局３→局４→局１の順にパケットが一巡する。【０１０８】
図８において、４台の各局（局１、局２、局３、局４）は、それぞれ、例えばＴＳ帯域の最初に自局のセンドタイマ１６がタイマアップすることで、自局のデータを送信開始する。局１を例にすると、自局のデータ（“局１”データ）を送信開始し、この送信動作中に、“局４”データを受信開始する。“局１”データを送信完了し、その後、“局４”データを受信完了すると直ちに“局４”データを局２へ転送開始する。その後、２つの“局３”データを順次受信して、これらも順次、局２へ中継する。その後、３つの“局２”データを順次受信して、これらも順次、局２へ中継する。その後、“局１”データを受信したら、これは上記の通り破棄することになる（図２（ｂ）の例の場合）。【０１０９】
続いて、図８に示す局２の動作について説明する。
上記のことから、局２は、３つの自局データ（“局２”データ）を送信することになる。ここで、例えばドライバ１１が後述するＦＩＦＯメモリと送信専用チップ（ＩＣ等）を備える構成の場合、ドライバ１１は上記３つの“局２”データをＦＩＦＯメモリに格納する。送信専用チップはＦＩＦＯメモリの格納データを順次取り出して送信する。まず、上記３つの“局２”データのうち最初の“局２”データを取り出して送信開始する。図示の例では、この送信処理中に“局１”データを受信開始しており、“局１”データを受信完了したらこれをＦＩＦＯメモリに格納する。更に、その後、“局４”データを受信開始し、“局４”データを受信完了したらこれをＦＩＦＯメモリに格納する。【０１１０】
送信専用チップはＦＩＦＯメモリの格納データを格納順に順次取り出して送信するので、上記の例では図示のように、まず、上記３つの“局２”データを順次送信し、続いて、“局１”データを送信し、その後、“局４”データを送信することになる。尚、“局１”データ、“局４”データの送信は、中継（転送）処理である。尚、送信先は下流の隣接局である局３である。【０１１１】
局２は、更に、２つの“局３”データも順次受信し、これらも既に受信済みの他局データを中継完了した後に、中継を行う。更に、３つの自局データ（“局２”データ）も順次受信することになるが、これら全て上記ステップＳ２３により破棄することになる。【０１１２】
尚、上記の例では、自局データを受信したら破棄するものとしたが、この例に限らない。例えば、自局の下流側の隣接局が送信元であるパケットを受信したら、このパケットのデータを取得するが中継は行わない（例えば破棄する）ようにしてもよい。当然のことながら送信元はこのパケットのデータを取得する必要はなく、上記ステップＳ２３のように単に破棄するだけなので、このパケットを中継する処理は無駄であり、この無駄を省く為に上記処理を行うようにしてもよい。これによって、更に短時間で全ノードのデータ交換が完了することになる。【０１１３】
局３、局４の動作についても上記局１、局２と略同様であり、説明は省略する。
ここで、図１（ｂ）に示す構成を用いて、図８の動作について更に説明する。
まず、図１（ｂ）に示すドライバ１１は、不図示のＦＩＦＯメモリと送信専用チップとを備えるものとする。ＦＩＦＯメモリと送信専用チップ（ＩＣ等）は、回線Ａ用と回線Ｂ用が、それぞれ、設けられている。例えば、回線Ａ用の送信専用チップは、回線Ａ用のＦＩＦＯメモリに任意の１以上のデータフレームがある場合には、これを順次、回線Ａ上に送信する。例えば、局２の場合、通信線１２ｂ上に（つまり局３に対して）データフレームを送信することになる。【０１１４】
一方、ドライバ１１本体は、上記ステップＳ１２またはステップＳ２２の処理の際には、自局データフレームまたは受信したデータフレームを、該当するＦＩＦＯメモリに格納する処理を行うことになる。上記図８で説明した局２を例にすると、局２は、まずステップＳ１２の処理で、３つのデータフレームより成る自局データを、回線Ａ、回線Ｂ両系へ送信する。ここでは回線Ａについてのみ説明するならば、回線Ａに対応するＦＩＦＯメモリに、上記３つの“局２”データフレームを、順次、格納することになる。【０１１５】
これより、回線Ａに対応する送信専用チップは、この３つの“局２”データフレームを、順次、通信線１２ｂ上に送信することになる。これより、図８で説明したように、局２は、３つの自局データ（“局２”データ）を順次、局３へ送信することになる。そして、この処理中に、図８で説明したように、局２は、“局１”データ、“局４”データ等を順次受信することになり、これらをステップＳ２２の中継処理により、回線Ａに対応するＦＩＦＯメモリに、順次格納することになる。これより、図８で説明したように、局２は、３つの“局２”データフレームを送信完了したら、続いて、“局１”データ、“局４”データ等を順次送信することになる。【０１１６】
但し、上記の例に限らす、ＦＩＦＯメモリには、各データの格納場所を示す情報（ポインタ等）が格納されるようにしてもよい。送信専用チップは、ＦＩＦＯメモリからポインタ等を順次取り出して、取り出したポインタ等が示す記憶領域のデータを送信する。この場合、例えば、中継処理の際には、受信用の所定の記憶領域（受信バッファ等）に受信データを格納していき、受信完了したら（受信データを格納完了したら）、この記憶領域（受信バッファ等）を示すポインタ等を、ＦＩＦＯメモリに格納する。【０１１７】
図９（ｂ）に上記ステップＳ２１，Ｓ２３の処理のイメージを示し、図９（ａ）に上記ステップＳ２４，Ｓ２６の処理のイメージを示す。
ここでは、各ノード１０が図示のフィルタ３３の機能を有するものとして説明する。フィルタ３３によって、上記ステップＳ２１，Ｓ２３の処理やステップＳ２４，Ｓ２６の処理が、実現されるものとする。また、ここでは局１と局２のみ示すが、他の局もあっても構わない（省略しているものと見做して構わない）。そして、局１におけるパケット受信に係わる動作例を説明する。【０１１８】
まず、図９（ａ）に示すように、局２が自局データを送信した場合、これが回線Ａ、回線Ｂを介して局１に渡される。これら両系からの２つのパケットを局１が受信したものが、図示の局２Ａ回線フレーム３１、局２Ｂ回線フレーム３２である。フィルタ３３は、これら２つのデータフレーム３１，３２のうちの何れか一方を、先着優先または後着優先で、図示の局２フレーム３４として自局内に取り込む。
【０１１９】
また、図９（ｂ）では、局１が自局データを回線Ａ、回線Ｂの両系に送信し、これらが局２等の他局によって中継されて、最終的には局１に戻ってきたものが、図示の局１Ａ回線フレーム４１、局１Ｂ回線フレーム４２であるものとする。この場合、フィルタ３３によって、これら２つのデータフレーム４１、４２の両方とも、上記ステップＳ２３によって破棄する。【０１２０】
尚、本手法の適用対象となるネットワークトポロジは、上記リング型やライン型の例に限らない。例えば一例としては、図１０に示すようなネットワークトポロジであっても構わない。尚、図１０において任意の２つのノード１０間を接続する各通信線４６は、上記通信線１２ａ、１２ｂ、１２ｃ、１２ｄや通信線１３ａ、１３ｂ、１３ｃ、１３ｄに相当するものと見做しても構わない。また、本例の制御ネットワークシステムは、イーサネットに限るものでもない。【０１２１】
図１１は、本例の制御ネットワークシステムの機能ブロック図である。
図１１の制御ネットワークシステムは、複数のノード装置５０から成り、例えば概略的には、複数のノード装置５０が同時にデータ送信しても、通信干渉が起きないネットワークシステムである。【０１２２】
更に詳しくは、本手法の適用対象となるネットワークは、例えば、複数の通信線６１から成り、各通信線がピアｔｏピアの関係で任意の２つのノード装置５０間を接続して成るネットワークである。更に全二重回線である。つまり、上り用通信線と下り用通信線により構成される。つまり、各ノード装置５０が同時にデータ送信しても、パケット衝突が起こることはないネットワーク構成である。更に、通信線６１によって直接接続されていないノード装置５０間の通信は、他のノード装置５０が中継を行うことで実現するネットワークでもある。【０１２３】
そして、図１１に示す例では、各ノード装置５０は、それぞれ、第１タイマ５１、データ送信部５２、中継部５３を有する。更に第２タイマ５４を有するものであってもよい。第１タイマ５１の一例が上記センドタイマ１６であり、第２タイマ５４の一例が上記サイクルタイマ１５であると見做しても構わない。【０１２４】
データ送信部５２は、所定のデータ交換周期毎に（スキャン時間内に）、第１タイマに５１によって生成される所定のタイミングで、自装置のデータを隣接局へ送信する。尚、送信先は、下流の隣接局である。【０１２５】
中継部５３は、任意の（上流の）隣接局からの送信データを受信した場合、該送信データを取得すると共に別の隣接局へ中継する。
そして、全てのノード装置５０の上記第１タイマ５１による所定のタイミングを、同一タイミングとなるようにすることを特徴とする。尚、同一とは完全に同一とは限らず、多少のズレがあっても構わない。つまり、同一は、ほぼ同一の場合も含むものとする。【０１２６】
例えば、全てのノード装置５０の第１タイマ５１の設定値を同一とすることで、全てのノード装置５０の上記第１タイマ５１による所定のタイミングを、同一タイミングとするものであるが、この例に限らない。尚、前提として、例えば、全てのノード装置５０の上記第２タイマ５４を、同期させておく必要があるが、この例に限らない。同期させる方法は、上記の通り、従来技術である。第２タイマ５４によってデータ交換周期が生成される。【０１２７】
また、例えば、各ノード装置５０がデータ送信部５２によって送信したデータは、全て、他のノード装置５０の中継部５３によって中継されることで、データ交換周期内に全ての他のノード装置５０に受信・取得されて全ノード装置間の相互のデータ交換が完了することになる。尚、受信・取得は、例えば、受信かつ取得の意味であるが、この例に限らない。【０１２８】
また、例えば、図１１に示す例の制御ネットワークシステムは、複数の上記ノード装置５０と複数の通信線６１から成り、各通信線６１が任意の２つのノード装置５０間を接続している。そして、各ノード装置５０は、自装置と通信線によって接続されている他のノード装置５０である上記隣接局と通信可能である。通信線によって接続されていないノード装置間の通信は、他の１以上のノード装置５０が上記中継部５３によって中継することで実現する。【０１２９】
また、上記通信線６１は、例えば全二重回線である。
また、例えば、図１１の制御ネットワークシステムは、リング型またはライン型のネットワークであるが、この例に限らない。【０１３０】
あるいは、例えば、図１１の制御ネットワークシステムは、リング型またはライン型のトポロジにて全二重の通信回線によって前記各ノード装置が接続されたネットワークである。そして、例えば、データ送信部５２は、該全二重の両系に自装置のデータを送信する。【０１３１】
尚、図１には、リング型で全二重回線の例を示す。ライン型の全二重回線の例を図１２に示す。図１２の構成は、図１（ｂ）において通信線１２ｄ及び通信線１３ｄが、存在しない構成と見做して構わない。この様なライン型の構成の場合、各ノード１０の送信データは、自局に戻ってくることなく、両端のノード１０（この例では局１、局４）に到達した時点で中継は終了となる。【０１３２】
また、例えば、中継部５３は、受信したデータの送信元が自装置であった場合には、中継を行わずに、該受信データを破棄する。
あるいは、例えば、中継部５３は、受信したデータの送信元が下流側の隣接局であった場合には、中継を行わずに、該受信データを破棄する。【０１３３】
例えば、上記データ交換周期内に、全てのノード装置５０の送信データが、それぞれ、上記中継が繰り返されることによって全ての他のノード装置５０に受信されることで、全てのノード装置間のデータ交換が完了する。【０１３４】
また、ノード装置５０は、ＣＰＵ／ＭＰＵ等の演算プロセッサやメモリ等の記憶部を備える。記憶部には予め所定のアプリケーションプログラムが記憶されている。演算プロセッサが、このアプリケーションプログラムを実行することで、上記データ送信部５２や中継部５３の処理機能が実現される。あるいは、演算プロセッサが、このアプリケーションプログラムを実行することで、上記図２（ａ）、（ｂ）、図３、図４、図５に示すフローチャートの処理が、実現されるものと言うこともできる。【０１３５】
上述したように、本手法では、例えば特許文献２等のノード同期方法によってマスタノードのタイマと同期されたタイマを用いて、ネットワークを構成している全ノード１０が、同時に自局データの送信を両隣の隣接ノードに行う。自局データの送信完了後は、全ノード１０が、それぞれ、自ノードの一方の隣接ノードから受信したフレームデータを、他方の隣接ノードに対して中継する。このように、構成ノード間の全二重回線の伝送帯域を同時に使用し、伝送効率を高め、ネットワーク全体の伝送量の大容量化及びデータ交換周期の高速化の実現を可能とする。これより、例えば、リング型トポロジまたはライン型トポロジの全二重回線のネットワークシステムにおいて、ネットワーク上のデータ量を増やすことができるし、データ交換周期の高速化を実現することが可能となる。【０１３６】
尚、対象は制御用ネットワークシステムであり、上述したように所定のデータ交換周期毎に（スキャン時間内に）全てのノード間のデータ交換を完了する必要があり、以ってシステムを構成する各ノードが相互にデータ交換を、リアルタイム性を保証したうえで行う必要があるものであることを前提とする。【０１３７】
尚、本手法は、上述した実施例に限らない。例えば、適用対象は、上記“リング型トポロジまたはライン型トポロジの全二重回線のネットワークシステム”に限らない。トポロジがリング型やライン型に限らないことは既に述べた通りである。更に、全二重回線に限るものではなく、多重回線（４重回線など）であってもよいし、１回線であっても構わない。【０１３８】
一回線の場合、例えば図１に示す回線Ａ、回線Ｂの各通信回線１２，１３のうちの何れか一方のみが、存在する構成となる。例えば、通信回線１２のみが存在する構成となる。この様な構成例を、図１３に示す。【０１３９】
また、１回線の場合には、サイクルタイマ１５の同期をとる為に、例えば最初は図１に示す２回線の構成としてサイクルタイマ１５の同期をとった後に、１回線の構成に変更して、１回線で運用させるようにするが、この例に限らない。例えば他の例としては全ノード１０に電波時計を設けることで、各ノード１０毎に自己の電波時計による時刻にサイクルタイマ１５を合わせることで、結果的に全ノードのサイクルタイマ１５が同期するようにしてもよい。【０１４０】
また、一回線の場合（ここでは、回線Ａのみとする）、各ノード１０の処理は、基本的には上記図２（ａ）、図３、図４、図５の処理と略同様であるが、一部が異なる。すなわち、まず、上記ステップＳ１２の処理は、回線Ａにのみデータ送信する処理となる。また、受信処理に関しては、両系から２つのパケットを受信することは無くなるので、ステップＳ２４、ステップＳ４３の処理は削除されることになる。【０１４１】
本発明の制御ネットワークシステム、そのノード１０等によれば、データ交換が必要とされる全ノード１０が相互にデータ交換する際、従来よりも短時間でデータ交換を完了させることができる。従い、本発明の制御ネットワークを使った制御システムではデータリフレッシュ周期（定期的）を高速化できるので、制御の高速化が図れる。さらには顧客システムにおける生産性向上などが期待できる。【０１４２】
本発明の制御ネットワークシステム、そのノード装置等によれば、データ交換が必要とされる全ノード装置が相互にデータ交換する際、従来よりも短時間でデータ交換を完了させることができる。従い、本発明の制御ネットワークを使った制御システムではデータリフレッシュ周期（定期的）を高速化できるので、制御の高速化が図れる。さらには顧客システムにおける生産性向上などが期待できる。
【図１】
0006528847.tif 000002
【図２】
0006528847.tif 000003
【図３】
0006528847.tif 000004
【図４】
0006528847.tif 000005
【図５】
0006528847.tif 000006
【図６】
0006528847.tif 000007
【図７】
0006528847.tif 000008
【図８】
0006528847.tif 000009
【図９】
0006528847.tif 000010
【図１０】
0006528847.tif 000011
【図１１】
0006528847.tif 000012
【図１２】
0006528847.tif 000013
【図１３】
0006528847.tif 000014
【図１４】
0006528847.tif 000015
【図１５】
0006528847.tif 000016
【図１６】
0006528847.tif 000017