JP4491479B2 - 分散制御システム - Google Patents

分散制御システム Download PDF

Info

Publication number
JP4491479B2
JP4491479B2 JP2007250410A JP2007250410A JP4491479B2 JP 4491479 B2 JP4491479 B2 JP 4491479B2 JP 2007250410 A JP2007250410 A JP 2007250410A JP 2007250410 A JP2007250410 A JP 2007250410A JP 4491479 B2 JP4491479 B2 JP 4491479B2
Authority
JP
Japan
Prior art keywords
common processing
unit
nodes
node
failure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007250410A
Other languages
English (en)
Other versions
JP2009081750A (ja
Inventor
正裕 松原
康平 櫻井
光太郎 島村
信康 金川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007250410A priority Critical patent/JP4491479B2/ja
Priority to US12/194,575 priority patent/US8041993B2/en
Publication of JP2009081750A publication Critical patent/JP2009081750A/ja
Application granted granted Critical
Publication of JP4491479B2 publication Critical patent/JP4491479B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/182Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits based on mutual exchange of the output between redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、ネットワークにより結合された複数の装置が協調動作して、高信頼な制御を行うシステムに関する。
制御システムの構成の1つとして、分散システムがある。分散システムは、通信ネットワークにより結合された複数のノード(計算機やコントローラ)で、メッセージの送受信を通じて協調動作をするものである。分散システムでは、その一部に故障が発生しても、正常な残りのプロセスにて故障部位の処理を引き継ぐことで、耐故障性の高いシステムとすることができる。
分散システムにて問題になることの1つが、障害検出である。各ノードが自律的に動作しているため、ノード間でシステム障害の位置,種類,時機などに関する認識に違いが発生する恐れがある。このような認識の差により、ノード間で矛盾する動作を行い、システムが危険な状態となる恐れもあるため、分散システムにて制御を行う場合には、障害に関する認識をノード間で一致させることが重要である。
ノード間で障害に関する認識を一致させる方法として、ノード間での相互監視がある。相互監視による障害検出手法では、あるノードについて、各ノードが単独で障害の監視と検出を行い、その障害検出結果を、ネットワークを通してノード間で交換し、各ノードにて障害検出結果を集約し、最終的な障害の特定を行う。障害特定方法、即ち障害検出結果の集約方法として、例えば多数決型(障害を検出したノード数がある閾値、例えば障害のないノードの半数を超えていれば、障害ありと判断するもの)がある。
ここで、相互監視により障害を特定する場合、一般に次式の制約がある。
プロセス数≧3×特定可能な障害数+1 …(1)
つまり、1つの障害を特定するためには、4つ以上のノードを相互監視に参加させる必要がある。しかし、規模の小さなシステムや、サブシステムだけで稼動する場合には、3ノードで構成される場合もある。そこで、3ノードで構成されるシステムにおいても、障害特定を行うことができる技術についての考察がある(非特許文献1参照)。
米田,梶原,土屋:ディペンダブルシステム,共立出版(2005−11)
非特許文献1では、例えば、3つのノードに対して、共通の変数値を入力する。そして、各々のノードの出力を比較し、他の2つのノードと異なる値を出力したノードが故障していると分かる。しかし、そもそも、入力する変数値が共通である保障はない。当該変数値が共通でなければ、出力もばらばらとなり、実効性に欠ける、という課題がある。
そこで、本発明の目的は、ノード数が3つであっても、確実に障害特定を行うことができるシステムを提供することにある。
複数ノードがネットワークを介して接続される分散システムにおいて、複数ノードの各々は、当該複数ノードの各々が持つ一つのパラメータを一致化する入力一致化部と、パラメータを入力とする共通処理を行う共通処理部と、共通処理の結果を、ネットワークを介して各々交換する送受信部と、結果の各々を比較し、当該結果が一致しない場合に異常があると特定する障害特定部を備える。
本発明によれば、ノード数が3つであっても、確実に障害特定を行うことができるシステムを提供することができる。
以下、実施形態について図面を用いて説明する。
図1は、システム構成図である。
本システムは、複数のノード(1−1〜1−n)からなり、これらはそれぞれネットワーク6を介して接続される。尚、n≧3である。
ノードとは、ネットワークに接続され、当該ネットワークを介して情報通信可能な処理装置であり、各種の電子制御装置、アクチュエータとそのドライバ、センサ等が含まれる。
ノードは、CPU2,主メモリ3,記憶装置4,I/F5とからなり、I/F5を介してネットワーク6へ、ネットワーク6を介して他のノードへ接続される。
記憶装置4は、入力一致化部41,共通処理部42,障害特定部43,送受信部44,及びエラーカウンタ部45等のプログラム、並びに、障害特定結果46等のデータを格納する。
CPU2は、これらのプログラムを主メモリ3に読み込み、実行することにより、処理を行う。本稿で説明するプログラムやデータは、予め記憶装置に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、当該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。以下、プログラムを主体として記載するが、実際の主体はCPUであることはいうまでもない。
ネットワーク6は、多重通信可能な通信ネットワークであり、あるノードから当該ネットワークに接続された他の全てのノードに対して、同一内容を同時に送信するブロードキャスト送信が可能な構成となっている。
図2は、障害特定のフロー図である。
各ノードは、それぞれ、同期しながら処理を行う。同期のタイミングは、ネットワーク6を介して通信により取る。
まず、入力一致化部41は、ノード間で共通に行う共通処理(以下、CP)の入力として用いる値(以下、入力値)の一致化である入力一致化(以下、IS)を行う(ステップ210)。より具体的には、各ノードの送受信部44が、各々が保持する入力値を交換し、これら複数の入力値を、ノード間で共通のルールで1つの値(以下、一致化入力値)にまとめる。例えば、全入力値が同じ値のときのみ、その値を一致化入力値とする。1つでも異なる入力値のある場合には、一致化入力値なしとするか、入力値の多数決,平均や中央値を取るなどして、一致化入力値とする。一致化入力値を得られないときには、ステップ220以降の処理は行わない。一致化入力値を得られない回数をエラーカウンタ部45で管理し、カウンタ値が所定の閾値以上になったときには、システム全体即ち全ノードにてシャットダウンしてもよい。以上により、各ノードは同じ値の入力値を持つ。入力値としては、時間と共に変化するパラメータがよい。例えば、各ノードが保持する通信サイクル数を用いる。
車載通信プロトコルFlexRayでは、ハードウェアにより通信サイクル数を含むグローバルタイムの同期がノード間で取られている。FlexRayをネットワーク6のプロトコルに適用している場合には、通信サイクルを入力値として利用すれば、ステップ21の入力値一致化処理に掛かるCPU負荷を低減できるため、CPU処理能力を他処理に回すことや、低処理能力CPUの採用による低コスト化を図ることが可能である。FlexRayの時間同期のように、一致化が図れるならば入力値そのものを明示的に交換しなくてもよい。
次に、共通処理部42は、ステップ210で得られた一致化入力値を入力として、CPを実行する(ステップ220)。CPの内容は特に限定されないが、例えば四則演算による簡単な計算式(例:2X+1)に一致化入力値を代入する。
相互監視にてあるノードの特定機能を監視項目としたい場合には、CPではその特定機能を用いた処理を実行する。特定機能毎に図2の処理を行えば、各ノードについて複数項目を障害特定の対象とすることもできる。但し、特定機能の一致化入力値を共用できるならば、ISは1回でよい。
次に、各々のノードの送受信部44は、各々、CP結果交換(以下、EXC)を行う(ステップ230)。これにより、各ノードは自ノード分を含む全ノードからのCP結果を保持する。
次に、障害特定部43は、障害特定(以下、ID)及び通知を実行する(ステップ240)。より具体的には、ステップ230で集約した各ノードからのCP結果のうち、相互監視に参加するノード数の過半数以上が一致しているか否かを確認する。過半数以上の一致がない場合には、IDは無効とする。過半数以上一致したCP結果がある場合、その結果とは異なる値をCP結果として示しているノードについて、「異常あり」と判断する。障害特定結果46には、ノードiについての障害有無を示すノード障害フラグiが備えられ、対応するノードについて「異常あり」と判定された場合に、障害発生の通知としてフラグが立つ。アプリケーションは必要なときにノード障害フラグを参照するか、「異常あり」の判断時に割り込みが発生し、それに応じてノード障害フラグを参照することで、障害発生状況を確認できる。尚、障害有無フラグは図2のフローの開始時にクリアされている。
以上の一連の処理により、ノードの異常を高信頼に特定し、またノード間で異常発生状況の共通認識を持つことができる。
図3は、通信サイクルと図2の処理との関係を示す図である。
通信サイクルa前半のタイムスパン310にて、ISのうち、入力値の交換がなされる。通信サイクルa後半のタイムスパン320にて、ISのうち一致化入力値の決定と、その一致化入力値を用いたCPがなされる。通信サイクルa+1前半のタイムスパン330にて、EXCがなされる。通信サイクルa+1後半のタイムスパン340にて、集約したCP結果をもとに、ID・通知がなされる。ここで特定される障害は、通信サイクルa分のものである。このように、図2の処理による障害特定には通常、2通信サイクルの時間が掛かる。
図2の処理は、図4のようにパイプライン化してもよい。即ち、通信サイクルa+1分のISの入力値交換と、通信サイクルa分のEXCを1つの送受信処理にまとめ、また通信サイクルa+1分の、ISの一致化入力値決定と、CPと、通信サイクルa分のIDを続けて行うことで、各通信サイクルでIDが可能になる。尚、通信サイクルaの入力値は、通信サイクルa−1の最後に決めておいてもよい。送受信部44は、制御データ等、ノード間相互監視に関係する以外のデータを付加してもよい。
尚、障害特定43が「異常あり」と判断したとき、即座にノード障害フラグを立てるのではなく、該当するノード及び監視項目のエラー数をインクリメントしてもよい。エラー数が所定の閾値以上となったときに、初めて該当するノード及び監視項目のノード障害フラグを立てる。また、「異常なし」と判断したときには、該当するノード及び監視項目のエラー数をインクリメントするか、リセットしてもよい。どちらの動作を取るかは、ソフトウェアのビルド時や設定ファイル等で事前に指定しておく。該当するノードの全監視項目について異常がない場合のみ、エラー数をデクリメントもしくはリセットするように設定しておいてもよい。
図5は、ノード間相互監視処理の適用例を示す図である。
この例ではノード間相互監視関係の処理のパイプライン化を行う。又、入力値としては通信サイクル数を用い、CPでは四則演算(2×通信サイクル数+1)を行う。
通信サイクル1では、ノード1,2,3は順にスロット1,2,3にて、通信サイクル1分の入力値である通信サイクル数と、前通信サイクルにて行ったCPの出力値をセットにして送信し、他ノードが受信している(501−1,502−1,503−1)。通信サイクル数は送信時の値である1、CP結果は前サイクルの一致化入力値0を用いて計算された1となっている。
各ノードはIDにて得られたCP結果(511−1,512−1,513−1)を比較して、全部一致するため、通信サイクル0にてノード障害は発生していないと判断する(521−1,522−1,523−1がすべて「異常なし」を意味する0)。このため、エラー数(531−1,532−1,533−1)やノード障害フラグ(541−1,542−1,543−1)に変化は無い。
次に、通信サイクル1分の一致化入力値の決定を行う。ここでは、一致数が2以上の入力値を採用することとする。今、入力値はすべて1であるので、一致化入力値も1とする。
次に、この一致化入力値を用いて通信サイクル1分のCPを行い、結果として3を得る。但し、通信サイクル1で各ノードの送信終了直後に、ノード3にてCPU障害が発生し、以降継続している。これにより、ノード3のCPに影響が出るものとする。
通信サイクル2では、通信サイクル1と同様、各ノードが順に通信サイクル数の2と、通信サイクル1分のCP結果である3を合せて送信している(501−2,502−2,503−2)が、ノード3だけはCPU障害により、CP結果が0になっている(503−2)。これにより、各ノードのIDにて、ノード3のみ共通処理結果が合わない(511−2,512−2,513−2)ことから、「ノード3に通信サイクル1にて異常あり」と判断され(521−2,522−2,523−2の3ビット目が「異常あり」を意味する1)、ノード3に関するエラー数が0から1にインクリメントされる(531−2,532−2,533−2)。ここではまだノード障害フラグ(541−2,542−2,543−2)に変化は無い。
通信サイクル3と4でも、通信サイクル2と同様に、IDにて「ノード3に異常あり」と判断され、ノード3に関するエラー数がインクリメントされ、通信サイクル4のID後にはその値が3になる(531−4,532−4,533−4)。障害発生通知の閾値が3に設定されている場合、エラー数が閾値以上になるので、通信サイクル4のID後に、ノード障害フラグ3の値が0から1になり(541−4,542−4,543−4の3ビット目)、アプリケーションに対してノード3の障害が通知される。以上により、ノード障害の高信頼な特定と、ノード間での障害発生状況の認識一致化がなされる。
ノード間相互監視による障害特定方法としては、図2の処理の他に、図6の処理も可能である。これらの処理は、図2の処理と同様、各ノードが同期しながら行う。図2の相互監視処理は、送信ノードの障害特定に有効なのに対し、図6の相互監視処理は送信ノードのみならず、受信ノードの障害特定にも有効である。以下、図6の処理を説明する。
ステップ210〜230の後、障害特定部43がIDを行う(ステップ640)。ここでは、図2の240と違い、通知は行わない。ここでのID結果は、エラー数やノード障害フラグの操作には利用しない。
次に、各々の送受信部44は、ID結果交換(以下、EXC2)を行う(ステップ650)。これにより、各ノードは自ノード分を含む全ノードからのID結果を保持する。
次に、障害特定部43は、障害特定検査(以下、ID2)及び通知を実行する。より具体的には、ステップ650で集約した各ノードからのID結果のうち、相互監視に参加するノード数の過半数以上が一致しているか否かを確認する。過半数以上の一致がない場合には、ID2は無効とする。過半数以上一致したID結果がある場合、その結果とは異なる値をID結果として示しているノードについて、「異常あり」と判断する。障害特定結果45には、ノードiについての障害有無を示すノード障害フラグiが備えられ、対応するノードについてID2の結果「異常あり」と判定された場合に、障害発生の通知としてフラグが立つ。アプリケーションによる障害発生状況の確認方法や、障害有無フラグのクリアは、図2の処理と同様である。
ノードiのある監視項目の障害について、上記のようにID2にてID結果が他ノードと異なる、正確には一致数が過半数を超えるID結果と異なる場合には、受信障害があると分かる。別の見方をすると、通信サイクルaのIDにて「異常なし」と判定されているのに、通信サイクルa+1のID2にて「異常あり」と判定される場合には、受信ノードに障害があると分かる。
また、ID2にてID結果が他ノードと同じ、正確には一致数が過半数を超える障害特定結果と同じで、ID結果で「異常あり」と判定されている場合には、送信ノードに障害があると分かる。この場合も、エラー数のカウントとノード障害フラグの操作を行う。以上により、送信ノード障害と受信ノード障害の両方を高信頼に特定可能であり、ノード間で障害発生状況の認識一致化を図ることができる。
図6の処理によるID(ID2含む)には、図3の2通信サイクルの他に、EXC2とID2でもう1通信サイクル掛かるので、合せて通常、3通信サイクルの時間が掛かる。但し、障害発生時機により、ID2までに必要な時間は変化する場合がある。例えば、受信障害がEXCで起きる場合には、ID2まで2通信サイクルとなる。
尚、上記では、障害原因をノードの異常にしたが、例えばネットワーク6を多重化して、各ネットワークで送受信されるデータをもとに図2又は図6のノード間相互監視処理を行い、IDをして、その結果を比較してもよい。その場合、あるノードについての障害有無が一致すればノードの異常、一致しなければ通信路の異常、との判断が可能である。
図6の処理は、図7のようにパイプライン化してもよい。即ち、通信サイクルa+2分のISの入力値交換と、通信サイクルa+1分のEXCと、通信サイクルa分のEXC2を1つの送受信処理にまとめ、また通信サイクルa+2分の、ISの一致化入力値決定と、CPと、通信サイクルa+1分のIDと、通信サイクルa分のID2を続けて行うことで、各通信サイクルでID2が可能になる。
以下では、図6のフローに基づく障害特定の実際の様子を、図8で説明する。この例ではノード間相互監視関係の処理のパイプライン化を行っており、入力値やCPは図5と同様である。
通信サイクル1では、ノード1,2,3は順にスロット1,2,3にて、通信サイクル1分の入力値である通信サイクル数と、前通信サイクルにて行ったCPの出力値と、前通信サイクルにて行ったID結果をセットにして送信し、他ノードが受信している(801−1,802−1,803−1)。通信サイクル数は送信時の値である1、CP結果は前サイクルの一致化入力値0を用いて計算された1となっている。
各ノードはIDにて、得られたCP結果(811−1,812−1,813−1)を比較するが、ノード1がスロット2にて受信障害を起こしているため、ノード1が保持するノード2からのCP結果が1ではなく0になっている(811−1)。このため、実際は通信サイクル1での発生だが、通信サイクル0にてノード2に障害が発生していると、ノード1だけが判断する(821−1の2ビット目が1)。一方、ノード2,3は通信サイクル0でのノード障害はないと判断している(822−1,823−1はすべて0)。この時点では、エラー数(851−1,852−1,853−1)やノード障害フラグ(861−1,862−1,863−1)に変化は無い。
次に、通信サイクル1分の一致化入力値の決定を行う。これは図5と同様であり、一致化入力値は1とする。次に、この一致化入力値を用いて通信サイクル1分のCPを行い、結果として3を得る。
通信サイクル2では、通信サイクル1と同様、各ノードが順に通信サイクル数の2と、通信サイクル1分のCP結果である3と、通信サイクル0分のID結果(821−1,822−1,823−1)を合せて送信している(801−2,802−2,803−2)が、ノード1だけは受信障害によりID結果が010に(801−2)、他ノードのID結果は000になっている(802−2,803−2)。これにより、各ノードのID2にて、ノード1のみID結果が合わない(831−2,832−2,833−2)ことから、「ノード1に通信サイクル0にて異常あり」と判断され(841−2,842−2,843−2の1ビット目が「異常あり」を意味する1)、ノード1に関するエラー数が0から1にインクリメントされる(851−2,852−2,853−2)。ここではまだノード障害フラグ(861−2,862−2,863−2)に変化は無い。
通信サイクル2と3でも、通信サイクル1と同様に、ノード1のスロット2にて受信障害が発生することにより、ノード1がIDにて「ノード2に異常あり」と判断することで、通信サイクル3と4のID2にて「ノード1に異常あり」と判断され、ノード1に関するエラー数がインクリメントされ、通信サイクル4のID2後にはその値が3になる(851−4,852−4,853−4)。障害発生通知の閾値が3に設定されている場合、エラー数が閾値以上になるので、通信サイクル4のID2後に、ノード障害フラグ1の値が0から1になり(861−4,862−4,863−4の1ビット目)、アプリケーションに対してノード1の障害が通知される。
以上により、受信障害の高信頼な特定と、ノード間での障害発生状況の認識一致化がなされる。尚、この例では送信ノード障害の扱いについては説明を省いたが、ID2にて特定と認識一致化をできることは前記の通りである。例えば、図5の状況に図6の処理フローを適用する場合、通信サイクル2における各ノードのID結果(521−2,522−2,523−2)が通信サイクル3にて送信され、通信サイクル3の各ノードでのID2において、各ノードからのID結果が全て同じ(001)なので、ノード3に障害のあることが確実になり、ノード3に関するエラーフラグのインクリメントがなされる。
また、エラーカウンタ部45が送信ノード障害と受信ノード障害とを分けて管理し、アプリケーションに通知すれば、アプリケーションは送信ノード障害と受信ノード障害とを分けて認識することが可能となる。
図9は、システム構成の一例を示す図である。図1との違いは、入力部900が各ノードの入力一致化部41と通信線910により接続している点のみである。通信線910は、シリアルケーブル等で構成されたノード毎の専用線でも、1つのネットワークでもよい。
入力部900は、図2もしくは図6のノード間相互監視の入力値を生成し、入力一致化部41に送信する。この入力値生成は、センサ値の計測等による。入力一致化部41は、入力部900から受信した値もしくはその加工値から、ISを経て、一致化入力値を得る。
図9の構成を取ると、各ノードは図2もしくは図6のノード間相互監視を行える他、いずれかのノードにて障害が発生しても、正常なノードは入力部900からのセンサ計測値等のデータを取得できる(異常ノード数が少なければ、一致化入力値も得ることができる)ため、複数ノードに制御指令値やモータ電流値の計算などを行う制御演算機能を配置されており、入力部900からの入力値がこれら制御演算機能の入力となるならば、正常なノードに制御演算機能がある限り、ノード障害に影響されず制御機能を維持することも可能である。
上記の制御演算機能をCPとしてもよい。このようにした場合、各ノードが行う相互監視について、図2の処理フローを図10のように、図6の処理フローを図12のように変更することができる。
図10は、ノード間相互監視のフロー図を示す。
各ノードの入力一致化部41は、入力部900から入力値取得(以下、IR)を行う(ステップ1010)。次に、共通処理部42は、一致化入力値ではなく、ステップ1010で得た入力値を用いて演算を行う。演算内容はステップ220と同様である。次に、各々の送受信部44は、ステップ1010で得た入力値と、ステップ1020で計算した共通処理結果をセットにして、各々交換する(ステップ1030)。これにより、各ノードは自ノード分を含む全ノードからの入力値及びCP結果を保持する。このように、ステップ210のISの入力値交換と、ステップ220のEXCに該当する処理を1度に行うことで、ノード間相互監視の処理に掛かる時間を短縮することができる。
ステップ1040の入力値検査(以下、II)では、ステップ1030で各ノードに集約された入力値から、一致化入力値を決定できるかを確認する。一致化入力値の得られる条件は、ステップ210と同じである。そして、ステップ240に進み、処理を終了する。
以上により、図2のノード間相互監視処理と同等の効果を得つつ、その処理に掛かる時間を短縮することができる。
図11は、通信サイクルと図10のノード間相互監視に関係する処理との関係を示している。通信サイクルa前半のタイムスパン1110にて、IR、及びCPがなされる。尚、これらの処理は、通信サイクルの最後に、次サイクル分を行ってもよい。通信サイクルa中間のタイムスパン1120にて、入力値及びCP結果交換(以下、EXC’)がなされる。通信サイクルa後半のタイムスパン1130にて、II、及び、ID・通知がなされる。このように、図10の処理によるIDには通常、1通信サイクルの時間が掛かる。
図12は、ノード間相互監視のフロー図を示す。
図12は、図10と図6の処理の組み合わせとなっており、まず、ステップ1010〜1040の処理がなされ、次に、ステップ640〜660の処理がなされる。これにより、図6のノード間相互監視処理と同等の効果を得つつ、図10の処理フロー同様、その処理に掛かる時間を短縮することができる。
図12の処理による障害特定(障害特定検査含む)には、図11の1通信サイクルの他、EXC2とID2でもう1通信サイクル掛かるので、合せて通常、2通信サイクルの時間が掛かる。
図12の処理は、図13のようにパイプライン化してもよい。即ち、通信サイクルa+1分のEXCと、通信サイクルa分のEXC2を1つの送受信処理にまとめ、また通信サイクルa+2分のIRと、CPと、通信サイクルa+1分のIIと、IDと、通信サイクルa分のID2を続けて行うことで、各通信サイクルでID2が可能になる。
以下では、図9のシステム構成にて図10、もしくは図12のノード間相互監視を適用した制御システムの例として、自動車のSBW(Steer By Wire)を題材に説明する。
システム構成の詳細は次の通りである。ネットワーク6の通信プロトコルにはFlexRayが適用されており、ノード1,2,3としてECU(Electric Control Unit)1,2,3が接続されている。ECU1,2には転舵用モータが電流制御用のインバータを介して接続されており、この転舵用モータを用いて前輪の車軸を動かし、前輪の切れ角を変化させる。ECU3はハンドルの操舵角や車速度から、前輪切れ角の目標値を計算し、更に現在の切れ角との差も考慮して、ECU1,2の転舵用モータの電流値を計算する。計算された電流値はネットワーク6を介してECU1,2に送信され、ECU1,2はこの指令電流値に基づき、転舵用モータを制御する。
車速度は車速度センサからCAN(Controller Area Network)を介してECU3に送信される。現在の前輪の切れ角は、ECU1,2からECU3へネットワーク6を介して送信され、転舵用モータの電流値計算に利用される。
ハンドルの操舵角は、ハンドルのレゾルバで計測され、通信線910を介して各ECUの入力一致化部41−1〜41−3に送信される。このハンドル操舵角が、ノード間相互監視の入力値として利用される。CPは、ステアのバックアップ制御とする。このバックアップ制御は、ハンドル操舵角のみから前輪切れ角の目標値を計算し、更に現在の切れ角と目標切れ角の差のみから転舵用モータの電流値を計算する単純な制御演算である。
ノード間相互監視により、全てのECUが正常であると制御アプリケーションから確認されている間は、ECU1,2はECU3による指令電流値に基づき、転舵用モータを制御する。しかし、ノード間相互監視にて、ECU3の故障が確認された(ノード障害フラグが立った)場合、ECU1,2は自ノードで演算しているバックアップ制御により、転舵用モータの電流値を制御する。また、ノード間相互監視にて、ECU1の故障が確認された場合には、ECU3は、ECU2の転舵モータのみで前輪を操作すべく、ECU2に対する指令電流値を大きく計算して送信する。
以上により、ECU障害発生時にもステア制御を継続することができる。ノード間相互監視とバックアップ制御を併用することで、ロバストな制御システムを構築することが可能となる。
分散システムを応用した制御システムは、自動車や建機、FA(Factory Automation)などの幅広い工業分野で活用されており、それらの分散型制御システムに本実施例を適用することで、システムの高信頼化を図ることができる。また、本稿では、監視用ノードの設置のような装置の追加を行うことなく実施できるため、高信頼化を低コストに行うことができる。
システム構成図。 障害特定のフロー図。 通信サイクルと図2の処理との関係を示す図。 ノード間相互監視処理のパイプライン化処理を示す図。 ノード間相互監視処理の適用例を示す図。 ノード間相互監視処理フロー図。 ノード間相互監視処理のパイプライン化処理を示す図。 ノード間相互監視処理の適用例を示す図。 システム構成の一例を示す図。 ノード間相互監視処理フロー図。 通信サイクルとノード間相互監視処理との関係を示す図。 ノード間相互監視処理フロー図。 ノード間相互監視処理のパイプライン化処理を示す図。
符号の説明
1 ノード
2 CPU
3 主メモリ
4 記憶装置
5 I/F
6 ネットワーク

Claims (4)

  1. 複数ノードがネットワークを介して接続される分散システムにおいて、
    前記複数ノードの各々は、
    当該複数ノードの各々が持つ一つのパラメータを一致化する入力一致化部と、
    前記パラメータを入力とする共通処理を行う共通処理部と、
    前記共通処理の結果を、前記ネットワークを介して各々交換する送受信部と、
    前記共通処理結果の各々を比較し、当該共通処理結果が一致しない場合に異常があると特定する障害特定部を備え、
    前記障害特定部は、前記共通処理結果のうち、一つの値を示す出力数がノード数の半数を超える場合に、当該一つの値以外の値を示す前記共通処理結果を生成したノードについて異常ありと判断し、
    前記入力一致化部,前記共通処理部,前記送受信部、及び前記障害特定部が行う各処理は、通信サイクルと同期して実施し、
    前記入力一致化部は、通信コントローラであり、前記パラメータは、通信プロトコルの規約上生成され、かつ、前記複数のノード間で共通の時間値であることを特徴とする分散システム。
  2. 請求項1において、
    前記入力一致化部は、ハードウェアであることを特徴とする分散システム。
  3. 複数ノードがネットワークを介して接続される分散システムにおいて、
    前記複数ノードの各々は、
    当該複数ノードの各々が持つ一つのパラメータを一致化する入力一致化部と、
    前記パラメータを入力とする共通処理を行う共通処理部と、
    前記共通処理の結果を、前記ネットワークを介して各々交換する送受信部と、
    前記共通処理結果の各々を比較し、当該共通処理結果が一致しない場合に異常があると特定する障害特定部を備え、
    前記障害特定部は、前記共通処理結果のうち、一つの値を示す出力数がノード数の半数を超える場合に、当該一つの値以外の値を示す前記共通処理結果を生成したノードについて異常ありと判断し、
    前記入力一致化部,前記共通処理部,前記送受信部、及び前記障害特定部が行う各処理は、通信サイクルと同期して実施し、前記共通処理部は、一致化される前のパラメータを入力とし、
    前記送受信部は、前記パラメータの一致化のための交換と前記共通処理結果の交換を同一のタイミングで行い、
    前記障害特定部は、前記パラメータの一致化と前記共通処理結果の比較を連続して行い、前記共通処理で用いたパラメータと、前記パラメータの一致化により得られたパラメータとが等しい場合のみ、前記共通処理結果の比較を有効とすることを特徴とする分散システム。
  4. 複数ノードがネットワークを介して接続される分散システムにおいて、
    前記複数ノードの各々は、
    当該複数ノードの各々が持つ一つのパラメータを一致化する入力一致化部と、
    前記パラメータを入力とする共通処理を行う共通処理部と、
    前記共通処理の結果を、前記ネットワークを介して各々交換する送受信部と、
    前記共通処理結果の各々を比較し、当該共通処理結果が一致しない場合に異常があると特定する障害特定部を備え、
    前記障害特定部は、前記共通処理結果のうち、一つの値を示す出力数がノード数の半数を超える場合に、当該一つの値以外の値を示す前記共通処理結果を生成したノードについて異常ありと判断し、
    前記入力一致化部,前記共通処理部,前記送受信部、及び前記障害特定部が行う各処理は、通信サイクルと同期して実施し、
    前記送受信部は、前記障害特定の結果を前記ネットワークを介して各々交換し、前記障害特定部は、前記障害特定結果の各々を比較し、当該結果が一致しない場合に、当該結果を送信したノードに受信異常があると特定することを特徴とする分散システム。
JP2007250410A 2007-09-27 2007-09-27 分散制御システム Active JP4491479B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007250410A JP4491479B2 (ja) 2007-09-27 2007-09-27 分散制御システム
US12/194,575 US8041993B2 (en) 2007-09-27 2008-08-20 Distributed control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007250410A JP4491479B2 (ja) 2007-09-27 2007-09-27 分散制御システム

Publications (2)

Publication Number Publication Date
JP2009081750A JP2009081750A (ja) 2009-04-16
JP4491479B2 true JP4491479B2 (ja) 2010-06-30

Family

ID=40509773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007250410A Active JP4491479B2 (ja) 2007-09-27 2007-09-27 分散制御システム

Country Status (2)

Country Link
US (1) US8041993B2 (ja)
JP (1) JP4491479B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2648104B1 (en) * 2010-11-30 2016-04-27 Japan Science and Technology Agency Dependability maintenance system for maintaining dependability of a target system in an open environment, corresponding method, computer control program achieving the same and computer readable recording medium recording the same
US9167463B2 (en) * 2011-09-02 2015-10-20 Telcordia Technologies, Inc. Communication node operable to estimate faults in an ad hoc network and method of performing the same
US9201720B2 (en) * 2012-08-13 2015-12-01 Nxp B.V. FlexRay network runtime error detection and containment
EP3329429A4 (en) * 2015-07-31 2019-04-03 Cisco Technology, Inc. QUORUM-BASED DISTRIBUTED ANOMALY AND REPAIR
US11038775B2 (en) * 2018-08-10 2021-06-15 Cisco Technology, Inc. Machine learning-based client selection and testing in a network assurance system
JP6969590B2 (ja) 2018-09-06 2021-11-24 株式会社デンソー 車両制御システム
US11465636B2 (en) * 2021-02-01 2022-10-11 Ree Automotive Ltd. Control systems for vehicle corner modules and methods of operation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288928A (ja) * 1988-05-16 1989-11-21 Hitachi Ltd 耐故障コンピュータ・システムおよびその内部回路並びに誤り検出訂正方式
JPH04307633A (ja) * 1991-04-05 1992-10-29 Hitachi Ltd 多重化制御装置
JPH0683661A (ja) * 1992-04-15 1994-03-25 Internatl Business Mach Corp <Ibm> コンピュータ・システムおよびプロトコル方法
JPH06149605A (ja) * 1992-11-06 1994-05-31 Nec Corp フォールトトレラントコンピュータシステム
JPH06250869A (ja) * 1993-03-01 1994-09-09 Hitachi Ltd 分散制御システム
JPH08101817A (ja) * 1994-09-30 1996-04-16 Fuji Xerox Co Ltd ワークフロー支援システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5285381A (en) * 1992-09-09 1994-02-08 Vanderbilt University Multiple control-point control system and method of use
JP3390824B2 (ja) * 1997-03-19 2003-03-31 株式会社日立製作所 多重化制御装置及びその障害回復方法
US5923830A (en) * 1997-05-07 1999-07-13 General Dynamics Information Systems, Inc. Non-interrupting power control for fault tolerant computer systems
US6199179B1 (en) * 1998-06-10 2001-03-06 Compaq Computer Corporation Method and apparatus for failure recovery in a multi-processor computer system
WO2000036492A2 (en) * 1998-12-18 2000-06-22 Triconex Corporation Method and apparatus for processing control using a multiple redundant processor control system
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
US7525902B2 (en) * 2003-09-22 2009-04-28 Anilkumar Dominic Fault tolerant symmetric multi-computing system
US7231543B2 (en) * 2004-01-14 2007-06-12 Hewlett-Packard Development Company, L.P. Systems and methods for fault-tolerant processing with processor regrouping based on connectivity conditions
JP4478037B2 (ja) 2004-01-30 2010-06-09 日立オートモティブシステムズ株式会社 車両制御装置
JP2005306124A (ja) 2004-04-20 2005-11-04 Hitachi Ltd 車両制御装置
US7630807B2 (en) * 2004-07-15 2009-12-08 Hitachi, Ltd. Vehicle control system
JP4871687B2 (ja) * 2005-10-03 2012-02-08 日立オートモティブシステムズ株式会社 車両制御システム
DE102005061403A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Überwachungseinheit zur Überwachung und Steuerung des Zugriffs eines Teilnehmers auf einen Datenbus und Teilnehmer mit einer solchen Überwachungseinheit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288928A (ja) * 1988-05-16 1989-11-21 Hitachi Ltd 耐故障コンピュータ・システムおよびその内部回路並びに誤り検出訂正方式
JPH04307633A (ja) * 1991-04-05 1992-10-29 Hitachi Ltd 多重化制御装置
JPH0683661A (ja) * 1992-04-15 1994-03-25 Internatl Business Mach Corp <Ibm> コンピュータ・システムおよびプロトコル方法
JPH06149605A (ja) * 1992-11-06 1994-05-31 Nec Corp フォールトトレラントコンピュータシステム
JPH06250869A (ja) * 1993-03-01 1994-09-09 Hitachi Ltd 分散制御システム
JPH08101817A (ja) * 1994-09-30 1996-04-16 Fuji Xerox Co Ltd ワークフロー支援システム

Also Published As

Publication number Publication date
US20090089627A1 (en) 2009-04-02
US8041993B2 (en) 2011-10-18
JP2009081750A (ja) 2009-04-16

Similar Documents

Publication Publication Date Title
JP4491479B2 (ja) 分散制御システム
JP5319534B2 (ja) 障害管理方法、および障害管理のための装置
WO2018221136A1 (ja) 異常判定装置、異常判定方法及び異常判定プログラム
JP2009009557A (ja) 分散システム
CN107040439B (zh) 通信系统以及控制装置
US20090040934A1 (en) Distributed System
JP5518810B2 (ja) 車両制御装置、車両制御システム
CN103678031A (zh) 二乘二取二冗余系统及方法
US20150195124A1 (en) Method for error diagnosis of can communication
JP5822783B2 (ja) 故障検出装置
CN107038095B (zh) 用于冗余地处理数据的方法
DK2745205T3 (en) A method of operating a control network and the control network
JP5342395B2 (ja) 計算機システムおよびその方法
US20240140448A1 (en) Electronic Control Device, On-Vehicle Control System, and Redundant Function Control Method
JP2007028118A (ja) ノード装置の故障判断方法
JP2009110218A (ja) 仮想化スイッチおよびそれを用いたコンピュータシステム
KR20190059683A (ko) 복수의 프로세서 오류 감지 시스템 및 그 방법
US20230093337A1 (en) Method and System for Performing Time-Synchronization
JP6278868B2 (ja) 通信制御装置および計算装置
JP2014532236A (ja) 接続方法
US20100295571A1 (en) Device and Method for Configuring a Semiconductor Circuit
Seo et al. A Design of Fail-safe Gateway-embedded System for In-vehicle Networks
KR20140062288A (ko) 로봇 컴포넌트 오류 처리 장치 및 그 방법
JP6024604B2 (ja) 通信装置
WO2023276350A1 (ja) 通信装置、通信制御方法、および通信制御プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090327

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091109

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100330

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4491479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4