(57)【特許請求の範囲】
【請求項１】
１つのマスタノードと１つまたは複数のスレーブノードとが通信バスにて接続されるとともに、上記マスタノードと上記１つまたは複数のスレーブノードとがノード識別子設定状況を通知する通知線にてデイジーチェーン接続でかつリング状に接続されている通信システムのノード識別子設定方法であって、
上記マスタノードが、上記通知線において後に接続されているスレーブノードに設定開始信号を出力し、上記通知線から上記設定開始信号を入力したスレーブノードは、上記通信バス上へのメッセージ送信を停止するとともに、上記通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力し、上記マスタノードは、上記通知線において前に接続されているスレーブノードから上記設定開始信号を受け取ると、再度、上記通知線において後に接続されているスレーブノードに再度設定開始信号を出力して、当該スレーブノードにノード識別子の設定を行うための要求メッセージを上記通信バス上に送信する第１ステップと、
上記通知線から上記設定開始信号を入力したスレーブノードは、上記通信バス上に流れている上記要求メッセージを受信し、上記要求メッセージで要求されたノード識別子を自スレーブノードの固有のノード識別子として設定し、上記通信バス上へノード識別子設定を行ったとの応答メッセージを送信するとともに、上記通知線において後に接続されているスレーブノードまたはマスタノードに上記設定開始信号を出力する第２ステップと、
上記マスタノードが、上記応答メッセージを受信し、かつ、上記通知線において前に接続されているスレーブノードから上記設定開始信号を受け取らなければ、別の上記要求メッセージを上記通信バス上に送信して上記第２ステップへ戻り、
上記マスタノードが、上記応答メッセージを受信し、かつ、上記通知線において前に接続されているスレーブノードから上記設定開始信号を受け取るとノード識別子設定を終了する第３ステップと、
を備えたことを特徴とする通信システムのノード識別子設定方法。
【請求項２】
上記第３ステップは、上記マスタノードが上記通知線において前に接続されているスレーブノードから上記設定開始信号を受け取りノード識別子設定を終了する前に、ノード識別子設定の完了メッセージを上記通信バス上に送信することを特徴とする請求項１に記載の通信システムのノード識別子設定方法。
【請求項３】
上記マスタノードは、上記応答メッセージを第１の所定期間が経過しても受信しないと、上記第１ステップに戻ることを特徴とする請求項１または請求項２に記載の通信システムのノード識別子設定方法。
【請求項４】
上記マスタノードは、上記応答メッセージを第１の所定期間が経過しても受信しないと、いずれの上記スレーブノードからの応答メッセージがなかったのかを記録することを特徴とする請求項１ないし請求項３のいずれか１項に記載の通信システムのノード識別子設定方法。
【請求項５】
上記スレーブノードは、自スレーブノードのノード識別子が第２の所定期間が経過しても登録が行われないと、ノード識別子設定を行うための開始要求メッセージを上記通信バス上に送信し、
上記マスタノードは、上記開始要求メッセージを受信すると、上記第１ステップを開始することを特徴とする請求項１ないし請求項４のいずれか１項に記載の通信システムのノード識別子設定方法。
【請求項６】
上記スレーブノードは、自スレーブノードのノード識別子が第２の所定期間が経過しても登録が行われないと、ノード識別子設定が行われなったことを記録することを特徴とする請求項１ないし請求項５のいずれか１項に記載の通信システムのノード識別子設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、マスタノードとスレーブノードとが存在する通信システムのスレーブノードにノード識別子を割り当てる通信システムのノード識別子設定方法に係り、特に接続されるスレーブノードの個数が変化しても、マスタノードの設定を変更することなくスレーブノードへのノード識別子を設定できるものである。
【背景技術】
【０００２】
従来の通信システムのノード識別子設定方法としては、通信システム内のスレーブノードにノード識別子を割り当てる種々の方法が示されている。例えば、通信バス上に接続されるノードにノード識別子を割り当てる方法として、マスタ（ノード識別子を決める側を指す。以下においても同様であるためこの説明は適宜省略する。）ノードとスレーブ（ノード識別子が決まっていない側を指す。以下においても同様であるためこの説明は適宜省略する。）ノードとがあらかじめ同じノード識別子リストを保有する。次に、スレーブノードは、保有するノード識別子リストから一つのノード識別子を選択する。
【０００３】
次に、マスタノードは、保有するノード識別子リストから一つのノード識別子を選択し、すべてのノードに対して送信する。次に、スレーブノードは自身が選択したノード識別子と同じものが送信されれば応答する。次に、スレーブノードは、他のスレーブノードからの応答を監視し、応答したスレーブノードが自身だけなら、そのノード識別子を自スレーブノードの固有のノード識別子として確定する。次に、応答したスレーブノードが他にもあれば、スレーブノードは別のノード識別子を選択しなおす。次に、マスタノードは保有するノード識別子リストの順に送信し、すべてのスレーブノードのノード識別子を決めていく（例えば、特許文献１参照）。
【０００４】
また、他の通信バス上に接続されるノードにノード識別子を割り当てる通信システムのノード識別子設定方法としては、マスタノードは要求メッセージを送信し、要求メッセージを受信したスレーブノードは、ランダム変数に基づき設定した監視時間の間、応答メッセージの送信を待機する。次に、スレーブノードは監視時間中に他のスレーブノードから応答メッセージが送信されなかったとき、受信したノード識別子を自スレーブノードの固有のノード識別子として設定し、応答メッセージを送信する（例えば、特許文献２参照）。
【０００５】
【特許文献１】特開２０００−１６５４３７号公報
【特許文献２】特開２００５−３４１３８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
この発明は、１つのマスタノードと１つまたは複数のスレーブノードとが通信バスにて接続されるとともに、マスタノードと１つまたは複数のスレーブノードとがノード識別子設定状況を通知する通知線にてデイジーチェーン接続でかつリング状に接続されている通信システムのノード識別子設定方法であって、
マスタノードが、通知線において後に接続されているスレーブノードに設定開始信号を出力し、通知線から設定開始信号を入力したスレーブノードは、通信バス上へのメッセージ送信を停止するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力し、マスタノードは、通知線において前に接続されているスレーブノードから設定開始信号を受け取ると、再度、通知線において後に接続されているスレーブノードに再度設定開始信号を出力して、当該スレーブノードにノード識別子の設定を行うための要求メッセージを通信バス上に送信する第１ステップと、
通知線から設定開始信号を入力したスレーブノードは、通信バス上に流れている要求メッセージを受信し、要求メッセージで要求されたノード識別子を自スレーブノードの固有のノード識別子として設定し、通信バス上へノード識別子設定を行ったとの応答メッセージを送信するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力する第２ステップと、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取らなければ、別の要求メッセージを通信バス上に送信して第２ステップへ戻り、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取るとノード識別子設定を終了する第３ステップとを備えたものである。
【０００７】
この発明の通信システムのノード識別子設定方法は、１つのマスタノードと１つまたは複数のスレーブノードとが通信バスにて接続されるとともに、マスタノードと１つまたは複数のスレーブノードとがノード識別子設定状況を通知する通知線にてデイジーチェーン接続でかつリング状に接続されている通信システムのノード識別子設定方法であって、
マスタノードが、通知線において後に接続されているスレーブノードに設定開始信号を出力し、通知線から設定開始信号を入力したスレーブノードは、通信バス上へのメッセージ送信を停止するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力し、マスタノードは、通知線において前に接続されているスレーブノードから設定開始信号を受け取ると、再度、通知線において後に接続されているスレーブノードに再度設定開始信号を出力して、当該スレーブノードにノード識別子の設定を行うための要求メッセージを通信バス上に送信する第１ステップと、
通知線から設定開始信号を入力したスレーブノードは、通信バス上に流れている要求メッセージを受信し、要求メッセージで要求されたノード識別子を自スレーブノードの固有のノード識別子として設定し、通信バス上へノード識別子設定を行ったとの応答メッセージを送信するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力する第２ステップと、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取らなければ、別の要求メッセージを通信バス上に送信して第２ステップへ戻り、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取るとノード識別子設定を終了する第３ステップとを備えたので、マスタノードの設定を変更することなく、全てのスレーブノードへノード識別子を設定することができ、さらに、ノード識別子設定の時間を短縮することができる。
【課題を解決するための手段】
【０００８】
この発明は、１つのマスタノードと１つまたは複数のスレーブノードとが通信バスにて接続されるとともに、マスタノードと１つまたは複数のスレーブノードとがノード識別子設定状況を通知する通知線にてデイジーチェーン接続でかつリング状に接続されている通信システムのノード識別子設定方法であって、
マスタノードが、通知線において後に接続されているスレーブノードに設定開始信号を出力して、当該スレーブノードにノード識別子の設定を行うための要求メッセージを通信バス上に送信する第１ステップと、
通知線から設定開始信号を入力したスレーブノードは、通信バス上に流れている要求メッセージを受信し、要求メッセージで要求されたノード識別子を自スレーブノードの固有のノード識別子として設定し、通信バス上へノード識別子設定を行ったとの応答メッセージを送信するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力する第２ステップと、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取らなければ、別の要求メッセージを通信バス上に送信して第２ステップへ戻り、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取るとノード識別子設定を終了する第３ステップとを備えたものである。
【発明の効果】
【０００９】
この発明の通信システムのノード識別子設定方法は、１つのマスタノードと１つまたは複数のスレーブノードとが通信バスにて接続されるとともに、マスタノードと１つまたは複数のスレーブノードとがノード識別子設定状況を通知する通知線にてデイジーチェーン接続でかつリング状に接続されている通信システムのノード識別子設定方法であって、
マスタノードが、通知線において後に接続されているスレーブノードに設定開始信号を出力して、当該スレーブノードにノード識別子の設定を行うための要求メッセージを通信バス上に送信する第１ステップと、
通知線から設定開始信号を入力したスレーブノードは、通信バス上に流れている要求メッセージを受信し、要求メッセージで要求されたノード識別子を自スレーブノードの固有のノード識別子として設定し、通信バス上へノード識別子設定を行ったとの応答メッセージを送信するとともに、通知線において後に接続されているスレーブノードまたはマスタノードに設定開始信号を出力する第２ステップと、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取らなければ、別の要求メッセージを通信バス上に送信して第２ステップへ戻り、
マスタノードが、応答メッセージを受信し、かつ、通知線において前に接続されているスレーブノードから設定開始信号を受け取るとノード識別子設定を終了する第３ステップとを備えたので、マスタノードの設定を変更することなく、全てのスレーブノードへノード識別子を設定することができ、さらに、ノード識別子設定の時間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
以下、この発明の実施の形態について説明する。図１はこの発明の実施の形態１における通信システムの構成を示す図、図２は図１に示した通信システムのノード識別子設定方法を説明するためのフローチャート、図３は図２に示した通信システムのノード識別子設定方法におけるマスタノードの動作を説明するためのフローチャート、図４は図２に示した通信システムのノード識別子設定方法におけるスレーブノードの動作を説明するためのフローチャートである。
【００１１】
図のおいて、マスタノード２１と、スレーブノードＡ２２と、スレーブノードＢ２３と、スレーブノードＣ２４とが通信バス１１にそれぞれ接続されネットワークが構成されている。また、マスタノード２１と、スレーブノードＡ２２と、スレーブノードＢ２３と、スレーブノードＣ２４とは、例えばデジタル入出力線にて形成されているノード識別子設定の状況を通知する通知線１２にて、デジタス出力３２、３４、３６、３８およびデジタル入力３１、３３、３５、３７が、デイジーチェーン接続に、かつ、リング状に接続されている。尚、図示したもの以外にも、ネットワークの通信システムに必要な装置・構成を有するが、この発明において直接関与しないため図示を省略する。
【００１２】
上記のように構成された実施の形態１の通信システムのノード識別子設定方法について図２ないし図４のフローチャートに基づいて説明する。まず、電源の投入もしくはリセット等で通信システムが初期化されると、ノード識別子設定が開始される。次に、マスタノード２１がデジタル出力３２の出力値を現在の値から論理反転して出力することにより、通知線１２から設定開始信号を出力する。そして、マスタノード２１は、通知線１２において後に接続されているスレーブノードＡ２２にノード識別子の設定を行うための要求メッセージを通信バス１１上へ送信する（図２のステップＳ１１）。
【００１３】
次に、デジタル入力３３の入力値が論理反転したことを検出することにより、通知線１２から設定開始信号を入力したスレーブノードＡ２２は、通信バス１１上に流れている要求メッセージを受信する。そして、要求メッセージにて要求されたノード識別子を自スレーブノードＡ２２の固有のノード識別子として設定する。そして、ノード識別子の設定を行ったとの応答メッセージを通信バス１１上へ送信する。そして、デジタル出力３４の出力値を現在の値から論理反転して出力することにより、スレーブノードＡ２２は設定開始信号を通知線１２から出力する（図２のステップＳ１２）。このように、ノード識別子を設定されたスレーブノードＡ２２は通常状態となり、通信バス１１にて通常の通信を開始する。
【００１４】
尚、この要求メッセージおよび応答メッセージは、マスタノードおよびスレーブノードの受信もれを防止するために、複数回送信してもよいことは言うまでもない。また、要求メッセージと応答メッセージとは、通信バス１１上に流れている通常の通信メッセージとは異なる構成にて形成する。このように形成することにより、通信バス１１上に流れている他の通信メッセージとの区別を容易に行うできる。そしてこのことにより、誤った通信メッセージをノード識別子設定に用いられることが防止できる。
【００１５】
次に、マスタノード２１がスレーブノードＡ２２から送信された応答メッセージを通信バス１１から受信する（図２のステップＳ１３）。次に、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４からデジタル入力３１の入力値が論理反転したか否かを判断することにより、設定開始信号が入力されたか否かを判断する。このことより、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４へノード識別子設定が終了したか否かを判定することができる（図２のステップＳ１４）。そして、マスタノード２１がデジタル入力３１の入力値に変化がないと判断する、すなわち設定開始信号が入力されていないと判断する（ＮＯ）と、別の要求メッセージを通信バス１１上へ送信する（図２のステップＳ１５）。次に、ステップＳ１２へ戻り、上記に示した動作を繰り返す。
【００１６】
そして、デジタル入力３５の入力値が論理反転したことを検出することにより、スレーブノードＢ２３が上記に示したスレーブノードＡ２２と同様の動作を行い、自スレーブノードのノード識別子に設定し、応答メッセージを通信バス１１上へ送信すると同時に、デジタル出力３６の出力値を現在の値から論理反転して出力することにより、スレーブノードＢ２３は設定開始信号を出力する。このように、ノード識別子を設定されたスレーブノードＢ２３は通常状態となり、通信バス１１にて通常の通信を開始する。
【００１７】
そして、再びステップＳ１２に戻り、デジタル入力３７の入力値が理論反転したことを検出することにより、スレーブノードＣ２４が上記に示したスレーブノードＡ２２、Ｂ２３と同様の動作を行い、自スレーブノードＣ２４のノード識別子に設定し、応答メッセージを通信バス１１上へ送信すると同時に、デジタル出力３８の出力値を現在の値から論理反転して出力することにより、スレーブノードＣ２４は設定開始信号を出力する。このように、ノード識別子を設定されたスレーブノードＣ２４は通常状態となり、通信バス１１にて通常の通信を開始する。
【００１８】
次に、マスタノード２１はスレーブノードＣ２４から送信された応答メッセージを受信する（図２のステップＳ１３）。次に、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４からデジタル入力３１の入力値が論理反転したと判断することにより、設定開始信号が入力されたと判断し（ＹＥＳ）、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４へノード識別子が設定されたと判断し、ノード識別子の設定を終了する。
【００１９】
このようにして、図１に示したネットワークにおいて全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４に固有のノード識別子を割り当てることができる。尚、ここでは便宜上、３つのスレーブノードを例に説明したが、これに限られることはなく、１つまたは複数のスレーブノードが配設されていても同様に行うことができることは言うまでもない。
【００２０】
次に、マスタノード２１が、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４からの応答メッセージを第１の所定期間が経過しても受信できない場合について、図３の先に示した通信システムのノード識別子設定方法におけるマスタノードの動作を示したフローチャートに基づいて説明する。まず、マスタノード２１がデジタル出力３２から設定開始信号を出力するとともに、要求メッセージを通信バス１１上へ送信する（図３のステップＳ２１、図２に示したステップＳ１１と同一の動作である）。次に、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４からの応答メッセージが受信されたか否かを判断する（図３のステップＳ２２）。このことにより、要求メッセージに対する応答があったか否かを判定することができる。
【００２１】
次に、要求メッセージに対する応答がないと判断される（ＮＯ）と、要求メッセージを送信してから予め設定された第１の所定期間が経過したか否かを判断する（図３のステップＳ２３）。次に、第１の所定期間が経過していなければ（ＮＯ）、再びステップＳ２２に戻って上記に示した動作と同様の動作を行うことにより、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４からの応答メッセージが送信されてくるのを待つ。尚、ここにおいて設定されている第１の所定期間とは、スレーブノードが要求メッセージを受信してから応答メッセージを送信するまでの最大期間よりも長い期間で、かつ、これ以上はかかることがないだろうと考えられる期間より短い期間において設定されているものである。
【００２２】
次に、ステップＳ２３にて第１の所定期間が経過したと判断される（ＹＥＳ）と、何らかの通信異常などが発生して、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４にノード識別子を正常に設定できなかったもの判断できる。そして、後述するステップＳ２６からノード識別子の設定回数を表すカウンタ値を入力し、何番目のスレーブノードから応答メッセージが送信されなかったのかを記録する（図３のステップＳ２４）。次に、再びステップＳ２１へ戻り、上記に示した動作と同様の動作を繰り返す。
【００２３】
次に、ステップＳ２２にて、要求メッセージに対する応答があったと判断される（ＹＥＳ）と、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４から設定開始信号が入力されたか否かを判断する（図３のステップＳ２５、図２のステップＳ１４と同一の動作である。）。そして、マスタノード２１はデジタル入力３１の入力値に変化がないと判断される、すなわち設定開始信号が入力されていない（ＮＯ）と判断されると、ノード識別子の設定回数カウンタ値をインクリメント（つまり＋１）する（図３のステップＳ２６）。次に、別の要求メッセージを通信バス１１上へ送信し（図３のステップＳ２７、図２のステップＳ１５と同一の動作である。）、ステップＳ２２へ戻り、上記に示した動作を繰り返す。また、ステップＳ２５において、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４から設定開始信号が入力されたと判断すると、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４へノード識別子が設定されたと判断し、ノード識別子設定を終了する。
【００２４】
このようにして、図１に示したネットワークにおいて、もし、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４からの応答メッセージが第１の所定期間経過しても送信されないと、再度、ノード識別子設定を開始するとともに、何番目のスレーブノードから応答がないのかを記録することができる。
【００２５】
次に、いずれかのスレーブノードＡ２２、Ｂ２３、Ｃ２４が自スレーブノードのノード識別子が登録されていない状態で、第２の所定期間が経過してもノード識別子設定が行われない場合について、図４の先に示した通信システムのノード識別子設定方法におけるスレーブノードの動作を示したフローチャートに基づいて説明する。尚、この処理は各スレーブノードＡ２２、Ｂ２３、Ｃ２４がそれぞれ独立して実行するものである。まず、各スレーブノードＡ２２、Ｂ２３、Ｃ２４はデジタル入力３３、３５、３７から設定開始信号が入力されたか否かにより、マスタノード２１からの要求メッセージを受信するか否かを判定する（図４のステップＳ３１）。
【００２６】
次に、設定開始信号が入力されていないと判断する（ＮＯ）と、予め設定された第２の所定期間が経過したか否かを判断する（図４のステップＳ３２）。次に、第２の所定期間が経過していなければ、再びステップＳ３１に戻り上記に示した動作を繰り返すことにより、ノード識別子の設定の実施を待つ。尚、ここにおいて設定されている第２の所定期間とは、マスタノードがノード識別子設定を開始してから、全てのスレーブノードに固有のノード識別子を割り当てることができるまでの最大期間よりも長い期間で、かつ、これ以上はかかることがないだろうと考えられる期間より短い期間において設定されているものである。
【００２７】
次に、ステップＳ３２にて、第２の所定期間が経過したと判断された（ＹＥＳ）場合には、ノード識別子を設定するための開始要求メッセージを通信バス１１上へ送信する（図４のステップＳ３３）。次に、当該スレーブノードはノード識別子の設定が第２の所定期間経過しても実施されなかったことを記録する（図４のステップＳ３４）。次に、マスタノード２１は、開始要求メッセージを通信バス１１より受信し、かつ、まだノード識別子設定を開始していない場合には、図２に示すノード識別子設定を開始する。次に、ステップＳ３１にて、設定開始信号を入力したこと当該スレーブノードが検出する（ＹＥＳ）と、当該スレーブノードが通信バス１１から要求メッセージを受信する。そして、要求メッセージにて要求されたノード識別子を自スレーブノードのノード識別子として設定する。そして、ノード識別子の設定を行ったとの応答メッセージを通信バス１１上へ送信する。そして、設定開始信号を出力する（図４のステップＳ３５、図２のステップＳ１２と同一の動作）。
【００２８】
このようにして、スレーブノードが第２の所定期間経過しても自スレーブノードのノード識別子が登録されないとき、開始要求メッセージを送信することで、マスタノードへノード識別子設定の開始を要求することができる。
【００２９】
上記のように行われたこの発明の実施の形態１によれば、１つのマスタノードと１つまたは複数のスレーブノードとが共通の通信バスで接続され、マスタノードと各スレーブノードとがノード識別子設定状況を通知する通知線でデイジーチェーン接続され、かつ、リング状に接続されている通信システムのノード識別子設定方法において、マスタノードが通知線を用いて全てのスレーブノードがノード識別子設定を終了したことを判断することで、ネットワークに接続されるスレーブノードの個数が変化した場合でも、マスタノードのデータを変更することなく、全てのスレーブノードへ固有のノード識別子を割り当てることができる。
【００３０】
さらに、マスタノードが送信した要求メッセージを受信するスレーブノードを、通知線を用いて１ノードだけに指定することで、他のスレーブノードのノード識別子の設定処理が衝突することがなくなるので、ノード識別子設定を所望期間で終了することができる。
さらに、要求メッセージと応答メッセージとを通常の通信メッセージとは異なる構成とすることで、通信バス上に流れている他のメッセージを誤ってノード識別子設定に用いることが防止できる。
【００３１】
また、マスタノードはスレーブノードからの応答メッセージを第１の所定期間が経過しても受信できないときは、再度、ノード識別子の設定を開始することができる。
さらに、マスタノードは、何番目のスレーブノードからの応答メッセージがなかったのかを記録することで、ネットワークに異常が起きた箇所を特定することが容易になる。
また、スレーブノードは自スレーブノードのノード識別子が登録されていない状態で、第２の所定期間が経過してもノード識別子設定が行われないとき、開始要求メッセージを通信バス上に送信し、これを受信したマスタノードがノード識別子設定を開始することで、全てのスレーブノードへ固有のノード識別子を確実に割り当てることができる。
さらに、スレーブノードが、ノード識別子設定が行われなかったことを記録することで、ネットワークに異常が起きた箇所を特定することが容易になる。
【００３２】
実施の形態２．
図５はこの発明の実施の形態２における通信システムのノード識別子設定方法を示すフローチャートである。尚、通信システムの構成は上記実施の形態１と同様であるため、図１を交えて説明する。
【００３３】
まず、電源の投入もしくはリセット等で通信システムが初期化されるとノード識別子の設定が開始される。このとき通常、１つまたは複数のスレーブノードに既に固有のノード識別子が記録されている場合、スレーブノードは電源の投入と同時に通常の通信を開始する（以下、これを通常状態と称する）。次に、マスタノード２１が準備開始メッセージを通信バス１１上へ送信する（図５のステップＳ４１）。次に、各スレーブノードＡ２２、Ｂ２３、Ｃ２４が通信バス１１上から準備開始メッセージを受信すると、通常の通信メッセージの送信を停止し、ノード識別子の設定の準備状態となる（図５のステップＳ４２）。
【００３４】
次に、上記実施の形態１と同様にステップＳ１１からステップＳ１５と同様の処理を行い、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４に固有のノード識別子を割り当てる。但し、本実施の形態においては、上記実施の形態１と異なり、各スレーブノードＡ２２、Ｂ２３、Ｃ２４は、ノード識別子を設定されても通常状態には戻らず、通常の通信メッセージの送信を停止したままとする。次に、マスタノード２１がノード識別子設定の完了メッセージを通信バス１１上へ送信する（図５のステップＳ４８）。次に、各スレーブノードＡ２２、Ｂ２３、Ｃ２４が完了メッセージを受信すると、通常状態となり、通常の通信メッセージの送信を開始する（図５のステップＳ４９）。
【００３５】
上記のように行われたこの発明の実施の形態２によれば、上記実施の形態１と同様の効果を奏するのはもちろんのこと、マスタノードが準備開始メッセージを送信し、これを受信した全てのスレーブノードが通常の通信メッセージの送信を停止した後、ノード識別子設定が実施され、ノード識別子設定が終了したとき、マスタノードが完了メッセージを送信することで、各スレーブノードが通常状態に戻るため、ノード識別子設定が全て終了するまでは、ノード識別子設定で使用するメッセージのみが通信バス上を流れるため、各スレーブノードは誤ったメッセージをノード識別子設定に用いることがなくなり、全てのスレーブノードへ固有のノード識別子を確実に割り当てることができる。
【００３６】
尚、本実施の形態２においては、マスタノードが完了メッセージを送信した後に、各スレーブノードを通常状態に戻す例を示したが、これに限られることはなく、ノード識別子を設定されたスレーブノードは通常状態となり、通信バスにて通常の通信を開始するように設定してもよい。この場合であっても、ノード識別子が設定されるまでは通常状態とならないため、上記実施の形態１と同様の効果を奏することは可能である。
【００３７】
実施の形態３．
図６はこの発明の実施の形態３における通信システムのノード識別子設定方法を示すフローチャートである。尚、通信システムの構成は上記各実施の形態と同様であるため、図１を交えて説明する。まず、電源の投入もしくはリセット等で通信システムが初期化されるとノード識別子の設定が開始される。このとき通常、１つまたは複数のスレーブノードに既に固有のノード識別子が記録されている場合、スレーブノードは電源の投入と同時に通常の通信を開始する。次に、マスタノード２１がデジタル出力３２の出力値を現在の値から論理反転して出力することにより、通知線１２から設定開始信号を出力する（図６のステップＳ５１）。
【００３８】
次に、デジタル入力３３の入力値が論理反転したことを検出することにより、通知線１２から設定開始信号を入力したスレーブノードＡ２２は、通常の通信メッセージを停止すると同時に、デジタル出力３４の出力値を現在の値から論理反転して出力することにより、スレーブノードＡ２２は設定開始信号を通知線１２から出力する。そして、ノード識別子設定の準備状態となる（図６のステップＳ５２）。次に、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４からデジタル入力３１の入力値が論理反転したか否かを判断することにより、設定開始信号が入力されたか否かを判断する。このことより、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４がノード識別子設定の準備状態となったか否かを判定することができる（図６のステップＳ５３）。
【００３９】
次に、マスタノード２１はデジタル入力３１の入力値に変化がないと判断する、すなわち、設定開始信号が入力されていなく、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４がノード識別子設定の準備状態になっていないと判断される（ＮＯ）と、再びステップＳ５２に戻り、上記に示した動作を繰り返し、全てのスレーブノードがノード識別子設定の準備状態となるまで待つ。そして、デジタル入力３５の入力値が論理反転したことを検出することにより、通知線１２から設定開始信号を入力したとスレーブノードＢ２３が検出する。そして、スレーブノードＢ２３は通常の通信メッセージを停止すると同時に、デジタル出力３６の出力値を現在の値から論理反転して出力して設定開始信号として出力する。そして、ノード識別子設定の準備状態となる（図６のステップＳ５２）。
【００４０】
そして、デジタル入力３７の入力値が論理反転したことを検出することにより設定開始信号を入力したことスレーブノードＣ２４が検出する。そして、スレーブノードＣ２４は通常の通信メッセージを停止すると同時に、デジタル出力３８の出力値を現在の値から論理反転して出力して設定開始信号として出力する。そして、ノード識別子設定の準備状態となる（図６のステップＳ５２）。
【００４１】
次に、マスタノード２１は通知線１２において前に接続されているスレーブノードＣ２４からデジタル入力３１の入力値が論理反転したことを検出、すなわち、設定開始信号が入力されたと判断し、全てのスレーブノードＡ２２、Ｂ２３、Ｃ２４がノード識別子設定の準備状態になったと判断する（ＹＥＳ）。
【００４２】
次に、上記各実施の形態と同様に、マスタノード２１が設定開始信号として出力する。そして、マスタノード２１は要求メッセージを通信バス１１上へ送信する（図６のステップＳ１１）。次に、デジタル入力３３の入力値が論理反転したことを検出することにより設定開始信号を入力したことスレーブノードＡ２２が検出すると、スレーブノードＡ２２が通信バス１１から要求メッセージを受信する。そして、要求されたノード識別子を自スレーブノードＡ２２のノード識別子として設定する。そして、ノード識別子の設定を行ったとの応答メッセージを通信バス１１上へ送信する。そして、デジタル出力３４の出力値を現在の値から論理反転して出力して設定開始信号として出力する（図２のステップＳ１２）。
【００４３】
そして、スレーブノードＡ２２は通常状態となり、通常の通信を開始する。ここで、ノード識別子設定の準備状態にある他のスレーブノードＢ２３、Ｃ２４は、通信バス１１上へ何もメッセージを送信していない状態にあるので、スレーブノードＡ２２が送信する応答メッセージには、特別な構成を有するメッセージとすることなく、通常の通信に用いられるメッセージ構成を用いてもよい。次に、ステップＳ１３からステップＳ１５を上記各実施の形態と同様に行って、繰り返すことにより、ネットワークの全てのスレーブノードに固有のノード識別子を確実に割り当てる。
【００４４】
上記のように行われたこの発明の実施の形態３によれば、上記各実施の形態と同様の効果を奏するのはもちろんのこと、スレーブノードが送信する応答メッセージを通常の通信メッセージと共通にすることで、スレーブノードがノード識別子設定のみで使用するようなメッセージを持つ必要がなくなり、ソフトウェアの構成がより簡単になるという効果がある。
【００４５】
尚、上記各実施の形態では、デイジーチェーン接続として構成されるノード識別子設定状態通知線としてデジタル入出力線を用いたが、もちろん、アナログ入出力線やシリアル通信線などのように、次のノードへ設定開始信号の信号を伝えることが出来るものであればよい。
【図面の簡単な説明】
【００４６】
【図１】この発明の実施の形態１の通信システムの構成を示す図である。
【図２】図１に示した通信システムにおけるノード識別子設定方法を示すフローチャートである。
【図３】図２に示した通信システムにおけるマスタノードにて実行されるノード識別子設定処理を示すフローチャートである。
【図４】図２に示した通信システムにおけるスレーブノードにて実行されるノード識別子設定処理を示すフローチャートである。
【図５】本発明の実施の形態２における通信システムのノード識別子設定方法を示すフローチャートである。
【図６】本発明の実施の形態３における通信システムのノード識別子設定方法を示すフローチャートである。
【符号の説明】
【００４７】
１  通信バス、１２  通知線、２１  マスタノード、２２  スレーブノードＡ、
２３  スレーブノードＢ、２４  スレーブノードＣ。
【図１】
0004728362.tif 000002
【図２】
0004728362.tif 000003
【図３】
0004728362.tif 000004
【図４】
0004728362.tif 000005
【図５】
0004728362.tif 000006
【図６】
0004728362.tif 000007