(57)【要約】      （修正有）【課題】Ethernet（登録商標）に代表される汎用的な規格により通信を行う通信機器との通信回線の冗長化を可能とし、通信回線の異常を検出可能なプログラマブルコントローラを提供することを目的とする。【解決手段】ＣＰＵユニット６と、ベースユニット７と、ベースユニットを介してＣＰＵユニットと接続されるＨＵＢユニット５とを備えるプログラマブルコントローラであって、ＨＵＢユニットは、通信装置と通信を行うための第１の通信ポート５Ｃ及び第２の通信ポート５Ｄと、第１の通信ポート及び第２の通信ポートが正常状態であるか又は異常状態であるかを検出する回線状態検出回路５Ａと、第１の通信ポートと第２の通信ポートを切り替える回線切替回路５Ｅとを有し、ＣＰＵユニットは、ベースユニットを介して第１の通信ポートの異常状態を検出したとき、第１の通信ポートから前記第２の通信ポートへの切替指示を回線切替回路に出力する。【選択図】図２
2018045399.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵユニットと、
ベースユニットと、
前記ベースユニットを介して前記ＣＰＵユニットと接続されるＨＵＢユニットと、を備えるプログラマブルコントローラであって、
前記ＨＵＢユニットは、
通信相手である通信装置と通信を行うための第１の通信ポート及び第２の通信ポートと、
前記第１の通信ポート及び前記第２の通信ポートが正常状態であるか、又は、異常状態であるかを検出する回線状態検出回路と、
前記第１の通信ポートと前記第２の通信ポートを切り替える回線切替回路と、を有し、
前記ＣＰＵユニットは、前記ベースユニットを介して前記第１の通信ポートの異常状態を検出したとき、前記第１の通信ポートから前記第２の通信ポートへの切替指示を前記回線切替回路に出力することを特徴とするプログラマブルコントローラ。
【請求項２】
請求項１に記載のプログラマブルコントローラであって、
前記ＨＵＢユニットを複数有し、
前記複数のＨＵＢユニットはそれぞれ、前記ベースユニットを介して前記ＣＰＵユニットと接続され、
前記ＣＰＵユニットは、前記複数のＨＵＢユニットそれぞれの回線状態検出回路の検出結果に基づいて、前記通信装置と通信を行うための通信ポートを決定することを特徴とするプログラマブルコントローラ。
【請求項３】
請求項１に記載のプログラマブルコントローラであって、
前記通信ポートは、Ethernetポート、又は、Ethernetポート上を流れるパケットを光通信に変換する光通信用ポートであることを特徴とするプログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラの通信回線の冗長化に関する。
【背景技術】
【０００２】
通信するデータ量の増大に伴い、通信ポートに通信速度の速いEthernet（登録商標）が採用される機器が一般的となっている。しかし通信の冗長化が必要となる分野が限られているため、冗長化に対応しているEthernet通信機器は限られている。プログラマブルコントローラは汎用コントローラであり、如何なるEthernet通信機器とも通信可能であることが求められる。しかし、通信冗長化のためには送信側、受信側双方が冗長化に対応している必要があり、一般的なEthernet通信機器との通信の冗長化は難しい。
【０００３】
また、通信の冗長化機能を持つEthernetスイッチが一般的に知られている（例えば、特許文献１）
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−９６４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プログラマブルコントローラと一般的なEthernet通信機器とで通信の冗長化を行う場合、プログラマブルコントローラの外部に、例えば特許文献１に記載のような通信冗長化機能を持ったEthernetスイッチあるいはHUB設け、そのEthernetスイッチあるいはHUBにて冗長化を行う方法が考えられる。
【０００６】
しかしながら、冗長化の仕掛けがプログラマブルコントローラの外部で構築されるため、EthernetスイッチあるいはHUB間の通信状態がプログラマブルコントローラにて判別できず、ユーザ視点では冗長化しているにもかかわらず突然通信が途える可能性がある。以下、図１を用いて詳述する。
【０００７】
図１は、従来のプログラマブルコントローラが、冗長化機能を持ったEthernetスイッチ又はHUB３を使用して、Ethernet通信機器４と通信の冗長化を行う構成図の例である。
【０００８】
プログラマブルコントローラ（PLC）１は、マイクロプロセッサ１ＣとEthernetポート１Ａを備える。マイクロプロセッサ１Ｃにより生成されたパケットは、Ethernetポート１ＡからEthernetスイッチ又はHUB３に出力される。
【０００９】
Ethernetスイッチ３は、回線異常検出回路３Ａ、Ethernetポート３Ｂ−３Ｄを備える。Ethernetスイッチ３には通信を冗長化する機能が実装されている。すなわち、 Ethernetスイッチ３は、通常はPLC１からEthernetポート（対PLC）３Ｂにて受信したパケットをEthernetポート（主）３Ｃから送信する。回線異常検出回路３ＡはEthernetポート３Ｃの状態を常時監視しており、Ethernetポート（主）３Ｃの通信異常を検出すると、Ethernetポート(副)３Ｄに切り替えて通信を継続する。この方法の場合、プログラマブルコントローラから見るとEthernetスイッチ３を経由して接続されたEthernet通信機器４と通信するだけであり、Ethernetスイッチ３の通信冗長化は意識する必要がない。すなわち受信側のEthernet通信機器４には通信冗長化の仕掛けは必要ない。
【００１０】
しかしながら、PLC１はEthernet通信機器４との通信が確立されているという状態しか判別できない。言い換えるとEthernet通信機器４の通信回線が冗長化された状態、すなわちEthernetポート３Ｃ、３Ｄ双方が正常な状態で通信を行っているのか、通信回線の一方が通信障害を発生している状態、すなわちEthernetポート３Ｃで異常が発生しEthernetポート３Ｄのみで通信している状態なのかを判別できない。通信の冗長化は通信の継続を目的としているが、一方の回線に障害が発生した状態だともう一方の回線に障害が発生すると通信が完全に途絶えることになる。通信が途絶えることを防ぐため、通信回線に異常が発生していることを速やかにユーザに知らせる必要があるが、前述の通りPLC１からはEthernetスイッチ３の回線状態が判別できないため、ユーザに知らせることができない。
【００１１】
このような事情を鑑みて、本発明は、Ethernetに代表される汎用的な規格により通信を行う通信機器との通信回線の冗長化を可能とし、通信回線の異常を検出可能なプログラマブルコントローラを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１３】
ＣＰＵユニットと、ベースユニットと、前記ベースユニットを介して前記ＣＰＵユニットと接続されるＨＵＢユニットと、を備えるプログラマブルコントローラであって、前記ＨＵＢユニットは、通信相手である通信装置と通信を行うための第１の通信ポート及び第２の通信ポートと、前記第１の通信ポート及び前記第２の通信ポートが正常状態であるか、又は、異常状態であるかを検出する回線状態検出回路と、前記第１の通信ポートと前記第２の通信ポートを切り替える回線切替回路と、を有し、前記ＣＰＵユニットは、前記ベースユニットを介して前記第１の通信ポートの異常状態を検出したとき、前記第１の通信ポートから前記第２の通信ポートへの切替指示を前記回線切替回路に出力することを特徴とするプログラマブルコントローラである。
【発明の効果】
【００１４】
本発明によれば、Ethernetに代表される汎用的な規格により通信を行う通信機器との通信回線の冗長化を可能とし、通信回線の異常を検出可能なプログラマブルコントローラを提供することができる。
【００１５】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】従来のプログラマブルコントローラのEthernet通信の構成例である。
【図２】実施例１におけるプログラマブルコントローラのEthernet通信の構成例である。
【図３】実施例１における通信回線切替フローの例である。
【図４】実施例２におけるプログラマブルコントローラのEthernet通信の構成例である。
【発明を実施するための形態】
【実施例１】
【００１７】
以下、本発明の実施の形態を、図面を用いて説明する。
【００１８】
なお、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明などの関係にある。
【００１９】
また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合などを除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良いものとする。
【００２０】
さらに、以下の実施の形態において、その構成要素（要素ステップなどを含む）は、特に明示した場合及び原理的に明らかに必須であると考えられる場合などを除き、必ずしも必須のものではないことは言うまでもない。
【００２１】
また、実施の形態を説明するための全図において同一機能を有する部材には同一の符号を付し、その繰り返しの説明は省略する。
【００２２】
図２は本発明を適用したプログラマブルコントローラ（PLC）のEthernet通信の構成例であり、通信を冗長化する機能を有する。なお、本実施例では、Ethernet通信規格を例に説明するが、Ethernet通信規格以外の通信規格でも適用可能である。
【００２３】
本実施例では機能毎にユニットを分けたプログラマブルコントローラを使用する。プログラマブルコントローラはCPUユニット６、HUBスイッチユニット５、ベースユニット７から構成される。CPUユニット６にはEthernetポート、マイクロプロセッサが実装されている。CPUユニット６のEthernetポートは、同一ベースユニット７上に実装されているHUBユニット５のEthernetポート(対PLC)５Ｂに接続されている。HUBユニット５は、通信相手と通信を行うためのEthernetポート５Ｃ、５Ｄを有する。図１では、同じ構成からなるプログラマブルコントローラを、通信相手の例として示している。また、HUBユニット５は回線状態検出回路５Ａ、回線切替回路５Ｅを有している。回線状態検出回路５Ａは、Ethernetポート５Ｂ、５Ｃ、５Ｄが正常状態であるか、又は、異常状態であるかを検出して、その情報をメモリに保持する。回線切替回路５Ｅは、Ethernetポート５Ｃと５Ｄを切り替える。具体的には、マイクロプロセッサが、ベースユニットを介して、Ethernetポート５Ｃ、５Ｄの状態を把握し、例えばEthernetポート５Ｃの異常状態を検出したとき、Ethernetポート５Ｄへの切替指示を回線切替回路５Ｅに出力する。回線切替回路５Ｅは、その切替指示に従って、通信に使用するEthernetポートを、５Ｃから５Ｄに切り替える。
【００２４】
図３は、回線切替のフローを示す。回線状態検出回路５Ａは、Ethernetポート(主)５Ｃにて通信相手機器とのコネクションを確立し通信開始する（８Ａ）。通信開始後、内部タイマの更新を開始し（８Ｂ）、想定外のコネクション切断があるかを検出する（８Ｃ）。検出された場合には、Ethernetポート(主)５Ｃが異常状態であると判定する。検出されない場合、通信相手機器からパケットを受信するかを検出する。予め決められた時間内にパケットを受信した場合には、内部タイマをリセットして更新する。通信相手機器からパケットを受信しない場合、内部タイマの経過値が予め決められた時間（タイムアウト時間）を越えたかを判定する（８Ｅ）。超えた場合、Ethernetポート(主)５Ｃが異常状態であると判定する。、Ethernetポート(主)５Ｃが異常状態であると判定した場合、回線状態検出回路５Ａ内のメモリの回線状態の情報に、異常情報を設定する（８Ｆ）。その後、CPUユニットのマイクロプロセッサが、回線状態検出回路５Ａ内のメモリの回線状態の情報から異常状態を検出したとき、回線切替回路５Ｅに切替指示を行う。回線切替回路５Ｅは、CPUユニットからの指示に従って通信ポートをEthernetポート(副)５Ｄに切り替える（８Ｇ）。
【００２５】
また、Ethernetポートを有するHUBユニット５同士で接続する場合、ユーザが指定するパケット以外に回線状態検出回路５Ａ双方で周期的に生存確認用のパケットを送信し回線のチェックを行う。生存確認用パケットの送信周期を過ぎても相手の生存確認用パケットを受信できない、想定外のコネクション切断を検出、想定外の生存確認パケットを受信したなど回線のチェックで異常を検出した場合、回線の異常と判断し、CPUユニットからの指示に従って通信ポートをEthernetポート(副)５Ｄに切り替える。
【００２６】
回線状態検出回路５Ａ、回線切替回路５Ｅは、ベースユニット７上のデータ送受信用バス７Ａを介しCPUユニット６のマイクロプロセッサに接続されている。回線状態検出回路５ＡはEthernetポート(主)５Ｃ、Ethernetポート(副)５Ｄの状態を回路内のメモリに保持、その情報を常時更新している。そして、CPUユニットが定期的に回線状態検出回路５Ａ内のメモリを読むことにより、Ethernetスイッチユニット５の回線の状態を把握することができる。これにより、通信回線に異常が発生している場合にはエラー表示により、ユーザにEthernetポートが冗長化されていない状態であることを知らせることができる。さらに回線切替回路５ＥはCPUユニット６からの指令によりEthernetポート(対PLC)５Ｂにて受信したパケットをEthernetポート(主)５Ｃ、Ethernetポート(副)５Ｄのどちらから出力するか切り替えることができる。なお、CPUユニットが定期的に回線状態検出回路５Ａ内のメモリを読むのではなく、回線状態検出回路５Ａが異常状態を検出したときに、その情報をCPUユニットに知らせるように構成してもよい。
【００２７】
なお、本実施例では冗長化を行う通信ポートにEthernetポートを使用しているがこのEthernetポートはEthernetのパケットを光通信にメディア変換する光通信用ポートでもよい。
【００２８】
本実施例によれば、プログラマブルコントローラのEthernet通信において、任意のEthernet通信機器との通信回線の冗長化が可能である。また、プログラマブルコントローラのCPUから通信回線の状態を監視することが可能となるため、異常状態が発生した場合に、ユーザに知らせることが可能となる。
【実施例２】
【００２９】
図４は、第２の実施形態のプログラマブルコントローラ（PLC）のEthernet通信の構成例である。Ethernetポートを有するHUBユニット５を複数台使用することにより通信回線の多重化が可能になる。HUBユニット５のEthernetポート(主)５Ｃは通信相手に、もう一方のEthernetポート(副)５Ｄは隣のEthernetスイッチユニット８のEthernetポート(対PLC)８Ｂと接続する。
【００３０】
CPUユニット６はHUBユニット５のEthernetポート(主)５Ｃの異常を検出した場合、パケットを送受信するEthernetポートをHUBユニット８と接続されているEthernetポート(副)５Ｄに切り替える。Ethernetポート５Ｄに接続されているEthernetスイッチユニット８も同様にEthernetポート(主)８Ｃは通信相手に、もう一方のEthernetポート(副)８Ｄは隣のEthernetスイッチユニット９と接続する。CPUユニット６はHUBユニット８のEthernetポート(主)８Ｃの異常を検出した場合、パケットを送受信するHUBユニットのEthernetポートをHUBユニット９と接続されているEthernetポート(副)８Ｄに切り替える。これをHUBユニットが存在する台数分行うことにより通信回線の多重化が可能となる。さらに、回線状態検出回路５Ａ、８Ａ、９Ａは、通信相手との通信回線が確立していない状態（異常状態）を、自身のメモリで管理している。そのため、CPUユニット６は、そのメモリの情報を参照することにより、通信に使用する通信ポートを決定することができる。CPUユニット６は、通信回線が確立不可能なHUBユニットをスキップし、別のHUBユニットのEthernetポートに切り替えることも可能となる。これにより、通信が途絶える時間を最小限に抑えることができる。
【符号の説明】
【００３１】
５  HUBユニット
５Ａ  回線状態検出回路
５Ｂ  Ethernetポート(対PLC)
５Ｃ  Ethernetポート(主)
５Ｄ  Ethernetポート(副)
５Ｅ  回線切替回路
６  CPUユニット
７  ベースユニット
７Ａ  データ送受信用バス
【図１】
2018045399.tif 000003
【図２】
2018045399.tif 000004
【図３】
2018045399.tif 000005
【図４】
2018045399.tif 000006