(57)【要約】      （修正有）【課題】容易にスレーブ装置のノードＩＤの設定がおこなえるとともに、容易にスレーブ装置の追加や故障検出をおこなえるマスタスレーブシステムを提供する。【解決手段】マスタ装置１０１と複数のスレーブ装置１０６，１１２，１１８を有するマスタスレーブシステムを、マスタ装置とスレーブ装置のそれぞれを共有バス接続するシリアル信号ライン１０５と、マスタ装置とスレーブ装置のそれぞれがマスタ装置を端にしてデイジーチェーン接続する信号ラインにより接続し、シリアル信号ラインを介して通信されるスレーブ装置の応答電文に、信号ラインにより通知される他の装置のノードＩＤ設定状態を含む上段装置の状態と下段装置の接続状態を示すフラグ情報が含まれるようにした。【選択図】図１
2014230097.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置と複数のスレーブ装置を有するマスタスレーブシステムは、
前記マスタ装置と前記スレーブ装置のそれぞれを共有バス接続するシリアル信号ラインと、
前記マスタ装置と前記スレーブ装置のそれぞれが前記マスタ装置を端にしてデイジーチェーン接続する信号ラインにより接続され、
前記シリアル信号ラインを介して通信される前記スレーブ装置の応答電文に、
前記信号ラインにより通知される他の装置の状態を示すフラグ情報が含まれる
ことを特徴とするマスタスレーブシステム。
【請求項２】
請求項１に記載のマスタスレーブシステムにおいて、
前記マスタ装置を端にしてデイジーチェーン接続する信号ラインは、
デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードID設定の完了状態を下段の装置に通知する上段装置状態信号のラインと、
デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置と反対側に接続された下段スレーブ装置の有無を上段装置に通知する下段装置接続信号のラインと
から成ることを特徴とするマスタスレーブシステム。
【請求項３】
請求項２に記載のマスタスレーブシステムにおいて、
前記スレーブ装置は、
共有バス接続するシリアル信号ラインにコマンドあるいはデータを送受する前記シリアルポートと、
前記上段装置状態信号に当該スレーブ装置のノードIDの設定完了状態を出力するデジタル出力端子(Ａ)と、
前記上段装置状態信号により上段スレーブ装置のノードIDの設定完了状態をモニタするデジタル入力端子(Ａ)と、
前記下段装置接続信号に当該スレーブ装置が接続されていることを指示する接続指示出力端子と、
前記下段装置接続信号により下段スレーブ装置の接続有無を確認するデジタル入力端子(Ｂ)と、を有し、
前記マスタ装置は、
共有バス接続するシリアル信号ラインとコマンドあるいはデータを送受する前記シリアルポートと、
前記上段装置状態信号に当該マスタ装置のノードIDの設定完了状態を出力するデジタル出力端子と、
前記下段装置接続信号に接続して下段のスレーブ装置の接続有無を確認するデジタル入力端子と、を備える
ことを特徴とするマスタスレーブシステム。
【請求項４】
請求項２あるいは３に記載のマスタスレーブシステムにおいて、
前記上段装置状態信号端子には、上段側から順に、ノードIDの設定完了状態が出力される
ことを特徴とするマスタスレーブシステム。
【請求項５】
請求項１に記載のマスタスレーブシステムにおいて、
前記スレーブ装置からマスタ装置への応答電文のフラグ情報には、
当該スレーブ装置のノードID設定処理によるノードID設定完了フラグと、
デイジーチェーン接続される信号ラインにより通知され、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置と反対側に接続された下段スレーブ装置の接続有無を示す下段装置接続フラグと、
デイジーチェーン接続される信号ラインにより通知され、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードIDの設定状態を示す上段装置状態フラグを含む
ことを特徴とするマスタスレーブシステム。
【請求項６】
請求項１に記載のマスタスレーブシステムにおいて、
前記マスタ装置を端にしてデイジーチェーン接続する信号ラインは、
デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードID設定の完了状態および異常検知状態を下段の装置に通知する上段装置状態信号のラインと、
デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置と反対側に接続された下段スレーブ装置の有無を上段装置に通知する下段装置接続信号のラインから成る
ことを特徴とするマスタスレーブシステム。
【請求項７】
請求項６に記載のマスタスレーブシステムにおいて、
前記スレーブ装置は、上段のスレーブ装置に接続する上段装置状態信号のラインにより通知される上段装置状態とノードID設定の完了状態と当該スレーブ装置の異常検知状態の論理積を上段装置状態として下段のスレーブ装置に出力するデジタル出力端子(Ａ)を備える
ことを特徴とするマスタスレーブシステム。
【請求項８】
マスタ装置と複数のスレーブ装置が接続されたマスタスレーブシステムのノード制御方法であって、
スレーブ装置からマスタ装置への応答電文には応答電文に上段装置状態フラグと下段装置接続フラグが含まれ、
スレーブ装置は、マスタ装置を端としてデイジーチェーン接続され当該スレーブ装置のマスタ側に接続する上段のスレーブ装置のノードIDの設定状況あるいは異常検知状況を示す上段装置状態フラグと、マスタ装置を端としてデイジーチェーン接続され当該スレーブ装置のマスタ装置と反対側に接続された下段のスレーブ装置の下段スレーブ装置の接続有無を示す下段装置接続フラグとを更新して、マスタ装置に応答電文を通知し、
前記スレーブ装置から前記応答電文を受信したマスタ装置は、前記上段装置状態フラグあるいは前記下段装置接続フラグにより、ノードIDの設定処理あるいはノードIDの追加処理あるいはスレーブ装置の復帰処理をおこなう
ことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項９】
請求項８に記載のマスタスレーブシステムのノード制御方法において、
設定したノードIDを有するスレーブ装置のうち、マスタ装置を端としてデイジーチェーン接続され、マスタ装置から最も離れた最下段のスレーブ装置からの応答電文の前記下段装置接続フラグが、下段装置の接続有を示す場合に、
マスタ装置は、前記所定のノードIDを宛先としてイニシャル要求コマンドと新たなノードID値を指定したノードID設定コマンドをスレーブ装置に通知して、ノードIDの追加設定処理をおこなう
ことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項１０】
請求項８に記載のマスタスレーブシステムのノード制御方法において、
前記スレーブ装置から前記応答電文を受信したマスタ装置は、
前記応答電文を通知したスレーブ装置の直上のスレーブ装置の応答の有無を検出し、
前記応答の有無と前記上段装置状態フラグを判定し、
前記上段装置状態フラグが異常状態を示す場合には、前記応答電文を通知したスレーブ装置の直上のスレーブ装置のイニシャル処理をおこない、
前記上段装置状態フラグが正常状態を示し、かつ、前記応答が無い場合には、前記応答電文を通知したスレーブ装置の直上のスレーブ装置のリセット処理をおこなった後にイニシャル処理をおこなう
ことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項１１】
請求項８に記載のマスタスレーブシステムのノード制御方法において、
前記スレーブ装置の応答電文の上段装置状態フラグは、マスタ装置を端としてデイジーチェーン接続され当該スレーブ装置のマスタ側に接続するすべての上段スレーブ装置のノードIDの設定状況あるいは異常検知状況の論理積を示しており、
前記応答電文を受信したマスタ装置は、前記上段装置状態フラグが異常状態を示している場合に、応答電文を通知したスレーブ装置より上段のいずれかのスレーブ装置での異常状態を検出し、
応答電文を通知したスレーブ装置より上段のスレーブ装置の応答有無を順に判定して異常状態のスレーブ装置を特定する
ことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項１２】
マスタ装置と複数のスレーブ装置が接続されたマスタスレーブシステムのノード制御方法であって、
マスタ装置を端としてデイジーチェーン接続されたマスタ装置、あるいは、当該スレーブ装置のマスタ側に接続する上段のスレーブ装置からの通知により自己のノードIDの設定をおこなうスレーブ装置は、
共有バス接続された前記マスタ装置からノードID設定コマンドを受信し、
前記ノードID設定コマンドに指定されたID値に自己のノードIDを設定し、
デイジーチェーン接続された下段のスレーブ装置の有無を取得し、
前記ノードID設定コマンドの応答電文の下段装置接続フラグに、前記下段のスレーブ装置の有無を反映し、
前記マスタ装置に前記ノードID設定コマンドの応答電文を通知し、
前記ノードID設定コマンドを通知したマスタ装置は、
前記スレーブ装置からの前記応答電文を受信し、
前記応答電文の下段装置接続フラグが、下段装置接続有の場合には、前記ノードID設定コマンドのノードID値とは異なるノードID値を指定したノードID設定コマンドをスレーブ装置に通知し、下段装置接続無の場合には、スレーブ装置のノードIDの設定を終了する
をことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項１３】
請求項１２に記載のマスタスレーブシステムのノード制御方法において、
前記スレーブ装置は、
デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードID設定の完了状態を下段の装置に通知する上段装置状態信号をモニタし、
モニタした上段装置状態信号がノードID設定の完了状態を示すときに、自己がノードID設定の対象であることを認識し、
マスタ装置からのイニシャル要求コマンドあるいはノードID設定コマンドに応答する
ことを特徴とするマスタスレーブシステムのノード制御方法。
【請求項１４】
請求項１２あるいは１３に記載のマスタスレーブシステムのノード制御方法において、
マスタ装置からノードID設定コマンドを受信する以前のスレーブ装置は、複数のスレーブ装置で共通の所定のノードIDをもち、
マスタ装置は、前記所定のノードIDを宛先としてイニシャル要求コマンドあるいはノードID設定コマンドをスレーブ装置に通知する
ことを特徴とするマスタスレーブシステムのノード制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の機器を接続して制御する組み込み用マスタスレーブシステムに係り、ノードID管理に好適な技術に関する。
【背景技術】
【０００２】
ビル設備・機器の管理や運用をおこなうビル管理システムでは、そのインテリジェント機能の実現のために、電力計や照度計等の計測センサが接続されたセンサモジュールが分散配置され、複数のセンサモジュールがコントローラに接続されてデータ収集している。コントローラはイーサネット（登録商標）等によりネットワーク接続されて制御されていることが多い。例えば、フロアー毎にコントローラが配置され、複数のコントローラがイーサネットを介して管理サーバに接続されて、計測センサで採取した測定データを基に、ビル全体の電力設備や照明設備が制御されている。
【０００３】
このコントローラは、複数のセンサモジュールを半二重方式の差動シリアル通信ライン等により共有バス接続し、計測センサから電力量や照度等の測定データを取得・処理し、管理サーバに通知している。このようなシステムは、各センサモジュールの識別のためのノードIDが必要となる。
【０００４】
そして、半二重方式の差動シリアルインターフェースでは、主に2線の差動信号を送信／受信で共用しており、通信状況のモニタとプロトコル制御で送受信タイミングを制御して、データの送受信をおこなっている。このとき、コントローラがマスタ装置となり各センサモジュールがスレーブ装置となって、マスタ装置が、ポーリング方式で通信をおこなっている。
【０００５】
上記の差動シリアルインターフェースによるマスタスレーブシステムとそのノード識別子の設定に係る技術は、例えば、特許文献１に記載されている。詳しくは、特許文献１には、マスタノードと複数のスレーブノードとが通信バス接続されるとともに、マスタノードと複数のスレーブノードのそれぞれがノード識別子（ノードID）の設定開始を通知する通知線でリング状にデイジーチェーン接続されるネットワークが開示されている。そして、マスタノードがスレーブノードを所定のノード識別子に設定する要求メッセージを通信バスと介して順次送出し、デイジーチェーン接続された通知線から設定開始信号が入力されたスレーブノードが、通信バスから要求メッセージを取得して自ノードのノード識別子を設定し、マスタノードに応答するとともに、次ノードの通知線に設定開始信号を出力し、マスタノードは、リング接続された通知線から設定開始信号が入力されるとノード識別子の設定を終了することが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−２３９４２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１に開示される技術によれば、スレーブノードはリング状にデイジーチェーン接続された通信線を介してノードIDの設定開始を通知されるので、各スレーブノードは順次、所定のノードIDに設定可能となる。また、マスタノードはリング状に接続された通信線によりノードIDの設定終了をモニタできるので、すべてのスレーブノードへノードIDの設定を容易におこなうことができるとともに、ノードIDの設定時間を短縮することができる。
【０００８】
しかし、スレーブ装置の途中追加が考慮されておらず、ビル管理システムに適用した場合にはセンサモジュールの配置変更や増設・削減が生じた際にすべてのセンサモジュールのノードIDの設定作業を再度おこなう必要があった。
【０００９】
また、マスタ装置がスレーブ装置の機器故障の検出を考慮しておらず、センサモジュールの故障検出に時間がかかる問題があった。
【００１０】
本発明は、上記の問題を解決し、容易にスレーブ装置のノードIDの設定がおこなえるとともに、容易にスレーブ装置の追加や故障検出をおこなえるマスタスレーブシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記課題を解決するため、本発明のマスタ装置と複数のスレーブ装置を有するマスタスレーブシステムは、前記マスタ装置と前記スレーブ装置のそれぞれを共有バス接続するシリアル信号ラインと、前記マスタ装置と前記スレーブ装置のそれぞれが前記マスタ装置を端にしてデイジーチェーン接続される信号ラインにより接続され、前記シリアル信号ラインを介して通信される前記スレーブ装置の応答電文に、前記信号ラインにより通知する他の装置の状態を示すフラグ情報が含まれるようにした。
【００１２】
より詳しくは、前記マスタ装置を端にしてデイジーチェーン接続する信号ラインは、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードID設定の完了状態を下段の装置に通知する上段装置状態信号のラインと、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置と反対側に接続された下段スレーブ装置の有無を上段装置に通知する下段装置接続信号のラインと
から成るようにした。
【００１３】
そして、記スレーブ装置からマスタ装置への応答電文のフラグ情報には、当該スレーブ装置のノードID設定処理によるノードID設定完了フラグと、デイジーチェーン接続される信号ラインにより通知され、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置と反対側に接続された下段スレーブ装置の接続有無を示す下段装置接続フラグと、デイジーチェーン接続される信号ラインにより通知され、デイジーチェーン接続されたマスタ装置あるいはスレーブ装置のマスタ装置側に接続された上段装置のノードIDの設定状態を示す上段装置状態フラグを含むようにした。これにより、マスタ装置の故障検出やスレーブ装置の追加検知を容易にした。
【００１４】
上記の構成でスレーブ装置にノードIDを設定する場合には、スレーブ装置は、マスタ装置を端としてデイジーチェーン接続されたマスタ装置、あるいは、当該スレーブ装置のマスタ側に接続する上段のスレーブ装置からの通知により自己のノードIDの設定をおこなうことを認識し、共有バス接続された前記マスタ装置からノードID設定コマンドを受信し、前記ノードID設定コマンドに指定されたID値に自己のノードIDを設定し、デイジーチェーン接続された下段のスレーブ装置の有無を取得し、前記ノードID設定コマンドの応答電文の下段装置接続フラグに、前記下段のスレーブ装置の有無を反映し、前記マスタ装置に前記ノードID設定コマンドの応答として前記応答電文を通知するようにする。
前記ノードID設定コマンドを通知したマスタ装置は、前記スレーブ装置からの前記応答電文を受信し、前記応答電文の下段装置接続フラグが、下段装置接続有の場合には、前記ノードID設定コマンドのノードID値とは異なるノードID値を指定したノードID設定コマンドをスレーブ装置に通知し、下段装置接続無の場合には、スレーブ装置のノードIDの設定を終了するようにした。
【発明の効果】
【００１５】
本発明によれば、容易にスレーブ装置のノードIDの設定がおこなえるとともに、スレーブ装置の追加時に短時間にノードID設定がおこなえ、容易にスレーブ装置の故障検出をおこなえるマスタスレーブシステムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施例１のマスタスレーブシステムの接続構成図である。
【図２ａ】実施例１のマスタ装置の電文フォーマットである。
【図２ｂ】実施例１のスレーブ装置の応答電文フォーマットである。
【図３】実施例１のマスタ・スレーブ装置のイニシャル処理シーケンス図である。
【図４】実施例１のスレーブ装置の起動時イニシャル処理のフロー図である。
【図５】実施例１のマスタ装置の起動時イニシャル処理のフロー図である。
【図６】実施例１のスレーブ装置増設時の処理フロー図である。
【図７】実施例１の特定スレーブ装置に対するイニシャル処理のフロー図である。
【図８】実施例１のスレーブ装置異常時の検出処理フロー図である。
【図９】実施例１のスレーブ装置異常時の復帰処理内容を示す図である。
【図１０】実施例１のスレーブ装置の他の機器構成を説明する図である。
【図１１】実施例２のマスタスレーブシステムの接続構成図である。
【発明を実施するための形態】
【００１７】
本発明の実施例を、図面を参照しながら説明する。尚、各図および各実施例において、同一又は類似の構成要素には同じ符号を付し、説明を省略する。
【００１８】
（実施例１）
図１は、実施例１のマスタスレーブシステムの接続構成図である。システムは、ポーリング方式で通信をおこなうひとつのマスタ装置101と、複数のスレーブ装置106、112、118から成り、差動シリアルライン105で接続されている。マスタ装置とスレーブ装置は、半２重方式で通信をおこなっている。そして、差動シリアルライン105とは別に、マスタ装置101とスレーブ装置106、112、118とは、詳細を後述する信号によりデイジーチェーン接続されている。
本実施例では、図１に示すように、マスタ装置101はデイジーチェーン接続の端に設置され、スレーブ装置106、112、118が順次接続されている。以下の説明では、デイジーチェーン接続のマスタ装置側を上段と呼び、マスタ装置と反対側を下段と呼ぶこととする。
【００１９】
マスタ装置101は、通信用のシリアルポート102とノードID設定完了フラグを示すデジタル出力端子(Ａ)103と、下段のスレーブ装置の接続を確認するためのデジタル入力端子(Ｂ)104を有している。
【００２０】
スレーブ装置Ａ106は、差動シリアルライン105にバス接続する通信用のシリアルポート109と、上段のマスタ装置101のノードID設定完了フラグをモニタするためのデジタル入力端子（Ａ）107と、上段のマスタ装置101に自機の接続を示す接続指示出力端子108と、自機のノードID設定完了フラグを示すデジタル出力端子(Ａ)110と、下段のスレーブ装置の接続を確認するためのデジタル入力端子(Ｂ)111を備えている。
【００２１】
また、スレーブ装置Ｂ112、スレーブ装置Ｃ118も、スレーブ装置Ａ106と同様のインターフェースを備えている。通信用のシリアルポート115、121は、差動シリアルライン105にバス接続し、デジタル入力端子(Ａ)(Ａ)113、119は、上段のスレーブ装置のデジタル出力端子(Ａ)110、116に接続し、接続指示出力端子114、120が、上段のスレーブ装置のデジタル入力端子(Ｂ)111、117に接続している。
【００２２】
本実施例では、マスタ装置とスレーブ装置およびスレーブ装置間のデジタル出力端子(Ａ)とデジタル入力端子(Ａ)(Ａ)を接続する信号を“上段装置状態信号”と称し、接続指示出力端子とデジタル入力端子(Ｂ)を接続する信号を“下段接続信号”と称することとする。
【００２３】
デイジーチェーン接続した最下段のスレーブ装置Ｃ118のデジタル出力端子(Ａ)122とデジタル入力端子(Ｂ)123は、下段にスレーブ装置が接続されていないため、開放端となっている。
【００２４】
ここで、デジタル入力端子(Ｂ)104、111、117をプルアップ入力端子とし、接続指示出力端子108、114、120をオープンコレクタ（またはオープンドレイン）の制御出力あるいは、ＧＮＤレベルの固定出力端子とする。これによれば、スレーブ装置は、デジタル入力端子(Ｂ)がLOWレベルのときに下段にスレーブ装置が接続され、HIGHレベルのときには下段にスレーブ装置が接続されていないと判別できる。
【００２５】
上述で、マスタ装置101と複数のスレーブ装置106、112、118とは、差動シリアルライン105で接続するとしたが、差動シリアルに限定されるものでないことは言うまでもない。また、マスタ装置101と複数のスレーブ装置106、112、118とをデイジーチェーン接続する信号はシングルエンドの信号としたが、差動信号としてもよい。この場合には、耐ノイズ性が増し信頼性の向上が期待できる。
【００２６】
次に、ポーリング方式でアクセスをおこなうひとつのマスタ装置101と、複数のスレーブ装置106、112、118との間の電文フォーマットを図２aと図２bにより説明する。図２aはマスタ装置が出力する電文フォーマットを示し、図２bは、スレーブ装置が出力する応答電文フォーマットを示している。実施例のマスタスレーブシステムは、半２重のポーリング方式の通信をおこなうため、図２aと図２bのフォーマットの電文が交互に差動シリアルライン105に出力される。
【００２７】
マスタ装置が出力する電文は、図２aに示すように、宛先のノードIDと自機のノードIDのフィールドを含む定型部と、スレーブ装置に通知するコマンドあるいはデータのフィールドを含むデータ部から構成される。宛先のノードIDには、コマンドやデータを通知するスレーブ装置のノードIDが設定される。自機のノードIDには、マスタ装置のノードIDである固定値“０”が設定される。
【００２８】
上記のマスタ装置の電文のコマンドあるいはデータのフィールドには、詳細を後述する、“スレーブ装置のノードIDクリア要求”や“スレーブ装置のイニシャル要求”や“ノードID設定”等のコマンドと、“ノードIDの設定値”等のデータが設定される。
【００２９】
スレーブ装置が出力する電文は、図2bに示すように、宛先のノードIDと自機のノードIDのフィールドと詳細を後述するフラグ・フィールドを含む定型部と、マスタ装置に応答するデータやステータスを示すフィールドを含むデータ部から構成される。宛先のノードIDにはマスタ装置のノードIDである固定値“０”が設定され、自機のノードIDには応答するスレーブ装置のノードIDが設定される。
【００３０】
つぎに、上述のフラグ・フィールドについて詳細に説明する。図２bに示すように、フラグ・フィールドは、“ノードID設定完了フラグ”と“下段装置接続フラグ”と“上段装置状態フラグ”を含んでいる。
このうち、“ノードID設定完了フラグ”は、詳細を後述する“ノードID設定”のコマンドに対する処理結果が設定される（設定完：１、設定未完：０）。前述のとおり、このフラグ内容は、デジタル出力端子(Ａ)にも反映されている。また、“下段装置接続フラグ”には、当該スレーブ装置のデジタル入力端子(Ｂ)の状態が反映され、“上段装置状態フラグ”には、当該スレーブ装置のデジタル入力端子（Ａ）の状態が反映されている。
【００３１】
より具体的には、スレーブＢ112の応答電文の“ノードID設定完了フラグ”と“下段装置接続フラグ”と“上段装置状態フラグ”には、それぞれ、デジタル出力端子(Ａ)116の状態（デジタル入力端子（Ａ）119の入力値）、デジタル入力端子(Ｂ)117の状態（接続指示出力端子120の出力値）、デジタル入力端子（Ａ）113の状態（デジタル出力端子(Ａ)110の状態）が反映されている。スレーブＡ106の応答電文とスレーブＣ118の応答電文も同様である。
【００３２】
これにより、マスタ装置は、スレーブＢ112の応答電文から、スレーブＡ106のノードIDの設定状態と、スレーブＣ118のスレーブ装置接続有無とノードIDの設定完了通知とを検知することができる。つまり、マスタ装置は、特定スレーブの応答電文から、応答した特定スレーブの上段と下段のスレーブ装置の状態も同時に把握することができる。
【００３３】
つぎに、上記フラグ・フィールドを参照したスレーブ装置のノードIDの設定・追加・異常検出の実施内容を図３〜１０により、詳細に説明する。
【００３４】
まず、ノードIDの前提となる規約について、説明する。
ノードIDは、スレーブ装置のそれぞれでユニークな値が割り当てられる。本実施例のネットワークシステムはシングルマスタ方式の通信をおこなっており、マスタ装置のノードIDには、固定値“０”が割り当てられている。そして、すべてのノードを対象とすることを意味するブロードキャストID“255”を用意している。さらに、詳細は後述するが、スレーブ装置は、マスタ装置からノードIDが割り当てられるまでは、ノードID“254”が設定されているものとする。上記を前提に、図3により、ノードIDの設定シーケンスを説明する。
【００３５】
（動作シーケンス）
図３は、マスタ装置とスレーブ装置間のノードIDの設定シーケンスを示した図で、マスタ装置とスレーブ装置Ａ・Ｂ・Ｃとの間の通信ラインと下段装置接続信号と上段装置状態信号の動作シーケンスを、時間変化を紙面の下方向に表わしたシーケンス図である。
マスタ装置の詳細な動作フローとスレーブ装置の詳細な動作フローは後述する。
【００３６】
本実施例では、マスタ装置のノードIDを固定値“０”としているので、常にノードID設定完了とみなすことができ、デジタル出力端子(Ａ)103に上段装置ID設定完を出力する。マスタ装置のデジタル出力端子(Ａ)103は、上段装置状態信号としてスレーブ装置Ａにデイジーチェーン接続され、上段装置ID設定完を通知する（S300）。
つぎに、マスタ装置は、デジタル入力端子(Ｂ)をモニタして、下段装置が接続されているか否かの判定をおこなう（S301）。デジタル入力端子(Ｂ)には下段装置接続信号でスレーブ装置Ａ106がデイジーチェーン接続しており、下段装置接続状態と判定される。
【００３７】
図示していないが、この時点で、マスタ装置が接続するスレーブ装置に設定されているノードIDのクリアを要求する“ノードIDクリア要求コマンド”を通知するようにしてもよい。特に、ネットワークシステムの稼働中にノードIDの再割当をおこなう際に必要となる。この場合には、宛先のノードIDをブロードキャストID“255”として、“ノードIDクリア要求コマンド”を通知する。
【００３８】
マスタ装置は、上記の下段装置接続状態の判定(S301)の後に、宛先ノードIDを“254”とした“イニシャル要求コマンド”を出力する（S302）。このコマンドは、共有バス接続するスレーブ装置Ａ・Ｂ・Ｃに差動シリアルライン105を介して通知される。
“イニシャル要求コマンド”を受けたスレーブ装置Ａ・Ｂ・Ｃのそれぞれは、デジタル入力端子（Ａ）をモニタし、デイジーチェーン接続した上段装置がノードIDの設定を完了しているか否かを判定する(S303)。
【００３９】
この時点では、スレーブ装置Ａ・Ｂ・ＣはノードIDの設定がおこなわれていない。マスタ装置に上段装置状態信号が接続しているスレーブ装置Ａのみが“上段装置のノードID設定完”を検知し、スレーブ装置Ｂ・Ｃは“上段装置のノードID設定未完“を検知する。これにより、スレーブ装置Ａのみが、自己がノードID設定等のイニシャル処理の対象と判断し、“イニシャル要求コマンド”のコマンド応答の電文を出力する(S304)。
【００４０】
コマンド応答を受信したマスタ装置は、この応答により、ノードIDが未設定のスレーブ装置が存在することを確認できる。つぎに、マスタ装置は、宛先ノードIDを“254”とした“ノードID設定コマンド”を出力する(S305)。このとき、電文のデータ部に、設定するノードID値（ID=1）を指定する。
この“ノードID設定コマンド”はスレーブ装置Ａ・Ｂ・Ｃに通知されるが、先に、自己がノードID設定等のイニシャル処理の対象と判断したスレーブ装置Ａのみが、ノードIDをID=1とするノードID設定をおこなう(S306)。
【００４１】
スレーブ装置Ａは、自己のノードID設定の後に、デジタル出力端子(Ａ)に“上段装置ID設定完“を出力し、上段装置状態信号でデイジーチェーン接続されたスレーブ装置Ｂに、スレーブ装置ＡのノードID設定が完了したことを通知する(S307)。
そして、スレーブ装置Ａは、“ノードID設定コマンド”のコマンド応答の電文を出力する(S308)。このとき、図２bに示される応答電文の定型部のフラグ・フィールドはつぎのように設定される。
【００４２】
“ノードID設定完了フラグ”には、設定完を表わす“１”が格納され、“上段装置状態フラグ”にも、正常を表わす“１”が格納される。スレーブ装置Ａのデジタル入力端子(Ｂ)には、下段装置接続信号によりスレーブ装置Ｂの接続指示出力端子がデイジーチェーン接続されており、デジタル入力端子(Ｂ)をモニタすることで、“下段装置接続フラグ”には下段装置有を表わす“１”が格納される。
【００４３】
“ノードID設定コマンド”のコマンド応答を受けたマスタ装置は、応答電文の“下段装置接続フラグ”を参照して、下段にスレーブ装置が接続されているか否かの判定をおこなう(S309)。応答電文の“下段装置接続フラグ”が“１”の場合には、再び、宛先ノードIDを“254”とした“イニシャル要求コマンド”を出力する(S310)。
このコマンドは、共有バス接続するスレーブ装置Ａ・Ｂ・Ｃに通知されるが、スレーブ装置Ａは、既に、ノードID（ID=1）が設定されているので、この“イニシャル要求コマンド”の電文を受信することはない。
【００４４】
“イニシャル要求コマンド”を受信したスレーブ装置Ｂ・Ｃのそれぞれは、デジタル入力端子(Ａ)をモニタし、デイジーチェーン接続した上段装置がノードIDの設定を完了しているか否かを判定する(S311)。
この時点で、スレーブ装置ＡがノードID設定を完了し、“上段装置ID設定完”を上段装置状態信号に出力している（S307）ので、スレーブ装置Ｂは上段装置のノードID設定完”を検知する。スレーブ装置Ｃは“上段装置のノードID設定未完“を検知する。これにより、スレーブ装置Ｂは、自己がノードID設定等のイニシャル処理の対象と判断し、“イニシャル要求コマンド”のコマンド応答の電文を出力する(S312)。
【００４５】
コマンド応答を受信したマスタ装置は、宛先ノードIDを“254”とした“ノードID設定コマンド”を出力する(S313)。このとき、電文のデータ部に、設定するノードID値（ID=2）を指定する。本実施例では、マスタ装置は、ID=1から順に大きくなるノードID値を割り当てるが、これに限られるものではなく、設定するスレーブ装置の間でユニークな値であればよい。
【００４６】
この“ノードID設定コマンド”はスレーブ装置Ａ・Ｂ・Ｃに通知される。しかし、スレーブ装置Ａは、既に、ノードID（ID=1）が設定されているため、前記“ノードID設定コマンド”を受信しない。したがって、先に、自己がノードID設定等のイニシャル処理の対象と判断したスレーブ装置Ｂのみが、ノードIDをID=2とするノードID設定をおこなう(S314)。
【００４７】
スレーブ装置Ｂは、自己のノードID設定の後に、デジタル出力端子(Ａ)に“上段装置ID設定完“を出力し、上段装置状態信号でデイジーチェーン接続されたスレーブ装置Ｃに、スレーブ装置ＢのノードID設定が完了したことを通知する(S315)。
そして、スレーブ装置Ｂは、“ノードID設定コマンド”のコマンド応答の電文を出力する(S316)。このとき、図２bに示される応答電文の定型部のフラグ・フィールドはつぎのように設定される。
【００４８】
“ノードID設定完了フラグ”には、設定完を表わす“１”が格納され、“上段装置状態フラグ”にも、正常を表わす“１”が格納される。スレーブ装置Ｂのデジタル入力端子(Ｂ)には、下段装置接続信号によりスレーブ装置Ｃの接続指示出力端子がデイジーチェーン接続されており、デジタル入力端子(Ｂ)をモニタすることで、“下段装置接続フラグ”には下段装置有を表わす“１”が格納される。
【００４９】
“ノードID設定コマンド”のコマンド応答を受けたマスタ装置は、応答電文の“下段装置接続フラグ”を参照して、下段にスレーブ装置が接続されているか否かの判定をおこなう(S317)。応答電文の“下段装置接続フラグ”が“１”の場合には、再び、宛先ノードIDを“254”とした“イニシャル要求コマンド”を出力する(S318)。
このコマンドは、共有バス接続するスレーブ装置Ａ・Ｂ・Ｃに通知されるが、既に、スレーブ装置ＡにはノードID（ID=1）が設定され、スレーブ装置ＢにはノードID（ID=2）が設定されているので、この“イニシャル要求コマンド”の電文を受信することはない。
【００５０】
“イニシャル要求コマンド”を受信したスレーブ装置Ｃは、デジタル入力端子(Ａ)をモニタし、デイジーチェーン接続した上段装置がノードIDの設定を完了しているか否かを判定する(S319)。
この時点で、スレーブ装置ＢがノードID設定を完了し、“上段装置ID設定完”を上段装置状態信号に出力している（S315）ので、スレーブ装置Ｃは、上段装置のノードID設定完”を検知する。これにより、スレーブ装置Ｃは、自己がノードID設定等のイニシャル処理の対象と判断し、“イニシャル要求コマンド”のコマンド応答の電文を出力する(S320)。
【００５１】
コマンド応答を受信したマスタ装置は、宛先ノードIDを“254”とした“ノードID設定コマンド”を出力する(S321)。このとき、電文のデータ部に、設定するノードID値（ID=3）を指定する。
【００５２】
この“ノードID設定コマンド”はスレーブ装置Ａ・Ｂ・Ｃに通知される。しかし、既に、スレーブ装置ＡはノードIDがID=1に設定され、スレーブ装置ＢはノードIDがID=2に設定されているため、この“ノードID設定コマンド”を受信しない。したがって、先に、自己がノードID設定等のイニシャル処理の対象と判断したスレーブ装置Ｃのみが、ノードIDをID=3とするノードID設定をおこなう(S322)。
【００５３】
スレーブ装置Ｃは、自己のノードID設定の後に、デジタル出力端子(Ａ)に“上段装置ID設定完“を出力する（図示せず）。スレーブ装置Ｃは、最下段のスレーブ装置となっているため、上位状態信号が接続されていない。
そして、スレーブ装置Ｃは、“ノードID設定コマンド”のコマンド応答の電文を出力する(S323)。このとき、図２bに示される応答電文の定型部のフラグ・フィールドはつぎのように設定される。
【００５４】
“ノードID設定完了フラグ”には、設定完を表わす“１”が格納され、“上段装置状態フラグ”にも、正常を表わす“１”が格納される。スレーブ装置Ｃは最下段のスレーブ装置のため、スレーブ装置Ｃのデジタル入力端子(Ｂ)には下段装置接続信号が接続されていない。このため、スレーブ装置Ｃのデジタル入力端子(Ｂ)は、下段装置が未接続の状態となっている。スレーブ装置Ｃは、デジタル入力端子(Ｂ)をモニタして、“下段装置接続フラグ”に下段装置無を表わす“０”を格納する。
【００５５】
“ノードID設定コマンド”のコマンド応答を受けたマスタ装置は、応答電文の“下段装置接続フラグ”を参照して、下段にスレーブ装置が接続されているか否かの判定をおこなう(S324)。この時には、応答電文の“下段装置接続フラグ”が“０”となっているため、下段にはスレーブ装置が接続されていないと判断し、マスタ装置は、ノードIDの設定処理を終了する。
【００５６】
上記のとおり、本実施例のマスタスレーブシステムは、マスタ装置とスレーブ装置との間を、上段装置状態信号と下位装置接続信号でデイジーチェーン接続した。そして、上段装置状態信号をモニタして、上段装置がノードID設定完しているスレーブ装置のうちの最下段のスレーブ装置に接続するスレーブ装置が、つぎに、自己がノードID設定するスレーブ装置であると認識し、マスタ装置が出力する“ノードID設定コマンド”に基づいてノードID設定をおこなうようにした。さらに、スレーブ装置は、応答コマンドにより、下段装置の接続状態をマスタ装置に通知し、マスタ装置は、前記下段装置の接続状態を参照してスレーブ装置の有無を判断し、下段に接続するスレーブ装置がなくなるまで、スレーブ装置ごとに順にノードIDの設定をおこなうようにした。これにより、もれなくスレーブ装置にユニークなノードIDの設定をおこなうようにしたものである。
【００５７】
図３のシーケンス図の説明では、イニシャル要求コマンドのコマンド応答（S304、S312、S320）について特に言及しながったが、イニシャル処理の結果を応答するようにしてもよい。例えば、エラー情報等の情報を応答電文に含ませることにより、マスタ装置でリトライ処理を指示することや、当該スレーブ装置を無効にして、ノードIDの割当処理を続ける等の処理をおこなうことができる。
【００５８】
また、図３に示したシーケンスでは、“イニシャル要求コマンド”とそのコマンド応答は、必須の処理ではない。スレーブ装置は、上段装置状態によって自己がつぎにノードID設定するスレーブ装置であることを認識するので、マスタ装置が出力する“ノードID設定コマンド”によるノードID設定が可能となっている。
【００５９】
（スレーブ装置の処理フロー）
つぎに、図３のノードIDの設定シーケンスに対応するスレーブ装置の処理フローを図４により説明する。
【００６０】
自機のリセット処理あるいはマスタ装置からの“ノードIDクリア要求コマンド”により、スレーブ装置は、自機のノードIDを“254”に設定する（S401）。以降、宛先ノードIDが“254”の電文を受信する。前述のとおり、ノードID“254”はスレーブ装置のデフォルトのノードIDであり、マスタ装置からノードIDが割り当てられるまでは、ノードID“254”が設定されている。
【００６１】
つぎに、マスタ装置からの宛先ID=254の“イニシャル要求コマンド”の受信を待つ（S402）。
“イニシャル要求コマンド”を受信すると、自機のノードIDの設定状態とデジタル入力端子(Ａ)をモニタして上段装置の状態を検出する（S403）。
【００６２】
自機のノードIDの設定状態と上段装置の状態を判定し（S404）、自機のノードIDの設定が未完（X=0）、かつ、上段装置のID設定状態が設定未完（Y=0）の場合には、上段装置のノードID設定はまた完了していない判断し（S405）、マスタ装置からの“イニシャル要求コマンド”には応答しない（S406）。そして、一定時間の経過待ち後に（S407）、“イニシャル要求コマンド”の受信待ち（S402）に戻る。
【００６３】
（S404）で、自機のノードIDの設定が未完（X=0）、かつ、上段装置のID設定状態が設定完（Y=1）の場合には、上段装置のノードID設定が完了していると判断し（S408）、マスタ装置の“イニシャル要求コマンド”に対するコマンド応答をおこなう（S409）。この後、マスタ装置からの“ノードID設定コマンド”の受信を待つ（S410）。
【００６４】
マスタ装置からの“ノードID設定コマンド”を受信すると、電文に指定されたノードID値に自己のノードIDを変更する（S411）。この後、デジタル出力端子(Ａ)に“上段装置ID設定完”を出力し、上段装置状態信号で接続された下段スレーブ装置に状態変化を通知する（S412）。つぎに、デジタル入力端子(Ｂ)をモニタし、下段装置の接続状態を検出して、コマンド応答電文のフラグ・フィールドの“下段装置接続フラグ”に格納する値を求める。下段にスレーブ装置が接続されていれば、下段装置接続フラグ”には下段装置有を表わす“１”が格納される（S413）。
【００６５】
フラグ・フィールドの“ノードID設定完了フラグ”と“上段装置状態フラグ”も所定の値が格納されて、コマンド応答電文が作成され、マスタ装置に出力される（S414）。上記の処理によりスレーブ装置のノードIDの設定をおこなう。
【００６６】
図４のフロー図では、“イニシャル要求コマンド”の受信により上段装置のノードIDの設定状態を判定しているが、“ノードID設定コマンド”の受信により、上段装置のノードIDの設定状態を判定し、設定完であれば、自機のノードIDの設定をおこなうようにしてもよい。
【００６７】
（マスタ装置の処理フロー）
つぎに、図３のノードIDの設定シーケンスに対応するマスタ装置の処理フローを図５により説明する。この処理は、実施例のマスタスレーブシステムが初期起動するときや、システム起動後に、マスタ装置が再起動する際に実行される。マスタ装置が再起動する場合には、図５のフロー図を実行する前に、全スレーブ装置に全スレーブ機器に対し、現在設定されているノードIDとROM上に格納されているノードIDを全てクリアする“ノードIDクリア要求コマンド”を発行する。
【００６８】
マスタ装置はノードID設定のための処理の初めに、スレーブ装置台数の管理数を０に初期設定する。そして、マスタ装置のデジタル出力端子(Ａ)に上段装置ID設定完を出力し、デイジーチェーン接続するスレーブ装置に上段装置接続状態を通知する（S501）。
つぎに、マスタ装置は、デジタル入力端子(Ｂ)をモニタして、下段装置が接続されているかの判定をおこなう（S502）。マスタ装置のデジタル入力端子(Ｂ)に下段装置接続信号を介してスレーブ装置Ａがデイジーチェーン接続されていれば下段装置接続状態と判定され、S504に進む。
【００６９】
下段装置の接続がなければ一定時間経過後（S503）、再度、デジタル入力端子(Ｂ)をモニタして、下段装置が接続されているかの判定をおこなう（S502）。図示していないが、所定回数接続確認をおこなっても、下段装置の接続が確認できなければ、マスタ装置はスレーブ装置が未接続として処理を終了する。
【００７０】
S504で、マスタ装置は、接続するスレーブ装置に、宛先ノードIDを“254”とした“イニシャル要求コマンド”を出力する。前述のとおりこのコマンドは、接続するすべてのスレーブ装置に通知されるが、デイジーチェーン接続した上段装置がノードIDの設定を完了しているスレーブ装置のみが、“イニシャル要求コマンド”の応答をおこなう。
【００７１】
マスタ装置は、スレーブ装置からの応答を確認し（S505）、応答があった場合には、S506に進む。応答がなかった場合には、“イニシャル要求コマンド”の通知リトライ処理を２回まで実施する（S507）（S508）。
S508で、２回リトライしても応答がなかった場合には、ノードID設定の異常としてログ出力をおこない（S513）、システム稼働不可として終了する（S514）。
【００７２】
S506で、マスタ装置は、宛先ノードIDを“254”とした“ノードID設定コマンド”を出力する。このとき、電文のデータ部に、設定するノードID値を指定する。指定するID値は、マスタ装置が、スレーブ装置ごとにユニークなID値となるように割り振る。例えば、ID=1から順に増加する整数値を割り振る。前述のとおりこのコマンドは、接続するすべてのスレーブ装置に通知されるが、自己がノードID設定等のイニシャル処理の対象と判断したスレーブ装置（デイジーチェーン接続した上段装置がノードIDの設定を完了しているスレーブ装置）のみが、指定されたノードIDの設定をおこない、“ノードID設定コマンド”のコマンド応答をおこなう。
【００７３】
マスタ装置は、スレーブ装置からのコマンド応答を確認し、応答電文のフラグ・フィールドのうち、“ノードID設定完了フラグ”が設定完を表わす“１”が格納されているか否かを確認する（S509）。ノードID設定完了フラグ”に設定完を表わす“１”が格納されていれば、S510に進む。また、コマンド応答がなかった場合や、“ノードID設定完了フラグ”に設定未完を表わす“０”が格納されていた場合には、“ノードID設定コマンド”の通知リトライ処理を２回まで実施する（S511）（S512）。
【００７４】
S512で、２回リトライしても応答がなかった場合には、ノードID設定の異常としてログ出力をおこない（S513）、システム稼働不可として終了する（S514）。
【００７５】
S510で、マスタ装置は、接続するひとつのスレーブ装置のノードID設定が完了したものとして、スレーブ装置台数の管理数を１インクリメントする。
つぎに、先に受信した“ノードID設定コマンド”のコマンド応答の応答電文のフラグ・フィールドの“下段装置接続フラグ”に下段装置有を表わす“１”が格納されているか否かを判定する（S515）。“下段装置接続フラグ”に下段装置無を表わす“０”が格納されていれば、すべてのスレーブ装置のノードID設定が完了したので、マスタ装置のイニシャル処理フローを終了する。
【００７６】
S515で、“下段装置接続フラグ”に下段装置有を表わす“１”が格納されていれば、ノードIDが未設定のスレーブ装置が接続されているものと判断し、上記のS504からS510の処理フロー（図５の破線で囲まれた矩形領域の処理）をおこない、スレーブ装置にノードIDの設定をおこなう。
そして、S515で、応答電文のフラグ・フィールドの“下段装置接続フラグ”の判定をおこなう。
【００７７】
S515で、最下段のスレーブ装置からの応答電文の“下段装置接続フラグ”には、下段装置無を表わす“０”が格納されているので、マスタ装置は、すべてのスレーブ装置のノードID設定をおこなうことができる。
【００７８】
このように、本実施例では、“上段装置のノードID設定完”を通知する上段装置状態信号と下段装置の有無を通知する下段装置接続信号とにより、マスタ装置と複数のスレーブ装置がデイジーチェーン接続されているので、マスタ装置に近いスレーブ装置から順にスレーブ装置台数分のノードIDの設定が行われる。
【００７９】
（スレーブ装置の増設処理）
つぎに、本実施例のシステムが稼働中にスレーブ機器を増設した際のノードIDの割当処理を図６により説明する。
【００８０】
本実施例のスレーブ装置は、図１に示されるように、上段装置状態信号と下段装置接続信号とによりデイジーチェーン接続されている。このため、スレーブ装置の増設は、最下段のスレーブ装置に、新たなスレーブ装置を上段装置状態信号と下段装置接続信号により接続することによりおこなわれる。
【００８１】
本実施例のマスタスレーブシステムは、ポーリング方式により通信をおこなっており、スレーブ装置の応答電文のフラグ・フィールドの“下段装置接続フラグ”により、下段装置の接続判定をおこなえることは上述のとおりである。したがって、P台のスレーブ装置が接続されている状態で、スレーブ装置が追加された場合には、最下段のスレーブ装置（ID=P）からの応答電文により、P+1台目のスレーブ装置の接続有無を判定できる。
詳しくは、マスタ装置は、図６に示す最下段のスレーブ装置（ID=P）への通信により、追加されたP+1台目のスレーブ装置のノードIDの設定処理をおこなう。
【００８２】
マスタ装置は、まず、宛先ID=P（最下段のスレーブ装置）へコマンド・データ電文を送信する（S601）。つぎに、スレーブ装置（ID=P）からのコマンド応答を待ち、応答電文のフラグ・フィールドの“下段装置接続フラグ”に、下段装置有を表わす“１”が格納されているか否かを判定する（S602）。“下段装置接続フラグ”に下段装置無を表わす“０”が格納されていれば、“スレーブ装置の増設無”と判断し（S604）、最下段のスレーブ装置への通信を終了する。
【００８３】
S602で、“下段装置接続フラグ”に下段装置有を表わす“１”が格納されていれば、ノードIDが未設定のスレーブ装置が接続されているものと判断し、増設されたスレーブ装置のイニシャル処理とノードIDの割当処理をおこない、マスタ装置のスレーブ装置接続管理台数を更新する（S603）。具体的には、スレーブ装置の台数がPのときに1台のスレーブ装置が増設されると、図６の処理フローにより、追加されたスレーブ装置のノードID値がID=P+1に設定され、マスタ装置のスレーブ装置管理台数はP+1台に更新される。
【００８４】
つぎに、図６のS603の増設スレーブ装置のイニシャル処理の詳細を図７により説明する。
図７は、マスタ装置が増設スレーブ装置のイニシャル処理・ノードID設定処理をおこなうフロー図を示したものである。
【００８５】
増設スレーブ装置は、新たにシステムに追加されるものであり、自機のノードIDは“254”になっている。さらに、上段装置状態信号と下段装置接続信号によりデイジーチェーン接続する上段スレーブ装置は、既に、ノードID設定が完了しているので、上段装置状態信号から、上段装置のID設定状態が設定完であることが通知される。したがって、マスタ装置から宛先IDが“254”の“イニシャル要求コマンド”を受信すると、自機がノードID設定の対象であることが認識される。このとき、他のスレーブ装置は、既に、ノードIDが設定されているため、“イニシャル要求コマンド”を受信することはない。
【００８６】
図７の処理フロー図において、マスタ装置は、接続するスレーブ装置に、宛先ノードIDを“254”とした“イニシャル要求コマンド”を出力する（S504）。前述のとおり、このコマンドを受信した増設スレーブ装置がイニシャル処理とノードID設定処理を開始し、フローにしたがって処理される。処理内容は、図５に示したフローの点線で囲まれた部分と同じになるため、ここでは説明を省略する。
【００８７】
上記のとおり、スレーブ装置が増設されるときには、増設スレーブ装置のみにイニシャル処理・ノードID設定処理をおこなうことができる。このため、全スレーブ装置のノードIDの設定処理をおこなう必要がないため、システム処理を中断する必要がなく、短時間にスレーブ装置の追加処理をおこなうことができる。
【００８８】
（スレーブ装置の異常検知）
つぎに、システム稼働中にスレーブ機器の異常検知方法の処理を図８、９により説明する。
本実施例では、上述したノードID設定の実施例での上段装置状態信号の意味に加えて、“上段装置のノードID設定完”を通知する上段装置状態信号を、装置の状態を示す信号として使用し、信号の状態を応答電文の上段装置状態フラグに反映するようにする。本実施例は、スレーブ装置のノードIDが設定完了して上段装置状態信号に設定完を表わす“１”が出力された後に、当該スレーブ装置で異常処理状態が生じると、上段装置状態信号が設定未完を表わす“０”にリセットするものである。また、当該スレーブ装置が内部異常によりリブート処理によっても、設定未完を表わす“０”にリセットするものである。応答電文の上段装置状態フラグも同様に変化する。
別の言い方をすれば、“上段装置のノードID設定完“とスレーブ装置の異常処理状態を重畳して上段装置状態信号に出力するものである。
なお、上述のとおり、上段装置状態信号は下段のスレーブ装置がノードIDを設定する際に参照される。したがって、ノードIDの設定後に変化しても、下段のスレーブ装置のノードIDの設定には影響しない。
【００８９】
スレーブ装置の異常状態の検出には、当該スレーブ装置からのポーリング応答が規定回数以上ない場合と、当該スレーブ装置の下段スレーブ装置のポーリング応答の電文の“上段装置状態フラグ”が異常状態を示す場合の２つがある。ID=nのスレーブ装置の前者をリトライ超過フラグROV(n)とし、後者を上段装置状態フラグ(n)flagとする。
【００９０】
図８は、ID=nのスレーブ装置のリトライ超過フラグROV(n)と上段装置状態フラグ(n)flagの取得方法を説明するためのフロー図である。
マスタ装置は、ID=nのスレーブ装置にコマンド/データ電文を送信し（S801）、スレーブ装置からの応答を待つ（S802）。応答がない場合には、S801のコマンド/データ電文の送信のリトライ処理をおこなう（S804、S805）。
【００９１】
リトライ処理をおこなってもスレーブ装置からの応答がない場合には、リトライ超過フラグROV(n)に、リトライエラーを示す“１“をセットする。このとき、スレーブ装置から応答電文がないので“上段装置状態フラグ“の検出ができない。したがって、上段装置状態フラグ(n-1)flagは不定となる（S806）。
【００９２】
S802で、スレーブ装置から応答があった場合には、応答電文のフラグ・フィールドを参照して“上段装置状態フラグ”を検出し、上段装置状態フラグ(n-1)flagを取得する（S803）。つぎに、取得した上段装置状態フラグ(n-1)flagが、正常状態（ID設定完）を表わす“１”であるか否かを判定する（S807）。
正常状態である場合には、上段装置状態フラグ(n-1)flagに“１”を設定する。この場合には、スレーブ装置から応答があったので、リトライ超過フラグROV(n)は“０”に設定する（S808）。
S807で、異常状態である場合には、上段装置状態フラグ(n-1)flagに“０”を設定し、リトライ超過フラグROV(n)も“０”に設定する（S809）。
【００９３】
上述した図８のフローにより、上段装置状態フラグ(n-1)flagとリトライ超過フラグROV(n)を取得できる。上段装置状態フラグ(n)flagは、異常検知をおこなうスレーブ装置の下段のスレーブ装置に対して同様の処理をおこなうことにより取得できる。
つまり、当該スレーブ装置と隣接するスレーブ装置の応答から、上段装置状態フラグ(n-1)flag、(n)flag、とリトライ超過フラグROV(n)、ROV(n+1)を取得し、このうち、上段装置状態フラグ(n)flagとリトライ超過フラグROV(n)からID=nのスレーブ装置の異常状態を判定し、スレーブ装置の復帰処理をおこなう。
【００９４】
図９により、取得した上段装置状態フラグ(n)flagとリトライ超過フラグROV(n)の組み合わせによる復帰処理を説明する。
この組み合わせのうち、上段装置状態フラグ(n)flagが“１”で、かつ、リトライ超過フラグROV(n)が“０”の場合は、正常状態であり、復帰処理はおこなわない。
【００９５】
リトライ超過フラグROV(n)が“０”、かつ、上段装置状態フラグ(n)flagが“０”の場合、ID=nのスレーブ装置は初期状態に戻っている可能性があるため、イニシャル処理を実施する。リトライ超過フラグROV(n)が“１”、かつ、上段装置状態フラグ(n)flagが“０”の場合も同様に、イニシャル処理を実施する。これは、スレーブ装置自身のエラーリカバリ機能によりリセット処理がおこなわれたことを想定している。
【００９６】
リトライ超過フラグROV(n)が“１”、かつ、上段装置状態フラグ(n)flagが“１”の場合、スレーブ装置がフリーズ状態にある可能性があるため、スレーブ装置をリセットし、その後、イニシャル処理をおこなうようにする。ここで、スレーブ装置のリセットとは、装置の動作状態を電源投入時等の初期状態に戻すこと意味し、イニシャル処理はスレーブ装置の初期設定処理を意味する。
上記のように、下段のスレーブ装置の応答電文に下段スレーブ装置が接続する上段スレーブ装置の装置状態を示す“上段装置状態フラグ“を設けることにより、スレーブ装置の異常状態からの復帰を適切におこなえるため、マスタスレーブシステムの信頼性が向上する。
【００９７】
上記の実施例では、デイジーチェーン接続された直上の上段スレーブ装置の装置状態を応答電文の“上段装置状態フラグ”に反映する例を説明したが、デイジーチェーン接続された複数の上段スレーブ装置の装置状態を応答電文の“上段装置状態フラグ”に反映するようにしてもよい。この場合には、いずれかの上段スレーブ装置で異常が発生したかを調べる処理が必要となるが、ネットワークシステムとしての異常検知が早くなる効果がある。多くのスレーブ装置がデイジーチェーン接続されてポーリング方式により通信する場合には、その効果が顕著となる。以下に、その実施内容を詳細に説明する。
【００９８】
図１０は、上段装置状態信号の出力回路構成の概要を説明する図である。図１のシステム構成に対応して、スレーブＢとスレーブＣの内部構成を示しているが、スレーブＡも同様の構成をもつ。ここでは、スレーブＢの内部構成を説明するが、スレーブＡ、Ｃも同様の構成・機能をもつ。
【００９９】
上述のとおり、スレーブ(Ｂ)112のデジタル入力端子(Ａ)113には、デイジーチェーン接続するスレーブＡの上段装置状態信号が接続され、スレーブＡの状態（ノードID設定の完了状態）が通知されている。スレーブ(Ｂ)のノードIDの設定処理時にノードID設定部は、この信号と、デジタル入力端子(Ｂ)117から入力される下段装置接続信号により通知される下段装置の接続指示により、自機のノードID設定をおこない、デジタル出力端子(Ａ)116にノードIDの設定完を出力している。
【０１００】
本実施例は、デジタル出力端子(Ａ)116に、ノードID設定部の設定状態とスレーブ装置の内部異常検出部の検出状態とデジタル入力端子（Ａ）113の状態の論理積（AND）を出力するようにする。これにより、デジタル出力端子(Ａ)116に、スレーブ(Ｂ)のノードIDの設定完の状態と内部異常検出状態を出力するとともに、デジタル入力端子（Ａ）の状態をデジタル出力端子(Ａ)に出力する。つまり、スレーブ(Ａ)106もスレーブ(Ｂ)112と同様の構成としているので、スレーブ(Ａ)の内部異常検出状態が、スレーブ(Ｂ)112のデジタル出力端子(Ａ)116に出力されることになる。
【０１０１】
そして、スレーブ(Ｂ)112のデジタル出力端子(Ａ)116は、スレーブ(Ｃ)118のデジタル入力端子（Ａ）119に上段装置状態信号を介してデイジーチェーン接続され、スレーブ(Ｃ)118の応答電文の“上段装置状態フラグ”に反映される。
これにより、スレーブ(Ｃ)118の応答電文の“上段装置状態フラグ”は、スレーブ(Ａ)106の内部異常検出状態、または、スレーブ(Ｂ)112の内部異常検出状態を示すことができる。以上により、直上のスレーブ装置の異常状態だけでなく、上段にデイジーチェーン接続された複数のスレーブ装置の異常状態を下段のスレーブ装置の応答から検知することができる。
【０１０２】
（実施例２）
つぎに、本発明をビル管理システムに適用した実施例を説明する。
図１１は、ビル管理システムのシステム構成を示す図である。
接点モジュール25a〜27a、25b〜27bは、電力計や照度計等の計測センサが内蔵あるいは接続されたセンサモジュールで、計測データを例えば、フロアー毎に設けたホストコントローラ24a、24bに、差動シリアルネットワークａ、ｂを介して、送信している。そして、接点モジュール25a〜27a、25b〜27bは、上段装置状態と下段装置状態を示す信号により、デイジーチェーン接続されている。図１のマスタ装置101がホストコントローラ24a、24bに対応し、スレーブ (Ａ)106、スレーブ(Ｂ)112、スレーブ(Ｃ)118が、接点モジュール25a〜27a、25b〜27bに対応している。
【０１０３】
ホストコントローラ24a、24bは、差動シリアルネットワークａ、ｂに共有バス接続する接点モジュール25a〜27a、25b〜27bをポーリング方式のプロトコルでデータの送受信を行う。そして、ホストコントローラ24a、24bは、ＨＵＢ23を介して、システム全体を統括し情報収集機能をもつサーバ22とユーザマンマシンとなるクライアントPC(21)に接続している。
ホストコントローラ24a、24bは、接点モジュール25a〜27a、25b〜27bに対して、上記の実施例で説明したノードID設定処理と増設処理、異常状態の検知とリカバリ処理をおこなう。
【符号の説明】
【０１０４】
１０１  マスタ装置
１０２、１０９、１１５、１２１  シリアルポート
１０３、１１０、１１６、１２２  デジタル出力端子(Ａ)
１０４、１１１、１１７、１２３  デジタル入力端子(Ｂ)
１０５  差動シリアルライン
１０６、１１２、１１８  スレーブ装置
１０７、１１３、１１９  デジタル入力端子Ａ
１０８、１１４、１２０  接続指示出力端子
【図３】
2014230097.tif 000003
【図４】
2014230097.tif 000004
【図５】
2014230097.tif 000005
【図６】
2014230097.tif 000006
【図７】
2014230097.tif 000007
【図８】
2014230097.tif 000008
【図９】
2014230097.tif 000009
【図１０】
2014230097.tif 000010
【図１１】
2014230097.tif 000011
【図１】
2014230097.tif 000012
【図２ａ】
2014230097.tif 000013
【図２ｂ】
2014230097.tif 000014