(57)【要約】      （修正有）【課題】冗長構成をとる複数のコントローラを備える制御システムの異常を診断する。【解決手段】制御システムであって、冗長構成をとる複数のコントローラ１００ａ〜ｎと、複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器１５５へと出力するインターフェイス装置１３０ａ〜ｍと、インターフェイス装置における、複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、制御システムを診断する診断装置１６０とを備える制御システム１０である。【選択図】図１
2019139490.tif 000002
【特許請求の範囲】
【請求項１】
制御システムであって、
冗長構成をとる複数のコントローラと、
前記複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置と、
前記インターフェイス装置における、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、前記制御システムを診断する診断装置と
を備える制御システム。
【請求項２】
複数の前記インターフェイス装置を備え、
前記診断装置は、前記複数のインターフェイス装置のそれぞれにおける、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、前記制御システムを診断する
請求項１に記載の制御システム。
【請求項３】
前記複数のコントローラ、前記複数のインターフェイス装置、および前記診断装置が接続されるネットワークを更に備える請求項２に記載の制御システム。
【請求項４】
前記複数のコントローラは、予め定められた制御周期で同期して、それぞれ制御データを送信し、
前記診断装置は、複数の制御周期における制御データの採否を含む前記統計情報に基づいて、前記制御システムを診断する
請求項２または３に記載の制御システム。
【請求項５】
前記診断装置は、前記複数のコントローラの中で、前記複数のインターフェイス装置のうち第１基準台数以上のインターフェイス装置のそれぞれにおいて、第１基準個数以上の制御データが不採択とされたコントローラに異常の可能性があると推定する請求項２から４のいずれか一項に記載の制御システム。
【請求項６】
前記診断装置は、前記複数のインターフェイス装置のうち第２基準台数未満のインターフェイス装置のそれぞれにおいて、第２基準個数以上の制御データが不採択とされたことに応じて、前記第２基準個数以上の制御データを不採択としたインターフェイス装置に異常の可能性があると推定する請求項２から５のいずれか一項に記載の制御システム。
【請求項７】
前記複数のインターフェイス装置のうち少なくとも１つのインターフェイス装置は、自己診断機能を有し、
前記診断装置は、前記少なくとも１つのインターフェイス装置の自己診断結果に更に基づいて、前記制御システムの異常箇所を推定する請求項２から６のいずれか一項に記載の制御システム。
【請求項８】
前記診断装置は、
前記ネットワークのトポロジー情報を記憶し、
前記統計情報および前記トポロジー情報に基づいて、前記ネットワークにおける異常箇所を推定する
請求項３に記載の制御システム。
【請求項９】
制御システムを診断する診断装置であって、
前記制御システムは、
冗長構成をとる複数のコントローラと、
前記複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置と
を備え、
前記診断装置は、
前記インターフェイス装置における、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得する統計情報取得部と、
前記統計情報に基づいて、前記制御システムを診断する診断部と
を備える
診断装置。
【請求項１０】
前記制御システムは、複数の前記インターフェイス装置を備え、
前記診断部は、前記複数のインターフェイス装置のそれぞれにおける、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、前記制御システムを診断する
請求項９に記載の診断装置。
【請求項１１】
コンピュータにより制御システムを診断する診断方法であって、
前記制御システムは、
冗長構成をとる複数のコントローラと、
前記複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置と
を備え、
前記コンピュータが、前記インターフェイス装置における、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得し、
前記コンピュータが、前記統計情報に基づいて、前記制御システムを診断する
診断方法。
【請求項１２】
コンピュータを、制御システムを診断する診断装置として機能させる診断プログラムであって、
前記制御システムは、
冗長構成をとる複数のコントローラと、
前記複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置と
を備え、
当該診断プログラムは、前記コンピュータを、
前記インターフェイス装置における、前記複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得する統計情報取得部と、
前記統計情報に基づいて、前記制御システムを診断する診断部と
して機能させる診断プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御システム、診断装置、診断方法、および診断プログラムに関する。
【背景技術】
【０００２】
特許文献１には、プラントなどのプロセス制御に用いるプロセス制御装置において、並列動作する３つ以上のコントローラの制御演算結果を多数決判定してプロセス制御をすることが記載されている。
特許文献１  特開２００３−１４０７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
特許文献１に記載のプロセス制御装置は、プロセス制御装置内で３つ以上のコントローラの制御演算結果を多数決判定してから制御データをプロセス機器へと送信する。しかし、特許文献１に記載のプロセス制御装置では、多数決判定を行うプロセス機器インターフェイス３０の故障またはインターミッテント障害に対する耐性が低くなってしまう。
【課題を解決するための手段】
【０００４】
上記課題を解決するために、本発明の第１の態様においては、制御システムを提供する。制御システムは、冗長構成をとる複数のコントローラを備えてよい。制御システムは、複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置を備えてもよい。制御システムは、インターフェイス装置における、複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、制御システムを診断する診断装置を備えてもよい。
【０００５】
制御システムは、複数のインターフェイス装置を備えてもよい。診断装置は、複数のインターフェイス装置のそれぞれにおける、複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、制御システムを診断してもよい。
【０００６】
制御システムは、複数のコントローラ、複数のインターフェイス装置、および診断装置が接続されるネットワークを備えてもよい。
【０００７】
複数のコントローラは、予め定められた制御周期で同期して、それぞれ制御データを送信してもよい。診断装置は、複数の制御周期における制御データの採否を含む統計情報に基づいて、制御システムを診断してもよい。
【０００８】
診断装置は、複数のコントローラの中で、複数のインターフェイス装置のうち第１基準台数以上のインターフェイス装置のそれぞれにおいて、第１基準個数以上の制御データが不採択とされたコントローラに異常の可能性があると推定してもよい。
【０００９】
診断装置は、複数のインターフェイス装置のうち第２基準台数未満のインターフェイス装置のそれぞれにおいて、第２基準個数以上の制御データが不採択とされたことに応じて、第２基準個数以上の制御データを不採択としたインターフェイス装置に異常の可能性があると推定してもよい。
【００１０】
複数のインターフェイス装置のうち少なくとも１つのインターフェイス装置は、自己診断機能を有してもよい。診断装置は、少なくとも１つのインターフェイス装置の自己診断結果に更に基づいて、制御システムの異常箇所を推定してもよい。
【００１１】
診断装置は、ネットワークのトポロジー情報を記憶してもよい。診断装置は、統計情報およびトポロジー情報に基づいて、ネットワークにおける異常箇所を推定してもよい。
【００１２】
本発明の第２の態様においては、制御システムを診断する診断装置を提供する。制御システムは、冗長構成をとる複数のコントローラを備えてよい。制御システムは、複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置を備えてもよい。診断装置は、インターフェイス装置における、複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得する統計情報取得部を備えてよい。診断装置は、統計情報に基づいて、制御システムを診断する診断部を備えてもよい。
【００１３】
制御システムは、複数のインターフェイス装置を備えてもよい。診断部は、複数のインターフェイス装置のそれぞれにおける、複数のコントローラのそれぞれからの制御データの採否を含む統計情報に基づいて、制御システムを診断してもよい。
【００１４】
本発明の第３の態様においては、コンピュータにより制御システムを診断する診断方法を提供する。制御システムは、冗長構成をとる複数のコントローラを備えてよい。制御システムは、複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置を備えてもよい。コンピュータが、インターフェイス装置における、複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得してよい。コンピュータが、統計情報に基づいて、制御システムを診断してもよい。
【００１５】
本発明の第４の態様においては、コンピュータを、制御システムを診断する診断装置として機能させる診断プログラムを提供する。制御システムは、冗長構成をとる複数のコントローラを備えてよい。制御システムは、複数のコントローラから受信する冗長化された複数の制御データに基づく制御出力データを、被制御機器へと出力するインターフェイス装置を備えてもよい。診断プログラムは、コンピュータを、インターフェイス装置における、複数のコントローラのそれぞれからの制御データの採否を含む統計情報を取得する統計情報取得部として機能させてよい。診断プログラムは、コンピュータを、統計情報に基づいて、制御システムを診断する診断部として機能させてもよい。
【００１６】
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００１７】
【図１】本実施形態に係る制御システム１０の構成を示す。
【図２】本実施形態に係るコントローラ１００の動作フローを示す。
【図３】本実施形態に係るインターフェイス装置１３０の動作フローを示す。
【図４】本実施形態に係る診断装置１６０の動作フローを示す。
【図５】本実施形態に係るログＤＢ１６４に格納されるログ情報の一例を示す。
【図６】本実施形態に係る制御システム１０の変形例を示す。
【図７】本実施形態に係るコンピュータ２２００の構成の一例を示す。
【発明を実施するための形態】
【００１８】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１９】
図１は、本実施形態に係る制御システム１０の構成を示す。制御システム１０は、化学製品、金属製品、石油、またはガス等の生産プラントを制御する。これに代えて、制御システム１０は、発電プラント等の他のプラントの制御に用いられてもよく、ビルまたは交通機関等の設備の制御に用いられてもよい。
【００２０】
制御システム１０は、プラント等の各所に設けられた複数のセンサ１５０ａ〜ｍ（「センサ１５０」とも示す。）からのセンスデータに応じて複数の被制御機器１５５ａ〜ｍ（「被制御機器１５５」とも示す。）を制御して、プラント等の目的に応じた生産、発電、及び／又は制御を行う。本実施形態に係る制御システム１０は、冗長構成をとる複数のコントローラ１００ａ〜ｎからの制御データを被制御機器１５５ａ〜ｍに接続されるインターフェイス装置１３０ａ〜ｍ側で採否をとり、診断装置１６０において採否の結果を含む統計情報を用いて制御システム１０の診断をする。これにより、制御システム１０は、内部の異常箇所を統計的に診断することを可能とする。
【００２１】
各センサ１５０は、制御対象のプラント等の状態を示す物理量を測定して、物理量に応じたセンスデータをインターフェイス装置１３０に供給する。センサ１５０は、一例として、温度センサ、圧力センサ、流量計、電流センサ、電圧センサ、ガスセンサ、またはその他の任意の物理量を測定する計測器であってよい。
【００２２】
各被制御機器１５５は、制御対象のプラント等の動作を制御及び／又は調整する。被制御機器１５５は、一例として制御対象のプラント等に設けられたバルブ、コンプレッサ、ポンプ、およびモータ等のアクチュエータであってよく、制御対象のプラント等に設けられた装置に対し電気的または磁気的な信号を印加する素子、回路、またはデバイス等であってもよい。
【００２３】
制御システム１０は、コントローラ１００ａ〜ｎ（「コントローラ１００」とも示す。）と、センサ１５０ａ〜ｍおよび被制御機器１５５ａ〜ｍに接続されるインターフェイス装置１３０ａ〜ｍ（「インターフェイス装置１３０」とも示す。）と、診断装置１６０と、ネットワーク５０とを備える。
【００２４】
複数のコントローラ１００は、冗長構成をとる。複数のコントローラ１００は、１または複数のセンサ１５０から受け取るセンスデータ等の制御パラメータに基づき互いに同じ制御演算処理を行って、１または複数の被制御機器１５５を制御するための制御データを１または複数のインターフェイス装置１３０へと送信する。本実施形態において、制御システム１０は、コントローラ１００を３台以上備え、各コントローラ１００が出力する制御データを多数決採択する。
【００２５】
複数のコントローラ１００は、予め定められた制御周期で同期して、それぞれ制御データを対象の被制御機器１５５が接続されたインターフェイス装置１３０へと送信する。制御周期は、説明の便宜上制御システム１０全体で共通であるものとする。これに代えて、制御周期は、被制御機器１５５のグループ、個々の被制御機器１５５、または各被制御機器１５５内の制御対象パラメータ毎に独立に設定されてもよい。この場合、複数のコントローラ１００は、制御データの各対象に応じた制御周期で同期して、制御データを各対象へと送信する。ここで、同期とは、クロック同期等の厳密な同期に限らず、制御周期内に制御データを対象に届けられる程度の緩やかな同期であってもよい。
【００２６】
各コントローラ１００は、制御パラメータ受信部１１０と、制御演算部１１４と、制御データ送信部１１６とを有する。
【００２７】
制御パラメータ受信部１１０は、１または複数のセンサ１５０からのセンスデータ等の制御パラメータをインターフェイス装置１３０ａ〜ｍおよびネットワーク５０を介して受信する。
【００２８】
制御演算部１１４は、制御システム１０による制御対象のプラント等を制御するための制御演算を実行する。制御演算部１１４は、制御データを送信すべき各対象について、制御周期毎に、制御パラメータ受信部１１０から入力される制御パラメータの値を入力とし、対象に対する操作量及び／又は設定値等の制御データを出力する制御演算処理を実行する。本実施形態に係る制御システム１０においては、各インターフェイス装置１３０が各制御周期において同一値の制御パラメータを複数のコントローラ１００へと送信する構成をとる。このため、複数のコントローラ１００の各制御演算部１１４は、制御周期毎に同一の値の制御パラメータを入力して同一アルゴリズムの制御演算処理を行う結果、異常が無ければ同一値の制御データを出力する。制御演算処理は、一例としてＰＩ制御またはＰＩＤ制御等の制御工学上の制御であってよく、条件判断・条件分岐等を含む任意の制御アルゴリズムであってもよい。
【００２９】
制御データ送信部１１６は、制御演算部１１４が出力する制御データを対象の被制御機器１５５が接続されたインターフェイス装置１３０へと送信する。
【００３０】
１または複数のインターフェイス装置１３０は、１または複数のセンサ１５０と、１または複数の被制御機器１５５とに接続され、各コントローラ１００と、接続先のセンサ１５０および被制御機器１５５との間のインターフェイスとして機能する。制御システム１０は、センサ１５０が接続されるが被制御機器１５５は接続されないインターフェイス装置１３０、及び／又は、センサ１５０は接続されないが被制御機器１５５が接続されるインターフェイス装置１３０を備えてもよい。本実施形態においては、説明の便宜上各インターフェイス装置１３０には１つのセンサ１５０および１つの被制御機器１５５が接続されている例を示す。これに代えて、各インターフェイス装置１３０は、複数のセンサ１５０及び／又は複数の被制御機器１５５に接続される構成をとってもよい。
【００３１】
各インターフェイス装置１３０は、制御パラメータ取得部１３２と、制御パラメータ送信部１３４と、制御データ受信部１３６と、採択部１３８と、採否通知部１４０と、制御データ出力部１４２とを有する。
【００３２】
制御パラメータ取得部１３２は、接続先のセンサ１５０からセンスデータ等の制御パラメータを取得する。また、制御パラメータ取得部１３２は、被制御機器１５５の設定パラメータ等の制御演算部１１４が制御演算をするために使用する各種のデータを制御パラメータとして取得してよい。
【００３３】
制御パラメータ送信部１３４は、制御パラメータ取得部１３２が取得した制御パラメータを、各コントローラ１００へと送信する。本実施形態において、制御パラメータ送信部１３４は、各制御周期において同一値の制御パラメータを複数のコントローラ１００へと送信する。例えば、制御パラメータ取得部１３２は制御周期に同期して制御パラメータを取得し、各制御周期の間には同一値の制御パラメータを制御パラメータ送信部１３４に提供してもよい。
【００３４】
制御データ受信部１３６は、インターフェイス装置１３０に接続された被制御機器１５５に対する各コントローラ１００からの制御データを受信する。ここで、複数のコントローラ１００が冗長構成をとることから、各制御データ受信部１３６は、制御周期毎に、複数のコントローラ１００から冗長化された複数の制御データ、すなわち正常であれば同一値を有する制御データを受信する。
【００３５】
採択部１３８は、制御周期毎に、冗長化された複数の制御データのそれぞれの採否を決定する。一例として、採択部１３８は、予め定められた数以上の制御データが同一値であることを条件として、その制御データを被制御機器１５５へと出力すべき制御出力データとして採択し、異なる値の制御データを不採択とする。例えば、採択部１３８は、コントローラ１００が３台存在する場合、２以上の制御データが同一値であれば、その制御データを採択する。ここで、採択部１３８は、採択した制御データとは異なる値の制御データを不採択とする。
【００３６】
採否通知部１４０は、複数のコントローラ１００のそれぞれからの制御データの採否を示す採否情報を診断装置１６０内の採否受信部１６２へと通知する。
【００３７】
制御データ出力部１４２は、冗長化された複数の制御データに基づいて生成された、被制御機器１５５へと出力すべき制御出力データを対象の被制御機器１５５へと出力する。
【００３８】
診断装置１６０は、１または複数のインターフェイス装置１３０から受信する採否情報を収集して、複数のコントローラ１００のそれぞれからの制御データの採否を含む統計情報を記録する。そして診断装置１６０は、統計情報に基づいて、制御システム１０を診断する。診断装置１６０は、採否受信部１６２と、ログＤＢ１６４と、統計情報取得部１６５と、トポロジーＤＢ１６６と、診断部１６８と、診断結果出力部１７０とを有する。
【００３９】
採否受信部１６２は、複数のインターフェイス装置１３０のそれぞれから制御データの採否を示す採否情報を受信して、ログＤＢ１６４（ログデータベース１６４）へと記録する。
【００４０】
ログＤＢ１６４は、採否受信部１６２が複数のインターフェイス装置１３０のそれぞれから受信する、複数の制御周期の採否情報を、ログ情報として格納していく。
【００４１】
統計情報取得部１６５は、ログＤＢ１６４に格納されたログ情報から、１または複数のインターフェイス装置１３０における、複数のコントローラ１００のそれぞれからの制御データの採否を含む各種の統計情報を取得する。例えば、統計情報取得部１６５は、ログ情報を参照して、各コントローラ１００からの制御データを不採択とした回数、各インターフェイス装置１３０が制御データを不採択とした回数といった各種の統計情報を算出する。
【００４２】
トポロジーＤＢ１６６は、ネットワーク５０のトポロジー情報を記憶する。トポロジー情報は、複数のコントローラ１００および複数のインターフェイス装置１３０の間のネットワークの接続関係を示すものであり、各コントローラ１００および各インターフェイス装置１３０の間にある各リンクに関する情報、及び／又は各リンクが多重化されているか否かに関する情報等の、ネットワーク５０の異常箇所を診断するために利用可能なネットワーク構造を示す。ネットワーク５０のトポロジー情報を異常箇所の診断に用いない場合には、診断装置１６０は、トポロジーＤＢ１６６を有さない構成をとってもよい。
【００４３】
診断部１６８は、統計情報取得部１６５により取得された統計情報に基づいて、制御システム１０を診断する。本実施形態に係る診断部１６８は、統計情報に加えてトポロジーＤＢ１６６に記憶されたトポロジー情報に基づいて、ネットワーク５０における異常箇所を推定する。ここで、診断部１６８は、ある制御周期においてあるコントローラ１００からの制御データが不採択となったことに応じて直ちにそのコントローラ１００が異常であると判断するのではなく、複数のインターフェイス装置１３０からの採否情報、及び／又は、複数の制御周期における採否情報を含む統計情報を用いて統計的な判断を行って異常を推定する。統計情報を利用することにより、診断部１６８は、制御データの不採択が永続的な故障または一時的な異常のいずれによって発生したかを判別し、及び／又は制御システム１０内の異常箇所をより精度良く絞り込むことも可能となる。これに代えて、診断部１６８は、診断を単純化すべく、統計情報を用いずに制御周期毎に採否情報を用いて異常を診断する構成をとることも可能である。例えば診断部１６８は、ある制御周期においてあるコントローラ１００からの制御データが不採択となったことに応じて直ちにそのコントローラ１００が異常であると判断してもよい。
【００４４】
診断結果出力部１７０は、診断部１６８による診断結果を出力する。
【００４５】
ネットワーク５０は、複数のコントローラ１００、複数のインターフェイス装置１３０、および診断装置１６０が接続される、汎用または専用のネットワークである。本実施形態において、コントローラ１００は、ＰＣ（パーソナルコンピュータ）、ワークステーション、サーバコンピュータ、汎用コンピュータ等のコンピュータであってよく、コンピュータ上で制御プログラムを実行することによりコントローラ１００として機能する。これに代えて、コントローラ１００は、プラント等の制御用に設計された専用コンピュータであってもよく、専用回路によって実現された専用ハードウェアであってもよい。また、インターフェイス装置１３０は、プラント等の制御用に設計された、マイクロコントローラ等を有する専用の装置であってもよく、一般のコンピュータにセンサ１５０及び／又は被制御機器１５５に接続するためのインターフェイス回路を付加した装置であってもよく、専用回路によって実現された専用ハードウェアであってもよい。診断装置１６０もまた、一般のコンピュータまたは専用コンピュータであってよく、コンピュータ上で診断プログラムを実行することによって診断装置１６０として機能してよい。これに代えて、診断装置１６０は、専用ハードウェアで実現されてもよい。ネットワーク５０は、イーサネット（登録商標）、ＬＡＮ、ＷＡＮ、及び／又はインターネット等を含む有線または無線ネットワークであってよく、産業用ネットワークを含んで構成されてもよい。ネットワーク５０は、コントローラ１００、インターフェイス装置１３０、および診断装置１６０間の通信を、ネットワークパケットを伝送することにより実現してもよい。
【００４６】
上記に代えて、制御システム１０は、単一筐体に格納されたコンピュータであってもよい。すなわち、各コントローラ１００は、コンピュータのプロセッサ上でのプログラム実行によって実現されてもよく、各インターフェイス装置１３０は、コンピュータのＩ／Ｏ装置として実装されてもよい。また、各コントローラ１００は、１または複数のプロセッサにより実行される仮想マシンとして実装されてもよい。このような構成においては、制御システム１０は、汎用または専用のネットワークであるネットワーク５０を備えず、コントローラ１００およびインターフェイス装置１３０が、プロセッサおよびＩ／Ｏ装置間を接続するメモリコントローラハブおよびＩ／Ｏコントローラハブ等のチップセットによって接続されうる。
【００４７】
図２は、本実施形態に係るコントローラ１００の動作フローを示す。一例として本図は、コントローラ１００が実行する１または複数の制御処理のうち、１つの制御処理について１制御周期分の動作フローを示す。各コントローラ１００は、同一または異なる長さの制御周期で周期的に実行される複数の制御処理のそれぞれについて、並列または並行に本図の動作フローを実行して、各制御処理の対象となる１または複数の被制御機器１５５を制御してもよい。
【００４８】
Ｓ２００（ステップ２００）において、制御パラメータ受信部１１０は、制御処理で使用する１または複数の制御パラメータを、各制御パラメータを取得したインターフェイス装置１３０から受信する。制御パラメータ受信部１１０は、制御パラメータの読出アクセスまたは読出リクエストを対象のインターフェイス装置１３０へと発行して、対象のインターフェイス装置１３０内の制御パラメータ送信部１３４が返信する制御パラメータを受信する。ここで、読出対象の制御パラメータは、制御システム１０のグローバルアドレス空間内のアドレス、グローバルレジスタ空間内のレジスタ識別子（ＩＤ、例えば識別番号またはタグ名等の識別名）、または、インターフェイス装置１３０の識別子と当該インターフェイス装置１３０のローカルアドレス（レジスタ）空間内のアドレス（レジスタ識別子）とのペア等の識別情報を用いて指定される。ここでインターフェイス装置１３０の識別子は、ＩＰアドレス等のネットワーク上におけるノードを特定する情報を用いて表されてもよい。読出アクセスまたは読出リクエストは、制御パラメータの識別情報に加え、要求元のコントローラ１００の識別情報及び／又は制御周期等を含んでもよい。
【００４９】
これに代えて、インターフェイス装置１３０内の制御パラメータ送信部１３４は、制御周期毎に、制御パラメータ取得部１３２が取得した制御パラメータを、当該制御パラメータを使用する制御パラメータ受信部１１０へと送信し、制御パラメータ受信部１１０は、送信されてきた制御パラメータを受信してもよい。制御パラメータ送信部１３４が送信する情報は、制御パラメータの値に加えて、制御パラメータの識別情報、宛先のコントローラ１００の識別情報、及び／又は制御周期等を含んでもよい。
【００５０】
Ｓ２２０において、制御演算部１１４は、制御パラメータ受信部１１０から入力される１または複数の制御パラメータの値を入力パラメータとして、対象とする１または複数の被制御機器１５５に対する制御データを出力する制御演算処理を実行する。複数のコントローラ１００が正常に動作している場合には、複数の制御演算部１１４は、同じ値の制御パラメータを入力したことに応じて同じ値の制御データを出力する。
【００５１】
Ｓ２３０において、制御データ送信部１１６は、制御演算部１１４が出力した制御データを、制御対象の１または複数の被制御機器１５５へと送信する。制御データ送信部１１６は、制御データの書込アクセスまたは書込リクエストを制御対象の被制御機器１５５が接続されたインターフェイス装置１３０へと発行して、当該インターフェイス装置１３０内のレジスタまたはメモリに制御データを書き込む。このような書込アクセスまたは書込リクエストは、制御パラメータの識別情報と同様に定義された制御データの宛先の識別情報、要求元のコントローラ１００の識別情報、及び／又は動作周期等を含みうる。
【００５２】
図３は、本実施形態に係るインターフェイス装置１３０の動作フローを示す。一例として本図は、コントローラ１００が実行する１または複数の制御処理のうち、１つの制御処理について１制御周期分に対応するインターフェイス装置１３０の動作フローを示す。各インターフェイス装置１３０は、各コントローラ１００が同一または異なる長さの制御周期で周期的に実行する複数の制御処理のそれぞれに対応して、並列または並行に本図の動作フローを実行して、センサ１５０からの入力処理および被制御機器１５５への出力処理を行ってもよい。
【００５３】
Ｓ３００において、制御パラメータ取得部１３２は、接続先のセンサ１５０からセンスデータ等の制御パラメータを取得する。また、制御パラメータ取得部１３２は、コントローラ１００で実行する制御処理で使用する被制御機器１５５の設定パラメータ等のコントローラ１００がアクセス可能な任意のパラメータを、コントローラ１００からの要求に応じて取得してもよい。制御パラメータ取得部１３２は、制御パラメータ送信部１３４がコントローラ１００から読出アクセスまたは読出リクエストを受けたことに応じて制御パラメータを取得してもよく、制御周期とは独立したサンプリング周期（例えば、制御周期より小さいサンプリング周期）で制御パラメータを取得してもよい。
【００５４】
Ｓ３１０において、制御パラメータ送信部１３４は、制御パラメータ取得部１３２が取得した制御パラメータを、当該制御パラメータを使用するコントローラ１００へと送信する。制御パラメータ送信部１３４は、コントローラ１００からの読出アクセスまたは読出リクエストに応じて、対象の制御パラメータを返信してもよく、制御パラメータ毎に予め設定された宛先の１または複数のコントローラ１００に対して、予め設定された周期で対象の制御パラメータを送信してもよい。
【００５５】
Ｓ３２０において、制御データ受信部１３６は、各コントローラ１００が送信する、冗長化された複数の制御データを受信する。
【００５６】
Ｓ３３０において、採択部１３８は、冗長化された複数の制御データのそれぞれの採否を決定する。ここで、インターフェイス装置１３０に複数の被制御機器１５５が接続されている等により、インターフェイス装置１３０が複数種類の制御データを受け取る場合には、採択部１３８は、同一対象の制御データ毎に採否を判断する。本実施形態に係る採択部１３８は、予め定められた数以上の制御データが同一であることを条件として、その制御データを被制御機器１５５へと出力すべき制御出力データとする。採択部１３８は、複数の制御データの多数決によって、被制御機器１５５へと出力すべき制御出力データを決定してもよく、多数決により選ばれた制御データの値が、予め定められた数以上の制御データで同一であることを条件として、制御出力データに選択してもよい。例えば、コントローラ１００が５台ある場合において上記の数を２としたとすると、３台のコントローラ１００が制御データａを出力し、２台のコントローラ１００が制御データｂを出力した場合には制御データａを制御出力データとし、２台のコントローラ１００が制御データａを出力し、残りのコントローラ１００が制御データａと異なる別々の制御データを出力した場合には制御データａを制御出力データとし、２台以上のコントローラ１００が同一値の制御データを出力しなかった場合には、いずれの制御データも不採択としてもよい。この例では、制御システム１０は、最大３台のコントローラ１００が故障または保守状態となったとしても、正常稼働を継続することが可能となる。
【００５７】
採択部１３８は、制御周期の開始タイミングまたは最初の制御データの受信タイミング等の基準タイミングから予め定められたタイムアウト期間の間に一部のコントローラ１００から制御データを受信できなかったことに応じて、当該制御データがタイムアウトしたと判断し、不採択としてもよい。
【００５８】
Ｓ３４０において、採否通知部１４０は、複数のコントローラ１００のそれぞれからの制御データの採否を示す採否情報を診断装置１６０へと通知する。本実施形態に係る採否通知部１４０は、採否情報をバッファリングし、診断装置１６０から採否情報の読出アクセスまたは読出リクエストを受信したことに応じて採否情報を返信することにより、採否情報を診断装置１６０に通知する。診断装置１６０は、インターフェイス装置１３０との間で採否情報の読出アクセス等およびその返信を定期的にやり取りし、この通信をインターフェイス装置１３０からのハートビートとして利用することも可能である。これに代えて、採否通知部１４０に診断装置１６０の宛先を予め登録可能とし、採否通知部１４０が、採択のみ、または不採択のみを能動的に診断装置１６０へ通知するようにして、ネットワーク５０のトラフィック量を低減してもよい。採否通知部１４０は、診断装置１６０からの要求に応じて、制御周期毎に採否情報を診断装置１６０へと通知してもよく、複数の制御周期分を蓄積してから診断装置１６０へと通知してもよい。
【００５９】
Ｓ３５０において、制御データ出力部１４２は、冗長化された複数の制御データに基づく制御出力データを対象の被制御機器１５５へと出力する。本実施形態に係る制御データ出力部１４２は、制御出力データをそのまま対象の被制御機器１５５へと出力する。これに代えて、例えばコントローラ１００の制御周期が被制御機器１５５及び／又はインターフェイス装置１３０の動作周期よりも大きい場合等には、制御データ出力部１４２は、コントローラ１００の制御周期毎に受信する制御出力データを補間して被制御機器１５５へと出力していくようにしてもよい。
【００６０】
インターフェイス装置１３０は、本図の動作フローを制御周期毎に実行することにより、被制御機器１５５にあった制御周期毎に被制御機器１５５を制御することができる。
【００６１】
上記のＳ３３０において、採択部１３８は、採択の条件によってはいずれの制御データも採択しないケースもありうる。例えば、採択部１３８は、多数決採択において全ての制御データの値が互いに異なる場合には、いずれの制御データも採択しない方式をとりうる。このような場合、採否通知部１４０は、上記のＳ３４０において、全てのコントローラ１００からの制御データを不採択としたことを示す採択情報を診断装置１６０に通知してもよい。制御データ出力部１４２は、上記のＳ３５０において、直前の制御周期における制御出力データと同じ値の制御出力データを対象の被制御機器１５５に出力する構成、前の複数の制御周期における制御出力データの値から補間をした制御出力データを対象の被制御機器１５５に出力する構成、または、制御出力データの出力をスキップする構成等をとってもよい。
【００６２】
図４は、本実施形態に係る診断装置１６０の動作フローを示す。一例として本図は、診断装置１６０の１診断周期分に対応する診断装置１６０の動作フローを示す。診断装置１６０は、本図の動作フローを診断周期毎に繰り返し実行してもよい。
【００６３】
Ｓ４００において、採否受信部１６２は、複数のインターフェイス装置１３０のそれぞれから制御データの採否を示す採否情報を受信する。採否受信部１６２は、診断周期毎等の好適なタイミングで採否情報の読出アクセスまたは読出リクエストをインターフェイス装置１３０内の採否通知部１４０へと発行することにより、採否情報を取得してもよい。これに代えて、各インターフェイス装置１３０が制御周期毎等の予め定められたタイミングで能動的に採否情報を送信する構成をとる場合には、採否受信部１６２は、送信されてくる採否情報を順次受信する。
【００６４】
Ｓ４１０において、採否受信部１６２は、受信した採否情報をログＤＢ１６４内のログ情報に追加する。ログ情報の構成例については、後述する。
【００６５】
Ｓ４１５において、統計情報取得部１６５は、ログＤＢ１６４に格納された採否情報のログ情報から、診断部１６８が制御システム１０の診断に用いる各種の統計情報を取得する。
【００６６】
Ｓ４２０において、診断部１６８は、統計情報取得部１６５により取得された統計情報に基づいて、制御システム１０を診断する。診断部１６８は、トポロジーＤＢ１６６に記録されたネットワーク５０のトポロジー情報に更に基づいて、制御システム１０を診断してもよい。この診断において、診断部１６８は、統計情報および必要に応じてトポロジー情報に基づいて、制御システム１０内における異常箇所、および、異常の程度または重度を推定する。診断部１６８による診断の具体例については、図５に関連して後述する。
【００６７】
Ｓ４３０において、診断結果出力部１７０は、診断部１６８による診断結果を出力する。診断結果出力部１７０は、制御システム１０の管理者またはオペレータ等が使用する監視／管理コンソール、及び／又は監視／管理端末に、制御システム１０における推定異常箇所および推定異常重度等を表示すること、制御システム１０の管理者またはオペレータに対して電子メールまたはＳＭＳ等により推定異常箇所および推定異常重度等を通知すること、並びに、制御システム１０の各部の近傍に配置された、各部の異常を示す警告ランプまたは警告アラーム等を用いて推定異常箇所の異常を警告すること等といった各種の手段を用いて制御システム１０の異常を通知する。
【００６８】
診断結果出力部１７０は、制御システム１０内における異常と診断された機器（コントローラ１００、インターフェイス装置１３０、ネットワーク５０の各経路等）を示す情報を、他の機器に通知してもよい。これにより、通知を受けた他の機器は、異常と診断された機器から受診するデータを無視または不採用とする等により、異常の影響を受けないようにすることができる。例えば、診断結果出力部１７０は、あるコントローラ１００が異常と診断されたことを、各インターフェイス装置１３０に通知してもよい。これにより、各インターフェイス装置１３０は、異常と診断されたコントローラ１００からの制御データを値によらず不採択とすることができる。
【００６９】
図５は、本実施形態に係るログＤＢ１６４に格納される統計情報の一例を示す。採否受信部１６２は、各インターフェイス装置１３０から採否情報を受信して、一例として本図に示すログ情報に記録していく。
【００７０】
本図のログ情報は、日時、インターフェイス装置ＩＤ（図中「Ｉ／Ｆ  ＩＤ」）、制御アドレス、および各コントローラからの制御データの採否情報（図中「コントローラ１」、「コントローラ２」、および「コントローラ３」）の各カラムに対応するデータ要素を含む複数のエントリを有する。本図は、説明の便宜上、ログ情報の先頭カラムにエントリ番号（図中「＃」）を更に加えたものとして示す。
【００７１】
「日時」は、例えば採否通知部１４０が採否情報を採択部１３８から取得したタイミングを示す。これに代えて、ログＤＢ１６４は、採否情報に関する任意のタイミングに関する情報をログ情報に記録してもよい。例えば、ログＤＢ１６４は、制御周期の開始タイミング等の日時、または制御周期の識別情報をログ情報に記録してもよい。
【００７２】
「インターフェイス装置ＩＤ」および「制御アドレス」は、制御システム１０内における、採否情報に関連する制御データの位置を示す。本図の例において、制御データを送信すべき位置は、制御システム１０内における対象のインターフェイス装置１３０の識別子（ＩＤ）と、対象のインターフェイス装置１３０内における制御データの格納先のアドレス（制御アドレス）とのペアによって指定されるものとする。ここで、制御データを送信すべき位置は、制御システム１０のグローバルアドレス空間内のアドレス、グローバルレジスタ空間内のレジスタ識別子（ＩＤ）、または、インターフェイス装置１３０の識別子と当該インターフェイス装置１３０のローカルアドレス（レジスタ）空間内のアドレス（レジスタ識別子）とのペア等の識別情報を用いて指定されてもよい。
【００７３】
「各コントローラからの制御データの採否情報」は、「日時」で示されたタイミングにおける「インターフェイス装置ＩＤ」および「制御アドレス」の位置に対する各コントローラ１００からの制御データの採否を示す。本図において、制御データの採否は、制御データが採択された場合に「採択」、制御データが不採択となった場合に「不採択」、制御データがタイムアウトにより受信できなかった場合に「タイムアウト」として表される。タイムアウトした制御データは、不採択としても扱われる。
【００７４】
本図において、Ｘ番目のエントリは、「２０１８年１月４日１５：３０：１１」に取得された、インターフェイス装置ＩＤが「１」のインターフェイス装置１３０内の制御アドレス「８Ｆ７Ｃ」で識別される位置に対し、全て（３つ）のコントローラ１００からの制御データが採択されたことを示す。Ｙ番目のエントリは、コントローラ１および３からの制御データは採択されたが、コントローラ２からの制御データはインターフェイス装置１３０により受信されたものの不採択とされたことを示す。Ｚ番目のエントリは、コントローラ１および３からの制御データは採択されたが、コントローラ２からの制御データはタイムアウトにより不採択とされたことを示す。
【００７５】
診断部１６８は、統計情報取得部１６５がログ情報から取得する統計情報を用いて、以下に例示する診断の少なくとも１つを行ってよい。
（１）コントローラ１００の異常の推定１
統計情報取得部１６５は、各コントローラ１００の制御データが不採択とされた数の統計をとり、診断部１６８は、第１基準個数以上の制御データが不採択とされたコントローラ１００に異常の可能性があると推定する。第１基準個数を１とした場合、診断部１６８は、制御データが１回不採択となったことに応じて、当該制御データを送信した（または送信すべきであった）コントローラ１００を直ちに異常と推定する。第１基準個数を２以上とした場合、診断部１６８は、あるコントローラ１００からの制御データの不採択が繰り返し発生する、または多発することを条件として、そのコントローラ１００を異常と推定する。これにより、診断部１６８は、落雷等によって生じた外部のノイズ等の一過性の原因による不採択を除外して、比較的恒常的に発生する事象に基づいて異常を推定することができる。
【００７６】
（２）コントローラ１００の異常の推定２
あるコントローラ１００からの制御データを比較的多くのインターフェイス装置１３０が不採択とした場合には、送信元のコントローラ１００に異常がある可能性が比較的高く、あるコントローラ１００からの制御データを比較的少ないインターフェイス装置１３０のみが不採択とした場合には、送信元のコントローラ１００ではなく受信側のインターフェイス装置１３０に異常がある可能性が比較的高くなる。そこで、上記（１）に異常箇所の判定条件を追加し、診断部１６８は、例えば複数のインターフェイス装置１３０のうち第１基準台数以上のインターフェイス装置１３０のそれぞれにおいて、第１基準個数以上の制御データが不採択とされたコントローラ１００に異常の可能性があると推定してもよい。この場合、統計情報取得部１６５は、各インターフェイス装置１３０において、各コントローラ１００からの制御データが不採択とされた数の統計をとる。一例として、インターフェイス装置１３０が１００台ある場合において、診断部１６８は、３台（第１基準台数）以上のインターフェイス装置１３０のそれぞれにおいて、４（第１基準個数）以上の制御データが不採択とされた場合に、制御データの送信元のコントローラ１００を異常と推定してもよい。
【００７７】
（３）インターフェイス装置１３０の異常の推定
上記（２）に関連して、診断部１６８は、コントローラ１００からの制御データを比較的少ないインターフェイス装置１３０のみが不採択とした場合には、受信側のインターフェイス装置１３０に異常がある可能性を推定してもよい。すなわち、診断部１６８は、複数のインターフェイス装置１３０のうち第２基準台数未満のインターフェイス装置１３０のそれぞれにおいて、第２基準個数以上の制御データが不採択とされたことに応じて、制御データの受信側のインターフェイス装置１３０に異常の可能性があると推定してもよい。例えば、診断部１６８は、３台（第２基準台数）未満のインターフェイス装置１３０のそれぞれにおいて、４（第２基準個数）以上の制御データが不採択とされたことに応じて、受信側のインターフェイス装置１３０に異常の可能性があると推定する。この場合、他のインターフェイス装置１３０のそれぞれにおいては、第２基準個数（例えば４）未満の制御データ以外は採択されることとなる。ここで、第２基準台数は、上記（２）の第１基準台数と同じであってよく、これに代えて第２基準台数は第１基準台数よりも小さい数、または大きい数であってもよい。第２基準台数が第１基準台数よりも大きい場合、診断部１６８は、上記（２）に従い送信元のコントローラ１００を、（３）に従い受信側のインターフェイス装置１３０を、共に異常の可能性があると推定してもよい。
【００７８】
（４）ネットワーク５０の異常の推定
複数のコントローラ１００から複数のインターフェイス装置１３０へと送信される制御データのうち、ネットワーク５０のあるリンクにより伝送された（または伝送されるはずの）制御データが不採択となったことが比較的多ければ、ネットワーク５０を構成する複数のリンクのうち、そのリンクに異常がある可能性がある。例えば、このような異常は、あるリンクが遮断され、制御データの不着によりタイムアウトによって不採択となるケース、および、あるリンクで制御データにビット誤り等のエラーが生じて宛先に到着し、不採択となるケースがあり得る。そこで、統計情報取得部１６５は、送信元のコントローラ１００および宛先のインターフェイス装置１３０の組み合わせのそれぞれについて、制御データが不採択とされた数の統計をとってよい。診断部１６８は、統計情報における不採択となった制御データが伝送されるべきネットワーク５０内の経路を、各コントローラ１００および各インターフェイス装置１３０の間に設けられた１または複数のリンクを特定する情報を含むトポロジー情報を用いて特定し、あるリンクを通過した制御データが第３基準個数以上不採択とされたことに応じて、そのリンクを異常と推定してもよい。この推定において、診断部１６８は、タイムアウトにより不採択とされた制御データのみを対象として、リンクの遮断を推定してもよい。なお、診断部１６８は、コントローラ１００からインターフェイス装置１３０の間のある通信区間においてリンクが冗長化されている場合においても、同様に異常を推定することで、冗長化されたリンクの少なくとも１つに異常があることを推定することができる。
【００７９】
（５）自己診断結果を利用した異常の推定
複数のインターフェイス装置１３０のうち少なくとも１つのインターフェイス装置１３０が自己診断機能を有する場合、診断部１６８は、少なくとも１つのインターフェイス装置１３０の自己診断結果に更に基づいて、制御システム１０の異常箇所を推定してもよい。例えば診断部１６８は、統計情報に基づいて、あるコントローラ１００またはあるインターフェイス装置１３０に異常の可能性があると推定した場合において、このインターフェイス装置１３０が自己診断により異常を検知している場合には、コントローラ１００が異常であると推定せず、このインターフェイス装置１３０に異常があると推定してもよい。また、あるインターフェイス装置１３０が自己診断により異常を検知している場合において、診断部１６８は、このインターフェイス装置１３０における制御データの不採択については、上記（１）〜（４）等の条件判断においてカウントに含めないようにしてもよい。ここで、診断装置１６０は、このインターフェイス装置１３０が自己診断の結果異常であることを診断結果として別途出力してよい。同様に、複数のコントローラ１００のうち少なくとも１つのコントローラ１００が自己診断機能を有してもよく、診断部１６８は、コントローラ１００の自己診断結果を更に利用して異常を推定してもよい。なお、コントローラ１００およびインターフェイス装置１３０は、自己診断テストとして、例えばループバック通信テスト、及び／又はメモリリード／ライトテスト等の各種のテストを採用してよい。
【００８０】
上記において、統計情報取得部１６５は、制御データが不採択となった回数を、予め定められた長さのタイムウィンドウの範囲における採否情報をカウントすることにより統計をとってもよい。そして、診断部１６８は、基準個数の不採択があったか否かの判断を、タイムウィンドウの範囲で行ってもよい。例えば診断部１６８は、１時間以内に３回以上制御データが不採択となった場合に、その制御データの送信元のコントローラ１００を異常と推定してもよい。換言すれば、診断部１６８は、制御データが基準頻度以上不採択となったことを条件として、上記の推定を行ってもよい。また、統計情報取得部１６５は、制御データが送信された回数に対する制御データが不採択となった回数の割合等の統計をとってもよく、診断部１６８は、基準個数の不採択があったか否かの判断を、ベースとなる制御データの個数に対する割合で判定してもよい。
【００８１】
診断部１６８は、統計情報、並びに必要に応じてトポロジー情報および自己診断結果を用いて、一例として上記のような様々な判定基準により制御システム１０内の異常箇所を推定することができる。また、診断部１６８は、異常と推定した箇所に関する異常または不採択の発生回数（回数自体、頻度、または割合）の大きさに応じて、異常の重度を算出または推定してもよい。
【００８２】
図６は、本実施形態に係る制御システム１０の変形例を示す。本図において、図１と同じ符号を付した部材は、図１と同一または同様の構成および機能を有するので、特に必要がない限り説明を省略する。本図の制御システム１０は、各インターフェイス装置１３０が送信する採否情報を診断装置１６０がログＤＢ１６４に蓄積するのに代えて、各インターフェイス装置１３０がローカルに採否情報をローカルログ情報として蓄積して診断装置１６０へと送信する。
【００８３】
インターフェイス装置１３０は、採否通知部１４０に代えて、ローカルログＤＢ６４４およびローカルログ送信部６４６を有する。ローカルログＤＢ６４４は、制御データの採否情報を採択部１３８から受け取り、インターフェイス装置１３０内のローカルなログ情報として格納していく。ローカルログ送信部６４６は、ローカルログＤＢ６４４に格納されたローカルなログ情報を、診断装置１６０内のローカルログ受信部６６２からの要求に応じて診断装置１６０へと送信する。
【００８４】
診断装置１６０は、採否受信部１６２およびログＤＢ１６４に代えて、ローカルログ受信部６６２を有する。ローカルログ受信部６６２は、各ローカルログ情報を受信する。ローカルログ受信部６６２は、診断タイミングまたは診断周期毎に、各インターフェイス装置１３０に対して読出アクセスまたは読出リクエストを送信して、各インターフェイス装置１３０からローカルログ情報のうち必要な部分を読み出す。これに代えて、ローカルログ受信部６６２は、各ローカルログ送信部６４６が定期的等の好適なタイミングで送信するローカル統計情報を受信して統計情報として内部に格納してもよい。
【００８５】
本変形例に係る制御システム１０によれば、診断装置１６０が診断を行うまで各インターフェイス装置１３０がローカルログ情報を格納しておくことができるので、診断装置１６０またはインターフェイス装置１３０が、ネットワーク５０の負荷に応じて好適なタイミングを選んでローカルログ情報を伝送するようにすることも可能である。
【００８６】
本変形例において、各インターフェイス装置１３０は、ローカルログＤＢ６４４内のローカルログ情報に基づいて、各インターフェイス装置１３０における制御データの採否を含むローカルな統計情報を取得するローカル統計情報取得部を有する構成をとってもよい。この場合、インターフェイス装置１３０は、ローカルログ送信部６４６に代えて、ローカルな統計情報を診断装置１６０へと送信するローカル統計情報送信部を有する。また、診断装置１６０は、ローカルログ受信部６６２に代えて、ローカルな統計情報を受信するローカル統計受信部を有してもよい。
【００８７】
以上に示した制御システム１０によれば、診断装置１６０が制御システム１０全体を診断することができ、各コントローラ１００、各インターフェイス装置１３０、およびネットワーク５０として汎用または一般的な機器を利用した場合でも制御システム１０の信頼性を高めることが可能となる。
【００８８】
また、以上に示した制御システム１０によれば、各コントローラ１００からの制御データの採否を、いずれのコントローラ１００からの制御データであるかは無関係にインターフェイス装置１３０側で判断することができる。このため、制御システム１０が稼働状態のまま複数のコントローラ１００の一部をオフラインにすることも可能となる。例えば、制御システム１０の稼働中に、４台のコントローラ１００のうち１台ずつを順次停止させてＯＳ等の入れ替えまたはアップデートを行い、順に再起動してオンラインに戻していく等のシームレスな運用も可能となる。
【００８９】
本発明の様々な実施形態は、フローチャートおよびブロック図を参照して記載されてよく、ここにおいてブロックは、（１）操作が実行されるプロセスの段階または（２）操作を実行する役割を持つ装置のセクションを表わしてよい。特定の段階およびセクションが、専用回路、コンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、および／またはコンピュータ可読媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタルおよび／またはアナログハードウェア回路を含んでよく、集積回路（ＩＣ）および／またはディスクリート回路を含んでよい。プログラマブル回路は、論理ＡＮＤ、論理ＯＲ、論理ＸＯＲ、論理ＮＡＮＤ、論理ＮＯＲ、および他の論理操作、フリップフロップ、レジスタ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックアレイ（ＰＬＡ）等のようなメモリ要素等を含む、再構成可能なハードウェア回路を含んでよい。
【００９０】
コンピュータ可読媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読媒体は、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読媒体のより具体的な例としては、フロッピー（登録商標）ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭまたはフラッシュメモリ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、静的ランダムアクセスメモリ（ＳＲＡＭ）、コンパクトディスクリードオンリメモリ（ＣＤ-ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、ブルーレイ（ＲＴＭ）ディスク、メモリスティック、集積回路カード等が含まれてよい。
【００９１】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはＳｍａｌｌｔａｌｋ、ＪＡＶＡ（登録商標）、Ｃ＋＋等のようなオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語のような従来の手続型プログラミング言語を含む、１または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかを含んでよい。
【００９２】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサまたはプログラマブル回路に対し、ローカルにまたはローカルエリアネットワーク（ＬＡＮ）、インターネット等のようなワイドエリアネットワーク（ＷＡＮ）を介して提供され、フローチャートまたはブロック図で指定された操作を実行するための手段を作成すべく、コンピュータ可読命令を実行してよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【００９３】
図７は、本発明の複数の態様が全体的または部分的に具現化されてよいコンピュータ２２００の例を示す。コンピュータ２２００にインストールされたプログラムは、コンピュータ２２００に、本発明の実施形態に係る装置に関連付けられる操作または当該装置の１または複数のセクションとして機能させることができ、または当該操作または当該１または複数のセクションを実行させることができ、および／またはコンピュータ２２００に、本発明の実施形態に係るプロセスまたは当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ２２００に、本明細書に記載のフローチャートおよびブロック図のブロックのうちのいくつかまたはすべてに関連付けられた特定の操作を実行させるべく、ＣＰＵ２２１２によって実行されてよい。
【００９４】
本実施形態によるコンピュータ２２００は、ＣＰＵ２２１２、ＲＡＭ２２１４、グラフィックコントローラ２２１６、およびディスプレイデバイス２２１８を含み、それらはホストコントローラ２２１０によって相互に接続されている。コンピュータ２２００はまた、通信インターフェイス２２２２、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６、およびＩＣカードドライブのような入／出力ユニットを含み、それらは入／出力コントローラ２２２０を介してホストコントローラ２２１０に接続されている。コンピュータはまた、ＲＯＭ２２３０およびキーボード２２４２のようなレガシの入／出力ユニットを含み、それらは入／出力チップ２２４０を介して入／出力コントローラ２２２０に接続されている。
【００９５】
ＣＰＵ２２１２は、ＲＯＭ２２３０およびＲＡＭ２２１４内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ２２１６は、ＲＡＭ２２１４内に提供されるフレームバッファ等またはそれ自体の中にＣＰＵ２２１２によって生成されたイメージデータを取得し、イメージデータがディスプレイデバイス２２１８上に表示されるようにする。
【００９６】
通信インターフェイス２２２２は、ネットワークを介して他の電子デバイスと通信する。ハードディスクドライブ２２２４は、コンピュータ２２００内のＣＰＵ２２１２によって使用されるプログラムおよびデータを格納する。ＤＶＤ−ＲＯＭドライブ２２２６は、プログラムまたはデータをＤＶＤ−ＲＯＭ２２０１から読み取り、ハードディスクドライブ２２２４にＲＡＭ２２１４を介してプログラムまたはデータを提供する。ＩＣカードドライブは、プログラムおよびデータをＩＣカードから読み取り、および／またはプログラムおよびデータをＩＣカードに書き込む。
【００９７】
ＲＯＭ２２３０はその中に、アクティブ化時にコンピュータ２２００によって実行されるブートプログラム等、および／またはコンピュータ２２００のハードウェアに依存するプログラムを格納する。入／出力チップ２２４０はまた、様々な入／出力ユニットをパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入／出力コントローラ２２２０に接続してよい。
【００９８】
プログラムが、ＤＶＤ−ＲＯＭ２２０１またはＩＣカードのようなコンピュータ可読媒体によって提供される。プログラムは、コンピュータ可読媒体から読み取られ、コンピュータ可読媒体の例でもあるハードディスクドライブ２２２４、ＲＡＭ２２１４、またはＲＯＭ２２３０にインストールされ、ＣＰＵ２２１２によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ２２００に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置または方法が、コンピュータ２２００の使用に従い情報の操作または処理を実現することによって構成されてよい。
【００９９】
例えば、通信がコンピュータ２２００および外部デバイス間で実行される場合、ＣＰＵ２２１２は、ＲＡＭ２２１４にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インターフェイス２２２２に対し、通信処理を命令してよい。通信インターフェイス２２２２は、ＣＰＵ２２１２の制御下、ＲＡＭ２２１４、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭ２２０１、またはＩＣカードのような記録媒体内に提供される送信バッファ処理領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、またはネットワークから受信された受信データを記録媒体上に提供される受信バッファ処理領域等に書き込む。
【０１００】
また、ＣＰＵ２２１２は、ハードディスクドライブ２２２４、ＤＶＤ−ＲＯＭドライブ２２２６（ＤＶＤ−ＲＯＭ２２０１）、ＩＣカード等のような外部記録媒体に格納されたファイルまたはデータベースの全部または必要な部分がＲＡＭ２２１４に読み取られるようにし、ＲＡＭ２２１４上のデータに対し様々なタイプの処理を実行してよい。ＣＰＵ２２１２は次に、処理されたデータを外部記録媒体にライトバックする。
【０１０１】
様々なタイプのプログラム、データ、テーブル、およびデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。ＣＰＵ２２１２は、ＲＡＭ２２１４から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプの操作、情報処理、条件判断、条件分岐、無条件分岐、情報の検索／置換等を含む、様々なタイプの処理を実行してよく、結果をＲＡＭ２２１４に対しライトバックする。また、ＣＰＵ２２１２は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第２の属性の属性値に関連付けられた第１の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、ＣＰＵ２２１２は、第１の属性の属性値が指定される、条件に一致するエントリを当該複数のエントリの中から検索し、当該エントリ内に格納された第２の属性の属性値を読み取り、それにより予め定められた条件を満たす第１の属性に関連付けられた第２の属性の属性値を取得してよい。
【０１０２】
上で説明したプログラムまたはソフトウェアモジュールは、コンピュータ２２００上またはコンピュータ２２００近傍のコンピュータ可読媒体に格納されてよい。また、専用通信ネットワークまたはインターネットに接続されたサーバーシステム内に提供されるハードディスクまたはＲＡＭのような記録媒体が、コンピュータ可読媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ２２００に提供する。
【０１０３】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０４】
例えば、インターフェイス装置１３０が同一制御周期に複数のコントローラ１００に対して値が異なる制御パラメータを送信しうる構成をとる場合には、コントローラ１００は、同一制御周期に同一制御パラメータについて同一値を全コントローラ１００の制御演算部１１４に供給する同期化部を備えてもよい。このような同期化部は、他のコントローラ１００内の同期化部と通信して、各制御周期において制御パラメータの値の多数決をとる等により、複数のコントローラ１００の間で各制御演算部１１４に同一値の制御パラメータを供給し、各制御演算部１１４が同一値の入力に基づいて制御演算処理を行うことができるようにする。
【０１０５】
また、各コントローラ１００は、同一値の制御パラメータを用いず非同期で動作する構成をとることも可能である。この場合、各コントローラ１００は、同期化処理をしなくても、より近いタイミングではより近い値となるような連続的に変化する制御パラメータを入力するのであれば、互いに比較的近い値の制御データを出力することができる。このため、インターフェイス装置１３０は、各コントローラ１００からの制御データの平均等をとって制御出力データとすることができる。
【０１０６】
この場合、採択部１３８は、複数の制御データの平均値、外れ値を除いた平均値、中央値、外れ値を除いた中央値、または重み付け平均値を制御出力データの値としてもよい。この場合において、採択部１３８は、外れ値とした制御データを不採択としてもよく、制御出力データには一部値が反映されたとしても、制御出力データの値に対して予め定められた基準範囲外である制御データを不採択とみなしてもよい。逆に、採択部１３８は、例えば複数の制御データの最大値および最小値を除く値の平均値を制御出力データとすることにより、最大値または最小値を制御出力データに反映しなかったとしても、最大値または最小値が制御出力データの値に対して基準範囲内であれば対応する制御データを採択したとみなしてもよい。
【０１０７】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１０８】
１０  制御システム、５０  ネットワーク、１００ａ〜ｎ  コントローラ、１１０  制御パラメータ受信部、１１４  制御演算部、１１６  制御データ送信部、１３０ａ〜ｍ  インターフェイス装置、１３２  制御パラメータ取得部、１３４  制御パラメータ送信部、１３６  制御データ受信部、１３８  採択部、１４０  採否通知部、１４２  制御データ出力部、１５０ａ〜ｍ  センサ、１５５ａ〜ｍ  被制御機器、１６０  診断装置、１６２  採否受信部、１６４  ログＤＢ、１６５  統計情報取得部、１６６  トポロジーＤＢ、１６８  診断部、１７０  診断結果出力部、６４４  ローカルログＤＢ、６４６  ローカルログ送信部、６６２  ローカルログ受信部、２２００  コンピュータ、２２０１  ＤＶＤ−ＲＯＭ、２２１０  ホストコントローラ、２２１２  ＣＰＵ、２２１４  ＲＡＭ、２２１６  グラフィックコントローラ、２２１８  ディスプレイデバイス、２２２０  入／出力コントローラ、２２２２  通信インターフェイス、２２２４  ハードディスクドライブ、２２２６  ＤＶＤ−ＲＯＭドライブ、２２３０  ＲＯＭ、２２４０  入／出力チップ、２２４２  キーボード
【図１】
2019139490.tif 000003
【図２】
2019139490.tif 000004
【図３】
2019139490.tif 000005
【図４】
2019139490.tif 000006
【図５】
2019139490.tif 000007
【図６】
2019139490.tif 000008
【図７】
2019139490.tif 000009