(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵと、１つ以上の前記ＣＰＵを搭載し、該搭載したＣＰＵに電力を供給する複数のベースボードを備え、前記ＣＰＵを前記ベースボード単位で多重化して冗長化を持たせる構成のコントローラシステムにおいて、
各ＣＰＵは、
前記各ＣＰＵのうち同一の前記ベースボードに搭載されているものを同一のグループとし、自己がどの連動グループに属するかを記憶する連動グループ記憶手段と、
稼働ＣＰＵに対して、待機切替え要求メッセージを発行する待機切替え要求メッセージ発行手段と、
前記待機切替え要求メッセージを受取ると、稼働状態から待機状態に切替える状態切替え手段と
を備え、
前記状態切替え手段は、自己が多重化しているＣＰＵが待機状態に入ると、待機状態から稼動状態に切替え、前記待機切替え要求メッセージ発行手段は、稼働／待機切替え要因が発生して自ＣＰＵが新たに稼働状態となった時、自ＣＰＵと異なる連動グループに属するＣＰＵに対し、前記要求メッセージを発行することによって、前記連動グループ単位で稼働系／待機系を切替えることを特徴とするコントローラシステム。
【請求項２】
前記ＣＰＵが故障し、該故障したＣＰＵを多重化しているＣＰＵも全て故障状態にある時、システムを運用停止状態とすることを特徴とする請求項１に記載のコントローラシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＣＰＵを１対１のペア構成により冗長性を持たせた情報処理装置に関し、更に詳しくはＣＰＵの稼働／待機切替えの制御に関する。
【０００２】
【従来の技術】
図６にプログラマブルコントローラ等のコントローラシステムの一般的な構成を示す。
【０００３】
この様なコントローラシステムは、ＣＰＵやメモリ等によって構成される１乃至複数のＣＰＵモジュール、制御を行う機器と接続され測定値や制御命令等を機器とやり取りするＩ／Ｏ（入出力）モジュール、不図示の通信モジュール等がベースボード１００に実装される構成を持ち、ＣＰＵが入力データを取込んで計算を行い、結果をＩ／Ｏモジュールに送信してＩ／Ｏモジュールに接続されている機器の制御を行う。同図の場合ベースボード１００−１〜１００−３の３つのベースボード上にＣＰＵモジュールＣＰＵ０〜ＣＰＵ７の８つのＣＰＵモジュールとＩ／ＯモジュールＩ／Ｏ０〜Ｉ／Ｏ３の４つのＩ／Ｏモジュールが実装されている。
【０００４】
ベースボード１００は実装されている各モジュールに電源を供給するもので、また同一ベースボード１００上に実装された各モジュールをパラレルバス１０１により接続する。またシステムを構成する全モジュールはシリアルバス１０２によりシリアル接続されている。コントローラシステムでは、このシリアルバス１０２により、モジュール間のＩ／Ｏデータ転送機能及びメッセージ通信機能、また各パラレルバス１０１により物理アクセス機能による高速データ転送を可能としている。
【０００５】
ところでこの様なコントローラシステムでは、信頼性向上の為、２つのＣＰＵモジュールを１組にしてシステムに冗長化を持たせた構成とする場合がある。
例えば図６の構成において、８つのＣＰＵモジュールのうちＣＰＵ０とＣＰＵ１、ＣＰＵ２とＣＰＵ３、ＣＰＵ４とＣＰＵ５、ＣＰＵ６とＣＰＵ７とでペアを構成して２重化を行う。またこの場合のシステムはデュプレックス構成で、初期状態としてＣＰＵ０、ＣＰＵ２、ＣＰＵ４、ＣＰＵ６が稼働状態、ＣＰＵ１、ＣＰＵ３、ＣＰＵ５、ＣＰＵ７が待機状態となっている。
【０００６】
図６の構成において、システムが稼動中の時は稼動ＣＰＵ間では主にパラレルバス１０１を用いてデータのやり取りが行われるが、このパラレルバス１０１を使用してデータの受け渡しができるＣＰＵモジュールの組合わせは限定される。図６の場合、ＣＰＵ０はベースボード１００−１上の他のＣＰＵモジュールＣＰＵ１〜ＣＰＵ３とはパラレルバス１０１−１を介してやり取りを行えるが、ベースボード１００−２上のＣＰＵ４〜ＣＰＵ７とはパラレルバス１０１による通信は行えない。
【０００７】
この点に対処するものとして、図７の構成のように、全ＣＰＵモジュールを１つのベースボード１００−４上に実装してＣＰＵモジュール間を１つのパラレルバス１０１−４によって接続する構成がある。この場合、全ＣＰＵモジュール間でこのパラレルバス１０１−４によってデータ転送が可能となる。
【０００８】
あるいは図８の様な構成とすることも出来る。この図８の構成は、全ての稼動ＣＰＵを１つのベースボード上に実装した構成で、稼動ＣＰＵ０、ＣＰＵ２、ＣＰＵ４、ＣＰＵ６間ではパラレルバス１０１−５を介して互いにデータ転送を行える。
【０００９】
【発明が解決しようとする課題】
一般的にベースボード１００は、コスト等の問題により、モジュール電源スイッチやモジュールの活線脱着機能などは備えていない。その為、例えば図７に示した構成の場合、初期状態からＣＰＵ０が故障となった時にシステムを稼動したまま故障したＣＰＵ０を交換しようとしても、ベースボード１００−４上には４台のＣＰＵモジュールが稼動運用中である為、電源をオフにして、ＣＰＵ０の交換保守をすることはできない。
【００１０】
さらに図８のような構成にした場合、上述したシステム稼動中に故障ＣＰＵモジュールの交換が行えない問題に加え、例えば初期状態からＣＰＵ０が故障してＣＰＵ１が稼働ＣＰＵに切り替った場合、ＣＰＵ１と他の稼働状態にあるＣＰＵ２、ＣＰＵ４、ＣＰＵ６との間でパラレルバスによるデータ転送が行うことが出来ない。
【００１１】
更に上記図７及び図８の構成の場合、ペアとなっているＣＰＵの両方、例えばＣＰＵ０とＣＰＵ１が共に故障した場合、３台の稼働ＣＰＵで運用することになり本来の性能を発揮できなくなってしまう。
【００１２】
上記問題点を鑑み、本発明は、稼働ＣＰＵ間にて、ソフトウエア処理が無く高速データ転送が可能なパラレルバスを常時使用でき、更にシステムを稼動させて制御を継続させたまま故障したＣＰＵを交換保守することが可能なコントローラシステムを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記問題点を解決するため、本発明によるコントローラシステムは、複数のＣＰＵを備え、該ＣＰＵを多重化して冗長化を持たせる構成を前提とし、各ＣＰＵは、待機切替え要求メッセージ発行手段及び状態切替え手段を備える。
【００１４】
待機切替え要求メッセージ発行手段は、稼働ＣＰＵに対して、待機切替え要求メッセージを発行する。
状態切替え手段は、上記待機切替え要求メッセージを受取ると、稼働状態から待機状態に切替える。
【００１５】
上記各ＣＰＵは、例えば、複数の連動グループに連動グループ分けされ、各ＣＰＵは自己がどの連動グループに属するかを連動グループ記憶手段に記憶する。そして上記状態切替え手段は、自己が多重化しているＣＰＵが待機状態に入ると、待機状態から稼動状態に切替え、上記待機切替え要求メッセージ発行手段は、自己が多重化するＣＰＵが故障するなど稼働／待機切替え要因が発生して自ＣＰＵが新たに稼働状態となった時、自ＣＰＵと異なる連動グループに属するＣＰＵに対し、上記要求メッセージを発行する。
【００１６】
またＣＰＵが故障し、該故障したＣＰＵを多重化しているＣＰＵも全て故障状態にある時、コントローラシステムは運用停止状態に入る。
本発明によれば、自己が多重化しているＣＰＵの故障等により新たに稼動状態となったＣＰＵは、他の稼動状態にあるＣＰＵに待機切替えメッセージを発行することによりそのＣＰＵを待機状態にすることが出来る。従って、例えば、自己と同一のベースボード上に実装されているＣＰＵ等任意のＣＰＵを稼動状態にするように設定することが出来る。
【００１７】
【発明の実施の形態】
以下に本発明の一実施形態を説明する。
図１は、本実施形態のコントローラシステムの基本構成を示す図である。同図のシステムは従来例と比較の為８つのＣＰＵと４つのＩ／Ｏを備え、システムが動作中そのうちの４つが稼動状態にある構成としており、この場合、基本接続構成は図８と同じになる。
【００１８】
同図のコントローラシステムは、システムを構成する各モジュールが３つのベースボード１０に実装される構成で、ベースボード１０−１にはＣＰＵモジュールＣＰＵ０、ＣＰＵ２、ＣＰＵ４及びＣＰＵ６が、またベースボード１０−２にＣＰＵモジュールＣＰＵ１、ＣＰＵ３、ＣＰＵ５及びＣＰＵ７が、更にベースボード１０−３にＩ／ＯモジュールＩ／Ｏ０、Ｉ／Ｏ１、Ｉ／Ｏ２及びＩ／Ｏ３が実装されており、各モジュールにはベースボード１０から電力が供給されている。また同一ベースボード１０内の各モジュールを接続するパラレルバス１１（１１−１〜１１−３）と、全モジュールをシリアル接続するシリアルバス１２を備え、このシリアルバス１２を介して後述するステータス情報をやり取りしている。
【００１９】
システムを構成する８つＣＰＵモジュールは図１に示すように、ベースボード１０−１に実装されているＣＰＵ０、ＣＰＵ２、ＣＰＵ４及びＣＰＵ６を連動グループ１、ベースボード１０−２に実装されているＣＰＵ１、ＣＰＵ３、ＣＰＵ５及びＣＰＵ７を連動グループ２として定義されており、各ＣＰＵは自己や他のＣＰＵがどの連動グループに属するか記憶している。そして各ＣＰＵは、ＣＰＵ０とＣＰＵ１、ＣＰＵ２とＣＰＵ３、ＣＰＵ４とＣＰＵ５及びＰＵ６とＣＰＵ７と連動グループ１のＣＰＵと連動グループ２のＣＰＵの組合わせにより２重化されており、初期状態として、連動グループ１側のＣＰＵが全て稼働状態、連動グループ２側のＣＰＵが全て待機状態となっている。
【００２０】
コントローラシステムが稼動状態に入ると、各ＣＰＵモジュールはシリアルバス１２からサイクリックにステータス情報を送信する。
図２は、このステータス情報の構成例を示すものである。
【００２１】
図２の例の場合、このステータス情報は８ビットのデータで、各ビットは送信元となっているＣＰＵモジュールの状態をそれぞれ表す。例えば図２の場合ビット７はそのＣＰＵモジュール上でアプリケーションソフトが稼動中か否か、又ビット６はハードウエア故障等の致命的故障である重故障であることを、ビット５は一時的な故障である軽故障であることを示すフラグとなっている。又ビット４は、そのＣＰＵモジュールが現在稼動中であるのか待機中であるのかを示す。
【００２２】
ＣＰＵモジュールは、シリアルバス１２上を定周期で送信されてくるステータス情報をサイクリックに受信することにより他のＣＰＵモジュールの状態を監視し、正常に動作しているかどうかをチェックする。このステータス情報により、各ＣＰＵモジュールは他のＣＰＵモジュールの故障状態、稼動／待機状態を認識することが出来る。
【００２３】
図３及び図４は、システムが稼動中にＣＰＵモジュールに異常が発生した時の処理を示す図である。
稼働状態にあるＣＰＵ０に異常が発生すると、その異常内容に基づいてビット６又はビット７を１としたステータス情報をシリアルバス１２上に送信する。ＣＰＵ０を２重化してペアとなっているＣＰＵ１はこのステータス情報からＣＰＵ０の故障を検知し、図３に示すように、待機状態から稼働状態に切替る。
【００２４】
この図３の状態では、ＣＰＵ１、ＣＰＵ２、ＣＰＵ４及びＣＰＵ６が稼動状態にあり、このままではＣＰＵ１と他の稼動ＣＰＵとではパラレルバス１１によるデータ転送は行えない。また、ＣＰＵ２、ＣＰＵ４、ＣＰＵ６が稼働状態である為、故障したモジュールＣＰＵ０の交換保守の為にベースボード１０−１の電源をオフにすることは出来ない。
【００２５】
よって、稼働状態に切り替ったＣＰＵ１は、まずシリアルバス１２上の各ＣＰＵモジュールのステータス情報から他のＣＰＵ０、ＣＰＵ２、ＣＰＵ３、ＣＰＵ４、ＣＰＵ５、ＣＰＵ６、ＣＰＵ７の稼働／待機状態を調べる。その結果、ＣＰＵ０は故障状態、ＣＰＵ２、ＣＰＵ４、ＣＰＵ６が稼働状態、ＣＰＵ３、ＣＰＵ５、ＣＰＵ７は待機状態であることを認識する。
【００２６】
ＣＰＵ１は自己と同じ連動グループ２に属さないＣＰＵは、連動切替えグループ設定と不一致であると判断し、シリアルバス１２から待機切替え要求メッセージを発行する。
【００２７】
図４にＣＰＵ１による待機切替え要求メッセージの発行を示す。
ＣＰＵ１は自己が連動グループ２に属するので、連動グループ２に属さず連動切替えグループ設定と不一致であると判断した、ＣＰＵ２、ＣＰＵ４、ＣＰＵ６を連動グループ２のＣＰＵ３、ＣＰＵ５、ＣＰＵ７と切替えるため、図４に示すように、シリアルバス１２からこれらのＣＰＵモジュールに待機切替え要求メッセージを発行する。このメッセージを受信した稼働ＣＰＵは、強制的に待機ＣＰＵに切替る。
【００２８】
待機切替え要求メッセージを受信したＣＰＵ２、ＣＰＵ４、ＣＰＵ６は稼働状態から待機状態に移行する。また待機状態になったＣＰＵを２重化してペアとなっているＣＰＵ３、ＣＰＵ５、ＣＰＵ７は、シリアルバス１２上のステータス情報からペアとなっているＣＰＵが待機状態になったことを検出すると、自己を待機状態から稼働状態に移行する。
【００２９】
この様に稼動ＣＰＵが全て連動グループ２に属するものに切り替った後の状態では、稼働ＣＰＵ間ではパラレルバス１１−２によるデータ転送が可能となる。また、故障したＣＰＵ０と同じベースボード１０−１上のＣＰＵ２、ＣＰＵ４、ＣＰＵ６は全て待機状態となっている為、ベースボード１０−１の電源をオフにして故障したＣＰＵ０のモジュールを交換保守することが出来る。
【００３０】
次にペアとなっているＣＰＵが共に故障した場合について説明する。
図５のように、ＣＰＵ０とＣＰＵ１が共に故障状態になった場合、連動グループ１、及び連動グループ２共に４台の稼働ＣＰＵによる運用を行うことは出来ない。
【００３１】
他のＣＰＵの稼働／待機状態を監視している各ＣＰＵは、シリアルバス上のステータス情報から、ＣＰＵ０及びＣＰＵ１が故障状態にあることを検出し、連動ＣＰＵグループ動作が実行できないことを認識すると、各ＣＰＵは運用停止状態となる。この運用停止状態に入るとＣＰＵモジュールは、アプリケーションプログラムの実行やＩ／Ｏデータの転送を停止してシステムを停止状態にする。また、ＣＰＵモジュールにあるアラームＬＥＤを点灯し、またアプリケーションプログラム実行ＬＥＤを消灯して、運用者に通知する。これにより、運用者は、コントローラシステムが故障によって停止状態に入ったことが判り、直ちに保守を行うことが出来る。
【００３２】
尚上記した実施形態では、ＣＰＵを２重化したコントローラシステムについて記載しているが、本発明はこれに限らず、連動グループ３、４・・と拡張することによりＣＰＵを３重化以上にした構成にも適用することが出来る。この場合、待機状態にある連動グループのうち稼動状態に切替えるものの選択方法は様々な手法が考えられるが、例えば、連動グループに稼動状態になる優先順位を設定（連動グループ１、連動グループ２、．．の順に稼動等）しておいたり、或はネットワークアドレス順（ネットワークアドレスの大きな（小さな）順）に稼動状態に切替える。
【００３３】
又本実施形態では、各ＣＰＵが自己及び他のＣＰＵがどの連動グループに属するかを記憶しておき、この記憶を元に他のＣＰＵが自己と同じ連動グループに属するかを判断していたが、この様な連動グループへの所属を記憶しておく方式のほか、例えば各ＣＰＵのネットワークアドレスから自己と同じ連動グループに属するかどうかを判断する構成として実現することも出来る。
【００３４】
更に本実施形態では連動グループを同一のベースボードに実装されているグループとして設定したが、本発明はこの様な連動グループの設定だけに限らず、故障等の稼働／待機切替え要因の発生により新たに稼動させたいＣＰＵの組合わせにより任意に連動グループを設定することが出来る。
【００３５】
【発明の効果】
本発明に基づいたコントローラシステムによれば、故障したＣＰＵが生じた場合に於ても、稼働ＣＰＵ間でのパラレルバスによるデータ転送を可能とする。
【００３６】
また、故障ＣＰＵモジュールに対して一旦ベースボードの電源を切ってから故障ＣＰＵモジュールを交換保守することが出来る。
【図面の簡単な説明】
【図１】本実施形態のコントローラシステムの基本構成を示す図である。
【図２】ステータス情報の構成を示す図である。
【図３】故障ＣＰＵ発生時の待機ＣＰＵの切替えを示す図である。
【図４】ＣＰＵ１による待機切替え要求メッセージの発行を示す図である。
【図５】ペアＣＰＵが同時に故障した時の状態を示す図である。
【図６】コントローラシステムの一般的な構成を示す図である。
【図７】全ＣＰＵモジュールを１つのベースボード上に実装した構成のコントローラシステムを示す図である。
【図８】全ての稼動ＣＰＵモジュールを１つのベースボード上に実装した構成を示す図である。
【符号の説明】
１０、１００  ベースボード
１１、１０１  パラレルバス
１２、１０２  シリアルバス
【図１】
0004465824.tif 000002
【図２】
0004465824.tif 000003
【図３】
0004465824.tif 000004
【図４】
0004465824.tif 000005
【図５】
0004465824.tif 000006
【図６】
0004465824.tif 000007
【図７】
0004465824.tif 000008
【図８】
0004465824.tif 000009