IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ パナソニックIPマネジメント株式会社の特許一覧

特許7745138通信システム、スレーブ、コントローラ、および、通信方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-09-18
(45)【発行日】2025-09-29
(54)【発明の名称】通信システム、スレーブ、コントローラ、および、通信方法
(51)【国際特許分類】
   H04L 43/0811 20220101AFI20250919BHJP
   H04L 41/0663 20220101ALI20250919BHJP
   H04L 12/423 20060101ALI20250919BHJP
   H04L 12/437 20060101ALI20250919BHJP
【FI】
H04L43/0811
H04L41/0663
H04L12/423
H04L12/437 P
【請求項の数】 13
(21)【出願番号】P 2023500580
(86)(22)【出願日】2021-12-20
(86)【国際出願番号】 JP2021046949
(87)【国際公開番号】W WO2022176370
(87)【国際公開日】2022-08-25
【審査請求日】2024-10-04
(31)【優先権主張番号】P 2021024540
(32)【優先日】2021-02-18
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】314012076
【氏名又は名称】パナソニックIPマネジメント株式会社
(74)【代理人】
【識別番号】100106116
【弁理士】
【氏名又は名称】鎌田 健司
(74)【代理人】
【識別番号】100157484
【弁理士】
【氏名又は名称】廣田 智之
(72)【発明者】
【氏名】境 隼太
(72)【発明者】
【氏名】久畑 篤紀
(72)【発明者】
【氏名】三島 雅史
【審査官】長濱 美紗
(56)【参考文献】
【文献】特開2005-333505(JP,A)
【文献】特開2012-019437(JP,A)
【文献】特開平05-268236(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
(57)【特許請求の範囲】
【請求項1】
第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を有するコントローラと、各々が、第3の入出力ポートと第4の入出力ポートと、スレーブ送信制御部と、検出部と、を有する、第1のスレーブ~第Nのスレーブ(Nは2以上の整数)とを備え、
前記第1の入出力ポートと、前記第1のスレーブが有する前記第4の入出力ポートとが接続され、
前記第Nのスレーブが有する前記第3の入出力ポートと、前記第2の入出力ポートとが接続され、
任意のK(Kは2以上N以下の整数)において、第K-1のスレーブが有する前記第3の入出力ポートと、第Kのスレーブが有する前記第4の入出力ポートとが接続され、
前記コントローラ送信制御部は、通常フレームを生成して送信し、断線ノード通知フレームを受信し、第1のコントローラ動作モードと、第2のコントローラ動作モードと、を実行し、
前記第1のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートから繰り返し送信し、
前記第2のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信し、
前記スレーブ送信制御部は、前記通常フレームを送信および受信し、前記断線ノード通知フレームを生成するとともに前記断線ノード通知フレームを送信および受信し、第1のスレーブ動作モードと、第2のスレーブ動作モードと、を実行し、
前記第1のスレーブ動作モードは、前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが前記通常フレームを受信すると、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから前記通常フレームを送信し、
前記第2のスレーブ動作モードは、前記一方の入出力ポートが前記通常フレームを受信すると、前記一方の入出力ポートから前記通常フレームを送信し、
前記検出部は、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出し、
前記スレーブ送信制御部は、さらに前記第1のスレーブ動作モードで動作している場合に、前記検出部が、前記第3の入出力ポートの接続に係る異常、または、前記第4の入出力ポートの接続に係る異常を検出したとき、
前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替えると共に、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試み、
前記断線ノード通知フレームを前記一方の入出ポートが受信すると、前記他方の入出力ポートから前記断線ノード通知フレームを送信し、
前記コントローラ送信制御部は、さらに前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える、
通信システム。
【請求項2】
前記断線ノード通知フレームは、0以上の整数値を示すノードカウント値を含み、
前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、
(1)前記検出部が、前記一方の入出力ポートの接続に係る異常を検出したときに、前記一方の入出力ポートから、0を示すノードカウント値を含む前記断線ノード通知フレームの送信を試み、前記他方の入出力ポートから、1を示すノードカウント値を含む前記断線ノード通知フレームの送信を試み、
(2)前記一方の入出力ポートが、0を示すノードカウント値を含む前記断線ノード通知フレームを受信すると、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替え、
前記一方の入出ポートが前記断線ノード通知フレームを受信すると、前記断線ノード通知フレームに含まれるノードカウント値に1を加えたノードカウント値を含む前記断線ノード通知フレームを、前記他方の入出力ポートから送信し、
前記コントローラは、前記第1の入出力ポートおよび前記第2の入出力ポートが前記断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した前記断線ノード通知フレームに含まれるノードカウント値と、前記第2の入出力ポートが受信した前
記断線ノード通知フレームに含まれるノードカウント値とに基づいて、異常の発生位置を特定する異常位置判定部をさらに有する、
請求項1に記載の通信システム。
【請求項3】
前記第1のスレーブ~前記第Nのスレーブの各々は、前記第3の入出力ポートまたは前記第4の入出力ポートが通常フレームを受信するタイミングに基づいて、前記第1のスレーブ~前記第Nのスレーブが同期して動作する同期タイミングを示す同期タイミング信号を算出する同期タイミング算出部をさらに有し、
前記同期タイミング算出部は、前記通常フレームを受信する側の入出力ポートで前記断線ノード通知フレームを受信した場合、および、前記検出部が、前記通常フレームを受信する側の入出力ポートの接続に係る異常を検出した場合に、前記通常フレームを、当該入出力ポートではない入出力ポートが受信するときに、前記同期タイミングが変わらないように、前記同期タイミング信号を算出する算出方法を更新する、
請求項2に記載の通信システム。
【請求項4】
前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、前記検出部が、前記第3の入出力ポートの接続に係る異常、または、前記第4の入出力ポートの接続に係る異常を検出したときに送信を試みる前記断線ノード通知フレームに、前記スレーブ送信制御部を含むスレーブのMACIDを含ませ、
前記コントローラは、前記第1の入出力ポートおよび前記第2の入出力ポートが前記断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した前記断線ノード通知フレームに含まれるMACIDと、前記第2の入出力ポートが受信した前記ノード通知フレームに含まれるMACIDとに基づいて、異常の種類に係る判定を行う異常種類判定部をさらに有する、
請求項1から請求項3のいずれか一項に記載の通信システム。
【請求項5】
前記検出部は、さらに、前記第3の入出力ポートの接続に係る異常の回復、および、前記第4の入出力ポートの接続に係る異常の回復を検出し、
前記スレーブ送信制御部は、
前記第2のスレーブ動作モードで動作している場合に、前記検出部が、前記第3の入出力ポートの接続に係る異常の回復、または、前記第4の入出力ポートの接続に係る異常の回復を検出したときに、動作モードを前記第2のスレーブ動作モードから前記第1のスレーブ動作モードに切り替えると共に、前記第3の入出力ポートと前記第4の入出力ポートとから前記断線ノード通知フレームを送信し、
前記コントローラ送信制御部は、前記第2のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第2のコントローラ動作モードから前記第1のコントローラ動作モードに切り替える、
請求項1から請求項4のいずれか一項に記載の通信システム。
【請求項6】
第1の入出力ポートと、
第2の入出力ポートと、
スレーブ送信制御部と、
検出部と、を備え、
前記スレーブ送信制御部は、通常フレームを送信および受信し、断線ノード通知フレームを生成するとともに前記断線ノード通知フレームを送信および受信し、第1のスレーブ動作モードと、第2のスレーブ動作モードと、を実行し、
前記第1のスレーブ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとのうちの一方の入出力ポートが受信すると、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとのうちの他方の入出力ポートか
ら送信し、
前記第2のスレーブ動作モードは、前記通常フレームを、前記一方の入出力ポートが受信すると、前記通常フレームを、前記一方の入出力ポートから送信し、
前記検出部は、前記第1の入出力ポートの接続に係る異常、および、前記第の入出力ポートの接続に係る異常を検出し、
前記スレーブ送信制御部は、さらに前記第1のスレーブ動作モードで動作している場合に、前記検出部が、前記第1の入出力ポートの接続に係る異常、または、前記第2の入出力ポートの接続に係る異常を検出したとき、
前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替えると共に、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第1の入出力ポートと前記第2の入出力ポートとから前記断線ノード通知フレームの送信を試み、
前記断線ノード通知フレームを前記一方の入出ポートが受信すると、前記断線ノード通知フレームを、前記他方の入出力ポートから送信する、
スレーブ。
【請求項7】
前記断線ノード通知フレームは、0以上の整数値を示すノードカウント値を含み、
前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、
(1)前記検出部が、前記第1の入出力ポートの接続に係る異常を検出したときに、前記一方の入出力ポートから、0を示すノードカウント値を含む前記断線ノード通知フレームの送信を試み、前記他方の入出力ポートから、1を示すノードカウント値を含む前記断線ノード通知フレームの送信を試み、
(2)前記一方の入出力ポートが、0を示すノードカウント値を含む前記断線ノード通知フレームを受信すると、動作モードを前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替え、
前記一方の入出ポートが前記断線ノード通知フレームを受信すると、前記断線ノード通知フレームに含まれるノードカウント値に1を加えたノードカウント値を含む断線ノード通知フレームを、前記他方の入出力ポートから送信する、
請求項6に記載のスレーブ。
【請求項8】
前記第1の入出力ポートまたは前記第2の入出力ポートが通常フレームを受信するタイミングに基づいて、同期タイミングを示す同期タイミング信号を算出する同期タイミング算出部をさらに有し、
前記同期タイミング算出部は、通常フレームを受信する側の入出力ポートで前記断線ノード通知フレームを受信した場合、および、前記検出部が、前記通常フレームを受信する側の入出力ポートの接続に係る異常を検出した場合に、前記通常フレームを、前記入出力ポートではない入出力ポートが受信するときに、前記同期タイミングが変わらないように、前記同期タイミング信号を算出する算出方法を更新する、
請求項7に記載のスレーブ。
【請求項9】
前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、
前記検出部が、前記第1の入出力ポートの接続に係る異常、または、前記第2の入出力ポートの接続に係る異常を検出したときに、
送信を試みる前記断線ノード通知フレームに、前記スレーブ送信制御部を含むスレーブのMACIDを含ませる、
請求項6から請求項8のいずれか一項に記載のスレーブ。
【請求項10】
前記検出部は、さらに、前記第1の入出力ポートの接続に係る異常の回復、および、前記第2の入出力ポートの接続に係る異常の回復を検出し、
前記スレーブ送信制御部は、
前記第2のスレーブ動作モードで動作している場合に、
前記検出部が、前記第1の入出力ポートの接続に係る異常の回復、または、前記第2の入出力ポートの接続に係る異常の回復を検出したときに、
前記第2のスレーブ動作モードから前記第1のスレーブ動作モードに切り替えると共に、前記第1の入出力ポートと前記第2の入出力ポートとから前記断線ノード通知フレームを送信する
請求項6から請求項9のいずれか一項に記載のスレーブ。
【請求項11】
第1の入出力ポートと、
第2の入出力ポートと、
コントローラ送信制御部と、を備え、
前記コントローラ送信制御部は、通常フレームを生成して送信し、断線ノード通知フレームを受信し、第1のコントローラ動作モードと、第2のコントローラ動作モードと、を実行し、
前記第1のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートから繰り返し送信し、
前記第2のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信し、
前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが、接続状態の変化を検出した旨を示す断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える、
コントローラにおいて、
前記断線ノード通知フレームには、MACIDが含まれ、
前記第1の入出力ポートおよび前記第2の入出力ポートが前記断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した前記断線ノード通知フレームに含まれるMACIDと、前記第2の入出力ポートが受信した前記断線ノード通知フレームに含まれるMACIDとに基づいて、異常の種類に係る判定を行う異常種類判定部をさらに有する、
コントローラ。
【請求項12】
前記第2のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが、断線ノード通知フレームを受信すると、動作モードを前記第2のコントローラ動作モードから前記第1のコントローラ動作モードに切り替える、
請求項11に記載のコントローラ。
【請求項13】
第1の入出力ポートと第2の入出力ポートとコントローラ送信制御部とを有するコントローラと、第3の入出力ポートと第4の入出力ポートとスレーブ送信制御部と検出部とを有する、第1のスレーブ第Nのスレーブ(Nは2以上の整数)とを備え、
前記第1の入出力ポートと、前記第1のスレーブにおける前記第4の入出力ポートとが接続され、前記第Nのスレーブにおける前記第3の入出力ポートと、前記第2の入出力ポートとが接続され、任意のK(Kは2以上N以下の整数)において、第K-1のスレーブにおける前記第3の入出力ポートと、第Kのスレーブにおける前記第4の入出力ポートとが接続される、通信システムが行う通信方法であって、
前記コントローラ送信制御部において、通常フレームが生成されて送信され、断線ノード通知フレームが受信され、第1のコントローラ動作モードと第2のコントローラ動作モードが実行され、
前記第1のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートから繰り返し送信し、
前記第2のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信し、
前記第1のスレーブ前記第Nのスレーブの各々において、
前記スレーブ送信制御部が、
第1のスレーブ動作モードにおいて、前記通常フレームを、前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが受信すると、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから前記通常フレームを送信し、
第2のスレーブ動作モードにおいて、前記通常フレームを、前記一方の入出力ポートが受信すると、前記一方の入出力ポートから前記通常フレームを送信し、
前記検出部が、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出し、
前記スレーブ送信制御部が、さらに前記第1のスレーブ動作モードで動作している場合に、前記検出部が、前記第3の入出力ポートの接続に係る異常、または、前記第4の入出力ポートの接続に係る異常を検出したときに、
前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替えると共に、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試み、
前記断線ノード通知フレームを前記一方の入出力ポートが受信すると、前記他方の入出力ポートから前記断線ノード通知フレームを送信し、
前記コントローラ送信制御部が、前記第1のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える、
通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信システムに関する。
【背景技術】
【0002】
特許文献1には、コントローラと複数のスレーブとがリング状に接続された通信システムについて記載されている。この通信システムは、コントローラから複数のスレーブに、定期的に、ブロードキャストでネットワーク存在フレームを送信することで、ネットワークの接続状況を確認する。そして、その確認結果に基づいて、フレームの送信経路を変更する。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開WO2010/143305号
【発明の概要】
【0004】
上記従来の通信システムでは、ネットワーク存在フレームを送信するタイミングでしか、ネットワークの接続状況を確認できない。このため、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでに、ある程度長い時間がかかってしまうことがある。
【0005】
そこで、本開示は、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる通信システム等を提供することを目的とする。
【0006】
本開示の一態様に係る通信システムは、コントローラと、第1のスレーブ~第Nのスレーブ(Nは2以上の整数)と、を備える通信システムである。前記コントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を有する。前記第1のスレーブ~前記第Nのスレーブの各々は、第3の入出力ポートと、第4の入出力ポートと、スレーブ送信制御部と、検出部と、を有する。前記第1の入出力ポートと、前記第1のスレーブが有する前記第4の入出力ポートとが接続される。前記第Nのスレーブが有する前記第3の入出力ポートと、前記第2の入出力ポートとが接続される。任意のK(Kは2以上N以下の整数)において、第K-1のスレーブが有する前記第3の入出力ポートと、第Kのスレーブが有する前記第4の入出力ポートとが接続される。前記コントローラ送信制御部は、通常フレームを生成して送信し、断線ノード通知フレームを受信し、第1のコントローラ動作モードと、第2のコントローラ動作モードと、を実行する。前記第1のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートから繰り返し送信する。前記第2のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する。前記スレーブ送信制御部は、前記通常フレームを送信および受信し、前記断線ノード通知フレームを生成するとともに前記断線ノード通知フレームを送信および受信し、第1のスレーブ動作モードと、第2のスレーブ動作モードと、を実行する。第1のスレーブ動作モードは、前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが前記通常フレームを受信すると、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから前記通常フレームを送信する。第2のスレーブ動作モードは、前記一方の入出力ポートが前記通常フレームを受信すると、前記一方の入出力ポートから前記通常フレームを送信する。前記検出部は、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、前記検出部が前記第3の入出力ポートの接続に係る異常または前記第4の入出力ポートの接続に係る異常を検出したとき、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。また、前記スレーブ送信制御部は、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試みる。それとともに、前記スレーブ送信制御部は、前記一方の入出ポートが前記断線ノード通知フレームを受信すると、前記他方の入出力ポートから前記断線ノード通知フレームを送信する。前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0007】
本開示の他の一態様に係るスレーブは、第1の入出力ポートと、第2の入出力ポートと、スレーブ送信制御部と、検出部と、を備える。前記スレーブ送信制御部は、通常フレームを送信および受信し、断線ノード通知フレームを生成するとともに前記断線ノード通知フレームを送信および受信し、第1のスレーブ動作モードと、第2のスレーブ動作モードと、を実行する。前記第1のスレーブ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとのうちの一方の入出力ポートが受信すると、当該通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとのうちの他方の入出力ポートから送信する動作モードである。前記第2のスレーブ動作モードは、前記通常フレームを、前記一方の入出力ポートが受信すると、当該通常フレームに基づく通常フレームを、前記一方の入出力ポートから送信する動作モードである。前記検出部は、前記第1の入出力ポートの接続に係る異常、および、前記第2の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、前記検出部が前記第1の入出力ポートの接続に係る異常または前記第2の入出力ポートの接続に係る異常を検出したときに、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。また、前記スレーブ送信制御部は、前記第1の入出力ポートと前記第2の入出力ポートとから接続状態の変化を検出した旨を示す断線ノード通知フレームの送信を試みる。それとともに、前記スレーブ送信制御部は、前記断線ノード通知フレームを前記一方の入出ポートが受信すると、当該断線ノード通知フレームを、前記他方の入出力ポートから送信する。
【0008】
本開示の他の一態様に係るコントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を備える。前記コントローラ送信制御部は、通常フレームを生成して送信し、第1のコントローラ動作モードと、第2のコントローラ動作モードと、を実行する。前記第1のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートから繰り返し送信する動作モードである。前記第2のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する動作モードである。前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが、接続状態の変化を検出した旨を示す断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0009】
本開示の他の一態様に係る通信方法は、通信システムが行う通信方法である。前記通信システムは、コントローラと、第1のスレーブ~第Nのスレーブ(Nは2以上の整数)と、を備える。前記コントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を有する。前記第1のスレーブ~第Nのスレーブの各々は、第3の入出力ポートと、第4の入出力ポートと、スレーブ送信制御部と、検出部と、を有する。
前記第1の入出力ポートと、前記第1のスレーブが有する前記第4の入出力ポートとが接続される。前記第Nのスレーブが有する前記第3の入出力ポートと、前記第2の入出力ポートとが接続される。任意のK(Kは2以上N以下の整数)において、第K-1のスレーブが有する前記第3の入出力ポートと、第Kのスレーブが有する前記第4の入出力ポートとが接続される。前記通信方法は、前記コントローラ送信制御部が、前記通常フレームを生成し、前記第1のコントローラ動作モードにおいて、前記通常フレームを前記第1の入出力ポートから繰り返し送信し、前記第2のコントローラ動作モードにおいて、前記通常フレームを前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する。前記第1のスレーブ~前記第Nのスレーブの各々の前記スレーブ送信制御部は、前記第1のスレーブ動作モードにおいて、前記通常フレームを前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが受信すると、当該通常フレームを、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから送信する。また、前記スレーブ送信制御部は、前記第2のスレーブ動作モードにおいて、前記通常フレームを、前記一方の入出力ポートが受信すると、当該通常フレームを、前記一方の入出力ポートから送信する。前記検出部は、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、前記検出部が前記第3の入出力ポートの接続に係る異常または前記第4の入出力ポートの接続に係る異常を検出したときに、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。それと共に前記スレーブ送信制御部は、接続状態の変化を検出した旨を示す断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試みる。そして前記スレーブ送信制御部は、前記断線ノード通知フレームを前記一方の入出ポートが受信すると、当該断線ノード通知フレームに基づく断線ノード通知フレームを、前記他方の入出力ポートから送信する。前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0010】
本開示の上記態様に係る通信システム、スレーブ、コントローラ、および、通信方法によれば、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【図面の簡単な説明】
【0011】
図1図1は、実施の形態1に係る通信システムの構成の一例を示すブロック図である。
図2図2は、実施の形態1に係るコントローラの構成の一例を示すブロック図である。
図3図3は、実施の形態1に係るスレーブの構成の一例を示すブロック図である。
図4図4は、通常フレームの送信経路を示す模式図である。
図5図5は、通常フレームの送受信タイミングと同期タイミング信号の動作タイミングとを示すタイミングチャートである。
図6図6は、通常フレームの送信経路を示す模式図である。
図7図7は、通常フレームの送受信タイミングと同期タイミング信号の動作タイミングとを示すタイミングチャートである。
図8図8は、実施の形態1に係るケーブルにケーブル断線異常が発生した様子を示す模式図である。
図9図9は、実施の形態1に係る第1の動作のシーケンス図である。
図10図10は、実施の形態1に係るTXファイ端子にファイ端子異常が発生した様子を示す模式図である。
図11図11は、実施の形態1に係る第2の動作のシーケンス図である。
図12図12は、実施の形態1に係るRXファイ端子にファイ端子異常が発生した様子を示す模式図である。
図13図13は、実施の形態1に係る第3の動作のシーケンス図である。
図14図14は、通常フレームの送信経路を示す模式図である。
図15図15は、実施の形態1に係るケーブルのケーブル断線異常が回復した様子を示す模式図である。
図16図16は、実施の形態1に係る第4の動作のシーケンス図である。
図17図17は、実施の形態1に係るスレーブの動作を示すフローチャートである。
図18図18は、実施の形態1に係るスレーブの動作を示すフローチャートである。
図19図19は、実施の形態1に係るコントローラの動作を示すフローチャートである。
図20図20は、実施の形態2に係るコントローラの構成の一例を示すブロック図である。
図21図21は、実施の形態2に係るスレーブの入れ替えを行っている様子を示す模式図である。
図22図22は、実施の形態2に係るスレーブの取り外しを行っている様子を示す模式図である。
図23図23は、実施の形態3に係る通信システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
(本開示の一態様を得るに至った経緯)
発明者らは、コントローラと複数のスレーブとがリング状に接続された通信システムにおいて、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮する方法について、鋭意、検討、実験を繰り返し行った。その結果、発明者らは、各スレーブが、ネットワークの接続に係る異常を検出し、検出した異常をコントローラに通知することで、コントローラは、ネットワークの接続に係る異常が発生してから、比較的短時間で、その異常の発生を確認することができるという知見を得た。そして、発明者らは、この知見に基づいて、さらに、検討、実験を重ねた。その結果、下記通信システム等に想到した。
【0013】
本開示の一態様に係る通信システムは、コントローラと、第1のスレーブ~第Nのスレーブ(Nは2以上の整数)と、を備える通信システムである。前記コントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を有する。前記第1のスレーブ~前記第Nのスレーブの各々は、第3の入出力ポートと、第4の入出力ポートと、スレーブ送信制御部と、検出部と、を有する。前記第1の入出力ポートと、前記第1のスレーブが有する前記第4の入出力ポートとが接続される。前記第Nのスレーブが有する前記第3の入出力ポートと、前記第2の入出力ポートとが接続される。任意のK(Kは2以上N以下の整数)において、第K-1のスレーブが有する前記第3の入出力ポートと、第Kのスレーブが有する前記第4の入出力ポートとが接続される。前記コントローラ送信制御部は、通常フレームを生成して送信し、断線ノード通知フレームを受信し、第1のコントローラ動作モードと、第2のコントローラ動作モードと、を実行する。前記第1のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートから繰り返し送信する。前記第2のコントローラ動作モードは、前記通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する。前記スレーブ送信制御部は、前記通常フレームを送信および受信し、前記断線ノード通知フレームを生成するとともに前記断線ノード通知フレームを送信および受信し、第1のスレーブ動作モードと、第2のスレーブ動作モードと、を実行する。第1のスレーブ動作モードは、前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが前記通常フレームを受信すると、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから前記通常フレームを送信する。第2のスレーブ動作モードは、前記一方の入出力ポートが前記通常フレームを受信すると、前記一方の入出力ポートから前記通常フレームを送信する。前記検出部は、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、前記検出部が前記第3の入出力ポートの接続に係る異常または前記第4の入出力ポートの接続に係る異常を検出したとき、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。また、前記スレーブ送信制御部は、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試みる。それとともに前記スレーブ送信制御部は、前記一方の入出ポートが前記断線ノード通知フレームを受信すると、前記他方の入出力ポートから前記断線ノード通知フレームを送信する。前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが前記断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0014】
上記通信システムにおいて、コントローラ送信制御部が第1のコントローラ動作モードで動作し、各スレーブのスレーブ送信制御部が第1のスレーブ動作モードで動作している場合に、通常フレームの送信経路は、コントローラから、順に、第1のスレーブ~第Nのスレーブを経由して再びコントローラに戻る送信経路となる。
【0015】
この状態において、いずれかのスレーブにおいて、検出部が、第3の入出力ポートの接続に係る異常、または、第4の入出力ポートの接続に係る異常を検出すると、そのスレーブから、コントローラに向けて、断線ノード通知フレームが送信される。これにより、コントローラは、ネットワークの接続に係る異常が発生してから、比較的短時間で、断線ノード通知フレームを受信することができる。そして、コントローラは、断線ノード通知フレームを受信すると、コントローラ送信制御部が、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える。
【0016】
一方で、検出部が、第3の入出力ポートの接続に係る異常、または、第4の入出力ポートの接続に係る異常を検出したスレーブは、スレーブ送信制御部が、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える。
【0017】
これにより、通信フレームの通信経路は、第1の経路と第2の経路との2つの経路からなる送信経路に変更される。
【0018】
(第1の経路)
コントローラから、順に、第1のスレーブ~接続に係る異常が発生している箇所の手前のスレーブ~第1のスレーブを経由して再びコントローラへ戻る経路(すなわち、接続に係る異常の手前のスレーブで折り返す経路)。
【0019】
(第2の経路)
コントローラから、順に、第Nのスレーブ~接続に係る異常の手前のスレーブ~第Nのスレーブを経由して再びコントローラへ戻る経路(すなわち、接続に係る異常が発生している箇所の手前のスレーブで折り返す経路)。
【0020】
このように、上記構成の通信システムによると、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【0021】
また、前記断線ノード通知フレームは、0以上の整数値を示すノードカウント値を含み、前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、以下の(1)および(2)の特徴を有してもよい。
【0022】
(1)前記検出部が、前記一方の入出力ポートの接続に係る異常を検出したときに、前記一方の入出力ポートから、0を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。そして、前記他方の入出力ポートから、1を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0023】
(2)前記一方の入出力ポートが、0を示すノードカウント値を含む断線ノード通知フレームを受信すると、動作モードを前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。前記一方の入出ポートが断線ノード通知フレームを受信すると、当該断線ノード通知フレームに含まれるノードカウント値に1を加えたノードカウント値を含む断線ノード通知フレームを、前記他方の入出力ポートから送信する。
【0024】
前記コントローラは、さらに、前記第1の入出力ポートおよび前記第2の入出力ポートが断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した断線ノード通知フレームに含まれるノードカウント値と、前記第2の入出力ポートが受信した断線ノード通知フレームに含まれるノードカウント値とに基づいて、異常の発生位置を特定する異常位置判定部を有するとしてもよい。
【0025】
これにより、発生した接続に係る異常が、その発生位置の一方の側のスレーブの検出部のみがその異常を検出することができるタイプの異常であったとしても、その発生位置の他方の側のスレーブのスレーブ送信制御部も、動作モードを、第1のスレーブ動作モードから第2のスレーブ動作モードに切り替えることができる。また、これにより、異常の発生位置を判定することができる。
【0026】
また、前記第1のスレーブ~前記第Nのスレーブの各々は、さらに、前記第3の入出力ポートまたは前記第4の入出力ポートが通常フレームを受信するタイミングに基づいて、前記第1のスレーブ~前記第Nのスレーブが同期して動作する同期タイミングを示す同期タイミング信号を算出する同期タイミング算出部を有してよい。前記同期タイミング算出部は、通常フレームを受信する側の入出力ポートで断線ノード通知フレームを受信した場合、および、前記検出部が、通常フレームを受信する側の入出力ポートの接続に係る異常を検出した場合に、通常フレームを、当該入出力ポートではない入出力ポートが受信するときに、前記同期タイミングが変わらないように、前記同期タイミング信号を算出する算出方法を更新するとしてもよい。
【0027】
これにより、通常フレームの送信経路が変更された場合でも、第1のスレーブ~第Nのスレーブが同期して動作することができる。
【0028】
また、前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、前記検出部が、前記第3の入出力ポートの接続に係る異常、または、前記第4の入出力ポートの接続に係る異常を検出したときに送信を試みる断線ノード通知フレームに、前記スレーブ送信制御部を含むスレーブのMACID(Media Access Control ID)を含ませてもよい。そして、前記コントローラは、さらに、前記第1の入出力ポートおよび前記第2の入出力ポートが断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した断線ノード通知フレームに含まれるMACIDと、前記第2の入出力ポートが受信した断線ノード通知フレームに含まれるMACIDとに基づいて、異常の種類に係る判定を行う異常種類判定部を有するとしてもよい。
【0029】
これにより、コントローラは、異常の種類に係る判定を行うことができる。
【0030】
また、前記検出部は、さらに、前記第3の入出力ポートの接続に係る異常の回復、および、前記第4の入出力ポートの接続に係る異常の回復を検出してよい。前記スレーブ送信制御部は、前記第2のスレーブ動作モードで動作している場合において、前記検出部が、前記第3の入出力ポートの接続に係る異常の回復、または、前記第4の入出力ポートの接続に係る異常の回復を検出したときに、動作モードを前記第2のスレーブ動作モードから前記第1のスレーブ動作モードに切り替えると共に、前記第3の入出力ポートと前記第4の入出力ポートとから断線ノート通知フレームを送信してもよい。前記コントローラ送信制御部は、前記第2のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが断線ノード通知フレームを受信すると、動作モードを前記第2のコントローラ動作モードから前記第1のコントローラ動作モードに切り替えるとしてもよい。
【0031】
これにより、接続に係る異常が回復した場合に、送信経路を元に戻すことができる。
【0032】
本開示の他の一態様に係るスレーブは、第1の入出力ポートと、第2の入出力ポートと、スレーブ送信制御部と、検出部と、を備える。スレーブ送信制御部は、第1のスレーブ動作モードにおいて、通常フレームを、前記第1の入出力ポートと前記第2の入出力ポー
トとのうちの一方の入出力ポートが受信すると、当該通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとのうちの他方の入出力ポートから送信する。また、スレーブ送信制御部は、第2のスレーブ動作モードにおいて、通常フレームを、前記一方の入出力ポートが受信すると、当該通常フレームを、前記一方の入出力ポートから送信する。前記検出部は、前記第1の入出力ポートの接続に係る異常、および、前記第の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、前記検出部が、前記第1の入出力ポートの接続に係る異常、または、前記第2の入出力ポートの接続に係る異常を検出したときに、動作モードを前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。それと共に、前記スレーブ送信制御部は、接続状態の変化を検出した旨を示す前記断線ノード通知フレームを生成し、前記第1の入出力ポートと前記第2の入出力ポートとから前記断線ノード通知フレームの送信を試みる。前記スレーブ送信制御部は、断線ノード通知フレームを前記一方の入出ポートが受信すると、当該断線ノード通知フレームを、前記他方の入出力ポートから送信する。
【0033】
上記構成のスレーブは、検出部が、第1の入出力ポートの接続に係る異常、または、第2の入出力ポートの接続に係る異常を検出すると、断線ノード通知フレームを送信することができる。これにより、コントローラは、ネットワークの接続に係る異常が発生してから、比較的短時間で、断線ノード通知フレームを受信することができる。そして、コントローラは、断線ノード通知フレームを受信すると、フレームの送信経路を変更することができる。
【0034】
このように、上記構成のスレーブによると、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【0035】
また、前記断線ノード通知フレームは、0以上の整数値を示すノードカウント値を含み、前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、次の(1)および(2)を行ってもよい。
(1)前記検出部が、前記第1の入出力ポートの接続に係る異常を検出したときに、前記一方の入出力ポートから、0を示すノードカウント値を含む断線ノード通知フレームの送信を試み、前記他方の入出力ポートから、1を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
(2)前記一方の入出力ポートが、0を示すノードカウント値を含む断線ノード通知フレームを受信すると、動作モードを前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。前記一方の入出ポートが断線ノード通知フレームを受信すると、
当該断線ノード通知フレームに含まれるノードカウント値に1を加えたノードカウント値を含む断線ノード通知フレームを、前記他方の入出力ポートから送信する。
【0036】
また、さらに、前記第1の入出力ポートまたは前記第2の入出力ポートが通常フレームを受信するタイミングに基づいて、同期タイミングを示す同期タイミング信号を算出する同期タイミング算出部を有してよい。前記同期タイミング算出部は、通常フレームを受信する側の入出力ポートで断線ノード通知フレームを受信した場合、および、前記検出部が、通常フレームを受信する側の入出力ポートの接続に係る異常を検出した場合に、通常フレームを、当該入出力ポートではない入出力ポートが受信するときに、前記同期タイミングが変わらないように、前記同期タイミング信号を算出する算出方法を更新するとしてもよい。
【0037】
また、前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合において、前記検出部が、前記第1の入出力ポートの接続に係る異常、または、前記第2の入出力ポートの接続に係る異常を検出したときに送信を試みる断線ノード通知フレームに、前記スレーブ送信制御部を含むスレーブのMACID(Media Access Control ID)を含ませるとしてもよい。
【0038】
また、前記検出部は、さらに、前記第1の入出力ポートの接続に係る異常の回復、および、前記第2の入出力ポートの接続に係る異常の回復を検出してよい。前記スレーブ送信制御部は、前記第2のスレーブ動作モードで動作している場合において、前記検出部が、前記第1の入出力ポートの接続に係る異常の回復、または、前記第2の入出力ポートの接続に係る異常の回復を検出したときに、動作モードを前記第2のスレーブ動作モードから前記第1のスレーブ動作モードに切り替えてよい。それと共に、前記スレーブ送信制御部は、前記第1の入出力ポートと前記第2の入出力ポートとから断線ノード通知フレームを送信するとしてもよい。
【0039】
本開示の他の一態様に係るコントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を備える。前記コントローラ送信制御部は、通常フレームを生成し、第1のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートから繰り返し送信し、第2のコントローラ動作モードにおいて、通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する。また、前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが、接続状態の変化を検出した旨を示す断線ノード通知フレームを受信すると、動作モードを前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0040】
上記構成のコントローラは、従来技術のように、ネットワーク存在フレームを送信しなくても、断線ノート通知フレームを受信すれば、通信フレームの通信経路を変更することがきる。
【0041】
したがって、上記コントローラによると、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【0042】
また、断線ノード通知フレームには、MACIDが含まれてよい。さらに、前記第1の入出力ポートおよび前記第2の入出力ポートが断線ノード通知フレームを受信した場合に、前記第1の入出力ポートが受信した断線ノード通知フレームに含まれるMACIDと、前記第2の入出力ポートが受信した断線ノード通知フレームに含まれるMACIDとに基づいて、異常の種類に係る判定を行う異常種類判定部を有するとしてもよい。
【0043】
また、前記第2のコントローラ動作モードで動作している場合において、前記第1の入出力ポートまたは前記第2の入出力ポートが、断線ノード通知フレームを受信すると、動作モードを前記第2のコントローラ動作モードから前記第1のコントローラ動作モードに切り替えるとしてもよい。
【0044】
本開示の他の一態様に係る通信方法は、通信システムが行う通信方法である。当該通信システムは、コントローラと、第1のスレーブ~第Nのスレーブ(Nは2以上の整数)と、を備える。コントローラは、第1の入出力ポートと、第2の入出力ポートと、コントローラ送信制御部と、を有する。第1のスレーブ~第Nのスレーブの各々は、第3の入出力ポートと、第4の入出力ポートと、スレーブ送信制御部と、検出部と、を有する。前記第1の入出力ポートと、前記第1のスレーブが有する前記第4の入出力ポートとが接続される。前記第Nのスレーブが有する前記第3の入出力ポートと、前記第2の入出力ポートとが接続される。任意のK(Kは2以上N以下の整数)において、第K-1のスレーブが有する前記第3の入出力ポートと、第Kのスレーブが有する前記第4の入出力ポートとが接続される。前記通信方法は、前記コントローラ送信制御部が、通常フレームを生成し、第1のコントローラ動作モードにおいて、前記通常フレームを、前記第1の入出力ポートから繰り返し送信し、第2のコントローラ動作モードにおいて、通常フレームを、前記第1の入出力ポートと前記第2の入出力ポートとから繰り返し送信する。前記第1のスレーブ~前記第Nのスレーブのそれぞれの前記スレーブ送信制御部は、第1のスレーブ動作モードにおいて、通常フレームを、前記第3の入出力ポートと前記第4の入出力ポートとのうちの一方の入出力ポートが受信すると、当該通常フレームを、前記第3の入出力ポートと前記第4の入出力ポートとのうちの他方の入出力ポートから送信する。また、前記スレーブ送信制御部は、第2のスレーブ動作モードにおいて、通常フレームを、前記一方の入出力ポートが受信すると、当該通常フレームを、前記一方の入出力ポートから送信する。前記検出部は、前記第3の入出力ポートの接続に係る異常、および、前記第4の入出力ポートの接続に係る異常を検出する。前記スレーブ送信制御部は、前記第1のスレーブ動作モードで動作している場合に、前記検出部が前記第3の入出力ポートの接続に係る異常または前記第4の入出力ポートの接続に係る異常を検出したとき、前記第1のスレーブ動作モードから前記第2のスレーブ動作モードに切り替える。それと共に前記スレーブ送信制御部は、接続状態の変化を検出した旨を示す断線ノード通知フレームを生成し、前記第3の入出力ポートと前記第4の入出力ポートとから、前記断線ノード通知フレームの送信を試みる。そして前記スレーブ送信制御部は、前記断線ノード通知フレームを前記一方の入出ポートが受信すると、当該断線ノード通知フレームを、前記他方の入出力ポートから送信する。前記コントローラ送信制御部は、前記第1のコントローラ動作モードで動作している場合に、前記第1の入出力ポートまたは前記第2の入出力ポートが断線ノード通知フレームを受信すると、前記第1のコントローラ動作モードから前記第2のコントローラ動作モードに切り替える。
【0045】
上記通信方法において、コントローラ送信制御部が第1のコントローラ動作モードで動作し、各スレーブのスレーブ送信制御部が第1のスレーブ動作モードで動作している場合に、通常フレームの送信経路は、コントローラから、順に、第1のスレーブ~第Nのスレーブを経由して再びコントローラに戻る送信経路となる。
【0046】
この状態において、いずれかのスレーブにおいて、検出部が、第3の入出力ポートの接続に係る異常、または、第4の入出力ポートの接続に係る異常を検出すると、そのスレーブから、コントローラに向けて、断線ノード通知フレームが送信される。これにより、コントローラは、ネットワークの接続に係る異常が発生してから、比較的短時間で、断線ノード通知フレームを受信することができる。そして、コントローラは、断線ノード通知フレームを受信すると、コントローラ送信制御部が、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える。
【0047】
一方で、検出部が、第3の入出力ポートの接続に係る異常、または、第4の入出力ポートの接続に係る異常を検出したスレーブに対し、スレーブ送信制御部は、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える。
【0048】
これにより、通信フレームの通信経路は、次に示す第1の経路および第2の経路の2つの経路からなる送信経路に変更される。第1の経路は、コントローラから、順に、第1のスレーブ~接続に係る異常が発生している箇所の手前のスレーブ~第1のスレーブを経由して再びコントローラへ戻る経路(すなわち、接続に係る異常の手前のスレーブで折り返す経路)である。第2の経路は、コントローラから、順に、第Nのスレーブ~接続に係る異常の手前のスレーブ~第Nのスレーブを経由して再びコントローラへ戻る経路(すなわち、接続に係る異常が発生している箇所の手前のスレーブで折り返す経路)である。
【0049】
このように、上記通信方法によると、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【0050】
以下、本開示の一態様に係る通信システム、スレーブ、コントローラ、および、通信方法の具体例について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本開示の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、構成要素、構成要素の配置および接続形態、ならびに、ステップ(工程)およびステップの順序等は、一例であって本開示を限定する趣旨ではない。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【0051】
なお、本開示の包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【0052】
(実施の形態1)
[1-1.構成]
図1は、実施の形態1に係る通信システム1の構成の一例を示すブロック図である。
【0053】
図1に示すように、通信システム1は、第1の入出力ポート11と、第2の入出力ポート12とを有するコントローラ10と、それぞれが、第3の入出力ポート21と、第4の入出力ポート22とを有する複数のスレーブ20(図1中の、第1のスレーブ20Aと、第2のスレーブ20Bと、第3のスレーブ20Cとが対応)を備える。
【0054】
ここでは、複数のスレーブ20が、第1のスレーブ20Aと、第2のスレーブ20Bと、第3のスレーブ20Cとの3つであるとして説明するが、複数のスレーブ20の数は、必ずしも3つである構成に限定される必要はない。また、以下では、第1のスレーブ20Aと、第2のスレーブ20Bと、第3のスレーブ20Cとを明示的に区別をする必要が無い場合には、第1のスレーブ20Aと、第2のスレーブ20Bと、第3のスレーブ20Cとのことを単に、スレーブ20とも称する。
【0055】
図1に示すように、第1の入出力ポート11と、第1のスレーブ20Aにおける第4の入出力ポート22とが、ケーブル30Aにより接続される。第1のスレーブ20Aにおける第3の入出力ポート21と、第2のスレーブ20Bにおける第4の入出力ポート22とが、ケーブル30Bにより接続される。第2のスレーブ20Bにおける第3の入出力ポート21と、第3のスレーブ20Cにおける第4の入出力ポート22とが、ケーブル30Cにより接続される。第3のスレーブ20Cにおける第3の入出力ポート21と、第2の入出力ポート12とが、ケーブル30Dにより接続される。以下では、ケーブル30Aと、ケーブル30Bと、ケーブル30Cと、ケーブル30Dとを明示的に区別をする必要が無い場合には、ケーブル30Aと、ケーブル30Bと、ケーブル30Cと、ケーブル30Dとのことを単に、ケーブル30とも称する。
【0056】
第1の入出力ポート11は、送信端子TX111と、受信端子RX112とを有する。第2の入出力ポート12は、送信端子TX121と、受信端子RX122とを有する。第3の入出力ポート21は、送信端子TX211と、受信端子RX212とを有する。第4の入出力ポート22は、送信端子TX221と、受信端子RX222とを有する。
【0057】
ケーブル30は、第1の接続経路と第2の接続経路とを有し、第1の接続経路により、送信端子TX111と受信端子RX222、送信端子TX121と受信端子RX212、または、送信端子TX221と受信端子RX212とを接続し、第2の接続経路により、送信端子TX221と受信端子RX112、送信端子TX211と受信端子RX122、または、送信端子TX211と受信端子RX222とを接続する。
【0058】
図2は、コントローラ10の構成の一例を示すブロック図である。
【0059】
図2に示すように、コントローラ10は、第1の入出力ポート11と、第2の入出力ポート12と、コントローラ送信制御部13と、異常位置判定部14と、異常種類判定部15とを有する。
【0060】
第1の入出力ポート11は、送信端子TX111と受信端子RX112とを有するコネクタ110と、ファイ(PHY)130とを有する。
【0061】
ファイ130は、TXファイ端子131と、RXファイ端子132とを有し、TXファイ端子131から、その接続先の通信装置に対してフレームを送信し、RXファイ端子132で、その接続先の通信装置からのフレームを受信する。TXファイ端子131は、送信端子TX111に接続し、RXファイ端子132は、受信端子RX112に接続する。
【0062】
また、ファイ130は、RXファイ端子132とその接続先の通信装置とのリンクを検出する。
【0063】
第2の入出力ポート12は、送信端子TX121と受信端子RX122とを有するコネクタ120と、ファイ150とを有する。
【0064】
ファイ150は、TXファイ端子151と、RXファイ端子152とを有し、TXファイ端子151から、その接続先の通信装置に対してフレームを送信し、RXファイ端子152で、その接続先の通信装置からのフレームを受信する。TXファイ端子151は、送信端子TX121に接続し、RXファイ端子152は、受信端子RX122に接続する。
【0065】
また、ファイ150は、RXファイ端子152とその接続先の通信装置とのリンクを検出する。
【0066】
コントローラ送信制御部13は、第1のコントローラ動作モードまたは第2のコントローラ動作モードで動作する。コントローラ送信制御部13は、初期状態において、第1のコントローラ動作モードで動作する。
【0067】
コントローラ送信制御部13は、第1のコントローラ動作モードにおいて、通常フレームを、第1の入出力ポート11から繰り返し送信する。より具体的には、コントローラ送信制御部13は、第1のコントローラ動作モードにおいて、ファイ130を制御して、通常フレームを、TXファイ端子131からその接続先の通信装置へ繰り返し送信させる。
【0068】
例えば、コントローラ送信制御部13は、第1のコントローラ動作モードにおいて、通常フレームを、所定の周期毎に、第1の入出力ポート11から送信するとしてもよい。
【0069】
コントローラ送信制御部13は、第2のコントローラ動作モードにおいて、通常フレームを、第1の入出力ポート11と第2の入出力ポート12から繰り返し送信する。より具体的には、コントローラ送信制御部13は、第2のコントローラ動作モードにおいて、ファイ130とファイ150とを制御して、通常フレームを、TXファイ端子131とTXファイ端子151とからそれらの接続先の通信装置へ繰り返し送信させる。
【0070】
例えば、コントローラ送信制御部13は、第2のコントローラ動作モードにおいて、通常フレームを、所定の周期毎に、第1の入出力ポート11と第2の入出力ポート12とから送信するとしてもよい。
【0071】
コントローラ送信制御部13は、第1のコントローラ動作モードで動作している場合において、第1の入出力ポート11または第2の入出力ポート12が断線ノード通知フレーム(後述)を受信すると、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える。
【0072】
コントローラ送信制御部13は、第2のコントローラ動作モードで動作している場合において、第1の入出力ポート11または第2の入出力ポート12が断線ノード通知フレームを受信すると、動作モードを第2のコントローラ動作モードから第1のコントローラ動作モードに切り替える。
【0073】
コントローラ送信制御部13は、例えば、コントローラ10が有するプロセッサ101が、コントローラ10が有するメモリ102に記憶されるプログラムを実行することで実現されるとしてもよい。
【0074】
異常位置判定部14は、第1の入出力ポート11および第2の入出力ポート12が断線ノード通知フレームを受信した場合に、それら断線ノード通知フレームに含まれる、0以上の整数値を示すノードカウント値に基づいて、異常の発生位置を判定する。異常位置判定部14が行う動作の詳細については、後述する。
【0075】
異常位置判定部14は、例えば、コントローラ10が有するプロセッサ101が、コントローラ10が有するメモリ102に記憶されるプログラムを実行することで実現されるとしてもよい。
【0076】
異常種類判定部15は、第1の入出力ポート11および第2の入出力ポート12が断線ノード通知フレームを受信した場合に、それら断線ノード通知フレームに含まれる、スレーブ20のMACIDに基づいて、異常の種類に係る判定を行う。異常種類判定部15が行う動作の詳細については、後述する。
【0077】
異常種類判定部15は、例えば、コントローラ10が有するプロセッサ101が、コントローラ10が有するメモリ102に記憶されるプログラムを実行することで実現されるとしてもよい。
【0078】
図3は、スレーブ20の構成の一例を示すブロック図である。
【0079】
図3に示すように、スレーブ20は、第3の入出力ポート21と、第4の入出力ポート22と、スレーブ送信制御部23と、同期タイミング算出部24と、検出部25とを備える。
【0080】
第3の入出力ポート21は、送信端子TX211と受信端子RX212とを有するコネクタ210と、ファイ230とを有する。
【0081】
ファイ230は、TXファイ端子231と、RXファイ端子232とを有し、TXファイ端子231から、その接続先の通信装置に対してフレームを送信し、RXファイ端子232で、その接続先の通信装置からのフレームを受信する。TXファイ端子231は、送信端子TX211に接続し、RXファイ端子232は、受信端子RX212に接続する。
【0082】
また、ファイ230は、RXファイ端子232とその接続先の通信装置とのリンクを検出する。
【0083】
第4の入出力ポート22は、送信端子TX221と受信端子RX222とを有するコネクタ220と、ファイ250とを有する。
【0084】
ファイ250は、TXファイ端子251と、RXファイ端子252とを有し、TXファイ端子251から、その接続先の通信装置に対してフレームを送信し、RXファイ端子252で、その接続先の通信装置からのフレームを受信する。TXファイ端子251は、送信端子TX221に接続し、RXファイ端子252は、受信端子RX222に接続する。
【0085】
また、ファイ250は、RXファイ端子252とその接続先の通信装置とのリンクを検出する。
【0086】
検出部25は、第3の入出力ポート21の接続に係る異常、および、第4の入出力ポート22の接続に係る異常を検出する。より具体的には、検出部25は、ファイ230が、RXファイ端子232とその接続先の通信装置とのリンクを検出している状態から検出していない状態に変化することで、第3の入出力ポート21の接続に係る異常を検出し、ファイ250が、RXファイ端子252とその接続先の通信装置とのリンクを検出している状態から検出していない状態に変化することで、第4の入出力ポート22の接続に係る異常を検出する。
【0087】
また、検出部25は、第3の入出力ポート21の接続に係る異常の回復、および、第4の入出力ポート22の接続に係る異常の回復を検出する。より具体的には、検出部25は、ファイ230が、RXファイ端子232とその接続先の通信装置とのリンクを検出していない状態から検出している状態に変化することで、第3の入出力ポート21の接続に係る異常の回復を検出し、ファイ250が、RXファイ端子252とその接続先の通信装置とのリンクを検出していない状態から検出している状態に変化することで、第4の入出力ポート22の接続に係る異常の回復を検出する。
【0088】
検出部25は、例えば、スレーブ20が有するプロセッサ201が、スレーブ20が有するメモリ202に記憶されるプログラムを実行することで実現されるとしてもよい。
【0089】
スレーブ送信制御部23は、第1のスレーブ動作モードまたは第2のスレーブ動作モードで動作する。スレーブ送信制御部23は、初期状態において、第1のスレーブ動作モードで動作する。
【0090】
スレーブ送信制御部23は、第1のスレーブ動作モードにおいて、通常フレームを、第3の入出力ポート21と第4の入出力ポート22とのうちの一方の入出力ポートが受信すると、通常フレームを、第3の入出力ポート21と第4の入出力ポート22とのうちの他方の入出力ポートから送信する。より具体的には、スレーブ送信制御部23は、第1のスレーブ動作モードにおいて、ファイ230とファイ250とを制御して、RXファイ端子232が通常フレームを受信した場合に、通常フレームを、TXファイ端子251から送信させ、RXファイ端子252が通常フレームを受信した場合に、通常フレームを、TXファイ端子231から送信させる。なお、上記他方の入出力ポートが送信する通常フレームは、上記一方の入出力ポートが受信する通常フレームに対しファイ230とファイ250とを制御することにより得られる通常フレームである。通常フレームとして例えば、ファイ230およびファイ250の制御によって、上記受信する通常フレームがそのまま上記送信する通常フレームとなる、すなわち通常フレームがスルーとなってもよい。また、通常フレームとして例えば、ファイ230およびファイ250の制御によって、上記受信する通常フレームが変換されて上記送信する通常フレームとなってもよい。
【0091】
スレーブ送信制御部23は、第2のスレーブ動作モードにおいて、通常フレームを、第3の入出力ポート21と第4の入出力ポート22とのうちの一方の入出力ポートが受信すると、通常フレームを、その一方の入出力ポートから送信する。より具体的には、スレーブ送信制御部23は、第2のスレーブ動作モードにおいて、ファイ230とファイ250とを制御して、RXファイ端子232が通常フレームを受信した場合に、通常フレームを、TXファイ端子231から送信させ、RXファイ端子252が通常フレームを受信した場合に、通常フレームを、TXファイ端子251から送信させる。
【0092】
スレーブ送信制御部23は、第1のスレーブ動作モードで動作している場合において、検出部25が、第3の入出力ポート21の接続に係る異常、または、第4の入出力ポート22の接続に係る異常を検出したときに、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える。それと共に、スレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、接続状態の変化を検出した旨を示す断線ノード通知フレームの送信を試みる。より具体的には、スレーブ送信制御部23は、ファイ230とファイ250とを制御して、TXファイ端子231から断線ノード通知フレームの送信を試みさせ、TXファイ端子251から断線ノート通知フレームの送信を試みさせる。
【0093】
この際、スレーブ送信制御部23は、送信を試みる断線ノード通知フレームに、スレーブ送信制御部23を含むスレーブ20のMACIDを含ませる。また、この際、スレーブ送信制御部23は、検出部25が、第3の入出力ポート21と第4の入出力ポート22とのうちの一方の入出力ポートの接続に係る異常を検出したときに、その一方の入出力ポートから、0を示すノードカウント値を含む断線ノード通知フレームの送信を試み、他方の入出力ポートから、1を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0094】
スレーブ送信制御部23は、第2のスレーブ動作モードで動作している場合において、検出部25が、第3の入出力ポート21の接続に係る異常の回復、または、第4の入出力ポート22の接続に係る異常の回復を検出したときに、動作モードを第2のスレーブ動作モードから第1のスレーブ動作モードに切り替えると共に、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームを送信する。より具体的には、スレーブ送信制御部23は、ファイ230とファイ250とを制御して、TXファイ端子231から断線ノード通知フレームを送信させ、TXファイ端子251から断線ノート通知フレームを送信させる。
【0095】
この際、スレーブ送信制御部23は、送信する断線ノード通知フレームに、スレーブ送信制御部23を含むスレーブ20のMACIDを含ませる。また、この際、スレーブ送信制御部23は、検出部25が、第3の入出力ポート21と第4の入出力ポート22とのうちの一方の入出力ポートの接続に係る異常の回復を検出したときに、その一方の入出力ポートから、0を示すノードカウント値を含む断線ノード通知フレームを送信し、他方の入出力ポートから、1を示すノードカウント値を含む断線ノード通知フレームを送信する。
【0096】
スレーブ送信制御部23は、断線ノード通知フレームを、第3の入出力ポート21と第4の入出力ポート22とのうちの一方の入出力ポートが受信すると、断線ノード通知フレームを、他方の入出力ポートから送信する。より具体的には、スレーブ送信制御部23は、ファイ230とファイ250とを制御して、RXファイ端子232が断線ノード通知フレームを受信した場合に、断線ノード通知フレームを、TXファイ端子251から送信させ、RXファイ端子252が断線ノード通知フレームを受信した場合に、断線ノード通知フレームを、TXファイ端子231から送信させる。なお、上記他方の入出力ポートが送信する断線ノード通知フレームは、上記一方の入出力ポートが受信する断線ノード通知フレームに対しファイ230とファイ250とを制御することにより得られる断線ノード通知フレームである。断線ノード通知フレームとして例えば、ファイ230およびファイ250の制御によって、上記受信する断線ノード通知フレームがそのまま上記送信する断線ノード通知フレームとなる、すなわち断線ノード通知フレームがスルーとなってもよい。また断線ノード通知フレームとして、例えば、ファイ230およびファイ250の制御によって、上記受信する断線ノード通知フレームが変換されて上記送信する断線ノード通知フレームとなってもよい。
【0097】
この際、スレーブ送信制御部23は、一方の入出力ポートが受信した断線ノード通知フレームに含まれるノードカウント値に1を加えたノードカウント値を含む断線ノード通知フレームを、他方の入出力ポートから送信する。
【0098】
スレーブ送信制御部23は、第1のスレーブ動作モードで動作している場合において、第3の入出力ポート21または第4の入出力ポート22が、0を示すノードカウント値を含む断線ノード通知フレームを受信すると、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える。
【0099】
スレーブ送信制御部23は、第2のスレーブ動作モードで動作している場合において、第3の入出力ポート21または第4の入出力ポート22が0を含むノードカウント値を含む断線ノード通知フレームを受信すると、動作モードを第2のスレーブ動作モードから第1のスレーブ動作モードに切り替える。
【0100】
スレーブ送信制御部23は、例えば、スレーブ20が有するプロセッサ201が、スレーブ20が有するメモリ202に記憶されるプログラムを実行することで実現されるとしてもよい。
【0101】
同期タイミング算出部24は、第3の入出力ポート21または第4の入出力ポート22が通常フレームを受信するタイミングに基づいて、複数のスレーブ20の全てが同期して動作する同期タイミングを示す同期タイミング信号を算出する。
【0102】
図4は、コントローラ送信制御部13が第1のコントローラ動作モードで動作し、第1のスレーブ20Aと第2のスレーブ20Bと第3のスレーブ20Cとのスレーブ送信制御部23が第1のスレーブ動作モードで動作している場合における、通常フレームの送信経路(以下、「主送信経路」とも称する)を示す模式図である。この主送信経路は、コントローラ送信制御部13とスレーブ送信制御部23とが初期状態における、通常フレームの送信経路となる。
【0103】
図4において、主送信経路は、実線の矢印で示される経路である。
【0104】
図4に示すように、主送信経路は、コントローラ10から、順に、第1のスレーブ20A、第2のスレーブ20B、第3のスレーブ20Cを経由して、再びコントローラ10に戻る送信経路となる。
【0105】
図5は、通常フレーム50の送信経路が主送信経路である場合における、コントローラ10、および、各スレーブ20における、通常フレーム50の送受信タイミングと、各スレーブ20の同期タイミング算出部24が算出する、同期タイミング信号XSYNCの動作タイミングとの一例を示すタイミングチャートである。図5において、横軸は時間tである。
【0106】
図5に示すように、各スレーブ20の同期タイミング算出部24は、互いに同期して動作する同期タイミング信号XSYNCを算出する。
【0107】
ここでは、同期タイミング算出部24は、スレーブ20の数(ここでは3)と、主送信経路における、コントローラ10からの接続順番(ここでは、第1のスレーブ20Aでは1、第2のスレーブ20Bでは2、第3のスレーブ20Cでは3)とをあらかじめ記憶し、同期タイミング信号XSYNCのパルスタイミングTを、(式1)により算出する。
【0108】
T=通常フレーム受信完了時刻
+(全てのスレーブ20の数-送信経路における接続順)×固定遅延値
…… (式1)
ここで、(式1)における「送信経路における接続順」は、同期タイミング算出部24があらかじめ記憶する、主送信経路におけるコントローラ10からの接続順番となる。
【0109】
図6は、コントローラ送信制御部13が第2のコントローラ動作モードで動作し、第1のスレーブ20Aのスレーブ送信制御部23が第1のスレーブ動作モードで動作し、第2のスレーブ20Bと第3のスレーブ20Cとのスレーブ送信制御部23が第2のスレーブ動作モードで動作している場合における、通常フレームの送信経路(以下、「第1の冗長送信経路」とも称する)を示す模式図である。詳細については後述するが、この第1の冗長送信経路は、例えば、通常フレームの送信経路が主送信経路である場合において、第2のスレーブ20Bの検出部25が、第3の入出力ポート21の接続に係る異常を検出したとき、および、第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常を検出したとき等に、主送信経路から変更されて形成される送信経路である。
【0110】
図6において、第1の冗長送信経路は、実線の矢印で示される経路である。
【0111】
図6に示すように、第1の冗長送信経路は、第1の送信経路と、第2の送信経路とからなる。第1の送信経路は、コントローラ10から、順に、第1のスレーブ20A、第2のスレーブ20B、第1のスレーブ20Aを経由して、再びコントローラ10に戻る送信経路、すなわち第2のスレーブ20Bで折り返す経路である。第2の送信経路は、コントローラ10から順に、第3のスレーブ20Cを経由して、再びコントローラ10に戻る送信経路、すなわち、第3のスレーブ20Cで折り返す経路である。
【0112】
図6に示すように、第1の冗長送信経路における、第1のスレーブ20Aと第2のスレーブ20Bとのコントローラ10からの接続順は、主送信経路における接続順から変更されていない。これに対して、第1の冗長送信経路における、第3のスレーブ20Cのコントローラ10からの接続順は、主送信経路における接続順から変更(ここでは、3から1へ変更)されている。
【0113】
図7は、通常フレーム50の送信経路が第1の冗長送信経路である場合における、コントローラ10、および、各スレーブ20における、通常フレーム50の送受信タイミングと、各スレーブ20の同期タイミング算出部24が算出する、同期タイミング信号XSYNCの動作タイミングとの一例を示すタイミングチャートである。図7において、横軸は時間tである。
【0114】
第1のスレーブ20Aと第2のスレーブ20Bとにおいて、送信経路が主送信経路から第1の冗長送信経路に変更されても、(式1)における「送信経路における接続順」は変更されない。このため、第1のスレーブ20Aと第2のスレーブ20Bとにおいて、送信経路が主送信経路から第1の冗長送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTの算出方法は変更されない。
【0115】
一方、第3のスレーブ20Cにおいて、送信経路が主送信経路から第1の冗長送信経路に変更されると、(式1)における「送信経路における接続順」が変更される。
【0116】
これに対して、同期タイミング算出部24は、送信経路における接続順が変更された場合に、断線ノード通知フレームに含まれるノードカウント値に基づいて、「送信経路における接続順」を算出する。これにより、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されない。このように、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する。このため、第3のスレーブ20Cにおいて、送信経路が主送信経路から第1の冗長送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されない。なお、同期タイミング算出部24が行う、「送信経路における接続順」が変更された場合における「送信経路における接続順」の算出については、後述する。
【0117】
同期タイミング算出部24は、例えば、スレーブ20が有するプロセッサ201が、スレーブ20が有するメモリ202に記憶されるプログラムを実行することで実現されるとしてもよい。
【0118】
[1-2.動作]
上記構成の通信システム1が行う動作について、以下、具体例を用いて説明する。
【0119】
まず、通常フレームの送信経路が主送信経路である場合において、ケーブル30Cに、ケーブル30が断線するケーブル断線異常が発生したときに、通信システム1が行う動作(以下、「第1の動作」とも称する)について説明する。なお、ここでは、ケーブル断線異常は、ケーブルが断線する異常だけでなく、例えば、ケーブルがコネクタから外れる等の理由により、ケーブルを介した通信ができなくなる異常のことをいう。
【0120】
図8は、ケーブル30Cに、ケーブル30が断線するケーブル断線異常が発生した様子を示す模式図である。図9は、第1の動作のシーケンス図である。
【0121】
図9に示すように、ケーブル30Cにケーブル断線異常が発生すると、第3のスレーブ20Cにおいて、ファイ250は、RXファイ端子252とその接続先である第2のスレーブ20Bのファイ230のTXファイ端子231とのリンクを検出しなくなる。このため、第3のスレーブ20Cにおいて、第3のスレーブ20Cの検出部25は、第4の入出力ポート22の接続に係る異常を検出する(ステップS10A)。
【0122】
第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常を検出すると、第3のスレーブ20Cのスレーブ送信制御部23は、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える(ステップS20A)。
【0123】
そして、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、接続状態の変化を検出した旨を示す断線ノード通知フレームの送信を試みる(ステップS30A)。
【0124】
この際、第3のスレーブ20Cのスレーブ送信制御部23は、送信を試みる断線ノード通知フレームに、スレーブ送信制御部23を含む第3のスレーブ20CのMACIDを含ませる。また、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21から、1を示すノードカウント値を含む断線ノード通知フレームの送信を試み、第4の入出力ポート22から、0を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0125】
前述した通り、ケーブル30Cにケーブル断線異常が発生している。このため、第4の入出力ポート22からの断線ノード通知フレームの送信の試みは失敗する。一方で、第3の入出力ポート21からの断線ノード通知フレームの送信の試みは成功する。すなわち、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21から、断線ノード通知フレームを送信する(ステップS40A)。
【0126】
ここで、第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常を検出した時点において、通常フレームの送信経路は、主送信経路である。また、後述するように、ケーブル30Cにケーブル断線異常が発生したことにより、通常フレームの送信経路は、主送信経路から第1の冗長送信経路に変更される。このため、第3のスレーブ20Cにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更(ここでは、3から1へ変更)される。
【0127】
同期タイミング算出部24は、通常フレームの送信経路が、主送信経路から第1の冗長送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、(式1)における「送信経路における接続順」を算出する。より具体的には、同期タイミング算出部24は、あらかじめ記憶するスレーブ20の数(ここでは3)から、検出部25が接続に係る異常を検出した時点における、コントローラ10からの接続順番(ここでは、あらかじめ記憶する、主送信経路における、コントローラ10からの接続順番(ここでは3))を引いた値に1を加えた値(ここでは、3-3+1=1)を、(式1)における「送信経路における接続順」と算出する。
【0128】
このように、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS50)。言い換えると、同期タイミング算出部24は、検出部25が、通常フレームを受信する側の入出力ポートの接続に係る異常を検出した場合に、通常フレームを次回以降、当該入出力ポートではない入出力ポートが受信するときに、複数のスレーブ20の全てが同期して動作する同期タイミングが変わらないように、同期タイミング信号XSYNCを算出する算出方法を更新する。
【0129】
一方、ケーブル30Cにケーブル断線異常が発生すると、第2のスレーブ20Bにおいて、ファイ230は、RXファイ端子232とその接続先である第3のスレーブ20Cのファイ250のTXファイ端子251とのリンクを検出しなくなる。このため、第2のスレーブ20Bにおいて、第2のスレーブ20Bの検出部25は、第3の入出力ポート21の接続に係る異常を検出する(ステップS10B)。
【0130】
第2のスレーブ20Bの検出部25が、第3の入出力ポート21の接続に係る異常を検出すると、第2のスレーブ20Bのスレーブ送信制御部23は、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える(ステップS20B)。
【0131】
そして、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームの送信を試みる(ステップS30B)。
【0132】
この際、第2のスレーブ20Bのスレーブ送信制御部23は、送信を試みる断線ノード通知フレームに、スレーブ送信制御部23を含む第2のスレーブ20BのMACIDを含ませる。また、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21から、0を示すノードカウント値を含む断線ノード通知フレームの送信を試み、第4の入出力ポート22から、1を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0133】
前述した通り、ケーブル30Cにケーブル断線異常が発生している。このため、第3の入出力ポート21からの断線ノード通知フレームの送信の試みは失敗する。一方で、第4の入出力ポート22からの断線ノード通知フレームの送信の試みは成功する。すなわち、第2のスレーブ20Bのスレーブ送信制御部23は、第4の入出力ポート22から、断線ノード通知フレームを送信する(ステップS40B)。
【0134】
ここで、第2のスレーブ20Bの検出部25が、第3の入出力ポート21の接続に係る異常を検出した時点において、通常フレームの送信経路は、主送信経路である。また、後述するように、ケーブル30Cにケーブル断線異常が発生したことにより、通常フレームの送信経路は、主送信経路から第1の冗長送信経路に変更される。このため、第2のスレーブ20Bにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更されない。このため、第2のスレーブ20Bの同期タイミング算出部24は、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新しない。
【0135】
ステップS40Bの処理において、第2のスレーブ20Bのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレームを送信すると、第1のスレーブ20Aの第3の入出力ポート21は、その断線ノード通知フレームを受信する。
【0136】
第1のスレーブ20Aの第3の入出力ポート21が断線ノード通知フレームを受信すると、第1のスレーブ20Aのスレーブ送信制御部23は、その断線ノード通知フレームに含まれるノードカウント値(ここでは、1)に1を加えたノードカウント値(ここでは、1+1=2)を含む断線ノード通知フレームを、第4の入出力ポート22から送信する(ステップS40C)。
【0137】
ステップS40Aの処理において、第3のスレーブ20Cのスレーブ送信制御部23が、第3の入出力ポート21から、断線ノード通知フレーム(以下、「第1の断線ノード通知フレーム」とも称する)を送信すると、第2の入出力ポート12は、その第1の断線ノード通知フレームを受信する。
【0138】
ステップS40Cの処理において、第1のスレーブ20Aのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレーム(以下、「第2の断線ノード通知フレーム」とも称する)を送信すると、第1の入出力ポート11は、その第2の断線ノード通知フレームを受信する。
【0139】
第2の入出力ポート12が第1の断線ノード通知フレームを受信し、第1の入出力ポート11が第2の断線ノード通知フレームを受信すると、異常種類判定部15は、第1の断線ノード通知フレームに含まれるMACID(ここでは、第3のスレーブ20CのMACID)と、第2の断線ノード通知フレームに含まれるMACID(ここでは、第1のスレーブ20AのMACID)とに基づいて、通信システム1において生じた異常がケーブル断線異常であると判定する(ステップS60)。
【0140】
すなわち、異常種類判定部15は、第1の入出力ポート11および第2の入出力ポート12が断線ノード通知フレームを所定時間内に受信した場合において、それら断線ノード通知フレームに含まれるMACIDが互いに異なるときに、通信システム1において生じた異常がケーブル断線異常であると判定する。
【0141】
さらに、異常種類判定部15は、第1の断線ノード通知フレームに含まれるMACID(ここでは、第3のスレーブ20CのMACID)と、第2の断線ノード通知フレームに含まれるMACID(ここでは、第2のスレーブ20BのMACID)とに基づいて、ケーブル断線異常の発生位置が、第3のスレーブ20Cと第2のスレーブ20Bとの間であると判定する(ステップS70)。
【0142】
すなわち、異常種類判定部15は、第1の入出力ポート11および第2の入出力ポート12が断線ノード通知フレームを所定時間内に受信した場合において、それら断線ノード通知フレームに含まれるMACIDが互いに異なるときに、通信システム1において生じた異常の発生位置が、それらMACIDのスレーブ20の間であると判定する。
【0143】
異常種類判定部15が異常の発生位置を判定すると、コントローラ送信制御部13は、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える(ステップS80)。
【0144】
通信システム1が行う上記第1の動作により、コントローラ送信制御部13の動作モードが、第1のコントローラ動作モードから第2のコントローラ動作モードへと変更される。また、通信システム1が行う上記第1の動作により、第3のスレーブ20Cのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。また、通信システム1が行う上記第1の動作により、第2のスレーブ20Bのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。これにより、通常フレームの送信経路が、主通信経路(図4参照)から、第1の冗長送信経路(図6参照)に変更される。
【0145】
このように、通信システム1は、通常フレームの送信経路が主送信経路である場合において、ケーブル30にケーブル断線異常が発生したときに、送信経路をそのケーブル断線異常が発生したケーブル30を利用しない送信経路に変更して、通常フレームを各スレーブ20に送信する。
【0146】
次に、通常フレームの送信経路が主送信経路である場合において、第2のスレーブ20BのTXファイ端子231が機能しなくなるファイ端子異常が発生したときに、通信システム1が行う動作(以下、「第2の動作」とも称する)について説明する。
【0147】
図10は、第2のスレーブ20BのTXファイ端子231に、TXファイ端子231が機能しなくなるファイ端子異常が発生した様子を示す模式図である。図11は、第2の動作のシーケンス図である。なお、ここでは、TXファイ端子が機能しなくなるファイ端子異常は、例えば、ファイの故障、TXファイ端子の接続経路に不具合が生じる等の理由により、TXファイ端子が機能しなくなる異常のことをいう。
【0148】
図11に示すように、第2のスレーブ20BのTXファイ端子231に、第2のスレーブ20BのTXファイ端子231が機能しなくなるファイ端子異常が発生すると、第3のスレーブ20Cにおいて、ファイ250は、RXファイ端子252とその接続先である第2のスレーブ20Bのファイ230のTXファイ端子231とのリンクを検出しなくなる。このため、第3のスレーブ20Cにおいて、第3のスレーブ20Cの検出部25は、第4の入出力ポート22の接続に係る異常を検出する(ステップS110)。
【0149】
第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常を検出すると、第3のスレーブ20Cのスレーブ送信制御部23は、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える(ステップS120)。
【0150】
そして、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームの送信を試みる(ステップS130)。
【0151】
この際、第3のスレーブ20Cのスレーブ送信制御部23は、送信を試みる断線ノード通知フレームに、スレーブ送信制御部23を含む第3のスレーブ20CのMACIDを含ませる。また、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21から、1を示すノードカウント値を含む断線ノード通知フレームの送信を試み、第4の入出力ポート22から、0を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0152】
前述した通り、第2のスレーブ20BのTXファイ端子231に、第2のスレーブ20BのTXファイ端子231が機能しなくなるファイ端子異常が発生している。しかしながら、第3のスレーブ20CのTXファイ端子251から第2のスレーブ20BのRXファイ端子232への信号の送信は可能である。このため、第4の入出力ポート22からの断線ノード通知フレームの送信の試みは成功する。すなわち、第3のスレーブ20Cのスレーブ送信制御部23は、第4の入出力ポート22から、断線ノード通知フレームを送信する(ステップS140B)。一方で、第3の入出力ポート21からの断線ノード通知フレームの送信の試みも成功する。すなわち、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21から、断線ノード通知フレームを送信する(ステップS140A)。
【0153】
ここで、第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常を検出した時点において、通常フレームの送信経路は、主送信経路である。また、後述するように、第2のスレーブ20BのTXファイ端子231に、第2のスレーブ20BのTXファイ端子231が機能しなくなるファイ端子異常が発生したことにより、通常フレームの送信経路は、主送信経路から第1の冗長送信経路に変更される。このため、第3のスレーブ20Cにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更(ここでは、3から1へ変更)される。
【0154】
このため、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS150)。
【0155】
一方、第2のスレーブ20BのTXファイ端子231に、第2のスレーブ20BのTXファイ端子231が機能しなくなるファイ端子異常が発生しても、第2のスレーブ20Bにおいて、ファイ230は、RXファイ端子232とその接続先である第3のスレーブ20Cのファイ250のTXファイ端子251とのリンクを検出する。このため、第2のスレーブ20Bにおいて、第2のスレーブ20Bの検出部25は、第3の入出力ポート21の接続に係る異常を検出しない。
【0156】
ステップS140Bの処理において、第3のスレーブ20Cのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレームを送信すると、第2のスレーブ20Bの第3の入出力ポート21は、その断線ノード通知フレームを受信する。
【0157】
第2のスレーブ20Bの第3の入出力ポート21が断線ノード通知フレームを受信すると、第2のスレーブ20Bのスレーブ送信制御部23は、その断線ノード通知フレームに含まれるノードカウント値(ここでは、0)に1を加えたノードカウント値(ここでは、0+1=1)を含む断線ノード通知フレームを、第4の入出力ポート22から送信する(ステップS140C)。
【0158】
ここで、第2のスレーブ20Bのスレーブ送信制御部23は、0を示すノードカウント値を含む断線ノード通知フレームを受信したため、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードへと切り替える(ステップS160)。
【0159】
ステップS140Cの処理において、第2のスレーブ20Bのスレーブ送信制御部23が、第4の入出力ポート22で、断線ノード通知フレームを送信すると、第1のスレーブ20Aの第3の入出力ポート21は、その断線ノード通知フレームを受信する。
【0160】
第1のスレーブ20Aの第3の入出力ポート21が断線ノード通知フレームを受信すると、第1のスレーブ20Aのスレーブ送信制御部23は、その断線ノード通知フレームに含まれるノードカウント値(ここでは、1)に1を加えたノードカウント値(ここでは、1+1=2)を含む断線ノード通知フレームを、第4の入出力ポート22から送信する(ステップS140D)。
【0161】
ステップS140Aの処理において、第3のスレーブ20Cのスレーブ送信制御部23が、第3の入出力ポート21から、断線ノード通知フレーム(以下、「第3の断線ノード通知フレーム」とも称する)を送信すると、第2の入出力ポート12は、その第3の断線ノード通知フレームを受信する。
【0162】
ステップS140Dの処理において、第1のスレーブ20Aのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレーム(以下、「第4の断線ノード通知フレーム」とも称する)を送信すると、第1の入出力ポート11は、その第4の断線ノード通知フレームを受信する。
【0163】
第2の入出力ポート12が第3の断線ノード通知フレームを受信し、第1の入出力ポート11が第4の断線ノード通知フレームを受信すると、異常種類判定部15は、第3の断線ノード通知フレームに含まれるMACID(ここでは、第3のスレーブ20CのMACID)と、第4の断線ノード通知フレームに含まれるMACID(ここでは、第1のスレーブ20AのMACID)とに基づいて、通信システム1において生じた異常がファイ端子異常であると判定する(ステップS170)。
【0164】
すなわち、異常種類判定部15は、第1の入出力ポート11および第2の入出力ポート12が断線ノード通知フレームを所定時間内に受信した場合において、それら断線ノード通知フレームに含まれるMACIDが等しいときに、通信システム1において生じた異常がファイ端子異常であると判定する。
【0165】
異常種類判定部15が、通信システム1において生じた異常がファイ端子異常であると判定すると、異常位置判定部14は、第3の断線ノード通知フレームと第4の断線ノード通知フレームとに含まれるノードカウント値に基づいて、ファイ端子異常の発生位置が、第3のスレーブ20Cと第2のスレーブ20Bとの間であると判定する(ステップS180)。
【0166】
すなわち、異常位置判定部14は、第3の断線ノード通知フレームに含まれるノードカウント値(ここでは、1)と、第4の断線ノード通知フレームに含まれるノードカウント値(ここでは、2)とから、1を示すノードカウント値を含む断線ノード通知フレームを送信した2つのスレーブ20を特定する(ここでは、第3のスレーブ20Cと第2のスレーブ20Bとを特定する)。そして、異常位置判定部14は、ファイ端子異常の発生位置が、特定した2つのスレーブ20の間(ここでは、第3のスレーブ20Cと第2のスレーブ20Bとの間)であると判定する。
【0167】
異常位置判定部14は、例えば、スレーブ20の接続順をあらかじめ記憶し、記憶するスレーブ20の接続順とノードカウント値とから、1を示すノードカウント値を示す断線ノート通知フレームを送信した2つのスレーブ20を特定するとしてもよい。
【0168】
異常位置判定部14が異常の発生位置を判定すると、コントローラ送信制御部13は、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える(ステップS190)。
【0169】
通信システム1が行う上記第2の動作により、コントローラ送信制御部13の動作モードが、第1のコントローラ動作モードから第2のコントローラ動作モードへと変更される。また、通信システム1が行う上記第2の動作により、第3のスレーブ20Cのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。また、通信システム1が行う上記第2の動作により、第2のスレーブ20Bのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。これにより、通常フレームの送信経路が、主通信経路(図4参照)から、第1の冗長送信経路(図6参照)に変更される。
【0170】
このように、通信システム1は、通常フレームの送信経路が主送信経路である場合において、TXファイ端子が機能しなくなるファイ端子異常が発生したときに、送信経路をそのファイ端子異常が発生したファイを利用しない送信経路に変更して、通常フレームを各スレーブ20に送信する。
【0171】
次に、通常フレームの送信経路が主送信経路である場合において、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生したときに、通信システム1が行う動作(以下、「第3の動作」とも称する)について説明する。
【0172】
図12は、第2のスレーブ20BのRXファイ端子252に、RXファイ端子252が機能しなくなるファイ端子異常が発生した様子を示す模式図である。図13は、第3の動作のシーケンス図である。なお、ここでは、RXファイ端子が機能しなくなるファイ端子異常は、例えば、ファイの故障、RXファイ端子の接続経路に不具合が生じる等の理由により、RXファイ端子が機能しなくなる異常のことをいう。
【0173】
図13に示すように、第2のスレーブ20BのRXファイ端子252に、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生すると、第2のスレーブ20Bにおいて、ファイ250は、RXファイ端子252とその接続先である第1のスレーブ20Aのファイ230のTXファイ端子231とのリンクを検出しなくなる。このため、第2のスレーブ20Bにおいて、第2のスレーブ20Bの検出部25は、第4の入出力ポート22の接続に係る異常を検出する(ステップS210)。
【0174】
第2のスレーブ20Bの検出部25が、第4の入出力ポート22の接続に係る異常を検出すると、第2のスレーブ20Bのスレーブ送信制御部23は、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードに切り替える(ステップS220)。
【0175】
そして、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームの送信を試みる(ステップS230)。
【0176】
この際、第2のスレーブ20Bのスレーブ送信制御部23は、送信を試みる断線ノード通知フレームに、スレーブ送信制御部23を含む第2のスレーブ20BのMACIDを含ませる。また、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21から、1を示すノードカウント値を含む断線ノード通知フレームの送信を試み、第4の入出力ポート22から、0を示すノードカウント値を含む断線ノード通知フレームの送信を試みる。
【0177】
前述した通り、第2のスレーブ20BのRXファイ端子252に、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生している。しかしながら、第2のスレーブ20BのTXファイ端子251から第1のスレーブ20AのRXファイ端子232への信号の送信は可能である。このため、第4の入出力ポート22からの断線ノード通知フレームの送信の試みは成功する。すなわち、第2のスレーブ20Bのスレーブ送信制御部23は、第4の入出力ポート22から、断線ノード通知フレームを送信する(ステップS240B)。一方で、第3の入出力ポート21からの断線ノード通知フレームの送信の試みも成功する。すなわち、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21から、断線ノード通知フレームを送信する(ステップS240A)。
【0178】
ここで、第2のスレーブ20Bの検出部25が、第4の入出力ポート22の接続に係る異常を検出した時点において、通常フレームの送信経路は、主送信経路である。また、後述するように、第2のスレーブ20BのRXファイ端子252に、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生したことにより、通常フレームの送信経路は、主送信経路から第2の冗長送信経路(後述)に変更される。このため、第2のスレーブ20Bにおいて、通常フレームの送信経路における、第2のスレーブ20Bのコントローラ10からの接続順が変更される。ここでは、2から2へと、見かけ上変更されないように見えるが、この例では、たまたま変更前の接続順と変更後の接続順とが等しくなっているため、単に見かけ上変更されないように見えているに過ぎない。
【0179】
図14は、第2の冗長送信経路を示す模式図である。第2の冗長送信経路は、コントローラ送信制御部13が第2のコントローラ動作モードで動作し、第1のスレーブ20Aと第2のスレーブ20Bとのスレーブ送信制御部23が第2のスレーブ動作モードで動作し、第3のスレーブ20Cのスレーブ送信制御部23が第1のスレーブ動作モードで動作している場合における、通常フレームの送信経路である。
【0180】
図14において、第2の冗長送信経路は、実線の矢印で示される経路である。
【0181】
図14に示すように、第2の冗長送信経路は、第1の送信経路と、第2の送信経路とからなる。第1の送信経路は、コントローラ10から、順に、第1のスレーブ20Aを経由して、再びコントローラ10に戻る第1の送信経路、すなわち第1のスレーブ20Aで折り返す経路である。第2の送信経路は、コントローラ10から順に、第3のスレーブ20C、第2のスレーブ20B、第3のスレーブ20Cを経由して、再びコントローラ10に戻る送信経路、すなわち第2のスレーブ20Bで折り返す経路とからなる送信経路である。
【0182】
再び図13に戻って、第3の動作の説明を続ける。
【0183】
第2のスレーブ20Bにおいて、同期タイミング算出部24は、通常フレームの送信経路が、主送信経路から第2の冗長送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、(式1)における「送信経路における接続順」を算出する。より具体的には、同期タイミング算出部24は、あらかじめ記憶するスレーブ20数(ここでは3)から、検出部25が接続に係る異常を検出した時点における、コントローラ10からの接続順番(ここでは、あらかじめ記憶する、主送信経路における、コントローラ10からの接続順番(ここでは2))を引いた値に1を加えた値(ここでは、3-2+1=2)を、(式1)における「送信経路における接続順」と算出する。
【0184】
このように、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS250)。
【0185】
ステップS240Aの処理において、第2のスレーブ20Bのスレーブ送信制御部23が、第3の入出力ポート21から、断線ノード通知フレームを送信すると、第3のスレーブ20Cの第4の入出力ポート22は、その断線ノード通知フレームを受信する。
【0186】
第3のスレーブ20Cの第4の入出力ポート22が断線ノード通知フレームを受信すると、第3のスレーブ20Cのスレーブ送信制御部23は、その断線ノード通知フレームに含まれるノードカウント値(ここでは、1)に1を加えたノードカウント値(ここでは、1+1=2)を含む断線ノード通知フレームを、第3の入出力ポート21から送信する(ステップS240C)。
【0187】
前述したように、第2のスレーブ20BのRXファイ端子252に、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生したことにより、通常フレームの送信経路は、主送信経路から第2の冗長送信経路に変更される。このため、第3のスレーブ20Cにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更(ここでは、3から1へ変更)される。
【0188】
第3のスレーブ20Cにおいて、同期タイミング算出部24は、通常フレームの送信経路が、主送信経路から第2の冗長送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、(式1)における「送信経路における接続順」を算出する。より具体的には、同期タイミング算出部24は、あらかじめ記憶するスレーブ20数(ここでは3)から、検出部25が接続に係る異常を検出した時点における、コントローラ10からの接続順番(ここでは、あらかじめ記憶する、主送信経路における、コントローラ10からの接続順番(ここでは3))を引いた値に1を加えた値(ここでは、3-3+1=1)を、(式1)における「送信経路における接続順」と算出する。
【0189】
このように、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS270)。言い換えると、同期タイミング算出部24は、通常フレームを受信する側の入出力ポート(ここでは第4の入出力ポート22)で断線ノード通知フレームを受信した場合に、通常フレームを次回以降、当該入出力ポートではない入出力ポートが受信するときに、複数のスレーブ20の全てが同期して動作する同期タイミングが変わらないように、同期タイミング信号XSYNCを算出する算出方法を更新する。
【0190】
一方、第2のスレーブ20BのRXファイ端子252に、第2のスレーブ20BのRXファイ端子252が機能しなくなるファイ端子異常が発生しても、第1のスレーブ20Aにおいて、ファイ230は、RXファイ端子232とその接続先である第2のスレーブ20Bのファイ250のTXファイ端子251とのリンクを検出する。このため、第1のスレーブ20Aにおいて、第1のスレーブ20Aの検出部25は、第3の入出力ポート21の接続に係る異常を検出しない。
【0191】
ステップS240Bの処理において、第2のスレーブ20Bのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレームを送信すると、第1のスレーブ20Aの第3の入出力ポート21は、その断線ノード通知フレームを受信する。
【0192】
第1のスレーブ20Aの第3の入出力ポート21が断線ノード通知フレームを受信すると、第1のスレーブ20Aのスレーブ送信制御部23は、その断線ノード通知フレームに含まれるノードカウント値(ここでは、0)に1を加えたノードカウント値(ここでは、0+1=1)を含む断線ノード通知フレームを、第4の入出力ポート22から送信する(ステップS240D)。
【0193】
ここで、第1のスレーブ20Aのスレーブ送信制御部23は、0を示すノードカウント値を含む断線ノード通知フレームを受信したため、動作モードを第1のスレーブ動作モードから第2のスレーブ動作モードへと切り替える(ステップS260)。
【0194】
ステップS240Cの処理において、第3のスレーブ20Cのスレーブ送信制御部23が、第3の入出力ポート21から、断線ノード通知フレーム(以下、「第5の断線ノード通知フレーム」とも称する)を送信すると、第2の入出力ポート12は、その第5の断線ノード通知フレームを受信する。
【0195】
ステップS240Dの処理において、第1のスレーブ20Aのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレーム(以下、「第6の断線ノード通知フレーム」とも称する)を送信すると、第1の入出力ポート11は、その第6の断線ノード通知フレームを受信する。
【0196】
第2の入出力ポート12が第5の断線ノード通知フレームを受信し、第1の入出力ポート11が第6の断線ノード通知フレームを受信すると、異常種類判定部15は、第5の断線ノード通知フレームに含まれるMACID(ここでは、第3のスレーブ20CのMACID)と、第6の断線ノード通知フレームに含まれるMACID(ここでは、第1のスレーブ20AのMACID)とに基づいて、通信システム1において生じた異常がファイ端子異常であると判定する(ステップS280)。
【0197】
異常種類判定部15が、通信システム1において生じた異常がファイ端子異常であると判定すると、異常位置判定部14は、第5の断線ノード通知フレームと第6の断線ノード通知フレームとに含まれるノードカウント値に基づいて、ファイ端子異常の発生位置が、第2のスレーブ20Bと第1のスレーブ20Aとの間であると判定する(ステップS290)。
【0198】
すなわち、異常位置判定部14は、第5の断線ノード通知フレームに含まれるノードカウント値(ここでは、2)と、第6の断線ノード通知フレームに含まれるノードカウント値(ここでは、1)とから、1を示すノードカウント値を含む断線ノード通知フレームを送信した2つのスレーブ20を特定する(ここでは、第2のスレーブ20Bと第1のスレーブ20Aとを特定する)。そして、異常位置判定部14は、ファイ端子異常の発生位置が、特定した2つのスレーブ20の間(ここでは、第2のスレーブ20Bと第1のスレーブ20Aとの間)であると判定する。
【0199】
異常位置判定部14が異常の発生位置を判定すると、コントローラ送信制御部13は、動作モードを第1のコントローラ動作モードから第2のコントローラ動作モードに切り替える(ステップS300)。
【0200】
通信システム1が行う上記第3の動作により、コントローラ送信制御部13の動作モードが、第1のコントローラ動作モードから第2のコントローラ動作モードへと変更される。また、通信システム1が行う上記第3の動作により、第2のスレーブ20Bのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。また、通信システム1が行う上記第3の動作により、第1のスレーブ20Aのスレーブ送信制御部23の動作モードが、第1のスレーブ動作モードから第2のスレーブ動作モードへと変更される。これにより、通常フレームの送信経路が、主通信経路(図4参照)から、第2の冗長送信経路(図14参照)に変更される。
【0201】
このように、通信システム1は、通常フレームの送信経路が主送信経路である場合において、RXファイ端子が機能しなくなるファイ端子異常が発生したときに、送信経路をそのファイ端子異常が発生しファイを利用しない送信経路に変更して、通常フレームを各スレーブ20に送信する。
【0202】
次に、ケーブル30Cにケーブル断線異常が発生したことに起因して、通常フレームの送信経路が第1の冗長送信経路である場合において、ケーブル30Cのケーブル断線異常が回復したときに、通信システム1が行う動作(以下、「第4の動作」とも称する)について説明する。
【0203】
図15は、ケーブル30Cのケーブル断線異常が回復した様子を示す模式図である。図16は、第4の動作のシーケンス図である。
【0204】
図16に示すように、ケーブル30Cのケーブル断線異常が回復すると、第3のスレーブ20Cにおいて、ファイ250は、RXファイ端子252とその接続先である第2のスレーブ20Bのファイ230のTXファイ端子231とのリンクを検出するようになる。このため、第3のスレーブ20Cにおいて、第3のスレーブ20Cの検出部25は、第4の入出力ポート22の接続に係る異常の回復を検出する(ステップS310A)。
【0205】
第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常の回復を検出すると、第3のスレーブ20Cのスレーブ送信制御部23は、動作モードを第2のスレーブ動作モードから第1のスレーブ動作モードに切り替える(ステップS320A)。
【0206】
そして、第3のスレーブ20Cのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームを送信する(ステップS340A)。
【0207】
この際、第3のスレーブ20Cのスレーブ送信制御部23は、送信する断線ノード通知フレームに、スレーブ送信制御部23を含む第3のスレーブ20CのMACIDを含ませる。
【0208】
ここで、第3のスレーブ20Cの検出部25が、第4の入出力ポート22の接続に係る異常の回復を検出した時点において、通常フレームの送信経路は、第1の冗長送信経路である。また、後述するように、ケーブル30Cのケーブル断線異常が回復したことにより、通常フレームの送信経路は、第1の冗長送信経路から主送信経路に変更される。このため、第3のスレーブ20Cにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更(ここでは、1から3へ変更)される。
【0209】
同期タイミング算出部24は、通常フレームの送信経路が、第1の冗長送信経路から主送信経路に変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、(式1)における「送信経路における接続順」を算出する。より具体的には、同期タイミング算出部24は、あらかじめ記憶する、主送信経路における、コントローラ10からの接続順番(ここでは3)を、(式1)における「送信経路における接続順」と算出する。
【0210】
このように、同期タイミング算出部24は、「送信経路における接続順」が変更されても、同期タイミング信号XSYNCのパルスタイミングTは変更されないように、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS350)。
【0211】
一方、ケーブル30Cのケーブル断線異常が回復すると、第2のスレーブ20Bにおいて、ファイ230は、RXファイ端子232とその接続先である第3のスレーブ20Cのファイ250のTXファイ端子251とのリンクを検出するようになる。このため、第2のスレーブ20Bにおいて、第2のスレーブ20Bの検出部25は、第3の入出力ポート21の接続に係る異常の回復を検出する(ステップS310B)。
【0212】
第2のスレーブ20Bの検出部25が、第3の入出力ポート21の接続に係る異常の回復を検出すると、第2のスレーブ20Bのスレーブ送信制御部23は、動作モードを第2のスレーブ動作モードから第1のスレーブ動作モードに切り替える(ステップS320B)。
【0213】
そして、第2のスレーブ20Bのスレーブ送信制御部23は、第3の入出力ポート21と第4の入出力ポート22とから、断線ノード通知フレームを送信する(ステップS340B)。
【0214】
この際、第2のスレーブ20Bのスレーブ送信制御部23は、送信する断線ノード通知フレームに、スレーブ送信制御部23を含む第2のスレーブ20BのMACIDを含ませる。
【0215】
ここで、第2のスレーブ20Bの検出部25が、第3の入出力ポート21の接続に係る異常の回復を検出した時点において、通常フレームの送信経路は、第1の冗長送信経路である。また、後述するように、ケーブル30Cのケーブル断線異常が回復したことにより、通常フレームの送信経路は、第1の冗長送信経路から主送信経路に変更される。このため、第2のスレーブ20Bにおいて、通常フレームの送信経路における、第3のスレーブ20Cのコントローラ10からの接続順が変更されない。このため、第2のスレーブ20Bの同期タイミング算出部24は、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新しない。
【0216】
ステップS340Bの処理において、第2のスレーブ20Bのスレーブ送信制御部23が、第4の入出力ポート22から、断線ノード通知フレームを送信すると、第1のスレーブ20Aの第3の入出力ポート21は、その断線ノード通知フレームを受信する。
【0217】
第1のスレーブ20Aの第3の入出力ポート21が断線ノード通知フレームを受信すると、第1のスレーブ20Aのスレーブ送信制御部23は、その断線ノード通知フレームを、第4の入出力ポート22から送信する(ステップS340C)。
【0218】
第2の入出力ポート12が第1の断線ノード通知フレームを受信し、第1の入出力ポート11が第2の断線ノード通知フレームを受信すると、コントローラ送信制御部13は、動作モードを第2のコントローラ動作モードから第1のコントローラ動作モードに切り替える(ステップS360)。
【0219】
通信システム1が行う上記第4の動作により、コントローラ送信制御部13の動作モードが、第2のコントローラ動作モードから第1のコントローラ動作モードへと変更される。また、通信システム1が行う上記第4の動作により、第3のスレーブ20Cのスレーブ送信制御部23の動作モードが、第2のスレーブ動作モードから第1のスレーブ動作モードへと変更される。また、通信システム1が行う上記第4の動作により、第2のスレーブ20Bのスレーブ送信制御部23の動作モードが、第2のスレーブ動作モードから第1のスレーブ動作モードへと変更される。これにより、通常フレームの送信経路が、第1の冗長通信経路(図6参照)から、主送信経路(図4参照)に変更される。
【0220】
このように、通信システム1は、ケーブル30Cにケーブル断線異常が発生したことに起因して、通常フレームの送信経路が第1の冗長送信経路である場合において、ケーブル30のケーブル断線異常が回復したときに、送信経路を主送信経路に変更して、通常フレームを各スレーブ20に送信する。
【0221】
以下、通信システム1の初期状態において、通信フレームの送信経路が主送信経路である場合における、スレーブ20の動作およびコントローラ10の動作について説明する。
【0222】
図17図18とは、通信システム1の初期状態において、通信フレームの送信経路が主送信経路である場合における、スレーブ20の動作の一例を示すフローチャートである。
【0223】
通信システム1の初期状態において、スレーブ20は、接続に係る異常を検出しない(ステップS500:No)限りにおいて、かつ、断線ノード通知フレームを受信しない(ステップS515:No)限りにおいて、主送信経路上流側で通常フレームを受信する(ステップS545)と、主送信経路下流側から通常フレームを送信する(ステップS550)という処理を繰り返し行う。
【0224】
スレーブ20は、ステップS500の処理において、接続に係る異常を検出すると(ステップS500:Yes)、第3の入出力ポート21と第4の入出力ポート22との両方の入出力ポートから断線ノード通知フレームを送信する(ステップS505)。
【0225】
スレーブ20は、接続に係る異常の検出が、主送信経路の上流側の入出力ポートの接続に係る異常の検出であった場合に(ステップS510:Yes)、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS530)。
【0226】
スレーブ20は、ステップS515の処理において、断線ノード通知フレームを受信すると(ステップS515:Yes)、受信した断線ノード通知フレームに含まれるノードカウント値が0であるか否かを調べる(ステップS520)。
【0227】
ステップS520の処理において、ノードカウント値が0である場合において(ステップS520:Yes)、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信であったときに(ステップS525:Yes)、スレーブ20は、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS530)。
【0228】
ステップS520の処理において、ノードカウント値が0でない場合に(ステップS520:No)、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信であれば(ステップS535:Yes)、スレーブ20は、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS540)。
【0229】
ステップS510の処理において、接続に係る異常の検出が、主送信経路の上流側の入出力ポートの接続に係る異常の検出でなかった場合と(ステップS510:No)、ステップS525の処理において、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信でなかった場合と(ステップS525:No)、ステップS530の処理が終了した場合とに、スレーブ20は、接続に係る異常の回復を検出しない(ステップS605:No)限りにおいて、接続に係る異常を検出していない側の入出力ポートで通常フレームを受信する(ステップS600)と、接続に係る異常を検出していない側の入出力ポートから通常フレームを送信する(ステップS625)という処理を繰り返し行う。
【0230】
スレーブ20は、ステップS605の処理において、接続に係る異常の回復を検出すると(ステップS605:Yes)、第3の入出力ポート21と第4の入出力ポート22との両方の入出力ポートから断線ノード通知フレームを送信する(ステップS610)。
【0231】
スレーブ20は、接続に係る異常の回復の検出が、主送信経路の上流側の入出力ポートの接続に係る異常の検出であった場合に(ステップS615:Yes)、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS620)。
【0232】
ステップS535の処理において、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信でない場合と(ステップS535:No)、ステップS540の処理が終了した場合とに、スレーブ20は、通常フレームを受信する(ステップS630)と、断線ノード通知フレームを受信しない(ステップS635:No)限りにおいて、受信時と異なる入出力ポートから通常フレームを送信する(ステップS650)という処理を繰り返し行う。
【0233】
ステップS635の処理において、断線ノード通知フレームを受信した場合において(ステップS635:Yes)、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信であったときに(ステップS640:Yes)、スレーブ20は、同期タイミング信号XSYNCのパルスタイミングTの算出方法を更新する(ステップS645)。
【0234】
ステップS615の処理において、接続に係る異常の回復の検出が、主送信経路の上流側の入出力ポートの接続に係る異常の検出でなかった場合(ステップS615:No)と、ステップS640の処理において、断線ノード通知フレームの受信が、主送信経路の上流側の入出力ポートによる受信でなかった場合(ステップS640:No)と、ステップS620の処理が終了した場合と、ステップS645の処理が終了した場合とに、スレーブ20は、ステップS500の処理に進む。
【0235】
図19は、通信システム1の初期状態において、通信フレームの送信経路が主送信経路である場合における、コントローラ10の動作の一例を示すフローチャートである。
【0236】
通信システム1の初期状態において、コントローラ10は、主送信経路上流側の入出力ポートから通常フレームを送信する(ステップS700)と、第1の入出力ポート11と第2の入出力ポート12との両方の入出力ポートで断線ノード通知フレームを受信しない(ステップS705:No)限りにおいて、主送信経路下流側の入出力ポートで通常フレームを受信する(ステップS760)という処理を繰り返し行う。
【0237】
コントローラ10は、ステップS700の処理において、両方の入出力ポートで断線ノード通知フレームを受信すると(ステップS705:Yes)、受信した2つの断線ノード通知フレームに含まれるMACIDが互いに異なるか否かを調べる(ステップS710)。
【0238】
ステップS710の処理において、受信した2つの断線ノード通知フレームに含まれるMACIDが互いに異なる場合に(ステップS710:Yes)、コントローラ10は、通信システム1において生じた異常がケーブル断線異常であると判定する(ステップS715)。そして、コントローラ10は、それらMACIDに基づいて、ケーブル断線異常の発生位置が、それらMACIDのスレーブ20の間であると判定する(ステップS720)。
【0239】
ステップS710の処理において、受信した2つの断線ノード通知フレームに含まれるMACIDが互いに異ならない場合に(ステップS710:No)、コントローラ10は、通信システム1において生じた異常がファイ端子異常であると判定する(ステップS725)。そして、コントローラ10は、それら2つの断線ノード通知フレームに含まれるノードカウント値に基づいて、ファイ異常の発生位置が、1を示すノードカウント値を含む断線ノード通知フレームを送信した2つのスレーブ20の間であると判定する(ステップS730)。
【0240】
ステップS720の処理が終了した場合と、ステップS730の処理が終了した場合とに、コントローラ10は、第1の入出力ポート11と第2の入出力ポート12との両方の入出力ポートから通常フレームを送信する(ステップS735)と、断線ノード通知フレームを受信しない(ステップS740:No)限りにおいて、第1の入出力ポート11と第2の入出力ポート12との両方の入出力ポートで通常フレームを受信する(ステップS750)という処理を繰り返し行う。
【0241】
ステップS740の処理において、断線ノード通知フレームを受信すると(ステップS740:Yes)、コントローラ10は、通信システム1において生じた異常が回復したことを検出し(ステップS755)、ステップS700の処理に進む。
【0242】
[1-3.考察]
上記構成の通信システム1によると、いずれかのスレーブ20において、検出部25が、第3の入出力ポート21の接続に係る異常、または、第4の入出力ポート22の接続に係る異常を検出すると、すなわち、ネットワークの接続に係る異常を検出すると、そのスレーブ20から、コントローラ10に向けて、断線ノード通知フレームが送信される。これにより、ネットワークの接続に係る異常が発生してから、比較的短時間で、通信システム1における通常フレームの送信経路が変更される。
【0243】
このように、通信システム1によると、ネットワークの接続に係る異常が発生してから、フレームの送信経路が変更されるまでにかかる時間を、従来よりも短縮することができる。
【0244】
また、上記構成の通信システム1によると、ネットワークの接続に係る異常の種類を判定することができる。
【0245】
また、上記構成の通信システム1によると、ネットワークの接続に係る異常の発生位置を判定することができる。
【0246】
また、上記構成の通信システム1によると、ネットワークの接続に係る異常が回復した場合に、通常フレームの送信経路を元に戻すことができる。
【0247】
(実施の形態2)
以下、実施の形態1に係る通信システム1の一部が変更されて構成される実施の形態2に係る通信システムについて説明する。
【0248】
以下では、実施の形態2に係る通信システムについて、実施の形態1に係る通信システム1の構成要素と同様の構成要素については、既に説明済みであるとして同じ符号を振ってその詳細な説明を省略し、通信システム1との相違点を中心に説明する。
【0249】
実施の形態2に係る通信システムは、実施の形態1に係る通信システム1から、コントローラ10が実施の形態2に係るコントローラ10Aに変更されて構成される。
【0250】
図20は、実施の形態2に係るコントローラ10Aの機能構成の一例を示すブロック図である。
【0251】
図20に示すように、コントローラ10Aは、実施の形態1に係るコントローラ10から、コントローラ送信制御部13がコントローラ送信制御部13Aに変更されて構成される。
【0252】
コントローラ送信制御部13Aは、コントローラ送信制御部13が有する機能に加えて、さらに以下の機能を有する。
【0253】
すなわち、コントローラ送信制御部13Aは、実施の形態2に係る通信システムのユーザから、実施の形態2に係る通信システムにおいて、2か所以上異常が生じた場合に、通常フレームの送信を停止するか否かの設定を受け付ける。
【0254】
そして、コントローラ送信制御部13Aは、2か所以上異常が生じた場合に、通常フレームの送信を停止する旨の設定を受け付けたときにおいて、実施の形態2に係る通信システムにおいて、2か所以上異常が生じたら、通常フレームの送信を停止する。
【0255】
コントローラ送信制御部13Aは、例えば、コントローラ10Aが備える入力インターフェース(例えば、タッチパッド、ディップスイッチ等)を利用して、通常フレームの送信を停止するか否かの設定を受け付けるとしてもよい。
【0256】
また、実施の形態2に係る通信システムにおいて、コントローラ送信制御部13Aは、例えば、第1のコントローラ動作モードで動作している場合に、第1の入出力ポート11と第2の入出力ポート12とが、それぞれ断線ノード通知フレームを受信したときに、それら断線ノード通知フレームに含まれるノードカウント値の合計が、あらかじめ記憶する全てのスレーブ20の数よりも少なければ、2か所以上異常が生じていると判定してもよい。
【0257】
上記構成の実施の形態2に係る通信システムを利用するユーザは、例えば、実施の形態2に係る通信システムにおいて、1以上のスレーブ20が通常フレームを受信できないことにより不具合が生じる場合には、コントローラ送信制御部13Aに、実施の形態2に係る通信システムにおいて、2か所以上異常が生じた場合に、通常フレームの送信を停止すると設定してもよい。
【0258】
実施の形態2に係る通信システムを利用するユーザは、コントローラ送信制御部13Aに、実施の形態2に係る通信システムにおいて、2か所以上異常が生じた場合に、通常フレームの送信を停止しないと設定することで、例えば、実施の形態2に係る通信システムに含まれる複数のスレーブ20のうちの1のスレーブ20の入れ替えを、他のスレーブ20の動作を止めることなく行うことができる。
【0259】
図21は、実施の形態2に係る通信システムを利用するユーザが、複数のスレーブ20のうちの1のスレーブ20(ここでは、第3のスレーブ20C)の入れ替えを、他のスレーブ20(ここでは、第1のスレーブ20Aと第2のスレーブ20Bと第4のスレーブ20D)の動作を止めることなく行っている様子を示す模式図である。
【0260】
図21に示すように、実施の形態2に係る通信システムを利用するユーザは、ケーブル30Cから第3のスレーブ20Cの第4の入出力ポート22を取り外して、替わりに第5のスレーブ20Eの第4の入出力ポート22を接続する。また、ケーブル30Eから第3のスレーブ20Cの第3の入出力ポート21を取り外して、替わりに第4のスレーブ20Dの第3の入出力ポート21を接続する。このようにすることで、第1のスレーブ20Aと第2のスレーブ20Bと第4のスレーブ20Dとの動作を止めることなく、第3のスレーブ20Cを第5のスレーブ20Eに入れ替えることができる。
【0261】
実施の形態2に係る通信システムを利用するユーザは、コントローラ送信制御部13Aに、実施の形態2に係る通信システムにおいて、2か所以上異常が生じた場合に、通常フレームの送信を停止しないと設定することで、例えば、実施の形態2に係る通信システムに含まれる複数のスレーブ20のうちの1のスレーブ20の取り外しを、他のスレーブ20の動作を止めることなく行うことができる。
【0262】
図22は、実施の形態2に係る通信システムを利用するユーザが、複数のスレーブ20のうちの1のスレーブ20(ここでは、第3のスレーブ20C)の取り外しを、他のスレーブ20(ここでは、第1のスレーブ20Aと第2のスレーブ20Bと第4のスレーブ20D)の動作を止めることなく行っている様子を示す模式図である。
【0263】
図22に示すように、実施の形態2に係る通信システムを利用するユーザは、ケーブル30Eから第4のスレーブ20Dの第4の入出力ポート22と第3のスレーブ20Cの第3の入出力ポート21とを取り外し、ケーブル30Cから第3のスレーブ20Cの第4の入出力ポート22を取り外して、替わりに第4のスレーブ20Dの第4の入出力ポート22を接続する。このようにすることで、第1のスレーブ20Aと第2のスレーブ20Bと第4のスレーブ20Dとの動作を止めることなく、第3のスレーブ20Cを取り外すことができる。
【0264】
(実施の形態3)
図23は、実施の形態3に係る通信システム1の構成の一例を示すブロック図である。
【0265】
図23に示すように、通信システム1は、第1の入出力ポート11と、第2の入出力ポート12とを有するコントローラ10と、各々が、第3の入出力ポート21と、第4の入出力ポート22とを有するN個のスレーブ20を備える。なお、Nは2以上の整数である。図23には、N個のスレーブ20として、第1のスレーブ20Aと、第K―1(Kは整数であり、3≦K≦N-1)のスレーブ20と、第Kのスレーブ20と、第Nのスレーブ20とが示されている。実施の形態1と同様、第1の入出力ポート11、第2の入出力ポート12、第3の入出力ポート21および第4の入出力ポート22は、ケーブル30により接続されている。すなわち、実施の形態3に係る通信システム1は、N個のスレーブ20に一般化した通信システム1の場合を表している。
【0266】
実施の形態3に係る通信システム1は、実施の形態1に係る通信システム1と同様の効果が得られる。
【0267】
(補足)
以上、本開示の一態様に係る通信システム等について、実施の形態1、実施の形態2に基づいて説明したが、本開示は、これら実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形をこれら実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本開示の1つまたは複数の態様の範囲内に含まれてもよい。
【産業上の利用可能性】
【0268】
本開示は、コントローラと複数のスレーブとを備える通信システム等に広く利用可能である。
【符号の説明】
【0269】
1 通信システム
10、10A コントローラ
11 第1の入出力ポート
12 第2の入出力ポート
13、13A コントローラ送信制御部
14 異常位置判定部
15 異常種類判定部
20 スレーブ
20A 第1のスレーブ
20B 第2のスレーブ
20C 第3のスレーブ
20D 第4のスレーブ
20E 第5のスレーブ
21 第3の入出力ポート
22 第4の入出力ポート
23 スレーブ送信制御部
24 同期タイミング算出部
25 検出部
30、30A、30B、30C、30D、30E ケーブル
50 通常フレーム
101、201 プロセッサ
102、202 メモリ
110、120、210、220 コネクタ
111、121、211、221 送信端子TX
112、122、212、222 受信端子RX
130、150、230、250 ファイ
131、151、231、251 TXファイ端子
132、152、232、252 RXファイ端子
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23