JP2002049405A - 分散制御装置、システム及びコントローラ - Google Patents

分散制御装置、システム及びコントローラ

Info

Publication number
JP2002049405A
JP2002049405A JP2001166491A JP2001166491A JP2002049405A JP 2002049405 A JP2002049405 A JP 2002049405A JP 2001166491 A JP2001166491 A JP 2001166491A JP 2001166491 A JP2001166491 A JP 2001166491A JP 2002049405 A JP2002049405 A JP 2002049405A
Authority
JP
Japan
Prior art keywords
processor
controller
load
processors
task
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.)
Pending
Application number
JP2001166491A
Other languages
English (en)
Inventor
Hiromasa Yamaoka
弘昌 山岡
Mitsuru Watabe
満 渡部
Takayasu Kasahara
孝保 笠原
Katsunari Shibata
克成 柴田
Kiyoshi Matsubara
清 松原
Yasuo Morooka
泰男 諸岡
Seiju Funabashi
誠壽 舩橋
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 JP2001166491A priority Critical patent/JP2002049405A/ja
Publication of JP2002049405A publication Critical patent/JP2002049405A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Hardware Redundancy (AREA)
  • Feedback Control In General (AREA)
  • Safety Devices In Control Systems (AREA)

Abstract

(57)【要約】 【課題】 分散制御システムにおいて、多種多様な制御
機能を有したコントローラを実現すること。 【解決手段】 コントローラを数値演算,シーケンス演
算,ニューラルネット(NN),ファジィなどを実行す
る複数のプロセッサで構成する。コントローラはLSI
化技術により小型化する。さらに、プロセッサ機能、I
/O機能をプログラマブルにすることにより柔軟性を増
す。プログラムが簡単な標準プログラムとNN等の学習
モデルを組み込んで、計算される複数の出力を、重み付
けして加算することによって出力データを生成する。か
つ該重み付けの値を学習によって更新していく。本発明
により、数値演算制御,シーケンス制御,NN応用制
御,ファジィ応用制御など多種多様な制御機能を有した
分散制御システム及びそれに用いるコントローラを実現
することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は各種プロセス制御,プラ
ント制御,車両制御等において複数の制御装置(コント
ローラ)を用いて分散制御を行う分散制御システムに関
する。
【0002】
【従来の技術】従来からプラント制御システムの例で
は、複数のコントローラを分散して制御を行う分散制御
システム、DCS(Distributed Control System)と呼
ばれる制御システムがある。このDCSは複数のコント
ローラとマンマシンシステムとしてのオペレーターズコ
ンソールをネットワークで結びプラントを制御しようと
するものである。しかし、分散システムといってもコン
トローラ自体は計器室、電気室あるいは計算機室等と呼
ばれる専用の設置スペースに集中配置し、そこからプラ
ントのセンサあるいはアクチュエータへ入出力ケーブル
を接続するのが常であった。しかし、この方法ではコン
トローラの専用設置スペースが必要になることと、コン
トローラの入出力とプラント間の接続ケーブルの敷設に
費用がかかるという問題点があった。
【0003】また、従来のコントローラを分散配置する
とコントローラが故障した際にその保守がすぐにはでき
ないという問題点が発生する。
【0004】また、一般には一つのプラントは複数の制
御対象グループから構成され、さらに一つの制御対象グ
ループは複数の制御対象機器から構成されている。そこ
で、一つのコントローラでどれだけの制御対象機器を掌
握するかが従来から議論されている。一般には、一台の
コントローラで掌握する制御対象機器が少なければ少な
いほど、一台のコントローラが故障してもその影響範囲
は小さくなり危険分散化が図れるが、コントローラ間の
通信量は増大するという問題があった。
【0005】一方で、制御の高度化は今後ますます進
み、リレー接点ロジックの代替であるシーケンス制御や
単なる数値演算制御だけではなく、多変数制御を行うた
めの高速行列演算、あいまい量を取り扱うファジィ制
御,学習能力をもつニューラルネットワーク応用制御等
各種の制御が複合して用いられるようになってきてい
る。しかし、このような制御システムは、各々専用の機
能を持ったコントローラを適当に組み合わせて構築して
いるのが現状である。その結果、高度な制御を行なおう
とすれば、分散システム内に多種類のコントローラを配
置する必要があり、設計、プログラミング、運転、保守
いずれの時点においても複雑さが増大しそれに伴うコス
トも増大するという問題があった。
【0006】また、一つのコントローラを複数のプロセ
ッサで実現する所謂マルチプロセッサ構成のコントロー
ラも実現されている。例えば、伝送処理を行うネットワ
ークコントロールプロセッサ、数値演算プロセッサおよ
び高速シーケンスプロセッサというように複数のプロセ
ッサでもってコントローラを実現するわけである。しか
し、従来の方法では各種制御内容に応じた複数種類のプ
ロセッサを用意し、制御対象に応じてその組み合わせを
変える必要があった。即ち、各種制御対象のセンサー、
アクチュエータの種類,点数,制御内容が異なるため、
各プロセッサおよびプロセス入出力カードがプラグイン
ユニット式で増設、交換できるように作られている。と
ころが、このコントローラを1ボード化またはLSI化
しようとすると非常に困難な事態が発生する。すなわ
ち、制御対象毎に異る機能のボードやLSIを作ること
になり、開発期間、開発コスト面において大きな障害と
なるとともに保守面においてもすべての品種に対応した
保守部品、保守管理が必要になり、保守コストの増大に
つながる。特にLSI化のメリットの1つは大量生産に
よる低価格化にあり、この様に個別に多くの種類のLS
Iを開発することは、このLSIの最大のメリットを享
受できないという事になる。
【0007】また、コントローラのプログラミングに関
しては、従来各制御部のプログラムをユーザが逐一書い
ていた。一般的には、より良い制御性能を得ようとする
とプログラムは複雑化する。また、従来のプログラムで
は、経時変化や環境の変化、ユーザの好みに柔軟に対応
していくことが大変困難であった。そこで、ニューラル
ネットなどを使用して徐々に学習しながら制御性を良く
するというアプローチがある。しかし、従来の学習によ
るアプローチでは所望の出力を得るまでに、非常に多く
の学習,経験を積まなければならず、学習の初期におい
ては所望とする制御出力とかけ離れたものしか得られな
いのが常である。一方、制御の初期段階から所望とする
制御出力に近い値を得なければならないことも事実であ
る。また、ユーザが持っている知識が優れている場合に
はそれを最大限利用するといった方法が望れているが、
ニューロ等による学習結果とユーザの知識のどちらが優
れているかの判断が難しい。
【0008】さらに、制御性能の評価については、例え
ば、自動車の場合のように、その基準は乗り心地,スピ
ード,温度など、複数存在することが多い。また、その
価値基準は人によって、また、同じ人でも時によって異
なる。このようなことに、柔軟に対応するためには、動
作中にユーザがその価値基準算出法を変更可能であるこ
とが必要である。
【0009】ネットワークについては制御対象が定常状
態であれば通信情報量の増減はあまり無いが、過渡状態
特に異常発生時などは通信情報量が増加してしまう。例
えば、従来の分散制御システムの診断方法であるブラッ
クボードアーキテクチャによってもコモンモード故障時
に個々のコントローラから通信ネットワーク上に多数の
故障情報が送信されネットワークの通信ネックが発生す
る危険性があった。
【0010】またさらに、分散制御システムの稼働率と
信頼性の向上に関しては、1台のコントローラが故障
(ダウン)した場合に他のコントローラがその負荷を代
替(バックアップ)する方法が一般的である。例えば、
特開昭62−177634号と特開昭63−118860号に示されるよ
うに、あるコントローラのダウンに対してバックアップ
するコントローラをあらかじめ定めておく方法が知られ
ている。さらに、特開平2−224169号と特開平3−296851
号に示されるように計算機システムでは各計算機の負荷
状況に応じて、ダウンした計算機の負荷を分割し複数の
計算機でバックアップする方式が知られている。ところ
が、前者の方法はバックアップ専用のコントローラを準
備する必要があった。また、後者の方法は負荷の分散を
集中管理しているためその集中管理用の計算機がダウン
した場合、計算機システムの全体が停止する可能性があ
った。
【0011】
【発明が解決しようとする課題】本発明が解決しようと
する一つの課題は、一台のコントローラで掌握する制御
対象機器を最小限度に少なくし、危険分散を図ることが
可能なコントロールシステムを実現することである。
【0012】またさらに、本発明が解決しようとするも
う一つの課題は、コントローラの専用設置スペースおよ
びコントローラの入出力とプラント間の接続ケーブルの
敷設を不要または最小にできる分散設置形のコントロー
ルシステムにも適用できるコントローラを実現すること
である。
【0013】またさらに、本発明が解決しようとするも
う一つの課題は、できる限り少ない種類で各種の制御対
象,制御方式に対応可能な汎用性のあるコントローラを
提供することである。
【0014】またさらに、本発明が解決しようとするも
う一つの課題は小型かつ低コストなコントローラを提供
することである。
【0015】またさらに、本発明が解決しようとするも
う一つの課題は、小規模のコントローラから大規模のコ
ントローラまで同一アーキテクチャで構成できるスケー
ラビリティを有したコントローラを提供することにあ
る。
【0016】またさらに、本発明が解決しようとするも
う一つの課題は、ハードウエア完成後に目的に合わせて
機能のプログラムが可能なコントローラを提供すること
にある。ここで言う機能のプログラムとは、数値演算機
能、ファジィ推論機能、ニューラルネット処理機能、シ
ーケンス演算機能などの専用処理機能をコントローラ内
のハードウエアに埋め込むことである。
【0017】またさらに、本発明が解決しようとするも
う一つの課題は、部分故障に対して自己修復可能なコン
トローラを提供することにある。
【0018】またさらに、本発明が解決しようとするも
う一つの課題は、プログラミングの簡単なコントロール
システムを提供することにある。
【0019】またさらに、本発明が解決しようとするも
う一つの課題は、コモンモード故障時に個々のコントロ
ーラから通信ネットワーク上に送信される故障情報を減
じ、ネットワークの通信ネックによるシステムダウンが
発生しにくい分散制御システムを提供することにある。
【0020】またさらに、本発明が解決しようとするも
う一つの課題は、集中管理用のコントローラと待機用コ
ントローラを設けずに、正常に動作しているコントロー
ラがダウンしたコントローラの負荷を自律的に分割して
バックアップすることが可能な分散制御システムを実現
することである。特に、コントローラの多重ダウンに対
しても、正常に動作しているコントローラが協調して、
その余剰性能を有効に活用し分散制御システムの総合性
能の限界までバックアップを実施することにある。
【0021】
【課題を解決するための手段】上記課題を解決するため
に、本発明では、コントローラの内部構成、外観構造と
もに拡張性のあるものとし、その基本単位をLSI化し
小型のコントローラを実現できるようにした。従って、
分散設置型としても集中設置型としても利用できる。ま
た、本コントローラを制御対象機器単位に配置すること
により、危険分散システムが実現できる。
【0022】さらに、汎用性をもったコントローラを実
現するために、一つのコントローラを数値演算機能はも
とよりニューロ、ファジィ、行列等を高速に演算するた
めの並列演算機能を実行するプロセッサ、シーケンス制
御演算を高速に実行するするプロセッサ、さらには、ネ
ットワークとの通信機能を実行するプロセッサ等の複数
のプロセッサから構成し、各機能を並列に実行可能とし
た。また、入出力及びプロセッサを機能プログラムでき
るチップを実現する方法も提供した。
【0023】また、同一コントローラ内の一つのプロセ
ッサがダウンしても他のプロセッサがその機能を代替で
きる手段を設けた。
【0024】制御演算部にニューラルネットと従来のよ
うなユーザが付与したモデルを計算する手段または方法
を設け、両者を重み付けして加えることによって制御出
力を生成することとした。そして、その重み付けの値を
学習が進んでいない状態ではユーザの付与モデル出力を
100%またはそれに近い値とし、その後学習によって
更新し、また、ニューロや他の手段からの出力値に対す
る重み付けの値もニューラルネットで行い、学習させる
こととした。
【0025】また、評価についても、状態の評価値をユ
ーザに表示し、それをユーザが修正する手段を有し、さ
らに、新しい評価基準をユーザが定義すると共に、複数
の評価値を何らかの加工をした後に最小値を求め、これ
を用いて出力の演算法を更新していくこととした。
【0026】さらに、故障診断時のネットワークの負荷
を低減する手段としては、ネットワークの伝達情報をマ
ンマシン装置に格納し、編集・処理するネットワークモ
ニタ、および各コントローラにつけた入出力情報フィル
タを設け冗長な情報はネットワークには乗らないように
した。
【0027】さらに、ダウンしたコントローラの負荷を
自律的に分割してバックアップするための手段は、各コ
ントローラが実行しているタスクとその負荷状況を示す
実行分担表と、各タスクを実行したときの負荷を示すタ
スク負荷表と、各コントローラの負荷状況によりどのコ
ントローラが余裕がありバックアップを実行しやすいか
を示す受付順位表とに基づきバックアップを依頼するバ
ックアップ依頼手段と、前記表によりバックアップを受
付可能か判定し受付けたか否かを回答するとともに受け
付けたタスクの実行を指示するバックアップ受付手段と
から構成される。
【0028】また、一つのコントローラ自身の耐故障性
と信頼性を向上するために、各コントローラは複数のプ
ロセッサで構成され、前述の実行分担表はさらに各プロ
セッサの負荷状況とどのプロセッサが余裕があり負荷を
バックアップしやすいかを示すものとし、これらの実行
分担表とタスク負荷表に応じて故障したプロセッサの負
荷をバックアップするプロセッサを定める内部バックア
ップ手段を設けたものである。
【0029】
【作用】一種類で多種多様な制御機能を並列に実行可能
なコントローラを実現したことにより柔軟なシステム構
成能力を有する分散制御システムが構築できる。即ち、
ハード的に同一構造のコントローラを複数台設置するこ
とができるため一台のコントローラが故障しても他のコ
ントローラでのバックアップが容易にでき、迅速な保守
対応が困難な場所にもコントローラを分散設置できる。
【0030】プログラミングに関しては、ユーザは付与
モデルとして比較的簡単なモデルをプログラムすればよ
い。学習の初期では付与モデルに従って動作をし、学習
が進んでニューラルネットによる学習モデルの出力値が
良くなるにつれてニューラルネットの出力に対する重み
値を大きくしていくことができる。そしてさらに、状態
の評価部を設け、その出力の時間微分によって出力デー
タの評価を行うことで、前記重み値をユーザが意識する
ことなく、学習によって次第に変化させていくことがで
きる。また、該重み値を入力データからニューラルネッ
トで求め、さらにそのニューラルネットを学習させるこ
とによって、付与モデルの出力が良いところではその出
力を、学習モデルの出力の方が良い場合にはその出力の
重みが大きくなるように場合によってその重み付けの仕
方を変えることもできるようになる。
【0031】また、評価値の表示手段と修正手段によっ
て、評価値とユーザの感覚とにずれがあった時に修正す
ることで、簡単にユーザの感覚にあった評価が可能とな
る。また、ユーザが新しい評価基準を設けることで、さ
らにユーザの評価方法にできるだけ近付ける。そして、
こうしてできた複数の評価基準を直接または何らかの変
換をしてその最小値をとることによって、現在ユーザが
最も不適と感じている項目を抽出し、この評価基準を用
いて制御出力の演算法を更新していくことで、複数の評
価基準からみて調和のとれた制御が可能になる。
【0032】故障診断時のネットワーク負荷を低減する
手段に関しては、各コントローラは、故障発生時に異常
情報を入出力フィルタに送り、入出力フィルタは、送信
された異常情報を含んだ異常情報がすでにネットワーク
に送信されているかどうかを各コントローラが格納して
いる履歴情報を参照して判定し、送信された故障情報を
含んだ異常情報がすでにネットワークに送信されていな
ければ該異常情報をネットワークに送信することによ
り、冗長な異常情報がネットワークに送信されることを
防止することができる。
【0033】さらに自律的なバックアップに関しては、
各コントローラに具備した実行分担表と,タスク負荷表
と,受付順位表とにより、どのコントローラのバックア
ップ依頼手段でバックアップすべきタスクとバックアッ
プに適するコントローラを検索し、バックアップ受付手
段に通知することが可能になる。また、バックアップを
依頼されたコントローラのバックアップ受付手段は自己
が持つ実行分担表の自己の負荷に基づき、この通知にあ
るバックアップ対象タスクを実行可能か否かを自ら判断
し、選択的にバックアップ対象タスクを受付ける。この
選択の結果を受付メッセージとして放送(ブロードキャ
スト)することにより依頼元および他のコントローラは
バックアップを実施したコントローラの負荷状況の変化
を実行分担表及び受付順位表に反映可能である。さらに
依頼元のコントローラでは受付られなかったバックアッ
プ対象タスクを知ることが可能であり、再び受付順位表
(この時は先にバックアップを実施したコントローラは
負荷率が高まるため受付順位表の先頭にいないであろ
う)にしたがって新たなコントローラに未受付分を依頼
可能である。
【0034】このようにして本発明では各コントローラ
がシステムの実行状況を常に正確に把握し、また、バッ
クアップを依頼されたコントローラが依頼を拒否可能で
あるため、自律的にバックアップすべきタスクを分割/
分散して処理することができる。さらに、一つのコント
ローラに含まれる複数のプロセッサの一つが故障したと
きにおいても、内部バックアップ手段が実行分担表によ
り負荷が小さいプロセッサを選択し、そのプロセッサに
故障したプロセッサの負荷をすべてバックアップできる
かを判定し、そのプロセッサが負荷オーバにならないよ
うにバックアップを実施させ、残りの負荷がある場合に
はさらに他のプロセッサを選択し同様にバックアップさ
せる。このように本内部バックアップ手段は各プロセッ
サが負荷オーバにならない様に故障したプロセッサの負
荷を各プロセッサの負荷限界に収まるように分割し、複
数のプロセッサで次々とバックアップさせていくもので
ある。
【0035】
【実施例】以下本発明の実施例を図面により詳細に説明
する。
【0036】図1は本発明の一実施例であるプラント制
御システムを示す。制御対象プラント100は流量計等
のアナログ形センサ111,115,119,制御弁等
のアナログ形アクチュエータ112,116,120,
リミットスイッチ等のディジタル形センサ113,11
7,121および電磁弁等のディジタル形アクチュエー
タ114,118,122から構成されている。本例で
はセンサ111とアクチュエータ112が一組、センサ
113とアクチュエータ114が一組となり各々制御対
象機器を構成している。本図では各制御対象機器には一
つのセンサと一つのアクチュエータしか図示していない
が、これらは複数個ある場合もある。コントローラ1,
2,3,4,5,6は各制御対象機器に対応して配置さ
れそれらはネットワーク1000で結合されている。
【0037】マンマシン装置1200はプラントの運転
監視を行い場合によっては人手での運転指令を各コント
ローラに発する装置である。
【0038】次に、本発明の一実施例の具体例の一つで
ある鉄鋼圧延制御システムについて説明する。参考のた
め、従来の鉄鋼圧延制御システムを図2により説明す
る。ペイオフリール151,152は被圧延材のコイル
であり、被圧延材180は入側処理ライン153,ルー
パ154を経由して圧延機155,156,157,1
58にて圧延され最終製品181となりテンションリー
ル159に巻き取られる。上記リール、圧延機等はモー
タ140,141,142,143,144,145,
146で駆動される。各々のモータに対応したドライブ
装置130,131,132,133,134,13
5,136は各モータを駆動するパワー回路である。従
来はドライブ装置130,131,132,133,1
34,135,136は電力変換器190とそれを制御
する専用の高速コントローラ195から構成されてい
る。図2にはドライブ装置130の内部のみ図示したが
ドライブ装置131,132,133,134,13
5,136の内部構成も同様である。一方コントローラ
1500,1501,1502,1503は板厚目標
値,入側板厚,スタンド間張力などから各モータのスピ
ード指令を計算して各ドライブ装置に指令値を出力する
構成を取っていた。
【0039】本制御システムの運転監視はマンマシン装
置1200,1201にて行う。各コントローラ及びマ
ンマシン装置の間はネットワーク1000で結合されて
いる。
【0040】図3は本発明を適用した鉄鋼圧延制御シス
テムを示す。本実施例では各モータドライブ装置16
1,162,163,164,165,166,167
に一対一でコントローラ11,12,13,14,1
5,16,17を割り付けている。しかも、各モータド
ライブ装置161,162,163,164,165,
166,167は電力変換器190のみから構成されて
おり、従来のような専用のコントローラはない。後述す
るように本発明のコントローラはマルチプロセッサ構成
であり、従来の電力変換器制御機能はそのコントローラ
内の一つのプロセッサに割り当てている。
【0041】なお、図示はしていないが圧延機155,
156,157,158のロール間ギャップの制御は通
常、油圧圧下装置で制御されている。この油圧圧下装置
はやはり数ミリ秒という高速で制御しなければならず、
従来はそれ専用のコントローラを特別に配置していた。
しかし、本発明によれば、モータの制御と同じくその制
御に圧下指令計算用コントローラ内の一つのプロセッサ
を割り当てればよい。このような構成を採ることにより
後述するように、非常に高信頼,高性能な制御システム
が実現できる。
【0042】図4及び図5は本発明の他の一実施例であ
るところの自動車の制御を示したものである。図4は一
般的な自動車の制御項目を説明したものである。図5は
自動車の制御に本発明を適用した場合の制御システム構
成を示したものである。
【0043】コントローラ21はエンジン21aを制御
する。このコントローラ21はシリンダに流入する空気
量と、エンジンの回転数と回転角度と、アクセルペダル
が踏み込まれた角度と、エンジンの冷却水の温度と、排
気浄化用の触媒の温度とを検出する。これらに応じて、
シリンダ内の燃料と空気の比が理論空燃比となるように
燃料の噴射量を操作する。そして、上記の状態量に応じ
て点火時期を操作する。これらの操作はエンジンの効率
を高め出力を増加する。同時に、排気中の有害物質を低
減する。また、このコントローラ21はエンジンの冷却
水の温度と排気浄化用の触媒の温度が適温より低い場合
にはそれらを素早く暖めるために点火時期をやや進角す
る。コントローラ21は前照燈の点灯と冷房装置の運転
をコントローラ28がネットワーク1000を介して通
知したとき、エンジンの停止や車速の変動を防ぐために
スロットルをやや開いてエンジンの出力を増加させる。
コントローラ22がネットワーク1000を介して通知
する車速が特定の値を超過した場合には、コントローラ
21は燃料の噴射量を減じて車速が特定の値を大きく越
えないようにする。コントローラ22が変速中であると
ネットワーク1000を介して通知したとき、このコントロ
ーラ21は変速の前後で加速度が滑らかに変化するよう
にエンジンの出力を調整する。コントローラ21はアク
セルペダル踏み込み角度が急激に大きくなった場合には
運転車が急激な加速を要求していると判断する。そし
て、このコントローラ21は冷房装置で消費されている
エンジンの出力を車の加速に使用するためにネットワー
ク1000を介してコントローラ28に対して冷房装置
の停止を要求する。同時に、コントローラ22にシフト
ダウンを要求する。
【0044】コントローラ22は変速機22aを制御す
る。このコントローラ22は車速を検出し、これに応じ
たギヤ比に変速する。この時、ネットワーク1000を
介してコントローラ21が通知するスロットル開度とエ
ンジンの回転速度とコントローラ23が通知する車体姿
勢に応じて、変速の基準となる車速を変更する。スロッ
トル開度が小さくエンジンの回転速度が高いときはエン
ジンの吸気抵抗による出力の損失が増大するため、低速
でシフトアップしエンジン回転速度を低下させる。車体
姿勢が後傾しているときは坂道を昇っていると判定しシ
フトアップの基準車速を高め、低速ギヤを使用するよう
にして登坂力を維持する。
【0045】コントローラ23はサスペンション23a
を制御する。このコントローラ23はサスペンションの
変位と車体姿勢とを検出し、ネットワーク1000を介
してコントローラ22から車速を、コントローラ25か
ら舵角を受信し、これらに応じてサスペンションの空気
バネ内の気圧を制御して所望の車体姿勢にする。このコ
ントローラ23は車体姿勢をネットワーク1000を介
して他のコントローラに通知する。
【0046】コントローラ24はブレーキ24aを制御
する。このコントローラ24はタイヤの回転速度を検出
し、ネットワーク1000を介してコントローラ22か
ら車速をコントローラ25から舵角を受信し、これらに
応じて地面に対するタイヤの滑り率を求め、この値が所
定の値以下になるように制動力を定める。さらに、旋回
時に内輪に弱い制動を掛けて滑らかに旋回する。
【0047】コントローラ25はパワーステアリング2
5aを制御する。このコントローラ25はステアリング
シャフトのねじれ角度を検出し、その角度が小さくなる
ようにパワーステアリングのアシストトルクを調節す
る。さらに、このコントローラ25は舵角を検出し、他
のコントローラにネットワーク1000を介して通知す
る。
【0048】コントローラ26は故障を診断する。この
コントローラ26はネットワーク1000を介して他の
コントローラから通知される状態量や操作量を自己のシ
ミュレーション結果と比較することによって、他のコン
トローラあるいは制御対象機器の故障あるいは劣化を検
出する。故障あるいは劣化を検出した場合は、コントロ
ーラ28に対して故障診断結果を通知する。
【0049】コントローラ27はドライブレコーダであ
り、ネットワーク1000を介して通知された車の動作
の履歴を衝撃及び熱に強い記憶装置に格納する。
【0050】コントローラ28はスイッチ28aとメー
タ28bとディスプレイ28cなどのマンマシンインタ
フェースを制御する。コントローラ28は運転者がスイ
ッチ28aを操作した場合にそのオン/オフに応じて対
応する装置を作動あるいは停止させる。また、ネットワ
ーク1000を介して通知された車速やエンジンの回転
速度等の状態量と故障診断の結果などをメータ28bあ
るいはディスプレイ28cに表示する。また、ネットワ
ーク1000を介した他のコントローラからの依頼ある
いは要求に応じて各種装置をオン/オフする。
【0051】このように各コントローラはネットワーク
1000を介して検出した状態量と制御出力あるいは操
作依頼を互いに通知し、そして、各コントローラは通知
された状態量と制御出力と操作依頼に応じて所轄の機器
を制御する。
【0052】以上のように複数のコントローラを各制御
対象機器毎に対応して分散配置するところに本発明の一
つの特徴がある。
【0053】図6は本発明を階層システムに適用した場
合のシステム構成例である。プラントが各々異なった制
御対象機器群100,101,102から構成されてい
る場合やその制御機器群100,101,102が広域
に分散している場合などでは本図のようにネットワーク
をネットワーク1000,1001,1002のように
分割し各ネットワーク下にコントローラ1,2,3,
4,5,6を配置する。ネットワーク1000,100
1,1002は各々統括コントローラ1300,130
1,1302を介して上位ネットワーク1500に接続
される。統括マンマシン1600はこの制御システムの
運転監視を行う。
【0054】図7及び図8は今まで述べたコントローラ
の内部構成を示す。コントローラ1はグローバルメモリ
(GM)52,演算プロセッサ(PR1,PR2,PR
3)54,56,58入出力処理装置(I/O)53,
ネットワーク制御プロセッサ(NCP)40,ネットワ
ークコネクタ(NetworkConnector)41,規模拡張用コ
ネクタ(BusConnector)60,61,62,63および
制御対象機器との接続用コネクタ(I/O Connector)
64から構成されている。また演算プロセッサ(PR
1,PR2,PR3)54,56,58は各々ローカル
メモリ(LM1,LM2,LM3)55,57,59を
有している。
【0055】NCP40はバス70を介してGM52,
LM55,57,59およびI/O53の内容を読み込
み他のコントローラまたはマンマシン装置(図1の12
00)へ送信する機能と、逆に他のコントローラまたは
マンマシン装置2000から送信されたデータをGM5
2,LM55,57,59およびI/O53に書き込む
機能を有する。バス72はプロセッサ54,56,58
がGM52およびI/O53をアクセスするのに用い
る。バス71は伝送用のシリアルデータ用のバスであ
る。このような構成を採ることでコントローラの拡張性
を確保でき、もし一つのプロセッサが故障しても他のプ
ロセッサで代替処理ができ(後述)しかも1台のコント
ローラ内の全てのプロセッサが故障したとしても他のコ
ントローラで代替処理ができる(後述)システムが構築
できる。
【0056】図8は図7におけるプロセッサ(PR1)5
4の内部構成を示したものである。図7において各プロ
セッサは同一の構成であり、その構成をプロセッサ(P
R1)を例に取り上げ説明する。プロセッサ(PR1)
54はタスクを実行する汎用エンジン(GE)6811
と、タスクの中に含まれたニューロ演算を加速するため
のニューラルエンジン(NE)6812と、タスクの中
に含まれたシーケンス制御用の演算を加速するシーケン
スエンジン(SE)6813と、アクセスすべきメモリ
がグローバルメモリ(GM)52のときバス70とプロ
セッサ内のバス6819を結合するバスインタフェース
(BIF)6817と、ローカルメモリ(LM)55と
グローバルメモリ(GM)52の間で高速な転送を実行
するダイレクトメモリアクセス制御(DMAC)681
8と、スケジューリングのための時計であるフリーラン
タイマ(FRT)6815と、各構成要素の故障を検出
してプロセッサの動作を停止させるとともに故障を他の
プロセッサにバス72を通して通知する故障制御回路6
820を含む。さらに、各構成要素はバス6819で接
続されている。
【0057】図9は今まで述べたコントローラの他の実
施例の内部構成を示す。図7との相異点は図7における
NCP40の機能を複数のプロセッサ84,87,9
0,93いずれにおいても実行できるように各プロセッ
サ84,87,90,93にシリアルデータのパラレル
データ化あるいはその逆の操作と符号化/復号化などを
実行するランアダプタ(LA)86,89,92,95
を付加したことである。これにより、プロセッサの代替
処理と同様に伝送機能(NCP)の代替処理が行える。
【0058】図10は図9におけるプロセッサ(PR
1)84の内部構成を示したものである。図8との相異
点はランアダプタ(LA)86とバス6819の接続イ
ンタフェース6902を設けたことである。
【0059】図11はさらに他の実施例の内部構成を示
す。図9との相異点は図9におけるローカルメモリ8
5,88,91,94の代替としてキャッシュメモリ
(CM)301,302,303,304を用いたこと
である。キャッシュメモリコントローラ(CMC)40
1,402,403,404はキャッシュメモリ(C
M)301,302,303,304とグローバルメモ
リ400との間のデータ転送を行う。
【0060】図12は図11におけるプロセッサ(PR
1)84の内部構成を示したものである。図10との相
異点は図12においては図10におけるダイレクトメモ
リアクセス制御(DMAC)6818が不要なことであ
る。これは、キャッシュメモリ(CM)301とグロー
バルメモリ400との間のデータ転送をキャッシュメモ
リコントローラ(CMC)401が行うためである。
【0061】図13はさらに他の実施例の内部構成を示
す。図11との違いはランアダプタ86,89,92,
95とネットワークコネクタ41およびプロセッサ8
4,87,90,93の接続をプログラマブルスイッチ
アレイ(PSW1,PSW2)8101,8102でプロ
グラマブルにしたことにある。これにより伝送機能をプ
ロセッサ84,87,90,93いずれにおいても実行
できるようだけでなく、シリアルデータのパラレルデー
タ化あるいはその逆の操作と符号化/復号化などを実行
するランアダプタ(LA)86,89,92,95の故
障に関してもランアダプタを切り替えることによりプロ
セッサを切り替えることなく伝送機能の代替処理が行え
る(図11の構成では、ランアダプタの故障であっても
プロセッサを切り替える必要がある。)。尚、図13に
おけるプロセッサの内部構成は図12に示したものと同
様で良い。
【0062】図14にはプログラマブルスイッチアレイ
の構成例を示す。スイッチアレイへの入出力XiとYj
の交点にはMOSトランジスタTijが設けられてお
り、MOSトランジスタTijのゲートには不揮発性メ
モリセルMijが接続されている。すなわちメモリセル
Mijの出力が“1”の場合MOSトランジスタTij
がONしXiとYjが接続され事になる。逆にMijの
出力が“0”の場合はTijがOFFとなりXiとYj
は切り離された状態となる。またメモリセルMijには
アドレス線A1,A2,A3とデータ線D1,D2,D
3が接続されており、これを介してデータの書込みが行
われる。
【0063】図15にメモリセルMijの内部回路例を
示す。この回路では不揮発性メモリ素子としてフラッシ
ュメモリを用いている。通常動作状態では書換えモード
信号は“LOW”になっており、NMOS:N1がOF
F、PMOS:P1がONとなっている。またアドレス
線の電位は例えば電源電圧に等しくなっている。従って
ノードAの電位はメモリ素子が消去状態(しきい値電圧
が低い)のときは“LOW”となりインバータI2の出
力も“0”となる。すなわちこのセルにつながるMOS
トランジスタTijがOFFとなる。逆にメモリ素子が
書込み状態(しきい値電圧が高い)のときはノードAの
電位が“HIGH”となりインバータI2の出力が
“1”スイッチMOSトランジスタTijがONとな
る。メモリセルへの書込みを行うには書込みモード信号
を“HIGH”にし、NMOS:N1をON,PMO
S:P1をOFFにする。この状態でアドレス線及びデ
ータ線に高電圧を印加することによりメモリ素子M1は
書込み状態になる。メモリ素子の消去はアドレス線を
“LOW”にしメモリ素子のソースに高電圧を印加する
ことにより行われる。
【0064】図16にプログラマブルスイッチアレイに
予備領域を設け、部分的な故障に対して救済を可能とす
るための構成を示す。この例は図14に示したスイッチ
アレイに故障救済用素子:Ts1〜Ts3,T1s〜T
3s,Ty1〜Ty3,Ms1〜Ms3,M1s〜M3s
を追加したものである。通常故障のない状態ではTs1〜
Ts3およびT1s〜T3sはOFF、Ty1〜Ty3
はONとなっており、図14の回路と同じ動作をする。
次に故障が検出された場合の救済方法を以下に示す。メ
モリセルM11が故障した場合について説明する。まず
M11〜M13の内容をMs1〜Ms3に移す。次にM
1sを“1”にし、T1sをON,Ty1をOFFにす
る。これにより故障部分が予備回路で置き換えられたこ
とになり、故障前と同一の動作が可能となる。
【0065】図17は図8,図10,図12における汎
用エンジンの内部構成例を示したものである。本エンジ
ンはマイクロプログラムメモリ8202,読みだし回路
8203,マイクロ命令レジスタ8204及びデコーダ82
05、レジスタ、演算ユニット8206,マルチプレク
サ8208,アドレスデコーダ8207から構成され
る。起動当初はアドレスデコーダ8207がクリアさ
れ、マイクロプログラムメモリ8202のゼロ番地の命
令がデコーダ8205で解釈され実行される。マイクロ
命令には次に実行する命令の番地を指し示している(8
207)。そのようにしてマイクロプログラムメモリ8
202に書き込まれているマイクロ命令が順次実行され
る。
【0066】マイクロプログラムメモリ8202は例え
ばフラッシュメモリ等の不揮発性メモリで構成されてお
り、このマイクロプログラムを書換えることによりプロ
セッサの機能を目的にあったものに変更することができ
る。この書換えのためにマイクロプログラムメモリ82
02は専用の書換え回路8201を内蔵しており、書換
えモード信号8302により書換えモードに設定するこ
とにより書換え用のアドレスバス8301,データバス
8300から供給されるアドレス及びデータにしたがっ
て書換えが行われる。
【0067】図18に他の実施例として各プロセッサを
複数のプロセッサエレメント(PE)の組み合せで構成し
た例を示す。各プロセッサの目的に応じて必要な数のプ
ロセッサエレメントを組み合せ各プロセッサを構成す
る。こうする事によりLSI全体を同一のプロセッサエ
レメントで構成することができ、LSI化が容易になる
と共に無駄の少ないコントローラの構成が可能となる。
【0068】次に入出力部について詳細に説明する。
【0069】先にも述べたように各コントローラに接続
されるセンサ、アクチュエータの種類及び点数は制御対
象により異なる。従って従来はそれらに応じた入出力装
置をレパートリの中から選択しコントローラに接続する
必要があった。一方、本発明では極力少ない種類のハー
ドウエアを用いて制御システムを構築するのが一つの目
的であるから以下に示す入出力構成を採用した。
【0070】図19は図9におけるI/O83の内部構
成を示す。I/O83はバスインタフェース830,D
/A変換器832,OPアンプ833からなるアナログ
出力とOPアンプ835,A/D変換器834からなる
アナログ入力とレジスタ836,パワー回路837からな
るディジタル出力とパワー回路838からなるディジタ
ル入力及びこれらとI/Oコネクタ64との結合を決定
するパワースイッチアレイ840から構成される。
【0071】パワースイッチアレイ840のプログラム
はインタフェース回路830から信号線850を介して
行われる。パワースイッチアレイ840の構成は図16
で示したものと同一であるが、パワーを取り扱うため物
理的な容量は大きくする必要がある。
【0072】図20はI/O83を1チップの半導体で
実現した構成図を示す。半導体は大きく2層より構成さ
れ上部半導体980にはパワー回路部902,パワース
イッチアレイ部901,プロセスとの接続端子900よ
りなり下部半導体950はOPアンプ部951,D/A
変換部952,A/D変換部953,レジスタ部954,
バスインタフェース955及びバスインタフェースとの
接続端子960から構成されている(図21は下部半導
体950を図示したものである)。また、上部半導体9
80と下部半導体950の配線は配線層970によって
行う。
【0073】図22及び図23は図9におけるコントロ
ーラ1′を1チップの半導体で実現した構成図を示す。
半導体は大きく2層より構成され上部半導体980は図
20と同じ構成であるが、下部半導体950はOPアン
プ部951,D/A変換部952,A/D変換部95
3,レジスタ部954以外にメモリ群956およびプロ
セッサ群957から構成されている(図23は下部半導
体950を図示したものである)。また、上部半導体9
80と下部半導体950の配線は配線層970によって
行う。
【0074】以上コントローラの内部構成について実施
例を用いて説明したが、本発明の範囲は実施例の範囲に
限定されるものではなく種々の変形が可能である。例え
ば機能プログラム用の不揮発性メモリとしては、フラッ
シュメモリ以外に他の電気的に書換え可能なEEPRO
Mまたは強誘電体RAM、さらには電池でバックアップ
したSRAMでもよい。
【0075】次に図24に本発明のコントローラの外観
を示す。コントローラの前面にはI/Oコネクタ64が
左右側面と上下面には規模拡張用コネクタ60,61,
62,63が実装されている。背面1700にはネット
ワーク用コネクタ1701及び電源用コネクタ1702
が実装されている。外形寸法は高さ約20cm,奥行き約
10cm,幅約3cmあり、入出力を接続可能でかつ分散設
置するに十分な寸法である。本寸法は本発明によりどの
程度の小型化を図れるかを参考に示すためのものであ
り、本発明はこの寸法に限られる訳ではない。
【0076】図25は二台のコントローラを規模拡張用
コネクタ60,61を用いて結合したものである。
【0077】図26は二台のコントローラを規模拡張用
コネクタ62,63を用いて結合したものである。
【0078】図27は四台のコントローラを規模拡張用
コネクタ60,61,62,63を用いて結合したもの
である。
【0079】このように本実施例のバス構成と外観構造
を有することによりコントローラ規模が容易に拡張でき
る。
【0080】次に、本発明で用いた制御演算方法につい
て説明する。
【0081】図28はセンサー等からの入力データに基
づいて制御演算を行う制御演算部の基本構成図を示す。
本発明では、入力データ2001を複数の出力生成手
段、ここではニューラルネットワーク2101とファジ
ィ推論手段2102とPID制御手段2103の3個の
手段に入力する。そして、重み付け部2021において
各出力生成手段の出力値をそれぞれに対応する重み値K
1 ,K2 ,K3 で重み付けし、出力データ合成部202
2で重み付けした各出力値を加算し、出力データ200
2を得る。この時、前記重み値K1 ,K2 ,K3 を加え
て1になるようにしておけば、出力データ合成部202
2では、重み付けされた出力を単純に加算するだけでよ
い。ここで、ニューラルネットワーク2101,ファジ
ィ推論手段2102,PID制御手段2103の3個の
手段は各々並列的に実行できるため各々別プロセッサで
実行させる(例えば、図7のコントローラでいえば、プ
ロセッサ54,56,58に3種の演算を担当させる)
ことにより、処理速度を落とすことなく制御演算が実行
できる。
【0082】図29に実施例の全体概要図を示す。ここ
では、出力計算部2012及び出力評価部2015より
なり、出力計算部2012および評価部2015がそれ
ぞれ学習モデルと付与モデルを持って両者を適応的に協
調させる制御方法を示す。センサ等2010からのデー
タ2001を必要に応じて入力処理部2011で入力処
理した入力データ2300は出力計算部2012と評価
部2015へ入力される。出力計算部2012では、入
力データ2300を受けとり、その内部に持つパラメー
タ等を用いてその出力データ2301を計算し、必要に
応じて出力処理部2013にて必要な出力処理を行った
後、その値2002をアクチュエータ等2014へ出力
する。ここで、パラメータ等とは、学習モデルであるニ
ューラルネット内のニューロン間の結合の重み値や、付
与モデル内のパラメータ、さらに学習モデルと付与モデ
ルの重み付けのパラメータを含む。一方、評価部201
5では、やはり、入力データ2300及び内部のパラメ
ータ等を用いて現在の状態の評価を行い、その結果から
出力評価信号2302を出力する。そして、出力計算部
2012ではこの出力評価信号2302を用いて、この
値が大きくなるように内部のパラメータ等の学習を行
う。一方、評価部2015内のパラメータに関しては、
例えばマンマシン装置1200に状態評価信号2303
を表示し、ユーザがこれを見て不適切と感じる場合にタ
ッチパネル、マウス等のポインティングデバイス201
7を用いて修正値を入力する。これを外部評価信号23
04として評価部2015へ入力し、この時に外部評価
有効信号2305をオンにして評価部2015内のパラ
メータ等を更新することによって、様々な状況に適応し
た評価ができるように学習させていく。
【0083】出力計算部2012の構成を図30に示
す。出力計算部2012の学習は、評価部2015の場
合の外部評価信号2304のような直接的な教師信号は
ないため、各パラメータ等に乱数成分を付加し、その時
の評価値に基づいて乱数成分を評価し、修正を行う。従
って、出力の計算法は以下のようになる。まず、入力デ
ータ2300と学習モデルパラメータ保持部2421か
ら得られる学習モデルパラメータを用いて、学習モデル
計算部2401において出力を計算すると共に、予めユ
ーザから付与された付与モデルに従って、入力データ2
300と付与モデルパラメータ保持部2411から得ら
れる付与モデルパラメータに乱数付加部2412によっ
て微小な乱数を付加したものをパラメータとして用い、
付与モデル計算部2402の出力を求める。そして、重
み付け部2403でそれぞれの出力値を重み付けして加
えあわせて出力データ2301とする。ただし、学習モ
デル計算部2401からの出力には乱数付加部2422
によって微小な乱数を加えたものに対し重み付けを行
う。また、さらに、重み付け部2403で用いる重み値
も、重み値保持部2431に保持されている重み値に対
し、乱数付加部2432によって乱数を付加したものを実際
に用いて重み付けする。まず、重み付け部2403の重み値
に関しては、乱数付加部2432によって付加された乱
数2433と評価部2015から得られる出力評価信号
2302を重み値更新量計算部2434において、例え
ば乗算し、重み値保持部2431にその値を渡して、も
との重み値に加えて新しい重み値とする。一方、学習モ
デル計算部2401内のパラメータに関しては、出力誤
差計算部2424にて、乱数付加部2422によって付
加された乱数2423と評価部2015からの出力評価
信号2302を例えば乗算して、学習モデル計算部24
01に与える誤差とし、学習モデル計算部2401で
は、その値に基づいてバックプロパゲーション等の学習
アルゴリズムに従って内部のニューラルネットの重み値
等のパラメータに更新量を計算し、新たな値を学習モデ
ルパラメータ保持部2421に書き込む。また、付与モ
デル計算部2402では、やはり、付与モデル内パラメータ
更新量計算部2414において、乱数付加部2412で
加えた乱数2413と評価部2015からの出力評価信
号2302を例えば乗算し、その値を付与モデルパラメータ
保持部2411に渡して新しい付与モデルパラメータの
値を書き込む。
【0084】一方、図31に評価部2015の構成を示
す。ここでは、まず、入力データ2300と学習モデル
パラメータ保持部2521から得られるニューラルネッ
トの結合の重み値などの学習モデルパラメータを用い
て、学習モデル計算部2501から出力を求める。また、そ
れと並行して、予めユーザから付与されたモデルに従っ
て、入力データ2300と付与モデルパラメータ保持部
2511から得られる付与モデルパラメータを用いて、
付与モデル計算部2502においても出力を計算する。
そして、重み付け部2503でそれぞれの出力値を重み
値保持部2531に保持されている重み値に基づいて重み付
けして足しあわせ、その足しあわせた結果を時間微分計
算部2505にて時間微分することによって出力評価信
号2302を生成する。また、評価部2015内の学習に関
しては、外部評価有効信号2305がオンの時に外部評価信
号2304からの信号に基づいて行われる。例えば、学
習モデル計算部2501と付与モデル計算部2502の
それぞれの出力を比較し、外部評価信号2304に近い
方の重み付けパラメータを大きくし、もう一方のパラメ
ータを小さくする。また、学習モデル計算部2501に
対しては、外部評価信号2304を教師信号として与え
て学習を行う。一方、付与モデル計算部2502では、通常
の出力値以外に、パラメータに微小な乱数を与えてもう
一つの出力値を求め、その両者を比較して乱数を加えた
方が外部評価信号2304に近ければ、実際にパラメー
タに対し、加えた乱数と学習定数を掛けたものを足し、
乱数を加えない方が良い場合には、パラメータから加え
た乱数と学習定数を加えたものを引くことによって学習
を行うことができる。また、付与モデルは学習機能がな
くても良いし、評価部2015が付与モデル計算部だけ
で学習モデル計算部がなくても差し支えない。また、学
習モデル計算部2501と付与モデル計算部2502の両方
を有する場合には、初期状態の両者の出力の重み付け
は、付与モデル側を1とし学習モデル側を0とすること
によって、学習開始前には学習モデルの出力が影響を及
ぼさないようにすることができる。
【0085】次に、複数個の評価基準を有する場合の実
施例を示す。全体構成図を図32に示す。ここでは、複
数の評価部として第1評価部2601と第2評価部26
02があるものとする。各評価部内のパラメータの修正
は、評価部が1個の場合と同じく、マンマシン装置12
00に第1評価部2601の状態評価値2603と第2
評価部2602の状態評価値2604を表示し、これを
タッチパネル、マウス等のポインティングデバイス20
17を用いて修正し、修正された時は、該当する外部評
価有効信号2605に1を立てる。そして、その時の修
正値を外部評価信号2606として各評価部へ受け渡
す。そして、該当する評価部では、その内部のパラメー
タを修正すれば良い。また、出力評価信号に関しても複
数得られるが、例えば、その複数の出力評価信号の最小
値を選んで出力計算部2012へ与えることが考えられ
る。すると、ユーザが最も不適であると感じる評価基準
に関して、より良くなるように出力計算部2012内の
パラメータ等を更新できることになる。
【0086】次に、複数の手段や方法による出力の重み
付けをする重み値を、入力データ2001によって変化
させる場合を図33に示す。ここでは、入力データ2001
をニューラルネットワーク2701に入力し、出てきた
出力に乱数付加部2702によって乱数成分を付加し、
その値Kに基づいて重み付け部2021において、ニュ
ーラルネットワーク2101と出力生成手段2102の
出力を重み付けし出力データ合成部2022で重み付け
されたデータを加えあわせて出力データ2002を生成す
る。一方、教師信号生成部2703においてその乱数成
分と出力評価信号2302を掛け算しニューラルネット
ワーク2701の出力と足して教師信号としてニューラ
ルネットワーク2701に渡し、学習を行わせる。ただ
し、この時、学習が始まる前はニューラルネットワーク
2701の出力が0に近い値になるようにし、出力生成
手段2(2102)の出力が出力データ2002になる
ようにすると良い。
【0087】以下、本発明のネットワーク通信負荷を低
減する方法に関する実施例を図面を用いて詳しく説明す
る。図34は、本発明の対象となる分散制御システムの
構成を示したもので、ネットワーク1000によって複
数のコントローラ(1,2,3,…)が制御を行ってい
る。システム全体の制御情報および診断情報は、マンマ
シン装置1200において加工・表示される。各コント
ローラは、それぞれに制御を実行するだけでなく、診断
処理も実行するので、診断処理部4010,制御実行部
4011,制御情報および診断情報をネットワークを通
じて他のコントローラに送信するための通信インタフェ
ース4012をもっている。
【0088】このような分散制御システムに於ては、コ
モンモード故障が発生した場合に、各分散制御センサー
からの異常情報が多数ネットワークに送信され、通信不
良となる可能性がある。
【0089】例えば、各コントローラが制約条件をもっ
ており、診断処理部において制約のチェックをおこな
い、もし、制約が充足されなければ制約を充足しない制
約式をネットワークに送信する場合を考える。このよう
な場合、異常診断とは充足されない制約式の制約変数の
中でどの変数が制約を充足しない原因となっているかを
同定することである。
【0090】図35は、以後の説明のための具体例とし
て4つのコントローラからなる分散制御システムの各コ
ントローラの入力変数、出力変数、制約式を示したもの
である。例えば、コントローラ1は、入力変数としてX
1,X2をもち、出力変数としてX3をもち、制約式と
して、C1:E(X3,X1+X2,e1)をもつとす
る。ここで、Eは、誤差関係式で、第1変数と、第2変
数の絶対値の差が第3変数以下であることを表す。この
例では、 X1+X2−e1<X3<X1+X2+e1 であることを示している。
【0091】対象プラントの状態量がX1=1,X2=
2,X4=2とする。コントローラが、この各状態量に
対して制御を行う時、図35に示した制約をおのおのが
チェックして、もし制約が充足されない場合には、ネッ
トワークに情報を送信するとしよう。この時、コントロ
ーラ1が正常に動作していれば、入力変数X1,X2の
値から、制約条件C1を充足するX3の値であるX3=
3を決定し、出力する。しかし、ここで、コントローラ
1が何等かの原因で故障し、X3=13を出力したとし
よう。この時、コントローラ2では、制約条件C2と、
入力X3,X4から、X5=15,制約条件C3と入力
X3から、X6=13が出力されるが、制約条件C4が
充足されないので制約条件C4が未充足であるという異
常が送信される。コントローラ3では、入力X3,X5
と、制約条件C5より、出力X7=195となるが、こ
れは、制約条件C6を充足しないのでコントローラ3か
らは、制約条件C6が未充足という異常が送信される。
コントローラ4では、入力変数X3,X5およびX6と
制約条件C7よりX9=15が出力され、制約条件C8
より、X8=26が出力されるが、これは、制約条件C
9を充足しないので、コントローラ4からは、制約条件
C9が未充足という異常情報が送信される。このよう
に、分散制御系においては一つのコントローラが故障し
たために、他の多くのコントローラから異常情報が出力
され通信ネックが発生し、診断が妨げられる心配があ
る。
【0092】このような問題を解決するために、本発明
においては、個々のコントローラからネットワークへ入
出力される情報をフィルタリングする方法をとった。ま
た、異常発生時に送信する情報として、各コントローラ
がフィルタリングを実行するためにマンマシン装置に送
るものと、ネットワークを経由して順次各コントローラ
に送るものの二つデータフレームを用意する。ネットワ
ークもこれにあわせて、各コントローラをリング状に結
合するものと、各コントローラとマンマシン装置をつな
ぐ二種類のネットワークを用意すれば、より高速な処理
が可能である。ここでは、一実施例として、マンマシン
装置も各コントローラも一つのネットワークで接続して
おり、異常発生時の異常情報の送り先を異常情報の中に
含める方法をとる。
【0093】図36は、個々のコントローラの通信イン
タフェースの構成を示したもので、4030が不要な入
力情報をふるい分け、必要な情報だけコントローラに取
り込む為の入力情報フィルタ部、4031は、不要な出
力情報をふるい分け、不要な出力情報をネットワークに
送信しないための出力情報フィルタ、4032は、暗号
化され、情報圧縮された情報を復元するための通信処理
部である。これらの処理は図7で示すコントローラでは
NCP40が、図9,図11に示すコントローラではラ
ンアダプタ86,89,92,95が実行する。
【0094】ここで、不要な出力情報のふるい分けの一
実施例として、制約変数集合を用いた方法を説明する。
ここで、制約変数集合とは、制約式中に定義された全て
の変数をさす。例えば、図35中の制約条件C1の制約
変数集合をV(C1)とすると、V(C1)={X1,
X2,X3}である。誤差変数e1は誤差範囲を示すた
めに人工的に導入されたものなので、制約変数集合には
含めないとする。
【0095】この制約変数集合の包含関係に基づいて、
個々の分散制御系で検出した異常をネットワークを経由
して、他の個別コントローラとマンマシン装置1200
に送信するか否かを決定する。ただし、この情報だけか
らでは不十分なので、個々の分散制御システムにおける
入出力変数の情報も利用する。つまり、ネットワークに
異常情報を送信するときは、図37に示したように、制
約変数集合の他に、入力変数集合、展開変数集合、消去
変数集合,異常情報データID,機器IDの情報も付加
する。ここで、入力変数とは、異常が発生した個々のコ
ントローラにおける入力変数で、コントローラ1におけ
る入力変数を、In(1)とすると、In(1)={X
1,X2}である。展開変数と、消去変数は、別のコン
トローラから異常情報を受信した場合に異常変数の絞り
込みの際につけ加わる情報で、後で詳しく述べる。異常
データIDは、このデータフレームが、異常データとい
うタイプのデータで、いつ送信されたかを示す為の情報
で、ここでは、AB_92_07_03_10_24_
10とする。ABは、異常情報であることを示し、後の
数字は異常情報を送信したのが、92年7月3日10時
24分10秒であることを示す。送信先IDは、異常デ
ータが、マンマシン装置あってのものか、各コントロー
ラ宛のものかを示すものである。例えば、マンマシン装
置向けのものであれば、ここに、0を、各コントローラ
宛のものであれば、ここに、また、機器IDは、この異
常情報が発せられたコントローラのIDを記述するため
のデータフィールドでここでは、コントローラ1から送
信されたので1と記入されている。
【0096】このような異常情報がネットワークに送信
されると、各コントローラは、その情報が自分と関係の
あるものかどうかを、入力情報フィルタにおいて判定
し、もし関係のある情報であれば取り込む。一方、異常
情報データフォーマット中の異常データIDと制約変数
集合、機器ID,入力変数集合だけは、加工されないま
ま、ただちに、マンマシン装置に送られる。
【0097】以下の説明では、今の例をもちいて、ま
ず、どのようにして不必要な異常情報が、ネットワーク
に送信されるのが抑制されるかを示し、次に、異常箇所
がどのように同定されるかを示す。
【0098】まず、不必要な情報の抑制処理を図38及
び図39に示す。図38は、処理の概要を示したもの
で、マンマシン装置に登録されている異常情報を参照し
て、新たに送信しようとしている異常情報が既に送信さ
れている情報に含まれているかどうかを判定し、もし含
まれていれば、送信を止める。図39は、異常情報相互
の包含関係の判定処理を示したもので、制約集合の間に
包含関係があるかないかをまず調べ、もし包含関係がな
くてもコントローラ間に入出力関係があり、この入出力
関係まで考慮すると包含関係が成り立つ場合もあり、こ
の判定も行っている。これらの処理を具体的な例で示
す。
【0099】まず、コントローラ1から上記の異常情報
がマンマシン装置宛のものと各コントローラ宛のものの
2つのデータフレームとして送信され、すでにマンマシ
ン装置で受信している場合について考えてみる。すでに
述べたように他のコントローラ2,3,4でも制約違反
を検知し異常情報を送信しようとする。たとえば、コン
トローラ2では、制約条件C4が充足されない。この異
常情報の制約変数集合はV(C4)={X5}であり、
入力変数集合は、{X3,X4}である。コントローラ
2の通信インタフェースの出力情報フィルタ部では、こ
の情報を送信する前に、マンマシン装置の異常情報を参
照して、自分が発信しようとしている異常情報の制約変
数集合を含む制約変数集合をもった異常情報がすでに送
信されていないかどうか確認する。この場合、コントロ
ーラ1から送信された異常情報の制約変数集合のV(C
1)={X1,X2,X3}は、V(C4)を含んでい
ない。しかし、入出力関係まで考慮すると異なった結果
となる。つまり、コントローラ2の入力変数X3は、コ
ントローラ1から送信された異常情報の制約変数集合V
(C1)に属しているから、この入力変数X3の影響で
コントローラ2の出力変数X5,X6に異常が生じる可
能性がある。
【0100】一方、コントローラ1の異常情報の入力変
数は、{X1,X2}であるから、コントローラ2の出
力変数X5に関する異常の原因は、コントローラ1の出
力変数X3を媒介してコントローラ1の入力変数X1,
X2である可能性がある。つまり、コントローラ2にと
っては、V(C1)={X1,X2,X3}にくわえ
て、Op(C1,2)={X5,X6}も制約変数であ
る。ここで、Op(C1,2)は、コントローラ2にと
っての制約条件C1の仮想的な制約変数であって、ここ
では展開変数集合と呼ぶ。そこでV(C1)UOp(C
1,2)にV(C4)が含まれているから、制約条件C
4の未充足は、すでに送信された制約条件C1の未充足
に関する情報に含まれる情報であって、ネットワーク上
にデータがあふれることを防止するためには、出力情報
フィルタ部でふるいにかけ、送信させないこととする。
【0101】同様にコントローラ3においても制約条件
C6が充足されていないのでこれをネットワークに送信
しようとする。ところがすでに、コントローラ1から異
常情報がマンマシン装置に送信されているので、コント
ローラ3の出力情報フィルタでは、自分の持っている異
常情報が送信するに値するものかどうか判定する。この
時、コントローラ2におけるのと同様に、Op(C1,
3)を求めると、コントローラ3は、入力変数としてコ
ントローラ1の出力変数X3を持っているからコントロ
ーラ3の出力変数X7も仮想的な制約変数であって、O
p(C1,3)={X7}となり、V(C1)UOp(C
1,3)にV(C6)が含まれるから、制約条件C6に
関する異常情報は、送信されない。さらに、コントロー
ラ4についてもOp(C1,4)={X8,X9}であ
り、V(C1)UOp(C1,4)にV(C9)が含まれ
る。したがって制約条件C9が充足されないための異常
情報は送信されない。このようにして、重複した異常情
報の発生を押えることができる。
【0102】次に、既に送信された異常情報を用いて、
異常情報を絞り込んでいく方法について図40によって
説明する。異常情報が、あるコントローラから送信され
るとデータは、直接、マンマシン装置に行くものと、各
コントローラに放送されるものに分かれる。異常情報の
絞り込みが行われるのは、各コントローラに放送される
異常情報である。まず、各コントローラはネットワーク
上の情報が、自分と関係のある情報かどうかの判定をお
こなう。
【0103】まずデータバス上の異常情報をコントロー
ラの通信インタフェースに取り込み、取り込まれた異常
情報は、ネットワークから削除する。通信インタフェー
スでは、まず通信処理部において、データを圧縮された
状態から処理可能な状態に変換し、次に異常情報データ
の中の入力変数を出力変数として持つかどうかを判定
し、もし持てば、コントローラの入力変数を展開変数と
して異常情報に付加する。今の例では、コントローラ1
から発生した異常情報の入力変数集合は、X1,X2で
あり、これらをコントローラ2は、出力変数としてもた
ないからNoである。次に、異常情報の制約集合に含ま
れる制約変数集合に含まれる制約変数集合にもつ制約条
件はあるかを判定し、これもNoであるから、異常情報
を加工することなく、ネットワークに異常情報が返され
る。つまり、入力フィルータでフィルタされ、何も処理
がおこなわれない。今の例では、他のコントローラも同
様にして、何の処理も行わず、始めに送信された制約C
1の異常情報が原形のまま、ネットワークをとおりぬけ
る。一方、既に述べたようにこの場合には、ほかの制約
違反は、出力情報のフィルーターにかかって、発信され
ないから、絞り込みがなくても、はじめから原因は、コ
ントローラ1にあると特定することができる。これに対
して、何かの原因で、例えば、コントローラ3のC6の
制約条件違反の異常情報が、コントローラ1からよりも
先に送信されたとする。この異常情報の制約変数集合
は、V(C6)={X7}であり、入力変数集合In
(3)={X3,X5}である。この異常情報が、コン
トローラ1にくると、入力変数X3をコントローラ1
は、出力変数としてもつから(このような変数を共通変
数という)、コントローラの入力変数X1,X2,およ
びを展開変数に追加する。次の判定で、異常情報の制約
変数集合{X7}と展開変数集合{X1,X2,X3}
の和集合は、制約条件1の制約変数集合{X1,X2,
X3}を含むから、異常情報は、図41の処理手順によ
って加工される。このとき、制約条件C1は、制約条件
C6に含まれるという。まず、受信した制約条件に含ま
れる制約条件C1が充足しているかどうかを判定する。
この場合は、充足していないので、次に、制約条件C1
は、送信されているかどうかをチェックする。C1が先
に送信された場合には、C6は、すでに述べたプロセス
により送信されないが、C6が先に送信された場合に
は、C1が送信されることはありえる。C1がすでに送
信されていれば、受け取った異常情報は、消去され、ま
だ送信されていなければ、異常情報は、C1に関するも
のに書き換えられる。いずれの場合にもネットワーク上
には、C1に関する制約条件のみが生き残る。これは、
見方をかえれば、異常原因がコントローラ1に絞り込ま
れたことをしめしている。
【0104】なお、以上のような不必要な情報の送信の
カットと、異常原因の絞り込みは、各コントローラの入
出力フィルタの部分及び、マンマシン装置に異常情報の
包含関係に関する知識をインストールすることによって
も実現できる。
【0105】例えば、制約の包含関係を図42に示した
ようなツリーで表現した知識を用意し、図37の異常デ
ータフォーマット上の制約変数集合のかわりに、充足さ
れなかった制約名称を記述することとすれば、図39の
処理の代りに既にマンマシン装置に登録されている異常
情報の制約式名称を用いて、既に登録されている異常情
報が送信しようとしている異常情報を含んでいれば、異
常情報を他のコントローラに送信せずに、統合監視装置
の異常情報を追加するだけにすることにより、不要な異
常情報の送信を抑制できる。
【0106】さらにまた、信頼性及び耐故障性の向上を
目的とした本発明の分散制御システムのもう一つの実施
例を示す。本発明は分散制御システムのコントローラの
多重ダウンに対しても稼働中のコントローラが負荷を自
律的に分散しバックアップすることを可能にしたもので
ある。このバックアップを実現する手段を図43に示
す。図43は分散制御システムのコントローラの多重ダ
ウンに対して稼働中のコントローラが負荷を自律的に分
散しバックアップする本発明の一実施例である。プラン
ト100のセンサ及び制御対象に接続されそれらを制御
するコントローラ1,2,3,4はネットワーク100
0で相互に接続された分散制御システムを構成してい
る。コントローラ1,2,3,4はそれぞれ通信手段6
110,6210,6310,6410と、バックアッ
プ依頼手段6120,6220,6320,6420
と、バックアップ受付手段6130,6230,633
0,6430と、スケジューラ6140,6240,6
340,6440と、制御手段6150,6250,6
350,6450と、記憶手段6160,6260,6
360,6460と、さらに、内部バックアップ手段6
170,6270,6370,6470と、切り離し手
段6180,6280,6380,6480とを含む各
コントローラは同様の構成であるので、コントローラ1
を代表例として取り上げ説明する。なお、各コントロー
ラは後述の図47に示すとおり4個のプロセッサを持っ
ている。さらに各プロセッサはここに示した通信手段、
バックアップ依頼手段、バックアップ受付手段、内部バ
ックアップ手段、切り離し手段、スケジューラ、制御手
段の各手段を提供するに充分なハードウェアを持ち、か
つ、各手段を提供するソフトウェア(タスク)を実行す
るに充分な処理能力を持っている。このため前記の手段
は何れのプロセッサ上でも実施可能である。以下各手段
の機能を説明する。
【0107】通信手段6110はネットワーク100
0、バックアップ依頼手段6120,バックアップ受付
手段6130,スケジューラ6140,制御手段615
0と記憶手段6160,内部バックアップ手段617
0,切り離し手段6180に接続されており、他のコン
トローラとのメッセージの交換を実行し、コントローラ
内の他の手段と他のコントローラの間でのメッセージあ
るいはデータの交換を可能にする。スケジューラ614
0は自分自身に登録された複数のタスクをプロセッサに
割り付ける順番及び時間間隔などを定め、かつ指示する
ものである。制御手段6150はプラント100のセン
サ及び制御対象を制御するものである。スケジューラ6
140と制御手段6150は記憶手段6160と接続さ
れており、そこに記憶されたタスク及びデータとスケジ
ューリング情報に基づきスケジューリングとプランと1
00の制御を司る。また、スケジューラ6140と制御
手段6150は通信手段6110と接続されており、他
のコントローラとの同期をとるために通信手段6110
とネットワーク1000を介して他のコントローラとメ
ッセージを交換する。本実施例は以上により分散制御を
実施している。
【0108】バックアップを司る手段について説明す
る。
【0109】切り離し手段6180は内部バックアップ
手段6170と通信手段6110に接続されている。こ
の手段はコントローラ内部のハードウェアの故障あるい
はソフトウェアの暴走などのダウンを検出し、ダウンし
たプロセッサの動作を停止させる。また、ネットワーク
1000を通して他のコントローラから自己を含むコン
トローラの故障を通知された場合にも同様の動作を実施
する。他のコントローラからの故障の通知によってバッ
クアップを開始できるように、切り離し手段6180は
通信手段6110に接続されている。さらに、自ら故障
を検出した場合および故障を通知された場合のどちらで
も、どのプロセッサがダウンしたかを内部バックアップ
手段6170に前記の接続を通して知らせる。
【0110】前述のスケジューラ6140は、前述の機
能に加えて、コントローラ内部のプロセッサで実行され
ている各タスクに対して単位時間当りの実行時間を測定
し、その値の単位時間に対する比を各タスクの負荷率と
する。この値により後述するタスク負荷表を更新する。
そして、これらの負荷率の和が後述する限界負荷率を越
えた場合に当該のプロセッサにて負荷オーバが発生する
と予測する。また当該のプロセッサにて各タスクの負荷
率の和が100%を越えたか否かを判定することにより
負荷オーバを検出する。越えた場合が負荷オーバであ
る。負荷オーバが発生すると予測されたプロセッサある
いは負荷オーバが発生したプロセッサを内部バックアッ
プ手段6170に知らせる。
【0111】内部バックアップ手段6170は通信手段
6110,記憶手段6160,切り離し手段6180,
スケジューラ6140とバックアップ依頼手段6120
に接続されている。この手段は、切り離し手段6180
からコントローラ内部のダウンを通知された場合に、あ
るいはスケジューラ6140からコントローラ内部の負
荷オーバの発生あるいは負荷オーバの予測を通知された
場合に図44の手順に従い、ダウンあるいは負荷オーバ
により実行できなくなるタスクをその優先度に応じてコ
ントローラ内でバックアップする。部分的ダウンあるい
は負荷オーバがコントローラ全体のダウンにつながるこ
とを防ぐために、コントローラの管理運用に必要不可欠
なタスクを最も優先する。ネットワーク1000の通信
量のボトルネックが顕在化し通信の遅延あるいは不良が
頻発することを防ぐために、他のコントローラでバック
アップした場合に多量の通信を必要とするタスクが次に
優先される。バックアップは負荷の軽いプロセッサから
順番に実施していき、バックアップされるべきタスクが
あるかぎり、次々と負荷の重いプロセッサで実施してい
く。途中でバックアップされるべきタスクが無くなれば
そこで処理を終了する。すべてのプロセッサでバックア
ップを実施してもバックアップされるべきタスクが残っ
ているときはバックアップ依頼手段6120にこの状況
を通知して図45のコントローラ間でのバックアップに
関する手順を実行させ、本手段は実行を終了する。この
図44の手順を内部バックアップ手順と呼び、後にその
詳細を具体的な例により説明するが、ここでは本手段の
機能を説明するうえでその概略を説明する。
【0112】まず、本手段は手順6510から手順65
15にて、ダウンあるいは負荷オーバにより実行できな
くなったタスクのバックアップを担当するプロセッサを
コントローラ内から決める。この決定において記憶手段
6160に格納されている各プロセッサの実行状態に関
する情報を用いる。すなわち、多くのタスクをバックア
ップさせるために負荷の低いプロセッサあるいは余剰性
能の大きいプロセッサに決定する。なお、これらの情報
は図48に示した実行分担表と呼ぶ表に格納されてい
る。さらに、ダウンあるいは負荷オーバにより実行でき
なくなったタスクのうちバックアップされるべきタスク
を決定する。この決定では、タスクの属性に関する情報
を用い、他のプロセッサでバックアップする必要のない
タスクを除外する。このタスクの属性に関する情報は図
49に示したタスク負荷表と呼ぶ表に格納されている。
【0113】つづいて本手段は手順6520から手順6
540にて、バックアップされるべきタスクにバックア
ップを担当する部分がバックアップ前に実行していた複
数のタスクを追加する。そしてこれらの中から、バック
アップを担当するプロセッサがバックアップ後に実行す
べきタスクを優先度に応じて選択する。このとき、部分
的ダウンあるいは負荷オーバがコントローラ全体のダウ
ンを引き起こさないようにするために、通信手段611
0,バックアップ依頼手段6120,スケジューラ61
40を提供するタスクなどのコントローラの管理運用に
必要不可欠なタスクを最も優先して選択する。ネットワ
ーク1000の通信量のボトルネックが顕在化して通信
不良を引き起こすことがないようにするために、他のコ
ントローラでバックアップした場合に多量の通信を必要
とするタスクが次に優先して選択される。その後、その
他のタスクを選択する。各優先度においてバックアップ
を担当するプロセッサの負荷が限界値を越えない範囲で
最大負荷となる組合せのタスクを選択する。この負荷の
限界値は記憶手段6160に格納されており、限界負荷
率と呼ぶ。この選択において記憶手段6160に格納さ
れている各タスクの負荷率とこの選択における優先度と
タスクの原籍に関する情報を用いる。タスクの負荷率と
は着目したタスクを当該プロセッサで実行した場合の単
位時間当りに必要とされる処理時間であり、あらかじめ
同等の処理能力を持つプロセッサあるいは当該部分で実
行したときに計測した値である。なんらかの事情で計測
できないときにはあらかじめ推定し定めた値を用いる。
タスクの原籍は各タスクが元々所属するコントローラあ
るいはその一部分を示す。なお、これらの情報は図49
に示したタスク負荷表と呼ぶ表に格納されている。ま
た、この選択において、バックアップを担当するプロセ
ッサがバックアップ前に実行していたタスクであろうと
も優先度が低い場合にはバックアップ後に実行させない
ことがある。このように追い出されたタスクは、バック
アップされるべきタスクに追加され、他のプロセッサで
バックアップされることを待つ。
【0114】つづいて本手段は手順6550にて、選択
したタスクをスケジューラ6140に登録し実行手段6
150にて実行を開始させる。バックアップを担当する
プロセッサから追い出されたタスクはスケジューラ61
40から削除しその実行を停止させる。
【0115】つづいて本手段は手順6560から手順6
590にて、バックアップされるべきタスクの状況と、
コントローラ内でバックアップを担当させていないプロ
セッサの有無とに応じて3通りの処理を実行する。ま
ず、バックアップされるべきタスクに優先度の高いタス
クがあり、かつ、コントローラ内の稼働中のプロセッサ
のすべてにバックアップを担当させる前述の手順を実施
していない場合には、次に負荷率が低いプロセッサをバ
ックアップを担当するプロセッサとして選択し、再び手
順6520より内部バックアップ手順を繰り返す。多く
のタスクあるいは多くの負荷をコントローラ内でバック
アップできるように、コントローラ内の各プロセッサに
対して順番にバックアップを担当させるというこの繰り
返しを設けた。一方、バックアップされるべきタスクが
優先度の低いタスクのみの場合と、バックアップされる
べきタスクに優先度の高いタスクがあるが、コントロー
ラ内の稼働中のプロセッサのすべてにバックアップを担
当させる前述の手順を実施した場合には、コントローラ
の新しい実行状況をネットワーク1000を通して放送
し、バックアップされるべきタスクをコントローラ間で
バックアップさせるためにバックアップ依頼手段612
0にバックアップされるべきタスクが残っていることを
前記接続を介して通知し図45のコントローラ間のバッ
クアップに関する手順を開始させ、本手段の処理を終了
する。さらに、一方で、バックアップされるべきタスク
がない場合には、コントローラの新しい実行状況をネッ
トワーク1000を通して放送し、本手段の処理を終了
する。
【0116】バックアップ依頼手段6120は通信手段
6110と記憶手段6160と内部バックアップ手段6
170とに接続されている。この手段は、内部バックア
ップ手段6170からバックアップされるべきタスクが
残っていることを通知された場合に、図45の手順に従
い、ネットワーク1000に接続された他のコントロー
ラあるいはそのプロセッサからバックアップの依頼先を
選定しバックアップを依頼する。すべてのタスクのバッ
クアップが終了するまでこの選定と依頼を繰り返す。こ
の手順をバックアップ依頼手順と呼び、後にその詳細を
具体的な例により説明するが、ここでは本手段の機能を
説明するうえでその概略を説明する。
【0117】この手段は手順6610にて、記憶手段6
160に格納されているすべてのプロセッサの負荷状態
に関する情報とを用いて、バックアップを依頼するコン
トローラあるいはそのプロセッサを選定する。選定基準
は他のコントローラのプロセッサのなかで最も負荷の小
さいことである。なお、この情報は図49に示した外部
受付順位表に格納されている。
【0118】つづいて本手段は手順6620から手順6
640にて、さきに選定した依頼先に宛ててバックアッ
プを依頼することを示すメッセージ6600を発信す
る。このメッセージ6600はバックアップされるべき
タスクの情報を含む。メッセージ6600はネットワー
ク1000を介して送られる。そして、依頼先からの応
答を待つ。応答は依頼先によってシステム全体に放送さ
れるところの、バックアップの依頼に対する応答である
ことを示すメッセージ6700である。メッセージ67
00はさらに依頼先がバックアップしたタスクとこのバ
ックアップにより依頼先で実行されなくなったタスク
(追い出されたタスク)を示す情報を含む。本手段はこ
のメッセージ6700を受信するまで待ち状態に入って
おり、これを受信すると待ち状態が解除されて次の手順
6642に進む。
【0119】つづいて本手段は手順6642から664
8にて、依頼先がバックアップしたタスクの有無を判定
し、依頼先がバックアップしたタスクがある場合にはバ
ックアップの依頼の終了を判定する手順(手順6650
から手順6670)に進む。依頼先がバックアップした
タスクがない場合には、さらに手順6644にて他のコ
ントローラのプロセッサのすべてにバックアップを依頼
したかを判定する。他のコントローラのプロセッサのす
べてにバックアップを依頼していない場合には、手順6
646にて他のコントローラのプロセッサの中で今回の
依頼先に次いで負荷が小さいものを次回のバックアップ
依頼先に指定し、手順6620に戻りバックアップの依
頼を繰り返す。また、他のコントローラのプロセッサの
すべてにバックアップを依頼していた場合には、バック
アップが失敗している。そこでこの場合には手順664
8に示すように縮退運転手段に縮退運転を開始しさせ、
本手段はバックアップ依頼手順を終了する。
【0120】手順6642の判定にて依頼先がバックア
ップしたタスクがあった場合には、つづいて、本手段は
手順6660から手順6670にて、依頼先からのメッ
セージ6700に応じて記憶手段6160に格納されて
いる各表を変更する。さらに、依頼先がバックアップし
たタスクをバックアップされるべきタスクから削除し、
依頼先から追い出されたタスクをバックアップされるべ
きタスクに追加する。その後、バックアップされるべき
タスクの有無を判定し、バックアップされるべきタスク
が有るときには手順6610に戻り依頼先の選定とバッ
クアップの依頼を繰り返す。この依頼の繰り返しと依頼
先の拒否あるいは受付により、バックアップされるべき
タスクを自律的に分散してバックアップすることを可能
にした。バックアップ受付手段6130は通信手段61
10と記憶手段6160とに接続されている。この手段
は、ネットワーク1000を介して他のコントローラか
ら送られてきたバックアップを依頼するメッセージ66
00を受け取った場合に、図46の手順に従い、メッセ
ージ6600によってバックアップを依頼されたタスク
をバックアップを依頼されたプロセッサの負荷状態に応
じてバックアップする。この手順ではバックアップを担
当するプロセッサの負荷率が限界負荷率を越えない範囲
できる限り大きくなるように、バックアップを依頼され
たタスクとそのプロセッサが実行しているタスクとの入
れ替えも実施する。この入れ替えはかなり大きい負荷率
のタスクをバックアップするために必要な機能である。
大きな負荷率のタスクをバックアップする余裕が無くと
も、小さな負荷率のタスクを追い出し余裕を作れば大き
な負荷率のタスクをバックアップできることが多い。追
い出されたタスクはバックアップされるべきタスクとし
て、さらに他のプロセッサにバックアップ依頼されそこ
で実行されることになろう。あるいはさらにそこで入れ
替えを引き起こすかも知れないが、入れ替えの度により
小さな負荷率のタスクが追い出されるためバックアップ
できる可能性が高まってゆき、最終的にはバックアップ
できるであろう。この入れ替えにおいて自らのコントロ
ーラの管理運用に必要不可欠なタスクあるいは他のコン
トローラで実行した場合に多量の通信を必要とするタス
クを追い出してしまうと、自らのコントローラのダウン
やネットワーク1000の通信量のボトルネックによる
通信の不良を引き起こしたりする。これを防ぐためにバ
ックアップ後に実行するタスクとしてそれらのタスクを
優先して選択するこの手順とした。また、本手段はバッ
クアップの結果をシステム全体に知らしめる。この手順
をバックアップ受付手順と呼び、後にその詳細を具体的
な例により説明するが、ここでは本手段の機能を説明す
るうえでその概略を説明する。
【0121】この手段は手順6710から手順6730
にて、バックアップされるべきタスクとバックアップを
担当するプロセッサで実行されている複数のタスクの中
から、バックアップを担当するプロセッサがバックアッ
プ後に実行すべきタスクを優先度に応じて選択する。こ
のとき、バックアップにより自らのコントローラがダウ
ンしないようにするために、通信手段6110,バック
アップ依頼手段6120,スケジューラ6140を提供する
タスクなどの自らのコントローラの管理運用に必要不可
欠なタスクを最も優先して選択する。ネットワーク10
00の通信量のボトルネックが顕在化して通信不良を引
き起こすことがないようにするために、他のコントロー
ラで実行した場合に多量の通信を必要とするタスクが次
に優先して選択される。その後、その他のタスクを選択
する。各優先度においてバックアップを担当するプロセ
ッサの負荷が限界値を越えない範囲で最大負荷となる組
合せのタスクを選択する。この負荷の限界値は記憶手段
6160に格納されており、限界負荷率と呼ぶ。この選
択は図44の内部バックアップ手順の手順6530と同
一である。また、この選択において、バックアップを担
当するプロセッサがバックアップ前に実行していたタス
クであろうとも優先度が低い場合にはバックアップ後に
実行させないことがある。つづいて、本手段は選択した
タスクをスケジューラ6140に登録し実行手段615
0にて実行を開始させる。バックアップを担当するプロ
セッサから追い出されたタスクはスケジューラ6140
から削除しその実行を停止させる。
【0122】つづいてこの手段は手順6740にて、バ
ックアップするタスクと追い出すタスクを示す情報を含
むメッセージ6700をネットワーク上に放送(ブロー
ドキャスト)する。このメッセージ6700により自ら
のコントローラの実行状態の変化を他のコントローラの
すべてにに知らしめる。さらに、本手段はすべてのコン
トローラは各々の記憶手段6160,6260,636
0,6460に格納されている実行分担表とタスク負荷
表と外部受付順位表をこのメッセージ6700によって
書き換える。また前述したように、このメッセージ67
00に基づいて依頼元のバックアップ依頼手段(622
0,6320,6420のいずれか)はバックアップさ
れるべきタスクからバックアップされたタスクを削除
し,追い出されたタスクをバックアップされるべきタス
クに追加する。
【0123】このように1台のダウンあるいは負荷オー
バしたコントローラが実行していた複数のタスクがバッ
クアップを依頼された稼働中のコントローラの負荷に応
じて分割されることにより、最終的には複数のコントロ
ーラでバックアップされる。つまり、本発明の分散制御
システムは1台のコントローラのダウンあるいは負荷オ
ーバを複数台の稼働中のコントローラが自らの負荷状況
応じて分担してバックアップするものである。さらに、
このバックアップにおいてネットワークの通信量増加を
抑さえるために、タスクの通信量に関する属性に応じて
分担してバックアップするものである。
【0124】この分散制御システムの物理的な構成を図
47に示す。コントローラ1,2,3,4は同一の構成で
あり、各々がネットワーク1000と接続されたネット
ワーク接続用コネクタ41a,41b,41c,41d
と、これらのネットワーク接続用コネクタの各々とシリ
アルデータ用のバス71a,71b,71c,71dを
介して接続された4個づつのプロセッサ(PR1,PR
2,PR3,PR4)701〜704,711〜71
4,721〜724,731〜734と、これらのプロ
セッサ(PR1,PR2,PR3,PR4)とバス70
a,70b,70c、70dを介して接続されたグローバ
ルメモリ82a,82b,82c,82dと、これらの
プロセッサ(PR1,PR2,PR3,PR4)と接続
された入出力処理装置(I/O)83a,83b,83
c,83dと、これらのプロセッサに接続され故障の通
知を行うバス70bを含む。各コントローラにはDC
1,DC2,DC3,DC4という名前を付けた。各コ
ントローラ内の各プロセッサにはPR1,PR2,PR
3,PR4という名前を付けた。ここで、各プロセッサ
はその中に記したタスクを実行しているものとした。こ
こでタスクNC1,NC2,NC3,NC4はネットワ
ーク1000を介したコントローラ間のメッセージの送
受信を制御するタスクであり、図43の通信手段611
0,6210,6310,6410を提供する。また、タ
スクCM1,CM2,CM3,CM4は各コントローラ
1,2,3,4でのタスクの実行を制御するタスクであ
り、図43のバックアップ依頼手段6120,622
0,6320,6420と、バックアップ受付手段61
30,6230,6330,6430を提供する。頭文
字がTで始まるタスクは各コントローラが実行する制御
演算などであり、図43の制御手段を提供する。OS1
1などのOSで始まるタスクはバックアップ関係の機能
を組み込んだリアルタイムオペレーティングシステムで
あり、各プロセッサで実行されている。これら各々が図
43の内部バックアップ手段6170,6270,637
0,6470を提供する。またこれらのリアルタイムオ
ペレーティングシステムの各々が独立に各々のプロセッ
サに関するスケジューリングを実施している。すなわ
ち、各々が各コントローラのスケジューラ6140,6
240,6340,6440を各プロセッサに関する部
分に分割して提供している。
【0125】また、各プロセッサ内の故障制御回路68
20(図8,図10,図12参照)は他のプロセッサの
故障制御回路と協同してバス70bを通信路として用い
ることにより切り離し手段を提供する。例えば図47の
プロセッサ702が故障した場合には、プロセッサ70
2の故障制御回路が故障を検出し、他のプロセッサ70
1,703,704に対してバス70bを通してプロセッ
サ702の故障を通知し、同時にプロセッサ702の汎
用エンジン(GE)の動作を停止さる。さらに、プロセッ
サ701,703,704の各故障制御回路は各々のプ
ロセッサPRで実行されている内部バックアップ手段を
提供するタスクOS11,OS13、OS14に内部バ
ックアップ手順を開始させる。このように図43の切り
離し手段6180における機能は物理的には4つのプロ
セッサに分担されている。
【0126】さらに、図47の各コントローラのなかの
すべてのプロセッサがランアダプタ(LA)を持つた
め、いずれのプロセッサも通信手段6110,621
0,6310,6410として動作可能である。従来技術で
は通信関係の手段が冗長化されておらず信頼性が不充分
であったが本実施例の構成により冗長化され信頼性が向
上する。各コントローラ内の4つのランアダプタ(L
A)のなかで、実際に通信手段6110,6210,6
310,6410となるものはタスクNC1,NC2,
NC3,NC4が実行されているプロセッサのランアダ
プタ(LA)である。つまり通信手段として動作中のラ
ンアダプタ(LA)が故障して通信が不通になっても、タ
スクNC1,NC2,NC3,NC4をコントローラ内
でバックアップすることで通信を回復することができ
る。また、従来技術ではプロセッサあるいはプロセッサ
がローカルメモリを持った場合、そのプロセッサあるい
はプロセッサがダウンすると、ローカルメモリに蓄えら
れた制御用の学習結果のデータなどにアクセスできない
という問題があった。そこでローカルメモリ(LM)68
16をデュアルポートメモリで構成し、バス6819の
ほかにバス70aにも接続した。この接続により他のプ
ロセッサからバス71aを介してローカルメモリ(LM)6
816へアクセスできるようにした。コントローラ内の
4つのプロセッサ(PR1,PR2,PR3,PR4)
のローカルメモリ(LM)とグローバルメモリ(GM)に
よって図34の記憶手段6160,6260,636
0,6460を構成している。
【0127】以下では本実施例のバックアップ方法につ
いて詳細に例示する。図48は図47の動作状態におけ
る実行分担表であり、各記憶手段6160,6260,
6360,6460に格納されている。この表の内容は
プロセッサを特定可能な名前と、そのプロセッサが実行
しているタスクの名称と、それらのタスクによってプロ
セッサが被る負荷率と、各コントローラ内での各プロセ
ッサに負荷の軽い順に1番から番号を付けた順位(内部
負荷順位)である。本例ではコントローラ名とプロセッ
サ名を連結しプロセッサを特定可能な名称としている。
このほかの特定する方式として各々異なる番号を与える
ものがある。このプロセッサを特定するために用いる方
式は本発明の主旨とは関係なくどのような方式でもよ
い。本表を用いて内部バックアップ手段6170,62
70,6370,6470は、バックアップされるべき
タスクをダウンあるいは負荷オーバしたプロセッサ名か
ら検索し、コントローラ内で負荷の小さいプロセッサか
ら大きいプロセッサへ順番にバックアップを担当させる
ために内部負荷順位を検索する。また、バックアップ受
付手段6130,6230,6330,6440がバッ
クアップを依頼されたプロセッサ名からそのプロセッサ
が実行しているタスク名を検索するために実行分担表を
用いる。なお、内部負荷順位が無くても、内部バックア
ップ手段はプロセッサ名と負荷率をもとに内部負荷順位
と同等の情報を生成し上記の処理を実行可能であるが、
バックアップの途中でこの情報を生成するためバックア
ップを終了するまでの時間が長くなる。バックアップを
終了するまでの時間を短縮するために、本実施例では通
常の稼働状態の時に内部負荷順位を生成しこの実行分担
表に記憶しておく方式にした。
【0128】図49は図47の動作状態におけるタスク
負荷表であり、各記憶手段6160,6260,636
0,6460に格納されている。この表の内容はタスク
の名前と、そのタスクを実行したときの負荷率と、バッ
クアップに関係する属性と、タスクがどのプロセッサの
ものかを示す原籍である。属性は4つあり、原籍のプロ
セッサにおいて必要不可欠であるが他のプロセッサでバ
ックアップする必要のない(あるいはしてはならない)
タスクであることを示す“fixed”と、コントローラの
管理運用に必要なタスクであることを示す“internall
y”と、通信量が多いことを示す“communicative”
と、原籍以外のコントローラで実行してもよいタスクで
あることを示す“somewhere” である。よって、他のプ
ロセッサでバックアップされるべきタスクは属性が“fi
xed” でないものである。これらをあるプロセッサにお
ける優先度として扱い優先度が高いものから降順に並べ
ると、最優先のものはこのプロセッサが原籍である“fi
xed” 、次に優先されるものはこのプロセッサが原籍で
ある“internally”、さらに次に優先されるものはこの
プロセッサが原籍である“communicative” 、優先度の
最も低いものはこのプロセッサが原籍である“somewher
e”とこのプロセッサが原籍でない“fixed”,“intern
ally”,“communicative”と“somewhere”である。た
だし、原籍以外のプロセッサに属性が“fixed”や“int
ernally” のタスクをバックアップさせることはコント
ローラあるいはシステムの不具合を生じるため、バック
アップ手順の中でこれを防いでいる。すなわち、原籍の
プロセッサあるいはそれを含むコントローラ(原籍のコ
ントローラと呼ぶ)にて最優先でバックアップされるよ
うにしている。内部バックアップ手段6170,627
0,6370,6470と、バックアップ受付手段61
30,6230,6330,6440がバックアップを
されるべきタスクとバックアップを担当するプロセッサ
が実行していたタスクとから各々のタスクの優先度と原
籍と負荷率を基準としてバックアップ後に実行すべきタ
スクを選択する時に、タスク名からそれらの内容を知る
ためにこのタスク負荷表を用いる。
【0129】図50は図47の動作状態における外部受
付順位表でであり、各記憶手段6160,6260,636
0,6460に格納されている。本表はバックアップ依
頼手段6120,6220,6320,6420が他の
コントローラのプロセッサの中から、最小負荷率のプロ
セッサの名称を最初に検索し、つづいて必要ならば順番
に負荷の大きいものの名称を検索するために用いる。こ
の表はプロセッサ名を負荷率をキーとして昇順に並べた
ものである。よって、実行分担表に本表の情報も含まれ
ているが、実行分担表で最も負荷率の小さいプロセッサ
を検索するためには相当な時間がかかる。そこで、検索
時間短縮を目的として本表を設けた。本表では先頭のプ
ロセッサ名を読みだすだけですべてのプロセッサの中で
最小負荷率のプロセッサ名を知ることができる。それが
バックアップを依頼するコントローラに属するときは次
の順位を読みだす。この繰り返しで他のコントローラの
プロセッサで最も負荷が小さいものを選択できる。本表
はダウンあるいは負荷オーバやバックアップの度に書き
換えるが、一度並べ帰られているので削除,2分検索,
挿入の3ステップでこの表の昇順を維持する。このた
め、この外部受付順位表を用いた場合にバックアップ時
に実行分担表の内容をソーティングを実施する必要がな
く処理が高速になる。すなわち、バックアップに要する
時間が短縮できる。
【0130】ここで、実行分担表とタスク負荷表と外部
受付順位表の内容の関係を説明する。プロセッサDC
1.PR1が実行しているタスクは実行分担表よりタス
クOS11,NC1,CM1,T11である。このときの負
荷率はタスク負荷表からタスクOS11が5%,NC1
が26%,CM1が28%,T11が13%であるから
これらの和である72%となる。実行分担表の例示で省
略されたプロセッサの負荷率はこの値より充分大きいと
して、プロセッサDC1.PR1の負荷率は昇順で3番
目であるから、外部受付順位表では順位が3番目になっ
ている。
【0131】ここで、本実施例のバックアップ手順の理
解の助けとして、図51に示すようにコントローラ1の
プロセッサ(DC1.PR1)701がダウンした場合
において、タスクNC1,CM1,T11が分割してバ
ックアップされる過程とそれにより追い出されたタスク
がさらにまた他のプロセッサによってバックアップされ
る過程を説明する。ここで前述の限界負荷率は90%に
定められているものとする。
【0132】(FD0)コントローラ1のプロセッサ70
1のプロセッサ6811が故障したものとする。この故
障により通信手段6110とバックアップ依頼手段61
20とバックアップ受付手段6130がダウンし、スケ
ジューラ6140と制御手段6150の各一部分がダウ
ンした。
【0133】(FD1)コントローラ1の切り離し手段
6180がプロセッサ701のダウンを検出すると、こ
のプロセッサを停止させる。同時に内部バックアップ手
段6170にプロセッサ701のダウンを通知し、内部
バックアップ手段6170に図46の内部バックアップ
手順を開始させる。
【0134】より詳細には、プロセッサ701の故障制
御回路(FD)6820が汎用エンジン(GE)681
1の故障を検出すると、バス70bを通して他のプロセ
ッサの故障制御回路(FD)にプロセッサ701の故障
を通知する。その後プロセッサ701を停止させる。プ
ロセッサ702,703,704の故障制御回路(FD)6
820は故障の通知を受けると各々のプロセッサ681
1に対してバス70aの割り込み要求信号線を用いて割
り込み処理を要求する。この割り込み処理が、内部バッ
クアップ手段6170を提供するタスクOS12,OS
13,OS14に内部バックアップ手順を開始させる。
なお、停止されたプロセッサのローカルメモリ(LM)
6816はバス70aと接続されているため、このプロ
セッサが停止していても他のプロセッサからアクセス可
能である。この接続はタスクをバックアップし再開する
ときに必要なデータをプロセッサが停止していても取得
できるようにしたものである。
【0135】以下、内部バックアップ手段6170が実
行する図46に示した内部バックアップ手順について説
明する。
【0136】(OS0)内部バックアップ手段6170が
起動される。詳細には稼働中のプロセッサのすべてにお
いて内部バックアップを司るタスクが各々独立に図46
の内部バックアップ手順を実行する。図51の例示では
プロセッサ(DC1.PR2)702でタスクOS12が
内部バックアップ手順を実行する。プロセッサ(DC1.P
R3)703でタスクOS13が内部バックアップ手順
を実行する。プロセッサ(DC1.PR4)704でタ
スクOS14が内部バックアップ手順を実行する。バッ
クアップを担当しないタスクが自ら停止し、自動的にバ
ックアップを実施するものが決定する。プロセッサの間
にバックアップに関する特定の依存関係がないためコン
トローラ内を均一のハードウェア及び均一のソフトウェ
ア体形とすることが可能となり、コントローラの構築が
容易になる。このように図46の内部バックアップ手順
を構築した。次のステップでこの決定方法を説明する。
【0137】(OS1)手順6510:内部バックアッ
プ手段6170は上記の稼働中のプロセッサのなかで負
荷が最も小さいプロセッサをバックアップを実施するプ
ロセッサに決定する。
【0138】具体的には前記のタスクの各々が実行分担
表からダウンしたプロセッサの内部負荷順位と自らの内
部負荷順位を読みだす。ダウンしたプロセッサの負荷が
最も小さいのならば内部負荷順位は前述のように1番で
ある。よって、その内部負荷順位が1ならば稼働中のプ
ロセッサの中で負荷が最も小さいものは内部負荷順位が
2番目である。この場合には、自らの内部負荷順位が2
番であることを判定することにより、自らがバックアッ
プを担当するか否かを定める。内部負荷順位が2番なら
ばバックアップを担当することになり、手順6520に
進む。もし、内部負荷順位が2番でなければ内部バック
アップ手順を終了し、バックアップを担当しない。一
方、ダウンしたプロセッサの負荷より稼働中のプロセッ
サの負荷が小さい場合には、稼働中のプロセッサの中で
負荷が最も小さいものは内部負荷順位が1番目である。
この場合には、自らの内部負荷順位が1番であることを
判定することにより、自らがバックアップを担当するか
否かを定める。内部負荷順位が1番ならばバックアップ
を担当することになり、手順6520に進む。もし、内
部負荷順位が1番でなければ内部バックアップ手順を終
了し、バックアップを担当しない。
【0139】図51の例示ではダウンしたプロセッサ
(DC1.PR1)701の内部負荷順位が図48の実行
分担表に示すとおり2番であり、プロセッサ(DC1.
PR2)702の内部負荷順位が4番であるため、タス
クOS12は手順6510で内部バックアップ手順を終
了する。また、プロセッサ(DC1.PR3)703の
内部負荷順位が3番であるため、タスクOS13は手順
6510で内部バックアップ手順を終了する。一方、プ
ロセッサ(DC1.PR4)704の内部負荷順位は1
番であるため、タスクOS14は手順6510から手順
6520に進み、内部バックアップ手順を継続する。よ
って、プロセッサ(DC1.PR4)704がまず初め
にバックアップを実施する。
【0140】(OS2)手順6515:内部バックアッ
プ手段6170はダウンにより実行できなくなったタス
クのうちバックアップする必要の有るものをタスクキュ
ーに登録する。詳細にはまず受付用タスクキューを初期
化する。そして、実行分担表からダウンしたプロセッサ
の名前に対応するタスク名を読みだし、タスク負荷表か
らそれらのタスクに対する負荷率と属性を読みだす。そ
して、属性がバックアップする必要がないこと、あるい
は、バックアップしてはならないことを示す“fixed”
のものを除外して、バックアップされるべきタスクとし
て受付用タスクキューに登録する。図51の例示ではダ
ウンしたプロセッサ(DC1.PR1)701の名前DC
1.PR1に対応するタスク名であるOS11とNC1
とCM1とT11が実行分担表から読みだされ、タスク負
荷表から各々の負荷率5%, 26%,28%,13%
と属性“fixed”,“communicative”,“somewhere”
が読みだされる。そして、タスクの属性が“fixed” で
あるタスクOS11に関する情報を除いて、これらの内
容が受付用タスクキューに登録される。
【0141】(OS3)手順6520:内部バックアッ
プ手段6170はバックアップを担当するプロセッサが
実行しているタスクを受付用タスクキューに追加する。
詳細には実行分担表からバックアップを担当するプロセ
ッサの名前に対応するタスク名を読みだし、タスク負荷
表からそれらのタスクに対する負荷率と属性を読みだ
す。そしてそれらのタスクを受付用タスクキューに追加
する。同時にそれらの負荷率及び属性も追加する。
【0142】この手順以降はコントローラ内部のすべて
のプロセッサがバックアップを担当するまで、あるい
は、バックアップされるべきタスクがなくなるまで繰り
返し実行される。図51の例示における今回の実行で
は、バックアップを担当するプロセッサ704の名前D
C1.PR4に対応するタスク名であるOS14とT1
7とT18が実行分担表から読みだされ、タスク負荷表
から各々の負荷率5%,25%,26%と属性“fixe
d”,“internally”,“communicative”が読みだされ
る。これらが受付用タスクキューに追加される。
【0143】(OS4)手順6530:内部バックアッ
プ手段6170はバックアップを担当するプロセッサが
バックアップ後に実行すべきタスクを受付用タスクキュ
ーから選択する。具体的には、受付用タスクキューをタ
スクの属性による優先順位と負荷率で並べ変えて、優先
順位の高いタスクのなかで限界負荷率に最も近くなる組
合せを選択し、さらにすべてを選択しても負荷率に余裕
があるならば次の優先度のタスクのなかでその余裕に最
も近くなる組合せを選択する。何れかの優先順位のタス
クの中で選択できないものが生じるまで、この組合せと
選択を繰り返す。図51の例示では受付用タスクキュー
が図52に示した内容になり、タスクOS14とNC1
とCM1とT17が最終的に選択さる。ここで、バック
アップされるタスクはNC1とCM1であり、バックア
ップされないタスクはT11であり、追い出されるタス
クはT18である。
【0144】(OS5)手順6540:前手順により選
択されたタスクを受付用タスクキューから削除する。具
体的には、受付用タスクキューから前手順で選択された
タスクの名称とその負荷率と属性を削除する。図51の
例示ではタスクOS14とNC1とCM1とT17が最
終的に選択さた。当手順では、これらのタスクを受付用
タスクキューから削除する。受付用タスクキューに残さ
れたタスクは、バックアップされなかったタスクT11
と追い出されたタスクT18である。
【0145】(OS6)手順6550:手順6530に
て選択されたタスクをスケジューラ6140に登録し実
行を開始させる。具体的には、バックアップを担当する
プロセッサのスケジューリングを担当するタスクに対し
てバックアップされるタスクを追加登録し、追い出され
るタスクの登録を削除する。図51の例示ではバックア
ップを担当するプロセッサ704のスケジューリングを
担当するタスク、すなわち、リアルタイムオペレーティ
ングシステムであるタスクOS14に、バックアップさ
れるタスクであるタスクNC1とCM1を追加登録し実
行を開始させる。また、追い出されるタスクであるタス
クT18をスケジューラから削除し実行を停止させる。
ここにおいて、プロセッサ701の故障によりダウンし
ていた通信手段6110とバックアップ依頼手段612
0とバックアップ受付手段6130が回復された。以降、コ
ントローラ間のバックアップや制御タスクの実行に必要
なネットワーク1000との通信が実行できる。
【0146】(OS7)手順6560:当手順はバック
アップの状況に応じて内部バックアップ手順を3通りに
分岐させる。一つは完全にバックアップが終了したので
バックアップに関する手順を終了させる処理への分岐で
ある。二つは内部でのバックアップを完了しコントロー
ラ間におけるバックアップを開始させる処理への分岐で
ある。三つは内部でのバックアップを繰り返す処理への
分岐である。手順6560の中でこれらの分岐を手順656
2,6564,6566が実施している。手順6562
はバックアップすべきタスク、すなわち、受付用タスク
キューに残っているタスクの中で優先度の高いタスクが
有るか否かを判定し、有るならば処理は手順6564へ
進む。無いならば処理は手順6566へ進む。手順65
64はコントローラ内のすべてのプロセッサにバックア
ップを担当させたか否かを判定し、すべてに担当させた
後ならば処理は手順6574以降のコントローラ間にお
けるバックアップを開始させる処理へ分岐する。すべて
に担当させていないならば処理は手順6580以降の内
部でのバックアップを繰り返す処理へ分岐する。手順6
566はバックアップすべきタスクが残っているか否か
を、すなわち、受付用タスクキューにタスクが残ってい
るか否かを判定し、タスクが残っているならば処理は手
順6574以降のコントローラ間におけるバックアップ
を開始させる処理へ分岐する。タスクが残っていないな
らば処理は手順6572以降のバックアップに関する手
順を終了させる処理へ分岐する。
【0147】図51の例示において、今回は、属性が
“communicative” であり優先度が高いタスクT11が
受付タスクキューに残っており、尚且つ、まだプロセッ
サ704にバックアップを担当させたのみであるため、手
順6580以降の内部でのバックアップを繰り返す処理
へ分岐する。
【0148】(OS8)手順6580:今回バックアッ
プを担当したプロセッサの次に負荷が小さいものを次回
のバックアップを担当するプロセッサに選定し、次回の
バックアップを実施するために手順6520へ戻る。詳
細には今回バックアップを担当したプロセッサの内部受
付順位とダウンしたプロセッサの内部受付順位を実行分
担表から読みだす。前者の値に1を加え次の内部受付順
位を求める。この値が後者の受付順位であった場合には
さらに1を加えてダウンしたプロセッサを指定してしま
うことを防ぐ。コントローラ内で内部受付順位がこの値
であるプロセッサを実行分担表から求める。求めたプロ
セッサを次回にバックアップを担当するものとして選択
する。図51の例示では今回バックアップを担当したプ
ロセッサ704の内部受付順位が1番であり、ダウンし
たプロセッサの内部受付順位が2番であるため、次回に
バックアップを担当するプロセッサの内部受付順位は3
番になる。よって実行分担表においてコントローラ1内
で内部受付順位が3番であるプロセッサ703が次回の
バックアップを担当するものとして選択される。ここか
ら2回目の内部バックアップにはいる。すでに説明した
各手順は図51の例示に関する説明のみを記述する。
【0149】(OS9)手順6520:図51の例示に
おける今回の実行では、バックアップをプロセッサ70
3が担当する。そこで、その名前DC1.PR3に対応
するタスク名であるOS13とT15とT16が実行分
担表から読みだされ、タスク負荷表から各々の負荷率5
%,28%,41%と属性“fixed”,“somewhere”,
“communicative” が読みだされる。これらが受付用タ
スクキューに追加される。
【0150】(OS10)手順6530:図51の例示
では受付用タスクキューが図53に示した内容になり、
タスクOS13とT15とT16とT11が最終的に選
択さる。ここで、バックアップされるタスクはT11で
あり、バックアップされないタスクはT18であり、追
い出されるタスクは無い。
【0151】(OS11)手順6540:図51の例示
ではタスクOS13とT15とT16とT11が最終的に
選択された。当手順では、これらのタスクを受付用タス
クキューから削除する。受付用タスクキューに残された
タスクは、バックアップされなかったタスクT18のみ
である。
【0152】(OS12)手順6550:図51の例示
ではバックアップを担当するプロセッサ703のスケジ
ューリングを担当するタスク、すなわち、リアルタイム
オペレーティングシステムであるタスクOS13に、バ
ックアップされるタスクであるタスクT11を追加登録
し実行を開始させる。また、追い出されるタスクが無い
ため、スケジューラから削除され実行を停止させられる
ものは無い。
【0153】(OS13)手順6560:図51の例示
において、今回は、属性が“somewhere”であり優先す
る必要がないタスクT18のみが受付タスクキューに残
っている。すなわち、この状態は優先度の高いタスクは
残っていないが、バックアップすべきタスクが残ってい
る状態である。よって、当手順は処理を手順6574以
降のコントローラ間におけるバックアップを開始させる
処理へ分岐させる。
【0154】(OS14)手順6574:新しい実行状
態を示すメッセージ6700をネットワーク1000に
放送(ブロードキャスト)する。このメッセージにより
他のコントローラはプロセッサのダウンと、そのバック
アップを担当したプロセッサの新しい実行状態を知るこ
とができる。このメッセージ6700の内容に合わせ
て、各コントローラは各々の記憶手段に格納している実
行分担表とタスク負荷表と外部受付順位表を修正する。
図51の例示において、メッセージ6700はダウン情
報としてプロセッサ701のダウンを示す。さらに、新
しい実行状況としてプロセッサ703が実行しているタ
スクOS13,T15,T16,T11と、プロセッサ
704が実行しているタスクOS14,NC1,CM
1,T17とを示す。修正された実行分担表と外部受付
順位表を図55及び図56に示す。
【0155】(OS15)手順6590:コントローラ
間でのバックアップを実施するために、バックアップ依
頼手段6120を起動する。詳細には残ったバックアッ
プされるべきタスクを受付用タスクキューからバックア
ップ依頼手段6120が用いる依頼用タスクキューに移
し、受付用タスクキューを空にする。そして、バックア
ップ依頼手段6120にバックアップされるべきタスク
が残っていることを通知する。この通知はリアルタイム
オペレーティングシステムのタスク間通信機能を利用し
て行われてもよい。あるいは、ナットワーク1000を
介した自コントローラから自コントローラ宛のメッセー
ジ通信を利用して行われてもよい。
【0156】(OS16)以上にて内部バックアップ手
順を終了する。
【0157】続いて、コントローラ間でバックアップ手
順に移行し、タスクT18を他のコントローラでバック
アップする。
【0158】(CM1)コントローラ1のバックアップ
依頼手段6120が起動され、図45のバックアップ依
頼手順の実行を開始する。
【0159】(CM2)手順6610:バックアップ依
頼手段6120が外部受付順位表を用い、ダウンしたプ
ロセッサを吹く不コントローラとは異なる他のコントロ
ーラのプロセッサの中で負荷が最も小さいものをバック
アップの依頼先に決定する。詳細には外部受付順位表か
ら順位が1番のプロセッサ名を読みだす。そのプロセッ
サが他のコントローラに所属するならばそこで読みだし
を停止し、そのプロセッサをバックアップの依頼先にす
る。もし、ダウンしたプロセッサと同一のコントローラ
に所属しているならば、再び外部受付順位表から次の順
位のプロセッサ名を読みだす。そして、他のコントロー
ラに所属しているか否かを判定する。他のコントローラ
に所属するプロセッサが読みだされるまで以上を繰り返
す。図51の例示ではダウンしたプロセッサを含むコン
トローラ内でのバックアップを終了しているため、図5
0の外部受付順位表は図56に変更されている。この図
56の外部受付順位表から順位1番のプロセッサ名を読
みだす。この名前はDC2.PR2であり、このプロセッサ
はコントローラDC2に属する。ダウンしたプロセッサ
を含むコントローラはDC1であるため、読みだされた
プロセッサはダウンしたプロセッサを含むコントローラ
とは異なったコントローラに属する。よって次の順位の
プロセッサ名を読みだす処理に戻らずに、このプロセッ
サ(DC2.PR2)712をバックアップを依頼する
プロセッサに決定する。このプロセッサを依頼先と呼
ぶ。
【0160】(CM3)手順6620:バックアップ依
頼手段6120がバックアップの依頼であることを示す
情報と、依頼用タスクキューに登録されているすべての
タスク名を示す情報とを含むメッセージ6600を作成
し、依頼先に宛てて発信する。このメッセージを依頼メ
ッセージと呼ぶ。図51の例示では依頼メッセージ66
00はタスクT18のバックアップを依頼するものであ
り、依頼先であるプロセッサ712に宛ててネットワー
ク1000を介して送付される。
【0161】(CM4)手順6630:バックアップ依
頼手段6120はバックアップを依頼したメッセージ6
600に対する回答としてバックアップの依頼先から放
送されるメッセージ6700を待つ。
【0162】以後、メッセージ6700が放送されるま
でバックアップ依頼手段6120はバックアップ依頼手
順を中断して、待ち状態となる。ここからは依頼先のバ
ックアップ受付手段6230の動作について説明する。
【0163】(CM5)依頼先のプロセッサ712を含
むコントローラ2に於て、メッセージ6500を通信手
段6210が受け取り、バックアップ受付手段6230
を起動する。バックアップ受付手段6230は図46の
バックアップ受付手順を開始する。ここで、バックアッ
プ受付手段6230はそれ自身を含むコントローラの記
憶手段6260に格納されている受付用タスクキューと
タスク負荷表を用いる。
【0164】(CM6)手順6710:バックアップ受
付手段6130がメッセージ6600によって依頼され
たタスクとバックアップを依頼されたプロセッサが実行
しているタスクを受付用タスクキューに登録する。詳細
にはバックアップ受付手段6230はまず記憶手段62
60内の受付用タスクキューを初期化する。続いて、メ
ッセージ6600から依頼されたタスクの名称をとりだ
し、記憶手段6260内のタスク負荷表からそのタスク名に
対応する負荷率と属性と原籍を読みだし、先に初期化し
た受付用タスクキューに登録する。さらに、記憶手段6
260内の実行分担表から依頼先のプロセッサの名前に
対応するタスク名を読みだし、タスク負荷表からそれら
のタスクに対する負荷率と属性を読みだす。そしてそれ
らのタスクを受付用タスクキューに追加する。同時にそ
れらの負荷率及び属性も追加する。
【0165】図51の例示では、メッセージ6600に
よりバックアップを依頼されたタスクの名称T18を受
付用タスクキューに登録する。同時に、タスク負荷表か
らその名称に対応した負荷率26%と属性“somewher
e” と原籍DC1.PR4を読みだしこれらを登録す
る。さらに、バックアップを依頼されたプロセッサ71
2が実行しているタスクの名称として、そのプロセッサ
名DC2.PR2に対応するタスク名OS22とT21
とT22を実行分担表から読みだす。さらに、タスク負
荷表から各々のタスクに対応した負荷率5%,18%,
35%と属性“fixed”,“communicative”,“somewh
ere”と原籍DC2.PR2,DC2.PR2,DC2.
PR2とを読みだす。そして、これらのタスク名と負荷
率と属性と原籍を受付用タスクキューに追加する。
【0166】(CM7)手順6720:バックアップ受
付手段6130はバックアップを依頼されたプロセッサ
がバックアップ後に実行すべきタスクを受付用タスクキ
ューから選択する。具体的には、受付用タスクキューを
タスクの属性による優先順位と負荷率で並べ変えて、優
先順位の高いタスクのなかで限界負荷率に最も近くなる
組合せを選択し、さらにすべてを選択しても負荷率に余
裕があるならば次の優先度のタスクのなかでその余裕に
最も近くなる組合せを選択する。何れかの優先順位のタ
スクの中で選択できないものが生じるまで、あるいは、
全てのタスクが選択されるまでこの組合せと選択を繰り
返す。図51の例示では受付用タスクキューが図54に
示した内容になり、タスクOS22とT21とT23と
T18が最終的に選択さる。ここで、バックアップされ
るタスクはT18であり、バックアップされないタスク
は無い、追い出されるタスクも無い。すなわち、受付用
タスクキュー内の全てのタスクが選択された。
【0167】(CM8)手順6730:バックアップ受
付手段6130は前手順により選択されたタスクをスケ
ジューラ6240に登録し、それらの実行を開始する。
具体的には、バックアップされるタスクをスケジューラ
6240に追加して登録し、その実行を開始させる。ま
た追い出されるタスクの登録をスケジューラ6240か
ら削除し、その実行を停止させる。図51の例示ではタ
スクT18を登録し、実行を開始させる。登録を削除す
るものはない。
【0168】(CM9)手順6740:バックアップ受
付手段6130はバックアップを依頼されたプロセッサ
の新しい実行状態を示すメッセージ6700をネットワ
ーク1000に放送(ブロードキャスト)する。このメ
ッセージ6700はバックアップの依頼に対する回答で
あることを示す情報と、バックアップ受付手順が終了し
たときにバックアップを依頼されたプロセッサが実行し
ているタスクの情報と、バックアップを依頼されたタス
クの中でバックアップしたタスクを示す情報と、バック
アップを依頼されたプロセッサから追い出されてその実
行を停止されたタスクを示す情報を含む。このメッセー
ジにより他のコントローラはバックアップを依頼された
プロセッサの新しい実行状態を知り、各々の記憶手段に
格納している実行分担表とタスク負荷表と外部受付順位
表を修正する。また、このメッセージ6700によりバ
ックアップの依頼元であるバックアップ依頼手段612
0は待ち状態から抜け出し、バックアップ依頼手順を再
開する。図51の例示において、メッセージ6700は
新しい実行状況としてプロセッサ712が実行している
タスクOS22,T21,T22,T18を示す。バッ
クアップされたタスクとしてタスクT18を示す。追い
出されたタスクとしては、該当するものがないため、追
い出されたものがないことを示す。
【0169】(CM10)バックアップ受付手段623
0がバックアップ受付手順を終了する。
【0170】以降、メッセージ6700により処理を再
開したバックアップ依頼手順6120の処理について説明す
る。
【0171】(CM11)手順6642:バックアップ
依頼手段6120がメッセージ6700からバックアップさ
れたタスクを示す情報をとりだす。そして、バックアッ
プされたタスクがあるか否かを判定する。もし、バック
アップされたタスクがないならば手順6644にて全て
のプロセッサにバックアップを依頼したか否かを判定す
る。さらにもし、すべてのプロセッサに依頼していない
ならば手順6646にて外部負荷順位表を参照して、今
回の依頼先に次いで負荷が小さいプロセッサを依頼先に
選定する。そして、再び手順6620以降によりバック
アップの依頼を繰り返す。手順6644にて、もし全て
のプロセッサに依頼した後であったならば、バックアッ
プが失敗したため、縮退運転手段を起動し縮退運転を行
う。さて、手順6642に戻る。ここで、バックアップ
されたタスクが存在するならば手順6650へ進む。
【0172】図51の例示ではタスクT18がバックア
ップされたため、手順6650へ進む。
【0173】(CM12)手順6650:バックアップ
依頼手段6120はメッセージ6700の内容に応じて記憶
手段6160内の実行分担表とタスク負荷表と外部受付
順位表を変更する。図51の例示では図55の実行分担
表のマイクとコンピュータDC2.PR2の実行してい
るタスクの欄にタスクT18を追加する。同じく負荷率
の欄を58%の負荷率から84%に変更する。コントロ
ーラ2(DC2)関係の内部負荷順位を変更し、プロセ
ッサDC2.PR1を2番に、プロセッサDC2.PR
2を4番に、プロセッサDC2.PR3を1番に、プロ
セッサDC2.PR4を3番にする。外部受付順位表で
は受付順位1番のプロセッサDC2.PR2が負荷率8
4%となったためそれを後ろに回し、負荷率84%以下
のプロセッサの順位を1番ずつ繰り上げる。したがっ
て、外部受付順位が1番のプロセッサはDC3.PR1
になる。
【0174】(CM13)手順6660:バックアップ
依頼手段6120は依頼用タスクキューからメッセージ
6700に示されたところのバックアップされたタスク
を削除する。また、依頼用タスクキューにメッセージ6
700に示されたところの追い出されたタスクを追加す
る。この操作は1回のバックアップ依頼で全てのバック
アップが終了しなくてもよいように設けた。すなわち、
1回のバックアップでバックアップできなかったタス
ク、あるいは、負荷率を上げるために追い出されたタス
クがある場合には、依頼用タスクキューにタスクが残
り、これを今回の依頼先と異なった依頼先に次回に依頼
できるようにしたものである。図51の例示では依頼用
タスクキューからタスクT18が削除され、依頼用タス
クキューが空になる。
【0175】(CM14)手順6670:バックアップ
依頼手段6120は依頼用タスクキューにタスクが残っ
ているか否かを判定する。もし残っているならば再び手
順6610に戻り新規に依頼先を決定し、バックアップ
を依頼する。また、もし、依頼用タスクキューにタスク
が残っていないならば、全てのタスクのバックアップを
終了したことになる。このときバックアップ依頼手段6
120はバックアップ依頼手順の終了に進む。
【0176】(CM15)バックアップ依頼手段612
0はバックアップ依頼手順を終了する。
【0177】以上のステップにより本実施例の分散制御
システムは1台のプロセッサ(DC1.PR1)701のダ
ウンに対して、そこで実施されていたタスクNC1,C
M1,T11を自律的に分割してそれぞれをコントロー
ラ1のプロセッサ(DC1.PR4)704,コントロ
ーラ1のプロセッサ(DC1.PR3)703,コント
ローラ2のプロセッサ(DC2.PR2)712におい
てバックアップする。図51の例示ではダウンしたプロ
セッサを持つコントローラと、バックアップを依頼する
コントローラが同じ場合を示した。しかし、本発明の主
旨によればコントローラ1、2、3、4の各々がすべて
のコントローラの実行状態を記述している実行分担表を
持っているために、あるコントローラのダウンにおいて
他の一つのコントローラがさらに他のもう一つのコント
ローラに対してバックアップを依頼することが可能であ
る。具体的には図51の例示において、コントローラ1
のプロセッサ704でバックアップされたタスクCM1
によって提供されるバックアップ依頼手段6120の代
わりに、コントローラ2のプロセッサ711で実行され
ているタスクCM2によって提供されるバックアップ依
頼手段6220が記憶手段6260に格納された実行分
担表と外部受付順位表を用いてバックアップを依頼する
こともできる。このために、実行分担表とタスク負荷表
と外部受付順位表は全てのコントローラ、あるいは、全
てのプロセッサの状態を記憶している。図51の例示で
はダウンを検出したコントローラのバックアップ依頼手
段が作動するものとした。
【0178】本実施例はコントローラが4台のシステム
であるが、本発明の主旨を逸脱しない範囲で2台以上の
コントローラを持つシステムに拡張できる。さらに、本
実施例では1台のコントローラが4個のプロセッサを含
むものとしたが本発明の主旨を逸脱しない範囲で1個以
上のプロセッサを持つシステムに拡張できる。
【0179】
【発明の効果】一つのコントローラを数値演算機能はも
とよりニューロ,ファジィ,行列等を高速に演算するた
めの並列演算機能を実行するプロセッサ,シーケンス制
御演算を高速に実行するするプロセッサ、さらには、ネ
ットワークとの通信機能を実行するプロセッサ等の複数
のプロセッサから構成し、各機能を並列に実行可能とす
ることにより、幅広い分野に適用可能なコントローラが
実現できる。このコントローラをネットワークワーク接
続することにより、幅広い分野に適用可能分散制御シス
テムが実現できる。
【0180】また、入出力及びプロセッサを機能プログ
ラムできるチップを実現する方法も提供した。このこと
により、多種多様な制御対象に対しても少ない種類のコ
ントローラで対応でき、保守性の点で優れたシステムを
構成できる。
【0181】各プロセッサをより小さい単位のプロセッ
サエレメントで構成することにより、フレキシビリティ
が向上しLSI化も容易になり、コントローラの小型化
を図れる。従って、コントローラ本体の小型化が図れ、
分散設置可能なコントローラが実現できる。また予備プ
ロセッサ及び不揮発性メモリの予備領域を設けたことに
より、部分故障に対してコントローラ自身で自己修復が
可能となる。
【0182】また、バスの拡張が容易なバスコネクタつ
きの外観構造を採ることで小規模から大規模まで広い範
囲の制御対象への対応が可能となる。
【0183】また、ユーザの書いたプログラムとニュー
ラルネットワーク等の複数の出力生成手段によって得ら
れる複数の出力を、学習状況や経時変化等に対し適応的
に複合させてより良い制御を可能にすると共に、簡単な
操作でユーザの好みの制御を行わせることができる。
【0184】さらに、本発明により分散制御システムに
おけるコモンモード故障時に異常情報が多数ネットワー
クに発生し通信ネックが発生することを防止することが
できる。また、分散制御システムにおける故障箇所の同
定が可能である。
【0185】さらにまた、本発明により分散制御システ
ムのコントローラの多重ダウンに対しても負荷を自律的
に稼働中のコントローラに分散しバックアップすること
が可能である。さらにまた、本発明により分散制御シス
テムのコントローラを複数のプロセッサで構成したた
め、同一コントローラ内のプロセッサの多重ダウンに対
しても負荷を自律的に稼働中のプロセッサに分散しバッ
クアップすることが可能である。このため、信頼性及び
耐故障性を高めることが可能である。
【図面の簡単な説明】
【図1】本発明の一実施例であるところのプラント制御
システム。
【図2】従来のの鉄鋼圧延制御システム。
【図3】具体的な本発明の応用例であるところの鉄鋼圧
延制御システム。
【図4】別の具体的な本発明の応用例であるところの自
動車の制御システム。
【図5】別の具体的な本発明の応用例であるところの自
動車の制御システム。
【図6】本発明を階層システムに適用した場合のシステ
ム構成例。
【図7】本発明の一実施例であるところのコントローラ
の内部構成図。
【図8】本発明の一実施例であるところのコントローラ
の内部構成図。
【図9】本発明の他の一実施例であるところのコントロ
ーラの内部構成図。
【図10】本発明の他の一実施例であるところのコント
ローラの内部構成図。
【図11】本発明のさらに他の一実施例であるところの
コントローラの内部構成図。
【図12】本発明のさらに他の一実施例であるところの
コントローラの内部構成図。
【図13】機能プログラム可能なコントローラの全体ブ
ロック図。
【図14】入出力間の接続を不揮発性メモリを用いてプ
ログラマブルとしたスイッチアレイの構成例。
【図15】図10に示したスイッチアレイの中のメモリ
セルの構成例。
【図16】スイッチアレイに予備領域を設けた実施例。
【図17】マイクロプログラムメモリに不揮発性メモリ
を用いたプロセッサの内部構成例。
【図18】各プロセッサをプロセッサエレメントの組み
合せで構成した実施例。
【図19】I/O83の内部構成図。
【図20】I/O83を1チップの半導体で実現した構
成図。
【図21】I/O83を1チップの半導体で実現した構
成図。
【図22】本発明のコントローラ1′を1チップの半導
体で実現した構成図。
【図23】本発明のコントローラ1′を1チップの半導
体で実現した構成図。
【図24】本発明の一実施例であるところのコントロー
ラの外観をそれぞれ示す図。
【図25】本発明の一実施例であるところのコントロー
ラの外観をそれぞれ示す図。
【図26】本発明の一実施例であるところのコントロー
ラの外観をそれぞれ示す図。
【図27】本発明の一実施例であるところのコントロー
ラの外観をそれぞれ示す図。
【図28】本発明における制御演算部の基本構成図。
【図29】本発明における制御演算部の全体概要図。
【図30】出力計算部の構成。
【図31】評価部の構成。
【図32】複数の評価基準を有する場合の全体概要図。
【図33】ニューラルネットによって重み値を生成する
場合の基本構成図。
【図34】診断機能つきの分散型コントローラ構成図。
【図35】分散システムの各コントローラの制約条件の
例図。
【図36】各コントローラの通信インタフェースの構成
図。
【図37】異常情報フォーマット図。
【図38】制約未充足時の異常信号送信処理の処理手順
図。
【図39】不要情報判定アルゴリズムの処理手順図。
【図40】診断情報取込み判断処理手順図。
【図41】故障情報の加工処理手順図。
【図42】異常情報の包含関係を示す例図。
【図43】自律分散制御システムの論理的構成図。
【図44】自律的なバックアップ依頼手順図。
【図45】自律的なバックアップ受付手順図。
【図46】内部バックアップ手順図。
【図47】自律分散制御システムの物理的構成図。
【図48】実行分担表を示す例図。
【図49】タスク負荷表を示す例図。
【図50】外部受付順位表を示す例図。
【図51】自律分散制御システムのバックアップ方法を
示す例図。
【図52】1回目の内部バックアップにおける受付用タ
スクキューの例図。
【図53】2回目の内部バックアップにおける受付用タ
スクキューの例図。
【図54】1回目の外部バックアップにおける受付用タ
スクキューの例図。
【図55】内部バックアップ後の実行分担表を示す例
図。
【図56】内部バックアップ後の受付順位表を示す例
図。
【符号の説明】
1,2,3,4,5,6,6000…コントローラ、4
0…NCP、41a,41b,41c,41d…ネット
ワーク接続用コネクタ、52,82,82a,82b,
82c,82d…グローバルメモリ、53…I/O、5
4,56,58,84,87,90,93…プロセッ
サ、55,57,59,85,88,91,94…ロー
カルメモリ、60,61,62,63…バス拡張用コネ
クタ、64…I/Oコネクタ、70a,70b,70
c,70d…バス、71a,71b,71c,71d…
シリアルデータ通信用のバス、72a,72b,72
c,72d…故障通知用のバス、83a,83b,83
c,83d…入出力処理装置(I/O)、86,89,
92,95…ランアダプタ、100…プラント、70
1,702,703,704…コントローラ1のプロセ
ッサ、711,712,713,714…コントローラ2
のプロセッサ、721,722,723,724…コン
トローラ3のプロセッサ、731,732,733,7
34…コントローラ4のプロセッサ、1000…ネット
ワークワーク、2001…センサ等からの入力データ、
2002…入力データ、2003…出力データ、200
4…アクチュエータ等への出力データ、2010…セン
サ等、2011…入力処理部、2012…出力計算部、
2013…出力処理部、2014…アクチュエータ等、
2015…評価部、1200…マンマシン装置、201
7…タッチパネル,マウス等のポインティングデバイ
ス、2021…重み付け部、2022…出力データ合成
部、2101…ニューラルネットワーク、2102…出
力生成手段2、2103…出力生成手段3、2122…
重み値更新信号、6110,6210,6310, 6
410…通信手段、6120,6220,6320,6
420…バックアップ依頼手段、6130,6230,
6330,6430…バックアップ受付手段、614
0,6240,6340,6440…スケジューラ、6
150,6250,6350,6450…制御手段、6
160,6260,6360,6460…記憶手段、6
170,6270,6370,6470…内部バックア
ップ手段、6180,6280,6380,6480…
切り離し手段、6811…汎用エンジン(GE)、68
12…ニューラルエンジン(NE)、6813…シーケ
ンスエンジン(SE)、6814…ランアダプタ(L
A)、6815…フリーランタイマ(FRT)、681
6…ローカルメモリ(LM)、6817…バスインタフ
ェース(BIF)、6818…ダイレクトメモリアクセ
ス制御(DMAC)、 6819…プロセッサ内のバ
ス、6820…故障制御回路。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/16 620 G06F 15/16 620A 15/177 674 15/177 674B 674C 678 678F G06N 3/00 550 G06N 3/00 550E (72)発明者 笠原 孝保 茨城県日立市大みか町七丁目2番1号 株 式会社日立製作所エネルギー研究所内 (72)発明者 柴田 克成 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 松原 清 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業部内 (72)発明者 諸岡 泰男 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 舩橋 誠壽 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 Fターム(参考) 5B034 BB00 5B045 AA05 BB12 BB28 DD01 DD13 GG04 GG06 GG09 5H004 GA13 GA29 GB01 KA66 KA80 KC38 KC44 KD18 KD36 LA15 LB03 LB10 MA52 5H209 AA01 BB01 CC01 CC07 CC09 CC13 DD04 DD11 EE11 GG04 HH13 HH14 SS01 SS02 SS06 SS09 TT07

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 複数の制御対象機器を有するプロセスの
    制御装置において制御対象機器に制御指令を発するコン
    トローラを各制御対象機器に対応して現場設置したこと
    を特徴とする分散制御装置。
  2. 【請求項2】 複数のプロセッサからなる制御システム
    用コントローラにおいて各コントローラ内の複数のプロ
    セッサは自己の健全/異常の判別手段、プロセッサの負
    荷を測定または予測する手段を有し、一つのプロセッサ
    が異常または負荷オーバーとなることを予測または検知
    した場合、他のプロセッサが負荷の代替を行うことを特
    徴とするコントローラ。
  3. 【請求項3】 複数のコントローラと各コントローラを
    接続する伝送手段を有する分散制御システムにおいて各
    コントローラのうち少なくとも一台のコントローラは複
    数のプロセッサから構成され、該コントローラ内の複数
    のプロセッサは自己の健全/異常の判別手段、プロセッ
    サの負荷を測定または予測する手段を有し、一つのプロ
    セッサが異常または負荷オーバーとなることを予測また
    は検知した場合、同一コントローラ内の他のプロセッサ
    が負荷の代替を行うことを特徴とする分散制御システ
    ム。
  4. 【請求項4】 複数のコントローラと各コントローラを
    接続する伝送手段を有する分散制御システムにおいて各
    コントローラのうち少なくとも一台のコントローラはメ
    モリまたは入出力を共有する複数のプロセッサから構成
    され、該伝送手段は該コントローラ内プロセッサ群の正
    常、異常に関係なく該コントローラの上記メモリまたは
    入出力の内容を読み書きできるように構成したことを特
    徴とする分散制御システム。
  5. 【請求項5】 複数のコントローラと各コントローラを
    接続する伝送手段を有する分散制御システムにおいて少
    なくとも一台のコントローラは複数のプロセッサから構
    成され、上記プロセッサ群は上記伝送手段を制御する通
    信プロセッサを含み、該通信プロセッサが故障時は他の
    プロセッサが通信プロセッサを代替するように構成した
    ことを特徴とする分散制御システム。
  6. 【請求項6】 複数のコントローラと各コントローラを
    接続する伝送手段を有する分散制御システムにおいて少
    なくとも一台のコントローラは複数のプロセッサから構
    成され、上記プロセッサのうち一つのプロセッサが故障
    時は他のプロセッサが該故障プロセッサを代替するよう
    に構成したことを特徴とする分散制御システム。
  7. 【請求項7】 複数のプロセッサからなる制御システム
    用コントローラにおいて、各プロセッサの故障を検出す
    る第1の手段(6180)と、各プロセッサの負荷状況
    を記憶する第2の手段(6160)と、各プロセッサの
    負荷を制御する第3の手段(6170)を有し、第1の
    手段(6180)が一つのプロセッサの故障を検出した
    場合に、第2の手段(6160)に記憶された各プロセ
    ッサの負荷状況に応じて第3の手段(6170)が故障
    したプロセッサの負荷を他の一つ以上のプロセッサに対
    して分割して代替させることを特徴とするコントロー
    ラ。
  8. 【請求項8】 複数のプロセッサを有し、各プロセッサ
    が複数のタスクを実行している制御システム用コントロ
    ーラにおいて、各プロセッサの故障を検出する第1の手
    段(6180)と、各プロセッサの負荷状況を記憶する
    第2の手段(6160)と、各プロセッサの負荷を制御
    する第3の手段(6170)を有し、第1の手段(61
    80)が一つのプロセッサの故障を検出した場合に、第
    2の手段(6160)に記憶された各プロセッサの負荷状
    況に応じて第3の手段(6170)が故障したプロセッ
    サのタスクを他の一つ以上のプロセッサに対して選択し
    て代替させることを特徴とするコントローラ。
  9. 【請求項9】 複数のプロセッサからなり、各プロセッ
    サが複数のタスクを実行している制御システム用コント
    ローラにおいて、各プロセッサの故障を検出する第1の
    手段(6180)と、各プロセッサの負荷状況を記憶す
    る第2の手段(6160)と、各プロセッサの負荷を制
    御する第3の手段(6170)を有し、第1の手段(6
    180)が一つのプロセッサの故障を検出した場合に、
    第2の手段(6160)に記憶された各プロセッサの負荷
    状況に基づいて、第3の手段(6170)が故障したプ
    ロセッサのタスクと他の一つ以上のプロセッサが実行し
    ているタスクとからその一つ以上のプロセッサの各々が
    実行するタスクを選択し、それらプロセッサが選択され
    たタスクを実行することを特徴とするコントローラ。
  10. 【請求項10】 複数のプロセッサを有する制御システ
    ム用コントローラにおいて、各プロセッサの負荷を検出
    する第1の手段(6140)と、各プロセッサの負荷状
    況を記憶する第2の手段(6160)と、各プロセッサ
    の負荷を制御する第3の手段(6170)を有し、第1
    の手段(6140)が一つのプロセッサの負荷オーバを
    検出した場合に、第2の手段(6160)に記憶された
    各プロセッサの負荷状況に応じて第3の手段(617
    0)が負荷オーバとなったプロセッサの負荷を一つ以上
    のプロセッサに対して分割して代替させることを特徴と
    するコントローラ。
  11. 【請求項11】 複数のプロセッサからなり、各プロセ
    ッサが複数のタスクを実行している制御システム用コン
    トローラにおいて、各プロセッサの負荷を検出する第1
    の手段(6140)と、各プロセッサの負荷状況を記憶
    する第2の手段(6160)と、各プロセッサの負荷を
    制御する第3の手段(6170)を有し、第1の手段
    (6140)が一つのプロセッサの負荷オーバを検出し
    た場合に、第2の手段(6160)に記憶された各プロセ
    ッサの負荷状況に応じて第3の手段(6170)が負荷オ
    ーバとなったプロセッサのタスクを一つ以上のプロセッ
    サに対して選択して代替させることを特徴とするコント
    ローラ。
  12. 【請求項12】 複数のプロセッサを有し、各プロセッ
    サが複数のタスクを実行している制御システム用コント
    ローラにおいて、各プロセッサの負荷を検出する第1の
    手段(6140)と、各プロセッサの負荷状況を記憶す
    る第2の手段(6160)と、各プロセッサの負荷を制
    御する第3の手段(6170)を有し、第1の手段(6
    140)が一つのプロセッサの負荷オーバを検出した場
    合に、第2の手段(6160)に記憶された各プロセッ
    サの負荷状況に基づいて、第3の手段(6170)が負
    荷オーバとなったプロセッサのタスクと他の一つ以上の
    プロセッサが実行しているタスクとからその一つ以上の
    プロセッサの各々が実行するタスクを選択し、それらプ
    ロセッサが選択されたタスクを実行することを特徴とす
    るコントローラ。
  13. 【請求項13】 複数のコントローラと各コントローラ
    を接続するネットワークを有する分散制御システムにお
    いて、各コントローラは自コントローラの負荷を測定し
    測定した負荷をネットワークに送信する第1の手段(6
    140)と、任意のコントローラの負荷の代替を他のコ
    ントローラに依頼する第2の手段(6120)と、他の
    コントローラから代替の依頼に対して自己の負荷状況に
    基づき回答する手段をする第3の手段を有し、何れかの
    コントローラが負荷オーバあるいは故障した場合、その
    負荷オーバあるいは故障を検出したコントローラの第2
    の手段は各第1の手段から伝えられた負荷状況に応じて
    負荷の代替を依頼するコントローラを定め負荷の代替を
    依頼し、依頼されたコントローラの第3の手段は自己の
    負荷状況に応じて代替する負荷を定めこの負荷の実行を
    制御すると共にこの代替状況を回答することを特徴とし
    た分散制御システム。
  14. 【請求項14】 複数のコントローラと各コントローラ
    を接続する伝送手段を有する分散制御システムにおいて
    少なくとも一台のコントローラはグローバルメモリまた
    は入出力を共有する複数のプロセッサから構成され、上
    記プロセッサはキャッシュメモリおよび該キャッシュメ
    モリの内容とグローバルメモリの内容一致化手段を有
    し、グローバルメモリの内容または入出力の内容は上記
    伝送手段を介して他のコントローラから読み取り可能な
    ように構成したことを特徴とする分散制御システム。
  15. 【請求項15】 複数のコントローラと各コントローラ
    を接続する伝送手段からなる分散制御システムにおいて
    少なくとも一台以上のコントローラは入出力有し、該入
    出力の接続がプログラマブルであることを特徴とする分
    散制御システム。
  16. 【請求項16】 複数のコントローラを有する分散制御
    システムにおいて少なくとも一台のコントローラは複数
    のプロセッサから構成され、該複数のプロセッサ各々は
    自己の健全/異常の判別手段、各プロセッサの負荷を測
    定する手段を有し、一つのプロセッサが負荷オーバーに
    なると、他のプロセッサのうち最も負荷の小さいプロセ
    ッサが負荷の代替を行うことを特徴とする分散制御シス
    テム。
  17. 【請求項17】 複数のプロセッサを有する制御システ
    ム用コントローラにおいて、該複数のプロセッサのうち
    少なくとも一つのプロセッサはニューロ演算,ファジィ
    演算,数値演算またはシーケンス演算を実行することを
    特徴とするコントローラ。
  18. 【請求項18】 それぞれが情報を格納するメモリを有
    する複数のプロセッサと上記各メモリ、各プロセッサ及
    び外部のネットワークとの間で上記メモリの情報を授受
    するために上記相互を連絡する伝送線と少なくとも一つ
    のプロセッサにネットワークと各メモリ間の情報授受を
    制御するネットワーク制御機能を設定する手段とを有
    し、上記手段により特定された一つのプロセッサによっ
    て、上記ネットワークと上記メモリ間の情報授受を制御
    するようにしたことを特徴とするコントローラ。
  19. 【請求項19】 センサ等からの入力を用いて制御出力
    を求める制御システムにおいて、該入力から少なくとも
    1つのニューラルネットワークを含む複数の手段または
    方法によって計算される複数の出力を、重み付けして総
    合することによって制御出力を生成し、かつ該重み付け
    の値を学習によって更新していくことを特徴とする適応
    的制御システム。
  20. 【請求項20】 複数のコントローラをネットワークで
    接続して制御を実行する分散制御システムにおいて、該
    複数のコントローラにおいて感知した異常をネットワー
    ク上に送信するか否かの判定をネットワークからの受信
    情報に基づいて各コントローラで実行する分散型コント
    ローラの診断方式。
  21. 【請求項21】 それぞれの機能及び相互接続がプログ
    ラマブルなプロセッサを複数内蔵するシングルチップコ
    ントローラ。
JP2001166491A 2001-06-01 2001-06-01 分散制御装置、システム及びコントローラ Pending JP2002049405A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001166491A JP2002049405A (ja) 2001-06-01 2001-06-01 分散制御装置、システム及びコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001166491A JP2002049405A (ja) 2001-06-01 2001-06-01 分散制御装置、システム及びコントローラ

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP01229395A Division JP3244982B2 (ja) 1995-01-30 1995-01-30 分散制御システム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2005239973A Division JP2006031731A (ja) 2005-08-22 2005-08-22 分散制御システム及びコントローラ
JP2007122046A Division JP2007257657A (ja) 2007-05-07 2007-05-07 分散制御装置、システム及びコントローラ

Publications (1)

Publication Number Publication Date
JP2002049405A true JP2002049405A (ja) 2002-02-15

Family

ID=19009021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001166491A Pending JP2002049405A (ja) 2001-06-01 2001-06-01 分散制御装置、システム及びコントローラ

Country Status (1)

Country Link
JP (1) JP2002049405A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008153057A1 (ja) * 2007-06-11 2008-12-18 Toyota Jidosha Kabushiki Kaisha マルチプロセッサシステム及びその制御方法
JP5152426B1 (ja) * 2012-07-02 2013-02-27 富士電機株式会社 情報処理装置及び冗長化システム、並びに、これらにおけるエラー検出方法
JPWO2011141992A1 (ja) * 2010-05-10 2013-07-22 トヨタ自動車株式会社 故障診断装置及び故障診断方法
JP2013225208A (ja) * 2012-04-20 2013-10-31 Toyota Motor Corp 情報処理装置、情報処理方法、及びプログラム
JP2016110438A (ja) * 2014-12-08 2016-06-20 本田技研工業株式会社 演算装置
US9465646B2 (en) 2012-03-19 2016-10-11 Fujitsu Limited Detection apparatus, notification method, and computer product
WO2018179191A1 (ja) * 2017-03-29 2018-10-04 株式会社日立製作所 制御装置及び制御システム
WO2020012822A1 (ja) * 2018-07-11 2020-01-16 日立オートモティブシステムズ株式会社 演算システム、演算装置
JP7451614B2 (ja) 2017-12-12 2024-03-18 アマゾン テクノロジーズ インコーポレイテッド オンチップの計算ネットワーク

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090982B2 (en) 2007-06-11 2012-01-03 Toyota Jidosha Kabushiki Kaisha Multiprocessor system enabling controlling with specific processor under abnormal operation and control method thereof
WO2008153057A1 (ja) * 2007-06-11 2008-12-18 Toyota Jidosha Kabushiki Kaisha マルチプロセッサシステム及びその制御方法
JPWO2011141992A1 (ja) * 2010-05-10 2013-07-22 トヨタ自動車株式会社 故障診断装置及び故障診断方法
US9465646B2 (en) 2012-03-19 2016-10-11 Fujitsu Limited Detection apparatus, notification method, and computer product
JP2013225208A (ja) * 2012-04-20 2013-10-31 Toyota Motor Corp 情報処理装置、情報処理方法、及びプログラム
JP5152426B1 (ja) * 2012-07-02 2013-02-27 富士電機株式会社 情報処理装置及び冗長化システム、並びに、これらにおけるエラー検出方法
JP2016110438A (ja) * 2014-12-08 2016-06-20 本田技研工業株式会社 演算装置
WO2018179191A1 (ja) * 2017-03-29 2018-10-04 株式会社日立製作所 制御装置及び制御システム
JPWO2018179191A1 (ja) * 2017-03-29 2019-11-14 株式会社日立製作所 制御装置及び制御システム
JP7008687B2 (ja) 2017-03-29 2022-01-25 株式会社日立製作所 制御装置及び制御システム
US11604440B2 (en) 2017-03-29 2023-03-14 Hitachi, Ltd. Control switching device for abnormality prevention in multiple terminals
JP7451614B2 (ja) 2017-12-12 2024-03-18 アマゾン テクノロジーズ インコーポレイテッド オンチップの計算ネットワーク
WO2020012822A1 (ja) * 2018-07-11 2020-01-16 日立オートモティブシステムズ株式会社 演算システム、演算装置
JP2020009288A (ja) * 2018-07-11 2020-01-16 日立オートモティブシステムズ株式会社 演算システム、演算装置
JP7011983B2 (ja) 2018-07-11 2022-01-27 日立Astemo株式会社 演算システム、演算装置

Similar Documents

Publication Publication Date Title
JP3244982B2 (ja) 分散制御システム
JP2007257657A (ja) 分散制御装置、システム及びコントローラ
JP2878538B2 (ja) データ処理装置及びデータ処理方法
US5796936A (en) Distributed control system in which individual controllers executed by sharing loads
JP2003263219A (ja) 問題区分化方法およびそのシステム
CN114193447A (zh) 多机器人控制方法、电子设备及存储介质
CN101398686A (zh) 通过嵌入式历史机数据实现的自适应工业系统
CN1342940A (zh) 到一个共享的协处理器资源的多个逻辑接口
CN1636211A (zh) 用于工业自动化系统的工程方法和工程系统
JP2002049405A (ja) 分散制御装置、システム及びコントローラ
JP2006309345A (ja) 並列型監視制御システム、同システムの並列型コントローラのファームウェアの更新方法
CN1267374A (zh) 用于产生和分配警报和事件通知的系统和方法
CN102929725A (zh) 信号处理并行计算软件的动态重配置方法
CN111984385A (zh) 基于装饰bim模型的任务调度方法和任务调度装置
CN104303117A (zh) 用于定期自动化生产的鲁棒实时控制的系统和方法
JP2022065773A (ja) 制御装置、コントローラ、制御システム、制御方法、および制御プログラム
CN114968601B (zh) 一种按比例预留资源的ai训练作业的调度方法和调度系统
Didden et al. A semi-decentralized control architecture for high-mix-low-volume factories in Industry 4.0
Duffie An approach to the design of distributed machinery control systems
JP2006031731A (ja) 分散制御システム及びコントローラ
Ma et al. Operation of manufacturing systems with work-in-process inventory and production control
US8086771B2 (en) TCET expander
CN111791886B (zh) 用于车辆的实时控制系统以及经由实时控制系统执行车辆控制的方法
CN114327834A (zh) 多并发的数据处理方法和装置
JP2001325010A (ja) プログラマブルコントローラシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050822

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051118

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051128

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060113