(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-22
(45)【発行日】2022-10-03
(54)【発明の名称】伝送装置
(51)【国際特許分類】
H04L 12/28 20060101AFI20220926BHJP
H04L 12/417 20060101ALI20220926BHJP
【FI】
H04L12/28 207
H04L12/417
(21)【出願番号】P 2021507323
(86)(22)【出願日】2020-03-13
(86)【国際出願番号】 JP2020011288
(87)【国際公開番号】W WO2020189587
(87)【国際公開日】2020-09-24
【審査請求日】2021-09-15
(31)【優先権主張番号】P 2019048781
(32)【優先日】2019-03-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】山田 裕太
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2016-178463(JP,A)
【文献】特開2016-96397(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28-12/46
(57)【特許請求の範囲】
【請求項1】
インプリシット・トークンパッシング方式のネットワークを構成するノードとして現在の送信権を有し、かつ、
同期ノードを特定する同期ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む同期フレームあるいは送信権を有しているノードを特定する送信権ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む催促フレームを受信した場合に、
データフレームを送信し、前記データフレームの送信の後に、送信元のノードを特定する送信ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む完了フレームを送信
し、
前記催促フレームを受信した伝送装置は、当該催促フレームに基づいて送信権情報を作成し、前記伝送装置が前記送信権を取得しているか否かを判断する、
伝送装置。
【請求項2】
さらに前記完了フレームは、受信した前記催促フレームを識別するための催促フレーム識別符号データを含む、
請求項
1記載の伝送装置。
【請求項3】
前記催促フレーム識別符号データが含まれた前記完了フレームを受信した場合に、当該完了フレームに含まれる前記ネットワーク生存ノードマップ情報で、
前記伝送装置が保有しているネットワーク生存ノードマップ情報を更新する、
請求項2記載の伝送装置。
【請求項4】
前記伝送装置は、さらに同期ノードとして機能する場合に、所定周期毎に、前記同期フレームを送信する、
請求項1乃至
請求項3のいずれか一項記載の伝送装置。
【請求項5】
前回の前記同期フレームの送信時から所定の時間が経過し、かつ、現在の送信権を有する他の伝送装置からの前記完了フレームを受信していない場合に、前記催促フレームを送信する、
請求項4記載の伝送装置。
【請求項6】
前記催促フレームを送信するまでの所定の時間は、前回の前記同期フレームの送信時から前記完了フレームの受信を待つ最大時間である所定の完了タイムアウト時間よりも短い時間に設定されている、
請求項5記載の伝送装置。
【請求項7】
前記催促フレームを送信するまでの所定の時間は、完了タイムアウト時間の半分の時間に設定されている、
請求項6記載の伝送装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、伝送装置に関する。
【背景技術】
【0002】
従来、コントローラ間などを接続する情報・制御LAN(産業用ネットワーク)が用いられるプラント等では、定められた周期内での制御が求められ、また、鉄鋼等のプラントでは高速な制御周期が求められる。
【0003】
上述したように、所定の高速制御周期内で制御を行うシステムに適用される通信プロトコルの一つとして、送信ノードを特定して巡回させるインプリシット・トークンパッシング方式のようなノードごとの送信権を管理した送信プロトコルが知られている。
【0004】
インプリシット・トークンパッシング方式の送信プロトコルの中には、特定の同期ノードを設定し、インプリシット・トークンパッシングの開始タイミングを通知するための同期フレームを送信し、送信権を他のノードに移行するために送信権の移行を通知する完了フレームを送信するものが存在する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
インプリシット・トークンパッシング方式の伝送では、同期ノードと呼ばれる管理ノードから毎周期送信される同期フレームを、ネットワークに参入している他のノードが受信し、同期フレームによってインプリシット・トークンパッシングの開始を行う。
ネットワーク内の各ノードは、自身の送信権が得られるタイミングでデータを送信する。
【0007】
この場合において、送信権の移行は、各ノードの送信データの最後に送信される完了フレームを受信するか、あるいは、前ノードの完了フレーム受信から一定時間完了フレームが受信できなかった場合にタイムアウトとすることで、次のノードが取得する形で実施されていた。
【0008】
そのため、一過性の異常により完了フレームが受信できず、タイムアウトが発生した場合に制御周期を満たせなくなる場合が発生する。また、一過性の異常によって同期フレームの受信に失敗した場合には、データ送信ができず、データ損失が発生するおそれがあった。
【0009】
本実施形態は、上記に鑑みてなされたものであって、インプリシット・トークンパッシング方式のネットワークにおいて、一過性の異常により、完了フレームあるいは同期フレームの受信が正常に行えなかった場合であっても、一過性の異常等による制御周期に対する影響を最小限に抑えつつ、インプリシット・トークンパッシングを継続することができる伝送装置を提供することを目的としている。
【課題を解決するための手段】
【0010】
実施形態の伝送装置は、インプリシット・トークンパッシング方式のネットワークを構成するノードとして現在の送信権を有し、かつ、同期ノードを特定する同期ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む同期フレームあるいは送信権を有しているノードを特定する送信権ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む催促フレームを受信した場合に、データフレームを送信し、前記データフレームの送信の後に、送信元のノードを特定する送信ノード番号及び前記ネットワークに存在しているノードの情報であるネットワーク生存ノードマップ情報を含む完了フレームを送信し、前記催促フレームを受信した伝送装置は、当該催促フレームに基づいて送信権情報を作成し、前記伝送装置が前記送信権を取得しているか否かを判断する。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態の制御用通信ネットワークの概要構成ブロック図である。
【
図2】
図2は、コントローラノードの要部構成説明図である。
【
図3】
図3は、実施形態で用いる各種フレームの共通フォーマットを説明する図である。
【
図4】
図4は、同期フレームのデータフォーマットの一例の説明図である。
【
図5】
図5は、完了フレームCFのデータフォーマットの第1の例の説明図である。
【
図6】
図6は、催促フレームのデータフォーマットの一例の説明図である。
【
図8】
図8は、同期ノードとして機能するコントローラノードの同期ノード処理のフローチャートである。
【
図9】
図9は、コントローラノードのデータフレーム送信動作について説明する図(その1)である。
【
図10】
図10は、完了フレームCFの第2の例の説明図である。
【
図11】
図11は、コントローラノードのデータフレーム送信動作について説明する図(その2)である。
【
図12】
図12は、複数のコントローラノードが同期フレームの受信に失敗した場合の説明図である。
【発明を実施するための形態】
【0012】
次に図面を参照して好適な実施形態について説明する。
まず実施形態の原理について説明する。
ネットワークに参入している同期ノードを含む全てのノードは、前回送信権を持っていたノードが送信した送信権の移行を通知する完了フレームCFを受信してから、今回送信権を持つノードの完了フレームCFを受信するまでの時間のタイムアウト検知を実施する。
【0013】
ここでタイムアウトが検知される場合とは、一過性の異常で完了フレームCFやインプリシット・トークンパッシングの開始タイミングを通知する同期フレームの受信に失敗した場合等が挙げられる。
【0014】
このため、今回送信権を持っているノードからの完了フレームCFが届かず、完了フレーム受信のタイムアウトが検知された場合には、次回の送信権を持つノードが送信権を獲得することとなる。
【0015】
そこで、本実施形態においては、タイムアウト前の一定時間経過後に完了フレームCFが受信できない場合、同期ノードからネットワーク内の今回の送信権を持っているノードに対して、催促フレームを一度だけ送信する。
【0016】
催促フレームを受信した今回の送信権を持つノードは、直ちにデータフレームを送信し、完了フレームCFに催促フレームを受信したことを示す識別子及びいまだ送信権を取得していない残りの送信権を持つノードの情報を付加した完了フレームCFを送信することで、送信権を次回に送信権を持つべきノードへと移行する。
【0017】
催促フレームを受信しなかった残りのノードと同期ノードは、再び完了フレームCFのタイムアウト検知を実施する。
【0018】
また、同期フレームの受信を複数のノードが同時に失敗した場合には、同期フレームの受信に失敗したノードが送信権を得るたびに、都度催促フレームを送信するのではなく、催促フレームを受信した当該時点で送信権を持っていたノードから配信される完了フレームCFを受信したときに、当該完了フレームCFに付加されていた残りの送信権を持つノードの情報によって、送信権の更新を実施する。
【0019】
これらの結果、今回送信権を持っているノードからの完了フレームCFが届かない場合であっても、タイムアウトの検知がなされる前に、当該時点で送信権を持つノードに対し完了フレームCFの送信を催促することで、完了フレームCFの送信を促すことができ、一過性の異常等による制御周期に対する影響を最小限に抑えつつ、インプリシット・トークンパッシングを継続することができる。
ひいては、インプリシット・トークンパッシングにおいて、制御ネットワーク内において一定周期内での通信を実現することが可能となる。
【0020】
[1]第1実施形態
図1は、実施形態の制御用通信ネットワークの概要構成ブロック図である。
制御用通信ネットワーク10は、図示しない被制御装置、センサ等が接続された複数(
図1では、5個)のコントローラノード11-1~11-5と、コントローラノード11-1~11-5間を通信可能に接続した制御LAN12と、を備えている。
【0021】
上記構成において、コントローラノード11-1~11-5のうちのいずれか一台は、同期ノード(同期コントローラノード)として機能する。そして同期ノードは、送信周期を定める後述の同期フレームSFを各制御周期の最初に送出することで制御周期の管理を担っている。
【0022】
図2は、コントローラノードの要部構成説明図である。
コントローラノード11-n(n:1~5)のそれぞれには、IPアドレスやMACアドレスとは別に、当該制御用通信ネットワーク10内で一意に定められるノード番号(ノード番号データ)21が予め設定されている。
【0023】
次に実施形態のフレームフォーマットについて説明する。
図3は、実施形態で用いる各種フレームの共通フォーマットを説明する図である。
フレームFFは、フレームヘッダFH及びフレームデータFDを備えている。
【0024】
フレームヘッダFHは、後述する同期フレーム、完了フレーム、催促フレーム等のフレームの種別を表すフレーム種別情報FIの他、図示していないが、その他に送信元のIPアドレス、一又は複数の送信先のIPアドレス等のヘッダ情報を備えている。
【0025】
フレームデータFDは、フレーム種別情報FIに対応する各種データを備えている。したがって、フレームデータFDは、フレームの種別によって長さが異なっている。
【0026】
次に第1実施形態の概要動作を説明する。
コントローラノード11-nは、このノード番号21を用いて制御用通信ネットワーク10への参入/離脱を制御するネットワーク制御機能、制御用通信ネットワーク10内での送信順の制御、同期ノードを起点とした周期伝送等を実施している。
【0027】
コントローラノード11-nは、メモリ22を有している。このメモリ22内には、制御用通信ネットワーク10に参入している全てのコントローラノードを示すネットワーク参入ノードマップデータ23と、制御用通信ネットワーク10全体の送信権情報データ24と、現在の送信権をもつコントローラノードの送信権ノード番号データ25と、完了フレーム受信のタイムアウト時間を格納したタイムアウト時間データ26と、を格納している。
【0028】
同期コントローラノードとなったコントローラノード11-Xは、送信周期を定める同期フレームSFを各送信周期の先頭で送信する。
【0029】
図4は、同期フレームのデータフォーマットの一例の説明図である。
同期フレームSFは、同期フレームSFであることを表すフレーム種別情報FIとして機能する同期フレーム情報データ31と、同期ノード番号を格納した同期ノード番号データ32と、当該同期フレームの送出時点で制御用通信ネットワーク10に存在(生存)していると認識している全てのコントローラノードを示すネットワーク生存ノードマップデータ33と、を備えている。
【0030】
これにより同期フレームSFを受信した各コントローラノードは、受信した同期フレームSFに基づいて、インプリシット・トークンパッシングを開始する。
そして、送信権を有するコントローラノードが、データフレームDFを送信することとなる。
【0031】
送信権を有しているコントローラノードは、データフレームDFの送信後、自身の送信権が完了することを他のコントローラノードに対して示すため、完了フレームCFを送信する。
【0032】
図5は、完了フレームCFのデータフォーマットの第1の例の説明図である。
第1の例の完了フレームCFは、完了フレームCFであることを表すフレーム種別情報FIとして機能する完了フレーム情報データ41と、当該完了フレームCFの送信元のコントローラノードを特定するためのノード番号データが格納された送信ノード番号データ42と、当該完了フレームの送出時点で制御用通信ネットワーク10に存在(生存)していると認識している全てのコントローラノードを示すネットワーク生存ノードマップデータ43と、を備えている。
【0033】
これにより、完了フレームCFを受信した他のコントローラノードは、前回の送信権がどのコントローラノードにあったかを確認し、次の送信権を持つコントローラノードに送信権が移行する。
【0034】
以上の一連の動作を制御用通信ネットワーク10に参入している全てのコントローラノードが送信権を取得して、データフレームを送信するまで実施し、その間を1周期とする。
【0035】
ところで、送信権は、完了フレームCFの送信によって次の送信権を持つコントローラノードへと移行するが、次に送信権を持つべきコントローラノードが一過性の異常等により完了フレームCFの受信に失敗すると、そのままでは完了フレーム受信のタイムアウト時間が経過するまで送信権の移行ができなくなる。
【0036】
そこで、本第1実施形態においては、前回の完了フレームCFの受信後、完了フレームCFの受信タイムアウト時間の検知用タイマをスタートしてから所定時間の経過時点(例えば、完了フレームCFの受信タイムアウト時間の1/2に相当する時間が経過したとき)に、同期コントローラノードから現在送信権を持つコントローラノードに対して催促フレームRFを送信する。
【0037】
図6は、催促フレームのデータフォーマットの一例の説明図である。
催促フレームRFは、
図6に示すように、催促フレームRFであることを表すフレーム種別情報FIとして機能する催促フレーム情報データ51と、当該催促フレームRFの送信対象である送信権を持っているコントローラノードを特定するための送信権ノード番号データ52と、当該催促フレームRFの送出時点で制御用通信ネットワーク10において存在(生存)が確認されている全てのコントローラノードを示すネットワーク生存ノードマップデータ53と、を備えている。
【0038】
催促フレームRFの送信権ノード番号データ52には、現在の送信権を持つコントローラノードのノード番号が格納されており、催促フレームRFを受信したコントローラノードは、現在の送信権を持つコントーラノードのノード番号をチェックする。
【0039】
そしてノード番号をチェックしたコントローラノードが当該ノード番号に該当するコントローラノードである場合、データフレームの送信(再送)を実施し、データフレームの送信後に完了フレームCFを送信する。
【0040】
図7は、第1実施形態の動作説明図である。
図7においては、理解の容易のため同期コントローラノード11-1(図中、CN11-1と表記)、コントローラノード11-2(図中、CN11-2と表記)及びコントローラノード11-3(図中、CN11-3と表記)のみを示しており、送信権は、コントローラノード11-1→コントローラノード11-2→コントローラノード11-3の順番で移ってゆくものとする。
【0041】
図7に示すように、同期ノードとしてのコントローラノード11-1は、動作周期の先頭で、同期フレームデータSFを送信し、この同期フレームデータの送信タイミングに同期して、データフレームDF1及び当該データフレームDF1の送信が完了したことを示す完了フレームCF1を送信する。
【0042】
これにより、コントローラノード11-2は、完了フレームCF1を受信すると、次の送信権を有するのが自分であることを認識して、データフレームDF2及び当該データフレームDF2の送信が完了したことを示す完了フレームCF2を送信する。
【0043】
さらに、コントローラノード11-3は、完了フレームCF2を受信すると、次の送信権を有するのが自分であることを認識して、データフレームDF3及び当該データフレームDF3の送信が完了したことを示す完了フレームCF3を送信する。
これらの結果、正常にデータの送受信がなされることとなる。
【0044】
そして、再び送信権を獲得した同期ノードとしてのコントローラノード11-1は、動作周期の先頭で、同期フレームデータSFを送信し、以下同様に処理が継続することとなる。
【0045】
図8は、同期ノードとして機能するコントローラノードの同期ノード処理の処理フローチャートである。
以下においては、同期ノードとして機能するコントローラノードがコントローラノード11-1である場合を例として説明する。
【0046】
同期ノードとして機能するコントローラノード11-1は、同期フレームSFを送信する(ステップS11)。
これと同時にコントローラノード11-1は、次に送信権を有することとなるコントローラノードからの完了フレームの送信を待つ最大時間である完了タイムアウト時間のカウントを開始する。
【0047】
次にコントローラノード11-1は、現在送信権を持つコントローラノードから完了フレームを受信したか否かを判断する(ステップS12)。
ステップS12の判断において、完了フレームを受信した場合には(ステップS12;Yes)、現在送信権を持っていたコントローラノードの送信処理が完了したということであるので処理をステップS18に移行する。
【0048】
ステップS12の判断において、未だ完了フレームを受信していない場合には(ステップS12;No)、完了タイムアウト時間のうち所定の時間(
図8の例では、完了タイムアウトの半分の時間)が経過したか否かを判断する(ステップS13)。
ステップS13の判断において、未だ完了タイムアウト時間のうち所定の時間が経過していない場合には(ステップS13;No)、処理を再びステップS12に移行し、完了フレーム受信待ちとして待機状態となる。
【0049】
ステップS13の判断において、完了タイムアウト時間のうち所定の時間が経過した場合には(ステップS13;Yes)、現在送信権を有しているコントローラノードに対して、送信処理が完了した旨の完了フレームCFの送信(再送も含む)を要求するために催促フレームRFを送信する(ステップS14)。
【0050】
そして同期ノードとして機能するコントローラノード11-1は、送信権を持っているコントローラノードからの完了フレームCFを受信したか否かを判断する(ステップS15)。
ステップS15の判断において、完了フレームCFを受信した場合には、処理をステップS18に移行する。
【0051】
ステップS15の判断において、未だ完了フレームCFを受信していない場合には、コントローラノード11-1は、完了タイムアウト時間が経過したか否かを判断する(ステップS16)。
【0052】
ステップS16の判断において、未だ完了タイムアウト時間が経過していない場合には(ステップS16;No)、処理を再びステップS15に移行し、完了フレーム受信待ちとして待機状態となる。
【0053】
ステップS16の判断において、完了タイムアウト時間が経過した場合には(ステップS16;Yes)、現在送信権を有しているはずのコントローラノードから次に送信権を取得するはずのコントローラノードとなるように送信権情報を更新する(ステップS17)。
【0054】
そして全コントローラノードの送信処理が完了、あるいは、送信権情報の更新により全コントローラノードの送信処理が完了したと見なせる状態になったか否かを判断する(ステップS18)。
【0055】
ステップS18の判断において、未だ全コントローラノードの送信処理が未完了、あるいは、送信権情報の更新によっても全コントローラノードの送信処理が完了したと見なせない状態である場合には(ステップS18)、処理を再びステップS12に移行して、上述した処理を繰り返すこととなる。
【0056】
次にコントローラノードのデータフレーム送信動作について説明する。
図9は、コントローラノードのデータフレーム送信動作について説明する図(その1)である。
【0057】
図9は、いずれのコントローラノードも、催促フレームRFを受信した送信権を有するコントローラノードにより、当該催促フレームRFによるデータフレームDF及び完了フレームCFの送信によって送信権情報の更新は行わない場合の動作を表している。
【0058】
コントローラノードは、まず同期コントローラノードから同期フレームSFを受信したか否かを判断する(ステップS31)。
【0059】
ステップS31の判断において、同期コントローラノードから同期フレームSFを受信した場合には(ステップS31;Yes)、コントローラノードは、受信した同期フレームSFから送信権情報を作成する(ステップS32)。
続いてコントローラノードは、作成した送信権情報が自分の送信権であるか否かを判断する(ステップS33)。
【0060】
ステップS33の判断において、作成した送信権情報が自分の送信権であった場合には(ステップS33;Yes)、コントローラノードは、データフレームDFを生成し送信する(ステップS34)。
【0061】
続いてコントローラノードは、データフレームDFの送信が完了すると、完了フレームCFを生成し、送信して処理を終了する(ステップS35)。
【0062】
ステップS33の判断において、作成した送信権情報が自分の送信権ではない場合には(ステップS33;No)、コントローラノードは、送信権を有する他のコントローラノードから完了フレームを受信したか否かを判断する(ステップS36)。すなわち、送信権を有する他のコントローラがデータフレームの送信を完了した旨を通知しているか否かを判断する。
【0063】
ステップS36の判断において、送信権を有する他のコントローラノードから完了フレームを受信した場合には(ステップS36;Yes)、コントローラノードは、受信した完了フレームに含まれている送信ノード番号データ及びネットワーク生存ノードマップデータに基づいて、次に送信権を取得するコントローラノードが自分であるか否かを判断する(ステップS37)。
【0064】
ステップS37の判断において、次に送信権を取得するコントローラノードが自分ではない場合には、再び処理をステップS36に移行し、次に送信権を取得した他のコントローラノードからの完了フレームの受信を行うべく待機状態となる。
【0065】
ステップS37の判断において、次に送信権を取得するコントローラノードが自分である場合には(ステップS37;Yes)、コントローラノードは、データフレームを生成し送信する(ステップS34)。
【0066】
続いてコントローラノードは、データフレームの送信が完了すると、完了フレームを生成し、送信して処理を終了する(ステップS35)。
【0067】
ステップS36の判断において、未だ送信権を有する他のコントローラノードから完了フレームを受信していない場合には(ステップS36;No)、同期コントローラノードが未だ送信権を有するコントローラノードから完了フレームを受信していないことに起因して、同期コントローラノードが送信した催促フレームを受信したか否かを判断する(ステップS38)。
【0068】
ステップ38の判断において、同期コントローラノードからの催促フレームを受信した場合には(ステップS38;Yes)、コントローラノードは、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号であるか否かを判断する(ステップS39)。
【0069】
ステップS39の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号ではない場合には(ステップS39;No)、コントローラノードは、現在送信権を有しているはずのコントローラノード(=現在の送信権ノード)からの完了フレームの受信を待つべき時間であるとして、処理をステップS36に移行し、上述した処理を繰り返すこととなる。
【0070】
ステップS39の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号である場合には(ステップS39;Yes)、コントローラノードは、次に送信権を取得すべきであったコントローラノードが自分であったとして、あるいは、完了フレームCFが未達であったものとして、データフレームDFを生成し送信する(ステップS40)。
【0071】
続いてコントローラノードは、データフレームの送信が完了すると、完了フレームを生成し、送信して処理を終了する(ステップS41)。
【0072】
また、ステップ38の判断において、同期コントローラノードからの催促フレームを未だ受信していない場合には(ステップS38;No)、コントローラノードは、現在送信権を有しているはずのコントローラノード(=現在送信権ノード)からの完了フレームの受信を待つべき時間である完了タイムアウト時間が経過したか否かを判断する(ステップS42)。
【0073】
ステップS42の判断において、完了タイムアウト時間が経過した場合には、強制的に送信権を更新するタイミングに到ったと判断して、前回受信した同期フレームに基づいて次に送信権を取得するはずのコントローラノードに送信権が取得されたものとするために送信権情報を更新する(ステップS43)。
【0074】
続いてコントローラノードは、更新した送信権情報に基づいて、次に送信権を取得するコントローラノードが自分であるか否かを判断する(ステップS37)。
ステップS37の判断において、次に送信権を取得するコントローラノードが自分ではない場合には、再び処理をステップS36に移行し、次に送信権を取得した他のコントローラノードからの完了フレームの受信を行うべく待機状態となる。
【0075】
ステップS37の判断において、次に送信権を取得するコントローラノードが自分である場合には(ステップS37;Yes)、コントローラノードは、データフレームを生成し送信する(ステップS34)。
【0076】
ステップS42の判断において、未だ完了タイムアウト時間が経過していない場合には(ステップS42;No)、現在送信権を有しているはずのコントローラノード(=現在送信権ノード)からの完了フレームの受信を待つべき時間であるとして、処理をステップS36に移行し、上述した処理を繰り返すこととなる。
【0077】
また、ステップS31の判断において、未だ同期コントローラノードから同期フレームを受信していない場合には(ステップS31;No)、コントローラノードは、自分が同期フレームの受信に失敗した可能性もあるので、同期コントローラノードが送信した催促フレームを受信したか否かを判断する(ステップS44)。
【0078】
ステップ44の判断において、同期コントローラノードからの催促フレームを受信した場合には(ステップS44;Yes)、コントローラノードは、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号であるか否かを判断する(ステップS45)。
【0079】
ステップS45の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号ではない場合には(ステップS45;No)、コントローラノードは、同期コントローラノードからの同期フレームの受信を待つべき時間であるとして、処理をステップS31に移行し、上述した処理を繰り返すこととなる。
【0080】
ステップS45の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号である場合には(ステップS45;Yes)、コントローラノードは、次に送信権を取得すべきであったコントローラノードが自分であったとして、受信した催促フレームRFから送信権情報を作成する(ステップS46)。
そして、コントローラノードは、データフレームDFを生成し送信する(ステップS40)。
【0081】
続いてコントローラノードは、データフレームの送信が完了すると、完了フレームを生成し、送信して処理を終了する(ステップS41)。
以上の説明のように、
図9に示した様な動作によれば、送信権を獲得しているはずのコントローラノードが送信権を獲得していないとして処理を行っているか、あるいは、完了フレームCFの不達となっている場合には、同期ノードとして機能しているコントローラノードからの催促フレームを受信することにより、完了タイムアウト時間が経過を待つことなくデータフレーム及び完了フレームの送信を行うことができるので、一過性の異常等による制御周期に対する影響を抑制しつつ、インプリシット・トークンパッシングを継続することができる。
【0082】
次にコントローラノードのデータフレーム送信動作の他の動作について説明する。
以下の説明においては、
図9の動作の場合と異なり、催促フレームRFを受信した送信権を有するコントローラノードにより、当該催促フレームRFによるデータフレームDF及び完了フレームCFの送信によって送信権情報の更新を行う場合の動作を表している。
【0083】
図10は、完了フレームCFの第2の例の説明図である。
図10において、
図5と同様の部分には、同一の符号を付すものとする。
第2の例の完了フレームCFは、完了フレームCFであることを表すフレーム種別情報FIとして機能する完了フレーム情報データ41と、当該完了フレームCFの送信元のコントローラノードを特定するためのノード番号データが格納された送信ノード番号データ42と、当該完了フレームCFの送信を行うこととなった催促フレームを特定するための催促フレーム対応識別符号データ44と、当該完了フレームの送出時点で制御用通信ネットワーク10に存在(生存)していると認識している全てのコントローラノードを示すネットワーク生存ノードマップデータ43と、を備えている。
【0084】
図11は、コントローラノードのデータフレーム送信動作について説明する図(その2)である。
コントローラノードは、まず同期コントローラノードから同期フレームを受信したか否かを判断する(ステップS51)。
【0085】
ステップS51の判断において、同期コントローラノードから同期フレームを受信した場合には(ステップS51;Yes)、コントローラノードは、受信した同期フレームから送信権情報を作成する(ステップS52)。
続いてコントローラノードは、作成した送信権情報が自分の送信権であるか否かを判断する(ステップS53)。
【0086】
ステップS53の判断において、作成した送信権情報が自分の送信権であった場合には(ステップS53;Yes)、コントローラノードは、データフレームを生成し送信する(ステップS54)。
続いてコントローラノードは、データフレームの送信が完了すると、完了フレームを生成し、送信して処理を終了する(ステップS55)。
【0087】
ステップS53の判断において、作成した送信権情報が自分の送信権ではない場合には(ステップS53;No)、コントローラノードは、送信権を有する他のコントローラノードから完了フレームを受信したか否かを判断する(ステップS56)。すなわち、送信権を有する他のコントローラがデータフレームの送信を完了した旨を通知しているか否かを判断する。
【0088】
ステップS56の判断において、送信権を有する他のコントローラノードから完了フレームを受信した場合には(ステップS56;Yes)、コントローラノードは、受信した完了フレームに催促フレーム対応識別符号データ44が含まれているか否かを判断する(ステップS57)。
【0089】
ステップS57の判断において、受信した完了フレームに催促フレーム対応識別符号データが含まれていない場合には(ステップS57;No)、処理をステップS58に移行する。
【0090】
ステップS57の判断において、受信した完了フレームに対応識別符号データが含まれていた場合には(ステップS57;Yes)、当該完了フレームに基づいて次に送信権を取得するはずのコントローラノードに送信権が取得されたものとするために送信権情報を更新する(ステップS59)。
【0091】
続いて、コントローラノードは、完了フレームに含まれている送信ノード番号データ及びネットワーク生存ノードマップデータに基づいて、次に送信権を取得するコントローラノードが自分であるか否かを判断する(ステップS58)。
【0092】
ステップS58の判断において、次に送信権を取得するコントローラノードが自分ではない場合には、再び処理をステップS56に移行し、次に送信権を取得した他のコントローラノードからの完了フレームの受信を行うべく待機状態となる。
【0093】
ステップS58の判断において、次に送信権を取得するコントローラノードが自分である場合には(ステップS58;Yes)、コントローラノードは、データフレームを生成し送信する(ステップS54)。
続いてコントローラノードは、データフレームの送信が完了すると、完了フレームを生成し、送信して処理を終了する(ステップS55)。
【0094】
またステップS56の判断において、未だ送信権を有する他のコントローラノードから完了フレームを受信していない場合には(ステップS56;No)、同期コントローラノードが未だ送信権を有するコントローラノードから完了フレームを受信していないことに起因して、同期コントローラノードが送信した催促フレームを受信したか否かを判断する(ステップS60)。
【0095】
ステップ60の判断において、同期コントローラノードからの催促フレームを受信した場合には(ステップS60;Yes)、コントローラノードは、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号であるか否かを判断する(ステップS61)。
【0096】
ステップS61の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号ではない場合には(ステップS39;No)、コントローラノードは、現在送信権を有しているはずのコントローラノード(=現在送信権ノード)からの完了フレームの受信を待つべき時間であるとして、処理を再びステップS56に移行し、上述した処理を繰り返すこととなる。
【0097】
ステップS61の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号である場合には(ステップS61;Yes)、コントローラノードは、次に送信権を取得すべきであったコントローラノードが自分であったとして、データフレームを生成し送信する(ステップS62)。
そして、コントローラノードは、受信した催促フレームRFに対応する催促フレーム対応識別符号データをセットした完了フレームCFを生成する(ステップS63)。
続いてコントローラノードは、生成した完了フレームを送信して処理を終了する(ステップS64)。
【0098】
また、ステップ60の判断において、同期コントローラノードからの催促フレームを未だ受信していない場合には(ステップS60;No)、コントローラノードは、現在送信権を有しているはずのコントローラノード(=現在送信権ノード)からの完了フレームの受信を待つべき時間である完了タイムアウト時間が経過したか否かを判断する(ステップS65)。
【0099】
ステップS65の判断において、完了タイムアウト時間が経過した場合には(ステップS65;Yes)、強制的に送信権を更新するタイミングに到ったと判断して、前回受信した同期フレームSFに基づいて次に送信権を取得するはずのコントローラノードに送信権が取得されたものとするために送信権情報を更新する(ステップS66)。
【0100】
続いてコントローラノードは、更新した送信権情報に基づいて、次に送信権を取得するコントローラノードが自分であるか否かを判断する(ステップS58)。
ステップS58の判断において、次に送信権を取得するコントローラノードが自分ではない場合には、再び処理をステップS56に移行し、次に送信権を取得した他のコントローラノードからの完了フレームの受信を行うべく待機状態となる。
【0101】
ステップS58の判断において、次に送信権を取得するコントローラノードが自分である場合には(ステップS58;Yes)、コントローラノードは、データフレームを生成し送信する(ステップS54)。
【0102】
ステップS65の判断において、未だ完了タイムアウト時間が経過していない場合には(ステップS65;No)、現在送信権を有しているはずのコントローラノード(=現在送信権ノード)からの完了フレームの受信を待つべき時間であるとして、処理を再びステップS56に移行し、上述した処理を繰り返すこととなる。
【0103】
また、ステップS51の判断において、未だ同期コントローラノードから同期フレームを受信していない場合には(ステップS51;No)、コントローラノードは、自分が同期フレームの受信に失敗した可能性もあるので、同期コントローラノードが送信した催促フレームを受信したか否かを判断する(ステップS67)。
【0104】
ステップ67の判断において、同期コントローラノードからの催促フレームを受信した場合には(ステップS67;Yes)、コントローラノードは、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号であるか否かを判断する(ステップS68)。
【0105】
ステップS68の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号である場合には(ステップS68;Yes)、コントローラノードは、受信した催促フレームから送信権情報を作成し(ステップS69)、処理をステップS62に移行して、以下上述したのと同様の処理を繰り返すこととなる。
【0106】
ステップS67の判断において、未だ同期コントローラノードからの催促フレームRFを受信していない場合(ステップS67;No)及びステップS68の判断において、催促フレームに含まれる送信権ノード番号が自分に該当する送信権ノード番号ではない場合には(ステップS68;No)、送信権を有する他のコントローラノードから完了フレームを受信したか否かを判断する(ステップS70)。
【0107】
ステップS70の判断において、送信権を有する他のコントローラノードから完了フレームを受信した場合には(ステップS70;Yes)、コントローラノードは、受信した完了フレームに催促フレーム対応識別符号データが含まれているか否かを判断する(ステップS71)。
【0108】
ステップS71の判断において、受信した完了フレームCFに催促フレーム対応識別符号データが含まれていない場合には(ステップS57;No)、処理をステップS51に移行する。
【0109】
ステップS71の判断において、受信した完了フレームCFに対応識別符号データが含まれていた場合には(ステップS71;Yes)、当該完了フレームCFに基づいて次に送信権を取得するはずのコントローラノードに送信権が取得されたものとするために送信権情報を更新し(ステップS72)、処理を再びステップS58に移行して、以下、上述した処理と同様の処理を繰り返すこととなる。
【0110】
以上の説明のように、
図11に示した様な動作によっても、送信権を獲得しているはずのコントローラノードが送信権を獲得していないとして処理を行っているか、あるいは、完了フレームCFの不達となっている場合には、同期ノードとして機能しているコントローラノードからの催促フレームを受信することにより、完了タイムアウト時間が経過を待つことなくデータフレーム及び完了フレームの送信を行うことができるので、一過性の異常等による制御周期に対する影響を抑制しつつ、インプリシット・トークンパッシングを継続することができる。
【0111】
さらに
図9に示した様な動作と比較して、完了フレームCFには、対応する催促フレームRFに対応する完了フレームCFであることを識別可能な催促フレーム対応識別符号データが含まれているため、当該完了フレームの受信により確実に送信権情報の更新を行うことができ、より信頼性を確保することができる。
【0112】
[2]第2実施形態
上記第1実施形態においては、いずれかのコントローラノードが完了フレームCFを受信できないことによる送信権の移行未完及び制御周期に対する影響に対応するものであったが、本第2実施形態は、同期コントローラノードからの同期フレームの受信に失敗したことによるフレームの送信不能及びデータ損失を低減するためのものである。
【0113】
ネットワーク内のコントローラノードが、同期コントローラノードからの同期フレームSFの受信に失敗した場合を想定する。
この場合、同期フレームSFの受信に失敗したコントローラノードは、インプリシット・トークンパッシングの開始自体が行えず、当該周期において、データフレームDF及び完了フレームCFを送信することができない。
【0114】
ネットワーク内の一つのコントローラノードが同期フレームSFの受信に失敗した場合は、第1実施形態と同様に、同期コントローラノードからの催促フレームRFを受信することで、送信権を取得して、送信権の巡回に加わることができる。
【0115】
次にネットワーク内の複数のコントローラノードが同期フレームSFの受信に失敗した場合を考える。
図12は、複数のコントローラノードが同期フレームの受信に失敗した場合の説明図である。
図12においては、コントローラノード11-2、コントローラノード11-3が同期フレームの受信に失敗した場合の例を示している。
【0116】
このとき、コントローラノード11-2は、同期フレームSFの受信に失敗しているため、自己がインプリシット・トークンパッシングに参加しているとは認識していない。このため、コントローラノード11-1の完了フレーム受信後、同期コントローラノードからの催促フレームRFを受信するまで、コントローラノード11-2はデータフレームDFを送信しない。
【0117】
コントローラノード11-3も同様に、同期フレームSFの受信に失敗しているため、自己がインプリシット・トークンパッシングに参加しているとは認識していない。このため、コントローラノード11-2の完了フレーム受信後、同期コントローラノードからの催促フレームRFを受信するまでデータフレームDFを送信しない。
【0118】
したがって、上述した第1実施形態の手法によれば、ネットワーク内で同期フレームの受信に失敗するノードが同一周期で複数存在する場合、催促フレームによってトークンの巡回をすることはできるが、結果として完了タイムアウト時間と同等かそれ以上の時間がかかることがあり、制御周期への影響を抑制することができない。
【0119】
このため、本第2実施形態においては、催促フレームRFを受信したコントローラノード(上述の例の場合、コントローラノード11-2、11-3)は、完了フレームCFに含まれる催促フレーム受信識別子データ43をセットし、さらに自身が持つ、ネットワーク内のノードの送信権情報を完了フレームCF内の送信権ノード情報45にコピーし、完了フレームCFを送信するようにしている。
【0120】
一方、完了フレームCFを受信した各コントローラノードは、催促フレーム受信識別子データ43をチェックし、“1”となっていれば完了フレームCF内の送信権ノード情報45を自身のメモリ22内に持つネットワーク参入ノードマップデータ23にコピーする。これにより、ネットワーク参入ノードマップデータ23が更新されていないコントローラノード、つまり同期フレームSFの受信に失敗し、自身が持つネットワーク参入ノードマップデータ23を更新できていないコントローラノードは、ここで自身が持つネットワーク参入ノードマップデータ23を更新し、送信権の取得待ち状態となることができる。
【0121】
これにより、同期フレームSFを受信した状態と同様な状態になることができるため、自身の前に送信権を持つコントローラノードの完了フレームCFを受信した段階で、データ送信を開始することができる。
【0122】
したがって、コントローラノード11-3は、コントローラノード11-2の完了フレームCFの受信後、催促フレームRFの受信を待つことなく、データフレームDFの送信が可能となる。
【0123】
これにより、複数ノードが同期フレームSFの受信に失敗した場合でも、同期コントローラノードが一つのコントローラノードに対して、催促フレームRFを送信するだけで、周期内のデータ欠損がなく、制御周期に与える影響も最小限にとどめることができる。
【0124】
本実施形態の伝送装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、各種入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0125】
本実施形態の伝送装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、USBメモリ、メモリカード、SSD(Solid State Drive)等の半導体メモリ装置、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【0126】
また、本実施形態の伝送装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施形態の伝送装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施形態の伝送装置で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
【0127】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。