(57)【要約】【課題】  冗長化制御システムにおいて、稼働系の電源断の発生後、速やかに待機系を稼働系に切り替える。【解決手段】  稼働系のコントローラ１０Ａのシステム管理部５４は、電源２０からの電源電圧の供給の遮断を電源電圧監視部５６により検知すると、自系のネットワーク管理部５１により電源断状態通知を待機系のコントローラ１０Ｂに送る。待機系のコントローラ１０Ｂのシステム管理部５４は、自系のネットワーク管理部５１により電源断状態通知を受け取ると、待機系から稼働系への切り替えを行う。【選択図】図２
2016095770.tif 000002
【特許請求の範囲】
【請求項１】
コントローラ間通信手段を介して相互に接続された２台のコントローラを含み、一方のコントローラが稼働系、他方のコントローラが待機系となり、稼働系のコントローラが外部機器を制御する冗長化制御システムにおけるコントローラであって、
当該コントローラに供給される電源電圧を監視する電源電圧監視部と、
当該コントローラが稼働系である期間内に前記電源電圧の異常を前記電源電圧監視部により検知した場合に、前記コントローラ間通信手段を介して待機系のコントローラに異常通知を送信する異常通知手段と、
当該コントローラが待機系である期間内に前記コントローラ間通信手段を介して前記異常通知が受信された場合に、当該コントローラを待機系から稼働系に切り替える冗長化切り替え手段と
を具備することを特徴とするコントローラ。
【請求項２】
前記異常通知手段は、前記電源電圧が所定の閾値を下回ったことを前記電源電圧監視部が検知した場合に、前記異常通知を送信することを特徴とする請求項１に記載のコントローラ。
【請求項３】
前記コントローラの前記冗長化切り替え手段は、当該コントローラが待機系である期間内に、前記稼働系のコントローラから前記コントローラ間通信手段を介して周期的に送信される情報が所定時間以上に亙って受信されなかった場合に、当該コントローラを稼働系に切り替えることを特徴とする請求項１または２に記載のコントローラ。
【請求項４】
前記コントローラは、前記電源電圧の供給が途絶えた場合に当該コントローラに電力を供給する補助電源を有することを特徴とする請求項１〜３のいずれか１の請求項に記載のコントローラ。
【請求項５】
前記コントローラの前記冗長化切り替え手段は、当該コントローラが待機系である期間内に前記異常通知が受信された場合、前記稼働系のコントローラが稼働系として動作することができない旨を前記稼働系のコントローラに確認し、その後、当該コントローラを稼働系に切り替えることを特徴する請求項１〜４のいずれか１の請求項に記載のコントローラ。
【請求項６】
コントローラ間通信手段を介して相互に接続された２台のコントローラを含み、一方のコントローラが稼働系、他方のコントローラが待機系となり、稼働系のコントローラが外部機器を制御する冗長化制御システムであって、
前記２台のコントローラの各々が、
当該コントローラに供給される電源電圧を監視する電源電圧監視部と、
当該コントローラが稼働系である期間内に前記電源電圧の異常を前記電源電圧監視部により検知した場合に、前記コントローラ間通信手段を介して待機系のコントローラに異常通知を送信する異常通知手段と、
当該コントローラが待機系である期間内に稼働系のコントローラから前記コントローラ間通信手段を介して前記異常通知が受信された場合に、当該コントローラを待機系から稼働系に切り替える冗長化切り替え手段と
を具備することを特徴とする冗長化制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、機器を制御するコントローラおよびこれを用いた冗長化制御システムに関する。
【背景技術】
【０００２】
工場や各種プラント等の産業施設においては、各種操業を制御するために制御システムが構築されることが多い。制御システムには、産業施設内に設置されたセンサからの監視データの収集やその収集結果に応じて電動機等の駆動制御を行うコントローラが含まれている。このようなコントローラとしては、ＤＣＳ（Distributed Control System：分散型制御システム或いは分散型制御装置）やプログラマブルロジックコントローラ（以下、ＰＬＣ）が用いられる。一般的なＦＡ（Factory Automation）システムでは制御装置としてＰＬＣが用いられることが多く、高信頼性を要求されるプラント設備では制御装置としてＤＣＳが用いられることが多い。
【０００３】
この種の制御システムでは、制御システムの故障に起因する工場等の操業停止を回避するために、コントローラ等の監視制御系統の二重化が行われることが一般的である。ここで、監視制御系統の二重化とは、コントローラ等の監視制御系統を２系統設け、その一方を稼働系、他方を待機系として動作させることをいう。稼働系のコントローラは、監視対象機器から監視データを収集し、収集した監視データを用いてアプリケーションを実行し、これにより得られた制御データを制御対象機器に供給する。そして、待機系は、稼働系の故障に備えて待機する。以下では、この二重化された制御システムのことを冗長化制御システムと呼ぶ。
【０００４】
図５は、冗長化制御システム９の構成を示すブロック図である。図５には、コントローラ９０Ａおよびコントローラ９０Ｂの２台のコントローラからなる冗長化制御システム９が図示されている。図５に示すように、コントローラ９０Ａおよび９０Ｂは、ネットワーク回線９１を介して相互に接続されている。このネットワーク回線９１は、コントローラ９０Ａおよび９０Ｂ間の通信を仲介するコントローラ間通信手段である。また、図示は省略したが、コントローラ９０Ａおよびコントローラ９０Ｂには、Ｉ／Ｏ機器等を介して監視対象機器や制御対象機器が接続されている。そして、図示の例では、コントローラ９０Ａおよび９０Ｂの一方が稼働系となり、他方が待機系となって稼働系の停止に備える。
【０００５】
図６は図５に示す冗長化制御システム９の動作例を示すシーケンス図である。図６に示す例では、コントローラ９０Ａが稼働系、コントローラ９０Ｂが待機系となっている。図６に示すように、稼働系のコントローラ９０Ａは、アプリケーション実行１０２と、等値化転送１０３を交互に繰り返す。
【０００６】
アプリケーション実行１０２では、Ｉ／Ｏ機器等を介して監視対象機器から監視データを収集し、この監視データを演算して求めた制御データをＩ／Ｏ機器等を介して制御対象機器に供給する。
【０００７】
また、等値化転送１０３では、監視対象機器から収集した監視データと、この監視データを演算して求めた制御データと、演算の途中結果を示すデータ（以下、これらのデータを入出力データという）をネットワーク回線９１を介して待機系のコントローラ９０Ｂに送信する。
【０００８】
また、稼働系のコントローラ９０Ａは、アプリケーション実行１０２または等値化転送１０３を中断することにより、状態通知および状態判定１０４を一定の周期で繰り返し実行する。この状態通知および状態判定１０４では、故障の有無等を含む稼働系の状態を示す状態データをネットワーク回線９１を介して待機系のコントローラ９０Ｂに送信するとともに、その時点においてネットワーク回線９１を介して待機系のコントローラ９０Ｂから最後に受信された状態データ（後述）を判定する。この状態通知および状態判定１０４の実行周期が、稼働系のコントローラ９０Ａから待機系のコントローラ９０Ｂへの状態データの送信周期となる。なお、コントローラ９０Ａは、アプリケーション実行１０２、等値化転送１０３、状態通知および状態判定１０４のいずれをも実行しないときアイドル処理１０１を行う。
【０００９】
一方、待機系のコントローラ９０Ｂは、稼働系のコントローラ９０Ａから何もデータが受信されない場合、アイドル処理１１１を行っている。
【００１０】
そして、待機系のコントローラ９０Ｂは、稼働系のコントローラ９０Ａが等値化転送１０３により送信した入出力データをネットワーク回線９１を介して受信したとき、等値化受信展開１１３を実行する。この等値化受信展開１１３では、稼働系のコントローラ９０Ａから受信した入出力データを待機系のコントローラ９０Ｂのメモリ内の入出力データに上書きし、同コントローラ９０Ｂの保持する入出力データを稼働系のコントローラ９０Ａが保持する入出力データと同じにする。
【００１１】
また、待機系のコントローラ９０Ｂは、アイドル処理１１１または等値化受信展開１１３を中断することにより、稼働系のコントローラ９０Ａにおける状態通知および状態判定１０４の実行周期と同じ実行周期で状態通知および状態判定１１４を繰り返し実行する。この状態通知および状態判定１１４では、故障の有無等を含む待機系の状態を示す状態データ（前述した状態通知および状態判定１０４において判定される状態データ）をネットワーク回線９１を介して稼働系のコントローラ９０Ａに送信するとともに、その時点においてネットワーク回線９１を介して稼働系のコントローラ９０Ａから最後に受信された状態データ（前述した状態通知および状態判定１０４により送信された状態データ）を判定する。
【００１２】
図６に示す動作例では、図示されていないが、仮に状態通知および状態判定１１４において、稼働系の故障を示す状態データが待機系のコントローラ９０Ｂによって受信された場合、同コントローラ９０Ｂは、冗長化切り替え１１５を実行する。これによりコントローラ９０Ｂは待機系から稼働系に切り替えられる。
【００１３】
図６に示す動作例では、稼働系のコントローラ９０Ａにおいて電源断１２１が発生している。しかも、この電源断１２１は、一時的な瞬断ではなく、この電源断１２１により稼働系のコントローラ９０Ａは停止状態１２２となる。従って、電源断１２１の発生以降、待機系のコントローラ９０Ｂへの状態データの送信は途絶える。この状況では、待機系のコントローラ９０Ｂは、稼働系の状態を判断することができない。
【００１４】
そこで、待機系のコントローラ９０Ｂは、定期的な状態通知および状態判定１１４の実行時、２回連続して稼働系のコントローラ９０Ａから状態データが受信されていないこと（前回の受信から状態データの送信周期の２周期以上に亙って状態データが受信されていないこと）を検知した場合に、冗長化切り替え１１５を実行し、コントローラ９０Ｂを待機系から稼働系に切り替える。これにより、コントローラ９０Ｂは、等値化受信展開１１３により得られた入出力データを利用してアプリケーション実行１１２を開始し、稼働系として動作する。
【００１５】
ここで、定期的な状態通知および状態判定１１４の実行時、２回連続して状態データが受信されていないことを検知することが稼働系／待機系切り替えの条件となっているのは、次の理由による。
【００１６】
まず、状態データが待機系のコントローラ９０Ｂに届かなくなる原因として幾つかの原因が考えられる。それらの原因の１つとして、図６に例示するように稼働系において電源断が発生し、稼働系のコントローラが停止状態となった場合が考えられる。他の原因として、ネットワーク回線等で発生するノイズ等の影響により、一時的な通信破棄が発生した場合が考えられる。
【００１７】
前者の場合、稼働系のコントローラは、停止状態となるため、待機系のコントローラは、冗長化切り替え１１５を実行し、稼働系の動作を引き継ぐ必要がある。しかし、後者の場合、状態データが送信されなくなるのは一時的な現象であり、ネットワーク回線９１を経由した通信の状態が安定な状態に戻れば、状態データの送信は可能となる。
【００１８】
仮に、後者の場合において、稼働系のコントローラＡが停止していないのに、待機系のコントローラが冗長化切り替え１１５を行った場合、両コントローラがともに稼働系となる（以下、両系稼働という）。この場合、両監視制御システムによる制御が衝突する虞がある。
【００１９】
従って、状態データが待機系のコントローラ９０Ｂに届かなかった場合に、待機系のコントローラ９０Ｂが直ちに稼働系への切り替えを行うのは得策ではなく、待機系のコントローラ９０Ｂは、ノイズ等の影響による一時的な通信破棄が発生した可能性が低いことが確認された時点で稼働系への切り替えを行うべきである。
【００２０】
上述したように稼働系のコントローラ９０Ａから待機系のコントローラ９０Ｂへの状態データの送信周期は、待機系のコントローラ９０Ｂにおける状態通知および状態判定１１４の実行周期と同じである。従って、通常であれば待機系のコントローラ９０Ｂにおける状態通知および状態判定１１４の実行時に必ず新たな状態データの受信が検知されるはずである。
【００２１】
ここで、一時的な通信破棄により待機系のコントローラ９０Ｂにおける状態通知および状態判定１１４の実行時に新たな状態データの受信が検知されないということは起こり得る。しかし、一定の実行周期で繰り返し実行される状態通知および状態判定１１４において、２回連続して新たな状態データの受信が検知されないということは通常起こり得ない。従って、状態通知および状態判定１１４において、２回連続して新たな状態データの受信が検知されなかった場合には、一時的な通信破棄ではなく、何等かの異常が稼働系に発生したと考えてよい。
【００２２】
そこで、図６の動作例では、待機系のコントローラ９０Ｂは、定期的な状態通知および状態判定１１４の実行時、２回連続して状態データが受信されていないことを検知した場合に、待機系／稼働系の切り替えを行うのである。
【００２３】
なお、稼働系と待機系の間で自系の状態を通知する技術は、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【００２４】
【特許文献１】特開２０１２−２３０４４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２５】
しかしながら、待機系のコントローラ９０Ｂは、状態データの送信周期の２周期以上に亙って稼働系のコントローラ９０Ａから状態データが受信されないことを検知して冗長化切り替え１１５を実行するので、待機系のコントローラ９０Ｂが電源断となってから稼働系／待機系の切り替えが行われるまでの所要時間が長い。従って、稼働系のコントローラ９０Ａが電源断により停止状態になると、稼働系の制御が開始されるまでの所要時間が長くなり、制御システムの可用性が低下する問題があった。
【００２６】
この発明は、以上のような事情に鑑みてなされたものであり、稼働系の電源電圧の異常の発生後、速やかに稼働系／待機系の切り替えを実行することを可能とするコントローラを提供することを目的とする。
【課題を解決するための手段】
【００２７】
この発明は、コントローラ間通信手段を介して相互に接続された２台のコントローラを含み、一方のコントローラが稼働系、他方のコントローラが待機系となり、稼働系のコントローラが外部機器を制御する冗長化制御システムにおけるコントローラであって、当該コントローラに供給される電源電圧を監視する電源電圧監視部と、当該コントローラが稼働系である期間内に前記電源電圧の異常を前記電源電圧監視部により検知した場合に、前記コントローラ間通信手段を介して待機系のコントローラに異常通知を送信する異常通知手段と、当該コントローラが待機系である期間内に前記コントローラ間通信手段を介して前記異常通知が受信された場合に、当該コントローラを待機系から稼働系に切り替える冗長化切り替え手段とを具備することを特徴とするコントローラを提供する。
【発明の効果】
【００２８】
かかる発明によれば、稼働系のコントローラでは、電源電圧の異常が電源電圧監視部により検知されると、異常通知手段がコントローラ間通信手段を介して待機系のコントローラに異常通知を送信する。待機系のコントローラでは、コントローラ間通信手段を介して異常通知が受信されると、冗長化切り替え手段により、当該コントローラが待機系から稼働系に切り替えられる。よって、この発明によれば、稼働系の電源電圧の異常の発生後、待機系が稼働系に切り替わるまでの所要時間を短縮することができる。
【図面の簡単な説明】
【００２９】
【図１】この発明の一実施形態である冗長化制御システム１の構成を示すブロック図である。
【図２】同実施形態におけるコントローラ１０の構成例を示す図である。
【図３】同実施形態における電源断時処理継続管理部５５およびその周辺回路を例示する図である。
【図４】同実施形態における冗長化制御システム１の動作例を示すシーケンス図である。
【図５】従来技術における冗長化制御システム９の構成を示すブロック図である。
【図６】従来技術における冗長化制御システム９の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照し、この発明の実施形態について説明する。
図１はこの発明の一実施形態であるコントローラ１０Ａおよび１０Ｂを適用した冗長化制御システム１の構成を示すブロック図である。冗長化制御システム１は、コントローラ１０Ａおよび１０Ｂ、電源２０Ａおよび２０Ｂ、Ｉ／Ｏ機器群３０Ａおよび３０Ｂ、ネットワーク回線４０を有する。本実施形態では、便宜上、コントローラ１０Ａ、電源２０ＡおよびＩ／Ｏ機器群３０Ａからなる監視制御系統をＡ系、コントローラ１０Ｂ、電源２０ＢおよびＩ／Ｏ機器群３０Ｂからなる監視制御系統をＢ系と呼ぶ。本実施形態では、Ａ系とＢ系のうち一方が稼働系となり、一方が待機系となる。そして、稼働系が停止するときには、待機系となっていたコントローラは、以降、稼働系として動作する。なお、図１では、Ａ系とＢ系の２つの制御システムで二重化した冗長化制御システムの例を示しているが、３以上の制御システムをネットワーク回線４０で接続して多重化した制御システムを構成してもよい。
【００３１】
以下の説明では、コントローラ１０Ａおよび１０Ｂは同一の構成を有するため、両者を区別する必要がない場合には、「コントローラ１０」と表記する。また、電源２０Ａおよび２０Ｂは同一の構成を有するため、両者を区別する必要がない場合には、「電源２０」と表記する。また、Ｉ／Ｏ機器群３０Ａおよび３０Ｂは同一の構成を有するため、両者を区別する必要がない場合には、「Ｉ／Ｏ機器群３０」と表記する。
【００３２】
コントローラ１０は、監視対象機器からの監視データの収集やその収集結果に応じた制御対象機器の駆動制御を行う機能を有する。電源２０Ａは、コントローラ１０ＡおよびＩ／Ｏ機器群３０Ａに電力を供給し、電源２０Ｂは、コントローラ１０ＢおよびＩ／Ｏ機器群３０Ｂに電力を供給する。Ｉ／Ｏ機器群３０Ａは、Ｉ／Ｏ機器３０Ａ＿１〜３０Ａ＿ｎにより構成され、Ｉ／Ｏ機器群３０Ｂは、Ｉ／Ｏ機器３０Ｂ＿１〜３０Ｂ＿ｎにより構成される。Ａ系統が稼働系である場合、各監視対象機器から出力される監視データは、Ｉ／Ｏ機器群３０Ａを経由し、コントローラ１０Ａに出力される。また、コントローラ１０Ａから出力される制御データは、Ｉ／Ｏ機器群３０Ａを経由し、各制御対象機器に出力される。また、Ｂ系統が稼働系である場合、各監視対象機器から出力される監視データは、Ｉ／Ｏ機器群３０Ｂを経由し、コントローラ１０Ｂに出力される。また、コントローラ１０Ｂから出力される制御データは、Ｉ／Ｏ機器群３０Ｂを経由し、各制御対象機器に出力される。ネットワーク回線４０は、コントローラ１０Ａおよび１０Ｂ間の通信を仲介する通信手段である。
【００３３】
図２は、コントローラ１０の構成例を示す図である。図２に示すように、コントローラ１０は、ネットワーク管理部５１、アプリケーション実行管理部５２、等値化管理部５３、システム管理部５４、電源断時処理継続管理部５５、電源電圧監視部５６を有する。電源電圧監視部５６は、電源２０からコントローラ１０に供給される電源電圧を監視する手段である。電源断時処理継続管理部５５は、電源２０からコントローラ１０への電源電圧の供給が遮断された場合に、それ以降の所定時間、コントローラ１０内部へ電源電圧を供給する補助電源である。ネットワーク管理部５１、アプリケーション実行管理部５２、等値化管理部５３およびシステム管理部５４は、コントローラ１０内部のＣＰＵが制御プログラムを実行することにより実現される機能である。
【００３４】
ネットワーク管理部５１は、ネットワーク回線４０を介して他系のコントローラに接続されている。他系のコントローラとの間で送受信されるデータは、すべてネットワーク管理部５１を経由する。より詳細には、ネットワーク管理部５１は、状態通知および状態判定実行時における状態データの送受信、等値化転送実行時における入出力データの送受信、後述する電源断状態通知の送受信を行う。また、ネットワーク管理部５１は、上記処理の他、ネットワーク状態の管理等を行う。ネットワーク管理部５１はコントローラ１０内部のＣＰＵにより実行される機能であるが、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）等で構成してもよい。
【００３５】
アプリケーション実行管理部５２は、自系が稼働系である場合、Ｉ／Ｏ機器群３０を介して監視対象機器から監視データを収集し、この監視データから制御データを演算してＩ／Ｏ機器群３０を介して制御対象機器に供給するアプリケーションを実行する。
【００３６】
等値化管理部５３は、等値化転送および等値化受信展開を行う。より具体的には、等値化管理部５３は、自系が稼働系である場合、アプリケーション実行管理部５２が実行するアプリケーションの入力データ（監視データ）と、同アプリケーションの出力データ（制御データおよび演算の途中結果のデータ）を受け取り、この入力データおよび出力データからなる入出力データを自系のネットワーク管理部５１に送信する。そして、ネットワーク管理部５１が、待機系のネットワーク管理部５１に入出力データを送信することにより等値化転送が実行される。一方、等値化管理部５３は、自系が待機系である場合、自系のネットワーク管理部５１から入出力データを受け取ると、等値化受信展開を実行し、当該入出力データをコントローラ１０の図示しないメモリ内の入出力データに上書きする。また、等値化管理部５３は、自系が待機系である場合、待機系／稼働系の切り替え実行後、メモリ内の入出力データを自系のアプリケーション実行管理部５２に送信する。これにより、アプリケーション実行管理部５２は、等値化転送により取得された入出力データを用いてアプリケーション実行を開始することができる。
【００３７】
システム管理部５４は、コントローラ１０内の統括的な制御を行う手段である。このシステム管理部５４の処理内容は、状態通知および状態判定６４と、電源断通知および電源断処理６５と、冗長化切り替え７５の各処理を含む。稼働系のシステム管理部５４は、状態通知および状態判定６４を所定の実行周期で繰り返す。この稼働系の状態通知および状態判定６４では、故障の有無等を含む自系の状態を監視し、当該監視結果を示す状態データを生成し、当該状態データを自系のネットワーク管理部５１を介して待機系のコントローラ１０に送信することにより状態通知を行う。一方、待機系のシステム管理部５４も、稼働系と同じ実行周期で、状態通知および状態判定６４を繰り返す。この待機系の状態通知および状態判定６４では、稼働系から送信された状態データを自系のネットワーク管理部５１を介して受け取り、当該状態データを参照して、稼働系の状態を判定する。待機系のシステム管理部５４は、状態通知および状態判定６４において状態データから稼働系の故障発生が検出されると、冗長化切り替え７５を起動する。この冗長化切り替え７５では、待機系／稼働系の切り替えを実行する。
【００３８】
同様に、待機系のシステム管理部５４は、状態通知および状態判定６４において、故障の有無等を含む自系の状態を監視し、当該監視結果を示す状態データを自系のネットワーク管理部５１を介して稼働系のネットワーク管理部５１に送信することにより状態通知を実行する。稼働系のシステム管理部５４は、待機系のコントローラが送信した状態データを自系のネットワーク管理部５１から受け取ると、状態通知および状態判定６４において、当該状態データを参照して、待機系の状態を判定する。
【００３９】
また、稼働系のシステム管理部５４は、電源２０からコントローラ１０へ供給される電源電圧の異常、具体的にはコントローラ１０への電源電圧の供給の遮断が電源電圧監視部５６により検知されると、電源断通知および電源断処理６５を実行する。この電源断通知および電源断処理６５では、異常通知、具体的には電源断の発生を示す電源断状態通知を自系のネットワーク管理部５１を介して待機系のコントローラ１０に１または複数回送信する。この電源断通知および電源断処理６５は、コントローラ１０が稼働系である期間内に電源電圧の異常を電源電圧監視部５６により検知した場合に、コントローラ間通信手段を介して待機系のコントローラ１０に異常通知を送信する異常通知手段としての役割を果たす。また、待機系のシステム管理部５４は、稼働系からの電源断状態通知を自系のネットワーク管理部５１が受け取ったことを上記状態通知および状態判定６４において確認すると、冗長化切り替え７５を起動し、待機系／稼働系の切り替えを行う。冗長化切り替え７５は、コントローラが待機系である期間内にコントローラ間通信手段を介して異常通知が受信された場合に、当該コントローラを待機系から稼働系に切り替える冗長化切り替え手段としての役割を果たす。
【００４０】
また、待機系のシステム管理部５４は、上記従来技術と同様、定期的な状態通知および状態判定６４において、２回連続して状態データが受信されなかったことが確認された場合、冗長化切り替え７５を起動し、稼働系／待機系の切り替えを行う。本実施形態において、この制御を残したのは、電源断以外の原因（例えば稼働系に重大な故障が発生し、待機系との通信も阻害されるような場合）により状態データが待機系に届かなくなることが考えられるからである。
【００４１】
上記処理の他、システム管理部５４は、アプリケーション実行管理部５２に指示を与え、アプリケーション実行を開始するタイミングや、等値化転送時に入出力データを送信するタイミング等を制御する。また、システム管理部５４は、コントローラ１０内の各部が各々処理を実行していないとき、アイドル処理を行う。アイドル処理実行時、システム管理部５４は、例えばコントローラ１０内各部への電力供給を停止する等の処理を行ってもよい。
【００４２】
図３は、コントローラ１０内の補助電源である電源断時処理継続管理部５５およびその周辺回路の構成を例示する回路図である。図３に示すように、コントローラ１０はダイオードＤ１を有している。このダイオードＤ１は、アノードが電源２０に接続され、カソードがコントローラ１０内の各部へ電源電圧を供給する内部電源端子となっている。そして、ダイオードＤ１のカソードと接地線との間には電源断時処理継続管理部５５である大容量のキャパシタＣ１が介挿されている。電源電圧監視部５６は、キャパシタＣ１の両端の充電電圧を電源電圧として動作し、電源２０からダイオードＤ１のアノードに供給される電源電圧を監視する電圧検出ＩＣである。
【００４３】
電源２０から電源電圧が正常に供給される場合、この電源電圧はダイオードＤ１を介してコントローラ１０内の各部に供給される。また、このダイオードＤ１を通過した電源電圧によりキャパシタＣ１が充電される。しかし、電源２０からの電源電圧の供給が遮断されると、ダイオードＤ１のアノード側の電圧が低下し、ダイオードＤ１がＯＦＦする。しかしながら、電源２０からの電源電圧の供給が遮断されても、電源電圧監視部５６は、キャパシタＣ１の両端の充電電圧を電源電圧として動作する。そして、電源電圧監視部５６は、ダイオードＤ１のアノード側の電圧が所定の閾値を下回ったことを検知すると、その旨を通知する割り込み信号をシステム管理部５４に送信する。これによりシステム管理部５４は、上述した電源断通知を送信する処理を実行する。コントローラ１０では、電源２０からの電源電圧の供給が遮断された以降も、キャパシタＣ１により蓄えられた電力によりコントローラ１０内の各部が所定時間に亙って処理を継続することができる。以下、この電源断以降にコントローラ１０によって行われる処理を電源断処理という。また、電源２０からの電源電圧の供給が遮断された以降、キャパシタＣ１の充電電圧がコントローラ１０の動作可能な下限電源電圧に到達するまでの期間を処理継続可能期間と呼ぶ。
【００４４】
図４は、本実施形態における冗長化制御システム１の動作例を示すシーケンス図である。なお、以下の説明では、Ａ系を稼働系、Ｂ系を待機系とする。
【００４５】
Ａ系では、システム管理部５４がアプリケーション実行管理部５２と等値管理部５３を交互に起動する。システム管理部５４により起動されたＡ系のアプリケーション実行管理部５２は、アプリケーション実行６２を行う。すなわち、アプリケーション実行管理部５２は、Ｉ／Ｏ機器群３０Ａを介して監視対象機器から入力データ（監視データ）を収集し、この入力データを演算して求めた出力データ（制御データ）をＩ／Ｏ機器群３０Ａを介して制御対象機器に供給する。
【００４６】
システム管理部５４により起動されたＡ系の等値化管理部５３は、等値化転送６３を実行する。すなわち、Ａ系の等値化管理部５３は、自系のアプリケーション実行管理部５２から入出力データを取得し、当該データを自系のネットワーク管理部５１に送信する。Ａ系のネットワーク管理部５１は、ネットワーク回線４０を介して、当該データをＢ系のネットワーク管理部５１に送信する。
【００４７】
Ａ系のシステム管理部５４は、一定の周期で発生するタイマ割り込みに応じて、現在実行中の処理を中断し、状態通知および状態判定６４を実行する。より詳細には、Ａ系のシステム管理部５４は、自系の状態を示す状態データを生成し、自系のネットワーク管理部５１およびネットワーク回線４０を介して、Ｂ系のコントローラ１０Ｂに送信する。また、Ａ系のシステム管理部５４は、その時点において、Ｂ系のコントローラ１０Ｂからネットワーク回線４０および自系のネットワーク管理部５１を介して最後に受け取った状態データを基にＢ系の状態を判定する。この状態通知および状態判定６４の実行周期が、Ａ系からＢ系へ送信される状態データの送信周期となる。なお、Ａ系の各部が各々処理を実行していないとき、Ａ系のシステム管理部５４はアイドル処理６１を行う。
【００４８】
一方、Ａ系のネットワーク管理部５１からの等値化転送６３による入出力データをＢ系のネットワーク管理部５１が受け取ると、Ｂ系のネットワーク管理部５１は自系の等値化管理部５３に送信する。Ｂ系の等値化管理部５３は、入出力データを受信すると、等値化受信展開７３を実行する。
【００４９】
また、Ｂ系のシステム管理部５４は、Ａ系における状態通知および状態判定６４の実行周期と同じ実行周期で実行中の処理（この場合、アイドル処理７１または等値化受信展開７３）を中断し、状態通知および状態判定７４を繰り返し実行する。Ｂ系のシステム管理部５４は、この状態通知および状態判定７４において、自系の状態を示す状態データを生成し、自系のネットワーク管理部５１およびネットワーク回線４０を介して、Ａ系のコントローラ１０Ａに送信する。また、Ｂ系のシステム管理部５４は、その時点において、Ａ系のコントローラ１０Ａからネットワーク回線４０および自系のネットワーク管理部５１を介して最後に受け取った状態データを基にＡ系の状態を判定する。
【００５０】
図示されていないが、仮にＢ系のシステム管理部５４が、Ａ系のシステム管理部５４が送信した状態データから故障発生を検出した場合、冗長化切り替え７５を実行する。これによりコントローラ１０Ｂは、以降、稼働系として動作する。
【００５１】
図４に示す動作例では、Ａ系において、電源断８１が発生する。この結果、コントローラ１０Ａでは、ダイオードＤ１のアノード側の電圧が低下する。そして、ダイオードＤ１のアノード側の電圧が所定の閾値を下回ると、電源電圧監視部５６からシステム管理部５４に電源断を示す割り込み信号が与えられる。これにより、システム管理部５４は、実行中の処理（図４に示す例では、アプリケーション実行６２）を中断し、電源断通知および電源断処理６５を起動する。この電源断通知および電源断処理６５では、ネットワーク管理部５１を介してＢ系のコントローラ１０Ｂに電源断状態通知８４を１または複数回送信する。それ以降、Ａ系のコントローラ１０Ａでは、電源断時処理継続管理部５５からの電力供給により電源断処理６５が継続される。ここで、電源断状態通知８４は、１回の送信でも構わない。しかし、電源断状態通知８４を複数回送信する態様は、ネットワーク回線４０を介した通信において一時的な通信破棄が起こり得る状況において、電源断状態通知８４がＢ系のコントローラ１０Ｂに受信される可能性を高めることができるという利点がある。
【００５２】
Ｂ系のシステム管理部５４は、定期的な状態通知および状態判定７４において、自系のネットワーク管理部５１がＡ系のコントローラ１０Ａから送信された電源断状態通知８４を受信したことを確認すると、冗長化切り替え７５を実行する。これによりＢ系が稼働系となり、Ａ系が待機系となる。
【００５３】
稼働系となったＢ系では、等値化管理部５３がメモリ内の入出力データを自系のアプリケーション実行管理部５２に送信する。アプリケーション実行管理部５２は、この入出力データを利用してアプリケーション実行７２を開始する。
【００５４】
一方、Ａ系では、キャパシタＣ１の充電電圧がコントローラ１０Ａの動作可能な下限電圧を下回ると、処理継続可能期間８２が終了し、コントローラ１０Ａ全体が停止状態８３となる。
【００５５】
本実施形態によると、稼働系のコントローラは、電源断が発生すると、キャパシタＣ１の充電電圧を電源電圧として動作しつつ、電源断を検知して電源断状態通知を待機系のコントローラに１または複数回送信する。そして、待機系のコントローラは、電源断状態通知を受け取ると、速やかに冗長化切り替えを実行する。従って、本実施形態によると、稼働系で電源断が発生してから、待機系が稼働系としての動作を開始するまでの時間を従来に比べて短縮することができる。
【００５６】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば、以下の通りである。
【００５７】
（１）上記実施形態では、電源電圧監視部５６は電圧検出ＩＣであり、ダイオードＤ１のアノード側の電圧を測定した。しかし、このような電源電圧監視部５６に加えて、例えば過電流監視ＩＣや温度センサ等をコントローラ１０に設け、これらの監視機器で異常を検出した場合、その旨をシステム管理部５４に通知し、この通知に基づいてシステム管理部５４が稼働系の故障を判断してもよい。
【００５８】
（２）上記実施形態では、待機系のシステム管理部５４は、電源断状態通知８４を受信すると、状態通知および状態判定７４の実行時に電源断状態通知８４を参照した。しかし、この場合、待機系のシステム管理部５４は、電源断状態通知８４の受信後、定期的な状態通知および状態判定７４の実行周期に入るまでの間、電源断状態通知８４を参照することができない。そこで、待機系のコントローラ１０Ｂでは、電源断状態通知８４が受信された場合に、割り込みを発生させ、状態通知および状態判定７４を実行するようにしてもよい。これにより、待機系のシステム管理部５４は、電源断状態通知８４の受信後、速やかに稼働系／待機系の切り替えを行うことができる。
【００５９】
（３）待機系のコントローラ１０Ｂは、電源断状態通知８４を受信した場合、冗長化切り替え７５を起動した。この冗長化切り替え７５において、稼働系のコントローラ１０Ａに稼働系として動作することができないか否かの問い合わせをネットワーク回線４０を介して稼働系のコントローラ１０Ａに送り、稼働系として動作することができない旨の回答を稼働系のコントローラ１０Ａから受信した場合に、待機系から稼働系への切り替えを行ってもよい。この態様によれば、両系稼働をより確実に回避することができる。
【００６０】
（４）上記実施形態では、稼働系の電源電圧監視部５６は、電源２０の電源電圧が低下したときのみ、システム管理部５４に割り込みによりその旨を通知した。しかし、稼働系の電源電圧監視部５６は、定期的に電源２０の電源電圧をシステム管理部５４に通知してもよい。また、この場合にシステム管理部５４は、電源電圧監視部５６からの通知に基づいて電源２０からの電源電圧が閾値を下回ることを事前に予測し、電源断処理の処理量を減らすための制御を行うようにしてもよい。また、上記実施形態では、電源電圧が所定の閾値を下回った場合に電源断状態通知を待機系のコントローラに送り、待機系から稼働系への切り替えを行わせた。しかし、電源電圧の低下のみならず、電源電圧が不安定になる等、電源電圧の低下以外の電源電圧の異常を検知した場合に異常通知を待機系のコントローラに送り、待機系から稼働系への切り替えを行わせてもよい。
【００６１】
（５）上記実施形態において、稼働系のシステム管理部５４は、電源断の検知後、タイマによる計時を開始し、処理継続可能期間８２が満了する前にコントローラ１０Ａを停止状態８３に移行させてもよい。具体的には、システム管理部５４は、タイマの計時終了により、例えばキャパシタＣ１を放電させ、コントローラ１０Ａ内部への電力供給を強制的に停止させる。これにより、コントローラ１０Ａが電源電圧の低い状態で不安定な動作をするのを回避することができる。
【００６２】
（６）上記実施形態では、コントローラ１０の補助電源としてキャパシタＣ１を使用した。しかし、例えばバッテリ等、キャパシタ以外の補助電源を使用してもよい。
【符号の説明】
【００６３】
１，９…冗長化制御システム、１０，９０…コントローラ、２０…電源、３０…Ｉ／Ｏ機器群、４０，９１…ネットワーク回線、５１…ネットワーク管理部、５２…アプリケーション実行管理部、５３…等値化管理部、５４…システム管理部、５５…電源断時処理継続管理部、５６…電源電圧監視部、６１，７１，１０１，１１１…アイドル処理、６２，７２，１０２，１１２…アプリケーション実行、６３，１０３…等値化転送、７３，１１３…等値化受信展開、６４，７４，１０４，１１４…状態通知および状態判定、６５…電源断通知および電源断処理、７５，１１５…冗長化切り替え、８１，１２１…電源断、８２…処理継続可能期間、８３，１２２…停止状態、８４…電源断状態通知、Ｃ１…キャパシタ、Ｄ１…ダイオード。
【図１】
2016095770.tif 000003
【図２】
2016095770.tif 000004
【図３】
2016095770.tif 000005
【図４】
2016095770.tif 000006
【図５】
2016095770.tif 000007
【図６】
2016095770.tif 000008