(57)【要約】【課題】複数の制御系の組み合わせにより全体の機能が実現されている制御システムの信頼性を向上する。【解決手段】制御系（１１１〜１１４）、リモートＩ／Ｏ（１２１〜１２４）、制御対象（１３１〜１３４）をネットワーク接続した工学システムにおいて、幹細胞的性質を持つ電気回路基盤（幹細胞コンポーネント（１４１〜１４２））をあらかじめネットワークに接続しておく。また、それぞれの制御系の情報を他の制御系にも持たせておく。制御系に異常が発生した場合、リモートＩ／Ｏや他の制御系がその異常を検知する。そして、幹細胞コンポーネントは異常が発生した制御系の情報を得て、その制御系に自動的に変化（再生）する。これにより、システムを自動的に復旧することができる。【選択図】図１
2004341645.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで互いに接続している、予備の制御系として動作する少なくとも１つの幹細胞を含む複数の制御系と、該各制御系が制御している制御対象と制御系との間を接続するリモートＩ／Ｏとで構成した自動修復分散制御システムであって、
前記リモートＩ／Ｏは、前記制御系のいずれとも接続でき、前記制御系と制御対象との間で、制御系からの制御信号および制御対象からのフィードバック伝達を行なう入出力手段と、少なくとも該リモートＩ／Ｏを介して制御対象を制御している制御系の異常を検知する異常検知手段を有し、
前記制御系は、前記リモートＩ／Ｏを介して前記制御対象を制御する制御手段と、少なくとも１つの前記制御系の異常を検知する異常検知手段と、該制御手段を変化させる再生手段とを有し、
前記制御系の異常は、全体としてリモートＩ／Ｏ又は制御系のいずれかで検出され、前記リモートＩ／Ｏ又は前記制御系で前記制御系の異常を検知した場合、検知した前記リモートＩ／Ｏ又は前記制御系は、前記幹細胞および異常が検知された制御系と接続しているリモートＩ／Ｏに通知し、通知を受けた幹細胞の制御手段は、再生手段により該異常制御系の制御手段と同様になり、通知を受けたリモートＩ／Ｏの入出力手段は該異常制御系との接続を停止して、通知を受けた幹細胞と接続することを特徴とする自動修復分散制御システム。
【請求項２】
請求項１に記載の自動修復分散制御システムにおいて、
前記リモートＩ／Ｏ及び前記制御系は、前記制御系からの信号パターンを格納したメモリを有しており、
前記制御系及び前記リモートＩ／Ｏの前記異常検知手段は、前記制御信号を前記メモリに格納している信号パターンと照合することにより、前記制御系の異常を検知する
ことを特徴とする自動修復分散制御システム。
【請求項３】
請求項１又は２に記載の自動修復分散制御システムにおいて、
前記幹細胞は、さらに、全ての制御系の情報を格納したメモリを有しており、
前記幹細胞の前記再生手段は、前記異常検知手段により異常が検知された制御系の情報を、前記メモリから取得し、自身の制御手段を該異常制御系の制御手段と同様の機能とする
ことを特徴とする自動修復分散制御システム。
【請求項４】
請求項１又は２に記載の自動修復分散制御システムにおいて、
前記制御系は、さらに、自己以外の少なくとも１つの制御系の情報を格納したメモリを有しており、
前記制御系のメモリは、全体として全ての制御系の情報を格納しており、
前記幹細胞の前記再生手段は、前記異常検知手段により異常が検知された制御系の情報を、前記制御系のメモリから取得し、自身の制御手段を該異常制御系の制御手段と同様の機能とする
ことを特徴とする自動修復分散制御システム。
【請求項５】
請求項４に記載の自動修復分散制御システムにおいて、
前記制御系の前記再生手段は、さらに、自己以外の少なくとも１つの制御系に対して、自己の制御手段とする情報を他の制御系に対して送信し、
受信した制御系の前記再生手段は、該情報を前記制御系の情報を格納したメモリに格納する
ことを特徴とする自動修復分散制御システム。
【請求項６】
請求項５に記載の自動修復分散制御システムにおいて、
前記制御系の前記再生手段は、自己の制御手段とする情報を他の制御系に対して、定期的に送信する
ことを特徴とする自動修復分散制御システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の制御系の組み合わせにより全体の機能が実現されている分散制御システムの信頼性の向上に関する。
【０００２】
【技術的背景】
多数の制御系の組み合わせで全体の機能が実現されているシステム（例えばシーケンス制御システムなど）において、従来、システムの信頼性を向上させるためにシステムの多重化により対処する場合（例えば上下水道などの公共設備プラントなど）がある。しかしながら、一般の製造システムなどでは、コストの問題等により、制御系を全て多重化することはまれである。このため、各制御系に故障が発生した場合には、各制御系の修復に関して個別に対応する必要があった。
また、どの制御系に異常が発生したかを自動的に検出し、自動的に修復するシステムも開発されている。例えば特許文献１では、ＦＰＧＡ  （Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）  を利用した機能装置（制御系）の信頼性を向上するために、次のような技術を提案している。なお、ここで、ＦＰＧＡとはプログラミング可能なＬＳＩなどの電子回路であり、例えば特許文献２などでも利用されている従来技術である。
特許文献１の発明における機能装置は機能回路部、障害検出部、定義処理部、内部メモリで構成され、機能回路部の機能を実現するためのレイアウトパターン定義情報を内部メモリに格納（および外部メモリにバックアップ）しておく。障害検出部は、障害を検出し、障害領域を判別する。その情報に従って、定義処理部はメモリから障害領域を回避できるレイアウトパターン定義情報を読み出し、そのレイアウトパターン定義情報に従って機能回路部を再定義する。これにより、機能装置がサービス中、運用中であっても、装置の機能を自己修復することができる。
【０００３】
【特許文献１】
特開平９−６２５２８号公報
【特許文献２】
特開平１０−９２９４３号公報
【０００４】
【発明が解決しようとする課題】
しかしながら、特許文献１の従来技術を用いても、次のような問題が残る。まず、障害の箇所によっては修復が不可能となってしまう場合がある。例えば、レイアウトパターン定義情報を格納した内部メモリおよび外部メモリにアクセスできなくなった場合である。さらに、外部メモリはレイアウトパターン定義情報のバックアップという目的に特化した存在であるため、この外部メモリに障害が発生した場合、修復が不可能となったり、システム全体が機能不全に陥る場合がある。
【０００５】
【課題を解決するための手段】
上記の課題を解決するために、本発明は、ネットワークで互いに接続している、予備の制御系として動作する少なくとも１つの幹細胞を含む複数の制御系と、該各制御系が制御している制御対象と制御系との間を接続するリモートＩ／Ｏとで構成した自動修復分散制御システムであって、前記リモートＩ／Ｏは、前記制御系のいずれとも接続でき、前記制御系と制御対象との間で、制御系からの制御信号および制御対象からのフィードバック伝達を行なう入出力手段と、少なくとも該リモートＩ／Ｏを介して制御対象を制御している制御系の異常を検知する異常検知手段を有し、前記制御系は、前記リモートＩ／Ｏを介して前記制御対象を制御する制御手段と、少なくとも１つの前記制御系の異常を検知する異常検知手段と、該制御手段を変化させる再生手段とを有し、前記制御系の異常は、全体としてリモートＩ／Ｏ又は制御系のいずれかで検出され、前記リモートＩ／Ｏ又は前記制御系で前記制御系の異常を検知した場合、検知した前記リモートＩ／Ｏ又は前記制御系は、前記幹細胞および異常が検知された制御系と接続しているリモートＩ／Ｏに通知し、通知を受けた幹細胞の制御手段は、再生手段により該異常制御系の制御手段と同様になり、通知を受けたリモートＩ／Ｏの入出力手段は該異常制御系との接続を停止して、通知を受けた幹細胞と接続することを特徴とする自動修復分散制御システムである。
また、前記リモートＩ／Ｏ及び前記制御系は、前記制御系からの信号パターンを格納したメモリを有しており、前記制御系及び前記リモートＩ／Ｏの前記異常検知手段は、前記制御信号を前記メモリに格納している信号パターンと照合することにより、前記制御系の異常を検知することを特徴としてもよい。
前記幹細胞は、さらに、全ての制御系の情報を格納したメモリを有しており、前記幹細胞の前記再生手段は、前記異常検知手段により異常が検知された制御系の情報を、前記メモリから取得し、自身の制御手段を該異常制御系の制御手段と同様の機能とすることを特徴としてもよい。
前記制御系は、さらに、自己以外の少なくとも１つの制御系の情報を格納したメモリを有しており、前記制御系のメモリは、全体として全ての制御系の情報を格納しており、前記幹細胞の前記再生手段は、前記異常検知手段により異常が検知された制御系の情報を、前記制御系のメモリから取得し、自身の制御手段を該異常制御系の制御手段と同様の機能とすることを特徴としてもよい。このとき、前記制御系の前記再生手段は、さらに、自己以外の少なくとも１つの制御系に対して、自己の制御手段とする情報を他の制御系に対して送信し、受信した制御系の前記再生手段は、該情報を前記制御系の情報を格納したメモリに格納することを特徴としてもよい。さらに、前記制御系の前記再生手段は、自己の制御手段とする情報を他の制御系に対して、定期的に送信することを特徴としてもよい。
【０００６】
【発明の実施の形態】
本発明では、上述した従来技術の問題点を解決するために、次のような特徴を有する。まず、複数の制御系の組み合わせにより全体の機能が実現されるような工学システムにおいて、ある制御系が故障した場合に、故障した制御系の機能を再生させるために、生物の再生過程に見られる「幹細胞」に相当するものを、制御系の予備として導入する。すなわち、それ自体通常はなんら特定の性格（機能）を持たない状態の「幹細胞的性質を持つ電気回路基盤（ボード）」（以降「幹細胞コンポーネント」とよぶ）を１個以上、ネットワークでシステムにあらかじめ結合しておき、各々の制御系が故障した場合に、幹細胞コンポーネントが故障した制御系に自動的に変化（以降「再生」という）する仕組みを構築する。これにより、システム全体の機能を維持できるようにする。
以降、本発明の自動修復分散制御システムの実施形態を、図を参照しながら詳細に説明する。
【０００７】
＜システム構成＞
最初に、本実施形態のシステム構成を説明する。本実施形態のシステムにおいては、全ての制御対象はネットワークとリモートＩ／Ｏ（以降、単に「Ｉ／Ｏ」ともいう）を介して各制御系に制御される。また、各制御系（幹細胞コンポーネントを含む）同士も、イーサネット（登録商標）等のネットワークで接続する。
ネットワーク接続の様式の例を図１に示す。なお、図１は接続様式の一例を示すものであり、他の多様なケースが考えられる。他の例については後述する。
【０００８】
図１において、制御対象１  １３１〜制御対象４  １３４はそれぞれ、Ｉ／Ｏ（リモートＩ／Ｏ）１  １２１〜Ｉ／Ｏ（リモートＩ／Ｏ）４  １２４を介して制御系１  １１１〜制御系４  １１４に接続されている。これにより、各制御系から各制御対象を制御することができる。
ここで、各Ｉ／Ｏと各制御系との間の接続は、Ｉ／Ｏ側の黒丸１５０と制御系側の黒丸１５０との間の接続として示されている。Ｉ／Ｏ側の黒丸１５０は、Ｉ／Ｏ内の構成要素の１つである「制御系と制御対象との信号のやり取りをする制御部」（図３において入出力制御部３１０で示している）からの接続を意味している。また、制御系側の黒丸１５０は、制御系内の構成要素の１つである「対象Ｉ／Ｏと信号をやり取りする回路部」（図２において入出力回路部２６０で示している）からの接続を意味している。
各幹細胞コンポーネントに示された黒丸１５０も、制御系と同様、幹細胞コンポーネント内の構成要素の１つである「対象Ｉ／Ｏと信号をやり取りする回路部」（図２において２６０で示している）からの接続である。図１に示すように、幹細胞コンポーネント側の黒丸１５０と各制御系とはネットワークで接続されている。これにより、例えば、制御系が故障して幹細胞コンポーネントがその制御系の代わりとして機能する際に、対象Ｉ／Ｏと信号をやり取りすることができる。
【０００９】
一方、図１において、制御系１  １１１〜制御系４  １１４および幹細胞コンポーネント１  １４１〜幹細胞コンポーネント２  １４２は、それぞれの白丸１６０間で、互いにネットワーク接続されている。この白丸１６０は、制御系および幹細胞コンポーネント内の構成要素の１つである「再生を実現するための制御部」（図２において再生制御部２４０で示している）からの接続を意味している。これにより、例えば、幹細胞コンポーネントが故障した制御系の代わりとして機能する際に、対象Ｉ／Ｏと信号をやり取りすることができる。なお、図１においては制御系１  １１１〜制御系４  １１４と幹細胞１  １４１，幹細胞２  １４２を２重のネットワーク接続で示しているが、本実施形態においてネットワーク接続は１重以上であればよい。ネットワーク接続が多重であるほど、ネットワークの切断等の故障に強いシステムとすることができる。
【００１０】
上述したように、制御系、幹細胞コンポーネント、およびリモートＩ／Ｏの内部構成要素は図２および図３に示している。次に、これらの図を参照しながら、各々の内部構成要素について説明する。
【００１１】
＜制御系、幹細胞コンポーネントおよびリモートＩ／Ｏの内部構成＞
制御系および幹細胞コンポーネントは、図２に示すような内部構成要素からなる。なお、図２に示す構成要素は一例であり、他のバリエーションも考えられる。
各制御系（幹細胞コンポーネントを含む）２００の内部において、機能回路部２１０はＦＰＧＡにより構成され、制御対象を制御するための回路である。回路定義メモリ部２２０は、機能回路部２１０のＦＰＧＡ回路を定義するための情報が格納されている。本実施形態では機能回路部２１０の外部にあるが、機能回路部２１０の内部にあってもよい。回路制御部２３０は、回路定義メモリ部２２０から定義回路を選択し、機能回路部２１０のＦＰＧＡ回路を書き換えるための制御部である。
再生制御部２４０は、異常信号検出部を含んでいる。この異常信号検出部は少なくとも１つの制御系の異常を、異常信号パターン検出用メモリ部２７０に格納されている異常信号パターンと照合することにより検出している。そして、リモートＩ／Ｏ部等が異常を検出したとき、「再生」を実現している。
再生制御部２４０は、上述の図１で説明したように、他の制御系、幹細胞コンポーネントおよびリモートＩ／Ｏと信号をやり取りする。
また、各制御系（幹細胞コンポーネントを含む）は、後述するように、「再生」を実現するために自己以外の制御系の回路定義情報やデータを回路定義メモリ部２２０やデータ保存用メモリ部２５０に保持している。再生制御部２４０は、自己の制御系がどの制御系の回路定義情報やデータを保持しているかの情報を持つ。
再生制御部２４０は、機能回路部２１０と同様にＦＰＧＡやマイクロプロセッサなどを用いて構成することができる。なお、異常信号検出部は、複数の制御系の異常を検出するようにすれば、全体的にどれかの制御系が故障しても異常を検出する確率が増すことになる。
【００１２】
データ保存用メモリ部２５０は、機能回路部２１０のＦＰＧＡの機能実現に必要となるデータを格納している。
入出力回路部２６０は、機能回路部２１０のＦＰＧＡによる、対象の制御実行した結果を、対象リモートＩ／Ｏと入出力信号のやり取りをする。
異常信号パターン検出用メモリ部２７０は、異常信号を検出するための検出用パターンを格納している。
本実施形態において「制御系の異常」とは、これら制御系内部の各機能のどれか１つでも異常になった場合を全て含む。つまり、ＦＰＧＡ内部の異常にとどまらず、機能単位である制御回路基板のどこかに１つ何らかの異常があった場合、制御機能異常として検出され処理される。
なお、回路定義メモリ部２２０、データ保存用メモリ部２５０、異常信号パターン検出用メモリ部２７０については、ハードディスク等の大容量の記憶媒体を用いることも可能である。
【００１３】
一方、リモートＩ／Ｏは図３に示すような内部構成要素からなる。
リモートＩ／Ｏ  ３００の内部において、入出力制御部３１０は、制御系と制御対象との信号のやり取りをする。入出力制御部３１０は、各々の制御系および制御対象と連絡している。異常検出部３２０は、少なくとも当該リモートＩ／Ｏを介して制御対象を制御している制御系からの異常信号を検出する。もちろん、他の制御系の異常信号を検出するようにしてもよい。異常信号パターン検出用メモリ部３３０は、異常信号パターンを格納しており、異常検出部３２０は、格納されている異常信号パターンを用いて、制御系からの信号の異常を検出する。
なお、これらの構成要素の、本実施形態のシステムにおける具体的な役割については、後で詳しく説明する。
【００１４】
本実施形態のシステムでは、上述したようなネットワークを利用して、各々の制御系、幹細胞コンポーネント、リモートＩ／Ｏが常時、互いにパケットを送信する。これにより、互いの状態を常時モニタすることができる。
この常時モニタにより、ある制御系の異常を、他の各制御系、幹細胞コンポーネント、および各リモートＩ／Ｏのどれか（複数を含む）が検出することができるように構成する。また、各制御系が制御対象を制御するための出力信号の異常は、出力が無い場合を含め検出可能である。つまり、各制御系が担う機能のうち、どれが異常になった場合でも、その異常が検出される。
【００１５】
幹細胞コンポーネントは、そのようにして検出された異常の情報を得て、異常が検出された制御系に対応するリモートＩ／Ｏにその情報を与え、当該異常制御系からの当該リモートＩ／Ｏへの情報を無効とし、新に自らは後述のように、ＦＰＧＡを用いて当該故障制御系と同等の制御機能を実現する制御回路を構築し、自らが当該制御系の代わりとなり、当該制御対象を制御する「再生」を行なう。
幹細胞コンポーネントが「再生」を行なうために制御回路を構築する方法を、次の（方法１）〜（方法４）に示す。
【００１６】
＜制御回路の構築方法＞
（方法１）
最も単純な方法としては、幹細胞コンポーネントの回路定義メモリ部２２０に、各制御系の制御回路全てを構築するための回路定義情報を保持させ、どれが異常な制御系であるかの情報を得た後、その回路定義情報に基づき必要となる制御回路を構築する方法である。
但し、制御系の機能の種類によっては、その機能を実現するために、変化するデータを短期間あるいは長期間にわたりデータ保存用メモリ部２５０に保存することが必要となる場合がある。また、入力データ次第でＦＰＧＡの回路パターンを変化させることが必要となる場合もある。このような場合、各制御系は、それぞれが必要とするデータをデータ保存用メモリ部２５０や回路定義メモリ部２２０に保持することになる。幹細胞コンポーネントがどの制御系にも変化しうるようにするために最も簡単な方法は、幹細胞コンポーネントのデータ保存用メモリ部２５０や回路定義メモリ部２２０に、各制御系のそれらのデータを全て保持することである。
しかし、例えば幹細胞コンポーネントの回路定義メモリ部２２０が、ハードディスクなど大容量の記憶媒体である場合には、幹細胞コンポーネント内に全てのデータを保持することが可能となるが、そうでない場合には膨大なメモリが必要となり、事実上それが困難な場合も想定される。
そのような場合を想定して、以下の（方法２）〜（方法４）に説明するような方法をとることもできる。
【００１７】
（方法２）
番号ｎの制御系（制御系ｎ）のデータ保存用メモリ部２５０の内容を、制御系ｎが常時、制御系ｎ＋１にも転送し、制御系ｎ＋１のデータ保存用メモリ部２５０にもその内容を同時に持たせ、システム全体として全ての制御系のデータ保存用メモリ部２５０の内容を自己以外のいずれかの制御系に持たせるようにする。また、制御系ｎにおいて、もしＦＰＧＡの回路パターンの書き換えが行なわれた場合、その回路パターン情報を常時、制御系ｎ＋１にも転送し、その回路パターン定義情報を制御系ｎ＋１の回路定義メモリ部２２０（もしくはデータ保存用メモリ部２５０）に同時に持たせる。この転送は各制御系の再生制御部２４０により実現される。
これによって、制御系ｎと制御系ｎ＋１が、同一時刻に同時に故障しないかぎり、制御系ｎが異常になった場合、幹細胞コンポーネントは制御系ｎ＋１のメモリを参照して制御系ｎの機能を持つように変化し、その機能を復旧することができる。
もちろん、これを実現するには、おおまかに言えば、各制御系には最大量のメモリを必要とする制御系のメモリ量（Ｍとする）の２倍量が必要となり、系全体で必要なメモリ量は、最大２Ｍ×Ｎ（Ｎは制御系の数）となる。しかし、上記（方法１）のように、幹細胞コンポーネントに仮にＭ×Ｎのメモリを載せ、その幹細胞コンポーネントをあらかじめ複数個用意するよりはメモリ量が節約できる。
【００１８】
（方法３）
上記（方法２）において、再生制御部２４０が、制御系ｎのメモリ内容を常時、制御系ｎ＋１と制御系ｎ−１にも転送し、システム全体として全ての制御系のデータ保存用メモリ部２５０の内容を自己以外のいずれか２つの制御系に持たせるようにすれば、同一時刻に同時に、番号が隣り合う２個の制御系が故障しても復旧が可能となり、系全体の信頼性はさらに増大する。ただし、制御系に必要なメモリは、系全体で最大３Ｍ×Ｎ必要になる。なお、常時転送先の制御系数をさらに増やすことにより、系全体の信頼性をいっそう増大させることが可能となる。ここで、転送先の制御系の数や、どの制御系に対して転送するかなどのルールは、システムに応じて決定すればよい。
【００１９】
（方法４）
系全体のメモリを節約するために、各制御系の再生制御部２４０に、他の制御系の空いているデータ保存用メモリ部２５０の量をモニタする機能を持たせる。これにより、多くのデータを転送する必要のある制御系は、メモリに余裕がある制御系を選択してメモリ内容の転送を行なうことができる。また必要があれば、そのデータを分割し、複数の制御系のメモリに転送するというように、各転送先制御系の空いているメモリ量に応じて、転送先を動的に決定するということも可能となる。この方法においても上記（方法１）〜（方法３）と同様に、システム全体として全ての制御系のデータ保存用メモリ部２５０の内容を自己以外のいずれかの制御系に持たせるようにする。
この方法では、上述でｎで説明したような番号のルールには拘束されずに、各制御系は他の（単数または複数の）制御系に対して、自己制御系を再構築するためのデータを転送する。また、各制御系および幹細胞コンポーネントは、どの制御系が他のどの制御系のデータを持っているかを再生制御部２４０で把握する。
このような動的なメモリ割振りを活用すれば、例えば、ある特定の制御系２つだけが大量のメモリ（Ｍ）を必要とし、他の制御系はさほどメモリを必要としていない場合に、例えば上記（方法１）では幹細胞コンポーネントと他のどれか２つの制御系（複数あるうちの他の幹細胞コンポーネントを含む）がＭ量ずつのメモリを持てばよい（あるいは、上記のデータ分割を行なう場合は、分割データを転送するグループを形成しているうちの他のどれか２つの制御系が、それぞれのグループ内でトータルＭ量ずつのメモリを持てばよい）ということになり、系全体のメモリ量をさらに減らすことが可能となる。
【００２０】
このように、各制御系は、自己の制御系を形成するための情報を他の（単数または複数の）制御系に転送し保持させる。このとき、上述したように、システム全体として全ての制御系の情報（単数又は複数）を自己以外のいずれかの制御系に保持させるようにする。なお、上記の（方法２）〜（方法４）においては、各制御系において自己がどの制御系の情報を保持しているのかを把握する必要があり、上述したように、各制御系の再生制御部２４０がそれを把握している。
そして、ある制御系が機能不全に陥ったり破壊された場合に、幹細胞コンポーネントはその保持された情報を参照し、当該制御系の機能を持つコンポーネントに変化（再生）することで、システム全体の機能を回復する。
【００２１】
以降、本実施形態のシステムにおいて制御系が制御対象を制御する方法、制御系の異常検出方法、異常発生時のシステム回復の流れについて、図１に示すシステム構成を例として具体的に説明する。
【００２２】
＜制御方法の具体例＞
まず、図１を参照しながら、制御系２  １１２がＩ／Ｏ２  １２２を通じて、制御対象２  １３２の制御をする過程を例として、制御方法の具体例を説明する。
なお、本実施形態においては、例えば  Ｆａｓｔ  Ｅｔｈｅｎｅｔ  と  ＵＤＰ／ＩＰ  を利用した技術を用いて、パケットによるデータ（信号）のやり取りを行なうものとする。この  Ｆａｓｔ  Ｅｔｈｅｎｅｔ  と  ＵＤＰ／ＩＰ  を利用した技術は従来技術であり、例えば、藤本康孝・関口隆「分散型プログラマブルコントローラ群による耐故障制御」（平成１３年電気学会電子・情報・システム部門大会  講演論文集Ｉ）に示されている。
（１）制御系２  １１２の入出力回路部２６０は、ブロードキャストで全ての宛先（幹細胞を含む各制御系の再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対して、ネットワークを介してパケットを送る。
（２）Ｉ／Ｏ２  １２２は、送信元が制御系２  １１２のパケットのみを選択し、そのデータを制御対象２  １３２に渡す。この時、Ｉ／Ｏ２  １２２の異常検出部３２０は、制御系２  １１２からのデータ（信号）が、信号パターンの許容範囲にあるかどうかについて異常の検出を行なう。仮に異常が検出された場合は、Ｉ／Ｏ２  １２２は、ブロードキャストで全ての宛先（幹細胞を含む各制御系の再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対してパケットを送り、制御系２  １１２の異常情報を送信する。
【００２３】
（３）制御対象２  １３２はＩ／Ｏ２  １２２に対し、必要に応じて、フィードバックのための情報（信号）を返す。ここで、Ｉ／Ｏ２  １２２の作用に関しては以下の（ａ）（ｂ）２つの場合を考える。
（ａ）Ｉ／Ｏ２  １２２は、制御系２  １１２の入出力回路部２６０宛てに、制御対象２  １３２からの信号をパケットで送る。
（ｂ）Ｉ／Ｏ２  １２２は、ブロードキャストで全ての宛先（各制御系の再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対して、制御対象２  １３２からの信号をパケットで送る。制御系２  １１２の入出力回路部２６０は、送信元がＩ／Ｏ２  １２２のパケットを選択する。
なお、上記の（ｂ）を実行することにより、Ｉ／Ｏ２  １２２や制御対象２  １３２の異常の認識が、制御系２  １１２以外からも可能となるが、例えば実行速度の面では（ａ）の方が優れている。従って（ａ）（ｂ）どちらを採用するかは、システムによって判断するとよい。
（４）制御系２  １１２の入出力回路部２６０に渡された信号は、制御系２  １１２の機能回路部２１０により処理される。
（５）制御系２  １１２の機能回路部２１０により処理された結果の信号は、制御系２  １１２の入出力回路部２６０に渡される。
【００２４】
上記（１）〜（５）を繰り返すことにより、制御系２  １１２は、Ｉ／Ｏ２  １２２を通じて制御対象２  １３２とパケットによるデータのやり取りを行ない、制御対象２  １３２の制御を行なう。
なお、制御系２  １１２の機能回路部２１０は、上述したＩ／Ｏ２  １２２からのフィードバック信号以外にも、各種の入力情報（例えば時間制御、マニュアル制御、その他必要に応じて他の制御対象からの情報など）に従い、制御系２  １１２の入出力回路部２６０に信号を渡す。
また、制御システムの実行動作上問題がない場合は、各制御系（幹細胞コンポーネントを含む）の入出力回路部２６０と再生制御部２４０の機能を１つの構成要素内に持たせることもできる。
【００２５】
＜異常検出方法の具体例＞
本実施形態では、上述のリモートＩ／Ｏによる異常検出の他、次のような異常検出方法をとる。
【００２６】
（１）制御系全てが常時動作しているシステムの場合
この場合は、上述のように、各制御系の入出力回路部２６０はブロードキャストで全ての宛先（各制御系および幹細胞コンポーネントの再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対してパケットを送るが、これにより各制御系の再生制御部２４０は、制御対象以外からの信号についても、その送信元と信号内容を認識する。各制御系の再生制御部２４０には、全ての制御系からの信号あるいは特定の１個以上の制御系からの信号に対して、その信号の異常（信号が途絶える、あるいは信号パターンに異常が認められる）を認識する異常信号検出部を持たせる。
なお、信号パターンの異常を識別するために、異常信号パターン検出用メモリ部２７０を持たせる。異常信号パターン検出用メモリ部２７０は、各制御系に対応する異常信号パターン検出用メモリ（どのような信号パターンを異常と見なすかについてのメモリ）である。このとき、各々の制御系の異常を、他の各制御系（単数または複数）、幹細胞コンポーネント（単数または複数）、のどれかが検出することができるようにする。また、必要に応じて上述の各制御系が制御する制御対象と接続するリモートＩ／Ｏ以外のリモートＩ／Ｏ（単数または複数）によっても検出することができるようにする。これにより、自己以外の各制御系の異常が検出可能となる。
【００２７】
このように、システム全体として各制御系の異常を、少なくとも１個以上の自己以外の上記各制御系、幹細胞コンポーネントあるいはリモートＩ／Ｏが検出することになる。各制御系の異常をそれらの何個により検出可能とするかは、各制御系やシステムごとに決めることができる。その数が多いほど、故障に対して強いシステムにすることができる。
なお、この異常信号パターン検出用メモリ部２７０は、回路定義メモリ部２２０やデータ保存用メモリ部２５０で代用することも可能である。
【００２８】
（２）制御系全ての常時動作が必要でないシステムの場合
この場合は、各制御系からの制御信号が長時間にわたり発生しなくてもそれが異常ではないケースがある。このようなシステムにおいては、各制御系の再生制御部２４０は、ブロードキャストで全ての宛先（各制御系および幹細胞コンポーネントの再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対して、正常動作確認のための信号を、一定時間間隔でパケット送信する。このパケットは当該制御系が正常に機能しうることを他の制御系に認識させるための信号のみを含み、実際の制御のための情報は持たない。なお、時間間隔は、そのシステムが必要とする制御対象やその制御動作時間などに依存し、システムによりケースバイケースで設定する。
上記（１）と同様、各制御系の再生制御部２４０には、全ての制御系からの信号あるいは特定の（単数あるいは複数の）制御系からの信号に対して、その信号の異常（信号が途絶える、あるいは信号パターンに異常が認められる）を認識する異常信号検出部を持たせる。異常信号パターン検出用メモリ部２７０についても、上記（１）と同様である。
【００２９】
なお、制御系が正常に機能しうることを知らせるパケット信号の送信には、次の（ａ）（ｂ）２通りの方法があるが、これらも、システムによりケースバイケースで設定する。
（ａ）単に再生制御部２４０が定期的に信号パケットを送ることにより、再生制御部２４０の機能が正常であることを示す方法
（ｂ）再生制御部２４０が機能回路部２１０に定期的にテスト信号を与え、当該制御系の機能回路部２１０の実行動作テストを行ない、機能回路部２１０が正常であることを再生制御部２４０が確認した後、正常である旨の信号パケットを送る方法
【００３０】
＜故障発生時におけるシステム回復の流れの具体例＞
次に、システム内のある制御系に異常や故障が発生した場合に、システム回復（再生）に至るまでの具体的な流れを説明する。ここでは、図１において制御系２  １１２が故障した場合を例として説明する。
（１）制御系２  １１２に異常が発生した場合、上述の異常検出方法により、その異常はＩ／Ｏ（リモートＩ／Ｏ）２  １２２および他の単数または複数の制御系（幹細胞コンポーネント１および２を含む）、あるいは必要に応じてＩ／Ｏ２１２２以外の単数または複数の各リモートＩ／Ｏにより検出される。この異常情報は幹細胞コンポーネント１および２（あるいはそれらを含む全ての制御系）に送信される。
本実施形態では、前述のように、各々の制御系の異常を、他の各制御系、幹細胞コンポーネントのどれか（単数または複数）、および各リモートＩ／Ｏのどれか（単数または複数）が検出することができるようにしているため、いずれの制御系に異常が発生した場合でも、幹細胞コンポーネントに異常を伝えることができる。また、Ｉ／Ｏ２  １２２による異常検出が失敗した場合でも、このような他の制御系や他のＩ／Ｏによる異常検出情報から、Ｉ／Ｏ２  １２２は制御系２
１１２の異常を認識できる。
【００３１】
（２）ここで、例えば、幹細胞コンポーネントのアドレスが若い順（値が小さい順）に「再生」に参加するというルールをあらかじめ与えておく。この場合、幹細胞コンポーネント１がまず「再生」に参加し、制御系２  １１２に変化する。
なお、どの幹細胞コンポーネントのアドレスが若いかは、各幹細胞コンポーネントの再生制御部２４０が互いにパケット信号を送受信することにより、「再生」に参加する前に、あらかじめ各幹細胞コンポーネントが把握している。
（３）上述したように、本実施形態では、制御系２  １１２の回路定義情報とデータを、（ａ）幹細胞コンポーネント１が保持している場合もあるが、（ｂ）他の（単数または複数の）制御系のメモリに保存されていることもある。
上記（ａ）の、幹細胞コンポーネント１が制御系２  １１２の回路定義情報とデータを回路定義メモリ部２２０やデータ保存用メモリ部２５０に保持している場合、後述するように再生制御部２４０はそれらの情報を保持していることを把握している。そして、制御系２  １１２に異常が発生した際、幹細胞コンポーネント１はそれらの情報を用いて回路制御部２３０によって機能回路部２１０の形成を行なう。
【００３２】
また、上記（ｂ）の、他の（単数または複数の）制御系が制御系２  １１２の回路定義情報とデータを保持している場合、それらの情報を保持している各制御系の再生制御部２４０は、「自己の回路定義メモリ部２２０やデータ保存用メモリ部２５０に、制御系２  １１２の回路定義情報あるいはデータが保持されている」という情報も持つ。このためのメモリは、再生制御部２４０に独自に持たせることとするが、回路定義メモリ部２２０、データ保存用メモリ部２５０や異常信号パターン検出用メモリ部２７０で代用してもよい。
そして、制御系２  １１２に異常が発生した際、幹細胞コンポーネント１の再生制御部２４０は、各制御系の再生制御部２４０にアクセスして、制御系２  １１２の回路定義情報やデータが保持されている制御系を選択し、（あるいは、後述するように、どの制御系が制御系２  １１２の回路定義情報やデータを有するのかを、幹細胞コンポーネント１の再生制御部２４０があらかじめ把握していることにより、）該当する他の制御系の再生制御部２４０を通じて、それらの制御系の回路定義メモリ部２２０やデータ保存用メモリ部２５０を参照し、（または、幹細胞コンポーネント１の回路定義メモリ部２２０やデータ保存用メモリ部２５０にその内容をあらかじめコピーした後、それらを用いて、）回路制御部２３０によって機能回路部２１０の形成を行なう。
【００３３】
なお、上記の「再生」を実現するために、各幹細胞コンポーネントおよび各制御系の再生制御部２４０は「自己の回路定義メモリ部２２０やデータ保存用メモリ部２５０にどの制御系の回路定義情報あるいはデータ情報が保持されているか」についての情報を持つ。この「どの制御系の回路定義情報あるいはデータに関する情報を持つか」について、各幹細胞コンポーネントおよび各制御系の再生制御部２４０は、他の各幹細胞コンポーネントの（あるいは各制御系も含め、その）全ての再生制御部２４０に対して、定期的に、あるいは自己がどの制御系の回路定義情報あるいはデータに関する情報を持つかについて変更があった場合などに随時、パケット送信することとしてもよい。
これにより、各幹細胞コンポーネントの（あるいは各制御系も含め、その）全ての再生制御部２４０は、常に、どの幹細胞コンポーネントあるいは制御系から各制御系の再生に必要な情報を読み出したらよいのかをあらかじめ把握することが可能となる。
【００３４】
（４）このように、制御系２  １１２と同様の機能回路部２１０およびデータを獲得した幹細胞コンポーネント１は、ブロードキャストで全ての宛先（各制御系の再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対してパケットを送る。前述したように、このパケットはＩ／Ｏ２  １２２に信号を与える目的のほか、他の制御系等による異常信号の検出に利用される。
【００３５】
（５）一方、Ｉ／Ｏ２  １２２は、制御系２  １１２が異常になったという情報を得た後、対応すべき入力信号の送信元のアドレスを、もとの制御系２  １１２から幹細胞コンポーネント１に変更し、また、制御対象２  １３２からの信号をパケット送信する宛先を、幹細胞コンポーネント１の入出力回路部２６０に変更する（前述の＜制御方法の具体例＞の（３）（ａ）の方法を用いた場合）。もしくは、全ての宛先（各制御系の再生制御部２４０と入出力回路部２６０、および各リモートＩ／Ｏの入出力制御部３１０）に対してパケットを送る（前述の＜制御方法の具体例＞の（３）（ｂ）の方法を用いた場合）。
（６）また、幹細胞コンポーネント１は、制御系２  １１２が異常になったという情報を得た後、入出力回路部２６０が対応すべき入力信号パケットの送信元アドレスを、Ｉ／Ｏ２  １２２からのものと設定する。
以上（１）〜（６）により、幹細胞コンポーネント１が完全に、故障した制御系２  １１２と置き換わることにより、システムの再生を行なう。
【００３６】
＜ネットワークの接続様式の例＞
本実施形態のシステムのネットワーク構成は、上述したように、図１に示す他にも様々な様式が考えられる。また、制御系、幹細胞コンポーネントおよびリモートＩ／Ｏなどの数も、図１に限られるものではない。
以降、ネットワーク接続様式の他の例を、図４〜図７を用いて紹介する。なお、ここに挙げる接続様式も例示であり、さらに他の様式も考えられる。
【００３７】
図４〜図６は、図１と同じく、４つの制御対象に対して４つの制御系がリモートＩ／Ｏを介して接続してあり、幹細胞コンポーネントの数は２つである。しかし、図１と比較してネットワーク構成が増強されており、ネットワークの回線そのものに（複数の）支障や破壊があった場合においても、システムの復旧（再生）を行なうことが可能となる。すなわち、ネットワーク接続の障害に対する信頼性を向上することができる。例えば、図４に示すネットワーク構成の場合、図１と比べ、各制御系と各々の制御対象との間のネットワークが切断された場合にも、システムを復旧することができる。
また、図７は、図１と同じネットワーク構成であるが、ネットワークを構成する制御系や制御対象の数が異なる例である。図７のネットワークでは、制御系の数は制御系１  １１１〜制御系５  １１５まで５つである。また、制御系４  １１４は、Ｉ／Ｏ４ａ  １２４ａを介して制御対象４ａ  １３４ａを、Ｉ／Ｏ４ｂ１２４ｂを介して制御対象４ｂ  １３４ｂを制御している。このように、本実施形態においては制御系、リモートＩ／Ｏ、制御対象の数に特に制限はない。また、幹細胞コンポーネントの数にも制限はないが、数が多いほど、故障に対して強いシステムにすることができる。
実際どのネットワーク構成を採用するか、あるいは、制御系、幹細胞コンポーネントおよびリモートＩ／Ｏなどの数は、システムの目的や必要性、コストとのバランス等により、個々のシステムごとに決めることができる。
なお、上述では、制御系の機能回路部として、ＦＰＧＡを用いた場合で説明したが、プロセッサとプログラムにより、機能回路部を構成することもできる。この場合、機能回路部を構成する情報として、プログラムが用いられる。
【００３８】
【発明の効果】
本発明では、多数の制御系の組み合わせで全体の機能が実現されているシステムにおいて、個々の各制御系が故障したり破壊された場合、当該故障制御系が自動的に自己修復する機構をシステム全体に加えている。特に、システム内のどのような制御系に機能不全が生じた場合においても自己修復を可能としている。
これにより、制御系システム全体において「この機能部分が故障したり破壊された場合は自己修復が不可能となる」という状況を回避し、システムの信頼性を向上することができる。
また、本発明で提案する基本的な原理は、多くの実際的な制御システムにおいて活用することが可能で、例えば、各種プラントの制御、工場等のプロセス系の制御をはじめ、今後発展が予想されるネットワーク家電分野での活用も可能である。ネットワーク家電分野での活用例としては、ネットワークで接続された家電のうちある特定の家電の制御基盤が故障した場合に、瞬時に自動的に自己復旧する機能を付加することが可能となる。
また、本発明の方法は、制御システムの故障を想定した場合にとどまらず、人為的なシステムの破壊が行なわれた場合のシステムの自動復旧方法としても有効である。具体的には、テロ等により大規模システムの一部が破壊された場合、本発明の方法を使うことで自動復旧が可能となる。
【図面の簡単な説明】
【図１】本実施形態のシステム構成の例である。
【図２】制御系および幹細胞コンポーネントの内部構成要素の例である。
【図３】リモートＩ／Ｏの内部構成要素の例である。
【図４】本実施形態のネットワーク接続様式の例である。
【図５】本実施形態のネットワーク接続様式の例である。
【図６】本実施形態のネットワーク接続様式の例である。
【図７】本実施形態のネットワーク接続様式の例である。
【図１】
2004341645.tif 000003
【図２】
2004341645.tif 000004
【図３】
2004341645.tif 000005
【図４】
2004341645.tif 000006
【図５】
2004341645.tif 000007
【図６】
2004341645.tif 000008
【図７】
2004341645.tif 000009