(57)【要約】【課題】内部の演算部と出力部のいずれかに故障が発生した場合に、消費電力を低減させ且つ故障した演算部または出力部の交換を容易化する。【解決手段】一の実施形態によれば、多重化制御装置は、同一の入力信号を入力値に変換する三つ以上の入力部を備える。多重化制御装置は、対応する前記入力部から前記入力値を取得し、取得した入力値を演算して出力値を生成する三つ以上の演算部を備える。多重化制御装置は、対応する前記演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つ以上の出力部を備える。多重化制御装置は、前記三つ以上の出力部が生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置を制御する制御信号として前記被制御対象装置へ出力する多数決部を備える。前記三つ以上の出力部と前記三つ以上の演算部のうち少なくとも一つは、前記演算部の各々から出力値を取得し、取得した複数の前記出力値を用いて、故障した演算部を検出し、前記故障した演算部を停止させる。【選択図】図１
2016103110.tif 000002
【特許請求の範囲】
【請求項１】
同一の入力信号を入力値に変換する三つ以上の入力部と、
対応する前記入力部から前記入力値を取得し、取得した入力値を演算して出力値を生成する三つ以上の演算部と、
対応する前記演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つ以上の出力部と、
前記三つ以上の出力部が生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置を制御する制御信号として前記被制御対象装置へ出力する多数決部と、
を備え、
前記三つ以上の出力部と前記三つ以上の演算部のうち少なくとも一つは、前記演算部の各々から出力値を取得し、取得した複数の前記出力値を用いて、故障した演算部を検出し、前記故障した演算部を停止させる
多重化制御装置。
【請求項２】
前記演算部それぞれは出力部それぞれとバスを介して接続されており、
前記演算部は、前記バスを介して前記出力値を前記出力部それぞれに出力し、
前記出力部は、前記演算部それぞれから取得した複数の前記出力値同士を比較することにより誤った出力値を生成した演算部を特定し、前記特定した演算部を停止させる
請求項１に記載の多重化制御装置。
【請求項３】
前記演算部それぞれは、互いにバスを介して接続されており、
前記演算部は、前記出力値をバスを介して他の演算部へ出力し、自身が生成した出力値と他の複数の演算部が生成した複数の出力値とを比較し、比較の結果、自身が生成した出力値だけが異なる場合、自ら停止する
請求項１に記載の多重化制御装置。
【請求項４】
前記演算部から出力される出力値に毎周期変化する毎周期変化情報が付与されており、
前記出力部または前記演算部は、前記毎周期変化情報を用いて、前記演算部が故障したか否かを判定する
請求項１から３のいずれか一項に記載の多重化制御装置。
【請求項５】
同一の入力信号を入力値に変換する三つ以上の入力部と、
対応する前記入力部から前記入力値を取得し、取得した入力値を演算して出力値を生成する三つ以上の演算部と、
対応する前記演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つ以上の出力部と、
前記三つ以上の出力部が生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置を制御する制御信号として前記被制御対象装置へ出力する多数決部と、
を備え、
前記三つ以上の出力部と前記三つ以上の演算部のうち少なくとも一つは、前記出力部の各々から出力信号を取得し、取得した複数の前記出力信号を用いて、故障した出力部を検出し、前記故障した出力部を停止させる
多重化制御装置。
【請求項６】
前記出力部それぞれは、演算部それぞれとバスを介して接続されており、
前記出力部は、前記バスを介して前記出力信号を前記演算部それぞれに出力し、
前記演算部は、前記出力部それぞれから取得した複数の前記出力信号同士を比較することにより誤った出力信号を生成した出力部を特定し、前記特定した出力部を停止させる
請求項５に記載の多重化制御装置。
【請求項７】
前記出力部それぞれは、互いにバスを介して接続されており、
前記出力部は、前記出力信号をバスを介して他の出力部へ出力し、自身が生成した出力信号と他の複数の出力部が生成した複数の出力信号とを比較し、比較の結果、自身が生成した出力信号だけが異なる場合、自ら停止する
請求項５に記載の多重化制御装置。
【請求項８】
前記演算部それぞれと前記出力部それぞれの動作を監視する監視部と、
前記監視部が前記演算部または前記出力部の故障を検出した場合、故障を報知する報知部と、
を更に備える請求項１から７のいずれか一項に記載の多重化制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、多重化制御装置に関する。
【背景技術】
【０００２】
近年、ＩＥＣ（国際電気標準会議）によって、プロセス産業における電気、電子、プログラマブル電子の機能安全に関する国際規格であるＩＥＣ６１５０８が制定された。更に、特定の産業用機能安全システムにおいては、特定の用途に合わせた派生規格が定められている。
【０００３】
例えば、安全計装システムについては、システムの設計者、インテグレータまたはユーザに対して、プロセス用アプリケーション規格ＩＥＣ６１５１１が定められている。これらの規格では、システムの設計、保守、及び廃棄に至るライフサイクルにおける安全を評価し、リスク軽減の要求レベルである安全度水準（SIL：Safety Integrity Level）を定量的な評価尺度として定めている。
【０００４】
これらの背景を踏まえ、一般に制御装置は安全性（信頼性）と運転の継続性が求められる。プラントや工場等の制御装置では誤出力などによる異常動作を防ぐことが重要であり、異常時には正常に安全停止することが求められる。一方、システムを極力停止したくないという要望もあり、構成要素の一つが故障する単一故障でも出力を誤らずに処理を継続できる制御装置が望まれている。このような装置として入力部、演算部、出力部を３重化し、三つの出力結果の多数決を取り出力を行う多重化制御装置が知られている。
【０００５】
従来の多重化制御装置は、例えば入力信号を、それぞれ入力部により入力値に変換し、演算部により制御演算を行う。制御演算により得られた出力値を、出力部により出力信号に変換し、多数決部により多数決演算を行い、過半数が一致する出力信号を出力装置へ出力する。このようにすることで、入力部、演算部、出力部のいずれかに異常が発生し、正しい出力を行えない場合においても、多重化制御装置は、正しい出力信号を出力することが可能である。
【０００６】
上述した多重化制御装置では、単一のモジュールが故障する単一故障までは運転継続が可能ではあるが、故障したモジュール（以下、故障モジュールという）は、間違った値を出力し続けたままであるため、消費電力が浪費されるという問題がある。更に、故障モジュールは故障しても動作し続けたままであるため、故障モジュールの交換が困難であるという問題もある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１７５３０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の実施形態が解決しようとする課題は、内部の演算部と出力部のいずれかに故障が発生した場合に、消費電力を低減させ且つ故障した演算部または出力部の交換を容易化することができる多重化制御装置を提供することである。
【課題を解決するための手段】
【０００９】
一の実施形態によれば、多重化制御装置は、同一の入力信号を入力値に変換する三つ以上の入力部を備える。多重化制御装置は、対応する前記入力部から前記入力値を取得し、取得した入力値を演算して出力値を生成する三つ以上の演算部を備える。多重化制御装置は、対応する前記演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つ以上の出力部を備える。多重化制御装置は、前記三つ以上の出力部が生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置を制御する制御信号として前記被制御対象装置へ出力する多数決部を備える。前記三つ以上の出力部と前記三つ以上の演算部のうち少なくとも一つは、前記演算部の各々から出力値を取得し、取得した複数の前記出力値を用いて、故障した演算部を検出し、前記故障した演算部を停止させる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態における多重化制御装置１の構成を示す図である。
【図２】第１の実施形態における出力部１６Ａ〜１６Ｃの処理を示すフローチャートである。
【図３】第１の実施形態における演算部１３Ａ〜１３Ｃの処理を示すフローチャートである。
【図４】演算部１３Ａ〜１３Ｃから伝送されるフレームの一例を示す図である。
【図５】演算部１３または出力部１６の処理の一部を示すフローチャートである。
【図６】第２の実施形態における演算部１３Ａ〜１３Ｃの処理を示すフローチャートである。
【図７】第２の実施形態における出力部１６Ａ〜１６Ｃの処理を示すフローチャートである。
【図８】出力部１６Ａ〜１６Ｃから伝送されるフレームの一例を示す図である。
【図９】第３の実施形態における多重化制御装置２の構成を示す図である。
【図１０】第３の実施形態における監視装置２１の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
以下、図面を参照しながら、本発明の実施形態について説明する。まず、図１を用いて、第１の実施形態における多重化制御装置１の構成について説明する。図１は、第１の実施形態における多重化制御装置の構成を示す図である。図１に示すように、入力部１２Ａ、１２Ｂ及び１２Ｃと、演算部１３Ａ、１３Ｂ及び１３Ｃと、出力部１６Ａ、１６Ｂ及び１６Ｃと、多数決部１８とを備える。
【００１２】
入力部１２Ａは、入力が検出部１１の出力に接続され、出力が演算部１３Ａの入力に接続されている。同様に、入力部１２Ｂは、入力が検出部１１の出力に接続され、出力が演算部１３Ｂの入力に接続されている。同様に、入力部１２Ｃは、入力が検出部１１の出力に接続され、出力が演算部１３Ｃの入力に接続されている。
【００１３】
入力部１２Ａ〜１２Ｃは、検出部１１から入力された同一の入力信号を入力値に変換する。例えば、入力部１２Ａ〜１２Ｃはデジタル値を入力されるＤＩモジュールである。ここで、検出部１１は、例えば、センサであり、入力信号は、センサで検出されて得られたセンシング信号である。
【００１４】
演算部１３Ａ〜１３Ｃそれぞれは出力部１６Ａ〜１６Ｃそれぞれとバスを介して接続されている。また、演算部１３Ａ〜１３Ｃそれぞれは、互いにバスを介して接続されている。また、出力部１６Ａ〜１６Ｃそれぞれは、互いにバスを介して接続されている。これにより、演算部１３Ａ〜１３Ｃ、出力部１６Ａ〜１６Ｃは相互に情報を伝送可能である。
【００１５】
演算部１３Ａ〜１３Ｃは、対応する入力部１２Ａ〜１２Ｃのいずれかから入力値を取得し、取得した入力値を演算して出力値を生成する。そして、演算部１３Ａ〜１３Ｃは、例えば、バスを介して出力値を出力部１６Ａ〜１６Ｃそれぞれに出力する。演算部１３Ａ〜１３Ｃは例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を搭載した演算モジュールである。ここで、演算部１３Ａは、演算実行部１４Ａと判定部１５Ａとを備え、演算部１３Ｂは、演算実行部１４Ｂと判定部１５Ｂを備え、演算部１３Ｃは、演算実行部１４Ｃと判定部１５Ｃとを備える。演算は、演算実行部１４Ａ〜１４Ｃで行われる。
【００１６】
出力部１６Ａは、出力が多数決部１８の第１の入力と接続されている。同様に、出力部１６Ｂは、出力が多数決部１８の第２の入力と接続されている。同様に、出力部１６Ｃは、出力が多数決部１８の第３の入力と接続されている。出力部１６Ａ〜１６Ｃは、対応する演算部１３Ａ〜１３Ｃのいずれかから出力値を取得し、取得した出力値を出力信号に変換して出力する。出力部１６Ａ〜１６Ｃは、例えば、デジタル値を出力するＤＯモジュールである。出力部１６Ａは判定部１７Ａを備え、出力部１６Ｂは判定部１７Ｂを備え、出力部１６Ｃは判定部１７Ｃを備える。
【００１７】
多数決部１８は、出力部１６Ａ〜１６Ｃが生成した出力信号のうち、過半数が一致する出力信号を、被制御対象装置１９を制御する制御信号として被制御対象装置１９へ出力する。
【００１８】
出力部１６Ａ〜１６Ｃと演算部１３Ａ〜１３Ｃの少なくとも一方は、演算部１３Ａ〜１３Ｃの各々から出力値を取得し、取得した複数の出力値を用いて、故障した演算部を検出し、故障した演算部を停止させる。
【００１９】
その一例として、出力部１６Ａ〜１６Ｃは、演算部１３Ａ〜１３Ｃそれぞれから取得した複数の出力値同士を比較することにより誤った出力値を生成した演算部１３Ａ〜１３Ｃを特定し、特定した演算部１３Ａ〜１３Ｃを停止させてもよい。この誤った出力値を生成した演算部１３Ａ〜１３Ｃの特定は、判定部１７Ａ〜１７Ｃで行われる。
【００２０】
以上の構成を有する多重化制御装置１の動作について以下、説明する。図２は、第１の実施形態における出力部１６Ａ〜１６Ｃの処理を示すフローチャートである。前提として、演算部１３Ａは出力値を後段の出力部１６Ａ〜１６Ｃへ出力し、演算部１３Ｂ〜１３Ｃも同様に出力値を後段の出力部１６Ａ〜１６Ｃへ出力するものとする。
【００２１】
（ステップＳ１０１）まず、出力部１６Ａ〜１６Ｃは、演算部１３Ａ〜１３Ｃからの出力値の受信を待機する。
【００２２】
（ステップＳ１０２）次に、出力部１６Ａ〜１６Ｃは、演算部１３Ａ〜１３Ｃから出力値を受信したか否か判定する。出力値を受信していない場合、出力部１６Ａ〜１６Ｃは、ステップＳ１０１に戻って出力値の受信を待機する。
【００２３】
（ステップＳ１０３）ステップＳ１０２における判定の結果、演算部１３Ａ〜１３Ｃから出力値を受信した場合、出力部１６Ａ〜１６Ｃは、受信した三つの出力値が一致するか否か判定する。
【００２４】
（ステップＳ１０４）ステップＳ１０３における判定の結果、受信した三つの出力値が一致しない場合、出力部１６Ａ〜１６Ｃは、二つの出力値が一致するか否か判定する。
【００２５】
（ステップＳ１０５）ステップＳ１０４における判定の結果、二つの出力値が一致しない場合、出力部１６Ａ〜１６Ｃは、多重化制御装置１全体を停止する停止処理を実行する。
【００２６】
（ステップＳ１０６）ステップＳ１０４における判定の結果、二つの出力値が一致した場合、出力部１６Ａ〜１６Ｃは、一致した出力値を出力信号に変換して出力する。
【００２７】
（ステップＳ１０７）ステップＳ１０６の処理後に、出力部１６Ａ〜１６Ｃは、故障に該当する演算部を停止する。ここで故障に該当する演算部は、他の二つの出力値と一致しなかった出力値を出力した演算部である。
【００２８】
（ステップＳ１０８）ステップＳ１０３での判定の結果、三つの出力値が一致する場合、またはステップＳ１０７の処理が終了した場合、三つが一致した出力値または二つが一致した出力値を出力信号に変換し出力する出力処理を実行する。
【００２９】
ここで、図２において、例えば、演算部１３Ａに故障が生じた場合の処理の流れについて説明する。演算部１３Ａに故障が生じて演算部１３Ａからの出力値に誤りが生じた場合、出力部１６Ａ〜１６Ｃは図２のステップＳ１０４の判定により、演算部１３Ａの故障を検出する。そして、故障を検出した出力部１６Ａ〜１６Ｃは、演算部１３Ａを停止させる。
【００３０】
停止させる方法としては、バスを介して停止命令を含んだフレームを出力してもよいし、専用の電気信号線を設け、その専用の電気信号線を介して停止命令を伝送してもよい。
【００３１】
また、出力部１６Ａ〜１６Ｃ全てが演算部１３Ａの故障を検出可能であるため、各出力部１６Ａ〜１６Ｃに優先度を設け、出力部１６Ａ〜１６Ｃのうち優先度が最も高い出力部が停止命令を演算部１３Ａへ出力してもよい。また、全ての出力部１６Ａ〜１６Ｃが停止命令を演算部１３Ａへ出力してもよい。
【００３２】
なお、他の例として、演算部１３Ａ〜１３Ｃは、出力値をバスを介して他の演算部へ出力し、自身が生成した出力値と他の複数の演算部が生成した複数の出力値とを比較し、比較の結果、自身が生成した出力値だけが異なる場合、自ら停止してもよい。一方、演算部１３Ａ〜１３Ｃは、この比較の結果、他の演算部が生成した出力値だけが異なる場合、異なる出力値を生成した演算部を停止させてもよい。これらの比較は、判定部１５Ａ〜１５Ｃで行われる。
【００３３】
この演算部１３Ａ〜１３Ｃの処理を、図３を用いて説明する。図３は、第１の実施形態における演算部１３Ａ〜１３Ｃの処理を示すフローチャートである。
【００３４】
（ステップＳ２０１）まず、演算部１３Ａ〜１３Ｃは、他の演算部からの出力値の受信を待機する。
【００３５】
（ステップＳ２０２）次に、演算部１３Ａ〜１３Ｃは、他の演算部から出力値を受信したか否か判定する。出力値を受信していない場合、演算部１３Ａ〜１３Ｃは、ステップＳ２０１に戻って出力値の受信を待機する。
【００３６】
（ステップＳ２０３）ステップＳ２０２における判定の結果、他の演算部から出力値を受信した場合、演算部１３Ａ〜１３Ｃは、三つの出力値が一致するか否か判定する。三つの出力値が一致する場合、演算部１３Ａ〜１３Ｃは、処理を継続する。
【００３７】
（ステップＳ２０４）ステップＳ２０３における判定の結果、受信した三つの出力値が一致しない場合、演算部１３Ａ〜１３Ｃは、自身の出力値が誤りか否か、すなわち自身の出力値が他の二つの演算部の出力値と異なるか否か判定する。
【００３８】
（ステップＳ２０５）ステップＳ２０４における判定の結果、自身の出力値が誤り、すなわち自身の出力値が他の二つの演算部の出力値と異なる場合、演算部１３Ａ〜１３Ｃは、自ら動作を停止する。
【００３９】
（ステップＳ２０６）ステップＳ２０４における判定の結果、自身の出力値が誤りでない、すなわち自身の出力値が他の二つの演算部の出力値のいずれかと一致する場合、演算部１３Ａ〜１３Ｃは、他の二つの出力値と一致しなかった出力値を出力した演算部を故障した演算部として特定し、この故障した演算部を停止する。
【００４０】
ここで、図３において、例えば、演算部１３Ａに故障が生じた場合の処理の流れについて説明する。まず、演算部１３Ａの処理について説明する。演算部１３Ａに故障が生じて演算部１３Ａからの出力値に誤りが生じた場合、演算部１３Ａは、他演算部の出力値を受信した後、図３のステップＳ２０３の判定処理を実施し、三つの出力値が一致しないと判定する。そして、演算部１３Ａは、図３のステップＳ２０４で自身の出力値が誤りであると判定し、図３のステップＳ２０５で自ら動作を停止する。
【００４１】
続いて、演算部１３Ｂ及び１３Ｃの処理について説明する。演算部１３Ａに故障が生じて演算部１３Ａからの出力値に誤りが生じた場合、演算部１３Ｂ及び１３Ｃは、他演算部の出力値を受信した後、図３のステップＳ２０３の判定処理を実施し、三つの出力値が一致しないと判定する。そして、演算部１３Ｂ及び１３Ｃは、図３のステップＳ２０４で自身の出力値が誤りでないと判定し、図３のステップＳ２０６で他の二つの出力値と一致しなかった出力値を出力した演算部１３Ａを故障した演算部として特定し、演算部１３Ａを停止させる。
【００４２】
このように、演算部１３Ａに故障が生じた際は、演算部１３Ａは、自身の故障を検出し停止してもよいし、他の演算部１３Ｂ及び１３Ｃが演算部１３Ａの故障を検出し演算部１３Ａを停止させてもよい。演算部１３Ａを停止させる方法としては、バスを介して停止命令を含んだフレームを伝送してもよいし、専用の電気信号線を設け、この電気信号線を介して停止命令を伝送してもよい。また、演算部１３Ｂ及び１３Ｃに優先度を設け、演算部１３Ｂ及び１３Ｃのうち優先度が最も高い演算部が停止命令を演算部１３Ａへ出力してもよい。あるいは演算部１３Ｂ及び１３Ｃの両方が停止命令を演算部１３Ａへ出力してもよい。
【００４３】
図４を用いて演算部１３Ａ〜１３Ｃから伝送されるフレームについて説明する。図４は、演算部１３Ａ〜１３Ｃから伝送されるフレームの一例を示す図である。図４に示すように、演算部１３Ａ〜１３Ｃから伝送されるフレームには、例えば、宛先情報、送信元情報、プロトコルタイプ、通信データ、フレームチェックシーケンスが含まれる。通信データには、出力値の他に、タイムスタンプ及び処理プロセス番号など毎周期変化する毎周期変化情報が含まれている。ここで処理プロセス番号は、毎周期毎に変化する値（例えば、カウンタ変数）である。このように、演算部１３Ａ〜１３Ｃは、通信データ内に毎周期変化情報を含ませてフレーム化し、後段の出力部１６Ａ〜１６Ｃまたは他の演算部へ伝送する。
【００４４】
なお、図２のステップＳ１０３または図３のステップＳ２０３の直前に、演算部または出力部は、受信したフレームそれぞれに対し図５に示す処理を実行してもよい。ここで、演算部１３Ａ〜１３Ｃを総称して演算部１３と呼び、出力部１６Ａ〜１６Ｃを総称して出力部１６と呼ぶ。
【００４５】
図５は、演算部１３または出力部１６の処理の一部を示すフローチャートである。
【００４６】
（ステップＳ３０１）まず、演算部１３または出力部１６は、受信したフレームそれぞれについて解析し、送信元の演算部それぞれについて以下の処理を実行する。
【００４７】
（ステップＳ３０２）次に、演算部１３または出力部１６は、毎周期変化情報の前回値から毎周期変化情報の今回値を差分した差分値が０でないか否か判定する。
【００４８】
（ステップＳ３０３）ステップＳ３０２における判定の結果、差分値が０でない場合、演算部１３または出力部１６は、受信した毎周期変化情報の今回値を内部に保存する。
【００４９】
（ステップＳ３０４）そして、演算部１３または出力部１６は、エラーカウント（ｅｒｒ＿ｃｏｕｎｔ）を０にリセットする。
【００５０】
（ステップＳ３０５）ステップＳ３０２における判定の結果、差分値が０である場合、演算部１３または出力部１６は、エラーカウント（ｅｒｒ＿ｃｏｕｎｔ）に１を加算する。
【００５１】
（ステップＳ３０６）そして、演算部１３または出力部１６は、エラーカウント（ｅｒｒ＿ｃｏｕｎｔ）が許容値以上であるか否か判定する。
【００５２】
（ステップＳ３０７）ステップＳ３０６における判定の結果、エラーカウント（ｅｒｒ＿ｃｏｕｎｔ）が許容値以上である場合、演算部１３または出力部１６はエラーカウントが許容値以上となった演算部を停止する。
【００５３】
（ステップＳ３０８）ステップＳ３０６における判定の結果、エラーカウント（ｅｒｒ＿ｃｏｕｎｔ）が許容値未満である場合、演算部１３または出力部１６は処理を継続する。
【００５４】
このように、演算部１３Ａ〜１３Ｃから出力される出力値に毎周期変化する毎周期変化情報が付与されており、出力部１６Ａ〜１６Ｃまたは演算部１３Ａ〜１３Ｃは、この毎周期変化情報を用いて、演算部１３Ａ〜１３Ｃが故障したか否かを判定する。
【００５５】
以上、第１の実施形態に係る多重化制御装置１は、同一の入力信号を入力値に変換する三つの入力部１２Ａ〜１２Ｃを備える。更に、多重化制御装置１は、対応する入力部から入力値を取得し、取得した入力値を演算して出力値を生成する三つの演算部１３Ａ〜１３Ｃを備える。更に、多重化制御装置１は、対応する演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つの出力部１６Ａ〜１６Ｃを備える。更に、多重化制御装置１は、三つの出力部１６Ａ〜１６Ｃが生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置１９を制御する制御信号として被制御対象装置１９へ出力する多数決部１８を備える。そして、出力部１６Ａ〜１６Ｃと演算部１３Ａ〜１３Ｃのうち少なくとも一つは、演算部１３Ａ〜１３Ｃの各々から出力値を取得し、取得した複数の出力値を用いて、故障した演算部を検出し、故障した演算部を停止させる。
【００５６】
このような構成を有する第１の実施形態に係る多重化制御装置１によれば、各演算部の故障を後段の出力部または他の演算部が検出可能であるため、故障した演算部を確実に検出し、故障した演算部を停止させることができる。このように故障した演算部が停止するため、消費電力を低減させ且つ故障した演算部の交換を容易化することができる。
【００５７】
なお、第１の実施形態に係る多重化制御装置１は、三つの入力部１２Ａ〜１２Ｃ、三つの演算部１３Ａ〜１３Ｃ、及び三つの出力部１６Ａ〜１６Ｃを備える構成として説明したが、これに限らず、四つ以上の入力部、四つ以上の演算部、及び四つ以上の出力部を備えてもよい。
【００５８】
（第２の実施形態）
続いて、第２の実施形態について説明する。第１の実施形態に係る多重化制御装置１では、出力部または他の演算部が各演算部の故障を検出し、故障した演算部を停止した。それに対し、第２の実施形態に係る多重化制御装置１では、演算部または他の出力部が、各出力部の故障を検出し、故障した出力部を停止させる。第２の実施形態に係る多重化制御装置１の構成は、第１の実施形態に係る多重化制御装置１の構成と同一であるので、その説明を省略する。
【００５９】
但し、第２の実施形態では、第１の実施形態とは異なり、出力部１６Ａ〜１６Ｃと演算部１３Ａ〜１３Ｃの少なくとも一方は、出力部１６Ａ〜１６Ｃの各々から出力信号を取得し、取得した複数の出力信号を用いて、故障した出力部を検出し、この故障した出力部を停止させる。その一例として、出力部１６Ａ〜１６Ｃは、バスを介して出力信号を演算部１３Ａ〜１３Ｃそれぞれに出力し、演算部１３Ａ〜１３Ｃは、出力部１６Ａ〜１６Ｃそれぞれから取得した複数の出力信号同士を比較することにより誤った出力信号を生成した出力部を特定し、特定した出力部を停止させる。この誤った出力信号を生成した出力部１６Ａ〜１６Ｃの特定は、判定部１５Ａ〜１５Ｃで行われる。
【００６０】
続いて、第２の実施形態に係る多重化制御装置１の動作について以下、説明する。図６は、第２の実施形態における演算部１３Ａ〜１３Ｃの処理を示すフローチャートである。前提として、出力部１６Ａ〜１６Ｃは出力信号を前段の全演算部１３Ａ〜１３Ｃへ出力する。
【００６１】
（ステップＳ４０１）まず、演算部１３Ａ〜１３Ｃは、出力部１６Ａ〜１６Ｃからの出力信号の受信を待機する。
【００６２】
（ステップＳ４０２）次に、演算部１３Ａ〜１３Ｃは、出力部１６Ａ〜１６Ｃから出力信号を受信したか否か判定する。出力信号を受信していない場合、演算部１３Ａ〜１３Ｃは、ステップＳ４０１に戻って出力信号の受信を待機する。
【００６３】
（ステップＳ４０３）ステップＳ４０２における判定の結果、出力部１６Ａ〜１６Ｃから出力信号を受信した場合、演算部１３Ａ〜１３Ｃは、受信した三つの出力信号が一致するか否か判定する。
【００６４】
（ステップＳ４０４）ステップＳ４０３における判定の結果、受信した三つの出力信号が一致しない場合、演算部１３Ａ〜１３Ｃは、三つの出力信号のうち二つの出力信号が一致するか否か判定する。
【００６５】
（ステップＳ４０５）ステップＳ４０４における判定の結果、三つの出力信号のうち二つの出力信号が一致しない場合、演算部１３Ａ〜１３Ｃは、多重化制御装置１全体を停止する停止処理を実行する。
【００６６】
（ステップＳ４０６）ステップＳ４０４における判定の結果、三つの出力信号のうち二つの出力信号が一致した場合、演算部１３Ａ〜１３Ｃは、出力部１６Ａ〜１６Ｃに、一致した出力信号を出力させる。
【００６７】
（ステップＳ４０７）ステップＳ４０６の処理後に、演算部１３Ａ〜１３Ｃは、他の二つの出力信号と異なる出力信号を出力した出力部を、故障した出力部として検出し、故障した出力部を停止させる。
【００６８】
（ステップＳ４０８）ステップＳ４０３での判定の結果、三つの出力信号が一致する場合、またはステップＳ４０７の処理が終了した場合、演算部１３Ａ〜１３Ｃは、出力部１６Ａ〜１６Ｃに、三つが一致した出力信号または二つが一致した出力信号を出力させる。
【００６９】
ここで、図６において、例えば、出力部１６Ａに故障が生じた場合の処理の流れについて説明する。出力部１６Ａに故障が生じて出力部１６Ａからの出力値に誤りが生じた場合、演算部１３Ａ〜１３Ｃは図６のステップＳ４０４の判定により、出力部１６Ａの故障を検出する。そして、故障を検出した演算部１３Ａ〜１３Ｃは、出力部１６Ａを停止させる。
【００７０】
停止させる方法としては、バスを介して停止命令を含んだフレームを出力してもよいし、専用の電気信号線を設け、その専用の電気信号線を介して停止命令を伝送してもよい。また、演算部１３Ａ〜１３Ｃ全てにおいて出力部１６Ａの故障を検出可能であるため、各演算部１３Ａ〜１３Ｃに優先度を設け、演算部１３Ａ〜１３Ｃのうち優先度が最も高い演算部が停止命令を出力部１６Ａへ出力してもよい。また、全ての演算部１３Ａ〜１３Ｃが停止命令を出力部１６Ａへ出力してもよい。
【００７１】
なお、他の例として、出力部１６Ａ〜１６Ｃは、出力信号をバスを介して他の出力部へ出力し、自身が生成した出力信号と他の複数の出力部が生成した複数の出力信号とを比較し、比較の結果、自身が生成した出力信号だけが異なる場合、自ら停止してもよい。一方、出力部１６Ａ〜１６Ｃは、比較の結果、他の出力部が生成した出力信号だけが異なる場合、この異なる出力信号を生成した出力部を停止させてもよい。これらの比較は、判定部１７Ａ〜１７Ｃで行われる。
【００７２】
この出力部１６Ａ〜１６Ｃの処理を、図７を用いて説明する。図７は、第２の実施形態における出力部１６Ａ〜１６Ｃの処理を示すフローチャートである。
【００７３】
（ステップＳ５０１）まず、出力部１６Ａ〜１６Ｃは、他の出力部からの出力信号の受信を待機する。
【００７４】
（ステップＳ５０２）次に、出力部１６Ａ〜１６Ｃは、他の出力部から出力信号を受信したか否か判定する。出力信号を受信していない場合、出力部１６Ａ〜１６Ｃは、ステップＳ５０１に戻って出力信号の受信を待機する。
【００７５】
（ステップＳ５０３）ステップＳ５０２における判定の結果、他の出力部から出力信号を受信した場合、出力部１６Ａ〜１６Ｃは、三つの出力信号が一致するか否か判定する。三つの出力信号が一致する場合、出力部１６Ａ〜１６Ｃは、処理を継続する。
【００７６】
（ステップＳ５０４）ステップＳ５０３における判定の結果、受信した三つの出力信号が一致しない場合、出力部１６Ａ〜１６Ｃは、自身の出力信号が誤りか否か、すなわち自身の出力信号が他の二つの出力部の出力信号と異なるか否か判定する。
【００７７】
（ステップＳ５０５）ステップＳ５０４における判定の結果、自身の出力信号が誤り、すなわち自身の出力信号が他の二つの出力信号と異なる場合、出力部１６Ａ〜１６Ｃは、自ら動作を停止する。
【００７８】
（ステップＳ５０６）ステップＳ５０４における判定の結果、自身の出力信号が誤りでない、すなわち自身の出力信号が他の二つの出力信号のいずれかと一致する場合、出力部１６Ａ〜１６Ｃは、他の二つの出力信号と異なる出力信号を出力した出力部を故障した出力部として特定し、この故障した出力部を停止する。
【００７９】
ここで、図７において、例えば、出力部１６Ａに故障が生じた場合の処理の流れについて説明する。出力部１６Ａに故障が生じて出力部１６Ａからの出力信号に誤りが生じた場合、出力部１６Ａは、他の出力部の出力値を受信した後、図７のステップＳ５０３の判定処理を実施し、三つの出力信号が一致しないと判定する。そして、出力部１６Ａは、図７のステップＳ５０４で自身の出力信号が誤りであると判定し、図７のステップＳ５０５で自ら動作を停止する。
【００８０】
続いて、出力部１６Ｂ及び１６Ｃの処理について説明する。出力部１６Ａに故障が生じて出力部１６Ａからの出力信号に誤りが生じた場合、出力部１６Ｂ及び１６Ｃは、他の出力部の出力信号を受信した後、図７のステップＳ５０３の判定処理を実施し、三つの出力信号が一致しないと判定する。そして、出力部１６Ｂ及び１６Ｃは、図７のステップＳ５０４で自身の出力信号が誤りでないと判定し、図７のステップＳ５０６で他の二つの出力信号と異なる出力信号を出力した出力部１６Ａを故障した出力部として特定し、出力部１６Ａを停止させる。
【００８１】
このように、出力部１６Ａに故障が生じた際に、出力部１６Ａは、自身の故障を検出し停止してもよいし、他の出力部１６Ｂ及び１６Ｃが出力部１６Ａの故障を検出し出力部１６Ａを停止させてもよい。ここで出力部１６を停止させる方法としては、バスを介して停止命令を含んだフレームを伝送してもよいし、専用の電気信号線を設け、この電気信号線を介して停止命令を伝送してもよい。また、出力部１６Ｂ及び１６Ｃに優先度を設け、出力部１６Ｂ及び１６Ｃのうち優先度が最も高い出力部が停止命令を出力部１６Ａへ出力してもよい。あるいは出力部１６Ｂ及び１６Ｃの両方が停止命令を出力部１６Ａへ出力してもよい。
【００８２】
図８を用いて出力部１６Ａ〜１６Ｃから伝送されるフレームについて説明する。図８は、出力部１６Ａ〜１６Ｃから伝送されるフレームの一例を示す図である。図８に示すように、演算部１３Ａ〜１３Ｃから伝送されるフレームと同様に、出力部１６Ａ〜１６Ｃから伝送されるフレームには、例えば、宛先情報、送信元情報、プロトコルタイプ、通信データ、フレームチェックシーケンスが含まれる。通信データには、出力信号の他に、タイムスタンプ及び処理プロセス番号など毎周期変化する毎周期変化情報が含まれている。ここで処理プロセス番号は、毎周期毎に変化する値（例えば、カウンタ変数）である。このように、出力部１６Ａ〜１６Ｃは、通信データ内に毎周期変化情報を含ませてフレーム化し、前段の演算部１３Ａ〜１３Ｃまたは他の出力部１６へ伝送する。
【００８３】
なお、図６のステップＳ４０３または図７のステップＳ５０３の直前に、演算部１３Ａ〜１３Ｃまたは出力部１６Ａ〜１６Ｃは、受信したフレームそれぞれに対し図５に示す処理を実行してもよい。このように、出力部１６Ａ〜１６Ｃから出力される出力信号に毎周期変化する毎周期変化情報が付与されており、出力部１６Ａ〜１６Ｃまたは演算部１３Ａ〜１３Ｃは、この毎周期変化情報を用いて、出力部１６Ａ〜１６Ｃが故障したか否かを判定する。
【００８４】
以上、第２の実施形態に係る多重化制御装置１は、同一の入力信号を入力値に変換する三つの入力部１２Ａ〜１２Ｃを備える。更に、多重化制御装置１は、対応する入力部から入力値を取得し、取得した入力値を演算して出力値を生成する三つの演算部１３Ａ〜１３Ｃを備える。更に、多重化制御装置１は、対応する演算部から出力値を取得し、取得した出力値を出力信号に変換して出力する三つの出力部１６Ａ〜１６Ｃを備える。更に、多重化制御装置１は、三つの出力部１６Ａ〜１６Ｃが生成した出力信号のうち、過半数が一致する出力信号を、被制御対象である被制御対象装置１９を制御する制御信号として被制御対象装置１９へ出力する多数決部１８を備える。出力部１６Ａ〜１６Ｃと演算部１３Ａ〜１３Ｃのうち少なくとも一つは、出力部１６Ａ〜１６Ｃの各々から出力信号を取得し、取得した複数の出力信号を用いて、故障した出力部を検出し、故障した出力部を停止させる。
【００８５】
このような構成を有する第２の実施形態に係る多重化制御装置１によれば、各出力部の故障を前段の演算部または他の出力部が検出可能であるため、故障した出力部を確実に検出し、故障した出力部を停止させることができる。このように故障した出力部が停止するため、消費電力を低減させ且つ故障した演算部の交換を容易化することができる。
【００８６】
なお、第２の実施形態に係る多重化制御装置１は、三つの入力部１２Ａ〜１２Ｃ、三つの演算部１３Ａ〜１３Ｃ、及び三つの出力部１６Ａ〜１６Ｃを備える構成として説明したが、これに限らず、四つ以上の入力部、四つ以上の演算部、及び四つ以上の出力部を備えてもよい。
【００８７】
（第３の実施形態）
続いて、第３の実施形態について説明する。図９は、第３の実施形態における多重化制御装置２の構成を示す図である。なお、図１と共通する要素には同一の符号を付し、その具体的な説明を省略する。第３の実施形態の多重化制御装置２は、第１の実施形態の多重化制御装置と比べて、各演算部及び各出力部の故障の有無を監視し、故障を検出した場合に報知する監視装置２１が追加された構成になっている。ここで、監視装置２１は、監視部２２と報知部２３とを備える。
【００８８】
監視部２２は、演算部１３Ａ〜１３Ｃそれぞれと出力部１６Ａ〜１６Ｃと接続されており、演算部１３Ａ〜１３Ｃそれぞれと出力部１６Ａ〜１６Ｃそれぞれの動作を監視する。
【００８９】
報知部２３は、監視部２２が演算部１３Ａ〜１３Ｃまたは出力部１６Ａ〜１６Ｃの故障を検出した場合、故障を報知する。本実施形態では、その一例として、報知部２３はユーザ端末２４と接続されており、監視部２２が演算部１３Ａ〜１３Ｃまたは出力部１６Ａ〜１６Ｃの故障を検出した場合、故障をユーザ端末２４に通知する。
【００９０】
また、第１の実施形態または第２の実施形態と同様に、演算部１３Ａ〜１３Ｃまたは出力部１６Ａ〜１６Ｃに故障が生じた際、故障が生じた演算部または出力部は停止し、多重化制御装置２の処理から切り離される。
【００９１】
以上の構成を有する第３の実施形態における多重化制御装置２の動作について説明する。監視部２２は、各演算部の出力値、各出力部の出力信号、出力電流、出力電圧、または内部クロックなどの監視データを監視する。そして、監視部２２は、規定時間、監視対象の構成要素から監視データの受信がない場合、または監視対象の構成要素の監視データが検出できない場合、その構成要素を故障と判断する。監視部２２が故障と判断した場合、報知部２３は、故障を管理者に報知する。報知する手段としては、故障をユーザ端末２４に通知する他に、監視装置２１が備える表示部（不図示）に故障の旨を表示してもよいし、故障の旨を音声で通知してもよいし、故障の旨を含むメールまたはＦＡＸなど遠隔にいる管理者に送信することにより通知してもよい。
【００９２】
続いて、このような動作が可能な監視装置２１の動作の具体例について図１０を用いて説明する。図１０は、第３の実施形態における監視装置２１の動作の一例を示すフローチャートである。
【００９３】
（ステップＳ６０１）まず、監視部２２は、監視データを監視する。
【００９４】
（ステップＳ６０２）次に、監視部２２は、演算部１３Ａ〜１３Ｃそれぞれ及び出力部１６Ａ〜１６Ｃそれぞれについて監視データを受信したか否か判定する。
【００９５】
（ステップＳ６０３）ステップＳ６０２における判定の結果、演算部１３Ａ〜１３Ｃ及び出力部１６Ａ〜１６Ｃの一部から監視データを受信していない場合、監視部２２は、監視データを受信していない時間が規定時間を超えるか否か判定する。監視データを受信していない時間が規定時間を超えない場合、処理がステップＳ６０２に戻る。
【００９６】
（ステップＳ６０４）ステップＳ６０３における判定の結果、監視データを受信していない時間が規定時間を超える場合、報知部２３は、監視データを規定時間、受信していない構成要素についての故障をユーザ端末２４に通知する。
【００９７】
以上、第３の実施形態に係る多重化制御装置２は、演算部１３Ａ〜１３Ｃそれぞれと出力部１６Ａ〜１６Ｃそれぞれの動作を監視する監視部２２を備える。更に多重化制御装置２は、監視部２２が演算部１３Ａ〜１３Ｃまたは出力部１６Ａ〜１６Ｃの故障を検出した場合、故障を報知する報知部２３を備える。このような構成を有する第３の実施形態に係る多重化制御装置２によれば、演算部の一つが故障した場合、または出力部の一つが故障した場合に、管理者に故障を通知することができる。
【００９８】
なお、第３の実施形態に係る多重化制御装置２は、三つの入力部１２Ａ〜１２Ｃ、三つの演算部１３Ａ〜１３Ｃ、及び三つの出力部１６Ａ〜１６Ｃを備える構成として説明したが、これに限らず、四つ以上の入力部、四つ以上の演算部、及び四つ以上の出力部を備えてもよい。
【００９９】
以上、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【０１００】
１、２  多重化制御装置
１１  検出部
１２Ａ、１２Ｂ、１２Ｃ  入力部
１３Ａ、１３Ｂ、１３Ｃ  演算部
１４Ａ、１４Ｂ、１４Ｃ  演算実行部
１５Ａ、１５Ｂ、１５Ｃ  判定部
１６Ａ、１６Ｂ、１６Ｃ  出力部
１７Ａ、１７Ｂ、１７Ｃ  判定部
１８  多数決部
１９  被制御対象装置
２１  監視装置
２２  監視部
２３  報知部
【図１】
2016103110.tif 000003
【図２】
2016103110.tif 000004
【図３】
2016103110.tif 000005
【図４】
2016103110.tif 000006
【図５】
2016103110.tif 000007
【図６】
2016103110.tif 000008
【図７】
2016103110.tif 000009
【図８】
2016103110.tif 000010
【図９】
2016103110.tif 000011
【図１０】
2016103110.tif 000012