(57)【要約】      （修正有）【課題】マスタユニットにシリアル通信接続される複数のスレーブユニットがそれぞれ自己のＩＤを自動的に設定できるネットワークシステムを提供する。【解決手段】マスタユニットが有する第１の通信手段は、複数のスレーブユニットとシリアル通信線を介して通信し、送信手段は、第１の通信手段により複数のスレーブユニットに対してＩＤ判別用のパルスの発信を要求するＩＤ付与命令をシリアル通信線へ送信する。スレーブユニットが有する第２の通信手段は、シリアル通信線を介してマスタユニットおよび他のスレーブユニットと通信し、発信手段は、第２の通信手段がＩＤ付与命令を受信した場合、１つのＩＤ判別用のパルスをシリアル通信線へ発信し、計数手段は、当該スレーブユニットよりも下位に接続した各スレーブユニットからのＩＤ判別用のパルスの数を計数し、決定手段は、計数手段により計数したＩＤ判別用のパルスの数に基づいて自己のＩＤを決定する。【選択図】図６
2013192173.tif 000002
【特許請求の範囲】
【請求項１】
マスタユニットと複数のスレーブユニットとを有するネットワークシステムにおいて、
前記マスタユニットは、
前記複数のスレーブユニットとシリアル通信線を介して通信する第１の通信手段と、
前記第１の通信手段により前記複数のスレーブユニットに対してＩＤ判別用のパルスの発信を要求するＩＤ付与命令を前記シリアル通信線へ送信する送信手段と、を有し、
前記各スレーブユニットは、
前記シリアル通信線を介して前記マスタユニットおよび他のスレーブユニットと通信する第２の通信手段と、
前記第２の通信手段が前記ＩＤ付与命令を受信した場合、１つのＩＤ判別用のパルスをシリアル通信線へ発信する発信手段と、
当該スレーブユニットよりも下位に接続した各スレーブユニットからのＩＤ判別用のパルスの数を計数する計数手段と、
前記計数手段により計数したＩＤ判別用のパルスの数に基づいて自己のＩＤを決定する決定手段と、を有する、
ネットワークシステム。
【請求項２】
前記各スレーブユニットは、さらに、前記決定手段により決定した自己のＩＤを記憶する記憶手段を有する、
前記請求項１に記載のネットワークシステム。
【請求項３】
前記各スレーブユニットは、さらに、前記決定手段により決定した自己のＩＤと自己の特徴を示す機器情報とをマスタユニットに通知する通知手段を有し、
前記マスタユニットは、さらに、前記各スレーブユニットから送信されるＩＤと機器情報とを対応づけて保存する保存手段を有する、
前記請求項２に記載のネットワークシステム。
【請求項４】
前記決定手段は、前記計数手段により計数したＩＤ判別用のパルスの数を自己のＩＤとする、
前記請求項１乃至３の何れか１項に記載のネットワークシステム。
【請求項５】
前記決定手段は、前記計数手段により計数するパルスの数を演算処理した結果を自己のＩＤとする、
前記請求項１乃至３の何れか１項に記載のネットワークシステム。
【請求項６】
前記計数手段は、前記発信手段によりＩＤ判別用のパルスを発信してから監視時間が経過するまでの間に、前記第２の通信手段が受信するＩＤ判別用のパルスの数を計数する、
前記請求項１乃至５の何れか１項に記載のネットワークシステム。
【請求項７】
前記監視時間は、前記マスタユニットと前記複数のスレーブユニットとの最大接続距離に応じた最大遅延時間に基づいて設定される、
前記請求項６の何れか１項に記載のネットワークシステム。
【請求項８】
前記パルスの幅は、各スレーブユニットにおける処理時間の差の中で最も長い時間差よりも長い、
前記請求項１乃至７の何れか１項に記載のネットワークシステム。
【請求項９】
前記パルスの幅は、隣接する各スレーブユニット間の通信遅延のうち最も短い時間の２倍よりも短い、
前記請求項１乃至８の何れか１項に記載のネットワークシステム。
【請求項１０】
マスタユニットと複数のスレーブユニットとを有するネットワークシステムにおける識別情報の設定方法であって、
前記マスタユニットが複数のスレーブユニットに対してＩＤ判別用のパルスの発信を要求するＩＤ付与命令をシリアル通信線により送信し、
前記ＩＤ付与命令を受信した各スレーブユニットがそれぞれＩＤ判別用のパルスをシリアル通信線へ発信し、
前記ＩＤ判別用のパルスを発信した各スレーブユニットが下位に接続したスレーブユニットからのＩＤ判別用のパルスの数を計数し、
前記計数したＩＤ判別用のパルスの数に基づいてＩＤを決定する、
ネットワークシステムにおける識別情報の設定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークシステムおよびネットワークシステムにおける識別情報の設定方法に関する。
【背景技術】
【０００２】
マスタユニットと複数のスレーブユニットとが通信を行うネットワークシステムでは、通信機器としての各スレーブユニットを一意に特定するための識別情報としての固有のＩＤを設定する必要ある。従来、各スレーブユニットのＩＤ設定としては、人が各スレーブユニットのスイッチ設定によりＩＤを設定するのが一般的である。このようなＩＤ設定方法では、スレーブユニットの数が増減するごとに、人が各スレーブユニットのＩＤを設定し直す必要がある。これらの作業は、手間がかかるのみならず、設定ミスを生じる可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１９８５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、通信機器の識別情報を効率よく設定できるネットワークシステムおよびネットワークシステムにおける識別情報の設定方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
実施形態によれば、ネットワークシステムは、マスタユニットと複数のスレーブユニットとを有する。マスタユニットは、第１の通信手段と、送信手段とを有し、前記各スレーブユニットは、第２の通信手段と、発信手段と、計数手段と、決定手段とを有する、第１の通信手段は、複数のスレーブユニットとシリアル通信線を介して通信する。送信手段は、第１の通信手段により複数のスレーブユニットに対してＩＤ判別用のパルスの発信を要求するＩＤ付与命令をシリアル通信線へ送信する。第２の通信手段は、シリアル通信線を介してマスタユニットおよび他のスレーブユニットと通信する。発信手段は、第２の通信手段がＩＤ付与命令を受信した場合、１つのＩＤ判別用のパルスをシリアル通信線へ発信する。計数手段は、当該スレーブユニットよりも下位に接続した各スレーブユニットからのＩＤ判別用のパルスの数を計数する。決定手段は、計数手段により計数したＩＤ判別用のパルスの数に基づいて自己のＩＤを決定する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るネットワークシステムが適用される装置の例を示す図である。
【図２】本実施形態に係るネットワークシステムの構成例を示すブロック図である。
【図３】本実施形態に係るマスタユニットの構成例を示すブロック図である。
【図４】本実施形態に係るスレーブユニットの構成例を示すブロック図である。
【図５】本実施形態に係るシリアル通信線により伝送される信号レベルを説明するための図である。
【図６】本実施形態に係るマスタユニット及び各スレーブユニットが観測するシリアル通信線における信号レベルの例を示す図である。
【図７】本実施形態に係るスレーブユニットにおけるパルスの監視時間が十分でない場合の例を示す図である。
【図８】本実施形態に係る各スレーブユニットにおける処理時間が各スレーブユニットによって異なる場合の例を示す図である。
【図９】本実施形態に係るＩＤ判別用のパルス幅が長すぎる場合の例を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、複数のモジュールからなる装置に適用される機構制御用のネットワークシステムの構成例を示す図である。  
図１に示す装置は、複数のモジュール１、２、３，４、５、…により構成される。各モジュール１〜５は、それぞれが様々な用途で用いられる。すなわち、図１に示す装置は、様々な用途のモジュールを組み合わせて構成されるシステムであり、たとえば、搬送する物品を処理する物品処理装置（システム）などが想定される。
【０００８】
図１に示す装置は、機構制御用のネットワークにより統括的な制御を実現される。図１に示す装置に適用される機構制御用のネットワークは、マスタユニット１０、スレーブユニット２１、スレーブユニット２２、スレーブユニット２３及びスレーブユニット２４などを備える。各モジュール１〜５は、それぞれの用途に応じて、マスタユニット１０、あるいは、スレーブユニット２１〜２４が設けられる。
【０００９】
マスタユニット１０、あるいは、スレーブユニット２１〜２４は、モジュールの制御ユニットとして機能する。このため、制御ユニットによる制御が不要なモジュールには、マスタユニット及びスレーブユニットの何れも設けなくても良いし、複数の制御ユニットによる制御が必要なモジュールには、複数のスレーブユニットを設けても良い。図１に示す例では、モジュール２には、制御ユニットとしてのマスタユニットおよびスレーブユニットが何れも設けられていないし、モジュール３には、複数のスレーブユニット２２及び２３が設けられている。
【００１０】
また、制御ユニットとしてのマスタユニットおよび各スレーブユニットは、その用途に応じて周辺機器を接続する。図１に示す例において、モジュール３内では、スレーブユニット２１にセンサ２１ａおよびアクチュエータ２１ｂが接続されている。図１に示す例において、モジュール４内では、スレーブユニット２２にセンサ２２ａが接続され、スレーブユニット２３にアクチュエータ２３ｂが接続されている。さらに、図１に示す例において、モジュール５内では、スレーブユニット２４にセンサ２４ａおよびアクチュエータ２４ｂが接続されている。なお、センサ２１ａ、２２ａ、２４ａは、信号を入力する入力機器の例であり、アクチュエータ２１ｂ、２３ａ、２４ｂは、駆動制御の対象とする駆動機構の例である。また、制御ユニットとしてのマスタユニットおよび各スレーブユニットに接続される機器（たとえば、センサ、アクチュエータ）は、特定の種類の機器に限定されるものではない。
【００１１】
マスタユニット１０は、各スレーブユニットへ命令又はデータを送信することができる。例えば、マスタユニット１０は、スレーブユニット２３を識別情報により指定してスレーブユニット２３に接続されているアクチュエータ２３ａを動作させるための制御命令を送信することができる。マスタユニット１０から送信された制御命令は、スレーブユニット２１及びスレーブユニット２２を通じてスレーブユニット２３に送信される。当該制御命令を受信したスレーブユニット２３は、制御命令に付加された識別情報により受信した制御命令に従って、スレーブユニット２３に接続されたアクチュエータ２３ａを動作させる。
【００１２】
また、各スレーブユニット２１〜２４は、マスタユニット１０へデータを送信することができる。例えば、スレーブユニット２２は、スレーブユニット２２に接続されたセンサ２２ａで検出したデータに当該スレーブユニットの識別情報（ＩＤ）を付加して、マスタユニット１０へ送信する。スレーブユニット２２から送信された当該データは、スレーブユニット２１を通じてマスタユニット１０へ送信される。当該データを受信したマスタユニット１０は、当該データに付加されている識別情報によりどのスレーブユニットからのデータであるかを認識でき、当該データを自身のメモリに格納するなどの各種の処理を実行することができる。
【００１３】
以上のようなネットワークシステムによれば、マスタユニット１０は、各スレーブユニットに接続した機器で検出されたデータを収集して管理することができ、また、各スレーブユニットに接続された機器の駆動制御を行うこともできる。従って、上述したネットワークシステムにおいて、マスタユニット１０は、各スレーブユニットを用いて当該装置全体の統括的な動作制御を行うことができる。
【００１４】
次に、ネットワークシステムの構成について説明する。  
図２は、本実施形態に係るネットワークシステムの構成例を示すブロック図である。図２に示すように、本実施形態に係るネットワークシステムは、マスタユニットＭと複数のスレーブユニットＳ（Ｓ１、Ｓ２、…、Ｓｎ）とを有する。マスタユニットＭと複数のスレーブユニットＳとは、それぞれが独立したユニットを構成している。マスタユニットＭは、各スレーブユニットＳに制御命令を出力したり、各スレーブユニットＳからの情報を取得したりする。各スレーブユニットＳは、マスタユニットＭからの動作命令に基づいてアクチュエータなどの駆動機構を動作させたり、センサなどの入力機器からの情報を取得してマスタユニットＭへ出力したりする。
【００１５】
また、本ネットワークシステムにおいて、マスタユニットＭと各スレーブユニットＳとは、シリアル通信ラインによってデイジーチェーン接続される。シリアル通信ラインによりデイジーチェーン接続されたマスタユニットＭと各スレーブユニットＳとは、半二重通信を行う。本ネットワークシステムは、シリアル通信ラインを用いた半二重通信を行うため、通信設定において、各スレーブユニットＳに固有のＩＤが設定される。各スレーブユニットＳは、それぞれに設定されたＩＤにより識別され、マスタユニットＭあるいは他のスレーブユニットＳとのデータ通信が可能となる。
【００１６】
たとえば、各スレーブユニットＳは、自己のＩＤを付与したデータをマスタユニットＭに送信する。スレーブユニットＳから送信されたデータを受信したマスタユニットＭは、データに付与されたＩＤから受信したデータがどのスレーブユニットＳから送信されたデータであるかを識別する。また、マスタユニットＭは、特定のスレーブユニットＳへデータを送る場合、データに当該スレーブユニットＳのＩＤを付与して送信する。マスタユニットＭから送信されたデータを受信した各スレーブユニットＳは、受信したデータに付与されているＩＤと自己のＩＤとを比較し、一致すれば受信したデータを格納し、一致しなければ、次のスレーブユニットＳへ受信したデータを送信する。
【００１７】
次に、マスタユニットＭの構成例について説明する。  
図３は、本実施形態に係るマスタユニットＭの構成例を説明するためのブロック図である。  
マスタユニットＭは、図３に示すように、コアプロセッサ３１、メモリ３２、シリアルトランシーバ３３、および、コネクタ３４などを備える。コアプロセッサ３１は、通信バスなどを通じて、メモリ３２及びシリアルトランシーバ３３に電気的に接続され、コネクタ３４は、シリアルトランシーバ３３に接続されている。
【００１８】
コアプロセッサ３１は、マスタユニットＭ全体の動作を制御する制御部である。コアプロセッサ３１は、ＣＰＵなどで構成される。また、コアプロセッサ３１は、内部メモリおよび各種のインターフェイスなどを備えても良い。コアプロセッサ３１は、あらかじめ決められたプログラムを実行することにより種々の処理を実現する。たとえば、コアプロセッサ３１は、インターフェイスを通じて入力されるデータなどを基にマスタユニットＭ全体を制御する。また、コアプロセッサ３１は、オペレーティングシステムのプログラムを実行することにより、マスタユニットＭの基本的な動作制御を行う。また、コアプロセッサ３１は、アプリケーションプログラムを実行することにより、マスタユニットＭの運用形態に応じた種々の動作制御を行う。なお、コアプロセッサ３１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、コアプロセッサ３１は、ハードウエア回路により実行される機能を制御する。
【００１９】
メモリ３２は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ３２は、ＲＯＭなどの書き換え不可な不揮発性メモリ、ＲＡＭなどの揮発性のワーキングメモリ、および、ハードディスクドライブ或いは半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ３２における不揮発性メモリは、コアプロセッサ３１が実行するプログラムあるいは制御データなどを格納する。また、メモリ３２におけるＲＡＭなどのワーキングメモリは、各スレーブユニットＳへ送信するデータを記憶したり、各スレーブユニットＳから受信したデータあるいはコアプロセッサ３１の処理結果などのデータを記憶したりする。
【００２０】
シリアルトランシーバ３３は、各スレーブユニットＳとシリアル通信（半２重通信）を行う通信部である。シリアルトランシーバ３３は、シリアル通信線を通じて、各スレーブユニットのシリアルトランシーバと接続されている。コアプロセッサ３１は、シリアルトランシーバ３３を通じて各スレーブユニットＳからデータを受信し、シリアルトランシーバ３３を通じて各スレーブユニットＳへデータを送信する。
【００２１】
コネクタ３４は、シリアル通信線を接続するデータ入出力用のコネクタである。コネクタ３４は、シリアルトランシーバ３３に接続されている。マスタユニットＭから各スレーブユニットＳへ送信するデータは、シリアルトランシーバ３３によりコネクタ３４を介してシリアル通信線へ出力される。また、各スレーブユニットＳから受信するデータは、コネクタ３４を介してシリアルトランシーバ３３へ供給される。
【００２２】
次に、スレーブユニットＳ（Ｓ１、Ｓ２、…）の構成について説明する。  
図４は、本実施形態に係るスレーブユニットＳの構成例を説明するためのブロック図である。  
スレーブユニットＳは、コアプロセッサ４１、メモリ４２、シリアルトランシーバ４３、コネクタ４４（４４ａ、４４ｂ）、および、コントローラ４５を有する。また、コアプロセッサ４１は、スレーブユニット内においてバスなどを通じて、メモリ４２、シリアルトランシーバ４３、及びコントローラ４５などと電気的に接続される。シリアルトランシーバ４３は、スレーブユニットＳ内においてコネクタ４４（４４ａ、４４ｂ）に接続される。さらに、コアプロセッサ４１は、スレーブユニットＳが情報を取得する入力機器としてのセンサ５１（５１Ａ、５１Ｂ、…）に接続され、コントローラ４５は、スレーブユニットＳが制御対象する駆動機構としてのアクチュエータ６１（６１Ａ、６１Ｂ、…）に接続される。
【００２３】
コアプロセッサ４１は、スレーブユニットＳ全体の制御する制御部である。コアプロセッサ４１は、メモリ４２などに記録されている制御プログラム及び各部位からのデータに基づいて種々の処理を行う。例えば、コアプロセッサ４１は、オペレーティングシステムのプログラムを実行することにより、スレーブユニットＳの基本的な動作制御を行う。また、コアプロセッサ４１は、アプリケーションプログラムを実行することにより、スレーブユニットＳの運用形態に応じた種々の動作制御を行う。なお、コアプロセッサ４１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、コアプロセッサ４１は、ハードウエア回路により実行される機能を制御する。
【００２４】
メモリ４２は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ４２は、ＲＯＭなどの書き換え不可な不揮発性メモリ、ＲＡＭなどの揮発性のワーキングメモリ、および、ハードディスクドライブ或いは半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ４２における不揮発性メモリは、コアプロセッサ４１が実行するプログラムあるいは制御データなどを格納する。メモリ４２におけるＲＡＭなどのワーキングメモリは、マスタユニットＭへ送信するデータ、マスタユニットＭから受信したデータ及びコアプロセッサ４１の処理結果などを格納する。また、メモリ４２における不揮発性メモリは、スレーブユニットＳの用途、特定あるいは特徴などを示す機器情報を格納する。例えば、メモリ４２の不揮発性メモリは、スレーブユニットＳに接続されているセンサの種類、および、アクチュエータの種類などの特徴データを機器情報の一部として格納する。
【００２５】
シリアルトランシーバ４３は、マスタユニットＭ及び他のスレーブユニットとシリアル通信（半２重通信）を行う通信部である。シリアルトランシーバ４３は、シリアル通信線を通じて、マスタユニットＭ又は他のスレーブのシリアルトランシーバと接続される。コアプロセッサ４１は、シリアルトランシーバ４３を通じてマスタユニット及び各スレーブユニットからデータを受信することができる。また、コアプロセッサ４１は、シリアルトランシーバ４３を通じてマスタユニット及び各スレーブユニットにデータを送信することもできる。
【００２６】
コネクタ４４は、シリアル通信線の入出力コネクタ４４ａ、４４ｂである。コネクタ４４は、シリアルトランシーバ４３に接続されている。コネクタ４４は、シリアルトランシーバ４３からのデータをマスタユニット及び他のスレーブユニットへ送信する。また、コネクタ４４は、マスタユニット及び他のスレーブユニットから送信されたデータをシリアルトランシーバ４３へ送信する。
【００２７】
センサ５１（５１Ａ、５１Ｂ、…）は、スレーブユニットＳの外に設けられ、スレーブユニットＳ内のコアプロセッサ４１に接続される。センサ５１（５１Ａ、５１Ｂ、…）は、マスタユニットＭに送信するデータ、又は、コアプロセッサ４１での処理に使用されるデータなどを検知する。センサ５１は、情報を取得する入力機器の一例であり、センサ５１の種類などは、特定の用途に限定されるものではない。例えば、センサ５１としては、温度センサ、通過検知センサなどが想定される。
【００２８】
コントローラ４５は、コアプロセッサ４１からの指示に基づいてアクチュエータ６１（６１Ａ、６１Ｂ、…）を動作させる。コントローラ４５は、アクチュエータ６１によって構成が異なる。例えば、アクチュエータ６１が開閉ゲートである場合、コントローラ４５は、開閉ゲートを動作させるためのモータ駆動回路やインバータモータなどにより構成する。アクチュエータ６１は、マスタユニットＭからの命令又はコアプロセッサ４１からの命令に基づくコントローラ４５からの駆動信号に応じて動作する駆動機構である。アクチュエータ６１は、スレーブユニットＳが駆動制御の対象とする駆動機構の一例であり、アクチュエータの種類などは、特定の用途に限定されるものではない。例えば、アクチュエータ６１としては、開閉ゲートなどが想定される。
【００２９】
なお、図２に示す構成例では、各スレーブユニットおよび各スレーブユニットに接続する機器の構成は、同一の構成として図示している。しかし、本実施形態に係るネットワークシステムの各スレーブユニットは、同一の構成でなくともよい。例えば、あるスレーブユニットは、センサのみを接続し、他のスレーブユニットは、アクチュエータのみを接続し、あるスレーブは、センサもアクチュエータも接続されていないというような構成であっても良い。言い換えれば、各スレーブユニットＳは、コアプロセッサ４１、メモリ４２、シリアルトランシーバ４３およびコネクタ４４などの通信に係る構成が共通化され、その他の構成は各スレーブユニットの様々な用途（例えば、制御対象とするモジュールの用途）に応じた構成とすることが可能である。
【００３０】
次に、本実施形態に係るネットワークシステムにおけるシリアル通信について説明する。  
本ネットワークシステムにおいて、マスタユニットＭ及び各スレーブユニットＳ間では、シリアル通信が行われる。本ネットワークシステムは、シリアル通信であるため、マスタユニットＭあるいはスレーブユニットＳの何れかから送信されたデータは、シリアル通信線を介して、隣接するユニットから順番に全ユニット（マスタユニットＭ及び各スレーブユニットＳ）に送信される。例えば、マスタユニットＭがスレーブユニットＳ１に対してデータを送信した場合、送信されたデータは、スレーブユニットＳ１に送信されるだけでなく、スレーブユニットＳ２乃至Ｓｎへも送信される。また、スレーブユニットＳ２がマスタユニットＭへデータを送信する場合、スレーブユニットＳ２から送信されたデータは、スレーブユニットＳ１、Ｓ３、…、Ｓｎへも送信される。
【００３１】
図５は、本実施形態に係るシリアル通信線の通信レベルを示す概略図である。  
本ネットワークシステムにおいて、シリアル通信線上の通信レベルは、Ｌレベル又はＨレベルの何れかである。例えば、Ｈレベルを５Ｖとし、Ｌレベルを０Ｖとする運用が可能である。マスタユニットＭのシリアルトランシーバ３３及び各スレーブユニットのシリアルトランシーバ４３は、コネクタ３４及びコネクタ４４に接続されたシリアル通信線に対して、一定時間、Ｌレベル又はＨレベルの信号を出力することができる。マスタユニット及び各スレーブユニットがＬレベル又はＨレベルの信号を出力すると、シリアル通信線の通信レベルは、出力された信号のレベルとなる。マスタユニット及び各スレーブユニットのシリアルトランシーバ３３、４３は、Ｌレベル又はＨレベルの信号を繰り返し出力することにより、マスタユニットＭ及び各スレーブユニットＳ間で通信をすることができる。本実施形態に係るネットワークシステムは、通信時のデータ形式を特に指定するものではなく、通信時のデータ形式は限定されない。
【００３２】
また、マスタユニットＭ及び各スレーブユニットＳは、Ｌレベル又はＨレベルの信号を送信していないとき、当該ユニットのシリアルトランシーバ３３、４３は、ハイインピーダンス（Ｈｉ−Ｚ）状態を維持する。シリアルトランシーバ３３、４３がＨｉ−Ｚ状態を維持することで、当該ユニットは、シリアル通信線上の通信レベルに干渉しない。即ち、シリアルトランシーバ３３、４３がＨｉ−Ｚ状態になることで、当該ユニットは、他のユニットからの信号を妨害しない。また、全てのユニットがＨｉ−Ｚ状態である場合、シリアル通信線上のレベルはＨレベルになる。
【００３３】
次に、スレーブユニットが自己のＩＤを決定する手順について説明する。  
本ネットワークシステムの通信設定として、まず、マスタユニットＭは、各スレーブユニットＳが識別情報を設定するためのＩＤ付与命令をシリアル通信線へ送信する。各スレーブユニットＳは、シリアル通信線によるマスタユニットＭ及び他のスレーブユニットＳとの接続状態に応じた遅延時間後に、マスタユニットＭが送信したＩＤ付与命令をシリアル通信線により受信する。ＩＤ付与命令を受信したスレーブユニットＳは、１つのパルスを発生させてシリアル通信線により送信する。各スレーブユニットＳは、自己がパルスを送信した後に、シリアル通信線を伝送されるパルスの数をカウントすることにより、自己のＩＤを決定する。以下、詳細に述べる。
【００３４】
図６は、マスタユニットＭ及び各スレーブユニットＳから見た通信線上の通信レベルを示す概略図である。  
まず、マスタユニットＭのコアプロセッサ３１は、シリアルトランシーバ３３によりコネクタ３４を通じてＩＤ付与命令Ｐｍ０をシリアル通信線へ送信する。なお、ＩＤ付与命令の形式は、特に形式が限定されるものではない。マスタユニットＭからシリアル通信線へ送信されたＩＤ付与命令Ｐｍ０は、マスタユニットＭと各スレーブユニットＳとの物理的な距離などに応じた遅延時間後に、各スレーブユニットＳのシリアルトランシーバ４３により受信される。
【００３５】
次に、スレーブユニットＳ１（Ａ）に着目する。  
スレーブユニットＡは、マスタユニットＭから送信されたＩＤ付与命令を通信遅延Ｔｍａだけ遅れて受信する。通信遅延Ｔｍａは、シリアル通信線により接続されるマスタユニットＭとスレーブユニットＡとの物理的な距離に応じた時間である。つまり、スレーブユニットＡのシリアルトランシーバ４３は、マスタユニットＭがシリアル通信線に送信したＩＤ付与命令Ｐｍ０を、Ｔｍａ時間後に、ＩＤ付与命令Ｐａ０として観測する。
【００３６】
ＩＤ付与命令Ｐａ０を受信したスレーブユニットＡのコアプロセッサ４１は、当該ＩＤ付与命令Ｐａ０を受信してから処理時間（処理遅延）Ｔ０が経過した後、時間Ｔｎ分だけＬレベルの信号（パルス）Ｐａａをシリアルトランシーバ４３によりシリアル通信線へ送信する。ここで、本実施形態の説明においては、各スレーブユニットがＩＤ付与命令に応じて出力する時間Ｔｎ分の幅となるＬレベルの信号をＩＤ判別用のパルス（Ｐａａ、Ｐｂｂ、Ｐｃｃ、…、Ｐｎｎ）と称する。スレーブユニットＳ１のシリアルトランシーバ４３が送信するＩＤ判別用のパルスＰａａは、シリアル通信線を通じて、マスタユニットＭ及び各スレーブユニットＢ、Ｃ、…、Ｎへ伝送される。
【００３７】
たとえば、マスタユニットＭのシリアルトランシーバ３３は、スレーブユニットＡがパルスＰａａを送信してから通信遅延Ｔｍａだけ遅れて、スレーブユニットＡから発信されたＩＤ判別用のパルスＰａａをパルスＰｍａとして観測する。
【００３８】
次に、スレーブユニット（Ｂ）Ｓ２に着目する。  
スレーブユニットＢは、シリアル通信線において、スレーブユニットＡを経由してマスタユニットＭからのＩＤ付与命令Ｐｂ０を受信する。したがって、スレーブユニットＢは、マスタユニットＭとスレーブユニットＳ１間での通信遅延時間Ｔｍａと、スレーブユニットＡとスレーブユニットＢ間での通信遅延Ｔａｂとを加算した時間（マスタユニットＭからスレーブユニットＢまでの通信遅延時間Ｔｍｂ）分だけ遅れて、マスタユニットＭからのＩＤ付与命令Ｐｂ０を受信する。つまり、スレーブユニットＢは、マスタユニットＭがＩＤ付与命令Ｐｍ０を送信してから遅延時間Ｔｍｂ（Ｔｍｂ＝Ｔｍａ＋Ｔａｂ）後に、ＩＤ付与命令Ｐｂ０を受信する。
【００３９】
ＩＤ付与命令Ｐｂ０を受信したスレーブユニットＢのコアプロセッサ４１は、処理時間Ｔ０の処理を実行した後、ＩＤ判別用のパルスＰｂｂを発信する。つまり、ＩＤ付与命令Ｐｂ０を受信したスレーブユニットＢのコアプロセッサ４１は、ＩＤ付与命令Ｐｂ０を受信してから処理時間（処理遅延）Ｔ０が経過した後、時間Ｔｎ分の幅を持つＬレベルの信号としてパルスＰｂｂをシリアルトランシーバ４３によりシリアル通信線へ送信する。
【００４０】
ＩＤ付与命令を受信してからコアプロセッサ４１が実行する処理に要する処理時間が全スレーブユニットにおいて同じであれば、スレーブユニットＢは、パルスＰｂｂを発信するタイミングと同じタイミングで、スレーブユニットＡが送信したパルスＰａａを受信する。  
すなわち、スレーブユニットＢは、スレーブユニットＡよりも遅延時間Ｔａｂ分遅れて、ＩＤ付与命令を受信する。ここで、ＩＤ付与命令の長さはスレーブユニットＡでもスレーブユニットＢでも同一であり、各スレーブユニットにおける処理時間（処理遅延）Ｔ０も同一であるものとする。この場合、スレーブユニットＢは、スレーブユニットＡが送信したパルスＰａａをＴａｂ遅れて受信する。したがって、スレーブユニットＢが送信するＩＤ判別用のパルスＰｂｂは、スレーブユニットＡが送信したパルスＰａａと重なってシリアル通信線を伝送される。つまり、図６に示すパルスＰｂｂは、スレーブユニットＢが送信したパルスとスレーブユニットＡが送信したパルスとの両方を含んでいる。
【００４１】
また、スレーブユニットＡのシリアルトランシーバ４３は、スレーブユニットＢがパルスＰｂｂを送信してから遅延時間Ｔａｂだけ遅れて、スレーブユニットＢから発信されたＩＤ判別用のパルスＰｂｂをパルスＰａｂとして観測する。また、マスタユニットＭのシリアルトランシーバ３３は、スレーブユニットＢがパルスＰｂｂを送信してから通信遅延時間Ｔｍｂ（Ｔｍａ＋Ｔａｂ）だけ遅れて、スレーブユニットＢから発信されたＩＤ判別用のパルスＰｂｂをパルスＰｍｂとして観測する。
【００４２】
次に、スレーブユニットＣに着目する。  
スレーブユニットＣは、シリアル通信線において、スレーブユニットＡおよびスレーブユニットＢを経由してマスタユニットＭからのＩＤ付与命令Ｐｃ０を受信する。したがって、スレーブユニットＣは、マスタユニットＭとスレーブユニットＡ間での通信遅延時間Ｔｍａと、スレーブユニットＡとスレーブユニットＢ間での通信遅延Ｔａｂと、スレーブユニットＢとスレーブユニットＣ間での通信遅延時間Ｔｂｃとを加算した時間（マスタユニットＭからスレーブユニットＣまでの通信遅延時間Ｔｍｃ）分だけ遅れて、マスタユニットＭからのＩＤ付与命令Ｐｃ０を受信する。つまり、スレーブユニットＣは、マスタユニットＭがＩＤ付与命令Ｐｃ０を送信してから遅延時間Ｔｍｃ（Ｔｃｂ＝Ｔｍａ＋Ｔａｂ＋Ｔｂｃ）後に、ＩＤ付与命令Ｐｃ０を受信する。
【００４３】
ＩＤ付与命令Ｐｃ０を受信したスレーブユニットＢのコアプロセッサ４１は、処理時間Ｔ０の処理を実行した後、ＩＤ判別用のパルスＰｃｃを発信する。ＩＤ付与命令を受信してからコアプロセッサ４１が実行する処理に要する処理時間が全スレーブユニットにおいて同じであれば、スレーブユニットＣは、パルスＰｃｃを発信するタイミングと同じタイミングで、スレーブユニットＢが送信したパルスＰｂｂを受信する。したがって、スレーブユニットＣが送信するＩＤ判別用のパルスＰｃｃは、スレーブユニットＢが送信したパルスＰｂｂと重なってシリアル通信線を伝送される。また、スレーブユニットＢが送信するパルスＰｂｂはスレーブユニットＡが送信したパルスＰａａと重なる信号でもあるから、図６に示すパルスＰｃｃは、スレーブユニットＡが送信したパルスＰａａおよびスレーブユニットＢが送信したパルスＰｂｂと重なった信号である。
【００４４】
また、スレーブユニットＢのシリアルトランシーバ４３は、スレーブユニットＣがパルスＰｃｃを送信してから遅延時間Ｔｂｃだけ遅れて、スレーブユニットＣから発信されたＩＤ判別用のパルスＰｃｃをパルスＰｂｃとして観測する。また、スレーブユニットＡのシリアルトランシーバ４３は、スレーブユニットＣがパルスＰｃｃを送信してから遅延時間Ｔａｃ（Ｔａｂ＋Ｔｂｃ＝Ｔａｃ）だけ遅れて、スレーブユニットＢから発信されたＩＤ判別用のパルスＰｃｃをパルスＰａｃとして観測する。また、マスタユニットＭのシリアルトランシーバ３３は、スレーブユニットＣがパルスＰｃｃを送信してから通信遅延時間Ｔｍｃ（Ｔｍａ＋Ｔａｂ＋Ｔｂｃ）だけ遅れて、スレーブユニットＣから発信されたＩＤ判別用のパルスＰｃｃをパルスＰｍｃとして観測する。
【００４５】
次に、最後のスレーブユニットＮについて着目する。  
スレーブユニットＮは、Ｎ−１個のスレーブユニットを経由して、ＩＤ付与命令を受信する。マスタユニットＭからスレーブユニットＮまでの通信遅延時間Ｔｍｎ（Ｔｍａ＋Ｔａｂ＋Ｔｂｃ＋…＋Ｔ（ｎ−１）ｎ）とすれば、スレーブユニットＮは、マスタユニットＭがＩＤ付与命令Ｐｍ０をしてからＴｍｎ時間後に、ＩＤ付与命令Ｐｎ０を受信する。
【００４６】
ＩＤ付与命令Ｐｎ０を受信したスレーブユニットＮは、ＩＤ付与命令Ｐｎ０を受信してから処理時間（処理遅延）Ｔ０が経過したときに、ＩＤ判別用のパルスＰｎｎをシリアルトランシーバ３３によりシリアル通信線へ送信する。
【００４７】
上述したスレーブユニットＢあるいはＣと同様に、スレーブユニットＮが送信するパルスＰｎｎは、直前のスレーブユニットが送信したパルスと重なる。また、直前のスレーブユニットが送信するパルスもそれまでのスレーブユニットが送信するパルスと重なるものであるから、パルスＰｎｎは、全てのスレーブユニットが送信したパルスを含むものとなる。
【００４８】
また、スレーブユニットＮが発生させたパルスＰｎｎは、各ユニット間の通信遅延時間を経て各ユニットに到達する。例えば、パルスＰｎｎは、スレーブユニットＣではパルスＰｃｎとして観測され、スレーブユニットＢではパルスＰｂｎとして観測され、スレーブユニットＡではパルスＰａｎとして観測され、マスタユニットではパルスＰｍｎとして観測される。
【００４９】
図６に示す信号が得られれば、ネットワークシステムにおける各スレーブユニットは、ＩＤ付与命令に応じたＩＤ判別用のパルスを送信した後に、受信するＩＤ判別用のパルスの数によって、当該スレーブユニットよりも下位に接続されているユニットの数を判定できる。たとえば、図６に示す例において、スレーブユニットＡは、ＩＤ判別用のパルスＰａａを送信した後に、Ｎ−１個のＩＤ判別用のパルスを受信する。スレーブユニットＢは、ＩＤ判別用のパルスＰｂｂを送信した後に、Ｎ−２個のＩＤ判別用のパルスを受信する。スレーブユニットＣは、ＩＤ判別用のパルスＰｃｃを送信した後に、Ｎ−３個のＩＤ判別用のパルスを受信する。スレーブユニットＮは、ＩＤ判別用のパルスＰｎｎを送信した後に、ＩＤ判別用のパルスを受信しない。
【００５０】
これにより、スレーブユニットＡは、下位にＮ−１個のスレーブユニットが接続されていることを判断でき、スレーブユニットＢは、下位にＮ−２個のスレーブユニットが接続されていることを判断でき、スレーブユニットＣは、下位にＮ−３個のスレーブユニットが接続されていることを判断でき、スレーブユニットＮは、下位にスレーブユニットが接続されていないことを判断できる。
【００５１】
また、マスタユニットは、ＩＤ付与命令を送信した後に、受信するＩＤ判別用のパルスの数によって、スレーブユニットの数を判定できる。たとえば、スレーブユニットの数がＮ個であれば、マスタユニットは、ＩＤ付与命令を送信した後にＮ個のＤ判別用のパルスの数を受信する。これにより、マスタユニットは、接続されているスレーブユニットの数がＮ個であることを判断できる。
【００５２】
次に、マスタユニットＭにおける動作について説明する。  
マスタユニットＭのコアプロセッサ３１は、シリアルトランシーバ３３によりＩＤ付与命令をシリアル通信線に送信する。ＩＤ付与命令を送信した後、マスタユニットＭのコアプロセッサ３１は、一定時間（監視時間）、シリアルトランシーバ３３が受信するパルス（ＩＤ判別用のパルス）の数をカウントする。すなわち、図６に示す例において、マスタユニットＭのコアプロセッサ３１は、ＩＤ付与命令Ｐｍ０を送信した後、シリアルトランシーバ３３が受信するパルスＰｍａ、Ｐｍｂ、Ｐｍｃ、・・・、Ｐｍｎの数をカウントする。
【００５３】
全てのスレーブユニットは、マスタユニットＭからのＩＤ付与命令に応じて、ＩＤ判別用のパルスを送信する。このため、マスタユニットＭのシリアルトランシーバ３３が観測するパルスの数は、当該ネットワークシステムにおけるスレーブユニットの数と同じである。したがって、マスタユニットＭのコアプロセッサ３１は、ＩＤ付与命令送信後に、シリアルトランシーバ３３が受信するパルスの数をカウントすることで、接続されているスレーブユニットの数を知ることができる。
【００５４】
図６に示す例では、スレーブユニットがＮ個である場合を想定している。マスタユニットＭのシリアルトランシーバ３３は、Ｎ個のスレーブユニットからのＮ個のパルスを観測する。したがって、マスタユニットＭのコアプロセッサ３１は、Ｎ個のスレーブユニットが接続されていることを認識することができる。すなわち、マスタユニットＭのコアプロセッサ３１は、シリアルトランシーバ３３が観測するＩＤ付与命令に対する応答としてパルスの数に基づいて当該システムにおけるスレーブユニットの数を特定する。
【００５５】
また、マスタユニットＭのコアプロセッサ３１は、各スレーブユニットから各スレーブユニット自身が決定したＩＤを示す情報を取得する。さらに、コアプロセッサ３１は、ＩＤを示す情報とともに、各スレーブユニットの機器情報（スレーブユニットの用途、特性、接続機器などを示す情報）を取得する。たとえば、コアプロセッサ３１は、シリアルトランシーバ３３による各スレーブユニットとのシリアル通信により各スレーブユニットからＩＤ及び機器情報を受信する。
【００５６】
マスタユニットＭのコアプロセッサ３１は、各スレーブユニットから受信したＩＤと機器情報とをメモリ３２に保存する。メモリ３２には、各スレーブユニットのＩＤ及び機器情報を対応づけて保存するテーブルを設けるようにしても良い。各スレーブユニットのＩＤをメモリ２３に保存した後、マスタユニットＭのコアプロセッサ３１は、メモリ３２に保存したＩＤを参照して各スレーブユニットとの通信を行う。
【００５７】
次に、スレーブユニットＡにおける動作例について説明する。  
マスタユニットＭからのＩＤ付与命令Ｐａ０を受信すると、スレーブユニットＡのコアプロセッサ４１は、処理時間（処理遅延）Ｔ０の処理を実行した後、ＩＤ判別用のパルスＰａａをシリアルトランシーバ４３によりシリアル通信線へ送信する。
【００５８】
ＩＤ付与命令Ｐａ０に応じたパルスＰａａを送信した後、スレーブユニットＡのコアプロセッサ４１は、一定時間（監視時間）、シリアルトランシーバ４３が受信するパルス（ＩＤ判別用のパルス）の数をカウントする。図６に示す例において、スレーブユニットＡのコアプロセッサ４１は、パルスＰａａを送信した後、シリアルトランシーバ４３により受信するパルスＰａｂ、パルスＰａｃ、・・・、パルスＰａｎの数をカウントする。
【００５９】
スレーブユニットＡのシリアルトランシーバ４３で観測されるパルスは、スレーブユニットＡよりも下位に接続されているスレーブユニットが送信したパルスである。ここで、「下位」とは、当該スレーブユニットよりもマスタユニットから遠くに接続されていることを指す。また、「上位」とは、当該スレーブユニットよりもマスタユニットに近くに接続されていることを指す。
【００６０】
図６に示す例では、スレーブユニットＡよりも下位に接続されているスレーブユニットの数はＮ−１個である。このため、スレーブユニットＡのシリアルトランシーバ４３は、Ｎ−１個の各スレーブユニットから発信されたＮ−１個のＩＤ判別用のパルスを観測する。したがって、スレーブユニットＡのコアプロセッサ４１は、下位にＮ−１個のスレーブユニットが接続されていることを認識する。
【００６１】
スレーブユニットＡのコアプロセッサ４１は、スレーブユニットＡよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ４３により観測したパルス数に基づいて自己のＩＤを決定する。たとえば、スレーブユニットＡのコアプロセッサ４１は、受信したパルスの数（「Ｎ−１」）を自己のＩＤとしても良いし、パルスの数を元に演算した結果をＩＤとしても良い。
【００６２】
シリアルトランシーバ４３が観測したパルス数（下位に接続したスレーブユニットの数）に基づくＩＤを決定すると、コアプロセッサ４１は、決定したＩＤを自己のＩＤとしてメモリ４２に格納する。決定した自己のＩＤをメモリ４２に格納すると、スレーブユニットＡのコアプロセッサ４１は、決定した自己のＩＤと自己の機器情報（当該スレーブユニットの用途、特性、接続機器などを示す情報）をマスタユニットＭに送信する。マスタユニットＭにＩＤ及び機器情報を送信した後、コアプロセッサ４１は、当該ＩＤを用いてマスタユニットＭとの通信が可能となる。
【００６３】
次に、スレーブユニットＢの動作について説明する。  
マスタユニットＭからのＩＤ付与命令Ｐｂ０を受信すると、スレーブユニットＢのコアプロセッサ４１は、処理時間（処理遅延）Ｔ０の処理を実行した後、ＩＤ判別用のパルスＰｂｂをシリアルトランシーバ４３によりシリアル通信線へ送信する。
【００６４】
ＩＤ付与命令Ｐｂ０に応じたパルスＰｂｂを送信した後、スレーブユニットＢのコアプロセッサ４１は、一定時間（監視時間）、シリアルトランシーバ４３が受信するパルス（ＩＤ判別用のパルス）の数をカウントする。図６に示す例において、スレーブユニットＢのコアプロセッサ４１は、パルスＰｂｂを送信した後、シリアルトランシーバ４３により受信するパルスＰｂｃ、・・・、パルスＰｂｎの数をカウントする。
【００６５】
パルスＰｂｂは、パルスＰａａと重なる。このため、スレーブユニットＢのシリアルトランシーバ４３は、スレーブユニットＡが送信したＰａａを観測することができない。したがって、スレーブユニットＢのシリアルトランシーバ４３は、スレーブユニットＢよりも下位に接続されているスレーブユニットが発生したパルスを観測する。つまり、スレーブユニットＢのシリアルトランシーバ４３が観測するパルス数は、スレーブユニットＢよりも下位に接続されているスレーブユニットの数である。
【００６６】
図６に示す例では、スレーブユニットＢよりも下位に接続されているスレーブユニットの数はＮ−２個である。このため、スレーブユニットＢのシリアルトランシーバ４３は、Ｎ−２個のスレーブユニットから発信されたＮ−２個のパルスを観測する。したがって、スレーブユニットＢのコアプロセッサ４１は、下記のＮ−２個のスレーブユニットが接続されていることを認識する。
【００６７】
スレーブユニットＢのコアプロセッサ４１は、スレーブユニットＢよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ４３が観測したパルス数に基づいて自己のＩＤと決定する。たとえば、スレーブユニットＢのコアプロセッサ４１は、受信したパルスの数（「Ｎ−２」）を自己のＩＤとしても良いし、パルス数を元に演算した結果をＩＤとしても良い。
【００６８】
ＩＤを決定すると、コアプロセッサ４１は、決定したＩＤを自己のＩＤとして自己のメモリ４２に格納する。さらに、コアプロセッサ４１は、決定した自己のＩＤと自己の機器情報（当該スレーブユニットＢの用途、特性、接続機器などを示す情報）をマスタユニットＭに送信する。マスタユニットＭにＩＤ及び機器情報を送信した後、スレーブユニットＢのコアプロセッサ４１は、当該ＩＤを用いてマスタユニットとの通信が可能となる。
【００６９】
次に、スレーブユニットＣの動作について説明する。  
マスタユニットＭからのＩＤ付与命令Ｐｃ０を受信すると、スレーブユニットＣのコアプロセッサ４１は、処理時間（処理遅延）Ｔ０の処理を実行した後、ＩＤ判別用のパルスＰｃｃをシリアルトランシーバ４３によりシリアル通信線へ送信する。
【００７０】
ＩＤ付与命令Ｐｃ０に応じたパルスＰｃｃを送信した後、スレーブユニットＣのコアプロセッサ４１は、一定時間（監視時間）、シリアルトランシーバ４３が受信するパルス（ＩＤ判別用のパルス）の数をカウントする。図６に示す例において、スレーブユニットＣのコアプロセッサ４１は、パルスＰｃｃを送信した後、シリアルトランシーバ４３により受信するパルスＰｃｄ、・・・、パルスＰｃｎの数をカウントする。
【００７１】
パルスＰｃｃは、パルスＰｂｂと重なり、パルスＰｂｂは既にパルスＰａａと重なっている。このため、スレーブユニットＣのシリアルトランシーバ４３は、スレーブユニットＡが送信したパルスＰａａとスレーブユニットＢが送信したパルスＰｂｂを観測することができない。したがって、スレーブユニットＣのシリアルトランシーバ４３は、スレーブユニットＣよりも下位に接続されているスレーブユニットが発生したパルスを観測する。つまり、スレーブユニットＣのシリアルトランシーバ４３が観測するパルス数は、スレーブユニットＣよりも下位に接続されているスレーブユニットの数である。
【００７２】
図６に示す例では、スレーブユニットＣよりも下位に接続されているスレーブユニットの数はＮ−３個である。このため、スレーブユニットＣのシリアルトランシーバ４３は、Ｎ−３個のスレーブユニットから発信されたＮ−３個のパルスを観測する。したがって、スレーブユニットＣのコアプロセッサ４１は、下位にＮ−３個のスレーブユニットが接続されているを認識する。
【００７３】
スレーブユニットＣのコアプロセッサ４１は、スレーブユニットＣよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ４３が観測したパルス数に基づいて自己のＩＤを決定する。たとえば、スレーブユニットＣのコアプロセッサ４１は、受信したパルスの数（「Ｎ−３」）を自己のＩＤとしても良いし、パルス数を元に演算した結果をＩＤとしても良い。
【００７４】
ＩＤを決定すると、コアプロセッサ４１は、決定したＩＤを自己のＩＤとして自己のメモリ４２に格納する。さらに、コアプロセッサ４１は、決定した自己のＩＤと自己の機器情報（当該スレーブユニットＣの用途、特性、接続機器などを示す情報）をマスタユニットＭに送信する。マスタユニットＭにＩＤ及び機器情報を送信した後、スレーブユニットＣのコアプロセッサ４１は、当該ＩＤを用いてマスタユニットＭとの通信が可能となる。
【００７５】
以下の各スレーブユニットも、上述したような動作をする。  
すなわち、マスタユニットＭからのＩＤ付与命令を受信したスレーブユニットのコアプロセッサ４１は、処理時間（処理遅延）Ｔ０の処理を実行した後、ＩＤ判別用のパルスをシリアルトランシーバ４３によりシリアル通信線へ送信する。パルスを送信したスレーブユニットのコアプロセッサ４１は、一定時間（監視時間）、自己のシリアルトランシーバ４３が受信するパルスの数をカウントする。
【００７６】
スレーブユニットが送信するパルスは、当該スレーブユニットよりも上位に接続されているスレーブユニットが送信したパルスと重なる。そのため、各スレーブユニットは、当該スレーブユニットよりも上位に接続されているスレーブユニットが発生するパルスを観測することができない。したがって、各スレーブユニットのシリアルトランシーバ４３は、当該スレーブユニットよりも下位に接続されているスレーブユニットが発生したパルスを観測する。よって、各スレーブユニットのコアプロセッサ４１は、当該スレーブユニットのシリアルトランシーバ４３が観測するパルス数を当該スレーブユニットよりも下位に接続されているスレーブユニットの数として認識する。
【００７７】
スレーブユニットのコアプロセッサ４１は、スレーブユニットよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ４３が観測したパルス数に基づいて自己のＩＤを決定する。ＩＤを決定すると、コアプロセッサ４１は、決定したＩＤを自己のＩＤとして自己のメモリ４２に格納する。さらに、コアプロセッサ４１は、決定した自己のＩＤと自己の機器情報（当該スレーブユニットの用途、特性、接続機器などを示す情報）をマスタユニットＭに送信する。マスタユニットＭにＩＤ及び機器情報を送信した後、当該スレーブユニットのコアプロセッサ４１は、当該ＩＤを用いてマスタユニットＭとの通信が可能となる。
【００７８】
また、最後のスレーブユニットＮは、他のスレーブユニットからのパルスを観測することができない。したがって、スレーブユニットＮのコアプロセッサ４１は、「０」あるいは「０」を元に演算した結果を自己のＩＤとして決定し、自己のメモリに格納する。
【００７９】
自己のＩＤを自己のメモリに格納したスレーブユニットＮは、自己のＩＤと自己の機器情報とをマスタユニットＭに送信する。マスタユニットＭにＩＤ及び機器情報を送信した後、スレーブユニットＮのコアプロセッサ４１は、当該ＩＤを用いてマスタユニットＭとの通信が可能となる。
【００８０】
以上の処理によれば、最もマスタユニットに近いスレーブユニットＡは「Ｎ−１」、次にマスタユニットに近いスレーブユニットＢは「Ｎ−２」、・・・、最もマスタユニットから遠いスレーブユニットＮは「０」といった各スレーブユニットに固有な値を得ることができ、それぞれに固有なＩＤを各スレーブユニット自身が自動的に決定することができる。また、マスタユニットＭは、各スレーブユニットから各ユニットが決定したＩＤと機器情報とを取得することにより、各スレーブユニットとの通信が可能となる。
【００８１】
なお、各スレーブユニットは、自己のＩＤの決定方法として、カウントしたパルス数に任意の数を加算又は減算した値を、自己のＩＤとしてもよい。また、各スレーブユニットは、任意の数からカウントしたパルス数を減算した値を自己のＩＤとしてもよい。この場合、各スレーブユニットのＩＤは、マスタユニットＭに近づくほど若くなる。さらに、各スレーブユニットは、スレーブユニットの数からカウントしたパルス数を減算した値を自己のＩＤとしてもよい。とすると、各スレーブユニットのＩＤは、マスタユニットに近い順に「１」から割り振られる。この場合、マスタユニットは、スレーブユニットの数を各スレーブユニットに送信する必要がある。
【００８２】
次に、マスタユニット及び各スレーブユニットにおけるパルス（ＩＤ判別用のパルス）の監視時間について説明する。  
図７は、スレーブユニットＡがスレーブユニットＮから発信されたパルスをカウントできない監視時間の例を示す図である。  
スレーブユニットにおけるＩＤ判別用のパルスの監視時間が短い場合、他のスレーブユニットが送信するＩＤ判別用のパルスが届く前に、当該スレーブユニットは、パルスのカウントを終了してしまう可能性がある。
【００８３】
図７に示す監視時間では、スレーブユニットＡは、スレーブユニットＮが発信したパルスをカウントできない。図７に示すように、全スレーブユニットからのＩＤ判別用のパルスが受信できないような監視時間が設定されている場合、スレーブユニットは、当該スレーブユニットよりも下位に接続されているスレーブユニットの数を正しく認識することができない。したがって、スレーブユニットは、正しく自己のＩＤを決定することができない。
【００８４】
全スレーブユニットからのパルスを確認にカウントできるように、各スレーブユニットが他のスレーブユニットからのパルスを監視する監視時間は、マスタユニットＭ及び各スレーブユニット間の通信遅延時間に応じて決定する必要がある。たとえば、マスタユニットＭが物理的な通信距離が最も長くなる最後のスレーブユニットＮからのＩＤ判別用のパルスをカウントできる監視時間は、マスタユニットＭからのＩＤ付与命令が最後のスレーブユニットＮに到達するまでの通信遅延時間と、最後のスレーブユニットがＩＤ付与命令に応じて発信するＩＤ判別用のパルスがマスタユニットに到達するまでの通信遅延時間を合計した時間であれば良い。したがって、ＩＤ判別用のパルスの監視時間は、信号がマスタユニットから最後のスレーブユニットまで到達するまでの通信遅延時間の２倍以上とすればよい。
【００８５】
また、他の例として、ＩＤ判別用のパルスの監視時間は、ある程度長い所定時間（例えば、数秒）を予め設定しておくようにしても良い。この場合、ネットワークシステムは、予め設定した監視時間に応じて、マスタユニットと最後のスレーブユニットとの最大の通信距離を制限するようにしても良い。
【００８６】
また、ＩＤ判別用のパルスの監視時間は、各ユニットが確実に全ユニットからのＩＤ判別用のパルスをカウントできるトータルの時間でなくともよい。例えば、マスタユニット及び各スレーブユニットは、１つのＩＤ判別用のパルスを受信するごとに、一定の監視期間（例えば、１００ｍｓ）を新たに設定するようにしても良い。つまりマスタユニット及び各スレーブユニットは、１つのパルスを観測する度に、次のパルスを監視するための監視時間を設定していくようにしても良い。
【００８７】
次に、各スレーブユニットが送信するＩＤ判別用のパルスの幅について説明する。  
まず、ＩＤ判別用のパルス幅が狭すぎる場合の例について説明する。  
図８は、スレーブユニットが発信するＩＤ判別用のパルスが上位のスレーブユニットからのパルスと重ならない状態となる例を示す図である。、図８では、ＩＤ判別用のパルス幅が狭く、スレーブユニットＢが送信するＩＤ判別用のパルスが、当該スレーブユニットＢより上位に接続されたスレーブユニットＡが送信したＩＤ判別用のパルスと重なっていない状態を示している。
【００８８】
各スレーブユニットは、通信設定に係る構成が同一であることを想定しているため、理想的には、各スレーブユニットは、ＩＤ付与命令を受信した後に実行する処理の処理時間（処理遅延）Ｔ０が同一となることが想定している。しかしながら、実際には各スレーブユニットの構成を完全に同性能とするのは困難である。たとえば、各スレーブユニットに備えられたシリアルトランシーバは、個体差などのため処理時間が異なることが多く、現実には、各スレーブユニットの処理遅延時間は、理想的な処理遅延Ｔ０とは異なることが多い。
【００８９】
図８に示す例では、スレーブユニットＡがＩＤ付与命令を受信した後に実行する処理の処理時間（処理遅延）は、Ｔ０ではなく、Ｔ０＋Ｔｔａであり、スレーブユニットＢがＩＤ付与命令を受信した後に実行する処理の処理時間（処理遅延）は、Ｔ０ではなく、Ｔ０＋Ｔｔｂである。また、Ｔｔａは、Ｔｔｂとは異なる値であるものとし、Ｔｔａ＞Ｔｔｂである場合を想定するものとする。  
なお、図８に点線で示すパルスは、スレーブユニットＡが理想的な処理遅延Ｔ０で送信するパルスと、スレーブユニットＡから理想的な処理遅延Ｔ０で送信されるパルスをスレーブユニットＢがＴｍａ時間後に受信したパルスとを示すものである。
【００９０】
図８に示す例において、スレーブユニットＡのコアプロセッサ４１は、ＩＤ付与命令を受信してからスレーブユニットＡにおける処理時間（処理遅延）としてのＴ０＋Ｔｔａ時間後に、ＩＤ判別用のパルスＰａａをシリアルトランシーバ４３によりシリアル通信線へ送信する。これに対して、スレーブユニットＢのコアプロセッサ４１は、ＩＤ付与命令を受信してからスレーブユニットＢにおける処理時間（処理遅延）としてのＴ０＋Ｔｔｂ時間後に、ＩＤ判別用のパルスＰｂｂをシリアルトランシーバ４３によりシリアル通信線へ送信する。
【００９１】
図８に示すように、Ｔｔａ＞Ｔｔｂである場合、スレーブユニットＢのシリアルトランシーバ４３は、スレーブユニットＡからのＩＤ判別用のパルスＰａａが到達する前に、ＩＤ判別用のパルスＰｂｂを送信する。また、Ｔｍａ−Ｔｔｂ＞Ｔｎでもあるので、各ＩＤ判別用のパルスの幅Ｔｎは、スレーブユニットＡとスレーブユニットＢとで生じる処理遅延の差を埋めることができない。この結果として、図８に示す例においては、スレーブユニットＢがパルスＰｂｂを送信するタイミングは、スレーブユニットＡから送信されたパルスＰａａを受信するタイミングとは重ならない。
【００９２】
図８に示すように、当該スレーブユニットが送信するＩＤ判別用のパルスが上位のスレーブユニットから受信するＩＤ判別用のパルスと重ならない場合、当該スレーブユニットは、下位のスレーブユニットからのＩＤ判別用のパルスだけでなく、上位のスレーブユニットからのＩＤ判別用のパルスも観測される。このような場合、スレーブユニットが観測するＩＤ判別用のパルス数は、当該スレーブユニットより下位のスレーブユニットの数と一致しなくなる。このような場合、各スレーブユニットが正しく自己のＩＤを決定することができなくなる。
【００９３】
発信するパルスが上位のスレーブユニットから受信するパルスと不一致となることを防止するため、本ネットワークシステムでは、各スレーブユニットが発信するＩＤ判別用のパルスの幅は、各スレーブユニットにおける処理遅延に差異（誤差）が生じても上位からのパルスと重なるような幅でなければならない。言い換えると、各スレーブユニットが発信するＩＤ判別用のパルスの幅は、各スレーブユニット間で生じる処理遅延の差を埋めるような幅に設定すればよい。たとえば、各スレーブユニットが発信するパルスの幅は、各スレーブユニットにおける処理遅延の差のうち最も長いくなる時間差より長くなるような幅に設定する。
【００９４】
次に、パルス幅が広すぎる場合の例について説明する。  
図９は、スレーブユニットが発信するＩＤ判別用のパルスが下位のスレーブユニットからのパルスと重なった状態となる例を示す図である。図９では、ＩＤ判別用のパルス幅が広く、スレーブユニットＡが送信するＩＤ判別用のパルスが、当該スレーブユニットＡより下位に接続されたスレーブユニットＢが送信するＩＤ判別用のパルスと重なってしまう状態を示している。
【００９５】
まず、スレーブユニットＡのコアプロセッサ４１は、ＩＤ判別用のパルスＰａａをシリアルトランシーバ４３によりシリアル通信線へ送信する。すると、スレーブユニットＢのシリアルトランシーバ４３は、スレーブユニットＡがパルスＰａａを送信してから、スレーブユニットＡとスレーブユニットＢとの通信遅延時間Ｔａｂ分だけ遅れて、パルスＰａａを受信する。スレーブユニットＡ及びスレーブユニットＢにおける処理時間Ｔ０が同じであれば、スレーブユニットＢは、スレーブユニットＡからパルスＰａａを受信するのと同じタイミングでＩＤ判別用のパルスＰｂｂを送信する。このスレーブユニットＢから送信されたパルスＰｂｂは、スレーブユニットＢがパルスＰｂｂを送信してから、スレーブユニットＡとスレーブユニットＢとの通信遅延時間Ｔａｂ分だけ遅れて、スレーブユニットＡに到達する。
【００９６】
図９に示す例では、Ｔｎ＞Ｔａｂ×２であるので、スレーブユニットＢが送信してからスレーブユニットＡに到達するパルスＰｂｂは、スレーブユニットＡが発信中のパルスＰａａと重なってしまう。図９では、スレーブユニットＡがパルスＰｂｂの受信を開始するタイミングを点線で示し、スレーブユニットＡがパルスＰａａの送信を終了するタイミングを一点鎖線で示している。
【００９７】
図９に示すような場合、各スレーブユニットで観測されるパルス数は、当該スレーブユニットより下位のスレーブユニットの数とならない。よって、各スレーブユニットは、正しく自己のＩＤを決定できない。
【００９８】
図９に示すように、あるスレーブユニットが送信するＩＤ判別用のパルスが下位のスレーブユニットから受信するＩＤ判別用のパルスと重なってしまう場合、当該スレーブユニットは、下位のスレーブユニットからのＩＤ判別用のパルスを観測できない。このような場合、スレーブユニットが観測するＩＤ判別用のパルス数は、当該スレーブユニットより下位のスレーブユニットの数と一致しなくなり、実際に下位に接続されたスレーブユニットの数よりも少ないカウント数となる。このような場合も、各スレーブユニットが正しく自己のＩＤを決定することができなくなる。
【００９９】
発信するパルスが下位のスレーブユニットから受信するパルスと重なってしまうことを防止するため、本ネットワークシステムでは、各スレーブユニットが発信するＩＤ判別用のパルスの幅は、各スレーブユニット間での通信遅延を考慮して決定される。即ち、ＩＤ判別用のパルスの幅は、隣接する各スレーブユニット間の通信遅延の２倍より短くなければならない。したがって、ＩＤ判別用のパルス幅は、隣接する各スレーブユニット間の通信遅延の中で最も短い時間の２倍より短い値に設定する。
【０１００】
上述した点を考慮すれば、各スレーブユニットがＩＤ付与命令に応じて出力するＩＤ判別用のパルスの幅は、各スレーブユニットにおける処理時間（処理遅延）の差のうち最も長い時間差より長く、かつ、隣接する各スレーブユニット間の通信遅延の中で最も短い時間の２倍より短い値に設定される。ＩＤ判別用のパルスの幅は、各スレーブユニット内の実処理時間、および、各スレーブユニット間の接続状態などに応じて適宜設定される。例えば、ＩＤ判別用のパルス幅は、各スレーブユニットにおける処理時間（処理遅延）Ｔ０の半分程度に設定される。
【０１０１】
上記実施形態は、マスタユニットと複数のスレーブユニットとが半二重シリアル通信などによってデイジーチェーン接続されるネットワークシステムにおいて、各スレーブユニットが、マスタユニットからのＩＤ付与命令に応じてＩＤ判別用のパルスを発信し、ＩＤ判別用のパルスを発信した後に自己のスレーブユニットよりも下位に接続されたスレーブユニットが発信されたＩＤ判別用のパルスの数をカウントし、カウントしたパルス数に基づいて自己のＩＤを決定する。本実施形態によれば、各スレーブユニットのＩＤを外部からの入力なしに、各スレーブユニット自身が一意に決定することができる。この結果として、本実施形態のネットワークシステムによれば、高いシステム拡張性を実現でき、かつ、人的な作業によるＩＤ設定ミスなどによる通信不良を防止することができる。
【０１０２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０３】
Ｍ…マスタユニット、Ａ（Ｓ１）、Ｂ（Ｓ２）、Ｃ（Ｓ３）、Ｎ（Ｓｎ）…スレーブユニット、３１…コアプロセッサ、３２…メモリ、３３…シリアルトランシーバ、３４…コネクタ、４１…コアプロセッサ、４２…メモリ、４３…シリアルトランシーバ、４４…コネクタ、４５…コントローラ。
【図１】
2013192173.tif 000003
【図２】
2013192173.tif 000004
【図３】
2013192173.tif 000005
【図４】
2013192173.tif 000006
【図５】
2013192173.tif 000007
【図６】
2013192173.tif 000008
【図７】
2013192173.tif 000009
【図８】
2013192173.tif 000010
【図９】
2013192173.tif 000011