(57)【要約】  ネットワーク内にトークンフレームを巡回させて通信を行う通信システムにおいて、通信ノードがトークンフレームを獲得してからデータを送信するまでに要する時間を従来に比して短くすることができる通信管理装置を得る。トークン巡回順序を記憶するトークン巡回順情報序記憶部２２と、トークンフレームの送信権獲得装置情報が自装置であるかを判定し、トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報、トークンフレームが自装置から一巡する間に送信可能なフレーム数を示す第２の送信権獲得判定情報、およびトークン巡回順序から取得した自装置のつぎのトークンフレームの送信先である送信権獲得装置情報を設定したトークンフレームを送信するトークンフレーム処理部２３と、データフレームを送受信するデータフレーム通信処理部２４と、を備える。
2010073349.tif 000002
【特許請求の範囲】
【請求項１】
１台の通信管理装置と１台以上の通信装置とがイーサネット（登録商標）ケーブルで接続されたネットワーク内のデータの送信を管理する通信管理装置であって、
前記ネットワーク内でのトークンフレームを巡回させるトークン巡回順序を記憶するトークン巡回順序記憶手段と、
受信した前記トークンフレーム内のつぎに送信権を獲得する送信権獲得装置情報が自装置であるかを判定するトークンフレーム受信手段と、
前記トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報、前記トークンフレームが自装置から一巡する間に送信可能なフレーム数を示す第２の送信権獲得判定情報、および前記トークン巡回順序から取得した自装置のつぎのトークンフレームの送信先である送信権獲得装置情報を設定した前記トークンフレームを送信するトークンフレーム送信手段と、
他の通信ノードからのデータフレームの受信処理を行い、前記送信権を獲得するとデータをフレーム単位でデータフレーム化して送信するデータフレーム通信処理手段と、
を備えることを特徴とする通信管理装置。
【請求項２】
前記第１の送信権獲得判定情報は、前記送信権獲得装置情報に設定された通信装置の前記トークン巡回順序における当該通信管理装置を基準にした並び番号を示すトークン巡回番号と、データフレームを送信可能な通信装置の前記トークン巡回順序での並び番号を示す送信許可局値と、を含み、
前記トークンフレーム送信手段は、前記トークン巡回番号に「１」を設定し、前記送信許可局値に、受信した前記トークンフレームに設定された情報に応じた値を設定することを特徴とする請求項１に記載の通信管理装置。
【請求項３】
前記トークンフレーム送信手段は、受信したトークンフレームの前記第２の送信権獲得判定情報が「０」でない場合には、前記送信許可局値に自局の前記並び番号を示す「０」を設定することを特徴とする請求項２に記載の通信管理装置。
【請求項４】
受信したトークンフレームで、前記第２の送信権獲得判定情報が「０」であり、第２の送信権獲得判定情報を「０」にした通信装置を示す送信可能フレーム数「０」設定局情報が設定されている場合に、
前記トークンフレーム受信手段は、前記データフレーム通信処理手段にデータフレームの送信指示を与えず、
前記トークンフレーム送信手段は、前記トークンフレームの前記送信許可局値に前記送信可能フレーム数「０」設定局情報を設定することを特徴とする請求項２に記載の通信管理装置。
【請求項５】
受信ポートから受信したデータフレームを、前記データフレーム通信処理手段で受信処理されるまでの間に一時的にフレーム単位で記憶する受信バッファをさらに備え、
前記トークンフレーム送信手段は、前記受信バッファに記憶可能なフレーム数を、前記第２の送信権獲得判定情報として設定することを特徴とする請求項１に記載の通信管理装置。
【請求項６】
予め設定されたイベントの発生によって、送信権を優先的に与える通信装置の前記並び番号を記憶する優先処理時変更先情報記憶手段をさらに備え、
前記トークンフレーム送信手段は、前記イベントが発生すると、前記優先処理時変更先情報記憶手段に記憶されている前記並び番号を前記送信許可局値に設定することを特徴とする請求項４に記載の通信管理装置。
【請求項７】
前記トークンフレームの前記送信可能フレーム数「０」設定局情報の内容を記憶する送信可能フレーム数「０」設定局記憶手段をさらに備え、
前記優先処理時変更先情報記憶手段には、前記第２の送信権獲得判定情報が「０」である場合に送信権を優先的に与える通信装置の前記並び番号が記憶され、
前記トークンフレーム受信手段は、前記送信権獲得装置情報が自装置であり、前記第２の送信権獲得判定情報が「０」のトークンフレームを受信すると、前記送信可能フレーム数「０」設定局情報の内容を前記送信可能フレーム数「０」設定局記憶手段に記憶し、
前記トークンフレーム送信手段は、前記優先処理時変更先情報記憶手段に記憶されている前記並び番号を前記送信許可局値に設定することを特徴とする請求項４に記載の通信管理装置。
【請求項８】
前記優先処理時変更先情報記憶手段には、送信権を優先的に与える通信装置の範囲の前記並び番号を示す開始送信許可局値と終了送信許可局値と、が記憶され、
前記トークンフレーム送信手段は、受信した前記トークンフレームの前記第２の送信権獲得判定情報が「０」の場合に、前記トークンフレームの前記送信許可局値に、前記開始送信許可局値と前記終了送信許可局値とを設定することを特徴とする請求項７に記載の通信管理装置。
【請求項９】
前記トークンフレーム送信手段は、前記送信可能フレーム数「０」設定局記憶手段に前記送信可能フレーム数「０」設定局情報が記憶されている場合には、前記送信権獲得装置情報が自装置である前記トークンフレームを受信すると、前記トークンフレームの前記送信許可局値に前記送信可能フレーム数「０」設定局情報を設定し、前記送信可能フレーム数「０」設定局記憶手段に記憶されている前記送信可能フレーム数「０」設定局情報を消去することを特徴とする請求項７に記載の通信管理装置。
【請求項１０】
１台の通信管理装置と１台以上の通信装置とがイーサネット（登録商標）ケーブルで接続されたネットワーク内で、前記通信管理装置によって決定されたトークン巡回順序にしたがって巡回されるトークンフレームを獲得してデータの送信を行う通信装置であって、
つぎに前記トークンフレームを送信する通信ノードを含むトークン巡回先情報を記憶するトークン巡回先情報記憶手段と、
受信した前記トークンフレーム内のつぎに送信権を獲得する通信ノードを示す送信権獲得装置情報が自装置であるかを判定し、前記送信権獲得装置情報が自装置である場合に、前記トークンフレーム内の前記トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報と、前記トークンフレーム受信時の送信可能なフレーム数を示す第２の送信権獲得判定情報と、を用いてデータフレームの送信権があるかを判定するトークンフレーム受信手段と、
前記送信権獲得装置情報に前記トークン巡回先情報を設定し、データフレーム通信処理手段で前記データフレームを送信した場合に前記トークンフレーム受信時の前記第２の送信権獲得判定情報から送信した前記データフレームの数を引いた値を前記第２の送信権獲得判定情報に設定した前記トークンフレームを送信するトークンフレーム送信手段と、
他の通信ノードに送信されるデータをフレーム単位で記憶する送信バッファと、
他の通信ノードからのデータフレームの受信処理を行い、前記送信権を獲得すると前記送信バッファに記憶されたデータをフレーム単位でデータフレーム化して送信するデータフレーム通信処理手段と、
を備えることを特徴とする通信装置。
【請求項１１】
前記第１の送信権獲得判定情報は、前記送信権獲得装置情報に設定された通信装置の前記トークン巡回順序における当該通信管理装置を基準にした並び番号を示すトークン巡回番号と、データフレームを送信可能な通信装置の前記トークン巡回順序での並び番号を示す送信許可局値と、を含み、
前記トークンフレーム受信手段は、前記送信権獲得装置情報が自装置である前記トークンフレームを受信すると、前記トークン巡回番号と前記送信許可局値とを用いて送信権の有無を判定し、
前記トークンフレーム送信手段は、前記トークン巡回番号に、前記トークン巡回先情報に対応する通信装置の並び番号を設定することを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記トークンフレーム送信手段は、受信した前記トークンフレームの前記トークン巡回番号に１インクリメントしたものを新たな前記トークン巡回番号に設定することを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記トークンフレーム受信手段は、前記トークンフレーム内の前記トークン巡回番号が前記送信許可局値以上であり、前記第２の送信権獲得判定情報が「０」よりも大きい場合に、送信権を獲得したと判定し、
前記データフレーム通信処理手段は、前記第２の送信権獲得判定情報の範囲内でデータフレームを送信することを特徴とする請求項１１に記載の通信装置。
【請求項１４】
前記トークンフレームは、前記第２の送信権獲得判定情報を「０」にした通信ノードを示す送信可能フレーム数「０」設定局情報をさらに有し、
前記トークンフレーム送信手段は、前記データフレーム通信処理手段による前記データフレームの送信によって前記第２の送信権獲得判定情報が「０」になった場合に、前記トークンフレーム受信時のトークン巡回番号の値を、前記送信可能フレーム数「０」設定局情報に設定することを特徴とする請求項１３に記載の通信装置。
【請求項１５】
前記データフレーム通信処理手段は、前記トークンフレームを受信した時点で前記送信バッファに記憶されながら送信できなかったデータを識別する前回未送信データ識別情報を前記送信バッファ内のデータに付し、つぎ以降の送信権獲得時に、前記送信バッファに前記前回未送信データ識別情報を付したデータが存在する場合に、前記トークンフレームの前記第２の送信権獲得判定情報の範囲内で前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項１４に記載の通信装置。
【請求項１６】
前記データフレーム通信処理手段は、受信した前記トークンフレーム内の前記トークン巡回番号が前記送信許可局値以上で、前記第２の送信権獲得判定情報が「０」である場合に、前記トークンフレームを受信した時点で前記送信バッファに記憶されながら送信できなかったデータを識別する前回未送信データ識別情報を付し、つぎ以降の送信権獲得時に、前記送信バッファに前記前回未送信データ識別情報を付したデータが存在する場合に、前記トークンフレームの前記第２の送信権獲得判定情報の範囲内で前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項１１に記載の通信装置。
【請求項１７】
複数の通信ノードがイーサネット（登録商標）ケーブルで接続されたネットワーク内におけるデータの送信を管理し、前記通信ノードの１つである通信管理装置と、前記ネットワーク内におけるその他の通信ノードである通信装置と、を備える通信システムにおけるトークンフレームを用いたデータの通信方法において、
前記通信管理装置は、受信した前記トークンフレーム内のつぎに送信権を獲得する送信権獲得装置情報が自装置であるかを判定する送信権判定工程と、
前記通信管理装置は、前記送信権獲得装置情報が自装置である場合に、送信待ちの状態にあるデータをフレーム単位で送信する第１のデータフレーム送信工程と、
前記通信管理装置は、前記ネットワーク内でのトークンフレームを巡回させるトークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報、前記トークンフレームが自装置から一巡する間に送信可能なフレーム数を示す第２の送信権獲得判定情報、および前記トークン巡回順序から取得した自装置のつぎのトークフレームの送信先である送信権獲得装置情報を設定した前記トークンフレームを送信する第１のトークンフレーム送信工程と、
前記通信装置は、受信した前記トークンフレームの前記送信権獲得装置情報が自装置であるかを判定するトークンフレーム取得判定工程と、
前記通信装置は、前記送信権獲得装置情報が自装置である場合に、前記第１の送信権獲得判定情報を用いて送信権が自局にあるか判定を行う第１の送信権判定工程と、
前記通信装置は、前記第１の送信権判定工程で送信権が自局にあると判定した場合に、前記第２の送信権獲得判定情報を用いてデータフレームの送信の可否を判定する第２の送信権判定工程と、
前記通信装置は、前記第２の送信権判定工程で、データフレームを送信可能と判定した場合に、前記第２の送信権獲得判定情報の範囲内でデータフレームを送信する第２のデータフレーム送信工程と、
前記通信装置は、前記第１の送信権判定工程で送信権が自局にないと判定した後、第２の送信権判定工程でデータフレームを送信できないと判定した後、または前記第２のデータフレーム送信工程で前記データフレームを送信した後に、前記送信権獲得装置情報に自局のつぎに送信権を与える通信ノードを示すトークン巡回先情報を設定し、前記第２のデータフレーム送信工程で前記データフレームを送信した場合に前記トークンフレーム受信時の前記第２の送信権獲得判定情報から送信した前記データフレームの数を引いた値を前記第２の送信権獲得判定情報に設定した前記トークンフレームを送信する第２のトークンフレーム送信工程と、
を含むことを特徴とする通信方法。
【請求項１８】
前記第１の送信権獲得判定情報は、前記送信権獲得装置情報に設定された通信装置の前記トークン巡回順序における前記通信管理装置を基準にした並び番号を示すトークン巡回番号と、データフレームを送信可能な通信装置の前記トークン巡回順序での並び番号を示す送信許可局値と、を有し、
前記第１のトークンフレーム送信工程で、前記通信管理装置は、前記トークン巡回番号には「１」を設定し、前記送信許可局値に、受信した前記トークンフレームに設定された情報に応じた値を設定し、
前記第１の送信権判定工程で、前記通信装置は、前記トークン巡回番号と前記送信許可局値とを用いて送信権の有無を判定し、
前記第２のトークンフレーム送信工程で、前記通信装置は、前記トークン巡回番号に、前記トークン巡回先情報を示す並び番号を設定することを特徴とする請求項１７に記載の通信方法。
【請求項１９】
前記第２のトークンフレーム送信工程で、前記通信装置は、受信した前記トークンフレームの前記トークン巡回番号に１インクリメントしたものを新たな前記トークン巡回番号に設定することを特徴とする請求項１８に記載の通信方法。
【請求項２０】
前記第１の送信権判定工程で、前記通信装置は、前記トークンフレーム内の前記トークン巡回番号が前記送信許可局値以上である場合に、送信権が自局にあると判定し、
前記第２の送信権判定工程で、前記通信装置は、前記第２の送信権獲得判定情報が「０」よりも大きい場合に、フレームを送信可能であると判定し、
前記第２のデータフレーム送信工程で、前記トークンフレーム受信時に送信待ちの状態にあり、前記第２の送信権獲得判定情報の範囲内で送信できなかったデータを識別する前回未送信データ識別情報を、前記送信できなかったデータに付し、
前記第２のトークンフレーム送信工程で、前記第２のデータフレーム送信工程による前記データフレームの送信で前記第２の送信権獲得判定情報が「０」になった場合に、前記トークンフレーム受信時の前記トークン巡回番号の値を、前記第２の送信権獲得判定情報を「０」にした通信ノードを示す送信可能フレーム数「０」設定局情報に設定し、
前記送信権判定工程で、前記通信管理装置は、受信した前記トークンフレーム内の前記送信権獲得装置情報が自装置であり、前記第２の送信権獲得判定情報が「０」であり、さらに前記送信可能フレーム数「０」設定局情報が設定されている場合に、送信権を得なかったものと判定し、
前記第１のトークンフレーム送信工程で、前記通信管理装置は、前記トークンフレームの前記送信許可局値に、前記送信可能フレーム数「０」設定局情報をさらに設定することを特徴とする請求項１８に記載の通信方法。
【請求項２１】
前記第２のデータフレーム送信工程で、前記通信装置は、前記前回未送信データ識別情報が付されたデータを有する場合には、送信権獲得時に前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項２０に記載の通信方法。
【請求項２２】
前記第２のデータフレーム送信工程で、前記通信装置は、前記トークン巡回番号が前記送信許可局値以上で、前記第２の送信権獲得判定情報が「０」である場合に、前記トークンフレームを受信した時点で送信待ちの状態にあり、送信できなかったデータを識別する前回未送信データ識別情報を付すことを特徴とする請求項１８に記載の通信方法。
【請求項２３】
前記第２のデータフレーム送信工程で、前記通信装置は、前記前回未送信データ識別情報が付されたデータを有する場合には、送信権獲得時に前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項２２に記載の通信方法。
【請求項２４】
前記第１のトークンフレーム送信工程で、前記通信管理装置は、前記送信権獲得装置情報が自装置である前記トークンフレームを受信した時点で受信可能なフレーム数を、前記第２の送信権獲得判定情報として設定することを特徴とする請求項１７に記載の通信方法。
【請求項２５】
前記送信権判定工程で、前記通信管理装置は、前記第２の送信権獲得判定情報が「０」のトークンフレームを受信すると、前記送信可能フレーム数「０」設定局情報の内容を記憶し、
前記第１のトークンフレーム送信工程で、前記通信管理装置は、前記第２の送信権獲得装置情報が「０」である場合に、送信権を優先的に与える通信装置の前記並び番号である優先処理時変更先情報を送信許可局値に設定することを特徴とする請求項１８に記載の通信方法。
【請求項２６】
前記優先処理時変更先情報は、前記第２の送信権獲得判定情報が「０」である場合に、送信権を優先的に与える通信装置の範囲の前記並び番号を示す開始送信許可局値と終了送信許可局値であり、
前記第１の送信権判定工程で、前記通信装置は、前記トークン巡回番号が前記開始送信許可局値と前記終了送信許可局値で示される範囲内に存在する場合に送信権が自局にあると判定することを特徴とする請求項２５に記載の通信方法。
【請求項２７】
前記第１のトークンフレーム送信工程で、前記通信管理装置は、前記送信権獲得装置情報が自装置である前記トークンフレームの受信時に、前記送信可能フレーム数「０」設定局情報の内容を記憶している場合には、記憶している前記送信可能フレーム数「０」設定局情報を前記送信許可局値に設定することを特徴とする請求項２５に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、イーサネット（登録商標）で接続された通信ノード間でトークンフレームを用いて通信を行う通信管理装置、通信装置および通信方法に関するものである。
【背景技術】
【０００２】
従来、複数の通信ノードが接続されたローカルエリアネットワークにおいて、送信権を示すトークンフレームを巡回させるトークンパッシング方式を用いて、各通信ノードからのデータの送信を制御する方法が知られている（たとえば、特許文献１参照）。この特許文献１に記載の技術では、ネットワーク内を一巡する間に送信可能なデータ量である許容送信データ量をトークンフレームに設定し、トークンフレームを獲得した通信ノードで送信すべきデータ量がトークンフレームに設定された許容送信データ量以下である場合に、そのデータを送信した後、許容送信データ量から送信したデータ量を減算したものを新たな許容送信データ量として設定したトークンフレームをつぎの通信ノードに送信している。また、送信すべきデータ量が許容送信データ量よりも大きい場合には、その通信ノードは、許容送信データ量を０に設定したトークンフレームをつぎのノードに送信するとともに、許容送信データ量を０に設定したことを記憶しておく。この通信ノード以降のトークン巡回順序の順番を有する通信ノードは、許容送信データ量が「０」であるので、トークンフレームを獲得してもデータを送信することができなくなる。その後、ネットワーク内の管理局は、許容送信データ量が０に設定されたトークンフレームを受信すると、許容送信データ量を「−１」に設定したトークンフレームを送信する。そして、前回受信したトークンフレームの許容送信データ量を「０」にした通信ノードが、許容送信データ量が「−１」に設定されたトークンフレームを受信すると、データの送信権を得て、許容送信データ量を初期値に設定して前回送信することができなかったデータを送信する。【０００３】
【特許文献１】特許第３４８７３２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の通信方法では、トークンフレームを獲得した通信ノードがデータを送信する際に、送信すべきデータ量を計算し、さらに計算した送信すべきデータ量とトークンフレームに含まれる許容送信データ量とを比較する必要がある。そのため、トークンフレームを獲得してからデータを送信するまでに時間を要してしまうという問題点があった。【０００５】
また、特許文献１に記載の方法では、たとえばｎ回目のトークンフレームを受信したが、許容送信データ量よりも送信すべきデータ量が大きく、データを送信することができなかった通信ノードは、つぎに（ｎ＋１）回目のトークンフレームを獲得したときに確実にデータを送信することができる。しかし、ｎ回目のトークンフレームの受信後、トークンフレームが一巡する間に、この通信ノードに新たに送信すべきデータが追加されると、（ｎ＋１）回目のトークンフレーム獲得時に、ｎ回目のトークンフレームを獲得したときの送信すべきデータ量に上記の追加されたデータ量が、送信されることになる。そのため、たとえば上記通信ノードの下流側に位置する通信ノードが、ｎ回目のトークンフレーム受信時に送信すべきデータを保持していると、送信すべきデータの時間順序に狂いが生じてしまうという問題点もあった。通信ノード間にて送信エントリされた時間通りに送信することができなくなってしまうことになる。【０００６】
この発明は上記に鑑みてなされたもので、ネットワーク内にトークンフレームを巡回させて通信を行う通信システムにおいて、通信ノードがトークンフレームを獲得してからデータを送信するまでに要する時間を従来に比して短縮することができる通信管理装置、通信装置および通信方法を得ることを目的とする。また、通信システムを構成する各通信ノードで送信されるデータを、ほぼデータ生成の順に送ることができる通信管理装置、通信装置および通信方法を得ることも目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、この発明にかかる通信管理装置は、１台の通信管理装置と１台以上の通信装置とがイーサネット（登録商標）ケーブルで接続されたネットワーク内のデータの送信を管理する通信管理装置であって、前記ネットワーク内でのトークンフレームを巡回させるトークン巡回順序を記憶するトークン巡回順序記憶手段と、受信した前記トークンフレーム内のつぎに送信権を獲得する送信権獲得装置情報が自装置であるかを判定するトークンフレーム受信手段と、前記トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報、前記トークンフレームが自装置から一巡する間に送信可能なフレーム数を示す第２の送信権獲得判定情報、および前記トークン巡回順序から取得した自装置のつぎのトークンフレームの送信先である送信権獲得装置情報を設定した前記トークンフレームを送信するトークンフレーム送信手段と、他の通信ノードからのデータフレームの受信処理を行い、前記送信権を獲得するとデータをフレーム単位でデータフレーム化して送信するデータフレーム通信処理手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
この発明によれば、通信システム内の通信ノードがデータを送信するに当たり、第１の送信権獲得判定情報でデータを送信可能な通信ノードか否かの第１の判定を行い、データを送信可能な場合に第２の送信権獲得判定情報のフレーム数の範囲内で通信ノードにデータを送信させるようにした。その結果、各通信ノードは、送信バッファに蓄積されたデータをフレーム単位でデータを送信すればよいので、送信可能なデータ量を計算する必要がなく、通信ノードがトークンフレームを獲得してからデータを送信するまでに要する時間を従来に比して短縮することができるという効果を有する。また、送信エントリ順に送信が実施されることになるため、制御機器で使用されるフィードバック制御がしやすくなるという効果も有する。
【図面の簡単な説明】
【０００９】
【図１】図１は、この発明の実施の形態１による通信システムの構成の一例を模式的に示す図である。
【図２−１】図２−１は、マスタ局の機能構成を模式的に示すブロック図である。
【図２−２】図２−２は、スレーブ局の機能構成を模式的に示すブロック図である。
【図３】図３は、この実施の形態１で使用されるトークンフレームのフォーマットの一例を示す図である。
【図４】図４は、送信バッファでのデータの格納状態の一例を模式的に示す図である。
【図５−１】図５−１は、スレーブ局におけるトークンフレーム受信時の送信処理の一例を示すフローチャートである（その１）。
【図５−２】図５−２は、スレーブ局におけるトークンフレーム受信時の送信処理の一例を示すフローチャートである（その２）。
【図６】図６は、マスタ局におけるトークンフレーム受信時の処理の一例を示すフローチャートである。
【図７−１】図７−１は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その１）。
【図７−２】図７−２は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その２）。
【図７−３】図７−３は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その３）。
【図７−４】図７−４は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その４）。
【図７−５】図７−５は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その５）。
【図７−６】図７−６は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その６）。
【図７−７】図７−７は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その７）。
【図７−８】図７−８は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その８）。
【図７−９】図７−９は、この実施の形態１によるトークンフレームを用いた通信方法の一例を模式的に示す図である（その９）。
【図８】図８は、マスタ局によるトークンフレーム受信時の処理の一例を示すフローチャートである。
【図９−１】図９−１は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その１）。
【図９−２】図９−２は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その２）。
【図９−３】図９−３は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その３）。
【図９−４】図９−４は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その４）。
【図９−５】図９−５は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その５）。
【図９−６】図９−６は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その６）。
【図９−７】図９−７は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その７）。
【図９−８】図９−８は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である（その８）。
【図１０】図１０は、この実施の形態３によるマスタ局の機能構成を模式的に示すブロック図である。
【図１１】図１１は、通信システムを構成する通信ノードの局番と並び番号と優先度との関係を模式的に示す図である。
【図１２−１】図１２−１は、この実施の形態３によるマスタ局のトークンフレームの処理手順の一例を示すフローチャートである（その１）。
【図１２−２】図１２−２は、この実施の形態３によるマスタ局のトークンフレームの処理手順の一例を示すフローチャートである（その２）。
【図１３−１】図１３−１は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である（その１）。
【図１３−２】図１３−２は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である（その２）。
【図１３−３】図１３−３は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である（その３）。
【図１３−４】図１３−４は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である（その４）。
【図１３−５】図１３−５は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である（その５）。
【図１４】図１４は、この実施の形態４で用いられるトークンフレームのフォーマットの一例を示す図である。
【符号の説明】
【００１０】
１１−１，１１−２，５１−１，５１−２  ポート
２０，６０  通信処理部
２１  論理リング構成部
２２  トークン巡回順序情報記憶部
２３，６２  トークンフレーム処理部
２４，６３  データフレーム通信処理部
２５，６４  送信バッファ
２６，６５  受信バッファ
２７  優先処理時変更先情報記憶部
２８  送信可能フレーム数「０」設定局記憶部
３０  演算処理部
６１  トークン巡回先情報記憶部
１０１  スイッチングハブ
２００  トークンフレーム
２０１  宛先アドレス（ＤＡ）
２０２  送信元アドレス（ＳＡ）
２０３  イーサネット（登録商標）タイプ
２０４  データ
２０５  フレーム種別情報
２０６  送信権獲得装置情報
２０７  トークンリピートカウンタ
２０８  送信許可局値
２０８ａ  開始送信許可局値
２０８ｂ  終了送信許可局値
２０９  送信可能フレーム数
２１０  送信可能フレーム数「０」設定局
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、この発明にかかる通信管理装置、通信装置および通信方法の好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。【００１２】
実施の形態１．
図１は、この発明の実施の形態１による通信システムの構成の一例を模式的に示す図である。この通信システムは、複数の通信ノードＡ〜Ｃが、スイッチングハブ１０１を介してイーサネット（登録商標、以下同じ）によってスター状に接続された同一セグメントのネットワークによって構成される。通信ノードＡ〜Ｃは、それぞれポートを有し、各通信ノードのポート間は、ツイストペアケーブルや光ファイバなどの全二重通信が可能なケーブルを介して接続される。この例では、通信ノードとして、同一セグメントのネットワーク内におけるデータ（フレーム）の送受信を管理する管理局である１台のマスタ局Ａと、マスタ局Ａによる送信順序に基づいてデータ（フレーム）の送信を行う２台のスレーブ局Ｂ，Ｃとが設けられる場合を示している。なお、この例では、通信システムがスター状に接続される通信ノードＡ〜Ｃからなる場合を示しているが、ライン状やリング状など他の接続形態で接続される通信ノードからなる場合や、スター状とライン状の接続形態が混在した場合でもよい。【００１３】
この実施の形態１では、各通信ノードＡ〜Ｃ間がイーサネットで接続された通信システムにおいて、各通信ノードＡ〜Ｃが自由にデータの送信を行うのではなく、トークンと呼ばれるデータ送信権を得るためのフレーム（トークンフレーム）を通信システム内の各通信ノードＡ〜Ｃに順番に送信し、そのトークンフレームを獲得した通信ノードが他の通信ノードに対してデータの送信を行うことができるようにしている。ここで、トークンフレームの送信順序はたとえば以下の（１）に示されるものとする。
マスタ局Ａ→スレーブ局Ｂ→スレーブ局Ｃ→マスタ局Ａ  ・・・（１）【００１４】
このように、通信システムは、物理的なネットワーク構成ではリング構成を有していないが、データの送信権（トークンフレーム）を通信システム内の通信ノードＡ〜Ｃ間で順番に回すようにしてリング管理局Ｘに送信権が戻ってくるようにすることによって、送信権を論理的なリング構成とし繰り返す構成となっている。【００１５】
図２−１は、マスタ局の機能構成を模式的に示すブロック図である。マスタ局は、隣接する通信ノード（スレーブ局）またはスイッチングハブ１０１との間でイーサネットケーブルを接続するための２つのポート１１−１，１１−２と、ポート１１−１，１１−２を介したフレームの送受信処理やトークンフレームの送信順序を確立する処理などを行う通信処理部２０と、スレーブ局からのデータを用いて演算処理を行う演算処理部３０と、を備える。【００１６】
ポート１１−１，１１−２は、第１のポート１１−１と第２のポート１１−２の２つのポートから構成される。これらの２つのポート１１−１，１１−２のうち少なくとも１つのポートが隣接するスレーブ局のポート（またはスイッチングハブ１０１を介したスレーブ局のポート）と接続されればよい。【００１７】
通信処理部２０は、論理リング構成部２１と、トークン巡回順序情報記憶部２２と、トークンフレーム処理部２３と、データフレーム通信処理部２４と、送信バッファ２５と、受信バッファ２６と、を備える。【００１８】
論理リング構成部２１は、マスタ局の電源オン時にまたは所定の時間ごとに、マスタ局と同一セグメントのネットワーク内に存在する通信ノード（スレーブ局）を検出し、その接続関係からデータの送信権であるトークンフレームを流す（渡す）順序であるトークン巡回順序情報を決定する論理リング構成処理を行う。また、論理リング構成部２１は、同一セグメントのネットワーク内に存在する他の通信ノード（スレーブ局）に対して、その通信ノードのつぎに送信権を得る通信ノードを含むトークン巡回先情報を通知する。なお、このトークン巡回先情報は、トークン巡回順序情報であってもよい。【００１９】
トークン巡回順序情報記憶部２２は、論理リング構成部２１によって決定されたトークン巡回順序情報を記憶する。【００２０】
トークンフレーム処理部２３は、論理リング構成部２１による論理リング構成処理が終了すると、トークンフレームを生成し、トークン巡回順序情報に基づいてトークンフレームを送信処理を行い、またトークンフレームを受信すると送信権を獲得したか判定する。図３は、この実施の形態１で使用されるトークンフレームのフォーマットの一例を示す図である。トークンフレーム２００は、イーサネットフレームであり、宛先ＭＡＣ（Media  Access  Control）アドレス（ＤＡ）２０１と、送信元ＭＡＣアドレス（ＳＡ）２０２と、イーサネットタイプ（type）２０３と、上位層のデータを格納するデータ２０４と、自フレームのＤＡ２０１からデータ２０４までに格納されている情報にエラーが存在するか否かのチェック結果を格納するＦＣＳ（Frame  Check  Sequence）２１１と、を有する。【００２１】
この実施の形態１では、データ２０４の一部にフレーム種別情報２０５と、送信権獲得装置情報２０６と、トークンリピートカウンタ２０７と、送信許可局値２０８と、送信可能フレーム数２０９と、送信可能フレーム数「０」設定局２１０と、が格納される。【００２２】
フレーム種別情報２０５には、イーサネットフレームの種類を示す情報を格納し、この場合には、該フレームがトークンフレームであることを示す情報が格納される。また、送信権獲得装置情報２０６には、送信権を有する通信ノードのＭＡＣアドレスが格納される。この送信権獲得装置情報２０６での送信権は、トークンフレームを取得し、送信権を獲得可能な状態にあるという意味であり、実際にデータの送信を行うことができる権利ではない。【００２３】
トークンリピートカウンタ２０７は、該トークンフレーム２００を受信した通信ノードの論理リングにおけるマスタ局から数えた並び番号をカウントするものであり、請求の範囲のトークン巡回番号に対応する。ここでは、送信権獲得装置情報２０６で示される通信ノードが、マスタ局を０番目として、論理リング上で何番目に位置する通信ノードであるのかを示す。たとえば、図１の構成で上記（１）のトークン巡回順序を有する場合において、スレーブ局Ｂは論理リング上で１番目の通信ノードであり、スレーブ局Ｃは同じく２番目の通信ノードである。【００２４】
送信許可局値２０８は、論理リング上の通信ノードのうち、最初にデータフレームの送信が可能な通信ノードの並び番号を示す。この並び番号は、トークンリピートカウンタ２０７でカウントされる値と同じである。なお、トークンリピートカウンタ２０７と送信許可局値２０８は、請求の範囲の第１の送信権獲得判定情報を構成する。【００２５】
送信可能フレーム数２０９は、トークンフレーム２００がマスタ局から送信されて、一巡する間に送信可能なフレーム数を表す。また、送信可能フレーム数「０」設定局２１０は、送信可能フレーム数２０９を「０」にした通信ノードの並び番号を示す。この並び番号は、トークンリピートカウンタ２０７でカウントされる値と同じである。【００２６】
ここで、このようなトークンフレーム２００を用いた場合の受信処理と送信処理について説明する。トークンフレーム処理部２３は、他の通信ノード（スレーブ局）から送信されたトークンフレーム２００を受信すると、そのトークンフレーム２００のデータ２０４内の送信権獲得装置情報２０６と自局のＭＡＣアドレスとを比較する。両者が一致した場合には、データを送信可能な状態にあるものと判定し、さらにデータ２０４内に格納されている情報から自局でデータフレームの送信が可能な場合には、データフレーム通信処理部２４にデータフレームの送信処理を行うように指示を与えるが、データフレームの送信が不可能な場合には、送信権を獲得できなかったものと判定する。また、送信権獲得装置情報２０６と自局のＭＡＣアドレスが一致しない場合にはまだ送信権を得ないものと判定する。なお、いずれの場合にも受信したトークンフレーム２００は、受信したポートでない他のポートにリピートする。以上のトークンフレーム処理部２３によるトークンフレーム２００の受信処理は、請求の範囲のトークンフレーム受信手段に対応する。【００２７】
また、トークンフレーム処理部２３は、送信権獲得装置情報２０６が自局であるトークンフレーム２００を受信すると、送信権獲得装置情報２０６と、トークンリピートカウンタ２０７と、送信許可局値２０８と、送信可能フレーム数２０９とを、設定して、ブロードキャストで送信する。ここで、トークンリピートカウンタ２０７は「１」に設定し、送信可能フレーム数２０９は予め定められた所定の値に設定し、送信権獲得装置情報２０６は、トークン巡回順序情報に基づいて自局のつぎに送信権を得るスレーブ局（のＭＡＣアドレス）を設定する。【００２８】
また、トークンフレーム受信時の送信可能フレーム数２０９が「０」でない場合には、送信許可局値２０８は論理リングにおける自局の並び順である「０」を設定し、トークンフレーム受信時の送信可能フレーム数２０９が「０」である場合には、受信した時点のトークンフレーム２００の送信可能フレーム数「０」設定局２１０に格納されている値を送信許可局値２０８に設定する。以上のトークンフレーム処理部２３によるトークンフレーム２００の送信処理は、請求の範囲のトークンフレーム送信手段に対応する。【００２９】
データフレーム通信処理部２４は、データフレームの送受信処理を行う。具体的には、送信権を獲得した場合に、送信バッファ２５に蓄積されたデータをデータフレーム化してスレーブ局に送信したり、スレーブ局から受信バッファ２６に蓄積されたデータフレームを受信処理したり、スレーブ局が他のスレーブ局に宛てたデータフレームを転送（リピート）したりする機能も有する。【００３０】
送信バッファ２５は、演算処理部３０によって演算され、データフレーム通信処理部２４で他の通信ノードに対して送信されるデータフレームを一時的に記憶する。この送信バッファ２５に記憶された順にデータフレームは送信される。【００３１】
受信バッファ２６は、ポート１１−１，１１−２で受信される他の通信ノードからのデータフレームを一時的に記憶する。この受信バッファ２６は、フレーム単位で受信したデータフレームを記憶し、所定の数のフレームしか記憶できないものとする。【００３２】
演算処理部３０は、所定の周期で、データフレーム通信処理部２４によって受信処理された他の通信ノードからのデータを用いて、その他の通信ノードを制御するための情報などを生成する所定の演算を行う。演算処理結果はデータフレーム通信処理部２４を介して他の通信ノードに対して送信される。【００３３】
図２−２は、スレーブ局の機能構成を模式的に示すブロック図である。スレーブ局は、隣接する通信ノード（リング管理局、スレーブ局）またはスイッチングハブ１０１との間でイーサネットケーブルを接続するための２つのポート５１−１，５１−２と、ポート５１−１，５１−２を介したフレームの送受信処理を行う通信処理部６０と、を備える。【００３４】
ポート５１−１，５１−２は、マスタ局と同様に、第１のポート５１−１と第２のポート５１−２の２つのポートから構成される。これらの２つのポート５１−１，５１−２のうち少なくとも１つのポートが通信ノードと接続されればよい。【００３５】
通信処理部６０は、トークン巡回先情報記憶部６１と、トークンフレーム処理部６２と、データフレーム通信処理部６３と、送信バッファ６４と、受信バッファ６５と、を備える。【００３６】
トークン巡回先情報記憶部６１は、マスタ局から通知されたトークン巡回先情報を記憶する。ここでは、自スレーブ局のつぎに送信権を得る通信ノードのＭＡＣアドレスのみがトークン巡回先情報として格納されているものとする。【００３７】
トークンフレーム処理部６２は、他の通信ノードから送信されたトークンフレーム２００を受信すると、そのトークンフレーム２００のデータ２０４内の送信権獲得装置情報２０６と自局（スレーブ局）のＭＡＣアドレスとを比較する。両者が一致した場合には、送信可能な状態にあるものと判定し、受信したトークンフレーム２００のトークンリピートカウンタ２０７の値と送信許可局値２０８との値を比較し、トークンリピートカウンタ２０７≧送信許可局値２０８である場合には、送信可能フレーム数２０９の範囲内でデータフレームの送信権を得たものと判定する。ただし、送信可能フレーム数２０９が「０」の場合には、データフレームを送信することができない。一方、トークンリピートカウンタ２０７＜送信許可局値２０８である場合には、データフレームの送信権を得られなかったものと判定する。また、送信権獲得装置情報２０６と自局のＭＡＣアドレスが一致しない場合にはまだ送信可能な状態にないものと判定する。以上のトークンフレーム処理部６２におけるトークンフレームを受信する処理は、請求の範囲のトークンフレーム受信手段に対応する。【００３８】
また、トークンフレーム処理部６２は、受信したトークンフレーム２００に対して、送信権獲得装置情報２０６、トークンリピートカウンタ２０７、および送信可能フレーム数２０９と、必要な場合には送信可能フレーム数「０」設定局２１０を設定して、ブロードキャスト送信する。【００３９】
具体的には、トークンフレーム２００に格納されているトークンリピートカウンタ２０７を１インクリメントしたものを設定し、送信権獲得装置情報２０６として、トークン巡回先情報に設定されている通信ノードのＭＡＣアドレスを設定する。【００４０】
また、データフレームを送信した場合には、トークンフレーム受信時の送信可能フレーム数２０９−送信したデータフレーム数を新たな送信可能フレーム数２０９に設定する。さらに、新たな送信可能フレーム数２０９が「０」になった場合には、送信可能フレーム数「０」設定局２１０として、受信時のトークンフレーム２００のトークンリピートカウンタ２０７の値を設定する。以上のトークンフレーム処理部６２におけるトークンフレームを送信する処理は、請求の範囲のトークンフレーム送信手段に対応する。【００４１】
データフレーム通信処理部６３は、データの送信権を得た場合に、送信可能フレーム数２０９で規定される範囲内でデータフレームの送受信処理を行う。たとえば、ＦＡネットワークにおいては、マスタ局から送信されるスレーブ局に設定されるデータを受信したり、マスタ局に対して演算処理に使用されるデータを送信したりする。また、スレーブ局から送信されたデータフレームを受信したり、スレーブ局が他のスレーブ局に宛てたデータフレームを転送（リピート）したりする機能も有する。【００４２】
また、データフレーム通信処理部６３は、送信可能フレーム数が自局で「０」になってしまい送信することができなかったデータ（フレーム）と、トークンフレーム２００を獲得したが送信可能フレーム数が「０」であり送信できなかったデータ（フレーム）を、トークンフレーム２００を解放した後に送信バッファ６４に蓄積されるデータと区別する処理を行う。この処理については、後述する。【００４３】
送信バッファ６４は、スレーブ局の図示しないアプリケーション層からデータリンク層にエントリされたデータを、データフレーム通信処理部６３によって送信されるまでの間一時的に記憶する。また、受信バッファ６５は、ポート５１−１，５１−２で受信したデータを、データフレーム通信処理部６３によって受信処理されるまでの間一時的に記憶する。【００４４】
図４は、送信バッファでのデータの格納状態の一例を模式的に示す図である。この図に示されるように、送信バッファでは、他の通信ノード（主に、マスタ局）に送信されるべきデータが、送信待ちフレームとして時系列で蓄積される。また、送信権を獲得したが送信できなかったデータ（フレーム）を区別するための情報が、それぞれの送信待ちフレームに対して記憶される。この実施の形態１では、自局で送信可能フレーム数２０９が「０」になった場合に、送信できなかったデータ（フレーム）を識別する送信可能フレーム数「０」設定時の未送信フレーム情報と、送信権が自局に設定されたトークンフレームを獲得したが、送信権を得られず（すなわち、送信可能フレーム数２０９が「０」であり）送信できなかったデータ（フレーム）を識別する前回トークン受信時の未送信フレーム情報と、を有する。なお、これらの送信可能フレーム数「０」設定時の未送信フレーム情報と前回トークン受信時の未送信フレーム情報は、請求の範囲の前回未送信データ識別情報に対応する。【００４５】
つぎに、トークンフレーム受信時の処理について、スレーブ局、マスタ局の順で説明する。図５−１〜図５−２は、スレーブ局におけるトークンフレーム受信時の送信処理の一例を示すフローチャートである。【００４６】
まず、トークンフレーム２００を受信すると（ステップＳ１１）、トークンフレーム処理部６２は、そのトークンフレーム２００の送信権獲得装置情報２０６が自局であるか否かを判定する（ステップＳ１２）。送信権獲得装置情報２０６が自局でない場合（ステップＳ１２でＮｏの場合）には、トークンフレームを転送し（ステップＳ１３）、処理が終了する。【００４７】
また、送信権獲得装置情報２０６が自局である場合（ステップＳ１２でＹｅｓの場合）には、受信したトークンフレーム２００のトークンリピートカウンタ２０７の値が送信許可局値２０８以上であるか否かを判定する（ステップＳ１４）。トークンリピートカウンタ２０７の値が送信許可局値２０８以上である場合（ステップＳ１４でＹｅｓの場合）には、さらにトークンフレーム２００の送信可能フレーム数２０９が「０」よりも大きいかを判定する（ステップＳ１５）。【００４８】
送信可能フレーム数２０９が「０」よりも大きい場合（ステップＳ１５でＹｅｓの場合）には、スレーブ局は、送信権を獲得したものと認識する。そして、トークンフレーム２００を受信した時点における送信バッファ６４に格納されているフレーム数（以下、送信待ちフレーム数という）が送信可能フレーム数以下であるか否かを判定する（ステップＳ１６）。送信待ちフレーム数が送信可能フレーム数以下である場合（ステップＳ１６でＹｅｓの場合）には、さらに、送信バッファ６４内に、送信可能フレーム数「０」設定時の未送信フレームまたは前回トークン受信時の未送信フレームが存在するか判定する（ステップＳ１７）。【００４９】
送信バッファ６４内に、送信可能フレーム数「０」設定時の未送信フレームまたは前回トークン受信時の未送信フレームが存在しない場合（ステップＳ１７でＮｏの場合）には、送信バッファ６４に格納されているすべてのフレームの送信処理を行う（ステップＳ２１）。また、送信バッファ６４内に、送信可能フレーム数「０」設定時の未送信フレームまたは前回トークン受信時の未送信フレームが存在する場合（ステップＳ１７でＹｅｓの場合）には、データフレーム通信処理部６３は、送信可能フレーム数「０」設定時の未送信フレームまたは前回トークン受信時の未送信フレームのみを送信する（ステップＳ２２）。【００５０】
その後、トークンフレーム処理部６２は、トークンフレーム２００の送信可能フレーム数２０９に、（トークンフレーム２００受信時の送信可能フレーム数２０９）−（ステップＳ２１またはＳ２２で送信したフレーム数）を設定する（ステップＳ２３）。ついで、トークンフレーム２００に設定した新たな送信可能フレーム数２０９が「０」か否かを判定する（ステップＳ２４）。【００５１】
設定した送信可能フレーム数２０９が「０」でない場合（ステップＳ２４でＮｏの場合）には、トークンフレーム２００のトークンリピートカウンタ２０７の値を１インクリメントし（ステップＳ４１）、送信権獲得装置情報２０６にトークン巡回先情報記憶部６１に記憶されているトークン巡回先情報を設定する（ステップＳ４２）。そして、以上のようにデータ２０４内の各項目に設定を行ったトークンフレーム２００を送信し（ステップＳ４３）、処理を終了する。【００５２】
また、ステップＳ２３で設定した送信可能フレーム数２０９が０である場合（ステップＳ２４でＹｅｓの場合）には、トークンフレーム２００の送信可能フレーム数「０」設定局２１０に、トークンフレーム２００受信時のトークンリピートカウンタ２０７の値を設定する（ステップＳ３４）。その後は、上述したステップＳ４１以降の処理が行われる。【００５３】
一方、ステップＳ１６で送信待ちフレーム数が送信可能フレーム数２０９よりも大きい場合（ステップＳ１６でＮｏの場合）には、データフレーム通信処理部６３は、送信バッファ６４に格納されているフレームのうち先に格納されたフレームから順に送信可能フレーム数２０９のフレームを送信する（ステップＳ３１）。このとき、送信バッファ６４に格納されているフレームのうち送信されなかったフレームには、送信可能フレーム「０」設定時の未送信フレームであることを識別するフラグを付す（ステップＳ３２）。また、トークンフレーム処理部６２は、トークンフレーム２００の送信可能フレーム数２０９に「０」、すなわち（トークンフレーム２００受信時の送信可能フレーム数２０９）−（ステップＳ３１で送信したフレーム数）を設定し（ステップＳ３３）、トークンフレーム２００の送信可能フレーム数２０９を「０」に設定する。その後は、上述したステップＳ３４以降の処理が行われる。【００５４】
また、ステップＳ１５で、送信可能フレーム数２０９が「０」である場合（ステップＳ１５でＮｏの場合）には、トークンフレーム処理部６２は、送信権が得られなかったものと認識する。そして、データフレーム通信処理部６３は、トークンフレーム２００を受信した時点で送信バッファ６４に格納されているフレームには、前回トークン受信時の未送信フレームであることを識別するフラグを付す（ステップＳ２５）。その後は、上述したステップＳ４１以降の処理が行われる。【００５５】
さらに、ステップＳ１４で、トークンリピートカウンタ２０７の値が送信許可局値２０８よりも小さい場合（ステップＳ１４でＮｏの場合）には、スレーブ局のトークンフレーム処理部６２は、送信権が得られなかったものと認識し、上述したステップＳ４１以降の処理が行われる。以上のようにして、スレーブ局によるトークンフレームの処理が行われる。【００５６】
なお、ステップＳ３４〜Ｓ４２の処理は、トークンフレーム２００のデータ２０４内の情報の設定処理であるので、設定順序はここに示されたものに限定されるものではない。【００５７】
図６は、マスタ局におけるトークンフレーム受信時の処理の一例を示すフローチャートである。まず、トークンフレーム処理部２３は、トークンフレーム２００を受信すると（ステップＳ７１）、そのトークンフレーム２００の送信権獲得装置情報２０６が自局であるか否かを判定する（ステップＳ７２）。送信権獲得装置情報２０６が自局でない場合（ステップＳ７２でＮｏの場合）には、トークンフレーム２００を転送し（ステップＳ７３）、処理が終了する。【００５８】
また、送信権獲得装置情報２０６が自局である場合（ステップＳ７２でＹｅｓの場合）には、受信したトークンフレーム２００の送信可能フレーム数２０９が「０」であるか否かを確認する（ステップＳ７４）。送信可能フレーム数が「０」でない場合（ステップＳ７４でＮｏの場合）には、マスタ局のトークンフレーム処理部２３は、データフレームを送信することができない通信ノード（スレーブ局）が存在しなかったと認識して、つぎのトークンフレーム２００の巡回に当たってもトークン巡回順序情報にしたがって通信ノードに順に送信権を与えるようにトークンフレーム２００の設定処理を行う。つまり、データフレーム通信処理部２４で送信バッファ２５内のフレームを予め設定された送信可能フレーム数の範囲内で送信した後（ステップＳ７５）、トークンフレーム処理部２３は、予め設定された送信可能フレーム数からステップＳ７５で送信したフレーム数を引いた値を、トークンフレーム２００の送信可能フレーム数２０９に設定し（ステップＳ７６）、トークンリピートカウンタ２０７の値を「１」に設定し（ステップＳ７７）、送信許可局値２０８を「０」に設定する（ステップＳ７８）。【００５９】
一方、ステップＳ７４で送信可能フレーム数２０９が「０」である場合（ステップＳ７４でＹｅｓの場合）には、マスタ局のトークンフレーム処理部２３は、このトークンフレーム２００が一巡する間に、データフレームを送信することができなかった通信ノード（スレーブ局）が存在することを認識して、つぎのトークンフレーム２００の巡回では、データフレームを送信することができなかった通信ノード（スレーブ局）からデータフレームの送信ができるようにトークンフレーム２００の設定処理を行う。つまり、トークンフレーム２００の送信可能フレーム数２０９を予め設定された値に設定し（ステップＳ８１）、トークンリピートカウンタ２０７の値を「１」に設定し（ステップＳ８２）、さらに送信許可局値２０８に、トークンフレーム２００受信時の送信可能フレーム数「０」設定局２１０の値を設定する（ステップＳ８３）。【００６０】
その後またはステップＳ７８の後、トークンフレーム２００の送信権獲得装置情報２０６に、トークン巡回順序情報記憶部２２中のトークン巡回順序情報から取得した自局のつぎに送信権を得るスレーブ局を設定する（ステップＳ９１）。そして、以上によって設定されたトークンフレームを送信し（ステップＳ９２）、処理が終了する。【００６１】
なお、ステップＳ７６〜Ｓ７８，Ｓ９１の処理は、トークンフレーム２００のデータ２０４内の情報の設定処理であるので、ここに示される順番でなくてもよい。また、ステップＳ８１〜Ｓ８３，Ｓ９１の処理についても同様である。【００６２】
つぎに、このような通信システムにおけるトークンフレームを用いた通信方法について具体例を挙げて説明する。図７−１〜図７−９は、この実施の形態１によるトークンを用いた通信方法の一例を模式的に示す図である。ここでは、マスタ局Ａが、既に論理リングの構成処理を行って、上記（１）に示したトークン巡回順序を決定し、自局が最初に送信権を獲得したものとする。図７−１は、マスタ局Ａが送信権を獲得した時点の通信システムの状態を示している。この状態において、マスタ局Ａでは、たとえばアプリケーション層からデータリンク層にフレームＦ１〜Ｆ５が他のスレーブ局Ｂ，Ｃに送信するようにエントリされ、これらのフレームＦ１〜Ｆ５は送信バッファ２５に送信待ちフレームとして順に格納される。また、スレーブ局Ｂでは、アプリケーション層からデータリンク層にフレームＦ６〜Ｆ７が他の通信ノードに送信するようにエントリされ、これらのフレームＦ６〜Ｆ７は送信バッファに送信待ちフレームとして順に格納される。さらに、スレーブ局Ｃでは、アプリケーション層からデータリンク層にフレームＦ８が他の通信ノードに送信するようにエントリされ、このフレームＦ８は送信バッファに送信待ちフレームとして格納される。【００６３】
その後、図７−２に示されるように、マスタ局Ａのトークンフレーム処理部２３は、トークンフレーム２００内の送信可能フレーム数を予め通信システム内で設定された値（ここでは「６」とする）に設定する。また、マスタ局Ａのデータフレーム通信処理部２４は、送信バッファ２５に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ２５に格納された順（古い順）に送信する。ここでは、送信バッファ２５に格納されている送信待ちフレームＦ１〜Ｆ５の数は「５」であり、トークンフレーム２００に設定されている送信可能フレーム数は「６」であるので、フレームＦ１〜Ｆ５のすべてを送信する。これによって、このトークンフレーム２００が一巡する間に送信可能なフレーム数は「１（＝６−５）」となる。その後、マスタ局Ａのトークンフレーム処理部２３は、送信可能フレーム数を「１」に設定し、トークンリピートカウンタを「１」にし、さらに送信許可局値を自局表す「０」に設定し、送信権獲得装置情報にスレーブ局Ｂを設定したトークンフレーム２００を送信する。なお、送信したフレームＦ１〜Ｆ５は、送信バッファ２５から消去される。【００６４】
ついで、スレーブ局Ｂが、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「１」＞送信許可局値「０」であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００６５】
その後、図７−３に示されるように、スレーブ局Ｂのデータフレーム通信処理部６３は、送信バッファ６４に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ６４に格納された順（古い順）に送信する。ここでは、送信バッファ６４に格納されている送信待ちフレームＦ６〜Ｆ７の数は「２」であり、トークンフレーム２００に設定されている送信可能フレーム数は「１」であるので、フレームＦ６のみを送信する。これによって、このトークンフレーム２００がマスタ局Ａに戻るまでの間に送信可能なフレーム数は「０（＝１−１）」となる。その後、スレーブ局Ｂのトークンフレーム処理部６２は、送信可能フレーム数を「０」に設定し、送信可能フレーム数「０」設定局を自局の論理リング上での並び番号である「１」に設定し、トークンリピートカウンタ２０７を１インクリメントして「２」にし、送信権獲得装置情報としてトークン巡回先情報記憶部６１に記憶されているスレーブ局Ｃを設定したトークンフレーム２００を送信する。なお、ここで、送信可能フレーム数「０」設定局に設定される値は、スレーブ局Ｂがトークンフレーム２００を受信したときのトークンリピートカウンタに設定されている値であり、論理リング上のマスタ局Ａから数えた並び番号である。【００６６】
また、スレーブ局Ｂのデータフレーム通信処理部６３は、今回の送信権の獲得時に送信できなかった送信バッファ６４中のフレームＦ７を、送信可能フレーム数「０」時の未送信フレームとして記憶する。これは、送信バッファ６４に、たとえば送信可能フレーム数「０」設定時の未送信フレームという項目を設定し、この項目にフラグを立てることによって行うことができるが、図では、説明をわかりやすくするために、「送信可能フレーム数「０」設定時の未送信フレーム」という項目を設け、この項目にも送信バッファ６４中の送信されなかったフレームＦ７を記憶するように描いている。なお、送信されたフレームＦ６は消去される。【００６７】
ついで、スレーブ局Ｃのトークンフレーム処理部６２は、送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信し、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「２」＞送信許可局値「０」であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００６８】
その後、図７−４に示されるように、スレーブ局Ｃは、送信バッファ６４に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ６４に格納された順（古い順）に送信しようとするが、ここでは、トークンフレーム２００に設定されている送信可能フレーム数は「０」であるので、送信バッファ６４内のフレームＦ８を送信することができない。そこで、スレーブ局Ｃのトークンフレーム処理部６２は、トークンリピートカウンタを１インクリメントして「３」にし、つぎに送信権獲得装置情報として、トークン巡回先情報記憶部６１に記憶されているマスタ局Ａを設定したトークンフレーム２００を送信する。なお、このトークンフレーム２００では、送信可能フレーム数は「０」のままであり、送信可能フレーム数「０」設定局も「１」のままである。【００６９】
このとき、スレーブ局Ｃのデータフレーム通信処理部６３は、今回の送信権の獲得時に送信できなかった送信バッファ６４中のフレームＦ８を、前回トークン受信時の未送信フレームとして記憶する。これは、送信バッファ６４に、たとえば前回トークン受信時の未送信フレームという項目を設定し、この項目にフラグを立てることによって行うことができるが、図では、説明をわかりやすくするために、「前回トークン受信時の未送信フレーム」という項目を設け、この項目にも送信バッファ６４中の送信されなかったフレームＦ８を記憶するように描いている。【００７０】
その後、図７−５に示されるように、スレーブ局Ｃが、送信権獲得装置情報をマスタ局Ａに設定したトークンフレーム２００を送信した直後の状態において、各通信ノードが新たな送信すべきデータを取得しているものとする。つまり、マスタ局Ａでは、たとえばアプリケーション層からデータリンク層にフレームＦ９〜Ｆ１０が他のスレーブ局に送信するようにエントリされ、これらのフレームＦ９〜Ｆ１０は送信バッファ２５に送信待ちフレームとして順に格納される。また、スレーブ局Ｂでは、アプリケーション層からデータリンク層にフレームＦ１１〜Ｆ１４が他の通信ノードに送信するようにエントリされ、これらのフレームＦ１１〜Ｆ１４は送信バッファ６４に送信待ちフレームとして順に格納される。さらに、スレーブ局Ｃでは、アプリケーション層からデータリンク層にフレームＦ１５が他の通信ノードに送信するようにエントリされ、このフレームＦ１５は送信バッファ６４に送信待ちフレームとして格納される。【００７１】
ついで、図７−６に示されるように、マスタ局Ａのトークンフレーム処理部２３は、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内の送信可能フレーム数を確認する。ここでは、送信可能フレーム数が「０」であるため、論理リング中の通信ノードの中に送信権を得たがフレームを送信することができなかった、すなわち送信権を得ることができなかった通信ノードが存在すると判断する。その結果、マスタ局Ａのデータフレーム通信処理部２４は、送信バッファ２５に格納されたフレームＦ９〜Ｆ１０の送信処理を行わない。そして、受信したトークンフレーム２００の送信可能フレーム数に予め設定された値「６」を設定し、送信許可局値に受信したトークンフレーム２００の送信可能フレーム数「０」設定局の値である「１」を設定し、トークンリピートカウンタ２０７を「１」に再設定し、送信権獲得装置情報２０６としてスレーブ局Ｂを設定したトークンフレーム２００を送信する。【００７２】
ついで、スレーブ局Ｂが、送信権獲得装置情報２０６が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内のトークンリピートカウンタ２０７の値と送信許可局値２０８とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ２０７の値「１」＝送信許可局値２０８「１」である、すなわちトークンリピートカウンタ≧送信許可局値であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００７３】
その後、図７−７に示されるように、スレーブ局Ｂのデータフレーム通信処理部２４は、送信バッファ６４に格納されている未送信フレームのうち、「送信可能フレーム数「０」設定時の未送信フレーム」が存在することを識別する。そして、この「送信可能フレーム数「０」設定時の未送信フレーム」のうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ６４に格納された順（古い順）に送信する。ここでは、送信バッファ６４にはフレームＦ７，Ｆ１１〜１４が格納されているが、「送信可能フレーム数「０」設定時の未送信フレーム」はフレームＦ７であるので、フレームＦ７のみを送信する。これによって、このトークンフレーム２００がマスタ局Ａに戻るまでの間に送信可能なフレーム数は「５（＝６−１）」となる。その後、スレーブ局Ｂのトークンフレーム処理部６２は、送信可能フレーム数に「５」を設定し、トークンリピートカウンタを１インクリメントして「２」にし、送信権獲得装置情報にスレーブ局Ｃを設定したトークンフレーム２００を送信する。また、スレーブ局Ｂは、今回の送信権の獲得時に送信できなかったフレームＦ１１〜Ｆ１４を、「前回トークン受信時の未送信フレーム」として記憶する。なお、トークンフレーム２００内の送信可能フレーム数「０」設定局は変更せず、受信したトークンフレーム２００に設定されているままの値とする。また、送信されたフレームＦ７は送信バッファ６４から消去される。【００７４】
ついで、スレーブ局Ｃは、送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信し、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「２」＞送信許可局値「１」であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００７５】
その後、図７−８に示されるように、スレーブ局Ｃは、送信バッファ６４に格納されている送信待ちフレームのうち、「前回トークン受信時の未送信フレーム」が存在することを識別する。そして、データフレーム通信処理部２４は、この「前回トークン受信時の未送信フレーム」のうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ６４に格納された順（古い順）に送信する。ここでは、送信バッファ６４にはフレームＦ８，Ｆ１５が格納されているが、「前回トークン受信時の未送信フレーム」はフレームＦ８であるので、フレームＦ８のみが送信される。これによって、このトークンフレーム２００がマスタ局Ａに戻るまでの間に送信可能なフレーム数は「４（＝５−１）」となる。その後、スレーブ局Ｃのトークンフレーム処理部６２は、送信可能フレーム数を「４」に設定し、トークンリピートカウンタを１インクリメントして「３」にし、送信権獲得装置情報にマスタ局Ａを設定したトークンフレーム２００を送信する。また、スレーブ局Ｃのデータフレーム通信処理部２４は、今回の送信権の獲得時に送信できなかった送信バッファ６４中のフレームＦ１５を、前回トークン受信時の未送信フレームとして記憶する。なお、トークンフレーム２００内の送信可能フレーム数「０」設定局は変更せず、受信したトークンフレーム２００に設定されているままの値とする。また、送信されたフレームＦ８は送信バッファ６４から消去される。【００７６】
ついで、マスタ局Ａのトークンフレーム処理部２３が、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内の送信可能フレーム数を確認する。ここでは、送信可能フレーム数が「４」であるため、論理リング中のすべての通信ノードがフレームを送信することができたと判断する。【００７７】
その後、図７−９に示されるように、マスタ局Ａのデータフレーム通信処理部２４は、送信バッファ２５に格納されたフレームＦ９〜Ｆ１０の送信処理を行う。その後、トークンフレーム処理部２３は、トークンフレーム２００の送信可能フレーム数に、送信可能フレーム数として予め設定された値「６」から送信したフレーム数「２」を引いた「４」を設定し、送信許可局値に自局を表す「０」を設定し、トークンリピートカウンタを「１」に再設定し、送信権獲得装置情報にスレーブ局Ｂを設定したトークンフレーム２００を送信する。なお、トークンフレーム２００内の送信可能フレーム数「０」設定局の値は、変更せずにそのままでもよいし、消去してもよい。その後は、上記した処理が繰り返し実行され、各通信ノードで送信すべきフレームが送信されていく。【００７８】
この実施の形態１によれば、各通信ノードで送信待ち状態にあるデータを、フレームを単位として送信可能か否かを判定するようにしたので、従来のように送信待ち状態にあるデータ量を計算する必要がない。その結果、トークンフレーム２００を受信してからデータを送信するまでの間の時間を短縮することができる。また、フレームを単位とした送信を行うようにしたので、従来のようにデータ量で送信可能か否かを判断する場合では、ある通信ノードで送信すべきデータ量が、通信システム内で送信可能なデータ量を超えている場合には、その送信すべきデータをすべて送信することができなかったが、この実施の形態１では、送信可能フレーム数２０９の範囲でフレーム単位でデータを送信することができる。【００７９】
つまり、スレーブ局は、トークンリピートカウンタ２０７が送信許可局値２０８以上である場合には、トークンフレーム２００内の送信可能フレーム数２０９が「０」であるか否かを見て、自局に送信権があるか否かを判断するようにしているので、上記トークンフレーム２００がマスタ局に戻るまでの間に送信可能フレーム数２０９が１つでもある場合には、フレームを送信することができる。その結果、リアルタイムな通信が可能になるという効果を有する。また、トークンフレーム２００が一巡する間に効率よくフレームを送信することが可能になるという効果を有する。【００８０】
さらに、論理リングの構成において、マスタ局を０番として、トークンフレーム２００がスレーブ局を巡回するごとに１インクリメントしたトークンリピートカウンタ２０７を設けるようにしたので、スレーブ局は、このトークンリピートカウンタ２０７で論理リング中のマスタ局から数えて何番目のスレーブ局であるのかを認識することができる。そして、これを利用して、送信可能フレーム数２０９を「０」にしたスレーブ局のトークンリピートカウンタ２０７の値を送信可能フレーム数「０」設定局２１０としてトークンフレーム２００に記憶し、マスタ局でこの送信可能フレーム数「０」設定局２１０を送信許可局値２０８に設定するようにしたので、前回のトークンフレームの獲得時に送信できなかったデータを有するスレーブ局からデータを送信させることができる。その結果、各局で生じたデータを時間の古い順に送ることができ、リアルタイム性を重視した通信を行うことが可能になるという効果を有する。【００８１】
さらに、トークンフレーム２００獲得時に送信できなかったフレームを、前回未送信フレームとして記憶し、つぎにトークンフレーム２００を獲得した場合に、前回未送信フレームのみを送信するようにしたので、前回トークンフレーム２００を獲得してからつぎにトークンフレーム２００を獲得するまでの間に送信すべきフレームが生じた場合でも、その通信ノード内で古い順に、そして通信システム全体でもほぼ同じ時期に送信エントリされたフレームをまとめて送信することができるという効果を有する。【００８２】
実施の形態２．
実施の形態１のように、マスタ局とスレーブ局とで構成され、スレーブ局からのデータを用いて演算を行い、その演算結果をスレーブ局に通知する通信システムにおいては、スレーブ局が送信するデータがマスタ局に集中してしまう可能性がある。また、マスタ局で一時的に送受信処理の処理能力が他の処理よりも劣化し、受信バッファがＦｕｌｌ状態になってしまい、フレームが廃棄されてしまう可能性もある。このような状況が発生すると、送信リトライ処理を実施して廃棄されてしまったデータのリカバリを図るが、このリカバリ処理はネットワークやマスタ局、スレーブ局の性能劣化につながってしまっていた。そこで、この実施の形態２では、マスタ局で一時的に受信処理の処理能力が劣化してしまった場合に、リカバリ処理を行わずに、データの送受信を行うことができる通信システムおよび通信方法について説明する。【００８３】
この実施の形態２によるマスタ局は、実施の形態１において、トークンフレーム処理部２３が、送信権獲得装置情報２０６が自局であるトークンフレーム２００を受信すると、受信バッファ２６の使用状態から受信可能バッファ数を取得し、トークンフレーム２００の送信可能フレーム数２０９に、受信可能バッファ数を設定する機能をさらに有する。たとえば、受信バッファ２６の最大フレーム記憶数がｎ（ｎは自然数）であり、トークンフレーム２００を獲得した時点で受信バッファ２６にｍ（ｍは自然数で、ｎ≧ｍ）個のフレームが記憶されている場合に、トークンフレーム２００の送信可能フレーム数２０９に「ｎ−ｍ」が設定される。なお、実施の形態１と同一の構成要素には同一の符号を付して、その説明を省略している。また、この実施の形態２によるスレーブ局の構成は実施の形態１と同様であるので、その説明を省略する。【００８４】
つぎに、この実施の形態２によるデータの通信方法について説明する。図８は、マスタ局によるトークンフレーム受信時の処理の一例を示すフローチャートである。まず、実施の形態１の図６で説明したステップＳ７１〜Ｓ７４までと同様に、マスタ局のトークンフレーム処理部２３は送信権獲得装置情報２０６が自局宛でないトークンフレーム２００については転送を行い、自局宛てのトークンフレーム２００の場合は、送信可能フレーム数２０９が「０」であるか否かを判定する（ステップＳ１０１〜Ｓ１０４）。【００８５】
送信可能フレーム数２０９が「０」でない場合（ステップＳ１０４でＮｏの場合）には、マスタ局のトークンフレーム処理部２３は、現時点で受信バッファ２６に記憶可能なフレーム数を取得する（ステップＳ１０５）。たとえば、６個のフレームまで記憶可能な受信バッファ２６に、４個のフレームが記憶されている状態である場合には、２個のフレームが記憶可能であることになる。そして、トークンフレーム２００の送信可能フレーム数２０９として、取得したこの受信バッファ２６に記憶可能なフレーム数を設定する（ステップＳ１０６）。ついで、データフレーム通信処理部２４は、設定された送信可能フレーム数２０９の範囲内で送信バッファ２５内のフレームを送信した後（ステップＳ１０７）、トークンフレーム処理部２３は、ステップＳ１０６で設定された送信可能フレーム数２０９からステップＳ１０７で送信したフレーム数を引いた値を、トークンフレーム２００の送信可能フレーム数２０９に設定する（ステップＳ１０８）。また、トークンリピートカウンタ２０７の値を「１」に設定し（ステップＳ１０９）、送信許可局値２０８を「０」に設定する（ステップＳ１１０）。【００８６】
一方、ステップＳ１０４で受信したトークンフレーム２００内の送信可能フレーム数２０９が「０」である場合（ステップＳ１０４でＹｅｓの場合）には、マスタ局のトークンフレーム処理部２３は、受信バッファ２６に記憶可能なフレーム数を取得する（ステップＳ１２１）。そして、トークンフレーム２００の送信可能フレーム数２０９として、取得したこの受信バッファ２６に記憶可能なフレーム数を設定する（ステップＳ１２２）。また、トークンリピートカウンタ２０７の値を「１」に設定し（ステップＳ１２３）、送信許可局値２０８に、トークンフレーム受信時の送信可能フレーム数「０」設定局２１０の値を設定する（ステップＳ１２４）。【００８７】
その後またはステップＳ１１０の後は、図６のステップＳ９１〜Ｓ９２と同様に、トークンフレーム２００の送信権獲得装置情報２０６に、トークン巡回順序情報から取得した自局のつぎに送信権を得るスレーブ局を設定する（ステップＳ１２５）。そして、以上によって設定されたトークンフレームを送信し（ステップＳ１２６）、処理が終了する。【００８８】
つぎに、このような通信システムにおけるトークンフレームを用いた通信方法について具体例を挙げて説明する。図９−１〜図９−８は、この実施の形態２によるトークンフレームを用いた通信方法の手順の一例を模式的に示す図である。ここでは、マスタ局Ａは、６フレームまで処理可能であるものとする。すなわち、マスタ局Ａの受信バッファ２６は６フレームまで記憶可能であるものとする。また、マスタ局Ａが、既に論理リングの構成処理を行って、実施の形態１の（１）に示したトークン巡回順序を決定し、各スレーブ局Ｂ，Ｃに対してトークン巡回順序に関する情報（トークン巡回先情報）を通知した後、トークン巡回順序にしたがって、トークンフレームが巡回している状態にあるものとする。【００８９】
そして、図９−１に示されるように、スレーブ局Ｃから、送信権獲得装置情報がマスタ局Ａに設定されたトークンフレームが送信された時点で、スレーブ局Ｂでは、アプリケーション層からデータリンク層にフレームＦ１〜Ｆ５の５個のフレームがマスタ局Ａに送信するようにエントリされ、これらのフレームＦ１〜Ｆ５は送信バッファ６４に送信待ちフレームとして順に格納された状態にあるものとする。【００９０】
その後、図９−２に示されるように、マスタ局Ａが、送信権獲得装置情報２０６が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内の送信可能フレーム数を確認する。ここでは、送信可能フレーム数は「０」でない数で戻ってきたものとする。そのため、実施の形態１で説明したような送信権を得ながらフレームを送信できなかったスレーブ局がなく、フレーム巡回順序にしたがって順に送信権を与える通常の通信を行う。【００９１】
また、マスタ局Ａのデータフレーム通信処理部２４は、自局が送信権を得たので、送信バッファ２５のフレームを送信することができるが、この時点では送信すべきフレームがないので、送信処理を行わない。その後、マスタ局Ａのトークンフレーム処理部２３は、送信可能フレーム数を予め通信システム内で設定された値「６」に設定し、トークンリピートカウンタを「１」に再設定し、さらに送信許可局値を自局を表す「０」に設定し、送信権獲得装置情報２０６にスレーブ局Ｂを設定したトークンフレーム２００を送信する。【００９２】
ついで、スレーブ局Ｂのトークンフレーム処理部６２は、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「１」＞送信許可局値「０」であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００９３】
その後、図９−３に示されるように、スレーブ局Ｂのデータフレーム通信処理部６３は、送信バッファ６４に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数の範囲内で、送信バッファ６４に格納された順（古い順）に送信する。ここでは、送信バッファ６４に格納されている送信待ちフレームＦ１〜Ｆ５の数は「５」であり、トークンフレーム２００に設定されている送信可能フレーム数は「６」であるので、フレームＦ１〜Ｆ５のすべてをマスタ局Ａに宛てて送信する。これによって、このトークンフレーム２００がマスタ局Ａに戻るまでの間に送信可能なフレーム数は「１（＝６−５）」となる。その後、スレーブ局Ｂのトークンフレーム処理部６２は、送信可能フレーム数を「１」に設定し、トークンリピートカウンタを１インクリメントして「２」にし、送信権獲得装置情報にスレーブ局Ｃを設定したトークンフレーム２００を送信する。なお、送信されたフレームＦ１〜Ｆ５は送信バッファ６４から消去される。【００９４】
また、スレーブ局Ｂから送信されたデータは、マスタ局Ａで受信され、受信バッファ２６に一時的に格納される。その結果、マスタ局Ａの受信バッファ２６には５フレームが格納されるので、受信バッファ処理可能数は「１」となる。【００９５】
ついで、スレーブ局Ｃは、送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信し、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「２」＞送信許可局値「０」であるので、トークンフレーム２００内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【００９６】
その後、図９−４に示されるように、スレーブ局Ｃは、送信バッファ６４に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数「１」の範囲内で、送信バッファ６４に格納された順（古い順）に送信しようとするが、ここでは、送信バッファ６４内には送信すべきデータがないので、結局スレーブ局Ｃは、フレームを送信しないことになる。【００９７】
そして、スレーブ局Ｃのトークンフレーム処理部６２は、トークンリピートカウンタを１インクリメントして「３」にし、送信権獲得装置情報にマスタ局Ａを設定したトークンフレーム２００を送信する。なお、このトークンフレーム２００では、送信可能フレーム数は「１」のままである。【００９８】
また、このスレーブ局Ｃによるトークンフレーム２００の送出時までの時間に、マスタ局Ａでは、受信バッファ２６に格納されたフレームのうち１つのフレームの処理が終わり、２フレーム分の記憶容量が受信バッファ中に確保された状態にあるものとする。つまり、マスタ局Ａの受信バッファ処理可能数は「２」になったものとする。【００９９】
その後、図９−５に示されるように、スレーブ局Ｃが、送信権獲得装置情報をマスタ局Ａに設定したトークンフレーム２００を送信した直後の状態において、スレーブ局Ｃでは、アプリケーション層からデータリンク層にフレームＦ６〜Ｆ９がマスタ局Ａに送信するようにエントリされ、これらのフレームＦ６〜Ｆ９は送信バッファ６４に送信待ちフレームとして格納されたものとする。【０１００】
ついで、図９−６に示されるように、マスタ局Ａが、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内の送信可能フレーム数を確認する。ここでは、送信可能フレーム数２０９が「１」であるため、論理リング中のすべての通信ノードがフレームを送信することができたと判断する。その結果、マスタ局Ａは、送信バッファ２５に格納されたフレームの送信処理を行うことができるが、この例では送信バッファ２５にはフレームが格納されていないので、マスタ局Ａによるフレームの送信処理は行われない。【０１０１】
そして、マスタ局Ａは、トークンフレーム２００の送信可能フレーム数として、本来であれば送信可能フレーム数を通信システムで予め設定された値「６」とするが、受信バッファ処理可能数が「２」であるため、トークンフレーム２００の送信可能フレーム数に「２」を設定し、トークンリピートカウンタを「１」に再設定し、送信権獲得装置情報にスレーブ局Ｂを設定したトークンフレーム２００を送信する。【０１０２】
ついで、スレーブ局Ｂが、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「１」＞送信許可局値「０」であるので、トークンフレーム内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。しかし、スレーブ局Ｂの送信バッファ６４には、フレームが存在しないので、フレームの送信処理を行わない。【０１０３】
その後、図９−７に示されるように、スレーブ局Ｂは、トークンリピートカウンタを１インクリメントして「２」にし、送信権獲得装置情報にスレーブ局Ｃを設定したトークンフレーム２００を送信する。なお、トークンフレーム２００内の送信可能フレーム数は変更せず、受信したトークンフレーム２００に設定されているままの値とする。【０１０４】
ついで、スレーブ局Ｃは、送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信し、トークンフレーム２００内のトークンリピートカウンタの値と送信許可局値とを比較し、自局がデータ送信可能か否かを判定する。ここでは、トークンリピートカウンタ「２」＞送信許可局値「０」であるので、トークンフレーム内の送信可能フレーム数の範囲でデータを送信する権利を得たことを認識する。【０１０５】
その後、図９−８に示されるように、スレーブ局Ｃのデータフレーム通信処理部６３は、送信バッファ６４に格納されている送信待ちフレームのうち、トークンフレーム２００に設定されている送信可能フレーム数２０９の範囲内で、送信バッファ６４に格納された順（古い順）に送信する。ここでは、送信バッファ６４にはフレームＦ６〜Ｆ９が格納されているが、送信可能フレーム数は「２」であるので、フレームＦ６，Ｆ７のみを送信する。これによって、このトークンフレーム２００がマスタ局Ａに戻るまでの間に送信可能なフレーム数は「０（＝２−２）」となる。その後、スレーブ局Ｃのトークンフレーム処理部６２は、送信可能フレーム数を「０」に設定し、送信可能フレーム数「０」設定局に、トークンフレームを受信したときのトークンリピートカウンタの値である（自局を表す）「２」を設定し、トークンリピートカウンタを１インクリメントして「３」にし、送信権獲得装置情報にマスタ局Ａを設定したトークンフレーム２００を送信する。また、スレーブ局Ｃは、今回の送信権の獲得時に送信できなかった送信バッファ６４中のフレームＦ８，Ｆ９を、送信可能フレーム数「０」時の未送信フレームとして記憶する。さらに、送信されたフレームＦ６，Ｆ７は送信バッファ６４から消去される。以後、以上で説明した処理または実施の形態１で説明した処理が行われる。【０１０６】
以上のようにして、マスタ局Ａの受信処理能力に合わせて送信可能フレーム数が可変に設定され、その設定に応じたフレームの送信処理が行われる。【０１０７】
この実施の形態２によれば、マスタ局の受信処理能力に合わせて、つぎのトークンを巡回させるときに送信可能なフレーム数を設定するようにしたので、データがマスタ局に集中してしまうことを防ぎ、受信バッファがＦｕｌｌ状態になることによるフレームの廃棄を防止することができる。また、フレームの廃棄によるリカバリ処理が行われないので、マスタ局やスレーブ局、これらの通信ノードを有する通信システムにおける通信性能やデータ処理性能の劣化を防ぐことができるという効果も有する。【０１０８】
実施の形態３．
たとえば、マスタ局に対応するプログラマブルコントローラとスレーブ局に対応する制御対象機器とをネットワークで結ぶＦＡシステムにおいては、制御対象機器から出力されるデータに基づいてプログラマブルコントローラで演算処理を行い、その演算結果を制御対象機器に出力して制御対象機器の制御を行うため、データのリアルタイム性が要求される。このような場合、演算処理の結果に高い精度が求められる場合には、制御対象機器からのデータを多く必要とし、演算処理の結果にそれほど高い精度が求められない場合には、制御対象機器からのデータは少なくてもよい。このように、ＦＡシステムにおいては、制御対象機器には重要度が存在する。【０１０９】
そのため、各スレーブ局の送信要求の負荷が一時的に高くなった場合に、実施の形態１で示したような方法ですべてのスレーブ局からデータの受信処理を行っていると、重要度の高い制御対象機器からのデータをなかなか受信できず、高い精度の演算処理を行えなくなってしまう可能性がある。そこで、この実施の形態３では、各スレーブ局からの送信要求の負荷が一時的に高くなった場合に、重要度の高いスレーブ局からのデータを優先してマスタ局に送信することができる通信システムおよび通信方法について説明する。【０１１０】
図１０は、この実施の形態３によるマスタ局の機能構成を模式的に示すブロック図である。このマスタ局は、実施の形態１，２の構成において、スレーブ局の送信要求の負荷が高まった場合に、どのスレーブ局に送信権を優先的に与えるかを示す優先処理時変更先情報を記憶する優先処理時変更先情報記憶部２７と、スレーブ局の送信要求の負荷が高まった場合に、トークンフレーム２００内の送信可能フレーム数「０」設定局２１０を記憶する送信可能フレーム数「０」設定局記憶部２８と、をさらに備える。なお、スレーブ局の送信要求の負荷が高まっている状態か否かは、トークンフレーム処理部２３が、トークンフレーム２００内の送信可能フレーム数２０９が「０」か否かで判定する。【０１１１】
優先処理時変更先情報記憶部２７に記憶される優先処理時変更先情報は、論理リング（トークン巡回順序）において、優先度が最も高く設定されたスレーブ局のうち、トークン巡回順序が最も早いスレーブ局に設定される。なお、スレーブ局の優先度は、スレーブ局の種類によって予め設定されていたり、ユーザによって設定されたりする。【０１１２】
図１１は、通信システムを構成する通信ノードの局番と並び番号との関係を模式的に示す図である。ここで、局番とは、ユーザが通信システムの通信ノードを一意に識別するために任意に設定する情報である。また、並び番号は、実施の形態１で説明したように、論理リング中においてマスタ局Ａを基準にした各スレーブ局の並び順を示す番号である。マスタ局Ａは、たとえばトークン巡回順序情報記憶部２２のトークン巡回順序情報に、これらの局番と並び番号とを対応付けて記憶しておく。そして、ユーザによってどの局番の通信ノードの優先度を高くするかが優先処理時変更先情報として優先処理時変更先情報記憶部２７に記憶される。たとえば、スレーブ局Ｃ，Ｅの優先度が最も高いとすると、優先処理時変更先情報として、スレーブ局Ｃが選択される。スレーブ局Ｃを選択することで、その後の論理リングにおいて、優先度の高いスレーブ局Ｅもトークンフレームが回るからである。なお、通信ノードの局番と並び番号との対応付けは、論理リング構成部２１による論理リング構成処理時において、各通信ノードに設定された局番の情報が通信ノードから取得され、これによって図１１に示されるような関係を得ることができる。【０１１３】
また、トークンフレーム処理部２３は、トークンフレーム２００を受信すると、受信したトークンフレームの送信可能フレーム数が「０」である場合に受信したトークンフレーム２００に格納されている送信可能フレーム数「０」設定局の値を送信可能フレーム数「０」設定局記憶部２８に記憶するとともに、優先処理時変更先情報記憶部２７に記憶されている優先処理時変更先情報を、トークンフレーム２００の送信許可局値に設定する。さらに、送信可能フレーム数「０」設定局記憶部２８に送信可能フレーム数「０」設定局が記憶されている状態で送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信すると、トークンフレーム２００の送信許可局値に、送信可能フレーム数「０」設定局記憶部２８に記憶された送信可能フレーム数「０」設定局を設定したトークンフレーム２００を生成し、送信可能フレーム数「０」設定局記憶部２８内の情報を消去する。【０１１４】
なお、実施の形態１〜２で説明したものと同一の構成要素には同一の符号を付して、その説明を省略する。また、スレーブ局の構成は、実施の形態１〜２で説明したものと同一であるので、その説明も省略する。【０１１５】
つぎに、マスタ局による優先させたいスレーブ局に対してデータの送信権を与える処理手順について説明する。図１２−１〜図１２−２は、この実施の形態３によるマスタ局のトークンフレームの処理手順の一例を示すフローチャートである。まず、実施の形態１の図６で説明したステップＳ７１〜Ｓ７３までと同様に、マスタ局のトークンフレーム処理部２３は送信権獲得装置情報２０６が自局宛でないトークンフレーム２００については転送を行う（ステップＳ１５１〜Ｓ１５３）。【０１１６】
また、送信権獲得装置情報２０６が自局宛てであるトークンフレーム２００の場合には、送信可能フレーム数「０」設定局記憶部２８に情報が記憶されているか否かを判定する（ステップＳ１５４）。トークンフレーム処理部２３は、送信可能フレーム数「０」設定局記憶部２８に情報が記憶されていない場合（ステップＳ１５４でＮｏの場合）には、前回のトークンフレーム２００の巡回は、優先度の高い通信ノードに対してデータの送信を行わせる処理（以下、優先モードの処理という）ではなく、実施の形態１，２で説明した通信システム内の通信ノードに対して均等にデータの送信権を与えるトークンフレーム２００が発行されている状態にあることを認識する。そこで、つぎに、トークンフレーム２００内の送信可能フレーム数２０９が「０」か否かを判定する（ステップＳ１５５）。【０１１７】
送信可能フレーム数２０９が「０」でない場合（ステップＳ１５５でＮｏの場合）には、通信システムを構成する各通信ノードの送信要求の負荷が高まっていないと判断する。その後、トークンフレーム処理部２３は、送信可能フレーム数を予め設定された値に設定し（ステップＳ１５６）、データフレーム通信処理部２４は、送信バッファ２５内のフレームを送信する（ステップＳ１５７）。また、トークンフレーム処理部２３は、ステップＳ１５６で設定された送信可能フレーム数から、ステップＳ１５７で送信したフレーム数を引いた値を、トークンフレーム２００の送信可能フレーム数２０９に設定する（ステップＳ１５８）。また、トークンリピートカウンタ２０７に「１」を再設定し（ステップＳ１５９）、トークンフレーム２００の送信許可局値２０８に「０」を設定する（ステップＳ１６０）。そして、送信権獲得装置情報２０６にトークン巡回順序情報にしたがった通信ノードを設定して（ステップＳ１７５）、トークンフレーム２００を送信して（ステップＳ１７６）、処理が終了する。【０１１８】
一方、ステップＳ１５５で、送信可能フレーム数が０である場合（ステップＳ１５５でＹｅｓの場合）には、トークンフレーム処理部２３は、通信システムを構成する通信ノードの送信要求の負荷が一時的に高まっていると判断する。その後、送信可能フレーム数を予め設定された値に設定し（ステップＳ１７１）、トークンリピートカウンタ２０７に「１」を再設定する（ステップＳ１７２）。また、受信したトークンフレーム２００内の送信可能フレーム数「０」設定局２１０を送信可能フレーム数「０」設定局記憶部２８に記憶し（ステップＳ１７３）、送信許可局値２０８に、優先処理時変更先情報記憶部２７の優先処理時変更先情報に記憶されている値を設定する（ステップＳ１７４）。その後は、上述したステップＳ１７５以降の処理が行われる。【０１１９】
また、ステップＳ１５４で送信可能フレーム数「０」設定局記憶部２８に情報が記憶されている場合（ステップＳ１５４でＹｅｓの場合）には、前回のトークンフレーム２００の巡回時には、優先モードの処理であることを認識する。そこで、マスタ局のトークンフレーム処理部２３は、送信可能フレーム数を予め設定された値に設定した後（ステップＳ１８１）、データフレーム通信処理部２４は、送信バッファ２５内のフレームを送信する（ステップＳ１８２）。また、トークンフレーム処理部２３は、ステップＳ１８１で設定された送信可能フレーム数からステップＳ１８２で送信したフレーム数を引いた値を、トークンフレーム２００の送信可能フレーム数２０９に設定する（ステップＳ１８３）。さらに、トークンフレーム２００内のトークンリピートカウンタ２０７を「１」に再設定し（ステップＳ１８４）、送信許可局値２０８に、送信可能フレーム数「０」設定局記憶部２８に記憶されている送信可能フレーム数「０」設定局を設定し（ステップＳ１８５）、送信権獲得装置情報２０６に、トークン巡回順序情報にしたがった通信ノードを設定する（ステップＳ１８６）。以上のようにしてデータ２０４内の各種の情報が設定されたトークンフレーム２００を送信する（ステップＳ１８７）。このとき、トークンフレーム処理部２３は、送信可能フレーム数「０」設定局記憶部２８に記憶されている送信可能フレーム数「０」設定局を消去する。以上によって、処理が終了する。【０１２０】
つぎに、この実施の形態３によるトークンフレームの送信処理の具体的な例について説明する。図１３−１〜図１３−５は、この実施の形態３によるトークンフレームの送信処理の一例を模式的に示す図である。この通信システムは、１台のマスタ局Ａと３台のスレーブ局Ｂ〜Ｄがスイッチングハブ１０１によって接続されて構成されている。マスタ局Ａの論理リング構成部２１によって、トークン巡回順序は下記（２）のように決定されたものとする。また、マスタ局Ａが、各スレーブ局Ｂ〜Ｄに対して下記（２）に示されるトークン巡回順序に関する情報（トークン巡回先情報）を通知した後、そのトークン巡回順序にしたがって、トークンフレーム２００が通信システム内を巡回している状態にあるものとする。
マスタ局Ａ→スレーブ局Ｂ→スレーブ局Ｃ→スレーブ局Ｄ→マスタ局Ａ  ・・・（２）【０１２１】
ここで、スレーブ局Ｂから送信されるデータの優先度が高く、優先処理時変更先情報記憶部２７には、優先処理時変更先情報としてスレーブ局Ｂを示す「２」が設定されているものとする。また、マスタ局Ａの受信バッファ２６は６フレームまで記憶可能であるものとする。【０１２２】
まず、図１３−１に示されるように、スレーブ局Ｃは、送信可能フレーム数が「３」の送信権を獲得して、送信バッファ６４の送信待ちフレームＦ１〜Ｆ５のうち、フレームＦ１〜Ｆ３を送出する。そして、送信可能フレーム数を「０」に設定し、送信可能フレーム数「０」設定局２１０を自局の並び番号である「２」に設定し、トークンリピートカウンタを「３」に設定し、送信権獲得装置情報をスレーブ局Ｄに設定したトークンフレーム２００を送出するとともに、送信バッファ６４内の送信できなかったフレームＦ４，Ｆ５を送信可能フレーム数「０」設定時の未送信フレームとして記憶する。【０１２３】
ついで、図１３−２に示されるように、スレーブ局Ｄは、実施の形態１で説明したように送信権を獲得するが、送信バッファ６４内の未送信フレームＦ６，Ｆ７を送信することができない。そのため、トークンリピートカウンタ２０７を「４」に設定し、送信権獲得装置情報をマスタ局Ａに設定したトークンフレーム２００を送出するとともに、送信バッファ６４内の送信できなかったフレームＦ６，Ｆ７を前回トークン受信時の未送信フレームとして記憶する。【０１２４】
また、スレーブ局Ｄから、送信権獲得装置情報がマスタ局Ａに設定されたトークンフレーム２００が送信され直後の時点で、スレーブ局Ｂでは、アプリケーション層からデータリンク層にフレームＦ８〜Ｆ１３の６個のフレームがマスタ局Ａに送信するようにエントリされ、これらのフレームＦ８〜Ｆ１３は送信バッファ６４に送信待ちフレームとして順に格納された状態にあるものとする。さらに、スレーブ局Ｃでは、アプリケーション層からデータリンク層にフレームＦ１４〜Ｆ１５の２個のフレームがマスタ局Ａに送信するようにエントリされ、これらのフレームＦ１４〜Ｆ１５は送信バッファ６４に送信待ちフレームとして順に格納された状態にあるものとする。またこの時点で、マスタ局Ａでは、スレーブ局Ｃから受信したフレームＦ１〜Ｆ３によって受信バッファ２６には記憶容量いっぱいにデータが記憶された状態にあるものとする。【０１２５】
このような状態で、マスタ局Ａのトークンフレーム処理部２３が、送信権獲得装置情報が自局に設定されたトークンフレーム２００を受信すると、送信可能フレーム数「０」設定局記憶部２８に情報が記憶されているか確認する。ここでは、送信可能フレーム数「０」設定局記憶部２８に情報が記憶されていないものとする。その後、さらに、トークンフレーム２００内の送信可能フレーム数を確認するが、ここでは、送信可能フレーム数は「０」であるので、優先処理時変更先情報記憶部２７の優先処理時変更先情報に予め設定されたスレーブ局Ｂのデータを優先的に送信させる優先モードに移行する。【０１２６】
図１３−３に示されるように、ここでは、マスタ局Ａは、受信したトークンフレーム２００内の送信可能フレーム数「０」設定局２１０を送信可能フレーム数「０」設定局記憶部２８に記憶する。ついで、送信可能フレーム数を予め通信システム内で設定された値「６」に設定し、トークンリピートカウンタを「１」に再設定し、さらに送信許可局値を優先処理時変更先情報に記憶されている値「１」（＝スレーブ局Ｂ）に設定し、送信権獲得装置情報にスレーブ局Ｂを設定したトークンフレーム２００を送信する。【０１２７】
その後、スレーブ局Ｂは、送信権獲得装置情報２０６が自局に設定されたトークンフレーム２００を受信し、トークンフレーム２００内のトークンリピートカウンタ２０７の値と送信許可局値２０８とを比較する。そして、トークンリピートカウンタ「１」＝送信許可局値「１」であるので、送信権を得たことを認識する。【０１２８】
また、図１３−４に示されるように、スレーブ局Ｂは、送信バッファ６４に格納されている送信待ちフレームのうち送信可能フレーム数で規定される範囲内で、すなわち６個のフレームＦ８〜Ｆ１３を送信する。その後、トークンリピートカウンタを１インクリメントして「２」にし、送信可能フレーム数を「０」にし、送信権獲得装置情報をスレーブ局Ｃに設定したトークンフレーム２００を送信する。なお、優先モードでデータを送信している最中には、送信可能フレーム数が「０」になっても、トークンフレーム２００中の送信可能フレーム数「０」設定局への設定（書き込み）は行わないものとする。【０１２９】
ここで、実施の形態１の方法では、マスタ局Ａは、図１３−２で送信可能フレーム数「０」設定局に設定されたスレーブ局Ｃに対して、送信権を与えるようにトークンフレーム２００のデータ内の情報を設定していた。しかし、この実施の形態３では、マスタ局Ａの受信バッファ２６の処理可能フレーム数が「０」の場合には、優先処理時変更先情報記憶部２７に記憶されたスレーブ局Ｂに送信権を与えるようにしている。【０１３０】
ついで、スレーブ局Ｃ，Ｄと順にトークンフレーム２００が巡回するが、ともに送信可能フレーム数が「０」であるために、データフレームを送信することができない。そして、図１３−５に示されるように、スレーブ局Ｄは、トークンリピートカウンタが「４」に設定され、送信可能フレーム数が「０」に設定され、送信権獲得装置情報がマスタ局Ａに設定されたトークンフレーム２００を送信する。【０１３１】
その後、図１３−５に示されるように、マスタ局Ａは、送信権獲得装置情報が自局に設定されているトークンフレーム２００を受信し、送信可能フレーム数「０」設定局記憶部２８に情報が記憶されているか確認する。ここでは、情報が記憶されているので、マスタ局Ａのトークンフレーム処理部２３は、送信可能フレーム数「０」設定局記憶部２８に記憶されている値「２」を、トークンフレーム２００の送信許可局値に設定する。また、トークンリピートカウンタを「１」に再設定し、送信可能フレーム数を「６」に設定し、送信権獲得装置情報にスレーブ局Ｂを示す「１」を設定したトークンフレーム２００を生成し、送信する。また、トークンフレーム処理部２３は、トークンフレーム２００の生成処理が終わると、送信可能フレーム数「０」設定局記憶部２８に記憶されている情報を消去する。【０１３２】
その後は、実施の形態１で説明したものと同じ処理が行われる。つまり、ここでは、まず、送信権がスレーブ局Ｃに与えられ、送信バッファ６４内の送信可能フレーム数「０」設定時の未送信フレームとして記憶されているフレームＦ４，Ｆ５が送信され、ついでスレーブ局Ｄの送信バッファ６４内の前回トークン受信時の未設定フレームとして記憶されているフレームＦ６，Ｆ７が送信される。【０１３３】
なお、以上の説明では、スレーブ局の通信要求の負荷が一時的に高まった場合を例に挙げて説明したが、この場合にのみ上記の処理を行うのではなく、マスタ局の受信処理が劣化した場合などにも同様の優先モードに遷移させる処理を実行させることができる。【０１３４】
この実施の形態３によれば、受信したトークンフレームの送信可能フレーム数が「０」の場合には、予め設定された優先度の高いスレーブ局に送信権を与え、送信可能フレーム数「０」設定局２１０の内容を一時的に記憶して、送信可能フレーム数「０」設定局２１０に設定されたスレーブ局に送信権を与えないようにした。その結果、マスタ局に頻繁にデータの送信を行う必要があるスレーブ局のデータを、リアルタイム性を維持しながら送信することができるという効果を有する。【０１３５】
実施の形態４．
この実施の形態４では、受信したトークンフレームの送信可能フレーム数が「０」の場合に、通信システム内のスレーブ局のうち最も優先度の高いスレーブ局に送信権を与える他の方法について説明する。【０１３６】
図１４は、この実施の形態４で用いられるトークンフレームのフォーマットの一例を示す図である。このトークンフレーム２００は、図３に示した送信許可局値２０８が、優先的にデータ送信を行わせるスレーブ局の論理リング上での範囲を規定する開始送信許可局値２０８ａと終了送信許可局値２０８ｂとで構成される。つまり、開始送信許可局値２０８ａは、受信したトークンフレームの送信可能フレーム数が「０」で優先モードに遷移する際に、論理リング上の通信ノードのうち、優先的に送信権を与える最初の通信ノードの並び番号を示し、終了送信許可局値２０８ｂは、同じく論理リング上の通信ノードのうち、優先的に送信権を与える最後の通信ノードの並び番号を示す。その結果、論理リング上の通信ノードのうち、開始送信許可局値２０８ａの並び番号を有する通信ノードから、終了送信許可局値２０８ｂの並び番号を有する通信ノードまでの通信ノードが、送信権を得てデータフレームの送信を行うことになる。【０１３７】
マスタ局の構成は、優先処理時変更先情報記憶部２７に、優先モードに遷移する際の開始送信権許可局値と終了送信権許可局値とを含む優先処理時変更先情報が記憶される点が、実施の形態３の構成と異なるが、その他の構成は同一であるので、その説明を省略する。【０１３８】
また、スレーブ局の構成は、トークンフレーム処理部６２が、送信権獲得装置情報２０６が自局であるトークンフレーム２００を受信した後、トークンリピートカウンタ２０７の値が開始送信許可局値２０８ａ以上で終了送信許可局値２０８ｂ以下であるか否かを判定する点が、実施の形態１〜３の構成とは異なるが、その他の構成は同一であるので、その説明を省略する。【０１３９】
さらに、このような構成における通信システムの通信方法も、実施の形態３で説明したものと同様であるので、その説明を省略する。【０１４０】
この実施の形態４によれば、受信したトークンフレームの送信可能フレーム数が「０」の場合に、優先的にデータを送信させたい通信ノードの論理リング上での開始並び番号と終了並び番号を指定するようにしたので、論理リング上の任意に選択した通信ノードの集合に優先的にデータを送信させることができるという効果を有する。また、優先モードに移行したときのデータ送信処理は、開始送信許可局値と終了送信許可局値で設定される範囲の通信ノードのみによって行われるので、実施の形態３の場合に比してトークンフレームが一巡する間に行われる処理を短縮化することができる。【０１４１】
以上の実施の形態３，４において、マスタ局に優先処理情報設定手段を設け、ユーザによって入力された優先させたいスレーブ局を優先処理時変更先情報記憶部２７に設定するようにしてもよい。このようにすることで、発生したイベントによって、優先させたいスレーブ局の送信権の制御をおこなうことができる。【０１４２】
なお、実施の形態１〜４では、送信権を得た通信ノードが送信するフレームのサイズについては特に制限はないが、たとえばマスタ局で所定の長さ以下のフレームのみしか送信させないように設定することもできる。このとき、設定された所定の長さよりも大きなフレームを送信する場合には、データリンク層よりも上位の層で、データを送信可能な長さに分割し、受信する場合には、受信した側で分割されたデータを１つにまとめるようにすればよい。【０１４３】
実施の形態５．
また、上述した実施の形態１〜４の通信システムは、制御対象機器と、制御対象機器の状態を入力データとして所定の演算を行い、制御対象機器の状態を入力データとして所定の演算を行い、制御対象機器の動作条件を出力データとして出力するプログラマブルコントローラなどの制御装置と、を備えるＦＡネットワーク（ＦＡシステム）などに適用することができる。【０１４４】
ＦＡネットワークでは、トークンフレーム受信時に常に各通信ノードから送信される同期データ（サイクリックデータ）と、リアルタイム性が重視されず、周期的に送信しなくてもよい非同期データ（非サイクリックデータ）と、が共存している。同期データとしては、マスタ局が各スレーブ局に、スレーブ局を制御するデータや、マスタ局による演算処理に必要なスレーブ局で取得したデータなどの制御データを例示することができ、非同期データとしては、たとえばスレーブ局の制御ログなどのデータを例示することができる。【０１４５】
このようなネットワークにおいては、実施の形態１〜４で示した機能を、通信システムで送信されるデータのすべてに適用しなくてもよい。具体的には、送信権獲得装置情報に自局が設定されたトークンフレームを通信ノードが受信した場合には、同期データに関しては常に送信し、非同期データについてのみ実施の形態１〜４で説明した方法によって送信する。【０１４６】
この場合には、フレーム内に同期フレームか非同期フレームかを判断するフラグ（非同期フレーム判定フラグ）を設け、送信権を獲得した通信ノードは、フレームの非同期フレーム判定フラグ情報を読み込み、非同期フレームにのみ上述した実施の形態１〜４を適用し、同期フレームは、送信権を獲得した場合に必ず送信するようにすればよい。【０１４７】
この実施の形態５によれば、データの重要度によって、リアルタイム性の確保対象を変更することができるという効果を有する。【０１４８】
また、上述したマスタ局とスレーブ局における通信方法は、それぞれの処理手順を書込んだプログラムを、ＣＰＵ（中央演算処理装置）を有するプログラマブルコントローラやパーソナルコンピュータなどのコンピュータで実行することによって実現することができる。この場合、コンピュータのＣＰＵ（制御手段）が、プログラムにしたがって、上述した通信方法の各処理工程を実行することになる。これらのプログラムは、ハードディスク、フロッピー（登録商標）ディスク、ＣＤ（Compact  Disk）−ＲＯＭ（Read  Only  Memory），ＭＯ（Magneto-Optical  disk），ＤＶＤ（Digital  Versatile  DiskまたはDigital  Video  Disk）などのコンピュータで読取可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、これらのプログラムは、インタネットなどのネットワーク（通信回線）を介して配布することもできる。【０１４９】
さらに、マスタ局は、上述した実施の形態に記載される各処理部を上記の処理手順で処理を実行する回路によって実現した通信管理回路とすることもできる。同様に、スレーブ局も、上述した実施の形態に記載される各処理部を上記の処理手順で処理を実行する回路によって実現した通信回路とすることもできる。【０１５０】
さらにまた、マスタ局は、上述した実施の形態に記載される各処理部を上記の処理手順で処理を実行するように作製したＬＳＩ（Large-Scale  Integration）とすることもできる。同様に、スレーブ局も、上述した実施の形態に記載される各処理部を上記の処理手順で処理を実行するように作製したＬＳＩとすることもできる。
【産業上の利用可能性】
【０１５１】
以上のように、この発明にかかる通信管理装置は、データ通信のリアルタイム性が要求されるイーサネットで接続されたネットワークシステムでデータの送信権を管理する通信装置に有用である。
【図１】
2010073349.tif 000003
【図２−１】
2010073349.tif 000004
【図２−２】
2010073349.tif 000005
【図３】
2010073349.tif 000006
【図４】
2010073349.tif 000007
【図５−１】
2010073349.tif 000008
【図５−２】
2010073349.tif 000009
【図６】
2010073349.tif 000010
【図７−１】
2010073349.tif 000011
【図７−２】
2010073349.tif 000012
【図７−３】
2010073349.tif 000013
【図７−４】
2010073349.tif 000014
【図７−５】
2010073349.tif 000015
【図７−６】
2010073349.tif 000016
【図７−７】
2010073349.tif 000017
【図７−８】
2010073349.tif 000018
【図７−９】
2010073349.tif 000019
【図８】
2010073349.tif 000020
【図９−１】
2010073349.tif 000021
【図９−２】
2010073349.tif 000022
【図９−３】
2010073349.tif 000023
【図９−４】
2010073349.tif 000024
【図９−５】
2010073349.tif 000025
【図９−６】
2010073349.tif 000026
【図９−７】
2010073349.tif 000027
【図９−８】
2010073349.tif 000028
【図１０】
2010073349.tif 000029
【図１１】
2010073349.tif 000030
【図１２−１】
2010073349.tif 000031
【図１２−２】
2010073349.tif 000032
【図１３−１】
2010073349.tif 000033
【図１３−２】
2010073349.tif 000034
【図１３−３】
2010073349.tif 000035
【図１３−４】
2010073349.tif 000036
【図１３−５】
2010073349.tif 000037
【図１４】
2010073349.tif 000038
【手続補正書】
【提出日】平成23年6月8日(2011.6.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１台の通信管理装置と１台以上の通信装置とがイーサネット（登録商標）ケーブルで接続されたネットワーク内のデータの送信を管理する通信管理装置であって、
前記ネットワーク内でのトークンフレームを巡回させるトークン巡回順序を記憶するトークン巡回順序記憶手段と、
受信した前記トークンフレーム内のつぎに送信権を獲得する送信権獲得装置情報が自装置であるかを判定するトークンフレーム受信手段と、
前記トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報、前記トークンフレームが自装置から一巡する間に送信可能なフレーム数を示す第２の送信権獲得判定情報、および前記トークン巡回順序から取得した自装置のつぎのトークンフレームの送信先である送信権獲得装置情報を設定した前記トークンフレームを送信するトークンフレーム送信手段と、
他の通信ノードからのデータフレームの受信処理を行い、前記送信権を獲得するとデータをフレーム単位でデータフレーム化して送信するデータフレーム通信処理手段と、
を備えることを特徴とする通信管理装置。
【請求項２】
前記第１の送信権獲得判定情報は、前記送信権獲得装置情報に設定された通信装置の前記トークン巡回順序における当該通信管理装置を基準にした並び番号を示すトークン巡回番号と、データフレームを送信可能な通信装置の前記トークン巡回順序での並び番号を示す送信許可局値と、を含み、
前記トークンフレーム送信手段は、前記トークン巡回番号に「１」を設定し、前記送信許可局値に、受信した前記トークンフレームに設定された情報に応じた値を設定することを特徴とする請求項１に記載の通信管理装置。
【請求項３】
前記トークンフレーム送信手段は、受信したトークンフレームの前記第２の送信権獲得判定情報が「０」でない場合には、前記送信許可局値に自局の前記並び番号を示す「０」を設定することを特徴とする請求項２に記載の通信管理装置。
【請求項４】
受信したトークンフレームで、前記第２の送信権獲得判定情報が「０」であり、第２の送信権獲得判定情報を「０」にした通信装置を示す送信可能フレーム数「０」設定局情報が設定されている場合に、
前記トークンフレーム受信手段は、前記データフレーム通信処理手段にデータフレームの送信指示を与えず、
前記トークンフレーム送信手段は、前記トークンフレームの前記送信許可局値に前記送信可能フレーム数「０」設定局情報を設定することを特徴とする請求項２に記載の通信管理装置。
【請求項５】
受信ポートから受信したデータフレームを、前記データフレーム通信処理手段で受信処理されるまでの間に一時的にフレーム単位で記憶する受信バッファをさらに備え、
前記トークンフレーム送信手段は、前記受信バッファに記憶可能なフレーム数を、前記第２の送信権獲得判定情報として設定することを特徴とする請求項１に記載の通信管理装置。
【請求項６】
予め設定されたイベントの発生によって、送信権を優先的に与える通信装置の前記並び番号を記憶する優先処理時変更先情報記憶手段をさらに備え、
前記トークンフレーム送信手段は、前記イベントが発生すると、前記優先処理時変更先情報記憶手段に記憶されている前記並び番号を前記送信許可局値に設定することを特徴とする請求項４に記載の通信管理装置。
【請求項７】
前記トークンフレームの前記送信可能フレーム数「０」設定局情報の内容を記憶する送信可能フレーム数「０」設定局記憶手段をさらに備え、
前記優先処理時変更先情報記憶手段には、前記第２の送信権獲得判定情報が「０」である場合に送信権を優先的に与える通信装置の前記並び番号が記憶され、
前記トークンフレーム受信手段は、前記送信権獲得装置情報が自装置であり、前記第２の送信権獲得判定情報が「０」のトークンフレームを受信すると、前記送信可能フレーム数「０」設定局情報の内容を前記送信可能フレーム数「０」設定局記憶手段に記憶し、
前記トークンフレーム送信手段は、前記優先処理時変更先情報記憶手段に記憶されている前記並び番号を前記送信許可局値に設定することを特徴とする請求項４に記載の通信管理装置。
【請求項８】
前記優先処理時変更先情報記憶手段には、送信権を優先的に与える通信装置の範囲の前記並び番号を示す開始送信許可局値と終了送信許可局値と、が記憶され、
前記トークンフレーム送信手段は、受信した前記トークンフレームの前記第２の送信権獲得判定情報が「０」の場合に、前記トークンフレームの前記送信許可局値に、前記開始送信許可局値と前記終了送信許可局値とを設定することを特徴とする請求項７に記載の通信管理装置。
【請求項９】
前記トークンフレーム送信手段は、前記送信可能フレーム数「０」設定局記憶手段に前記送信可能フレーム数「０」設定局情報が記憶されている場合には、前記送信権獲得装置情報が自装置である前記トークンフレームを受信すると、前記トークンフレームの前記送信許可局値に前記送信可能フレーム数「０」設定局情報を設定し、前記送信可能フレーム数「０」設定局記憶手段に記憶されている前記送信可能フレーム数「０」設定局情報を消去することを特徴とする請求項７に記載の通信管理装置。
【請求項１０】
１台の通信管理装置と１台以上の通信装置とがイーサネット（登録商標）ケーブルで接続されたネットワーク内で、前記通信管理装置によって決定されたトークン巡回順序にしたがって巡回されるトークンフレームを獲得してデータの送信を行う通信装置であって、
つぎに前記トークンフレームを送信する通信ノードを含むトークン巡回先情報を記憶するトークン巡回先情報記憶手段と、
受信した前記トークンフレーム内のつぎに送信権を獲得する通信ノードを示す送信権獲得装置情報が自装置であるかを判定し、前記送信権獲得装置情報が自装置である場合に、前記トークンフレーム内の前記トークン巡回順序における送信権を獲得可能な通信装置の並び番号を示す第１の送信権獲得判定情報と、前記トークンフレーム受信時の送信可能なフレーム数を示す第２の送信権獲得判定情報と、を用いてデータフレームの送信権があるかを判定するトークンフレーム受信手段と、
前記送信権獲得装置情報に前記トークン巡回先情報を設定し、データフレーム通信処理手段で前記データフレームを送信した場合に前記トークンフレーム受信時の前記第２の送信権獲得判定情報から送信した前記データフレームの数を引いた値を前記第２の送信権獲得判定情報に設定した前記トークンフレームを送信するトークンフレーム送信手段と、
他の通信ノードに送信されるデータをフレーム単位で記憶する送信バッファと、
他の通信ノードからのデータフレームの受信処理を行い、前記送信権を獲得すると前記送信バッファに記憶されたデータをフレーム単位でデータフレーム化して送信するデータフレーム通信処理手段と、
を備えることを特徴とする通信装置。
【請求項１１】
前記第１の送信権獲得判定情報は、前記送信権獲得装置情報に設定された通信装置の前記トークン巡回順序における当該通信管理装置を基準にした並び番号を示すトークン巡回番号と、データフレームを送信可能な通信装置の前記トークン巡回順序での並び番号を示す送信許可局値と、を含み、
前記トークンフレーム受信手段は、前記送信権獲得装置情報が自装置である前記トークンフレームを受信すると、前記トークン巡回番号と前記送信許可局値とを用いて送信権の有無を判定し、
前記トークンフレーム送信手段は、前記トークン巡回番号に、前記トークン巡回先情報に対応する通信装置の並び番号を設定することを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記トークンフレーム送信手段は、受信した前記トークンフレームの前記トークン巡回番号に１インクリメントしたものを新たな前記トークン巡回番号に設定することを特徴とする請求項１１に記載の通信装置。
【請求項１３】
前記トークンフレーム受信手段は、前記トークンフレーム内の前記トークン巡回番号が前記送信許可局値以上であり、前記第２の送信権獲得判定情報が「０」よりも大きい場合に、送信権を獲得したと判定し、
前記データフレーム通信処理手段は、前記第２の送信権獲得判定情報の範囲内でデータフレームを送信することを特徴とする請求項１１に記載の通信装置。
【請求項１４】
前記トークンフレームは、前記第２の送信権獲得判定情報を「０」にした通信ノードを示す送信可能フレーム数「０」設定局情報をさらに有し、
前記トークンフレーム送信手段は、前記データフレーム通信処理手段による前記データフレームの送信によって前記第２の送信権獲得判定情報が「０」になった場合に、前記トークンフレーム受信時のトークン巡回番号の値を、前記送信可能フレーム数「０」設定局情報に設定することを特徴とする請求項１３に記載の通信装置。
【請求項１５】
前記データフレーム通信処理手段は、前記トークンフレームを受信した時点で前記送信バッファに記憶されながら送信できなかったデータを識別する前回未送信データ識別情報を前記送信バッファ内のデータに付し、つぎ以降の送信権獲得時に、前記送信バッファに前記前回未送信データ識別情報を付したデータが存在する場合に、前記トークンフレームの前記第２の送信権獲得判定情報の範囲内で前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項１４に記載の通信装置。
【請求項１６】
前記データフレーム通信処理手段は、受信した前記トークンフレーム内の前記トークン巡回番号が前記送信許可局値以上で、前記第２の送信権獲得判定情報が「０」である場合に、前記トークンフレームを受信した時点で前記送信バッファに記憶されながら送信できなかったデータを識別する前回未送信データ識別情報を付し、つぎ以降の送信権獲得時に、前記送信バッファに前記前回未送信データ識別情報を付したデータが存在する場合に、前記トークンフレームの前記第２の送信権獲得判定情報の範囲内で前記前回未送信データ識別情報が付されたデータのみを送信することを特徴とする請求項１１に記載の通信装置。
【国際調査報告】
2010073349.tif 000039
2010073349.tif 000040