JP2018142077A - 冗長化システム及び冗長化方法 - Google Patents

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

Info

Publication number
JP2018142077A
JP2018142077A JP2017034783A JP2017034783A JP2018142077A JP 2018142077 A JP2018142077 A JP 2018142077A JP 2017034783 A JP2017034783 A JP 2017034783A JP 2017034783 A JP2017034783 A JP 2017034783A JP 2018142077 A JP2018142077 A JP 2018142077A
Authority
JP
Japan
Prior art keywords
data
block data
unit
arithmetic
output
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
JP2017034783A
Other languages
English (en)
Other versions
JP6843650B2 (ja
Inventor
安西 史圭
Fumiyoshi Anzai
史圭 安西
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.)
Mitsubishi Heavy Industries Ltd
Original Assignee
Mitsubishi Heavy Industries Ltd
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 Mitsubishi Heavy Industries Ltd filed Critical Mitsubishi Heavy Industries Ltd
Priority to JP2017034783A priority Critical patent/JP6843650B2/ja
Publication of JP2018142077A publication Critical patent/JP2018142077A/ja
Application granted granted Critical
Publication of JP6843650B2 publication Critical patent/JP6843650B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】信頼性を向上することができる冗長化システム及び冗長化方法を提供する。【解決手段】複数の演算装置のそれぞれは、データ生成部、通信部を備える。データ生成部は、前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成する。通信部は、現時点のブロックデータを前記複数の演算装置間で交換する。複数の演算装置の少なくとも1台は、検出対象の障害が検出されるとき、検出対象の機能を補うための機能制御部を備える。【選択図】図2

Description

本発明は、冗長化システム及び冗長化方法に関する。
発電プラント、鉄道システム、船舶、自動車、工場のオートメーション等においては、それらの運転を制御するために分散制御システムが使用されることがある。分散制御システムは、冗長化構成を有する。冗長化構成とは、多重化構成とも呼ばれ、2つ又はそれ以上(例えば、4つ)のサブシステムを備え、サブシステム間で同一の処理を並列に行わせる構成である。このとき、各サブシステムの制御装置は、ネットワーク通信を介してデータ交換を行い、各制御装置が動作していること(keep alive)の確認、同一の演算を行っていることの確認を行う。また、各サブシステムの入出力コントローラ(以下、IOコントローラ、と呼ぶ)、各制御装置から受信した指示値に対して多数決処理(voting)を行い、圧力調整弁や流量調整弁などのフィールド機器への指令値を決定する。
また、データセンタ、クラスタサーバでは、分散制御システムと同様に、分散型サーバシステムが使用されることがある。分散型サーバシステムには、中央サーバと複数の分散サーバから構成され、分散サーバが複数のアプリケーションプログラム(以下、単にアプリケーション又はアプリ、と呼ぶことがある)の処理を実行するシステムがある。中央サーバは、システム全体の処理の実行状態を監視し、分散サーバの障害発生時において、障害が発生した分散サーバが実行していた処理に係るアプリケーションと同一のアプリケーションの処理を起動する。これにより、分散サーバ間で実行していた処理が分散される。
特許第5574627号公報
しかしながら、冗長化構成をとる場合、各制御装置が他の全制御装置に自装置で生成したデータを送信する。そのため、冗長化台数が増えると、システム全体の信頼性が向上する一方で、制御装置間で送受信されるデータの通信量が著しく増える。冗長化台数とは、冗長化構成におけるサブシステムの数である。冗長化台数は、多重度と呼ばれることもある。例えば、サブシステム、即ち制御装置の個数がn(nは、1より大きい整数)個である場合には、制御装置間における通信量は、冗長化構成をとらない場合のn(n−1)/2倍となる。この点で、冗長化台数を容易に増やすことができないという課題があった。
また、分散型サーバシステムでは、分散サーバによるリソースの有効活用、信頼性向上のためにアプリケーションの配置管理が行われることがある。その場合、個々の分散サーバの稼働状態を監視するための中央サーバを必要とする。中央サーバの障害は、分散型サーバシステム全体の稼働に影響を及ぼしうるという課題があった。
本発明は、上述の課題を鑑みてなされたものであり、信頼性を向上することができる冗長化システム及び冗長化方法を提供することを目的としている。
本実施形態の一態様は、複数の演算装置を備える冗長化システムであって、前記複数の演算装置のそれぞれは、前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成するデータ生成部と、前記現時点のブロックデータを前記複数の演算装置間で同報する通信部と、を備え、前記複数の演算装置の少なくとも1台は、前記検出対象の障害が検出されるとき、前記検出対象の機能を補うための機能制御部、を備える冗長化システムである。
本実施形態の他の態様は、上述の冗長化システムであって、前記複数の演算装置のそれぞれは、入力装置から入力データを取得する第2通信部と、前記検出対象として、現時点の入力データに基づいて所定の演算を行って出力データを算出する制御演算部と、前記出力データを算出する過程で得られる中間値データを記憶する記憶部と、を備え、前記データ生成部は、前記検証値と、前記履歴情報に現時点の入力データ又は中間値データを追加してなる現時点の履歴情報と、を含むブロックデータを生成し、前記機能制御部は、現時点の前記入力データの前記複数の演算装置間の出現頻度に基づいて前記通信部が取得した入力データの正誤を判定し、誤りと判定された入力データを正しいと判定された入力データに更新し、前記中間値データの前記複数の演算装置間の出現頻度に基づいて前記制御演算部から得られた中間値データの正誤を判定し、誤りと判定された中間値データを正しいと判定された演算データに更新する。
本実施形態の他の態様は、上述の冗長化システムであって、前記複数の制御装置のそれぞれと入出力ネットワークを介して接続される通信部と、前記出力データの前記複数の演算装置間の出現頻度に基づいて前記出力データの正誤を判定し、正しいと判定された出力データを選定するデータ選定部と、前記検証値と、前時点までの出力データからなる出力履歴情報に現時点の前記出力データの選択結果を示す情報を追加した現時点の出力履歴情報と、を含む出力ブロックデータを生成するデータ生成部と、を有する出力装置を備え、前記通信部は、前記出力ブロックデータを前記入出力ネットワークに送出する。
本発明の他の態様は、上述の冗長化システムであって、前記複数の演算装置のそれぞれは、前記検出対象として、所定のアプリケーションプログラムに基づく処理を実行する実行部、を備え、前記複数の演算装置のうち前記実行部が前記処理を実行する第1演算装置において、前記処理の障害が検出されるとき、前記データ生成部は、前記検証値と、現時点の稼働状態の情報として前記障害に関する情報に基づいて第1ブロックデータを生成し、前記通信部は、前記第1ブロックデータを前記複数の演算装置のうち前記第1演算装置とは異なる他の演算装置に送信し、前記複数の演算装置のうち前記第1ブロックデータを取得した第2演算装置において、前記機能制御部は、前記アプリケーションプログラムに基づく処理を起動し、前記データ生成部は、前記第1ブロックデータに基づく検証値と、現時点の稼働状態の情報として前記起動に関する情報に基づいて第2ブロックデータを生成し、前記通信部は、前記第2ブロックデータを前記複数の演算装置のうち前記第2演算装置とは異なる他の演算装置に送信する。
本発明の他の態様は、上述の冗長化システムであって、前記複数の演算装置の少なくとも1台は、検出対象の障害を検出する検出部を備え、前記障害が検出されるとき、前記データ生成部は、前記検証値と、現時点の稼働状態の情報として前記障害に関する情報に基づいて第1ブロックデータを生成し、前記通信部は、前記第1ブロックデータを前記複数の演算装置のうち前記少なくとも1台の演算装置とは異なる他の演算装置に送信し、前記複数の演算装置のうち前記第1ブロックデータを取得した第2演算装置において、前記検出対象の機能が補われるとき、前記データ生成部は、前記第1ブロックデータに基づく検証値と、前記現時点の稼働状態の情報として前記機能への対応に関する情報に基づいて第2ブロックデータを生成し、前記通信部は、前記第2ブロックデータを前記複数の演算装置のうち前記第2演算装置とは異なる他の演算装置に送信する。
本発明の他の態様は、複数の演算装置を備える冗長化システムにおける冗長化方法であって、前記複数の演算装置のそれぞれは、前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成するデータ生成過程と、前記現時点のブロックデータを前記複数の演算装置間で同報する通信過程と、前記複数の演算装置の少なくとも1台は、前記検出対象の障害が検出されるとき、前記検出対象の機能を補うための機能制御過程と、を有する冗長化方法。
本発明によれば、前記中央サーバのような演算装置の稼働状態を監視するための機器を設置しなくても、冗長化された個々の演算装置の分散処理を維持し、障害対応を行うためのデータを共有することができる。そのため、通信量の増大を抑えつつ演算装置を増やすことができるようになり冗長化システムの信頼性を向上することができる。
第一実施形態に係る冗長化システムの一構成例を示すブロック図である。 第一実施形態に係る演算装置の機能構成の一例を示すブロック図である。 第一実施形態に係るブロックデータの例を示す図である。 第一実施形態に係る稼働管理処理の一例を示すフローチャートである。 第二実施形態に係る冗長化システムの一構成例を示すブロック図である。 第二実施形態に係る演算装置の機能構成の一例を示すブロック図である。 第二実施形態に係るブロックデータの例を示す図である。 第二実施形態に係るブロックデータの他の例を示す図である。 第二実施形態に係る比較採用処理の一例を示すフローチャートである。 第三実施形態に係る冗長化システムの一構成例を示すブロック図である。 第三実施形態に係る演算装置の機能構成の一例を示すブロック図である。 第三実施形態に係るブロックデータの例を示す図である。 第三実施形態の一変形例に係るブロックデータの例を示す図である。 第四実施形態に係る冗長化システムの一構成例を示すブロック図である。 第四実施形態に係る出力装置の機能構成の一例を示すブロック図である。 第四実施形態に係るブロックデータの例を示す図である。
<第一実施形態>
以下、本発明の第一実施形態に係る冗長化システムについて、図1〜図4を参照して説明する。
図1は、本実施形態に係る冗長化システム1の一構成例を示すブロック図である。
冗長化システム1は、複数の演算装置10を含んで構成される。複数の演算装置10は、互いに共通の構成を備える。演算装置10a等のa等の符号は、個々の演算装置を区別するための符号である。演算装置10a−10dは、それぞれ情報ネットワークNWで通信可能に接続され、相互に各種のデータを送受信できる。図1に示す例では、演算装置10の台数は、4個であるが、3個以上であればよい。また、台数の上限は特に設けられない。本実施形態では、演算装置10は、例えば、サーバ装置として実現されるが、これには限られない。演算装置10は、後述する制御装置、出力装置として実現されてもよい。
次に、本実施形態に係る演算装置10の構成について説明する。図2は、本実施形態に係る演算装置10の機能構成の一例を示すブロック図である。
演算装置10は、制御演算部(実行部)11、検出部12、機能制御部13、ブロックデータ処理部14、通信部16及び記憶部18を備える。演算装置10は、例えば、CPU(Central Processing Unit)、ASIC(Application Specific integrated Circuit)等の演算処理を実行する演算デバイスから構成される。演算デバイスは、記憶部18に記憶された所定の制御プログラムを読み出し、読み出した制御プログラムに記述された命令が示す処理を実行する。プログラムに記述された命令が示す処理を実行することを、単に「プログラムを実行する」と呼ぶことがある。また、プログラムには、アプリケーションプログラムが含まれる。以下の説明では、アプリケーションプログラムを単に「アプリケーション」又は「アプリ」と呼ぶことがある。また、機能部間でその処理を実行する演算デバイスが共通であってもよいし、異なっていてもよい。
制御演算部11は、制御演算部11は、記憶部18に記憶された所定のアプリケーションを読み出し、読み出したアプリケーションに記述された命令が示す処理を実行する。実行対象のアプリケーションは、例えば、ユーザの操作により指示されたアプリケーションである。
検出部12は、制御演算部11におけるアプリケーションの実行状態を所定時間毎に検出する。検出部12は、アプリケーションの実行状態として、例えば、起動状態と障害発生状態を検出する。起動状態は、例えば、起動済み(実行中)、起動中、停止(未起動)のいずれかの状態である。障害発生状態は、障害の発生の有無を示す状態である。障害には、例えば、アプリケーションの実行の停止が指示されていないにも関わらず、その実行が停止した状態(異常終了)が含まれる。検出部12は、検出したアプリケーションの障害発生状態を示す障害発生情報を記憶部18に記憶する。
機能制御部13は、ブロックデータ処理部14の受信データ解析部142が判定した各演算装置10におけるアプリケーションの実行状態に基づいて、制御演算部11にアプリケーションの起動を制御する。より具体的には、いずれかの演算装置10の機能制御部13のアプリケーションの実行に障害が発生しているとき、自装置の制御演算部11にアプリケーションの起動を指示する。いずれかの演算装置10には、自装置も含まれる。制御演算部11において正常にアプリケーションが起動したとき、機能制御部13は、そのアプリケーションの起動を示す起動情報を記憶部18に記憶する。
また、制御演算部11にアプリケーションの起動を指示した後、他の演算装置10の機能制御部13がアプリケーションを起動したとき、自装置の制御演算部11に起動を指示したアプリケーションの実行を停止させる。その場合には、機能制御部13は、そのアプリケーションの実行の停止を示す起動情報を示す起動情報を記憶部18に記憶する。そのため、複数の演算装置10間でのアプリケーションの二重起動が防止される。
ブロックデータ処理部14は、ブロックデータに係る処理を実行する。ブロックデータ処理部14は、ブロックデータ保存部141、受信データ解析部142、及び送信データ生成部143を含んで構成される。
ブロックデータ保存部141は、他の演算装置10から通信部16を介して受信したブロックデータと自装置の送信データ生成部143が生成したブロックデータを一時的に保存する。
受信データ解析部142は、ブロックデータ保存部141から、他の演算装置10の送信データ生成部143から受信したブロックデータと自装置の送信データ生成部143が生成したブロックデータを読み出す。受信データ解析部142は、各演算装置10のブロックデータに記述された最新の時点の障害アプリケーション情報から各演算装置10におけるアプリケーションの実行状態を解析する。受信データ解析部142は、最新の障害アプリケーション情報に、そのアプリケーションを起動した演算装置10を示す再起動情報が含まれていない場合、その演算装置10の機能制御部13におけるアプリケーションの実行に障害が発生していると判定する。受信データ解析部142は、障害の発生を判定したアプリケーションに係る障害アプリケーション情報に、そのアプリケーションを起動した演算装置10を示す再起動情報が含まれている場合、その再起動情報が示す演算装置10の機能制御部13が、そのアプリケーションと同一のアプリケーションの起動を判定する。
送信データ生成部143は、自装置の稼働状態を示す情報として、記憶部18に記憶された最新の自装置における障害発生情報又は起動情報に基づいて障害アプリケーション情報を生成する。障害アプリケーション情報は、障害が発生したアプリケーションを示す情報であり、そのアプリケーションを起動した演算装置10を示す再起動情報が付随される。再起動情報は、アプリケーションの起動の有無を示す情報である。アプリケーションが起動していないことは、例えば、いずれの演算装置10も示さない値(例えば、ヌル値)で表される。アプリケーションの起動は、そのアプリケーションを起動した機能制御部13を備える演算装置10を示す値で表される。
送信データ生成部143は、ブロックデータ保存部141に保存されたブロックデータのうち最新のブロックデータを読み出し、読み出したブロックデータと、生成した障害アプリケーション情報とに基づいて現時点のブロックデータを生成する。現時点のブロックデータは、最新のブロックデータ、つまり前時点のブロックデータに基づく検証値と、その履歴情報に新たに生成された障害アプリケーションの情報を追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部143は、検証値として、例えば、前時点のブロックデータに含まれるブロックヘッダ、現時点の履歴情報のそれぞれについて所定の一方向関数を用いてハッシュ値を算出する。ブロックデータの具体例については、後述する。送信データ生成部143は、通信部16を介して他の演算装置10に送信し、自装置のブロックデータ保存部141に保存する。これにより、自装置を含む複数の演算装置10間で送信データ生成部143が生成したブロックデータが同報(ブロードキャスト)され、相互間で共有される。
通信部16は、情報ネットワークNWと通信可能に接続され、情報ネットワークNWに接続された他の機器との間で各種のデータを送受信する。通信部16は、例えば、他の演算装置10からブロックデータを受信し、自装置の送信データ生成部143が生成したブロックデータを他の演算装置10に同報する。
記憶部18は、自装置の各部が取得した各種のデータ、自装置の各部の処理に用いるデータを記憶する。記憶部18、ブロックデータ保存部141は、例えば、RAM(Random Access Memory)などの記憶媒体を含んで構成される。
(ブロックデータ)
次に、本実施形態に係るブロックデータの例について説明する。
図3は、本実施形態に係るブロックデータの例を示す図である。
BD01、BD02、BD03は、ある時点におけるブロックデータ、その次の時点におけるブロックデータ、さらに次の時点におけるブロックデータをそれぞれ示す。
ブロックデータは、ブロックヘッダとその時点における履歴情報とを含んで構成される。ブロックヘッダには、前ブロックデータの検証値(図3に示す例では、前ブロックのハッシュ値)、装置ID、演算回数、検証用データ及び履歴情報の検証値(図3に示す例では、全障害アプリデータのハッシュ値)が含まれる。図3に示す例では、履歴情報として開始時点から現時点までの障害アプリケーション情報が時刻順に累積されて構成される情報が用いられる。但し、開始時点のブロックデータでは、前ブロックデータの検証値に代えて所定の初期値(例えば、0)が設定される。
前ブロックデータの検証値は、前時点におけるブロックデータのブロックヘッダから一方向関数を用いて導出される。この検証値は、現時点における履歴情報に含まれる前時点における履歴情報から得られる検証値に基づいても算出される。従って、双方の検証値が一致するか否かにより、現時点において生成されるブロックデータが正当であるか否かが検証される。
装置IDは、そのブロックデータを生成する演算装置10を示す識別情報である。
演算回数は、演算装置10が実行する演算処理を示す番号である。つまり、演算回数は、演算処理がどの段階まで進行したかを示す稼働タイミングを示す情報である。
検証用データは、演算装置10間で稼働タイミングを調整するために任意に設定されるデータである。他の演算装置10よりも稼働タイミングが先行している演算装置10は、その検証用データを用いて他の機能に影響を及ぼさない所定の処理を行う。その処理が行われる時間は、他の演算装置10よりも稼働タイミングが先行している時間差に相当する。所定の処理は、継続的な演算を含むことで一定の時間を要するアルゴリズムに基づく処理、例えば、円周率の計算、マイニング用ハッシュ値の計算である。検証用データには、例えば、処理開始時刻、カウンタタイマー値などが含まれる。検証用データには、その他、実行する処理の初期値、処理により得られる中間値などが含まれてもよい。
履歴情報の検証値は、現時点までの履歴情報の一方向関数として算出される検証値である。この検証値はブロックヘッダに含まれ、次の時点における前ブロックデータの検証値の導出に用いられる。従って、前ブロックデータが正当ではないと判定されるとき、現ブロックデータも正当ではないと判定される。
障害アプリケーション情報は、処理に障害が発生したアプリケーションを示す情報である。各時点の障害アプリケーション情報には、装置ID(Identifier)と再起動装置IDとが付随される。装置IDは、障害が発生した機能制御部13を備える演算装置10を示す識別情報である。再起動装置IDは、上述した再起動情報に相当する。再起動装置IDとして、そのアプリケーションを起動した機能制御部13を備える演算装置10の識別情報が用いられる。アプリケーションが起動していないことを示す情報として、例えば、所定のヌル値が再起動装置IDに設定される。
(稼働管理)
次に、本実施形態に係る稼働管理処理について説明する。
図4は、本実施形態に係る稼働管理処理の一例を示すフローチャートである。
(ステップS102)ある演算装置10の検出部12は、制御演算部11が実行するアプリケーションに基づく処理について障害を検出する。その後、ステップS104の処理に進む。
(ステップS104)検出部12は、そのアプリケーションに基づく処理について障害の発生を示す障害発生情報を記憶部18に記憶する。送信データ生成部143は、記憶部18に新たに記憶された障害発生状態に基づいて現時点の障害アプリケーション情報を生成する。送信データ生成部143は、生成した障害アプリケーション情報を前時点のブロックデータに含まれる履歴情報に追加して現時点の履歴情報を生成する。そして、送信データ生成部143は、生成した履歴情報と、その履歴情報の検証値をブロックヘッダに含む現時点のブロックデータとしてブロックデータ1を生成する。その後、ステップS106の処理に進む。
(ステップS106)送信データ生成部143は、通信部16を介してブロックデータ1を他の演算装置10に送信し、自装置のブロックデータ保存部141に記憶する。その後、ステップS108の処理に進む。
(ステップS108)他の演算装置10のブロックデータ保存部141は、他の演算装置10から通信部16を介して受信したブロックデータ1を記憶する。その後、ステップS110の処理に進む。
(ステップS110)各演算装置10の受信データ解析部142は、各演算装置10において生成されたブロックデータ1に基づいて、いずれかの演算装置10の機能制御部13のアプリケーションの実行に障害が発生しているか否かを判定する。障害が発生していると判定するとき(ステップS110 YES)、ステップS112の処理に進む。障害が発生していないと判定するとき(ステップS110 NO)、図4に示す処理を終了する。
(ステップS112)機能制御部13は、制御演算部11にそのアプリケーションの起動を指示する。その後、ステップS114の処理に進む。
(ステップS114)検出部12は、制御演算部11におけるアプリケーションの実行状態として、そのアプリケーションが正常に起動したか否かを判定する。正常に起動したと判定するとき(ステップS114 YES)、ステップS116の処理に進む。正常に起動していないと判定するとき(ステップS114 NO)、ステップS112の処理に戻る。
(ステップS116)機能制御部13は、起動指示したアプリケーションの起動を示す起動情報を記憶部18に記憶する。その後、ステップS118の処理に進む。
(ステップS118)送信データ生成部143は、記憶部18に新たに記憶された起動情報に基づいて現時点の障害アプリケーション情報を生成する。送信データ生成部143は、生成した障害アプリケーション情報を前時点のブロックデータとしてブロックデータ1に含まれる履歴情報に追加して現時点の履歴情報を生成する。そして、送信データ生成部143は、生成した履歴情報と、その履歴情報の検証値をブロックヘッダとして含む現時点のブロックデータとしてブロックデータ2を生成する。送信データ生成部143は、生成したブロックデータ2を他の演算装置10に通信部16を介して送信し、自装置のブロックデータ保存部141に記憶する。その後、ステップS120の処理に進む。
(ステップS120)ブロックデータ保存部141は、アプリケーションを起動した他の演算装置10から通信部16を介して受信したブロックデータ2を記憶する。その後、ステップS122の処理に進む。
(ステップS122)受信データ解析部142は、ブロックデータ2に含まれる履歴情報に基づいて、他の演算装置10の機能制御部13がそのアプリケーションを起動させたか否かを判定する。起動したと判定するとき(ステップS122 YES)、ステップS124の処理に進む。起動していないと判定するとき(ステップS122 NO)、図4に示す処理を終了する。
(ステップS124)機能制御部13は、自装置の制御演算部11にそのアプリケーションの実行を停止させる。図4に示す処理を終了する。
このように、障害アプリケーション情報をブロックデータに格納し、開始時点の履歴情報の検証値と共に次のブロックデータ内に反映させることにより、データの誤り検出が外部からも容易になる。つまりデータ通信量を抑えつつ演算装置を増加させることで、従来よりも物理的に広範囲の分散処理システムが構築可能となる。この場合、電磁的なノイズレベルが高い地域など通信環境が悪い地域では、通信上データ誤りが発生しやすい。誤ったデータの使用は、発電プラントなどでは事故原因となりうる。しかし、本手法では、開始時点からのすべてのブロックデータが前ブロックデータの検証値として反映されていくため、ある時点でのデータ誤りが検出しやすい特徴がある。このため、大規模化した冗長化システムでも、データの信頼性を向上することができる。
以上に説明したように、本実施形態に係る冗長化システム1は、複数の演算装置10を備える冗長化システムであって、複数の演算装置10のそれぞれは、送信データ生成部143と通信部16を備える。送信データ生成部143は、前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成する。通信部16は、現時点のブロックデータを複数の演算装置間で同報する。複数の演算装置の少なくとも1台は、検出対象の障害が検出されるとき、前記検出対象の機能を補うための機能制御部13、を備える。
そのため、冗長化システム1は、複数の演算装置10からなる分散システムとして構成され、演算装置10間で検出対象の稼働状態の情報を累積した履歴情報を含むブロックデータが同報される。そのため、演算装置10の稼働状態を監視するための中央装置などの機器を設置しなくても、冗長化された個々の演算装置の分散処理を維持し、障害対応を行うためのデータを効率よく共有することができる。併せて、冗長化システムの信頼性が向上する。
また、複数の演算装置10のそれぞれは、検出対象として、所定のアプリケーションプログラムに基づく処理を実行する実行部として制御演算部11を備える。複数の演算装置10のうち実行部がその処理を実行する第1演算装置10において、その処理の障害が検出されるとき、送信データ生成部143は、検証値と、現時点の稼働状態の情報として障害に関する情報に基づいて第1ブロックデータを生成する。通信部16は、第1ブロックデータを複数の演算装置のうち第1演算装置とは異なる他の演算装置に送信する。複数の演算装置のうち第1ブロックデータを取得した第2演算装置10において、機能制御部13は、そのアプリケーションプログラムに基づく処理を起動し、送信データ生成部143は、第1ブロックデータに基づく検証値と、現時点の稼働状態の情報として起動に関する情報に基づいて第2ブロックデータを生成する。通信部16は、第2ブロックデータを複数の演算装置のうち第2演算装置とは異なる他の演算装置に送信する。
この構成によれば、各演算装置10における所定のアプリケーションプログラムの処理に係る障害の発生と起動の履歴情報を含むブロックデータが共有される。そのため、処理状態の監視や復旧を監視するための中央装置などの他の機器を設ける必要がなくなる。そのため、演算装置10間におけるデータ共有が容易になるとともに、システム全体の信頼性が向上する。
<第二実施形態>
以下、本発明の第二実施形態に係る冗長化システムについて、図5〜図9を参照して説明する。以下の説明では、本実施形態に係る演算装置24が主に図5に示す制御装置(LS:Logic Solver;制御演算装置)である場合を例にするが、これには限られない。演算装置24は、サーバ装置として実現されてもよい。複数の演算装置24は、互いに共通の構成を有し、共通の処理を行う。図5に示す例では、演算装置24の台数は、4個であるが、3個以上であればよい。
図5は、本実施形態に係る冗長化システム2の一構成例を示すブロック図である。
冗長化システム2は、OPS(Operator Station;監視装置)21、EMS(Engineering and Maintenance Station;管理装置)22、NA(Network Adaptor;ネットワークアダプタ)23、複数の演算装置24a〜24d、IO(Input Output;入出力)スキャナ25、IOネットワーク26、IOアダプタ27a、27b、及びIOモジュール28aa〜28aI、28ba〜28bJを含んで構成される制御システムである。
OPS21は、制御対象となるプラントの制御状態をユーザであるエンジニアが操作及び監視するための装置である。OPS21は、例えば、各演算装置24の起動、停止などの動作状態の指示、パラメータの設定を行うため、プラントの状態を示す入力データとプラントを操作するための出力データを、NA23を介していずれかの演算装置24から取得する通信部を備える。また、OPS21は、ユーザの操作を受け付ける操作入力部と、ユーザの操作に応じて、取得したデータのいずれかを表示する表示部を備える。
EMS22は、ユーザであるエンジニアが演算装置に組み込むアプリケーションプログラムの製作・管理・配信するための装置である。EMS22は、ユーザの操作を受け付ける操作入力部と、操作対象の演算装置や各種の情報を表示するための表示部と、操作により指示される指示情報、設定情報などを適用対象の演算装置24に送信するための通信部を備える。
NA23は、OPS21、EMS22、NA23及び演算装置24とそれぞれ通信可能に接続され、相互間で各種のデータを送受信できる情報ネットワークを形成する。
演算装置24a〜24dには、それぞれIOモジュール28aa〜28aI、28ba〜28bJのいずれか又はその所定の組み合わせからIOアダプタ27a、27bのいずれか、IOネットワーク26及びIOスキャナ25を介して入力データが入力される。
演算装置24a〜24dは、それぞれ入力データに基づいて所定の演算処理を行って出力データを算出し、算出した出力データをIOスキャナ25、IOネットワーク26、及びIOアダプタ27a、27bのいずれかを介してIOモジュール28aa〜28aI、28ba〜28bJのいずれか又はその所定の組み合わせに出力する。
演算処理の内容、入力データの種別ならびに入力元となるIOモジュール28aa〜28aI、28ba〜28bJ、及び出力データの種別ならびに出力先となるIOモジュール28aa〜28aI、28ba〜28bJは、制御ループに応じて異なる。演算装置24の構成を説明するうえでは、これらについて特に区別せず、単に入力データ、出力データ、IOモジュール28と総称する。
IOスキャナ25は、演算装置24a〜24dとIOネットワーク26に通信可能に接続する。IOスキャナ25は、演算装置24a〜24dから受信する出力データをIOネットワーク26に送信し、IOネットワーク26から受信する入力データを演算装置24a〜24dに送信する。
IOネットワーク26は、IOスキャナ25とIOアダプタ27a、27bとを通信可能に接続するネットワークである。
IOアダプタ27aは、IOネットワーク26とIOモジュール28aa〜28aIに通信可能に接続する。IOアダプタ27aは、IOモジュール28aa〜28aIから受信する入力データをIOネットワーク26に送信し、IOネットワーク26から受信する出力データをIOモジュール28aa〜28aIに出力する。
IOアダプタ27bは、IOネットワーク26とIOモジュール28ba〜28bJに通信可能に接続する。IOアダプタ27bは、IOモジュール28ba〜28bJから受信する入力データをIOネットワーク26に送信し、IOネットワーク26から受信する出力データをIOモジュール28ba〜28bJに出力する。
IOモジュール28aa〜28aI、28ba〜28bJは、それぞれフィールド機器に接続される。各IOモジュール28は、それぞれ入力装置(入力モジュール)と出力装置(出力モジュール)を備える入出力装置である。入力装置は、自装置に接続されたフィールド機器から入力される入力値を示す入力データをIOアダプタ27a、27bのいずれか、IOネットワーク26及びIOスキャナ25を介して演算装置24a〜24dに送信する。出力装置は、少なくとも演算装置24a〜24dのいずれかから送信される出力データをIOスキャナ25、IOネットワーク26及びIOアダプタ27a、27bのいずれかを介して受信する。出力装置は、受信した出力データが示す出力値を自装置に接続されたフィールド機器に出力する。
各IOモジュール28に接続されるフィールド機器は、センサ、アクチュエータのいずれか又は両方である。センサは、プラントの状態を示す物理量を測定するための機器である。例えば、プラントが発電設備である場合には、測定される物理量は、電力、出力率などがある。センサは、測定した物理量を入力値としてIOモジュール28の入力装置に出力する。アクチュエータは、IOモジュール28の出力装置から出力される出力値に基づいてプラントを操作するための機器である。例えば、プラントが発電設備である場合には、圧力調整弁の開度などがある。
次に、本実施形態に係る演算装置24の構成について説明する。図6は、本実施形態に係る演算装置24の機能構成の一例を示すブロック図である。
演算装置24は、制御演算部241、データ選定部(機能制御部)243、ブロックデータ処理部244、第1通信部246、記憶部248、及び第2通信部249を備える。
以下の説明では、主に第一実施形態との差異点を主とする。また、演算装置24aに注目し、その処理において扱われる各種のデータの符号にその子番号である符号aを付し、他の演算装置で扱われるデータと区別する。
制御演算部241は、記憶部248に格納された入力データDaと前回の演算時に格納された中間値データ群Caとを読み出し、読み出した入力データDaと中間値データ群Caとに基づいて所定の演算を行う。制御演算部241は、演算結果から得られる出力データYaと今回の演算によって更新された中間値データ群Caを記憶部248に格納する。
所定の演算により出力データYaを得る過程の途中段階で得られる結果のデータを中間値データとし、入力データDaに基づいて出力データYaを得るまでの単一又は一連の複数の中間値データを中間値データ群Caとする。中間値データ群Caには、例えば、過去のデータを累積して使用する積分値、又は移動平均値等が含まれる。
データ選定部243は、入力データ、中間値データ群それぞれについて多数決処理を行う。
データ選定部243は、第2通信部249を介して受信した自装置宛の入力データ、第1通信部246を介して受信した他の演算装置から送信されたブロックデータに含まれる入力データのうち、少なくとも1つが一致していない場合、最も出現頻度の高い値を変更後の入力データとして選定する。具体的には、データ選定部243は、記憶部248に格納されている入力データDa,Db,Dc及びDdを読み出して比較し、これら値の出現頻度によって正しい入力データを選定する。
例えば、入力データDa,Db,Dcが互いに等しい値であり、入力データDdがそれらの値と異なる値である場合には、出現頻度が最も高い入力データDa,Db,Dcがそれぞれ正しい入力データであると選定される。また、例えば、演算装置24aにおいて、第1通信部246から受信された入力データDb、Dc及びDdが等しい値であり、入力データDaが他の入力データと異なる値である場合には、データ選定部243は、入力データDb,Dc及びDdが正しい入力データであると選定し、誤りである入力データDaの値を、入力データDb(等しい値であることから、Dc又はDdであってもよい)と置き換える。
このように、演算装置24aの第1通信部246及び第2通信部249によって取得される入力データのうち、出現頻度の高い入力データが正しい値として選定される。また、第1通信部246を介して入力された入力データDaが、正しい値として選定されなかった場合には、入力データDaは正しい入力データに置き換えられる。これにより、例えば、IOモジュール28と第1通信部246との通信路において不具合等が生じ、第1通信部246から取得される入力データDaが正しくなかった場合であっても、入力データDaは、他の演算装置10b,10c,及び10dから取得した入力データDb,Dc,及びDdに基づいて、正しい入力データに置き換えられる。なお、第1通信部246を介して入力された入力データDaが、正しい値として選定されていた場合には、データ選定部243は、そのままの値を入力データDaとして記憶部248に記憶させる機能制御部として機能する。
また、データ選定部243は、記憶部248に格納される中間値データ群Ca,Cb,Cc及びCdのうち、少なくとも1つが一致していない場合に、最も出現頻度の高い値を選定し、選定した値を正しい中間値データ群とする。さらに、データ選定部243は、正しいとされた中間値データ群と入力データDaに基づく中間値データ群Caとを比較し、比較の結果、一致しない場合には、入力データDaに基づいて算出された出力データYaが正しくないと判定する。これは、中間値データ群Caが誤っていれば、その中間値データを用いて求められる出力データは誤りであるといえるからである。また、この場合、データ選定部243は、中間値データ群Caを正しい中間値データ群に変更し、変更後の中間値データ群を記憶部248に記憶させる機能制御部として機能する。このように、中間値データ群Caが他の演算装置24から受信した正しい中間値データ群に書き換えられることで、以降の処理によりこの中間値データが使用される場合に、正しい中間値データを使用して処理を実行することが可能となる。
なお、本実施形態においてデータ選定部243は、中間値データ群の各中間値データのそれぞれを比較し、対応するそれぞれの中間値データが全て一致する場合、「中間値データ群が一致した」と判定することとしている。
ブロックデータ処理部244は、ブロックデータに係る処理を実行する。本実施形態では、入力データに係るブロックデータを入力ブロックデータと呼び、中間値データに係るブロックデータを中間値ブロックデータと呼ぶ。
ブロックデータ処理部244は、ブロックデータ保存部2441、受信データ解析部2442、及び送信データ生成部2443を含んで構成される。
ブロックデータ保存部2441は、他の演算装置24から第1通信部246を介して受信したブロックデータを一時的に保存する。
受信データ解析部2442は、ブロックデータ保存部2441から他の演算装置24から受信した入力ブロックデータを読み出す。受信データ解析部2442は、各演算装置24の入力ブロックデータに記述された最新の時点の入力データDb,Dc,Ddを抽出し、記憶部248に記憶する。
受信データ解析部2442は、ブロックデータ保存部2441から、他の演算装置24のから受信した中間値ブロックデータと自装置の送信データ生成部2443が生成した入力ブロックデータを読み出す。受信データ解析部2442は、各演算装置24のブロックデータに記述された最新の時点の中間値データ群Cb,Cc,Cdを抽出し、記憶部248に記憶する。
送信データ生成部2443は、記憶部248に記憶された最新の入力データDaを現時点の入力データとして読み出し、ブロックデータ保存部2441に保存された自装置の入力ブロックデータのうち最新の入力ブロックデータを前時点の入力ブロックデータとして読み出す。送信データ生成部2443は、読み出した入力ブロックデータと、現時点の入力データに基づいて現時点の入力ブロックデータを生成する。現時点の入力ブロックデータは、前時点の入力ブロックデータに基づく検証値と、その履歴情報に新たに読み出した入力データを追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部2443は、検証値として、例えば、前時点までの入力ブロックデータに含まれるブロックヘッダのCRC(Cyclic Redundancy Check;巡回冗長検査)加算値、現時点の履歴情報のCRC値を算出する。CRC値の算出に係る演算負荷は、ハッシュ値よりも軽減される。送信データ生成部2443は、第1通信部246を介して生成した入力ブロックデータを他の演算装置24に送信し、自装置のブロックデータ保存部2441に保存する。
また、送信データ生成部2443は、記憶部248に記憶された最新の中間値データ群Caを現時点の中間値データ群として読み出し、ブロックデータ保存部2441に保存された自装置の中間値ブロックデータのうち最新の中間値ブロックデータを前時点の中間値ブロックデータとして読み出す。送信データ生成部2443は、読み出した中間値ブロックデータと、現時点の中間値データ群に基づいて現時点の中間値ブロックデータを生成する。現時点の中間値ブロックデータは、前時点の中間値ブロックデータに基づく検証値と、その履歴情報に新たに読み出した中間値データ群を追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部2443は、検証値として、例えば、前時点までの中間ブロックデータに含まれるブロックヘッダのCRC加算値、現時点の履歴情報のCRC値を算出する。送信データ生成部2443は、第1通信部246を介して生成した中間値ブロックデータを他の演算装置24に送信し、自装置のブロックデータ保存部2441に保存する。
(ブロックデータ)
次に、本実施形態に係るブロックデータの例について説明する。
図7は、本実施形態に係るブロックデータの例を示す図である。
BD11、BD12、BD13は、それぞれ、ある時点における入力ブロックデータ、その次の時点における入力ブロックデータ、さらに次の時点における入力ブロックデータを示す。
図7に示す例では、入力ブロックデータには、履歴情報として、開始時点から現時点までの入力データが累積されて構成される履歴情報が含まれる。ブロックヘッダに含まれる検証値として、履歴情報を構成する全入力データのCRC値と、前時点までのブロックデータのCRC加算値とが含まれる。このCRC加算値は、各時点のブロックデータに含まれるブロックヘッダについて算出されるCRC値の開始時点から前時点までの総和である。CRC値ならびにCRC加算値によれば、データの改ざん検知の効果はハッシュ値よりも低いが、制御装置の処理負荷を低下させ、処理時間を低減させることができる。かかる構成により、伝送路上のノイズ、その他の原因によるブロックデータの改変を検知することができる。但し、開始時点のブロックデータでは、前時点のブロックデータのブロックヘッダのCRC加算値に代えて所定の初期値(例えば、0)が設定される。
図8は、本実施形態に係るブロックデータの他の例を示す図である。
BD31、BD32、BD33は、それぞれ、ある時点における中間値ブロックデータ、その次の時点における中間値ブロックデータ、さらに次の時点における中間値ブロックデータを示す。
図8に示す例では、中間値ブロックデータには、履歴情報として、開始時点から現時点までの中間値データ群が累積されて構成される履歴情報が含まれる。ブロックヘッダに含まれる検証値として、履歴情報を構成する全中間値データ群のCRC値と、前時点までのブロックデータのブロックヘッダのCRC加算値とが含まれる。但し、開始時点のブロックデータでは、前時点までのブロックデータのブロックヘッダのCRC加算値に代えて所定の初期値(例えば、0)が設定される。
なお、全中間値データ群のCRC値と、前時点までのブロックデータに含まれるブロックヘッダのCRC加算値に代えて、それぞれのハッシュ値が用いられてもよい。
(比較採用処理)
次に、本実施形態に係る入力データ、中間値データ群の比較採用処理について説明する。
図9は、本実施形態に係る入力データ、中間値データ群の比較採用処理の一例を示すフローチャートである。
(ステップS202)制御対象に取り付けられたセンサによって計測された計測値が入力値としてIOモジュール28の入力装置に入力される。その後、ステップS204の処理に進む。
(ステップS204)IOモジュール28の入力装置は、入力値を示す入力データを、各演算装置24a,24b,24c,及び24dのそれぞれの第2通信部249に送信する。その後、ステップS206の処理に進む。
(ステップS206)各演算装置24の第2通信部249は、IOモジュール28の入力装置から入力データを受信し、受信した入力データDaを記憶部248に格納する。
そして、送信データ生成部2443は、記憶部248に記憶された現時点の入力データを読み出し、ブロックデータ保存部2441に保存された前時点の入力ブロックデータを読み出す。送信データ生成部2443は、読み出した入力ブロックデータと、現時点の入力データに基づいて現時点の入力ブロックデータを生成する。その後、ステップS208の処理に進む。
(ステップS208)各演算装置24の送信データ生成部2443は、ブロックデータ保存部2441に格納し、生成した入力ブロックデータを他の演算装置24に第1通信部246を介して送信する。その後、ステップS210の処理に進む。
(ステップS210)各演算装置24のブロックデータ保存部2441は、第1通信部246を介して他の演算装置24から受信した入力ブロックデータを保存する。受信データ解析部2442は、ブロックデータ保存部2441に保存された他の演算装置24のそれぞれからの入力ブロックデータから現時点の入力データ抽出し、記憶部248に格納する。その後、ステップS212の処理に進む。
(ステップS212)各演算装置24のデータ選定部243は、記憶部248に格納された演算装置24毎の入力データDa,Db,Dc及びDdを読み出し、読み出した入力データDa,Db,Dc,及びDdの値を演算装置24間で比較する。入力データDa,Db,Dc及びDdのうち、一つでも異なる値がある場合には、データ選定部243は、出現頻度の高い値を正しい入力データとして選定する。その後、ステップS214の処理に進む。
(ステップS214)各演算装置24のデータ選定部243は、正しい値として選定した入力データが、第2通信部249を介して取得した入力データと一致するか否かを判定する。一致すると判定するとき(ステップS214 YES)、ステップS218の処理に進む。一致しないと判定するとき(ステップS214 NO)、ステップS216の処理に進む。
(ステップS216)データ選定部243は、記憶部248に格納されている入力データを正しい入力データに置き換える。従って、全ての入力データDa,Db,Dc,Ddが一致していた場合には、入力データの置き換えは行われない。その後、ステップS218の処理に進む。
(ステップS218)各演算装置24の制御演算部241は、記憶部248に格納されている入力データを使用して所定の演算を実行し、出力データを算出する。制御演算部241は、この出力データを算出する過程において算出された演算途中の段階での一連の値及び出力データを中間値データ群として、記憶部248に格納する。その後、ステップS220の処理に進む。
(ステップS220)各演算装置24の送信データ生成部2443は、記憶部248に記憶された現時点の中間値データ群を読み出し、ブロックデータ保存部2441に保存された前時点の中間値ブロックデータを読み出す。送信データ生成部2443は、読み出した中間値ブロックデータと、現時点の中間値データ群に基づいて現時点の中間値ブロックデータを生成する。送信データ生成部2443は、生成した中間値ブロックデータを記憶部248に記憶し、第1通信部246を介して他の演算装置24に送信する。その後、ステップS222の処理に進む。
(ステップS222)各演算装置24のブロックデータ保存部2441は、第1通信部246を介して他の演算装置24から受信した中間値ブロックデータを保存する。受信データ解析部2442は、ブロックデータ保存部2441に保存された他の演算装置24のそれぞれからの中間値ブロックデータから現時点の中間値データ群を抽出し、記憶部248に格納する。その後、ステップS224の処理に進む。
(ステップS224)各演算装置24のデータ選定部243は、記憶部248に格納された演算装置24毎の中間値データ群Ca,Cb,Cc及びCdを読み出し、読み出した中間値データ群Ca,Cb,Cc及びCdの値を演算装置24間で比較する。中間値データ群Ca,Cb,Cc及びCdのうち、一つでも異なる値がある場合には、データ選定部243は、出現頻度の高い値を正しい中間値データ群として選定する。その後、ステップS226の処理に進む。
(ステップS226)各演算装置24のデータ選定部243は、正しい値として選定した中間値データ群が、自装置の制御演算部241が算出した中間値データ群と一致するか否かを判定する。一致すると判定するとき(ステップS226 YES)、ステップS228の処理に進む。一致しないと判定するとき(ステップS226 NO)、ステップS232の処理に進む。
(ステップS228)データ選定部243は、正しい出力データが得られなかった旨を示す通知情報をIOモジュール28の出力装置に第2通信部249を介して送信する。従って、出力装置には、その通知情報によりその旨が予告される。その後、ステップS230の処理に進む。
(ステップS230)データ選定部243は、記憶部248に格納されている中間値データ群を正しい中間値データ群に置き換える。従って、全ての中間値データ群Ca,Cb,Cc,Cdが一致していた場合には、中間値データ群の置き換えは行われない。その後、ステップS232の処理に進む。
(ステップS232)第2通信部249は、記憶部248に格納されている中間値データ群のうち出力データを読み出し、読み出した出力データをIOモジュール28の出力装置に送信する。出力装置は、各演算装置24から受信した出力データのいずれかを採用し、採用した出力データが示す出力値を接続されたアクチュエータに出力する。なお、出力装置は、通知情報を受信した直後に受信した出力データを採用しなくてもよい。その後、図9に示す処理を終了する。
上述した例では、入力ブロックデータの履歴情報に中間値群データを含まず入力データが含まれ、中間値ブロックデータの履歴情報に入力データが含まず中間値群データを含む場合を例にしたが、これには限られない。送信データ生成部2443は、最新の入力データ又は中間値群データが逐次に累積して構成される履歴情報を含む共通ブロックデータを生成してもよい。その場合には、履歴情報に入力データと中間値群データが混在することになる。共通ブロックデータが、複数の演算装置24間で共有されることで、入力データの管理と中間値群データの管理が一元化される。
以上に説明したように、本実施形態に係る冗長化システム1において、複数の演算装置のそれぞれは、入力装置から入力データを取得する第2通信部249と、検出対象として、現時点の入力データに基づいて所定の演算を行って出力データを算出する制御演算部241と、出力データを算出する過程で得られる中間値データを記憶する記憶部248を備える。また、送信データ生成部2443は、検証値と、履歴情報に現時点の入力データ又は中間値データを追加してなる現時点の履歴情報と、を含むブロックデータを生成する。データ選定部243は、機能制御部として現時点の入力データの複数の演算装置24間の出現頻度に基づいて第1通信部246が取得した入力データの正誤を判定し、誤りと判定された入力データを正しいと判定された入力データに更新する。また、データ選定部243は、中間値データの複数の演算装置間の出現頻度に基づいて制御演算部241から得られた中間値データの正誤を判定し、誤りと判定された中間値データを正しいと判定された演算データに更新する。
この構成によれば、個々の演算装置24が取得した入力データや演算処理による中間値データが複数の演算装置24間で共有され、それらの出現頻度に基づいて、自装置が取得した入力データや中間値データが是正される。そのため、本実施形態では、従来の分散システムのように演算装置24間で同期をとり、入力データや中間値データ群を是正するための中央装置などの装置を設定することを要しない。そのため、演算装置間でデータの不一致が検出されても個々の制御装置が処理を継続できるのでシステム全体の信頼性が向上し、演算装置24間のデータ共有が容易になる。
<第三実施形態>
以下、本発明の第三実施形態に係る冗長化システムについて、図10〜図13を参照して説明する。
図10は、本実施形態に係る冗長化システム3の一構成例を示すブロック図である。
本実施形態に係る冗長化システム3は、複数系統のサブシステムを含んで構成される。図10に示す例では、サブシステムの数は、2個である。以下の2個のサブシステムを、それぞれサブシステム3s、3s’と呼んで両者を区別する。サブシステム3s、3s’間で、装置構成は共通である。各サブシステムの装置構成は、図5に示す冗長化システム2と同様の構成を含む。サブシステム3s’の構成要素となる機器は、それぞれ対応する機器と同一の構成を備える。例えば、演算装置34a’〜34d’は、それぞれ演算装置34a〜34dと同一の構成を備える。但し、サブシステム3sは、演算装置24a〜24dに代え、演算装置34a〜34dを備える。また、互いに同一の構成を備える演算装置34a〜34d、演算装置34a’〜34d’を演算装置34と総称する。その他の同一の構成を備える機器についても、同様に総称する。なお、第二実施形態と同一の構成については、同一の符号を付してその説明を援用する。以下の説明では、主に第二実施形態との差異点について説明する。
サブシステム3s、3s’間で、制御対象となるプラントは互いに同種であり、負荷分散がなされる。サブシステム3sのNA23とサブシステム3s’のNA23’の間は、通信可能に接続され、演算装置34a〜34d、演算装置34a’〜34d’間で相互に各種のデータを送受信することができる。サブシステム3s、3s’、制御対象のプラントが発電システムである場合を例にするが、これには限られない。また、サブシステム3s、3s’を、それぞれ1号機、2号機と呼ぶことがある。
次に、本実施形態に係る演算装置34の構成について説明する。図11は、本実施形態に係る演算装置34の機能構成の一例を示すブロック図である。
演算装置34は、制御演算部241、検出部342、データ選定部243、ブロックデータ処理部244、第1通信部246、機能制御部345、記憶部248、及び第2通信部249を備える。
制御演算部241、ブロックデータ処理部244、第1通信部246及び記憶部248は、それぞれ演算装置10の制御演算部11、ブロックデータ処理部14、通信部16及び記憶部18と共通の構成を備えるため、それらの説明を援用する。
検出部342は、記憶部248に記憶された入力データに基づいて演算装置34の制御演算部241(自装置も含む)又は制御演算部241の制御対象となるプラントの稼働状態を検出する。検出部342は、入力データの値が所定の許容範囲を超えるときその稼働に障害の発生を判定する。入力データは、例えば、制御対象となる発電システムの出力電力と出力率の一方又は両方が、それぞれの下限よりも小さいとき障害の発生を判定し、出力電力と出力率の両方が、それぞれの下限以上であるとき、障害が発生していないと判定する。出力率は、発電機効率とも呼ばれ、発電機への入力となるタービンの出力に対する出力電力の割合である。検出部342は、障害の発生を判定したとき、その障害を示す障害ID、出力電力、出力率、不足電力を示す障害発生データを記憶部248に記憶する。検出部342は、出力電力の下限からその時点の出力電力の差を不足電力として定める。
機能制御部345は、記憶部248に記憶された演算装置34毎の障害発生データが障害の発生を示すとき、自装置が制御対象とする発電システムがその機能を補うことができるか否かを判定する。機能制御部345は、自装置が制御対象とする発電システムが障害の発生に係る発電システムではなく、かつ記憶部18に記憶された入力データが示す出力電力がその上限よりも小さいとき、その機能を補うことができると判定し、それ以外の場合、補うことができないと判定する。
機能制御部345は、補うことができると判定するとき、出力電力の目標値として、その時点における出力電力よりも大きく、出力電力の上限以下となる値に定める。機能制御部345は、出力電力の増加量と制御対象の発電システムを示す障害対応データを記憶部248に記憶する。出力電力の増加量は、出力電力の目標値からその時点における出力電力の差分である。この出力電力の増加量は、不足電力を補うために用いられる。
なお、さらに他の発電システムにおいて、不足電力が補われたが、他の発電システムによる出力電力の増加量が不足電力に満たない場合が生じ得る。その場合には、機能制御部345は、不足電力から他の発電システムによる増加量の差と、制御対象の出力電力の上限からその時点の出力電力の差のいずれか小さい値以下となるように、制御対象の出力電力の増加量を定める。ここで、機能制御部345は、記憶部248にその障害に係る障害発生データと、他の演算装置34からの障害対応データを参照して、他の発電システムによる増加量を知得することができる。よって、障害が発生していない複数の発電システム間で、不足電力を補うことができる。
制御演算部241は、記憶部248に記憶された障害対応データが示す制御対象の増加量をその時点の目標値に加算して得られる値に、制御対象の目標値を更新する。制御演算部241は、所定の演算として、入力データとその目標値に基づいて出力データを得る。ここで、制御演算部241は、入力データが目標値に近づくように制御対象となる発電システムによる出力データを算出する。これにより、制御対象の発電システムは、出力電力が更新された目標値となるように動作する。
ブロックデータ処理部244は、上述したブロックデータに代えて、またはそのブロックデータとともに、制御対象の障害及びその機能への対応に関するブロックデータを処理する。以下の説明では、制御対象の障害及びその機能への対応に関するブロックデータを障害対応ブロックデータと呼んで、他の種類のブロックデータと区別する。
ブロックデータ保存部2441は、他の演算装置34から第1通信部246を介して受信した障害対応ブロックデータを一時的に保存する。
受信データ解析部2442は、ブロックデータ保存部2441から他の演算装置24から受信した障害対応ブロックデータを読み出す。受信データ解析部2442は、各演算装置24の障害対応ブロックデータに記述された最新の時点の障害発生データ又は障害対応データを抽出し、記憶部248に記憶する。
送信データ生成部2443は、新たに取得された障害発生データ又は障害対応データを追加して構成される履歴情報を含むように、障害対応ブロックデータを生成する。
記憶部248に記憶された最新の障害発生データと障害対応データのうち、障害発生データの方が新しい場合には、送信データ生成部2443は、その障害発生データを現時点の障害発生データとして読み出し、ブロックデータ保存部2441に保存された障害対応ブロックデータのうち最新の障害対応ブロックデータを前時点の障害対応ブロックデータとして読み出す。送信データ生成部2443は、読み出した障害対応ブロックデータと、現時点の障害発生データに基づいて現時点の障害対応ブロックデータを生成する。現時点の障害対応ブロックデータは、前時点の障害対応ブロックデータに基づく検証値と、その履歴情報に新たに読み出した障害発生データを追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部2443は、第1通信部246を介して生成した障害対応ブロックデータを他の演算装置34に送信し、自装置のブロックデータ保存部2441に保存する。
記憶部248に記憶された最新の障害発生データと障害対応データのうち、障害対応データの方が新しい場合には、送信データ生成部2443は、その障害対応データを現時点の障害対応データとして読み出し、ブロックデータ保存部2441に保存された障害対応ブロックデータのうち最新の障害対応ブロックデータを前時点の障害対応ブロックデータとして読み出す。送信データ生成部2443は、読み出した障害対応ブロックデータと、現時点の障害対応データに基づいて現時点の障害対応ブロックデータを生成する。現時点の障害対応ブロックデータは、前時点の障害対応ブロックデータに基づく検証値と、その履歴情報に新たに読み出した障害対応データを追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部2443は、第1通信部246を介して生成した障害対応ブロックデータを他の演算装置34に送信し、自装置のブロックデータ保存部2441に保存する。
(ブロックデータ)
次に、本実施形態に係るブロックデータの例について説明する。
図12は、本実施形態に係るブロックデータの例を示す図である。
BD31、BD32、BD33は、それぞれ、ある時点における障害対応ブロックデータ、その次の時点における障害対応ブロックデータ、さらに次の時点における障害対応ブロックデータを示す。
図12に示す例では、障害対応ブロックデータには、履歴情報として、開始時点から現時点までの障害発生データに基づく検証値と、障害対応データが累積されて構成される履歴情報が含まれる。障害発生データは、障害対応ブロックデータの末尾の3行に示されるように、個々の障害を示す警報ID、障害が生じた発電システムの出力電力、出力率及びその不足電力を示す。障害発生データでは、対応した発電システムが存在しないため、その旨を示す情報(例えば、ヌル値)が対応号機の項目に設定される。
障害対応データは、障害対応ブロックデータの末尾の3行に示されるように、対応した障害を示す警報ID、障害が生じた発電システムの出力電力、出力率、出力電力の増加量及び対応した発電システムを示す。出力電力の増加量、対応した発電システムが、それぞれ不足電力、対応号機の項目に設定される。従って、各1つの障害発生データについて、対応する障害対応データの個数は、0個、1個、2個以上のいずれにもなりうる。なお、図12は、各障害対応ブロックデータにおいて1個の障害発生データ又は障害対応データを示すが、一般には各1個の障害対応ブロックデータには複数の障害発生データと障害対応データが含まれる。
障害対応ブロックデータのブロックヘッダに含まれる検証値として、上述の入力ブロックデータ、中間値ブロックデータと同様に、履歴情報を構成する全障害発生データ又は障害対応データのCRC値と、前時点までのブロックデータのCRC加算値とが含まれる。
なお、全障害発生データ又は障害対応データのCRC値と、前時点までのブロックデータに含まれるブロックヘッダのCRC加算値に代えて、それぞれのハッシュ値が用いられてもよい。
なお、本実施形態では、冗長化システム3において、演算装置34の数が複数個あれば、各サブシステムにおいて少なくとも1個の演算装置34が備えられていればよい。また、冗長化システム3は、さらにNA23に接続された別個の演算装置34を備えてよい。その別個の演算装置34は、検出部342とブロックデータ処理部244を備えていれば、制御演算部241が省略されていなくでもよい。また、その別個の演算装置34は、サーバ装置として構成されてもよい。
(変形例)
上述した例では、発電機の障害対応を例にしたが、ガスタービンの燃焼器のマッピングにも適用できるように変形することができる。
燃焼器のマッピングとは、個々のガスタービンエンジンについて、個々のガスタービンエンジンについての作動限界を計測し、計測により得られるデータを当該ガスタービンエンジンのコントローラとなる演算装置がそれらの動作を制御するための制御スケジュールに変換する方法である。制御スケジュールは、燃焼による音圧とエミッションレベルが所定の範囲内に収まり、かつリング火炎温度に他の作動境界(例えば、希薄失火及びガスタービンエンジンが備えるライナもしくはドームの金属温度)に対して所定の範囲以上のマージンが与えられるように制御するために用いられる。制御スケジュールは、バーナ・モードと抽気設定の組み合わせに対応する。バーナ・モードとは、燃焼器の動作モードである。抽気設定とは、圧縮器により燃焼器に吸入される空気の流量(吸入空気流量)に係る設定である。
制御スケジュールに変換する処理として、次の過程を含む処理を行う。
(S1)バルクリング火炎温度をエミッション及び音響の必要条件に適合させる。
(S2)ドームリング火炎温度を調節し、最高及び最低リング火炎境界温度を求める。
(S3)(S1)、(S2)の双方において、エミッションレベルと音圧が所定の仕様限界内にあるか否かを判定する。仕様限界外にあると判定する場合には、仕様限界内に収まるようにバルクリング火炎温度を調節する。これらの処理を、抽気設定及びバーナ・モードの各組み合わせについて繰り返す。
仕様限界内にあると判定する場合には、異なる抽気設定及びバーナ・モードについて、パワーを増大させ、上記の処理を繰り返す。これらの各過程において得られるマッピングデータを記憶部248に記憶する。
マッピングデータには、例えば、最高及び最低リング火炎境界温度のいずれかを制御するための入力データとして、例えば、エミッションレベルと音圧が記録される。エミッションレベルとは、窒素酸化物、一酸化炭素などの有害ガスの排出量である。また、目標値として、バルクリング火炎温度と、最高及び最低リング火炎境界温度が用いられる。
また、上記の過程は、それぞれ複数の演算装置34間で分担して行われる。従って、複数の演算装置34間で、要素データとして、その時点で最新のバルクリング火炎温度と、最高及び最低リング火炎境界温度、エミッションレベル及び音圧レベルを含む燃焼器データを共有する必要がある。
そこで、本変形例では、ブロックデータ処理部244は、障害対応ブロックデータに代えて、燃焼器データを累積して構成される履歴情報を含むブロックデータである、燃焼器ブロックデータを処理する。
ブロックデータ保存部2441は、他の演算装置34から第1通信部246を介して受信した燃焼器ブロックデータを一時的に保存する。
受信データ解析部2442は、ブロックデータ保存部2441から他の演算装置24から受信した燃焼器ブロックデータを読み出す。受信データ解析部2442は、各演算装置24の燃焼器ブロックデータに記述された最新の時点の燃焼器データを抽出し、記憶部248に記憶する。
送信データ生成部2443は、新たに記憶部248に記憶された最新の要素データを読み出し、前時点の燃焼器データの要素データを、最新の要素データに置き換えることで現時点の燃焼器データを生成する。送信データ生成部2443は、新たに生成された燃焼器データを追加して構成される履歴情報を含むように、燃焼器ブロックデータを生成する。ここで、送信データ生成部2443は、ブロックデータ保存部2441に保存された燃焼器ブロックデータのうち最新の燃焼器ブロックデータを前時点の燃焼器ブロックデータとして読み出す。送信データ生成部2443は、読み出した燃焼器ブロックデータと、現時点の燃焼器データに基づいて現時点の燃焼器ブロックデータを生成する。現時点の燃焼器ブロックデータは、前時点の燃焼器ブロックデータに基づく検証値と、その履歴情報に新たに生成した燃焼器データを追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部2443は、第1通信部246を介して生成した燃焼器ブロックデータを他の演算装置34に送信し、自装置のブロックデータ保存部2441に保存する。
(ブロックデータ)
次に、本変形例に係るブロックデータの例について説明する。
図13は、本変形例に係るブロックデータの例を示す図である。
BD41、BD42、BD43は、それぞれ、ある時点における燃焼器ブロックデータ、その次の時点における燃焼器ブロックデータ、さらに次の時点における燃焼器ブロックデータを示す。
図13に示す例では、燃焼器ブロックデータには、履歴情報として、開始時点から現時点までの燃焼器データに基づく検証値と、燃焼器データが累積されて構成される履歴情報が含まれる。燃焼器データは、燃焼器ブロックデータの末尾の4行に示されるように、要素データとしてバルクリング火炎温度、最高及び最低リング火炎温度、エミッションレベル及び音圧を示す。なお、図13は、各燃焼器ブロックデータにおいて1個の燃焼器ブロックデータを示すが、一般には各1個の燃焼器ブロックデータには複数の燃焼器ブロックデータが累積される。
燃焼器ブロックデータのブロックヘッダに含まれる検証値として、上述の入力ブロックデータ、中間値ブロックデータ、障害対応ブロックデータと同様に、履歴情報を構成する全燃焼器データのCRC値と、前時点までのブロックデータのCRC加算値とが含まれる。
なお、全燃焼器データのCRC値と、前時点までのブロックデータに含まれるブロックヘッダのCRC加算値に代えて、それぞれのハッシュ値が用いられてもよい。
以上に説明したように、本実施形態に係る冗長化システム3において、複数の演算装置34の少なくとも1台は、検出対象の障害を検出する検出部342を備える。送信データ生成部2443は、障害が検出されるとき、検証値と、現時点の稼働状態の情報として障害に関する情報に基づいて第1ブロックデータを生成し、第1通信部246は、第1ブロックデータを複数の演算装置34のうちその少なくとも1台の演算装置34とは異なる他の演算装置34に送信する。複数の演算装置34のうち第1ブロックデータを取得した第2演算装置34において、検出対象の機能が補われるとき、送信データ生成部2443は、第1ブロックデータに基づく検証値と、現時点の稼働状態の情報として機能への対応に関する情報に基づいて第2ブロックデータを生成する。第1通信部246は、第2ブロックデータを複数の演算装置34のうち第2演算装置34とは異なる他の演算装置34に送信する。
この構成によれば、各演算装置10の検出対象における障害の発生とその機能への対応を示す履歴情報を含むブロックデータが共有される。そのため、検出対象となる稼働状態の監視や復旧を監視するための中央装置などの他の機器を設ける必要がなくなる。そのため、演算装置34間においてシステム全体として容易に機能を維持することができるので、システム全体の信頼性が向上する。例えば、検出対象が演算装置10の機能とその制御対象が冗長化された発電システムである場合には、従来、エンジニア(運転監視員)が各号機の状態を監視し、その操作に基づいて障害が発生した号機とは異なる別個の号機の発電システムを起動し、それぞれの出力配分を決定していた。上述した例によれば、障害発生データと障害対応データを含むブロックデータが、演算装置34間で共有される。例えば、サブシステム3sにおいて障害が検知された場合、サブシステム3s’を起動させ発電プラント全体として要求されている発電量を維持することができる。より具体的には、サブシステム3sの演算装置34又はその制御対象の機器(例えば、ガスタービン、補機)の故障による発電出力が低下し、その不足電力をサブシステム3s’により補われる。そのため、エンジニアによる操作に頼らずに発電システム間でその発電出力を補うための出力制御が実現する。
<第四実施形態>
以下、本発明の第四実施形態に係る冗長化システムについて、図14〜図16を参照して説明する。
図14は、本実施形態に係る冗長化システム4の一構成例を示すブロック図である。
本実施形態に係る冗長化システム4は、図5に示す冗長化システム2と同様の構成を含む。第二実施形態と同一の構成については、同一の符号を付してその説明を援用する。以下の説明では、主に第二実施形態との差異点について説明する。
冗長化システム4は、IOモジュール28aa〜28aI、28ba〜28bJに代え、IOモジュール48aa〜48aI、48ba〜48bJを備える。IOモジュール48aa〜48aI、48ba〜48bJは、互いに同一の構成を備え、これらをIOモジュール48と総称する。IOモジュール48を構成する出力装置48o(図15)は、各演算装置34から受信した出力データについて選定処理を行い、その処理結果で更新された出力データを含むブロックデータをIOネットワーク26に送出する。
次に、本実施形態に係る出力装置48oの構成について説明する。図15は、本実施形態に係る出力装置48oの機能構成の一例を示すブロック図である。
出力装置48oは、データ選定部483、ブロックデータ処理部484、通信部486、出力部487、記憶部488及び検出部489を備える。
データ選定部483は、記憶部488に格納されている最新の出力データYa,Yb,Yc及びYdを読み出し、これら出力データYa,Yb,Yc及びYdから、データ選定部243と同様の手法を用いて、正しい出力データを選定する。ここで、データ選定部483は、出力データYa,Yb,Yc及びYdを比較し、これらの値の出現頻度が最も高い出力データを、正しい出力データとして選択する。
データ選定部483は、正しい出力データは複数存在するので、その複数の出力データのいずれか1つを選択する。データ選定部483は、選択した出力データとその出力元である演算装置24の情報を含む選定データを記憶部488に記憶し、その出力データを出力部487に出力する。
ブロックデータ処理部484は、演算装置24から送信される出力データに基づくブロックデータを処理する。以下の説明では、出力データに基づくブロックデータを出力ブロックデータと呼んで、他の種類のブロックデータと区別する。ブロックデータ処理部484は、ブロックデータ保存部4841と送信データ生成部4843を含んで構成される。ブロックデータ処理部484では、受信データ解析部が省略されてもよい。
ブロックデータ保存部4841は、送信データ生成部4843が生成した出力ブロックデータを保存する。
送信データ生成部4843は、新たに記憶部488に記憶された最新の選定データを読み出し、読み出した選定データを追加して構成される履歴情報を含むように、出力ブロックデータを生成する。ここで、送信データ生成部4843は、ブロックデータ保存部4841に保存された出力ブロックデータのうち最新の出力ブロックデータを前時点の出力ブロックデータとして読み出す。送信データ生成部4843は、読み出した出力ブロックデータと、現時点の選定データに基づいて現時点の出力ブロックデータを生成する。現時点の出力ブロックデータは、前時点の出力ブロックデータに基づく検証値と、その履歴情報に新たに生成した選定データを追加して構成される現時点の履歴情報とを含むデータである。送信データ生成部4843は、通信部486を介して生成した出力ブロックデータをIOネットワークに送出し、自装置のブロックデータ保存部4841に保存する。
通信部486は、IOアダプタ27に通信可能に接続され、IOネットワーク26に接続された各機器との間で、各種のデータを送受信可能とする。
通信部486は、各演算装置24a,24b,24c及び24dからそれぞれ出力データYa,Yb,Yc及びYdを取得するとともに、これら出力データYa,Yb,Yc及びYdを記憶部488に格納する。記憶部488には、通信部486から出力された出力データYa,Yb,Yc及びYdが格納される。
通信部486は、送信データ生成部4843から入力された出力ブロックデータをIOネットワーク26に送出する。従って、OPS21、各演算装置24は、IOネットワーク26を介して、出力装置48oから送出される出力ブロックデータを取得することができる。
出力部487は、記憶部488に記憶された選定出力データに含まれる出力データが示す出力値を、自部に接続されたフィールド機器に出力する。出力部487は、例えば、ディジタルの出力データをアナログの出力値として電圧値、電流値などに変換するディジタルアナログ変換器を備える。
記憶部488は、各部で取得された各種のデータ、各部における処理に用いられる各種のデータを記憶する。
検出部489は、出力部487から出力される出力値が、出力部487に出力される出力データに相当する正しい出力値であるか否かを判定する自己チェック回路を含んで構成される。検出部489は、その判定結果を示す障害情報を、判定対象の出力データと対応付けて記憶部488に記憶する。記憶部488に記憶される選定データには、演算装置24の情報と出力データに、さらに障害情報が含まれてもよい。
(ブロックデータ)
次に、本変形例に係るブロックデータの例について説明する。
図16は、本実施形態に係るブロックデータの例を示す図である。
BD51、BD52、BD53は、それぞれ、ある時点における出力ブロックデータ、その次の時点における出力ブロックデータ、さらに次の時点における出力ブロックデータを示す。
図16に示す例では、出力ブロックデータには、履歴情報として、開始時点から現時点までの選定データに基づく検証値と、選定器データが累積されて構成される履歴情報が含まれる。選定器データは、選択結果、出力データ及び障害情報が含まれる。選択結果として、選定された出力データの出力元である演算装置24の番号(LS番号)が用いられる。出力データには、ディジタルの出力データ(DO)と、その出力データに基づくアナログの出力値(AO)が含まれる。障害情報として、出力される出力値が正しいか否かを示す情報が含まれる。
出力ブロックデータのブロックヘッダに含まれる検証値として、上述の入力ブロックデータ、中間値ブロックデータ、障害対応ブロックデータ、出力ブロックデータと同様に、履歴情報を構成する全選定データのCRC値と、前時点までのブロックデータのCRC加算値とが含まれる。
なお、全選定データのCRC値と、前時点までのブロックデータに含まれるブロックヘッダのCRC加算値に代えて、それぞれのハッシュ値が用いられてもよい。
以上に説明したように、本実施形態に係る冗長化システム4は、出力装置48oを備える。出力装置48oは、複数の演算装置24のそれぞれとIOネットワーク26を介して接続される通信部486と、出力データの複数の演算装置24間の出現頻度に基づいて出力データの正誤を判定し、正しいと判定された出力データを選定するデータ選定部483を備える。また、出力装置48oは、検証値と、前時点までの出力データからなる出力履歴情報に現時点の前記出力データの選択結果を示す情報を追加した現時点の出力履歴情報と、を含む出力ブロックデータを生成する送信データ生成部4843を備える。通信部486は、出力ブロックデータをIOネットワーク26に送出する。
この構成によれば、IOネットワーク26に接続された機器、例えば、OPS21、演算装置24において出力ブロックデータが共有されるので、出力ブロックデータに含まれる出力データをモニタすることが可能となる。
従来は、出力装置からフィールド機器に出力された電圧値、電流値などの出力値をモニタするために、出力装置が出力値を演算装置にフィードバックし、演算装置24がOPS21にその出力値の情報を送信する処理を行っていた。もしくは、出力装置が出力された出力値を入力装置に還流するための計装を備えていた。本実施形態では、その処理や計装を要しないため、出力装置において処理負荷が低減し、ハードウェア規模の増加を抑えることができる。また、処理負荷を低減したことに応じて、出力装置の出力にかかる処理能力を向上することができる。
以上、本発明の実施形態及び変形例について、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
例えば、第二実施形態、第四実施形態に示す演算装置24、第三実施形態に示す演算装置34は、第一実施形態に示す演算装置10の検出部12、機能制御部13ならびにブロックデータ処理部14、又はそれらの機能を実現する構成部を備えてもよい。
第四実施形態に示す出力装置48oは、第三実施形態に示すIOモジュール28に備えられてもよい。
また、ブロックデータ処理部14、244、484は、自部で扱われる最新のブロックデータに含まれる履歴情報の情報量が、所定の情報量を超えたか否かを判定してもよい。所定の情報量を超えたと判定するとき、ブロックデータ処理部14、244、484は、その履歴情報を記憶部18、248、488に記憶し、新たに開始時点におけるブロックデータを生成してもよい。
なお上述の演算装置10、24、34、出力装置48oは、内部にコンピュータシステムを有してもよい。そして、上述した演算装置10等における各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、演算装置24、34において、制御演算部241で実行されるアプリケーション、又は制御演算部241もしくはその他の構成部の機能を実現するために実行されるアプリケーションの実行状態について、図4に示す処理が行われてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1、2、3、4…冗長化システム、10、24、34…演算装置、11、241…制御演算部、12、342、489…検出部、13、345…機能制御部、14、244、484…ブロックデータ処理部、16、486…通信部、18、248、488…記憶部、
21…OPS、22…EMS、23…NA、24…演算装置、25…IOスキャナ、26…IOネットワーク、27…IOアダプタ、28…IOモジュール、
141、2441、4841…ブロックデータ保存部、142、2442…受信データ解析部、143、2443、4843…送信データ生成部、243、483…データ選定部、246…第1通信部、248…記憶部、249…第2通信部、487…出力部

Claims (6)

  1. 複数の演算装置を備える冗長化システムであって、
    前記複数の演算装置のそれぞれは、
    前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成するデータ生成部と、
    前記現時点のブロックデータを前記複数の演算装置間で同報する通信部と、
    を備え、
    前記複数の演算装置の少なくとも1台は、
    前記検出対象の障害が検出されるとき、前記検出対象の機能を補うための機能制御部、
    を備える
    冗長化システム。
  2. 前記複数の演算装置のそれぞれは、
    入力装置から入力データを取得する第2通信部と、
    前記検出対象として、現時点の入力データに基づいて所定の演算を行って出力データを算出する制御演算部と、
    前記出力データを算出する過程で得られる中間値データを記憶する記憶部と、
    を備え、
    前記データ生成部は、
    前記検証値と、前記履歴情報に現時点の入力データ又は中間値データを追加してなる現時点の履歴情報と、を含むブロックデータを生成し、
    前記機能制御部は、現時点の前記入力データの前記複数の演算装置間の出現頻度に基づいて前記通信部が取得した入力データの正誤を判定し、誤りと判定された入力データを正しいと判定された入力データに更新し、
    前記中間値データの前記複数の演算装置間の出現頻度に基づいて前記制御演算部から得られた中間値データの正誤を判定し、誤りと判定された中間値データを正しいと判定された演算データに更新する
    請求項1に記載の冗長化システム。
  3. 前記複数の制御装置のそれぞれと入出力ネットワークを介して接続される通信部と、
    前記出力データの前記複数の演算装置間の出現頻度に基づいて前記出力データの正誤を判定し、正しいと判定された出力データを選定するデータ選定部と、
    前記検証値と、前時点までの出力データからなる出力履歴情報に現時点の前記出力データの選択結果を示す情報を追加した現時点の出力履歴情報と、を含む出力ブロックデータを生成するデータ生成部と、
    を有する出力装置を備え、
    前記通信部は、前記出力ブロックデータを前記入出力ネットワークに送出する
    請求項2に記載の冗長化システム。
  4. 前記複数の演算装置のそれぞれは、
    前記検出対象として、所定のアプリケーションプログラムに基づく処理を実行する実行部、
    を備え、
    前記複数の演算装置のうち前記実行部が前記処理を実行する第1演算装置において、
    前記処理の障害が検出されるとき、前記データ生成部は、前記検証値と、現時点の稼働状態の情報として前記障害に関する情報に基づいて第1ブロックデータを生成し、
    前記通信部は、前記第1ブロックデータを前記複数の演算装置のうち前記第1演算装置とは異なる他の演算装置に送信し、
    前記複数の演算装置のうち前記第1ブロックデータを取得した第2演算装置において、
    前記機能制御部は、前記アプリケーションプログラムに基づく処理を起動し、
    前記データ生成部は、前記第1ブロックデータに基づく検証値と、現時点の稼働状態の情報として前記起動に関する情報に基づいて第2ブロックデータを生成し、
    前記通信部は、前記第2ブロックデータを前記複数の演算装置のうち前記第2演算装置とは異なる他の演算装置に送信する、
    請求項1に記載の冗長化システム。
  5. 前記複数の演算装置の少なくとも1台は、
    検出対象の障害を検出する検出部を備え、
    前記障害が検出されるとき、前記データ生成部は、前記検証値と、現時点の稼働状態の情報として前記障害に関する情報に基づいて第1ブロックデータを生成し、
    前記通信部は、前記第1ブロックデータを前記複数の演算装置のうち前記少なくとも1台の演算装置とは異なる他の演算装置に送信し、
    前記複数の演算装置のうち前記第1ブロックデータを取得した第2演算装置において、
    前記検出対象の機能が補われるとき、前記データ生成部は、前記第1ブロックデータに基づく検証値と、前記現時点の稼働状態の情報として前記機能への対応に関する情報に基づいて第2ブロックデータを生成し、
    前記通信部は、前記第2ブロックデータを前記複数の演算装置のうち前記第2演算装置とは異なる他の演算装置に送信する
    請求項1から請求項4のいずれか一項に記載の冗長化システム。
  6. 複数の演算装置を備える冗長化システムにおける冗長化方法であって、
    前記複数の演算装置のそれぞれは、
    前時点のブロックデータに基づく検証値と、前時点の履歴情報に現時点の所定の検出対象の稼働状態の情報を追加してなる現時点の履歴情報と、を含む現時点のブロックデータを生成するデータ生成過程と、
    前記現時点のブロックデータを前記複数の演算装置間で同報する通信過程と、
    前記複数の演算装置の少なくとも1台は、
    前記検出対象の障害が検出されるとき、前記検出対象の機能を補うための機能制御過程と、
    を有する
    冗長化方法。
JP2017034783A 2017-02-27 2017-02-27 冗長化システム及び冗長化方法 Active JP6843650B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017034783A JP6843650B2 (ja) 2017-02-27 2017-02-27 冗長化システム及び冗長化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017034783A JP6843650B2 (ja) 2017-02-27 2017-02-27 冗長化システム及び冗長化方法

Publications (2)

Publication Number Publication Date
JP2018142077A true JP2018142077A (ja) 2018-09-13
JP6843650B2 JP6843650B2 (ja) 2021-03-17

Family

ID=63528040

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017034783A Active JP6843650B2 (ja) 2017-02-27 2017-02-27 冗長化システム及び冗長化方法

Country Status (1)

Country Link
JP (1) JP6843650B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672377A (zh) * 2020-05-13 2021-11-19 株式会社日立制作所 程序生成装置、并行运算设备以及计算机可读记录介质
JP7077644B2 (ja) 2018-02-09 2022-05-31 横河電機株式会社 制御システム、診断装置、診断方法、および診断プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002344450A (ja) * 2001-05-15 2002-11-29 Hitachi Ltd 高可用性処理方法及びその実施システム並びにその処理プログラム
JP2009192208A (ja) * 2008-01-18 2009-08-27 Sanyo Electric Co Ltd 冷却システム、制御装置及び制御プログラム
JP2010287127A (ja) * 2009-06-12 2010-12-24 Mitsubishi Heavy Ind Ltd 冗長化システム
WO2011135628A1 (ja) * 2010-04-28 2011-11-03 株式会社日立製作所 クラスタ再構築方法、クラスタ再構築装置及びクラスタ再構築プログラム
JP2012159988A (ja) * 2011-01-31 2012-08-23 Japan Agengy For Marine-Earth Science & Technology ノード

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002344450A (ja) * 2001-05-15 2002-11-29 Hitachi Ltd 高可用性処理方法及びその実施システム並びにその処理プログラム
JP2009192208A (ja) * 2008-01-18 2009-08-27 Sanyo Electric Co Ltd 冷却システム、制御装置及び制御プログラム
JP2010287127A (ja) * 2009-06-12 2010-12-24 Mitsubishi Heavy Ind Ltd 冗長化システム
WO2011135628A1 (ja) * 2010-04-28 2011-11-03 株式会社日立製作所 クラスタ再構築方法、クラスタ再構築装置及びクラスタ再構築プログラム
JP2012159988A (ja) * 2011-01-31 2012-08-23 Japan Agengy For Marine-Earth Science & Technology ノード

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7077644B2 (ja) 2018-02-09 2022-05-31 横河電機株式会社 制御システム、診断装置、診断方法、および診断プログラム
CN113672377A (zh) * 2020-05-13 2021-11-19 株式会社日立制作所 程序生成装置、并行运算设备以及计算机可读记录介质

Also Published As

Publication number Publication date
JP6843650B2 (ja) 2021-03-17

Similar Documents

Publication Publication Date Title
KR102205392B1 (ko) 기술 시스템의 동작을 제어하기 위한 시스템, 방법 및 제어 유닛
EP2660668A2 (en) Systems and methods for controlling file execution for industrial control systems
US9374194B2 (en) Transmission system error detection and correction system and method
EP2924578B1 (en) Monitor processor authentication key for critical data
JP6843650B2 (ja) 冗長化システム及び冗長化方法
JP2020042705A (ja) 故障予測装置、故障予測方法及びプログラム
WO2016157278A1 (ja) 故障予兆診断システム、及びその方法
US20130007516A1 (en) Adaptive voltage scaling based on the results of forward error correction processing
US20110191634A1 (en) Test-operation control apparatus, system, and method
CN115695150B (zh) 一种基于分布式异构融合组网设备检测方法及装置
WO2021027294A1 (zh) 提高风电系统数据质量的方法及装置
JP2020021341A (ja) 冗長化システム
JP2006228115A (ja) 負荷分散予測装置及び負荷分散制御方法並びにそのプログラム、負荷分散制御システムおよび当該システムにおける負荷分散制御方法
CN110620800B (zh) 电力二次系统跨安全区的配置数据同步处理方法和装置
US11322014B2 (en) Notification device, notification method, and program
JP2011175513A (ja) 障害管理システム及び方法
US8799707B2 (en) Redundant system
JP2017078987A (ja) プラント設計支援装置
WO2019186796A1 (ja) 更新計画作成支援装置、更新計画作成支援システム及び更新計画作成支援方法
US8776071B2 (en) Microprocessor operation monitoring system
CN110134000B (zh) 控制系统、诊断装置、诊断方法、以及存储有诊断程序的计算机可读介质
CN114624989A (zh) 预防性控制器切换
JP2010047102A (ja) 多重系電子連動装置
JPH11345003A (ja) プラント制御システム
JP7396526B1 (ja) プラント制御システム及びプラント制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170228

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20181109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201228

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: 20210209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210224

R150 Certificate of patent or registration of utility model

Ref document number: 6843650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150