(57)【要約】【課題】出力データの信頼性を向上させ、演算装置の停止回数を低減すること。【解決手段】入力装置３と入力装置３から入力データを受信する複数の演算装置５ａ，５ｂ，５ｃ，及び５ｄと演算装置５ａ，５ｂ，５ｃ，及び５ｄから出力された出力データを受信する出力装置４とを具備し、演算装置５ａ，５ｂ，５ｃ，及び５ｄの各々に同じ処理を実行させる冗長化システム１００であって、各演算装置５ａ，５ｂ，５ｃ，及び５ｄは、入力装置３から入力データを取得する第１通信部６と、第１通信部６により取得された入力データを他の演算装置に送信し、かつ、他の演算装置から、他の演算装置が取得した入力データを受信する第２通信部７とを具備する。【選択図】図１
2010287127.tif 000002
【特許請求の範囲】
【請求項１】
入力装置と、前記入力装置から入力データを受信する複数の演算装置と、前記演算装置から出力された出力データを受信する出力装置とを具備し、前記演算装置の各々に同じ処理を実行させる冗長化システムであって、
各前記演算装置は、
前記入力装置から入力データを取得する第１通信手段と、
該第１通信手段により取得された前記入力データを他の前記演算装置に送信し、かつ、他の前記演算装置から、他の前記演算装置が取得した前記入力データを受信する第２通信手段と、
を具備する冗長化システム。
【請求項２】
少なくとも３台の前記演算装置を備え、
各前記演算装置は、前記第１通信手段及び前記第２通信手段を介して取得した前記入力データのうち、少なくとも１つが一致していない場合、少なくも３つの前記入力データのうち、最も出現頻度の高い値を変更後の前記入力データとして選定するデータ選定手段を具備する請求項１に記載の冗長化システム。
【請求項３】
各前記演算装置は、
前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、
前記出力データを算出する過程で得られる複数のデータである中間値データ群を格納する記憶手段と、を備え、
前記第２通信手段は、前記記憶手段に格納される前記中間値データ群を他の前記演算装置に送信するとともに、他の前記演算装置から送信された前記中間値データ群を受信し、
前記記憶手段には、他の前記演算装置から受信された前記中間値データが前記入力データと対応付けられて格納される請求項１または請求項２に記載の冗長化システム。
【請求項４】
前記データ選定手段は、
前記記憶手段に格納される複数の前記中間値データ群のうち、少なくとも１つが一致していない場合に、前記中間値データ群の最も出現頻度の高い値を変更後の前記中間値データ群として選定し、該選定された前記中間値データ群が、前記第１通信手段を介して取得された前記入力データに基づく前記中間値データ群と異なる場合には、前記第１通信手段を介して取得した前記入力データから算出される前記出力データは正しくないと判定し、最も出現頻度の高い前記中間値データ群を変更後の前記中間値データ群とする請求項３に記載の冗長化システム。
【請求項５】
各前記演算装置は、
前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、
前記出力データを算出する過程で得られる複数のデータである中間値データ群を記憶する記憶手段と、
前記記憶手段に格納されている中間値データ群から１つのコードを生成するコード生成手段と、を備え、
前記コード生成手段は、同一の前記中間値データ群である場合に同一の前記コードを生成し、
前記記憶手段は、該コードと前記入力データとを対応付けて格納し、
前記第２通信手段は、前記記憶手段に格納される前記コードを他の前記演算装置に送信し、他の前記演算装置から前記コードを取得して、他の前記演算装置から取得した前記入力データと対応付けて前記記憶手段に格納させる請求項１または請求項２に記載の冗長化システム。
【請求項６】
前記データ選定手段は、
前記記憶手段に格納される前記コードのうち、少なくとも１つが一致していなければ、前記コードの最も出現頻度の高い値を正しい前記コードと判定し、
正しいと判定した前記コードが自身のコードと異なっていた場合に、自身が算出した前記出力データは正しくないと判定し、この場合に、前記第２通信手段が、正しいと判定された該コードの送信元である他の前記演算装置から前記中間値データ群を受信し、記憶手段に格納されている自身の中間値データ群が前記第２通信手段によって受信された前記中間値データ群に更新される請求項５に記載の冗長化システム。
【請求項７】
各前記演算装置は、
前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、
前記出力データを算出する過程で得られる複数のデータである中間値データ群を記憶する記憶手段と、
前記記憶手段に格納されている中間値データ群から１つのコードを生成するコード生成手段と、を備え、
前記コード生成手段は、同一の前記中間値データ群である場合に同一の前記コードを生成し、
前記記憶手段は、該コードと前記入力データとを対応付けて格納し、
前記第２通信手段は、前記記憶手段に格納される前記コード及び前記中間値データ群を他の前記演算装置に送信し、他の前記演算装置から前記コード及び前記中間値データ群を取得して、他の前記演算装置から取得した前記入力データと対応付けて前記記憶手段に格納させる請求項１または請求項２に記載の冗長化システム。
【請求項８】
前記データ選定手段は、
前記記憶手段に格納される前記コードのうち、少なくとも１つが一致していなければ、前記コードの最も出現頻度の高い値を正しい前記コードと判定し、
正しいと判定した前記コードが自身のコードと異なっていた場合に、自身が算出した前記出力データは正しくないと判定し、この場合に、正しいと判定された該コードの送信元と同一の送信元の前記中間値データ群が前記記憶手段から読み出され、記憶手段に格納されている自身の中間値データ群が前記記憶手段から読み出された前記中間値データ群に更新される請求項７に記載の冗長化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長化システムに関するものである。
【背景技術】
【０００２】
従来、例えば、プラントプロセスを制御するための演算装置を冗長構成とし、演算装置の一部に故障が発生しても、プラント機能を喪失することがないように制御を行なう冗長化システムが提案されている。
特許文献１には、３つの演算装置を冗長化した３重化の制御システムにおいて、３つの演算結果が不一致となったときは、各演算装置から出力される演算結果の中間値を制御量として決定し、また、３つのうち１つの演算装置が停止し、２重化システムに切り替わったときには、高値選択または低値選択を行うことによって制御量を決定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１５７１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の発明では、複数の演算装置における演算結果が異なる場合には、全ての演算結果が一致する場合と比較して誤差が大きくなるため、データの信頼性が低くなるという問題があった。
また、従来は、演算装置の異常に限らず、入出力データの経路である通信媒体の一時的な不具合に起因した入出力データの欠落や破損が生じた場合であっても、演算装置自体に問題が生じているとみなしてその演算装置を停止させてしまうので、演算装置の稼働率が低下してしまうという問題があった。
【０００５】
本発明は、上記問題を解決するためになされたもので、出力データの信頼性を向上させ、演算装置の停止回数を低減することのできる冗長化システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は以下の手段を採用する。
【０００７】
本発明は、入力装置と、前記入力装置から入力データを受信する複数の演算装置と、前記演算装置から出力された出力データを受信する出力装置とを具備し、前記演算装置の各々に同じ処理を実行させる冗長化システムであって、各前記演算装置は、前記入力装置から入力データを取得する第１通信手段と、該第１通信手段により取得された前記入力データを他の前記演算装置に送信し、かつ、他の前記演算装置から、他の前記演算装置が取得した前記入力データを受信する第２通信手段とを具備する冗長化システムを提供する。
【０００８】
このような構成によれば、各演算装置において、第１通信手段を介して取得された入力データは、第２通信手段を介して相互に送受信される。これにより、各演算装置は、他の演算装置に送信された入力データを取得することができる。これにより、例えば、入力装置と第１通信手段との間で通信障害が生じ、入力装置からの入力データが取得できなかった場合であっても、第２通信手段を介して他の演算装置によって取得された入力データを得ることができ、確実に入力データを取得することが可能となる。
【０００９】
上記の冗長化システムは、少なくとも３台の前記演算装置を備え、各前記演算装置は、前記第１通信手段及び前記第２通信手段を介して取得した前記入力データのうち、少なくとも１つが一致していない場合、少なくも３つの前記入力データのうち、最も出現頻度の高い値を変更後の前記入力データとして選定するデータ選定手段を具備することとしてもよい。
【００１０】
例えば、演算装置を３台備える場合に、一の演算装置において、第１通信手段から入力された入力データに誤りが含まれ、第２通信手段から入力された２つの入力データが正しい（誤りがない）場合に、３つの入力データのうち、出現頻度の高い値である正しい（誤りがない）入力データが変更後の入力データとして選定される。このように、入力データの一致数に応じて入力データを変更するので、従来のように平均値や低値選択等によって入力データを得る場合と比較して、入力データの信頼性を保つことができる。
【００１１】
上記の冗長化システムの各前記演算装置は、前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、前記出力データを算出する過程で得られる複数のデータである中間値データ群を格納する記憶手段と、を備え、前記第２通信手段は、前記記憶手段に格納される前記中間値データ群を他の前記演算装置に送信するとともに、他の前記演算装置から送信された前記中間値データ群を受信し、前記記憶手段には、他の前記演算装置から受信された前記中間値データが前記入力データと対応付けられて格納されることとしてもよい。
【００１２】
このような構成によれば、中間値データ群が演算装置間で送受信され、各演算装置において発生した中間値データ群がそれぞれの演算装置の記憶手段に格納される。これにより、自身の中間値データ群と他の演算装置の中間値データ群とを比較することが可能となり、例えば、中間値データに異なるものがある場合には、中間値データ群の相違に基づいて出力データの相違を把握することが可能となる。
【００１３】
上記の冗長化システムの前記データ選定手段は、前記記憶手段に格納される複数の前記中間値データ群のうち、少なくとも１つが一致していない場合に、前記中間値データ群の最も出現頻度の高い値を変更後の前記中間値データ群として選定し、該選定された前記中間値データ群が、前記第１通信手段を介して取得された前記入力データに基づく前記中間値データ群と異なる場合には、前記第１通信手段を介して取得した前記入力データから算出される前記出力データは正しくないと判定し、最も出現頻度の高い前記中間値データ群を変更後の前記中間値データ群とすることとしてもよい。
【００１４】
このように、記憶手段に格納される中間値データ群の出現頻度に基づいて出力データが正しいか否かを判定し、最も出現頻度の高い値を変更後の中間値データ群として選定するので、中間値データ群の信頼性を保つことができる。更に、自身において算出された中間値データ群が、更新後の中間値データ群として選定された中間値データ群と異なっていた場合には、自身の中間値データ群を書き換えるので、次回の処理において中間値データ群が再度必要とされるような場合に、正しい中間値データを用いて処理を実行することが可能となる。
【００１５】
上記の冗長化システムの各前記演算装置は、前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、前記出力データを算出する過程で得られる複数のデータである中間値データ群を記憶する記憶手段と、前記記憶手段に格納されている中間値データ群から１つのコードを生成するコード生成手段と、を備え、前記コード生成手段は、同一の前記中間値データ群である場合に同一の前記コードを生成し、前記記憶手段は、該コードと前記入力データとを対応付けて格納し、前記第２通信手段は、前記記憶手段に格納される前記コードを他の前記演算装置に送信し、他の前記演算装置から前記コードを取得して、他の前記演算装置から取得した前記入力データと対応付けて前記記憶手段に格納させることとしてもよい。
【００１６】
このように、複数のデータを含む中間値データ群から算出される１つのコードが演算装置間で送受信されるので、演算装置の各中間値データ群に対応したコードが取得され、記憶手段に格納される。
これにより、演算装置間において中間値データ群を送受信する場合と比較して、送受信するデータ量を低減することができ、通信路にかかるデータ量の負担を低減することができる。また、演算装置間の中間値データ群の相違を比較する場合に、単一のコードを比較するだけで中間値データ群が相違するか否かを判定することができるので、複数のデータを含む中間値データ群を比較する場合に比べて処理の負担を低減することができる。
【００１７】
上記の冗長化システムの前記データ選定手段は、前記記憶手段に格納される前記コードのうち、少なくとも１つが一致していなければ、前記コードの最も出現頻度の高い値を正しい前記コードと判定し、正しいと判定した前記コードが自身のコードと異なっていた場合に、自身が算出した前記出力データは正しくないと判定し、この場合に、前記第２通信手段が、正しいと判定された該コードの送信元である他の前記演算装置から前記中間値データ群を受信し、記憶手段に格納されている自身の中間値データ群が前記第２通信手段によって受信された前記中間値データ群に更新されることとしてもよい。
【００１８】
このように、記憶手段に格納される中間値データ群に基づいて算出されるコードを比較することにより、自身の中間値データ群が誤りであるか否かを容易に判断することができる。また、中間値データ群が誤りであると判定された場合には、他の演算装置から正しい中間値データ群を取得し、記憶手段に格納されている誤りの中間値データ群を正しい中間値データ群に更新するので、次回の処理において中間値データ群が再度必要とされるような場合に、正しい中間値データを用いて処理を実行することが可能となる。
【００１９】
上記の冗長化システムの各前記演算装置は、前記入力データに基づいて所定の演算を行うことにより出力データを算出する制御演算手段と、前記出力データを算出する過程で得られる複数のデータである中間値データ群を記憶する記憶手段と、前記記憶手段に格納されている中間値データ群から１つのコードを生成するコード生成手段と、を備え、前記コード生成手段は、同一の前記中間値データ群である場合に同一の前記コードを生成し、前記記憶手段は、該コードと前記入力データとを対応付けて格納し、前記第２通信手段は、前記記憶手段に格納される前記コード及び前記中間値データ群を他の前記演算装置に送信し、他の前記演算装置から前記コード及び前記中間値データ群を取得して、他の前記演算装置から取得した前記入力データと対応付けて前記記憶手段に格納させることとしてもよい。
【００２０】
このように、複数のデータを含む中間値データ群から算出される１つのコード及び中間値データ群が演算装置間で送受信されるので、演算装置の各中間値データ群及びコードが取得され、記憶手段に格納される。
【００２１】
例えば、コードのみを送受信する場合、自身のコードと正しいと判定されたコードとが不一致であると判定されたときには、正しいと判定されたコードの送信元である他の演算装置から中間値データ群を取得する処理が行われる。したがって、中間値データ群を取得するまでに時間を要し、コードが一致する場合と不一致である場合とで処理時間に変動が生じることとなる。これに対し、中間値データ群とコードとが共に送受信される場合には、自身のコードが正しいと判定されたコードと不一致であるときであっても、コードと共に受信した中間値データ群をそのまま使用できる。したがって、演算装置の処理時間の変動を抑制することができる。
【００２２】
また、例えば、中間値データ群のみを送受信する場合、自身の中間値データ群と正しいと判定された中間値データ群とが一致するか否かを判定するときには、複数のデータを比較するために時間がかかる。これに対し、中間値データ群とコードとが共に送受信される場合には、中間値データ群に対応して生成される１つのコードによって、中間値データ群が一致するか否か判定される。これにより、判定にかかる時間を低減することができる。
これらのことから、中間値データ群とコードとが送受信されることは、リアルタイム性が要求される演算装置に好適である。
【００２３】
上記の冗長化システムの前記データ選定手段は、前記記憶手段に格納される前記コードのうち、少なくとも１つが一致していなければ、前記コードの最も出現頻度の高い値を正しい前記コードと判定し、正しいと判定した前記コードが自身のコードと異なっていた場合に、自身が算出した前記出力データは正しくないと判定し、この場合に、正しいと判定された該コードの送信元と同一の送信元の前記中間値データ群が前記記憶手段から読み出され、記憶手段に格納されている自身の中間値データ群が前記記憶手段から読み出された前記中間値データ群に更新されることとしてもよい。
【００２４】
このように、記憶手段に格納される中間値データ群に基づいて算出されるコードを比較することにより、自身の中間値データ群が誤りであるか否かを容易に判断することができる。また、中間値データ群が誤りであると判定された場合には、他の演算装置から取得し、記憶手段に格納されている正しい中間値データ群を読み出し、誤りの中間値データ群を正しい中間値データ群に更新するので、次回の処理において中間値データ群が再度必要とされるような場合に、正しい中間値データを用いて処理を実行することが可能となる。
【発明の効果】
【００２５】
本発明によれば、出力データの信頼性を向上させ、演算装置の停止回数を低減することができるという効果を奏する。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態に係る冗長化システムの概略構成を示す図である。
【図２】第１の実施形態の演算装置の機能ブロック図である。
【図３】第１の実施形態に係る冗長化システムの動作フローである。
【図４】第１の実施形態に係る冗長化システムの動作フローの図３の続きである。
【図５】第２の実施形態の演算装置の機能ブロック図である。
【図６】第２の実施形態に係る冗長化システムの動作フローである。
【発明を実施するための形態】
【００２７】
以下に、本発明に係る冗長化システムの実施形態について、図面を参照して説明する。
【００２８】
〔第１の実施形態〕
図１は、本実施形態に係る冗長化システム１００の概略構成を示したブロック図である。
図１に示されるように、冗長化システム１００は、入力装置３、出力装置４、及び４台の演算装置５ａ，５ｂ，５ｃ，及び５ｄを備えている。各演算装置５ａ，５ｂ，５ｃ，及び５ｄは、第１通信部（第１通信手段）６を介して、それぞれ入力装置３と出力装置４と通信可能に接続されている。また、各演算装置５ａ，５ｂ，５ｃ，及び５ｄは、第２通信部（第２通信手段）７を介して互いに通信可能に接続されている。ここで、演算装置は４つ備えることとしているが、特に台数は限定されず、複数あればよいこととする。また、台数の上限は特に設けられない。
【００２９】
また、本実施形態においては、入力装置３と出力装置４とは１つずつ別の装置を設けているが、この構成に限られない。例えば、入力装置３と出力装置４とはそれぞれの機能を有していれば、１つの装置によって入出力装置とされていてもよい。或いは、入力装置３、または出力装置４を複数備え、制御対象に応じて使用する入力装置、または出力装置を使い分けることとしてもよい。また、本実施形態においては、制御対象は、プラント制御を行うために操作される対象となる操作端２であることとして説明するが、制御対象はこれに限定されない。
【００３０】
入力装置３は、データ取得部３１と第３通信部３２とを備えている。
データ取得部３１は、制御対象に設けられたセンサ１から取得された入力データを取得する。データ取得部３１で取得された入力データは、第３通信部３２に出力される。第３通信部３２は、入力データを各演算装置５ａ，５ｂ，５ｃ，及び５ｄに送信する。
【００３１】
出力装置４は、第４通信部４１、出力データ記憶部４２、出力データ選択部４３、及びデータ出力部４４を備えている。
第４通信部４１は、各演算装置５ａ，５ｂ，５ｃ，及び５ｄからそれぞれ出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄを取得するとともに、これら出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄを出力データ記憶部４２に格納する。これにより、出力データ記憶部４２には、第４通信部４１から出力された出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄが格納される。
【００３２】
出力データ選択部４３は、出力データ記憶部４２に格納されている出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄを読み出し、これら出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄに基づいて規定の方法により正しい出力データを決定し、データ出力部４４に出力する。データ出力部４４は、取得した正しい出力データを制御対象である操作端２に出力する。
【００３３】
図２は、演算装置５ａが備える機能を展開して示した機能ブロック図である。また、本実施形態においては、他の演算装置５ｂ，５ｃ，及び５ｄにおいても同様の機能を備えているため、ここでは一例として、演算装置５ａの動作に着目して説明する。
【００３４】
図２に示されるように、演算装置５ａは、第１通信部６、第２通信部７、記憶部８、データ選定部（データ選定手段）９、及び制御演算部（制御演算手段）１０を備えている。
【００３５】
第１通信部６は、入力装置３から入力データを受信し、記憶部８に格納する。また、第１通信部６は、記憶部８から取り出した出力データを出力装置４に送信する。このように、第１通信部６は、入力装置４と演算装置５ａとの間、及び演算装置５ａと出力装置４との間における通信処理を行う。また、例えば、第１通信部６を介して入力された入力データをＤａとし、同様に演算装置５ｂに入力された入力データをＤｂ、演算装置５ｃに入力された入力データをＤｃ、及び演算装置５ｄに入力された入力データをＤｄとする。
【００３６】
また、後述する処理によって、演算装置５ａの記憶部８（詳細は後述する。）に格納されている出力データＹａ（ここでは、演算装置５ｘ（ｘ＝ａ，ｂ，ｃ，ｄ）の出力データをＹｘとする。）が正しいと判定された場合には、第１通信部６は、出力データＹａを出力装置４に出力する。また、記憶部８に格納されている出力データＹａが正しくないと判定された場合には、第１通信部６は、出力装置４に対して異常を通知する異常情報を送信する。
【００３７】
第２通信部７は、記憶部８に格納されている入力データ及び中間値データ群（詳細は後述する。）を他の演算装置５ｂ，５ｃ，及び５ｄに送信する。また、他の演算装置５ｂ，５ｃ，及び５ｄの第２通信部７から送信されてきた他の演算装置の入力データ及び中間値データ群を受信して、記憶部８に格納する。このように、第２通信部７は、演算装置５ａと他の演算装置５ｂ，５ｃ，及び５ｄとの間における通信処理を行う。
【００３８】
具体的には、第２通信部７は、入力データＤａを他の演算装置５ｂ，５ｃ，及び５ｄのそれぞれに送信し、他の演算装置５ｂ，５ｃ，及び５ｄからそれぞれ送出される入力データＤｂ，Ｄｃ，及びＤｄを受信する。また、第２通信部７は、受信した入力データＤｂ，Ｄｃ，及びＤｄを記憶部８に格納する。
【００３９】
記憶部８は、第１通信部６及び第２通信部７を介して演算装置５ａが取得した入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄを格納する。また、記憶部８は、後述する第１通信部６及び第２通信部７を介して演算装置５ａが取得した中間値データ群Ｃａ，Ｃｂ，Ｃｃ，及びＣｄを格納する。
【００４０】
制御演算部１０は、記憶部８から入力データＤａと前回の演算時に格納された中間値データ群Ｃａとを読み出し、読み出した入力データＤａと中間値データ群Ｃａとに基づいて所定の演算を行い、演算結果から得られる出力データＹａと今回の演算によって更新された中間値データ群Ｃａを記憶部８に格納する。
【００４１】
本実施形態では、所定の演算により出力データＹａを得る過程の途中段階で得られる結果のデータを中間値データとし、入力データＤａに基づいて出力データＹａを得るまでの一連の複数の中間値データを中間値データ群Ｃａとする。中間値データ群Ｃａには、例えば、過去のデータを累積して使用する積分値、または移動平均値等が含まれる。
【００４２】
データ選定部９は、第１通信部６を介して受信した自身宛の入力データ及び第２通信部７を介して受信した他の演算装置から送信されてきた入力データのうち、少なくとも１つが一致していない場合、最も出現頻度の高い値を変更後の入力データとして選定する。具体的には、データ選定部９は、記憶部８に格納されている入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄを読み出して比較し、これら値の出現頻度によって正しい入力データを選定する。
【００４３】
例えば、入力データＤａ，Ｄｂ，Ｄｃが等しい値であり、入力データＤｄが異なる値である場合には、出現頻度の高い入力データＤａ，Ｄｂ，及びＤｃが正しい入力データであると選定される。また、例えば、演算装置５ａにおいて、第２通信部７から入力された入力データＤｂ，Ｄｃ，及びＤｄが等しい値であり、入力データＤａが他の入力データと異なる値である場合には、入力データＤｂ，Ｄｃ，及びＤｄが正しい入力データであると選定し、誤りである入力データＤａの値を、入力データＤｂ（等しい値であることから、Ｄｃ又はＤｄであってもよい。）と置き換える。
【００４４】
このように、演算装置５ａの第１通信部６及び第２通信部７によって取得される入力データのうち、出現頻度の高いものが正しい値として選定される。また、第１通信部６を介して入力された入力データＤａが、正しい値として選定されなかった場合には、入力データＤａは正しい入力データに置き換えられる。これにより、例えば、入力装置３と第１通信部６との通信路において不具合等が生じ、第１通信部６から取得される入力データＤａが正しくなかった場合であっても、入力データＤａは、他の演算装置５ｂ，５ｃ，及び５ｄから取得した入力データＤｂ，Ｄｃ，及びＤｄに基づいて、正しい入力データに置き換えられる。なお、第１通信部６を介して入力された入力データＤａが、正しい値として選定されていた場合には、そのままの値を入力データＤａとして記憶部８に格納させる。
【００４５】
また、データ選定部９は、記憶部８に格納される中間値データ群Ｃａ，Ｃｂ，Ｃｃ，及びＣｄのうち、少なくとも１つが一致していない場合に、最も出現頻度の高い値を選定し、選定した値を正しい中間値データ群とする。さらに、データ選定部９は、正しいとされた中間値データ群と入力データＤａに基づく中間値データ群Ｃａとを比較し、比較の結果、一致しない場合には、入力データＤａに基づいて算出された出力データＹａが正しくないと判定する。これは、中間値データＣａが誤っていれば、その中間値データを用いて求められる出力データは誤りであるといえるからである。また、この場合、データ選定部９は、中間値データ群Ｃａを正しい中間値データ群に変更し、変更後の中間値データ群を記憶部８に記憶させる。このように、中間値データ群Ｃａが他の演算装置から受信した正しい中間値データ群に書き換えられることで、以降の処理によりこの中間値データが使用されるような場合に、正しい中間値データを使用して処理を実行することが可能となる。
【００４６】
なお、本実施形態においては、中間値データ群の各中間値データのそれぞれを比較し、対応するそれぞれの中間値データが全て一致する場合を、「中間値データ群が一致した」と判定することとしている。
【００４７】
次に、本実施形態に係る冗長化システム１００の作用について図３及び図４を用いて説明する。なお、上述のように、各演算装置５ａ，５ｂ，５ｃ，及び５ｄの機能は同様であるため、以下の説明では、演算装置５ａの動作に着目して説明する。
各制御対象に取り付けられたセンサ１によって計測された計測値が入力データとして入力装置２に入力される（図３のステップＳＡ１）。入力データは、入力装置２のデータ取得部３１に取得されると第３通信部３２に出力され、第３通信部３２から各演算装置５ａ，５ｂ，５ｃ，及び５ｄのそれぞれの第１通信部６に送信される（図３のステップＳＡ２）。
【００４８】
入力装置３から送信された入力データは、演算装置５ａの第１通信部６に受信され、記憶部８に格納される（図３のステップＳＡ３）。このとき、演算装置５ａの第１通信部６が受信した入力データをＤａとし、同様に、各演算装置５ｂ，５ｃ，及び５ｄの第１通信部６が受信した入力データを、それぞれＤｂ，Ｄｃ，及びＤｄとする。記憶部８に格納された入力データＤａは、第２通信部７によって通信媒体を介して他の演算装置５ｂ，５ｃ，及び５ｄに送信される（図３のステップＳＡ４）。
【００４９】
また、他の演算装置５ｂ，５ｃ，及び５ｄの記憶部８に格納されている入力データＤｂ，Ｄｃ，及びＤｄは、それぞれの第２通信部７から通信媒体を介して演算装置５ａへ送信され、演算装置５ａの第２通信部７によって受信される。第２通信部７によって受信された各演算装置の入力データＤｂ，Ｄｃ，及びＤｄは、演算装置５ａの記憶部８に格納される（図３のステップＳＡ５）。これにより、演算装置５ａの記憶部８には、各演算装置５ａ，５ｂ，５ｃ，及び５ｄによってそれぞれ受信された入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄが格納される。
【００５０】
記憶部８に格納された入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄは、データ選定部９により読み出され、入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄの値がそれぞれ比較される。この結果、入力データＤａ，Ｄｂ，Ｄｃ，及びＤｄのうち、一つでも異なる値があった場合には、データ選定部９において、出現頻度の高い値が正しい入力データとして選定される（図３のステップＳＡ６）。例えば、入力データＤａ，Ｄｂ，及びＤｃが等しい値であり、入力データＤｄが他の３つの入力データＤａ，Ｄｂ，Ｄｃと異なる場合には、入力データＤａ，Ｄｂ，Ｄｃが正しい値として選定される。
【００５１】
続いて、データ選定部９において、正しい値として選定された入力データが、第１通信部６を介して取得した入力データＤａと一致するか否かが判定される（図３のステップＳＡ７）。判定の結果、一致していない場合には、記憶部８に格納されている入力データＤａが正しい入力データに書き換えられる（図３のステップＳＡ８）。なお、全ての入力データＤａ，Ｄｂ，Ｄｃ，Ｄｄが一致していた場合には、上記書き換え操作は行われない。
【００５２】
このようにして、入力データＤａが正しい値であることが確認されると、或いは、正しい値に書き換えられると、続いて、この入力データＤａを使用して制御演算部１０による所定の演算が行われ、出力データＹａが求められる。また、この出力データＹａを算出する過程において算出された演算途中の段階での一連の値及び出力データＹａは、中間値データ群Ｃａとして、記憶部８に格納される（図３のステップＳＡ９）。
【００５３】
上記出力データＹａが算出されると、記憶部８に格納された中間値データ群Ｃａが第２通信部７を介して他の演算装置５ｂ，５ｃ，及び５ｄに送信される（図４のステップＳＡ１０）。また、他の演算装置５ｂ，５ｃ，及び５ｄの第２通信部７から送信された中間値データ群Ｃｂ，Ｃｃ，及びＣｄが、演算装置５ａの第２通信部７により受信され、記憶部８に格納される（図４のステップＳＡ１１）。
【００５４】
続いて、記憶部８に格納された中間値データ群Ｃａ，Ｃｂ，Ｃｃ，及びＣｄがデータ選定部９によって読み出され、それぞれ比較され、出現頻度の高い中間値データ群が正しい中間値データ群であると選定される（図４のステップＳＡ１２）。続いて、データ選定部９において選定された正しい中間値データ群と、出力データＹａを得る過程で算出されて格納されていた中間値データ群Ｃａとが比較され、一致しているか否かが判定される（図４のステップＳＡ１３）。
【００５５】
上記判定の結果、一致している場合には、先に制御演算部１０によって算出されて記憶部８に格納されている出力データＹａが、正しい出力データであると判定され、第１通信部６を介して出力装置４に出力される（図４のステップＳＡ１４）。
【００５６】
一方、一致していない場合には、記憶部８に格納されている中間値データ群Ｃａが正しい中間値データ群に書き換えられる（図４のステップＳＡ１６）とともに、正しい出力データＹａが得られなかった旨を示す情報が第１通信部６を介して出力装置４に送信される（図４のステップＳＡ１５）。
【００５７】
このようにして、出力データＹａ，Ｙｂ，Ｙｃ，及びＹｄ又は正しい出力データが得られなかった旨を示す情報が各演算装置５ａ，５ｂ，５ｃ，及び５ｄの第１通信部６から出力装置４へ送信されると、出力装置４において、操作端２に出力させる出力データが選択され、操作端２に出力される。
【００５８】
以上説明してきたように、本発明に係る冗長化システム１００によれば、各演算装置５ａ，５ｂ，５ｃ，及び５ｄにおいて、第１通信部６を介して取得された入力データは、第２通信７を介して相互に送受信される。これにより、各演算装置５ａ，５ｂ，５ｃ，及び５ｄは、他の演算装置に送信された入力データを取得することができる。これにより、例えば、入力装置３と第１通信部６との間で通信障害が生じ、入力装置からの入力データが取得できなかった場合であっても、第２通信部７を介して他の演算装置によって取得された入力データを得ることができ、確実に入力データを取得することが可能となる。
【００５９】
また、送受信された入力データのうち、出現頻度の高い入力データを正しい（誤りがない）入力データとして選定し、更に、第１通信部６から入力された入力データ（つまり、自身の入力データ）が正しい入力データと異なっていた場合には、その入力データが正しいデータに書き換えられる。このように、入力データの出現頻度に基づいて正しい入力データを決定するので、従来のように平均値や低値選択等によって入力データを得る場合と比較して、入力データの信頼性を保つことができる。
【００６０】
さらに、制御演算部１０において、入力データに基づいて出力データを算出する過程で得られる中間値データ群が演算装置間で送受信され、各演算装置で得られた中間値データ群をそれぞれ比較し、一つでも異なる中間値データ群が存在した場合には、最も出現頻度の高い中間値データ群を正しい中間値データ群として定める。そして、自身の中間値データ群が正しい中間値データ群と一致していなかった場合には、記憶部８に格納されている中間値データ群を正しい中間値データ群に書き換えるので、次回の処理において中間値データ群が再度使用されるような場合に、正しい中間値データ群を用いて演算処理を実行することが可能となる。
【００６１】
なお、本実施形態においては、演算装置間での入力データ及び中間値データ群の送受信を行う場合に、第２通信部７を介して行うこととしていたが、これに限定されない。例えば、共有メモリ等の他の手段によって、演算装置間で送受信することとしてもよい。
【００６２】
〔第２の実施形態〕
次に、本発明の第２の実施形態に係る冗長化システムについて、図５を用いて説明する。
本実施形態の冗長化システム１００´が第１の実施形態と異なる点は、コード生成部（コード生成手段）１１とコード比較部（コード比較手段）１２とを設けた点である。以下、本実施形態の冗長化システム１００´について、第１の実施形態と共通する点については説明を省略し、異なる点について主に説明する。また、本実施形態においても、各演算装置５ａ，５ｂ，５ｃ，及び５ｄの機能は同様であるため、演算装置５ａの動作に着目して説明する。
【００６３】
コード生成部１１は、記憶部８´に格納されている中間値データ群Ｃａから１つのコードＲａを生成する。また、コード生成部１１は、中間値データ群を構成する全ての中間値データが同一である場合に、同一のコードを生成するような仕組みを有している。これにより、コードを比較した場合に、コードが一致していれば中間値データ群を構成する全ての中間値データが一致していると判定でき、コードが一致しなければ中間値データ群を構成する少なくとも一つの中間値データが一致していないことと判定できる。コード生成部１１によって生成されたコードＲａは、対応する中間値データ群Ｃａと対応付けられて記憶部８´に格納される。
【００６４】
上記コードは、例えば、ＣＲＣ（Cyclic Redundancy Check：巡回冗長検査）等が用いられる。なお、ＣＲＣは公知の技術であるため、ＣＲＣ算出方法等の詳細な説明は省略する。
【００６５】
第２通信部７は、通信媒体を通じてコードＲａを他の演算装置５ｂ，５ｃ，及び５ｄの第２通信部７に送信する。また、他の演算装置５ｂ，５ｃ，及び５ｄから送信されたコードは通信媒体を通じて演算装置５ａの第２通信部７で受信され、記憶部８´に格納される。
【００６６】
コード比較部１２は、データ選定部９´に設けられており、記憶部８´に格納されている各演算装置５ａ，５ｂ，５ｃ，及び５ｄから取得したそれぞれのコードＲａ，Ｒｂ，Ｒｃ，及びＲｄを比較し、少なくとも１つが一致していなければ、コードの最も出現頻度の高い値を正しいコードと判定する。
【００６７】
また、コード比較部１２は、正しいと判定したコードが自身のコード（演算装置５ａのコードＲａ）と異なっていた場合に、自身が算出した出力データＹａは正しくないと判定する。なお、この場合には、第２通信部７が、正しいと判定されたコードの送信元である他の演算装置から中間値データ群を受信し、記憶部８´に格納されている自身の中間値データ群が第２通信部７によって受信された中間値データ群に更新される。
【００６８】
次に、本実施形態に係る冗長化システム１００´の作用について図６を用いて説明する。
ここで、演算装置が４つ備えられている場合を例に挙げて説明する。また、第１の実施形態において、制御演算部１０によって中間値データ群を得て、記憶部８´に格納するステップＳＡ９までの動作については共通であるため、説明を省略し、第１の実施形態と異なる部分に着目して説明する。
【００６９】
制御演算部１０による演算が終了することにより、記憶部８´に中間値データ群と出力データとが書き込まれると（図３のステップＳＡ９）、続いて、コード生成部１１によって、中間値データ群Ｃａが読み出され、コードＲａが生成される。コード生成部１１は、生成したコードＲａと中間値データ群Ｃａとを対応付けて記憶部８´に格納させるとともに（ステップＳＢ１）、第２通信部７によって、コードＲａが他の演算装置５ｂ，５ｃ，及び５ｄに送信される（ステップＳＢ２）。また、他の演算装置５ｂ，５ｃ，及び５ｄの第２通信部７によって送信されたコードＲｂ，Ｒｃ，及びＲｄが、演算装置５ａの第２通信部７に受信され、各コードＲｂ，Ｒｃ，及びＲｄを送信した送信元の情報とともに記憶部８´に格納される（ステップＳＢ３）。
【００７０】
記憶部８´に格納されたコードＲａ，Ｒｂ，Ｒｃ，及びＲｄがデータ選定部９´のコード比較部１２によって読み出され、それぞれ比較され、全てのコードＲａ，Ｒｂ，Ｒｃ，及びＲｄが一致しているか否かが判定され、一致していない場合には、出現頻度の高いコードが正しいコードであると選定される（ステップＳＢ４）。続いて、選定された正しいコードと、自身のコードＲａとが一致しているか否かが判定される（ステップＳＢ５）。
【００７１】
上記判定の結果、一致している場合には、先に制御演算部１０によって算出されて記憶部８´に格納されていた出力データＹａが、正しい出力データであると判定され、第１通信部６を介して出力装置４に出力され（ステップＳＢ６）、本処理を終了する。
【００７２】
一方、一致していない場合には、記憶部８´に格納されていた出力データＹａが、データ選定部９によって正しい出力データでないと判定されるとともに、正しい出力データが得られなかった旨を示す情報が、第１通信部６を介して出力装置４に出力される（ステップＳＢ７）。また、出力データＹａが正しくないと判定された場合には、第２通信部７を介して、上記出現頻度の高いコードの送信元の演算装置から中間値データ群が受信され、記憶部８´内の中間値データ群Ｃａが受信された中間値データ群に書き換えられる（ステップＳＢ８）。
【００７３】
以上説明してきたように、本実施形態に係る冗長化システム１００´によれば、上述した第１の実施形態のように、中間値データ群自体を演算装置間で送受信することにより、出力データの信頼性を評価するのではなく、中間値データ群から生成されるコードＲａ，Ｒｂ，Ｒｃ，及びＲｄを用いて出力データの信頼性を評価するので、送受信データ量を低減することができ、通信媒体にかかるデータ量の負担を低減することができる。
また、演算装置間の中間値データ群の相違を比較する場合に、単一のコードを比較するだけで中間値データ群が相違するか否かを判定することができるので、複数の中間値データを含む中間値データ群を比較する場合に比べて処理の負担を低減することができる。
更に、自身のコードが正しいと判断したコードと違っていた場合には、正しいコードの送信元である演算装置から中間値データ群自体を受信し、記憶部８´に格納されている誤りの中間値データ群を正しい中間値データ群に更新するので、次回の処理において中間値データ群が再度必要とされるような場合に、正しい中間値データを用いて処理を実行することが可能となる。
【００７４】
〔変形例〕
なお、本実施形態において、演算装置間の中間値データ群を比較する場合に、第２通信部７によって送受信した情報は、コードのみとしていたが、これに限定されない。例えば、演算装置間において第２通信部７を介して中間値データ群とコードとを組み合わせて送受信することとしてもよい。中間値データ群のみ、またはコードのみを送受信する場合は、不一致の発生有無により演算装置の処理時間に変動が生じるが、中間値データ群とコードとを送受信することにより処理時間の変動を抑制することができ、リアルタイム性を要求される演算装置に好適である。
【００７５】
また、演算装置間において、コードを送受信するタイミングとほぼ同時に予め中間値データ群を送受信する。これにより、自身のコードが正しいコードと一致しなかったときにその都度正しいコードの送信元の演算装置から中間値データ群を受信する場合と比較して、中間値データ群を出力装置４に出力するまでにかかる時間を低減することができる。
【符号の説明】
【００７６】
３  入力装置
４  出力装置
５ａ，５ｂ，５ｃ，５ｄ  演算装置
６  第１通信部
７  第２通信部
８，８´  記憶部
９，９´  データ選定部
１０  制御演算部
１１  コード生成部
１２  コード比較部
１００  冗長化システム
【図１】
2010287127.tif 000003
【図２】
2010287127.tif 000004
【図３】
2010287127.tif 000005
【図４】
2010287127.tif 000006
【図５】
2010287127.tif 000007
【図６】
2010287127.tif 000008