以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、一実施形態における制御システム10の概略的な構成を示す。制御システム10は、管理装置20と、マスタコントローラMと、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6と、被制御機器40a、被制御機器40b、被制御機器40c、被制御機器40d、被制御機器40e及び被制御機器40fとを備える。
本実施形態において、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6を、スレーブコントローラSと総称する場合がある。また、制御システム10が備えるマスタコントローラM及びスレーブコントローラSを、コントローラと総称する場合がある。また、被制御機器40a、被制御機器40b、被制御機器40c、被制御機器40d、被制御機器40e及び被制御機器40fを、被制御機器40と総称する場合がある。
管理装置20は、制御システム10の全体を管理する。管理装置20は、パーソナルコンピュータ等のコンピュータにより実現される。管理装置20は、ネットワークを通じてマスタコントローラMと通信する。
マスタコントローラM及びスレーブコントローラSは、制御装置の一例である。スレーブコントローラSは、マスタコントローラMによる制御に従って、被制御機器40との間でデータの入出力を行う。
マスタコントローラM及びスレーブコントローラSは、複数のネットワークケーブルによりデイジーチェーン接続されている。具体的には、マスタコントローラMは、ネットワークケーブルC01を通じて、スレーブコントローラS1に接続されている。スレーブコントローラS1は、ネットワークケーブルC12を通じて、スレーブコントローラS2に接続されている。スレーブコントローラS2は、ネットワークケーブルC23を通じて、スレーブコントローラS3に接続されている。また、スレーブコントローラS2は、ネットワークケーブルC25を通じて、スレーブコントローラS5に接続されている。スレーブコントローラS3は、ネットワークケーブルC34を通じて、スレーブコントローラS4に接続されている。スレーブコントローラS5は、ネットワークケーブルC56を通じて、スレーブコントローラS6に接続されている。
一般に、スレーブコントローラSiは、ネットワークケーブルCijを通じて、スレーブコントローラSjに接続されている。ここで、iは、1以上5以下の整数であり、j=i+1とする。なお、ネットワークケーブルC01、ネットワークケーブルC12、ネットワークケーブルC23、ネットワークケーブルC34、ネットワークケーブルC25及びネットワークケーブルC56を、ネットワークケーブルCと総称する場合がある。
マスタコントローラM及びスレーブコントローラSは、コントローラネットワークを形成する。マスタコントローラM、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5及びスレーブコントローラS6は、相互の間をネットワークケーブルCにより直列接続されている。また、スレーブコントローラS3及びスレーブコントローラS4は、スレーブコントローラS2から直列接続されている。スレーブコントローラS2は、マスタコントローラM、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5及びスレーブコントローラS6のうち、両端に位置しないコントローラである。このように、マスタコントローラM及びスレーブコントローラSは、T分岐トポロジを構成する。
スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6は、それぞれ被制御機器40a、被制御機器40b、被制御機器40c、被制御機器40d、被制御機器40e及び被制御機器40fに接続されている。スレーブコントローラSは、それぞれ接続されている被制御機器40との間のデータの入出力を担う。具体的には、スレーブコントローラS1は、被制御機器40aとの間のデータの入出力を担い、スレーブコントローラS2は、被制御機器40bとの間のデータの入出力を担う。なお、スレーブコントローラSの数、及び、被制御機器40の数は、本実施形態に示される数に限定されない。また、スレーブコントローラSがデータの入出力を行う被制御機器40の数は、1つに限られない。スレーブコントローラSの少なくとも1つは、複数の被制御機器40に接続され、接続された複数の被制御機器40のそれぞれとの間でデータの入出力を行ってよい。
制御システム10は、工場やプラント等の産業施設において用いられてよい。制御システム10は、ファクトリーオートメーションの少なくとも一部として用いられてよい。管理装置20、マスタコントローラM及びスレーブコントローラSは、産業用制御システムであってよい。被制御機器40は、管理装置20、マスタコントローラM及びスレーブコントローラSによる制御対象となる機器である。被制御機器40は、モータ、エンコーダ、ポンプ、バルブ、カメラ、各種センサ等であってよい。被制御機器40は、例えば産業機械であってよい。マスタコントローラM及びスレーブコントローラSは、それぞれプログラマブルロジックコントローラ(PLC)であってよい。
管理装置20は、制御システム10を統括制御する。管理装置20は、マスタコントローラMとの間でメッセージを送受信することにより、制御システム10を統括制御する。管理装置20は、マスタコントローラMからステータス情報を読み出し、制御システム10が制御する工程に従って、マスタコントローラMに各種の制御指示を出力する。
スレーブコントローラSは、被制御機器40の状態を示す情報や、被制御機器40が計測した結果を示す情報等のデータを、監視データとして被制御機器40から取得する。スレーブコントローラSは、被制御機器40から入力された監視データを、マスタコントローラMに送信する。なお、監視データは、被制御機器40からの入力データの一例である。
マスタコントローラM及びスレーブコントローラSは、ラダー図等を通じて生成されたシーケンス制御のための制御プログラムを有する。マスタコントローラMは、制御プログラムに従って、管理装置20から取得したメッセージと、スレーブコントローラSを通じて取得した監視データとに基づいて、被制御機器40への制御データを生成して、スレーブコントローラSに出力する。スレーブコントローラSは、制御プログラムに従って、マスタコントローラMから取得した制御データに基づいて、被制御機器40に制御信号を出力する。
マスタコントローラMは、制御システム10が備える複数のコントローラにおけるマスタ装置の一例である。スレーブコントローラSは、制御システム10が備える複数のコントローラにおけるスレーブ装置の一例である。本実施形態において、マスタコントローラMは、ネットワークケーブルCを通じてスレーブコントローラSに電力を供給可能である。
なお、スレーブコントローラSはそれぞれ主電源を有しており、通常運用時は主電源からの電力で動作する。スレーブコントローラSは、例えば保守点検時等に、主電源がオフされる場合がある。例えばスレーブコントローラS5の主電源をオフにした場合、スレーブコントローラS5の通信機能は、ネットワークケーブルC01、ネットワークケーブルC12及びネットワークケーブルC25を通じてマスタコントローラMから供給される電力を用いて、維持される。これにより、マスタコントローラMは、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5及びそれらの間のネットワークケーブルCを通じて、スレーブコントローラS6との間の通信を維持することができる。
ネットワークケーブルCには、仕様上、電力を伝送可能な最大長が定められている。本実施形態において、ネットワークケーブルCが電力を伝送可能な最大長を「仕様長」と呼ぶ。例えば、ネットワークケーブルCが準拠する規格によって、仕様長が定められる。また、ネットワークケーブルCを通じて電力を供給する供給先のスレーブコントローラSの台数にも制約がある。電力供給先のスレーブコントローラSの台数を給電可能台数と呼ぶ。システム構築者は、給電可能台数及びネットワークケーブルCの仕様長を考慮して、マスタコントローラM及びスレーブコントローラSを配置して、各ネットワークケーブルCの長さを選択する。
管理装置20は、システム構成情報に基づいて、給電可能台数をチェックする。例えば、管理装置20は、マスタコントローラMが電力供給を担うスレーブコントローラSの台数が給電可能台数を超えている場合には、仕様外構成である旨のメッセージを発する。これにより、マスタコントローラMの給電容量を超えた台数のスレーブコントローラSが接続されることを防ぐことができる。
ここで、例えばマスタコントローラM、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5のコントローラ列において、各コントローラを接続するネットワークケーブルC01、ネットワークケーブルC12及びネットワークケーブルC25の長さを合計した全長が仕様長を超えていると、マスタコントローラMからスレーブコントローラS5に規定の電力を供給できない場合がある。この場合、スレーブコントローラS5の主電源をオフすると、スレーブコントローラS5の通信機能を維持できずに、スレーブコントローラS5及びスレーブコントローラS6とマスタコントローラMとの間の通信を維持することができなくなる場合がある。そのため、少なくとも、マスタコントローラMからスレーブコントローラS6までのネットワークケーブルCの全長と、マスタコントローラMからスレーブコントローラS4までのネットワークケーブルCの全長とは、いずれもネットワークケーブルCの仕様長以下にする必要がある。
図1に示されるように、制御システム10は、マスタコントローラM、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5及びスレーブコントローラS6を含むコントローラ列と、スレーブコントローラS2から分岐しスレーブコントローラS3及びスレーブコントローラS4を含むコントローラ列とを有するT分岐トポロジの接続形態を持つ。この接続形態において、スレーブコントローラS3及びスレーブコントローラS4のコントローラ列は、スレーブコントローラS5及びスレーブコントローラS6のコントローラ列と並列に接続された形態を持つ。このように並列に接続されるネットワークトポロジで接続された制御システム10においては、マスタコントローラMからスレーブコントローラS6までのネットワークケーブルCの全長と、マスタコントローラMからスレーブコントローラS4までのネットワークケーブルCの全長がいずれもネットワークケーブルCの仕様長以下であったとしても、末端のスレーブコントローラSの負荷電圧が規定値未満になる場合がある。この場合、マスタコントローラMと末端のスレーブコントローラSとの間の通信を維持できなくなる場合がある。
そこで、本実施形態において、マスタコントローラMは、ネットワークケーブルCを通じた電力の供給先のスレーブコントローラSにお負荷電圧を算出する機能を有する。具体的には、マスタコントローラMは、制御システム10に含まれる各ネットワークケーブルCの長さを計測して、各ネットワークケーブルCの電気抵抗値を算出する。また、マスタコントローラMは、各ネットワークケーブルCの電気抵抗値を用いて、末端のスレーブコントローラSの負荷電圧を算出して、負荷電圧が規定値未満の場合に、警告を発する。これにより、末端のスレーブコントローラSに負荷電圧が規定値未満となるような接続状態で制御システム10が運用される可能性を低くすることができる。
図2は、マスタコントローラMの機能構成を概略的に示す。マスタコントローラMは、制御部210と、電力供給部220と、ネットワークインタフェース240と、通信部230と、タイマ260と、通知部270と、主電源280と、コネクタ部Tとを備える。コネクタ部Tには、ネットワークケーブルC01が接続される。
制御部210は、ネットワークインタフェース240及び通信部230と互いにデータを送受信する。制御部210は、プロセッサであってよい。制御部210は、マイクロコントローラであってよい。制御部210は、中央処理装置(CPU)、ROM、RAM等を含む半導体集積回路で構成される。制御部210は制御プログラムを格納する記憶部を内部に有する。
制御部210は、マスタコントローラMにおける主処理を担う。制御部210は、制御プログラムに従って、通信部230、通知部270、電力供給部220及びネットワークインタフェース240を含む、マスタコントローラMの各部を制御する。例えば、制御部210は、内部の記憶部に格納された制御プログラムに従って、スレーブコントローラSから取得した監視データの処理を行い、監視データに基づいて、スレーブコントローラSに対する制御データを生成する処理を行う。
タイマ260は、時刻を示すタイマ値を生成して、制御部210に供給する。制御部210は、タイマ260から供給されたタイマ値を用いて、各種の処理を実行する。
通信部230は、管理装置20との通信を担う。通信部230は、管理装置20からのメッセージを受信して、受信したメッセージを制御部210に出力する。また、通信部230は、管理装置20へのメッセージを制御部210から受信して、受信したメッセージを管理装置20に送信する。通信部230から管理装置20に送信されるメッセージには、被制御機器40から取得した監視データや、制御システム10のステータス等の情報が含まれる。
ネットワークインタフェース240は、FPGA等の半導体集積回路で構成される。ネットワークインタフェース240は、スレーブコントローラSから監視データを受信する。制御部210は、ネットワークインタフェース240が受信した監視データを用いて、制御プログラムに従って制御データを生成する。制御部210は、生成した制御データを、ネットワークインタフェース240を通じてスレーブコントローラSに送信する。
主電源280は、マスタコントローラMの各部に電力を供給する。制御部210、通信部230、ネットワークインタフェース240及び通知部270は、主電源280から供給された電力により動作する。
マスタコントローラMは、ネットワークケーブルC01を通じてスレーブコントローラSに電力を供給可能である。具体的には、電力供給部220は、主電源280から供給された電力を、コネクタTに供給する。コネクタTに供給された電力は、ネットワークケーブルC01を通じてスレーブコントローラS1に供給される。このように、電力供給部220は、ネットワークケーブルCを通じてスレーブコントローラSに電力を供給可能である。
制御部210において、算出部202は、スレーブコントローラSのうち電力供給部220からケーブルを通じて電力供給されるスレーブコントローラSの負荷電圧を、電力供給部220の出力電圧と、ネットワークケーブルCのそれぞれの電気抵抗とに基づいて算出する。具体的には、算出部202は、スレーブコントローラSのうちネットワークケーブルCを通じて電力供給される全てのコントローラの電気抵抗に更に基づいて、負荷電圧を算出してよい。
計測部200は、直列接続されたコントローラにおいて隣接するコントローラ間を接続するネットワークケーブルCのそれぞれによって生じる通信の遅延時間を計測する。算出部202は、計測部200により計測された遅延時間に基づいて、直列接続されたコントローラにおいて隣接するコントローラ間を接続するネットワークケーブルCのそれぞれの電気抵抗を算出し、算出した電気抵抗に基づいて、負荷電圧を算出する。
なお、通知部270は、算出部202により算出された負荷電圧が規定値より小さい場合に通知する。通知部270は、ランプ等の発光装置を含んでよい。通知部270は、ブザー等の音声出力装置を含んでよい。
図3は、スレーブコントローラS1の機能構成を概略的に示す。スレーブコントローラS1は、電力供給機能を有しないスレーブコントローラである。
スレーブコントローラS1は、制御部310と、電力取得部350と、タイマ360と、ネットワークインタフェース340と、主電源380と、コネクタ部T1と、コネクタ部T2と、コネクタ部T3とを備える。コネクタ部T1は、例えばIN回線であり、デイジーチェーン接続における上流側のネットワークケーブルCが接続される。コネクタ部T2及びコネクタ部T3は、例えばOUT回線であり、デイジーチェーン接続における下流側のネットワークケーブルCが接続される。
制御部310は、ネットワークインタフェース240とデータを送受信する。制御部310は、プロセッサであってよい。制御部310は、マイクロコントローラであってよい。制御部310は、中央処理装置(CPU)、ROM、RAM等を含む半導体集積回路で構成される。制御部310は制御プログラムを格納する記憶部を内部に有する。制御部310は、制御プログラムに従って、ネットワークインタフェース240を含む、スレーブコントローラS1の各部を制御する。
ネットワークインタフェース340は、マスタコントローラM及び他のスレーブコントローラSと通信するための通信インタフェース回路の一例である。ネットワークインタフェース340は、FPGA等の半導体集積回路で構成される。ネットワークインタフェース340は、例えばマスタコントローラMから制御データを受信する。例えば、ネットワークインタフェース340は、マスタコントローラMからの制御データを、コネクタT1を通じて受信する。
制御部310は、スレーブコントローラS1における主処理を担う。例えば、制御部310は、内部の記憶部に格納された制御プログラムに従って、マスタコントローラMから送信された制御データに基づいて、被制御機器40への入力信号を出力する。また。制御部310は、被制御機器40から出力される出力信号を取得して、監視データを生成する。制御部310は、生成した監視データをネットワークインタフェース340に出力する。ネットワークインタフェース340は、制御部310から取得した監視データをマスタコントローラMに送信する。
タイマ360は、タイマ値を生成して、制御部310に供給する。制御部310は、タイマ360から供給されたタイマ値を用いて、各種の処理を実行する。
また、ネットワークインタフェース340は、マスタコントローラMから受信した他のスレーブコントローラS宛の制御データを中継する。ネットワークインタフェース340は、他のスレーブコントローラS宛の制御データを、コネクタT2又はコネクタT4を通じて、それぞれのコネクタに接続されたネットワークケーブルCに出力する。
主電源380は、スレーブコントローラS1の各部に電力を供給する。制御部310及びネットワークインタフェース340は、主電源380から供給された電力により動作する。スレーブコントローラS1は、主電源380からの電力が遮断された場合に、マスタコントローラMからネットワークケーブルCを通じて供給された電力を用いて複数のコントローラのうちの他の制御装置との間の通信を維持する。ネットワークインタフェース340は、主電源380から電力供給されない場合に、主電源380から実質的に切り離されてネットワークケーブルCから供給される電力で駆動される。ネットワークインタフェース340は、主電源380から電力供給されている場合に、ネットワークケーブルCの給電ラインから実質的に切り離される。
電力取得部350は、コネクタT1、コネクタT2及びコネクタT3の少なくとも1つから電力を取得する。例えば、主電源380がオフされた場合、電力取得部350は、コネクタT1のグランドラインから取得した電力を、ネットワークインタフェース340に供給する。これにより、スレーブコントローラS1の通信機能を維持することができる。
なお、電力取得部350は、コネクタT2又はコネクタT3から電力が供給されている場合には、取得した電力を、ネットワークインタフェース340に供給する。また、コネクタT1において給電ラインとコネクタT2の給電グランドラインとは短絡されており、コネクタT1の給電ラインを通じて供給された電力は、コネクタT2又はコネクタT3の給電ラインGを通じて下流のスレーブコントローラSに供給される。
スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6は、スレーブコントローラS1が有する構成と同様の機能構成を有する。そのため、スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6の機能構成については説明を省略する。また、本実施形態において、スレーブコントローラS2、スレーブコントローラS3、スレーブコントローラS4、スレーブコントローラS5及びスレーブコントローラS6の機能ブロックを、スレーブコントローラS1の機能ブロックを参照して説明する場合がある。
図4は、スレーブコントローラS5の負荷電圧が規定値以下となる場合に生じ得る事象を概略的に示す。
図4に示されるように、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS3及びスレーブコントローラS5の主電源380がオフにされたとする。スレーブコントローラS1及びスレーブコントローラS2の負荷電圧は規定値以上となっている。そのため、スレーブコントローラS1及びスレーブコントローラS2のネットワークインタフェース340は機能している。
ここで、スレーブコントローラS5の負荷電圧が規定値未満であるとする。この場合、スレーブコントローラS5のネットワークインタフェース340は動作不良となる場合がある。これにより、スレーブコントローラS6のネットワークインタフェース340は、スレーブコントローラS6の主電源380で動作しているが、上流側のスレーブコントローラS5のネットワークインタフェース340が通信を中継することができなくなるため、マスタコントローラMとの通信が不可能になる。これにより、スレーブコントローラS6は、マスタコントローラMの制御から脱落してしまう。
そこで、マスタコントローラMは、電源オフされたスレーブコントローラSのうち、デイジーチェーン接続における最も下流側のスレーブコントローラSの負荷電圧を算出する。そして、マスタコントローラMは、算出した負荷電圧が規定値未満の場合に警告する。これにより、負荷電圧が既定値未満となる状態で制御システム10が運用されることを未然に防ぐことができる。
図5は、管理装置20からマスタコントローラMに送信されるシステム構成情報の一例をテーブル形式で示す。システム構成情報は、各スレーブコントローラSの識別情報と、各スレーブコントローラSが位置する経路を識別する分岐経路情報とを対応づける。
図1に示されるように、スレーブコントローラS2は、マスタコントローラMを基点とするデイジーチェーン接続において、他のデイジーチェーン接続との分岐点となるスレーブコントローラである。図5の分岐経路情報の「無」は、分岐点となるスレーブコントローラS又は分岐点よりマスタコントローラM側に位置するスレーブコントローラSであることを示す。図5の分岐経路情報の「A」は、分岐点となるスレーブコントローラSから下流に接続される経路上に位置することを示す。分岐経路情報の「B」は、分岐点となるスレーブコントローラSより下流に接続され、Aで識別される経路とは異なる経路上に位置することを示す。
システム構成情報は、ネットワークケーブルCを通じて供給される電力により動作するスレーブコントローラSと、主電源380からの電力により動作するスレーブコントローラSとの複数の組み合わせを示す情報の一例である。後述するように、算出部202は、システム構成情報で示される複数の組み合わせのそれぞれにおいて、ネットワークケーブルCを通じて供給される電力で動作するスレーブコントローラSのうちデイジーチェーン接続の末端に位置するスレーブコントローラSの負荷電圧を算出する。
図6は、管理装置20からマスタコントローラMに送信される電力供給パターン情報の一例をテーブル形式で示す。電力供給パターン情報は、電力供給パターンを識別するパターン識別情報と、電力供給先情報とを対応づける。電力供給先情報は、マスタコントローラMから電力供給を受けるスレーブコントローラSとマスタコントローラMから電力供給を受けないスレーブコントローラSとの組み合わせを示す。図6において、「○」は電力供給を受けるスレーブコントローラSを示す。「−」は、マスタコントローラMから電力供給を受けないスレーブコントローラSを示す。すなわち、「−」は、スレーブコントローラSが自己の主電源380からの電力で動作することを示す。
図7は、制御システム10の等価回路を示す。V0は、マスタコントローラMの電力供給部220の出力電圧を示す。一例として、V0は、24Vである。
Rc01は、ネットワークケーブルC01内の正極ラインの電気抵抗を示す。Rc12は、ネットワークケーブルC12内の正極ラインの電気抵抗を示す。Rc23は、ネットワークケーブルC23内の正極ラインの電気抵抗を示す。一般に、Rcijは、ネットワークケーブルCij内の給電に用いられるラインのうち、正極ラインの電気抵抗を示す。ただし、i<jである。
Rc10は、ネットワークケーブルC01内の負極ラインの電気抵抗を示す。Rc21は、ネットワークケーブルC12内の負極ラインの電気抵抗を示す。Rc32は、ネットワークケーブルC23内の負極ラインの電気抵抗を示す。一般に、Rcjiは、ネットワークケーブルCij内の給電に用いられるラインのうち、負極ラインの電気抵抗を示す。ただし、i<jである。
Rs1は、スレーブコントローラS1の負荷となる電子回路の電気抵抗を示す。Rs2は、スレーブコントローラS2の負荷となる電子回路の電気抵抗を示す。一般に、Rsiは、スレーブコントローラSiの負荷となる電子回路の電気抵抗を示す。具体的には、スレーブコントローラSiがマスタコントローラMからの電力で駆動される場合、Rsiは、スレーブコントローラSiのネットワークインタフェース340の電気抵抗を示す。なお、スレーブコントローラSiが主電源380で動作している場合、スレーブコントローラSiのネットワークインタフェース340は、ネットワークケーブルCからは実質的に切断されている。そのため、主電源380で動作している場合、スレーブコントローラSiのRsiは無限大となる。なお、Vs1〜Vs6は、等価回路上における、算出部202による負荷電圧の算出対象となる電圧を示す。
図8は、電力供給パターン1における負荷電圧の算出点を模式的に示す。電力供給パターン1によると、マスタコントローラMは、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5及びスレーブコントローラS6で形成されるスレーブコントローラ列に電力を供給する。算出部202は、当該スレーブコントローラ列において末端に位置するスレーブコントローラS6の負荷電圧を算出する。具体的には、算出部202は、の両端にかかる電圧Vs6を算出する。図7の等価回路において、電圧Vs6は、以下の式で算出される。
Vs6=ED×Rs6/(RD+Rs6)
ただし、
ED=EC×Rs5/(RC+Rs5)
RD=RC×Rs5/(RC+Rs5)+Rc56+Rc65
EC=EA×RB×Rs2/{RA×(RB+Rs2)+RB×Rs2}
RC=1/(1/RA+1/RB+1/Rs2)+Rc25+Rc52
RB=Rc23+Rc32+Rs3×(Rc34+Rc43+Rs4)/(Rs3+Rc34+Rc43+Rs4)
EA=V0×Rs1/(Rc01+Rc10+Rs1)
RA=Rs1×(Rc01+Rc10)/(Rc01+Rc10+Rs1)+Rc12+Rc21
一例として、各ネットワークケーブルCの単位長さ当たりの電気抵抗値が0.1Ω/mであるとすると、図8に示されるように、計測部200によりC01、C12、C23、C34、C25及びC56の長さがそれぞれ140m、20m、20m、10m、20m及び10mと計測された場合、算出部202は、R01、R12、R23、R34、R25及びR56を、それぞれ14Ω、2Ω、2Ω、1Ω、2Ω、1Ωと算出する。また、算出部202は、R10、R21、R32、R43、R52及びR65を、それぞれ14Ω、2Ω、2Ω、1Ω、2Ω、1Ωと算出する。なお、マスタコントローラMは、ネットワークケーブルCの単位長さあたりの電気抵抗値rを示す情報を管理装置20から取得する。算出部202は、ネットワークケーブルCijの長さと、単位長さあたりの電気抵抗値rとに基づいて、Rcijを算出する。
また、算出部202は、マスタコントローラMから電力の供給を受けるスレーブコントローラSiの負荷の電気抵抗Rsiを100Ωとする。なお、マスタコントローラMは、各スレーブコントローラSの負荷の電気抵抗を、管理装置20から予め取得してよい。なお、算出部202は、主電源380で動作しているスレーブコントローラSiのRsiとして、予め定められた巨大値を適用してよい。
電力供給部220は、上述した電圧Vs6の式に、各ネットワークケーブルCの電気抵抗Rcij、Rsi、及び電力供給部220の出力電圧V0を適用することにより、スレーブコントローラS6の負荷電圧Vs6を算出する。通知部270は、負荷電圧が既定値未満の場合に警告を行う。規定値は、各スレーブコントローラのネットワークインタフェース340を動作させるために必要な電圧値であってよい。例えば、規定値を10Vとしてよい。一例として、各ネットワークケーブルCの長さが図8に示す長さの場合、Vs6は9.8Vとなる。この場合、規定値を10Vとすると、パターン1は負荷電圧が既定値未満の電力供給パターンと判断されるため、通知部270は警告を行う。
図9は、電力供給パターン2にける負荷電圧の算出点を模式的に示す。電力供給パターン2によると、マスタコントローラMからの電力の供給先は、スレーブコントローラS1、スレーブコントローラS2、スレーブコントローラS5で形成される第1スレーブコントローラ列と、スレーブコントローラS2及びスレーブコントローラS3で形成される第2スレーブコントローラ列となる。そのため、算出部202は、第1スレーブコントローラ列において末端に位置するスレーブコントローラS5の負荷電圧と、第2スレーブコントローラ列において末端に位置するスレーブコントローラS3の負荷電圧とを算出する。具体的には、算出部202は、Vs5及びVs3を算出する。Vs5及びVs3の算出方法は、図8に関連して説明した算出方法と同様に図7の等価回路を用いて算出できるので、説明を省略する。一例として、上述したようにC01、C12、C23、C34、C25及びC56の長さが図8に示す長さの場合、Vs5及びVs3は10.3Vとなる。規定値を10Vとすると、Vs5及びVs3はいずれも規定値以上であるので、パターン2は、負荷電圧が既定値未満の電力供給パターンとは判断されない。
以上に説明したように、算出部202は、スレーブコントローラSのうちネットワークケーブルCを通じて電力供給されるスレーブコントローラSの電気抵抗として、ネットワークインタフェース340の電気抵抗を適用する。一方、算出部202は、上記した等価回路において、スレーブコントローラSのうち主電源380からの電力によりネットワークインタフェース340が駆動される1以上のスレーブコントローラSについては、ネットワークインタフェース340がケーブルの給電ラインから実質的に切り離されているとみなすことにより、スレーブコントローラSの負荷電圧を算出する。スレーブコントローラSがマスタコントローラMからの電力で駆動されている場合と主電源380で駆動されている場合とで、等価回路上の電気抵抗が変化する。算出部202は、マスタコントローラMからの電力で駆動されているスレーブコントローラSの電気抵抗と、主電源380からの電力で駆動されているスレーブコントローラSの電気抵抗と適切に評価して、スレーブコントローラSの負荷電圧を算出することができる。
図10は、ネットワークケーブルCの長さを計測する方法を説明するための図である。図10においては特に、ネットワークケーブルC56の長さを計測する方法を取り上げて説明する。
マスタコントローラMにおいて、制御部210は、ネットワークインタフェース240に、スレーブコントローラS6宛の要求信号Req1を送信させる。スレーブコントローラS6において、ネットワークインタフェース340が要求信号Req1を受信すると、制御部310はマスタコントローラM宛の応答信号Res1を生成して、ネットワークインタフェース340に応答信号Res1を送信させる。マスタコントローラMにおいて、制御部210の計測部200は、ネットワークインタフェース240が要求信号Req1を送信してから、ネットワークインタフェース240が応答信号Res1を受信するまでの経過時間T06を計測する。
ここで、ネットワークケーブルCijを信号が通過するのに要する時間をtciとする。iは、0から6の整数であるとする。taは、スレーブコントローラSが信号を中継するのに要する時間である。taは、各スレーブコントローラSにおいて同じ値とする。なお、taは、スレーブコントローラSにおけるネットワークインタフェースの処理能力によって予め定められた異なる値を適用してもよい。tbは、スレーブコントローラSにおいて要求信号を受信してからマスタコントローラM宛の応答信号を送信するまでに要する応答時間である。応答時間には、スレーブコントローラSにおいて応答信号を生成する時間が含まれる。tbは、予め定められた値としてよい。T06は、tci、ta及びtbを用いて、2(tc0+tc1+tc2+tc4+tc5+3ta)+tbで表される。
マスタコントローラMにおいて、制御部210は、ネットワークインタフェース240に、スレーブコントローラS5宛の要求信号Req2を送信させる。スレーブコントローラS6において、ネットワークインタフェース340が要求信号Req2を受信すると、制御部310はマスタコントローラM宛の応答信号Res2を生成して、ネットワークインタフェース340に応答信号Res2を送信させる。マスタコントローラMにおいて、制御部210の計測部200は、ネットワークインタフェース240が要求信号Req2を送信してから、ネットワークインタフェース240が応答信号Res2を受信するまでの経過時間T05を算出する。
そして、計測部200は、経過時間T06と、経過時間T05とを用いて、ネットワークケーブルC56の長さを算出する。具体的には、計測部200は、ネットワークケーブルC56内を信号が通過するのに要する時間tc5を、(T06−T05)/2−taにより算出する。そして、計測部200は、当該通過時間とネットワークケーブルC内の信号の伝搬速度とに基づいて、ネットワークケーブルC56の長さを算出する。
計測部200は、同様の方法を用いて、ネットワークケーブルC01、ネットワークケーブルC12、ネットワークケーブルC23、ネットワークケーブルC34及びネットワークケーブルC25のそれぞれの長さを算出する。なお、上述したネットワークケーブルCij内の信号の通過時間は、ネットワークケーブルCijより生じる通信の遅延時間に対応する。
図11は、ネットワークケーブルCの長さを計測する第2の計測方法を説明するための図である。
第2の計測方法において、スレーブコントローラSはそれぞれ、受信した信号を他のスレーブコントローラSに転送する場合に、それぞれのスレーブコントローラSが備えるタイマで計測したタイマ値を信号に含めて転送する。また、スレーブコントローラSはそれぞれ、受信した信号を他のスレーブコントローラSに転送する場合に、それぞれのスレーブコントローラSを識別する識別情報を、当該タイマ値に対応付けて転送する。例えば、スレーブコントローラSはそれぞれ、受信タイミングにおけるタイマ値及び転送タイミングにおけるタイマ値と、それぞれのスレーブコントローラSの識別情報とを対応づけた情報を、転送する信号に含める。第2の計測方法における各コントローラの動作を説明する。
スレーブコントローラS1において、制御部310は、Req1を受信した場合に、スレーブコントローラS1のタイマで計測したタイマ値T1_rを取得する。また、制御部310は、Req1を転送する場合に、当該タイマで計測したタイマ値T1_sを取得する。制御部310は、タイマ値T1_r、タイマ値T1_s及びスレーブコントローラS1の識別情報を対応付けた情報をReq1に含めて、スレーブコントローラS2に転送する。例えば、スレーブコントローラS1の制御部310は、Req1のヘッダ部に、タイマ値T1_r及びタイマ値T1_sを含める。他のスレーブコントローラSの制御部310も同様に、Req1を受信した場合及び転送する場合に、各スレーブコントローラSのタイマで計測したタイマ値を取得し、当該タイマで計測した2つのタイマ値を、Req1に含めて転送する。
なお、スレーブコントローラS6においては、制御部は、Req1を受信したときのタイマ値T6_rと、Res1を送信するときのタイマ値T6_sとをReq1に含めて、Req1の応答信号Res1としてマスタコントローラMに向けて転送する。他のスレーブコントローラSはそれぞれ、受信したRes1を他のスレーブコントローラSに転送する場合に、それぞれのスレーブコントローラSが備えるタイマで計測したタイマ値を信号に含めて転送する。iをスレーブコントローラS1〜5を識別する整数とすると、図11に示すTi_rは、スレーブコントローラSiがReq1を受信したときのタイマ値を示し、Ti_sは、スレーブコントローラSiがReq1を転送するときのタイマ値を示す。図11に示すT6_rは、スレーブコントローラS6がReq1を受信したときのタイマ値を示し、T6_sは、Res1を送信するときのタイマ値を示す。また、図11に示すT'i_rは、スレーブコントローラSiがRes1を受信したときのタイマ値を示し、T'i_sは、Res1を転送するときのタイマ値を示す。
マスタコントローラMにおいて、計測部200は、Res1を受信すると、Res1に含まれる各スレーブコントローラSのタイマ値に基づいて、各ネットワークケーブルCによって生じる遅延時間を算出する。例えば、計測部200は、スレーブコントローラS1がReq1の中継に要した時間ta1を、T1_s−T1_rにより算出する。なお、各スレーブコントローラSの間においてタイマが同期されていない場合があるため、各タイマにより得られるタイマ値にはズレが存在し得る。しかし、同一のスレーブコントローラSのタイマで取得したタイマ値の差分には、スレーブコントローラ間のタイマ値のズレは現れない。
そこで、iをスレーブコントローラS1〜5を識別する整数とすると、マスタコントローラMの計測部200は、Ti_s−Ti_rにより、スレーブコントローラSiがReq1の中継に要した時間taiを算出する。また、マスタコントローラMの計測部200は、T6_s−T6_rにより、スレーブコントローラS6がReq1を受信してからマスタコントローラM宛のRes1を送信するまでに要した時間tb6を算出する。また、マスタコントローラMの計測部200は、T'i_s−T'i_rにより、スレーブコントローラSiがRes1の中継に要した時間tai'を算出する。
ここで、T5_s−T'5_r=2tc5+tb6である。よって、計測部200は、ネットワークケーブルC56により生じる遅延時間tc5を、(T'5_r−T5_s)/2―tb6/2により算出する。そして、計測部200は、tc5とネットワークケーブルC内の伝搬速度とに基づいて、ネットワークケーブルC56の長さを算出する。計測部200は、同様の方法を用いて、ネットワークケーブルC01、ネットワークケーブルC12、ネットワークケーブルC23、ネットワークケーブルC34及びネットワークケーブルC25のそれぞれについて、ネットワークケーブルCの長さを算出する。
本方法によれば、タイマ値を用いてネットワークケーブルCの長さを計測することができる。これにより、スレーブコントローラSにおける伝送処理時間ta及びtbの実測値を用いて、ネットワークケーブルCの長さを算出することができる。
図12は、マスタコントローラMにおける処理を示すフローチャートである。本フローチャートの処理は、制御部210が主体となってマスタコントローラMの各部を制御することにより実行される。マスタコントローラMは、通常運用を開始するときに本フローチャートの処理を行ってよい。本フローチャートの処理は、電源投入により開始されてよい。
S1000において、制御部210は、通信部230を通じて、システム構成情報、電力供給パターン情報、ネットワークケーブルCの単位長さ当たりの電気抵抗及びネットワークケーブルC内の伝搬速度の情報を、管理装置20から取得する。S1002において、計測部200は、各ネットワークケーブルCによる通信の遅延時間を計測する。続いて、計測部200は、各ネットワークケーブルCの長さを算出する。具体的には、計測部200は、図10、図11に関連して説明した方法を用いて、ネットワークケーブルCの長さを算出する。
S1006において、算出部202は、各ネットワークケーブルCの電気抵抗値を算出する。具体的には、算出部202は、各ネットワークケーブルCの長さと、ネットワークケーブルCの単位長さ当たりの電気抵抗値に基づいて、各ネットワークケーブルCの電気抵抗値を算出する。
続いて、S1008において、算出部202は、各電力供給パターンについて、コントローラ列における末端位置のスレーブコントローラSの負荷電圧を算出する。具体的には、図7に示す等価回路に基づいて、末端位置のスレーブコントローラSの負荷電圧を算出する。
S1010において、S1008で算出した負荷電圧に基づいて、既定値未満の負荷電圧が算出された電力供給パターンが存在するか否かを判断する。既定値未満の負荷電圧が算出された電力供給パターンが存在すると判断された場合、S1012において、負荷電圧が既定値未満となる電力供給パターン情報が存在する旨を警告する。例えば、通知部270がランプを点灯させることにより運用者に警告する。また、制御部210は、警告情報を管理装置20に送信してもよい。このとき、制御部210は、負荷電圧が既定値未満となる電力供給パターンを識別する情報を、管理装置20に送信してもよい。S1012において警告した後、制御部210は、制御システム10の通常運用を開始せずに、制御システム10の動作を終了させる。
S1010の判断において、既定値未満の負荷電圧が算出された電力供給パターンが存在しないと判断された場合、S1014において、制御システム10の通常運用を開始し、本フローチャートの処理を終了する。
以上に説明した制御システム10によれば、複数のコントローラをデイジーチェーン接続する構成において、電力供給を担うコントローラと電力供給を受けるコントローラとの間のネットワークケーブルの全長が仕様長を超えていることを適切に検出することができる。そのため、当該電力供給を受けるコントローラの主電源をオフした場合でも、制御システム10の運用を続けることができる。
なお、制御システム10においては、マスタコントローラMがスレーブコントローラSへの電力供給機能を有するとして説明した。スレーブコントローラSのうち一部のスレーブコントローラSが、他のスレーブコントローラSに電力供給機能を有する構成を採用できる。この構成おいては、マスタコントローラMは、マスタコントローラMから電力供給機能を有するスレーブコントローラSまでの接続範囲内のスレーブコントローラSにおける負荷電圧を算出してよい。更に、マスタコントローラMは、電力供給機能を有するスレーブコントローラSより下流のスレーブコントローラSにおける負荷電圧を、電力供給機能を有するスレーブコントローラSの出力電圧と、各ネットワークケーブルCの電気抵抗値に基づいて算出してよい。なお、スレーブコントローラSにおける負荷電圧を算出するための機能は、マスタコントローラMではなく、電力供給機能を有するスレーブコントローラSが有してもよい。
以上に説明したデイジーチェーン接続は直列接続の一例である。直列接続は、縦続接続やカスケード接続等と呼称される接続構成を含み得る。また、複数のコントローラが物理的にループ状に接続されている接続形態において、特定のコントローラで信号をループバックする状態も、直列接続の概念に含み得る。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。