(57)【要約】      （修正有）【課題】稼働中であっても装置構成を認識できるネットワークシステム及びスレーブユニット認識方法を提供する。【解決手段】ネットワークシステムは、マスタユニットと複数のスレーブユニットとをシリアル通信線によりデイジーチェーン接続し、スレーブユニットは、マスタユニットへ向けてシリアル通信線を伝送させるデータに対して、スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込み、シリアル通信線によりマスタユニットへ向けて送信し、マスタユニットは、シリアル通信線により伝送されてきたデータを受信し、受信したデータに含まれるスレーブユニットの接続状態を示すスレーブ接続確認用ビットに基づいて、スレーブユニットがネットワークシステムに接続されているか否かを判定する。【選択図】図１
2014060575.tif 000002
【特許請求の範囲】
【請求項１】
上位のマスタユニットと複数のスレーブユニットとをシリアル通信線によりデイジーチェーン接続したネットワークシステムにおいて、
前記スレーブユニットは、
前記マスタユニットへ向けて前記シリアル通信線を伝送させるデータに対して、当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込む書込手段と、
前記書込手段により当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込んだデータを前記シリアル通信線により前記マスタユニットへ向けて送信する送信手段と、を有し、
前記マスタユニットは、
前記シリアル通信線により伝送されてきたデータを受信する受信手段と、
前記受信手段により受信したデータに含まれるスレーブユニットの接続状態を示すスレーブ接続確認用ビットに基づいて、前記スレーブユニットが前記ネットワークシステムに接続されているか否かを判定する判定手段と、を有する、
ネットワークシステム。
【請求項２】
前記スレーブユニットの前記書込手段は、前記マスタユニットからのコマンドに応じた処理結果を含むレスポスデータに前記スレーブ接続確認用ビットを書き込み、
前記マスタユニットの前記判定手段は、前記受信手段により受信した前記スレーブユニットからのレスポンスデータに含まれる前記スレーブ接続確認ビットにより前記スレーブユニットの接続状態を判定する、
前記請求項１に記載のネットワークシステム。
【請求項３】
前記スレーブユニットは、
さらに、自己が前記ネットワークシステムの最下位に接続されているかを判断する判断手段を有し、
前記書込み手段は、前記判断手段により自己が最下位に接続されていると判断した場合には、当該スレーブユニットの前記接続確認用ビットをセットしたレスポスデータを作成し、前記判断手段により自己が最下位に接続されていると判断しなかった場合には、下位のスレーブユニットから受信するレスポンスデータに当該スレーブユニットの処理結果と接続確認用ビットとを書込む、
前記請求項２に記載のネットワークシステム。
【請求項４】
前記判断手段は、自己よりも下位に接続され得るスレーブユニットからのデータを受信されるべき時間が経過しても下位のスレーブユニットからデータが受信されない場合に、自己が前記ネットワークシステムの最下位に接続されているスレーブユニットであると判断する、
前記請求項３に記載のネットワークシステム。
【請求項５】
前記判断手段は、自己よりも下位に前記シリアル通信線が接続されていないことを検出し、自己よりも下位に前記シリアル通信線が接続されていないことを検出した場合に、自己が前記ネットワークシステムの最下位に接続されているスレーブユニットであると判断する、
前記請求項３に記載のネットワークシステム。
【請求項６】
上位のマスタユニットと複数のスレーブユニットとをシリアル通信線によりデイジーチェーン接続したネットワークシステムにおけるスレーブユニット認識方法において、
前記スレーブユニットは、
前記マスタユニットへ向けて前記シリアル通信線を伝送させるデータに対して、当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込み、
当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込んだデータを前記シリアル通信線により前記マスタユニットへ向けて送信し、
前記マスタユニットは、
前記シリアル通信線により伝送されてきたデータを受信し、
前記受信したデータに含まれるスレーブユニットの接続状態を示すスレーブ接続確認用ビットに基づいて、前記スレーブユニットが前記ネットワークシステムに接続されているか否かを判定する、
ネットワークシステムにおけるスレーブユニット認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークシステム及びネットワークシステムにおけるスレーブユニット認識方法に関する。
【背景技術】
【０００２】
マスタユニットと複数のスレーブユニットとを有するネットワークシステムでは、マスタユニットが、ネットワークシステム内の全てのスレーブユニットを認識する必要がある。従来、マスタユニットは、起動時にネットワークシステム内のスレーブユニットを認識する。しかしながら、従来のネットワークシステムでは、マスタユニットは、稼働中に追加されたスレーブユニットを認識できないという課題がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１４５３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の課題を解決するために、装置構成を効率良く認識できるネットワークシステム及びネットワークシステムにおけるスレーブユニット認識方法を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、ネットワークシステムは、マスタユニットと複数のスレーブユニットとをシリアル通信線によりデイジーチェーン接続する。前記スレーブユニットは、書込手段と、送信手段とを有し、前記マスタユニットは、受信手段と、判定手段とを有する。書込手段は、マスタユニットへ向けてシリアル通信線を伝送させるデータに対して、当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込む。送信手段は、書込手段により当該スレーブユニットが接続された状態であることを示す値としたスレーブ接続確認用ビットを書き込んだデータをシリアル通信線によりマスタユニットへ向けて送信する。受信手段は、シリアル通信線により伝送されてきたデータを受信する。判定手段は、受信手段により受信したデータに含まれるスレーブユニットの接続状態を示すスレーブ接続確認用ビットに基づいて、スレーブユニットがネットワークシステムに接続されているか否かを判定する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態に係るネットワークシステムの構成例を示すブロック図である。
【図２】本実施形態に係るマスタユニットのメモリ内にあるスレーブ接続認識用データテーブルの例を示す図である。
【図３】本実施形態に係るネットワークシステムにおいて利用される通信フォーマットの例を示す図である。
【図４】本実施形態に係るスレーブ接続確認用ビットの構成例を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態について、図面を参照して説明する。  
図１は、本実施形態に係るネットワークシステムの構成例を示すブロック図である。また、図１は、マスタユニットＭの構成例および各スレーブユニットの構成例を示すブロック図を含むものである。  
図１に示すように、本実施形態に係るネットワークシステムは、マスタユニットＭと複数のスレーブユニットＳ（Ｓ１、Ｓ２、…、Ｓｎ）とを有する。マスタユニットＭと複数のスレーブユニットＳとは、それぞれが独立したユニット（装置）を構成している。マスタユニットＭは、各スレーブユニットＳに制御命令を出力したり、各スレーブユニットＳからの情報を取得したりするものである。各スレーブユニットＳは、マスタユニットＭからの動作命令に基づいてアクチュエータなどの駆動機構を動作させたり、センサなどの入力機器からの情報を取得してマスタユニットＭへ出力したりするユニットである。
【０００８】
たとえば、本ネットワークシステムにおいて、マスタユニットＭと各スレーブユニットＳとは、シリアル通信線によってデイジーチェーン接続される。シリアル通信線によりデイジーチェーンされたマスタユニットＭと各スレーブユニットＳとは、全二重通信を行う。本ネットワークシステムでは、シリアル通信線を用いた全二重通信を行うため、各スレーブユニットＳには、通信設定として固有のスレーブユニットＩＤが付与される。各スレーブユニットＳは、スレーブユニットＩＤにより識別され、マスタユニットＭあるいは他のスレーブユニットＳとのデータ通信が可能となる。各スレーブユニットＳの固有のスレーブユニットＩＤは、各スレーブユニットＳに事前に設定されている。たとえば、各スレーブユニットＳは、人により操作されるスイッチなどで固有のスレーブユニットＩＤが設定される。なお、各スレーブユニットＳの固有のＩＤの設定方法は、特定の方法に限定されるものではない。
【０００９】
また、本ネットワークシステムでは、マスタユニットＭから各スレーブユニットＳへ制御用の信号を出力するための図示しない同期通信線を配線するようにしても良い。同期通信線を配線する構成とした場合、マスタユニットＭは、同期通信線を介して制御用の基準信号を各スレーブユニットＳへ一斉に送信し、各スレーブユニットＳは、マスタユニットＭからの基準信号をほぼ同時に受信する。このような構成においては、各スレーブユニットＳは、マスタユニットＭから送信される基準信号に従ってデータ通信のタイミングを制御するようにしても良い。たとえば、マスタユニットＭは、各スレーブユニットＳに対するコマンドデータを送信した後、最後に接続されたスレーブユニットがマスタユニットＭへのレスポンスデータを送信するタイミングを指定する基準信号を各スレーブユニットＳへ出力する。マスタユニットＭは、シリアル通信線上に送信したコマンドデータが最後に接続し得るスレーブユニットＳＮに受信されるまでに要する時間（マスタユニットＭ−スレーブユニットＳＮ間の遅延時間）に基づいて、基準信号を各スレーブユニットへ送出するタイミングを設定する。
【００１０】
なお、本実施形態においては、各ユニット間のシリアル通信線による通信の遅延時間は所定の値であるものとし、かつ、マスタユニットＭ−スレーブユニットＳＮ間における遅延時間は各スレーブユニットの接続状態によらず所定の値であるものとする。また、シリアル通信線による通信では、各ユニットは、後述する通信フォーマットに従った送受信データに含まれるスタートビット（スタートマーク）により同期をとっている。ただし、同期信号線が配線される構成では、マスタユニットＭが制御用の基準信号を送出し、各スレーブユニットが受信する制御用の基準信号で同期をとるようにしても良い。この場合の制御用の基準信号としては、同期通信線により伝送されるパルス信号などが想定されるが、特定の構成に限定されるものではない。
【００１１】
次に、マスタユニットＭの構成について説明する。  
図１に示す構成例によれば、マスタユニットＭは、プロセッサ（デバイス）３１、メモリ３２、シリアルコントローラ３３、および、コネクタ３４などを備える。プロセッサ３１は、マスタユニット内部の通信バスなどを介して、メモリ３２及びシリアルコントローラ３３に電気的に接続される。また、コネクタ３４は、シリアルコントローラ３３に接続される。
【００１２】
プロセッサ３１は、マスタユニットＭ全体の動作を制御する制御部である。プロセッサ３１は、ＣＰＵなどである。また、プロセッサ３１は、内部メモリおよび各種のインターフェイスなどを備えても良い。プロセッサ３１は、あらかじめ決められたプログラムを実行することにより種々の処理を実現する。たとえば、プロセッサ３１は、インターフェイスを通じて入力されるデータなどを基にマスタユニットＭ全体を制御する。また、プロセッサ３１は、オペレーティングシステムのプログラムを実行することにより、マスタユニットＭの基本的な動作制御を行う。また、プロセッサ３１は、アプリケーションプログラムを実行することにより、マスタユニットＭの運用形態に応じた種々の動作制御を行う。なお、プロセッサ３１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、プロセッサ３１は、ハードウエア回路により実行される機能を制御する。
【００１３】
メモリ３２は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ３２は、ＲＯＭなどの書き換え不可な不揮発性メモリ、ＲＡＭなどの揮発性のワーキングメモリ、および、ハードディスクドライブ又は半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ３２における不揮発性メモリは、プロセッサ３１が実行するプログラムあるいは制御データなどを格納する。また、メモリ３２におけるＲＡＭなどのワーキングメモリは、各スレーブユニットＳへ送信するデータを記憶したり、各スレーブユニットＳから受信したデータあるいはプロセッサ３１の処理結果などのデータを記憶したりする。
【００１４】
また、メモリ３２は、各スレーブユニットＳが接続されているか否かを示す情報を記録する記憶領域３２ａを有する。各スレーブユニットＳがネットワークシステムに接続されているか否かを示す情報は、たとえば、スレーブ接続確認用データテーブルである。
【００１５】
図２は、記録領域３２ａに格納されるスレーブ接続確認用データテーブルの例を示す。本実施形態において、スレーブユニットの最大数はＮ個であるものとし、スレーブユニットのＩＤの最大値はＮであるものとする。図２に示すように、スレーブ接続確認用データテーブルは、各スレーブユニットＩＤと、各スレーブユニットの接続状態を示す接続確認フラグとを対応付けて格納する。
【００１６】
接続確認フラグは、対応するスレーブユニットＩＤのスレーブユニットＳがネットワークシステムに接続されている状態であるか否かを示す。図２に示すスレーブ接続確認用テーブルにおいて、接続確認フラグが「１」である場合には、当該接続確認フラグに対応するスレーブユニットＩＤを持つスレーブユニットＳがネットワークシステムに接続されている状態であることを示し、接続確認フラグが「０」である場合には、当該接続確認フラグに対応するスレーブユニットＩＤを持つスレーブユニットＳがネットワークに接続されていない状態であることを示す。たとえば、スレーブユニットＩＤが「２」で、対応する接続確認フラグが「１」である場合、スレーブ接続確認用データテーブルは、スレーブユニットＩＤが「２」であるスレーブユニットＳがネットワークに接続されている状態であることを示している。
【００１７】
シリアルコントローラ３３は、各スレーブユニットＳとのシリアル通信（全二重通信）を行う通信部である。シリアルコントローラ３３は、シリアル通信線を通じて、各スレーブユニットＳのシリアルコントローラと接続されている。シリアルコントローラ３３は、シリアル通信線を介して各スレーブユニットＳから供給されるデータ（レスポンスデータ）を最初（最もマスタユニットＭ側）に接続されているスレーブユニット（例えば、スレーブユニットＳ１）から受信する。また、シリアルコントローラ３３は、シリアル通信線を介して各スレーブユニットＳへ供給すべきデータ（コマンドデータ）を最初に接続されているスレーブユニット（例えば、スレーブユニットＳ１）へ送信する。
【００１８】
コネクタ３４は、シリアル通信線を接続するデータ入出力用のコネクタである。コネクタ３４は、シリアルコントローラ３３に接続されている。マスタユニットＭから各スレーブユニットＳへ送信されるデータは、シリアルコントローラ３３によりコネクタ３４を介してシリアル通信線へ出力される。また、各スレーブユニットＳから受信されるデータは、コネクタ３４を介してシリアルコントローラ３３へ供給される。
【００１９】
次に、スレーブユニットＳ（Ｓ１、Ｓ２、…、ＳＮ）の構成について説明する。  
図１に示す構成例によれば、各スレーブユニットＳは、プロセッサ（デバイス）４１、メモリ４２、シリアルコントローラ４３、ＩＮコネクタ４４ａ、ＯＵＴコネクタ４４ｂ、およびコントローラ４５を有する。また、プロセッサ４１は、スレーブユニットＳ内のバスなどを介して、メモリ４２、シリアルコントローラ４３、及びコントローラ４５などと電気的に接続される。シリアルコントローラ４３は、スレーブユニットＳ内においてＩＮコネクタ４４ａ及びＯＵＴコネクタ４４ｂに接続される。また、各スレーブユニットＳ（Ｓ１、Ｓ２、…、ＳＮ）においては、プロセッサ４１が、センサ５１（５１Ａ、５１Ｂ、・・・、５１Ｎ−１、５１Ｎ）に接続され、コントローラ４５が、アクチュエータ６１（６１Ａ、６１Ｂ、・・・、６１Ｎ−１、６１Ｎ）に接続される。
【００２０】
プロセッサ４１は、スレーブユニットＳ全体の制御する制御部である。プロセッサ４１は、メモリ４２などに記録されている制御プログラムを実行し、各部位からのデータに基づいて種々の処理を行う。例えば、プロセッサ４１は、プログラムを実行することにより、スレーブユニットＳの基本的な動作制御、および、スレーブユニットＳの運用形態に応じた種々の動作制御を行う。なお、プロセッサ４１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、プロセッサ４１は、ハードウエア回路により実行される機能を制御する。
【００２１】
メモリ４２は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ４２は、ＲＯＭなどの書き換え不可な不揮発性メモリ、ＲＡＭなどの揮発性のワーキングメモリ、および、ハードディスクドライブ又は半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ４２における不揮発性メモリは、プロセッサ４１が実行するプログラムあるいは制御データなどを格納する。メモリ４２におけるＲＡＭなどのワーキングメモリは、マスタユニットＭへ送信するデータ、マスタユニットＭから受信したデータ及びプロセッサ４１の処理結果などを格納する。また、メモリ４２における不揮発性メモリは、スレーブユニットＳの用途、種別あるいは特徴などを示す機器情報を格納する。例えば、メモリ４２の不揮発性メモリは、スレーブユニットＳに接続されているセンサの種類、および、アクチュエータの種類などの特徴データを機器情報の一部として格納する。
【００２２】
シリアルコントローラ４３は、マスタユニットＭ及び他のスレーブユニットとシリアル通信（全二重通信）を行う通信部である。シリアルコントローラ４３は、シリアル通信線を通じて、マスタユニットＭ又は他のスレーブユニットＳのシリアルコントローラ４３と接続される。プロセッサ４１は、シリアルコントローラ４３を通じてマスタユニットＭ及び各スレーブユニットＳからデータを受信することができる。また、プロセッサ４１は、シリアルコントローラ４３を通じてマスタユニットＭ及び各スレーブユニットＳにデータを送信することもできる。
【００２３】
ＩＮコネクタ４４ａ及びＯＵＴコネクタ４４ｂは、シリアル通信線の入出力コネクタである。ＩＮコネクタ４４ａ及びＯＵＴコネクタ４４ｂは、シリアルコントローラ４３に接続されている。ＩＮコネクタ４４ａは、マスタユニットＭのコネクタ３４、又は、上位（前段）のスレーブユニット（自己よりもマスタユニットＭに近い側で隣接するスレーブユニット）ＳのＯＵＴコネクタ４４ｂに接続される。また、ＯＵＴコネクタ４４ｂは、下位（後段）のスレーブユニット（自己よりもマスタユニットＭに遠い側で隣接するスレーブユニット）ＳのＩＮコネクタ４４ａに接続される。
【００２４】
ＩＮコネクタ４４ａ及びＯＵＴコネクタ４４ｂは、シリアルコントローラ４３からのデータをシリアル通信線へ送出することにより、マスタユニットＭ及び後段のスレーブユニットＳへデータを送信する。また、ＩＮコネクタ４４ａ及びＯＵＴコネクタ４４ｂは、シリアル通信線からデータを取り込むことにより、マスタユニットＭ及び後段のスレーブユニットＳから送信されたデータを受信してシリアルコントローラ４３へ供給する。
【００２５】
センサ５１は、スレーブユニットＳの外側（或いはユニット内部に設けても良い）に設けられ、スレーブユニットＳ内のプロセッサ４１に接続されている。センサ５１は、マスタユニットＭに送信するデータ又はプロセッサ４１での処理に使用されるデータなどを検知するセンサである。センサ５１は、情報を取得する入力機器の一例である。センサ５１の種類などは、特定の用途に限定されるものではない。例えば、センサ５１としては、温度センサ、物体検知センサなどが想定される。
【００２６】
コントローラ４５は、スレーブユニットＳの外側（或いはユニット内部）に設けられたアクチュエータ６１に接続されている。コントローラ４５は、アクチュエータ６１を制御するものであり、プロセッサ４１からの指示に基づいてアクチュエータ６１を動作させるための駆動信号を出力する。
【００２７】
アクチュエータ６１は、プロセッサ４１からの命令に基づくコントローラ４５からの駆動信号に応じて動作する駆動機構である。アクチュエータ６１は、スレーブユニットＳが駆動制御の対象とする駆動機構の例であり、用途に応じて構成が異なる。ただし、アクチュエータの種類などは、特定の用途に限定されるものではない。例えば、アクチュエータ６１としては、ゲートを開閉するゲート開閉機構などが想定される。アクチュエータ６１がゲートを開閉させる開閉機構である場合、コントローラ４５は、ゲートを開閉動作させるためのモータ駆動回路あるいはインバータモータなどにより構成されるアクチュエータ６１を駆動させるための駆動信号を出力する。
【００２８】
なお、図１に示す構成例では、各スレーブユニットＳおよび各スレーブユニットＳに接続する機器の構成は、同一の構成として図示している。ただし、本実施形態に係るネットワークシステムに接続される各スレーブユニットＳは、同一の構成でなくともよい。例えば、あるスレーブユニットは、センサのみを接続し、別のスレーブユニットは、アクチュエータのみを接続し、さらに別のスレーブユニットは、センサもアクチュエータも接続されていないというような構成であっても良い。言い換えれば、各スレーブユニットＳは、プロセッサ４１、メモリ４２、シリアルコントローラ４３およびコネクタ４４などの通信に係る構成を有するものであれば良く、これら以外の構成は各スレーブユニットＳの様々な用途（例えば、制御対象とするモジュールの用途）に応じた構成とすることが可能である。
【００２９】
次に、本実施形態に係るネットワークシステムにおけるシリアル通信線を用いたデータ伝送について概略的に説明する。
【００３０】
マスタユニットＭが各スレーブユニットＳへデータを送信する場合、或いは、各スレーブユニットＳがマスタユニットＭ又は他のスレーブユニットＳへデータを送信する場合、各ユニットは、所定の通信フォーマットに従ったデータを生成し、シリアル通信線へ送出する。
【００３１】
マスタユニットＭが各スレーブユニットＳへデータを送信する場合、マスタユニットＭのプロセッサ３１は、通信フォーマットに従ったデータを生成し、生成したデータをシリアルコントローラ３３及びコネクタ３５を用いてシリアル通信線へ送信する。マスタユニットＭのコネクタ３５から送出されたデータは、シリアル通信線を介して、最初に接続されているスレーブユニット（マスタユニットの次に接続されているスレーブユニット、例えば、スレーブユニットＳ１）へ送信される。
【００３２】
ここで、少なくともスレーブユニットＳ１〜Ｓ３がネットワークシステムに接続されている状態であるとすれば、マスタユニットＭのコネクタ３５から送出されたデータは、スレーブユニットＳ１へ送信される。スレーブユニットＳ１は、マスタユニットＭからのデータをＩＮコネクタ４４ａ及びシリアルコントローラ４３により受信する。スレーブユニットＳ１のプロセッサ４１は、マスタユニットＭから受信したデータを必要に応じて更新し、シリアルコントローラ４３及びＯＵＴコネクタ４４ｂを用いてシリアル通信線へ送出する。スレーブユニットＳ１のＯＵＴコネクタ４４ｂから送出されたデータは、シリアル通信線を介して、スレーブユニットＳ１の次に接続されているスレーブユニットＳ２へ送信される。
【００３３】
スレーブユニットＳ２は、スレーブユニットＳ１からのデータをＩＮコネクタ４４ａ及びシリアルコントローラ４３により受信する。スレーブユニットＳ２のプロセッサ４１は、受信したデータを必要に応じて更新し、当該データをシリアルコントローラ４３及びＯＵＴコネクタ４４ｂを用いてシリアル通信線へ送出する。スレーブユニットＳ２のＯＵＴコネクタ４４ｂから送出されたデータは、シリアル通信線を介して、スレーブユニットＳ２の次に接続されているスレーブユニットＳ３へ送信される。
【００３４】
以上のようなスレーブユニットにおける処理は、当該データが最後に接続されているスレーブユニット（例えば、スレーブユニットＳＮ）まで到達するまで各スレーブユニットで実行される。以上のような各スレーブユニットでの処理によって、マスタユニットＭは、全てのスレーブユニットＳへデータを送信することができる。
【００３５】
また、最後に接続されているスレーブユニット（例えば、スレーブユニットＳＮとする）がマスタユニットＭへデータを送信する場合、当該スレーブユニットＳＮは、通信フォーマットに従ったデータを生成し、生成したデータをシリアルコントローラ３３及びＩＮコネクタ４４ａによりシリアル通信線へ送出する。ここで、スレーブユニットＳＮ、ＳＮ−１、ＳＮ−２が接続されている状態であるとすると、スレーブユニットＳＮのＯＵＴコネクタ４４ｂから送出されたデータは、シリアル通信線を介して、スレーブユニットＳＮの直前に接続されているスレーブユニットＳＮ−１へ送信される。
【００３６】
上位のスレーブユニットＳＮ−１は、ＯＵＴコネクタ４４ｂ及びシリアルコントローラ４３によりスレーブユニットＳＮからのデータを受信する。スレーブユニットＳＮ−１は、受信したデータを必要に応じて更新し、当該データをシリアルコントローラ４３及びＩＮコネクタ４４ａによりシリアル通信線へ送出する。スレーブユニットＳＮ−１のＯＵＴコネクタ４４ｂから送出されたデータは、シリアル通信線を介して、スレーブユニットＳＮ−１の直前に接続されているスレーブユニットＳＮ−２へ送信される。
【００３７】
スレーブユニットＳＮ−２は、ＯＵＴコネクタ４４ｂ及びシリアルコントローラ４３によりスレーブユニットＳＮ−１からのデータを受信する。スレーブユニットＳＮ−２は、受信したデータを必要に応じて更新し、当該データをシリアルコントローラ４３及びＩＮコネクタ４４ａによりシリアル通信線へ送出する。
【００３８】
以上のような処理は、最後に接続されているスレーブユニットから送出されたデータがマスタユニットＭに到達するまで各スレーブユニットにおいて実行される。以上のような各スレーブユニットによる処理によって、各スレーブユニットＳは、マスタユニットＭへデータを送信することができる。
【００３９】
次に、本実施形態に係るネットワークシステムにおけるシリアル通信線上を伝送されるデータの通信フォーマットについて説明する。  
図３は、本実施形態に係るネットワークシステムにおけるシリアル通信線上を伝送されるデータの通信フォーマットの構成例を示す図である。  
図３に示す構成例では、ネットワークシステムにおけるシリアル通信線を伝送されるデータは、スタートマーク部、コマンド部、入出力データ部（スレーブ１用の入出力データ部、スレーブ２用の入出力データ部、スレーブ３用の入出力データ部、・・・、スレーブＮ用の入出力データ部）などにより構成される。
【００４０】
スタートマーク部は、図３に示す通信フォーマットにおいて、データの先頭部分に設けられ、データの先頭を示す情報（スタートマーク）を格納する領域である。スタートマークは、通信が開始されたことを示すビット列である。図３に示す例では、スタートマークは、２０ビットのビット列で構成され、送受信されるデータの先頭に格納される。マスタユニットＭ又は各スレーブユニットＳは、スタートマークを認識することにより通信の開始を認識する。スタートマークは、たとえば「０００・・・０」又は「１１１・・・１」などのビット列である。なお、スタートマークの構成は、通信プロトコルにより予め規定されるものであり、特定の構成に限定されるものではない。
【００４１】
コマンド部は、各ユニットに対して適用されるコマンドを格納する領域である。図３に示す例では、コマンド部は、１８ビットのビット列で構成され、送受信されるデータにおいてスタートマークに続いて格納される。  
入出力データ部（スレーブ１用の入出力データ部、スレーブ２用の入出力データ部、スレーブ３用の入出力データ部、・・・、スレーブＮ用の入出力データ部）は、各スレーブが他のユニットとの間で送受信するデータを格納する領域である。図３に示す構成例において、入出力データ部は、シリアル通信線を伝送されるデータにおいてコマンド部に続く領域であり、当該ネットワークシステムに接続し得るスレーブごとに２６ビット分の入出力データ部の領域が設けられる。
【００４２】
たとえば、スレーブ１用の入出力データ部は、スレーブユニットＳ１と他のユニットとの間で送受信するデータを格納する。図３に示す構成例において、スレーブ１用の入出力データ部は、２０ビットのスタートマーク部及び１８ビットのコマンド部に続く領域であり、データの先頭より３９ビット目から６４ビット目の領域となる。従って、各スレーブユニットＳは、送受信するデータの３９ビット目から６４ビット目の領域がスレーブＳ１用の入出力データ部であることを識別できる。
【００４３】
また、スレーブ２用の入出力データ部は、スレーブユニットＳ２と他のユニットとの間で送受信するデータを格納する。図３に示す構成例において、スレーブ２用の入出力データ部は、スレーブ１用の入出力データ部に続く領域であり、データの先頭より６５ビット目から９０ビット目までの領域となる。従って、各スレーブユニットＳは、送受信するデータにおける６５ビット目から９０ビット目の領域がスレーブＳ２用の入出力データ部であることを識別できる。
【００４４】
また、スレーブ３用の入出力データ部は、スレーブユニットＳ３と他のユニットとの間で送受信するデータを格納する。図３に示す構成例において、スレーブ３用の入出力データは、スレーブ２用の入出力データ部に続く領域であり、データの先頭より９１ビット目から１１６ビット目までの領域となる。従って、各スレーブユニットＳは、送受信するデータにおける９１ビット目から１１６ビット目の領域がスレーブＳ３用の入出力データ部であることを識別できる。
【００４５】
また、スレーブＮ用の入出力データ部は、スレーブユニットＳＮと他のユニットとの間で送受信するデータを格納する。図３に示す構成例において、スレーブＮ用の入出力データ部は、スレーブＮ−１用の入出力データ部に続く領域であり、送受信データの先頭より２６Ｎ＋１３ビット目から２６Ｎ＋３８ビット目までの領域となる。従って、各スレーブユニットＳは、送受信するデータにおける２６Ｎ＋１３ビット目から２６Ｎ＋３８ビット目の領域がスレーブＳＮ用の入出力データ部であることを識別できる。
【００４６】
また、マスタユニットＭが各スレーブユニットＳからデータを読み出す場合、マスタユニットＭは、スタートマーク部に続くコマンド部に共通コマンドとして読み出しコマンド（ＲＥＡＤコマンド）をセットしたデータを生成する。さらに、マスタユニットＭは、スタートマークとコマンドとをセットしたデータに、各スレーブユニットＳに対して読み出すべきデータを特定する情報を格納した各スレーブ用の入出力データ部をセットする。これにより、マスタユニットＭは、スタートマーク部、コマンド部、及び、各スレーブ用の入出力データ部からなる入出力データ部を有する送信用のデータ（コマンドデータ）を生成する。
【００４７】
送信用のデータを生成すると、マスタユニットＭは、当該データをシリアル通信線により各スレーブユニットＳへ送信する。各スレーブユニットＳは、受信したデータに含まれるコマンドを抽出し、抽出したコマンドがＲＥＡＤコマンドであることを認識する。ＲＥＡＤコマンドを含むデータを受信した場合、スレーブユニットＳは、当該スレーブユニットＳ用の入出力データ部に格納された情報からＲＥＡＤコマンドの読取対象となるデータ（読取対象データ）を特定し、特定した読取対象データを当該スレーブユニットＳのメモリ４２などから読出し、読み出した読取対象データを後述するレスポンスデータにセットしてマスタユニットＭへ送信する。これにより、マスタユニットＭは、各スレーブユニットＳから読取対象データを受信する。
【００４８】
たとえば、スレーブ１用の入出力データ部は、スレーブユニットＳ１と他のユニットとの間で送受信するデータを格納する。マスタユニットＭがスレーブユニットＳ１からデータを取得する場合、マスタユニットＭは、スレーブ１用の入出力データ部にスレーブユニットＳ１から取得したいデータを特定する情報をセットする。図３に示す構成例において、スレーブ１用の入出力データ部は、２０ビットのスタートマーク部及び１８ビットのコマンド部に続く領域であり、データの先頭より３９ビット目から６４ビット目の領域となる。従って、スレーブユニットＳ１は、受信したデータの３９ビット目から６４ビット目を抽出することにより、受信したデータ内においてスレーブユニットＳ１を対象としているデータ（スレーブユニットＳ１の入出力データ）を取得することができる。
【００４９】
また、あるスレーブユニットＳが他のユニットへ特定のデータを送信する場合、当該スレーブユニットＳは、当該スレーブ用の入出力データ部に当該特定のデータをセットしたデータをシリアル通信線上に送信する。他のスレーブユニットは、受信したデータから送信元のスレーブ用の入出力データ部に格納されているデータを抽出することにより、送信元のスレーブユニットＳから送信された特定のデータを取得することができる。
【００５０】
次に、ネットワークシステムが稼働中にスレーブユニットの接続状況を確認するオートコンフィグレーション動作について説明する。  
本ネットワークシステムの稼働中において、マスタユニットＭは、各スレーブユニットＳの接続状態をシリアル通信線を伝送されるデータにおける各スレーブ用の入出力データ部の一部に設けたスレーブ接続確認用ビットにより確認する。すなわち、マスタユニットＭは、シリアル通信線を伝送されるデータにおけるスレーブ接続確認用ビットにより確認した各スレーブユニットＳの接続状態をスレーブ接続認識用データテーブルによって管理し、ネットワークシステムの稼働中におけるオートコンフィグレーションを実現する。
【００５１】
図４は、スレーブ接続確認用ビットの構成例を示す図である。  
スレーブ接続確認用ビットは、各スレーブ用の入出力データ部の所定位置に所定のサイズで設定される。たとえば、図４に示す例では、スレーブ接続確認用ビットは、１ビットであり、各スレーブ用の入出力データ部における所定の場所に格納される。スレーブ接続確認用ビットは、例えば、各スレーブ用の入出力データ部における先頭の１ビットにセットする。ただし、スレーブ接続確認用ビットをセットする場所は、特定の場所に限定されるものではない。
【００５２】
スレーブ接続確認用ビットは、各スレーブユニットＳがネットワークに接続されているか否かを示す情報である。たとえば、入出力データ部におけるスレーブ接続確認用ビットが「０」である場合、スレーブ接続確認用ビットは、対応するスレーブユニットがネットワークに接続されていない状態であることを示している。一方、入出力データ部におけるスレーブ接続確認用ビットが「１」である場合、スレーブ接続確認用ビットは、対応するスレーブユニットがネットワークに接続されている状態であることを示している。
【００５３】
すなわち、シリアル通信線を伝送されるデータにおける各スレーブ用の入出力データ部のスレーブ接続確認用ビットは、初期値として「０」に設定される。接続されている状態の各スレーブユニットＳは、伝送されてきたデータにおける自己のスレーブ用の入出力データ部におけるスレーブ接続確認用ビットを「１」に書き換える。当然ながら、接続されていない状態のスレーブユニットは、スレーブ接続確認用ビットを書き換えることがないから、接続されていない状態のスレーブユニットのスレーブ接続確認用ビットは「０」のままでシリアル通信線を伝送される。この結果として、シリアル通信線を伝送されるデータは、ネットワークに接続されているスレーブ用の入出力データ部におけるスレーブ接続確認用ビットが「１」となり、ネットワークに接続されていないスレーブ用の入出力データ部におけるスレーブ接続確認用ビットが「０」のままとなる。
【００５４】
次に、本実施形態に係るマスタユニットＭがスレーブユニットＳの接続状態を認識する手順について説明する。  
ここでは、スレーブユニットＳ１のスレーブユニットＩＤは「１」、スレーブユニットＳ２のスレーブユニットＩＤは「２」、…、スレーブユニットＳＮのスレーブユニットＩＤは「Ｎ」であるものとする。また、ネットワークシステムに接続されるスレーブユニットの数は、最大でＮ個である。また、各スレーブユニットＳは、マスタユニットＭからそれぞれのスレーブユニットＩＤが昇順になるように接続されているものとする。
【００５５】
当該ネットワークシステムでは、所定の通信フォーマット（例えば、図３に示すような通信フォーマット）に従って生成されたデータをマスタユニットおよび各スレーブユニット間で、上り方向と下り方向でそれぞれサイクリックに通信を行っている。
【００５６】
たとえば、マスタユニットＭは、所定の通信フォーマットに従って生成したデータ（コマンドデータ）を、シリアルコントローラ３３によりシリアル通信線を介してスレーブユニットＳ１へ送信する。マスタユニットＭが生成するコマンドデータは、各スレーブ用の入出力データ部におけるスレーブ接続確認用ビットが未接続状態を示す初期値（例えば、「０」）にセットされている。即ち、マスタユニットＭは、生成するコマンドデータの各スレーブ用の入出力データ部におけるスレーブ接続確認用ビットをすべて初期値（「０」）にセットする。
【００５７】
スレーブユニットＳ１は、マスタユニットＭからシリアル通信線を介して送信されたコマンドデータをシリアルコントローラ４３により受信する。コマンドデータを受信すると、スレーブユニットＳ１のプロセッサ４１は、コマンドデータ内に格納されているスレーブ１用の入出力データ部におけるスレーブ接続確認用ビットを接続状態されている状態であることを示す値（「１」）に書き換える。即ち、スレーブユニットＳ１のプロセッサ４１は、受信したコマンドデータにおけるスレーブ１用の入出力データ部におけるスレーブ接続確認用ビットを「１」に書き換えたコマンドデータに更新する。コマンドデータを更新すると、スレーブユニットＳ１のプロセッサ４１は、更新したコマンドデータをシリアルコントローラ４３によりシリアル通信線を介してスレーブユニットＳ２へ送信する。
【００５８】
また、スレーブユニットＳ１のプロセッサ４１は、受信したコマンドデータのコマンドで要求されている処理を実行し、その実行結果をメモリ４２に保持する。たとえば、プロセッサ４１は、メモリ４２に保持した実行結果を後述するレスポンスデータに書き込んでシリアル通信線によりマスタユニットＭへ伝送させる。
【００５９】
スレーブユニットＳ１のスレーブ接続確認用ビットを「１」に書き換えたコマンドデータをスレーブユニットＳ２へ送信すると、スレーブユニットＳ１のプロセッサ４１は、現状において自己がネットワークの最後に接続されているスレーブユニットであるか否かを判定する。この判定方法については、後述する。自己がネットワークの最後に接続されているスレーブユニットでないと判定すると、スレーブユニットＳ１のプロセッサ４１は、コマンドデータの受け渡し処理を終了する。
【００６０】
スレーブユニットＳ２は、シリアルコントローラ４３によりシリアル通信線を介してスレーブユニットＳ１から送信されたコマンドデータを受信する。スレーブユニットＳ１からのコマンドデータを受信すると、スレーブユニットＳ２のプロセッサ４１は、コマンドデータ内に格納されているスレーブ２用の入出力データ部におけるスレーブ接続確認用ビットを接続状態であることを示す値（「１」）に書き換える。即ち、スレーブユニットＳ２のプロセッサ４１は、スレーブユニットＳ１から受信したコマンドデータのスレーブ２用の入出力データ部におけるスレーブ接続確認用ビットを「１」に書き換えたコマンドデータに更新する。
【００６１】
また、スレーブユニットＳ２のプロセッサ４１は、受信したコマンドデータのコマンドで要求されている処理を実行し、その実行結果をメモリ４２に保持する。たとえば、プロセッサ４１は、メモリ４２に保持した実行結果を後述するマスタユニットＭへのレスポンスデータに書き込んでシリアル通信線によりスレーブユニットＳ１へ伝送させる。
【００６２】
スレーブユニットＳ２のスレーブ接続確認用ビットを「１」に書き換えたコマンドデータを生成すると、プロセッサ４１は、生成したコマンドデータをシリアルコントローラ４３によりスレーブユニットＳ３へ送信する。たとえば、スレーブユニットＳ１が接続されている場合、スレーブユニットＳ２が生成するコマンドデータ（スレーブユニットＳ３へ送信するコマンドデータ）は、スレーブユニットＳ１及びＳ２のスレーブ接続確認用ビットが「１」にセットされる。
【００６３】
生成したコマンドデータをスレーブユニットＳ３へ送信すると、スレーブユニットＳ２のプロセッサ４１は、現状のネットワークシステムにおいて自己が最後に接続されているスレーブユニットであるか否かを判定する。自己がネットワークシステムの最後に接続されているスレーブユニットでないと判定すると、スレーブユニットＳ２のプロセッサ４１は、コマンドデータの受け渡し処理を終了する
以上の処理を各スレーブユニットで繰り返し実行することにより、各スレーブユニットＳでスレーブ接続確認用ビットを書き換えられたコマンドデータは、最後に接続されているスレーブユニットへ送信される。最後に接続されているスレーブユニットは、コマンドデータを受信した後、マスタユニットＭへのレスポンスデータを作成し、前段のスレーブユニットへ送信する。なお、最後に接続されているスレーブユニットは、各スレーブユニットを経由してきたコマンドデータにおける各スレーブユニットＳのスレーブ接続確認用ビットにより、当該ネットワークシステムにおける各スレーブユニットＳの接続状態を把握することも可能である。
【００６４】
また、スレーブユニットＳＮが最後に接続されている場合、スレーブユニットＳＮのプロセッサ４１は、シリアルコントローラ４３により当該コマンドデータを受信すると、受信したコマンドデータで指定されたコマンドに対する処理を実行する。この場合、プロセッサ４１は、最後に接続されたスレーブユニットであることを認識し、当該コマンドデータを破棄する。スレーブユニットＳＮのプロセッサ４１は、コマンドに対する実行結果をスレーブＮ用の入出力データ部にセットし、かつ、当該スレーブユニットＳＮのスレーブ接続確認用ビットを「１」にセットしたレスポンスデータを作成する。プロセッサ４１が作成するレスポンスデータは、スレーブユニットＳＮ以外のスレーブＮ用以外の入出力データ部におけるスレーブ接続確認用ビット（スレーブユニットＳＮ以外の全てのスレーブ接続確認用ビット）が初期値（「０」）にセットされる。
【００６５】
スレーブユニットＳＮのプロセッサ４１は、レスポンスデータを作成するとともに、同期信号線を介してマスタユニットＭからの送信される基準信号（レスポンスデータを送信するタイミングを指定する基準信号）の受信待ちとする。基準信号は、マスタユニットＭとスレーブユニットＳＮとの間の通信時間（遅延時間）を考慮して設定したタイミングでマスタユニットＭから各スレーブユニットへ出力される。このため、スレーブユニットＳＮのプロセッサ４１は、マスタユニットＭからの基準信号を受信したタイミングでレスポンスデータを送信できる。すなわち、スレーブユニットＳＮのプロセッサ４１は、マスタユニットＭからの基準信号を受信したタイミングに基づいてレスポンスデータをシリアル通信線を介してスレーブユニットＳＮ−１へ送信する。
【００６６】
スレーブユニットＳＮ−１は、シリアルコントローラ４３によりスレーブユニットＳＮからのレスポンスデータを受信する。レスポンスデータを受信すると、スレーブユニットＳＮ−１のプロセッサ４１は、レスポンスデータのスレーブＮ−１用の入出力データ部に直前に受信したコマンドデータの実行結果を示すデータを格納し、スレーブＮ−１用の入出力データ部におけるスレーブ接続確認用ビットを接続状態であることを示す値（「１」）に書き換える。
【００６７】
即ち、スレーブユニットＳＮ−１のプロセッサ４１は、受信したレスポンスデータのスレーブＮ−１用の入出力データ部におけるスレーブ接続確認用ビットを「１」に更新したレスポンスデータを生成する。このレスポンスデータは、スレーブユニットＳＮが接続状態であるため、スレーブユニットＳＮのスレーブ接続確認用ビットも「１」にセットされている。スレーブユニットＳＮ−１のプロセッサ４１は、生成したレスポンスデータをシリアルコントローラ４３によりシリアル通信線を介してスレーブユニットＳＮ−２へ送信する。
【００６８】
スレーブユニットＳＮ−２は、シリアルコントローラ４３によりスレーブユニットＳＮ−１から送信されたレスポンスデータを受信する。レスポンスデータを受信すると、スレーブユニットＳＮ−２のプロセッサ４１は、受信したレスポンスデータ内のスレーブＮ−２用の入出力データ部に直前に受信したコマンドデータの実行結果を示すデータを格納し、スレーブＮ−１用の入出力データ部におけるスレーブ接続確認用ビットを接続状態であることを示す値に書き換える。
【００６９】
即ち、スレーブユニットＳＮ−２のプロセッサ４１は、受信したレスポンスデータのスレーブＮ−２用の入出力データ部におけるスレーブ接続確認用ビットを「１」に更新したレスポンスデータを生成する。このレスポンスデータは、スレーブユニットＳＮ及びＳＮ−１が接続状態であれば、スレーブユニットＳＮ及びＳＮ−１のスレーブ接続確認用ビットも「１」にセットされている。
【００７０】
以上の処理をスレーブユニットＳＮ−３からＳ１が順に実行することによって、各スレーブユニットＳでスレーブ接続確認用ビットを書き換えられたレスポンスデータが、マスタユニットＭへ送信される。
【００７１】
また、スレーブユニットＳＮが接続されていない場合、最後に接続されていると判定したスレーブユニット（実際に最後に接続されているスレーブユニット）がコマンドデータに対するレスポンスデータを作成する。実際に最後に接続されているスレーブユニットが作成したレスポンスデータは、各スレーブユニットを経由してマスタユニットＭへ送信される。このレスポンスデータは、各スレーブユニットでスレーブ接続確認ビットが更新され、実際には接続されていないスレーブユニットＳＮなどのスレーブ接続確認ビットが初期値「０」のままでマスタユニットＭへ送信される。
【００７２】
マスタユニットＭは、シリアルコントローラ３３によりシリアル通信線を介して伝送される各スレーブユニットからのレスポンスデータを受信する。レスポンスデータを受信すると、マスタユニットＭのプロセッサ３１は、受信したレスポンスデータの各スレーブ用の入出力データ部から各スレーブユニットのスレーブ接続確認用ビットを抽出する。たとえば、スレーブユニットの最大個数がＮ個であれば、マスタユニットＭのプロセッサ３１は、受信したレスポンスデータからスレーブユニットＳ１〜ＳＮの接続状態を示すＮ個のスレーブ接続確認用ビットを抽出する。
【００７３】
各スレーブユニットのスレーブ接続確認用ビットを抽出すると、プロセッサ３１は、メモリ３２ａ内に格納されているスレーブ接続認識用データテーブルを更新する。即ち、プロセッサ３１は、受信したレスポンスデータにおける各スレーブ用の入出力データ部における各スレーブユニットのスレーブ接続確認用ビットの値に従って、スレーブ接続認識用データテーブルにおける対応するスレーブユニットＩＤの接続確認フラグを更新する。たとえば、スレーブ２用の入出力データ部におけるスレーブ接続確認用ビットが「１」である場合、プロセッサ３１は、スレーブ接続認識用データテーブルのスレーブユニットＩＤ「２」に対応する接続確認フラグを「１」に書き換える。また、スレーブ４用の入出力データ部におけるスレーブ接続確認用ビットが「０」であれば、プロセッサ３１は、スレーブ接続認識用データテーブルのスレーブユニットＩＤ「４」に対応する接続確認フラグを「０」に書き換える。
【００７４】
以上の処理によれば、マスタユニットへ送信されるレスポンスデータに対して、実際には接続されていないスレーブユニットは、レスポンスデータ内にあるスレーブ接続確認用ビットを「１」に書き換えることができず、レスポンスデータ内に格納されている当該スレーブ接続確認用ビットが「０」のままとなる。たとえば、スレーブユニットＳ４が接続されていない状態である場合、マルチユニットＭが受信するレスポンスデータのスレーブ４用の入出力データ部におけるスレーブ接続確認用ビットは、「０」のままとなる。
【００７５】
したがって、マスタユニットＭでは、スレーブ接続認識用データテーブルにより、スレーブユニットＩＤに対応するスレーブユニットの接続状態を管理することができる。即ち、あるスレーブユニットＩＤに対応する接続確認用ビットが「０」である場合、当該スレーブユニットＩＤが示すスレーブユニットＳは、ネットワークシステムに接続されていないといえる。また、あるスレーブユニットＩＤに対応する接続確認用ビットが「１」の場合、当該スレーブユニットＩＤが示すスレーブユニットＳは、ネットワークシステムに接続されている状態であるといえる。
【００７６】
上記のようなネットワークシステムによれば、システムが稼働中であっても、マスタユニットＭは、各スレーブユニットを経由して伝送されてくるデータにおける接続確認用ビットを参照すれば、ネットワークシステムに追加されたスレーブユニットあるいは取り外されたスレーブユニットを認識することができる。
【００７７】
なお、スレーブユニットの追加を認識するものであれば、コマンドデータを受信したスレーブユニットＳは、プロセッサ４１によりコマンドデータのコマンドで要求された処理を実行し、その実行結果を当該スレーブ用の入出力データ部に格納し、かつ、スレーブ接続確認用ビットを接続状態された状態であることを示す値（「１」）にセットしたデータ（レスポンスデータ）を個別にマスタユニットＭへ送信するようにしても良い。この場合、マスタユニットＭは、各スレーブユニットから個別に送信されるレスポンスデータを受信するごとに、受信したレスポンスデータの作成元であるスレーブユニットよりもマスタユニット側の各スレーブユニットのスレーブ接続確認用ビットによりテーブルを更新するようにしても良い。
【００７８】
次に、各スレーブユニットＳが自己がネットワークシステムの最後に接続されていることを判定する方法について説明する。  
ここでは、隣接するスレーブユニットＳ間におけるシリアル通信線による通信の遅延時間Ｔ（各スレーブユニットＳの処理遅延時間＋隣接したスレーブユニットＳ間の通信遅延時間）は一定であって、各スレーブユニットＳは、あらかじめ遅延時間Ｔの値をメモリ４２に格納しているものとする。
【００７９】
ここでは、最後に接続されている否かを判定する処理の説明として、スレーブユニットＳＮ−２を例に説明する。  
まず、スレーブユニットＳＮ−２が、シリアルコントローラ４３を通じてマスタユニットＭから送信されるコマンドデータを受信しているものとする。コマンドデータを受信すると、プロセッサ４１は、当該ネットワークシステムに接続され得るスレーブユニットの最大個数を特定する。スレーブユニットの最大個数は、予めメモリ４２に記憶しておくようにしても良いし、受信したコマンドデータから最後に接続され得るスレーブユニットを認識するようにしても良い。後者の場合、たとえば、プロセッサ４１は、コマンドデータの最後に格納されている入出力データを検索し、その入出力データが対応するスレーブユニットＩＤを判定するようにすれば良い。本実施形態においては、最後に格納されている入出力データに対応するスレーブユニットＩＤは、「Ｎ」であるものとする。この場合、プロセッサ４１は、コマンドデータにおける最後の入出力データ部がスレーブユニットＩＤ「Ｎ」に対応するものであることを認識することにより、当該ネットワークシステムに最大Ｎ個のスレーブユニットＳが接続され得ることを認識することができる。
【００８０】
ただし、スレーブユニットＩＤの最大値（システム構成として最後に接続し得るスレーブユニットのスレーブユニットＩＤ）あるいはスレーブユニットの最大個数を判定する方法は、特定の方法に限定されるものではない。
【００８１】
当該ネットワークシステムに接続され得るスレーブユニットの最大個数（ここでは「Ｎ」とする）を特定すると、プロセッサ４１は、自己のスレーブユニットよりも後段に接続し得るスレーブユニットの個数を計算する。たとえば、スレーブユニットＳＮ−２では、プロセッサ４１は、最大接続個数「Ｎ」から自己のスレーブユニットＩＤ「Ｎ−２」を引くことにより、自己の後にスレーブユニットが２個接続し得ることを認識する。
【００８２】
自己の後に接続し得るスレーブユニットＳの個数（ここでは、「２」）を計算すると、プロセッサ４１は、自己の後に接続し得る個数のスレーブユニットが接続されている場合に、マスタユニットＭが同期信号線に出力する基準信号（最後のスレーブユニットがレスポンスデータを送信するタイミングを示す基準信号）を受信してから後段のスレーブユニットからレスポンスデータを受信するまでの時間（待ち時間）を計算する。ここでは、スレーブユニットＳＮ−２に後に接続され得るスレーブユニットＳの個数は２個であるので、プロセッサ４１は、レスポンスデータを受信するまでの待ち時間を、遅延時間Ｔ×２（データがスレーブユニットＳｎからスレーブユニットＳｎ−１まで到達する時間（遅延時間）がＴであって、スレーブユニットＳＮ−１からスレーブユニットＳＮ−２まで到達する時間（遅延時間）がＴである場合）以上となるように設定する。待ち時間は、後段のスレーブユニットからのレスポンスデータを受信しうる時間であり、スレーブユニット間の遅延時間に基づくものであるから、スレーブユニット間の遅延時間が所定の値であれば、予め設定しておくようにしても良い。
【００８３】
待ち時間を設定すると、プロセッサ４１は、マスタユニットＭからの基準信号を受信してから待ち時間が経過するまで、自己の後に接続されているスレーブユニット（たとえば、スレーブユニットＳｎ−１又はスレーブユニットＳｎ）からのレスポンスデータを受信待ちとなる。自己の後に接続されているスレーブユニットが存在すれば、当該スレーブユニットは、待ち時間中にレスポンスデータを受信する。一方、後段に接続されているスレーブユニットが存在しない場合、つまり、自己が最後に接続されているスレーブユニットである場合、プロセッサ４１は、レスポンスデータを受信しない。したがって、プロセッサ４１は、待ち時間中にレスポンスデータが受信できない場合には、自己がネットワークシステムの最後に接続されているスレーブユニットであると認識する。  
以上の処理によって、各スレーブユニットは、自己がネットワークシステムの最後に接続されているスレーブユニットか否かを判定することができる。
【００８４】
なお、ネットワークシステムに接続されるスレーブユニットの最大個数と自己のスレーブユニットＩＤとが一致する場合、つまり、後段にスレーブユニットが接続されることがない最後に接続されるスレーブユニットである場合、当該スレーブユニットＳＮのプロセッサ４１は、上述した判定処理を行うまでもなく、上述したマスタユニットＭからの基準信号に応じてレスポンスデータを送信する。
【００８５】
また、各スレーブユニットは、上述した方法とは別の方法によって自己が最後に接続されたスレーブユニットか否かを判定するようにしても良い。例えば、各スレーブユニットＳは、コマンドデータが最後のスレーブユニットＳＮまで到達し最後のスレーブユニットＳＮから当該コマンドデータに対するレスポンスデータが到達する時間を計算し、計算した時間を経過しても後段のスレーブユニットからレスポンスデータが受信されない場合に、自己がネットワークシステムの最後に接続されたスレーブユニットであると判定するようにしてもよい。
【００８６】
また、各スレーブユニットＳは、プロセッサ４１によりＯＵＴコネクタ４４ｂにシリアル通信線が接続されているかを判定し、ＯＵＴコネクタ４４ｂにシリアル通信線が接続されていない場合に、自己がネットワークシステムの最後に接続されているスレーブユニットＳであると判定するようにしてもよい。自己が最後に接続されているスレーブユニットＳであるか否かの判定方法は、特定の方法に限定されるものではない。
【００８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
Ｍ…マスタユニット、３１…プロセッサ（デバイス）、３２…メモリ、３３…シリアルコントローラ、３４…コネクタ、Ｓ（Ｓ１、Ｓ２…、Ｓｎ−１、Ｓｎ）…スレーブユニット、４１…プロセッサ（デバイス）、４２…メモリ、４３…シリアルコントローラ、４４ａ…ＩＮコネクタ、４４ｂ…ＯＵＴコネクタ、４５…コントローラ、５１…センサ、６１…アクチュエータ。
【図１】
2014060575.tif 000003
【図２】
2014060575.tif 000004
【図３】
2014060575.tif 000005
【図４】
2014060575.tif 000006