(57)【要約】【課題】演算結果に基づいた機器の制御を滞りなく行う。【解決手段】実施形態によれば、制御システムは、入力した信号を分配する機能および複数の演算結果のいずれかを外部機器へ出力する機能を有した少なくとも１つの管理サーバと、分配された信号に基づいた演算結果を少なくとも１つの管理サーバに出力する演算機能を有した複数の演算サーバとを有する。このシステムは、各種サーバが有する機能を実行するためのプログラムを記憶する記憶装置を有する。このシステムは、何れかのサーバに異常が発生した場合、このサーバが有する機能を実行するためのプログラムを記憶装置から異常が発生していないその他の同種のサーバに伝送して、異常が発生したサーバの機能を伝送先のサーバに実行させる。【選択図】      図１
2014167678.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続され、入力した信号を分配する機能および複数の演算結果のいずれかを外部機器へ出力する機能を有する少なくとも１つの管理サーバと、
前記ネットワークに接続され、前記少なくとも１つの管理サーバにより分配された信号に基づいた演算結果を前記少なくとも１つの管理サーバに出力する演算機能を有する複数の演算サーバと、
前記ネットワークに接続され、前記複数の演算サーバが有する演算機能、前記少なくとも１つの管理サーバが有する機能を実行するためのプログラムを記憶する記憶装置と、
何れかの演算サーバまたは管理サーバに異常が発生した場合、前記異常が発生したサーバが有する機能を実行するためのプログラムを前記記憶装置から前記異常が発生していないその他の同種のサーバに伝送して、前記異常が発生したサーバの機能を伝送先のサーバに実行させる伝送制御手段と
を備えたことを特徴とする制御システム。
【請求項２】
前記管理サーバは複数あり、
前記伝送制御手段は、
前記複数の管理サーバの何れかに異常が発生した場合、前記異常が発生した管理サーバが有する機能を実行するためのプログラムを前記記憶装置から前記異常が発生していないその他の管理サーバに伝送して、前記異常が発生した管理サーバの機能を伝送先の管理サーバに実行させる
ことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記伝送制御手段は、
何れかの演算サーバ又は管理サーバに異常が発生した場合に、前記異常が発生したサーバが有する機能を実行するためのプログラムを前記異常が発生していないその他の同種のサーバが実行するときの処理および通信にかかる負荷を示す少なくとも１種類のパラメータに基づいて、前記異常が発生したサーバが有する機能を実行するためのプログラムの伝送先のサーバを選択する
ことを特徴とする請求項１に記載の制御システム。
【請求項４】
前記少なくとも１つの管理サーバは、前記複数の演算サーバのそれぞれの処理の逼迫度をモニタするモニタ機能を有し、
前記伝送制御手段は、
前記複数の演算サーバの何れかに異常が発生した場合、前記異常が発生していないその他の演算サーバのそれぞれについて前記モニタ機能によりモニタした逼迫度に基づいて、前記異常が発生した演算サーバが有する演算機能を実行するためのプログラムの伝送先の演算サーバを選択する
ことを特徴とする請求項１に記載の制御システム。
【請求項５】
前記伝送制御手段は、
前記複数の演算サーバの何れかに異常が発生した場合、前記異常が発生していないその他の演算サーバのそれぞれの処理能力に基づいて、前記異常が発生した演算サーバが有する演算機能を実行するためのプログラムの伝送先の演算サーバを選択する
ことを特徴とする請求項１に記載の制御システム。
【請求項６】
前記伝送制御手段は、
前記複数の演算サーバの何れかに異常が発生した場合、前記異常が発生していないその他の演算サーバのそれぞれと前記少なくとも１つの管理サーバとの通信距離に基づいて、前記異常が発生した演算サーバが有する演算機能を実行するためのプログラムの伝送先の演算サーバを選択する
ことを特徴とする請求項１に記載の制御システム。
【請求項７】
前記複数の演算サーバのそれぞれは、共通する演算機能を有し、
前記記憶装置は、前記複数の演算サーバが共通して有する演算機能を実行するためのプログラムを記憶し、
前記伝送制御手段は、
前記複数の演算サーバのいずれかに異常が発生した場合、前記プログラムを前記記憶装置から前記異常が発生していないその他の演算サーバに伝送して、伝送先の演算サーバに前記異常が発生した演算サーバの演算機能を実行させる
ことを特徴とする請求項１に記載の制御システム。
【請求項８】
前記演算サーバは３台以上であり、
前記複数の演算サーバの少なくとも２台は、共通する演算機能を有し、
前記複数の演算サーバの少なくとも１台は、共通する演算機能を有さず、
前記記憶装置は、前記複数の演算サーバのそれぞれが有する演算機能を実行するためのプログラムを記憶し、
前記伝送制御手段は、
前記複数の演算サーバの何れかに異常が発生した場合、前記異常が発生した演算サーバが有する演算機能を実行するためのプログラムを前記記憶装置から前記異常が発生していないその他の演算サーバに伝送して、伝送先の演算サーバに前記異常が発生した演算サーバの演算機能を実行させる
ことを特徴とする請求項１に記載の制御システム。
【請求項９】
前記伝送制御手段は、
何れかの演算サーバ又は管理サーバに異常が発生した場合、前記異常が発生したサーバが有する機能を実行するためのプログラムを前記記憶装置から前記異常が発生したサーバに代わる新たな同種のサーバに伝送して、伝送先のサーバに前記異常が発生したサーバの機能を実行させる
ことを特徴とする請求項１乃至８のいずれかに記載の制御システム。
【請求項１０】
管理サーバと演算サーバとは、物理的に異なる装置である
ことを特徴とする請求項１乃至９の何れかに記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワークを介して機器を制御する制御システムに関する。
【背景技術】
【０００２】
近年、災害復旧を容易にするため、遠隔からネットワークを介して現場機器を制御する遠隔制御技術に注目が集まっている。遠隔に配置された複数のクラウドサーバから制御を行うシステムをクラウド制御システムと呼ぶ。このシステムでは、制御プログラムを物理的に離れた複数のサーバに保持し、サイト側災害時に制御プログラムが失われることがない。このため、災害からの復旧の際、制御プログラムの再構築および制御サーバの交換にかかる時間を減らすことができる。このような背景から、ネットワークを介して制御機器から離れた場所に現場機器を配置して制御を行うシステムがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−０９８９１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
前述したように、制御プログラムを物理的に離れた現場機器、管理サーバ、演算サーバのそれぞれにより処理する場合、装置の特性やネットワークの混雑などに起因して、現場機器と管理サーバとの間、管理サーバと演算サーバとの間の伝送、または演算サーバと現場機器との間の伝送が遅い場合には、演算結果に基づいた現場機器の制御が困難になってしまう。
【０００５】
本発明が解決しようとする課題は、サーバに異常が発生した場合でも機器の制御を滞りなく行うことが可能な制御システムを提供することにある。
【課題を解決するための手段】
【０００６】
実施形態によれば、制御システムは、ネットワークに接続され、入力した信号を分配する機能および複数の演算結果のいずれかを外部機器へ出力する機能を有した少なくとも１つの管理サーバと、ネットワークに接続され、少なくとも１つの管理サーバにより分配された信号に基づいた演算結果を少なくとも１つの管理サーバに出力する演算機能を有した複数の演算サーバとを有する。このシステムは、ネットワークに接続され、演算サーバが有する演算機能を実行するためのプログラムを記憶する記憶装置を有する。このシステムは、何れかの演算サーバ又は管理サーバに異常が発生した場合、異常が発生したサーバが有する機能を実行するためのプログラムを記憶装置から異常が発生していないその他の同種のサーバに伝送して、異常が発生したサーバの機能を伝送先のサーバに実行させる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態における制御システムの構成例を示す図。
【図２】第１の実施形態における制御システムの伝送データフロー例を示す図。
【図３】第１の実施形態における演算サーバとデータベースにおける記憶形態の一例を示す図。
【図４】第１の実施形態における制御システムの演算サーバの異常発生時の例を示す図。
【図５】第１の実施形態における制御システムの演算サーバの異常発生時の動作手順の一例を示すフローチャート。
【図６】第１の実施形態における演算サーバにおける記憶形態の一例を示す図。
【図７】第１の実施形態における制御システムの管理サーバの異常時の例を示す図。
【図８】第１の実施形態における制御システムの管理サーバの異常時の動作手順の第１の例を示すフローチャート。
【図９】第１の実施形態における制御システムの管理サーバの異常時の動作手順の第２の例を示すフローチャート。
【図１０】第１の実施形態における管理サーバにおける記憶形態の一例を示す図。
【図１１】第１の実施形態における制御システムの構成の変形例を示す図。
【図１２】第１の実施形態における制御システムの演算サーバの異常時の逼迫度を用いた動作手順の一例を示すフローチャート。
【図１３】第２の実施形態における制御システムの管理サーバの異常時の例を示す図。
【図１４】第２の実施形態における制御システムの管理サーバの異常時の動作手順の第１の例を示すフローチャート。
【図１５】第２の実施形態における制御システムの管理サーバの異常時の動作手順の第２の例を示すフローチャート。
【図１６】第２の実施形態における管理サーバにおける記憶形態の一例を示す図。
【図１７】第２の実施形態における制御システムの機能構成例を示す図。
【図１８】第２の実施形態における制御システムの演算サーバの異常発生時の動作手順の一例を示すフローチャート。
【図１９】第２の実施形態における制御システムの管理サーバの異常発生時の動作手順の第１の例を示すフローチャート。
【図２０】第２の実施形態における制御システムの管理サーバの異常発生時の動作手順の第２の例を示すフローチャート。
【図２１】第３の実施形態における演算サーバとデータベースにおける記憶形態の一例を示す図。
【図２２】第３の実施形態における制御システムの演算サーバの異常発生時の動作手順の一例を示すフローチャート。
【図２３】第３の実施形態における演算サーバにおける記憶形態の一例を示す図。
【図２４】第４の実施形態における演算サーバとデータベースにおける記憶形態の一例を示す図。
【図２５】第４の実施形態における演算サーバにおける記憶形態の一例を示す図。
【発明を実施するための形態】
【０００８】
以下、実施の形態について、図面を参照して説明する。
【０００９】
（第１の実施形態）
まず、第１の実施形態について説明する。  
図１は、第１の実施形態における制御システムの構成例を示す図である。  
図１に示すように、第１の実施形態における制御システム１は、複数の管理サーバ２０〜２１と、複数の演算サーバ１０〜１２と、少なくとも１つのデータベース３０とを有する。
【００１０】
外部機器である現場機器４０〜４２は、センサやアクチュエータの信号の入出力を行うものであり、例えばスイッチやボタンや計測機等の入力機器、モーターや表示装置等の出力機器である。図１に示した例では、現場機器および演算サーバの台数が３台で、管理サーバの台数が２台であるが、この台数は複数であれば特に限られない。
【００１１】
複数の現場機器４０〜４２のそれぞれと複数の管理サーバ２０〜２１のそれぞれとはネットワーク３により接続される。また、複数の管理サーバ２０〜２１のそれぞれと複数の演算サーバ１０〜１２とデータベース３０はネットワーク２により接続される。ネットワーク３は、専用のネットワークとしても良いし汎用のＩＰネットワークとしても良い。さらに、ネットワーク３はネットワーク２と同一のネットワークとしても良い。
【００１２】
複数の管理サーバ２０〜２１は分配機能２２、集約機能２３を有する。演算サーバ１０は演算機能１４を有する。演算サーバ１１は演算機能１５を有する。演算サーバ１２は演算機能１６を有する。データベース３０は、分配機能データ３４と集約機能データ３５を記憶する。分配機能データ３４は、分配機能２２を実行するためのプログラムを含む。集約機能データ３５は、集約機能２３を実行するためのプログラムを含む。制御システム１内の各種サーバは、図１に示すように物理的に異なる装置であってもよいし、同等の機能を有する一体型の装置であってもよい。
【００１３】
また、データベース３０は、演算機能データ３１、演算機能データ３２、演算機能データ３３を記憶する。演算機能データ３１は、演算機能１４を実行するためのプログラムを含む。演算機能データ３２は、演算機能１５を実行するためのプログラムを含む。演算機能データ３３は、演算機能１６を実行するためのプログラムを含む。
【００１４】
図２は、第１の実施形態における制御システムの伝送データフローの一例を示す図である。  
管理サーバ２０は、複数の現場機器４０〜４２から入力信号を受信する。管理サーバ２０の分配機能２２は、入力信号を分配して、複数の演算サーバ１０〜１２に入力データ５０を送信する。管理サーバ２１も同様の処理を行う。
【００１５】
演算サーバ１０は入力データ５０を受信し、演算機能１４により入力データ５０に基づいた制御演算を行い、演算結果である出力データ５１を生成する。演算サーバ１１は入力データ５０を受信し、演算機能１５により入力データ５０に基づいた制御演算を行い、演算結果である出力データ５１を生成する。演算サーバ１２は入力データ５０を受信し、演算機能１６により入力データ５０に基づいた制御演算を行い、演算結果である出力データ５１を生成する。生成された出力データ５１は管理サーバ２０，２１に送信される。
【００１６】
管理サーバ２０，２１は複数の演算サーバ１０〜１２のそれぞれからの出力データ５１を受信する。管理サーバ２０，２１の集約機能２３は、演算サーバ１０〜１２のそれぞれからの出力データ５１のうちいずれかを採用して、出力信号として現場機器４０〜４２に送信する。
【００１７】
集約機能２３は、信頼性を確保するために、受信した複数の出力データ５１に対する多数決処理を行う機能であっても良いし、応答時間を保証するために受信した複数の出力データ５１のうち先着のデータを優先して採用する機能であってもよい。また、集約機能２３は、システムに要求される応答時間の制約を考慮して、所定時間内に受信した複数の出力データ５１に対して多数決等の処理を行う機能であっても良い。
【００１８】
図３は、演算サーバ１０〜１２とデータベース３０における制御プログラムの記憶形態の一例を示す図である。  
制御プログラムは、事前に最小単位に変換されたプログラムにコンパイルされてなる。演算サーバ１０〜１２の内部記憶は、それぞれ異なる制御プログラムが記憶される。
【００１９】
例えば、前述のようにコンパイルされてなる制御プログラムが９個できた場合に、図３に示すように、演算サーバ１０の演算機能１４は最小プログラム単位に変換された制御プログラムＡ，Ｂ，Ｃを含む。また、演算サーバ１１の演算機能１５は、最小プログラム単位に変換された制御プログラムＤ，Ｅ，Ｆを含む。また、演算サーバ１２の演算機能１６は、最小プログラム単位に変換された制御プログラムＧ，Ｈ，Ｉを含む。
【００２０】
データベース３０に記憶される演算機能データ３１は、演算サーバ１０が演算機能１４に対応する制御プログラムＡ〜Ｃを含む。データベース３０に記憶される演算機能データ３２は、演算サーバ１１が演算機能１５に対応する制御プログラムＤ〜Ｆを含む。データベース３０に記憶される演算機能データ３３は、演算サーバ１２が演算機能１６に対応する制御プログラムＧ〜Ｉを含む。  
演算機能データ３１〜３３は、このデータに含まれる各制御プログラムを一つの制御プログラムとして、保持しても良い。
【００２１】
図４は、本実施形態における制御システムの演算サーバの異常時の例を示す図である。図５の制御システムによる動作手順の一例を示すフローチャートで示すように、演算サーバ１０に異常が発生した場合（Ｓ１）、管理サーバ２０，２１のいずれかが演算サーバ１０の異常を検出する（Ｓ２）。ここでは、管理サーバ２０が演算サーバ１０の異常を検出したとする。
【００２２】
異常を検出する方法としては、演算サーバ１０からの出力信号５１が管理サーバに伝送されてこないことを確認する方法でもよいし、管理サーバ２０〜２１からネットワーク２を通して演算サーバ１０からの応答があるか否かを定期的に確認する方法などでも良い。
【００２３】
演算サーバ１０の異常の検出元の管理サーバ２０は、演算サーバ１０が実行していた演算機能１４に対応する演算機能データ３１の伝送指示信号をデータベース３０に送信する（Ｓ３）。データベース３０は、各種データを読み出して他のサーバに伝送する機能を有する。データベース３０は、伝送指示信号を受信すると、異常が発生した演算サーバ１０が実行していた演算機能１４に対応する演算機能データ３１を読み出す。データベース３０は、演算機能データ３１を異常が発生していない演算サーバ１１または演算サーバ１２のいずれかに伝送する（Ｓ４）。
【００２４】
この例では、演算サーバ１０の異常の検出元の管理サーバが演算機能データの伝送指示信号をデータベース３０に送信し、データベース３０は、異常が発生した演算サーバが実行していた演算機能に対応する演算機能データを読み出す例を説明した。しかしこれに限らず、管理サーバ２０は、演算サーバ１０の異常の検出元の管理サーバが、異常が発生した演算サーバが実行していた演算機能に対応する演算機能データをデータベース３０から読み出して、他の演算サーバに伝送してもよい。
【００２５】
図６は、第１の実施形態における制御システムの演算サーバの異常時における制御プログラムの形態の一例を示す図である。例えば、管理サーバ２０が演算サーバ１１に演算機能データ３１を伝送した場合は、図６に示すように、演算機能データ３１の制御プログラムＡ〜Ｃは、演算サーバ１１が実行する演算機能１５に対応する制御プログラムとなる。この演算サーバ１１は、演算機能１５で制御プログラムＤ〜Ｆおよび伝送された制御プログラムＡ〜Ｃを実行して演算処理を行う。  
このようにして、異常が発生した演算サーバの演算機能をその他の演算サーバに割り振ることができる。
【００２６】
次に、管理サーバに異常が発生した場合に、この異常が発生した管理サーバの機能をその他の管理サーバに割り振ることについて説明する。  
図７は、第１の実施形態における制御システムの管理サーバの異常時の例を示す図である。ここでは、図７に示すように管理サーバ２０，２１のうち管理サーバ２０に異常が発生した場合について説明する。
【００２７】
図８は、第１の実施形態における制御システムの管理サーバの異常時の動作手順の第１の例を示すフローチャートである。  
管理サーバ２０に異常が発生した場合（Ｓ１１）、管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ１２）。
【００２８】
管理サーバ２０の異常の検出元の管理サーバ２１は、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５の伝送指示信号をデータベース３０に送信する（Ｓ１３）。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５を読み出す。データベース３０は、これら読み出した分配機能データ３４および集約機能データ３５を異常が発生していない管理サーバ２１に伝送する（Ｓ１４）。
【００２９】
図９は、第１の実施形態における制御システムの管理サーバの異常時の動作手順の第２の例を示すフローチャートである。  
管理サーバ２０に異常が発生した場合（Ｓ２１）、演算サーバ１０〜１２のいずれかが管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ２２）。ここでは、演算サーバ１０が管理サーバ２０の異常を検出したとする。
【００３０】
管理サーバ２０の異常の検出元の演算サーバ１０は、管理サーバ２０の異常発生通知を管理サーバ２１に送信する（Ｓ２３）。管理サーバ２１は、異常発生通知を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５の伝送指示信号をデータベース３０に送信する（Ｓ２４）。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５を読み出す。データベース３０は、これら読み出した分配機能データ３４および集約機能データ３５を異常が発生していない管理サーバ２１に伝送する（Ｓ２５）。
【００３１】
図１０は、第１の実施形態における管理サーバにおける記憶形態の一例を示す図である。  
例えば、管理サーバ２１に分配機能データ３４および集約機能データ３５が伝送された場合は、図１０に示すように、分配機能データ３４内の制御プログラムは、管理サーバ２０に代わって管理サーバ２１が実行する分配機能２２ａに対応する制御プログラムとなる。また、集約機能データ３５内の制御プログラムは、管理サーバ２０に代わって管理サーバ２１が実行する集約機能２３ａに対応する制御プログラムとなる。
【００３２】
この管理サーバ２１は、分配機能２２ａの制御プログラムを実行して分配処理を行い、集約機能２３ａの制御プログラムを実行して集約処理を行う。  
このようにして、異常が発生した管理サーバの分配機能および集約機能をその他の管理サーバに割り振ることができる。
【００３３】
また、この割り振りは、その他の演算サーバのそれぞれの逼迫度、演算サーバ１０〜１２の処理能力、管理サーバ２０〜２１とその他の演算サーバとの間の通信距離の少なくとも１つをパラメータとし、このパラメータに基づいて行われる。また、これらの逼迫度、処理能力、通信距離に限らず、異常が発生したサーバが有する機能を実行するためのプログラムを異常が発生していないサーバが実行するときの処理および通信にかかる負荷を示すパラメータであれば、特に限られない。
【００３４】
例えば、演算サーバ１０に異常が発生し、演算サーバ１１の処理能力が７０ＧＦＬＯＰＳ（floating-point instructions per second）で、演算サーバ１２の処理能力が８０ＧＦＬＯＰＳである場合、演算サーバ１２の方が演算サーバ１１より処理能力が高い。この場合、管理サーバ２０または２１は、へ演算サーバ１０が処理していた演算機能に対応する演算機能データ内の制御プログラムをデータベース３０から読み出す。この管理サーバは、この制御プログラムを演算サーバ１２に伝送して、演算サーバ１０が実行していた演算機能を演算サーバに１２に実行させる。また、演算機能の割り振り先は、前述したパラメータの２つ以上を組み合わせた結果を用いて決定されても良い。
【００３５】
ここで、演算サーバ１０〜１２のうち異常の発生元以外のサーバの逼迫度を基に割り振り先の演算サーバ１０〜１２を決定するための構成例を図１１に示す。  
演算サーバ１０〜１２の逼迫度をモニタするために、管理サーバ２０〜２１の内部記憶には、モニタ機能２４を実現するためのプログラムが記憶される。データベース３０には、モニタ機能２４に対応するモニタ機能データ３６が記憶される。
【００３６】
図１２は、第１の実施形態における制御システムの演算サーバの異常時における逼迫度を用いた動作手順の一例を示すフローチャートである。  
演算サーバ１０に異常が発生した場合（Ｓ３１）、管理サーバ２０〜２１は、演算サーバ１０の異常を検出する（Ｓ３２）。検出する方法は上記同様である。ここでは、管理サーバ２０が異常を検出したとする。
【００３７】
演算サーバ１０の異常を検出した管理サーバ２０は、異常検出元以外の演算サーバ１１の逼迫度と演算サーバ１２の逼迫度とをモニタする（Ｓ３３）。逼迫度はＣＰＵの使用率、メモリの使用率などのパラメータから１つもしくは複数のパラメータを基に算出される。逼迫度である各種の使用率は、一定時間内の平均値または瞬時値でも良い。
【００３８】
例えば、演算サーバ１１のＣＰＵの使用率（１秒間の平均値）が６０％で、演算サーバ１１のメモリの使用率（１秒の平均値）が３０％で、演算サーバ１２のＣＰＵの使用率が８０％で、演算サーバ１２のメモリの使用率が７０％であった場合、管理サーバ２０のモニタ機能２４は、ＣＰＵの使用率とメモリの使用率との積を逼迫度として演算サーバ１１，１２のそれぞれについて計算する。管理サーバ２０は、計算した逼迫度の値が最も低い演算サーバ１１を選定する（Ｓ３４）。
【００３９】
管理サーバ２０は、演算サーバ１０が実行していた演算機能１４に対応する演算機能データ３１の伝送指示信号、およびＳ３４で選定した演算サーバ１１を示す通知をデータベース３０に送信する（Ｓ３５）。データベース３０は、Ｓ３５で送信された伝送指示信号および通知を受信すると、演算サーバ１０が処理していた演算機能１４に対応する演算機能データ３１を読み出して、この演算機能データ３１を通知で示された演算サーバ１１に伝送する（Ｓ３６）。このようにして、異常が発生した演算サーバの演算機能をその他の管理サーバのうち逼迫度の低いサーバに割り振ることができる。
【００４０】
次に、管理サーバに異常が発生した場合に、この異常が発生した管理サーバの機能をその他の管理サーバに割り振ることについて説明する。  
図１３は、第２の実施形態における制御システムの管理サーバの異常時の例を示す図である。ここでは、図１３に示すように管理サーバ２０，２１のうち管理サーバ２０に異常が発生した場合について説明する。
【００４１】
図１４は、第２の実施形態における制御システムの管理サーバの異常時の動作手順の第１の例を示すフローチャートである。  
管理サーバ２０に異常が発生した場合（Ｓ４１）、管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ４２）。
【００４２】
管理サーバ２０の異常の検出元の管理サーバ２１は、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６の伝送指示信号をデータベース３０に送信する（Ｓ４３）。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６を読み出す。データベース３０は、これら読み出した分配機能データ３４、集約機能データ３５およびモニタ機能データ３６を異常が発生していない管理サーバ２１に伝送する（Ｓ４４）。
【００４３】
図１５は、第２の実施形態における制御システムの管理サーバの異常時の動作手順の第２の例を示すフローチャートである。  
管理サーバ２０に異常が発生した場合（Ｓ５１）、演算サーバ１０〜１２のいずれかが管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ５２）。ここでは、演算サーバ１０が管理サーバ２０の異常を検出したとする。
【００４４】
管理サーバ２０の異常の検出元の演算サーバ１０は、管理サーバ２０の異常発生通知を管理サーバ２１に送信する（Ｓ５３）。管理サーバ２１は、異常発生通知を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６の伝送指示信号をデータベース３０に送信する（Ｓ５４）。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６を読み出す。データベース３０は、これら読み出した分配機能データ３４、集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６を異常が発生していない管理サーバ２１に伝送する（Ｓ５５）。
【００４５】
図１６は、第２の実施形態における管理サーバにおける記憶形態の一例を示す図である。  
例えば、管理サーバ２１に分配機能データ３４、集約機能データ３５およびモニタ機能データ３６が伝送された場合は、図１６に示すように、分配機能データ３４内の制御プログラムは、管理サーバ２０に代わって管理サーバ２１が実行する分配機能２２ａに対応する制御プログラムとなる。また、集約機能データ３５内の制御プログラムは、管理サーバ２０に代わって管理サーバ２１が実行する集約機能２３ａに対応する制御プログラムとなる。また、モニタ機能データ３６内の制御プログラムは、管理サーバ２０に代わって管理サーバ２１が実行するモニタ機能２４ａに対応する制御プログラムとなる。
【００４６】
この管理サーバ２１は、分配機能２２ａの制御プログラムを実行して分配処理を行い、集約機能２３ａの制御プログラムを実行して集約処理を行ない、モニタ機能２４ａの制御プログラムを実行して分配処理を行う。  
このようにして、異常が発生した管理サーバの分配機能、集約機能およびモニタ機能をその他の管理サーバに割り振ることができる。
【００４７】
また、管理サーバが、図１１に示した管理サーバ２０，２１を含む３台以上であって、異常が発生した管理サーバの分配機能、集約機能およびモニタ機能をその他の管理サーバに割り振る場合は、この割り振りは、異常が発生していないその他の管理サーバのそれぞれの逼迫度、処理能力、当該その他の管理サーバと演算サーバ１０〜１２との間の通信距離の少なくとも１つをパラメータとし、このパラメータに基づいて行なってもよい。
【００４８】
本実施形態によれば、演算サーバや管理サーバに異常が発生した場合でも、この異常が発生したサーバの処理をその他のサーバに割り振ることができるので、制御システムに要求される応答時間内に制御演算を行うことが可能である。
【００４９】
（第２の実施形態）
次に、第２の実施形態について説明する。なお第１の実施形態と同一の構成には同一の符号を付し、重複する説明は省略する。  
図１７は、第２の実施形態における制御システムの機能構成例を示す図である。  
本実施形態では、演算サーバ１０に異常が発生した場合、演算機能１４を有する演算サーバを新たに構築する。ここでいう構築とは、通常時は使用していないサーバを起動させてネットワーク２に接続することである。  
それぞれの複数の管理サーバ２０，２１、複数の演算サーバ１０〜１２、および少なくとも１つのデータベース３０の機能は第１の実施形態と同様である。
【００５０】
図１８は、第２の実施形態における制御システムの演算サーバの異常発生時の動作手順の一例を示すフローチャートである。  
演算サーバ１０に異常が発生した場合（Ｓ６１）、管理サーバ２０，２１のいずれかが演算サーバ１０の異常を検出する（Ｓ６２）。ここでは管理サーバ２０が演算サーバ１０の異常を検出したとする。異常を検出する方法は第１の実施形態と同様である。
【００５１】
管理サーバ２０はサーバ管理機器６０に新規サーバ構築指示信号を送信する（Ｓ６３）。サーバ管理機器６０は、新規サーバ構築指示信号を受信すると、新規サーバ１３を演算サーバとして構築する（Ｓ６４）。新規サーバの構築が完了すると、サーバ管理機器６０は、新規サーバ構築完了信号を新規サーバ構築指示信号の送信元である管理サーバ２０に送信する（Ｓ６５）。  
管理サーバ２０は、新規サーバ構築完了信号を受信すると、演算サーバ１０が処理していた演算機能データ３１の伝送指示信号をデータベース３０に送信する（Ｓ６６）。
【００５２】
データベース３０は、伝送指示信号を受信すると、演算サーバ１０が処理していた演算機能データ３１を読み出し、この読み出した演算機能データ３１を新規サーバ１３である演算サーバに伝送する（Ｓ６７）。  
このようにして、異常が発生した演算サーバが実行していた機能を新規に構築した演算サーバに割り振ることができる。
【００５３】
本実施形態では、異常が発生した管理サーバが実行していた機能を新規に構築した管理サーバに割り振ることもできる。  
図１９は、第２の実施形態における制御システムの管理サーバの異常発生時の動作手順の第１の例を示すフローチャートである。  
また、例えば管理サーバ２０に異常が発生した場合（Ｓ７１）、管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ７２）。異常を検出する方法は第１の実施形態と同様である。
【００５４】
管理サーバ２１は、サーバ管理機器６０に新規サーバ構築指示信号を送信する（Ｓ７３）。サーバ管理機器６０は、新規サーバ構築指示信号を受信すると新規サーバ１３である管理サーバを構築する（Ｓ７４）。
【００５５】
新規サーバ１３の構築が完了すると、サーバ管理機器６０は、新規サーバ構築完了信号を管理サーバ２１に送信する（Ｓ７５）。  
管理サーバ２１は、新規サーバ構築完了通知を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５の伝送指示信号をデータベース３０に送信する（Ｓ７６）。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、および、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５を読み出す。データベース３０は、これら読み出した分配機能データ３４および集約機能データ３５を異常が発生していない管理サーバ２１に伝送する（Ｓ７７）。
【００５６】
図２０は、第２の実施形態における制御システムの管理サーバの異常発生時の動作手順の第２の例を示すフローチャートである。  
管理サーバ２０に異常が発生した場合（Ｓ８１）、演算サーバ１０〜１２のいずれかが管理サーバ２１が管理サーバ２０の異常を検出する（Ｓ８２）。ここでは、演算サーバ１０が管理サーバ２０の異常を検出したとする。
【００５７】
演算サーバ１０は、管理サーバ２１に管理サーバ２０の異常発生通知を送信する（Ｓ８３）。  
管理サーバ２１は、異常発生通知を受信すると、サーバ管理機器６０に新規サーバ構築指示信号を送信する（Ｓ８４）。サーバ管理機器６０は、新規サーバ構築指示信号を受信すると新規サーバである管理サーバを構築する（Ｓ８５）。以降、前述したＳ７５〜Ｓ７７の動作がなされる（Ｓ８６〜Ｓ８８）。  
また、図１１に示すように、管理サーバ２０，２１がモニタ機能２４を有しており、データベース３０がモニタ機能データ３６を記憶している場合の動作について説明する。この場合、管理サーバ２１は、前述した新規サーバ構築完了通知を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６の伝送指示信号をデータベース３０に送信する。データベース３０は、伝送指示信号を受信すると、異常が発生した管理サーバ２０が実行していた分配機能２２に対応する分配機能データ３４、管理サーバ２０が実行していた集約機能２３に対応する集約機能データ３５、および管理サーバ２０が実行していたモニタ機能２４に対応するモニタ機能データ３６を読み出す。データベース３０は、これら読み出した分配機能データ３４集約機能データ３５およびモニタ機能データ３６を異常が発生していない管理サーバ２１に伝送する。  
このようにして、異常が発生した管理サーバが実行していた機能を新規に構築した管理サーバに割り振ることができる。
【００５８】
新規サーバの構築に所定の時間を要する場合は、この新規サーバが構築できるまでの間は第１の実施形態で説明した様に、異常が発生していない既存のサーバに処理を割り振ることとしても良い。
【００５９】
本実施形態によれば、複数のうちいずれかの管理サーバまたは複数のうちいずれかの演算サーバに異常が発生した場合でも、新たにサーバを構築することで、異常が発生した管理サーバや演算サーバの処理を新たに構築した管理サーバや演算サーバに割り振ることができる。よって、システムに要求される応答時間内に制御演算を行うことが可能である。
【００６０】
（第３の実施形態）
次に、第３の実施形態について説明する。なお第１の実施形態と第２の実施形態と同一の構成には同一の符号を付し、重複する説明は省略する。  
図２１は、第３の実施形態における演算サーバとデータベースにおける記憶形態の一例を示す図である。  
本実施形態では、演算サーバ１０〜１２の内部記憶には、共通した制御プログラムが記憶される。  
例えば、前述のようにコンパイルされてなる制御プログラムが９個できた場合に、図２１に示すように、演算サーバ１０の演算機能１４は最小プログラム単位に変換された制御プログラムＡ〜Ｉを含む。また、演算サーバ１１の演算機能１５も制御プログラムＡ〜Ｉを含む。また、演算サーバ１２の演算機能１６も制御プログラムＡ〜Ｉを含む。このような構成とすることで、同種の制御プログラムを複数の演算サーバで実行するようにしている。これら複数の演算サーバによる同種の演算結果については、信頼性を確保するために多数決処理を行なっても良いし、応答時間を保証するために受信した複数の演算結果のうち先着の演算結果を優先してもよい。
【００６１】
データベース３０には、演算サーバ１０が有する演算機能１４、演算サーバ１１が有する演算機能１５、演算サーバ１２が有する演算機能１６のデータである演算機能データ３７が記憶される。また、データベース３０には、分配機能データ３４と集約機能データ３５とが記憶される。
【００６２】
図２２は、第３の実施形態における制御システムの演算サーバの異常発生時の動作手順の一例を示すフローチャートである。  
演算サーバ１０に異常が発生した場合（Ｓ９１）、管理サーバ２０，２１のいずれかが演算サーバ１０の異常を検出する（Ｓ９２）。ここでは、管理サーバ２０が演算サーバ１０の異常を検出したとする。
【００６３】
演算サーバ１０の異常の検出元の管理サーバ２０は、演算サーバ１０が実行していた演算機能１４に対応する演算機能データ３１の伝送指示信号をデータベース３０に送信する（Ｓ９３）。データベース３０は、伝送指示信号を受信すると、異常が発生した演算サーバ１０が実行していた演算機能１４に対応する演算機能データ３７を読み出す。データベース３０は、演算機能データ３７を異常が発生していない演算サーバ１１または演算サーバ１２のいずれかに伝送する（Ｓ９４）。
【００６４】
図２３は、第３の実施形態における演算サーバにおける記憶形態の一例を示す図である。  
例えば、管理サーバ２０が演算サーバ１１に演算機能データ３７を伝送した場合は、図２３に示すように、演算機能データ３７の制御プログラムＡ〜Ｉは、演算サーバ１１が実行する演算機能１５に対応する制御プログラムとなる。この演算サーバ１１は、演算機能１５で２組の制御プログラムＡ〜Ｉを実行して演算処理を行う。  
このようにして、異常が発生した演算サーバの演算機能をその他の演算サーバに割り振ることができる。
【００６５】
本実施形態によれば、複数のうちいずれかの演算サーバに異常が発生した場合でも、異常が発生していないその他の演算サーバで同じ演算処理を継続することが可能であり、システムに要求される応答時間内に制御演算を行うことが可能である。
【００６６】
本実施形態では、異常が発生した演算サーバが実行していた機能を既存のその他のサーバに割り振る構成としたが、第２の実施形態の様に、異常が発生した演算サーバが実行していた機能を新規に構築した演算サーバに割り振る構成としてもよい。
【００６７】
（第４の実施形態）
次に、第４の実施形態について説明する。なお前述した各実施形態と同一の構成には同一の符号を付し、重複する説明は省略する。  
図２４は、第４の実施形態における演算サーバとデータベースにおける記憶形態の一例を示す図である。  
本実施形態では、演算サーバは３台以上である。また、本実施形態では、複数の演算サーバの少なくとも２台は、共通する演算機能を有し、複数の演算サーバの少なくとも１台は、この共通する演算機能を有さない。
【００６８】
図２４に示した例では、演算サーバ１０〜１２の内部記憶に記憶される制御プログラムは、同じ種類のプログラムが２台で重複しており、他の１台は、この種類のプログラムを記憶していない。
【００６９】
例えば、前述のようにコンパイルされてなる制御プログラムが９個できた場合に、図２０に示すように演算サーバ１０の演算機能１４は、最小プログラム単位に変換された制御プログラムＡ、Ｂ、Ｄ、Ｅ、Ｇ、Ｈを含む。また、演算サーバ１１の演算機能１５は、最小プログラム単位に変換された制御プログラムＢ、Ｃ、Ｅ、Ｆ、Ｈ、Ｉを含む。また、演算サーバ１２の演算機能１６は最小プログラム単位に変換された制御プログラムＡ、Ｃ、Ｄ、Ｆ、Ｇ、Ｉを含む。
【００７０】
つまり、制御プログラムＡ，Ｄ，Ｇは、演算サーバ１０内および演算サーバ１２で用いられる。また、制御プログラムＢ，Ｅ，Ｈは、演算サーバ１０内および演算サーバ１１内で用いられる。また、制御プログラムＣ，Ｆ，Ｉは、演算サーバ１１内および演算サーバ１２内で用いられる。このような構成とすることで、同種の制御プログラムを複数の演算サーバで実行しつつ、各制御サーバに記憶させる制御プログラムの数を第３実施形態より少なくしている。
【００７１】
データベース３０には、演算サーバ１０が有する演算機能１４のデータである演算機能データ３１、演算サーバ１１が有する演算機能１５のデータである演算機能データ３２、演算サーバ１２が有する演算機能１６のデータである演算機能データ３３が記憶される。また、データベース３０には、分配機能データ３４と集約機能データ３５とが記憶される。演算機能データ３１〜３３は制御プログラムＡ〜Ｉを一つの演算機能データとして、保持しても良い。
【００７２】
図２５は、第４の実施形態における演算サーバにおける記憶形態の一例を示す図である。  
例えば、管理サーバ２０が演算サーバ１１に演算機能データ３１を伝送した場合は、図２１に示すように、演算機能データ３１の制御プログラムＡ、Ｂ、Ｄ、Ｅ、Ｇ、Ｈは、演算サーバ１１が実行する演算機能１５に対応する制御プログラムとなる。この演算サーバ１１は、演算機能１５で制御プログラムＢ、Ｃ、Ｅ、Ｆ、Ｈ、Ｉおよび伝送された制御プログラムＡ、Ｂ、Ｄ、Ｅ、Ｇ、Ｈのそれぞれを実行して演算処理を行う。  
このようにして、異常が発生した演算サーバの演算機能をその他の演算サーバに割り振ることができる。
【００７３】
本実施形態によれば、制御プログラムが全部でない複数の演算サーバの間で重複している構成で、何れかの演算サーバに異常が発生した場合でも、異常が発生していないその他の演算サーバで演算処理を継続することが可能であり、システムに要求される応答時間内に制御演算を行うことが可能である。
【００７４】
本実施形態では、異常が発生した演算サーバが実行していた機能を既存のその他のサーバに割り振る構成としたが、第２の実施形態の様に、異常が発生した演算サーバが実行していた機能を新規に構築した演算サーバに割り振る構成としてもよい。
【００７５】
これらの各実施形態によれば、演算結果に基づいた機器の制御を滞りなく行うことが可能な制御システムを提供することができる。  
発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
１…制御システム、２，３…ネットワーク、１０，１１，１２…演算サーバ、１３…新規のサーバ、１４，１５，１６…演算機能、２０，２１…管理サーバ、２２…分配機能、２３…集約機能、２４…モニタ機能、３０…データベース、３１，３２，３３…演算機能データ、３４…分配機能データ、３５…集約機能データ、３６…モニタ機能データ、３７…演算機能データ、４０，４１，４２…現場機器、５０…入力データ、５１…出力データ、６０…サーバ管理機器。
【図１】
2014167678.tif 000003
【図２】
2014167678.tif 000004
【図３】
2014167678.tif 000005
【図４】
2014167678.tif 000006
【図５】
2014167678.tif 000007
【図６】
2014167678.tif 000008
【図７】
2014167678.tif 000009
【図８】
2014167678.tif 000010
【図９】
2014167678.tif 000011
【図１０】
2014167678.tif 000012
【図１１】
2014167678.tif 000013
【図１２】
2014167678.tif 000014
【図１３】
2014167678.tif 000015
【図１４】
2014167678.tif 000016
【図１５】
2014167678.tif 000017
【図１６】
2014167678.tif 000018
【図１７】
2014167678.tif 000019
【図１８】
2014167678.tif 000020
【図１９】
2014167678.tif 000021
【図２０】
2014167678.tif 000022
【図２１】
2014167678.tif 000023
【図２２】
2014167678.tif 000024
【図２３】
2014167678.tif 000025
【図２４】
2014167678.tif 000026
【図２５】
2014167678.tif 000027