以下、実施形態について、図面を参照して説明する。
図1は、複数のモジュールからなる装置に適用される機構制御用のネットワークシステムの構成例を示す図である。
図1に示す装置は、複数のモジュール1、2、3,4、5、…により構成される。各モジュール1〜5は、それぞれが様々な用途で用いられる。すなわち、図1に示す装置は、様々な用途のモジュールを組み合わせて構成されるシステムであり、たとえば、搬送する物品を処理する物品処理装置(システム)などが想定される。
図1に示す装置は、機構制御用のネットワークにより統括的な制御を実現される。図1に示す装置に適用される機構制御用のネットワークは、マスタユニット10、スレーブユニット21、スレーブユニット22、スレーブユニット23及びスレーブユニット24などを備える。各モジュール1〜5は、それぞれの用途に応じて、マスタユニット10、あるいは、スレーブユニット21〜24が設けられる。
マスタユニット10、あるいは、スレーブユニット21〜24は、モジュールの制御ユニットとして機能する。このため、制御ユニットによる制御が不要なモジュールには、マスタユニット及びスレーブユニットの何れも設けなくても良いし、複数の制御ユニットによる制御が必要なモジュールには、複数のスレーブユニットを設けても良い。図1に示す例では、モジュール2には、制御ユニットとしてのマスタユニットおよびスレーブユニットが何れも設けられていないし、モジュール3には、複数のスレーブユニット22及び23が設けられている。
また、制御ユニットとしてのマスタユニットおよび各スレーブユニットは、その用途に応じて周辺機器を接続する。図1に示す例において、モジュール3内では、スレーブユニット21にセンサ21aおよびアクチュエータ21bが接続されている。図1に示す例において、モジュール4内では、スレーブユニット22にセンサ22aが接続され、スレーブユニット23にアクチュエータ23bが接続されている。さらに、図1に示す例において、モジュール5内では、スレーブユニット24にセンサ24aおよびアクチュエータ24bが接続されている。なお、センサ21a、22a、24aは、信号を入力する入力機器の例であり、アクチュエータ21b、23a、24bは、駆動制御の対象とする駆動機構の例である。また、制御ユニットとしてのマスタユニットおよび各スレーブユニットに接続される機器(たとえば、センサ、アクチュエータ)は、特定の種類の機器に限定されるものではない。
マスタユニット10は、各スレーブユニットへ命令又はデータを送信することができる。例えば、マスタユニット10は、スレーブユニット23を識別情報により指定してスレーブユニット23に接続されているアクチュエータ23aを動作させるための制御命令を送信することができる。マスタユニット10から送信された制御命令は、スレーブユニット21及びスレーブユニット22を通じてスレーブユニット23に送信される。当該制御命令を受信したスレーブユニット23は、制御命令に付加された識別情報により受信した制御命令に従って、スレーブユニット23に接続されたアクチュエータ23aを動作させる。
また、各スレーブユニット21〜24は、マスタユニット10へデータを送信することができる。例えば、スレーブユニット22は、スレーブユニット22に接続されたセンサ22aで検出したデータに当該スレーブユニットの識別情報(ID)を付加して、マスタユニット10へ送信する。スレーブユニット22から送信された当該データは、スレーブユニット21を通じてマスタユニット10へ送信される。当該データを受信したマスタユニット10は、当該データに付加されている識別情報によりどのスレーブユニットからのデータであるかを認識でき、当該データを自身のメモリに格納するなどの各種の処理を実行することができる。
以上のようなネットワークシステムによれば、マスタユニット10は、各スレーブユニットに接続した機器で検出されたデータを収集して管理することができ、また、各スレーブユニットに接続された機器の駆動制御を行うこともできる。従って、上述したネットワークシステムにおいて、マスタユニット10は、各スレーブユニットを用いて当該装置全体の統括的な動作制御を行うことができる。
次に、ネットワークシステムの構成について説明する。
図2は、本実施形態に係るネットワークシステムの構成例を示すブロック図である。図2に示すように、本実施形態に係るネットワークシステムは、マスタユニットMと複数のスレーブユニットS(S1、S2、…、Sn)とを有する。マスタユニットMと複数のスレーブユニットSとは、それぞれが独立したユニットを構成している。マスタユニットMは、各スレーブユニットSに制御命令を出力したり、各スレーブユニットSからの情報を取得したりする。各スレーブユニットSは、マスタユニットMからの動作命令に基づいてアクチュエータなどの駆動機構を動作させたり、センサなどの入力機器からの情報を取得してマスタユニットMへ出力したりする。
また、本ネットワークシステムにおいて、マスタユニットMと各スレーブユニットSとは、シリアル通信ラインによってデイジーチェーン接続される。シリアル通信ラインによりデイジーチェーン接続されたマスタユニットMと各スレーブユニットSとは、半二重通信を行う。本ネットワークシステムは、シリアル通信ラインを用いた半二重通信を行うため、通信設定において、各スレーブユニットSに固有のIDが設定される。各スレーブユニットSは、それぞれに設定されたIDにより識別され、マスタユニットMあるいは他のスレーブユニットSとのデータ通信が可能となる。
たとえば、各スレーブユニットSは、自己のIDを付与したデータをマスタユニットMに送信する。スレーブユニットSから送信されたデータを受信したマスタユニットMは、データに付与されたIDから受信したデータがどのスレーブユニットSから送信されたデータであるかを識別する。また、マスタユニットMは、特定のスレーブユニットSへデータを送る場合、データに当該スレーブユニットSのIDを付与して送信する。マスタユニットMから送信されたデータを受信した各スレーブユニットSは、受信したデータに付与されているIDと自己のIDとを比較し、一致すれば受信したデータを格納し、一致しなければ、次のスレーブユニットSへ受信したデータを送信する。
次に、マスタユニットMの構成例について説明する。
図3は、本実施形態に係るマスタユニットMの構成例を説明するためのブロック図である。
マスタユニットMは、図3に示すように、コアプロセッサ31、メモリ32、シリアルトランシーバ33、および、コネクタ34などを備える。コアプロセッサ31は、通信バスなどを通じて、メモリ32及びシリアルトランシーバ33に電気的に接続され、コネクタ34は、シリアルトランシーバ33に接続されている。
コアプロセッサ31は、マスタユニットM全体の動作を制御する制御部である。コアプロセッサ31は、CPUなどで構成される。また、コアプロセッサ31は、内部メモリおよび各種のインターフェイスなどを備えても良い。コアプロセッサ31は、あらかじめ決められたプログラムを実行することにより種々の処理を実現する。たとえば、コアプロセッサ31は、インターフェイスを通じて入力されるデータなどを基にマスタユニットM全体を制御する。また、コアプロセッサ31は、オペレーティングシステムのプログラムを実行することにより、マスタユニットMの基本的な動作制御を行う。また、コアプロセッサ31は、アプリケーションプログラムを実行することにより、マスタユニットMの運用形態に応じた種々の動作制御を行う。なお、コアプロセッサ31がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、コアプロセッサ31は、ハードウエア回路により実行される機能を制御する。
メモリ32は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ32は、ROMなどの書き換え不可な不揮発性メモリ、RAMなどの揮発性のワーキングメモリ、および、ハードディスクドライブ或いは半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ32における不揮発性メモリは、コアプロセッサ31が実行するプログラムあるいは制御データなどを格納する。また、メモリ32におけるRAMなどのワーキングメモリは、各スレーブユニットSへ送信するデータを記憶したり、各スレーブユニットSから受信したデータあるいはコアプロセッサ31の処理結果などのデータを記憶したりする。
シリアルトランシーバ33は、各スレーブユニットSとシリアル通信(半2重通信)を行う通信部である。シリアルトランシーバ33は、シリアル通信線を通じて、各スレーブユニットのシリアルトランシーバと接続されている。コアプロセッサ31は、シリアルトランシーバ33を通じて各スレーブユニットSからデータを受信し、シリアルトランシーバ33を通じて各スレーブユニットSへデータを送信する。
コネクタ34は、シリアル通信線を接続するデータ入出力用のコネクタである。コネクタ34は、シリアルトランシーバ33に接続されている。マスタユニットMから各スレーブユニットSへ送信するデータは、シリアルトランシーバ33によりコネクタ34を介してシリアル通信線へ出力される。また、各スレーブユニットSから受信するデータは、コネクタ34を介してシリアルトランシーバ33へ供給される。
次に、スレーブユニットS(S1、S2、…)の構成について説明する。
図4は、本実施形態に係るスレーブユニットSの構成例を説明するためのブロック図である。
スレーブユニットSは、コアプロセッサ41、メモリ42、シリアルトランシーバ43、コネクタ44(44a、44b)、および、コントローラ45を有する。また、コアプロセッサ41は、スレーブユニット内においてバスなどを通じて、メモリ42、シリアルトランシーバ43、及びコントローラ45などと電気的に接続される。シリアルトランシーバ43は、スレーブユニットS内においてコネクタ44(44a、44b)に接続される。さらに、コアプロセッサ41は、スレーブユニットSが情報を取得する入力機器としてのセンサ51(51A、51B、…)に接続され、コントローラ45は、スレーブユニットSが制御対象する駆動機構としてのアクチュエータ61(61A、61B、…)に接続される。
コアプロセッサ41は、スレーブユニットS全体の制御する制御部である。コアプロセッサ41は、メモリ42などに記録されている制御プログラム及び各部位からのデータに基づいて種々の処理を行う。例えば、コアプロセッサ41は、オペレーティングシステムのプログラムを実行することにより、スレーブユニットSの基本的な動作制御を行う。また、コアプロセッサ41は、アプリケーションプログラムを実行することにより、スレーブユニットSの運用形態に応じた種々の動作制御を行う。なお、コアプロセッサ41がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、コアプロセッサ41は、ハードウエア回路により実行される機能を制御する。
メモリ42は、プログラム及びデータなどを記録するコンピュータ可読媒体である。メモリ42は、ROMなどの書き換え不可な不揮発性メモリ、RAMなどの揮発性のワーキングメモリ、および、ハードディスクドライブ或いは半導体メモリなどの書換え可能な不揮発性メモリなどが含まれる。メモリ42における不揮発性メモリは、コアプロセッサ41が実行するプログラムあるいは制御データなどを格納する。メモリ42におけるRAMなどのワーキングメモリは、マスタユニットMへ送信するデータ、マスタユニットMから受信したデータ及びコアプロセッサ41の処理結果などを格納する。また、メモリ42における不揮発性メモリは、スレーブユニットSの用途、特定あるいは特徴などを示す機器情報を格納する。例えば、メモリ42の不揮発性メモリは、スレーブユニットSに接続されているセンサの種類、および、アクチュエータの種類などの特徴データを機器情報の一部として格納する。
シリアルトランシーバ43は、マスタユニットM及び他のスレーブユニットとシリアル通信(半2重通信)を行う通信部である。シリアルトランシーバ43は、シリアル通信線を通じて、マスタユニットM又は他のスレーブのシリアルトランシーバと接続される。コアプロセッサ41は、シリアルトランシーバ43を通じてマスタユニット及び各スレーブユニットからデータを受信することができる。また、コアプロセッサ41は、シリアルトランシーバ43を通じてマスタユニット及び各スレーブユニットにデータを送信することもできる。
コネクタ44は、シリアル通信線の入出力コネクタ44a、44bである。コネクタ44は、シリアルトランシーバ43に接続されている。コネクタ44は、シリアルトランシーバ43からのデータをマスタユニット及び他のスレーブユニットへ送信する。また、コネクタ44は、マスタユニット及び他のスレーブユニットから送信されたデータをシリアルトランシーバ43へ送信する。
センサ51(51A、51B、…)は、スレーブユニットSの外に設けられ、スレーブユニットS内のコアプロセッサ41に接続される。センサ51(51A、51B、…)は、マスタユニットMに送信するデータ、又は、コアプロセッサ41での処理に使用されるデータなどを検知する。センサ51は、情報を取得する入力機器の一例であり、センサ51の種類などは、特定の用途に限定されるものではない。例えば、センサ51としては、温度センサ、通過検知センサなどが想定される。
コントローラ45は、コアプロセッサ41からの指示に基づいてアクチュエータ61(61A、61B、…)を動作させる。コントローラ45は、アクチュエータ61によって構成が異なる。例えば、アクチュエータ61が開閉ゲートである場合、コントローラ45は、開閉ゲートを動作させるためのモータ駆動回路やインバータモータなどにより構成する。アクチュエータ61は、マスタユニットMからの命令又はコアプロセッサ41からの命令に基づくコントローラ45からの駆動信号に応じて動作する駆動機構である。アクチュエータ61は、スレーブユニットSが駆動制御の対象とする駆動機構の一例であり、アクチュエータの種類などは、特定の用途に限定されるものではない。例えば、アクチュエータ61としては、開閉ゲートなどが想定される。
なお、図2に示す構成例では、各スレーブユニットおよび各スレーブユニットに接続する機器の構成は、同一の構成として図示している。しかし、本実施形態に係るネットワークシステムの各スレーブユニットは、同一の構成でなくともよい。例えば、あるスレーブユニットは、センサのみを接続し、他のスレーブユニットは、アクチュエータのみを接続し、あるスレーブは、センサもアクチュエータも接続されていないというような構成であっても良い。言い換えれば、各スレーブユニットSは、コアプロセッサ41、メモリ42、シリアルトランシーバ43およびコネクタ44などの通信に係る構成が共通化され、その他の構成は各スレーブユニットの様々な用途(例えば、制御対象とするモジュールの用途)に応じた構成とすることが可能である。
次に、本実施形態に係るネットワークシステムにおけるシリアル通信について説明する。
本ネットワークシステムにおいて、マスタユニットM及び各スレーブユニットS間では、シリアル通信が行われる。本ネットワークシステムは、シリアル通信であるため、マスタユニットMあるいはスレーブユニットSの何れかから送信されたデータは、シリアル通信線を介して、隣接するユニットから順番に全ユニット(マスタユニットM及び各スレーブユニットS)に送信される。例えば、マスタユニットMがスレーブユニットS1に対してデータを送信した場合、送信されたデータは、スレーブユニットS1に送信されるだけでなく、スレーブユニットS2乃至Snへも送信される。また、スレーブユニットS2がマスタユニットMへデータを送信する場合、スレーブユニットS2から送信されたデータは、スレーブユニットS1、S3、…、Snへも送信される。
図5は、本実施形態に係るシリアル通信線の通信レベルを示す概略図である。
本ネットワークシステムにおいて、シリアル通信線上の通信レベルは、Lレベル又はHレベルの何れかである。例えば、Hレベルを5Vとし、Lレベルを0Vとする運用が可能である。マスタユニットMのシリアルトランシーバ33及び各スレーブユニットのシリアルトランシーバ43は、コネクタ34及びコネクタ44に接続されたシリアル通信線に対して、一定時間、Lレベル又はHレベルの信号を出力することができる。マスタユニット及び各スレーブユニットがLレベル又はHレベルの信号を出力すると、シリアル通信線の通信レベルは、出力された信号のレベルとなる。マスタユニット及び各スレーブユニットのシリアルトランシーバ33、43は、Lレベル又はHレベルの信号を繰り返し出力することにより、マスタユニットM及び各スレーブユニットS間で通信をすることができる。本実施形態に係るネットワークシステムは、通信時のデータ形式を特に指定するものではなく、通信時のデータ形式は限定されない。
また、マスタユニットM及び各スレーブユニットSは、Lレベル又はHレベルの信号を送信していないとき、当該ユニットのシリアルトランシーバ33、43は、ハイインピーダンス(Hi−Z)状態を維持する。シリアルトランシーバ33、43がHi−Z状態を維持することで、当該ユニットは、シリアル通信線上の通信レベルに干渉しない。即ち、シリアルトランシーバ33、43がHi−Z状態になることで、当該ユニットは、他のユニットからの信号を妨害しない。また、全てのユニットがHi−Z状態である場合、シリアル通信線上のレベルはHレベルになる。
次に、スレーブユニットが自己のIDを決定する手順について説明する。
本ネットワークシステムの通信設定として、まず、マスタユニットMは、各スレーブユニットSが識別情報を設定するためのID付与命令をシリアル通信線へ送信する。各スレーブユニットSは、シリアル通信線によるマスタユニットM及び他のスレーブユニットSとの接続状態に応じた遅延時間後に、マスタユニットMが送信したID付与命令をシリアル通信線により受信する。ID付与命令を受信したスレーブユニットSは、1つのパルスを発生させてシリアル通信線により送信する。各スレーブユニットSは、自己がパルスを送信した後に、シリアル通信線を伝送されるパルスの数をカウントすることにより、自己のIDを決定する。以下、詳細に述べる。
図6は、マスタユニットM及び各スレーブユニットSから見た通信線上の通信レベルを示す概略図である。
まず、マスタユニットMのコアプロセッサ31は、シリアルトランシーバ33によりコネクタ34を通じてID付与命令Pm0をシリアル通信線へ送信する。なお、ID付与命令の形式は、特に形式が限定されるものではない。マスタユニットMからシリアル通信線へ送信されたID付与命令Pm0は、マスタユニットMと各スレーブユニットSとの物理的な距離などに応じた遅延時間後に、各スレーブユニットSのシリアルトランシーバ43により受信される。
次に、スレーブユニットS1(A)に着目する。
スレーブユニットAは、マスタユニットMから送信されたID付与命令を通信遅延Tmaだけ遅れて受信する。通信遅延Tmaは、シリアル通信線により接続されるマスタユニットMとスレーブユニットAとの物理的な距離に応じた時間である。つまり、スレーブユニットAのシリアルトランシーバ43は、マスタユニットMがシリアル通信線に送信したID付与命令Pm0を、Tma時間後に、ID付与命令Pa0として観測する。
ID付与命令Pa0を受信したスレーブユニットAのコアプロセッサ41は、当該ID付与命令Pa0を受信してから処理時間(処理遅延)T0が経過した後、時間Tn分だけLレベルの信号(パルス)Paaをシリアルトランシーバ43によりシリアル通信線へ送信する。ここで、本実施形態の説明においては、各スレーブユニットがID付与命令に応じて出力する時間Tn分の幅となるLレベルの信号をID判別用のパルス(Paa、Pbb、Pcc、…、Pnn)と称する。スレーブユニットS1のシリアルトランシーバ43が送信するID判別用のパルスPaaは、シリアル通信線を通じて、マスタユニットM及び各スレーブユニットB、C、…、Nへ伝送される。
たとえば、マスタユニットMのシリアルトランシーバ33は、スレーブユニットAがパルスPaaを送信してから通信遅延Tmaだけ遅れて、スレーブユニットAから発信されたID判別用のパルスPaaをパルスPmaとして観測する。
次に、スレーブユニット(B)S2に着目する。
スレーブユニットBは、シリアル通信線において、スレーブユニットAを経由してマスタユニットMからのID付与命令Pb0を受信する。したがって、スレーブユニットBは、マスタユニットMとスレーブユニットS1間での通信遅延時間Tmaと、スレーブユニットAとスレーブユニットB間での通信遅延Tabとを加算した時間(マスタユニットMからスレーブユニットBまでの通信遅延時間Tmb)分だけ遅れて、マスタユニットMからのID付与命令Pb0を受信する。つまり、スレーブユニットBは、マスタユニットMがID付与命令Pm0を送信してから遅延時間Tmb(Tmb=Tma+Tab)後に、ID付与命令Pb0を受信する。
ID付与命令Pb0を受信したスレーブユニットBのコアプロセッサ41は、処理時間T0の処理を実行した後、ID判別用のパルスPbbを発信する。つまり、ID付与命令Pb0を受信したスレーブユニットBのコアプロセッサ41は、ID付与命令Pb0を受信してから処理時間(処理遅延)T0が経過した後、時間Tn分の幅を持つLレベルの信号としてパルスPbbをシリアルトランシーバ43によりシリアル通信線へ送信する。
ID付与命令を受信してからコアプロセッサ41が実行する処理に要する処理時間が全スレーブユニットにおいて同じであれば、スレーブユニットBは、パルスPbbを発信するタイミングと同じタイミングで、スレーブユニットAが送信したパルスPaaを受信する。
すなわち、スレーブユニットBは、スレーブユニットAよりも遅延時間Tab分遅れて、ID付与命令を受信する。ここで、ID付与命令の長さはスレーブユニットAでもスレーブユニットBでも同一であり、各スレーブユニットにおける処理時間(処理遅延)T0も同一であるものとする。この場合、スレーブユニットBは、スレーブユニットAが送信したパルスPaaをTab遅れて受信する。したがって、スレーブユニットBが送信するID判別用のパルスPbbは、スレーブユニットAが送信したパルスPaaと重なってシリアル通信線を伝送される。つまり、図6に示すパルスPbbは、スレーブユニットBが送信したパルスとスレーブユニットAが送信したパルスとの両方を含んでいる。
また、スレーブユニットAのシリアルトランシーバ43は、スレーブユニットBがパルスPbbを送信してから遅延時間Tabだけ遅れて、スレーブユニットBから発信されたID判別用のパルスPbbをパルスPabとして観測する。また、マスタユニットMのシリアルトランシーバ33は、スレーブユニットBがパルスPbbを送信してから通信遅延時間Tmb(Tma+Tab)だけ遅れて、スレーブユニットBから発信されたID判別用のパルスPbbをパルスPmbとして観測する。
次に、スレーブユニットCに着目する。
スレーブユニットCは、シリアル通信線において、スレーブユニットAおよびスレーブユニットBを経由してマスタユニットMからのID付与命令Pc0を受信する。したがって、スレーブユニットCは、マスタユニットMとスレーブユニットA間での通信遅延時間Tmaと、スレーブユニットAとスレーブユニットB間での通信遅延Tabと、スレーブユニットBとスレーブユニットC間での通信遅延時間Tbcとを加算した時間(マスタユニットMからスレーブユニットCまでの通信遅延時間Tmc)分だけ遅れて、マスタユニットMからのID付与命令Pc0を受信する。つまり、スレーブユニットCは、マスタユニットMがID付与命令Pc0を送信してから遅延時間Tmc(Tcb=Tma+Tab+Tbc)後に、ID付与命令Pc0を受信する。
ID付与命令Pc0を受信したスレーブユニットBのコアプロセッサ41は、処理時間T0の処理を実行した後、ID判別用のパルスPccを発信する。ID付与命令を受信してからコアプロセッサ41が実行する処理に要する処理時間が全スレーブユニットにおいて同じであれば、スレーブユニットCは、パルスPccを発信するタイミングと同じタイミングで、スレーブユニットBが送信したパルスPbbを受信する。したがって、スレーブユニットCが送信するID判別用のパルスPccは、スレーブユニットBが送信したパルスPbbと重なってシリアル通信線を伝送される。また、スレーブユニットBが送信するパルスPbbはスレーブユニットAが送信したパルスPaaと重なる信号でもあるから、図6に示すパルスPccは、スレーブユニットAが送信したパルスPaaおよびスレーブユニットBが送信したパルスPbbと重なった信号である。
また、スレーブユニットBのシリアルトランシーバ43は、スレーブユニットCがパルスPccを送信してから遅延時間Tbcだけ遅れて、スレーブユニットCから発信されたID判別用のパルスPccをパルスPbcとして観測する。また、スレーブユニットAのシリアルトランシーバ43は、スレーブユニットCがパルスPccを送信してから遅延時間Tac(Tab+Tbc=Tac)だけ遅れて、スレーブユニットBから発信されたID判別用のパルスPccをパルスPacとして観測する。また、マスタユニットMのシリアルトランシーバ33は、スレーブユニットCがパルスPccを送信してから通信遅延時間Tmc(Tma+Tab+Tbc)だけ遅れて、スレーブユニットCから発信されたID判別用のパルスPccをパルスPmcとして観測する。
次に、最後のスレーブユニットNについて着目する。
スレーブユニットNは、N−1個のスレーブユニットを経由して、ID付与命令を受信する。マスタユニットMからスレーブユニットNまでの通信遅延時間Tmn(Tma+Tab+Tbc+…+T(n−1)n)とすれば、スレーブユニットNは、マスタユニットMがID付与命令Pm0をしてからTmn時間後に、ID付与命令Pn0を受信する。
ID付与命令Pn0を受信したスレーブユニットNは、ID付与命令Pn0を受信してから処理時間(処理遅延)T0が経過したときに、ID判別用のパルスPnnをシリアルトランシーバ33によりシリアル通信線へ送信する。
上述したスレーブユニットBあるいはCと同様に、スレーブユニットNが送信するパルスPnnは、直前のスレーブユニットが送信したパルスと重なる。また、直前のスレーブユニットが送信するパルスもそれまでのスレーブユニットが送信するパルスと重なるものであるから、パルスPnnは、全てのスレーブユニットが送信したパルスを含むものとなる。
また、スレーブユニットNが発生させたパルスPnnは、各ユニット間の通信遅延時間を経て各ユニットに到達する。例えば、パルスPnnは、スレーブユニットCではパルスPcnとして観測され、スレーブユニットBではパルスPbnとして観測され、スレーブユニットAではパルスPanとして観測され、マスタユニットではパルスPmnとして観測される。
図6に示す信号が得られれば、ネットワークシステムにおける各スレーブユニットは、ID付与命令に応じたID判別用のパルスを送信した後に、受信するID判別用のパルスの数によって、当該スレーブユニットよりも下位に接続されているユニットの数を判定できる。たとえば、図6に示す例において、スレーブユニットAは、ID判別用のパルスPaaを送信した後に、N−1個のID判別用のパルスを受信する。スレーブユニットBは、ID判別用のパルスPbbを送信した後に、N−2個のID判別用のパルスを受信する。スレーブユニットCは、ID判別用のパルスPccを送信した後に、N−3個のID判別用のパルスを受信する。スレーブユニットNは、ID判別用のパルスPnnを送信した後に、ID判別用のパルスを受信しない。
これにより、スレーブユニットAは、下位にN−1個のスレーブユニットが接続されていることを判断でき、スレーブユニットBは、下位にN−2個のスレーブユニットが接続されていることを判断でき、スレーブユニットCは、下位にN−3個のスレーブユニットが接続されていることを判断でき、スレーブユニットNは、下位にスレーブユニットが接続されていないことを判断できる。
また、マスタユニットは、ID付与命令を送信した後に、受信するID判別用のパルスの数によって、スレーブユニットの数を判定できる。たとえば、スレーブユニットの数がN個であれば、マスタユニットは、ID付与命令を送信した後にN個のD判別用のパルスの数を受信する。これにより、マスタユニットは、接続されているスレーブユニットの数がN個であることを判断できる。
次に、マスタユニットMにおける動作について説明する。
マスタユニットMのコアプロセッサ31は、シリアルトランシーバ33によりID付与命令をシリアル通信線に送信する。ID付与命令を送信した後、マスタユニットMのコアプロセッサ31は、一定時間(監視時間)、シリアルトランシーバ33が受信するパルス(ID判別用のパルス)の数をカウントする。すなわち、図6に示す例において、マスタユニットMのコアプロセッサ31は、ID付与命令Pm0を送信した後、シリアルトランシーバ33が受信するパルスPma、Pmb、Pmc、・・・、Pmnの数をカウントする。
全てのスレーブユニットは、マスタユニットMからのID付与命令に応じて、ID判別用のパルスを送信する。このため、マスタユニットMのシリアルトランシーバ33が観測するパルスの数は、当該ネットワークシステムにおけるスレーブユニットの数と同じである。したがって、マスタユニットMのコアプロセッサ31は、ID付与命令送信後に、シリアルトランシーバ33が受信するパルスの数をカウントすることで、接続されているスレーブユニットの数を知ることができる。
図6に示す例では、スレーブユニットがN個である場合を想定している。マスタユニットMのシリアルトランシーバ33は、N個のスレーブユニットからのN個のパルスを観測する。したがって、マスタユニットMのコアプロセッサ31は、N個のスレーブユニットが接続されていることを認識することができる。すなわち、マスタユニットMのコアプロセッサ31は、シリアルトランシーバ33が観測するID付与命令に対する応答としてパルスの数に基づいて当該システムにおけるスレーブユニットの数を特定する。
また、マスタユニットMのコアプロセッサ31は、各スレーブユニットから各スレーブユニット自身が決定したIDを示す情報を取得する。さらに、コアプロセッサ31は、IDを示す情報とともに、各スレーブユニットの機器情報(スレーブユニットの用途、特性、接続機器などを示す情報)を取得する。たとえば、コアプロセッサ31は、シリアルトランシーバ33による各スレーブユニットとのシリアル通信により各スレーブユニットからID及び機器情報を受信する。
マスタユニットMのコアプロセッサ31は、各スレーブユニットから受信したIDと機器情報とをメモリ32に保存する。メモリ32には、各スレーブユニットのID及び機器情報を対応づけて保存するテーブルを設けるようにしても良い。各スレーブユニットのIDをメモリ23に保存した後、マスタユニットMのコアプロセッサ31は、メモリ32に保存したIDを参照して各スレーブユニットとの通信を行う。
次に、スレーブユニットAにおける動作例について説明する。
マスタユニットMからのID付与命令Pa0を受信すると、スレーブユニットAのコアプロセッサ41は、処理時間(処理遅延)T0の処理を実行した後、ID判別用のパルスPaaをシリアルトランシーバ43によりシリアル通信線へ送信する。
ID付与命令Pa0に応じたパルスPaaを送信した後、スレーブユニットAのコアプロセッサ41は、一定時間(監視時間)、シリアルトランシーバ43が受信するパルス(ID判別用のパルス)の数をカウントする。図6に示す例において、スレーブユニットAのコアプロセッサ41は、パルスPaaを送信した後、シリアルトランシーバ43により受信するパルスPab、パルスPac、・・・、パルスPanの数をカウントする。
スレーブユニットAのシリアルトランシーバ43で観測されるパルスは、スレーブユニットAよりも下位に接続されているスレーブユニットが送信したパルスである。ここで、「下位」とは、当該スレーブユニットよりもマスタユニットから遠くに接続されていることを指す。また、「上位」とは、当該スレーブユニットよりもマスタユニットに近くに接続されていることを指す。
図6に示す例では、スレーブユニットAよりも下位に接続されているスレーブユニットの数はN−1個である。このため、スレーブユニットAのシリアルトランシーバ43は、N−1個の各スレーブユニットから発信されたN−1個のID判別用のパルスを観測する。したがって、スレーブユニットAのコアプロセッサ41は、下位にN−1個のスレーブユニットが接続されていることを認識する。
スレーブユニットAのコアプロセッサ41は、スレーブユニットAよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ43により観測したパルス数に基づいて自己のIDを決定する。たとえば、スレーブユニットAのコアプロセッサ41は、受信したパルスの数(「N−1」)を自己のIDとしても良いし、パルスの数を元に演算した結果をIDとしても良い。
シリアルトランシーバ43が観測したパルス数(下位に接続したスレーブユニットの数)に基づくIDを決定すると、コアプロセッサ41は、決定したIDを自己のIDとしてメモリ42に格納する。決定した自己のIDをメモリ42に格納すると、スレーブユニットAのコアプロセッサ41は、決定した自己のIDと自己の機器情報(当該スレーブユニットの用途、特性、接続機器などを示す情報)をマスタユニットMに送信する。マスタユニットMにID及び機器情報を送信した後、コアプロセッサ41は、当該IDを用いてマスタユニットMとの通信が可能となる。
次に、スレーブユニットBの動作について説明する。
マスタユニットMからのID付与命令Pb0を受信すると、スレーブユニットBのコアプロセッサ41は、処理時間(処理遅延)T0の処理を実行した後、ID判別用のパルスPbbをシリアルトランシーバ43によりシリアル通信線へ送信する。
ID付与命令Pb0に応じたパルスPbbを送信した後、スレーブユニットBのコアプロセッサ41は、一定時間(監視時間)、シリアルトランシーバ43が受信するパルス(ID判別用のパルス)の数をカウントする。図6に示す例において、スレーブユニットBのコアプロセッサ41は、パルスPbbを送信した後、シリアルトランシーバ43により受信するパルスPbc、・・・、パルスPbnの数をカウントする。
パルスPbbは、パルスPaaと重なる。このため、スレーブユニットBのシリアルトランシーバ43は、スレーブユニットAが送信したPaaを観測することができない。したがって、スレーブユニットBのシリアルトランシーバ43は、スレーブユニットBよりも下位に接続されているスレーブユニットが発生したパルスを観測する。つまり、スレーブユニットBのシリアルトランシーバ43が観測するパルス数は、スレーブユニットBよりも下位に接続されているスレーブユニットの数である。
図6に示す例では、スレーブユニットBよりも下位に接続されているスレーブユニットの数はN−2個である。このため、スレーブユニットBのシリアルトランシーバ43は、N−2個のスレーブユニットから発信されたN−2個のパルスを観測する。したがって、スレーブユニットBのコアプロセッサ41は、下記のN−2個のスレーブユニットが接続されていることを認識する。
スレーブユニットBのコアプロセッサ41は、スレーブユニットBよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ43が観測したパルス数に基づいて自己のIDと決定する。たとえば、スレーブユニットBのコアプロセッサ41は、受信したパルスの数(「N−2」)を自己のIDとしても良いし、パルス数を元に演算した結果をIDとしても良い。
IDを決定すると、コアプロセッサ41は、決定したIDを自己のIDとして自己のメモリ42に格納する。さらに、コアプロセッサ41は、決定した自己のIDと自己の機器情報(当該スレーブユニットBの用途、特性、接続機器などを示す情報)をマスタユニットMに送信する。マスタユニットMにID及び機器情報を送信した後、スレーブユニットBのコアプロセッサ41は、当該IDを用いてマスタユニットとの通信が可能となる。
次に、スレーブユニットCの動作について説明する。
マスタユニットMからのID付与命令Pc0を受信すると、スレーブユニットCのコアプロセッサ41は、処理時間(処理遅延)T0の処理を実行した後、ID判別用のパルスPccをシリアルトランシーバ43によりシリアル通信線へ送信する。
ID付与命令Pc0に応じたパルスPccを送信した後、スレーブユニットCのコアプロセッサ41は、一定時間(監視時間)、シリアルトランシーバ43が受信するパルス(ID判別用のパルス)の数をカウントする。図6に示す例において、スレーブユニットCのコアプロセッサ41は、パルスPccを送信した後、シリアルトランシーバ43により受信するパルスPcd、・・・、パルスPcnの数をカウントする。
パルスPccは、パルスPbbと重なり、パルスPbbは既にパルスPaaと重なっている。このため、スレーブユニットCのシリアルトランシーバ43は、スレーブユニットAが送信したパルスPaaとスレーブユニットBが送信したパルスPbbを観測することができない。したがって、スレーブユニットCのシリアルトランシーバ43は、スレーブユニットCよりも下位に接続されているスレーブユニットが発生したパルスを観測する。つまり、スレーブユニットCのシリアルトランシーバ43が観測するパルス数は、スレーブユニットCよりも下位に接続されているスレーブユニットの数である。
図6に示す例では、スレーブユニットCよりも下位に接続されているスレーブユニットの数はN−3個である。このため、スレーブユニットCのシリアルトランシーバ43は、N−3個のスレーブユニットから発信されたN−3個のパルスを観測する。したがって、スレーブユニットCのコアプロセッサ41は、下位にN−3個のスレーブユニットが接続されているを認識する。
スレーブユニットCのコアプロセッサ41は、スレーブユニットCよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ43が観測したパルス数に基づいて自己のIDを決定する。たとえば、スレーブユニットCのコアプロセッサ41は、受信したパルスの数(「N−3」)を自己のIDとしても良いし、パルス数を元に演算した結果をIDとしても良い。
IDを決定すると、コアプロセッサ41は、決定したIDを自己のIDとして自己のメモリ42に格納する。さらに、コアプロセッサ41は、決定した自己のIDと自己の機器情報(当該スレーブユニットCの用途、特性、接続機器などを示す情報)をマスタユニットMに送信する。マスタユニットMにID及び機器情報を送信した後、スレーブユニットCのコアプロセッサ41は、当該IDを用いてマスタユニットMとの通信が可能となる。
以下の各スレーブユニットも、上述したような動作をする。
すなわち、マスタユニットMからのID付与命令を受信したスレーブユニットのコアプロセッサ41は、処理時間(処理遅延)T0の処理を実行した後、ID判別用のパルスをシリアルトランシーバ43によりシリアル通信線へ送信する。パルスを送信したスレーブユニットのコアプロセッサ41は、一定時間(監視時間)、自己のシリアルトランシーバ43が受信するパルスの数をカウントする。
スレーブユニットが送信するパルスは、当該スレーブユニットよりも上位に接続されているスレーブユニットが送信したパルスと重なる。そのため、各スレーブユニットは、当該スレーブユニットよりも上位に接続されているスレーブユニットが発生するパルスを観測することができない。したがって、各スレーブユニットのシリアルトランシーバ43は、当該スレーブユニットよりも下位に接続されているスレーブユニットが発生したパルスを観測する。よって、各スレーブユニットのコアプロセッサ41は、当該スレーブユニットのシリアルトランシーバ43が観測するパルス数を当該スレーブユニットよりも下位に接続されているスレーブユニットの数として認識する。
スレーブユニットのコアプロセッサ41は、スレーブユニットよりも下位に接続されているスレーブユニットの数、即ち、シリアルトランシーバ43が観測したパルス数に基づいて自己のIDを決定する。IDを決定すると、コアプロセッサ41は、決定したIDを自己のIDとして自己のメモリ42に格納する。さらに、コアプロセッサ41は、決定した自己のIDと自己の機器情報(当該スレーブユニットの用途、特性、接続機器などを示す情報)をマスタユニットMに送信する。マスタユニットMにID及び機器情報を送信した後、当該スレーブユニットのコアプロセッサ41は、当該IDを用いてマスタユニットMとの通信が可能となる。
また、最後のスレーブユニットNは、他のスレーブユニットからのパルスを観測することができない。したがって、スレーブユニットNのコアプロセッサ41は、「0」あるいは「0」を元に演算した結果を自己のIDとして決定し、自己のメモリに格納する。
自己のIDを自己のメモリに格納したスレーブユニットNは、自己のIDと自己の機器情報とをマスタユニットMに送信する。マスタユニットMにID及び機器情報を送信した後、スレーブユニットNのコアプロセッサ41は、当該IDを用いてマスタユニットMとの通信が可能となる。
以上の処理によれば、最もマスタユニットに近いスレーブユニットAは「N−1」、次にマスタユニットに近いスレーブユニットBは「N−2」、・・・、最もマスタユニットから遠いスレーブユニットNは「0」といった各スレーブユニットに固有な値を得ることができ、それぞれに固有なIDを各スレーブユニット自身が自動的に決定することができる。また、マスタユニットMは、各スレーブユニットから各ユニットが決定したIDと機器情報とを取得することにより、各スレーブユニットとの通信が可能となる。
なお、各スレーブユニットは、自己のIDの決定方法として、カウントしたパルス数に任意の数を加算又は減算した値を、自己のIDとしてもよい。また、各スレーブユニットは、任意の数からカウントしたパルス数を減算した値を自己のIDとしてもよい。この場合、各スレーブユニットのIDは、マスタユニットMに近づくほど若くなる。さらに、各スレーブユニットは、スレーブユニットの数からカウントしたパルス数を減算した値を自己のIDとしてもよい。とすると、各スレーブユニットのIDは、マスタユニットに近い順に「1」から割り振られる。この場合、マスタユニットは、スレーブユニットの数を各スレーブユニットに送信する必要がある。
次に、マスタユニット及び各スレーブユニットにおけるパルス(ID判別用のパルス)の監視時間について説明する。
図7は、スレーブユニットAがスレーブユニットNから発信されたパルスをカウントできない監視時間の例を示す図である。
スレーブユニットにおけるID判別用のパルスの監視時間が短い場合、他のスレーブユニットが送信するID判別用のパルスが届く前に、当該スレーブユニットは、パルスのカウントを終了してしまう可能性がある。
図7に示す監視時間では、スレーブユニットAは、スレーブユニットNが発信したパルスをカウントできない。図7に示すように、全スレーブユニットからのID判別用のパルスが受信できないような監視時間が設定されている場合、スレーブユニットは、当該スレーブユニットよりも下位に接続されているスレーブユニットの数を正しく認識することができない。したがって、スレーブユニットは、正しく自己のIDを決定することができない。
全スレーブユニットからのパルスを確認にカウントできるように、各スレーブユニットが他のスレーブユニットからのパルスを監視する監視時間は、マスタユニットM及び各スレーブユニット間の通信遅延時間に応じて決定する必要がある。たとえば、マスタユニットMが物理的な通信距離が最も長くなる最後のスレーブユニットNからのID判別用のパルスをカウントできる監視時間は、マスタユニットMからのID付与命令が最後のスレーブユニットNに到達するまでの通信遅延時間と、最後のスレーブユニットがID付与命令に応じて発信するID判別用のパルスがマスタユニットに到達するまでの通信遅延時間を合計した時間であれば良い。したがって、ID判別用のパルスの監視時間は、信号がマスタユニットから最後のスレーブユニットまで到達するまでの通信遅延時間の2倍以上とすればよい。
また、他の例として、ID判別用のパルスの監視時間は、ある程度長い所定時間(例えば、数秒)を予め設定しておくようにしても良い。この場合、ネットワークシステムは、予め設定した監視時間に応じて、マスタユニットと最後のスレーブユニットとの最大の通信距離を制限するようにしても良い。
また、ID判別用のパルスの監視時間は、各ユニットが確実に全ユニットからのID判別用のパルスをカウントできるトータルの時間でなくともよい。例えば、マスタユニット及び各スレーブユニットは、1つのID判別用のパルスを受信するごとに、一定の監視期間(例えば、100ms)を新たに設定するようにしても良い。つまりマスタユニット及び各スレーブユニットは、1つのパルスを観測する度に、次のパルスを監視するための監視時間を設定していくようにしても良い。
次に、各スレーブユニットが送信するID判別用のパルスの幅について説明する。
まず、ID判別用のパルス幅が狭すぎる場合の例について説明する。
図8は、スレーブユニットが発信するID判別用のパルスが上位のスレーブユニットからのパルスと重ならない状態となる例を示す図である。、図8では、ID判別用のパルス幅が狭く、スレーブユニットBが送信するID判別用のパルスが、当該スレーブユニットBより上位に接続されたスレーブユニットAが送信したID判別用のパルスと重なっていない状態を示している。
各スレーブユニットは、通信設定に係る構成が同一であることを想定しているため、理想的には、各スレーブユニットは、ID付与命令を受信した後に実行する処理の処理時間(処理遅延)T0が同一となることが想定している。しかしながら、実際には各スレーブユニットの構成を完全に同性能とするのは困難である。たとえば、各スレーブユニットに備えられたシリアルトランシーバは、個体差などのため処理時間が異なることが多く、現実には、各スレーブユニットの処理遅延時間は、理想的な処理遅延T0とは異なることが多い。
図8に示す例では、スレーブユニットAがID付与命令を受信した後に実行する処理の処理時間(処理遅延)は、T0ではなく、T0+Ttaであり、スレーブユニットBがID付与命令を受信した後に実行する処理の処理時間(処理遅延)は、T0ではなく、T0+Ttbである。また、Ttaは、Ttbとは異なる値であるものとし、Tta>Ttbである場合を想定するものとする。
なお、図8に点線で示すパルスは、スレーブユニットAが理想的な処理遅延T0で送信するパルスと、スレーブユニットAから理想的な処理遅延T0で送信されるパルスをスレーブユニットBがTma時間後に受信したパルスとを示すものである。
図8に示す例において、スレーブユニットAのコアプロセッサ41は、ID付与命令を受信してからスレーブユニットAにおける処理時間(処理遅延)としてのT0+Tta時間後に、ID判別用のパルスPaaをシリアルトランシーバ43によりシリアル通信線へ送信する。これに対して、スレーブユニットBのコアプロセッサ41は、ID付与命令を受信してからスレーブユニットBにおける処理時間(処理遅延)としてのT0+Ttb時間後に、ID判別用のパルスPbbをシリアルトランシーバ43によりシリアル通信線へ送信する。
図8に示すように、Tta>Ttbである場合、スレーブユニットBのシリアルトランシーバ43は、スレーブユニットAからのID判別用のパルスPaaが到達する前に、ID判別用のパルスPbbを送信する。また、Tma−Ttb>Tnでもあるので、各ID判別用のパルスの幅Tnは、スレーブユニットAとスレーブユニットBとで生じる処理遅延の差を埋めることができない。この結果として、図8に示す例においては、スレーブユニットBがパルスPbbを送信するタイミングは、スレーブユニットAから送信されたパルスPaaを受信するタイミングとは重ならない。
図8に示すように、当該スレーブユニットが送信するID判別用のパルスが上位のスレーブユニットから受信するID判別用のパルスと重ならない場合、当該スレーブユニットは、下位のスレーブユニットからのID判別用のパルスだけでなく、上位のスレーブユニットからのID判別用のパルスも観測される。このような場合、スレーブユニットが観測するID判別用のパルス数は、当該スレーブユニットより下位のスレーブユニットの数と一致しなくなる。このような場合、各スレーブユニットが正しく自己のIDを決定することができなくなる。
発信するパルスが上位のスレーブユニットから受信するパルスと不一致となることを防止するため、本ネットワークシステムでは、各スレーブユニットが発信するID判別用のパルスの幅は、各スレーブユニットにおける処理遅延に差異(誤差)が生じても上位からのパルスと重なるような幅でなければならない。言い換えると、各スレーブユニットが発信するID判別用のパルスの幅は、各スレーブユニット間で生じる処理遅延の差を埋めるような幅に設定すればよい。たとえば、各スレーブユニットが発信するパルスの幅は、各スレーブユニットにおける処理遅延の差のうち最も長いくなる時間差より長くなるような幅に設定する。
次に、パルス幅が広すぎる場合の例について説明する。
図9は、スレーブユニットが発信するID判別用のパルスが下位のスレーブユニットからのパルスと重なった状態となる例を示す図である。図9では、ID判別用のパルス幅が広く、スレーブユニットAが送信するID判別用のパルスが、当該スレーブユニットAより下位に接続されたスレーブユニットBが送信するID判別用のパルスと重なってしまう状態を示している。
まず、スレーブユニットAのコアプロセッサ41は、ID判別用のパルスPaaをシリアルトランシーバ43によりシリアル通信線へ送信する。すると、スレーブユニットBのシリアルトランシーバ43は、スレーブユニットAがパルスPaaを送信してから、スレーブユニットAとスレーブユニットBとの通信遅延時間Tab分だけ遅れて、パルスPaaを受信する。スレーブユニットA及びスレーブユニットBにおける処理時間T0が同じであれば、スレーブユニットBは、スレーブユニットAからパルスPaaを受信するのと同じタイミングでID判別用のパルスPbbを送信する。このスレーブユニットBから送信されたパルスPbbは、スレーブユニットBがパルスPbbを送信してから、スレーブユニットAとスレーブユニットBとの通信遅延時間Tab分だけ遅れて、スレーブユニットAに到達する。
図9に示す例では、Tn>Tab×2であるので、スレーブユニットBが送信してからスレーブユニットAに到達するパルスPbbは、スレーブユニットAが発信中のパルスPaaと重なってしまう。図9では、スレーブユニットAがパルスPbbの受信を開始するタイミングを点線で示し、スレーブユニットAがパルスPaaの送信を終了するタイミングを一点鎖線で示している。
図9に示すような場合、各スレーブユニットで観測されるパルス数は、当該スレーブユニットより下位のスレーブユニットの数とならない。よって、各スレーブユニットは、正しく自己のIDを決定できない。
図9に示すように、あるスレーブユニットが送信するID判別用のパルスが下位のスレーブユニットから受信するID判別用のパルスと重なってしまう場合、当該スレーブユニットは、下位のスレーブユニットからのID判別用のパルスを観測できない。このような場合、スレーブユニットが観測するID判別用のパルス数は、当該スレーブユニットより下位のスレーブユニットの数と一致しなくなり、実際に下位に接続されたスレーブユニットの数よりも少ないカウント数となる。このような場合も、各スレーブユニットが正しく自己のIDを決定することができなくなる。
発信するパルスが下位のスレーブユニットから受信するパルスと重なってしまうことを防止するため、本ネットワークシステムでは、各スレーブユニットが発信するID判別用のパルスの幅は、各スレーブユニット間での通信遅延を考慮して決定される。即ち、ID判別用のパルスの幅は、隣接する各スレーブユニット間の通信遅延の2倍より短くなければならない。したがって、ID判別用のパルス幅は、隣接する各スレーブユニット間の通信遅延の中で最も短い時間の2倍より短い値に設定する。
上述した点を考慮すれば、各スレーブユニットがID付与命令に応じて出力するID判別用のパルスの幅は、各スレーブユニットにおける処理時間(処理遅延)の差のうち最も長い時間差より長く、かつ、隣接する各スレーブユニット間の通信遅延の中で最も短い時間の2倍より短い値に設定される。ID判別用のパルスの幅は、各スレーブユニット内の実処理時間、および、各スレーブユニット間の接続状態などに応じて適宜設定される。例えば、ID判別用のパルス幅は、各スレーブユニットにおける処理時間(処理遅延)T0の半分程度に設定される。
上記実施形態は、マスタユニットと複数のスレーブユニットとが半二重シリアル通信などによってデイジーチェーン接続されるネットワークシステムにおいて、各スレーブユニットが、マスタユニットからのID付与命令に応じてID判別用のパルスを発信し、ID判別用のパルスを発信した後に自己のスレーブユニットよりも下位に接続されたスレーブユニットが発信されたID判別用のパルスの数をカウントし、カウントしたパルス数に基づいて自己のIDを決定する。本実施形態によれば、各スレーブユニットのIDを外部からの入力なしに、各スレーブユニット自身が一意に決定することができる。この結果として、本実施形態のネットワークシステムによれば、高いシステム拡張性を実現でき、かつ、人的な作業によるID設定ミスなどによる通信不良を防止することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。