(57)【要約】【課題】少ないハードウェア量でノードを冗長化する。【解決手段】各ノード１０に、予め当該ノードに割り当てられている処理を実行する主系処理部１０Ｘと、他のノードに割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部１０Ｙとを設け、主系処理部１０Ｘおよび待機系処理部１０Ｙが、共通ファームウェア１０Ｚ上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、主系処理および待機系処理をそれぞれ実行する。【選択図】  図１
2019040331.tif 000002
【特許請求の範囲】
【請求項１】
通信回線を介して接続された複数のノードで処理を分散して実行する分散制御システムであって、
前記複数のノードは、
予め当該ノードに割り当てられている主系処理を実行する主系処理部と、
他のノードに割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部と、
前記主系処理部および前記待機系処理部の両方で共用される共通ファームウェアとを備え、
前記主系処理部および前記待機系処理部は、前記共通ファームウェア上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、前記主系処理および前記待機系処理をそれぞれ実行する
ことを特徴とする分散制御システム。
【請求項２】
請求項１に記載の分散制御システムにおいて、
前記主系処理部は、前記共通ファームウェア上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部と、前記主系ＡＰ用ハードウェア上で前記主系処理のアプリケーションを実行する主系ＡＰ処理部とを有し、
前記待機系処理部は、前記共通ファームウェア上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部と、前記待機系ＡＰ用ハードウェア上で前記待機系処理のアプリケーションを実行する待機系ＡＰ処理部とを有する
ことを特徴とする分散制御システム。
【請求項３】
請求項１または請求項２に記載の分散制御システムにおいて、
前記異常ノード以外の正常ノードのうち、予め設定されている選択条件に基づいて選択された代替ノードが、前記待機系処理部により前記待機系処理を代替実行することを特徴とする分散制御システム。
【請求項４】
請求項３に記載の分散制御システムにおいて、
前記選択条件は、前記異常が発生した時点において、前記正常ノードのうちハードウェア処理能力の余裕が最も大きいノードを選択するという条件からなることを特徴とする分散制御システム。
【請求項５】
請求項１または請求項２に記載の分散制御システムにおいて、
前記異常ノード以外の正常ノードのうち、前記異常ノードの処理を代替実行可能なノードが、前記待機系処理部により前記待機系処理を代替実行することを特徴とする分散制御システム。
【請求項６】
通信回線を介して接続された複数のノードで処理を分散して実行する分散制御システムで用いられる前記ノードであって、
予め当該ノードに割り当てられている主系処理を実行する主系処理部と、
他のノードに割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部と、
前記主系処理部および前記待機系処理部の両方で共用される共通ファームウェアとを備え、
前記主系処理部および前記待機系処理部は、前記共通ファームウェア上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、前記主系処理および前記待機系処理をそれぞれ実行する
ことを特徴とするノード。
【請求項７】
請求項６に記載のノードにおいて、
前記主系処理部は、前記共通ファームウェア上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部と、前記主系ＡＰ用ハードウェア上で前記主系処理のアプリケーションを実行する主系ＡＰ処理部とを有し、
前記待機系処理部は、前記共通ファームウェア上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部と、前記待機系ＡＰ用ハードウェア上で前記待機系処理のアプリケーションを実行する待機系ＡＰ処理部とを有する
ことを特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信回線を介して接続された複数のノードを冗長化するためのノード管理技術に関する。
【背景技術】
【０００２】
プラントやビルなどの大規模な設備では、施設に設けられている複数の機器を管理する機器管理システムとして、通信回線を介して接続された複数のノードで処理を分散して実行する分散制御システム（ＤＣＳ：Distributed Control System）が用いられている。  
【０００３】
例えば、プラントで用いられる機器管理システムの場合、オペレータが運転・監視を行うノード（ＨＭＩ：Human Machine Interface）、プラントの運転履歴などの各種データを管理するノード（ヒストリー機器）、異なるプロトコルのネットワーク間を接続するためのノード（ゲートウェイ機器）、高度の制御・演算を行うノード（制御機器）が用いられる。これらノードは、全体として、サーバ装置、ＰＣ、産業用コントローラ、ネットワーク機器などの情報処理装置から構成される。
【０００４】
分散制御システムは、設備を運転状況を維持するためには、いずれかのノードで故障が発生しても、システム全体として動作を維持する必要がある。
従来、このような分散制御システムの信頼性を確保する技術として、各ノードで実行する処理ごとに、当該処理を実行するためのハードウェアとして同じノードを２つずつ用意して二重化しておき、一方のノードに故障が発生した場合には、他方のノードに切り替えて処理を継続する技術が提案されている（例えば、特許文献１など参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１２３５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来技術では、各ノードを二重化しておく必要があるため、システム全体として２倍のハードウェア量が必要となり、システム構築に必要となるコストの増大およびシステム構成の複雑化を招くという問題点があった。
【０００７】
本発明はこのような課題を解決するためのものであり、少ないハードウェア量でノードを冗長化することができる冗長化技術を提供することを目的としている。
【課題を解決するための手段】
【０００８】
このような目的を達成するために、本発明にかかる分散制御システムは、通信回線を介して接続された複数のノードで処理を分散して実行する分散制御システムであって、前記複数のノードは、予め当該ノードに割り当てられている主系処理を実行する主系処理部と、他のノードに割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部と、前記主系処理部および前記待機系処理部の両方で共用される共通ファームウェアとを備え、前記主系処理部および前記待機系処理部は、前記共通ファームウェア上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、前記主系処理および前記待機系処理をそれぞれ実行するようにしたものである。
【０００９】
また、本発明にかかる上記分散制御システムの一構成例は、前記主系処理部が、前記共通ファームウェア上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部と、前記主系ＡＰ用ハードウェア上で前記主系処理のアプリケーションを実行する主系ＡＰ処理部とを有し、前記待機系処理部は、前記共通ファームウェア上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部と、前記待機系ＡＰ用ハードウェア上で前記待機系処理のアプリケーションを実行する待機系ＡＰ処理部とを有するものである。
【００１０】
また、本発明にかかる上記分散制御システムの一構成例は、前記異常ノード以外の正常ノードのうち、予め設定されている選択条件に基づいて選択された代替ノードが、前記待機系処理部により前記待機系処理を代替実行するようにしたものである。
【００１１】
また、本発明にかかる上記分散制御システムの一構成例は、前記選択条件が、前記異常が発生した時点において、前記正常ノードのうちハードウェア処理能力の余裕が最も大きいノードを選択するという条件からなるものである。
【００１２】
また、本発明にかかる上記分散制御システムの一構成例は、前記異常ノード以外の正常ノードのうち、前記異常ノードの処理を代替実行可能なノードが、前記待機系処理部により前記待機系処理を代替実行するようにしたものである。
【００１３】
また、本発明にかかるノードは、通信回線を介して接続された複数のノードで処理を分散して実行する分散制御システムで用いられる前記ノードであって、予め当該ノードに割り当てられている主系処理を実行する主系処理部と、他のノードに割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部と、前記主系処理部および前記待機系処理部の両方で共用される共通ファームウェアとを備え、前記主系処理部および前記待機系処理部は、前記共通ファームウェア上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、前記主系処理および前記待機系処理をそれぞれ実行するようにしたものである。
【００１４】
また、本発明にかかる上記ノードの一構成例は、前記主系処理部が、前記共通ファームウェア上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部と、前記主系ＡＰ用ハードウェア上で前記主系処理のアプリケーションを実行する主系ＡＰ処理部とを有し、前記待機系処理部は、前記共通ファームウェア上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部と、前記待機系ＡＰ用ハードウェア上で前記待機系処理のアプリケーションを実行する待機系ＡＰ処理部とを有するものである。
【発明の効果】
【００１５】
本発明によれば、ノードで実行される主系処理および待機系処理が、共通ファームウェア上でエミュレートされた仮想的なハードウェアを共用して実現されることになる。したがって、ノードを２つずつ設けて二重化する場合と比較して、少ないハードウェア量でノードを冗長化することが可能となる。さらに、二重化にとどまらず三重化以上の冗長化を容易に行うこともでき、極めて高い信頼性を実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】分散制御システムの構成を示すブロック図である。
【図２】ノードの詳細構成を示すブロック図である。
【図３】第１の実施の形態にかかるノード切替動作を示す説明図である。
【図４】第１の実施の形態にかかるノード切替処理を示すフローチャートである。
【図５】第２の実施の形態にかかるノード切替動作を示す説明図である。
【図６】第２の実施の形態にかかるノード切替処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
次に、本発明の実施の形態について図面を参照して説明する。
［第１の実施の形態］
まず、図１を参照して、本発明の第１の実施の形態にかかる分散制御システム１について説明する。図１は、分散制御システムの構成を示すブロック図である。
図１に示すように、この分散制御システム１は、通信回線Ｌを介して接続された複数のノード１０を備え、これらノード１０で処理を分散して実行するシステムである。
分散制御システム１で用いられる各ノード１０は、全体として、サーバ装置、ＰＣ、産業用コントローラ、ネットワーク機器などの情報処理装置から構成される。
【００１８】
分散制御システム１の具体例としては、プラントで用いられる機器管理システムがある。機器管理システムの場合、ノード１０として、オペレータが運転・監視を行うノード（ＨＭＩ：human machine interface）、プラントの運転履歴などの各種データを管理するノード（ヒストリー機器）、異なるプロトコルのネットワーク間を接続するためのノード（ゲートウェイ機器）、高度の制御・演算を行うノード（制御機器）などのノードが用いられる。
【００１９】
本実施の形態は、各ノード１０に、分散制御システム１で分散実行される各処理のうち、異なる複数の処理を共通ファームウェア上で実行可能な処理部を備えたことを特徴としている。
すなわち、ノード１０は、図１に示すように、上記処理部として、共通ファームウェア１０Ｚ上で、それぞれ異なる処理を実行する主系処理部１０Ｘと待機系処理部１０Ｙとを有している。
【００２０】
主系処理部１０Ｘは、予め当該ノード１０に割り当てられている処理を、共通ファームウェア１０Ｚ上で実行する機能を有している。
待機系処理部１０Ｙは、他のノード１０に割り当てられている１つまたは複数の処理を、異常発生したノード１０に代わって、共通ファームウェア１０Ｚ上で代替実行する機能を有している。
【００２１】
主系処理部１０Ｘは、共通ファームウェア１０Ｚ上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部１５Ｂと、エミュレートされた主系ＡＰ用ハードウェア上で主系処理のアプリケーションを実行する主系ＡＰ処理部１５Ｄとを有している。
待機系処理部１０Ｙは、共通ファームウェア１０Ｚ上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部１５Ｃと、エミュレートされた待機系ＡＰ用ハードウェア上で待機系処理のアプリケーションを実行する待機系ＡＰ処理部１５Ｅとを有している。
【００２２】
図２は、ノードの詳細構成を示すブロック図である。
図２に示すように、ノード１０は、主な機能部として、通信Ｉ／Ｆ部１１、操作入力部１２、画面表示部１３、記憶部１４、および演算処理部１５が設けられている。
【００２３】
通信Ｉ／Ｆ部１１は、通信回線Ｌを介して他のノード１０、さらには、他の外部装置（図示せず）とデータ通信を行う機能を有している。
操作入力部１２は、全体として、キーボード、マウス、タッチパネルなどの操作入力装置からなり、オペレータの操作を検出して演算処理部１５へ出力する機能を有している。
画面表示部１３は、演算処理部１５から出力された、メニュー画面や処理画面などの各種画面を画面表示する機能を有している。
【００２４】
記憶部１４は、全体としてハードディスクや半導体メモリなどの記憶装置からなり、演算処理部１５で実行される各種処理に用いるプログラムや処理データを記憶する機能を有している。
記憶部１４で記憶する主なプログラムとして、ＯＳプログラム１４Ａ、主系ＥＭプログラム１４Ｂ、待機系ＥＭプログラム１４Ｃ、主系ＡＰプログラム１４Ｄ、および待機系ＡＰプログラム１４Ｅがある。
【００２５】
また、記憶部１４で記憶する主な処理データとして、ノード情報１４Ｆがある。ノード情報１４Ｆは、各ノード１０に割り当てられている主系処理および待機系処理や、各ノード１０の動作状況が含まれている。
【００２６】
演算処理部１５は、ハードウェアとしてＣＰＵおよびその周辺回路を有し、記憶部１４から読み出したプログラムを実行することにより、これらＣＰＵとプログラムとを協働させて各種処理部を実現する機能を有している。
演算処理部１５で実現される主な処理部として、ＯＳ処理部１５Ａ、主系ＥＭ処理部１５Ｂ、待機系ＥＭ処理部１５Ｃ、主系ＡＰ処理部１５Ｄ、待機系ＡＰ処理部１５Ｅ、および処理制御部１５Ｆがある。
【００２７】
ＯＳ処理部１５Ａは、ＣＰＵ上でＯＳプログラム１４Ａを実行することにより、これらＣＰＵとＯＳプログラム１４Ａとを協働させて各種のＯＳ（Operating System）機能を実現する。共通ファームウェア１０Ｚは、演算処理部１５のハードウェアとＯＳ処理部１５Ａのソフトウェアとが協働して実現されており、主系処理部１０Ｘおよび待機系処理部１０Ｙの両方で共用される。
【００２８】
主系ＥＭ処理部１５Ｂは、ＯＳ機能上で主系ＥＭプログラム１４Ｂを実行することにより、仮想的な主系ＡＰ用Ｈ／Ｗをエミュレートする機能を有している。
主系ＡＰ処理部１５Ｄは、主系ＥＭ処理部１５Ｂでエミュレートされた主系ＡＰ用Ｈ／Ｗ上で、主系ＡＰプログラム１４Ｄを実行することにより、これら主系ＡＰ用Ｈ／Ｗと主系ＡＰプログラム１４Ｄとを協働させて主系ＡＰ処理を実現する機能を有している。
主系処理部１０Ｘは、これら主系ＥＭ処理部１５Ｂと主系ＡＰ処理部１５Ｄとから実現されている。
【００２９】
待機系ＥＭ処理部１５Ｃは、ＯＳ機能上で待機系ＥＭプログラム１４Ｃを実行することにより、仮想的な待機系ＡＰ用Ｈ／Ｗをエミュレートする機能を有している。
【００３０】
待機系ＡＰ処理部１５Ｅは、待機系ＥＭ処理部１５Ｃでエミュレートされた待機系ＡＰ用Ｈ／Ｗ上で、待機系ＡＰプログラム１４Ｅを実行することにより、これら待機系ＡＰ用Ｈ／Ｗと待機系ＡＰプログラム１４Ｅとを協働させて待機系ＡＰ処理を実現する機能を有している。
待機系処理部１０Ｙは、これら待機系ＥＭ処理部１５Ｃと待機系ＡＰ処理部１５Ｅとから実現されている。
【００３１】
処理制御部１５Ｆは、通信Ｉ／Ｆ部１１および通信回線Ｌを介して他のノード１０とデータ通信を行うことにより、各ノード１０に割り当てられている主系処理および待機系処理や、各ノード１０の動作状況を取得して記憶部１４のノード情報１４Ｆに格納する機能と、他のノード１０での異常発生に応じて、当該異常ノードの処理を代替する代替ノードを特定する機能と、代替ノードが自ノードである場合、待機系ＥＭ処理部１５Ｃおよび待機系ＡＰ処理部１５Ｅで代替処理を実行する機能とを有している。
【００３２】
ノード１０の動作状況については、例えばノード１０間で稼働中であることを示すパケットを周期的にやり取りする、いわゆるキープアライブ手法により確認すればよい。
これにより、各ノード１０のそれぞれで、他のノード１０での異常発生を容易に確認できるとともに、その確認結果に基づき代替ノードを特定することができる。したがって、これらノード１０の動作状況を管理する管理ノードを分散制御システム１に設ける必要がなくなり、システム構成を簡素化することが可能となる。
【００３３】
［第１の実施の形態の動作］
次に、図３および図４を参照して、本実施の形態にかかる分散制御システム１の動作について説明する。図３は、第１の実施の形態にかかるノード切替動作を示す説明図である。図４は、第１の実施の形態にかかるノード切替処理を示すフローチャートである。
【００３４】
図３に示すように、分散制御システム１は、４つのノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄを有し、これらノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄで、４つの異なる処理Ａ，Ｂ，Ｃ，Ｄを分散して実行している。この例では、ノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの主系処理として、処理Ａ，Ｂ，Ｃ，Ｄが割り当てられているものとする。また、これらノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの待機系処理として、処理Ａ，Ｂ，Ｃ，Ｄのすべてが割り当てられており、いずれのノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄにおいても、他ノード１０の処理を代替実行可能である。
【００３５】
図４に示すように、各ノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの処理制御部１５Ｆは、記憶部１４のノード情報１４Ｆに基づいて、他ノードの動作状況を監視している（ステップ１００）。処理制御部１５Ｆは、得られた監視結果に基づき他ノードでの異常発生の有無を確認し（ステップ１０１）、異常発生がない場合（ステップ１０１：ＮＯ）、ステップ１００に戻って監視を継続する。
【００３６】
いずれかのノード１０で異常発生があった場合（ステップ１０１：ＹＥＳ）、処理制御部１５Ｆは、ノード情報１４Ｆに基づいて、異常ノード以外の正常ノードのうちから、予め設定されている選択条件に基づき代替ノードを特定する（ステップ１０２）。
この後、処理制御部１５Ｆは、代替ノードが自ノードであるか否か確認し（ステップ１０３）、代替ノードが自ノードではなかった場合（ステップ１０３：ＮＯ）、ステップ１００へ戻る。
【００３７】
一方、代替ノードが自ノードであった場合（ステップ１０３：ＹＥＳ）、処理制御部１５Ｆは、次のようにして、待機系処理部１０Ｙで異常ノードの処理を代替実行する。
まず、処理制御部１５Ｆは、記憶部１４の待機系ＥＭプログラム１４Ｃを待機系ＥＭ処理部１５Ｃで実行することにより、待機系Ｈ／Ｗのエミュレートを開始する（ステップ１０４）。
【００３８】
続いて、処理制御部１５Ｆは、記憶部１４の待機系ＡＰプログラム１４Ｅのうち、異常ノードで実行していた主系処理に相当する待機系ＡＰプログラム１４Ｅを待機系ＡＰ処理部１５Ｅで実行することにより、待機系で代替処理を開始する（ステップ１０５）。
これにより、異常ノードで実行していた処理が、自ノードの待機系処理１０Ｙで代替実行されることになる。
【００３９】
したがって、代替ノードの選択条件がノードＩＤの若番順、例えばノード１０Ａ→ノード１０Ｂ→ノード１０Ｃ→ノード１０Ｄの順である際、図３に示すように、主系処理部１０Ｘで処理Ｂを実行していたノード１０Ｂで異常が発生した場合には、他の正常ノード１０Ａ，１０Ｃ，１０Ｄのうちノード１０Ａが代替ノードとして特定され、ノード１０Ａの待機系処理１０Ｙで代替実行されることになる。
【００４０】
なお、以上では、異常ノードで実行されていた主系処理を代替ノードで代替実行する場合を例として説明したが、これに限定されるものではなく、異常ノードで実行されていた待機系処理についても主系処理と同様にして代替ノードで代替実行することもできる。
例えば、図３に示すように、ノード１０Ａにおいて、処理Ａを主系処理として実行し、処理Ｂを待機系処理として実行している状態で、ノード１０Ａに異常が発生した場合、ノード１０Ａの主系処理である処理Ａについてはノード１０Ｃで待機系処理として代替実行し、ノード１０Ｂの主系処理であった処理Ｂについてはノード１０Ｄで待機系処理として代替実行してもよい。これにより、ノード１０の三重化が完全に実現されたことになる。
【００４１】
［第１の実施の形態の効果］
このように、本実施の形態は、各ノード１０に、予め当該ノード１０に割り当てられている処理を実行する主系処理部１０Ｘと、他のノード１０に割り当てられている主系処理を、異常が発生した異常ノードに代わって待機系処理として代替実行する待機系処理部１０Ｙとを設け、主系処理部１０Ｘおよび待機系処理部１０Ｙの両方が、共通ファームウェア１０Ｚ上でエミュレートされた仮想的なハードウェア上でそれぞれのアプリケーションを実行することにより、主系処理および待機系処理をそれぞれ実行するようにしたものである。
【００４２】
これにより、ノード１０で実行される主系処理および待機系処理が、共通ファームウェア１０Ｚ上でエミュレートされた仮想的なハードウェアを実現されることになる。したがって、ノード１０を２つずつ設けて二重化する場合と比較して、少ないハードウェア量でノード１０を冗長化することが可能となる。また、多対一の冗長構成も考えられるが、この場合には、待機系台数分のノードが故障した時点で非冗長となるが、本実施の形態によれば、二重化にとどまらず三重化以上の冗長化を容易に行うこともでき、極めて高い信頼性を実現することが可能となる。
【００４３】
また、従来、デバッグやトレーニングを行う場合、実運転システムと同等あるいは必要最低限のノードを別途用意しておく必要があったが、本実施の形態によれば、待機系処理としてデバッグやトレーニングに関する処理を実行することができる。このため、デバッグやトレーニングを行うためのノードを別途用意する必要がなくなり、デバッグやトレーニングに関する投資コストを大幅に削減することが可能となる。
【００４４】
また、本実施の形態において、主系処理部１０Ｘが、共通ファームウェア１０Ｚ上で仮想的な主系ＡＰ用ハードウェアをエミュレートする主系ＥＭ処理部１５Ｂと、主系ＡＰ用ハードウェア上で主系処理のアプリケーションを実行する主系ＡＰ処理部１５Ｄとを有し、待機系処理部１０Ｙが、共通ファームウェア１０Ｚ上で仮想的な待機系ＡＰ用ハードウェアをエミュレートする待機系ＥＭ処理部１５Ｃと、待機系ＡＰ用ハードウェア上で待機系処理のアプリケーションを実行する待機系ＡＰ処理部１５Ｅとを有するようにしてもよい。
【００４５】
これにより、主系処理部１０Ｘで用いる主系ＡＰ用ハードウェアと、機系処理部１０Ｙで用いる待機系ＡＰ用ハードウェアとが、共通ファームウェア１０Ｚ上でそれぞれ別個にエミュレートされることになる。このため、主系処理部１０Ｘと機系処理部１０Ｙとが共通ファームウェア１０Ｚを共用しつつ、それぞれに独立したハードウェアをエミュレートすることができ、互いの影響が全く生じないクリーンなアプリケーション実行環境を提供することができる。
【００４６】
また、本実施の形態において、異常ノード以外の正常ノードのうち、予め設定されている選択条件に基づいて選択された代替ノードが、待機系処理部１０Ｙにより待機系処理を代替実行するようにしてもよい。
【００４７】
これにより、各ノード１０が他のすべてのノード１０の主系処理を待機系処理として代替可能である場合、いずれかのノード１０での異常発生に応じて、例えばノード１０に付与されているノードＩＤの若番順などの所定の選択順序で、代替ノードを割り当てることができる。特に、選択条件として、異常が発生した時点において、正常ノードのうちハードウェア処理能力の余裕が最も大きいノードを選択するという条件を用いることにより、各ノード１０で生じる処理負荷を分散することができる。
【００４８】
［第２の実施の形態］
次に、図５を参照して、本発明の第２の実施の形態にかかる分散制御システム１について説明する。図５は、第２の実施の形態にかかるノード切替動作を示す説明図である。
第１の実施の形態では、各ノード１０が他の全てのノード１０での主系処理を待機系処理として代替可能である場合を例として説明した。本実施の形態では、各ノード１０で代替可能である待機系処理が制限されている場合について説明する。
【００４９】
図５の例では、分散制御システム１は、４つのノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄを有し、これらノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄで、４つの異なる処理Ａ，Ｂ，Ｃ，Ｄを分散して実行している。この例では、ノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの主系処理として、処理Ａ，Ｂ，Ｃ，Ｄが割り当てられているものとする。また、これらノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの待機系処理として、処理Ａ，Ｂ，Ｃ，Ｄのすべてが割り当てられておらず、ノード１０Ａには処理Ｃ，Ｄが、ノード１０Ｂには処理Ｄ，Ａが、ノード１０Ｃには処理Ａ，Ｂが、ノード１０Ｄには処理Ｂ，Ｃが、それぞれ割り当てられている。
【００５０】
［第２の実施の形態の動作］
次に、図６を参照して、本実施の形態にかかる分散制御システム１の動作について説明する。図６は、第２の実施の形態にかかるノード切替処理を示すフローチャートである。
【００５１】
図４に示すように、各ノード１０Ａ，１０Ｂ，１０Ｃ，１０Ｄの処理制御部１５Ｆは、記憶部１４のノード情報１４Ｆに基づいて、他ノードの動作状況を監視している（ステップ２００）。処理制御部１５Ｆは、得られた監視結果に基づき他ノードでの異常発生の有無を確認し（ステップ２０１）、異常発生がない場合（ステップ２０１：ＮＯ）、ステップ１００に戻って監視を継続する。
【００５２】
いずれかのノード１０で異常発生があった場合（ステップ２０１：ＹＥＳ）、処理制御部１５Ｆは、ノード情報１４Ｆに基づいて、異常ノード以外の正常ノードのうちから、異常ノードの主系処理を代替実行可能なノードを候補ノードとして特定し（ステップ２０２）、候補ノードのうちから予め設定されている選択条件に基づき代替ノードを特定する（ステップ２０３）。
この後、処理制御部１５Ｆは、代替ノードが自ノードであるか否か確認し（ステップ２０４）、代替ノードが自ノードではなかった場合（ステップ２０４：ＮＯ）、ステップ２００へ戻る。
【００５３】
一方、代替ノードが自ノードであった場合（ステップ２０４：ＹＥＳ）、処理制御部１５Ｆは、次のようにして、待機系処理部１０Ｙで異常ノードの主系処理を代替実行する。
まず、処理制御部１５Ｆは、記憶部１４の待機系ＥＭプログラム１４Ｃを待機系ＥＭ処理部１５Ｃで実行することにより、待機系Ｈ／Ｗのエミュレートを開始する（ステップ２０５）。
【００５４】
続いて、処理制御部１５Ｆは、記憶部１４の待機系ＡＰプログラム１４Ｅうち、異常ノードで実行していた主系処理に相当する待機系ＡＰプログラム１４Ｅを待機系ＡＰ処理部１５Ｅで実行することにより、待機系で代替処理を開始する（ステップ２０６）。
これにより、異常ノードで実行していた処理が、自ノードの待機系処理１０Ｙで代替実行されることになる。
【００５５】
したがって、代替ノードの選択条件がノードＩＤの若番順、例えばノード１０Ａ→ノード１０Ｂ→ノード１０Ｃ→ノード１０Ｄの順である際、図５に示すように、主系処理部１０Ｘで処理Ｂを実行していたノード１０Ｂで異常が発生した場合には、他の正常ノード１０Ａ，１０Ｃ，１０Ｄのうちノード１０Ｃ，１０Ｄが候補ノードとして選択された後、これら候補ノードのうちから選択条件に基づきノード１０Ｃが代替ノードとして特定され、ノード１０Ｃの待機系処理１０Ｙで代替実行されることになる。
【００５６】
［第２の実施の形態の効果］
このように、本実施の形態は、異常ノード以外の正常ノードのうち、異常ノードの処理を代替実行可能な代替ノードが、待機系処理部１０Ｙにより待機系処理を代替実行するようにしたものである。
これにより、各ノード１０が他のすべてのノード１０の主系処理を代替実行できない場合でも、少ないハードウェア量でノード１０を冗長化することが可能となる。
【００５７】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。また、各実施形態については、矛盾しない範囲で任意に組み合わせて実施することができる。
【符号の説明】
【００５８】
１…分散制御システム、１０，１０Ａ，１０Ｂ，１０Ｃ，１０Ｄ…ノード、１０Ｘ…主系処理部、１０Ｙ…待機系処理部、１０Ｚ…共通ファームウェア、１１…通信Ｉ／Ｆ部、１２…操作入力部、１３…画面表示部、１４…記憶部、１４Ａ…ＯＳプログラム、１４Ｂ…主系ＥＭプログラム、１４Ｃ…待機系ＥＭプログラム、１４Ｄ…主系ＡＰプログラム、１４Ｅ…待機系ＡＰプログラム、１４Ｆ…ノード情報、１５…演算処理部、１５Ａ…ＯＳ処理部、１５Ｂ…主系ＥＭ処理部、１５Ｃ…待機系ＥＭ処理部、１５Ｄ…主系ＡＰ処理部、１５Ｅ…待機系ＡＰ処理部、１５Ｆ…処理制御部、Ｌ…通信回線。
【図１】
2019040331.tif 000003
【図２】
2019040331.tif 000004
【図３】
2019040331.tif 000005
【図４】
2019040331.tif 000006
【図５】
2019040331.tif 000007
【図６】
2019040331.tif 000008