JP2014106862A - 冗長化システムおよび冗長化方法 - Google Patents

冗長化システムおよび冗長化方法 Download PDF

Info

Publication number
JP2014106862A
JP2014106862A JP2012260977A JP2012260977A JP2014106862A JP 2014106862 A JP2014106862 A JP 2014106862A JP 2012260977 A JP2012260977 A JP 2012260977A JP 2012260977 A JP2012260977 A JP 2012260977A JP 2014106862 A JP2014106862 A JP 2014106862A
Authority
JP
Japan
Prior art keywords
control device
calculation result
survival
normal operation
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012260977A
Other languages
English (en)
Other versions
JP5993292B2 (ja
Inventor
Kenji Hattori
賢二 服部
Toshiya Nakajima
俊哉 中嶋
Futoshi Kishida
太 岸田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taiyo Nippon Sanso Corp
Original Assignee
Taiyo Nippon Sanso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Taiyo Nippon Sanso Corp filed Critical Taiyo Nippon Sanso Corp
Priority to JP2012260977A priority Critical patent/JP5993292B2/ja
Publication of JP2014106862A publication Critical patent/JP2014106862A/ja
Application granted granted Critical
Publication of JP5993292B2 publication Critical patent/JP5993292B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Safety Devices In Control Systems (AREA)

Abstract

【課題】制御装置の切り替えを速やかに行うことができる冗長化システムおよび冗長化方法を提供する。
【解決手段】本発明による冗長化システム(1000)は、制御対象の制御に関する演算処理を実行する通常運転用の制御装置(1100)と、通常運転用の制御装置による演算処理と並行して、通常運転用の制御装置による演算処理と同等の演算処理を実行する待機用の制御装置(1200)と、通常運転用および待機用の制御装置によって共有される記憶装置としての共有メモリ(1300)と、を備え、待機用の制御装置は、通常運転用の制御装置の生存を確認できない場合、共有メモリに格納された演算結果のうち、待機用の制御装置により格納された演算結果を共有メモリから出力させる。
【選択図】図1

Description

本発明は、冗長化システムおよび冗長化方法に関し、例えば、超電導電磁石を超電導状態に保持するための冷却システム等で用いられる制御装置の冗長構成に関する。
超電導電磁石を構成する超電導コイルの温度は、冷却システムにより転移温度以下に維持されている。この種の冷却システムは、冷媒として液体ヘリウムを用いており、ヘリウムを液化するための液化装置を備えている。この液化装置により生成された液体ヘリウムの循環流量は、超電導電磁石の温度に応じて制御装置により制御されている。
上述の冷却システムは無停止運転をする必要がある。このため、冷却システムにおける液体ヘリウムの循環流量を制御・管理するための制御装置として冗長化システムが用いられている。
図7に、上述の冷却システムにおける液体ヘリウムの循環流量を制御・管理するための制御装置に適用される従来の冗長化システムの構成例を示す。同図(a)から(c)に示す冗長化システム500は、冷却システムにおける液体ヘリウムの循環流量を制御するための制御データを演算する制御装置501,502と、上記制御データを格納するための共有メモリ503とを備えて構成されている。ここで、制御装置501は、故障が発生していない場合に通常的に運転される制御装置である。制御装置502は、制御装置501が故障したときに制御装置501に代わって運転される制御装置である。制御装置502は、制御装置501が正常運転している間は待機状態となっている。
通常運転時は、図7(a)に示すように、制御装置501が、超電導磁石を構成する超電導コイルの温度に関する情報を含む入力データに基づいて、この超電導コイルの温度を転移温度以下に保つために必要とされる液体ヘリウムの循環流量の制御に必要な演算処理を実行し、その演算結果として得られる制御データを共有メモリ503に格納する。この制御データが共有メモリ503から出力データとして出力され、この出力データに基づいて、被冷却体である超電導電磁石の超電導コイルの温度が転移温度以下となるように、液体ヘリウムの循環流量を調整するためのバルブの開度が制御される。
ここで、通常運転用の制御装置501が故障すると、この制御装置501に代わって、待機用の制御装置502が制御に必要な演算処理を実行する。このとき、図7(b)に示すように、待機用の制御装置502は、故障前の通常運転用の制御装置501による演算結果を共有メモリ503から読み出し、この演算結果を反映させて演算処理を実行することにより制御の連続性を保つ。そして、図7(c)に示すように、待機用の制御装置502は、自身が実行した演算処理の演算結果を共有メモリ503に格納する。
通常運転用の制御装置501が故障した後は、待機用の制御装置502によって共有メモリ503に格納された演算結果に基づいて、液体ヘリウムの循環流量を調整するためのバルブの開度が制御される。このように、通常運転用の制御装置501が故障すると、この通常運転用の制御装置501から待機用の制御装置502への切り替えが行われる。
特開平6−152570号公報 特開2011−187023号公報 特開2010−146235号公報
しかしながら、上述の従来技術によれば、通常運転用の制御装置501から待機用の制御装置502に切り替える際、制御の連続性を保つために、待機用の制御装置502は共有メモリ503から通常運転用の制御装置501の演算結果を読み出し、その後の演算処理に反映させる必要がある。このため、制御装置の切り替えに時間を要していた。
図7に示す例のほか、冗長化構成に関する従来技術として、例えば、特許文献1、特許文献2、特許文献3に開示された技術が知られている。しかしながら、これらの特許文献の技術によれば、装置を切り替える際のデータ転送時間を短縮することはできるものの、依然として、データ転送時間を必要とする。
本発明は、制御装置の切り替えを速やかに行うことができる冗長化システムおよび冗長化方法を提供することを目的とする。
本発明の一態様による冗長化システムは、制御対象の制御に関する演算処理を実行する第1制御装置と、前記第1制御装置による演算処理と並行して、前記第1制御装置による演算処理と同等の演算処理を実行する第2制御装置と、前記第1制御装置および前記第2制御装置によって共有される記憶装置と、を備え、前記記憶装置は、前記第1制御装置および前記第2制御装置による各演算処理の演算結果を格納するための演算結果記憶領域と、前記第1制御装置の生存を確認するためのデータを格納するための生存確認データ記憶領域と、を有し、前記第2制御装置は、前記生存確認データ記憶領域に格納されたデータを参照して前記第1制御装置の生存確認を行い、前記第1制御装置の生存を確認できない場合、前記演算結果記憶領域に格納された演算結果のうち、前記第2制御装置により格納された演算結果を前記記憶装置から出力させる、冗長化システムの構成を有する。
前記冗長化システムにおいて、例えば、前記第1制御装置は、該第1制御装置の生存を確認するためのデータとして、所定の数値範囲で巡回する数値データを生成して前記生存確認データ記憶領域に格納する。
前記冗長化システムにおいて、例えば、前記第2制御装置は、前記生存確認データ記憶領域に格納された数値データを参照し、該数値データに所定の変化がない場合、前記第1制御装置の生存を確認できないと判定する。
前記冗長化システムにおいて、例えば、前記第2制御装置は、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しているか否かを判定し、前記演算結果が整合していない場合、警報を発する。
前記冗長化システムにおいて、例えば、前記第1制御装置は、該第1制御装置による演算処理の演算結果のチェックサム値を演算して前記記憶装置に格納し、前記第2制御装置は、該第2制御装置による演算処理の演算結果のチェックサム値を演算し、該演算により得られたチェックサム値と前記第1制御装置により前記記憶装置に格納されたチェックサム値とを比較することにより、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しているか否かを判定する。
前記冗長化システムにおいて、例えば、前記第2制御装置は、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しており、且つ、前記第1制御装置の生存を確認できない場合、前記第2制御装置により前記演算結果記憶領域に格納された演算結果を前記記憶装置から出力させる。
前記冗長化システムにおいて、例えば、前記第1制御装置は、通常運転用の制御装置であり、前記第2制御装置は、待機用の制御装置である。
本発明の一態様による冗長化方法は、制御対象の制御に関する演算処理を実行する第1制御装置と、前記第1制御装置による演算処理と並行して、前記第1制御装置による演算処理と同等の演算処理を実行する第2制御装置と、前記第1制御装置および前記第2制御装置によって共有される記憶装置と、を備えた冗長化システムの冗長化方法であって、前記記憶装置が、前記第1制御装置および前記第2制御装置による各演算処理の演算結果を格納するための演算結果記憶領域と、前記第1制御装置の生存を確認するためのデータを格納するための生存確認データ記憶領域と、を有し、前記第2制御装置が、前記生存確認データ記憶領域に格納されたデータを参照して前記第1制御装置の生存確認を行う段階と、前記第2制御装置が、前記第1制御装置の生存を確認できない場合、前記演算結果記憶領域に格納された演算結果のうち、前記第2制御装置により格納された演算結果を前記記憶装置から出力させる段階と、を含む冗長化方法の構成を有する。
本発明によれば、制御装置を切り替える際に演算結果の転送を省略することができる。従って、制御装置の切り替えを速やかに行うことが可能になる。
本発明の実施形態による冗長化システムの構成の一例を示すブロック図である。 本発明の実施形態による冗長化システムの動作(整合判定)の流れを示すフローチャートである。 本発明の実施形態による冗長化システムの動作(整合判定)の流れを補足するためのフローチャートである。 本発明の実施形態による冗長化システムの通常運転用の制御装置における動作の流れを示すフローチャートである。 本発明の実施形態による冗長化システムの待機用の制御装置における動作の流れを示すフローチャートである。 本発明の実施形態による冗長化システムの動作を従来技術と対比して説明するための説明図である。 従来技術による冗長化システムの構成例を示す図である。
以下、図面を参照して、本発明の実施形態について、超電導電磁石を超電導状態に保持するための冷却システムを制御する制御装置に関する冗長化システムを例として説明する。ただし、本発明は、このような例に限定されず、任意のシステムの制御装置に適用することができる。
[構成の説明]
図1は、本発明の実施形態による冗長化システム1000の構成の一例を示すブロック図である。同図に示すように、本実施形態による冗長化システム1000は、通常運転用の制御装置1100(第1制御装置)と、待機用の制御装置1200(第2制御装置)と、共有メモリ1300(記憶装置)とを備えて構成される。ここで、通常運転用の制御装置1100は、入力データDINに基づいて制御対象の制御に関する演算処理を実行して演算結果RAを出力するものであり、故障が発生しない限り通常的に運転される。本実施形態では、制御対象は、例えば、前述の超電導電磁石を超電導状態に保持するための冷却システムにおける液体ヘリウムの循環流量を規定するバルブの開度である。通常運転用の制御装置1100は、そのバルブの開度に関する制御データを演算する。
待機用の制御装置1200は、通常運転用の制御装置1100による演算処理と並行して、入力データDINに基づいて制御装置1100による演算処理と同等の演算処理を実行して演算結果RBを出力するものである。待機用の制御装置1200は、通常運転用の制御装置1100が故障したときに、この制御装置1100に代わって運転される。通常運転用の制御装置1100および待機用の制御装置1200は、それぞれ、例えば制御用のCPU(Central Processing Unit)であるが、この例に限定されない。
共有メモリ1300は、通常運転用の制御装置1100および待機用の制御装置1200によって共有される記憶装置である。共有メモリ1300には、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBが格納される。共有メモリ1300は、例えばスタティックランダムアクセスメモリ(SRAM:Static Random Access Memory)から構成されるが、この例に限定されず、例えば不揮発性メモリ等、任意の記憶デバイスから構成することができる。
本実施形態では、共有メモリ1300は、生存確認データ記憶領域1311,1312、チェックサム記憶領域1321、演算結果記憶領域1331,1332、選択部1340を有する。ここで、演算結果記憶領域1331は、通常運転用の制御装置1100による演算処理の演算結果RAを格納するためのものである。演算結果記憶領域1332は、待機用の制御装置1200による演算処理の演算結果RBを格納するためのものである。
生存確認データ記憶領域1311は、通常運転用の制御装置1100の生存を確認するためのデータを格納するものである。生存確認データ記憶領域1312は、待機用の制御装置1200の生存を確認するためのデータを格納するものである。本実施形態では、「生存」なる用語は、通常運転用の制御装置1100または待機用の制御装置1200が正常な運転状態にあることを意味する。本実施形態では、生存確認用のデータが正常に生成されれば、そのデータを生成した制御装置は正常な運転状態にあるものと見なす。
通常運転用の制御装置1100は、生存を確認するためのデータとして、「1」から「100」までの数値範囲(所定の数値範囲)で巡回する数値データを制御サイクルごとに生成して生存確認データ記憶領域1311に格納する。制御装置1200も同様に、生存を確認するためのデータとして「1」から「100」までの数値範囲で巡回する数値データを制御サイクルごとに生成して生存確認データ記憶領域1312に格納する。生存確認データ記憶領域1311,1312に格納されたデータは制御サイクルごとに更新される。生存を確認するためのデータは、例えばカウンタを用いて生成することができる。
なお、本実施形態では、生存を確認するためのデータの数値範囲を「1」から「100」までとするが、この例に限定されず、その数値範囲は任意である。
本実施形態では、後述するように、待機用の制御装置1200は、生存確認データ記憶領域1311に格納されたデータを参照して通常運転用の制御装置1100の生存確認を行い、制御装置1100の生存を確認できない場合、共有メモリ1300の演算結果記憶領域1331,1332に格納された演算結果のうち、待機用の制御装置1200により演算結果記憶領域1332に格納された演算結果RBを共有メモリ1300から出力データDOUTとして出力させる。また、通常運転用の制御装置1100は、生存確認データ記憶領域1312に格納されたデータを参照して待機用の制御装置1200の生存確認を行い、制御装置1200の生存を確認できない場合、警報を発生させる。
チェックサム記憶領域1321は、通常運転用の制御装置1100の演算結果RAのチェックサム値CSAを格納するためのものである。このチェックサム値CSAは、待機用の制御装置1200において、演算結果RBのチェックサム値CSBと比較することにより、制御装置1100の演算結果RAと制御装置1200の演算結果RBとが整合(一致)しているか否かの判定(以下、「整合判定」と称す。)を行う際に用いられる。
なお、本実施形態では、共有メモリ1300は、待機用の制御装置1200のチェックサム値CSBを格納するためのチェックサム記憶領域を有しておらず、待機用の制御装置1200のチェックサム値CSBは、この制御装置1200の記憶部(例えば、ダイナミックランダムアクセスメモリ)に保持される。
ただし、例えば、制御装置1100を待機用とし、制御装置1200を通常運転用として使用する等のように、制御装置の役割を切り替える運用を行う場合には、上述のチェックサム記憶領域1321に加えて、共有メモリ1300に、制御装置1200の演算結果RBのチェックサム値CSBを格納するためのチェックサム記憶領域1322(図示なし)を増設すればよい。ここで、制御装置1100を待機用とし、制御装置1200を通常運転用として使用する場合、上述の増設されたチェックサム記憶領域1322(図示なし)に制御装置1200により格納されたチェックサム値CSBは、制御装置1100において、演算結果RAのチェックサム値CSAと比較することにより、演算結果RAと演算結果RBとが整合しているか否かの判定を行う際に用いられる。この場合、制御装置1100の演算結果RAのチェックサム値CSAを格納するためのチェックサム記憶領域1321は使用されず、チェックサム値CSAは例えば制御装置1100の記憶部(例えば、ダイナミックランダムアクセスメモリ)に保持される。
選択部1340は、演算結果記憶領域1331および演算結果記憶領域1332を択一的に選択して、演算結果記憶領域1331に格納された演算結果RAまたは演算結果記憶領域1332に格納された演算結果RBの何れかを共有メモリ1300から出力するものである。ただし、この例に限定されず、演算結果記憶領域1331と演算結果記憶領域1332を異なるアドレス空間に割り付け、アドレスにより演算結果記憶領域1331および演算結果記憶領域1332を択一的に選択するものとしてもよい。
[動作の説明]
次に、図2から図5に示すフローに沿って、図1に示す冗長化システム1000の動作を説明する。
ここで、図2は、本実施形態による冗長化システム1000の動作(整合判定)の流れを示すフローチャートである。図3は、本実施形態による冗長化システム1000の動作(整合判定)の流れを補足するためのフローチャートである。図4は、本実施形態による冗長化システム1000の通常運転用の制御装置1100における動作の流れを示すフローチャートである。図5は、本実施形態による冗長化システム1000の待機用の制御装置1200における動作の流れを示すフローチャートである。
冗長化システム1000を構成する通常運転用の制御装置1100と待機用の制御装置1200は、通常時は並列運転され、同一の入力データDINに基づいて同一の制御対象の制御に関する同様の演算処理を実行している。なお、同一の入力データDINに対して同一の演算結果を得ることができる限度において、待機用の制御装置1200による演算処理は、通常運転用の制御装置1100による演算処理と同一である必要はなく、等価な処理で足りる。本実施形態では、説明の簡略化のため、待機用の制御装置1200による演算処理は、通常運転用の制御装置1100による演算処理と同一であるものとする。
本実施形態では、通常運転用の制御装置1100から待機用の制御装置1200への切り替えは、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合(一致)していることを条件として実施される。換言すれば、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが一致していなければ、仮に通常運転用の制御装置1100が故障しても、通常運転用の制御装置1100から待機用の制御装置1200への切り替えは実施されない。
以下では、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合していることを判定するための処理(以下、「整合判定処理」と称す。)を先に説明し、その後、通常運転用の制御装置1100から待機用の制御装置1200へ切り替えるための処理(以下、「切り替え処理」と称す。)を説明する。
<整合判定処理>
図2に示すフローに沿って、整合判定処理を説明する。
概略的に、整合判定処理では、待機用の制御装置1200は、この制御装置1200の演算結果RBのチェックサム値CSBと通常運転用の制御装置1100の演算結果RAのチェックサム値CSAとを比較することにより、通常運転用の制御装置1100の演算処理の演算結果RBと待機用の制御装置1200の演算結果RBとが整合しているか否かを判定する。
この整合判定処理の前提として、通常運転用の制御装置1100は、各制御サイクルにおいて、前述の冷却システムで用いられる電磁石の温度に関する情報を含む入力データDINに基づいて、液化装置により生成される液体ヘリウムの循環流量を与えるバルブ開度を演算し、その演算結果RAを共有メモリ1300の演算結果記憶領域1331に格納する。
演算結果RAが得られると、図2(a)のフローに示すように、通常運転用の制御装置1100は、演算結果RAのチェックサム値CSAを計算し、このチェックサム値CSAを自身の記憶部(例えば、ダイナミックランダムアクセスメモリ)に一時的に格納する(ステップS211)。また、通常運転用の制御装置1100は、上記計算により得られたチェックサム値CSAを共有メモリ1300のチェックサム記憶領域1321に格納する(ステップS212)。その後、通常運転用の制御装置1100は運転を継続し(ステップS213)、処理をステップS211に戻して次の制御サイクルに移行する。
このように、通常運転用の制御装置1100は、各制御サイクルにおいて、演算結果RAのチェックサム値CSAを計算して共有メモリ1300のチェックサム記憶領域1321の値を更新する。
一方、待機用の制御装置1200は、通常運転用の制御装置1100と同様に、各制御サイクルにおいて、前述の冷却システムで用いられる電磁石の温度に関する情報を含む入力データDINに基づいて、液体ヘリウムの循環流量を与えるバルブ開度を独自に演算し、その演算結果RBを共有メモリ1300の演算結果記憶領域1332に格納する。ここで、各制御サイクルにおいて、制御装置1100および制御装置1200は、同一の入力データDINに基づいて同一の演算処理を実行するので、通常、待機用の制御装置1200の演算結果RBは通常運転用の制御装置1100の演算結果RAと一致する。
演算結果RBが得られると、待機用の制御装置1200は、図2(b)のフローに示すように、通常運転用の制御装置1100により計算されたチェックサム値CSAを用いて、通常運転用の制御装置1100による演算結果RAと待機用の制御装置1200による演算結果RBとが整合しているか否かを判定し、整合しない場合に警報を発生させる。具体的には、待機用の制御装置1200は、その演算結果RBのチェックサム値CSBを計算し(ステップS221)、このチェックサム値CSBを自身の記憶部に一時格納する。続いて、待機用の制御装置1200は、共有メモリ1300のチェックサム記憶領域1321から、通常運転用の制御装置1100の演算結果RAのチェックサム値CSAを取得して待機用の制御装置1200の記憶部に格納する(ステップS222)。
続いて、待機用の制御装置1200は、演算結果RBから計算したチェックサム値CSB(計算値)と、共有メモリ1300から取得したチェックサム値CSA(取得値)とを比較する(ステップS223)。そして、チェックサム値CSAとチェックサム値CSBとが整合(一致)するか否か、即ち、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合するか否かを判定する(ステップS224)。ここで、チェックサム値CSAとチェックサム値CSBとが整合する場合(ステップS224;YES)、即ち、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合する場合、待機用の制御装置1200は、そのまま運転を継続し(ステップS225)、処理をステップS221に戻して次の制御サイクルに移行する。
これに対し、チェックサム値CSAとチェックサム値CSBとが整合しない場合(ステップS224;NO)、待機用の制御装置1200は警報を発生させ(ステップS226)、演算結果が整合しない旨をオペレータに通知する。その後、待機用の制御装置1200は、そのまま運転を継続し(ステップS225)、処理をステップS221に戻して次の制御サイクルに移行する。
このように、待機用の制御装置1200は、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとに不整合が発生した場合に警報を発生させるが、運転を停止することなく、そのまま運転を継続する。
次に、図3を参照して、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合しない場合のオペレータの処置の一例を説明する。
なお、図3に示すステップS301と、ステップS302と、ステップS303と、ステップS304は、それぞれ、図2(b)に示すステップS221〜S223と、ステップS224と、ステップS225と、ステップS226に対応している。また、図3のステップS305は、図2のステップ225に含まれ、それ以外の図3のステップS306〜S309は、オペレータによる処置に相当する。
図2のステップS221〜S224に対応する図3のステップS301,S302では、オペレータの処置とは関係なく、上述したように、チェックサム値を用いた演算結果の整合に関する判定処理が自動的に実施される。そして、図3のステップS302において、演算結果が整合しないと判定された場合(ステップS302;NO)、上述したように、図2のステップS226に対応する図3のステップS304において、待機用の制御装置1200は警報を発生させてオペレータに通知する。この警報から、オペレータは、演算結果に不整合が発生したことを認識する。
この場合、オペレータは、手動により演算結果を整合させるための処置(以下、「手動整合」と称す。)を実施するか、または演算結果が整合しない原因を調査するかの何れのの対応をとるかを判断する(ステップS306)。ここで、手動整合を実施すると判断した場合(ステップS306;YES)、オペレータは、通常運転用の制御装置1100の演算結果RAを待機用の制御装置1200に複写することにより、待機用の制御装置1200の演算結果RBを通常運転用の制御装置1100の演算結果RAに置き換える。具体的には、共有メモリ1300の演算結果記憶領域1332に格納された演算結果RBを演算結果RAに書き替えると共に、待機用の制御装置1200の記憶部に記憶された演算結果RBを演算結果RAに書き替える。これにより、見かけ上、演算結果の不整合は解消される。その後、待機用の制御装置1200は、処理をステップS301に戻して運転を継続する。
ここで、演算結果が整合しない場合として、通常運転用の制御装置1100の演算処理RAに原因がある場合と、待機用の制御装置1200の演算処理RBに原因がある場合の二通りがある。本実施形態では、演算結果が整合しない原因が何れの演算結果にあったとしても、通常運転用の制御装置1100の演算結果RAを有効なものとして取り扱い、待機用の制御装置1200の演算結果RBを通常運転用の制御装置1100の演算結果RAで置き換える。その理由は、通常運転用の制御装置1100の運転を継続することにより、制御の連続性を保つためである。
ここで、仮に通常運転用の制御装置1100の演算結果RAを演算結果RBで置き換えたとすれば、演算結果が整合しない原因が待機用の制御装置1200の演算処理にあった場合、共有メモリ1300から出力データDOUTとして出力される制御データの値が急激に変化し、制御の連続性が著しく阻害されるおそれがある。このため、本実施形態では、不整合の原因の所在を問わず、通常運転用の制御装置1100の演算結果RAを優先的に出力する。また、演算結果の不整合の原因が一時的なものであれば、必ずしもその原因を調査して対策を講じる必要もなく、通常運転用の制御装置1100の運転を継続しても問題はない。
これに対し、オペレータが手動整合を実施しないと判断した場合、(ステップS306;NO)、即ち演算結果が整合しない原因を調査すると判断した場合、オペレータは、例えば、その原因を調査し(ステップS308)、その調査の結果に基づいて必要な対策を講じる(ステップS309)。例えば、オペレータは、演算結果が整合しない原因が通常運転用の制御装置1100の演算処理にあるのか、待機用の制御装置1200の演算処理にあるのかを分析し、その分析結果から、演算結果の不整合を生じさせた制御装置を修理する等の対策を講じる。
手動整合を実施しないと判断する場合の例としては、上述のステップS307において演算結果RBを演算結果RAで置き換えて演算結果を強制的に整合させたにもかかわらず、その後も演算結果の不整合が発生する場合が挙げられる。この場合、通常運転用の制御装置1100または待機用の制御装置1200の何れかに恒久的な故障が存在する可能性が高いので、演算結果が整合しない原因を調査して適切な対策を講じることが望ましい。
<切り替え処理>
次に、図4および図5に示すフローに沿って、切り替え処理について説明する。
切り替え処理は、上述した整合判定処理において演算結果RAと演算結果RBとが整合していると判定されたことを前提として実施される。この前提が満足されている状況において、通常運転用の制御装置1100の生存を確認できなくなった場合、通常運転用の制御装置1100から待機用の制御装置1200への切り替え処理が実施される。
切り替え処理は、通常運転用の制御装置1100による処理と、待機用の制御装置1200による処理を含むが、先に、図4のフローに沿って通常運転用の制御装置1100による処理を説明し、その後に、図5のフローに沿って待機用の制御装置1200による処理を説明する。
・通常運転用の制御装置1100による処理
通常運転用の制御装置1100は、各制御サイクルにおいて、待機用の制御装置1200が制御装置1100の生存を確認するためのデータとして、「1」から「100」までの数値範囲で巡回する生存確認用の数値データを生成し、共有メモリ1300の生存確認データ記憶領域1311に格納する(ステップS401)。最初の制御サイクルでは、通常運転用の制御装置1100は、生存確認用の数値データとして「1」を生成して共有メモリ1300の生存確認データ記憶領域1311に格納する。この生存確認用の数値データは、後述する図5に示す待機用の制御装置1200による処理(ステップS502)において参照される。
ここで、通常運転用の制御装置1100は、生存確認用の数値データを、各制御サイクルにおいて「1」だけカウントアップ(インクリメント)する。即ち、制御サイクルの進行に従って生存確認用の数値データは「1」ずつ増加する。そして、生存確認用の数値データが「100」に到達すると、その次の制御サイクルでは「1」に戻される。本実施形態では、「100」から「1」への数値データの変化も数値データのカウントアップとして取り扱う。ただし、生存確認用の数値データの増分は、この例に限定されず、任意に設定することができる。
後述するように、待機用の制御装置1200も、通常運転用の制御装置1100と同様に、各制御サイクルにおいて、同一の数値範囲で巡回する生存確認用の数値データを生成して、共有メモリ1300の生存確認データ記憶領域1312に格納する。
続いて、通常運転用の制御装置1100は、最初の制御サイクルにおいて、待機用の制御装置1200により共有メモリ1300の生存確認データ記憶領域1312に格納された生存確認用の数値データ「1」を取得して保持する(ステップS402)。
続いて、通常運転用の制御装置1100は、前回の制御サイクルにおいて共有メモリ1300の生存確認データ記憶領域1312から取得して保持した待機用の制御装置1200の生存確認用の数値データ(保持値)と、今回の制御サイクルにおいて共有メモリ1300の生存確認データ記憶領域1312から取得した待機用の制御装置1200の生存確認用の数値データ(取得値)とを比較する(ステップS403)。ただし、最初の制御サイクルでは、前回の制御サイクルで取得した数値データ(保持値)は存在しないので、この数値データ(保持値)として初期値「0」が設定される。
続いて、通常運転用の制御装置1100は、共有メモリ1300の生存確認データ記憶領域1312に格納された数値データを参照し、今回の制御サイクルで取得した生存確認用の数値データ(取得値)と前回の制御サイクルで取得して保持した数値データ(保持値)との間に所定の変化があるかどうかを判定する。具体的には、通常運転用の制御装置1100は、今回の制御サイクルで取得した生存確認用の数値データの値(取得値)が前回の制御サイクルで取得して保持した数値データの値(保持値)に対して「1」だけカウントアップされているか否かを判定する(ステップS404)。
前述したように、生存確認用の数値データは、各制御サイクルにおいて「1」ずつカウントアップされるので、もし待機用の制御装置1200が生存しているのであれば(即ち正常な運転状態にあるのであれば)、共有メモリ1300の生存確認データ記憶領域1312に格納された生存確認用の数値データの値は「1」だけカウントアップされているはずである。もし待機用の制御装置1200が何らかの故障を抱え、正常な運転状態になければ、生存確認データ記憶領域1312に格納された数値データの値はカウントアップされず、前回と同じ値に維持される。
生存確認データ記憶領域1312に格納された生存確認用の数値データの値が「1」だけカウントアップされていれば(ステップS404;YES)、制御装置1100は運転を継続し(ステップS405)、処理をステップS401に戻して次の制御サイクルに移行する。前述のように、最初の制御サイクルでは、前回の制御サイクルで取得して保持した数値データとして初期値「0」が設定されるので、生存確認データ記憶領域1312から取得された生存確認用の数値データの値が「1」であれば、生存確認用の数値データは「1」だけカウントアップされていることになる。
生存確認データ記憶領域1312に格納された数値データが「1」だけカウントアップされていない場合(ステップS404;NO)、通常運転用の制御装置1100は、所定時間のn秒(nは整数)が経過したか否かを判定する(ステップS406)。即ち、通常運転用の制御装置1100は、n秒の間、共有メモリ1300の生存確認用データ記憶領域1312に格納される生存確認用の数値データの値に変化がないかどうかを判定する。
上記のn秒なる時間は、例えば、待機用の制御装置1200に恒久的な故障が発生したか否かの判定の基準となる時間であり、例えば3制御サイクル以上に相当する時間が経過しても生存確認用の数値データがカウントアップされなければ、待機用の制御装置1200に恒久的な故障が発生し、待機用の制御装置1200は生存していない状態にあることが推定される。
n秒が経過しない場合(ステップS406;NO)、即ち、n秒が経過する前に、共有メモリ1300の生存確認用データ記憶領域1312に格納された生存確認用の数値データの値がカウントアップされた場合、通常運転用の制御装置1100は、待機用の制御装置1200に異常はないと判断する。そして、通常運転用の制御装置1100は、自身の運転を継続し(ステップS411)、処理をステップS401に戻して次の制御サイクルに移行する。
これに対し、n秒が経過した場合(ステップS406;YES)、即ち、n秒が経過しても、共有メモリ1300の生存確認用データ記憶領域1312に格納された生存確認用の数値データの値に変化がない場合、通常運転用の制御装置1100は、待機用の制御装置1200に異常があり、その生存を確認できないと判定する(ステップS407)。この場合、通常運転用の制御装置1100は、待機用の制御装置1200に関する共有メモリ1300内の後述の異常発生状態管理領域(図示なし)に格納されたデータを更新し(ステップS408)、待機用の制御装置1200の運転を停止させる(ステップS409)。その後、通常運転用の制御装置1100は、運転を継続し(ステップS410)、処理をステップS401に戻して次の制御サイクルに移行する。
ここで、待機用の制御装置1200に関する共有メモリ1300内の異常発生状態管理領域(図示なし)には、通常運転用の制御装置1100により待機用の制御装置1200の生存が確認されない場合の異常発生を示すデータが格納される。また、共有メモリ1300には、通常運転用の制御装置1100に関する異常発生状態管理領域(図示なし)も設定されている。本実施形態では、通常運転用の制御装置1100と待機用の制御装置1200が共に相手側の制御装置の生存を確認できないと判定した場合、先に異常発生状態管理領域のデータを更新した制御装置のみが運転を継続し、残りの他方の制御装置の運転が停止される。これにより、通常運転用の制御装置1100と待機用の制御装置1200が共に相手側の制御装置の生存を確認できないと判定した場合、相互に相手側の運転を停止させて共倒れになる状況を回避することができる。
例えば、通常運転用の制御装置1100と待機用の制御装置1200が共に相手側の制御装置の生存を確認できないと判定し(即ち、同時に異常を検出し)、且つ、通常運転用の制御装置1100が、先に、待機用の制御装置1200に関する共有メモリ1300内の異常発生状態管理領域のデータを更新した場合、待機用の制御装置1200は、通常運転用の制御装置1100を異常と判定した後、待機用の制御装置1200に関する共有メモリ1300内の異常発生状態管理領域のデータを参照することにより、自身が異常であることを認識する。この場合、通常運転用の制御装置1100の運転の停止が中止され(即ち、通常運転用の制御装置1100の運転が継続され)、待機用の制御装置1200の運転が停止される。これにより共倒れが回避され、この場合、通常運転用の制御装置1100により制御が継続される。
このように、本実施形態では、生存確認データ記憶領域1312に格納された生存確認用の数値データに変化がなく(即ち、その数値データが「1」だけカウントアップされておらず)、n秒が経過しても生存確認用の数値データに変化がない場合、通常運転用の制御装置1100は、待機用の制御装置1200の生存を確認できないと判定する。
なお、n秒が経過しても生存確認用の数値データが変化しないことの判定(ステップS406)は、必要に応じて省略してもよい。この場合、上述のステップS403において生存確認用の数値データがカウントアップされていないと判定された場合、通常運転用の制御装置1100は、待機用の制御装置1200の生存を確認できないと判定する。
上述のように、通常運転用の制御装置1100は、自身の生存確認用の数値データを共有メモリ1300の生存確認データ記憶領域1311に格納すると共に、待機用の制御装置1200によって生存確認データ記憶領域1312に格納された数値データに基づいて待機用の制御装置1200の生存を確認する。そして、通常運転用の制御装置1100は、待機用の制御装置1200の生存を確認できない場合、この待機用の制御装置1200の運転を停止させ、自身の運転を継続する。この場合、通常運転用の制御装置1100は、警報を発生させて、待機用の制御装置1200の生存が確認できない旨をオペレータに通知してもよい。
・待機用の制御装置1200による処理
上述の通常運転用の制御装置1100による処理では、待機用の制御装置1200の生存が確認できない場合、その運転を停止させたが、待機用の制御装置1200による処理では、待機用の制御装置1200が通常運転用の制御装置1100の生存を確認できない場合、待機用の制御装置1200を運転状態にし(後述のステップS509)、通常運転用の制御装置1100の運転を停止させる(後述のステップS511)。これにより、通常運転用の制御装置1100から待機用の制御装置1200に切り替える。その他は、上述の通常運転用の制御装置1100による処理と同様である。
具体的に説明する。待機用の制御装置1200は、上述の通常運転用の制御装置1100と同様に、各制御サイクルにおいて、通常運転用の制御装置1100が生存しているか否かを判定する生存確認処理を実施する。即ち、待機用の制御装置1200は、各制御サイクルにおいて、通常運転用の制御装置1100が制御装置1200の生存を確認するためのデータとして、「1」から「100」までの数値範囲で巡回する生存確認用の数値データを生成して、共有メモリ1300の生存確認データ記憶領域1312に格納する(ステップS501)。最初の制御サイクルでは、待機用の制御装置1200は、生存確認用の数値データとして「1」を生成して共有メモリ1300の生存確認データ記憶領域1312に格納する。この生存確認用の数値データは、上述した図4に示す通常運転用の制御装置1100による処理(ステップS402)において参照される。
続いて、待機用の制御装置1200は、最初の制御サイクルにおいて、通常運転用の制御装置1100により共有メモリ1300の生存確認データ記憶領域1311に格納された生存確認用の数値データ「1」を取得して保持する(ステップS502)。
続いて、待機用の制御装置1200は、前回の制御サイクルにおいて共有メモリ1300の生存確認データ記憶領域1311から取得して保持した通常運転用の制御装置1100の生存確認用の数値データ(保持値)と、今回の制御サイクルにおいて共有メモリ1300の生存確認データ記憶領域1311から取得した通常運転用の制御装置1100の生存確認用の数値データ(取得値)とを比較する(ステップS503)。ただし、最初の制御サイクルでは、前回の制御サイクルは存在しないので、前回の制御サイクルで取得して保持した数値データ(保持値)として初期値「0」が設定される。
続いて、待機用の制御装置1200は、共有メモリ1300の生存確認データ記憶領域1311に格納された数値データを参照し、今回の制御サイクルで取得した生存確認用の数値データ(取得値)と前回の制御サイクルで取得して保持した数値データ(保持値)との間に所定の変化があるかどうかを判定する。具体的には、待機用の制御装置1200は、今回の制御サイクルで取得した生存確認用の数値データの値(取得値)が前回の制御サイクルで取得して保持した数値データの値(保持値)に対して「1」だけカウントアップされているか否かを判定する(ステップS504)。
生存確認データ記憶領域1311に格納された生存確認用の数値データの値が「1」だけカウントアップされていれば(ステップS504;YES)、制御装置1200は運転を継続し(ステップS505)、処理をステップS501に戻して次の制御サイクルに移行する。前述のように、最初の制御サイクルでは、前回の制御サイクルで取得して保持した数値データとして初期値「0」が設定されるので、生存確認データ記憶領域1311から取得された生存確認用の数値データの値が「1」であれば、生存確認用の数値データは「1」だけカウントアップされていることになる。
生存確認データ記憶領域1311に格納された数値データが「1」だけカウントアップされていない場合(ステップS504;NO)、待機用の制御装置1200は、n秒が経過したか否かを判定する(ステップS506)。即ち、待機用の制御装置1200は、n秒の間、共有メモリ1300の生存確認用データ記憶領域1311に格納される生存確認用の数値データの値に変化がないかどうかを判定する。n秒の意味は、前述の通常運転用の制御装置1100による処理と同様である。
n秒が経過しない場合(ステップS506;NO)、即ち、n秒が経過する前に、共有メモリ1300の生存確認用データ記憶領域1311に格納された生存確認用の数値データの値がカウントアップされた場合、待機用の制御装置1200は、通常運転用の制御装置1100に異常はないと判断する。そして、待機用の制御装置1200は、自身の運転を継続し(ステップS513)、処理をステップS501に戻して次の制御サイクルに移行する。
これに対し、n秒が経過した場合(ステップS506;YES)、即ち、n秒が経過しても、共有メモリ1300の生存確認用データ記憶領域1311に格納された生存確認用の数値データの値に変化がない場合、待機用の制御装置1200は、通常運転用の制御装置1100に異常があり、その生存を確認できないと判定する(ステップS507)。
このように、本実施形態では、生存確認データ記憶領域1311に格納された生存確認用の数値データに変化がなく(即ち、その数値データが「1」だけカウントアップされておらず)、n秒が経過しても生存確認用の数値データに変化がない場合、待機用の制御装置1200は、通常運転用の制御装置1100の生存を確認できないと判定する。
なお、n秒が経過しても生存確認用の数値データが変化しないことの判定(ステップS506)は、必要に応じて省略してもよい。この場合、上述のステップS503において生存確認用の数値データがカウントアップされていないと判定された場合に、待機用の制御装置1200は、通常運転用の制御装置1200の生存を確認できないと判定する。
通常運転用の制御装置1100の生存を確認できないと判定すると(ステップS507)、待機用の制御装置1200は、通常運転用の制御装置1100に関する共有メモリ1300内の異常発生状態管理領域(図示なし)に格納されたデータを更新する(ステップS508)。そして、待機用の制御装置1200は、自身を運転状態に設定する(ステップS509)。ここで、通常運転用の制御装置1100に関する共有メモリ1300内の異常発生状態管理領域(図示なし)には、待機用の制御装置1200により通常運転用の制御装置1100の生存が確認されない場合の異常発生を示すデータが格納される。前述したように、本実施形態では、通常運転用の制御装置1100と待機用の制御装置1200が共に相手側の制御装置の生存を確認できないと判定した場合、先に異常発生状態管理領域のデータを更新した制御装置のみが運転を継続し、残りの制御装置の運転が停止される。これにより、通常運転用の制御装置1100と待機用の制御装置1200が共に相手側の制御装置の生存を確認できないと判定した場合の共倒れを回避する。
本実施形態では、待機用の制御装置1200は、通常運転用の制御装置1100と並行して運転されているので、厳密には定常的に運転状態にあるが、ステップS509では、待機用の制御装置1200は、共有メモリ1300のアクセス権を獲得し、選択部1340に演算結果記憶領域1332を選択させる。この結果、以後の制御サイクルでは、共有メモリ1300の演算結果記憶領域1332に格納された演算結果RBが出力データDOUTとして共有メモリ1300から出力される。これにより、通常運転用の制御装置1100から待機用の制御装置1200への切り替えが行われる。
ここで、待機用の制御装置1200は、通常運転用の制御装置1100による演算処理と同様の演算処理を実行して、その演算結果RBを共有メモリ1300の演算結果記憶領域1332に逐次格納している。従って、故障が発生する直前の制御サイクルでは、演算結果記憶領域1332に格納された演算結果RBは、演算結果記憶領域1331に格納された演算結果RAと同一である。このため、故障が発生した制御サイクルで、通常運転用の制御装置1100から待機用の制御装置1200に切り替える際に、演算結果記憶領域1331に格納された演算結果RAを演算結果記憶領域1332に転送する必要がない。従って、制御を中断することなく、通常運転用の制御装置1100から待機用の制御装置1200に速やかに切り替えることができる。
その後、待機用の制御装置1200は、通常運転用の制御装置1100を、稼働中のタスクを順次サスペンドさせるために待機状態にし(ステップS510)、この待機状態を経た後に通常運転用の制御装置1100の運転を停止させる(ステップS511)。その後、待機用の制御装置1200は、運転を継続し(ステップS512)、処理をステップS501に戻して次の制御サイクルに移行する。
上述のように、待機用の制御装置1200による処理では、自身の生存確認用の数値データを共有メモリ1300の生存確認データ記憶領域1312に格納すると共に、生存確認データ記憶領域1311に格納された数値データに基づいて通常運転用の制御装置1100の生存を確認する。そして、通常運転用の制御装置1100の生存を確認できない場合、この制御装置1100の運転を停止させると共に自身が運転を継続し、それ以降、演算結果RBを出力データDOUTとして出力する。
確認的に、上述した本実施形態による冗長システム1000の動作について、図6を参照しながら前述の図7に示す従来技術と対比させて説明する。
図6(a)に示すように、本実施形態による冗長化システム1000によれば、故障が発生しない場合、通常運転用の制御装置1100および待機用の制御装置1200が同一の入力データDINに対して並列に同様の演算処理を実行する。また、通常運転用の制御装置1100の演算結果RAと待機用の制御装置1200の演算結果RBとが整合するか否かが定周期で判定される。共有メモリ1300には、通常運転用の制御装置1100による演算結果RAと、待機用の制御装置1200による演算結果RBの両方が逐次格納されるが、通常運転時には、出力データDOUTとして通常運転用の制御装置1100による演算結果RAが出力される。
これに対し、図7(a)に示すように、従来技術によれば、通常運転時には、通常運転用の制御装置501のみが運転され、待機用の制御装置502は演算処理を実施しない。そのため、共有メモリ503には、通常運転用の制御装置1100の演算結果しか格納されない。
図6に説明を戻すと、本実施形態による冗長化システム1000によれば、通常運転用の制御装置1100に故障が発生し、その生存確認がとれない場合、図6(b)に示すように、待機用の制御装置1200は、共有メモリ1300の演算結果記憶領域1332に格納された演算結果RBを共有メモリ1300から出力させる。これにより、通常運転用の制御装置1100から待機用の制御装置1200に運転が切り替えられる。このとき、共有メモリ1300には、それまでの通常運転用の制御装置1100の演算結果RAと同じ内容の演算結果RBが格納されており、また、待機用の制御装置1200の記憶部にも同一内容の演算結果RBが存在する。このため、制御装置を切り替える際に、通常運転用の制御装置による演算結果を待機用の制御装置に転送する必要がない。従って、制御を中断することなく、制御装置の切り替えを速やかに行うことができる。
これに対し、図7(b)に示すように、従来技術によれば、通常運転用の制御装置501が故障すると、それまでの演算結果は共有メモリ503から待機用の制御装置502に転送される。そして、待機用の制御装置502は、共有メモリ503から転送された演算結果を反映させて演算処理を実行する。その後、図7(c)に示すように、待機用の制御装置502は、その演算結果を共有メモリ503に格納する。このように、従来技術によれば、制御装置を切り替える際に、共有メモリ503と待機用の制御装置502との間で演算結果を転送する必要がある。このため、図7に示す技術によれば、制御装置の切り替えを遅滞なく行うことが困難になる。
なお、上述した本実施形態では、本発明を冗長化システムとして表現したが、本発明を冗長化方法として表現することもできる。この場合、本発明による冗長化方法は、制御対象の制御に関する演算処理を実行する第1制御装置と、前記第1制御装置による演算処理と並行して、前記第1制御装置による演算処理と同等の演算処理を実行する第2制御装置と、前記第1制御装置および前記第2制御装置によって共有される記憶装置と、を備えた冗長化システムの冗長化方法であって、前記記憶装置が、前記第1制御装置および前記第2制御装置による各演算処理の演算結果を格納するための演算結果記憶領域と、前記第1制御装置の生存を確認するためのデータを格納するための生存確認データ記憶領域と、を有し、前記第2制御装置が、前記生存確認データ記憶領域に格納されたデータを参照して前記第1制御装置の生存確認を行う段階と、前記第2制御装置が、前記第1制御装置の生存を確認できない場合、前記演算結果記憶領域に格納された演算結果のうち、前記第2制御装置により格納された演算結果を前記記憶装置から出力させる段階と、を含む冗長化方法として表現することができる。
上述したように、本実施形態によれば、通常運転用の制御装置1100と待機用の制御装置1200とを並列に運転して各演算結果を共有メモリ1300に逐次格納するようにしたので、通常運転用の制御装置1100から待機用の制御装置1200に切り替える際に、演算結果を転送する必要がない。従って、制御を中断することなく、通常運転用の制御装置1100から待機用の制御装置1200に速やかに切り替えることができる。
また、本実施形態によれば、演算結果が整合していることが確認され、且つ、通常運転用の制御装置1100の生存を確認できない場合に、通常運転用の制御装置1100から待機用の制御装置1200に切り替えるので、制御の連続性を維持することができる。
また、本実施形態によれば、制御装置を切り替える前の段階で演算結果が整合していない場合、通常運転用の制御装置1100の演算結果RAを優先して出力するので、この場合にも制御の連続性を維持し、制御を安定化させることができる。
また、本実施形態によれば、通常運転用の制御装置1100は、待機用の制御装置1200の生存を確認できない場合、この待機用の制御装置1200の運転を停止させるので、待機用の制御装置1200が故障を抱えたまま運転を継続することがない。従って、待機用の制御装置1200の故障の拡大を防止することができる。
なお、本実施形態では、共有メモリ1300の生存確認データ記憶領域1312に格納された生存確認用の数値データに基づいて、通常運転用の制御装置1100が待機用の制御装置1200の生存を確認するものとしたが、必要に応じて待機用の制御装置1200の生存確認を省略してもよい。この場合、共有メモリ1300の生存確認データ記憶領域1312を省略することができる。生存確認データ記憶領域1312を省略した場合、例えば、オペレータが待機用の制御装置1200の生存確認を手動により定期的に実施してもよく、その手法は任意である。ただし、上述した本実施形態のように、通常運転用の制御装置1100が待機用の制御装置1200の生存を確認するものとすれば、通常運転用の制御装置1100から待機用の制御装置1200に運転を切り替える際に制御を的確に継続することが可能になる。加えて、制御装置1200の生存をオペレータが確認する作業を省くことが可能になる。
また、本実施形態では、通常運転用の制御装置1100および待機用の制御装置1200の各演算結果のチェックサム値を用いて演算結果が整合するか否かを判定するものとしたが、チェックサム値を用いずに、演算結果自体を用いて、演算結果の整合を判定してもよい。この場合、チェックサム記憶領域1321を省略することができる。また、チェックサム値に限定されず、他の手法を用いて演算結果の整合を判定してもよい。
以上、本発明の実施形態を説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の変形、変更、修正、置換等が可能である。
例えば、上述の実施形態では、通常運転用の制御装置1100と待機用の制御装置1200の2台の制御装置を用いて冗長化システム1000を構成したが、複数の通常運転用の制御装置と、これに対応する複数の待機用の制御装置とを用いて冗長化システムを構成してもよい。
また、上述の実施形態では、通常運転用の制御装置1100と待機用の制御装置1200により共有メモリ1300を共有するものとしたが、共有メモリ1300は他の冗長化システムによって共有されてもよい。
また、上述の実施形態では、1つの共有メモリ1300に演算結果記憶領域1331、1332を設けたが、演算結果記憶領域1331、1332を別個のメモリに設けてもよい。即ち、共有メモリは単一のメモリに限らず、複数のメモリの集合体であってもよい。
また、上述の実施形態では、生存確認データ記憶領域1311,1312、チェックサム記憶領域1321は、演算結果記憶領域1331,1332とは別の記憶領域としたが、演算結果記憶領域1331,1332の一部を生存確認データ記憶領域1311,1312、チェックサム記憶領域1321として用いてもよい。例えば、共有メモリ1300のアドレス空間の一部に、生存確認データ記憶領域1311,1312やチェックサム記憶領域1321等を割り付けてもよい。
1000…冗長化システム、1100…通常運転用の制御装置、1200…待機用の制御装置、1300…共有メモリ、1311,1312…生存確認データ記憶領域、1321…チェックサム記憶領域、1331,1332…演算結果記憶領域、1340…選択部、S211〜S213,S221〜S226,S301〜S309,S401〜S411,S501〜S513…処理ステップ。

Claims (8)

  1. 制御対象の制御に関する演算処理を実行する第1制御装置と、
    前記第1制御装置による演算処理と並行して、前記第1制御装置による演算処理と同等の演算処理を実行する第2制御装置と、
    前記第1制御装置および前記第2制御装置によって共有される記憶装置と、
    を備え、
    前記記憶装置は、
    前記第1制御装置および前記第2制御装置による各演算処理の演算結果を格納するための演算結果記憶領域と、
    前記第1制御装置の生存を確認するためのデータを格納するための生存確認データ記憶領域と、
    を有し、
    前記第2制御装置は、前記生存確認データ記憶領域に格納されたデータを参照して前記第1制御装置の生存確認を行い、前記第1制御装置の生存を確認できない場合、前記演算結果記憶領域に格納された演算結果のうち、前記第2制御装置により格納された演算結果を前記記憶装置から出力させる、冗長化システム。
  2. 前記第1制御装置は、該第1制御装置の生存を確認するためのデータとして、所定の数値範囲で巡回する数値データを生成して前記生存確認データ記憶領域に格納する、請求項1に記載の冗長化システム。
  3. 前記第2制御装置は、前記生存確認データ記憶領域に格納された数値データを参照し、該数値データに所定の変化がない場合、前記第1制御装置の生存を確認できないと判定する、請求項2に記載の冗長化システム。
  4. 前記第2制御装置は、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しているか否かを判定し、前記演算結果が整合していない場合、警報を発する、請求項1から3の何れか1項に記載の冗長化システム。
  5. 前記第1制御装置は、該第1制御装置による演算処理の演算結果のチェックサム値を演算して前記記憶装置に格納し、
    前記第2制御装置は、該第2制御装置による演算処理の演算結果のチェックサム値を演算し、該演算により得られたチェックサム値と前記第1制御装置により前記記憶装置に格納されたチェックサム値とを比較することにより、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しているか否かを判定する、請求項4に記載の冗長化システム。
  6. 前記第2制御装置は、前記第1制御装置による演算処理の演算結果と前記第2制御装置による演算処理の演算結果とが整合しており、且つ、前記第1制御装置の生存を確認できない場合、前記第2制御装置により前記演算結果記憶領域に格納された演算結果を前記記憶装置から出力させる、請求項4または5に記載の冗長化システム。
  7. 前記第1制御装置は、通常運転用の制御装置であり、前記第2制御装置は、待機用の制御装置である、請求項1から6の何れか1項に記載の冗長化システム。
  8. 制御対象の制御に関する演算処理を実行する第1制御装置と、前記第1制御装置による演算処理と並行して、前記第1制御装置による演算処理と同等の演算処理を実行する第2制御装置と、前記第1制御装置および前記第2制御装置によって共有される記憶装置と、を備えた冗長化システムの冗長化方法であって、
    前記記憶装置が、前記第1制御装置および前記第2制御装置による各演算処理の演算結果を格納するための演算結果記憶領域と、前記第1制御装置の生存を確認するためのデータを格納するための生存確認データ記憶領域と、を有し、
    前記第2制御装置が、前記生存確認データ記憶領域に格納されたデータを参照して前記第1制御装置の生存確認を行う段階と、
    前記第2制御装置が、前記第1制御装置の生存を確認できない場合、前記演算結果記憶領域に格納された演算結果のうち、前記第2制御装置により格納された演算結果を前記記憶装置から出力させる段階と、
    を含む冗長化方法。
JP2012260977A 2012-11-29 2012-11-29 冗長化システムおよび冗長化方法 Active JP5993292B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012260977A JP5993292B2 (ja) 2012-11-29 2012-11-29 冗長化システムおよび冗長化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012260977A JP5993292B2 (ja) 2012-11-29 2012-11-29 冗長化システムおよび冗長化方法

Publications (2)

Publication Number Publication Date
JP2014106862A true JP2014106862A (ja) 2014-06-09
JP5993292B2 JP5993292B2 (ja) 2016-09-14

Family

ID=51028263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012260977A Active JP5993292B2 (ja) 2012-11-29 2012-11-29 冗長化システムおよび冗長化方法

Country Status (1)

Country Link
JP (1) JP5993292B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204327A (zh) * 2015-08-24 2015-12-30 北京航空航天大学 一种基于最小路不交化的飞机非相似冗余混合作动系统可靠性确认方法
CN113534708A (zh) * 2021-07-12 2021-10-22 三一汽车制造有限公司 一种工控机热备份方法、装置及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62263554A (ja) * 1986-05-09 1987-11-16 Fujitsu Ltd 共用メモリ二重化システム方式
JPS6442742A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Fault monitoring method for multi-processor system
JPH05298220A (ja) * 1992-04-17 1993-11-12 Toshiba Corp Lanシステム
JPH11149458A (ja) * 1997-11-18 1999-06-02 Toshiba Corp 2重化計算機システム及び同システムにおける排他制御方法
JP2005025289A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd 複数計算機間で共有する外部記憶装置におけるデータ保護プログラムおよびデータ保護方法
JP2005227873A (ja) * 2004-02-10 2005-08-25 Fanuc Ltd プログラマブル・シーケンス制御装置
JP2010219370A (ja) * 2009-03-18 2010-09-30 Toshiba Corp 半導体装置および半導体システム
JP2010218370A (ja) * 2009-03-18 2010-09-30 Nec Corp フォールトトレラントシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62263554A (ja) * 1986-05-09 1987-11-16 Fujitsu Ltd 共用メモリ二重化システム方式
JPS6442742A (en) * 1987-08-11 1989-02-15 Hitachi Ltd Fault monitoring method for multi-processor system
JPH05298220A (ja) * 1992-04-17 1993-11-12 Toshiba Corp Lanシステム
JPH11149458A (ja) * 1997-11-18 1999-06-02 Toshiba Corp 2重化計算機システム及び同システムにおける排他制御方法
JP2005025289A (ja) * 2003-06-30 2005-01-27 Fujitsu Ltd 複数計算機間で共有する外部記憶装置におけるデータ保護プログラムおよびデータ保護方法
JP2005227873A (ja) * 2004-02-10 2005-08-25 Fanuc Ltd プログラマブル・シーケンス制御装置
JP2010219370A (ja) * 2009-03-18 2010-09-30 Toshiba Corp 半導体装置および半導体システム
JP2010218370A (ja) * 2009-03-18 2010-09-30 Nec Corp フォールトトレラントシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204327A (zh) * 2015-08-24 2015-12-30 北京航空航天大学 一种基于最小路不交化的飞机非相似冗余混合作动系统可靠性确认方法
CN113534708A (zh) * 2021-07-12 2021-10-22 三一汽车制造有限公司 一种工控机热备份方法、装置及系统

Also Published As

Publication number Publication date
JP5993292B2 (ja) 2016-09-14

Similar Documents

Publication Publication Date Title
CN105431862B (zh) 针对存储器控制器的密钥旋转
US10606716B2 (en) Dynamically adjusting power disturbance hold up times
JP6179344B2 (ja) 情報処理方法、プログラム、情報処理装置、及びコンピュータシステム
CN104981787B (zh) 具有母核和侦察核的芯片的数据预取
JP5993292B2 (ja) 冗長化システムおよび冗長化方法
US10677485B2 (en) Determining the cause of a fault in an HVAC system
JPWO2014174546A1 (ja) プログラマブルロジックコントローラシステム及びプログラマブルロジックコントローラ
EP1889163A1 (en) System and method for bypassing execution of an algorithm
JP6596287B2 (ja) プラント保全支援システム
US20160371154A1 (en) Remote control device and control system
JP2012150657A (ja) 計算機システム
JP2015191616A (ja) プロセス制御装置、プロセス制御方法及びプロセス制御プログラム
KR102062082B1 (ko) 에너지 관리 시스템
JP4974365B2 (ja) 分散監視制御システム
JP2006053737A (ja) レプリケーションシステム及びレプリケーション方法
JP2010238232A (ja) 産業用コントローラ
US9460013B2 (en) Method and system for removal of a cache agent
JP2016207142A (ja) 計算機及びメモリ故障診断方法
JP2019175221A (ja) 制御装置およびそのデータ書き込み方法
JP5687171B2 (ja) コントローラ、監視ユニット、およびシーケンスプログラム更新方法
CN115333925B (zh) 设备处理方法、装置、计算机设备、存储介质和程序产品
JP2012014523A (ja) サブルーチン実行監視装置及びサブルーチン実行監視方法
CN115508696A (zh) 异常处理方法、装置、计算机设备和存储介质
JP2017517808A (ja) 致命的なエラーの発生の直後のコンピュータの処理モジュールレジスタに格納された情報の取得方法
KR20060080666A (ko) 다중 프로세서 시스템에서 부하를 분배하기 위한 장치 및방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160819

R150 Certificate of patent or registration of utility model

Ref document number: 5993292

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250