(57)【要約】【課題】冗長化された複数の演算装置のいずれかに異常が生じた際に遅延なく処理を継続可能な冗長化システムを提供する。【解決手段】冗長化システムは、同一の入力データに対して同一の演算を実行する冗長化システムであって、入力データを受信する入力部と、入力部にそれぞれ接続され、入力部からそれぞれ入力される同一の入力データに対して同一の演算をそれぞれ実行する第１演算装置および第２演算装置を含む複数の演算装置と、複数の演算装置からそれぞれ出力される前記同一の演算による演算結果の少なくとも１つを送信する出力部と、第１演算装置と第２演算装置とを接続し、第１演算装置および第２演算装置が同期して同一の入力データに対する同一の演算を実行するための同期情報を通信するのに用いる通信路と、を備える。【選択図】  図１
2020021341.tif 000002
【特許請求の範囲】
【請求項１】
同一の入力データに対して同一の演算を実行する冗長化システムであって、
前記入力データを受信する入力部と、
前記入力部にそれぞれ接続され、前記入力部からそれぞれ入力される同一の前記入力データに対して同一の演算をそれぞれ実行する第１演算装置および第２演算装置を含む複数の演算装置と、
前記複数の演算装置からそれぞれ出力される前記同一の演算による演算結果の少なくとも１つを送信する出力部と、
前記第１演算装置と前記第２演算装置とを接続し、前記第１演算装置および前記第２演算装置が同期して前記同一の入力データに対する前記同一の演算を実行するための同期情報を通信するのに用いる通信路と、を備えることを特徴とする冗長化システム。
【請求項２】
前記同期情報は、前記複数の演算装置が実行する前記同一の演算の実行周期を同期させるための演算同期情報を含むことを特徴とする請求項１に記載の冗長化システム。
【請求項３】
前記同期情報は、前記第１演算装置が前記入力部から受信した前記入力データの受信履歴である第１受信履歴と、前記第２演算装置が前記入力部から受信した前記入力データの受信履歴である第２受信履歴とを含み、
前記第１演算装置と前記第２演算装置は、前記第１受信履歴と第２受信履歴に共通して含まれる履歴情報のうちの最新の前記履歴情報に対応する前記入力データに対して、前記演算を実行することを特徴とする請求項１または２に記載の冗長化システム。
【請求項４】
前記受信履歴は、複数の前記入力データを識別するための識別情報の履歴であることを特徴とする請求項３に記載の冗長化システム。
【請求項５】
前記複数の演算装置の各々には優先度が設定されており、
前記出力部は、前記複数の演算装置の各々に設定された前記優先度に基づいて、前記複数の演算装置のうちの異常が検知されていない前記演算装置が出力した前記演算結果のうちから、出力する前記演算結果を選択する出力選択部を、有することを特徴とする請求項１〜４のいずれか１項に記載の冗長化システム。
【請求項６】
前記出力部は、前記複数の演算装置の各々の前記演算結果を比較する比較部を、さらに有することを特徴とする請求項５に記載の冗長化システム。
【請求項７】
前記複数の演算装置は、前記入力データに基づいてプラントの制御を実行するよう構成されており、
前記複数の演算装置の各々を前記入力部および前記出力部にそれぞれ接続する、前記通信路とは異なる制御ネットワークを、さらに備えることを特徴とする請求項１〜６のいずれか１項に記載の冗長化システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、同一の入力データに対して同一の演算を実行する冗長化システムに関する。
【背景技術】
【０００２】
従来から、同一の入力データに対して同一の演算を実行することにより、システムの信頼性を向上させた冗長化システムが知られている（特許文献１〜４参照）。例えば、特許文献１〜３には、現用系（制御系）のコントローラ（処理ユニット）および待機系のコントローラを備え、共通の入力部から入力される同一の入力データに対して同一の演算を実行する制御装置（冗長化システム）が開示されている。特許文献１では、現用系の正常時には、入力部から現用系に入力データが入力され、待機系には現用系から入力データが入力される。
【０００３】
特許文献２では、現用系の正常時には、現用系および待機系の各々に入力データが入力部からそれぞれ入力される。より詳細には、特許文献２では、現用系は、その正常時には、プロセスデータに基づく監視や監視結果の出力を行う一方、待機系はプロセスデータに基づく監視のみを実行する。そして現用系の電源断が生じた場合には、待機系が監視結果の出力を起動することで、処理を継続する。これにより、現用系から待機系への切り替わり時において、待機系には出力すべきデータが揃った状態にあるので、データが揃うまでのタイムラグを抑制しつつ、システム全体の動作が途切れないとされる。同様に、特許文献３には、待機系および現用系が共通のバスに接続されたシステムにおいて、現用系にバスのアクセス権が与えられたことを待機系が認識して、現用系についてのバスを送受信される情報を取り込むことにより、現用系と待機系の内部状態を等価にする旨が開示されている。
【０００４】
他方、特許文献４には、複数のモジュールが同一のクロックに従って動作することにより同一の命令（演算）を同期して実行し、多数決回路により最終出力を出力する冗長化システムが開示されている。この特許文献４には、さらに、２つのモジュールを接続し、各モジュールの途中結果を比較器により比較することにより、各モジュールの出力だけでなく、出力に至るまでの処理の途中結果が一致した時のみ出力を出すことも開示されている。これによって、フェールセーフ性が増し、誤りの早期検出が可能とされる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−７０４９６号公報
【特許文献２】特開平２−１５６３３９号公報
【特許文献３】特開平１１−２５９３２５号公報
【特許文献４】特開平１０−１３３９００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献２〜３では、複数のコントローラが入力データに対してそれぞれ演算を実行していくため、現用系と待機系との処理（制御）の進み具体に差異が生じる可能性がある。このため、現用系から待機系への切り替えが生じた際に、制御のための演算の一部のスキップや重複実行などが生じないように、両者の演算の進行を揃える必要性があり、現用系から待機系への切り替えが発生し、待機系が現用系による処理（制御）を引き継ぐまでに遅延（タイムラグ）が生じる可能性がある。また、何らかの原因により一部のコントローラが入力データを入力部から受信できず、入力データの欠落が生じた場合にも、同様にタイムラグが生じる可能性がある。他方、特許文献４は、複数のモジュールが同一のクロックに従って同期して動作することを前提とした冗長システムであり、この前提が成立するシステムに適用範囲が限定される。
【０００７】
上述の事情に鑑みて、本発明の少なくとも一実施形態は、冗長化された複数のコントローラのいずれかに異常が生じた際に遅延なく処理を継続可能な冗長化システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）本発明の少なくとも一実施形態に係る冗長化システムは、
同一の入力データに対して同一の演算を実行する冗長化システムであって、
前記入力データを受信する入力部と、
前記入力部にそれぞれ接続され、前記入力部からそれぞれ入力される同一の前記入力データに対して同一の演算をそれぞれ実行する第１演算装置および第２演算装置を含む複数の演算装置と、
前記複数の演算装置からそれぞれ出力される前記同一の演算による演算結果の少なくとも１つを送信する出力部と、
前記第１演算装置と前記第２演算装置とを接続し、前記第１演算装置および前記第２演算装置が同期して前記同一の入力データに対する前記同一の演算を実行するための同期情報を通信するのに用いる通信路と、を備える。
【０００９】
上記（１）の構成によれば、冗長化システムは、少なくとも２つとなる複数の演算装置を備えており、入力部を介して外部などから取り込んだ入力データは、複数の演算装置にそれぞれ入力されるように構成される。また、複数の演算装置は、通信路を介して交換される同期情報により、同一となるように選択されたデータを用いることで同一の演算を同期して実行し、それらの演算結果のいずれかを選択して外部などに出力する。例えば、複数の演算装置を現用系と待機系とに役割分担する場合には、切り替え時に遅延（タイムラグ）が生じ易いが、上述したように、複数の演算装置が、同一の入力データに対して同一の演算を同期して実行し、そのいずれかの演算結果を選択して出力するよう構成することにより、いずれかの演算装置に異常が発生しても、タイムラグなく制御を継続することができる。
【００１０】
（２）幾つかの実施形態では、上記（１）の構成において、
前記同期情報は、前記複数の演算装置が実行する前記同一の演算の実行周期を同期させるための演算同期情報を含む。
上記（２）の構成によれば、複数の演算装置は、同期情報（演算同期情報）に基づいて、演算の実行周期を同期させる。これによって、複数の演算装置に対して同一の入力データが入力されることにより、同一の入力データに対する同一の演算を同じタイミング（周期）で実行することができる。また、複数の演算装置によって実行された同一の演算による演算結果を出力部が受け取る入力タイミングの揺らぎ（ジッタ）を抑制し、その入力タイミングが揃うように図ることもできる。
【００１１】
（３）幾つかの実施形態では、上記（１）〜（２）の構成において、
前記同期情報は、前記第１演算装置が前記入力部から受信した前記入力データの受信履歴である第１受信履歴と、前記第２演算装置が前記入力部から受信した前記入力データの受信履歴である第２受信履歴とを含み、
前記第１演算装置と前記第２演算装置は、前記第１受信履歴と第２受信履歴に共通して含まれる履歴情報のうちの最新の前記履歴情報に対応する前記入力データに対して、前記演算を実行する。
上記（３）の構成によれば、複数の演算装置は、同期情報（受信履歴）に基づいて、これから実行しようとする演算の対象となる入力データを同一のものに揃える。これによって、複数の演算装置は、同一の入力データに対して同一の演算を確実に実行することができる。例えば、複数の演算装置のうちの一部の演算装置が何らかの理由により入力データを得ていないような場合が生じたとしても、受信履歴に基づいて複数の演算装置間の同期をとることができる。
【００１２】
（４）幾つかの実施形態では、上記（３）の構成において、
前記受信履歴は、複数の前記入力データを識別するための識別情報の履歴である。
上記（４）の構成によれば、受信履歴を、時間の経過に従って入力部から順次取得する入力データの識別情報（例えばＩＤなど）のリストなどの履歴とすることにより、受信履歴のデータ量を小さくする。これによって、同期情報を通信するための通信路の通信容量を大容量化することなく、同期情報を高速に通信することができ、同期処理によって処理（制御）の遅延が生じるのを防止することができる。例えば受信履歴が入力データそのものを時系列で並べたようなものである場合には、受信履歴のデータ量がその分だけより大きくなるので、演算装置の数が増えるほど受信履歴の通信により多くの時間を要するが、上述のように構成することにより、受信履歴の通信をより高速に行うことができる。
【００１３】
（５）幾つかの実施形態では、上記（１）〜（４）の構成において、
前記複数の演算装置の各々には優先度が設定されており、
前記出力部は、前記複数の演算装置の各々に設定された前記優先度に基づいて、前記複数の演算装置のうちの異常が検知されていない前記演算装置が出力した前記演算結果のうちから、出力する前記演算結果を選択する出力選択部を、有する。
上記（５）の構成によれば、異常が検知されておらず、正常状態と判断される演算装置が出力した演算結果の中から、各演算装置に設定された優先度に基づいて、１つの演算結果を選択することができる。
【００１４】
（６）幾つかの実施形態では、上記（５）の構成において、
前記出力部は、前記複数の演算装置の各々の前記演算結果を比較する比較部を、さらに有する。
上記（６）の構成によれば、複数の演算装置の各々の演算結果を比較することにより、演算結果の不一致を検出することができる。よって、演算結果の不一致を検出した場合には、複数の演算装置による演算結果が一致するように対処することにより、冗長構成を維持することができる。
【００１５】
（７）幾つかの実施形態では、上記（１）〜（６）の構成において、
前記複数の演算装置は、前記入力データに基づいてプラントの制御を実行するよう構成されており、
前記複数の演算装置の各々を前記入力部および前記出力部にそれぞれ接続する、前記通信路とは異なる制御ネットワークを、さらに備える。
上記（７）の構成によれば、複数の演算装置の各々と、入力部および出力部（入出力部）とは、プラントの制御ネットワークで相互に接続されており、第１演算装置と第２演算装置とを接続する通信路とは、別の通信路で接続される。これによって、第１演算装置と第２演算装置との同期情報の通信を高速に行うことができる。
【発明の効果】
【００１６】
本発明の少なくとも一実施形態によれば、冗長化された複数の演算装置のいずれかに異常が生じた際に遅延なく処理を継続可能な冗長化システムが提供される。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係る冗長化システムの構成を概略的に示す図である。
【図２】本発明の他の一実施形態に係る冗長化システムの構成を概略的に示す図であり、出力部が複数のモジュールに機能分散されている。
【図３】本発明の一実施形態に係る同期情報である受信履歴を示す図であり、（ａ）は入力データそのもの履歴、（ｂ）は入力データの識別情報の履歴である。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して本発明の幾つかの実施形態について説明する。ただし、実施形態として記載されている又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
例えば、「ある方向に」、「ある方向に沿って」、「平行」、「直交」、「中心」、「同心」或いは「同軸」等の相対的或いは絶対的な配置を表す表現は、厳密にそのような配置を表すのみならず、公差、若しくは、同じ機能が得られる程度の角度や距離をもって相対的に変位している状態も表すものとする。
例えば、「同一」、「等しい」及び「均質」等の物事が等しい状態であることを表す表現は、厳密に等しい状態を表すのみならず、公差、若しくは、同じ機能が得られる程度の差が存在している状態も表すものとする。
例えば、四角形状や円筒形状等の形状を表す表現は、幾何学的に厳密な意味での四角形状や円筒形状等の形状を表すのみならず、同じ効果が得られる範囲で、凹凸部や面取り部等を含む形状も表すものとする。
一方、一の構成要素を「備える」、「具える」、「具備する」、「含む」、又は、「有する」という表現は、他の構成要素の存在を除外する排他的な表現ではない。
【００１９】
図１は、本発明の一実施形態に係る冗長化システム１の構成を概略的に示す図である。また、図２は、本発明の他の一実施形態に係る冗長化システム１の構成を概略的に示す図であり、出力部２３が複数のモジュールに機能分散されている。
【００２０】
図１〜図２に示すように、冗長化システム１は、冗長化された複数の演算装置３の各々を用いて、同一の入力データＤに対して同一の演算を実行するシステム（装置）である。図１〜図２に示す実施形態では、冗長化システム１は、プラント８の制御を実行する例えば分散制御システム（ＤＣＳ：Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ）やＰＬＣ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）などの制御装置である。より詳細には、冗長化システム１は、プラント８に設置された各種の計測器によって計測される温度、流量、圧力など計測データやイベントデータなどとなるプラント８の状態データを収集すると共に、収集した１以上の状態データを入力データＤとして各種の演算を実行し、その演算結果Ｒをダンパ、制御弁（ＣＶ）などの操作端に送信することにより、プラント８の自動制御を実行する。
【００２１】
また、プラント８の制御装置（冗長化システム１）は、図示しない通信ネットワークを介して中央操作室に設置されたイーサネット（登録商標）などのＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に接続されており、プラント８の操作及び監視を行う機能を提供するオペレータステーション（ＯＰＳ）といった、上記のＬＡＮに接続されたコンピュータ機器との通信が可能に構成される。そして、冗長化システム１は、上記の通信ネットワーク（不図示）を介した通信を行うための例えばＬＡＮカードなどのインターフェース部（不図示）を用いて、その演算結果Ｒや入力データＤなどの例えばＯＰＳへの送信や、ＯＰＳなどからの操作命令の受信などが可能となっている。
【００２２】
以下、冗長化システム１がプラント８の制御装置である場合を例に、冗長化システム１を詳細に説明する。図１〜図２に示すように、冗長化システム１は、入力部２１と、複数の演算装置３と、出力部２３と、通信路４と、を備える。
【００２３】
入力部２１は、冗長化システム１による処理（制御）に用いる入力データＤを受信するよう構成される。つまり、入力部２１は、プラント８などとなる外部から送信される入力データＤをシステム内部に取り込むための、冗長化システム１のインターフェースとなる機能部である。
【００２４】
複数の演算装置３は、それぞれ、上記の入力部２１から入力される入力データＤに応じて、各種の演算を実行するよう構成される。図１〜図２に示すように、複数の演算装置３は、入力部２１にそれぞれ接続されており、それぞれ、入力部２１から入力（送信）される入力データＤを受信して演算部３１で演算を実行することにより、入力部２１からそれぞれ入力される同一の入力データＤに対して同一の演算をそれぞれ実行するよう構成される。また、複数の演算装置３は、出力部２３にそれぞれ接続されており、各々の演算結果Ｒを出力部２３に出力する。図１〜図２に示す実施形態では、冗長化システム１が備える演算装置３の数は２であるが、３以上であっても良い。
【００２５】
また、上記の演算部３１は、本実施形態では、図示しないＣＰＵ（プロセッサ）や、ＲＯＭやＲＡＭといったメモリを含んで構成されており、メモリ（主記憶装置）にロードされたプログラムの命令に従ってＣＰＵが動作（データの演算など）することで、各種の演算を実行するよう構成される。また、上記の演算は、算術論理演算命令、メモリ操作命令、条件分岐命令など、フェッチ、デコード、実行などの命令サイクルで実行する１つの命令で構成されても良いし、所定の処理を行うための複数の命令で構成されても良い。なお、他の幾つかの実施形態では、演算部３１は、入力データＤに対して並列に演算可能な１以上の演算回路（ロジック回路）で構成されても良い。
【００２６】
出力部２３は、複数の演算装置３からそれぞれ出力される同一の演算による演算結果Ｒの少なくとも１つを外部などに送信するよう構成される。つまり、出力部２３は、外部に対してデータを出力（送信）するための、冗長化システム１のインターフェースとなる機能部である。また、出力部２３は、複数の演算装置３からそれぞれ出力される複数の演算結果Ｒの全てを出力しても良い。あるいは、出力部２３は、上記の複数の演算結果Ｒのいずれか１つを選択し、送信しても良い。例えば、後述するように、複数の演算装置３が出力する同一の演算による演算結果Ｒが同一の演算結果とならない場合などには、出力部２３は、複数の演算装置３に設定された優先度になどに基づいて演算結果Ｒの選択を行っても良いし、あるいは、多数決により演算結果Ｒの選択を行っても良い。また、図１〜図２に示すように、入力部２１、および出力部２３の少なくとも一部の機能（回路）が入出力部２として一体化されても良い。
【００２７】
要するに、複数の演算装置３は、入力部２１を介して入力データＤをそれぞれ取得し、入力データＤに応じた各種の演算を実行する。こうして得られる演算結果Ｒが出力部２３により外部に送信される。つまり、冗長化システム１において、複数の演算装置３は、現用系（制御系）と待機系とに役割分担されておらず、それぞれが入力データＤに基づく演算を実行し、その演算結果Ｒを出力部２３へ出力する。
【００２８】
図１に示す実施形態では、上述した入力部２１および出力部２３は、両者が一体化された入出力部２となっており、図２に示す実施形態では、出力部２３の機能の一部（通信制御部）が入力部と一体化されている。そして、複数の演算装置３の各々や、入力部２１、出力部２３（入出力部２）は、それぞれ制御ネットワーク６（ＩＯバス）に接続されており、制御ネットワーク６を介して入力データＤや演算結果Ｒの送受信を行うようになっている。より詳細には、プラント８には通常複数のフィールド機器８１が設置されるが、入力部２１は、各フィールド機器８１から送信されるデータを受信可能なように複数の個別入力部を有している。同様に、出力部２３は、各フィールド機器８１に対して演算結果Ｒを送信可能なように複数の個別出力部を有している。そして、複数のフィールド機器８１が、複数の個別入力部および個別出力部のセットのいずれかに接続されることにより、冗長化システム１と各フィールド機器８１とが通信可能に接続される。
【００２９】
ただし、本実施形態に本発明は限定されない。他の幾つかの実施形態では、複数の演算装置３および入出力部２（入力部２１および出力部２３）は、ＰＣＩバスなどの共通バスにそれぞれ接続されても良い。
【００３０】
上述した構成を備え冗長化システム１は、さらに、複数の演算装置３による演算を同期して実行するために、通信路４を備える。
通信路４は、複数の演算装置３のうちの任意の２つの演算装置３となる第１演算装置３ａと、第２演算装置３ｂとを接続し、第１演算装置３ａおよび第２演算装置３ｂが同期して同一の入力データＤに対する同一の演算を実行するために用いる同期情報Ｔを通信するのに用いられる。そして、第１演算装置３ａと第２演算装置３ｂは、通信路４を介して得られる同期情報Ｔに基づいて、その演算の実行タイミングを同期させる。同期情報Ｔは、周期的に通信されても良い。同期情報Ｔの詳細については後述する。
【００３１】
また、図１〜図２に示す実施形態では、第１演算装置３ａおよび第２演算装置３ｂは、通信路４を介したシリアル通信により、同期情報Ｔの通信を実行する形態になっている。図１〜図２に示すように、通信路４を２本のライン（通信路）で全二重通信可能に構成することにより、伝送効率を向上させている。ただし、本実施形態に本発明は限定されず、他の幾つかの実施形態では、通信路４は、制御ネットワーク６により構成されていても良い。
【００３２】
なお、冗長化システム１が３以上の演算装置３を備える場合には、複数の演算装置３を通信路４でメッシュ状に接続しても良いし、数珠繋ぎに接続しても良い。あるいは、後述する演算装置３の優先度の最も高いものに対して、他の演算装置３を通信路４でそれぞれ接続しても良い（１対多の接続）。また、複数の演算装置３の各々や入出力部２は、それぞれが１つのモジュール（モジュールカード）で構成されても良い（図１〜図２参照）。冗長化システム１は、ガスタービン制御、ガスエンジン制御など、他の制御を実行するための制御装置であっても良い。
【００３３】
上記の構成によれば、冗長化システム１は、少なくとも２つとなる複数の演算装置３を備えており、入力部２１を介して外部などから取り込んだ入力データＤは、複数の演算装置３にそれぞれ入力されるように構成される。また、複数の演算装置３は、通信路４を介して交換される同期情報Ｔにより、同一となるように選択されたデータを用いることで同一の演算を同期して実行し、それらの演算結果Ｒのいずれかを選択して外部などに出力する。例えば、複数の演算装置３を現用系と待機系とに役割分担する場合には、切り替え時に遅延（タイムラグ）が生じ易いが、上述したように、複数の演算装置３が、同一の入力データＤに対して同一の演算を同期して実行し、そのいずれかの演算結果を選択して出力するよう構成することにより、いずれかの演算装置３に異常が発生しても、タイムラグなく制御を継続することができる。
【００３４】
次に、同期情報Ｔに関する幾つかの実施形態について、説明する。図３は、本発明の一実施形態に係る同期情報Ｔである受信履歴Ｈを示す図であり、（ａ）は入力データＤそのもの履歴、（ｂ）は入力データＤの識別情報の履歴である。
幾つかの実施形態では、同期情報Ｔは、複数の演算装置３が実行する同一の演算の実行周期を同期させるための演算同期情報を含む。本実施形態では、複数の演算装置３は、それぞれ、演算の実行タイミングを計る実行周期用タイマを用いて、周期的に演算を実行するように構成されており、この演算の実行周期を、通信路４を介して通信される同期情報Ｔを用いて同期させるように構成される。
【００３５】
図１〜図２に示す実施形態では、複数（図１〜図２では２台）の演算装置３（３ａ、３ｂ）は、それぞれ、通信路４を介して同期情報Ｔを送受信するための同期通信部３２を有しており、ＰＴＰ（Ｐｒｅｃｉｓｉｏｎ  Ｔｉｍｅ  Ｐｒｏｔｏｃｏｌ）により、相互の時刻情報を同期せさることにより、演算の実行タイミングを同期させるようになっている。ＰＴＰの実行によって、第１演算装置３ａ（マスター側）は、第２演算装置３ｂ（スレーブ側）に対してＳｙｎｃメッセージの送信時刻と、第２演算装置３ｂからのＤｅｌａｙ  Ｒｅｑｕｅｓｔメッセージの受信時刻などを送信するが、これらの送信情報が同期情報Ｔである。そして、第２演算装置３ｂは、この同期情報Ｔを用いて実行周期用タイマを第１演算装置３ａのものに同期させ、実行周期用タイマの満了の度に演算を実行するなどするよう構成されている。つまり、複数の演算装置３の内部時計が一致されることで、実行周期用タイマによるカウントの開始時刻なども一致される。
【００３６】
上記の構成によれば、複数の演算装置３は、同期情報Ｔに基づいて、演算の実行周期を同期させる。これによって、複数の演算装置３に対して同一の入力データＤが入力されることにより、同一の入力データＤに対する同一の演算を同じタイミング（周期）で実行することができる。また、複数の演算装置３によって実行された同一の演算による演算結果Ｒを出力部２３が受け取る入力タイミングの揺らぎを抑制し、その入力タイミングが揃うように図ることもできる。
【００３７】
他の幾つかの実施形態では、図３に示すように、同期情報Ｔは、第１演算装置３ａが入力部２１から受信した入力データＤの受信履歴Ｈである第１受信履歴Ｈａと、第２演算装置３ｂが入力部２１から受信した入力データＤの受信履歴Ｈである第２受信履歴Ｈｂとを含んでいる。具体的には、第１演算装置３ａは、第１受信履歴Ｈａを第２演算装置３ｂに送信し、第２演算装置３ｂは、第２受信履歴Ｈｂを第１演算装置３ａに送信することにより、第１演算装置３ａおよび第２演算装置３ｂは、それぞれ、第１受信履歴Ｈａおよび第２受信履歴Ｈｂを得る。そして、第１演算装置３ａと第２演算装置３ｂは、それぞれ、第１受信履歴Ｈａと第２受信履歴Ｈｂとに共通して含まれる履歴情報ｈ（共通履歴情報ｈｃ）のうちの最新の履歴情報ｈに対応する入力データＤに対して、演算を実行する。つまり、受信履歴Ｈは、１以上の履歴情報ｈで構成されており、複数の演算装置３は、受信履歴Ｈに基づいて入力データＤを同期させ、同一の演算を実行する。
【００３８】
受信履歴Ｈは、各演算装置３が入力部２１から入力された入力データＤの順序を示す情報である。受信履歴Ｈには、最新のものからｎ個（ｎは１以上の整数）の履歴情報ｈが含まれても良い。そして、各演算装置３は、自身の受信履歴Ｈと、他の演算装置３の受信履歴Ｈを比較することにより、その時々の演算を同一の入力データＤを用いて実行することが可能となる。また、各入力データＤについて上記の比較を行うことにより、入力データＤの欠落を検知することも可能となる。入力データＤの欠落を検知した場合には、それ以前に一致していた入力データＤを用いて演算を行うなどすることにより、入力データＤの同期をとることが可能となる。図１〜図２に示す実施形態では、受信履歴Ｈは、受信履歴作成部３３で作成される。
【００３９】
より具体的には、幾つかの実施形態では、図３（ａ）に示すように、受信履歴Ｈは、時間の経過に伴って入力部２１から順次入力される複数の入力データＤそのものが時系列で並べられたリストであっても良い。つまり、上記の各履歴情報ｈは入力データＤそのものとなる。これによって、複数の演算装置３のいずれかで入力データＤの消失が生じても、他の演算装置３の受信履歴Ｈに基づいてその検知や、消失した入力データＤの取得が可能となる。
【００４０】
あるいは、他の幾つかの実施形態では、図３（ｂ）に示すように、受信履歴Ｈは、時間の経過に伴って入力部２１から順次入力される複数の入力データＤを識別するための識別情報の履歴（リスト）であっても良い。つまり、受信履歴Ｈは、入力データＤそのものの履歴ではなく、より情報量が小さくされたＩＤ情報などの識別情報の履歴であり、上記の各履歴情報ｈは識別情報となる。これによって、同期情報Ｔを通信するための通信路４の通信容量を大容量化することなく、同期情報Ｔを高速に通信することができ、同期処理によって処理（制御）の遅延が生じるのを防止することが可能となる。上述したような、受信履歴Ｈが入力データＤの履歴である場合には、受信履歴Ｈのデータ量がその分だけより大きくなるので、演算装置３の数が増えるほど受信履歴Ｈの通信により多くの時間を要するが、上述のように構成することにより、受信履歴Ｈの通信をより高速に行うことが可能となる。
【００４１】
この識別情報は、受信履歴Ｈの中において一意である必要があり、入力部２１で生成して入力データＤの送信時に付加しても良いし、演算装置３で生成しても良い。例えば、入力部２１が入力データＤを複数の演算装置３にそれぞれ送信する際に、例えばシーケンシャルな番号などの情報や、時刻情報（入力データＤの送信時刻や受信時刻など）あるいは時刻情報に基づいて作成可能な情報を生成し、ＩＤ情報として一緒に送っても良い。例えば、入力データＤから識別情報を算出するための所定の演算を複数の演算装置３間で共有し、各演算装置３が、受信した入力データＤに対してそれぞれこの所定の演算を行うことにより、識別情報を算出しても良いし、入力データＤの受信時刻情報に基づく情報を識別情報としても良い。これらの組合せであっても良い。入力データＤが同じであれば所定の演算をすると、同一の情報が得られる。
【００４２】
上記の構成によれば、複数の演算装置３は、同期情報Ｔ（受信履歴Ｈ）に基づいて、これから実行しようとする演算の対象となる入力データＤを同一のものに揃える。これによって、複数の演算装置３は、同一の入力データＤに対して同一の演算を確実に実行することができる。例えば、複数の演算装置３のうちの一部の演算装置３が何らかの理由により入力データＤを得ていないような場合が生じたとしても、受信履歴Ｈに基づいて複数の演算装置３間の同期をとることができる。
【００４３】
その他の幾つかの実施形態では、上記の２つの実施形態を組み合わせても良い。図１〜図２に示す実施形態では、同期情報Ｔには、上述した演算同期情報および受信履歴Ｈ（識別情報の履歴）が含まれており、複数の演算装置３が、同じ演算の実行周期で、同一の入力データＤを対象に同一の演算を確実に実行するように構成されている。
【００４４】
次に、出力部２３に関する幾つかの実施形態について、説明する。
幾つかの実施形態では、図１〜図２に示すように、出力部２３は、複数の演算装置３に設定された優先度に基づいて、外部に送信する演算結果Ｒの選択を行うよう構成される。すなわち、複数の演算装置３の各々には優先度が設定されている。そして、出力部２３は、複数の演算装置３の各々に設定された優先度に基づいて、複数の演算装置３のうちの異常が検知されていない１または複数の演算装置３が出力した演算結果Ｒのうちから、出力する演算結果Ｒを選択する出力選択部２４を、有する。
【００４５】
この際、各演算装置３の異常は、演算装置３毎の自己診断機能などにより検知しても良い。この場合、出力選択部２４は、各演算装置３の異常の検知結果が入力されることにより、異常が検知されていない正常状態の演算装置３と異常状態の演算装置３とを判別しても良い。あるいは、出力選択部２４は、各演算装置３の異常を、タイムアウト時間により検知しても良い。この場合には、出力選択部２４は、所定のタイムアウト時間を経過する前に演算結果Ｒを入力した演算装置３が、異常が検知されていない正常状態の演算装置と判別する。
【００４６】
図１〜図２に示す実施形態では、第１演算装置３ａの優先度が１であり、第２演算装置３ｂの優先度が２であり、第２演算装置３ｂの優先度は第１演算装置３ａの優先度よりも低いものとなっている。よって、出力選択部２４は、第１演算装置３ａに異常が検出されていない限り、第１演算装置３ａによる演算結果Ｒを選択し、外部に送信する。第１演算装置３ａの異常が検知された場合には、出力選択部２４は、第２演算装置３ｂによる演算結果Ｒを選択し、外部に送信することになる。
【００４７】
また、図１に示す実施形態では、出力選択部２４および比較部２５（後述）の機能部が、フィールド機器８１と接続する出力部２３の機能部分と同一のモジュールに実装されており、機能間の接続が簡易化されている。他方、図２に示す実施形態では、出力選択部２４および比較部２５（後述）が、フィールド機器８１と接続する出力部２３の機能部とは異なるモジュールに実装され、出力部２３が２つのモジュールに機能分散されている。この場合には、冗長化システム１が、入出力部２を複数備える場合に、出力選択部２４および比較部２５（後述）を実装するモジュールを、フィールド機器８１と接続する機能を実装するモジュールに対して共通して設けることが可能となり、コスト面で有利となる。
【００４８】
上記の構成によれば、異常が検知されておらず、正常状態と判断される演算装置３が出力した演算結果Ｒの中から、各演算装置３に設定された優先度に基づいて、１つの演算結果Ｒを選択することができる。
【００４９】
また、幾つかの実施形態では、出力部２３は、複数の演算装置３の各々の演算結果Ｒを比較する比較部２５を、さらに有しても良い。複数の演算装置３の各々の演算結果Ｒを比較することにより、演算結果Ｒの不一致を検出することができる。よって、演算結果Ｒの不一致を検出した場合には、原因に応じた対処を行うことができ、複数の演算装置３による演算結果Ｒが一致するように対処することにより、冗長構成を維持することができる。
【００５０】
図１〜図２に示す実施形態では、複数の演算装置３の演算結果Ｒが比較部２５に入力されるように構成されている。また、上述した出力選択部２４には、複数の演算装置３の演算結果Ｒおよび比較部２５による比較結果Ｃが入力されるように構成されている。そして、出力選択部２４は、比較部２５による比較結果Ｃが、複数の演算装置３の各々の演算結果Ｒが同じであることを示す場合、および、異なることを示す場合に両方において、優先度が最も高い演算装置３（図１〜図２では、第１演算装置３ａ）の演算結果Ｒを選択し、送信する。なお、優先度が最も高い演算装置３に異常が検知されている場合には、出力選択部２４は、次に優先度が高い演算装置３（図１〜図２では、第２演算装置３ｂ）の演算結果Ｒを選択し、送信する。
【００５１】
また、１以上の演算装置３が既に演算を実行している時（稼働中）に、他の演算装置３を参入（追加）させるような場合には、稼働側と参入側とで比較結果は異なることが想定される。このような場合には、比較部２５で不一致が検出されることになるが、出力選択部２４は、参入側の優先度を稼働側よりも低くすることにより、参入する際の影響を受けることはない。なお、この場合、参入する演算装置３は、稼働中の演算装置３の受信履歴Ｈを、通信路４を介して受信して、受信履歴Ｈおよび演算結果Ｒが一致することを確認できた場合に、参入が完了したと判断することが可能となる。なお、演算結果Ｒの一致、不一致は、比較部２５の結果により判断可能である。
【００５２】
本発明は上述した実施形態に限定されることはなく、上述した実施形態に変形を加えた形態や、これらの形態を適宜組み合わせた形態も含む。
【符号の説明】
【００５３】
１      冗長化システム
２      入出力部
２１    入力部
２３    出力部
２４    出力選択部
２５    比較部
３      コントローラ
３ａ    第１演算装置
３ｂ    第２演算装置
３１    演算部
３２    同期通信部
３３    受信履歴作成部
４      通信路
６      制御ネットワーク
８      プラント
８１    フィールド機器
Ｄ      入力データ
Ｒ      演算結果
Ｔ      同期情報
Ｈ      受信履歴
Ｈａ    第１受信履歴
Ｈｂ    第２受信履歴
ｈ      履歴情報
ｈｃ    共通履歴情報
Ｃ      比較結果
【図１】
2020021341.tif 000003
【図２】
2020021341.tif 000004
【図３】
2020021341.tif 000005