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