(57)【要約】【課題】複雑な回路を実装することなく、稼働中のＣＰＵモジュールの異常を待機中のＣＰＵモジュールが検出可能とする。【解決手段】二重化プログラマブルコントローラ１のＣＰＵモジュール１０，２０は、ＣＰＵ１１，２１と、ＣＰＵ１０，２０に接続された内部バス１６，２６と、稼働中のＣＰＵモジュール１０のＣＰＵ１１である稼働ＣＰＵ１１が正常に稼働しているか否かを判定し、正常に稼働していると判定した場合に真となり、正常に稼働していないと判定した場合に偽となる稼働判定信号を出力する稼働判定部１５，２５とを備え、稼働中のＣＰＵモジュール１０は、稼働判定信号が偽となった場合に、内部バス１６をベースモジュール４０から切り離し、待機中のＣＰＵモジュール２０は、稼働判定信号が偽となった場合に、内部バス２６をベースモジュール４０に接続して稼働させる。【選択図】図１
2017054213.tif 000002
【特許請求の範囲】
【請求項１】
ベースモジュールに接続された２つのＣＰＵモジュールを備え、稼働中のＣＰＵモジュールに異常が発生したときに、待機中のＣＰＵモジュールに切り替える二重化プログラマブルコントローラであって、
前記ＣＰＵモジュールはそれぞれ、
ＣＰＵと、
前記ＣＰＵに接続された内部バスと、
前記稼働中のＣＰＵモジュールのＣＰＵである稼働ＣＰＵが正常に稼働しているか否かを判定し、正常に稼働していると判定した場合に真となり、正常に稼働していないと判定した場合に偽となる稼働判定信号を出力する稼働判定部とを備え、
前記稼働中のＣＰＵモジュールは、前記稼働判定信号が偽となった場合に、該ＣＰＵモジュールの前記内部バスを前記ベースモジュールから切り離し、
前記待機中のＣＰＵモジュールは、前記稼働判定信号が偽となった場合に、該ＣＰＵモジュールの前記内部バスを前記ベースモジュールに接続して稼働させる、二重化プログラマブルコントローラ。
【請求項２】
前記ＣＰＵモジュールはそれぞれ、
ゲート制御信号を生成するゲート制御回路と、
前記ゲート制御信号に基づき、前記ＣＰＵから入力される稼働信号を出力するか又は出力をハイインピーダンス状態とするかを決定するスリーステートバッファと、を更に備え、
前記稼働判定部は、前記稼働中のＣＰＵモジュールのスリーステートバッファが出力する信号に基づいて、前記稼働ＣＰＵが正常に稼働しているか否かを判定する、請求項１に記載の二重化プログラマブルコントローラ。
【請求項３】
前記ＣＰＵはバス有効信号及び稼働・待機切替信号を出力し、
前記ゲート制御回路は、前記バス有効信号と前記稼働・待機切替信号の反転との論理積で示された信号、及び前記稼働・待機切替信号と前記稼働判定信号との論理積で示された信号の論理和を前記ゲート制御信号とする、請求項２に記載の二重化プログラマブルコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、停止不可の重要な製造ライン等に使用されるプログラマブルコントローラの適用において、ＣＰＵモジュールを２つ実装し、一方のＣＰＵモジュールは待機させ、稼働中のＣＰＵモジュールに故障等の異常が発生した場合に、待機中のＣＰＵモジュールがＩＯモジュールのバスの制御を継続する二重化プログラマブルコントローラに関する。
【背景技術】
【０００２】
プログラマブルコントローラのＣＰＵモジュールは、モジュールの中で処理能力が高く、それゆえ構成部品が多く、なお且つ高集積な半導体部品を使うため、ＣＰＵモジュールの故障率は高い。そのため、停止不可の重要な製造ライン等ではＣＰＵモジュールを２つ実装した二重化システムが適用される。二重化システムにおいては、ＣＰＵモジュールの一方が故障した場合、故障したＣＰＵモジュールは速やかに制御から解列され、待機していた他方のＣＰＵモジュールに制御が切り替わり、プログラマブルコントローラの制御が続行される。
【０００３】
図４は、ＣＰＵモジュールを二重化した従来の二重化プログラマブルコントローラの概略構成を示す図である。二重化プログラマブルコントローラ２は、稼働中（マスター）のＣＰＵモジュールである第１ＣＰＵモジュール５０と、待機中（スレーブ）のＣＰＵモジュールである第２ＣＰＵモジュール６０とを備える。
【０００４】
第１ＣＰＵモジュール５０では、ＣＰＵ５１と２ポートメモリ５２が接続されるとともに、ＣＰＵ５１と２ポートメモリ５２とバス調停回路５３が接続される。バス調停回路５３はベースモジュールバス８１と接続される。第２ＣＰＵモジュール６０も同様に、ＣＰＵ６１と２ポートメモリ６２が接続されるとともに、ＣＰＵ６１と２ポートメモリ６２とバス調停回路６３が接続される。バス調停回路６３はベースモジュールバス８１と接続される。ＩＯモジュール７０はベースモジュールバス８１に接続され、制御される。
【０００５】
さらに、バス調停回路５３とバス調停回路６３は、調停入出力信号ＡとＢＵＳＹ信号Ｂにより接続され、ベースモジュールバス８１が第１ＣＰＵモジュール５０と第２ＣＰＵモジュール６０に同時に使用されないように調停を行う。
【０００６】
従来の二重化プログラマブルコントローラ２は、第１ＣＰＵモジュール５０の異常を第２ＣＰＵモジュール６０により検出するために、第１ＣＰＵモジュール５０によって２ポートメモリ５２に書き込まれたデータを、第２ＣＰＵモジュール６０が２ポートメモリ６２にコピーし、第２ＣＰＵモジュール６０により読み出し可能にする手段と、第１ＣＰＵモジュール５０の２ポートメモリ５２の稼働・待機切替要求信号を書き込む手段と、第２ＣＰＵモジュール６０の２ポートメモリ６２の稼働・待機切替要求信号を検出して稼働への切り替え制御をする手段とを有する。第１ＣＰＵモジュール５０は、第２ＣＰＵモジュール６０の２ポートメモリ６２に書き込まれた稼働・待機切替完了信号を検出して待機への切り替え制御を行う。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許公開２００６−９２０６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来技術では、第１ＣＰＵモジュール５０、第２ＣＰＵモジュール６０ともに、ＣＰＵと２ポートメモリとバス調停回路を実装する必要があり、部品点数が増え、回路が複雑となり、停止不可の重要な製造ラインに使用されるプログラマブルコントローラにも関わらず、ＣＰＵモジュールの故障率が高くなるおそれがあった。そこで、稼働中の第１ＣＰＵモジュール５０によって２ポートメモリ５２に書き込まれたデータを第２ＣＰＵモジュール６０の２ポートメモリ６２にコピーして第２ＣＰＵモジュール６０が読み出し可能にするという手段を設けず、さらにバス調停回路を設けることなく、第１ＣＰＵモジュール１０の異常を第２ＣＰＵモジュール２０により検出することが求められていた。
【０００９】
かかる事情に鑑みてなされた本発明の目的は、ＣＰＵモジュールに２ポートメモリやバス調停回路などの複雑な回路を実装することなく、簡単な回路で稼働中のＣＰＵモジュールの異常を待機中のＣＰＵモジュールにより検出することが可能な二重化プログラマブルコントローラを提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明に係る二重化プログラマブルコントローラは、ベースモジュールに接続された２つのＣＰＵモジュールを備え、稼働中のＣＰＵモジュールに異常が発生したときに、待機中のＣＰＵモジュールに切り替える二重化プログラマブルコントローラであって、前記ＣＰＵモジュールはそれぞれ、ＣＰＵと、前記ＣＰＵに接続された内部バスと、前記稼働中のＣＰＵモジュールのＣＰＵである稼働ＣＰＵが正常に稼働しているか否かを判定し、正常に稼働していると判定した場合に真となり、正常に稼働していないと判定した場合に偽となる稼働判定信号を出力する稼働判定部とを備え、前記稼働中のＣＰＵモジュールは、前記稼働判定信号が偽となった場合に、該ＣＰＵモジュールの前記内部バスを前記ベースモジュールから切り離し、前記待機中のＣＰＵモジュールは、前記稼働判定信号が偽となった場合に、該ＣＰＵモジュールの前記内部バスを前記ベースモジュールに接続して稼働させる。
【００１１】
さらに、本発明に係る二重化プログラマブルコントローラにおいて、前記ＣＰＵモジュールはそれぞれ、ゲート制御信号を生成するゲート制御回路と、前記ゲート制御信号に基づき、前記ＣＰＵから入力される稼働信号を出力するか又は出力をハイインピーダンス状態とするかを決定するスリーステートバッファと、を更に備え、前記稼働判定部は、前記稼働中のＣＰＵモジュールのスリーステートバッファが出力する信号に基づいて、前記稼働ＣＰＵが正常に稼働しているか否かを判定する。
【００１２】
さらに、本発明に係る二重化プログラマブルコントローラにおいて、前記ＣＰＵはバス有効信号及び稼働・待機切替信号を出力し、前記ゲート制御回路は、前記バス有効信号と前記稼働・待機切替信号の反転との論理積で示された信号、及び前記稼働・待機切替信号と前記稼働判定信号との論理積で示された信号の論理和を前記ゲート制御信号とする。
【発明の効果】
【００１３】
本発明によれば、ＣＰＵモジュールに２ポートメモリやバス調停回路などの複雑な回路を実装することなく、簡単な回路で、稼働中のＣＰＵモジュールの異常を待機中のＣＰＵモジュールにより検出することができるようになる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る二重化プログラマブルコントローラの概略構成を示す図である。
【図２】本発明の一実施形態に係る二重化プログラマブルコントローラにおける稼働判定部の動作を説明する図である。
【図３】本発明の一実施形態に係る二重化プログラマブルコントローラの動作を説明するタイミングチャートである。
【図４】従来の二重化プログラマブルコントローラの概略構成を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の一実施形態について、図面を参照して詳細に説明する。
【００１６】
図１は、本発明の一実施形態に係る二重化プログラマブルコントローラの概略構成を示す図である。二重化プログラマブルコントローラ１は、第１ＣＰＵモジュール１０と、第２ＣＰＵモジュール２０と、ＩＯモジュール３０と、ベースモジュール４０とを備える。以下の説明において、第１ＣＰＵモジュール１０をプログラマブルコントローラの電源起動時に稼働するマスターＣＰＵモジュールとし、第２ＣＰＵモジュール２０を待機するスレーブＣＰＵモジュールとする。ベースモジュール４０は、ベースモジュールバス４１を備える。
【００１７】
二重化プログラマブルコントローラ１は、ベースモジュール４０に接続された２つのＣＰＵモジュールを備え、稼働中の第１ＣＰＵモジュール１０のＣＰＵに異常が発生したときに、待機中の第２ＣＰＵモジュール２０に切り替え、第２ＣＰＵモジュール２０を稼働させる。
【００１８】
第１ＣＰＵモジュール１０は、ＣＰＵ１１と、バスバッファ１２と、ゲート制御回路１３と、スリーステートバッファ１４と、稼働判定部１５とを備える。ＣＰＵ１１とバスバッファ１２は内部バス１６で接続される。
【００１９】
ＣＰＵ１１は、稼働信号ａをスリーステートバッファ１４に出力し、バス有効信号ｂ及び稼働・待機切替信号ｃをゲート制御回路１３に出力する。稼働信号は、ＣＰＵ１１が正常に稼働しているか否かの判定に用いられる信号であり、ＣＰＵの出力停止を判定することができるように、例えばトグル信号とする。バス有効信号は、ＣＰＵモジュールが稼働中である場合に真（１、Ｈ）となり、待機中である場合に偽（０、Ｌ）となる信号である。稼働・待機切替信号は、ＣＰＵモジュールが稼働中であり、稼働判定信号が偽から真に遷移した時に真となる信号である。
【００２０】
ゲート制御回路１３は、ＣＰＵ１１から入力されるバス有効信号ｂ及びＣＰＵ１１から入力される稼働・待機切替信号ｃの反転の論理積で示された信号と、ＣＰＵ１１から入力される稼働・待機切替信号ｃ及び稼働判定部１５から入力される稼働判定信号ｄの論理積で示された信号との論理和によりゲート制御信号ｅを生成し、スリーステートバッファ１４に出力する。
【００２１】
スリーステートバッファ１４は、ＣＰＵ１１から稼働信号ａが入力され、ゲート制御回路１３から入力されるゲート制御信号ｅの条件にて出力を制御する。スリーステートバッファ１４は、ゲート制御信号ｅが真の場合には、稼働信号ａを判定用稼働信号ｆとしてベースモジュール４０に出力する。一方、ゲート制御信号ｅが偽の場合には、出力がハイインピーダンス状態となり、稼働信号ａは出力されない。
【００２２】
バスバッファ１２は、ゲート制御信号ｅが真の場合には、内部バス１６をベースモジュールバス４１に接続する。一方、ゲート制御信号ｅが偽の場合には、バスバッファ１２は内部バス１６をベースモジュールバス４１から切り離す。
【００２３】
稼働判定部１５は、スリーステートバッファ１４から入力される判定用稼働信号ｆを監視することにより、稼働中の第１ＣＰＵモジュール１０のＣＰＵ１１が正常に稼働しているか否かを判定し、ＣＰＵ１１が正常に稼働していると判定した場合に真となり、ＣＰＵ１１が正常に稼働していないと判定した場合に偽となる稼働判定信号ｄをＣＰＵ１１及びゲート制御回路１３に出力する。本実施形態では稼働信号ａをトグル信号とし、稼働判定部１５は判定用稼働信号ｆがトグル信号（稼働信号ａ）である場合に稼働判定信号ｄを真とし、判定用稼働信号ｆがトグル信号でない場合に稼働判定信号ｄを偽とする。
【００２４】
図２は、稼働判定部１５の動作を説明する図である。稼働判定部１５は内部にカウンタを有する。このカウンタのカウンタ値ｌは、外部クロックなどにより加算され、稼働信号ａが偽から真に遷移したときに（図中での丸印の位置）、０にクリアされる。
【００２５】
カウンタ値ｌは、稼働信号ａがトグルされていれば０にクリアされるが、稼働信号ａのトグル出力が途絶えると、カウンタ値ｌは加算され続ける。稼働判定部１５は、カウンタ値ｌが０でない期間Ｔが所定の時間を超えるか、あるいはカウンタ値ｌが所定の値を超えると、第１ＣＰＵモジュール１０が正常に稼働していないと判定し、稼働判定信号ｄを真から偽へ遷移させる。
【００２６】
第２ＣＰＵモジュール２０は、ＣＰＵ２１と、バスバッファ２２と、ゲート制御回路２３と、スリーステートバッファ２４と、稼働判定部２５とを備える。ＣＰＵ２１とバスバッファ２２は内部バス２６で接続され、ＣＰＵ２１はバスバッファ２２を介してベースモジュールバス４１へ接続される。第２ＣＰＵモジュール２０の構成は第１ＣＰＵモジュール１０と同様であるため、説明を省略する。
【００２７】
ＩＯモジュール３０は、ベースモジュールバス４１に接続され、稼働するＣＰＵモジュールによって制御される。
【００２８】
次に、二重化プログラマブルコントローラ１の動作について説明する。図３は、二重化プログラマブルコントローラ１の動作を説明するタイミングチャートである。
【００２９】
電源起動時、マスターＣＰＵモジュールである第１ＣＰＵモジュール１０が稼働し、ＣＰＵ１１はトグル信号である稼働信号ａを出力する。また、ＣＰＵ１１はバス有効信号ｂを真、稼働・待機切替信号ｃを偽とし、その結果、ゲート制御信号ｅが真となる。
【００３０】
スリーステートバッファ１４は、ゲート制御信号ｅが真の間、トグル信号の稼働信号ａをそのまま判定用稼働信号ｆとして出力する。同時に、第１ＣＰＵモジュール１０の内部バス１６は、バスバッファ１２を介してベースモジュールバス４１と接続される。
【００３１】
稼働判定部１５は、判定用稼働信号ｆがトグル信号である場合に第１ＣＰＵモジュール１０は正常に稼働していると判定し、稼働判定信号ｄを真とする。ＣＰＵ１１は、稼働判定信号ｄが真になると、稼働・待機切替信号ｃを真とし、二重化プログラマブルコントローラ１の通常稼働状態となる。
【００３２】
スレーブＣＰＵモジュールである第２ＣＰＵモジュール２０は、第１ＣＰＵモジュール１０が稼働している間は待機する。そのため、ＣＰＵ２１はバス有効信号ｈを偽、稼働・待機切替信号ｉを偽とし、その結果、ゲート制御信号ｋは偽となる。ゲート制御信号ｋが偽のときは内部バス２６はベースモジュールバス４１に接続されず、第２ＣＰＵモジュール２０はベースモジュールバス４１にアクセスできない。
【００３３】
次に、ＣＰＵ１１が故障して出力が停止した場合の動作を説明する。図中の×印は、ＣＰＵ１１の出力が停止した時点を示している。
【００３４】
稼働信号ａのトグル出力が停止すると、判定用稼働信号ｆのトグル出力も停止する。すると、稼働判定部１５は、第１ＣＰＵモジュール１０が正常に稼働していないと判定し、稼働判定信号ｄを偽にする。その結果、ゲート制御信号ｅが偽となり、稼働信号ａは、判定用稼働信号ｆから切断される。なお、ＣＰＵ１１の故障により全ての出力が０となり、バス有効信号ｂ及び稼働・待機切替信号ｃが偽となった場合は、その時点でゲート制御信号ｅが偽となる。ゲート制御信号ｅが偽となると、内部バス１６はベースモジュールバス４１から切り離され、第１ＣＰＵモジュール１０はベースモジュールバス４１にアクセスできなくなる。
【００３５】
また、判定用稼働信号ｆのトグル出力が停止したので、稼働判定部２５は稼働判定信号ｊを偽とする。ＣＰＵ２１は、稼働判定信号ｊが偽となったことにより、ＣＰＵ１１に異常が発生したと判定し、バス有効信号ｈを真とする。その結果、ゲート制御信号ｋは真となる。
【００３６】
ＣＰＵ２１は、ＣＰＵ１１に代わり稼働信号ｇのトグル出力を開始する。スリーステートバッファ２４は、ゲート制御信号ｋが真の間、トグル信号の稼働信号ｇをそのまま判定用稼働信号ｆとして出力する。同時に、バスバッファ２２は内部バス２６をベースモジュールバス４１に接続する。
【００３７】
稼働判定部２５は、判定用稼働信号ｆがトグル信号である場合に、稼働判定信号ｊを真とする。稼働判定信号ｊが真である場合には、ＣＰＵ２１は稼働・待機切替信号ｉを真とし、第１ＣＰＵモジュール１０が稼働したときと同等な状態が再現される。このようにして、二重化プログラマブルコントローラ１は、判定用稼働信号ｆのトグル信号が途絶えると、稼働するＣＰＵモジュールを第１ＣＰＵモジュール１０から第２ＣＰＵモジュール２０に切り替える
【００３８】
上述したように、本発明に係る二重化プログラマブルコントローラ１は、稼働中のＣＰＵモジュール１０のＣＰＵ１１である稼働ＣＰＵ１１が正常に稼働しているか否かを判定し、稼働判定信号ｄ，ｊを出力する稼働判定部１５，２５を備える。そして、稼働中のＣＰＵモジュール１０は、稼働判定信号ｄが偽となった場合に、内部バス１６をベースモジュール４０から切り離し、待機中のＣＰＵモジュール２０は、稼働判定信号ｊが偽となった場合に、内部バス２６をベースモジュール４０に接続して稼働させる。このため、２ポートメモリやバス調停回路などの複雑な回路を実装することなく、稼働中のＣＰＵモジュールの異常を待機中のＣＰＵモジュールにより検出することができるようになる
【００３９】
上述の実施形態は代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、実施形態に記載の複数の構成ブロックを１つに組み合わせたり、あるいは１つの構成ブロックを分割したりすることが可能である。
【符号の説明】
【００４０】
１    二重化プログラマブルコントローラ
１０  第１ＣＰＵモジュール
２０  第２ＣＰＵモジュール
３０  ＩＯモジュール
４０  ベースモジュール
４１  ベースモジュールバス
１１，２１  ＣＰＵ
１２，２２  バスバッファ
１３，２３  ゲート制御回路
１４，２４  スリーステートバッファ
１５，２５  稼働判定部
１６，２６  内部バス
【図１】
2017054213.tif 000003
【図２】
2017054213.tif 000004
【図３】
2017054213.tif 000005
【図４】
2017054213.tif 000006