以下、図面を用いて本発明の実施形態について詳細に説明する。
[1.通信システムの概要]
まず、本実施形態に係る通信システムの概略構成について説明する。
図1に示すように、本実施形態に係る通信システムSは、親装置1と複数の子装置2a,2b,2cとを備えている。ここでは、説明の便宜上、子装置の数を3台として説明するが、子装置の数は、使用される用途や環境に合わせて増設することが可能である。なお、以下においては、複数の子装置2a,2b,2cのうち任意又は全ての子装置を子装置2として説明することがある。
親装置1は、接続ケーブルGを介して子装置2a,2b,2cとの間で通信を行う。子装置2a,2b,2cは、被測定装置4a,4b,4cの電力状態、温度状態、湿度状態を検出する機能を有しており、親装置1は、各被測定装置4a,4b,4cの電力状態、温度状態、湿度状態の情報(以下、「環境情報」という。)を子装置2a,2b,2cから取得する。このように取得された環境情報は、親装置1からコンピュータ装置3へ出力され、コンピュータ装置3により処理される。例えば、コンピュータ装置3は、各被測定装置4a,4b,4cの電力状態、温度状態、湿度状態を監視し、異常があれば異常報知などを行う。親装置1にこのようなコンピュータ装置3の機能を持たせるようにしてもよい。なお、以下においては、複数の被測定装置4a,4b,4cのうち任意又は全ての被測定装置を被測定装置4として説明することがある。
通信システムSは、図1に示すように、親装置1を最上流装置としその下流装置として複数の子装置2a,2b,2cを直列接続している。同図に示す例では、子装置2cが最下流装置となる。このように接続された状態で、親装置1は、接続ケーブルGを介して各子装置2と調歩同期方式で半二重通信を行い、各子装置2から被測定装置4の環境情報を取得する。なお、本実施形態では、EIA−485規格に準拠した通信システムとしている。
通信システムSは、例えばデータセンタで用いられる。この場合、データセンタ内のサーバが被測定装置4となり、サーバの状態の監視が行われる。この通信システムSは、例えばコンビニエンスストアで用いられる。この場合、コンビニエンスストア内の冷蔵庫が被測定装置4となり、冷蔵庫の状態が監視される。なお、1つのサーバや冷蔵庫の複数箇所に子装置2を設置してもよい。また、通信システムSは、これらの適用例に限られず、種々の場所や装置に適用することができる。
また、親装置1と子装置2との間の通信に用いるデータフォーマットは、図2に示すように、送信先のアドレスと送信元のアドレスが格納されるアドレス部5aと要求内容や応答内容などの情報が格納されるデータ部5bとを含む。例えば、親装置1から子装置2aへ被測定装置4aの温度状態の検出を要求するとき、親装置1からは、要求信号が接続ケーブルGに送信される。この要求信号は、アドレス部5aに送信先のアドレスとして子装置2aのアドレスが格納され、送信元のアドレスとして親装置1のアドレスが格納され、データ部5bに温度状態の検出要求を示す情報が格納された信号である。子装置2aは、親装置1からの要求信号に応じて、被測定装置4aの温度状態の検出を行い、その結果を含む応答信号を接続ケーブルGに送信する。この応答信号は、アドレス部5aに送信先のアドレスとして親装置1のアドレスが格納され、送信元のアドレスとして子装置2aのアドレスが格納され、被測定装置4aの温度状態の情報がデータ部5bに格納された信号である。これにより、親装置1は子装置2aから被測定装置の温度状態を把握することができる。
本実施形態の通信システムSは、設定モードと運転モードの2つのモードで動作する。設定モードは、直列接続されている各子装置2のアドレスを設定するモードである。運転モードは、設定モードで設定されたアドレスに基づいて、親装置1が各子装置2に要求信号を送信し、この要求信号に対して親装置1が子装置2から応答信号を受信するモードである。通信システムSは、まず、設定モードで動作して各子装置2のアドレスを設定した後に、運転モードで動作する。また、運転モード中に、異常が検出されると設定モードに戻り、その後再び運転モードで動作する。
次に、図3に親装置1及び子装置2の機能構成を示す。なお、ここでは親装置1と子装置2との間の通信のために必要な構成のみを説明し、コンピュータ装置3の構成及び被測定装置4の状態検出の構成は説明を省略するものとする。
まず、親装置1の機能構成について説明する。図3に示すように、親装置1は、制御部10、通信回路11(第1通信回路の一例)、終端抵抗12、コネクタ13(第1コネクタの一例)などを有している。コネクタ13は、一対の通信線L1,L2及び制御線L3,L4などから構成される接続ケーブルGを介して子装置2aに接続される。
通信線L1,L2は、コネクタ13を介して通信回路11に接続されると共に、終端抵抗12により終端される。通信回路11は、コネクタ13を介して通信を行う通信インターフェイスであり、例えば、制御部10からの制御によって通信線L1,L2への要求信号を送信し、通信線L1,L2から送信される応答信号や最後尾信号を受信して制御部10へ出力する。
制御線L3,L4は、コネクタ13を介して制御部10に接続されている。制御線L3は、子装置2に接続された通信線L1,L2(接続ケーブルG)がコネクタ13に接続されていることを示す接続信号の伝送に用いられる。また、制御線L4は、親装置1に接続されている子装置2を通信可能な状態とするか否かを制御する状態制御信号(許可信号又は禁止信号)の伝送に用いられる。なお、図示していないが、接続ケーブルGには、電源線やグランド線などが含まれており、コネクタ13には、グランド線を接続する端子や電源線を接続する端子なども有している。
制御部10には、アドレス通知手段21(第1アドレス通知手段の一例)、通信制御手段22、子装置検出手段23、子装置通信許可手段24などが含まれる。
アドレス通知手段21は、通信線L1,L2によりコネクタ13を介して接続された子装置2に対して、通信回路11を介してアドレスを通知する。このアドレスは、コネクタ13を介して接続された子装置2に割り当てられるアドレスである。なお、アドレスの生成方法については後述する。
通信制御手段22は、最下流の子装置2cから非接続の情報である最後尾信号を受信したとき、運転モードに移行する。この運転モードは、親装置1が、通信線L1,L2を介して接続された子装置2から被測定装置4の環境情報を取得する動作モードである。環境情報を子装置2から取得するために、通信制御手段22は、要求信号を通信回路11を介して通信線L1,L2に送信する。この要求信号に対して子装置2から通信回路11を介して応答信号を取得する。環境情報は、この応答信号に含まれている。取得した被測定装置4の環境情報は、コンピュータ装置3(図1参照)に出力され、コンピュータ装置3で処理される。
子装置検出手段23は、制御線L3からの接続信号に基づいて、子装置2に接続された通信線L1,L2がコネクタ13に接続されたことを検出する。また、子装置通信許可手段24は、コネクタ13を介して子装置2が接続されたとき、この子装置2を通信可能な状態とするための許可信号を制御線L4に出力し、この子装置2の通信を許可する。
次に、子装置2の機能構成について説明する。図3に示すように、子装置2は、制御部30、通信回路31(第2通信回路の一例)、終端抵抗32、接続通知手段33、終端制御手段34、上流側コネクタ35(第2コネクタの一例)、下流側コネクタ36(第3コネクタの一例)などを有している。上流側コネクタ35は、接続ケーブルGを介して直上流の装置として親装置1又は他の子装置2(以下、「上流装置」とも呼ぶ。)に接続され、下流側コネクタ36は接続ケーブルGを介して直下流の装置として他の子装置2(以下、「下流装置」とも呼ぶ。)に接続される。
接続ケーブルGを構成する通信線L1,L2は、上流側コネクタ35及び下流側コネクタ36を介して通信回路31に接続される。子装置2の下流側に下流側コネクタ36を介して他の子装置2が接続されていない場合には、通信線L1,L2は、終端抵抗32により終端される。通信回路31は、例えば、制御部30からの制御によって上流側コネクタ35に接続される通信線L1,L2へ応答信号を送信し、また、この通信線L1,L2から送信される要求信号を受信して制御部10へ出力する。
接続通知手段33は、上流側コネクタ35を介して上流装置に接続されたときに、接続信号を上流側コネクタ35を介して制御線L3に出力する。終端制御手段34は、終端抵抗32による終端を行うか否かを制御する。終端制御手段34は、下流側コネクタ36を介して接続信号が入力されない場合に、終端抵抗32により通信回路31を終端するように制御する。
また、制御部30には、アドレス記憶手段41、アドレス通知手段42(第2アドレス通知手段の一例)、通信制御手段43、増設子装置検出手段44、増設子装置通信許可手段45などが含まれる。
アドレス記憶手段41は、上流装置から上流側コネクタ35を介して通知されるアドレスを記憶する。このアドレスは、通信制御手段43が親装置1との間で通信回路31を介して通信を行うための装置識別情報である。アドレス通知手段42は、通信線L1,L2より下流側コネクタ36を介して接続された下流装置に対して、通信回路31を介してアドレスを通知する。このアドレスは、下流装置である子装置2に割り当てられるアドレスであり、アドレス記憶手段41に基づいてアドレス通知手段42が生成するものである。なお、アドレス通知手段42は、上流装置及び自装置とは異なるアドレスを割り当てるようにしている。
通信制御手段43は、アドレス記憶手段41に記憶したアドレスに基づき、上流側コネクタ35に接続されている通信線L1,L2に送信された親装置1からの要求信号を受信する。すなわち、通信制御手段43は、アドレス記憶手段41に記憶した自装置のアドレスと一致するアドレスがアドレス部5aに含まれている要求信号を自装置宛の要求信号であると判定して受信する。要求信号を受信すると、通信制御手段43は、要求信号に応じた応答信号を、通信回路31を介して通信線L1,L2に送信する。通信制御手段43は、アドレス記憶手段41に記憶した自装置のアドレスを送信元アドレスとしてアドレス部5aに格納し、要求信号による要求に応じた応答をデータ部5bに格納した応答信号を通信回路31を介して通信線L1,L2に送信する。
増設子装置検出手段44は、下流側コネクタ36に接続されている制御線L3から入力される接続信号に基づいて、下流側コネクタ36に接続ケーブルGを介して下流側に子装置2が接続されたことを検出する。また、増設子装置通信許可手段45は、下流側コネクタ36を介して子装置2が接続されたとき、この子装置2を通信可能な状態とするための許可信号を下流側コネクタ36に接続されている制御線L4に出力し、この子装置2の通信を許可する。また、下流側コネクタ36を介して下流装置が接続されていない場合、増設子装置検出手段44は、通信回路31を介して通信線L1,L2へ非接続の情報である最後尾信号を送信する。
次に、設定モードでの動作を説明する。親装置1や子装置2は、電源がオン状態となったときや図示しないリセットスイッチが操作されたときなどに、設定モードでの動作を開始する。なお、子装置2は上流装置から通信が許可されるまでは、通信線L1,L2へ信号の出力は行われない。
まず、親装置1の子装置検出手段23が、接続ケーブルGを介してコネクタ13に子装置2aが接続されているか否かを判定する。子装置2aが接続されているときには、子装置通信許可手段24が通信回路11を介して子装置2aに対して許可信号を送信し、子装置2aの通信を許可する。これにより、子装置2aは、通信回路31を介して通信可能な状態となる。そして、アドレス通知手段21がコネクタ13に接続されている子装置2aへ当該子装置2aのアドレスを通信回路11を介して通知する。子装置2aは、親装置1から通知される自装置のアドレスをアドレス記憶手段41に記憶する。これにより子装置2aのアドレス設定が終了する。この子装置2aのアドレスは、親装置1のアドレスとは異なるアドレスである。
次に、子装置2aにおける増設子装置検出手段44が、接続ケーブルGを介して下流側コネクタ36に下流の子装置2bが接続されているか否かを判定し、子装置2bが接続されているときには、増設子装置通信許可手段45が子装置2bの通信を許可する。これにより、子装置2bは、通信回路31を介して通信可能な状態となる。そして、子装置2aのアドレス通知手段42が下流側コネクタ36に接続されている子装置2bへ当該子装置2bのアドレスを通信回路31を介して通知する。子装置2bは、上流の子装置2aから通知される自装置のアドレスをアドレス記憶手段41に記憶する。これにより子装置2bのアドレス設定が終了する。この子装置2bのアドレスは、親装置1や子装置2aのアドレスとは異なるアドレスである。その後、同様に、子装置2cは子装置2bから通知される自装置のアドレスをアドレス記憶手段41に記憶する。
次に、子装置2cにおける増設子装置検出手段44が、接続ケーブルGを介して下流側コネクタ36に下流の子装置2が接続されているか否かを判定する。図3に示す例では、下流に子装置2が接続されていないため、子装置2cの通信制御手段43は、非接続の情報である最後尾信号を通信回路31を介して送信する。親装置1は、通信回路11を介して最後尾信号を受信すると、子装置2のアドレス設定が終了したと判定して、設定モードを終了し、運転モードに移行する。
このように通信システムSでは、子装置2のアドレス設定を自動的に行い、しかも、アドレス設定が終了すると自動的に運転モードに移行する。従って、通信システムSの設定者は、煩雑な操作や設定が不要となり、子装置2の増設性を向上させることができる。
また、接続ケーブルGを介して下流側コネクタ36に下流の子装置2が接続されていないとき、子装置2cの終端制御手段34は、終端抵抗32により通信回路31を終端する。これにより、スイッチを設定することなく、終端設定を行うことができる。従って、通信システムSの設定者は、煩雑な操作や設定が不要となり、子装置2の増設性を向上させることができる。
また、環境情報を送受信する場合には、通信の高速性より省配線、低消費電力等経済性を優先することが望まれる。そのため、本実施形態の通信システムSでは、上記特許文献1に記載されている同期クロック、同期検出が必須となるクロック同期通信ではなく、調歩同期方式で通信を行うようにしている。これにより、ハードウェア構成を簡易にすることができ、例えば、シングルチップCPUのみで子装置2を実現させることも可能となる。また、クロック同期通信の場合には、クロック線が必要となるため、信号の遅延を抑制するために、接続ケーブルGをシールドする等の対策が必要であり、構成が複雑になる。一方、本実施形態の通信システムSでは、クロック線が不要であるため、このような問題を回避することができる。
また、運転モードにおいては、親装置1は、通信が必要となる子装置2に対してのみ要求信号を送信すればよいため、フレームデータを用いた時分割多重方式に比べ、通信の効率性や高速性を向上させることができる。
なお、子装置2のアドレスは、上述したように、子装置2のそれぞれに異なるアドレスが割り当てられるように制御される。たとえば、子装置2のアドレス通知手段42は、自装置のアドレス記憶手段41に記憶されているアドレスに所定数(たとえば、「1」)を加算することにより、子装置2のそれぞれに異なるアドレスを割り当てることができる。また、アドレス通知手段42は、上流装置のすべてのアドレスも下流装置に通知するようにしてもよく、この場合、アドレス通知手段42は、上流装置から通知された上流装置及び自装置のアドレスと一致しないアドレスを下流装置へ通知する。
[2.親装置1の具体的構成及び動作の一例]
次に、親装置1の具体的構成及びその動作の一例について説明する。なお、図示していないが、接続ケーブルGには、電源線やグランド線などが含まれており、後述するコネクタ13には、グランド線を接続する端子や電源線を接続する端子なども設けられている。
図4に示すように、親装置1は、制御部10、通信回路11、終端抵抗12、コネクタ13、npnトランジスタ15、プルダウン抵抗16,17などから構成される。なお、親装置1には、図示しない通信インターフェイスを備えており、この通信インターフェイスを介して制御部10はコンピュータ装置3と通信を行う。
制御部10は、CPU51、ROM52、RAM53、受信ポート54、送信ポート55、出力ポート56,58,59、入力ポート57などから構成され、これらは通信用バス60に接続されている。CPU51がROM52に記憶されているプログラムを実行することにより動作し、制御部10として、親装置1を構成する各部を動作させ、RAM53をワーキングメモリとして使用して、親装置1が備える各種機能を実行する。すなわち、制御部10は、上述したアドレス通知手段21、通信制御手段22、子装置検出手段23等として機能する。また、制御部10は、npnトランジスタ15及びプルダウン抵抗16と共に、子装置通信許可手段24として機能する。また、ROM52には、親装置1のアドレスと、コネクタ13に接続される子装置2のアドレスとを記憶する記憶領域を有しており、この記憶領域はアドレス記憶手段として機能する。ここでは、ROM52に記憶される親装置1のアドレスを「0」とし、子装置2のアドレスを「1」とする。
通信回路11は、差動アンプ61,62から構成されている。差動アンプ61は、送信ポート55から出力された信号を増幅して、通信線L1,L2に出力する送信手段として機能する。出力ポート56は差動アンプ61に接続されている。差動アンプ61は、出力ポート56からON信号が出力されたとき、送信ポート55から出力された信号を増幅して通信線L1,L2に出力し、出力ポート56からOFF信号が出力されたとき、出力をハイインピーダンスにして通信線L1,L2に影響を及ぼさないようにしている。一方、差動アンプ62は、子装置2から通信線L1,L2に出力された各種の信号を増幅して受信ポート54へ出力する受信手段として機能する。CPU51は、要求信号などを送信するときには、要求信号などを生成するためのデータを送信ポート55に入力し、出力ポート56からON信号を出力させる。また、CPU51は、受信ポート54から出力されるデータを取得する。なお、CPU51は、受信ポート54からの出力を取得する必要がないときには、出力ポート59にOFF信号を出力して、受信ポート54への信号の入力を禁止するようにしている。なお、受信ポート54は、シリアル信号をパラレル信号に変換する機能を有しており、送信ポート55は、パラレル信号をシリアル信号に変換する機能を有している。
入力ポート57は、コネクタ13を介して制御線L3に接続されており、子装置2が接続されていない場合にはプルダウン抵抗17を介してLowレベルの電圧が入力される。また、子装置2が接続されている場合には制御線L3にHighレベルの接続信号が入力される。CPU51は、子装置検出手段23として、入力ポート57に入力される電圧レベルに応じて、子装置2が接続されているか否かを検出する。
出力ポート58は、npnトランジスタ15のゲートに接続されており、npnトランジスタ15のON/OFFを制御する。npnトランジスタ15のコレクタは、コネクタ13を介して制御線L4に接続されており、状態制御信号が出力される。本実施形態では、状態制御信号として、許可信号と禁止信号とがある。CPU51は、コネクタ13を介して子装置2が接続されたとき、出力ポート58を制御して、この子装置2を通信可能な状態とするための許可信号を制御線L4に出力する。出力ポート58からHighレベルの信号が出力されたとき、制御線L4へ許可信号が出力され、制御線L4はLowレベルの電圧となる。一方、出力ポート58からLowレベルの信号が出力されたとき、npnトランジスタ15がOFFとなってnpnトランジスタ15が制御線L4に影響を及ぼさないオープン状態となり、これが禁止信号となる。npnトランジスタ15がオープン状態であって、コネクタ13に子装置2が接続されているときには、後述のように子装置2にプルアップ抵抗98があるため、制御線L4はHighレベルの電圧となる。
次に、設定モードにおける親装置1の動作について、図5を参照しつつ具体的に説明する。
まず、親装置1は、自装置の初期化を行う(ステップS11)。例えば、CPU51は、RAM53の初期化等を行う。なお、初期化が終了するまで、出力ポート58の出力は、ハイインピーダンス又はLowレベルになるように構成されている。自装置の初期化が終了すると、制御部10は、設定モードに移行し、出力ポート58から出力される信号をLowレベルとし、npnトランジスタ15をOFF状態にする。これにより、子装置2がコネクタ13に接続されている場合であっても、子装置2は通信禁止の状態となる(ステップS12)。また、CPU51は、図示しないタイマでの計時を開始する。また、親装置1の電源がOFF状態のときや初期化動作のとき(CPU51が動作プログラムを実行する前)においても、出力ポート58は、Lowレベルの電圧を出力するか、又はハイインピーダンス状態となるように構成されている。
次いで、制御部10は、子装置検出手段23として、子装置2がコネクタ13に接続されているか否かを判定(ステップS13)。具体的には、CPU51は、入力ポート57にHighレベルの接続信号が入力されている場合に、子装置2が接続されていると判定し、それ以外の場合に、子装置2が接続されていないと判定する。子装置2が接続されていないと判定すると(ステップS13:NO)、制御部10は、ステップS13で待機する。
一方、子装置2が接続されていると判定すると(ステップS13:YES)、制御部10は、npnトランジスタ15やプルダウン抵抗16と共に子装置通信許可手段24として、子装置の通信を許可する(ステップS14)。具体的には、CPU51は、出力ポート58からHighレベルの電圧を出力して、制御線L4にLowレベルの許可信号を出力する。
次いで、制御部10は、第1アドレス通知手段として、アドレス通知信号を子装置2に送信する(ステップS15)。具体的には、CPU51は、まず、親装置1のアドレスとコネクタ13に接続される子装置2のアドレスとをROM52から読み出す。そして、CPU51は、親装置1のアドレスを送信元のアドレスとして、子装置2のアドレス「1」を送信先のアドレスとしてアドレス部5aに格納し、アドレス通知を示す情報をデータ部5bに格納したアドレス通知用データを生成する。CPU51は、このアドレス通知用データを、送信ポート55に入力し、通信回路11を介してアドレス通知信号として通信線L1,L2に出力する。
その後、制御部10は、規定時間内に最後尾信号を受信したか否かを判定する(ステップS16)。具体的には、CPU51は、予めROM52に記憶されている規定時間の情報をROM52から読み出し、さらに、図示しない前記タイマから計時情報を取得して、設定モードに移行して規定時間経過しているか否かを判定する。CPU51は、設定モードに移行して規定時間経過するまでに、子装置2から通信線L1,L2に送信された最後尾信号を受信ポート54を介して取得したときに、規定時間内に最後尾信号を受信したと判定する。制御部10は、規定時間内に最後尾信号を受信しなかったときは(ステップS16:NO)、ステップS12に戻り処理を繰り返す。一方、最後尾信号を受信したと判定したときは(ステップS16:YES)、制御部10は、運転モードに移行する。すなわち、制御部10は、最下流装置となる子装置2を検出した後に、各子装置2との間で通信を行って、各子装置2から環境情報の取得を開始する。
最後尾信号は、子装置2から送信されるものであり、また、送信先のアドレスはこの子装置2にアドレスを通知した子装置2のときがあるが、制御部10は最後尾信号の送信先のアドレスに関係なく、最後尾信号を受信するものとする。具体的には、CPU51は、受信ポート54を介して取得した信号のデータ部5bに最後尾信号である旨を示す情報が含まれているとき、取得した信号が最後尾信号であると判定する。
また、最後尾信号には、送信元の子装置2のアドレスがアドレス部5aに含まれており、CPU51は、この情報に基づいて、接続されている子装置2の数、及び、各子装置2のアドレスを認識することができる。例えば、各子装置2に「1」から順にアドレスを割り当てる場合、最後尾信号に送信元のアドレスとして「3」が含まれている場合には、3台の子装置2が接続され、各子装置2のアドレスが、上流側から順に「1」,「2」,「3」となる。
次に、運転モードにおける親装置1の動作について、図6を参照しつつ具体的に説明する。
まず、制御部10は、子装置2から環境情報を取得する契機となったか否かを判定する(ステップS21)。具体的には、RAM53に各子装置2から環境情報を取得する契機の情報が記憶されており、CPU51はRAM53に記憶された情報に基づいて、子装置2から環境情報を取得する契機となったか否かを判定する。この処理において、制御部10は、子装置2から環境情報を取得する契機となるまで待ち(ステップS21:NO)、子装置2から環境情報を取得する契機となったと判定すると(ステップS21:YES)、処理をステップS22に移行する。
ステップS22において、制御部10は、通信制御手段22として、取得契機となった子装置2に対して要求信号を通信回路11を介して通信線L1,L2へ送信する(ステップS22)。具体的には、CPU51は、送信先のアドレスとして取得契機となった子装置2のアドレスとし、送信元のアドレスとして親装置1のアドレスとしてアドレス部5aを構成し、データ部5bには環境情報の要求を示す情報を格納した要求信号用データを生成する。CPU51は、要求信号用データを、送信ポート55に入力し、通信回路11を介して要求信号として通信線L1,L2に出力する。この要求信号に対応する応答信号を受信すると、制御部10は、受信した応答信号に含まれる環境情報をコンピュータ装置3に送信する(ステップS23)。具体的には、CPU51は、ステップS22で要求信号を送信した子装置2から通信線L1,L2に送信された応答信号を受信ポート54を介して取得したときに、この応答信号のデータ部5bに含まれる環境情報を図示しない通信インターフェイスを介してコンピュータ装置3へ送信する。CPU51は、応答信号のアドレス部5aに含まれる子装置2のアドレスも環境情報と同様にコンピュータ装置3へ送信する。
次いで、制御部10は、通信異常を検出したか否かを判定する(ステップS24)。ここでは、親装置1のコネクタ13に接続されている子装置2からの応答がなかった回数が所定回数に達したときに、制御部10は、通信異常を検出するものとする。通信異常を検出しなかったときは(ステップS24:NO)、制御部10はステップS21に戻り処理を繰り返す。一方、通信異常を検出したときは(ステップS24:YES)、制御部10は設定モードのステップS12に戻り、処理を行う。このように子装置2との通信が行えないような場合などには、運転モードから設定モードに移行して、各子装置2を再起動してアドレスの再設定を行う。
[3.子装置2の具体的構成及び動作の一例]
次に、子装置2の具体的構成及びその動作の一例について説明する。なお、図示していないが、接続ケーブルGには、電源線やグランド線などが含まれており、後述する上流側コネクタ35や下流側コネクタ36には、グランド線を接続する端子や電源線を接続する端子なども設けられている。
図7に示すように、子装置2は、制御部30、通信回路31、終端抵抗32、接続通知手段33、終端制御手段34、出力回路37などから構成される。なお、被測定装置4から環境情報を取得するために、温度センサ、湿度センサ、電力計などを備えているが同図では省略している。
制御部30は、CPU71、ROM72、RAM73、出力ポート74,75,78、入力ポート79、受信ポート76、送信ポート77とから構成され、通信用バス82により互いに接続されている。CPU71がROM72に記憶されているプログラムを実行することにより動作し、制御部30として、子装置2を構成する各部を動作させ、子装置2が備える各種機能を実行する。すなわち、制御部30は、アドレス通知手段42と、通信制御手段43、増設子装置検出手段44等として機能する。また、RAM73には、自装置のアドレスを記憶する記憶領域を有しており、アドレス記憶手段41として機能する。また、RAM73には、運転モード移行時の接続状態(下流側コネクタ36に他の子装置2が接続されているか否か、すなわち、自装置が最下流装置か否か)を記憶するための記憶領域が確保されている。なお、受信ポート76は、シリアル信号をパラレル信号に変換する機能を有しており、送信ポート77は、パラレル信号をシリアル信号に変換する機能を有している。
通信回路31は、差動アンプ85,86から構成されている。差動アンプ85は、送信ポート77から出力された信号を増幅して、通信線L1,L2に出力する送信手段として機能する。出力ポート75は差動アンプ85に接続されている。差動アンプ85は、出力ポート75からON信号が出力されたとき、送信ポート77から出力された信号を増幅して通信線L1,L2に出力し、出力ポート75からOFF信号が出力されたとき、出力をハイインピーダンスにして通信線L1,L2に影響を及ぼさないようにしている。一方、差動アンプ86は、親装置1や他の子装置2から通信線L1,L2に出力された各種の信号を増幅して受信ポート76へ出力する受信手段として機能する。CPU71は、要求信号などを送信するときには、その信号を生成するためのデータを送信ポート77に入力し、出力ポート75からON信号を出力させる。また、CPU71は、受信ポート76から出力されるデータを取得する。なお、CPU71は、受信ポート76からの出力を取得する必要がないときには、出力ポート74にOFF信号を出力して、受信ポート76への信号の入力を禁止するようにしている。
終端制御手段34は、フォトMOSリレー90、プルアップ抵抗91,93、プルダウン抵抗95、npnトランジス92,94によって構成されている。この終端制御手段34は、下流側コネクタ36に子装置2が接続されないとき、フォトMOSリレー90がONとなって、終端抵抗32が通信線L1,L2間に終端抵抗32が接続され、通信回路31が終端される。すなわち、下流側コネクタ36に子装置2が接続されないとき、制御線L3にHighレベルの接続信号が入力されない。そのため、npnトランジスタ94のベースがLowレベルとなり、npnトランジスタ94がOFFとなり、npnトランジスタ92のベースがプルアップ抵抗93によりHighレベルとなって、npnトランジスタ92がONとなる。その結果、フォトMOSリレー90に制御電流が流れて、フォトMOSリレー90がONとなる。フォトMOSリレー90がONとなると、終端抵抗32が通信線L1,L2間に終端抵抗32が接続され、通信回路31が終端される。
出力ポート78は、npnトランジスタ97及びプルダウン抵抗96を有する出力回路37と共に、増設子装置通信許可手段45として機能する。出力ポート78の出力がHighレベルの電圧となったとき、npnトランジスタ97がONとなって、制御線L4がLowレベルとなる。これにより、増設子装置通信許可手段45として、下流に接続された子装置2を通信可能な状態とするためのLowレベルの許可信号が制御線L4に出力される。
CPU71のリセット端子RSTは、上流側コネクタ35を介して制御線L4に接続されている。上流に子装置2が接続されていない場合にはプルアップ抵抗98により、Highレベルの禁止信号がリセット端子RSTに入力されて、CPU71は動作を停止してリセット状態となる。また、上流に子装置2が接続されている場合であっても、上流側コネクタ35を介してLowレベルの許可信号がリセット端子RSTに入力されておらず、Highレベルの禁止信号がリセット端子RSTに入力されていれば、CPU71はリセット状態となる。一方、上流側コネクタ35を介してLowレベルの許可信号がリセット端子RSTに入力されると、CPU71はリセット状態を解除して動作を開始する。
子装置2では、制御線L3は、上流側コネクタ35を介して電源電圧Vaに接続される。これにより、上流装置へHighレベルの接続信号が出力される。
次に、設定モードにおける子装置2の動作について、図8及び図9を参照しつつ具体的に説明する。
子装置2の終端制御手段34は、下流側コネクタ36に他の子装置2が接続されているか否かを検出する(ステップS31)。具体的には、終端制御手段34は、下流側コネクタ36において制御線L3にHighレベルの接続信号が入力されている場合に、npnトランジスタ94がONとなり、npnトランジスタ92のベースがLowレベルの電圧となることで、下流側コネクタ36への子装置2の接続を検出する。
終端制御手段34は、下流側コネクタ36への子装置2の接続を検出しないとき(ステップS31:NO)、処理をステップS33に移行する。このとき、npnトランジスタ94がOFFであり、npnトランジスタ92のベースがHighレベルの電圧となって、通信線L1,L2間に終端抵抗32が接続された状態となる。一方、下流側コネクタ36への子装置2の接続を検出すると、終端制御手段34は、終端抵抗32を切断する(ステップS32)。具体的には、制御線L3の電圧がHighレベルとなるため、npnトランジスタ92のベースがLowレベルの電圧となり、フォトMOSリレー90がOFFとなって、通信線L1,L2間に終端抵抗32が接続されない。
次いで、子装置2は、下流側の子装置2の通信を禁止する(ステップS33)。具体的には、このとき、リセット端子RSTには禁止信号が入力されているためCPU71は動作していないが、出力ポート78からの出力はLowレベルの電圧又はハイインピーダンス状態となって禁止信号が出力される。そのため、npnトランジスタ97はOFFとなり、下流側コネクタ36の制御線L4にはLowレベルの電圧にならない。これにより、下流側コネクタ36に接続された下流側の子装置2では、上流側コネクタ35の制御線L4の電圧がHighレベルとなって、下流側の子装置2のCPUの動作が停止して、下流側の子装置2の通信が禁止される。
次いで、子装置2は、上流側コネクタ35に接続された親装置1又は子装置2から、通信が許可されるための許可信号を制御線L4を介して受信したか否かを検出する(ステップS34)。具体的には、CPU71のリセット端子RSTにLowレベルの電圧が入力されたときに、許可信号が入力されたことを検出する。リセット端子RSTに許可信号が入力されるとCPU71が起動する。許可信号を検出していないときは(ステップS34:NO)、許可信号を受信するまでステップS34で待機する。一方、許可信号を検出したときは(ステップS34:YES)、制御部30は、自装置の初期化を行う(ステップS35)。例えば、CPU71は、RAM73の初期化等を行う。また、CPU71は、図示しないタイマでの計時を開始する
その後、子装置2の制御部30は、上流側コネクタ35に接続された親装置1又は子装置2からアドレス通知信号を受信するまで待機する(ステップS36)。なお、この時点では、制御部30は自装置のアドレスを有していないため、通信線L1,L2上の信号が自身宛てのデータであるか否かを判別することができない。そのため、制御部30は、送信先のアドレスに関係なく、データ部5bにアドレス通知を示す情報があるときに自装置へのアドレス通知信号であると認識するように構成されている。
アドレス通知信号を受信すると、制御部30は、受信したアドレス通知信号のアドレス部5aに含まれる自装置のアドレスをRAM73に設定する(ステップS37)。
次いで、制御部30は、増設子装置検出手段44として、下流側コネクタ36に子装置2(下流側の子装置2)が接続されているか否かを判定する(ステップS38)。具体的には、CPU71は、入力ポート79に入力されている電圧がLowレベルとなっている場合に、下流側に子装置2が接続されていると判定する。下流側に子装置2が接続されていないと判定すると(ステップS38:NO)、制御部30は、通信制御手段43として、アドレス通知信号に含まれる送信元のアドレスに対し、最後尾信号を送信する(ステップS39)。具体的には、CPU71は、RAM73に記憶したアドレスを送信元のアドレスとし、アドレス通知信号に含まれる送信元のアドレスを送信先のアドレスとしてアドレス部5aに格納し、最後尾を示す情報をデータ部5bに格納した最後尾信号用データを生成する。CPU71は、この最後尾信号用データを、送信ポート77に入力し、通信回路31を介して最後尾信号として通信線L1,L2に出力する。
一方、下流に子装置2が接続されていると判定すると(ステップS38:YES)、制御部30は、通信制御手段43として、アドレス通知信号に含まれる送信元のアドレスに対し、完了信号を送信する(ステップS40)。具体的には、CPU71は、RAM73に記憶したアドレスを送信元のアドレスとし、アドレス通知信号に含まれる送信元のアドレス(上流側コネクタ35に接続された親装置1又は子装置2のアドレス)を送信先のアドレスとしてアドレス部5aに格納し、非最後尾を示す情報をデータ部5bに格納した完了信号用データを生成する。CPU71は、この完了信号用データを、送信ポート77に入力し、通信回路31を介して完了信号として通信線L1,L2に出力する。
次いで、制御部30は、増設子装置通信許可手段45として、下流の子装置の通信を許可する(ステップS41)。具体的には、CPU71は、出力ポート78からHighレベルの電圧を出力して、npnトランジスタ97を介してLowレベルの許可信号を制御線L4に出力する。
次いで、制御部30は、アドレス通知手段42として、RAM73に記憶した自装置のアドレスに基づいて、下流側の子装置2のアドレスを生成し、生成したアドレスを含むアドレス通知信号を、下流側の子装置2に送信する(ステップS42)。具体的には、CPU71は、自装置のアドレスをRAM73から読み出す。そして、CPU71は、自装置のアドレスに「1」を加算して下流側の子装置2のアドレスを生成する。すなわち、「自装置のアドレス+1」を下流の子装置2のアドレスとして生成する。CPU71は、自装置のアドレスを送信元のアドレスとし、下流側の子装置2のアドレスを送信先のアドレスとしてアドレス部5aに格納し、アドレス通知を示す情報をデータ部5bに格納したアドレス通知用データを生成する。CPU71は、このアドレス通知用データを、送信ポート77に入力し、通信回路31を介してアドレス通知信号として通信線L1,L2に出力する。
その後、制御部30は、規定時間内に応答があったか否かを判定する(ステップS43)。ここでは、CPU71は、アドレス通知信号を送信した下流側の子装置2から、最後尾信号又は完了信号を受信ポート76を介して取得したときに応答があったと判定する。また、CPU71は、予めROM72に記憶されている規定時間の情報をROM72から読み出し、図示しないタイマから計時情報を取得して、設定モードに移行して規定時間経過しているか否かを判定する。規定時間内に応答がなかったときは(ステップS43:NO)、制御部30は、ステップS44に移行し、リトライが規定回数を超過したか否かを判定する。すなわち、CPU71は、ステップS42によりアドレス通知信号を通信回路31を介して送信した回数がROM72に記憶した規定回数を超過したか否かを判定する。
規定回数を超過していないと判定すると(ステップS44:NO)、制御部30は、リトライ回数をインクリメントし、その後、下流側の子装置2の通信を禁止し(ステップS45)、ステップS41に戻り処理を繰り返す。なお、制御部30は、下流側の子装置2の通信を禁止するとき、出力ポート78からLowレベルの電圧を出力して、npnトランジスタ97をOFFにする。一方、規定回数を超過したと判定すると(ステップS44:YES)、制御部30は自装置の制御動作を停止して自装置を停止する(ステップS46)。制御部30の制御動作が停止したとき、出力ポート78の出力はLowレベルの電圧又はハイインピーダンス状態となる。これにより、npnトランジスタ97はOFF状態となり、下流側コネクタ36に接続された子装置2の動作が停止することになる。
一方、ステップS43において、規定時間内に応答があったと判定したときは(ステップS43:YES)、制御部30は、運転モードに移行する。また、このとき、CPU71は、自装置が最下流装置であるか否かの情報を、RAM73に記憶する。
次に、運転モードにおける子装置2の動作について、図10を参照しつつ具体的に説明する。
子装置2の制御部30は、通信制御手段として、親装置1からの要求信号を受信したか否かを判定する(ステップS51)。具体的には、CPU71は、親装置1からの自装置宛の要求信号を受信ポート76を介して取得したときに要求信号を受信したと判定する。なお、自装置宛の要求信号か否かは、要求信号のアドレス部5aの送信先のアドレスがRAM73に記憶した自装置のアドレスと一致するか否かにより判定される。この処理において、要求信号を受信していないと判定すると(ステップS51:NO)、制御部30は、処理をステップS54に移行する。一方、要求信号を受信したと判定すると(ステップS51:YES)、制御部30は、子装置2に接続されている被測定装置4から環境情報を取得する(ステップS52)。すなわち、CPU71は、図示しない温度センサや湿度センサから被測定装置4の温度や湿度などの環境情報を取得する。その後、制御部30は、取得した環境情報に基づいて応答信号を生成し、親装置1に送信する(ステップS53)。具体的には、CPU71は、アドレス部5aに送信先のアドレスとして親装置1のアドレスを格納し、送信元のアドレスとして自装置のアドレスを格納し、データ部5bに環境情報を格納して応答信号用データを生成する。CPU71は、この応答信号用データを、送信ポート77に入力し、通信回路31を介して応答信号として通信線L1,L2に出力する。
ステップS54において、制御部30は、下流側コネクタ36の接続状態が変化したか否かを判定する。具体的には、CPU71は、下流側コネクタ36に接続されている制御線L3の状態の情報と運転モード移行時にRAM73に記憶した情報とが異なった場合に、接続状態が変化したと判定する。
接続状態は変化していないと判定すると(ステップS54:NO)、制御部30は、ステップS51に移行し、処理を繰り返す。一方、接続状態が変化したと判定すると(ステップS54:YES)、制御部30は、ステップS55において、ステップS46の処理と同様に、自装置の制御動作を停止して自装置を停止する。制御部30の制御動作が停止したとき、出力ポート78の出力はLowレベルの電圧又はハイインピーダンス状態となって、npnトランジスタ97はOFF状態となり、下流側コネクタ36に接続された子装置2における処理動作が停止する。
このように構成されることにより、子装置2が新たに接続された場合や子装置2が取り外された場合には、接続状態が変化されたことが検知され、接続状態が変化した子装置2がリセットされる。そのため、親装置1は、一部の子装置2と通信ができなくなって、コネクタ13に接続された子装置2をリセット状態にする。そのため、この子装置2の下流に接続された子装置2が次々とリセットされることになる。そして、設定モードに移行して、各子装置2に新たにアドレスが割り当てられることになる。
例えば、図1に示すような接続状態にあるとき、子装置2cの下流側コネクタ36に新たな子装置2が接続された場合には、子装置2cはステップS54において接続状態が変化したと判定して自装置を停止する。そのため、その後に親装置1から子装置2cに要求信号を送った場合に、親装置1は子装置2cから応答信号を受信できず、ステップS24において、通信異常を検出する。通信異常を検出すると、親装置1は、npnトランジスタ15をOFFにして、子装置2aの制御動作を停止させる。子装置2aは制御動作を停止したとき、npnトランジスタ97をOFFにするため、子装置2bの制御動作が停止する。このように、子装置2cの接続状態が変化したときには、子装置2a、2bがリセットされてその制御動作が停止し、設定モードに移行して、各子装置2に新たにアドレスが割り当てられる。
以上説明したとおり、本実施形態の通信システムSは、親装置1に接続されている各子装置2のアドレスを自動的に割り当てることができるので、作業性や保守性を向上させることができる。また、親装置1と子装置2との間で送受信される要求信号及び応答信号には、送信先のアドレスが格納されるアドレス部5aとデータ部5bから構成され、一対一の通信が可能となると共にデータ量を比較的小さくすることができる。その結果、通信の効率性や高速性を向上させることができる。
また、親装置1は、各子装置2のアドレスを必ずしも有する必要はなく、各子装置2へのアドレス生成規則を有しておけば、各子装置2のアドレスを認識することができる。その結果、子装置2の数が増大したとしても、各子装置2のアドレスを管理するための記憶容量が増大することがない。例えば、各子装置のMACアドレスを用いて通信を行う場合には、親装置1は各子装置のMACアドレスを記憶する必要があるため記憶容量が増大することになるが、本実施形態では、そのような問題が生じることがない。
本発明は上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることはいうまでもない。
例えば、上述した実施形態では、子装置2は、下流側に子装置2が接続されていない場合に最後尾信号を送信し、接続されている場合に完了信号を送信していたが、以下に示すような処理を行ってもよい。
すなわち、子装置2は、ステップS37において自装置のアドレスを設定した後に、上流側の装置に完了信号を送信する。このように構成することにより、子装置2は、下流側に子装置2が接続されている否かに関係なく、上流側の装置に完了信号を送信することになる。その結果、ステップS43では、完了信号を受信したときに「規定時間内に応答があった」と判定される。また、ステップS39では、子装置2は、上流側の装置ではなく、親装置1に対して最後尾信号を送信する。その結果、親装置1は、自装置宛ての最後尾信号を受信することになる。
また、上述した実施形態では、上流装置から出力される状態制御信号をCPU71のリセット端子RSTに入力することとしたが、別途入力ポートを設けてこの入力ポートに状態制御信号を入力するようにしてもよい。この場合、CPU71は、この入力ポートに入力状態に応じて通信の許可及び不許可を行う。
また、上述した実施形態では、親装置1は、接続ケーブルGを介して各子装置2と調歩同期方式で半二重通信を行うようにしたが、クロック同期方式で半二重通信を行うようにしてもよい。